PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiI+DQoNCjxodG1sPg0KPGhlYWQ+DQo8dGl0bGU+QXhpczIgQ29uZmlndXJhdGlvbiBEb2N1bWVudHM8L3RpdGxlPg0KPC9oZWFkPg0KPGJvZHk+DQo8cD5JbiBBeGlzMiB0aGVyZSBhcmUgdGhyZWUga2luZHMgb2YgY29uZmlndXJhdGlvbiBmaWxlcyB0byBjb25maWd1cmUgdGhlIHN5c3RlbS4gDQpGaXJzdCBvbmUgY29uZmlndXJhdGlvbiBmaWxlIGlzIHRvIGNvbmZpZ3VyZSB3aG9sZSBzeXN0ZW0sIHNlY29uZCBvbmUgaXMgdG8gDQpjb25maWd1cmUgYSBzZXJ2aWNlIGFuZCB0aGUgdGhpcmQgb25lIGlzIHRvIGNvbmZpZ3VyZSBhIG1vZHVsZS4gDQo8dWw+DQo8bGk+PGEgaHJlZj0iI2dsb2JhbCI+R2xvYmFsIENvbmZpZ3VyYXRpb24gKGF4aXMyLnhtbCk8L2E+PC9saT4NCjxsaT48YSBocmVmPSIjc2VydmljZSI+U2VydmljZSBDb25maWd1cmF0aW9uIChzZXJ2aWNlLnhtbCk8L2E+PC9saT4NCjxsaT48YSBocmVmPSIjbW9kdWxlIj5Nb2R1bGUgQ29uZmlndXJhdGlvbiAobW9kdWxlLnhtbCk8L2E+PC9saT4NCjwvdWw+DQo8L3A+DQo8YnI+DQoNCjxmb250IGNvbG9yPSJibHVlIj48Yj5HbG9iYWwgQ29uZmlndXJhdGlvbiA8L2I+PC9mb250Pg0KPGxpPjxhIG5hbWU9Imdsb2JhbCI+PC9hPldyaXRpbmcgYXhpczIueG1sPC9saT4NCjxwPg0KICBBbGwgdGhlIGNvbmZpZ3VyYXRpb24gdGhhdCByZXF1aXJlcyBzdGFydGluZyBheGlzMiBpcyBvYnRhaW5lZCBmcm9tIGF4aXMyLnhtbC4gDQoJVGhlIHdheSBvZiBzcGVjaWZ5aW5nIHRoZW0gaXMgdmVyeSBzaW1wbGUgYW5kIGVhc3kuIFRoZSBkb2N1bWVudCBpcyBhbGwgYWJvdXQgDQoJdGhlIHByb3BlciB3YXkgb2Ygc3BlY2lmeWluZyB0aGUgY29uZmlndXJhdGlvbnMgaW4gYXhpczIueG1sLg0KCVRoZXJlIGFyZSBzaXggdG9wIGxldmVsIGVsZW1lbnRzIHRoYXQgY2FuIGJlIHNlZW4gaW4gdGhlIGNvbmZpZ3VyYXRpb24gDQoJZmlsZSBhbmQgdGhvc2UgY2FuIGJlIGxpc3RlZCBhcyBmb2xsb3dzOw0KPC9wPg0KPHVsPg0KPGxpPlBhcmFtZXRlcjwvbGk+DQo8bGk+VHJhbnNwb3J0IFJlY2VpdmVyPC9saT4NCjxsaT5UcmFuc3BvcnQgU2VuZGVyPC9saT4NCjxsaT5QaGFzZSBPcmRlcjwvbGk+DQo8bGk+TW9kdWxlIFJlZmVyZW5jZXM8L2xpPg0KPGxpPkxpc3RlbmVycyAoT2JzZXJ2ZXJzKTwvbGk+DQo8L3VsPg0KDQo8cD48Yj5QYXJhbWV0ZXIgPC9iPg0KPGJyPg0KSW4gYXhpczIgYSBwYXJhbWV0ZXIgaXMgbm90aGluZyBidXQgbmFtZSB2YWx1ZSBwYWlyLCBlYWNoIGFuZCBldmVyeSB0b3AgbGV2ZWwgDQpwYXJhbWV0ZXIgYXZhaWxhYmxlIGluIHRoZSBheGlzMi54bWwgKGRpcmVjdCBzdWIgZWxlbWVudHMgb2Ygcm9vdCBlbGVtZW50KSB3aWxsIA0KYmUgdHJhbnNmb3JtZWQgaW50byBwcm9wZXJ0aWVzIGluIEF4aXNDb25maWd1cmF0aW9uLiBUaGVyZWZvcmUgdGhlIHRvcCBsZXZlbCANCnBhcmFtZXRlcnMgaW4gY29uZmlndXJhdGlvbiBkb2N1bWVudCBjYW4gYmUgYWNjZXNzZWQgdmlhIEF4aXNDb25maWd1cmF0aW9uIGluIA0KdGhlIHJ1bm5pbmcgc3lzdGVtLiBUaGUgY29ycmVjdCB3YXkgb2YgZGVmaW5pbmcgYSBwYXJhbWV0ZXIgbG9va3MgbGlrZSB3aGF0IGlzIHNob3duIGJlbG93Ow0KPHNvdXJjZT48cHJlPiANCiAgJmx0O3BhcmFtZXRlciBuYW1lPSJuYW1lIG9mIHRoZSBwYXJhbWV0ZXIiICZndDtwYXJhbWV0ZXIgdmFsdWUgJmx0Oy9wYXJhbWV0ZXImZ3Q7DQo8L3ByZT48L3NvdXJjZT4NCjwvcD4NCjxwPg0KPGI+VHJhbnNwb3J0IFJlY2VpdmVyPC9iPjxicj4NCkRlcGVuZGluZyBvbiB0aGUgdW5kZXJsaW5lIHRyYW5zcG9ydCB0aGF0IGF4aXMgZ29pbmcgdG8gYmUgcnVuICwgDQpuZWVkIHRvIGhhdmUgZGlmZmVyZW50IHRyYW5zcG9ydCByZWNlaXZlcnMgc28gdGhlIHdheSBvZiBhZGRpbmcgDQp0aGVtIHRvIHRoZSBzeXN0ZW0gY2FuIGJlIGRvbmUgYXMgZm9sbG93czsNCjxzb3VyY2U+PHByZT4gDQombHQ7dHJhbnNwb3J0UmVjZWl2ZXIgbmFtZT0iaHR0cCIgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIudHJhbnNwb3J0Lmh0dHAuU2ltcGxlSFRUUFNlcnZlciImZ3Q7DQogICAgICAgICZsdDtwYXJhbWV0ZXIgbmFtZT0icG9ydCIgJmd0OzYwNjAmbHQ7L3BhcmFtZXRlciZndDsNCiAmbHQ7L3RyYW5zcG9ydFJlY2VpdmVyJmd0OyANCiA8L3ByZT48L3NvdXJjZT4NCg0KVGhlIGFib3ZlIGVsZW1lbnRzIHNob3dzIHRoZSB3YXkgb2YgZGVmaW5pbmcgdHJhbnNwb3J0IHJlY2VpdmVycyBpbiBheGlzMi54bWwgLCANCmhlcmUgbmFtZSBhdHRyaWJ1dGUgb2YgdGhlICd0cmFuc3BvcnRSZWNlaXZlcicgZWxlbWVudCBpcyB0aGUgbmFtZSBvZiB0cmFuc3BvcnQNCml0IGNhbiBiZSBodHRwLCB0Y3AgLCBzbXRwICwgY29tbW9uc2h0dHAgc3RjICwgYW5kIHdoZW4gdGhlIHN5c3RlbSBzdGFydHMgdXAgb3IgDQp3aGVuIHNldHRpbmcgdHJhbnNwb3J0IGF0IHRoZSBjbGllbnQgc2lkZSBvbmUgY2FuIHVzZSB0aGVzZSB0cmFuc3BvcnQgbmFtZXMgdG8NCiBsb2FkIHRoZSBhcHByb3ByaWF0ZSB0cmFuc3BvcnQuIENsYXNzIGF0dHJpYnV0ZSBpcyB0byBzcGVjaWZ5IGFjdHVhbCBqYXZhIA0KIGNsYXNzIHdoaWNoIGltcGxlbWVudHMgcmVxdWlyZWQgaW50ZXJmYWNlcyBmb3IgdGhlIHRyYW5zcG9ydC4gQW55IHRyYW5zcG9ydCANCiBjYW4gaGF2ZSB6ZXJvIG9yIG1vcmUgcGFyYW1ldGVycywgYW5kIGlmIHRoZXJlIGFyZSBhbnksIHRoZW4gdGhvc2UgcGFyYW1ldGVycyANCiBjYW4gYmUgYWNjZXNzZWQgdmlhIHRoZSBjb3JyZXNwb25kaW5nIHRyYW5zcG9ydCByZWNlaXZlci4gDQo8L3A+DQoNCjxwPg0KPGI+VHJhbnNwb3J0IFNlbmRlcnM8L2I+PGJyPg0KQXMgc2FtZSBhcyB0cmFuc3BvcnQgcmVjZWl2ZXJzIGl0IGlzIHBvc3NpYmxlIHRvIHJlZ2lzdGVyIHRyYW5zcG9ydCBzZW5kZXJzIGluIHRoZSANCnN5c3RlbSwgYW5kIGxhdHRlciBhdCB0aGUgcnVuIHRpbWUgdGhvc2Ugc2VuZGVycyBjYW4gYmUgdXNlZCB0byBzZW5kIHRoZSBtZXNzYWdlcy4gDQpBcyBhbiBleGFtcGxlIGNvbnNpZGVyIEF4aXMyIHJ1bm5pbmcgdW5kZXIgdG9tY2F0LCB0aGVuIGF4aXMgY2FuIHVzZSBUQ1AgdHJhbnNwb3J0IA0Kc2VuZGVycyB0byBzZW5kIG1lc3NhZ2UgcmF0aGVyIHRoYW4gSFRUUC4gVGhlIHdheSBvZiBzcGVjaWZ5aW5nIHRyYW5zcG9ydCBzZW5kZXJzIGlzIGFzIGZvbGxvd3M6DQo8c291cmNlPjxwcmU+IA0KJmx0O3RyYW5zcG9ydFNlbmRlciBuYW1lPSJodHRwIiBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi50cmFuc3BvcnQuaHR0cC5Db21tb25zSFRUUFRyYW5zcG9ydFNlbmRlciImZ3Q7DQogICAgICAgICZsdDtwYXJhbWV0ZXIgbmFtZT0iUFJPVE9DT0wiIGxvY2tlZD0ieHNkOmZhbHNlIiZndDtIVFRQLzEuMCZsdDsvcGFyYW1ldGVyJmd0Ow0KICZsdDsvdHJhbnNwb3J0U2VuZGVyJmd0OyANCiA8L3ByZT48L3NvdXJjZT4NCm5hbWU6IE5hbWUgb2YgdGhlIHRyYW5zcG9ydCAoaXQgaXMgcG9zc2libGUgdG8gaGF2ZSBodHRwIGFuZCBodHRwMSBhcyB0cmFuc3BvcnQgbmFtZSkNCkNsYXNzOiBJbXBsZW1lbnRhdGlvbiBjbGFzcyBvZiB0aGUgY29ycmVzcG9uZGluZyB0cmFuc3BvcnQuIA0KDQpBcyBzYW1lIGFzIHRyYW5zcG9ydCByZWNlaXZlcnMsIHRyYW5zcG9ydCBzZW5kZXJzIGNhbiBoYXZlIHplcm8gb3IgbW9yZSBwYXJhbWV0ZXJzLCANCmFuZCBpZiB0aGVyZSBpcyBhbnkgdGhlbiBpdCBjYW4gYmUgYWNjZXNzZWQgdmlhIGNvcnJlc3BvbmRpbmcgdHJhbnNwb3J0IHNlbmRlci4gDQo8L3A+DQo8cD4NCjxiPlBoYXNlIE9yZGVyPC9iPjxicj4gDQpUaGUgc3BlY2lmeWluZyBvcmRlciBvZiBwaGFzZXMgaW4gZXhlY3V0aW9uIGNoYWluIGhhcyB0byBiZSBkb25lIHVzaW5nIHBoYXNlIA0Kb3JkZXIgZWxlbWVudCBhbmQgaXQgd2lsbCBiZSBsb29rIGxpa2UgYmVsb3c7DQo8c291cmNlPjxwcmU+DQombHQ7cGhhc2VPcmRlciB0eXBlPSJpbmZsb3ciJmd0Ow0KICAgICAgICAgJmx0O3BoYXNlIG5hbWU9IlRyYW5zcG9ydEluIi8mZ3Q7DQogICAgICAgICCFhYWFhYWFhYWFhYWFDQogICAgICAgICCFhYWFhYWFhYWFhYWFhS4NCiZsdDsvcGhhc2VPcmRlciZndDsgICANCjwvcHJlPjwvc291cmNlPg0KdHlwZTogdGhlIGF0dHJpYnV0ZSByZXByZXNlbnQgdHlwZSBvZiB0aGUgZmxvdyBhbmQgd2hpY2ggY2FuIG9ubHkgYmUgb25lIG9mIHRoZSBmb2xsb3dpbmcNCjwvcD4NCjx1bD4NCjxsaT5pbmZsb3c8L2xpPg0KPGxpPm91dGZsb3c8L2xpPg0KPGxpPklOZmF1bHRmbG93PC9saT4NCjxsaT5PdXRmYXVsdGZsb3c8L2xpPg0KPC91bD4NCg0KPHA+SW4gYWRkaXRpb24gdG8gdGhhdCBvbmx5IGNoaWxkIGVsZW1lbnQgYWxsb3dlZCBpbnNpZGUgcGFoc2VPcmRlciBpcyBwaGFzZSANCmVsZW1lbnQsIHdoaWNoIHJlcHJlc2VudHMgYXZhaWxhYmxlIHBoYXNlcyBpbiB0aGUgZXhlY3V0aW9uIGNoYWluLiAgDQpUaGUgd2F5IG9mIHNwZWNpZnlpbmcgcGhhc2UgaW5zaWRlIHBoYXNlT3JkZXIgaGFzIHRvIGJlIGRvbmUgYXMgZm9sbG93czsNCjxzb3VyY2U+PHByZT4NCiAmbHQ7cGhhc2UgbmFtZT0iVHJhbnNwb3J0SW4iLyZndDsNCjwvcHJlPjwvc291cmNlPg0KbmFtZTogTmFtZSBvZiB0aGUgcGhhc2UuDQo8YnI+DQpUaGVyZSBhcmUgbnVtYmVyIG9mIHRoaW5ncyB0aGF0IG9uZSBoYXMgdG8ga2VlcCBpbiBtaW5kIHdoZW4gY2hhbmdpbmcgcGFoc2VPcmRlciwgDQo8dWw+DQo8b2w+dGhlcmUgYXJlIHBoYXNlcyBjYWxsZWQgc3lzdGVtIHByZS1kZWZpbmVkIHBoYXNlcyBpbiBhbGwgZm91ciBmbG93czs8L29sPg0KPG9sPllvdSBhcmUgbm90IGFsbG93ZWQgY2hhbmdlIHRob3NlICAsIGFuZCB5b3UgY2FuIGFkZCBuZXcgcGhhc2UgYWZ0ZXIgc3lzdGVtIHByZS1kZWZpbmVkIHBoYXNlPC9vbA0KPG9sPklmIHlvdSBjbG9zZWx5IGxvb2sgYXQgdGhlIGRlZmF1bHQgYXhpczIueG1sIGNhbiBjbGVhcmx5IGlkZW50aWZ5IHRoYXQuICA8L29sPg0KPC91bD4NCjwvcD4NCjxwPg0KPGI+TW9kdWxlIFJlZmVyZW5jZXM8L2I+PGJyPg0KSWYgeW91IHdhbnQgdG8gZW5nYWdlIGEgbW9kdWxlIHN5c3RlbSB3aWRlIHlvdSBjYW4gZG8gaXQgYnkgYWRkaW5nIHRvcCANCmxldmVsIG1vZHVsZSBlbGVtZW50IGluIGF4aXMyLnhtbC4gIEl0IHNob3VsZCBiZSBsb29rIGxpa2UgZm9sbG93aW5nOg0KPHNvdXJjZT48cHJlPg0KJmx0O21vZHVsZSByZWY9ImFkZHJlc3NpbmciLyZndDsgIA0KPC9wcmU+PC9zb3VyY2U+DQpyZWY6IHRoZSBtb2R1bGUgbmFtZSB3aGljaCBpcyBnb2luZyB0byBiZSBlbmdhZ2UsIHN5c3RlbSB3aWRlLg0KDQpMaXN0ZW5lcnMgKE9ic2VydmVycykNCkluIEF4aXMyIEF4aXNDb25maWd1cmF0aW9uIGlzIG9ic2VydmFibGUgc28gdGhhdCBvbmUgY2FuIHJlZ2lzdGVyIG9ic2VydmVycyBpbnRvIA0KdGhhdCwgYW5kIHRoZXkgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGluZm9ybWVkIHdoZW5ldmVyIGEgY2hhbmdlIG9jY3VycyBpbiANCkF4aXNDb25maXVyYXRpb24uIEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRoZSBvYnNlcnZlcnMgYXJlIGluZm9ybWVkIG9mIHRoZSBmb2xsb3dpbmcgZXZlbnRzDQoNCjx1bD4NCjxsaT5EZXBsb3lpbmcgYSBTZXJ2aWNlPC9saT4NCjxsaT5SZW1vdmluZyBhIHNlcnZpY2U8L2xpPg0KPGxpPkNoYW5naW5nIGEgc2VydmljZTwvbGk+IA0KPC91bD4NClJlZ2lzdGVyaW5nIE9ic2VydmVycyBpcyB2ZXJ5IHVzZWZ1bCBmb3IgYWRkaXRpb25hbCBmZWF0dXJlcyBzdWNoIGFzIFJTUyBmZWVkIA0KZ2VuZXJhdGlvbiB3aGljaCB3aWxsIHByb3ZpZGUgc2VydmljZSBpbmZvcm1hdGlvbiB0byBzdWJzY3JpYmVycy4gVGhlIGNvcnJlY3QNCiB3YXkgb2YgcmVnaXN0ZXJpbmcgb2JzZXJ2ZXJzIHNob3VsZCBiZSBsaWtlIGJlbG93Ow0KPHNvdXJjZT48cHJlPg0KJmx0O2xpc3RlbmVyIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLk9ic2VydmVySU1QTCImZ3Q7DQogICAgJmx0O3BhcmFtZXRlciBuYW1lPSJSU1NfVVJMIiAmZ3Q7aHR0cDovLzEyNy4wLjAuMS9yc3MmbHQ7L3BhcmFtZXRlciZndDsNCiAgJmx0Oy9saXN0ZW5lciZndDsNCjwvcHJlPjwvc291cmNlPg0KY2xhc3M6IFJlcHJlc2VudCBhbiBJbXBsZW1lbnRhdGlvbiBjbGFzcyBvZiBvYnNlcnZlciwgYW5kIGl0IHNob3VsZCBiZSBub3RlDQogdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3Mgc2hvdWxkIGltcGxlbWVudCBBeGlzT2JzZXJ2ZXIgaW50ZXJmYWNlLA0KICBhbmQgdGhlIGNsYXNzIGhhcyB0byBiZSBhdmFpbGFibGUgaW4gdGhlIGNsYXNzcGF0aC4gDQo8L3A+DQoNCjxicj4NCg0KPGZvbnQgY29sb3I9ImJsdWUiPjxiPlNlcnZpY2UgQ29uZmlndXJhdGlvbjwvYj48L2ZvbnQ+DQo8bGk+PGEgbmFtZT0ic2VydmljZSI+PC9hPldyaXRpbmcgc2VydmljZS54bWw8L2xpPg0KPHA+DQpUaGUgZGVzY3JpcHRpb24gb2Ygc2VydmljZSBpcyBzcGVjaWZpZWQgdXNpbmcgc2VydmljZS54bWwsIGVhY2ggc2VydmljZSBhcmNoaXZlIA0KZmlsZSBuZWVkIHRvIGhhdmUgc2VydmljZS54bWwgaW4gb3JkZXIgdG8gYmUgYSB2YWxpZCBzZXJ2aWNlLiBBbmQgd2hpY2ggaGFzIHRvIGJlIA0KYXZhaWxhYmxlIGluIE1FVEEtSU5GIGRpcmVjdG9yeSBvZiB0aGUgYXJjaGl2ZSBmaWxlLiANCjxicj4NCkEgdmVyeSBzaW1wbGUgc2VydmljZS54bWwgaXMgc2hvd24gYmVsb3c6DQo8c291cmNlPjxwcmU+DQombHQ7c2VydmljZSBuYW1lPSJOYW1lIG9mIHRoZSBzZXJ2aWNlIiZndDsNCiAgICAmbHQ7ZGVzY3JpcHRpb24mZ3Q7IFRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgc2VydmljZSAgJmx0Oy9kZXNjcmlwdGlvbiZndDsNCg0KICAgICZsdDtwYXJhbWV0ZXIgbmFtZT0iU2VydmljZUNsYXNzIiAgICAgbG9ja2VkPSJ4c2Q6ZmFsc2UiJmd0O29yZy5hcGFjaGUuYXhpczIuc2FtcGxlLmVjaG8uRWNob0ltcGwmbHQ7L3BhcmFtZXRlciZndDsNCiAgICANCiAgJmx0O2luZmxvdyZndDsNCiAgICAgICAgJmx0O2hhbmRsZXIgbmFtZT0ibG9nZ2luZyIgY2xhc3M9Im9yZy5hcGFjaGUuYXhpczIuc2FtcGxlLmhhbmRsZXJzLkxvZ2dpbmdIYW5kbGVyIiZndDsNCiAgICAgICAgICAgICZsdDtvcmRlciBwaGFzZT0idXNlcnBoYXNlMSIgcGhhc2VGaXJzdD0idHJ1ZSIvJmd0Ow0KICAgICAgICAmbHQ7L2hhbmRsZXImZ3Q7DQogICAgJmx0Oy9pbmZsb3cmZ3Q7DQogICAgJmx0O291dGZsb3cvJmd0Ow0KICAgICZsdDtJTmZhdWx0ZmxvdyZndDuFLi4gJmx0Oy9JTmZhdWx0ZmxvdyZndDsNCiAgICAmbHQ7T3V0ZmF1bHRmbG93Jmd0OyCFLiZsdDsvT3V0ZmF1bHRmbG93Jmd0Ow0KDQogICAgJmx0O29wZXJhdGlvbiBuYW1lPSJlY2hvU3RyaW5nIiZndDsNCiAgICAgICAgJmx0O21vZHVsZSByZWY9IiBhIG1vZHVsZSBuYW1lICIvJmd0Ow0KICAgICAgICAmbHQ7bWVzc2FnZVJlY2VpdmVyIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLnJlY2VpdmVycy5SYXdYTUxJTk91dE1lc3NhZ2VSZWNlaXZlciIvJmd0Ow0KICAgICZsdDsvb3BlcmF0aW9uJmd0Ow0KICAmbHQ7L3NlcnZpY2UmZ3Q7DQo8L3NvdXJjZT48L3ByZT4NCg0Kc2VydmljZSBuYW1lOiBZb3UgY2FuIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UsIGlmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGUgDQpzZXJ2aWNlIG5hbWUgdGhlbiB0aGUgYXJjaGl2ZSBmaWxlIG5hbWUgd2lsbCBiZSB0aGUgbmFtZSBvZiB0aGUgc2VydmljZS4gDQo8YnI+DQpkZXNjcmlwdGlvbjogVGhpcyBpcyBhbiBvcHRpb25hbCBlbGVtZW50IGlmIHlvdSB3YW50IHRvIGRpc3BsYXkgYW55IGRlc2NyaXB0aW9uIA0KYWJvdXQgdGhlIHNlcnZpY2UgdmlhIEF4aXMyIHdlYi1hZG1pbiBtb2R1bGUgdGhlbiB0aGUgZGVzY3JpcHRpb24gY2FuIGJlIHNwZWNpZmllZCBoZXJlLiANCjwvcD4NCjxwPg0KPGI+UGFyYW1ldGVyOjwvYj48YnI+DQpzZXJ2aWNlLnhtbCBjYW4gaGF2ZSBhbnkgbnVtYmVyIG9mIHRvcCBsZXZlbCBwYXJhbWV0ZXJzIGFuZCBhbGwgdGhlIHNwZWNpZmllZCANCnBhcmFtZXRlcnMgd2lsbCBiZSB0cmFuc2Zvcm1lZCBpbnRvIHNlcnZpY2UgcHJvcGVydGllcyBpbiBjb3JyZXNwb25kaW5nIFNlcnZpY2VEZXNjcnB0aW9uLiANClRoZXJlIGlzIGEgY29tcHVsc29yeSBwYXJhbWV0ZXIgaW4gYSBzZXJ2aWNlLnhtbCBjYWxsZWQgU2VydmljZUNsYXNzIHdoaWNoIHNwZWNpZnkgdGhlIA0KamF2YSBjbGFzcyB3aGljaCByZWFsbHkgZG9lcyB0aGUgam9iIGFuZCB0aGUgY2xhc3Mgd2lsbCBiZSBsb2FkZWQgYnkgTWVzc2FnZVJlY2VpdmVyLg0KPC9wPg0KPHA+DQo8Yj5GbG93IDo8L2I+PGJyPg0KSXQgaXMgcG9zc2libGUgdG8gYWRkIGhhbmRsZXJzIGludG8gYSBmbG93IGRpcmVjdGx5IGZvcm0gc2VydmljZS54bWwgcmF0aGVyIHRoYW4gDQplbmdhZ2luZyBhIG1vZHVsZXMgYW5kIHRoZSB3YXkgb2YgZG9pbmcgdGhhdCBpcyB0aHJvdWdoIGZsb3cgZWxlbWVudHMuIA0KSXQgaXMgcG9zc2libGUgdG8gYWRkIGFueSBudW1iZXIgb2YgaGFuZGxlcnMgaW50byBhIGZsb3cgYW5kIHRob3NlIGhhbmRsZXJzIA0Kd2lsbCBiZSBhdmFpbGFibGUgaW4gY29ycmVzcG9uZGluZyBvcGVyYXRpb25zIGZsb3dzIGluIHRoZSBzZXJ2aWNlIA0KKGluZmxvdyBjb25zaXN0IG9mIHR3byBwYXJ0cywgb25lIHBhcnQgaXMgdXAgdG8gcG9zdCBkaXNwYXRjaCBwaGFzZSBhbmQgb3RoZXIgDQpwYXJ0IGlzIGNvbnNpc3Rpbmcgb2Ygb3BlcmF0aW9uIGhhbmRsZXJzKSAgDQo8YnI+DQpUaGVyZSBhcmUgZm91ciB0eXBlcyBvZiB2YWxpZCBmbG93cyB0aGF0IGNhbiBiZSBhdmFpbGFibGUgaW4gc2VydmljZS54bWwsDQogYW5kIHRoZSBhZGRpbmcgdGhlIGhhbmRsZXMgaW50byB0aGVtIGNhbiBiZSBkb25lIGJ5IGZvbGxvd2luZyB0aGUgYWJvdmUgcHJvY2VkdXJlLiANCjxicj4NClZhbGlkIGZsb3dzOg0KPHVsPg0KPGxpPkluZmxvdzwvbGk+DQo8bGk+b3V0ZmxvdzwvbGk+DQo8bGk+SU5mYXVsdGZsb3c8L2xpPg0KPGxpPk91dGZhdWx0ZmxvdzwvbGk+DQo8L3VsPg0KPC9wPg0KPHA+DQo8Yj5IYW5kbGVyPC9iPjxicj4NCkhhbmRsZXIgZWxlbWVudCBjb25zaXN0cyBvZiBjb21wdWxzb3J5IGFuZCBvcHRpb25hbCBhdHRyaWJ1dGUgYW5kIHRoZSB3YXkgb2YgZGVmaW5pbmcgYSBoYW5kbGVyIHdpbGwgYmUgbG9vayBsaWtlIGZvbGxvd3M7DQo8c291cmNlPjxwcmU+DQombHQ7aGFuZGxlciBuYW1lPSJoYW5kbGVyMSIgY2xhc3M9ImhhbmRsZXJDbGFzcyAiJmd0Ow0KICAgICAgICAgICAgJmx0O29yZGVyIHBoYXNlPSJ1c2VycGhhc2UxIiAvJmd0Ow0KICZsdDsvaGFuZGxlciZndDsNCjwvc291cmNlPjwvcHJlPg0KDQo8Yj48aT5Db21wdWxzb3J5IGF0dHJpYnV0ZXM8L2k+PC9iPiA8YnI+DQpuYW1lOiBuYW1lIG9mIHRoZSBoYW5kbGVyPGJyPg0Kbmxhc3M6IGhhbmRsZXIgaW1wbGVtZW50YXRpb24gY2xhc3M8YnI+DQpwaGFzZTogbmFtZSBvZiB0aGUgcGhhc2UgdGhhdCB0aGUgaGFuZGxlciBzaG91bGQgc3RheSBpbiB0aGUgZXhlY3V0aW9uIGNoYWluDQo8YnI+PGJyPg0KPGk+PGI+T3B0aW9uYWwgYXR0cmlidXRlcyA6PC9iPjwvaT48YnI+DQpwaGFzZUxhc3Q6IHRvIGluZGljYXRlIHRoZSBoYW5kbGVyIGlzIGxhc3QgaGFuZGxlciBvZiB0aGUgcGhhc2U8YnI+DQpwaGFzZUZpcnN0OiB0byBpbmRpY2F0ZSB0aGUgaGFuZGxlciBpcyBmaXJzdCBoYW5kbGVyIG9mIHRoZSBwaGFzZS48YnI+DQpiZWZvcmUgOiB0aGUgaGFuZGxlciBzaG91bGQgYmUgaW52b2tlZCBiZWZvcmUgdGhlIGhhbmRsZXIgc3BlY2lmaWVkIGJ5IGJlZm9yZSBoYW5kbGVyPGJyPg0KYWZ0ZXI6ICB0aGUgaGFuZGxlciBzaG91bGQgYmUgaW52b2tlZCBhZnRlciB0aGUgaGFuZGxlciBzcGVjaWZpZWQgYnkgYWZ0ZXIgaGFuZGxlcjxicj4NCjwvcD4NCjxwPg0KPGI+T3BlcmF0aW9uczwvYj48YnI+DQpBbGwgdGhlIG9wZXJhdGlvbnMgeW91IGFyZSBnb2luZyB0byBleHBvc2VieSB0aGUgc2VydmljZSBoYXMgdG8gYmUgaW5kaWNhdGVkIGluIHRoZSBzZXJ2aWNlLnhtbCBhbmQgdGhlIGNvcnJlY3Qgd2F5IG9mIHNwZWNpZnlpbmcgdGhhdCBzaG91bGQgYmUgYXMgZm9sbG93czoNCiA8c291cmNlPjxwcmU+DQogICAgJmx0O29wZXJhdGlvbiBuYW1lPSJlY2hvU3RyaW5nIiZndDsNCiAgICAgICAgJmx0O21vZHVsZSByZWY9IiBhIG1vZHVsZSBuYW1lICIvJmd0Ow0KICAgICAgICAmbHQ7bWVzc2FnZVJlY2VpdmVyIGNsYXNzPSJvcmcuYXBhY2hlLmF4aXMyLnJlY2VpdmVycy5SYXdYTUxJTk91dE1lc3NhZ2VSZWNlaXZlciIvJmd0Ow0KICAgICZsdDsvb3BlcmF0aW9uJmd0Ow0KPC9zb3VyY2U+PC9wcmU+DQpPbmx5IGNvbXB1bHNvcnkgYXR0cmlidXRlIGhlcmUgaXMgbmFtZSwgd2hpY2ggcmVwcmVzZW50IHRoZSBvcGVyYXRpb24gbmFtZSB0aGF0IGlzIGdvaW5nIHRvIGJlIGV4cG9zZWQuIEFueSBvcGVyYXRpb24gY2FuIGNvbnRhaW5zIG1vZHVsZSByZWZlcmVuY2VzLCBhbnkgbnVtYmVyIG9mIHBhcmFtZXRlcnMuIFRoZSBtb3N0IGludGVyZXN0aW5nIGlzIHRoYXQgb25lIGNhbiByZWdpc3RlciBjdXN0b20gbWVzc2FnZSByZWNlaXZlciBwZXIgb3BlcmF0aW9uLCB0aGVuIHRoZSByZWdpc3RlcmVkIG1lc3NhZ2UgcmVjZWl2ZXIgd2lsbCBiZSB0aGUgbWVzc2FnZSByZWNlaXZlciBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgb3BlcmF0aW9uLiBJZiBvbmUgZG9lcyBub3Qgc3BlY2lmeSB0aGUgbWVzc2FnZSByZWNlaXZlciB0aGVuIHRoZSBkZWZhdWx0IG1lc3NhZ2UgcmVjZWl2ZXIgd2lsbCBkbyB0aGUgam9iLiANCjwvcD4NCjxicj4NCg0KPGZvbnQgY29sb3I9ImJsdWUiPjxiPk1vZHVsZSBDb25maWd1cmF0aW9uPC9iPjwvZm9udD4NCjxsaT48YSBuYW1lPSJtb2R1bGUiPjwvYT5Xcml0aW5nIG1vZHVsZS54bWw8L2xpPg0KPHA+DQpUaGUgZGVzY3JpcHRpb24gb2YgbW9kdWxlIGlzIHNwZWNpZmllZCB1c2luZyBtb2R1bGUueG1sLCBlYWNoIG1vZHVsZSBhcmNoaXZlIGZpbGUgbmVlZCB0byBoYXZlIG1vZHVsZS54bWwgaW4gb3JkZXIgdG8gYmUgYSB2YWxpZCBtb2R1bGUuIEFuZCB3aGljaCBoYXMgdG8gYmUgYXZhaWxhYmxlIGluIE1FVEEtSU5GIGRpcmVjdG9yeSBvZiB0aGUgYXJjaGl2ZSBmaWxlLiANCjxicj4NCkEgdmVyeSBzaW1wbGUgbW9kdWxlLnhtbCBpcyBzaG93biBiZWxvdzoNCjxzb3VyY2U+PHByZT4NCiZsdDttb2R1bGUgbmFtZT0ibW9kdWxlMSIgY2xhc3M9Im9yZy5hcGFjaGUubW9kdWxlLk1vZHVsZTFJbXBsIiZndDsNCiAgICAmbHQ7aW5mbG93Jmd0Ow0KICAgICAgICCFhYWFhYWFhS4NCiAgICAmbHQ7L2luZmxvdyZndDsNCiAgICAmbHQ7b3V0ZmxvdyZndDsNCiAgICAgICCFhYWFhYWFhYUNCiAgICAmbHQ7L291dGZsb3cmZ3Q7DQoNCiAgICAmbHQ7T3V0ZmF1bHRmbG93Jmd0Ow0KICAgICAgIIWFhYWFhYWFhS4uDQogICAgJmx0Oy9PdXRmYXVsdGZsb3cmZ3Q7DQoNCiAgICAmbHQ7SU5mYXVsdGZsb3cmZ3Q7DQogICAgICCFhYWFhYWFhYWFLg0KICAgICZsdDsvSU5mYXVsdGZsb3cmZ3Q7DQoNCiAgICAmbHQ7b3BlcmF0aW9uIG5hbWU9ImNyZWF0U2VxIiBtZXA9Ik1FUF9VUklfSU5fT1VUIiZndDsNCiAgICAgICAgJmx0O21lc3NhZ2VSZWNlaXZlciBjbGFzcz0ib3JnLmFwYWNoZS5heGlzMi5yZWNlaXZlcnMuUmF3WE1MSU5PdXRNZXNzYWdlUmVjZWl2ZXIiLyZndDsNCiAgICAgICAgJmx0O3BhcmFtZXRlciBuYW1lPSJwYXJhMSIgbG9ja2VkPSJ4c2Q6dHJ1ZSImZ3Q7MTAmbHQ7L3BhcmFtZXRlciZndDsNCiAgICAmbHQ7L29wZXJhdGlvbiZndDsNCiZsdDsvbW9kdWxlJmd0Ow0KPC9zb3VyY2U+PC9wcmU+DQoNCm5hbWU6IFRoaXMgaXMgYSBjb21wdWxzb3J5IGF0dHJpYnV0ZSBhbmQgd2hpY2ggaW5kaWNhdGVzIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUNCjxicj4NCmNsYXNzOiBUaGlzIGlzIGFuIG9wdGlvbmFsIGF0dHJpYnV0ZSB3aGljaCBpbmRpY2F0ZSBtb2R1bGUgaW1wbGVtZW50YXRpb24gY2xhc3MsIGEgbW9kdWxlIG1heSBvciBtYXkgbm90IGNvbnRhaW4gbW9kdWxlIGltcGxlbWVudGF0aW9uIGNsYXNzIHNpbmNlIHRoZSBtb2R1bGUgY2FuIGFsc28gYmUgYSBjb2xsZWN0aW9uIG9mIGhhbmRsZXJzLiBJZiBhIG1vZHVsZSBjb250YWlucyBhbiBpbXBsZW1lbnRhdGlvbiBjbGFzcyB3aGljaCBpbXBsZW1lbnRzIHRoZSBvcmcuYXBhY2hlLmF4aXMyLm1vZHVsZXMuTW9kdWxlIGludGVmYWNlIHdoZXJlIGF0IHRoZSBkZXBsb3ltZW50IHRpbWUgaXRzIGluaXQoKTsgbWV0aG9kIHdpbGwgYmUgY2FsbGVkLiANCjwvcD4NCg0KPHA+DQo8Yj5wYXJhbWV0ZXI6PC9iPg0KTW9kdWxlIGNhbiBjb250YWlucyBhbnkgbnVtYmVyIG9mIHBhcmFtZXRlcnMgYW5kIGFsbCB0aGUgbGlzdGVkIHBhcmFtZXRlcnMgaW4gdGhlIG1vZHVsZS54bWwgd2lsbCBiZSB0cmFuc2Zvcm1lZCBpbnRvIGNvcnJlc3BvbmRpbmcgTW9kdWxlRGVzY3JpcHRpb24gb2YgdGhlIG1vZHVsZS4gDQo8L3A+PHA+DQo8Yj5mbG93OjwvYj4NCkZsb3cgY29uY2VwdCBpcyBleGFjdGx5IHRoZSBzYW1lIGFzIHNlcnZpY2UgZmxvd3MuIA0KPC9wPjxwPg0KPGI+b3BlcmF0aW9uczwvYj4NCklmIGEgbW9kdWxlIHdhbnRzIHRvIGFkZCBhbiBvcGVyYXRpb24gd2hlbiBpdCBpcyBlbmdhZ2VkIGludG8gYSBzZXJ2aWNlIGl0IGNhbiBiZSBkb25lIGJ5IGFkZGluZyBvcGVyYXRpb24gdGFnIGluIG1vZHVsZS54bWwgYW5kIHRoZSB3YXkgb2Ygc3BlY2lmeWluZyB0aGUgb3BlcmF0aW9uIGlzIHNhbWUgYXMgb3BlcmF0aW9uIGluIHNlcnZpY2UueG1sLiAgDQoNCjwvcD4NCjxicj4NCg0KDQo8L2JvZHk+DQo8L2h0bWw+DQo=