From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web11.2115.1610589336902042082 for ; Wed, 13 Jan 2021 17:55:37 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=cY4aBI0L; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: star.zeng@intel.com) IronPort-SDR: zdGb2m+jtD0O+sbMAn3x+BijPnYJKbBcGdvz4OPPfeALpO6OXLPIdUh0BusUagd8n5TfAVqvV7 +kq8Pn+kcShw== X-IronPort-AV: E=McAfee;i="6000,8403,9863"; a="239836874" X-IronPort-AV: E=Sophos;i="5.79,345,1602572400"; d="scan'208";a="239836874" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jan 2021 17:55:31 -0800 IronPort-SDR: ZFr3KI3FPw5gtqLWxIjQ2iAze884JssX+fjrDmnaGc58IpJTGj4KsjN/BxcxMurnNSvAoDDtGW cwH//1lvdNMQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,345,1602572400"; d="scan'208";a="499451538" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga004.jf.intel.com with ESMTP; 13 Jan 2021 17:55:31 -0800 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) 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, 13 Jan 2021 17:55:31 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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 via Frontend Transport; Wed, 13 Jan 2021 17:55:31 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.109) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 13 Jan 2021 17:55:31 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ODbaUpVmUNPZbFpe4l0KyAtlBJtx64Rw5EEeqk3h+TlPKhriIUaJYNcY5URs3ihNG7l2A+Hm7yxVCbP5E8zjYbdpI43CsRaysdxlUX7/tpsoXXvMt6CocvTMA/hXC1MbkMPOm7/7ZTx3FxwXJwhsVUkEEux/rnAhvp840hDsnvuBH6YhmbHlfnt7t3mYhRSzV1HYJhJcfznSBOpTbifSGe6NctvcGSx6ZcmsYnvezmX6zzNbDDCf2ZPfiys2+Ma47Tpe7IXuTcudgHFdDP8v+UM/NmQtDtM1+YD2wcjDAWMHEHnE9GUqbaQqOigFrsl/cli8hAPcJyt5XdnEA8Da1A== 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=2lQfS3jmyyi+GAXC5NaYNLC7bSKy0RCbDSy4uN4+MKE=; b=Tle8v/66ihiLoVpYJfyzgdUQBbz2L92u8V2bA/iedldk2ciFzwFUM842pxwXP5SVpfnLA218ZnHED/n6cnFd5h5tcNZiPzVWvHBMbt3IZY0D27vJBho5+cDfKPHRKE4ROKv+Sa7q9czF7BKcnNLdAk2L0J7sPnyVLnhRxBolYpcWZoe2WdwXDADwdQbngSvTyN/wGPdh5pTO0bYKp3fFp2QtV70kdjpJgEscRjZ9Cl5SatfKmzAb5ervZ/r4wQaX7NjbgcF9n22BIgvtHFcClHQQn61MF/0u8mA1yqDR8nN/MRwuyR1HfhFJw6uQm76XAAsSXocykausBlNweJO7Yw== 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=2lQfS3jmyyi+GAXC5NaYNLC7bSKy0RCbDSy4uN4+MKE=; b=cY4aBI0LXTEHUXqVuFjwYaZ5JF0DRwRxgKLFla6V3kkHqXGuYektOE5Up6HiIOG3vjY2eM3E8BNoV/Uz7qEu1PH+rnqzq0hVqM2gQJj6Rv5vcLBLEObQUJ4/JoTHtwX+TEruhVECJetinCjGRMIUQC4bzxjMei8TNkEXKmlQwUY= Received: from DM6PR11MB4058.namprd11.prod.outlook.com (2603:10b6:5:193::13) by DM6PR11MB3563.namprd11.prod.outlook.com (2603:10b6:5:13e::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Thu, 14 Jan 2021 01:55:30 +0000 Received: from DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::29e6:77f7:8834:9f88]) by DM6PR11MB4058.namprd11.prod.outlook.com ([fe80::29e6:77f7:8834:9f88%7]) with mapi id 15.20.3763.010; Thu, 14 Jan 2021 01:55:30 +0000 From: "Zeng, Star" To: "Ni, Ray" , Laszlo Ersek , "devel@edk2.groups.io" CC: "Dong, Eric" , =?utf-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= , "Kumar, Rahul1" , "Zeng, Star" Subject: Re: [PATCH 2/3] UefiCpuPkg/CpuS3DataDxe: do not allocate useless register tables Thread-Topic: [PATCH 2/3] UefiCpuPkg/CpuS3DataDxe: do not allocate useless register tables Thread-Index: AQHW6RfqZEmySNCxrUicEkLuRW4LWaolE+wAgAAQksCAABDrAIABKKpw Date: Thu, 14 Jan 2021 01:55:30 +0000 Message-ID: References: <20210112191934.12459-1-lersek@redhat.com> <20210112191934.12459-3-lersek@redhat.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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.202] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b68e1d62-ab24-4f16-2ce5-08d8b82f78d9 x-ms-traffictypediagnostic: DM6PR11MB3563: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2089; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tDcXmKxqv3Zso0qw8iv7NQXn4XT8fDyo2vbSGSx37zORJrFZ5KxBHeLSFszel4aYRMfxKOqbQ4my1Vx9nKnut7PmAduSMOEplHsVzVp+c409KlBc0cApLmEQ6NLZm5+434QVgxW7K1C9XhfsQ4O6pxYfsX87UwRBMhYKE8B5cJ3OMD+YyHS1XHPHLurySGXTsYfpPiK2xxw3gdaDSxsOiRNJZkq4F40HVqpjeH40871UdU6i9MpHcvufytXrcLBLgGZey/2wPoeEoLdU6BJ6uq0NnYajapUYMjsDl4TUhjtYCXFdMby/vWfhMr6GLFjKkiIgpHbKZtiUVZT6BFVgwS7mUAltWnxLD9Fwm9aW/SqAmsvnhtlVsdAsGKa3oI3yzl5P3/VEp+6AKlfFTd5BQT1xUH0cKvic/G4fC/aEp5vGjytW7t1EsE31ApSCksgFbm+XwWY64gKnvdAkeU+deQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB4058.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(346002)(366004)(396003)(39860400002)(376002)(4326008)(966005)(86362001)(53546011)(55016002)(19627235002)(9686003)(6506007)(83380400001)(316002)(66476007)(54906003)(66446008)(33656002)(110136005)(52536014)(76116006)(7696005)(26005)(64756008)(2906002)(107886003)(71200400001)(66556008)(8936002)(478600001)(8676002)(5660300002)(186003)(66946007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?L2xKc0FDeS92VFdPZjV2MitwckhFc0VDZDdMK1B1ZUpDbTlkazhJMDR4ZS8r?= =?utf-8?B?N1pQTVRHWkZHMFo2UHJQZEM5NnhHSU1KNzNwaXdjK2FMSC9JKzlZUFJIelhM?= =?utf-8?B?SDFyWjVDMFp3TE9YSVB6N0xUR2FFS3pkNWMvdHVyZ1A1RmMxREd5d2lraGM0?= =?utf-8?B?VWIydjBZVytSZkVpT2tPYTVNa2x2RnlTRE1rZEp2SnQ4VlhXcFBIcHNWeHIw?= =?utf-8?B?WHVCTzZTQkJic1N0U2J1S3R6N1l1YnE5QXFicmVQSVd0VlpFWVRuWVROMis1?= =?utf-8?B?bldZR0JYbUFVWmd1a1QySG9DekYzbkpzVHdhamtVSXg3SlRiVEFKYyswK1FW?= =?utf-8?B?NXlUR1RSYitpZmdNR0Z6c2phQUw5S1JNMUswVzRUWjVvM3ZTN1VkMVJCRVh2?= =?utf-8?B?RC9yellJK0dVM3U4LzAzZGw5cjFhZWJ4a0JPcTM3QW9Gc3g2TzlNUjVjRFNm?= =?utf-8?B?cjR0eENlMElJU3R2Sms5TG1NcXRaVUd4RDAwdnBQWkVwSjEzZHFtblF3Nk03?= =?utf-8?B?ZUNmNWV0TU10bko4UXVZcFh6WWlQY1NtOVB4azFPZ1dic2JDdlRaSE0zdElm?= =?utf-8?B?cGJMdU9CQzJsMGU5QVk3OXlqbFlWYk4xWTI5TFVkamk5NUxlWkZMTmxNbEJn?= =?utf-8?B?azVOdlpxdzh6aEFuT1lnSFpucVhZQmFpb2xLUGFNc0FROVlCMFZzT21hT3lo?= =?utf-8?B?ZmRZQmZOOG1iT0U2b3hpUDRleEk5aXpjMzFKK01hbCtiQWJVblNSbStpcHhF?= =?utf-8?B?MDdZd2tvWTFwcFlyTS9uTFZjQ0NSYm13eG9wQnRUeTMzR1JDNkVyaXlWaGc5?= =?utf-8?B?bTU3Q1BsbkFDbUdyWUhoN2VWRVdFbDhoeG5NMjdQcEVrV2crRVdpSnE2MW1B?= =?utf-8?B?aDM5M0RlUVZKa1ZRVUMzOG9SL0xoOThsK0dlNDAvZXBvamJGWUVUOUthNnMy?= =?utf-8?B?WjljRTdzSnRHcXdJRTcrODdNK1NYZlRIRUl2ZlB5NUVvY2k1S1BXYXhZN1FK?= =?utf-8?B?OWRldlZuenlhNFJmb0JkWVNQNGRxcnNhRWtBeFIvdDlDbDQ0eklmTFZUQjRJ?= =?utf-8?B?Q0ludkJLSzlIOGVMaGRTQnZMaGp3ZStDWUh6UHNQOG96cGRKV2xtYW5Fb0hN?= =?utf-8?B?bFc0SW0vTjJHVVkybGxKeVhpK2JoR2ZEU042N0JCYUg4NnlwOFJ6UlNkNVp3?= =?utf-8?B?ckhKQmF5SGJJT0NGWndIcEZaVTdkaHBIVzNZbk5FMWtiaExYRFhZd3NMZEtr?= =?utf-8?B?aXZoV1Vya053UTB0TXJzQ2FUV2U1dVVna0pWcFcxbTJ6UHdMaXlENGl5WGcv?= =?utf-8?Q?OFJ7ZN+BMOKvk=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4058.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b68e1d62-ab24-4f16-2ce5-08d8b82f78d9 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jan 2021 01:55:30.2737 (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: RmJgNKFw4W/uNx3fT2VydUyJUyH3/w2Uuw553C22YnszvdiWmC3jERfuxyIru/I/aa8SLZSs6ZQTiYTN7siG3Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3563 Return-Path: star.zeng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SnVzdCB0aGluayBtb3JlLCB0aGUgY2hhbmdlIGJlbG93IG5lZWRzIGEgbWlub3IgZW5oYW5jZW1l bnQgYXMgYmVsb3csIG90aGVyd2lzZSB0aGUgdGFibGUgd2lsbCBiZSBvdmVycmlkZGVuIGJ5IHRo ZSBmdW5jdGlvbidzIHNlY29uZCBjYWxsLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+IEZyb206IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwg SmFudWFyeSAxMywgMjAyMSA0OjEyIFBNDQo+IFRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50 ZWwuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47DQo+IGRldmVsQGVkazIu Z3JvdXBzLmlvDQo+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgUGhpbGlw cGUgTWF0aGlldS1EYXVkw6kNCj4gPHBoaWxtZEByZWRoYXQuY29tPjsgS3VtYXIsIFJhaHVsMSA8 cmFodWwxLmt1bWFyQGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCAyLzNdIFVlZmlD cHVQa2cvQ3B1UzNEYXRhRHhlOiBkbyBub3QgYWxsb2NhdGUgdXNlbGVzcw0KPiByZWdpc3RlciB0 YWJsZXMNCj4gDQo+IFN0YXIsDQo+IFRoYW5rcyBmb3IgcG9pbnRpbmcgdGhhdC4NCj4gUmVnaXN0 ZXJDcHVGZWF0dXJlc0xpYiBhc3N1bWVzIFtQcmVTbW1Jbml0XVJlZ2lzdGVyVGFibGUgYXJyYXkg aXMNCj4gYWxsb2NhdGVkIGJ1dCBDcHVTM0RhdGENCj4gZG9lc24ndCBkbyB0aGF0Lg0KPiANCj4g Q2FuIGZvbGxvd2luZyBjaGFuZ2UgZml4IHRoZSBwcm9ibGVtPw0KPiANCj4gLS0tIGEvVWVmaUNw dVBrZy9MaWJyYXJ5L1JlZ2lzdGVyQ3B1RmVhdHVyZXNMaWIvUmVnaXN0ZXJDcHVGZWF0dXJlc0xp Yi5jDQo+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9SZWdpc3RlckNwdUZlYXR1cmVzTGliL1Jl Z2lzdGVyQ3B1RmVhdHVyZXNMaWIuYw0KPiBAQCAtOTM3LDIxICs5MzcsMTkgQEAgR2V0QWNwaUNw dURhdGEgKA0KPiAgICBFRklfUFJPQ0VTU09SX0lORk9STUFUSU9OICAgICAgICAgICAgUHJvY2Vz c29ySW5mb0J1ZmZlcjsNCj4gDQo+ICAgIEFjcGlDcHVEYXRhID0gKEFDUElfQ1BVX0RBVEEgKikg KFVJTlROKSBQY2RHZXQ2NA0KPiAoUGNkQ3B1UzNEYXRhQWRkcmVzcyk7DQo+IC0gIGlmIChBY3Bp Q3B1RGF0YSAhPSBOVUxMKSB7DQo+IC0gICAgcmV0dXJuIEFjcGlDcHVEYXRhOw0KPiAtICB9DQo+ IC0NCj4gLSAgQWNwaUNwdURhdGEgID0gQWxsb2NhdGVQYWdlcyAoRUZJX1NJWkVfVE9fUEFHRVMg KHNpemVvZg0KPiAoQUNQSV9DUFVfREFUQSkpKTsNCj4gLSAgQVNTRVJUIChBY3BpQ3B1RGF0YSAh PSBOVUxMKTsNCj4gKyAgaWYgKEFjcGlDcHVEYXRhID09IE5VTEwpIHsNCj4gKyAgICBBY3BpQ3B1 RGF0YSAgPSBBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9UT19QQUdFUyAoc2l6ZW9mDQo+IChBQ1BJ X0NQVV9EQVRBKSkpOw0KPiArICAgIEFTU0VSVCAoQWNwaUNwdURhdGEgIT0gTlVMTCk7DQo+IA0K PiAtICAvLw0KPiAtICAvLyBTZXQgUGNkQ3B1UzNEYXRhQWRkcmVzcyB0byB0aGUgYmFzZSBhZGRy ZXNzIG9mIHRoZSBBQ1BJX0NQVV9EQVRBDQo+IHN0cnVjdHVyZQ0KPiAtICAvLw0KPiAtICBTdGF0 dXMgPSBQY2RTZXQ2NFMgKFBjZENwdVMzRGF0YUFkZHJlc3MsIChVSU5UNjQpKFVJTlROKUFjcGlD cHVEYXRhKTsNCj4gLSAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gKyAgICAvLw0KPiAr ICAgIC8vIFNldCBQY2RDcHVTM0RhdGFBZGRyZXNzIHRvIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhl IEFDUElfQ1BVX0RBVEENCj4gc3RydWN0dXJlDQo+ICsgICAgLy8NCj4gKyAgICBTdGF0dXMgPSBQ Y2RTZXQ2NFMgKFBjZENwdVMzRGF0YUFkZHJlc3MsDQo+IChVSU5UNjQpKFVJTlROKUFjcGlDcHVE YXRhKTsNCj4gKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPiANCj4gLSAgR2V0TnVt YmVyT2ZQcm9jZXNzb3IgKCZOdW1iZXJPZkNwdXMsICZOdW1iZXJPZkVuYWJsZWRQcm9jZXNzb3Jz KTsNCj4gLSAgQWNwaUNwdURhdGEtPk51bWJlck9mQ3B1cyA9IChVSU5UMzIpTnVtYmVyT2ZDcHVz Ow0KPiArICAgIEdldE51bWJlck9mUHJvY2Vzc29yICgmTnVtYmVyT2ZDcHVzLA0KPiAmTnVtYmVy T2ZFbmFibGVkUHJvY2Vzc29ycyk7DQo+ICsgICAgQWNwaUNwdURhdGEtPk51bWJlck9mQ3B1cyA9 IChVSU5UMzIpTnVtYmVyT2ZDcHVzOw0KPiArICB9DQo+IA0KDQpBZGQgY2hlY2sgYXMgYmVsb3cg aGVyZS4NCg0KaWYgKEFjcGlDcHVEYXRhLT5SZWdpc3RlclRhYmxlID09IDApIHsNCg0KPiAgICAv Lw0KPiAgICAvLyBBbGxvY2F0ZSBidWZmZXIgZm9yIGVtcHR5IFJlZ2lzdGVyVGFibGUgYW5kIFBy ZVNtbUluaXRSZWdpc3RlclRhYmxlDQo+IGZvciBhbGwgQ1BVcw0KPiANCj4gVGhhbmtzLA0KPiBS YXkNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBaZW5nLCBT dGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAx MywgMjAyMSAzOjE3IFBNDQo+ID4gVG86IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBMYXN6 bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsNCj4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K PiA+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgUGhpbGlwcGUgTWF0aGll dS1EYXVkw6kNCj4gPiA8cGhpbG1kQHJlZGhhdC5jb20+OyBLdW1hciwgUmFodWwxIDxyYWh1bDEu a3VtYXJAaW50ZWwuY29tPjsgWmVuZywNCj4gU3Rhcg0KPiA+IDxzdGFyLnplbmdAaW50ZWwuY29t Pg0KPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMi8zXSBVZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZTog ZG8gbm90IGFsbG9jYXRlDQo+IHVzZWxlc3MNCj4gPiByZWdpc3RlciB0YWJsZXMNCj4gPg0KPiA+ IER4ZVJlZ2lzdGVyQ3B1RmVhdHVyZXNMaWIgc3RpbGwgaGFzIHNvbWUgZXhlY3V0aW9uIHNlcXVl bmNlIGRlcGVuZGVuY3kNCj4gdG8NCj4gPiBVZWZpQ3B1UGtnIENwdVMzRGF0YUR4ZS4NCj4gPiBU aGVyZSBpcyBBU1NFUlQgdG8gaGFwcGVuIGF0DQo+ID4NCj4gaHR0cHM6Ly9naXRodWIuY29tL3Rp YW5vY29yZS9lZGsyL2Jsb2IvbWFzdGVyL1VlZmlDcHVQa2cvTGlicmFyeS9SZWdpc3QNCj4gZXJD DQo+ID4gcHVGZWF0dXJlc0xpYi9SZWdpc3RlckNwdUZlYXR1cmVzTGliLmMjTDEwNTkgd2hlbiBD cHVTM0RhdGFEeGUgd2l0aA0KPiB0aGlzDQo+ID4gcGF0Y2ggcnVucyBiZWZvcmUgRHhlUmVnaXN0 ZXJDcHVGZWF0dXJlc0xpYi4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBTdGFyDQo+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29t Pg0KPiA+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAxMywgMjAyMSAyOjEyIFBNDQo+ID4gVG86 IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0K PiA+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29tPjsgUGhpbGlwcGUgTWF0aGll dS1EYXVkw6kNCj4gPiA8cGhpbG1kQHJlZGhhdC5jb20+OyBLdW1hciwgUmFodWwxIDxyYWh1bDEu a3VtYXJAaW50ZWwuY29tPjsgWmVuZywNCj4gU3Rhcg0KPiA+IDxzdGFyLnplbmdAaW50ZWwuY29t Pg0KPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMi8zXSBVZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZTog ZG8gbm90IGFsbG9jYXRlDQo+IHVzZWxlc3MNCj4gPiByZWdpc3RlciB0YWJsZXMNCj4gPg0KPiA+ IFJldmlld2VkLWJ5OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+ID4NCj4gPiAoSSBndWVz cyB5b3UgZG9uJ3Qgd2FudCB0byBwdXQgUmVkaGF0IGNvcHlyaWdodCBpbiB0aGUgcGF0Y2ggMSYy IHNvIHRoZQ0KPiA+IGNvcHlyaWdodCB5ZWFyIGlzIG5vdCB1cGRhdGVkLg0KPiA+IFNpbmNlIGl0 J3MgYSBzaW1wbGUgY2hhbmdlIHRoYXQgbWFrZSB0aGUgbG9naWMgbW9yZSBuZWF0LCBJIGFtIG9r IHdpdGggdGhhdC4pDQo+ID4NCj4gPiBXaWxsIHlvdSBjcmVhdGUgYSBwdWxsIHJlcXVlc3QgdG8g bWVyZ2UgYWxsIDMgcGF0Y2hlcyB0b2dldGhlcj8NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+ DQo+ID4gPiBTZW50OiBXZWRuZXNkYXksIEphbnVhcnkgMTMsIDIwMjEgMzoyMCBBTQ0KPiA+ID4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25n QGludGVsLmNvbT47IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOpDQo+ID4gPiA8cGhpbG1kQHJlZGhh dC5jb20+OyBLdW1hciwgUmFodWwxIDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPjsgTmksDQo+IFJh eQ0KPiA+ID4gPHJheS5uaUBpbnRlbC5jb20+OyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwu Y29tPg0KPiA+ID4gU3ViamVjdDogW1BBVENIIDIvM10gVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGU6 IGRvIG5vdCBhbGxvY2F0ZSB1c2VsZXNzDQo+ID4gPiByZWdpc3RlciB0YWJsZXMNCj4gPiA+DQo+ ID4gPiBDcHVTM0RhdGFEeGUgYWxsb2NhdGVzIHRoZSAiUmVnaXN0ZXJUYWJsZSIgYW5kDQo+ICJQ cmVTbW1Jbml0UmVnaXN0ZXJUYWJsZSINCj4gPiA+IGFycmF5cyBpbiBBQ1BJX0NQVV9EQVRBIGp1 c3Qgc28gZXZlcnkgcHJvY2Vzc29yIGluIHRoZSBzeXN0ZW0gY2FuIGhhdmUNCj4gPiA+IGl0cyBv d24gZW1wdHkgcmVnaXN0ZXIgdGFibGUsIG1hdGNoZWQgYnkgQVBJQyBJRC4gVGhpcyBoYXMgbmV2 ZXIgYmVlbg0KPiA+ID4gdXNlZnVsIGluIHByYWN0aWNlLg0KPiA+ID4NCj4gPiA+IEdpdmVuIGNv bW1pdCBlOTkyY2MzZjQ4NTkgKCJVZWZpQ3B1UGtnIFBpU21tQ3B1RHhlU21tOiBSZWR1Y2UNCj4g PiBTTVJBTQ0KPiA+ID4gY29uc3VtcHRpb24gaW4gQ3B1UzMuYyIsIDIwMjEtMDEtMTEpLCBzaW1w bHkgbGVhdmUgYm90aA0KPiA+ID4gIkFjcGlDcHVEYXRhLT5SZWdpc3RlclRhYmxlIiBhbmQgIkFj cGlDcHVEYXRhLQ0KPiA+UHJlU21tSW5pdFJlZ2lzdGVyVGFibGUiDQo+ID4gPiBpbml0aWFsaXpl ZCB0byB0aGUgemVybyBhZGRyZXNzLiBUaGlzIHNpbXBsaWZpZXMgdGhlIGRyaXZlciwgYW5kIHNh dmVzDQo+ID4gPiBib3RoIG5vcm1hbCBSQU0gKGJvb3Qgc2VydmljZXMgZGF0YSB0eXBlIG1lbW9y eSkgYW5kIC0tIGluDQo+ID4gPiBQaVNtbUNwdUR4ZVNtbQ0KPiA+ID4gLS0gU01SQU0uDQo+ID4g Pg0KPiA+ID4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPiA+IENjOiBQ aGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8cGhpbG1kQHJlZGhhdC5jb20+DQo+ID4gPiBDYzogUmFo dWwgS3VtYXIgPHJhaHVsMS5rdW1hckBpbnRlbC5jb20+DQo+ID4gPiBDYzogUmF5IE5pIDxyYXku bmlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IFN0YXIgWmVuZyA8c3Rhci56ZW5nQGludGVsLmNvbT4N Cj4gPiA+IFJlZjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9p ZD0zMTU5DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQu Y29tPg0KPiA+ID4gLS0tDQo+ID4gPg0KPiA+ID4gTm90ZXM6DQo+ID4gPiAgICAgVGVzdGVkIGJ5 IHRlbXBvcmFyaWx5IHJlcGxhY2luZyBPdm1mUGtnUGtnL0NwdVMzRGF0YUR4ZSBpbiB0aGUNCj4g PiA+IE9WTUYNCj4gPiA+IElBMzINCj4gPiA+ICAgICBhbmQgSUEzMlg2NCBwbGF0Zm9ybXMgd2l0 aCB0aGlzIGRyaXZlciAtLSB0aGlzIGRyaXZlciB3b3JrcyBPSyBpbiBPVk1GDQo+ID4gPiAgICAg YXMgbG9uZyBhcyBubyBDUFVzIGFyZSBob3QtcGx1Z2dlZC4NCj4gPiA+DQo+ID4gPiAgVWVmaUNw dVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhLmMgfCAzMiAtLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAzMiBkZWxldGlvbnMoLSkNCj4gPiA+DQo+ID4gPiBkaWZm IC0tZ2l0IGEvVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhLmMNCj4gPiA+IGIvVWVm aUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhLmMNCj4gPiA+IGluZGV4IDJiZTMzNWQ5MTkw My4uMDc4YWYzNmNmYjQxIDEwMDY0NA0KPiA+ID4gLS0tIGEvVWVmaUNwdVBrZy9DcHVTM0RhdGFE eGUvQ3B1UzNEYXRhLmMNCj4gPiA+ICsrKyBiL1VlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMz RGF0YS5jDQo+ID4gPiBAQCAtMTY1LDEwICsxNjUsNiBAQCBDcHVTM0RhdGFJbml0aWFsaXplICgN Cj4gPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgIE51bWJlck9mQ3B1czsNCj4gPiA+ ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgIE51bWJlck9mRW5hYmxlZFByb2Nlc3NvcnM7 DQo+ID4gPiAgICBWT0lEICAgICAgICAgICAgICAgICAgICAgICAqU3RhY2s7DQo+ID4gPiAtICBV SU5UTiAgICAgICAgICAgICAgICAgICAgICBUYWJsZVNpemU7DQo+ID4gPiAtICBDUFVfUkVHSVNU RVJfVEFCTEUgICAgICAgICAqUmVnaXN0ZXJUYWJsZTsNCj4gPiA+IC0gIFVJTlROICAgICAgICAg ICAgICAgICAgICAgIEluZGV4Ow0KPiA+ID4gLSAgRUZJX1BST0NFU1NPUl9JTkZPUk1BVElPTiAg UHJvY2Vzc29ySW5mb0J1ZmZlcjsNCj4gPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAg IEdkdFNpemU7DQo+ID4gPiAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICBJZHRTaXplOw0K PiA+ID4gICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgKkdkdDsNCj4gPiA+IEBAIC0yNTUs MzQgKzI1MSw2IEBAIENwdVMzRGF0YUluaXRpYWxpemUgKA0KPiA+ID4gICAgICBBY3BpQ3B1RGF0 YS0+UHJlU21tSW5pdFJlZ2lzdGVyVGFibGUgPSBPbGRBY3BpQ3B1RGF0YS0NCj4gPiA+ID5QcmVT bW1Jbml0UmVnaXN0ZXJUYWJsZTsNCj4gPiA+ICAgICAgQWNwaUNwdURhdGEtPkFwTG9jYXRpb24g ICAgICAgICAgICAgID0gT2xkQWNwaUNwdURhdGEtPkFwTG9jYXRpb247DQo+ID4gPiAgICAgIENv cHlNZW0gKCZBY3BpQ3B1RGF0YS0+Q3B1U3RhdHVzLCAmT2xkQWNwaUNwdURhdGEtPkNwdVN0YXR1 cywNCj4gPiA+IHNpemVvZiAoQ1BVX1NUQVRVU19JTkZPUk1BVElPTikpOw0KPiA+ID4gLSAgfSBl bHNlIHsNCj4gPiA+IC0gICAgLy8NCj4gPiA+IC0gICAgLy8gQWxsb2NhdGUgYnVmZmVyIGZvciBl bXB0eSBSZWdpc3RlclRhYmxlIGFuZA0KPiBQcmVTbW1Jbml0UmVnaXN0ZXJUYWJsZQ0KPiA+IGZv cg0KPiA+ID4gYWxsIENQVXMNCj4gPiA+IC0gICAgLy8NCj4gPiA+IC0gICAgVGFibGVTaXplID0g MiAqIE51bWJlck9mQ3B1cyAqIHNpemVvZiAoQ1BVX1JFR0lTVEVSX1RBQkxFKTsNCj4gPiA+IC0g ICAgUmVnaXN0ZXJUYWJsZSA9IChDUFVfUkVHSVNURVJfVEFCTEUgKilBbGxvY2F0ZVplcm9QYWdl cw0KPiAoVGFibGVTaXplKTsNCj4gPiA+IC0gICAgQVNTRVJUIChSZWdpc3RlclRhYmxlICE9IE5V TEwpOw0KPiA+ID4gLQ0KPiA+ID4gLSAgICBmb3IgKEluZGV4ID0gMDsgSW5kZXggPCBOdW1iZXJP ZkNwdXM7IEluZGV4KyspIHsNCj4gPiA+IC0gICAgICBTdGF0dXMgPSBNcFNlcnZpY2VzLT5HZXRQ cm9jZXNzb3JJbmZvICgNCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBNcFNlcnZp Y2VzLA0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGV4LA0KPiA+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICZQcm9jZXNzb3JJbmZvQnVmZmVyDQo+ID4gPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPiA+IC0gICAgICBBU1NFUlRfRUZJX0VSUk9S IChTdGF0dXMpOw0KPiA+ID4gLQ0KPiA+ID4gLSAgICAgIFJlZ2lzdGVyVGFibGVbSW5kZXhdLklu aXRpYWxBcGljSWQgICAgICA9DQo+ID4gPiAoVUlOVDMyKVByb2Nlc3NvckluZm9CdWZmZXIuUHJv Y2Vzc29ySWQ7DQo+ID4gPiAtICAgICAgUmVnaXN0ZXJUYWJsZVtJbmRleF0uVGFibGVMZW5ndGgg ICAgICAgID0gMDsNCj4gPiA+IC0gICAgICBSZWdpc3RlclRhYmxlW0luZGV4XS5BbGxvY2F0ZWRT aXplICAgICAgPSAwOw0KPiA+ID4gLSAgICAgIFJlZ2lzdGVyVGFibGVbSW5kZXhdLlJlZ2lzdGVy VGFibGVFbnRyeSA9IDA7DQo+ID4gPiAtDQo+ID4gPiAtICAgICAgUmVnaXN0ZXJUYWJsZVtOdW1i ZXJPZkNwdXMgKyBJbmRleF0uSW5pdGlhbEFwaWNJZCAgICAgID0NCj4gPiA+IChVSU5UMzIpUHJv Y2Vzc29ySW5mb0J1ZmZlci5Qcm9jZXNzb3JJZDsNCj4gPiA+IC0gICAgICBSZWdpc3RlclRhYmxl W051bWJlck9mQ3B1cyArIEluZGV4XS5UYWJsZUxlbmd0aCAgICAgICAgPSAwOw0KPiA+ID4gLSAg ICAgIFJlZ2lzdGVyVGFibGVbTnVtYmVyT2ZDcHVzICsgSW5kZXhdLkFsbG9jYXRlZFNpemUgICAg ICA9IDA7DQo+ID4gPiAtICAgICAgUmVnaXN0ZXJUYWJsZVtOdW1iZXJPZkNwdXMgKyBJbmRleF0u UmVnaXN0ZXJUYWJsZUVudHJ5ID0gMDsNCj4gPiA+IC0gICAgfQ0KPiA+ID4gLSAgICBBY3BpQ3B1 RGF0YS0+UmVnaXN0ZXJUYWJsZSAgICAgICAgICAgPQ0KPiA+ID4gKEVGSV9QSFlTSUNBTF9BRERS RVNTKShVSU5UTilSZWdpc3RlclRhYmxlOw0KPiA+ID4gLSAgICBBY3BpQ3B1RGF0YS0+UHJlU21t SW5pdFJlZ2lzdGVyVGFibGUgPQ0KPiA+ID4gKEVGSV9QSFlTSUNBTF9BRERSRVNTKShVSU5UTiko UmVnaXN0ZXJUYWJsZSArIE51bWJlck9mQ3B1cyk7DQo+ID4gPiAgICB9DQo+ID4gPg0KPiA+ID4g ICAgLy8NCj4gPiA+IC0tDQo+ID4gPiAyLjE5LjEuMy5nMzAyNDdhYTVkMjAxDQo+ID4gPg0KDQo=