From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mx.groups.io with SMTP id smtpd.web11.2413.1684860471474998563 for ; Tue, 23 May 2023 09:47:51 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=UP69cYu6; spf=pass (domain: intel.com, ip: 134.134.136.24, 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=1684860471; x=1716396471; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=MGaq92QYXRl3NOs5BVrxM6I5h3tSF8iFZSqIbCFqFN8=; b=UP69cYu6aYMr2+jo7ySmlCxjwsJ97iMZmGdPhwP7cuSrJ8tpcHmUrDFE TgOyqnN75/Y1V8PL1pgyzlKfFZBX630CWO4dbjYchjlC7ZBmwmz5Ytqt3 +NzFvQU/3QNP0Mp5v9RqV0iMeCMj4h+p+vTPht2lPUa2pfcHTWmrpyYHP Xg1kWH7LvK5x8vH0d2+rVpog0E5Jn+0+MzxIFHnYUqAuuo0CrTZCl7+ho A72TkP7JbrNL4ngGWKMttHYX5ZTVqsdiYc3Zeg0XVmO5UnEfx3zUPgJ2W fm4Zb1agUF0Ou39Iem6Al4DQlmHQmcKthKiguj4ncrSHzp2OAE1lNszkR w==; X-IronPort-AV: E=McAfee;i="6600,9927,10719"; a="355652163" X-IronPort-AV: E=Sophos;i="6.00,186,1681196400"; d="scan'208";a="355652163" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 May 2023 09:47:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10719"; a="878282298" X-IronPort-AV: E=Sophos;i="6.00,186,1681196400"; d="scan'208";a="878282298" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga005.jf.intel.com with ESMTP; 23 May 2023 09:47:49 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) 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 09:47:49 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) 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 09:47:49 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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 09:47:49 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) 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.2507.23; Tue, 23 May 2023 09:47:49 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AmTynPI0F9Mg9RvjlRUmD6VF10lhSPcht3nPFyuKt7AEQ3FJtUXoncNhhMbMcNCu93DCN2+CreIxzkFTgrXoQVPoU5OOtux8muLdMyIVFcAON8bmrdbJXxLEgQtB/FWN05hUjblm4HiE2uJf3C041y8D8jZyVZ6EerRak66NBNW4Ty96z6UhT4FMQY1mNl2esB3pUTLjSdHK2Y9gVFYuCSTIhqhj9n+pvWMIys3ZYMeDJgYHhwQwcDUz32uV8i4JHi4ppyYBX8jZ1zK+p0IwyNni9q5s+8Xmv4I3RTKrJ0qeIVae/ZuiZ6ceg/GQYOgooztZM1dNJWTqgLW8+m1+aQ== 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=MGaq92QYXRl3NOs5BVrxM6I5h3tSF8iFZSqIbCFqFN8=; b=e408g8IFNwHDgHbySyIFh9tIcE1SSddsWCAIa5XYbOyPWPnhs5vj9YV4QtiF/hQDhI85FEi+vECPvioUx+/1rt6SMW+R3CbrfKgsuLxs5LyZsqZrlDUysgREtLNmDM7zzHzen/TYWvMe2LEU0paiayJpIAulvIBIvPG+lpNKl+Z4rrVtpb8pDpDePU6vQM8ddZXmmN4If6pTpybFTFsn3nVw8pFqvDfIsOn0cnuxMz+PU/8S50+PF20PD1bHrj6fdwbORWZeYKV05ZiFPyUjrvLZucgcRKr3Me51FWhghzYccQb6O8jSLNFnLc2VlgLE27YW7wU2GYEW72t+vhRMNQ== 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 DM4PR11MB6286.namprd11.prod.outlook.com (2603:10b6:8:a7::8) 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 16:47:47 +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 16:47:47 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "ardb@kernel.org" CC: "lersek@redhat.com" , "Ni, Ray" , "Yao, Jiewen" , Gerd Hoffmann , Taylor Beebe , Oliver Smith-Denny , "Kinney, Michael D" Subject: Re: [edk2-devel] managing memory attributes in PEI Thread-Topic: [edk2-devel] managing memory attributes in PEI Thread-Index: AQHZjKD99fXjQuZQ5Eef5dWeNGLv9K9nVlwAgAACNwCAACBCgIAAeHdggAADmICAAAQIwIAACq2AgAAPeLA= Date: Tue, 23 May 2023 16:47:47 +0000 Message-ID: References: <1718e8ad-6ba3-5da8-85c5-76e48c42110d@redhat.com> <2e04e9da-5b5a-9c00-76fe-c149538ddc80@redhat.com> In-Reply-To: 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_|DM4PR11MB6286:EE_ x-ms-office365-filtering-correlation-id: 8b8b4e3e-04d3-4cf7-fd54-08db5bad703b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: fC4pvDB+fTq5znw3ub6qhITTjAKtDiN54EC3gBdrimfR9qJiyrm+MHpYX5rp8x3FxJHCZyhp8KEXOkvRKXCQ8fJBE1TYZB2TThwJAo1v14enNoMhsPowHJjxSSAdO1CUdEUdM5EufRB+ZfEn0m+JznbBW+3AlxT715YlEmR2OoGXiJIGJ0RHiMZE95/IPKt5wYr4koydrMa4PI7FVeOYaWp2KCQrD4B6Hm6fPiuoCwBcP+nDNY75tdn7/F16ACqEmSEBkmbsWb/ob8Di/BTAG3vLGFS1LIzGRkjVrMFYAga2ZS0eeBkBHcYo8ANC+Cbl+fha/x48L1cvzYml7FX04PaG59Di/SqHyfqUipLdEiCR0svAxamF5oHZHC+J77s+z6ym7VCqGJRtEzO63L07O5mvlwqvaw/pc5+3XL1GztYXsmI2qmW0D1KaGLe5+boRXC93hHGSBOpCcSddwboG1IJM58Ugxp2lw/biHlqdluNJcz17cbtptXO3xY/NeBOLm6XmJcX97ofZg4RzPNmharhfXhY8BZ4mVmY0caVo92HqtAVHPp4zZYuzuduB+urqVw+6nyNlrAv7T5rTDuNPZcL68pAlX/iKOFK6qFNXRcGJAW08FZwTspu8CjbNqWbvluwn1iqqEPjpKVVEDKEIaQ== 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)(366004)(346002)(136003)(396003)(376002)(39860400002)(451199021)(76116006)(66946007)(66556008)(66476007)(66446008)(64756008)(478600001)(41300700001)(7696005)(110136005)(966005)(54906003)(316002)(71200400001)(52536014)(38070700005)(4326008)(86362001)(8936002)(8676002)(5660300002)(66899021)(38100700002)(107886003)(26005)(33656002)(186003)(122000001)(53546011)(55016003)(6506007)(9686003)(82960400001)(83380400001)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bDNYazdMQS83ZEdkVE1ZNFQ4MlkzL25uQWNIemwxRmFMSllVaUhMWUhWL0Q1?= =?utf-8?B?YjhMZ21naGZYMDI1am16SDdZSFNVTGhWcll5Mk1kREt1a0tVTHNOTk9BVTBD?= =?utf-8?B?MmR3VU45OEVqeDdzZ2MxYklCenNnSVluWldrMlhEQ2dlZTFEVzR0bzhMWUIv?= =?utf-8?B?b0dyRUl4bDFHSXpiZ0U5TzVYR1JRR1hJQXpweXVWR20xOVl0TkRlYjd1VDF0?= =?utf-8?B?NzVLakgzSHEwcjBqMENwZkV6aTZFTk5nN29WTjJob1ZTdVljSG15eHcxZExJ?= =?utf-8?B?cExuSlluaGZFMnhOQkd0STdhaGFJM2VVY2VGWGs2bFRPWVdGVmYyTG05M3NH?= =?utf-8?B?N2w4R0crbUxtZENySlBZdWZ0UG90ZGxRU1JxaTJVWmFmZGlZd1JwbkhEdks0?= =?utf-8?B?dlZ5NVdJWkRKdWFqQkd3UVNWN3hnNXBYUTZaOTRPR29VdUpZNnh4aHQ3Y0lP?= =?utf-8?B?cGZ0U2xDR0NRQUd2c2Nva3V3THBRaXZGZU9jZ2VKRHlIc0c0TlBTM2hWaE5I?= =?utf-8?B?M20wZW1oQ1pKQXZtUzVFOGorbDNoa2N6Q20wZlZyOTlQT3J2K0hxRE5ReWRQ?= =?utf-8?B?bzRLemJIQjltcEdxeHR4YkpZT3ZjTUNzaU9pbWdwUWkrRXJ3VENERDZUV3J5?= =?utf-8?B?V0c0cWM2M2N1QzNFUW9mT0NYRmVxdUNXK1pqWHd0dXZDNDMyY1ZRNnNDTU9n?= =?utf-8?B?TFlQTWV1Q1Fhd1h5K2Vsdit2cHlOTnZON25IWUNMd1RhNHErcHFwZXJLdjZr?= =?utf-8?B?SFhwU2pyVFQwRXV6b05wNHdXcGF1YlpyK1FxQ1ZYbWRDczdMbjhXL2RYWVE5?= =?utf-8?B?RDIzLzhES3hkZDVXSGdnRXNuRGg4Vm5VZ09RWEdENW45dE9FNEsyMnZibFRw?= =?utf-8?B?SjduTEZEVk9qWHhsZlhhQ1M4dEpWNXFHdkl6a1VraWZMU2g5TkMwc1VISVlD?= =?utf-8?B?bmRiVDhMcmxjMXU3SlR5ckQ5ckRkelhNWDZJYXFRcysvYjh2dHBxYXllWUJr?= =?utf-8?B?UjMxUkhkY2M1dndGWDJac29rc0JzSDFvcWJwY0VoNFZXRG4ycVlaVDRWTDc3?= =?utf-8?B?YWN0N2llaFNOb214NDJ1V25xSDhxVkxtT3lZck1IclozemlhT3RvWEt0ZkEw?= =?utf-8?B?aWE1TG5KS1RScEVvQlZCMDl5bklFOVZnSGRZU0xZeDAvbzA2SzNxZ2JuY0cz?= =?utf-8?B?U1NtZHNrUWtrb3R4QmhHbFd5TlpmUlBzVVJuc2g5OElESWk4cGJuUE5VZzEy?= =?utf-8?B?ajBFclRSeCsxOEdzcTlsdXVlSkU3YmF3N1BHd1ZGeWE0Y0JYdlNFMW1mMEJ2?= =?utf-8?B?TE1KRER3T0IwRGdLNk12ampoNXZsS2dnVU9PeGQyOE1LUjZMUTF6NjNKZ1k4?= =?utf-8?B?WWdPNTN0cmJlYXJUODRuZTNhSWU0b1F3THJjSW1pZVNSVFZ6TUNLU2NFUjkz?= =?utf-8?B?UE9pdzNsU3dieGVKUWZHNXlFWnlmUWtSNkptQzBlYU41QWQrWVVyRlVteHZK?= =?utf-8?B?d3NiNzRmYTFXN2tESVNMNFZpUHorVEI3N05YT0N5dGhLenMxcm9seDRTRW56?= =?utf-8?B?KzM2SXliTnE2V2dMQzBzaTVxc1NabmIrRGF6SjM2YkgvTDRZbm9EWFZpQzZ0?= =?utf-8?B?aGxORm84VG4yNjZLK0g2UjBaUTU1Q0JnL0JvZ2c3VUEzQkNsbWc3dmdMNXNv?= =?utf-8?B?T05pdmgrNVZhTG8vMUJnaE4wQlFERTRWbGViWjFCTG9SYlgvdXdWcGR5eGth?= =?utf-8?B?UkQ4TnZSLzVwaVdoRGVsc2RjVXpVSDNsZDdIazZIR1NaSitCWkFJYlVVVWtY?= =?utf-8?B?ak9UMUVvN2VSZFNyRXAyREs5cTZPL2VrMkQ5SncxK25CSmIyOXpKNFhXYzdp?= =?utf-8?B?WEdORFF3dDhXTFVNNE9vNTVGa2lhTVBleWwwSVlrTlRuNnZVeGwyQ2cvcDhH?= =?utf-8?B?ZGk3Y00zcFV1MDhZRjZEVzduTkdHRWo4RmVYR0dUT0pydXRtdG1aRW9YTnpp?= =?utf-8?B?YVo3WEtjTUdseGJRTkNQeFU5dTRLbmtMM3RYNU9ZY1NqbTEvRi83M3N5RS83?= =?utf-8?B?eWgydTM0emZHdWU0WUhaUTBJMjQxSGVkbTFWVWl3dHJPVy8vSjFFRnpPSDZE?= =?utf-8?B?OHp2T01yVHZpdGdYczhvVGM2eUxlNzZncTNWUWoycjMyTHlVVlA0ZVl1dWJK?= =?utf-8?B?Rnc9PQ==?= 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: 8b8b4e3e-04d3-4cf7-fd54-08db5bad703b X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2023 16:47:47.3319 (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: 4BGxtPDqIdwyNlsQSDuTWGjTIwk3P+ir3f3tiLgj4CSE/zhDLcxJybQpvoICMqVa3hti6YiZVzsVUU2OV2nLmOKhyLAjMKnBxYnPBIbBEd4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6286 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 SGkgQXJkLA0KDQpUaGFua3MuICBJIGFncmVlIHdpdGggeW91ciBwbGFuLg0KDQpJbiB0aGUgZnV0 dXJlLCBpZiB3ZSB0aGluayB0aGVyZSBpcyB2YWx1ZSBpbiBlbmFibGluZyBwYWdpbmcgaW4gMzIt Yml0IFBFSSwgd2UgY291bGQgYWRkIHRoZSBQUEkgYXQgdGhhdCB0aW1lLg0KDQpNaWtlDQoNCj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8g PGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgQXJkDQo+IEJpZXNoZXV2ZWwNCj4g U2VudDogVHVlc2RheSwgTWF5IDIzLCAyMDIzIDg6NTEgQU0NCj4gVG86IGRldmVsQGVkazIuZ3Jv dXBzLmlvOyBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ DQo+IENjOiBsZXJzZWtAcmVkaGF0LmNvbTsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IFlh bywgSmlld2VuDQo+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEdlcmQgSG9mZm1hbm4gPGtyYXhl bEByZWRoYXQuY29tPjsgVGF5bG9yDQo+IEJlZWJlIDx0QHRheWxvcmJlZWJlLmNvbT47IE9saXZl ciBTbWl0aC1EZW5ueSA8b3NkQHNtaXRoLWRlbm55LmNvbT4NCj4gU3ViamVjdDogUmU6IFtlZGsy LWRldmVsXSBtYW5hZ2luZyBtZW1vcnkgYXR0cmlidXRlcyBpbiBQRUkNCj4gDQo+IE9uIFR1ZSwg MjMgTWF5IDIwMjMgYXQgMTc6MTUsIE1pY2hhZWwgRCBLaW5uZXkNCj4gPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPiB3cm90ZToNCj4gPg0KPiA+DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBBcmQgQmllc2hldXZlbCA8YXJkYkBrZXJuZWwub3Jn Pg0KPiA+ID4gU2VudDogVHVlc2RheSwgTWF5IDIzLCAyMDIzIDc6NTkgQU0NCj4gPiA+IFRvOiBL aW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBDYzog ZGV2ZWxAZWRrMi5ncm91cHMuaW87IGxlcnNla0ByZWRoYXQuY29tOyBOaSwgUmF5DQo+IDxyYXku bmlAaW50ZWwuY29tPjsNCj4gPiA+IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47 IEdlcmQgSG9mZm1hbm4NCj4gPiA+IDxrcmF4ZWxAcmVkaGF0LmNvbT47IFRheWxvciBCZWViZSA8 dEB0YXlsb3JiZWViZS5jb20+OyBPbGl2ZXINCj4gU21pdGgtDQo+ID4gPiBEZW5ueSA8b3NkQHNt aXRoLWRlbm55LmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gbWFuYWdpbmcg bWVtb3J5IGF0dHJpYnV0ZXMgaW4gUEVJDQo+ID4gPg0KPiA+ID4gT24gVHVlLCAyMyBNYXkgMjAy MyBhdCAxNjo0OSwgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA+IDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4gd3JvdGU6DQo+ID4gPiA+DQo+ID4gPiA+IEFyZCwNCj4gPiA+ID4NCj4gPiA+ID4g SSB3b3VsZCBwcmVmZXIgdG8ga2VlcCB0aGUgSUEzMiBQRUkgc3VwcG9ydCBmb3IgT1ZNRi4NCj4g PiA+ID4NCj4gPiA+DQo+ID4gPiBTdXJlLiBCdXQgZG9lcyB0aGF0IGltcGx5IHRoYXQgYWxsIGVu aGFuY2VtZW50cyByZWdhcmRpbmcgbWVtb3J5DQo+ID4gPiBwcm90ZWN0aW9ucyBzaG91bGQgYmUg aW50cm9kdWNlZCB0aGVyZSBhcyB3ZWxsPw0KPiA+DQo+ID4gSSB3b3VsZCBwcmVmZXIgdG8gbm90 IHN1cHBvcnQgdGhlc2UgcHJvdGVjdGlvbnMgaW4gSUEzMiBQRUkuICBTYW1lDQo+ID4gZm9yIElB MzIgRFhFLiAgQ2FuIHRoZSBwcm9wb3NlZCBQUEkgZG8gbm90aGluZyBmb3IgSUEzMj8NCj4gPg0K PiANCj4gQWJzb2x1dGVseS4gSSB3YXMganVzdCB0cnlpbmcgdG8gbmFycm93IGRvd24gd2hldGhl ciB5b3VyICdrZWVwaW5nDQo+IElBMzInIG1lYW50IGp1c3Qga2VlcGluZyBpdCBpbiB3b3JraW5n IG9yZGVyLCBvciBoYXZlIGl0IGtlZXAgdXAgd2l0aA0KPiBmdXR1cmUgZW5oYW5jZW1lbnRzLg0K PiANCj4gTXkgaW50ZW50IGlzIHRvIGltcGxlbWVudCBhbiBvcHRpb25hbCBQUEkgdGhhdCB3aWxs IGJlIHVzZWQgYnkgdGhlIFBFSQ0KPiBpbWFnZSBsb2FkZXIgdG8gbWFwIFBFIGNvZGUgYW5kIGRh dGEgc2VjdGlvbnMgd2l0aCB0aGUgYXBwcm9wcmlhdGUNCj4gcGVybWlzc2lvbnMgaWYgdGhleSBh cmUgc3VpdGFibHkgYWxpZ25lZC4gT25seSB0aGUgRFhFIGNvcmUgd291bGQNCj4gZ2VuZXJhbGx5 IGZpdCB0aGlzIGRlc2NyaXB0aW9uLCBidXQgdGhlcmUgaXMgbm8gcmVhc29uIHRvIGRpc2FsbG93 DQo+IHRoaXMgZm9yIHNoYWRvd2VkIFBFSU1zIHRoYXQgaGFwcGVuIHRvIGJlIGJ1aWx0IGFzIFBF MzIgYmluYXJpZXMgd2l0aA0KPiA0ayBzZWN0aW9uIGFsaWdubWVudCAoYWx0aG91Z2ggSSdtIG5v dCBjb252aW5jZWQgb2YgdGhlIHZhbHVlIGFkZA0KPiB0aGVyZSkNCj4gDQo+IElmIHRoZSBQUEkg aXMgbm90IGV4cG9zZWQgKGZvciBhbnkgcmVhc29uKSB0aGluZ3Mgc2hvdWxkIGp1c3Qga2VlcA0K PiB3b3JraW5nIGFzIHRoZXkgZG8gdG9kYXkuDQo+IA0KPiBHaXZlbiB0aGF0IE9WTUYgbm8gbG9u Z2VyIGZ1bmN0aW9uYWxseSBkZXBlbmRzIG9uIElBMzIgUEVJLCB3ZSBzaW1wbHkNCj4gd29uJ3Qg Ym90aGVyIHRvIGltcGxlbWVudCB0aGUgUFBJIGF0IGFsbCBmb3IgSUEzMi4NCj4gDQo+IA0KPiAN Cj4gDQoNCg==