0e6487b9d6b68518df57f9b302ad4164PCEtLWZmNGVMZnRwd01XYXduS0dBandvSHdOTkdaR2pqZGZNOC9nQlVKSHhRWnhIcTJiSWpZaEp5ZjZ2QnFIcUgxeTdYeEhzMis4YWNmUjVweVhLYTZTVks5UEVyQTJBcFVZR2gwWUEwK281OTZGWUYvcWwrek1wR1VWM084aVNkTmp2OUZHb2Zwa2hSR0Zsd3QxUVRNZUFzOVF2UUw5M2w3MS93S3JMT1JBdkVHRlJ1Yy9TZzBVakF5bURyZEJSV2pnWVRSak9RcnpwZEhEM2pBLS0+PGZoLWZ1bmN0aW9uPg0KJHBhZ2U9JF9HRVRbInBhZ2UiXTsNCiRvcmRlcmJ5PSRfR0VUWyJvcmRlcmJ5Il07DQokdGFnPXQoJF9HRVRbInRhZyJdKTsNCg0KDQpzd2l0Y2goJG9yZGVyYnkpew0KICBjYXNlICJub3JtYWwiOg0KICBjYXNlICIiOg0KICAgICRvcmRlcj0iIG9yZGVyIGJ5IFBfdG9wIGRlc2MsUF9vcmRlciBhc2MsUF9pZCBkZXNjIjsNCiAgYnJlYWs7DQogIGNhc2UgImhvdCI6DQogICAgJG9yZGVyPSIgb3JkZXIgYnkgUF92aWV3IGRlc2MiOw0KICBicmVhazsNCiAgY2FzZSAidGltZSI6DQogICAgJG9yZGVyPSIgb3JkZXIgYnkgUF9pZCBkZXNjIjsNCiAgYnJlYWs7DQp9DQokUE9TVD0kX0dFVDsNCg0KJHVybD1nZXRodHRwKCkuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydQSFBfU0VMRiddLic/Jy4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ107DQppZigkdGFnPT0iIil7DQogICR0YWdpbmZvPSIiOw0KfWVsc2V7DQogICR0YWdpbmZvPSIgYW5kIENPTkNBVChcIiBcIixQX3RhZyxcIiBcIikgbGlrZSAnJSAiLiR0YWcuIiAlJyI7DQp9DQoNCiRNX2lkPSRfR0VUWyJNX2lkIl07DQppZigkcGFnZT09IiIpew0KICAkcGFnZT0xOw0KfQ0KaWYoJE1faWQhPSIiKXsNCiAgJE1faW5mbz0iIGFuZCBQX21pZD0kTV9pZCAiLiR0YWdpbmZvOw0KfWVsc2V7DQogICRNX2luZm89IiBhbmQgUF9zaD0xIi4kdGFnaW5mbzsNCn0NCg0KJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9wc29ydCB3aGVyZSBTX2lkPSIuJGlkOw0KICAkcmVzdWx0ID0gbXlzcWxpX3F1ZXJ5KCRjb25uLCAkc3FsKTsNCiAgJHJvdyA9IG15c3FsaV9mZXRjaF9hc3NvYygkcmVzdWx0KTsNCiAgaWYgKG15c3FsaV9udW1fcm93cygkcmVzdWx0KSA+IDApIHsNCiAgICAkU19zdWI9JHJvd1siU19zdWIiXTsNCiAgfQ0KDQppZigkaWQ9PTApew0KICAkc3FsPSJzZWxlY3QgY291bnQoUF9pZCkgYXMgUF9jb3VudCBmcm9tIHNsX3Byb2R1Y3Qgd2hlcmUgUF9kZWw9MCAiLiRNX3BpbmZvLiIgICIuc2h1eGluZygiUF9zaHV4aW5nIikuIiAkTV9pbmZvIG9yZGVyIGJ5IFBfb3JkZXIsUF9pZCBkZXNjIjsNCn1lbHNlew0KICBpZigkU19zdWI9PTApew0KICAgICRzcWw9InNlbGVjdCBjb3VudChQX2lkKSBhcyBQX2NvdW50IGZyb20gc2xfcHJvZHVjdCxzbF9wc29ydCB3aGVyZSBTX2RlbD0wICIuc2h1eGluZygiUF9zaHV4aW5nIikuIiAkTV9pbmZvIGFuZCBQX2RlbD0wICIuJE1fcGluZm8uIiAgYW5kIFBfc29ydD1TX2lkIGFuZCBTX3N1Yj0iLiRpZC4iIG9yZGVyIGJ5IFBfb3JkZXIsUF9pZCBkZXNjIjsNCiAgfWVsc2V7DQogICAgJHNxbD0ic2VsZWN0IGNvdW50KFBfaWQpIGFzIFBfY291bnQgZnJvbSBzbF9wcm9kdWN0LHNsX3Bzb3J0IHdoZXJlIFNfZGVsPTAgIi5zaHV4aW5nKCJQX3NodXhpbmciKS4iICRNX2luZm8gYW5kIFBfZGVsPTAgIi4kTV9waW5mby4iICBhbmQgUF9zb3J0PVNfaWQgYW5kIFNfaWQ9Ii4kaWQuIiBvcmRlciBieSBQX29yZGVyLFBfaWQgZGVzYyI7DQogIH0NCn0NCg0KJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgJHNxbCk7DQokcm93ID0gbXlzcWxpX2ZldGNoX2Fzc29jKCRyZXN1bHQpOw0KJFBfY291bnQ9JHJvd1siUF9jb3VudCJdOw0KDQokcGFnZV9udW09aW50dmFsKCRQX2NvdW50LzE1KSsxOw0KaWYoJFBfY291bnQlMTUgPT0wKXsNCiAgJHBhZ2VfbnVtPSRwYWdlX251bS0xOw0KfQ0KDQpmdW5jdGlvbiBpc19oYXZlcygkYSwkYil7DQogIGlmKGluX2FycmF5KCRhLCRiKSl7DQogICAgICByZXR1cm4gdHJ1ZTsNCiAgfWVsc2V7DQogICAgICByZXR1cm4gZmFsc2U7DQogIH0NCn0NCg0KZnVuY3Rpb24gdXJsKCR1cmwsJGtleSwkdmFsdWUpew0KICAkdXJsPXN0cl9yZXBsYWNlKCImIi4ka2V5LiI9Ii5zdHJfcmVwbGFjZSgiJTNBIiwiOiIsdXJsZW5jb2RlKCR2YWx1ZSkpLCIiLCR1cmwpOw0KICByZXR1cm4gJHVybDsNCn0NCg0KPC9maC1mdW5jdGlvbj4NCjwhRE9DVFlQRSBodG1sPiANCjxodG1sPiANCjxoZWFkPiANCjxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPiANCjx0aXRsZT5bU190aXRsZV1f5oKo55qE572R56uZ5ZCN56ewIC0gUG93ZXJlZCBieSDlj5HotKcxMDA8L3RpdGxlPg0KPGxpbmsgaHJlZj0ibWVkaWEvMjAxOTEyMDgxMTMwMzVlTS5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiIgLz4NCjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJbU19jb250ZW50XSIgLz4NCjxtZXRhIG5hbWU9ImtleXdvcmRzIiBjb250ZW50PSJbU19rZXl3b3Jkc10iIC8+DQoNCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVtcGxhdGUvdDE0L3N0YXRpYy9jb21tb24vY3NzL2NvbW1vbjIwMjEwMTE0LmNzcyIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVtcGxhdGUvdDE0L3N0YXRpYy9jb21tb24vY3NzL2NvbW1vbnNtYWxsMjAyMDA1MTIuY3NzIiAvPg0KDQoNCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVtcGxhdGUvdDE0L3N0YXRpYy9jYXRhZ2UvY3NzL2NhdGVzbzIwMjAwNTEyLmNzcyIgLz4NCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVtcGxhdGUvdDE0L3N0YXRpYy9wbmcvY3NzL3BuZzIwMjAwNDE4LTEuY3NzIiAvPiANCjxsaW5rIGhyZWY9ImNzcy9QYWdlci5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIC8+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgICB2YXIgbm93PW5ldyBEYXRlKCk7DQogICAgICB2YXIgc3RhcnRUaW1lPW5vdy5nZXRUaW1lKCk7DQogICAgICB2YXIgaXNMb2dpbiA9ICBmYWxzZTs7IA0KICAgICAgdmFyIGlzdmlwICA9IDA7DQogICAgICB2YXIgY29kZSA9ICIyIjsNCiAgICAgIHZhciBleGV0aW1lID0gIjAuMDA0IjsNCiAgICAgIHZhciBpc3R1aXNvbmcgPSAxOw0KICAgICAgdmFyIGtpZCA9IDE7DQogICAgICB2YXIgbG9hZHRpbWUgPSAwOw0KICAgICAgdmFyIHVpZCA9IDA7DQogICAgICB2YXIgY2xpY2tfbnVtID0gMDsNCiAgICAgIHZhciBpc3BheSA9IDA7ICAgIDwvc2NyaXB0Pg0KPHNjcmlwdD4KdmFyIF9obXQgPSBfaG10IHx8IFtdOwooZnVuY3Rpb24oKSB7CiAgdmFyIGhtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgaG0uc3JjID0gImh0dHBzOi8vaG0uYmFpZHUuY29tL2htLmpzP2UyZWNjNWE4MjY4ZWExYTRjOTg2MmVjN2I0ZWU1YjExIjsKICB2YXIgcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKVswXTsgCiAgcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShobSwgcyk7Cn0pKCk7Cjwvc2NyaXB0Pgo8L2hlYWQ+IA0KPGJvZHk+IA0KICAgICAgICAgIDwhLS3nu5/kuIDokpnniYgtLT4NCiAgICAgIA0KICAgICAgICA8ZGl2IGNsYXNzPSdoZWFkZXJjYXRhZ2UnPg0KICAgIDxkaXYgY2xhc3M9ImhlYWRlciI+DQogICAgICAgIDxkaXYgY2xhc3M9Im5hdnMgd2xpbWl0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ibG9nbyIgYWx0PSLmgqjnmoTnvZHnq5nlkI3np7AiIGhyZWY9Ii4vIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9J2xvZ29pbWcnIHNyYz0ibWVkaWEvMjAyMTAyMDEwODA4NDhPeC5wbmciIGFsdD0i5oKo55qE572R56uZ5ZCN56ewIj4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJhbGxmZW5sIj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii4vIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Imt1YWkiPummlumhtTwvYT4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ia3VhaSI+5YiG57G7DQogICAgICAgICAgICAgICAgICAgICAgICA8ZW0+PC9lbT4NCiAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KDQogICRzcWw9InNlbGVjdCAqIGZyb20gc2xfcHNvcnQgd2hlcmUgU19zdWI9MCBhbmQgU19kZWw9MCBvcmRlciBieSBTX29yZGVyLFNfaWQgZGVzYyI7DQoNCiAgICAgICAgICAgICAgICBzW1sNCiAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8bGk+PGEgaHJlZj1cIj90eXBlPXByb2R1Y3QmaWQ9Ii4kcm93WyJTX2lkIl0uIlwiIHRhcmdldD1cIl9ibGFua1wiPiIuJHJvd1siU190aXRsZSJdLiI8L2E+PC9saT4iOw0KICAgICAgICAgICAgICAgICAgICBdXQ0KICAgICAgICA8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzZWFyY2hkaXYiID4NCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoIGMtc2VhcmNoIiBpZD0iY2Qtc2VhcmNoLWZsb2F0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaC1ib3giPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdzZWFyY2h0eXBlJz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7ntKDmnZA8L3NwYW4+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtPjwvZW0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGk+PC9pPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgaWQ9J3R5cGVkb3duJz4NCiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYWxsa2lkMCIgICBzdHlsZT0iZGlzcGxheTpub25lOyIgPjxhIGtpZD0iMCIgaHJlZj0iamF2YXNjcmlwdDo7Ij7lhajpg6g8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYWxsa2lkMSIgICAgPjxhIGtpZD0iMSIgaHJlZj0iamF2YXNjcmlwdDo7Ij7ntKDmnZA8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYWxsa2lkMiIgICAgPjxhIGtpZD0iMiIgaHJlZj0iamF2YXNjcmlwdDo7Ij7mlofnq6A8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iYWxsa2lkMyIgICAgPjxhIGtpZD0iMyIgaHJlZj0iamF2YXNjcmlwdDo7Ij7lupfpk7o8L2E+PC9saT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD0ia2V5d29yZC1mbG9hdCIgaXNmb250PSIwIiB0eXBlPSJ0ZXh0IiBrZXktdHlwZT0iMSIgdmFsdWU9IiIgYXV0b2NvbXBsZXRlPSJvZmYiIG5hbWU9InNlYXJjaCIgY2xhc3M9J2ktc2VhcmNoJyAgIHBsYWNlaG9sZGVyPSLmkJzntKLntKDmnZAiPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ncy1uaXUgc2VhcmNoLWJ0bicgaHJlZj0iamF2YXNjcmlwdDo7IiBrZXktdHlwZT0iMSI+PGVtPjwvZW0+PC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZHJvcGRvd24tYm94LWZsb2F0IiBjbGFzcz0iaG90LXNlYXJjaCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjwvZGl2Pg0KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgDQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJsb2dpbiI+DQogICAgICAgICAgICAgICAgPCEtLSDmnKrnmbvlvZUgLS0+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZoLWZ1bmN0aW9uPg0KICAgICAgaWYoJF9TRVNTSU9OWyJNX2xvZ2luIl09PSIiKXsNCiAgICAgICAgJGFwaT0iPHNwYW4gbmFtZT1cIuazqOWGjFwiIGNsYXNzPVwicmVnaXN0XCI+5rOo5YaMPC9zcGFuPiA8c3BhbiBuYW1lPVwi55m75b2VXCIgY2xhc3M9XCJyZWdpc3QtbGdcIj7nmbvlvZU8L3NwYW4+IjsNCiAgICAgIH1lbHNlew0KICAgICAgICAkYXBpPSI8YSBocmVmPVwibWVtYmVyXCIgY2xhc3M9XCJyZWdpc3RcIj4iLiRfU0VTU0lPTlsiTV9sb2dpbiJdLiI8L2E+IDxhIGhyZWY9XCJtZW1iZXIvbG9naW4ucGhwP2FjdGlvbj11bmxvZ2luXCIgY2xhc3M9XCJyZWdpc3QtbGdcIj7pgIDlh7o8L2E+IjsNCiAgICAgIH0NCiAgICA8L2ZoLWZ1bmN0aW9uPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQogPGRpdiBjbGFzcz0iY3J1bWJzIHdsaW1pdCI+DQogICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Ii4vIj7mgqjnmoTnvZHnq5nlkI3np7A8L2E+IDxzcGFuPj48L3NwYW4+IDxhIGhyZWY9IiI+W1NfdGl0bGVdPC9hPiA8L2Rpdj4NCiAgPGRpdiBjbGFzcz0ndHlwZSB3bGltaXQnPg0KICAgICAgICAgPGRpdiBjbGFzcz0nZi10eXBlJyA+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ1bGkiPg0KICAgICAgPGEgY2xhc3M9IjxmaC1mdW5jdGlvbj5pZigkaWQ9PTApeyRhcGk9JGFwaS4iZi1jaG9zZSI7fWVsc2V7JGFwaT0kYXBpLiIiO308L2ZoLWZ1bmN0aW9uPiIga2V5LXR5cGU9IjAiICBocmVmPSI/dHlwZT1wcm9kdWN0JmlkPTAiID7lhajpg6g8L2E+IA0KDQoNCiA8ZmgtZnVuY3Rpb24+DQoNCiAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9wc29ydCB3aGVyZSBTX3N1Yj0wIGFuZCBTX2RlbD0wIG9yZGVyIGJ5IFNfb3JkZXIsU19pZCBkZXNjIjsNCg0KICAgICAgICAgICAgICAgIHNbWw0KICAgICAgICAgICAgaWYoJHJvd1siU19pZCJdPT0kaWQgfHwgJHJvd1siU19pZCJdPT1nZXRycygic2VsZWN0IFNfc3ViIGZyb20gc2xfcHNvcnQgd2hlcmUgU19pZD0kaWQiLCJTX3N1YiIpKXsNCiAgICAgICAgICAgICAgICAgICRhY3RpdmU9ImYtY2hvc2UiOw0KICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAkYWN0aXZlPSIiOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgJGFwaT0kYXBpLiI8YSBjbGFzcz1cIiIuJGFjdGl2ZS4iXCIgaHJlZj1cIj90eXBlPXByb2R1Y3QmaWQ9Ii4kcm93WyJTX2lkIl0uIlwiIGtleS10eXBlPVwiIi4kcm93WyJTX2lkIl0uIlwiPiIuJHJvd1siU190aXRsZSJdLiI8L2E+IjsNCiAgICAgICAgICAgICAgICAgICAgXV0NCiAgICAgICAgPC9maC1mdW5jdGlvbj4NCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgPC9kaXY+DQoNCjxmaC1mdW5jdGlvbj4NCmlmKCRpZCE9MCl7IA0KaWYoZ2V0cnMoInNlbGVjdCAqIGZyb20gc2xfcHNvcnQgd2hlcmUgU19pZD0kaWQiLCJTX3N1YiIpPT0wKXsNCiAgJGNsYXNzPSJjdXJyZW50IjsNCiAgJGlkeD0kaWQ7DQp9ZWxzZXsNCiAgJGNsYXNzPSIiOw0KICAkaWR4PWdldHJzKCJzZWxlY3QgKiBmcm9tIHNsX3Bzb3J0IHdoZXJlIFNfaWQ9JGlkIiwiU19zdWIiKTsNCn0NCg0KDQokYXBpPSRhcGkuIjxkaXYgY2xhc3M9XCJ0eXBlMVwiPg0KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWxsLXR5cGVcIj7kuIvnuqfliIbnsbvvvJo8L2Rpdj4NCiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVsaVwiPg0KICAgICAgICAgICAgIDxhIGNsYXNzPVwiJGNsYXNzXCIgaHJlZj1cIj90eXBlPXByb2R1Y3QmaWQ9JGlkeFwiPuWFqOmDqDwvYT4iOw0KDQogICAgICAgICRzcWw9InNlbGVjdCAqIGZyb20gc2xfcHNvcnQgd2hlcmUgKFNfc3ViPSRpZCBvciBTX3N1Yj0iLmdldHJzKCJzZWxlY3QgKiBmcm9tIHNsX3Bzb3J0IHdoZXJlIFNfaWQ9JGlkIiwiU19zdWIiKS4iKSBhbmQgbm90IFNfc3ViPTAgYW5kIFNfZGVsPTAgb3JkZXIgYnkgU19vcmRlcixTX2lkIGRlc2MiOw0KICAgICAgICBzW1sNCiAgICAgICAgaWYoJGlkPT0kcm93WyJTX2lkIl0pew0KICAgICAgICAkY2xhc3M9ImN1cnJlbnQiOw0KICAgIH1lbHNlew0KICAgICRjbGFzcz0iIjsNCn0NCg0KDQogICAgICAgICRhcGk9JGFwaS4iPGEgY2xhc3M9XCIiLiRjbGFzcy4iXCIgIGhyZWY9XCI/dHlwZT1wcm9kdWN0JmlkPSIuJHJvd1siU19pZCJdLiJcIj4iLiRyb3dbIlNfdGl0bGUiXS4iPC9hPiI7DQoNCiAgICAgICAgXV0NCiRhcGk9JGFwaS4iPC9kaXY+DQogICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnZW5nZHVvXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPg0KICAgICAgICAgICAgICAgICAg5pu05aSaPGk+PC9pPg0KICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICA8L2Rpdj4iOw0KfQ0KDQoNCiRhcnIgPSBhcnJheSgpOw0KaWYoJGlkPT0wKXsNCiAgLy8kc3FsPSJzZWxlY3QgKiBmcm9tIHNsX3Byb2R1Y3Qgd2hlcmUgUF9kZWw9MCAiLiRNX3BpbmZvLiIgICRNX2luZm8gb3JkZXIgYnkgUF90b3AgZGVzYyxQX29yZGVyLFBfaWQgZGVzYyI7DQp9ZWxzZXsNCiAgaWYoJFNfc3ViPT0wKXsNCiAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX3Byb2R1Y3Qsc2xfcHNvcnQgd2hlcmUgU19kZWw9MCAkTV9pbmZvIGFuZCBQX2RlbD0wICIuJE1fcGluZm8uIiAgYW5kIFBfc29ydD1TX2lkIGFuZCBTX3N1Yj0iLiRpZC4iIG9yZGVyIGJ5IFBfdG9wIGRlc2MsUF9vcmRlcixQX2lkIGRlc2MiOw0KICB9ZWxzZXsNCiAgICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX3Byb2R1Y3Qsc2xfcHNvcnQgd2hlcmUgU19kZWw9MCAkTV9pbmZvIGFuZCBQX2RlbD0wICIuJE1fcGluZm8uIiAgYW5kIFBfc29ydD1TX2lkIGFuZCBTX2lkPSIuJGlkLiIgb3JkZXIgYnkgUF90b3AgZGVzYyxQX29yZGVyLFBfaWQgZGVzYyI7DQogIH0NCn0NCg0KJHJlc3VsdCA9IG15c3FsaV9xdWVyeSgkY29ubiwgICRzcWwpOw0KaWYgKG15c3FsaV9udW1fcm93cygkcmVzdWx0KSA+IDApIHsNCndoaWxlKCRyb3cgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdCkpIHsNCiAgICAgICAgJHN4PWV4cGxvZGUoIlxyXG4iLCRyb3dbIlBfc2h1eGluZyJdKTsNCiAgICAgICAgZm9yKCRpPTA7JGk8Y291bnQoJHN4KTskaSsrKXsNCiAgICAgICAgICBpZihzcGxpdHgoJHN4WyRpXSwiOiIsMCkhPSIiKXsNCiAgICAgICAgICAgICRjPWpzb25fZGVjb2RlKCJ7XCJTX3RpdGxlXCI6XCIiLnNwbGl0eCgkc3hbJGldLCI6IiwwKS4iXCJ9Iix0cnVlKTsNCiAgICAgICAgICAgIGlmKCFpc19oYXZlcygkYywkYXJyKSl7DQogICAgICAgICAgICAgIGFycmF5X3B1c2goJGFyciwkYyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KfSANCg0KDQpmb3IoJGk9MDskaTxjb3VudCgkYXJyKTskaSsrKXsNCiAgJGFyclskaV1bImxpc3QiXT1hcnJheSgpOw0KICAkcmVzdWx0ID0gbXlzcWxpX3F1ZXJ5KCRjb25uLCAgJHNxbCk7DQogIGlmIChteXNxbGlfbnVtX3Jvd3MoJHJlc3VsdCkgPiAwKSB7DQogIHdoaWxlKCRyb3cgPSBteXNxbGlfZmV0Y2hfYXNzb2MoJHJlc3VsdCkpIHsNCiAgICAgICAgICAkc3g9ZXhwbG9kZSgiXHJcbiIsJHJvd1siUF9zaHV4aW5nIl0pOw0KICAgICAgICAgIGZvcigkbT0wOyRtPGNvdW50KCRzeCk7JG0rKyl7DQogICAgICAgICAgICAkcz1zcGxpdHgoJHN4WyRtXSwiOiIsMCk7DQogICAgICAgICAgICBpZigkcz09JGFyclskaV1bIlNfdGl0bGUiXSl7DQogICAgICAgICAgICAgICR2PXNwbGl0eCgkc3hbJG1dLCI6IiwxKTsNCiAgICAgICAgICAgICAgICBpZigkdiE9IiIpew0KICAgICAgICAgICAgICAgICAgJHg9anNvbl9kZWNvZGUoIntcInNodXhpbmdcIjpcIiIuJHYuIlwifSIsdHJ1ZSk7DQogICAgICAgICAgICAgICAgICBpZighaXNfaGF2ZXMoJHgsJGFyclskaV1bImxpc3QiXSkpew0KICAgICAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCRhcnJbJGldWyJsaXN0Il0sJHgpOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICB9DQp9DQoNCg0KZm9yKCRpPTA7JGk8Y291bnQoJGFycik7JGkrKyl7DQogIGZvcigkaj0wOyRqPGNvdW50KCRhcnJbJGldWyJsaXN0Il0pOyRqKyspew0KICAgIGlmKCRfR0VUWyJmIi4kaV09PSRhcnJbJGldWyJTX3RpdGxlIl0uIjoiLiRhcnJbJGldWyJsaXN0Il1bJGpdWyJzaHV4aW5nIl0pew0KICAgICAgJHNlbGVjdGVkPSJjdXJyZW50IjsNCiAgICB9ZWxzZXsNCiAgICAgICRzZWxlY3RlZD0iIjsNCiAgICB9DQoNCg0KICAgICRzaHV4aW5nPSRzaHV4aW5nLiI8YSBocmVmPVwiIi51cmwoJHVybCwiZiIuJGksJF9HRVRbImYiLiRpXSkuIiZmIi4kaS4iPSIuJGFyclskaV1bIlNfdGl0bGUiXS4iOiIuJGFyclskaV1bImxpc3QiXVskal1bInNodXhpbmciXS4iXCIgY2xhc3M9XCIiLiRzZWxlY3RlZC4iXCI+Ii4kYXJyWyRpXVsibGlzdCJdWyRqXVsic2h1eGluZyJdLiI8L2E+IjsNCg0KICB9DQoNCmlmKCRfR0VUWyJmIi4kaV09PSIiKXsNCiAgJHNlbGVjdGVkPSJjdXJyZW50IjsNCn1lbHNlew0KICAkc2VsZWN0ZWQ9IiI7DQp9DQoNCiAgDQoNCiAgJGFwaT0kYXBpLiI8ZGl2IGNsYXNzPVwidHlwZTFcIj4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhbGwtdHlwZVwiPiIuJGFyclskaV1bIlNfdGl0bGUiXS4i77yaPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPVwidWxpXCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiIudXJsKCR1cmwsImYiLiRpLCRfR0VUWyJmIi4kaV0pLiImZiIuJGkuIj1cIiBjbGFzcz1cIiIuJHNlbGVjdGVkLiJcIj7kuI3pmZA8L2E+DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLiRzaHV4aW5nLiINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2VuZ2R1b1wiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIj4NCiAgICAgICAgICAgICAgICDmm7TlpJo8aT48L2k+DQogICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQogICAgICAgICI7DQogICRzaHV4aW5nPSIiOw0KfQ0KDQo8L2ZoLWZ1bmN0aW9uPg0KDQo8L2Rpdj4NCiAgICAgICAgPC9kaXY+DQoNCg0KPGRpdiBjbGFzcz0naG90LXRvcGljJz4NCiAgICA8ZGl2IGNsYXNzPSd3bGltaXQgaG90LXRvcGljLWZmZic+DQogICAgICAgIDxhIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJzb3J0IDxmaC1mdW5jdGlvbj5pZigkb3JkZXJieT09Im5vcm1hbCIgfHwgJG9yZGVyYnk9PSIiKXskYXBpPSJjaG9zZSI7fWVsc2V7JGFwaT0iIjt9PC9maC1mdW5jdGlvbj4iIGhyZWY9IjxmaC1mdW5jdGlvbj4kYXBpPXVybCgkdXJsLCJvcmRlcmJ5IiwkX0dFVFsib3JkZXJieSJdKS4iJm9yZGVyYnk9bm9ybWFsIjs8L2ZoLWZ1bmN0aW9uPiI+57u85ZCI5o6S5bqPPC9hPg0KICAgICAgICA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0ic29ydCA8ZmgtZnVuY3Rpb24+aWYoJG9yZGVyYnk9PSJob3QiKXskYXBpPSJjaG9zZSI7fWVsc2V7JGFwaT0iIjt9PC9maC1mdW5jdGlvbj4iIGhyZWY9IjxmaC1mdW5jdGlvbj4kYXBpPXVybCgkdXJsLCJvcmRlcmJ5IiwkX0dFVFsib3JkZXJieSJdKS4iJm9yZGVyYnk9aG90Ijs8L2ZoLWZ1bmN0aW9uPiI+54Ot6Zeo5LiL6L29PC9hPg0KICAgICAgICA8YSByZWw9Im5vZm9sbG93IiBjbGFzcz0ic29ydCA8ZmgtZnVuY3Rpb24+aWYoJG9yZGVyYnk9PSJ0aW1lIil7JGFwaT0iY2hvc2UiO31lbHNleyRhcGk9IiI7fTwvZmgtZnVuY3Rpb24+IiBocmVmPSI8ZmgtZnVuY3Rpb24+JGFwaT11cmwoJHVybCwib3JkZXJieSIsJF9HRVRbIm9yZGVyYnkiXSkuIiZvcmRlcmJ5PXRpbWUiOzwvZmgtZnVuY3Rpb24+Ij7mnIDmlrDlj5HluIM8L2E+ICAgDQoNCiAgICA8L2Rpdj4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSd0LWJveCB3bGltaXQgbGlzdCc+DQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdvbmVzIHBuZ29uZXMnPg0KPGZoLWZ1bmN0aW9uPg0KDQppZigkaWQ9PTApew0KICAkc3FsPSJzZWxlY3QgKiBmcm9tIHNsX3Byb2R1Y3Qgd2hlcmUgUF9kZWw9MCAiLiRNX3BpbmZvLiIgICIuc2h1eGluZygiUF9zaHV4aW5nIikuIiAkTV9pbmZvICRvcmRlciBsaW1pdCAiLigoJHBhZ2UtMSkqMTUpLiIsMTUiOw0KfWVsc2V7DQogIGlmKCRTX3N1Yj09MCl7DQogICAgJHNxbD0ic2VsZWN0ICogZnJvbSBzbF9wcm9kdWN0LHNsX3Bzb3J0IHdoZXJlIFNfZGVsPTAgIi5zaHV4aW5nKCJQX3NodXhpbmciKS4iICRNX2luZm8gYW5kIFBfZGVsPTAgIi4kTV9waW5mby4iICBhbmQgUF9zb3J0PVNfaWQgYW5kIFNfc3ViPSIuJGlkLiIgJG9yZGVyIGxpbWl0ICIuKCgkcGFnZS0xKSoxNSkuIiwxNSI7DQogIH1lbHNlew0KICAgICRzcWw9InNlbGVjdCAqIGZyb20gc2xfcHJvZHVjdCxzbF9wc29ydCB3aGVyZSBTX2RlbD0wICIuc2h1eGluZygiUF9zaHV4aW5nIikuIiAkTV9pbmZvIGFuZCBQX2RlbD0wICIuJE1fcGluZm8uIiAgYW5kIFBfc29ydD1TX2lkIGFuZCBTX2lkPSIuJGlkLiIgJG9yZGVyIGxpbWl0ICIuKCgkcGFnZS0xKSoxNSkuIiwxNSI7DQogIH0NCn0NCg0KICAgIHNbWw0KDQoNCiRQX2NvbGxlY3Rpb249Z2V0cnMoInNlbGVjdCBjb3VudChDX2lkKSBhcyBDX2NvdW50IGZyb20gc2xfY29sbGV0aW9uIHdoZXJlIENfY2lkPSIuJHJvd1siUF9pZCJdLiIgYW5kIENfdHlwZT0wIiwiQ19jb3VudCIpOw0KJGFwaT0kYXBpLiI8ZGwgY2xhc3M9XCJib3ggdHdvIGdyaWQtdiBjYm94XCIgZGF0YS1pZD1cImJhZ3hvd2V5XCI+DQogICAgPGRkPiANCiAgICAgICAgPGEgY2xhc3M9XCJpbWcgaW1nLXlzXCIgc3R5bGU9XCJoZWlnaHQ6MjYwcHg7bGluZS1oZWlnaHQ6MjYwcHg7b3ZlcmZsb3c6aGlkZGVuXCIgaHJlZj1cIj90eXBlPXByb2R1Y3RpbmZvJmlkPSIuJHJvd1siUF9pZCJdLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIj4NCg0KICAgICAgICA8aW1nIHRpdGxlPVwiIi4kcm93WyJQX3RpdGxlIl0uIlwiIGNsYXNzPVwibGF6eVwiICBkYXRhLW9yaWdpbmFsPVwiIi5waWMoc3BsaXR4KCRyb3dbIlBfcGljIl0sInwiLDApKS4iXCIgc3R5bGU9XCJ3aWR0aDoyNjBweFwiID4NCiAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtcIj48L2Rpdj4NCiAgICAgICAgPC9hPg0KICAgIDwvZGQ+DQoNCiAgICA8ZHQ+DQogICAgICAgPGEgaHJlZj1cIj90eXBlPXByb2R1Y3RpbmZvJmlkPSIuJHJvd1siUF9pZCJdLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImJ0aXRsZVwiPg0KICAgICAgICAiLiRyb3dbIlBfdGl0bGUiXS4iICAgICAgIDwvYT4NCiAgICA8L2R0Pg0KDQogICAgPGRkPg0KICAgICAgICA8c3BhbiBwaWQ9XCJiYWd4b3dleVwiIHR5cGU9XCIxXCIgY2xhc3M9XCJjbGljay1kb3duIGRvd24geWJjIGRvd25wbmdcIj48aT48L2k+5LiL6L29PC9zcGFuPg0KICAgICAgICA8c3BhbiBjbGFzcz1cImRvd25jb1wiPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkeFwiPjxpPjwvaT4iLiRyb3dbIlBfdmlldyJdLiI8L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbGxlY3RudW1cIj48aT48L2k+Ii4kUF9jb2xsZWN0aW9uLiI8L3NwYW4+DQogICAgICAgIDwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYW5xdWFuXCI+PC9kaXY+DQogICAgPC9kZD4NCiAgICA8L2RsPiI7DQogICAgICAgICAgICAgICAgXV0NCjwvZmgtZnVuY3Rpb24+DQoNCg0KDQoNCiAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSdjbGVhcic+PC9kaXY+DQoNCg0KPGRpdiBjbGFzcz0ncGFnZSc+DQogIDxkaXYgY2xhc3M9IndsaW1pdCI+DQogICAgICA8ZGl2IGNsYXNzPSJwYWdlbmV3Ij4NCiAgICAgICAgIDxkaXYgY2xhc3M9InBhZ2VpbmZvIj4NCiAgICAgICAgICAgICA8ZGl2IGlkPSJwYWdlciI+PC9kaXY+DQogICAgICAgICA8L2Rpdj4NCiAgICAgIDwvZGl2Pg0KICA8L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KICAgIA0KPHNjcmlwdCBzcmM9InRlbXBsYXRlL3QxNC9zdGF0aWMvISFpbmRleC9qcy9qcXVlcnktMS43LjEubWluLmpzLGxpYi9zdG9yZS5sZWdhY3kubWluLmpzLGNvbW1vbi9qcy9sYXp5bG9hZC5taW4uanMsY29tbW9uL2pzL2NvbW1vbjIwMjEwMTE0LmpzIj48L3NjcmlwdD4NCg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0ZW1wbGF0ZS90MTQvc3RhdGljL2NyZWRpdC9jc3Mvc2lnbi1hbGVydC5jc3MiPg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0idGVtcGxhdGUvdDE0L3N0YXRpYy9jcmVkaXQvanMvc2lnbjIwMjAwNjE4LmpzIj48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSJ0ZW1wbGF0ZS90MTQvc3RhdGljL2NhdGFnZS9qcy9jYXRlc28yMDE5MDUyMi5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0idGVtcGxhdGUvdDE0L3N0YXRpYy9wbmcvanMvbWFzb25yeTIwMjAwNDIyLmpzIiA+PC9zY3JpcHQ+DQoNCjxzY3JpcHQgc3JjPSJqcy9qcXVlcnkucGFnZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQo8c2NyaXB0Pg0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7DQogICAgJCgiI3BhZ2VyIikucGFnZXIoeyBwYWdlbnVtYmVyOiA8ZmgtZnVuY3Rpb24+ICRhcGk9JGFwaS4kcGFnZTs8L2ZoLWZ1bmN0aW9uPiwgcGFnZWNvdW50OiA8ZmgtZnVuY3Rpb24+ICRhcGk9JGFwaS4kcGFnZV9udW07PC9maC1mdW5jdGlvbj4sIGJ1dHRvbkNsaWNrQ2FsbGJhY2s6IFBhZ2VDbGljayB9KTsNCn0pOw0KDQpQYWdlQ2xpY2sgPSBmdW5jdGlvbihwYWdlY2xpY2tlZG51bWJlcikgew0KICB3aW5kb3cubG9jYXRpb249IjxmaC1mdW5jdGlvbj4kYXBpPSRhcGkudXJsKCR1cmwsInBhZ2UiLCRfR0VUWyJwYWdlIl0pOzwvZmgtZnVuY3Rpb24+JnBhZ2U9IitwYWdlY2xpY2tlZG51bWJlcjsNCn0NCjwvc2NyaXB0Pg0KDQo8ZGl2IGlkPSJtZW5nY2hlbmciPjwvZGl2Pg0KICAgICAgICA8ZGl2IGlkPSJsb2dpbiI+DQo8ZGl2IGNsYXNzPSJjbG9zZSBsb2dpbmNvbHNlIj48L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFzdG9uZSI+DQogICAgPGRpdiBjbGFzcz0ibC1sb2dvIiA+DQogICAgPGltZyBzcmM9Im1lZGlhLzIwMjEwMjAxMDgwODQ4T3gucG5nIiBhbHQ9IueUqOaIt+eZu+mZhmxvZ28iIHN0eWxlPSJoZWlnaHQ6ICA4MHB4Ij4NCiAgPC9kaXY+DQoNCjxmaC1mdW5jdGlvbj4NCiRjPWdldHJzKCJzZWxlY3QgKiBmcm9tIHNsX2NvbmZpZyIpOw0KaWYoJGNbIkNfcXFvbiJdPT0xKXsNCiAgJGFwaT0kYXBpLiI8YSBocmVmPVwicXEvcXFsb2dpbi5waHA/ZnJvbT0iLnVybGVuY29kZShnZXRodHRwKCkuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydQSFBfU0VMRiddLic/Jy4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pLiJcIiAgY2xhc3M9XCJsLXFxXCI+PGk+PC9pPlFRPHNwYW4gY2xhc3M9XCJsb2dpbm5hbWUgXCI+55m75b2VPC9zcGFuPjwvYT4iOw0KfQ0KaWYoJGNbIkNfd3hvbiJdPT0xKXsNCiAgJGFwaT0kYXBpLiI8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgb25jbGljaz1cIm9wZW5Mb2dpbignd2VjaGF0JylcIiBjbGFzcz1cImwtd3hcIj48aT48L2k+5b6u5L+hPHNwYW4gY2xhc3M9XCJsb2dpbm5hbWUgXCI+55m75b2VPC9zcGFuPjwvYT4iOw0KfQ0KPC9maC1mdW5jdGlvbj4NCg0KICA8YSBocmVmPSJqYXZhc2NyaXB0OjsiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0ibC1kZWFsIGRpeWlnZSI+5rOo5YaM5oiW54K55Ye755m75b2V5Luj6KGo5oKo5ZCM5oSP44CK55So5oi35Y2P6K6u44CLPC9hPg0KICA8ZGl2IGNsYXNzPSJkaWZmLWxvZ2luIj4NCg0KPGZoLWZ1bmN0aW9uPg0KDQoNCmlmKCRjWyJDX2R4b24iXT09MSl7DQogICRhcGk9JGFwaS4iPGEgaHJlZj1cIm1lbWJlci9tb2JpbGVfbG9naW4ucGhwP2Zyb209Ii51cmxlbmNvZGUoZ2V0aHR0cCgpLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4kX1NFUlZFUlsnUEhQX1NFTEYnXS4nPycuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKS4iXCIgY2xhc3M9XCJwaG9uZS1sb25naW5cIiB0eXBlPVwiMVwiPuaJi+acujxzcGFuIHN0eWxlPVwiY29sb3I6IzhhOGE4YVwiIGNsYXNzPVwibG9naW5uYW1lXCI+55m75b2VPC9zcGFuPjwvYT4gIjsNCn0NCmlmKCRjWyJDX3JlZ29uIl09PTEpew0KICAkYXBpPSRhcGkuIjxhIGhyZWY9XCJtZW1iZXIvbG9naW4ucGhwP2Zyb209Ii51cmxlbmNvZGUoZ2V0aHR0cCgpLiRfU0VSVkVSWydIVFRQX0hPU1QnXS4kX1NFUlZFUlsnUEhQX1NFTEYnXS4nPycuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKS4iXCIgY2xhc3M9XCJwaG9uZS1sb25naW5cIiB0eXBlPVwiMVwiPumCrueusTxzcGFuIHN0eWxlPVwiY29sb3I6IzhhOGE4YVwiIGNsYXNzPVwibG9naW5uYW1lXCI+55m75b2VPC9zcGFuPjwvYT4iOw0KfQ0KDQo8L2ZoLWZ1bmN0aW9uPg0KDQogICAgICA8YSBocmVmPSJtZW1iZXIvcmVnLnBocD9mcm9tPTxmaC1mdW5jdGlvbj4kYXBpPXVybGVuY29kZShnZXRodHRwKCkuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydQSFBfU0VMRiddLic/Jy4kX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pOzwvZmgtZnVuY3Rpb24+IiBjbGFzcz0ibC1kZWFsIGlzcmVnIiB0eXBlPSIxIj7msqHmnInotKblj7cgIDxzcGFuPueri+WNs+azqOWGjDwvc3Bhbj48L2E+DQogIDwvZGl2PiAgDQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0ibC1sZWZ0Ij4NCiAgICA8ZGl2IGNsYXNzPSJ0aXRsZSI+5oKo55qE572R56uZ5ZCN56ewPC9kaXY+DQogICAgPHVsPg0KICAgICAgICA8bGk+PGkgY2xhc3M9ImkxIj48L2k+5rW36YeP5Yib5oSP5qih5p2/77yM5ruh6Laz5oKo55qE6ZyA5rGCPC9saT4NCiAgICAgICAgPGxpPjxpIGNsYXNzPSJpMiI+PC9pPuWunueUqOaYk+S/ruaUue+8jOaPkOWNh+aCqOeahOaViOeOhzwvbGk+DQogICAgICAgIDxsaT48aSBjbGFzcz0iaTMiPjwvaT7pq5jotKjph4/nsr7lk4Hng63ngrnlhoXlrrnmr4/ml6Xmm7TmlrA8L2xpPg0KICAgICAgICA8bGk+PGkgY2xhc3M9Imk0Ij48L2k+5LiT5Lia5a6i5pyN5o6l5b6F77yM5Y+K5pe26Kej5Yaz6Zeu6aKYPC9saT4NCiAgICA8L3VsPg0KPC9kaXY+DQo8L2Rpdj4NCg0KICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+DQogICAgIDxkaXYgY2xhc3M9ImZvb3RlcjEiPg0KICAgICAgICA8ZGl2IGNsYXNzPSJ1c2VyLXNheSI+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYm94Ij48aSBjbGFzcz0iaS0xIj48L2k+5Lu35qC85LyY5oOgPC9zcGFuPg0KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJveCI+PGkgY2xhc3M9ImktMiI+PC9pPuiHtOiHu+eyvuWTgTwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib3giPjxpIGNsYXNzPSJpLTMiPjwvaT7pq5jotKjllK7lkI48L3NwYW4+DQogICAgICAgICAgICA8c3BhbiBjbGFzcz0iYm94Ij48aSBjbGFzcz0iaS00Ij48L2k+MTAwJea7oeaEjzwvc3Bhbj4NCiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib3gxIj48aSBjbGFzcz0iaS01Ij48L2k+5o+Q5Y2H5pWI546HPC9zcGFuPg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCiAgICA8ZGl2IGNsYXNzPSJmb290ZXIyIj4NCiAgICAgICAgPGRpdiBjbGFzcz0id2xpbWl0Ij4NCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1sb2dvIiA+DQogICAgICAgICAgICAgIDxpbWcgc3JjPSJtZWRpYS8yMDE5MTEyNjIyNDM1MldmLmpwZyIgc3R5bGU9ImhlaWdodDogMTAwcHg7bWFyZ2luLXRvcDogMTBweDsiPg0KICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb21wYW55LXNheSI+DQogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RhdGVtZW50cyI+DQo8ZmgtZnVuY3Rpb24+DQoNCmZvcmVhY2goZ2V0bGlzdCgic2VsZWN0ICogZnJvbSBzbF90ZXh0IG9yZGVyIGJ5IFRfaWQgZGVzYyIpIGFzICR0KXsNCiAgICAkYXBpPSRhcGkuIjxhIHJlbD1cIm5vZm9sbG93XCIgaHJlZj1cIj90eXBlPXRleHQmaWQ9Ii4kdFsiVF9pZCJdLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIj4iLiR0WyJUX3RpdGxlIl0uIjwvYT48c3Bhbj58PC9zcGFuPiAiOw0KfQ0KJGFwaT0gc3Vic3RyKCRhcGksMCxzdHJsZW4oJGFwaSktMTUpOw0KPC9maC1mdW5jdGlvbj4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvcHlyaWdodHMiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2JlaWFuLm1paXQuZ292LmNuLyIgdGFyZ2V0PSJfYmxhbmsiPuS6rElDUOWkhzAwMDAwMDAw5Y+3PC9hPg0KDQogICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJ0dWt1cHB0LXJpZ2h0IiBzdHlsZT0id2lkdGg6NTAwcHgiPkNvcHlyaWdodCDCqSAyMDE1LTIwMjAg5oKo55qE5YWs5Y+45ZCN56ewIOeJiOadg+aJgOaciTwvc3Bhbj4NCiAgICAgICAgICAgICAgICA8L2Rpdj4NCiAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgICA8L2Rpdj4NCiAgICA8L2Rpdj4NCjwvZGl2Pg0KPGxpbmsgaHJlZj0nY3NzL2xhbnJlbnpoaWppYS5jc3MnIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIC8+PHNjcmlwdCBzcmM9J2pzL2pxdWVyeS5LaW5TbGlkZXNob3ctMS4yLjEubWluLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPjwvc2NyaXB0PjxkaXYgaWQ9J29ubGluZV9xcV9sYXllcicgc3R5bGU9J3otaW5kZXg6MjAwMDsnPjxkaXYgaWQ9J29ubGluZV9xcV90YWInPjxkaXYgY2xhc3M9J29ubGluZV9pY29uJz48YSBpZD0nZmxvYXRTaG93JyBzdHlsZT0nZGlzcGxheTpibG9jazsnIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKTsnPiZuYnNwOzwvYT48YSAgaWQ9J2Zsb2F0SGlkZScgc3R5bGU9J2Rpc3BsYXk6bm9uZTsnIGhyZWY9J2phdmFzY3JpcHQ6dm9pZCgwKTsnPiZuYnNwOzwvYT48L2Rpdj48L2Rpdj48ZGl2IGlkPSdvbmxpbmVTZXJ2aWNlJyBzdHlsZT0nZGlzcGxheTpub25lJz48ZGl2IGNsYXNzPSdvbmxpbmVfd2luZG93cyBvdmVyeic+PGRpdiBjbGFzcz0nb25saW5lX3dfdG9wJz48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfd19jIG92ZXJ6Jz48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGV4cGFuZCcgaWQ9J29ubGluZVNvcnQxJz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDEpJz7lnKjnur/lrqLmnI08L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGUxJz48dWwgY2xhc3M9J292ZXJ6Jz48bGk+PGEgdGl0bGU9J+eCueWHu+i/memHjOe7meaIkeWPkea2iOaBrycgaHJlZj0naHR0cDovL3dwYS5xcS5jb20vbXNncmQ/dj0zJnVpbj0xMjMxMjMxMjMmc2l0ZT1xcSZtZW51PXllcycgdGFyZ2V0PSdfYmxhbmsnIGNsYXNzPSdxcV9pY29uJz7llK7liY3lkqjor6I8L2E+PC9saT48bGk+PGEgdGl0bGU9J+eCueWHu+i/memHjOe7meaIkeWPkea2iOaBrycgaHJlZj0naHR0cDovL3d3dy50YW9iYW8uY29tL3dlYnd3L3d3LnBocD92ZXI9MyZ0b3VpZD10YW9iYW8mc2l0ZWlkPWNudGFvYmFvJnN0YXR1cz0xJmNoYXJzZXQ9dXRmLTgnIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0nd3dfaWNvbic+5ZSu5ZCO5pyN5YqhPC9hPjwvbGk+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSdvbmxpbmVfYmFyIGNvbGxhcHNlMicgaWQ9J29ubGluZVNvcnQyJz48aDI+PGEgb25jbGljaz0nY2hhbmdlT25saW5lKDIpJz7nlLXor53lrqLmnI08L2E+PC9oMj48ZGl2IGNsYXNzPSdvbmxpbmVfY29udGVudCBvdmVyeicgaWQ9J29ubGluZVR5cGUyJz48dWwgY2xhc3M9J292ZXJ6Jz48bGk+MDEwLTEwMDg2PC9saT48L3VsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV9iYXIgY29sbGFwc2UyJyBpZD0nb25saW5lU29ydDMnPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoMyknPue9keermeS6jOe7tOeggTwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTMnPjx1bCBjbGFzcz0nb3ZlcnonPjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyBzcmM9J2pzL3FyY29kZS5taW4uanMnPjwvc2NyaXB0PjxkaXYgaWQ9J3FyY29kZScgc3R5bGU9J21hcmdpbjowIDAgMTBweCAxMHB4Oyc+PC9kaXY+PHNjcmlwdD52YXIgcXJjb2RlID0gbmV3IFFSQ29kZSgncXJjb2RlJywge3dpZHRoOiAxMTAsaGVpZ2h0OiAxMTAsY29sb3JEYXJrOiAnIzAwMDAwMCcsY29sb3JMaWdodDogJyNmZmZmZmYnLGNvcnJlY3RMZXZlbDogUVJDb2RlLkNvcnJlY3RMZXZlbC5IfSk7cXJjb2RlLm1ha2VDb2RlKCdodHRwOi8vbG9jYWxob3N0OjUwMTQnKTs8L3NjcmlwdD48L3VsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV9iYXIgY29sbGFwc2UyJyBpZD0nb25saW5lU29ydDQnPjxoMj48YSBvbmNsaWNrPSdjaGFuZ2VPbmxpbmUoNCknPuW+ruS/oeWFrOS8l+WPtzwvYT48L2gyPjxkaXYgY2xhc3M9J29ubGluZV9jb250ZW50IG92ZXJ6JyBpZD0nb25saW5lVHlwZTQnPjx1bCBjbGFzcz0nb3ZlcnonPjxpbWcgc3JjPSdtZWRpYS8yMDE5MTEyNjIyNDM1MldmLmpwZycgd2lkdGg9JzEyMCcgLz48L3VsPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9J29ubGluZV93X2JvdHRvbSc+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+DQoNCjxhIGhyZWY9J2phdmFzY3JpcHQ6OycgdGFyZ2V0PSdfYmxhbmsnIG9uY2xpY2s9J2FsZXJ0KCLmnKznvZHnq5nnlLHjgIrlj5HotKcxMDDjgIvlhY3otLnniYjmkK3lu7rvvIzor7fli7/nlKjkvZzllYbkuJrnlKjpgJQiKTt3aW5kb3cubG9jYXRpb24uaHJlZj0iaHR0cDovL2ZhaHVvMTAwLmNuIicgdGl0bGU9J+WPkei0pzEwMCc+PGRpdiBzdHlsZT0icG9zaXRpb246IGZpeGVkO3otaW5kZXg6OTk5OTk7Ym90dG9tOiAxMHB4O2xlZnQ6IGNhbGMoNTAlIC0gMTAwcHgpO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjcpO3RleHQtYWxpZ246IGNlbnRlcjt3aWR0aDogMjAwcHg7aGVpZ2h0OiAzMHB4O2xpbmUtaGVpZ2h0OiAzMHB4O2JvcmRlci1yYWRpdXM6IDMwcHg7Zm9udC1zaXplOiAxOHB4O2NvbG9yOiAjMzMzMzMzIj48aW1nIHNyYz0iaHR0cDovL2ZhaHVvMTAwLmNuL21lZGlhLzIwMjAxMDA5MTM0MTIwbFUuaWNvIiBzdHlsZT0iaGVpZ2h0OiAyMHB4O3dpZHRoOiAyMHB4O21hcmdpbi1yaWdodDogNXB4O3ZlcnRpY2FsLWFsaWduOiBtaWRkbGU7Ij7lj5HotKcxMDA8L2Rpdj48L2E+PC9ib2R5PiANCjwvaHRtbD4g