PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5tb2RfbWFjcm8gLSBTZXJ2ZXVyIEFwYWNoZSBIVFRQIFZlcnNpb24gMi41PC90aXRsZT4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi4vc3R5bGUvc2NyaXB0cy9wcmV0dGlmeS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwvc2NyaXB0PgoKPGxpbmsgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keT4KPGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPlNlcnZldXIgQXBhY2hlIEhUVFAgVmVyc2lvbiAyLjU8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4uL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5TZXJ2ZXVyIEhUVFA8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi4vIj5WZXJzaW9uIDIuNTwvYT4gJmd0OyA8YSBocmVmPSIuLyI+TW9kdWxlczwvYT48L2Rpdj4KPGRpdiBpZD0icGFnZS1jb250ZW50Ij4KPGRpdiBpZD0icHJlYW1ibGUiPjxoMT5Nb2R1bGUgQXBhY2hlIG1vZF9tYWNybzwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5MYW5ndWVzIERpc3BvbmlibGVzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9tYWNyby5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvbW9kL21vZF9tYWNyby5odG1sIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPjwvcD4KPC9kaXY+Cjx0YWJsZSBjbGFzcz0ibW9kdWxlIj48dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5DZSBtb2R1bGUgcGVybWV0IGQndXRpbGlzZXIgZGVzIG1hY3JvcyBkYW5zIGxlcyBmaWNoaWVycwpkZSBjb25maWd1cmF0aW9uIEFwYWNoZS48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1dDo8L2E+PC90aD48dGQ+QmFzZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI01vZHVsZUlkZW50aWZpZXIiPklkZW50aWZpY2F0ZXVyoGRloE1vZHVsZTo8L2E+PC90aD48dGQ+bWFjcm9fbW9kdWxlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU291cmNlRmlsZSI+RmljaGllcqBTb3VyY2U6PC9hPjwvdGg+PHRkPm1vZF9tYWNyby5jPC90ZD48L3RyPjwvdGFibGU+CjxoMz5Tb21tYWlyZTwvaDM+CgoKICAgIDxwPkNlIG1vZHVsZSBwZXJtZXQgZCd1dGlsaXNlciBkZXMgbWFjcm9zIGRhbnMgbGVzIGZpY2hpZXJzIGRlCiAgICBjb25maWd1cmF0aW9uIOAgbCdleOljdXRpb24gZHUgc2VydmV1ciBIVFRQIEFwYWNoZSBhZmluIGRlIGZhY2lsaXRlcgogICAgbGEgY3LpYXRpb24gZGUgbm9tYnJldXggYmxvY3MgZGUgY29uZmlndXJhdGlvbiBzaW1pbGFpcmVzLiBRdWFuZCBsZQogICAgc2VydmV1ciBk6W1hcnJlLCBsZXMgbWFjcm9zIHNvbnQgZXjpY3V06WVzIGF2ZWMgbGVzIHBhcmFt6HRyZXMKICAgIGZvdXJuaXMsIGV0IGxlIHLpc3VsdGF0IG9idGVudSBlc3QgdHJhaXTpIGF1IG3qbWUgdGl0cmUgcXVlIGxlIHJlc3RlCiAgICBkdSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24uPC9wPgoKPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGgzPlN1amV0czwvaDM+Cjx1bCBpZD0idG9waWNzIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjdXNhZ2UiPlV0aWxpc2F0aW9uPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3RpcHMiPkNvbnNlaWxzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2V4YW1wbGVzIj5FeGVtcGxlczwvYT48L2xpPgo8L3VsPjxoMyBjbGFzcz0iZGlyZWN0aXZlcyI+RGlyZWN0aXZlczwvaDM+Cjx1bCBpZD0idG9jIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbWFjcm8iPiZsdDtNYWNybyZndDs8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbWFjcm9pZ25vcmViYWRuZXN0aW5nIj5NYWNyb0lnbm9yZUJhZE5lc3Rpbmc8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbWFjcm9pZ25vcmVlbXB0eWFyZ3MiPk1hY3JvSWdub3JlRW1wdHlBcmdzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3VuZGVmbWFjcm8iPlVuZGVmTWFjcm88L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjdXNlIj5Vc2U8L2E+PC9saT4KPC91bD4KPGgzPlRyYWl0ZW1lbnQgZGVzIGJ1Z3M8L2gzPjx1bCBjbGFzcz0ic2VlYWxzbyI+PGxpPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9odHRwZC9DSEFOR0VTXzIuNCI+Sm91cm5hbCBkZXMgbW9kaWZpY2F0aW9ucyBkZSBodHRwZDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2J6LmFwYWNoZS5vcmcvYnVnemlsbGEvYnVnbGlzdC5jZ2k/YnVnX3N0YXR1cz1fX29wZW5fXyZhbXA7bGlzdF9pZD0xNDQ1MzImYW1wO3Byb2R1Y3Q9QXBhY2hlJTIwaHR0cGQtMiZhbXA7cXVlcnlfZm9ybWF0PXNwZWNpZmljJmFtcDtvcmRlcj1jaGFuZ2VkZGF0ZSUyMERFU0MlMkNwcmlvcml0eSUyQ2J1Z19zZXZlcml0eSZhbXA7Y29tcG9uZW50PW1vZF9tYWNybyI+UHJvYmzobWVzIGNvbm51czwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwczovL2J6LmFwYWNoZS5vcmcvYnVnemlsbGEvZW50ZXJfYnVnLmNnaT9wcm9kdWN0PUFwYWNoZSUyMGh0dHBkLTImYW1wO2NvbXBvbmVudD1tb2RfbWFjcm8iPlNpZ25hbGVyIHVuIGJ1ZzwvYT48L2xpPjwvdWw+PGgzPlZvaXIgYXVzc2k8L2gzPgo8dWwgY2xhc3M9InNlZWFsc28iPgo8bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2xpPjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InVzYWdlIiBpZD0idXNhZ2UiPlV0aWxpc2F0aW9uPC9hPjwvaDI+ICAgIAo8cD5PbiBk6WZpbml0IHVuZSBtYWNybyDgIGwnYWlkZSBkZXMgYmxvY3MgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI21hY3JvIj4mbHQ7TWFjcm8mZ3Q7PC9hPjwvY29kZT4gcXVpIGNvbnRpZW5uZW50IGxhIHBvcnRpb24gZGUgdm90cmUKY29uZmlndXJhdGlvbiBxdWkgaW50ZXJ2aWVudCBkZSBtYW5p6HJlIHLpcOl0aXRpdmUsIHkgY29tcHJpcyBsZXMKdmFyaWFibGVzIHBvdXIgbGVzIHBhcnRpZXMgcXVpIGRldnJvbnQg6nRyZSBzdWJzdGl0dellcy48L3A+Cgo8cD5QYXIgZXhlbXBsZSwgdm91cyBwb3V2ZXogdXRpbGlzZXIgdW5lIG1hY3JvIHBvdXIgZOlmaW5pciB1biBibG9jCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPiwgYWZpbiBkZSBwb3V2b2lyCmTpZmluaXIgZGUgbm9tYnJldXggc2VydmV1cnMgdmlydHVlbHMgc2ltaWxhaXJlcyA6PC9wPiAgICAKCiAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O01hY3JvIFZIb3N0ICRuYW1lICRkb21haW4mZ3Q7CiZsdDtWaXJ0dWFsSG9zdCAqOjgwJmd0OwogICAgU2VydmVyTmFtZSAkZG9tYWluCiAgICBTZXJ2ZXJBbGlhcyB3d3cuJGRvbWFpbgoKICAgIERvY3VtZW50Um9vdCAiL3Zhci93d3cvdmhvc3RzLyRuYW1lIgogICAgRXJyb3JMb2cgIi92YXIvbG9nL2h0dHBkLyRuYW1lLmVycm9yX2xvZyIKICAgIEN1c3RvbUxvZyAiL3Zhci9sb2cvaHR0cGQvJG5hbWUuYWNjZXNzX2xvZyIgY29tYmluZWQKJmx0Oy9WaXJ0dWFsSG9zdCZndDsKJmx0Oy9NYWNybyZndDs8L3ByZT4KCgo8cD5Db21tZSBsZXMgZGlyZWN0aXZlcyBkZSBjb25maWd1cmF0aW9uIGh0dHBkLCBsZXMgbm9tcyBkZXMgbWFjcm9zIHNvbnQKaW5zZW5zaWJsZXMg4CBsYSBjYXNzZSwg4CBsYSBkaWZm6XJlbmNlIGRlcyB2YXJpYWJsZXMgcXVpIHkgc29udCwgZWxsZXMsCnNlbnNpYmxlcy48L3A+Cgo8cD5Wb3VzIHBvdXZleiBhbG9ycyBpbnZvcXVlciBjZXR0ZSBtYWNybyBhdXRhbnQgZGUgZm9pcyBxdWUgdm91cyBsZQp2b3VsZXogcG91ciBjcullciBkZXMgc2VydmV1cnMgdmlydHVlbHMgPC9wPgoKPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPlVzZSBWSG9zdCBleGFtcGxlIGV4YW1wbGUuY29tClVzZSBWSG9zdCBteWhvc3QgaG9zdG5hbWUub3JnClVzZSBWSG9zdCBhcGFjaGUgYXBhY2hlLm9yZwoKVW5kZWZNYWNybyBWSG9zdDwvcHJlPgoKCjxwPkF1IGTpbWFycmFnZSBkdSBzZXJ2ZXVyLCBjaGFjdW5lIGRlIGNlcyBpbnZvY2F0aW9ucwo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjdXNlIj5Vc2U8L2E+PC9jb2RlPiBzZXJhIHJlbXBsYWPpZSBwYXIgdW5lIGTpZmluaXRpb24gZGUgc2VydmV1cgp2aXJ0dWVsIGNvbXBs6HRlLCBjb21tZSBk6WNyaXQgZGFucyBsYSBk6WZpbml0aW9uIGRlIGxhCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNtYWNybyI+Jmx0O01hY3JvJmd0OzwvYT48L2NvZGU+LjwvcD4KCjxwPkxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjdW5kZWZtYWNybyI+VW5kZWZNYWNybzwvYT48L2NvZGU+IHBlcm1ldCBkJ+l2aXRlciBsZXMKY29uZmxpdHMgZGUgZOlmaW5pdGlvbnMgcXVpIHBvdXJyYWllbnQgcHJvdmVuaXIgZGUgbCd1dGlsaXNhdGlvbgp1bHTpcmlldXJlIGRlIG1hY3JvcyBjb250ZW5hbnQgbGVzIG3qbWVzIG5vbXMgZGUgdmFyaWFibGVzLjwvcD4KCjxwPlZvdXMgdHJvdXZlcmV6IHVuZSB2ZXJzaW9uIHBsdXMg6WxhYm9y6WUgZGUgY2V0IGV4ZW1wbGUgcGx1cyBsb2luCmRhbnMgbGEgc2VjdGlvbiBFeGVtcGxlcy48L3A+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJ0aXBzIiBpZD0idGlwcyI+Q29uc2VpbHM8L2E+PC9oMj4KCjxwPkxlcyBub21zIGRlIHBhcmFt6HRyZXMgZG9pdmVudCBjb21tZW5jZXIgcGFyIHVuIHNpZ2lsIHRlbCBxdWUKPGNvZGU+JDwvY29kZT4sIDxjb2RlPiU8L2NvZGU+LCBvdSA8Y29kZT5APC9jb2RlPiwgZGUgZmHnb24g4CBjZSBxdSdpbHMKc29pZW50IGNsYWlyZW1lbnQgaWRlbnRpZmlhYmxlcywgbWFpcyBhdXNzaSBhZmluIGRlIGZhY2lsaXRlciBsZXMKaW50ZXJhY3Rpb25zIGF2ZWMgbGVzIGF1dHJlcyBkaXJlY3RpdmVzLCBjb21tZSBsYSBkaXJlY3RpdmUgZGUgYmFzZQo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2RlZmluZSI+RGVmaW5lPC9hPjwvY29kZT4uIERhbnMgbGUgY2FzIGNvbnRyYWlyZSwgdm91cwpyZWNldnJleiB1biBhdmVydGlzc2VtZW50LiBFbiB0b3V0IOl0YXQgZGUgY2F1c2UsIGlsIGVzdCBjb25zZWlsbOkKZCdhdm9pciB1bmUgYm9ubmUgY29ubmFpc3NhbmNlIGdsb2JhbGUgZGUgbGEgY29uZmlndXJhdGlvbiBkdSBzZXJ2ZXVyLAphZmluIGQn6XZpdGVyIGxhIHLpdXRpbGlzYXRpb24gZGVzIG3qbWVzIHZhcmlhYmxlcyDgIGRpZmbpcmVudHMgbml2ZWF1eCwKY2UgcXVpIHBldXQg6nRyZSDgIGwnb3JpZ2luZSBkZSBjb25mdXNpb25zLjwvcD4KCjxwPkxlcyBwYXJhbeh0cmVzIHBy6WZpeOlzIHBhciA8Y29kZT4kPC9jb2RlPiBvdSA8Y29kZT4lPC9jb2RlPiBuZSBzb250CnBhcyDpY2hhcHDpcy4gTGVzIHBhcmFt6HRyZXMgcHLpZml46XMgcGFyIDxjb2RlPkA8L2NvZGU+IHNvbnQg6WNoYXBw6XMKZW50cmUgZ3VpbGxlbWV0cy48L3A+Cgo8cD5Fdml0ZXogZGUgcHLpZml4ZXIgdW4gcGFyYW3odHJlIHBhciBsZSBub20gZCd1biBhdXRyZSBwYXJhbeh0cmUgKHBhcgpleGVtcGxlLCBwculzZW5jZSBzaW11bHRhbullIGRlcyBwYXJhbeh0cmVzIDxjb2RlPiR3aW48L2NvZGU+IGV0Cjxjb2RlPiR3aW50ZXI8L2NvZGU+KSwgY2FyIGNlY2kgcGV1dCBpbnRyb2R1aXJlIGRlIGxhIGNvbmZ1c2lvbiBsb3JzIGRlCmwn6XZhbHVhdGlvbiBkZXMgZXhwcmVzc2lvbnMuIFNpIGNlbGEgc2UgcHJvZHVpdCwgYydlc3QgbGUgbm9tIGRlCnBhcmFt6HRyZSBsZSBwbHVzIGxvbmcgcG9zc2libGUgcXVpIHNlcmEgdXRpbGlz6S48L3A+Cgo8cD5TaSB2b3VzIGTpc2lyZXogaW5z6XJlciB1bmUgdmFsZXVyIGRhbnMgdW5lIGNoYe5uZSwgaWwgZXN0IGNvbnNlaWxs6QpkZSBsJ2VudG91cmVyIGQnYWNjb2xhZGVzIGFmaW4gZCfpdml0ZXIgdG91dGUgY29uZnVzaW9uIDo8L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O01hY3JvIERvY1Jvb3QgJHtkb2Nyb290fSZndDsKICAgIERvY3VtZW50Um9vdCAiL3Zhci93d3cvJHtkb2Nyb290fS9odGRvY3MiCiZsdDsvTWFjcm8mZ3Q7PC9wcmU+CgoKPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZXhhbXBsZXMiIGlkPSJleGFtcGxlcyI+RXhlbXBsZXM8L2E+PC9oMj4KCgo8aDM+ROlmaW5pdGlvbiBkZSBzZXJ2ZXVycyB2aXJ0dWVsczwvaDM+CgoKPHA+VW4gZXhlbXBsZSB0eXBpcXVlIGQndXRpbGlzYXRpb24gZGUgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9tYWNyby5odG1sIj5tb2RfbWFjcm88L2E+PC9jb2RlPiBlc3QgbGEKY3LpYXRpb24gZHluYW1pcXVlIGRlIHNlcnZldXJzIHZpcnR1ZWxzLjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4jIyBE6WZpbml0aW9uIGQndW5lIG1hY3JvIFZIb3N0IHBvdXIgbGVzIGNvbmZpZ3VyYXRpb25zIHLpcOl0aXRpdmVzCgombHQ7TWFjcm8gVkhvc3QgJGhvc3QgJHBvcnQgJGRpciZndDsKICBMaXN0ZW4gJHBvcnQKICAmbHQ7VmlydHVhbEhvc3QgKjokcG9ydCZndDsKCiAgICBTZXJ2ZXJOYW1lICRob3N0CiAgICBEb2N1bWVudFJvb3QgIiRkaXIiCgogICAgIyBSYWNpbmUgZGVzIGRvY3VtZW50cyBwdWJsaXF1ZQogICAgJmx0O0RpcmVjdG9yeSAiJGRpciImZ3Q7CiAgICAgIFJlcXVpcmUgYWxsIGdyYW50ZWQKICAgICZsdDsvRGlyZWN0b3J5Jmd0OwoKICAgICMgcmVzdHJpY3Rpb24gZCdhY2PocyBhdSBzb3VzLXLpcGVydG9pcmUgaW50cmFuZXQuCiAgICAmbHQ7RGlyZWN0b3J5ICIkZGlyL2ludHJhbmV0IiZndDsKICAgICAgUmVxdWlyZSBpcCAxMC4wLjAuMC84CiAgICAmbHQ7L0RpcmVjdG9yeSZndDsKICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OwombHQ7L01hY3JvJmd0OwoKIyMgVXRpbGlzYXRpb24gZGUgbGEgbWFjcm8gVkhvc3QgYXZlYyBkaWZm6XJlbnRzIGFyZ3VtZW50cy4KClVzZSBWSG9zdCB3d3cuYXBhY2hlLm9yZyA4MCAvdmhvc3RzL2FwYWNoZS9odGRvY3MKVXNlIFZIb3N0IGV4YW1wbGUub3JnIDgwODAgL3Zob3N0cy9leGFtcGxlL2h0ZG9jcwpVc2UgVkhvc3Qgd3d3LmV4YW1wbGUuZnIgMTIzNCAvdmhvc3RzL2V4YW1wbGUuZnIvaHRkb2NzPC9wcmU+CgogCgo8aDM+U3VwcHJlc3Npb24gZCd1bmUgZOlmaW5pdGlvbiBkZSBtYWNybzwvaDM+CgoKPHA+SWwgZXN0IHJlY29tbWFuZOkgZGUgc3VwcHJpbWVyIGxhIGTpZmluaXRpb24gZCd1bmUgbWFjcm8gYXBy6HMKbCdhdm9pciB1dGlsaXPpZS4gQ2VjaSBwZXJtZXQgZCfpdml0ZXIgbGVzIGNvbmZ1c2lvbnMgYXUgc2VpbiBkJ3VuCmZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiBjb21wbGV4ZSBv+SBkZXMgY29uZmxpdHMgZW50cmUgbm9tcyBkZQp2YXJpYWJsZXMgcGV1dmVudCBzdXJ2ZW5pci48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O01hY3JvIERpckdyb3VwICRkaXIgJGdyb3VwJmd0OwogICZsdDtEaXJlY3RvcnkgIiRkaXIiJmd0OwogICAgUmVxdWlyZSBncm91cCAkZ3JvdXAKICAmbHQ7L0RpcmVjdG9yeSZndDsKJmx0Oy9NYWNybyZndDsKClVzZSBEaXJHcm91cCAvd3d3L2FwYWNoZS9wcml2YXRlIHByaXZhdGUKVXNlIERpckdyb3VwIC93d3cvYXBhY2hlL3NlcnZlciAgYWRtaW4KClVuZGVmTWFjcm8gRGlyR3JvdXA8L3ByZT4KCgogCgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0ibWFjcm8iIGlkPSJtYWNybyI+RGlyZWN0aXZlPC9hPiA8YSBuYW1lPSJNYWNybyIgaWQ9Ik1hY3JvIj4mbHQ7TWFjcm8mZ3Q7PC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+ROlmaW5pdGlvbiBkJ3VuZSBtYWNybyBkYW5zIHVuIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4ZTo8L2E+PC90aD48dGQ+PGNvZGU+CiZsdDtNYWNybyA8dmFyPm5vbTwvdmFyPiBbPHZhcj5wYXIxPC92YXI+IC4uIDx2YXI+cGFyTjwvdmFyPl0mZ3Q7Ci4uLiAmbHQ7L01hY3JvJmd0OzwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0ZTo8L2E+PC90aD48dGQ+Y29uZmlndXJhdGlvbiBkdSBzZXJ2ZXVyLCBzZXJ2ZXVyIHZpcnR1ZWwsIHLpcGVydG9pcmU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1dDo8L2E+PC90aD48dGQ+QmFzZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfbWFjcm88L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5MYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+Jmx0O01hY3JvJmd0OzwvY29kZT4gcGVybWV0IGRlIGTpZmluaXIgdW5lIG1hY3JvCiAgICBkYW5zIHVuIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiBBcGFjaGUuIExlIHByZW1pZXIgYXJndW1lbnQgZXN0IGxlIG5vbQogICAgZGUgbGEgbWFjcm8sIGV0IGxlcyBhcmd1bWVudHMgc3VpdmFudHMgc29udCBsZXMgcGFyYW3odHJlcy4gSWwKICAgIGVzdCBkZSBib24gYWxvaSBkZSBwculmaXhlciBsZXMgbm9tcyBkZXMgcGFyYW3odHJlcyBkJ3VuZSBtYWNybwogICAgYXZlYyB1biBjYXJhY3TocmUgcGFybWkgJzxjb2RlPiQlQDwvY29kZT4nLCBldCBkJ+l2aXRlciBkJ2VuIGZhaXJlCiAgICBkZSBt6m1lIGF2ZWMgbGVzIG5vbXMgZGUgbWFjcm9zLgogICAgPC9wPgoKICAgIDxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7TWFjcm8gTG9jYWxBY2Nlc3NQb2xpY3kmZ3Q7CiAgUmVxdWlyZSBpcCAxMC4yLjE2LjAvMjQKJmx0Oy9NYWNybyZndDsKCiZsdDtNYWNybyBSZXN0cmljdGVkQWNjZXNzUG9saWN5ICRpcG51bWJlcnMmZ3Q7CiAgIFJlcXVpcmUgaXAgJGlwbnVtYmVycwombHQ7L01hY3JvJmd0OzwvcHJlPgoKCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJtYWNyb2lnbm9yZWJhZG5lc3RpbmciIGlkPSJtYWNyb2lnbm9yZWJhZG5lc3RpbmciPkRpcmVjdGl2ZTwvYT4gPGEgbmFtZT0iTWFjcm9JZ25vcmVCYWROZXN0aW5nIiBpZD0iTWFjcm9JZ25vcmVCYWROZXN0aW5nIj5NYWNyb0lnbm9yZUJhZE5lc3Rpbmc8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5JZ25vcmUgbGVzIGF2ZXJ0aXNzZW1lbnRzIGV0IG4naW5zY3JpdCByaWVuIGRhbnMgbGUgam91cm5hbCDgCnByb3BvcyBkJ3VuZSBpbWJyaWNhdGlvbiBkZSBNYWNyb3Mgbm9uIGNvbmZvcm1lPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXhlOjwvYT48L3RoPjx0ZD48Y29kZT5NYWNyb0lnbm9yZUJhZE5lc3Rpbmc8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dGU6PC9hPjwvdGg+PHRkPmNvbmZpZ3VyYXRpb24gZHUgc2VydmV1ciwgc2VydmV1ciB2aXJ0dWVsLCBy6XBlcnRvaXJlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXQ6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX21hY3JvPC90ZD48L3RyPgo8L3RhYmxlPgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0ibWFjcm9pZ25vcmVlbXB0eWFyZ3MiIGlkPSJtYWNyb2lnbm9yZWVtcHR5YXJncyI+RGlyZWN0aXZlPC9hPiA8YSBuYW1lPSJNYWNyb0lnbm9yZUVtcHR5QXJncyIgaWQ9Ik1hY3JvSWdub3JlRW1wdHlBcmdzIj5NYWNyb0lnbm9yZUVtcHR5QXJnczwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPklnbm9yZSBsZXMgYXZlcnRpc3NlbWVudHMgZXQgbidpbnNjcml0IHJpZW4gZGFucyBsZSBqb3VybmFsIOAKcHJvcG9zIGRlcyBhcmd1bWVudHMgZGUgTWFjcm8gdmlkZXM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheGU6PC9hPjwvdGg+PHRkPjxjb2RlPk1hY3JvSWdub3JlRW1wdHlBcmdzPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHRlOjwvYT48L3RoPjx0ZD5jb25maWd1cmF0aW9uIGR1IHNlcnZldXIsIHNlcnZldXIgdmlydHVlbCwgculwZXJ0b2lyZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHV0OjwvYT48L3RoPjx0ZD5CYXNlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9tYWNybzwvdGQ+PC90cj4KPC90YWJsZT4KPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9InVuZGVmbWFjcm8iIGlkPSJ1bmRlZm1hY3JvIj5EaXJlY3RpdmU8L2E+IDxhIG5hbWU9IlVuZGVmTWFjcm8iIGlkPSJVbmRlZk1hY3JvIj5VbmRlZk1hY3JvPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+U3VwcHJpbWUgdW5lIG1hY3JvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXhlOjwvYT48L3RoPjx0ZD48Y29kZT5VbmRlZk1hY3JvIDx2YXI+bm9tPC92YXI+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHRlOjwvYT48L3RoPjx0ZD5jb25maWd1cmF0aW9uIGR1IHNlcnZldXIsIHNlcnZldXIgdmlydHVlbCwgculwZXJ0b2lyZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHV0OjwvYT48L3RoPjx0ZD5CYXNlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9tYWNybzwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPkxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5VbmRlZk1hY3JvPC9jb2RlPiBhbm51bGUgbGEgZOlmaW5pdGlvbgogICAgZCd1bmUgbWFjcm8gcXVpIGRvaXQgYXZvaXIg6XTpIGTpZmluaWUgYXVwYXJhdmFudC48L3A+CgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPlVuZGVmTWFjcm8gTG9jYWxBY2Nlc3NQb2xpY3kKVW5kZWZNYWNybyBSZXN0cmljdGVkQWNjZXNzUG9saWN5PC9wcmU+CgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9InVzZSIgaWQ9InVzZSI+RGlyZWN0aXZlPC9hPiA8YSBuYW1lPSJVc2UiIGlkPSJVc2UiPlVzZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlV0aWxpc2F0aW9uIGQndW5lIG1hY3JvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXhlOjwvYT48L3RoPjx0ZD48Y29kZT5Vc2UgPHZhcj5ub208L3Zhcj4gWzx2YXI+dmFsZXVyMTwvdmFyPiAuLi4gPHZhcj52YWxldXJOPC92YXI+XQo8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dGU6PC9hPjwvdGg+PHRkPmNvbmZpZ3VyYXRpb24gZHUgc2VydmV1ciwgc2VydmV1ciB2aXJ0dWVsLCBy6XBlcnRvaXJlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXQ6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX21hY3JvPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+IExhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5Vc2U8L2NvZGU+IHBlcm1ldCBkJ3V0aWxpc2VyIHVuZSBtYWNyby4KICAgIExhIG1hY3JvIGNvbnNpZOly6WUgZXN0IGV4cGFuc+llLiBTb24gbm9tYnJlIGQnYXJndW1lbnRzIGRvaXQg6nRyZSDpZ2FsIGF1CiAgICBub21icmUgZGUgcGFyYW3odHJlcyBwculjaXPpcyBkYW5zIHNhIGTpZmluaXRpb24uIExlcyB2YWxldXJzIHBhc3PpZXMgZW4KICAgIGFyZ3VtZW50IHNvbnQgYXR0cmlidellcyBhdXggcGFyYW3odHJlcyBjb3JyZXNwb25kYW50cyBldAogICAgc3Vic3RpdHXpZXMgYXZhbnQgbCdpbnRlcnBy6XRhdGlvbiBkdSB0ZXh0ZSBkZSBsYSBtYWNyby48L3A+CgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPlVzZSBMb2NhbEFjY2Vzc1BvbGljeQouLi4KVXNlIFJlc3RyaWN0ZWRBY2Nlc3NQb2xpY3kgIjE5Mi41NC4xNzIuMC8yNCAxOTIuNTQuMTQ4LjAvMjQiPC9wcmU+CgoKICAgIDxwPmVzdCDpcXVpdmFsZW50LCBhdmVjIGxlcyBtYWNyb3MgZOlmaW5pZXMgY2ktZGVzc3VzIOAgOjwvcD4KCiAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+UmVxdWlyZSBpcCAxMC4yLjE2LjAvMjQKLi4uClJlcXVpcmUgaXAgMTkyLjU0LjE3Mi4wLzI0IDE5Mi41NC4xNDguMC8yNDwvcHJlPgoKCjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkxhbmd1ZXMgRGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9tb2QvbW9kX21hY3JvLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9mci9tb2QvbW9kX21hY3JvLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIGFsdD0idG9wIiAvPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDI+PGEgaWQ9ImNvbW1lbnRzX3NlY3Rpb24iIG5hbWU9ImNvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2gyPjxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPjxiciAvPlRoaXMgaXMgbm90IGEgUSZhbXA7QSBzZWN0aW9uLiBDb21tZW50cyBwbGFjZWQgaGVyZSBzaG91bGQgYmUgcG9pbnRlZCB0b3dhcmRzIHN1Z2dlc3Rpb25zIG9uIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbiBvciBzZXJ2ZXIsIGFuZCBtYXkgYmUgcmVtb3ZlZCBhZ2FpbiBieSBvdXIgbW9kZXJhdG9ycyBpZiB0aGV5IGFyZSBlaXRoZXIgaW1wbGVtZW50ZWQgb3IgY29uc2lkZXJlZCBpbnZhbGlkL29mZi10b3BpYy4gUXVlc3Rpb25zIG9uIGhvdyB0byBtYW5hZ2UgdGhlIEFwYWNoZSBIVFRQIFNlcnZlciBzaG91bGQgYmUgZGlyZWN0ZWQgYXQgZWl0aGVyIG91ciBJUkMgY2hhbm5lbCwgI2h0dHBkLCBvbiBGcmVlbm9kZSwgb3Igc2VudCB0byBvdXIgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvbGlzdHMuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4uPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCnZhciBjb21tZW50c19zaG9ydG5hbWUgPSAnaHR0cGQnOwp2YXIgY29tbWVudHNfaWRlbnRpZmllciA9ICdodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL3RydW5rL21vZC9tb2RfbWFjcm8uaHRtbCc7CihmdW5jdGlvbih3LCBkKSB7CiAgICBpZiAody5sb2NhdGlvbi5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpID09ICJodHRwZC5hcGFjaGUub3JnIikgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+PFwvZGl2PicpOwogICAgICAgIHZhciBzID0gZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBzLmFzeW5jID0gdHJ1ZTsKICAgICAgICBzLnNyYyA9ICdodHRwczovL2NvbW1lbnRzLmFwYWNoZS5vcmcvc2hvd19jb21tZW50cy5sdWE/c2l0ZT0nICsgY29tbWVudHNfc2hvcnRuYW1lICsgJyZwYWdlPScgKyBjb21tZW50c19pZGVudGlmaWVyOwogICAgICAgIChkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0gfHwgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdKS5hcHBlbmRDaGlsZChzKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTcgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkF1dG9yaXPpIHNvdXMgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL3F1aWNrcmVmZXJlbmNlLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iaHR0cDovL3dpa2kuYXBhY2hlLm9yZy9odHRwZC9GQVEiPkZBUTwvYT4gfCA8YSBocmVmPSIuLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FpcmU8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5QbGFuIGR1IHNpdGU8L2E+PC9wPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCmlmICh0eXBlb2YocHJldHR5UHJpbnQpICE9PSAndW5kZWZpbmVkJykgewogICAgcHJldHR5UHJpbnQoKTsKfQovLy0tPjwhXV0+PC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+