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.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 C011AC04AAA for ; Mon, 6 May 2019 08:46:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6BB33205C9 for ; Mon, 6 May 2019 08:46:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=analog.onmicrosoft.com header.i=@analog.onmicrosoft.com header.b="ewL7kiJ0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725851AbfEFIqZ (ORCPT ); Mon, 6 May 2019 04:46:25 -0400 Received: from mail-eopbgr780054.outbound.protection.outlook.com ([40.107.78.54]:50176 "EHLO NAM03-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725855AbfEFIqZ (ORCPT ); Mon, 6 May 2019 04:46:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector1-analog-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ygegJQMkzheauurh2sj8GsbrKOw5Zy+DgxlMGO0NZL4=; b=ewL7kiJ0joR9uZEG2ak/ni6itwhjgokyEIs7ZzA+pnzo3Rt0l86XzcuSGNwCuZm2cfpHMpriXdPiQV7Q9zs1qQq3267yV01KFtwn6rp96DBnSnB7/CnSYcD+veO2TV8pTzfPoQSe+CyJG8RXx9QG1JU9Ep9NWbs38uu1YHxamuA= Received: from CY4PR03CA0015.namprd03.prod.outlook.com (2603:10b6:903:33::25) by DM2PR03MB558.namprd03.prod.outlook.com (2a01:111:e400:241d::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.12; Mon, 6 May 2019 08:45:22 +0000 Received: from SN1NAM02FT057.eop-nam02.prod.protection.outlook.com (2a01:111:f400:7e44::206) by CY4PR03CA0015.outlook.office365.com (2603:10b6:903:33::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1856.10 via Frontend Transport; Mon, 6 May 2019 08:45:21 +0000 Authentication-Results: spf=pass (sender IP is 137.71.25.57) smtp.mailfrom=analog.com; st.com; dkim=none (message not signed) header.d=none;st.com; dmarc=bestguesspass action=none header.from=analog.com; Received-SPF: Pass (protection.outlook.com: domain of analog.com designates 137.71.25.57 as permitted sender) receiver=protection.outlook.com; client-ip=137.71.25.57; helo=nwd2mta2.analog.com; Received: from nwd2mta2.analog.com (137.71.25.57) by SN1NAM02FT057.mail.protection.outlook.com (10.152.73.105) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.1856.11 via Frontend Transport; Mon, 6 May 2019 08:45:21 +0000 Received: from NWD2HUBCAS8.ad.analog.com (nwd2hubcas8.ad.analog.com [10.64.69.108]) by nwd2mta2.analog.com (8.13.8/8.13.8) with ESMTP id x468jK3p000488 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=OK); Mon, 6 May 2019 01:45:20 -0700 Received: from NWD2MBX7.ad.analog.com ([fe80::190e:f9c1:9a22:9663]) by NWD2HUBCAS8.ad.analog.com ([fe80::90a0:b93e:53c6:afee%12]) with mapi id 14.03.0415.000; Mon, 6 May 2019 04:45:20 -0400 From: "Ardelean, Alexandru" To: "jic23@kernel.org" CC: "lars@metafoo.de" , "linux-iio@vger.kernel.org" , "fabrice.gasnier@st.com" Subject: Re: [PATCH][V2] iio: Move attach/detach of the poll func to the core Thread-Topic: [PATCH][V2] iio: Move attach/detach of the poll func to the core Thread-Index: AQHUl6Rtux5BfblZK0KILFrjSMSxC6Zd5iqAgAD9qwA= Date: Mon, 6 May 2019 08:45:20 +0000 Message-ID: <7826097227a8ea52efd2c87cc81b7b4e6ff4d061.camel@analog.com> References: <20181219140912.22582-1-alexandru.ardelean@analog.com> <20190505183723.4b439c56@archlinux> In-Reply-To: <20190505183723.4b439c56@archlinux> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.50.1.244] x-adiroutedonprem: True Content-Type: text/plain; charset="utf-8" Content-ID: <8B321A6CF974A848B9567E6BED75FE5B@analog.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:137.71.25.57;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(376002)(39860400002)(396003)(136003)(346002)(2980300002)(54534003)(189003)(199004)(54906003)(2906002)(446003)(436003)(486006)(11346002)(126002)(476003)(246002)(2616005)(8936002)(8676002)(7736002)(7636002)(305945005)(6916009)(47776003)(2351001)(106002)(36756003)(6246003)(4326008)(118296001)(86362001)(30864003)(356004)(5660300002)(50466002)(2486003)(23676004)(7696005)(76176011)(316002)(102836004)(3846002)(6116002)(478600001)(14444005)(5024004)(5640700003)(426003)(14454004)(53946003)(2501003)(336012)(186003)(26005)(70586007)(70206006)(229853002);DIR:OUT;SFP:1101;SCL:1;SRVR:DM2PR03MB558;H:nwd2mta2.analog.com;FPR:;SPF:Pass;LANG:en;PTR:nwd2mail11.analog.com;MX:1;A:1; X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0cb53f46-8c9b-4b09-18ee-08d6d1ff2cb8 X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4709054)(2017052603328)(7193020);SRVR:DM2PR03MB558; X-MS-TrafficTypeDiagnostic: DM2PR03MB558: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-Forefront-PRVS: 0029F17A3F X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: SZW3A4iXNOawltb29XppvCTtle7oU1sUW+wfLWwJp817b8vmxk0dzQMQl42YKzZVFbChmVsvxx5MGoNkps24RstOvzRP96OhToB7pYqt9kHLJHChzONBNEkrLF0L5/bLTv+ScznR0mEi1a1kJ9RlkKODw+eV5IQtDKkrOTxiMAXzvLqWzFz4pAalMMT6/cRlEpbr3YPM2jlcG8U1y2+wiFFAnJ3MxRjKg092+4f9s8JOPmtcLGaKIFGz3VYFVxbfjyuAAeIxUpxtvP8ULNJZUOycOdKr6bw/JPtQIcLVydn9I2NQ+SoL3Bf8ylWXHlw2L7hncO8k+RPcqG/3kAs9b+cKkgs0xiSAc04hZ3/EuBzb9QpVhtaTNxZn+epuwtxE5tyVU4yFEEVbp40zFQmd9aYOtDJJ8o9LUPpgenAHgoo= X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2019 08:45:21.3769 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0cb53f46-8c9b-4b09-18ee-08d6d1ff2cb8 X-MS-Exchange-CrossTenant-Id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=eaa689b4-8f87-40e0-9c6f-7228de4d754a;Ip=[137.71.25.57];Helo=[nwd2mta2.analog.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR03MB558 Sender: linux-iio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-iio@vger.kernel.org T24gU3VuLCAyMDE5LTA1LTA1IGF0IDE4OjM3ICswMTAwLCBKb25hdGhhbiBDYW1lcm9uIHdyb3Rl Og0KPiANCj4gDQo+IE9uIFdlZCwgMTkgRGVjIDIwMTggMTY6MDk6MTIgKzAyMDANCj4gQWxleGFu ZHJ1IEFyZGVsZWFuIDxhbGV4YW5kcnUuYXJkZWxlYW5AYW5hbG9nLmNvbT4gd3JvdGU6DQo+IA0K PiA+IEFsbCBkZXZpY2VzIHVzaW5nIGEgdHJpZ2dlcmVkIGJ1ZmZlciBuZWVkIHRvIGF0dGFjaCBh bmQgZGV0YWNoIHRoZQ0KPiA+IHRyaWdnZXINCj4gPiB0byB0aGUgZGV2aWNlIGluIG9yZGVyIHRv IHByb3Blcmx5IHdvcmsuIEluc3RlYWQgb2YgZG9pbmcgdGhpcyBpbiBlYWNoDQo+ID4gYW5kDQo+ ID4gZXZlcnkgZHJpdmVyIGJ5IGhhbmQgbW92ZSB0aGlzIGludG8gdGhlIGNvcmUuDQo+ID4gDQo+ ID4gU2lnbmVkLW9mZi1ieTogTGFycy1QZXRlciBDbGF1c2VuIDxsYXJzQG1ldGFmb28uZGU+DQo+ ID4gU2lnbmVkLW9mZi1ieTogQWxleGFuZHJ1IEFyZGVsZWFuIDxhbGV4YW5kcnUuYXJkZWxlYW5A YW5hbG9nLmNvbT4NCj4gDQo+IEhpIEFsZXgsDQo+IA0KPiBGaXJzdGx5IGFwb2xvZ2llcyB0aGF0 IHRoaXMgaXMgYWx3YXlzIGF0IHRoZSBiYWNrIG9mIG15IHF1ZXVlLg0KPiANCj4gQW55aG93LCBt eSBvbmUgcXVlc3Rpb24gaXMgYXJvdW5kIHdoZXJlIHRoZSBuZXcgY2FsbCB0bw0KPiBpaW9fZGV0 YWNoX3BvbGxmdW5jDQo+IGlzLiAgVG8gcmV2ZXJzZSB0aGUgb3JkZXJpbmcgb2YgdGhlIHNldHVw IHBhdGggaXQgc2hvdWxkIGJlIGJlZm9yZSB0aGUNCj4gaW5kaXZpZHVhbCBidWZmZXJfZGlzYWJs ZXMsIGJ1dCB5b3UgaGF2ZSBpdCBhZnRlci4NCj4gDQo+IEknbGwgcmV2aWV3IHRoZSByZXN0IG9u IHRoZSBhc3N1bXB0aW9uIHdlJ2xsIHJlc29sdmUgdGhhdC4NCj4gDQo+IFNvIHRoZSBvbmx5IGRp ZmZlcmVuY2UgaW50ZW5kZWQgaGVyZSBpcyB0byBkcm9wIHRoZSBhdHRhY2ggb3V0IG9mDQo+IHBv c3RfZW5hYmxlIGFuZCBoYXZlIGl0IGp1c3QgYmVmb3JlIGl0LCBhbmQgdGhlIGRldGFjaCBvdXQg b2YgcHJlZGlzYWJsZQ0KPiBhbmQgaGF2ZSBpdCBqdXN0IGFmdGVyIHRoYXQuDQo+IA0KPiBUaGVy ZSBhcmUgYSBmZXcgZHJpdmVycyBpbiBoZXJlIHdoZXJlIHRoZSBmdW5kYW1lbnRhbCBmbG93IGNo YW5nZXMuDQo+IFRvIG15IG1pbmQsIHRoZSBydWxlcyBhcmU6DQo+IA0KPiAxKSBBbnl0aGluZyB1 c2VkIGluIHRoZSBwb2xsZnVuYyBzaG91bGQgYmUgc2V0dXAgYmVmb3JlIGl0IGlzIGF0dGFjaGVk Lg0KPiAyKSBBbnl0aGluZyByZWxhdGVkIHRvIHNldHVwIGZvIHRoZSBmbG93IHRoYXQgbGVhZHMg dG8gdGhlIHBvbGxmdW5jIGJlaW5nDQo+ICAgIGNhbGxlZCBpc24ndCBzbyBjcml0aWNhbCBhcyBs b25nIGFzIHRoZSBmaW5hbCBzd2l0Y2ggdG8gZW5hYmxlIHRoYXQNCj4gICAgaXMgYWZ0ZXIuDQo+ IA0KPiBUbyBkbyB0aGlzLCBJIHRoaW5rIHdlIG5lZWQgdG8gZmlyc3QgcHJvcG9zZSBhIHNlcmll cyBvZiBwYXRjaGVzDQo+IGNoYW5naW5nIHRoZSBvcmRlcmluZyBpbiB0aG9zZSBkcml2ZXJzIHNv IHRoYXQgdGhlIGZpbmFsIHBhdGNoIGp1c3QNCj4gYmVjb21lcyBhIGNoYW5nZSB3aXRoIG5vIGZ1 bmN0aW9uYWwgZWZmZWN0cy4gIEFueSBtb2RpZmljYXRpb25zDQo+IHRvIHRoZSBmbG93IHNob3Vs ZCBvY2N1ciBpbiBlYXJsaWVyIHBhdGNoZXMuDQo+IA0KPiBTbyBiYXNlZCBvbiBhIG5vdCBwYXJ0 aWN1bGFybHkgZXhoYXVzdGl2ZSBsb29rIHdlIG5lZWQgdG8NCj4gJ2ZpeCcgdXAgMTYgZHJpdmVy cyBiZWZvcmUgd2UgbG9vayBhdCB0aGUgYmlnIGNsZWFudXAuDQoNCkknbGwgdGFrZSBhIGxvb2sg YW5kIHNlZSBhYm91dCB0aGVzZSBkcml2ZXJzLg0KSXQgd2lsbCB0YWtlIG1lIHNvbWUgdGltZS4g SSdsbCBoYXZlIHRvIGJhbGFuY2Ugb3RoZXIgc3R1ZmYgYW5kIGNvbWUgYmFjaw0KdG8gdGhpcy4N Cg0KPiANCj4gSSB3b3VsZCByZWFsbHkgbGlrZSB0byBjaGlwIGF3YXkgYXQgdGhpcyBvdmVyIHRp bWUgZXZlbiBpZiB5b3UgZGVjaWRlDQo+IHlvdSBkb24ndCB3YW50IHRvIHRha2UgaXQgZm9yd2Fy ZHMgYmVjYXVzZSB0aGUgY3VycmVudCBmbG93cyBhcm91bmQNCj4gdGhpcyBhcmUgYSBtZXNzICht eSBmYXVsdCBhcyBJJ3ZlIG5ldmVyIGJlZW4gc3VwZXIgY2xlYXIgdG8gYW55b25lDQo+IGluIHJl dmlldyBvbiBob3cgaXQgJ3Nob3VsZCcgd29yaykuDQo+IA0KPiBJdCB3b3VsZCBiZSBuaWNlIHRv IGNsZWFyIHRoYXQgdXAgb25jZSBhbmQgZm9yIGFsbC4NCj4gDQo+IE9uZSB0aG91Z2h0IGlzIHRo YXQgd2UgbWlnaHQgd2FudCB0byBjaGFuZ2UgdGhlIHVwZGF0ZV9zY2FuX21vZGUNCj4gZnVuY3Rp b24gdG8gdGFrZSBhIGZsYWcgdGhhdCBzYXlzICdubyBzcGVjaWZpYyBzY2FuIG1vZGUnIGFzIHNv bWUNCj4gZGV2aWNlcyBhcmVuJ3QgdXNpbmcgaXQgYmVjYXVzZSB0aGV5IHdhbnQgdG8gZW5hYmxl ICdhbGwnIGNoYW5uZWxzDQo+IG9uIGxlYXZpbmcgYnVmZmVyZWQgbW9kZS4gIElmIHdlIGRvIHRo YXQgd2UgY2FuIHByb2JhYmx5IGNhbGwgaXQNCj4gaW4gdGhlIGRpc2FibGUgcGF0aCBhcyB3ZWxs IGFuZCB0aGF0IHdpbGwgcmVzb2x2ZSBhIGZldyBkcml2ZXJzLg0KPiANCj4gVGhhbmtzIGZvciB5 b3VyIGhhcmQgd29yayBvbiB0aGlzLg0KPiANCj4gKmNyb3NzIGZpbmdlcnMgeW91IHN0aWxsIHdh bnQgdG8gdGFrZSBpdCBmb3J3YXJkcyEqDQo+IA0KPiBKb25hdGhhbg0KPiANCj4gDQo+ID4gLS0t DQo+ID4gDQo+ID4gQ2hhbmdlbG9nIHYxIC0+IHYyOg0KPiA+ICogY2hhbmdlZCBvcmRlciBvZiBl eGVjdXRpb24gZm9yIGF0dGFjaCBwb2xsIGZ1bmM6IGZpcnN0IGF0dGFjaA0KPiA+IHBvbGxfZnVu YywNCj4gPiAgIHRoZW4gY2FsbCBjYWxsIHBvc3RfZW5hYmxlKCkgaG9vaw0KPiA+ICogdXBkYXRl ZCBkcml2ZXJzIHdpdGggY2hhbmdlIHNpbmNlIGZpcnN0IHBhdGNoIHNlbnQgOyBwYXJ0aWN1bGFy bHkNCj4gPiAgIHN0bTMyLWFkYy5jIGhhcyBhIHJhdGhlciBiaWcgdXBkYXRlIHdpdGggVjINCj4g PiANCj4gPiANCj4gPiAgZHJpdmVycy9paW8vYWNjZWwvYWR4bDM3Mi5jICAgICAgICAgICAgICAg ICAgIHwgIDYgKy0NCj4gPiAgZHJpdmVycy9paW8vYWNjZWwvYm1jMTUwLWFjY2VsLWNvcmUuYyAg ICAgICAgIHwgIDQgKy0NCj4gPiAgZHJpdmVycy9paW8vYWNjZWwva3hjamstMTAxMy5jICAgICAg ICAgICAgICAgIHwgIDIgLQ0KPiA+ICBkcml2ZXJzL2lpby9hY2NlbC9reHNkOS5jICAgICAgICAg ICAgICAgICAgICAgfCAgMiAtDQo+ID4gIGRyaXZlcnMvaWlvL2FjY2VsL3N0X2FjY2VsX2J1ZmZl ci5jICAgICAgICAgICB8ICA4IC0tLQ0KPiA+ICBkcml2ZXJzL2lpby9hY2NlbC9zdGs4MzEyLmMg ICAgICAgICAgICAgICAgICAgfCAgMiAtDQo+ID4gIGRyaXZlcnMvaWlvL2FjY2VsL3N0azhiYTUw LmMgICAgICAgICAgICAgICAgICB8ICAyIC0NCj4gPiAgZHJpdmVycy9paW8vYWRjL2FkNzI2Ni5j ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgLQ0KPiA+ICBkcml2ZXJzL2lpby9hZGMvYWQ3NzY2 LmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiAtDQo+ID4gIGRyaXZlcnMvaWlvL2FkYy9hZDc4 ODcuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyIC0NCj4gPiAgZHJpdmVycy9paW8vYWRjL2Fk X3NpZ21hX2RlbHRhLmMgICAgICAgICAgICAgIHwgIDUgLS0NCj4gPiAgZHJpdmVycy9paW8vYWRj L2F0OTEtc2FtYTVkMl9hZGMuYyAgICAgICAgICAgIHwgIDcgKy0tDQo+ID4gIGRyaXZlcnMvaWlv L2FkYy9kbG4yLWFkYy5jICAgICAgICAgICAgICAgICAgICB8ICA0ICstDQo+ID4gIGRyaXZlcnMv aWlvL2FkYy9teHMtbHJhZGMtYWRjLmMgICAgICAgICAgICAgICB8ICAyIC0NCj4gPiAgZHJpdmVy cy9paW8vYWRjL3N0bTMyLWFkYy5jICAgICAgICAgICAgICAgICAgIHwgMzYgKystLS0tLS0tLS0t DQo+ID4gIGRyaXZlcnMvaWlvL2FkYy90aS1hZGMwODRzMDIxLmMgICAgICAgICAgICAgICB8ICAy IC0NCj4gPiAgZHJpdmVycy9paW8vYWRjL3RpLWFkczEwMTUuYyAgICAgICAgICAgICAgICAgIHwg IDIgLQ0KPiA+ICBkcml2ZXJzL2lpby9hZGMvdmY2MTBfYWRjLmMgICAgICAgICAgICAgICAgICAg fCAgNiArLQ0KPiA+ICBkcml2ZXJzL2lpby9hZGMveGlsaW54LXhhZGMtY29yZS5jICAgICAgICAg ICAgfCAgMiAtDQo+ID4gIC4uLi9idWZmZXIvaW5kdXN0cmlhbGlvLXRyaWdnZXJlZC1idWZmZXIu YyAgICB8IDEwICstLS0NCj4gPiAgZHJpdmVycy9paW8vY2hlbWljYWwvYXRsYXMtcGgtc2Vuc29y LmMgICAgICAgIHwgIDggLS0tDQo+ID4gIGRyaXZlcnMvaWlvL2R1bW15L2lpb19zaW1wbGVfZHVt bXlfYnVmZmVyLmMgICB8IDE0IC0tLS0tDQo+ID4gIGRyaXZlcnMvaWlvL2d5cm8vYm1nMTYwX2Nv cmUuYyAgICAgICAgICAgICAgICB8ICAyIC0NCj4gPiAgZHJpdmVycy9paW8vZ3lyby9tcHUzMDUw LWNvcmUuYyAgICAgICAgICAgICAgIHwgIDIgLQ0KPiA+ICBkcml2ZXJzL2lpby9neXJvL3N0X2d5 cm9fYnVmZmVyLmMgICAgICAgICAgICAgfCAgOCAtLS0NCj4gPiAgZHJpdmVycy9paW8vaHVtaWRp dHkvaGRjMTAweC5jICAgICAgICAgICAgICAgIHwgIDcgKy0tDQo+ID4gIGRyaXZlcnMvaWlvL2h1 bWlkaXR5L2h0czIyMV9idWZmZXIuYyAgICAgICAgICB8ICAyIC0NCj4gPiAgZHJpdmVycy9paW8v aWlvX2NvcmVfdHJpZ2dlci5oICAgICAgICAgICAgICAgIHwgMjAgKysrKysrLQ0KPiA+ICBkcml2 ZXJzL2lpby9pbmR1c3RyaWFsaW8tYnVmZmVyLmMgICAgICAgICAgICAgfCAxNiArKysrLS0NCj4g PiAgZHJpdmVycy9paW8vaW5kdXN0cmlhbGlvLXRyaWdnZXIuYyAgICAgICAgICAgIHwgNTUgKysr KysrKysrLS0tLS0tLS0tLQ0KPiA+ICBkcml2ZXJzL2lpby9saWdodC9ncDJhcDAyMGEwMGYuYyAg ICAgICAgICAgICAgfCAxMSArLS0tDQo+ID4gIGRyaXZlcnMvaWlvL2xpZ2h0L2lzbDI5MTI1LmMg ICAgICAgICAgICAgICAgICB8ICA1IC0tDQo+ID4gIGRyaXZlcnMvaWlvL2xpZ2h0L3JwcjA1MjEu YyAgICAgICAgICAgICAgICAgICB8ICAyIC0NCj4gPiAgZHJpdmVycy9paW8vbGlnaHQvc2kxMTQ1 LmMgICAgICAgICAgICAgICAgICAgIHwgIDIgLQ0KPiA+ICBkcml2ZXJzL2lpby9saWdodC9zdF91 dmlzMjVfY29yZS5jICAgICAgICAgICAgfCAgMiAtDQo+ID4gIGRyaXZlcnMvaWlvL2xpZ2h0L3Rj czM0MTQuYyAgICAgICAgICAgICAgICAgICB8ICA1IC0tDQo+ID4gIGRyaXZlcnMvaWlvL21hZ25l dG9tZXRlci9ibWMxNTBfbWFnbi5jICAgICAgICB8ICAyIC0NCj4gPiAgZHJpdmVycy9paW8vbWFn bmV0b21ldGVyL3JtMzEwMC1jb3JlLmMgICAgICAgIHwgIDIgLQ0KPiA+ICBkcml2ZXJzL2lpby9t YWduZXRvbWV0ZXIvc3RfbWFnbl9idWZmZXIuYyAgICAgfCAyMSArLS0tLS0tDQo+ID4gIGRyaXZl cnMvaWlvL3BvdGVudGlvc3RhdC9sbXA5MTAwMC5jICAgICAgICAgICB8ICAxIC0NCj4gPiAgZHJp dmVycy9paW8vcHJlc3N1cmUvc3RfcHJlc3N1cmVfYnVmZmVyLmMgICAgIHwgMjMgKy0tLS0tLS0N Cj4gPiAgZHJpdmVycy9paW8vcHJlc3N1cmUvenBhMjMyNi5jICAgICAgICAgICAgICAgIHwgIDYg LS0NCj4gPiAgZHJpdmVycy9paW8vcHJveGltaXR5L3N4OTUwMC5jICAgICAgICAgICAgICAgIHwg IDMgLQ0KPiA+ICBpbmNsdWRlL2xpbnV4L2lpby90cmlnZ2VyX2NvbnN1bWVyLmggICAgICAgICAg fCAgNyAtLS0NCj4gPiAgNDQgZmlsZXMgY2hhbmdlZCwgNzUgaW5zZXJ0aW9ucygrKSwgMjU5IGRl bGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hY2NlbC9hZHhs MzcyLmMgYi9kcml2ZXJzL2lpby9hY2NlbC9hZHhsMzcyLmMNCj4gPiBpbmRleCAzYjg0Y2IyNDNh ODcuLmUzZWZkYzBmMjNkZiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9hY2NlbC9hZHhs MzcyLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9hY2NlbC9hZHhsMzcyLmMNCj4gPiBAQCAtODE3 LDcgKzgxNyw3IEBAIHN0YXRpYyBpbnQgYWR4bDM3Ml9idWZmZXJfcG9zdGVuYWJsZShzdHJ1Y3Qg aWlvX2Rldg0KPiA+ICppbmRpb19kZXYpDQo+ID4gICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0K PiA+ICAgICAgIH0NCj4gPiANCj4gPiAtICAgICByZXR1cm4gaWlvX3RyaWdnZXJlZF9idWZmZXJf cG9zdGVuYWJsZShpbmRpb19kZXYpOw0KPiA+ICsgICAgIHJldHVybiAwOw0KPiANCj4gVGhpcyBp cyBhIHJlb3JkZXIgYXMgbm93IHdlJ2xsIGNhbGwgdGhlIHJlc3Qgb2YgdGhpcyBmdW5jdGlvbiBi ZWZvcmUgdGhlDQo+IGF0dGFjaC4NCj4gQ29uY2VwdHVhbGx5IHRoYXQgbWVhbnMgdGhlIHBvbGxm dW5jICdtaWdodCBiZSBjYWxsZWQnLiBJbiByZWFsaXR5IGl0DQo+IHNob3VsZG4ndA0KPiBiZSBh cyB0aGUgdXBzdHJlYW0gaW50ZXJydXB0IGlzbid0IGVuYWJsZWQgeWV0LCBidXQgbGV0IHVzIGtl ZXAgdG8gdGhlDQo+IGZsb3cuDQo+IA0KPiBRdWVzdGlvbiBpcyBkb2VzIHRoYXQgbWF0dGVyLg0K PiANCj4gVGhlcmUgaXMgYSBsb3Qgb2YgY29kZSBpbiBoZXJlLCB0aGF0IGRlZmluaXRlbHkgbG9v a3MgbGlrZWx5IHRvIGJlDQo+IHJlbGV2YW50IHRvDQo+IHRoYXQgc28gSSB3b3VsZCBzYXkgeWVz IGl0IGRvZXMuLi4NCj4gDQo+IEl0IGlzICdwcm9iYWJseScgdGhlIGNhc2UgdGhhdCB3ZSdkIGV4 cGVjdCB0aGUgY29kZSBpbiBoZXJlIHRvIGJlDQo+IGNvbmNlcHR1YWxseQ0KPiBpbiBwcmVlbmFi bGUsIHJhdGhlciB0aGFuIHBvc3RlbmFibGUsIGJ1dCBhcyBpdCBzdGFuZHMgdGhpcyBjaGFuZ2Ug bG9va3MNCj4gdmVyeQ0KPiBkdWJpb3VzIGFuIHRoYXQgY2hhbmdlIGlzbid0IHRyaXZpYWwgYXMg dGhlcmUgaXMgYSBzZXR3YXRlcm1hcmsgY2FsbGJhY2sNCj4gdG8gZGVhbCBhcyB3ZWxsLg0KPiAN Cj4gTm90IHRvbyBoYXJkIHRvIGZpeCwgYnV0IEknZCB3YW50IGEgdGVzdCBiZWZvcmUgSSdkIGJl IHN1cmUgd2UgaGFkbid0DQo+IG1lc3NlZCBpdA0KPiB1cC4NCj4gDQo+ID4gIH0NCj4gPiANCj4g PiAgc3RhdGljIGludCBhZHhsMzcyX2J1ZmZlcl9wcmVkaXNhYmxlKHN0cnVjdCBpaW9fZGV2ICpp bmRpb19kZXYpDQo+ID4gQEAgLTgyNSwxMCArODI1LDYgQEAgc3RhdGljIGludCBhZHhsMzcyX2J1 ZmZlcl9wcmVkaXNhYmxlKHN0cnVjdA0KPiA+IGlpb19kZXYgKmluZGlvX2RldikNCj4gPiAgICAg ICBzdHJ1Y3QgYWR4bDM3Ml9zdGF0ZSAqc3QgPSBpaW9fcHJpdihpbmRpb19kZXYpOw0KPiA+ICAg ICAgIGludCByZXQ7DQo+ID4gDQo+ID4gLSAgICAgcmV0ID0gaWlvX3RyaWdnZXJlZF9idWZmZXJf cHJlZGlzYWJsZShpbmRpb19kZXYpOw0KPiA+IC0gICAgIGlmIChyZXQgPCAwKQ0KPiA+IC0gICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiAtDQo+ID4gICAgICAgYWR4bDM3Ml9zZXRfaW50ZXJy dXB0cyhzdCwgMCwgMCk7DQo+ID4gICAgICAgc3QtPmZpZm9fbW9kZSA9IEFEWEwzNzJfRklGT19C WVBBU1NFRDsNCj4gPiAgICAgICBhZHhsMzcyX2NvbmZpZ3VyZV9maWZvKHN0KTsNCj4gDQo+IC4u Lg0KPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWNjZWwvc3RfYWNjZWxfYnVmZmVy LmMNCj4gPiBiL2RyaXZlcnMvaWlvL2FjY2VsL3N0X2FjY2VsX2J1ZmZlci5jDQo+ID4gaW5kZXgg N2ZkZGMxMzdlOTFlLi5jZmExODk3NzRhMWEgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9paW8v YWNjZWwvc3RfYWNjZWxfYnVmZmVyLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9hY2NlbC9zdF9h Y2NlbF9idWZmZXIuYw0KPiA+IEBAIC01MSwxMCArNTEsNiBAQCBzdGF0aWMgaW50IHN0X2FjY2Vs X2J1ZmZlcl9wb3N0ZW5hYmxlKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldikNCj4gDQo+ IFRoaXMgZHJpdmVyIGlzIGEgYml0IG1pc3MtYmFsYW5jZWQgYWxyZWFkeS4uLg0KPiANCj4gPiAg ICAgICBpZiAoZXJyIDwgMCkNCj4gPiAgICAgICAgICAgICAgIGdvdG8gc3RfYWNjZWxfYnVmZmVy X3Bvc3RlbmFibGVfZXJyb3I7DQo+ID4gDQo+ID4gLSAgICAgZXJyID0gaWlvX3RyaWdnZXJlZF9i dWZmZXJfcG9zdGVuYWJsZShpbmRpb19kZXYpOw0KPiA+IC0gICAgIGlmIChlcnIgPCAwKQ0KPiA+ IC0gICAgICAgICAgICAgZ290byBzdF9hY2NlbF9idWZmZXJfcG9zdGVuYWJsZV9lcnJvcjsNCj4g PiAtDQo+IA0KPiBBbmQgYW5vdGhlciBvbmUgd2hlcmUgdGhlIHBvc3RlbmFibGUgY29udGFpbnMg YSBsb3Qgb2Ygc2V0dXAgdGhhdCB3ZQ0KPiB3b3VsZCBub3cNCj4gbm90IGhhdmUgaGVyZS4gIFRo aXMgbmVlZHMgdW53aW5kaW5nLiAgSSB3b3VsZCBndWVzcyB0aGF0IGhhdmluZyBhIHN0YXRpYw0K PiBidWZmZXIgb2Ygc3VmZmljaWVudCBzaXplIHdvdWxkIHNvbHZlIG1vc3Qgb2YgdGhlIGlzc3Vl Lg0KPiBJbnRlcmVzdGluZyBxdWVzdGlvbiBvZiB3aGV0aGVyIHRoZSBheGlzIGVuYWJsZSBzaG91 bGQgYmUgYmVmb3JlIG9yIGFmdGVyDQo+IHRoZSBwb2xsZnVuYyBpcyBhdHRhY2hlZC4NCj4gDQo+ IA0KPiA+ICAgICAgIHJldHVybiBlcnI7DQo+ID4gDQo+ID4gIHN0X2FjY2VsX2J1ZmZlcl9wb3N0 ZW5hYmxlX2Vycm9yOg0KPiA+IEBAIC02OCwxMCArNjQsNiBAQCBzdGF0aWMgaW50IHN0X2FjY2Vs X2J1ZmZlcl9wcmVkaXNhYmxlKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldikNCj4gPiAg ICAgICBpbnQgZXJyOw0KPiA+ICAgICAgIHN0cnVjdCBzdF9zZW5zb3JfZGF0YSAqYWRhdGEgPSBp aW9fcHJpdihpbmRpb19kZXYpOw0KPiA+IA0KPiA+IC0gICAgIGVyciA9IGlpb190cmlnZ2VyZWRf YnVmZmVyX3ByZWRpc2FibGUoaW5kaW9fZGV2KTsNCj4gPiAtICAgICBpZiAoZXJyIDwgMCkNCj4g PiAtICAgICAgICAgICAgIGdvdG8gc3RfYWNjZWxfYnVmZmVyX3ByZWRpc2FibGVfZXJyb3I7DQo+ ID4gLQ0KPiA+ICAgICAgIGVyciA9IHN0X3NlbnNvcnNfc2V0X2F4aXNfZW5hYmxlKGluZGlvX2Rl diwNCj4gPiBTVF9TRU5TT1JTX0VOQUJMRV9BTExfQVhJUyk7DQo+ID4gICAgICAgaWYgKGVyciA8 IDApDQo+ID4gICAgICAgICAgICAgICBnb3RvIHN0X2FjY2VsX2J1ZmZlcl9wcmVkaXNhYmxlX2Vy cm9yOw0KPiANCj4gLi4uDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2FkYy9hZF9zaWdt YV9kZWx0YS5jDQo+ID4gYi9kcml2ZXJzL2lpby9hZGMvYWRfc2lnbWFfZGVsdGEuYw0KPiA+IGlu ZGV4IGZmNWYyZGEyZTFiMS4uODE1MzQ0Mzg3NTQxIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMv aWlvL2FkYy9hZF9zaWdtYV9kZWx0YS5jDQo+ID4gKysrIGIvZHJpdmVycy9paW8vYWRjL2FkX3Np Z21hX2RlbHRhLmMNCj4gPiBAQCAtMzQ1LDEwICszNDUsNiBAQCBzdGF0aWMgaW50IGFkX3NkX2J1 ZmZlcl9wb3N0ZW5hYmxlKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldikNCj4gPiAgICAg ICB1bnNpZ25lZCBpbnQgY2hhbm5lbDsNCj4gPiAgICAgICBpbnQgcmV0Ow0KPiA+IA0KPiA+IC0g ICAgIHJldCA9IGlpb190cmlnZ2VyZWRfYnVmZmVyX3Bvc3RlbmFibGUoaW5kaW9fZGV2KTsNCj4g PiAtICAgICBpZiAocmV0IDwgMCkNCj4gPiAtICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4g LQ0KPiANCj4gSSB0aGluayB0aGlzIG9uZSBpcyBmaW5lIGFzIGFsbCB0aGUgZm9sbG93aW5nIGlz IGFyb3VuZCBnZXR0aW5nIHRoZQ0KPiBkZXZpY2UNCj4gaW50byBhIHN0YXRlIHdoZXJlIHRoZSBw b2xsZnVuYyAnd2lsbCBiZSBjYWxsZWQnIHJhdGhlciB0aGFuIGEgc3RhdGUNCj4gd2hlcmUgaXQg aXMgc2FmZSB0byBjYWxsIGl0LiBUaGUgYm91bmRhcnkgaXMgYSBiaXQgYmx1cnJlZCB0aG91Z2gu Lg0KPiANCj4gPiAgICAgICBjaGFubmVsID0gZmluZF9maXJzdF9iaXQoaW5kaW9fZGV2LT5hY3Rp dmVfc2Nhbl9tYXNrLA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpb19k ZXYtPm1hc2tsZW5ndGgpOw0KPiA+ICAgICAgIHJldCA9IGFkX3NpZ21hX2RlbHRhX3NldF9jaGFu bmVsKHNpZ21hX2RlbHRhLA0KPiA+IEBAIC00MzksNyArNDM1LDYgQEAgc3RhdGljIGlycXJldHVy bl90IGFkX3NkX3RyaWdnZXJfaGFuZGxlcihpbnQgaXJxLA0KPiA+IHZvaWQgKnApDQo+ID4gDQo+ ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2J1ZmZlcl9zZXR1cF9vcHMgYWRfc2RfYnVmZmVy X3NldHVwX29wcyA9IHsNCj4gPiAgICAgICAucG9zdGVuYWJsZSA9ICZhZF9zZF9idWZmZXJfcG9z dGVuYWJsZSwNCj4gPiAtICAgICAucHJlZGlzYWJsZSA9ICZpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9w cmVkaXNhYmxlLA0KPiA+ICAgICAgIC5wb3N0ZGlzYWJsZSA9ICZhZF9zZF9idWZmZXJfcG9zdGRp c2FibGUsDQo+ID4gICAgICAgLnZhbGlkYXRlX3NjYW5fbWFzayA9ICZpaW9fdmFsaWRhdGVfc2Nh bl9tYXNrX29uZWhvdCwNCj4gPiAgfTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWRj L2F0OTEtc2FtYTVkMl9hZGMuYyBiL2RyaXZlcnMvaWlvL2FkYy9hdDkxLQ0KPiA+IHNhbWE1ZDJf YWRjLmMNCj4gPiBpbmRleCBkNWVhODRjZjY0NjAuLjkwMTIxYWVkMjIxMCAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2lpby9hZGMvYXQ5MS1zYW1hNWQyX2FkYy5jDQo+ID4gKysrIGIvZHJpdmVy cy9paW8vYWRjL2F0OTEtc2FtYTVkMl9hZGMuYw0KPiA+IEBAIC05MDQsNyArOTA0LDcgQEAgc3Rh dGljIGludCBhdDkxX2FkY19idWZmZXJfcG9zdGVuYWJsZShzdHJ1Y3QNCj4gPiBpaW9fZGV2ICpp bmRpb19kZXYpDQo+ID4gICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICAgICAgIH0NCj4g PiANCj4gPiAtICAgICByZXR1cm4gaWlvX3RyaWdnZXJlZF9idWZmZXJfcG9zdGVuYWJsZShpbmRp b19kZXYpOw0KPiANCj4gQW5vdGhlciBvbmUgd2l0aCBtYWpvciBjaGFuZ2VzIGluIHJlc3VsdGlu ZyBvcmRlci4uIEknbSBub3QgdG90YWxseSBzdXJlDQo+IG9uDQo+IHRoaXMgb25lLg0KPiBJdCBs b29rcyBsaWtlIHN0dWZmIHRoYXQgJ2NhdXNlcyBkYXRhJyByYXRoZXIgdGhhbiBpcyBpbnZvbHZl ZCBpbg0KPiBoYW5kbGluZyBzbw0KPiBwcm9iYWJseSBmaW5lLg0KPiA+ICsgICAgIHJldHVybiAw Ow0KPiA+ICB9DQo+ID4gDQo+ID4gIHN0YXRpYyBpbnQgYXQ5MV9hZGNfYnVmZmVyX3ByZWRpc2Fi bGUoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikNCj4gPiBAQCAtOTI0LDExICs5MjQsNiBAQCBz dGF0aWMgaW50IGF0OTFfYWRjX2J1ZmZlcl9wcmVkaXNhYmxlKHN0cnVjdA0KPiA+IGlpb19kZXYg KmluZGlvX2RldikNCj4gPiAgICAgICBpZiAoIShpbmRpb19kZXYtPmN1cnJlbnRtb2RlICYgSU5E SU9fQUxMX1RSSUdHRVJFRF9NT0RFUykpDQo+ID4gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZB TDsNCj4gPiANCj4gPiAtICAgICAvKiBjb250aW51ZSB3aXRoIHRoZSB0cmlnZ2VyZWQgYnVmZmVy ICovDQo+ID4gLSAgICAgcmV0ID0gaWlvX3RyaWdnZXJlZF9idWZmZXJfcHJlZGlzYWJsZShpbmRp b19kZXYpOw0KPiA+IC0gICAgIGlmIChyZXQgPCAwKQ0KPiA+IC0gICAgICAgICAgICAgZGV2X2Vy cigmaW5kaW9fZGV2LT5kZXYsICJidWZmZXIgcHJlZGlzYWJsZSBmYWlsZWRcbiIpOw0KPiA+IC0N Cj4gPiAgICAgICBpZiAoIXN0LT5kbWFfc3QuZG1hX2NoYW4pDQo+ID4gICAgICAgICAgICAgICBy ZXR1cm4gcmV0Ow0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hZGMvZGxuMi1h ZGMuYyBiL2RyaXZlcnMvaWlvL2FkYy9kbG4yLWFkYy5jDQo+ID4gaW5kZXggYzY0YzY2NzVjYWU2 Li41MTEzNWU3YzBkNGYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9paW8vYWRjL2RsbjItYWRj LmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9hZGMvZGxuMi1hZGMuYw0KPiA+IEBAIC01NjAsNyAr NTYwLDcgQEAgc3RhdGljIGludA0KPiA+IGRsbjJfYWRjX3RyaWdnZXJlZF9idWZmZXJfcG9zdGVu YWJsZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPiANCj4gRmxvdyBoYXMgY2hhbmdlZCBo ZXJlIGFzIHdlbGwuLg0KPiA+ICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZkbG4yLT5tdXRl eCk7DQo+ID4gICAgICAgfQ0KPiA+IA0KPiA+IC0gICAgIHJldHVybiBpaW9fdHJpZ2dlcmVkX2J1 ZmZlcl9wb3N0ZW5hYmxlKGluZGlvX2Rldik7DQo+ID4gKyAgICAgcmV0dXJuIDA7DQo+ID4gIH0N Cj4gPiANCj4gPiAgc3RhdGljIGludCBkbG4yX2FkY190cmlnZ2VyZWRfYnVmZmVyX3ByZWRpc2Fi bGUoc3RydWN0IGlpb19kZXYNCj4gPiAqaW5kaW9fZGV2KQ0KPiA+IEBAIC01ODUsNyArNTg1LDcg QEAgc3RhdGljIGludA0KPiA+IGRsbjJfYWRjX3RyaWdnZXJlZF9idWZmZXJfcHJlZGlzYWJsZShz dHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPiA+ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsN Cj4gPiAgICAgICB9DQo+ID4gDQo+ID4gLSAgICAgcmV0dXJuIGlpb190cmlnZ2VyZWRfYnVmZmVy X3ByZWRpc2FibGUoaW5kaW9fZGV2KTsNCj4gPiArICAgICByZXR1cm4gMDsNCj4gPiAgfQ0KPiA+ IA0KPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGlpb19idWZmZXJfc2V0dXBfb3BzIGRsbjJfYWRj X2J1ZmZlcl9zZXR1cF9vcHMgPSB7DQo+IA0KPiAuLi4NCj4gDQo+IA0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2lpby9jaGVtaWNhbC9hdGxhcy1waC1zZW5zb3IuYw0KPiA+IGIvZHJpdmVycy9p aW8vY2hlbWljYWwvYXRsYXMtcGgtc2Vuc29yLmMNCj4gPiBpbmRleCBhNDA2YWQzMWIwOTYuLjhm ZWQ3NWY5ZTk1ZCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9jaGVtaWNhbC9hdGxhcy1w aC1zZW5zb3IuYw0KPiA+ICsrKyBiL2RyaXZlcnMvaWlvL2NoZW1pY2FsL2F0bGFzLXBoLXNlbnNv ci5jDQo+ID4gQEAgLTMwNSwxMCArMzA1LDYgQEAgc3RhdGljIGludCBhdGxhc19idWZmZXJfcG9z dGVuYWJsZShzdHJ1Y3QgaWlvX2Rldg0KPiA+ICppbmRpb19kZXYpDQo+ID4gICAgICAgc3RydWN0 IGF0bGFzX2RhdGEgKmRhdGEgPSBpaW9fcHJpdihpbmRpb19kZXYpOw0KPiA+ICAgICAgIGludCBy ZXQ7DQo+ID4gDQo+ID4gLSAgICAgcmV0ID0gaWlvX3RyaWdnZXJlZF9idWZmZXJfcG9zdGVuYWJs ZShpbmRpb19kZXYpOw0KPiA+IC0gICAgIGlmIChyZXQpDQo+ID4gLSAgICAgICAgICAgICByZXR1 cm4gcmV0Ow0KPiA+IC0NCj4gPiAgICAgICByZXQgPSBwbV9ydW50aW1lX2dldF9zeW5jKCZkYXRh LT5jbGllbnQtPmRldik7DQo+ID4gICAgICAgaWYgKHJldCA8IDApIHsNCj4gPiAgICAgICAgICAg ICAgIHBtX3J1bnRpbWVfcHV0X25vaWRsZSgmZGF0YS0+Y2xpZW50LT5kZXYpOw0KPiA+IEBAIC0z MjMsMTAgKzMxOSw2IEBAIHN0YXRpYyBpbnQgYXRsYXNfYnVmZmVyX3ByZWRpc2FibGUoc3RydWN0 IGlpb19kZXYNCj4gPiAqaW5kaW9fZGV2KQ0KPiA+ICAgICAgIHN0cnVjdCBhdGxhc19kYXRhICpk YXRhID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsNCj4gPiAgICAgICBpbnQgcmV0Ow0KPiA+IA0KPiAN Cj4gSG1tLiBUaGlzIG9uZSBpcyBkb2luZyBtaXggYW5kIG1hdGNoLiBJJ2xsIGd1ZXNzIGl0J3Mg c2FmZSB0byBmaXggdGhhdA0KPiB1cC4NCj4gDQo+ID4gLSAgICAgcmV0ID0gaWlvX3RyaWdnZXJl ZF9idWZmZXJfcHJlZGlzYWJsZShpbmRpb19kZXYpOw0KPiA+IC0gICAgIGlmIChyZXQpDQo+ID4g LSAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+IC0NCj4gPiAgICAgICByZXQgPSBhdGxhc19z ZXRfaW50ZXJydXB0KGRhdGEsIGZhbHNlKTsNCj4gPiAgICAgICBpZiAocmV0KQ0KPiA+ICAgICAg ICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vZ3lyby9z dF9neXJvX2J1ZmZlci5jDQo+ID4gYi9kcml2ZXJzL2lpby9neXJvL3N0X2d5cm9fYnVmZmVyLmMN Cj4gPiBpbmRleCBhNTM3NzA0NGU0MmYuLjIxNTAxZmZkODc5ZSAxMDA2NDQNCj4gPiAtLS0gYS9k cml2ZXJzL2lpby9neXJvL3N0X2d5cm9fYnVmZmVyLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9n eXJvL3N0X2d5cm9fYnVmZmVyLmMNCj4gPiBAQCAtNTEsMTAgKzUxLDYgQEAgc3RhdGljIGludCBz dF9neXJvX2J1ZmZlcl9wb3N0ZW5hYmxlKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldikN Cj4gPiAgICAgICBpZiAoZXJyIDwgMCkNCj4gPiAgICAgICAgICAgICAgIGdvdG8gc3RfZ3lyb19i dWZmZXJfcG9zdGVuYWJsZV9lcnJvcjsNCj4gPiANCj4gDQo+IFNhbWUgYXMgdGhlIGFjY2VsIHZl cnNpb24uDQo+IA0KPiA+IC0gICAgIGVyciA9IGlpb190cmlnZ2VyZWRfYnVmZmVyX3Bvc3RlbmFi bGUoaW5kaW9fZGV2KTsNCj4gPiAtICAgICBpZiAoZXJyIDwgMCkNCj4gPiAtICAgICAgICAgICAg IGdvdG8gc3RfZ3lyb19idWZmZXJfcG9zdGVuYWJsZV9lcnJvcjsNCj4gPiAtDQo+ID4gICAgICAg cmV0dXJuIGVycjsNCj4gPiANCj4gPiAgc3RfZ3lyb19idWZmZXJfcG9zdGVuYWJsZV9lcnJvcjoN Cj4gPiBAQCAtNjgsMTAgKzY0LDYgQEAgc3RhdGljIGludCBzdF9neXJvX2J1ZmZlcl9wcmVkaXNh YmxlKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldikNCj4gPiAgICAgICBpbnQgZXJyOw0K PiA+ICAgICAgIHN0cnVjdCBzdF9zZW5zb3JfZGF0YSAqZ2RhdGEgPSBpaW9fcHJpdihpbmRpb19k ZXYpOw0KPiA+IA0KPiA+IC0gICAgIGVyciA9IGlpb190cmlnZ2VyZWRfYnVmZmVyX3ByZWRpc2Fi bGUoaW5kaW9fZGV2KTsNCj4gPiAtICAgICBpZiAoZXJyIDwgMCkNCj4gPiAtICAgICAgICAgICAg IGdvdG8gc3RfZ3lyb19idWZmZXJfcHJlZGlzYWJsZV9lcnJvcjsNCj4gPiAtDQo+ID4gICAgICAg ZXJyID0gc3Rfc2Vuc29yc19zZXRfYXhpc19lbmFibGUoaW5kaW9fZGV2LA0KPiA+IFNUX1NFTlNP UlNfRU5BQkxFX0FMTF9BWElTKTsNCj4gPiAgICAgICBpZiAoZXJyIDwgMCkNCj4gPiAgICAgICAg ICAgICAgIGdvdG8gc3RfZ3lyb19idWZmZXJfcHJlZGlzYWJsZV9lcnJvcjsNCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9paW8vaHVtaWRpdHkvaGRjMTAweC5jDQo+ID4gYi9kcml2ZXJzL2lpby9o dW1pZGl0eS9oZGMxMDB4LmMNCj4gPiBpbmRleCAwNjZlMDVmOTIwODEuLjk1OWQ3ZTE3ZDQ3MSAx MDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9odW1pZGl0eS9oZGMxMDB4LmMNCj4gPiArKysg Yi9kcml2ZXJzL2lpby9odW1pZGl0eS9oZGMxMDB4LmMNCj4gPiBAQCAtMjg2LDcgKzI4Niw3IEBA IHN0YXRpYyBpbnQgaGRjMTAweF9idWZmZXJfcG9zdGVuYWJsZShzdHJ1Y3QgaWlvX2Rldg0KPiA+ ICppbmRpb19kZXYpDQo+ID4gICAgICAgaWYgKHJldCkNCj4gPiAgICAgICAgICAgICAgIHJldHVy biByZXQ7DQo+IA0KPiBJIHRoaW5rIHRoZSBlYXJsaWVyIHBhcnQgb2YgdGhpcyBzaG91bGQgYmUg aW4gcHJlZW5hYmxlLCBidXQgaGF2ZW4ndA0KPiBjaGVja2VkDQo+IHByb3Blcmx5LiAgRGVmaW5p dGVseSBjYW4ndCBqdXN0IGNoYW5nZSBpdCBsaWtlIHRoaXMgZ2l2ZW4gdGhlcmUNCj4gYXJlIGNv bW1lbnRzIGFib3V0IG9yZGVyaW5nIHJlcXVpcmVtZW50cyA7KQ0KPiANCj4gPiANCj4gPiAtICAg ICByZXR1cm4gaWlvX3RyaWdnZXJlZF9idWZmZXJfcG9zdGVuYWJsZShpbmRpb19kZXYpOw0KPiA+ ICsgICAgIHJldHVybiAwOw0KPiA+ICB9DQo+ID4gDQo+ID4gIHN0YXRpYyBpbnQgaGRjMTAweF9i dWZmZXJfcHJlZGlzYWJsZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPiA+IEBAIC0yOTQs MTEgKzI5NCw2IEBAIHN0YXRpYyBpbnQgaGRjMTAweF9idWZmZXJfcHJlZGlzYWJsZShzdHJ1Y3QN Cj4gPiBpaW9fZGV2ICppbmRpb19kZXYpDQo+ID4gICAgICAgc3RydWN0IGhkYzEwMHhfZGF0YSAq ZGF0YSA9IGlpb19wcml2KGluZGlvX2Rldik7DQo+ID4gICAgICAgaW50IHJldDsNCj4gPiANCj4g PiAtICAgICAvKiBGaXJzdCBkZXRhY2ggcG9sbCBmdW5jLCB0aGVuIHJlc2V0IEFDUSBtb2RlLiBP SyB0byBkaXNhYmxlDQo+ID4gYnVmZmVyICovDQo+ID4gLSAgICAgcmV0ID0gaWlvX3RyaWdnZXJl ZF9idWZmZXJfcHJlZGlzYWJsZShpbmRpb19kZXYpOw0KPiA+IC0gICAgIGlmIChyZXQpDQo+ID4g LSAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+IC0NCj4gPiAgICAgICBtdXRleF9sb2NrKCZk YXRhLT5sb2NrKTsNCj4gPiAgICAgICByZXQgPSBoZGMxMDB4X3VwZGF0ZV9jb25maWcoZGF0YSwg SERDMTAwWF9SRUdfQ09ORklHX0FDUV9NT0RFLA0KPiA+IDApOw0KPiA+ICAgICAgIG11dGV4X3Vu bG9jaygmZGF0YS0+bG9jayk7DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2luZHVzdHJp YWxpby1idWZmZXIuYw0KPiA+IGIvZHJpdmVycy9paW8vaW5kdXN0cmlhbGlvLWJ1ZmZlci5jDQo+ ID4gaW5kZXggY2Q1YmZlMzk1OTFiLi5kMDlhOTIyM2E1YjAgMTAwNjQ0DQo+ID4gLS0tIGEvZHJp dmVycy9paW8vaW5kdXN0cmlhbGlvLWJ1ZmZlci5jDQo+ID4gKysrIGIvZHJpdmVycy9paW8vaW5k dXN0cmlhbGlvLWJ1ZmZlci5jDQo+ID4gQEAgLTI0LDggKzI0LDEwIEBADQo+ID4gDQo+ID4gICNp bmNsdWRlIDxsaW51eC9paW8vaWlvLmg+DQo+ID4gICNpbmNsdWRlICJpaW9fY29yZS5oIg0KPiA+ ICsjaW5jbHVkZSAiaWlvX2NvcmVfdHJpZ2dlci5oIg0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlv L3N5c2ZzLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vYnVmZmVyLmg+DQo+ID4gKyNpbmNs dWRlIDxsaW51eC9paW8vdHJpZ2dlci5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2J1ZmZl cl9pbXBsLmg+DQo+ID4gDQo+ID4gIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaWlvX2VuZGlh bl9wcmVmaXhbXSA9IHsNCj4gPiBAQCAtOTE1LDYgKzkxNyw3IEBAIHN0YXRpYyBpbnQgaWlvX2Vu YWJsZV9idWZmZXJzKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldiwNCj4gPiAgICAgICBp bmRpb19kZXYtPmFjdGl2ZV9zY2FuX21hc2sgPSBjb25maWctPnNjYW5fbWFzazsNCj4gPiAgICAg ICBpbmRpb19kZXYtPnNjYW5fdGltZXN0YW1wID0gY29uZmlnLT5zY2FuX3RpbWVzdGFtcDsNCj4g PiAgICAgICBpbmRpb19kZXYtPnNjYW5fYnl0ZXMgPSBjb25maWctPnNjYW5fYnl0ZXM7DQo+ID4g KyAgICAgaW5kaW9fZGV2LT5jdXJyZW50bW9kZSA9IGNvbmZpZy0+bW9kZTsNCj4gPiANCj4gPiAg ICAgICBpaW9fdXBkYXRlX2RlbXV4KGluZGlvX2Rldik7DQo+ID4gDQo+ID4gQEAgLTk1MCwyOCAr OTUzLDMyIEBAIHN0YXRpYyBpbnQgaWlvX2VuYWJsZV9idWZmZXJzKHN0cnVjdCBpaW9fZGV2DQo+ ID4gKmluZGlvX2RldiwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJfZGlzYWJs ZV9idWZmZXJzOw0KPiA+ICAgICAgIH0NCj4gPiANCj4gPiAtICAgICBpbmRpb19kZXYtPmN1cnJl bnRtb2RlID0gY29uZmlnLT5tb2RlOw0KPiA+ICsgICAgIHJldCA9IGlpb190cmlnZ2VyX2F0dGFj aF9wb2xsX2Z1bmMoaW5kaW9fZGV2KTsNCj4gPiArICAgICBpZiAocmV0KQ0KPiA+ICsgICAgICAg ICAgICAgZ290byBlcnJfZGlzYWJsZV9idWZmZXJzOw0KPiA+IA0KPiA+ICAgICAgIGlmIChpbmRp b19kZXYtPnNldHVwX29wcy0+cG9zdGVuYWJsZSkgew0KPiA+ICAgICAgICAgICAgICAgcmV0ID0g aW5kaW9fZGV2LT5zZXR1cF9vcHMtPnBvc3RlbmFibGUoaW5kaW9fZGV2KTsNCj4gPiAgICAgICAg ICAgICAgIGlmIChyZXQpIHsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgZGV2X2RiZygmaW5k aW9fZGV2LT5kZXYsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQnVmZmVyIG5v dCBzdGFydGVkOiBwb3N0ZW5hYmxlIGZhaWxlZA0KPiA+ICglZClcbiIsIHJldCk7DQo+ID4gLSAg ICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyX2Rpc2FibGVfYnVmZmVyczsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgZ290byBlcnJfZGV0YWNoX3BvbGxmdW5jOw0KPiA+ICAgICAgICAgICAg ICAgfQ0KPiA+ICAgICAgIH0NCj4gPiANCj4gPiAgICAgICByZXR1cm4gMDsNCj4gPiANCj4gPiAr ZXJyX2RldGFjaF9wb2xsZnVuYzoNCj4gPiArICAgICBpaW9fdHJpZ2dlcl9kZXRhY2hfcG9sbF9m dW5jKGluZGlvX2Rldik7DQo+ID4gIGVycl9kaXNhYmxlX2J1ZmZlcnM6DQo+ID4gICAgICAgbGlz dF9mb3JfZWFjaF9lbnRyeV9jb250aW51ZV9yZXZlcnNlKGJ1ZmZlciwgJmluZGlvX2Rldi0NCj4g PiA+YnVmZmVyX2xpc3QsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJ1ZmZlcl9saXN0KQ0KPiA+ICAgICAgICAgICAgICAgaWlvX2J1ZmZlcl9kaXNhYmxl KGJ1ZmZlciwgaW5kaW9fZGV2KTsNCj4gPiAgZXJyX3J1bl9wb3N0ZGlzYWJsZToNCj4gPiAtICAg ICBpbmRpb19kZXYtPmN1cnJlbnRtb2RlID0gSU5ESU9fRElSRUNUX01PREU7DQo+ID4gICAgICAg aWYgKGluZGlvX2Rldi0+c2V0dXBfb3BzLT5wb3N0ZGlzYWJsZSkNCj4gPiAgICAgICAgICAgICAg IGluZGlvX2Rldi0+c2V0dXBfb3BzLT5wb3N0ZGlzYWJsZShpbmRpb19kZXYpOw0KPiA+ICBlcnJf dW5kb19jb25maWc6DQo+ID4gKyAgICAgaW5kaW9fZGV2LT5jdXJyZW50bW9kZSA9IElORElPX0RJ UkVDVF9NT0RFOw0KPiA+ICAgICAgIGluZGlvX2Rldi0+YWN0aXZlX3NjYW5fbWFzayA9IE5VTEw7 DQo+ID4gDQo+ID4gICAgICAgcmV0dXJuIHJldDsNCj4gPiBAQCAtMTAwNiw3ICsxMDEzLDcgQEAg c3RhdGljIGludCBpaW9fZGlzYWJsZV9idWZmZXJzKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmluZGlv X2RldikNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gcmV0MjsNCj4gPiAgICAgICB9 DQo+ID4gDQo+ID4gLSAgICAgaW5kaW9fZGV2LT5jdXJyZW50bW9kZSA9IElORElPX0RJUkVDVF9N T0RFOw0KPiA+ICsgICAgIGlpb190cmlnZ2VyX2RldGFjaF9wb2xsX2Z1bmMoaW5kaW9fZGV2KTsN Cj4gDQo+IFRoaXMgZG9lc24ndCBzZWVtIHJpZ2h0LiBJbiB0aGUgc2V0dXAgcGF0aA0KPiBpaW9f dHJpZ2dlcl9kZXRhY2hfcG9sbF9mdW5jIGlzIGNhbGxlZCBqdXN0IGJlZm9yZSBwb3N0X2VuYWJs ZSwgc28gSSdkDQo+IGV4cGVjdCB0bw0KPiBzZWUgdGhpcyBqdXN0IGFmdGVyIHByZV9kaXNhYmxl IGZvciBpdCB0byBiZSBiYWxhbmNlZC4NCj4gDQo+IFRoaXMgaGFzIGNyb3NzZWQgdGhlIGluZGl2 aWR1YWwgYnVmZmVyIGRpc2FibGVzLg0KPiANCj4gPiANCj4gPiAgICAgICBpZiAoaW5kaW9fZGV2 LT5zZXR1cF9vcHMtPnBvc3RkaXNhYmxlKSB7DQo+ID4gICAgICAgICAgICAgICByZXQyID0gaW5k aW9fZGV2LT5zZXR1cF9vcHMtPnBvc3RkaXNhYmxlKGluZGlvX2Rldik7DQo+ID4gQEAgLTEwMTYs NiArMTAyMyw3IEBAIHN0YXRpYyBpbnQgaWlvX2Rpc2FibGVfYnVmZmVycyhzdHJ1Y3QgaWlvX2Rl dg0KPiA+ICppbmRpb19kZXYpDQo+ID4gDQo+ID4gICAgICAgaWlvX2ZyZWVfc2Nhbl9tYXNrKGlu ZGlvX2RldiwgaW5kaW9fZGV2LT5hY3RpdmVfc2Nhbl9tYXNrKTsNCj4gPiAgICAgICBpbmRpb19k ZXYtPmFjdGl2ZV9zY2FuX21hc2sgPSBOVUxMOw0KPiA+ICsgICAgIGluZGlvX2Rldi0+Y3VycmVu dG1vZGUgPSBJTkRJT19ESVJFQ1RfTU9ERTsNCj4gPiANCj4gPiAgICAgICByZXR1cm4gcmV0Ow0K PiA+ICB9DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL2luZHVzdHJpYWxpby10cmlnZ2Vy LmMNCj4gPiBiL2RyaXZlcnMvaWlvL2luZHVzdHJpYWxpby10cmlnZ2VyLmMNCj4gPiBpbmRleCBj ZTY2Njk5YzdmY2MuLmQ1MDc2MTcxN2RiZSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9p bmR1c3RyaWFsaW8tdHJpZ2dlci5jDQo+ID4gKysrIGIvZHJpdmVycy9paW8vaW5kdXN0cmlhbGlv LXRyaWdnZXIuYw0KPiA+IEBAIC0xNiw2ICsxNiw3IEBADQo+ID4gICNpbmNsdWRlIDxsaW51eC9z bGFiLmg+DQo+ID4gDQo+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vaWlvLmg+DQo+ID4gKyNpbmNs dWRlIDxsaW51eC9paW8vYnVmZmVyLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dl ci5oPg0KPiA+ICAjaW5jbHVkZSAiaWlvX2NvcmUuaCINCj4gPiAgI2luY2x1ZGUgImlpb19jb3Jl X3RyaWdnZXIuaCINCj4gPiBAQCAtMjQyLDEyICsyNDMsMTcgQEAgc3RhdGljIHZvaWQgaWlvX3Ry aWdnZXJfcHV0X2lycShzdHJ1Y3QNCj4gPiBpaW9fdHJpZ2dlciAqdHJpZywgaW50IGlycSkNCj4g PiAgICogdGhlIHJlbGV2YW50IGZ1bmN0aW9uIGlzIGluIHRoZXJlIG1heSBiZSB0aGUgYmVzdCBv cHRpb24uDQo+ID4gICAqLw0KPiA+ICAvKiBXb3J0aCBwcm90ZWN0aW5nIGFnYWluc3QgZG91Ymxl IGFkZGl0aW9ucz8gKi8NCj4gPiAtc3RhdGljIGludCBpaW9fdHJpZ2dlcl9hdHRhY2hfcG9sbF9m dW5jKHN0cnVjdCBpaW9fdHJpZ2dlciAqdHJpZywNCj4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBpaW9fcG9sbF9mdW5jICpwZikNCj4gPiAraW50IGlpb190 cmlnZ2VyX2F0dGFjaF9wb2xsX2Z1bmMoc3RydWN0IGlpb19kZXYgKmluZGlvX2RldikNCj4gPiAg ew0KPiA+ICsgICAgIHN0cnVjdCBpaW9fdHJpZ2dlciAqdHJpZyA9IGluZGlvX2Rldi0+dHJpZzsN Cj4gPiArICAgICBzdHJ1Y3QgaWlvX3BvbGxfZnVuYyAqcGYgPSBpbmRpb19kZXYtPnBvbGxmdW5j Ow0KPiA+ICsgICAgIGJvb2wgbm90aW51c2U7DQo+ID4gICAgICAgaW50IHJldCA9IDA7DQo+ID4g LSAgICAgYm9vbCBub3RpbnVzZQ0KPiA+IC0gICAgICAgICAgICAgPSBiaXRtYXBfZW1wdHkodHJp Zy0+cG9vbCwNCj4gPiBDT05GSUdfSUlPX0NPTlNVTUVSU19QRVJfVFJJR0dFUik7DQo+ID4gKw0K PiA+ICsgICAgIGlmIChpbmRpb19kZXYtPmN1cnJlbnRtb2RlICE9IElORElPX0JVRkZFUl9UUklH R0VSRUQpDQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPiArDQo+ID4gKyAgICAgbm90 aW51c2UgPSBiaXRtYXBfZW1wdHkodHJpZy0+cG9vbCwNCj4gPiBDT05GSUdfSUlPX0NPTlNVTUVS U19QRVJfVFJJR0dFUik7DQo+ID4gDQo+ID4gICAgICAgLyogUHJldmVudCB0aGUgbW9kdWxlIGZy b20gYmVpbmcgcmVtb3ZlZCB3aGlsc3QgYXR0YWNoZWQgdG8gYQ0KPiA+IHRyaWdnZXIgKi8NCj4g PiAgICAgICBfX21vZHVsZV9nZXQocGYtPmluZGlvX2Rldi0+ZHJpdmVyX21vZHVsZSk7DQo+ID4g QEAgLTI5MCwxNCArMjk2LDE5IEBAIHN0YXRpYyBpbnQgaWlvX3RyaWdnZXJfYXR0YWNoX3BvbGxf ZnVuYyhzdHJ1Y3QNCj4gPiBpaW9fdHJpZ2dlciAqdHJpZywNCj4gPiAgICAgICByZXR1cm4gcmV0 Ow0KPiA+ICB9DQo+ID4gDQo+ID4gLXN0YXRpYyBpbnQgaWlvX3RyaWdnZXJfZGV0YWNoX3BvbGxf ZnVuYyhzdHJ1Y3QgaWlvX3RyaWdnZXIgKnRyaWcsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGlpb19wb2xsX2Z1bmMgKnBmKQ0KPiA+ICtpbnQgaWlv X3RyaWdnZXJfZGV0YWNoX3BvbGxfZnVuYyhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPiA+ ICB7DQo+ID4gKyAgICAgc3RydWN0IGlpb190cmlnZ2VyICp0cmlnID0gaW5kaW9fZGV2LT50cmln Ow0KPiA+ICsgICAgIHN0cnVjdCBpaW9fcG9sbF9mdW5jICpwZiA9IGluZGlvX2Rldi0+cG9sbGZ1 bmM7DQo+ID4gKyAgICAgYm9vbCBub19vdGhlcl91c2VycyA9IGZhbHNlOw0KPiA+ICAgICAgIGlu dCByZXQgPSAwOw0KPiA+IC0gICAgIGJvb2wgbm9fb3RoZXJfdXNlcnMNCj4gPiAtICAgICAgICAg ICAgID0gKGJpdG1hcF93ZWlnaHQodHJpZy0+cG9vbCwNCj4gPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ09ORklHX0lJT19DT05TVU1FUlNfUEVSX1RSSUdHRVIpDQo+ID4gLSAgICAg ICAgICAgICAgICA9PSAxKTsNCj4gPiArDQo+ID4gKyAgICAgaWYgKGluZGlvX2Rldi0+Y3VycmVu dG1vZGUgIT0gSU5ESU9fQlVGRkVSX1RSSUdHRVJFRCkNCj4gPiArICAgICAgICAgICAgIHJldHVy biAwOw0KPiA+ICsNCj4gPiArICAgICBpZiAoYml0bWFwX3dlaWdodCh0cmlnLT5wb29sLCBDT05G SUdfSUlPX0NPTlNVTUVSU19QRVJfVFJJR0dFUikNCj4gPiA9PSAxKQ0KPiA+ICsgICAgICAgICAg ICAgbm9fb3RoZXJfdXNlcnMgPSB0cnVlOw0KPiA+ICsNCj4gPiAgICAgICBpZiAodHJpZy0+b3Bz ICYmIHRyaWctPm9wcy0+c2V0X3RyaWdnZXJfc3RhdGUgJiYgbm9fb3RoZXJfdXNlcnMpDQo+ID4g ew0KPiA+ICAgICAgICAgICAgICAgcmV0ID0gdHJpZy0+b3BzLT5zZXRfdHJpZ2dlcl9zdGF0ZSh0 cmlnLCBmYWxzZSk7DQo+ID4gICAgICAgICAgICAgICBpZiAocmV0KQ0KPiA+IEBAIC00MzQsMTgg KzQ0NSwxNiBAQCBzdGF0aWMgc3NpemVfdCBpaW9fdHJpZ2dlcl93cml0ZV9jdXJyZW50KHN0cnVj dA0KPiA+IGRldmljZSAqZGV2LA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dF90 cmlnZ2VyX3B1dDsNCj4gPiAgICAgICB9DQo+ID4gDQo+ID4gLSAgICAgaW5kaW9fZGV2LT50cmln ID0gdHJpZzsNCj4gPiANCj4gPiAtICAgICBpZiAob2xkdHJpZykgew0KPiA+ICsgICAgIGlmIChp bmRpb19kZXYtPnRyaWcpIHsNCj4gPiAgICAgICAgICAgICAgIGlmIChpbmRpb19kZXYtPm1vZGVz ICYgSU5ESU9fRVZFTlRfVFJJR0dFUkVEKQ0KPiA+IC0gICAgICAgICAgICAgICAgICAgICBpaW9f dHJpZ2dlcl9kZXRhY2hfcG9sbF9mdW5jKG9sZHRyaWcsDQo+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kaW9fZGV2LQ0KPiA+ID5wb2xsZnVu Y19ldmVudCk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGlpb190cmlnZ2VyX2RldGFjaF9w b2xsX2Z1bmMoaW5kaW9fZGV2KTsNCj4gPiAgICAgICAgICAgICAgIGlpb190cmlnZ2VyX3B1dChv bGR0cmlnKTsNCj4gPiAgICAgICB9DQo+ID4gKyAgICAgaW5kaW9fZGV2LT50cmlnID0gdHJpZzsN Cj4gPiAgICAgICBpZiAoaW5kaW9fZGV2LT50cmlnKSB7DQo+ID4gICAgICAgICAgICAgICBpZiAo aW5kaW9fZGV2LT5tb2RlcyAmIElORElPX0VWRU5UX1RSSUdHRVJFRCkNCj4gPiAtICAgICAgICAg ICAgICAgICAgICAgaWlvX3RyaWdnZXJfYXR0YWNoX3BvbGxfZnVuYyhpbmRpb19kZXYtPnRyaWcs DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW5kaW9fZGV2LQ0KPiA+ID5wb2xsZnVuY19ldmVudCk7DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgIGlpb190cmlnZ2VyX2F0dGFjaF9wb2xsX2Z1bmMoaW5kaW9fZGV2KTsNCj4gPiAgICAgICB9 DQo+ID4gDQo+ID4gICAgICAgcmV0dXJuIGxlbjsNCj4gPiBAQCAtNzU4LDE3ICs3NjcsMyBAQCB2 b2lkIGlpb19kZXZpY2VfdW5yZWdpc3Rlcl90cmlnZ2VyX2NvbnN1bWVyKHN0cnVjdA0KPiA+IGlp b19kZXYgKmluZGlvX2RldikNCj4gPiAgICAgICBpZiAoaW5kaW9fZGV2LT50cmlnKQ0KPiA+ICAg ICAgICAgICAgICAgaWlvX3RyaWdnZXJfcHV0KGluZGlvX2Rldi0+dHJpZyk7DQo+ID4gIH0NCj4g PiAtDQo+ID4gLWludCBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9wb3N0ZW5hYmxlKHN0cnVjdCBpaW9f ZGV2ICppbmRpb19kZXYpDQo+ID4gLXsNCj4gPiAtICAgICByZXR1cm4gaWlvX3RyaWdnZXJfYXR0 YWNoX3BvbGxfZnVuYyhpbmRpb19kZXYtPnRyaWcsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW5kaW9fZGV2LT5wb2xsZnVuYyk7DQo+ID4gLX0NCj4gPiAt RVhQT1JUX1NZTUJPTChpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9wb3N0ZW5hYmxlKTsNCj4gPiAtDQo+ ID4gLWludCBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9wcmVkaXNhYmxlKHN0cnVjdCBpaW9fZGV2ICpp bmRpb19kZXYpDQo+ID4gLXsNCj4gPiAtICAgICByZXR1cm4gaWlvX3RyaWdnZXJfZGV0YWNoX3Bv bGxfZnVuYyhpbmRpb19kZXYtPnRyaWcsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGluZGlvX2Rldi0+cG9sbGZ1bmMpOw0KPiA+IC19DQo+ID4gLUVYUE9S VF9TWU1CT0woaWlvX3RyaWdnZXJlZF9idWZmZXJfcHJlZGlzYWJsZSk7DQo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvaWlvL2xpZ2h0L2dwMmFwMDIwYTAwZi5jDQo+ID4gYi9kcml2ZXJzL2lpby9s aWdodC9ncDJhcDAyMGEwMGYuYw0KPiA+IGluZGV4IDQ0YjEzZmJjZDA5My4uMjRkNGE1N2I0MWJl IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2xpZ2h0L2dwMmFwMDIwYTAwZi5jDQo+ID4g KysrIGIvZHJpdmVycy9paW8vbGlnaHQvZ3AyYXAwMjBhMDBmLmMNCj4gPiBAQCAtMTQyMywxMiAr MTQyMyw4IEBAIHN0YXRpYyBpbnQgZ3AyYXAwMjBhMDBmX2J1ZmZlcl9wb3N0ZW5hYmxlKHN0cnVj dA0KPiA+IGlpb19kZXYgKmluZGlvX2RldikNCj4gPiAgICAgICAgICAgICAgIGdvdG8gZXJyb3Jf dW5sb2NrOw0KPiA+IA0KPiA+ICAgICAgIGRhdGEtPmJ1ZmZlciA9IGttYWxsb2MoaW5kaW9fZGV2 LT5zY2FuX2J5dGVzLCBHRlBfS0VSTkVMKTsNCj4gPiAtICAgICBpZiAoIWRhdGEtPmJ1ZmZlcikg ew0KPiA+ICsgICAgIGlmICghZGF0YS0+YnVmZmVyKQ0KPiA+ICAgICAgICAgICAgICAgZXJyID0g LUVOT01FTTsNCj4gPiAtICAgICAgICAgICAgIGdvdG8gZXJyb3JfdW5sb2NrOw0KPiA+IC0gICAg IH0NCj4gPiAtDQo+ID4gLSAgICAgZXJyID0gaWlvX3RyaWdnZXJlZF9idWZmZXJfcG9zdGVuYWJs ZShpbmRpb19kZXYpOw0KPiANCj4gQWdhaW4sIGEgZmFpcmx5IGRlZmluaXRlIG5vLiAgVGhlIGJ1 ZmZlciBpcyBwcm9iYWJseSBiZXR0ZXIgb2ZmIGJlaW5nDQo+IGFsbG9jYXRlZA0KPiBhcyBwYXJ0 IG9mIGRhdGEgYW55d2F5LiBOb3Qgc3VyZSBvbiB0aGUgcmVzdC4NCj4gPiANCj4gPiAgZXJyb3Jf dW5sb2NrOg0KPiA+ICAgICAgIG11dGV4X3VubG9jaygmZGF0YS0+bG9jayk7DQo+ID4gQEAgLTE0 NDMsMTAgKzE0MzksNiBAQCBzdGF0aWMgaW50IGdwMmFwMDIwYTAwZl9idWZmZXJfcHJlZGlzYWJs ZShzdHJ1Y3QNCj4gPiBpaW9fZGV2ICppbmRpb19kZXYpDQo+ID4gDQo+ID4gICAgICAgbXV0ZXhf bG9jaygmZGF0YS0+bG9jayk7DQo+ID4gDQo+ID4gLSAgICAgZXJyID0gaWlvX3RyaWdnZXJlZF9i dWZmZXJfcHJlZGlzYWJsZShpbmRpb19kZXYpOw0KPiA+IC0gICAgIGlmIChlcnIgPCAwKQ0KPiA+ IC0gICAgICAgICAgICAgZ290byBlcnJvcl91bmxvY2s7DQo+ID4gLQ0KPiA+ICAgICAgIGZvcl9l YWNoX3NldF9iaXQoaSwgaW5kaW9fZGV2LT5hY3RpdmVfc2Nhbl9tYXNrLA0KPiA+ICAgICAgICAg ICAgICAgaW5kaW9fZGV2LT5tYXNrbGVuZ3RoKSB7DQo+ID4gICAgICAgICAgICAgICBzd2l0Y2gg KGkpIHsNCj4gPiBAQCAtMTQ2OCw3ICsxNDYwLDYgQEAgc3RhdGljIGludCBncDJhcDAyMGEwMGZf YnVmZmVyX3ByZWRpc2FibGUoc3RydWN0DQo+ID4gaWlvX2RldiAqaW5kaW9fZGV2KQ0KPiA+ICAg ICAgIGlmIChlcnIgPT0gMCkNCj4gPiAgICAgICAgICAgICAgIGtmcmVlKGRhdGEtPmJ1ZmZlcik7 DQo+ID4gDQo+ID4gLWVycm9yX3VubG9jazoNCj4gPiAgICAgICBtdXRleF91bmxvY2soJmRhdGEt PmxvY2spOw0KPiA+IA0KPiA+ICAgICAgIHJldHVybiBlcnI7DQo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaWlvL2xpZ2h0L2lzbDI5MTI1LmMNCj4gPiBiL2RyaXZlcnMvaWlvL2xpZ2h0L2lzbDI5 MTI1LmMNCj4gPiBpbmRleCBlZDM4ZWRjZDVlZmUuLjVmZGZjZTkyMDE5YiAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2lpby9saWdodC9pc2wyOTEyNS5jDQo+ID4gKysrIGIvZHJpdmVycy9paW8v bGlnaHQvaXNsMjkxMjUuYw0KPiA+IEBAIC0yMzAsMTAgKzIzMCw2IEBAIHN0YXRpYyBpbnQgaXNs MjkxMjVfYnVmZmVyX3ByZWRpc2FibGUoc3RydWN0DQo+ID4gaWlvX2RldiAqaW5kaW9fZGV2KQ0K PiA+ICAgICAgIHN0cnVjdCBpc2wyOTEyNV9kYXRhICpkYXRhID0gaWlvX3ByaXYoaW5kaW9fZGV2 KTsNCj4gPiAgICAgICBpbnQgcmV0Ow0KPiA+IA0KPiA+IC0gICAgIHJldCA9IGlpb190cmlnZ2Vy ZWRfYnVmZmVyX3ByZWRpc2FibGUoaW5kaW9fZGV2KTsNCj4gPiAtICAgICBpZiAocmV0IDwgMCkN Cj4gPiAtICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4gLQ0KPiANCj4gQW5vdGhlciB0byBj aGVjay4NCj4gPiAgICAgICBkYXRhLT5jb25mMSAmPSB+SVNMMjkxMjVfTU9ERV9NQVNLOw0KPiA+ ICAgICAgIGRhdGEtPmNvbmYxIHw9IElTTDI5MTI1X01PREVfUEQ7DQo+ID4gICAgICAgcmV0dXJu IGkyY19zbWJ1c193cml0ZV9ieXRlX2RhdGEoZGF0YS0+Y2xpZW50LCBJU0wyOTEyNV9DT05GMSwN Cj4gPiBAQCAtMjQyLDcgKzIzOCw2IEBAIHN0YXRpYyBpbnQgaXNsMjkxMjVfYnVmZmVyX3ByZWRp c2FibGUoc3RydWN0DQo+ID4gaWlvX2RldiAqaW5kaW9fZGV2KQ0KPiA+IA0KPiA+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IGlpb19idWZmZXJfc2V0dXBfb3BzIGlzbDI5MTI1X2J1ZmZlcl9zZXR1cF9v cHMgPSB7DQo+ID4gICAgICAgLnByZWVuYWJsZSA9IGlzbDI5MTI1X2J1ZmZlcl9wcmVlbmFibGUs DQo+ID4gLSAgICAgLnBvc3RlbmFibGUgPSAmaWlvX3RyaWdnZXJlZF9idWZmZXJfcG9zdGVuYWJs ZSwNCj4gPiAgICAgICAucHJlZGlzYWJsZSA9IGlzbDI5MTI1X2J1ZmZlcl9wcmVkaXNhYmxlLA0K PiA+ICB9Ow0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9saWdodC90Y3MzNDE0 LmMgYi9kcml2ZXJzL2lpby9saWdodC90Y3MzNDE0LmMNCj4gPiBpbmRleCAyMDVlNTY1OWNlNmIu LmMzMWVkMGM2NDBlOSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9saWdodC90Y3MzNDE0 LmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9saWdodC90Y3MzNDE0LmMNCj4gPiBAQCAtMjU3LDEw ICsyNTcsNiBAQCBzdGF0aWMgaW50IHRjczM0MTRfYnVmZmVyX3ByZWRpc2FibGUoc3RydWN0DQo+ ID4gaWlvX2RldiAqaW5kaW9fZGV2KQ0KPiA+ICAgICAgIHN0cnVjdCB0Y3MzNDE0X2RhdGEgKmRh dGEgPSBpaW9fcHJpdihpbmRpb19kZXYpOw0KPiA+ICAgICAgIGludCByZXQ7DQo+ID4gDQo+ID4g LSAgICAgcmV0ID0gaWlvX3RyaWdnZXJlZF9idWZmZXJfcHJlZGlzYWJsZShpbmRpb19kZXYpOw0K PiA+IC0gICAgIGlmIChyZXQgPCAwKQ0KPiA+IC0gICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4g DQo+IEFub3RoZXIgb25lIHRoYXQgbmVlZHMgY2hlY2tpbmcgYnV0ICdwcm9iYWJseScgZmluZS4N Cj4gPiAtDQo+ID4gICAgICAgZGF0YS0+Y29udHJvbCAmPSB+VENTMzQxNF9DT05UUk9MX0FEQ19F TjsNCj4gPiAgICAgICByZXR1cm4gaTJjX3NtYnVzX3dyaXRlX2J5dGVfZGF0YShkYXRhLT5jbGll bnQsIFRDUzM0MTRfQ09OVFJPTCwNCj4gPiAgICAgICAgICAgICAgIGRhdGEtPmNvbnRyb2wpOw0K PiA+IEBAIC0yNjgsNyArMjY0LDYgQEAgc3RhdGljIGludCB0Y3MzNDE0X2J1ZmZlcl9wcmVkaXNh YmxlKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmluZGlvX2RldikNCj4gPiANCj4gPiAgc3RhdGljIGNv bnN0IHN0cnVjdCBpaW9fYnVmZmVyX3NldHVwX29wcyB0Y3MzNDE0X2J1ZmZlcl9zZXR1cF9vcHMg PSB7DQo+ID4gICAgICAgLnByZWVuYWJsZSA9IHRjczM0MTRfYnVmZmVyX3ByZWVuYWJsZSwNCj4g PiAtICAgICAucG9zdGVuYWJsZSA9ICZpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9wb3N0ZW5hYmxlLA0K PiA+ICAgICAgIC5wcmVkaXNhYmxlID0gdGNzMzQxNF9idWZmZXJfcHJlZGlzYWJsZSwNCj4gPiAg fTsNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vbWFnbmV0b21ldGVyL3N0X21h Z25fYnVmZmVyLmMNCj4gPiBiL2RyaXZlcnMvaWlvL21hZ25ldG9tZXRlci9zdF9tYWduX2J1ZmZl ci5jDQo+ID4gaW5kZXggMzdhYjMwNTY2NDY0Li41NzA5NzUyMDA5NTUgMTAwNjQ0DQo+ID4gLS0t IGEvZHJpdmVycy9paW8vbWFnbmV0b21ldGVyL3N0X21hZ25fYnVmZmVyLmMNCj4gPiArKysgYi9k cml2ZXJzL2lpby9tYWduZXRvbWV0ZXIvc3RfbWFnbl9idWZmZXIuYw0KPiA+IEBAIC0zMiwyNSAr MzIsMTMgQEAgaW50IHN0X21hZ25fdHJpZ19zZXRfc3RhdGUoc3RydWN0IGlpb190cmlnZ2VyDQo+ ID4gKnRyaWcsIGJvb2wgc3RhdGUpDQo+ID4gDQo+IA0KPiBJJ2xsIGd1ZXNzIHRoZSBmbG93IGhl cmUgaXMgdGhlIHNhbWUgYXMgdGhlIGFjY2VsIGRyaXZlci4NCj4gPiAgc3RhdGljIGludCBzdF9t YWduX2J1ZmZlcl9wb3N0ZW5hYmxlKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYpDQo+ID4gIHsN Cj4gPiAtICAgICBpbnQgZXJyOw0KPiA+ICAgICAgIHN0cnVjdCBzdF9zZW5zb3JfZGF0YSAqbWRh dGEgPSBpaW9fcHJpdihpbmRpb19kZXYpOw0KPiA+IA0KPiA+ICAgICAgIG1kYXRhLT5idWZmZXJf ZGF0YSA9IGttYWxsb2MoaW5kaW9fZGV2LT5zY2FuX2J5dGVzLCBHRlBfS0VSTkVMKTsNCj4gPiAt ICAgICBpZiAobWRhdGEtPmJ1ZmZlcl9kYXRhID09IE5VTEwpIHsNCj4gPiAtICAgICAgICAgICAg IGVyciA9IC1FTk9NRU07DQo+ID4gLSAgICAgICAgICAgICBnb3RvIGFsbG9jYXRlX21lbW9yeV9l cnJvcjsNCj4gPiAtICAgICB9DQo+ID4gLQ0KPiA+IC0gICAgIGVyciA9IGlpb190cmlnZ2VyZWRf YnVmZmVyX3Bvc3RlbmFibGUoaW5kaW9fZGV2KTsNCj4gPiAtICAgICBpZiAoZXJyIDwgMCkNCj4g PiAtICAgICAgICAgICAgIGdvdG8gc3RfbWFnbl9idWZmZXJfcG9zdGVuYWJsZV9lcnJvcjsNCj4g PiArICAgICBpZiAobWRhdGEtPmJ1ZmZlcl9kYXRhID09IE5VTEwpDQo+ID4gKyAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsNCj4gPiANCj4gPiAgICAgICByZXR1cm4gc3Rfc2Vuc29yc19zZXRf ZW5hYmxlKGluZGlvX2RldiwgdHJ1ZSk7DQo+ID4gLQ0KPiA+IC1zdF9tYWduX2J1ZmZlcl9wb3N0 ZW5hYmxlX2Vycm9yOg0KPiA+IC0gICAgIGtmcmVlKG1kYXRhLT5idWZmZXJfZGF0YSk7DQo+ID4g LWFsbG9jYXRlX21lbW9yeV9lcnJvcjoNCj4gPiAtICAgICByZXR1cm4gZXJyOw0KPiA+ICB9DQo+ ID4gDQo+ID4gIHN0YXRpYyBpbnQgc3RfbWFnbl9idWZmZXJfcHJlZGlzYWJsZShzdHJ1Y3QgaWlv X2RldiAqaW5kaW9fZGV2KQ0KPiA+IEBAIC01OSwxMiArNDcsNyBAQCBzdGF0aWMgaW50IHN0X21h Z25fYnVmZmVyX3ByZWRpc2FibGUoc3RydWN0IGlpb19kZXYNCj4gPiAqaW5kaW9fZGV2KQ0KPiA+ ICAgICAgIHN0cnVjdCBzdF9zZW5zb3JfZGF0YSAqbWRhdGEgPSBpaW9fcHJpdihpbmRpb19kZXYp Ow0KPiA+IA0KPiA+ICAgICAgIGVyciA9IHN0X3NlbnNvcnNfc2V0X2VuYWJsZShpbmRpb19kZXYs IGZhbHNlKTsNCj4gPiAtICAgICBpZiAoZXJyIDwgMCkNCj4gPiAtICAgICAgICAgICAgIGdvdG8g c3RfbWFnbl9idWZmZXJfcHJlZGlzYWJsZV9lcnJvcjsNCj4gPiAtDQo+ID4gLSAgICAgZXJyID0g aWlvX3RyaWdnZXJlZF9idWZmZXJfcHJlZGlzYWJsZShpbmRpb19kZXYpOw0KPiA+IA0KPiA+IC1z dF9tYWduX2J1ZmZlcl9wcmVkaXNhYmxlX2Vycm9yOg0KPiA+ICAgICAgIGtmcmVlKG1kYXRhLT5i dWZmZXJfZGF0YSk7DQo+ID4gICAgICAgcmV0dXJuIGVycjsNCj4gPiAgfQ0KPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2lpby9wb3RlbnRpb3N0YXQvbG1wOTEwMDAuYw0KPiA+IGIvZHJpdmVycy9p aW8vcG90ZW50aW9zdGF0L2xtcDkxMDAwLmMNCj4gPiBpbmRleCA5MGU4OTVhZGY5OTcuLjI2OGRh Nzk5MmZmNSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9wb3RlbnRpb3N0YXQvbG1wOTEw MDAuYw0KPiA+ICsrKyBiL2RyaXZlcnMvaWlvL3BvdGVudGlvc3RhdC9sbXA5MTAwMC5jDQo+ID4g QEAgLTI5NSw3ICsyOTUsNiBAQCBzdGF0aWMgaW50IGxtcDkxMDAwX2J1ZmZlcl9wcmVkaXNhYmxl KHN0cnVjdA0KPiA+IGlpb19kZXYgKmluZGlvX2RldikNCj4gPiANCj4gPiAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpaW9fYnVmZmVyX3NldHVwX29wcyBsbXA5MTAwMF9idWZmZXJfc2V0dXBfb3BzID0g ew0KPiA+ICAgICAgIC5wcmVlbmFibGUgPSBsbXA5MTAwMF9idWZmZXJfcHJlZW5hYmxlLA0KPiA+ IC0gICAgIC5wb3N0ZW5hYmxlID0gaWlvX3RyaWdnZXJlZF9idWZmZXJfcG9zdGVuYWJsZSwNCj4g DQo+IGh1aD8gIFdlIGF0dGFjaCBidXQgbmV2ZXIgZGV0YWNoPyAgVGhhdCBvbmUgbmVlZHMgZm9s bG93aW5nIHVwIGFzIGl0DQo+IGlzIHByb2JhYmx5IGJyb2tlbi4NCj4gDQo+ID4gICAgICAgLnBy ZWRpc2FibGUgPSBsbXA5MTAwMF9idWZmZXJfcHJlZGlzYWJsZSwNCj4gPiAgfTsNCj4gPiANCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vcHJlc3N1cmUvc3RfcHJlc3N1cmVfYnVmZmVyLmMN Cj4gPiBiL2RyaXZlcnMvaWlvL3ByZXNzdXJlL3N0X3ByZXNzdXJlX2J1ZmZlci5jDQo+ID4gaW5k ZXggOTk0NjhkMGE2NGU3Li40Y2I4MjM5ZjI1OTkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9p aW8vcHJlc3N1cmUvc3RfcHJlc3N1cmVfYnVmZmVyLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9w cmVzc3VyZS9zdF9wcmVzc3VyZV9idWZmZXIuYw0KPiA+IEBAIC0zNywyNSArMzcsMTMgQEAgc3Rh dGljIGludCBzdF9wcmVzc19idWZmZXJfcHJlZW5hYmxlKHN0cnVjdCBpaW9fZGV2DQo+ID4gKmlu ZGlvX2RldikNCj4gPiANCj4gPiAgc3RhdGljIGludCBzdF9wcmVzc19idWZmZXJfcG9zdGVuYWJs ZShzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2KQ0KPiA+ICB7DQo+ID4gLSAgICAgaW50IGVycjsN Cj4gPiAgICAgICBzdHJ1Y3Qgc3Rfc2Vuc29yX2RhdGEgKnByZXNzX2RhdGEgPSBpaW9fcHJpdihp bmRpb19kZXYpOw0KPiA+IA0KPiA+ICAgICAgIHByZXNzX2RhdGEtPmJ1ZmZlcl9kYXRhID0ga21h bGxvYyhpbmRpb19kZXYtPnNjYW5fYnl0ZXMsDQo+ID4gR0ZQX0tFUk5FTCk7DQo+ID4gLSAgICAg aWYgKHByZXNzX2RhdGEtPmJ1ZmZlcl9kYXRhID09IE5VTEwpIHsNCj4gPiAtICAgICAgICAgICAg IGVyciA9IC1FTk9NRU07DQo+ID4gLSAgICAgICAgICAgICBnb3RvIGFsbG9jYXRlX21lbW9yeV9l cnJvcjsNCj4gPiAtICAgICB9DQo+ID4gLQ0KPiA+IC0gICAgIGVyciA9IGlpb190cmlnZ2VyZWRf YnVmZmVyX3Bvc3RlbmFibGUoaW5kaW9fZGV2KTsNCj4gPiAtICAgICBpZiAoZXJyIDwgMCkNCj4g PiAtICAgICAgICAgICAgIGdvdG8gc3RfcHJlc3NfYnVmZmVyX3Bvc3RlbmFibGVfZXJyb3I7DQo+ ID4gLQ0KPiA+IC0gICAgIHJldHVybiBlcnI7DQo+ID4gKyAgICAgaWYgKHByZXNzX2RhdGEtPmJ1 ZmZlcl9kYXRhID09IE5VTEwpDQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4g PiANCj4gPiAtc3RfcHJlc3NfYnVmZmVyX3Bvc3RlbmFibGVfZXJyb3I6DQo+ID4gLSAgICAga2Zy ZWUocHJlc3NfZGF0YS0+YnVmZmVyX2RhdGEpOw0KPiA+IC1hbGxvY2F0ZV9tZW1vcnlfZXJyb3I6 DQo+ID4gLSAgICAgcmV0dXJuIGVycjsNCj4gPiArICAgICByZXR1cm4gMDsNCj4gPiAgfQ0KPiA+ IA0KPiA+ICBzdGF0aWMgaW50IHN0X3ByZXNzX2J1ZmZlcl9wcmVkaXNhYmxlKHN0cnVjdCBpaW9f ZGV2ICppbmRpb19kZXYpDQo+ID4gQEAgLTYzLDEzICs1MSw4IEBAIHN0YXRpYyBpbnQgc3RfcHJl c3NfYnVmZmVyX3ByZWRpc2FibGUoc3RydWN0IGlpb19kZXYNCj4gPiAqaW5kaW9fZGV2KQ0KPiA+ ICAgICAgIGludCBlcnI7DQo+ID4gICAgICAgc3RydWN0IHN0X3NlbnNvcl9kYXRhICpwcmVzc19k YXRhID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsNCj4gPiANCj4gPiAtICAgICBlcnIgPSBpaW9fdHJp Z2dlcmVkX2J1ZmZlcl9wcmVkaXNhYmxlKGluZGlvX2Rldik7DQo+ID4gLSAgICAgaWYgKGVyciA8 IDApDQo+ID4gLSAgICAgICAgICAgICBnb3RvIHN0X3ByZXNzX2J1ZmZlcl9wcmVkaXNhYmxlX2Vy cm9yOw0KPiA+IC0NCj4gPiAgICAgICBlcnIgPSBzdF9zZW5zb3JzX3NldF9lbmFibGUoaW5kaW9f ZGV2LCBmYWxzZSk7DQo+ID4gDQo+ID4gLXN0X3ByZXNzX2J1ZmZlcl9wcmVkaXNhYmxlX2Vycm9y Og0KPiA+ICAgICAgIGtmcmVlKHByZXNzX2RhdGEtPmJ1ZmZlcl9kYXRhKTsNCj4gPiAgICAgICBy ZXR1cm4gZXJyOw0KPiA+ICB9DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaWlvL3ByZXNzdXJl L3pwYTIzMjYuYw0KPiA+IGIvZHJpdmVycy9paW8vcHJlc3N1cmUvenBhMjMyNi5jDQo+ID4gaW5k ZXggODFkOGYyNGVhZWI0Li4yYzQyOTUwODdhMzYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9p aW8vcHJlc3N1cmUvenBhMjMyNi5jDQo+ID4gKysrIGIvZHJpdmVycy9paW8vcHJlc3N1cmUvenBh MjMyNi5jDQo+IA0KPiBOb3cgSSdtIGp1c3QgbGVhdmluZyB0aGlzIGhlcmUgYXMgbmVlZHMgbW9y ZSBpbnZlc3RpZ2F0aW9uLi4uDQo+IA0KPiA+IEBAIC0xMjcxLDExICsxMjcxLDYgQEAgc3RhdGlj IGludCB6cGEyMzI2X3Bvc3RlbmFibGVfYnVmZmVyKHN0cnVjdA0KPiA+IGlpb19kZXYgKmluZGlv X2RldikNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnI7DQo+ID4gICAgICAgfQ0K PiA+IA0KPiA+IC0gICAgIC8qIFBsdWcgb3VyIG93biB0cmlnZ2VyIGV2ZW50IGhhbmRsZXIuICov DQo+ID4gLSAgICAgZXJyID0gaWlvX3RyaWdnZXJlZF9idWZmZXJfcG9zdGVuYWJsZShpbmRpb19k ZXYpOw0KPiA+IC0gICAgIGlmIChlcnIpDQo+ID4gLSAgICAgICAgICAgICBnb3RvIGVycjsNCj4g PiAtDQo+ID4gICAgICAgcmV0dXJuIDA7DQo+ID4gDQo+ID4gIGVycjoNCj4gPiBAQCAtMTI5NCw3 ICsxMjg5LDYgQEAgc3RhdGljIGludCB6cGEyMzI2X3Bvc3RkaXNhYmxlX2J1ZmZlcihzdHJ1Y3QN Cj4gPiBpaW9fZGV2ICppbmRpb19kZXYpDQo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2J1 ZmZlcl9zZXR1cF9vcHMgenBhMjMyNl9idWZmZXJfc2V0dXBfb3BzID0gew0KPiA+ICAgICAgIC5w cmVlbmFibGUgICA9IHpwYTIzMjZfcHJlZW5hYmxlX2J1ZmZlciwNCj4gPiAgICAgICAucG9zdGVu YWJsZSAgPSB6cGEyMzI2X3Bvc3RlbmFibGVfYnVmZmVyLA0KPiA+IC0gICAgIC5wcmVkaXNhYmxl ICA9IGlpb190cmlnZ2VyZWRfYnVmZmVyX3ByZWRpc2FibGUsDQo+ID4gICAgICAgLnBvc3RkaXNh YmxlID0genBhMjMyNl9wb3N0ZGlzYWJsZV9idWZmZXINCj4gPiAgfTsNCj4gPiANCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9paW8vcHJveGltaXR5L3N4OTUwMC5jDQo+ID4gYi9kcml2ZXJzL2lp by9wcm94aW1pdHkvc3g5NTAwLmMNCj4gPiBpbmRleCBmZjgwNDA5ZTBjNDQuLjczMzM1ZTYxYjM1 MCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9wcm94aW1pdHkvc3g5NTAwLmMNCj4gPiAr KysgYi9kcml2ZXJzL2lpby9wcm94aW1pdHkvc3g5NTAwLmMNCj4gDQo+IEZhaXJseSBzdXJlIHRo aXMgaXMgc2FmZSwgYnV0IHNlcGFyYXRlIHBhdGNoIHRvIG1vdmUgaXQgZmlyc3QgaXMgbmVlZGVk DQo+IGJlZm9yZQ0KPiB0aGlzIGNoYW5nZS4NCj4gDQo+ID4gQEAgLTcwNyw4ICs3MDcsNiBAQCBz dGF0aWMgaW50IHN4OTUwMF9idWZmZXJfcHJlZGlzYWJsZShzdHJ1Y3QgaWlvX2Rldg0KPiA+ICpp bmRpb19kZXYpDQo+ID4gICAgICAgc3RydWN0IHN4OTUwMF9kYXRhICpkYXRhID0gaWlvX3ByaXYo aW5kaW9fZGV2KTsNCj4gPiAgICAgICBpbnQgcmV0ID0gMCwgaTsNCj4gPiANCj4gPiAtICAgICBp aW9fdHJpZ2dlcmVkX2J1ZmZlcl9wcmVkaXNhYmxlKGluZGlvX2Rldik7DQo+ID4gLQ0KPiA+ICAg ICAgIG11dGV4X2xvY2soJmRhdGEtPm11dGV4KTsNCj4gPiANCj4gPiAgICAgICBmb3IgKGkgPSAw OyBpIDwgU1g5NTAwX05VTV9DSEFOTkVMUzsgaSsrKQ0KPiA+IEBAIC03MzAsNyArNzI4LDYgQEAg c3RhdGljIGludCBzeDk1MDBfYnVmZmVyX3ByZWRpc2FibGUoc3RydWN0IGlpb19kZXYNCj4gPiAq aW5kaW9fZGV2KQ0KPiA+IA0KPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGlpb19idWZmZXJfc2V0 dXBfb3BzIHN4OTUwMF9idWZmZXJfc2V0dXBfb3BzID0gew0KPiA+ICAgICAgIC5wcmVlbmFibGUg PSBzeDk1MDBfYnVmZmVyX3ByZWVuYWJsZSwNCj4gPiAtICAgICAucG9zdGVuYWJsZSA9IGlpb190 cmlnZ2VyZWRfYnVmZmVyX3Bvc3RlbmFibGUsDQo+ID4gICAgICAgLnByZWRpc2FibGUgPSBzeDk1 MDBfYnVmZmVyX3ByZWRpc2FibGUsDQo+ID4gIH07DQo+ID4gDQo=