PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5Db25maWd1cmF0aW9uIFNlY3Rpb25zIC0gQXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi41PC90aXRsZT4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuL3N0eWxlL3NjcmlwdHMvcHJldHRpZnkubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KCjxsaW5rIGhyZWY9Ii4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiPjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPkFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuNTwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9mZWF0aGVyLnBuZyIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5IVFRQIFNlcnZlcjwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLyI+VmVyc2lvbiAyLjU8L2E+PC9kaXY+PGRpdiBpZD0icGFnZS1jb250ZW50Ij48ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPkNvbmZpZ3VyYXRpb24gU2VjdGlvbnM8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+QXZhaWxhYmxlIExhbmd1YWdlczogPC9zcGFuPjxhIGhyZWY9Ii4vZW4vc2VjdGlvbnMuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvc2VjdGlvbnMuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL3NlY3Rpb25zLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9zZWN0aW9ucy5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL3NlY3Rpb25zLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+CiA8cD5EaXJlY3RpdmVzIGluIHRoZSA8YSBocmVmPSJjb25maWd1cmluZy5odG1sIj5jb25maWd1cmF0aW9uIGZpbGVzPC9hPiBtYXkgYXBwbHkgdG8gdGhlCmVudGlyZSBzZXJ2ZXIsIG9yIHRoZXkgbWF5IGJlIHJlc3RyaWN0ZWQgdG8gYXBwbHkgb25seSB0byBwYXJ0aWN1bGFyCmRpcmVjdG9yaWVzLCBmaWxlcywgaG9zdHMsIG9yIFVSTHMuICBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyBob3cgdG8KdXNlIGNvbmZpZ3VyYXRpb24gc2VjdGlvbiBjb250YWluZXJzIG9yIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMKdG8gY2hhbmdlIHRoZSBzY29wZSBvZiBvdGhlciBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMuPC9wPgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN0eXBlcyI+VHlwZXMgb2YgQ29uZmlndXJhdGlvbiBTZWN0aW9uIENvbnRhaW5lcnM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmaWxlLWFuZC13ZWIiPkZpbGVzeXN0ZW0sIFdlYnNwYWNlLCBhbmQgQm9vbGVhbiBFeHByZXNzaW9uczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3ZpcnR1YWxob3N0Ij5WaXJ0dWFsIEhvc3RzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjcHJveHkiPlByb3h5PC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjd2hhdHdoZXJlIj5XaGF0IERpcmVjdGl2ZXMgYXJlIEFsbG93ZWQ/PC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbWVyZ2luZyI+SG93IHRoZSBzZWN0aW9ucyBhcmUgbWVyZ2VkPC9hPjwvbGk+CjwvdWw+PGgzPlNlZSBhbHNvPC9oMz48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudHM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InR5cGVzIiBpZD0idHlwZXMiPlR5cGVzIG9mIENvbmZpZ3VyYXRpb24gU2VjdGlvbiBDb250YWluZXJzPC9hPjwvaDI+Cgo8dGFibGUgY2xhc3M9InJlbGF0ZWQiPjx0cj48dGg+UmVsYXRlZCBNb2R1bGVzPC90aD48dGg+UmVsYXRlZCBEaXJlY3RpdmVzPC90aD48L3RyPjx0cj48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwiPmNvcmU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF92ZXJzaW9uLmh0bWwiPm1vZF92ZXJzaW9uPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCI+bW9kX3Byb3h5PC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeW1hdGNoIj4mbHQ7RGlyZWN0b3J5TWF0Y2gmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXMiPiZsdDtGaWxlcyZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlc21hdGNoIj4mbHQ7RmlsZXNNYXRjaCZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpZiI+Jmx0O0lmJmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmZGVmaW5lIj4mbHQ7SWZEZWZpbmUmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZtb2R1bGUiPiZsdDtJZk1vZHVsZSZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF92ZXJzaW9uLmh0bWwjaWZ2ZXJzaW9uIj4mbHQ7SWZWZXJzaW9uJmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvY2F0aW9uIj4mbHQ7TG9jYXRpb24mZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb25tYXRjaCI+Jmx0O0xvY2F0aW9uTWF0Y2gmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eSI+Jmx0O1Byb3h5Jmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwjcHJveHltYXRjaCI+Jmx0O1Byb3h5TWF0Y2gmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT4KCjxwPlRoZXJlIGFyZSB0d28gYmFzaWMgdHlwZXMgb2YgY29udGFpbmVycy4gIE1vc3QgY29udGFpbmVycyBhcmUKZXZhbHVhdGVkIGZvciBlYWNoIHJlcXVlc3QuICBUaGUgZW5jbG9zZWQgZGlyZWN0aXZlcyBhcmUgYXBwbGllZCBvbmx5CmZvciB0aG9zZSByZXF1ZXN0cyB0aGF0IG1hdGNoIHRoZSBjb250YWluZXJzLiAgVGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpZmRlZmluZSI+Jmx0O0lmRGVmaW5lJmd0OzwvYT48L2NvZGU+LCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZtb2R1bGUiPiZsdDtJZk1vZHVsZSZndDs8L2E+PC9jb2RlPiwgYW5kCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF92ZXJzaW9uLmh0bWwjaWZ2ZXJzaW9uIj4mbHQ7SWZWZXJzaW9uJmd0OzwvYT48L2NvZGU+CmNvbnRhaW5lcnMsIG9uIHRoZSBvdGhlciBoYW5kLCBhcmUgZXZhbHVhdGVkIG9ubHkgYXQgc2VydmVyIHN0YXJ0dXAKYW5kIHJlc3RhcnQuICBJZiB0aGVpciBjb25kaXRpb25zIGFyZSB0cnVlIGF0IHN0YXJ0dXAsIHRoZW4gdGhlCmVuY2xvc2VkIGRpcmVjdGl2ZXMgd2lsbCBhcHBseSB0byBhbGwgcmVxdWVzdHMuICBJZiB0aGUgY29uZGl0aW9ucyBhcmUKbm90IHRydWUsIHRoZSBlbmNsb3NlZCBkaXJlY3RpdmVzIHdpbGwgYmUgaWdub3JlZC48L3A+Cgo8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmZGVmaW5lIj4mbHQ7SWZEZWZpbmUmZ3Q7PC9hPjwvY29kZT4gZGlyZWN0aXZlCmVuY2xvc2VzIGRpcmVjdGl2ZXMgdGhhdCB3aWxsIG9ubHkgYmUgYXBwbGllZCBpZiBhbiBhcHByb3ByaWF0ZQpwYXJhbWV0ZXIgaXMgZGVmaW5lZCBvbiB0aGUgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvaHR0cGQuaHRtbCI+aHR0cGQ8L2E+PC9jb2RlPiBjb21tYW5kIGxpbmUuICBGb3IgZXhhbXBsZSwKd2l0aCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24sIGFsbCByZXF1ZXN0cyB3aWxsIGJlIHJlZGlyZWN0ZWQKdG8gYW5vdGhlciBzaXRlIG9ubHkgaWYgdGhlIHNlcnZlciBpcyBzdGFydGVkIHVzaW5nCjxjb2RlPmh0dHBkIC1EQ2xvc2VkRm9yTm93PC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0lmRGVmaW5lIENsb3NlZEZvck5vdyZndDsKICAgIFJlZGlyZWN0ICIvIiAiaHR0cDovL290aGVyc2VydmVyLmV4YW1wbGUuY29tLyIKJmx0Oy9JZkRlZmluZSZndDs8L3ByZT4KCgo8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmbW9kdWxlIj4mbHQ7SWZNb2R1bGUmZ3Q7PC9hPjwvY29kZT4KZGlyZWN0aXZlIGlzIHZlcnkgc2ltaWxhciwgZXhjZXB0IGl0IGVuY2xvc2VzIGRpcmVjdGl2ZXMgdGhhdCB3aWxsCm9ubHkgYmUgYXBwbGllZCBpZiBhIHBhcnRpY3VsYXIgbW9kdWxlIGlzIGF2YWlsYWJsZSBpbiB0aGUgc2VydmVyLgpUaGUgbW9kdWxlIG11c3QgZWl0aGVyIGJlIHN0YXRpY2FsbHkgY29tcGlsZWQgaW4gdGhlIHNlcnZlciwgb3IgaXQKbXVzdCBiZSBkeW5hbWljYWxseSBjb21waWxlZCBhbmQgaXRzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zby5odG1sI2xvYWRtb2R1bGUiPkxvYWRNb2R1bGU8L2E+PC9jb2RlPiBsaW5lIG11c3QgYmUgZWFybGllciBpbiB0aGUKY29uZmlndXJhdGlvbiBmaWxlLiAgVGhpcyBkaXJlY3RpdmUgc2hvdWxkIG9ubHkgYmUgdXNlZCBpZiB5b3UgbmVlZAp5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB0byB3b3JrIHdoZXRoZXIgb3Igbm90IGNlcnRhaW4gbW9kdWxlcyBhcmUKaW5zdGFsbGVkLiAgSXQgc2hvdWxkIG5vdCBiZSB1c2VkIHRvIGVuY2xvc2UgZGlyZWN0aXZlcyB0aGF0IHlvdSB3YW50CnRvIHdvcmsgYWxsIHRoZSB0aW1lLCBiZWNhdXNlIGl0IGNhbiBzdXBwcmVzcyB1c2VmdWwgZXJyb3IgbWVzc2FnZXMKYWJvdXQgbWlzc2luZyBtb2R1bGVzLjwvcD4KCjxwPkluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9taW1lX21hZ2ljLmh0bWwjbWltZW1hZ2ljZmlsZSI+TWltZU1hZ2ljRmlsZTwvYT48L2NvZGU+IGRpcmVjdGl2ZSB3aWxsIGJlCmFwcGxpZWQgb25seSBpZiA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfbWltZV9tYWdpYy5odG1sIj5tb2RfbWltZV9tYWdpYzwvYT48L2NvZGU+IGlzIGF2YWlsYWJsZS48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0lmTW9kdWxlIG1vZF9taW1lX21hZ2ljLmMmZ3Q7CiAgICBNaW1lTWFnaWNGaWxlIGNvbmYvbWFnaWMKJmx0Oy9JZk1vZHVsZSZndDs8L3ByZT4KCgo8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3ZlcnNpb24uaHRtbCNpZnZlcnNpb24iPiZsdDtJZlZlcnNpb24mZ3Q7PC9hPjwvY29kZT4KZGlyZWN0aXZlIGlzIHZlcnkgc2ltaWxhciB0byA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZkZWZpbmUiPiZsdDtJZkRlZmluZSZndDs8L2E+PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmbW9kdWxlIj4mbHQ7SWZNb2R1bGUmZ3Q7PC9hPjwvY29kZT4sIGV4Y2VwdCBpdCBlbmNsb3NlcyBkaXJlY3RpdmVzIHRoYXQgd2lsbApvbmx5IGJlIGFwcGxpZWQgaWYgYSBwYXJ0aWN1bGFyIHZlcnNpb24gb2YgdGhlIHNlcnZlciBpcyBleGVjdXRpbmcuICBUaGlzCm1vZHVsZSBpcyBkZXNpZ25lZCBmb3IgdGhlIHVzZSBpbiB0ZXN0IHN1aXRlcyBhbmQgbGFyZ2UgbmV0d29ya3Mgd2hpY2ggaGF2ZSB0bwpkZWFsIHdpdGggZGlmZmVyZW50IGh0dHBkIHZlcnNpb25zIGFuZCBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnMuPC9wPgoKPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtJZlZlcnNpb24gJmd0Oz0gMi40Jmd0OwogICAgIyB0aGlzIGhhcHBlbnMgb25seSBpbiB2ZXJzaW9ucyBncmVhdGVyIG9yCiAgICAjIGVxdWFsIDIuNC4wLgombHQ7L0lmVmVyc2lvbiZndDs8L3ByZT4KCgo8cD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZkZWZpbmUiPiZsdDtJZkRlZmluZSZndDs8L2E+PC9jb2RlPiwKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmbW9kdWxlIj4mbHQ7SWZNb2R1bGUmZ3Q7PC9hPjwvY29kZT4sIGFuZCB0aGUKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3ZlcnNpb24uaHRtbCNpZnZlcnNpb24iPiZsdDtJZlZlcnNpb24mZ3Q7PC9hPjwvY29kZT4KY2FuIGFwcGx5IG5lZ2F0aXZlIGNvbmRpdGlvbnMgYnkgcHJlY2VkaW5nIHRoZWlyIHRlc3Qgd2l0aCAiISIuCkFsc28sIHRoZXNlIHNlY3Rpb25zIGNhbiBiZSBuZXN0ZWQgdG8gYWNoaWV2ZSBtb3JlIGNvbXBsZXgKcmVzdHJpY3Rpb25zLjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJmaWxlLWFuZC13ZWIiIGlkPSJmaWxlLWFuZC13ZWIiPkZpbGVzeXN0ZW0sIFdlYnNwYWNlLCBhbmQgQm9vbGVhbiBFeHByZXNzaW9uczwvYT48L2gyPgoKPHA+VGhlIG1vc3QgY29tbW9ubHkgdXNlZCBjb25maWd1cmF0aW9uIHNlY3Rpb24gY29udGFpbmVycyBhcmUgdGhlCm9uZXMgdGhhdCBjaGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gb2YgcGFydGljdWxhciBwbGFjZXMgaW4gdGhlCmZpbGVzeXN0ZW0gb3Igd2Vic3BhY2UuICBGaXJzdCwgaXQgaXMgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlCmRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvLiAgVGhlIGZpbGVzeXN0ZW0gaXMgdGhlIHZpZXcgb2YgeW91ciBkaXNrcwphcyBzZWVuIGJ5IHlvdXIgb3BlcmF0aW5nIHN5c3RlbS4gIEZvciBleGFtcGxlLCBpbiBhIGRlZmF1bHQgaW5zdGFsbCwKQXBhY2hlIGh0dHBkIHJlc2lkZXMgYXQgPGNvZGU+L3Vzci9sb2NhbC9hcGFjaGUyPC9jb2RlPiBpbiB0aGUgVW5peApmaWxlc3lzdGVtIG9yIDxjb2RlPiJjOi9Qcm9ncmFtIEZpbGVzL0FwYWNoZSBHcm91cC9BcGFjaGUyIjwvY29kZT4gaW4KdGhlIFdpbmRvd3MgZmlsZXN5c3RlbS4gIChOb3RlIHRoYXQgZm9yd2FyZCBzbGFzaGVzIHNob3VsZCBhbHdheXMgYmUKdXNlZCBhcyB0aGUgcGF0aCBzZXBhcmF0b3IgaW4gQXBhY2hlIGh0dHBkIGNvbmZpZ3VyYXRpb24gZmlsZXMsIGV2ZW4gZm9yIFdpbmRvd3MuKSAgSW4gY29udHJhc3QsCnRoZSB3ZWJzcGFjZSBpcyB0aGUgdmlldyBvZiB5b3VyIHNpdGUgYXMgZGVsaXZlcmVkIGJ5IHRoZSB3ZWIgc2VydmVyCmFuZCBzZWVuIGJ5IHRoZSBjbGllbnQuICBTbyB0aGUgcGF0aCA8Y29kZT4vZGlyLzwvY29kZT4gaW4gdGhlCndlYnNwYWNlIGNvcnJlc3BvbmRzIHRvIHRoZSBwYXRoCjxjb2RlPi91c3IvbG9jYWwvYXBhY2hlMi9odGRvY3MvZGlyLzwvY29kZT4gaW4gdGhlIGZpbGVzeXN0ZW0gb2YgYQpkZWZhdWx0IEFwYWNoZSBodHRwZCBpbnN0YWxsIG9uIFVuaXguICBUaGUgd2Vic3BhY2UgbmVlZCBub3QgbWFwIGRpcmVjdGx5IHRvCnRoZSBmaWxlc3lzdGVtLCBzaW5jZSB3ZWJwYWdlcyBtYXkgYmUgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5CmZyb20gZGF0YWJhc2VzIG9yIG90aGVyIGxvY2F0aW9ucy48L3A+Cgo8aDM+PGEgbmFtZT0iZmlsZXN5c3RlbSIgaWQ9ImZpbGVzeXN0ZW0iPkZpbGVzeXN0ZW0gQ29udGFpbmVyczwvYT48L2gzPgoKPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4KYW5kIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+CmRpcmVjdGl2ZXMsIGFsb25nIHdpdGggdGhlaXIgPGEgY2xhc3M9Imdsb3NzYXJ5bGluayIgaHJlZj0iLi9nbG9zc2FyeS5odG1sI3JlZ2V4IiB0aXRsZT0ic2VlIGdsb3NzYXJ5Ij5yZWdleDwvYT4KY291bnRlcnBhcnRzLCBhcHBseSBkaXJlY3RpdmVzIHRvCnBhcnRzIG9mIHRoZSBmaWxlc3lzdGVtLiAgRGlyZWN0aXZlcyBlbmNsb3NlZCBpbiBhIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4gc2VjdGlvbiBhcHBseSB0bwp0aGUgbmFtZWQgZmlsZXN5c3RlbSBkaXJlY3RvcnkgYW5kIGFsbCBzdWJkaXJlY3RvcmllcyBvZiB0aGF0CmRpcmVjdG9yeSAoYXMgd2VsbCBhcyB0aGUgZmlsZXMgaW4gdGhvc2UgZGlyZWN0b3JpZXMpLgpUaGUgc2FtZSBlZmZlY3QgY2FuIGJlIG9idGFpbmVkIHVzaW5nIDxhIGhyZWY9Imhvd3RvL2h0YWNjZXNzLmh0bWwiPi5odGFjY2VzcyBmaWxlczwvYT4uICBGb3IgZXhhbXBsZSwgaW4gdGhlCmZvbGxvd2luZyBjb25maWd1cmF0aW9uLCBkaXJlY3RvcnkgaW5kZXhlcyB3aWxsIGJlIGVuYWJsZWQgZm9yIHRoZQo8Y29kZT4vdmFyL3dlYi9kaXIxPC9jb2RlPiBkaXJlY3RvcnkgYW5kIGFsbCBzdWJkaXJlY3Rvcmllcy48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0RpcmVjdG9yeSAiL3Zhci93ZWIvZGlyMSImZ3Q7CiAgICBPcHRpb25zICtJbmRleGVzCiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCjxwPkRpcmVjdGl2ZXMgZW5jbG9zZWQgaW4gYSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXMiPiZsdDtGaWxlcyZndDs8L2E+PC9jb2RlPiBzZWN0aW9uIGFwcGx5IHRvIGFueSBmaWxlIHdpdGgKdGhlIHNwZWNpZmllZCBuYW1lLCByZWdhcmRsZXNzIG9mIHdoYXQgZGlyZWN0b3J5IGl0IGxpZXMgaW4uClNvIGZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyB3aWxsLAp3aGVuIHBsYWNlZCBpbiB0aGUgbWFpbiBzZWN0aW9uIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUsCmRlbnkgYWNjZXNzIHRvIGFueSBmaWxlIG5hbWVkIDxjb2RlPnByaXZhdGUuaHRtbDwvY29kZT4gcmVnYXJkbGVzcwpvZiB3aGVyZSBpdCBpcyBmb3VuZC48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0ZpbGVzICJwcml2YXRlLmh0bWwiJmd0OwogICAgUmVxdWlyZSBhbGwgZGVuaWVkCiZsdDsvRmlsZXMmZ3Q7PC9wcmU+CgoKPHA+VG8gYWRkcmVzcyBmaWxlcyBmb3VuZCBpbiBhIHBhcnRpY3VsYXIgcGFydCBvZiB0aGUgZmlsZXN5c3RlbSwgdGhlCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+IGFuZAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IHNlY3Rpb25zCmNhbiBiZSBjb21iaW5lZC4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gd2lsbCBkZW55CmFjY2VzcyB0byA8Y29kZT4vdmFyL3dlYi9kaXIxL3ByaXZhdGUuaHRtbDwvY29kZT4sCjxjb2RlPi92YXIvd2ViL2RpcjEvc3ViZGlyMi9wcml2YXRlLmh0bWw8L2NvZGU+LAo8Y29kZT4vdmFyL3dlYi9kaXIxL3N1YmRpcjMvcHJpdmF0ZS5odG1sPC9jb2RlPiwgYW5kIGFueSBvdGhlciBpbnN0YW5jZQpvZiA8Y29kZT5wcml2YXRlLmh0bWw8L2NvZGU+IGZvdW5kIHVuZGVyIHRoZSA8Y29kZT4vdmFyL3dlYi9kaXIxLzwvY29kZT4KZGlyZWN0b3J5LjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7RGlyZWN0b3J5ICIvdmFyL3dlYi9kaXIxIiZndDsKICAgICZsdDtGaWxlcyAicHJpdmF0ZS5odG1sIiZndDsKICAgICAgICBSZXF1aXJlIGFsbCBkZW5pZWQKICAgICZsdDsvRmlsZXMmZ3Q7CiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCgo8aDM+PGEgbmFtZT0id2Vic3BhY2UiIGlkPSJ3ZWJzcGFjZSI+V2Vic3BhY2UgQ29udGFpbmVyczwvYT48L2gzPgoKPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+CmRpcmVjdGl2ZSBhbmQgaXRzIDxhIGNsYXNzPSJnbG9zc2FyeWxpbmsiIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCNyZWdleCIgdGl0bGU9InNlZSBnbG9zc2FyeSI+cmVnZXg8L2E+IGNvdW50ZXJwYXJ0LCBvbgp0aGUgb3RoZXIgaGFuZCwgY2hhbmdlIHRoZQpjb25maWd1cmF0aW9uIGZvciBjb250ZW50IGluIHRoZSB3ZWJzcGFjZS4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nCmNvbmZpZ3VyYXRpb24gcHJldmVudHMgYWNjZXNzIHRvIGFueSBVUkwtcGF0aCB0aGF0IGJlZ2lucyBpbiAvcHJpdmF0ZS4KSW4gcGFydGljdWxhciwgaXQgd2lsbCBhcHBseSB0byByZXF1ZXN0cyBmb3IKPGNvZGU+aHR0cDovL3lvdXJzaXRlLmV4YW1wbGUuY29tL3ByaXZhdGU8L2NvZGU+LAo8Y29kZT5odHRwOi8veW91cnNpdGUuZXhhbXBsZS5jb20vcHJpdmF0ZTEyMzwvY29kZT4sIGFuZAo8Y29kZT5odHRwOi8veW91cnNpdGUuZXhhbXBsZS5jb20vcHJpdmF0ZS9kaXIvZmlsZS5odG1sPC9jb2RlPiBhcyB3ZWxsCmFzIGFueSBvdGhlciByZXF1ZXN0cyBzdGFydGluZyB3aXRoIHRoZSA8Y29kZT4vcHJpdmF0ZTwvY29kZT4gc3RyaW5nLjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7TG9jYXRpb25NYXRjaCAiXi9wcml2YXRlIiZndDsKICAgIFJlcXVpcmUgYWxsIGRlbmllZAombHQ7L0xvY2F0aW9uTWF0Y2gmZ3Q7PC9wcmU+CgoKPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+CmRpcmVjdGl2ZSBuZWVkIG5vdCBoYXZlIGFueXRoaW5nIHRvIGRvIHdpdGggdGhlIGZpbGVzeXN0ZW0uCkZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IHRvIG1hcCBhIHBhcnRpY3VsYXIKVVJMIHRvIGFuIGludGVybmFsIEFwYWNoZSBIVFRQIFNlcnZlciBoYW5kbGVyIHByb3ZpZGVkIGJ5IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zdGF0dXMuaHRtbCI+bW9kX3N0YXR1czwvYT48L2NvZGU+LgpObyBmaWxlIGNhbGxlZCA8Y29kZT5zZXJ2ZXItc3RhdHVzPC9jb2RlPiBuZWVkcyB0byBleGlzdCBpbiB0aGUKZmlsZXN5c3RlbS48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0xvY2F0aW9uICIvc2VydmVyLXN0YXR1cyImZ3Q7CiAgICBTZXRIYW5kbGVyIHNlcnZlci1zdGF0dXMKJmx0Oy9Mb2NhdGlvbiZndDs8L3ByZT4KCgoKPGgzPjxhIG5hbWU9Im92ZXJsYXBwaW5nLXdlYnNwYWNlIiBpZD0ib3ZlcmxhcHBpbmctd2Vic3BhY2UiPk92ZXJsYXBwaW5nIFdlYnNwYWNlPC9hPjwvaDM+CjxwPkluIG9yZGVyIHRvIGhhdmUgdHdvIG92ZXJsYXBwaW5nIFVSTHMgb25lIGhhcyB0byBjb25zaWRlciB0aGUgb3JkZXIgaW4gd2hpY2gKY2VydGFpbiBzZWN0aW9ucyBvciBkaXJlY3RpdmVzIGFyZSBldmFsdWF0ZWQuIEZvcgo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb24iPiZsdDtMb2NhdGlvbiZndDs8L2E+PC9jb2RlPiB0aGlzIHdvdWxkIGJlOjwvcD4KPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtMb2NhdGlvbiAiL2ZvbyImZ3Q7CiZsdDsvTG9jYXRpb24mZ3Q7CiZsdDtMb2NhdGlvbiAiL2Zvby9iYXIiJmd0OwombHQ7L0xvY2F0aW9uJmd0OzwvcHJlPgoKPHA+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2FsaWFzLmh0bWwjYWxpYXMiPiZsdDtBbGlhcyZndDs8L2E+PC9jb2RlPmVzIG9uIHRoZSBvdGhlciBoYW5kLAphcmUgbWFwcGVkIHZpY2UtdmVyc2E6PC9wPgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+QWxpYXMgIi9mb28vYmFyIiAiL3Nydi93d3cvdW5jb21tb24vYmFyIgpBbGlhcyAiL2ZvbyIgICAgICIvc3J2L3d3dy9jb21tb24vZm9vIjwvcHJlPgoKPHA+VGhlIHNhbWUgaXMgdHJ1ZSBmb3IgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9wcm94eS5odG1sI3Byb3h5cGFzcyI+UHJveHlQYXNzPC9hPjwvY29kZT4KZGlyZWN0aXZlczo8L3A+CjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5Qcm94eVBhc3MgIi9zcGVjaWFsLWFyZWEiICJodHRwOi8vc3BlY2lhbC5leGFtcGxlLmNvbSIgc21heD01IG1heD0xMApQcm94eVBhc3MgIi8iICJiYWxhbmNlcjovL215Y2x1c3Rlci8iIHN0aWNreXNlc3Npb249SlNFU1NJT05JRHxqc2Vzc2lvbmlkIG5vZmFpbG92ZXI9T248L3ByZT4KCgoKPGgzPjxhIG5hbWU9IndpbGRjYXJkcyIgaWQ9IndpbGRjYXJkcyI+V2lsZGNhcmRzIGFuZCBSZWd1bGFyIEV4cHJlc3Npb25zPC9hPjwvaDM+Cgo8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiwKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzIj4mbHQ7RmlsZXMmZ3Q7PC9hPjwvY29kZT4sIGFuZAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb24iPiZsdDtMb2NhdGlvbiZndDs8L2E+PC9jb2RlPgpkaXJlY3RpdmVzIGNhbiBlYWNoIHVzZSBzaGVsbC1zdHlsZSB3aWxkY2FyZCBjaGFyYWN0ZXJzIGFzIGluCjxjb2RlPmZubWF0Y2g8L2NvZGU+IGZyb20gdGhlIEMgc3RhbmRhcmQgbGlicmFyeS4gIFRoZSBjaGFyYWN0ZXIgIioiCm1hdGNoZXMgYW55IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMsICI/IiBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyLAphbmQgIls8ZW0+c2VxPC9lbT5dIiBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgaW4gPGVtPnNlcTwvZW0+LiAgVGhlICIvIgpjaGFyYWN0ZXIgd2lsbCBub3QgYmUgbWF0Y2hlZCBieSBhbnkgd2lsZGNhcmQ7IGl0IG11c3QgYmUgc3BlY2lmaWVkCmV4cGxpY2l0bHkuPC9wPgoKPHA+SWYgZXZlbiBtb3JlIGZsZXhpYmxlIG1hdGNoaW5nIGlzIHJlcXVpcmVkLCBlYWNoCmNvbnRhaW5lciBoYXMgYSByZWd1bGFyIGV4cHJlc3Npb24gKHJlZ2V4KSBjb3VudGVycGFydCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5bWF0Y2giPiZsdDtEaXJlY3RvcnlNYXRjaCZndDs8L2E+PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzbWF0Y2giPiZsdDtGaWxlc01hdGNoJmd0OzwvYT48L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvY2F0aW9ubWF0Y2giPiZsdDtMb2NhdGlvbk1hdGNoJmd0OzwvYT48L2NvZGU+IHRoYXQgYWxsb3cKcGVybC1jb21wYXRpYmxlCjxhIGNsYXNzPSJnbG9zc2FyeWxpbmsiIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCNyZWdleCIgdGl0bGU9InNlZSBnbG9zc2FyeSI+cmVndWxhciBleHByZXNzaW9uczwvYT4KdG8gYmUgdXNlZCBpbiBjaG9vc2luZyB0aGUgbWF0Y2hlcy4gIEJ1dCBzZWUgdGhlIHNlY3Rpb24gYmVsb3cgb24KY29uZmlndXJhdGlvbiBtZXJnaW5nIHRvIGZpbmQgb3V0IGhvdyB1c2luZyByZWdleCBzZWN0aW9ucyB3aWxsIGNoYW5nZQpob3cgZGlyZWN0aXZlcyBhcmUgYXBwbGllZC48L3A+Cgo8cD5BIG5vbi1yZWdleCB3aWxkY2FyZCBzZWN0aW9uIHRoYXQgY2hhbmdlcyB0aGUgY29uZmlndXJhdGlvbiBvZgphbGwgdXNlciBkaXJlY3RvcmllcyBjb3VsZCBsb29rIGFzIGZvbGxvd3M6PC9wPgoKPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtEaXJlY3RvcnkgIi9ob21lLyovcHVibGljX2h0bWwiJmd0OwogICAgT3B0aW9ucyBJbmRleGVzCiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCjxwPlVzaW5nIHJlZ2V4IHNlY3Rpb25zLCB3ZSBjYW4gZGVueSBhY2Nlc3MgdG8gbWFueSB0eXBlcyBvZiBpbWFnZSBmaWxlcwphdCBvbmNlOjwvcD4KPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtGaWxlc01hdGNoICJcLig/aTpnaWZ8anBlP2d8cG5nKSQiJmd0OwogICAgUmVxdWlyZSBhbGwgZGVuaWVkCiZsdDsvRmlsZXNNYXRjaCZndDs8L3ByZT4KCgo8cD5SZWd1bGFyIGV4cHJlc3Npb25zIGNvbnRhaW5pbmcgPHN0cm9uZz5uYW1lZCBncm91cHMgYW5kCmJhY2tyZWZlcmVuY2VzPC9zdHJvbmc+IGFyZSBhZGRlZCB0byB0aGUgZW52aXJvbm1lbnQgd2l0aCB0aGUKY29ycmVzcG9uZGluZyBuYW1lIGluIHVwcGVyY2FzZS4gVGhpcyBhbGxvd3MgZWxlbWVudHMgb2YgZmlsZW5hbWUgcGF0aHMKYW5kIFVSTHMgdG8gYmUgcmVmZXJlbmNlZCBmcm9tIHdpdGhpbiA8YSBocmVmPSJleHByLmh0bWwiPmV4cHJlc3Npb25zPC9hPgphbmQgbW9kdWxlcyBsaWtlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9yZXdyaXRlLmh0bWwiPm1vZF9yZXdyaXRlPC9hPjwvY29kZT4uPC9wPgoKPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtEaXJlY3RvcnlNYXRjaCAiXi92YXIvd3d3L2NvbWJpbmVkLyg/Jmx0O1NJVEVOQU1FJmd0O1teL10rKSImZ3Q7CiAgICByZXF1aXJlIGxkYXAtZ3JvdXAgY249JXtlbnY6TUFUQ0hfU0lURU5BTUV9LG91PWNvbWJpbmVkLG89RXhhbXBsZQombHQ7L0RpcmVjdG9yeU1hdGNoJmd0OzwvcHJlPgoKCgoKPGgzPjxhIG5hbWU9ImV4cHJlc3Npb25zIiBpZD0iZXhwcmVzc2lvbnMiPkJvb2xlYW4gZXhwcmVzc2lvbnM8L2E+PC9oMz4KPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpZiI+Jmx0O0lmJmd0OzwvYT48L2NvZGU+CmRpcmVjdGl2ZSBjaGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gZGVwZW5kaW5nIG9uIGEgY29uZGl0aW9uIHdoaWNoIGNhbiBiZQpleHByZXNzZWQgYnkgYSBib29sZWFuIGV4cHJlc3Npb24uIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24KZGVuaWVzIGFjY2VzcyBpZiB0aGUgSFRUUCBSZWZlcmVyIGhlYWRlciBkb2VzIG5vdCBzdGFydCB3aXRoCiJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyIuPC9wPgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0lmICIhKCV7SFRUUF9SRUZFUkVSfSAtc3RybWF0Y2ggJ2h0dHA6Ly93d3cuZXhhbXBsZS5jb20vKicpIiZndDsKICAgIFJlcXVpcmUgYWxsIGRlbmllZAombHQ7L0lmJmd0OzwvcHJlPgoKCgoKPGgzPjxhIG5hbWU9IndoaWNod2hlbiIgaWQ9IndoaWNod2hlbiI+V2hhdCB0byB1c2UgV2hlbjwvYT48L2gzPgoKPHA+Q2hvb3NpbmcgYmV0d2VlbiBmaWxlc3lzdGVtIGNvbnRhaW5lcnMgYW5kIHdlYnNwYWNlIGNvbnRhaW5lcnMgaXMKYWN0dWFsbHkgcXVpdGUgZWFzeS4gIFdoZW4gYXBwbHlpbmcgZGlyZWN0aXZlcyB0byBvYmplY3RzIHRoYXQgcmVzaWRlCmluIHRoZSBmaWxlc3lzdGVtIGFsd2F5cyB1c2UgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiBvciA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXMiPiZsdDtGaWxlcyZndDs8L2E+PC9jb2RlPi4gIFdoZW4gYXBwbHlpbmcgZGlyZWN0aXZlcyB0byBvYmplY3RzCnRoYXQgZG8gbm90IHJlc2lkZSBpbiB0aGUgZmlsZXN5c3RlbSAoc3VjaCBhcyBhIHdlYnBhZ2UgZ2VuZXJhdGVkIGZyb20KYSBkYXRhYmFzZSksIHVzZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb24iPiZsdDtMb2NhdGlvbiZndDs8L2E+PC9jb2RlPi48L3A+Cgo8cD5JdCBpcyBpbXBvcnRhbnQgdG8gbmV2ZXIgdXNlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+IHdoZW4gdHJ5aW5nIHRvIHJlc3RyaWN0CmFjY2VzcyB0byBvYmplY3RzIGluIHRoZSBmaWxlc3lzdGVtLiAgVGhpcyBpcyBiZWNhdXNlIG1hbnkKZGlmZmVyZW50IHdlYnNwYWNlIGxvY2F0aW9ucyAoVVJMcykgY291bGQgbWFwIHRvIHRoZSBzYW1lIGZpbGVzeXN0ZW0KbG9jYXRpb24sIGFsbG93aW5nIHlvdXIgcmVzdHJpY3Rpb25zIHRvIGJlIGNpcmN1bXZlbnRlZC4KRm9yIGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbjo8L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0xvY2F0aW9uICIvZGlyLyImZ3Q7CiAgICBSZXF1aXJlIGFsbCBkZW5pZWQKJmx0Oy9Mb2NhdGlvbiZndDs8L3ByZT4KCgo8cD5UaGlzIHdvcmtzIGZpbmUgaWYgdGhlIHJlcXVlc3QgaXMgZm9yCjxjb2RlPmh0dHA6Ly95b3Vyc2l0ZS5leGFtcGxlLmNvbS9kaXIvPC9jb2RlPi4gIEJ1dCB3aGF0IGlmIHlvdSBhcmUgb24KYSBjYXNlLWluc2Vuc2l0aXZlIGZpbGVzeXN0ZW0/ICBUaGVuIHlvdXIgcmVzdHJpY3Rpb24gY291bGQgYmUgZWFzaWx5CmNpcmN1bXZlbnRlZCBieSByZXF1ZXN0aW5nCjxjb2RlPmh0dHA6Ly95b3Vyc2l0ZS5leGFtcGxlLmNvbS9ESVIvPC9jb2RlPi4gIFRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IGRpcmVjdGl2ZSwgaW4KY29udHJhc3QsIHdpbGwgYXBwbHkgdG8gYW55IGNvbnRlbnQgc2VydmVkIGZyb20gdGhhdCBsb2NhdGlvbiwKcmVnYXJkbGVzcyBvZiBob3cgaXQgaXMgY2FsbGVkLiAgKEFuIGV4Y2VwdGlvbiBpcyBmaWxlc3lzdGVtIGxpbmtzLgpUaGUgc2FtZSBkaXJlY3RvcnkgY2FuIGJlIHBsYWNlZCBpbiBtb3JlIHRoYW4gb25lIHBhcnQgb2YgdGhlCmZpbGVzeXN0ZW0gdXNpbmcgc3ltYm9saWMgbGlua3MuICBUaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiBkaXJlY3RpdmUgd2lsbCBmb2xsb3cgdGhlIHN5bWJvbGljCmxpbmsgd2l0aG91dCByZXNldHRpbmcgdGhlIHBhdGhuYW1lLiAgVGhlcmVmb3JlLCBmb3IgdGhlIGhpZ2hlc3QgbGV2ZWwKb2Ygc2VjdXJpdHksIHN5bWJvbGljIGxpbmtzIHNob3VsZCBiZSBkaXNhYmxlZCB3aXRoIHRoZSBhcHByb3ByaWF0ZQo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjb3B0aW9ucyI+T3B0aW9uczwvYT48L2NvZGU+IGRpcmVjdGl2ZS4pPC9wPgoKPHA+SWYgeW91IGFyZSwgcGVyaGFwcywgdGhpbmtpbmcgdGhhdCBub25lIG9mIHRoaXMgYXBwbGllcyB0byB5b3UKYmVjYXVzZSB5b3UgdXNlIGEgY2FzZS1zZW5zaXRpdmUgZmlsZXN5c3RlbSwgcmVtZW1iZXIgdGhhdCB0aGVyZSBhcmUKbWFueSBvdGhlciB3YXlzIHRvIG1hcCBtdWx0aXBsZSB3ZWJzcGFjZSBsb2NhdGlvbnMgdG8gdGhlIHNhbWUKZmlsZXN5c3RlbSBsb2NhdGlvbi4gIFRoZXJlZm9yZSB5b3Ugc2hvdWxkIGFsd2F5cyB1c2UgdGhlIGZpbGVzeXN0ZW0KY29udGFpbmVycyB3aGVuIHlvdSBjYW4uICBUaGVyZSBpcywgaG93ZXZlciwgb25lIGV4Y2VwdGlvbiB0byB0aGlzCnJ1bGUuICBQdXR0aW5nIGNvbmZpZ3VyYXRpb24gcmVzdHJpY3Rpb25zIGluIGEgPGNvZGU+Jmx0O0xvY2F0aW9uCiIvIiZndDs8L2NvZGU+IHNlY3Rpb24gaXMgcGVyZmVjdGx5IHNhZmUgYmVjYXVzZSB0aGlzIHNlY3Rpb24gd2lsbCBhcHBseQp0byBhbGwgcmVxdWVzdHMgcmVnYXJkbGVzcyBvZiB0aGUgc3BlY2lmaWMgVVJMLjwvcD4KCgo8aDM+PGEgbmFtZT0ibmVzdGluZyIgaWQ9Im5lc3RpbmciPk5lc3Rpbmcgb2Ygc2VjdGlvbnM8L2E+PC9oMz4KCjxwPlNvbWUgc2VjdGlvbiB0eXBlcyBjYW4gYmUgbmVzdGVkIGluc2lkZSBvdGhlciBzZWN0aW9uIHR5cGVzLiBPbiB0aGUgb25lCmhhbmQsIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+IGNhbiBiZSB1c2VkCmluc2lkZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+LiAgT24KdGhlIG90aGVyIGhhbmQsIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpZiI+Jmx0O0lmJmd0OzwvYT48L2NvZGU+IGNhbgpiZSB1c2VkIGluc2lkZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+LAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb24iPiZsdDtMb2NhdGlvbiZndDs8L2E+PC9jb2RlPiwgYW5kIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+IHNlY3Rpb25zLiBUaGUgcmVnZXgKY291bnRlcnBhcnRzIG9mIHRoZSBuYW1lZCBzZWN0aW9uIGJlaGF2ZSBpZGVudGljYWxseS48L3A+Cgo8cD5OZXN0ZWQgc2VjdGlvbnMgYXJlIG1lcmdlZCBhZnRlciBub24tbmVzdGVkIHNlY3Rpb25zIG9mIHRoZSBzYW1lIHR5cGUuPC9wPgoKCgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InZpcnR1YWxob3N0IiBpZD0idmlydHVhbGhvc3QiPlZpcnR1YWwgSG9zdHM8L2E+PC9oMj4KCjxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPgpjb250YWluZXIgZW5jbG9zZXMgZGlyZWN0aXZlcyB0aGF0IGFwcGx5IHRvIHNwZWNpZmljIGhvc3RzLgpUaGlzIGlzIHVzZWZ1bCB3aGVuIHNlcnZpbmcgbXVsdGlwbGUgaG9zdHMgZnJvbSB0aGUgc2FtZSBtYWNoaW5lCndpdGggYSBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBmb3IgZWFjaC4gIEZvciBtb3JlIGluZm9ybWF0aW9uLApzZWUgdGhlIDxhIGhyZWY9InZob3N0cy8iPlZpcnR1YWwgSG9zdCBEb2N1bWVudGF0aW9uPC9hPi48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0icHJveHkiIGlkPSJwcm94eSI+UHJveHk8L2E+PC9oMj4KCjxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eSI+Jmx0O1Byb3h5Jmd0OzwvYT48L2NvZGU+CmFuZCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eW1hdGNoIj4mbHQ7UHJveHlNYXRjaCZndDs8L2E+PC9jb2RlPgpjb250YWluZXJzIGFwcGx5IGVuY2xvc2VkIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBvbmx5CnRvIHNpdGVzIGFjY2Vzc2VkIHRocm91Z2ggPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+J3MgcHJveHkgc2VydmVyCnRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBVUkwuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24Kd2lsbCBhbGxvdyBvbmx5IGEgc3Vic2V0IG9mIGNsaWVudHMgdG8gYWNjZXNzIHRoZQo8Y29kZT53d3cuZXhhbXBsZS5jb208L2NvZGU+IHdlYnNpdGUgdXNpbmcgdGhlIHByb3h5IHNlcnZlcjo8L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O1Byb3h5IGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vKiZndDsKICAgIFJlcXVpcmUgaG9zdCB5b3VybmV0d29yay5leGFtcGxlLmNvbQombHQ7L1Byb3h5Jmd0OzwvcHJlPgoKPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJ3aGF0d2hlcmUiIGlkPSJ3aGF0d2hlcmUiPldoYXQgRGlyZWN0aXZlcyBhcmUgQWxsb3dlZD88L2E+PC9oMj4KCjxwPlRvIGZpbmQgb3V0IHdoYXQgZGlyZWN0aXZlcyBhcmUgYWxsb3dlZCBpbiB3aGF0IHR5cGVzIG9mCmNvbmZpZ3VyYXRpb24gc2VjdGlvbnMsIGNoZWNrIHRoZSA8YSBocmVmPSJtb2QvZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0PC9hPiBvZiB0aGUgZGlyZWN0aXZlLgpFdmVyeXRoaW5nIHRoYXQgaXMgYWxsb3dlZCBpbgo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+CnNlY3Rpb25zIGlzIGFsc28gc3ludGFjdGljYWxseSBhbGxvd2VkIGluCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnltYXRjaCI+Jmx0O0RpcmVjdG9yeU1hdGNoJmd0OzwvYT48L2NvZGU+LAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXMiPiZsdDtGaWxlcyZndDs8L2E+PC9jb2RlPiwKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzbWF0Y2giPiZsdDtGaWxlc01hdGNoJmd0OzwvYT48L2NvZGU+LAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb24iPiZsdDtMb2NhdGlvbiZndDs8L2E+PC9jb2RlPiwKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvY2F0aW9ubWF0Y2giPiZsdDtMb2NhdGlvbk1hdGNoJmd0OzwvYT48L2NvZGU+LAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eSI+Jmx0O1Byb3h5Jmd0OzwvYT48L2NvZGU+LAphbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwjcHJveHltYXRjaCI+Jmx0O1Byb3h5TWF0Y2gmZ3Q7PC9hPjwvY29kZT4Kc2VjdGlvbnMuICBUaGVyZSBhcmUgc29tZSBleGNlcHRpb25zLCBob3dldmVyOjwvcD4KCjx1bD4KPGxpPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjYWxsb3dvdmVycmlkZSI+QWxsb3dPdmVycmlkZTwvYT48L2NvZGU+IGRpcmVjdGl2ZQp3b3JrcyBvbmx5IGluIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4Kc2VjdGlvbnMuPC9saT4KCjxsaT5UaGUgPGNvZGU+Rm9sbG93U3ltTGlua3M8L2NvZGU+IGFuZAo8Y29kZT5TeW1MaW5rc0lmT3duZXJNYXRjaDwvY29kZT4gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI29wdGlvbnMiPk9wdGlvbnM8L2E+PC9jb2RlPiB3b3JrIG9ubHkgaW4gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiBzZWN0aW9ucyBvcgo8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzLjwvbGk+Cgo8bGk+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNvcHRpb25zIj5PcHRpb25zPC9hPjwvY29kZT4gZGlyZWN0aXZlIGNhbm5vdApiZSB1c2VkIGluIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+CmFuZCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXNtYXRjaCI+Jmx0O0ZpbGVzTWF0Y2gmZ3Q7PC9hPjwvY29kZT4Kc2VjdGlvbnMuPC9saT4KPC91bD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJtZXJnaW5nIiBpZD0ibWVyZ2luZyI+SG93IHRoZSBzZWN0aW9ucyBhcmUgbWVyZ2VkPC9hPjwvaDI+Cgo8cD5UaGUgY29uZmlndXJhdGlvbiBzZWN0aW9ucyBhcmUgYXBwbGllZCBpbiBhIHZlcnkgcGFydGljdWxhciBvcmRlci4KU2luY2UgdGhpcyBjYW4gaGF2ZSBpbXBvcnRhbnQgZWZmZWN0cyBvbiBob3cgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzCmFyZSBpbnRlcnByZXRlZCwgaXQgaXMgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgd29ya3MuPC9wPgoKICAgIDxwPlRoZSBvcmRlciBvZiBtZXJnaW5nIGlzOjwvcD4KCiAgICA8b2w+CiAgICAgIDxsaT4gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiAoZXhjZXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnMpCiAgICAgIGFuZCA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGRvbmUgc2ltdWx0YW5lb3VzbHkgKHdpdGgKICAgICAgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiwgaWYgYWxsb3dlZCwgb3ZlcnJpZGluZwogICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+KTwvbGk+CgogICAgICA8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeW1hdGNoIj4mbHQ7RGlyZWN0b3J5TWF0Y2gmZ3Q7PC9hPjwvY29kZT4KICAgICAgKGFuZCA8Y29kZT4mbHQ7RGlyZWN0b3J5IH4mZ3Q7PC9jb2RlPik8L2xpPgoKICAgICAgPGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXNtYXRjaCI+Jmx0O0ZpbGVzTWF0Y2gmZ3Q7PC9hPjwvY29kZT4gZG9uZQogICAgICBzaW11bHRhbmVvdXNseTwvbGk+CgogICAgICA8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvY2F0aW9uIj4mbHQ7TG9jYXRpb24mZ3Q7PC9hPjwvY29kZT4KICAgICAgYW5kIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbm1hdGNoIj4mbHQ7TG9jYXRpb25NYXRjaCZndDs8L2E+PC9jb2RlPiBkb25lIHNpbXVsdGFuZW91c2x5PC9saT4KCiAgICAgIDxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWYiPiZsdDtJZiZndDs8L2E+PC9jb2RlPgogICAgICA8L2xpPgoKICAgIDwvb2w+CgogICAgPHA+QXBhcnQgZnJvbSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+LCBlYWNoIGdyb3VwIGlzIHByb2Nlc3NlZCBpbgogICAgdGhlIG9yZGVyIHRoYXQgdGhleSBhcHBlYXIgaW4gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMuICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IChncm91cCAxIGFib3ZlKQogICAgaXMgcHJvY2Vzc2VkIGluIHRoZSBvcmRlciBzaG9ydGVzdCBkaXJlY3RvcnkgY29tcG9uZW50IHRvIGxvbmdlc3QuCiAgICBTbyBmb3IgZXhhbXBsZSwgPGNvZGU+Jmx0O0RpcmVjdG9yeSAiL3Zhci93ZWIvZGlyIiZndDs8L2NvZGU+IHdpbGwKICAgIGJlIHByb2Nlc3NlZCBiZWZvcmUgPGNvZGU+Jmx0O0RpcmVjdG9yeQogICAgIi92YXIvd2ViL2Rpci9zdWJkaXIiJmd0OzwvY29kZT4uICBJZiBtdWx0aXBsZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IHNlY3Rpb25zIGFwcGx5CiAgICB0byB0aGUgc2FtZSBkaXJlY3RvcnkgdGhleSBhcmUgcHJvY2Vzc2VkIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUKICAgIG9yZGVyLiBDb25maWd1cmF0aW9ucyBpbmNsdWRlZCB2aWEgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpbmNsdWRlIj5JbmNsdWRlPC9hPjwvY29kZT4gZGlyZWN0aXZlIHdpbGwgYmUgdHJlYXRlZCBhcyBpZgogICAgdGhleSB3ZXJlIGluc2lkZSB0aGUgaW5jbHVkaW5nIGZpbGUgYXQgdGhlIGxvY2F0aW9uIG9mIHRoZQogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2luY2x1ZGUiPkluY2x1ZGU8L2E+PC9jb2RlPiBkaXJlY3RpdmUuPC9wPgoKICAgIDxwPlNlY3Rpb25zIGluc2lkZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPiBzZWN0aW9ucwogICAgYXJlIGFwcGxpZWQgPGVtPmFmdGVyPC9lbT4gdGhlIGNvcnJlc3BvbmRpbmcgc2VjdGlvbnMgb3V0c2lkZQogICAgdGhlIHZpcnR1YWwgaG9zdCBkZWZpbml0aW9uLiBUaGlzIGFsbG93cyB2aXJ0dWFsIGhvc3RzIHRvCiAgICBvdmVycmlkZSB0aGUgbWFpbiBzZXJ2ZXIgY29uZmlndXJhdGlvbi48L3A+CgogICAgPHA+V2hlbiB0aGUgcmVxdWVzdCBpcyBzZXJ2ZWQgYnkgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+LCB0aGUKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9wcm94eS5odG1sI3Byb3h5Ij4mbHQ7UHJveHkmZ3Q7PC9hPjwvY29kZT4KICAgIGNvbnRhaW5lciB0YWtlcyB0aGUgcGxhY2Ugb2YgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4gY29udGFpbmVyIGluIHRoZSBwcm9jZXNzaW5nCiAgICBvcmRlci48L3A+CgogICAgPGRpdiBjbGFzcz0ibm90ZSI+PGgzPlRlY2huaWNhbCBOb3RlPC9oMz4KICAgICAgVGhlcmUgaXMgYWN0dWFsbHkgYQogICAgICA8Y29kZT4mbHQ7TG9jYXRpb24mZ3Q7PC9jb2RlPi88Y29kZT4mbHQ7TG9jYXRpb25NYXRjaCZndDs8L2NvZGU+CiAgICAgIHNlcXVlbmNlIHBlcmZvcm1lZCBqdXN0IGJlZm9yZSB0aGUgbmFtZSB0cmFuc2xhdGlvbiBwaGFzZQogICAgICAod2hlcmUgPGNvZGU+QWxpYXNlczwvY29kZT4gYW5kIDxjb2RlPkRvY3VtZW50Um9vdHM8L2NvZGU+CiAgICAgIGFyZSB1c2VkIHRvIG1hcCBVUkxzIHRvIGZpbGVuYW1lcykuIFRoZSByZXN1bHRzIG9mIHRoaXMKICAgICAgc2VxdWVuY2UgYXJlIGNvbXBsZXRlbHkgdGhyb3duIGF3YXkgYWZ0ZXIgdGhlIHRyYW5zbGF0aW9uIGhhcwogICAgICBjb21wbGV0ZWQuCiAgICA8L2Rpdj4KCjxoMz48YSBuYW1lPSJyZWxhdGlvbnNoaXAtbW9kdWxlLWNvbmZpZ3VyYXRpb24iIGlkPSJyZWxhdGlvbnNoaXAtbW9kdWxlLWNvbmZpZ3VyYXRpb24iPlJlbGF0aW9uc2hpcCBiZXR3ZWVuIG1vZHVsZXMgYW5kIGNvbmZpZ3VyYXRpb24gc2VjdGlvbnM8L2E+PC9oMz4KICAgIDxwPk9uZSBxdWVzdGlvbiB0aGF0IG9mdGVuIGFyaXNlcyBhZnRlciByZWFkaW5nIGhvdyBjb25maWd1cmF0aW9uIHNlY3Rpb25zIGFyZQogICAgbWVyZ2VkIGlzIHJlbGF0ZWQgdG8gaG93IGFuZCB3aGVuIGRpcmVjdGl2ZXMgb2Ygc3BlY2lmaWMgbW9kdWxlcyBsaWtlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9yZXdyaXRlLmh0bWwiPm1vZF9yZXdyaXRlPC9hPjwvY29kZT4KICAgIGFyZSBwcm9jZXNzZWQuIFRoZSBhbnN3ZXIgaXMgbm90IHRyaXZpYWwgYW5kIG5lZWRzIGEgYml0IG9mIGJhY2tncm91bmQuIAogICAgRWFjaCBodHRwZCBtb2R1bGUgbWFuYWdlcyBpdHMgb3duIGNvbmZpZ3VyYXRpb24sIGFuZCBlYWNoIG9mIGl0cyBkaXJlY3RpdmVzIGluIGh0dHBkLmNvbmYgc3BlY2lmeSBvbmUgcGllY2UgCiAgICBvZiBjb25maWd1cmF0aW9uIGluIGEgcGFydGljdWxhciBjb250ZXh0LiBodHRwZCBkb2VzIG5vdCBleGVjdXRlIGEgY29tbWFuZCBhcyBpdCBpcyByZWFkLjwvcD4KICAgIDxwPkF0IHJ1bnRpbWUsIHRoZSBjb3JlIG9mIGh0dHBkIGl0ZXJhdGVzIG92ZXIgdGhlIGRlZmluZWQgY29uZmlndXJhdGlvbiBzZWN0aW9ucyBpbiB0aGUgb3JkZXIKICAgIGRlc2NyaWJlZCBhYm92ZSB0byBkZXRlcm1pbmUgd2hpY2ggb25lcyBhcHBseSB0byB0aGUgY3VycmVudCByZXF1ZXN0LiBXaGVuIHRoZSBmaXJzdCBzZWN0aW9uIG1hdGNoZXMsIAogICAgaXQgaXMgY29uc2lkZXJlZCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIGZvciB0aGlzIHJlcXVlc3QuIElmIGEgc3Vic2VxdWVudCBzZWN0aW9uIG1hdGNoZXMgdG9vLCAKICAgIHRoZW4gZWFjaCBtb2R1bGUgd2l0aCBhIGRpcmVjdGl2ZSBpbiBlaXRoZXIgb2YgdGhlIHNlY3Rpb25zIGlzIGdpdmVuIGEgY2hhbmNlIHRvIG1lcmdlIGl0cyBjb25maWd1cmF0aW9uIGJldHdlZW4gdGhlIHR3byBzZWN0aW9ucy4gVGhlIHJlc3VsdCBpcyBhIHRoaXJkIGNvbmZpZ3VyYXRpb24sIGFuZCB0aGUgcHJvY2VzcyBnb2VzIG9uIHVudGlsIGFsbCB0aGUgY29uZmlndXJhdGlvbiBzZWN0aW9ucwogICAgYXJlIGV2YWx1YXRlZC48L3A+CiAgICA8cD5BZnRlciB0aGUgYWJvdmUgc3RlcCwgdGhlICJyZWFsIiBwcm9jZXNzaW5nIG9mIHRoZSBIVFRQIHJlcXVlc3QgYmVnaW5zOiBlYWNoIG1vZHVsZSBoYXMgYSBjaGFuY2UgdG8gcnVuIAogICAgYW5kIHBlcmZvcm0gd2hhdGV2ZXIgdGFza3MgdGhleSBsaWtlLiBUaGV5IGNhbiByZXRyaWV2ZSB0aGVpciBvd24gZmluYWwgbWVyZ2VkIGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgY29yZQogICAgb2YgdGhlIGh0dHBkIHRvIGRldGVybWluZSBob3cgdGhleSBzaG91bGQgYWN0LjwvcD4KICAgIDxwPkFuIGV4YW1wbGUgY2FuIGhlbHAgdG8gdmlzdWFsaXplIHRoZSB3aG9sZSBwcm9jZXNzLiBUaGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gdXNlcyB0aGUgCiAgICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2hlYWRlcnMuaHRtbCNoZWFkZXIiPkhlYWRlcjwvYT48L2NvZGU+IGRpcmVjdGl2ZSBvZiA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfaGVhZGVycy5odG1sIj5tb2RfaGVhZGVyczwvYT48L2NvZGU+IHRvIHNldAogICAgICAgIGEgc3BlY2lmaWMgSFRUUCBoZWFkZXIuIFdoYXQgdmFsdWUgd2lsbCBodHRwZCBzZXQgaW4gdGhlIDxjb2RlPkN1c3RvbUhlYWRlck5hbWU8L2NvZGU+IGhlYWRlciBmb3IgYSByZXF1ZXN0IHRvCiAgICAgICAgPGNvZGU+L2V4YW1wbGUvaW5kZXguaHRtbDwvY29kZT4gPwogICAgPC9wPgogICAgPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtEaXJlY3RvcnkgIi8iJmd0OwogICAgSGVhZGVyIHNldCBDdXN0b21IZWFkZXJOYW1lIG9uZQogICAgJmx0O0ZpbGVzTWF0Y2ggIi4qIiZndDsKICAgICAgICBIZWFkZXIgc2V0IEN1c3RvbUhlYWRlck5hbWUgdGhyZWUKICAgICZsdDsvRmlsZXNNYXRjaCZndDsKJmx0Oy9EaXJlY3RvcnkmZ3Q7CgombHQ7RGlyZWN0b3J5ICIvZXhhbXBsZSImZ3Q7CiAgICBIZWFkZXIgc2V0IEN1c3RvbUhlYWRlck5hbWUgdHdvCiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgogICAgCiAgICA8dWw+CiAgICAgICAgPGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkRpcmVjdG9yeTwvY29kZT4gIi8iIG1hdGNoZXMgYW5kIGFuIGluaXRpYWwgY29uZmlndXJhdGlvbiB0byBzZXQgdGhlIDxjb2RlPkN1c3RvbUhlYWRlck5hbWU8L2NvZGU+IGhlYWRlciB3aXRoIHRoZSB2YWx1ZSA8Y29kZT5vbmU8L2NvZGU+IGlzIGNyZWF0ZWQuPC9saT4KICAgICAgICA8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RGlyZWN0b3J5PC9jb2RlPiAiL2V4YW1wbGUiIG1hdGNoZXMsIGFuZCBzaW5jZSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfaGVhZGVycy5odG1sIj5tb2RfaGVhZGVyczwvYT48L2NvZGU+IHNwZWNpZmllcyBpbiBpdHMgY29kZSB0byBvdmVycmlkZSBpbiBjYXNlIG9mIGEgbWVyZ2UsIGEgbmV3IGNvbmZpZ3VyYXRpb24gaXMgY3JlYXRlZCB0byBzZXQgdGhlIDxjb2RlPkN1c3RvbUhlYWRlck5hbWU8L2NvZGU+IGhlYWRlciB3aXRoIHRoZSB2YWx1ZSA8Y29kZT50d288L2NvZGU+LjwvbGk+CiAgICAgICAgPGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZpbGVzTWF0Y2g8L2NvZGU+ICIuKiIgbWF0Y2hlcyBhbmQgYW5vdGhlciBtZXJnZSBvcHBvcnR1bml0eSBhcmlzZXMsIGNhdXNpbmcgdGhlIDxjb2RlPkN1c3RvbUhlYWRlck5hbWU8L2NvZGU+IGhlYWRlciB0byBiZSBzZXQgd2l0aCB0aGUgdmFsdWUgPGNvZGU+dGhyZWU8L2NvZGU+LjwvbGk+CiAgICAgICAgPGxpPkV2ZW50dWFsbHkgZHVyaW5nIHRoZSBuZXh0IHN0ZXBzIG9mIHRoZSBIVFRQIHJlcXVlc3QgcHJvY2Vzc2luZyA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfaGVhZGVycy5odG1sIj5tb2RfaGVhZGVyczwvYT48L2NvZGU+IHdpbGwgYmUgY2FsbGVkIGFuZCBpdCB3aWxsIHJlY2VpdmUgdGhlIGNvbmZpZ3VyYXRpb24gdG8gc2V0IHRoZSA8Y29kZT5DdXN0b21IZWFkZXJOYW1lPC9jb2RlPiBoZWFkZXIgd2l0aCB0aGUgdmFsdWUgPGNvZGU+dGhyZWU8L2NvZGU+LiA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfaGVhZGVycy5odG1sIj5tb2RfaGVhZGVyczwvYT48L2NvZGU+IG5vcm1hbGx5IHVzZXMgdGhpcyBjb25maWd1cmF0aW9uIHRvIHBlcmZvbSBpdHMgam9iLCBuYW1lbHkgc2V0dGluZyB0aGUgZm9vIGhlYWRlci4gVGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQgYSBtb2R1bGUgY2FuJ3QgcGVyZm9ybSBhIG1vcmUgY29tcGxleCBhY3Rpb24gbGlrZSBkaXNjYXJkaW5nIGRpcmVjdGl2ZXMgYmVjYXVzZSBub3QgbmVlZGVkIG9yIGRlcHJlY2F0ZWQsIGV0Yy4uPC9saT4KICAgIDwvdWw+CgogICAgPHA+VGhpcyBpcyB0cnVlIGZvciAuaHRhY2Nlc3MgdG9vIHNpbmNlIHRoZXkgaGF2ZSB0aGUgc2FtZSBwcmlvcml0eSBhcyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5EaXJlY3Rvcnk8L2NvZGU+IGluIHRoZSBtZXJnZSBvcmRlci4gVGhlIGltcG9ydGFudCBjb25jZXB0IHRvIHVuZGVyc3RhbmQgaXMgdGhhdCBjb25maWd1cmF0aW9uIHNlY3Rpb25zIGxpa2UgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkRpcmVjdG9yeTwvY29kZT4gYW5kIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkZpbGVzTWF0Y2g8L2NvZGU+IGFyZSBub3QgY29tcGFyYWJsZSB0byBtb2R1bGUgc3BlY2lmaWMgZGlyZWN0aXZlcyBsaWtlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9oZWFkZXJzLmh0bWwjaGVhZGVyIj5IZWFkZXI8L2E+PC9jb2RlPiBvciA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcmV3cml0ZS5odG1sI3Jld3JpdGVydWxlIj5SZXdyaXRlUnVsZTwvYT48L2NvZGU+IGJlY2F1c2UgdGhleSBvcGVyYXRlIG9uIGRpZmZlcmVudCBsZXZlbHMuCiAgICA8L3A+CgoKPGgzPjxhIG5hbWU9Im1lcmdlLWV4YW1wbGVzIiBpZD0ibWVyZ2UtZXhhbXBsZXMiPlNvbWUgdXNlZnVsIGV4YW1wbGVzPC9hPjwvaDM+Cgo8cD5CZWxvdyBpcyBhbiBhcnRpZmljaWFsIGV4YW1wbGUgdG8gc2hvdyB0aGUgb3JkZXIgb2YKbWVyZ2luZy4gQXNzdW1pbmcgdGhleSBhbGwgYXBwbHkgdG8gdGhlIHJlcXVlc3QsIHRoZSBkaXJlY3RpdmVzIGluCnRoaXMgZXhhbXBsZSB3aWxsIGJlIGFwcGxpZWQgaW4gdGhlIG9yZGVyIEEgJmd0OyBCICZndDsgQyAmZ3Q7IEQgJmd0OwpFLjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7TG9jYXRpb24gIi8iJmd0OwogICAgRQombHQ7L0xvY2F0aW9uJmd0OwoKJmx0O0ZpbGVzICJmLmh0bWwiJmd0OwogICAgRAombHQ7L0ZpbGVzJmd0OwoKJmx0O1ZpcnR1YWxIb3N0IComZ3Q7CiZsdDtEaXJlY3RvcnkgIi9hL2VtcGhhc2lzIHJvbGU9ImJvbGQiIiZndDsKICAgIEIKJmx0Oy9EaXJlY3RvcnkmZ3Q7CiZsdDsvVmlydHVhbEhvc3QmZ3Q7CgombHQ7RGlyZWN0b3J5TWF0Y2ggIl4uKmIkIiZndDsKICAgIEMKJmx0Oy9EaXJlY3RvcnlNYXRjaCZndDsKCiZsdDtEaXJlY3RvcnkgIi9hL2ImZ3Q7CiAgICBBCiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCgo8cD5Gb3IgYSBtb3JlIGNvbmNyZXRlIGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcuICBSZWdhcmRsZXNzIG9mCmFueSBhY2Nlc3MgcmVzdHJpY3Rpb25zIHBsYWNlZCBpbiA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IHNlY3Rpb25zLCB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvY2F0aW9uIj4mbHQ7TG9jYXRpb24mZ3Q7PC9hPjwvY29kZT4gc2VjdGlvbiB3aWxsIGJlCmV2YWx1YXRlZCBsYXN0IGFuZCB3aWxsIGFsbG93IHVucmVzdHJpY3RlZCBhY2Nlc3MgdG8gdGhlIHNlcnZlci4gIEluCm90aGVyIHdvcmRzLCBvcmRlciBvZiBtZXJnaW5nIGlzIGltcG9ydGFudCwgc28gYmUgY2FyZWZ1bCE8L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0xvY2F0aW9uICIvIiZndDsKICAgIFJlcXVpcmUgYWxsIGdyYW50ZWQKJmx0Oy9Mb2NhdGlvbiZndDsKCiMgV2hvb3BzISAgVGhpcyAmbHQ7RGlyZWN0b3J5Jmd0OyBzZWN0aW9uIHdpbGwgaGF2ZSBubyBlZmZlY3QKJmx0O0RpcmVjdG9yeSAiLyImZ3Q7CiAgICAmbHQ7UmVxdWlyZUFsbCZndDsKICAgICAgICBSZXF1aXJlIGFsbCBncmFudGVkCiAgICAgICAgUmVxdWlyZSBub3QgaG9zdCBiYWRndXkuZXhhbXBsZS5jb20KICAgICZsdDsvUmVxdWlyZUFsbCZndDsKJmx0Oy9EaXJlY3RvcnkmZ3Q7PC9wcmU+CgoKCgo8L2Rpdj48L2Rpdj4KPGRpdiBjbGFzcz0iYm90dG9tbGFuZyI+CjxwPjxzcGFuPkF2YWlsYWJsZSBMYW5ndWFnZXM6IDwvc3Bhbj48YSBocmVmPSIuL2VuL3NlY3Rpb25zLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2ZyL3NlY3Rpb25zLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9qYS9zZWN0aW9ucy5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4va28vc2VjdGlvbnMuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi90ci9zZWN0aW9ucy5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50czwvYT48L2gyPjxkaXYgY2xhc3M9Indhcm5pbmciPjxzdHJvbmc+Tm90aWNlOjwvc3Ryb25nPjxiciAvPlRoaXMgaXMgbm90IGEgUSZhbXA7QSBzZWN0aW9uLiBDb21tZW50cyBwbGFjZWQgaGVyZSBzaG91bGQgYmUgcG9pbnRlZCB0b3dhcmRzIHN1Z2dlc3Rpb25zIG9uIGltcHJvdmluZyB0aGUgZG9jdW1lbnRhdGlvbiBvciBzZXJ2ZXIsIGFuZCBtYXkgYmUgcmVtb3ZlZCBhZ2FpbiBieSBvdXIgbW9kZXJhdG9ycyBpZiB0aGV5IGFyZSBlaXRoZXIgaW1wbGVtZW50ZWQgb3IgY29uc2lkZXJlZCBpbnZhbGlkL29mZi10b3BpYy4gUXVlc3Rpb25zIG9uIGhvdyB0byBtYW5hZ2UgdGhlIEFwYWNoZSBIVFRQIFNlcnZlciBzaG91bGQgYmUgZGlyZWN0ZWQgYXQgZWl0aGVyIG91ciBJUkMgY2hhbm5lbCwgI2h0dHBkLCBvbiBGcmVlbm9kZSwgb3Igc2VudCB0byBvdXIgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvbGlzdHMuaHRtbCI+bWFpbGluZyBsaXN0czwvYT4uPC9kaXY+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCnZhciBjb21tZW50c19zaG9ydG5hbWUgPSAnaHR0cGQnOwp2YXIgY29tbWVudHNfaWRlbnRpZmllciA9ICdodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzL3RydW5rL3NlY3Rpb25zLmh0bWwnOwooZnVuY3Rpb24odywgZCkgewogICAgaWYgKHcubG9jYXRpb24uaG9zdG5hbWUudG9Mb3dlckNhc2UoKSA9PSAiaHR0cGQuYXBhY2hlLm9yZyIpIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPjxcL2Rpdj4nKTsKICAgICAgICB2YXIgcyA9IGQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICAgICAgcy5hc3luYyA9IHRydWU7CiAgICAgICAgcy5zcmMgPSAnaHR0cHM6Ly9jb21tZW50cy5hcGFjaGUub3JnL3Nob3dfY29tbWVudHMubHVhP3NpdGU9JyArIGNvbW1lbnRzX3Nob3J0bmFtZSArICcmcGFnZT0nICsgY29tbWVudHNfaWRlbnRpZmllcjsKICAgICAgICAoZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2JvZHknKVswXSkuYXBwZW5kQ2hpbGQocyk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBkLndyaXRlKCc8ZGl2IGlkPSJjb21tZW50c190aHJlYWQiPkNvbW1lbnRzIGFyZSBkaXNhYmxlZCBmb3IgdGhpcyBwYWdlIGF0IHRoZSBtb21lbnQuPFwvZGl2PicpOwogICAgfQp9KSh3aW5kb3csIGRvY3VtZW50KTsKLy8tLT48IV1dPjwvc2NyaXB0PjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAyMDE2IFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi48YnIgLz5MaWNlbnNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=