From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?R3VzdGF2IFdpa3N0csO2bQ==?= Subject: Re: [RFC] Link-type for attachments, more attach options Date: Sun, 7 Jul 2019 18:38:26 +0000 Message-ID: References: <87muqo8o68.fsf@nicolasgoaziou.fr> <877eh8vd52.fsf_-_@nicolasgoaziou.fr> <87y39euadx.fsf@nicolasgoaziou.fr> <87pnnfnfio.fsf@nicolasgoaziou.fr> <87tvby4z01.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_003_HE1PR02MB3033AFD29F6692A154E5B1EADAF70HE1PR02MB3033eurp_" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:38586) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hkC3X-0004ee-K9 for emacs-orgmode@gnu.org; Sun, 07 Jul 2019 14:38:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hkC3W-0002WR-AT for emacs-orgmode@gnu.org; Sun, 07 Jul 2019 14:38:35 -0400 Received: from mail-eopbgr30110.outbound.protection.outlook.com ([40.107.3.110]:29950 helo=EUR03-AM5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hkC3V-0002Tp-6i for emacs-orgmode@gnu.org; Sun, 07 Jul 2019 14:38:34 -0400 In-Reply-To: <87tvby4z01.fsf@nicolasgoaziou.fr> Content-Language: en-US List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Nicolas Goaziou Cc: "emacs-orgmode@gnu.org" --_003_HE1PR02MB3033AFD29F6692A154E5B1EADAF70HE1PR02MB3033eurp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkhDQoNCj4gPiArCShpZiBzaG91bGQtZ2V0DQo+ID4gKwkgICAgKHByb2duIChtZXNzYWdlICJS dW5uaW5nIGdpdCBhbm5leCBnZXQgXCIlc1wiLiIgcGF0aC1yZWxhdGl2ZSkNCj4gPiArCQkgICAo Y2FsbC1wcm9jZXNzICJnaXQiIG5pbCBuaWwgbmlsICJhbm5leCIgImdldCIgcGF0aC1yZWxhdGl2 ZSkpDQo+ID4gKwkgIChlcnJvciAiRmlsZSAlcyBzdG9yZWQgaW4gZ2l0IGFubmV4IGJ1dCBpdCBp cyBub3QgYXZhaWxhYmxlLCBhbmQgd2FzIG5vdA0KPiByZXRyaWV2ZWQiDQo+ID4gKwkJIHBhdGgp KSkpKSkNCj4gDQo+IE5pdHBpY2s6DQo+IA0KPiAgICAgKHVubGVzcyBzaG91bGQtZ2V0DQo+ICAg ICAgKGVycm9yICJGaWxlICVTIHN0b3JlZCBpbiBnaXQgYW5uZXggYnV0IHVuYXZhaWxhYmxlIiBw YXRoKSkNCj4gICAgIChtZXNzYWdlICJSdW5uaW5nIGdpdCBhbm5leCBnZXQgJVMuIiBwYXRoLXJl bGF0aXZlKQ0KPiAgICAgKGNhbGwtcHJvY2VzcyAuLi4pDQoNCk9rLCBmaXhlZC4NCg0KPiA+ICtT ZWxlY3RpdmUgbWVhbnMgdG8gcmVzcGVjdCB0aGUgaW5oZXJpdGFuY2Ugc2V0dGluZyBpbg0KPiA+ ICtgb3JnLXVzZS1wcm9wZXJ0eS1pbmhlcml0YW5jZScuIg0KPiA+ICAgIDpncm91cCAnb3JnLWF0 dGFjaA0KPiA+ICsgIDp0eXBlICcoY2hvaWNlDQo+ID4gKwkgIChjb25zdCA6dGFnICJEb24ndCB1 c2UgaW5oZXJpdGFuY2UiIG5pbCkNCj4gPiArCSAgKGNvbnN0IDp0YWcgIkluaGVyaXQgcGFyZW50 IG5vZGUgYXR0YWNobWVudHMiIHQpDQo+ID4gKwkgIChjb25zdCA6dGFnICJSZXNwZWN0IG9yZy11 c2UtcHJvcGVydHktaW5oZXJpdGFuY2UiIHNlbGVjdGl2ZSkNCj4gPiArCSAgKQ0KPiANCj4gRGFu Z2xpbmcgcGFyZW4gc3BvdHRlZC4NCg0KRml4ZWQuDQoNCj4gPiArICAgICAgKHNldHEgYXR0YWNo bWVudCAob3IgKG9yZy1hdHRhY2gtZGlyKQ0KPiA+ICsJCQkgICAocXVvdGUgICJDYW4ndCBmaW5k IGFuIGV4aXN0aW5nIGF0dGFjaG1lbnQtZm9sZGVyIikpKQ0KPiANCj4gWW91IGZvcmdvdCB0byBy ZW1vdmUgdGhhdCB3ZWlyZCBxdW90ZS4gTWF5YmUgeW91IG1lYW50IGBlcnJvcic/DQoNCkhtbSwg YWN0dWFsbHkgbm8uIEJ1dCB0aGUgY29kZSBpcyBwcmV0dHkgYmFkIHNvIEkndmUgcmVmYWN0b3Jl ZCBpdCBhDQpiaXQuIFRoZSBwdXJwb3NlIG9mIHRoZSBjaGFuZ2UgaXMgZm9yIG9yZy1hdHRhY2gg dG8gZ2l2ZSBhbiBpbmRpY2F0aW9uDQpvZiB0aGUgYWN0aXZlIGF0dGFjaG1lbnQgcGF0aCwgb3Ig dG8gc2lnbmFsIHRoYXQgdGhlcmUgaXMgbm9uZS4gQnV0DQpmb3IgdGhhdCBJIGRvbid0IHJlYWxs eSBuZWVkIGEgc2VwYXJhdGUgdmFyaWFibGUuIFRodXMgaXQncyBzbGlnaHRseQ0KcmVmYWN0b3Jl ZCBmb3IgY29kZS1jbGFyaXR5Lg0KDQo+ID4gKyAgICAoaWYgYXR0YWNoLWRpcg0KPiA+ICsJKHBy b2duIChpZiAobm90IChmaWxlLWRpcmVjdG9yeS1wIGF0dGFjaC1kaXIpKQ0KPiA+ICsJCSAgICht YWtlLWRpcmVjdG9yeSBhdHRhY2gtZGlyIHQpKQ0KPiA+ICsJICAgICAgIGF0dGFjaC1kaXIpDQo+ ID4gKyAgICAgIChlcnJvciAiTm8gYXR0YWNobWVudCBkaXJlY3RvcnkgaXMgYXNzb2NpYXRlZCB3 aXRoIHRoZSBjdXJyZW50IG5vZGUiKSkpKQ0KPiANCj4gU2FtZSBuaXRwaWNrIGFzIGFib3ZlOg0K PiANCj4gICAgICh1bmxlc3MgYXR0YWNoLWRpcg0KPiAgICAgIChlcnJvciAiTm8gYXR0YWNobWVu dCAuLi4iKSkNCj4gICAgIChpZiAoZmlsZS1kaXJlY3RvcnktcCBhdHRhY2gtZGlyKSBhdHRhY2gt ZGlyDQo+ICAgICAgIChtYWtlLWRpcmVjdG9yeSBhdHRhY2gtZGlyKSkNCg0KT2ssIGZpeGVkLg0K DQo+ID4gKyhkZWZ1biBvcmctYXR0YWNoLWRpci1mcm9tLWlkIChpZCkNCj4gPiArICAiQ3JlYXRl cyBhIHBhdGggYmFzZWQgb24gYG9yZy1hdHRhY2gtaWQtZGlyJyBhbmQgSUQuIg0KPiA+ICsgIChl eHBhbmQtZmlsZS1uYW1lDQo+ID4gKyAgIChmdW5jYWxsIG9yZy1hdHRhY2gtaWQtdG8tcGF0aC1m dW5jdGlvbiBpZCkNCj4gPiArICAgKGV4cGFuZC1maWxlLW5hbWUgb3JnLWF0dGFjaC1pZC1kaXIp KSkNCj4gDQo+IENyZWF0ZXMgcGF0aCAtPiBSZXR1cm4gYSBmaWxlIG5hbWUuDQoNCkZpeGVkLg0K DQo+ID4gK29mIHRoZSBlbnRyeS4gIENyZWF0ZXMgcmVsYXRpdmUgbGlua3MgaWYgYG9yZy1hdHRh Y2gtZGlyLXJlbGF0aXZlJw0KPiA+ICtpcyB0Lg0KPiANCj4gTml0cGljazoNCj4gDQo+ICAgaXMg dCAtPiBpcyBub24tbmlsLg0KDQpBaCwgdHJ1ZS4gRml4ZWQuDQoNCj4gSWYgdGVzdHMgcGFzcywg ZmVlbCBmcmVlIHRvIGFwcGx5IHRoZSBwYXRjaGVzIGluIG1hc3Rlci4gVGhhbmsgeW91IQ0KDQpH b3QgaXQuIEFhYW5kIG9uZSB0ZXN0IGZhaWx1cmUuIFRoYXQgdGVzdCBpcyB1bnJlbGF0ZWQgdG8g bXkgY2hhbmdlcw0KdGhvdWdoLCBhbmQgZmFpbHMgYWxzbyBvbiBtYXN0ZXIuIFRlc3Qtb3JnLXRh YmxlL2NvcHktZG93bi4gU28gSSdsbA0KdHJ5IHRvIGFwcGx5IG15IHBhdGNoIGFzYXAgcmVnYXJk bGVzcyBvZiB0aGF0IG9uZSB0ZXN0IGZhaWxpbmcuDQoNCkp1c3Qgb25lIG1vcmUgdGhpbmcgLSBh IGZldyBkYXlzIGJhY2sgSSBhZGRlZCBhIHJvdyB0byBsaXNwL294LWh0bWwuZWwNCnJlZ2FyZGlu ZyBpbmxpbmUtaW1hZ2VzLiBJJ20gaW5jbHVkaW5nIHRoYXQgY2hhbmdlIGFzIHdlbGwgc2luY2Ug aXQNCnJlbGF0ZXMgMTAwJSB0byB0aGUgbmV3IGF0dGFjaG1lbnQgbGluay4gSSBsb29rZWQgaW4g dGhlIG90aGVyDQpleHBvcnQtYmFja2VuZHMgdG9vIGJ1dCBkaWRuJ3QgYWRkIGFueXRoaW5nIGR1 ZSB0byBsYWNrIG9mIHRpbWUgZm9yDQp0ZXN0aW5nLiBNYXliZSB0aGUgYWRkaXRpb25zIGZvciBv dGhlciBiYWNrZW5kcyBpcyBhcyB0cml2aWFsIGFzIGZvcg0KaHRtbC4gU28gc29tZW9uZSB3aG8g cmVndWxhcmx5IGV4cG9ydCB0byB0aG9zZSBiYWNrZW5kcyBtaWdodCB3YW50IHRvDQpzdWdnZXN0 IHBhdGNoZXMgZm9yIHRoZW0gdG8gbWFrZSBhdHRhY2htZW50IGxpbmtzIHRvIGltYWdlcyBhY3R1 YWxseQ0KZGlzcGxheSBhcyBpbWFnZXM/IPCfmIoNCg0KRmluYWwgcGF0Y2hlcyBhdHRhY2hlZCBm b3IgZnVsbCBkaXNjbG9zdXJlIGJlZm9yZSBhcHBseWluZyB0aGVtLg0KDQo+IA0KPiBSZWdhcmRz LA0KPiANCj4gLS0NCj4gTmljb2xhcyBHb2F6aW91DQo= --_003_HE1PR02MB3033AFD29F6692A154E5B1EADAF70HE1PR02MB3033eurp_ Content-Type: application/octet-stream; name="0001-org-test-test-org-element-test-org-test-ox-test-prop.patch" Content-Description: 0001-org-test-test-org-element-test-org-test-ox-test-prop.patch Content-Disposition: attachment; filename="0001-org-test-test-org-element-test-org-test-ox-test-prop.patch"; size=8578; creation-date="Sun, 07 Jul 2019 18:20:38 GMT"; modification-date="Sun, 07 Jul 2019 18:20:38 GMT" Content-Transfer-Encoding: base64 RnJvbSAzY2JlMzU2YjBhOWQxYTk4ODQ4ZGYwZmEwOWJhMzA2MzkyOTk1Yjg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAd2hpbC5zZT4KRGF0ZTogU3VuLCAyNiBNYXkgMjAxOSAwMzozNDozNCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMS8yXSBvcmctdGVzdCwgdGVzdC1vcmctZWxlbWVudCwgdGVzdC1vcmcsIHRl c3Qtb3gsCiB0ZXN0LXByb3BlcnR5LWluaGVyaXRhbmNlCgoqIG9yZy10ZXN0LmVsOgoKRml4IG9y Zy10ZXN0LXdpdGgtdGVtcC10ZXh0LWluLWZpbGUuICBNYWtlIGl0IHdvcmsgd2l0aCA8cG9pbnQ+ LCBhcwpzb21lIHRlc3RzIGFscmVhZHkgZXhwZWN0IGl0IHRvIGRvISAgQWxzbyBtYWtlIGl0IGZh aWwgbW9yZSBncmFjZWZ1bGx5CmJ5IHN0aWxsIHJlbW92aW5nIHRlbXBvcmFyeSBidWZmZXJzIGFu ZCBmaWxlcy4KCkltcHJvdmUgb3JnLXRlc3QtaW4tZXhhbXBsZS1maWxlLiAgTWFrZSBpdCBiZWhh dmUgc2ltaWxhciB0bwpvcmctdGVzdC13aXRoLXRlbXAtdGV4dCBhbmQgb3JnLXRlc3Qtd2l0aC10 ZW1wLXRleHQtaW4tZmlsZSwgaW4gdGhhdAppdCB3aWxsIHJldHVybiB0aGUgbGFzdCBldmFsdWF0 ZWQgZXhwcmVzc2lvbi4KCiogdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWVsZW1lbnQuZWwKCkZpeCBh IHRlbXAtdGV4dCBzdHJpbmdzIHNvIHRoYXQgaXQgZG9lc24ndCBoYXZlIGFuIGluaXRpYWwgbmV3 bGluZS4KCiogdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCgpNaW5vciBjbGVhbnVwIHRvIGFsaWdu IGNvZGUtc3RydWN0dXJlIHdpdGggb3RoZXIgdGVzdHMuICBOb3RoaW5nCmNoYW5nZXMgaW4gdGhl IHRlc3QgZXhlY3B0IHN0eWxlLgoKKiB0ZXN0aW5nL2xpc3AvdGVzdC1veC5lbAoKRml4IGEgY291 cGxlIG9mIHRlbXAtdGV4dCBzdHJpbmdzIHNvIHRoYXQgdGhleSBkb24ndCBoYXZlIGluaXRpYWwK bmV3bGluZXMuCgoqKiB0ZXN0LW9yZy1leHBvcnQvZXhwYW5kLWluY2x1ZGUKClRlc3Qgc3BlY2lm aWNhdGlvbiB3YXMgd3JvbmcsIGR1ZSB0byBvcmctdGVzdC13aXRoLXRlbXAtdGV4dC1pbi1maWxl Cm5vdCBwcmV2aW91c2x5IHdvcmtpbmcgd2l0aCA8cG9pbnQ+LiAgU2luY2UgdGhhdCBpcyBmaXhl ZCBpbiB0aGlzCnBhdGNoIHRoZSB0ZXN0IG5lZWRlZCB0byBiZSB1cGRhdGVkIHRvIG1hdGNoIHRo ZSBleHBlY3RlZCBvdXRjb21lLgoKKiB0ZXN0aW5nL2xpc3AvdGVzdC1wcm9wZXJ0eS1pbmhlcml0 YW5jZS5lbAoKRml4IHdyb25nIGZpbGUtaGVhZGVyIGFuZCBmaWxlLWVuZGluZy4KLS0tCiB0ZXN0 aW5nL2xpc3AvdGVzdC1vcmctZWxlbWVudC5lbCAgICAgICAgICB8ICA0ICstLQogdGVzdGluZy9s aXNwL3Rlc3Qtb3JnLmVsICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0tCiB0ZXN0aW5nL2xp c3AvdGVzdC1veC5lbCAgICAgICAgICAgICAgICAgICB8IDMwICsrKysrKysrLS0tLS0tLS0KIHRl c3RpbmcvbGlzcC90ZXN0LXByb3BlcnR5LWluaGVyaXRhbmNlLmVsIHwgIDQgKy0tCiB0ZXN0aW5n L29yZy10ZXN0LmVsICAgICAgICAgICAgICAgICAgICAgICB8IDQ0ICsrKysrKysrKysrKysrLS0t LS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsIGIvdGVzdGlu Zy9saXNwL3Rlc3Qtb3JnLWVsZW1lbnQuZWwKaW5kZXggMDRmOTdmOTdhLi5mMmFiMzgwMzEgMTAw NjQ0Ci0tLSBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsCisrKyBiL3Rlc3Rpbmcv bGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsCkBAIC0zMjY0LDggKzMyNjQsOCBAQCBERUFETElORTog PDIwMTItMDMtMjkgdGh1Lj4gU0NIRURVTEVEOiA8MjAxMi0wMy0yOSB0aHUuPiBDTE9TRUQ6IFsy MDEyLTAzLTI5IHRodQogCiAoZXJ0LWRlZnRlc3QgdGVzdC1vcmctZWxlbWVudC9ncmFudWxhcml0 eSAoKQogICAiVGVzdCBncmFudWxhcml0eSBpbXBhY3Qgb24gYnVmZmVyIHBhcnNpbmcuIgotICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIgotKiBIZWFkIDEKKyAgKG9yZy10ZXN0LXdpdGgtdGVt cC10ZXh0CisgICAgICAiKiBIZWFkIDEKICoqIEhlYWQgMgogIytCRUdJTl9DRU5URVIKIENlbnRl cmVkIHBhcmFncmFwaC4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy5lbCBiL3Rl c3RpbmcvbGlzcC90ZXN0LW9yZy5lbAppbmRleCBhYmMwMDQ2ODkuLmQ2NzFiNWM3OCAxMDA2NDQK LS0tIGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9y Zy5lbApAQCAtNTA2MCwxOCArNTA2MCwxOCBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogICAoc2hvdWxk CiAgICAoZXF1YWwKICAgICAiMSIKLSAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSFxu OlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIDxwb2ludD5IMiIKLSAgICAgIChvcmctZW50 cnktZ2V0IChwb2ludCkgIkEiIHQpKSkpCisgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIq IEhcbjpQUk9QRVJUSUVTOlxuOkE6IDFcbjpFTkQ6XG4qKiBIMiIKKyAgICAgIChvcmctZW50cnkt Z2V0IChwb2ludC1tYXgpICJBIiB0KSkpKQogICAoc2hvdWxkCiAgICAoZXF1YWwKICAgICAiMSIK LSAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSFxuOlBST1BFUlRJRVM6XG46QTogMVxu OkVORDpcbioqIDxwb2ludD5IMiIKKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSFxu OlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIEgyIgogICAgICAgKGxldCAoKG9yZy11c2Ut cHJvcGVydHktaW5oZXJpdGFuY2UgdCkpCi0JKG9yZy1lbnRyeS1nZXQgKHBvaW50KSAiQSIgJ3Nl bGVjdGl2ZSkpKSkpCisJKG9yZy1lbnRyeS1nZXQgKHBvaW50LW1heCkgIkEiICdzZWxlY3RpdmUp KSkpKQogICAoc2hvdWxkLW5vdAotICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEhcbjpQ Uk9QRVJUSUVTOlxuOkE6IDFcbjpFTkQ6XG4qKiA8cG9pbnQ+SDIiCisgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQgIiogSFxuOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIEgyIgogICAg ICAobGV0ICgob3JnLXVzZS1wcm9wZXJ0eS1pbmhlcml0YW5jZSBuaWwpKQotICAgICAgIChvcmct ZW50cnktZ2V0IChwb2ludCkgIkEiICdzZWxlY3RpdmUpKSkpCisgICAgICAgKG9yZy1lbnRyeS1n ZXQgKHBvaW50LW1heCkgIkEiICdzZWxlY3RpdmUpKSkpCiAgIChzaG91bGQKICAgIChlcXVhbAog ICAgICIxIDIiCmRpZmYgLS1naXQgYS90ZXN0aW5nL2xpc3AvdGVzdC1veC5lbCBiL3Rlc3Rpbmcv bGlzcC90ZXN0LW94LmVsCmluZGV4IDJjMjc3OGY4Mi4uYjhjNTA3ZTBiIDEwMDY0NAotLS0gYS90 ZXN0aW5nL2xpc3AvdGVzdC1veC5lbAorKysgYi90ZXN0aW5nL2xpc3AvdGVzdC1veC5lbApAQCAt MTM1Miw3ICsxMzUyLDcgQEAgRm9vdG5vdGVzW2ZuOjJdLCBmb290W2ZuOnRlc3RdIGFuZCBbZm46 aW5saW5lOmlubGluZSBmb290bm90ZV0KIAkgICAgICAgb3JnLXRlc3QtZGlyKQogICAgICAobmFy cm93LXRvLXJlZ2lvbiAocG9pbnQpIChwb2ludC1tYXgpKQogICAgICAob3JnLWV4cG9ydC1leHBh bmQtaW5jbHVkZS1rZXl3b3JkKQotICAgICAoZXEgMSAob3JnLWN1cnJlbnQtbGV2ZWwpKSkpCisg ICAgIChlcSAyIChvcmctY3VycmVudC1sZXZlbCkpKSkKICAgOzsgSWYgOm1pbmxldmVsIGlzIHBy ZXNlbnQgZG8gbm90IGFsdGVyIGl0LgogICAoc2hvdWxkCiAgICAob3JnLXRlc3Qtd2l0aC10ZW1w LXRleHQKQEAgLTIwMDMsOCArMjAwMyw4IEBAIEluIHBhcnRpY3VsYXIsIHN0cnVjdHVyZSBvZiB0 aGUgZG9jdW1lbnQgbXVzdG4ndCBiZSBhbHRlcmVkIGFmdGVyCiBjb21tZW50cyByZW1vdmFsLiIK ICAgKHNob3VsZAogICAgKGVxdWFsICJQYXJhMVxuXG5QYXJhMlxuIgotCSAgKG9yZy10ZXN0LXdp dGgtdGVtcC10ZXh0ICIKLVBhcmExCisJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAg ICAiUGFyYTEKICMgQ29tbWVudAogCiAjIENvbW1lbnQKQEAgLTIwMTIsMTUgKzIwMTIsMTUgQEAg UGFyYTIiCiAJICAgIChvcmctZXhwb3J0LWFzIChvcmctdGVzdC1kZWZhdWx0LWJhY2tlbmQpKSkp KQogICAoc2hvdWxkCiAgICAoZXF1YWwgIlBhcmExXG5cblBhcmEyXG4iCi0JICAob3JnLXRlc3Qt d2l0aC10ZW1wLXRleHQgIgotUGFyYTEKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAorCSAg ICAgICJQYXJhMQogIyBDb21tZW50CiBQYXJhMiIKIAkgICAgKG9yZy1leHBvcnQtYXMgKG9yZy10 ZXN0LWRlZmF1bHQtYmFja2VuZCkpKSkpCiAgIChzaG91bGQKICAgIChlcXVhbCAiW2ZuOjFdIFBh cmExXG5cblxuUGFyYTJcbiIKLQkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiCi1cW2ZuOjFd IFBhcmExCisJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiW2ZuOjFdIFBhcmEx CiAjIEluc2lkZSBkZWZpbml0aW9uCiAKIApAQCAtMjAyOSw4ICsyMDI5LDggQEAgUGFyYTIiCiAJ ICAgIChvcmctZXhwb3J0LWFzIChvcmctdGVzdC1kZWZhdWx0LWJhY2tlbmQpKSkpKQogICAoc2hv dWxkCiAgICAoZXF1YWwgIltmbjoxXSBQYXJhMVxuXG5QYXJhMlxuIgotCSAgKG9yZy10ZXN0LXdp dGgtdGVtcC10ZXh0ICIKLVxbZm46MV0gUGFyYTEKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4 dAorCSAgICAgICJbZm46MV0gUGFyYTEKIAogIyBJbnNpZGUgZGVmaW5pdGlvbgogCkBAIC0yMDQw LDI0ICsyMDQwLDI0IEBAIFBhcmEyIgogCSAgICAob3JnLWV4cG9ydC1hcyAob3JnLXRlc3QtZGVm YXVsdC1iYWNrZW5kKSkpKSkKICAgKHNob3VsZAogICAgKGVxdWFsICJbZm46MV0gUGFyYTFcblxu UGFyYTJcbiIKLQkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiCi1cW2ZuOjFdIFBhcmExCisJ ICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiW2ZuOjFdIFBhcmExCiAjIEluc2lk ZSBkZWZpbml0aW9uCiAKIFBhcmEyIgogCSAgICAob3JnLWV4cG9ydC1hcyAob3JnLXRlc3QtZGVm YXVsdC1iYWNrZW5kKSkpKSkKICAgKHNob3VsZAogICAgKGVxdWFsICJbZm46MV0gUGFyYTFcblxu UGFyYTJcbiIKLQkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiCi1cW2ZuOjFdIFBhcmExCisJ ICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiW2ZuOjFdIFBhcmExCiAKICMgSW5z aWRlIGRlZmluaXRpb24KIFBhcmEyIgogCSAgICAob3JnLWV4cG9ydC1hcyAob3JnLXRlc3QtZGVm YXVsdC1iYWNrZW5kKSkpKSkKICAgKHNob3VsZAogICAgKGVxdWFsICItIGl0ZW0gMVxuXG4tIGl0 ZW0gMlxuIgotCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIKLS0gaXRlbSAxCisJICAob3Jn LXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiLSBpdGVtIDEKIAogICAjIENvbW1lbnQKIApk aWZmIC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rlc3QtcHJvcGVydHktaW5oZXJpdGFuY2UuZWwgYi90 ZXN0aW5nL2xpc3AvdGVzdC1wcm9wZXJ0eS1pbmhlcml0YW5jZS5lbAppbmRleCAwZjgwM2U1Zjcu LjFkMGRjZmJlMSAxMDA2NDQKLS0tIGEvdGVzdGluZy9saXNwL3Rlc3QtcHJvcGVydHktaW5oZXJp dGFuY2UuZWwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3QtcHJvcGVydHktaW5oZXJpdGFuY2UuZWwK QEAgLTEsNCArMSw0IEBACi07OzsgdGVzdC1vYi1SLmVsIC0tLSB0ZXN0cyBmb3Igb2ItUi5lbAor Ozs7IHRlc3QtcHJvcGVydHktaW5oZXJpdGFuY2UuZWwgLS0tIHRlc3RzIGZvciBwcm9wZXJ0eS1p bmhlcml0YW5jZS5lbAogCiA7OyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxNCwgMjAxOSBFcmljIFNj aHVsdGUKIDs7IEF1dGhvcnM6IEVyaWMgU2NodWx0ZQpAQCAtNDcsNCArNDcsNCBAQAogCiAocHJv dmlkZSAndGVzdC1vYi1SKQogCi07OzsgdGVzdC1vYi1SLmVsIGVuZHMgaGVyZQorOzs7IHRlc3Qt cHJvcGVydHktaW5oZXJpdGFuY2UuZWwgZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0aW5nL29y Zy10ZXN0LmVsIGIvdGVzdGluZy9vcmctdGVzdC5lbAppbmRleCAzOWMzNDY0MTAuLjI5NWRmMTkx OSAxMDA2NDQKLS0tIGEvdGVzdGluZy9vcmctdGVzdC5lbAorKysgYi90ZXN0aW5nL29yZy10ZXN0 LmVsCkBAIC0xNDYsNyArMTQ2LDggQEAgY3VycmVudGx5IGV4ZWN1dGVkLiIpCiAgIChkZWNsYXJl IChpbmRlbnQgMSkpCiAgIGAobGV0KiAoKG15LWZpbGUgKG9yICxmaWxlIG9yZy10ZXN0LWZpbGUp KQogCSAgKHZpc2l0ZWQtcCAoZ2V0LWZpbGUtYnVmZmVyIG15LWZpbGUpKQotCSAgdG8tYmUtcmVt b3ZlZCkKKwkgIHRvLWJlLXJlbW92ZWQKKwkgIHJlc3VsdHMpCiAgICAgIChzYXZlLXdpbmRvdy1l eGN1cnNpb24KICAgICAgICAoc2F2ZS1tYXRjaC1kYXRhCiAJIChmaW5kLWZpbGUgbXktZmlsZSkK QEAgLTE2MCw5ICsxNjEsMTAgQEAgY3VycmVudGx5IGV4ZWN1dGVkLiIpCiAJICAgICAgIChvcmct c2hvdy1zdWJ0cmVlKQogCSAgICAgICAob3JnLXNob3ctYWxsICcoYmxvY2tzKSkpCiAJICAgKGVy cm9yIG5pbCkpCi0JIChzYXZlLXJlc3RyaWN0aW9uICxAYm9keSkpKQorCSAoc2V0cSByZXN1bHRz IChzYXZlLXJlc3RyaWN0aW9uICxAYm9keSkpKSkKICAgICAgKHVubGVzcyB2aXNpdGVkLXAKLSAg ICAgICAoa2lsbC1idWZmZXIgdG8tYmUtcmVtb3ZlZCkpKSkKKyAgICAgICAoa2lsbC1idWZmZXIg dG8tYmUtcmVtb3ZlZCkpCisgICAgIHJlc3VsdHMpKQogKGRlZi1lZGVidWctc3BlYyBvcmctdGVz dC1pbi1leGFtcGxlLWZpbGUgKGZvcm0gYm9keSkpCiAKIChkZWZtYWNybyBvcmctdGVzdC1hdC1t YXJrZXIgKGZpbGUgbWFya2VyICZyZXN0IGJvZHkpCkBAIC0xOTgsMjAgKzIwMCwzMCBAQCBvdGhl cndpc2UgcGxhY2UgdGhlIHBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGluc2VydGVkIHRl eHQuIgogKGRlZi1lZGVidWctc3BlYyBvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAoZm9ybSBib2R5 KSkKIAogKGRlZm1hY3JvIG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0LWluLWZpbGUgKHRleHQgJnJl c3QgYm9keSkKLSAgIlJ1biBib2R5IGluIGEgdGVtcG9yYXJ5IGZpbGUgYnVmZmVyIHdpdGggT3Jn IG1vZGUgYXMgdGhlIGFjdGl2ZSBtb2RlLiIKKyAgIlJ1biBib2R5IGluIGEgdGVtcG9yYXJ5IGZp bGUgYnVmZmVyIHdpdGggT3JnIG1vZGUgYXMgdGhlIGFjdGl2ZSBtb2RlLgorSWYgdGhlIHN0cmlu ZyBcIjxwb2ludD5cIiBhcHBlYXJzIGluIFRFWFQgdGhlbiByZW1vdmUgaXQgYW5kCitwbGFjZSB0 aGUgcG9pbnQgdGhlcmUgYmVmb3JlIHJ1bm5pbmcgQk9EWSwgb3RoZXJ3aXNlIHBsYWNlIHRoZQor cG9pbnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYnVmZmVyLiIKICAgKGRlY2xhcmUgKGluZGVu dCAxKSkKLSAgKGxldCAoKHJlc3VsdHMgKGNsLWdlbnN5bSkpKQotICAgIGAobGV0ICgoZmlsZSAo bWFrZS10ZW1wLWZpbGUgIm9yZy10ZXN0IikpCi0JICAgKGtpbGwtYnVmZmVyLXF1ZXJ5LWZ1bmN0 aW9ucyBuaWwpCi0JICAgKGluc2lkZS10ZXh0IChpZiAoc3RyaW5ncCAsdGV4dCkgLHRleHQgKGV2 YWwgLHRleHQpKSkKLQkgICAscmVzdWx0cykKLSAgICAgICAod2l0aC10ZW1wLWZpbGUgZmlsZSAo aW5zZXJ0IGluc2lkZS10ZXh0KSkKLSAgICAgICAoZmluZC1maWxlIGZpbGUpCi0gICAgICAgKG9y Zy1tb2RlKQotICAgICAgIChzZXRxICxyZXN1bHRzIChwcm9nbiAsQGJvZHkpKQotICAgICAgIChz YXZlLWJ1ZmZlcikgKGtpbGwtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpCi0gICAgICAgKGRlbGV0 ZS1maWxlIGZpbGUpCi0gICAgICAgLHJlc3VsdHMpKSkKKyAgYChsZXQgKChmaWxlIChtYWtlLXRl bXAtZmlsZSAib3JnLXRlc3QiKSkKKwkgKGluc2lkZS10ZXh0IChpZiAoc3RyaW5ncCAsdGV4dCkg LHRleHQgKGV2YWwgLHRleHQpKSkKKwkgYnVmZmVyKQorICAgICAod2l0aC10ZW1wLWZpbGUgZmls ZSAoaW5zZXJ0IGluc2lkZS10ZXh0KSkKKyAgICAgKHVud2luZC1wcm90ZWN0CisJIChwcm9nbgor CSAgIChzZXRxIGJ1ZmZlciAoZmluZC1maWxlIGZpbGUpKQorCSAgICh3aGVuIChyZS1zZWFyY2gt Zm9yd2FyZCAiPHBvaW50PiIgbmlsIHQpCisJICAgICAocmVwbGFjZS1tYXRjaCAiIikpCisJICAg KG9yZy1tb2RlKQorCSAgIChwcm9nbiAsQGJvZHkpKQorICAgICAgIChsZXQgKChraWxsLWJ1ZmZl ci1xdWVyeS1mdW5jdGlvbnMgbmlsKSkKKwkgKHdoZW4gYnVmZmVyCisJICAgKHNldC1idWZmZXIg YnVmZmVyKQorCSAgIDs7IElnbm9yZSBjaGFuZ2VzLCB3ZSdyZSBkZWxldGluZyB0aGUgZmlsZSBp biB0aGUgbmV4dCBzdGVwCisJICAgOzsgYW55d2F5cy4KKwkgICAoc2V0LWJ1ZmZlci1tb2RpZmll ZC1wIG5pbCkKKwkgICAoa2lsbC1idWZmZXIpKQorCSAoZGVsZXRlLWZpbGUgZmlsZSkpKSkpCiAo ZGVmLWVkZWJ1Zy1zcGVjIG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0LWluLWZpbGUgKGZvcm0gYm9k eSkpCiAKIChkZWZ1biBvcmctdGVzdC10YWJsZS10YXJnZXQtZXhwZWN0ICh0YXJnZXQgJm9wdGlv bmFsIGV4cGVjdCBsYXBzCi0tIAoyLjE3LjEKCg== --_003_HE1PR02MB3033AFD29F6692A154E5B1EADAF70HE1PR02MB3033eurp_ Content-Type: application/octet-stream; name="0002-org-attach-org-org-manual-org-news-ox-html-testing.patch" Content-Description: 0002-org-attach-org-org-manual-org-news-ox-html-testing.patch Content-Disposition: attachment; filename="0002-org-attach-org-org-manual-org-news-ox-html-testing.patch"; size=107223; creation-date="Sun, 07 Jul 2019 18:20:38 GMT"; modification-date="Sun, 07 Jul 2019 18:20:38 GMT" Content-Transfer-Encoding: base64 RnJvbSBhZTljZDQzNzBiNGRhYWFjYTdiYzUzOTIzZDVlNDM4YzA4OTU1ZTQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAd2hpbC5zZT4KRGF0ZTogU3VuLCAyNSBOb3YgMjAxOCAyMTozODo0NCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMi8yXSBvcmctYXR0YWNoKiwgb3JnLCBvcmctbWFudWFsLCBvcmctbmV3cywg b3gtaHRtbCwKIHRlc3RpbmcvKgoKKiBsaXNwL29yZy1hdHRhY2guZWwKCkNoYW5nZWQgdGhlIHdh eSBhdHRhY2htZW50cyBkZWFsIHdpdGggcHJvcGVydHktaW5oZXJpdGFuY2UuICBJdCBub3cKYWRo ZXJlcyB0byB0aGUgPW9yZy11c2UtcHJvcGVydHktaW5oZXJpdGFuY2U9IHNldHRpbmcgYnkgZGVm YXVsdCBidXQKaXQgY2FuIGJlIGN1c3RvbWl6ZWQgaWYgbmVlZGVkIChJIHJlY29tbWVuZCB0byBl bmFibGUgaXQhKS4KVGhlIHByb3BlcnR5IEFUVEFDSF9ESVIgaXMgZGVwcmVjYXRlZCBpbiBmYXZv dXIgb2YgdGhlIHNob3J0ZXIgYW5kIHNpbXBsZXIKcHJvcGVydHkgRElSLgoKQWRkZWQgYW4gZXhw bGljaXQgb3B0aW9uIHRvID1vcmctYXR0YWNoPSBmb3IgdW5zZXR0aW5nCmF0dGFjaG1lbnQtZGly ZWN0b3JpZXMgKGkuZS4gcmVtb3ZlIERJUiBwcm9wZXJ0eSBhbmQgZGVhbCB3aXRoIHRoZQphdHRh Y2htZW50cyBieSBpbnRlcmFjdGlvbikuCgpBZGRlZCBhdHRhY2htZW50IGxpbmsgdHlwZSB3aXRo IHRoZSBwcmVmaXggImF0dGFjaG1lbnQ6Ii4KCkFkZGVkIGN1c3RvbWl6YXRpb25zOgotIG9yZy1h dHRhY2gtZGlyLXJlbGF0aXZlCi0gb3JnLWF0dGFjaC1wcmVmZXJyZWQtbmV3LW1ldGhvZAotIG9y Zy1hdHRhY2gtdXNlLWluaGVyaXRhbmNlCi0gb3JnLWF0dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9u CgpIb29rcyBhZGRlZDoKLSBvcmctYXR0YWNoLWFmdGVyLWNoYW5nZS1ob29rCi0gb3JnLWF0dGFj aC1vcGVuLWhvb2sKCkEgbmV3IGxpbmt0eXBlICJhdHRhY2htZW50IiBpcyBhZGRlZCBpbiBvcmRl ciB0byByZWR1Y2UKbGluay1kdXBsaWNhdGlvbiB3aGVuIHdhbnRpbmcgdG8gbGluayB0byBmaWxl cyBpbiBhdHRhY2hlZCBmb2xkZXJzIG9mCm5vZGVzLiAgVGhpcyB3b3JrcyBmb3IgYm90aCBJRCBh bmQgRElSIHByb3BlcnRpZXMuICBUaGUgZ29hbCBpcyB0bwptYWtlIHRoZSBmdW5jdGlvbmFsaXR5 IGZvciBhdHRhY2htZW50IGxpbmtzIG1pcnJvciB0aGUgZnVuY3Rpb25hbGl0eQpmb3IgZmlsZSBs aW5rcy4KCiogbGlzcC9vcmctYXR0YWNoLWdpdC5lbAoKTmV3IGZpbGUsIGV4aXN0aW5nIGZ1bmN0 aW9uYWxpdHkuICBDb2RlIGhlcmUgaGFzIGJlZW4gZmFjdG9yZWQgb3V0CmZyb20gb3JnLWF0dGFj aC5lbCBhbmQgaWYgR0lULWZ1bmN0aW9uYWxpdHkgaXMgdG8gYmUgdXNlZCB0aGlzIG1vZHVsZQpu ZWVkcyB0byBiZSByZXF1aXJlZCBzZXBhdGF0ZWx5LiAgSXQgZXh0ZW5kcyBvcmctYXR0YWNoIGJ5 IHVzZSBvZiBpdHMKaG9va3MuCgpBY3RpdmF0aW5nIGdpdCBmdW5jdGlvbmFsaXR5IGluIG9yZy1h dHRhY2ggaXMgZG9uZSBieSBsb2FkaW5nCm9yZy1hdHRhY2gtZ2l0IGZyb20gbm93IG9uLCBpbnN0 ZWFkIG9mIGN1c3RvbWl6aW5nIGEgdmFyaWFibGUuCgpOYW1pbmcgb2YgYm90aCBmdW5jdGlvbnMg YW5kIHRlc3RzIGhhcyBiZWVuIG1vZGlmaWVkIHRvIG1hdGNoIHRoZSBtb3ZlCm9mIGZ1bmN0aW9u YWxpdHkgaW50byBpdHMgb3duIG1vZHVsZS4KCiogbGlzcC9vcmcuZWwKCklubGluZSBpbWFnZXMg YXJlIHNob3duIGFsc28gdXNpbmcgYXR0YWNobWVudC1saW5rcywgZXhhY3RseSB0aGUgc2FtZQph cyBpdCB3b3JrcyBmb3IgZmlsZS1saW5rcyB0b2RheS4KCk1ha2Ugb3JnLW9wZW4tYXQtcG9pbnQg cmVzcGVjdCBBUkcgd2hlbiBvcGVuaW5nIGF0dGFjaG1lbnQtZGlyLgoKKiBsaXNwL29yZy1jb21w YXQuZWwKCm9yZy1hdHRhY2gtZGlyZWN0b3J5IGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Vy IGZvcgpvcmctYXR0YWNoLWlkLWRpci4gIFRoZSBuZXcgbmFtZSBtYXRjaGVzIGl0cyBwdXJwb3Nl IGJldHRlci4KCiogbGlzcC9veC1odG1sLmVsCgpFeHBvcnQgYXR0YWNobWVudCBsaW5rcyB0byBp bWFnZXMgYXMgaW5saW5lIGltYWdlcywgaW4gdGhlIHNhbWUgd2F5IGFzCmZpbGUgbGlua3Mgd29y ayB0b2RheS4KCiogZXRjL09SRy1ORVdTCgpNZW50aW9uIHRoZSBjaGFuZ2VzIGluIHRoaXMgcGF0 Y2guCgoqIGRvYy9vcmctbWFudWFsLm9yZwoKVGhlIGNoYXB0ZXIgIlJlZmlsZSwgQ29weSwgQXJj aGl2ZSIgaGFzIGJlZW4gc3BsaXQgaW50byB0d28gc2VwYXJhdGUKY2hhcHRlcnMuCi0gIlJlZmls ZSwgQ29weSBhbmQgQXJjaGl2aW5nIiBmb3IgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBtb3ZpbmcK ICBleGlzdGluZyBkYXRhIGFyb3VuZC4KCi0gIkNhcHR1cmUsIEF0dGFjaG1lbnRzLCBSU1MgRmVl ZHMgYW5kIFByb3RvY29scyIgZm9yIGluZm9ybWF0aW9uCiAgcmVsYXRlZCB0byB3b3JraW5nIHdp dGggZXh0ZXJuYWwgZGF0YS4KClRoZSBhdHRhY2htZW50LXBhcnQgaGFzIGJlZW4gcmV3cml0dGVu IGFuZCBleHRlbmRlZCB0byBtYXRjaCB0aGUKY2hhbmdlcyBpbiB0aGlzIHBhdGNoLgoKVGhlIG5l dyBhdHRhY2htZW50IGxpbmsgdHlwZSBpcyBtZW50aW9uZWQgYm90aCBpbnNpZGUgdGhlIGF0dGFj aG1lbnRzCmNoYXB0ZXIgYW5kIGluIHRoZSBjaGFwdGVyIGRlYWxpbmcgd2l0aCBsaW5rcy4KCkRv Y3VtZW50YXRpb24gcmVsYXRlZCB0byBleHRlcm5hbCBsaW5rcyBoYXMgYmVlbiBpbXByb3ZlZC4K CiogdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC1hbm5leC5lbAoKUmVxdWlyZSBvcmctYXR0 YWNoLWdpdCBpbnN0ZWFkIG9mIG9yZy1hdHRhY2gsIHNpbmNlIHRoaXMgZmlsZSB0ZXN0cwp0aGUg R0lULWZ1bmN0aW9uYWxpdHkuCgoqIHRlc3RpbmcvbGlzcC90ZXN0LW9yZy1hdHRhY2guZWwKCkFk ZCB0ZXN0cyBmb3Igb3JnLWF0dGFjaC4KCiogdGVzdGluZy9vcmctdGVzdC5lbAoKRGVmaW5lIGEg c3ltYm9sIGZvciBhIGZpbGUgdG8gdGVzdCBhdHRhY2htZW50cyB3aXRoLgoKKiB0ZXN0aW5nL2V4 YW1wbGVzLyoKCkEgYnVuY2ggb2YgbmV3IGV4YW1wbGUgZmlsZXMgYW5kIGZvbGRlcnMgYXJlIGNy ZWF0ZWQgYW5kIGFyZSB1c2VkIGluCnRlc3Rpbmcgb2Ygb3JnLWF0dGFjaCB0byB2ZXJpZnkgaXRz IGZ1bmN0aW9uYWxpdHkuCi0tLQogZG9jL29yZy1tYW51YWwub3JnICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTA3OSArKysrKysrKysrLS0tLS0tLQogZXRjL09SRy1ORVdTICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA5NCArKwogbGlzcC9vcmctYXR0YWNoLWdpdC5l bCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExNyArKwogbGlzcC9vcmctYXR0YWNoLmVsICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDU2MSArKysrKy0tLS0KIGxpc3Avb3JnLWNvbXBh dC5lbCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogbGlzcC9vcmcuZWwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMyArLQogbGlzcC9veC1odG1sLmVs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiB0ZXN0aW5nL2V4YW1wbGVz L2F0dDEvZmlsZUEgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHRlc3RpbmcvZXhhbXBsZXMv YXR0MS9maWxlQiAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogdGVzdGluZy9leGFtcGxlcy9h dHQyL2ZpbGVDICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiB0ZXN0aW5nL2V4YW1wbGVzL2F0 dDIvZmlsZUQgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHRlc3RpbmcvZXhhbXBsZXMvYXR0 YWNobWVudHMub3JnICAgICAgICAgICAgICB8ICAgMzIgKwogdGVzdGluZy9leGFtcGxlcy9kYXRh L2FiL2NkMTIzL2ZpbGVFICAgICAgICAgIHwgICAgMSArCiAuLi5hdHRhY2gtYW5uZXguZWwgPT4g dGVzdC1vcmctYXR0YWNoLWdpdC5lbH0gfCAgIDEyICstCiB0ZXN0aW5nL2xpc3AvdGVzdC1vcmct YXR0YWNoLmVsICAgICAgICAgICAgICAgfCAgIDY5ICsrCiB0ZXN0aW5nL2xpc3AvdGVzdC1vcmcu ZWwgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICstCiB0ZXN0aW5nL29yZy10ZXN0LmVsICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIDE3IGZpbGVzIGNoYW5nZWQsIDEzMDcg aW5zZXJ0aW9ucygrKSwgNjk4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpc3Av b3JnLWF0dGFjaC1naXQuZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL2V4YW1wbGVzL2F0 dDEvZmlsZUEKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL2V4YW1wbGVzL2F0dDEvZmlsZUIK IGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL2V4YW1wbGVzL2F0dDIvZmlsZUMKIGNyZWF0ZSBt b2RlIDEwMDY0NCB0ZXN0aW5nL2V4YW1wbGVzL2F0dDIvZmlsZUQKIGNyZWF0ZSBtb2RlIDEwMDY0 NCB0ZXN0aW5nL2V4YW1wbGVzL2F0dGFjaG1lbnRzLm9yZwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3RpbmcvZXhhbXBsZXMvZGF0YS9hYi9jZDEyMy9maWxlRQogcmVuYW1lIHRlc3RpbmcvbGlzcC97 dGVzdC1vcmctYXR0YWNoLWFubmV4LmVsID0+IHRlc3Qtb3JnLWF0dGFjaC1naXQuZWx9ICg5MyUp CgpkaWZmIC0tZ2l0IGEvZG9jL29yZy1tYW51YWwub3JnIGIvZG9jL29yZy1tYW51YWwub3JnCmlu ZGV4IDgzMThlN2NkYy4uZTgxYjc2ZjE0IDEwMDY0NAotLS0gYS9kb2Mvb3JnLW1hbnVhbC5vcmcK KysrIGIvZG9jL29yZy1tYW51YWwub3JnCkBAIC0zMDcxLDYgKzMwNzEsNyBAQCBwb2ludCBvbiBv ciBhdCBhIHRhcmdldC4KICMrY2luZGV4OiBpcmMgbGlua3MKICMrY2luZGV4OiBVUkwgbGlua3MK ICMrY2luZGV4OiBmaWxlIGxpbmtzCisjK2NpbmRleDogYXR0YWNobWVudCBsaW5rcwogIytjaW5k ZXg6IFJtYWlsIGxpbmtzCiAjK2NpbmRleDogTUgtRSBsaW5rcwogIytjaW5kZXg6IFVzZW5ldCBs aW5rcwpAQCAtMzA4MiwzOCArMzA4MywxMTQgQEAgT3JnIHN1cHBvcnRzIGxpbmtzIHRvIGZpbGVz LCB3ZWJzaXRlcywgVXNlbmV0IGFuZCBlbWFpbCBtZXNzYWdlcywgQkJEQgogZGF0YWJhc2UgZW50 cmllcyBhbmQgbGlua3MgdG8gYm90aCBJUkMgY29udmVyc2F0aW9ucyBhbmQgdGhlaXIgbG9ncy4K IEV4dGVybmFsIGxpbmtzIGFyZSBVUkwtbGlrZSBsb2NhdG9ycy4gIFRoZXkgc3RhcnQgd2l0aCBh IHNob3J0CiBpZGVudGlmeWluZyBzdHJpbmcgZm9sbG93ZWQgYnkgYSBjb2xvbi4gIFRoZXJlIGNh biBiZSBubyBzcGFjZSBhZnRlcgotdGhlIGNvbG9uLiAgVGhlIGZvbGxvd2luZyBsaXN0IHNob3dz IGV4YW1wbGVzIGZvciBlYWNoIGxpbmsgdHlwZS4KLQotfCA9aHR0cHM6Ly9zdGFmZi5zY2llbmNl LnV2YS5ubC9jLmRvbWluaWsvPSB8IG9uIHRoZSB3ZWIgICAgICAgICAgICAgICAgICAgICB8Ci18 ID1kb2k6MTAuMTAwMC8xODI9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgRE9JIGZvciBhbiBl bGVjdHJvbmljIHJlc291cmNlIHwKLXwgPWZpbGU6L2hvbWUvZG9taW5pay9pbWFnZXMvanVwaXRl ci5qcGc9ICAgfCBmaWxlLCBhYnNvbHV0ZSBwYXRoICAgICAgICAgICAgfAotfCA9L2hvbWUvZG9t aW5pay9pbWFnZXMvanVwaXRlci5qcGc9ICAgICAgICB8IHNhbWUgYXMgYWJvdmUgICAgICAgICAg ICAgICAgICB8Ci18ID1maWxlOnBhcGVycy9sYXN0LnBkZj0gICAgICAgICAgICAgICAgICAgIHwg ZmlsZSwgcmVsYXRpdmUgcGF0aCAgICAgICAgICAgIHwKLXwgPS4vcGFwZXJzL2xhc3QucGRmPSAg ICAgICAgICAgICAgICAgICAgICAgfCBzYW1lIGFzIGFib3ZlICAgICAgICAgICAgICAgICAgfAot fCA9ZmlsZTovc3NoOm1lQHNvbWUud2hlcmU6cGFwZXJzL2xhc3QucGRmPSB8IGZpbGUsIHBhdGgg b24gcmVtb3RlIG1hY2hpbmUgICB8Ci18ID0vc3NoOm1lQHNvbWUud2hlcmU6cGFwZXJzL2xhc3Qu cGRmPSAgICAgIHwgc2FtZSBhcyBhYm92ZSAgICAgICAgICAgICAgICAgIHwKLXwgPWZpbGU6c29t ZXRleHRmaWxlOjpOTk49ICAgICAgICAgICAgICAgICAgfCBmaWxlLCBqdW1wIHRvIGxpbmUgbnVt YmVyICAgICAgfAotfCA9ZmlsZTpwcm9qZWN0cy5vcmc9ICAgICAgICAgICAgICAgICAgICAgICB8 IGFub3RoZXIgT3JnIGZpbGUgICAgICAgICAgICAgICB8Ci18ID1maWxlOnByb2plY3RzLm9yZzo6 c29tZSB3b3Jkcz0gICAgICAgICAgIHwgdGV4dCBzZWFyY2ggaW4gT3JnIGZpbGVbZm46MjddIHwK LXwgPWZpbGU6cHJvamVjdHMub3JnOjoqdGFzayB0aXRsZT0gICAgICAgICAgfCBoZWFkaW5nIHNl YXJjaCBpbiBPcmcgZmlsZSAgICAgfAotfCA9ZmlsZStzeXM6L3BhdGgvdG8vZmlsZT0gICAgICAg ICAgICAgICAgICB8IG9wZW4gdmlhIE9TLCBsaWtlIGRvdWJsZS1jbGljayB8Ci18ID1maWxlK2Vt YWNzOi9wYXRoL3RvL2ZpbGU9ICAgICAgICAgICAgICAgIHwgZm9yY2Ugb3BlbmluZyBieSBFbWFj cyAgICAgICAgIHwKLXwgPWRvY3ZpZXc6cGFwZXJzL2xhc3QucGRmOjpOTk49ICAgICAgICAgICAg fCBvcGVuIGluIGRvYy12aWV3IG1vZGUgYXQgcGFnZSAgfAotfCA9aWQ6Qjc0MjNGNEQtMkU4QS00 NzFCLTg4MTAtQzQwRjA3NDcxN0U5PSB8IGxpbmsgdG8gaGVhZGluZyBieSBJRCAgICAgICAgICB8 Ci18ID1uZXdzOmNvbXAuZW1hY3M9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgVXNlbmV0IGxp bmsgICAgICAgICAgICAgICAgICAgIHwKLXwgPW1haWx0bzphZGVudEBnYWxheHkubmV0PSAgICAg ICAgICAgICAgICAgfCBtYWlsIGxpbmsgICAgICAgICAgICAgICAgICAgICAgfAotfCA9bWhlOmZv bGRlcj0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE1ILUUgZm9sZGVyIGxpbmsgICAg ICAgICAgICAgICB8Ci18ID1taGU6Zm9sZGVyI2lkPSAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgTUgtRSBtZXNzYWdlIGxpbmsgICAgICAgICAgICAgIHwKLXwgPXJtYWlsOmZvbGRlcj0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCBSbWFpbCBmb2xkZXIgbGluayAgICAgICAgICAgICAg fAotfCA9cm1haWw6Zm9sZGVyI2lkPSAgICAgICAgICAgICAgICAgICAgICAgICB8IFJtYWlsIG1l c3NhZ2UgbGluayAgICAgICAgICAgICB8Ci18ID1nbnVzOmdyb3VwPSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgR251cyBncm91cCBsaW5rICAgICAgICAgICAgICAgIHwKLXwgPWdudXM6 Z3JvdXAjaWQ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHbnVzIGFydGljbGUgbGluayAg ICAgICAgICAgICAgfAotfCA9YmJkYjpSLipTdGFsbG1hbj0gICAgICAgICAgICAgICAgICAgICAg ICB8IEJCREIgbGluayAod2l0aCByZWdleHApICAgICAgICB8Ci18ID1pcmM6L2lyYy5jb20vI2Vt YWNzL2JvYj0gICAgICAgICAgICAgICAgIHwgSVJDIGxpbmsgICAgICAgICAgICAgICAgICAgICAg IHwKLXwgPWluZm86b3JnI0V4dGVybmFsIGxpbmtzPSAgICAgICAgICAgICAgICAgfCBJbmZvIG5v ZGUgbGluayAgICAgICAgICAgICAgICAgfAotfCA9c2hlbGw6bHMgKi5vcmc9ICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHNoZWxsIGNvbW1hbmQgICAgICAgICAgICAgICAgICB8Ci18ID1lbGlz cDpvcmctYWdlbmRhPSAgICAgICAgICAgICAgICAgICAgICAgIHwgaW50ZXJhY3RpdmUgRWxpc3Ag Y29tbWFuZCAgICAgIHwKLXwgPWVsaXNwOihmaW5kLWZpbGUgIkVsaXNwLm9yZyIpPSAgICAgICAg ICAgfCBFbGlzcCBmb3JtIHRvIGV2YWx1YXRlICAgICAgICAgfAordGhlIGNvbG9uLgorCitIZXJl IGlzIHRoZSBmdWxsIHNldCBvZiBidWlsdC1pbiBsaW5rIHR5cGVzOgorCistID1maWxlPSA6Ogor CisgICBGaWxlIGxpbmtzLiAgRmlsZSBuYW1lIG1heSBiZSByZW1vdGUsIGFic29sdXRlLCBvciBy ZWxhdGl2ZS4KKworICAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkgYSBsaW5lIG51bWJl ciwgb3IgYSB0ZXh0IHNlYXJjaC4KKyAgIEluIE9yZyBmaWxlcywgeW91IG1heSBsaW5rIHRvIGEg aGVhZGxpbmUgbmFtZSwgYSBjdXN0b20gSUQsIG9yIGEKKyAgIGNvZGUgcmVmZXJlbmNlIGluc3Rl YWQuCisKKyAgIEFzIGEgc3BlY2lhbCBjYXNlLCAiZmlsZSIgcHJlZml4IG1heSBiZSBvbWl0dGVk IGlmIHRoZSBmaWxlIG5hbWUKKyAgIGlzIGNvbXBsZXRlLCBlLmcuLCBpdCBzdGFydHMgd2l0aCA9 Li89LCBvciA9Lz0uCisKKy0gPWF0dGFjaG1lbnQ9IDo6CisKKyAgU2FtZSBhcyBmaWxlIGxpbmtz IGJ1dCBmb3IgZmlsZXMgYW5kIGZvbGRlcnMgYXR0YWNoZWQgdG8gdGhlIGN1cnJlbnQKKyAgbm9k ZSAoc2VlIFtbKkF0dGFjaG1lbnRzXV0pLiAgQXR0YWNobWVudCBsaW5rcyBhcmUgaW50ZW5kZWQg dG8gYmVoYXZlCisgIGV4YWN0bHkgYXMgZmlsZSBsaW5rcyBidXQgZm9yIGZpbGVzIHJlbGF0aXZl IHRvIHRoZSBhdHRhY2htZW50CisgIGRpcmVjdG9yeS4KKworLSA9YmJkYj0gOjoKKworICBMaW5r IHRvIGEgQkJEQiByZWNvcmQsIHdpdGggcG9zc2libGUgcmVnZXhwIGNvbXBsZXRpb24uCisKKy0g PWRvY3ZpZXc9IDo6CisKKyAgTGluayB0byBhIGRvY3VtZW50IG9wZW5lZCB3aXRoIERvY1ZpZXcg bW9kZS4gIFlvdSBtYXkgc3BlY2lmeSBhIHBhZ2UKKyAgbnVtYmVyLgorCistID1kb2k9IDo6CisK KyAgTGluayB0byBhbiBlbGVjdHJvbmljIHJlc3NvdXJjZSwgdGhyb3VnaCBpdHMgaGFuZGxlLgor CistID1lbGlzcD0gOjoKKworICBFeGVjdXRlIGFuIEVsaXNwIGNvbW1hbmQgdXBvbiBhY3RpdmF0 aW9uLgorCistID1nbnVzPSwgPXJtYWlsPSwgPW1oZT0gOjoKKworICBMaW5rcyB0byBtZXNzYWdl cyBvciBmb2xkZXJzIGZyb20gYSBnaXZlbiBFbWFjcycgTVVBLgorCistID1odHRwPSwgPWh0dHBz PSA6OgorCisgIFdlYiBsaW5rcy4KKworLSA9aWQ9IDo6CisKKyAgTGluayB0byBhIHNwZWNpZmlj IGhlYWRsaW5lIGJ5IGl0cyBJRCBwcm9wZXJ0eSwgaW4gYW4gT3JnIGZpbGUuCisKKy0gPWluZm89 IDo6CisKKyAgTGluayB0byBhbiBJbmZvIG1hbnVhbCwgb3IgdG8gYSBzcGVjaWZpYyBub2RlLgor CistID1pcmM9IDo6CisKKyAgTGluayB0byBhbiBJUkMgY2hhbm5lbC4KKworLSA9bWFpbHRvPSA6 OgorCisgIExpbmsgdG8gbWVzc2FnZSBjb21wb3NpdGlvbi4KKworLSA9bmV3cz0gOjoKKworICBV c2VuZXQgbGlua3MuCisKKy0gPXNoZWxsPSA6OgorCisgIEV4ZWN1dGUgYSBzaGVsbCBjb21tYW5k IHVwb24gYWN0aXZhdGlvbi4KKworVGhlIGZvbGxvd2luZyB0YWJsZSBpbGx1c3RyYXRlcyB0aGUg bGluayB0eXBlcyBhYm92ZSwgYWxvbmcgd2l0aCB0aGVpcgorb3B0aW9uczoKKworfCBMaW5rIFR5 cGUgIHwgRXhhbXBsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAorfC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorfCBodHRwICAgICAgIHwgPWh0dHA6Ly9zdGFmZi5z Y2llbmNlLnV2YS5ubC9jLmRvbWluaWsvPSAgICAgICAgICAgICAgICAgfAorfCBodHRwcyAgICAg IHwgPWh0dHBzOi8vb3JnbW9kZS5vcmcvPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAorfCBkb2kgICAgICAgIHwgPWRvaToxMC4xMDAwLzE4Mj0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorfCBmaWxlICAgICAgIHwgPWZpbGU6L2hvbWUvZG9taW5p ay9pbWFnZXMvanVwaXRlci5qcGc9ICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwg PS9ob21lL2RvbWluaWsvaW1hZ2VzL2p1cGl0ZXIuanBnPSAoc2FtZSBhcyBhYm92ZSkgICAgICAg fAorfCAgICAgICAgICAgIHwgPWZpbGU6cGFwZXJzL2xhc3QucGRmPSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPS4vcGFwZXJzL2xhc3QucGRmPSAo c2FtZSBhcyBhYm92ZSkgICAgICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWZp bGU6L3NzaDptZUBzb21lLndoZXJlOnBhcGVycy9sYXN0LnBkZj0gKHJlbW90ZSkgICAgICAgfAor fCAgICAgICAgICAgIHwgPS9zc2g6bWVAc29tZS53aGVyZTpwYXBlcnMvbGFzdC5wZGY9IChzYW1l IGFzIGFib3ZlKSAgICAgfAorfCAgICAgICAgICAgIHwgPWZpbGU6c29tZXRleHRmaWxlOjpOTk49 IChqdW1wIHRvIGxpbmUgbnVtYmVyKSAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWZpbGU6 cHJvamVjdHMub3JnPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAg ICAgICAgICAgIHwgPWZpbGU6cHJvamVjdHMub3JnOjpzb21lIHdvcmRzPSAodGV4dCBzZWFyY2gp IFtmbjoyOF0gICAgfAorfCAgICAgICAgICAgIHwgPWZpbGU6cHJvamVjdHMub3JnOjoqdGFzayB0 aXRsZT0gKGhlYWRsaW5lIHNlYXJjaCkgICAgICAgfAorfCAgICAgICAgICAgIHwgPWZpbGU6cHJv amVjdHMub3JnOjojY3VzdG9tLWlkPSAoaGVhZGxpbmUgc2VhcmNoKSAgICAgICAgfAorfCBhdHRh Y2htZW50IHwgPWF0dGFjaG1lbnQ6cHJvamVjdHMub3JnPSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWF0dGFjaG1lbnQ6cHJvamVjdHMub3JnOjpzb21l IHdvcmRzPSAodGV4dCBzZWFyY2gpICAgICAgfAorfCBkb2N2aWV3ICAgIHwgPWRvY3ZpZXc6cGFw ZXJzL2xhc3QucGRmOjpOTk49ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBpZCAgICAg ICAgIHwgPWlkOkI3NDIzRjRELTJFOEEtNDcxQi04ODEwLUM0MEYwNzQ3MTdFOT0gICAgICAgICAg ICAgICAgfAorfCBuZXdzICAgICAgIHwgPW5ld3M6Y29tcC5lbWFjcz0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBtYWlsdG8gICAgIHwgPW1haWx0bzphZGVudEBn YWxheHkubmV0PSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBtaGUgICAgICAg IHwgPW1oZTpmb2xkZXI9IChmb2xkZXIgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAorfCAgICAgICAgICAgIHwgPW1oZTpmb2xkZXIjaWQ9IChtZXNzYWdlIGxpbmspICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorfCBybWFpbCAgICAgIHwgPXJtYWlsOmZvbGRlcj0gKGZv bGRlciBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwg PXJtYWlsOmZvbGRlciNpZD0gKG1lc3NhZ2UgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAg fAorfCBnbnVzICAgICAgIHwgPWdudXM6Z3JvdXA9IChncm91cCBsaW5rKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWdudXM6Z3JvdXAjaWQ9IChhcnRp Y2xlIGxpbmspICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBiYmRiICAgICAgIHwgPWJi ZGI6Ui4qU3RhbGxtYW49IChyZWNvcmQgd2l0aCByZWdleHApICAgICAgICAgICAgICAgICAgfAor fCBpcmMgICAgICAgIHwgPWlyYzovaXJjLmNvbS8jZW1hY3MvYm9iPSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfAorfCBpbmZvICAgICAgIHwgPWluZm86b3JnI0V4dGVybmFsIGxpbmtz PSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBzaGVsbCAgICAgIHwgPXNoZWxs OmxzICoub3JnPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBl bGlzcCAgICAgIHwgPWVsaXNwOihmaW5kLWZpbGUgIkVsaXNwLm9yZyIpPSAoRWxpc3AgZm9ybSB0 byBldmFsdWF0ZSkgfAorfCAgICAgICAgICAgIHwgPWVsaXNwOm9yZy1hZ2VuZGE9IChpbnRlcmFj dGl2ZSBFbGlzcCBjb21tYW5kKSAgICAgICAgICAgfAogCiAjK2NpbmRleDogVk0gbGlua3MKICMr Y2luZGV4OiBXYW5kZXJsdXN0IGxpbmtzCkBAIC0zNDY1LDE1ICszNTQyLDE5IEBAIHRoZSBsaW5r IGNvbXBsZXRpb24gZnVuY3Rpb24gbGlrZSB0aGlzOgogOkVORDoKICMrY2luZGV4OiBzZWFyY2gg b3B0aW9uIGluIGZpbGUgbGlua3MKICMrY2luZGV4OiBmaWxlIGxpbmtzLCBzZWFyY2hpbmcKKyMr Y2luZGV4OiBhdHRhY2htZW50IGxpbmtzLCBzZWFyY2hpbmcKIAotRmlsZSBsaW5rcyBjYW4gY29u dGFpbiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIG1ha2UgRW1hY3MganVtcCB0bwotYSBwYXJ0 aWN1bGFyIGxvY2F0aW9uIGluIHRoZSBmaWxlIHdoZW4gZm9sbG93aW5nIGEgbGluay4gIFRoaXMg Y2FuIGJlCi1hIGxpbmUgbnVtYmVyIG9yIGEgc2VhcmNoIG9wdGlvbiBhZnRlciBhIGRvdWJsZSBj b2xvbltmbjozNF0uICBGb3IKK0ZpbGUgbGlua3MgY2FuIGNvbnRhaW4gYWRkaXRpb25hbCBpbmZv cm1hdGlvbiB0byBtYWtlIEVtYWNzIGp1bXAgdG8gYQorcGFydGljdWxhciBsb2NhdGlvbiBpbiB0 aGUgZmlsZSB3aGVuIGZvbGxvd2luZyBhIGxpbmsuICBUaGlzIGNhbiBiZSBhCitsaW5lIG51bWJl ciBvciBhIHNlYXJjaCBvcHRpb24gYWZ0ZXIgYSBkb3VibGUgY29sb25bZm46MzRdLiAgRm9yCiBl eGFtcGxlLCB3aGVuIHRoZSBjb21tYW5kIH5vcmctc3RvcmUtbGlua34gY3JlYXRlcyBhIGxpbmsg KHNlZQogW1sqSGFuZGxpbmcgTGlua3NdXSkgdG8gYSBmaWxlLCBpdCBlbmNvZGVzIHRoZSB3b3Jk cyBpbiB0aGUgY3VycmVudCBsaW5lCiBhcyBhIHNlYXJjaCBzdHJpbmcgdGhhdCBjYW4gYmUgdXNl ZCB0byBmaW5kIHRoaXMgbGluZSBiYWNrIGxhdGVyIHdoZW4KIGZvbGxvd2luZyB0aGUgbGluayB3 aXRoIHt7e2tiZChDLWMgQy1vKX19fS4KIAorTm90ZSB0aGF0IGFsbCBzZWFyY2ggb3B0aW9ucyBh cHBseSBmb3IgQXR0YWNobWVudCBsaW5rcyBpbiB0aGUgc2FtZQord2F5IHRoYXQgdGhleSBhcHBs eSBmb3IgRmlsZSBsaW5rcy4KKwogSGVyZSBpcyB0aGUgc3ludGF4IG9mIHRoZSBkaWZmZXJlbnQg d2F5cyB0byBhdHRhY2ggYSBzZWFyY2ggdG8gYSBmaWxlCiBsaW5rLCB0b2dldGhlciB3aXRoIGV4 cGxhbmF0aW9ucyBmb3IgZWFjaDoKIApAQCAtMzQ4Myw2ICszNTY0LDcgQEAgbGluaywgdG9nZXRo ZXIgd2l0aCBleHBsYW5hdGlvbnMgZm9yIGVhY2g6CiBbW2ZpbGU6fi94eC5vcmc6OipNeSBUYXJn ZXRdXQogW1tmaWxlOn4veHgub3JnOjojbXktY3VzdG9tLWlkXV0KIFtbZmlsZTp+L3h4Lm9yZzo6 L3JlZ2V4cC9dXQorW1thdHRhY2htZW50Om1haW4uYzo6MjU1XV0KICMrZW5kX2V4YW1wbGUKIAog LSA9MjU1PSA6OgpAQCAtNjg5NiwxNjMgKzY5NzgsNDIwIEBAIHNhbWUgY29tbWFuZHMuCiAgIGNv bnRpbnVlIHRoZSBvbGQgb25lLiAgVGhpcyBjb21tYW5kIGFsc28gcmVtb3ZlcyB0aGUgdGltZXIg ZnJvbSB0aGUKICAgbW9kZSBsaW5lLgogCi0qIENhcHR1cmUsIFJlZmlsZSwgQXJjaGl2ZQotOlBS T1BFUlRJRVM6Ci06REVTQ1JJUFRJT046IFRoZSBpbnMgYW5kIG91dHMgZm9yIHByb2plY3RzLgot OkVORDoKLSMrY2luZGV4OiBjYXB0dXJlCi0KLUFuIGltcG9ydGFudCBwYXJ0IG9mIGFueSBvcmdh bml6YXRpb24gc3lzdGVtIGlzIHRoZSBhYmlsaXR5IHRvIHF1aWNrbHkKLWNhcHR1cmUgbmV3IGlk ZWFzIGFuZCB0YXNrcywgYW5kIHRvIGFzc29jaWF0ZSByZWZlcmVuY2UgbWF0ZXJpYWwgd2l0aAot dGhlbS4gIE9yZyBkb2VzIHRoaXMgdXNpbmcgYSBwcm9jZXNzIGNhbGxlZCAvY2FwdHVyZS8uICBJ dCBhbHNvIGNhbgotc3RvcmUgZmlsZXMgcmVsYXRlZCB0byBhIHRhc2sgKC9hdHRhY2htZW50cy8p IGluIGEgc3BlY2lhbCBkaXJlY3RvcnkuCi1PbmNlIGluIHRoZSBzeXN0ZW0sIHRhc2tzIGFuZCBw cm9qZWN0cyBuZWVkIHRvIGJlIG1vdmVkIGFyb3VuZC4KLU1vdmluZyBjb21wbGV0ZWQgcHJvamVj dCB0cmVlcyB0byBhbiBhcmNoaXZlIGZpbGUga2VlcHMgdGhlIHN5c3RlbQotY29tcGFjdCBhbmQg ZmFzdC4KLQotKiogQ2FwdHVyZQorKiBSZWZpbGUsIENvcHkgYW5kIEFyY2hpdmluZwogOlBST1BF UlRJRVM6Ci06REVTQ1JJUFRJT046IENhcHR1cmluZyBuZXcgc3R1ZmYuCis6REVTQ1JJUFRJT046 IE1vdmluZyBhbmQgY29weWluZyBpbmZvcm1hdGlvbiB3aXRoIGVhc2UuCiA6RU5EOgotIytjaW5k ZXg6IGNhcHR1cmUKKyMrY2luZGV4OiByZWZpbGluZyBub3RlcworIytjaW5kZXg6IGNvcHlpbmcg bm90ZXMKKyMrY2luZGV4OiBhcmNoaXZpbmcKIAotQ2FwdHVyZSBsZXRzIHlvdSBxdWlja2x5IHN0 b3JlIG5vdGVzIHdpdGggbGl0dGxlIGludGVycnVwdGlvbiBvZiB5b3VyCi13b3JrIGZsb3cuICBP cmcncyBtZXRob2QgZm9yIGNhcHR1cmluZyBuZXcgaXRlbXMgaXMgaGVhdmlseSBpbnNwaXJlZAot YnkgSm9obiBXaWVnbGV5J3MgZXhjZWxsZW50IFJlbWVtYmVyIHBhY2thZ2UuCitPbmNlIGluZm9y bWF0aW9uIGlzIGluIHRoZSBzeXN0ZW0sIGl0IG1heSBuZWVkIHRvIGJlIG1vdmVkIGFyb3VuZC4K K09yZyBwcm92aWRlcyBSZWZpbGUsIENvcHkgYW5kIEFyY2hpdmUgY29tbWFuZHMgZm9yIHRoaXMu ICBSZWZpbGUgYW5kCitDb3B5IGhlbHBzIHdpdGggbW92aW5nIGFuZCBjb3B5aW5nIG91dGxpbmVz LiAgQXJjaGl2aW5nIGhlbHBzIHRvIGtlZXAKK3RoZSBzeXN0ZW0gY29tcGFjdCBhbmQgZmFzdC4K IAotKioqIFNldHRpbmcgdXAgY2FwdHVyZQorKiogUmVmaWxlIGFuZCBDb3B5CiA6UFJPUEVSVElF UzoKLTpERVNDUklQVElPTjogV2hlcmUgbm90ZXMgd2lsbCBiZSBzdG9yZWQuCis6REVTQ1JJUFRJ T046IE1vdmluZy9jb3B5aW5nIGEgdHJlZSBmcm9tIG9uZSBwbGFjZSB0byBhbm90aGVyLgogOkVO RDoKKyMrY2luZGV4OiByZWZpbGluZyBub3RlcworIytjaW5kZXg6IGNvcHlpbmcgbm90ZXMKIAot VGhlIGZvbGxvd2luZyBjdXN0b21pemF0aW9uIHNldHMgYSBkZWZhdWx0IHRhcmdldCBmaWxlIGZv ciBub3Rlcy4KK1doZW4gcmV2aWV3aW5nIHRoZSBjYXB0dXJlZCBkYXRhLCB5b3UgbWF5IHdhbnQg dG8gcmVmaWxlIG9yIHRvIGNvcHkKK3NvbWUgb2YgdGhlIGVudHJpZXMgaW50byBhIGRpZmZlcmVu dCBsaXN0LCBmb3IgZXhhbXBsZSBpbnRvIGEgcHJvamVjdC4KK0N1dHRpbmcsIGZpbmRpbmcgdGhl IHJpZ2h0IGxvY2F0aW9uLCBhbmQgdGhlbiBwYXN0aW5nIHRoZSBub3RlIGlzCitjdW1iZXJzb21l LiAgVG8gc2ltcGxpZnkgdGhpcyBwcm9jZXNzLCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nCitz cGVjaWFsIGNvbW1hbmQ6CiAKLSMrdmluZGV4OiBvcmctZGVmYXVsdC1ub3Rlcy1maWxlCi0jK2Jl Z2luX3NyYyBlbWFjcy1saXNwCi0oc2V0cSBvcmctZGVmYXVsdC1ub3Rlcy1maWxlIChjb25jYXQg b3JnLWRpcmVjdG9yeSAiL25vdGVzLm9yZyIpKQotIytlbmRfc3JjCistIHt7e2tiZChDLWMgQy13 KX19fSAofm9yZy1yZWZpbGV+KSA6OgogCi1Zb3UgbWF5IGFsc28gZGVmaW5lIGEgZ2xvYmFsIGtl eSBmb3IgY2FwdHVyaW5nIG5ldyBtYXRlcmlhbCAoc2VlCi1bWypBY3RpdmF0aW9uXV0pLgorICAj K2tpbmRleDogQy1jIEMtdworICAjK2ZpbmRleDogb3JnLXJlZmlsZQorICAjK3ZpbmRleDogb3Jn LXJldmVyc2Utbm90ZS1vcmRlcgorICAjK3ZpbmRleDogb3JnLXJlZmlsZS10YXJnZXRzCisgICMr dmluZGV4OiBvcmctcmVmaWxlLXVzZS1vdXRsaW5lLXBhdGgKKyAgIyt2aW5kZXg6IG9yZy1vdXRs aW5lLXBhdGgtY29tcGxldGUtaW4tc3RlcHMKKyAgIyt2aW5kZXg6IG9yZy1yZWZpbGUtYWxsb3ct Y3JlYXRpbmctcGFyZW50LW5vZGVzCisgICMrdmluZGV4OiBvcmctbG9nLXJlZmlsZQorICBSZWZp bGUgdGhlIGVudHJ5IG9yIHJlZ2lvbiBhdCBwb2ludC4gIFRoaXMgY29tbWFuZCBvZmZlcnMgcG9z c2libGUKKyAgbG9jYXRpb25zIGZvciByZWZpbGluZyB0aGUgZW50cnkgYW5kIGxldHMgeW91IHNl bGVjdCBvbmUgd2l0aAorICBjb21wbGV0aW9uLiAgVGhlIGl0ZW0gKG9yIGFsbCBpdGVtcyBpbiB0 aGUgcmVnaW9uKSBpcyBmaWxlZCBiZWxvdworICB0aGUgdGFyZ2V0IGhlYWRpbmcgYXMgYSBzdWJp dGVtLiAgRGVwZW5kaW5nIG9uCisgIH5vcmctcmV2ZXJzZS1ub3RlLW9yZGVyfiwgaXQgaXMgZWl0 aGVyIHRoZSBmaXJzdCBvciBsYXN0IHN1Yml0ZW0uCiAKLSoqKiBVc2luZyBjYXB0dXJlCi06UFJP UEVSVElFUzoKLTpERVNDUklQVElPTjogQ29tbWFuZHMgdG8gaW52b2tlIGFuZCB0ZXJtaW5hdGUg Y2FwdHVyZS4KLTpFTkQ6CisgIEJ5IGRlZmF1bHQsIGFsbCBsZXZlbCAxIGhlYWRsaW5lcyBpbiB0 aGUgY3VycmVudCBidWZmZXIgYXJlCisgIGNvbnNpZGVyZWQgdG8gYmUgdGFyZ2V0cywgYnV0IHlv dSBjYW4gaGF2ZSBtb3JlIGNvbXBsZXggZGVmaW5pdGlvbnMKKyAgYWNyb3NzIGEgbnVtYmVyIG9m IGZpbGVzLiAgU2VlIHRoZSB2YXJpYWJsZSB+b3JnLXJlZmlsZS10YXJnZXRzfiBmb3IKKyAgZGV0 YWlscy4gIElmIHlvdSB3b3VsZCBsaWtlIHRvIHNlbGVjdCBhIGxvY2F0aW9uIHZpYQorICBhIGZp bGUtcGF0aC1saWtlIGNvbXBsZXRpb24gYWxvbmcgdGhlIG91dGxpbmUgcGF0aCwgc2VlIHRoZQor ICB2YXJpYWJsZXMgfm9yZy1yZWZpbGUtdXNlLW91dGxpbmUtcGF0aH4gYW5kCisgIH5vcmctb3V0 bGluZS1wYXRoLWNvbXBsZXRlLWluLXN0ZXBzfi4gIElmIHlvdSB3b3VsZCBsaWtlIHRvIGJlIGFi bGUKKyAgdG8gY3JlYXRlIG5ldyBub2RlcyBhcyBuZXcgcGFyZW50cyBmb3IgcmVmaWxpbmcgb24g dGhlIGZseSwgY2hlY2sKKyAgdGhlIHZhcmlhYmxlIH5vcmctcmVmaWxlLWFsbG93LWNyZWF0aW5n LXBhcmVudC1ub2Rlc34uICBXaGVuIHRoZQorICB2YXJpYWJsZSB+b3JnLWxvZy1yZWZpbGV+W2Zu Ojg4XSBpcyBzZXQsIGEgdGltZXN0YW1wIG9yIGEgbm90ZSBpcworICByZWNvcmRlZCB3aGVuZXZl ciBhbiBlbnRyeSBpcyByZWZpbGVkLgogCi0tIHt7e2tiZChNLXggb3JnLWNhcHR1cmUpfX19ICh+ b3JnLWNhcHR1cmV+KSA6OgorLSB7e3trYmQoQy11IEMtYyBDLXcpfX19IDo6CiAKLSAgIytmaW5k ZXg6IG9yZy1jYXB0dXJlCi0gICMrY2luZGV4OiBkYXRlIHRyZWUKLSAgRGlzcGxheSB0aGUgY2Fw dHVyZSB0ZW1wbGF0ZXMgbWVudS4gIElmIHlvdSBoYXZlIHRlbXBsYXRlcyBkZWZpbmVkCi0gIChz ZWUgW1sqQ2FwdHVyZSB0ZW1wbGF0ZXNdXSksIGl0IG9mZmVycyB0aGVzZSB0ZW1wbGF0ZXMgZm9y IHNlbGVjdGlvbiBvcgotICB1c2UgYSBuZXcgT3JnIG91dGxpbmUgbm9kZSBhcyB0aGUgZGVmYXVs dCB0ZW1wbGF0ZS4gIEl0IGluc2VydHMgdGhlCi0gIHRlbXBsYXRlIGludG8gdGhlIHRhcmdldCBm aWxlIGFuZCBzd2l0Y2ggdG8gYW4gaW5kaXJlY3QgYnVmZmVyCi0gIG5hcnJvd2VkIHRvIHRoaXMg bmV3IG5vZGUuICBZb3UgbWF5IHRoZW4gaW5zZXJ0IHRoZSBpbmZvcm1hdGlvbiB5b3UKLSAgd2Fu dC4KKyAgIytraW5kZXg6IEMtdSBDLWMgQy13CisgIFVzZSB0aGUgcmVmaWxlIGludGVyZmFjZSB0 byBqdW1wIHRvIGEgaGVhZGluZy4KIAotLSB7e3trYmQoQy1jIEMtYyl9fX0gKH5vcmctY2FwdHVy ZS1maW5hbGl6ZX4pIDo6CistIHt7e2tiZChDLXUgQy11IEMtYyBDLXcpfX19ICh+b3JnLXJlZmls ZS1nb3RvLWxhc3Qtc3RvcmVkfikgOjoKIAotICAjK2tpbmRleDogQy1jIEMtYyBAcnsoQ2FwdHVy ZSBidWZmZXIpfQotICAjK2ZpbmRleDogb3JnLWNhcHR1cmUtZmluYWxpemUKLSAgT25jZSB5b3Ug aGF2ZSBmaW5pc2hlZCBlbnRlcmluZyBpbmZvcm1hdGlvbiBpbnRvIHRoZSBjYXB0dXJlIGJ1ZmZl ciwKLSAge3t7a2JkKEMtYyBDLWMpfX19IHJldHVybnMgeW91IHRvIHRoZSB3aW5kb3cgY29uZmln dXJhdGlvbiBiZWZvcmUKLSAgdGhlIGNhcHR1cmUgcHJvY2Vzcywgc28gdGhhdCB5b3UgY2FuIHJl c3VtZSB5b3VyIHdvcmsgd2l0aG91dAotICBmdXJ0aGVyIGRpc3RyYWN0aW9uLiAgV2hlbiBjYWxs ZWQgd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgZmluYWxpemUKLSAgYW5kIHRoZW4ganVtcCB0byB0 aGUgY2FwdHVyZWQgaXRlbS4KKyAgIytraW5kZXg6IEMtdSBDLXUgQy1jIEMtdworICAjK2ZpbmRl eDogb3JnLXJlZmlsZS1nb3RvLWxhc3Qtc3RvcmVkCisgIEp1bXAgdG8gdGhlIGxvY2F0aW9uIHdo ZXJlIH5vcmctcmVmaWxlfiBsYXN0IG1vdmVkIGEgdHJlZSB0by4KIAotLSB7e3trYmQoQy1jIEMt dyl9fX0gKH5vcmctY2FwdHVyZS1yZWZpbGV+KSA6OgorLSB7e3trYmQoQy0yIEMtYyBDLXcpfX19 IDo6CiAKLSAgIytraW5kZXg6IEMtYyBDLXcgQHJ7KENhcHR1cmUgYnVmZmVyKX0KLSAgIytmaW5k ZXg6IG9yZy1jYXB0dXJlLXJlZmlsZQotICBGaW5hbGl6ZSB0aGUgY2FwdHVyZSBwcm9jZXNzIGJ5 IHJlZmlsaW5nIHRoZSBub3RlIHRvIGEgZGlmZmVyZW50Ci0gIHBsYWNlIChzZWUgW1sqUmVmaWxl IGFuZCBDb3B5XV0pLiAgUGxlYXNlIHJlYWxpemUgdGhhdCB0aGlzIGlzIGEgbm9ybWFsCi0gIHJl ZmlsaW5nIGNvbW1hbmQgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkLS0tc28gcG9pbnQgcG9zaXRpb24g YXQgdGhlCi0gIG1vbWVudCB5b3UgcnVuIHRoaXMgY29tbWFuZCBpcyBpbXBvcnRhbnQuICBJZiB5 b3UgaGF2ZSBpbnNlcnRlZAotICBhIHRyZWUgd2l0aCBhIHBhcmVudCBhbmQgY2hpbGRyZW4sIGZp cnN0IG1vdmUgcG9pbnQgYmFjayB0byB0aGUKLSAgcGFyZW50LiAgQW55IHByZWZpeCBhcmd1bWVu dCBnaXZlbiB0byB0aGlzIGNvbW1hbmQgaXMgcGFzc2VkIG9uIHRvCi0gIHRoZSB+b3JnLXJlZmls ZX4gY29tbWFuZC4KKyAgIytraW5kZXg6IEMtMiBDLWMgQy13CisgIFJlZmlsZSBhcyB0aGUgY2hp bGQgb2YgdGhlIGl0ZW0gY3VycmVudGx5IGJlaW5nIGNsb2NrZWQuCiAKLS0ge3t7a2JkKEMtYyBD LWspfX19ICh+b3JnLWNhcHR1cmUta2lsbH4pIDo6CistIHt7e2tiZChDLTMgQy1jIEMtdyl9fX0g OjoKIAotICAjK2tpbmRleDogQy1jIEMtayBAcnsoQ2FwdHVyZSBidWZmZXIpfQotICAjK2ZpbmRl eDogb3JnLWNhcHR1cmUta2lsbAotICBBYm9ydCB0aGUgY2FwdHVyZSBwcm9jZXNzIGFuZCByZXR1 cm4gdG8gdGhlIHByZXZpb3VzIHN0YXRlLgorICAjK2tpbmRleDogQy0zIEMtYyBDLXcKKyAgIyt2 aW5kZXg6IG9yZy1yZWZpbGUta2VlcAorICBSZWZpbGUgYW5kIGtlZXAgdGhlIGVudHJ5IGluIHBs YWNlLiAgQWxzbyBzZWUgfm9yZy1yZWZpbGUta2VlcH4gdG8KKyAgbWFrZSB0aGlzIHRoZSBkZWZh dWx0IGJlaGF2aW9yLCBhbmQgYmV3YXJlIHRoYXQgdGhpcyBtYXkgcmVzdWx0IGluCisgIGR1cGxp Y2F0ZWQgPUlEPSBwcm9wZXJ0aWVzLgogCi0jK2tpbmRleDogayBjIEByeyhBZ2VuZGEpfQotWW91 IGNhbiBhbHNvIGNhbGwgfm9yZy1jYXB0dXJlfiBpbiBhIHNwZWNpYWwgd2F5IGZyb20gdGhlIGFn ZW5kYSwKLXVzaW5nIHRoZSB7e3trYmQoayBjKX19fSBrZXkgY29tYmluYXRpb24uICBXaXRoIHRo aXMgYWNjZXNzLCBhbnkKLXRpbWVzdGFtcHMgaW5zZXJ0ZWQgYnkgdGhlIHNlbGVjdGVkIGNhcHR1 cmUgdGVtcGxhdGUgZGVmYXVsdHMgdG8gdGhlCi1kYXRlIGF0IHBvaW50IGluIHRoZSBhZ2VuZGEs IHJhdGhlciB0aGFuIHRvIHRoZSBjdXJyZW50IGRhdGUuCistIHt7e2tiZChDLTAgQy1jIEMtdyl9 fX0gb3Ige3t7a2JkKEMtdSBDLXUgQy11IEMtYyBDLXcpfX19ICh+b3JnLXJlZmlsZS1jYWNoZS1j bGVhcn4pIDo6CiAKLVRvIGZpbmQgdGhlIGxvY2F0aW9ucyBvZiB0aGUgbGFzdCBzdG9yZWQgY2Fw dHVyZSwgdXNlIH5vcmctY2FwdHVyZX4KLXdpdGggcHJlZml4IGNvbW1hbmRzOgorICAjK2tpbmRl eDogQy11IEMtdSBDLXUgQy1jIEMtdworICAjK2tpbmRleDogQy0wIEMtYyBDLXcKKyAgIytmaW5k ZXg6IG9yZy1yZWZpbGUtY2FjaGUtY2xlYXIKKyAgIyt2aW5kZXg6IG9yZy1yZWZpbGUtdXNlLWNh Y2hlCisgIENsZWFyIHRoZSB0YXJnZXQgY2FjaGUuICBDYWNoaW5nIG9mIHJlZmlsZSB0YXJnZXRz IGNhbiBiZSB0dXJuZWQgb24KKyAgYnkgc2V0dGluZyB+b3JnLXJlZmlsZS11c2UtY2FjaGV+LiAg VG8gbWFrZSB0aGUgY29tbWFuZCBzZWUgbmV3CisgIHBvc3NpYmxlIHRhcmdldHMsIHlvdSBoYXZl IHRvIGNsZWFyIHRoZSBjYWNoZSB3aXRoIHRoaXMgY29tbWFuZC4KIAotLSB7e3trYmQoQy11IE0t eCBvcmctY2FwdHVyZSl9fX0gOjoKKy0ge3t7a2JkKEMtYyBNLXcpfX19ICh+b3JnLWNvcHl+KSA6 OgogCi0gIFZpc2l0IHRoZSB0YXJnZXQgbG9jYXRpb24gb2YgYSBjYXB0dXJlIHRlbXBsYXRlLiAg WW91IGdldCB0byBzZWxlY3QKLSAgdGhlIHRlbXBsYXRlIGluIHRoZSB1c3VhbCB3YXkuCisgICMr a2luZGV4OiBDLWMgTS13CisgICMrZmluZGV4OiBvcmctY29weQorICBDb3B5aW5nIHdvcmtzIGxp a2UgcmVmaWxpbmcsIGV4Y2VwdCB0aGF0IHRoZSBvcmlnaW5hbCBub3RlIGlzIG5vdAorICBkZWxl dGVkLgogCi0tIHt7e2tiZChDLXUgQy11IE0teCBvcmctY2FwdHVyZSl9fX0gOjoKKyoqIEFyY2hp dmluZworOlBST1BFUlRJRVM6Cis6REVTQ1JJUFRJT046IFdoYXQgdG8gZG8gd2l0aCBmaW5pc2hl ZCBwcm9kdWN0cy4KKzpFTkQ6CisjK2NpbmRleDogYXJjaGl2aW5nCiAKLSAgVmlzaXQgdGhlIGxh c3Qgc3RvcmVkIGNhcHR1cmUgaXRlbSBpbiBpdHMgYnVmZmVyLgorV2hlbiBhIHByb2plY3QgcmVw cmVzZW50ZWQgYnkgYSAoc3ViKXRyZWUgaXMgZmluaXNoZWQsIHlvdSBtYXkgd2FudCB0bworbW92 ZSB0aGUgdHJlZSBvdXQgb2YgdGhlIHdheSBhbmQgdG8gc3RvcCBpdCBmcm9tIGNvbnRyaWJ1dGlu ZyB0byB0aGUKK2FnZW5kYS4gIEFyY2hpdmluZyBpcyBpbXBvcnRhbnQgdG8ga2VlcCB5b3VyIHdv cmtpbmcgZmlsZXMgY29tcGFjdCBhbmQKK2dsb2JhbCBzZWFyY2hlcyBsaWtlIHRoZSBjb25zdHJ1 Y3Rpb24gb2YgYWdlbmRhIHZpZXdzIGZhc3QuCiAKLSMrdmluZGV4OiBvcmctY2FwdHVyZS1ib29r bWFyawotIyt2aW5kZXg6IG9yZy1jYXB0dXJlLWxhc3Qtc3RvcmVkCi1Zb3UgY2FuIGFsc28ganVt cCB0byB0aGUgYm9va21hcmsgfm9yZy1jYXB0dXJlLWxhc3Qtc3RvcmVkfiwgd2hpY2ggaXMKLWF1 dG9tYXRpY2FsbHkgY3JlYXRlZCB1bmxlc3MgeW91IHNldCB+b3JnLWNhcHR1cmUtYm9va21hcmt+ IHRvIH5uaWx+LgorLSB7e3trYmQoQy1jIEMteCBDLWEpfX19ICh+b3JnLWFyY2hpdmUtc3VidHJl ZS1kZWZhdWx0fikgOjoKIAotVG8gaW5zZXJ0IHRoZSBjYXB0dXJlIGF0IHBvaW50IGluIGFuIE9y ZyBidWZmZXIsIGNhbGwgfm9yZy1jYXB0dXJlfgotd2l0aCBhIHt7e2tiZChDLTApfX19IHByZWZp eCBhcmd1bWVudC4KKyAgIytraW5kZXg6IEMtYyBDLXggQy1hCisgICMrZmluZGV4OiBvcmctYXJj aGl2ZS1zdWJ0cmVlLWRlZmF1bHQKKyAgIyt2aW5kZXg6IG9yZy1hcmNoaXZlLWRlZmF1bHQtY29t bWFuZAorICBBcmNoaXZlIHRoZSBjdXJyZW50IGVudHJ5IHVzaW5nIHRoZSBjb21tYW5kIHNwZWNp ZmllZCBpbiB0aGUKKyAgdmFyaWFibGUgfm9yZy1hcmNoaXZlLWRlZmF1bHQtY29tbWFuZH4uCiAK LSoqKiBDYXB0dXJlIHRlbXBsYXRlcworKioqIE1vdmluZyBhIHRyZWUgdG8gYW4gYXJjaGl2ZSBm aWxlCiA6UFJPUEVSVElFUzoKLTpERVNDUklQVElPTjogRGVmaW5lIHRoZSBvdXRsaW5lIG9mIGRp ZmZlcmVudCBub3RlIHR5cGVzLgorOkRFU0NSSVBUSU9OOiBNb3ZpbmcgYSB0cmVlIHRvIGFuIGFy Y2hpdmUgZmlsZS4KKzpBTFRfVElUTEU6IE1vdmluZyBzdWJ0cmVlcwogOkVORDoKLSMrY2luZGV4 OiB0ZW1wbGF0ZXMsIGZvciBDYXB0dXJlCi0KLVlvdSBjYW4gdXNlIHRlbXBsYXRlcyBmb3IgZGlm ZmVyZW50IHR5cGVzIG9mIGNhcHR1cmUgaXRlbXMsIGFuZCBmb3IKLWRpZmZlcmVudCB0YXJnZXQg bG9jYXRpb25zLiAgVGhlIGVhc2llc3Qgd2F5IHRvIGNyZWF0ZSBzdWNoIHRlbXBsYXRlcwotaXMg dGhyb3VnaCB0aGUgY3VzdG9taXplIGludGVyZmFjZS4KKyMrY2luZGV4OiBleHRlcm5hbCBhcmNo aXZpbmcKIAotLSB7e3trYmQoQyl9fX0gOjoKK1RoZSBtb3N0IGNvbW1vbiBhcmNoaXZpbmcgYWN0 aW9uIGlzIHRvIG1vdmUgYSBwcm9qZWN0IHRyZWUgdG8gYW5vdGhlcgorZmlsZSwgdGhlIGFyY2hp dmUgZmlsZS4KIAotICAjK2tpbmRleDogQyBAcnsoQ2FwdHVyZSBtZW51fQotICAjK3ZpbmRleDog b3JnLWNhcHR1cmUtdGVtcGxhdGVzCi0gIEN1c3RvbWl6ZSB0aGUgdmFyaWFibGUgfm9yZy1jYXB0 dXJlLXRlbXBsYXRlc34uCistIHt7e2tiZChDLWMgQy14IEMtcyl9fX0gb3Igc2hvcnQge3t7a2Jk KEMtYyAkKX19fSAofm9yZy1hcmNoaXZlLXN1YnRyZWV+KSA6OgogCi1CZWZvcmUgd2UgZ2l2ZSB0 aGUgZm9ybWFsIGRlc2NyaXB0aW9uIG9mIHRlbXBsYXRlIGRlZmluaXRpb25zLCBsZXQncwotbG9v ayBhdCBhbiBleGFtcGxlLiAgU2F5IHlvdSB3b3VsZCBsaWtlIHRvIHVzZSBvbmUgdGVtcGxhdGUg dG8gY3JlYXRlCi1nZW5lcmFsIFRPRE8gZW50cmllcywgYW5kIHlvdSB3YW50IHRvIHB1dCB0aGVz ZSBlbnRyaWVzIHVuZGVyIHRoZQotaGVhZGluZyA9VGFza3M9IGluIHlvdXIgZmlsZSA9fi9vcmcv Z3RkLm9yZz0uICBBbHNvLCBhIGRhdGUgdHJlZSBpbgotdGhlIGZpbGUgPWpvdXJuYWwub3JnPSBz aG91bGQgY2FwdHVyZSBqb3VybmFsIGVudHJpZXMuICBBIHBvc3NpYmxlCi1jb25maWd1cmF0aW9u IHdvdWxkIGxvb2sgbGlrZToKKyAgIytraW5kZXg6IEMtYyBDLXggQy1zCisgICMra2luZGV4OiBD LWMgJAorICAjK2ZpbmRleDogb3JnLWFyY2hpdmUtc3VidHJlZQorICAjK3ZpbmRleDogb3JnLWFy Y2hpdmUtbG9jYXRpb24KKyAgQXJjaGl2ZSB0aGUgc3VidHJlZSBzdGFydGluZyBhdCBwb2ludCBw b3NpdGlvbiB0byB0aGUgbG9jYXRpb24gZ2l2ZW4KKyAgYnkgfm9yZy1hcmNoaXZlLWxvY2F0aW9u fi4KIAotIytiZWdpbl9zcmMgZW1hY3MtbGlzcAotKHNldHEgb3JnLWNhcHR1cmUtdGVtcGxhdGVz Ci0gICAgICAnKCgidCIgIlRvZG8iIGVudHJ5IChmaWxlK2hlYWRsaW5lICJ+L29yZy9ndGQub3Jn IiAiVGFza3MiKQotICAgICAgICAgIiogVE9ETyAlP1xuICAlaVxuICAlYSIpCi0gICAgICAgICgi aiIgIkpvdXJuYWwiIGVudHJ5IChmaWxlK2RhdGV0cmVlICJ+L29yZy9qb3VybmFsLm9yZyIpCi0g ICAgICAgICAiKiAlP1xuRW50ZXJlZCBvbiAlVVxuICAlaVxuICAlYSIpKSkKLSMrZW5kX3NyYwor LSB7e3trYmQoQy11IEMtYyBDLXggQy1zKX19fSA6OgogCi1JZiB5b3UgdGhlbiBwcmVzcyB7e3tr YmQodCl9fX0gZnJvbSB0aGUgY2FwdHVyZSBtZW51LCBPcmcgd2lsbCBwcmVwYXJlCi10aGUgdGVt cGxhdGUgZm9yIHlvdSBsaWtlIHRoaXM6CisgICMra2luZGV4OiBDLXUgQy1jIEMteCBDLXMKKyAg Q2hlY2sgaWYgYW55IGRpcmVjdCBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBoZWFkbGluZSBjb3Vs ZCBiZSBtb3ZlZAorICB0byB0aGUgYXJjaGl2ZS4gIFRvIGRvIHRoaXMsIGNoZWNrIGVhY2ggc3Vi dHJlZSBmb3Igb3BlbiBUT0RPCisgIGVudHJpZXMuICBJZiBub25lIGlzIGZvdW5kLCB0aGUgY29t bWFuZCBvZmZlcnMgdG8gbW92ZSBpdCB0byB0aGUKKyAgYXJjaGl2ZSBsb2NhdGlvbi4gIElmIHBv aW50IGlzIC9ub3QvIG9uIGEgaGVhZGxpbmUgd2hlbiB0aGlzIGNvbW1hbmQKKyAgaXMgaW52b2tl ZCwgY2hlY2sgbGV2ZWwgMSB0cmVlcy4KIAotIytiZWdpbl9leGFtcGxlCi0sKiBUT0RPCi0gIFtb ZmlsZTpMSU5LIFRPIFdIRVJFIFlPVSBJTklUSUFURUQgQ0FQVFVSRV1dCi0jK2VuZF9leGFtcGxl CistIHt7e2tiZChDLXUgQy11IEMtYyBDLXggQy1zKX19fSA6OgogCi0jK3RleGluZm86IEBub2lu ZGVudAotRHVyaW5nIGV4cGFuc2lvbiBvZiB0aGUgdGVtcGxhdGUsID0lYT0gaGFzIGJlZW4gcmVw bGFjZWQgYnkgYSBsaW5rIHRvCi10aGUgbG9jYXRpb24gZnJvbSB3aGVyZSB5b3UgY2FsbGVkIHRo ZSBjYXB0dXJlIGNvbW1hbmQuICBUaGlzIGNhbiBiZQotZXh0cmVtZWx5IHVzZWZ1bCBmb3IgZGVy aXZpbmcgdGFza3MgZnJvbSBlbWFpbHMsIGZvciBleGFtcGxlLiAgWW91Ci1maWxsIGluIHRoZSB0 YXNrIGRlZmluaXRpb24sIHByZXNzIHt7e2tiZChDLWMgQy1jKX19fSBhbmQgT3JnIHJldHVybnMK LXlvdSB0byB0aGUgc2FtZSBwbGFjZSB3aGVyZSB5b3Ugc3RhcnRlZCB0aGUgY2FwdHVyZSBwcm9j ZXNzLgorICAjK2tpbmRleDogQy11IEMtdSBDLWMgQy14IEMtcworICBBcyBhYm92ZSwgYnV0IGNo ZWNrIHN1YnRyZWUgZm9yIHRpbWVzdGFtcHMgaW5zdGVhZCBvZiBUT0RPIGVudHJpZXMuCisgIFRo ZSBjb21tYW5kIG9mZmVycyB0byBhcmNoaXZlIHRoZSBzdWJ0cmVlIGlmIGl0IC9kb2VzLyBjb250 YWluCisgIGEgdGltZXN0YW1wLCBhbmQgdGhhdCB0aW1lc3RhbXAgaXMgaW4gdGhlIHBhc3QuCiAK LVRvIGRlZmluZSBzcGVjaWFsIGtleXMgdG8gY2FwdHVyZSB0byBhIHBhcnRpY3VsYXIgdGVtcGxh dGUgd2l0aG91dAotZ29pbmcgdGhyb3VnaCB0aGUgaW50ZXJhY3RpdmUgdGVtcGxhdGUgc2VsZWN0 aW9uLCB5b3UgY2FuIGNyZWF0ZSB5b3VyCisjK2NpbmRleDogYXJjaGl2ZSBsb2NhdGlvbnMKK1Ro ZSBkZWZhdWx0IGFyY2hpdmUgbG9jYXRpb24gaXMgYSBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9y eSBhcyB0aGUKK2N1cnJlbnQgZmlsZSwgd2l0aCB0aGUgbmFtZSBkZXJpdmVkIGJ5IGFwcGVuZGlu ZyA9X2FyY2hpdmU9IHRvIHRoZQorY3VycmVudCBmaWxlIG5hbWUuICBZb3UgY2FuIGFsc28gY2hv b3NlIHdoYXQgaGVhZGluZyB0byBmaWxlIGFyY2hpdmVkCitpdGVtcyB1bmRlciwgd2l0aCB0aGUg cG9zc2liaWxpdHkgdG8gYWRkIHRoZW0gdG8gYSBkYXRldHJlZSBpbiBhIGZpbGUuCitGb3IgaW5m b3JtYXRpb24gYW5kIGV4YW1wbGVzIG9uIGhvdyB0byBzcGVjaWZ5IHRoZSBmaWxlIGFuZCB0aGUK K2hlYWRpbmcsIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBzdHJpbmcgb2YgdGhlIHZhcmlhYmxlCit+ b3JnLWFyY2hpdmUtbG9jYXRpb25+LgorCitUaGVyZSBpcyBhbHNvIGFuIGluLWJ1ZmZlciBvcHRp b24gZm9yIHNldHRpbmcgdGhpcyB2YXJpYWJsZSwgZm9yCitleGFtcGxlOgorCisjK2NpbmRleDog QHNhbXB7QVJDSElWRX0sIGtleXdvcmQKKzogIytBUkNISVZFOiAlc19kb25lOjoKKworIytjaW5k ZXg6IEFSQ0hJVkUsIHByb3BlcnR5CitJZiB5b3Ugd291bGQgbGlrZSB0byBoYXZlIGEgc3BlY2lh bCBhcmNoaXZlIGxvY2F0aW9uIGZvciBhIHNpbmdsZQorZW50cnkgb3IgYSAoc3ViKXRyZWUsIGdp dmUgdGhlIGVudHJ5IGFuID1BUkNISVZFPSBwcm9wZXJ0eSB3aXRoIHRoZQorbG9jYXRpb24gYXMg dGhlIHZhbHVlIChzZWUgW1sqUHJvcGVydGllcyBhbmQgQ29sdW1uc11dKS4KKworIyt2aW5kZXg6 IG9yZy1hcmNoaXZlLXNhdmUtY29udGV4dC1pbmZvCitXaGVuIGEgc3VidHJlZSBpcyBtb3ZlZCwg aXQgcmVjZWl2ZXMgYSBudW1iZXIgb2Ygc3BlY2lhbCBwcm9wZXJ0aWVzCit0aGF0IHJlY29yZCBj b250ZXh0IGluZm9ybWF0aW9uIGxpa2UgdGhlIGZpbGUgZnJvbSB3aGVyZSB0aGUgZW50cnkKK2Nh bWUsIGl0cyBvdXRsaW5lIHBhdGggdGhlIGFyY2hpdmluZyB0aW1lIGV0Yy4gIENvbmZpZ3VyZSB0 aGUgdmFyaWFibGUKK35vcmctYXJjaGl2ZS1zYXZlLWNvbnRleHQtaW5mb34gdG8gYWRqdXN0IHRo ZSBhbW91bnQgb2YgaW5mb3JtYXRpb24KK2FkZGVkLgorCisqKiogSW50ZXJuYWwgYXJjaGl2aW5n Cis6UFJPUEVSVElFUzoKKzpERVNDUklQVElPTjogU3dpdGNoIG9mZiBhIHRyZWUgYnV0IGtlZXAg aXQgaW4gdGhlIGZpbGUuCis6RU5EOgorCisjK2NpbmRleDogQHNhbXB7QVJDSElWRX0sIHRhZwor SWYgeW91IHdhbnQgdG8ganVzdCBzd2l0Y2ggb2ZmLS0tZm9yIGFnZW5kYSB2aWV3cy0tLWNlcnRh aW4gc3VidHJlZXMKK3dpdGhvdXQgbW92aW5nIHRoZW0gdG8gYSBkaWZmZXJlbnQgZmlsZSwgeW91 IGNhbiB1c2UgdGhlID1BUkNISVZFPQordGFnLgorCitBIGhlYWRsaW5lIHRoYXQgaXMgbWFya2Vk IHdpdGggdGhlID1BUkNISVZFPSB0YWcgKHNlZSBbWypUYWdzXV0pIHN0YXlzIGF0CitpdHMgbG9j YXRpb24gaW4gdGhlIG91dGxpbmUgdHJlZSwgYnV0IGJlaGF2ZXMgaW4gdGhlIGZvbGxvd2luZyB3 YXk6CisKKy0KKyAgIyt2aW5kZXg6IG9yZy1jeWNsZS1vcGVuLWFyY2hpdmVkLXRyZWVzCisgIEl0 IGRvZXMgbm90IG9wZW4gd2hlbiB5b3UgYXR0ZW1wdCB0byBkbyBzbyB3aXRoIGEgdmlzaWJpbGl0 eSBjeWNsaW5nCisgIGNvbW1hbmQgKHNlZSBbWypWaXNpYmlsaXR5IEN5Y2xpbmddXSkuICBZb3Ug Y2FuIGZvcmNlIGN5Y2xpbmcgYXJjaGl2ZWQKKyAgc3VidHJlZXMgd2l0aCB7e3trYmQoQy1UQUIp fX19LCBvciBieSBzZXR0aW5nIHRoZSBvcHRpb24KKyAgfm9yZy1jeWNsZS1vcGVuLWFyY2hpdmVk LXRyZWVzfi4gIEFsc28gbm9ybWFsIG91dGxpbmUgY29tbWFuZHMsIGxpa2UKKyAgfm91dGxpbmUt c2hvdy1hbGx+LCBvcGVuIGFyY2hpdmVkIHN1YnRyZWVzLgorCistCisgICMrdmluZGV4OiBvcmct c3BhcnNlLXRyZWUtb3Blbi1hcmNoaXZlZC10cmVlcworICBEdXJpbmcgc3BhcnNlIHRyZWUgY29u c3RydWN0aW9uIChzZWUgW1sqU3BhcnNlIFRyZWVzXV0pLCBtYXRjaGVzIGluCisgIGFyY2hpdmVk IHN1YnRyZWVzIGFyZSBub3QgZXhwb3NlZCwgdW5sZXNzIHlvdSBjb25maWd1cmUgdGhlIG9wdGlv bgorICB+b3JnLXNwYXJzZS10cmVlLW9wZW4tYXJjaGl2ZWQtdHJlZXN+LgorCistCisgICMrdmlu ZGV4OiBvcmctYWdlbmRhLXNraXAtYXJjaGl2ZWQtdHJlZXMKKyAgRHVyaW5nIGFnZW5kYSB2aWV3 IGNvbnN0cnVjdGlvbiAoc2VlIFtbKkFnZW5kYSBWaWV3c11dKSwgdGhlIGNvbnRlbnQgb2YKKyAg YXJjaGl2ZWQgdHJlZXMgaXMgaWdub3JlZCB1bmxlc3MgeW91IGNvbmZpZ3VyZSB0aGUgb3B0aW9u CisgIH5vcmctYWdlbmRhLXNraXAtYXJjaGl2ZWQtdHJlZXN+LCBpbiB3aGljaCBjYXNlIHRoZXNl IHRyZWVzIGFyZQorICBhbHdheXMgaW5jbHVkZWQuICBJbiB0aGUgYWdlbmRhIHlvdSBjYW4gcHJl c3Mge3t7a2JkKHYgYSl9fX0gdG8gZ2V0CisgIGFyY2hpdmVzIHRlbXBvcmFyaWx5IGluY2x1ZGVk LgorCistCisgICMrdmluZGV4OiBvcmctZXhwb3J0LXdpdGgtYXJjaGl2ZWQtdHJlZXMKKyAgQXJj aGl2ZWQgdHJlZXMgYXJlIG5vdCBleHBvcnRlZCAoc2VlIFtbKkV4cG9ydGluZ11dKSwgb25seSB0 aGUgaGVhZGxpbmUKKyAgaXMuICBDb25maWd1cmUgdGhlIGRldGFpbHMgdXNpbmcgdGhlIHZhcmlh YmxlCisgIH5vcmctZXhwb3J0LXdpdGgtYXJjaGl2ZWQtdHJlZXN+LgorCistCisgICMrdmluZGV4 OiBvcmctY29sdW1ucy1za2lwLWFyY2hpdmVkLXRyZWVzCisgIEFyY2hpdmVkIHRyZWVzIGFyZSBl eGNsdWRlZCBmcm9tIGNvbHVtbiB2aWV3IHVubGVzcyB0aGUgdmFyaWFibGUKKyAgfm9yZy1jb2x1 bW5zLXNraXAtYXJjaGl2ZWQtdHJlZXN+IGlzIGNvbmZpZ3VyZWQgdG8gfm5pbH4uCisKK1RoZSBm b2xsb3dpbmcgY29tbWFuZHMgaGVscCBtYW5hZ2UgdGhlID1BUkNISVZFPSB0YWc6CisKKy0ge3t7 a2JkKEMtYyBDLXggYSl9fX0gKH5vcmctdG9nZ2xlLWFyY2hpdmUtdGFnfikgOjoKKworICAjK2tp bmRleDogQy1jIEMteCBhCisgICMrZmluZGV4OiBvcmctdG9nZ2xlLWFyY2hpdmUtdGFnCisgIFRv Z2dsZSB0aGUgYXJjaGl2ZSB0YWcgZm9yIHRoZSBjdXJyZW50IGhlYWRsaW5lLiAgV2hlbiB0aGUg dGFnIGlzCisgIHNldCwgdGhlIGhlYWRsaW5lIGNoYW5nZXMgdG8gYSBzaGFkb3dlZCBmYWNlLCBh bmQgdGhlIHN1YnRyZWUgYmVsb3cKKyAgaXQgaXMgaGlkZGVuLgorCistIHt7e2tiZChDLXUgQy1j IEMteCBhKX19fSA6OgorCisgICMra2luZGV4OiBDLXUgQy1jIEMteCBhCisgIENoZWNrIGlmIGFu eSBkaXJlY3QgY2hpbGRyZW4gb2YgdGhlIGN1cnJlbnQgaGVhZGxpbmUgc2hvdWxkIGJlCisgIGFy Y2hpdmVkLiAgVG8gZG8gdGhpcywgY2hlY2sgZWFjaCBzdWJ0cmVlIGZvciBvcGVuIFRPRE8gZW50 cmllcy4gIElmCisgIG5vbmUgaXMgZm91bmQsIHRoZSBjb21tYW5kIG9mZmVycyB0byBzZXQgdGhl ID1BUkNISVZFPSB0YWcgZm9yIHRoZQorICBjaGlsZC4gIElmIHBvaW50IGlzIC9ub3QvIG9uIGEg aGVhZGxpbmUgd2hlbiB0aGlzIGNvbW1hbmQgaXMKKyAgaW52b2tlZCwgY2hlY2sgdGhlIGxldmVs IDEgdHJlZXMuCisKKy0ge3t7a2JkKEMtVEFCKX19fSAofm9yZy1mb3JjZS1jeWNsZS1hcmNoaXZl ZH4pIDo6CisKKyAgIytraW5kZXg6IEMtVEFCCisgIEN5Y2xlIGEgdHJlZSBldmVuIGlmIGl0IGlz IHRhZ2dlZCB3aXRoID1BUkNISVZFPS4KKworLSB7e3trYmQoQy1jIEMteCBBKX19fSAofm9yZy1h cmNoaXZlLXRvLWFyY2hpdmUtc2libGluZ34pIDo6CisKKyAgIytraW5kZXg6IEMtYyBDLXggQQor ICAjK2ZpbmRleDogb3JnLWFyY2hpdmUtdG8tYXJjaGl2ZS1zaWJsaW5nCisgIE1vdmUgdGhlIGN1 cnJlbnQgZW50cnkgdG8gdGhlIC9BcmNoaXZlIFNpYmxpbmcvLiAgVGhpcyBpcyBhIHNpYmxpbmcK KyAgb2YgdGhlIGVudHJ5IHdpdGggdGhlIGhlYWRpbmcgPUFyY2hpdmU9IGFuZCB0aGUgYXJjaGl2 ZSB0YWcuICBUaGUKKyAgZW50cnkgYmVjb21lcyBhIGNoaWxkIG9mIHRoYXQgc2libGluZyBhbmQg aW4gdGhpcyB3YXkgcmV0YWlucyBhIGxvdAorICBvZiBpdHMgb3JpZ2luYWwgY29udGV4dCwgaW5j bHVkaW5nIGluaGVyaXRlZCB0YWdzIGFuZCBhcHByb3hpbWF0ZQorICBwb3NpdGlvbiBpbiB0aGUg b3V0bGluZS4KKworKiBDYXB0dXJlLCBBdHRhY2htZW50cywgUlNTIEZlZWRzIGFuZCBQcm90b2Nv bHMKKzpQUk9QRVJUSUVTOgorOkRFU0NSSVBUSU9OOiBEZWFsaW5nIHdpdGggZXh0ZXJuYWwgZGF0 YS4KKzpFTkQ6CisjK2NpbmRleDogY2FwdHVyZQorIytjaW5kZXg6IGF0dGFjaG1lbnRzCisjK2Np bmRleDogUlNTIGZlZWRzCisjK2NpbmRleDogQXRvbSBmZWVkcworIytjaW5kZXg6IHByb3RvY29s cywgZm9yIGV4dGVybmFsIGFjY2VzcworCitBbiBpbXBvcnRhbnQgcGFydCBvZiBhbnkgb3JnYW5p emF0aW9uIHN5c3RlbSBpcyB0aGUgYWJpbGl0eSB0byBxdWlja2x5CitjYXB0dXJlIG5ldyBpZGVh cyBhbmQgdGFza3MsIGFuZCB0byBhc3NvY2lhdGUgcmVmZXJlbmNlIG1hdGVyaWFsIHdpdGgKK3Ro ZW0uICBPcmcgZG9lcyB0aGlzIHVzaW5nIGEgcHJvY2VzcyBjYWxsZWQgL2NhcHR1cmUvLiAgSXQg YWxzbyBjYW4KK3N0b3JlIGZpbGVzIHJlbGF0ZWQgdG8gYSB0YXNrICgvYXR0YWNobWVudHMvKSBp biBhIHNwZWNpYWwgZGlyZWN0b3J5LgorCisqKiBDYXB0dXJlCis6UFJPUEVSVElFUzoKKzpERVND UklQVElPTjogQ2FwdHVyaW5nIG5ldyBzdHVmZi4KKzpFTkQ6CisjK2NpbmRleDogY2FwdHVyZQor CitDYXB0dXJlIGxldHMgeW91IHF1aWNrbHkgc3RvcmUgbm90ZXMgd2l0aCBsaXR0bGUgaW50ZXJy dXB0aW9uIG9mIHlvdXIKK3dvcmsgZmxvdy4gIE9yZydzIG1ldGhvZCBmb3IgY2FwdHVyaW5nIG5l dyBpdGVtcyBpcyBoZWF2aWx5IGluc3BpcmVkCitieSBKb2huIFdpZWdsZXkncyBleGNlbGxlbnQg UmVtZW1iZXIgcGFja2FnZS4KKworKioqIFNldHRpbmcgdXAgY2FwdHVyZQorOlBST1BFUlRJRVM6 Cis6REVTQ1JJUFRJT046IFdoZXJlIG5vdGVzIHdpbGwgYmUgc3RvcmVkLgorOkVORDoKKworVGhl IGZvbGxvd2luZyBjdXN0b21pemF0aW9uIHNldHMgYSBkZWZhdWx0IHRhcmdldCBmaWxlIGZvciBu b3Rlcy4KKworIyt2aW5kZXg6IG9yZy1kZWZhdWx0LW5vdGVzLWZpbGUKKyMrYmVnaW5fc3JjIGVt YWNzLWxpc3AKKyhzZXRxIG9yZy1kZWZhdWx0LW5vdGVzLWZpbGUgKGNvbmNhdCBvcmctZGlyZWN0 b3J5ICIvbm90ZXMub3JnIikpCisjK2VuZF9zcmMKKworWW91IG1heSBhbHNvIGRlZmluZSBhIGds b2JhbCBrZXkgZm9yIGNhcHR1cmluZyBuZXcgbWF0ZXJpYWwgKHNlZQorW1sqQWN0aXZhdGlvbl1d KS4KKworKioqIFVzaW5nIGNhcHR1cmUKKzpQUk9QRVJUSUVTOgorOkRFU0NSSVBUSU9OOiBDb21t YW5kcyB0byBpbnZva2UgYW5kIHRlcm1pbmF0ZSBjYXB0dXJlLgorOkVORDoKKworLSB7e3trYmQo TS14IG9yZy1jYXB0dXJlKX19fSAofm9yZy1jYXB0dXJlfikgOjoKKworICAjK2ZpbmRleDogb3Jn LWNhcHR1cmUKKyAgIytjaW5kZXg6IGRhdGUgdHJlZQorICBEaXNwbGF5IHRoZSBjYXB0dXJlIHRl bXBsYXRlcyBtZW51LiAgSWYgeW91IGhhdmUgdGVtcGxhdGVzIGRlZmluZWQKKyAgKHNlZSBbWypD YXB0dXJlIHRlbXBsYXRlc11dKSwgaXQgb2ZmZXJzIHRoZXNlIHRlbXBsYXRlcyBmb3Igc2VsZWN0 aW9uIG9yCisgIHVzZSBhIG5ldyBPcmcgb3V0bGluZSBub2RlIGFzIHRoZSBkZWZhdWx0IHRlbXBs YXRlLiAgSXQgaW5zZXJ0cyB0aGUKKyAgdGVtcGxhdGUgaW50byB0aGUgdGFyZ2V0IGZpbGUgYW5k IHN3aXRjaCB0byBhbiBpbmRpcmVjdCBidWZmZXIKKyAgbmFycm93ZWQgdG8gdGhpcyBuZXcgbm9k ZS4gIFlvdSBtYXkgdGhlbiBpbnNlcnQgdGhlIGluZm9ybWF0aW9uIHlvdQorICB3YW50LgorCist IHt7e2tiZChDLWMgQy1jKX19fSAofm9yZy1jYXB0dXJlLWZpbmFsaXplfikgOjoKKworICAjK2tp bmRleDogQy1jIEMtYyBAcnsoQ2FwdHVyZSBidWZmZXIpfQorICAjK2ZpbmRleDogb3JnLWNhcHR1 cmUtZmluYWxpemUKKyAgT25jZSB5b3UgaGF2ZSBmaW5pc2hlZCBlbnRlcmluZyBpbmZvcm1hdGlv biBpbnRvIHRoZSBjYXB0dXJlIGJ1ZmZlciwKKyAge3t7a2JkKEMtYyBDLWMpfX19IHJldHVybnMg eW91IHRvIHRoZSB3aW5kb3cgY29uZmlndXJhdGlvbiBiZWZvcmUKKyAgdGhlIGNhcHR1cmUgcHJv Y2Vzcywgc28gdGhhdCB5b3UgY2FuIHJlc3VtZSB5b3VyIHdvcmsgd2l0aG91dAorICBmdXJ0aGVy IGRpc3RyYWN0aW9uLiAgV2hlbiBjYWxsZWQgd2l0aCBhIHByZWZpeCBhcmd1bWVudCwgZmluYWxp emUKKyAgYW5kIHRoZW4ganVtcCB0byB0aGUgY2FwdHVyZWQgaXRlbS4KKworLSB7e3trYmQoQy1j IEMtdyl9fX0gKH5vcmctY2FwdHVyZS1yZWZpbGV+KSA6OgorCisgICMra2luZGV4OiBDLWMgQy13 IEByeyhDYXB0dXJlIGJ1ZmZlcil9CisgICMrZmluZGV4OiBvcmctY2FwdHVyZS1yZWZpbGUKKyAg RmluYWxpemUgdGhlIGNhcHR1cmUgcHJvY2VzcyBieSByZWZpbGluZyB0aGUgbm90ZSB0byBhIGRp ZmZlcmVudAorICBwbGFjZSAoc2VlIFtbKlJlZmlsZSBhbmQgQ29weV1dKS4gIFBsZWFzZSByZWFs aXplIHRoYXQgdGhpcyBpcyBhIG5vcm1hbAorICByZWZpbGluZyBjb21tYW5kIHRoYXQgd2lsbCBi ZSBleGVjdXRlZC0tLXNvIHBvaW50IHBvc2l0aW9uIGF0IHRoZQorICBtb21lbnQgeW91IHJ1biB0 aGlzIGNvbW1hbmQgaXMgaW1wb3J0YW50LiAgSWYgeW91IGhhdmUgaW5zZXJ0ZWQKKyAgYSB0cmVl IHdpdGggYSBwYXJlbnQgYW5kIGNoaWxkcmVuLCBmaXJzdCBtb3ZlIHBvaW50IGJhY2sgdG8gdGhl CisgIHBhcmVudC4gIEFueSBwcmVmaXggYXJndW1lbnQgZ2l2ZW4gdG8gdGhpcyBjb21tYW5kIGlz IHBhc3NlZCBvbiB0bworICB0aGUgfm9yZy1yZWZpbGV+IGNvbW1hbmQuCisKKy0ge3t7a2JkKEMt YyBDLWspfX19ICh+b3JnLWNhcHR1cmUta2lsbH4pIDo6CisKKyAgIytraW5kZXg6IEMtYyBDLWsg QHJ7KENhcHR1cmUgYnVmZmVyKX0KKyAgIytmaW5kZXg6IG9yZy1jYXB0dXJlLWtpbGwKKyAgQWJv cnQgdGhlIGNhcHR1cmUgcHJvY2VzcyBhbmQgcmV0dXJuIHRvIHRoZSBwcmV2aW91cyBzdGF0ZS4K KworIytraW5kZXg6IGsgYyBAcnsoQWdlbmRhKX0KK1lvdSBjYW4gYWxzbyBjYWxsIH5vcmctY2Fw dHVyZX4gaW4gYSBzcGVjaWFsIHdheSBmcm9tIHRoZSBhZ2VuZGEsCit1c2luZyB0aGUge3t7a2Jk KGsgYyl9fX0ga2V5IGNvbWJpbmF0aW9uLiAgV2l0aCB0aGlzIGFjY2VzcywgYW55Cit0aW1lc3Rh bXBzIGluc2VydGVkIGJ5IHRoZSBzZWxlY3RlZCBjYXB0dXJlIHRlbXBsYXRlIGRlZmF1bHRzIHRv IHRoZQorZGF0ZSBhdCBwb2ludCBpbiB0aGUgYWdlbmRhLCByYXRoZXIgdGhhbiB0byB0aGUgY3Vy cmVudCBkYXRlLgorCitUbyBmaW5kIHRoZSBsb2NhdGlvbnMgb2YgdGhlIGxhc3Qgc3RvcmVkIGNh cHR1cmUsIHVzZSB+b3JnLWNhcHR1cmV+Cit3aXRoIHByZWZpeCBjb21tYW5kczoKKworLSB7e3tr YmQoQy11IE0teCBvcmctY2FwdHVyZSl9fX0gOjoKKworICBWaXNpdCB0aGUgdGFyZ2V0IGxvY2F0 aW9uIG9mIGEgY2FwdHVyZSB0ZW1wbGF0ZS4gIFlvdSBnZXQgdG8gc2VsZWN0CisgIHRoZSB0ZW1w bGF0ZSBpbiB0aGUgdXN1YWwgd2F5LgorCistIHt7e2tiZChDLXUgQy11IE0teCBvcmctY2FwdHVy ZSl9fX0gOjoKKworICBWaXNpdCB0aGUgbGFzdCBzdG9yZWQgY2FwdHVyZSBpdGVtIGluIGl0cyBi dWZmZXIuCisKKyMrdmluZGV4OiBvcmctY2FwdHVyZS1ib29rbWFyaworIyt2aW5kZXg6IG9yZy1j YXB0dXJlLWxhc3Qtc3RvcmVkCitZb3UgY2FuIGFsc28ganVtcCB0byB0aGUgYm9va21hcmsgfm9y Zy1jYXB0dXJlLWxhc3Qtc3RvcmVkfiwgd2hpY2ggaXMKK2F1dG9tYXRpY2FsbHkgY3JlYXRlZCB1 bmxlc3MgeW91IHNldCB+b3JnLWNhcHR1cmUtYm9va21hcmt+IHRvIH5uaWx+LgorCitUbyBpbnNl cnQgdGhlIGNhcHR1cmUgYXQgcG9pbnQgaW4gYW4gT3JnIGJ1ZmZlciwgY2FsbCB+b3JnLWNhcHR1 cmV+Cit3aXRoIGEge3t7a2JkKEMtMCl9fX0gcHJlZml4IGFyZ3VtZW50LgorCisqKiogQ2FwdHVy ZSB0ZW1wbGF0ZXMKKzpQUk9QRVJUSUVTOgorOkRFU0NSSVBUSU9OOiBEZWZpbmUgdGhlIG91dGxp bmUgb2YgZGlmZmVyZW50IG5vdGUgdHlwZXMuCis6RU5EOgorIytjaW5kZXg6IHRlbXBsYXRlcywg Zm9yIENhcHR1cmUKKworWW91IGNhbiB1c2UgdGVtcGxhdGVzIGZvciBkaWZmZXJlbnQgdHlwZXMg b2YgY2FwdHVyZSBpdGVtcywgYW5kIGZvcgorZGlmZmVyZW50IHRhcmdldCBsb2NhdGlvbnMuICBU aGUgZWFzaWVzdCB3YXkgdG8gY3JlYXRlIHN1Y2ggdGVtcGxhdGVzCitpcyB0aHJvdWdoIHRoZSBj dXN0b21pemUgaW50ZXJmYWNlLgorCistIHt7e2tiZChDKX19fSA6OgorCisgICMra2luZGV4OiBD IEByeyhDYXB0dXJlIG1lbnV9CisgICMrdmluZGV4OiBvcmctY2FwdHVyZS10ZW1wbGF0ZXMKKyAg Q3VzdG9taXplIHRoZSB2YXJpYWJsZSB+b3JnLWNhcHR1cmUtdGVtcGxhdGVzfi4KKworQmVmb3Jl IHdlIGdpdmUgdGhlIGZvcm1hbCBkZXNjcmlwdGlvbiBvZiB0ZW1wbGF0ZSBkZWZpbml0aW9ucywg bGV0J3MKK2xvb2sgYXQgYW4gZXhhbXBsZS4gIFNheSB5b3Ugd291bGQgbGlrZSB0byB1c2Ugb25l IHRlbXBsYXRlIHRvIGNyZWF0ZQorZ2VuZXJhbCBUT0RPIGVudHJpZXMsIGFuZCB5b3Ugd2FudCB0 byBwdXQgdGhlc2UgZW50cmllcyB1bmRlciB0aGUKK2hlYWRpbmcgPVRhc2tzPSBpbiB5b3VyIGZp bGUgPX4vb3JnL2d0ZC5vcmc9LiAgQWxzbywgYSBkYXRlIHRyZWUgaW4KK3RoZSBmaWxlID1qb3Vy bmFsLm9yZz0gc2hvdWxkIGNhcHR1cmUgam91cm5hbCBlbnRyaWVzLiAgQSBwb3NzaWJsZQorY29u ZmlndXJhdGlvbiB3b3VsZCBsb29rIGxpa2U6CisKKyMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKKyhz ZXRxIG9yZy1jYXB0dXJlLXRlbXBsYXRlcworICAgICAgJygoInQiICJUb2RvIiBlbnRyeSAoZmls ZStoZWFkbGluZSAifi9vcmcvZ3RkLm9yZyIgIlRhc2tzIikKKyAgICAgICAgICIqIFRPRE8gJT9c biAgJWlcbiAgJWEiKQorICAgICAgICAoImoiICJKb3VybmFsIiBlbnRyeSAoZmlsZStkYXRldHJl ZSAifi9vcmcvam91cm5hbC5vcmciKQorICAgICAgICAgIiogJT9cbkVudGVyZWQgb24gJVVcbiAg JWlcbiAgJWEiKSkpCisjK2VuZF9zcmMKKworSWYgeW91IHRoZW4gcHJlc3Mge3t7a2JkKHQpfX19 IGZyb20gdGhlIGNhcHR1cmUgbWVudSwgT3JnIHdpbGwgcHJlcGFyZQordGhlIHRlbXBsYXRlIGZv ciB5b3UgbGlrZSB0aGlzOgorCisjK2JlZ2luX2V4YW1wbGUKKywqIFRPRE8KKyAgW1tmaWxlOkxJ TksgVE8gV0hFUkUgWU9VIElOSVRJQVRFRCBDQVBUVVJFXV0KKyMrZW5kX2V4YW1wbGUKKworIyt0 ZXhpbmZvOiBAbm9pbmRlbnQKK0R1cmluZyBleHBhbnNpb24gb2YgdGhlIHRlbXBsYXRlLCA9JWE9 IGhhcyBiZWVuIHJlcGxhY2VkIGJ5IGEgbGluayB0bwordGhlIGxvY2F0aW9uIGZyb20gd2hlcmUg eW91IGNhbGxlZCB0aGUgY2FwdHVyZSBjb21tYW5kLiAgVGhpcyBjYW4gYmUKK2V4dHJlbWVseSB1 c2VmdWwgZm9yIGRlcml2aW5nIHRhc2tzIGZyb20gZW1haWxzLCBmb3IgZXhhbXBsZS4gIFlvdQor ZmlsbCBpbiB0aGUgdGFzayBkZWZpbml0aW9uLCBwcmVzcyB7e3trYmQoQy1jIEMtYyl9fX0gYW5k IE9yZyByZXR1cm5zCit5b3UgdG8gdGhlIHNhbWUgcGxhY2Ugd2hlcmUgeW91IHN0YXJ0ZWQgdGhl IGNhcHR1cmUgcHJvY2Vzcy4KKworVG8gZGVmaW5lIHNwZWNpYWwga2V5cyB0byBjYXB0dXJlIHRv IGEgcGFydGljdWxhciB0ZW1wbGF0ZSB3aXRob3V0Citnb2luZyB0aHJvdWdoIHRoZSBpbnRlcmFj dGl2ZSB0ZW1wbGF0ZSBzZWxlY3Rpb24sIHlvdSBjYW4gY3JlYXRlIHlvdXIKIGtleSBiaW5kaW5n IGxpa2UgdGhpczoKIAogIytiZWdpbl9zcmMgZW1hY3MtbGlzcApAQCAtNzQzNywyOCArNzc3Niwz MCBAQCBTZWUgdGhlIGRvY3N0cmluZyBvZiB0aGUgdmFyaWFibGUgZm9yIG1vcmUgaW5mb3JtYXRp b24uCiAKICoqIEF0dGFjaG1lbnRzCiA6UFJPUEVSVElFUzoKLTpERVNDUklQVElPTjogQWRkIGZp bGVzIHRvIHRhc2tzLgorOkRFU0NSSVBUSU9OOiBBdHRhY2ggZmlsZXMgdG8gb3V0bGluZXMuCiA6 RU5EOgogIytjaW5kZXg6IGF0dGFjaG1lbnRzCi0jK3ZpbmRleDogb3JnLWF0dGFjaC1kaXJlY3Rv cnkKIAogSXQgaXMgb2Z0ZW4gdXNlZnVsIHRvIGFzc29jaWF0ZSByZWZlcmVuY2UgbWF0ZXJpYWwg d2l0aCBhbiBvdXRsaW5lCi1ub2RlL3Rhc2suICBTbWFsbCBjaHVua3Mgb2YgcGxhaW4gdGV4dCBj YW4gc2ltcGx5IGJlIHN0b3JlZCBpbiB0aGUKLXN1YnRyZWUgb2YgYSBwcm9qZWN0LiAgSHlwZXJs aW5rcyAoc2VlIFtbKkh5cGVybGlua3NdXSkgY2FuIGVzdGFibGlzaAotYXNzb2NpYXRpb25zIHdp dGggZmlsZXMgdGhhdCBsaXZlIGVsc2V3aGVyZSBvbiB5b3VyIGNvbXB1dGVyIG9yIGluIHRoZQot Y2xvdWQsIGxpa2UgZW1haWxzIG9yIHNvdXJjZSBjb2RlIGZpbGVzIGJlbG9uZ2luZyB0byBhIHBy b2plY3QuCi1Bbm90aGVyIG1ldGhvZCBpcyAvYXR0YWNobWVudHMvLCB3aGljaCBhcmUgZmlsZXMg bG9jYXRlZCBpbgotYSBkaXJlY3RvcnkgYmVsb25naW5nIHRvIGFuIG91dGxpbmUgbm9kZS4gIE9y ZyB1c2VzIGRpcmVjdG9yaWVzIG5hbWVkCi1ieSB0aGUgdW5pcXVlIElEIG9mIGVhY2ggZW50cnku ICBUaGVzZSBkaXJlY3RvcmllcyBhcmUgbG9jYXRlZCBpbiB0aGUKLT1kYXRhLz0gZGlyZWN0b3J5 IHdoaWNoIGxpdmVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB3aGVyZSB5b3VyIE9yZwotZmlsZSBs aXZlc1tmbjo4N10uICBJZiB5b3UgaW5pdGlhbGl6ZSB0aGlzIGRpcmVjdG9yeSB3aXRoID1naXQg aW5pdD0sCi1PcmcgYXV0b21hdGljYWxseSBjb21taXRzIGNoYW5nZXMgd2hlbiBpdCBzZWVzIHRo ZW0uICBUaGUgYXR0YWNobWVudAotc3lzdGVtIGhhcyBiZWVuIGNvbnRyaWJ1dGVkIHRvIE9yZyBi eSBKb2huIFdpZWdsZXkuCi0KLUluIGNhc2VzIHdoZXJlIGl0IHNlZW1zIGJldHRlciB0byBkbyBz bywgeW91IGNhbiBhdHRhY2ggYSBkaXJlY3Rvcnkgb2YKLXlvdXIgY2hvaWNlIHRvIGFuIGVudHJ5 LiAgWW91IGNhbiBhbHNvIG1ha2UgY2hpbGRyZW4gaW5oZXJpdCB0aGUKLWF0dGFjaG1lbnQgZGly ZWN0b3J5IGZyb20gYSBwYXJlbnQsIHNvIHRoYXQgYW4gZW50aXJlIHN1YnRyZWUgdXNlcyB0aGUK LXNhbWUgYXR0YWNoZWQgZGlyZWN0b3J5Lgorbm9kZS4gIFNtYWxsIGNodW5rcyBvZiBwbGFpbiB0 ZXh0IGNhbiBzaW1wbHkgYmUgc3RvcmVkIGluIHRoZSBzdWJ0cmVlCitvZiBhIHByb2plY3QuICBI eXBlcmxpbmtzIChzZWUgW1sqSHlwZXJsaW5rc11dKSBjYW4gZXN0YWJsaXNoIGFzc29jaWF0aW9u cword2l0aCBmaWxlcyB0aGF0IGxpdmUgZWxzZXdoZXJlIG9uIHlvdXIgY29tcHV0ZXIgb3IgaW4g dGhlIGNsb3VkLCBsaWtlCitlbWFpbHMgb3Igc291cmNlIGNvZGUgZmlsZXMgYmVsb25naW5nIHRv IGEgcHJvamVjdC4KKworQW5vdGhlciBtZXRob2QgaXMgL2F0dGFjaG1lbnRzLywgd2hpY2ggYXJl IGZpbGVzIGxvY2F0ZWQgaW4gYQorZGlyZWN0b3J5IGJlbG9uZ2luZyB0byBhbiBvdXRsaW5lIG5v ZGUuICBPcmcgdXNlcyBkaXJlY3RvcmllcyBlaXRoZXIKK25hbWVkIGJ5IGEgdW5pcXVlIElEIG9m IGVhY2ggZW50cnksIG9yIGJ5IGEgPURJUj0gcHJvcGVydHkuCisKKyoqKiBBdHRhY2htZW50IGRl ZmF1bHRzIGFuZCBkaXNwYXRjaGVyCitCeSBkZWZhdWx0LCBvcmctYXR0YWNoIHdpbGwgdXNlIElE IHByb3BlcnRpZXMgd2hlbiBhZGRpbmcgYXR0YWNobWVudHMKK3RvIG91dGxpbmUgbm9kZXMuICBU aGlzIG1ha2VzIHdvcmtpbmcgd2l0aCBhdHRhY2htZW50cyBmdWxseQorYXV0b21hdGVkLiAgVGhl cmUgaXMgbm8gZGVjaXNpb24gbmVlZGVkIGZvciBmb2xkZXItbmFtZSBvciBsb2NhdGlvbi4KK0lE LWJhc2VkIGRpcmVjdG9yaWVzIGFyZSBieSBkZWZhdWx0IGxvY2F0ZWQgaW4gdGhlID1kYXRhLz0g ZGlyZWN0b3J5LAord2hpY2ggbGl2ZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IHdoZXJlIHlvdXIg T3JnIGZpbGUgbGl2ZXNbZm46ODddLgorRm9yIG1vcmUgY29udHJvbCBvdmVyIHRoZSBzZXR1cCwg c2VlIFtbKkF0dGFjaG1lbnQgb3B0aW9uc11dLgorCitXaGVuIGF0dGFjaG1lbnRzIGFyZSBtYWRl IHVzaW5nIH5vcmctYXR0YWNofiBhIGRlZmF1bHQgdGFnID1BVFRBQ0g9IGlzCithZGRlZCB0byB0 aGUgbm9kZSB0aGF0IGdldHMgdGhlIGF0dGFjaG1lbnRzLgogCiBUaGUgZm9sbG93aW5nIGNvbW1h bmRzIGRlYWwgd2l0aCBhdHRhY2htZW50czoKIApAQCAtNzU0MywyNSArNzg4NCwxNDQgQEAgVGhl IGZvbGxvd2luZyBjb21tYW5kcyBkZWFsIHdpdGggYXR0YWNobWVudHM6CiAKICAgLSB7e3trYmQo RCl9fX0gKH5vcmctYXR0YWNoLWRlbGV0ZS1hbGx+KSA6OgogCi0gICAgIytraW5kZXg6IEMtYyBD LWEgRAotICAgIERlbGV0ZSBhbGwgb2YgYSB0YXNrJ3MgYXR0YWNobWVudHMuICBBIHNhZmVyIHdh eSBpcyB0byBvcGVuIHRoZQotICAgIGRpcmVjdG9yeSBpbiBEaXJlZCBhbmQgZGVsZXRlIGZyb20g dGhlcmUuCisgICAgIytraW5kZXg6IEMtYyBDLWEgRAorICAgIERlbGV0ZSBhbGwgb2YgYSB0YXNr J3MgYXR0YWNobWVudHMuICBBIHNhZmVyIHdheSBpcyB0byBvcGVuIHRoZQorICAgIGRpcmVjdG9y eSBpbiBEaXJlZCBhbmQgZGVsZXRlIGZyb20gdGhlcmUuCisKKyAgLSB7e3trYmQocyl9fX0gKH5v cmctYXR0YWNoLXNldC1kaXJlY3Rvcnl+KSA6OgorCisgICAgIytraW5kZXg6IEMtYyBDLWEgcwor ICAgICMrY2luZGV4OiBAc2FtcHtESVJ9LCBwcm9wZXJ0eQorICAgIFNldCBhIHNwZWNpZmljIGRp cmVjdG9yeSBhcyB0aGUgZW50cnkncyBhdHRhY2htZW50IGRpcmVjdG9yeS4KKyAgICBUaGlzIHdv cmtzIGJ5IHB1dHRpbmcgdGhlIGRpcmVjdG9yeSBwYXRoIGludG8gdGhlID1ESVI9CisgICAgcHJv cGVydHkuCisKKyAgLSB7e3trYmQoUyl9fX0gKH5vcmctYXR0YWNoLXVuc2V0LWRpcmVjdG9yeX4p IDo6CisKKyAgICAjK2tpbmRleDogQy1jIEMtYSBTCisgICAgIytjaW5kZXg6IEBzYW1we0RJUn0s IHByb3BlcnR5CisgICAgUmVtb3ZlIHRoZSBhdHRhY2htZW50IGRpcmVjdG9yeS4gIFRoaXMgY29t bWFuZCByZW1vdmVzIHRoZSA9RElSPQorICAgIHByb3BlcnR5IGFuZCBhc2tzIHRoZSB1c2VyIHRv IGVpdGhlciBtb3ZlIGNvbnRlbnQgaW5zaWRlIHRoYXQKKyAgICBmb2xkZXIsIGlmIGFuID1JRD0g cHJvcGVydHkgaXMgc2V0LCBkZWxldGUgdGhlIGNvbnRlbnQsIG9yIHRvCisgICAgbGVhdmUgdGhl IGF0dGFjaG1lbnQgZGlyZWN0b3J5IGFzIGlzIGJ1dCBubyBsb25nZXIgYXR0YWNoZWQgdG8gdGhl CisgICAgb3V0bGluZSBub2RlLgorCisqKiogQXR0YWNobWVudCBvcHRpb25zCitUaGVyZSBhcmUg YSBjb3VwbGUgb2Ygb3B0aW9ucyBmb3IgYXR0YWNobWVudHMgdGhhdCBhcmUgd29ydGgKK21lbnRp b25pbmcuCisKKy0gfm9yZy1hdHRhY2gtaWQtZGlyfiA6OgorICAjK3ZpbmRleDogb3JnLWF0dGFj aC1pZC1kaXIKKyAgVGhlIGRpcmVjdG9yeSB3aGVyZSBhdHRhY2htZW50cyBhcmUgc3RvcmVkIHdo ZW4gPUlEPSBpcyB1c2VkIGFzCisgIG1ldGhvZC4KKworLSB+b3JnLWF0dGFjaC1kaXItcmVsYXRp dmV+IDo6CisgICMrdmluZGV4OiBvcmctYXR0YWNoLWRpci1yZWxhdGl2ZQorICBXaGVuIHNldHRp bmcgdGhlID1ESVI9IHByb3BlcnR5IG9uIGEgbm9kZSB1c2luZyB7e3trYmQoQy1jIEMtYSBzKX19 fQorICAofm9yZy1hdHRhY2gtc2V0LWRpcmVjdG9yeX4pLCBhYnNvbHV0ZSBsaW5rcyBhcmUgZW50 ZXJlZCBieSBkZWZhdWx0LgorICBUaGlzIG9wdGlvbiBjaGFuZ2VzIHRoYXQgdG8gcmVsYXRpdmUg bGlua3MuCisKKy0gfm9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNlfiA6OgorICAjK3ZpbmRleDog b3JnLWF0dGFjaC11c2UtaW5oZXJpdGFuY2UKKyAgQnkgZGVmYXVsdCBmb2xkZXJzIGF0dGFjaGVk IHRvIGFuIG91dGxpbmUgbm9kZSBhcmUgaW5oZXJpdGVkIGZyb20KKyAgcGFyZW50cyBhY2NvcmRp bmcgdG8gfm9yZy11c2UtcHJvcGVydHktaW5oZXJpdGFuY2V+LiAgSWYgb25lIGluc3RlYWQKKyAg d2FudCB0byBzZXQgaW5oZXJpdGFuY2Ugc3BlY2lmaWNhbGx5IGZvciBvcmctYXR0YWNoIHRoYXQg Y2FuIGJlIGRvbmUKKyAgdXNpbmcgfm9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNlfi4gIEluaGVy aXRpbmcgZG9jdW1lbnRzIHRocm91Z2gKKyAgdGhlIG5vZGUgaGllcmFyY2h5IG1ha2VzIGEgbG90 IG9mIHNlbnNlIGluIG1vc3QgY2FzZXMuIEVzcGVjaWFsbHkKKyAgc2luY2UgdGhlIGludHJvZHVj dGlvbiBvZiBbWyogQXR0YWNobWVudCBsaW5rc11dLiAgVGhlIGZvbGxvd2luZyBleGFtcGxlCisg IHNob3dzIG9uZSB1c2UgY2FzZSBmb3IgYXR0YWNobWVudCBpbmhlcml0YW5jZToKKworICAjK2Jl Z2luX2V4YW1wbGUKKyAgLCogQ2hhcHRlciBBIC4uLgorICAgIDpQUk9QRVJUSUVTOgorICAgIDpE SVI6IENoYXB0ZXIgQS8KKyAgICA6RU5EOgorICAsKiogSW50cm9kdWN0aW9uCisgIFNvbWUgdGV4 dAorCisgICMrTkFNRTogSW1hZ2UgMQorICBbW0F0dGFjaG1lbnQ6aW1hZ2UgMS5qcGddXQorICAj K2VuZF9leGFtcGxlCisKKyAgV2l0aG91dCBpbmhlcml0YW5jZSBvbmUgd291bGQgbm90IGJlIGFi bGUgdG8gcmVzb2x2ZSB0aGUgbGluayB0bworICBpbWFnZSA9MS5qcGc9LCBzaW5jZSB0aGUgbGlu ayBpcyBpbnNpZGUgYSBzdWItaGVhZGluZyB0byA9Q2hhcHRlcgorICBBPS4KKworICBJbmhlcml0 YW5jZSB3b3JrcyB0aGUgc2FtZSB3YXkgZm9yIGJvdGggPUlEPSBhbmQgPURJUj0gcHJvcGVydHku ICBJZgorICBib3RoIHByb3BlcnRpZXMgYXJlIGRlZmluZWQgb24gdGhlIHNhbWUgaGVhZGxpbmUg dGhlbiA9RElSPSB0YWtlcworICBwcmVjZWRhbmNlLiAgVGhpcyBpcyBhbHNvIHRydWUgaWYgaW5o ZXJpdGFuY2UgaXMgZW5hYmxlZC4gIElmID1ESVI9CisgIGlzIGluaGVyaXRlZCBmcm9tIGEgcGFy ZW50IG5vZGUgaW4gdGhlIG91dGxpbmUsIHRoYXQgcHJvcGVydHkgc3RpbGwKKyAgdGFrZXMgcHJl Y2VkZW5jZSBvdmVyIGFuID1JRD0gcHJvcGVydHkgZGVmaW5lZCBvbiB0aGUgbm9kZSBpdHNlbGYu CisKKy0gfm9yZy1hdHRhY2gtbWV0aG9kfiA6OgorICAjK3ZpbmRleDogb3JnLWF0dGFjaC1tZXRo b2QKKyAgV2hlbiBhdHRhY2hpbmcgZmlsZXMgdXNpbmcgdGhlIGRpc3BhdGNoZXIge3t7a2JkKEMt YyBDLWEpfX19IGl0CisgIGRlZmF1bHRzIHRvIGNvcHlpbmcgZmlsZXMuICBUaGUgYmVoYXZpb3Vy IGNhbiBiZSBjaGFuZ2VkIGJ5CisgIGN1c3RvbWl6aW5nIH5vcmctYXR0YWNoLW1ldGhvZH4uICBP cHRpb25zIGFyZSBDb3B5LCBNb3ZlL1JlbmFtZSwKKyAgSGFyZCBsaW5rIG9yIFN5bWJvbGljIGxp bmsuCisKKy0gfm9yZy1hdHRhY2gtcHJlZmVycmVkLW5ldy1tZXRob2R+IDo6CisgICMrdmluZGV4 OiBvcmctYXR0YWNoLXByZWZlcnJlZC1uZXctbWV0aG9kCisgIFRoaXMgY3VzdG9taXphdGlvbiBs ZXRzIHlvdSBjaG9vc2UgdGhlIGRlZmF1bHQgd2F5IHRvIGF0dGFjaCB0bworICBub2RlcyB3aXRo b3V0IGV4aXN0aW5nID1JRD0gYW5kID1ESVI9IHByb3BlcnR5LiAgSXQgZGVmYXVsdHMgdG8gfmlk fgorICBidXQgY2FuIGFsc28gYmUgc2V0IHRvIH5kaXJ+LCB+YXNrfiBvciB+bmlsfi4KKworLSB+ b3JnLWF0dGFjaC1hcmNoaXZlLWRlbGV0ZX4gOjoKKyAgIyt2aW5kZXg6IG9yZy1hdHRhY2gtYXJj aGl2ZS1kZWxldGUKKyAgQ29uZmlndXJlIHRoaXMgdG8gZGV0ZXJtaW5lIGlmIGF0dGFjaG1lbnRz IHNob3VsZCBiZSBkZWxldGVkIG9yIG5vdAorICB3aGVuIGEgc3VidHJlZSB0aGF0IGhhcyBhdHRh Y2htZW50cyBpcyBhcmNoaXZlZC4KKworLSB+b3JnLWF0dGFjaC1hdXRvLXRhZ34gOjoKKyAgIyt2 aW5kZXg6IG9yZy1hdHRhY2gtYXV0by10YWcKKyAgV2hlbiBhdHRhY2hpbmcgZmlsZXMgdG8gYSBo ZWFkaW5nIGl0IHdpbGwgYmUgYXNzaWduZWQgYSB0YWcKKyAgYWNjb3JkaW5nIHRvIHdoYXQgaXMg c2V0IGhlcmUuCisKKy0gfm9yZy1hdHRhY2gtaWQtdG8tcGF0aC1mdW5jdGlvbn4gOjoKKyAgIyt2 aW5kZXg6IG9yZy1hdHRhY2gtaWQtdG8tcGF0aC1mdW5jdGlvbgorICBXaGVuID1JRD0gaXMgdXNl ZCBmb3IgYXR0YWNobWVudHMsIHRoZSBJRCBpcyBwYXJzZWQgaW50byBhIHBhcnQgb2YgYQorICBk aXJlY3RvcnktcGF0aC4gIFNlZSB+b3JnLWF0dGFjaC1pZC1mb2xkZXItZm9ybWF0fiBmb3IgdGhl IGRlZmF1bHQKKyAgZnVuY3Rpb24uICBEZWZpbmUgYSBuZXcgb25lIGFuZCBhZGQgaXQgdG8KKyAg fm9yZy1hdHRhY2gtaWQtdG8tcGF0aC1mdW5jdGlvbn4gaWYgeW91IHdhbnQgdGhlIGZvbGRlciBz dHJ1Y3R1cmUKKyAgYW55IG90aGVyIHdheS4gIE5vdGUgdGhhdCBtb2RpZnlpbmcgdGhpcyBtYWtl cyBvcmctYXR0YWNoIGRlcGVuZGVudAorICBvbiB5b3VyIGZ1bmN0aW9uIGFsc28gZm9yIG9wZW5p bmcgYXR0YWNobWVudHMsIG5vdCBvbmx5IHNldHRpbmcKKyAgdGhlbSEKKworLSB+b3JnLWF0dGFj aC1leHBlcnR+IDo6CisgICMrdmluZGV4OiBvcmctYXR0YWNoLWV4cGVydAorICBEbyBub3Qgc2hv dyB0aGUgc3BsYXNoIGJ1ZmZlciB3aXRoIHRoZSBhdHRhY2ggZGlzcGF0Y2hlciB3aGVuCisgIH5v cmctYXR0YWNoLWV4cGVydH4gaXMgc2V0IHRvIG5vbi1+bmlsfi4KKworU2VlIGN1c3RvbWl6YXRp b24gZ3JvdXAgPU9yZyBBdHRhY2g9IGlmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUKK2RlZmF1bHQg c2V0dGluZ3MuCisKKyoqKiBBdHRhY2htZW50IGxpbmtzCitBdHRhY2hlZCBmaWxlcyBhbmQgZm9s ZGVycyBjYW4gYmUgcmVmZXJlbmNlZCB1c2luZyBhdHRhY2htZW50IGxpbmtzLgorVGhpcyBtYWtl cyBpdCBlYXN5IHRvIHJlZmVyIHRvIHRoZSBtYXRlcmlhbCBhZGRlZCB0byBhbiBvdXRsaW5lIG5v ZGUuCitFc3BlY2lhbGx5IGlmIGl0IHdhcyBhdHRhY2hlZCB1c2luZyB0aGUgdW5pcXVlIElEIG9m IHRoZSBlbnRyeSEKKworIytiZWdpbl9leGFtcGxlCissKiBUT0RPIFNvbWUgdGFzaworICA6UFJP UEVSVElFUzoKKyAgOklEOiAgICAgICA5NWQ1MDAwOC1jMTJlLTQ3OWYtYTRmMi1jYzAyMzgyMDUz MTkKKyAgOkVORDoKK1NlZSBhdHRhY2hlZCBkb2N1bWVudCBmb3IgbW9yZSBpbmZvcm1hdGlvbjog W1thdHRhY2htZW50OmluZm8ub3JnXV0KKyMrZW5kX2V4YW1wbGUKIAotICAtIHt7e2tiZChzKX19 fSAofm9yZy1hdHRhY2gtc2V0LWRpcmVjdG9yeX4pIDo6CitTZWUgW1sqRXh0ZXJuYWwgTGlua3Nd XSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVzZSBsaW5rcy4KIAotICAgICMra2luZGV4 OiBDLWMgQy1hIHMKLSAgICAjK2NpbmRleDogQHNhbXB7QVRUQUNIX0RJUn0sIHByb3BlcnR5Ci0g ICAgU2V0IGEgc3BlY2lmaWMgZGlyZWN0b3J5IGFzIHRoZSBlbnRyeSdzIGF0dGFjaG1lbnQgZGly ZWN0b3J5LgotICAgIFRoaXMgd29ya3MgYnkgcHV0dGluZyB0aGUgZGlyZWN0b3J5IHBhdGggaW50 byB0aGUgPUFUVEFDSF9ESVI9Ci0gICAgcHJvcGVydHkuCisqKiogQXV0b21hdGljIHZlcnNpb24t Y29udHJvbCB3aXRoIEdpdAorSWYgdGhlIGRpcmVjdG9yeSBhdHRhY2hlZCB0byBhbiBvdXRsaW5l IG5vZGUgaXMgYSBHaXQgcmVwb3NpdG9yeSwgT3JnCitjYW4gYmUgY29uZmlndXJlZCB0byBhdXRv bWF0aWNhbGx5IGNvbW1pdCBjaGFuZ2VzIHRvIHRoYXQgcmVwb3NpdG9yeQord2hlbiBpdCBzZWVz IHRoZW0uCiAKLSAgLSB7e3trYmQoaSl9fX0gKH5vcmctYXR0YWNoLXNldC1pbmhlcml0fikgOjoK K1RvIG1ha2UgT3JnIG1vZGUgdGFrZSBjYXJlIG9mIHZlcnNpb25pbmcgb2YgYXR0YWNobWVudHMg Zm9yIHlvdSwgYWRkCit0aGUgZm9sbG93aW5nIHRvIHlvdXIgRW1hY3MgY29uZmlnOgogCi0gICAg IytraW5kZXg6IEMtYyBDLWEgaQotICAgICMrY2luZGV4OiBAc2FtcHtBVFRBQ0hfRElSX0lOSEVS SVR9LCBwcm9wZXJ0eQotICAgIFNldCB0aGUgPUFUVEFDSF9ESVJfSU5IRVJJVD0gcHJvcGVydHks IHNvIHRoYXQgY2hpbGRyZW4gdXNlIHRoZQotICAgIHNhbWUgZGlyZWN0b3J5IGZvciBhdHRhY2ht ZW50cyBhcyB0aGUgcGFyZW50IGRvZXMuCisjK2JlZ2luX3NyYyBlbWFjcy1saXNwCisgIChyZXF1 aXJlICdvcmctYXR0YWNoLWdpdCkKKyMrZW5kX3NyYwogCisqKiogQXR0YWNoIGZyb20gRGlyZWQK ICMrY2luZGV4OiBhdHRhY2ggZnJvbSBEaXJlZAogIytmaW5kZXg6IG9yZy1hdHRhY2gtZGlyZWQt dG8tc3VidHJlZQogSXQgaXMgcG9zc2libGUgdG8gYXR0YWNoIGZpbGVzIHRvIGEgc3VidHJlZSBm cm9tIGEgRGlyZWQgYnVmZmVyLiAgVG8KQEAgLTc4MzIsMjQ5ICs4MjkyLDYgQEAgdmFsaWQgY29u dGVudHM6IH5vcmctcHJvdG9jb2wtY3JlYXRlfiBhbmQKIH5vcmctcHJvdG9jb2wtY3JlYXRlLWZv ci1vcmd+LiAgVGhlIGxhdHRlciBpcyBvZiB1c2UgaWYgeW91J3JlIGVkaXRpbmcKIGFuIE9yZyBm aWxlIHRoYXQgaXMgcGFydCBvZiBhIHB1Ymxpc2hpbmcgcHJvamVjdC4KIAotKiogUmVmaWxlIGFu ZCBDb3B5Ci06UFJPUEVSVElFUzoKLTpERVNDUklQVElPTjogTW92aW5nL2NvcHlpbmcgYSB0cmVl IGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIuCi06RU5EOgotIytjaW5kZXg6IHJlZmlsaW5nIG5v dGVzCi0jK2NpbmRleDogY29weWluZyBub3RlcwotCi1XaGVuIHJldmlld2luZyB0aGUgY2FwdHVy ZWQgZGF0YSwgeW91IG1heSB3YW50IHRvIHJlZmlsZSBvciB0byBjb3B5Ci1zb21lIG9mIHRoZSBl bnRyaWVzIGludG8gYSBkaWZmZXJlbnQgbGlzdCwgZm9yIGV4YW1wbGUgaW50byBhIHByb2plY3Qu Ci1DdXR0aW5nLCBmaW5kaW5nIHRoZSByaWdodCBsb2NhdGlvbiwgYW5kIHRoZW4gcGFzdGluZyB0 aGUgbm90ZSBpcwotY3VtYmVyc29tZS4gIFRvIHNpbXBsaWZ5IHRoaXMgcHJvY2VzcywgeW91IGNh biB1c2UgdGhlIGZvbGxvd2luZwotc3BlY2lhbCBjb21tYW5kOgotCi0tIHt7e2tiZChDLWMgQy13 KX19fSAofm9yZy1yZWZpbGV+KSA6OgotCi0gICMra2luZGV4OiBDLWMgQy13Ci0gICMrZmluZGV4 OiBvcmctcmVmaWxlCi0gICMrdmluZGV4OiBvcmctcmV2ZXJzZS1ub3RlLW9yZGVyCi0gICMrdmlu ZGV4OiBvcmctcmVmaWxlLXRhcmdldHMKLSAgIyt2aW5kZXg6IG9yZy1yZWZpbGUtdXNlLW91dGxp bmUtcGF0aAotICAjK3ZpbmRleDogb3JnLW91dGxpbmUtcGF0aC1jb21wbGV0ZS1pbi1zdGVwcwot ICAjK3ZpbmRleDogb3JnLXJlZmlsZS1hbGxvdy1jcmVhdGluZy1wYXJlbnQtbm9kZXMKLSAgIyt2 aW5kZXg6IG9yZy1sb2ctcmVmaWxlCi0gIFJlZmlsZSB0aGUgZW50cnkgb3IgcmVnaW9uIGF0IHBv aW50LiAgVGhpcyBjb21tYW5kIG9mZmVycyBwb3NzaWJsZQotICBsb2NhdGlvbnMgZm9yIHJlZmls aW5nIHRoZSBlbnRyeSBhbmQgbGV0cyB5b3Ugc2VsZWN0IG9uZSB3aXRoCi0gIGNvbXBsZXRpb24u ICBUaGUgaXRlbSAob3IgYWxsIGl0ZW1zIGluIHRoZSByZWdpb24pIGlzIGZpbGVkIGJlbG93Ci0g IHRoZSB0YXJnZXQgaGVhZGluZyBhcyBhIHN1Yml0ZW0uICBEZXBlbmRpbmcgb24KLSAgfm9yZy1y ZXZlcnNlLW5vdGUtb3JkZXJ+LCBpdCBpcyBlaXRoZXIgdGhlIGZpcnN0IG9yIGxhc3Qgc3ViaXRl bS4KLQotICBCeSBkZWZhdWx0LCBhbGwgbGV2ZWwgMSBoZWFkbGluZXMgaW4gdGhlIGN1cnJlbnQg YnVmZmVyIGFyZQotICBjb25zaWRlcmVkIHRvIGJlIHRhcmdldHMsIGJ1dCB5b3UgY2FuIGhhdmUg bW9yZSBjb21wbGV4IGRlZmluaXRpb25zCi0gIGFjcm9zcyBhIG51bWJlciBvZiBmaWxlcy4gIFNl ZSB0aGUgdmFyaWFibGUgfm9yZy1yZWZpbGUtdGFyZ2V0c34gZm9yCi0gIGRldGFpbHMuICBJZiB5 b3Ugd291bGQgbGlrZSB0byBzZWxlY3QgYSBsb2NhdGlvbiB2aWEKLSAgYSBmaWxlLXBhdGgtbGlr ZSBjb21wbGV0aW9uIGFsb25nIHRoZSBvdXRsaW5lIHBhdGgsIHNlZSB0aGUKLSAgdmFyaWFibGVz IH5vcmctcmVmaWxlLXVzZS1vdXRsaW5lLXBhdGh+IGFuZAotICB+b3JnLW91dGxpbmUtcGF0aC1j b21wbGV0ZS1pbi1zdGVwc34uICBJZiB5b3Ugd291bGQgbGlrZSB0byBiZSBhYmxlCi0gIHRvIGNy ZWF0ZSBuZXcgbm9kZXMgYXMgbmV3IHBhcmVudHMgZm9yIHJlZmlsaW5nIG9uIHRoZSBmbHksIGNo ZWNrCi0gIHRoZSB2YXJpYWJsZSB+b3JnLXJlZmlsZS1hbGxvdy1jcmVhdGluZy1wYXJlbnQtbm9k ZXN+LiAgV2hlbiB0aGUKLSAgdmFyaWFibGUgfm9yZy1sb2ctcmVmaWxlfltmbjo4OF0gaXMgc2V0 LCBhIHRpbWVzdGFtcCBvciBhIG5vdGUgaXMKLSAgcmVjb3JkZWQgd2hlbmV2ZXIgYW4gZW50cnkg aXMgcmVmaWxlZC4KLQotLSB7e3trYmQoQy11IEMtYyBDLXcpfX19IDo6Ci0KLSAgIytraW5kZXg6 IEMtdSBDLWMgQy13Ci0gIFVzZSB0aGUgcmVmaWxlIGludGVyZmFjZSB0byBqdW1wIHRvIGEgaGVh ZGluZy4KLQotLSB7e3trYmQoQy11IEMtdSBDLWMgQy13KX19fSAofm9yZy1yZWZpbGUtZ290by1s YXN0LXN0b3JlZH4pIDo6Ci0KLSAgIytraW5kZXg6IEMtdSBDLXUgQy1jIEMtdwotICAjK2ZpbmRl eDogb3JnLXJlZmlsZS1nb3RvLWxhc3Qtc3RvcmVkCi0gIEp1bXAgdG8gdGhlIGxvY2F0aW9uIHdo ZXJlIH5vcmctcmVmaWxlfiBsYXN0IG1vdmVkIGEgdHJlZSB0by4KLQotLSB7e3trYmQoQy0yIEMt YyBDLXcpfX19IDo6Ci0KLSAgIytraW5kZXg6IEMtMiBDLWMgQy13Ci0gIFJlZmlsZSBhcyB0aGUg Y2hpbGQgb2YgdGhlIGl0ZW0gY3VycmVudGx5IGJlaW5nIGNsb2NrZWQuCi0KLS0ge3t7a2JkKEMt MyBDLWMgQy13KX19fSA6OgotCi0gICMra2luZGV4OiBDLTMgQy1jIEMtdwotICAjK3ZpbmRleDog b3JnLXJlZmlsZS1rZWVwCi0gIFJlZmlsZSBhbmQga2VlcCB0aGUgZW50cnkgaW4gcGxhY2UuICBB bHNvIHNlZSB+b3JnLXJlZmlsZS1rZWVwfiB0bwotICBtYWtlIHRoaXMgdGhlIGRlZmF1bHQgYmVo YXZpb3IsIGFuZCBiZXdhcmUgdGhhdCB0aGlzIG1heSByZXN1bHQgaW4KLSAgZHVwbGljYXRlZCA9 SUQ9IHByb3BlcnRpZXMuCi0KLS0ge3t7a2JkKEMtMCBDLWMgQy13KX19fSBvciB7e3trYmQoQy11 IEMtdSBDLXUgQy1jIEMtdyl9fX0gKH5vcmctcmVmaWxlLWNhY2hlLWNsZWFyfikgOjoKLQotICAj K2tpbmRleDogQy11IEMtdSBDLXUgQy1jIEMtdwotICAjK2tpbmRleDogQy0wIEMtYyBDLXcKLSAg IytmaW5kZXg6IG9yZy1yZWZpbGUtY2FjaGUtY2xlYXIKLSAgIyt2aW5kZXg6IG9yZy1yZWZpbGUt dXNlLWNhY2hlCi0gIENsZWFyIHRoZSB0YXJnZXQgY2FjaGUuICBDYWNoaW5nIG9mIHJlZmlsZSB0 YXJnZXRzIGNhbiBiZSB0dXJuZWQgb24KLSAgYnkgc2V0dGluZyB+b3JnLXJlZmlsZS11c2UtY2Fj aGV+LiAgVG8gbWFrZSB0aGUgY29tbWFuZCBzZWUgbmV3Ci0gIHBvc3NpYmxlIHRhcmdldHMsIHlv dSBoYXZlIHRvIGNsZWFyIHRoZSBjYWNoZSB3aXRoIHRoaXMgY29tbWFuZC4KLQotLSB7e3trYmQo Qy1jIE0tdyl9fX0gKH5vcmctY29weX4pIDo6Ci0KLSAgIytraW5kZXg6IEMtYyBNLXcKLSAgIytm aW5kZXg6IG9yZy1jb3B5Ci0gIENvcHlpbmcgd29ya3MgbGlrZSByZWZpbGluZywgZXhjZXB0IHRo YXQgdGhlIG9yaWdpbmFsIG5vdGUgaXMgbm90Ci0gIGRlbGV0ZWQuCi0KLSoqIEFyY2hpdmluZwot OlBST1BFUlRJRVM6Ci06REVTQ1JJUFRJT046IFdoYXQgdG8gZG8gd2l0aCBmaW5pc2hlZCBwcm9k dWN0cy4KLTpFTkQ6Ci0jK2NpbmRleDogYXJjaGl2aW5nCi0KLVdoZW4gYSBwcm9qZWN0IHJlcHJl c2VudGVkIGJ5IGEgKHN1Yil0cmVlIGlzIGZpbmlzaGVkLCB5b3UgbWF5IHdhbnQgdG8KLW1vdmUg dGhlIHRyZWUgb3V0IG9mIHRoZSB3YXkgYW5kIHRvIHN0b3AgaXQgZnJvbSBjb250cmlidXRpbmcg dG8gdGhlCi1hZ2VuZGEuICBBcmNoaXZpbmcgaXMgaW1wb3J0YW50IHRvIGtlZXAgeW91ciB3b3Jr aW5nIGZpbGVzIGNvbXBhY3QgYW5kCi1nbG9iYWwgc2VhcmNoZXMgbGlrZSB0aGUgY29uc3RydWN0 aW9uIG9mIGFnZW5kYSB2aWV3cyBmYXN0LgotCi0tIHt7e2tiZChDLWMgQy14IEMtYSl9fX0gKH5v cmctYXJjaGl2ZS1zdWJ0cmVlLWRlZmF1bHR+KSA6OgotCi0gICMra2luZGV4OiBDLWMgQy14IEMt YQotICAjK2ZpbmRleDogb3JnLWFyY2hpdmUtc3VidHJlZS1kZWZhdWx0Ci0gICMrdmluZGV4OiBv cmctYXJjaGl2ZS1kZWZhdWx0LWNvbW1hbmQKLSAgQXJjaGl2ZSB0aGUgY3VycmVudCBlbnRyeSB1 c2luZyB0aGUgY29tbWFuZCBzcGVjaWZpZWQgaW4gdGhlCi0gIHZhcmlhYmxlIH5vcmctYXJjaGl2 ZS1kZWZhdWx0LWNvbW1hbmR+LgotCi0qKiogTW92aW5nIGEgdHJlZSB0byBhbiBhcmNoaXZlIGZp bGUKLTpQUk9QRVJUSUVTOgotOkRFU0NSSVBUSU9OOiBNb3ZpbmcgYSB0cmVlIHRvIGFuIGFyY2hp dmUgZmlsZS4KLTpBTFRfVElUTEU6IE1vdmluZyBzdWJ0cmVlcwotOkVORDoKLSMrY2luZGV4OiBl eHRlcm5hbCBhcmNoaXZpbmcKLQotVGhlIG1vc3QgY29tbW9uIGFyY2hpdmluZyBhY3Rpb24gaXMg dG8gbW92ZSBhIHByb2plY3QgdHJlZSB0byBhbm90aGVyCi1maWxlLCB0aGUgYXJjaGl2ZSBmaWxl LgotCi0tIHt7e2tiZChDLWMgQy14IEMtcyl9fX0gb3Igc2hvcnQge3t7a2JkKEMtYyAkKX19fSAo fm9yZy1hcmNoaXZlLXN1YnRyZWV+KSA6OgotCi0gICMra2luZGV4OiBDLWMgQy14IEMtcwotICAj K2tpbmRleDogQy1jICQKLSAgIytmaW5kZXg6IG9yZy1hcmNoaXZlLXN1YnRyZWUKLSAgIyt2aW5k ZXg6IG9yZy1hcmNoaXZlLWxvY2F0aW9uCi0gIEFyY2hpdmUgdGhlIHN1YnRyZWUgc3RhcnRpbmcg YXQgcG9pbnQgcG9zaXRpb24gdG8gdGhlIGxvY2F0aW9uIGdpdmVuCi0gIGJ5IH5vcmctYXJjaGl2 ZS1sb2NhdGlvbn4uCi0KLS0ge3t7a2JkKEMtdSBDLWMgQy14IEMtcyl9fX0gOjoKLQotICAjK2tp bmRleDogQy11IEMtYyBDLXggQy1zCi0gIENoZWNrIGlmIGFueSBkaXJlY3QgY2hpbGRyZW4gb2Yg dGhlIGN1cnJlbnQgaGVhZGxpbmUgY291bGQgYmUgbW92ZWQKLSAgdG8gdGhlIGFyY2hpdmUuICBU byBkbyB0aGlzLCBjaGVjayBlYWNoIHN1YnRyZWUgZm9yIG9wZW4gVE9ETwotICBlbnRyaWVzLiAg SWYgbm9uZSBpcyBmb3VuZCwgdGhlIGNvbW1hbmQgb2ZmZXJzIHRvIG1vdmUgaXQgdG8gdGhlCi0g IGFyY2hpdmUgbG9jYXRpb24uICBJZiBwb2ludCBpcyAvbm90LyBvbiBhIGhlYWRsaW5lIHdoZW4g dGhpcyBjb21tYW5kCi0gIGlzIGludm9rZWQsIGNoZWNrIGxldmVsIDEgdHJlZXMuCi0KLS0ge3t7 a2JkKEMtdSBDLXUgQy1jIEMteCBDLXMpfX19IDo6Ci0KLSAgIytraW5kZXg6IEMtdSBDLXUgQy1j IEMteCBDLXMKLSAgQXMgYWJvdmUsIGJ1dCBjaGVjayBzdWJ0cmVlIGZvciB0aW1lc3RhbXBzIGlu c3RlYWQgb2YgVE9ETyBlbnRyaWVzLgotICBUaGUgY29tbWFuZCBvZmZlcnMgdG8gYXJjaGl2ZSB0 aGUgc3VidHJlZSBpZiBpdCAvZG9lcy8gY29udGFpbgotICBhIHRpbWVzdGFtcCwgYW5kIHRoYXQg dGltZXN0YW1wIGlzIGluIHRoZSBwYXN0LgotCi0jK2NpbmRleDogYXJjaGl2ZSBsb2NhdGlvbnMK LVRoZSBkZWZhdWx0IGFyY2hpdmUgbG9jYXRpb24gaXMgYSBmaWxlIGluIHRoZSBzYW1lIGRpcmVj dG9yeSBhcyB0aGUKLWN1cnJlbnQgZmlsZSwgd2l0aCB0aGUgbmFtZSBkZXJpdmVkIGJ5IGFwcGVu ZGluZyA9X2FyY2hpdmU9IHRvIHRoZQotY3VycmVudCBmaWxlIG5hbWUuICBZb3UgY2FuIGFsc28g Y2hvb3NlIHdoYXQgaGVhZGluZyB0byBmaWxlIGFyY2hpdmVkCi1pdGVtcyB1bmRlciwgd2l0aCB0 aGUgcG9zc2liaWxpdHkgdG8gYWRkIHRoZW0gdG8gYSBkYXRldHJlZSBpbiBhIGZpbGUuCi1Gb3Ig aW5mb3JtYXRpb24gYW5kIGV4YW1wbGVzIG9uIGhvdyB0byBzcGVjaWZ5IHRoZSBmaWxlIGFuZCB0 aGUKLWhlYWRpbmcsIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBzdHJpbmcgb2YgdGhlIHZhcmlhYmxl Ci1+b3JnLWFyY2hpdmUtbG9jYXRpb25+LgotCi1UaGVyZSBpcyBhbHNvIGFuIGluLWJ1ZmZlciBv cHRpb24gZm9yIHNldHRpbmcgdGhpcyB2YXJpYWJsZSwgZm9yCi1leGFtcGxlOgotCi0jK2NpbmRl eDogQHNhbXB7QVJDSElWRX0sIGtleXdvcmQKLTogIytBUkNISVZFOiAlc19kb25lOjoKLQotIytj aW5kZXg6IEFSQ0hJVkUsIHByb3BlcnR5Ci1JZiB5b3Ugd291bGQgbGlrZSB0byBoYXZlIGEgc3Bl Y2lhbCBhcmNoaXZlIGxvY2F0aW9uIGZvciBhIHNpbmdsZQotZW50cnkgb3IgYSAoc3ViKXRyZWUs IGdpdmUgdGhlIGVudHJ5IGFuID1BUkNISVZFPSBwcm9wZXJ0eSB3aXRoIHRoZQotbG9jYXRpb24g YXMgdGhlIHZhbHVlIChzZWUgW1sqUHJvcGVydGllcyBhbmQgQ29sdW1uc11dKS4KLQotIyt2aW5k ZXg6IG9yZy1hcmNoaXZlLXNhdmUtY29udGV4dC1pbmZvCi1XaGVuIGEgc3VidHJlZSBpcyBtb3Zl ZCwgaXQgcmVjZWl2ZXMgYSBudW1iZXIgb2Ygc3BlY2lhbCBwcm9wZXJ0aWVzCi10aGF0IHJlY29y ZCBjb250ZXh0IGluZm9ybWF0aW9uIGxpa2UgdGhlIGZpbGUgZnJvbSB3aGVyZSB0aGUgZW50cnkK LWNhbWUsIGl0cyBvdXRsaW5lIHBhdGggdGhlIGFyY2hpdmluZyB0aW1lIGV0Yy4gIENvbmZpZ3Vy ZSB0aGUgdmFyaWFibGUKLX5vcmctYXJjaGl2ZS1zYXZlLWNvbnRleHQtaW5mb34gdG8gYWRqdXN0 IHRoZSBhbW91bnQgb2YgaW5mb3JtYXRpb24KLWFkZGVkLgotCi0qKiogSW50ZXJuYWwgYXJjaGl2 aW5nCi06UFJPUEVSVElFUzoKLTpERVNDUklQVElPTjogU3dpdGNoIG9mZiBhIHRyZWUgYnV0IGtl ZXAgaXQgaW4gdGhlIGZpbGUuCi06RU5EOgotCi0jK2NpbmRleDogQHNhbXB7QVJDSElWRX0sIHRh ZwotSWYgeW91IHdhbnQgdG8ganVzdCBzd2l0Y2ggb2ZmLS0tZm9yIGFnZW5kYSB2aWV3cy0tLWNl cnRhaW4gc3VidHJlZXMKLXdpdGhvdXQgbW92aW5nIHRoZW0gdG8gYSBkaWZmZXJlbnQgZmlsZSwg eW91IGNhbiB1c2UgdGhlID1BUkNISVZFPQotdGFnLgotCi1BIGhlYWRsaW5lIHRoYXQgaXMgbWFy a2VkIHdpdGggdGhlID1BUkNISVZFPSB0YWcgKHNlZSBbWypUYWdzXV0pIHN0YXlzIGF0Ci1pdHMg bG9jYXRpb24gaW4gdGhlIG91dGxpbmUgdHJlZSwgYnV0IGJlaGF2ZXMgaW4gdGhlIGZvbGxvd2lu ZyB3YXk6Ci0KLS0KLSAgIyt2aW5kZXg6IG9yZy1jeWNsZS1vcGVuLWFyY2hpdmVkLXRyZWVzCi0g IEl0IGRvZXMgbm90IG9wZW4gd2hlbiB5b3UgYXR0ZW1wdCB0byBkbyBzbyB3aXRoIGEgdmlzaWJp bGl0eSBjeWNsaW5nCi0gIGNvbW1hbmQgKHNlZSBbWypWaXNpYmlsaXR5IEN5Y2xpbmddXSkuICBZ b3UgY2FuIGZvcmNlIGN5Y2xpbmcgYXJjaGl2ZWQKLSAgc3VidHJlZXMgd2l0aCB7e3trYmQoQy1U QUIpfX19LCBvciBieSBzZXR0aW5nIHRoZSBvcHRpb24KLSAgfm9yZy1jeWNsZS1vcGVuLWFyY2hp dmVkLXRyZWVzfi4gIEFsc28gbm9ybWFsIG91dGxpbmUgY29tbWFuZHMsIGxpa2UKLSAgfm91dGxp bmUtc2hvdy1hbGx+LCBvcGVuIGFyY2hpdmVkIHN1YnRyZWVzLgotCi0tCi0gICMrdmluZGV4OiBv cmctc3BhcnNlLXRyZWUtb3Blbi1hcmNoaXZlZC10cmVlcwotICBEdXJpbmcgc3BhcnNlIHRyZWUg Y29uc3RydWN0aW9uIChzZWUgW1sqU3BhcnNlIFRyZWVzXV0pLCBtYXRjaGVzIGluCi0gIGFyY2hp dmVkIHN1YnRyZWVzIGFyZSBub3QgZXhwb3NlZCwgdW5sZXNzIHlvdSBjb25maWd1cmUgdGhlIG9w dGlvbgotICB+b3JnLXNwYXJzZS10cmVlLW9wZW4tYXJjaGl2ZWQtdHJlZXN+LgotCi0tCi0gICMr dmluZGV4OiBvcmctYWdlbmRhLXNraXAtYXJjaGl2ZWQtdHJlZXMKLSAgRHVyaW5nIGFnZW5kYSB2 aWV3IGNvbnN0cnVjdGlvbiAoc2VlIFtbKkFnZW5kYSBWaWV3c11dKSwgdGhlIGNvbnRlbnQgb2YK LSAgYXJjaGl2ZWQgdHJlZXMgaXMgaWdub3JlZCB1bmxlc3MgeW91IGNvbmZpZ3VyZSB0aGUgb3B0 aW9uCi0gIH5vcmctYWdlbmRhLXNraXAtYXJjaGl2ZWQtdHJlZXN+LCBpbiB3aGljaCBjYXNlIHRo ZXNlIHRyZWVzIGFyZQotICBhbHdheXMgaW5jbHVkZWQuICBJbiB0aGUgYWdlbmRhIHlvdSBjYW4g cHJlc3Mge3t7a2JkKHYgYSl9fX0gdG8gZ2V0Ci0gIGFyY2hpdmVzIHRlbXBvcmFyaWx5IGluY2x1 ZGVkLgotCi0tCi0gICMrdmluZGV4OiBvcmctZXhwb3J0LXdpdGgtYXJjaGl2ZWQtdHJlZXMKLSAg QXJjaGl2ZWQgdHJlZXMgYXJlIG5vdCBleHBvcnRlZCAoc2VlIFtbKkV4cG9ydGluZ11dKSwgb25s eSB0aGUgaGVhZGxpbmUKLSAgaXMuICBDb25maWd1cmUgdGhlIGRldGFpbHMgdXNpbmcgdGhlIHZh cmlhYmxlCi0gIH5vcmctZXhwb3J0LXdpdGgtYXJjaGl2ZWQtdHJlZXN+LgotCi0tCi0gICMrdmlu ZGV4OiBvcmctY29sdW1ucy1za2lwLWFyY2hpdmVkLXRyZWVzCi0gIEFyY2hpdmVkIHRyZWVzIGFy ZSBleGNsdWRlZCBmcm9tIGNvbHVtbiB2aWV3IHVubGVzcyB0aGUgdmFyaWFibGUKLSAgfm9yZy1j b2x1bW5zLXNraXAtYXJjaGl2ZWQtdHJlZXN+IGlzIGNvbmZpZ3VyZWQgdG8gfm5pbH4uCi0KLVRo ZSBmb2xsb3dpbmcgY29tbWFuZHMgaGVscCBtYW5hZ2UgdGhlID1BUkNISVZFPSB0YWc6Ci0KLS0g e3t7a2JkKEMtYyBDLXggYSl9fX0gKH5vcmctdG9nZ2xlLWFyY2hpdmUtdGFnfikgOjoKLQotICAj K2tpbmRleDogQy1jIEMteCBhCi0gICMrZmluZGV4OiBvcmctdG9nZ2xlLWFyY2hpdmUtdGFnCi0g IFRvZ2dsZSB0aGUgYXJjaGl2ZSB0YWcgZm9yIHRoZSBjdXJyZW50IGhlYWRsaW5lLiAgV2hlbiB0 aGUgdGFnIGlzCi0gIHNldCwgdGhlIGhlYWRsaW5lIGNoYW5nZXMgdG8gYSBzaGFkb3dlZCBmYWNl LCBhbmQgdGhlIHN1YnRyZWUgYmVsb3cKLSAgaXQgaXMgaGlkZGVuLgotCi0tIHt7e2tiZChDLXUg Qy1jIEMteCBhKX19fSA6OgotCi0gICMra2luZGV4OiBDLXUgQy1jIEMteCBhCi0gIENoZWNrIGlm IGFueSBkaXJlY3QgY2hpbGRyZW4gb2YgdGhlIGN1cnJlbnQgaGVhZGxpbmUgc2hvdWxkIGJlCi0g IGFyY2hpdmVkLiAgVG8gZG8gdGhpcywgY2hlY2sgZWFjaCBzdWJ0cmVlIGZvciBvcGVuIFRPRE8g ZW50cmllcy4gIElmCi0gIG5vbmUgaXMgZm91bmQsIHRoZSBjb21tYW5kIG9mZmVycyB0byBzZXQg dGhlID1BUkNISVZFPSB0YWcgZm9yIHRoZQotICBjaGlsZC4gIElmIHBvaW50IGlzIC9ub3QvIG9u IGEgaGVhZGxpbmUgd2hlbiB0aGlzIGNvbW1hbmQgaXMKLSAgaW52b2tlZCwgY2hlY2sgdGhlIGxl dmVsIDEgdHJlZXMuCi0KLS0ge3t7a2JkKEMtVEFCKX19fSAofm9yZy1mb3JjZS1jeWNsZS1hcmNo aXZlZH4pIDo6Ci0KLSAgIytraW5kZXg6IEMtVEFCCi0gIEN5Y2xlIGEgdHJlZSBldmVuIGlmIGl0 IGlzIHRhZ2dlZCB3aXRoID1BUkNISVZFPS4KLQotLSB7e3trYmQoQy1jIEMteCBBKX19fSAofm9y Zy1hcmNoaXZlLXRvLWFyY2hpdmUtc2libGluZ34pIDo6Ci0KLSAgIytraW5kZXg6IEMtYyBDLXgg QQotICAjK2ZpbmRleDogb3JnLWFyY2hpdmUtdG8tYXJjaGl2ZS1zaWJsaW5nCi0gIE1vdmUgdGhl IGN1cnJlbnQgZW50cnkgdG8gdGhlIC9BcmNoaXZlIFNpYmxpbmcvLiAgVGhpcyBpcyBhIHNpYmxp bmcKLSAgb2YgdGhlIGVudHJ5IHdpdGggdGhlIGhlYWRpbmcgPUFyY2hpdmU9IGFuZCB0aGUgYXJj aGl2ZSB0YWcuICBUaGUKLSAgZW50cnkgYmVjb21lcyBhIGNoaWxkIG9mIHRoYXQgc2libGluZyBh bmQgaW4gdGhpcyB3YXkgcmV0YWlucyBhIGxvdAotICBvZiBpdHMgb3JpZ2luYWwgY29udGV4dCwg aW5jbHVkaW5nIGluaGVyaXRlZCB0YWdzIGFuZCBhcHByb3hpbWF0ZQotICBwb3NpdGlvbiBpbiB0 aGUgb3V0bGluZS4KLQogKiBBZ2VuZGEgVmlld3MKIDpQUk9QRVJUSUVTOgogOkRFU0NSSVBUSU9O OiBDb2xsZWN0aW5nIGluZm9ybWF0aW9uIGludG8gdmlld3MuCkBAIC0yMTI0NCw3ICsyMTQ2MSw3 IEBAIGFjY2Vzc2VkIGluIGNhcHR1cmUgdGVtcGxhdGVzIGluIGEgc2ltaWxhciB3YXkuCiB+b3Jn LWxpbmstZnJvbS11c2VyLXJlZ2V4cH4uCiAKIFtmbjo4N10gSWYgeW91IG1vdmUgZW50cmllcyBv ciBPcmcgZmlsZXMgZnJvbSBvbmUgZGlyZWN0b3J5IHRvCi1hbm90aGVyLCB5b3UgbWF5IHdhbnQg dG8gY29uZmlndXJlIH5vcmctYXR0YWNoLWRpcmVjdG9yeX4gdG8gY29udGFpbgorYW5vdGhlciwg eW91IG1heSB3YW50IHRvIGNvbmZpZ3VyZSB+b3JnLWF0dGFjaC1pZC1kaXJ+IHRvIGNvbnRhaW4K IGFuIGFic29sdXRlIHBhdGguCiAKIFtmbjo4OF0gTm90ZSB0aGUgY29ycmVzcG9uZGluZyA9U1RB UlRVUD0gb3B0aW9ucyA9bG9ncmVmaWxlPSwKZGlmZiAtLWdpdCBhL2V0Yy9PUkctTkVXUyBiL2V0 Yy9PUkctTkVXUwppbmRleCA0YWJlY2RmYmMuLmJiZDlkYzk3NSAxMDA2NDQKLS0tIGEvZXRjL09S Ry1ORVdTCisrKyBiL2V0Yy9PUkctTkVXUwpAQCAtMTExLDcgKzExMSw5NiBAQCBldmVyeSBvdGhl ciBiYWNrZW5kIHdhcyBhbHJlYWR5IHVzaW5nIHhjb2xvciB0byBzZXQgZmcgYW5kIGJnLCB0aGUg Q0xJCiBhbHRlcm5hdGl2ZSB3YXMgcmVtb3ZlZCBhbmQgdGhlcmUgaXMgbm8gbW9yZSBhIDp1c2Ut eGNvbG9yIG9wdGlvbnMKIHNpbmNlIG5vdyBpdCdzIGltcGxpY2l0bHkgYWx3YXlzIHRydWUuCiAK KyoqKiBPcmctQXR0YWNoIEdpdCBjb21taXQKK1tbKk9yZy1BdHRhY2ggaGFzIGJlZW4gcmVmYWN0 b3JlZCBhbmQgZXh0ZW5kZWRdW1JlZmFjdG9yaW5nIG9mIE9yZy1BdHRhY2hdXSBhZmZlY3RlZCB0 aGUgR2l0IGNvbW1pdCBmdW5jdGlvbmFsaXR5LiAgTm90CittdWNoLCBidXQgdGhlIGZvbGxvd2lu ZyBjaGFuZ2VzIGFyZSByZXF1aXJlZCBpZiB5b3Ugc3RpbGwgbmVlZCB0bworYXV0by1jb21taXQg YXR0YWNobWVudHMgdG8gZ2l0OgorCistIEN1c3RvbWl6YXRpb24gb2Ygfm9yZy1hdHRhY2gtYW5u ZXgtYXV0by1nZXR+IG5lZWRzIHRvIGJlIHJlbmFtZWQgdG8KKyAgfm9yZy1hdHRhY2gtZ2l0LWFu bmV4LWF1dG8tZ2V0fi4KKworLSBDdXN0b21pemF0aW9uIG9mIH5vcmctYXR0YWNoLWNvbW1pdH4g aXMgbm8gbG9uZ2VyIG5lZWRlZC4gIEluc3RlYWQKKyAgb25lIG5lZWQgdG8gcmVxdWlyZSB0aGUg PW9yZy1hdHRhY2gtZ2l0PSBtb2R1bGUgaW4gdGhlIHN0YXJ0dXAuCisKICoqIE5ldyBmZWF0dXJl cworKioqIE9yZy1BdHRhY2ggaGFzIGJlZW4gcmVmYWN0b3JlZCBhbmQgZXh0ZW5kZWQKK09yZyBh dHRhY2ggaGFzIGJlZW4gcmVmYWN0b3JlZCBhbmQgdGhlIGZ1bmN0aW9uYWxpdHkgZXh0ZW5kZWQu ICBJdAorc2hvdWxkIG5vdyBiZSBlYXNpZXIgdG8gdW5kZXJzdGFuZCBob3cgaXQgd29ya3MuICBB IGZldyBpbXByb3ZlbWVudHMKK2FuZCBleHRyYSBvcHRpb25zIGhhdmUgYmVlbiBhZGRlZCBhcyB3 ZWxsLgorCitGcm9tIHRoZSBpbml0aWFsIGNvbW1lbnQgaW4gb3JnLWF0dGFjaCBzb3VyY2UtY29k ZToKKworLSBBdHRhY2htZW50cyBhcmUgbWFuYWdlZCBlaXRoZXIgYnkgdXNpbmcgYSBjdXN0b20g cHJvcGVydHkgRElSIG9yIGJ5CisgIHVzaW5nIHByb3BlcnR5IElEIGZyb20gb3JnLWlkLiAgV2hl biBESVIgaXMgZGVmaW5lZCwgYSBsb2NhdGlvbiBpbgorICB0aGUgZmlsZXN5c3RlbSBpcyBkaXJl Y3RseSBhdHRhY2hlZCB0byB0aGUgb3V0bGluZSBub2RlLiAgV2hlbgorICBvcmctaWQgaXMgdXNl ZCwgYXR0YWNobWVudHMgYXJlIHN0b3JlZCBpbiBhIGZvbGRlciBuYW1lZCBhZnRlciB0aGUKKyAg SUQsIGluIGEgbG9jYXRpb24gZGVmaW5lZCBieSB+b3JnLWF0dGFjaC1pZC1kaXJ+LiAgRElSIGhh cworICBwcmVjZWRlbmNlIG92ZXIgSUQgd2hlbiBib3RoIHBhcmFtZXRlcnMgYXJlIGRlZmluZWQg Zm9yIHRoZSBjdXJyZW50CisgIG91dGxpbmUgbm9kZSAoYWxzbyB3aGVuIGluaGVyaXRlZCBwYXJh bWV0ZXJzIGFyZSB0YWtlbiBpbnRvCisgIGFjY291bnQpLgorCitGcm9tIG5vdyBvbiBpbmhlcml0 YW5jZSByZXF1aXJlcyBubyBleHRyYSBwcm9wZXJ0eSBhbmQgd2lsbCBhZGhlcmUgdG8KK35vcmct YXR0YWNoLXVzZS1pbmhlcml0YW5jZX4gYnkgZGVmYXVsdC4gIEluaGVyaXRhbmNlIGNhbiBiZQor Y3VzdG9taXplZCB0byBhbHdheXMgYmUgYWN0aXZhdGVkIG9yIG5ldmVyIGJlIGFjdGl2YXRlZCBp bgorfm9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNlfi4KKworVGhlIEFUVEFDSF9ESVIgcHJvcGVy dHkgaXMgZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgdGhlIHNob3J0ZXIKK3Byb3BlcnR5IERJUi4g IExpbmtzIHRvIGZvbGRlcnMgaW5zaWRlIHRoZSBESVIgcHJvcGVydHkgY2FuIG5vdyBiZQorZGVj bGFyZWQgYXMgcmVsYXRpdmUgbGlua3MuICBUaGlzIGlzIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQs IGJ1dCBjYW4KK2JlIHNldCBpbiB+b3JnLWF0dGFjaC1kaXItcmVsYXRpdmV+LgorCitXaGVuIGFk ZGluZyBuZXcgYXR0YWNobWVudCB0byB0aGUgb3V0bGluZSBub2RlIHRoZSBwcmVmZXJyZWQgd2F5 IG9mCitkb2luZyBzbyBjYW4gYmUgY3VzdG9taXplZC4gIFRha2UgYSBsb29rIGF0Cit+b3JnLWF0 dGFjaC1wcmVmZXJyZWQtbmV3LW1ldGhvZH4uICBJdCBkZWZhdWx0cyB0byB1c2luZyBJRCBzaW5j ZSB0aGF0Cit3YXMgdGhlIGJlaGF2aW91ciBiZWZvcmUgdGhpcyBjaGFuZ2UuCisKK0lmIGJvdGgg RElSIGFuZCBJRCBwcm9wZXJ0aWVzIGFyZSBzZXQgb24gdGhlIHNhbWUgbm9kZSwgRElSIGhhcwor cHJlY2VkZW5jZSBhbmQgd2lsbCBiZSB1c2VkLgorCitPbmUgY2FuIG5vdyBhbHNvIGNob29zZSB0 byBidWlsZCBhdHRhY2htZW50LWRpcmVjdG9yeS1wYXRocyBpbiBhCitjdXN0b21pemVkIHdheS4g IFRoaXMgaXMgYW4gYWR2YW5jZWQgdG9waWMsIGJ1dCBpbiBzb21lIGNhc2UgaXQgbWFrZXMKK3Nl bnNlIHRvIHBhcnNlIGFuIElEIGluIGEgZGlmZmVyZW50IHdheSB0aGFuIHRoZSBkZWZhdWx0IG9u ZS4gIENyZWF0ZQoreW91ciBvd24gZnVuY3Rpb24gYW5kIHVzZSBpdCBpcyB+b3JnLWF0dGFjaC1p ZC10by1wYXRoLWZ1bmN0aW9ufiBpZgoreW91IHdhbnQgdG8gY3VzdG9taXplIHRoZSBJRC1iYXNl ZCBmb2xkZXIgc3RydWN0dXJlLgorCitJZiB5b3UndmUgdXNlZCBBVFRBQ0hfRElSIHByb3BlcnRp ZXMgdG8gbWFuYWdlIGF0dGFjaG1lbnRzLCB1c2UgdGhlCitmb2xsb3dpbmcgY29kZSB0byByZW5h bWUgdGhhdCBwcm9wZXJ0eSB0byBESVIgd2hpY2ggc3VwcG9ydHMgdGhlIHNhbWUKK2Z1bmN0aW9u YWxpdHkuICBBVFRBQ0hfRElSX0lOSEVSSVQgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCBhbmQgaXMK K3JlbW92ZWQuCisKKyMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKKyAgKGRlZnVuIG9yZy11cGRhdGUt YXR0YWNoLXByb3BlcnRpZXMgKCkKKyAgICAgICJDaGFuZ2UgcHJvcGVydGllcyBmb3IgT3JnLUF0 dGFjaC4iCisgICAgICAoaW50ZXJhY3RpdmUpCisgICAgICAob3JnLXdpdGgtcG9pbnQtYXQgMQor CSh3aGlsZSAob3V0bGluZS1uZXh0LWhlYWRpbmcpCisJICAobGV0ICgoRElSIChvcmctLXByb3Bl cnR5LWxvY2FsLXZhbHVlcyAiQVRUQUNIX0RJUiIgbmlsKSkpCisJICAgICh3aGVuIERJUgorCSAg ICAgIChvcmctc2V0LXByb3BlcnR5ICJESVIiIChjYXIgRElSKSkKKwkgICAgICAob3JnLWRlbGV0 ZS1wcm9wZXJ0eSAiQVRUQUNIX0RJUiIpKSkpCisJKG9yZy1kZWxldGUtcHJvcGVydHktZ2xvYmFs bHkgIkFUVEFDSF9ESVJfSU5IRVJJVCIpKSkKKyMrZW5kX3NyYworCitGb3IgdGhvc2Ugd2hvIGhh dGUgYnJlYWtpbmcgY2hhbmdlcywgZXZlbiB0aG91Z2ggdGhlIGNoYW5nZXMgYXJlIG1hZGUKK3Rv IGNsZWFuIHRoaW5ncyB1cDsgZmVhciBub3QuICBBVFRBQ0hfRElSIHdpbGwgc3RpbGwgY29udGlu dWUgdG8gd29yay4KK0l0J3MganVzdCBub3QgZG9jdW1lbnRlZCBhbnkgbG9uZ2VyLiAgV2hlbiB5 b3UgZ2V0IHRoZSBjaGFuY2UsIHJ1biB0aGUKK2NvZGUgYWJvdmUgdG8gY2xlYW4gdGhpbmdzIHVw IGFueXdheXMhCisKKyoqKiogTmV3IGhvb2tzCitUd28gaG9va3MgYXJlIGFkZGVkIHRvIG9yZy1h dHRhY2g6CistIG9yZy1hdHRhY2gtYWZ0ZXItY2hhbmdlLWhvb2sKKy0gb3JnLWF0dGFjaC1vcGVu LWhvb2sKKworVGhleSBhcmUgYWRkZWQgbW9zdGx5IGZvciBpbnRlcm5hbCByZXN0cnVjdHVyaW5n IHB1cnBvc2VzLCBidXQgY2FuCitvZmMuIGJlIHVzZWQgZm9yIG90aGVyIHRoaW5ncyBhcyB3ZWxs LgorCisqKiogTmV3IGxpbmstdHlwZTogQXR0YWNobWVudAorQXR0YWNobWVudC1saW5rcyBhcmUg bm93IGZpcnN0LWNsYXNzIGNpdGl6ZW5zLiAgVGhleSBtaW1pY2sgZmlsZS1saW5rcworaW4gZXZl cnl0aGluZyB0aGV5IGRvIGJ1dCB1c2UgdGhlIGV4aXN0aW5nIGF0dGFjaG1lbnQtZm9sZGVyIGFz IGEgYmFzZQord2hlbiBleHBhbmRpbmcgdGhlIGxpbmtzLiBCb3RoID1ESVI9IGFuZCA9SUQ9IHBy b3BlcnRpZXMgYXJlIHVzZWQgdG8KK3RyeSB0byByZXNvbHZlIHRoZSBsaW5rcywgaW4gZXhhY3Rs eSB0aGUgc2FtZSB3YXkgYXMgT3JnLUF0dGFjaCB1c2VzCit0aG9zZSBwcm9wZXJ0aWVzLgorCiAq KiogSGFuZGxlIG92ZXJsYXkgc3BlY2lmaWNhdGlvbiBmb3Igbm90ZXMgaW4gQmVhbWVyIGV4cG9y dAogCiBUaGlzIGFsaWducyBCZWFtZXIgbm90ZXMgd2l0aCBzbGlkZSBvdmVybGF5cy4KQEAgLTI0 Myw2ICszMzIsMTEgQEAgZHluYW1pYyBibG9jayBpbiB+b3JnLWR5bmFtaWMtYmxvY2stYWxpc3R+ LgogKiogUmVtb3ZlZCBmdW5jdGlvbnMKICoqKiB+b3JnLWJhYmVsLXNldC1jdXJyZW50LXJlc3Vs dC1oYXNofgogKioqIH5vcmctY2FwdHVyZS1pbnNlcnQtdGVtcGxhdGUtaGVyZX4KKyoqKiB+b3Jn LWF0dGFjaC1kaXJlY3Rvcnl+CisKK0l0IGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9m IH5vcmctYXR0YWNoLWlkLWRpcn4gd2hpY2ggaXMgbGVzcworYW1iaWdvdXMgZ2l2ZW4gdGhlIHJl c3RydWN0dXJlZCBvcmctYXR0YWNoLgorCiAqKiBNaXNjZWxsYW5lb3VzCiAqKiogQ2hhbmdlIHNp Z25hdHVyZSBmb3Igfm9yZy1saXN0LXRvLXN1YnRyZWV+CiBUaGUgZnVuY3Rpb24gbm93IGFjY2Vw dHMgdGhlIGxldmVsIG9mIHRoZSBzdWJ0cmVlIGFzIGFuIG9wdGlvbmFsCmRpZmYgLS1naXQgYS9s aXNwL29yZy1hdHRhY2gtZ2l0LmVsIGIvbGlzcC9vcmctYXR0YWNoLWdpdC5lbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmY0MGViOTY2ZAotLS0gL2Rldi9udWxsCisrKyBi L2xpc3Avb3JnLWF0dGFjaC1naXQuZWwKQEAgLTAsMCArMSwxMTcgQEAKKzs7OyBvcmctYXR0YWNo LWdpdC5lbCAtLS0gQXV0b21hdGljIGdpdCBjb21taXQgZXh0ZW50aW9uIHRvIG9yZy1hdHRhY2gg LSotIGxleGljYWwtYmluZGluZzogdDsgLSotCisKKzs7IENvcHlyaWdodCAoQykgMjAxOSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworOzsgT3JpZ2luYWwgQXV0aG9yOiBKb2huIFdp ZWdsZXkgPGpvaG53QG5ld2FydGlzYW5zLmNvbT4KKzs7IFJlc3RydWN0dXJlcjogR3VzdGF2IFdp a3N0csO2bSA8Z3VzdGF2QHdoaWwuc2U+Cis7OyBLZXl3b3Jkczogb3JnIGRhdGEgZ2l0CisKKzs7 IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KKzs7Cis7OyBHTlUgRW1hY3MgaXMgZnJl ZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorOzsgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCis7OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorCis7OyBHTlUgRW1hY3MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OyBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorOzsgYWxvbmcgd2l0aCBH TlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgor Cis7OzsgQ29tbWVudGFyeToKKworOzsgQW4gZXh0ZW50aW9uIHRvIG9yZy1hdHRhY2guICBJZiB0 aGUgYXR0YWNobWVudC1kaXJlY3RvcnkgdG8gYW4KKzs7IG91dGxpbmUgbm9kZSAodXNpbmcgZWl0 aGVyIERJUiBvciBJRCkgaXMgaW5pdGlhbGl6ZWQgYXMgYSBHaXQKKzs7IHJlcG9zaXRvcnksIHRo ZW4gb3JnLWF0dGFjaC1naXQgd2lsbCBhdXRvbWF0aWNhbGx5IGNvbW1pdCBjaGFuZ2VzCis7OyB3 aGVuIGl0IHNlZXMgdGhlbS4KKworOzs7IENvZGU6CisKKyhyZXF1aXJlICdvcmctYXR0YWNoKQor KHJlcXVpcmUgJ3ZjLWdpdCkKKworKGRlZmN1c3RvbSBvcmctYXR0YWNoLWdpdC1hbm5leC1jdXRv ZmYgKCogMzIgMTAyNCkKKyAgIklmIG5vbi1uaWwsIGZpbGVzIGxhcmdlciB0aGFuIHRoaXMgd2ls bCBiZSBhbm5leGVkIGluc3RlYWQgb2Ygc3RvcmVkLiIKKyAgOmdyb3VwICdvcmctYXR0YWNoCisg IDp2ZXJzaW9uICIyNC40IgorICA6cGFja2FnZS12ZXJzaW9uICcoT3JnIC4gIjguMCIpCisgIDp0 eXBlICcoY2hvaWNlCisJICAoY29uc3QgOnRhZyAiTm9uZSIgbmlsKQorCSAgKGludGVnZXIgOnRh ZyAiQnl0ZXMiKSkpCisKKyhkZWZjdXN0b20gb3JnLWF0dGFjaC1naXQtYW5uZXgtYXV0by1nZXQg J2FzaworICAiQ29uZmlybWF0aW9uIHByZWZlcmVuY2UgZm9yIGF1dG9tYXRpY2FsbHkgZ2V0dGlu ZyBhbm5leCBmaWxlcy4KK0lmIFxcPSdhc2ssIHByb21wdCB1c2luZyBgeS1vci1uLXAnLiAgSWYg dCwgYWx3YXlzIGdldC4gIElmIG5pbCwgbmV2ZXIgZ2V0LiIKKyAgOmdyb3VwICdvcmctYXR0YWNo CisgIDpwYWNrYWdlLXZlcnNpb24gJyhPcmcgLiAiOS4wIikKKyAgOnZlcnNpb24gIjI2LjEiCisg IDp0eXBlICcoY2hvaWNlCisJICAoY29uc3QgOnRhZyAiY29uZmlybSB3aXRoIGB5LW9yLW4tcCci IGFzaykKKwkgIChjb25zdCA6dGFnICJhbHdheXMgZ2V0IGZyb20gYW5uZXggaWYgbmVjZXNzYXJ5 IiB0KQorCSAgKGNvbnN0IDp0YWcgIm5ldmVyIGdldCBmcm9tIGFubmV4IiBuaWwpKSkKKworKGRl ZnVuIG9yZy1hdHRhY2gtZ2l0LXVzZS1hbm5leCAoKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgZ2l0 IGFubmV4IGNhbiBiZSB1c2VkLiIKKyAgKGxldCAoKGdpdC1kaXIgKHZjLWdpdC1yb290IChleHBh bmQtZmlsZS1uYW1lIG9yZy1hdHRhY2gtaWQtZGlyKSkpKQorICAgIChhbmQgb3JnLWF0dGFjaC1n aXQtYW5uZXgtY3V0b2ZmCisgICAgICAgICAob3IgKGZpbGUtZXhpc3RzLXAgKGV4cGFuZC1maWxl LW5hbWUgImFubmV4IiBnaXQtZGlyKSkKKyAgICAgICAgICAgICAoZmlsZS1leGlzdHMtcCAoZXhw YW5kLWZpbGUtbmFtZSAiLmdpdC9hbm5leCIgZ2l0LWRpcikpKSkpKQorCisoZGVmdW4gb3JnLWF0 dGFjaC1naXQtYW5uZXgtZ2V0LW1heWJlIChwYXRoKQorICAiQ2FsbCBnaXQgYW5uZXggZ2V0IFBB VEggKHZpYSBzaGVsbCkgaWYgdXNpbmcgZ2l0IGFubmV4LgorU2lnbmFscyBhbiBlcnJvciBpZiB0 aGUgZmlsZSBjb250ZW50IGlzIG5vdCBhdmFpbGFibGUgYW5kIGl0IHdhcyBub3QgcmV0cmlldmVk LiIKKyAgKGxldCogKChkZWZhdWx0LWRpcmVjdG9yeSAoZXhwYW5kLWZpbGUtbmFtZSBvcmctYXR0 YWNoLWlkLWRpcikpCisJIChwYXRoLXJlbGF0aXZlIChmaWxlLXJlbGF0aXZlLW5hbWUgcGF0aCkp KQorICAgICh3aGVuIChhbmQgKG9yZy1hdHRhY2gtZ2l0LXVzZS1hbm5leCkKKwkgICAgICAgKG5v dAorCQkoc3RyaW5nLWVxdWFsCisJCSAiZm91bmQiCisJCSAoc2hlbGwtY29tbWFuZC10by1zdHJp bmcKKwkJICAoZm9ybWF0ICJnaXQgYW5uZXggZmluZCAtLWZvcm1hdD1mb3VuZCAtLWluPWhlcmUg JXMiCisJCQkgIChzaGVsbC1xdW90ZS1hcmd1bWVudCBwYXRoLXJlbGF0aXZlKSkpKSkpCisgICAg ICAobGV0ICgoc2hvdWxkLWdldAorCSAgICAgKGlmIChlcSBvcmctYXR0YWNoLWdpdC1hbm5leC1h dXRvLWdldCAnYXNrKQorCQkgKHktb3Itbi1wIChmb3JtYXQgIlJ1biBnaXQgYW5uZXggZ2V0ICVz PyAiIHBhdGgtcmVsYXRpdmUpKQorCSAgICAgICBvcmctYXR0YWNoLWdpdC1hbm5leC1hdXRvLWdl dCkpKQorCSh1bmxlc3Mgc2hvdWxkLWdldAorCSAgKGVycm9yICJGaWxlICVzIHN0b3JlZCBpbiBn aXQgYW5uZXggYnV0IHVuYXZhaWxhYmxlIiBwYXRoKSkKKwkobWVzc2FnZSAiUnVubmluZyBnaXQg YW5uZXggZ2V0IFwiJXNcIi4iIHBhdGgtcmVsYXRpdmUpCisJKGNhbGwtcHJvY2VzcyAiZ2l0IiBu aWwgbmlsIG5pbCAiYW5uZXgiICJnZXQiIHBhdGgtcmVsYXRpdmUpKSkpKQorCisoZGVmdW4gb3Jn LWF0dGFjaC1naXQtY29tbWl0ICgpCisgICJDb21taXQgY2hhbmdlcyB0byBnaXQgaWYgYG9yZy1h dHRhY2gtaWQtZGlyJyBpcyBwcm9wZXJseSBpbml0aWFsaXplZC4KK1RoaXMgY2hlY2tzIGZvciB0 aGUgZXhpc3RlbmNlIG9mIGEgXCIuZ2l0XCIgZGlyZWN0b3J5IGluIHRoYXQgZGlyZWN0b3J5LiIK KyAgKGxldCogKChkaXIgKGV4cGFuZC1maWxlLW5hbWUgb3JnLWF0dGFjaC1pZC1kaXIpKQorCSAo Z2l0LWRpciAodmMtZ2l0LXJvb3QgZGlyKSkKKwkgKHVzZS1hbm5leCAob3JnLWF0dGFjaC1naXQt dXNlLWFubmV4KSkKKwkgKGNoYW5nZXMgMCkpCisgICAgKHdoZW4gKGFuZCBnaXQtZGlyIChleGVj dXRhYmxlLWZpbmQgImdpdCIpKQorICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKwkoY2QgZGlyKQor ICAgICAgICAoZG9saXN0IChuZXctb3ItbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgKHNwbGl0 LXN0cmluZworICAgICAgICAgICAgICAgICAgKHNoZWxsLWNvbW1hbmQtdG8tc3RyaW5nCisgICAg ICAgICAgICAgICAgICAgImdpdCBscy1maWxlcyAtem1vIC0tZXhjbHVkZS1zdGFuZGFyZCIpICJc MCIgdCkpCisgICAgICAgICAgKGlmIChhbmQgdXNlLWFubmV4CisgICAgICAgICAgICAgICAgICAg KD49IChmaWxlLWF0dHJpYnV0ZS1zaXplIChmaWxlLWF0dHJpYnV0ZXMgbmV3LW9yLW1vZGlmaWVk KSkKKyAgICAgICAgICAgICAgICAgICAgICAgb3JnLWF0dGFjaC1naXQtYW5uZXgtY3V0b2ZmKSkK KyAgICAgICAgICAgICAgKGNhbGwtcHJvY2VzcyAiZ2l0IiBuaWwgbmlsIG5pbCAiYW5uZXgiICJh ZGQiIG5ldy1vci1tb2RpZmllZCkKKyAgICAgICAgICAgIChjYWxsLXByb2Nlc3MgImdpdCIgbmls IG5pbCBuaWwgImFkZCIgbmV3LW9yLW1vZGlmaWVkKSkKKwkgICAgKGNsLWluY2YgY2hhbmdlcykp CisJKGRvbGlzdCAoZGVsZXRlZAorCQkgKHNwbGl0LXN0cmluZworCQkgIChzaGVsbC1jb21tYW5k LXRvLXN0cmluZyAiZ2l0IGxzLWZpbGVzIC16IC0tZGVsZXRlZCIpICJcMCIgdCkpCisJICAoY2Fs bC1wcm9jZXNzICJnaXQiIG5pbCBuaWwgbmlsICJybSIgZGVsZXRlZCkKKwkgIChjbC1pbmNmIGNo YW5nZXMpKQorCSh3aGVuICg+IGNoYW5nZXMgMCkKKwkgIChzaGVsbC1jb21tYW5kICJnaXQgY29t bWl0IC1tICdTeW5jaHJvbml6ZWQgYXR0YWNobWVudHMnIikpKSkpKQorCisoYWRkLWhvb2sgJ29y Zy1hdHRhY2gtYWZ0ZXItY2hhbmdlLWhvb2sgJ29yZy1hdHRhY2gtZ2l0LWNvbW1pdCkKKyhhZGQt aG9vayAnb3JnLWF0dGFjaC1vcGVuLWhvb2sgJ29yZy1hdHRhY2gtZ2l0LWFubmV4LWdldC1tYXli ZSkKKworKHByb3ZpZGUgJ29yZy1hdHRhY2gtZ2l0KQorCis7Ozsgb3JnLWF0dGFjaC1naXQuZWwg ZW5kcyBoZXJlCmRpZmYgLS1naXQgYS9saXNwL29yZy1hdHRhY2guZWwgYi9saXNwL29yZy1hdHRh Y2guZWwKaW5kZXggYTcxNWM4OWU5Li43MjYwODUwMTQgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWF0 dGFjaC5lbAorKysgYi9saXNwL29yZy1hdHRhY2guZWwKQEAgLTEsOSArMSw5IEBACi07Ozsgb3Jn LWF0dGFjaC5lbCAtLS0gTWFuYWdlIGZpbGUgYXR0YWNobWVudHMgdG8gT3JnIHRhc2tzIC0qLSBs ZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQorOzs7IG9yZy1hdHRhY2guZWwgLS0tIE1hbmFnZSBmaWxl IGF0dGFjaG1lbnRzIHRvIE9yZyBvdXRsaW5lcyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAtKi0K IAogOzsgQ29weXJpZ2h0IChDKSAyMDA4LTIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiAKIDs7IEF1dGhvcjogSm9obiBXaWVnbGV5IDxqb2hud0BuZXdhcnRpc2Fucy5jb20+Ci07 OyBLZXl3b3Jkczogb3JnIGRhdGEgdGFzaworOzsgS2V5d29yZHM6IG9yZyBkYXRhIGF0dGFjaG1l bnQKIAogOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgogOzsKQEAgLTI0LDMyICsy NCwzMCBAQAogCiA7OyBTZWUgdGhlIE9yZyBtYW51YWwgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0 byB1c2UgaXQuCiA7OwotOzsgQXR0YWNobWVudHMgYXJlIG1hbmFnZWQgaW4gYSBzcGVjaWFsIGRp cmVjdG9yeSBjYWxsZWQgImRhdGEiLCB3aGljaAotOzsgbGl2ZXMgaW4gdGhlIHNhbWUgZGlyZWN0 b3J5IGFzIHRoZSBvcmcgZmlsZSBpdHNlbGYuICBJZiB0aGlzIGRhdGEKLTs7IGRpcmVjdG9yeSBp cyBpbml0aWFsaXplZCBhcyBhIEdpdCByZXBvc2l0b3J5LCB0aGVuIG9yZy1hdHRhY2ggd2lsbAot OzsgYXV0b21hdGljYWxseSBjb21taXQgY2hhbmdlcyB3aGVuIGl0IHNlZXMgdGhlbS4KLTs7Ci07 OyBBdHRhY2htZW50IGRpcmVjdG9yaWVzIGFyZSBpZGVudGlmaWVkIHVzaW5nIGEgVVVJRCBnZW5l cmF0ZWQgZm9yIHRoZQotOzsgdGFzayB3aGljaCBoYXMgdGhlIGF0dGFjaG1lbnRzLiAgVGhlc2Ug YXJlIGFkZGVkIGFzIHByb3BlcnR5IHRvIHRoZQotOzsgdGFzayB3aGVuIG5lY2Vzc2FyeSwgYW5k IHNob3VsZCBub3QgYmUgZGVsZXRlZCBvciBjaGFuZ2VkIGJ5IHRoZQotOzsgdXNlciwgZXZlci4g IFVVSURzIGFyZSBnZW5lcmF0ZWQgYnkgYSBtZWNoYW5pc20gZGVmaW5lZCBpbiB0aGUgdmFyaWFi bGUKLTs7IGBvcmctaWQtbWV0aG9kJy4KKzs7IEF0dGFjaG1lbnRzIGFyZSBtYW5hZ2VkIGVpdGhl ciBieSB1c2luZyBhIGN1c3RvbSBwcm9wZXJ0eSBESVIgb3IgYnkKKzs7IHVzaW5nIHByb3BlcnR5 IElEIGZyb20gb3JnLWlkLiAgV2hlbiBESVIgaXMgZGVmaW5lZCwgYSBsb2NhdGlvbiBpbgorOzsg dGhlIGZpbGVzeXN0ZW0gaXMgZGlyZWN0bHkgYXR0YWNoZWQgdG8gdGhlIG91dGxpbmUgbm9kZS4g IFdoZW4KKzs7IG9yZy1pZCBpcyB1c2VkLCBhdHRhY2htZW50cyBhcmUgc3RvcmVkIGluIGEgZm9s ZGVyIG5hbWVkIGFmdGVyIHRoZQorOzsgSUQsIGluIGEgbG9jYXRpb24gZGVmaW5lZCBieSBgb3Jn LWF0dGFjaC1pZC1kaXInLiAgRElSIGhhcworOzsgcHJlY2VkZW5jZSBvdmVyIElEIHdoZW4gYm90 aCBwYXJhbWV0ZXJzIGFyZSBkZWZpbmVkIGZvciB0aGUgY3VycmVudAorOzsgb3V0bGluZSBub2Rl IChhbHNvIHdoZW4gaW5oZXJpdGVkIHBhcmFtZXRlcnMgYXJlIHRha2VuIGludG8KKzs7IGFjY291 bnQpLgogCiA7OzsgQ29kZToKIAogKHJlcXVpcmUgJ2NsLWxpYikKIChyZXF1aXJlICdvcmcpCiso cmVxdWlyZSAnb2wpCiAocmVxdWlyZSAnb3JnLWlkKQotKHJlcXVpcmUgJ3ZjLWdpdCkKIAogKGRl Y2xhcmUtZnVuY3Rpb24gZGlyZWQtZHdpbS10YXJnZXQtZGlyZWN0b3J5ICJkaXJlZC1hdXgiKQog CiAoZGVmZ3JvdXAgb3JnLWF0dGFjaCBuaWwKLSAgIk9wdGlvbnMgY29uY2VybmluZyBlbnRyeSBh dHRhY2htZW50cyBpbiBPcmcgbW9kZS4iCisgICJPcHRpb25zIGNvbmNlcm5pbmcgYXR0YWNobWVu dHMgaW4gT3JnIG1vZGUuIgogICA6dGFnICJPcmcgQXR0YWNoIgogICA6Z3JvdXAgJ29yZykKIAot KGRlZmN1c3RvbSBvcmctYXR0YWNoLWRpcmVjdG9yeSAiZGF0YS8iCisoZGVmY3VzdG9tIG9yZy1h dHRhY2gtaWQtZGlyICJkYXRhLyIKICAgIlRoZSBkaXJlY3Rvcnkgd2hlcmUgYXR0YWNobWVudHMg YXJlIHN0b3JlZC4KIElmIHRoaXMgaXMgYSByZWxhdGl2ZSBwYXRoLCBpdCB3aWxsIGJlIGludGVy cHJldGVkIHJlbGF0aXZlIHRvIHRoZSBkaXJlY3RvcnkKIHdoZXJlIHRoZSBPcmcgZmlsZSBsaXZl cy4iCkBAIC01NywyMiArNTUsMTMgQEAgd2hlcmUgdGhlIE9yZyBmaWxlIGxpdmVzLiIKICAgOnR5 cGUgJ2RpcmVjdG9yeQogICA6c2FmZSAjJ3N0cmluZ3ApCiAKLShkZWZjdXN0b20gb3JnLWF0dGFj aC1jb21taXQgdAotICAiSWYgbm9uLW5pbCBjb21taXQgYXR0YWNobWVudHMgd2l0aCBnaXQuCi1U aGlzIGlzIG9ubHkgZG9uZSBpZiB0aGUgT3JnIGZpbGUgaXMgaW4gYSBnaXQgcmVwb3NpdG9yeS4i CisoZGVmY3VzdG9tIG9yZy1hdHRhY2gtZGlyLXJlbGF0aXZlIG5pbAorICAiTm9uLW5pbCBtZWFu cyBkaXJlY3RvcmllcyBpbiBESVIgcHJvcGVydHkgYXJlIGFkZGVkIGFzIHJlbGF0aXZlIGxpbmtz LgorRGVmYXVsdHMgdG8gYWJzb2x1dGUgbG9jYXRpb24uIgogICA6Z3JvdXAgJ29yZy1hdHRhY2gK ICAgOnR5cGUgJ2Jvb2xlYW4KLSAgOnZlcnNpb24gIjI2LjEiCi0gIDpwYWNrYWdlLXZlcnNpb24g JyhPcmcgLiAiOS4wIikpCi0KLShkZWZjdXN0b20gb3JnLWF0dGFjaC1naXQtYW5uZXgtY3V0b2Zm ICgqIDMyIDEwMjQpCi0gICJJZiBub24tbmlsLCBmaWxlcyBsYXJnZXIgdGhhbiB0aGlzIHdpbGwg YmUgYW5uZXhlZCBpbnN0ZWFkIG9mIHN0b3JlZC4iCi0gIDpncm91cCAnb3JnLWF0dGFjaAotICA6 dmVyc2lvbiAiMjQuNCIKLSAgOnBhY2thZ2UtdmVyc2lvbiAnKE9yZyAuICI4LjAiKQotICA6dHlw ZSAnKGNob2ljZQotCSAgKGNvbnN0IDp0YWcgIk5vbmUiIG5pbCkKLQkgIChpbnRlZ2VyIDp0YWcg IkJ5dGVzIikpKQorICA6cGFja2FnZS12ZXJzaW9uICcoT3JnIC4gIjkuMyIpCisgIDpzYWZlICMn Ym9vbGVhbnApCiAKIChkZWZjdXN0b20gb3JnLWF0dGFjaC1hdXRvLXRhZyAiQVRUQUNIIgogICAi VGFnIHRoYXQgd2lsbCBiZSB0cmlnZ2VyZWQgYXV0b21hdGljYWxseSB3aGVuIGFuIGVudHJ5IGhh cyBhbiBhdHRhY2htZW50LiIKQEAgLTgxLDE1ICs3MCwyNyBAQCBUaGlzIGlzIG9ubHkgZG9uZSBp ZiB0aGUgT3JnIGZpbGUgaXMgaW4gYSBnaXQgcmVwb3NpdG9yeS4iCiAJICAoY29uc3QgOnRhZyAi Tm9uZSIgbmlsKQogCSAgKHN0cmluZyA6dGFnICJUYWciKSkpCiAKLShkZWZjdXN0b20gb3JnLWF0 dGFjaC1maWxlLWxpc3QtcHJvcGVydHkgIkF0dGFjaG1lbnRzIgotICAiVGhlIHByb3BlcnR5IHVz ZWQgdG8ga2VlcCBhIGxpc3Qgb2YgYXR0YWNobWVudCBiZWxvbmdpbmcgdG8gdGhpcyBlbnRyeS4K LVRoaXMgaXMgbm90IHJlYWxseSBuZWVkZWQsIHNvIHlvdSBtYXkgc2V0IHRoaXMgdG8gbmlsIGlm IHlvdSBkb24ndCB3YW50IGl0LgotQWxzbywgZm9yIGVudHJpZXMgd2hlcmUgY2hpbGRyZW4gaW5o ZXJpdCB0aGUgZGlyZWN0b3J5LCB0aGUgbGlzdCBvZgotYXR0YWNobWVudHMgaXMgbm90IGtlcHQg aW4gdGhpcyBwcm9wZXJ0eS4iCisoZGVmY3VzdG9tIG9yZy1hdHRhY2gtcHJlZmVycmVkLW5ldy1t ZXRob2QgJ2lkCisgICJQcmVmZXJyZWQgd2F5IHRvIGF0dGFjaCB0byBub2RlcyB3aXRob3V0IGV4 aXN0aW5nIElEIGFuZCBESVIgcHJvcGVydHkuCitUaGlzIGNob2ljZSBpcyB1c2VkIHdoZW4gYWRk aW5nIGF0dGFjaG1lbnRzIHRvIG5vZGVzIHdpdGhvdXQgSUQKK2FuZCBESVIgcHJvcGVydGllcy4K KworQWxsb3dlZCB2YWx1ZXMgYXJlOgorCitpZCAgICAgICAgIENyZWF0ZSBhbmQgdXNlIGFuIElE IHBhcmFtZXRlcgorZGlyICAgICAgICBDcmVhdGUgYW5kIHVzZSBhIERJUiBwYXJhbWV0ZXIKK2Fz ayAgICAgICAgQXNrIHRoZSB1c2VyIGZvciBpbnB1dCBvZiB3aGljaCBtZXRob2QgdG8gY2hvb3Nl CituaWwgICAgICAgIFByZWZlciB0byBub3QgY3JlYXRlIGEgbmV3IHBhcmFtZXRlcgorCisgICAg ICAgICAgIG5pbCBtZWFucyB0aGF0IElEIG9yIERJUiBoYXMgdG8gYmUgY3JlYXRlZCBleHBsaWNp dGx5CisgICAgICAgICAgIGJlZm9yZSBhdHRhY2hpbmcgZmlsZXMuIgogICA6Z3JvdXAgJ29yZy1h dHRhY2gKKyAgOnBhY2thZ2UtdmVyc2lvbiAnKG9yZyAuICI5LjMiKQogICA6dHlwZSAnKGNob2lj ZQotCSAgKGNvbnN0IDp0YWcgIk5vbmUiIG5pbCkKLQkgIChzdHJpbmcgOnRhZyAiVGFnIikpKQor CSAgKGNvbnN0IDp0YWcgIklEIHBhcmFtZXRlciIgaWQpCisJICAoY29uc3QgOnRhZyAiRElSIHBh cmFtZXRlciIgZGlyKQorCSAgKGNvbnN0IDp0YWcgIkFzayB1c2VyIiBhc2spCisJICAoY29uc3Qg OnRhZyAiRG9uJ3QgY3JlYXRlIiBuaWwpKSkKIAogKGRlZmN1c3RvbSBvcmctYXR0YWNoLW1ldGhv ZCAnY3AKICAgIlRoZSBwcmVmZXJyZWQgbWV0aG9kIHRvIGF0dGFjaCBhIGZpbGUuCkBAIC0xMTMs MTQgKzExNCwyNCBAQCBsbnMgICBjcmVhdGUgYSBzeW1ib2wgbGluay4gIE5vdGUgdGhhdCB0aGlz IGlzIG5vdCBzdXBwb3J0ZWQKICAgOmdyb3VwICdvcmctYXR0YWNoCiAgIDp0eXBlICdib29sZWFu KQogCi0oZGVmY3VzdG9tIG9yZy1hdHRhY2gtYWxsb3ctaW5oZXJpdGFuY2UgdAotICAiTm9uLW5p bCBtZWFucyBhbGxvdyBhdHRhY2htZW50IGRpcmVjdG9yaWVzIGJlIGluaGVyaXRlZC4iCisoZGVm Y3VzdG9tIG9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNlICdzZWxlY3RpdmUKKyAgIkF0dGFjaG1l bnQgaW5oZXJpdGFuY2UgZm9yIHRoZSBvdXRsaW5lLgorCitFbmFibGluZyBpbmhlcml0YW5jZSBm b3Igb3JnLWF0dGFjaCBpbXBsaWVzIHR3byB0aGluZ3MuICBGaXJzdCwKK3RoYXQgYXR0YWNobWVu dCBsaW5rcyB3aWxsIGxvb2sgdGhyb3VnaCBhbGwgcGFyZW50IGhlYWRpbmdzIHVudGlsCitpdCBm aW5kcyB0aGUgbGlua2VkIGF0dGFjaG1lbnQuICBTZWNvbmQsIHRoYXQgcnVubmluZyBvcmctYXR0 YWNoCitpbnNpZGUgYSBub2RlIHdpdGhvdXQgYXR0YWNobWVudHMgd2lsbCBtYWtlIG9yZy1hdHRh Y2ggb3BlcmF0ZSBvbgordGhlIGZpcnN0IHBhcmVudCBoZWFkaW5nIGl0IGZpbmRzIHdpdGggYW4g YXR0YWNobWVudC4KKworU2VsZWN0aXZlIG1lYW5zIHRvIHJlc3BlY3QgdGhlIGluaGVyaXRhbmNl IHNldHRpbmcgaW4KK2BvcmctdXNlLXByb3BlcnR5LWluaGVyaXRhbmNlJy4iCiAgIDpncm91cCAn b3JnLWF0dGFjaAorICA6dHlwZSAnKGNob2ljZQorCSAgKGNvbnN0IDp0YWcgIkRvbid0IHVzZSBp bmhlcml0YW5jZSIgbmlsKQorCSAgKGNvbnN0IDp0YWcgIkluaGVyaXQgcGFyZW50IG5vZGUgYXR0 YWNobWVudHMiIHQpCisJICAoY29uc3QgOnRhZyAiUmVzcGVjdCBvcmctdXNlLXByb3BlcnR5LWlu aGVyaXRhbmNlIiBzZWxlY3RpdmUpKQogICA6dHlwZSAnYm9vbGVhbikKIAotKGRlZnZhciBvcmct YXR0YWNoLWluaGVyaXRlZCBuaWwKLSAgIkluZGljYXRlcyBpZiB0aGUgbGFzdCBhY2Nlc3MgdG8g dGhlIGF0dGFjaG1lbnQgZGlyZWN0b3J5IHdhcyBpbmhlcml0ZWQuIikKLQogKGRlZmN1c3RvbSBv cmctYXR0YWNoLXN0b3JlLWxpbmstcCBuaWwKICAgIk5vbi1uaWwgbWVhbnMgc3RvcmUgYSBsaW5r IHRvIGEgZmlsZSB3aGVuIGF0dGFjaGluZyBpdC4iCiAgIDpncm91cCAnb3JnLWF0dGFjaApAQCAt MTQxLDE2ICsxNTIsMjggQEAgV2hlbiBzZXQgdG8gYHF1ZXJ5JywgYXNrIHRoZSB1c2VyIGluc3Rl YWQuIgogCSAgKGNvbnN0IDp0YWcgIkFsd2F5cyBkZWxldGUgYXR0YWNobWVudHMiIHQpCiAJICAo Y29uc3QgOnRhZyAiUXVlcnkgdGhlIHVzZXIiIHF1ZXJ5KSkpCiAKLShkZWZjdXN0b20gb3JnLWF0 dGFjaC1hbm5leC1hdXRvLWdldCAnYXNrCi0gICJDb25maXJtYXRpb24gcHJlZmVyZW5jZSBmb3Ig YXV0b21hdGljYWxseSBnZXR0aW5nIGFubmV4IGZpbGVzLgotSWYgXFw9J2FzaywgcHJvbXB0IHVz aW5nIGB5LW9yLW4tcCcuICBJZiB0LCBhbHdheXMgZ2V0LiAgSWYgbmlsLCBuZXZlciBnZXQuIgor KGRlZnVuIG9yZy1hdHRhY2gtaWQtZm9sZGVyLWZvcm1hdCAoaWQpCisgICJUcmFuc2xhdGUgYW4g SUQgaW50byBhIGZvbGRlci1wYXRoLgorRGVmYXVsdCBmb3JtYXQgZm9yIGhvdyBPcmcgdHJhbnNs YXRlcyBJRCBwcm9wZXJ0aWVzIHRvIGEgcGF0aCBmb3IKK2F0dGFjaG1lbnRzLiIKKyAgKGZvcm1h dCAiJXMvJXMiCisJICAoc3Vic3RyaW5nIGlkIDAgMikKKwkgIChzdWJzdHJpbmcgaWQgMikpKQor CisoZGVmY3VzdG9tIG9yZy1hdHRhY2gtaWQtdG8tcGF0aC1mdW5jdGlvbiAjJ29yZy1hdHRhY2gt aWQtZm9sZGVyLWZvcm1hdAorICAiRnVuY3Rpb24gcGFyc2luZyB0aGUgSUQgcGFyYW1ldGVyIGlu dG8gYSBmb2xkZXItcGF0aC4iCiAgIDpncm91cCAnb3JnLWF0dGFjaAotICA6cGFja2FnZS12ZXJz aW9uICcoT3JnIC4gIjkuMCIpCi0gIDp2ZXJzaW9uICIyNi4xIgotICA6dHlwZSAnKGNob2ljZQot CSAgKGNvbnN0IDp0YWcgImNvbmZpcm0gd2l0aCBgeS1vci1uLXAnIiBhc2spCi0JICAoY29uc3Qg OnRhZyAiYWx3YXlzIGdldCBmcm9tIGFubmV4IGlmIG5lY2Vzc2FyeSIgdCkKLQkgIChjb25zdCA6 dGFnICJuZXZlciBnZXQgZnJvbSBhbm5leCIgbmlsKSkpCisgIDpwYWNrYWdlLXZlcnNpb24gJyhP cmcgLiAiOS4zIikKKyAgOnR5cGUgJ2Z1bmN0aW9uKQorCisoZGVmdmFyIG9yZy1hdHRhY2gtYWZ0 ZXItY2hhbmdlLWhvb2sgbmlsCisgICJIb29rIHRvIGJlIGNhbGxlZCB3aGVuIGZpbGVzIGhhdmUg YmVlbiBhZGRlZCBvciByZW1vdmVkIHRvIHRoZSBhdHRhY2htZW50IGZvbGRlci4iKQorCisoZGVm dmFyIG9yZy1hdHRhY2gtb3Blbi1ob29rIG5pbAorICAiSG9vayB0aGF0IGlzIGludm9rZWQgYnkg YG9yZy1hdHRhY2gtb3BlbicuCisKK0NyZWF0ZWQgbW9zdGx5IHRvIGJlIGNvbXBhdGlibGUgd2l0 aCBvcmctYXR0YWNoLWdpdCBhZnRlciByZW1vdmluZworZ2l0LWZ1bnRpb25hbGl0eSBmcm9tIHRo aXMgZmlsZS4iKQogCiAoZGVmY3VzdG9tIG9yZy1hdHRhY2gtY29tbWFuZHMKICAgJygoKD9hID9c Qy1hKSBvcmctYXR0YWNoLWF0dGFjaApAQCAtMTg2LDkgKzIwOSw5IEBAIHlvdSBhZGRlZCBhdHRh Y2htZW50cyB5b3Vyc2VsZi5cbiIpCiAgICAgICJEZWxldGUgYWxsIG9mIGEgdGFzaydzIGF0dGFj aG1lbnRzLiAgQSBzYWZlciB3YXkgaXNcbiB0byBvcGVuIHRoZSBcCiBkaXJlY3RvcnkgaW4gZGly ZWQgYW5kIGRlbGV0ZSBmcm9tIHRoZXJlLlxuIikKICAgICAoKD9zID9cQy1zKSBvcmctYXR0YWNo LXNldC1kaXJlY3RvcnkKLSAgICAgIlNldCBhIHNwZWNpZmljIGF0dGFjaG1lbnQgZGlyZWN0b3J5 IGZvciB0aGlzIGVudHJ5IG9yIHJlc2V0IHRvIGRlZmF1bHQuIikKLSAgICAoKD9pID9cQy1pKSBv cmctYXR0YWNoLXNldC1pbmhlcml0Ci0gICAgICJNYWtlIGNoaWxkcmVuIG9mIHRoZSBjdXJyZW50 IGVudHJ5IGluaGVyaXQgaXRzIGF0dGFjaG1lbnQgZGlyZWN0b3J5LlxuIikKKyAgICAgIlNldCBh IHNwZWNpZmljIGF0dGFjaG1lbnQgZGlyZWN0b3J5IGZvciB0aGlzIGVudHJ5LiBTZXRzIERJUiBw cm9wZXJ0eS4iKQorICAgICgoP1MgP1xDLVMpIG9yZy1hdHRhY2gtdW5zZXQtZGlyZWN0b3J5Cisg ICAgICJVbnNldCB0aGUgYXR0YWNobWVudCBkaXJlY3RvcnkgZm9yIHRoaXMgZW50cnkuICBSZW1v dmVzIERJUiBwcm9wZXJ0eS4iKQogICAgICgoP3EpIChsYW1iZGEgKCkgKGludGVyYWN0aXZlKSAo bWVzc2FnZSAiQWJvcnQiKSkgIkFib3J0LiIpKQogICAiVGhlIGxpc3Qgb2YgY29tbWFuZHMgZm9y IHRoZSBhdHRhY2htZW50IGRpc3BhdGNoZXIuCiBFYWNoIGVudHJ5IGluIHRoaXMgbGlzdCBpcyBh IGxpc3Qgb2YgdGhyZWUgZWxlbWVudHM6CkBAIC0yMTUsNyArMjM4LDcgQEAgU2hvd3MgYSBsaXN0 IG9mIGNvbW1hbmRzIGFuZCBwcm9tcHRzIGZvciBhbm90aGVyIGtleSB0byBleGVjdXRlIGEgY29t bWFuZC4iCiAgICAgICAoc2V0cSBtYXJrZXIgKG9yIChnZXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQp ICdvcmctaGQtbWFya2VyKQogCQkgICAgICAgKGdldC10ZXh0LXByb3BlcnR5IChwb2ludCkgJ29y Zy1tYXJrZXIpKSkKICAgICAgICh1bmxlc3MgbWFya2VyCi0JKGVycm9yICJObyB0YXNrIGluIGN1 cnJlbnQgbGluZSIpKSkKKwkoZXJyb3IgIk5vIGl0ZW0gaW4gY3VycmVudCBsaW5lIikpKQogICAg IChzYXZlLWV4Y3Vyc2lvbgogICAgICAgKHdoZW4gbWFya2VyCiAJKHNldC1idWZmZXIgKG1hcmtl ci1idWZmZXIgbWFya2VyKSkKQEAgLTIyNSwyNCArMjQ4LDI4IEBAIFNob3dzIGEgbGlzdCBvZiBj b21tYW5kcyBhbmQgcHJvbXB0cyBmb3IgYW5vdGhlciBrZXkgdG8gZXhlY3V0ZSBhIGNvbW1hbmQu IgogCShzYXZlLXdpbmRvdy1leGN1cnNpb24KIAkgICh1bmxlc3Mgb3JnLWF0dGFjaC1leHBlcnQK IAkgICAgKHdpdGgtb3V0cHV0LXRvLXRlbXAtYnVmZmVyICIqT3JnIEF0dGFjaCoiCi0JICAgICAg KHByaW5jCi0JICAgICAgIChmb3JtYXQgIlNlbGVjdCBhbiBBdHRhY2htZW50IENvbW1hbmQ6XG5c biVzIgotCQkgICAgICAgKG1hcGNvbmNhdAotCQkJKGxhbWJkYSAoZW50cnkpCi0JCQkgIChwY2Fz ZSBlbnRyeQotCQkJICAgIChgKCgsa2V5IC4gLF8pICxfICxkb2NzdHJpbmcpCi0JCQkgICAgIChm b3JtYXQgIiVjICAgICAgICVzIgotCQkJCSAgICAga2V5Ci0JCQkJICAgICAocmVwbGFjZS1yZWdl eHAtaW4tc3RyaW5nICJcblxcKFtcdCBdKlxcKSIKLQkJCQkJCQkgICAgICAgIiAgICAgICAgIgot CQkJCQkJCSAgICAgICBkb2NzdHJpbmcKLQkJCQkJCQkgICAgICAgbmlsIG5pbCAxKSkpCi0JCQkg ICAgKF8KLQkJCSAgICAgKHVzZXItZXJyb3IKLQkJCSAgICAgICJJbnZhbGlkIGBvcmctYXR0YWNo LWNvbW1hbmRzJyBpdGVtOiAlUyIKLQkJCSAgICAgIGVudHJ5KSkpKQotCQkJb3JnLWF0dGFjaC1j b21tYW5kcwotCQkJIlxuIikpKSkpCisgICAgICAgICAgICAgIChwcmluYworICAgICAgICAgICAg ICAgKGNvbmNhdCAiQXR0YWNobWVudCBmb2xkZXI6XG4iCisJCSAgICAgICAob3IgKG9yZy1hdHRh Y2gtZGlyKQorCQkJICAgIkNhbid0IGZpbmQgYW4gZXhpc3RpbmcgYXR0YWNobWVudC1mb2xkZXIi KQorCQkgICAgICAgIlxuXG4iCisJICAgICAgICAgICAgICAgKGZvcm1hdCAiU2VsZWN0IGFuIEF0 dGFjaG1lbnQgQ29tbWFuZDpcblxuJXMiCisJCSAgICAgICAgICAgICAgIChtYXBjb25jYXQKKwkJ ICAgICAgICAgICAgICAgIChsYW1iZGEgKGVudHJ5KQorCQkgICAgICAgICAgICAgICAgICAocGNh c2UgZW50cnkKKwkJICAgICAgICAgICAgICAgICAgICAoYCgoLGtleSAuICxfKSAsXyAsZG9jc3Ry aW5nKQorCQkgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICIlYyAgICAgICAlcyIKKwkJCSAg ICAgICAgICAgICAgICAgICAgIGtleQorCQkJICAgICAgICAgICAgICAgICAgICAgKHJlcGxhY2Ut cmVnZXhwLWluLXN0cmluZyAiXG5cXChbXHQgXSpcXCkiCisJCQkJCQkJICAgICAgICAgICAgICAg IiAgICAgICAgIgorCQkJCQkJCSAgICAgICAgICAgICAgIGRvY3N0cmluZworCQkJCQkJCSAgICAg ICAgICAgICAgIG5pbCBuaWwgMSkpKQorCQkgICAgICAgICAgICAgICAgICAgIChfCisJCSAgICAg ICAgICAgICAgICAgICAgICh1c2VyLWVycm9yCisJCQkgICAgICAgICAgICAgICJJbnZhbGlkIGBv cmctYXR0YWNoLWNvbW1hbmRzJyBpdGVtOiAlUyIKKwkJCSAgICAgICAgICAgICAgZW50cnkpKSkp CisJCSAgICAgICAgICAgICAgICBvcmctYXR0YWNoLWNvbW1hbmRzCisJCSAgICAgICAgICAgICAg ICAiXG4iKSkpKSkpCiAJICAob3JnLWZpdC13aW5kb3ctdG8tYnVmZmVyIChnZXQtYnVmZmVyLXdp bmRvdyAiKk9yZyBBdHRhY2gqIikpCiAJICAobWVzc2FnZSAiU2VsZWN0IGNvbW1hbmQ6IFslc10i CiAJCSAgIChjb25jYXQgKG1hcGNhciAjJ2NhYXIgb3JnLWF0dGFjaC1jb21tYW5kcykpKQpAQCAt MjU2LDE0OCArMjgzLDEyNiBAQCBTaG93cyBhIGxpc3Qgb2YgY29tbWFuZHMgYW5kIHByb21wdHMg Zm9yIGFub3RoZXIga2V5IHRvIGV4ZWN1dGUgYSBjb21tYW5kLiIKIAkgIChlcnJvciAiTm8gc3Vj aCBhdHRhY2htZW50IGNvbW1hbmQ6ICVjIiBjKSkpKSkpCiAKIChkZWZ1biBvcmctYXR0YWNoLWRp ciAoJm9wdGlvbmFsIGNyZWF0ZS1pZi1ub3QtZXhpc3RzLXApCi0gICJSZXR1cm4gdGhlIGRpcmVj dG9yeSBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgZW50cnkuCi1UaGlzIGZpcnN0IGNoZWNr cyBmb3IgYSBsb2NhbCBwcm9wZXJ0eSBBVFRBQ0hfRElSLCBhbmQgdGhlbiBmb3IgYW4gaW5oZXJp dGVkCi1wcm9wZXJ0eSBBVFRBQ0hfRElSX0lOSEVSSVQuICBJZiBuZWl0aGVyIGV4aXN0cywgdGhl IGRlZmF1bHQgbWVjaGFuaXNtCi11c2luZyB0aGUgZW50cnkgSUQgd2lsbCBiZSBpbnZva2VkIHRv IGFjY2VzcyB0aGUgdW5pcXVlIGRpcmVjdG9yeSBmb3IgdGhlCi1jdXJyZW50IGVudHJ5LgotSWYg dGhlIGRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdCBhbmQgQ1JFQVRFLUlGLU5PVC1FWElTVFMtUCBp cyBub24tbmlsLAotdGhlIGRpcmVjdG9yeSBhbmQgKGlmIG5lY2Vzc2FyeSkgdGhlIGNvcnJlc3Bv bmRpbmcgSUQgd2lsbCBiZSBjcmVhdGVkLiIKLSAgKGxldCAoYXR0YWNoLWRpciB1dWlkKQotICAg IChzZXRxIG9yZy1hdHRhY2gtaW5oZXJpdGVkIChvcmctZW50cnktZ2V0IG5pbCAiQVRUQUNIX0RJ Ul9JTkhFUklUIikpCisgICJSZXR1cm4gdGhlIGRpcmVjdG9yeSBhc3NvY2lhdGVkIHdpdGggdGhl IGN1cnJlbnQgb3V0bGluZSBub2RlLgorRmlyc3QgY2hlY2sgZm9yIERJUiBwcm9wZXJ0eSwgdGhl biBJRCBwcm9wZXJ0eS4KK2BvcmctYXR0YWNoLXVzZS1pbmhlcml0YW5jZScgZGV0ZXJtaW5lcyB3 aGV0aGVyIGluaGVyaXRlZAorcHJvcGVydGllcyBhbHNvIHdpbGwgYmUgY29uc2lkZXJlZC4KKwor SWYgYW4gSUQgcHJvcGVydHkgaXMgZm91bmQgdGhlIGRlZmF1bHQgbWVjaGFuaXNtIHVzaW5nIHRo YXQgSUQKK3dpbGwgYmUgaW52b2tlZCB0byBhY2Nlc3MgdGhlIGRpcmVjdG9yeSBmb3IgdGhlIGN1 cnJlbnQgZW50cnkuCisKK0lmIENSRUFURS1JRi1OT1QtRVhJU1QtUCBpcyBub24tbmlsLCBgb3Jn LWF0dGFjaC1kaXItZ2V0LWNyZWF0ZScKK2lzIHJ1bi4iCisgIChsZXQgKGF0dGFjaC1kaXIgaWQp CiAgICAgKGNvbmQKLSAgICAgKChzZXRxIGF0dGFjaC1kaXIgKG9yZy1lbnRyeS1nZXQgbmlsICJB VFRBQ0hfRElSIikpCisgICAgIChjcmVhdGUtaWYtbm90LWV4aXN0cy1wCisgICAgICAoc2V0cSBh dHRhY2gtZGlyIChvcmctYXR0YWNoLWRpci1nZXQtY3JlYXRlKSkpCisgICAgICgoc2V0cSBhdHRh Y2gtZGlyIChvcmctZW50cnktZ2V0IG5pbCAiRElSIiBvcmctYXR0YWNoLXVzZS1pbmhlcml0YW5j ZSkpCiAgICAgICAob3JnLWF0dGFjaC1jaGVjay1hYnNvbHV0ZS1wYXRoIGF0dGFjaC1kaXIpKQot ICAgICAoKGFuZCBvcmctYXR0YWNoLWFsbG93LWluaGVyaXRhbmNlCi0JICAgKG9yZy1lbnRyeS1n ZXQgbmlsICJBVFRBQ0hfRElSX0lOSEVSSVQiIHQpKQotICAgICAgKHNldHEgYXR0YWNoLWRpcgot CSAgICAob3JnLXdpdGgtd2lkZS1idWZmZXIKLQkgICAgIChpZiAobWFya2VyLXBvc2l0aW9uIG9y Zy1lbnRyeS1wcm9wZXJ0eS1pbmhlcml0ZWQtZnJvbSkKLQkJIChnb3RvLWNoYXIgb3JnLWVudHJ5 LXByb3BlcnR5LWluaGVyaXRlZC1mcm9tKQotCSAgICAgICAob3JnLWJhY2stdG8taGVhZGluZyB0 KSkKLQkgICAgIChsZXQgKG9yZy1hdHRhY2gtYWxsb3ctaW5oZXJpdGFuY2UpCi0JICAgICAgIChv cmctYXR0YWNoLWRpciBjcmVhdGUtaWYtbm90LWV4aXN0cy1wKSkpKQotICAgICAgKG9yZy1hdHRh Y2gtY2hlY2stYWJzb2x1dGUtcGF0aCBhdHRhY2gtZGlyKQotICAgICAgKHNldHEgb3JnLWF0dGFj aC1pbmhlcml0ZWQgdCkpCi0gICAgICh0CQkJCQk7IHVzZSB0aGUgSUQKKyAgICAgOzsgRGVwcmVj YXRlZCBhbmQgcmVtb3ZlZCBmcm9tIGRvY3VtZW50YXRpb24sIGJ1dCBzdGlsbAorICAgICA7OyB3 b3Jrcy4gRklYTUU6IFJlbW92ZSBhZnRlciBtYWpvciBuciBjaGFuZ2UuCisgICAgICgoc2V0cSBh dHRhY2gtZGlyIChvcmctZW50cnktZ2V0IG5pbCAiQVRUQUNIX0RJUiIgb3JnLWF0dGFjaC11c2Ut aW5oZXJpdGFuY2UpKQorICAgICAgKG9yZy1hdHRhY2gtY2hlY2stYWJzb2x1dGUtcGF0aCBhdHRh Y2gtZGlyKSkKKyAgICAgKChzZXRxIGlkIChvcmctZW50cnktZ2V0IG5pbCAiSUQiIG9yZy1hdHRh Y2gtdXNlLWluaGVyaXRhbmNlKSkKICAgICAgIChvcmctYXR0YWNoLWNoZWNrLWFic29sdXRlLXBh dGggbmlsKQotICAgICAgKHNldHEgdXVpZCAob3JnLWlkLWdldCAocG9pbnQpIGNyZWF0ZS1pZi1u b3QtZXhpc3RzLXApKQotICAgICAgKHdoZW4gKG9yIHV1aWQgY3JlYXRlLWlmLW5vdC1leGlzdHMt cCkKLQkodW5sZXNzIHV1aWQgKGVycm9yICJJRCByZXRyaWV2YWwvY3JlYXRpb24gZmFpbGVkIikp Ci0JKHNldHEgYXR0YWNoLWRpciAoZXhwYW5kLWZpbGUtbmFtZQotCQkJICAoZm9ybWF0ICIlcy8l cyIKLQkJCQkgIChzdWJzdHJpbmcgdXVpZCAwIDIpCi0JCQkJICAoc3Vic3RyaW5nIHV1aWQgMikp Ci0JCQkgIChleHBhbmQtZmlsZS1uYW1lIG9yZy1hdHRhY2gtZGlyZWN0b3J5KSkpKSkpCi0gICAg KHdoZW4gYXR0YWNoLWRpcgotICAgICAgKGlmIChhbmQgY3JlYXRlLWlmLW5vdC1leGlzdHMtcAot CSAgICAgICAobm90IChmaWxlLWRpcmVjdG9yeS1wIGF0dGFjaC1kaXIpKSkKLQkgIChtYWtlLWRp cmVjdG9yeSBhdHRhY2gtZGlyIHQpKQotICAgICAgKGFuZCAoZmlsZS1leGlzdHMtcCBhdHRhY2gt ZGlyKQotCSAgIGF0dGFjaC1kaXIpKSkpCisgICAgICAoc2V0cSBhdHRhY2gtZGlyIChvcmctYXR0 YWNoLWRpci1mcm9tLWlkIGlkKSkpKQorICAgIGF0dGFjaC1kaXIpKQorCisoZGVmdW4gb3JnLWF0 dGFjaC1kaXItZ2V0LWNyZWF0ZSAoKQorICAiUmV0dXJuIGV4aXN0aW5nIG9yIG5ldyBkaXJlY3Rv cnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IG91dGxpbmUgbm9kZS4KKworYG9yZy1hdHRh Y2gtcHJlZmVycmVkLW5ldy1tZXRob2QnIGRlY2lkZXMgaG93IHRvIGF0dGFjaAorbmV3IGRpcmVj dG9yeS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gt ZGlyKSkpCisgICAgKHVubGVzcyBhdHRhY2gtZGlyCisgICAgICAobGV0IChhbnN3ZXIpCisJKHdo ZW4gKGVxIG9yZy1hdHRhY2gtcHJlZmVycmVkLW5ldy1tZXRob2QgJ2FzaykKKwkgIChtZXNzYWdl ICJDcmVhdGUgbmV3IElEIFsxXSBwcm9wZXJ0eSBvciBESVIgWzJdIHByb3BlcnR5IGZvciBhdHRh Y2htZW50cz8iKQorCSAgKHNldHEgYW5zd2VyIChyZWFkLWNoYXItZXhjbHVzaXZlKSkpCisJKGNv bmQKKwkgKChvciAoZXEgb3JnLWF0dGFjaC1wcmVmZXJyZWQtbmV3LW1ldGhvZCAnaWQpIChlcSBh bnN3ZXIgPzEpKQorCSAgKHNldHEgYXR0YWNoLWRpciAob3JnLWF0dGFjaC1kaXItZnJvbS1pZCAo b3JnLWlkLWdldCBuaWwgdCkpKSkKKwkgKChvciAoZXEgb3JnLWF0dGFjaC1wcmVmZXJyZWQtbmV3 LW1ldGhvZCAnZGlyKSAoZXEgYW5zd2VyID8yKSkKKwkgIChzZXRxIGF0dGFjaC1kaXIgKG9yZy1h dHRhY2gtc2V0LWRpcmVjdG9yeSkpKQorCSAoKGVxIG9yZy1hdHRhY2gtcHJlZmVycmVkLW5ldy1t ZXRob2QgJ25pbCkKKwkgIChlcnJvciAiTm8gZXhpc3RpbmcgZGlyZWN0b3J5LiBESVIgb3IgSUQg cHJvcGVydHkgaGFzIHRvIGJlIGV4cGxpY2l0bHkgY3JlYXRlZCIpKSkpKQorICAgICh1bmxlc3Mg YXR0YWNoLWRpcgorICAgICAgKGVycm9yICJObyBhdHRhY2htZW50IGRpcmVjdG9yeSBpcyBhc3Nv Y2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbm9kZSIpKQorICAgICh1bmxlc3MgKGZpbGUtZGlyZWN0 b3J5LXAgYXR0YWNoLWRpcikKKyAgICAgIChtYWtlLWRpcmVjdG9yeSBhdHRhY2gtZGlyIHQpKQor ICAgIGF0dGFjaC1kaXIpKQorCisoZGVmdW4gb3JnLWF0dGFjaC1kaXItZnJvbS1pZCAoaWQpCisg ICJSZXR1cm5zIGEgZmlsZSBuYW1lIGJhc2VkIG9uIGBvcmctYXR0YWNoLWlkLWRpcicgYW5kIElE LiIKKyAgKGV4cGFuZC1maWxlLW5hbWUKKyAgIChmdW5jYWxsIG9yZy1hdHRhY2gtaWQtdG8tcGF0 aC1mdW5jdGlvbiBpZCkKKyAgIChleHBhbmQtZmlsZS1uYW1lIG9yZy1hdHRhY2gtaWQtZGlyKSkp CiAKIChkZWZ1biBvcmctYXR0YWNoLWNoZWNrLWFic29sdXRlLXBhdGggKGRpcikKICAgIkNoZWNr IGlmIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHJvb3QgdGhlIGF0dGFjaG1lbnQgZGly ZWN0b3J5LgogV2hlbiBESVIgaXMgZ2l2ZW4sIGNoZWNrIGFsc28gaWYgaXQgaXMgYWxyZWFkeSBh YnNvbHV0ZS4gIE90aGVyd2lzZSwKLWFzc3VtZSB0aGF0IGl0IHdpbGwgYmUgcmVsYXRpdmUsIGFu ZCBjaGVjayBpZiBgb3JnLWF0dGFjaC1kaXJlY3RvcnknIGlzCithc3N1bWUgdGhhdCBpdCB3aWxs IGJlIHJlbGF0aXZlLCBhbmQgY2hlY2sgaWYgYG9yZy1hdHRhY2gtaWQtZGlyJyBpcwogYWJzb2x1 dGUsIG9yIGlmIGF0IGxlYXN0IHRoZSBjdXJyZW50IGJ1ZmZlciBoYXMgYSBmaWxlIG5hbWUuCiBU aHJvdyBhbiBlcnJvciBpZiB3ZSBjYW5ub3Qgcm9vdCB0aGUgZGlyZWN0b3J5LiIKICAgKG9yIChh bmQgZGlyIChmaWxlLW5hbWUtYWJzb2x1dGUtcCBkaXIpKQotICAgICAgKGZpbGUtbmFtZS1hYnNv bHV0ZS1wIG9yZy1hdHRhY2gtZGlyZWN0b3J5KQorICAgICAgKGZpbGUtbmFtZS1hYnNvbHV0ZS1w IG9yZy1hdHRhY2gtaWQtZGlyKQogICAgICAgKGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1iYXNl LWJ1ZmZlcikpCi0gICAgICAoZXJyb3IgIk5lZWQgYWJzb2x1dGUgYG9yZy1hdHRhY2gtZGlyZWN0 b3J5JyB0byBhdHRhY2ggaW4gYnVmZmVycyB3aXRob3V0IGZpbGVuYW1lIikpKQorICAgICAgKGVy cm9yICJOZWVkIGFic29sdXRlIGBvcmctYXR0YWNoLWlkLWRpcicgdG8gYXR0YWNoIGluIGJ1ZmZl cnMgd2l0aG91dCBmaWxlbmFtZSIpKSkKIAotKGRlZnVuIG9yZy1hdHRhY2gtc2V0LWRpcmVjdG9y eSAoJm9wdGlvbmFsIGFyZykKLSAgIlNldCB0aGUgQVRUQUNIX0RJUiBub2RlIHByb3BlcnR5IGFu ZCBhc2sgdG8gbW92ZSBmaWxlcyB0aGVyZS4KKyhkZWZ1biBvcmctYXR0YWNoLXNldC1kaXJlY3Rv cnkgKCkKKyAgIlNldCB0aGUgRElSIG5vZGUgcHJvcGVydHkgYW5kIGFzayB0byBtb3ZlIGZpbGVz IHRoZXJlLgogVGhlIHByb3BlcnR5IGRlZmluZXMgdGhlIGRpcmVjdG9yeSB0aGF0IGlzIHVzZWQg Zm9yIGF0dGFjaG1lbnRzCi1vZiB0aGUgZW50cnkuICBXaGVuIGNhbGxlZCB3aXRoIGBcXFt1bml2 ZXJzYWwtYXJndW1lbnRdJywgcmVzZXQgXAotdGhlIGRpcmVjdG9yeSB0bwotdGhlIGRlZmF1bHQg SUQgYmFzZWQgb25lLiIKLSAgKGludGVyYWN0aXZlICJQIikKK29mIHRoZSBlbnRyeS4gIENyZWF0 ZXMgcmVsYXRpdmUgbGlua3MgaWYgYG9yZy1hdHRhY2gtZGlyLXJlbGF0aXZlJworaXMgbm9uLW5p bC4KKworUmV0dXJuIHRoZSBkaXJlY3RvcnkuIgorICAoaW50ZXJhY3RpdmUpCiAgIChsZXQgKChv bGQgKG9yZy1hdHRhY2gtZGlyKSkKLSAgICAgICAgKG5ldwotICAgICAgICAgKHByb2duCi0gICAg ICAgICAgIChpZiBhcmcgKG9yZy1lbnRyeS1kZWxldGUgbmlsICJBVFRBQ0hfRElSIikKLSAgICAg ICAgICAgICAobGV0ICgoZGlyIChyZWFkLWRpcmVjdG9yeS1uYW1lCi0gICAgICAgICAgICAgICAg ICAgICAgICAgIkF0dGFjaG1lbnQgZGlyZWN0b3J5OiAiCi0gICAgICAgICAgICAgICAgICAgICAg ICAgKG9yZy1lbnRyeS1nZXQgbmlsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkFUVEFDSF9ESVIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGFuZCBvcmctYXR0YWNoLWFsbG93LWluaGVyaXRhbmNlIHQpKSkpKQotICAgICAgICAgICAg ICAgKG9yZy1lbnRyeS1wdXQgbmlsICJBVFRBQ0hfRElSIiBkaXIpKSkKLSAgICAgICAgICAgKG9y Zy1hdHRhY2gtZGlyIHQpKSkpCisJKG5ldworCSAobGV0KiAoKGF0dGFjaC1kaXIgKHJlYWQtZGly ZWN0b3J5LW5hbWUKKwkJCSAgICAgIkF0dGFjaG1lbnQgZGlyZWN0b3J5OiAiCisJCQkgICAgIChv cmctZW50cnktZ2V0IG5pbCAiRElSIikpKQorCQkoY3VycmVudC1kaXIgKGZpbGUtbmFtZS1kaXJl Y3RvcnkgKG9yIGRlZmF1bHQtZGlyZWN0b3J5CisJCQkJCQkgICAgICBidWZmZXItZmlsZS1uYW1l KSkpCisJCShhdHRhY2gtZGlyLXJlbGF0aXZlIChmaWxlLXJlbGF0aXZlLW5hbWUgYXR0YWNoLWRp ciBjdXJyZW50LWRpcikpKQorCSAgIChvcmctZW50cnktcHV0IG5pbCAiRElSIiAoaWYgb3JnLWF0 dGFjaC1kaXItcmVsYXRpdmUKKwkJCQkJYXR0YWNoLWRpci1yZWxhdGl2ZQorCQkJCSAgICAgIGF0 dGFjaC1kaXIpKQorICAgICAgICAgICBhdHRhY2gtZGlyKSkpCiAgICAgKHVubGVzcyAob3IgKHN0 cmluZz0gb2xkIG5ldykKICAgICAgICAgICAgICAgICAobm90IG9sZCkpCiAgICAgICAod2hlbiAo eWVzLW9yLW5vLXAgIkNvcHkgb3ZlciBhdHRhY2htZW50cyBmcm9tIG9sZCBkaXJlY3Rvcnk/ICIp CisgICAgICAgIChjb3B5LWRpcmVjdG9yeSBvbGQgbmV3IHQgdCB0KSkKKyAgICAgICh3aGVuICh5 ZXMtb3Itbm8tcCAoY29uY2F0ICJEZWxldGUgIiBvbGQpKQorICAgICAgICAoZGVsZXRlLWRpcmVj dG9yeSBvbGQgdCkpKQorICAgIG5ldykpCisKKyhkZWZ1biBvcmctYXR0YWNoLXVuc2V0LWRpcmVj dG9yeSAoKQorICAiUmVtb3ZlcyBESVIgbm9kZSBwcm9wZXJ0eS4KK0lmIGF0dGFjaG1lbnQgZm9s ZGVyIGlzIGNoYW5nZWQgZHVlIHRvIHJlbW92YWwgb2YgRElSLXByb3BlcnR5Cithc2sgdG8gbW92 ZSBhdHRhY2htZW50cyB0byBuZXcgbG9jYXRpb24gYW5kIGFzayB0byBkZWxldGUgb2xkCithdHRh Y2htZW50LWZvbGRlci4KKworQ2hhbmdlIG9mIGF0dGFjaG1lbnQtZm9sZGVyIGR1ZSB0byB1bnNl dCBtaWdodCBiZSBpZiBhbiBJRAorcHJvcGVydHkgaXMgc2V0IG9uIHRoZSBub2RlLCBvciBpZiBh IHNlcGFyYXRlIGluaGVyaXRlZAorRElSLXByb3BlcnR5IGV4aXN0cyAodGhhdCBpcyBkaWZmZXJl bnQgdGhhbiB0aGUgdW5zZXQgb25lKS4iCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCAoKG9sZCAo b3JnLWF0dGFjaC1kaXIpKQorCShuZXcKKyAgICAgICAgIChwcm9nbgorCSAgIChvcmctZW50cnkt ZGVsZXRlIG5pbCAiRElSIikKKwkgICA7OyBBVFRBQ0gtRElSIGlzIGRlcHJlY2F0ZWQgYW5kIHJl bW92ZWQgZnJvbSBkb2N1bWVudGF0aW9uLAorCSAgIDs7IGJ1dCBzdGlsbCB3b3Jrcy4gUmVtb3Zl IGNvZGUgZm9yIGl0IGFmdGVyIG1ham9yIG5yIGNoYW5nZS4KKwkgICAob3JnLWVudHJ5LWRlbGV0 ZSBuaWwgIkFUVEFDSF9ESVIiKQorCSAgIChvcmctYXR0YWNoLWRpcikpKSkKKyAgICAodW5sZXNz IChvciAoc3RyaW5nPSBvbGQgbmV3KQorICAgICAgICAgICAgICAgIChub3Qgb2xkKSkKKyAgICAg ICh3aGVuIChhbmQgbmV3ICh5ZXMtb3Itbm8tcCAiQ29weSBvdmVyIGF0dGFjaG1lbnRzIGZyb20g b2xkIGRpcmVjdG9yeT8gIikpCiAgICAgICAgIChjb3B5LWRpcmVjdG9yeSBvbGQgbmV3IHQgbmls IHQpKQogICAgICAgKHdoZW4gKHllcy1vci1uby1wIChjb25jYXQgIkRlbGV0ZSAiIG9sZCkpCiAg ICAgICAgIChkZWxldGUtZGlyZWN0b3J5IG9sZCB0KSkpKSkKIAotKGRlZnVuIG9yZy1hdHRhY2gt c2V0LWluaGVyaXQgKCkKLSAgIlNldCB0aGUgQVRUQUNIX0RJUl9JTkhFUklUIHByb3BlcnR5IG9m IHRoZSBjdXJyZW50IGVudHJ5LgotVGhlIHByb3BlcnR5IGRlZmluZXMgdGhlIGRpcmVjdG9yeSB0 aGF0IGlzIHVzZWQgZm9yIGF0dGFjaG1lbnRzCi1vZiB0aGUgZW50cnkgYW5kIGFueSBjaGlsZHJl biB0aGF0IGRvIG5vdCBleHBsaWNpdGx5IGRlZmluZSAoYnkgc2V0dGluZwotdGhlIEFUVEFDSF9E SVIgcHJvcGVydHkpIHRoZWlyIG93biBhdHRhY2htZW50IGRpcmVjdG9yeS4iCi0gIChpbnRlcmFj dGl2ZSkKLSAgKG9yZy1lbnRyeS1wdXQgbmlsICJBVFRBQ0hfRElSX0lOSEVSSVQiICJ0IikKLSAg KG1lc3NhZ2UgIkNoaWxkcmVuIHdpbGwgaW5oZXJpdCBhdHRhY2htZW50IGRpcmVjdG9yeSIpKQot Ci0oZGVmdW4gb3JnLWF0dGFjaC11c2UtYW5uZXggKCkKLSAgIlJldHVybiBub24tbmlsIGlmIGdp dCBhbm5leCBjYW4gYmUgdXNlZC4iCi0gIChsZXQgKChnaXQtZGlyICh2Yy1naXQtcm9vdCAoZXhw YW5kLWZpbGUtbmFtZSBvcmctYXR0YWNoLWRpcmVjdG9yeSkpKSkKLSAgICAoYW5kIG9yZy1hdHRh Y2gtZ2l0LWFubmV4LWN1dG9mZgotICAgICAgICAgKG9yIChmaWxlLWV4aXN0cy1wIChleHBhbmQt ZmlsZS1uYW1lICJhbm5leCIgZ2l0LWRpcikpCi0gICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAg KGV4cGFuZC1maWxlLW5hbWUgIi5naXQvYW5uZXgiIGdpdC1kaXIpKSkpKSkKLQotKGRlZnVuIG9y Zy1hdHRhY2gtYW5uZXgtZ2V0LW1heWJlIChwYXRoKQotICAiQ2FsbCBnaXQgYW5uZXggZ2V0IFBB VEggKHZpYSBzaGVsbCkgaWYgdXNpbmcgZ2l0IGFubmV4LgotU2lnbmFscyBhbiBlcnJvciBpZiB0 aGUgZmlsZSBjb250ZW50IGlzIG5vdCBhdmFpbGFibGUgYW5kIGl0IHdhcyBub3QgcmV0cmlldmVk LiIKLSAgKGxldCogKChkZWZhdWx0LWRpcmVjdG9yeSAoZXhwYW5kLWZpbGUtbmFtZSBvcmctYXR0 YWNoLWRpcmVjdG9yeSkpCi0JIChwYXRoLXJlbGF0aXZlIChmaWxlLXJlbGF0aXZlLW5hbWUgcGF0 aCkpKQotICAgICh3aGVuIChhbmQgKG9yZy1hdHRhY2gtdXNlLWFubmV4KQotCSAgICAgICAobm90 Ci0JCShzdHJpbmctZXF1YWwKLQkJICJmb3VuZCIKLQkJIChzaGVsbC1jb21tYW5kLXRvLXN0cmlu ZwotCQkgIChmb3JtYXQgImdpdCBhbm5leCBmaW5kIC0tZm9ybWF0PWZvdW5kIC0taW49aGVyZSAl cyIKLQkJCSAgKHNoZWxsLXF1b3RlLWFyZ3VtZW50IHBhdGgtcmVsYXRpdmUpKSkpKSkKLSAgICAg IChsZXQgKChzaG91bGQtZ2V0Ci0JICAgICAoaWYgKGVxIG9yZy1hdHRhY2gtYW5uZXgtYXV0by1n ZXQgJ2FzaykKLQkJICh5LW9yLW4tcCAoZm9ybWF0ICJSdW4gZ2l0IGFubmV4IGdldCAlcz8gIiBw YXRoLXJlbGF0aXZlKSkKLQkgICAgICAgb3JnLWF0dGFjaC1hbm5leC1hdXRvLWdldCkpKQotCShp ZiBzaG91bGQtZ2V0Ci0JICAgIChwcm9nbiAobWVzc2FnZSAiUnVubmluZyBnaXQgYW5uZXggZ2V0 IFwiJXNcIi4iIHBhdGgtcmVsYXRpdmUpCi0JCSAgIChjYWxsLXByb2Nlc3MgImdpdCIgbmlsIG5p bCBuaWwgImFubmV4IiAiZ2V0IiBwYXRoLXJlbGF0aXZlKSkKLQkgIChlcnJvciAiRmlsZSAlcyBz dG9yZWQgaW4gZ2l0IGFubmV4IGJ1dCBpdCBpcyBub3QgYXZhaWxhYmxlLCBhbmQgd2FzIG5vdCBy ZXRyaWV2ZWQiCi0JCSBwYXRoKSkpKSkpCi0KLShkZWZ1biBvcmctYXR0YWNoLWNvbW1pdCAoKQot ICAiQ29tbWl0IGNoYW5nZXMgdG8gZ2l0IGlmIGBvcmctYXR0YWNoLWRpcmVjdG9yeScgaXMgcHJv cGVybHkgaW5pdGlhbGl6ZWQuCi1UaGlzIGNoZWNrcyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBhIFwi LmdpdFwiIGRpcmVjdG9yeSBpbiB0aGF0IGRpcmVjdG9yeS4iCi0gIChsZXQqICgoZGlyIChleHBh bmQtZmlsZS1uYW1lIG9yZy1hdHRhY2gtZGlyZWN0b3J5KSkKLQkgKGdpdC1kaXIgKHZjLWdpdC1y b290IGRpcikpCi0JICh1c2UtYW5uZXggKG9yZy1hdHRhY2gtdXNlLWFubmV4KSkKLQkgKGNoYW5n ZXMgMCkpCi0gICAgKHdoZW4gKGFuZCBnaXQtZGlyIChleGVjdXRhYmxlLWZpbmQgImdpdCIpKQot ICAgICAgKHdpdGgtdGVtcC1idWZmZXIKLQkoY2QgZGlyKQotICAgICAgICAoZG9saXN0IChuZXct b3ItbW9kaWZpZWQKLSAgICAgICAgICAgICAgICAgKHNwbGl0LXN0cmluZwotICAgICAgICAgICAg ICAgICAgKHNoZWxsLWNvbW1hbmQtdG8tc3RyaW5nCi0gICAgICAgICAgICAgICAgICAgImdpdCBs cy1maWxlcyAtem1vIC0tZXhjbHVkZS1zdGFuZGFyZCIpICJcMCIgdCkpCi0gICAgICAgICAgKGlm IChhbmQgdXNlLWFubmV4Ci0gICAgICAgICAgICAgICAgICAgKD49IChmaWxlLWF0dHJpYnV0ZS1z aXplIChmaWxlLWF0dHJpYnV0ZXMgbmV3LW9yLW1vZGlmaWVkKSkKLSAgICAgICAgICAgICAgICAg ICAgICAgb3JnLWF0dGFjaC1naXQtYW5uZXgtY3V0b2ZmKSkKLSAgICAgICAgICAgICAgKGNhbGwt cHJvY2VzcyAiZ2l0IiBuaWwgbmlsIG5pbCAiYW5uZXgiICJhZGQiIG5ldy1vci1tb2RpZmllZCkK LSAgICAgICAgICAgIChjYWxsLXByb2Nlc3MgImdpdCIgbmlsIG5pbCBuaWwgImFkZCIgbmV3LW9y LW1vZGlmaWVkKSkKLQkgICAgKGNsLWluY2YgY2hhbmdlcykpCi0JKGRvbGlzdCAoZGVsZXRlZAot CQkgKHNwbGl0LXN0cmluZwotCQkgIChzaGVsbC1jb21tYW5kLXRvLXN0cmluZyAiZ2l0IGxzLWZp bGVzIC16IC0tZGVsZXRlZCIpICJcMCIgdCkpCi0JICAoY2FsbC1wcm9jZXNzICJnaXQiIG5pbCBu aWwgbmlsICJybSIgZGVsZXRlZCkKLQkgIChjbC1pbmNmIGNoYW5nZXMpKQotCSh3aGVuICg+IGNo YW5nZXMgMCkKLQkgIChzaGVsbC1jb21tYW5kICJnaXQgY29tbWl0IC1tICdTeW5jaHJvbml6ZWQg YXR0YWNobWVudHMnIikpKSkpKQotCiAoZGVmdW4gb3JnLWF0dGFjaC10YWcgKCZvcHRpb25hbCBv ZmYpCiAgICJUdXJuIHRoZSBhdXRvdGFnIG9uIG9yIChpZiBPRkYgaXMgc2V0KSBvZmYuIgogICAo d2hlbiBvcmctYXR0YWNoLWF1dG8tdGFnCkBAIC00MjMsMjIgKzQyOCwyMSBAQCBPbmx5IGRvIHRo aXMgd2hlbiBgb3JnLWF0dGFjaC1zdG9yZS1saW5rLXAnIGlzIG5vbi1uaWwuIgogICAgIChvcmct YXR0YWNoLWF0dGFjaCB1cmwpKSkKIAogKGRlZnVuIG9yZy1hdHRhY2gtYnVmZmVyIChidWZmZXIt bmFtZSkKLSAgIkF0dGFjaCBCVUZGRVItTkFNRSdzIGNvbnRlbnRzIHRvIGN1cnJlbnQgdGFzay4K KyAgIkF0dGFjaCBCVUZGRVItTkFNRSdzIGNvbnRlbnRzIHRvIGN1cnJlbnQgb3V0bGluZSBub2Rl LgogQlVGRkVSLU5BTUUgaXMgYSBzdHJpbmcuICBTaWduYWxzIGEgYGZpbGUtYWxyZWFkeS1leGlz dHMnIGVycm9yCiBpZiBpdCB3b3VsZCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZmlsZW5hbWUuIgog ICAoaW50ZXJhY3RpdmUgImJCdWZmZXIgd2hvc2UgY29udGVudHMgc2hvdWxkIGJlIGF0dGFjaGVk OiAiKQotICAobGV0ICgob3V0cHV0IChleHBhbmQtZmlsZS1uYW1lIGJ1ZmZlci1uYW1lIChvcmct YXR0YWNoLWRpciB0KSkpKQorICAobGV0KiAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyICdn ZXQtY3JlYXRlKSkKKwkgKG91dHB1dCAoZXhwYW5kLWZpbGUtbmFtZSBidWZmZXItbmFtZSBhdHRh Y2gtZGlyKSkpCiAgICAgKHdoZW4gKGZpbGUtZXhpc3RzLXAgb3V0cHV0KQogICAgICAgKHNpZ25h bCAnZmlsZS1hbHJlYWR5LWV4aXN0cyAobGlzdCAiRmlsZSBleGlzdHMiIG91dHB1dCkpKQotICAg ICh3aGVuIChhbmQgb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJvcGVydHkgKG5vdCBvcmctYXR0YWNo LWluaGVyaXRlZCkpCi0gICAgICAob3JnLWVudHJ5LWFkZC10by1tdWx0aXZhbHVlZC1wcm9wZXJ0 eQotICAgICAgIChwb2ludCkgb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJvcGVydHkgYnVmZmVyLW5h bWUpKQorICAgIChydW4taG9vay13aXRoLWFyZ3MgJ29yZy1hdHRhY2gtYWZ0ZXItY2hhbmdlLWhv b2sgYXR0YWNoLWRpcikKICAgICAob3JnLWF0dGFjaC10YWcpCiAgICAgKHdpdGgtdGVtcC1maWxl IG91dHB1dAogICAgICAgKGluc2VydC1idWZmZXItc3Vic3RyaW5nIGJ1ZmZlci1uYW1lKSkpKQog CiAoZGVmdW4gb3JnLWF0dGFjaC1hdHRhY2ggKGZpbGUgJm9wdGlvbmFsIHZpc2l0LWRpciBtZXRo b2QpCi0gICJNb3ZlL2NvcHkvbGluayBGSUxFIGludG8gdGhlIGF0dGFjaG1lbnQgZGlyZWN0b3J5 IG9mIHRoZSBjdXJyZW50IHRhc2suCisgICJNb3ZlL2NvcHkvbGluayBGSUxFIGludG8gdGhlIGF0 dGFjaG1lbnQgZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50IG91dGxpbmUgbm9kZS4KIElmIFZJU0lU LURJUiBpcyBub24tbmlsLCB2aXNpdCB0aGUgZGlyZWN0b3J5IHdpdGggZGlyZWQuCiBNRVRIT0Qg bWF5IGJlIGBjcCcsIGBtdicsIGBsbicsIGBsbnMnIG9yIGB1cmwnIGRlZmF1bHQgdGFrZW4gZnJv bQogYG9yZy1hdHRhY2gtbWV0aG9kJy4iCkBAIC00NTMsMTAgKzQ1Nyw3IEBAIE1FVEhPRCBtYXkg YmUgYGNwJywgYG12JywgYGxuJywgYGxucycgb3IgYHVybCcgZGVmYXVsdCB0YWtlbiBmcm9tCiAg ICAgbmlsKSkKICAgKHNldHEgbWV0aG9kIChvciBtZXRob2Qgb3JnLWF0dGFjaC1tZXRob2QpKQog ICAobGV0ICgoYmFzZW5hbWUgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgZmlsZSkpKQotICAgICh3 aGVuIChhbmQgb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJvcGVydHkgKG5vdCBvcmctYXR0YWNoLWlu aGVyaXRlZCkpCi0gICAgICAob3JnLWVudHJ5LWFkZC10by1tdWx0aXZhbHVlZC1wcm9wZXJ0eQot ICAgICAgIChwb2ludCkgb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJvcGVydHkgYmFzZW5hbWUpKQot ICAgIChsZXQqICgoYXR0YWNoLWRpciAob3JnLWF0dGFjaC1kaXIgdCkpCisgICAgKGxldCogKChh dHRhY2gtZGlyIChvcmctYXR0YWNoLWRpciAnZ2V0LWNyZWF0ZSkpCiAgICAgICAgICAgIChmbmFt ZSAoZXhwYW5kLWZpbGUtbmFtZSBiYXNlbmFtZSBhdHRhY2gtZGlyKSkpCiAgICAgICAoY29uZAog ICAgICAgICgoZXEgbWV0aG9kICdtdikgKHJlbmFtZS1maWxlIGZpbGUgZm5hbWUpKQpAQCAtNDY0 LDggKzQ2NSw3IEBAIE1FVEhPRCBtYXkgYmUgYGNwJywgYG12JywgYGxuJywgYGxucycgb3IgYHVy bCcgZGVmYXVsdCB0YWtlbiBmcm9tCiAgICAgICAgKChlcSBtZXRob2QgJ2xuKSAoYWRkLW5hbWUt dG8tZmlsZSBmaWxlIGZuYW1lKSkKICAgICAgICAoKGVxIG1ldGhvZCAnbG5zKSAobWFrZS1zeW1i b2xpYy1saW5rIGZpbGUgZm5hbWUpKQogICAgICAgICgoZXEgbWV0aG9kICd1cmwpICh1cmwtY29w eS1maWxlIGZpbGUgZm5hbWUpKSkKLSAgICAgICh3aGVuIG9yZy1hdHRhY2gtY29tbWl0Ci0gICAg ICAgIChvcmctYXR0YWNoLWNvbW1pdCkpCisgICAgICAocnVuLWhvb2std2l0aC1hcmdzICdvcmct YXR0YWNoLWFmdGVyLWNoYW5nZS1ob29rIGF0dGFjaC1kaXIpCiAgICAgICAob3JnLWF0dGFjaC10 YWcpCiAgICAgICAoY29uZCAoKGVxIG9yZy1hdHRhY2gtc3RvcmUtbGluay1wICdhdHRhY2hlZCkK ICAgICAgICAgICAgICAob3JnLWF0dGFjaC1zdG9yZS1saW5rIGZuYW1lKSkKQEAgLTQ3Myw3ICs0 NzMsNyBAQCBNRVRIT0QgbWF5IGJlIGBjcCcsIGBtdicsIGBsbicsIGBsbnMnIG9yIGB1cmwnIGRl ZmF1bHQgdGFrZW4gZnJvbQogICAgICAgICAgICAgIChvcmctYXR0YWNoLXN0b3JlLWxpbmsgZmls ZSkpKQogICAgICAgKGlmIHZpc2l0LWRpcgogICAgICAgICAgIChkaXJlZCBhdHRhY2gtZGlyKQot ICAgICAgICAobWVzc2FnZSAiRmlsZSAlUyBpcyBub3cgYSB0YXNrIGF0dGFjaG1lbnQuIiBiYXNl bmFtZSkpKSkpCisgICAgICAgIChtZXNzYWdlICJGaWxlICVTIGlzIG5vdyBhbiBhdHRhY2htZW50 LiIgYmFzZW5hbWUpKSkpKQogCiAoZGVmdW4gb3JnLWF0dGFjaC1hdHRhY2gtY3AgKCkKICAgIkF0 dGFjaCBhIGZpbGUgYnkgY29weWluZyBpdC4iCkBAIC00OTgsMTMgKzQ5OCwxMCBAQCBPbiBzb21l IHN5c3RlbXMsIHRoaXMgYXBwYXJlbnRseSBkb2VzIGNvcHkgdGhlIGZpbGUgaW5zdGVhZC4iCiAg IChsZXQgKChvcmctYXR0YWNoLW1ldGhvZCAnbG5zKSkgKGNhbGwtaW50ZXJhY3RpdmVseSAnb3Jn LWF0dGFjaC1hdHRhY2gpKSkKIAogKGRlZnVuIG9yZy1hdHRhY2gtbmV3IChmaWxlKQotICAiQ3Jl YXRlIGEgbmV3IGF0dGFjaG1lbnQgRklMRSBmb3IgdGhlIGN1cnJlbnQgdGFzay4KKyAgIkNyZWF0 ZSBhIG5ldyBhdHRhY2htZW50IEZJTEUgZm9yIHRoZSBjdXJyZW50IG91dGxpbmUgbm9kZS4KIFRo ZSBhdHRhY2htZW50IGlzIGNyZWF0ZWQgYXMgYW4gRW1hY3MgYnVmZmVyLiIKICAgKGludGVyYWN0 aXZlICJzQ3JlYXRlIGF0dGFjaG1lbnQgbmFtZWQ6ICIpCi0gICh3aGVuIChhbmQgb3JnLWF0dGFj aC1maWxlLWxpc3QtcHJvcGVydHkgKG5vdCBvcmctYXR0YWNoLWluaGVyaXRlZCkpCi0gICAgKG9y Zy1lbnRyeS1hZGQtdG8tbXVsdGl2YWx1ZWQtcHJvcGVydHkKLSAgICAgKHBvaW50KSBvcmctYXR0 YWNoLWZpbGUtbGlzdC1wcm9wZXJ0eSBmaWxlKSkKLSAgKGxldCAoKGF0dGFjaC1kaXIgKG9yZy1h dHRhY2gtZGlyIHQpKSkKKyAgKGxldCAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyICdnZXQt Y3JlYXRlKSkpCiAgICAgKG9yZy1hdHRhY2gtdGFnKQogICAgIChmaW5kLWZpbGUgKGV4cGFuZC1m aWxlLW5hbWUgZmlsZSBhdHRhY2gtZGlyKSkKICAgICAobWVzc2FnZSAiTmV3IGF0dGFjaG1lbnQg JXMiIGZpbGUpKSkKQEAgLTUxMiw3ICs1MDksNyBAQCBUaGUgYXR0YWNobWVudCBpcyBjcmVhdGVk IGFzIGFuIEVtYWNzIGJ1ZmZlci4iCiAoZGVmdW4gb3JnLWF0dGFjaC1kZWxldGUtb25lICgmb3B0 aW9uYWwgZmlsZSkKICAgIkRlbGV0ZSBhIHNpbmdsZSBhdHRhY2htZW50LiIKICAgKGludGVyYWN0 aXZlKQotICAobGV0KiAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyIHQpKQorICAobGV0KiAo KGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyKSkKIAkgKGZpbGVzIChvcmctYXR0YWNoLWZpbGUt bGlzdCBhdHRhY2gtZGlyKSkKIAkgKGZpbGUgKG9yIGZpbGUKIAkJICAgKGNvbXBsZXRpbmctcmVh ZApAQCAtNTI0LDQ0ICs1MjEsMzIgQEAgVGhlIGF0dGFjaG1lbnQgaXMgY3JlYXRlZCBhcyBhbiBF bWFjcyBidWZmZXIuIgogICAgICh1bmxlc3MgKGZpbGUtZXhpc3RzLXAgZmlsZSkKICAgICAgIChl cnJvciAiTm8gc3VjaCBhdHRhY2htZW50OiAlcyIgZmlsZSkpCiAgICAgKGRlbGV0ZS1maWxlIGZp bGUpCi0gICAgKHdoZW4gb3JnLWF0dGFjaC1jb21taXQKLSAgICAgIChvcmctYXR0YWNoLWNvbW1p dCkpKSkKKyAgICAocnVuLWhvb2std2l0aC1hcmdzICdvcmctYXR0YWNoLWFmdGVyLWNoYW5nZS1o b29rIGF0dGFjaC1kaXIpKSkKIAogKGRlZnVuIG9yZy1hdHRhY2gtZGVsZXRlLWFsbCAoJm9wdGlv bmFsIGZvcmNlKQotICAiRGVsZXRlIGFsbCBhdHRhY2htZW50cyBmcm9tIHRoZSBjdXJyZW50IHRh c2suCisgICJEZWxldGUgYWxsIGF0dGFjaG1lbnRzIGZyb20gdGhlIGN1cnJlbnQgb3V0bGluZSBu b2RlLgogVGhpcyBhY3R1YWxseSBkZWxldGVzIHRoZSBlbnRpcmUgYXR0YWNobWVudCBkaXJlY3Rv cnkuCiBBIHNhZmVyIHdheSBpcyB0byBvcGVuIHRoZSBkaXJlY3RvcnkgaW4gZGlyZWQgYW5kIGRl bGV0ZSBmcm9tIHRoZXJlLiIKICAgKGludGVyYWN0aXZlICJQIikKLSAgKHdoZW4gKGFuZCBvcmct YXR0YWNoLWZpbGUtbGlzdC1wcm9wZXJ0eSAobm90IG9yZy1hdHRhY2gtaW5oZXJpdGVkKSkKLSAg ICAob3JnLWVudHJ5LWRlbGV0ZSAocG9pbnQpIG9yZy1hdHRhY2gtZmlsZS1saXN0LXByb3BlcnR5 KSkKICAgKGxldCAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyKSkpCi0gICAgKHdoZW4KLQko YW5kIGF0dGFjaC1kaXIKLQkgICAgIChvciBmb3JjZQotCQkgKHktb3Itbi1wICJBcmUgeW91IHN1 cmUgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBhdHRhY2htZW50cyBvZiB0aGlzIGVudHJ5PyAiKSkp Ci0gICAgICAoc2hlbGwtY29tbWFuZCAoZm9ybWF0ICJybSAtZnIgJXMiIGF0dGFjaC1kaXIpKQor ICAgICh3aGVuIChhbmQgYXR0YWNoLWRpcgorCSAgICAgICAob3IgZm9yY2UKKwkJICAgKHllcy1v ci1uby1wICJSZWFsbHkgcmVtb3ZlIGFsbCBhdHRhY2htZW50cyBvZiB0aGlzIGVudHJ5PyAiKSkp CisgICAgICAoZGVsZXRlLWRpcmVjdG9yeSBhdHRhY2gtZGlyICh5ZXMtb3Itbm8tcCAiUmVjdXJz aXZlPyIpIHQpCiAgICAgICAobWVzc2FnZSAiQXR0YWNobWVudCBkaXJlY3RvcnkgcmVtb3ZlZCIp Ci0gICAgICAod2hlbiBvcmctYXR0YWNoLWNvbW1pdAotICAgICAgICAob3JnLWF0dGFjaC1jb21t aXQpKQorICAgICAgKHJ1bi1ob29rLXdpdGgtYXJncyAnb3JnLWF0dGFjaC1hZnRlci1jaGFuZ2Ut aG9vayBhdHRhY2gtZGlyKQogICAgICAgKG9yZy1hdHRhY2gtdW50YWcpKSkpCiAKIChkZWZ1biBv cmctYXR0YWNoLXN5bmMgKCkKLSAgIlN5bmNocm9uaXplIHRoZSBjdXJyZW50IHRhc2tzIHdpdGgg aXRzIGF0dGFjaG1lbnRzLgorICAiU3luY2hyb25pemUgdGhlIGN1cnJlbnQgb3V0bGluZSBub2Rl IHdpdGggaXRzIGF0dGFjaG1lbnRzLgogVGhpcyBjYW4gYmUgdXNlZCBhZnRlciBmaWxlcyBoYXZl IGJlZW4gYWRkZWQgZXh0ZXJuYWxseS4iCiAgIChpbnRlcmFjdGl2ZSkKLSAgKHdoZW4gb3JnLWF0 dGFjaC1jb21taXQKLSAgICAob3JnLWF0dGFjaC1jb21taXQpKQotICAod2hlbiAoYW5kIG9yZy1h dHRhY2gtZmlsZS1saXN0LXByb3BlcnR5IChub3Qgb3JnLWF0dGFjaC1pbmhlcml0ZWQpKQotICAg IChvcmctZW50cnktZGVsZXRlIChwb2ludCkgb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJvcGVydHkp KQogICAobGV0ICgoYXR0YWNoLWRpciAob3JnLWF0dGFjaC1kaXIpKSkKICAgICAod2hlbiBhdHRh Y2gtZGlyCisgICAgICAocnVuLWhvb2std2l0aC1hcmdzICdvcmctYXR0YWNoLWFmdGVyLWNoYW5n ZS1ob29rIGF0dGFjaC1kaXIpCiAgICAgICAobGV0ICgoZmlsZXMgKG9yZy1hdHRhY2gtZmlsZS1s aXN0IGF0dGFjaC1kaXIpKSkKLQkob3JnLWF0dGFjaC10YWcgKG5vdCBmaWxlcykpCi0JKHdoZW4g b3JnLWF0dGFjaC1maWxlLWxpc3QtcHJvcGVydHkKLQkgIChkb2xpc3QgKGZpbGUgZmlsZXMpCi0J ICAgICh1bmxlc3MgKHN0cmluZy1tYXRjaCAiXlxcLlxcLj9cXCciIGZpbGUpCi0JICAgICAgKG9y Zy1lbnRyeS1hZGQtdG8tbXVsdGl2YWx1ZWQtcHJvcGVydHkKLQkgICAgICAgKHBvaW50KSBvcmct YXR0YWNoLWZpbGUtbGlzdC1wcm9wZXJ0eSBmaWxlKSkpKSkpKSkKKwkob3JnLWF0dGFjaC10YWcg KG5vdCBmaWxlcykpKSkKKyAgICAodW5sZXNzIGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtdGFnIHQp KSkpCiAKIChkZWZ1biBvcmctYXR0YWNoLWZpbGUtbGlzdCAoZGlyKQogICAiUmV0dXJuIGEgbGlz dCBvZiBmaWxlcyBpbiB0aGUgYXR0YWNobWVudCBkaXJlY3RvcnkuCkBAIC01NzAsMzUgKzU1NSw0 MCBAQCBUaGlzIGlnbm9yZXMgZmlsZXMgZW5kaW5nIGluIFwiflwiLiIKIAkobWFwY2FyIChsYW1i ZGEgKHgpIChpZiAoc3RyaW5nLW1hdGNoICJeXFwuXFwuP1xcJyIgeCkgbmlsIHgpKQogCQkoZGly ZWN0b3J5LWZpbGVzIGRpciBuaWwgIltefl1cXCciKSkpKQogCi0oZGVmdW4gb3JnLWF0dGFjaC1y ZXZlYWwgKCZvcHRpb25hbCBpZi1leGlzdHMpCi0gICJTaG93IHRoZSBhdHRhY2htZW50IGRpcmVj dG9yeSBvZiB0aGUgY3VycmVudCB0YXNrLgorKGRlZnVuIG9yZy1hdHRhY2gtcmV2ZWFsICgpCisg ICJTaG93IHRoZSBhdHRhY2htZW50IGRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBvdXRsaW5lIG5v ZGUuCiBUaGlzIHdpbGwgYXR0ZW1wdCB0byB1c2UgYW4gZXh0ZXJuYWwgcHJvZ3JhbSB0byBzaG93 IHRoZSBkaXJlY3RvcnkuIgotICAoaW50ZXJhY3RpdmUgIlAiKQotICAobGV0ICgoYXR0YWNoLWRp ciAob3JnLWF0dGFjaC1kaXIgKG5vdCBpZi1leGlzdHMpKSkpCi0gICAgKGFuZCBhdHRhY2gtZGly IChvcmctb3Blbi1maWxlIGF0dGFjaC1kaXIpKSkpCisgIChpbnRlcmFjdGl2ZSkKKyAgKGxldCAo KGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyKSkpCisgICAgKGlmIGF0dGFjaC1kaXIKKwkob3Jn LW9wZW4tZmlsZSBhdHRhY2gtZGlyKQorICAgICAgKGVycm9yICJObyBhdHRhY2htZW50IGRpcmVj dG9yeSBleGlzdCIpKSkpCiAKIChkZWZ1biBvcmctYXR0YWNoLXJldmVhbC1pbi1lbWFjcyAoKQot ICAiU2hvdyB0aGUgYXR0YWNobWVudCBkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQgdGFzayBpbiBk aXJlZC4iCisgICJTaG93IHRoZSBhdHRhY2htZW50IGRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBv dXRsaW5lIG5vZGUgaW4gZGlyZWQuIgogICAoaW50ZXJhY3RpdmUpCi0gIChsZXQgKChhdHRhY2gt ZGlyIChvcmctYXR0YWNoLWRpciB0KSkpCi0gICAgKGRpcmVkIGF0dGFjaC1kaXIpKSkKKyAgKGxl dCAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyKSkpCisgICAgKGlmIGF0dGFjaC1kaXIKKwko ZGlyZWQgYXR0YWNoLWRpcikKKyAgICAgIChlcnJvciAiTm8gYXR0YWNobWVudCBkaXJlY3Rvcnkg ZXhpc3QiKSkpKQogCiAoZGVmdW4gb3JnLWF0dGFjaC1vcGVuICgmb3B0aW9uYWwgaW4tZW1hY3Mp Ci0gICJPcGVuIGFuIGF0dGFjaG1lbnQgb2YgdGhlIGN1cnJlbnQgdGFzay4KKyAgIk9wZW4gYW4g YXR0YWNobWVudCBvZiB0aGUgY3VycmVudCBvdXRsaW5lIG5vZGUuCiBJZiB0aGVyZSBhcmUgbW9y ZSB0aGFuIG9uZSBhdHRhY2htZW50LCB5b3Ugd2lsbCBiZSBwcm9tcHRlZCBmb3IgdGhlIGZpbGUg bmFtZS4KIFRoaXMgY29tbWFuZCB3aWxsIG9wZW4gdGhlIGZpbGUgdXNpbmcgdGhlIHNldHRpbmdz IGluIGBvcmctZmlsZS1hcHBzJwogYW5kIGluIHRoZSBzeXN0ZW0tc3BlY2lmaWMgdmFyaWFudHMg b2YgdGhpcyB2YXJpYWJsZS4KIElmIElOLUVNQUNTIGlzIG5vbi1uaWwsIGZvcmNlIG9wZW5pbmcg aW4gRW1hY3MuIgogICAoaW50ZXJhY3RpdmUgIlAiKQotICAobGV0KiAoKGF0dGFjaC1kaXIgKG9y Zy1hdHRhY2gtZGlyIHQpKQotCSAoZmlsZXMgKG9yZy1hdHRhY2gtZmlsZS1saXN0IGF0dGFjaC1k aXIpKQotCSAoZmlsZSAoaWYgKD0gKGxlbmd0aCBmaWxlcykgMSkKLQkJICAgKGNhciBmaWxlcykK LQkJIChjb21wbGV0aW5nLXJlYWQgIk9wZW4gYXR0YWNobWVudDogIgotCQkJCSAgKG1hcGNhciAj J2xpc3QgZmlsZXMpIG5pbCB0KSkpCi0gICAgICAgICAocGF0aCAoZXhwYW5kLWZpbGUtbmFtZSBm aWxlIGF0dGFjaC1kaXIpKSkKLSAgICAob3JnLWF0dGFjaC1hbm5leC1nZXQtbWF5YmUgcGF0aCkK LSAgICAob3JnLW9wZW4tZmlsZSBwYXRoIGluLWVtYWNzKSkpCisgIChsZXQgKChhdHRhY2gtZGly IChvcmctYXR0YWNoLWRpcikpKQorICAgIChpZiBhdHRhY2gtZGlyCisJKGxldCogKChmaWxlIChw Y2FzZSAob3JnLWF0dGFjaC1maWxlLWxpc3QgYXR0YWNoLWRpcikKKwkJICAgICAgIChgKCxmaWxl KSBmaWxlKQorCQkgICAgICAgKGZpbGVzIChjb21wbGV0aW5nLXJlYWQgIk9wZW4gYXR0YWNobWVu dDogIgorCQkJCQkgICAgICAgKG1hcGNhciAjJ2xpc3QgZmlsZXMpIG5pbCB0KSkpKQorCSAgICAg ICAocGF0aCAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlIGF0dGFjaC1kaXIpKSkKKwkgIChydW4taG9v ay13aXRoLWFyZ3MgJ29yZy1hdHRhY2gtb3Blbi1ob29rIHBhdGgpCisJICAob3JnLW9wZW4tZmls ZSBwYXRoIGluLWVtYWNzKSkKKyAgICAgIChlcnJvciAiTm8gYXR0YWNobWVudCBkaXJlY3Rvcnkg ZXhpc3QiKSkpKQogCiAoZGVmdW4gb3JnLWF0dGFjaC1vcGVuLWluLWVtYWNzICgpCiAgICJPcGVu IGF0dGFjaG1lbnQsIGZvcmNlIG9wZW5pbmcgaW4gRW1hY3MuCkBAIC02MTcsNiArNjA3LDY5IEBA IEJhc2ljYWxseSwgdGhpcyBhZGRzIHRoZSBwYXRoIHRvIHRoZSBhdHRhY2htZW50IGRpcmVjdG9y eSwgYW5kIGEgXCJmaWxlOlwiCiBwcmVmaXguIgogICAoY29uY2F0ICJmaWxlOiIgKG9yZy1hdHRh Y2gtZXhwYW5kIGZpbGUpKSkKIAorKG9yZy1saW5rLXNldC1wYXJhbWV0ZXJzICJhdHRhY2htZW50 IgorICAgICAgICAgICAgICAgICAgICAgICAgIDpmb2xsb3cgIydvcmctYXR0YWNoLW9wZW4tbGlu aworICAgICAgICAgICAgICAgICAgICAgICAgIDpleHBvcnQgIydvcmctYXR0YWNoLWV4cG9ydC1s aW5rCisgICAgICAgICAgICAgICAgICAgICAgICAgOmNvbXBsZXRlICMnb3JnLWF0dGFjaC1jb21w bGV0ZS1saW5rKQorCisoZGVmdW4gb3JnLWF0dGFjaC1vcGVuLWxpbmsgKGxpbmsgJm9wdGlvbmFs IGluLWVtYWNzKQorICAiQXR0YWNobWVudCBsaW5rIHR5cGUgTElOSyBpcyBleHBhbmRlZCB3aXRo IHRoZSBhdHRhY2hlZCBkaXJlY3RvcnkgYW5kIG9wZW5lZC4KKworV2l0aCBvcHRpb25hbCBwcmVm aXggYXJndW1lbnQgSU4tRU1BQ1MsIEVtYWNzIHdpbGwgdmlzaXQgdGhlIGZpbGUuCitXaXRoIGEg ZG91YmxlIFxcW3VuaXZlcnNhbC1hcmd1bWVudF0gXFxbdW5pdmVyc2FsLWFyZ3VtZW50XSBcCitw cmVmaXggYXJnLCBPcmcgdHJpZXMgdG8gYXZvaWQgb3BlbmluZyBpbiBFbWFjcworYW5kIHRvIHVz ZSBhbiBleHRlcm5hbCBhcHBsaWNhdGlvbiB0byB2aXNpdCB0aGUgZmlsZS4iCisgIChpbnRlcmFj dGl2ZSAiUCIpCisgIChsZXQgKGxpbmUgc2VhcmNoKQorICAgIChjb25kCisgICAgICgoc3RyaW5n LW1hdGNoICI6OlxcKFswLTldK1xcKVxcJyIgbGluaykKKyAgICAgIChzZXRxIGxpbmUgKHN0cmlu Zy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIGxpbmspKQorCSAgICBsaW5rIChzdWJzdHJpbmcg bGluayAwIChtYXRjaC1iZWdpbm5pbmcgMCkpKSkKKyAgICAgKChzdHJpbmctbWF0Y2ggIjo6XFwo LitcXClcXCciIGxpbmspCisgICAgICAoc2V0cSBzZWFyY2ggKG1hdGNoLXN0cmluZyAxIGxpbmsp CisgICAgICAgICAgICBsaW5rIChzdWJzdHJpbmcgbGluayAwIChtYXRjaC1iZWdpbm5pbmcgMCkp KSkpCisgICAgKGlmIChzdHJpbmctbWF0Y2ggIlsqP3tdIiAoZmlsZS1uYW1lLW5vbmRpcmVjdG9y eSBsaW5rKSkKKyAgICAgICAgKGRpcmVkIChvcmctYXR0YWNoLWV4cGFuZCBsaW5rKSkKKyAgICAg IChvcmctb3Blbi1maWxlIChvcmctYXR0YWNoLWV4cGFuZCBsaW5rKSBpbi1lbWFjcyBsaW5lIHNl YXJjaCkpKSkKKworKGRlZnVuIG9yZy1hdHRhY2gtY29tcGxldGUtbGluayAoKQorICAiQWR2aXNl IHRoZSB1c2VyIHdpdGggdGhlIGF2YWlsYWJsZSBmaWxlcyBpbiB0aGUgYXR0YWNobWVudCBkaXJl Y3RvcnkuIgorICAobGV0ICgoYXR0YWNoLWRpciAob3JnLWF0dGFjaC1kaXIpKSkKKyAgICAoaWYg YXR0YWNoLWRpcgorCShsZXQqICgoYXR0YWNoZWQtZGlyIChleHBhbmQtZmlsZS1uYW1lIGF0dGFj aC1kaXIpKQorCSAgICAgICAoZmlsZSAocmVhZC1maWxlLW5hbWUgIkZpbGU6ICIgYXR0YWNoZWQt ZGlyKSkKKwkgICAgICAgKHB3ZCAoZmlsZS1uYW1lLWFzLWRpcmVjdG9yeSBhdHRhY2hlZC1kaXIp KQorICAgICAgICAgICAgICAgKHB3ZC1yZWxhdGl2ZSAoZmlsZS1uYW1lLWFzLWRpcmVjdG9yeQor CQkJICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lIGF0dGFjaGVkLWRpcikpKSkKKwkgIChjb25k CisJICAgKChzdHJpbmctbWF0Y2ggKGNvbmNhdCAiXiIgKHJlZ2V4cC1xdW90ZSBwd2QtcmVsYXRp dmUpICJcXCguK1xcKSIpIGZpbGUpCisJICAgIChjb25jYXQgImF0dGFjaG1lbnQ6IiAobWF0Y2gt c3RyaW5nIDEgZmlsZSkpKQorCSAgICgoc3RyaW5nLW1hdGNoIChjb25jYXQgIl4iIChyZWdleHAt cXVvdGUgcHdkKSAiXFwoLitcXCkiKQorCQkJICAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlKSkKKwkg ICAgKGNvbmNhdCAiYXR0YWNobWVudDoiIChtYXRjaC1zdHJpbmcgMSAoZXhwYW5kLWZpbGUtbmFt ZSBmaWxlKSkpKQorCSAgICh0IChjb25jYXQgImF0dGFjaG1lbnQ6IiBmaWxlKSkpKQorICAgICAg KGVycm9yICJObyBhdHRhY2htZW50IGRpcmVjdG9yeSBleGlzdCIpKSkpCisKKyhkZWZ1biBvcmct YXR0YWNoLWV4cG9ydC1saW5rIChsaW5rIGRlc2NyaXB0aW9uIGZvcm1hdCkKKyAgIlRyYW5zbGF0 ZSBhdHRhY2htZW50IExJTksgZnJvbSBPcmcgbW9kZSBmb3JtYXQgdG8gZXhwb3J0ZWQgRk9STUFU LgorQWxzbyBpbmNsdWRlcyB0aGUgREVTQ1JJUFRJT04gb2YgdGhlIGxpbmsgaW4gdGhlIGV4cG9y dC4iCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChsZXQgKHBhdGggZGVzYykKKyAgICAgIChjb25k CisgICAgICAgKChzdHJpbmctbWF0Y2ggIjo6XFwoWzAtOV0rXFwpXFwnIiBsaW5rKQorICAgICAg ICAoc2V0cSBsaW5rIChzdWJzdHJpbmcgbGluayAwIChtYXRjaC1iZWdpbm5pbmcgMCkpKSkKKyAg ICAgICAoKHN0cmluZy1tYXRjaCAiOjpcXCguK1xcKVxcJyIgbGluaykKKyAgICAgICAgKHNldHEg bGluayAoc3Vic3RyaW5nIGxpbmsgMCAobWF0Y2gtYmVnaW5uaW5nIDApKSkpKQorICAgICAgKHNl dHEgcGF0aCAoZmlsZS1yZWxhdGl2ZS1uYW1lIChvcmctYXR0YWNoLWV4cGFuZCBsaW5rKSkKKyAg ICAgICAgICAgIGRlc2MgKG9yIGRlc2NyaXB0aW9uIGxpbmspKQorICAgICAgKHBjYXNlIGZvcm1h dAorICAgICAgICAoYGh0bWwgKGZvcm1hdCAiPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIiVz XCI+JXM8L2E+IiBwYXRoIGRlc2MpKQorICAgICAgICAoYGxhdGV4IChmb3JtYXQgIlxcaHJlZnsl c317JXN9IiBwYXRoIGRlc2MpKQorICAgICAgICAoYHRleGluZm8gKGZvcm1hdCAiQHVyZWZ7JXMs JXN9IiBwYXRoIGRlc2MpKQorICAgICAgICAoYGFzY2lpIChmb3JtYXQgIiVzICglcykiIGRlc2Mg cGF0aCkpCisgICAgICAgIChgbWQgKGZvcm1hdCAiWyVzXSglcykiIGRlc2MgcGF0aCkpCisgICAg ICAgIChfIHBhdGgpKSkpKQorCiAoZGVmdW4gb3JnLWF0dGFjaC1hcmNoaXZlLWRlbGV0ZS1tYXli ZSAoKQogICAiTWF5YmUgZGVsZXRlIHN1YnRyZWUgYXR0YWNobWVudHMgd2hlbiBhcmNoaXZpbmcu CiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBgb3JnLWFyY2hpdmUtaG9vaycuICBUaGUgb3B0 aW9uCkBAIC02NDQsNyArNjk3LDcgQEAgSWRlYSB0YWtlbiBmcm9tIGBnbnVzLWRpcmVkLWF0dGFj aCcuIgogICAoaW50ZXJhY3RpdmUKICAgIChsaXN0IChkaXJlZC1nZXQtbWFya2VkLWZpbGVzKSkp CiAgICh1bmxlc3MgKGVxIG1ham9yLW1vZGUgJ2RpcmVkLW1vZGUpCi0gICAgKHVzZXItZXJyb3Ig IlRoaXMgY29tbWFuZCBtdXN0IGJlIHRyaWdnZXJlZCBpbiBhIGRpcmVkIGJ1ZmZlci4iKSkKKyAg ICAodXNlci1lcnJvciAiVGhpcyBjb21tYW5kIG11c3QgYmUgdHJpZ2dlcmVkIGluIGEgZGlyZWQg YnVmZmVyIikpCiAgIChsZXQgKChzdGFydC13aW4gKHNlbGVjdGVkLXdpbmRvdykpCiAgICAgICAg IChvdGhlci13aW4KICAgICAgICAgIChnZXQtd2luZG93LXdpdGgtcHJlZGljYXRlCmRpZmYgLS1n aXQgYS9saXNwL29yZy1jb21wYXQuZWwgYi9saXNwL29yZy1jb21wYXQuZWwKaW5kZXggOWNiMzk2 ZmU5Li40MmZlNjQzNzkgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWNvbXBhdC5lbAorKysgYi9saXNw L29yZy1jb21wYXQuZWwKQEAgLTI2Myw2ICsyNjMsOSBAQCBDb3VudGluZyBzdGFydHMgYXQgMS4i CiAoZGVmaW5lLW9ic29sZXRlLWZ1bmN0aW9uLWFsaWFzICdvcmctcmVtb3ZlLWxhdGV4LWZyYWdt ZW50LWltYWdlLW92ZXJsYXlzCiAgICdvcmctY2xlYXItbGF0ZXgtcHJldmlldyAiT3JnIDkuMyIp CiAKKyhkZWZpbmUtb2Jzb2xldGUtdmFyaWFibGUtYWxpYXMgJ29yZy1hdHRhY2gtZGlyZWN0b3J5 CisgICdvcmctYXR0YWNoLWlkLWRpciAiT3JnIDkuMyIpCisKIChkZWZ1biBvcmctaW4tZml4ZWQt d2lkdGgtcmVnaW9uLXAgKCkKICAgIk5vbi1uaWwgaWYgcG9pbnQgaW4gYSBmaXhlZC13aWR0aCBy ZWdpb24uIgogICAoc2F2ZS1tYXRjaC1kYXRhCmRpZmYgLS1naXQgYS9saXNwL29yZy5lbCBiL2xp c3Avb3JnLmVsCmluZGV4IDk2MDFlY2YyZS4uNWQ2Y2M3NTdkIDEwMDY0NAotLS0gYS9saXNwL29y Zy5lbAorKysgYi9saXNwL29yZy5lbApAQCAtMzg0Nyw3ICszODQ3LDkgQEAgVGhpcyBpcyBuZWVk ZWQgZm9yIGZvbnQtbG9jayBzZXR1cC4iKQogCQkgIChiZWcgZW5kKSkKIChkZWNsYXJlLWZ1bmN0 aW9uIG9yZy1hZ2VuZGEtc2V0LXJlc3RyaWN0aW9uLWxvY2sgIm9yZy1hZ2VuZGEiICgmb3B0aW9u YWwgdHlwZSkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctYWdlbmRhLXNraXAgIm9yZy1hZ2VuZGEi ICgpKQotKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWF0dGFjaC1yZXZlYWwgIm9yZy1hdHRhY2giICgm b3B0aW9uYWwgaWYtZXhpc3RzKSkKKyhkZWNsYXJlLWZ1bmN0aW9uIG9yZy1hdHRhY2gtZXhwYW5k ICJvcmctYXR0YWNoIiAoZmlsZSkpCisoZGVjbGFyZS1mdW5jdGlvbiBvcmctYXR0YWNoLXJldmVh bCAib3JnLWF0dGFjaCIgKCkpCisoZGVjbGFyZS1mdW5jdGlvbiBvcmctYXR0YWNoLXJldmVhbC1p bi1lbWFjcyAib3JnLWF0dGFjaCIgKCkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctZ251cy1mb2xs b3ctbGluayAib3JnLWdudXMiICgmb3B0aW9uYWwgZ3JvdXAgYXJ0aWNsZSkpCiAoZGVjbGFyZS1m dW5jdGlvbiBvcmctaW5kZW50LW1vZGUgIm9yZy1pbmRlbnQiICgmb3B0aW9uYWwgYXJnKSkKIChk ZWNsYXJlLWZ1bmN0aW9uIG9yZy1pbmxpbmV0YXNrLWdvdG8tYmVnaW5uaW5nICJvcmctaW5saW5l dGFzayIgKCkpCkBAIC04NjQ1LDEyICs4NjQ3LDE1IEBAIGEgbGluay4iCiAJICAocGNhc2UgKG9y Zy1vZmZlci1saW5rcy1pbi1lbnRyeSAoY3VycmVudC1idWZmZXIpIChwb2ludCkgYXJnKQogCSAg ICAoYChuaWwgLiAsXykKIAkgICAgIChyZXF1aXJlICdvcmctYXR0YWNoKQotCSAgICAgKG9yZy1h dHRhY2gtcmV2ZWFsICdpZi1leGlzdHMpKQorCSAgICAgKG1lc3NhZ2UgIk9wZW5pbmcgYXR0YWNo bWVudC1kaXIiKQorCSAgICAgKGlmIChlcXVhbCBhcmcgJyg0KSkKKwkJIChvcmctYXR0YWNoLXJl dmVhbC1pbi1lbWFjcykKKwkgICAgICAgKG9yZy1hdHRhY2gtcmV2ZWFsKSkpCiAJICAgIChgKCxs aW5rcyAuICxsaW5rcy1lbmQpCiAJICAgICAoZG9saXN0IChsaW5rIChpZiAoc3RyaW5ncCBsaW5r cykgKGxpc3QgbGlua3MpIGxpbmtzKSkKIAkgICAgICAgKHNlYXJjaC1mb3J3YXJkIGxpbmsgbmls IGxpbmtzLWVuZCkKIAkgICAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDApKQotCSAg ICAgICAob3JnLW9wZW4tYXQtcG9pbnQpKSkpKSkKKwkgICAgICAgKG9yZy1vcGVuLWF0LXBvaW50 IGFyZykpKSkpKQogICAgICAgIDs7IE9uIGEgZm9vdG5vdGUgcmVmZXJlbmNlIG9yIGF0IGRlZmlu aXRpb24ncyBsYWJlbC4KICAgICAgICAoKG9yIChlcSB0eXBlICdmb290bm90ZS1yZWZlcmVuY2Up CiAJICAgIChhbmQgKGVxIHR5cGUgJ2Zvb3Rub3RlLWRlZmluaXRpb24pCkBAIC0xNjYzMCwxMyAr MTY2MzUsMTQgQEAgYm91bmRhcmllcy4iCiAJICAgICA7OyAiZmlsZToiIGxpbmtzLiAgQWxzbyBj aGVjayBsaW5rIGFiYnJldmlhdGlvbnMgc2luY2UKIAkgICAgIDs7IHNvbWUgbWlnaHQgZXhwYW5k IHRvICJmaWxlIiBsaW5rcy4KIAkgICAgIChmaWxlLXR5cGVzLXJlCi0JICAgICAgKGZvcm1hdCAi XFxbXFxbXFwoPzpmaWxlJXM6XFx8Wy4vfl1cXClcXHxcXF1cXFtcXCg8P2ZpbGU6XFwpIgorCSAg ICAgIChmb3JtYXQgIlxcW1xcW1xcKD86ZmlsZSVzOlxcfGF0dGFjaG1lbnQ6XFx8Wy4vfl1cXClc XHxcXF1cXFtcXCg8P2ZpbGU6XFwpIgogCQkgICAgICAoaWYgKG5vdCBsaW5rLWFiYnJldnMpICIi CiAJCQkoY29uY2F0ICJcXHwiIChyZWdleHAtb3B0IGxpbmstYWJicmV2cykpKSkpKQogCSh3aGls ZSAocmUtc2VhcmNoLWZvcndhcmQgZmlsZS10eXBlcy1yZSBlbmQgdCkKIAkgIChsZXQqICgobGlu ayAob3JnLWVsZW1lbnQtbGluZWFnZQogCQkJKHNhdmUtbWF0Y2gtZGF0YSAob3JnLWVsZW1lbnQt Y29udGV4dCkpCiAJCQknKGxpbmspIHQpKQorICAgICAgICAgICAgICAgICAobGlua3R5cGUgKG9y Zy1lbGVtZW50LXByb3BlcnR5IDp0eXBlIGxpbmspKQogCQkgKGlubmVyLXN0YXJ0IChtYXRjaC1i ZWdpbm5pbmcgMSkpCiAJCSAocGF0aAogCQkgIChjb25kCkBAIC0xNjY1MCw3ICsxNjY1Niw4IEBA IGJvdW5kYXJpZXMuIgogCQkgICA7OyBJTkNMVURFLUxJTktFRCBpcyBub24tbmlsLgogCQkgICAo KG9yIChub3QgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250ZW50cy1iZWdpbiBsaW5rKSkKIAkJ CWluY2x1ZGUtbGlua2VkKQotCQkgICAgKGFuZCAoZXF1YWwgImZpbGUiIChvcmctZWxlbWVudC1w cm9wZXJ0eSA6dHlwZSBsaW5rKSkKKwkJICAgIChhbmQgKG9yIChlcXVhbCAiZmlsZSIgbGlua3R5 cGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcXVhbCAiYXR0YWNobWVudCIgbGlu a3R5cGUpKQogCQkJIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGF0aCBsaW5rKSkpCiAJCSAgIDs7 IExpbmsgd2l0aCBhIGRlc2NyaXB0aW9uLiAgQ2hlY2sgaWYgZGVzY3JpcHRpb24KIAkJICAgOzsg aXMgYSBmaWxlbmFtZS4gIEV2ZW4gaWYgT3JnIGRvZXNuJ3QgaGF2ZSBzeW50YXgKQEAgLTE2NjY5 LDcgKzE2Njc2LDExIEBAIGJvdW5kYXJpZXMuIgogCQkJICAgICAgKG1hdGNoLWVuZCAwKSkKIAkJ CSAgIChtYXRjaC1zdHJpbmcgMikpKSkpKSkKIAkgICAgKHdoZW4gKGFuZCBwYXRoIChzdHJpbmct bWF0Y2gtcCBmaWxlLWV4dGVuc2lvbi1yZSBwYXRoKSkKLQkgICAgICAobGV0ICgoZmlsZSAoZXhw YW5kLWZpbGUtbmFtZSBwYXRoKSkpCisJICAgICAgKGxldCAoKGZpbGUgKGlmIChlcXVhbCAiYXR0 YWNobWVudCIgbGlua3R5cGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJvZ24K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVpcmUgJ29yZy1hdHRhY2gpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmctYXR0YWNoLWV4cGFuZCBwYXRoKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwYW5kLWZpbGUtbmFtZSBwYXRoKSkpKQog CQkod2hlbiAoZmlsZS1leGlzdHMtcCBmaWxlKQogCQkgIChsZXQgKCh3aWR0aAogCQkJIDs7IEFw cGx5IGBvcmctaW1hZ2UtYWN0dWFsLXdpZHRoJyBzcGVjaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBh L2xpc3Avb3gtaHRtbC5lbCBiL2xpc3Avb3gtaHRtbC5lbAppbmRleCBmMWMwNmUwNjkuLjc1NzAw NjMyMSAxMDA2NDQKLS0tIGEvbGlzcC9veC1odG1sLmVsCisrKyBiL2xpc3Avb3gtaHRtbC5lbApA QCAtODg0LDYgKzg4NCw3IEBAIGxpbmsgdG8gdGhlIGltYWdlLiIKIAogKGRlZmN1c3RvbSBvcmct aHRtbC1pbmxpbmUtaW1hZ2UtcnVsZXMKICAgJygoImZpbGUiIC4gIlxcLlxcKGpwZWdcXHxqcGdc XHxwbmdcXHxnaWZcXHxzdmdcXClcXCciKQorICAgICgiYXR0YWNobWVudCIgLiAiXFwuXFwoanBl Z1xcfGpwZ1xcfHBuZ1xcfGdpZlxcfHN2Z1xcKVxcJyIpCiAgICAgKCJodHRwIiAuICJcXC5cXChq cGVnXFx8anBnXFx8cG5nXFx8Z2lmXFx8c3ZnXFwpXFwnIikKICAgICAoImh0dHBzIiAuICJcXC5c XChqcGVnXFx8anBnXFx8cG5nXFx8Z2lmXFx8c3ZnXFwpXFwnIikpCiAgICJSdWxlcyBjaGFyYWN0 ZXJpemluZyBpbWFnZSBmaWxlcyB0aGF0IGNhbiBiZSBpbmxpbmVkIGludG8gSFRNTC4KZGlmZiAt LWdpdCBhL3Rlc3RpbmcvZXhhbXBsZXMvYXR0MS9maWxlQSBiL3Rlc3RpbmcvZXhhbXBsZXMvYXR0 MS9maWxlQQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjlhMDQwNmMwZAot LS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZXhhbXBsZXMvYXR0MS9maWxlQQpAQCAtMCwwICsx IEBACitUZXh0IGluIGZpbGVBCmRpZmYgLS1naXQgYS90ZXN0aW5nL2V4YW1wbGVzL2F0dDEvZmls ZUIgYi90ZXN0aW5nL2V4YW1wbGVzL2F0dDEvZmlsZUIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwLi5kZDIzMzE4MjQKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2V4YW1w bGVzL2F0dDEvZmlsZUIKQEAgLTAsMCArMSBAQAorVGV4dCBpbiBmaWxlQgpkaWZmIC0tZ2l0IGEv dGVzdGluZy9leGFtcGxlcy9hdHQyL2ZpbGVDIGIvdGVzdGluZy9leGFtcGxlcy9hdHQyL2ZpbGVD Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMmM5YTkyYmZlCi0tLSAvZGV2 L251bGwKKysrIGIvdGVzdGluZy9leGFtcGxlcy9hdHQyL2ZpbGVDCkBAIC0wLDAgKzEgQEAKK1Rl eHQgaW4gZmlsZUMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0 aW5nL2V4YW1wbGVzL2F0dDIvZmlsZUQgYi90ZXN0aW5nL2V4YW1wbGVzL2F0dDIvZmlsZUQKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5jNzA2NTU2YzUKLS0tIC9kZXYvbnVs bAorKysgYi90ZXN0aW5nL2V4YW1wbGVzL2F0dDIvZmlsZUQKQEAgLTAsMCArMSBAQAordGV4dCBp biBmaWxlRApkaWZmIC0tZ2l0IGEvdGVzdGluZy9leGFtcGxlcy9hdHRhY2htZW50cy5vcmcgYi90 ZXN0aW5nL2V4YW1wbGVzL2F0dGFjaG1lbnRzLm9yZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAuLmFiNGE0ZTU0OAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZXhhbXBs ZXMvYXR0YWNobWVudHMub3JnCkBAIC0wLDAgKzEsMzIgQEAKKyMrVElUTEU6IE9yZyBhdHRhY2gg dGVzdGZpbGUKK1VzZWQgdG8gdGVzdCBhbmQgdmVyaWZ5IHRoZSBmdW5jdGlvbmFsaXR5IG9mIG9y Zy1hdHRhY2guCisKKyogSDEKKyA6UFJPUEVSVElFUzoKKyA6RElSOiAgICAgIGF0dDEKKyA6RU5E OgorQSBsaW5rIHRvIG9uZSBhdHRhY2htZW50OiBbW2F0dGFjaG1lbnQ6ZmlsZUFdXQorCisqKiBI MS4xCitBIGxpbmsgdG8gYW5vdGhlciBhdHRhY2htZW50OiBbW2F0dGFjaG1lbnQ6ZmlsZUJdXQor CisqKiBIMS4yCisgIDpQUk9QRVJUSUVTOgorICA6RElSOiAgICAgIGF0dDIKKyAgOkVORDoKKwor KiBIMgorIDpQUk9QRVJUSUVTOgorIDpJRDogICAgICAgYWJjZDEyMworIDpFTkQ6CisKKyogSDMK KyA6UFJPUEVSVElFUzoKKyA6RElSOiAgICAgIGF0dDEKKyA6SUQ6ICAgICAgIGFiY2QxMjM0Cisg OkVORDoKKworKiogSDMuMQorICA6UFJPUEVSVElFUzoKKyAgOklEOiAgICAgICBhYmNkMTIzNDUK KyAgOkVORDoKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZXhhbXBsZXMvZGF0YS9hYi9jZDEyMy9maWxl RSBiL3Rlc3RpbmcvZXhhbXBsZXMvZGF0YS9hYi9jZDEyMy9maWxlRQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLjgwZDMzNzc3MgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3Rp bmcvZXhhbXBsZXMvZGF0YS9hYi9jZDEyMy9maWxlRQpAQCAtMCwwICsxIEBACitwZWVrLWEtYm9v CmRpZmYgLS1naXQgYS90ZXN0aW5nL2xpc3AvdGVzdC1vcmctYXR0YWNoLWFubmV4LmVsIGIvdGVz dGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC1naXQuZWwKc2ltaWxhcml0eSBpbmRleCA5MyUKcmVu YW1lIGZyb20gdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC1hbm5leC5lbApyZW5hbWUgdG8g dGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC1naXQuZWwKaW5kZXggN2YyNzkyNjk2Li44Yjgy NmI3MmYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1hdHRhY2gtYW5uZXguZWwK KysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC1naXQuZWwKQEAgLTIwLDE5ICsyMCwx OSBAQAogCiA7OzsgQ29kZToKIChvcmctdGVzdC1mb3ItZXhlY3V0YWJsZSAiZ2l0LWFubmV4IikK LShyZXF1aXJlICdvcmctYXR0YWNoKQorKHJlcXVpcmUgJ29yZy1hdHRhY2gtZ2l0KQogKHJlcXVp cmUgJ2NsLWxpYikKIAotKGRlZm1hY3JvIHRlc3Qtb3JnLWF0dGFjaC1hbm5leC93aXRoLWFubmV4 ICgmcmVzdCBib2R5KQorKGRlZm1hY3JvIHRlc3Qtb3JnLWF0dGFjaC1naXQvd2l0aC1hbm5leCAo JnJlc3QgYm9keSkKICAgYChsZXQgKCh0bXBkaXIgKG1ha2UtdGVtcC1maWxlICJvcmctYW5uZXgt dGVzdCIgdCAiLyIpKSkKICAgICAgKHVud2luZC1wcm90ZWN0CiAJIChsZXQgKChkZWZhdWx0LWRp cmVjdG9yeSB0bXBkaXIpCi0JICAgICAgIChvcmctYXR0YWNoLWRpcmVjdG9yeSB0bXBkaXIpKQor CSAgICAgICAob3JnLWF0dGFjaC1pZC1kaXIgdG1wZGlyKSkKIAkgICAoc2hlbGwtY29tbWFuZCAi Z2l0IGluaXQiKQogCSAgIChzaGVsbC1jb21tYW5kICJnaXQgYW5uZXggaW5pdCIpCiAJICAgLEBi b2R5KSkpKQogCi0oZXJ0LWRlZnRlc3QgdGVzdC1vcmctYXR0YWNoL3VzZS1hbm5leCAoKQorKGVy dC1kZWZ0ZXN0IHRlc3Qtb3JnLWF0dGFjaC1naXQvdXNlLWFubmV4ICgpCiAgICh0ZXN0LW9yZy1h dHRhY2gtYW5uZXgvd2l0aC1hbm5leAogICAgKGxldCAoKG9yZy1hdHRhY2gtZ2l0LWFubmV4LWN1 dG9mZiAxKSkKICAgICAgKHNob3VsZCAob3JnLWF0dGFjaC11c2UtYW5uZXgpKSkKQEAgLTQ0LDEy ICs0NCwxMiBAQAogICAobGV0ICgodG1wZGlyIChtYWtlLXRlbXAtZmlsZSAib3JnLWFubmV4LXRl c3QiIHQgIi8iKSkpCiAgICAgICh1bndpbmQtcHJvdGVjdAogCSAobGV0ICgoZGVmYXVsdC1kaXJl Y3RvcnkgdG1wZGlyKQotCSAgICAgICAob3JnLWF0dGFjaC1kaXJlY3RvcnkgdG1wZGlyKSkKKwkg ICAgICAgKG9yZy1hdHRhY2gtaWQtZGlyIHRtcGRpcikpCiAJICAgKHNoZWxsLWNvbW1hbmQgImdp dCBpbml0IikKIAkgICAoc2hvdWxkLW5vdCAob3JnLWF0dGFjaC11c2UtYW5uZXgpKSkKICAgICAg ICAoZGVsZXRlLWRpcmVjdG9yeSB0bXBkaXIgJ3JlY3Vyc2l2ZSkpKSkKIAotKGVydC1kZWZ0ZXN0 IHRlc3Qtb3JnLWF0dGFjaC9nZXQtbWF5YmUgKCkKKyhlcnQtZGVmdGVzdCB0ZXN0LW9yZy1hdHRh Y2gtZ2l0L2dldC1tYXliZSAoKQogICAodGVzdC1vcmctYXR0YWNoLWFubmV4L3dpdGgtYW5uZXgK ICAgIChsZXQgKChwYXRoIChleHBhbmQtZmlsZS1uYW1lICJ0ZXN0LWZpbGUiKSkKIAkgKGFubmV4 LWR1cCAobWFrZS10ZW1wLWZpbGUgIm9yZy1hbm5leC10ZXN0IiB0ICIvIikpKQpkaWZmIC0tZ2l0 IGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC5lbCBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9y Zy1hdHRhY2guZWwKaW5kZXggYzJmMmJlMzU2Li41YmNmZTg2ZmQgMTAwNjQ0Ci0tLSBhL3Rlc3Rp bmcvbGlzcC90ZXN0LW9yZy1hdHRhY2guZWwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0 dGFjaC5lbApAQCAtMjgsNiArMjgsNzUgQEAKIChyZXF1aXJlICdvcmctYXR0YWNoKQogKGV2YWwt YW5kLWNvbXBpbGUgKHJlcXVpcmUgJ2NsLWxpYikpCiAKKyhlcnQtZGVmdGVzdCB0ZXN0LW9yZy1h dHRhY2gvZGlyICgpCisgICJUZXN0IGBvcmctYXR0YWNoLWdldCcgc3BlY2lmaWNhdGlvbnMuIgor ICAoc2hvdWxkIChlcXVhbCAiVGV4dCBpbiBmaWxlQVxuIgorCQkgKG9yZy10ZXN0LWluLWV4YW1w bGUtZmlsZSBvcmctdGVzdC1hdHRhY2htZW50cy1maWxlCisJCSAgIChnb3RvLWNoYXIgMTU3KSA7 OyBGaXJzdCBhdHRhY2htZW50IGxpbmsKKwkJICAgKG9yZy1vcGVuLWF0LXBvaW50KQorCQkgICAo YnVmZmVyLXN0cmluZykpKSkKKyAgKHNob3VsZC1ub3QgKGVxdWFsICJUZXh0IGluIGZpbGVCXG4i CisJCSAgICAgKG9yZy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVzdC1hdHRhY2htZW50cy1m aWxlCisJCSAgICAgICAoZ290by1jaGFyIDIxOSkgOzsgU2Vjb25kIGF0dGFjaG1lbnQgbGluawor CQkgICAgICAgKGxldCAoKG9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNlIG5pbCkpCisJCQkgKG9y Zy1vcGVuLWF0LXBvaW50KQorCQkJIChidWZmZXItc3RyaW5nKSkpKSkKKyAgKHNob3VsZCAoZXF1 YWwgIlRleHQgaW4gZmlsZUJcbiIKKwkJIChvcmctdGVzdC1pbi1leGFtcGxlLWZpbGUgb3JnLXRl c3QtYXR0YWNobWVudHMtZmlsZQorCQkgICAoZ290by1jaGFyIDIxOSkgOzsgU2Vjb25kIGF0dGFj aG1lbnQgbGluaworCQkgICAobGV0ICgob3JnLWF0dGFjaC11c2UtaW5oZXJpdGFuY2UgdCkpCisJ CSAgICAgKG9yZy1vcGVuLWF0LXBvaW50KQorCQkgICAgIChidWZmZXItc3RyaW5nKSkpKSkKKyAg KHNob3VsZC1ub3QgKGVxdWFsICJhdHQxIgorCQkgICAgIChvcmctdGVzdC1pbi1leGFtcGxlLWZp bGUgb3JnLXRlc3QtYXR0YWNobWVudHMtZmlsZQorCQkgICAgICAgKGdvdG8tY2hhciAxNzkpIDs7 IEgxLjEKKwkJICAgICAgIChsZXQgKChvcmctYXR0YWNoLXVzZS1pbmhlcml0YW5jZSBuaWwpKQor CQkJIChvcmctYXR0YWNoLWRpcikpKSkpCisgIChzaG91bGQgKGVxdWFsICJhdHQxIgorCQkgKG9y Zy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVzdC1hdHRhY2htZW50cy1maWxlCisJCSAgIChn b3RvLWNoYXIgMTc5KSA7OyBIMS4xCisJCSAgIChsZXQgKChvcmctYXR0YWNoLXVzZS1pbmhlcml0 YW5jZSB0KSkKKwkJICAgICAob3JnLWF0dGFjaC1kaXIpKSkpKQorICAoc2hvdWxkIChlcXVhbCAn KCJmaWxlQyIgImZpbGVEIikKKwkJIChvcmctdGVzdC1pbi1leGFtcGxlLWZpbGUgb3JnLXRlc3Qt YXR0YWNobWVudHMtZmlsZQorCQkgICAoZ290by1jaGFyIDIzOSkgOzsgSDEuMgorCQkgICAob3Jn LWF0dGFjaC1maWxlLWxpc3QgKG9yZy1hdHRhY2gtZGlyKSkpKSkKKyAgKHNob3VsZCAoZXF1YWwg JygiZmlsZUMiICJmaWxlRCIpCisJCSAob3JnLXRlc3QtaW4tZXhhbXBsZS1maWxlIG9yZy10ZXN0 LWF0dGFjaG1lbnRzLWZpbGUKKwkJICAgKGdvdG8tY2hhciAyMzkpIDs7IEgxLjIKKwkJICAgKG9y Zy1hdHRhY2gtZmlsZS1saXN0IChvcmctYXR0YWNoLWRpcikpKSkpCisgIChzaG91bGQgKGVxdWFs ICcoImZpbGVFIikKKwkJIChvcmctdGVzdC1pbi1leGFtcGxlLWZpbGUgb3JnLXRlc3QtYXR0YWNo bWVudHMtZmlsZQorCQkgICAoZ290by1jaGFyIDI4OSkgOzsgSDIKKwkJICAgKGxldCAoKG9yZy1h dHRhY2gtaWQtZGlyICJkYXRhLyIpKQorCQkgICAgIChvcmctYXR0YWNoLWZpbGUtbGlzdCAob3Jn LWF0dGFjaC1kaXIpKSkpKSkKKyAgKHNob3VsZCAoZXF1YWwgInBlZWstYS1ib29cbiIKKwkJIChv cmctdGVzdC1pbi1leGFtcGxlLWZpbGUgb3JnLXRlc3QtYXR0YWNobWVudHMtZmlsZQorCQkgICAo Z290by1jaGFyIDI4OSkgOzsgSDIKKwkJICAgKGxldCAoKG9yZy1hdHRhY2gtaWQtZGlyICJkYXRh LyIpKQorCQkgICAgIChvcmctYXR0YWNoLW9wZW4taW4tZW1hY3MpCisJCSAgICAgKGJ1ZmZlci1z dHJpbmcpKSkpKQorICAoc2hvdWxkIChlcXVhbCAgJygiZmlsZUEiICJmaWxlQiIpCisJCSAgKG9y Zy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVzdC1hdHRhY2htZW50cy1maWxlCisJCSAgICAo Z290by1jaGFyIDMzNikgOzsgSDMKKwkJICAgIChvcmctYXR0YWNoLWZpbGUtbGlzdCAob3JnLWF0 dGFjaC1kaXIpKSkpKQorICAoc2hvdWxkIChlcXVhbCAiZGF0YS9hYi9jZDEyMzQ1IgorCQkgKG9y Zy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVzdC1hdHRhY2htZW50cy1maWxlCisJCSAgIChn b3RvLWNoYXIgNDAxKSA7OyBIMy4xCisJCSAgIChsZXQgKChvcmctYXR0YWNoLXVzZS1pbmhlcml0 YW5jZSBuaWwpCisJCQkgKG9yZy1hdHRhY2gtaWQtZGlyICJkYXRhLyIpKQorCQkgICAgIChmaWxl LXJlbGF0aXZlLW5hbWUgKG9yZy1hdHRhY2gtZGlyKSkpKSkpCisgIChzaG91bGQgKGVxdWFsICco ImZpbGVBIiAiZmlsZUIiKQorCQkgKG9yZy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVzdC1h dHRhY2htZW50cy1maWxlCisJCSAgIChnb3RvLWNoYXIgNDAxKSA7OyBIMy4xCisJCSAgIChsZXQg KChvcmctYXR0YWNoLXVzZS1pbmhlcml0YW5jZSB0KSkKKwkJICAgICA7OyBUaGlzIGlzIHdoZXJl IGl0IGdldCdzIGEgYml0IHNrZXRjaHkuLi4hIERJUiBhbHdheXMgaGFzCisJCSAgICAgOzsgcHJp b3JpdHkgb3ZlciBJRCwgZXZlbiBpZiBJRCBpcyBkZWNsYXJlZCAiaGlnaGVyIHVwIiBpbiB0aGUK KwkJICAgICA7OyB0cmVlLiAgVGhpcyBjYW4gcG90ZW50aWFsbHkgYmUgcmV2aXNlZC4gIEJ1dCBp dCBpcyBhbHNvCisJCSAgICAgOzsgcHJldHR5IGNsZWFuLiAgRElSIGlzIGFsd2F5cyBoaWdoZXIg aW4gcHJpb3JpdHkgdGhhbiBJRCByaWdodAorCQkgICAgIDs7IG5vdywgbm8gbWF0dGVyIHRoZSBk ZXB0aCBpbiB0aGUgdHJlZS4KKwkJICAgICAob3JnLWF0dGFjaC1maWxlLWxpc3QgKG9yZy1hdHRh Y2gtZGlyKSkpKSkpKQorCiAoZXJ0LWRlZnRlc3QgdGVzdC1vcmctYXR0YWNoL2RpcmVkLWF0dGFj aC10by1uZXh0LWJlc3Qtc3VidHJlZS8xICgpCiAgICJBdHRhY2ggZmlsZSBhdCBwb2ludCBpbiBk aXJlZCB0byBzdWJ0cmVlLiIKICAgKHNob3VsZApkaWZmIC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rl c3Qtb3JnLmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCmluZGV4IGQ2NzFiNWM3OC4uYTYx OGRhNDc5IDEwMDY0NAotLS0gYS90ZXN0aW5nL2xpc3AvdGVzdC1vcmcuZWwKKysrIGIvdGVzdGlu Zy9saXNwL3Rlc3Qtb3JnLmVsCkBAIC0yNTE0LDcgKzI1MTQsMTEgQEAgRm9vIEJhcgogICAgICAo Y2F0Y2ggOnJlc3VsdAogICAgICAgIChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnb3JnLXRh Z3MtdmlldykKIAkJICAobGFtYmRhICgmcmVzdCBhcmdzKSAodGhyb3cgOnJlc3VsdCB0KSkpKQot CSAob3JnLW9wZW4tYXQtcG9pbnQpCisJIDs7IFdoZW4gcG9pbnQgaXNuJ3Qgb24gYSB0YWcgaXQn cyBnb2luZyB0byB0cnkgb3RoZXIgdGhpbmdzLAorCSA7OyBwb3NzaWJseSB0cnlpbmcgdG8gb3Bl biBhdHRhY2htZW50cyB3aGljaCB3aWxsIHJldHVybiBhbgorCSA7OyBlcnJvciBpZiB0aGVyZSBp c24ndCBhbiBhdHRhY2htZW50LiBTdXByZXNzIHRoYXQgZXJyb3IuCisJIChpZ25vcmUtZXJyb3Jz CisJICAgICAob3JnLW9wZW4tYXQtcG9pbnQpKQogCSBuaWwpKSkpKQogCiAMCmRpZmYgLS1naXQg YS90ZXN0aW5nL29yZy10ZXN0LmVsIGIvdGVzdGluZy9vcmctdGVzdC5lbAppbmRleCAyOTVkZjE5 MTkuLmMzZTIxZWIzMCAxMDA2NDQKLS0tIGEvdGVzdGluZy9vcmctdGVzdC5lbAorKysgYi90ZXN0 aW5nL29yZy10ZXN0LmVsCkBAIC04Nyw2ICs4Nyw5IEBAIG9yZy10ZXN0IHNlYXJjaGVzIHRoaXMg ZGlyZWN0b3J5IHVwIHRoZSBkaXJlY3RvcnkgdHJlZS4iKQogKGRlZmNvbnN0IG9yZy10ZXN0LW5v LWhlYWRpbmctZmlsZQogICAoZXhwYW5kLWZpbGUtbmFtZSAibm8taGVhZGluZy5vcmciIG9yZy10 ZXN0LWV4YW1wbGUtZGlyKSkKIAorKGRlZmNvbnN0IG9yZy10ZXN0LWF0dGFjaG1lbnRzLWZpbGUK KyAgKGV4cGFuZC1maWxlLW5hbWUgImF0dGFjaG1lbnRzLm9yZyIgb3JnLXRlc3QtZXhhbXBsZS1k aXIpKQorCiAoZGVmY29uc3Qgb3JnLXRlc3QtbGluay1pbi1oZWFkaW5nLWZpbGUKICAgKGV4cGFu ZC1maWxlLW5hbWUgImxpbmstaW4taGVhZGluZy5vcmciIG9yZy10ZXN0LWRpcikpCiAKLS0gCjIu MTcuMQoK --_003_HE1PR02MB3033AFD29F6692A154E5B1EADAF70HE1PR02MB3033eurp_--