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.web09.7715.1635311975306946370 for ; Tue, 26 Oct 2021 22:19:35 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=XENqRBfI; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: min.m.xu@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10149"; a="316281598" X-IronPort-AV: E=Sophos;i="5.87,186,1631602800"; d="scan'208";a="316281598" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Oct 2021 22:19:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,186,1631602800"; d="scan'208";a="537395232" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP; 26 Oct 2021 22:19:33 -0700 Received: from orsmsx604.amr.corp.intel.com (10.22.229.17) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 26 Oct 2021 22:19:33 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 26 Oct 2021 22:19:33 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.42) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 26 Oct 2021 22:19:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T/HK/Lx3OVY/2k95CQ+jb/MGdAh1lq8kK3EY4r/19XLpiGS3yZJiX2NJWKpjLxrqfaS8fujsmEh4lbo7FAi1J1szEA7j7beezEPWhRoYDETg+s+KdvdSpCi1isVMxCh8rgoal1WFZgNrn3vFzPZy/rn5xNFkB0snH11phmhEuaMXAsNSx08Z8G+SzMp4kssk2NHRmeb51Vfxr20RTw0T181KBSx+mFVvQc8s6o4hq0YCsp4gj+wi5mrExgWL+Mc3WgFQQbB8sUpOcCf9jGaaKItZawwfeKb5xXS0Z/ifmZOkQESe4BkGtD9WqfBUbD00pRZHC2nugjFA4WBnvA6Mrg== 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=D3pmempErfEnRtDpfn+yYpI4E8pNmoXa7lqDeBweqBY=; b=UU7bN6vKmP38MFbqhc0/kV6Kiu1x3qhBx1VK6bA37DshvZbkzwqfwKuO6wo/TS82+BhaAaWG/zXhbWAKpx6h1UfEbz0sM0Fj/q05HLGBdTU2wm7sbLYo9ASnbMfakmwsZLJKcQMW0lyIlH7H1NMaCL6ebjli2IXfHIVw4ZZo3F31SjJAzAGCRBpsaB+8Ob53aGzyEkbJgRnvxCgu0gWYbSJ//uOb/9WhxMDRZ5aiQExNz5pEBXymKgiHLT9yN3QysxawQlA4gfTEGYImZx+WpAtcPNYoORF2HgKck7uvzDHEPhezw2Aff8BQp+tHYm6PEqlkPIK3z2vwWbpQxJ/xCg== 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=D3pmempErfEnRtDpfn+yYpI4E8pNmoXa7lqDeBweqBY=; b=XENqRBfIgt7MOlW++4aga3E3fSigJpI1T3GfIEtxh0gU3nIc13uPU3VFKeo1tsYiCQeyj/P8lx3pIDUPNi4iBacJk2yS2CankmDAn4UFSdABbQHQQVKhFOgVPI0d5q0nUREt9QLoNjHhRNodwtMffwHtZ1PxFhKTMQObylg5zhM= Received: from PH0PR11MB5064.namprd11.prod.outlook.com (2603:10b6:510:3b::15) by PH0PR11MB4920.namprd11.prod.outlook.com (2603:10b6:510:41::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.15; Wed, 27 Oct 2021 05:19:31 +0000 Received: from PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::7deb:6c36:73c2:f0d4]) by PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::7deb:6c36:73c2:f0d4%4]) with mapi id 15.20.4649.014; Wed, 27 Oct 2021 05:19:31 +0000 From: "Min Xu" To: "devel@edk2.groups.io" , "sami.mujawar@arm.com" CC: "Kinney, Michael D" , Liming Gao , "Liu, Zhiguang" , "Yao, Jiewen" , "Wang, Jian J" , nd , Joey Gouly Subject: Re: [edk2-devel] [PATCH V2 2/3] SecurityPkg: Support TdProtocol in DxeTpm2MeasureBootLib Thread-Topic: [edk2-devel] [PATCH V2 2/3] SecurityPkg: Support TdProtocol in DxeTpm2MeasureBootLib Thread-Index: AQHXvARe7qm9cG45eEuA+NX5SZqipavaYLaAgAveIjA= Date: Wed, 27 Oct 2021 05:19:31 +0000 Message-ID: References: <09c7d8dd1c1856d8d0295064c8b833dd3d85e8c4.1633661591.git.min.m.xu@intel.com> <8f972fd2-30fb-9eb2-0ec4-f10031faff04@arm.com> In-Reply-To: <8f972fd2-30fb-9eb2-0ec4-f10031faff04@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.6.200.16 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-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: ca2c48d9-435a-478e-52ec-08d999095b86 x-ms-traffictypediagnostic: PH0PR11MB4920: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5516; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MfSI3Rk/rkJYYXhhNFk3ZWKy0R1OL0QlrHoifRjKkj1dOrIzjDRJ4nh2KJ5JlGm34iWWc2WV+t9JY5pM/1ZWtaMp815KtteYYY01+4dqLbRSR3EhSQo3lUuHMBQYUnoUQQeBG4mvl4rY1yunCf1dEWL1ou2yIFdmmC6prpj66ycWVY9hasRTqjPvKU1nqc2QtrWdTSFKonOnt43WWfDgGn7bTy0nLGRM0WbzfxhSOEw+Xb5Pzto9nfS5mVJ2VULXvRT14tv9bX1bdEV+XtQrJRxrpEKsTyFR6txJfCjavEEyuSgnb3dT1Xzn/wKDsDggbBchThlxnugjJYQx2vUHN45CuwagKlkH43IIzK1Th+Ju9l4RUvSxm2q7gMrd2+9xplRntujsc3Kj7eS5ax38fuUv3RLmYc2CwxINsOoYFBMsGlHwlePHB0tXHwrP6kPC7eDCctByWb8bi8QfGaiCgGpmakOc/hbm5xDEvWvQlETFQr3rCoDYjRabkIOGPnr85AGA6upXWqPEwA9ESEb6P2FV2Z9S7kG2HhdBmUa43+Hfg71/Wa4ohbITw3Vc3db23fw8Q7F4KsMWXG9TjcPiQlGjJ4jpMK77++c+idJDie2n5KsdokvUiVabPNlulA4lCfELi1YTmfz7R5lfAq3g+r9SocpmKlp9LfLFG0DajTpvEsTdL4BMYNDVHF4hUdlwlnNMPLTu23H0RT0I1Q/YNQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5064.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(366004)(76116006)(66446008)(82960400001)(66556008)(64756008)(66476007)(38100700002)(66946007)(122000001)(19627235002)(316002)(83380400001)(15650500001)(6506007)(186003)(71200400001)(52536014)(33656002)(4326008)(508600001)(2906002)(54906003)(110136005)(26005)(7696005)(8936002)(9686003)(8676002)(86362001)(5660300002)(55016002)(38070700005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bTZnWVZabEt0bUJHVzdzZVcxenVVZW5yZzU4OE5oQlNSUXBPVXR5Yk1HSWgw?= =?utf-8?B?akhZaXBIVm5WdlhqenR2RDJRcU8yNVVoUWR2TjJlNlJaL3dxd3N3OENjL2Jr?= =?utf-8?B?SG1JM0FaS2E5UXVaVy9MeVQ3QktSbkJ4cnRHczluREtGZ2pubGlib080clMr?= =?utf-8?B?Qzcvcyt2NUVxZjh6MEE1T05mazd1aGxRNnRWWmgzTTNWSWlPRkl6MmVmVHJG?= =?utf-8?B?UUVzNUEyWTJEcnZIb084UmY5Y2w1RXl0QXRCVFR2MTMrNkF5MjRrVGVpWDFh?= =?utf-8?B?TGU3c0Z3eU9lS3ZJS1ZZbzlPenV6KzBGcXZ1RzNNVDRCOGNCQTY3YjErU1Zq?= =?utf-8?B?azVUTkk0VGphczFNQU5BcmQ3M3p0VlZ4bEFVUFdNNWVzWWNCaks4dXg4TFA0?= =?utf-8?B?c3FlcHFyYmtDR05zeTZKL0pTSHRqWGdQMCtCbTIyOVpWUWFuTlU5RW45Vm1D?= =?utf-8?B?cHZLc200N0thcTJpQkJBWkhhT2d0dmY1ZzBYb2hYaWowUlNHMlM1Q3NLdHY3?= =?utf-8?B?YklqOWd5bzdHWEl0TnJmUm9vZjJsY1hpSTNabDZJSXY2VG5BVFNuY0xmVjdB?= =?utf-8?B?M3E4ckhROEFCUjVuMVRma3FrMklEaHNRYUdESlhGOGc2eTg2NjRldzVwV3Fi?= =?utf-8?B?dityZ0RNQWlBdkNGTUNrelV4Ylp6bERZaXV4RzdXVkN0cnQweFZtaFdYR0p2?= =?utf-8?B?bmFodXFzeUdsRzZjUDlWaEVUVnNNZjVYMmE4RXp4VlZ1T2VxUVJBSWpxd1ZV?= =?utf-8?B?ditBMmtyY1VjNFFrWUVjeXdhY29ibXZoRnBjQVlwQjVYRVZ4cS9wVDVnd0FV?= =?utf-8?B?eWVlSEl2N2xNWDdSYVFuN0dxcHBvNi9WcXFSNVdxcnl3WWtrdzExUitWZGF0?= =?utf-8?B?bHlKbHE3SysyTnhUcEQ4Z3EwWVZHaHZvVzlZVkJLT2wyaVprc1poQnRGdWdR?= =?utf-8?B?TThBRWtYRGlMbjB2RE1NRU84V2lPZG1Ib3gzT1FIMVdSV0FIUGZSRUJyZ0t5?= =?utf-8?B?MFpxUXM2MGlDNlBuMFdCc3Q3Smt6bHkvRC8wak5OQ005MUZpemVFTlRyWWtO?= =?utf-8?B?Q2ZpanRyU1cxNDVNTGhDSUQ1cUFneGFuWllEaC9jOVpWaVV4eWZpL0hBbWdD?= =?utf-8?B?NjhoeXAra1h4SGdUV25Wbmk1NUZCeFJlLy83eUphbXh6blozYkxVQ1FEVFls?= =?utf-8?B?K0xjMEdpKzJKN0NBNjdUckJ1MklHYnZzQVlFMS8wQkIyMlkyUlJQOUlySGN5?= =?utf-8?B?eDJqSDlNYzhiMEc5S05EeTNXTm5qdVN4RENBQncwa3gva3B0UnhMemI1N04v?= =?utf-8?B?dXB2c2c1LzU5U0kyM0dNdHRZRjR6anZlQTJ4M2pyRXNyL0NqekxJU2pxTG9B?= =?utf-8?B?QWU2QTVMTFBycDhBbDF6WVRBRU1LSHlZbTNuRk9HZktmczZsOE94Zk5KSU1U?= =?utf-8?B?RnVyS3V0RWVxbkdNYXdNWWkwYnAvZC91UzY5VzgxL0NURVNpRDk0WlJTU01D?= =?utf-8?B?VTlVWFN1SUJtVjdpeVpwcEFROGxyUTNSS1RZMXNQVlEwYUhCZU01TWFYZFA0?= =?utf-8?B?WGd4YUxHM0k0SUw5cjdvdC9kU1VzdGlZMEtFV01qZDZyejhFd0NvSmJ6ejJs?= =?utf-8?B?Wi9sTW1mU2MydnZHc2szQjhuaXI0S01mMXQ3b0tSS3pWVzluZ1lZM0gvRy9F?= =?utf-8?B?bG5LUVgrdG15MHlKZTJGMWpxVzZqRVdUeGFRZmtqbnVmTVBtTDAwRFUyL25l?= =?utf-8?B?NDVTQXFKTGxPQmlkKzIreElZYVNFSFljeXVYb0xOQm1Wbkovbm9ZNDBjcWhW?= =?utf-8?B?VUlobnlOTDE2czJlN2ZSM0paL3V0aXRKbUlZbm1CNkhDL0VOWXpFOVlpREg5?= =?utf-8?B?NlBtOGlsMW5DL00zcXpUcDdkZm11RHVjK0JWV29Gb2ZHVXltOEdrM2xTZEFG?= =?utf-8?B?VzNHai9ZaEtFZGVOams4TzhhdEJpWlhkYkRtUFdlUmdRNFNDK0h0NE45MDhs?= =?utf-8?B?ZkkyRXNPMVI3TnJZWUJJb0NPc2xaSHNGYkxWYkJ0aDNTdTlwdDFXdmFmc2NM?= =?utf-8?B?bENzd0t1NWRCZU1FWmYwWnRSamxjTE9UMmVFN1RId2VmbGwxcGZLRG4xRS9z?= =?utf-8?B?bkluK1NsQmNhWWlmR1NtNzRJUmoxbTJuNzg5MkZ3U3gwK3ZMVlBXT3V2K1BZ?= =?utf-8?B?QVE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5064.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca2c48d9-435a-478e-52ec-08d999095b86 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Oct 2021 05:19:31.7397 (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: 1lnVX0TmA+j4DCTK31fZUd/0zy2HG1kdv8hzfP5YtUWuW6r90pl1wQq4mFpMoEnKUVQ8GXXFZcyHS0HQjjM2ig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4920 Return-Path: min.m.xu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 T24gT2N0b2JlciAxOSwgMjAyMSA5OjIzIFBNLCBTYW1pIE11amF3YXIgd3JvdGU6DQo+ID4gICAg IC8vDQo+ID4gICAgIC8vIFJlYWQgdGhlIEVGSSBQYXJ0aXRpb24gVGFibGUgSGVhZGVyDQo+ID4g ICAgIC8vDQo+ID4gQEAgLTE1Niw2ICsyMjQsMTUgQEAgVGNnMk1lYXN1cmVHcHRUYWJsZSAoDQo+ ID4gICAgIGlmIChQcmltYXJ5SGVhZGVyID09IE5VTEwpIHsNCj4gPiAgICAgICByZXR1cm4gRUZJ X09VVF9PRl9SRVNPVVJDRVM7DQo+ID4gICAgIH0NCj4gPiArDQo+ID4gKyAgLy8NCj4gPiArICAv LyBQcmltYXJ5SGVhZGVyLT5TaXplT2ZQYXJ0aXRpb25FbnRyeSBzaG91bGQgbm90IGJlIHplcm8g IC8vICBpZg0KPiA+ICsgKFByaW1hcnlIZWFkZXItPlNpemVPZlBhcnRpdGlvbkVudHJ5ID09IDAp IHsNCj4gPiArICAgIERFQlVHICgoREVCVUdfRVJST1IsICJTaXplT2ZQYXJ0aXRpb25FbnRyeSBz aG91bGQgbm90IGJlIHplcm8hXG4iKSk7DQo+ID4gKyAgICByZXR1cm4gRUZJX0JBRF9CVUZGRVJf U0laRTsNCj4gPiArICB9DQo+IFtTQU1JXSBJIHRoaW5rIHRoaXMgY2hlY2sgaXMgYXQgYW4gaW5j b3JyZWN0IGxvY2F0aW9uLiBTaG91bGQgdGhpcyBiZSBhZnRlciB0aGUNCj4gUmVhZERpc2soKSBi ZWxvdz8gQWxzbywgUHJpbWFyeUhlYWRlciB3b3VsZCBuZWVkIHRvIGJlIGZyZWVkIGluIHRoZSBl cnJvcg0KPiBzY2VuYXJpbyBhYm92ZS4NCkdvb2QgY2FwdHVyZSEgSXQgd2lsbCBiZSBmaXhlZCBp biB0aGUgbmV4dCB2ZXJzaW9uLg0KDQo+ID4NCj4gPiArICBpZiAoVGRQcm90b2NvbCAhPSBOVUxM KSB7DQo+ID4gKyAgICBUZEV2ZW50ID0gQ3JlYXRlVGRFdmVudEZyb21UY2cyRXZlbnQgKFRkUHJv dG9jb2wsIFRjZzJFdmVudCwNCj4gRXZlbnRTaXplKTsNCj4gPiArICAgIGlmIChUZEV2ZW50ID09 IE5VTEwpIHsNCj4gPiArICAgICAgZ290byBFeGl0Ow0KPiBbU0FNSV0gSSB0aGluayBTdGF0dXMg c2hvdWxkIGJlIHNldCB0byByZWZsZWN0IGFuIGFwcHJvcHJpYXRlIGVycm9yIGNvZGUgaGVyZS4N CkkgYW0gdGhpbmtpbmcgaWYgVENHMl9QUk9UT0NPTCBhbmQgVEVFX1BST1RPQ09MIHdpbGwgYmUg aW5zdGFsbGVkIGluIHRoZSBzYW1lIHRpbWU/DQoxKSBJZiB0aGVzZSAyIHByb3RvY29scyBhcmUg Tk9UIGluc3RhbGxlZCBpbiB0aGUgc2FtZSB0aW1lLCB0aGVuIHRoZSByZXR1cm5lZCBzdGF0dXMg cmVmbGVjdCB0aGUgYWN0dWFsIG9wZXJhdGlvbiByZXN1bHQgb2YgdGhlIHByb3RvY29sLg0KMikg SWYgdGhlc2UgMiBwcm90b2NvbHMgY2FuIGJlIGluc3RhbGxlZCBpbiB0aGUgc2FtZSB0aW1lLCB0 aGVuIGl0IHdpbGwgYmUgYSBwcm9ibGVtIHRoYXQgdGhlIGhvdyB0byByZWZsZWN0IHRoZSBvcGVy YXRpb24gcmVzdWx0IG9mIHRoZSBwcm90b2NvbHMgYnkgdGhlIHN0YXR1cz8NCkkgcHJlZmVyIDEp IHRoYXQgdGhlc2UgMiBwcm90b2NvbHMgYXJlIE5PVCBpbnN0YWxsZWQgaW4gdGhlIHNhbWUgdGlt ZS4gQmVjYXVzZSBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gbWVhc3VyZSB0aGUgYm9vdCBpbiAy IHRpbWVzLg0KV2hhdCdzIHlvdXIgc3VnZ2VzdGlvbj8NCkJUVywgQ3JlYXRlVGRFdmVudEZyb21U Y2cyRXZlbnQgd2lsbCBiZSB1cGRhdGVkIHRvIHJldHVybiBhIHN0YXR1cyB0byBpbmRpY2F0ZSB0 aGUgb3BlcmF0aW9uIHJlc3VsdC4gU28gdGhhdCB0aGUgc3RhdHVzIGNhbiByZWZsZWN0IGFuIGFw cHJvcHJpYXRlIGVycm9yIGNvZGUuDQoNCj4gQWxzbyB3b3VsZCBpdCBiZSBwb3NzaWJsZSB0byBj cmVhdGUgdGhpcyBldmVudCBqdXN0IGJlZm9yZSBjYWxsaW5nDQo+IFRkUHJvdG9jb2wtPkhhc2hM b2dFeHRlbmRFdmVudCBhdCBsaW5lIDM1MT8NCj4gSSBhbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCB3 aHkgaXMgdGhpcyBkb25lIGRpZmZlcmVudGx5IGluDQo+IFRjZzJNZWFzdXJlUGVJbWFnZSgpIGku ZS4gVGhlIFRkRXZlbnQgaXMgY3JlYXRlZCBhbmQgZXh0ZW5kZWQgaW4gdGhlIHNhbWUNCj4gaWYg KFRkUHJvdG9jb2wgIT0gTlVMTCkgYmxvY2suDQpZb3UncmUgcmlnaHQuIFRkRXZlbnQgc2hvdWxk IGJlIGNyZWF0ZWQgYW5kIGV4dGVuZGVkIGluIHRoZSBzYW1lIGlmIGJsb2NrLiAgSXQgd2lsbCBi ZSBmaXhlZCBpbiB0aGUgbmV4dCB2ZXJzaW9uLg0KPiBbL1NBTUldDQoNCj4gPiArDQo+ID4gKyAg aWYgKFRkUHJvdG9jb2wgIT0gTlVMTCkgew0KPiA+ICsgICAgVGRFdmVudCA9IENyZWF0ZVRkRXZl bnRGcm9tVGNnMkV2ZW50IChUZFByb3RvY29sLCBUY2cyRXZlbnQsDQo+IEV2ZW50U2l6ZSk7DQo+ ID4gKyAgICBpZiAoVGRFdmVudCA9PSBOVUxMKSB7DQo+ID4gKyAgICAgIGdvdG8gRmluaXNoOw0K PiBbU0FNSV0gSSB0aGluayBTdGF0dXMgc2hvdWxkIGJlIHNldCB0byByZWZsZWN0IGFuIGFwcHJv cHJpYXRlIGVycm9yIGNvZGUgaGVyZS4NCkl0IHdpbGwgYmUgZml4ZWQgaW4gdGhlIG5leHQgdmVy c2lvbi4NCj4gPiAqKikgJlRjZzJQcm90b2NvbCk7DQo+ID4gKyAgTWVhc3VyZUJvb3RQcm90b2Nv bHMuVGNnMlByb3RvY29sID0gTlVMTDsNCj4gPiArICBNZWFzdXJlQm9vdFByb3RvY29scy5UZFBy b3RvY29sICAgPSBOVUxMOw0KPiA+ICsNCj4gPiArICBTdGF0dXMgPSBHZXRNZWFzdXJlQm9vdFBy b3RvY29scygmTWVhc3VyZUJvb3RQcm90b2NvbHMpOw0KPiA+ICsNCj4gPiAgICAgaWYgKEVGSV9F UlJPUiAoU3RhdHVzKSkgew0KPiA+IC0gICAgLy8NCj4gPiAtICAgIC8vIFRjZzIgcHJvdG9jb2wg aXMgbm90IGluc3RhbGxlZC4gU28sIFRQTTIgaXMgbm90IHByZXNlbnQuDQo+ID4gLSAgICAvLyBE b24ndCBkbyBhbnkgbWVhc3VyZW1lbnQsIGFuZCBkaXJlY3RseSByZXR1cm4gRUZJX1NVQ0NFU1Mu DQo+ID4gLSAgICAvLw0KPiBbU0FNSV0gSXQgbWF5IGJlIGhlbHBmdWwgdG8gcmV0YWluIHRoZSBv aXJnaW5hbCBjb21tZW50IHdpdGggc2xpZ2h0DQo+IHJld29yZGluZy4NClN1cmUuIEl0IHdpbGwg YmUgYWRkZWQgYW5kIHJld29yZGVkIGluIHRoZSBuZXh0IHZlcnNpb24uIFRoYW5rcyBmb3IgcmVt aW5kZXIuDQoNClRoYW5rcw0KTWluDQo=