PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPkFwYWNoZSBUdXRvcmlhbDogLmh0YWNjZXNzIGZpbGVzIC0gQXBhY2hlIEhUVFAgU2VydmVyPC90aXRsZT4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KPGxpbmsgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiPjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSIuLi9mYXEvIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+QXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi4yPC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9mZWF0aGVyLmdpZiIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+SFRUUCBTZXJ2ZXI8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi4vIj5WZXJzaW9uIDIuMjwvYT4gJmd0OyA8YSBocmVmPSIuLyI+SG93LVRvIC8gVHV0b3JpYWxzPC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5BcGFjaGUgVHV0b3JpYWw6IC5odGFjY2VzcyBmaWxlczwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vaG93dG8vaHRhY2Nlc3MuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2phL2hvd3RvL2h0YWNjZXNzLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vaG93dG8vaHRhY2Nlc3MuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vcHQtYnIvaG93dG8vaHRhY2Nlc3MuaHRtbCIgaHJlZmxhbmc9InB0LWJyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlBvcnR1Z3XqcyAoQnJhc2lsKSI+Jm5ic3A7cHQtYnImbmJzcDs8L2E+PC9wPgo8L2Rpdj4KCjxwPjxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMgcHJvdmlkZSBhIHdheSB0byBtYWtlIGNvbmZpZ3VyYXRpb24KY2hhbmdlcyBvbiBhIHBlci1kaXJlY3RvcnkgYmFzaXMuPC9wPgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjcmVsYXRlZCI+Lmh0YWNjZXNzIGZpbGVzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3doYXQiPldoYXQgdGhleSBhcmUvSG93IHRvIHVzZSB0aGVtPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3doZW4iPldoZW4gKG5vdCkgdG8gdXNlIC5odGFjY2VzcyBmaWxlczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNob3ciPkhvdyBkaXJlY3RpdmVzIGFyZSBhcHBsaWVkPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGgiPkF1dGhlbnRpY2F0aW9uIGV4YW1wbGU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjc3NpIj5TZXJ2ZXIgU2lkZSBJbmNsdWRlcyBleGFtcGxlPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2NnaSI+Q0dJIGV4YW1wbGU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjdHJvdWJsZXNob290Ij5Ucm91Ymxlc2hvb3Rpbmc8L2E+PC9saT4KPC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0icmVsYXRlZCIgaWQ9InJlbGF0ZWQiPi5odGFjY2VzcyBmaWxlczwvYT48L2gyPgogICAgPHRhYmxlIGNsYXNzPSJyZWxhdGVkIj48dHI+PHRoPlJlbGF0ZWQgTW9kdWxlczwvdGg+PHRoPlJlbGF0ZWQgRGlyZWN0aXZlczwvdGg+PC90cj48dHI+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCI+Y29yZTwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobl9maWxlLmh0bWwiPm1vZF9hdXRobl9maWxlPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGh6X2dyb3VwZmlsZS5odG1sIj5tb2RfYXV0aHpfZ3JvdXBmaWxlPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2NnaS5odG1sIj5tb2RfY2dpPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2luY2x1ZGUuaHRtbCI+bW9kX2luY2x1ZGU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbWltZS5odG1sIj5tb2RfbWltZTwvYT48L2NvZGU+PC9saT48L3VsPjwvdGQ+PHRkPjx1bD48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNhY2Nlc3NmaWxlbmFtZSI+QWNjZXNzRmlsZU5hbWU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjYWxsb3dvdmVycmlkZSI+QWxsb3dPdmVycmlkZTwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNvcHRpb25zIj5PcHRpb25zPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX21pbWUuaHRtbCNhZGRoYW5kbGVyIj5BZGRIYW5kbGVyPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI3NldGhhbmRsZXIiPlNldEhhbmRsZXI8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjYXV0aHR5cGUiPkF1dGhUeXBlPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2F1dGhuYW1lIj5BdXRoTmFtZTwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobl9maWxlLmh0bWwjYXV0aHVzZXJmaWxlIj5BdXRoVXNlckZpbGU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aHpfZ3JvdXBmaWxlLmh0bWwjYXV0aGdyb3VwZmlsZSI+QXV0aEdyb3VwRmlsZTwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNyZXF1aXJlIj5SZXF1aXJlPC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48L3RyPjwvdGFibGU+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9IndoYXQiIGlkPSJ3aGF0Ij5XaGF0IHRoZXkgYXJlL0hvdyB0byB1c2UgdGhlbTwvYT48L2gyPgoKCiAgICA8cD48Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzIChvciAiZGlzdHJpYnV0ZWQgY29uZmlndXJhdGlvbiBmaWxlcyIpCiAgICBwcm92aWRlIGEgd2F5IHRvIG1ha2UgY29uZmlndXJhdGlvbiBjaGFuZ2VzIG9uIGEgcGVyLWRpcmVjdG9yeSBiYXNpcy4gQQogICAgZmlsZSwgY29udGFpbmluZyBvbmUgb3IgbW9yZSBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMsIGlzIHBsYWNlZCBpbiBhCiAgICBwYXJ0aWN1bGFyIGRvY3VtZW50IGRpcmVjdG9yeSwgYW5kIHRoZSBkaXJlY3RpdmVzIGFwcGx5IHRvIHRoYXQKICAgIGRpcmVjdG9yeSwgYW5kIGFsbCBzdWJkaXJlY3RvcmllcyB0aGVyZW9mLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJub3RlIj48aDM+Tm90ZTo8L2gzPgogICAgICA8cD5JZiB5b3Ugd2FudCB0byBjYWxsIHlvdXIgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlIHNvbWV0aGluZwogICAgICBlbHNlLCB5b3UgY2FuIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUgZmlsZSB1c2luZyB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNhY2Nlc3NmaWxlbmFtZSI+QWNjZXNzRmlsZU5hbWU8L2E+PC9jb2RlPiBkaXJlY3RpdmUuIEZvciBleGFtcGxlLAogICAgICBpZiB5b3Ugd291bGQgcmF0aGVyIGNhbGwgdGhlIGZpbGUgPGNvZGU+LmNvbmZpZzwvY29kZT4gdGhlbiB5b3UKICAgICAgY2FuIHB1dCB0aGUgZm9sbG93aW5nIGluIHlvdXIgc2VydmVyIGNvbmZpZ3VyYXRpb24gZmlsZTo8L3A+CgogICAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgICBBY2Nlc3NGaWxlTmFtZSAuY29uZmlnCiAgICAgIDwvY29kZT48L3A+PC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8cD5JbiBnZW5lcmFsLCA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzIHVzZSB0aGUgc2FtZSBzeW50YXggYXMKICAgIHRoZSA8YSBocmVmPSIuLi9jb25maWd1cmluZy5odG1sI3N5bnRheCI+bWFpbiBjb25maWd1cmF0aW9uCiAgICBmaWxlczwvYT4uICBXaGF0IHlvdSBjYW4gcHV0IGluIHRoZXNlIGZpbGVzIGlzIGRldGVybWluZWQgYnkgdGhlCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2FsbG93b3ZlcnJpZGUiPkFsbG93T3ZlcnJpZGU8L2E+PC9jb2RlPiBkaXJlY3RpdmUuIFRoaXMKICAgIGRpcmVjdGl2ZSBzcGVjaWZpZXMsIGluIGNhdGVnb3JpZXMsIHdoYXQgZGlyZWN0aXZlcyB3aWxsIGJlCiAgICBob25vcmVkIGlmIHRoZXkgYXJlIGZvdW5kIGluIGEgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlLiBJZiBhCiAgICBkaXJlY3RpdmUgaXMgcGVybWl0dGVkIGluIGEgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlLCB0aGUKICAgIGRvY3VtZW50YXRpb24gZm9yIHRoYXQgZGlyZWN0aXZlIHdpbGwgY29udGFpbiBhbiBPdmVycmlkZSBzZWN0aW9uLAogICAgc3BlY2lmeWluZyB3aGF0IHZhbHVlIG11c3QgYmUgaW4gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNhbGxvd292ZXJyaWRlIj5BbGxvd092ZXJyaWRlPC9hPjwvY29kZT4gaW4gb3JkZXIgZm9yIHRoYXQKICAgIGRpcmVjdGl2ZSB0byBiZSBwZXJtaXR0ZWQuPC9wPgoKICAgIDxwPkZvciBleGFtcGxlLCBpZiB5b3UgbG9vayBhdCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjYWRkZGVmYXVsdGNoYXJzZXQiPkFkZERlZmF1bHRDaGFyc2V0PC9hPjwvY29kZT4KICAgIGRpcmVjdGl2ZSwgeW91IHdpbGwgZmluZCB0aGF0IGl0IGlzIHBlcm1pdHRlZCBpbiA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+CiAgICBmaWxlcy4gKFNlZSB0aGUgQ29udGV4dCBsaW5lIGluIHRoZSBkaXJlY3RpdmUgc3VtbWFyeS4pIFRoZSA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5PdmVycmlkZTwvYT4gbGluZSByZWFkcwogICAgPGNvZGU+RmlsZUluZm88L2NvZGU+LiBUaHVzLCB5b3UgbXVzdCBoYXZlIGF0IGxlYXN0CiAgICA8Y29kZT5BbGxvd092ZXJyaWRlIEZpbGVJbmZvPC9jb2RlPiBpbiBvcmRlciBmb3IgdGhpcyBkaXJlY3RpdmUgdG8gYmUKICAgIGhvbm9yZWQgaW4gPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlcy48L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PGgzPkV4YW1wbGU6PC9oMz48dGFibGU+CiAgICAgICAgPHRyPgogICAgICAgICAgPHRkPjxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGQ+CiAgICAgICAgICA8dGQ+c2VydmVyIGNvbmZpZywgdmlydHVhbCBob3N0LCBkaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+CiAgICAgICAgPC90cj4KCiAgICAgICAgPHRyPgogICAgICAgICAgPHRkPjxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90ZD4KICAgICAgICAgIDx0ZD5GaWxlSW5mbzwvdGQ+CiAgICAgICAgPC90cj4KICAgICAgPC90YWJsZT48L2Rpdj4KCiAgICA8cD5JZiB5b3UgYXJlIHVuc3VyZSB3aGV0aGVyIGEgcGFydGljdWxhciBkaXJlY3RpdmUgaXMgcGVybWl0dGVkIGluIGEKICAgIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZSwgbG9vayBhdCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhhdAogICAgZGlyZWN0aXZlLCBhbmQgY2hlY2sgdGhlIENvbnRleHQgbGluZSBmb3IgIi5odGFjY2VzcyIuPC9wPgogICAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0id2hlbiIgaWQ9IndoZW4iPldoZW4gKG5vdCkgdG8gdXNlIC5odGFjY2VzcyBmaWxlczwvYT48L2gyPgoKICAgIDxwPkluIGdlbmVyYWwsIHlvdSBzaG91bGQgbmV2ZXIgdXNlIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMgdW5sZXNzCiAgICB5b3UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIG1haW4gc2VydmVyIGNvbmZpZ3VyYXRpb24gZmlsZS4gVGhlcmUgaXMsCiAgICBmb3IgZXhhbXBsZSwgYSBwcmV2YWlsaW5nIG1pc2NvbmNlcHRpb24gdGhhdCB1c2VyIGF1dGhlbnRpY2F0aW9uIHNob3VsZAogICAgYWx3YXlzIGJlIGRvbmUgaW4gPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlcy4gVGhpcyBpcyBzaW1wbHkgbm90IHRoZQogICAgY2FzZS4gWW91IGNhbiBwdXQgdXNlciBhdXRoZW50aWNhdGlvbiBjb25maWd1cmF0aW9ucyBpbiB0aGUgbWFpbiBzZXJ2ZXIKICAgIGNvbmZpZ3VyYXRpb24sIGFuZCB0aGlzIGlzLCBpbiBmYWN0LCB0aGUgcHJlZmVycmVkIHdheSB0byBkbwogICAgdGhpbmdzLjwvcD4KCiAgICA8cD48Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzIHNob3VsZCBiZSB1c2VkIGluIGEgY2FzZSB3aGVyZSB0aGUKICAgIGNvbnRlbnQgcHJvdmlkZXJzIG5lZWQgdG8gbWFrZSBjb25maWd1cmF0aW9uIGNoYW5nZXMgdG8gdGhlIHNlcnZlciBvbiBhCiAgICBwZXItZGlyZWN0b3J5IGJhc2lzLCBidXQgZG8gbm90IGhhdmUgcm9vdCBhY2Nlc3Mgb24gdGhlIHNlcnZlciBzeXN0ZW0uCiAgICBJbiB0aGUgZXZlbnQgdGhhdCB0aGUgc2VydmVyIGFkbWluaXN0cmF0b3IgaXMgbm90IHdpbGxpbmcgdG8gbWFrZQogICAgZnJlcXVlbnQgY29uZmlndXJhdGlvbiBjaGFuZ2VzLCBpdCBtaWdodCBiZSBkZXNpcmFibGUgdG8gcGVybWl0CiAgICBpbmRpdmlkdWFsIHVzZXJzIHRvIG1ha2UgdGhlc2UgY2hhbmdlcyBpbiA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzCiAgICBmb3IgdGhlbXNlbHZlcy4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgdHJ1ZSwgZm9yIGV4YW1wbGUsIGluIGNhc2VzIHdoZXJlCiAgICBJU1BzIGFyZSBob3N0aW5nIG11bHRpcGxlIHVzZXIgc2l0ZXMgb24gYSBzaW5nbGUgbWFjaGluZSwgYW5kIHdhbnQKICAgIHRoZWlyIHVzZXJzIHRvIGJlIGFibGUgdG8gYWx0ZXIgdGhlaXIgY29uZmlndXJhdGlvbi48L3A+CgogICAgPHA+SG93ZXZlciwgaW4gZ2VuZXJhbCwgdXNlIG9mIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMgc2hvdWxkIGJlCiAgICBhdm9pZGVkIHdoZW4gcG9zc2libGUuIEFueSBjb25maWd1cmF0aW9uIHRoYXQgeW91IHdvdWxkIGNvbnNpZGVyCiAgICBwdXR0aW5nIGluIGEgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlLCBjYW4ganVzdCBhcyBlZmZlY3RpdmVseSBiZQogICAgbWFkZSBpbiBhIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IHNlY3Rpb24gaW4geW91ciBtYWluIHNlcnZlciAKICAgIGNvbmZpZ3VyYXRpb24gZmlsZS48L3A+CgogICAgPHA+VGhlcmUgYXJlIHR3byBtYWluIHJlYXNvbnMgdG8gYXZvaWQgdGhlIHVzZSBvZgogICAgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlcy48L3A+CgogICAgPHA+VGhlIGZpcnN0IG9mIHRoZXNlIGlzIHBlcmZvcm1hbmNlLiBXaGVuIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjYWxsb3dvdmVycmlkZSI+QWxsb3dPdmVycmlkZTwvYT48L2NvZGU+CiAgICBpcyBzZXQgdG8gYWxsb3cgdGhlIHVzZSBvZiA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzLCBBcGFjaGUgd2lsbAogICAgbG9vayBpbiBldmVyeSBkaXJlY3RvcnkgZm9yIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMuIFRodXMsCiAgICBwZXJtaXR0aW5nIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMgY2F1c2VzIGEgcGVyZm9ybWFuY2UgaGl0LAogICAgd2hldGhlciBvciBub3QgeW91IGFjdHVhbGx5IGV2ZW4gdXNlIHRoZW0hIEFsc28sIHRoZQogICAgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlIGlzIGxvYWRlZCBldmVyeSB0aW1lIGEgZG9jdW1lbnQgaXMKICAgIHJlcXVlc3RlZC48L3A+CgogICAgPHA+RnVydGhlciBub3RlIHRoYXQgQXBhY2hlIG11c3QgbG9vayBmb3IgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlcwogICAgaW4gYWxsIGhpZ2hlci1sZXZlbCBkaXJlY3RvcmllcywgaW4gb3JkZXIgdG8gaGF2ZSBhIGZ1bGwgY29tcGxlbWVudCBvZgogICAgZGlyZWN0aXZlcyB0aGF0IGl0IG11c3QgYXBwbHkuIChTZWUgc2VjdGlvbiBvbiA8YSBocmVmPSIjaG93Ij5ob3cKICAgIGRpcmVjdGl2ZXMgYXJlIGFwcGxpZWQ8L2E+LikgVGh1cywgaWYgYSBmaWxlIGlzIHJlcXVlc3RlZCBvdXQgb2YgYQogICAgZGlyZWN0b3J5IDxjb2RlPi93d3cvaHRkb2NzL2V4YW1wbGU8L2NvZGU+LCBBcGFjaGUgbXVzdCBsb29rIGZvciB0aGUKICAgIGZvbGxvd2luZyBmaWxlczo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgIC8uaHRhY2Nlc3M8YnIgLz4KICAgICAgL3d3dy8uaHRhY2Nlc3M8YnIgLz4KICAgICAgL3d3dy9odGRvY3MvLmh0YWNjZXNzPGJyIC8+CiAgICAgIC93d3cvaHRkb2NzL2V4YW1wbGUvLmh0YWNjZXNzCiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPkFuZCBzbywgZm9yIGVhY2ggZmlsZSBhY2Nlc3Mgb3V0IG9mIHRoYXQgZGlyZWN0b3J5LCB0aGVyZSBhcmUgNAogICAgYWRkaXRpb25hbCBmaWxlLXN5c3RlbSBhY2Nlc3NlcywgZXZlbiBpZiBub25lIG9mIHRob3NlIGZpbGVzIGFyZQogICAgcHJlc2VudC4gKE5vdGUgdGhhdCB0aGlzIHdvdWxkIG9ubHkgYmUgdGhlIGNhc2UgaWYKICAgIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMgd2VyZSBlbmFibGVkIGZvciA8Y29kZT4vPC9jb2RlPiwgd2hpY2gKICAgIGlzIG5vdCB1c3VhbGx5IHRoZSBjYXNlLik8L3A+CgogICAgPHA+VGhlIHNlY29uZCBjb25zaWRlcmF0aW9uIGlzIG9uZSBvZiBzZWN1cml0eS4gWW91IGFyZSBwZXJtaXR0aW5nCiAgICB1c2VycyB0byBtb2RpZnkgc2VydmVyIGNvbmZpZ3VyYXRpb24sIHdoaWNoIG1heSByZXN1bHQgaW4gY2hhbmdlcyBvdmVyCiAgICB3aGljaCB5b3UgaGF2ZSBubyBjb250cm9sLiBDYXJlZnVsbHkgY29uc2lkZXIgd2hldGhlciB5b3Ugd2FudCB0byBnaXZlCiAgICB5b3VyIHVzZXJzIHRoaXMgcHJpdmlsZWdlLiBOb3RlIGFsc28gdGhhdCBnaXZpbmcgdXNlcnMgbGVzcwogICAgcHJpdmlsZWdlcyB0aGFuIHRoZXkgbmVlZCB3aWxsIGxlYWQgdG8gYWRkaXRpb25hbCB0ZWNobmljYWwgc3VwcG9ydAogICAgcmVxdWVzdHMuIE1ha2Ugc3VyZSB5b3UgY2xlYXJseSB0ZWxsIHlvdXIgdXNlcnMgd2hhdCBsZXZlbCBvZgogICAgcHJpdmlsZWdlcyB5b3UgaGF2ZSBnaXZlbiB0aGVtLiBTcGVjaWZ5aW5nIGV4YWN0bHkgd2hhdCB5b3UgaGF2ZSBzZXQKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjYWxsb3dvdmVycmlkZSI+QWxsb3dPdmVycmlkZTwvYT48L2NvZGU+IHRvLCBhbmQgcG9pbnRpbmcgdGhlbQogICAgdG8gdGhlIHJlbGV2YW50IGRvY3VtZW50YXRpb24sIHdpbGwgc2F2ZSB5b3Vyc2VsZiBhIGxvdCBvZiBjb25mdXNpb24KICAgIGxhdGVyLjwvcD4KCiAgICA8cD5Ob3RlIHRoYXQgaXQgaXMgY29tcGxldGVseSBlcXVpdmFsZW50IHRvIHB1dCBhIDxjb2RlPi5odGFjY2VzczwvY29kZT4KICAgIGZpbGUgaW4gYSBkaXJlY3RvcnkgPGNvZGU+L3d3dy9odGRvY3MvZXhhbXBsZTwvY29kZT4gY29udGFpbmluZyBhCiAgICBkaXJlY3RpdmUsIGFuZCB0byBwdXQgdGhhdCBzYW1lIGRpcmVjdGl2ZSBpbiBhIERpcmVjdG9yeSBzZWN0aW9uCiAgICA8Y29kZT4mbHQ7RGlyZWN0b3J5IC93d3cvaHRkb2NzL2V4YW1wbGUmZ3Q7PC9jb2RlPiBpbiB5b3VyIG1haW4gc2VydmVyCiAgICBjb25maWd1cmF0aW9uOjwvcD4KCiAgICA8cD48Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGUgaW4gPGNvZGU+L3d3dy9odGRvY3MvZXhhbXBsZTwvY29kZT46PC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxoMz5Db250ZW50cyBvZiAuaHRhY2Nlc3MgZmlsZSBpbgogICAgPGNvZGU+L3d3dy9odGRvY3MvZXhhbXBsZTwvY29kZT48L2gzPjxwPjxjb2RlPgogICAgICAgIEFkZFR5cGUgdGV4dC9leGFtcGxlIC5leG0KICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PGgzPlNlY3Rpb24gZnJvbSB5b3VyIDxjb2RlPmh0dHBkLmNvbmY8L2NvZGU+CiAgICBmaWxlPC9oMz48cD48Y29kZT4KICAgICAgJmx0O0RpcmVjdG9yeSAvd3d3L2h0ZG9jcy9leGFtcGxlJmd0OzxiciAvPgogICAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICBBZGRUeXBlIHRleHQvZXhhbXBsZSAuZXhtPGJyIC8+CiAgICAgIDwvc3Bhbj4KICAgICAgJmx0Oy9EaXJlY3RvcnkmZ3Q7CiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPkhvd2V2ZXIsIHB1dHRpbmcgdGhpcyBjb25maWd1cmF0aW9uIGluIHlvdXIgc2VydmVyIGNvbmZpZ3VyYXRpb24KICAgIGZpbGUgd2lsbCByZXN1bHQgaW4gbGVzcyBvZiBhIHBlcmZvcm1hbmNlIGhpdCwgYXMgdGhlIGNvbmZpZ3VyYXRpb24gaXMKICAgIGxvYWRlZCBvbmNlIHdoZW4gQXBhY2hlIHN0YXJ0cywgcmF0aGVyIHRoYW4gZXZlcnkgdGltZSBhIGZpbGUgaXMKICAgIHJlcXVlc3RlZC48L3A+CgogICAgPHA+VGhlIHVzZSBvZiA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzIGNhbiBiZSBkaXNhYmxlZCBjb21wbGV0ZWx5CiAgICBieSBzZXR0aW5nIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2FsbG93b3ZlcnJpZGUiPkFsbG93T3ZlcnJpZGU8L2E+PC9jb2RlPgogICAgZGlyZWN0aXZlIHRvIDxjb2RlPm5vbmU8L2NvZGU+OjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgQWxsb3dPdmVycmlkZSBOb25lCiAgICA8L2NvZGU+PC9wPjwvZGl2Pgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJob3ciIGlkPSJob3ciPkhvdyBkaXJlY3RpdmVzIGFyZSBhcHBsaWVkPC9hPjwvaDI+CgogICAgPHA+VGhlIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBmb3VuZCBpbiBhIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZQogICAgYXJlIGFwcGxpZWQgdG8gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB0aGUgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlCiAgICBpcyBmb3VuZCwgYW5kIHRvIGFsbCBzdWJkaXJlY3RvcmllcyB0aGVyZW9mLiBIb3dldmVyLCBpdCBpcyBpbXBvcnRhbnQKICAgIHRvIGFsc28gcmVtZW1iZXIgdGhhdCB0aGVyZSBtYXkgaGF2ZSBiZWVuIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMKICAgIGluIGRpcmVjdG9yaWVzIGhpZ2hlciB1cC4gRGlyZWN0aXZlcyBhcmUgYXBwbGllZCBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5CiAgICBhcmUgZm91bmQuIFRoZXJlZm9yZSwgYSA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGUgaW4gYSBwYXJ0aWN1bGFyCiAgICBkaXJlY3RvcnkgbWF5IG92ZXJyaWRlIGRpcmVjdGl2ZXMgZm91bmQgaW4gPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlcwogICAgZm91bmQgaGlnaGVyIHVwIGluIHRoZSBkaXJlY3RvcnkgdHJlZS4gQW5kIHRob3NlLCBpbiB0dXJuLCBtYXkgaGF2ZQogICAgb3ZlcnJpZGRlbiBkaXJlY3RpdmVzIGZvdW5kIHlldCBoaWdoZXIgdXAsIG9yIGluIHRoZSBtYWluIHNlcnZlcgogICAgY29uZmlndXJhdGlvbiBmaWxlIGl0c2VsZi48L3A+CgogICAgPHA+RXhhbXBsZTo8L3A+CgogICAgPHA+SW4gdGhlIGRpcmVjdG9yeSA8Y29kZT4vd3d3L2h0ZG9jcy9leGFtcGxlMTwvY29kZT4gd2UgaGF2ZSBhCiAgICA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGUgY29udGFpbmluZyB0aGUgZm9sbG93aW5nOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgIE9wdGlvbnMgK0V4ZWNDR0kKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+KE5vdGU6IHlvdSBtdXN0IGhhdmUgIjxjb2RlPkFsbG93T3ZlcnJpZGUgT3B0aW9uczwvY29kZT4iIGluIGVmZmVjdAogICAgdG8gcGVybWl0IHRoZSB1c2Ugb2YgdGhlICI8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI29wdGlvbnMiPk9wdGlvbnM8L2E+PC9jb2RlPiIgZGlyZWN0aXZlIGluCiAgICA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzLik8L3A+CgogICAgPHA+SW4gdGhlIGRpcmVjdG9yeSA8Y29kZT4vd3d3L2h0ZG9jcy9leGFtcGxlMS9leGFtcGxlMjwvY29kZT4gd2UgaGF2ZQogICAgYSA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGUgY29udGFpbmluZzo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICBPcHRpb25zIEluY2x1ZGVzCiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPkJlY2F1c2Ugb2YgdGhpcyBzZWNvbmQgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlLCBpbiB0aGUgZGlyZWN0b3J5CiAgICA8Y29kZT4vd3d3L2h0ZG9jcy9leGFtcGxlMS9leGFtcGxlMjwvY29kZT4sIENHSSBleGVjdXRpb24gaXMgbm90CiAgICBwZXJtaXR0ZWQsIGFzIG9ubHkgPGNvZGU+T3B0aW9ucyBJbmNsdWRlczwvY29kZT4gaXMgaW4gZWZmZWN0LCB3aGljaAogICAgY29tcGxldGVseSBvdmVycmlkZXMgYW55IGVhcmxpZXIgc2V0dGluZyB0aGF0IG1heSBoYXZlIGJlZW4gaW4KICAgIHBsYWNlLjwvcD4KCiAgICA8aDM+PGEgbmFtZT0ibWVyZ2UiIGlkPSJtZXJnZSI+TWVyZ2luZyBvZiAuaHRhY2Nlc3Mgd2l0aCB0aGUgbWFpbgogICAgY29uZmlndXJhdGlvbiBmaWxlczwvYT48L2gzPgoKICAgIDxwPkFzIGRpc2N1c3NlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvbiA8YSBocmVmPSIuLi9zZWN0aW9ucy5odG1sIj5Db25maWd1cmF0aW9uIFNlY3Rpb25zPC9hPiwKICAgIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMgY2FuIG92ZXJyaWRlIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiBzZWN0aW9ucyBmb3IKICAgIHRoZSBjb3JyZXNwb25kaW5nIGRpcmVjdG9yeSwgYnV0IHdpbGwgYmUgb3ZlcnJpZGVuIGJ5IG90aGVyIHR5cGVzCiAgICBvZiBjb25maWd1cmF0aW9uIHNlY3Rpb25zIGZyb20gdGhlIG1haW4gY29uZmlndXJhdGlvbiBmaWxlcy4gIFRoaXMKICAgIGZhY3QgY2FuIGJlIHVzZWQgdG8gZW5mb3JjZSBjZXJ0YWluIGNvbmZpZ3VyYXRpb25zLCBldmVuIGluIHRoZQogICAgcHJlc2VuY2Ugb2YgYSBsaWJlcmFsIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjYWxsb3dvdmVycmlkZSI+QWxsb3dPdmVycmlkZTwvYT48L2NvZGU+IHNldHRpbmcuICBGb3IgZXhhbXBsZSwgdG8KICAgIHByZXZlbnQgc2NyaXB0IGV4ZWN1dGlvbiB3aGlsZSBhbGxvd2luZyBhbnl0aGluZyBlbHNlIHRvIGJlIHNldCBpbgogICAgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiB5b3UgY2FuIHVzZTo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiZsdDtEaXJlY3RvcnkgLyZndDs8YnIgLz4KPHNwYW4gY2xhc3M9ImluZGVudCI+CkFsbG93b3ZlcnJpZGUgQWxsPGJyIC8+Cjwvc3Bhbj4KJmx0Oy9EaXJlY3RvcnkmZ3Q7PGJyIC8+CjxiciAvPgombHQ7TG9jYXRpb24gLyZndDs8YnIgLz4KPHNwYW4gY2xhc3M9ImluZGVudCI+Ck9wdGlvbnMgK0luY2x1ZGVzTm9FeGVjIC1FeGVjQ0dJPGJyIC8+Cjwvc3Bhbj4KJmx0Oy9Mb2NhdGlvbiZndDsKICAgIDwvY29kZT48L3A+PC9kaXY+CgoKPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iYXV0aCIgaWQ9ImF1dGgiPkF1dGhlbnRpY2F0aW9uIGV4YW1wbGU8L2E+PC9oMj4KCiAgICA8cD5JZiB5b3UganVtcGVkIGRpcmVjdGx5IHRvIHRoaXMgcGFydCBvZiB0aGUgZG9jdW1lbnQgdG8gZmluZCBvdXQgaG93CiAgICB0byBkbyBhdXRoZW50aWNhdGlvbiwgaXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgb25lIHRoaW5nLiBUaGVyZSBpcyBhCiAgICBjb21tb24gbWlzY29uY2VwdGlvbiB0aGF0IHlvdSBhcmUgcmVxdWlyZWQgdG8gdXNlCiAgICA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzIGluIG9yZGVyIHRvIGltcGxlbWVudCBwYXNzd29yZAogICAgYXV0aGVudGljYXRpb24uIFRoaXMgaXMgbm90IHRoZSBjYXNlLiBQdXR0aW5nIGF1dGhlbnRpY2F0aW9uIGRpcmVjdGl2ZXMKICAgIGluIGEgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4KICAgIHNlY3Rpb24sIGluIHlvdXIgbWFpbiBzZXJ2ZXIgY29uZmlndXJhdGlvbiBmaWxlLCBpcyB0aGUgcHJlZmVycmVkIHdheQogICAgdG8gaW1wbGVtZW50IHRoaXMsIGFuZCA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzIHNob3VsZCBiZSB1c2VkIG9ubHkKICAgIGlmIHlvdSBkb24ndCBoYXZlIGFjY2VzcyB0byB0aGUgbWFpbiBzZXJ2ZXIgY29uZmlndXJhdGlvbiBmaWxlLiBTZWUgPGEgaHJlZj0iI3doZW4iPmFib3ZlPC9hPiBmb3IgYSBkaXNjdXNzaW9uIG9mIHdoZW4geW91IHNob3VsZCBhbmQgc2hvdWxkCiAgICBub3QgdXNlIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMuPC9wPgoKICAgIDxwPkhhdmluZyBzYWlkIHRoYXQsIGlmIHlvdSBzdGlsbCB0aGluayB5b3UgbmVlZCB0byB1c2UgYQogICAgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlLCB5b3UgbWF5IGZpbmQgdGhhdCBhIGNvbmZpZ3VyYXRpb24gc3VjaCBhcwogICAgd2hhdCBmb2xsb3dzIG1heSB3b3JrIGZvciB5b3UuPC9wPgoKICAgIDxwPjxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZSBjb250ZW50czo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgIEF1dGhUeXBlIEJhc2ljPGJyIC8+CiAgICAgIEF1dGhOYW1lICJQYXNzd29yZCBSZXF1aXJlZCI8YnIgLz4KICAgICAgQXV0aFVzZXJGaWxlIC93d3cvcGFzc3dvcmRzL3Bhc3N3b3JkLmZpbGU8YnIgLz4KICAgICAgQXV0aEdyb3VwRmlsZSAvd3d3L3Bhc3N3b3Jkcy9ncm91cC5maWxlPGJyIC8+CiAgICAgIFJlcXVpcmUgR3JvdXAgYWRtaW5zCiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPk5vdGUgdGhhdCA8Y29kZT5BbGxvd092ZXJyaWRlIEF1dGhDb25maWc8L2NvZGU+IG11c3QgYmUgaW4gZWZmZWN0CiAgICBmb3IgdGhlc2UgZGlyZWN0aXZlcyB0byBoYXZlIGFueSBlZmZlY3QuPC9wPgoKICAgIDxwPlBsZWFzZSBzZWUgdGhlIDxhIGhyZWY9ImF1dGguaHRtbCI+YXV0aGVudGljYXRpb24gdHV0b3JpYWw8L2E+IGZvciBhCiAgICBtb3JlIGNvbXBsZXRlIGRpc2N1c3Npb24gb2YgYXV0aGVudGljYXRpb24gYW5kIGF1dGhvcml6YXRpb24uPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzc2kiIGlkPSJzc2kiPlNlcnZlciBTaWRlIEluY2x1ZGVzIGV4YW1wbGU8L2E+PC9oMj4KCiAgICA8cD5Bbm90aGVyIGNvbW1vbiB1c2Ugb2YgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlcyBpcyB0byBlbmFibGUKICAgIFNlcnZlciBTaWRlIEluY2x1ZGVzIGZvciBhIHBhcnRpY3VsYXIgZGlyZWN0b3J5LiBUaGlzIG1heSBiZSBkb25lIHdpdGgKICAgIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzLCBwbGFjZWQgaW4gYQogICAgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlIGluIHRoZSBkZXNpcmVkIGRpcmVjdG9yeTo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICBPcHRpb25zICtJbmNsdWRlczxiciAvPgogICAgICAgQWRkVHlwZSB0ZXh0L2h0bWwgc2h0bWw8YnIgLz4KICAgICAgIEFkZEhhbmRsZXIgc2VydmVyLXBhcnNlZCBzaHRtbAogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5Ob3RlIHRoYXQgPGNvZGU+QWxsb3dPdmVycmlkZSBPcHRpb25zPC9jb2RlPiBhbmQgPGNvZGU+QWxsb3dPdmVycmlkZQogICAgRmlsZUluZm88L2NvZGU+IG11c3QgYm90aCBiZSBpbiBlZmZlY3QgZm9yIHRoZXNlIGRpcmVjdGl2ZXMgdG8gaGF2ZSBhbnkKICAgIGVmZmVjdC48L3A+CgogICAgPHA+UGxlYXNlIHNlZSB0aGUgPGEgaHJlZj0ic3NpLmh0bWwiPlNTSSB0dXRvcmlhbDwvYT4gZm9yIGEgbW9yZQogICAgY29tcGxldGUgZGlzY3Vzc2lvbiBvZiBzZXJ2ZXItc2lkZSBpbmNsdWRlcy48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImNnaSIgaWQ9ImNnaSI+Q0dJIGV4YW1wbGU8L2E+PC9oMj4KCiAgICA8cD5GaW5hbGx5LCB5b3UgbWF5IHdpc2ggdG8gdXNlIGEgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlIHRvIHBlcm1pdAogICAgdGhlIGV4ZWN1dGlvbiBvZiBDR0kgcHJvZ3JhbXMgaW4gYSBwYXJ0aWN1bGFyIGRpcmVjdG9yeS4gVGhpcyBtYXkgYmUKICAgIGltcGxlbWVudGVkIHdpdGggdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uOjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgIE9wdGlvbnMgK0V4ZWNDR0k8YnIgLz4KICAgICAgIEFkZEhhbmRsZXIgY2dpLXNjcmlwdCBjZ2kgcGwKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+QWx0ZXJuYXRlbHksIGlmIHlvdSB3aXNoIHRvIGhhdmUgYWxsIGZpbGVzIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkgYmUKICAgIGNvbnNpZGVyZWQgdG8gYmUgQ0dJIHByb2dyYW1zLCB0aGlzIG1heSBiZSBkb25lIHdpdGggdGhlIGZvbGxvd2luZwogICAgY29uZmlndXJhdGlvbjo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgICBPcHRpb25zICtFeGVjQ0dJPGJyIC8+CiAgICAgICBTZXRIYW5kbGVyIGNnaS1zY3JpcHQKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+Tm90ZSB0aGF0IDxjb2RlPkFsbG93T3ZlcnJpZGUgT3B0aW9uczwvY29kZT4gYW5kIDxjb2RlPkFsbG93T3ZlcnJpZGUKICAgIEZpbGVJbmZvPC9jb2RlPiBtdXN0IGJvdGggYmUgaW4gZWZmZWN0IGZvciB0aGVzZSBkaXJlY3RpdmVzIHRvIGhhdmUgYW55CiAgICBlZmZlY3QuPC9wPgoKICAgIDxwPlBsZWFzZSBzZWUgdGhlIDxhIGhyZWY9ImNnaS5odG1sIj5DR0kgdHV0b3JpYWw8L2E+IGZvciBhIG1vcmUKICAgIGNvbXBsZXRlIGRpc2N1c3Npb24gb2YgQ0dJIHByb2dyYW1taW5nIGFuZCBjb25maWd1cmF0aW9uLjwvcD4KCjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InRyb3VibGVzaG9vdCIgaWQ9InRyb3VibGVzaG9vdCI+VHJvdWJsZXNob290aW5nPC9hPjwvaDI+CgogICAgPHA+V2hlbiB5b3UgcHV0IGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBpbiBhIDxjb2RlPi5odGFjY2VzczwvY29kZT4KICAgIGZpbGUsIGFuZCB5b3UgZG9uJ3QgZ2V0IHRoZSBkZXNpcmVkIGVmZmVjdCwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mCiAgICB0aGluZ3MgdGhhdCBtYXkgYmUgZ29pbmcgd3JvbmcuPC9wPgoKICAgIDxwPk1vc3QgY29tbW9ubHksIHRoZSBwcm9ibGVtIGlzIHRoYXQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNhbGxvd292ZXJyaWRlIj5BbGxvd092ZXJyaWRlPC9hPjwvY29kZT4gaXMgbm90CiAgICBzZXQgc3VjaCB0aGF0IHlvdXIgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIGFyZSBiZWluZyBob25vcmVkLiBNYWtlCiAgICBzdXJlIHRoYXQgeW91IGRvbid0IGhhdmUgYSA8Y29kZT5BbGxvd092ZXJyaWRlIE5vbmU8L2NvZGU+IGluIGVmZmVjdAogICAgZm9yIHRoZSBmaWxlIHNjb3BlIGluIHF1ZXN0aW9uLiBBIGdvb2QgdGVzdCBmb3IgdGhpcyBpcyB0byBwdXQgZ2FyYmFnZQogICAgaW4geW91ciA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGUgYW5kIHJlbG9hZC4gSWYgYSBzZXJ2ZXIgZXJyb3IgaXMKICAgIG5vdCBnZW5lcmF0ZWQsIHRoZW4geW91IGFsbW9zdCBjZXJ0YWlubHkgaGF2ZSA8Y29kZT5BbGxvd092ZXJyaWRlCiAgICBOb25lPC9jb2RlPiBpbiBlZmZlY3QuPC9wPgoKICAgIDxwPklmLCBvbiB0aGUgb3RoZXIgaGFuZCwgeW91IGFyZSBnZXR0aW5nIHNlcnZlciBlcnJvcnMgd2hlbiB0cnlpbmcgdG8KICAgIGFjY2VzcyBkb2N1bWVudHMsIGNoZWNrIHlvdXIgQXBhY2hlIGVycm9yIGxvZy4gSXQgd2lsbCBsaWtlbHkgdGVsbCB5b3UKICAgIHRoYXQgdGhlIGRpcmVjdGl2ZSB1c2VkIGluIHlvdXIgPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlIGlzIG5vdAogICAgcGVybWl0dGVkLiBBbHRlcm5hdGVseSwgaXQgbWF5IHRlbGwgeW91IHRoYXQgeW91IGhhZCBhIHN5bnRheCBlcnJvciwKICAgIHdoaWNoIHlvdSB3aWxsIHRoZW4gbmVlZCB0byBmaXguPC9wPgoKPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vaG93dG8vaHRhY2Nlc3MuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2phL2hvd3RvL2h0YWNjZXNzLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vaG93dG8vaHRhY2Nlc3MuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vcHQtYnIvaG93dG8vaHRhY2Nlc3MuaHRtbCIgaHJlZmxhbmc9InB0LWJyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlBvcnR1Z3XqcyAoQnJhc2lsKSI+Jm5ic3A7cHQtYnImbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAwOSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuLi9tb2QvIj5Nb2R1bGVzPC9hPiB8IDxhIGhyZWY9Ii4uL21vZC9kaXJlY3RpdmVzLmh0bWwiPkRpcmVjdGl2ZXM8L2E+IHwgPGEgaHJlZj0iLi4vZmFxLyI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYXJ5PC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+PC9kaXY+CjwvYm9keT48L2h0bWw+