From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2C65C7618F for ; Mon, 22 Jul 2019 22:46:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 57E8921951 for ; Mon, 22 Jul 2019 22:46:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=verimatrix.com header.i=@verimatrix.com header.b="poXqFvSJ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729248AbfGVWqu (ORCPT ); Mon, 22 Jul 2019 18:46:50 -0400 Received: from mail-eopbgr800075.outbound.protection.outlook.com ([40.107.80.75]:11447 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729142AbfGVWqt (ORCPT ); Mon, 22 Jul 2019 18:46:49 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Iiy3R2y+gaD3tH2wEpkZEjO6wmPae9r/trckHkUXnjP2a9qPTrJgsSBfqk5LGXoNLmJcFnX5EYtVsKUVmeTrOBZ1rYGRunz2gMlwM4YVyRwpQ8TXLXw365OFG62nSu2wfC0hYJj1jD2gZT9FEGYPi6UaVJqt6QbhPWP6NMF7BysQJwwcbJ1MN8eJXneU6XcjaJmCrS91aWSJTO19VORKSsuecrbldVfH4L6mZdnWGJbzD11X6uxkWs/pgC2T8x+9ihUkoEc1Oeg3CuLTTGfM80njaUjMGml7mlfzcemtHVHplqLAjr50utOa8Zi909mesmWN5mGiGBZZcjuBDAraOg== 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=gITXjZjtTcPTKX+l+utf/6OOgisYpCh/L27ufsUySKc=; b=JrHp0hUElsXQ8WzI3y1szx1psNUoJdrBLaH+rX2MxMOs8XkGhV8DSDDHE61VuCHPy/hSZkK4gikCkAklYDjaNobR0IpIDvFcmtGzFe157ovKfvQEsZDXX/9kc6hGofCib1Z+XC83R+yWi4dy4akj62hmbHz+cMle8vTj4C/qFJ8PB3DClxO6kxE0mGyBDpsuYCyN98HiVISSUNenXnO5tTeaygn1GZmb/d8oJi8ptWcfuEVmYCQitO8kxJU7fvFwXvYVmnA29JiPvcIMs/GiWyYF/JXp4+uhbODejoy5Lp9TvFWPnMDMP7pqeG8oKn+qPCfBgDZjmdbtqaXaJLOrvw== ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=verimatrix.com;dmarc=pass action=none header.from=verimatrix.com;dkim=pass header.d=verimatrix.com;arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=verimatrix.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gITXjZjtTcPTKX+l+utf/6OOgisYpCh/L27ufsUySKc=; b=poXqFvSJ+00vcmGWBVA/obZOFdgUZN7prTTcggcjzbPyDtiCQSbcGSApMDZlP6OH5yDiyHyGHMEAjdRj6u9aWGQ4unYnF3dEBOsx9BsdfiGzX2bIZFWqRk1yrfn2UJOjw8KUVNGtbetg3cdYEFT3oT46DTTEL21a/6H7t0j9fgk= Received: from MN2PR20MB2973.namprd20.prod.outlook.com (52.132.172.146) by MN2PR20MB2847.namprd20.prod.outlook.com (20.178.254.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2094.16; Mon, 22 Jul 2019 22:46:40 +0000 Received: from MN2PR20MB2973.namprd20.prod.outlook.com ([fe80::68d7:2bbb:af61:2e69]) by MN2PR20MB2973.namprd20.prod.outlook.com ([fe80::68d7:2bbb:af61:2e69%6]) with mapi id 15.20.2094.017; Mon, 22 Jul 2019 22:46:40 +0000 From: Pascal Van Leeuwen To: Ard Biesheuvel CC: Milan Broz , Herbert Xu , "dm-devel@redhat.com" , "linux-crypto@vger.kernel.org" , Horia Geanta Subject: RE: [dm-devel] xts fuzz testing and lack of ciphertext stealing support Thread-Topic: [dm-devel] xts fuzz testing and lack of ciphertext stealing support Thread-Index: AQHVO/5l0aVU4O6KC0WgPIqEsMQCDqbPEhUAgAALMYCAANVxgIAABoCAgAABwICAAAUbgIAAFRTAgAAoQICAAtuUgIAACm4AgAG39ACAAYCLgIAAhUWAgABiaKA= Date: Mon, 22 Jul 2019 22:46:40 +0000 Message-ID: References: <20190716221639.GA44406@gmail.com> <20190717172823.GA205944@gmail.com> <20190718065223.4xaefcwjoxvujntw@gondor.apana.org.au> <20190718072154.m2umem24x4grbf6w@gondor.apana.org.au> <36e78459-1594-6d19-0ab4-95b03a6de036@gmail.com> <20190720065807.GA711@sol.localdomain> <0d4d6387-777c-bfd3-e54a-e7244fde0096@gmail.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=pvanleeuwen@verimatrix.com; x-originating-ip: [188.204.2.113] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a07c3b14-5a88-43ba-a6bd-08d70ef67650 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:MN2PR20MB2847; x-ms-traffictypediagnostic: MN2PR20MB2847: x-ms-exchange-purlcount: 2 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 01068D0A20 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(4636009)(376002)(39850400004)(136003)(366004)(396003)(346002)(13464003)(199004)(189003)(66556008)(8936002)(64756008)(66446008)(486006)(76116006)(66946007)(66476007)(81156014)(81166006)(305945005)(7736002)(14444005)(256004)(5660300002)(68736007)(54906003)(15974865002)(316002)(71190400001)(6116002)(71200400001)(966005)(3846002)(66066001)(52536014)(74316002)(86362001)(229853002)(6916009)(53546011)(186003)(102836004)(25786009)(6436002)(14454004)(4326008)(76176011)(8676002)(53936002)(33656002)(99286004)(478600001)(7696005)(476003)(11346002)(6246003)(26005)(2906002)(6306002)(9686003)(446003)(6506007)(55016002)(18886075002);DIR:OUT;SFP:1101;SCL:1;SRVR:MN2PR20MB2847;H:MN2PR20MB2973.namprd20.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: verimatrix.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: y6/e+2cUG9tnp1HaRm1n1HJMGKHf/xPNUTdlELysQqLFyRe7jpcvjkxZ68Rm3mTA1hAMNF7PWgEy41zO5x08sFb4U57ew8DD1Rx06WTsJXYagGFxU4tLT9Ye4f9p1/VCspkZ8A7rbdic0bHHlgWFi5MNkBn8fZrPRcNSakV99UnaNvFcs2G7meJfZrHHGX3cIvvKzlGtEtcWymGMfCR+63iuZmoB8GpQH9pQbxolxl1QeB0fJVJFF8qKVSQTVN2gDTlRQ9JxolYB2McIfC6CAujilqxUu8EV9HZtou6HUDiwfYAwBsxBUszBCnrW0IrZcIi0yzYWaDhJTnY7pv7DfiEPPLLOZNq4iCIa3i64TAsppYU9Xr9rbGera/GOwzAfH8KW1SdjqfX17/DIW8fDt9/2+xwWQLPcf0rlvNGULEI= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: verimatrix.com X-MS-Exchange-CrossTenant-Network-Message-Id: a07c3b14-5a88-43ba-a6bd-08d70ef67650 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2019 22:46:40.4506 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: dcb260f9-022d-4495-8602-eae51035a0d0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: pvanleeuwen@verimatrix.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR20MB2847 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBcmQgQmllc2hldXZlbCA8YXJk LmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gU2VudDogTW9uZGF5LCBKdWx5IDIyLCAyMDE5IDY6 NDMgUE0NCj4gVG86IFBhc2NhbCBWYW4gTGVldXdlbiA8cHZhbmxlZXV3ZW5AdmVyaW1hdHJpeC5j b20+DQo+IENjOiBNaWxhbiBCcm96IDxnbWF6eWxhbmRAZ21haWwuY29tPjsgSGVyYmVydCBYdSA8 aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PjsgZG0tZGV2ZWxAcmVkaGF0LmNvbTsgbGludXgt DQo+IGNyeXB0b0B2Z2VyLmtlcm5lbC5vcmc7IEhvcmlhIEdlYW50YSA8aG9yaWEuZ2VhbnRhQG54 cC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZG0tZGV2ZWxdIHh0cyBmdXp6IHRlc3RpbmcgYW5kIGxh Y2sgb2YgY2lwaGVydGV4dCBzdGVhbGluZyBzdXBwb3J0DQo+IA0KPiBPbiBNb24sIDIyIEp1bCAy MDE5IGF0IDEyOjQ0LCBQYXNjYWwgVmFuIExlZXV3ZW4NCj4gPHB2YW5sZWV1d2VuQHZlcmltYXRy aXguY29tPiB3cm90ZToNCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g PiA+IEZyb206IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+ ID4gU2VudDogU3VuZGF5LCBKdWx5IDIxLCAyMDE5IDExOjUwIEFNDQo+ID4gPiBUbzogTWlsYW4g QnJveiA8Z21henlsYW5kQGdtYWlsLmNvbT4NCj4gPiA+IENjOiBQYXNjYWwgVmFuIExlZXV3ZW4g PHB2YW5sZWV1d2VuQHZlcmltYXRyaXguY29tPjsgSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3Iu YXBhbmEub3JnLmF1PjsgZG0tZGV2ZWxAcmVkaGF0LmNvbTsNCj4gbGludXgtDQo+ID4gPiBjcnlw dG9Admdlci5rZXJuZWwub3JnOyBIb3JpYSBHZWFudGEgPGhvcmlhLmdlYW50YUBueHAuY29tPg0K PiA+ID4gU3ViamVjdDogUmU6IFtkbS1kZXZlbF0geHRzIGZ1enogdGVzdGluZyBhbmQgbGFjayBv ZiBjaXBoZXJ0ZXh0IHN0ZWFsaW5nIHN1cHBvcnQNCj4gPiA+DQo+ID4gPiBPbiBTYXQsIDIwIEp1 bCAyMDE5IGF0IDEwOjM1LCBNaWxhbiBCcm96IDxnbWF6eWxhbmRAZ21haWwuY29tPiB3cm90ZToN Cj4gPiA+ID4NCj4gPiA+ID4gT24gMjAvMDcvMjAxOSAwODo1OCwgRXJpYyBCaWdnZXJzIHdyb3Rl Og0KPiA+ID4gPiA+IE9uIFRodSwgSnVsIDE4LCAyMDE5IGF0IDAxOjE5OjQxUE0gKzAyMDAsIE1p bGFuIEJyb3ogd3JvdGU6DQo+ID4gPiA+ID4+IEFsc28sIEkgd291bGQgbGlrZSB0byBhdm9pZCBh bm90aGVyICJqdXN0IGJlY2F1c2UgaXQgaXMgbmljZXIiIG1vZHVsZSBkZXBlbmRlbmNlIChYVFMt PlhFWC0+RUNCKS4NCj4gPiA+ID4gPj4gTGFzdCB0aW1lICh3aGVuIFhUUyB3YXMgcmVpbXBsZW1l bnRlZCB1c2luZyBFQ0IpIHdlIGhhdmUgbWFueSByZXBvcnRzIHdpdGggaW5pdHJhbWZzDQo+ID4g PiA+ID4+IG1pc3NpbmcgRUNCIG1vZHVsZSBwcmV2ZW50aW5nIGJvb3QgZnJvbSBBRVMtWFRTIGVu Y3J5cHRlZCByb290IGFmdGVyIGtlcm5lbCB1cGdyYWRlLi4uDQo+ID4gPiA+ID4+IEp1c3Qgc2F5 aW5nLiAoRGVzcGl0ZSB0aGUgbGFzdCB0aW1lIGl0IHdhcyBrZXlyaW5nIHdoYXQgYnJva2UgZW5j cnlwdGVkIGJvb3QgOy0pDQo+ID4gPiA+ID4+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBDYW4ndCB0 aGUgIm1pc3NpbmcgbW9kdWxlcyBpbiBpbml0cmFtZnMiIGlzc3VlIGJlIHNvbHZlZCBieSB1c2lu ZyBhDQo+ID4gPiA+ID4gTU9EVUxFX1NPRlRERVAoKT8gIEFjdHVhbGx5LCB3aHkgaXNuJ3QgdGhh dCBiZWluZyB1c2VkIGZvciB4dHMgLT4gZWNiIGFscmVhZHk/DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiAoVGhlcmUgd2FzIGFsc28gYSBidWcgd2hlcmUgQ09ORklHX0NSWVBUT19YVFMgZGlkbid0IHNl bGVjdCBDT05GSUdfQ1JZUFRPX0VDQiwNCj4gPiA+ID4gPiBidXQgdGhhdCB3YXMgc2ltcGx5IGEg YnVnLCB3aGljaCB3YXMgZml4ZWQuKQ0KPiA+ID4gPg0KPiA+ID4gPiBTdXJlLCBhbmQgaXQgaXMg c29sdmVkIG5vdy4gKFNvbWUgc3lzdGVtcyB3aXRoIGEgaGFyZGNvZGVkIGxpc3Qgb2YgbW9kdWxl cw0KPiA+ID4gPiBoYXZlIHRvIGJlIG1hbnVhbGx5IHVwZGF0ZWQgZXRjLiwgYnV0IHRoYXQgaXMg anVzdCBiYWQgZGVzaWduKS4NCj4gPiA+ID4gSXQgY2FuIGJlIGRvbmUgcHJvcGVybHkgZnJvbSB0 aGUgYmVnaW5uaW5nLg0KPiA+ID4gPg0KPiA+ID4gPiBJIGp1c3Qgd2FudCB0byBzYXkgdGhhdCB0 aGF0IHN3aXRjaGluZyB0byBYRVggbG9va3MgbGlrZSB3YXN0aW5nIHRpbWUgdG8gbWUNCj4gPiA+ ID4gZm9yIG5vIGFkZGl0aW9uYWwgYmVuZWZpdC4NCj4gPiA+ID4NCj4gPiA+ID4gRnVsbHkgaW1w bGVtZW50aW5nIFhUUyBkb2VzIG1ha2UgbXVjaCBtb3JlIHNlbnNlIGZvciBtZSwgZXZlbiB0aG91 Z2ggaXQgaXMgbG9uZy10ZXJtDQo+ID4gPiA+IHRoZSBlZmZvcnQgYW5kIHRoZSBvbmx5IHVzZXIs IGZvciBub3csIHdvdWxkIGJlIHRlc3RtZ3IuDQo+ID4gPiA+DQo+ID4gPiA+IFNvLCB0aGVyZSBh cmUgbm8gdXNlcnMgYmVjYXVzZSBpdCBkb2VzIG5vdCB3b3JrLiBJdCBtYWtlcyBubyBzZW5zZQ0K PiA+ID4gPiB0byBpbXBsZW1lbnQgaXQsIGJlY2F1c2UgdGhlcmUgYXJlIG5vIHVzZXJzLi4uIChz b3JyeSwgc291bmRzIGxpa2UgY2F0Y2ggMjIgOikNCj4gPiA+ID4NCj4gPiA+ID4gKE1heWJlIHNv bWVvbmUgY2FuIHVzZSBpdCBmb3Iga2V5c2xvdCBlbmNyeXB0aW9uIGZvciBrZXlzIG5vdCBhbGln bmVkIHRvDQo+ID4gPiA+IGJsb2NrIHNpemUsIGR1bm5vLiBBY3R1YWxseSwgc29tZSBmaWxlc3lz dGVtIGVuY3J5cHRpb24gY291bGQgaGF2ZSB1c2UgZm9yIGl0LikNCj4gPiA+ID4NCj4gPiA+ID4g PiBPciAieHRzIiBhbmQgInhleCIgY291bGQgZ28gaW4gdGhlIHNhbWUga2VybmVsIG1vZHVsZSB4 dHMua28sIHdoaWNoIHdvdWxkIG1ha2UNCj4gPiA+ID4gPiB0aGlzIGEgbm9uLWlzc3VlLg0KPiA+ ID4gPg0KPiA+ID4gPiBJZiBpdCBpcyBub3QgYXZhaWxhYmxlIGZvciB1c2VycywgSSByZWFsbHkg c2VlIG5vIHJlYXNvbiB0byBpbnRyb2R1Y2UgWEVYIHdoZW4NCj4gPiA+ID4gaXQgaXMganVzdCBY VFMgd2l0aCBmdWxsIGJsb2Nrcy4NCj4gPiA+ID4NCj4gPiA+ID4gSWYgaXQgaXMgdmlzaWJsZSB0 byB1c2VycywgaXQgbmVlZHMgc29tZSB3b3JrIGluIHVzZXJzcGFjZSAtIFhFWCAoYXMgWFRTKSBu ZWVkIHR3byBrZXlzLA0KPiA+ID4gPiBwZW9wbGUgYXJlIGFscmVhZHkgY29uZnVzZWQgZW5vdWdo IHRoYXQgMjU2Yml0IGtleSBpbiBBRVMtWFRTIG1lYW5zIEFFUy0xMjguLi4NCj4gPiA+ID4gU28g dGhlIGV4YW1wbGVzLCBoaW50cywgbWFuIHBhZ2VzIG5lZWQgdG8gYmUgdXBkYXRlZCwgYXQgbGVh c3QuDQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4gT0ssIGNvbnNpZGVyIG1lIHBlcnN1YWRlZC4gV2Ug YXJlIGFscmVhZHkgZXhwb3NpbmcgeHRzKC4uLikgdG8NCj4gPiA+IHVzZXJsYW5kLCBhbmQgc2lu Y2Ugd2UgYWxyZWFkeSBpbXBsZW1lbnQgYSBwcm9wZXIgc3Vic2V0IG9mIHRydWUgWFRTLA0KPiA+ ID4gaXQgd2lsbCBiZSBzaW1wbHkgYSBtYXR0ZXIgb2YgbWFraW5nIHN1cmUgdGhhdCB0aGUgZXhp c3RpbmcgWFRTDQo+ID4gPiBpbXBsZW1lbnRhdGlvbnMgZG9uJ3QgcmVncmVzcyBpbiBwZXJmb3Jt YW5jZSBvbiB0aGUgbm9uLUNUUyBjb2RlDQo+ID4gPiBwYXRocy4NCj4gPiA+DQo+ID4gPiBJdCB3 b3VsZCBiZSB1c2VmdWwsIHRob3VnaCwgdG8gaGF2ZSBzb21lIGdlbmVyaWMgaGVscGVyIGZ1bmN0 aW9ucywNCj4gPiA+IGUuZy4sIGxpa2UgdGhlIG9uZSB3ZSBoYXZlIGZvciBDQkMsIG9yIHRoZSBv bmUgSSByZWNlbnRseSBwcm9wb3NlZCBmb3INCj4gPiA+IENUUywgc28gdGhhdCBleGlzdGluZyBp bXBsZW1lbnRhdGlvbnMgKHN1Y2ggYXMgdGhlIGJpdCBzbGljZWQgQUVTKSBjYW4NCj4gPiA+IGVh c2lseSBiZSBhdWdtZW50ZWQgd2l0aCBhIENUUyBjb2RlIHBhdGggKGJ1dCBwZXJmb3JtYW5jZSBt YXkgbm90IGJlDQo+ID4gPiBvcHRpbWFsIGluIHRob3NlIGNhc2VzKS4gRm9yIHRoZSBBUk0gaW1w bGVtZW50YXRpb25zIGJhc2VkIG9uIEFFUw0KPiA+ID4gaW5zdHJ1Y3Rpb25zLCBpdCBzaG91bGQg YmUgcmVhc29uYWJseSBzdHJhaWdodCBmb3J3YXJkIHRvIGltcGxlbWVudCBpdA0KPiA+ID4gY2xv c2UgdG8gb3B0aW1hbGx5IGJ5IHJldXNpbmcgc29tZSBvZiB0aGUgY29kZSBJIGFkZGVkIGZvciBD QkMtQ1RTDQo+ID4gPiAoYnV0IEkgd29uJ3QgZ2V0IGFyb3VuZCB0byBkb2luZyB0aGF0IGZvciBh IHdoaWxlKS4gSWYgdGhlcmUgYXJlIGFueQ0KPiA+ID4gdm9sdW50ZWVycyBmb3IgbG9va2luZyBp bnRvIHRoZSBnZW5lcmljIG9yIHg4Ni9BRVMtTkkgaW1wbGVtZW50YXRpb25zLA0KPiA+ID4gcGxl YXNlIGNvbWUgZm9yd2FyZCA6LSkgQWxzbywgaWYgYW55IG9mIHRoZSBwdWJsaWNhdGlvbnMgdGhh dCB3ZXJlDQo+ID4gPiBxdW90ZWQgaW4gdGhpcyB0aHJlYWQgaGF2ZSBzdWl0YWJsZSB0ZXN0IHZl Y3RvcnMsIHRoYXQgd291bGQgYmUgZ29vZA0KPiA+ID4gdG8ga25vdy4NCj4gPg0KPiA+IFVuZm9y dHVuYXRlbHksIHRoZXNlIGFsZ29yaXRobSAmIHByb3RvY29sIHNwZWNpZmljYXRpb25zIHRlbmQg dG8gYmUgdmVyeSBmcnVnYWwgd2hlbiBpdA0KPiA+IGNvbWVzIHRvIHByb3ZpZGluZyB0ZXN0IHZl Y3RvcnMsIGJhcmVseSBzY3JhdGNoaW5nIHRoZSBzdXJmYWNlIG9mIGFueSBjb3JuZXIgY2FzZXMs IGJ1dA0KPiA+IGF0IGxlYXN0IHRoZXJlIGlzIG9uZSBub24tbXVsdGlwbGUtb2YtMTYgdmVjdG9y IGluIHRoZSBvcmlnaW5hbCBJRUVFIFAxNjE5IC8gRDE2DQo+ID4gc3BlY2lmaWNhdGlvbiBpbiBB bm5leCBCIFRlc3QgVmVjdG9ycyAobGFzdCB2ZWN0b3IsICJYVFMtQUVTLTEyOCBhcHBsaWVkIGZv ciBhIGRhdGEgdW5pdA0KPiA+IHRoYXQgaXMgbm90IGEgbXVsdGlwbGUgb2YgMTYgYnl0ZXMiKQ0K PiA+DQo+IA0KPiBBY3R1YWxseSwgdGhhdCBzcGVjIGhhcyBhIGNvdXBsZSBvZiB0ZXN0IHZlY3Rv cnMuIFVuZm9ydHVuYXRlbHksIHRoZXkNCj4gYXJlIGFsbCByYXRoZXIgc2hvcnQgKGV4Y2VwdCB0 aGUgbGFzdCBvbmUgaW4gdGhlICdubyBtdWx0aXBsZSBvZiAxNg0KPiBieXRlcycgcGFyYWdyYXBo LCBidXQgdW5mb3J0dW5hdGVseSwgdGhhdCBvbmUgaXMgaW4gZmFjdCBhIG11bHRpcGxlIG9mDQo+ IDE2IGJ5dGVzKQ0KPiANClllcywgYXMgdXN1YWwgaXQncyB2ZXJ5IGxpbWl0ZWQgYW5kIGRvZXMg bm90IGNvdmVyIGFsbCB0aGUgaW50ZXJlc3RpbmcgY2FzZXMuDQpJdCdzIHN0aWxsIGJldHRlciB0 aGFuIG5vdGhpbmcsIHRob3VnaC4NClRoZSBmYWN0IHRoYXQgdGhlIGxhc3Qgb25lIGFjdHVhbGx5 ICppcyogYSBtdWx0aXBsZSBvZiAxNiBpcyBxdWl0ZSBoaWxhcmlvdXMsIEkNCmhhZCBub3Qgc3Bv dHRlZCB0aGF0IG15c2VsZiB5ZXQgLi4uDQoNCj4gSSBhZGRlZCB0aGVtIGhlcmUgWzBdIGFsb25n IHdpdGggYW4gYXJtNjQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBBRVMNCj4gaW5zdHJ1Y3Rpb24g YmFzZWQgZHJpdmVyLiBDb3VsZCB5b3UgcGxlYXNlIGRvdWJsZSBjaGVjayB0aGF0IHRoZXNlDQo+ IHdvcmsgYWdhaW5zdCB5b3VyIGRyaXZlcj8gVGhhdCB3b3VsZCBlc3RhYmxpc2ggYSBncm91bmQg dHJ1dGggYWdhaW5zdA0KPiB3aGljaCB3ZSBjYW4gaW1wbGVtZW50IHRoZSBnZW5lcmljIHZlcnNp b24gYXMgd2VsbC4NCj4gDQo+IFswXSBodHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGlu dXgva2VybmVsL2dpdC9hcmRiL2xpbnV4LmdpdC9sb2cvP2g9eHRzLWN0cw0KPiANCkknZCBiZSBo YXBweSB0byBkbyB0aGF0IGV4Y2VwdCB0aGF0IGFkZGluZyBYVFMgc3VwcG9ydCB0byB0aGUgZHJp dmVyIGlzIHN0aWxsDQpvbiBteSB0b2RvIGxpc3QuIEkgd2FzIGFjdHVhbGx5IHdhaXRpbmcgZm9y IHNvbWUgb2YgbXkgZWFybGllciBwYXRjaGVzIHRvIGJlDQphY2tlZCBhcyB0aGUgc2l0dWF0aW9u IGlzIGJlY29taW5nIHJhdGhlciB1bm1hbmFnZWFibGUgZm9yIG1lIC4uLg0KDQpCdXQgSSBzdXBw b3NlIEkgY2FuIGdpdmUgaXQgYSBzaG90IGFueXdheSAtIGFkZGluZyBYVFMgc2hvdWxkIGJlIHJl bGF0aXZlbHkNCnNpbXBsZSBjb21wYXJlIHRvLCBzYXksIGFkZGluZyBBRVMtR0NNLiBCdXQgSSdt IHN1cmUgSSdsbCBzb21laG93IHJlZ3JldA0Kc2F5aW5nIHRoYXQuDQoNCj4gPiBCZXNpZGVzIHRo YXQsIEknZCBiZSBoYXBweSB0byBnZW5lcmF0ZSBzb21lIHRlc3R2ZWN0b3JzIGZyb20gb3VyIGRl ZmFjdG8tc3RhbmRhcmQNCj4gPiBpbXBsZW1lbnRhdGlvbiA7LSkNCj4gPg0KPiANCj4gT25lIG9y IHR3byBsYXJnZXIgb25lcyB3b3VsZCBiZSB1c2VmdWwsIHllcy4NCj4NCkl0IHdhcyBtb3JlIG9y IGxlc3MgYSBqb2tlIGFzIGhvdyB3b3VsZCB5b3Uga25vdyB0aGVtIHRvIGJlIGNvcnJlY3Q/DQoo bm90IHRoYXQgSSBkb24ndCB0cnVzdCBteSBoYXJkd2FyZSwgb2YgY291cnNlIC4uLikNCklmIGl0 J3MganVzdCBmb3IgcGxheWluZyBhcm91bmQsIEkgY2FuIHByb3ZpZGUgc29tZSBsYXJnZXIgdmVj dG9ycywgbm8gcHJvYmxlbS4NCg0KUmVnYXJkcywNClBhc2NhbCB2YW4gTGVldXdlbg0KU2lsaWNv biBJUCBBcmNoaXRlY3QsIE11bHRpLVByb3RvY29sIEVuZ2luZXMgQCBWZXJpbWF0cml4DQp3d3cu aW5zaWRlc2VjdXJlLmNvbQ0KDQo=