From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web10.5163.1610525620410862041 for ; Wed, 13 Jan 2021 00:13:41 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=uGZR9sy5; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: ray.ni@intel.com) IronPort-SDR: kAaStNXWQZfFmmvro5k+rej9vlm1KaPmgVb0RBjpkZ4YnqzrF98s8uKND1w7c77OhI5fmwFZuT KeKrMfEnuAjQ== X-IronPort-AV: E=McAfee;i="6000,8403,9862"; a="165844436" X-IronPort-AV: E=Sophos;i="5.79,343,1602572400"; d="scan'208";a="165844436" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jan 2021 00:13:31 -0800 IronPort-SDR: 2/YLvX2QdX4+tWUs/3vg+mr2XPUApurvy8NTRjOusx2UcN42x8zHkVc3whJas4S5Jt4TRXiFf6 YWp/7gHp2vYA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,343,1602572400"; d="scan'208";a="353365457" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga008.fm.intel.com with ESMTP; 13 Jan 2021 00:13:29 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) 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 00:13:28 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.1713.5 via Frontend Transport; Wed, 13 Jan 2021 00:13:28 -0800 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.172) 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, 13 Jan 2021 00:12:15 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MFiKU0X68HvBEBidV8rPE6Ppw/EsLRiVY994eiDbYXE2z12BWnxna+JlczramgE4TsJLtcO1Rgd69wiE1sLCetyUcx5/PQYJcXlHjbjEA0TiGo1IVXvfUIheR8I/i5dZnXaltx1gBcomjqnQBIcUAt2rxQRau2kXLU/YwlCI1tUdzXR0L4uuA5F7Y90YlwLVBP9sYuglO6XPM2+fAy1BA17eC/rjoBuCFa3ttdV4XZR1sIz9v0dbRcmnPm3LYmL/Nlfy2sM2mlBb+Cj/TNAp52gOAbIY9CB+odXAhEoqe7iORi6+Exl8SQ6tvapZERPpdH5vITEaIcb7xNPtWBu0AQ== 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=XOLuoSCKeKMMmAN+b56xCfV9xgO+8W4BPHgiKcE0DJo=; b=DS85OHCiHZI0srCezN5pYjN/1NKMQzmyqiVvC/kLkDP570YIUdwyjO8pCLWIQzaskbs/uwByh1iYmfKU4MEJ/05c9mKDWNtt5yLoUJd9om2tr1RqtWVmQ2CUPjrrzdmZDzavVMIHaP//hTfW2mv9zXxOpHAHBLnfl97FU5UGhywfdRyASOLxByZQUXfjDm2sC8zokJgzV6AJtnhRfkgJ8DS9sfH1jX/FgRyeGUURPCgQJ3NvaFhEnBoXcOscK0RuprKNMB3LeQ/7dtVHyocBuLTaM3ct43PhOwHRDJP3/Rsk7VHLXMJy2IzEEs9LObhY1aW+USdFoGEkybRTfJEjdg== 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=XOLuoSCKeKMMmAN+b56xCfV9xgO+8W4BPHgiKcE0DJo=; b=uGZR9sy5d415SpIx+3yFUUhpvj+KsorpD9R4f0v9DlpQGEgo1q3vpOGW88KnebErCcPmHvRGxpvfM+sck9c472ZCF6BFwSdgCpXuZH8RlKuwS8XPyfMpRH+8KXM3Ih8oO1OqLMAc90QwZRNJY/yT924YexX7/ycDxQt5xa+/b2E= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by CO1PR11MB4852.namprd11.prod.outlook.com (2603:10b6:303:9f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3763.10; Wed, 13 Jan 2021 08:12:14 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::d18:1234:c1d6:5936]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::d18:1234:c1d6:5936%7]) with mapi id 15.20.3763.010; Wed, 13 Jan 2021 08:12:14 +0000 From: "Ni, Ray" To: "Zeng, Star" , Laszlo Ersek , "devel@edk2.groups.io" CC: "Dong, Eric" , =?utf-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= , "Kumar, Rahul1" 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: AQHW6RfpxmvHHIqjTk2NaiA87EFz+qolEmSggAATkYCAAAvXoA== Date: Wed, 13 Jan 2021 08:12:14 +0000 Message-ID: References: <20210112191934.12459-1-lersek@redhat.com> <20210112191934.12459-3-lersek@redhat.com> In-Reply-To: Accept-Language: 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.194] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 329e4610-4dcd-4856-45ae-08d8b79aef61 x-ms-traffictypediagnostic: CO1PR11MB4852: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1468; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /qrhMUAJa4DUuBIFc0x1oVnqhwT7bQ7BwgB0DrqFGCdyGzfbhI1WXhKMyhFPt3GRdn2BodQWR17y26zD0QPqoqIvIBBB8oBTfyZpuSnd5BT5bylVqpaHryYJOfBLp1JJP2jCcuKYTt4H6LOKXgB6Ta2hSm9q+njRsG8NQ+4fv8QueK0NlHE5T305cFYIgYN+lfMOHSAILB5XOao1ci165XGujkhQtNcHBQr4pJcghUo6XkjhpjaseHJXflHuzFhg3/H6kJOq3t6sobcZBln+30yelpihr/YD8+4IhKoBuM7wzVP0gJfbVSud7L7zl+ult37vERYBPvEiJ5V6rCzxjquy+c5eZC61HS/5CQoTEObZ5v2XWQyUX0mVpIB9isSUIRyuyakZFEqgic6KiFEUgU2x6IJU6Khlqab2mnnvBhFR3TGJ3IJY1kc57G/7vHJRS8lWWuuAvGq2o6C8fTLJDQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4930.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(346002)(396003)(136003)(39860400002)(376002)(8676002)(316002)(2906002)(5660300002)(8936002)(110136005)(54906003)(478600001)(52536014)(19627235002)(966005)(7696005)(66446008)(33656002)(64756008)(66946007)(4326008)(76116006)(107886003)(66476007)(86362001)(66556008)(6506007)(53546011)(26005)(71200400001)(186003)(83380400001)(9686003)(55016002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?TS9aY1ZONUZHZGU4OUxaajBueTNiNzYzTG1lclloT0YreFFXTVU2d1FEVW4w?= =?utf-8?B?YnFBNmJSNzYyTUtDNWZudHNnL2JXQkZiZjlzOWRxcDFpQ3I1SndvRzNMRHhj?= =?utf-8?B?dU1hcTI2bS9KZ2lUdzJHNkk4R2xIdWFlUmpDQ1NUazBzNE5KK0JBMG56VkE0?= =?utf-8?B?aUFMQTJpbzF1aktYYVY4Q3NDWEVDNlRmN2ZDSW1BcEVjSXBIMmg3dXhwWXRI?= =?utf-8?B?N2FvcGozVXFpbDBlOWt2akZEZ2FCSTBLMW1QY0VJNHMveVlGa09lbC8yeEpP?= =?utf-8?B?U1BZZTJsOFBESS8rWGNPalZyMmpWcTUxZjdyN1haRXZ1S25zVUtYN3BBaW4w?= =?utf-8?B?Zi92YTc1N3RqdGF4dGFhUjBVMEpZQThiek8yaXVyZ25DWjNqZFNkSkFtMWZC?= =?utf-8?B?dFluYXhZTUhhMnByaE0yT2preW9xQjBVdWVJVkpaT1dQZ3hOM1hFM0F4M0wr?= =?utf-8?B?Zi85UnV5Z0hmL21yYWZCMEdkMktBWWszbVlRSlQzWFgxQjBIWTRVenh2UFBr?= =?utf-8?B?WmZRUXhtNHU4SHFDMUNBd3JBSThpT29Jb1BleGVPT1J4UGJpN3BwNUtiWXMx?= =?utf-8?B?blVSZExvbDI2TllCV1JvRWFRdjNrSk4vbXJqV1BUbzFXYWZNSXUvVGZzUGtl?= =?utf-8?B?WmtoUjJiTlJyeU9tUmdOUWFEclEya2lQQkg2cENQeTNjTUFxUlFuYjBWVENN?= =?utf-8?B?OGxSeWZRN0luUWp3VGtkZzRmbG1xbFNJaHlZSU40S1BYUUptQUdNcW1YQ3V3?= =?utf-8?B?aEFqNE5TVjdyZHFNR3E4N2drT3VoZEFUdE9TTEhWaHAyeHRQOUFTSG55aTZ5?= =?utf-8?B?dDllUnpLeXVXdTB4UUsyVUNVY05YRjFLREswcnBPSEd1dW5iQnYzOGFoQzI1?= =?utf-8?B?d2NoTzZENWpyQVBWWHBBVDBNdEczV25Tc2dYb1pJa0J2bkNLbXdBRzZ5Y0hS?= =?utf-8?B?Zi9iZkJiT0t5cDJwTHVLT2d5K0thTHJiaDAvb2Q0L2xRQ2EwQng2dVZzNzRq?= =?utf-8?B?RkhEc20wL0FQcWlJNXpsckZkRC9raWdDdUo2OC9XdzZ6bEJ6L1FNOGV1blkv?= =?utf-8?B?MGx4STZZN25GZ25vZytpSUNYS2o0WmdhSGw3QlFPK0ZxZm9kVHlWcy93MVJM?= =?utf-8?B?enBYblJLZG9MZS9nQTVleDEvV3hQZXFxR3l4NUxrZlEwbDRnanQ4RHMzajNN?= =?utf-8?B?TXFCU2UzZWp0OXM4QnF1UDd6TE1IcEVpYjNhSTV6K1llZWhObjZZWTlsV0ll?= =?utf-8?B?L3h2SDlRMi9IVytNaHlodDNqUXlrOXdoTGp2dkVlemJVYVM3dmdjSWYwSkdN?= =?utf-8?Q?RQst4dAtYp/gu/7QQ1JsV/lR6wz0LZeHc0?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4930.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 329e4610-4dcd-4856-45ae-08d8b79aef61 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jan 2021 08:12:14.0616 (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: E2jiUEU8nyA+6i3qOrMZFVEOSRtedNrjoUVXl3coG1BG3TpLmkgQh9cF+B5yV/CCBBJvKGJhqFbcz1jLK2LCCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4852 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U3RhciwNClRoYW5rcyBmb3IgcG9pbnRpbmcgdGhhdC4NClJlZ2lzdGVyQ3B1RmVhdHVyZXNMaWIg YXNzdW1lcyBbUHJlU21tSW5pdF1SZWdpc3RlclRhYmxlIGFycmF5IGlzIGFsbG9jYXRlZCBidXQg Q3B1UzNEYXRhDQpkb2Vzbid0IGRvIHRoYXQuDQoNCkNhbiBmb2xsb3dpbmcgY2hhbmdlIGZpeCB0 aGUgcHJvYmxlbT8NCg0KLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1JlZ2lzdGVyQ3B1RmVhdHVy ZXNMaWIvUmVnaXN0ZXJDcHVGZWF0dXJlc0xpYi5jDQorKysgYi9VZWZpQ3B1UGtnL0xpYnJhcnkv UmVnaXN0ZXJDcHVGZWF0dXJlc0xpYi9SZWdpc3RlckNwdUZlYXR1cmVzTGliLmMNCkBAIC05Mzcs MjEgKzkzNywxOSBAQCBHZXRBY3BpQ3B1RGF0YSAoDQogICBFRklfUFJPQ0VTU09SX0lORk9STUFU SU9OICAgICAgICAgICAgUHJvY2Vzc29ySW5mb0J1ZmZlcjsNCiANCiAgIEFjcGlDcHVEYXRhID0g KEFDUElfQ1BVX0RBVEEgKikgKFVJTlROKSBQY2RHZXQ2NCAoUGNkQ3B1UzNEYXRhQWRkcmVzcyk7 DQotICBpZiAoQWNwaUNwdURhdGEgIT0gTlVMTCkgew0KLSAgICByZXR1cm4gQWNwaUNwdURhdGE7 DQotICB9DQotDQotICBBY3BpQ3B1RGF0YSAgPSBBbGxvY2F0ZVBhZ2VzIChFRklfU0laRV9UT19Q QUdFUyAoc2l6ZW9mIChBQ1BJX0NQVV9EQVRBKSkpOw0KLSAgQVNTRVJUIChBY3BpQ3B1RGF0YSAh PSBOVUxMKTsNCisgIGlmIChBY3BpQ3B1RGF0YSA9PSBOVUxMKSB7DQorICAgIEFjcGlDcHVEYXRh ICA9IEFsbG9jYXRlUGFnZXMgKEVGSV9TSVpFX1RPX1BBR0VTIChzaXplb2YgKEFDUElfQ1BVX0RB VEEpKSk7DQorICAgIEFTU0VSVCAoQWNwaUNwdURhdGEgIT0gTlVMTCk7DQogDQotICAvLw0KLSAg Ly8gU2V0IFBjZENwdVMzRGF0YUFkZHJlc3MgdG8gdGhlIGJhc2UgYWRkcmVzcyBvZiB0aGUgQUNQ SV9DUFVfREFUQSBzdHJ1Y3R1cmUNCi0gIC8vDQotICBTdGF0dXMgPSBQY2RTZXQ2NFMgKFBjZENw dVMzRGF0YUFkZHJlc3MsIChVSU5UNjQpKFVJTlROKUFjcGlDcHVEYXRhKTsNCi0gIEFTU0VSVF9F RklfRVJST1IgKFN0YXR1cyk7DQorICAgIC8vDQorICAgIC8vIFNldCBQY2RDcHVTM0RhdGFBZGRy ZXNzIHRvIHRoZSBiYXNlIGFkZHJlc3Mgb2YgdGhlIEFDUElfQ1BVX0RBVEEgc3RydWN0dXJlDQor ICAgIC8vDQorICAgIFN0YXR1cyA9IFBjZFNldDY0UyAoUGNkQ3B1UzNEYXRhQWRkcmVzcywgKFVJ TlQ2NCkoVUlOVE4pQWNwaUNwdURhdGEpOw0KKyAgICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMp Ow0KIA0KLSAgR2V0TnVtYmVyT2ZQcm9jZXNzb3IgKCZOdW1iZXJPZkNwdXMsICZOdW1iZXJPZkVu YWJsZWRQcm9jZXNzb3JzKTsNCi0gIEFjcGlDcHVEYXRhLT5OdW1iZXJPZkNwdXMgPSAoVUlOVDMy KU51bWJlck9mQ3B1czsNCisgICAgR2V0TnVtYmVyT2ZQcm9jZXNzb3IgKCZOdW1iZXJPZkNwdXMs ICZOdW1iZXJPZkVuYWJsZWRQcm9jZXNzb3JzKTsNCisgICAgQWNwaUNwdURhdGEtPk51bWJlck9m Q3B1cyA9IChVSU5UMzIpTnVtYmVyT2ZDcHVzOw0KKyAgfQ0KIA0KICAgLy8NCiAgIC8vIEFsbG9j YXRlIGJ1ZmZlciBmb3IgZW1wdHkgUmVnaXN0ZXJUYWJsZSBhbmQgUHJlU21tSW5pdFJlZ2lzdGVy VGFibGUgZm9yIGFsbCBDUFVzDQoNClRoYW5rcywNClJheQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+IFNl bnQ6IFdlZG5lc2RheSwgSmFudWFyeSAxMywgMjAyMSAzOjE3IFBNDQo+IFRvOiBOaSwgUmF5IDxy YXkubmlAaW50ZWwuY29tPjsgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT47DQo+IGRl dmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29t PjsgUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kNCj4gPHBoaWxtZEByZWRoYXQuY29tPjsgS3VtYXIs IFJhaHVsMSA8cmFodWwxLmt1bWFyQGludGVsLmNvbT47IFplbmcsIFN0YXINCj4gPHN0YXIuemVu Z0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMi8zXSBVZWZpQ3B1UGtnL0NwdVMz RGF0YUR4ZTogZG8gbm90IGFsbG9jYXRlIHVzZWxlc3MNCj4gcmVnaXN0ZXIgdGFibGVzDQo+IA0K PiBEeGVSZWdpc3RlckNwdUZlYXR1cmVzTGliIHN0aWxsIGhhcyBzb21lIGV4ZWN1dGlvbiBzZXF1 ZW5jZSBkZXBlbmRlbmN5IHRvDQo+IFVlZmlDcHVQa2cgQ3B1UzNEYXRhRHhlLg0KPiBUaGVyZSBp cyBBU1NFUlQgdG8gaGFwcGVuIGF0DQo+IGh0dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRr Mi9ibG9iL21hc3Rlci9VZWZpQ3B1UGtnL0xpYnJhcnkvUmVnaXN0ZXJDDQo+IHB1RmVhdHVyZXNM aWIvUmVnaXN0ZXJDcHVGZWF0dXJlc0xpYi5jI0wxMDU5IHdoZW4gQ3B1UzNEYXRhRHhlIHdpdGgg dGhpcw0KPiBwYXRjaCBydW5zIGJlZm9yZSBEeGVSZWdpc3RlckNwdUZlYXR1cmVzTGliLg0KPiAN Cj4gVGhhbmtzLA0KPiBTdGFyDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAx MywgMjAyMSAyOjEyIFBNDQo+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5j b20+OyBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqQ0KPiA8cGhpbG1kQHJlZGhhdC5jb20+OyBLdW1h ciwgUmFodWwxIDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPjsgWmVuZywgU3Rhcg0KPiA8c3Rhci56 ZW5nQGludGVsLmNvbT4NCj4gU3ViamVjdDogUkU6IFtQQVRDSCAyLzNdIFVlZmlDcHVQa2cvQ3B1 UzNEYXRhRHhlOiBkbyBub3QgYWxsb2NhdGUgdXNlbGVzcw0KPiByZWdpc3RlciB0YWJsZXMNCj4g DQo+IFJldmlld2VkLWJ5OiBSYXkgTmkgPHJheS5uaUBpbnRlbC5jb20+DQo+IA0KPiAoSSBndWVz cyB5b3UgZG9uJ3Qgd2FudCB0byBwdXQgUmVkaGF0IGNvcHlyaWdodCBpbiB0aGUgcGF0Y2ggMSYy IHNvIHRoZQ0KPiBjb3B5cmlnaHQgeWVhciBpcyBub3QgdXBkYXRlZC4NCj4gU2luY2UgaXQncyBh IHNpbXBsZSBjaGFuZ2UgdGhhdCBtYWtlIHRoZSBsb2dpYyBtb3JlIG5lYXQsIEkgYW0gb2sgd2l0 aCB0aGF0LikNCj4gDQo+IFdpbGwgeW91IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCB0byBtZXJnZSBh bGwgMyBwYXRjaGVzIHRvZ2V0aGVyPw0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+IEZyb206IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4gU2VudDog V2VkbmVzZGF5LCBKYW51YXJ5IDEzLCAyMDIxIDM6MjAgQU0NCj4gPiBUbzogZGV2ZWxAZWRrMi5n cm91cHMuaW8NCj4gPiBDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IFBoaWxp cHBlIE1hdGhpZXUtRGF1ZMOpDQo+ID4gPHBoaWxtZEByZWRoYXQuY29tPjsgS3VtYXIsIFJhaHVs MSA8cmFodWwxLmt1bWFyQGludGVsLmNvbT47IE5pLCBSYXkNCj4gPiA8cmF5Lm5pQGludGVsLmNv bT47IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogW1BBVENI IDIvM10gVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGU6IGRvIG5vdCBhbGxvY2F0ZSB1c2VsZXNzDQo+ ID4gcmVnaXN0ZXIgdGFibGVzDQo+ID4NCj4gPiBDcHVTM0RhdGFEeGUgYWxsb2NhdGVzIHRoZSAi UmVnaXN0ZXJUYWJsZSIgYW5kICJQcmVTbW1Jbml0UmVnaXN0ZXJUYWJsZSINCj4gPiBhcnJheXMg aW4gQUNQSV9DUFVfREFUQSBqdXN0IHNvIGV2ZXJ5IHByb2Nlc3NvciBpbiB0aGUgc3lzdGVtIGNh biBoYXZlDQo+ID4gaXRzIG93biBlbXB0eSByZWdpc3RlciB0YWJsZSwgbWF0Y2hlZCBieSBBUElD IElELiBUaGlzIGhhcyBuZXZlciBiZWVuDQo+ID4gdXNlZnVsIGluIHByYWN0aWNlLg0KPiA+DQo+ ID4gR2l2ZW4gY29tbWl0IGU5OTJjYzNmNDg1OSAoIlVlZmlDcHVQa2cgUGlTbW1DcHVEeGVTbW06 IFJlZHVjZQ0KPiBTTVJBTQ0KPiA+IGNvbnN1bXB0aW9uIGluIENwdVMzLmMiLCAyMDIxLTAxLTEx KSwgc2ltcGx5IGxlYXZlIGJvdGgNCj4gPiAiQWNwaUNwdURhdGEtPlJlZ2lzdGVyVGFibGUiIGFu ZCAiQWNwaUNwdURhdGEtPlByZVNtbUluaXRSZWdpc3RlclRhYmxlIg0KPiA+IGluaXRpYWxpemVk IHRvIHRoZSB6ZXJvIGFkZHJlc3MuIFRoaXMgc2ltcGxpZmllcyB0aGUgZHJpdmVyLCBhbmQgc2F2 ZXMNCj4gPiBib3RoIG5vcm1hbCBSQU0gKGJvb3Qgc2VydmljZXMgZGF0YSB0eXBlIG1lbW9yeSkg YW5kIC0tIGluDQo+ID4gUGlTbW1DcHVEeGVTbW0NCj4gPiAtLSBTTVJBTS4NCj4gPg0KPiA+IENj OiBFcmljIERvbmcgPGVyaWMuZG9uZ0BpbnRlbC5jb20+DQo+ID4gQ2M6IFBoaWxpcHBlIE1hdGhp ZXUtRGF1ZMOpIDxwaGlsbWRAcmVkaGF0LmNvbT4NCj4gPiBDYzogUmFodWwgS3VtYXIgPHJhaHVs MS5rdW1hckBpbnRlbC5jb20+DQo+ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4g PiBDYzogU3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPiA+IFJlZjogaHR0cHM6Ly9i dWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTU5DQo+ID4gU2lnbmVkLW9m Zi1ieTogTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPiAtLS0NCj4gPg0KPiA+ IE5vdGVzOg0KPiA+ICAgICBUZXN0ZWQgYnkgdGVtcG9yYXJpbHkgcmVwbGFjaW5nIE92bWZQa2dQ a2cvQ3B1UzNEYXRhRHhlIGluIHRoZQ0KPiA+IE9WTUYNCj4gPiBJQTMyDQo+ID4gICAgIGFuZCBJ QTMyWDY0IHBsYXRmb3JtcyB3aXRoIHRoaXMgZHJpdmVyIC0tIHRoaXMgZHJpdmVyIHdvcmtzIE9L IGluIE9WTUYNCj4gPiAgICAgYXMgbG9uZyBhcyBubyBDUFVzIGFyZSBob3QtcGx1Z2dlZC4NCj4g Pg0KPiA+ICBVZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZS9DcHVTM0RhdGEuYyB8IDMyIC0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAzMiBkZWxldGlvbnMoLSkNCj4gPg0K PiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL0NwdVMzRGF0YUR4ZS9DcHVTM0RhdGEuYw0KPiA+ IGIvVWVmaUNwdVBrZy9DcHVTM0RhdGFEeGUvQ3B1UzNEYXRhLmMNCj4gPiBpbmRleCAyYmUzMzVk OTE5MDMuLjA3OGFmMzZjZmI0MSAxMDA2NDQNCj4gPiAtLS0gYS9VZWZpQ3B1UGtnL0NwdVMzRGF0 YUR4ZS9DcHVTM0RhdGEuYw0KPiA+ICsrKyBiL1VlZmlDcHVQa2cvQ3B1UzNEYXRhRHhlL0NwdVMz RGF0YS5jDQo+ID4gQEAgLTE2NSwxMCArMTY1LDYgQEAgQ3B1UzNEYXRhSW5pdGlhbGl6ZSAoDQo+ ID4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgTnVtYmVyT2ZDcHVzOw0KPiA+ICAgIFVJ TlROICAgICAgICAgICAgICAgICAgICAgIE51bWJlck9mRW5hYmxlZFByb2Nlc3NvcnM7DQo+ID4g ICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgKlN0YWNrOw0KPiA+IC0gIFVJTlROICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlU2l6ZTsNCj4gPiAtICBDUFVfUkVHSVNURVJfVEFCTEUgICAg ICAgICAqUmVnaXN0ZXJUYWJsZTsNCj4gPiAtICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICBJ bmRleDsNCj4gPiAtICBFRklfUFJPQ0VTU09SX0lORk9STUFUSU9OICBQcm9jZXNzb3JJbmZvQnVm ZmVyOw0KPiA+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgIEdkdFNpemU7DQo+ID4gICAg VUlOVE4gICAgICAgICAgICAgICAgICAgICAgSWR0U2l6ZTsNCj4gPiAgICBWT0lEICAgICAgICAg ICAgICAgICAgICAgICAqR2R0Ow0KPiA+IEBAIC0yNTUsMzQgKzI1MSw2IEBAIENwdVMzRGF0YUlu aXRpYWxpemUgKA0KPiA+ICAgICAgQWNwaUNwdURhdGEtPlByZVNtbUluaXRSZWdpc3RlclRhYmxl ID0gT2xkQWNwaUNwdURhdGEtDQo+ID4gPlByZVNtbUluaXRSZWdpc3RlclRhYmxlOw0KPiA+ICAg ICAgQWNwaUNwdURhdGEtPkFwTG9jYXRpb24gICAgICAgICAgICAgID0gT2xkQWNwaUNwdURhdGEt PkFwTG9jYXRpb247DQo+ID4gICAgICBDb3B5TWVtICgmQWNwaUNwdURhdGEtPkNwdVN0YXR1cywg Jk9sZEFjcGlDcHVEYXRhLT5DcHVTdGF0dXMsDQo+ID4gc2l6ZW9mIChDUFVfU1RBVFVTX0lORk9S TUFUSU9OKSk7DQo+ID4gLSAgfSBlbHNlIHsNCj4gPiAtICAgIC8vDQo+ID4gLSAgICAvLyBBbGxv Y2F0ZSBidWZmZXIgZm9yIGVtcHR5IFJlZ2lzdGVyVGFibGUgYW5kIFByZVNtbUluaXRSZWdpc3Rl clRhYmxlDQo+IGZvcg0KPiA+IGFsbCBDUFVzDQo+ID4gLSAgICAvLw0KPiA+IC0gICAgVGFibGVT aXplID0gMiAqIE51bWJlck9mQ3B1cyAqIHNpemVvZiAoQ1BVX1JFR0lTVEVSX1RBQkxFKTsNCj4g PiAtICAgIFJlZ2lzdGVyVGFibGUgPSAoQ1BVX1JFR0lTVEVSX1RBQkxFICopQWxsb2NhdGVaZXJv UGFnZXMgKFRhYmxlU2l6ZSk7DQo+ID4gLSAgICBBU1NFUlQgKFJlZ2lzdGVyVGFibGUgIT0gTlVM TCk7DQo+ID4gLQ0KPiA+IC0gICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgTnVtYmVyT2ZDcHVz OyBJbmRleCsrKSB7DQo+ID4gLSAgICAgIFN0YXR1cyA9IE1wU2VydmljZXMtPkdldFByb2Nlc3Nv ckluZm8gKA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBNcFNlcnZpY2VzLA0KPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCwNCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgJlByb2Nlc3NvckluZm9CdWZmZXINCj4gPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgKTsNCj4gPiAtICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPiAt DQo+ID4gLSAgICAgIFJlZ2lzdGVyVGFibGVbSW5kZXhdLkluaXRpYWxBcGljSWQgICAgICA9DQo+ ID4gKFVJTlQzMilQcm9jZXNzb3JJbmZvQnVmZmVyLlByb2Nlc3NvcklkOw0KPiA+IC0gICAgICBS ZWdpc3RlclRhYmxlW0luZGV4XS5UYWJsZUxlbmd0aCAgICAgICAgPSAwOw0KPiA+IC0gICAgICBS ZWdpc3RlclRhYmxlW0luZGV4XS5BbGxvY2F0ZWRTaXplICAgICAgPSAwOw0KPiA+IC0gICAgICBS ZWdpc3RlclRhYmxlW0luZGV4XS5SZWdpc3RlclRhYmxlRW50cnkgPSAwOw0KPiA+IC0NCj4gPiAt ICAgICAgUmVnaXN0ZXJUYWJsZVtOdW1iZXJPZkNwdXMgKyBJbmRleF0uSW5pdGlhbEFwaWNJZCAg ICAgID0NCj4gPiAoVUlOVDMyKVByb2Nlc3NvckluZm9CdWZmZXIuUHJvY2Vzc29ySWQ7DQo+ID4g LSAgICAgIFJlZ2lzdGVyVGFibGVbTnVtYmVyT2ZDcHVzICsgSW5kZXhdLlRhYmxlTGVuZ3RoICAg ICAgICA9IDA7DQo+ID4gLSAgICAgIFJlZ2lzdGVyVGFibGVbTnVtYmVyT2ZDcHVzICsgSW5kZXhd LkFsbG9jYXRlZFNpemUgICAgICA9IDA7DQo+ID4gLSAgICAgIFJlZ2lzdGVyVGFibGVbTnVtYmVy T2ZDcHVzICsgSW5kZXhdLlJlZ2lzdGVyVGFibGVFbnRyeSA9IDA7DQo+ID4gLSAgICB9DQo+ID4g LSAgICBBY3BpQ3B1RGF0YS0+UmVnaXN0ZXJUYWJsZSAgICAgICAgICAgPQ0KPiA+IChFRklfUEhZ U0lDQUxfQUREUkVTUykoVUlOVE4pUmVnaXN0ZXJUYWJsZTsNCj4gPiAtICAgIEFjcGlDcHVEYXRh LT5QcmVTbW1Jbml0UmVnaXN0ZXJUYWJsZSA9DQo+ID4gKEVGSV9QSFlTSUNBTF9BRERSRVNTKShV SU5UTikoUmVnaXN0ZXJUYWJsZSArIE51bWJlck9mQ3B1cyk7DQo+ID4gICAgfQ0KPiA+DQo+ID4g ICAgLy8NCj4gPiAtLQ0KPiA+IDIuMTkuMS4zLmczMDI0N2FhNWQyMDENCj4gPg0KDQo=