PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgkQXBwLT5nZXRQcm9qZWN0Q29tbW9uKCkpOyAgICAjIEFsbCBvbiB0aGUgc2FtZSBsaW5lIHRvIHVuY2x1dHRlciB0aGUgdXNlcidzIGRlc2t0b3AnDQoNCiRwYWdlVGl0bGUgCQk9ICIiOw0KJHBhZ2VLZXl3b3Jkcwk9ICIiOw0KJHBhZ2VBdXRob3IJCT0gIiI7DQoNCm9iX3N0YXJ0KCk7DQo/Pg0KDQogDQoJPGRpdiBpZD0ibWFpbmNvbnRlbnQiPg0KCTxkaXYgaWQ9Im1pZGNvbHVtbiI+DQoNCjxoMT5lQlBNPC9oMT4NCjwvcD4NCjw/cGhwDQppbmNsdWRlX29uY2UoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICIvcHJvamVjdHMvZnJhZ21lbnRzL3Byb3Bvc2FsLXBhZ2UtaGVhZGVyLnBocCIpOw0KZ2VuZXJhdGVfaGVhZGVyKCJlQlBNIik7DQo/Pg0KDQo8aDI+SW50cm9kdWN0aW9uPC9oMj4NCg0KPHAgYWxpZ249ImxlZnQiPkVCUE0gaXMgYW4gb3BlbiBzb3VyY2UgcHJvamVjdCBwcm9wb3NlZCB1bmRlciB0aGUgRWNsaXBzZSBTT0EgVG9wLUxldmVsIFByb2plY3QsIA0KaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBFY2xpcHNlIERldmVsb3BtZW50IFByb2Nlc3MuIEV2ZXJ5b25lIGlzIGludml0ZWQgdG8gam9pbiB0aGUgcHJvamVjdCANCmFuZCB0byBwcm92aWRlIHRoZWlyIGZlZWRiYWNrIHVzaW5nIA0KdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZm9ydW1zL2VjbGlwc2UuZWJwbSI+ZUJQTSBmb3J1bTwvYT4uDQo8L3A+DQoJDQo8aDI+T3ZlcnZpZXc8L2gyPg0KPHAgYWxpZ249ImxlZnQiPg0KQXQgcHJlc2VudCwgdGhlIE9TR2kgdGVjaG5vbG9neSBhcHBlYXJzIHRvIGJlIHRoZSBiZXN0IGFuc3dlciB0byB0aGUgZGVtYW5kIG9mIHN0YWJsZSwgbW9kdWxhciBhbmQgZWFzaWx5IGV4dGVuc2libGUgc29sdXRpb25zIGFjY29yZGluZyB0byB0aGUgU09BIGd1aWRlbGluZXMuIE9uIHRoZSBvdGhlciBoYW5kLCBPU0dpIHJlYWxseSBtaXNzZXMgYSBjZW50cmFsIGNvbmNlcHQgb2YgYSBCUE0gcGxhdGZvcm0gdGhhdCBlbmFibGVzIHRvIGRlc2NyaWJlIHRoZSBpbnRlZ3JhdGlvbiBwcm9jZXNzIGluIHRlcm1zIG9mIE9TR2kgc2VydmljZXMgb3JjaGVzdHJhdGlvbi4NClRoZSBlQlBNIGFpbXMgYXQgdGhlIHJlYWxpemF0aW9uIG9mICBhIGNvbXBsZXRlIEJQTSBzb2x1dGlvbiBmb3IgT1NHaS4gVGhlIHByb2plY3Qgd2lsbCBhbHNvIHByb3ZpZGUgYWxzbyBwcm92aWRlIFVJIGFuZCBydW50aW1lIHN1cHBvcnRzLCB0byBiZSBhYmxlIHRvIGRlcGxveSBhbmQgbWFuYWdlIE9TR2kgc2VydmljZXMsIGluIGRlY2xhcmF0aXZlIHdheSBsZXZlcmFnaW5nIHRoZSBjYXBhYmlsaXRpZXMgb2YgT1NHaSBkZWNsYXJhdGl2ZSBzZXJ2aWNlcy4NCkluIGVCUE0gIHdpbGwgcHJvcG9zZSB0d28gYXBwcm9hY2ggdG8gcmVhbGl6ZSBhIEJQTSBTb2x1dGlvbiBmb3IgT1NHaToNCg0KPHVsPg0KPGxpPjxiPiBQcm92aWRpbmcgYSBCUE0gR2F0ZXdheSBCdW5kbGUgaW50byB0aGUgT1NHaSBjb250YWluZXIgdGhhdCBpcyBhYmxlIHRvIHJlYWxpemUgdGhlIG9yY2hlc3RyYXRpb24gb2YgIG90aGVyIHNlcnZpY2VzLjwvYj4gPC9saT4NCjxsaT4gPGI+RW1iZWRkaW5nIHRoZSBPU0dpIHJ1bnRpbWUgaW4gYW4gZXh0ZXJuYWwgQlBNIEVuZ2luZSwgYW5kIGV4dGVuZGluZyB0aGlzIHRvIGJlIGFibGUgdG8gdXNlIHRoZSBzZXJ2aWNlcyBwcm92aWRlZCBieSB0aGUgY29udGFpbmVyLjwvYj48L2xpPg0KPC91bD4NCg0KVGhlIHByb3Bvc2FsIGFsc28gaW5jbHVkZXMgYSBjb25zb2xlICggZWNsaXBzZSB2aWV3L3BlcnNwZWN0aXZlICkgZm9yIG1hbmFnZW1lbnQgYW5kIG1vbml0b3JpbmcgYWN0aXZpdGllcy4NClRoZSBjb21wbGV0ZSBsaXN0IG9mIHByb3Bvc2VkIGNvbXBvbmVudHMgaXMgaW4gdGhlIHByb3Bvc2VkIGNvbXBvbmVudHMgcGFyYWdyYXBoLg0KDQo8L3A+DQoNCjxoMj5Qcm9qZWN0IFNjb3BlPC9oMj4NCjxwIGFsaWduPSJsZWZ0Ij5UaGUgZUJQTSAgcHJvamVjdCB3aWxsIGZvY3VzIG9uIHByb3ZpZGluZyAgYm90aCBydW50aW1lLCBhbmQgc3VwcG9ydCB0b29scyB0byByZWFsaXplIGEgY29tcGxldGUgQlBNIHNvbHV0aW9uIGJhc2VkIG9uIE9TR2kgDQpGb3IgdGhlIHJ1bnRpbWUgcGFydCB0aGUgZUJQTSBwcm9qZWN0IHdpbGwgcHJvdmlkZToNCjx1bD4NCjxsaT5BIGNvcmUgZnJhbWV3b3JrIChlQlBNIENvcmUgZnJhbWV3b3JrICkgdG8gZGV2ZWxvcCwgY29uZmlndXJlIGFuZCBtYW5hZ2UgT1NHaSBzZXJ2aWNlcyBiYXNlZCBvbiBtZXNzYWdpbmcgcGFyYWRpZ20uIFRoZSBjb3JlIGZyYW1ld29yayB3aWxsIGJlIGJ1aWx0IG9uIHRvcCBvZiBFcXVpbm94IHJ1bnRpbWUgcHJvamVjdC48L2xpPg0KPGxpPkEgc2V0IG9mIHN0YW5kYXJkIGNvbm5lY3Rpdml0eSAoIFNPQVAsIEpNUyBldGMuLiApIGFuZCBidXNpbmVzcyBzZXJ2aWNlcyBidWlsdCBvbiB0b3Agb2YgZUJQTSBjb3JlIGZyYW1ld29yay4gIEZvciBjb25uZWN0aXZpdHkgc2VydmljZSBvbmUgb2YgdGhlIHByb2plY3QgZ29hbHMgaXMgdG8gY29sbGFib3JhdGUgd2l0aCBFQ0YgcnVudGltZSBwcm9qZWN0IGFuZCB3aXRoIFN3b3JkZmlzaCBiYXNlZCBjb25uZWN0b3JzLjwvbGk+DQo8bGk+T3JjaGVzdHJhdGlvbiBvZiBPU0dpIHNlcnZpY2VzIGluIHRoZSBjb3JlIGZyYW1ld29yaywgdGhyb3VnaCBvbmUgb3IgbW9yZSBidW5kbGVzIChCUE1HYXRld2F5KS48L2xpPg0KPGxpPkV4dGVuc2lvbnMgdG93YXJkcyB0aGUgQXBhY2hlIE9ERSBlbmdpbmUgc28gYXMgdG8gYmUgYWJsZSB0byBlbWJlZCAgRXF1aW5veCBhbmQgZUJQTSBjb3JlIHNlcnZpY2VzIGluIHRoZSBCUEVMIGVuZ2luZS48L2xpPg0KPGxpPkEgbWV0YWRhdGEgbW9kZWwgdG8gaGF2ZSAgYSBwZXJzaXN0ZW50IG1vZGVsIGZvciBlQlBNIHByb2plY3RzLjwvbGk+DQo8L3VsPg0KPC9wPg0KPHA+DQpUaGUgcHJvamVjdCB3aWxsIHByb3ZpZGUgc3VwcG9ydCBhbmQgZGVwbG95bWVudCB0b29scyBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gb2Ygc2VydmljZXMgZm9yIHRoZSBlQlBNIGNvcmUgZnJhbWV3b3JrIGFuZCBhIG1vbml0b3JpbmcgdWkgcGVyc3BlY3RpdmUgdG8gbWFuYWdlIHJ1bnRpbWUgaW5mb3JtYXRpb24sIHNvIHRoYXQgdGhlIHByb3Bvc2FsIGRvZXMgbm90IGFpbSB0byByZXBsYWNlIG9yIHN1YnN0aXR1dGUgZXhpc3RpbmcgT1NHaSBkZXZlbG9wbWVudCB0b29scyAoIFBERSApLg0KPC9wPg0KPHA+DQpUaGUgcHJvcG9zYWwgZG9lcyBub3QgYWltIGF0IHByb3ZpZGluZyBwcm9jZXNzIGRldmVsb3BtZW50IHRvb2xzIGFuZCBTT0EgbWV0YW1vZGVsLCBidXQgaXQgd2lsbCB1c2UgYW5kIGV4dGVuZCBleGlzdGluZyBFY2xpcHNlIHByb2plY3RzIGxpa2UgRWNsaXBzZSBCUE1OIE1vZGVsZXIsIEVjbGlwc2UgQlBFTCBFZGl0b3IgYW5kIFNUUCBpbnRlcm1lZGlhdGUgbW9kZWwgKCBub3cgTWFuZ3JvdmUgcHJvamVjdCApLiAgZUJQTSB3aWxsIGZvY3VzIG9uIGNvZGUgZ2VuZXJhdGlvbiBjYXBhYmlsaXRpZXMuPC9wPg0KPC9wPg0KPHA+DQpUaGUgZm9sbG93aW5nIHNjaGVtZXMgaWxsdXN0cmF0ZSB0aGUgcHJvcG9zZWQgYXJjaGl0ZWN0dXJhbCBydW50aW1lIHNlcnZpY2VzIHRoYXQgd2lsbCBiZSBpbXBsZW1lbnRlZC4gDQo8L3A+DQo8cD4NCjxpbWcgc3JjPSJhcmNoX2dlbmVyYWwuanBnIi8+PC9wPg0KV2hlbiB3ZSBuZWVkIGFuIGV4dGVybmFsIEJQTSBFbmdpbmUgbGlrZSBCUEVMLCB0aGUgcnVudGltZSBwYXJ0IHdpbGwgYmVjb21lOg0KPHA+DQo8aW1nIHNyYz0iYXJjaF9icGVsLmpwZyIvPg0KPC9wPg0KPC9wPg0KDQoNCjxoMj5Qcm9wb3NlZCBDb21wb25lbnRzPC9oMj4NCjxwIGFsaWduPSJsZWZ0Ij4NCjxiPk9TR2kgQnVuZGxlczo8L2I+DQo8dWw+DQo8bGk+PGI+ZUJQTSBDb3JlIEZyYW1ld29yazo8L2I+IFNldCBvZiBidW5kbGVzLCB0aGF0IGxldmVyYWdlIHRoZSBjYXBhYmlsaXRpZXMgb2YgT1NHaSBEZWNsYXJhdGl2ZSBTZXJ2aWNlcywgdG8gcHJvdmlkZSBhIGNvbW1vbiB3YXkgdG8gZGVmaW5lL2RldmVsb3AgT1NHaSBzZXJ2aWNlcy5lQlBNIGNvcmUgZnJhbWV3b3JrIHdpbGwgIHByb3ZpZGUgYSB3YXkgdG8gcmVhbGl6ZSBPU0dpIFNlcnZpY2VzIGJhc2VkIG9uIHRoZSBtZXNzYWdpbmcgcGFyYWRpZ20gdGhhdCB1c2UgdGhlIE9TR2kgRXZlbnQgQWRtaW4gU2VydmljZSB0byBjb21tdW5pY2F0ZSB3aXRoIGVhY2ggb3RoZXJzLjwvbGk+DQoNCjxsaT48Yj5lQlBNIERlcGxveW1lbnQgU2VydmljZTo8L2I+IEJ1bmRsZSB0aGF0IHdpbGwgcHJvdmlkZSBhbiBPU0dpIFNlcnZpY2UsIHRoYXQgd2lsbCBsb29rIGZvciBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgd2lsbCBwdWJsaXNoIE9TR2kgc2VydmljZXMgdXNpbmcgZmFjaWxpdGllcyBvZmZlcmVkIGJ5IERTIGFuZCBEUyBDb21wb25lbnQgRmFjdG9yaWVzLjwvbGk+DQoNCjxsaT48Yj5CUE0gR2F0ZXdheSBBUEk6PC9iPiBUaGUgYnVuZGxlIGRlZmluaW5nIHRoZSBpbnRlcmZhY2UgZm9yIEJQTSBHYXRld2F5IGltcGxlbWVudGF0aW9ucy48L2xpPg0KDQo8bGk+PGI+QlBNIEdhdGV3YXkgUHJvY2VzcyBFbmdpbmU6PC9iPiBUaGUgYnVuZGxlIGNvbnRhaW5pbmcgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIEFQSSBiYXNlZCBvbiBhbiBvcGVuIHNvdXJjZSBwcm9jZXNzIGVuZ2luZSAoIGZvciBleGFtcGxlIGpicG0gKTwvbGk+DQoNCjxsaT48Yj5TdGFuZGFyZCBDb25uZWN0b3JzIGFuZCAgU2VydmljZXM6PC9iPiBCdW5kbGVzIHRoYXQgcHJvdmlkZSBjb21tb24gY29ubmVjdGl2aXR5LCBhbmQgYnVzaW5lc3Mgc2VydmljZXMgKFNPQVAsIEpNUywgRmlsZSBTeXN0ZW0sIEZUUCwgVENQIHdpdGggcGx1Z2dhYmxlIGFwcGxpY2F0aXZlIHByb3RvY29sIGltcGxlbWVudGF0aW9ucywgUXVhcnR6LCBYU0xUIFRyYW5zZm9ybWF0aW9uIHNlcnZpY2UsIEdyb292eSwgSkRCQywgWFNEIFZhbGlkYXRpb24gKTwvbGk+DQoNCg0KPGxpPjxiPmVCUE0gTW9uaXRvcmluZyBTZXJ2aWNlczo8L2I+IFRoZSBzZXQgb2YgYnVuZGxlIHRoYXQgd2lsbCBsZXZlcmFnZSBpbmZvcm1hdGlvbiBmcm9tIHJ1bnRpbWUgYW5kIHN0b3JlIGludG8gYSByZWxhdGlvbmFsIGRhdGFiYXNlLjwvbGk+DQo8L3VsPg0KDQo8Yj5NZXRhZGF0YSBNb2RlbDwvYj4NCjxwPg0KVGhlIHJlbGF0aW9uYWwgbW9kZWwgdXNlZCBieSBlQlBNIHRvIHN0b3JlIG1vbml0b3JpbmcgaW5mb3JtYXRpb24uIEJhc2ljYWxseSB0aGlzIHdpbGwgYmUgYmFzZWQgb24gdGhlIFNUUCBJbnRlcm1lZGlhdGUgTW9kZWwuDQo8L3A+DQoNCjxiPkVjbGlwc2UgSURFIFBsdWdpbnMgKCBFeHRlbnNpb25zIHRvIEVjbGlwc2UgSURFICk8L2I+DQoNCjx1bD4NCjxsaT48Yj5lQlBNIFByb2plY3QgV2l6YXJkIFRvb2w6PC9iPiBFY2xpcHNlIFBsdWdpbiB0byBjcmVhdGUgYW4gZUJQTSBwcm9qZWN0LjwvbGk+DQoNCjxsaT48Yj5lQlBNIFNlcnZpY2UgRWRpdG9yOjwvYj4gdmlzdWFsIHRvb2wgZm9yIHRoZSBjb25maWd1cmF0aW9ucyBvZiBPU0dpIHNlcnZpY2UgZGVzY3JpcHRvci4gVGhpcyBzZXJ2aWNlIGRlc2NyaXB0b3IgZmlsZSB3aWxsIGJlIHVzZWQgYnkgZUJQTSBDb3JlIFNlcnZpY2UgRnJhbWV3b3JrLCB0byByZWdpc3RlciBPU0dpIHNlcnZpY2VzIGludG8gdGhlIHJ1bnRpbWUuVGhpcyB3aWxsIG5vdCByZXBsYWNlIFBERSB0b29sLCBhcyBpdJJzIGludGVuZGVkIGFzIGEgdG9vbCB0byBjcmVhdGUgZUJQTSBzZXJ2aWNlIGRlc2NyaXB0b3IgdG8gYmUgdXNlZCBieSBlQlBNIERlcGxveW1lbnQgU2VydmljZS48L2xpPg0KDQo8bGk+PGI+QlBNTiB0byBCUE0gR2F0ZXdheSBQcm9jZXNzIEVuZ2luZSBCdW5kbGU6PC9iPiBCYXNlZCBvbiBFY2xpcHNlIFNUUCBJTSAoIE1hbmdyb3ZlICkgaXQgcHJvZHVjZXMgcHJvY2VzcyBkZWZpbml0aW9ucyB0byBiZSB1c2VkIGJ5IEJQTSBHYXRld2F5IGRlZmF1bHQgaW1wbGVtZW50YXRpb24gKCBqYnBtICkgYnVuZGxlLjwvbGk+DQoNCjxsaT48Yj5CUE1OIHRvIEJQRUw6PC9iPiBCYXNlZCBvbiBFY2xpcHNlIFNUUCBJTSAoIE1hbmdyb3ZlICksIGl0IHByb2R1Y2VzIEJQRUwgcHJvY2Vzc2VzIHdpdGggdXNpbmcgdGhlIG1vZGVscyByZWFsaXplZCBieSBtZWFucyBvZiBFY2xpcHNlIEJQTU4gRGVzaWduZXIuIFRoZSBwcm9jZXNzZXMgYXJlIHRoZW4gY29tcGxldGVkIHRocm91Z2ggdGhlIEJQRUwgRGVzaWduZXIuPC9saT4NCg0KPGxpPjxiPkRlcGxveSBUb29sczo8L2I+IFV0aWxpdHkgVG9vbHMgaW50ZWdyYXRlZCBpbiBFY2xpcHNlLCB0aGF0IGFsbG93IHRvIGRlcGxveSBhbiBlQlBNIHByb2plY3QgdG8gdGhlIHJ1bnRpbWVzLjwvbGk+DQoNCjxsaT48Yj5FY2xpcHNlIEJQTU4gRWRpdG9yIEV4dGVuc2lvbjo8L2I+IEV4dGVuc2lvbiB0byB0aGUgZWNsaXBzZSBicG1uIGVkaXRvciB0byBzdXBwb3J0IHRoZSBkcmFnIGFuZCBkcm9wIG9mIE9TR2kgc2VydmljZSBkZWZpbml0aW9ucyBpbnRvIHRoZSBkaWFncmFtLjwvbGk+DQoNCjxsaT48Yj5FY2xpcHNlIEJQRUwgRWRpdG9yIEV4dGVuc2lvbjo8L2I+IEV4dGVuc2lvbiB0byB0aGUgZWNsaXBzZSBicGVsIGVkaXRvciAgbyBzdXBwb3J0IHRoZSBkcmFnIGFuZCBkcm9wIG9mIE9TR2kgc2VydmljZSBkZWZpbml0aW9ucyBpbnRvIGJwZWwgIGRpYWdyYW0uPC9saT4NCg0KPGxpPjxiPkVjbGlwc2UgZUJQTSBTdXBwb3J0IFRvb2xzOjwvYj4gIFNvbWUgc3VwcG9ydCBwbHVnaW5zICggbWVudSBjb250cmlidXRpb25zLCBwcmVmZXJlbmNlIHBhZ2UgKSwgdG8gaGVscCB0byB3b3JrIHdpdGggZUJQTS48L2xpPg0KDQo8bGk+PGI+TW9uaXRvciBhbmQgTWFuYWdlbWVudCBQZXJzcGVjdGl2ZS9WaWV3OjwvYj4gRWNsaXBzZSBwbHVnaW5zIHRvIHByb3ZpZGUgYSB2aWV3IHdpdGggdGhlIGxpc3Qgb2YgcHJvY2Vzc2VzLCBwcm9jZXNzIGluc3RhbmNlcywgYW5kIHN0YXR1cyBpbmZvcm1hdGlvbjwvbGk+DQo8L3VsPg0KDQo8Yj5FeHRlbnNpb24gdG8gQlBFTCBSdW50aW1lICggZUJQTSBpcyB1c2VkIGluIGFuIE9TR2kgcnVudGltZSBlbWJlZGRlZCBpbiBCUEVMIHJ1bnRpbWUgKTwvYj4NCjx1bD4NCjxsaT48Yj5PU0dpIEV4dGVuc2lvbiBmb3IgdGhlIEJQRUwgUnVudGltZTo8L2I+IGV4dGVuc2lvbnMgZW5hYmxpbmcgdGhlIEJQRUwgcnVudGltZSB0byBvcmNoZXN0cmF0ZSAgT1NHaSAgc2VydmljZXMuIEl0IHdpbGwgYmUgaW5pdGlhbGx5IHJlbGVhc2VkIGZvciBBcGFjaGUgT0RFLjwvbGk+DQo8L3VsPg0KPC9wPg0KDQo8aDI+UmVsYXRpb24gd2l0aCBvdGhlciBFY2xpcHNlIFByb2plY3RzPC9oMj4NCjxwPlRoZSBlQlBNIHByb2plY3Qgd2lsbCBsZXZlcmFnZSB0ZWNobm9sb2dpZXMgYW5kIHdvcmsgaW4gY29sbGFib3JhdGlvbiB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvamVjdHM6PHA+DQo8dWw+DQo8bGk+RWNsaXBzZSBTVFAgSU08L2xpPg0KPGxpPkVjbGlwc2UgQlBFTCBEZXNpZ25lcjwvbGk+DQo8bGk+RWNsaXBzZSBCUE1OIE1vZGVsZXI8L2xpPg0KPGxpPkVjbGlwc2UgU3dvcmRmaXNoPC9saT4NCjxsaT5FY2xpcHNlIEVxdWlub3g8L2xpPg0KPGxpPkVjbGlwc2UgRUNGPC9saT4NCjxsaT5FY2xpcHNlTGluazwvbGk+DQo8bGk+RWNsaXBzZSBHZW1pbmk8L2xpPg0KPC91bD4NCg0KPGgyPk9yZ2FuaXphdGlvbjwvaDI+DQo8cCBhbGlnbj0ibGVmdCI+RXZlcnlvbmUgaXMgaW52aXRlZCB0byBleHByZXNzIHRoZWlyIGNvbmNlcm4gb3Igb3BpbmlvbiBhYm91dCB0aGUgYWJvdmUtcHJvcG9zZWQgDQplQlBNIHByb2plY3QgYW5kIHRvIG9mZmVyIHRoZWlyIHN1cHBvcnQgdG8gaXRzIGRldmVsb3BtZW50IHVzaW5nIHRoZSBuZXdzZ3JvdXAuDQpPdXIgaW50ZW50aW9uIGlzIHRvIHN0YXJ0IGRldmVsb3BpbmcgdGhlIHByb2plY3QgZGlyZWN0bHkgaW4gdGhlIHNvdXJjZSByZXBvc2l0b3J5IG9mIEVjbGlwc2UsIGp1c3QgZnJvbSB0aGUgDQp0aGUgaW5jdWJhdGlvbiBwaGFzZS4gQmVsb3cgaXMgYSBwcmVsaW1pbmFyeSBsaXN0IG9mIHRoZSBkZXZlbG9wZXJzIGRpcmVjdGx5IGludm9sdmVkIGluIHRoZSBwcm9qZWN0LiANCkFueSBkZXNpZ24gb3IgZGV2ZWxvcG1lbnQgY29udHJpYnV0aW9uIGlzIHdlbGNvbWUuDQo8L3A+DQoNCjxwIGFsaWduPSJsZWZ0Ij48Yj5Jbml0aWFsIENvbW1pdHRlcnM8L2I+PC9wPg0KPHVsPg0KPGxpPkFuZHJlYSBab3BwZWxsbywgIEVuZ2luZWVyaW5nICAocHJvcG9zZWQgYXMgcHJvamVjdCBsZWFkKTwvbGk+DQo8bGk+R2lhbmZyYW5jbyBCb2NjYWxvbiwgRW5naW5lZXJpbmc8L2xpPg0KPGxpPkx1Y2EgUm9zc2F0bywgRW5naW5lZXJpbmc8L2xpPg0KPGxpPkFudG9uZWxsYSBNaWVsZSwgRW5naW5lZXJpbmc8L2xpPg0KPGxpPkx1Y2EgQmFyb3p6aSwgRW5naW5lZXJpbmc8L2xpPg0KPGxpPkRhbmllbGEgQnV0YW5vLCBJbmRlcGVuZGVudDwvbGk+DQo8L3VsPg0KDQo8cCBhbGlnbj0ibGVmdCI+PGI+TWVudG9yczwvYj48L3A+DQo8dWw+DQo8bGk+T2xpdmVyIFdvbGYsIFNPUEVSQTwvbGk+DQo8bGk+RGF2ZSBDYXJ2ZXIsIEludGFsaW88L2xpPg0KPGxpPk9pc2luIEh1cmxleSwgaW5kZXBlbmRlbnQ8L2xpPg0KPC91bD4NCg0KPHAgYWxpZ249ImxlZnQiPjxiPkludGVyZXN0ZWQgcGFydGllczwvYj48L3A+DQo8cCBhbGlnbj0ibGVmdCI+DQpUaGUgZm9sbG93aW5nIGNvbXBhbmllcyBoYXZlIHNob3duIHRoZWlyIGludGVyZXN0IGluIHRoaXMgcHJvamVjdC4gS2V5IGNvbnRhY3RzIGxpc3RlZC4NCjx1bD4NCjxsaT5BbGFpbiBCb3VsemUsIElOUklBPC9saT4NCjxsaT5BZHJpYW4gTW9zLCBJTlJJQSA8L2xpPg0KPGxpPk9saXZlciBXb2xmLCBTT1BFUkEgPC9saT4NCjxsaT5SaWNjbyBEZXV0c2NoZXIsIFNPUEVSQTwvbGk+DQo8L3VsPg0KPC9wPg0KDQo8aDI+VGVudGF0aXZlIFBsYW48L2gyPg0KPHAgYWxpZ249ImxlZnQiPg0KDQo8dWw+DQo8bGk+PHAgYWxpZ249ImxlZnQiPjxiPjIwMTAtMDc8L2I+IHJlbGVhc2Ugb2YgUmVsZWFzZSBDYW5kaWRhdGUgb2YgZUJQTTwvbGk+DQo8bGk+PHAgYWxpZ249ImxlZnQiPjxiPjIwMTAtMDg8L2I+IHJlbGVhc2Ugb2YgMC43IHZlcnNpb24gb2YgZUJQTTwvbGk+DQo8L3VsPg0KPC9wPg0KDQogICAgICA8L2Rpdj4NCiAgPC9kaXY+DQogIDw/cGhwDQoJJGh0bWwgPSBvYl9nZXRfY29udGVudHMoKTsNCglvYl9lbmRfY2xlYW4oKTsNCg0KCSMgR2VuZXJhdGUgdGhlIHdlYiBwYWdlDQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7DQo/Pg0KDQog