From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web11.572.1586209860777625389 for ; Mon, 06 Apr 2020 14:51:00 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=UmqQEROt; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: erik.c.bjorge@intel.com) IronPort-SDR: 2Ib6O53Hkl7xvd3br2FwXydYUKFCKnib0aU/28sk1nC4joJH3/0TK8mh4tkc0voyfXNLuN8txN ANIoOIsd6CGQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Apr 2020 14:51:00 -0700 IronPort-SDR: rza4hOqqaCm1wAUDJAJAiyv8iyGe6CGamGgV5HoV6gINiAcSf6OxtZT25aknEImTVQ4g/yADLg Vfv3CRsmrbgQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,352,1580803200"; d="scan'208";a="239751965" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga007.jf.intel.com with ESMTP; 06 Apr 2020 14:50:59 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 6 Apr 2020 14:50:59 -0700 Received: from fmsmsx604.amr.corp.intel.com (10.18.126.84) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 6 Apr 2020 14:50:57 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 6 Apr 2020 14:50:57 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.48) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 6 Apr 2020 14:50:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b6d3F3VgOM19SbJ/CeuYb9icUVgueSTQEMQS6tSE37LT2xl+jiBDGyNBV218VUijoCFSQ4WuceD/dfXgyHX5oQq9evzcfI8iMa5hic91VTOSpCT2OlL10K2aM4nDcWyHZWGCJ99mR4Ur4OgP3d61/RIdKW4GyJUSzwvQcN7DOh+o3wyx3mBFOkDoPz8cC2eNnMl20B+MTfUGWvP+WZeXIhkwnlj0HXqiNzwQNHvM1l5uK3NHaYDETlkx9JvSPJLYkK6oQMS524QT88grhnhhIW87mlN48IuyqAaqS0BS3gcJlGd6B6pandvsZ/haLLCk8a4K0bFloR6xzlKQiGIluw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ymRE2pL/5+Y1mYrYNofMBjvQam9dYLtME2Y1gAjFEA8=; b=BeoRvKpMHpJcSe1Wa3C0AU9T4QZz+W8J1v8imagTWdPsVmEEq2jvezvA/w/ZNhRUenAo5Soq54mfihL6cW0hBJp0F9J5N0puHtacx8geb+kypSHmInc3EXns6S4TLsBJAmOdjkHkEVcE8CwWmiWQBDrmLoxAZX/4arj8hbMApQ2jC5m0NMTfJVyQFwnw1yx2NpQdAVXexfqZ3aYV3Ex8AwES0nciQr05RcoSkxiDFzZSqFMH3vHKIuobHKw/sJZIlOLjmSzS0+UjcnK9/boqOTxoBrPZsX+8ITh9BjLDWdEE8quIIWbNydw0ffJbjfCpdowu+q+Zi7HE+J0btUEzjg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ymRE2pL/5+Y1mYrYNofMBjvQam9dYLtME2Y1gAjFEA8=; b=UmqQEROtcTfiR2G7SrGiRu6ZQmYMeQKbF+klSmf/phrsbW/+8GLL3HX7PpfWpqTDhvxMYVdTJ1ivuphJHQt95raEfjCaihhulEV7i8TE2MQHvA//484DGelKR28/B9cmNRnoVJ0avCSMYUntmXVaX7vLTTadqNxS9jIY+NS9y8k= Received: from MW3PR11MB4554.namprd11.prod.outlook.com (2603:10b6:303:5d::7) by MW3PR11MB4620.namprd11.prod.outlook.com (2603:10b6:303:54::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.16; Mon, 6 Apr 2020 21:50:49 +0000 Received: from MW3PR11MB4554.namprd11.prod.outlook.com ([fe80::ed52:bf5d:a3dc:7252]) by MW3PR11MB4554.namprd11.prod.outlook.com ([fe80::ed52:bf5d:a3dc:7252%7]) with mapi id 15.20.2878.018; Mon, 6 Apr 2020 21:50:49 +0000 From: "Bjorge, Erik C" To: "Desimone, Nathaniel L" , "devel@edk2.groups.io" CC: "Desimone, Ashley E" , "Pandya, Puja" , "Agyeman, Prince" , "Bret Barkelew" , Philippe Mathieu-Daude Subject: Re: [edk2-devel] [edk2-staging/EdkRepo] [PATCH] EdkRepo: Add Support for macOS Thread-Topic: [edk2-devel] [edk2-staging/EdkRepo] [PATCH] EdkRepo: Add Support for macOS Thread-Index: AQHWDFZZx9LzJWjPyEe8i69/OukIAKhsmGSQgAAHjQCAAAHp8A== Date: Mon, 6 Apr 2020 21:50:49 +0000 Message-ID: References: <20200406205904.27226-1-nathaniel.l.desimone@intel.com> <110DB87F-C644-4E8A-B53B-52FA4AB3676B@intel.com> In-Reply-To: <110DB87F-C644-4E8A-B53B-52FA4AB3676B@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.2.0.6 dlp-product: dlpe-windows authentication-results: spf=none (sender IP is ) smtp.mailfrom=erik.c.bjorge@intel.com; x-originating-ip: [134.134.136.221] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4b4d7dfd-0c3f-4c09-276e-08d7da7491da x-ms-traffictypediagnostic: MW3PR11MB4620: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2201; x-forefront-prvs: 0365C0E14B x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW3PR11MB4554.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10019020)(376002)(136003)(396003)(39850400004)(366004)(346002)(81156014)(9686003)(66446008)(26005)(186003)(66476007)(66556008)(76116006)(66946007)(64756008)(55016002)(478600001)(316002)(81166006)(110136005)(8676002)(52536014)(7696005)(6506007)(53546011)(966005)(2906002)(8936002)(86362001)(54906003)(4326008)(5660300002)(33656002)(30864003)(71200400001)(460985005);DIR:OUT;SFP:1102; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: E/BHKRDdt0dFM/TAe8V03pQbyTo266ex4xiO29iaeZFP9tBTZmq7QXpV7iYoxt/y+gPhqBXdcCDouh6FsoBxXDqNqEEZvSH2jmZzH5qGaKOJAARJxP2Dab5usq+IYUqZgbm1d9qVdj3uYoDuR1GwYWqwfHBCD9vHdNL1pSMXU+SfvuQ04J0yGIMRvmk3gMwSshHlrzYJ6RV9r2cNnlrzQKwAX9S/V/lGfjWUVumgeKMlXSiNcj1tslvdYa3d0ERhzwCntfQ/FeyNKyP91b+DAgx1cEpU4LF1lPlCht98oPd24fTMaOHI2Tbe7lvMBhPjB0j2iAzvNN6X/krhWV9XxLTQicytbL93RkHV4b6n2SCG9bdTvuElQFLBn2euM7DJ2d5nF3zzFGjHOPDYNa63YU3Hf9IJ9/wxp7y8/evwMHChaGFthqxOOXb2y6hphrPFGaoMlVBMblDoxTRaEStPSpNzs+WKXwbtD6J/hbsUmRvBF/oaiTU6BKdj5bI2GHfDbdAAAFwUQjWDxv2XTF+++ena/oNO3e5JwOalc2GtJDCaIWAxGB24o867eKrUlB+/ x-ms-exchange-antispam-messagedata: hTKOWSX3zeYRoUiglx4VI4Iui7QDTuyk3rV775OtnwT8IUs3eHLB/bP6zx8XOAUSAMBaxO3jEWKHhAgl+sL47GbAqmZo1PbmNLjfCw5PgQgYi54zExPy/+Y2imapUiXSluuSmmNJmsXJ7Un3p+ta/g== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 4b4d7dfd-0c3f-4c09-276e-08d7da7491da X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Apr 2020 21:50:49.3442 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: S1h3mVSUP16bqHeaB0JG345gqsy8deAk20DjhUvLSyVOR4ebgsIR7t5zeSBq+L1ru8W7rDcedDatMk7qzuPQnw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4620 Return-Path: erik.c.bjorge@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SSB3aWxsIHRha2UgYSBsb29rIGF0IHJlbW92aW5nIHN5c3RlbSB3aWRlIGluc3RhbGxzIG9uIExp bnV4IGFuZCB3ZSBjYW4ga2VlcCB0aGVzZSBjaGFuZ2UgZm9jdXNlZCBvbiBNYWMgc3VwcG9ydC4N Cg0KVGhhbmtzLA0KLUVyaWsNCg0KUmV2aWV3ZWQtYnk6IEVyaWsgQmpvcmdlIDxlcmlrLmMuYmpv cmdlQGludGVsLmNvbT4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IERlc2lt b25lLCBOYXRoYW5pZWwgTCA8bmF0aGFuaWVsLmwuZGVzaW1vbmVAaW50ZWwuY29tPiANClNlbnQ6 IE1vbmRheSwgQXByaWwgNiwgMjAyMCAyOjQzIFBNDQpUbzogQmpvcmdlLCBFcmlrIEMgPGVyaWsu Yy5iam9yZ2VAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCkNjOiBEZXNpbW9uZSwg QXNobGV5IEUgPGFzaGxleS5lLmRlc2ltb25lQGludGVsLmNvbT47IFBhbmR5YSwgUHVqYSA8cHVq YS5wYW5keWFAaW50ZWwuY29tPjsgQWd5ZW1hbiwgUHJpbmNlIDxwcmluY2UuYWd5ZW1hbkBpbnRl bC5jb20+OyBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+OyBQaGls aXBwZSBNYXRoaWV1LURhdWRlIDxwaGlsbWRAcmVkaGF0LmNvbT4NClN1YmplY3Q6IFJlOiBbZWRr Mi1kZXZlbF0gW2VkazItc3RhZ2luZy9FZGtSZXBvXSBbUEFUQ0hdIEVka1JlcG86IEFkZCBTdXBw b3J0IGZvciBtYWNPUw0KDQpIaSBFcmlrLA0KDQpJJ20gbm90IHBsYW5uaW5nIG9uIHRoaXMgYmVp bmcgdGhlIG9ubHkgcGF0Y2ggb24gdGhpcyB0b3BpYyBhbnl3YXkuIEkgc3RpbGwgbmVlZCB0byB1 cGRhdGUgZG9jdW1lbnRhdGlvbiBhbmQgc3R1ZmYgbGlrZSB0aGF0LiBZb3UgYXJlIHdlbGNvbWUg dG8gdGFrZSBhIGxvb2sgYXQgd2hhdCBpdCB3b3VsZCB0YWtlIHRvIHN3aXRjaCB0byB1c2VyLWJh c2VkIGluc3RhbGxzLiBGb3IgbWFjT1MsIHRoZSBvbmx5IG1ldGhvZCBJIHN1cHBvcnQgaXMgdXNp bmcgcHllbnYuDQoNClRoYW5rcywNCk5hdGUNCg0K77u/T24gNC82LzIwLCAyOjE5IFBNLCAiQmpv cmdlLCBFcmlrIEMiIDxlcmlrLmMuYmpvcmdlQGludGVsLmNvbT4gd3JvdGU6DQoNCiAgICBOYXRl LA0KICAgIA0KICAgIFRvIHNpbXBsaWZ5IHNvbWUgb2YgdGhlIGluc3RhbGxlciBjb2RlIHNob3Vs ZCB3ZSBqdXN0IHN3aXRjaCB0byBsb2NhbCAodXNlcikgaW5zdGFsbHMgaW4gZm9yIExpbnV4IGFu ZCBNYWM/ICBJIHdvdWxkIGxpa2UgdG8gbW92ZSB0byB0aGlzIGZvciBMaW51eCBhbnl3YXkuICBJ IGNhbiBhbHNvIHN1Ym1pdCBhIHBhdGNoIGZvciB0aGlzIGF0IHNvbWUgb3RoZXIgdGltZS4NCiAg ICANCiAgICBUaGUgcmVzdCBvZiB0aGUgY29kZSBsb29rcyBnb29kLg0KICAgIA0KICAgIFRoYW5r cywNCiAgICAtRXJpaw0KICAgIA0KICAgIC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQogICAg RnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhh bGYgT2YgTmF0ZSBEZVNpbW9uZQ0KICAgIFNlbnQ6IE1vbmRheSwgQXByaWwgNiwgMjAyMCAxOjU5 IFBNDQogICAgVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQogICAgQ2M6IERlc2ltb25lLCBBc2hs ZXkgRSA8YXNobGV5LmUuZGVzaW1vbmVAaW50ZWwuY29tPjsgUGFuZHlhLCBQdWphIDxwdWphLnBh bmR5YUBpbnRlbC5jb20+OyBCam9yZ2UsIEVyaWsgQyA8ZXJpay5jLmJqb3JnZUBpbnRlbC5jb20+ OyBBZ3llbWFuLCBQcmluY2UgPHByaW5jZS5hZ3llbWFuQGludGVsLmNvbT47IEJyZXQgQmFya2Vs ZXcgPEJyZXQuQmFya2VsZXdAbWljcm9zb2Z0LmNvbT47IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZGUg PHBoaWxtZEByZWRoYXQuY29tPg0KICAgIFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbZWRrMi1zdGFn aW5nL0Vka1JlcG9dIFtQQVRDSF0gRWRrUmVwbzogQWRkIFN1cHBvcnQgZm9yIG1hY09TDQogICAg DQogICAgU2lnbmVkLW9mZi1ieTogTmF0ZSBEZVNpbW9uZSA8bmF0aGFuaWVsLmwuZGVzaW1vbmVA aW50ZWwuY29tPg0KICAgIENjOiBBc2hsZXkgRGVTaW1vbmUgPGFzaGxleS5lLmRlc2ltb25lQGlu dGVsLmNvbT4NCiAgICBDYzogUHVqYSBQYW5keWEgPHB1amEucGFuZHlhQGludGVsLmNvbT4NCiAg ICBDYzogRXJpayBCam9yZ2UgPGVyaWsuYy5iam9yZ2VAaW50ZWwuY29tPg0KICAgIENjOiBQcmlu Y2UgQWd5ZW1hbiA8cHJpbmNlLmFneWVtYW5AaW50ZWwuY29tPg0KICAgIENjOiBCcmV0IEJhcmtl bGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+DQogICAgQ2M6IFBoaWxpcHBlIE1hdGhp ZXUtRGF1ZGUgPHBoaWxtZEByZWRoYXQuY29tPg0KICAgIC0tLQ0KICAgICBidWlsZC1zY3JpcHRz L2J1aWxkX2xpbnV4X2luc3RhbGxlci5weSAgICAgICAgfCAgMiArDQogICAgIGJ1aWxkLXNjcmlw dHMvc2V0X3ZlcnNpb25fYW5kX2J1aWxkX3doZWVscy5weSB8IDEwICstLQ0KICAgICBlZGtyZXBv L2NvbmZpZy9jb25maWdfZmFjdG9yeS5weSAgICAgICAgICAgICAgfCAgNiArLQ0KICAgICBlZGty ZXBvX2luc3RhbGxlci9saW51eC1zY3JpcHRzL2luc3RhbGwucHkgICAgfCA2NSArKysrKysrKysr KysrKysrKy0tDQogICAgIDQgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgMTYgZGVs ZXRpb25zKC0pDQogICAgDQogICAgZGlmZiAtLWdpdCBhL2J1aWxkLXNjcmlwdHMvYnVpbGRfbGlu dXhfaW5zdGFsbGVyLnB5IGIvYnVpbGQtc2NyaXB0cy9idWlsZF9saW51eF9pbnN0YWxsZXIucHkN CiAgICBpbmRleCAwMTMwNTUyLi4xMWRkOGQ3IDEwMDc1NQ0KICAgIC0tLSBhL2J1aWxkLXNjcmlw dHMvYnVpbGRfbGludXhfaW5zdGFsbGVyLnB5DQogICAgKysrIGIvYnVpbGQtc2NyaXB0cy9idWls ZF9saW51eF9pbnN0YWxsZXIucHkNCiAgICBAQCAtMTAsNiArMTAsNyBAQA0KICAgICBmcm9tIGFy Z3BhcnNlIGltcG9ydCBBcmd1bWVudFBhcnNlcg0KICAgICBpbXBvcnQgZm5tYXRjaCwgb3MsIHNo dXRpbCwgc3VicHJvY2Vzcywgc3lzICBpbXBvcnQgc2V0X3ZlcnNpb25fYW5kX2J1aWxkX3doZWVs cyBhcyBidWlsZF9lZGtyZXBvDQogICAgK2ltcG9ydCB0cmFjZWJhY2sNCiAgICANCiAgICAgZGVm IG1haW4oKToNCiAgICAgICAgIHBhcnNlciA9IEFyZ3VtZW50UGFyc2VyKCkNCiAgICBAQCAtMzEs NiArMzIsNyBAQCBkZWYgbWFpbigpOg0KICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgIGJ1aWxk X2Vka3JlcG8ubWFpbigpDQogICAgICAgICBleGNlcHQ6DQogICAgKyAgICAgICAgdHJhY2ViYWNr LnByaW50X2V4YygpDQogICAgICAgICAgICAgcHJpbnQoJ0ZhaWxlZCB0byBidWlsZCBlZGtyZXBv IHdoZWVsJykNCiAgICAgICAgICAgICByZXR1cm4gMQ0KICAgIA0KICAgIGRpZmYgLS1naXQgYS9i dWlsZC1zY3JpcHRzL3NldF92ZXJzaW9uX2FuZF9idWlsZF93aGVlbHMucHkgYi9idWlsZC1zY3Jp cHRzL3NldF92ZXJzaW9uX2FuZF9idWlsZF93aGVlbHMucHkNCiAgICBpbmRleCA0MmU1OGNjLi43 ZGYwYzg0IDEwMDc1NQ0KICAgIC0tLSBhL2J1aWxkLXNjcmlwdHMvc2V0X3ZlcnNpb25fYW5kX2J1 aWxkX3doZWVscy5weQ0KICAgICsrKyBiL2J1aWxkLXNjcmlwdHMvc2V0X3ZlcnNpb25fYW5kX2J1 aWxkX3doZWVscy5weQ0KICAgIEBAIC0zLDcgKzMsNyBAQA0KICAgICAjIyBAZmlsZQ0KICAgICAj IHNldF92ZXJzaW9uX2FuZF9idWlsZF93aGVlbHMucHkNCiAgICAgIw0KICAgIC0jIENvcHlyaWdo dCAoYykgMjAxNyAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk LjxCUj4NCiAgICArIyBDb3B5cmlnaHQgKGMpIDIwMTcgLSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlv bi4gQWxsIHJpZ2h0cw0KICAgICtyZXNlcnZlZC48QlI+DQogICAgICMgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQgICMNCiAgICANCiAgICBAQCAtMjE0LDcgKzIx NCw3IEBAIGRlZiBidWlsZF93aGVlbHMoZXh0ZW5zaW9uX3BrZ3MpOg0KICAgICBkZWYgY29weV93 aGVlbHNfYW5kX3NldF94bWwocGFja2FnZV92ZXJzaW9uLCBleHRlbnNpb25fcGtncyk6DQogICAg ICAgICBkaXJfcGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNw YXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpKSwgImRpc3QiKQ0KICAgICAgICAgZGVzdF9w YXRoID0gb3MucGF0aC5qb2luKGRpcl9wYXRoLCAic2VsZl9leHRyYWN0IikNCiAgICAtICAgIGlm IG9zdHlwZSA9PSBMSU5VWDoNCiAgICArICAgIGlmIG9zdHlwZSAhPSBXSU46DQogICAgICAgICAg ICAgZGVzdF9wYXRoID0gb3MucGF0aC5qb2luKGRlc3RfcGF0aCwgJ3doZWVscycpDQogICAgICAg ICBpZiBub3Qgb3MucGF0aC5pc2RpcihkZXN0X3BhdGgpOg0KICAgICAgICAgICAgIG9zLm1ha2Vk aXJzKGRlc3RfcGF0aCkNCiAgICBAQCAtMjQxLDkgKzI0MSw5IEBAIGRlZiBjcmVhdGVfZmluYWxf Y29weV9zY3JpcHQodmVyc2lvbik6DQogICAgICAgICAgICAgICAgIGYud3JpdGUoInB1c2hkIC4u XFxkaXN0XG4iKQ0KICAgICAgICAgICAgICAgICBmLndyaXRlKCJyZW4gXCJzZXR1cC5leGVcIiBc IkVka1JlcG9TZXR1cC17fS5leGVcIlxuIi5mb3JtYXQodmVyc2lvbikpDQogICAgICAgICAgICAg ICAgIGYud3JpdGUoInBvcGRcbiIpDQogICAgLSAgICBlbGlmIG9zdHlwZSA9PSBMSU5VWDoNCiAg ICArICAgIGVsc2U6DQogICAgICAgICAgICAgd2l0aCBvcGVuKCdmaW5hbF9jb3B5LnB5JywgJ3cn KSBhcyBmOg0KICAgIC0gICAgICAgICAgICBmLndyaXRlKCcjIS91c3IvYmluL3B5dGhvbjNcbicp DQogICAgKyAgICAgICAgICAgIGYud3JpdGUoJyMhL3Vzci9iaW4vZW52IHB5dGhvbjNcbicpDQog ICAgICAgICAgICAgICAgIGYud3JpdGUoJ2ltcG9ydCBvcywgc2h1dGlsLCBzeXNcbicpDQogICAg ICAgICAgICAgICAgIGYud3JpdGUoJ2Rpc3RfbmFtZSA9ICJlZGtyZXBvLXt7fX0iLmZvcm1hdCgi e30iKVxuJy5mb3JtYXQodmVyc2lvbikpDQogICAgICAgICAgICAgICAgIGYud3JpdGUoJ2luc3Rh bGxlcl9kaXIgPSAiLi4vZGlzdC9zZWxmX2V4dHJhY3QiXG4nKSBAQCAtMjU3LDcgKzI1Nyw3IEBA IGRlZiBfY29weV9maWxlKHNvdXJjZSwgZGVzdGluYXRpb24pOg0KICAgICAgICAgICAgIGNoZWNr X2NhbGwoImNwIC1mIHt9IHt9Ii5mb3JtYXQoc291cmNlLCBkZXN0aW5hdGlvbiksIHNoZWxsPVRy dWUpDQogICAgDQogICAgIGRlZiBtYWtlX3ZlcnNpb25fY2ZnX2ZpbGUodmVyc2lvbik6DQogICAg LSAgICBpZiBvc3R5cGUgPT0gTElOVVg6DQogICAgKyAgICBpZiBvc3R5cGUgIT0gV0lOOg0KICAg ICAgICAgICAgIGNmZ19zcmMgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKG9zLnBhdGgu YWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKSksICdlZGtyZXBvX2luc3RhbGxlcics ICdsaW51eC1zY3JpcHRzJykNCiAgICAgICAgICAgICBpbnN0YWxsX2NmZyA9IGNvbmZpZ3BhcnNl ci5Db25maWdQYXJzZXIoYWxsb3dfbm9fdmFsdWU9VHJ1ZSkNCiAgICAgICAgICAgICBpbnN0YWxs X2NmZy5yZWFkKG9zLnBhdGguam9pbihjZmdfc3JjLCAnaW5zdGFsbC5jZmcnKSkgZGlmZiAtLWdp dCBhL2Vka3JlcG8vY29uZmlnL2NvbmZpZ19mYWN0b3J5LnB5IGIvZWRrcmVwby9jb25maWcvY29u ZmlnX2ZhY3RvcnkucHkNCiAgICBpbmRleCBlM2E0MzdmLi5iODZlMGI4IDEwMDY0NA0KICAgIC0t LSBhL2Vka3JlcG8vY29uZmlnL2NvbmZpZ19mYWN0b3J5LnB5DQogICAgKysrIGIvZWRrcmVwby9j b25maWcvY29uZmlnX2ZhY3RvcnkucHkNCiAgICBAQCAtMyw3ICszLDcgQEANCiAgICAgIyMgQGZp bGUNCiAgICAgIyBjb25maWdfZmFjdG9yeS5weQ0KICAgICAjDQogICAgLSMgQ29weXJpZ2h0IChj KSAyMDE3LSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQogICAgKyMgQ29weXJpZ2h0IChjKSAyMDE3IC0gMjAyMCwgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMNCiAgICArcmVzZXJ2ZWQuPEJSPg0KICAgICAjIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50ICAjDQogICAgDQogICAgQEAgLTMwLDkgKzMwLDcgQEAg ZGVmIGdldF9lZGtyZXBvX2dsb2JhbF9kYXRhX2RpcmVjdG9yeSgpOg0KICAgICAgICAgICAgIGNv bW1vbl9hcHBkYXRhID0gY3JlYXRlX3VuaWNvZGVfYnVmZmVyKE1BWF9QQVRIKQ0KICAgICAgICAg ICAgIFNIR2V0Rm9sZGVyUGF0aChOb25lLCBDU0lETF9DT01NT05fQVBQREFUQSwgTm9uZSwgU0hH RlBfVFlQRV9DVVJSRU5ULCBjb21tb25fYXBwZGF0YSkNCiAgICAgICAgICAgICBnbG9iYWxfZGF0 YV9kaXIgPSBvcy5wYXRoLmpvaW4oY29tbW9uX2FwcGRhdGEudmFsdWUsICJlZGtyZXBvIikNCiAg ICAtICAgIGVsaWYgc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iOg0KICAgIC0gICAgICAgIHJhaXNl IE9TRXJyb3IoIm1hY09TIHN1cHBvcnQgaXMgaW4gcHJvZ3Jlc3MiKQ0KICAgIC0gICAgZWxpZiBz eXMucGxhdGZvcm0uc3RhcnRzd2l0aCgibGludXgiKSBvciBvcy5uYW1lID09ICJwb3NpeCI6DQog ICAgKyAgICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIiBvciBzeXMucGxhdGZvcm0uc3Rh cnRzd2l0aCgibGludXgiKSBvciBvcy5uYW1lID09ICJwb3NpeCI6DQogICAgICAgICAgICAgZ2xv YmFsX2RhdGFfZGlyID0gb3MucGF0aC5leHBhbmR1c2VyKCJ+Ly5lZGtyZXBvIikNCiAgICAgICAg IGlmIG5vdCBvcy5wYXRoLmlzZGlyKGdsb2JhbF9kYXRhX2Rpcik6DQogICAgICAgICAgICAgaWYg bm90IG9zLnBhdGguZXhpc3RzKG9zLnBhdGguZGlybmFtZShnbG9iYWxfZGF0YV9kaXIpKToNCiAg ICBkaWZmIC0tZ2l0IGEvZWRrcmVwb19pbnN0YWxsZXIvbGludXgtc2NyaXB0cy9pbnN0YWxsLnB5 IGIvZWRrcmVwb19pbnN0YWxsZXIvbGludXgtc2NyaXB0cy9pbnN0YWxsLnB5DQogICAgaW5kZXgg NTJmMGM1Mi4uMDk5OTU0ZCAxMDA3NTUNCiAgICAtLS0gYS9lZGtyZXBvX2luc3RhbGxlci9saW51 eC1zY3JpcHRzL2luc3RhbGwucHkNCiAgICArKysgYi9lZGtyZXBvX2luc3RhbGxlci9saW51eC1z Y3JpcHRzL2luc3RhbGwucHkNCiAgICBAQCAtMjMsNiArMjMsMjEgQEAgaW1wb3J0IHN5cw0KICAg ICBpbXBvcnQgdHJhY2ViYWNrDQogICAgIGltcG9ydCB4bWwuZXRyZWUuRWxlbWVudFRyZWUgYXMg ZXQNCiAgICANCiAgICArIw0KICAgICsjIEVudmlyb25tZW50IGRldGVjdGlvbg0KICAgICsjDQog ICAgK01BQyA9ICJtYWMiDQogICAgK0xJTlVYID0gImxpbnV4Ig0KICAgICtpZiBzeXMucGxhdGZv cm0gPT0gImRhcndpbiI6DQogICAgKyAgICBvc3R5cGUgPSBNQUMNCiAgICArZWxpZiBzeXMucGxh dGZvcm0uc3RhcnRzd2l0aCgibGludXgiKToNCiAgICArICAgIG9zdHlwZSA9IExJTlVYDQogICAg K2VsaWYgb3MubmFtZSA9PSAicG9zaXgiOg0KICAgICsgICAgcHJpbnQoIldhcm5pbmc6IFVucmVj b2duaXplZCBVTklYIE9TLi4uIHRyZWF0aW5nIGFzIExpbnV4IikNCiAgICArICAgIG9zdHlwZSA9 IExJTlVYDQogICAgK2Vsc2U6DQogICAgKyAgICByYWlzZSBFbnZpcm9ubWVudEVycm9yKCJVbnN1 cHBvcnRlZCBPUyIpDQogICAgKw0KICAgICB0b29sX3NpZ25fb24gPSAnSW5zdGFsbGVyIGZvciBl ZGtyZXBvIHZlcnNpb24ge31cbkNvcHlyaWdodChjKSBJbnRlbCBDb3Jwb3JhdGlvbiwgMjAyMCcN CiAgICANCiAgICAgIyBEYXRhIGhlcmUgc2hvdWxkIGJlIG1haW50YWluZWQgaW4gYSBjb25maWd1 cmF0aW9uIGZpbGUgQEAgLTMxLDYgKzQ2LDcgQEAgZGlyZWN0b3JpZXNfd2l0aF9leGVjdXRhYmxl cyA9IFsnZ2l0X2F1dG9tYXRpb24nXSAgY2ZnX3NyY19kaXIgPSBvcy5wYXRoLmFic3BhdGgoJ2Nv bmZpZycpICB3aGxfc3JjX2RpciA9IG9zLnBhdGguYWJzcGF0aCgnd2hlZWxzJykgIGRlZl9weXRo b24gPSAncHl0aG9uMycNCiAgICArbmZzX2hvbWVfZGlyZWN0b3J5X2RhdGEgPSByZS5jb21waWxl KHIiTkZTSG9tZURpcmVjdG9yeTpccyooXFMrKSIpDQogICAgDQogICAgICMgWlNIIENvbmZpZ3Vy YXRpb24gb3B0aW9ucw0KICAgICBwcm9tcHRfcmVnZXggPSByZS5jb21waWxlKHIiI1xzK1tBYV1b RGRdW0RkXVxzK1tFZV1bRGRdW0trXVtScl1bRWVdW1BwXVtPb11ccysmXHMrW0dnXVtJaV1bVHRd XHMrW1R0XVtPb11ccytbVHRdW0hoXVtFZV1ccytbUHBdW1JyXVtPb11bTW1dW1BwXVtUdF0iKQ0K ICAgIEBAIC02Myw3ICs3OSw4IEBAIGRlZiBpbml0X2xvZ2dlcih2ZXJib3NlKToNCiAgICANCiAg ICAgZGVmIGdldF9hcmdzKCk6DQogICAgICAgICBwYXJzZXIgPSBBcmd1bWVudFBhcnNlcigpDQog ICAgLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctbCcsICctLWxvY2FsJywgYWN0aW9uPSdzdG9y ZV90cnVlJywgZGVmYXVsdD1GYWxzZSwgaGVscD0nSW5zdGFsbCBlZGtyZXBvIHRvIHRoZSB1c2Vy IGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHN5c3RlbSB3aWRlJykNCiAgICArICAgIGlmIG9zdHlwZSAh PSBNQUM6DQogICAgKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLWwnLCAnLS1sb2NhbCcs IGFjdGlvbj0nc3RvcmVfdHJ1ZScsDQogICAgKyBkZWZhdWx0PUZhbHNlLCBoZWxwPSdJbnN0YWxs IGVka3JlcG8gdG8gdGhlIHVzZXIgZGlyZWN0b3J5IGluc3RlYWQgb2YNCiAgICArIHN5c3RlbSB3 aWRlJykNCiAgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1wJywgJy0tcHknLCBhY3Rpb249 J3N0b3JlJywgZGVmYXVsdD1Ob25lLCBoZWxwPSdTcGVjaWZ5IHRoZSBweXRob24gY29tbWFuZCB0 byB1c2Ugd2hlbiBpbnN0YWxsaW5nJykNCiAgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy11 JywgJy0tdXNlcicsIGFjdGlvbj0nc3RvcmUnLCBkZWZhdWx0PU5vbmUsIGhlbHA9J1NwZWNpZnkg dXNlciBhY2NvdW50IHRvIGluc3RhbGwgZWRrcmVwbyBzdXBwb3J0IG9uJykNCiAgICAgICAgIHBh cnNlci5hZGRfYXJndW1lbnQoJy12JywgJy0tdmVyYm9zZScsIGFjdGlvbj0nc3RvcmVfdHJ1ZScs IGRlZmF1bHQ9RmFsc2UsIGhlbHA9J0VuYWJsZXMgdmVyYm9zZSBvdXRwdXQnKSBAQCAtMjE4LDYg KzIzNSwxOCBAQCBkZWYgX2NoZWNrX3ZlcnNpb24oY3VycmVudCwgZXhwZWN0ZWQpOg0KICAgICAg ICAgICAgICAgICByZXR1cm4gMQ0KICAgICAgICAgcmV0dXJuIDANCiAgICANCiAgICArZGVmIGdl dF91c2VyX2hvbWVfZGlyZWN0b3J5KHVzZXJuYW1lKToNCiAgICArICAgIGlmIG9zdHlwZSA9PSBN QUM6DQogICAgKyAgICAgICAgcmVzID0gZGVmYXVsdF9ydW4oWydkc2NsJywgJy4nLCAnLXJlYWQn LCAnL1VzZXJzL3t9Jy5mb3JtYXQodXNlcm5hbWUpLCAnTkZTSG9tZURpcmVjdG9yeSddKQ0KICAg ICsgICAgICAgIGRhdGEgPSBuZnNfaG9tZV9kaXJlY3RvcnlfZGF0YS5tYXRjaChyZXMuc3Rkb3V0 LnN0cmlwKCkpDQogICAgKyAgICAgICAgaWYgZGF0YToNCiAgICArICAgICAgICAgICAgcmV0dXJu IGRhdGEuZ3JvdXAoMSkNCiAgICArICAgICAgICBlbHNlOg0KICAgICsgICAgICAgICAgICByYWlz ZSBWYWx1ZUVycm9yKCJob21lIGRpcmVjdG9yeSBub3QgZm91bmQiKQ0KICAgICsgICAgZWxzZToN CiAgICArICAgICAgICByZXMgPSBkZWZhdWx0X3J1bihbJ2dldGVudCcsICdwYXNzd2QnLCB1c2Vy bmFtZV0pDQogICAgKyAgICAgICAgcmV0dXJuIHJlcy5zdGRvdXQuc3RyaXAoKS5zcGxpdCgnOicp WzVdDQogICAgKw0KICAgICBkZWYgZ2V0X3NpdGVfcGFja2FnZXNfZGlyZWN0b3J5KCk6DQogICAg ICAgICByZXMgPSBkZWZhdWx0X3J1bihbZGVmX3B5dGhvbiwgJy1jJywgJ2ltcG9ydCBzaXRlOyBw cmludChzaXRlLmdldHNpdGVwYWNrYWdlcygpWzBdKSddKQ0KICAgICAgICAgcmV0dXJuIHJlcy5z dGRvdXQuc3RyaXAoKQ0KICAgIEBAIC00MjQsNiArNDUzLDkgQEAgZGVmIGRvX2luc3RhbGwoKToN CiAgICANCiAgICAgICAgICMgSW5pdGlhbGl6ZSBpbmZvcm1hdGlvbiBiYXNlZCBvbiBjb21tYW5k IGxpbmUgaW5wdXQNCiAgICAgICAgIHVzZXJuYW1lID0gYXJncy51c2VyDQogICAgKyAgICBpbnN0 YWxsX3RvX2xvY2FsID0gRmFsc2UNCiAgICArICAgIGlmIG9zdHlwZSAhPSBNQUMgYW5kIGFyZ3Mu bG9jYWw6DQogICAgKyAgICAgICAgaW5zdGFsbF90b19sb2NhbCA9IFRydWUNCiAgICANCiAgICAg ICAgIHRyeToNCiAgICAgICAgICAgICBjZmcgPSBjb25maWdwYXJzZXIuQ29uZmlnUGFyc2VyKGFs bG93X25vX3ZhbHVlPVRydWUpDQogICAgQEAgLTQ0OSw3ICs0ODEsNyBAQCBkZWYgZG9faW5zdGFs bCgpOg0KICAgIA0KICAgICAgICAgIyBEZXRlcm1pbmUgdGhlIHVzZXIgcnVubmluZyBzdWRvDQog ICAgICAgICBsb2cuaW5mbygnXG5Db2xsZWN0aW5nIHN5c3RlbSBpbmZvcm1hdGlvbjonKQ0KICAg IC0gICAgaWYgbm90IGFyZ3MubG9jYWw6DQogICAgKyAgICBpZiBub3QgaW5zdGFsbF90b19sb2Nh bCBhbmQgb3N0eXBlICE9IE1BQzoNCiAgICAgICAgICAgICB0cnk6DQogICAgICAgICAgICAgICAg IHJlcyA9IGRlZmF1bHRfcnVuKFsnaWQnLCAnLXUnXSkNCiAgICAgICAgICAgICBleGNlcHQ6DQog ICAgQEAgLTQ2NiwxMSArNDk4LDIxIEBAIGRlZiBkb19pbnN0YWxsKCk6DQogICAgICAgICAgICAg ICAgIGxvZy5pbmZvKCctIFVuYWJsZSB0byBkZXRlcm1pbmUgY3VycmVudCB1c2VyLiAgUnVuIGlu c3RhbGxlciB1c2luZyB0aGUgLS11c2VyIGZsYWcgYW5kIHNwZWNpZnkgdGhlIGNvcnJlY3QgdXNl ciBuYW1lLicpDQogICAgICAgICAgICAgICAgIHJldHVybiAxDQogICAgICAgICB0cnk6DQogICAg LSAgICAgICAgcmVzID0gZGVmYXVsdF9ydW4oWydnZXRlbnQnLCAncGFzc3dkJywgdXNlcm5hbWVd KQ0KICAgIC0gICAgICAgIHVzZXJfaG9tZV9kaXIgPSByZXMuc3Rkb3V0LnN0cmlwKCkuc3BsaXQo JzonKVs1XQ0KICAgICsgICAgICAgIHVzZXJfaG9tZV9kaXIgPSBnZXRfdXNlcl9ob21lX2RpcmVj dG9yeSh1c2VybmFtZSkNCiAgICAgICAgIGV4Y2VwdDoNCiAgICAgICAgICAgICBsb2cuaW5mbygn LSBVbmFibGUgdG8gZGV0ZXJtaW5lIHVzZXJzIGhvbWUgZGlyZWN0b3J5JykNCiAgICAgICAgICAg ICByZXR1cm4gMQ0KICAgICsgICAgaWYgb3N0eXBlID09IE1BQzoNCiAgICArICAgICAgICB0cnk6 DQogICAgKyAgICAgICAgICAgIHJlcyA9IGRlZmF1bHRfcnVuKFsnaWQnLCAnLXUnXSkNCiAgICAr ICAgICAgICBleGNlcHQ6DQogICAgKyAgICAgICAgICAgIGxvZy5pbmZvKCctIEZhaWxlZCB0byBk ZXRlcm1pbmUgdXNlciBJRCcpDQogICAgKyAgICAgICAgICAgIHJldHVybiAxDQogICAgKyAgICAg ICAgaWYgcmVzLnN0ZG91dC5zdHJpcCgpID09ICcwJzoNCiAgICArICAgICAgICAgICAgbG9nLmlu Zm8oJy0gSW5zdGFsbGVyIG11c3QgTk9UIGJlIHJ1biBhcyByb290JykNCiAgICArICAgICAgICAg ICAgcmV0dXJuIDENCiAgICArICAgICAgICBpZiBvcy5wYXRoLmNvbW1vbnByZWZpeChbdXNlcl9o b21lX2Rpciwgc3lzLmV4ZWN1dGFibGVdKSAhPSB1c2VyX2hvbWVfZGlyOg0KICAgICsgICAgICAg ICAgICBpbnN0YWxsX3RvX2xvY2FsID0gVHJ1ZQ0KICAgICAgICAgZGVmYXVsdF9jZmdfZGlyID0g b3MucGF0aC5qb2luKHVzZXJfaG9tZV9kaXIsIGNmZ19kaXIpDQogICAgICAgICBnZXRfYWRkX3By b21wdF9jdXN0b21pemF0aW9uKGFyZ3MsIHVzZXJfaG9tZV9kaXIpDQogICAgICAgICBsb2cuaW5m bygnKyBTeXN0ZW0gaW5mb3JtYXRpb24gY29sbGVjdGVkJykgQEAgLTYyNSw3ICs2NjcsNyBAQCBk ZWYgZG9faW5zdGFsbCgpOg0KICAgICAgICAgICAgICAgICBpbnN0YWxsX3dobCA9IHdoZWVsc190 b19pbnN0YWxsW3dobF9uYW1lXVsnaW5zdGFsbCddDQogICAgICAgICAgICAgICAgIGlmIGluc3Rh bGxfd2hsOg0KICAgICAgICAgICAgICAgICAgICAgaW5zdGFsbF9jbWQgPSBbZGVmX3B5dGhvbiwg Jy1tJywgJ3BpcCcsICdpbnN0YWxsJ10NCiAgICAtICAgICAgICAgICAgICAgIGlmIGFyZ3MubG9j YWw6DQogICAgKyAgICAgICAgICAgICAgICBpZiBpbnN0YWxsX3RvX2xvY2FsOg0KICAgICAgICAg ICAgICAgICAgICAgICAgIGluc3RhbGxfY21kLmFwcGVuZCgnLS11c2VyJykNCiAgICAgICAgICAg ICAgICAgICAgIGluc3RhbGxfY21kLmFwcGVuZChvcy5wYXRoLmpvaW4od2hsX3NyY19kaXIsIHdo bCkpDQogICAgICAgICAgICAgICAgICAgICB0cnk6DQogICAgQEAgLTYzOSwyMyArNjgxLDMyIEBA IGRlZiBkb19pbnN0YWxsKCk6DQogICAgICAgICBzZXRfZXhlY3V0ZV9wZXJtaXNzaW9ucygpDQog ICAgICAgICBsb2cuaW5mbygnKyBNYXJrZWQgc2NyaXB0cyBhcyBleGVjdXRhYmxlJykNCiAgICAN CiAgICArICAgICNJZiBweWVudiBpcyBiZWluZyB1c2VkLCByZWdlbmVyYXRlIHRoZSBweWVudiBz aGltcw0KICAgICsgICAgaWYgc2h1dGlsLndoaWNoKCdweWVudicpIGlzIG5vdCBOb25lOg0KICAg ICsgICAgICAgIHRyeToNCiAgICArICAgICAgICAgICAgcmVzID0gZGVmYXVsdF9ydW4oWydweWVu dicsICdyZWhhc2gnXSkNCiAgICArICAgICAgICAgICAgbG9nLmluZm8oJysgR2VuZXJhdGVkIHB5 ZW52IHNoaW1zJykNCiAgICArICAgICAgICBleGNlcHQ6DQogICAgKyAgICAgICAgICAgIGxvZy5p bmZvKCctIEZhaWxlZCB0byBnZW5lcmF0ZSBweWVudiBzaGltJykNCiAgICANCiAgICAgICAgICNJ bnN0YWxsIHRoZSBjb21tYW5kIGNvbXBsZXRpb24gc2NyaXB0DQogICAgICAgICBpZiBzaHV0aWwu d2hpY2goJ2Vka3JlcG8nKSBpcyBub3QgTm9uZToNCiAgICAtICAgICAgICBpZiBhcmdzLmxvY2Fs Og0KICAgICsgICAgICAgIGlmIGluc3RhbGxfdG9fbG9jYWwgb3Igb3N0eXBlID09IE1BQzoNCiAg ICAgICAgICAgICAgICAgY29tbWFuZF9jb21wbGV0aW9uX3NjcmlwdCA9IG9zLnBhdGguam9pbihk ZWZhdWx0X2NmZ19kaXIsICdlZGtyZXBvX2NvbXBsZXRpb25zLnNoJykNCiAgICAgICAgICAgICBl bHNlOg0KICAgICAgICAgICAgICAgICBjb21tYW5kX2NvbXBsZXRpb25fc2NyaXB0ID0gb3MucGF0 aC5qb2luKCcvJywgJ2V0YycsICdwcm9maWxlLmQnLCAnZWRrcmVwb19jb21wbGV0aW9ucy5zaCcp DQogICAgICAgICAgICAgdHJ5Og0KICAgICAgICAgICAgICAgICByZXMgPSBkZWZhdWx0X3J1bihb J2Vka3JlcG8nLCAnZ2VuZXJhdGUtY29tbWFuZC1jb21wbGV0aW9uLXNjcmlwdCcsIGNvbW1hbmRf Y29tcGxldGlvbl9zY3JpcHRdKQ0KICAgIC0gICAgICAgICAgICBpZiBhcmdzLmxvY2FsOg0KICAg ICsgICAgICAgICAgICBpZiBpbnN0YWxsX3RvX2xvY2FsIG9yIG9zdHlwZSA9PSBNQUM6DQogICAg ICAgICAgICAgICAgICAgICBzaHV0aWwuY2hvd24oY29tbWFuZF9jb21wbGV0aW9uX3NjcmlwdCwg dXNlcj11c2VybmFtZSkNCiAgICAgICAgICAgICAgICAgICAgIG9zLmNobW9kKGNvbW1hbmRfY29t cGxldGlvbl9zY3JpcHQsIDBvNjQ0KQ0KICAgICAgICAgICAgICAgICBhZGRfY29tbWFuZF9jb21w bGV0aW9uc190b19zaGVsbChjb21tYW5kX2NvbXBsZXRpb25fc2NyaXB0LCBhcmdzLCB1c2VybmFt ZSwgdXNlcl9ob21lX2RpcikNCiAgICArICAgICAgICAgICAgbG9nLmluZm8oJysgQ29uZmlndXJl ZCBlZGtyZXBvIGNvbW1hbmQgY29tcGxldGlvbicpDQogICAgICAgICAgICAgZXhjZXB0Og0KICAg ICAgICAgICAgICAgICBsb2cuaW5mbygnLSBGYWlsZWQgdG8gY29uZmlndXJlIGVka3JlcG8gY29t bWFuZCBjb21wbGV0aW9uJykNCiAgICAgICAgICAgICAgICAgaWYgYXJncy52ZXJib3NlOg0KICAg ICAgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpDQogICAgKw0KICAgICAgICAg bG9nLmxvZyhsb2dnaW5nLlBSSU5ULCAnXG5JbnN0YWxsYXRpb24gY29tcGxldGVcbicpDQogICAg DQogICAgICAgICByZXR1cm4gMA0KICAgIC0tDQogICAgMi4yNS4yDQogICAgDQogICAgDQogICAg DQogICAgDQogICAgDQoNCg0K