From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0524CA0A02; Fri, 15 Jan 2021 13:18:43 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 61325141037; Fri, 15 Jan 2021 13:18:43 +0100 (CET) Received: from mailgw02.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by mails.dpdk.org (Postfix) with ESMTP id 6A57814102E for ; Fri, 15 Jan 2021 13:18:42 +0100 (CET) Received: from mailgw02.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw02.pantheon.sk (Proxmox) with ESMTP id 07BC2181BE3; Fri, 15 Jan 2021 13:18:42 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; h=cc:cc:content-transfer-encoding:content-type:content-type :date:from:from:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=dkim; bh=0qkf4KavqsjFHOvo1GOf k0R+09tpksjFuktXaGmuSos=; b=xc2jrgwPcma7AJQqjNBPzsoXKS8RecsakkSS IGgitm8VYOdSWXQA+Ag7UFZnlAFu8L7l74y31K0r3wMeQ8aLMgN5lJFcNpPaoVWz 37YO4MIOkcfU7JzgweOk+yBenJpAyqFkhWd8s4yiPnej73dncZRJIcwdLT+BH0TB txzrSKy5+S3fNsEDoDRyUsTaqDv5Q6taTLwITIvo1yhIImudzP8GDwT1jJx2+bjW iBVopJQrUTweoXPY5yvdKB9jkythdbt5DghOzmLrKVIZ1WmBoIVPB9ZntgQ/a2BE 8JgDD1z/053h/1LL3aDqN+KVBK+wmVE7koGSxrh58srUq+8XxQ== From: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= To: Ruifeng Wang , "bruce.richardson@intel.com" , Honnappa Nagarahalli , Phil Yang , "vcchunga@amazon.com" , Dharmik Thakkar , "jerinjacobk@gmail.com" , "hemant.agrawal@nxp.com" , "Ajit Khaparde (ajit.khaparde@broadcom.com)" , "ferruh.yigit@intel.com" CC: "dev@dpdk.org" , nd Thread-Topic: [PATCH v14 05/12] build: organize Arm config into dict Thread-Index: AQHW2SFxu3u+2ax4Vkq+Yl5p3sjSxaoocHiAgABOJZA= Date: Fri, 15 Jan 2021 12:18:39 +0000 Message-ID: <6401e5e470824161a32ae05baa8505a7@pantheon.tech> References: <1605874101-30893-1-git-send-email-juraj.linkes@pantheon.tech> <1608724059-8562-1-git-send-email-juraj.linkes@pantheon.tech> <1608724059-8562-6-git-send-email-juraj.linkes@pantheon.tech> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.101.4.10] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v14 05/12] build: organize Arm config into dict X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUnVpZmVuZyBXYW5nIDxS dWlmZW5nLldhbmdAYXJtLmNvbT4NCj4gU2VudDogRnJpZGF5LCBKYW51YXJ5IDE1LCAyMDIxIDk6 MzggQU0NCj4gVG86IEp1cmFqIExpbmtlxaEgPGp1cmFqLmxpbmtlc0BwYW50aGVvbi50ZWNoPjsg YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb207DQo+IEhvbm5hcHBhIE5hZ2FyYWhhbGxpIDxIb25u YXBwYS5OYWdhcmFoYWxsaUBhcm0uY29tPjsgUGhpbCBZYW5nDQo+IDxQaGlsLllhbmdAYXJtLmNv bT47IHZjY2h1bmdhQGFtYXpvbi5jb207IERoYXJtaWsgVGhha2thcg0KPiA8RGhhcm1pay5UaGFr a2FyQGFybS5jb20+OyBqZXJpbmphY29ia0BnbWFpbC5jb207DQo+IGhlbWFudC5hZ3Jhd2FsQG54 cC5jb207IEFqaXQgS2hhcGFyZGUgKGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tKQ0KPiA8YWpp dC5raGFwYXJkZUBicm9hZGNvbS5jb20+OyBmZXJydWgueWlnaXRAaW50ZWwuY29tDQo+IENjOiBk ZXZAZHBkay5vcmc7IG5kIDxuZEBhcm0uY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIHYxNCAw NS8xMl0gYnVpbGQ6IG9yZ2FuaXplIEFybSBjb25maWcgaW50byBkaWN0DQo+IA0KPiANCj4gPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEp1cmFqIExpbmtlxaEgPGp1cmFq Lmxpbmtlc0BwYW50aGVvbi50ZWNoPg0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgRGVjZW1iZXIgMjMs IDIwMjAgNzo0OCBQTQ0KPiA+IFRvOiBicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbTsgUnVpZmVu ZyBXYW5nIDxSdWlmZW5nLldhbmdAYXJtLmNvbT47DQo+ID4gSG9ubmFwcGEgTmFnYXJhaGFsbGkg PEhvbm5hcHBhLk5hZ2FyYWhhbGxpQGFybS5jb20+OyBQaGlsIFlhbmcNCj4gPiA8UGhpbC5ZYW5n QGFybS5jb20+OyB2Y2NodW5nYUBhbWF6b24uY29tOyBEaGFybWlrIFRoYWtrYXINCj4gPiA8RGhh cm1pay5UaGFra2FyQGFybS5jb20+OyBqZXJpbmphY29ia0BnbWFpbC5jb207DQo+ID4gaGVtYW50 LmFncmF3YWxAbnhwLmNvbTsgQWppdCBLaGFwYXJkZSAoYWppdC5raGFwYXJkZUBicm9hZGNvbS5j b20pDQo+ID4gPGFqaXQua2hhcGFyZGVAYnJvYWRjb20uY29tPjsgZmVycnVoLnlpZ2l0QGludGVs LmNvbQ0KPiA+IENjOiBkZXZAZHBkay5vcmc7IEp1cmFqIExpbmtlxaEgPGp1cmFqLmxpbmtlc0Bw YW50aGVvbi50ZWNoPg0KPiA+IFN1YmplY3Q6IFtQQVRDSCB2MTQgMDUvMTJdIGJ1aWxkOiBvcmdh bml6ZSBBcm0gY29uZmlnIGludG8gZGljdA0KPiA+DQo+ID4gVXNlIGRpY3Rpb25hcnkgbG9va3Vw IGluc3RlYWQgb2YgY2hlY2tpbmcgZm9yIGV4aXN0aW5nIHZhcmlhYmxlcywNCj4gPiBpdGVyYXRp bmcgb3ZlciBhbGwgZWxlbWVudHMgaW4gdGhlIGxpc3Qgb3IgY2hlY2tpbmcgbGlzdHMgZm9yIG9w dGlvbmFsDQo+ID4gY29uZmlndXJhdGlvbi4gTW92ZSB2YXJpYWJsZSBjb250ZW50cyBpbnRvIHRo ZSBkaWN0aW9uYXJ5IGZvcg0KPiA+IHZhcmlhYmxlcyB0aGF0IHdvdWxkIGJlIHJlZmVyZW5jZWQg b25seSBvbmNlLg0KPiA+IEZhbGxiYWNrIHRvIGdlbmVyaWMgcGFydCBudW1iZXIgaWYgdGhlIGRp c2NvdmVyZWQgcGFydCBudW1iZXIgaXMgdW5rbm93bi4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6 IEp1cmFqIExpbmtlxaEgPGp1cmFqLmxpbmtlc0BwYW50aGVvbi50ZWNoPg0KPiA+IFJldmlld2Vk LWJ5OiBIb25uYXBwYSBOYWdhcmFoYWxsaSA8aG9ubmFwcGEubmFnYXJhaGFsbGlAYXJtLmNvbT4N Cj4gPiAtLS0NCj4gPiAgY29uZmlnL2FybS9tZXNvbi5idWlsZCB8IDI5OA0KPiA+ICsrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAx NzggaW5zZXJ0aW9ucygrKSwgMTIwIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBh L2NvbmZpZy9hcm0vbWVzb24uYnVpbGQgYi9jb25maWcvYXJtL21lc29uLmJ1aWxkIGluZGV4DQo+ ID4gZmI4NzdmZTc3Li5iNDQ5YjEwYzMgMTAwNjQ0DQo+ID4gLS0tIGEvY29uZmlnL2FybS9tZXNv bi5idWlsZA0KPiA+ICsrKyBiL2NvbmZpZy9hcm0vbWVzb24uYnVpbGQNCj4gPiBAQCAtMjcsMTE1 ICsyNywxNjYgQEAgZmxhZ3NfY29tbW9uID0gWw0KPiA+ICAJWydSVEVfQ0FDSEVfTElORV9TSVpF JywgMTI4XQ0KPiA+ICBdDQo+ID4NCj4gPiAtIyBpbXBsZW1lbnRlciBzcGVjaWZpYyBhYXJjaDY0 IGZsYWdzLCB3aXRoIG1pZGRsZSBwcmlvcml0eSAtIyAod2lsbA0KPiA+IG92ZXJ3cml0ZSBjb21t b24gZmxhZ3MpIC1mbGFnc19pbXBsZW1lbnRlcl9nZW5lcmljID0gWw0KPiA+IC0JWydSVEVfTUFD SElORScsICciYXJtdjhhIiddLA0KPiA+IC0JWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVl XSwNCj4gPiAtCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDEyOF0sDQo+ID4gLQlbJ1JURV9NQVhf TENPUkUnLCAyNTZdDQo+ID4gLV0NCj4gPiAtZmxhZ3NfaW1wbGVtZW50ZXJfYXJtID0gWw0KPiA+ IC0JWydSVEVfTUFDSElORScsICciYXJtdjhhIiddLA0KPiA+IC0JWydSVEVfVVNFX0MxMV9NRU1f TU9ERUwnLCB0cnVlXSwNCj4gPiAtCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwNCj4gPiAt CVsnUlRFX01BWF9MQ09SRScsIDE2XQ0KPiA+IC1dDQo+ID4gLWZsYWdzX2ltcGxlbWVudGVyX2Nh dml1bSA9IFsNCj4gPiAtCVsnUlRFX01BWF9WRklPX0dST1VQUycsIDEyOF0sDQo+ID4gLQlbJ1JU RV9DQUNIRV9MSU5FX1NJWkUnLCAxMjhdLA0KPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgOTZdLA0K PiA+IC0JWydSVEVfTUFYX05VTUFfTk9ERVMnLCAyXQ0KPiA+IC1dDQo+ID4gLWZsYWdzX2ltcGxl bWVudGVyX2RwYWEgPSBbDQo+ID4gLQlbJ1JURV9NQUNISU5FJywgJyJkcGFhIiddLA0KPiA+IC0J WydSVEVfTElCUlRFX0RQQUEyX1VTRV9QSFlTX0lPVkEnLCBmYWxzZV0sDQo+ID4gLQlbJ1JURV9V U0VfQzExX01FTV9NT0RFTCcsIHRydWVdLA0KPiA+IC0JWydSVEVfQ0FDSEVfTElORV9TSVpFJywg NjRdLA0KPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgMTZdLA0KPiA+IC0JWydSVEVfTUFYX05VTUFf Tk9ERVMnLCAxXQ0KPiA+IC1dDQo+ID4gLWZsYWdzX2ltcGxlbWVudGVyX2VtYWcgPSBbDQo+ID4g LQlbJ1JURV9NQUNISU5FJywgJyJlbWFnIiddLA0KPiA+IC0JWydSVEVfQ0FDSEVfTElORV9TSVpF JywgNjRdLA0KPiA+IC0JWydSVEVfTUFYX0xDT1JFJywgMzJdLA0KPiA+IC0JWydSVEVfTUFYX05V TUFfTk9ERVMnLCAxXQ0KPiA+IC1dDQo+ID4gLWZsYWdzX2ltcGxlbWVudGVyX2FybWFkYSA9IFsN Cj4gPiAtCVsnUlRFX01BQ0hJTkUnLCAnImFybXY4YSInXSwNCj4gPiAtCVsnUlRFX0NBQ0hFX0xJ TkVfU0laRScsIDY0XSwNCj4gPiAtCVsnUlRFX01BWF9MQ09SRScsIDE2XSwNCj4gPiAtCVsnUlRF X01BWF9OVU1BX05PREVTJywgMV0NCj4gPiAtXQ0KPiA+ICsjIyBQYXJ0IG51bWJlcnMgYXJlIHNw ZWNpZmljIHRvIEFybSBpbXBsZW1lbnRlcnMgIyBpbXBsZW1lbnRlcg0KPiA+ICtzcGVjaWZpYw0K PiA+ICthYXJjaDY0IGZsYWdzIGhhdmUgbWlkZGxlIHByaW9yaXR5DQo+ID4gKyMgICAgICh3aWxs IG92ZXJ3cml0ZSBjb21tb24gZmxhZ3MpDQo+ID4gKyMgcGFydCBudW1iZXIgc3BlY2lmaWMgYWFy Y2g2NCBmbGFncyBoYXZlIHRoZSBoaWdoZXN0IHByaW9yaXR5DQo+ID4gKyMgICAgICh3aWxsIG92 ZXJ3cml0ZSBib3RoIGNvbW1vbiBhbmQgaW1wbGVtZW50ZXIgc3BlY2lmaWMgZmxhZ3MpDQo+ID4g K2ltcGxlbWVudGVyX2dlbmVyaWMgPSB7DQo+ID4gKwknZGVzY3JpcHRpb24nOiAnR2VuZXJpYyBh cm12OCcsDQo+ID4gKwknZmxhZ3MnOiBbDQo+ID4gKwkJWydSVEVfTUFDSElORScsICciYXJtdjhh IiddLA0KPiA+ICsJCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgdHJ1ZV0sDQo+ID4gKwkJWydS VEVfQ0FDSEVfTElORV9TSVpFJywgMTI4XSwNCj4gPiArCQlbJ1JURV9NQVhfTENPUkUnLCAyNTZd DQo+ID4gKwldLA0KPiA+ICsJJ3BhcnRfbnVtYmVyX2NvbmZpZyc6IHsNCj4gPiArCQknZ2VuZXJp Yyc6IHsnbWFjaGluZV9hcmdzJzogWyctbWFyY2g9YXJtdjgtYStjcmMnLA0KPiA+ICsJCQkJCSAg ICAgJy1tb3V0bGluZS1hdG9taWNzJ119DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gK3Bh cnRfbnVtYmVyX2NvbmZpZ19hcm0gPSB7DQo+ID4gKwknZ2VuZXJpYyc6IHsnbWFjaGluZV9hcmdz JzogIFsnLW1hcmNoPWFybXY4LWErY3JjJywNCj4gPiArCQkJCSAgICAgICctbW91dGxpbmUtYXRv bWljcyddfSwNCj4gPiArCSduYXRpdmUnOiB7J21hY2hpbmVfYXJncyc6ICBbJy1tYXJjaD1uYXRp dmUnXX0sDQo+ID4gKwknMHhkMDMnOiB7J21hY2hpbmVfYXJncyc6ICBbJy1tY3B1PWNvcnRleC1h NTMnXX0sDQo+ID4gKwknMHhkMDQnOiB7J21hY2hpbmVfYXJncyc6ICBbJy1tY3B1PWNvcnRleC1h MzUnXX0sDQo+ID4gKwknMHhkMDcnOiB7J21hY2hpbmVfYXJncyc6ICBbJy1tY3B1PWNvcnRleC1h NTcnXX0sDQo+ID4gKwknMHhkMDgnOiB7J21hY2hpbmVfYXJncyc6ICBbJy1tY3B1PWNvcnRleC1h NzInXX0sDQo+ID4gKwknMHhkMDknOiB7J21hY2hpbmVfYXJncyc6ICBbJy1tY3B1PWNvcnRleC1h NzMnXX0sDQo+ID4gKwknMHhkMGEnOiB7J21hY2hpbmVfYXJncyc6ICBbJy1tY3B1PWNvcnRleC1h NzUnXX0sDQo+ID4gKwknMHhkMGInOiB7J21hY2hpbmVfYXJncyc6ICBbJy1tY3B1PWNvcnRleC1h NzYnXX0sDQo+ID4gKwknMHhkMGMnOiB7DQo+ID4gKwkJJ21hY2hpbmVfYXJncyc6ICBbJy1tYXJj aD1hcm12OC4yLWErY3J5cHRvJywNCj4gPiArCQkJCSAgJy1tY3B1PW5lb3ZlcnNlLW4xJ10sDQo+ ID4gKwkJJ2ZsYWdzJzogWw0KPiA+ICsJCQlbJ1JURV9NQUNISU5FJywgJyJuZW92ZXJzZS1uMSIn XSwNCj4gPiArCQkJWydSVEVfQVJNX0ZFQVRVUkVfQVRPTUlDUycsIHRydWVdLA0KPiA+ICsJCQlb J1JURV9VU0VfQzExX01FTV9NT0RFTCcsIHRydWVdLA0KPiBUaGlzIGR1cGxpY2F0ZXMgd2hhdCBp biBpbXBsZW1lbnRlciBmbGFncy4NCj4gQ2FuIHdlIHJlbW92ZSBpdD8NCj4gDQo+ID4gKwkJCVsn UlRFX0VBTF9OVU1BX0FXQVJFX0hVR0VQQUdFUycsIGZhbHNlXSwNCj4gPiArCQkJWydSVEVfTElC UlRFX1ZIT1NUX05VTUEnLCBmYWxzZV0sDQo+ID4gKwkJCVsnUlRFX01BWF9NRU1fTUInLCAxMDQ4 NTc2XSwNCj4gPiArCQkJWydSVEVfQ0FDSEVfTElORV9TSVpFJywgNjRdLA0KPiBBbHNvIHRoaXMg b25lLg0KPiANCg0KWWVhLCBsZXQncyBub3QgZHVwbGljYXRlIHRoZSBjb25maWcsIEknbGwgcmVt b3ZlIGJvdGggb2YgdGhvZXMuDQoNCj4gPiArCQkJWydSVEVfTUFYX0xDT1JFJywgNjRdLA0KPiBE byB5b3Ugd2FudCB0byBjaGFuZ2UgdGhpcyB0byA4MD8NCj4gQW1wZXJlIEFsdHJhIFNvQyBoYXMg ODAgTjEgY29yZXMuDQo+IA0KDQpZZXMsIG1ha2VzIHNlbnNlIHRvIHVwZGF0ZSBpdC4NCg0KPiA+ ICsJCQlbJ1JURV9NQVhfTlVNQV9OT0RFUycsIDFdDQo+ID4gKwkJXQ0KPiA+ICsJfQ0KPiA+ICt9 DQo+ID4gK2ltcGxlbWVudGVyX2FybSA9IHsNCj4gPiArCSdkZXNjcmlwdGlvbic6ICdBcm0nLA0K PiA+ICsJJ2ZsYWdzJzogWw0KPiA+ICsJCVsnUlRFX01BQ0hJTkUnLCAnImFybXY4YSInXSwNCj4g PiArCQlbJ1JURV9VU0VfQzExX01FTV9NT0RFTCcsIHRydWVdLA0KPiA+ICsJCVsnUlRFX0NBQ0hF X0xJTkVfU0laRScsIDY0XSwNCj4gPiArCQlbJ1JURV9NQVhfTENPUkUnLCAxNl0NCj4gPiArCV0s DQo+ID4gKwkncGFydF9udW1iZXJfY29uZmlnJzogcGFydF9udW1iZXJfY29uZmlnX2FybSB9DQo+ ID4NCj4gPiAtIyBwYXJ0IG51bWJlciBzcGVjaWZpYyBhYXJjaDY0IGZsYWdzLCB3aXRoIGhpZ2hl c3QgcHJpb3JpdHkgLSMgKHdpbGwNCj4gPiBvdmVyd3JpdGUgYm90aCBjb21tb24gYW5kIGltcGxl bWVudGVyIHNwZWNpZmljIGZsYWdzKQ0KPiA+IGZsYWdzX3BhcnRfbnVtYmVyX3RodW5kZXJ4ID0g Ww0KPiA+ICAJWydSVEVfTUFDSElORScsICcidGh1bmRlcngiJ10sDQo+ID4gIAlbJ1JURV9VU0Vf QzExX01FTV9NT0RFTCcsIGZhbHNlXQ0KPiA+ICBdDQo+ID4gLWZsYWdzX3BhcnRfbnVtYmVyX3Ro dW5kZXJ4MiA9IFsNCj4gPiAtCVsnUlRFX01BQ0hJTkUnLCAnInRodW5kZXJ4MiInXSwNCj4gPiAt CVsnUlRFX0FSTV9GRUFUVVJFX0FUT01JQ1MnLCB0cnVlXSwNCj4gPiAtCVsnUlRFX1VTRV9DMTFf TUVNX01PREVMJywgdHJ1ZV0sDQo+ID4gLQlbJ1JURV9DQUNIRV9MSU5FX1NJWkUnLCA2NF0sDQo+ ID4gLQlbJ1JURV9NQVhfTENPUkUnLCAyNTZdLA0KPiA+IC0JWydSVEVfTUFYX05VTUFfTk9ERVMn LCAyXQ0KPiA+IC1dDQo+ID4gLWZsYWdzX3BhcnRfbnVtYmVyX29jdGVvbnR4MiA9IFsNCj4gPiAt CVsnUlRFX01BQ0hJTkUnLCAnIm9jdGVvbnR4MiInXSwNCj4gPiAtCVsnUlRFX0FSTV9GRUFUVVJF X0FUT01JQ1MnLCB0cnVlXSwNCj4gPiAtCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgdHJ1ZV0s DQo+ID4gLQlbJ1JURV9FQUxfSUdCX1VJTycsIGZhbHNlXSwNCj4gPiAtCVsnUlRFX01BWF9MQ09S RScsIDM2XSwNCj4gPiAtCVsnUlRFX01BWF9OVU1BX05PREVTJywgMV0NCj4gPiAtXQ0KPiA+IC1m bGFnc19wYXJ0X251bWJlcl9uMWdlbmVyaWMgPSBbDQo+ID4gLQlbJ1JURV9NQUNISU5FJywgJyJu ZW92ZXJzZS1uMSInXSwNCj4gPiAtCVsnUlRFX0FSTV9GRUFUVVJFX0FUT01JQ1MnLCB0cnVlXSwN Cj4gPiAtCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgdHJ1ZV0sDQo+ID4gLQlbJ1JURV9FQUxf TlVNQV9BV0FSRV9IVUdFUEFHRVMnLCBmYWxzZV0sDQo+ID4gLQlbJ1JURV9MSUJSVEVfVkhPU1Rf TlVNQScsIGZhbHNlXSwNCj4gPiAtCVsnUlRFX01BWF9NRU1fTUInLCAxMDQ4NTc2XSwNCj4gPiAt CVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwNCj4gPiAtCVsnUlRFX01BWF9MQ09SRScsIDY0 XSwNCj4gPiAtCVsnUlRFX01BWF9OVU1BX05PREVTJywgMV0NCj4gPiAtXQ0KPiA+ICtpbXBsZW1l bnRlcl9jYXZpdW0gPSB7DQo+ID4gKwknZGVzY3JpcHRpb24nOiAnQ2F2aXVtJywNCj4gPiArCSdm bGFncyc6IFsNCj4gPiArCQlbJ1JURV9NQVhfVkZJT19HUk9VUFMnLCAxMjhdLA0KPiA+ICsJCVsn UlRFX0NBQ0hFX0xJTkVfU0laRScsIDEyOF0sDQo+ID4gKwkJWydSVEVfTUFYX0xDT1JFJywgOTZd LA0KPiA+ICsJCVsnUlRFX01BWF9OVU1BX05PREVTJywgMl0NCj4gPiArCV0sDQo+ID4gKwkncGFy dF9udW1iZXJfY29uZmlnJzogew0KPiA+ICsJCSdnZW5lcmljJzogeydtYWNoaW5lX2FyZ3MnOiBb Jy1tYXJjaD1hcm12OC1hK2NyYytjcnlwdG8nLA0KPiA+ICsJCQkJCSAgICAgJy1tY3B1PXRodW5k ZXJ4J119LA0KPiA+ICsJCSduYXRpdmUnOiB7J21hY2hpbmVfYXJncyc6IFsnLW1hcmNoPW5hdGl2 ZSddfSwNCj4gPiArCQknMHhhMSc6IHsNCj4gPiArCQkJJ21hY2hpbmVfYXJncyc6IFsnLW1jcHU9 dGh1bmRlcnh0ODgnXSwNCj4gPiArCQkJJ2ZsYWdzJzogZmxhZ3NfcGFydF9udW1iZXJfdGh1bmRl cngNCj4gPiArCQl9LA0KPiA+ICsJCScweGEyJzogew0KPiA+ICsJCQknbWFjaGluZV9hcmdzJzog WyctbWNwdT10aHVuZGVyeHQ4MSddLA0KPiA+ICsJCQknZmxhZ3MnOiBmbGFnc19wYXJ0X251bWJl cl90aHVuZGVyeA0KPiA+ICsJCX0sDQo+ID4gKwkJJzB4YTMnOiB7DQo+ID4gKwkJCSdtYWNoaW5l X2FyZ3MnOiBbJy1tY3B1PXRodW5kZXJ4dDgzJ10sDQo+ID4gKwkJCSdmbGFncyc6IGZsYWdzX3Bh cnRfbnVtYmVyX3RodW5kZXJ4DQo+ID4gKwkJfSwNCj4gPiArCQknMHhhZic6IHsNCj4gPiArCQkJ J21hY2hpbmVfYXJncyc6IFsnLW1hcmNoPWFybXY4LjEtYStjcmMrY3J5cHRvJywNCj4gPiArCQkJ CQkgJy1tY3B1PXRodW5kZXJ4MnQ5OSddLA0KPiA+ICsJCQknZmxhZ3MnOiBbDQo+ID4gKwkJCQlb J1JURV9NQUNISU5FJywgJyJ0aHVuZGVyeDIiJ10sDQo+ID4gKwkJCQlbJ1JURV9BUk1fRkVBVFVS RV9BVE9NSUNTJywgdHJ1ZV0sDQo+ID4gKwkJCQlbJ1JURV9VU0VfQzExX01FTV9NT0RFTCcsIHRy dWVdLA0KPiA+ICsJCQkJWydSVEVfQ0FDSEVfTElORV9TSVpFJywgNjRdLA0KPiA+ICsJCQkJWydS VEVfTUFYX0xDT1JFJywgMjU2XSwNCj4gPiArCQkJCVsnUlRFX01BWF9OVU1BX05PREVTJywgMl0N Cj4gPiArCQkJXQ0KPiA+ICsJCX0sDQo+ID4gKwkJJzB4YjInOiB7DQo+ID4gKwkJCSdtYWNoaW5l X2FyZ3MnOiBbJy1tYXJjaD1hcm12OC4yLWErY3JjK2NyeXB0bytsc2UnLA0KPiA+ICsJCQkJCSAn LW1jcHU9b2N0ZW9udHgyJ10sDQo+ID4gKwkJCSdmbGFncyc6IFsNCj4gPiArCQkJCVsnUlRFX01B Q0hJTkUnLCAnIm9jdGVvbnR4MiInXSwNCj4gPiArCQkJCVsnUlRFX0FSTV9GRUFUVVJFX0FUT01J Q1MnLCB0cnVlXSwNCj4gPiArCQkJCVsnUlRFX1VTRV9DMTFfTUVNX01PREVMJywgdHJ1ZV0sDQo+ ID4gKwkJCQlbJ1JURV9FQUxfSUdCX1VJTycsIGZhbHNlXSwNCj4gPiArCQkJCVsnUlRFX01BWF9M Q09SRScsIDM2XSwNCj4gPiArCQkJCVsnUlRFX01BWF9OVU1BX05PREVTJywgMV0NCj4gPiArCQkJ XQ0KPiA+ICsJCX0NCj4gPiArCX0NCj4gPiArfQ0KPiA+DQo+ID4gLSMgYXJtIGNvbmZpZyAoaW1w bGVtZW50ZXIgMHg0MSkgaXMgdGhlIGRlZmF1bHQgY29uZmlnIC0NCj4gPiBwYXJ0X251bWJlcl9j b25maWdfYXJtID0gWw0KPiA+IC0JWydnZW5lcmljJywgWyctbWFyY2g9YXJtdjgtYStjcmMnLCAn LW1vdXRsaW5lLWF0b21pY3MnXV0sDQo+ID4gLQlbJ25hdGl2ZScsIFsnLW1hcmNoPW5hdGl2ZSdd XSwNCj4gPiAtCVsnMHhkMDMnLCBbJy1tY3B1PWNvcnRleC1hNTMnXV0sDQo+ID4gLQlbJzB4ZDA0 JywgWyctbWNwdT1jb3J0ZXgtYTM1J11dLA0KPiA+IC0JWycweGQwNycsIFsnLW1jcHU9Y29ydGV4 LWE1NyddXSwNCj4gPiAtCVsnMHhkMDgnLCBbJy1tY3B1PWNvcnRleC1hNzInXV0sDQo+ID4gLQlb JzB4ZDA5JywgWyctbWNwdT1jb3J0ZXgtYTczJ11dLA0KPiA+IC0JWycweGQwYScsIFsnLW1jcHU9 Y29ydGV4LWE3NSddXSwNCj4gPiAtCVsnMHhkMGInLCBbJy1tY3B1PWNvcnRleC1hNzYnXV0sDQo+ ID4gLQlbJzB4ZDBjJywgWyctbWFyY2g9YXJtdjguMi1hK2NyeXB0bycsICctbWNwdT1uZW92ZXJz ZS1uMSddLA0KPiA+IGZsYWdzX3BhcnRfbnVtYmVyX24xZ2VuZXJpY10NCj4gPiAtXQ0KPiA+IC1w YXJ0X251bWJlcl9jb25maWdfY2F2aXVtID0gWw0KPiA+IC0JWydnZW5lcmljJywgWyctbWFyY2g9 YXJtdjgtYStjcmMrY3J5cHRvJywnLW1jcHU9dGh1bmRlcngnXV0sDQo+ID4gLQlbJ25hdGl2ZScs IFsnLW1hcmNoPW5hdGl2ZSddXSwNCj4gPiAtCVsnMHhhMScsIFsnLW1jcHU9dGh1bmRlcnh0ODgn XSwgZmxhZ3NfcGFydF9udW1iZXJfdGh1bmRlcnhdLA0KPiA+IC0JWycweGEyJywgWyctbWNwdT10 aHVuZGVyeHQ4MSddLCBmbGFnc19wYXJ0X251bWJlcl90aHVuZGVyeF0sDQo+ID4gLQlbJzB4YTMn LCBbJy1tY3B1PXRodW5kZXJ4dDgzJ10sIGZsYWdzX3BhcnRfbnVtYmVyX3RodW5kZXJ4XSwNCj4g PiAtCVsnMHhhZicsIFsnLW1hcmNoPWFybXY4LjEtYStjcmMrY3J5cHRvJywnLW1jcHU9dGh1bmRl cngydDk5J10sDQo+ID4gZmxhZ3NfcGFydF9udW1iZXJfdGh1bmRlcngyXSwNCj4gPiAtCVsnMHhi MicsIFsnLW1hcmNoPWFybXY4LjItYStjcmMrY3J5cHRvK2xzZScsJy1tY3B1PW9jdGVvbnR4Midd LA0KPiA+IGZsYWdzX3BhcnRfbnVtYmVyX29jdGVvbnR4Ml0NCj4gPiAtXQ0KPiA+IC1wYXJ0X251 bWJlcl9jb25maWdfZW1hZyA9IFsNCj4gPiAtCVsnZ2VuZXJpYycsIFsnLW1hcmNoPWFybXY4LWEr Y3JjK2NyeXB0bycsICctbXR1bmU9ZW1hZyddXSwNCj4gPiAtCVsnbmF0aXZlJywgWyctbWFyY2g9 bmF0aXZlJ11dDQo+ID4gLV0NCj4gPiAraW1wbGVtZW50ZXJfYW1wZXJlID0gew0KPiA+ICsJJ2Rl c2NyaXB0aW9uJzogJ0FtcGVyZSBDb21wdXRpbmcnLA0KPiA+ICsJJ2ZsYWdzJzogWw0KPiA+ICsJ CVsnUlRFX01BQ0hJTkUnLCAnImVtYWciJ10sDQo+ID4gKwkJWydSVEVfQ0FDSEVfTElORV9TSVpF JywgNjRdLA0KPiA+ICsJCVsnUlRFX01BWF9MQ09SRScsIDMyXSwNCj4gPiArCQlbJ1JURV9NQVhf TlVNQV9OT0RFUycsIDFdDQo+ID4gKwldLA0KPiA+ICsJJ3BhcnRfbnVtYmVyX2NvbmZpZyc6IHsN Cj4gPiArCQknZ2VuZXJpYyc6IHsnbWFjaGluZV9hcmdzJzogIFsnLW1hcmNoPWFybXY4LWErY3Jj K2NyeXB0bycsDQo+ID4gKwkJCQkJICAgICAgJy1tdHVuZT1lbWFnJ119LA0KPiA+ICsJCSduYXRp dmUnOiB7J21hY2hpbmVfYXJncyc6ICBbJy1tYXJjaD1uYXRpdmUnXX0NCj4gPiArCX0NCj4gPiAr fQ0KPiA+ICsNCj4gPiAraW1wbGVtZW50ZXJfbWFydmVsbCA9IHsNCj4gPiArCSdkZXNjcmlwdGlv bic6ICdNYXJ2ZWxsIEFSTUFEQScsDQo+ID4gKwknZmxhZ3MnOiBbDQo+ID4gKwkJWydSVEVfTUFD SElORScsICciYXJtdjhhIiddLA0KPiA+ICsJCVsnUlRFX0NBQ0hFX0xJTkVfU0laRScsIDY0XSwN Cj4gPiArCQlbJ1JURV9NQVhfTENPUkUnLCAxNl0sDQo+ID4gKwkJWydSVEVfTUFYX05VTUFfTk9E RVMnLCAxXQ0KPiA+ICsJXSwNCj4gPiArCSdwYXJ0X251bWJlcl9jb25maWcnOiBwYXJ0X251bWJl cl9jb25maWdfYXJtIH0NCj4gPiArDQo+ID4gK2ltcGxlbWVudGVyX2RwYWEgPSB7DQo+ID4gKwkn ZGVzY3JpcHRpb24nOiAnTlhQIERQQUEnLA0KPiA+ICsJJ2ZsYWdzJzogWw0KPiA+ICsJCVsnUlRF X01BQ0hJTkUnLCAnImRwYWEiJ10sDQo+ID4gKwkJWydSVEVfTElCUlRFX0RQQUEyX1VTRV9QSFlT X0lPVkEnLCBmYWxzZV0sDQo+ID4gKwkJWydSVEVfVVNFX0MxMV9NRU1fTU9ERUwnLCB0cnVlXSwN Cj4gPiArCQlbJ1JURV9DQUNIRV9MSU5FX1NJWkUnLCA2NF0sDQo+ID4gKwkJWydSVEVfTUFYX0xD T1JFJywgMTZdLA0KPiA+ICsJCVsnUlRFX01BWF9OVU1BX05PREVTJywgMV0NCj4gPiArCV0sDQo+ ID4gKwkncGFydF9udW1iZXJfY29uZmlnJzogcGFydF9udW1iZXJfY29uZmlnX2FybSB9DQo+ID4N Cj4gPiAtIyMgQXJtIGltcGxlbWVudGVyIElEIChNSURSIGluIEFybSBBcmNoaXRlY3R1cmUgUmVm ZXJlbmNlIE1hbnVhbCkgLQ0KPiA+IGltcGxlbWVudGVyX2dlbmVyaWMgPSBbJ0dlbmVyaWMgYXJt djgnLCBmbGFnc19pbXBsZW1lbnRlcl9nZW5lcmljLA0KPiA+IHBhcnRfbnVtYmVyX2NvbmZpZ19h cm1dDQo+ID4gLWltcGxlbWVudGVyXzB4NDEgPSBbJ0FybScsIGZsYWdzX2ltcGxlbWVudGVyX2Fy bSwNCj4gPiBwYXJ0X251bWJlcl9jb25maWdfYXJtXQ0KPiA+IC1pbXBsZW1lbnRlcl8weDQzID0g WydDYXZpdW0nLCBmbGFnc19pbXBsZW1lbnRlcl9jYXZpdW0sDQo+ID4gcGFydF9udW1iZXJfY29u ZmlnX2Nhdml1bV0NCj4gPiAtaW1wbGVtZW50ZXJfMHg1MCA9IFsnQW1wZXJlIENvbXB1dGluZycs IGZsYWdzX2ltcGxlbWVudGVyX2VtYWcsDQo+ID4gcGFydF9udW1iZXJfY29uZmlnX2VtYWddDQo+ ID4gLWltcGxlbWVudGVyXzB4NTYgPSBbJ01hcnZlbGwgQVJNQURBJywgZmxhZ3NfaW1wbGVtZW50 ZXJfYXJtYWRhLA0KPiA+IHBhcnRfbnVtYmVyX2NvbmZpZ19hcm1dIC1pbXBsZW1lbnRlcl9kcGFh ID0gWydOWFAgRFBBQScsDQo+ID4gZmxhZ3NfaW1wbGVtZW50ZXJfZHBhYSwgcGFydF9udW1iZXJf Y29uZmlnX2FybV0NCj4gPiArIyMgQXJtIGltcGxlbWVudGVycyAoSUQgZnJvbSBNSURSIGluIEFy bSBBcmNoaXRlY3R1cmUgUmVmZXJlbmNlDQo+ID4gTWFudWFsKQ0KPiA+ICtpbXBsZW1lbnRlcnMg PSB7DQo+ID4gKwknZ2VuZXJpYyc6IGltcGxlbWVudGVyX2dlbmVyaWMsDQo+ID4gKwknMHg0MSc6 IGltcGxlbWVudGVyX2FybSwNCj4gPiArCScweDQzJzogaW1wbGVtZW50ZXJfY2F2aXVtLA0KPiA+ ICsJJzB4NTAnOiBpbXBsZW1lbnRlcl9hbXBlcmUsDQo+ID4gKwknMHg1Nic6IGltcGxlbWVudGVy X21hcnZlbGwsDQo+ID4gKwknZHBhYSc6IGltcGxlbWVudGVyX2RwYWENCj4gPiArfQ0KPiA+DQo+ ID4gIGRwZGtfY29uZi5zZXQoJ1JURV9BUkNIX0FSTScsIDEpDQo+ID4gIGRwZGtfY29uZi5zZXQo J1JURV9GT1JDRV9JTlRSSU5TSUNTJywgMSkgQEAgLTE1MSw3ICsyMDIsNyBAQCBlbHNlDQo+ID4g IAlpbXBsZW1lbnRlcl9pZCA9ICdnZW5lcmljJw0KPiA+ICAJaWYgbWFjaGluZSA9PSAnZGVmYXVs dCcgYW5kIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpDQo+ID4gIAkJIyBkZWZhdWx0IGJ1aWxk DQo+ID4gLQkJaW1wbGVtZW50ZXJfY29uZmlnID0gaW1wbGVtZW50ZXJfZ2VuZXJpYw0KPiA+ICsJ CWltcGxlbWVudGVyX2NvbmZpZyA9IGltcGxlbWVudGVyWydnZW5lcmljJ10NCj4gPiAgCQlwYXJ0 X251bWJlciA9ICdnZW5lcmljJw0KPiA+ICAJZWxpZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQo KQ0KPiA+ICAJCSMgbmF0aXZlIGJ1aWxkDQo+ID4gQEAgLTE2Niw5ICsyMTcsOSBAQCBlbHNlDQo+ ID4gIAkJCXBhcnRfbnVtYmVyID0gY21kX291dHB1dFszXQ0KPiA+ICAJCWVuZGlmDQo+ID4gIAkJ IyBTZXQgdG8gZ2VuZXJpYyBpZiB2YXJpYWJsZSBpcyBub3QgZm91bmQNCj4gPiAtCQlpbXBsZW1l bnRlcl9jb25maWcgPSBnZXRfdmFyaWFibGUoJ2ltcGxlbWVudGVyXycgKw0KPiA+IGltcGxlbWVu dGVyX2lkLCBbJ2dlbmVyaWMnXSkNCj4gPiArCQlpbXBsZW1lbnRlcl9jb25maWcgPSBpbXBsZW1l bnRlcnMuZ2V0KGltcGxlbWVudGVyX2lkLA0KPiA+IFsnZ2VuZXJpYyddKQ0KPiA+ICAJCWlmIGlt cGxlbWVudGVyX2NvbmZpZ1swXSA9PSAnZ2VuZXJpYycNCj4gPiAtCQkJaW1wbGVtZW50ZXJfY29u ZmlnID0gaW1wbGVtZW50ZXJfZ2VuZXJpYw0KPiA+ICsJCQlpbXBsZW1lbnRlcl9jb25maWcgPSBp bXBsZW1lbnRlclsnZ2VuZXJpYyddDQo+ID4gIAkJCXBhcnRfbnVtYmVyID0gJ2dlbmVyaWMnDQo+ ID4gIAkJZW5kaWYNCj4gPiAgCQlpZiBhcm1fZm9yY2VfbmF0aXZlX21hcmNoID09IHRydWUNCj4g PiBAQCAtMTc4LDI4ICsyMjksMzUgQEAgZWxzZQ0KPiA+ICAJCSMgY3Jvc3MgYnVpbGQNCj4gPiAg CQlpbXBsZW1lbnRlcl9pZCA9DQo+ID4gbWVzb24uZ2V0X2Nyb3NzX3Byb3BlcnR5KCdpbXBsZW1l bnRlcl9pZCcsICdnZW5lcmljJykNCj4gPiAgCQlwYXJ0X251bWJlciA9IG1lc29uLmdldF9jcm9z c19wcm9wZXJ0eSgncGFydF9udW1iZXInLA0KPiA+ICdnZW5lcmljJykNCj4gPiAtCQlpbXBsZW1l bnRlcl9jb25maWcgPSBnZXRfdmFyaWFibGUoJ2ltcGxlbWVudGVyXycgKw0KPiA+IGltcGxlbWVu dGVyX2lkKQ0KPiA+ICsJCWltcGxlbWVudGVyX2NvbmZpZyA9IGltcGxlbWVudGVycy5nZXQoaW1w bGVtZW50ZXJfaWQpDQo+ID4gIAllbmRpZg0KPiA+DQo+ID4gLQltZXNzYWdlKCdBcm0gaW1wbGVt ZW50ZXI6ICcgKyBpbXBsZW1lbnRlcl9jb25maWdbMF0pDQo+ID4gKwltZXNzYWdlKCdBcm0gaW1w bGVtZW50ZXI6ICcgKyBpbXBsZW1lbnRlcl9jb25maWdbJ2Rlc2NyaXB0aW9uJ10pDQo+ID4gIAlt ZXNzYWdlKCdBcm0gcGFydCBudW1iZXI6ICcgKyBwYXJ0X251bWJlcikNCj4gPg0KPiA+ICsJcGFy dF9udW1iZXJfY29uZmlnID0gaW1wbGVtZW50ZXJfY29uZmlnWydwYXJ0X251bWJlcl9jb25maWcn XQ0KPiA+ICsJaWYgcGFydF9udW1iZXJfY29uZmlnLmhhc19rZXkocGFydF9udW1iZXIpDQo+ID4g KwkJIyB1c2UgdGhlIHNwZWNpZmllZCBwYXJ0X251bWJlciBtYWNoaW5lIGFyZ3MgaWYgZm91bmQN Cj4gPiArCQlwYXJ0X251bWJlcl9jb25maWcgPSBwYXJ0X251bWJlcl9jb25maWdbcGFydF9udW1i ZXJdDQo+ID4gKwllbGlmIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpDQo+ID4gKwkJIyBkZWZh dWx0IHRvIGdlbmVyaWMgbWFjaGluZSBhcmdzIGlmIHBhcnRfbnVtYmVyIGlzIG5vdCBmb3VuZA0K PiA+ICsJCSMgYW5kIG5vdCBmb3JjaW5nIG5hdGl2ZSBtYWNoaW5lIGFyZ3MNCj4gPiArCQkjIGJ1 dCBkb24ndCBkZWZhdWx0IGluIGNyb3NzLWJ1aWxkczsgaWYgcGFydF9udW1iZXIgaXMgc3BlY2lm aWVkDQo+ID4gKwkJIyBpbmNvcnJlY3RseSBpbiBhIGNyb3NzLWZpbGUsIGl0IG5lZWRzIHRvIGJl IGZpeGVkIHRoZXJlDQo+ID4gKwkJcGFydF9udW1iZXJfY29uZmlnID0gcGFydF9udW1iZXJfY29u ZmlnWydnZW5lcmljJ10NCj4gPiArCWVsc2UNCj4gPiArCQkjIGRvaW5nIGNyb3NzIGJ1aWxkIGFu ZCBwYXJ0IG51bWJlciBpcyBub3QgaW4NCj4gPiBwYXJ0X251bWJlcl9jb25maWcNCj4gPiArCQll cnJvcignQ3Jvc3MgYnVpbGQgcGFydCBudW1iZXIgMEAwIG5vdA0KPiA+IGZvdW5kLicuZm9ybWF0 KHBhcnRfbnVtYmVyKSkNCj4gPiArCWVuZGlmDQo+ID4gKw0KPiA+ICAJIyB1c2UgZGVmYXVsdCBm bGFncyB3aXRoIGltcGxlbWVudGVyIGZsYWdzDQo+ID4gLQlkcGRrX2ZsYWdzID0gZmxhZ3NfY29t bW9uICsgaW1wbGVtZW50ZXJfY29uZmlnWzFdDQo+ID4gKwlkcGRrX2ZsYWdzID0gZmxhZ3NfY29t bW9uICsgaW1wbGVtZW50ZXJfY29uZmlnWydmbGFncyddICsNCj4gPiArcGFydF9udW1iZXJfY29u ZmlnLmdldCgnZmxhZ3MnLCBbXSkNCj4gPg0KPiA+ICsJIyBhcHBseSBzdXBwb3J0ZWQgbWFjaGlu ZSBhcmdzDQo+ID4gIAltYWNoaW5lX2FyZ3MgPSBbXSAjIENsZWFyIHByZXZpb3VzIG1hY2hpbmUg YXJncw0KPiA+IC0JZm9yZWFjaCBtYXJnOiBpbXBsZW1lbnRlcl9jb25maWdbMl0NCj4gPiAtCQlp ZiBtYXJnWzBdID09IHBhcnRfbnVtYmVyDQo+ID4gLQkJCSMgYXBwbHkgc3VwcG9ydGVkIG1hY2hp bmUgYXJncw0KPiA+IC0JCQlmb3JlYWNoIGZsYWc6IG1hcmdbMV0NCj4gPiAtCQkJCWlmIGNjLmhh c19hcmd1bWVudChmbGFnKQ0KPiA+IC0JCQkJCW1hY2hpbmVfYXJncyArPSBmbGFnDQo+ID4gLQkJ CQllbmRpZg0KPiA+IC0JCQllbmRmb3JlYWNoDQo+ID4gLQkJCWlmIG1hcmcubGVuZ3RoKCkgPiAy DQo+ID4gLQkJCQkjIGFkZCBleHRyYSBmbGFncyBmb3IgdGhlIHBhcnQNCj4gPiAtCQkJCWRwZGtf ZmxhZ3MgKz0gbWFyZ1syXQ0KPiA+IC0JCQllbmRpZg0KPiA+ICsJZm9yZWFjaCBmbGFnOiBwYXJ0 X251bWJlcl9jb25maWdbJ21hY2hpbmVfYXJncyddDQo+ID4gKwkJaWYgY2MuaGFzX2FyZ3VtZW50 KGZsYWcpDQo+ID4gKwkJCW1hY2hpbmVfYXJncyArPSBmbGFnDQo+ID4gIAkJZW5kaWYNCj4gPiAg CWVuZGZvcmVhY2gNCj4gPg0KPiA+IC0tDQo+ID4gMi4yMC4xDQoNCg==