From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web11.6242.1591828712454473375 for ; Wed, 10 Jun 2020 15:38:33 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=wBKEhPxL; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: ObI8gCI+cwk98ZiPmXQsIqHsKsd2rpbh4NLNf+caYvl8Tjhixky8kVqATEU9iGwTFHAsYvXySP 3qKXeM0GSsnQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jun 2020 15:38:26 -0700 IronPort-SDR: wgoe114f3iXfO++FmtFMLOuBDC2fs7qTZESl0PnhAD8pSeLJ+k0NrxsrSGnsc0mFtuSGzdUJxD yejGCoy+0OHw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,497,1583222400"; d="scan'208";a="275134120" Received: from orsmsx103.amr.corp.intel.com ([10.22.225.130]) by orsmga006.jf.intel.com with ESMTP; 10 Jun 2020 15:38:26 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX103.amr.corp.intel.com (10.22.225.130) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 10 Jun 2020 15:38:26 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 10 Jun 2020 15:38:25 -0700 Received: from ORSEDG002.ED.cps.intel.com (10.7.248.5) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 10 Jun 2020 15:38:25 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.169) by edgegateway.intel.com (134.134.137.101) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 10 Jun 2020 15:38:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QVu+XPDxXoHj6mbVHoYxDKeff1DAhcorjaAbqLmnjELLuPCYKEsM26mAOZQ2hibnQR7gOEU1TCGz3UoH6Ajoi0SL6KE9JtaEywzD+Q3tsrb50sHIZap7TJBkkO0IDHOMyHcV/qNdxzvxKTjhZuJG4f3d5VtPl3PYV+RbtzzygDm167q1YUbkaeqAMWg8M8xd6qC5c4XGE5gkmGQRloZOs40nu1tJrivLhc5uETYMb0o1SWzfo0auRAgS8jp+nB+cP3mR0hW+ACgQ/Oova+nDK1SXnYE9WulZt7crkr28XGs6n3B4PsxM1n31L+5rL+9ioRyKcrEyz8qbctIOVhsK+A== 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=81tSXrT/ZDHt39gWkGFnq1N+zW+ovNVINMWoQQMA63M=; b=mTOz4ZvyUtPogTEJ0GpjO6jeb08F48jWiyyQ715NNVhe58ptI/mO1BPVrRafzg7npHbSFV+VZBzApYysvUQm/1WfuGqrkzI6UKhfmZYLEWmw6XsdatWv5+wL/RkTik8vFRKptpB5sY8q8t0RodyC1enldy++OK2ro9WImPdriAKgmgvLyd1U3oE5PZNgeO7iJTV/auM7LuesLVqgAAPntk0nVP+CcDdiTpkD5Sab1zedsYXH7BVglScm3GwGdj7m+fzMdOBWG3DdDqDKV1rWWVQJ84j/v/TfLgtt1sTujnRsLWCZOQ5qUlIsWH0sHgNO2kbzbxzz8g2jtt4eXkfvcg== 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=81tSXrT/ZDHt39gWkGFnq1N+zW+ovNVINMWoQQMA63M=; b=wBKEhPxLMtK3KxupZXNliMVIVucjyolBoJKvYrculC8N32HrdJnipn4jZBoceQq2LzabhO3JQ1Bchz6BzPevHtRfaXlPQfg017QBB6z4HvPN9n9vpMiMMUscIpx/z8ETVe2lj48QJNic3vG5/lMgNtWtQpUCMp4QwIl/U9c3vpM= Received: from MN2PR11MB4461.namprd11.prod.outlook.com (2603:10b6:208:192::29) by MN2PR11MB4237.namprd11.prod.outlook.com (2603:10b6:208:195::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3088.19; Wed, 10 Jun 2020 22:38:24 +0000 Received: from MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1]) by MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1%3]) with mapi id 15.20.3066.023; Wed, 10 Jun 2020 22:38:24 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "ard.biesheuvel@arm.com" , "Kinney, Michael D" CC: "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v2] MdePkg/BasePrintLib: avoid absolute addresses for error strings Thread-Topic: [edk2-devel] [PATCH v2] MdePkg/BasePrintLib: avoid absolute addresses for error strings Thread-Index: AQHWP121rRjkKi/MYU+JJb1BlXvAK6jScD3A Date: Wed, 10 Jun 2020 22:38:23 +0000 Message-ID: References: <20200610193023.171092-1-ard.biesheuvel@arm.com> In-Reply-To: <20200610193023.171092-1-ard.biesheuvel@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [134.134.136.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c37b7f07-ef59-4f28-db40-08d80d8efc34 x-ms-traffictypediagnostic: MN2PR11MB4237: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3383; x-forefront-prvs: 0430FA5CB7 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8G3ZptmnOM8txLNqzVnnCNDu24RLlsGqUK7MisN4Zjg2Q1u87CmTu16Z42MrQM9vB5sxCjxtIGaRuD0tyJx+ieme26IpzZDXfusxAhz00cntHanOJ0FGyMILWKXs0nIv0sCRyC2UopjgTwjm/1JycEdrjt6GqfGDvz1WmNmGJbxJV1/h7vRnyGZlLOmNtJHweka0i9gybdaCnix7c2EqoagXrDoLhIhwoZ0avEQKYKlvMreqL6Gi+6VjDpQAy7t/L7p4R7MddLDhkILNWsvGwc+3c6/QNI4P7Vx9+q5aK4McupEwftXSIaezwSx0yp7jz7/VF/RDogpia4HMOgx0MjBuJLqoY+E4Tvaxaa1cSWUEykO7w9ynYKhNrwbqFMpRIj9JLu7ptZu70wVq2gcZRQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4461.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(376002)(366004)(346002)(39860400002)(396003)(136003)(110136005)(8936002)(4326008)(7696005)(53546011)(316002)(26005)(55016002)(6506007)(9686003)(186003)(5660300002)(107886003)(71200400001)(966005)(66556008)(76116006)(52536014)(33656002)(86362001)(64756008)(2906002)(66476007)(83380400001)(66946007)(8676002)(478600001)(66446008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: e4sM9ennkYUTUo84mtnmr+gM9kad/9GcmN/y4qmfkdmem3J7+bKpWKWlKiMmAjvnXJhbYq1h2OutWrnXT5QMI4csoYfZEYOdwrsatydCejwUQiAqeqbv4EikktV4vFfolFKW8OMq0engE2dvK6aGPLR7eRyQJ6+1BNrkXfQ3XfLP1n8Wj1dPPS6jO+Q1mN3cerrRCBiQuia26qaAvOf1pozojSxF/awZObWSNa2nXJ/MreW3GR2nXM9iEeV0aA51YezwXqtFwyHSAKYifXTRZO1t8Q74G7maSZMv1fucr9mLR1XH9y5S1rrI4sbUdwGJvpKqj2oVYH4BobDvas6FiCLWx/glZvHPgGjbBMDMliTNushZqqvjvQBRlJA03xoJ2ZUbbCC7ldy7L43JsY3OxwU22Hhqjla/iEeaI/CumILuq0DPj5krGG3W6BuVcl22pO1h+tle3cB8NiEpg68FZeahkrg8INwHh28t72TJR0901Qh0txE420fvzduQWcfU MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: c37b7f07-ef59-4f28-db40-08d80d8efc34 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Jun 2020 22:38:23.8146 (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: SUUaXIVJiPrwlrennQaie1vbI7yIRNd9HqDm+I1NVDXTBbSDbs/AfODhWnJuxVMINCbyS00O4TlW43VaLrT/22DDvWQldcvrKAmwz3nozfg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4237 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QXJkLA0KDQpDYW4geW91IGFkZCBhIGNvbW1lbnQgYmxvY2sgYmVmb3JlIGVhY2ggYXJyYXkgYW5k IGV4cGxhaW4gdGhlDQpoYXJkY29kZWQgMjUgYW5kIDIxIHZhbHVlcy4gIEkgYXNzdW1lIHRoYXQg aXMgdGhlIGxlbmd0aCBvZg0KdGhlIGxvbmdlc3Qgc3RyaW5nICsxIGZvciB0aGUgTnVsbC10ZXJt aW5hdG9yLg0KDQpJIGFzc3VtZSBpZiBhIHN0cmluZyBpcyBhZGRlZCBvciBtb2RpZmllZCB0aGF0 IGlzIGxvbmdlciANCnRoYW4gdGhlIGZpeGVkIHNpemUgdGhlIGNvbXBpbGVyIHdpbGwgdGhyb3cg YW4gZXJyb3IuICBTbw0KaG9wZWZ1bGx5LCB0aGUgd29yc3QgdGhhdCBoYXBwZW5zIHdpdGggYW4g aW5jb3JyZWN0IHZhbHVlDQp0aGF0IGJ1aWxkcyBpcyBzb21lIGV4dHJhIGZpbGxlciBvZiB6ZXJv cy4NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVs QGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24NCj4gQmVoYWxmIE9mIEFy ZCBCaWVzaGV1dmVsDQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSAxMCwgMjAyMCAxMjozMCBQTQ0K PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmll c2hldXZlbEBhcm0uY29tPjsgS2lubmV5LA0KPiBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiBTdWJq ZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyXSBNZGVQa2cvQmFzZVByaW50TGliOg0KPiBhdm9p ZCBhYnNvbHV0ZSBhZGRyZXNzZXMgZm9yIGVycm9yIHN0cmluZ3MNCj4gDQo+IFRoZSBtU3RhdHVz U3RyaW5nW10gYXJyYXkgaXMgY29uc3RydWN0ZWQgYXMgYW4gYXJyYXkgb2YNCj4gcG9pbnRlci10 by1jaGFyLA0KPiB3aGljaCBtZWFucyB0aGF0IG9uIFg2NCBvciBBQVJDSDY0LCBpdCBpcyBlbWl0 dGVkIGFzIGENCj4gc2luZ2xlIGxpbmVhciBsaXN0DQo+IG9mIDY0LWJpdCBxdWFudGl0aWVzLCBl YWNoIGNvbnRhaW5pbmcgdGhlIGFic29sdXRlDQo+IGFkZHJlc3Mgb2Ygb25lIG9mIHRoZQ0KPiBz dHJpbmcgbGl0ZXJhbHMgaW4gbWVtb3J5Lg0KPiANCj4gVGhpcyBtZWFucyB0aGF0IGVhY2ggc3Ry aW5nIHRha2VzIHVwIDggYnl0ZXMgb2YNCj4gYWRkaXRpb25hbCBzcGFjZSwgYWxvbmcNCj4gd2l0 aCAyIGJ5dGVzIG9mIHJlbG9jYXRpb24gZGF0YS4gSXQgYWxzbyBtZWFucyB0aGF0DQo+IGV4dHJh IHdvcmsgbmVlZHMgdG8NCj4gYmUgZG9uZSBhdCBydW50aW1lIHRvIHByb2Nlc3MgdGhlc2UgcmVs b2NhdGlvbnMsIGV2ZXJ5DQo+IHRpbWUgYSBtb2R1bGUgaXMNCj4gbG9hZGVkIHRoYXQgaW5jb3Jw b3JhdGVzIHRoaXMgbGlicmFyeS4NCj4gDQo+IFNvIGZpeCBib3RoIGlzc3VlcywgYnkgc3BsaXR0 aW5nIG1TdGF0dXNTdHJpbmcgaW50byB0d28NCj4gYXJyYXlzIG9mIGNoYXINCj4gYXJyYXlzLiBU aGUgbWVtb3J5IGZvb3RwcmludCBkZWNyZWFzZXMgZnJvbSA5NTUgdG8gODQzDQo+IGJ5dGVzLCBh bmQgZ2l2ZW4NCj4gdGhhdCBpbiB0aGUgbGF0dGVyIGNhc2UsIHRoZSBvdmVyaGVhZCBjb25zaXN0 cyBvZiAyNzgNCj4gTlVMIGNoYXJhY3RlcnMgcmF0aGVyDQo+IHRoYW4gMzkwIGJ5dGVzIHdvcnRo IG9mIGFic29sdXRlIGFkZHJlc3NlcyBhbmQNCj4gcmVsb2NhdGlvbiByZWNvcmRzLCB0aGUgc2l6 ZQ0KPiBvZiBhIGNvbXByZXNzZWQgaW1hZ2UgaXMgcmVkdWNlZCBldmVuIGZ1cnRoZXIuIEZvcg0K PiBleGFtcGxlLCB3aGVuIGJ1aWxkaW5nDQo+IEFybVZpcnRRZW11LmRzYyBpbiBSRUxFQVNFIG1v ZGUgZm9yIEFBUkNINjQgd2l0aCB0aGUNCj4gR0NDNSBwcm9maWxlLCBJIGdldDoNCj4gDQo+ICAg QmVmb3JlDQo+IA0KPiAgIEZWIFNwYWNlIEluZm9ybWF0aW9uDQo+ICAgRlZNQUlOIFsxMDAlRnVs bF0gNTMyOTkyMCB0b3RhbCwgNTMyOTkyMCB1c2VkLCAwIGZyZWUNCj4gICBGVk1BSU5fQ09NUEFD VCBbMzglRnVsbF0gMjA5MzA1NiB0b3RhbCwgODExODQwIHVzZWQsDQo+IDEyODEyMTYgZnJlZQ0K PiANCj4gICBBZnRlcg0KPiANCj4gICBGViBTcGFjZSBJbmZvcm1hdGlvbg0KPiAgIEZWTUFJTiBb MTAwJUZ1bGxdIDUzMjE3MjggdG90YWwsIDUzMjE3MjggdXNlZCwgMCBmcmVlDQo+ICAgRlZNQUlO X0NPTVBBQ1QgWzM4JUZ1bGxdIDIwOTMwNTYgdG90YWwsIDgwOTY5NiB1c2VkLA0KPiAxMjgzMzYw IGZyZWUNCj4gDQo+IFNvIHRoZSB1bmNvbXByZXNzZWQgY29udGVudHMgb2YgdGhlIGNvbXByZXNz ZWQgaW1hZ2UgYXJlDQo+IDggS0Igc21hbGxlciwNCj4gd2hlcmVhcyB0aGUgcmVzdWx0aW5nIGZs YXNoIGltYWdlIChjb25zaXN0aW5nIG9mIHRoZQ0KPiBjb21wcmVzc2VkIGltYWdlDQo+IGFsb25n IHdpdGggU0VDLCBQRUlfQ09SRSBhbmQgYSBzZXQgb2YgUEVJTXMgdGhhdCBleGVjdXRlDQo+IGlu IHBsYWNlKSBpcw0KPiB+MiBLQiBzbWFsbGVyLg0KPiANCj4gQ2M6ICJLaW5uZXksIE1pY2hhZWwg RCIgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogIkdhbywgTGltaW5nIiA8bGlt aW5nLmdhb0BpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IEFyZCBCaWVzaGV1dmVsIDxhcmQu Ymllc2hldXZlbEBhcm0uY29tPg0KPiAtLS0NCj4gdjI6DQo+IC0gc3BsaXQgb2ZmIHRoaXMgcGF0 Y2ggZnJvbSB0aGUgU3RhbmRhbG9uZU1tUGtnIHNlcmllcywNCj4gc2luY2UgdGhleSBhcmUgbm90 DQo+ICAgaW50ZXJkZXBlbmRlbnQgYW55d2F5LCBhbmQgc28gdGhleSBjYW4gYmUgZGlzY3Vzc2Vk DQo+IHNlcGFyYXRlbHkNCj4gLSByZW1vdmUgbWVudGlvbiBvZiBTdGFuZGFsb25lTW1Qa2cgZnJv bSB0aGUgY29tbWl0IGxvZw0KPiAtIHRoZSBzcGFjZSBzYXZpbmdzDQo+ICAgYnkgdGhlbXNlbHZl cyBhcmUgc3VmZmljaWVudCBqdXN0aWZpY2F0aW9uDQo+IC0gdXBkYXRlIHRoZSBiZWZvcmUvYWZ0 ZXIgbnVtYmVycyB3aXRoIHRoZSBjdXJyZW50DQo+IHJlc3VsdHMNCj4gLSBzcGxpdCB0aGUgd2Fy bmluZ3MgYW5kIGVycm9ycyBpbnRvIGEgc2VwYXJhdGUgYXJyYXksDQo+IHNvIHRoYXQgdGhlIGxh dHRlcg0KPiAgIGNhbiB1c2Ugc21hbGxlciBlbnRyaWVzDQo+IC0gY2xhcmlmeSB0aGUgY29tbWl0 IGxvZyB0byBleHBsYWluIHRoZSBlZmZlY3Qgb24NCj4gY29tcHJlc3NlZCBhcyB3ZWxsIGFzDQo+ ICAgWElQIGltYWdlcyAod2hpY2ggYm90aCBnZXQgc21hbGxlcikNCj4gDQo+ICBNZGVQa2cvTGli cmFyeS9CYXNlUHJpbnRMaWIvUHJpbnRMaWJJbnRlcm5hbC5jIHwgOQ0KPiArKysrKystLS0NCj4g IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+IA0KPiBk aWZmIC0tZ2l0DQo+IGEvTWRlUGtnL0xpYnJhcnkvQmFzZVByaW50TGliL1ByaW50TGliSW50ZXJu YWwuYw0KPiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VQcmludExpYi9QcmludExpYkludGVybmFsLmMN Cj4gaW5kZXggYjZlYzVhYzRmYmI5Li41MjJjM2JiNWRjYjkgMTAwNjQ0DQo+IC0tLSBhL01kZVBr Zy9MaWJyYXJ5L0Jhc2VQcmludExpYi9QcmludExpYkludGVybmFsLmMNCj4gKysrIGIvTWRlUGtn L0xpYnJhcnkvQmFzZVByaW50TGliL1ByaW50TGliSW50ZXJuYWwuYw0KPiBAQCAtMjcsMTMgKzI3 LDE2IEBADQo+IA0KPiANCj4gIEdMT0JBTF9SRU1PVkVfSUZfVU5SRUZFUkVOQ0VEIENPTlNUIENI QVI4IG1IZXhTdHJbXSA9DQo+IHsnMCcsJzEnLCcyJywnMycsJzQnLCc1JywnNicsJzcnLCc4Jywn OScsJ0EnLCdCJywnQycsJ0QnDQo+ICwnRScsJ0YnfTsNCj4gDQo+IA0KPiANCj4gLUdMT0JBTF9S RU1PVkVfSUZfVU5SRUZFUkVOQ0VEIENPTlNUIENIQVI4ICogQ09OU1QNCj4gbVN0YXR1c1N0cmlu Z1tdID0gew0KPiANCj4gK0dMT0JBTF9SRU1PVkVfSUZfVU5SRUZFUkVOQ0VEIENPTlNUIENIQVI4 DQo+IG1XYXJuaW5nU3RyaW5nW11bMjVdID0gew0KPiANCj4gICAgIlN1Y2Nlc3MiLCAgICAgICAg ICAgICAgICAgICAgICAvLyAgUkVUVVJOX1NVQ0NFU1MNCj4gPSAwDQo+IA0KPiAgICAiV2Fybmlu ZyBVbmtub3duIEdseXBoIiwgICAgICAgIC8vDQo+IFJFVFVSTl9XQVJOX1VOS05PV05fR0xZUEgg ICAgID0gMQ0KPiANCj4gICAgIldhcm5pbmcgRGVsZXRlIEZhaWx1cmUiLCAgICAgICAvLw0KPiBS RVRVUk5fV0FSTl9ERUxFVEVfRkFJTFVSRSAgICA9IDINCj4gDQo+ICAgICJXYXJuaW5nIFdyaXRl IEZhaWx1cmUiLCAgICAgICAgLy8NCj4gUkVUVVJOX1dBUk5fV1JJVEVfRkFJTFVSRSAgICAgPSAz DQo+IA0KPiAgICAiV2FybmluZyBCdWZmZXIgVG9vIFNtYWxsIiwgICAgIC8vDQo+IFJFVFVSTl9X QVJOX0JVRkZFUl9UT09fU01BTEwgID0gNA0KPiANCj4gICAgIldhcm5pbmcgU3RhbGUgRGF0YSIs ICAgICAgICAgICAvLw0KPiBSRVRVUk5fV0FSTl9TVEFMRV9EQVRBICAgICAgICA9IDUNCj4gDQo+ ICt9Ow0KPiANCj4gKw0KPiANCj4gK0dMT0JBTF9SRU1PVkVfSUZfVU5SRUZFUkVOQ0VEIENPTlNU IENIQVI4DQo+IG1FcnJvclN0cmluZ1tdWzIxXSA9IHsNCj4gDQo+ICAgICJMb2FkIEVycm9yIiwg ICAgICAgICAgICAgICAgICAgLy8gIFJFVFVSTl9MT0FEX0VSUk9SDQo+ID0gMSAgfCBNQVhfQklU DQo+IA0KPiAgICAiSW52YWxpZCBQYXJhbWV0ZXIiLCAgICAgICAgICAgIC8vDQo+IFJFVFVSTl9J TlZBTElEX1BBUkFNRVRFUiAgICAgID0gMiAgfCBNQVhfQklUDQo+IA0KPiAgICAiVW5zdXBwb3J0 ZWQiLCAgICAgICAgICAgICAgICAgIC8vDQo+IFJFVFVSTl9VTlNVUFBPUlRFRCAgICAgICAgICAg ID0gMyAgfCBNQVhfQklUDQo+IA0KPiBAQCAtOTk2LDEyICs5OTksMTIgQEAgQmFzZVByaW50TGli U1ByaW50TWFya2VyICgNCj4gICAgICAgICAgICAvLw0KPiANCj4gICAgICAgICAgICBJbmRleCA9 IFN0YXR1cyAmIH5NQVhfQklUOw0KPiANCj4gICAgICAgICAgICBpZiAoSW5kZXggPiAwICYmIElu ZGV4IDw9DQo+IEVSUk9SX1NUQVRVU19OVU1CRVIpIHsNCj4gDQo+IC0gICAgICAgICAgICBBcmd1 bWVudFN0cmluZyA9IG1TdGF0dXNTdHJpbmcgW0luZGV4ICsNCj4gV0FSTklOR19TVEFUVVNfTlVN QkVSXTsNCj4gDQo+ICsgICAgICAgICAgICBBcmd1bWVudFN0cmluZyA9IG1FcnJvclN0cmluZyBb SW5kZXggLSAxXTsNCj4gDQo+ICAgICAgICAgICAgfQ0KPiANCj4gICAgICAgICAgfSBlbHNlIHsN Cj4gDQo+ICAgICAgICAgICAgSW5kZXggPSBTdGF0dXM7DQo+IA0KPiAgICAgICAgICAgIGlmIChJ bmRleCA8PSBXQVJOSU5HX1NUQVRVU19OVU1CRVIpIHsNCj4gDQo+IC0gICAgICAgICAgICBBcmd1 bWVudFN0cmluZyA9IG1TdGF0dXNTdHJpbmcgW0luZGV4XTsNCj4gDQo+ICsgICAgICAgICAgICBB cmd1bWVudFN0cmluZyA9IG1XYXJuaW5nU3RyaW5nIFtJbmRleF07DQo+IA0KPiAgICAgICAgICAg IH0NCj4gDQo+ICAgICAgICAgIH0NCj4gDQo+ICAgICAgICAgIGlmIChBcmd1bWVudFN0cmluZyA9 PSBWYWx1ZUJ1ZmZlcikgew0KPiANCj4gLS0NCj4gMi4yNi4yDQo+IA0KPiANCj4gLT0tPS09LT0t PS09DQo+IEdyb3Vwcy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8g dGhpcw0KPiBncm91cC4NCj4gDQo+IFZpZXcvUmVwbHkgT25saW5lICgjNjEwODkpOg0KPiBodHRw czovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS82MTA4OQ0KPiBNdXRlIFRoaXMgVG9w aWM6IGh0dHBzOi8vZ3JvdXBzLmlvL210Lzc0ODA0MzEzLzE2NDM0OTYNCj4gR3JvdXAgT3duZXI6 IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvDQo+IFVuc3Vic2NyaWJlOiBodHRwczovL2VkazIu Z3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWINCj4gW21pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tXQ0K PiAtPS09LT0tPS09LT0NCg0K