From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web10.166755.1673877452089774429 for ; Mon, 16 Jan 2023 05:57:32 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=dJYFx6Pu; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: jiewen.yao@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673877452; x=1705413452; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=a4ivggC/rHhGPgZ2lpW05ctQYWD7GLS1OlHWxgupdjk=; b=dJYFx6Pu+SwJSs5Rudglq228BA9QMasN5ljMS1jHic8UBrEwpqkuhQvv 14IClCF5IeVaHZ+WruNJFyW3MbtcmtcIOlnGGGhLpfIIoUVL+y/UClyuZ NjhBD4wSAz/ODyN2mA0cjCvAYQbpg4qnOUUE+F4DFxWD9XNMqt3W8tvqz 88epHSAaN6VCn68KUbAHPs8kH14xZROEzo1kKYtbcGrzdeKvpqbUJjcYi CDB30u3YdWeplfdm2onASI4ucWIMsqO4r8vcB9hNjQwNEGFfq+DGIhB18 9v2oWwJ5ylIPKvbOqZ7/CgRLrpnLp05q7WA0T3LS8jc/dXz73CvZjng/x w==; X-IronPort-AV: E=McAfee;i="6500,9779,10592"; a="410712249" X-IronPort-AV: E=Sophos;i="5.97,221,1669104000"; d="scan'208";a="410712249" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Jan 2023 05:57:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10592"; a="747737415" X-IronPort-AV: E=Sophos;i="5.97,221,1669104000"; d="scan'208";a="747737415" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by FMSMGA003.fm.intel.com with ESMTP; 16 Jan 2023 05:57:31 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2507.16; Mon, 16 Jan 2023 05:57:30 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Mon, 16 Jan 2023 05:57:30 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.174) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Mon, 16 Jan 2023 05:57:30 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JjhpbSXNifOrZVSV6deNQxH+pqWDfmyXXRu5odknw4A2YszoLMax3ct77PbusC/wnJf77SjJv6G26BAiU/JJJnnipk7Mg4LW5z6TXix1t3p7ZCtOTCNVMq3jdW7oEy6IYynnwDYdifn5MYJHVrWvIAyMsVr7c8xpjnW8v3ijHSigpeinShumKiQtCwppsgKlaxBUybDbBOiDbrXOGUAENVzVemlTgqgWjCaW5hIRXeAf4SUaMeScO753r0iomEW5UROJ3dWNRfIpbvYd+wOdLg3U/l+90ap11VNeJvlb78OBXV3Gy2W/J92MjOaL+NkDVeN4ULcu6oim9pcEcyCKkg== 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=a4ivggC/rHhGPgZ2lpW05ctQYWD7GLS1OlHWxgupdjk=; b=EKQUTW+bdKm9v0x2IHt8CPefv7qff/INjoFC0xHKk0rrLJ0dlhN3ibMXrz0Pl9HPxoZsMG3Ypfgyia2TiO6T4pA6sayUB7NKMpiEXZINH4ykrggkPu3XYc9r5x5SCerheMnTw1K2RYMyHeHTfdKcuj7LJQAFK4tMafP7k1KfEe0ZG8oiIEgMH4xGvV7Go023wdzUmd6NbklSyf5/bZo2HsBCtdkkWhMU3G0X2mYG3xQG5QeX+7mVGgVhnZz8ZVLdM7B4PT20h73HJOBfiQ9639LUWhh3TpUI3iXWFECISR0qkkMIoHFgNiXjEJebWRcz2xXGKchVUaDlBt74cwbSpQ== 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 MW4PR11MB5872.namprd11.prod.outlook.com (2603:10b6:303:169::14) by SJ0PR11MB4862.namprd11.prod.outlook.com (2603:10b6:a03:2de::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.23; Mon, 16 Jan 2023 13:57:28 +0000 Received: from MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::5f56:1bdc:2eae:c041]) by MW4PR11MB5872.namprd11.prod.outlook.com ([fe80::5f56:1bdc:2eae:c041%7]) with mapi id 15.20.6002.013; Mon, 16 Jan 2023 13:57:28 +0000 From: "Yao, Jiewen" To: Ard Biesheuvel , "devel@edk2.groups.io" CC: "Xu, Min M" , "Aktas, Erdem" , James Bottomley , Gerd Hoffmann , "Tom Lendacky" , Michael Roth Subject: Re: [edk2-devel] [PATCH V1 1/1] OvmfPkg/AcpiPlatformDxe: Measure ACPI table from QEMU in TDVF Thread-Topic: [edk2-devel] [PATCH V1 1/1] OvmfPkg/AcpiPlatformDxe: Measure ACPI table from QEMU in TDVF Thread-Index: AQHZKU3eGyGpegw6rEOjkv3NNLPyJ66gVKNAgACGAACAADapUA== Date: Mon, 16 Jan 2023 13:57:27 +0000 Message-ID: References: <20230116015658.194-1-min.m.xu@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR11MB5872:EE_|SJ0PR11MB4862:EE_ x-ms-office365-filtering-correlation-id: 5c1f3268-11ea-4b1b-6768-08daf7c99a82 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: MN8nvBz9A2/XDbK66zQ6641vYiIy7tB6mwfiEyvqCsHa5wU4OKgmJt0ujI6mZdBnH6UKG2oRgwX9d9jqRQOyGD9SHqZcGC7lvhzGOj4O8zqsLBejaNkE2lYeq2TemLGUA0D5G26sAT9CE/fP91mg1Z9vhcxQ+CCPz3PBTPYnCFzqJ6q7JtGphIRVquw6FCSZzXoYo7+/lofQUofB0oM0+vMwOWE4ZbE1pTdXK1swWsSCah3ZHC862IZW7fWeMhHVcAFIS119OP/rx6QOADCFDcIhZMc2e9emDMXGTTDRs0pgz1Of7RN2ylpK63swdHgbUWglIpnWUavIP4YRdPMx4q5AqWVxA2ritgXc6n6Y9tyuqihkYdhciOXvJcQGtOX0Cmmp3zoMXjxq1h9lgR3sGsgp3p05gENOyaRyi8UXKF/ZxSI23jwTDWg37qz28bnIk15D7LJNL9eD7bX/g2PdxE7EvprVF1r2Y5wWvPm/mC7TEBgary7pWU5yBJeHX4YhbfvNDtb2Whg+UYmJXjNNf/SXCcBktQAxRtCLEPcbTTKqvplFFRhztaO33v43UtmGRSty5pVMk8A5axU8PY/FgjK0GhDcw4xXyGJytCNzJZq8gLu4M0OzmcLJ1S2t3QIwy/kcLK5tsY5ZaN+IJY+va2SPTcveIy2mCFlQv7EjfKXsWTwnwvaWFvhx9eV6DbqfA44YQbFVXZk76FUJmSEUHOQoAvbsNHeT/Urx9dPefx36mj6JPbVdkl52AFsVmWM0QovjtoNubI4MDE8+UVamMg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5872.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(396003)(346002)(136003)(366004)(376002)(451199015)(83380400001)(82960400001)(33656002)(122000001)(5660300002)(38100700002)(86362001)(38070700005)(2906002)(52536014)(8936002)(55016003)(4326008)(76116006)(66556008)(66946007)(66446008)(66476007)(8676002)(64756008)(478600001)(9686003)(53546011)(186003)(6506007)(26005)(316002)(54906003)(7696005)(966005)(110136005)(71200400001)(41300700001)(66899015);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RVpxZVpham9SaHpWM2RidUw5RzBwakdJU1ppZ0VDYjFtYVNDUUJ1NG1rQmti?= =?utf-8?B?cVRGZE9hSTBPMUpSOU1JZnRCUnhoOGp3SFQ3VGtMc0toMmU3NldaSTRPelIw?= =?utf-8?B?UHRZNUVuTXJUYVFZUDZzR3pkK3J0M25mcy9KQ1JJZi9lRHhPbWRSeVFDOTR2?= =?utf-8?B?YWtyU3hGeVdiZ25vUUJEZ0lyRVJ6WC9rbHN0TjU1cWNMWHBjNmtMNWRndE9r?= =?utf-8?B?eGYwSzc2cnY4SnZaY3Z3M1ZRdUxHeE12Q25pQ3Y5RHpNK0Npc0kvVDdmVkdw?= =?utf-8?B?VjNRMHBpc3NRamFRdDlNTng1QkZzR1FIdEpDdkhMOTZId25YekR6aTBFQ2dV?= =?utf-8?B?bHhWNVc4TW9NeUVadWdZbTZyS01wSWo0WmRSYkNaNm5ramNpMGI5SC9GZE9V?= =?utf-8?B?alZEUUJITG01N3hKYkZoWE1pZDhyeEVkYk9BbExEU3dubWdjMU9PQVF1OUlr?= =?utf-8?B?MEw1VGJPMGRuenBzaDdFMlhlQkJpQkZNaVVQeUlJcVpYRVorTHJCL0grUUU2?= =?utf-8?B?MGR1N2pmOVZKcDVNTDNXWm4wdlJpWmVxMXdiVmRmaE1HSEhCaDJ1c2hWSm9j?= =?utf-8?B?L3R4TW9iMi9kdVpkYXFVWG5zTUptdHFHWER3bTlNSHRTaVVFM0I2dWJia2pK?= =?utf-8?B?d3J1RU5oaHJLOFBBanRHdDFvK2hKSjdBVTcvNVhiSE8rdG1KeW5EcUY1bHY2?= =?utf-8?B?enhvMTRmMEZremFpUjJXdFlaVTFYRFFpQUwwR2lVZHNoYitBbTJ3QXFWYkVR?= =?utf-8?B?bFBqUXM2Q1RNQzhKNFJUdkN1MGVwcmx6MGc5Q3Q2QXNVS3puejFMdEdwQ0FE?= =?utf-8?B?bGZXL1hsU2dNc2U2VGNRcGRtZkdGWVJrWGxZb2NLRDF5dXBIOUsveGErcENC?= =?utf-8?B?L3hzR0VLdk1KdWllMjQ3K2VMTmNZOGxaL3pBYUptbUVmdTdKMVR1TXJHbmds?= =?utf-8?B?d1RmOVV5dXhzV3VJUHU1QndKNlhmOEk1S0c5andyeDFjei8rN2x6RU5EOXgz?= =?utf-8?B?VTVSODdIR3NNT21JZGlITUpDQjJmcVV5RDNQSTdKaGNqOGJrby9JalZXV25q?= =?utf-8?B?NEhKSHNqN0xCSDhJKzBZRTlUcUtaWXd5UnpQWXE1Z1BWNVhpQ0VEK0Z1a3VG?= =?utf-8?B?c3ZWTUhlVTR2UDI1OFAybmZWTERPa292RE5VSFZIY0tHRWV1SmZnUzd3TlhS?= =?utf-8?B?SVYyTS9YejhnNTkvMXA1S3NOMVNmZTcxUG9sb2Fic2NIbVpjYk44NDY2cDhj?= =?utf-8?B?U0t5Z3h3QlZ1bGlsZys4b0JRR05aRlNRS3o0M1ZWOGxuMVV0ZnllSkNvejNU?= =?utf-8?B?cXN4NW03ZEJnckVDbUpsbVFtV1E5ZGVjYytidzJWeTMvM09qYjQ0RE1sWlM5?= =?utf-8?B?TnRjMlVhVVFTRXd5R0dKN2JtWWZaT2kzZzlnc0dFOEh5RWJpSGo5MkRGSnNy?= =?utf-8?B?b29CVURLVTQ2blBpSXQ0VWd0d0drODZKVUVlOWNZUkhWWXBkQmE3M1NVS2ZP?= =?utf-8?B?VkN2UDBvZFRSSllEYytxaEN4ZzdheGN6dU10VE5IZFhlbnQwbER6M1BabkVB?= =?utf-8?B?YUprUFBieGV0aHVGZVl5SUJlOTNIck42dG9TNE1VYnBaU2daNmhQUVJmUFNy?= =?utf-8?B?UnVCa3c0SFZkUHFPaURidXhka1dzekdLR09wNXNWdk5UUU1idFI1UWpqU244?= =?utf-8?B?WU0xTGlXMWk3SHhhMmV5MFFsY2lhNWVmMEJjNDNiVCswaUFtQjZveS91aWlE?= =?utf-8?B?TWNhOUc5Vm04YXNoNHltbXFhTDRvTUNCbXNsS2FIVW90VjZOc2t0UHU1djVN?= =?utf-8?B?Q1J1TEVNQ2Zhd3lBdFBaci9nL2V1TDRMaGsvQ1luTkdldG1rU0NwZHpVckV3?= =?utf-8?B?WTA3QzhCZ0REY3RGS0hkRUxjd0tmVFUxMHBJL2NZL2R4Y3ZTc0prU3J3N21W?= =?utf-8?B?aTVabHBycVhuNllYR20zMzVQKzVVeVdCem9WQ1dodll3Vk1OMjRFdEh4Y09n?= =?utf-8?B?Yis2R0RWVzJubHBxWDVPcnJ1SUdBdVhaelZZeEpCek8rc0ZaUWZLYXNZbzNn?= =?utf-8?B?YlVJdWExOVBrZS81ZHE4N1A0Y0NhdHl4NHA3bm1rKzZrZHBPYk9RcVlHRUJ4?= =?utf-8?Q?HoK42iMnEz1c5HJ/InRQtaJkB?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5872.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c1f3268-11ea-4b1b-6768-08daf7c99a82 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2023 13:57:27.8757 (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: RDeoHOyu7Gocc5s9omJhsXFuOU+uUiXXecxeGDoEx9Lpb3vSVwLPT1nXU7I8MCeKQBNe6jlXJ87cTuWwvvzeGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4862 Return-Path: jiewen.yao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RG8geW91IG1lYW4gcmVhbCBwbGF0Zm9ybSBCSU9TPw0KDQpUaGUgcnVsZXMgYXJlOg0KMSkgVGhl IEFDUEkgdGFibGUgb24gdGhlIGZsYXNoIGxvYWRlZCBieSB0aGUgQklPUyBpcyBtZWFzdXJlZCAq YmVmb3JlKiBhbnkgbW9kaWZpY2F0aW9uIGFuZCAqYmVmb3JlKiBpbnN0YWxsYXRpb24uIEZvciBl eGFtcGxlLCBEU0RULCBTU0RULg0KMikgVGhlIEFDUEkgdGFibGUgY29uc3RydWN0ZWQgYnkgdGhl IEJJT1MgZHluYW1pY2FsbHkgZG9lcyBub3QgbmVlZCB0byBiZSBtZWFzdXJlZC4gRm9yIGV4YW1w bGUgTUFEVC4NCg0KVGhhbmsgWW91DQpZYW8sIEppZXdlbg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IEFyZCBCaWVzaGV1dmVsIDxhcmRiQGtlcm5lbC5vcmc+DQo+IFNl bnQ6IE1vbmRheSwgSmFudWFyeSAxNiwgMjAyMyA2OjM4IFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiBDYzogWHUsIE1p biBNIDxtaW4ubS54dUBpbnRlbC5jb20+OyBBa3RhcywgRXJkZW0NCj4gPGVyZGVtYWt0YXNAZ29v Z2xlLmNvbT47IEphbWVzIEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsgR2VyZA0KPiBI b2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+OyBUb20gTGVuZGFja3kNCj4gPHRob21hcy5sZW5k YWNreUBhbWQuY29tPjsgTWljaGFlbCBSb3RoIDxtaWNoYWVsLnJvdGhAYW1kLmNvbT4NCj4gU3Vi amVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjEgMS8xXSBPdm1mUGtnL0FjcGlQbGF0Zm9y bUR4ZToNCj4gTWVhc3VyZSBBQ1BJIHRhYmxlIGZyb20gUUVNVSBpbiBURFZGDQo+IA0KPiBBbm90 aGVyIHF1ZXN0aW9uOiBob3cgZG9lcyB0aGlzIGRldmlhdGUgZnJvbSBvcmRpbmFyeSBtZWFzdXJl ZCBib290Pw0KPiBIb3cgYW5kIHdoZW4gYXJlIEFDUEkgdGFibGVzIG1lYXN1cmVkIG9uIHN1Y2gg c3lzdGVtcz8NCj4gDQo+IA0KPiBPbiBNb24sIDE2IEphbiAyMDIzIGF0IDAzOjQyLCBZYW8sIEpp ZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+IHdyb3RlOg0KPiA+DQo+ID4gSGkNCj4gPiBJIGhh dmUgdHdvIGZlZWRiYWNrOg0KPiA+DQo+ID4gMSkgV2hhdCB3ZSBuZWVkIG1lYXN1cmUgaXMgdGhl IGlucHV0IGZyb20gVk1NICpiZWZvcmUqIGFueQ0KPiBtb2RpZmljYXRpb24gYW5kICpiZWZvcmUq IGluc3RhbGxhdGlvbi4NCj4gPiBQbGVhc2UgZG9uJ3QgdXNlIEFDUEkgU0RUIHByb3RvY29sIHRv IGdldCB0aGUgdGFibGUgKmFmdGVyKiBtb2RpZmljYXRpb24uDQo+ID4NCj4gPiAyKSBXaHkgbm90 IHVzZSBUcG1NZWFzdXJlQW5kTG9nRGF0YSgpIGluDQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFu b2NvcmUvZWRrMi9ibG9iL21hc3Rlci9NZGVNb2R1bGVQa2cvSW5jbHVkZS9MaQ0KPiBicmFyeS9U cG1NZWFzdXJlbWVudExpYi5oID8NCj4gPiBQbGVhc2UgZG9uJ3QgdXNlIGxvY2F0ZSBwcm90b2Nv bC4NCj4gPg0KPiA+IFRoYW5rIHlvdQ0KPiA+IFlhbywgSmlld2VuDQo+ID4NCj4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBYdSwgTWluIE0gPG1pbi5tLnh1QGlu dGVsLmNvbT4NCj4gPiA+IFNlbnQ6IE1vbmRheSwgSmFudWFyeSAxNiwgMjAyMyA5OjU3IEFNDQo+ ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+IENjOiBYdSwgTWluIE0gPG1pbi5t Lnh1QGludGVsLmNvbT47IEFrdGFzLCBFcmRlbQ0KPiA+ID4gPGVyZGVtYWt0YXNAZ29vZ2xlLmNv bT47IEphbWVzIEJvdHRvbWxleSA8amVqYkBsaW51eC5pYm0uY29tPjsNCj4gWWFvLA0KPiA+ID4g Smlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRo YXQuY29tPjsNCj4gPiA+IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+OyBN aWNoYWVsIFJvdGgNCj4gPiA+IDxtaWNoYWVsLnJvdGhAYW1kLmNvbT4NCj4gPiA+IFN1YmplY3Q6 IFtQQVRDSCBWMSAxLzFdIE92bWZQa2cvQWNwaVBsYXRmb3JtRHhlOiBNZWFzdXJlIEFDUEkgdGFi bGUNCj4gZnJvbQ0KPiA+ID4gUUVNVSBpbiBURFZGDQo+ID4gPg0KPiA+ID4gRnJvbTogTWluIE0g WHUgPG1pbi5tLnh1QGludGVsLmNvbT4NCj4gPiA+DQo+ID4gPiBodHRwczovL2J1Z3ppbGxhLnRp YW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTQyNDUNCj4gPiA+DQo+ID4gPiBUaGUgQUNQSSB0 YWJsZXMgYXJlIGRvd25sb2FkZWQgZnJvbSBRRU1VLiBRRU1VL1ZNTSBpcyB0cmVhdGVkIGFzDQo+ ID4gPiB1bi10cnVzdGVkIGluIGEgdGQtZ3Vlc3QuIEZyb20gdGhlIHNlY3VyaXR5IHBlcnNwZWN0 aXZlIHRoZXkgc2hvdWxkDQo+ID4gPiBiZSBtZWFzdXJlZCBhbmQgZXh0ZW5kZWQgaWYgcG9zc2li bGUuIFNvIHRoYXQgdGhleSBjYW4gYmUgYXVkaXRlZA0KPiA+ID4gbGF0ZXIuIFRoZSBtZWFzdXJl bWVudCBwcm90b2NvbCBtYXkgYmUgbm90IGluc3RhbGxlZC4gSW4gdGhpcyBjYXNlDQo+ID4gPiBp dCBzdGlsbCByZXR1cm5zIEVGSV9TVUNDRVNTLg0KPiA+ID4NCj4gPiA+IENjOiBFcmRlbSBBa3Rh cyA8ZXJkZW1ha3Rhc0Bnb29nbGUuY29tPg0KPiA+ID4gQ2M6IEphbWVzIEJvdHRvbWxleSA8amVq YkBsaW51eC5pYm0uY29tPg0KPiA+ID4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwu Y29tPg0KPiA+ID4gQ2M6IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPg0KPiA+ID4g Q2M6IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+ID4gPiBDYzogTWlj aGFlbCBSb3RoIDxtaWNoYWVsLnJvdGhAYW1kLmNvbT4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IE1p biBYdSA8bWluLm0ueHVAaW50ZWwuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgT3ZtZlBrZy9BY3Bp UGxhdGZvcm1EeGUvQWNwaVBsYXRmb3JtRHhlLmluZiB8ICAgMiArDQo+ID4gPiAgT3ZtZlBrZy9B Y3BpUGxhdGZvcm1EeGUvUWVtdUZ3Q2ZnQWNwaS5jICAgICB8IDE2OA0KPiA+ID4gKysrKysrKysr KysrKysrKysrKysNCj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDE3MCBpbnNlcnRpb25zKCspDQo+ ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL092bWZQa2cvQWNwaVBsYXRmb3JtRHhlL0FjcGlQbGF0 Zm9ybUR4ZS5pbmYNCj4gPiA+IGIvT3ZtZlBrZy9BY3BpUGxhdGZvcm1EeGUvQWNwaVBsYXRmb3Jt RHhlLmluZg0KPiA+ID4gaW5kZXggODkzOWRkZTQyNTQ5Li5hZTIyYmFiMzhjZjkgMTAwNjQ0DQo+ ID4gPiAtLS0gYS9Pdm1mUGtnL0FjcGlQbGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm1EeGUuaW5mDQo+ ID4gPiArKysgYi9Pdm1mUGtnL0FjcGlQbGF0Zm9ybUR4ZS9BY3BpUGxhdGZvcm1EeGUuaW5mDQo+ ID4gPiBAQCAtNTEsNiArNTEsOCBAQA0KPiA+ID4gICAgZ0VmaUFjcGlUYWJsZVByb3RvY29sR3Vp ZCAgICAgICAgICAgICAgICAgICAgICMgUFJPVE9DT0wNCj4gQUxXQVlTX0NPTlNVTUVEDQo+ID4g PiAgICBnRWZpUGNpSW9Qcm90b2NvbEd1aWQgICAgICAgICAgICAgICAgICAgICAgICAgIyBQUk9U T0NPTA0KPiBTT01FVElNRVNfQ09OU1VNRUQNCj4gPiA+ICAgIGdRZW11QWNwaVRhYmxlTm90aWZ5 UHJvdG9jb2xHdWlkICAgICAgICAgICAgICAjIFBST1RPQ09MIFBST0RVQ0VTDQo+ID4gPiArICBn RWZpQ2NNZWFzdXJlbWVudFByb3RvY29sR3VpZCAgICAgICAgICAgICAgICAgIyBQUk9UT0NPTA0K PiA+ID4gU09NRVRJTUVTX0NPTlNVTUVEDQo+ID4gPiArICBnRWZpQWNwaVNkdFByb3RvY29sR3Vp ZCAgICAgICAgICAgICAgICAgICAgICAgIyBQUk9UT0NPTA0KPiA+ID4gU09NRVRJTUVTX0NPTlNV TUVEDQo+ID4gPg0KPiA+ID4gIFtHdWlkc10NCj4gPiA+ICAgIGdSb290QnJpZGdlc0Nvbm5lY3Rl ZEV2ZW50R3JvdXBHdWlkDQo+ID4gPiBkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9BY3BpUGxhdGZvcm1E eGUvUWVtdUZ3Q2ZnQWNwaS5jDQo+ID4gPiBiL092bWZQa2cvQWNwaVBsYXRmb3JtRHhlL1FlbXVG d0NmZ0FjcGkuYw0KPiA+ID4gaW5kZXggZjBkODFkNmZkNzNkLi5mNDQyODUwYzJlMDAgMTAwNjQ0 DQo+ID4gPiAtLS0gYS9Pdm1mUGtnL0FjcGlQbGF0Zm9ybUR4ZS9RZW11RndDZmdBY3BpLmMNCj4g PiA+ICsrKyBiL092bWZQa2cvQWNwaVBsYXRmb3JtRHhlL1FlbXVGd0NmZ0FjcGkuYw0KPiA+ID4g QEAgLTE4LDYgKzE4LDggQEANCj4gPiA+ICAjaW5jbHVkZSA8TGlicmFyeS9RZW11RndDZmdMaWIu aD4gICAgICAgICAgICAgLy8gUWVtdUZ3Q2ZnRmluZEZpbGUoKQ0KPiA+ID4gICNpbmNsdWRlIDxM aWJyYXJ5L1FlbXVGd0NmZ1MzTGliLmg+ICAgICAgICAgICAvLyBRZW11RndDZmdTM0VuYWJsZWQo KQ0KPiA+ID4gICNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290U2VydmljZXNUYWJsZUxpYi5oPiAv LyBnQlMNCj4gPiA+ICsjaW5jbHVkZSA8UHJvdG9jb2wvQWNwaVN5c3RlbURlc2NyaXB0aW9uVGFi bGUuaD4NCj4gPiA+ICsjaW5jbHVkZSA8UHJvdG9jb2wvQ2NNZWFzdXJlbWVudC5oPg0KPiA+ID4N Cj4gPiA+ICAjaW5jbHVkZSAiQWNwaVBsYXRmb3JtLmgiDQo+ID4gPg0KPiA+ID4gQEAgLTgxMiwx MiArODE0LDE2OCBAQCBVbmRvQ21kV3JpdGVQb2ludGVyICgNCj4gPiA+ICAgICAgKSk7DQo+ID4g PiAgfQ0KPiA+ID4NCj4gPiA+ICsvKioNCj4gPiA+ICsgIE1lc3VyZSBmaXJtd2FyZSBBQ1BJIHRh YmxlIHdpdGggQ2NNZWFzdXJlbWVudCBQcm90b2NvbA0KPiA+ID4gKw0KPiA+ID4gKyAgQHBhcmFt W2luXSBDY1Byb3RvY29sICAgUG9pbnRlciB0byB0aGUgQ2NNZWFzdXJtZW50IFByb3RvY29sDQo+ ID4gPiArICBAcGFyYW1baW5dIEV2ZW50RGF0YSAgICBQb2ludGVyIHRvIHRoZSBldmVudCBkYXRh Lg0KPiA+ID4gKyAgQHBhcmFtW2luXSBFdmVudFNpemUgICAgU2l6ZSBvZiBldmVudCBkYXRhLg0K PiA+ID4gKyAgQHBhcmFtW2luXSBDZmdEYXRhQmFzZSAgQ29uZmlndXJhdGlvbiBkYXRhIGJhc2Ug YWRkcmVzcy4NCj4gPiA+ICsgIEBwYXJhbVtpbl0gRXZlbnRTaXplICAgIFNpemUgb2YgY29uZmln dXJhdGlvbiBkYXRhIC4NCj4gPiA+ICsgIEByZXR2YWwgIEVGSV9OT1RfRk9VTkQgICAgICAgICAg IENhbm5vdCBsb2NhdGUgcHJvdG9jb2wuDQo+ID4gPiArICBAcmV0dmFsICBFRklfT1VUX09GX1JF U09VUkNFUyAgICBBbGxvY2F0ZSB6ZXJvIHBvb2wgZmFpbHVyZS4NCj4gPiA+ICsgIEByZXR1cm4g ICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cyBjb2RlcyByZXR1cm5lZCBieQ0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRjZzJQcm90b2NvbC0+SGFzaExv Z0V4dGVuZEV2ZW50Lg0KPiA+ID4gKyoqLw0KPiA+ID4gK1NUQVRJQw0KPiA+ID4gK0VGSV9TVEFU VVMNCj4gPiA+ICtFRklBUEkNCj4gPiA+ICtDY01lYXN1cmVBY3BpVGFibGUgKA0KPiA+ID4gKyAg SU4gRUZJX0NDX01FQVNVUkVNRU5UX1BST1RPQ09MICAqQ2NQcm90b2NvbCwNCj4gPiA+ICsgIElO IENIQVI4ICAgICAgICAgICAgICAgICAgICAgICAgKkV2ZW50RGF0YSwNCj4gPiA+ICsgIElOIFVJ TlQzMiAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRTaXplLA0KPiA+ID4gKyAgSU4gRUZJX1BI WVNJQ0FMX0FERFJFU1MgICAgICAgICBDZmdEYXRhQmFzZSwNCj4gPiA+ICsgIElOIFVJTlROICAg ICAgICAgICAgICAgICAgICAgICAgQ2ZnRGF0YUxlbmd0aA0KPiA+ID4gKyAgKQ0KPiA+ID4gK3sN Cj4gPiA+ICsgIEVGSV9TVEFUVVMgICAgU3RhdHVzOw0KPiA+ID4gKyAgRUZJX0NDX0VWRU5UICAq Q2NFdmVudDsNCj4gPiA+ICsgIFVJTlQzMiAgICAgICAgTXJJbmRleDsNCj4gPiA+ICsNCj4gPiA+ ICsgIGlmIChDY1Byb3RvY29sID09IE5VTEwpIHsNCj4gPiA+ICsgICAgcmV0dXJuIEVGSV9JTlZB TElEX1BBUkFNRVRFUjsNCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICsgIFN0YXR1cyA9IENj UHJvdG9jb2wtPk1hcFBjclRvTXJJbmRleCAoQ2NQcm90b2NvbCwgMSwgJk1ySW5kZXgpOw0KPiA+ ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gKyAgICByZXR1cm4gRUZJX0lO VkFMSURfUEFSQU1FVEVSOw0KPiA+ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgQ2NFdmVudCA9 IEFsbG9jYXRlWmVyb1Bvb2wgKEV2ZW50U2l6ZSArIHNpemVvZiAoRUZJX0NDX0VWRU5UKSAtIHNp emVvZg0KPiA+ID4gKENjRXZlbnQtPkV2ZW50KSk7DQo+ID4gPiArICBpZiAoQ2NFdmVudCA9PSBO VUxMKSB7DQo+ID4gPiArICAgIHJldHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4gPiA+ICsg IH0NCj4gPiA+ICsNCj4gPiA+ICsgIENjRXZlbnQtPlNpemUgICAgICAgICAgICAgICAgID0gRXZl bnRTaXplICsgc2l6ZW9mIChFRklfQ0NfRVZFTlQpIC0gc2l6ZW9mDQo+ID4gPiAoQ2NFdmVudC0+ RXZlbnQpOw0KPiA+ID4gKyAgQ2NFdmVudC0+SGVhZGVyLkV2ZW50VHlwZSAgICAgPSBFVl9QTEFU Rk9STV9DT05GSUdfRkxBR1M7DQo+ID4gPiArICBDY0V2ZW50LT5IZWFkZXIuTXJJbmRleCAgICAg ICA9IE1ySW5kZXg7DQo+ID4gPiArICBDY0V2ZW50LT5IZWFkZXIuSGVhZGVyU2l6ZSAgICA9IHNp emVvZiAoRUZJX0NDX0VWRU5UX0hFQURFUik7DQo+ID4gPiArICBDY0V2ZW50LT5IZWFkZXIuSGVh ZGVyVmVyc2lvbiA9IEVGSV9DQ19FVkVOVF9IRUFERVJfVkVSU0lPTjsNCj4gPiA+ICsgIENvcHlN ZW0gKCZDY0V2ZW50LT5FdmVudFswXSwgRXZlbnREYXRhLCBFdmVudFNpemUpOw0KPiA+ID4gKw0K PiA+ID4gKyAgU3RhdHVzID0gQ2NQcm90b2NvbC0+SGFzaExvZ0V4dGVuZEV2ZW50ICgNCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgQ2NQcm90b2NvbCwNCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgMCwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgQ2ZnRGF0 YUJhc2UsDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIENmZ0RhdGFMZW5ndGgsDQo+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgIENjRXZlbnQNCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgKTsNCj4gPiA+ICsNCj4gPiA+ICsgIEZyZWVQb29sIChDY0V2ZW50KTsN Cj4gPiA+ICsNCj4gPiA+ICsgIHJldHVybiBTdGF0dXM7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ ID4gIC8vDQo+ID4gPiAgLy8gV2UnbGwgYmUgc2F2aW5nIHRoZSBrZXlzIG9mIGluc3RhbGxlZCB0 YWJsZXMgc28gdGhhdCB3ZSBjYW4gcm9sbCB0aGVtDQo+IGJhY2sNCj4gPiA+ICAvLyBpbiBjYXNl IG9mIGZhaWx1cmUuIDEyOCB0YWJsZXMgc2hvdWxkIGJlIGVub3VnaCBmb3IgYW55b25lIChUTSku DQo+ID4gPiAgLy8NCj4gPiA+ICAjZGVmaW5lIElOU1RBTExFRF9UQUJMRVNfTUFYICAxMjgNCj4g PiA+DQo+ID4gPiArLyoqDQo+ID4gPiArICogVGhlIEFDUEkgdGFibGVzIGFyZSBkb3dubG9hZGVk IGZyb20gUUVNVS4gRnJvbSB0aGUgc2VjdXJpdHkNCj4gPiA+IHBlcnNwZWN0aXZlIHRoZXNlIGFy ZQ0KPiA+ID4gKyAqIGV4dGVybmFsIGlucHV0cyBhbmQgc2hvdWxkIGJlIG1lYXN1cmVkIGFuZCBl eHRlbmRlZCBpZiBwb3NzaWJsZS4gU28NCj4gdGhhdA0KPiA+ID4gdGhleSBjYW4NCj4gPiA+ICsg KiBiZSBhdWRpdGVkIGxhdGVyLiBUaGUgbWVhc3VyZW1lbnQgcHJvdG9jb2wgbWF5IGJlIG5vdCBp bnN0YWxsZWQuIEluDQo+IHRoaXMNCj4gPiA+IGNhc2UgaXQNCj4gPiA+ICsgKiBzdGlsbCByZXR1 cm5zIEVGSV9TVUNDRVNTLg0KPiA+ID4gKyAqDQo+ID4gPiArICogQHBhcmFtIEluc3RhbGxlZEtl eSBQb2ludGVyIHRvIGFuIGFycmF5IHdoaWNoIGNvbnRhaW5zIHRoZSBrZXlzIG9mDQo+IHRoZQ0K PiA+ID4gaW5zdGFsbGVkIEFDUEkgdGFibGVzDQo+ID4gPiArICogQHBhcmFtIExlbmd0aCAgICAg ICBMZW5ndGggb2YgdGhlIGFycmF5DQo+ID4gPiArICogQHJldHZhbCBFRklfU1VDQ0VTUyBTdWNj ZXNzZnVsbHkgbWVhc3VyZSB0aGUgQUNQSSB0YWJsZXMNCj4gPiA+ICsgKiBAcmV0dmFsIE90aGVy cyAgICAgIE90aGVyIGVycm9ycyBhcyBpbmRpY2F0ZWQNCj4gPiA+ICsgKi8NCj4gPiA+ICtTVEFU SUMNCj4gPiA+ICtFRklfU1RBVFVTDQo+ID4gPiArTWVhc3VyZUluc3RhbGxlZFRhYmxlc0Zyb21R ZW11ICgNCj4gPiA+ICsgIElOIFVJTlROICAqSW5zdGFsbGVkS2V5LA0KPiA+ID4gKyAgSU4gSU5U MzIgIExlbmd0aA0KPiA+ID4gKyAgKQ0KPiA+ID4gK3sNCj4gPiA+ICsgIEVGSV9TVEFUVVMgICAg ICAgICAgICAgICAgICAgU3RhdHVzOw0KPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAg ICAgICBJbmRleDE7DQo+ID4gPiArICBJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4 MjsNCj4gPiA+ICsgIEVGSV9BQ1BJX1NEVF9IRUFERVIgICAgICAgICAgKlRhYmxlOw0KPiA+ID4g KyAgRUZJX0FDUElfVEFCTEVfVkVSU0lPTiAgICAgICBWZXJzaW9uOw0KPiA+ID4gKyAgVUlOVE4g ICAgICAgICAgICAgICAgICAgICAgICBUYWJsZUtleTsNCj4gPiA+ICsgIEVGSV9BQ1BJX1NEVF9Q Uk9UT0NPTCAgICAgICAgKkFjcGlTZHRQcm90b2NvbDsNCj4gPiA+ICsgIEVGSV9DQ19NRUFTVVJF TUVOVF9QUk9UT0NPTCAgKkNjUHJvdG9jb2wgPSBOVUxMOw0KPiA+ID4gKw0KPiA+ID4gKyAgU3Rh dHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoJmdFZmlDY01lYXN1cmVtZW50UHJvdG9jb2xHdWlk LCBOVUxMLA0KPiA+ID4gKFZPSUQgKiopJkNjUHJvdG9jb2wpOw0KPiA+ID4gKyAgaWYgKEVGSV9F UlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gKyAgICAvLw0KPiA+ID4gKyAgICAvLyBDY01lYXN1cmVt ZW50IHByb3RvY29sIGlzIG5vdCBpbnN0YWxsZWQuDQo+ID4gPiArICAgIC8vDQo+ID4gPiArICAg IHJldHVybiBFRklfU1VDQ0VTUzsNCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICsgIFN0YXR1 cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKCZnRWZpQWNwaVNkdFByb3RvY29sR3VpZCwgTlVMTCwg KHZvaWQNCj4gPiA+ICoqKSZBY3BpU2R0UHJvdG9jb2wpOw0KPiA+ID4gKyAgaWYgKEVGSV9FUlJP UiAoU3RhdHVzKSkgew0KPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiVW5hYmxlIHRv IGxvY2F0ZSBBQ1BJIFNEVCBwcm90b2NvbC5cbiIpKTsNCj4gPiA+ICsgICAgcmV0dXJuIFN0YXR1 czsNCj4gPiA+ICsgIH0NCj4gPiA+ICsNCj4gPiA+ICsgIEluZGV4MSA9IDA7DQo+ID4gPiArICBk byB7DQo+ID4gPiArICAgIFN0YXR1cyA9IEFjcGlTZHRQcm90b2NvbC0+R2V0QWNwaVRhYmxlIChJ bmRleDEsICZUYWJsZSwgJlZlcnNpb24sDQo+ID4gPiAmVGFibGVLZXkpOw0KPiA+ID4gKyAgICBp ZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiArICAgICAgaWYgKFN0YXR1cyA9PSBFRklf Tk9UX0ZPVU5EKSB7DQo+ID4gPiArICAgICAgICAvLw0KPiA+ID4gKyAgICAgICAgLy8gVGhlcmUg aXMgbm8gbW9yZSBBQ1BJIHRhYmxlcyBmb3VuZC4gU28gd2UgcmV0dXJuIHdpdGgNCj4gRUZJX1NV Q0NFU1MuDQo+ID4gPiArICAgICAgICAvLw0KPiA+ID4gKyAgICAgICAgU3RhdHVzID0gRUZJX1NV Q0NFU1M7DQo+ID4gPiArICAgICAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgICAgIGJyZWFrOw0KPiA+ ID4gKyAgICB9DQo+ID4gPiArDQo+ID4gPiArICAgIGZvciAoSW5kZXgyID0gMDsgSW5kZXgyIDwg TGVuZ3RoOyBJbmRleDIrKykgew0KPiA+ID4gKyAgICAgIGlmIChUYWJsZUtleSA9PSBJbnN0YWxs ZWRLZXlbSW5kZXgyXSkgew0KPiA+ID4gKyAgICAgICAgYnJlYWs7DQo+ID4gPiArICAgICAgfQ0K PiA+ID4gKyAgICB9DQo+ID4gPiArDQo+ID4gPiArICAgIGlmIChJbmRleDIgPCBMZW5ndGgpIHsN Cj4gPiA+ICsgICAgICBTdGF0dXMgPSBDY01lYXN1cmVBY3BpVGFibGUgKA0KPiA+ID4gKyAgICAg ICAgICAgICAgICAgQ2NQcm90b2NvbCwNCj4gPiA+ICsgICAgICAgICAgICAgICAgIChDSEFSOCAq KSZUYWJsZS0+U2lnbmF0dXJlLA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgc2l6ZW9mIChUYWJs ZS0+U2lnbmF0dXJlKSwNCj4gPiA+ICsgICAgICAgICAgICAgICAgIChFRklfUEhZU0lDQUxfQURE UkVTUykoVUlOVE4pVGFibGUsDQo+ID4gPiArICAgICAgICAgICAgICAgICBUYWJsZS0+TGVuZ3Ro DQo+ID4gPiArICAgICAgICAgICAgICAgICApOw0KPiA+ID4gKyAgICAgIGlmIChFRklfRVJST1Ig KFN0YXR1cykpIHsNCj4gPiA+ICsgICAgICAgIERFQlVHICgoDQo+ID4gPiArICAgICAgICAgIERF QlVHX0VSUk9SLA0KPiA+ID4gKyAgICAgICAgICAiTWVhc3VyZSBBQ1BJIHRhYmxlIFslLTQuNGFd IHdpdGggU2l6ZSA9IDB4JXggZmFpbGVkISBTdGF0dXMNCj4gPSAlclxuIiwNCj4gPiA+ICsgICAg ICAgICAgKENPTlNUIENIQVI4ICopJlRhYmxlLT5TaWduYXR1cmUsDQo+ID4gPiArICAgICAgICAg IFRhYmxlLT5MZW5ndGgsDQo+ID4gPiArICAgICAgICAgIFN0YXR1cw0KPiA+ID4gKyAgICAgICAg ICApKTsNCj4gPiA+ICsgICAgICAgIGJyZWFrOw0KPiA+ID4gKyAgICAgIH0gZWxzZSB7DQo+ID4g PiArICAgICAgICBERUJVRyAoKA0KPiA+ID4gKyAgICAgICAgICBERUJVR19JTkZPLA0KPiA+ID4g KyAgICAgICAgICAiTWVhc3VyZSBBQ1BJIHRhYmxlIFslLTQuNGFdIHdpdGggU2l6ZSA9IDB4JXhc biIsDQo+ID4gPiArICAgICAgICAgIChDT05TVCBDSEFSOCAqKSZUYWJsZS0+U2lnbmF0dXJlLA0K PiA+ID4gKyAgICAgICAgICBUYWJsZS0+TGVuZ3RoDQo+ID4gPiArICAgICAgICAgICkpOw0KPiA+ ID4gKyAgICAgIH0NCj4gPiA+ICsgICAgfQ0KPiA+ID4gKw0KPiA+ID4gKyAgICBJbmRleDErKzsN Cj4gPiA+ICsgIH0gd2hpbGUgKFRSVUUpOw0KPiA+ID4gKw0KPiA+ID4gKyAgcmV0dXJuIFN0YXR1 czsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiAgLyoqDQo+ID4gPiAgICBQcm9jZXNzIGEgUUVN VV9MT0FERVJfQUREX1BPSU5URVIgY29tbWFuZCBpbiBvcmRlciB0byBzZWUgaWYgaXRzDQo+ID4g PiB0YXJnZXQgYnl0ZQ0KPiA+ID4gICAgYXJyYXkgaXMgYW4gQUNQSSB0YWJsZSwgYW5kIGlmIHNv LCBpbnN0YWxsIGl0Lg0KPiA+ID4gQEAgLTEyNDcsNiArMTQwNSwxNiBAQCBJbnN0YWxsUWVtdUZ3 Q2ZnVGFibGVzICgNCj4gPiA+ICAgICAgfQ0KPiA+ID4gICAgfQ0KPiA+ID4NCj4gPiA+ICsgIC8v DQo+ID4gPiArICAvLyBNZWFzdXJlIHRoZSBBQ1BJIHRhYmxlcyB3aGljaCBhcmUgZG93bmxvYWRl ZCBmcm9tIFFFTVUNCj4gPiA+ICsgIC8vDQo+ID4gPiArICBpZiAoSW5zdGFsbGVkID4gMCkgew0K PiA+ID4gKyAgICBTdGF0dXMgPSBNZWFzdXJlSW5zdGFsbGVkVGFibGVzRnJvbVFlbXUgKEluc3Rh bGxlZEtleSwgSW5zdGFsbGVkKTsNCj4gPiA+ICsgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkg ew0KPiA+ID4gKyAgICAgIGdvdG8gVW5pbnN0YWxsQWNwaVRhYmxlczsNCj4gPiA+ICsgICAgfQ0K PiA+ID4gKyAgfQ0KPiA+ID4gKw0KPiA+ID4gICAgLy8NCj4gPiA+ICAgIC8vIEluc3RhbGwgYSBw cm90b2NvbCB0byBub3RpZnkgdGhhdCB0aGUgQUNQSSB0YWJsZSBwcm92aWRlZCBieSBRZW11IGlz DQo+ID4gPiAgICAvLyByZWFkeS4NCj4gPiA+IC0tDQo+ID4gPiAyLjI5LjIud2luZG93cy4yDQo+ ID4NCj4gPg0KPiA+DQo+ID4gDQo+ID4NCj4gPg0K