PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgiX3Byb2plY3RDb21tb24ucGhwIik7ICAgICMgQWxsIG9uIHRoZSBzYW1lIGxpbmUgdG8gdW5jbHV0dGVyIHRoZSB1c2VyJ3MgZGVza3RvcCcKCgkKCSMKCSMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuIAoJJHBhZ2VUaXRsZSAJCT0gIkVjbGlwc2UgQ2VsZWJyYXRlcyBGaXZlIFllYXJzIGFzIGFuIE9wZW4gU291cmNlIENvbW11bml0eSBhbmQgRWNvc3lzdGVtIjsKCSRwYWdlS2V5d29yZHMJPSAiRWNsaXBzZSwgYmlydGhkYXksIE5vdmVtYmVyLCAyMDA2IjsKCSRwYWdlQXV0aG9yCQk9ICJMeW5uIEdheW93c2tpIjsKCQoJIyBBZGQgcGFnZS1zcGVjaWZpYyBOYXYgYmFycyBoZXJlCgkjIEZvcm1hdCBpcyBMaW5rIHRleHQsIGxpbmsgVVJMIChjYW4gYmUgaHR0cDovL3d3dy5zb21lb3RoZXJzaXRlLmNvbS8pLCB0YXJnZXQgKF9zZWxmLCBfYmxhbmspCgkjICROYXYtPmFkZEN1c3RvbU5hdigiTXkgTGluayIsICJteXBhZ2UucGhwIiwgIl9zZWxmIik7CgkjICROYXYtPmFkZEN1c3RvbU5hdigiR29vZ2xlIiwgImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iLCAiX2JsYW5rIik7CgoJIyBFbmQ6IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MKCSMKCQoJIyBQYXN0ZSB5b3VyIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBFT0hUTUwgbWFya2VycyEJCgkkaHRtbCA9IDw8PEVPSFRNTAo8ZGl2IGlkPSJtYWluY29udGVudCI+Cgk8ZGl2IGlkPSJtaWRjb2x1bW4iPgoJCTxoMT4kcGFnZVRpdGxlPC9oMT4KCQk8aDI+UHJlc3MgUmVsZWFzZTwvaDI+CgkJPHN0cm9uZz5FQ0xJUFNFIENFTEVCUkFURVMgRklWRSBZRUFSUyBBUyBBTiBPUEVOIFNPVVJDRSBDT01NVU5JVFkgQU5EIEVDT1NZU1RFTTwvc3Ryb25nPjxici8+CgkJPHA+PHN0cm9uZz5PVFRBV0EsIENBTkFEQZdOb3ZlbWJlciA3LCAyMDA2lyA8L3N0cm9uZz5Ub2RheSwgdGhlIEVjbGlwc2UgY29tbXVuaXR5IGNlbGVicmF0ZXMgZml2ZSB5ZWFycyBhcyBhbiBvcGVuIHNvdXJjZSBwcm9qZWN0LiBFY2xpcHNlIGhhcyBncm93biBmcm9tIGl0cyByb290cyBhcyBhIEphdmEgSURFIHByb2plY3QgdG8gYmVjb21lIGEgdW5pdmVyc2FsIGRldmVsb3BtZW50IHBsYXRmb3JtIGZvciBidWlsZGluZyBhbmQgZGVwbG95aW5nIHNvZnR3YXJlLiBUaGVyZSBhcmUgbm93IDY2IG9wZW4gc291cmNlIHByb2plY3RzIGF0IEVjbGlwc2UsIGdlbmVyYXRpbmcgbWlsbGlvbnMgb2YgZG93bmxvYWRzLiBJdCBpcyBlc3RpbWF0ZWQgdGhhdCBtb3JlIHRoYW4gMSwzMDAgRWNsaXBzZSBiYXNlZCBwcm9kdWN0cyBhcmUgbm93IGF2YWlsYWJsZS48L3A+CgkJPHA+T24gTm92ZW1iZXIgNywgMjAwMSwgSUJNIHB1Ymxpc2hlZCB0aGUgc291cmNlIGNvZGUgdG8gdGhlIEVjbGlwc2UgcGxhdGZvcm0gYW5kIEphdmEgRGV2ZWxvcG1lbnQgVG9vbHMgcHJvamVjdCAoSkRUKS4gU2hvcnRseSBmb2xsb3dpbmcgdGhlIHJlbGVhc2Ugb2YgdGhlIGNvZGUsIElCTSBhbm5vdW5jZWQgdGhlIGVjbGlwc2Uub3JnIENvbnNvcnRpdW0sIGluY2x1ZGluZyBCb3JsYW5kLCBJQk0sIE1lcmFudCwgUU5YIFNvZnR3YXJlIFN5c3RlbXMsIFJhdGlvbmFsIFNvZnR3YXJlLCBSZWRIYXQsIFN1U0UgYW5kIFRvZ2V0aGVyU29mdC4gVGhlIGNvbnNvcnRpdW0gb2YgdmVuZG9ycyBoYXMgZ3Jvd24gZnJvbSB0aGUgaW5pdGlhbCBlaWdodCBjb21wYW5pZXMgdG8gdGhlIDE1MiBtZW1iZXJzIHRoYXQgYXJlIGN1cnJlbnRseSBwYXJ0IG9mIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24uPC9wPgoJCTxwPkVjbGlwc2WScyBlY29ub21pYyBhbmQgY29sbGFib3JhdGl2ZSBtb2RlbHMgaGF2ZSBhdHRyYWN0ZWQgYW4gZXZlci1ncm93aW5nIGxpc3Qgb2YgY29tcGFuaWVzIGZyb20gYXJvdW5kIHRoZSB3b3JsZC4gVGhlc2Ugb3JnYW5pemF0aW9ucyBhcmUgY29udHJpYnV0aW5nIHRvIGEgdmFyaWV0eSBvZiB0ZWNobm9sb2d5IGlubm92YXRpb25zIGFuZCB1c2luZyB0aGUgZGV2ZWxvcG1lbnRzIHRvIGNvbXBldGUgaW4gdGhlIG1hcmtldHBsYWNlLiBJbiBBdWd1c3QsIElEQyBpc3N1ZWQgYSByZXNlYXJjaCByZXBvcnQgdGhhdCBlc3RpbWF0ZWQgdGhlcmUgYXJlIDIuMjcgbWlsbGlvbiBFY2xpcHNlIHVzZXJzIHdvcmxkd2lkZS4qPC9wPgoJCTxwPpNXaGVuIHdlIGNvbnRyaWJ1dGVkIHRoZSAkNDAgbWlsbGlvbiB3b3J0aCBvZiBjb2RlIGluIDIwMDEsIHdlIGhhZCBhIHZpc2lvbiBmb3IgdGhpcyBjb21tdW5pdHktc3R5bGUgc29mdHdhcmUgZGV2ZWxvcG1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaGFzIGV4Y2VlZGVkIG91ciBleHBlY3RhdGlvbnMgYXMgYSBxdWljayBhbmQgY29zdC1lZmZlY3RpdmUgd2F5IG9mIGZvcmdpbmcgYWxsaWFuY2VzLCBzaGFyaW5nIHRlY2hub2xvZ3kgYW5kIGhlbHBpbmcgdGhlIG9wZW4gc291cmNlIGRldmVsb3BlciBlY29zeXN0ZW0gZ3JvdyBhbmQgc3VjY2VlZCwiIHNhaWQgRGFuaWVsIFNhYmJhaCwgZ2VuZXJhbCBtYW5hZ2VyLCBJQk0gUmF0aW9uYWwgc29mdHdhcmUsIGFuZCBvbmUgb2YgdGhlIG9yaWdpbmFsIEVjbGlwc2Ugc3VwcG9ydGVycyBpbiBJQk0uICJPdXIgZGVkaWNhdGlvbiB0byBFY2xpcHNlIGNvbnRpbnVlcyB3aXRoIG91ciB3b3JrIGxlYWRpbmcgYW5kIGNvbnRyaWJ1dGluZyB0byBwcm9qZWN0cywgb3VyIGNvbW1lcmNpYWwgc3VwcG9ydCBvZiBFY2xpcHNlIC0gd2hpY2ggd2lsbCBiZSBhdmFpbGFibGUgc2hvcnRseSAtIGFuZCB3aXRoIHRoZSBkZXZlbG9wbWVudCBvZiBtdWNoIG9mIG91ciBzb2Z0d2FyZSBvbiB0aGUgRWNsaXBzZSBwbGF0Zm9ybS4gT3VyIGN1c3RvbWVycyBhcmUgZXhjZWVkaW5nbHkgZXhjaXRlZCBhYm91dCBFY2xpcHNlIGFuZCB0aGUgaW5ub3ZhdGlvbiB0aGUgY29tbXVuaXR5IHByb3ZpZGVzIGZvciB0aGVtLiI8L3A+CgkJPHA+k09uIHRoZSBvY2Nhc2lvbiBvZiBFY2xpcHNlknMgZmlmdGggYmlydGhkYXkgSSB3b3VsZCBsaWtlIHRvIHBheSB0cmlidXRlIHRvIHRoZSBtYW55IHBlb3BsZSB3aG9zZSBoYXJkIHdvcmssIHRlY2huaWNhbCB0YWxlbnRzIGFuZCB2aXNpb24gaGF2ZSBjcmVhdGVkIHRoaXMgZ3JlYXQgY29tbXVuaXR5LpQgc2FpZCBNaWtlIE1pbGlua292aWNoLCBleGVjdXRpdmUgZGlyZWN0b3Igb2YgdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gIJNJdCBpcyB0aHJvdWdoIHRoZSB3b3JrIG9mIHRoZXNlIGluZGl2aWR1YWxzIHRoYXQgd2UgaGF2ZSBjcmVhdGVkIGEgdmlicmFudCBjb21tdW5pdHkgYW5kIGVjb3N5c3RlbSB0aGF0IGVuY291cmFnZXMgY29sbGFib3JhdGlvbiwgaW5ub3ZhdGlvbiBhbmQgY29tcGV0aXRpb24gYXJvdW5kIHRoZSBFY2xpcHNlIHBsYXRmb3JtLiAgQ29uZ3JhdHVsYXRpb25zIHRvIGV2ZXJ5b25lOyB0aGUgbmV4dCA1IHllYXJzIHdpbGwgYmUgZXZlbiBtb3JlIGV4Y2l0aW5nLpQ8L3A+CgkJPHA+VGhlIEVjbGlwc2UgY29tbXVuaXR5IHdpbGwgY2VsZWJyYXRlIGl0cyBtaWxlc3RvbmUgd2l0aCBiaXJ0aGRheSBwYXJ0aWVzIGluIDMyIGNpdGllcyBhcm91bmQgdGhlIHdvcmxkLiBBbiBlbGVjdHJvbmljIGJpcnRoZGF5IGNhcmQgaGFzIGJlZW4gc2V0dXAgdG8gYWxsb3cgaW5kaXZpZHVhbHMgdG8gc2hvdyB0aGVpciBzdXBwb3J0IGZvciBFY2xpcHNlIGFuZCBhIFByb2R1Y3QgV2FsbCBvZiBGYW1lIHRvIHNob3djYXNlIHRoZSBwcm9kdWN0cyBhbmQgc2VydmljZSB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHRoZSBFY2xpcHNlIGNvbW11bml0eS4gTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgYXQgPGEgaHJlZj0iaHR0cDovL2JpcnRoZGF5LmVjbGlwc2Uub3JnIj5odHRwOi8vYmlydGhkYXkuZWNsaXBzZS5vcmc8L2E+LjwvcD4KCQk8cD48c3Ryb25nPkFib3V0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb248L3N0cm9uZz48YnIgLz4KCQlFY2xpcHNlIGlzIGFuIG9wZW4gc291cmNlIGNvbW11bml0eSB3aG9zZSBwcm9qZWN0cyBhcmUgZm9jdXNlZCBvbiBwcm92aWRpbmcgYW4gZXh0ZW5zaWJsZSBkZXZlbG9wbWVudCBwbGF0Zm9ybSBhbmQgYXBwbGljYXRpb24gZnJhbWV3b3JrcyBmb3IgYnVpbGRpbmcgc29mdHdhcmUuIEVjbGlwc2UgcHJvdmlkZXMgZXh0ZW5zaWJsZSB0b29scyBhbmQgZnJhbWV3b3JrcyB0aGF0IHNwYW4gdGhlIHNvZnR3YXJlIGRldmVsb3BtZW50IGxpZmVjeWNsZSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIG1vZGVsaW5nLCBsYW5ndWFnZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgZm9yIEphdmEsIEMvQysrIGFuZCBvdGhlcnMsIHRlc3RpbmcgYW5kIHBlcmZvcm1hbmNlLCBidXNpbmVzcyBpbnRlbGxpZ2VuY2UsIHJpY2ggY2xpZW50IGFwcGxpY2F0aW9ucyBhbmQgZW1iZWRkZWQgZGV2ZWxvcG1lbnQuIEEgbGFyZ2UsIHZpYnJhbnQgZWNvc3lzdGVtIG9mIG1ham9yIHRlY2hub2xvZ3kgdmVuZG9ycywgaW5ub3ZhdGl2ZSBzdGFydC11cHMsIHVuaXZlcnNpdGllcyBhbmQgcmVzZWFyY2ggaW5zdGl0dXRpb25zIGFuZCBpbmRpdmlkdWFscyBleHRlbmQsIGNvbXBsZW1lbnQgYW5kIHN1cHBvcnQgdGhlIEVjbGlwc2UgUGxhdGZvcm0uPC9wPgoJCTxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgYSBub3QtZm9yLXByb2ZpdCwgbWVtYmVyIHN1cHBvcnRlZCBjb3Jwb3JhdGlvbiB0aGF0IGhvc3RzIHRoZSBFY2xpcHNlIHByb2plY3RzLiBGdWxsIGRldGFpbHMgb2YgRWNsaXBzZSBhbmQgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBhcmUgYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmciPnd3dy5lY2xpcHNlLm9yZzwvYT4uPC9wPgoJCQoJCTxwPipJREMsIFdvcmxkd2lkZSBBZG9wdGlvbiBvZiBFY2xpcHNlOiBUaGUgRnJhbWV3b3JrIFJlc29uYXRlcyB3aXRoIEphdmEgRGV2ZWxvcGVycyBpbiBBbGwgUmVnaW9ucywgRG9jICMyMDMwODAsIEF1Zy4gMjAwNjwvcD4KCQkKCQk8cD48Y2VudGVyPjxpPkFsbCBjb21wYW55L3Byb2R1Y3QgbmFtZXMgYW5kIHNlcnZpY2UgbWFya3MgbWF5IGJlIHRyYWRlbWFya3Mgb3IgcmVnaXN0ZXJlZCB0cmFkZW1hcmtzIG9mIHRoZWlyIHJlc3BlY3RpdmUgY29tcGFuaWVzLjwvaT48L2NlbnRlcj48L3A+CgkJCgkJPGJyIC8+PGJyIC8+PHN0cm9uZz5QcmVzcyBDb250YWN0PC9zdHJvbmc+PGJyPgkKCQlKb2huIE1vcmFuIG9yIExhdXJhIEFja2VybWFuPGJyPgoJCVNjaHdhcnR6IENvbW11bmljYXRpb25zPGJyPgoJCTc4MS02ODQtMDc3MDxicj4KCQllY2xpcHNlQHNjaHdhcnR6LXByLmNvbSA8YnI+CgkJPGJyIC8+CgkJPGNlbnRlcj4jICMgIzwvY2VudGVyPiAKCQk8YnIgLz4KCQk8YnI+CgkJCTxicj4KCTwvZGl2Pgo8L2Rpdj4KCgoKCgoJCQoKRU9IVE1MOwoKCgkjIEdlbmVyYXRlIHRoZSB3ZWIgcGFnZQoJJEFwcC0+Z2VuZXJhdGVQYWdlKCR0aGVtZSwgJE1lbnUsICROYXYsICRwYWdlQXV0aG9yLCAkcGFnZUtleXdvcmRzLCAkcGFnZVRpdGxlLCAkaHRtbCk7Cj8+Cgo=