From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web12.3826.1612417218381475292 for ; Wed, 03 Feb 2021 21:40:18 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=zp2cl1QV; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: siyuan.fu@intel.com) IronPort-SDR: 93z9M5aRCWnUQ6+K7B3dTNTCyN5KN9xTFWIU/SXD1Xa6VYN/8HKJTGlW6ZS/yDBIH8ndBltron WaffqW/LvI+A== X-IronPort-AV: E=McAfee;i="6000,8403,9884"; a="181319285" X-IronPort-AV: E=Sophos;i="5.79,400,1602572400"; d="scan'208";a="181319285" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Feb 2021 21:40:16 -0800 IronPort-SDR: Jv0s+tEMxsKIbRKp30m4eMc6vWZ6jSKRIMXOjprWihTzg/zW882a4fFNtaGR7CUKKl60sfWLrq KKDyZ+520DCg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,400,1602572400"; d="scan'208";a="481534309" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga001.fm.intel.com with ESMTP; 03 Feb 2021 21:40:16 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) 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.2106.2; Wed, 3 Feb 2021 21:40:15 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Wed, 3 Feb 2021 21:40:15 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.105) 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.1713.5; Wed, 3 Feb 2021 21:40:15 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LmWYY50ohZu+hdDrINarQia+CoWhbg2pBBXT1IZTMmgU/x5WGoTJEK5Xnee3m1+5czY5G3YlU8eHcKW0N+XdujR9pqpPNE4up8GjxOOXnUqQTcm+gJcz3tcRVQHD3FzRVGeNDkTvZq75wF9WE+f+VqS7mQzQaqnB3NbGhTOysFi1kr8GvHK0uUUKiKOv8Ir4QhS1UfzIpxz66UdB7DOKV7fgXMmvMyHgE0cXQbXB13KtdL2YrTWCg28D9aB1h7YR3hEFkWrdNIzJjVl1lK7mbWKo/2lfq1Vgo5brjrtR2YB/QAhlQTpSO/IaQ0qsH4nEg92YNYw2aPdyMM+0CKUx5w== 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=Rk3AC87yiQPCrY4sFKLMelf/5K16X9R7D1ely3Dbo4U=; b=EWZbsQa2AmzIcx7GDIM7so2wItVTApjcgTz1VguaSUAjQiICQ9bnrfQaF1XfZPuCgpPMMao4d/FZo/RrxcKJUv0OPUbXly0qBHV1r1DzSbSBOGafcvX6PS8zf7s7niVBMZAMNOfO1xPQy8JsmKWU0Rm4fsfuvGQWtcT7uff5YY7oqFxJ5/vV/MU03POHR0n+x+owHDhilUw92GrIQhJMRmJnSk/lsgQdEib9m2YOsB+u5H3kgVVw5oXG51KEBzIzb2Wnt4YPq7vAHRitqz8Y7Y1aDIiaIvDky83nP/1tx6DdwCofFeQEc5g8A0h8bLzbOpsyg9rQ6dbbsi3f0fnqpw== 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=Rk3AC87yiQPCrY4sFKLMelf/5K16X9R7D1ely3Dbo4U=; b=zp2cl1QVAMA7GYWxbfP6MM3TsQorjUgAYahpZpJUC3KE3O+9fP4JB6/DIYCIOoB9A8hLfGtRM3TOnJDZoLevdVw0dBBh4aifzAzg4/Dvp/zOyoMFzFvij0J+PtOf6McvEwSnBroGaI66QbkdJrMNS27BbVzbZehIPw9/YUoiDdQ= Received: from SN6PR11MB2863.namprd11.prod.outlook.com (2603:10b6:805:5c::25) by SN6PR11MB2912.namprd11.prod.outlook.com (2603:10b6:805:cb::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.16; Thu, 4 Feb 2021 05:40:14 +0000 Received: from SN6PR11MB2863.namprd11.prod.outlook.com ([fe80::c598:cba8:b62e:6731]) by SN6PR11MB2863.namprd11.prod.outlook.com ([fe80::c598:cba8:b62e:6731%6]) with mapi id 15.20.3825.020; Thu, 4 Feb 2021 05:40:14 +0000 From: "Siyuan, Fu" To: "Li, Aaron" , "devel@edk2.groups.io" CC: "Ni, Ray" , "Chaganty, Rangasai V" Subject: Re: [PATCH v1 1/1] IntelSiliconPkg/ShadowMicrocodePei: Add microcode header verification. Thread-Topic: [PATCH v1 1/1] IntelSiliconPkg/ShadowMicrocodePei: Add microcode header verification. Thread-Index: AQHW+fsMTJwawgfd0Umfs5Cw9NkcCqpHfGeg Date: Thu, 4 Feb 2021 05:40:13 +0000 Message-ID: References: <20210203070554.1981-1-aaron.li@intel.com> In-Reply-To: <20210203070554.1981-1-aaron.li@intel.com> Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.208] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8317a815-2434-48f6-d4d9-08d8c8cf5876 x-ms-traffictypediagnostic: SN6PR11MB2912: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4714; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2M+oKQIa0Jm7qHJYcsAjhfwdeUtyNB/jMHkeYGuOLfQq21N3fRVeEfod4/QGaFaWBzwdVOX7sUJBfPVPRKvw46qUSFg2we7hyIKqLxzOX6Y0/dlxKZb9CINsf40/3kzlLM4bQxLMWxC1UccMQihYcAYKD1hGPOtRfUudh3WAmWLy2662ubwaFW0fzvmgWwxIp7ln23S2HIGuAv9y+K/MBUa4D9l5gLQo/e8b+DlgIB5a+Zg5/5hfAsRkQeKl1TD7lN6G12K0G5lhlVIaQfhG217eGpy5NjGFaU9JT3T5UxjWeJc0tFoeJqxtd/QEVGKmquQF5uyMp1R7Vbiq1TaRH/nvTsYZA0RQJI0F3P8SpyD6I+2oEUv/uuGCQD5AY5/OKtjS9msLgqI3F6W7sbsD58af4k1++8NzrDCs4Te7TiS77qgCUbH64ZnGHUzON3wf0vFvCtC++ZmVbQ/MHpsBtXc5hvq5FL2Q0H+Tcy5ZLB/Qj9wE1m75ZwqsjeKfl9MZosJX+MfDXC/MXdHBkn0tkiUc9wMPyxVddhuedzCJOEKEDPwIzGBapEcN2q408H0Ib98U+PXVIBjm2N9OLl6fxg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2863.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(376002)(366004)(136003)(346002)(39860400002)(396003)(966005)(66476007)(316002)(64756008)(15650500001)(478600001)(54906003)(8676002)(110136005)(76116006)(86362001)(71200400001)(66946007)(55016002)(186003)(26005)(66446008)(9686003)(66556008)(7696005)(5660300002)(107886003)(53546011)(6506007)(8936002)(2906002)(33656002)(4326008)(83380400001)(52536014);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?gb2312?B?K3JjOC9WblNvMXBtSDVRTDJWREY5dkNrRG1QUTY0QUVaM0dybVpQTDMycjJK?= =?gb2312?B?K0pldXpVeUJEL29IYWRhUmdkTUVaL3VHdW84amxBdmErV01ib2VTUDllQWRR?= =?gb2312?B?eC9tRjZzZGxIL1Z6YzNURWZoVStYeCtGWlA1Zld0cWhyOTFBMUdxMU9oNnRo?= =?gb2312?B?eHVKSmlsZ3JzTTRnWmhNTWo3Ym03RHVhUFZTaWU4akl6L25PbzdFS2JrVmVR?= =?gb2312?B?QlJlcU5iajF6NlRkWmpocEpUOXlNRllsRkJ1VnJZSm12TXlrY2RsNzhiOFpK?= =?gb2312?B?dVp3NDNUem9Xa1NpbFFGNko1RUt3MWI5Njl6UTlUNkg5dnV4WXVGMjI3R09X?= =?gb2312?B?WWh4RzlvTlo0RUpZOWxkQWx2OHdtRlNST3pKNnFrdTVkcE1NZFlmOG9DdjJ1?= =?gb2312?B?cHloM01rU1NBUElwdnNGL04zSHZpcHpCSW5oeS9MWmxJQklURHlDek43UHY2?= =?gb2312?B?RGJuSzAwd0ZIY3FjOTYwUGVGeVVGZW1temdwVWR4NFFjd2xwZFhpWW1QNlBi?= =?gb2312?B?RmhXWS90VEc0eTNHRm5NaUVDVlJacTVEYWZ2Uy92bzVwUTB0WWxaTHBuQmhL?= =?gb2312?B?RXNDYWEyeTV0TW9ERko5S3N5QWNJNWpyUW5nK3RrZ2ZCQVlvZzhnTm41UjFv?= =?gb2312?B?RlFrWDZoejBWQU5yY2lhL3gxQ0NBTHFXU0RZK1FtT1ZNb0d2ZFdZNmxERm8v?= =?gb2312?B?NE83K0NZNlJicUJCM2VEV0RycDlIVzcvbzRSYzJIOTBjeFpKSWlwai84VUZZ?= =?gb2312?B?N1A1L1RqQ1ZYM1c1SjRMZHFBUS8rcWV2c0QybEFkVXYxM0pzclN1aFRmcTJL?= =?gb2312?B?TVlvblkzMGVrYW9GT2tzQjdOdnE5a2xMZ1JBVTZJeXdnaHRZZEZzZ25aODAx?= =?gb2312?B?VDdLN0k0ZkpRWHlGbXU1c3FGRkRMakZvaGxmTm9zSG9tbnNkTUlBOEg4VllP?= =?gb2312?B?eEp6Y3lwbWdNRFpLdUd3ZjBSVEljbUNKL09LSzd4eWZuVmxDS3ZMem9WY1B4?= =?gb2312?B?dWRKZGpEWENsZ3JlYmdkYVd1R0NFc2pzWnovcTB1MjlwZEp0UEN5ayt0bWFE?= =?gb2312?B?Z0hHSnpCUTQ5aVdrWEtUK3JOcUw2M3p6RlA5d2h4dk8raTN2eFVCSmplVEVL?= =?gb2312?B?dGNNandkSUEwcEVTUHFiWHdvUFNNMEtFcnNOY0xaSVFlblJSK3BqTjc3VTFY?= =?gb2312?B?dktyYnJNeG5ubXNGbG8xbmFYRlNJZ2pzcy96TlYrR3lRRFNOSk9jcDNIM3NV?= =?gb2312?B?Y0JMNHBRdkdzcjFmYUxYZ2xUNitvYXJjL1g4WHZmNlVtOHd0T1RmSDYwbnpn?= =?gb2312?B?MDZGMmdiRU5xeVhrYkszMk5RcDh4TnJXVlh5SThpUWlNTUV5Uk1rLy91MDNk?= =?gb2312?B?ZVVldmtwNXJVMmdRd3FwSVZBeUZXRmU3RHFETzE2LzhKVGR1emFmc3pUU0ND?= =?gb2312?B?SlVuQWFiY3ovOHlHUC9zYmJZRDdYNmNqN1JOa2laN1plWVRBUTlnYmlNdDZZ?= =?gb2312?B?RVpVeVVMNTFSWEtMclVIc2NQRTlGWGRBZmJrbGpvV3Z3dTluRlgrVnd0dUZt?= =?gb2312?B?S2ZNc2FkVzh1OUZqM0ZMcjhGeU5GMkh5dEk0TGJFaVl3Y3dqUkw5ZTgxUU9o?= =?gb2312?B?MzJRZEcrTWt2eE1vSUhXNEtHZnZsQ2syTGIvdHhKY0N4SXBPTVM2SjM0RDA4?= =?gb2312?B?R1U3TjhJZUNrQUxhU3ZKaU5ZakxzUjlhZ1JCaXg0bm9OcEdUOUlZWExhZGlq?= =?gb2312?Q?WXJDSC6bS12LdlEWC5py6JlgLfFkPXj5HXVgG9l?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2863.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8317a815-2434-48f6-d4d9-08d8c8cf5876 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Feb 2021 05:40:13.9374 (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: pMhNI6ubd8ky8tnSUCwfESmDuzTpwX0quhThsMwFFXmd+03sM9CuTFOeQj6ROtiPcB3lwNPqkuPxIOUWtq5Iyw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2912 Return-Path: siyuan.fu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IFNpeXVhbiBGdSA8c2l5dWFuLmZ1QGludGVsLmNvbT4NCg0KPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMaSwgQWFyb24gPGFhcm9uLmxpQGludGVsLmNv bT4NCj4gU2VudDogMjAyMcTqMtTCM8jVIDE1OjA2DQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5p bw0KPiBDYzogTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IENoYWdhbnR5LCBSYW5nYXNhaSBW DQo+IDxyYW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT47IEZ1LCBTaXl1YW4gPHNpeXVhbi5m dUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCB2MSAxLzFdIEludGVsU2lsaWNvblBrZy9T aGFkb3dNaWNyb2NvZGVQZWk6IEFkZCBtaWNyb2NvZGUNCj4gaGVhZGVyIHZlcmlmaWNhdGlvbi4N Cj4gDQo+IEJaOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lk PTMxOTYNCj4gDQo+IE1pY3JvY29kZSBoZWFkZXIgc2hvdWxkIGJlIGNoZWNrZWQgYmVmb3JlIGNh bGxpbmcNCj4gSXNNaWNyb2NvZGVQYXRjaE5lZWRMb2FkKCkuIFRoaXMgaXMgdG8gbWFrZSBzdXJl IGdhcmJhZ2UgdmFsdWUgYWZ0ZXINCj4gcmVtb3ZlIG1pY3JvY29kZSBmcm9tIEZWIHdvdWxkIG5v dCBjYXVzZSBzdGFjayBvdmVyZmxvdyBpbg0KPiBJc01pY3JvY29kZVBhdGNoTmVlZExvYWQoKS4N Cj4gDQo+IFNpZ25lZC1vZmYtYnk6IEFhcm9uIExpIDxhYXJvbi5saUBpbnRlbC5jb20+DQo+IENj OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+IENjOiBSYW5nYXNhaSBWIENoYWdhbnR5IDxy YW5nYXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gQ2M6IFNpeXVhbiBGdSA8c2l5dWFuLmZ1 QGludGVsLmNvbT4NCj4gLS0tDQo+IA0KPiBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9G ZWF0dXJlL1NoYWRvd01pY3JvY29kZS9TaGFkb3dNaWNyb2NvZGVQZWkuYw0KPiB8IDMwICsrKysr KysrKysrKysrKysrKystDQo+ICAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQ0KPiANCj4gZGlmZiAtLWdpdA0KPiBhL1NpbGljb24vSW50ZWwvSW50ZWxTaWxp Y29uUGtnL0ZlYXR1cmUvU2hhZG93TWljcm9jb2RlL1NoYWRvd01pY3JvY29kZVBlDQo+IGkuYw0K PiBiL1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvU2hhZG93TWljcm9jb2Rl L1NoYWRvd01pY3JvY29kZVBlDQo+IGkuYw0KPiBpbmRleCAxNDk0Mzk3YThlMzYuLjk4YTdhZWQ2 OTc1NyAxMDA2NDQNCj4gLS0tDQo+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVh dHVyZS9TaGFkb3dNaWNyb2NvZGUvU2hhZG93TWljcm9jb2RlUGUNCj4gaS5jDQo+ICsrKw0KPiBi L1NpbGljb24vSW50ZWwvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvU2hhZG93TWljcm9jb2RlL1No YWRvd01pY3JvY29kZVBlDQo+IGkuYw0KPiBAQCAtNDAyLDYgKzQwMiw3IEBAIFNoYWRvd01pY3Jv Y29kZSAoDQo+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhQYXRjaE51 bWJlcjsNCj4gDQo+ICAgIENQVV9NSUNST0NPREVfSEVBREVSICAgICAgICAgICAgICAqTWljcm9j b2RlRW50cnlQb2ludDsNCj4gDQo+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQYXRjaENvdW50Ow0KPiANCj4gKyAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IERhdGFTaXplOw0KPiANCj4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRv dGFsU2l6ZTsNCj4gDQo+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3Rh bExvYWRTaXplOw0KPiANCj4gDQo+IA0KPiBAQCAtNDQ2LDcgKzQ0NywzNCBAQCBTaGFkb3dNaWNy b2NvZGUgKA0KPiAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBFbnRyeU51bTsgSW5kZXgrKykg ew0KPiANCj4gICAgICBpZiAoRml0RW50cnlbSW5kZXhdLlR5cGUgPT0gRklUX1RZUEVfMDFfTUlD Uk9DT0RFKSB7DQo+IA0KPiAgICAgICAgTWljcm9jb2RlRW50cnlQb2ludCA9IChDUFVfTUlDUk9D T0RFX0hFQURFUiAqKSAoVUlOVE4pDQo+IEZpdEVudHJ5W0luZGV4XS5BZGRyZXNzOw0KPiANCj4g LSAgICAgIFRvdGFsU2l6ZSA9IChNaWNyb2NvZGVFbnRyeVBvaW50LT5EYXRhU2l6ZSA9PSAwKSA/ IDIwNDggOg0KPiBNaWNyb2NvZGVFbnRyeVBvaW50LT5Ub3RhbFNpemU7DQo+IA0KPiArDQo+IA0K PiArICAgICAgaWYgKCooVUlOVDMyICopIE1pY3JvY29kZUVudHJ5UG9pbnQgPT0gMHhGRkZGRkZG Rikgew0KPiANCj4gKyAgICAgICAgLy8NCj4gDQo+ICsgICAgICAgIC8vIEFuIGVtcHR5IHNsb3Qg Zm9yIHJlc2VydmVkIG1pY3JvY29kZSB1cGRhdGUsIHNraXAgdG8gY2hlY2sgbmV4dCBlbnRyeS4N Cj4gDQo+ICsgICAgICAgIC8vDQo+IA0KPiArICAgICAgICBjb250aW51ZTsNCj4gDQo+ICsgICAg ICB9DQo+IA0KPiArDQo+IA0KPiArICAgICAgaWYgKE1pY3JvY29kZUVudHJ5UG9pbnQtPkhlYWRl clZlcnNpb24gIT0gMHgxKSB7DQo+IA0KPiArICAgICAgICAvLw0KPiANCj4gKyAgICAgICAgLy8g Tm90IGEgdmFsaWQgbWljcm9jb2RlIGhlYWRlciwgc2tpcCB0byBjaGVjayBuZXh0IGVudHJ5Lg0K PiANCj4gKyAgICAgICAgLy8NCj4gDQo+ICsgICAgICAgIGNvbnRpbnVlOw0KPiANCj4gKyAgICAg IH0NCj4gDQo+ICsNCj4gDQo+ICsgICAgICBEYXRhU2l6ZSAgPSBNaWNyb2NvZGVFbnRyeVBvaW50 LT5EYXRhU2l6ZTsNCj4gDQo+ICsgICAgICBUb3RhbFNpemUgPSAoRGF0YVNpemUgPT0gMCkgPyAy MDQ4IDogTWljcm9jb2RlRW50cnlQb2ludC0+VG90YWxTaXplOw0KPiANCj4gKyAgICAgIGlmICgg KFVJTlROKU1pY3JvY29kZUVudHJ5UG9pbnQgPiAoTUFYX0FERFJFU1MgLSBUb3RhbFNpemUpIHx8 DQo+IA0KPiArICAgICAgICAgICAoRGF0YVNpemUgJiAweDMpICE9IDAgfHwNCj4gDQo+ICsgICAg ICAgICAgIChUb3RhbFNpemUgJiAoU0laRV8xS0IgLSAxKSkgIT0gMCB8fA0KPiANCj4gKyAgICAg ICAgICAgVG90YWxTaXplIDwgRGF0YVNpemUNCj4gDQo+ICsgICAgICAgICkgew0KPiANCj4gKyAg ICAgICAgLy8NCj4gDQo+ICsgICAgICAgIC8vIE5vdCBhIHZhbGlkIG1pY3JvY29kZSBoZWFkZXIs IHNraXAgdG8gY2hlY2sgbmV4dCBlbnRyeS4NCj4gDQo+ICsgICAgICAgIC8vDQo+IA0KPiArICAg ICAgICBjb250aW51ZTsNCj4gDQo+ICsgICAgICB9DQo+IA0KPiArDQo+IA0KPiAgICAgICAgaWYg KElzTWljcm9jb2RlUGF0Y2hOZWVkTG9hZCAoQ3B1SWRDb3VudCwgTWljcm9jb2RlQ3B1SWQsDQo+ IE1pY3JvY29kZUVudHJ5UG9pbnQpKSB7DQo+IA0KPiAgICAgICAgICBQYXRjaEluZm9CdWZmZXJb UGF0Y2hDb3VudF0uQWRkcmVzcyAgICAgPSAoVUlOVE4pIE1pY3JvY29kZUVudHJ5UG9pbnQ7DQo+ IA0KPiAgICAgICAgICBQYXRjaEluZm9CdWZmZXJbUGF0Y2hDb3VudF0uU2l6ZSAgICAgICAgPSBU b3RhbFNpemU7DQo+IA0KPiAtLQ0KPiAyLjI5LjIud2luZG93cy4yDQoNCg==