From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web09.15021.1627871756680032094 for ; Sun, 01 Aug 2021 19:35:56 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=ezdsviNz; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: ray.ni@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10063"; a="200544710" X-IronPort-AV: E=Sophos;i="5.84,287,1620716400"; d="scan'208";a="200544710" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2021 19:35:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,287,1620716400"; d="scan'208";a="478553974" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by fmsmga008.fm.intel.com with ESMTP; 01 Aug 2021 19:35:55 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Sun, 1 Aug 2021 19:35:54 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Sun, 1 Aug 2021 19:35:54 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) 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.2242.10 via Frontend Transport; Sun, 1 Aug 2021 19:35:54 -0700 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.43) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Sun, 1 Aug 2021 19:35:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qd338jAdYHt3NlfcndvzpjK+fYG6nf45KsQt3QznQFEZ4btfP2C+u+woSwSjdIiUdktFqMyzzRBRitBSVvLU9dv8ZLYDc3rdLvW5b8NQ0M8HZwJONZtzjn2/aT4V2r79v99kW8GgaMnUh689Leh0R46P9kvHxKqdcQ9hsreJcReFqZE3W6dR+0y5jJTOHwvSwE977UrkVVQiZg6l63QySWewAZawsP1G5eQfmhX6mo55RMQfYW+VW2AYhs3xwKiiMLnELQ8CuEacGGObhLMA6f/fFo004UgPpaU2mNojfM/Fmems+LBlkVuO0yXzGE8P8zB9fEUPm6v6LbDRWKhinQ== 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=5AQDhVxkgyMLvni+BFucIZoodzLg3E+439MqZ0IMlv8=; b=Wm/qFKmjPEX4FFTk+850U+WYL59fjjBCSSSQYYH+OYTwDbexhP84+WAxTVcXvMFBey5XcthDcVI72w4mCXbeZxmo0bNTV5ED5+yRKnFlmQwPp0kMC43jjyVRk0P77BMXtIgJlq1rQSiiC1jcDrysMQZwOjgnHY7L/7S/SGVDKghEP+gY3CgvRKnsz8GD+QFFFGg8HOu8e9j0S2T6iixrbYK+nNY17nDA3eoPkSv1XtyfSHgxGlD3qfBtNyOWoxJ+nDBssyfc0QvZwV+8euquk+ecj+J/c2LY1U09cQswYQ/HpgDRlEc4l2bZPcbSpixVgMx4KsU7jKuqeMn4TJzBTw== 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=5AQDhVxkgyMLvni+BFucIZoodzLg3E+439MqZ0IMlv8=; b=ezdsviNztOi0uLfMLd1E2MUuIejr6G91UZJcHXKpAT1bEApJswNgu2HluAy3651eImIz2l/0UrDqftl1Vo8TJ9nHDH86fyy9oz1i7auebH8YkeMrYNxGVlAgjG5ZRVuWgkFYudTdB2HNk7ALuovRr363/AnL0f48dnQFKiWqpu8= Received: from CO1PR11MB4930.namprd11.prod.outlook.com (2603:10b6:303:9b::11) by MW3PR11MB4745.namprd11.prod.outlook.com (2603:10b6:303:5e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4373.22; Mon, 2 Aug 2021 02:35:52 +0000 Received: from CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::dc21:42bd:8553:2869]) by CO1PR11MB4930.namprd11.prod.outlook.com ([fe80::dc21:42bd:8553:2869%2]) with mapi id 15.20.4373.026; Mon, 2 Aug 2021 02:35:52 +0000 From: "Ni, Ray" To: "devel@edk2.groups.io" , "spbrogan@outlook.com" , "Yao, Jiewen" , Taylor Beebe , "Wang, Jian J" CC: "Dong, Eric" , "Kumar, Rahul1" , "mikuback@linux.microsoft.com" , "Wu, Hao A" , "Bi, Dandan" , "gaoliming@byosoft.com.cn" , "Dong, Guo" , "Ma, Maurice" , "You, Benjamin" Subject: Re: [edk2-devel] [RFC] MemoryProtectionLib for Dynamic Memory Guard Settings Thread-Topic: [edk2-devel] [RFC] MemoryProtectionLib for Dynamic Memory Guard Settings Thread-Index: AQHXf1pIwz5/dKJEG0GH5mRRco1hAKtZQXmAgAGLjACAAACpAIAAAsQAgAAHtgCAAQ5ogIADoc8g Date: Mon, 2 Aug 2021 02:35:52 +0000 Message-ID: References: <5ffb8dce-8a33-537c-2019-ec4666854739@taylorbeebe.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 867f38dc-0655-42c9-0750-08d9555e3f23 x-ms-traffictypediagnostic: MW3PR11MB4745: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 3/MLborLhSWGr/bRpKb+q52VVW2mkTEYgtGeMik4c+3d+a/k3cKU+GxP8ZXpGoHzXJYEeYZbs3PvujHEPz/ogNxUFw5ldgDTT9isg2l9Q/4GF9p3B2l2lCq1iUyuYQN//fY4Dg+mW/ZCUbFWjoDKLHLJNdZ30T08wg6a02ecqlV9ELg4XBLlQxgrhZTgEaKaRFLxq+/B3m1WZTpN/KYncJSXtFwICBOLPzUiK88cK+bUSM+DKlqhsW8J4L5D/YQ7PYJQbnXr/JqTQ2vhSko9QRtCAVVyPiS7YHZReBDIsnbMeYQsrTAjhste2X3ecmHA107Um9PFgM/69CLmydz/ixA3kptmH/6d+lOufWBKq5c+HHO/b0pKH/DAqw9ZtEb5tWHu22zKSlf4h4fMauChmlFihuQqFuk+OcAqxvCE5Q17YvExj0cZi0RWUoSRtvbj1W2H9sNXzbibdL7AMefdw4heaUyMdrj5n17MlD/Yvw3piesulIC7PkbymFVuTPYRXa7UUAHMAhM85jFk3zBXtAY0QyA2zvEvDlmTpDZm6oBK3TSdreYRbQhSgL3JDOHBcG4f1Q7m9qBkcs9RuYwbW7dJNhYI96jAFCHjc2/YkLcYScUgYZ3B2FrUvGtGKI0TnCee3D34wk+piwh95/s9j40vsekVoD5n60D9ElWtr5xBSRW31uRZM71ulqjdB+tPfT98cHgNAcY+jXx1TeBQWMXom+sZk/ti8Us8LowXrtJ2aN17sVLh66F82ELOsec+7yczIyJ5c6xPaSE9d5Lft9NGmWZil4b9cej9WQ4VrKgE3JtHlu5M//rVs+LZHm8V1irqDvLW4zLNZeeRuo6RbvrRuTBpLx3D2DIR0NBErQ0= 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)(396003)(39860400002)(376002)(136003)(366004)(346002)(186003)(316002)(52536014)(54906003)(8676002)(55016002)(9686003)(110136005)(66476007)(66556008)(66446008)(8936002)(966005)(64756008)(478600001)(2906002)(4326008)(76116006)(107886003)(66946007)(6636002)(122000001)(38100700002)(26005)(7696005)(83380400001)(33656002)(45080400002)(38070700005)(53546011)(5660300002)(86362001)(6506007)(71200400001)(781001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bGhLaWozdE82UW95RFBTMWZ5ZWJSd3JTRmpwWXBUQU5zd3lERFNNck5yY3Rk?= =?utf-8?B?a2JSZXg5bE5EeE45dWpjQk9mdkN6THgyaEtRUjBGUDQxWjJ6ME1GZWFkb1Fr?= =?utf-8?B?cUJzRnRJbldjMjc2c2h3MWU1d2ZJU0plRUJscDFwZU4xSzBKTjh0WmFreDJx?= =?utf-8?B?K1FMMGhYaVA2S1RESGMvOEtKQnMvQndNODBaNUFLekh2SThjZ2svT2pnaHNl?= =?utf-8?B?aGJSUkxlOEdicm1sWHBYak4rTHBDc25lekptaWZTdWRQaXNqVklTMFNobG1W?= =?utf-8?B?LzF0MzhpUjY2WFJWTWNiQ3lmbzBIS25WU2VSdkkyaEcyd2NXcmJWSit0Umxs?= =?utf-8?B?dkVSc0ZQcExIUkllZWh6QzNEK2RBUnFwbHlKV3pRb2FsWEcxbTlFWkcyTjhG?= =?utf-8?B?SnAxTXZFUFNNQmhodTVTdFA4cHI2MGlLb1BDdmtocndNUU9UWlV2N2ZvVHJF?= =?utf-8?B?L2Fha2hoaWJ0RDJ2R3VMb1Rra3lVZkUrN2xlMmtEUk9xdEtNNEFoZnlqYzJh?= =?utf-8?B?TUNka2w4blRXWWg0SnlSdGtPak1FMmg4ZUNRcTdJaUZjZWIzcDF4NFVEcDgr?= =?utf-8?B?WCtTbCtCd24zWmlYc3Fxa1Via1JHOS8wNkJuZHRPdks0ZDN3SEY1clJ5MlA1?= =?utf-8?B?ODg2YkZlRmMzdHEyM09CVk9rR3ZnT1ZNNUtWMjhqcEVmUklWSE02OVVITU8r?= =?utf-8?B?bXdKYXVUbnpZb2JyYm85Z2ZYcDZ4NE5Sa2FyWGVFS21IcHduSitWOFFEWFpk?= =?utf-8?B?dXc5ZU1LQWpibFh4bmJvaS9Da2RYK0p5SUxhaEFSaHFVRE55YmFldDNTMjFY?= =?utf-8?B?VzhmYkR2KzBjMmM0UkhpS3NieWJoMnUvc1EzelBldTR4ajc2emRCRGdXbTJF?= =?utf-8?B?VzRxZ1I4bGR3Q0FiSEhteTUvbnNKUEJjalUyaHRQSFVacmtnMFpjdGJPeTQ1?= =?utf-8?B?YWNNK2RXNXVxQWs1aXk3TXBIQXRKWXQ1NnlvU0dyRjlwS09CUzgzNGFOWEhN?= =?utf-8?B?dzA1NTFPc2R2NE1zNUZicmVIa1Q2Nk5ITVVnNDJyQXExU1Z4c0M1amo4aERW?= =?utf-8?B?M1BZcnN4WEswYi9qdVVkMExVZm8yaEUxeW1mWjhkRW05RGh1RXBBUThPMzhN?= =?utf-8?B?d0RtVmZRYzR2NkcxR2NXaUZyY2pCZi94NmlxQ1Fram9KSzI0RHlLbXRUbDFk?= =?utf-8?B?a3phM1Z1d3JISndjZU9kaXd4dXBialRQNVJabDdkc0Jwc3NPSlF0YkcwZmR6?= =?utf-8?B?bUJZOFUvaWo5UkQ0QitqeHZmVVNLc0h6bExzODFBN3VPbitqWlhPTGpaRXls?= =?utf-8?B?S29pZm1OM2ozK2lNTEgrTmE0UkhOT0p6ZnUrZjh0b2ZPbEJUT01ZakpIMmdv?= =?utf-8?B?Vnhvb0dIaU1xaU5mVXRBYmJWYUNDOEVvU0hDOXZ3V1E2QjJ5S2cvNFAxRTV0?= =?utf-8?B?YWx6RTYwblg2SnlXeFNlWUQzYktwOFpvSWxOSDdLSUpaTzJuNEhray9xbFk5?= =?utf-8?B?ZlRLK1Y5dlNHaGpVSkx6bkNZZ3ZRaDBXcVZUbXhiazQzTWhlbWpIaVhOWWVP?= =?utf-8?B?YUdTZ3NiTnJQUFpNYkE1L243WUNxRk53d3Fld3NmR2ZJM2NMUHQxM0UwWmpD?= =?utf-8?B?a1QvN0Jxa1FxSlZCaXcyQ1lGYWdJK3RxYktub0hoQjNHeHZyL3dUcGJHR3Nq?= =?utf-8?B?bEJSRVJ6eHFibXgvclpDaXB3dHR6NXZZcVJVa0JGWVNjMFRBVnFNZnZPWDcz?= =?utf-8?Q?Ua5EXEweHGB8IEXARHi4dR7l++zSQE1CoJU2/fx?= 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: 867f38dc-0655-42c9-0750-08d9555e3f23 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Aug 2021 02:35:52.3137 (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: MgXsbY4qaIHl41PhM9FGe08Acukt3QXR4gUqP5PetN16p1IazkTjnk1Q8U8H3YW2uQ+fyC5Kz+ZoBi9zms12zg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4745 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 SSBhbHNvIHZvdGUgInVzaW5nIEhPQiBwYXNzaW5nIHBvbGljeSIuIFRoaXMgZGVzaWduIGhlbHBz IHRoZSBuZXcgYm9vdGxvYWRlci9wYXlsb2FkIGFyY2hpdGVjdHVyZS4NCg0KRURLSUkgbGlicmFy eSBjbGFzcyBkZXNpZ24gd2FzIGEgZ29vZCBkZXNpZ24gd2hpY2ggbWltaWNzIEMrKyBjbGFzcyB0 byBwcm92aWRlIHNhbWUgaW50ZXJmYWNlIGZvcjoNCjEuIGRpZmZlcmVudCBwaGFzZXMgKFBFSSwg RFhFLCBydW50aW1lLiBFLmcuOiBIb2JMaWIsIFBjZExpYiwgTWVtb3J5QWxsb2NhdGlvbkxpYikN CjIuIGRpZmZlcmVudCBzb3VyY2Ugb2YgcG9saWN5IChlLmcuOiBEZWJ1Z0xpYi4pDQozLiBkaWZm ZXJlbnQgb3B0aW1pemF0aW9uIG1lY2hhbmlzbSAoZS5nLjogQmFzZU1lbW9yeUxpYikNCjQuIG1v cmUuLi4NCg0KSG93ZXZlciwgdGhlIGV4dGVuc2l2ZSB1c2FnZSBvZiBsaWIgY2xhc3MgYnJpbmdz IGRpZmZpY3VsdHkgb2YgdW5kZXJzdGFuZGluZyB0aGUgY29kZS4gVGhlcmUgYXJlIHNvIG1hbnkg aW5zdGFuY2VzIG9mIGEgbGlicmFyeSBjbGFzcyBhbmQgaXQncyBoYXJkIHRvIGtub3cgd2hpY2gg b25lIGlzIGJlaW5nIHVzZWQgYnkgYSBjZXJ0YWluIG1vZHVsZSBieSBqdXN0IGxvb2tpbmcgYXQg dGhlIHNvdXJjZSBjb2RlLiAoU29tZXRpbWVzIGV2ZW4gSSBuZWVkIHRvIGJ1aWxkIHRoZSBjb2Rl IGJhc2UgYW5kIGNoZWNrIHRoZSBmaWxlcyBpbiBidWlsZCBkaXJlY3RvcnkgdG8gdW5kZXJzdGFu ZCB3aGljaCBsaWIgaW5zdGFuY2UgaXMgdXNlZCBmb3Igd2hpY2ggbW9kdWxlLikNCg0KSXQncyBh IGNvbW1vbiBpc3N1ZSBpbiBwcm9qZWN0cyB1c2luZyBPTyBwcm9ncmFtaW5nIGxhbmd1YWdlLiBC dXQgbW9zdCBvZiB0aGVzZSBwcm9qZWN0cyBhcmUgZm9yIGFwcGxpY2F0aW9uIGxldmVsIG5lZWRz IGFuZCB0aGUgYXBwIGRlYnVnZ2VyIGlzIHZlcnkgZWFzeSB0byB1c2UuIFRoaXMgaXMgdGhlIGRp ZmZlcmVuY2UgYmV0d2VlbiBFREtJSSBwcm9qZWN0cyBhbmQgb3RoZXIgT08gcHJvamVjdHMuDQoN ClRoYW5rcywNClJheQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogZGV2ZWxA ZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgU2Vhbg0K U2VudDogU2F0dXJkYXksIEp1bHkgMzEsIDIwMjEgMjo0MiBBTQ0KVG86IGRldmVsQGVkazIuZ3Jv dXBzLmlvOyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBUYXlsb3IgQmVlYmUg PHRAdGF5bG9yYmVlYmUuY29tPjsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+ DQpDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBp bnRlbC5jb20+OyBLdW1hciwgUmFodWwxIDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPjsgbWlrdWJh Y2tAbGludXgubWljcm9zb2Z0LmNvbTsgV3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBC aSwgRGFuZGFuIDxkYW5kYW4uYmlAaW50ZWwuY29tPjsgZ2FvbGltaW5nQGJ5b3NvZnQuY29tLmNu OyBEb25nLCBHdW8gPGd1by5kb25nQGludGVsLmNvbT47IE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1h QGludGVsLmNvbT47IFlvdSwgQmVuamFtaW4gPGJlbmphbWluLnlvdUBpbnRlbC5jb20+DQpTdWJq ZWN0OiBSZTogW2VkazItZGV2ZWxdIFtSRkNdIE1lbW9yeVByb3RlY3Rpb25MaWIgZm9yIER5bmFt aWMgTWVtb3J5IEd1YXJkIFNldHRpbmdzDQoNCkppZXdlbiwNCg0KKipTbGlnaHQgcmFudCoqDQoN CkkgYWdyZWUgd2l0aCBsaWJyYXJpZXMgYXMgYW4gZWZmZWN0aXZlIGFic3RyYWN0aW9uIG1ldGhv ZC4gIEJ1dCBJIHRoaW5rIHRoZXJlIG5lZWRzIHRvIGJlIGEgYnJvYWQgZGlzY3Vzc2lvbiBhYm91 dCB0aGUgb3JkZXIgb2YgcHJlZmVyZW5jZSBmb3IgbWV0aG9kcyBvZiBhYnN0cmFjdGlvbi4gIFRv ZGF5IHRoZSBlZGsyIGNvZGUgYmFzZSBpcyBhIG1peCBhbmQgb2Z0ZW4gdGhlcmUgYXJlIG51bWVy b3VzIG1ldGhvZHMgYWJzdHJhY3RpbmcgdGhlIHNhbWUgdGhpbmcgd2hpY2ggbGVhZHMgdG8gY29u ZnVzaW9uLCBtaXNjb25maWd1cmF0aW9uLCBhbmQgZXJyb3IuDQoNCkluIHRoZSBVRUZJIHNwZWNp ZmljYXRpb24gd2UgaGF2ZSBQUElzL1Byb3RvY29scy9FdmVudHMgZm9yIGZ1bmN0aW9uYWwgYWJz dHJhY3Rpb24uICBXZSBoYXZlIHZhcmlhYmxlcywgZ3VpZGVkIGNvbmZpZyB0YWJsZXMsIGFuZCBI SUkgZm9yIGRhdGEgYWJzdHJhY3Rpb24uDQoNCkluIHRoZSBQSSBzcGVjaWZpY2F0aW9uIHdlIGFk ZCBIT0JzIGFuZCBQQ0RzIGZvciBkYXRhIGFic3RyYWN0aW9ucy4NCg0KRmluYWxseSwgaW4gRURL SUkgd2UgYWRkIHRoZSBsaWJyYXJ5IGNsYXNzIGNvbmNlcHQgYW5kIGxldmVyYWdlIGl0IGhlYXZp bHkgZm9yIGFyY2gsIHBoYXNlLCBhbmQgcGxhdGZvcm0vYmVoYXZpb3JhbCBhYnN0cmFjdGlvbnMu DQoNCldpdGhvdXQgY2xlYXIgZ3VpZGFuY2UgZm9yIGhvdyBhbmQgd2hlbiB0byB1c2UgdGhlIGFi b3ZlIGl0IGlzIGhhcmQgdG8ga2VlcCBjb2RlIGJlaW5nIGRldmVsb3BlZCBieSB0aGUgbGFyZ2Vy IGNvbW11bml0eSBjb25zaXN0ZW50Lg0KDQoqKkVuZCoqDQoNCkkgd2FzIGxlYW5pbmcgdG93YXJk cyBzb21ldGhpbmcgY2xvc2VyIHRvDQoNCiA+PiBPcHRpb24gMTogDQpodHRwczovL2dpdGh1Yi5j b20vVGF5bG9yQmVlYmUvZWRrMi90cmVlL21lbW9yeV9wcm90ZWN0aW9uX2xpYl8yDQoNCnRoZSBI T0IgbWV0aG9kIGFuZCBpbnRlcm5hbGx5IGFzIHdlIGRldmVsb3AgbW9yZSBjb2RlIHdlIGFyZSBw cmVmZXJyaW5nIEhPQiBhbmQgZGF0YSBhYnN0cmFjdGlvbnMgbW9yZSB0aGFuIGZ1bmN0aW9uYWwg YWJzdHJhY3Rpb24uICBEYXRhIGFic3RyYWN0aW9ucyBjYW4gYmUgdXNlZCB0byBjb250cm9sIGZ1 bmN0aW9uYWwgZGlmZmVyZW5jZXMgYXMgd2VsbCBpZiBuZWVkZWQuICBEYXRhIGFic3RyYWN0aW9u cyBhbGxvdyBmb3IgZWFzaWVyIHZhbGlkYXRpb24gYW5kIHN1cHBvcnQgZGl2ZXJzZSBjb2RlIGVu dmlyb25tZW50cy4gIEZvciBleGFtcGxlIHN0YW5kYWxvbmUgTU0gYW5kIHBheWxvYWRwa2cvcGF5 bG9hZCBjb25jZXB0cy4gIEZpbmFsbHksIGRhdGEgYWJzdHJhY3Rpb25zIGJyZWFrIHRoZSBuZWVk IA0KZm9yIGEgbW9ub2xpdGhpYyBjb2RlIGJhc2UuICAgQnV0IGFzIHlvdSBjYW4gc2VlIGluIG9w dGlvbiAxIGl0IGFjdHVhbGx5IA0KdXNlcyBhIGxpYnJhcnkgY2xhc3MgYWJzdHJhY3Rpb24gYXMg d2VsbCBiZWNhdXNlIG5vIG9uZSB3YW50cyB0byB3cml0ZSB0aGUgc2FtZSBjb2RlIG92ZXIgYW5k IG92ZXIgYWdhaW4gdG8gZ2V0IHRoZSBIT0IuICBUaGUgY29udHJhY3Qgb2YgdGhlIGxpYnJhcnkg aXMganVzdCBkYXRhIGJ1dCBpdCBzdGlsbCByZXF1aXJlcyBsaWJyYXJ5IG1hcHBpbmdzLiAgTWF5 YmUgdGhlc2UgdHlwZXMgb2YgbGlicmFyaWVzIG5lZWQgdG8gYmUgdHJlYXRlZCBkaWZmZXJlbnRs eS4NCg0KQW55d2F5IGl0IHdvdWxkIGJlIGdyZWF0IHRvIGhlYXIgZnJvbSBvdGhlciBtZW1iZXJz IG9mIHRoZSBjb21tdW5pdHkgYXJvdW5kIG5vdCBqdXN0IHRoZSBtZW1vcnkgcHJvdGVjdGlvbnMg UkZDICh0aGlzIFJGQykgYnV0IGFyb3VuZCBwcmVmZXJlbmNlcyBmb3IgYWJzdHJhY3Rpb24gdGVj aG5pcXVlcyAocHJvL2NvbikuICBJZiBhbiBhY3R1YWwgZGlzY3Vzc2lvbiBzdGFydHMgaXQgY291 bGQgbW92ZSB0byBkZXNpZ24gbWVldGluZy4NCg0KVGhhbmtzDQpTZWFuDQoNCg0KDQoNCg0KDQoN Ck9uIDcvMjkvMjAyMSA3OjM0IFBNLCBZYW8sIEppZXdlbiB3cm90ZToNCj4gVGhhbmtzLiBDb2Rl IHRhbGtzIGJldHRlci4NCj4gDQo+IEkgcHJlZmVyIG9wdGlvbiAyLCB3aGljaCBpcyBhIGdlbmVy aWMgd2F5IGZvciBhYnN0cmFjdGlvbi4NCj4gDQo+IEFuZCB5b3UgbWF5IGVuYWJsZSBvcHRpb24g MSB1bmRlciB0aGUgY292ZXIgb2Ygb3B0aW9uIDIsIGp1c3QgY3JlYXRlIGEgbGliIGluc3RhbmNl IHRvIGdldCBjb25maWcgZnJvbSBIb2IuDQo+IA0KPiBUaGFuayB5b3UNCj4gWWFvIEppZXdlbg0K PiANCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBUYXlsb3IgQmVlYmUg PHRAdGF5bG9yYmVlYmUuY29tPg0KPj4gU2VudDogRnJpZGF5LCBKdWx5IDMwLCAyMDIxIDEwOjA3 IEFNDQo+PiBUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgV2FuZywgSmlh biBKIA0KPj4gPGppYW4uai53YW5nQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ PiBDYzogc3Bicm9nYW5Ab3V0bG9vay5jb207IERvbmcsIEVyaWMgPGVyaWMuZG9uZ0BpbnRlbC5j b20+OyBOaSwgUmF5IA0KPj4gPHJheS5uaUBpbnRlbC5jb20+OyBLdW1hciwgUmFodWwxIDxyYWh1 bDEua3VtYXJAaW50ZWwuY29tPjsgDQo+PiBtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tOyBX dSwgSGFvIEEgPGhhby5hLnd1QGludGVsLmNvbT47IEJpLCANCj4+IERhbmRhbiA8ZGFuZGFuLmJp QGludGVsLmNvbT47IGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjsgRG9uZywgR3VvIA0KPj4gPGd1 by5kb25nQGludGVsLmNvbT47IE1hLCBNYXVyaWNlIDxtYXVyaWNlLm1hQGludGVsLmNvbT47IFlv dSwgDQo+PiBCZW5qYW1pbiA8YmVuamFtaW4ueW91QGludGVsLmNvbT4NCj4+IFN1YmplY3Q6IFJl OiBbUkZDXSBNZW1vcnlQcm90ZWN0aW9uTGliIGZvciBEeW5hbWljIE1lbW9yeSBHdWFyZCANCj4+ IFNldHRpbmdzDQo+Pg0KPj4gT2YgY291cnNlIC0gaGVyZSBhcmUgYSBjb3VwbGUgb2Ygcm91Z2gg ZHJhZnRzOg0KPj4NCj4+IE9wdGlvbiAxOiANCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9UYXlsb3JC ZWViZS9lZGsyL3RyZWUvbWVtb3J5X3Byb3RlY3Rpb25fbGliXzINCj4+IE9wdGlvbiAyOiANCj4+ IGh0dHBzOi8vZ2l0aHViLmNvbS9UYXlsb3JCZWViZS9lZGsyL3RyZWUvbWVtb3J5X3Byb3RlY3Rp b25fbGliDQo+Pg0KPj4gT24gNy8yOS8yMDIxIDY6NTcgUE0sIFlhbywgSmlld2VuIHdyb3RlOg0K Pj4+IEhpDQo+Pj4gU29ycnksIEkgYW0gbm90IGFibGUgdG8gZm9sbG93IHRoZSBkaXNjdXNzaW9u Lg0KPj4+DQo+Pj4gSXMgdGhlcmUgYW55IHNhbXBsZSBvciBQT0MgY29kZSB0byBzaG93IHRoZSBj b25jZXB0Pw0KPj4+DQo+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+IEZyb206 IFRheWxvciBCZWViZSA8dEB0YXlsb3JiZWViZS5jb20+DQo+Pj4+IFNlbnQ6IEZyaWRheSwgSnVs eSAzMCwgMjAyMSA5OjU1IEFNDQo+Pj4+IFRvOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGlu dGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+Pj4+IENjOiBzcGJyb2dhbkBvdXRsb29r LmNvbTsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IE5pLCBSYXkgDQo+Pj4+IDxy YXkubmlAaW50ZWwuY29tPjsgS3VtYXIsIFJhaHVsMSA8cmFodWwxLmt1bWFyQGludGVsLmNvbT47 IA0KPj4+PiBtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tOyBXdSwgSGFvIEEgPGhhby5hLnd1 QGludGVsLmNvbT47IEJpLA0KPj4gRGFuZGFuDQo+Pj4+IDxkYW5kYW4uYmlAaW50ZWwuY29tPjsg Z2FvbGltaW5nQGJ5b3NvZnQuY29tLmNuOyBEb25nLCBHdW8gDQo+Pj4+IDxndW8uZG9uZ0BpbnRl bC5jb20+OyBNYSwgTWF1cmljZSA8bWF1cmljZS5tYUBpbnRlbC5jb20+OyBZb3UsDQo+PiBCZW5q YW1pbg0KPj4+PiA8YmVuamFtaW4ueW91QGludGVsLmNvbT47IFlhbywgSmlld2VuIDxqaWV3ZW4u eWFvQGludGVsLmNvbT4NCj4+Pj4gU3ViamVjdDogUmU6IFtSRkNdIE1lbW9yeVByb3RlY3Rpb25M aWIgZm9yIER5bmFtaWMgTWVtb3J5IEd1YXJkIA0KPj4+PiBTZXR0aW5ncw0KPj4+Pg0KPj4+PiBU aGFua3MgZm9yIHlvdXIgZmVlZGJhY2ssIEppYW4uDQo+Pj4+DQo+Pj4+IEluIG9wdGlvbiAyLCBh IG1vc3QgYmFzaWMgaW1wbGVtZW50YXRpb24gd291bGQgcmV0dXJuaW5nIHRoZSANCj4+Pj4gY3Vy cmVudCBGaXhlZEF0QnVpbGQgUENEcyBhc3N1bWluZyB0aGV5IGFyZSBrZXB0LiBJZiB0aGV5IGFy ZW4ndCwgDQo+Pj4+IHRoZSBsaWJyYXJ5IGltcGxlbWVudGVyIGNvdWxkIHNpbXBseSBoYXJkLWNv ZGUgdGhlIHJldHVybiB2YWx1ZSBmb3IgDQo+Pj4+IGVhY2ggbWVtb3J5IHByb3RlY3Rpb24gc2V0 dGluZy4NCj4+Pj4NCj4+Pj4gSW4gb3B0aW9uIDEsIHRoZSBIT0Igd291bGQgYmUgcHVibGlzaGVk IGluIHByZS1tZW0gYW5kIEknbSBub3QgYW4gDQo+Pj4+IGV4cGVydCBvbiBleHBsb2l0aW5nIHRo ZSBwcmUtbWVtIGVudmlyb25tZW50LiBKaWV3ZW4gbWF5IGhhdmUgbW9yZSANCj4+Pj4gdG8gc2F5 IG9uDQo+PiB0aGlzLg0KPj4+Pg0KPj4+PiAtVGF5bG9yDQo+Pj4+DQo+Pj4+IE9uIDcvMjgvMjAy MSA3OjE4IFBNLCBXYW5nLCBKaWFuIEogd3JvdGU6DQo+Pj4+PiBUaGFua3MgZm9yIHRoZSBSRkMu IEknbSBub3Qgb2JqZWN0IHRvIHRoaXMgaWRlYS4gVGhlIG9ubHkgY29uY2VybiANCj4+Pj4+IGZy b20gbWUgaXMgdGhlIHBvdGVudGlhbCBzZWN1cml0eSBob2xlcyBpbnRyb2R1Y2VkIGJ5IHRoZSBj aGFuZ2VzLiANCj4+Pj4+IEFjY29yZGluZyB0byB5b3VyIGRlc2NyaXB0aW9uLCBpdCBhbGxvd3Mg M3JkIHBhcnR5IHNvZnR3YXJlIHRvIA0KPj4+Pj4gdmlvbGF0ZSBtZW1vcnkgcHJvdGVjdGlvbg0K Pj4gcG9saWN5Lg0KPj4+Pj4gSSdkIGxpa2UgdG8gc2VlIG1vcmUgZXhwbGFuYXRpb25zIG9uIGhv dyB0byBhdm9pZCBpdCB0byBiZSBleHBsb2l0ZWQuDQo+Pj4+Pg0KPj4+Pj4gK0ppZXdlbiwgd2hh dCdzIGN1cnJlbnQgcHJvY2VzcyB0byBldmFsdWF0ZSB0aGUgc2VjdXJpdHkgdGhyZWF0Pw0KPj4+ Pj4NCj4+Pj4+IFJlZ2FyZHMsDQo+Pj4+PiBKaWFuDQo+Pj4+Pg0KPj4+Pj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+Pj4+Pj4gRnJvbTogVGF5bG9yIEJlZWJlIDx0QHRheWxvcmJlZWJl LmNvbT4NCj4+Pj4+PiBTZW50OiBGcmlkYXksIEp1bHkgMjMsIDIwMjEgODozMyBBTQ0KPj4+Pj4+ IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPj4+Pj4+IENjOiBzcGJyb2dhbkBvdXRsb29rLmNv bTsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IE5pLCANCj4+Pj4+PiBSYXkgPHJh eS5uaUBpbnRlbC5jb20+OyBLdW1hciwgUmFodWwxIDxSYWh1bDEuS3VtYXJAaW50ZWwuY29tPjsg DQo+Pj4+Pj4gbWlrdWJhY2tAbGludXgubWljcm9zb2Z0LmNvbTsgV2FuZywgSmlhbiBKIA0KPj4+ Pj4+IDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+Ow0KPj4gV3UsDQo+Pj4+Pj4gSGFvIEEgPGhhby5h Lnd1QGludGVsLmNvbT47IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyANCj4+Pj4+ PiBnYW9saW1pbmdAYnlvc29mdC5jb20uY247IERvbmcsIEd1byA8Z3VvLmRvbmdAaW50ZWwuY29t PjsgTWEsDQo+Pj4+IE1hdXJpY2UNCj4+Pj4+PiA8bWF1cmljZS5tYUBpbnRlbC5jb20+OyBZb3Us IEJlbmphbWluIDxiZW5qYW1pbi55b3VAaW50ZWwuY29tPg0KPj4+Pj4+IFN1YmplY3Q6IFtSRkNd IE1lbW9yeVByb3RlY3Rpb25MaWIgZm9yIER5bmFtaWMgTWVtb3J5IEd1YXJkIA0KPj4+Pj4+IFNl dHRpbmdzDQo+Pj4+Pj4NCj4+Pj4+PiBDdXJyZW50IG1lbW9yeSBwcm90ZWN0aW9uIHNldHRpbmdz IHJlbHkgb24gRml4ZWRBdEJ1aWxkIFBDRCANCj4+Pj4+PiB2YWx1ZXMgKG1pbnVzIFBjZFNldE54 Rm9yU3RhY2spLiBCZWNhdXNlIG9mIHRoaXMsIHRoZSBtZW1vcnkgDQo+Pj4+Pj4gcHJvdGVjdGlv biBjb25maWd1cmF0aW9uIGludGVyZmFjZSBpcyBmaXhlZCBpbiBuYXR1cmUuIENhc2VzIA0KPj4+ Pj4+IGFyaXNlIGluIHdoaWNoIG1lbW9yeSBwcm90ZWN0aW9ucyBtaWdodCBuZWVkIHRvIGJlIGFk anVzdGVkIA0KPj4+Pj4+IGJldHdlZW4gYm9vdHMgKGlmIHBsYXRmb3JtIGRlc2lnbg0KPj4+Pj4+ IGFsbG93cykgdG8gYXZvaWQgZGlzYWJsaW5nIGEgc3lzdGVtLiBGb3IgZXhhbXBsZSwgcGxhdGZv cm1zIG1pZ2h0IA0KPj4+Pj4+IGNob29zZSB0byBhbGxvdyB0aGUgdXNlciB0byBjb250cm9sIHRo ZWlyIHByb3RlY3Rpb24gcG9saWNpZXMgDQo+Pj4+Pj4gc3VjaCBhcyBhbGxvdyBleGVjdXRpb24g b2YgY3JpdGljYWwgM3JkIHBhcnR5IHNvZnR3YXJlIHRoYXQgbWlnaHQgDQo+Pj4+Pj4gdmlvbGF0 ZSBtZW1vcnkgcHJvdGVjdGlvbnMuDQo+Pj4+Pj4NCj4+Pj4+PiBUaGlzIFJGQyBzZWVrcyB5b3Vy IGZlZWRiYWNrIHJlZ2FyZGluZyBpbnRyb2R1Y2luZyBhbiBpbnRlcmZhY2UgDQo+Pj4+Pj4gdGhh dCBhbGxvd3MgZHluYW1pYyBjb25maWd1cmF0aW9uIG9mIG1lbW9yeSBwcm90ZWN0aW9uIHNldHRp bmdzLg0KPj4+Pj4+DQo+Pj4+Pj4gSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2UgdHdvIG9wdGlvbnM6 DQo+Pj4+Pj4gMS4gRGVzY3JpYmluZyB0aGUgbWVtb3J5IHByb3RlY3Rpb24gc2V0dGluZyBjb25m aWd1cmF0aW9uIGluIGEgDQo+Pj4+Pj4gSE9CIHRoYXQgaXMgcHJvZHVjZWQgYnkgdGhlIHBsYXRm b3JtLg0KPj4+Pj4+IDIuIEludHJvZHVjaW5nIGEgbGlicmFyeSBjbGFzcyAoZS5nLiBNZW1vcnlQ cm90ZWN0aW9uTGliKSB0aGF0IA0KPj4+Pj4+IGFsbG93cyBhYnN0cmFjdGlvbiBvZiB0aGUgbWVt b3J5IHByb3RlY3Rpb24gc2V0dGluZyBjb25maWd1cmF0aW9uIGRhdGEgc291cmNlLg0KPj4+Pj4+ DQo+Pj4+Pj4gSW4gYWRkaXRpb24sIEkgd291bGQgbGlrZSB0byBrbm93IGlmIHRoZSBtZW1vcnkg cHJvdGVjdGlvbiANCj4+Pj4+PiBGaXhlZEF0QnVpbGQgUENEcyBjdXJyZW50bHkgaW4gTWRlTW9k dWxlUGtnIGNhbiBiZSByZW1vdmVkIHNvIHdlIA0KPj4+Pj4+IGNhbiBtb3ZlIHRoZSBjb25maWd1 cmF0aW9uIGludGVyZmFjZSBlbnRpcmVseSB0byBhbiBvcHRpb24gYWJvdmUuDQo+Pj4+Pj4NCj4+ Pj4+PiBJbiBhbnkgY2FzZSwgSSB3b3VsZCBsaWtlIHRoZSBzZXR0aW5ncyB0byBiZSB2aXNpYmxl IHRvIA0KPj4+Pj4+IGVudmlyb25tZW50cyBzdWNoIGFzIFN0YW5kYWxvbmUgTU0gd2hlcmUgZHlu YW1pYyBQQ0RzIGFyZSBub3QgYWNjZXNzaWJsZS4NCj4+Pj4+Pg0KPj4+Pj4+IEkgYW0gc2Vla2lu ZyB5b3VyIGZlZWRiYWNrIG9uIHRoaXMgcHJvcG9zYWwgaW4gcHJlcGFyYXRpb24gZm9yIA0KPj4+ Pj4+IHNlbmRpbmcgYW4gZWRrMiBwYXRjaCBzZXJpZXMuDQo+Pj4+Pj4NCj4+Pj4+PiAtLQ0KPj4+ Pj4+IFRheWxvciBCZWViZQ0KPj4+Pj4+IFNvZnR3YXJlIEVuZ2luZWVyIEAgTWljcm9zb2Z0DQo+ Pj4+DQo+Pj4+IC0tDQo+Pj4+IFRheWxvciBCZWViZQ0KPj4+PiBTb2Z0d2FyZSBFbmdpbmVlciBA IE1pY3Jvc29mdA0KPj4NCj4+IC0tDQo+PiBUYXlsb3IgQmVlYmUNCj4+IFNvZnR3YXJlIEVuZ2lu ZWVyIEAgTWljcm9zb2Z0DQo+IA0KPiANCj4gDQo+IA0KPiANCg0KDQoNCg0KDQo=