PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5FcnJvciBNZXNzYWdlcyAtIEZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zIC0gQXBhY2hlIEhUVFAgU2VydmVyPC90aXRsZT4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KPGxpbmsgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiIGNsYXNzPSJuby1zaWRlYmFyIj48ZGl2IGlkPSJwYWdlLWhlYWRlciI+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPkFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuMDwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZmVhdGhlci5naWYiIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPkhUVFAgU2VydmVyPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3MvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4uLyI+VmVyc2lvbiAyLjA8L2E+ICZndDsgPGEgaHJlZj0iLi8iPkZBUTwvYT48L2Rpdj48ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPjxkaXYgY2xhc3M9InJldGlyZWQiPjxoND5QbGVhc2Ugbm90ZTwvaDQ+CiAgICAgICAgICAgIDxwPlRoaXMgZG9jdW1lbnQgcmVmZXJzIHRvIHRoZSA8c3Ryb25nPjIuMDwvc3Ryb25nPiB2ZXJzaW9uIG9mIEFwYWNoZSBodHRwZCwgd2hpY2ggPHN0cm9uZz5pcyBubyBsb25nZXIgbWFpbnRhaW5lZDwvc3Ryb25nPi4gVXBncmFkZSwgYW5kIHJlZmVyIHRvIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgaHR0cGQgaW5zdGVhZCwgZG9jdW1lbnRlZCBhdDo8L3A+CiAgICAgICAgPHVsPjxsaT48YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL2N1cnJlbnQvIj5DdXJyZW50IHJlbGVhc2UgdmVyc2lvbiBvZiBBcGFjaGUgSFRUUCBTZXJ2ZXIgZG9jdW1lbnRhdGlvbjwvYT48L2xpPjwvdWw+PC9kaXY+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5FcnJvciBNZXNzYWdlcyAtIEZyZXF1ZW50bHkgQXNrZWQgUXVlc3Rpb25zPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9mYXEvZXJyb3IuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2tvL2ZhcS9lcnJvci5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi90ci9mYXEvZXJyb3IuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImVycm9yIiBpZD0iZXJyb3IiPkVycm9yIE1lc3NhZ2VzPC9hPjwvaDI+CiAgICA8dWw+CiAgICA8bGk+PGEgaHJlZj0iI2Vycm9yLnNlbmRmaWxlIj5JbnZhbGlkIGFyZ3VtZW50OgogICAgY29yZV9vdXRwdXRfZmlsdGVyOiB3cml0aW5nIGRhdGEgdG8gdGhlIG5ldHdvcms8L2E+PC9saT4KICAgIDxsaT48YSBocmVmPSIjZXJyb3IuYWNjZXB0ZXgiPkFjY2VwdEV4IGZhaWxlZDwvYT48L2xpPgogICAgPGxpPjxhIGhyZWY9IiNlcnJvci5zY3JpcHRoZWFkZXJzIj5QcmVtYXR1cmUgZW5kIG9mIHNjcmlwdCAKICAgIGhlYWRlcnM8L2E+PC9saT4KICAgIDwvdWw+CgogICAgPGgzPjxhIG5hbWU9ImVycm9yLnNlbmRmaWxlIiBpZD0iZXJyb3Iuc2VuZGZpbGUiPkludmFsaWQgYXJndW1lbnQ6CiAgICBjb3JlX291dHB1dF9maWx0ZXI6IHdyaXRpbmcgZGF0YSB0byB0aGUgbmV0d29yazwvYT48L2gzPgoKICAgIDxwPkFwYWNoZSB1c2VzIHRoZSA8Y29kZT5zZW5kZmlsZTwvY29kZT4gc3lzY2FsbCBvbiBwbGF0Zm9ybXMKICAgIHdoZXJlIGl0IGlzIGF2YWlsYWJsZSBpbiBvcmRlciB0byBzcGVlZCBzZW5kaW5nIG9mIHJlc3BvbnNlcy4KICAgIFVuZm9ydHVuYXRlbHksIG9uIHNvbWUgc3lzdGVtcywgQXBhY2hlIHdpbGwgZGV0ZWN0IHRoZSBwcmVzZW5jZSBvZgogICAgPGNvZGU+c2VuZGZpbGU8L2NvZGU+IGF0IGNvbXBpbGUtdGltZSwgZXZlbiB3aGVuIGl0IGRvZXMgbm90IHdvcmsKICAgIHByb3Blcmx5LiAgVGhpcyBoYXBwZW5zIG1vc3QgZnJlcXVlbnRseSB3aGVuIHVzaW5nIG5ldHdvcmsgb3IKICAgIG90aGVyIG5vbi1zdGFuZGFyZCBmaWxlLXN5c3RlbS48L3A+CgogICAgPHA+U3ltcHRvbXMgb2YgdGhpcyBwcm9ibGVtIGluY2x1ZGUgdGhlIGFib3ZlIG1lc3NhZ2UgaW4gdGhlIGVycm9yCiAgICBsb2cgYW5kIHplcm8tbGVuZ3RoIHJlc3BvbnNlcyB0byBub24temVyby1zaXplZCBmaWxlcy4gIFRoZQogICAgcHJvYmxlbSBnZW5lcmFsbHkgb2NjdXJzIG9ubHkgZm9yIHN0YXRpYyBmaWxlcywgc2luY2UgZHluYW1pYwogICAgY29udGVudCB1c3VhbGx5IGRvZXMgbm90IG1ha2UgdXNlIG9mIDxjb2RlPnNlbmRmaWxlPC9jb2RlPi48L3A+CgogICAgPHA+VG8gZml4IHRoaXMgcHJvYmxlbSwgc2ltcGx5IHVzZSB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNlbmFibGVzZW5kZmlsZSI+RW5hYmxlU2VuZGZpbGU8L2E+PC9jb2RlPiBkaXJlY3RpdmUgdG8gZGlzYWJsZQogICAgPGNvZGU+c2VuZGZpbGU8L2NvZGU+IGZvciBhbGwgb3IgcGFydCBvZiB5b3VyIHNlcnZlci4gIEFsc28gc2VlCiAgICB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNlbmFibGVtbWFwIj5FbmFibGVNTUFQPC9hPjwvY29kZT4sIHdoaWNoIGNhbgogICAgaGVscCB3aXRoIHNpbWlsYXIgcHJvYmxlbXMuPC9wPgoKICAgIAoKICAgIDxoMz48YSBuYW1lPSJlcnJvci5hY2NlcHRleCIgaWQ9ImVycm9yLmFjY2VwdGV4Ij5BY2NlcHRFeCBGYWlsZWQ8L2E+PC9oMz4KCiAgICA8cD5JZiB5b3UgZ2V0IGVycm9yIG1lc3NhZ2VzIHJlbGF0ZWQgdG8gdGhlIDxjb2RlPkFjY2VwdEV4PC9jb2RlPiBzeXNjYWxsCiAgICBvbiB3aW4zMiwgc2VlIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbXBtX3dpbm50Lmh0bWwjd2luMzJkaXNhYmxlYWNjZXB0ZXgiPldpbjMyRGlzYWJsZUFjY2VwdEV4PC9hPjwvY29kZT4KICAgIGRpcmVjdGl2ZS48L3A+CiAgICAKCgogICAgPGgzPjxhIG5hbWU9ImVycm9yLnNjcmlwdGhlYWRlcnMiIGlkPSJlcnJvci5zY3JpcHRoZWFkZXJzIj5QcmVtYXR1cmUgZW5kIG9mIHNjcmlwdCAKICAgIGhlYWRlcnM8L2E+PC9oMz4KCiAgICA8cD5Nb3N0IHByb2JsZW1zIHdpdGggQ0dJIHNjcmlwdHMgcmVzdWx0IGluIHRoaXMgbWVzc2FnZSB3cml0dGVuIGluIHRoZQogICAgZXJyb3IgbG9nIHRvZ2V0aGVyIHdpdGggYW4gPGNvZGU+SW50ZXJuYWwgU2VydmVyIEVycm9yPC9jb2RlPiBkZWxpdmVyZWQKICAgIHRvIHRoZSBicm93c2VyLiAgQSBndWlkZSB0byBoZWxwaW5nIGRlYnVnIHRoaXMgdHlwZSBvZiBwcm9ibGVtIGlzCiAgICBhdmFpbGFibGUgaW4gdGhlIDxhIGhyZWY9Ii4uL2hvd3RvL2NnaS5odG1sI3Ryb3VibGVzaG9vdCI+Q0dJCiAgICB0dXRvcmlhbDwvYT4uPC9wPgogICAgCgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9mYXEvZXJyb3IuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2tvL2ZhcS9lcnJvci5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi90ci9mYXEvZXJyb3IuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxMyBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+CjwvYm9keT48L2h0bWw+