PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5FY291dGUgc+lsZWN0aXZlIC0gU2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNTwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1sb29zZS0xMDBwYy5jc3MiIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTm8gU2lkZWJhciAtIERlZmF1bHQgZm9udCBzaXplIiAvPgo8bGluayBocmVmPSIuL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi9zdHlsZS9zY3JpcHRzL3ByZXR0aWZ5Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KPC9zY3JpcHQ+Cgo8bGluayBocmVmPSIuL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHkgaWQ9Im1hbnVhbC1wYWdlIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4vc2l0ZW1hcC5odG1sIj5QbGFuIGR1IHNpdGU8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5TZXJ2ZXVyIEFwYWNoZSBIVFRQIFZlcnNpb24gMi41PC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2ZlYXRoZXIucG5nIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPlNlcnZldXIgSFRUUDwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLyI+VmVyc2lvbiAyLjU8L2E+PC9kaXY+PGRpdiBpZD0icGFnZS1jb250ZW50Ij48ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPkVjb3V0ZSBz6WxlY3RpdmU8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4vZGUvYmluZC5odG1sIiBocmVmbGFuZz0iZGUiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRGV1dHNjaCI+Jm5ic3A7ZGUmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lbi9iaW5kLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2VzL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImVzIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVzcGHxb2wiPiZuYnNwO2VzJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvYmluZC5odG1sIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvYmluZC5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vYmluZC5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL2JpbmQuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj4KCiAgICA8cD5Db25maWd1cmF0aW9uIGR1IHNlcnZldXIgSFRUUCBBcGFjaGUgcG91ciBsJ+ljb3V0ZQogICAgc3VyIHVuIHBvcnQgZXQgdW5lIGFkcmVzc2UgSVAgc3DpY2lmaXF1ZXMuPC9wPgogIDwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjx1bCBpZD0idG9jIj48bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI292ZXJ2aWV3Ij5WdWUgZCdlbnNlbWJsZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2lwdjYiPlJlbWFycXVlcyBzcOljaWZpcXVlcyDgIElQdjY8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNwcm90b2NvbCI+U3DpY2lmaWNhdGlvbiBkdSBwcm90b2NvbGUgYXZlYyBMaXN0ZW48L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN2aXJ0dWFsaG9zdCI+Q29tbWVudCB0b3V0IGNlY2kgZm9uY3Rpb25uZS10LWlsIGF2ZWMgbGVzIGj0dGVzIHZpcnR1ZWxzPC9hPjwvbGk+CjwvdWw+PGgzPlZvaXIgYXVzc2k8L2gzPjx1bCBjbGFzcz0ic2VlYWxzbyI+PGxpPjxhIGhyZWY9InZob3N0cy8iPkj0dGVzIHZpcnR1ZWxzPC9hPjwvbGk+PGxpPjxhIGhyZWY9ImRucy1jYXZlYXRzLmh0bWwiPlByb2Js6G1lcyBsaelzIOAgRE5TPC9hPjwvbGk+PGxpPjxhIGhyZWY9IiNjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9Im92ZXJ2aWV3IiBpZD0ib3ZlcnZpZXciPlZ1ZSBkJ2Vuc2VtYmxlPC9hPjwvaDI+CiAgICAKCiAgICA8dGFibGUgY2xhc3M9InJlbGF0ZWQiPjx0cj48dGg+TW9kdWxlcyBBcHBhcmVudOlzPC90aD48dGg+RGlyZWN0aXZlcyBBcHBhcmVudOllczwvdGg+PC90cj48dHI+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sIj5jb3JlPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwiPm1wbV9jb21tb248L2E+PC9jb2RlPjwvbGk+PC91bD48L3RkPjx0ZD48dWw+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbXBtX2NvbW1vbi5odG1sI2xpc3RlbiI+TGlzdGVuPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CgoKICAgIDxwPkF1IGTpbWFycmFnZSBkZSBodHRwZCwgdW4gcG9ydCBldCB1bmUgYWRyZXNzZSBsdWkgc29udCBhc3NvY2npcyBzdXIKICAgIGwnaPR0ZSBsb2NhbCBldCBsZSBzZXJ2ZXVyIHNlIG1ldCBlbiBhdHRlbnRlIGRlIGwnYXJyaXbpZSBkJ3VuZSByZXF16nRlLgogICAgUGFyIGTpZmF1dCwgbGUgc2VydmV1ciDpY291dGUgdG91dGVzIGxlcyBhZHJlc3NlcyBkZSBsJ2j0dGUgbG9jYWwuCiAgICBDZXBlbmRhbnQsIG9uIHBldXQgbHVpIHBy6WNpc2VyIGRlcyBwb3J0cyBldCBkZXMgYWRyZXNzZXMgc3DpY2lmaXF1ZXMg4CDpY291dGVyLAogICAgb3UgdW5lIGNvbWJpbmFpc29uIGRlcyBkZXV4LgogICAgVG91dCBjZWNpIGVzdCBzb3V2ZW50IGFzc29jaekgYXZlYyBsYSBmb25jdGlvbm5hbGl06QogICAgZGVzIDxhIGhyZWY9InZob3N0cy8iPmj0dGVzIHZpcnR1ZWxzPC9hPgogICAgcXVpIGTpdGVybWluZSBsYSBtYW5p6HJlIGRvbnQgPGNvZGU+aHR0cGQ8L2NvZGU+IHLpcG9uZCBhdXggZGlmZulyZW50cyBwb3J0cywKICAgIG5vbXMgZCdo9HRlcyBldCBhZHJlc3NlcyBJUC48L3A+CgogICAgPHA+TGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+CiAgICBlbmpvaW50IGxlIHNlcnZldXIgZGUgbidhY2NlcHRlciBkZXMgcmVxdep0ZXMgcXVlIHN1ciBsZShzKQogICAgcG9ydChzKSBzcOljaWZp6XMgb3UKICAgIHVuZSBjb21iaW5haXNvbiBhZHJlc3NlL3BvcnQuIFNpIHNldWwgdW4gbnVt6XJvIGRlIHBvcnQgZXN0IHNw6WNpZmnpCiAgICBkYW5zIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPiwKICAgIGxlIHNlcnZldXIgc2UgbWV0IOAgbCfpY291dGUgc3VyIGNlIHBvcnQsIHN1ciB0b3V0ZXMgbGVzIGludGVyZmFjZXMgculzZWF1LgogICAgU2kgdW5lIGFkcmVzc2UgSVAgZXN0IHNw6WNpZmnpZSBlbiBwbHVzIGR1IHBvcnQsIGxlIHNlcnZldXIgdmEg6WNvdXRlcgogICAgc3VyIGNlIHBvcnQsIHVuaXF1ZW1lbnQgc3VyIGwnaW50ZXJmYWNlIHLpc2VhdSBjb3JyZXNwb25kYW50ZS4gT24gcGV1dCB1dGlsaXNlcgogICAgZGUgbXVsdGlwbGVzIGRpcmVjdGl2ZXMKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+IHBvdXIKICAgIHNw6WNpZmllciBwbHVzaWV1cnMgYWRyZXNzZXMgZXQgcG9ydHMg4CDpY291dGVyLiBMZSBzZXJ2ZXVyIHLpcG9uZHJhIGFsb3JzCiAgICBhdXggcmVxdep0ZXMgc3VyIGNlcyBwb3J0cyBldCBhZHJlc3NlcyBzcOljaWZp6XMuPC9wPgoKICAgIDxwPlBhciBleGVtcGxlLCBwb3VyIGZhaXJlIGVuIHNvcnRlIHF1ZSBsZSBzZXJ2ZXVyIGFjY2VwdGUgZGVzIGNvbm5leGlvbnMKICAgIHN1ciBsZXMgcG9ydHMgODAgZXQgODAwMCwgc3VyIHRvdXRlcyBsZXMgaW50ZXJmYWNlcywgdXRpbGlzZXogOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TGlzdGVuIDgwCkxpc3RlbiA4MDAwPC9wcmU+CjwvZGl2PgoKICAgIDxwPlBvdXIgZmFpcmUgZW4gc29ydGUgcXVlIGxlIHNlcnZldXIgYWNjZXB0ZSBkZXMgY29ubmV4aW9ucyBzdXIgbGUgcG9ydCA4MAogICAgcG91ciB1bmUgaW50ZXJmYWNlLCBldCBzdXIgbGUgcG9ydCA4MDAwIHBvdXIgdW5lCiAgICBhdXRyZSBpbnRlcmZhY2UsIHV0aWxpc2V6IDo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkxpc3RlbiAxOTIuMC4yLjE6ODAKTGlzdGVuIDE5Mi4wLjIuNTo4MDAwPC9wcmU+CjwvZGl2PgoKICAgIDxwPkxlcyBhZHJlc3NlcyBJUHY2IGRvaXZlbnQg6nRyZSBtaXNlcyBlbnRyZSBjcm9jaGV0cywgY29tbWUgZGFucwogICAgbCdleGVtcGxlIHN1aXZhbnQgOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TGlzdGVuIFsyMDAxOmRiODo6YTAwOjIwZmY6ZmVhNzpjY2VhXTo4MDwvcHJlPgo8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJ3YXJuaW5nIj48cD5EZXMgZGlyZWN0aXZlcyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPgogICAgaW1icmlxdellcyBwcm92b3F1ZXJvbnQgdW5lIGVycmV1ciBmYXRhbGUgcXVpCiAgICBlbXDqY2hlcmEgbGUgc2VydmV1ciBkZSBk6W1hcnJlci48L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICg0OClBZGRyZXNzIGFscmVhZHkgaW4gdXNlOiBtYWtlX3NvY2s6IGNvdWxkIG5vdCBiaW5kIHRvIGFkZHJlc3MgWzo6XTo4MAogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5Wb2lyIDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvQ291bGROb3RCaW5kVG9BZGRyZXNzIj5jZXR0ZQogICAgZGlzY3Vzc2lvbiBkYW5zIGxlIHdpa2k8L2E+IHBvdXIgcGx1cyBkZSBjb25zZWlscyBwb3VyIHLpc291ZHJlIGNlCiAgICBwcm9ibOhtZS48L3A+CgogICAgPC9kaXY+CgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iaXB2NiIgaWQ9ImlwdjYiPlJlbWFycXVlcyBzcOljaWZpcXVlcyDgIElQdjY8L2E+PC9oMj4KICAgIAoKICAgIDxwPlVuIG5vbWJyZSBjcm9pc3NhbnQgZGUgcGxhdGVmb3JtZXMgaW1wbOltZW50ZW50IElQdjYsIGV0CiAgICA8YSBjbGFzcz0iZ2xvc3NhcnlsaW5rIiBocmVmPSIuL2dsb3NzYXJ5Lmh0bWwjYXByIiB0aXRsZT0idm9pciBnbG9zc2FpcmUiPkFQUjwvYT4gc3VwcG9ydGUgSVB2NiBzdXIgbGEgcGx1cGFydCBkJ2VudHJlIGVsbGVzLAogICAgY2UgcXVpIHBlcm1ldCDgIGh0dHBkIGQnYWxsb3VlciBkZXMgcG9pbnRzIGRlIGNvbm5leGlvbiAoc29ja2V0cykgSVB2NgogICAgZXQgZGUgdHJhaXRlciBkZXMgcmVxdep0ZXMgZW52b3npZXMgc3VyIElQdjYuPC9wPgoKICAgIDxwPkxlcyBhZG1pbmlzdHJhdGV1cnMgZGUgaHR0cGQgZG9pdmVudCBzZSBwculvY2N1cGVyIGRlIGxhIHBvc3NpYmlsaXTpCiAgICBwb3VyIHVuIHBvaW50IGRlIGNvbm5leGlvbiBJUHY2IGRlIHRyYWl0ZXIg4CBsYSBmb2lzIGRlcyBjb25uZXhpb25zIElQdjQKICAgIGV0IGRlcyBjb25uZXhpb25zIElQdjYuCiAgICBMZSB0cmFpdGVtZW50IGRlIGNvbm5leGlvbnMgSVB2NCBhdmVjIHVuIHBvaW50IGRlIGNvbm5leGlvbiBJUHY2IHV0aWxpc2UKICAgIGRlcyBhZHJlc3NlcyBJUHY2IHRyYWR1aXRlcyBlbiBJUHY0LCBxdWkgc29udCBhdXRvcmlz6WVzIHBhciBk6WZhdXQgc3VyIGxhCiAgICBwbHVwYXJ0IGRlcyBwbGF0ZWZvcm1lcywgbWFpcyBzb250IGludGVyZGl0ZXMgcGFyIGTpZmF1dCBzb3VzIEZyZWVCU0QsIE5ldEJTRCwKICAgIGV0IE9wZW5CU0QsIGFmaW4gZGUgcmVzcGVjdGVyIGxhIHBvbGl0aXF1ZSBkZSBz6WN1cml06SBkdSBzeXN06G1lIHN1ciBjZXMgcGxhdGVmb3JtZXMuCiAgICBTdXIgbGVzIHN5c3TobWVzIG/5IGNlcyBhZHJlc3NlcyBzb250IGludGVyZGl0ZXMgcGFyIGTpZmF1dCwgdW4KICAgIHBhcmFt6HRyZSBzcOljaWFsIGR1IHNjcmlwdCA8Y29kZSBjbGFzcz0icHJvZ3JhbSI+PGEgaHJlZj0iLi9wcm9ncmFtcy9jb25maWd1cmUuaHRtbCI+Y29uZmlndXJlPC9hPjwvY29kZT4gcGVybWV0IGRlIG1vZGlmaWVyCiAgICBjZSBjb21wb3J0ZW1lbnQgcG91ciBodHRwZC48L3A+CgogICAgPHA+RW4gcmV2YW5jaGUsIHN1ciBjZXJ0YWluZXMgcGxhdGVmb3JtZXMgY29tbWUgTGludXggZXQgVHJ1NjQsIGxhCiAgICA8c3Ryb25nPnNldWxlPC9zdHJvbmc+IG1hbmnocmUgZGUgZ+lyZXIg4CBsYSBmb2lzIElQdjYgZXQgSVB2NCBwYXNzZQogICAgcGFyIGwndXRpbGlzYXRpb24gZCdhZHJlc3NlcyB0cmFkdWl0ZXMuIFNpIHZvdXMgdm91bGV6IHF1ZSA8Y29kZT5odHRwZDwvY29kZT4gZ+hyZQogICAgZGVzIGNvbm5leGlvbnMgSVB2NCBldCBJUHY2IGF2ZWMgdW4gbWluaW11bSBkZSBwb2ludHMgZGUgY29ubmV4aW9uLAogICAgY2UgcXVpIG7pY2Vzc2l0ZSBsJ3V0aWxpc2F0aW9uIGQnYWRyZXNzZXMgSVB2NiB0cmFkdWl0ZXMgZW4gSVB2NCwKICAgIHV0aWxpc2V6IGwnb3B0aW9uIDxjb2RlPi0tZW5hYmxlLXY0LW1hcHBlZDwvY29kZT4gZHUgc2NyaXB0IDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuL3Byb2dyYW1zL2NvbmZpZ3VyZS5odG1sIj5jb25maWd1cmU8L2E+PC9jb2RlPi48L3A+CgogICAgPHA+TCdvcHRpb24gPGNvZGU+LS1lbmFibGUtdjQtbWFwcGVkPC9jb2RlPiBlc3QgdXRpbGlz6WUgcGFyIGTpZmF1dCBzdXIKICAgIHRvdXRlcyBsZXMgcGxhdGVmb3JtZXMgc2F1ZiBGcmVlQlNELCBOZXRCU0QsIGV0IE9wZW5CU0Q7CiAgICB2b3RyZSBodHRwZCBhIGRvbmMgcHJvYmFibGVtZW50IOl06SBjb25zdHJ1aXQgYXZlYyBjZXR0ZSBvcHRpb24uPC9wPgoKICAgIDxwPlNpIHZvdXMgc291aGFpdGV6IHF1ZSBodHRwZCBuZSBn6HJlIHF1ZSBkZXMgY29ubmV4aW9ucyBJUHY0LCBzYW5zIHNlCiAgICBzb3VjaWVyIGRlIGNlIHF1ZSB2b3MgcGxhdGVmb3JtZSBldCBBUFIgc3VwcG9ydGVudCwgc3DpY2lmaWV6IHVuZSBhZHJlc3NlCiAgICBJUHY0IGRhbnMgdG91dGVzIGxlcyBkaXJlY3RpdmVzCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPiwgY29tbWUgZGFucyBsJ2V4ZW1wbGUKICAgIHN1aXZhbnQgOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+TGlzdGVuIDAuMC4wLjA6ODAKTGlzdGVuIDE5Mi4wLjIuMTo4MDwvcHJlPgo8L2Rpdj4KCiAgICA8cD5TaSB2b3RyZSBwbGF0ZWZvcm1lIGxlIHN1cHBvcnRlIGV0IHNpIHZvdXMgc291aGFpdGV6IHF1ZSBodHRwZCBn6HJlCiAgICBkZXMgY29ubmV4aW9ucyBJUHY0IGV0IElQdjYgc3VyIGRlcyBwb2ludHMgZGUgY29ubmV4aW9uIHPpcGFy6XMKICAgIChjJ2VzdCDgIGRpcmUgZOlzYWN0aXZlciBsYSB0cmFkdWN0aW9uIGRlcyBhZHJlc3NlcyBJUHY2IGF1IGZvcm1hdCBJUHY0KSwKICAgIHV0aWxpc2V6IGwnb3B0aW9uIDxjb2RlPi0tZGlzYWJsZS12NC1tYXBwZWQ8L2NvZGU+IGR1IHNjcmlwdAogICAgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvY29uZmlndXJlLmh0bWwiPmNvbmZpZ3VyZTwvYT48L2NvZGU+LiA8Y29kZT4tLWRpc2FibGUtdjQtbWFwcGVkPC9jb2RlPiBlc3QKICAgIHV0aWxpc+kgcGFyIGTpZmF1dCBzdXIgRnJlZUJTRCwgTmV0QlNELCBldCBPcGVuQlNELjwvcD4KICA8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InByb3RvY29sIiBpZD0icHJvdG9jb2wiPlNw6WNpZmljYXRpb24gZHUgcHJvdG9jb2xlIGF2ZWMgTGlzdGVuPC9hPjwvaDI+CiAgICAKICAgIDxwPkRhbnMgbGEgcGx1cGFydCBkZXMgY29uZmlndXJhdGlvbnMsIGxlIHNlY29uZCBwYXJhbeh0cmUgb3B0aW9ubmVsCiAgICA8dmFyPnByb3RvY29sPC92YXI+IGRlIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tcG1fY29tbW9uLmh0bWwjbGlzdGVuIj5MaXN0ZW48L2E+PC9jb2RlPiBuJ2VzdCBwYXMgb2JsaWdhdG9pcmUuIFMnaWwKICAgIG4nZXN0IHBhcyBzcOljaWZp6SwgbGVzIHByb3RvY29sZXMgcGFyIGTpZmF1dAogICAgc29udCA8Y29kZT5odHRwczwvY29kZT4gcG91ciBsZSBwb3J0IDQ0MywgZXQgPGNvZGU+aHR0cDwvY29kZT4gcG91cgogICAgdG91cyBsZXMgYXV0cmVzIHBvcnRzLiBMZSBwcm90b2NvbGUgc2VydCDgIGTpdGVybWluZXIgcXVlbCBtb2R1bGUKICAgIGRvaXQgdHJhaXRlciB1bmUgcmVxdep0ZSwgZXQg4CBhcHBsaXF1ZXIgbGVzIG9wdGltaXNhdGlvbnMKICAgIHNw6WNpZmlxdWVzIGF1IHByb3RvY29sZSB2aWEgbGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNhY2NlcHRmaWx0ZXIiPkFjY2VwdEZpbHRlcjwvYT48L2NvZGU+LjwvcD4KCiAgICA8cD5Wb3VzIG5lIGRldmV6IGTpZmluaXIgbGUgcHJvdG9jb2xlIHF1ZSBzaSB2b3VzIHRyYXZhaWxsZXogYXZlYwogICAgZGVzIHBvcnRzIG5vbiBzdGFuZGFyZHMuIFBhciBleGVtcGxlLCBwb3VyIHRyYXZhaWxsZXIgZW4KICAgIDxjb2RlPmh0dHBzPC9jb2RlPiBzdXIgbGUgcG9ydCA4NDQzIDo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkxpc3RlbiAxOTIuMTcwLjIuMTo4NDQzIGh0dHBzPC9wcmU+CjwvZGl2PgogIDwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0idmlydHVhbGhvc3QiIGlkPSJ2aXJ0dWFsaG9zdCI+Q29tbWVudCB0b3V0IGNlY2kgZm9uY3Rpb25uZS10LWlsIGF2ZWMgbGVzIGj0dGVzIHZpcnR1ZWxzPC9hPjwvaDI+CiAgICAKCiAgICA8cD4gTGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21wbV9jb21tb24uaHRtbCNsaXN0ZW4iPkxpc3RlbjwvYT48L2NvZGU+IG4naW1wbOltZW50ZSBwYXMgbGVzIGj0dGVzIHZpcnR1ZWxzLgogICAgRWxsZSBpbmRpcXVlIHNpbXBsZW1lbnQgYXUgc2VydmV1ciBwcmluY2lwYWwgc3VyIHF1ZWxzIGFkcmVzc2VzIGV0IHBvcnRzCiAgICBpbCBkb2l0IOljb3V0ZXIuIFNpIGF1Y3VuZSBkaXJlY3RpdmUKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+CiAgICBuJ2VzdCBwculzZW50ZSwgbGUgc2VydmV1ciBzZSBjb21wb3J0ZXJhIGRlIGxhIG3qbWUgZmHnb24gcG91ciB0b3V0ZXMKICAgIGxlcyByZXF16nRlcyBhY2NlcHTpZXMuIEVuIHJldmFuY2hlLCBsYSBkaXJlY3RpdmUKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCN2aXJ0dWFsaG9zdCI+Jmx0O1ZpcnR1YWxIb3N0Jmd0OzwvYT48L2NvZGU+CiAgICBwZXV0IOp0cmUgdXRpbGlz6WUgcG91ciBwcm92b3F1ZXIgdW5lIHLpYWN0aW9uIGRpZmbpcmVudGUgZHUgc2VydmV1cgogICAgcG91ciB1biBvdSBwbHVzaWV1cnMgYWRyZXNzZXMgb3UgcG9ydHMuIFBvdXIgaW1wbOltZW50ZXIgdW4gaPR0ZSB2aXJ0dWVsLAogICAgb24gZG9pdCBkJ2Fib3JkIGluZGlxdWVyIGF1IHNlcnZldXIgc3VyIHF1ZWxzIGFkcmVzc2VzIGV0IHBvcnRzIGlsIGRvaXQg6WNvdXRlci4KICAgIEVuc3VpdGUsIHVuZSBzZWN0aW9uCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPgogICAgZG9pdCDqdHJlIGNy6ellIHBvdXIgbGUgY291cGxlIGFkcmVzc2UrcG9ydCBzcOljaWZp6SBhZmluIGRlIGTpZmluaXIgbGUKICAgIGNvbXBvcnRlbWVudCBkZSBjZXQgaPR0ZSB2aXJ0dWVsLiBOb3RleiBxdWUgc2kgbGEgZGlyZWN0aXZlCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPgogICAgZXN0IGTpZmluaWUgcG91ciB1bmUgYWRyZXNzZSBldCB1biBwb3J0IHN1ciBsZXNxdWVscyBsZSBzZXJ2ZXVyIG4nZXN0IHBhcyBjZW5z6QogICAg6WNvdXRlciwgY2V0IGj0dGUgdmlydHVlbCBuZSBzZXJhIHBhcyBhY2Nlc3NpYmxlLjwvcD4KICA8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkxhbmd1ZXMgRGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuL2RlL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImRlIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkRldXRzY2giPiZuYnNwO2RlJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZW4vYmluZC5odG1sIiBocmVmbGFuZz0iZW4iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9lcy9iaW5kLmh0bWwiIGhyZWZsYW5nPSJlcyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFc3Bh8W9sIj4mbmJzcDtlcyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL2JpbmQuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL2JpbmQuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9iaW5kLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgc3JjPSIuL2ltYWdlcy91cC5naWYiIGFsdD0idG9wIiAvPjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIj48aDI+PGEgaWQ9ImNvbW1lbnRzX3NlY3Rpb24iIG5hbWU9ImNvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2gyPjxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPjxiciAvPlRoaXMgaXMgbm90IGEgUSZhbXA7QSBzZWN0aW9uLiBDb21tZW50cyBwbGFjZWQgaGVyZSBzaG91bGQgYmUgcG9pbnRlZCB0b3dhcmRzIHN1Z2dlc3Rpb25zIG9uIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbiBvciBzZXJ2ZXIsIGFuZCBtYXkgYmUgcmVtb3ZlZCBhZ2FpbiBieSBvdXIgbW9kZXJhdG9ycyBpZiB0aGV5IGFyZSBlaXRoZXIgaW1wbGVtZW50ZWQgb3IgY29uc2lkZXJlZCBpbnZhbGlkL29mZi10b3BpYy4gUXVlc3Rpb25zIG9uIGhvdyB0byBtYW5hZ2UgdGhlIEFwYWNoZSBIVFRQIFNlcnZlciBzaG91bGQgYmUgZGlyZWN0ZWQgYXQgZWl0aGVyIG91ciBJUkMgY2hhbm5lbCwgI2h0dHBkLCBvbiBGcmVlbm9kZSwgb3Igc2VudCB0byBvdXIgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvbGlzdHMuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4uPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCnZhciBjb21tZW50c19zaG9ydG5hbWUgPSAnaHR0cGQnOwp2YXIgY29tbWVudHNfaWRlbnRpZmllciA9ICdodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL3RydW5rL2JpbmQuaHRtbCc7CihmdW5jdGlvbih3LCBkKSB7CiAgICBpZiAody5sb2NhdGlvbi5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpID09ICJodHRwZC5hcGFjaGUub3JnIikgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+PFwvZGl2PicpOwogICAgICAgIHZhciBzID0gZC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsKICAgICAgICBzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICAgICAgICBzLmFzeW5jID0gdHJ1ZTsKICAgICAgICBzLnNyYyA9ICdodHRwczovL2NvbW1lbnRzLmFwYWNoZS5vcmcvc2hvd19jb21tZW50cy5sdWE/c2l0ZT0nICsgY29tbWVudHNfc2hvcnRuYW1lICsgJyZwYWdlPScgKyBjb21tZW50c19pZGVudGlmaWVyOwogICAgICAgIChkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0gfHwgZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYm9keScpWzBdKS5hcHBlbmRDaGlsZChzKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkF1dG9yaXPpIHNvdXMgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FpcmU8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=