From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=rNUFmZFM; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.70.56, mailfrom: thomas.lendacky@amd.com) Received: from NAM04-SN1-obe.outbound.protection.outlook.com (NAM04-SN1-obe.outbound.protection.outlook.com [40.107.70.56]) by groups.io with SMTP; Wed, 02 Oct 2019 09:06:40 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lVFP+xFk5KPoqBJCESCuPQqEog9KbH1TOxP+qe4k+n+hd+xKXmDJDosR8RtwSQzafwSOfLFsseXVs8Ejj/F3t1nkMF13D3dhJGAqsIjM2FzqghfLqM/1HreOu02ae8tw9L9Sv92NkMuvqyJzpLsQ/FQKUHyEu51cWA25GrSzCMPqIyx/knqrWdQacrNGDi6XBkSTncUiCsJ8VNXSAVkX7etcaozEdWMUt6VY7xfJPQhyOzPR73evagCTv4gpmWzKyTkTxVRgB+Fej+axIFrh9WVJ2uzhVnuUi/+z9aKUoB7AWmNV8Tpup3ifoBySgBU6vNCKpkhs6G2dLnPXWOWung== 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=RoQ1AwSbec41Ukv90quz00H+CiMCJ9mpVa4arokataQ=; b=XQO1QIa0dKbM4ILh8qSTn5ivl+t4jDyXWbqX+IaG2tLVDHmJ0BsHdU1B8p8gSh35BMM9uDl/m0M4uBaf5bP2jnuE0HQl8B9EsfsfsZoxqVVb/4rIJWMybnvUU2lU8non5Bf3W7S7lRfPigxwflmaqdeOBpdN8P/1hfsmU7C01tPIM2JKRrM/mG05hco3P9rldKtDPe+tkjf2DOBIlKKx+X8iYSei7MNBOkNx9zTBlVOYrD7n1hP4TQioHAe9eblBzJ/OG5rAKkTYRJrGUKSmRN9NtONajFbFESa9+Ti8nJ/7q54Zz0vx5lHrBeb2yu5Z5a5W1xmA7wlf8X3FiLTI3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RoQ1AwSbec41Ukv90quz00H+CiMCJ9mpVa4arokataQ=; b=rNUFmZFMqbVzK8+ZYQZwgf6St/EcgaGk62Olio4ce3QNz34HtbVJ/0CxWi1s7LsCkyecAqrAaR/WUx+vT9PqKCGXK6E8cHDRh8wQ9DsKbClRLFKWY6I2CLTlEzh0SonkWlYLhbHtSHeVdxjkve2iFTreW/L36x3WB3vhQkR6Dy8= Received: from DM6PR12MB3163.namprd12.prod.outlook.com (20.179.104.150) by DM6PR12MB4235.namprd12.prod.outlook.com (10.141.8.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.15; Wed, 2 Oct 2019 16:06:39 +0000 Received: from DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::85b7:7456:1a67:78aa]) by DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::85b7:7456:1a67:78aa%7]) with mapi id 15.20.2305.023; Wed, 2 Oct 2019 16:06:39 +0000 From: "Lendacky, Thomas" To: Laszlo Ersek , "devel@edk2.groups.io" , "Singh, Brijesh" CC: Jordan Justen , Ard Biesheuvel , Michael D Kinney , Liming Gao , Eric Dong , Ray Ni Subject: Re: [edk2-devel] [RFC PATCH v2 10/44] OvmfPkg: A per-CPU variable area for #VC usage Thread-Topic: [edk2-devel] [RFC PATCH v2 10/44] OvmfPkg: A per-CPU variable area for #VC usage Thread-Index: AQHVbyPIi0t/93BoCUigK+eNYlDx0KdHUSCAgABHUwA= Date: Wed, 2 Oct 2019 16:06:38 +0000 Message-ID: <83eb0051-9cc1-bd53-933b-2bce2e7fd826@amd.com> References: <280a8459-6258-5b04-8ecc-125d7d991d21@redhat.com> In-Reply-To: <280a8459-6258-5b04-8ecc-125d7d991d21@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN4PR0201CA0031.namprd02.prod.outlook.com (2603:10b6:803:2e::17) To DM6PR12MB3163.namprd12.prod.outlook.com (2603:10b6:5:182::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.78.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b9321816-c86c-4a30-7e98-08d7475281c4 x-ms-office365-filtering-ht: Tenant x-ms-traffictypediagnostic: DM6PR12MB4235: x-ms-exchange-purlcount: 2 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0178184651 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(396003)(136003)(376002)(39860400002)(346002)(366004)(189003)(199004)(54906003)(19627235002)(26005)(86362001)(110136005)(386003)(6506007)(99286004)(71200400001)(7736002)(76176011)(6246003)(66556008)(64756008)(66446008)(186003)(66476007)(31696002)(66946007)(52116002)(2906002)(229853002)(71190400001)(966005)(6116002)(3846002)(6306002)(14454004)(8936002)(6486002)(6436002)(66066001)(6512007)(446003)(11346002)(8676002)(256004)(476003)(486006)(2616005)(6636002)(14444005)(81166006)(316002)(53546011)(102836004)(25786009)(305945005)(36756003)(4326008)(81156014)(5660300002)(478600001)(31686004)(2501003);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR12MB4235;H:DM6PR12MB3163.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PdkBOFLC1/zGxdv/t63w4JS3yHBSVsPg2/x7x4ncEYVAlDgK/gAmt1rc79Lu3WZdEXSjnga450xN6na1uzCY+2si9utbS/uBB50xZfBSsklVeqN2+2vM8sl12aAy+zYXJiJGQiUcXT3zy5TO9VxHFLqCzKySbfdQPm7VGWUjnV3YXZPjJDVtQOznXoTvjqzSAsFhPi05df8eaztnAMEjj9NEWijh+0kQcPGOzez4gv6I/JqqeAtX/BKkHlWMTzArmP8J/VsFJBkMTEg3WSb2RsfX++IfKPQGRviDgmZppxTjQTBALqBwCmBENFOzWQVWgDqajCyuiIXXNweClSyVtuootQNzcXcxz5p5Bixw0LcVZQJi8GYNg1e69e7ySvRQsY4pCiHsX6P965s09orCmxTze9YZNe5ht5vBRIYT3KsVPjHK6kO/m0V2/vi8T/4Hom5A8DTHoxWsdzUA/AjTUQ== MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9321816-c86c-4a30-7e98-08d7475281c4 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Oct 2019 16:06:38.9491 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3EJQ9tpJL7i2m4WwZN93Scp4f2JkMCDmqX/FD7/XHrVXYYqA9UYERha5xvAufKlQ1AWtURB59bFeKRCqhngpjw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4235 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 T24gMTAvMi8xOSA2OjUxIEFNLCBMYXN6bG8gRXJzZWsgd3JvdGU6DQo+IEEgZmV3IG1vcmUgY29t bWVudHM6DQo+IA0KPiBPbiAwOS8xOS8xOSAyMTo1MiwgTGVuZGFja3ksIFRob21hcyB3cm90ZToN Cj4+IEZyb206IFRvbSBMZW5kYWNreSA8dGhvbWFzLmxlbmRhY2t5QGFtZC5jb20+DQo+Pg0KPj4g Qlo6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5OA0K Pj4NCj4+IEEgcGVyLUNQVSBpbXBsZW1lbnRhdGlvbiBmb3IgaG9sZGluZyB2YWx1ZXMgc3BlY2lm aWMgdG8gYSBDUFUgd2hlbg0KPj4gcnVubmluZyBhcyBhbiBTRVYtRVMgZ3Vlc3QsIHNwZWNpZmlj YWxseSB0byBob2xkIHRoZSBEZWJ1ZyBSZWdpc3Rlcg0KPj4gdmFsdWUuIEFsbG9jYXRlIGFuIGV4 dHJhIHBhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIEdIQ0IgcGFnZSBmb3IgZWFjaA0KPj4gQVAu DQo+Pg0KPj4gVXNpbmcgdGhlIHBhZ2UgYWZ0ZXIgdGhlIEdIQ0IgZW5zdXJlcyB0aGF0IGl0IGlz IHVuaXF1ZSBwZXIgQVAuIEJ1dCwNCj4+IGl0IGFsc28gZW5kcyB1cCBiZWluZyBtYXJrZWQgc2hh cmVkL3VuZW5jcnlwdGVkIHdoZW4gaXQgZG9lc24ndCBuZWVkIHRvDQo+PiBiZS4gSXQgaXMgcG9z c2libGUgZHVyaW5nIFBFSSB0byBtYXJrIG9ubHkgdGhlIEdIQ0IgcGFnZXMgYXMgc2hhcmVkIChh bmQNCj4+IHRoYXQgaXMgZG9uZSksIGJ1dCBEWEUgaXMgbm90IGFzIGVhc3kuIFRoZXJlIG5lZWRz IHRvIGJlIGEgd2F5IHRvIGNoYW5nZQ0KPj4gdGhlIHBhZ2V0YWJsZXMgY3JlYXRlZCBmb3IgRFhF IHVzaW5nIENyZWF0ZUlkZW50aXR5TWFwcGluZ1BhZ2VUYWJsZXMoKQ0KPj4gYmVmb3JlIHN3aXRj aGluZyB0byB0aGVtLg0KPj4NCj4+IENjOiBKb3JkYW4gSnVzdGVuIDxqb3JkYW4ubC5qdXN0ZW5A aW50ZWwuY29tPg0KPj4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+PiBD YzogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+PiBTaWduZWQt b2ZmLWJ5OiBUb20gTGVuZGFja3kgPHRob21hcy5sZW5kYWNreUBhbWQuY29tPg0KPj4gLS0tDQo+ PiAgT3ZtZlBrZy9Pdm1mUGtnWDY0LmZkZiAgICAgICAgICAgICAgICB8IDIgKy0NCj4+ICBPdm1m UGtnL1BsYXRmb3JtUGVpL0FtZFNldi5jICAgICAgICAgIHwgMiArLQ0KPj4gIE92bWZQa2cvUmVz ZXRWZWN0b3IvUmVzZXRWZWN0b3IubmFzbWIgfCAyICstDQo+PiAgMyBmaWxlcyBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL092bWZQ a2cvT3ZtZlBrZ1g2NC5mZGYgYi9Pdm1mUGtnL092bWZQa2dYNjQuZmRmDQo+PiBpbmRleCBhNTY3 MTMxYTA1OTEuLjg0NzE2OTUyMDUyZCAxMDA2NDQNCj4+IC0tLSBhL092bWZQa2cvT3ZtZlBrZ1g2 NC5mZGYNCj4+ICsrKyBiL092bWZQa2cvT3ZtZlBrZ1g2NC5mZGYNCj4+IEBAIC03OSw3ICs3OSw3 IEBAIFtGRC5NRU1GRF0NCj4+ICAweDAwODAwMHwweDAwMTAwMA0KPj4gIGdVZWZpT3ZtZlBrZ1Rv a2VuU3BhY2VHdWlkLlBjZE92bWZTZWNHaGNiUGFnZVRhYmxlQmFzZXxnVWVmaU92bWZQa2dUb2tl blNwYWNlR3VpZC5QY2RPdm1mU2VjR2hjYlBhZ2VUYWJsZVNpemUNCj4+DQo+PiAtMHgwMDkwMDB8 MHgwMDEwMDANCj4+ICsweDAwOTAwMHwweDAwMjAwMA0KPj4gIGdVZWZpT3ZtZlBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZE92bWZTZWNHaGNiQmFzZXxnVWVmaU92bWZQa2dUb2tlblNwYWNlR3VpZC5QY2RP dm1mU2VjR2hjYlNpemUNCj4+DQo+PiAgMHgwMTAwMDB8MHgwMTAwMDANCj4+IGRpZmYgLS1naXQg YS9Pdm1mUGtnL1BsYXRmb3JtUGVpL0FtZFNldi5jIGIvT3ZtZlBrZy9QbGF0Zm9ybVBlaS9BbWRT ZXYuYw0KPj4gaW5kZXggMzBjMGU0YWY3MjUyLi42OTliYjhiMTE1NTcgMTAwNjQ0DQo+PiAtLS0g YS9Pdm1mUGtnL1BsYXRmb3JtUGVpL0FtZFNldi5jDQo+PiArKysgYi9Pdm1mUGtnL1BsYXRmb3Jt UGVpL0FtZFNldi5jDQo+PiBAQCAtNDgsNyArNDgsNyBAQCBBbWRTZXZFc0luaXRpYWxpemUgKA0K Pj4gICAgLy8NCj4+ICAgIC8vIEFsbG9jYXRlIEdIQ0IgcGFnZXMuDQo+PiAgICAvLw0KPj4gLSAg R2hjYlBhZ2VDb3VudCA9IG1NYXhDcHVDb3VudDsNCj4+ICsgIEdoY2JQYWdlQ291bnQgPSBtTWF4 Q3B1Q291bnQgKiAyOw0KPj4gICAgR2hjYkJhc2UgPSBBbGxvY2F0ZVBhZ2VzIChHaGNiUGFnZUNv dW50KTsNCj4+ICAgIEFTU0VSVCAoR2hjYkJhc2UpOw0KPj4NCj4+IGRpZmYgLS1naXQgYS9Pdm1m UGtnL1Jlc2V0VmVjdG9yL1Jlc2V0VmVjdG9yLm5hc21iIGIvT3ZtZlBrZy9SZXNldFZlY3Rvci9S ZXNldFZlY3Rvci5uYXNtYg0KPj4gaW5kZXggODkwOWZjOTMxM2Y0Li5kN2MwYWIzYWRhMDAgMTAw NjQ0DQo+PiAtLS0gYS9Pdm1mUGtnL1Jlc2V0VmVjdG9yL1Jlc2V0VmVjdG9yLm5hc21iDQo+PiAr KysgYi9Pdm1mUGtnL1Jlc2V0VmVjdG9yL1Jlc2V0VmVjdG9yLm5hc21iDQo+PiBAQCAtNTcsNyAr NTcsNyBAQA0KPj4gICAgICAlZXJyb3IgIlRoaXMgaW1wbGVtZW50YXRpb24gaW5oZXJlbnRseSBk ZXBlbmRzIG9uIFBjZE92bWZTZWNHaGNiUGFnZVRhYmxlU2l6ZSINCj4+ICAgICVlbmRpZg0KPj4N Cj4+IC0gICVpZiAoRml4ZWRQY2RHZXQzMiAoUGNkT3ZtZlNlY0doY2JTaXplKSAhPSAweDEwMDAp DQo+PiArICAlaWYgKEZpeGVkUGNkR2V0MzIgKFBjZE92bWZTZWNHaGNiU2l6ZSkgIT0gMHgyMDAw KQ0KPj4gICAgICAlZXJyb3IgIlRoaXMgaW1wbGVtZW50YXRpb24gaW5oZXJlbnRseSBkZXBlbmRz IG9uIFBjZE92bWZTZWNHaGNiU2l6ZSINCj4+ICAgICVlbmRpZg0KPj4NCj4+DQo+IA0KPiAoMSkg SSB0aGluayBpdCBtYWtlcyBzZW5zZSB0byBzcGxpdCB0aGlzIHBhdGNoIGluIHR3bywgb25lIGhh bGYgZm9yIFNFQywNCj4gYW5vdGhlciBmb3IgUGxhdGZvcm1QZWkuDQoNCldpdGggdGhlIHdheSBJ J20gcmUtb3JkZXJpbmcgdGhlIHBhdGNoZXMgKGJ1aWxkaW5nIHRoZSBleGNlcHRpb24gaGFuZGxp bmcNCnVwIGZpcnN0KSwgdGhlIHBlci1DUFUgYWxsb2NhdGlvbiB3aWxsIGp1c3QgYmUgcGFydCBv ZiB0aGUgb3ZlcmFsbCBHSENCDQphbGxvY2F0aW9uIGluIGVhY2ggcGhhc2UgYW5kIGJlIHNlcGFy YXRlIHBhdGNoZXMuDQoNCj4gDQo+ICgyKSBUaGUgUGxhdGZvcm1QZWkgaHVuayBtYWtlcyBtZSBy ZWFsaXplIHRoYXQNCj4gIm1TM0FjcGlSZXNlcnZlZE1lbW9yeVNpemUiIGluIFB1Ymxpc2hQZWlN ZW1vcnkoKSBpcyBhbHJlYWR5DQo+IHByb3BvcnRpb25hbCB0byAibU1heENwdUNvdW50Ii4NCj4g DQo+IFRoZSBjdXJyZW50IGNvZWZmaWNpZW50IGlzIFBjZENwdUFwU3RhY2tTaXplICg9IDMyS0Ip LiBJZiB3ZSdyZSBhZGRpbmcNCj4gOEtCICgyIHBhZ2VzKSBwZXIgQ1BVLCBmb3IgU0VWLUVTLCB0 aGF0J3Mgbm90IG5lZ2xpZ2libGUgKDEvNHRoDQo+IGluY3JlYXNlKS4NCj4gDQo+IENhbiB5b3Ug cGxlYXNlIGV4dGVuZCBib3RoIHBhdGNoIzgsIGFuZCB0aGUgUGxhdGZvcm1QZWkgaHVuayBzcGxp dCBvdXQNCj4gb2YgcGF0Y2gjMTAgKD0gdGhpcyBwYXRjaCksIHRvIGluY3JlYXNlICJtUzNBY3Bp UmVzZXJ2ZWRNZW1vcnlTaXplIiBpbg0KPiBQdWJsaXNoUGVpTWVtb3J5KCksIGlmIE1lbUVuY3J5 cHRTZXZFc0lzRW5hYmxlZCgpPw0KPiANCj4gICAgaWYgKG1TM1N1cHBvcnRlZCkgew0KPiAgICAg IG1TM0FjcGlSZXNlcnZlZE1lbW9yeVNpemUgPSAuLi47DQo+ICsgICAgaWYgKE1lbUVuY3J5cHRT ZXZFc0lzRW5hYmxlZCAoKSkgew0KPiArICAgICAgbVMzQWNwaVJlc2VydmVkTWVtb3J5U2l6ZSAr PSAuLi4NCj4gKyAgICB9DQo+ICAgICAgbVMzQWNwaVJlc2VydmVkTWVtb3J5QmFzZSA9IC4uLg0K PiANCj4gT3RoZXJ3aXNlLCBBbWRTZXZFc0luaXRpYWxpemUoKSBjb3VsZCBydW4gb3V0IG9mIHBl cm1hbmVudCBQRUkgUkFNDQo+IGR1cmluZyBTMyByZXN1bWUuDQoNCk9rLCBJJ2xsIGRvIHRoYXQg aWYgd2UgZGVjaWRlIHRoYXQgUzMgaXMgc3VwcG9ydGVkIGFmdGVyIGRpc2N1c3NpbmcgaXQNCnNv bWUgbW9yZS4NCg0KPiANCj4gDQo+IC4uLiBTaWRlIHF1ZXN0aW9uOiBhY3R1YWxseSwgZG8gd2Ug c3VwcG9ydCBTMyB3aXRoIFNFViBlbmFibGVkLCBhdCB0aGUNCj4gbW9tZW50PyBMYXN0IHdlZWsg b3Igc28gSSB0cmllZCB0byB0ZXN0IGl0LCBhbmQgaXQgZGlkbid0IHdvcmsuIEkgZG9uJ3QNCj4g cmVtZW1iZXIgaWYgd2UgKmludGVuZGVkKiB0byBzdXBwb3J0IFMzIGluIFNFViBndWVzdHMgYXQg YWxsLiBJZiB3ZQ0KPiBuZXZlciBjYXJlZCwgdGhlbiB3ZSBzaG91bGQgZG9jdW1lbnQgdGhhdCwg cGx1cyBJIHNob3VsZG4ndCBtYWtlIHRoZQ0KPiBTRVYtRVMgd29yayBuZWVkbGVzc2x5IGRpZmZp Y3VsdCB3aXRoIFMzIHJlbWFya3MuLi4gQnJpamVzaCwgd2hhdCdzIHlvdXINCj4gcmVjb2xsZWN0 aW9uPw0KPiANCj4gSWYgdGhlIGludGVudCBoYXMgYWx3YXlzIGJlZW4gdG8gaWdub3JlIFMzIGlu IFNFViBndWVzdHMsIHRoZW4gd2Ugc2hvdWxkDQo+IG1vZGlmeSB0aGUgUzNWZXJpZmljYXRpb24o KSBmdW5jdGlvbiB0byBjYXRjaCBRRU1VIGNvbmZpZ3Mgd2hlcmUgYm90aA0KPiBmZWF0dXJlcyBh cmUgZW5hYmxlZCwgYW5kIGZvcmNlIHRoZSB1c2VyIHRvIGRpc2FibGUgYXQgbGVhc3Qgb25lIG9m DQo+IHRoZW0uIE90aGVyd2lzZSwgdGhlIHVzZXIgbWlnaHQgc3VzcGVuZCB0aGUgT1MgdG8gUzMs IGFuZCB0aGVuIGxvc2UgZGF0YQ0KPiB3aGVuIHJlc3VtZSBmYWlscy4gSW4gc3VjaCBjYXNlcywg dGhlIHVzZXIgc2hvdWxkIGJlIGZvcmNlZCAtLSBkdXJpbmcNCj4gZWFybHkgYm9vdCAtLSB0byBl eHBsaWNpdGx5IGRpc2FibGUgUzMgb24gdGhlIFFFTVUgY21kbGluZSwgYW5kIHRvDQo+IHJlLWxh dW5jaCB0aGUgZ3Vlc3QuIEFuZCB0aGVuIHRoZSBPUyB3b24ndCBldmVyIGF0dGVtcHQgUzMuDQo+ IA0KPiBIbS4uLi4gSSd2ZSBub3cgZm91bmQgc29tZSBpbnRlcm5hbCBjb3JyZXNwb25kZW5jZSBh dCBSZWQgSGF0LCBmcm9tIEF1Zw0KPiAyMDE3LiBJIHdyb3RlLA0KPiANCj4+IFdpdGggU0VWIGVu YWJsZWQsIHRoZSBTMyBib290IHNjcmlwdCB3b3VsZCBoYXZlIHRvIG1hbmlwdWxhdGUgcGFnZQ0K Pj4gdGFibGVzICh3aGljaCBtaWdodCByZXF1aXJlIG1vcmUgbWVtb3J5IHByZS1hbGxvY2F0aW9u KSwgaW4gb3JkZXIgdG8NCj4+IGNvbnRpbnVlIHVzaW5nIHRoZSBjdXJyZW50bHkgcHJlLXJlc2Vy dmVkIG1lbW9yeSBhcmVhcyBmb3IgZ3Vlc3QtaG9zdA0KPj4gY29tbXVuaWNhdGlvbiBkdXJpbmcg UzMgcmVzdW1lLg0KDQpJIGd1ZXNzIEkgbmVlZCB0byB1bmRlcnN0YW5kIG1vcmUgYWJvdXQgdGhp cy4gRG9lcyB0aGUgcGFnZSB0YWJsZQ0KbWFuaXB1bGF0aW9uIG9jY3VyIGluIHRoZSBndWVzdCBv ciBoeXBlcnZpc29yPyBJZiBpbiB0aGUgZ3Vlc3QsIHRoZW4gdGhhdA0KaXMgb2suIEJ1dCB0aGUg cGFnZSB0YWJsZXMgY2FuJ3QgYmUgc3VjY2Vzc2Z1bGx5IG1hbmlwdWxhdGVkIGJ5IHRoZQ0KaHlw ZXJ2aXNvci4NCg0KPj4NCj4+IFRoaXMga2luZCBvZiBwYWdlIHRhYmxlIG1hbmlwdWxhdGlvbiBp cyB2ZXJ5IGRpZmZpY3VsdCB0byBkbyB3aXRoIHRoZQ0KPj4gY3VycmVudGx5IHNwZWNpZmllZCAv IHN0YW5kYXJkaXplZCBib290IHNjcmlwdCBvcGNvZGVzLg0KPj4gRUZJX0JPT1RfU0NSSVBUX0RJ U1BBVENIXzJfT1BDT0RFICptaWdodCogcHJvdmUgdXNhYmxlIHRvIGNhbGwgY3VzdG9tDQo+PiBj b2RlIGR1cmluZyBTMyByZXN1bWUsIGZyb20gdGhlIGJvb3Qgc2NyaXB0LCBidXQgdGhlIGNhbGxl ZSBzZWVtcyB0bw0KPj4gbmVlZCBhIGN1c3RvbSBhc3NlbWJseSB0cmFtcG9saW5lLCBhbmQgbGlr ZWx5IHNvbWUgbWFnaWMgZm9yIGNvZGUNCj4+IHJlbG9jYXRpb24gdG9vIChvciB0aGUgY29kZSBt dXN0IGJlIHBvc2l0aW9uIGluZGVwZW5kZW50KS4gT25lIGV4YW1wbGUNCj4+IHNlZW1zIHRvIGV4 aXN0IGluIHRoZSBlZGsyIHRyZWUsIGJ1dCBmb3IgT1ZNRiB0aGlzIGlzIHVuY2hhcnRlZA0KPj4g dGVycml0b3J5Lg0KPiANCj4gQW5kIHRoZW4gdGhlIHBhcnRpY2lwYW50cyBpbiB0aGF0IGRpc2N1 c3Npb24gc2VlbWVkIHRvIHNldCBTMytTRVYgYXNpZGUsDQo+IGluZGVmaW5pdGVseS4NCj4gDQo+ IC4uLiBJJ3ZlIGFsc28gZm91bmQgc29tZSBTMyByZWZlcmVuY2VzIGluIHRoZSBmb2xsb3dpbmcg Ymx1cmI6DQo+IA0KPiANCj4gaHR0cDovL21pZC5tYWlsLWFyY2hpdmUuY29tLzE0OTkzNTEzOTQt MTE3NS0xLWdpdC1zZW5kLWVtYWlsLWJyaWplc2guc2luZ2hAYW1kLmNvbQ0KPiANCj4gV2UgZW5k ZWQgdXAgbm90IGFkZGluZyBhbnkgU0VWLXJlbGF0ZWQgY29kZSB0bw0KPiAiT3ZtZlBrZy9MaWJy YXJ5L1FlbXVGd0NmZ1MzTGliIiwgc28gSSB0aGluayBTMyBtdXN0IGhhdmUgcmVtYWluZWQgb3V0 DQo+IG9mIHNjb3BlLg0KDQpCcmlqZXNoIGNvbW1lbnRlZCBpbiB0aGUgcmVmZXJlbmNlZCBsaW5r IHRoYXQgaGUgd2FzIGFibGUgdG8gZG8NCnN1c3BlbmQvcmVzdW1lIHN1Y2Nlc3NmdWxseS4gSXQn cyBwb3NzaWJsZSB0aGF0IHNvbWUgbGF0ZXIgY2hhbmdlcyBjYXVzZWQNCnRoYXQgdG8gZmFpbD8N Cg0KTWF5YmUgd2UgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB5b3UgZGlkIHlvdXIgUzMgdGVzdCB2 cy4gaG93IEJyaWplc2ggZGlkDQpoaXMuDQoNCj4gDQo+IElmIHdlIGFncmVlIG5vdyB0aGF0IFMz IGlzIG91dCBvZiBzY29wZSAoZm9yIGJvdGggU0VWIGFuZCBTRVYtRVMpLCB0aGVuOg0KPiANCj4g LSBJIHRoaW5rIHdlIHNob3VsZCBpZ25vcmUgYWxsIFMzLXJlbGF0ZWQgY29kZSBwYXRocyBpbiB0 aGlzIHNlcmllcywNCj4gDQo+IC0gd2Ugc2hvdWxkIGRyb3AgcGF0Y2hlcyBhbHJlYWR5IHdyaXR0 ZW4gZm9yIFMzIChzb3JyeSBhYm91dCB0aGF0ISksDQo+IA0KPiAtIHdlIHNob3VsZCBleHRlbmQg UzNWZXJpZmljYXRpb24oKSBsaWtlIGRlc2NyaWJlZCBhYm92ZS4NCg0KSXQncyBwcm9iYWJseSB3 b3J0aCBkb2luZyB0aGlzIGFzIHRoZSBvbmx5IFMzLXJlbGF0ZWQgcGF0Y2ggaW4gdGhpcyBzZXJp ZXMNCnVudGlsIHdlIHVuZGVyc3RhbmQgdGhlIGNvbXBsZXRlIFNFVi1FUyAvIFMzIHJlcXVpcmVt ZW50cy4gSSdtIGEgYml0DQpoZXNpdGFudCB0byBpbmNsdWRlIGJhc2UgU0VWIGluIHRoaXMgdW50 aWwgd2UgZGlzY3VzcyBzb21lIG1vcmUuDQoNCj4gDQo+IEkgYXBvbG9naXplIGlmIG15IHJldmll d3MgYXJlIGEgYml0IGluY29oZXJlbnQ7IEkgY2FuIHRyYWNrIG9ubHkgc28gbWFueQ0KPiB0aGlu Z3MgaW4gcGFyYWxsZWwgOigNCg0KTm8gd29ycmllcywgdGhleSdyZSBub3QhDQoNClRoYW5rcywN ClRvbQ0KDQo+IA0KPiBUaGFua3MNCj4gTGFzemxvDQo+IA0K