From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web10.39.1684853389503680101 for ; Tue, 23 May 2023 07:49:49 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=l6+LUb+l; spf=pass (domain: intel.com, ip: 192.55.52.136, 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=1684853389; x=1716389389; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Mg83rT+r1RM0cGOH8ZD6OADnT14oRuebRMxXVJH0r6k=; b=l6+LUb+lC+FOVaPSVpa12J4C7CR9h2NDmGfT2qJM6F7TNMWQ/VNyO0Kn ZBd4czS7NQ2ZMjIbmTzAaeKTSlPoXp/VZhuPE8NwfMNuve5QI/Ys5bJLa /P0VXEGpNh8A9BN8e35NPM45vG0IZUFmTv17ozBl06psBEopA85JatCQj 4jerBk7JJL1PVXgSBpUraihKN2CAaZKdEmSx+9MmisTyesQ7iRDOD0IAX 0YMOD4/Z/XlS1Ex2QyhkXQDF1gwGIybREjjGi77iHlwTBGS/PulFVH1J8 szPjZh2/9EDgl0aVm+Tr0L6tSK8f++D4zDSMevnXxoTk33SbGlAJoBDsZ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10719"; a="332873638" X-IronPort-AV: E=Sophos;i="6.00,186,1681196400"; d="scan'208";a="332873638" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 May 2023 07:49:48 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10719"; a="654401711" X-IronPort-AV: E=Sophos;i="6.00,186,1681196400"; d="scan'208";a="654401711" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga003.jf.intel.com with ESMTP; 23 May 2023 07:49:48 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) 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.2507.23; Tue, 23 May 2023 07:49:48 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 23 May 2023 07:49:48 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.104) 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.2507.23; Tue, 23 May 2023 07:49:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gBswY6trb+JYSiO/YIOKC881UeYprZqp92VuOcvTWc3oAlhckGWL9YiLIU1tAXVWZ0FiCcoCC4U/YXPBf3Bjwk9JBYveC2VlDUjE/5BAujGdTi9S1WXcw1r5wMJFx9qq6+woxQvr1dOjYmhwGis6Ew+BKzmHsYYZu+HnC7bFRQRKboCjLGpGX6Y9iPHN3CAR4OK4M1UMCZlmITN1DMad8sVpd44q/LPfcvhS52LyQ12xP9UeAUfmDYUse0cdn5ScnPBMbdMwLK2kuDIMc7yNP6Vpm4ZNQ6LRniE7pPf6SQjIqZ+XaDE1Jb2Zsrgj+qVxRItkALYEtgQPk3D/aOY6/A== 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=Mg83rT+r1RM0cGOH8ZD6OADnT14oRuebRMxXVJH0r6k=; b=bFNDzktCO7cjLDtFX6mSLtx3p9RzMcdtVOSVyn8cDMDB+6Ruo9vX7gZDVwxL34+LSsibHXwh2keMRnP3QaCIHC+vGNc/FS/NemAHxEXjXzaaIVZ0A0eqO0PJi/5g+EIEVX8Ux1EVEAcn0Y0gZ6qkwquqjIlI9zj83XWNlVWtqKlypWT5tEiE+D8rPaU2RJmHsH6pfVi75pNZFgmZz1suDbwQs1L68raog/g98B6LQvC8o/Z8JSNnLGHmNYSyYb84J+BuO+dMz4yUuYWXYupaWlpaK4e1bonBTw2ovudIaYM3xGleseEySMSdk5hLJYRX0B249zmLafANAW2evlwB9w== 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 PH0PR11MB5628.namprd11.prod.outlook.com (2603:10b6:510:d4::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6411.28; Tue, 23 May 2023 14:49:24 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::4752:67f2:9956:b277]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::4752:67f2:9956:b277%4]) with mapi id 15.20.6411.029; Tue, 23 May 2023 14:49:24 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "lersek@redhat.com" , "Ni, Ray" , Ard Biesheuvel , "Yao, Jiewen" , Gerd Hoffmann , Taylor Beebe , Oliver Smith-Denny CC: "Kinney, Michael D" Subject: Re: [edk2-devel] managing memory attributes in PEI Thread-Topic: [edk2-devel] managing memory attributes in PEI Thread-Index: AQHZjKD99fXjQuZQ5Eef5dWeNGLv9K9nVlwAgAACNwCAACBCgIAAeHdg Date: Tue, 23 May 2023 14:49:24 +0000 Message-ID: References: <1718e8ad-6ba3-5da8-85c5-76e48c42110d@redhat.com> <2e04e9da-5b5a-9c00-76fe-c149538ddc80@redhat.com> In-Reply-To: <2e04e9da-5b5a-9c00-76fe-c149538ddc80@redhat.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_|PH0PR11MB5628:EE_ x-ms-office365-filtering-correlation-id: 6802cab4-556f-4fad-d94f-08db5b9ce673 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: U6QjRNuBFn8/mXVcxPkMBH1BL09WPXPZAweaB2C2743YJIrBf2uCof1MJbQwT5Y9OOGf7XRSdwYhEzKbKsFQALgNycyL6ih5AWXNIZXubIbTH88bfAMe7g0bXf3p3CKTs3awT454Ua56G/Pe9KyPJQPaJBmw7g/YxYXfkAvXKRqpDkyGqG0/2gJl/ZU/cy9uy5qEpuFLiaaZxXAAGXxOqofVD4cTvosqGngu+/k/6yKCzp54VNkUYMVnSDVaix7PRGd0Y0wg91sKtlq/PPpVJeMwAQ3C5wHQ33Vuojo+iUqxkrU7D7dGpKHYBJFHp+YcJpVmfMgI6lsSgWYqoNZwO3FJi6Wei7NwlDhWo5G/fip7A2RvY2FlRphYOunNNmXavvfB47sV1VRdT186E61VeCR2wpQv1XOwyfXknNtRjIgM0KV+fTZw5QS3Kjkd67DUQH5C1C8W7fMPLOU0YFH4id1SliNObnuS9HVrKP6Q7LnE30AcKXi+dnEeealkSh/RtS9IdmimI86UGzOo1hJHMKEntSCtI3WXw5CcxQXOGD+t/+d087LyfwZSxkEN2kVbvpa/nHyLKWHXk+SqH4j0t6l6zHpOPqkFgulIW0aKU6Zu4iySOKmxMtpebL8sCjHMSXOGc0DygUQPEGHCfsSMogqgfoohB3e91bMGjEhX32eiXCdCwPIG5GipQvtVMTac 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)(346002)(396003)(366004)(136003)(451199021)(33656002)(186003)(82960400001)(26005)(6506007)(921005)(122000001)(9686003)(53546011)(38100700002)(2906002)(107886003)(83380400001)(4001150100001)(55016003)(316002)(71200400001)(86362001)(66946007)(66556008)(66476007)(66446008)(64756008)(4326008)(76116006)(966005)(41300700001)(7696005)(110136005)(478600001)(19627235002)(38070700005)(8936002)(8676002)(5660300002)(52536014)(66899021)(781001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K3JuWFgwRGdzMjVhOE8wSjR5YmFpbXRNSU5jcVF5Y2VXU0JUNi8veXJLdGxD?= =?utf-8?B?bW1CL3ZhVzFBeW5jeDBtMUNrWWw2UmVQbzRKc0Jxb2U2NjZyNS8xdGt2TmRG?= =?utf-8?B?b25CbGRGTlp2WWQyS3hTYVFHNC81MWV3RkErWEEyZUsxVDE4RUZDMGRMc25l?= =?utf-8?B?MWVSb0o3SmtwYlpaRUU1L041TVo2NFBXQ1VzK0RDM2pCcURXd0o5TllOZkY1?= =?utf-8?B?N2NHZEJQNTNNNTM4bndxeDdJM3cyTVZTUkVDNFFmVjMyZ0lSZlJPZE1LUjM0?= =?utf-8?B?TGZ3K083SUU0TE9KRGJ1cEhWTzZKSW1HUUtTbk50TEhraG5uTCswdGNLamhv?= =?utf-8?B?aWJJNTg4em0xeDJybExjRzdURHk2QmMvdTlMNno1UklhK1JnNEdBVitYbU5B?= =?utf-8?B?T0hUSDE5Ym5GbVlqNDdQNFJtaCt6T2lKcEJvZ1dheGEvMGRBNEkvbUdGUjhH?= =?utf-8?B?L1BPL0VDRGd4UGtUdmY1cWc1TUpic1doU0pWa2h0L1JTZitZQ1VtMm5JcHNR?= =?utf-8?B?WTN6eVArRE5nak4xSW95MlJhWC9NR0xKWURmV2ZiL2FuRHVLQi9EL1BacmYv?= =?utf-8?B?WEUvUWh3N05wVDFHME4zZG9KbkdvTUpOanZmTjVMNkJVTWxkSmtZb2dtcitF?= =?utf-8?B?NmhaOXdmOU15anBKV0wxMWtFYkE1bVV5RytmWEVQNXg0MnUwaXlzbE92VElr?= =?utf-8?B?ZmRqbnhPdU12eStxOGNXcDZZRHJZUURwWnNNcktxYVVjK250Z3lJYXlMUjA2?= =?utf-8?B?c1YyRkMvblU4c2xLeVNPdEhublZFcm5Ba2kvUmVKNGhmeHRkTXEvYmlvUUYr?= =?utf-8?B?NTVXeDFRTG9yQitSK0JrQVNEU0tCRXVrdHJJalh4NlY0ZHF4eUlLNEV6Vy9O?= =?utf-8?B?UHlnVCtDS2FFMURrN0FjempqTVVFc212YmdCLzEvMERKV1hMSGFOczIrWk9J?= =?utf-8?B?RGJ1RFVUTnpRa280Wngvd21MYkxlYlV3eTgyTm41WVdmRm1yNE1mQmszMGVZ?= =?utf-8?B?azFOemxPNU1Ca0xYaFRxanlkdkpsOGdEU2x1cTAweFJCTDhldWQ1a1ZtMVFL?= =?utf-8?B?NjV3SUhuU0VBQnBOc3NER2pKcC9wR296d2NPcytSeFp6WE5NenJxZmR2RG5l?= =?utf-8?B?WkZZd1ZpNUZzemp1cmEyTER6ZnZkdHlUYkRoWHlwZGluMUlKNTRsNCtzK2h2?= =?utf-8?B?Sm42M3BWcnlZcmQrSjNkQkFhak9QWnBqL1VwaWNKOFNqYnV4ZEtpZVQwKzU4?= =?utf-8?B?a1VMbU1lOCs0VDBtSHo0SEF5OUNwRUI3UjhPdjhjR0E4dnQ1Lys4MFJiUFpp?= =?utf-8?B?L3FvTWRLL1hWeUIzbTNnRE1NcHNxdUdib0h2WjZJbjA3MEtxWFZrbHc1Rm13?= =?utf-8?B?QVorWFFxbWxpclJRMTREeCtZQjN3eCtpbGpxakZJaEpDMUhROVJ0UlM1aEhD?= =?utf-8?B?akVLQ0phVjYrZlA1bm05VC9SVDk3ZmNPVGk3T0E1ZmxERVJMK0dkR0xjWHN2?= =?utf-8?B?bEF0WTYrYXRDWTJISDl3WDlkNFFGdU9jMWFVL1VXc2NNR3VQOVFHUFJ1SXIy?= =?utf-8?B?RUZxZ01iZy94Ujl0OUhtZXlQQnlMOFhQaUk3OXUvbUF4VWVrWTJXd200QkNa?= =?utf-8?B?Z283b2d5dmRvMFJYTnh4TlNMb1dBTVlqMS82MGFudFZaVDh4UWZ6S1FoRThM?= =?utf-8?B?cjNXQTdOeEU1MTVmcUI1d3ROREpKZHJpNUVFbTRVTm5uUWRpTGNoN2g0UTl3?= =?utf-8?B?eTd0SVJ0ZGprSG8vSkMyMElIaHVzdzcrY0FZS0EwQ1IxV20rRWhnZFEvZjVp?= =?utf-8?B?Q0MydEh5VHcwS3FZd01kakYvb0ZoWjhSU0NUS3BoYUhXKzhXaGJ1Y1JGdVY0?= =?utf-8?B?bC9BT1diOUZ4YkR4MmMyU0hMK3JNU3k5MlBURHZUOVE2bEdzQnRnekdkOWtU?= =?utf-8?B?U2V0N2FiL2QyYUwzZVhDaVNHQSs4MTg3ZDhjaUMyTm5ObHRRY3c5Q1lGb0VW?= =?utf-8?B?b01ML0hoODY2azlHUnZ3SFJRbGsrenQ2c25qaVl5Z293TjZISWh6cWRxRkxJ?= =?utf-8?B?Y25Dcnh0VzdGMjR2UW10alRheGt2WS9TOU1yYzJndmpFSXFna1UxWjhWWTIz?= =?utf-8?B?d0tqNDVxVGxoWUZxZW5PYjhEM0J5b3RubkNyeEhiNzZQSGp3aGtGdk9YQUpn?= =?utf-8?B?bmc9PQ==?= 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: 6802cab4-556f-4fad-d94f-08db5b9ce673 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2023 14:49:24.2259 (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: /s/x+ncM/aBxBihmjarrZ6oAg46/eHLMIs1f/yd6HGmmvJwlpk5pMfCCKFEW8rMRxO04j7iHuWk/FgNjL1h5/Z68DdZa3clt+2XYwV4be4g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5628 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 QXJkLA0KDQpJIHdvdWxkIHByZWZlciB0byBrZWVwIHRoZSBJQTMyIFBFSSBzdXBwb3J0IGZvciBP Vk1GLiAgDQoNClJheSBoYWQgcHJvcG9zZWQgYW4gaWRlYSB0byBpbnRyb2R1Y2UgYSBsaWJyYXJ5 IGNsYXNzIHRvIGhlbHANCndpdGggdGhlIERYRUlQTCBjb21wbGV4aXR5LiAgUGVyaGFwcyB0aGF0 IGNhbiBiZSBjb21iaW5lcyB3aXRoDQp0aGlzIGVmZm9ydC4NCg0KTWlrZQ0KDQo+IC0tLS0tT3Jp Z2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBl ZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExhc3psbw0KPiBFcnNlaw0KPiBTZW50OiBUdWVz ZGF5LCBNYXkgMjMsIDIwMjMgMTI6MzUgQU0NCj4gVG86IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5j b20+OyBBcmQgQmllc2hldXZlbCA8YXJkYkBrZXJuZWwub3JnPjsgZWRrMi0NCj4gZGV2ZWwtZ3Jv dXBzLWlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz47IFlhbywgSmlld2VuDQo+IDxqaWV3ZW4ueWFv QGludGVsLmNvbT47IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29tPjsgVGF5bG9yDQo+ IEJlZWJlIDx0QHRheWxvcmJlZWJlLmNvbT47IE9saXZlciBTbWl0aC1EZW5ueSA8b3NkQHNtaXRo LWRlbm55LmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBtYW5hZ2luZyBtZW1vcnkg YXR0cmlidXRlcyBpbiBQRUkNCj4gDQo+IE9uIDUvMjMvMjMgMDc6MzksIE5pLCBSYXkgd3JvdGU6 DQo+ID4NCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBM YXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+PiBTZW50OiBUdWVzZGF5LCBNYXkg MjMsIDIwMjMgMTozMSBQTQ0KPiA+PiBUbzogQXJkIEJpZXNoZXV2ZWwgPGFyZGJAa2VybmVsLm9y Zz47IGVkazItZGV2ZWwtZ3JvdXBzLWlvDQo+ID4+IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz47IE5p LCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBZYW8sIEppZXdlbg0KPiA+PiA8amlld2VuLnlhb0Bp bnRlbC5jb20+OyBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNvbT47IFRheWxvcg0KPiBC ZWViZQ0KPiA+PiA8dEB0YXlsb3JiZWViZS5jb20+OyBPbGl2ZXIgU21pdGgtRGVubnkgPG9zZEBz bWl0aC1kZW5ueS5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBtYW5hZ2luZyBtZW1vcnkgYXR0cmli dXRlcyBpbiBQRUkNCj4gPj4NCj4gPj4gT24gNS8yMi8yMyAxMzozMSwgQXJkIEJpZXNoZXV2ZWwg d3JvdGU6DQo+ID4+PiBIZWxsbyBhbGwsDQo+ID4+Pg0KPiA+Pj4gKE9WTUYgc3BlY2lmaWMgcXVl c3Rpb25zIGJlbG93IC0gcGxlYXNlIGtlZXAgcmVhZGluZykNCj4gPj4+DQo+ID4+PiBBcyBhIGZv bGxvdy11cCB0byB0aGUgZGlzY3Vzc2lvbiB3ZSBoYWQgbGFzdCB3ZWVrIHJlZ2FyZGluZyBEWEUg Y29yZSwNCj4gPj4+IEknZCBsaWtlIHRvIHJhaXNlIHRoZSBpc3N1ZSBvZiBtYW5hZ2luZyBtZW1v cnkgcGVybWlzc2lvbnMgaW4gUEVJLA0KPiA+Pj4gaW5jbHVkaW5nIHRoZSBtYXBwaW5nIGF0dHJp YnV0ZXMgb2YgdGhlIGNvZGUgYW5kIGRhdGEgcmVnaW9ucyBvZiBEWEUNCj4gPj4+IGNvcmUgaXRz ZWxmLg0KPiA+Pj4NCj4gPj4+IFRoaXMgaXMgYWJvdXQgZ29vZCBoeWdpZW5lIGluIGdlbmVyYWws IGJ1dCBvbiBhcm02NCBpbiBwYXJ0aWN1bGFyLA0KPiA+Pj4gbGltaXRpbmcgZXhlY3V0aW9uIHBl cm1pc3Npb25zIHRvIG1lbW9yeSByZWdpb25zIHRoYXQgYXJlIG1hcHBlZA0KPiA+Pj4gcmVhZC1v bmx5IGFsbG93cyB0aGUgTU1VIHRvIGJlIGVuYWJsZWQgaW4gV1hOIG1vZGUsIHdoZXJlIGFsbA0K PiB3cml0YWJsZQ0KPiA+Pj4gcmVnaW9ucyBhcmUgbm9uLWV4ZWN1dGFibGUgYnkgZGVmYXVsdC4N Cj4gPj4+DQo+ID4+PiBJIGhhdmUgaW1wbGVtZW50ZWQgYSBwcm9vZi1vZi1jb25jZXB0IG9mIHRo aXMgZm9yIEFybVZpcnRRZW11IGFuZA0KPiA+Pj4gUmFzcGJlcnJ5IFBpIDQgKHRoZSBmb3JtZXIg dXNpbmcgUEVJIGFuZCB0aGUgbGF0dGVyIFBFSS1sZXNzKSwgYW5kDQo+ID4+PiB0aGlzIHNlZW1z IHF1aXRlIGZlYXNpYmxlIGluIHByYWN0aWNlLCBidXQgdGhlcmUgYXJlIGEgZmV3IGlzc3VlcyB0 aGF0DQo+ID4+PiBJIGhhdmUgaWRlbnRpZmllZDoNCj4gPj4+DQo+ID4+PiAtIFBFSSBzaGFkb3dp bmcgaXMgY3VycmVudGx5IGRpc2FibGVkIGVudGlyZWx5IC0gdGhpcyBpcyBhY3R1YWxseSBhbg0K PiA+Pj4gYWR2YW50YWdlIGZvciB0aGUgW3ZpcnR1YWxdIHBsYXRmb3JtIGluIHF1ZXN0aW9uLCBn aXZlbiB0aGF0IHNoYWRvd2luZw0KPiA+Pj4gaXMgbW9yZSB3b3JrIGZvciBubyBiZW5lZml0LCBi dXQgaXQgaXMgc29tZXRoaW5nIHRoYXQgbmVlZHMgdG8gYmUNCj4gPj4+IGFkZHJlc3NlZCBpbiB0 aGUgZ2VuZXJhbCBjYXNlOw0KPiA+Pj4gLSBubyBnZW5lcmljIG1ldGhvZCBleGlzdHMgdG8gbWFu YWdlIHBhZ2UgdGFibGUgcGVybWlzc2lvbnMuDQo+ID4+Pg0KPiA+Pj4gU28gd2hhdCBJIHdvdWxk IGxpa2UgdG8gcHJvcG9zZSAoYW5kIHdoYXQgSSBpbnRlbmQgdG8gcHJvdG90eXBlKSBpcyBhDQo+ ID4+PiBQUEkgdGhhdCBhYnN0cmFjdHMgdGhpcyBjYXBhYmlsaXR5LCBhbmQgd2hpY2ggY2FuIGJl IHVzZWQgYnkgdGhlIFBFSQ0KPiA+Pj4gaW1hZ2UgbG9hZGVyIGFzIHdlbGwgYXMgdGhlIER4ZUlw bCB0byBtYW5hZ2UgcmVhZC1vbmx5IGFuZCBub24tZXhlYw0KPiA+Pj4gcGVybWlzc2lvbnMuIE1v c3QgUEVJTXMgb25seSBoYXZlIGEgY29kZSByZWdpb24gYW55d2F5LCBzbyBob3BlZnVsbHkNCj4g Pj4+IHRoZXJlIGlzIHNvbWUgcm9vbSBmb3Igb3B0aW1pemF0aW9uIHdoZXJlIG5vdCBhbGwgUEVJ TXMgbmVlZCA0aw0KPiA+Pj4gYWxpZ25tZW50Lg0KPiA+Pj4NCj4gPj4+IFRoYXQgbGVhdmVzIG9u ZSBiaWcgaXNzdWUsIGFuZCB0aGlzIGlzIHJlbGF0ZWQgdG8gT1ZNRidzIHVzZSBvZiBJQTMyDQo+ ID4+PiBQRUkgd2l0aCBYNjQgRFhFLiBUaGlzIGNvbXBsaWNhdGVzIHRoZSBEeGVJcGwgc3Vic3Rh bnRpYWxseSBhbHJlYWR5LA0KPiA+Pj4gYnV0IHdvdWxkIG1ha2UgdGhpcyBlZmZvcnQgcmF0aGVy IHRyaWNreSBhcyB3ZWxsLg0KPiA+Pj4NCj4gPj4+IFNvIG15IHF1ZXN0aW9ucyBhcmU6DQo+ID4+ PiAtIGRvIHdlIG5lZWQgdG8gcmV0YWluIG1peGVkIElBMzIgLyBYNjQgc3VwcG9ydCwgYW5kIGlm IHNvLCB3aHk/IChJDQo+ID4+PiB0aGluayBpdCBpcyByZWxhdGVkIHRvIFNNTSBlbXVsYXRpb24g YnV0IEkgbmVlZCBzb21lb25lIHRvIGNvbmZpcm0NCj4gPj4+IHRoaXMpDQo+ID4+DQo+ID4+IEZv ciBhIGxvbmcgdGltZSwgSUEzMlg2NCBoYWQgYmVlbiByZXF1aXJlZCBpZiB5b3Ugd2FudGVkIChh KSBYNjQgRFhFLA0KPiA+PiAoYikgU01NLCBhbmQgKGMpIEFDUEkgUzMgcmVzdW1lLiBUaGUgcmVh c29uIHdhcyB0aGF0DQo+ID4+IFVlZmlDcHVQa2cvVW5pdmVyc2FsL0FjcGkvUzNSZXN1bWUyUGVp IGRpZG4ndCBzdXBwb3J0IFNNTSBvbiBYNjQsDQo+IG9ubHkNCj4gPj4gb24gSUEzMi4NCj4gPj4N Cj4gPj4gU2VlIGNvbW1pdCA1MTMzZDFmMWQyOTcgKCJPdm1mUGtnOiByZXBsYWNlIFJFQURNRSBm aW5lIHByaW50IGFib3V0DQo+IFg2NA0KPiA+PiBTTU0gUzMgd2l0aCBQbGF0Zm9ybVBlaSBjaGVj ayIsIDIwMTUtMTEtMzApLg0KPiA+Pg0KPiA+PiBUaGlzIFMzUmVzdW1lMlBlaSBsaW1pdGF0aW9u IGdvdCBsaWZ0ZWQgbGFzdCB5ZWFyLCBpbiBjb21taXQNCj4gPj4gNmFjZjcyOTAxYTJlICgiVWVm aUNwdVBrZzogU3VwcG9ydGluZyBTMyBpbiA2NGJpdCBQRUkiLCAyMDIyLTEyLTE5KSwgZm9yDQo+ ID4+IDxodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTQxOTU+ Lg0KPiA+Pg0KPiA+PiBHZXJkIHRlc3RlZCB0aGUgYWNjb3JkaW5nIHJlbW92YWwgb2YgUzNWZXJp ZmljYXRpb24oKSBpbiBPVk1GDQo+ID4+IDxodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcv c2hvd19idWcuY2dpP2lkPTQxOTUjYzQ+LCBidXQgdGhhdA0KPiBjb2RlDQo+ID4+IGlzIG5vdCB1 cHN0cmVhbSAob3IgZG93bnN0cmVhbSBhdCB0aGF0LCBJSVVDKSwgeWV0Lg0KPiA+Pg0KPiA+PiBP bmNlIFMzVmVyaWZpY2F0aW9uKCkgaXMgcmVtb3ZlZCwgT1ZNRiBJQTMyWDY0IHdpbGwgcmVtYWlu IHVzZWZ1bCBmb3INCj4gPj4gZXhlcmNpc2luZyBhIHBhcnRpY3VsYXIgSUEzMlg2NCBjb21iaW5h dGlvbiBvZiBtb2R1bGVzIHRoYXQgcGh5c2ljYWwNCj4gPj4gcGxhdGZvcm1zIHVzZSwgYnV0IEkg cmVja29uIElBMzJYNjQgd2lsbCBubyBsb25nZXIgYmUgcmVxdWlyZWQgZm9yDQo+ID4+IHZpcnR1 YWxpemF0aW9uIHB1cnBvc2VzIHBlciBzZS4NCj4gPg0KPiA+IFdvdy4gSSBkaWRuJ3QgcmVhbGl6 ZSBPVk1GIGhhZCBTM1ZlcmlmaWNhdGlvbigpIHRvIGV4cGxpY2l0bHkgZWR1Y2F0ZSB1c2Vycw0K PiA+IFg2NCBQRUkgKyBTTU0gZG9lc24ndCBzdXBwb3J0IFMzLjopDQo+ID4gVGhhdCB3aWxsIGJl IGdyZWF0IHRvIHJlbW92ZSB0aGUgY29kZSB0b2RheS4NCj4gPg0KPiA+Pg0KPiA+PiBCZWZvcmUg d2UgZW5hYmxlZCBTTU0gZm9yIE9WTUYsIHdlIGhhZCBuZXZlciByZWFsbHkgdXNlZCBJQTMyWDY0 DQo+IE9WTUYgLS0NCj4gPj4gU01NLWxlc3MgQUNQSSBTMyByZXN1bWUgaGFkIGp1c3Qgd29ya2Vk IGZpbmUgd2l0aCBYNjQtb25seSBPVk1GLg0KPiBJQTMyWDY0DQo+ID4+IG9ubHkgcHJvdmVkIGEg Z3JlYXQgcGxhdGZvcm0gb3B0aW9uIHRvIGZhbGwgYmFjayB0bywgd2hlbiB3ZSByZWFsaXplZA0K PiA+PiB0aGF0IG9uIFg2NCBPVk1GLCBBQ1BJIFMzIHJlc3VtZSB3b3VsZG4ndCBqdXN0IHNlYW1s ZXNzbHkgZXh0ZW5kIHRvDQo+IFNNTS4NCj4gPg0KPiA+IEkgZG9uJ3QgcXVpdGUgdW5kZXJzdGFu ZC4gU28sIHdoYXQncyB0aGUgY29uY2x1c2lvbiBvZiBJQTMyWDY0IE9WTUY/DQo+IEtlZXAgaXQ/ IFJlbW92ZSBpdD8NCj4gPg0KPiANCj4gQXMgbG9uZyBhcyBlZGsyIChjb3JlIG1vZHVsZXMpIHdp bGwgY29udGludWUgc3VwcG9ydGluZyBJQTMyWDY0IGZpcm13YXJlDQo+IHBsYXRmb3JtcywgSSB0 aGluayBrZWVwaW5nIE9WTUYgSUEzMlg2NCBpcyB1c2VmdWwsIG1pbmltYWxseSBhcyBhIHRlc3QN Cj4gYmVkIGZvciB0aG9zZSBjb3JlIG1vZHVsZXMgLyBQQ0RzIC8gYm9vdCBwYXRocy4gSWYgaXQg YmVjb21lcyBkaWZmaWN1bHQNCj4gLyBjb3N0bHkgdG8gbWFpbnRhaW4gT1ZNRiBJQTMyWDY0LCB0 aGVuIHJlbW92aW5nIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgYXQNCj4gc29tZSBwb2ludCwgYnV0IEkg ZG9uJ3QgdGhpbmsgaXQncyB0aW1lIGZvciB0aGF0IGFscmVhZHkuDQo+IA0KPiBTbyByaWdodCBu b3cgSSdkIGp1c3QgY29uc2lkZXIgInNoaWZ0aW5nIGVtcGhhc2lzIiBmcm9tIE9WTUYgSUEzMlg2 NCB0bw0KPiBPVk1GIFg2NC4NCj4gDQo+IEFuZCBvZiBjb3Vyc2UgdGhpcyBpcyBqdXN0IG15IG9w aW5pb24uDQo+IA0KPiBMYXN6bG8NCj4gDQo+IA0KPiANCj4gDQo+IA0KDQo=