cabdfccb37026f9215b2e86345a2b837PCEtLTJkZmUvK1pxSVJES3ZvSjA1Q2V6L2FKMXRQR1JyS1lEZzdYTldyUk0rUG1LbmV5ZndSWnhqNzc3M1RDK3AyaTlMa2JSNUNUaVN0RWgvT3FxeVpvVFNCWmRweXo4a2t0enA0ZExEeDMxYkx0VWZIcVlTVUtEcVNCTkVHaTVGS3U4UkZyRkJQOEE2b3dMQ2tCWXg3VTFUM0g1Tk9DbzNyRjZkdnBEa0xRb1FBZmg4WVJUWjlldXMxZUZSMTkrV3VwQ1lqa3IyaVlHVFdwWFpnLS0+PGZoLWZ1bmN0aW9uPg0KbXlzcWxpX3F1ZXJ5KCRjb25uLCAidXBkYXRlIHNsX3Byb2R1Y3Qgc2V0IFBfdmlldz1QX3ZpZXcrMSB3aGVyZSBQX2lkPSIuJGlkKTsNCiRzcWw9InNlbGVjdCAqIGZyb20gc2xfcHJvZHVjdCxzbF9wc29ydCB3aGVyZSBQX3NvcnQ9U19pZCBhbmQgUF9pZD0iLiRpZDsNCiAgJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgJHNxbCk7DQogICRyb3cgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdCk7DQogIGlmIChteXNxbGlfbnVtX3Jvd3MoJHJlc3VsdCkgPiAwKSB7DQogICAgJFNfaWQ9JHJvd1siU19pZCJdOw0KICAgICRQX2lkPSRyb3dbIlBfaWQiXTsNCiAgICAkUF9waWM9JHJvd1siUF9waWMiXTsNCiAgICAkUF90YWc9JHJvd1siUF90YWciXTsNCiAgICAkUF9taWQ9JHJvd1siUF9taWQiXTsNCg0KICAgIHN3aXRjaCAoJHJvd1siUF9zZWxsdHlwZSJdKSB7DQogICAgY2FzZSAwOg0KICAgICRQX3Jlc3Q9MTsNCiAgICBicmVhazsNCg0KICAgIGNhc2UgMToNCg0KICAgICRQX3Jlc3Q9Z2V0cnMoInNlbGVjdCBjb3VudChDX2lkKSBhcyBDX2NvdW50IGZyb20gc2xfY2FyZCB3aGVyZSBDX3NvcnQ9Ii5pbnR2YWwoJHJvd1siUF9zZWxsIl0pLiIgYW5kIENfdXNlPTAiLCJDX2NvdW50Iik7DQogICAgYnJlYWs7DQoNCiAgICBjYXNlIDI6DQogICAgJFBfcmVzdD0kcm93WyJQX3Jlc3QiXTsNCiAgICBicmVhazsNCiAgfQ0KICB9DQo8L2ZoLWZ1bmN0aW9uPg0KPCFET0NUWVBFIGh0bWw+IA0KPGh0bWw+IA0KPGhlYWQ+IA0KPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+IA0KPHRpdGxlPltQX3RpdGxlXSAtIOaCqOeahOe9keermeWQjeensCAtIFBvd2VyZWQgYnkg5Y+R6LSnMTAwPC90aXRsZT4NCjxsaW5rIGhyZWY9Im1lZGlhLzIwMTkxMjA4MTEzMDM1ZU0uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+DQo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iW1BfZGVzY3JpcHRpb25dIiAvPg0KPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9IltQX2tleXdvcmRzXSIgLz4NCg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZW1wbGF0ZS90MTQvc3RhdGljL2NvbW1vbi9jc3MvY29tbW9uMjAyMTAxMTQuY3NzIiAvPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZW1wbGF0ZS90MTQvc3RhdGljL2NvbW1vbi9jc3MvY29tbW9uc21hbGwyMDIwMDUxMi5jc3MiIC8+DQogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVtcGxhdGUvdDE0L3N0YXRpYy9wbmcvY3NzL3BuZzIwMjAwNDE4LTEuY3NzIiAvPiANCiAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVtcGxhdGUvdDE0L3N0YXRpYy9kZXRhaWwvY3NzL3Nob3cyMDIwMDQwOC0xLmNzcyIgLz4NCjxzdHlsZT4NCiNidXkgLmFkZHsNCiAgaGVpZ2h0OjI1cHg7IHdpZHRoOjI1cHg7IG1hcmdpbjowIDVweCAwIDVweDtsaW5lLWhlaWdodDoxMDAlOw0KICBib3JkZXI6IGhpZGRlbjsNCiAgYmFja2dyb3VuZC1jb2xvcjogIzAwN2FmZjsNCiAgY29sb3I6ICNGRkZGRkY7DQogIGZvbnQtc2l6ZTogMTVweDsNCiAgbGluZS1oZWlnaHQ6IDEwMCU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgYm9yZGVyLXJhZGl1czozcHg7DQp9DQoNCiNidXkgLmFkZDpob3ZlciB7DQogIGJvcmRlcjogI2YzMjE5NiBzb2xpZCAxcHg7DQogIGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7DQogIGNvbG9yOiAjZjMyMTk2Ow0KfQ0KDQojYW1vdW50ew0KICBib3JkZXItdG9wOjFweCBzb2xpZCAjQUJBREIzOw0KICBib3JkZXItbGVmdDoxcHggc29saWQgI0FCQURCMzsNCiAgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjZGRkOw0KICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOw0KICBoZWlnaHQ6MjRweDsNCiAgd2lkdGg6NTBweDsNCiAgcGFkZGluZzowIDVweDsNCiAgbGluZS1oZWlnaHQ6MTAwJTsNCn0NCg0KLmJ1eV9idG57YmFja2dyb3VuZDogIzAwN2FmZjtjb2xvcjogI2ZmZmZmZjtib3JkZXI6IHNvbGlkIDFweCAjZjMyMTk2O2JvcmRlci1yYWRpdXM6IDEwcHg7cGFkZGluZzogMTBweDttYXJnaW4tcmlnaHQ6IDEwcHg7Zm9udC1zaXplOiAxNXB4O21hcmdpbi10b3A6IDEwcHg7dmVydGljYWwtYWxpZ246dG9wO2N1cnNvcjpwb2ludGVyfQ0KLmJ1eV9idG46aG92ZXJ7YmFja2dyb3VuZDogI2ZmZmZmZjtjb2xvcjojMDA3YWZmOyB9DQo8L3N0eWxlPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KICAgICAgdmFyIG5vdz1uZXcgRGF0ZSgpOw0KICAgICAgdmFyIHN0YXJ0VGltZT1ub3cuZ2V0VGltZSgpOw0KICAgICAgdmFyIGlzTG9naW4gPSAgZmFsc2U7OyANCiAgICAgIHZhciBpc3ZpcCAgPSAwOw0KICAgICAgdmFyIGNvZGUgPSAiNCI7DQogICAgICAgICAgICB2YXIgZXhldGltZSA9ICIwLjE3MSI7DQogICAgICAgICAgICB2YXIgaXN0dWlzb25nID0gMTsNCiAgICAgIHZhciBraWQgPSAxOw0KICAgICAgdmFyIGxvYWR0aW1lID0gMDsNCiAgICAgIHZhciB1aWQgPSAwOw0KICAgICAgdmFyIGNsaWNrX251bSA9IDA7DQogICAgICB2YXIgaXNwYXkgPSAwOyAgICA8L3NjcmlwdD4NCjxzY3JpcHQ+CnZhciBfaG10ID0gX2htdCB8fCBbXTsKKGZ1bmN0aW9uKCkgewogIHZhciBobSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwogIGhtLnNyYyA9ICJodHRwczovL2htLmJhaWR1LmNvbS9obS5qcz9lMmVjYzVhODI2OGVhMWE0Yzk4NjJlYzdiNGVlNWIxMSI7CiAgdmFyIHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07IAogIHMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoaG0sIHMpOwp9KSgpOwo8L3NjcmlwdD4KPC9oZWFkPiANCjxib2R5PiANCiAgICAgDQogICAgICAgIDxkaXYgY2xhc3M9J2hlYWRlcmNhdGFnZSc+DQogICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0ibmF2cyB3bGltaXQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJsb2dvIiBhbHQ9IuaCqOeahOe9keermeWQjeensCIgaHJlZj0iLi8iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz0nbG9nb2ltZycgc3JjPSJtZWRpYS8yMDIxMDIwMTA4MDg0OE94LnBuZyIgYWx0PSLmgqjnmoTnvZHnq5nlkI3np7AiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGxmZW5sIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Imt1YWkiPummlumhtTwvYT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ia3VhaSI+5YiG57G7DQogICAgICAgICAgICAgICAgICAgICAgICA8ZW0+PC9lbT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KDQogICRzcWw9InNlbGVjdCAqIGZyb20gc2xfcHNvcnQgd2hlcmUgU19zdWI9MCBhbmQgU19kZWw9MCBvcmRlciBieSBTX29yZGVyLFNfaWQgZGVzYyI7DQoNCiAgICAgICAgICAgICAgICBzW1sNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIj90eXBlPXByb2R1Y3QmaWQ9Ii4kcm93WyJTX2lkIl0uIlwiIHRhcmdldD1cIl9ibGFua1wiPiIuJHJvd1siU190aXRsZSJdLiI8L2E+PC9saT4iOw0KICAgICAgICAgICAgICAgICAgICBdXQ0KICAgICAgICA8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzZWFyY2hkaXYiID4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoIGMtc2VhcmNoIiBpZD0iY2Qtc2VhcmNoLWZsb2F0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImtleXdvcmQtZmxvYXQiIGlzZm9udD0iMCIgdHlwZT0idGV4dCIga2V5LXR5cGU9IjAiICBhdXRvY29tcGxldGU9Im9mZiIgbmFtZT0ic2VhcmNoIiBjbGFzcz0naS1zZWFyY2gnICAgcGxhY2Vob2xkZXI9IuaQnOe0ouWFqOmDqCIiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ncy1uaXUgc2VhcmNoLWJ0bicgaHJlZj0iamF2YXNjcmlwdDo7IiBrZXktdHlwZT0iMCI+PGVtPjwvZW0+PC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZHJvcGRvd24tYm94LWZsb2F0IiBjbGFzcz0iaG90LXNlYXJjaCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbiI+DQogICAgICAgICAgICAgICAgPCEtLSDmnKrnmbvlvZUgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgaWYoJF9TRVNTSU9OWyJNX2xvZ2luIl09PSIiKXsNCiAgICAgICAgJGFwaT0iPHNwYW4gbmFtZT1cIuazqOWGjFwiIGNsYXNzPVwicmVnaXN0XCI+5rOo5YaMPC9zcGFuPiA8c3BhbiBuYW1lPVwi55m75b2VXCIgY2xhc3M9XCJyZWdpc3QtbGdcIj7nmbvlvZU8L3NwYW4+IjsNCiAgICAgIH1lbHNlew0KICAgICAgICAkYXBpPSI8YSBocmVmPVwibWVtYmVyXCIgY2xhc3M9XCJyZWdpc3RcIj4iLiRfU0VTU0lPTlsiTV9sb2dpbiJdLiI8L2E+IDxhIGhyZWY9XCJtZW1iZXIvbG9naW4ucGhwP2FjdGlvbj11bmxvZ2luXCIgY2xhc3M9XCJyZWdpc3QtbGdcIj7pgIDlh7o8L2E+IjsNCiAgICAgIH0NCiAgICA8L2ZoLWZ1bmN0aW9uPg0KDQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Rpdj4NCg0KICAgICAgICAgICAgDQogICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KICAgIA0KDQogICAgPCEtLeS4remDqOeahOS4nOilvy0tPg0KICAgIA0KDQo8ZGl2IGNsYXNzPSdoZWFkZXIgZmxvYXQtaGVhZGVyJz4NCiAgPGRpdiBjbGFzcz0nbmF2cyB3bGltaXQnPg0KICAgICAgICAgICAgIDxhIGNsYXNzPSJsb2dvIiBhbHQ9IuaCqOeahOe9keermeWQjeensCIgaHJlZj0iLi8iPg0KICAgICAgICAgICAgIDxpbWcgY2xhc3M9J2xvZ29pbWcnIHNyYz0ibWVkaWEvMjAyMTAyMDEwODA4NDhPeC5wbmciIGFsdD0i5oKo55qE572R56uZ5ZCN56ewIj4NCg0KICAgICAgICA8L2E+DQoNCiAgICANCiAgICA8c3BhbiBjbGFzcz0idGl0bGVmbG9hdCAiIHN0eWxlPSJtYXJnaW4tbGVmdDogNTBweDsiPltQX3RpdGxlXTwvc3Bhbj4NCg0KDQogICAgICA8L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KPGRpdiBjbGFzcz0nZC1kYW9oJyBpc19tZT0iMiIga2lkPSIxIiBzY2VuZV9pZD0iMSIgc3R5bGVfaWQ9IjkiPg0KICAgIDxkaXYgY2xhc3M9J3dsaW1pdCc+DQogICAgICAgIDxhIGhyZWY9Ii4vIj7pppbpobU8L2E+DQogICAgICAgICAgICAgICAgPiA8YSBocmVmPSc/dHlwZT1wcm9kdWN0JmlkPVtTX3N1YmlkXSc+W1Nfc3VidGl0bGVdPC9hPg0KICAgICAgICAgICAgICAgICAgICAgICA+IDxhIGhyZWY9Jz90eXBlPXByb2R1Y3QmaWQ9W1NfaWRdJz5bU190aXRsZV08L2E+DQogICAgICAgICAgICAgICAgICAgICAgPiA8c3Bhbj5bUF90aXRsZV08L3NwYW4+DQogICAgPC9kaXY+DQo8L2Rpdj4NCg0KDQo8ZGl2IGNsYXNzPSdtaWRkbGUgd2xpbWl0Jz4NCiAgICAgICAgPGRpdiBjbGFzcz0nbS1sJyBzd2YgPSAiMSIgIGhlaWdodD0iNDAwMiI+DQoNCiAgICAgICAgICA8ZGl2IGNsYXNzPSdiYW5xdWFuJz4NCiAgICAgICAgICAgIA0KICAgICAgICAgICAgPGgxIGNsYXNzPSd0aXRsZSc+W1BfdGl0bGVdPC9oMT4NCiAgICAgICAgICAgIDxlbSBjbGFzcz0nYmotY29sbGVjdCc+PGRpdiBpZD0iY29sbGVjdGlvbl9wcm9kdWN0IiBwaWQ9IltQX2lkXSI+PC9kaXY+PC9lbT4NCiAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBsZWZ0OyI+DQpbUF9jb250ZW50XQ0KICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtLWFib3V0IiBzdHlsZT0icGFkZGluZy10b3A6IDIwcHg7bWFyZ2luLXRvcDogMzBweDsiPg0KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0icGFnZXIgcGFnZXItcm91bmQiPg0KICAgICAgICAgICAgPGxpIGNsYXNzPSJwcmV2aW91cyAiPiA8YSBocmVmPSdbUF9QdXJsXSc+5LiK5LiA5Liq77yaW1BfUHRpdGxlXTwvYT4gIDwvbGk+DQogICAgICAgICAgICA8bGkgY2xhc3M9Im5leHQgIj4gPGEgaHJlZj0nW1BfTnVybF0nPuS4i+S4gOS4qu+8mltQX050aXRsZV08L2E+ICA8L2xpPg0KICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgDQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KDQoNCiAgICAgICAgPGRpdiBjbGFzcz0nbS1yJz4NCiAgICAgICAgICAgIDwhLS3kuIvovb3nm7jlhbPmqKHlnZctLT4NCg0KPGRpdiBjbGFzcz0nd29yay1pbmZvJyA+DQogIDxpbWcgc3JjPSJbUF9waWNdIiBzdHlsZT0id2lkdGg6IDEwMCUiPg0KPC9kaXY+DQoNCiAgICAgICAgICAgIDxkaXYgY2xhc3M9J3dvcmstZG93bicgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7Zm9udC1zaXplOiAxMnB4OyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImZvbnQtc2l6ZTogMjVweDttYXJnaW46IDIwcHggMDsiPuS7t+agvO+8mu+/pTxzcGFuIHN0eWxlPSJjb2xvcjogI2ZmMDAwMDtmb250LXdlaWdodDogYm9sZDsiIGlkPSJwcmljZSI+W1BfcHJpY2VdPC9zcGFuPltQX3ZpcF08L2Rpdj4NCiAgICAgICAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOiAtMTBweDsiPltQX3F1YW5dPC9kaXY+DQogICAgICAgICAgPGZvcm0gaWQ9ImJ1eSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249ImJ1eS5waHA/dHlwZT1wcm9kdWN0aW5mbyZpZD1bUF9pZF0iPg0KICAgICAgICAgICAgICAgIDxwIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAxMHB4Ij48Yj7otK3kubDmlbDph4/vvJo8L2I+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdidXR0b24nIGNsYXNzPSdhZGQnIHZhbHVlPSctJyBvbkNsaWNrPSdqYXZhc2NyaXB0OmlmKHRoaXMuZm9ybS5hbW91bnQudmFsdWU+PTIpe3RoaXMuZm9ybS5hbW91bnQudmFsdWUtLTt9Jz4NCiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J25vJyB2YWx1ZT0nMScgaWQ9J2Ftb3VudCc+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdidXR0b24nIGNsYXNzPSdhZGQnIHZhbHVlPScrJyBpZD0ncGx1cycgb25DbGljaz0namF2YXNjcmlwdDppZih0aGlzLmZvcm0uYW1vdW50LnZhbHVlPFtQX3Jlc3RdKXt0aGlzLmZvcm0uYW1vdW50LnZhbHVlKys7fSc+DQogICAgICAgICAgICAgIO+8iOW6k+WtmO+8mjxzcGFuIGlkPSJnZ19yZXN0Ij5bUF9yZXN0dGl0bGVdPC9zcGFuPu+8iTwvcD4NCiAgICAgICAgICAgICAgW1BfZ2ddDQogIDxidXR0b24gdHlwZT0ic3VibWl0IiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyO2JvcmRlcjpub25lO2Rpc3BsYXk6IGJsb2NrOw0KICAgIG1hcmdpbjogMThweCBhdXRvOw0KICAgIHdpZHRoOiAzMDBweDsNCiAgICBoZWlnaHQ6IDU1cHg7DQogICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAycHg7DQogICAgLW1vei1ib3JkZXItcmFkaXVzOiAycHg7DQogICAgYm9yZGVyLXJhZGl1czogNHB4Ow0KICAgIGJhY2tncm91bmQ6ICMwMDdhZmY7DQogICAgY29sb3I6ICNmZmY7DQogICAgZm9udC1zaXplOiAxcGM7DQogICAgbGluZS1oZWlnaHQ6IDU1cHg7DQogICAgY3Vyc29yOiBwb2ludGVyOyI+PGkgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICBtYXJnaW4tbGVmdDogLTFwYzsNCiAgICB3aWR0aDogNDdweDsNCiAgICBoZWlnaHQ6IDQwcHg7DQogICAgYmFja2dyb3VuZDogdXJsKHRlbXBsYXRlL3QxNC9zdGF0aWMvY29tbW9uL2ltYWdlL2NvbW1vbl9uZXcucG5nKSAwIC00NDZweCBuby1yZXBlYXQ7DQogICAgdmVydGljYWwtYWxpZ246IC04cHg7Ij48L2k+56uL5Y2z5LiL6L29PC9idXR0b24+DQoNCjxmaC1mdW5jdGlvbj4NCg0KDQokYXBpPSRhcGkuIjxzcGFuIHN0eWxlPVwiZGlzcGxheTpub25lXCI+Ii51bmxvZ2luX3Byb2R1Y3QoImJ0biBidG4tbGcgYnRuLXNxdWFyZWQgYnRuLXByaW1hcnkgbWFyZ2luLXJpZ2h0LTEwIiwkaWQpLiI8L3NwYW4+IjsNCiAgICAgICAgICAgICAgPC9maC1mdW5jdGlvbj4NCiAgICAgICAgICAgICAgPC9mb3JtPg0KICAgICAgICAgICAgICAgICAgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdkLW1zZyAnID4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2QtdmlldycgdGl0bGU9IueCuei1niI+PGkgcGlkPSJ5cXJ4bnp4cSIgY2xhc3M9J2Rvd24tbnVtIGRpYW56YW4gJz48L2k+PHNwYW4gY2xhc3M9J2R6cyc+MTEzOTwvc3Bhbj48c3BhbiBjbGFzcz0namlheWknPisxPC9zcGFuPjwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J2QtdmlldycgdGl0bGU9Iua1j+iniCI+PGkgY2xhc3M9J3ZpZXctbnVtJz48L2k+W1Bfdmlld108L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdkLXZpZXcnIHRpdGxlPSLmlLbol48iPjxpIGNsYXNzPSdjb2xsLW51bSc+PC9pPltQX2NvbGxlY3Rpb25dPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgIDwvZGl2Pg0KDQoNCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSd3b3JrLWluZm8nID4NCiAgICAgICAgICAgICAgICAgICAgPHVsPg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgPGxpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0nbS1sMic+5Lu35qC8PC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdtLXIyJz7vv6VbUF9wcmljZV08L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J20tbDInPuWIhuexuzwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0nbS1yMic+ICBbU190aXRsZV08L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdtLWwyJz7mtY/op4ggPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSdtLXIyJz5bUF92aWV3XeasoTwvc3Bhbj4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J20tbDInPuagh+etviA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9J20tcjInIHN0eWxlPSJ3aWR0aDogMjIwcHg7dGV4dC1hbGlnbjogcmlnaHQ7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaC1mdW5jdGlvbj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoJFBfdGFnPT0iIil7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYXBpPSLml6AiOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGFnPWV4cGxvZGUoIiAiLCRQX3RhZyk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoJGk9MDskaTxjb3VudCgkdGFnKTskaSsrKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhcGk9JGFwaS4iPGEgaHJlZj1cIj90eXBlPXByb2R1Y3QmdGFnPSIuJHRhZ1skaV0uIlwiPiIuJHRhZ1skaV0uIjwvYT4gIjsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmgtZnVuY3Rpb24+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4NCiAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgDQoNCg0KDQoNCg0KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzdXBwb3J0Jz4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ncmVjb21tZW5kJz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg5pyA5paw55u45YWz5L2c5ZOBICAgICAgICAgICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Ij90eXBlPXByb2R1Y3QmaWQ9W1NfaWRdIj7mm7TlpJogPiA8L2E+DQogICAgICAgICAgICAgICANCg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmgtZnVuY3Rpb24+DQogICAgJGk9MTsNCiAgICBmb3JlYWNoKGdldGxpc3QoInNlbGVjdCAqIGZyb20gc2xfcHJvZHVjdCB3aGVyZSBQX3NvcnQ9JFNfaWQgIG9yZGVyIGJ5IHJhbmQoKSBkZXNjIGxpbWl0IDMiKSBhcyAkcCl7ICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgc3dpdGNoKCRpKXsNCiAgICAgIGNhc2UgMToNCiAgICAgICRpY29uPSJvbmUiOw0KICAgICAgYnJlYWs7DQogICAgICBjYXNlIDI6DQogICAgICAkaWNvbj0idHdvIjsNCiAgICAgIGJyZWFrOw0KICAgICAgY2FzZSAzOg0KICAgICAgJGljb249InRocmVlIjsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgICAkYXBpPSRhcGkuIjxhIGhyZWY9XCI/dHlwZT1wcm9kdWN0aW5mbyZpZD0iLiRwWyJQX2lkIl0uIlwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiaW1nXCI+DQogICAgICAgICAgICAgICAgPGkgY2xhc3M9XCIiLiRpY29uLiJcIj48L2k+DQogICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImxhenlcIiBhbHQ9XCIiLiRwWyJQX3RpdGxlIl0uIlwiIGRhdGEtb3JpZ2luYWw9XCIiLnBpYyhzcGxpdHgoJHBbIlBfcGljIl0sInwiLDApKS4iXCIgc3JjPVwiIi5waWMoc3BsaXR4KCRwWyJQX3BpYyJdLCJ8IiwwKSkuIlwiIHN0eWxlPVwid2lkdGg6IDkwcHg7XCI+DQogICAgICAgICAgICAgIDwvYT4iOw0KICAgICRpKz0xOw0KICAgIH0NCjwvZmgtZnVuY3Rpb24+DQoNCg0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICANCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KPGRpdiBjbGFzcz0neW91LWxpa2UnPg0KICAgIDxkaXYgY2xhc3M9J3dsaW1pdCc+DQogICAgICAgIDxkaXYgY2xhc3M9J3ktdGl0bGUnPuaCqOWPr+iDveS8muWWnOasoueahOWFtuS7luaooeadvzwvZGl2Pg0KDQogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSd0LWJveCB3bGltaXQgbGlzdCc+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJvbmVzIHBuZ29uZXMiPg0KDQo8ZmgtZnVuY3Rpb24+DQoNCiAgICBmb3JlYWNoKGdldGxpc3QoInNlbGVjdCAqIGZyb20gc2xfcHJvZHVjdCAgb3JkZXIgYnkgcmFuZCgpIGRlc2MgbGltaXQgOCIpIGFzICRwKXsgICAgICAgICAgICAgICAgICAgICAgICANCg0KDQogICAgJFBfY29sbGVjdGlvbj1nZXRycygic2VsZWN0IGNvdW50KENfaWQpIGFzIENfY291bnQgZnJvbSBzbF9jb2xsZXRpb24gd2hlcmUgQ19jaWQ9Ii4kcFsiUF9pZCJdLiIgYW5kIENfdHlwZT0wIiwiQ19jb3VudCIpOw0KICAgICRhcGk9JGFwaS4iPGRsIGNsYXNzPVwiYm94IHR3byBncmlkLXYgY2JveFwiIGRhdGEtaWQ9XCJhZWJiZ3JhalwiPg0KICAgIDxkZD4gDQogICAgICAgIDxhIGNsYXNzPVwiaW1nIGltZy15c1wiIHN0eWxlPVwiaGVpZ2h0OjI2MHB4O2xpbmUtaGVpZ2h0OjI2MHB4O292ZXJmbG93OmhpZGRlblwiIGhyZWY9XCI/dHlwZT1wcm9kdWN0aW5mbyZpZD0iLiRwWyJQX2lkIl0uIlwiID4NCg0KICAgICAgICA8aW1nIHRpdGxlPVwiIi4kcFsiUF90aXRsZSJdLiJcIiBjbGFzcz1cImxhenlcIiAgZGF0YS1vcmlnaW5hbD1cIiIucGljKHNwbGl0eCgkcFsiUF9waWMiXSwifCIsMCkpLiJcIiBzdHlsZT1cIndpZHRoOiAyNjBweFwiPg0KICAgICAgICA8ZGl2IGNsYXNzPVwibWFya1wiPjwvZGl2Pg0KICAgICAgICA8L2E+DQogICAgPC9kZD4NCg0KICAgIDxkdD4NCiAgICAgICA8YSBocmVmPVwiP3R5cGU9cHJvZHVjdGluZm8maWQ9Ii4kcFsiUF9pZCJdLiJcIiAgY2xhc3M9XCJidGl0bGVcIj4NCiAgICAgICAgIi4kcFsiUF90aXRsZSJdLiIgICAgICAgPC9hPg0KICAgIDwvZHQ+DQoNCiAgICA8ZGQ+DQogICAgICAgIDxzcGFuIHBpZD1cImFlYmJncmFqXCIgdHlwZT1cIjFcIiBjbGFzcz1cImNsaWNrLWRvd24gZG93biB5YmMgZG93bnBuZ1wiPjxpPjwvaT7kuIvovb08L3NwYW4+DQogICAgICAgIDxzcGFuIGNsYXNzPVwiZG93bmNvXCI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz1cImR4XCI+PGk+PC9pPiIuJHBbIlBfdmlldyJdLiI8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbGxlY3RudW1cIj48aT48L2k+Ii4kUF9jb2xsZWN0aW9uLiI8L3NwYW4+DQogICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFucXVhblwiPjwvZGl2Pg0KICAgICAgICAgICAgICAgIA0KICAgIDwvZGQ+DQoNCiAgICA8L2RsPiI7DQoNCg0KICAgIH0NCjwvZmgtZnVuY3Rpb24+DQoNCg0KICAgIA0KICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgDQogICAgICAgICAgPC9kaXY+DQoNCjwvZGl2Pg0KDQoNCjxzY3JpcHQgc3JjPSJ0ZW1wbGF0ZS90MTQvc3RhdGljLyEhaW5kZXgvanMvanF1ZXJ5LTEuNy4xLm1pbi5qcyxsaWIvc3RvcmUubGVnYWN5Lm1pbi5qcyxjb21tb24vanMvbGF6eWxvYWQubWluLmpzLGNvbW1vbi9qcy9jb21tb24yMDIxMDExNC5qcyI+PC9zY3JpcHQ+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRlbXBsYXRlL3QxNC9zdGF0aWMvY3JlZGl0L2Nzcy9zaWduLWFsZXJ0LmNzcyI+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZW1wbGF0ZS90MTQvc3RhdGljL2NyZWRpdC9qcy9zaWduMjAyMDA2MTguanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCBzcmM9InRlbXBsYXRlL3QxNC9zdGF0aWMvZGV0YWlsL2pzL3Nob3cyMDE5MDUyMi5qcyI+PC9zY3JpcHQ+DQoNCjxkaXYgaWQ9Im1lbmdjaGVuZyI+PC9kaXY+DQogICAgICAgIDxkaXYgaWQ9ImxvZ2luIj4NCjxkaXYgY2xhc3M9ImNsb3NlIGxvZ2luY29sc2UiPjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYXN0b25lIj4NCiAgICA8ZGl2IGNsYXNzPSJsLWxvZ28iID4NCiAgICA8aW1nIHNyYz0ibWVkaWEvMjAyMTAyMDEwODA4NDhPeC5wbmciIGFsdD0i55So5oi355m76ZmGbG9nbyIgc3R5bGU9ImhlaWdodDogIDgwcHgiPg0KICA8L2Rpdj4NCg0KPGZoLWZ1bmN0aW9uPg0KJGM9Z2V0cnMoInNlbGVjdCAqIGZyb20gc2xfY29uZmlnIik7DQppZigkY1siQ19xcW9uIl09PTEpew0KICAkYXBpPSRhcGkuIjxhIGhyZWY9XCJxcS9xcWxvZ2luLnBocD9mcm9tPSIudXJsZW5jb2RlKGdldGh0dHAoKS4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJF9TRVJWRVJbJ1BIUF9TRUxGJ10uJz8nLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSkuIlwiICBjbGFzcz1cImwtcXFcIj48aT48L2k+UVE8c3BhbiBjbGFzcz1cImxvZ2lubmFtZSBcIj7nmbvlvZU8L3NwYW4+PC9hPiI7DQp9DQppZigkY1siQ193eG9uIl09PTEpew0KICAkYXBpPSRhcGkuIjxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBvbmNsaWNrPVwib3BlbkxvZ2luKCd3ZWNoYXQnKVwiIGNsYXNzPVwibC13eFwiPjxpPjwvaT7lvq7kv6E8c3BhbiBjbGFzcz1cImxvZ2lubmFtZSBcIj7nmbvlvZU8L3NwYW4+PC9hPiI7DQp9DQo8L2ZoLWZ1bmN0aW9uPg0KDQogIDxhIGhyZWY9ImphdmFzY3JpcHQ6OyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsLWRlYWwgZGl5aWdlIj7ms6jlhozmiJbngrnlh7vnmbvlvZXku6PooajmgqjlkIzmhI/jgIrnlKjmiLfljY/orq7jgIs8L2E+DQogIDxkaXYgY2xhc3M9ImRpZmYtbG9naW4iPg0KDQo8ZmgtZnVuY3Rpb24+DQoNCg0KaWYoJGNbIkNfZHhvbiJdPT0xKXsNCiAgJGFwaT0kYXBpLiI8YSBocmVmPVwibWVtYmVyL21vYmlsZV9sb2dpbi5waHA/ZnJvbT0iLnVybGVuY29kZShnZXRodHRwKCkuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydQSFBfU0VMRiddLic/Jy4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pLiJcIiBjbGFzcz1cInBob25lLWxvbmdpblwiIHR5cGU9XCIxXCI+5omL5py6PHNwYW4gc3R5bGU9XCJjb2xvcjojOGE4YThhXCIgY2xhc3M9XCJsb2dpbm5hbWVcIj7nmbvlvZU8L3NwYW4+PC9hPiAiOw0KfQ0KaWYoJGNbIkNfcmVnb24iXT09MSl7DQogICRhcGk9JGFwaS4iPGEgaHJlZj1cIm1lbWJlci9sb2dpbi5waHA/ZnJvbT0iLnVybGVuY29kZShnZXRodHRwKCkuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydQSFBfU0VMRiddLic/Jy4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pLiJcIiBjbGFzcz1cInBob25lLWxvbmdpblwiIHR5cGU9XCIxXCI+6YKu566xPHNwYW4gc3R5bGU9XCJjb2xvcjojOGE4YThhXCIgY2xhc3M9XCJsb2dpbm5hbWVcIj7nmbvlvZU8L3NwYW4+PC9hPiI7DQp9DQoNCjwvZmgtZnVuY3Rpb24+DQoNCiAgICAgIDxhIGhyZWY9Im1lbWJlci9yZWcucGhwP2Zyb209PGZoLWZ1bmN0aW9uPiRhcGk9dXJsZW5jb2RlKGdldGh0dHAoKS4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJF9TRVJWRVJbJ1BIUF9TRUxGJ10uJz8nLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSk7PC9maC1mdW5jdGlvbj4iIGNsYXNzPSJsLWRlYWwgaXNyZWciIHR5cGU9IjEiPuayoeaciei0puWPtyAgPHNwYW4+56uL5Y2z5rOo5YaMPC9zcGFuPjwvYT4NCiAgPC9kaXY+ICANCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJsLWxlZnQiPg0KICAgIDxkaXYgY2xhc3M9InRpdGxlIj7mgqjnmoTnvZHnq5nlkI3np7A8L2Rpdj4NCiAgICA8dWw+DQogICAgICAgIDxsaT48aSBjbGFzcz0iaTEiPjwvaT7mtbfph4/liJvmhI/mqKHmnb/vvIzmu6HotrPmgqjnmoTpnIDmsYI8L2xpPg0KICAgICAgICA8bGk+PGkgY2xhc3M9ImkyIj48L2k+5a6e55So5piT5L+u5pS577yM5o+Q5Y2H5oKo55qE5pWI546HPC9saT4NCiAgICAgICAgPGxpPjxpIGNsYXNzPSJpMyI+PC9pPumrmOi0qOmHj+eyvuWTgeeDreeCueWGheWuueavj+aXpeabtOaWsDwvbGk+DQogICAgICAgIDxsaT48aSBjbGFzcz0iaTQiPjwvaT7kuJPkuJrlrqLmnI3mjqXlvoXvvIzlj4rml7bop6PlhrPpl67popg8L2xpPg0KICAgIDwvdWw+DQo8L2Rpdj4NCjwvZGl2Pg0KDQogICAgPGRpdiBjbGFzcz0iZm9vdGVyIj4NCiAgICAgPGRpdiBjbGFzcz0iZm9vdGVyMSI+DQogICAgICAgIDxkaXYgY2xhc3M9InVzZXItc2F5Ij4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib3giPjxpIGNsYXNzPSJpLTEiPjwvaT7ku7fmoLzkvJjmg6A8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYm94Ij48aSBjbGFzcz0iaS0yIj48L2k+6Ie06Ie757K+5ZOBPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJveCI+PGkgY2xhc3M9ImktMyI+PC9pPumrmOi0qOWUruWQjjwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib3giPjxpIGNsYXNzPSJpLTQiPjwvaT4xMDAl5ruh5oSPPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJveDEiPjxpIGNsYXNzPSJpLTUiPjwvaT7mj5DljYfmlYjnjoc8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImZvb3RlcjIiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ3bGltaXQiPg0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyLWxvZ28iID4NCiAgICAgICAgICAgICAgPGltZyBzcmM9Im1lZGlhLzIwMTkxMTI2MjI0MzUyV2YuanBnIiBzdHlsZT0iaGVpZ2h0OiAxMDBweDttYXJnaW4tdG9wOiAxMHB4OyI+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbXBhbnktc2F5Ij4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGF0ZW1lbnRzIj4NCjxmaC1mdW5jdGlvbj4NCg0KZm9yZWFjaChnZXRsaXN0KCJzZWxlY3QgKiBmcm9tIHNsX3RleHQgb3JkZXIgYnkgVF9pZCBkZXNjIikgYXMgJHQpew0KICAgICRhcGk9JGFwaS4iPGEgcmVsPVwibm9mb2xsb3dcIiBocmVmPVwiP3R5cGU9dGV4dCZpZD0iLiR0WyJUX2lkIl0uIlwiIHRhcmdldD1cIl9ibGFua1wiPiIuJHRbIlRfdGl0bGUiXS4iPC9hPjxzcGFuPnw8L3NwYW4+ICI7DQp9DQokYXBpPSBzdWJzdHIoJGFwaSwwLHN0cmxlbigkYXBpKS0xNSk7DQo8L2ZoLWZ1bmN0aW9uPg0KDQogICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29weXJpZ2h0cyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwOi8vYmVpYW4ubWlpdC5nb3YuY24vIiB0YXJnZXQ9Il9ibGFuayI+5LqsSUNQ5aSHMDAwMDAwMDDlj7c8L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InR1a3VwcHQtcmlnaHQiIHN0eWxlPSJ3aWR0aDo1MDBweCI+Q29weXJpZ2h0IMKpIDIwMTUtMjAyMCDmgqjnmoTlhazlj7jlkI3np7Ag54mI5p2D5omA5pyJPC9zcGFuPg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KPC9kaXY+DQo8bGluayBocmVmPSdjc3MvbGFucmVuemhpamlhLmNzcycgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2NzcycgLz48c2NyaXB0IHNyYz0nanMvanF1ZXJ5LktpblNsaWRlc2hvdy0xLjIuMS5taW4uanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCc+PC9zY3JpcHQ+PGRpdiBpZD0nb25saW5lX3FxX2xheWVyJyBzdHlsZT0nei1pbmRleDoyMDAwOyc+PGRpdiBpZD0nb25saW5lX3FxX3RhYic+PGRpdiBjbGFzcz0nb25saW5lX2ljb24nPjxhIGlkPSdmbG9hdFNob3cnIHN0eWxlPSdkaXNwbGF5OmJsb2NrOycgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApOyc+Jm5ic3A7PC9hPjxhICBpZD0nZmxvYXRIaWRlJyBzdHlsZT0nZGlzcGxheTpub25lOycgaHJlZj0namF2YXNjcmlwdDp2b2lkKDApOyc+Jm5ic3A7PC9hPjwvZGl2PjwvZGl2PjxkaXYgaWQ9J29ubGluZVNlcnZpY2UnIHN0eWxlPSdkaXNwbGF5Om5vbmUnPjxkaXYgY2xhc3M9J29ubGluZV93aW5kb3dzIG92ZXJ6Jz48ZGl2IGNsYXNzPSdvbmxpbmVfd190b3AnPjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV93X2Mgb3ZlcnonPjxkaXYgY2xhc3M9J29ubGluZV9iYXIgZXhwYW5kJyBpZD0nb25saW5lU29ydDEnPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoMSknPuWcqOe6v+WuouacjTwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTEnPjx1bCBjbGFzcz0nb3ZlcnonPjxsaT48YSB0aXRsZT0n54K55Ye76L+Z6YeM57uZ5oiR5Y+R5raI5oGvJyBocmVmPSdodHRwOi8vd3BhLnFxLmNvbS9tc2dyZD92PTMmdWluPTEyMzEyMzEyMyZzaXRlPXFxJm1lbnU9eWVzJyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3FxX2ljb24nPuWUruWJjeWSqOivojwvYT48L2xpPjxsaT48YSB0aXRsZT0n54K55Ye76L+Z6YeM57uZ5oiR5Y+R5raI5oGvJyBocmVmPSdodHRwOi8vd3d3LnRhb2Jhby5jb20vd2Vid3cvd3cucGhwP3Zlcj0zJnRvdWlkPXRhb2JhbyZzaXRlaWQ9Y250YW9iYW8mc3RhdHVzPTEmY2hhcnNldD11dGYtOCcgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPSd3d19pY29uJz7llK7lkI7mnI3liqE8L2E+PC9saT48L3VsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV9iYXIgY29sbGFwc2UyJyBpZD0nb25saW5lU29ydDInPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoMiknPueUteivneWuouacjTwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTInPjx1bCBjbGFzcz0nb3ZlcnonPjxsaT4wMTAtMTAwODY8L2xpPjwvdWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nb25saW5lX2JhciBjb2xsYXBzZTInIGlkPSdvbmxpbmVTb3J0Myc+PGgyPjxhIG9uY2xpY2s9J2NoYW5nZU9ubGluZSgzKSc+572R56uZ5LqM57u056CBPC9hPjwvaDI+PGRpdiBjbGFzcz0nb25saW5lX2NvbnRlbnQgb3ZlcnonIGlkPSdvbmxpbmVUeXBlMyc+PHVsIGNsYXNzPSdvdmVyeic+PHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0nanMvcXJjb2RlLm1pbi5qcyc+PC9zY3JpcHQ+PGRpdiBpZD0ncXJjb2RlJyBzdHlsZT0nbWFyZ2luOjAgMCAxMHB4IDEwcHg7Jz48L2Rpdj48c2NyaXB0PnZhciBxcmNvZGUgPSBuZXcgUVJDb2RlKCdxcmNvZGUnLCB7d2lkdGg6IDExMCxoZWlnaHQ6IDExMCxjb2xvckRhcms6ICcjMDAwMDAwJyxjb2xvckxpZ2h0OiAnI2ZmZmZmZicsY29ycmVjdExldmVsOiBRUkNvZGUuQ29ycmVjdExldmVsLkh9KTtxcmNvZGUubWFrZUNvZGUoJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAxNCcpOzwvc2NyaXB0PjwvdWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nb25saW5lX2JhciBjb2xsYXBzZTInIGlkPSdvbmxpbmVTb3J0NCc+PGgyPjxhIG9uY2xpY2s9J2NoYW5nZU9ubGluZSg0KSc+5b6u5L+h5YWs5LyX5Y+3PC9hPjwvaDI+PGRpdiBjbGFzcz0nb25saW5lX2NvbnRlbnQgb3ZlcnonIGlkPSdvbmxpbmVUeXBlNCc+PHVsIGNsYXNzPSdvdmVyeic+PGltZyBzcmM9J21lZGlhLzIwMTkxMTI2MjI0MzUyV2YuanBnJyB3aWR0aD0nMTIwJyAvPjwvdWw+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0nb25saW5lX3dfYm90dG9tJz48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4NCjxhIGhyZWY9J2phdmFzY3JpcHQ6OycgdGFyZ2V0PSdfYmxhbmsnIG9uY2xpY2s9J2FsZXJ0KCLmnKznvZHnq5nnlLHjgIrlj5HotKcxMDDjgIvlhY3otLnniYjmkK3lu7rvvIzor7fli7/nlKjkvZzllYbkuJrnlKjpgJQiKTt3aW5kb3cubG9jYXRpb24uaHJlZj0iaHR0cDovL2ZhaHVvMTAwLmNuIicgdGl0bGU9J+WPkei0pzEwMCc+PGRpdiBzdHlsZT0icG9zaXRpb246IGZpeGVkO3otaW5kZXg6OTk5OTk7Ym90dG9tOiAxMHB4O2xlZnQ6IGNhbGMoNTAlIC0gMTAwcHgpO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjcpO3RleHQtYWxpZ246IGNlbnRlcjt3aWR0aDogMjAwcHg7aGVpZ2h0OiAzMHB4O2xpbmUtaGVpZ2h0OiAzMHB4O2JvcmRlci1yYWRpdXM6IDMwcHg7Zm9udC1zaXplOiAxOHB4O2NvbG9yOiAjMzMzMzMzIj48aW1nIHNyYz0iaHR0cDovL2ZhaHVvMTAwLmNuL21lZGlhLzIwMjAxMDA5MTM0MTIwbFUuaWNvIiBzdHlsZT0iaGVpZ2h0OiAyMHB4O3dpZHRoOiAyMHB4O21hcmdpbi1yaWdodDogNXB4O3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ij7lj5HotKcxMDA8L2Rpdj48L2E+PHNjcmlwdD4KCQlmdW5jdGlvbiBhZGRjYXJ0KCl7CgkJICAkLmFqYXgoewoJCSAgICAgICAgdHlwZTogIlBPU1QiLAoJCSAgICAgICAgdXJsOiAiYWRkY2FydC5waHA/dHlwZT1hZGRjYXJ0JmlkPVtQX2lkXSIsCgkJICAgICAgICBkYXRhOiAkKCIjYnV5Iikuc2VyaWFsaXplKCksCgkJICAgICAgICBzdWNjZXNzOmZ1bmN0aW9uKGQpewoJCSAgICAgICAgICAgIGlmKGQ9PSJzdWNjZXNzIil7CgkJICAgICAgICAgICAgICBhbGVydCgi5Yqg5YWl6LSt54mp6L2m5oiQ5YqfIik7CgkJICAgICAgICAgICAgfWVsc2V7CgkJICAgICAgICAgICAgICBhbGVydChkKTsKCQkgICAgICAgICAgICB9CgkJICAgICAgIH0KCQkgICAgIH0pOwoJCX0KCQk8L3NjcmlwdD4KCQk8L2JvZHk+IA0KPC9odG1sPiA=