From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web11.174.1587613117019015643 for ; Wed, 22 Apr 2020 20:38:37 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: ray.ni@intel.com) IronPort-SDR: 5BQvMYK+75vVcVtwapSwitwf6HL0HOnoMgicaVErm41cezzzyIC0wzCUNaR1V1Q2X/JSZWD90B bDO2b4ImpzUg== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Apr 2020 20:38:35 -0700 IronPort-SDR: 0QGx4RI3ofOr7OsfdhBwLPwW4iCFUSj3sW8xZGFyCv2C52nBLbjHBMLGAnkypfC9CfrjW8WBQW Ok0AbZ9nWVDg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,305,1583222400"; d="scan'208";a="456755805" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga005.fm.intel.com with ESMTP; 22 Apr 2020 20:38:35 -0700 Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Apr 2020 20:37:56 -0700 Received: from shsmsx107.ccr.corp.intel.com (10.239.4.96) by FMSMSX155.amr.corp.intel.com (10.18.116.71) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 22 Apr 2020 20:37:56 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.225]) by SHSMSX107.ccr.corp.intel.com ([169.254.9.191]) with mapi id 14.03.0439.000; Thu, 23 Apr 2020 11:31:39 +0800 From: "Ni, Ray" To: "Jiang, Guomin" , "devel@edk2.groups.io" , "Kinney, Michael D" , "ard.biesheuvel@linaro.org" CC: "lersek@redhat.com" , "macarl@microsoft.com" Subject: Re: [edk2-devel] [PATCH] CryptoPkg/FltUsedLib: Add FltUsedLib for float. Thread-Topic: [edk2-devel] [PATCH] CryptoPkg/FltUsedLib: Add FltUsedLib for float. Thread-Index: AQHWBnCgCoUkH8e7okW2cls24/mue6hg+RYAgAAoAACAAAPHgIAA+7QAgAAgDACAAQ3WgIAApm0AgBQyHQCAABynoIANyA8wgAAmJPA= Date: Thu, 23 Apr 2020 03:31:38 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C5099F3@SHSMSX104.ccr.corp.intel.com> References: <03f18a49-6bd6-e753-e1bf-7e061d13f200@redhat.com> <14537.1585603662366515487@groups.io> <276d435b-4d94-0899-9710-1584d7baeb3c@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5C4FC746@SHSMSX104.ccr.corp.intel.com> <16059D94172527B2.17445@groups.io> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 R3VvbWluLA0KQ2FuIHlvdSBpbnZlc3RpZ2F0ZSB3aHkgbW92aW5nIF9mbHR1c2VkIGZyb20gQ3J5 cHRvUGtnL0ludHJpbnNpY0xpYiB0byBNZGVQa2cvQmFzZUxpYiBzYXZlcyBzaXplPw0KDQpUaGFu a3MsDQpSYXkNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKaWFuZywg R3VvbWluIDxndW9taW4uamlhbmdAaW50ZWwuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgQXByaWwg MjMsIDIwMjAgOTozNCBBTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEppYW5nLCBHdW9t aW4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsg S2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgYXJkLmJp ZXNoZXV2ZWxAbGluYXJvLm9yZw0KPiBDYzogbGVyc2VrQHJlZGhhdC5jb207IG1hY2FybEBtaWNy b3NvZnQuY29tDQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBDcnlwdG9Qa2cv Rmx0VXNlZExpYjogQWRkIEZsdFVzZWRMaWIgZm9yIGZsb2F0Lg0KPiANCj4gVGhlIHNpemUgY29t cGFyYXRpb24gYmV0d2VlbiB3aXRoIF9mbHR1c2VkIGFuZCB3aXRob3V0IF9mbHR1c2VkLCB1c2Ug T3ZtZlBrZ1g2NCBhcyBidWlsZCB0YXJnZXQNCj4gT3ZtZlg2NCAgRUZJX0ZWX1RBS0VOX1NJWkUg IHwgICBXaXRob3V0IF9mbHR1c2VkICAgICAgIHwgV2l0aCBfZmx0dXNlZA0KPiBEWEVGViAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDB4NDZiYmUwICAgICAg ICAgICAgICAgICAgICAgfCAweDQ2YmJjMA0KPiBGVk1BSU5fQ09NUEFDVCAgICAgICAgICAgICAg ICAgICAgIHwgIDB4MTJjOGEwICAgICAgICAgICAgICAgICAgICAgIHwgMHgxMmM3ZjANCj4gUEVJ RlYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMHg0Y2Fl OCAgICAgICAgICAgICAgICAgICAgICAgICB8IDB4NGNhNjgNCj4gRnJvbSB0aGUgcmVzdWx0LCBp dCB3aWxsIG9jY3VweSBsZXNzIHNpemUgcmF0aGVyIHRoYW4gbW9yZSBzaXplLg0KPiANCj4gQ29k ZSBDaGFuZ2UgYXMgYmVsb3cgYW5kIGJ1aWxkIGNvbW1hbmQgaXMgYGBgYnVpbGQgLXAgT3ZtZlBr Zy9Pdm1mUGtnWDY0IC1iIERFQlVHIC10IFZTMjAxOSAtYSBYNjQgLQ0KPiBEVFBNX0VOQUJMRT1U UlVFYGBgDQo+IA0KPiBkaWZmIC0tZ2l0IGEvQ3J5cHRvUGtnL0xpYnJhcnkvSW50cmluc2ljTGli L01lbW9yeUludHJpbnNpY3MuYyBiL0NyeXB0b1BrZy9MaWJyYXJ5L0ludHJpbnNpY0xpYi9NZW1v cnlJbnRyaW5zaWNzLmMNCj4gaW5kZXggOTRmZTM0MWJlYy4uYzQxMzY5MTZkMCAxMDA2NDQNCj4g LS0tIGEvQ3J5cHRvUGtnL0xpYnJhcnkvSW50cmluc2ljTGliL01lbW9yeUludHJpbnNpY3MuYw0K PiArKysgYi9DcnlwdG9Qa2cvTGlicmFyeS9JbnRyaW5zaWNMaWIvTWVtb3J5SW50cmluc2ljcy5j DQo+IEBAIC0yLDcgKzIsNyBAQA0KPiAgICBJbnRyaW5zaWMgTWVtb3J5IFJvdXRpbmVzIFdyYXBw ZXIgSW1wbGVtZW50YXRpb24gZm9yIE9wZW5TU0wtYmFzZWQNCj4gICAgQ3J5cHRvZ3JhcGhpYyBM aWJyYXJ5Lg0KPiANCj4gLUNvcHlyaWdodCAoYykgMjAxMCAtIDIwMTksIEludGVsIENvcnBvcmF0 aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gK0NvcHlyaWdodCAoYykgMjAxMCAtIDIw MjAsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiAgKiovDQo+IEBA IC0xMywxNiArMTMsNiBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KPiANCj4gIHR5cGVkZWYgVUlOVE4gIHNpemVfdDsNCj4gDQo+IC0jaWYgZGVmaW5lZChf X0dOVUNfXykgfHwgZGVmaW5lZChfX2NsYW5nX18pDQo+IC0gICNkZWZpbmUgR0xPQkFMX1VTRUQg X19hdHRyaWJ1dGVfXygodXNlZCkpDQo+IC0jZWxzZQ0KPiAtICAjZGVmaW5lIEdMT0JBTF9VU0VE DQo+IC0jZW5kaWYNCj4gLQ0KPiAtLyogT3BlblNTTCB3aWxsIHVzZSBmbG9hdGluZyBwb2ludCBz dXBwb3J0LCBhbmQgQyBjb21waWxlciBwcm9kdWNlcyB0aGUgX2ZsdHVzZWQNCj4gLSAgIHN5bWJv bCBieSBkZWZhdWx0LiBTaW1wbHkgZGVmaW5lIHRoaXMgc3ltYm9sIGhlcmUgdG8gc2F0aXNmeSB0 aGUgbGlua2VyLiAqLw0KPiAtaW50ICBHTE9CQUxfVVNFRCBfZmx0dXNlZCA9IDE7DQo+IC0NCj4g IC8qIFNldHMgYnVmZmVycyB0byBhIHNwZWNpZmllZCBjaGFyYWN0ZXIgKi8NCj4gIHZvaWQgKiBt ZW1zZXQgKHZvaWQgKmRlc3QsIGludCBjaCwgc2l6ZV90IGNvdW50KQ0KPiAgew0KPiBkaWZmIC0t Z2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZiBiL01kZVBrZy9MaWJyYXJ5 L0Jhc2VMaWIvQmFzZUxpYi5pbmYNCj4gaW5kZXggMzU4NmJlYjBhYi4uYmFiMzFjMDdjNyAxMDA2 NDQNCj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9CYXNlTGliLmluZg0KPiArKysgYi9N ZGVQa2cvTGlicmFyeS9CYXNlTGliL0Jhc2VMaWIuaW5mDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAg IyMgQGZpbGUNCj4gICMgIEJhc2UgTGlicmFyeSBpbXBsZW1lbnRhdGlvbi4NCj4gICMNCj4gLSMg IENvcHlyaWdodCAoYykgMjAwNyAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gKyMgIENvcHlyaWdodCAoYykgMjAwNyAtIDIwMjAsIEludGVsIENv cnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMgIFBvcnRpb25zIGNvcHly aWdodCAoYykgMjAwOCAtIDIwMDksIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICAjICBQb3J0aW9ucyBjb3B5cmlnaHQgKGMpIDIwMTEgLSAyMDEzLCBBUk0gTHRkLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMNCj4gQEAgLTYwLDYgKzYwLDcgQEANCj4gICAgU3Ry aW5nLmMNCj4gICAgRmlsZVBhdGhzLmMNCj4gICAgQmFzZUxpYkludGVybmFscy5oDQo+ICsgIEZs dFVzZWQuYyAgICAgICAgICAgICAgIHwgTVNGVA0KPiANCj4gIFtTb3VyY2VzLklhMzJdDQo+ICAg IElhMzIvV3JpdGVUci5uYXNtDQo+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGli L0ZsdFVzZWQuYyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvRmx0VXNlZC5jDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLmMwNjU1OTQyNjYNCj4gLS0tIC9kZXYv bnVsbA0KPiArKysgYi9NZGVQa2cvTGlicmFyeS9CYXNlTGliL0ZsdFVzZWQuYw0KPiBAQCAtMCww ICsxLDE0IEBADQo+ICsvKiogQGZpbGUNCj4gKyAgRGVjbGFyZSBfZmx0dXNlZCBzeW1ib2wgZm9y IE1TVkMNCj4gKw0KPiArICBNU1ZDIG5lZWQgdGhpcyBzeW1ib2wgZm9yIGZsb2F0LCBhbmRkIGl0 IGhlcmUgdG8gZmVlZCBNU1ZDLiBpdCBtYXkgcmVtb3ZlDQo+ICsgIGlmIE1TVkMgbm90IG5lZWQg aXQgYW55IG1vcmUuDQo+ICsNCj4gKyAgQ29weXJpZ2h0IChjKSAyMDIwIC0gMjAyMCwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiArICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPiArKiovDQo+ICsNCj4gKy8vDQo+ICsv LyBKdXN0IGZvciBNU1ZDIGZsb2F0DQo+ICsvLw0KPiAraW50IF9mbHR1c2VkID0gMHgxOw0KPiAN Cj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRldmVsQGVkazIuZ3Jv dXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIEd1b21pbg0KPiA+IEpp YW5nDQo+ID4gU2VudDogVHVlc2RheSwgQXByaWwgMTQsIDIwMjAgMzowMSBQTQ0KPiA+IFRvOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEtpbm5leSwg TWljaGFlbCBEDQo+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgYXJkLmJpZXNoZXV2 ZWxAbGluYXJvLm9yZw0KPiA+IENjOiBsZXJzZWtAcmVkaGF0LmNvbTsgbWFjYXJsQG1pY3Jvc29m dC5jb20NCj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gQ3J5cHRvUGtnL0Zs dFVzZWRMaWI6IEFkZCBGbHRVc2VkTGliIGZvcg0KPiA+IGZsb2F0Lg0KPiA+DQo+ID4gU3VtbWFy aXplIGN1cnJlbnQgc3RhdHVzOg0KPiA+DQo+ID4gUHJvYmxlbSBTdGF0ZW1lbnQ6DQo+ID4gT3Bl bnNzbCByZXF1aXJlIF9mbHR1c2VkIHRvIGJlIGRlZmluZWQgYXMgYSBjb25zdGFudCBhbnl3aGVy ZSBmbG9hdGluZyBwb2ludA0KPiA+IGlzIHVzZWQuDQo+ID4gSXQgbWF5IHVzZSBmbG9hdCBvdXQg b2YgZWRrMiB0cmVlIGFuZCBuZWVkIF9mbHR1c2VkLCBmb3IgZXhhbXBsZSwgTWljcm9zb2Z04oCZ cw0KPiA+IE9uU2NyZWVuS2V5Ym9hcmQgYW5kIFVpVG9vbEtpdC4NCj4gPg0KPiA+IEN1cnJlbnQg UHJvcG9zYWwgYXMgYmVsb3c6DQo+ID4NCj4gPiBQcm9wb3NhbCAxOiBBZGQgRmx0VXNlZC5jIGlu dG8gZXhpc3QgbGlicmFyeQ0KPiA+IERldGFpbDogQWRkIEZsdFVzZWQuYyBpbnRvIEVudHJ5UG9p bnRMaWIoUEVJTSwgRFhFKS4NCj4gPiBSZWNvbW1lbmQ6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmll c2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+IEFwcHJvdmU6IExhc3psbyBFcnNlayBsZXJzZWtAcmVk aGF0LmNvbQ0KPiA+IE5ldHVhbDogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+DQo+ID4gQmVuZWZpdDogRG9lc27igJl0IG5lZWQgbW9kaWZ5IGV2ZXJ5IC5kc2Mg ZGVzY3JpcHRpb24gZmlsZS4NCj4gPiBEZWZlY3Rpb246IEkgdGVzdCB0aGF0IGl0IHdpbGwgZmFp bCBiZWNhdXNlIG9mIC9HTCBvcHRpb24sIHRoZSBlcnJvciBzaG93IGZhdGFsDQo+ID4gZXJyb3Ig TE5LMTIzNzogZHVyaW5nIGNvZGUgZ2VuZXJhdGlvbiwgY29tcGlsZXIgaW50cm9kdWNlZCByZWZl cmVuY2UgdG8NCj4gPiBzeW1ib2wgJ19mbHR1c2VkJyBkZWZpbmVkIGluIG1vZHVsZQ0KPiA+ICdV ZWZpQXBwbGljYXRpb25FbnRyeVBvaW50LmxpYihGbHRVc2VkLm9iaiknIGNvbXBpbGVkIHdpdGgg L0dMDQo+ID4NCj4gPiBQcm9wb3NhbCAyOiBEZWZpbmUgTlVMTCBsaWJyYXJ5DQo+ID4gUmVjb21t ZW5kOiBNaWNoYWVsIEQgS2lubmV5IG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tDQo+ID4gT3Bw b3NlOiBTZWFuIHNlYW4uYnJvZ2FuPW1pY3Jvc29mdC5jb21AZ3JvdXBzLmlvICwgQXJkIEJpZXNo ZXV2ZWwNCj4gPiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gPiBCZW5lZml0OiBJIHRl c3QgaXQgYW5kIHByb3ZlIHRoYXQgaXQgaXMgZXhlY3V0YWJsZS4NCj4gPiBEZWZlY3Rpb246IEl0 IGlzIHJlcXVpcmVkIHRoYXQgbW9kaWZ5IGV2ZXJ5IGRlc2NyaXB0aW9uIGZpbGUuDQo+ID4gRGVm ZWN0aW9uOiBJdCBuZWVkIGJlIHZlcnkgY2FyZWZ1bCB0aGF0IGl0IHNob3VsZCBvbmx5IGFwcGx5 IHNvbWUgbW9kdWxlDQo+ID4gdHlwZShQRUlNLCBEWEVfRFJJVkVSLCBVRUZJX0FQUExJQ0FUSU9O KSByYXRoZXIgdGhhbiBhbGwuDQo+ID4gRGVmZWN0aW9uOiBCdWlsZCBicmVhayB1cC4NCj4gPiBB Y3Rpb24gUmVxdWlyZWQ6IE5lZWQgZXZhbHVhdGUgdGhlIGFmZmVjdGlvbiBvbiBzaXplLg0KPiA+ IENvbnNpZGVyYXRpb246IEFkZCBQQ0QgdG8gY29udHJvbCB0aGUgZmVhdHVyZQ0KPiA+DQo+ID4g UHJvcG9zYWwgMzogRGVmaW5lIEZsdFVzZWRMaWINCj4gPiBEZXRhaWw6IERlZmluZSBGbHRVc2Vk TGliIGFuZCBhZGQgZGVwZW5kZW5jZQ0KPiA+IE9wcG9zZTogQXJkIEJpZXNoZXV2ZWwgPGFyZC5i aWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ID4gQmVuZWZpdDogRG9lc27igJl0IG5lZWQgY2FyZSB0 aGF0IHdoaWNoIG1vZHVsZSB3aWxsIHVzZSBpdCwgd2Ugd2lsbCBleHBsaWNpdGx5DQo+ID4gcG9p bnQgaXQgaW4gY29tcG9uZW50IGZpbGUuDQo+ID4gRGVmZWN0aW9uOiBNb3JlIGNvbXBsZXgsIEl0 IGlzIHJlcXVpcmVkIHRoYXQgbW9kaWZ5IGV2ZXJ5IGRlc2NyaXB0aW9uIGZpbGUNCj4gPiBhbmQg bW9kaWZ5IGNvbXBvbmVudCBtZWFud2hpbGUuDQo+ID4gRGVmZWN0aW9uOiBCdWlsZCBicmVha3Vw DQo+ID4NCj4gPiBUaGFua3MNCj4gPiBndW9taW4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsy Lmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIE5pLA0KPiA+IFJheQ0KPiA+ID4gU2VudDogVHVlc2Rh eSwgQXByaWwgMTQsIDIwMjAgMTowMyBQTQ0KPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsg YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZzsgS2lubmV5LA0KPiA+ID4gTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+IENjOiBsZXJzZWtAcmVkaGF0LmNvbTsgbWFj YXJsQG1pY3Jvc29mdC5jb20NCj4gPiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENI XSBDcnlwdG9Qa2cvRmx0VXNlZExpYjogQWRkIEZsdFVzZWRMaWINCj4gPiA+IGZvciBmbG9hdC4N Cj4gPiA+DQo+ID4gPiBVRUZJIHNwZWMgYWxsb3dzIHVzaW5nIGZsb2F0IG9wZXJhdGlvbiBzbyBh c2tpbmcgbW9kdWxlIGRldmVsb3BlcnMNCj4gPiA+IGF2b2lkIHVzaW5nIGZsb2F0IG1heSBub3Qg bWFrZSBzZW5zZS4gRXZlbg0KPiA+ID4gVWVmaUNwdVBrZ1xMaWJyYXJ5XEJhc2VVZWZpQ3B1TGli XA0KPiA+ID4gcHJvdmlkZXMgcm91dGluZSB0byBpbml0aWFsaXplIGZsb2F0IHN1cHBvcnQgZm9y IFg4Ni4NCj4gPiA+DQo+ID4gPiBHaXZlbiBBUk0gYWxyZWFkeSB1c2VzIE5VTEwgbGlicmFyeSBj bGFzcyBtZWNoYW5pc20gdG8gc3VwcGx5IHRoZQ0KPiA+ID4gY29tcGlsZXIgc3R1YiwgSSBwcmVm ZXIgWDg2IGFsaWducyB0byB0aGUgQVJNIHN0eWxlLg0KPiA+ID4NCj4gPiA+IFRoZSBvbmx5IHVu c3VyZSB0aGluZyBpcyB0aGUgc2l6ZSBpbXBhY3Qgd2hlbiBhIG1vZHVsZSBpcyBub3QgdXNpbmcN Cj4gPiA+IGZsb2F0LiBXZSBleHBlY3QgdGhlcmUgaXMgbm8gc2l6ZSBpbXBhY3Qgd2hlbiBhIG1v ZHVsZSBpcyBub3QgdXNpbmcgZmxvYXQuDQo+ID4gPg0KPiA+ID4gVGhhbmtzLA0KPiA+ID4gUmF5 DQo+ID4gPg0KPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9t OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBP Zg0KPiA+ID4gTWljaGFlbA0KPiA+ID4gPiBEIEtpbm5leQ0KPiA+ID4gPiBTZW50OiBUaHVyc2Rh eSwgQXByaWwgMiwgMjAyMCAxMjozOCBBTQ0KPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMu aW87IGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc7IEtpbm5leSwgTWljaGFlbA0KPiA+ID4gPiBE IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gQ2M6IGxlcnNla0ByZWRoYXQu Y29tOyBtYWNhcmxAbWljcm9zb2Z0LmNvbQ0KPiA+ID4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2 ZWxdIFtQQVRDSF0gQ3J5cHRvUGtnL0ZsdFVzZWRMaWI6IEFkZA0KPiA+ID4gPiBGbHRVc2VkTGli IGZvciBmbG9hdC4NCj4gPiA+ID4NCj4gPiA+ID4gSGkgQXJkLA0KPiA+ID4gPg0KPiA+ID4gPiBJ IHRoaW5rIGFkZGluZyBhIGRlcGVuZGVuY3kgaW4gdGhlIG1vZHVsZSBlbnRyeSBwb2ludCBsaWJz IGlzIGFsc28NCj4gPiA+ID4gZ29vZCB3YXkgdG8gZ3VhcmFudGVlIGFuIGludHJpbnNpYyBsaWIg aXMgYXZhaWxhYmxlLiAgSSBhZ3JlZSB0aGF0DQo+ID4gPiA+IGl0IGNhbiBwcm92aWRlIG1vZHVs ZSB0eXBlIGFuZCBhcmNoIHNwZWNpZmljIG1hcHBpbmdzLiAgVGhlIE5VTEwgbGliDQo+ID4gPiA+ IGluc3RhbmNlIGNhbiBkbyB0aGUgc2FtZSBpZiB0aGUgTlVMTCBpbnN0YW5jZSBpcyBsaXN0ZWQg aW4gdGhlDQo+ID4gPiA+IG1vZHVsZS9hcmNoIHNwZWNpZmljIGxpYnJhcnkgY2xhc3NlcyBzZWN0 aW9ucy4gYSBmZXcgZXhhbXBsZSBzZWN0aW9uDQo+ID4gPiA+IG5hbWVzLg0KPiA+ID4gPg0KPiA+ ID4gPiBbTGlicmFyeUNsYXNzZXMuQVJNLlBFSU0sIExpYnJhcnlDbGFzc2VzLkFBUkNINjQuUEVJ TV0NCj4gPiA+ID4NCj4gPiA+ID4gW0xpYnJhcnlDbGFzc2VzLklBMzIuVUVGSV9EUklWRVJdDQo+ ID4gPiA+DQo+ID4gPiA+IFtMaWJyYXJ5Q2xhc3Nlcy5YNjQuRFhFX0RSSVZFUl0NCj4gPiA+ID4N Cj4gPiA+ID4gU28gZWl0aGVyIHdheSwgdGhlIERTQyBmaWxlcyBuZWVkIHRvIHByb3ZpZGUgdGhl IGxpYnJhcnkgbWFwcGluZy4NCj4gPiA+ID4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVuIHRo ZXNlDQo+ID4gPiA+IDIgYXBwcm9hY2hlcyBpcyB0aGF0IGFkZGluZyBhIGRlcGVuZGVuY3kgdG8g dGhlIG1vZHVsZSBlbnRyeSBwb2ludA0KPiA+ID4gPiBsaWJzIHVzZXMgYSBmb3JtYWxseSBkZWZp bmVkIGxpYnJhcnkgY2xhc3MgbmFtZSBmb3IgdGhlIGludHJpbnNpYw0KPiA+ID4gPiBmdW5jdGlv bnMgdnMuDQo+ID4gPiA+IHRoZSB1bi1uYW1lZCBOVUxMIGxpYnJhcnkgaW5zdGFuY2UuICBBIGZv cm1hbGx5IGRlZmluZWQgbGlicmFyeQ0KPiA+ID4gPiBjbGFzcyBuYW1lIGlzIGJldHRlciBzdXBw b3J0ZWQgZm9yIHRoaW5ncyBsaWtlIHVuaXQgdGVzdHMgZnJvbSB0aGUNCj4gPiA+ID4gVW5pdFRl c3RGcmFtZXdvcmtQa2cuDQo+ID4gPiA+DQo+ID4gPiA+IFRoZSBmbHR1c2VkIGlzc3VlIHdvdWxk IG5vdCBnbyBhd2F5IG9mIHdlIHJlbW92ZWQgdGhlIGZsb2F0IHVzYWdlDQo+ID4gPiA+IGZvciBP cGVuU1NMLiAgT25lIG9yIG1vcmUgb3RoZXIgbGlicyBvciB0aGUgbW9kdWxlIGNvdWxkIHVzZQ0K PiA+ID4gPiBmbG9hdC9kb3VibGUgdHlwZXMgYW5kIHRoaXMgaXNzdWUgd291bGQgcG9wIHVwIGFn YWluLiAgSSBkbyBhZ3JlZSBpdA0KPiA+ID4gPiB3b3VsZCBiZSBjbGVhbmVyIGlmIHdlIGNvdWxk IHVzZSBPcGVuU1NMIHdpdGhvdXQgZmxvYXRpbmcgcG9pbnQuDQo+ID4gPiA+DQo+ID4gPiA+IEkg dGhpbmsgYWRkaW5nIGFuIGludHJpbnNpYyBsaWIgZm9yIElBMzIvWDY0IGZvciBWUzIweHggZ2Vu ZXJhdGlvbg0KPiA+ID4gPiBvZiBpbnRyaW5zaWMgZnVuY3Rpb25zIHdvdWxkIGFkZHJlc3MgZmx0 dXNlZCBhbmQgb3RoZXIgY29tbW9uIEMNCj4gPiA+ID4gaW1wbGVtZW50YXRpb24gc3R5bGVzIHRo YXQgZ2VuZXJhdGUgaW50cmluc2ljIGZ1bmN0aW9ucyAoZS5nLiA2NC1iaXQNCj4gPiA+ID4gaW50 IG1hdGggb24gMzItYml0LCBzdHJ1Y3R1cmUgdmFyaWFibGUgYXNzaWdubWVudHMsIGFuZCBsb29w cyB0aGF0DQo+ID4gPiA+IGZpbGwgYSBidWZmZXIgd2l0aCBhIGNvbnN0IHZhbHVlKSBieSBWUzIw eHggY29tcGlsZXJzLiAgQW4gaW50cmluc2ljDQo+ID4gPiA+IGxpYiBmb3IgR0NDIHdvdWxkIGFs c28gaGVscCB3aXRoIHRoZXNlIHNhbWUgY29tbW9uIEMgaW1wbGVtZW50YXRpb24NCj4gPiA+ID4g c3R5bGVzIHRoYXQgZ2VuZXJhdGUgaW50cmluc2ljIGZ1bmN0aW9ucy4NCj4gPiA+ID4NCj4gPiA+ ID4gTWlrZQ0KPiA+ID4gPg0KPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlv PiBPbiBCZWhhbGYgT2YNCj4gPiBBcmQNCj4gPiA+ID4gPiBCaWVzaGV1dmVsDQo+ID4gPiA+ID4g U2VudDogVHVlc2RheSwgTWFyY2ggMzEsIDIwMjAgMTE6NDMgUE0NCj4gPiA+ID4gPiBUbzogS2lu bmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+IENj OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgbGVyc2VrQHJlZGhhdC5jb207IG1hY2FybEBtaWNyb3Nv ZnQuY29tDQo+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIENyeXB0 b1BrZy9GbHRVc2VkTGliOg0KPiA+ID4gPiA+IEFkZCBGbHRVc2VkTGliIGZvciBmbG9hdC4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IE9uIFR1ZSwgMzEgTWFyIDIwMjAgYXQgMTY6MzYsIEtpbm5leSwg TWljaGFlbCBEDQo+ID4gPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPiB3cm90ZToN Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBUk0gYW5kIEFBUkNINjQgaGF2ZSBhIGNvbXBpbGVy IGludHJpbnNpYyBsaWIgdGhhdCBpcw0KPiA+ID4gPiA+IGxpbmtlZCBhZ2FpbnN0IGFsbCBtb2R1 bGVzLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFtMaWJyYXJ5Q2xhc3Nlcy5BUk0sIExpYnJh cnlDbGFzc2VzLkFBUkNINjRdDQo+ID4gPiA+ID4gPiAgICMNCj4gPiA+ID4gPiA+ICAgIyBJdCBp cyBub3QgcG9zc2libGUgdG8gcHJldmVudCBBUk0gY29tcGlsZXIgY2FsbHMgdG8NCj4gPiA+ID4g PiBnZW5lcmljIGludHJpbnNpYyBmdW5jdGlvbnMuDQo+ID4gPiA+ID4gPiAgICMgVGhpcyBsaWJy YXJ5IHByb3ZpZGVzIHRoZSBpbnN0cmluc2ljIGZ1bmN0aW9ucw0KPiA+ID4gPiA+IGdlbmVyYXRl ZCBieSBhIGdpdmVuIGNvbXBpbGVyLg0KPiA+ID4gPiA+ID4gICAjIFtMaWJyYXJ5Q2xhc3Nlcy5B Uk1dIGFuZCBOVUxMIG1lYW4gbGluayB0aGlzDQo+ID4gPiA+ID4gbGlicmFyeSBpbnRvIGFsbCBB Uk0gaW1hZ2VzLg0KPiA+ID4gPiA+ID4gICAjDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+IE5VTEx8 QXJtUGtnL0xpYnJhcnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL0NvbXBpbGVySW50cmlucw0KPiA+ ID4gPiA+IGljc0xpYi5pbmYNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBDYW4gd2UgdXNlIHRo aXMgc2FtZSB0ZWNobmlxdWUgZm9yIElBMzIvWDY0IFZTIGJ1aWxkcz8NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBJbiBteSBvcGluaW9uLCBoYXZpbmcgdGhlc2UgaW50cmluc2lj cyBsaWJyYXJpZXMgYWRkZWQgdmlhIE5VTEwNCj4gPiA+ID4gPiBsaWJyYXJ5IGNsYXNzIHJlc29s dXRpb24gd2FzIGEgbWlzdGFrZSB0byBiZWdpbiB3aXRoLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g RXZlcnkgY29tcG9uZW50IHRoYXQgd2UgYnVpbGQgaW5jb3Jwb3JhdGVzIHNvbWUga2luZCBvZiBz dGFydHVwDQo+ID4gPiA+ID4gY29kZSBsaWJyYXJ5IHRoYXQgZGVmaW5lcyB0aGUgX01vZHVsZUVu dHJ5UG9pbnQgc3ltYm9sLCBhbmQgaXQNCj4gPiA+ID4gPiB3b3VsZCBiZSBtdWNoIGJldHRlciB0 byBtYWtlIHRob3NlIGxpYnJhcmllcyBpbmNsdWRlIGFuDQo+ID4gPiA+ID4gSW50cmluc2ljc0xp YnJhcnkgZGVwZW5kZW5jeSB0aGF0IGNhbiBiZSBzYXRpc2ZpZWQgYnkgYXJjaA0KPiA+ID4gPiA+ IHNwZWNpZmljIHZlcnNpb25zIHRoYXQgYWxzbyBlbmNhcHN1bGF0ZSB0aGUgdG9vbGNoYWluIGRl cGVuZGVuY2llcw0KPiA+ID4gPiA+IChzdWNoIGFzIHRoaXMgX2ZsdHVzZWQgc3ltYm9sLCBvciBt ZW1jcHkvbWVtc2V0IG9uIEFSTS9HQ0MpLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT24gYW5vdGhl ciBub3RlLCBpdCBpcyBzdGlsbCBkZWVwbHkgZGlzYXBwb2ludGluZyB0aGF0IHdlIG5lZWQgdG8N Cj4gPiA+ID4gPiBqdW1wIHRocm91Z2ggYWxsIG9mIHRoZXNlIGhvb3BzIGJlY2F1c2UgdGhlICpv bmx5KiBzaW5nbGUgdXNlIG9mDQo+ID4gPiA+ID4gZmxvYXRpbmcgcG9pbnQgaW4gT3BlblNTTCBp cyB0aGUgZW50cm9weSBlc3RpbWF0ZSBvZiBhbiBSTkcsIHdoaWNoDQo+ID4gPiA+ID4gaXMgaW4g dGhlIHJhbmdlIG9mIDAuLjEwMjMgdG8gYmVnaW4gd2l0aCBbSUlSQykuIFJlbWVtYmVyIHRoYXQg d2UNCj4gPiA+ID4gPiBhbHNvIGhhdmUgYSBzb2Z0ZmxvYXQgc3VibW9kdWxlIGZvciAzMi1iaXQg QVJNLCBmb3IgdGhlIHNhbWUNCj4gPiA+ID4gPiBzdHVwaWQgcmVhc29uLiBJZiB3ZSBjb3VsZCBz dG9wIHB1bGxpbmcgaW4gdGhhdCBwYXJ0IG9mIHRoZSBjb2RlDQo+ID4gPiA+ID4gKG9yIHJlcGxh Y2UgaXQgd2l0aCBhbg0KPiA+ID4gPiA+IFVJTlQxNiB3aGVuIGJ1aWxkaW5nIGZvciB0aGUgVUVG SSB0YXJnZXQpLCB0aGUgd2hvbGUgZmxvYXRpbmcNCj4gPiA+ID4gPiBwb2ludCBpc3N1ZSB3b3Vs ZCBtb3N0bHkgZ28gYXdheSBBRkFJQ1QuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPg0K PiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+DQo+ID4NCj4gPiANCj4g DQoNCg==