PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPg0KDQoNCg0KDQoNCg0KDQoNCg0KDQo8aHRtbD4NCiAgPGhlYWQ+DQogICAgPHRpdGxlPkFyY2hpdmEgOjogTW9kdWxlcyAtIFRlYW0gbGlzdDwvdGl0bGU+DQogICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIj4NCiAgICAgIEBpbXBvcnQgdXJsKCIuL2Nzcy9tYXZlbi1iYXNlLmNzcyIpOw0KICAgICAgQGltcG9ydCB1cmwoIi4vY3NzL21hdmVuLXRoZW1lLmNzcyIpOw0KICAgICAgQGltcG9ydCB1cmwoIi4vY3NzL3NpdGUuY3NzIik7DQogICAgPC9zdHlsZT4NCiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4vY3NzL3ByaW50LmNzcyIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJwcmludCIgLz4NCiAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIGdhSnNIb3N0ID0gKCgiaHR0cHM6IiA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCkgPyAiaHR0cHM6Ly9zc2wuIiA6ICJodHRwOi8vd3d3LiIpOwpkb2N1bWVudC53cml0ZSh1bmVzY2FwZSgiJTNDc2NyaXB0IHNyYz0nIiArIGdhSnNIb3N0ICsgImdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnJTNFJTNDL3NjcmlwdCUzRSIpKTs8L3NjcmlwdD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPnZhciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTE0MDg3OS01Iik7CnBhZ2VUcmFja2VyLl9pbml0RGF0YSgpOwpwYWdlVHJhY2tlci5fdHJhY2tQYWdldmlldygpOzwvc2NyaXB0Pg0KICAgICAgICAgICAgICAgICAgICA8L2hlYWQ+DQogIDxib2R5IGNsYXNzPSJjb21wb3NpdGUiPg0KICAgIDxkaXYgaWQ9ImJhbm5lciI+DQogICAgICAgICAgICAgICAgICA8YSBocmVmPSIuLi8uLi8iIGlkPSJiYW5uZXJMZWZ0Ij4NCiAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Ii4uLy4uL2ltYWdlcy9hcmNoaXZhLnBuZyIgYWx0PSIiIC8+DQogICAgDQogICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIiBpZD0iYmFubmVyUmlnaHQiPg0KICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9pbWFnZXMvYXNmX2xvZ29fd2lkZS5wbmciIGFsdD0iIiAvPg0KICAgIA0KICAgICAgICAgICAgPC9hPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXIiPg0KICAgICAgICA8aHIvPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogICAgPGRpdiBpZD0iYnJlYWRjcnVtYnMiPg0KICAgICAgICAgIA0KICANCg0KICANCiAgICANCiAgDQogIA0KICAgICAgICAgICAgPGRpdiBjbGFzcz0ieGxlZnQiPg0KICAgICAgICAgIA0KICAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4NCiAgICAgICAgICAgICAgJmd0Ow0KICAgICAgDQogICAgICAgICAgPGEgaHJlZj0iLi4vLi4vIj5BcmNoaXZhPC9hPg0KICAgICAgICAgICAgICAmZ3Q7DQogICAgICANCiAgICAgICAgICBBcmNoaXZhIDo6IE1vZHVsZXMNCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9InhyaWdodCI+ICAgICAgDQogIA0KDQogIA0KICAgIA0KICANCiAgDQogICAgICAgICAgICAmbmJzcDt8IExhc3QgUHVibGlzaGVkOiAyNyBNYXkgMjAxMQ0KICAgICAgICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGNsYXNzPSJjbGVhciI+DQogICAgICAgIDxoci8+DQogICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGlkPSJsZWZ0Q29sdW1uIj4NCiAgICAgIDxkaXYgaWQ9Im5hdmNvbHVtbiI+DQogICAgICAgICAgIA0KICANCg0KICANCiAgICANCiAgDQogIA0KICAgICAgICAgICAgICAgICAgIDxoNT5Nb2R1bGVzPC9oNT4NCiAgICAgICAgPHVsPg0KICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJhcmNoaXZhLWJhc2UvaW5kZXguaHRtbCI+QXJjaGl2YSBCYXNlPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJhcmNoaXZhLWRhdGFiYXNlL2luZGV4Lmh0bWwiPkFyY2hpdmEgRGF0YWJhc2U8L2E+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxhIGhyZWY9ImFyY2hpdmEtcmVwb3J0aW5nL2luZGV4Lmh0bWwiPkFyY2hpdmEgUmVwb3J0aW5nPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJhcmNoaXZhLXNjaGVkdWxlZC9pbmRleC5odG1sIj5BcmNoaXZhIEJhc2UgOjogU2NoZWR1bGVkIFRhc2tzPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJhcmNoaXZhLXdlYi9pbmRleC5odG1sIj5BcmNoaXZhIFdlYjwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICA8L3VsPg0KICAgICAgICAgIDxoNT5Qcm9qZWN0IERvY3VtZW50YXRpb248L2g1Pg0KICAgICAgICA8dWw+DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgICANCiAgICAgICAgICAgIDxsaSBjbGFzcz0iZXhwYW5kZWQiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJwcm9qZWN0LWluZm8uaHRtbCI+UHJvamVjdCBJbmZvcm1hdGlvbjwvYT4NCiAgICAgICAgICAgICAgICA8dWw+DQogICAgICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJpbmRleC5odG1sIj5BYm91dDwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxhIGhyZWY9ImludGVncmF0aW9uLmh0bWwiPkNvbnRpbnVvdXMgSW50ZWdyYXRpb248L2E+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJkZXBlbmRlbmNpZXMuaHRtbCI+RGVwZW5kZW5jaWVzPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgDQogICAgPGxpIGNsYXNzPSJub25lIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0iZGVwZW5kZW5jeS1jb252ZXJnZW5jZS5odG1sIj5EZXBlbmRlbmN5IENvbnZlcmdlbmNlPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgDQogICAgPGxpIGNsYXNzPSJub25lIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0iZGVwZW5kZW5jeS1tYW5hZ2VtZW50Lmh0bWwiPkRlcGVuZGVuY3kgTWFuYWdlbWVudDwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxhIGhyZWY9Imlzc3VlLXRyYWNraW5nLmh0bWwiPklzc3VlIFRyYWNraW5nPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgDQogICAgPGxpIGNsYXNzPSJub25lIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0ibWFpbC1saXN0cy5odG1sIj5NYWlsaW5nIExpc3RzPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgDQogICAgPGxpIGNsYXNzPSJub25lIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0icGx1Z2luLW1hbmFnZW1lbnQuaHRtbCI+UGx1Z2luIE1hbmFnZW1lbnQ8L2E+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJsaWNlbnNlLmh0bWwiPlByb2plY3QgTGljZW5zZTwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxhIGhyZWY9InBsdWdpbnMuaHRtbCI+UHJvamVjdCBQbHVnaW5zPC9hPg0KICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgDQogICAgPGxpIGNsYXNzPSJub25lIj4NCiAgICAgICAgICAgICAgPGEgaHJlZj0icHJvamVjdC1zdW1tYXJ5Lmh0bWwiPlByb2plY3QgU3VtbWFyeTwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgICAgIA0KICAgIDxsaSBjbGFzcz0ibm9uZSI+DQogICAgICAgICAgICAgIDxzdHJvbmc+UHJvamVjdCBUZWFtPC9zdHJvbmc+DQogICAgICAgIDwvbGk+DQogICAgICAgICAgICAgICAgICANCiAgICA8bGkgY2xhc3M9Im5vbmUiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJzb3VyY2UtcmVwb3NpdG9yeS5odG1sIj5Tb3VyY2UgUmVwb3NpdG9yeTwvYT4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgPC9saT4NCiAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgDQogICAgICANCiAgICAgICAgICAgIA0KICAgICAgDQogICAgICAgICAgICANCiAgICAgIA0KICAgICAgICAgICAgICANCiAgICAgICAgPGxpIGNsYXNzPSJjb2xsYXBzZWQiPg0KICAgICAgICAgICAgICA8YSBocmVmPSJwcm9qZWN0LXJlcG9ydHMuaHRtbCI+UHJvamVjdCBSZXBvcnRzPC9hPg0KICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy8iIHRpdGxlPSJCdWlsdCBieSBNYXZlbiIgaWQ9InBvd2VyZWRCeSI+DQogICAgICAgICAgICA8aW1nIGFsdD0iQnVpbHQgYnkgTWF2ZW4iIHNyYz0iLi9pbWFnZXMvbG9nb3MvbWF2ZW4tZmVhdGhlci5wbmciPjwvaW1nPg0KICAgICAgICAgIDwvYT4NCiAgICAgICAgICAgICAgICAgICAgICAgDQogIA0KDQogIA0KICAgIA0KICANCiAgDQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgaWQ9ImJvZHlDb2x1bW4iPg0KICAgICAgPGRpdiBpZD0iY29udGVudEJveCI+DQogICAgICAgIDxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj5UaGUgVGVhbTwvaDI+PHA+QSBzdWNjZXNzZnVsIHByb2plY3QgcmVxdWlyZXMgbWFueSBwZW9wbGUgdG8gcGxheSBtYW55IHJvbGVzLiBTb21lIG1lbWJlcnMgd3JpdGUgY29kZSBvciBkb2N1bWVudGF0aW9uLCB3aGlsZSBvdGhlcnMgYXJlIHZhbHVhYmxlIGFzIHRlc3RlcnMsIHN1Ym1pdHRpbmcgcGF0Y2hlcyBhbmQgc3VnZ2VzdGlvbnMuPC9wPjxwPlRoZSB0ZWFtIGlzIGNvbXByaXNlZCBvZiBNZW1iZXJzIGFuZCBDb250cmlidXRvcnMuIE1lbWJlcnMgaGF2ZSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBzb3VyY2Ugb2YgYSBwcm9qZWN0IGFuZCBhY3RpdmVseSBldm9sdmUgdGhlIGNvZGUtYmFzZS4gQ29udHJpYnV0b3JzIGltcHJvdmUgdGhlIHByb2plY3QgdGhyb3VnaCBzdWJtaXNzaW9uIG9mIHBhdGNoZXMgYW5kIHN1Z2dlc3Rpb25zIHRvIHRoZSBNZW1iZXJzLiBUaGUgbnVtYmVyIG9mIENvbnRyaWJ1dG9ycyB0byB0aGUgcHJvamVjdCBpcyB1bmJvdW5kZWQuIEdldCBpbnZvbHZlZCB0b2RheS4gQWxsIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHByb2plY3QgYXJlIGdyZWF0bHkgYXBwcmVjaWF0ZWQuPC9wPjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMz5NZW1iZXJzPC9oMz48cD5UaGUgZm9sbG93aW5nIGlzIGEgbGlzdCBvZiBkZXZlbG9wZXJzIHdpdGggY29tbWl0IHByaXZpbGVnZXMgdGhhdCBoYXZlIGRpcmVjdGx5IGNvbnRyaWJ1dGVkIHRvIHRoZSBwcm9qZWN0IGluIG9uZSB3YXkgb3IgYW5vdGhlci48L3A+PHRhYmxlIGNsYXNzPSJib2R5VGFibGUiPjx0ciBjbGFzcz0iYSI+PHRoPklkPC90aD48dGg+TmFtZTwvdGg+PHRoPkVtYWlsPC90aD48dGg+T3JnYW5pemF0aW9uPC90aD48dGg+T3JnYW5pemF0aW9uIFVSTDwvdGg+PHRoPlJvbGVzPC90aD48dGg+VGltZSBab25lPC90aD48dGg+QWN0dWFsIFRpbWUgKEdNVCk8L3RoPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0ib2NoaW5nIj48L2E+b2NoaW5nPC90ZD48dGQ+TWFyaWEgT2RlYSBCLiBDaGluZzwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzpvY2hpbmdAYXBhY2hlLm9yZyI+b2NoaW5nQGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+LTwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgQ2hhaXI8L3RkPjx0ZD4rODwvdGQ+PHRkPjxzcGFuIGlkPSJkZXZlbG9wZXItMCI+Kzg8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9ImFoZXJpdGllciI+PC9hPmFoZXJpdGllcjwvdGQ+PHRkPkFybmF1ZCBIZXJpdGllcjwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzphaGVyaXRpZXJAYXBhY2hlLm9yZyI+YWhlcml0aWVyQGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+T0NUTyBUZWNobm9sb2d5PC90ZD48dGQ+PGEgaHJlZj0iaHR0cDovL3d3dy5vY3RvLmNvbSI+aHR0cDovL3d3dy5vY3RvLmNvbTwvYT48L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+KzE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTEiPisxPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD48YSBuYW1lPSJiZWxsaW5nYXJkIj48L2E+YmVsbGluZ2FyZDwvdGQ+PHRkPkZhYnJpY2UgQmVsbGluZ2FyZDwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+LTwvdGQ+PHRkPlBNQyBNZW1iZXI8L3RkPjx0ZD4tPC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0yIj4tPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJicmV0dCI+PC9hPmJyZXR0PC90ZD48dGQ+QnJldHQgUG9ydGVyPC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOmJyZXR0QGFwYWNoZS5vcmciPmJyZXR0QGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+QVNGPC90ZD48dGQ+LTwvdGQ+PHRkPlBNQyBNZW1iZXI8L3RkPjx0ZD4rMTA8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTMiPisxMDwvc3Bhbj48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0iY2FybG9zIj48L2E+Y2FybG9zPC90ZD48dGQ+Q2FybG9zIFNhbmNoZXo8L3RkPjx0ZD48YSBocmVmPSJtYWlsdG86Y2FybG9zQGFwYWNoZS5vcmciPmNhcmxvc0BhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkFTRjwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+KzE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTQiPisxPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJlcHVuemFsYW4iPjwvYT5lcHVuemFsYW48L3RkPjx0ZD5FZHdpbiBQdW56YWxhbjwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzplcHVuemFsYW5AYXBhY2hlLm9yZyI+ZXB1bnphbGFuQGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+LTwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+LTg8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTUiPi04PC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD48YSBuYW1lPSJldmVuaXNzZSI+PC9hPmV2ZW5pc3NlPC90ZD48dGQ+RW1tYW51ZWwgVmVuaXNzZTwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzpldmVuaXNzZUBhcGFjaGUub3JnIj5ldmVuaXNzZUBhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkFTRjwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+KzE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTYiPisxPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJqZHVtYXkiPjwvYT5qZHVtYXk8L3RkPjx0ZD5KYW1lcyBXaWxsaWFtIER1bWF5PC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOmphbWVzQGF0bGFzc2lhbi5jb20iPmphbWVzQGF0bGFzc2lhbi5jb208L2E+PC90ZD48dGQ+QXRsYXNzaWFuPC90ZD48dGQ+LTwvdGQ+PHRkPlBNQyBNZW1iZXI8L3RkPjx0ZD4rMTE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTciPisxMTwvc3Bhbj48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0iam9ha2ltZSI+PC9hPmpvYWtpbWU8L3RkPjx0ZD5Kb2FraW0gRXJkZmVsdDwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzpqb2FraW1lQGFwYWNoZS5vcmciPmpvYWtpbWVAYXBhY2hlLm9yZzwvYT48L3RkPjx0ZD5BU0Y8L3RkPjx0ZD4tPC90ZD48dGQ+RW1lcml0dXM8L3RkPjx0ZD4tNTwvdGQ+PHRkPjxzcGFuIGlkPSJkZXZlbG9wZXItOCI+LTU8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9Imp0b2xlbnRpbm8iPjwvYT5qdG9sZW50aW5vPC90ZD48dGQ+RXJuZXN0byBUb2xlbnRpbm8gSnIuPC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOmp0b2xlbnRpbm9AYXBhY2hlLm9yZyI+anRvbGVudGlub0BhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkFTRjwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+Kzg8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTkiPis4PC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD48YSBuYW1lPSJqbWNjb25uZWxsIj48L2E+am1jY29ubmVsbDwvdGQ+PHRkPkplc3NlIE1jQ29ubmVsbDwvdGQ+PHRkPjxhIGhyZWY9Im1haWx0bzpqbWNjb25uZWxsQGFwYWNoZS5vcmciPmptY2Nvbm5lbGxAYXBhY2hlLm9yZzwvYT48L3RkPjx0ZD5BU0Y8L3RkPjx0ZD4tPC90ZD48dGQ+UE1DIE1lbWJlcjwvdGQ+PHRkPi02PC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0xMCI+LTY8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9Im5pY29sYXMiPjwvYT5uaWNvbGFzPC90ZD48dGQ+Tmljb2xhcyBEZSBMb29mPC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOm5pY29sYXNAYXBhY2hlLm9yZyI+bmljb2xhc0BhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkNhcGdlbWluaTwvdGQ+PHRkPi08L3RkPjx0ZD5QTUMgTWVtYmVyPC90ZD48dGQ+KzE8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTExIj4rMTwvc3Bhbj48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0id3Ntb2FrIj48L2E+d3Ntb2FrPC90ZD48dGQ+V2VuZHkgU21vYWs8L3RkPjx0ZD48YSBocmVmPSJtYWlsdG86d3Ntb2FrQGFwYWNoZS5vcmciPndzbW9ha0BhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+UE1DIE1lbWJlcjwvdGQ+PHRkPi03PC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0xMiI+LTc8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9ImRlbm5pc2wiPjwvYT5kZW5uaXNsPC90ZD48dGQ+RGVubmlzIEx1bmRiZXJnPC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOmRlbm5pc2xAYXBhY2hlLm9yZyI+ZGVubmlzbEBhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPkFTRjwvdGQ+PHRkPi08L3RkPjx0ZD5Db21taXR0ZXI8L3RkPjx0ZD4rMTwvdGQ+PHRkPjxzcGFuIGlkPSJkZXZlbG9wZXItMTMiPisxPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD48YSBuYW1lPSJtYXJ0aW5jIj48L2E+bWFydGluYzwvdGQ+PHRkPk1hcnRpbiBDb29wZXI8L3RkPjx0ZD48YSBocmVmPSJtYWlsdG86bWFydGluY0BhcGFjaGUub3JnIj5tYXJ0aW5jQGFwYWNoZS5vcmc8L2E+PC90ZD48dGQ+QVNGPC90ZD48dGQ+LTwvdGQ+PHRkPkNvbW1pdHRlcjwvdGQ+PHRkPi08L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTE0Ij4tPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJtYmFjbGF5Ij48L2E+bWJhY2xheTwvdGQ+PHRkPk1hcmVjb3IgTS4gQmFjbGF5PC90ZD48dGQ+PGEgaHJlZj0ibWFpbHRvOm1iYWNsYXlAYXBhY2hlLm9yZyI+bWJhY2xheUBhcGFjaGUub3JnPC9hPjwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+Q29tbWl0dGVyPC90ZD48dGQ+Kzg8L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTE1Ij4rODwvc3Bhbj48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+PGEgbmFtZT0ianp1cmJhbm8iPjwvYT5qenVyYmFubzwvdGQ+PHRkPkpldmljYSBBcmlhbm5lIEIuIFp1cmJhbm88L3RkPjx0ZD48YSBocmVmPSJtYWlsdG86anp1cmJhbm9AYXBhY2hlLm9yZyI+anp1cmJhbm9AYXBhY2hlLm9yZzwvYT48L3RkPjx0ZD4tPC90ZD48dGQ+LTwvdGQ+PHRkPkNvbW1pdHRlcjwvdGQ+PHRkPis4PC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0xNiI+Kzg8L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPjxhIG5hbWU9Imp2YW56eWwiPjwvYT5qdmFuenlsPC90ZD48dGQ+SmFzb24gdmFuIFp5bDwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+LTwvdGQ+PHRkPkVtZXJpdHVzPC90ZD48dGQ+LTwvdGQ+PHRkPjxzcGFuIGlkPSJkZXZlbG9wZXItMTciPi08L3NwYW4+PC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPjxhIG5hbWU9ImJheWFyZCI+PC9hPmJheWFyZDwvdGQ+PHRkPkhlbnJpIFlhbmRlbGw8L3RkPjx0ZD4tPC90ZD48dGQ+LTwvdGQ+PHRkPi08L3RkPjx0ZD5FbWVyaXR1czwvdGQ+PHRkPi08L3RkPjx0ZD48c3BhbiBpZD0iZGV2ZWxvcGVyLTE4Ij4tPC9zcGFuPjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD48YSBuYW1lPSJrZW5uZXkiPjwvYT5rZW5uZXk8L3RkPjx0ZD5LZW5uZXkgV2VzdGVyaG9mPC90ZD48dGQ+LTwvdGQ+PHRkPi08L3RkPjx0ZD4tPC90ZD48dGQ+RW1lcml0dXM8L3RkPjx0ZD4tPC90ZD48dGQ+PHNwYW4gaWQ9ImRldmVsb3Blci0xOSI+LTwvc3Bhbj48L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDM+Q29udHJpYnV0b3JzPC9oMz48cD5UaGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgcGVvcGxlIGhhdmUgY29udHJpYnV0ZWQgdG8gdGhpcyBwcm9qZWN0IHRocm91Z2ggdGhlIHdheSBvZiBzdWdnZXN0aW9ucywgcGF0Y2hlcyBvciBkb2N1bWVudGF0aW9uLjwvcD48dGFibGUgY2xhc3M9ImJvZHlUYWJsZSI+PHRyIGNsYXNzPSJiIj48dGg+TmFtZTwvdGg+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5TdGVmZmVuIEdydW53YWxkPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPlN0ZWZhbiBQcmFuZ2U8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+Sm9obiBNaWNoYWVsIEx1eTwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5NYXJ0aW4gSPZsbGVyPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPlN0ZXBoZW4gR2FyZ2FuPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPkRhcmlvIE9saXZlcm9zPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPmphbWVzIGFobGJvcm48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+SmltIEphY2tzb248L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+RGFuaWVsIEhhcnZleTwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5BbGVrc2FuZHIgVGFydXRpbjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5UZW9kb3JvIEN1ZSBKci48L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+SmFuIEFuY2FqYXM8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+SmVucyBN/GhsZW5ob2ZmPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPkRhd24gQW5nZWxpdG88L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+TmFwIFJhbWlyZXo8L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+SGVucnkgSXNpZHJvPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPkFudG9pbmUgVmVyZXQ8L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+Q2hyaXN0aWFuIEdydWJlcjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5BbGxhbiBSYW1pcmV6PC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPlBldGUgTWFydmluIEtpbmc8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+Sm9lbCBTdWRpYWNhbDwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5NaWxvcyBLbGVpbnQ8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+TmljayBHb256YWxlejwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5NYXJpYSBDYXRoZXJpbmUgVGFuPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPkRhbiBUcmFuPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPkd3ZW4gSGFyb2xkIEF1dGVuY2lvPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPk1hcmsgSmVmZmVyeTwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5GYWJyaWNlIERhdWdhbjwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5Eb3JvbiBTb2xvbW9uPC90ZD48L3RyPjx0ciBjbGFzcz0iYiI+PHRkPk1pY2hhbCBTdG9jaG1pYWxlazwvdGQ+PC90cj48dHIgY2xhc3M9ImEiPjx0ZD5KdWxpZW4gSGVucnk8L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+QW5kcmVhcyBCYXVtYW5uPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPkFkZWxpdGEgTC4gUGFkaWxsYTwvdGQ+PC90cj48dHIgY2xhc3M9ImIiPjx0ZD5EYW5pZWwgVHJpcGhhdXM8L3RkPjwvdHI+PHRyIGNsYXNzPSJhIj48dGQ+UGF0dGkgQXJhY2hjaGlnZSBFc2hhbiBTdWRoYXJha2E8L3RkPjwvdHI+PHRyIGNsYXNzPSJiIj48dGQ+U2hpbnN1a2UgU3VnYXlhPC90ZD48L3RyPjx0ciBjbGFzcz0iYSI+PHRkPk1hcmN1cyBEaW1hbmQ8L3RkPjwvdHI+PC90YWJsZT48L2Rpdj48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmZ1bmN0aW9uIG9mZnNldERhdGUoaWQsIG9mZnNldCkgewogICAgdmFyIG5vdyA9IG5ldyBEYXRlKCk7CiAgICB2YXIgbm93VGltZSA9IG5vdy5nZXRUaW1lKCk7CiAgICB2YXIgbG9jYWxPZmZzZXQgPSBub3cuZ2V0VGltZXpvbmVPZmZzZXQoKTsKICAgIHZhciBkZXZlbG9wZXJUaW1lID0gbm93VGltZSArICggb2Zmc2V0ICogNjAgKiA2MCAqIDEwMDAgKSsgKCBsb2NhbE9mZnNldCAqIDYwICogMTAwMCApOwogICAgdmFyIGRldmVsb3BlckRhdGUgPSBuZXcgRGF0ZShkZXZlbG9wZXJUaW1lKTsKCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuaW5uZXJIVE1MID0gZGV2ZWxvcGVyRGF0ZTsKfQoKZnVuY3Rpb24gaW5pdCgpewogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTAnLCAnKzgnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci0xJywgJysxJyk7CiAgICBvZmZzZXREYXRlKCdkZXZlbG9wZXItMycsICcrMTAnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci00JywgJysxJyk7CiAgICBvZmZzZXREYXRlKCdkZXZlbG9wZXItNScsICctOCcpOwogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTYnLCAnKzEnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci03JywgJysxMScpOwogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTgnLCAnLTUnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci05JywgJys4Jyk7CiAgICBvZmZzZXREYXRlKCdkZXZlbG9wZXItMTAnLCAnLTYnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci0xMScsICcrMScpOwogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTEyJywgJy03Jyk7CiAgICBvZmZzZXREYXRlKCdkZXZlbG9wZXItMTMnLCAnKzEnKTsKICAgIG9mZnNldERhdGUoJ2RldmVsb3Blci0xNScsICcrOCcpOwogICAgb2Zmc2V0RGF0ZSgnZGV2ZWxvcGVyLTE2JywgJys4Jyk7Cn0KCndpbmRvdy5vbkxvYWQgPSBpbml0KCk7Cjwvc2NyaXB0Pg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogICAgPGRpdiBjbGFzcz0iY2xlYXIiPg0KICAgICAgPGhyLz4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGlkPSJmb290ZXIiPg0KICAgICAgPGRpdiBjbGFzcz0ieHJpZ2h0Ij4mIzE2OTsgIA0KICAgICAgICAgIDIwMDYtMjAxMQ0KICAgIA0KICAgICAgICAgIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbg0KICAgICAgICAgIA0KICANCg0KICANCiAgICANCiAgDQogIA0KICA8L2Rpdj4NCiAgICAgIDxkaXYgY2xhc3M9ImNsZWFyIj4NCiAgICAgICAgPGhyLz4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2JvZHk+DQo8L2h0bWw+DQo=