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=3UJGez56; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.68.86, mailfrom: thomas.lendacky@amd.com) Received: from NAM04-BN3-obe.outbound.protection.outlook.com (NAM04-BN3-obe.outbound.protection.outlook.com [40.107.68.86]) by groups.io with SMTP; Mon, 30 Sep 2019 12:51:04 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JBAlgHarxHd4iAO/kSDc+CN7gdcyzV5R4rnwooQO6Zz/yIiMWc42ozqf1WYBvD2E03FKNm9lAq2StnSlOiTfqBvCOnkpyZTYYv94TO98GEXeGGrvMCMNvQPalye7/FzDx3BKvyZZlMHA9Sdpz9cMY/3p5sumyJzJVHbWv9nvqepEo/bPHsrFGaVG0oTvZcPttcK2+wV9hHYu+JctojZpzBviirFAt3JgW8tuoX1bpaSINS8qKiWvQ0PLrilz2oB/tTAxxf2jmz12hQS19tG63ZkdQoKyQ12Zxl5tdI+3n2stQUOIHwa54Ke4P/tvvX/5gF94X5EkXn9VXq1lQw2Gtg== 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=BgTO++jKHHdXBmGEQo5LDza184pjgzjjQMAqtOknd+4=; b=DjG9SwhA472QU27jzOBenHq8H7ABkXiFGCGEadFDI+sUeq1EZdvMjzPFhjYjeWXMa9yd7WPO1IMbiP+cUVhYU9KO1SDj9ENTu4g50tMWo1NvQ74eaEywWZXz9trS3vXlQhg8lo/oxEMMocRR74ZmXX0KZQ7sNlMk+eMdzFEAOrtFCehTKyGzej/oP4dCFbWvhA35Bux5mDIZC5IKl8a7xXq9rWSNa1pxsldkJW3Y7wwmr/COF7IftVIz/AVk2SxxezO4/Tov6n7t8GfMEma58PfMevfiw3GrNTuXGbdxmuNcG+9ihAfhivxBZXgjVp2lhjxjGDZSJs00O8VorOQTog== 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=BgTO++jKHHdXBmGEQo5LDza184pjgzjjQMAqtOknd+4=; b=3UJGez56BCkIQJVNN7Goja1kPQXNLXxyBUbTfI4aLHvYEx7EtKPWQLlzBGZNfiA1JL4UvOqH7zp0VWOU47DHgpmhWyiN3L4Rljn4pNExpPcC/omIkyY0fbK94Su7nu08VnKg0tYcq2bFTLmpkfcbFjHrfa/Y8vefQPc7tHpxdxg= Received: from DM6PR12MB3163.namprd12.prod.outlook.com (20.179.104.150) by DM6PR12MB4188.namprd12.prod.outlook.com (10.141.185.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2305.17; Mon, 30 Sep 2019 19:51:02 +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.017; Mon, 30 Sep 2019 19:51:02 +0000 From: "Lendacky, Thomas" To: Laszlo Ersek , "devel@edk2.groups.io" CC: Jordan Justen , Ard Biesheuvel , Michael D Kinney , Liming Gao , Eric Dong , Ray Ni , "Singh, Brijesh" Subject: Re: [edk2-devel] [RFC PATCH v2 08/44] OvmfPkg: Create GHCB pages for use during Pei and Dxe phase Thread-Topic: [edk2-devel] [RFC PATCH v2 08/44] OvmfPkg: Create GHCB pages for use during Pei and Dxe phase Thread-Index: AQHVbyPHXRDv/YGRIEiL4Ddvjs4NBKc9oqgAgABknQCABqCXAIAACp+A Date: Mon, 30 Sep 2019 19:51:00 +0000 Message-ID: References: <9799d415f652618c8a960cdb0040918185588652.1568922728.git.thomas.lendacky@amd.com> <8779b242-a38c-3bf7-ce85-469197fee287@amd.com> <4c42d99e-dff5-2b34-2e6f-25b3c6f0cef7@redhat.com> In-Reply-To: <4c42d99e-dff5-2b34-2e6f-25b3c6f0cef7@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN4PR0201CA0039.namprd02.prod.outlook.com (2603:10b6:803:2e::25) 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: cf0e8370-b093-4969-9e63-08d745df84f5 x-ms-office365-filtering-ht: Tenant x-ms-traffictypediagnostic: DM6PR12MB4188: x-ms-exchange-purlcount: 1 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 01762B0D64 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(346002)(136003)(366004)(376002)(39860400002)(396003)(199004)(189003)(86362001)(66066001)(6116002)(3846002)(31686004)(66476007)(66446008)(64756008)(66556008)(5660300002)(66946007)(966005)(31696002)(2501003)(7736002)(6246003)(99286004)(305945005)(2906002)(4326008)(25786009)(8676002)(14454004)(14444005)(256004)(8936002)(229853002)(36756003)(102836004)(71200400001)(6512007)(386003)(110136005)(54906003)(76176011)(71190400001)(81156014)(81166006)(11346002)(446003)(52116002)(316002)(6506007)(2616005)(476003)(486006)(6436002)(26005)(186003)(478600001)(6486002)(6306002)(53546011);DIR:OUT;SFP:1101;SCL:1;SRVR:DM6PR12MB4188;H:DM6PR12MB3163.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX: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: pI0XpgdwlFZ79mDmkJU326CluS9jm6v/O+I9mHe+qccaUczDEW6PWhP02uTOa7bDOeMowf+ue8cKsALdRtlUaZcUTcv7/wP5HdJwODVj4kuXyQ9daJVjhV8NQCVjWLm/nFM+peKpr02m6uJpJKAWV9ofgdSuGWAkgbD6S77oCkhSpne6rgh0+x+boc/DbrK4A/+wmsjZg7TjBjTQIFqM51z/+3UcErYSOPud2/1l30fqvJ36YME6ht0eZe/9HqyHQdPSKK7ANC0m1L1eA9NbJdEl3NzJf0ElN1xjS8Ah7m8qty0EKAJDjIaz8RvMW8+aOey0LcAnasxb3cuW4fgJYjpMPGDN10CamYqN4jNPGqJMu5Q/0KpqJrUPkf4kpa0bsLF37diaSPEGYBqEUXFePVlyhOG9cUilS8svHpjSSPupm51Yw9CA5K6UIAigLDmT1pbz5TcgE2bCnZRPDfu5SQ== MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf0e8370-b093-4969-9e63-08d745df84f5 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Sep 2019 19:51:00.9036 (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: WPk3irCeJ62EBY47EECxrnTKPwWNSNdhlZqsRkW2/WtE6/iuLqy99nkuOuj4hsQfUd+gKeg/4/xnAHr+av44Ew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4188 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <14A3FC5BA1B28443AA820C244ABBE951@namprd12.prod.outlook.com> Content-Transfer-Encoding: base64 T24gOS8zMC8xOSAyOjEyIFBNLCBMYXN6bG8gRXJzZWsgd3JvdGU6DQo+IE9uIDA5LzI2LzE5IDE2 OjAwLCBMZW5kYWNreSwgVGhvbWFzIHdyb3RlOg0KPj4gT24gOS8yNi8xOSAzOjAwIEFNLCBMYXN6 bG8gRXJzZWsgd3JvdGU6DQo+Pj4gSGkgVG9tLA0KPj4+DQo+Pj4gT24gMDkvMTkvMTkgMjE6NTIs IExlbmRhY2t5LCBUaG9tYXMgd3JvdGU6DQo+Pj4+IEZyb206IFRvbSBMZW5kYWNreSA8dGhvbWFz LmxlbmRhY2t5QGFtZC5jb20+DQo+Pj4+DQo+Pj4+IEJaOiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTgNCj4+Pj4NCj4+Pj4gQWxsb2NhdGUgbWVtb3J5 IGZvciB0aGUgR0hDQiBwYWdlcyBkdXJpbmcgU0VWIGluaXRpYWxpemF0aW9uIGZvciB1c2UNCj4+ Pj4gZHVyaW5nIFBlaSBhbmQgRHhlIHBoYXNlcy4gVGhlIEdIQ0IgcGFnZShzKSBtdXN0IGJlIHNo YXJlZCBwYWdlcywgc28NCj4+Pj4gY2xlYXIgdGhlIGVuY3J5cHRpb24gbWFzayBmcm9tIHRoZSBj dXJyZW50IHBhZ2UgdGFibGUgZW50cmllcy4gVXBvbg0KPj4+PiBzdWNjZXNzZnVsIGFsbG9jYXRp b24sIHNldCB0aGUgR0hDQiBQQ0RzIChQY2RHaGNiQmFzZSBhbmQgUGNkR2hjYlNpemUpLg0KPj4+ DQo+Pj4gc2tpbW1pbmcgdGhpcyBwYXRjaCBhbmQgdGhlIG5leHQgdHdvIG9uZXMgZm9yIE92bWZQ a2cgKCMxMCwgIzExKSwgSSdtIGENCj4+PiBiaXQgbG9zdC4gSSdtIG1pc3NpbmcgYSBwYXJhbGxl bCBiZXR3ZWVuIHRoZSAiZWFybHkgWDY0IHBhZ2UgdGFibGVzIiBhbmQNCj4+PiB0aGUgR0hDQi1y ZWxhdGVkIHBhZ2VzLg0KPj4+DQo+Pj4gVGhlIGZvcm1lciBhcmUgc2V0IHVwIChpbiBYNjQgT1ZN RikgaW4gU0VDLCBhbmQgYXJlIHVzZWQgdGhyb3VnaG91dCBQRUkNCj4+PiB1bnRpbCB0aGUgRFhF IElQTCBidWlsZHMgbmV3IG9uZXMgZm9yIHRoZSBEWEUgcGhhc2UuIFRoZSBsYXR0ZXIgYWxzbw0K Pj4+ICpzZWVtZWQqIHRvIGJlIHNldCB1cCBpbiBTRUMsIGFuZCBJIHRob3VnaHQgdGhleSdkIGJl IHVzZWQgdGhyb3VnaG91dA0KPj4+IFBFSSAtLSBJIGFzc3VtZWQgdGhlIG5leHQgcGxhY2Ugd2Un ZCBuZWVkIHRvIG1hc3NhZ2UgR0hDQiBwYWdlcyB3b3VsZCBiZQ0KPj4+IHNpbWlsYXJseSBpbiB0 aGUgRFhFIElQTCwgb3IgdGhlcmVhYm91dHMuDQo+Pj4NCj4+PiBIb3dldmVyLCBpbiB0aGlzIHBh dGNoLCB3ZSBzZWVtIHRvIGFsbG9jYXRlIG5ldyBwYWdlcyBmb3IgR0hDQiwgYW5kIHRoZQ0KPj4+ IGNvbW1pdCBtZXNzYWdlIGltcGxpZXMgdGhleSBhcmUgc3VwcG9zZWQgdG8gYmUgdXNlZCBkdXJp bmcgUEVJLiBUaGF0DQo+Pj4gZGl2ZXJnZXMgZnJvbSBob3cgbG9uZyB0aGUgImVhcmx5IFg2NCBw YWdlIHRhYmxlcyIgYXJlIHVzZWQuDQo+Pg0KPj4gQXQgdGhpcyBzdGFnZSwgd2UgbmVlZCBhIEdI Q0IgcGFnZSBmb3IgZXZlcnkgKHYpQ1BVLiBTbyBhIG5ldyBhbGxvY2F0aW9uDQo+PiBpcyBkb25l IGFuZCB0aGVuIHRoZSBwYWdlcyBhcmUgbWFya2VkIHVuZW5jcnlwdGVkLiBPbmNlIHRoZSBuZXcg R0hDQg0KPj4gcGFnZXMgYXJlIGFsbG9jYXRlZCwgdGhlIG9yaWdpbmFsIEdIQ0IgcGFnZSBmb3Ig U0VDIGlzIG5vIGxvbmdlciBuZWVkZWQNCj4+IGJlY2F1c2UgdGhlIG5ldyBhbGxvY2F0aW9uIHJl cGxhY2VzIGl0IGluIHRoZSBCU1AuIEJ1dCB0aGUgZWFybHkgcGFnZQ0KPj4gdGFibGUgaXMgc3Rp bGwgcmVxdWlyZWQgaW4gb3JkZXIgdG8gYWNjZXNzIGFsbCBvZiB0aGUgbWVtb3J5IGZyb20gdGhl IDJNQg0KPj4gcmFuZ2UgKDB4ODAwMDAwIHRvIDB4OWZmZmZmKS4NCj4+DQo+Pj4NCj4+PiBJIGd1 ZXNzIHRoaXMgZGlmZmVyZW5jZSBjb3VsZCBiZSBqdXN0aWZpZWQsIGVzcGVjaWFsbHkgYmVjYXVz ZSB3ZSBkbyBNUA0KPj4+IHN0dWZmIGluIFBFSS4gKEFuZCB3ZSBuZWVkIHNlcGFyYXRlIEdIQ0Ig c3R1ZmYgcGVyIFZDUFUgLS0gaW4gU0VDIHdlDQo+Pj4gb25seSBjb25zaWRlciB0aGUgQlNQLikN Cj4+Pg0KPj4+IEJ1dCB0aGVuLCB0aGUgcXVlc3Rpb24gYmVjb21lczogd2hhdCBleGFjdGx5IGRv IHdlIG5lZWQgdGhlIEdIQ0IgcGFnZQ0KPj4+IGFsbG9jYXRlZCBpbiBTRUMgZm9yPyBGcm9tIHRo ZSBibHVyYiwgaXQgc2VlbXMgdGhhdCB0aGUgR0hDQiBhbGxvd3MgdGhlDQo+Pg0KPj4gVGhlcmUg YXJlIGxvdHMgb2YgZGlmZmVyZW50IHdheXMgdG8gY2F1c2UgYSAjVkMuIEEgI1ZDIGlzIGdlbmVy YXRlZCBmb3INCj4+IGRlYnVnIHN0YXRlbWVudHMgdGhhdCB1c2UgcG9ydCBJL08sIE1NSU8sIGlu dGVyY2VwdC1hYmxlIE1TUiBhY2Nlc3NlcywNCj4+IENQVUlEIGluc3RydWN0aW9ucywgV0JJTlZE IGluc3RydWN0aW9ucywgZXRjLiBNYW55IG9mIHRoZXNlIHRoaW5ncyBoYXBwZW4NCj4+IGR1cmlu ZyBTRUMuIFdpdGggdGhlIGRlYnVnIHNlcmlhbCBvdXRwdXQgZW5hYmxlZCwgb3ZlciA4LDAwMCAj VkMNCj4+IGV4Y2VwdGlvbnMgb2NjdXIgYmVmb3JlIGFsbG9jYXRpbmcgdGhlIG5ldyBHSENCIHBh Z2VzIGluDQo+PiBBbWRTZXZFc0luaXRpYWxpemUoKS4NCj4+DQo+Pj4gZ3Vlc3QgdG8gc2VsZWN0 aXZlbHkgKGFjdGl2ZWx5KSBzaGFyZSBpbmZvcm1hdGlvbiB3aXRoIHRoZSBoeXBlcnZpc29yIC0t DQo+Pj4gc3VjaCBhcyAocGFydHMgb2Y/KSB0aGUgcmVnaXN0ZXIgZmlsZSwgd2hpY2ggdGhlIGh5 cGVydmlzb3IgY2Fubm90DQo+Pj4gZGlyZWN0bHkgYWNjZXNzLCBmb3IgYSBTRVYtRVMgZ3Vlc3Qu DQo+Pj4NCj4+PiBCdXQsIHdlIG5ldmVyIHNlZW0gdG8gcGxhY2Ugc3VjaCBpbmZvcm1hdGlvbiBh dCBQY2RPdm1mU2VjR2hjYkJhc2UgKGFrYQ0KPj4+IEdIQ0JfQkFTRSkgaW4gU0VDLiBXZSBwcm9n cmFtIHRoZSBHSENCJ3MgYmFzZSBhZGRyZXNzLCBhbmQgdGhlbiB3ZSBjbGVhcg0KPj4+IHRoZSBH SENCLCBidXQgdGhhdCBzZWVtcyB0byBiZSBpdC4gRG8gd2Ugd3JpdGUgYW55dGhpbmcgbm9uLXpl cm8gdG8gdGhhdA0KPj4+IGJsb2NrLCBldmVyPw0KPj4NCj4+IFllcywgdGhhdCBoYXBwZW5zIGlu IHRoZSBTRUMgZXhjZXB0aW9uIGhhbmRsZXIuIFdoZW4gdGhlICNWQyBvY2N1cnMsIHRoZQ0KPj4g R0hDQiBpbmZvcm1hdGlvbiBpcyBmaWxsZWQgaW4gYW5kIGEgVk1HRVhJVCBpbnN0cnVjdGlvbiBp cyBpc3N1ZWQgdG8gZXhpdA0KPj4gdG8gdGhlIGh5cGVydmlzb3IuIFRoZSBoeXBlcnZpc29yIHRo ZW4gYWNjZXNzZXMgdGhlIEdIQ0IgaW4gb3JkZXIgdG8NCj4+IHBlcmZvcm0gdGhlIHJlcXVlc3Rl ZCBmdW5jdGlvbi4NCj4gDQo+IChTb3JyeSBhYm91dCBzZW5kaW5nIHRoaXMgaW4gYSBzZXBhcmF0 ZSBlbWFpbC4pDQo+IA0KPiBTby4uLiBXaGVyZSBpcyB0aGUgI1ZDIGhhbmRsZXIgdGhhdCBpbXBs ZW1lbnRzIHRoaXMgbG9naWMgaW4gU0VDPw0KPiANCj4gLi4uIEFoIHdhaXQsIG5vdyBJIHVuZGVy c3RhbmQgd2h5IEkgZ290IGNvbmZ1c2VkLiBUaGUgcGF0Y2ggc2VyaWVzIHRodXMNCj4gZmFyIGhh cyBtb2RpZmllZCBTRUMgY29kZSB0aGF0IGlzIHNwZWNpZmljIHRvIE9WTUYsIGFuZCB0aGVuIGl0 IGFkdmFuY2VzDQo+IHRvIE92bWZQa2cvUGxhdGZvcm1QZWkuIEkgdGhvdWdodCB3ZSB3ZXJlIGRv bmUgd2l0aCBTRUMgY2hhbmdlcyBpbiBPVk1GLA0KPiBhbmQgSSBkaWRuJ3QgdW5kZXJzdGFuZCB3 aGVyZSB0aGUgI1ZDIGhhbmRsZXIgeW91IHJlZmVyIHRvIGFib3ZlIHdhcy4NCj4gDQo+IEJ1dCwg bG9va2luZyBhIGJpdCBhaGVhZCBpbiB0aGUgc2VyaWVzLCBJIHNlZSB0aGUgZXhjZXB0aW9uIGhh bmRsZXINCj4gYmVpbmcgYnVpbHQgZ3JhZHVhbGx5LCBpbiBVZWZpQ3B1UGtnLCBhbmQgKEkgZ3Vl c3MpIGFsc28gZW5hYmxlZCBpbg0KPiBPVk1GJ3MgU0VDIHNvbWV3aGVyZSAvIHNvbWV0aW1lLg0K PiANCj4gSSB3b25kZXIgd2hhdCB0aGUgYmVzdCBvcmRlcmluZyB3b3VsZCBiZSwgZm9yIHRoZSBw YXRjaGVzIGluIHRoZSBzZXJpZXMuDQo+IFRoZSBtaWRkbGUgc2VlbXMgdG8gYmUgYWx0ZXJuYXRp bmcgYmV0d2VlbiBVZWZpQ3B1UGtnIGFuZCBPdm1mUGtnLg0KPiBUaGF0J3MgcXVpdGUgdW51c3Vh bC4gSSBkb24ndCBoYXZlIGEgY2xlYXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgZmVhdHVyZQ0KPiB5 ZXQsIHNvIEkgY2FuJ3QgYXV0aG9yaXRhdGl2ZWx5IHN1Z2dlc3QgYSAiYmV0dGVyIiBzdHJ1Y3R1 cmUuIEFzIGEgZmlyc3QNCj4gZ3Vlc3MsIEkgd291bGQgc3VnZ2VzdCBjb25zdHJ1Y3RpbmcgdGhl IGJ1aWxkaW5nIGJsb2NrcyBpbiBNZGVQa2cgYW5kDQo+IFVlZmlDcHVQa2cgKGxpYnJhcmllcywg cHJpbWFyaWx5KSwgdGhlbiB1dGlsaXppbmcgdGhlbSBpbiBNZGVNb2R1bGVQa2cNCj4gKGNvcmUg ZHJpdmVycyksIHRoZW4gYWRkaW5nIHBsYXRmb3JtIGNvZGUgaW4gT3ZtZlBrZy4gQWxzbywgSSB3 b3VsZA0KPiBzdWdnZXN0IGNvcGlvdXMgY3Jvc3MtcmVmZXJlbmNlcyBiZXR3ZWVuIHRoZSBwYXRj aGVzIChpZGVudGlmaWVkIGJ5DQo+IHN1YmplY3RzKS4NCj4gDQo+IEkgaG9wZSB0aGlzIGlzIG5v dCB0b28gYW5ub3lpbmcsIGp1c3QgdHJ5aW5nIHRvIGFzayBmb3IgY3J1dGNoZXMgOikNCg0KTm8g d29ycmllcywgSSdsbCBzZWUgd2hhdCBJIGNhbiBkbyBpbiBvcmRlcmluZyB0aGUgcGF0Y2hlcyBz byB0aGV5IG1ha2UNCm1vcmUgc2Vuc2UgdG8gYSByZXZpZXdlciBsb29raW5nIGF0IHRoZSBjb2Rl IGZvciB0aGUgZmlyc3QgdGltZS4NCg0KVGhhbmtzLA0KVG9tDQoNCj4gDQo+IEknbGwgdHJ5IHRv IGNvbnRpbnVlIHRoZSByZXZpZXcgb2YgdGhlIHNlcmllcyB0aGlzIHdlZWsuDQo+IA0KPiBUaGFu a3MhDQo+IExhc3psbw0KPiANCg==