From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web11.29286.1658761884279663852 for ; Mon, 25 Jul 2022 08:11:24 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=R7oh8P6g; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: bob.c.feng@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1658761884; x=1690297884; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=tnuabCAFarsW2LC6hGNkUOc55k9p3qwOdHlduhfxIPo=; b=R7oh8P6g+IrAFJGgXo9t4PoI4d44XkyCyJaDsloUhAQ9l669Lelw+xml 0TrQdBQKmBQbY5ROelyJOGcJkpyKi4qqGduYSs/Ygnof0HMC/igds2u0+ DngPd28FN45kB5PLpoGGBN6a2EXjKWEod+liSZLK1CIee162DYi76ReQY TNYBFFDHrHCW00nHDBAFWx9rgFlJnMfVfwuqOE8cSfwVknrA4ucH23oGq gmqYA/Jtz6Tz13OMMheXdpe6W1Co65D5TMa9sguV4MOLPxskn18DkG9RN kD3Ntwkq7uNa6qLCJt2D+iCvBuhRPMb5GQf5T4SBcrM9beCuyt2uXQiZS g==; X-IronPort-AV: E=McAfee;i="6400,9594,10419"; a="270756272" X-IronPort-AV: E=Sophos;i="5.93,193,1654585200"; d="scan'208";a="270756272" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jul 2022 08:11:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,193,1654585200"; d="scan'208";a="632390799" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga001.jf.intel.com with ESMTP; 25 Jul 2022 08:11:00 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Mon, 25 Jul 2022 08:11:00 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Mon, 25 Jul 2022 08:10:59 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28 via Frontend Transport; Mon, 25 Jul 2022 08:10:59 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.44) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.28; Mon, 25 Jul 2022 08:10:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lpqggNCBIEGy5fxN4smMNMwmF8EG5OxtyvZvF9RGt7t/J0qqd0lFIAswEQuLQSkSK0eZrAu9yTH1/08h/yhZtUQywJTSnLYa9+iobzCiVc4SF6umOXgbluiSE9emKvt7q/uUc2c2GFtb/1WUjScA4UYYhbg1X6BmJoo/umoR8xlqCXNF5V+u6ksj2lf+eitmOL+DFrH4AyINUouc6GvtPAJ8CRFdx6prSCezjaev/ka3cZpFXipD+skBP7kWfluxldZRND6lNJnTurHX/gK1yeyTezrV3rIwTOc9nsY6Se0fgDD70Slb9a83K8Ypzz8xDv6n6NRNRn9l2nVn0x8SpA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tnuabCAFarsW2LC6hGNkUOc55k9p3qwOdHlduhfxIPo=; b=ELvzhoKoSpgbFRV/iyJEFj2APb28prf3dqlQPScNtNrODKkwiGils+pP/mIgw2JAx8NBymrJUnHGVLW8XVllG3HB0+klShd6KFXfjfyE5A6wQw7iuNKSJkbE4PtK6HWw4gsK0wo0LCxpPltDnNK/K7PxVWuNWLfWQnmwdAF9bUJUcrhFlqJH4OG16siQCWfSrU49YnUakqFLHMN32K98CgQ+/GOyKjgiY2q9wSbD15sgxqBjcNxqmFLCC0ppcjSRGnGkBdsAB7hGxrOgejQxUi+qrKGfyETkjafYTpRZ0fYPO6OvYleYH6zzsbhrPQTdjUMEbAxos2pqNMbUJDVMBA== 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 Received: from PH7PR11MB5863.namprd11.prod.outlook.com (2603:10b6:510:135::11) by DM6PR11MB4641.namprd11.prod.outlook.com (2603:10b6:5:2a9::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.18; Mon, 25 Jul 2022 15:10:56 +0000 Received: from PH7PR11MB5863.namprd11.prod.outlook.com ([fe80::943:4b5a:b96b:30f8]) by PH7PR11MB5863.namprd11.prod.outlook.com ([fe80::943:4b5a:b96b:30f8%5]) with mapi id 15.20.5458.024; Mon, 25 Jul 2022 15:10:56 +0000 From: "Bob Feng" To: "Gao, Liming" , "devel@edk2.groups.io" , "Lin, Jason1" CC: "Chen, Christine" , "Kinney, Michael D" , "Chiang, Dakota" Subject: Re: [edk2-devel] [PATCH v3] BaseTools/Capsule: Add support for signtool to input subject name to sign capsule file Thread-Topic: [edk2-devel] [PATCH v3] BaseTools/Capsule: Add support for signtool to input subject name to sign capsule file Thread-Index: AQHYkr+3HadYMLQUzk+Nm8dr7Fs+5a2OmASAgACz5UA= Date: Mon, 25 Jul 2022 15:10:56 +0000 Message-ID: References: <20220708114139.2015-1-jason1.lin@intel.com> <002901d89fde$c23bba80$46b32f80$@byosoft.com.cn> In-Reply-To: <002901d89fde$c23bba80$46b32f80$@byosoft.com.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.6.500.17 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 76aa7bf1-df4b-4712-0d31-08da6e4fe017 x-ms-traffictypediagnostic: DM6PR11MB4641:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FqQvwHBzsiYw9wdrn4YMNczYMX8pr0R0uPaSOIikwM38baPjwbQen/He/nPlJ2hynw8PRH+8Ap5WCkCKZFLOrIFi5X64NBvjt2og1kHdFDkVA5SlscZfxZdWouObnKMQNP5zJyuHYGVisgRplJxGvCdAZj/KcF8b6wa0Rd7Q7mnFdYmHTAFVpmyo4TdwlNjNGpjq402DXChJyc83wnz1ni5aPiLm8Ye/kjDRAyczXNaYU0RY45K58WfN2fyPLAiJenpPJOd7ULARb2G+QukUPnJBe1farNVd92S283wRS1sKRV5ZUI855Jg3gZWA98EP9uf2bsZfCVdGs6Dj6qtNGc1WhL2i1sZZfSgYEzawKRyHZKmXDzOpvc8zytwYVTCG4aZ+RSdAB0QeqDV70/hkjbkWj2xwe+IIgdEv20RkVgaGDxXZ951deh9u7tFUWuYUSc+JZMimwMjValUUzStTybZs/ufl2BgJ+UOKCp8Jezi5utX8oLfEtx1WbNb1J1iaxjC0rA+fjcBry60kMAweUVM05aA+J6tEkSVtbl8kHpm/Gxrl3hRRq69BbfLOcA+x4Vwj8sjc8DqQqZagyyivy4/xUx6usZ3ePnUmcEu3QYAzHzlCc2EoPDBGvuyxjAIkS1TxSZmTBjuRo2DBgj5V17DGsZzqlpwk8kTpg8VwPlTNBiI3uMn9tr8BM/H/lLO410aJQ4UlGGLY6RWPb1JAyvJcg6hQmPed+7TwscZop1P0BtNRLfv4/s46s0KSZxJxR71bZPflA+0RzxkZLMvT/uXOJI6q6ZzkGjr+RVlHokK/GJw+m9Sm72F/T9hWChtJkrUn0zOOW1ag9z0lJa/+Tkv/SmBq/NMiIyaaIIkbOR4fCRoNd8vWloBNmoj1GaqR9bzrwWuxlhaskHDjz0eRuA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR11MB5863.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(346002)(39860400002)(366004)(376002)(136003)(396003)(9686003)(26005)(966005)(478600001)(53546011)(2906002)(8936002)(4326008)(186003)(71200400001)(55016003)(33656002)(107886003)(86362001)(6506007)(7696005)(41300700001)(38070700005)(5660300002)(83380400001)(122000001)(76116006)(316002)(66476007)(66446008)(30864003)(52536014)(110136005)(6636002)(19627235002)(54906003)(8676002)(64756008)(66556008)(82960400001)(66946007)(38100700002)(460985005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aEhBZDVYUjR2aGxsYU9zM2h4UStjMmlaUXJXeHlKbVJlVWZjUmZJVXJhMFlE?= =?utf-8?B?dnBRRDc0MWxtR0h2TnFnc3pYQkNCWjYxOGRpTEhkVnlnMHZkYnlUaVArbkt1?= =?utf-8?B?QVp5SUk3TmtTOHl0ZkdrdlgrckVXeW13SDNGQW9mNEptZTFLclBmVVVSVjY1?= =?utf-8?B?MXl2eWFiNDBDVGdZdXo1UHR6cmxvNHBZbTBNRkhYdVJrT0RlTVB4M2JqeGlm?= =?utf-8?B?NmRyK2RLb0c5SDhRMlhaS1NiRFIzRzl3SSt1MDdqTThsN2J2TCs4d0t0amNQ?= =?utf-8?B?TTRDaC9tRk5MaFNTcWJIQjRSdkhjTkh2VU1hNXVkalBKMHRyU0RKTmRFOGVD?= =?utf-8?B?SjRWdVpheGNPM2ljbzFNRXJEWFptSVNoYlExOVBBY29ZRjJVbFlCTW9BMWZk?= =?utf-8?B?cXk4WGwxWWVaOVZCRU55QkRoYWtVTitVbFZPRzhQRmJXWlBtZDZmU1kvYkNG?= =?utf-8?B?cHVha0dwUUVoeEs5Y08xMllLL0FGSnZ5NTdRS0I5QlRaL0hldVl4UTRsOHI3?= =?utf-8?B?aldUU1RiOExvVkRwMGJGOTFuUkFieC9kYkl4c1pTOElNVjExb3ZoeFNxb0Rn?= =?utf-8?B?Tno4WkU3Mk9JRnR5TVZteGRzVTRSek9ydTgzcmlERXRZTmJqTlk2U3FYcmJ1?= =?utf-8?B?QmZQSFNTVWw0YVBhYjNGeHNzejBHSnhDcHY0d2V6em9CdTJJbGx5MURXeEQ3?= =?utf-8?B?aFVldDBpeUIrdWUrUExJZ0RTZ1FyNlhMLzdyM0RRVkEwWDQyRG1Od1VNWmFT?= =?utf-8?B?UmNKTTZIcGRBOHU3bVBQSE0wbzJHNGg5Q1Y4VktyRWZ4VUp2bVMwVG1mc3Bi?= =?utf-8?B?WUI4aFJqbEhhZzM0ckVpRWdDcG1nZVhWb1dIR2V1SWdlVDlGNHptM1czSkF2?= =?utf-8?B?R09HQlVCcXE3dzhKeVJ5V3FrR1huUFg1SEJMMGVvNjJDMHlhNGFwSzFrckRH?= =?utf-8?B?Ym1aYmpVejdOaHhYbkErVTFpUVJyVjFqalY1aFl3U1E0ZGwwK1RpcVQyUHpp?= =?utf-8?B?Ym9OblIvS0pzRVBFcUYxeDhvV05Na2FXcE9PTjF1RndzWkVOMDNPY01USTRC?= =?utf-8?B?WDgyb2QwNnVDVndPVjdKbldvYytCK3VkblBuN2JpTFJ5RUpBL0VhY2FRNHhV?= =?utf-8?B?R3dvWTFSQzBGeFY4YVlYaEJxZVlvT3VZQ3VBQTBub2Zod1drWEl6bWJDRmhN?= =?utf-8?B?NUpZa3VCZXc4RG5INUx5ZGVXOVRLUHJNck5Qc0YyYVFhOG9xVjFNRXljYUIr?= =?utf-8?B?K0NzZmZ5a0gwUXE4amZieE5sVFNEbVNLVmZQbDNxZ1ZoeThDSjl5RXRUZy9E?= =?utf-8?B?eXdoZzBrWWRleHU3R2RTY2twWFdrUDRCaFIxMjhzWmRiUlAxT0xFR1RrWnZu?= =?utf-8?B?bVdjdU9qK01PWmlEZEJDQnVQVklOdGRVVkZ6SHRvT0x1TVJ0TVNxVHRTbklt?= =?utf-8?B?ZDlKQ2RQZW10Q2JVTEQ5cERzYmxZSVoyUS8yUWxpT28xYXMvTXUxaUcxTlZI?= =?utf-8?B?c1RveW9lODZFeGlrSVh4V3NIeUlDS0c1VzFBQ1ZxOUIrelJOTnViZHNQdTgw?= =?utf-8?B?djc0cE41MTRhTTNoeStUVzI4TzhaUnlHQkYzMmI3d1dEYWFLa29MT0hrNTF1?= =?utf-8?B?VG5WbGxxRUpHTk8reTdNa2NGNTYvRThrTWM1Y3hRM05Ma050SE1MYUtIbVFN?= =?utf-8?B?dzlXUFE5TWkyUnFNK3phSy9qaG5sY2lkeGFGVEc1OERadU5jMjZaejVia0dP?= =?utf-8?B?NUNlcE5jZDJJOEFoRXhXbVNuZWhwbnpZcGxseElWTVR6R0l1dTJTdUEzNTBP?= =?utf-8?B?QUJvSFR6eitNdmtHR1NoaGNMUnJwTVlSRVJVRjFyUXZEY0w4dldDUmVZRTVF?= =?utf-8?B?SGRGRzdTTHo0enNrSk5na05LbnUvL1U5SnpuUzNlY3dHeXVyRzFZNDI1ZHZw?= =?utf-8?B?cFBsYytoWE1QRFQrbDUyVzBhOUZhejZvNW9HdGVucDQzUlZja2hyUFBDbXg5?= =?utf-8?B?ZWx4V2NRMit2dE5VRnpYRk1lbUNkZDVRNlBMeUxIQkcrNnNwN1h0Tk5mU29J?= =?utf-8?B?ZkFKdXR4RDA1am1GSkxmcnUvY3Jpdi9FRi9ZWGtycnJJWCs0VlVDRDVrNGJR?= =?utf-8?Q?FY2s9NOpTfS0v8Jhokq0E4qtv?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB5863.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76aa7bf1-df4b-4712-0d31-08da6e4fe017 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2022 15:10:56.6956 (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: ANWRYO1CBSwyZyj+V9JsBXFulSfPvPFaHThlOWkye4DPfXhCpsZ4LvVcHRSERxnPiyDegEgMJ/1E77e4BTnrvw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4641 Return-Path: bob.c.feng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Q3JlYXRlZCB0aGUgUFIgZm9yIG1lcmdlLiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2Vk azIvcHVsbC8zMTM3DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBnYW9saW1p bmcgPGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4gDQpTZW50OiBNb25kYXksIEp1bHkgMjUsIDIw MjIgMTI6MjcgUE0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTGluLCBKYXNvbjEgPGphc29u MS5saW5AaW50ZWwuY29tPg0KQ2M6IEZlbmcsIEJvYiBDIDxib2IuYy5mZW5nQGludGVsLmNvbT47 IENoZW4sIENocmlzdGluZSA8eXV3ZWkuY2hlbkBpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hhZWwg RCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBDaGlhbmcsIERha290YSA8ZGFrb3RhLmNo aWFuZ0BpbnRlbC5jb20+DQpTdWJqZWN0OiDlm57lpI06IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjNd IEJhc2VUb29scy9DYXBzdWxlOiBBZGQgc3VwcG9ydCBmb3Igc2lnbnRvb2wgdG8gaW5wdXQgc3Vi amVjdCBuYW1lIHRvIHNpZ24gY2Fwc3VsZSBmaWxlDQoNCkphc29uOg0KICBUaGFua3MgZm9yIHlv dSB0byBhZGQgdGhlIGRldGFpbCB1c2FnZSBtb2RlbCBpbiBCWiAzOTI4LiBJIGhhdmUgbm8gb3Ro ZXIgY29tbWVudHMuIFJldmlld2VkLWJ5OiBMaW1pbmcgR2FvIDxnYW9saW1pbmdAYnlvc29mdC5j b20uY24+DQoNClRoYW5rcw0KTGltaW5nDQo+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4g5Y+R 5Lu25Lq6OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IOS7o+ih qCBMaW4sIEphc29uMQ0KPiDlj5HpgIHml7bpl7Q6IDIwMjLlubQ35pyIOOaXpSAxOTo0Mg0KPiDm lLbku7bkuro6IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IOaKhOmAgTogSmFzb24xIExpbiA8amFz b24xLmxpbkBpbnRlbC5jb20+OyBCb2IgRmVuZyANCj4gPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsg TGltaW5nIEdhbyA8Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuPjsgWXV3ZWkgDQo+IENoZW4gPHl1 d2VpLmNoZW5AaW50ZWwuY29tPjsgTWljaGFlbCBEIEtpbm5leSANCj4gPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPjsgRGFrb3RhIENoaWFuZyA8ZGFrb3RhLmNoaWFuZ0BpbnRlbC5jb20+DQo+ IOS4u+mimDogW2VkazItZGV2ZWxdIFtQQVRDSCB2M10gQmFzZVRvb2xzL0NhcHN1bGU6IEFkZCBz dXBwb3J0IGZvciANCj4gc2lnbnRvb2wNCnRvDQo+IGlucHV0IHN1YmplY3QgbmFtZSB0byBzaWdu IGNhcHN1bGUgZmlsZQ0KPiANCj4gRnJvbTogSmFzb24xIExpbiA8amFzb24xLmxpbkBpbnRlbC5j b20+DQo+IA0KPiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5j Z2k/aWQ9MzkyOA0KPiANCj4gV2luZG93cy1iYXNlZCBzeXN0ZW0gdXNpbmcgc2lnbnRvb2wuZXhl IHRvIHNpZ24gdGhlIGNhcHN1bGUuDQo+IEFkZCB0aGUgc3VwcG9ydCB0byB1c2luZyAiLS1zdWJq ZWN0LW5hbWUiIGFyZ3VtZW50IHRvIGFzc2lnbiB0aGUgDQo+IHN1YmplY3QgbmFtZSB1c2VkIHRv IHNpZ24gdGhlIGNhcHN1bGUgZmlsZS4NCj4gVGhpcyBhcmd1bWVudCB3b3VsZCBwYXNzIHRvIHNp Z250b29sLmV4ZSBhcyBhIHBhcnQgb2YgaW5wdXQgYXJndW1lbnQgDQo+IHdpdGggIi9uIiBmbGFn Lg0KPiANCj4gTk9URTogSWYgdXNpbmcgc2lnbnRvb2wuZXhlIHRvIHNpZ24gY2Fwc3VsZSBhdCBs ZWFzdCBuZWVkIHRvDQo+ICAgICAgIGNob29zZSBvbmUgb2YgIi0tcGZ4LWZpbGUiIGFuZCAiLS1z dWJqZWN0LW5hbWUiDQo+ICAgICAgIGFyZ3VtZW50IHRvIGlucHV0IHRoZSB2YWx1ZS4NCj4gDQo+ IFNpZ25lZC1vZmYtYnk6IEphc29uMSBMaW4gPGphc29uMS5saW5AaW50ZWwuY29tPg0KPiBDYzog Qm9iIEZlbmcgPGJvYi5jLmZlbmdAaW50ZWwuY29tPg0KPiBDYzogTGltaW5nIEdhbyA8Z2FvbGlt aW5nQGJ5b3NvZnQuY29tLmNuPg0KPiBDYzogWXV3ZWkgQ2hlbiA8eXV3ZWkuY2hlbkBpbnRlbC5j b20+DQo+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4N Cj4gQ2M6IERha290YSBDaGlhbmcgPGRha290YS5jaGlhbmdAaW50ZWwuY29tPg0KPiAtLS0NCj4g IEJhc2VUb29scy9Tb3VyY2UvUHl0aG9uL0NhcHN1bGUvR2VuZXJhdGVDYXBzdWxlLnB5IHwgNDMN Cj4gKysrKysrKysrKysrKysrKy0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCAzNCBpbnNlcnRpb25z KCspLCA5IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL0Jhc2VUb29scy9Tb3VyY2Uv UHl0aG9uL0NhcHN1bGUvR2VuZXJhdGVDYXBzdWxlLnB5DQo+IGIvQmFzZVRvb2xzL1NvdXJjZS9Q eXRob24vQ2Fwc3VsZS9HZW5lcmF0ZUNhcHN1bGUucHkNCj4gaW5kZXggYjgwMzlkYjg3OC4uMzU0 MzU5NDZjNiAxMDA2NDQNCj4gLS0tIGEvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ2Fwc3VsZS9H ZW5lcmF0ZUNhcHN1bGUucHkNCj4gKysrIGIvQmFzZVRvb2xzL1NvdXJjZS9QeXRob24vQ2Fwc3Vs ZS9HZW5lcmF0ZUNhcHN1bGUucHkNCj4gQEAgLTEwLDcgKzEwLDcgQEANCj4gICMga2VlcCB0aGUg dG9vbCBhcyBzaW1wbGUgYXMgcG9zc2libGUsIGl0IGhhcyB0aGUgZm9sbG93aW5nIGxpbWl0YXRp b25zOg0KPiANCj4gICMgICAqIERvIG5vdCBzdXBwb3J0IHZlbmRvciBjb2RlIGJ5dGVzIGluIGEg Y2Fwc3VsZS4NCj4gDQo+ICAjDQo+IA0KPiAtIyBDb3B5cmlnaHQgKGMpIDIwMTggLSAyMDE5LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQuPEJSPg0KPiANCj4gKyMg Q29weXJpZ2h0IChjKSAyMDE4IC0gMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMg DQo+ICtyZXNlcnZlZC48QlI+DQo+IA0KPiAgIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KPiANCj4gICMNCj4gDQo+IA0KPiANCj4gQEAgLTM4LDExICszOCwx MSBAQCBmcm9tIENvbW1vbi5FZGsyLkNhcHN1bGUuRm1wUGF5bG9hZEhlYWRlcg0KPiBpbXBvcnQg Rm1wUGF5bG9hZEhlYWRlckNsYXNzDQo+ICAjIEdsb2JhbHMgZm9yIGhlbHAgaW5mb3JtYXRpb24N Cj4gDQo+ICAjDQo+IA0KPiAgX19wcm9nX18gICAgICAgID0gJ0dlbmVyYXRlQ2Fwc3VsZScNCj4g DQo+IC1fX3ZlcnNpb25fXyAgICAgPSAnMC45Jw0KPiANCj4gLV9fY29weXJpZ2h0X18gICA9ICdD b3B5cmlnaHQgKGMpIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQpyZXNlcnZl ZC4nDQo+IA0KPiArX192ZXJzaW9uX18gICAgID0gJzAuMTAnDQo+IA0KPiArX19jb3B5cmlnaHRf XyAgID0gJ0NvcHlyaWdodCAoYykgMjAyMiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMN Cj4gcmVzZXJ2ZWQuJw0KPiANCj4gIF9fZGVzY3JpcHRpb25fXyA9ICdHZW5lcmF0ZSBhIGNhcHN1 bGUuXG4nDQo+IA0KPiANCj4gDQo+IC1kZWYgU2lnblBheWxvYWRTaWduVG9vbCAoUGF5bG9hZCwg VG9vbFBhdGgsIFBmeEZpbGUsIFZlcmJvc2UgPSBGYWxzZSk6DQo+IA0KPiArZGVmIFNpZ25QYXls b2FkU2lnblRvb2wgKFBheWxvYWQsIFRvb2xQYXRoLCBQZnhGaWxlLCBTdWJqZWN0TmFtZSwgDQo+ ICtWZXJib3NlDQo9DQo+IEZhbHNlKToNCj4gDQo+ICAgICAgIw0KPiANCj4gICAgICAjIENyZWF0 ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkNCj4gDQo+ICAgICAgIw0KPiANCj4gQEAgLTcyLDcgKzcy LDEwIEBAIGRlZiBTaWduUGF5bG9hZFNpZ25Ub29sIChQYXlsb2FkLCBUb29sUGF0aCwgDQo+IFBm eEZpbGUsIFZlcmJvc2UgPSBGYWxzZSk6DQo+ICAgICAgQ29tbWFuZCA9IENvbW1hbmQgKyAnIntQ YXRofSIgJy5mb3JtYXQgKFBhdGggPSBvcy5wYXRoLmpvaW4NCihUb29sUGF0aCwNCj4gJ3NpZ250 b29sLmV4ZScpKQ0KPiANCj4gICAgICBDb21tYW5kID0gQ29tbWFuZCArICdzaWduIC9mZCBzaGEy NTYgL3A3Y2UgRGV0YWNoZWRTaWduZWREYXRhIA0KPiAvcDdjbyAxLjIuODQwLjExMzU0OS4xLjcu MiAnDQo+IA0KPiAgICAgIENvbW1hbmQgPSBDb21tYW5kICsgJy9wNyB7VGVtcERpcn0gJy5mb3Jt YXQgKFRlbXBEaXIgPQ0KPiBUZW1wRGlyZWN0b3J5TmFtZSkNCj4gDQo+IC0gICAgQ29tbWFuZCA9 IENvbW1hbmQgKyAnL2Yge1BmeEZpbGV9ICcuZm9ybWF0IChQZnhGaWxlID0gUGZ4RmlsZSkNCj4g DQo+ICsgICAgaWYgUGZ4RmlsZSBpcyBub3QgTm9uZToNCj4gDQo+ICsgICAgICAgIENvbW1hbmQg PSBDb21tYW5kICsgJy9mIHtQZnhGaWxlfSAnLmZvcm1hdCAoUGZ4RmlsZSA9IA0KPiArIFBmeEZp bGUpDQo+IA0KPiArICAgIGlmIFN1YmplY3ROYW1lIGlzIG5vdCBOb25lOg0KPiANCj4gKyAgICAg ICAgQ29tbWFuZCA9IENvbW1hbmQgKyAnL24ge1N1YmplY3ROYW1lfSAnLmZvcm1hdA0KPiAoU3Vi amVjdE5hbWUgPSBTdWJqZWN0TmFtZSkNCj4gDQo+ICAgICAgQ29tbWFuZCA9IENvbW1hbmQgKyBU ZW1wRmlsZU5hbWUNCj4gDQo+ICAgICAgaWYgVmVyYm9zZToNCj4gDQo+ICAgICAgICAgIHByaW50 IChDb21tYW5kKQ0KPiANCj4gQEAgLTEwNSw3ICsxMDgsNyBAQCBkZWYgU2lnblBheWxvYWRTaWdu VG9vbCAoUGF5bG9hZCwgVG9vbFBhdGgsIA0KPiBQZnhGaWxlLCBWZXJib3NlID0gRmFsc2UpOg0K PiAgICAgIHNodXRpbC5ybXRyZWUgKFRlbXBEaXJlY3RvcnlOYW1lKQ0KPiANCj4gICAgICByZXR1 cm4gU2lnbmF0dXJlDQo+IA0KPiANCj4gDQo+IC1kZWYgVmVyaWZ5UGF5bG9hZFNpZ25Ub29sIChQ YXlsb2FkLCBDZXJ0RGF0YSwgVG9vbFBhdGgsIFBmeEZpbGUsIA0KPiBWZXJib3NlDQo9DQo+IEZh bHNlKToNCj4gDQo+ICtkZWYgVmVyaWZ5UGF5bG9hZFNpZ25Ub29sIChQYXlsb2FkLCBDZXJ0RGF0 YSwgVG9vbFBhdGgsIFBmeEZpbGUsDQpTdWJqZWN0TmFtZSwNCj4gVmVyYm9zZSA9IEZhbHNlKToN Cj4gDQo+ICAgICAgcHJpbnQgKCdzaWdudG9vbCB2ZXJpZnkgaXMgbm90IHN1cHBvcnRlZC4nKQ0K PiANCj4gICAgICByYWlzZSBWYWx1ZUVycm9yICgnR2VuZXJhdGVDYXBzdWxlOiBlcnJvcjogc2ln bnRvb2wgdmVyaWZ5IGlzIG5vdA0KPiBzdXBwb3J0ZWQuJykNCj4gDQo+IA0KPiANCj4gQEAgLTI0 OSw2ICsyNTIsNyBAQCBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOg0KPiAgICAgICAgICAgICAg SGFyZHdhcmVJbnN0YW5jZSAgICAgICAgICAgICA9IENvbnZlcnRKc29uVmFsdWUNCj4gKENvbmZp ZywgJ0hhcmR3YXJlSW5zdGFuY2UnLCBWYWxpZGF0ZVVuc2lnbmVkSW50ZWdlciwgUmVxdWlyZWQg PSANCj4gRmFsc2UsIERlZmF1bHQgPSAwKQ0KPiANCj4gICAgICAgICAgICAgIE1vbm90b25pY0Nv dW50ICAgICAgICAgICAgICAgPSBDb252ZXJ0SnNvblZhbHVlDQo+IChDb25maWcsICdNb25vdG9u aWNDb3VudCcsIFZhbGlkYXRlVW5zaWduZWRJbnRlZ2VyLCBSZXF1aXJlZCA9IEZhbHNlLA0KRGVm YXVsdA0KPiA9IDApDQo+IA0KPiAgICAgICAgICAgICAgU2lnblRvb2xQZnhGaWxlICAgICAgICAg ICAgICA9IENvbnZlcnRKc29uVmFsdWUgKENvbmZpZywNCj4gJ1NpZ25Ub29sUGZ4RmlsZScsIG9z LnBhdGguZXhwYW5kdmFycywgUmVxdWlyZWQgPSBGYWxzZSwgRGVmYXVsdCA9IA0KPiBOb25lLA0K T3Blbg0KPiA9IFRydWUpDQo+IA0KPiArICAgICAgICAgICAgU2lnblRvb2xTdWJqZWN0TmFtZSAg ICAgICAgICA9IENvbnZlcnRKc29uVmFsdWUgKENvbmZpZywNCj4gJ1NpZ25Ub29sU3ViamVjdE5h bWUnLCBvcy5wYXRoLmV4cGFuZHZhcnMsIFJlcXVpcmVkID0gRmFsc2UsIERlZmF1bHQgPQ0KTm9u ZSwNCj4gT3BlbiA9IFRydWUpDQo+IA0KPiAgICAgICAgICAgICAgT3BlblNzbFNpZ25lclByaXZh dGVDZXJ0RmlsZSA9IENvbnZlcnRKc29uVmFsdWUgKENvbmZpZywgDQo+ICdPcGVuU3NsU2lnbmVy UHJpdmF0ZUNlcnRGaWxlJywgb3MucGF0aC5leHBhbmR2YXJzLCBSZXF1aXJlZCA9IEZhbHNlLA0K RGVmYXVsdA0KPiA9IE5vbmUsIE9wZW4gPSBUcnVlKQ0KPiANCj4gICAgICAgICAgICAgIE9wZW5T c2xPdGhlclB1YmxpY0NlcnRGaWxlICAgPSBDb252ZXJ0SnNvblZhbHVlIChDb25maWcsDQo+ICdP cGVuU3NsT3RoZXJQdWJsaWNDZXJ0RmlsZScsIG9zLnBhdGguZXhwYW5kdmFycywgUmVxdWlyZWQg PSBGYWxzZSwNCkRlZmF1bHQgPQ0KPiBOb25lLCBPcGVuID0gVHJ1ZSkNCj4gDQo+ICAgICAgICAg ICAgICBPcGVuU3NsVHJ1c3RlZFB1YmxpY0NlcnRGaWxlID0gQ29udmVydEpzb25WYWx1ZSAoQ29u ZmlnLCANCj4gJ09wZW5Tc2xUcnVzdGVkUHVibGljQ2VydEZpbGUnLCBvcy5wYXRoLmV4cGFuZHZh cnMsIFJlcXVpcmVkID0gRmFsc2UsDQpEZWZhdWx0DQo+ID0gTm9uZSwgT3BlbiA9IFRydWUpDQo+ IA0KPiBAQCAtMjY0LDYgKzI2OCw3IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6DQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhhcmR3YXJlSW5zdGFu Y2UsDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV cGRhdGVJbWFnZUluZGV4LA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU2lnblRvb2xQZnhGaWxlLA0KPiANCj4gKw0KPiBTaWduVG9vbFN1YmplY3RO YW1lLA0KPiANCj4gDQo+IE9wZW5Tc2xTaWduZXJQcml2YXRlQ2VydEZpbGUsDQo+IA0KPiANCj4g T3BlblNzbE90aGVyUHVibGljQ2VydEZpbGUsDQo+IA0KPiANCj4gT3BlblNzbFRydXN0ZWRQdWJs aWNDZXJ0RmlsZSwNCj4gDQo+IEBAIC0zMDMsNiArMzA4LDcgQEAgaWYgX19uYW1lX18gPT0gJ19f bWFpbl9fJzoNCj4gICAgICAgICAgICAgIFVwZGF0ZUltYWdlSW5kZXggICAgICAgICAgICAgPSBD b252ZXJ0SnNvblZhbHVlDQo+IChDb25maWcsICdVcGRhdGVJbWFnZUluZGV4JywgVmFsaWRhdGVV bnNpZ25lZEludGVnZXIsIFJlcXVpcmVkID0gDQo+IEZhbHNlLCBEZWZhdWx0ID0gMSkNCj4gDQo+ ICAgICAgICAgICAgICBNb25vdG9uaWNDb3VudCAgICAgICAgICAgICAgID0gQ29udmVydEpzb25W YWx1ZQ0KPiAoQ29uZmlnLCAnTW9ub3RvbmljQ291bnQnLCBWYWxpZGF0ZVVuc2lnbmVkSW50ZWdl ciwgUmVxdWlyZWQgPSBGYWxzZSwNCkRlZmF1bHQNCj4gPSAwKQ0KPiANCj4gICAgICAgICAgICAg IFNpZ25Ub29sUGZ4RmlsZSAgICAgICAgICAgICAgPSBDb252ZXJ0SnNvblZhbHVlIChDb25maWcs DQo+ICdTaWduVG9vbFBmeEZpbGUnLCBvcy5wYXRoLmV4cGFuZHZhcnMsIFJlcXVpcmVkID0gRmFs c2UsIERlZmF1bHQgPSANCj4gTm9uZSwNCk9wZW4NCj4gPSBUcnVlKQ0KPiANCj4gKyAgICAgICAg ICAgIFNpZ25Ub29sU3ViamVjdE5hbWUgICAgICAgICAgPSBDb252ZXJ0SnNvblZhbHVlIChDb25m aWcsDQo+ICdTaWduVG9vbFN1YmplY3ROYW1lJywgb3MucGF0aC5leHBhbmR2YXJzLCBSZXF1aXJl ZCA9IEZhbHNlLCBEZWZhdWx0ID0NCk5vbmUsDQo+IE9wZW4gPSBUcnVlKQ0KPiANCj4gICAgICAg ICAgICAgIE9wZW5Tc2xTaWduZXJQcml2YXRlQ2VydEZpbGUgPSBDb252ZXJ0SnNvblZhbHVlIChD b25maWcsIA0KPiAnT3BlblNzbFNpZ25lclByaXZhdGVDZXJ0RmlsZScsIG9zLnBhdGguZXhwYW5k dmFycywgUmVxdWlyZWQgPSBGYWxzZSwNCkRlZmF1bHQNCj4gPSBOb25lLCBPcGVuID0gVHJ1ZSkN Cj4gDQo+ICAgICAgICAgICAgICBPcGVuU3NsT3RoZXJQdWJsaWNDZXJ0RmlsZSAgID0gQ29udmVy dEpzb25WYWx1ZSAoQ29uZmlnLA0KPiAnT3BlblNzbE90aGVyUHVibGljQ2VydEZpbGUnLCBvcy5w YXRoLmV4cGFuZHZhcnMsIFJlcXVpcmVkID0gRmFsc2UsDQpEZWZhdWx0ID0NCj4gTm9uZSwgT3Bl biA9IFRydWUpDQo+IA0KPiAgICAgICAgICAgICAgT3BlblNzbFRydXN0ZWRQdWJsaWNDZXJ0Rmls ZSA9IENvbnZlcnRKc29uVmFsdWUgKENvbmZpZywgDQo+ICdPcGVuU3NsVHJ1c3RlZFB1YmxpY0Nl cnRGaWxlJywgb3MucGF0aC5leHBhbmR2YXJzLCBSZXF1aXJlZCA9IEZhbHNlLA0KRGVmYXVsdA0K PiA9IE5vbmUsIE9wZW4gPSBUcnVlKQ0KPiANCj4gQEAgLTMyOSw2ICszMzUsNyBAQCBpZiBfX25h bWVfXyA9PSAnX19tYWluX18nOg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBIYXJkd2FyZUluc3RhbmNlLA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVXBkYXRlSW1hZ2VJbmRleCwNCj4gDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ25Ub29sUGZ4RmlsZSwNCj4g DQo+ICsNCj4gU2lnblRvb2xTdWJqZWN0TmFtZSwNCj4gDQo+IA0KPiBPcGVuU3NsU2lnbmVyUHJp dmF0ZUNlcnRGaWxlLA0KPiANCj4gDQo+IE9wZW5Tc2xPdGhlclB1YmxpY0NlcnRGaWxlLA0KPiAN Cj4gDQo+IE9wZW5Tc2xUcnVzdGVkUHVibGljQ2VydEZpbGUsDQo+IA0KPiBAQCAtMzQ4LDYgKzM1 NSw3IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6DQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkhhcmR3YXJlSW5zdGFuY2UiOg0KPiBzdHIoUGF5bG9hZERlc2NyaXB0 b3IuSGFyZHdhcmVJbnN0YW5jZSksDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJVcGRhdGVJbWFnZUluZGV4IjoNCj4gc3RyKFBheWxvYWREZXNjcmlwdG9yLlVwZGF0 ZUltYWdlSW5kZXgpLA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi U2lnblRvb2xQZnhGaWxlIjoNCj4gc3RyKFBheWxvYWREZXNjcmlwdG9yLlNpZ25Ub29sUGZ4Rmls ZSksDQo+IA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaWduVG9vbFN1 YmplY3ROYW1lIjoNCj4gc3RyKFBheWxvYWREZXNjcmlwdG9yLlNpZ25Ub29sU3ViamVjdE5hbWUp LA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3BlblNzbFNpZ25l clByaXZhdGVDZXJ0RmlsZSI6DQo+IHN0cihQYXlsb2FkRGVzY3JpcHRvci5PcGVuU3NsU2lnbmVy UHJpdmF0ZUNlcnRGaWxlKSwNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIk9wZW5Tc2xPdGhlclB1YmxpY0NlcnRGaWxlIjoNCj4gc3RyKFBheWxvYWREZXNjcmlwdG9y Lk9wZW5Tc2xPdGhlclB1YmxpY0NlcnRGaWxlKSwNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIk9wZW5Tc2xUcnVzdGVkUHVibGljQ2VydEZpbGUiOg0KPiBzdHIoUGF5 bG9hZERlc2NyaXB0b3IuT3BlblNzbFRydXN0ZWRQdWJsaWNDZXJ0RmlsZSksDQo+IA0KPiBAQCAt MzYzLDYgKzM3MSw4IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6DQo+ICAgICAgICAgIGZv ciBQYXlsb2FkRmllbGQgaW4gUGF5bG9hZFNlY3Rpb246DQo+IA0KPiAgICAgICAgICAgICAgaWYg UGF5bG9hZEpzb25EZXNjcmlwdG9yTGlzdFtJbmRleF0uU2lnblRvb2xQZnhGaWxlIGlzIE5vbmU6 DQo+IA0KPiAgICAgICAgICAgICAgICAgIGRlbCBQYXlsb2FkRmllbGQgWydTaWduVG9vbFBmeEZp bGUnXQ0KPiANCj4gKyAgICAgICAgICAgIGlmIFBheWxvYWRKc29uRGVzY3JpcHRvckxpc3RbSW5k ZXhdLlNpZ25Ub29sU3ViamVjdE5hbWUgDQo+ICsgaXMNCj4gTm9uZToNCj4gDQo+ICsgICAgICAg ICAgICAgICAgZGVsIFBheWxvYWRGaWVsZCBbJ1NpZ25Ub29sU3ViamVjdE5hbWUnXQ0KPiANCj4g ICAgICAgICAgICAgIGlmDQo+IFBheWxvYWRKc29uRGVzY3JpcHRvckxpc3RbSW5kZXhdLk9wZW5T c2xTaWduZXJQcml2YXRlQ2VydEZpbGUgaXMgTm9uZToNCj4gDQo+ICAgICAgICAgICAgICAgICAg ZGVsIFBheWxvYWRGaWVsZCBbJ09wZW5Tc2xTaWduZXJQcml2YXRlQ2VydEZpbGUnXQ0KPiANCj4g ICAgICAgICAgICAgIGlmDQo+IFBheWxvYWRKc29uRGVzY3JpcHRvckxpc3RbSW5kZXhdLk9wZW5T c2xPdGhlclB1YmxpY0NlcnRGaWxlIGlzIE5vbmU6DQo+IA0KPiBAQCAtNDAyLDYgKzQxMiw5IEBA IGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6DQo+ICAgICAgICAgIGlmIGFyZ3MuU2lnblRvb2xQ ZnhGaWxlOg0KPiANCj4gICAgICAgICAgICAgIHByaW50ICgnR2VuZXJhdGVDYXBzdWxlOiBlcnJv cjogQXJndW1lbnQgLS1wZngtZmlsZSANCj4gY29uZmxpY3RzIHdpdGggQXJndW1lbnQgLWonKQ0K PiANCj4gICAgICAgICAgICAgIHN5cy5leGl0ICgxKQ0KPiANCj4gKyAgICAgICAgaWYgYXJncy5T aWduVG9vbFN1YmplY3ROYW1lOg0KPiANCj4gKyAgICAgICAgICAgIHByaW50ICgnR2VuZXJhdGVD YXBzdWxlOiBlcnJvcjogQXJndW1lbnQgLS1TdWJqZWN0TmFtZQ0KPiBjb25mbGljdHMgd2l0aCBB cmd1bWVudCAtaicpDQo+IA0KPiArICAgICAgICAgICAgc3lzLmV4aXQgKDEpDQo+IA0KPiAgICAg ICAgICBpZiBhcmdzLk9wZW5Tc2xTaWduZXJQcml2YXRlQ2VydEZpbGU6DQo+IA0KPiAgICAgICAg ICAgICAgcHJpbnQgKCdHZW5lcmF0ZUNhcHN1bGU6IGVycm9yOiBBcmd1bWVudCANCj4gLS1zaWdu ZXItcHJpdmF0ZS1jZXJ0IGNvbmZsaWN0cyB3aXRoIEFyZ3VtZW50IC1qJykNCj4gDQo+ICAgICAg ICAgICAgICBzeXMuZXhpdCAoMSkNCj4gDQo+IEBAIC00MjUsNiArNDM4LDcgQEAgaWYgX19uYW1l X18gPT0gJ19fbWFpbl9fJzoNCj4gICAgICAgICAgICAgICAgICAgICAgIEhhcmR3YXJlSW5zdGFu Y2UgICAgICAgICAgICAgPSAwLA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgIFVwZGF0ZUlt YWdlSW5kZXggICAgICAgICAgICAgPSAxLA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgIFNp Z25Ub29sUGZ4RmlsZSAgICAgICAgICAgICAgPSBOb25lLA0KPiANCj4gKyAgICAgICAgICAgICAg ICAgICAgIFNpZ25Ub29sU3ViamVjdE5hbWUgICAgICAgICAgPSBOb25lLA0KPiANCj4gICAgICAg ICAgICAgICAgICAgICAgIE9wZW5Tc2xTaWduZXJQcml2YXRlQ2VydEZpbGUgPSBOb25lLA0KPiAN Cj4gICAgICAgICAgICAgICAgICAgICAgIE9wZW5Tc2xPdGhlclB1YmxpY0NlcnRGaWxlICAgPSBO b25lLA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgIE9wZW5Tc2xUcnVzdGVkUHVibGljQ2Vy dEZpbGUgPSBOb25lLA0KPiANCj4gQEAgLTQzOSwxMyArNDUzLDE1IEBAIGlmIF9fbmFtZV9fID09 ICdfX21haW5fXyc6DQo+ICAgICAgICAgICAgICBzZWxmLkhhcmR3YXJlSW5zdGFuY2UgICAgICAg ICAgICAgPSBIYXJkd2FyZUluc3RhbmNlDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5VcGRhdGVJ bWFnZUluZGV4ICAgICAgICAgICAgID0gVXBkYXRlSW1hZ2VJbmRleA0KPiANCj4gICAgICAgICAg ICAgIHNlbGYuU2lnblRvb2xQZnhGaWxlICAgICAgICAgICAgICA9IFNpZ25Ub29sUGZ4RmlsZQ0K PiANCj4gKyAgICAgICAgICAgIHNlbGYuU2lnblRvb2xTdWJqZWN0TmFtZSAgICAgICAgICA9IFNp Z25Ub29sU3ViamVjdE5hbWUNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLk9wZW5Tc2xTaWduZXJQ cml2YXRlQ2VydEZpbGUgPSANCj4gT3BlblNzbFNpZ25lclByaXZhdGVDZXJ0RmlsZQ0KPiANCj4g ICAgICAgICAgICAgIHNlbGYuT3BlblNzbE90aGVyUHVibGljQ2VydEZpbGUgICA9DQo+IE9wZW5T c2xPdGhlclB1YmxpY0NlcnRGaWxlDQo+IA0KPiAgICAgICAgICAgICAgc2VsZi5PcGVuU3NsVHJ1 c3RlZFB1YmxpY0NlcnRGaWxlID0gDQo+IE9wZW5Tc2xUcnVzdGVkUHVibGljQ2VydEZpbGUNCj4g DQo+ICAgICAgICAgICAgICBzZWxmLlNpZ25pbmdUb29sUGF0aCAgICAgICAgICAgICAgPSBTaWdu aW5nVG9vbFBhdGgNCj4gDQo+ICAgICAgICAgICAgICBzZWxmLkRlcGV4RXhwICAgICAgICAgICAg ICAgICAgICAgPSBEZXBleEV4cA0KPiANCj4gDQo+IA0KPiAtICAgICAgICAgICAgc2VsZi5Vc2VT aWduVG9vbCA9IHNlbGYuU2lnblRvb2xQZnhGaWxlIGlzIG5vdCBOb25lDQo+IA0KPiArICAgICAg ICAgICAgc2VsZi5Vc2VTaWduVG9vbCA9IChzZWxmLlNpZ25Ub29sUGZ4RmlsZSBpcyBub3QgTm9u ZSBvcg0KPiANCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5TaWduVG9v bFN1YmplY3ROYW1lIGlzIG5vdA0KPiBOb25lKQ0KPiANCj4gICAgICAgICAgICAgIHNlbGYuVXNl T3BlblNzbCAgPSAoc2VsZi5PcGVuU3NsU2lnbmVyUHJpdmF0ZUNlcnRGaWxlIGlzIA0KPiBub3Qg Tm9uZSBhbmQNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuT3Bl blNzbE90aGVyUHVibGljQ2VydEZpbGUgaXMgDQo+IG5vdCBOb25lIGFuZA0KPiANCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5PcGVuU3NsVHJ1c3RlZFB1YmxpY0NlcnRG aWxlIGlzIA0KPiBub3QgTm9uZSkNCj4gDQo+IEBAIC01MDQsOCArNTIwLDkgQEAgaWYgX19uYW1l X18gPT0gJ19fbWFpbl9fJzoNCj4gICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIGFyZ3Bh cnNlLkFyZ3VtZW50VHlwZUVycm9yIA0KPiAoJy0tdXBkYXRlLWltYWdlLWluZGV4IG11c3QgYmUg YW4gaW50ZWdlciBpbiByYW5nZSAweDAuLjB4ZmYnKQ0KPiANCj4gDQo+IA0KPiAgICAgICAgICAg ICAgaWYgc2VsZi5Vc2VTaWduVG9vbDoNCj4gDQo+IC0gICAgICAgICAgICAgICAgc2VsZi5TaWdu VG9vbFBmeEZpbGUuY2xvc2UoKQ0KPiANCj4gLSAgICAgICAgICAgICAgICBzZWxmLlNpZ25Ub29s UGZ4RmlsZSA9IHNlbGYuU2lnblRvb2xQZnhGaWxlLm5hbWUNCj4gDQo+ICsgICAgICAgICAgICAg ICAgaWYgc2VsZi5TaWduVG9vbFBmeEZpbGUgaXMgbm90IE5vbmU6DQo+IA0KPiArICAgICAgICAg ICAgICAgICAgICBzZWxmLlNpZ25Ub29sUGZ4RmlsZS5jbG9zZSgpDQo+IA0KPiArICAgICAgICAg ICAgICAgICAgICBzZWxmLlNpZ25Ub29sUGZ4RmlsZSA9IHNlbGYuU2lnblRvb2xQZnhGaWxlLm5h bWUNCj4gDQo+ICAgICAgICAgICAgICBpZiBzZWxmLlVzZU9wZW5Tc2w6DQo+IA0KPiAgICAgICAg ICAgICAgICAgIHNlbGYuT3BlblNzbFNpZ25lclByaXZhdGVDZXJ0RmlsZS5jbG9zZSgpDQo+IA0K PiAgICAgICAgICAgICAgICAgIHNlbGYuT3BlblNzbE90aGVyUHVibGljQ2VydEZpbGUuY2xvc2Uo KQ0KPiANCj4gQEAgLTU0OCw2ICs1NjUsNyBAQCBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOg0K PiANCj4gYXJncy5IYXJkd2FyZUluc3RhbmNlLA0KPiANCj4gDQo+IGFyZ3MuVXBkYXRlSW1hZ2VJ bmRleCwNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFyZ3MuU2lnblRvb2xQZnhGaWxlLA0KPiANCj4gKw0KPiBhcmdzLlNpZ25Ub29sU3ViamVjdE5h bWUsDQo+IA0KPiANCj4gYXJncy5PcGVuU3NsU2lnbmVyUHJpdmF0ZUNlcnRGaWxlLA0KPiANCj4g DQo+IGFyZ3MuT3BlblNzbE90aGVyUHVibGljQ2VydEZpbGUsDQo+IA0KPiANCj4gYXJncy5PcGVu U3NsVHJ1c3RlZFB1YmxpY0NlcnRGaWxlLA0KPiANCj4gQEAgLTU5MCw2ICs2MDgsNyBAQCBpZiBf X25hbWVfXyA9PSAnX19tYWluX18nOg0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl c3VsdCArIHN0cnVjdC5wYWNrICgnPFEnLCANCj4gU2luZ2xlUGF5bG9hZERlc2NyaXB0b3IuTW9u b3RvbmljQ291bnQpLA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTaW5nbGVQ YXlsb2FkRGVzY3JpcHRvci5TaWduaW5nVG9vbFBhdGgsDQo+IA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNpbmdsZVBheWxvYWREZXNjcmlwdG9yLlNpZ25Ub29sUGZ4RmlsZSwNCj4g DQo+ICsNCj4gU2luZ2xlUGF5bG9hZERlc2NyaXB0b3IuU2lnblRvb2xTdWJqZWN0TmFtZSwNCj4g DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyYm9zZSA9IGFyZ3MuVmVyYm9zZQ0K PiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICkNCj4gDQo+ICAgICAgICAgICAgICAgICAg ICAgIGVsc2U6DQo+IA0KPiBAQCAtNjcxLDYgKzY5MCw3IEBAIGlmIF9fbmFtZV9fID09ICdfX21h aW5fXyc6DQo+IA0KPiBhcmdzLkhhcmR3YXJlSW5zdGFuY2UsDQo+IA0KPiANCj4gYXJncy5VcGRh dGVJbWFnZUluZGV4LA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXJncy5TaWduVG9vbFBmeEZpbGUsDQo+IA0KPiArDQo+IGFyZ3MuU2lnblN1Ympl Y3ROYW1lLA0KPiANCj4gDQo+IGFyZ3MuT3BlblNzbFNpZ25lclByaXZhdGVDZXJ0RmlsZSwNCj4g DQo+IA0KPiBhcmdzLk9wZW5Tc2xPdGhlclB1YmxpY0NlcnRGaWxlLA0KPiANCj4gDQo+IGFyZ3Mu T3BlblNzbFRydXN0ZWRQdWJsaWNDZXJ0RmlsZSwNCj4gDQo+IEBAIC03MTUsNiArNzM1LDcgQEAg aWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoNCj4gDQo+IEhhcmR3YXJlSW5zdGFuY2UsDQo+IA0K PiANCj4gVXBkYXRlSW1hZ2VJbmRleCwNCj4gDQo+IA0KPiBQYXlsb2FkRGVzY3JpcHRvckxpc3Rb SW5kZXhdLlNpZ25Ub29sUGZ4RmlsZSwNCj4gDQo+ICsNCj4gUGF5bG9hZERlc2NyaXB0b3JMaXN0 W0luZGV4XS5TaWduVG9vbFN1YmplY3ROYW1lLA0KPiANCj4gDQo+IFBheWxvYWREZXNjcmlwdG9y TGlzdFtJbmRleF0uT3BlblNzbFNpZ25lclByaXZhdGVDZXJ0RmlsZSwNCj4gDQo+IA0KPiBQYXls b2FkRGVzY3JpcHRvckxpc3RbSW5kZXhdLk9wZW5Tc2xPdGhlclB1YmxpY0NlcnRGaWxlLA0KPiAN Cj4gDQo+IFBheWxvYWREZXNjcmlwdG9yTGlzdFtJbmRleF0uT3BlblNzbFRydXN0ZWRQdWJsaWND ZXJ0RmlsZSwNCj4gDQo+IEBAIC03NTMsNiArNzc0LDcgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFp bl9fJzoNCj4gDQo+IEhhcmR3YXJlSW5zdGFuY2UsDQo+IA0KPiANCj4gVXBkYXRlSW1hZ2VJbmRl eCwNCj4gDQo+IA0KPiBQYXlsb2FkRGVzY3JpcHRvckxpc3RbSW5kZXhdLlNpZ25Ub29sUGZ4Rmls ZSwNCj4gDQo+ICsNCj4gUGF5bG9hZERlc2NyaXB0b3JMaXN0W0luZGV4XS5TaWduVG9vbFN1Ympl Y3ROYW1lLA0KPiANCj4gDQo+IFBheWxvYWREZXNjcmlwdG9yTGlzdFtJbmRleF0uT3BlblNzbFNp Z25lclByaXZhdGVDZXJ0RmlsZSwNCj4gDQo+IA0KPiBQYXlsb2FkRGVzY3JpcHRvckxpc3RbSW5k ZXhdLk9wZW5Tc2xPdGhlclB1YmxpY0NlcnRGaWxlLA0KPiANCj4gDQo+IFBheWxvYWREZXNjcmlw dG9yTGlzdFtJbmRleF0uT3BlblNzbFRydXN0ZWRQdWJsaWNDZXJ0RmlsZSwNCj4gDQo+IEBAIC03 ODUsNiArODA3LDcgQEAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoNCj4gDQo+IEZtcEF1dGhI ZWFkZXIuQ2VydERhdGEsDQo+IA0KPiANCj4gU2luZ2xlUGF5bG9hZERlc2NyaXB0b3IuU2lnbmlu Z1Rvb2xQYXRoLA0KPiANCj4gDQo+IFNpbmdsZVBheWxvYWREZXNjcmlwdG9yLlNpZ25Ub29sUGZ4 RmlsZSwNCj4gDQo+ICsNCj4gU2luZ2xlUGF5bG9hZERlc2NyaXB0b3IuU2lnblRvb2xTdWJqZWN0 TmFtZSwNCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VmVyYm9zZSA9IGFyZ3MuVmVyYm9zZQ0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApDQo+IA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNl Og0KPiANCj4gQEAgLTk2OCw2ICs5OTEsOCBAQCBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOg0K PiANCj4gDQo+ICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCAoIi0tcGZ4LWZpbGUiLCBkZXN0PSdT aWduVG9vbFBmeEZpbGUnLCANCj4gdHlwZT1hcmdwYXJzZS5GaWxlVHlwZSgncmInKSwNCj4gDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ic2lnbnRvb2wgUEZYIGNlcnRpZmljYXRl IGZpbGVuYW1lLiIpDQo+IA0KPiArICAgIHBhcnNlci5hZGRfYXJndW1lbnQgKCItLXN1YmplY3Qt bmFtZSIsIA0KPiArIGRlc3Q9J1NpZ25Ub29sU3ViamVjdE5hbWUnLA0KPiANCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICBoZWxwPSJzaWdudG9vbCBjZXJ0aWZpY2F0ZSBzdWJqZWN0IG5hbWUu IikNCj4gDQo+IA0KPiANCj4gICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50ICgiLS1zaWduZXItcHJp dmF0ZS1jZXJ0IiwgDQo+IGRlc3Q9J09wZW5Tc2xTaWduZXJQcml2YXRlQ2VydEZpbGUnLCB0eXBl PWFyZ3BhcnNlLkZpbGVUeXBlKCdyYicpLA0KPiANCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICBoZWxwPSJPcGVuU1NMIHNpZ25lciBwcml2YXRlIGNlcnRpZmljYXRlDQo+IGZpbGVuYW1lLiIp DQo+IA0KPiAtLQ0KPiAyLjM3LjAud2luZG93cy4xDQo+IA0KPiANCj4gDQo+IC09LT0tPS09LT0t PQ0KPiBHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRvIHRo aXMgZ3JvdXAuDQo+IFZpZXcvUmVwbHkgT25saW5lICgjOTExODApOiANCj4gaHR0cHM6Ly9lZGsy Lmdyb3Vwcy5pby9nL2RldmVsL21lc3NhZ2UvOTExODANCj4gTXV0ZSBUaGlzIFRvcGljOiBodHRw czovL2dyb3Vwcy5pby9tdC85MjI0OTQwMy80OTA1OTUzDQo+IEdyb3VwIE93bmVyOiBkZXZlbCtv d25lckBlZGsyLmdyb3Vwcy5pbw0KPiBVbnN1YnNjcmliZTogaHR0cHM6Ly9lZGsyLmdyb3Vwcy5p by9nL2RldmVsL3Vuc3ViDQo+IFtnYW9saW1pbmdAYnlvc29mdC5jb20uY25dDQo+IC09LT0tPS09 LT0tPQ0KPiANCg0KDQoNCg==