PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPlZpcnR1YWxIb3N0IEV4YW1wbGVzIC0gQXBhY2hlIEhUVFAgU2VydmVyPC90aXRsZT4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz4KPGxpbmsgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiPjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSIuLi9mYXEvIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+QXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi4zPC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9mZWF0aGVyLmdpZiIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+SFRUUCBTZXJ2ZXI8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy1wcm9qZWN0LyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLi8iPlZlcnNpb24gMi4zPC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5WaXJ0dWFsIEhvc3RzPC9hPjwvZGl2PjxkaXYgaWQ9InBhZ2UtY29udGVudCI+PGRpdiBpZD0icHJlYW1ibGUiPjxoMT5WaXJ0dWFsSG9zdCBFeGFtcGxlczwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vdmhvc3RzL2V4YW1wbGVzLmh0bWwiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9mci92aG9zdHMvZXhhbXBsZXMuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9qYS92aG9zdHMvZXhhbXBsZXMuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9rby92aG9zdHMvZXhhbXBsZXMuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+PC9wPgo8L2Rpdj4KCgogICAgPHA+VGhpcyBkb2N1bWVudCBhdHRlbXB0cyB0byBhbnN3ZXIgdGhlIGNvbW1vbmx5LWFza2VkIHF1ZXN0aW9ucyBhYm91dAogICAgc2V0dGluZyB1cCB2aXJ0dWFsIGhvc3RzLiBUaGVzZSBzY2VuYXJpb3MgYXJlIHRob3NlIGludm9sdmluZyBtdWx0aXBsZQogICAgd2ViIHNpdGVzIHJ1bm5pbmcgb24gYSBzaW5nbGUgc2VydmVyLCB2aWEgPGEgaHJlZj0ibmFtZS1iYXNlZC5odG1sIj5uYW1lLWJhc2VkPC9hPiBvciA8YSBocmVmPSJpcC1iYXNlZC5odG1sIj5JUC1iYXNlZDwvYT4gdmlydHVhbCBob3N0cy4KICAgIDwvcD4KCjwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjx1bCBpZD0idG9jIj48bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNwdXJlbmFtZSI+UnVubmluZyBzZXZlcmFsIG5hbWUtYmFzZWQgd2ViCiAgICBzaXRlcyBvbiBhIHNpbmdsZSBJUCBhZGRyZXNzLjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN0d29pcHMiPk5hbWUtYmFzZWQgaG9zdHMgb24gbW9yZSB0aGFuIG9uZQogICAgSVAgYWRkcmVzcy48L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjaW50cmFleHRyYSI+U2VydmluZyB0aGUgc2FtZSBjb250ZW50IG9uCiAgICBkaWZmZXJlbnQgSVAgYWRkcmVzc2VzIChzdWNoIGFzIGFuIGludGVybmFsIGFuZCBleHRlcm5hbAogICAgYWRkcmVzcykuPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3BvcnQiPlJ1bm5pbmcgZGlmZmVyZW50IHNpdGVzIG9uIGRpZmZlcmVudAogICAgcG9ydHMuPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2lwIj5JUC1iYXNlZCB2aXJ0dWFsIGhvc3Rpbmc8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjaXBwb3J0Ij5NaXhlZCBwb3J0LWJhc2VkIGFuZCBpcC1iYXNlZCB2aXJ0dWFsCglob3N0czwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNtaXhlZCI+TWl4ZWQgbmFtZS1iYXNlZCBhbmQgSVAtYmFzZWQKICAgIHZob3N0czwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNwcm94eSI+VXNpbmcgPGNvZGU+VmlydHVhbF9ob3N0PC9jb2RlPiBhbmQKICAgIG1vZF9wcm94eSB0b2dldGhlcjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNkZWZhdWx0Ij5Vc2luZyA8Y29kZT5fZGVmYXVsdF88L2NvZGU+CiAgICB2aG9zdHM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbWlncmF0ZSI+TWlncmF0aW5nIGEgbmFtZS1iYXNlZCB2aG9zdCB0byBhbgogICAgSVAtYmFzZWQgdmhvc3Q8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjc2VydmVycGF0aCI+VXNpbmcgdGhlIDxjb2RlPlNlcnZlclBhdGg8L2NvZGU+CglkaXJlY3RpdmU8L2E+PC9saT4KPC91bD48L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0icHVyZW5hbWUiIGlkPSJwdXJlbmFtZSI+UnVubmluZyBzZXZlcmFsIG5hbWUtYmFzZWQgd2ViCiAgICBzaXRlcyBvbiBhIHNpbmdsZSBJUCBhZGRyZXNzLjwvYT48L2gyPgoKICAgIDxwPllvdXIgc2VydmVyIGhhcyBhIHNpbmdsZSBJUCBhZGRyZXNzLCBhbmQgbXVsdGlwbGUgYWxpYXNlcyAoQ05BTUVTKQogICAgcG9pbnQgdG8gdGhpcyBtYWNoaW5lIGluIEROUy4gWW91IHdhbnQgdG8gcnVuIGEgd2ViIHNlcnZlciBmb3IKICAgIDxjb2RlPnd3dy5leGFtcGxlLmNvbTwvY29kZT4gYW5kIDxjb2RlPnd3dy5leGFtcGxlLm9yZzwvY29kZT4gb24gdGhpcwogICAgbWFjaGluZS48L3A+CgogICAgPGRpdiBjbGFzcz0ibm90ZSI+PGgzPk5vdGU8L2gzPjxwPkNyZWF0aW5nIHZpcnR1YWwKICAgICAgICAgIGhvc3QgY29uZmlndXJhdGlvbnMgb24geW91ciBBcGFjaGUgc2VydmVyIGRvZXMgbm90IG1hZ2ljYWxseQogICAgICAgICAgY2F1c2UgRE5TIGVudHJpZXMgdG8gYmUgY3JlYXRlZCBmb3IgdGhvc2UgaG9zdCBuYW1lcy4gWW91CiAgICAgICAgICA8ZW0+bXVzdDwvZW0+IGhhdmUgdGhlIG5hbWVzIGluIEROUywgcmVzb2x2aW5nIHRvIHlvdXIgSVAKICAgICAgICAgIGFkZHJlc3MsIG9yIG5vYm9keSBlbHNlIHdpbGwgYmUgYWJsZSB0byBzZWUgeW91ciB3ZWIgc2l0ZS4gWW91CiAgICAgICAgICBjYW4gcHV0IGVudHJpZXMgaW4geW91ciA8Y29kZT5ob3N0czwvY29kZT4gZmlsZSBmb3IgbG9jYWwKICAgICAgICAgIHRlc3RpbmcsIGJ1dCB0aGF0IHdpbGwgd29yayBvbmx5IGZyb20gdGhlIG1hY2hpbmUgd2l0aCB0aG9zZQogICAgICAgICAgaG9zdHMgZW50cmllcy48L3A+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+U2VydmVyIGNvbmZpZ3VyYXRpb248L2gzPjxwPjxjb2RlPgogICAgCgogICAgIyBFbnN1cmUgdGhhdCBBcGFjaGUgbGlzdGVucyBvbiBwb3J0IDgwPGJyIC8+CiAgICBMaXN0ZW4gODA8YnIgLz4KICAgIDxiciAvPgogICAgIyBMaXN0ZW4gZm9yIHZpcnR1YWwgaG9zdCByZXF1ZXN0cyBvbiBhbGwgSVAgYWRkcmVzc2VzPGJyIC8+CiAgICBOYW1lVmlydHVhbEhvc3QgKjo4MDxiciAvPgogICAgPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgKjo4MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICBEb2N1bWVudFJvb3QgL3d3dy9leGFtcGxlMTxiciAvPgogICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLmNvbTxiciAvPgogICAgICA8YnIgLz4KICAgICAgIyBPdGhlciBkaXJlY3RpdmVzIGhlcmU8YnIgLz4KICAgICAgPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OzxiciAvPgogICAgPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgKjo4MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICBEb2N1bWVudFJvb3QgL3d3dy9leGFtcGxlMjxiciAvPgogICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLm9yZzxiciAvPgogICAgICA8YnIgLz4KICAgICAgIyBPdGhlciBkaXJlY3RpdmVzIGhlcmU8YnIgLz4KICAgICAgPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OwogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5UaGUgYXN0ZXJpc2tzIG1hdGNoIGFsbCBhZGRyZXNzZXMsIHNvIHRoZSBtYWluIHNlcnZlciBzZXJ2ZXMgbm8KICAgIHJlcXVlc3RzLiBEdWUgdG8gdGhlIGZhY3QgdGhhdCA8Y29kZT53d3cuZXhhbXBsZS5jb208L2NvZGU+IGlzIGZpcnN0CiAgICBpbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlLCBpdCBoYXMgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgYW5kIGNhbiBiZSBzZWVuCiAgICBhcyB0aGUgPGNpdGU+ZGVmYXVsdDwvY2l0ZT4gb3IgPGNpdGU+cHJpbWFyeTwvY2l0ZT4gc2VydmVyLiBUaGF0IG1lYW5zCiAgICB0aGF0IGlmIGEgcmVxdWVzdCBpcyByZWNlaXZlZCB0aGF0IGRvZXMgbm90IG1hdGNoIG9uZSBvZiB0aGUgc3BlY2lmaWVkCiAgICA8Y29kZT5TZXJ2ZXJOYW1lPC9jb2RlPiBkaXJlY3RpdmVzLCBpdCB3aWxsIGJlIHNlcnZlZCBieSB0aGlzIGZpcnN0CiAgICA8Y29kZT5WaXJ0dWFsSG9zdDwvY29kZT4uPC9wPgoKICAgIDxkaXYgY2xhc3M9Im5vdGUiPgogICAgICAgICAgICA8aDM+Tm90ZTwvaDM+CgogICAgICAgICAgICA8cD5Zb3UgY2FuLCBpZiB5b3Ugd2lzaCwgcmVwbGFjZSA8Y29kZT4qPC9jb2RlPiB3aXRoIHRoZSBhY3R1YWwKICAgICAgICAgICAgSVAgYWRkcmVzcyBvZiB0aGUgc3lzdGVtLiBJbiB0aGF0IGNhc2UsIHRoZSBhcmd1bWVudCB0bwogICAgICAgICAgICA8Y29kZT5WaXJ0dWFsSG9zdDwvY29kZT4gPGVtPm11c3Q8L2VtPiBtYXRjaCB0aGUgYXJndW1lbnQgdG8KICAgICAgICAgICAgPGNvZGU+TmFtZVZpcnR1YWxIb3N0PC9jb2RlPjo8L3A+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KICAgICAgICAgICAgTmFtZVZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MDxiciAvPgoJCQkJCQk8YnIgLz4KICAgICAgICAgICAgJmx0O1ZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MCZndDs8YnIgLz4KIAkJICAgICAgICAjIGV0YyAuLi4KICAgICAgICAgICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAgICAgICAgPHA+SG93ZXZlciwgaXQgaXMgYWRkaXRpb25hbGx5IHVzZWZ1bCB0byB1c2UgPGNvZGU+KjwvY29kZT4KICAgICAgICAgICBvbiBzeXN0ZW1zIHdoZXJlIHRoZSBJUCBhZGRyZXNzIGlzIG5vdCBwcmVkaWN0YWJsZSAtIGZvcgogICAgICAgICAgIGV4YW1wbGUgaWYgeW91IGhhdmUgYSBkeW5hbWljIElQIGFkZHJlc3Mgd2l0aCB5b3VyIElTUCwgYW5kCiAgICAgICAgICAgeW91IGFyZSB1c2luZyBzb21lIHZhcmlldHkgb2YgZHluYW1pYyBETlMgc29sdXRpb24uIFNpbmNlCiAgICAgICAgICAgPGNvZGU+KjwvY29kZT4gbWF0Y2hlcyBhbnkgSVAgYWRkcmVzcywgdGhpcyBjb25maWd1cmF0aW9uCiAgICAgICAgICAgd291bGQgd29yayB3aXRob3V0IGNoYW5nZXMgd2hlbmV2ZXIgeW91ciBJUCBhZGRyZXNzCiAgICAgICAgICAgY2hhbmdlcy48L3A+CiAgICA8L2Rpdj4KCiAgICA8cD5UaGUgYWJvdmUgY29uZmlndXJhdGlvbiBpcyB3aGF0IHlvdSB3aWxsIHdhbnQgdG8gdXNlIGluIGFsbW9zdAogICAgYWxsIG5hbWUtYmFzZWQgdmlydHVhbCBob3N0aW5nIHNpdHVhdGlvbnMuIFRoZSBvbmx5IHRoaW5nIHRoYXQgdGhpcwogICAgY29uZmlndXJhdGlvbiB3aWxsIG5vdCB3b3JrIGZvciwgaW4gZmFjdCwgaXMgd2hlbiB5b3UgYXJlIHNlcnZpbmcKICAgIGRpZmZlcmVudCBjb250ZW50IGJhc2VkIG9uIGRpZmZlcmluZyBJUCBhZGRyZXNzZXMgb3IgcG9ydHMuPC9wPgoKCTwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InR3b2lwcyIgaWQ9InR3b2lwcyI+TmFtZS1iYXNlZCBob3N0cyBvbiBtb3JlIHRoYW4gb25lCiAgICBJUCBhZGRyZXNzLjwvYT48L2gyPgoKICAJPGRpdiBjbGFzcz0ibm90ZSI+CgkJICA8aDM+Tm90ZTwvaDM+PHA+QW55IG9mIHRoZQogICAgICAgICAgdGVjaG5pcXVlcyBkaXNjdXNzZWQgaGVyZSBjYW4gYmUgZXh0ZW5kZWQgdG8gYW55IG51bWJlciBvZiBJUAogICAgICAgICAgYWRkcmVzc2VzLjwvcD4KICAgIDwvZGl2PgoKICAgIDxwPlRoZSBzZXJ2ZXIgaGFzIHR3byBJUCBhZGRyZXNzZXMuIE9uIG9uZSAoPGNvZGU+MTcyLjIwLjMwLjQwPC9jb2RlPiksIHdlCiAgICB3aWxsIHNlcnZlIHRoZSAibWFpbiIgc2VydmVyLCA8Y29kZT5zZXJ2ZXIuZG9tYWluLmNvbTwvY29kZT4gYW5kIG9uIHRoZQogICAgb3RoZXIgKDxjb2RlPjE3Mi4yMC4zMC41MDwvY29kZT4pLCB3ZSB3aWxsIHNlcnZlIHR3byBvciBtb3JlIHZpcnR1YWwgaG9zdHMuPC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxoMz5TZXJ2ZXIgY29uZmlndXJhdGlvbjwvaDM+PHA+PGNvZGU+CiAgICAKCiAgICBMaXN0ZW4gODA8YnIgLz4KCQk8YnIgLz4KICAgICMgVGhpcyBpcyB0aGUgIm1haW4iIHNlcnZlciBydW5uaW5nIG9uIDE3Mi4yMC4zMC40MDxiciAvPgogICAgU2VydmVyTmFtZSBzZXJ2ZXIuZG9tYWluLmNvbTxiciAvPgogICAgRG9jdW1lbnRSb290IC93d3cvbWFpbnNlcnZlcjxiciAvPgoJCTxiciAvPgogICAgIyBUaGlzIGlzIHRoZSBvdGhlciBhZGRyZXNzPGJyIC8+CiAgICBOYW1lVmlydHVhbEhvc3QgMTcyLjIwLjMwLjUwPGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjUwJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvZXhhbXBsZTE8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLmNvbTxiciAvPgogICAJCQk8YnIgLz4KICAgICAgICAjIE90aGVyIGRpcmVjdGl2ZXMgaGVyZSAuLi48YnIgLz4KCQkJCTxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDs8YnIgLz4KCQk8YnIgLz4KICAgICZsdDtWaXJ0dWFsSG9zdCAxNzIuMjAuMzAuNTAmZ3Q7PGJyIC8+CiAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICBEb2N1bWVudFJvb3QgL3d3dy9leGFtcGxlMjxiciAvPgogICAgICAgIFNlcnZlck5hbWUgd3d3LmV4YW1wbGUub3JnPGJyIC8+CgkJCQk8YnIgLz4KICAgICAgICAjIE90aGVyIGRpcmVjdGl2ZXMgaGVyZSAuLi48YnIgLz4KCQkJCTxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDsKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+QW55IHJlcXVlc3QgdG8gYW4gYWRkcmVzcyBvdGhlciB0aGFuIDxjb2RlPjE3Mi4yMC4zMC41MDwvY29kZT4gd2lsbCBiZQogICAgc2VydmVkIGZyb20gdGhlIG1haW4gc2VydmVyLiBBIHJlcXVlc3QgdG8gPGNvZGU+MTcyLjIwLjMwLjUwPC9jb2RlPiB3aXRoIGFuCiAgICB1bmtub3duIGhvc3RuYW1lLCBvciBubyA8Y29kZT5Ib3N0OjwvY29kZT4gaGVhZGVyLCB3aWxsIGJlIHNlcnZlZCBmcm9tCiAgICA8Y29kZT53d3cuZXhhbXBsZS5jb208L2NvZGU+LjwvcD4KCgk8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJpbnRyYWV4dHJhIiBpZD0iaW50cmFleHRyYSI+U2VydmluZyB0aGUgc2FtZSBjb250ZW50IG9uCiAgICBkaWZmZXJlbnQgSVAgYWRkcmVzc2VzIChzdWNoIGFzIGFuIGludGVybmFsIGFuZCBleHRlcm5hbAogICAgYWRkcmVzcykuPC9hPjwvaDI+CgogICAgPHA+VGhlIHNlcnZlciBtYWNoaW5lIGhhcyB0d28gSVAgYWRkcmVzc2VzICg8Y29kZT4xOTIuMTY4LjEuMTwvY29kZT4KICAgIGFuZCA8Y29kZT4xNzIuMjAuMzAuNDA8L2NvZGU+KS4gVGhlIG1hY2hpbmUgaXMgc2l0dGluZyBiZXR3ZWVuIGFuCiAgICBpbnRlcm5hbCAoaW50cmFuZXQpIG5ldHdvcmsgYW5kIGFuIGV4dGVybmFsIChpbnRlcm5ldCkgbmV0d29yay4gT3V0c2lkZQogICAgb2YgdGhlIG5ldHdvcmssIHRoZSBuYW1lIDxjb2RlPnNlcnZlci5leGFtcGxlLmNvbTwvY29kZT4gcmVzb2x2ZXMgdG8KICAgIHRoZSBleHRlcm5hbCBhZGRyZXNzICg8Y29kZT4xNzIuMjAuMzAuNDA8L2NvZGU+KSwgYnV0IGluc2lkZSB0aGUKICAgIG5ldHdvcmssIHRoYXQgc2FtZSBuYW1lIHJlc29sdmVzIHRvIHRoZSBpbnRlcm5hbCBhZGRyZXNzCiAgICAoPGNvZGU+MTkyLjE2OC4xLjE8L2NvZGU+KS48L3A+CgogICAgPHA+VGhlIHNlcnZlciBjYW4gYmUgbWFkZSB0byByZXNwb25kIHRvIGludGVybmFsIGFuZCBleHRlcm5hbCByZXF1ZXN0cwogICAgd2l0aCB0aGUgc2FtZSBjb250ZW50LCB3aXRoIGp1c3Qgb25lIDxjb2RlPlZpcnR1YWxIb3N0PC9jb2RlPgogICAgc2VjdGlvbi48L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PGgzPlNlcnZlciBjb25maWd1cmF0aW9uPC9oMz48cD48Y29kZT4KICAgIAoKICAgIE5hbWVWaXJ0dWFsSG9zdCAxOTIuMTY4LjEuMTxiciAvPgogICAgTmFtZVZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MDxiciAvPgoJCTxiciAvPgogICAgJmx0O1ZpcnR1YWxIb3N0IDE5Mi4xNjguMS4xIDE3Mi4yMC4zMC40MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L3NlcnZlcjE8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHNlcnZlci5leGFtcGxlLmNvbTxiciAvPgogICAgICAgIFNlcnZlckFsaWFzIHNlcnZlcjxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDsKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+Tm93IHJlcXVlc3RzIGZyb20gYm90aCBuZXR3b3JrcyB3aWxsIGJlIHNlcnZlZCBmcm9tIHRoZSBzYW1lCiAgICA8Y29kZT5WaXJ0dWFsSG9zdDwvY29kZT4uPC9wPgoKICAgIDxkaXYgY2xhc3M9Im5vdGUiPgogICAgICAgICAgPGgzPk5vdGU6PC9oMz48cD5PbiB0aGUgaW50ZXJuYWwKICAgICAgICAgIG5ldHdvcmssIG9uZSBjYW4ganVzdCB1c2UgdGhlIG5hbWUgPGNvZGU+c2VydmVyPC9jb2RlPiByYXRoZXIKICAgICAgICAgIHRoYW4gdGhlIGZ1bGx5IHF1YWxpZmllZCBob3N0IG5hbWUKICAgICAgICAgIDxjb2RlPnNlcnZlci5leGFtcGxlLmNvbTwvY29kZT4uPC9wPgoKICAgICAgICAgIDxwPk5vdGUgYWxzbyB0aGF0LCBpbiB0aGUgYWJvdmUgZXhhbXBsZSwgeW91IGNhbiByZXBsYWNlIHRoZSBsaXN0CiAgICAgICAgICBvZiBJUCBhZGRyZXNzZXMgd2l0aCA8Y29kZT4qPC9jb2RlPiwgd2hpY2ggd2lsbCBjYXVzZSB0aGUgc2VydmVyIHRvCiAgICAgICAgICByZXNwb25kIHRoZSBzYW1lIG9uIGFsbCBhZGRyZXNzZXMuPC9wPgogICAgPC9kaXY+CgoJPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0icG9ydCIgaWQ9InBvcnQiPlJ1bm5pbmcgZGlmZmVyZW50IHNpdGVzIG9uIGRpZmZlcmVudAogICAgcG9ydHMuPC9hPjwvaDI+CgogICAgPHA+WW91IGhhdmUgbXVsdGlwbGUgZG9tYWlucyBnb2luZyB0byB0aGUgc2FtZSBJUCBhbmQgYWxzbyB3YW50IHRvCiAgICBzZXJ2ZSBtdWx0aXBsZSBwb3J0cy4gQnkgZGVmaW5pbmcgdGhlIHBvcnRzIGluIHRoZSAiTmFtZVZpcnR1YWxIb3N0IgogICAgdGFnLCB5b3UgY2FuIGFsbG93IHRoaXMgdG8gd29yay4gSWYgeW91IHRyeSB1c2luZyAmbHQ7VmlydHVhbEhvc3QKICAgIG5hbWU6cG9ydCZndDsgd2l0aG91dCB0aGUgTmFtZVZpcnR1YWxIb3N0IG5hbWU6cG9ydCBvciB5b3UgdHJ5IHRvIHVzZQogICAgdGhlIExpc3RlbiBkaXJlY3RpdmUsIHlvdXIgY29uZmlndXJhdGlvbiB3aWxsIG5vdCB3b3JrLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+U2VydmVyIGNvbmZpZ3VyYXRpb248L2gzPjxwPjxjb2RlPgogICAgCgogICAgTGlzdGVuIDgwPGJyIC8+CiAgICBMaXN0ZW4gODA4MDxiciAvPgoJCTxiciAvPgogICAgTmFtZVZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MDo4MDxiciAvPgogICAgTmFtZVZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MDo4MDgwPGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjQwOjgwJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgU2VydmVyTmFtZSB3d3cuZXhhbXBsZS5jb208YnIgLz4KICAgICAgICBEb2N1bWVudFJvb3QgL3d3dy9kb21haW4tODA8YnIgLz4KICAgIDwvc3Bhbj4KICAgICZsdDsvVmlydHVhbEhvc3QmZ3Q7PGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjQwOjgwODAmZ3Q7PGJyIC8+CiAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLmNvbTxiciAvPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L2RvbWFpbi04MDgwPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OzxiciAvPgoJCTxiciAvPgogICAgJmx0O1ZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MDo4MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIFNlcnZlck5hbWUgd3d3LmV4YW1wbGUub3JnPGJyIC8+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvb3RoZXJkb21haW4tODA8YnIgLz4KICAgIDwvc3Bhbj4KICAgICZsdDsvVmlydHVhbEhvc3QmZ3Q7PGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjQwOjgwODAmZ3Q7PGJyIC8+CiAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLm9yZzxiciAvPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L290aGVyZG9tYWluLTgwODA8YnIgLz4KICAgIDwvc3Bhbj4KICAgICZsdDsvVmlydHVhbEhvc3QmZ3Q7CiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKCTwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImlwIiBpZD0iaXAiPklQLWJhc2VkIHZpcnR1YWwgaG9zdGluZzwvYT48L2gyPgoKICAgIDxwPlRoZSBzZXJ2ZXIgaGFzIHR3byBJUCBhZGRyZXNzZXMgKDxjb2RlPjE3Mi4yMC4zMC40MDwvY29kZT4gYW5kCiAgICA8Y29kZT4xNzIuMjAuMzAuNTA8L2NvZGU+KSB3aGljaCByZXNvbHZlIHRvIHRoZSBuYW1lcwogICAgPGNvZGU+d3d3LmV4YW1wbGUuY29tPC9jb2RlPiBhbmQgPGNvZGU+d3d3LmV4YW1wbGUub3JnPC9jb2RlPgogICAgcmVzcGVjdGl2ZWx5LjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+U2VydmVyIGNvbmZpZ3VyYXRpb248L2gzPjxwPjxjb2RlPgogICAgCgogICAgTGlzdGVuIDgwPGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjQwJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvZXhhbXBsZTE8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLmNvbTxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDs8YnIgLz4KCQk8YnIgLz4KICAgICZsdDtWaXJ0dWFsSG9zdCAxNzIuMjAuMzAuNTAmZ3Q7PGJyIC8+CiAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICBEb2N1bWVudFJvb3QgL3d3dy9leGFtcGxlMjxiciAvPgogICAgICAgIFNlcnZlck5hbWUgd3d3LmV4YW1wbGUub3JnPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OwogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5SZXF1ZXN0cyBmb3IgYW55IGFkZHJlc3Mgbm90IHNwZWNpZmllZCBpbiBvbmUgb2YgdGhlCiAgICA8Y29kZT4mbHQ7VmlydHVhbEhvc3QmZ3Q7PC9jb2RlPiBkaXJlY3RpdmVzIChzdWNoIGFzCiAgICA8Y29kZT5sb2NhbGhvc3Q8L2NvZGU+LCBmb3IgZXhhbXBsZSkgd2lsbCBnbyB0byB0aGUgbWFpbiBzZXJ2ZXIsIGlmCiAgICB0aGVyZSBpcyBvbmUuPC9wPgoKCTwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImlwcG9ydCIgaWQ9ImlwcG9ydCI+TWl4ZWQgcG9ydC1iYXNlZCBhbmQgaXAtYmFzZWQgdmlydHVhbAoJaG9zdHM8L2E+PC9oMj4KCiAgICA8cD5UaGUgc2VydmVyIG1hY2hpbmUgaGFzIHR3byBJUCBhZGRyZXNzZXMgKDxjb2RlPjE3Mi4yMC4zMC40MDwvY29kZT4gYW5kCiAgICA8Y29kZT4xNzIuMjAuMzAuNTA8L2NvZGU+KSB3aGljaCByZXNvbHZlIHRvIHRoZSBuYW1lcwogICAgPGNvZGU+d3d3LmV4YW1wbGUuY29tPC9jb2RlPiBhbmQgPGNvZGU+d3d3LmV4YW1wbGUub3JnPC9jb2RlPgogICAgcmVzcGVjdGl2ZWx5LiBJbiBlYWNoIGNhc2UsIHdlIHdhbnQgdG8gcnVuIGhvc3RzIG9uIHBvcnRzIDgwIGFuZAogICAgODA4MC48L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PGgzPlNlcnZlciBjb25maWd1cmF0aW9uPC9oMz48cD48Y29kZT4KICAgIAoKICAgIExpc3RlbiAxNzIuMjAuMzAuNDA6ODA8YnIgLz4KICAgIExpc3RlbiAxNzIuMjAuMzAuNDA6ODA4MDxiciAvPgogICAgTGlzdGVuIDE3Mi4yMC4zMC41MDo4MDxiciAvPgogICAgTGlzdGVuIDE3Mi4yMC4zMC41MDo4MDgwPGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjQwOjgwJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvZXhhbXBsZTEtODA8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLmNvbTxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDs8YnIgLz4KCQk8YnIgLz4KICAgICZsdDtWaXJ0dWFsSG9zdCAxNzIuMjAuMzAuNDA6ODA4MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L2V4YW1wbGUxLTgwODA8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLmNvbTxiciAvPgoJCTwvc3Bhbj4KICAgICZsdDsvVmlydHVhbEhvc3QmZ3Q7PGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjUwOjgwJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvZXhhbXBsZTItODA8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLm9yZzxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDs8YnIgLz4KCQk8YnIgLz4KICAgICZsdDtWaXJ0dWFsSG9zdCAxNzIuMjAuMzAuNTA6ODA4MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L2V4YW1wbGUyLTgwODA8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlLm9yZzxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDsKICAgIDwvY29kZT48L3A+PC9kaXY+CgoJPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0ibWl4ZWQiIGlkPSJtaXhlZCI+TWl4ZWQgbmFtZS1iYXNlZCBhbmQgSVAtYmFzZWQKICAgIHZob3N0czwvYT48L2gyPgoKICAgIDxwPk9uIHNvbWUgb2YgbXkgYWRkcmVzc2VzLCBJIHdhbnQgdG8gZG8gbmFtZS1iYXNlZCB2aXJ0dWFsIGhvc3RzLCBhbmQKICAgIG9uIG90aGVycywgSVAtYmFzZWQgaG9zdHMuPC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxoMz5TZXJ2ZXIgY29uZmlndXJhdGlvbjwvaDM+PHA+PGNvZGU+CiAgICAKCiAgICBMaXN0ZW4gODA8YnIgLz4KCQk8YnIgLz4KICAgIE5hbWVWaXJ0dWFsSG9zdCAxNzIuMjAuMzAuNDA8YnIgLz4KCQk8YnIgLz4KICAgICZsdDtWaXJ0dWFsSG9zdCAxNzIuMjAuMzAuNDAmZ3Q7PGJyIC8+CiAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICBEb2N1bWVudFJvb3QgL3d3dy9leGFtcGxlMTxiciAvPgogICAgICAgIFNlcnZlck5hbWUgd3d3LmV4YW1wbGUuY29tPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OzxiciAvPgoJCTxiciAvPgogICAgJmx0O1ZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L2V4YW1wbGUyPGJyIC8+CiAgICAgICAgU2VydmVyTmFtZSB3d3cuZXhhbXBsZS5vcmc8YnIgLz4KICAgIDwvc3Bhbj4KICAgICZsdDsvVmlydHVhbEhvc3QmZ3Q7PGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjQwJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvZXhhbXBsZTM8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlMy5uZXQ8YnIgLz4KICAgIDwvc3Bhbj4KICAgICZsdDsvVmlydHVhbEhvc3QmZ3Q7PGJyIC8+CgkJPGJyIC8+CiAgICAjIElQLWJhc2VkPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjUwJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvZXhhbXBsZTQ8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlNC5lZHU8YnIgLz4KICAgIDwvc3Bhbj4KICAgICZsdDsvVmlydHVhbEhvc3QmZ3Q7PGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjYwJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvZXhhbXBsZTU8YnIgLz4KICAgICAgICBTZXJ2ZXJOYW1lIHd3dy5leGFtcGxlNS5nb3Y8YnIgLz4KICAgIDwvc3Bhbj4KICAgICZsdDsvVmlydHVhbEhvc3QmZ3Q7CiAgICA8L2NvZGU+PC9wPjwvZGl2PgoKCTwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InByb3h5IiBpZD0icHJveHkiPlVzaW5nIDxjb2RlPlZpcnR1YWxfaG9zdDwvY29kZT4gYW5kCiAgICBtb2RfcHJveHkgdG9nZXRoZXI8L2E+PC9oMj4KCiAgICA8cD5UaGUgZm9sbG93aW5nIGV4YW1wbGUgYWxsb3dzIGEgZnJvbnQtZW5kIG1hY2hpbmUgdG8gcHJveHkgYQogICAgdmlydHVhbCBob3N0IHRocm91Z2ggdG8gYSBzZXJ2ZXIgcnVubmluZyBvbiBhbm90aGVyIG1hY2hpbmUuIEluIHRoZQogICAgZXhhbXBsZSwgYSB2aXJ0dWFsIGhvc3Qgb2YgdGhlIHNhbWUgbmFtZSBpcyBjb25maWd1cmVkIG9uIGEgbWFjaGluZQogICAgYXQgPGNvZGU+MTkyLjE2OC4xMTEuMjwvY29kZT4uIFRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Byb3h5Lmh0bWwjcHJveHlwcmVzZXJ2ZWhvc3Qgb24iPlByb3h5UHJlc2VydmVIb3N0IE9uPC9hPjwvY29kZT4gZGlyZWN0aXZlIGlzCiAgICB1c2VkIHNvIHRoYXQgdGhlIGRlc2lyZWQgaG9zdG5hbWUgaXMgcGFzc2VkIHRocm91Z2gsIGluIGNhc2Ugd2UgYXJlCiAgICBwcm94eWluZyBtdWx0aXBsZSBob3N0bmFtZXMgdG8gYSBzaW5nbGUgbWFjaGluZS48L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAmbHQ7VmlydHVhbEhvc3QgKjoqJmd0OzxiciAvPgogICAgICAgIFByb3h5UHJlc2VydmVIb3N0IE9uPGJyIC8+CiAgICAgICAgUHJveHlQYXNzIC8gaHR0cDovLzE5Mi4xNjguMTExLjI8YnIgLz4KICAgICAgICBQcm94eVBhc3NSZXZlcnNlIC8gaHR0cDovLzE5Mi4xNjguMTExLjIvPGJyIC8+CiAgICAgICAgU2VydmVyTmFtZSBob3N0bmFtZS5leGFtcGxlLmNvbTxiciAvPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDsKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZGVmYXVsdCIgaWQ9ImRlZmF1bHQiPlVzaW5nIDxjb2RlPl9kZWZhdWx0XzwvY29kZT4KICAgIHZob3N0czwvYT48L2gyPgoKICAJPGgzPjxhIG5hbWU9ImRlZmF1bHRhbGxwb3J0cyIgaWQ9ImRlZmF1bHRhbGxwb3J0cyI+PGNvZGU+X2RlZmF1bHRfPC9jb2RlPiB2aG9zdHMKICAgIGZvciBhbGwgcG9ydHM8L2E+PC9oMz4KCiAgICA8cD5DYXRjaGluZyA8ZW0+ZXZlcnk8L2VtPiByZXF1ZXN0IHRvIGFueSB1bnNwZWNpZmllZCBJUCBhZGRyZXNzIGFuZAogICAgcG9ydCwgPGVtPmkuZS48L2VtPiwgYW4gYWRkcmVzcy9wb3J0IGNvbWJpbmF0aW9uIHRoYXQgaXMgbm90IHVzZWQgZm9yCiAgICBhbnkgb3RoZXIgdmlydHVhbCBob3N0LjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+U2VydmVyIGNvbmZpZ3VyYXRpb248L2gzPjxwPjxjb2RlPgogICAgCgogICAgJmx0O1ZpcnR1YWxIb3N0IF9kZWZhdWx0XzoqJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvZGVmYXVsdDxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDsKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+VXNpbmcgc3VjaCBhIGRlZmF1bHQgdmhvc3Qgd2l0aCBhIHdpbGRjYXJkIHBvcnQgZWZmZWN0aXZlbHkgcHJldmVudHMKICAgIGFueSByZXF1ZXN0IGdvaW5nIHRvIHRoZSBtYWluIHNlcnZlci48L3A+CgogICAgPHA+QSBkZWZhdWx0IHZob3N0IG5ldmVyIHNlcnZlcyBhIHJlcXVlc3QgdGhhdCB3YXMgc2VudCB0byBhbgogICAgYWRkcmVzcy9wb3J0IHRoYXQgaXMgdXNlZCBmb3IgbmFtZS1iYXNlZCB2aG9zdHMuIElmIHRoZSByZXF1ZXN0CiAgICBjb250YWluZWQgYW4gdW5rbm93biBvciBubyA8Y29kZT5Ib3N0OjwvY29kZT4gaGVhZGVyIGl0IGlzIGFsd2F5cwogICAgc2VydmVkIGZyb20gdGhlIHByaW1hcnkgbmFtZS1iYXNlZCB2aG9zdCAodGhlIHZob3N0IGZvciB0aGF0CiAgICBhZGRyZXNzL3BvcnQgYXBwZWFyaW5nIGZpcnN0IGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUpLjwvcD4KCiAgICA8cD5Zb3UgY2FuIHVzZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2FsaWFzLmh0bWwjYWxpYXNtYXRjaCI+QWxpYXNNYXRjaDwvYT48L2NvZGU+IG9yCiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Jld3JpdGUuaHRtbCNyZXdyaXRlcnVsZSI+UmV3cml0ZVJ1bGU8L2E+PC9jb2RlPiB0byByZXdyaXRlIGFueQogICAgcmVxdWVzdCB0byBhIHNpbmdsZSBpbmZvcm1hdGlvbiBwYWdlIChvciBzY3JpcHQpLjwvcD4KICAgIAoKICAgIDxoMz48YSBuYW1lPSJkZWZhdWx0ZGlmZmVyZW50cG9ydHMiIGlkPSJkZWZhdWx0ZGlmZmVyZW50cG9ydHMiPjxjb2RlPl9kZWZhdWx0XzwvY29kZT4gdmhvc3RzCiAgICBmb3IgZGlmZmVyZW50IHBvcnRzPC9hPjwvaDM+CgogICAgPHA+U2FtZSBhcyBzZXR1cCAxLCBidXQgdGhlIHNlcnZlciBsaXN0ZW5zIG9uIHNldmVyYWwgcG9ydHMgYW5kIHdlIHdhbnQKICAgIHRvIHVzZSBhIHNlY29uZCA8Y29kZT5fZGVmYXVsdF88L2NvZGU+IHZob3N0IGZvciBwb3J0IDgwLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+U2VydmVyIGNvbmZpZ3VyYXRpb248L2gzPjxwPjxjb2RlPgogICAgCgogICAgJmx0O1ZpcnR1YWxIb3N0IF9kZWZhdWx0Xzo4MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L2RlZmF1bHQ4MDxiciAvPgogICAgICAgICMgLi4uPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OzxiciAvPgoJCTxiciAvPgogICAgJmx0O1ZpcnR1YWxIb3N0IF9kZWZhdWx0XzoqJmd0OzxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgRG9jdW1lbnRSb290IC93d3cvZGVmYXVsdDxiciAvPgogICAgICAgICMgLi4uPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OwogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5UaGUgZGVmYXVsdCB2aG9zdCBmb3IgcG9ydCA4MCAod2hpY2ggPGVtPm11c3Q8L2VtPiBhcHBlYXIgYmVmb3JlIGFueQogICAgZGVmYXVsdCB2aG9zdCB3aXRoIGEgd2lsZGNhcmQgcG9ydCkgY2F0Y2hlcyBhbGwgcmVxdWVzdHMgdGhhdCB3ZXJlIHNlbnQKICAgIHRvIGFuIHVuc3BlY2lmaWVkIElQIGFkZHJlc3MuIFRoZSBtYWluIHNlcnZlciBpcyBuZXZlciB1c2VkIHRvIHNlcnZlIGEKICAgIHJlcXVlc3QuPC9wPgogICAgCgogICAgPGgzPjxhIG5hbWU9ImRlZmF1bHRvbmVwb3J0IiBpZD0iZGVmYXVsdG9uZXBvcnQiPjxjb2RlPl9kZWZhdWx0XzwvY29kZT4gdmhvc3RzCiAgICBmb3Igb25lIHBvcnQ8L2E+PC9oMz4KCiAgICA8cD5XZSB3YW50IHRvIGhhdmUgYSBkZWZhdWx0IHZob3N0IGZvciBwb3J0IDgwLCBidXQgbm8gb3RoZXIgZGVmYXVsdAogICAgdmhvc3RzLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+U2VydmVyIGNvbmZpZ3VyYXRpb248L2gzPjxwPjxjb2RlPgogICAgCgogICAgJmx0O1ZpcnR1YWxIb3N0IF9kZWZhdWx0Xzo4MCZndDs8YnIgLz4KICAgIERvY3VtZW50Um9vdCAvd3d3L2RlZmF1bHQ8YnIgLz4KICAgIC4uLjxiciAvPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDsKICAgIDwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+QSByZXF1ZXN0IHRvIGFuIHVuc3BlY2lmaWVkIGFkZHJlc3Mgb24gcG9ydCA4MCBpcyBzZXJ2ZWQgZnJvbSB0aGUKICAgIGRlZmF1bHQgdmhvc3QuIEFueSBvdGhlciByZXF1ZXN0IHRvIGFuIHVuc3BlY2lmaWVkIGFkZHJlc3MgYW5kIHBvcnQgaXMKICAgIHNlcnZlZCBmcm9tIHRoZSBtYWluIHNlcnZlci48L3A+CiAgICAKCgk8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJtaWdyYXRlIiBpZD0ibWlncmF0ZSI+TWlncmF0aW5nIGEgbmFtZS1iYXNlZCB2aG9zdCB0byBhbgogICAgSVAtYmFzZWQgdmhvc3Q8L2E+PC9oMj4KCiAgICA8cD5UaGUgbmFtZS1iYXNlZCB2aG9zdCB3aXRoIHRoZSBob3N0bmFtZQogICAgPGNvZGU+d3d3LmV4YW1wbGUub3JnPC9jb2RlPiAoZnJvbSBvdXIgPGEgaHJlZj0iI25hbWUiPm5hbWUtYmFzZWQ8L2E+IGV4YW1wbGUsIHNldHVwIDIpIHNob3VsZCBnZXQgaXRzIG93biBJUAogICAgYWRkcmVzcy4gVG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBuYW1lIHNlcnZlcnMgb3IgcHJveGllcyB3aG8gY2FjaGVkIHRoZQogICAgb2xkIElQIGFkZHJlc3MgZm9yIHRoZSBuYW1lLWJhc2VkIHZob3N0IHdlIHdhbnQgdG8gcHJvdmlkZSBib3RoCiAgICB2YXJpYW50cyBkdXJpbmcgYSBtaWdyYXRpb24gcGhhc2UuPC9wPgoKICAgIDxwPgogICAgIFRoZSBzb2x1dGlvbiBpcyBlYXN5LCBiZWNhdXNlIHdlIGNhbiBzaW1wbHkgYWRkIHRoZSBuZXcgSVAgYWRkcmVzcwogICAgKDxjb2RlPjE3Mi4yMC4zMC41MDwvY29kZT4pIHRvIHRoZSA8Y29kZT5WaXJ0dWFsSG9zdDwvY29kZT4KICAgIGRpcmVjdGl2ZS48L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PGgzPlNlcnZlciBjb25maWd1cmF0aW9uPC9oMz48cD48Y29kZT4KICAgIAoKICAgIExpc3RlbiA4MDxiciAvPgogICAgU2VydmVyTmFtZSB3d3cuZXhhbXBsZS5jb208YnIgLz4KICAgIERvY3VtZW50Um9vdCAvd3d3L2V4YW1wbGUxPGJyIC8+CgkJPGJyIC8+CiAgICBOYW1lVmlydHVhbEhvc3QgMTcyLjIwLjMwLjQwPGJyIC8+CgkJPGJyIC8+CiAgICAmbHQ7VmlydHVhbEhvc3QgMTcyLjIwLjMwLjQwIDE3Mi4yMC4zMC41MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L2V4YW1wbGUyPGJyIC8+CiAgICAgICAgU2VydmVyTmFtZSB3d3cuZXhhbXBsZS5vcmc8YnIgLz4KICAgICAgICAjIC4uLjxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDs8YnIgLz4KCQk8YnIgLz4KICAgICZsdDtWaXJ0dWFsSG9zdCAxNzIuMjAuMzAuNDAmZ3Q7PGJyIC8+CiAgICA8c3BhbiBjbGFzcz0iaW5kZW50Ij4KICAgICAgICBEb2N1bWVudFJvb3QgL3d3dy9leGFtcGxlMzxiciAvPgogICAgICAgIFNlcnZlck5hbWUgd3d3LmV4YW1wbGUubmV0PGJyIC8+CiAgICAgICAgU2VydmVyQWxpYXMgKi5leGFtcGxlLm5ldDxiciAvPgogICAgICAgICMgLi4uPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OwogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5UaGUgdmhvc3QgY2FuIG5vdyBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBuZXcgYWRkcmVzcyAoYXMgYW4KICAgIElQLWJhc2VkIHZob3N0KSBhbmQgdGhyb3VnaCB0aGUgb2xkIGFkZHJlc3MgKGFzIGEgbmFtZS1iYXNlZAogICAgdmhvc3QpLjwvcD4KCgk8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJzZXJ2ZXJwYXRoIiBpZD0ic2VydmVycGF0aCI+VXNpbmcgdGhlIDxjb2RlPlNlcnZlclBhdGg8L2NvZGU+CglkaXJlY3RpdmU8L2E+PC9oMj4KCiAgICA8cD5XZSBoYXZlIGEgc2VydmVyIHdpdGggdHdvIG5hbWUtYmFzZWQgdmhvc3RzLiBJbiBvcmRlciB0byBtYXRjaCB0aGUKICAgIGNvcnJlY3QgdmlydHVhbCBob3N0IGEgY2xpZW50IG11c3Qgc2VuZCB0aGUgY29ycmVjdCA8Y29kZT5Ib3N0OjwvY29kZT4KICAgIGhlYWRlci4gT2xkIEhUVFAvMS4wIGNsaWVudHMgZG8gbm90IHNlbmQgc3VjaCBhIGhlYWRlciBhbmQgQXBhY2hlIGhhcwogICAgbm8gY2x1ZSB3aGF0IHZob3N0IHRoZSBjbGllbnQgdHJpZWQgdG8gcmVhY2ggKGFuZCBzZXJ2ZXMgdGhlIHJlcXVlc3QKICAgIGZyb20gdGhlIHByaW1hcnkgdmhvc3QpLiBUbyBwcm92aWRlIGFzIG11Y2ggYmFja3dhcmQgY29tcGF0aWJpbGl0eSBhcwogICAgcG9zc2libGUgd2UgY3JlYXRlIGEgcHJpbWFyeSB2aG9zdCB3aGljaCByZXR1cm5zIGEgc2luZ2xlIHBhZ2UKICAgIGNvbnRhaW5pbmcgbGlua3Mgd2l0aCBhbiBVUkwgcHJlZml4IHRvIHRoZSBuYW1lLWJhc2VkIHZpcnR1YWwKICAgIGhvc3RzLjwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48aDM+U2VydmVyIGNvbmZpZ3VyYXRpb248L2gzPjxwPjxjb2RlPgogICAgCgogICAgTmFtZVZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MDxiciAvPgoJCTxiciAvPgogICAgJmx0O1ZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgICMgcHJpbWFyeSB2aG9zdDxiciAvPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L3N1YmRvbWFpbjxiciAvPgogICAgICAgIFJld3JpdGVFbmdpbmUgT248YnIgLz4KICAgICAgICBSZXdyaXRlUnVsZSBeLy4qIC93d3cvc3ViZG9tYWluL2luZGV4Lmh0bWw8YnIgLz4KICAgICAgICAjIC4uLjxiciAvPgogICAgPC9zcGFuPgogICAgJmx0Oy9WaXJ0dWFsSG9zdCZndDs8YnIgLz4KCQk8YnIgLz4KICAgICZsdDtWaXJ0dWFsSG9zdCAxNzIuMjAuMzAuNDAmZ3Q7PGJyIC8+CiAgICBEb2N1bWVudFJvb3QgL3d3dy9zdWJkb21haW4vc3ViMTxiciAvPgogICAgPHNwYW4gY2xhc3M9ImluZGVudCI+CiAgICAgICAgU2VydmVyTmFtZSB3d3cuc3ViMS5kb21haW4udGxkPGJyIC8+CiAgICAgICAgU2VydmVyUGF0aCAvc3ViMS88YnIgLz4KICAgICAgICBSZXdyaXRlRW5naW5lIE9uPGJyIC8+CiAgICAgICAgUmV3cml0ZVJ1bGUgXigvc3ViMS8uKikgL3d3dy9zdWJkb21haW4kMTxiciAvPgogICAgICAgICMgLi4uPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OzxiciAvPgoJCTxiciAvPgogICAgJmx0O1ZpcnR1YWxIb3N0IDE3Mi4yMC4zMC40MCZndDs8YnIgLz4KICAgIDxzcGFuIGNsYXNzPSJpbmRlbnQiPgogICAgICAgIERvY3VtZW50Um9vdCAvd3d3L3N1YmRvbWFpbi9zdWIyPGJyIC8+CiAgICAgICAgU2VydmVyTmFtZSB3d3cuc3ViMi5kb21haW4udGxkPGJyIC8+CiAgICAgICAgU2VydmVyUGF0aCAvc3ViMi88YnIgLz4KICAgICAgICBSZXdyaXRlRW5naW5lIE9uPGJyIC8+CiAgICAgICAgUmV3cml0ZVJ1bGUgXigvc3ViMi8uKikgL3d3dy9zdWJkb21haW4kMTxiciAvPgogICAgICAgICMgLi4uPGJyIC8+CiAgICA8L3NwYW4+CiAgICAmbHQ7L1ZpcnR1YWxIb3N0Jmd0OwogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5EdWUgdG8gdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9jb3JlLmh0bWwjc2VydmVycGF0aCI+U2VydmVyUGF0aDwvYT48L2NvZGU+CiAgICBkaXJlY3RpdmUgYSByZXF1ZXN0IHRvIHRoZSBVUkwKICAgIDxjb2RlPmh0dHA6Ly93d3cuc3ViMS5kb21haW4udGxkL3N1YjEvPC9jb2RlPiBpcyA8ZW0+YWx3YXlzPC9lbT4gc2VydmVkCiAgICBmcm9tIHRoZSBzdWIxLXZob3N0LjxiciAvPiBBIHJlcXVlc3QgdG8gdGhlIFVSTAogICAgPGNvZGU+aHR0cDovL3d3dy5zdWIxLmRvbWFpbi50bGQvPC9jb2RlPiBpcyBvbmx5CiAgICBzZXJ2ZWQgZnJvbSB0aGUgc3ViMS12aG9zdCBpZiB0aGUgY2xpZW50IHNlbnQgYSBjb3JyZWN0CiAgICA8Y29kZT5Ib3N0OjwvY29kZT4gaGVhZGVyLiBJZiBubyA8Y29kZT5Ib3N0OjwvY29kZT4gaGVhZGVyIGlzIHNlbnQgdGhlCiAgICBjbGllbnQgZ2V0cyB0aGUgaW5mb3JtYXRpb24gcGFnZSBmcm9tIHRoZSBwcmltYXJ5IGhvc3QuPC9wPgoKICAgIDxwPlBsZWFzZSBub3RlIHRoYXQgdGhlcmUgaXMgb25lIG9kZGl0eTogQSByZXF1ZXN0IHRvCiAgICA8Y29kZT5odHRwOi8vd3d3LnN1YjIuZG9tYWluLnRsZC9zdWIxLzwvY29kZT4gaXMgYWxzbyBzZXJ2ZWQgZnJvbSB0aGUKICAgIHN1YjEtdmhvc3QgaWYgdGhlIGNsaWVudCBzZW50IG5vIDxjb2RlPkhvc3Q6PC9jb2RlPiBoZWFkZXIuPC9wPgoKICAgIDxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Jld3JpdGUuaHRtbCNyZXdyaXRlcnVsZSI+UmV3cml0ZVJ1bGU8L2E+PC9jb2RlPiBkaXJlY3RpdmVzCiAgICBhcmUgdXNlZCB0byBtYWtlIHN1cmUgdGhhdCBhIGNsaWVudCB3aGljaCBzZW50IGEgY29ycmVjdAogICAgPGNvZGU+SG9zdDo8L2NvZGU+IGhlYWRlciBjYW4gdXNlIGJvdGggVVJMIHZhcmlhbnRzLCA8ZW0+aS5lLjwvZW0+LAogICAgd2l0aCBvciB3aXRob3V0IFVSTCBwcmVmaXguPC9wPgoKCTwvZGl2PjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+QXZhaWxhYmxlIExhbmd1YWdlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL3Zob3N0cy9leGFtcGxlcy5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvdmhvc3RzL2V4YW1wbGVzLmh0bWwiIGhyZWZsYW5nPSJmciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vamEvdmhvc3RzL2V4YW1wbGVzLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vdmhvc3RzL2V4YW1wbGVzLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDE5OTUtMjAwNSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gb3IgaXRzIGxpY2Vuc29ycywgYXMgYXBwbGljYWJsZS48YnIgLz5MaWNlbnNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSIuLi9mYXEvIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD48L2Rpdj4KPC9ib2R5PjwvaHRtbD4=