From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web11.349.1602187011306781942 for ; Thu, 08 Oct 2020 12:56:51 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Atah5Hzt; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: christopher.j.zurcher@intel.com) IronPort-SDR: GO8lKSoIDNaz4LJYQIXggA7jc4qjRvbnckCw9iMM+co8egqOjq2v2Zy8D+o5PMDGh5bcY4s5aJ yXsqKI/h9EOQ== X-IronPort-AV: E=McAfee;i="6000,8403,9768"; a="161935624" X-IronPort-AV: E=Sophos;i="5.77,351,1596524400"; d="scan'208";a="161935624" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Oct 2020 12:56:50 -0700 IronPort-SDR: LfIFLp5bJe2PKuijU3/oci4Qlb8rcJhM8INNGTDPyCkmWGDmpMMOXvmzKeD7HltBK6u47i9DZJ TOG5FVhZpltQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,351,1596524400"; d="scan'208";a="388896054" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga001.jf.intel.com with ESMTP; 08 Oct 2020 12:56:50 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 8 Oct 2020 12:56:49 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 8 Oct 2020 12:56:49 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 8 Oct 2020 12:56:49 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 8 Oct 2020 12:56:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D9fGeAVUP29ea8HchYqFy/YWO/SQOmbPVPVxxe+Leed9054KpEtM9if416hskjJ5rBrKOZO+pOc4V5PaSEF37riMJ87D/tfJD2qULF+02XmjZB6ARqYj8OKvTrRku48eCXfzPTIb6/lm5RkXPji/i/gQjxc1rV/ugRlcBmTYPbtmewSIi7gkbNu4hkFuhSknXy2Pr4/VM8X5zfmZSrEi/c8K5STopSjAHsm+8StmoA0CfG16L4NLZ5Lsn4GO7kpiy1zcfqYsFRCFPDIYVwNdkqVpPpgVDRBPQY7aXCr4dOKaDecjSSTBX57dAwl7G56ankqQZ7N5rZuFetrvo+Jrig== 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=x766ThLRebDbpbIt8hNDIFzuQqPasu80mA2vW9FNsWk=; b=jC/oEIAy5uoXlTNRMp5tMqcZ12iLwqNyYRdmuP17sbljcNRpkx2BPWaFC+KNA7wlEP7kW8nFtaAiHYyYq+OHQcemMFT3K0eVbtDI3x8UN+g5d/J+VWzGiz7HLHApT4MdEszyiexoLS2qfSutONKoRv+wBOivXMXaColUIX70issyEGZboNowbV8zCNgESpbreOcxIG/mzMJ2+3QXqL9ytClV2epZ7SllE8lKJXZobpacGv/0U7kZTGU/9jL0c0aMZZP0NyLC6BYTJTLdZVSHYdCd9cR19nExWBtbhQUvCQODYtk+h+91wSZEbXqZwG+Z/ysGXKggzEyPctK22plU5A== 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=x766ThLRebDbpbIt8hNDIFzuQqPasu80mA2vW9FNsWk=; b=Atah5HztSsK3rGX9Hga0GDW+hbQZFc370NvP1d27hlxd2T9/lK9+ioyHB0h9h/mCE1AfGWYijgk9BV5CtkYsm51RDKu0lAmh52+u2oubQdzwEsht1n58tOaz1P8Zk4lGPTlP+HmIG7Y+aUAGfy61jO/ZoyvroddS7Geh0mhvVoo= Received: from MWHPR1101MB2125.namprd11.prod.outlook.com (2603:10b6:301:4d::10) by CO1PR11MB5091.namprd11.prod.outlook.com (2603:10b6:303:6c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.23; Thu, 8 Oct 2020 19:56:47 +0000 Received: from MWHPR1101MB2125.namprd11.prod.outlook.com ([fe80::6cbb:9c13:41f0:ce20]) by MWHPR1101MB2125.namprd11.prod.outlook.com ([fe80::6cbb:9c13:41f0:ce20%3]) with mapi id 15.20.3433.046; Thu, 8 Oct 2020 19:56:47 +0000 From: "Zurcher, Christopher J" To: Laszlo Ersek , "devel@edk2.groups.io" , "Yao, Jiewen" , "Jiang, Guomin" CC: "Wang, Jian J" , "Lu, XiaoyuX" , "Ard Biesheuvel (ARM address)" Subject: Re: [edk2-devel] [PATCH v2 1/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Topic: [edk2-devel] [PATCH v2 1/2] CryptoPkg/OpensslLib: Add native instruction support for X64 Thread-Index: AQHWafWk4Fp7/vSvg0yxS46YX8nrdKk2MGcggAhJsvCACWVbYIAAKRzAgCM344CACdON8IAAvBfQgAki4UCABB4jAIAKAZgw Date: Thu, 8 Oct 2020 19:56:47 +0000 Message-ID: References: <20200804002429.3897-1-christopher.j.zurcher@intel.com> <20200804002429.3897-2-christopher.j.zurcher@intel.com> <162C7E6ED8CEF542.12673@groups.io> <1ce6123c-7616-30ad-07a0-30b6a5b51dec@redhat.com> In-Reply-To: <1ce6123c-7616-30ad-07a0-30b6a5b51dec@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-reaction: no-action dlp-product: dlpe-windows authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [50.53.185.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 665bc95e-c57c-4bc9-8e06-08d86bc44a47 x-ms-traffictypediagnostic: CO1PR11MB5091: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Hzr79u+Fz2xuzPUD333W8TxLGdVFTP57iYdgIyODxKF4QxWhbglSk1khekwDoea0jAvEbet2fg1nJesfqYwGarUdHnDxBsAGYGW24o/mjiOZk6UbutMaFqhqVNFOGtSpw43aVYbELnNc/wh5bvX2q+0NawGobPPmUCcK/y94zg9nx5cyBTI9mtU1QHk3lI+wXnqAllDvGr1wl0opYbrlWl2N5opGjR2giB2GZRW4hXgqG1u4Awr/RYVZqaWBAkESVw75J9qhz1PX5hdQzl6VzSDTlDx07e7dKi7yWnl475SS3KezbTbWfBIVz+VsCIJdAltZ0auHh2pEwhICje52Ww== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1101MB2125.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(39860400002)(136003)(346002)(396003)(366004)(52536014)(2906002)(9686003)(86362001)(66446008)(64756008)(66556008)(66476007)(66946007)(76116006)(71200400001)(55016002)(33656002)(8676002)(186003)(8936002)(6636002)(83380400001)(26005)(316002)(7696005)(53546011)(6506007)(478600001)(110136005)(4326008)(54906003)(5660300002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: 9TCe3sSPxpignp3xV8oFHDER900VVR6awlSIOM3oh0EaR0l+1PU0qadGLg/nxMXFkm9Q/KQF3s45l0TgzseUJvIrOo1LUZuNjp9bbD7Q4xkdKOElgBGx3aJ5wQE+NsIqGfcSWuyU97OYo959fjOo0lyxzKA9pjI/jFcaAfnzpNdDDheNh9G/yTZxsVJQuRalxIsxohJ6BZwSFKv3yVnrfVCFKJW0GhfZRkua4tehbah7RVoOw9vlsklMLqEBfix90tRkcvSr6SCr5RSxAiuJD+X4f/Yarocl35TSaza4zuf/aUGSxzgZyW3egIGk2bUXFQhpn+AMtKqga/oh/MaBNXFHia44QYUmFTjtZ5Lc8mg02Yo42llo2vVITCdjEx85EhTa6SHHAiJ6tT65ZlgIeCMHOdI4GVeeFEGrGw7hxvWTenltDQsu8EkJSKcmn/fLmrzmbjzFOp/jrr+8JZxJ7zQi8NHn+FlPrZmMJF42gVeKoVIZo1MiXEjkVCr6aJqC18XlBcZtgp6rjELHc+eu8oa0/vVAbUN/W+zqEkbjWivp5edtqM4PatDIG17W6maXRAT5WdU/UvBEiijr7TObGjauOCSr3FBkmkyc0dePABuYt3MPUmsfTT5X/fwG+QprdPUA/CSq+VfZqldUXS7XmA== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR1101MB2125.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 665bc95e-c57c-4bc9-8e06-08d86bc44a47 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Oct 2020 19:56:47.5341 (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: wjP0Hp10z0o4ES918aTLPwmU06JH0Y3gd2uqXTEreFqexBmZMQFO7wFHtIthfa6Wnjevd7CnVTMxDFOoNvqMMiUwp4ynpWpsV8Vo6FEuy8w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5091 Return-Path: christopher.j.zurcher@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvLCB0aGFua3MgZm9yIHNoYXJpbmcgdGhpcyBleHBsYW5hdGlvbiBhbmQgaGlzdG9yeS4g SSBoYXZlIGZvdW5kIHRoYXQgaW4gYWRkaXRpb24gdG8gdGhlICJjb21tb24iIGRlY2xhcmF0aW9u LCBPcGVuU1NMJ3MgU3RydWN0dXJlZCBFeGNlcHRpb24gSGFuZGxpbmcgZnVuY3Rpb25hbGl0eSBh bHNvIGJyZWFrcyB0aGUgR0NDIGJ1aWxkIGJ5IGluY2x1ZGluZyAid3J0IC4uaW1hZ2ViYXNlIiBz dGF0ZW1lbnRzLiBTaW5jZSB3ZSBjYW5ub3QgaW1wbGVtZW50IGZ1bmN0aW9uYWwgY2hhbmdlcyBp biB0aGUgY3VycmVudCAxLjEuMXggdmVyc2lvbnMgb2YgT3BlblNTTCwgbXkgcHJvcG9zYWwgaXMg dG8gZ28gYWhlYWQgd2l0aCB0aGlzIHBhdGNoIG9ubHkgc3VwcG9ydGluZyBWUyBhbmQgTExWTSB0 b29sY2hhaW5zIGZvciBub3cuDQoNClRoYW5rcywNCkNocmlzdG9waGVyIFp1cmNoZXINCg0KPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0By ZWRoYXQuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAxLCAyMDIwIDA1OjU4DQo+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgWnVyY2hlciwgQ2hyaXN0b3BoZXIgSg0KPiA8Y2hyaXN0 b3BoZXIuai56dXJjaGVyQGludGVsLmNvbT47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVs LmNvbT47IEppYW5nLA0KPiBHdW9taW4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+DQo+IENjOiBX YW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IEx1LCBYaWFveXVYIDx4aWFveXV4 Lmx1QGludGVsLmNvbT47DQo+IEFyZCBCaWVzaGV1dmVsIChBUk0gYWRkcmVzcykgPGFyZC5iaWVz aGV1dmVsQGFybS5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIHYyIDEv Ml0gQ3J5cHRvUGtnL09wZW5zc2xMaWI6IEFkZCBuYXRpdmUNCj4gaW5zdHJ1Y3Rpb24gc3VwcG9y dCBmb3IgWDY0DQo+IA0KPiAocmVmcmVzaGluZyBBcmQncyBhZGRyZXNzLCBjb21tZW50cyBiZWxv dykNCj4gDQo+IE9uIDA5LzI5LzIwIDIzOjA4LCBadXJjaGVyLCBDaHJpc3RvcGhlciBKIHdyb3Rl Og0KPiA+IFRoZSBHQ0MgYnVpbGQgZmFpbHMgd2l0aCB0aGlzIGVycm9yOg0KPiA+DQo+ID4gYE9Q RU5TU0xfaWEzMmNhcF9QJyByZWZlcmVuY2VkIGluIHNlY3Rpb24gYC50ZXh0Lk9QRU5TU0xfY3B1 aWRfc2V0dXAnDQo+ID4gb2YgL3RtcC9jY0lJUkFZcy5sdHJhbnMyMC5sdHJhbnMubzogZGVmaW5l ZCBpbiBkaXNjYXJkZWQgc2VjdGlvbg0KPiA+IGBDT01NT04nIG9mDQo+ID4NCj4gL21udC9jL21z c3FsL3RpYW5vL0J1aWxkL092bWZYNjQvREVCVUdfR0NDNS9YNjQvQ3J5cHRvUGtnL0xpYnJhcnkv T3BlbnNzbExpYi8NCj4gT3BlbnNzbExpYlg2NC9PVVRQVVQvT3BlbnNzbExpYlg2NC5saWIoeDg2 XzY0Y3B1aWQub2JqKQ0KPiA+DQo+ID4gVGhlIGNvZGUgaW4gcXVlc3Rpb24gaXMgaGVyZToNCj4g Pj4gc2VjdGlvbiAuQ1JUJFhDVSByZGF0YSBhbGlnbj04DQo+ID4+ICAgICAgICAgICAgICAgICBE USAgICAgIE9QRU5TU0xfY3B1aWRfc2V0dXANCj4gPj4NCj4gPj4gY29tbW9uICBPUEVOU1NMX2lh MzJjYXBfUCAxNg0KPiANCj4gRm9yIHRoZSBYNjQgYXJjaCwgT1BFTlNTTF9jcHVpZF9zZXR1cCgp IGlzIGltcGxlbWVudGVkIGluDQo+IA0KPiAgIENyeXB0b1BrZy9MaWJyYXJ5L09wZW5zc2xMaWIv b3BlbnNzbC9jcnlwdG8vY3J5cHRsaWIuYw0KPiANCj4gSXQgbWFrZXMgcmVmZXJlbmNlcyB0bzoN Cj4gDQo+ICAgZXh0ZXJuIHVuc2lnbmVkIGludCBPUEVOU1NMX2lhMzJjYXBfUFs0XTsNCj4gDQo+ IFRoZSB2YXJpYWJsZSBpcyBkZWZpbmVkIGluIGdlbmVyYXRlZCBhc3NlbWJseSBzb3VyY2UgY29k ZS4NCj4gDQo+IFRoZXJlIHNlZW0gdG8gYmUgbXVsdGlwbGUgZ2VuZXJhdG9ycyAoZm9yIHZhcmlv dXMgYXNzZW1ibGVycyk6DQo+IA0KPiAoMSkgY3J5cHRvL3Blcmxhc20veDg2Z2FzLnBsIC0tIGxp a2VseSBmb3IgdGhlIEdOVSBhc3NlbWJsZXI6DQo+IA0KPiA+ICAgICAgICBteSAkdG1wPSIuY29t bVx0JHtubWRlY29yfU9QRU5TU0xfaWEzMmNhcF9QLDE2IjsNCj4gDQo+ICgyKSBjcnlwdG8vcGVy bGFzbS94ODZuYXNtLnBsIC0tIGxpa2VseSBmb3IgTkFTTToNCj4gDQo+ID4gJHtkcmRlY29yfWNv bW1vbiAgICAgICR7bm1kZWNvcn1PUEVOU1NMX2lhMzJjYXBfUCAxNg0KPiANCj4gKDMpIGNyeXB0 by94ODZfNjRjcHVpZC5wbCAtLSBsaWtlbHkgZm9yLi4uID8/Pw0KPiANCj4gPiAuY29tbSAgICAg T1BFTlNTTF9pYTMyY2FwX1AsMTYsNA0KPiANCj4gVGhleSBhbGwgcHV0IHRoZSB2YXJpYWJsZSBp biB0aGUgImNvbW1vbiIgc2VjdGlvbi4NCj4gDQo+IFRyYWNraW5nIHRoZSBOQVNNIGdlbmVyYXRv ciB0aHJvdWdoIGEgbnVtYmVyIG9mICJnaXQgYmxhbWUiIGNvbW1hbmRzLA0KPiBJJ3ZlIGVuZGVk IHVwIGF0IGhpc3RvcmljYWwgY29tbWl0IDEwZTdkNmQ1MjY1MCAoIlN1cHBvcnQgZm9yIElBLTMy IFNTRTINCj4gaW5zdHJ1Y3Rpb24gc2V0LiIsIDIwMDQtMDUtMDYpLiBUaGlzIGNvbW1pdCBpbnRy b2R1Y2VkICJPUEVOU1NMX2lhMzJjYXAiDQo+IGF0IG9uY2UgaW4gdGhlIGNvbW1vbiBzZWN0aW9u IC0tIHNlZSAiY3J5cHRvL3Blcmxhc20veDg2dW5peC5wbCIuDQo+IA0KPiBOb3csIHRoZSBOQVNN IG1hbnVhbCBzYXlzIHRoZSBmb2xsb3dpbmcgYWJvdXQgdGhlIGNvbW1vbiBzZWN0aW9uOg0KPiAN Cj4gPiA2LjcuICdDT01NT04nOiBEZWZpbmluZyBDb21tb24gRGF0YSBBcmVhcw0KPiA+ID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+ID4NCj4gPiBUaGUgJ0NPTU1P TicgZGlyZWN0aXZlIGlzIHVzZWQgdG8gZGVjbGFyZSBfY29tbW9uIHZhcmlhYmxlc18uICBBIGNv bW1vbg0KPiA+IHZhcmlhYmxlIGlzIG11Y2ggbGlrZSBhIGdsb2JhbCB2YXJpYWJsZSBkZWNsYXJl ZCBpbiB0aGUgdW5pbml0aWFsaXplZA0KPiA+IGRhdGEgc2VjdGlvbiwgc28gdGhhdA0KPiA+DQo+ ID4gICAgICBjb21tb24gIGludHZhciAgNA0KPiA+DQo+ID4gICAgaXMgc2ltaWxhciBpbiBmdW5j dGlvbiB0bw0KPiA+DQo+ID4gICAgICBnbG9iYWwgIGludHZhcg0KPiA+ICAgICAgc2VjdGlvbiAu YnNzDQo+ID4NCj4gPiAgICAgIGludHZhciAgcmVzZCAgICAxDQo+ID4NCj4gPiAgICBUaGUgZGlm ZmVyZW5jZSBpcyB0aGF0IGlmIG1vcmUgdGhhbiBvbmUgbW9kdWxlIGRlZmluZXMgdGhlIHNhbWUN Cj4gPiBjb21tb24gdmFyaWFibGUsIHRoZW4gYXQgbGluayB0aW1lIHRob3NlIHZhcmlhYmxlcyB3 aWxsIGJlIF9tZXJnZWRfLCBhbmQNCj4gPiByZWZlcmVuY2VzIHRvICdpbnR2YXInIGluIGFsbCBt b2R1bGVzIHdpbGwgcG9pbnQgYXQgdGhlIHNhbWUgcGllY2Ugb2YNCj4gPiBtZW1vcnkuDQo+IA0K PiBUaGUgY29tbW9uIHNlY3Rpb24gaXMgYSAqcmVhbGx5KiBiYWQgaWRlYSBmb3IgQyBsYW5ndWFn ZSBwcm9qZWN0cywNCj4gYmVjYXVzZSBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgZXh0ZXJuYWwgZGVm aW5pdGlvbnMgb2YgYW4gb2JqZWN0IGluIGENCj4gcHJvZ3JhbSwgdGhlbiB0aGF0IHNob3VsZCAo cGVyIEMgbGFuZ3VhZ2Ugc3RhbmRhcmQpIHByZXZlbnQgdGhlDQo+IHN1Y2Nlc3NmdWwgbGlua2lu ZyBvZiB0aGUgcHJvZ3JhbSwgcmF0aGVyIHRoYW4gdW5kZXJnbyBzaWxlbnQgZGVmaW5pdGlvbg0K PiBtZXJnaW5nLg0KPiANCj4gVGhpcyBoYXMgY2F1c2VkIGFjdHVhbCwgaW5leHBsaWNhYmxlIGJ1 Z3MgaW4gZWRrMiAtLSBpZGVudGljYWxseSBuYW1lZCwNCj4gYnV0IGRpZmZlcmVudGx5IHNpemVk LCBhbmQgZW50aXJlbHkgaW5kZXBlbmRlbnRseSBpbnRlZGVkLCB2YXJpYWJsZXMNCj4gd2l0aCBl eHRlcm5hbCBsaW5rYWdlIGFuZCBzdGF0aWMgc3RvcmFnZSBkdXJhdGlvbiBnb3Qgc2lsZW50bHkg bWVyZ2VkLA0KPiByYXRoZXIgdGhhbiBicmVha2luZyB0aGUgYnVpbGQuIEluIHRoZSBlbmQsIHdl IHRyYWNrZWQgdGhvc2UgZG93biBhbmQNCj4gbWFya2VkIHRoZW0gYWxsIFNUQVRJQy4gQnV0IGlu IG9yZGVyIHRvIHByZXZlbnQgc3VjaCBub25zZW5zZSBpbiB0aGUNCj4gZnV0dXJlLCB3ZSBhbHNv IGZvcmJhZGUgdGhlIGNvbW1vbiBzZWN0aW9uIGFsdG9nZXRoZXIuIExldCBtZSBmaW5kIHRoYXQN Cj4gY29tbWl0Li4uDQo+IA0KPiBZZXMsIHBsZWFzZSBzZWUgMjE0YTNiNzk0MTdmICgiQmFzZVRv b2xzIEdDQzogYXZvaWQgdGhlIHVzZSBvZiBDT01NT04NCj4gc3ltYm9scyIsIDIwMTUtMTItMDgp Lg0KPiANCj4gU28sIG15IGd1ZXNzIGlzIHRoYXQgdGhpcyBpbnRlcmZlcmVzIHdpdGggT3BlblNT TCdzIHBsYWNpbmcgb2YNCj4gIk9QRU5TU0xfaWEzMmNhcF9QIiBpbiB0aGUgY29tbW9uIHNlY3Rp b24uDQo+IA0KPiBXaXRob3V0IGtub3dpbmcgbW9yZSwgSSdkIGhhemFyZCB0aGF0IHRoaXMgaXMg YSBidWcgaW4gT3BlblNTTC4gVW5sZXNzDQo+IHRoZXkgaGF2ZSBhIHN0cm9uZyByZWFzb24gZm9y IGl0LCBJIHRoaW5rIHdlIHNob3VsZCB0cnkgdG8gY29udHJpYnV0ZSBhDQo+IHBhdGNoIHRoYXQg cmVtb3ZlcyAiY29tbW9uIi4NCj4gDQo+IFRoZSBjb2RlIHNob3VsZCBwcm92aWRlIGV4YWN0bHkg b25lIGRlZmluaXRpb24gKGluIHRoZSBnZW5lcmF0ZWQNCj4gYXNzZW1ibHkgc291cmNlKSwgcHJv dmlkZSBvbmUgY2VudHJhbCAoZXh0ZXJuKSBkZWNsYXJhdGlvbiB0b28sIGluIGENCj4gaGVhZGVy IGZpbGUsIHRoZW4gbGV0IGFsbCB1c2VycyBpbmNsdWRlIHRoZSBkZWNsYXJhdGlvbiB2aWEgdGhl IGhlYWRlcg0KPiBmaWxlLiBUaGUgb2JqZWN0IGZpbGUgYnVpbHQgZnJvbSB0aGUgZ2VuZXJhdGVk IGFzc2VtYmx5IHNvdXJjZSBzaG91bGQgYmUNCj4gbGlua2VkIGludG8gZWFjaCBmaW5hbCBleGVj dXRhYmxlLg0KPiANCj4gRm9yIGV4YW1wbGUsICJDcnlwdG9Qa2cvTGlicmFyeS9PcGVuc3NsTGli L29wZW5zc2wvY3J5cHRvL2NyeXB0bGliLmMiDQo+IGFscmVhZHkgY29ycmVjdGx5IGRlY2xhcmVz IHRoZSB2YXJpYWJsZSBhcyAiZXh0ZXJuIi4NCj4gDQo+IE90aGVyd2lzZSwgYXMgbGFzdCByZXNv cnQsIEkgZ3Vlc3Mgd2UgY291bGQgYXR0ZW1wdCB3b3JraW5nIGl0IGFyb3VuZCBieQ0KPiBhZGRp bmcgYmFjayAiLWZjb21tb24iIHRvIHRoZSBPcGVuc3NsTGliIGJ1aWxkIGZsYWdzLiA6Lw0KPiAN Cj4gVGhhbmtzLA0KPiBMYXN6bG8NCg0K