From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web12.6618.1586847702753420317 for ; Tue, 14 Apr 2020 00:01:42 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=fUtdJcPf; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: guomin.jiang@intel.com) IronPort-SDR: gQBSWAWuWkH5IVzPRl+GnHAIiJIVEsS8ubRIMbJmKRKMQkb6REI20kPmT4C+0pThRYIcUiisT5 3gZ9KMlR5hSQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Apr 2020 00:01:26 -0700 IronPort-SDR: dR0i25JYBh/JgKITRHPRiL21WsW9FfD9zKHEs7kLyFhIv3HMtWVdlqbbTcX5DYXfa8Fh7SclsO 7bG1fzlPwbnw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,381,1580803200"; d="scan'208";a="399863201" Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by orsmga004.jf.intel.com with ESMTP; 14 Apr 2020 00:01:26 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX105.amr.corp.intel.com (10.22.225.132) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 14 Apr 2020 00:01:26 -0700 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) 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.1713.5; Tue, 14 Apr 2020 00:01:26 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 14 Apr 2020 00:01:26 -0700 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.50) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 14 Apr 2020 00:01:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RSOBoNrRbZ0lhUfJDSC9GEhUQ2SwU9kXX3LcmEI/vKvF/oYCG5o7AA2TDSip+K0g9qV3jNj7423Cl+0F2WPre0n6ONzUgHJPSj5KbPuCGqGpaQrt3Fozy0g0eSDEjMH2i8yQGAAjIshHmz5KummWEd/Mss+6Gt32bNVCeY91940Us8aNS0o3SPhk7a4vWJ0Hmja+aA8+72VmvXLLUVvbhDYD0dK+UvlueVklNjoO6asBmeVYH+Rx/Npg8awb6+W3MIjUv4wbrfpGnrvJsva17H82c2mZrVsVM1LGd5Gr5NRsecmMn/4NYok3quL8yJwV53Bb+zRBJe3WcGto8lin0g== 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=3LRisflmIgASzApzIJChSMos0QhXi4urqvozqNR3ksI=; b=nTxnMHsiFd/QCgIqOEnG9k6WsjtC8NBdtWRevFxKtWdy+N5m6arcifbDzRxpP97SXcGTekQvKhCuGrNUupcX+26s4PfrWJCntP+W3G3VMnywPrZ2C050fPWpzs7+H9Kv5eLFAguY5ywXscDnL0/RTccVv6XttNmM3nwT0fLyfB4moxB8PacGTPmHs2ksK5V7TnZ/LhFuUq5Ch9aQSFIU6aZE/yXxTsgZjdqoIp01O16WaxnhFQx5xUZZm/beOoCZUhebrMipQ69vWovSd6Z6IGFN5GcMZ3r7teaYgUIfrkLZ0vWbGJHBE9x6AX7sum09yEid8xxd+s+ZqJlOAnJowg== 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=3LRisflmIgASzApzIJChSMos0QhXi4urqvozqNR3ksI=; b=fUtdJcPfHGhFkguCjN2mrgv0o0LqcFzTr5H2ps+bkkbqqvZPRHiQ9eq1W334FGYAFxr3ZJ9lGRt6tUaMmqucdcZIZyKrH9sDV02AAyRIFEkuoduBc22WZqhrfd2vp4aSdziwp7cdYxgmX2OPyvwXTlWyOZpEYlB887CkuKooJEg= Received: from DM6PR11MB2955.namprd11.prod.outlook.com (2603:10b6:5:65::31) by DM6PR11MB3131.namprd11.prod.outlook.com (2603:10b6:5:6d::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2900.24; Tue, 14 Apr 2020 07:01:23 +0000 Received: from DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::ccd4:4b0d:535a:58be]) by DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::ccd4:4b0d:535a:58be%7]) with mapi id 15.20.2900.028; Tue, 14 Apr 2020 07:01:23 +0000 From: "Guomin Jiang" To: "devel@edk2.groups.io" , "Ni, Ray" , "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: AQHWBnIBaSdKR2Z4c0ubFoK9cqOLU6hg+RYAgAAoAACAAAPHgIAA+7QAgAAgDACAAQ3WgIAApm0AgBQyHQCAABynoA== Date: Tue, 14 Apr 2020 07:01:23 +0000 Message-ID: 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> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5C4FC746@SHSMSX104.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: spf=none (sender IP is ) smtp.mailfrom=guomin.jiang@intel.com; x-originating-ip: [192.55.52.205] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a1a06172-f7a8-46af-aaba-08d7e041a4b7 x-ms-traffictypediagnostic: DM6PR11MB3131: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-forefront-prvs: 0373D94D15 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2955.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10019020)(346002)(39860400002)(396003)(376002)(366004)(136003)(2906002)(8936002)(81156014)(8676002)(26005)(478600001)(316002)(110136005)(53546011)(54906003)(6506007)(86362001)(66476007)(66556008)(64756008)(66446008)(76116006)(71200400001)(66946007)(33656002)(4326008)(52536014)(186003)(966005)(5660300002)(45080400002)(55016002)(7696005)(9686003);DIR:OUT;SFP:1102; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VLaFLgKUD5nM2SxuB3yiY1+Dx13DUHJrl6yMpsaYOAlXXDTA/QDYNpUQ/TxJ3LAUVJ3hiopZxIwJr9144IEoSUkMxIF8E7SrXwkl0nlbpI53mGSokFUKBtw1YMH3D++v0c+axRZrmRSH2Kfi7Ay1g+lP5lh8nZ3Wb1iubzkG8m1vmYk4BBHQ1IENcgQLrJTDfRDPKFpBUXLHy6ILzYD67b5lPcul2aRI+ioVdgtd9TCVq2f8wmn94SVxAKn25Gya29sOiNHIJsXDQ42n2gvJY454jSKRec44Gu8qWulY+jPgRAytvwh7/yYeBWo+4nJAje3C2Jl+AcW+dU2QYx033Ycicgzd5HMxQz/DckSjgwZuuaXm7c2j85fCOPujrM+p10UPR2EnLxnVpTDtB+kvfYg4Ezh+tJYZT4fxPzfZL/ULarqXGYQol6U6unkq57I2fUTPQFUI0kSkCk3/dWFTOMRVPHojPJOPSj6St4iyiDk/jAULenMY+nvKGUPErcZMUFS8r01RB1H84mpoLyeR4w== x-ms-exchange-antispam-messagedata: eCVdx0j4fFWydiwfDOcF+iumGRyoIMpHMtBehdQlP6ExhOmaKIJZAPJJcvQcSc+Q1Dw1bR09nIvjICXDpCZnTBt3rCHoLriDYTYUa/QXo1saPfJtgFpjsxelz+849BD4fOoX3JKpuR2Wbt3asUxR0A== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: a1a06172-f7a8-46af-aaba-08d7e041a4b7 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2020 07:01:23.5961 (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: fYRJTeTbQOkRAKbTlMb6SGRSegL5eAp8RHwRySsFNm5ui4yxBzEn5r4lQ90MlxvYrztEnjADNQMdhTfmJuDplQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3131 Return-Path: guomin.jiang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U3VtbWFyaXplIGN1cnJlbnQgc3RhdHVzOg0KDQpQcm9ibGVtIFN0YXRlbWVudDoNCk9wZW5zc2wg cmVxdWlyZSBfZmx0dXNlZCB0byBiZSBkZWZpbmVkIGFzIGEgY29uc3RhbnQgYW55d2hlcmUgZmxv YXRpbmcgcG9pbnQgaXMgdXNlZC4NCkl0IG1heSB1c2UgZmxvYXQgb3V0IG9mIGVkazIgdHJlZSBh bmQgbmVlZCBfZmx0dXNlZCwgZm9yIGV4YW1wbGUsIE1pY3Jvc29mdOKAmXMgT25TY3JlZW5LZXli b2FyZCBhbmQgVWlUb29sS2l0Lg0KDQpDdXJyZW50IFByb3Bvc2FsIGFzIGJlbG93Og0KDQpQcm9w b3NhbCAxOiBBZGQgRmx0VXNlZC5jIGludG8gZXhpc3QgbGlicmFyeQ0KRGV0YWlsOiBBZGQgRmx0 VXNlZC5jIGludG8gRW50cnlQb2ludExpYihQRUlNLCBEWEUpLg0KUmVjb21tZW5kOiBBcmQgQmll c2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCkFwcHJvdmU6IExhc3psbyBFcnNl ayBsZXJzZWtAcmVkaGF0LmNvbQ0KTmV0dWFsOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCkJlbmVmaXQ6IERvZXNu4oCZdCBuZWVkIG1vZGlmeSBldmVyeSAu ZHNjIGRlc2NyaXB0aW9uIGZpbGUuDQpEZWZlY3Rpb246IEkgdGVzdCB0aGF0IGl0IHdpbGwgZmFp bCBiZWNhdXNlIG9mIC9HTCBvcHRpb24sIHRoZSBlcnJvciBzaG93IGZhdGFsIGVycm9yIExOSzEy Mzc6IGR1cmluZyBjb2RlIGdlbmVyYXRpb24sIGNvbXBpbGVyIGludHJvZHVjZWQgcmVmZXJlbmNl IHRvIHN5bWJvbCAnX2ZsdHVzZWQnIGRlZmluZWQgaW4gbW9kdWxlICdVZWZpQXBwbGljYXRpb25F bnRyeVBvaW50LmxpYihGbHRVc2VkLm9iaiknIGNvbXBpbGVkIHdpdGggL0dMDQoNClByb3Bvc2Fs IDI6IERlZmluZSBOVUxMIGxpYnJhcnkNClJlY29tbWVuZDogTWljaGFlbCBEIEtpbm5leSBtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbQ0KT3Bwb3NlOiBTZWFuIHNlYW4uYnJvZ2FuPW1pY3Jvc29m dC5jb21AZ3JvdXBzLmlvICwgQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5v cmc+DQpCZW5lZml0OiBJIHRlc3QgaXQgYW5kIHByb3ZlIHRoYXQgaXQgaXMgZXhlY3V0YWJsZS4N CkRlZmVjdGlvbjogSXQgaXMgcmVxdWlyZWQgdGhhdCBtb2RpZnkgZXZlcnkgZGVzY3JpcHRpb24g ZmlsZS4NCkRlZmVjdGlvbjogSXQgbmVlZCBiZSB2ZXJ5IGNhcmVmdWwgdGhhdCBpdCBzaG91bGQg b25seSBhcHBseSBzb21lIG1vZHVsZSB0eXBlKFBFSU0sIERYRV9EUklWRVIsIFVFRklfQVBQTElD QVRJT04pIHJhdGhlciB0aGFuIGFsbC4NCkRlZmVjdGlvbjogQnVpbGQgYnJlYWsgdXAuDQpBY3Rp b24gUmVxdWlyZWQ6IE5lZWQgZXZhbHVhdGUgdGhlIGFmZmVjdGlvbiBvbiBzaXplLg0KQ29uc2lk ZXJhdGlvbjogQWRkIFBDRCB0byBjb250cm9sIHRoZSBmZWF0dXJlDQoNClByb3Bvc2FsIDM6IERl ZmluZSBGbHRVc2VkTGliDQpEZXRhaWw6IERlZmluZSBGbHRVc2VkTGliIGFuZCBhZGQgZGVwZW5k ZW5jZQ0KT3Bwb3NlOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4N CkJlbmVmaXQ6IERvZXNu4oCZdCBuZWVkIGNhcmUgdGhhdCB3aGljaCBtb2R1bGUgd2lsbCB1c2Ug aXQsIHdlIHdpbGwgZXhwbGljaXRseSBwb2ludCBpdCBpbiBjb21wb25lbnQgZmlsZS4NCkRlZmVj dGlvbjogTW9yZSBjb21wbGV4LCBJdCBpcyByZXF1aXJlZCB0aGF0IG1vZGlmeSBldmVyeSBkZXNj cmlwdGlvbiBmaWxlIGFuZCBtb2RpZnkgY29tcG9uZW50IG1lYW53aGlsZS4NCkRlZmVjdGlvbjog QnVpbGQgYnJlYWt1cA0KDQpUaGFua3MNCmd1b21pbg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQo+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5p bz4gT24gQmVoYWxmIE9mIE5pLCBSYXkNCj4gU2VudDogVHVlc2RheSwgQXByaWwgMTQsIDIwMjAg MTowMyBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47DQo+IGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc7 IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IGxl cnNla0ByZWRoYXQuY29tOyBtYWNhcmxAbWljcm9zb2Z0LmNvbQ0KPiBTdWJqZWN0OiBSZTogW2Vk azItZGV2ZWxdIFtQQVRDSF0gQ3J5cHRvUGtnL0ZsdFVzZWRMaWI6IEFkZCBGbHRVc2VkTGliIGZv cg0KPiBmbG9hdC4NCj4gDQo+IFVFRkkgc3BlYyBhbGxvd3MgdXNpbmcgZmxvYXQgb3BlcmF0aW9u IHNvIGFza2luZyBtb2R1bGUgZGV2ZWxvcGVycyBhdm9pZA0KPiB1c2luZyBmbG9hdCBtYXkgbm90 IG1ha2Ugc2Vuc2UuIEV2ZW4gVWVmaUNwdVBrZ1xMaWJyYXJ5XEJhc2VVZWZpQ3B1TGliXA0KPiBw cm92aWRlcyByb3V0aW5lIHRvIGluaXRpYWxpemUgZmxvYXQgc3VwcG9ydCBmb3IgWDg2Lg0KPiAN Cj4gR2l2ZW4gQVJNIGFscmVhZHkgdXNlcyBOVUxMIGxpYnJhcnkgY2xhc3MgbWVjaGFuaXNtIHRv IHN1cHBseSB0aGUgY29tcGlsZXINCj4gc3R1YiwgSSBwcmVmZXIgWDg2IGFsaWducyB0byB0aGUg QVJNIHN0eWxlLg0KPiANCj4gVGhlIG9ubHkgdW5zdXJlIHRoaW5nIGlzIHRoZSBzaXplIGltcGFj dCB3aGVuIGEgbW9kdWxlIGlzIG5vdCB1c2luZyBmbG9hdC4gV2UNCj4gZXhwZWN0IHRoZXJlIGlz IG5vIHNpemUgaW1wYWN0IHdoZW4gYSBtb2R1bGUgaXMgbm90IHVzaW5nIGZsb2F0Lg0KPiANCj4g VGhhbmtzLA0KPiBSYXkNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBG cm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFs ZiBPZg0KPiBNaWNoYWVsDQo+ID4gRCBLaW5uZXkNCj4gPiBTZW50OiBUaHVyc2RheSwgQXByaWwg MiwgMjAyMCAxMjozOCBBTQ0KPiA+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgYXJkLmJpZXNo ZXV2ZWxAbGluYXJvLm9yZzsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+DQo+ID4gQ2M6IGxlcnNla0ByZWRoYXQuY29tOyBtYWNhcmxAbWljcm9zb2Z0 LmNvbQ0KPiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBDcnlwdG9Qa2cvRmx0 VXNlZExpYjogQWRkIEZsdFVzZWRMaWINCj4gPiBmb3IgZmxvYXQuDQo+ID4NCj4gPiBIaSBBcmQs DQo+ID4NCj4gPiBJIHRoaW5rIGFkZGluZyBhIGRlcGVuZGVuY3kgaW4gdGhlIG1vZHVsZSBlbnRy eSBwb2ludCBsaWJzIGlzIGFsc28NCj4gPiBnb29kIHdheSB0byBndWFyYW50ZWUgYW4gaW50cmlu c2ljIGxpYiBpcyBhdmFpbGFibGUuICBJIGFncmVlIHRoYXQgaXQNCj4gPiBjYW4gcHJvdmlkZSBt b2R1bGUgdHlwZSBhbmQgYXJjaCBzcGVjaWZpYyBtYXBwaW5ncy4gIFRoZSBOVUxMIGxpYg0KPiA+ IGluc3RhbmNlIGNhbiBkbyB0aGUgc2FtZSBpZiB0aGUgTlVMTCBpbnN0YW5jZSBpcyBsaXN0ZWQg aW4gdGhlDQo+ID4gbW9kdWxlL2FyY2ggc3BlY2lmaWMgbGlicmFyeSBjbGFzc2VzIHNlY3Rpb25z LiBhIGZldyBleGFtcGxlIHNlY3Rpb24NCj4gPiBuYW1lcy4NCj4gPg0KPiA+IFtMaWJyYXJ5Q2xh c3Nlcy5BUk0uUEVJTSwgTGlicmFyeUNsYXNzZXMuQUFSQ0g2NC5QRUlNXQ0KPiA+DQo+ID4gW0xp YnJhcnlDbGFzc2VzLklBMzIuVUVGSV9EUklWRVJdDQo+ID4NCj4gPiBbTGlicmFyeUNsYXNzZXMu WDY0LkRYRV9EUklWRVJdDQo+ID4NCj4gPiBTbyBlaXRoZXIgd2F5LCB0aGUgRFNDIGZpbGVzIG5l ZWQgdG8gcHJvdmlkZSB0aGUgbGlicmFyeSBtYXBwaW5nLiAgVGhlDQo+ID4gb25seSBkaWZmZXJl bmNlIGJldHdlZW4gdGhlc2UNCj4gPiAyIGFwcHJvYWNoZXMgaXMgdGhhdCBhZGRpbmcgYSBkZXBl bmRlbmN5IHRvIHRoZSBtb2R1bGUgZW50cnkgcG9pbnQNCj4gPiBsaWJzIHVzZXMgYSBmb3JtYWxs eSBkZWZpbmVkIGxpYnJhcnkgY2xhc3MgbmFtZSBmb3IgdGhlIGludHJpbnNpYw0KPiA+IGZ1bmN0 aW9ucyB2cy4NCj4gPiB0aGUgdW4tbmFtZWQgTlVMTCBsaWJyYXJ5IGluc3RhbmNlLiAgQSBmb3Jt YWxseSBkZWZpbmVkIGxpYnJhcnkgY2xhc3MNCj4gPiBuYW1lIGlzIGJldHRlciBzdXBwb3J0ZWQg Zm9yIHRoaW5ncyBsaWtlIHVuaXQgdGVzdHMgZnJvbSB0aGUNCj4gPiBVbml0VGVzdEZyYW1ld29y a1BrZy4NCj4gPg0KPiA+IFRoZSBmbHR1c2VkIGlzc3VlIHdvdWxkIG5vdCBnbyBhd2F5IG9mIHdl IHJlbW92ZWQgdGhlIGZsb2F0IHVzYWdlIGZvcg0KPiA+IE9wZW5TU0wuICBPbmUgb3IgbW9yZSBv dGhlciBsaWJzIG9yIHRoZSBtb2R1bGUgY291bGQgdXNlIGZsb2F0L2RvdWJsZQ0KPiA+IHR5cGVz IGFuZCB0aGlzIGlzc3VlIHdvdWxkIHBvcCB1cCBhZ2Fpbi4gIEkgZG8gYWdyZWUgaXQgd291bGQg YmUNCj4gPiBjbGVhbmVyIGlmIHdlIGNvdWxkIHVzZSBPcGVuU1NMIHdpdGhvdXQgZmxvYXRpbmcg cG9pbnQuDQo+ID4NCj4gPiBJIHRoaW5rIGFkZGluZyBhbiBpbnRyaW5zaWMgbGliIGZvciBJQTMy L1g2NCBmb3IgVlMyMHh4IGdlbmVyYXRpb24gb2YNCj4gPiBpbnRyaW5zaWMgZnVuY3Rpb25zIHdv dWxkIGFkZHJlc3MgZmx0dXNlZCBhbmQgb3RoZXIgY29tbW9uIEMNCj4gPiBpbXBsZW1lbnRhdGlv biBzdHlsZXMgdGhhdCBnZW5lcmF0ZSBpbnRyaW5zaWMgZnVuY3Rpb25zIChlLmcuIDY0LWJpdA0K PiA+IGludCBtYXRoIG9uIDMyLWJpdCwgc3RydWN0dXJlIHZhcmlhYmxlIGFzc2lnbm1lbnRzLCBh bmQgbG9vcHMgdGhhdA0KPiA+IGZpbGwgYSBidWZmZXIgd2l0aCBhIGNvbnN0IHZhbHVlKSBieSBW UzIweHggY29tcGlsZXJzLiAgQW4gaW50cmluc2ljDQo+ID4gbGliIGZvciBHQ0Mgd291bGQgYWxz byBoZWxwIHdpdGggdGhlc2Ugc2FtZSBjb21tb24gQyBpbXBsZW1lbnRhdGlvbg0KPiA+IHN0eWxl cyB0aGF0IGdlbmVyYXRlIGludHJpbnNpYyBmdW5jdGlvbnMuDQo+ID4NCj4gPiBNaWtlDQo+ID4N Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBBcmQNCj4gPiA+ IEJpZXNoZXV2ZWwNCj4gPiA+IFNlbnQ6IFR1ZXNkYXksIE1hcmNoIDMxLCAyMDIwIDExOjQzIFBN DQo+ID4gPiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KPiA+ID4gQ2M6IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBsZXJzZWtAcmVkaGF0LmNvbTsgbWFj YXJsQG1pY3Jvc29mdC5jb20NCj4gPiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENI XSBDcnlwdG9Qa2cvRmx0VXNlZExpYjoNCj4gPiA+IEFkZCBGbHRVc2VkTGliIGZvciBmbG9hdC4N Cj4gPiA+DQo+ID4gPiBPbiBUdWUsIDMxIE1hciAyMDIwIGF0IDE2OjM2LCBLaW5uZXksIE1pY2hh ZWwgRA0KPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPiB3cm90ZToNCj4gPiA+ID4N Cj4gPiA+ID4gQVJNIGFuZCBBQVJDSDY0IGhhdmUgYSBjb21waWxlciBpbnRyaW5zaWMgbGliIHRo YXQgaXMNCj4gPiA+IGxpbmtlZCBhZ2FpbnN0IGFsbCBtb2R1bGVzLg0KPiA+ID4gPg0KPiA+ID4g PiBbTGlicmFyeUNsYXNzZXMuQVJNLCBMaWJyYXJ5Q2xhc3Nlcy5BQVJDSDY0XQ0KPiA+ID4gPiAg ICMNCj4gPiA+ID4gICAjIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBwcmV2ZW50IEFSTSBjb21waWxl ciBjYWxscyB0bw0KPiA+ID4gZ2VuZXJpYyBpbnRyaW5zaWMgZnVuY3Rpb25zLg0KPiA+ID4gPiAg ICMgVGhpcyBsaWJyYXJ5IHByb3ZpZGVzIHRoZSBpbnN0cmluc2ljIGZ1bmN0aW9ucw0KPiA+ID4g Z2VuZXJhdGVkIGJ5IGEgZ2l2ZW4gY29tcGlsZXIuDQo+ID4gPiA+ICAgIyBbTGlicmFyeUNsYXNz ZXMuQVJNXSBhbmQgTlVMTCBtZWFuIGxpbmsgdGhpcw0KPiA+ID4gbGlicmFyeSBpbnRvIGFsbCBB Uk0gaW1hZ2VzLg0KPiA+ID4gPiAgICMNCj4gPiA+ID4NCj4gPiA+IE5VTEx8QXJtUGtnL0xpYnJh cnkvQ29tcGlsZXJJbnRyaW5zaWNzTGliL0NvbXBpbGVySW50cmlucw0KPiA+ID4gaWNzTGliLmlu Zg0KPiA+ID4gPg0KPiA+ID4gPiBDYW4gd2UgdXNlIHRoaXMgc2FtZSB0ZWNobmlxdWUgZm9yIElB MzIvWDY0IFZTIGJ1aWxkcz8NCj4gPiA+ID4NCj4gPiA+DQo+ID4gPiBJbiBteSBvcGluaW9uLCBo YXZpbmcgdGhlc2UgaW50cmluc2ljcyBsaWJyYXJpZXMgYWRkZWQgdmlhIE5VTEwNCj4gPiA+IGxp YnJhcnkgY2xhc3MgcmVzb2x1dGlvbiB3YXMgYSBtaXN0YWtlIHRvIGJlZ2luIHdpdGguDQo+ID4g Pg0KPiA+ID4gRXZlcnkgY29tcG9uZW50IHRoYXQgd2UgYnVpbGQgaW5jb3Jwb3JhdGVzIHNvbWUg a2luZCBvZiBzdGFydHVwIGNvZGUNCj4gPiA+IGxpYnJhcnkgdGhhdCBkZWZpbmVzIHRoZSBfTW9k dWxlRW50cnlQb2ludCBzeW1ib2wsIGFuZCBpdCB3b3VsZCBiZQ0KPiA+ID4gbXVjaCBiZXR0ZXIg dG8gbWFrZSB0aG9zZSBsaWJyYXJpZXMgaW5jbHVkZSBhbiBJbnRyaW5zaWNzTGlicmFyeQ0KPiA+ ID4gZGVwZW5kZW5jeSB0aGF0IGNhbiBiZSBzYXRpc2ZpZWQgYnkgYXJjaCBzcGVjaWZpYyB2ZXJz aW9ucyB0aGF0IGFsc28NCj4gPiA+IGVuY2Fwc3VsYXRlIHRoZSB0b29sY2hhaW4gZGVwZW5kZW5j aWVzIChzdWNoIGFzIHRoaXMgX2ZsdHVzZWQNCj4gPiA+IHN5bWJvbCwgb3IgbWVtY3B5L21lbXNl dCBvbiBBUk0vR0NDKS4NCj4gPiA+DQo+ID4gPiBPbiBhbm90aGVyIG5vdGUsIGl0IGlzIHN0aWxs IGRlZXBseSBkaXNhcHBvaW50aW5nIHRoYXQgd2UgbmVlZCB0bw0KPiA+ID4ganVtcCB0aHJvdWdo IGFsbCBvZiB0aGVzZSBob29wcyBiZWNhdXNlIHRoZSAqb25seSogc2luZ2xlIHVzZSBvZg0KPiA+ ID4gZmxvYXRpbmcgcG9pbnQgaW4gT3BlblNTTCBpcyB0aGUgZW50cm9weSBlc3RpbWF0ZSBvZiBh biBSTkcsIHdoaWNoDQo+ID4gPiBpcyBpbiB0aGUgcmFuZ2Ugb2YgMC4uMTAyMyB0byBiZWdpbiB3 aXRoIFtJSVJDKS4gUmVtZW1iZXIgdGhhdCB3ZQ0KPiA+ID4gYWxzbyBoYXZlIGEgc29mdGZsb2F0 IHN1Ym1vZHVsZSBmb3IgMzItYml0IEFSTSwgZm9yIHRoZSBzYW1lIHN0dXBpZA0KPiA+ID4gcmVh c29uLiBJZiB3ZSBjb3VsZCBzdG9wIHB1bGxpbmcgaW4gdGhhdCBwYXJ0IG9mIHRoZSBjb2RlIChv cg0KPiA+ID4gcmVwbGFjZSBpdCB3aXRoIGFuDQo+ID4gPiBVSU5UMTYgd2hlbiBidWlsZGluZyBm b3IgdGhlIFVFRkkgdGFyZ2V0KSwgdGhlIHdob2xlIGZsb2F0aW5nIHBvaW50DQo+ID4gPiBpc3N1 ZSB3b3VsZCBtb3N0bHkgZ28gYXdheSBBRkFJQ1QuDQo+ID4gPg0KPiA+ID4NCj4gPg0KPiA+DQo+ ID4NCj4gDQo+IA0KPiANCg0K