PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPm1vZF9leGFtcGxlIC0gU2VydmV1ciBBcGFjaGUgSFRUUDwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vc3R5bGUvY3NzL3ByZXR0aWZ5LmNzcyIgLz4KPHNjcmlwdCBzcmM9Ii4uL3N0eWxlL3NjcmlwdHMvcHJldHRpZnkubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KCjxsaW5rIGhyZWY9Ii4uL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPlNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjQ8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2ZlYXRoZXIuZ2lmIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4uL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5TZXJ2ZXVyIEhUVFA8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi4vIj5WZXJzaW9uIDIuNDwvYT4gJmd0OyA8YSBocmVmPSIuLyI+TW9kdWxlczwvYT48L2Rpdj4KPGRpdiBpZD0icGFnZS1jb250ZW50Ij4KPGRpdiBpZD0icHJlYW1ibGUiPjxoMT5Nb2R1bGUgQXBhY2hlIG1vZF9leGFtcGxlPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkxhbmd1ZXMgRGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9tb2QvbW9kX2V4YW1wbGUuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2ZyL21vZC9tb2RfZXhhbXBsZS5odG1sIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2tvL21vZC9tb2RfZXhhbXBsZS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT48L3A+CjwvZGl2Pgo8dGFibGUgY2xhc3M9Im1vZHVsZSI+PHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+SWxsdXN0cmF0aW9uIGRlIGwnQVBJIGRlcyBtb2R1bGVzIEFwYWNoZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHV0OjwvYT48L3RoPjx0ZD5FeHDpcmltZW50YWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5JZGVudGlmaWNhdGV1cqBkZaBNb2R1bGU6PC9hPjwvdGg+PHRkPmV4YW1wbGVfbW9kdWxlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU291cmNlRmlsZSI+RmljaGllcqBTb3VyY2U6PC9hPjwvdGg+PHRkPm1vZF9leGFtcGxlLmM8L3RkPjwvdHI+PC90YWJsZT4KPGgzPlNvbW1haXJlPC9oMz4KCiAgICA8cD5DZXJ0YWlucyBmaWNoaWVycyBzaXR16XMgZGFucyBsZSBy6XBlcnRvaXJlCiAgICA8Y29kZT5tb2R1bGVzL2V4cGVyaW1lbnRhbDwvY29kZT4gZGUgbCdhcmJvcmVzY2VuY2UgZGUgbGEKICAgIGRpc3RyaWJ1dGlvbiBkJ0FwYWNoZSBzb250IGZvdXJuaXMg4CB0aXRyZSBkJ2V4ZW1wbGVzIHBvdXIgY2V1eCBxdWkKICAgIHNvdWhhaXRlbnQg6WNyaXJlIGRlcyBtb2R1bGVzIHF1aSB1dGlsaXNlbnQgbCdBUEkgZCdBcGFjaGUuPC9wPgoKICAgIDxwPkxlIGZpY2hpZXIgcHJpbmNpcGFsIGVzdCA8Y29kZT5tb2RfZXhhbXBsZS5jPC9jb2RlPiwgcXVpCiAgICBjb25zdGl0dWUgdW5lIGlsbHVzdHJhdGlvbiBleGhhdXN0aXZlIGRlcyBkaWZm6XJlbnRzIG3pY2FuaXNtZXMgZXQKICAgIHN5bnRheGVzIGQnYXBwZWxzLiBFbiBhdWN1biBjYXMgdW4gbW9kdWxlIGFkZGl0aW9ubmVsIG4nYXVyYSDgCiAgICBpbmNsdXJlIGRlcyByb3V0aW5lcyBwb3VyIHRvdXMgbGVzIGFwcGVscyAtIGlsIG4nZW4gbuljZXNzaXRlcmEgYXUKICAgIGNvbnRyYWlyZSBxdSd1biBwZXRpdCBub21icmUgITwvcD4KCiAgICA8cD5MZSBtb2R1bGUgZXhhbXBsZSBmb25jdGlvbm5lIHLpZWxsZW1lbnQuIFNpIHZvdXMgbGUgY2hhcmdleiBkYW5zCiAgICB2b3RyZSBzZXJ2ZXVyLCBhY3RpdmV6IGxlIGdlc3Rpb25uYWlyZSAiZXhhbXBsZS1oYW5kbGVyIiBkYW5zIHVuZQogICAgc2VjdGlvbiBsb2NhdGlvbiwgZXQgZXNzYXlleiBkJ2FjY+lkZXIg4CBsYSB6b25lIGR1IHNpdGUgd2ViCiAgICBjb3JyZXNwb25kYW50ZSwgdm91cyB2ZXJyZXogcydhZmZpY2hlciBjZXJ0YWluZXMgc29ydGllcyBxdWUgbGUKICAgIG1vZHVsZSBleGFtcGxlIHByb2R1aXQgYXUgY291cnMgZGVzIGRpZmbpcmVudHMgYXBwZWxzLjwvcD4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGgzIGNsYXNzPSJkaXJlY3RpdmVzIj5EaXJlY3RpdmVzPC9oMz4KPHVsIGlkPSJ0b2MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNleGFtcGxlIj5FeGFtcGxlPC9hPjwvbGk+CjwvdWw+CjxoMz5TdWpldHM8L2gzPgo8dWwgaWQ9InRvcGljcyI+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2NvbXBpbGluZyI+Q29tcGlsYXRpb24gZHUgbW9kdWxlIGV4YW1wbGU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjdXNpbmciPlV0aWxpc2F0aW9uIGR1IG1vZHVsZQo8Y29kZT5tb2RfZXhhbXBsZTwvY29kZT48L2E+PC9saT4KPC91bD48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudGFpcmVzPC9hPjwvbGk+PC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iY29tcGlsaW5nIiBpZD0iY29tcGlsaW5nIj5Db21waWxhdGlvbiBkdSBtb2R1bGUgZXhhbXBsZTwvYT48L2gyPgoKICAgIDxwPlBvdXIgaW5jbHVyZSBsZSBtb2R1bGUgZXhhbXBsZSBkYW5zIHZvdHJlIHNlcnZldXIsIGVmZmVjdHVleiBsZXMKICAgIOl0YXBlcyBzdWl2YW50ZXMgOjwvcD4KCiAgICA8b2w+CiAgICAgIDxsaT5FeOljdXRleiA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi4vcHJvZ3JhbXMvY29uZmlndXJlLmh0bWwiPmNvbmZpZ3VyZTwvYT48L2NvZGU+IGF2ZWMgbCdvcHRpb24KICAgICAgPGNvZGU+LS1lbmFibGUtZXhhbXBsZTwvY29kZT4uPC9saT4KCiAgICAgIDxsaT5Db21waWxleiBsZSBzZXJ2ZXVyIChleOljdXRleiBsYSBjb21tYW5kZQogICAgICAiPGNvZGU+bWFrZTwvY29kZT4iKS48L2xpPgogICAgPC9vbD4KCiAgICA8cD5Qb3VyIGFqb3V0ZXIgdm90cmUgcHJvcHJlIG1vZHVsZSA6PC9wPgoKICAgIDxvbCBjbGFzcz0idXAtQSI+CiAgICAgIDxsaT48Y29kZT5jcCBtb2R1bGVzL2V4cGVyaW1lbnRhbC9tb2RfZXhhbXBsZS5jCiAgICAgIG1vZHVsZXMvbm91dmVhdV9tb2R1bGUvPGVtPm1vZF9tb25leGVtcGxlLmM8L2VtPjwvY29kZT48L2xpPgoKICAgICAgPGxpPk1vZGlmaWV6IGxlIGZpY2hpZXIuPC9saT4KCiAgICAgIDxsaT5DculleiA8Y29kZT5tb2R1bGVzL25vdXZlYXVfbW9kdWxlL2NvbmZpZy5tNDwvY29kZT4uCiAgICAgICAgPG9sPgogICAgICAgICAgPGxpPkFqb3V0ZXogPGNvZGU+QVBBQ0hFX01PRFBBVEhfSU5JVChub3V2ZWF1X21vZHVsZSk8L2NvZGU+LjwvbGk+CiAgICAgICAgICA8bGk+Q29waWV6IGxhIGxpZ25lIEFQQUNIRV9NT0RVTEUgY29udGVuYW50ICJleGFtcGxlIiBkZXB1aXMKCSAgPGNvZGU+bW9kdWxlcy9leHBlcmltZW50YWwvY29uZmlnLm00PC9jb2RlPi48L2xpPgogICAgICAgICAgPGxpPlJlbXBsYWNleiBsZSBwcmVtaWVyIGFyZ3VtZW50ICJleGFtcGxlIiBwYXIKCSAgPGVtPm1vbmV4ZW1wbGU8L2VtPi48L2xpPgogICAgICAgICAgPGxpPlJlbXBsYWNleiBsZSBzZWNvbmQgYXJndW1lbnQgcGFyIHVuZSBicuh2ZSBkZXNjcmlwdGlvbiBkZQoJICB2b3RyZSBtb2R1bGUuIENldHRlIGRlc2NyaXB0aW9uIHNlcmEgdXRpbGlz6WUgcGFyIGxhIGNvbW1hbmRlCgkgIDxjb2RlPmNvbmZpZ3VyZSAtLWhlbHA8L2NvZGU+LjwvbGk+CiAgICAgICAgICA8bGk+U2kgbGEgY29tcGlsYXRpb24gZGUgdm90cmUgbW9kdWxlIG7pY2Vzc2l0ZSBkZXMgZHJhcGVhdXgKCSAgZGUgY29tcGlsYXRpb24gQywgZGVzIGRyYXBlYXV4IGQn6WRpdGlvbiBkZSBsaWVucywgb3UgZGUKCSAgYmlibGlvdGjocXVlcyBzdXBwbOltZW50YWlyZXMsIGFqb3V0ZXogbGVzIHJlc3BlY3RpdmVtZW50IOAKCSAgQ0ZMQUdTLCBMREZMQUdTIGV0IExJQlMuIFJlcG9ydGV6LXZvdXMgYXV4IGZpY2hpZXJzCgkgIDxjb2RlPmNvbmZpZy5tNDwvY29kZT4gZGVzIHLpcGVydG9pcmVzIGRlcyBhdXRyZXMgbW9kdWxlcyBwb3VyCgkgIHBsdXMgZCdleGVtcGxlcy48L2xpPgogICAgICAgICAgPGxpPkFqb3V0ZXogPGNvZGU+QVBBQ0hFX01PRFBBVEhfRklOSVNIPC9jb2RlPi48L2xpPgogICAgICAgIDwvb2w+CiAgICAgIDwvbGk+CgogICAgICA8bGk+Q3LpZXogbGUgZmljaGllcgogICAgICA8Y29kZT5tb2R1bGUvbm91dmVhdV9tb2R1bGUvTWFrZWZpbGUuaW48L2NvZGU+LgogICAgICBTaSBsYSBjb21waWxhdGlvbiBkZSB2b3RyZSBtb2R1bGUgbmUgbuljZXNzaXRlIHBhcyBkJ2luc3RydWN0aW9ucwogICAgICBwYXJ0aWN1bGnocmVzLCBjZSBmaWNoaWVyIG5lIGRvaXQgY29udGVuaXIgcXVlIGxhIGxpZ25lCiAgICAgIDxjb2RlPmluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9idWlsZC9zcGVjaWFsLm1rPC9jb2RlPi48L2xpPgoKICAgICAgPGxpPkV46WN1dGV6IC4vYnVpbGRjb25mIOAgbGEgcmFjaW5lIGR1IHLpcGVydG9pcmUuPC9saT4KCiAgICAgIDxsaT5Db21waWxleiBsZSBzZXJ2ZXVyIGFwcuhzIGF2b2lyIGV46WN1dOkgbGEgY29tbWFuZGUgY29uZmlndXJlCiAgICAgIGF2ZWMgbCdvcHRpb24gLS1lbmFibGUtbW9uZXhlbXBsZS48L2xpPgoKICAgIDwvb2w+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InVzaW5nIiBpZD0idXNpbmciPlV0aWxpc2F0aW9uIGR1IG1vZHVsZQo8Y29kZT5tb2RfZXhhbXBsZTwvY29kZT48L2E+PC9oMj4KCiAgICA8cD5Qb3VyIGFjdGl2ZXIgbGUgbW9kdWxlIGV4YW1wbGUsIGFqb3V0ZXog4CB2b3RyZSBmaWNoaWVyCiAgICA8Y29kZT5odHRwZC5jb25mPC9jb2RlPiB1biBibG9jIGR1IHN0eWxlIDo8L3A+CjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7TG9jYXRpb24gL2V4YW1wbGUtaW5mbyZndDsKICAgU2V0SGFuZGxlciBleGFtcGxlLWhhbmRsZXIKJmx0Oy9Mb2NhdGlvbiZndDs8L3ByZT4KCgogICAgPHA+Vm91cyBwb3V2ZXogYXVzc2kgYWpvdXRlciBjZSBxdWkgc3VpdCBkYW5zIHVuIGZpY2hpZXIgPGEgaHJlZj0iY29yZS5odG1sI2FjY2Vzc2ZpbGVuYW1lIj48Y29kZT4uaHRhY2Nlc3M8L2NvZGU+PC9hPiwgcHVpcwogICAgYWNj6WRlciBhdSBmaWNoaWVyICJ0ZXN0LmV4YW1wbGUiIOAgcGFydGlyIGR1IHLpcGVydG9pcmUKICAgIGNvcnJlc3BvbmRhbnQgOjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5BZGRIYW5kbGVyIGV4YW1wbGUtaGFuZGxlciAuZXhhbXBsZTwvcHJlPgoKCiAgICA8cD5BcHLocyBhdm9pciByZWNoYXJn6SBsYSBjb25maWd1cmF0aW9uIG91IHJlZOltYXJy6SB2b3RyZSBzZXJ2ZXVyLAogICAgdm91cyBkZXZyaWV6IHBvdXZvaXIgYWNj6WRlciDgIGNlIGZpY2hpZXIgZXQgdm9pciBzJ2FmZmljaGVyIGNlIHF1aQogICAgYSDpdOkgZOljcml0IHBsdXMgaGF1dC48L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJFeGFtcGxlIiBpZD0iRXhhbXBsZSI+RXhhbXBsZTwvYT4gPGEgbmFtZT0iZXhhbXBsZSIgaWQ9ImV4YW1wbGUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkRpcmVjdGl2ZSBkZSBk6W1vbnN0cmF0aW9uIHBvdXIgaWxsdXN0cmVyIGwnQVBJIGRlcyBtb2R1bGVzCkFwYWNoZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4ZTo8L2E+PC90aD48dGQ+PGNvZGU+RXhhbXBsZTwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0ZTo8L2E+PC90aD48dGQ+Y29uZmlndXJhdGlvbiBkdSBzZXJ2ZXVyLCBzZXJ2ZXVyIHZpcnR1ZWwsIHLpcGVydG9pcmUsIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHV0OjwvYT48L3RoPjx0ZD5FeHDpcmltZW50YWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2V4YW1wbGU8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5MYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RXhhbXBsZTwvY29kZT4gbidhIHBvdXIgZm9uY3Rpb24gcXVlCiAgICBkZSBk6WZpbmlyIHVuIGRyYXBlYXUgZGUgZOltb25zdHJhdGlvbiBxdWUgbGUgZ2VzdGlvbm5haXJlIGRlCiAgICBjb250ZW51IGR1IG1vZHVsZSBleGFtcGxlIHZhIGFmZmljaGVyLiBFbGxlIG5lIHBvc3PoZGUgYXVjdW4KICAgIGFyZ3VtZW50LiBTaSB2b3VzIG5hdmlndWV6IHZlcnMgdW5lIFVSTCDgIGxhcXVlbGxlIGxlIGdlc3Rpb25uYWlyZQogICAgZGUgY29udGVudSBleGFtcGxlIHMnYXBwbGlxdWUsIHZvdXMgdmVycmV6IHMnYWZmaWNoZXIgbGVzIHJvdXRpbmVzCiAgICBkdSBtb2R1bGUsIGFpbnNpIHF1ZSBsJ29yZHJlIGRhbnMgbGVxdWVsIGVsbGVzIG9udCDpdOkgYXBwZWzpZXMgcG91cgogICAgc2VydmlyIGxlIGRvY3VtZW50IGRlbWFuZOkuIE9uIHBldXQgb2JzZXJ2ZXIgbCdlZmZldCBkZSBjZXR0ZQogICAgZGlyZWN0aXZlIGRhbnMgbGEgcGhyYXNlICI8Y29kZT5FeGFtcGxlCiAgICBkaXJlY3RpdmUgZGVjbGFyZWQgaGVyZTogWUVTL05PPC9jb2RlPiIuPC9wPgoKPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfZXhhbXBsZS5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvbW9kL21vZF9leGFtcGxlLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vbW9kL21vZF9leGFtcGxlLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjQvbW9kL21vZF9leGFtcGxlLmh0bWwnOwooZnVuY3Rpb24odywgZCkgewogICAgaWYgKHcubG9jYXRpb24uaG9zdG5hbWUudG9Mb3dlckNhc2UoKSA9PSAiaHR0cGQuYXBhY2hlLm9yZyIpIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPjxcL2Rpdj4nKTsKICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9jb21tZW50cy5hcGFjaGUub3JnL3Nob3dfY29tbWVudHMubHVhP3NpdGU9JyArIGNvbW1lbnRzX3Nob3J0bmFtZSArICcmcGFnZT0nICsgY29tbWVudHNfaWRlbnRpZmllcjsKICAgICAgICAoZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQocyk7CiAgICB9CiAgICBlbHNlIHsgCiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxNCBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+QXV0b3Jpc+kgc291cyA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPkFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMDwvYT4uPC9wPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD48L2Rpdj48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQppZiAodHlwZW9mKHByZXR0eVByaW50KSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHByZXR0eVByaW50KCk7Cn0KLy8tLT48IV1dPjwvc2NyaXB0Pgo8L2JvZHk+PC9odG1sPg==