PGh0bWw+PGhlYWQ+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2RlZmF1bHRfc3R5bGUuY3NzIj4NCjx0aXRsZT5FY2xpcHNlLm9yZyBjb25zb3J0aXVtPC90aXRsZT48L2hlYWQ+DQo8Ym9keSB0ZXh0PSIjMDAwMDAwIiBiZ2NvbG9yPSIjZmZmZmZmIiBsaW5rPSIjMDAwMGVlIiB2bGluaz0iIzU1MWE4YiIgYWxpbms9IiNmZjAwMDAiPg0KPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTUgY2VsbHBhZGRpbmc9MiB3aWR0aD0iMTAwJSIgPg0KICA8dHI+IA0KICAgIDx0ZCBhbGlnbj1sZWZ0IHdpZHRoPSI3MiUiPiA8Zm9udCBjbGFzcz1pbmRleHRvcD4gQ0RUIDEuMDwvZm9udD48YnI+DQogICAgICA8Zm9udCBjbGFzcz1pbmRleHN1Yj4gPC9mb250PjwvdGQ+DQogICAgPHRkIHdpZHRoPSIyOCUiPjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvSWRlYS5qcGciIGhlaWdodD04NiB3aWR0aD0xMjA+PC90ZD4NCiAgPC90cj4NCjwvdGFibGU+DQo8dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9NSBjZWxscGFkZGluZz0yIHdpZHRoPSIxMDAlIiA+DQogIDx0cj4gDQogICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzAwODBDMCI+PGI+PGZvbnQgY29sb3I9IiNGRkZGRkYiIGZhY2U9IkFyaWFsLEhlbHZldGljYSI+UHJlc3MgcmVsZWFzZTwvZm9udD48L2I+PC90ZD4NCiAgPC90cj4NCiAgPHRyPiANCiAgICA8dGQ+IDxicj4NCiAgICAgIDxoMSBBTElHTj0iQ0VOVEVSIj48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjE2LjBwdDtmb250LWZhbWlseTpBcmlhbDsiVGltZXMgTmV3IFJvbWFuIic+PGI+IA0KICAgICAgICBFY2xpcHNlIEFubm91bmNlcyBNaWxlc3RvbmUgZm9yIExpbnV4LCBFbWJlZGRlZCBhbmQgQy9DKysgPGJyPg0KU29mdHdhcmUgRGV2ZWxvcG1lbnQ8L2I+PC9zcGFuPjwvYj48L2gxPg0KICAgICAgPFVMPg0KICAgICAgICA8TEk+RWNsaXBzZS5vcmcgUmVsZWFzZXMgQ0RUIDEuMCBCYXNlZCBvbiBDb2RlIEZyb20gQ0RUIFRlYW08L0xJPg0KCQk8TEk+RnJhbWV3b3JrIFdpbGwgYmUgVXNlZCB0byBTZWFtbGVzc2x5IEludGVncmF0ZSBDL0MrKyBUb29scyBGcm9tIE11bHRpcGxlIFZlbmRvcnM8L0xJPg0KICAgICAgPC9VTD4NCiAgICAgIDxwPlJBTEVJR0gsIE5DIC0gTWFyY2ggMzEsIDIwMDMgLSBEZXZlbG9wZXJzIGJ1aWxkaW5nIHNvZnR3YXJlIGZvciBMaW51eCwgZW1iZWRkZWQgYW5kIEMvQysrIHNvZnR3YXJlIHBsYXRmb3JtcyBub3cgaGF2ZSBhY2Nlc3MgdG8gdG9vbHMgYW5kIGEgcmljaCBpbnRlZ3JhdGVkIGRldmVsb3BtZW50IGVudmlyb25tZW50IChJREUpIGNvZGUgYmFzZSwgdGhhbmtzIHRvIGNvbnRyaWJ1dGlvbnMgZnJvbSBtZW1iZXJzIG9mIHRoZSBFY2xpcHNlIGNvbnNvcnRpdW0uICBUaGUgRWNsaXBzZSBDL0MrKyBEZXZlbG9wbWVudCBUb29scyAoQ0RUKSBwcm9qZWN0IHRlYW0gdG9kYXkgYW5ub3VuY2VkIGltbWVkaWF0ZSBhdmFpbGFiaWxpdHkgb2YgQ0RUIDEuMCwgYSBtYWpvciBzdGVwIGZvcndhcmQgaW4gdGhlIGNyZWF0aW9uIG9mIGFuIGludGVncmF0ZWQsIG9wZW4gY3Jvc3MtcGxhdGZvcm0gSURFIGZvciBDL0MrKyBkZXZlbG9wbWVudC4gPC9wPg0KCSAgPHA+VGhlIENEVCBwcm9qZWN0IGlzIGRyaXZpbmcgdGhlIGNyZWF0aW9uIG9mIGJlc3Qtb2YtYnJlZWQsIGNvbW1lcmNpYWwtcXVhbGl0eSB0b29scyBmb3IgdGhlIEVjbGlwc2UgUGxhdGZvcm0sIiBzYWlkIFNlYmFzdGllbiBNYXJpbmVhdSwgc2VuaW9yIHNvZnR3YXJlIGFyY2hpdGVjdCBhdCBRTlggU29mdHdhcmUgU3lzdGVtcyBhbmQgcHJvamVjdCBsZWFkZXIgZm9yIHRoZSBDRFQuICJXaXRoIHRoZSByZWxlYXNlIG9mIHRoZSBDRFQsIGl0J3MgY2xlYXIgdGhhdCBzdXBwb3J0IGZvciBDL0MrKyBpbiBFY2xpcHNlIGlzIGp1c3QgYXMgc3Ryb25nIGFzIGZvciBKYXZhLCB3aGljaCBpcyBjcml0aWNhbCBmb3IgRWNsaXBzZSBhZG9wdGlvbiBpbnRvIEMgYW5kIEMrKyBkb21pbmF0ZWQgZGV2ZWxvcG1lbnQgcHJvamVjdHMgc3VjaCBhcyBlbWJlZGRlZCBhcHBsaWNhdGlvbnMuIiA8L3A+DQoJICA8cD5UaGUgQ0RUIHByb2plY3Qgd2FzIGxhdW5jaGVkIGxlc3MgdGhhbiBhIHllYXIgYWdvIGFuZCB3YXMgc2lnbmlmaWNhbnRseSBhZHZhbmNlZCBieSBhIGRvbmF0aW9uIG9mIHNvdXJjZSBjb2RlIGZyb20gUU5YIFNvZnR3YXJlIFN5c3RlbXMuICBTaW5jZSB0aGVuLCBjb21wYW5pZXMgc3VjaCBhcyBSYXRpb25hbCwgUmVkIEhhdCwgTW9udGFWaXN0YSwgVGltZVN5cywgVGVuc2lsaWNhLCBNYWNyYWlnb3IsIFNBUywgUHJvZ3JhbW1pbmcgUmVzZWFyY2ggYW5kIFdhc2FiaSBoYXZlIGFsc28gam9pbmVkIHRoZSBwcm9qZWN0LCBjb250cmlidXRpbmcgYWRkaXRpb25hbCBkZXZlbG9wbWVudCByZXNvdXJjZXMuPC9wPg0KCSAgPHA+IlRoZSBDRFQgcHJvamVjdCBpcyBhbiBpbXBvcnRhbnQgaW5pdGlhdGl2ZSB0aGF0IHdpbGwgaGVscCBlc3RhYmxpc2ggRWNsaXBzZSBhcyBhIG11bHRpLWxhbmd1YWdlIElERSBmb3IgdGhlIGRldmVsb3BtZW50IG9mIHRlY2huaWNhbCBhbmQgZW1iZWRkZWQgYXBwbGljYXRpb25zLCBhcyB3ZWxsIGFzIGVudGVycHJpc2UvSVQgYXBwbGljYXRpb25zLCIgc2FpZCBTa3kgTWF0dGhld3MsIGRpcmVjdG9yIG9mIHByb2R1Y3QgbWFuYWdlbWVudCwgUmF0aW9uYWwgU29mdHdhcmUsIElCTSBTb2Z0d2FyZSBHcm91cC4gIlJhdGlvbmFsJ3MgY29udHJpYnV0aW9uIG9mIHBhcnNpbmcgdGVjaG5vbG9neSB0byB0aGUgQy9DKysgcHJvamVjdCBpbGx1c3RyYXRlcyBob3cgbXVsdGlwbGUgdmVuZG9ycyBjYW4gd29yayB0b2dldGhlciB0byBhY2NlbGVyYXRlIGN1c3RvbWVyLWRyaXZlbiBpbXByb3ZlbWVudHMgYXJvdW5kIGFuIG9wZW4tc291cmNlIHBsYXRmb3JtLiIgIENEVCAxLjAgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBsYXRlc3QgcmVsZWFzZSBvZiBFY2xpcHNlLCBhbiBvcGVuIHBsYXRmb3JtIGZvciB0b29scyBpbnRlZ3JhdGlvbiB0aGF0IHByb3ZpZGVzIGEgZnJhbWV3b3JrIGZvciBzdHJlYW1saW5pbmcgYXBwbGljYXRpb24gZGV2ZWxvcG1lbnQuIFRoZSBDRFQgcmVsZWFzZSBpbmNsdWRlcyB0d28ga2V5IGNvbXBvbmVudHM6PC9wPg0KCSAgPHVsPg0KICAgICAgICA8bGk+PGI+Q0RUIENvcmU8L2I+IC0gQSBmdWxsLWZlYXR1cmVkIEMvQysrIGRldmVsb3BtZW50IGVudmlyb25tZW50LiBJdCANCiAgICAgICAgICBpbmNsdWRlcyBhIHByb2plY3QgYnVpbGRlciB0aGF0IGludGVncmF0ZXMgd2l0aCBHTlUgdG9vbHMgYW5kIGNvbXBpbGVyczsgDQogICAgICAgICAgYSBjb2RlIGVkaXRvciB0aGF0IG9mZmVycyBmZWF0dXJlcyBzdWNoIGFzIHN5bnRheCBoaWdobGlnaHRpbmcsIGNvZGUgDQogICAgICAgICAgdGVtcGxhdGVzIGFuZCBjb250ZXh0LXNlbnNpdGl2ZSBoZWxwOyBhbmQgd2l6YXJkcyB0aGF0IGhlbHAgYXV0b21hdGUgDQogICAgICAgICAgbXVuZGFuZSBwcm9ncmFtbWluZyB0YXNrcy4gVGhlIENEVCBjb21wb25lbnRzIGFyZSBwbHVnLWluIGV4dGVuc2lvbnMsIA0KICAgICAgICAgIGZ1bGx5IGludGVncmF0ZWQgaW50byB0aGUgRWNsaXBzZSBQbGF0Zm9ybS48L2xpPg0KCSAgICA8bGk+PGI+Q0RUIERlYnVnZ2VyPC9iPiAtIEEgQy9DKysgZGVidWdnZXIgdGhhdCBpbnRlZ3JhdGVzIHdpdGggdGhlIHBvcHVsYXIgDQogICAgICAgICAgR05VIGdkYiBkZWJ1Z2dlci4gSW4gYWRkaXRpb24gdG8gc3RhbmRhcmQgZmVhdHVyZXMgc3VjaCBhcyBydW4gY29udHJvbCwgDQogICAgICAgICAgdGhyZWFkIHN1cHBvcnQsIGJyZWFrcG9pbnRzLCB3YXRjaHBvaW50cyBhbmQgZGlzYXNzZW1ibHkgbW9kZSwgdGhlIENEVCANCiAgICAgICAgICBkZWJ1Z2dlciBhbHNvIHN1cHBvcnRzIG11bHRpcGxlIGNvbmN1cnJlbnQgZGVidWcgc2Vzc2lvbnMsIGV2ZW4gb24gaGV0ZXJvZ2Vub3VzIA0KICAgICAgICAgIHByb2Nlc3NvcnMuIEJ5IGludGVncmF0aW5nIHdpdGggZ2RiLCB0aGUgQ0RUIGRlYnVnZ2VyIGNhbiBzdXBwb3J0IGEgDQogICAgICAgICAgd2lkZSByYW5nZSBvZiB0YXJnZXQgZW52aXJvbm1lbnRzIGluY2x1ZGluZyBMaW51eCwgUU5YJnJlZzsgTmV1dHJpbm8mcmVnOywgDQogICAgICAgICAgV2luZG93cyBhbmQgQ3lnd2luLiA8L2xpPg0KICAgICAgPC91bD4NCgkgIDxwPiJXaXRoIHRoaXMgbWlsZXN0b25lLCB0aGUgZGV2ZWxvcG1lbnQgY29tbXVuaXR5IGlzIG9uZSBzdGVwIGNsb3NlciB0byANCiAgICAgICAgaGF2aW5nIGEgZnVsbHkgZnVuY3Rpb25hbCBvcGVuIGNyb3NzLXBsYXRmb3JtIEMvQysrIGRldmVsb3BtZW50IGVudmlyb25tZW50IA0KICAgICAgICBmb3IgdGhlIEVjbGlwc2UgUGxhdGZvcm0gYW5kIHZhcmlvdXMgZGVwbG95bWVudCBlbnZpcm9ubWVudHMsIiBzYWlkIFNraXAgDQogICAgICAgIE1jR2F1Z2hleSwgY2hhaXJwZXJzb24gb2YgdGhlIEVjbGlwc2UgQm9hcmQgb2YgU3Rld2FyZHMuICJUaGlzIHdpbGwgaGVscCANCiAgICAgICAgZnVsZmlsbCBvbmUgb2YgdGhlIHVsdGltYXRlIGdvYWxzIG9mIHRoZSBicm9hZGVyIEVjbGlwc2UgVG9vbHMgcHJvamVjdCANCiAgICAgICAgLSB0byBmb3N0ZXIgdGhlIGNyZWF0aW9uIG9mIGEgd2lkZSB2YXJpZXR5IG9mIHJvYnVzdCBhbmQgZnVsbC1mZWF0dXJlZCANCiAgICAgICAgdG9vbHMgZm9yIHRoZSBFY2xpcHNlIFBsYXRmb3JtIGFuZCBlbmNvdXJhZ2UgdG9vbHMgZnJvbSBkaWZmZXJlbnQgdmVuZG9ycyANCiAgICAgICAgdG8gaW50ZXJvcGVyYXRlLCBtZWV0aW5nIHRoZSB1bmlxdWUgbmVlZHMgb2YgZGV2ZWxvcGVycy4iIEVjbGlwc2UgQ0RUIA0KICAgICAgICAxLjAgY2FuIGJlIGltbWVkaWF0ZWx5IGRvd25sb2FkZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy90b29scy9kb3dubG9hZHMuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvdG9vbHMvZG93bmxvYWRzLmh0bWw8L2E+LiANCiAgICAgIDwvcD4NCiAgICAgIDxQPiZuYnNwOzwvcD4NCiAgICAgIDwvdGQ+DQogIDwvdHI+DQogIDwvdGFibGU+DQombmJzcDsNCg0KJm5ic3A7DQoNCgkJPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTMgYWxpZ249Y2VudGVyPg0KCQk8dHIgYmdjb2xvcj0iIzk5OTk5OSI+DQoJCQ0KICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMwMDgwQzAiPjxiPjxmb250IGNvbG9yPSIjRkZGRkZGIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiPkFib3V0IA0KICAgICAgZWNsaXBzZSA8L2ZvbnQ+PC9iPjwvdGQ+DQoJCTwvVFI+DQoJCTxUUj4NCgkJPHRkIGFsaWduPWxlZnQ+DQoJCTxUQUJMRSAgd2lkdGg9IjEwMCUiIENFTExTUEFDSU5HPTAgQ0VMTFBBRERJTkc9Mz4NCgkJPHRyPg0KCQkgIDx0ZD4gDQogICAgICAgICAgICA8UD5FY2xpcHNlIGhhcyBlc3RhYmxpc2hlZCBhbiBvcGVuLXNvdXJjZSBlY29zeXN0ZW0gb2YgdG9vbHMgcHJvdmlkZXJzIA0KICAgICAgICAgICAgICBhbmQgY29uc3VtZXJzIGJ5IGNyZWF0aW5nIHRlY2hub2xvZ3kgYW5kIGFuIG9wZW4gdW5pdmVyc2FsIHBsYXRmb3JtIA0KICAgICAgICAgICAgICBmb3IgdG9vbHMgaW50ZWdyYXRpb24uIFRoZSBvcGVuLXNvdXJjZSBFY2xpcHNlIGNvbW11bml0eSBjcmVhdGVzIA0KICAgICAgICAgICAgICByb3lhbHR5LWZyZWUgdGVjaG5vbG9neSBhcyBhIHBsYXRmb3JtIGZvciB0b29scyBpbnRlZ3JhdGlvbi4gRWNsaXBzZS1iYXNlZCANCiAgICAgICAgICAgICAgdG9vbHMgZ2l2ZSBkZXZlbG9wZXJzIGZyZWVkb20gb2YgY2hvaWNlIGluIGEgbXVsdGktbGFuZ3VhZ2UsIG11bHRpLXBsYXRmb3JtLCANCiAgICAgICAgICAgICAgbXVsdGktdmVuZG9yIHN1cHBvcnRlZCBlbnZpcm9ubWVudC4gRWNsaXBzZSBkZWxpdmVycyBhIHBsdWctaW4gYmFzZWQgDQogICAgICAgICAgICAgIGZyYW1ld29yayB0aGF0IG1ha2VzIGl0IGVhc2llciB0byBjcmVhdGUsIGludGVncmF0ZSwgYW5kIHVzZSBzb2Z0d2FyZSANCiAgICAgICAgICAgICAgdG9vbHMsIHNhdmluZyB0aW1lIGFuZCBtb25leS4gQnkgY29sbGFib3JhdGluZyBhbmQgc2hhcmluZyBjb3JlIA0KICAgICAgICAgICAgICBpbnRlZ3JhdGlvbiB0ZWNobm9sb2d5LCB0b29sIHByb2R1Y2VycyBjYW4gY29uY2VudHJhdGUgb24gdGhlaXIgDQogICAgICAgICAgICAgIGFyZWFzIG9mIGV4cGVydGlzZSBhbmQgdGhlIGNyZWF0aW9uIG9mIG5ldyBkZXZlbG9wbWVudCB0ZWNobm9sb2d5LiANCiAgICAgICAgICAgICAgVGhlIEVjbGlwc2UgUGxhdGZvcm0gaXMgd3JpdHRlbiBpbiB0aGUgSmF2YSYjMTUzOyBsYW5ndWFnZSwgYW5kIA0KICAgICAgICAgICAgICBjb21lcyB3aXRoIGV4dGVuc2l2ZSBwbHVnLWluIGNvbnN0cnVjdGlvbiB0b29sa2l0cyBhbmQgZXhhbXBsZXMuIA0KICAgICAgICAgICAgICBJdCBoYXMgYWxyZWFkeSBiZWVuIGRlcGxveWVkIG9uIGEgcmFuZ2Ugb2YgZGV2ZWxvcG1lbnQgd29ya3N0YXRpb25zIA0KICAgICAgICAgICAgICBpbmNsdWRpbmcgSFAtVVgmcmVnOywgU29sYXJpc64sIEFJWCZyZWc7LCBMaW51eCZyZWc7LCBNQUMgT1MgWCZyZWc7LCANCiAgICAgICAgICAgICAgUU5YJnJlZzsgTmV1dHJpbm8mcmVnOyBhbmQgV2luZG93cyZyZWc7IGJhc2VkIHN5c3RlbXMuIEZ1bGwgZGV0YWlscyANCiAgICAgICAgICAgICAgb2YgdGhlIEVjbGlwc2UgQ29uc29ydGl1bSwgb3Blbi1zb3VyY2UgY29tbXVuaXR5LCBUaGUgRWNsaXBzZSBQbGF0Zm9ybSANCiAgICAgICAgICAgICAgYW5kIHJveWFsdHktZnJlZSBkb3dubG9hZHMgYXJlIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnIiB0YXJnZXQ9Il9ibGFuayI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZzwvYT4uIA0KICAgICAgICAgICAgPC9wPg0KDQoJCTwvdGQ+DQoJCTwvdHI+DQogICAgICAgIDwvdGFibGU+PC90YWJsZT4mbmJzcDsNCg0KCQk8dGFibGUgd2lkdGg9IjEwMCUiIGNlbGxzcGFjaW5nPTAgY2VsbHBhZGRpbmc9MyBhbGlnbj1jZW50ZXI+DQoJCTx0ciBiZ2NvbG9yPSIjOTk5OTk5Ij4NCgkJDQogICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzAwODBDMCI+PGI+PGZvbnQgY29sb3I9IiNGRkZGRkYiIGZhY2U9IkFyaWFsLEhlbHZldGljYSI+TWVkaWEgDQogICAgICBjb250YWN0czwvZm9udD48L2I+PC90ZD4NCgkJPC9UUj4NCgkJPFRSPg0KCQk8dGQgYWxpZ249bGVmdD4NCgkJPFRBQkxFICB3aWR0aD0iMTAwJSIgQ0VMTFNQQUNJTkc9MCBDRUxMUEFERElORz0zPg0KCQk8dHI+DQoJCSAgPHRkPiANCiAgICAgICAgICAgIDxwIGFsaWduPSJjZW50ZXIiPkJhcmJhcmEgU3Rld2FydDxicj4NCiAgICAgICAgICAgICAgUGF0dGVyc29uICYgQXNzb2NpYXRlczxicj4NCiAgICAgICAgICAgICAgOTU0OSBFYXN0IENvdmV5IFRyYWlsLCBTY290dHNkYWxlLCBBWiA4NTI2Mjxicj4NCiAgICAgICAgICAgICAgNDgwLTQ4OC02OTA5LCBqYW5pY2VAcGF0dGVyc29uLmNvbSA8L3A+DQogICAgICAgICAgICA8aHIgd2lkdGg9Ijg1JSI+DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICANCiAgICAgICAgICAgIDxQPlNvbWUgY29tcG9uZW50cyBvZiBFY2xpcHNlIG1heSBiZSBnb3Zlcm5lZCBieSBsaWNlbnNlIHRlcm1zIG90aGVyIA0KICAgICAgICAgICAgICB0aGFuIHRoZSBDUEwuIDwvUD4NCiAgICAgICAgICAgIDxQPiYjOTtCcmFuZCBvciBwcm9kdWN0IG5hbWVzIGFyZSByZWdpc3RlcmVkIHRyYWRlbWFya3Mgb3IgdHJhZGVtYXJrcyANCiAgICAgICAgICAgICAgb2YgdGhlaXIgcmVzcGVjdGl2ZSBob2xkZXJzLiBKYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIA0KICAgICAgICAgICAgICBhcmUgdHJhZGVtYXJrcyBvciByZWdpc3RlcmVkIHRyYWRlbWFya3Mgb2YgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiANCiAgICAgICAgICAgICAgaW4gdGhlIFVuaXRlZCBTdGF0ZXMgYW5kIG90aGVyIGNvdW50cmllcy4gTWljcm9zb2Z0LCBXaW5kb3dzIGlzIA0KICAgICAgICAgICAgICBhIHRyYWRlbWFyayBvZiBNaWNyb3NvZnQgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIA0KICAgICAgICAgICAgICBjb3VudHJpZXMsIG9yIGJvdGguIFFOWCBhbmQgTmV1dHJpbm8gYXJlIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvZiANCiAgICAgICAgICAgICAgUU5YIFNvZnR3YXJlIFN5c3RlbXMgTHRkLiBpbiBjZXJ0YWluIGp1cmlzZGljdGlvbnMuPC9QPg0KPGhyIHdpZHRoPSI4NSUiPg0KICAgICAgICAgICAgPHA+PGEgaHJlZj0iLi4vbWFpbi5odG1sIj5SZXR1cm4gdG8gdGhlIGVjbGlwc2Uub3JnIGNvbnNvcnRpdW0gbWFpbiBwYWdlPC9hPjwvcD4NCiAgICAgICAgPC90ZD4NCgkJPC90cj4NCiAgICAgICAgPC90YWJsZT48L3RhYmxlPiZuYnNwOyAgICAgICAgDQombmJzcDsNCjwvYm9keT48L2h0bWw+DQo=