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.web11.11430.1680128550427772038 for ; Wed, 29 Mar 2023 15:22:30 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=FxaIOb3F; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680128550; x=1711664550; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=GU8ZaZS9uw0+xDqpqVcrpkcEiQJCt9oACUUi4uiMJjg=; b=FxaIOb3F5WeWqSCsQFy5SwbBV2D5vLb0eabVCWMVAlVWvB75QxU74pSt fzd6YhIFEHrX9bmrjpbGMyS5ulMiAXgZt83W8ExxZd4X9CPBZQePF1eW3 MRcIMsQt6MuTTcStPoJ0Ah/WSR8EjjTeTJ7kCpq1KmhroCL7KdmuD9EJk Sr1YDu5332Sl3W9q0jWIeTbAeHsGtEv4UgIoA34q4jbzni5hSuuc9a0lw C5AW3B6BpCxCbsG4FkT4uL9uiqh1dX0aZQylP4CYB1JP65Cz8I9mvWjEa xzcC+ab3gkZ46jymkSY78jY4E2j6q2iy0L/vre1WeQLzVzlMXeHTiKJPQ A==; X-IronPort-AV: E=McAfee;i="6600,9927,10664"; a="342623150" X-IronPort-AV: E=Sophos;i="5.98,301,1673942400"; d="scan'208";a="342623150" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Mar 2023 15:22:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10664"; a="684463048" X-IronPort-AV: E=Sophos;i="5.98,301,1673942400"; d="scan'208";a="684463048" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga002.jf.intel.com with ESMTP; 29 Mar 2023 15:22:29 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 29 Mar 2023 15:22:29 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Wed, 29 Mar 2023 15:22:29 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Wed, 29 Mar 2023 15:22:29 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Wed, 29 Mar 2023 15:22:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PGURsWIXCQ71wYVtdjkyjSJCgMhycCLjn85XyKY9YPA3SoIi7ngkwkExB/NMjhKPn7+6ypydzbl2X5uac7xgLrq5laia7hdyRHtsaETxgngylqV0NIvT9fMaRnzqS9gzhMQNVuB2gSIu7YGo+CMmWnwEIa5SvdaIRI7zHtdxtCsCQWdjO5AV0u4JWOAdEGdAlYUySV2fJvlQWnZL8uq3mQKT6xjaz9ml3iNXmM3S1VYqMrCBnPfBxA8ycANVUrcFIKwEK/4xDxIA1CFDcSTtTFn2xLg22teKwd068mqbh2wfggznK/l4Vhnwu/S9EONjH/Zc7D/1efdtR41j+TspbA== 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=GU8ZaZS9uw0+xDqpqVcrpkcEiQJCt9oACUUi4uiMJjg=; b=WHYQ6umBcC+wM7Uq9z+r88GEWHjl+TbFFQ9X47w/lXWxnHZDscmVusVCUnLiZSOYxSeJAx+YY1+kEiA3BXGAGymyjzjfLZIE2FCi8cv1Ehq71hH5gwduy2w/BxyeBj6PL7XHjRbpqAU0oi1S1jFgu8dBAUmJCe1GVoKWBGvgFN+v5hPtIEE5UViKUgHt2UpIf/jrjwcIvBTG2N5UnNAbCcvpaOwnAXgFlrEuTjzCIIDEkoytVWZj84xBqCAIFF4TxH1A6LeT1OHfRGsO21JNtPmaqCG4tqkkcGH5sZu3hSzyhV6z5ym53K/tdh/YB77BpE5Zfp/IuJLR8e7M51DACg== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by PH0PR11MB5112.namprd11.prod.outlook.com (2603:10b6:510:3b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.35; Wed, 29 Mar 2023 22:22:26 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5%7]) with mapi id 15.20.6222.033; Wed, 29 Mar 2023 22:22:26 +0000 From: "Michael D Kinney" To: "Ni, Ray" , "devel@edk2.groups.io" CC: "Dong, Eric" , "Kumar, Rahul R" , Gerd Hoffmann , "Anadani, Ahmad" , "Kinney, Michael D" Subject: Re: [PATCH 3/6] UefiCpuPkg/MtrrLib: Substract TME-MK KEY_ID_BITS from CPU max PA Thread-Topic: [PATCH 3/6] UefiCpuPkg/MtrrLib: Substract TME-MK KEY_ID_BITS from CPU max PA Thread-Index: AQHZXFDZARnWvDO76kSBzoGMBsq/fK8SYTAg Date: Wed, 29 Mar 2023 22:22:26 +0000 Message-ID: References: <20230321235650.675-1-ray.ni@intel.com> <20230321235650.675-4-ray.ni@intel.com> In-Reply-To: <20230321235650.675-4-ray.ni@intel.com> 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: CO1PR11MB4929:EE_|PH0PR11MB5112:EE_ x-ms-office365-filtering-correlation-id: 0148c6d2-43a1-4e8b-69c2-08db30a413ac x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PtDboMxmXxQZbr2aALTqXXi+UFcVxpjyB9G+L75Xa4JWm68/P3JG2BcuWiCO/9QVQ0ejMS8LlTgGUNwKKNHboVlzS1rGyCo3dBQAdJPfgtVivOE+ajtwnRxF468fWwsPt29F174cxAciWYKQWweEkis2fLErmGZ5NTv0/hmA8ipUAfH3DxpgxfldoaXS/1vDveQ0ckI9ug8WDqwL6fL3n8haJDyY88sl86dHu2tZ1b13i5pZhcjziYJrjlhMNRuAbRBF1g5mPBE1FhnticylL3+1ZHeX6/yE/H0rRXDn1AoOLzzsbGl5EhFqLyQ/i/lrd3itEmHCe3HonuLz7VPlvfKGsIlFutLPcWoGCs1g+1Vj+oHG5ZaAFOSKVVSigpF/kUrfAZQKwGRd1iRBn0oaU5m2Jbcs0qociWPt9WqJITN2P/01pbXZd14f/4nb89gVWMweP+4oJINsxZLzSx/jxfm76l9s3Pr7XSPtZMRzQFsKcjtU+bhO+d8uNtngXTeoNwbGnaNTKSE53P8K78DOvrXAD9wiEcOakUz6mjvlHCo0wCNUUu8o8OlGLm+ETlRGR6F4ZaU1/cCM1/HOywdaO+3mzb110mKZwBlPEDfQ3vkkSCGhmPRKwPgRYe8Xt2La x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(39860400002)(366004)(136003)(346002)(396003)(451199021)(122000001)(82960400001)(107886003)(66476007)(53546011)(19627235002)(26005)(9686003)(38100700002)(5660300002)(33656002)(186003)(2906002)(8936002)(71200400001)(54906003)(316002)(7696005)(6506007)(478600001)(38070700005)(110136005)(55016003)(4326008)(41300700001)(86362001)(66446008)(76116006)(64756008)(8676002)(66556008)(52536014)(66946007)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dFhsWjNPQldGVFE1c1dweTNFSGRJdVlteXQzMnlhY1Y3VFJodjIzMlJRK1Qy?= =?utf-8?B?cnllWkVEdExRVU82TFBkSWNPSGlJRmRNd01LV1I3UElIdWNUVEZaZDAwZE1C?= =?utf-8?B?ekVuVlc1bmE0dHMvbjBOcHlFaWZHdDlSWDBGdEluSy9nOTV6MER4WEdycVlm?= =?utf-8?B?VnNUeUhaS2FCYnU4dXF1VzdlbExMU3lYYUdmTUljV25xNU5oNXByQTVNVlFq?= =?utf-8?B?M1FhU1p5eUF6aGtCUkhZQ3hQWHU3azBOWGFmSXNJMW1kcFEwRkt5ZFpsa3ps?= =?utf-8?B?S3VRaGp1Y0wvcWV2UXQxc2NNUEVUZndaUmcrYVdLenFsbklFc095YW5WNlJo?= =?utf-8?B?QVVzNU0yalo2SzFWWnNhdXF0bGhGOUw5TGs3aUFpQlNaWFpQWi9NZlEwZ1NP?= =?utf-8?B?ZjNPc2ErL2J3Ulc2eUI0RlBMUVFFbE9RNGlybk1ITUcrQ3F5ZVVzT0JKNEta?= =?utf-8?B?eDVCcUtaYXh2VkRlV0puRmZiUDRVVFJZeklpbUd1Z3phREdBZkplRmVoT0RQ?= =?utf-8?B?SUpBaVYwQVI1QUVkZnhSOG55VHJBWkxkcmN5RERUY1EwOWlwWEZqRkEyRUdq?= =?utf-8?B?V1hZVExyUHhYVU9DajQvdDNMQzViSW1Dd3JlUEhFdEdlNE1PcSs0cjZncGx1?= =?utf-8?B?OENoSlhJSko0T251VTQzcWRheE8wdG94UnhvcDE4dHdDQzJDNURKT0ZHbFJR?= =?utf-8?B?Nkx6THZRamFxaC8yNDZXeEpmczlqOVIxbk51V24wMmJYaGgyRllYYXF6TGtH?= =?utf-8?B?dHg5VVRNRW1kMmVRcXNMU05pUWhqbkNEdUMxS3l6YlhseVRXM1o4WUppQTVP?= =?utf-8?B?cFQ2UU5nQ3ltRW1kWDBwYTdZWFg4R1lnUmtLRHcyelFEekt0UG0wSm5YMkpY?= =?utf-8?B?TmZERytOUUdNWVl1eW54aTJIOFlvNkJ6eXg5REMvTTVyWHZEOG5mWTdGV3B1?= =?utf-8?B?OFJSSXlzR0VYTmhObmdlWFdjQmJKL1Q5Yk9Rb3NmaWJDbmlMc0V6SlcvZXFS?= =?utf-8?B?bTRHNk4vWEZKQ05QUmtjbjd4bTNqcTF4ank5cFcxUUUrWHdoRk1zdDcxMEFn?= =?utf-8?B?cVVNTCtkZ3B5TklOVzJGM0pWYSs5ZHJLVEcxdjNjT0NOUzFPSTNFckw1R1dv?= =?utf-8?B?SnVTbENQK3F1ZHJ4NU00WUJwR1lwWklmUkYrNHFwSzdlbjdsak1PdWFnK2k5?= =?utf-8?B?SXp4MHd0QkhubnY0Q1pveGVwbjFZRFp1aXJzVkNaQ0x6aWhyOG8zY1NtbENS?= =?utf-8?B?NC9JbHlBaEpEZzJUV2NGamowUVBzSEh5UWRUcUNNR200citUUXJuUzNhUzFO?= =?utf-8?B?MDN4T2xpTytITzVUcXkxbFVFdXVrMVAwV3Z5dnFHQ01GclovcjdqdHVvZGJl?= =?utf-8?B?SVdNTVpmeGpBaTdpRnMrNERxRmJHSk1DUFlNb0dxOWNNeVBUMXd1aHEvOHVx?= =?utf-8?B?dkpyMEV0N3FJWVRKZldUeEYweDIySXIzZEs2WG9zVzZXU1I4azlvblVzMXRn?= =?utf-8?B?dmlzcklldTQrQzQ4VWRIN1dvZ2xCZXEvMW9PdC84VEhzRFdzNWlRandYaVJK?= =?utf-8?B?WEE2NjJTVnFCZ2JVY1V2RlJIb3JQZDRGT1hhaE5MMnViMjhFY1dnQ1U4VVU0?= =?utf-8?B?QVZ5SDNVQmNjMnlNc0pIb0N2ZjJXVFhQcWdKZjhMZTk2RGtPcEpUTThDSTNq?= =?utf-8?B?YVJvaUZkTFlwN1BFa0hMZTFEU0U4Unh4K2R5UCtHRTBNdHVBczNndmhxTGZn?= =?utf-8?B?YVoxYjhFMUdhN3g4WHVxeThFSGdWc3FKYXhGRlBEekhzUG9BRjd6Y043OXNz?= =?utf-8?B?VG1NcjNqdHkzRHdkL2l2Ui9Ta3d6TTMzUFlNN3hLVVlmb29wOTRSL25JRDk4?= =?utf-8?B?eXdBblZmZU95YXFBc29RaFl4WkJFYTFLbzRkQlNZU053OEhtY1hLYVRQKzJu?= =?utf-8?B?bUlIM1JnUzFZejV4TWNwVU5YTTVPNEl6SWphUWRuK3RvVCt0aW5KMG5pN2pv?= =?utf-8?B?YkdJanZBUllCalVxVHM0YjlBS1pFRUEzVnR2WFhzaVRLWEViTGVON1RDQ0Y5?= =?utf-8?B?dytaTGU4RGNmWjc0NDZObU0zYlc3U3J0NjlRaW8xSTZxaDNWMUYzUlE1V3hv?= =?utf-8?B?RjRabjNVSHhtVTdraUVlTStJeVg3N1FMRHhFbG05Yys4a2ZCVmlOZUV3bGVu?= =?utf-8?B?YlE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0148c6d2-43a1-4e8b-69c2-08db30a413ac X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Mar 2023 22:22:26.5681 (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: ZBOECPr1Q8c3k73bPOLhuW4AzaNZJ2at9Jm/hWn5VX/U02B+/uZKWoHuyySGMsS/r1qeZqx22zgyyM4E2EvCOpdOSbEpbUl7rd7vclnt1tE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5112 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 UmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE5pLCBSYXkgPHJheS5u aUBpbnRlbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDIxLCAyMDIzIDQ6NTcgUE0NCj4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50 ZWwuY29tPjsgS3VtYXIsIFJhaHVsIFIgPHJhaHVsLnIua3VtYXJAaW50ZWwuY29tPjsgR2VyZCBI b2ZmbWFubiA8a3JheGVsQHJlZGhhdC5jb20+OyBLaW5uZXksDQo+IE1pY2hhZWwgRCA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+OyBBbmFkYW5pLCBBaG1hZCA8YWhtYWQuYW5hZGFuaUBpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCAzLzZdIFVlZmlDcHVQa2cvTXRyckxpYjogU3Vic3Ry YWN0IFRNRS1NSyBLRVlfSURfQklUUyBmcm9tIENQVSBtYXggUEENCj4gDQo+IENQVUlEIGVudW1l cmF0aW9uIG9mIE1BWF9QQSBpcyB1bmFmZmVjdGVkIGJ5IFRNRS1NSyBhY3RpdmF0aW9uIGFuZA0K PiB3aWxsIGNvbnRpbnVlIHRvIHJlcG9ydCB0aGUgbWF4aW11bSBwaHlzaWNhbCBhZGRyZXNzIGJp dHMgYXZhaWxhYmxlDQo+IGZvciBzb2Z0d2FyZSB0byB1c2UsIGlycmVzcGVjdGl2ZSBvZiB0aGUg bnVtYmVyIG9mIEtleUlEIGJpdHMuDQo+IA0KPiBTbywgd2UgbmVlZCB0byBjaGVjayBpZiBUTUUg aXMgZW5hYmxlZCBhbmQgYWRqdXN0IHRoZSBQQSBzaXplDQo+IGFjY29yZGluZ2x5Lg0KPiANCj4g U2lnbmVkLW9mZi1ieTogUmF5IE5pIDxyYXkubmlAaW50ZWwuY29tPg0KPiBDYzogRXJpYyBEb25n IDxlcmljLmRvbmdAaW50ZWwuY29tPg0KPiBDYzogUmFodWwgS3VtYXIgPHJhaHVsMS5rdW1hckBp bnRlbC5jb20+DQo+IENjOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT4NCj4gQ2M6 IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogQWht YWQgQW5hZGFuaSA8YWhtYWQuYW5hZGFuaUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgVWVmaUNwdVBr Zy9MaWJyYXJ5L010cnJMaWIvTXRyckxpYi5jIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKy0t DQo+ICAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4g DQo+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0xpYnJhcnkvTXRyckxpYi9NdHJyTGliLmMgYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvTXRyckxpYi9NdHJyTGliLmMNCj4gaW5kZXggZTVjODYyYzgzZC4u YTY2MzU3ZTMwNSAxMDA2NDQNCj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L010cnJMaWIvTXRy ckxpYi5jDQo+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9NdHJyTGliL010cnJMaWIuYw0KPiBA QCAtNzU2LDggKzc1NiwxMSBAQCBNdHJyTGliSW5pdGlhbGl6ZU10cnJNYXNrICgNCj4gICAgT1VU IFVJTlQ2NCAgKk10cnJWYWxpZEFkZHJlc3NNYXNrDQo+IA0KPiAgICApDQo+IA0KPiAgew0KPiAN Cj4gLSAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICBNYXhFeHRlbmRlZEZ1bmN0aW9u Ow0KPiANCj4gLSAgQ1BVSURfVklSX1BIWV9BRERSRVNTX1NJWkVfRUFYICBWaXJQaHlBZGRyZXNz U2l6ZTsNCj4gDQo+ICsgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1heEV4dGVuZGVkRnVuY3Rpb247DQo+IA0KPiArICBDUFVJRF9WSVJfUEhZX0FERFJFU1Nf U0laRV9FQVggICAgICAgICAgICAgICBWaXJQaHlBZGRyZXNzU2l6ZTsNCj4gDQo+ICsgIFVJTlQz MiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heEZ1bmN0aW9uOw0KPiAN Cj4gKyAgQ1BVSURfU1RSVUNUVVJFRF9FWFRFTkRFRF9GRUFUVVJFX0ZMQUdTX0VDWCAgRXh0ZW5k ZWRGZWF0dXJlRmxhZ3NFY3g7DQo+IA0KPiArICBNU1JfSUEzMl9UTUVfQUNUSVZBVEVfUkVHSVNU RVIgICAgICAgICAgICAgICBUbWVBY3RpdmF0ZTsNCj4gDQo+IA0KPiANCj4gICAgQXNtQ3B1aWQg KENQVUlEX0VYVEVOREVEX0ZVTkNUSU9OLCAmTWF4RXh0ZW5kZWRGdW5jdGlvbiwgTlVMTCwgTlVM TCwgTlVMTCk7DQo+IA0KPiANCj4gDQo+IEBAIC03NjcsNiArNzcwLDIzIEBAIE10cnJMaWJJbml0 aWFsaXplTXRyck1hc2sgKA0KPiAgICAgIFZpclBoeUFkZHJlc3NTaXplLkJpdHMuUGh5c2ljYWxB ZGRyZXNzQml0cyA9IDM2Ow0KPiANCj4gICAgfQ0KPiANCj4gDQo+IA0KPiArICAvLw0KPiANCj4g KyAgLy8gQ1BVSUQgZW51bWVyYXRpb24gb2YgTUFYX1BBIGlzIHVuYWZmZWN0ZWQgYnkgVE1FLU1L IGFjdGl2YXRpb24gYW5kIHdpbGwgY29udGludWUNCj4gDQo+ICsgIC8vIHRvIHJlcG9ydCB0aGUg bWF4aW11bSBwaHlzaWNhbCBhZGRyZXNzIGJpdHMgYXZhaWxhYmxlIGZvciBzb2Z0d2FyZSB0byB1 c2UsDQo+IA0KPiArICAvLyBpcnJlc3BlY3RpdmUgb2YgdGhlIG51bWJlciBvZiBLZXlJRCBiaXRz Lg0KPiANCj4gKyAgLy8gU28sIHdlIG5lZWQgdG8gY2hlY2sgaWYgVE1FIGlzIGVuYWJsZWQgYW5k IGFkanVzdCB0aGUgUEEgc2l6ZSBhY2NvcmRpbmdseS4NCj4gDQo+ICsgIC8vDQo+IA0KPiArICBB c21DcHVpZCAoQ1BVSURfU0lHTkFUVVJFLCAmTWF4RnVuY3Rpb24sIE5VTEwsIE5VTEwsIE5VTEwp Ow0KPiANCj4gKyAgaWYgKE1heEZ1bmN0aW9uID49IENQVUlEX1NUUlVDVFVSRURfRVhURU5ERURf RkVBVFVSRV9GTEFHUykgew0KPiANCj4gKyAgICBBc21DcHVpZEV4IChDUFVJRF9TVFJVQ1RVUkVE X0VYVEVOREVEX0ZFQVRVUkVfRkxBR1MsIDAsIE5VTEwsIE5VTEwsICZFeHRlbmRlZEZlYXR1cmVG bGFnc0VjeC5VaW50MzIsIE5VTEwpOw0KPiANCj4gKyAgICBpZiAoRXh0ZW5kZWRGZWF0dXJlRmxh Z3NFY3guQml0cy5UTUVfRU4gPT0gMSkgew0KPiANCj4gKyAgICAgIFRtZUFjdGl2YXRlLlVpbnQ2 NCA9IEFzbVJlYWRNc3I2NCAoTVNSX0lBMzJfVE1FX0FDVElWQVRFKTsNCj4gDQo+ICsgICAgICBp ZiAoVG1lQWN0aXZhdGUuQml0cy5UbWVFbmFibGUgPT0gMSkgew0KPiANCj4gKyAgICAgICAgVmly UGh5QWRkcmVzc1NpemUuQml0cy5QaHlzaWNhbEFkZHJlc3NCaXRzIC09IFRtZUFjdGl2YXRlLkJp dHMuTWtUbWVLZXlpZEJpdHM7DQo+IA0KPiArICAgICAgfQ0KPiANCj4gKyAgICB9DQo+IA0KPiAr ICB9DQo+IA0KPiArDQo+IA0KPiAgICAqTXRyclZhbGlkQml0c01hc2sgICAgPSBMU2hpZnRVNjQg KDEsIFZpclBoeUFkZHJlc3NTaXplLkJpdHMuUGh5c2ljYWxBZGRyZXNzQml0cykgLSAxOw0KPiAN Cj4gICAgKk10cnJWYWxpZEFkZHJlc3NNYXNrID0gKk10cnJWYWxpZEJpdHNNYXNrICYgMHhmZmZm ZmZmZmZmZmZmMDAwVUxMOw0KPiANCj4gIH0NCj4gDQo+IC0tDQo+IDIuMzkuMS53aW5kb3dzLjEN Cg0K