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=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 D8D66C0650F for ; Thu, 8 Aug 2019 08:18:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7F6E62187F for ; Thu, 8 Aug 2019 08:18:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=verimatrix.com header.i=@verimatrix.com header.b="kU26keuo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731886AbfHHISw (ORCPT ); Thu, 8 Aug 2019 04:18:52 -0400 Received: from mail-eopbgr790081.outbound.protection.outlook.com ([40.107.79.81]:53643 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731281AbfHHISw (ORCPT ); Thu, 8 Aug 2019 04:18:52 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LNGa08/WC4fPAX2xBZZTrNwsFKiyz1RtBPpMKHz4Qbdhcturb9i7QPbleYrmfyRKEXr4ZcECfXh7rQkKtog7yIqZj6cE35X+HAfXEnr7dB/WJV1iyw6k+eHS19KeIQy/xy7okBHGyXXMiNzgFytAEBFpIKEQF1M6U2mhiA6mbv+RQPlP5E1wqneLRZqnqF1dxosTHg2Wy0NL0g6+5262DK46Ms3mz7yBQu9osqmXLD3VZ44AeftRA3SwXCJ2M4dK42zTf4By/XkbzpzWkeCvikU0gvUt99EMnNiYL+8KGsEHaVy+bulIw20aLPYdtkaUNlCdSBxGY45sgremmpED1g== 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=kk3Jyc3jMtLoqQFbTd42GjmHKGmn7im1pFr2Pc/BEGk=; b=HxdZYOYEEXb7Au2BeuNIRRyRmc4jG9Q2oEj+S1h1+1dahRPUShoT9nJBGdjwnzBozqrtPB3Isom72bU99NCy9BwKXeqUHFyLAafy5BgYaz7WlrnSS9022srC2CqMydxETXoqUEdT3R7Am4Ae2BHO+MXOVDs5+1CrSHdhlKm1ynuQ8At4Oh5xcWGStu6KjzXc3/0Uuai6VhL2EqpDPNjxcFBzQsbOr3dop2kvzEGYqPAdqhPZlyt9pqNJVIXkiY78dVvkrRB07qCOG68DW6qbIVT6ZAxxHzlNYR5rOo/VngNsrNfskpY/b3C7T3+ggiziupJcrr8J5+NX3lZVTMlc1Q== 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=kk3Jyc3jMtLoqQFbTd42GjmHKGmn7im1pFr2Pc/BEGk=; b=kU26keuoSplBroYt8SKN0krE+taWNFOOtpJD7vJECzJCXA6d7QNTWvyUxtGDRULeeGiaYffQlH3aDn+ng/0QsHDVp13njngF0RRSMqIsuvnvTwhpViB+z6Oh1O8++iL5A7j0MjVOyV9UbCuRh5rI79a7DWfnbaUsFw+3BXceum4= Received: from CH2PR20MB2968.namprd20.prod.outlook.com (52.132.228.90) by CH2PR20MB2967.namprd20.prod.outlook.com (52.132.228.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2157.16; Thu, 8 Aug 2019 08:18:31 +0000 Received: from CH2PR20MB2968.namprd20.prod.outlook.com ([fe80::e80e:b290:cd80:1cf3]) by CH2PR20MB2968.namprd20.prod.outlook.com ([fe80::e80e:b290:cd80:1cf3%7]) with mapi id 15.20.2157.015; Thu, 8 Aug 2019 08:18:31 +0000 From: Pascal Van Leeuwen To: Ard Biesheuvel , Pascal van Leeuwen CC: "open list:HARDWARE RANDOM NUMBER GENERATOR CORE" , Herbert Xu , "David S. Miller" Subject: RE: [PATCHv2] crypto: xts - Add support for Cipher Text Stealing Thread-Topic: [PATCHv2] crypto: xts - Add support for Cipher Text Stealing Thread-Index: AQHVTbnLJDEr41H8rkmsbKI5H7w8F6bw3s4AgAAEuLA= Date: Thu, 8 Aug 2019 08:18:31 +0000 Message-ID: References: <1565245094-8584-1-git-send-email-pvanleeuwen@verimatrix.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: beb10d36-d0b1-422a-8183-08d71bd8ffcc x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:CH2PR20MB2967; x-ms-traffictypediagnostic: CH2PR20MB2967: x-ms-exchange-purlcount: 2 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 012349AD1C x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(979002)(4636009)(39850400004)(376002)(136003)(366004)(396003)(346002)(52314003)(54534003)(13464003)(199004)(189003)(55016002)(14454004)(25786009)(76116006)(66946007)(66476007)(52536014)(64756008)(66556008)(53936002)(6246003)(81156014)(5660300002)(8676002)(66446008)(476003)(6506007)(53546011)(478600001)(74316002)(81166006)(446003)(8936002)(6306002)(15974865002)(9686003)(7736002)(86362001)(305945005)(11346002)(53946003)(6436002)(4326008)(3846002)(33656002)(6116002)(110136005)(66066001)(316002)(486006)(54906003)(966005)(102836004)(26005)(256004)(14444005)(71200400001)(99286004)(7696005)(30864003)(186003)(229853002)(2906002)(76176011)(71190400001)(562404015)(579004)(18886075002)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1101;SCL:1;SRVR:CH2PR20MB2967;H:CH2PR20MB2968.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: 83OIxlRntGfJsrvXyWck0NHA7HHVomBGoB/eY0JOL5g2XMqOTwRD9EsUcp279BcKlm+aoRtQg3h1kl+eC+hl0HDRn6ti9Qq49e0mjw9tYnSXGX1MQ/VdtFZ4ptXhhqu3hKBTlBrPXUINC9RU7gR4NAiXm9zkIVW4L4GPJJOSfGwSRhyn1MSTnhe2z7HK2VUYikrPvh4KHs8D0pmDQQSjR+3er/DT7uzVVgL3o7rU7U52GLUm3euC5IKPjLYc8lGRUqaXlqVglOXsjU1NYzkB5wgN6Q/QsJvhmC4nJBbeMWn12MphOH3jmkzt22yAVRO0lROo/6hxN0gEkJR3GgOrV7lO+UUMGjPKYy2ns9dGgmtdGmocWqlUe7H/jqjJQZeHXuENjiRrbI4QKE9xTJVfCWg+JJ29/4pYM/iFgJlJ08g= x-ms-exchange-transport-forked: True 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: beb10d36-d0b1-422a-8183-08d71bd8ffcc X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Aug 2019 08:18:31.2484 (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: 1LA/AQiNHhvOLIlripuKAiJ9o1ypcd+cVoVsg8cZfOOTXsnpLNBe2FYpSLjfzznFRGj2e1t4vxRde0dIW5SJB/on63yBPaxY70jSjuN2dFc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR20MB2967 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org QXJkLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFyZCBCaWVzaGV1 dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiBTZW50OiBUaHVyc2RheSwgQXVndXN0 IDgsIDIwMTkgOTo0NSBBTQ0KPiBUbzogUGFzY2FsIHZhbiBMZWV1d2VuIDxwYXNjYWx2YW5sQGdt YWlsLmNvbT4NCj4gQ2M6IG9wZW4gbGlzdDpIQVJEV0FSRSBSQU5ET00gTlVNQkVSIEdFTkVSQVRP UiBDT1JFIDxsaW51eC1jcnlwdG9Admdlci5rZXJuZWwub3JnPjsNCj4gSGVyYmVydCBYdSA8aGVy YmVydEBnb25kb3IuYXBhbmEub3JnLmF1PjsgRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PjsgUGFzY2FsDQo+IFZhbiBMZWV1d2VuIDxwdmFubGVldXdlbkB2ZXJpbWF0cml4LmNv bT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSHYyXSBjcnlwdG86IHh0cyAtIEFkZCBzdXBwb3J0IGZv ciBDaXBoZXIgVGV4dCBTdGVhbGluZw0KPiANCj4gSGVsbG8gUGFzY2FsLA0KPiANCj4gVGhhbmtz IGZvciBsb29raW5nIGludG8gdGhpcy4NCj4gDQo+IE9uIFRodSwgOCBBdWcgMjAxOSBhdCAxMDoy MCwgUGFzY2FsIHZhbiBMZWV1d2VuIDxwYXNjYWx2YW5sQGdtYWlsLmNvbT4gd3JvdGU6DQo+ID4N Cj4gPiBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgQ2lwaGVyIFRleHQgU3RlYWxpbmcgZm9yIGRhdGEg YmxvY2tzIHRoYXQgYXJlIG5vdCBhbg0KPiA+IGludGVnZXIgbXVsdGlwbGUgb2YgdGhlIGNpcGhl ciBibG9jayBzaXplIGluIHNpemUsIGJyaW5naW5nIGl0IGZ1bGx5IGluDQo+ID4gbGluZSB3aXRo IHRoZSBJRUVFIFAxNjE5L0QxNiBzdGFuZGFyZC4NCj4gPg0KPiA+IFRoaXMgaGFzIGJlZW4gdGVz dGVkIHdpdGggdGhlIEFFUy1YVFMgdGVzdCB2ZWN0b3JzIGZyb20gdGhlIElFRUUgUDE2MTkvRDE2 DQo+ID4gc3BlY2lmaWNhdGlvbiBhcyB3ZWxsIGFzIHNvbWUgYWRkaXRpb25hbCB0ZXN0IHZlY3Rv cnMgc3VwcGxpZWQgdG8gdGhlDQo+ID4gbGludXhfY3J5cHRvIG1haWxpbmcgbGlzdCBwcmV2aW91 c2x5LiBJdCBoYXMgYWxzbyBiZWVuIGZ1enplZCBhZ2FpbnN0DQo+ID4gSW5zaWRlIFNlY3VyZSBB RVMtWFRTIGhhcmR3YXJlIHdoaWNoIGhhcyBiZWVuIGFjdGl2ZWx5IHVzZWQgaW4gdGhlIGZpZWxk DQo+ID4gZm9yIG1vcmUgdGhhbiBhIGRlY2FkZSBhbHJlYWR5Lg0KPiA+DQo+ID4gY2hhbmdlcyBz aW5jZSB2MToNCj4gPiAtIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBpc3N1ZSBkdWUgdG8gc3VicmVx IG5vdCBiZWluZyB0aGUgbGFzdCBlbnRyeSBpbg0KPiA+ICAgcmN0eCwgdGhpcyB0dXJucyBvdXQg dG8gYmUgYSBjcnlwdG8gQVBJIHJlcXVpcmVtZW50LiBUaGFua3MgdG8gTWlsYW4NCj4gPiAgIEJy b3ogPGdtYXp5bGFuZEBnbWFpbC5jb20+IGZvciBmaW5kaW5nIHRoaXMgYW5kIHByb3ZpZGluZyB0 aGUgc29sdXRpb24uDQo+ID4gLSBSZW1vdmVkIHNvbWUgcmVkdW5kYW50IGVycm9yIHJldHVybmlu ZyBjb2RlIGZyb20gdGhlIF9maW5pc2hfY3RzKCkNCj4gPiAgIGZ1bmN0aW9ucyB0aGF0IGN1cnJl bnRseSBjYW5ub3QgZmFpbCwgdGhlcmVmb3JlIHdvdWxkIGFsd2F5cyByZXR1cm4gMC4NCj4gPiAt IHJlbW92ZWQgcmVtX2J5dGVzIGNvbXB1dGF0aW9uIGJlaGluZCBpbml0X2NyeXB0KCkgaW4gdGhl IGVuY3J5cHQoKSBhbmQNCj4gPiAgIGRlY3J5cHQoKSBmdW5jdGlvbnMsIG5vIG5lZWQgdG8gY29t cHV0ZSBmb3IgbGVuZ3RocyA8IDE2DQo+ID4gLSBGaXhlZCBjb21tZW50IHN0eWxlIGZvciBzaW5n bGUgbGluZSBjb21tZW50cw0KPiA+DQo+IA0KPiBQbGVhc2UgcHV0IHRoZSBjaGFuZ2Vsb2cgYmVs b3cgdGhlIC0tLQ0KPiANCk9rLCBJIGNhbiByZXN1Ym1pdCB3aXRoIHRoYXQgZml4ZWQNCg0KPiA+ IFNpZ25lZC1vZmYtYnk6IFBhc2NhbCB2YW4gTGVldXdlbiA8cHZhbmxlZXV3ZW5AdmVyaW1hdHJp eC5jb20+DQo+ID4gLS0tDQo+ID4gIGNyeXB0by94dHMuYyB8IDIyOSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQ0KPiA+ICAxIGZpbGUg Y2hhbmdlZCwgMjA5IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlm ZiAtLWdpdCBhL2NyeXB0by94dHMuYyBiL2NyeXB0by94dHMuYw0KPiA+IGluZGV4IDMzY2Y3MjYu LjE3YjU1MWQgMTAwNjQ0DQo+ID4gLS0tIGEvY3J5cHRvL3h0cy5jDQo+ID4gKysrIGIvY3J5cHRv L3h0cy5jDQo+ID4gQEAgLTEsNyArMSw1IEBADQo+ID4gIC8qIFhUUzogYXMgZGVmaW5lZCBpbiBJ RUVFMTYxOS9EMTYNCj4gPiAgICogICAgIGh0dHA6Ly9ncm91cGVyLmllZWUub3JnL2dyb3Vwcy8x NjE5L2VtYWlsL3BkZjAwMDg2LnBkZg0KPiA+IC0gKiAgICAgKHNlY3RvciBzaXplcyB3aGljaCBh cmUgbm90IGEgbXVsdGlwbGUgb2YgMTYgYnl0ZXMgYXJlLA0KPiA+IC0gKiAgICAgaG93ZXZlciBj dXJyZW50bHkgdW5zdXBwb3J0ZWQpDQo+ID4gICAqDQo+ID4gICAqIENvcHlyaWdodCAoYykgMjAw NyBSaWsgU25lbCA8cnNuZWxAY3ViZS5keW5kbnMub3JnPg0KPiA+ICAgKg0KPiA+IEBAIC0yOCw2 ICsyNiw3IEBADQo+ID4NCj4gPiAgc3RydWN0IHByaXYgew0KPiA+ICAgICAgICAgc3RydWN0IGNy eXB0b19za2NpcGhlciAqY2hpbGQ7DQo+ID4gKyAgICAgICBzdHJ1Y3QgY3J5cHRvX2NpcGhlciAq YmFzZTsNCj4gDQo+IFdoeSBkbyB5b3UgbmVlZCBhIHNlcGFyYXRlIGNpcGhlciBmb3IgdGhlIGNp cGhlcnRleHQgc3RlYWxpbmc/IEVDQiBjYW4NCj4gYmUgaW52b2tlZCB3aXRoIGEgc2luZ2xlIGJs b2NrIGp1c3QgZmluZSwgYW5kIGl0IHdpbGwgYmVoYXZlIGV4YWN0bHkNCj4gbGlrZSB0aGUgYmFy ZSBjaXBoZXIuDQo+IA0KQXMgeW91IGFscmVhZHkgcG9pbnRlZCBvdXQsIGl0IG1heSBiZSBhIGRp ZmZlcmVudCBrZXkgZnJvbSB0aGUgdHdlYWssDQphbmQgYXMgSSBteXNlbGYgYWxyZWFkeSBleHBs YWluZWQgSSByZWFsbHkgZG8gKm5vdCogd2FudCB0byB1c2UgdGhlIA0Kc2tjaXBoZXIgd2hpY2gg bWF5IGJlIEhXIGFjY2VsZXJhdGVkIHdpdGggdGVycmlibGUgbGF0ZW5jeS4NCg0KSSB3YW50IHNv bWUgU1cgaW1wbGVtZW50YXRpb24gdGhhdCdzIGZhc3Qgb24gYSBzaW5nbGUgYmxvY2sgaGVyZS4g QW5kIEkNCmNhbid0IGNhbGwgYSBsaWJyYXJ5IGZ1bmN0aW9uIGRpcmVjdGx5IGFzIHRoZSB1bmRl cmx5aW5nIGNpcGhlciBjYW4gYmUgDQphbnl0aGluZyAod2l0aCBhIDEyOCBiaXQgYmxvY2tzaXpl KS4NCg0KQWxzbywgcHVzaGluZyBpdCB0aHJvdWdoIHRoZSBtYWluIHNrY2lwaGVyIHdhcyBhIGJp dCBtb3JlIGNvbXBsZXhpdHkNCnRoYW4gSSBjb3VsZCBtYW5hZ2UsIG5vdCBiZWluZyBhIHNvZnR3 YXJlIGVuZ2luZWVyIGJ5IHByb2Zlc3Npb24uDQpJIGxlYXZlIHRoZSBvcHRpbWl6YXRpb25zIHRv IHBlb3BsZSBiZXR0ZXIgZXF1aXBwZWQgdG8gZG8gdGhlbSA6LSkNCg0KPiA+ICAgICAgICAgc3Ry dWN0IGNyeXB0b19jaXBoZXIgKnR3ZWFrOw0KPiA+ICB9Ow0KPiA+DQo+ID4gQEAgLTM3LDcgKzM2 LDkgQEAgc3RydWN0IHh0c19pbnN0YW5jZV9jdHggew0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0cnVj dCByY3R4IHsNCj4gPiAtICAgICAgIGxlMTI4IHQ7DQo+ID4gKyAgICAgICBsZTEyOCB0LCB0Y3Vy Ow0KPiA+ICsgICAgICAgaW50IHJlbV9ieXRlcywgaXNfZW5jcnlwdDsNCj4gDQo+IEluc3RlYWQg b2YgYWRkaW5nIHRoZSBpc19lbmNyeXB0IGZsYWcsIGNvdWxkIHdlIGNoYW5nZSBjcnlwdF9kb25l IGludG8NCj4gZW5jcnlwdF9kb25lL2RlY3J5cHRfZG9uZT8NCj4gDQpUaGF0J3MgcG9zc2libGUs IGJ1dCB3aGF0IHdvdWxkIGJlIHRoZSBhZHZhbnRhZ2U/IE9rLCBpdCB3b3VsZCBzYXZlIG9uZQ0K Y29uZGl0aW9uYWwgYnJhbmNoIGZvciB0aGUgY2FzZSB3aGVyZSB5b3UgZG8gbmVlZCBDVFMuIEJ1 dCBJIGRvdWJ0IHRoYXQNCmlzIHNpZ25pZmljYW50IG9uIHRoZSB0b3RhbCBDVFMgb3ZlcmhlYWQu IFRoZSBpbXBsZW1lbnRhdGlvbiBpcyBmYXIgZnJvbQ0Kb3B0aW1hbCBhbnl3YXksIGFzIHRoZSBn b2FsIHdhcyB0byBnZXQgc29tZXRoaW5nIGZ1bmN0aW9uYWwgZmlyc3QgLi4uDQoNCj4gPiArICAg ICAgIC8qIG11c3QgYmUgdGhlIGxhc3QsIGV4cGFuZGVkIGJleW9uZCBlbmQgb2Ygc3RydWN0ISAq Lw0KPiA+ICAgICAgICAgc3RydWN0IHNrY2lwaGVyX3JlcXVlc3Qgc3VicmVxOw0KPiANCj4gVGhp cyBpcyBub3Qgc3VmZmljaWVudC4gWW91IGhhdmUgdG8gYWRkIGEgVEZNIGluaXQoKSBmdW5jdGlv biB3aGljaA0KPiBzZXRzIHRoZSByZXF1ZXN0IHNpemUuIFBsZWFzZSBsb29rIGF0IHRoZSBjdHMg Y29kZSBmb3IgYW4gZXhhbXBsZS4NCj4NCkkgYmVsaWV2ZSB0aGF0IGlzIGFscmVhZHkgZG9uZSBj b3JyZWN0bHkgKHRoZW4gYWdhaW4gSSdtIG5vIGV4cGVydCkuDQpOb3RlIHRoYXQgSSBkaWQgKm5v dCogYWRkIHRoZSBzdWJyZXEsIGl0IHdhcyBhbHJlYWR5IHRoZXJlLiBJIGp1c3QNCmFkZGVkIHNv bWUgbW9yZSBzdHJ1Y3QgbWVtYmVycyB0aGF0IG5lZWRlZCB0byBiZSBhYm92ZSwgbm90IGJlbG93 Lg0KSSBvcmlnaW5hbGx5IGRpZCBub3QgZXZlbiBrbm93IGl0IGNvdWxkIGdyb3cgYmV5b25kIGl0 cyBzdHJ1Y3Qgc2l6ZS4NCg0KPiA+ICB9Ow0KPiA+DQo+ID4gQEAgLTQ3LDYgKzQ4LDcgQEAgc3Rh dGljIGludCBzZXRrZXkoc3RydWN0IGNyeXB0b19za2NpcGhlciAqcGFyZW50LCBjb25zdCB1OCAq a2V5LA0KPiA+ICAgICAgICAgc3RydWN0IHByaXYgKmN0eCA9IGNyeXB0b19za2NpcGhlcl9jdHgo cGFyZW50KTsNCj4gPiAgICAgICAgIHN0cnVjdCBjcnlwdG9fc2tjaXBoZXIgKmNoaWxkOw0KPiA+ ICAgICAgICAgc3RydWN0IGNyeXB0b19jaXBoZXIgKnR3ZWFrOw0KPiA+ICsgICAgICAgc3RydWN0 IGNyeXB0b19jaXBoZXIgKmJhc2U7DQo+ID4gICAgICAgICBpbnQgZXJyOw0KPiA+DQo+ID4gICAg ICAgICBlcnIgPSB4dHNfdmVyaWZ5X2tleShwYXJlbnQsIGtleSwga2V5bGVuKTsNCj4gPiBAQCAt NTUsOSArNTcsMTEgQEAgc3RhdGljIGludCBzZXRrZXkoc3RydWN0IGNyeXB0b19za2NpcGhlciAq cGFyZW50LCBjb25zdCB1OCAqa2V5LA0KPiA+DQo+ID4gICAgICAgICBrZXlsZW4gLz0gMjsNCj4g Pg0KPiA+IC0gICAgICAgLyogd2UgbmVlZCB0d28gY2lwaGVyIGluc3RhbmNlczogb25lIHRvIGNv bXB1dGUgdGhlIGluaXRpYWwgJ3R3ZWFrJw0KPiA+IC0gICAgICAgICogYnkgZW5jcnlwdGluZyB0 aGUgSVYgKHVzdWFsbHkgdGhlICdwbGFpbicgaXYpIGFuZCB0aGUgb3RoZXINCj4gPiAtICAgICAg ICAqIG9uZSB0byBlbmNyeXB0IGFuZCBkZWNyeXB0IHRoZSBkYXRhICovDQo+ID4gKyAgICAgICAv KiB3ZSBuZWVkIHRocmVlIGNpcGhlciBpbnN0YW5jZXM6IG9uZSB0byBjb21wdXRlIHRoZSBpbml0 aWFsICd0d2VhaycNCj4gPiArICAgICAgICAqIGJ5IGVuY3J5cHRpbmcgdGhlIElWICh1c3VhbGx5 IHRoZSAncGxhaW4nIGl2KSwgb25lIHRvIGVuY3J5cHQgYW5kDQo+ID4gKyAgICAgICAgKiBkZWNy eXB0IHRoZSBkYXRhIGFuZCBmaW5hbGx5IG9uZSB0byBlbmNyeXB0IHRoZSBsYXN0IGJsb2NrKHMp IGZvcg0KPiA+ICsgICAgICAgICogY2lwaGVyIHRleHQgc3RlYWxpbmcNCj4gPiArICAgICAgICAq Lw0KPiA+DQo+ID4gICAgICAgICAvKiB0d2VhayBjaXBoZXIsIHVzZXMgS2V5MiBpLmUuIHRoZSBz ZWNvbmQgaGFsZiBvZiAqa2V5ICovDQo+ID4gICAgICAgICB0d2VhayA9IGN0eC0+dHdlYWs7DQo+ ID4gQEAgLTc5LDYgKzgzLDEzIEBAIHN0YXRpYyBpbnQgc2V0a2V5KHN0cnVjdCBjcnlwdG9fc2tj aXBoZXIgKnBhcmVudCwgY29uc3QgdTggKmtleSwNCj4gPiAgICAgICAgIGNyeXB0b19za2NpcGhl cl9zZXRfZmxhZ3MocGFyZW50LCBjcnlwdG9fc2tjaXBoZXJfZ2V0X2ZsYWdzKGNoaWxkKSAmDQo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1JZUFRPX1RGTV9S RVNfTUFTSyk7DQo+ID4NCj4gPiArICAgICAgIC8qIEFsc28gZGF0YSBjaXBoZXIsIHVzaW5nIEtl eTEsIGZvciBhcHBseWluZyBDVFMgKi8NCj4gPiArICAgICAgIGJhc2UgPSBjdHgtPmJhc2U7DQo+ ID4gKyAgICAgICBjcnlwdG9fY2lwaGVyX2NsZWFyX2ZsYWdzKGJhc2UsIENSWVBUT19URk1fUkVR X01BU0spOw0KPiA+ICsgICAgICAgY3J5cHRvX2NpcGhlcl9zZXRfZmxhZ3MoYmFzZSwgY3J5cHRv X3NrY2lwaGVyX2dldF9mbGFncyhwYXJlbnQpICYNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIENSWVBUT19URk1fUkVRX01BU0spOw0KPiA+ICsgICAgICAgZXJyID0g Y3J5cHRvX2NpcGhlcl9zZXRrZXkoYmFzZSwga2V5LCBrZXlsZW4pOw0KPiA+ICsNCj4gPiAgICAg ICAgIHJldHVybiBlcnI7DQo+ID4gIH0NCj4gPg0KPiA+IEBAIC04OCwxMyArOTksMTIgQEAgc3Rh dGljIGludCBzZXRrZXkoc3RydWN0IGNyeXB0b19za2NpcGhlciAqcGFyZW50LCBjb25zdCB1OCAq a2V5LA0KPiA+ICAgKiBtdXRsaXBsZSBjYWxscyB0byB0aGUgJ2VjYiguLiknIGluc3RhbmNlLCB3 aGljaCB1c3VhbGx5IHdvdWxkIGJlIHNsb3dlciB0aGFuDQo+ID4gICAqIGp1c3QgZG9pbmcgdGhl IGdmMTI4bXVsX3hfYmxlKCkgY2FsbHMgYWdhaW4uDQo+ID4gICAqLw0KPiA+IC1zdGF0aWMgaW50 IHhvcl90d2VhayhzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCAqcmVxLCBib29sIHNlY29uZF9wYXNz KQ0KPiA+ICtzdGF0aWMgaW50IHhvcl90d2VhayhzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCAqcmVx LCBib29sIHNlY29uZF9wYXNzLCBsZTEyOCAqdCkNCj4gPiAgew0KPiA+ICAgICAgICAgc3RydWN0 IHJjdHggKnJjdHggPSBza2NpcGhlcl9yZXF1ZXN0X2N0eChyZXEpOw0KPiA+ICAgICAgICAgc3Ry dWN0IGNyeXB0b19za2NpcGhlciAqdGZtID0gY3J5cHRvX3NrY2lwaGVyX3JlcXRmbShyZXEpOw0K PiA+ICAgICAgICAgY29uc3QgaW50IGJzID0gWFRTX0JMT0NLX1NJWkU7DQo+ID4gICAgICAgICBz dHJ1Y3Qgc2tjaXBoZXJfd2FsayB3Ow0KPiA+IC0gICAgICAgbGUxMjggdCA9IHJjdHgtPnQ7DQo+ ID4gICAgICAgICBpbnQgZXJyOw0KPiA+DQo+ID4gICAgICAgICBpZiAoc2Vjb25kX3Bhc3MpIHsN Cj4gPiBAQCAtMTA0LDYgKzExNCw3IEBAIHN0YXRpYyBpbnQgeG9yX3R3ZWFrKHN0cnVjdCBza2Np cGhlcl9yZXF1ZXN0ICpyZXEsIGJvb2wgc2Vjb25kX3Bhc3MpDQo+ID4gICAgICAgICB9DQo+ID4g ICAgICAgICBlcnIgPSBza2NpcGhlcl93YWxrX3ZpcnQoJncsIHJlcSwgZmFsc2UpOw0KPiA+DQo+ ID4gKyAgICAgICAqdCA9IHJjdHgtPnQ7DQo+ID4gICAgICAgICB3aGlsZSAody5uYnl0ZXMpIHsN Cj4gPiAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGF2YWlsID0gdy5uYnl0ZXM7DQo+ID4g ICAgICAgICAgICAgICAgIGxlMTI4ICp3c3JjOw0KPiA+IEBAIC0xMTMsOCArMTI0LDggQEAgc3Rh dGljIGludCB4b3JfdHdlYWsoc3RydWN0IHNrY2lwaGVyX3JlcXVlc3QgKnJlcSwgYm9vbCBzZWNv bmRfcGFzcykNCj4gPiAgICAgICAgICAgICAgICAgd2RzdCA9IHcuZHN0LnZpcnQuYWRkcjsNCj4g Pg0KPiA+ICAgICAgICAgICAgICAgICBkbyB7DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg bGUxMjhfeG9yKHdkc3QrKywgJnQsIHdzcmMrKyk7DQo+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgZ2YxMjhtdWxfeF9ibGUoJnQsICZ0KTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBs ZTEyOF94b3Iod2RzdCsrLCB0LCB3c3JjKyspOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IGdmMTI4bXVsX3hfYmxlKHQsIHQpOw0KPiA+ICAgICAgICAgICAgICAgICB9IHdoaWxlICgoYXZh aWwgLT0gYnMpID49IGJzKTsNCj4gPg0KPiA+ICAgICAgICAgICAgICAgICBlcnIgPSBza2NpcGhl cl93YWxrX2RvbmUoJncsIGF2YWlsKTsNCj4gPiBAQCAtMTIzLDE0ICsxMzQsOTcgQEAgc3RhdGlj IGludCB4b3JfdHdlYWsoc3RydWN0IHNrY2lwaGVyX3JlcXVlc3QgKnJlcSwgYm9vbA0KPiBzZWNv bmRfcGFzcykNCj4gPiAgICAgICAgIHJldHVybiBlcnI7DQo+ID4gIH0NCj4gPg0KPiA+IC1zdGF0 aWMgaW50IHhvcl90d2Vha19wcmUoc3RydWN0IHNrY2lwaGVyX3JlcXVlc3QgKnJlcSkNCj4gPiAr c3RhdGljIGludCB4b3JfdHdlYWtfcHJlKHN0cnVjdCBza2NpcGhlcl9yZXF1ZXN0ICpyZXEsIGxl MTI4ICp0KQ0KPiA+ICt7DQo+ID4gKyAgICAgICByZXR1cm4geG9yX3R3ZWFrKHJlcSwgZmFsc2Us IHQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHhvcl90d2Vha19wb3N0KHN0cnVj dCBza2NpcGhlcl9yZXF1ZXN0ICpyZXEsIGxlMTI4ICp0KQ0KPiA+ICB7DQo+ID4gLSAgICAgICBy ZXR1cm4geG9yX3R3ZWFrKHJlcSwgZmFsc2UpOw0KPiA+ICsgICAgICAgcmV0dXJuIHhvcl90d2Vh ayhyZXEsIHRydWUsIHQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBlbmNyeXB0 X2ZpbmlzaF9jdHMoc3RydWN0IHNrY2lwaGVyX3JlcXVlc3QgKnJlcSkNCj4gPiArew0KPiA+ICsg ICAgICAgc3RydWN0IHJjdHggKnJjdHggPSBza2NpcGhlcl9yZXF1ZXN0X2N0eChyZXEpOw0KPiA+ ICsgICAgICAgLyogTm90IGEgbXVsdGlwbGUgb2YgY2lwaGVyIGJsb2Nrc2l6ZSwgbmVlZCBDVFMg YXBwbGllZCAqLw0KPiA+ICsgICAgICAgc3RydWN0IHByaXYgKmN0eCA9IGNyeXB0b19za2NpcGhl cl9jdHgoY3J5cHRvX3NrY2lwaGVyX3JlcXRmbShyZXEpKTsNCj4gPiArICAgICAgIGxlMTI4IGxh c3RibG9jaywgbGFzdHB0ZXh0Ow0KPiA+ICsNCj4gPiArICAgICAgIC8qIEhhbmRsZSBsYXN0IHBh cnRpYWwgYmxvY2sgLSBhcHBseSBDaXBoZXIgVGV4dCBTdGVhbGluZyAqLw0KPiA+ICsNCj4gPiAr ICAgICAgIC8qIENvcHkgbGFzdCBjaXBoZXJ0ZXh0IGJsb2NrIGp1c3QgcHJvY2Vzc2VkIHRvIGJ1 ZmZlciAgKi8NCj4gPiArICAgICAgIHNnX3Bjb3B5X3RvX2J1ZmZlcihyZXEtPmRzdCwgc2dfbmVu dHMocmVxLT5kc3QpLCAmbGFzdGJsb2NrLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg IFhUU19CTE9DS19TSVpFLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcS0+Y3J5 cHRsZW4gLSBYVFNfQkxPQ0tfU0laRSk7DQo+ID4gKyAgICAgICAvKiBTYXZlIGxhc3QgcGxhaW50 ZXh0IGJ5dGVzLCBuZXh0IHN0ZXAgbWF5IG92ZXJ3cml0ZSEhICovDQo+ID4gKyAgICAgICBzZ19w Y29weV90b19idWZmZXIocmVxLT5zcmMsIHNnX25lbnRzKHJlcS0+c3JjKSwgJmxhc3RwdGV4dCwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICByY3R4LT5yZW1fYnl0ZXMsIHJlcS0+Y3J5 cHRsZW4pOw0KPiA+ICsgICAgICAgLyogQ29weSBmaXJzdCByZW1fYnl0ZXMgb2YgY2lwaGVydGV4 dCBiZWhpbmQgbGFzdCBmdWxsIGJsb2NrICovDQo+ID4gKyAgICAgICBzZ19wY29weV9mcm9tX2J1 ZmZlcihyZXEtPmRzdCwgc2dfbmVudHMocmVxLT5kc3QpLCAmbGFzdGJsb2NrLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmN0eC0+cmVtX2J5dGVzLCByZXEtPmNyeXB0bGVuKTsN Cj4gPiArICAgICAgIC8qDQo+ID4gKyAgICAgICAgKiBDb3B5IGxhc3QgcmVtYWluaW5nIGJ5dGVz IG9mIHBsYWludGV4dCB0byBjb21iaW5lIGJ1ZmZlciwNCj4gPiArICAgICAgICAqIHJlcGxhY2lu ZyBwYXJ0IG9mIHRoZSBjaXBoZXJ0ZXh0DQo+ID4gKyAgICAgICAgKi8NCj4gPiArICAgICAgIG1l bWNweSgmbGFzdGJsb2NrLCAmbGFzdHB0ZXh0LCByY3R4LT5yZW1fYnl0ZXMpOw0KPiA+ICsgICAg ICAgLyogWFRTIGVuY3J5cHQgdGhlIGNvbWJpbmVkIGJsb2NrICovDQo+ID4gKyAgICAgICBsZTEy OF94b3IoJmxhc3RibG9jaywgJnJjdHgtPnRjdXIsICZsYXN0YmxvY2spOw0KPiA+ICsgICAgICAg Y3J5cHRvX2NpcGhlcl9lbmNyeXB0X29uZShjdHgtPmJhc2UsICh1OCAqKSZsYXN0YmxvY2ssDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1OCAqKSZsYXN0YmxvY2spOw0K PiA+ICsgICAgICAgbGUxMjhfeG9yKCZsYXN0YmxvY2ssICZyY3R4LT50Y3VyLCAmbGFzdGJsb2Nr KTsNCj4gPiArICAgICAgIC8qIFdyaXRlIGNvbWJpbmVkIGJsb2NrIHRvIGRzdCBhcyAybmQgbGFz dCBjaXBoZXJibG9jayAqLw0KPiA+ICsgICAgICAgc2dfcGNvcHlfZnJvbV9idWZmZXIocmVxLT5k c3QsIHNnX25lbnRzKHJlcS0+ZHN0KSwgJmxhc3RibG9jaywNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFhUU19CTE9DS19TSVpFLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVxLT5jcnlwdGxlbiAtIFhUU19CTE9DS19TSVpFKTsNCj4gPiArDQo+ID4gKyAgICAg ICAvKiBGaXggdXAgb3JpZ2luYWwgcmVxdWVzdCBsZW5ndGggKi8NCj4gPiArICAgICAgIHJlcS0+ Y3J5cHRsZW4gKz0gcmN0eC0+cmVtX2J5dGVzOw0KPiA+ICsgICAgICAgcmV0dXJuOw0KPiA+ICB9 DQo+ID4NCj4gPiAtc3RhdGljIGludCB4b3JfdHdlYWtfcG9zdChzdHJ1Y3Qgc2tjaXBoZXJfcmVx dWVzdCAqcmVxKQ0KPiA+ICtzdGF0aWMgdm9pZCBkZWNyeXB0X2ZpbmlzaF9jdHMoc3RydWN0IHNr Y2lwaGVyX3JlcXVlc3QgKnJlcSkNCj4gPiAgew0KPiA+IC0gICAgICAgcmV0dXJuIHhvcl90d2Vh ayhyZXEsIHRydWUpOw0KPiA+ICsgICAgICAgc3RydWN0IHJjdHggKnJjdHggPSBza2NpcGhlcl9y ZXF1ZXN0X2N0eChyZXEpOw0KPiA+ICsgICAgICAgLyogTm90IGEgbXVsdGlwbGUgb2YgY2lwaGVy IGJsb2Nrc2l6ZSwgbmVlZCBDVFMgYXBwbGllZCAqLw0KPiA+ICsgICAgICAgc3RydWN0IHByaXYg KmN0eCA9IGNyeXB0b19za2NpcGhlcl9jdHgoY3J5cHRvX3NrY2lwaGVyX3JlcXRmbShyZXEpKTsN Cj4gPiArICAgICAgIGxlMTI4IHRuZXh0LCBsYXN0YmxvY2ssIGxhc3RjdGV4dDsNCj4gPiArDQo+ ID4gKyAgICAgICAvKiBIYW5kbGUgbGFzdCAyIChwYXJ0aWFsKSBibG9ja3MgLSBhcHBseSBDaXBo ZXIgVGV4dCBTdGVhbGluZyAqLw0KPiA+ICsNCj4gPiArICAgICAgIC8qIENvcHkgbGFzdCBmdWxs IGNpcGhlcnRleHQgYmxvY2sgdG8gYnVmZmVyICAqLw0KPiA+ICsgICAgICAgc2dfcGNvcHlfdG9f YnVmZmVyKHJlcS0+c3JjLCBzZ19uZW50cyhyZXEtPnNyYyksICZsYXN0YmxvY2ssDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgWFRTX0JMT0NLX1NJWkUsIHJlcS0+Y3J5cHRsZW4pOw0K PiA+ICsgICAgICAgLyogRGVjcnlwdCBsYXN0IGZ1bGwgYmxvY2sgdXNpbmcgKm5leHQqIHR3ZWFr ICovDQo+ID4gKyAgICAgICBnZjEyOG11bF94X2JsZSgmdG5leHQsICZyY3R4LT50Y3VyKTsNCj4g PiArICAgICAgIGxlMTI4X3hvcigmbGFzdGJsb2NrLCAmdG5leHQsICZsYXN0YmxvY2spOw0KPiA+ ICsgICAgICAgY3J5cHRvX2NpcGhlcl9kZWNyeXB0X29uZShjdHgtPmJhc2UsICh1OCAqKSZsYXN0 YmxvY2ssDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1OCAqKSZsYXN0 YmxvY2spOw0KPiA+ICsgICAgICAgbGUxMjhfeG9yKCZsYXN0YmxvY2ssICZ0bmV4dCwgJmxhc3Ri bG9jayk7DQo+ID4gKyAgICAgICAvKiBTYXZlIGxhc3QgY2lwaGVydGV4dCBieXRlcywgbmV4dCBz dGVwIG1heSBvdmVyd3JpdGUhISAqLw0KPiA+ICsgICAgICAgc2dfcGNvcHlfdG9fYnVmZmVyKHJl cS0+c3JjLCBzZ19uZW50cyhyZXEtPnNyYyksICZsYXN0Y3RleHQsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgcmN0eC0+cmVtX2J5dGVzLCByZXEtPmNyeXB0bGVuICsgWFRTX0JMT0NL X1NJWkUpOw0KPiA+ICsgICAgICAgLyogQ29weSBmaXJzdCByZW1fYnl0ZXMgb2YgdGhpcyBwdGV4 dCBhcyBsYXN0IHBhcnRpYWwgYmxvY2sgKi8NCj4gPiArICAgICAgIHNnX3Bjb3B5X2Zyb21fYnVm ZmVyKHJlcS0+ZHN0LCBzZ19uZW50cyhyZXEtPmRzdCksICZsYXN0YmxvY2ssDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICByY3R4LT5yZW1fYnl0ZXMsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXEtPmNyeXB0bGVuICsgWFRTX0JMT0NLX1NJWkUpOw0KPiA+ICsg ICAgICAgLyoNCj4gPiArICAgICAgICAqIENvcHkgbGFzdCByZW1haW5pbmcgYnl0ZXMgb2YgInBs YWludGV4dCIgdG8gY29tYmluZSBidWZmZXIsDQo+ID4gKyAgICAgICAgKiByZXBsYWNpbmcgcGFy dCBvZiB0aGUgY2lwaGVydGV4dA0KPiA+ICsgICAgICAgICovDQo+ID4gKyAgICAgICBtZW1jcHko Jmxhc3RibG9jaywgJmxhc3RjdGV4dCwgcmN0eC0+cmVtX2J5dGVzKTsNCj4gPiArICAgICAgIC8q IFhUUyBkZWNyeXB0IHRoZSBjb21iaW5lZCBibG9jayAqLw0KPiA+ICsgICAgICAgbGUxMjhfeG9y KCZsYXN0YmxvY2ssICZyY3R4LT50Y3VyLCAmbGFzdGJsb2NrKTsNCj4gPiArICAgICAgIGNyeXB0 b19jaXBoZXJfZGVjcnlwdF9vbmUoY3R4LT5iYXNlLCAodTggKikmbGFzdGJsb2NrLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodTggKikmbGFzdGJsb2NrKTsNCj4gPiAr ICAgICAgIGxlMTI4X3hvcigmbGFzdGJsb2NrLCAmcmN0eC0+dGN1ciwgJmxhc3RibG9jayk7DQo+ ID4gKyAgICAgICAvKiBXcml0ZSBjb21iaW5lZCBibG9jayB0byBkc3QgYXMgMm5kIGxhc3QgcGxh aW50ZXh0IGJsb2NrICovDQo+ID4gKyAgICAgICBzZ19wY29weV9mcm9tX2J1ZmZlcihyZXEtPmRz dCwgc2dfbmVudHMocmVxLT5kc3QpLCAmbGFzdGJsb2NrLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWFRTX0JMT0NLX1NJWkUsIHJlcS0+Y3J5cHRsZW4pOw0KPiA+ICsNCj4gPiAr ICAgICAgIC8qIEZpeCB1cCBvcmlnaW5hbCByZXF1ZXN0IGxlbmd0aCAqLw0KPiA+ICsgICAgICAg cmVxLT5jcnlwdGxlbiArPSByY3R4LT5yZW1fYnl0ZXMgKyBYVFNfQkxPQ0tfU0laRTsNCj4gPiAr ICAgICAgIHJldHVybjsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0YXRpYyB2b2lkIGNyeXB0X2RvbmUo c3RydWN0IGNyeXB0b19hc3luY19yZXF1ZXN0ICphcmVxLCBpbnQgZXJyKQ0KPiA+IEBAIC0xMzks OSArMjMzLDE2IEBAIHN0YXRpYyB2b2lkIGNyeXB0X2RvbmUoc3RydWN0IGNyeXB0b19hc3luY19y ZXF1ZXN0ICphcmVxLCBpbnQgZXJyKQ0KPiA+DQo+ID4gICAgICAgICBpZiAoIWVycikgew0KPiA+ ICAgICAgICAgICAgICAgICBzdHJ1Y3QgcmN0eCAqcmN0eCA9IHNrY2lwaGVyX3JlcXVlc3RfY3R4 KHJlcSk7DQo+ID4gKyAgICAgICAgICAgICAgIGxlMTI4IHQ7DQo+ID4NCj4gPiAgICAgICAgICAg ICAgICAgcmN0eC0+c3VicmVxLmJhc2UuZmxhZ3MgJj0gfkNSWVBUT19URk1fUkVRX01BWV9TTEVF UDsNCj4gPiAtICAgICAgICAgICAgICAgZXJyID0geG9yX3R3ZWFrX3Bvc3QocmVxKTsNCj4gPiAr ICAgICAgICAgICAgICAgZXJyID0geG9yX3R3ZWFrX3Bvc3QocmVxLCAmdCk7DQo+ID4gKw0KPiA+ ICsgICAgICAgICAgICAgICBpZiAodW5saWtlbHkoIWVyciAmJiByY3R4LT5yZW1fYnl0ZXMpKSB7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmN0eC0+aXNfZW5jcnlwdCA/DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICBlbmNyeXB0X2ZpbmlzaF9jdHMocmVxKSA6DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICBkZWNyeXB0X2ZpbmlzaF9jdHMocmVxKTsNCj4gPiArICAg ICAgICAgICAgICAgfQ0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gICAgICAgICBza2NpcGhlcl9y ZXF1ZXN0X2NvbXBsZXRlKHJlcSwgZXJyKTsNCj4gPiBAQCAtMTY3LDEwICsyNjgsNDUgQEAgc3Rh dGljIGludCBlbmNyeXB0KHN0cnVjdCBza2NpcGhlcl9yZXF1ZXN0ICpyZXEpDQo+ID4gICAgICAg ICBzdHJ1Y3QgcmN0eCAqcmN0eCA9IHNrY2lwaGVyX3JlcXVlc3RfY3R4KHJlcSk7DQo+ID4gICAg ICAgICBzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCAqc3VicmVxID0gJnJjdHgtPnN1YnJlcTsNCj4g Pg0KPiA+ICsgICAgICAgLyogSUVFRSBQMTYxOSBkb2VzIG5vdCBhbGxvdyBsZXNzIGRhdGEgdGhh biBibG9jayBjaXBoZXIgYmxvY2tzaXplICovDQo+ID4gKyAgICAgICBpZiAodW5saWtlbHkocmVx LT5jcnlwdGxlbiA8IFhUU19CTE9DS19TSVpFKSkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJu IC1FSU5WQUw7DQo+ID4gKw0KPiA+ICAgICAgICAgaW5pdF9jcnlwdChyZXEpOw0KPiA+IC0gICAg ICAgcmV0dXJuIHhvcl90d2Vha19wcmUocmVxKSA/Og0KPiA+ICsNCj4gPiArICAgICAgIC8qIHZh bGlkIGJ5dGVzIGluIGxhc3QgY3J5cHRvIGJsb2NrICovDQo+ID4gKyAgICAgICByY3R4LT5yZW1f Ynl0ZXMgPSByZXEtPmNyeXB0bGVuICYgKFhUU19CTE9DS19TSVpFIC0gMSk7DQo+ID4gKyAgICAg ICBpZiAodW5saWtlbHkocmN0eC0+cmVtX2J5dGVzKSkgew0KPiA+ICsgICAgICAgICAgICAgICAv KiBOb3QgYSBtdWx0aXBsZSBvZiBjaXBoZXIgYmxvY2tzaXplLCBuZWVkIENUUyBhcHBsaWVkICov DQo+ID4gKyAgICAgICAgICAgICAgIGludCBlcnIgPSAwOw0KPiA+ICsNCj4gPiArICAgICAgICAg ICAgICAgLyogRmlyc3QgcHJvY2VzcyBhbGwgKmZ1bGwqIGNpcGhlciBibG9ja3MgKi8NCj4gPiAr ICAgICAgICAgICAgICAgcmVxLT5jcnlwdGxlbiAtPSByY3R4LT5yZW1fYnl0ZXM7DQo+ID4gKyAg ICAgICAgICAgICAgIHN1YnJlcS0+Y3J5cHRsZW4gLT0gcmN0eC0+cmVtX2J5dGVzOw0KPiA+ICsg ICAgICAgICAgICAgICBlcnIgPSB4b3JfdHdlYWtfcHJlKHJlcSwgJnJjdHgtPnRjdXIpOw0KPiA+ ICsgICAgICAgICAgICAgICBpZiAoZXJyKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGdv dG8gZW5jcnlwdF9leGl0Ow0KPiA+ICsgICAgICAgICAgICAgICByY3R4LT5pc19lbmNyeXB0ID0g MTsNCj4gPiArICAgICAgICAgICAgICAgZXJyID0gY3J5cHRvX3NrY2lwaGVyX2VuY3J5cHQoc3Vi cmVxKTsNCj4gPiArICAgICAgICAgICAgICAgaWYgKGVycikNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBnb3RvIGVuY3J5cHRfZXhpdDsNCj4gPiArICAgICAgICAgICAgICAgZXJyID0geG9y X3R3ZWFrX3Bvc3QocmVxLCAmcmN0eC0+dGN1cik7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChl cnIpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBlbmNyeXB0X2V4aXQ7DQo+ID4g Kw0KPiA+ICsgICAgICAgICAgICAgICBlbmNyeXB0X2ZpbmlzaF9jdHMocmVxKTsNCj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4gKw0KPiA+ICtlbmNyeXB0X2V4aXQ6DQo+ID4gKyAg ICAgICAgICAgICAgIC8qIEZpeCB1cCBvcmlnaW5hbCByZXF1ZXN0IGxlbmd0aCAqLw0KPiA+ICsg ICAgICAgICAgICAgICByZXEtPmNyeXB0bGVuICs9IHJjdHgtPnJlbV9ieXRlczsNCj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIGVycjsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAg ICAvKiBNdWx0aXBsZSBvZiBjaXBoZXIgYmxvY2tzaXplLCBubyBDVFMgcmVxdWlyZWQgKi8NCj4g PiArICAgICAgIHJldHVybiB4b3JfdHdlYWtfcHJlKHJlcSwgJnJjdHgtPnRjdXIpID86DQo+ID4g ICAgICAgICAgICAgICAgIGNyeXB0b19za2NpcGhlcl9lbmNyeXB0KHN1YnJlcSkgPzoNCj4gPiAt ICAgICAgICAgICAgICAgeG9yX3R3ZWFrX3Bvc3QocmVxKTsNCj4gPiArICAgICAgICAgICAgICAg eG9yX3R3ZWFrX3Bvc3QocmVxLCAmcmN0eC0+dGN1cik7DQo+ID4gIH0NCj4gPg0KPiA+ICBzdGF0 aWMgaW50IGRlY3J5cHQoc3RydWN0IHNrY2lwaGVyX3JlcXVlc3QgKnJlcSkNCj4gPiBAQCAtMTc4 LDEwICszMTQsNTAgQEAgc3RhdGljIGludCBkZWNyeXB0KHN0cnVjdCBza2NpcGhlcl9yZXF1ZXN0 ICpyZXEpDQo+ID4gICAgICAgICBzdHJ1Y3QgcmN0eCAqcmN0eCA9IHNrY2lwaGVyX3JlcXVlc3Rf Y3R4KHJlcSk7DQo+ID4gICAgICAgICBzdHJ1Y3Qgc2tjaXBoZXJfcmVxdWVzdCAqc3VicmVxID0g JnJjdHgtPnN1YnJlcTsNCj4gPg0KPiA+ICsgICAgICAgLyogSUVFRSBQMTYxOSBkb2VzIG5vdCBh bGxvdyBsZXNzIGRhdGEgdGhhbiBibG9jayBjaXBoZXIgYmxvY2tzaXplICovDQo+ID4gKyAgICAg ICBpZiAodW5saWtlbHkocmVxLT5jcnlwdGxlbiA8IFhUU19CTE9DS19TSVpFKSkNCj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICAgICAgICAgaW5pdF9jcnlw dChyZXEpOw0KPiA+IC0gICAgICAgcmV0dXJuIHhvcl90d2Vha19wcmUocmVxKSA/Og0KPiA+ICsN Cj4gPiArICAgICAgIC8qIHZhbGlkIGJ5dGVzIGluIGxhc3QgY3J5cHRvIGJsb2NrICovDQo+ID4g KyAgICAgICByY3R4LT5yZW1fYnl0ZXMgPSByZXEtPmNyeXB0bGVuICYgKFhUU19CTE9DS19TSVpF IC0gMSk7DQo+ID4gKyAgICAgICBpZiAodW5saWtlbHkocmN0eC0+cmVtX2J5dGVzKSkgew0KPiA+ ICsgICAgICAgICAgICAgICBpbnQgZXJyID0gMDsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAg IC8qIEZpcnN0IHByb2Nlc3MgYWxsIGJ1dCB0aGUgbGFzdCghKSBmdWxsIGNpcGhlciBibG9ja3Mg Ki8NCj4gPiArICAgICAgICAgICAgICAgcmVxLT5jcnlwdGxlbiAtPSByY3R4LT5yZW1fYnl0ZXMg KyBYVFNfQkxPQ0tfU0laRTsNCj4gPiArICAgICAgICAgICAgICAgc3VicmVxLT5jcnlwdGxlbiAt PSByY3R4LT5yZW1fYnl0ZXMgKyBYVFNfQkxPQ0tfU0laRTsNCj4gPiArICAgICAgICAgICAgICAg LyogTWF5IG5vdCBoYXZlIGFueSBmdWxsIGJsb2NrcyB0byBwcm9jZXNzIGhlcmUgKi8NCj4gPiAr ICAgICAgICAgICAgICAgaWYgKHJlcS0+Y3J5cHRsZW4pIHsNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICBlcnIgPSB4b3JfdHdlYWtfcHJlKHJlcSwgJnJjdHgtPnRjdXIpOw0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIGlmIChlcnIpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnb3RvIGRlY3J5cHRfZXhpdDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBy Y3R4LT5pc19lbmNyeXB0ID0gMDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSBj cnlwdG9fc2tjaXBoZXJfZGVjcnlwdChzdWJyZXEpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIGlmIChlcnIpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGRl Y3J5cHRfZXhpdDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBlcnIgPSB4b3JfdHdlYWtf cG9zdChyZXEsICZyY3R4LT50Y3VyKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAo ZXJyKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBkZWNyeXB0X2V4 aXQ7DQo+ID4gKyAgICAgICAgICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgLyogU3RhcnQgZnJvbSBpbml0aWFsIHR3ZWFrICovDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgcmN0eC0+dGN1ciA9IHJjdHgtPnQ7DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4g PiArDQo+ID4gKyAgICAgICAgICAgICAgIGRlY3J5cHRfZmluaXNoX2N0cyhyZXEpOw0KPiA+ICsg ICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiArDQo+ID4gK2RlY3J5cHRfZXhpdDoNCj4gPiAr ICAgICAgICAgICAgICAgLyogRml4IHVwIG9yaWdpbmFsIHJlcXVlc3QgbGVuZ3RoICovDQo+ID4g KyAgICAgICAgICAgICAgIHJlcS0+Y3J5cHRsZW4gKz0gcmN0eC0+cmVtX2J5dGVzICsgWFRTX0JM T0NLX1NJWkU7DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBlcnI7DQo+ID4gKyAgICAgICB9 DQo+ID4gKw0KPiA+ICsgICAgICAgLyogTXVsdGlwbGUgb2YgY2lwaGVyIGJsb2Nrc2l6ZSwgbm8g Q1RTIHJlcXVpcmVkICovDQo+ID4gKyAgICAgICByZXR1cm4geG9yX3R3ZWFrX3ByZShyZXEsICZy Y3R4LT50Y3VyKSA/Og0KPiA+ICAgICAgICAgICAgICAgICBjcnlwdG9fc2tjaXBoZXJfZGVjcnlw dChzdWJyZXEpID86DQo+ID4gLSAgICAgICAgICAgICAgIHhvcl90d2Vha19wb3N0KHJlcSk7DQo+ ID4gKyAgICAgICAgICAgICAgIHhvcl90d2Vha19wb3N0KHJlcSwgJnJjdHgtPnRjdXIpOw0KPiA+ ICB9DQo+ID4NCj4gPiAgc3RhdGljIGludCBpbml0X3RmbShzdHJ1Y3QgY3J5cHRvX3NrY2lwaGVy ICp0Zm0pDQo+ID4gQEAgLTE5MSw2ICszNjcsNyBAQCBzdGF0aWMgaW50IGluaXRfdGZtKHN0cnVj dCBjcnlwdG9fc2tjaXBoZXIgKnRmbSkNCj4gPiAgICAgICAgIHN0cnVjdCBwcml2ICpjdHggPSBj cnlwdG9fc2tjaXBoZXJfY3R4KHRmbSk7DQo+ID4gICAgICAgICBzdHJ1Y3QgY3J5cHRvX3NrY2lw aGVyICpjaGlsZDsNCj4gPiAgICAgICAgIHN0cnVjdCBjcnlwdG9fY2lwaGVyICp0d2VhazsNCj4g PiArICAgICAgIHN0cnVjdCBjcnlwdG9fY2lwaGVyICpiYXNlOw0KPiA+DQo+ID4gICAgICAgICBj aGlsZCA9IGNyeXB0b19zcGF3bl9za2NpcGhlcigmaWN0eC0+c3Bhd24pOw0KPiA+ICAgICAgICAg aWYgKElTX0VSUihjaGlsZCkpDQo+ID4gQEAgLTIwNiw2ICszODMsMTYgQEAgc3RhdGljIGludCBp bml0X3RmbShzdHJ1Y3QgY3J5cHRvX3NrY2lwaGVyICp0Zm0pDQo+ID4NCj4gPiAgICAgICAgIGN0 eC0+dHdlYWsgPSB0d2VhazsNCj4gPg0KPiA+ICsgICAgICAgYmFzZSA9IGNyeXB0b19hbGxvY19j aXBoZXIoaWN0eC0+bmFtZSwgMCwgMCk7DQo+ID4gKyAgICAgICBpZiAoSVNfRVJSKGJhc2UpKSB7 DQo+ID4gKyAgICAgICAgICAgICAgIGNyeXB0b19mcmVlX3NrY2lwaGVyKGN0eC0+Y2hpbGQpOw0K PiA+ICsgICAgICAgICAgICAgICBjcnlwdG9fZnJlZV9jaXBoZXIoY3R4LT50d2Vhayk7DQo+ID4g KyAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJSKGJhc2UpOw0KPiA+ICsgICAgICAgfQ0KPiA+ ICsNCj4gPiArICAgICAgIGN0eC0+YmFzZSA9IGJhc2U7DQo+ID4gKw0KPiA+ICsgICAgICAgLyog c3RydWN0IHJjdHggZXhwYW5kZWQgYnkgc3ViIGNpcGhlciByZXF1ZXN0IHNpemUhICovDQo+ID4g ICAgICAgICBjcnlwdG9fc2tjaXBoZXJfc2V0X3JlcXNpemUodGZtLCBjcnlwdG9fc2tjaXBoZXJf cmVxc2l6ZShjaGlsZCkgKw0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKHN0cnVjdCByY3R4KSk7DQo+ID4NCj4gPiBAQCAtMjE4LDYgKzQwNSw3IEBA IHN0YXRpYyB2b2lkIGV4aXRfdGZtKHN0cnVjdCBjcnlwdG9fc2tjaXBoZXIgKnRmbSkNCj4gPg0K PiA+ICAgICAgICAgY3J5cHRvX2ZyZWVfc2tjaXBoZXIoY3R4LT5jaGlsZCk7DQo+ID4gICAgICAg ICBjcnlwdG9fZnJlZV9jaXBoZXIoY3R4LT50d2Vhayk7DQo+ID4gKyAgICAgICBjcnlwdG9fZnJl ZV9jaXBoZXIoY3R4LT5iYXNlKTsNCj4gPiAgfQ0KPiA+DQo+ID4gIHN0YXRpYyB2b2lkIGZyZWUo c3RydWN0IHNrY2lwaGVyX2luc3RhbmNlICppbnN0KQ0KPiA+IEBAIC0zMTQsMTEgKzUwMiwxMiBA QCBzdGF0aWMgaW50IGNyZWF0ZShzdHJ1Y3QgY3J5cHRvX3RlbXBsYXRlICp0bXBsLCBzdHJ1Y3Qg cnRhdHRyDQo+ICoqdGIpDQo+ID4NCj4gPiAgICAgICAgIGluc3QtPmFsZy5iYXNlLmNyYV9mbGFn cyA9IGFsZy0+YmFzZS5jcmFfZmxhZ3MgJiBDUllQVE9fQUxHX0FTWU5DOw0KPiA+ICAgICAgICAg aW5zdC0+YWxnLmJhc2UuY3JhX3ByaW9yaXR5ID0gYWxnLT5iYXNlLmNyYV9wcmlvcml0eTsNCj4g PiAtICAgICAgIGluc3QtPmFsZy5iYXNlLmNyYV9ibG9ja3NpemUgPSBYVFNfQkxPQ0tfU0laRTsN Cj4gPiArICAgICAgIGluc3QtPmFsZy5iYXNlLmNyYV9ibG9ja3NpemUgPSAxOw0KPiANCj4gSSBk b24ndCB0aGluayB0aGlzIGlzIG5lY2Vzc2FyeSBvciBjb3JyZWN0Lg0KPiANCj4gPiAgICAgICAg IGluc3QtPmFsZy5iYXNlLmNyYV9hbGlnbm1hc2sgPSBhbGctPmJhc2UuY3JhX2FsaWdubWFzayB8 DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fYWxpZ25vZl9f KHU2NCkgLSAxKTsNCj4gPg0KPiA+ICAgICAgICAgaW5zdC0+YWxnLml2c2l6ZSA9IFhUU19CTE9D S19TSVpFOw0KPiA+ICsgICAgICAgaW5zdC0+YWxnLmNodW5rc2l6ZSA9IFhUU19CTE9DS19TSVpF Ow0KPiANCj4gLi4uIGFuZCB5b3UgZG9uJ3QgbmVlZCB0aGlzIGlmIHlvdSBkcm9wIHRoZSBhYm92 ZSBjaGFuZ2UuDQo+IA0KPiA+ICAgICAgICAgaW5zdC0+YWxnLm1pbl9rZXlzaXplID0gY3J5cHRv X3NrY2lwaGVyX2FsZ19taW5fa2V5c2l6ZShhbGcpICogMjsNCj4gPiAgICAgICAgIGluc3QtPmFs Zy5tYXhfa2V5c2l6ZSA9IGNyeXB0b19za2NpcGhlcl9hbGdfbWF4X2tleXNpemUoYWxnKSAqIDI7 DQo+ID4NCj4gPiAtLQ0KPiA+IDEuOC4zLjENCg0KUmVnYXJkcywNClBhc2NhbCB2YW4gTGVldXdl bg0KU2lsaWNvbiBJUCBBcmNoaXRlY3QsIE11bHRpLVByb3RvY29sIEVuZ2luZXMgQCBWZXJpbWF0 cml4DQp3d3cuaW5zaWRlc2VjdXJlLmNvbQ0KDQo=