PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPm1vZF9maWxlX2NhY2hlIC0gQXBhY2hlIEhUVFAgU2VydmVyPC90aXRsZT4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KPGxpbmsgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keT4KPGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Ii4uL2ZhcS8iPkZBUTwvYT4gfCA8YSBocmVmPSIuLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlNpdGVtYXA8L2E+PC9wPgo8cCBjbGFzcz0iYXBhY2hlIj5BcGFjaGUgSFRUUCBTZXJ2ZXIgVmVyc2lvbiAyLjE8L3A+CjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2ZlYXRoZXIuZ2lmIiAvPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ1cCI+PGEgaHJlZj0iLi8iPjxpbWcgdGl0bGU9IiZsdDstIiBhbHQ9IiZsdDstIiBzcmM9Ii4uL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5IVFRQIFNlcnZlcjwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLXByb2plY3QvIj5Eb2N1bWVudGF0aW9uPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4uLyI+VmVyc2lvbiAyLjE8L2E+ICZndDsgPGEgaHJlZj0iLi8iPk1vZHVsZXM8L2E+PC9kaXY+CjxkaXYgaWQ9InBhZ2UtY29udGVudCI+CjxkaXYgaWQ9InByZWFtYmxlIj48aDE+QXBhY2hlIE1vZHVsZSBtb2RfZmlsZV9jYWNoZTwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9maWxlX2NhY2hlLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby9tb2QvbW9kX2ZpbGVfY2FjaGUuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+PC9wPgo8L2Rpdj4KPHRhYmxlIGNsYXNzPSJtb2R1bGUiPjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkNhY2hlcyBhIHN0YXRpYyBsaXN0IG9mIGZpbGVzIGluIG1lbW9yeTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHBlcmltZW50YWw8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5Nb2R1bGWgSWRlbnRpZmllcjo8L2E+PC90aD48dGQ+ZmlsZV9jYWNoZV9tb2R1bGU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTb3VyY2VGaWxlIj5Tb3VyY2WgRmlsZTo8L2E+PC90aD48dGQ+bW9kX2ZpbGVfY2FjaGUuYzwvdGQ+PC90cj48L3RhYmxlPgo8aDM+U3VtbWFyeTwvaDM+CgoKICAgIDxkaXYgY2xhc3M9Indhcm5pbmciPgogICAgICBUaGlzIG1vZHVsZSBzaG91bGQgYmUgdXNlZCB3aXRoIGNhcmUuIFlvdSBjYW4gZWFzaWx5IGNyZWF0ZSBhIGJyb2tlbgogICAgICBzaXRlIHVzaW5nIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfZmlsZV9jYWNoZS5odG1sIj5tb2RfZmlsZV9jYWNoZTwvYT48L2NvZGU+LCBzbyByZWFkIHRoaXMgZG9jdW1lbnQKICAgICAgY2FyZWZ1bGx5LgogICAgPC9kaXY+CgogICAgPHA+PGVtPkNhY2hpbmc8L2VtPiBmcmVxdWVudGx5IHJlcXVlc3RlZCBmaWxlcyB0aGF0IGNoYW5nZSB2ZXJ5CiAgICBpbmZyZXF1ZW50bHkgaXMgYSB0ZWNobmlxdWUgZm9yIHJlZHVjaW5nIHNlcnZlciBsb2FkLgogICAgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9maWxlX2NhY2hlLmh0bWwiPm1vZF9maWxlX2NhY2hlPC9hPjwvY29kZT4gcHJvdmlkZXMgdHdvIHRlY2huaXF1ZXMgZm9yIGNhY2hpbmcKICAgIGZyZXF1ZW50bHkgcmVxdWVzdGVkIDxlbT5zdGF0aWM8L2VtPiBmaWxlcy4gVGhyb3VnaCBjb25maWd1cmF0aW9uCiAgICBkaXJlY3RpdmVzLCB5b3UgY2FuIGRpcmVjdCA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2ZpbGVfY2FjaGUuaHRtbCI+bW9kX2ZpbGVfY2FjaGU8L2E+PC9jb2RlPiB0byBlaXRoZXIKICAgIG9wZW4gdGhlbiA8Y29kZT5tbWFwKCk8L2NvZGU+IGEgZmlsZSwgb3IgdG8gcHJlLW9wZW4gYSBmaWxlIGFuZCBzYXZlCiAgICB0aGUgZmlsZSdzIG9wZW4gPGVtPmZpbGUgaGFuZGxlPC9lbT4uIEJvdGggdGVjaG5pcXVlcyByZWR1Y2Ugc2VydmVyCiAgICBsb2FkIHdoZW4gcHJvY2Vzc2luZyByZXF1ZXN0cyBmb3IgdGhlc2UgZmlsZXMgYnkgZG9pbmcgcGFydCBvZiB0aGUgd29yawogICAgKHNwZWNpZmljYWxseSwgdGhlIGZpbGUgSS9PKSBmb3Igc2VydmluZyB0aGUgZmlsZSB3aGVuIHRoZQogICAgc2VydmVyIGlzIHN0YXJ0ZWQgcmF0aGVyIHRoYW4gZHVyaW5nIGVhY2ggcmVxdWVzdC48L3A+CgogICAgPHA+Tm90aWNlOiBZb3UgY2Fubm90IHVzZSB0aGlzIGZvciBzcGVlZGluZyB1cCBDR0kgcHJvZ3JhbXMgb3IKICAgIG90aGVyIGZpbGVzIHdoaWNoIGFyZSBzZXJ2ZWQgYnkgc3BlY2lhbCBjb250ZW50IGhhbmRsZXJzLiBJdAogICAgY2FuIG9ubHkgYmUgdXNlZCBmb3IgcmVndWxhciBmaWxlcyB3aGljaCBhcmUgdXN1YWxseSBzZXJ2ZWQgYnkKICAgIHRoZSBBcGFjaGUgY29yZSBjb250ZW50IGhhbmRsZXIuPC9wPgoKICAgIDxwPlRoaXMgbW9kdWxlIGlzIGFuIGV4dGVuc2lvbiBvZiBhbmQgYm9ycm93cyBoZWF2aWx5IGZyb20gdGhlCiAgICA8Y29kZT5tb2RfbW1hcF9zdGF0aWM8L2NvZGU+IG1vZHVsZSBpbiBBcGFjaGUgMS4zLjwvcD4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGgzIGNsYXNzPSJkaXJlY3RpdmVzIj5EaXJlY3RpdmVzPC9oMz4KPHVsIGlkPSJ0b2MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNjYWNoZWZpbGUiPkNhY2hlRmlsZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNtbWFwZmlsZSI+TU1hcEZpbGU8L2E+PC9saT4KPC91bD4KPGgzPlRvcGljczwvaDM+Cjx1bCBpZD0idG9waWNzIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjdXNpbmciPlVzaW5nIG1vZF9maWxlX2NhY2hlPC9hPjwvbGk+CjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InVzaW5nIiBpZD0idXNpbmciPlVzaW5nIG1vZF9maWxlX2NhY2hlPC9hPjwvaDI+CgogICAgPHA+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9maWxlX2NhY2hlLmh0bWwiPm1vZF9maWxlX2NhY2hlPC9hPjwvY29kZT4gY2FjaGVzIGEgbGlzdCBvZiBzdGF0aWNhbGx5CiAgICBjb25maWd1cmVkIGZpbGVzIHZpYSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjbW1hcGZpbGUiPk1NYXBGaWxlPC9hPjwvY29kZT4gb3IgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2NhY2hlZmlsZSI+Q2FjaGVGaWxlPC9hPjwvY29kZT4gZGlyZWN0aXZlcyBpbiB0aGUgbWFpbiBzZXJ2ZXIgY29uZmlndXJhdGlvbi48L3A+CgogICAgPHA+Tm90IGFsbCBwbGF0Zm9ybXMgc3VwcG9ydCBib3RoIGRpcmVjdGl2ZXMuIEZvciBleGFtcGxlLCBBcGFjaGUKICAgIG9uIFdpbmRvd3MgZG9lcyBub3QgY3VycmVudGx5IHN1cHBvcnQgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNtbWFwc3RhdGljIj5NTWFwU3RhdGljPC9hPjwvY29kZT4gZGlyZWN0aXZlLCB3aGlsZQogICAgb3RoZXIgcGxhdGZvcm1zLCBsaWtlIEFJWCwgc3VwcG9ydCBib3RoLiBZb3Ugd2lsbCByZWNlaXZlIGFuIGVycm9yCiAgICBtZXNzYWdlIGluIHRoZSBzZXJ2ZXIgZXJyb3IgbG9nIGlmIHlvdSBhdHRlbXB0IHRvIHVzZSBhbgogICAgdW5zdXBwb3J0ZWQgZGlyZWN0aXZlLiBJZiBnaXZlbiBhbiB1bnN1cHBvcnRlZCBkaXJlY3RpdmUsIHRoZQogICAgc2VydmVyIHdpbGwgc3RhcnQgYnV0IHRoZSBmaWxlIHdpbGwgbm90IGJlIGNhY2hlZC4gT24gcGxhdGZvcm1zCiAgICB0aGF0IHN1cHBvcnQgYm90aCBkaXJlY3RpdmVzLCB5b3Ugc2hvdWxkIGV4cGVyaW1lbnQgd2l0aCBib3RoIHRvCiAgICBzZWUgd2hpY2ggd29ya3MgYmVzdCBmb3IgeW91LjwvcD4KCiAgICA8aDM+TU1hcEZpbGUgRGlyZWN0aXZlPC9oMz4KCiAgICAgIDxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjbW1hcGZpbGUiPk1NYXBGaWxlPC9hPjwvY29kZT4KICAgICAgZGlyZWN0aXZlIG9mIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfZmlsZV9jYWNoZS5odG1sIj5tb2RfZmlsZV9jYWNoZTwvYT48L2NvZGU+IG1hcHMgYSBsaXN0IG9mCiAgICAgIHN0YXRpY2FsbHkgY29uZmlndXJlZCBmaWxlcyBpbnRvIG1lbW9yeSB0aHJvdWdoIHRoZSBzeXN0ZW0gY2FsbAogICAgICA8Y29kZT5tbWFwKCk8L2NvZGU+LiBUaGlzIHN5c3RlbSBjYWxsIGlzIGF2YWlsYWJsZSBvbiBtb3N0IG1vZGVybgogICAgICBVbml4IGRlcml2YXRlcywgYnV0IG5vdCBvbiBhbGwuIFRoZXJlIGFyZSBzb21ldGltZXMgc3lzdGVtLXNwZWNpZmljCiAgICAgIGxpbWl0cyBvbiB0aGUgc2l6ZSBhbmQgbnVtYmVyIG9mIGZpbGVzIHRoYXQgY2FuIGJlCiAgICAgIDxjb2RlPm1tYXAoKTwvY29kZT5lZCwgZXhwZXJpbWVudGF0aW9uIGlzIHByb2JhYmx5IHRoZSBlYXNpZXN0IHdheQogICAgICB0byBmaW5kIG91dC48L3A+CgogICAgICA8cD5UaGlzIDxjb2RlPm1tYXAoKTwvY29kZT5pbmcgaXMgZG9uZSBvbmNlIGF0IHNlcnZlciBzdGFydCBvcgogICAgICByZXN0YXJ0LCBvbmx5LiBTbyB3aGVuZXZlciBvbmUgb2YgdGhlIG1hcHBlZCBmaWxlcyBjaGFuZ2VzIG9uIHRoZQogICAgICBmaWxlc3lzdGVtIHlvdSA8ZW0+aGF2ZTwvZW0+IHRvIHJlc3RhcnQgdGhlIHNlcnZlciAoc2VlIHRoZSA8YSBocmVmPSIuLi9zdG9wcGluZy5odG1sIj5TdG9wcGluZyBhbmQgUmVzdGFydGluZzwvYT4gZG9jdW1lbnRhdGlvbikuCiAgICAgIFRvIHJlaXRlcmF0ZSB0aGF0IHBvaW50OiBpZiB0aGUgZmlsZXMgYXJlIG1vZGlmaWVkIDxlbT5pbiBwbGFjZTwvZW0+CiAgICAgIHdpdGhvdXQgcmVzdGFydGluZyB0aGUgc2VydmVyIHlvdSBtYXkgZW5kIHVwIHNlcnZpbmcgcmVxdWVzdHMgdGhhdAogICAgICBhcmUgY29tcGxldGVseSBib2d1cy4gWW91IHNob3VsZCB1cGRhdGUgZmlsZXMgYnkgdW5saW5raW5nIHRoZSBvbGQKICAgICAgY29weSBhbmQgcHV0dGluZyBhIG5ldyBjb3B5IGluIHBsYWNlLiBNb3N0IHRvb2xzIHN1Y2ggYXMKICAgICAgPGNvZGU+cmRpc3Q8L2NvZGU+IGFuZCA8Y29kZT5tdjwvY29kZT4gZG8gdGhpcy4gVGhlIHJlYXNvbiB3aHkgdGhpcwogICAgICBtb2R1bGVzIGRvZXNuJ3QgdGFrZSBjYXJlIG9mIGNoYW5nZXMgdG8gdGhlIGZpbGVzIGlzIHRoYXQgdGhpcyBjaGVjawogICAgICB3b3VsZCBuZWVkIGFuIGV4dHJhIDxjb2RlPnN0YXQoKTwvY29kZT4gZXZlcnkgdGltZSB3aGljaCBpcyBhIHdhc3RlCiAgICAgIGFuZCBhZ2FpbnN0IHRoZSBpbnRlbnQgb2YgSS9PIHJlZHVjdGlvbi48L3A+CiAgICAKCiAgICA8aDM+Q2FjaGVGaWxlIERpcmVjdGl2ZTwvaDM+CgogICAgICA8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2NhY2hlZmlsZSI+Q2FjaGVGaWxlPC9hPjwvY29kZT4KICAgICAgZGlyZWN0aXZlIG9mIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfZmlsZV9jYWNoZS5odG1sIj5tb2RfZmlsZV9jYWNoZTwvYT48L2NvZGU+IG9wZW5zIGFuIGFjdGl2ZQogICAgICA8ZW0+aGFuZGxlPC9lbT4gb3IgPGVtPmZpbGUgZGVzY3JpcHRvcjwvZW0+IHRvIHRoZSBmaWxlIChvciBmaWxlcykKICAgICAgbGlzdGVkIGluIHRoZSBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSBhbmQgcGxhY2VzIHRoZXNlIG9wZW4gZmlsZQogICAgICBoYW5kbGVzIGluIHRoZSBjYWNoZS4gV2hlbiB0aGUgZmlsZSBpcyByZXF1ZXN0ZWQsIHRoZSBzZXJ2ZXIKICAgICAgcmV0cmlldmVzIHRoZSBoYW5kbGUgZnJvbSB0aGUgY2FjaGUgYW5kIHBhc3NlcyBpdCB0byB0aGUKICAgICAgPGNvZGU+c2VuZGZpbGUoKTwvY29kZT4gKG9yIDxjb2RlPlRyYW5zbWl0RmlsZSgpPC9jb2RlPiBvbiBXaW5kb3dzKSwKICAgICAgc29ja2V0IEFQSS48L3A+CgogICAgICAKCiAgICAgIDxwPlRoaXMgZmlsZSBoYW5kbGUgY2FjaGluZyBpcyBkb25lIG9uY2UgYXQgc2VydmVyIHN0YXJ0IG9yCiAgICAgIHJlc3RhcnQsIG9ubHkuIFNvIHdoZW5ldmVyIG9uZSBvZiB0aGUgY2FjaGVkIGZpbGVzIGNoYW5nZXMgb24KICAgICAgdGhlIGZpbGVzeXN0ZW0geW91IDxlbT5oYXZlPC9lbT4gdG8gcmVzdGFydCB0aGUgc2VydmVyIChzZWUgdGhlCiAgICAgIDxhIGhyZWY9Ii4uL3N0b3BwaW5nLmh0bWwiPlN0b3BwaW5nIGFuZCBSZXN0YXJ0aW5nPC9hPgogICAgICBkb2N1bWVudGF0aW9uKS4gVG8gcmVpdGVyYXRlIHRoYXQgcG9pbnQ6IGlmIHRoZSBmaWxlcyBhcmUKICAgICAgbW9kaWZpZWQgPGVtPmluIHBsYWNlPC9lbT4gd2l0aG91dCByZXN0YXJ0aW5nIHRoZSBzZXJ2ZXIgeW91CiAgICAgIG1heSBlbmQgdXAgc2VydmluZyByZXF1ZXN0cyB0aGF0IGFyZSBjb21wbGV0ZWx5IGJvZ3VzLiBZb3UKICAgICAgc2hvdWxkIHVwZGF0ZSBmaWxlcyBieSB1bmxpbmtpbmcgdGhlIG9sZCBjb3B5IGFuZCBwdXR0aW5nIGEgbmV3CiAgICAgIGNvcHkgaW4gcGxhY2UuIE1vc3QgdG9vbHMgc3VjaCBhcyA8Y29kZT5yZGlzdDwvY29kZT4gYW5kCiAgICAgIDxjb2RlPm12PC9jb2RlPiBkbyB0aGlzLjwvcD4KICAgIAoKICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMz5Ob3RlPC9oMz4KICAgICAgPHA+RG9uJ3QgYm90aGVyIGFza2luZyBmb3IgYSBkaXJlY3RpdmUgd2hpY2ggcmVjdXJzaXZlbHkKICAgICAgY2FjaGVzIGFsbCB0aGUgZmlsZXMgaW4gYSBkaXJlY3RvcnkuIFRyeSB0aGlzIGluc3RlYWQuLi4gU2VlIHRoZSAKICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNpbmNsdWRlIj5JbmNsdWRlPC9hPjwvY29kZT4gZGlyZWN0aXZlLCBhbmQgY29uc2lkZXIKICAgICAgdGhpcyBjb21tYW5kOjwvcD4KCiAgICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgogICAgICAgIGZpbmQgL3d3dy9odGRvY3MgLXR5cGUgZiAtcHJpbnQgXDxiciAvPgogICAgICAgIHwgc2VkIC1lICdzLy4qL21tYXBmaWxlICZhbXA7LycgJmd0OyAvd3d3L2NvbmYvbW1hcC5jb25mCiAgICAgIDwvY29kZT48L3A+PC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkNhY2hlRmlsZSIgaWQ9IkNhY2hlRmlsZSI+Q2FjaGVGaWxlPC9hPiA8YSBuYW1lPSJjYWNoZWZpbGUiIGlkPSJjYWNoZWZpbGUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkNhY2hlIGEgbGlzdCBvZiBmaWxlIGhhbmRsZXMgYXQgc3RhcnR1cCB0aW1lPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkNhY2hlRmlsZSA8dmFyPmZpbGUtcGF0aDwvdmFyPiBbPHZhcj5maWxlLXBhdGg8L3Zhcj5dIC4uLjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4cGVyaW1lbnRhbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmlsZV9jYWNoZTwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5DYWNoZUZpbGU8L2NvZGU+IGRpcmVjdGl2ZSBvcGVucyBoYW5kbGVzIHRvCiAgICBvbmUgb3IgbW9yZSBmaWxlcyAoZ2l2ZW4gYXMgd2hpdGVzcGFjZSBzZXBhcmF0ZWQgYXJndW1lbnRzKSBhbmQKICAgIHBsYWNlcyB0aGVzZSBoYW5kbGVzIGludG8gdGhlIGNhY2hlIGF0IHNlcnZlciBzdGFydHVwCiAgICB0aW1lLiBIYW5kbGVzIHRvIGNhY2hlZCBmaWxlcyBhcmUgYXV0b21hdGljYWxseSBjbG9zZWQgb24gYSBzZXJ2ZXIKICAgIHNodXRkb3duLiAgV2hlbiB0aGUgZmlsZXMgaGF2ZSBjaGFuZ2VkIG9uIHRoZSBmaWxlc3lzdGVtLCB0aGUKICAgIHNlcnZlciBzaG91bGQgYmUgcmVzdGFydGVkIHRvIHRvIHJlLWNhY2hlIHRoZW0uPC9wPgoKICAgIDxwPkJlIGNhcmVmdWwgd2l0aCB0aGUgPHZhcj5maWxlLXBhdGg8L3Zhcj4gYXJndW1lbnRzOiBUaGV5IGhhdmUKICAgIHRvIGxpdGVyYWxseSBtYXRjaCB0aGUgZmlsZXN5c3RlbSBwYXRoIEFwYWNoZSdzIFVSTC10by1maWxlbmFtZQogICAgdHJhbnNsYXRpb24gaGFuZGxlcnMgY3JlYXRlLiBXZSBjYW5ub3QgY29tcGFyZSBpbm9kZXMgb3Igb3RoZXIKICAgIHN0dWZmIHRvIG1hdGNoIHBhdGhzIHRocm91Z2ggc3ltYm9saWMgbGlua3MgPGVtPmV0Yy48L2VtPgogICAgYmVjYXVzZSB0aGF0IGFnYWluIHdvdWxkIGNvc3QgZXh0cmEgPGNvZGU+c3RhdCgpPC9jb2RlPiBzeXN0ZW0KICAgIGNhbGxzIHdoaWNoIGlzIG5vdCBhY2NlcHRhYmxlLiBUaGlzIG1vZHVsZSBtYXkgb3IgbWF5IG5vdCB3b3JrCiAgICB3aXRoIGZpbGVuYW1lcyByZXdyaXR0ZW4gYnkgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hbGlhcy5odG1sIj5tb2RfYWxpYXM8L2E+PC9jb2RlPiBvcgogICAgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9yZXdyaXRlLmh0bWwiPm1vZF9yZXdyaXRlPC9hPjwvY29kZT4uPC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxoMz5FeGFtcGxlPC9oMz48cD48Y29kZT4KICAgICAgQ2FjaGVGaWxlIC91c3IvbG9jYWwvYXBhY2hlL2h0ZG9jcy9pbmRleC5odG1sCiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9Ik1NYXBGaWxlIiBpZD0iTU1hcEZpbGUiPk1NYXBGaWxlPC9hPiA8YSBuYW1lPSJtbWFwZmlsZSIgaWQ9Im1tYXBmaWxlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5NYXAgYSBsaXN0IG9mIGZpbGVzIGludG8gbWVtb3J5IGF0IHN0YXJ0dXAgdGltZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5NTWFwRmlsZSA8dmFyPmZpbGUtcGF0aDwvdmFyPiBbPHZhcj5maWxlLXBhdGg8L3Zhcj5dIC4uLjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5zZXJ2ZXIgY29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4cGVyaW1lbnRhbDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfZmlsZV9jYWNoZTwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5NTWFwRmlsZTwvY29kZT4gZGlyZWN0aXZlIG1hcHMgb25lIG9yIG1vcmUgZmlsZXMKICAgIChnaXZlbiBhcyB3aGl0ZXNwYWNlIHNlcGFyYXRlZCBhcmd1bWVudHMpIGludG8gbWVtb3J5IGF0IHNlcnZlcgogICAgc3RhcnR1cCB0aW1lLiBUaGV5IGFyZSBhdXRvbWF0aWNhbGx5IHVubWFwcGVkIG9uIGEgc2VydmVyCiAgICBzaHV0ZG93bi4gV2hlbiB0aGUgZmlsZXMgaGF2ZSBjaGFuZ2VkIG9uIHRoZSBmaWxlc3lzdGVtIGF0CiAgICBsZWFzdCBhIDxjb2RlPkhVUDwvY29kZT4gb3IgPGNvZGU+VVNSMTwvY29kZT4gc2lnbmFsIHNob3VsZCBiZSBzZW5kIHRvCiAgICB0aGUgc2VydmVyIHRvIHJlLTxjb2RlPm1tYXAoKTwvY29kZT4gdGhlbS48L3A+CgogICAgPHA+QmUgY2FyZWZ1bCB3aXRoIHRoZSA8dmFyPmZpbGUtcGF0aDwvdmFyPiBhcmd1bWVudHM6IFRoZXkgaGF2ZQogICAgdG8gbGl0ZXJhbGx5IG1hdGNoIHRoZSBmaWxlc3lzdGVtIHBhdGggQXBhY2hlJ3MgVVJMLXRvLWZpbGVuYW1lCiAgICB0cmFuc2xhdGlvbiBoYW5kbGVycyBjcmVhdGUuIFdlIGNhbm5vdCBjb21wYXJlIGlub2RlcyBvciBvdGhlcgogICAgc3R1ZmYgdG8gbWF0Y2ggcGF0aHMgdGhyb3VnaCBzeW1ib2xpYyBsaW5rcyA8ZW0+ZXRjLjwvZW0+CiAgICBiZWNhdXNlIHRoYXQgYWdhaW4gd291bGQgY29zdCBleHRyYSA8Y29kZT5zdGF0KCk8L2NvZGU+IHN5c3RlbQogICAgY2FsbHMgd2hpY2ggaXMgbm90IGFjY2VwdGFibGUuIFRoaXMgbW9kdWxlIG1heSBvciBtYXkgbm90IHdvcmsKICAgIHdpdGggZmlsZW5hbWVzIHJld3JpdHRlbiBieSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2FsaWFzLmh0bWwiPm1vZF9hbGlhczwvYT48L2NvZGU+IG9yCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Jld3JpdGUuaHRtbCI+bW9kX3Jld3JpdGU8L2E+PC9jb2RlPi48L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PGgzPkV4YW1wbGU8L2gzPjxwPjxjb2RlPgogICAgICBNTWFwRmlsZSAvdXNyL2xvY2FsL2FwYWNoZS9odGRvY3MvaW5kZXguaHRtbAogICAgPC9jb2RlPjwvcD48L2Rpdj4KCjwvZGl2Pgo8L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9tb2QvbW9kX2ZpbGVfY2FjaGUuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2tvL21vZC9tb2RfZmlsZV9jYWNoZS5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAxOTk1LTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG9yIGl0cyBsaWNlbnNvcnMsIGFzIGFwcGxpY2FibGUuPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+CjwvYm9keT48L2h0bWw+