Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp580492ybz; Fri, 24 Apr 2020 23:34:04 -0700 (PDT) X-Google-Smtp-Source: APiQypIv6LHxFB5sFqpfxnjNbXNFHvGxw9gb5T23MOisW0RSLW58GfXVr7ThLAbkNiGhZvA3KA67 X-Received: by 2002:a17:906:6a84:: with SMTP id p4mr5522995ejr.21.1587796444781; Fri, 24 Apr 2020 23:34:04 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1587796444; cv=pass; d=google.com; s=arc-20160816; b=e8fTNsaR52QJAWKAZribrpwNiLNlGxH/BvSDygBxI2jmDpQJWdfW9D0F2UojjX8xm9 TUIZCcvUICWbGH8ZSvZM6c/0/U/+lAEeSLoQeW8ZNLDQsRn8fEbIO7O4n6/2NrKLEdga m7fx8WSXYkZlpC7volKh45l5Wtian4FYqjlaz8EN+HUi8MfIi5I1/IfNcgO9XYJymi6a q7MPrz+Hxq/CMBLec/a3Jn/hRAmXTq+N3NBhYvy37Oa/fYXWkQx+7eHGlWjesSPpLtjR sq34NgYdNVV33SrqFmhubWS9luUxhgZGpp1u09imO2iC/UZlzekBkF3Ba1sWp5fX0Sdc ZhYQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=/Ju8Gm8TIWpokAvj4YGoeAZBgCzxfwJUhp5Tk9eRbLM=; b=WSPHhEqfO8qQouYr7AzgrRr7CdQe8nqx/8069EO95jLDl2eRllbWPDxXGJ3Lga+8we kPSnXw9kx4Ei/4VkAoU6kRKzdon7KjsTwjGam+8zeMhb+bcvF6/jOBxmUzN8sYfpVLSu Jmvj3LxY/dKb0UOyEk0jPjjbBTCrQgkAheGTolFkUqVdScGLSb59TfEmO4Kf6skkIAP1 m7eddMG9m020a+/PNJGCMAbteFRTcvlP5Ne6h8N7hqPCjF+DOIV1/HNOgN/rRdLkT1rR kjfZeObzmmdcSF/fjSClB6HPfdpdmIMz9tNJ5gt1oJB72qiGqVfxHH49xQpa5R5fg7aU bTMw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=wygB0t7+; arc=pass (i=1 spf=pass spfdomain=analog.com dkim=pass dkdomain=analog.com dmarc=pass fromdomain=analog.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f14si3228814edm.161.2020.04.24.23.33.27; Fri, 24 Apr 2020 23:34:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=wygB0t7+; arc=pass (i=1 spf=pass spfdomain=analog.com dkim=pass dkdomain=analog.com dmarc=pass fromdomain=analog.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726100AbgDYG2S (ORCPT + 99 others); Sat, 25 Apr 2020 02:28:18 -0400 Received: from mx0b-00128a01.pphosted.com ([148.163.139.77]:35718 "EHLO mx0b-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725837AbgDYG2R (ORCPT ); Sat, 25 Apr 2020 02:28:17 -0400 Received: from pps.filterd (m0167091.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 03P6Ids3029851; Sat, 25 Apr 2020 02:28:06 -0400 Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2172.outbound.protection.outlook.com [104.47.57.172]) by mx0b-00128a01.pphosted.com with ESMTP id 30meya83je-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 25 Apr 2020 02:28:05 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R00+v1RM+ESSHKjC0A9kJI7sSUPWBf8RbkTngYw+8JrUcUXDRz1S9WDjtNjr2GDYChhMCBs0sppO2J8PU64gJlLe052ZSI9wxYDtXXRN2YHpRklixUxPP/ORKvZQFqUt2hPgewFIZ26JsEaENUOyGNs0+J9YMW7UbhatAS53uag6/zrPfqrnao6As9gjMCLmNIAMvVfbYiboFDcQIcVecQMs4SX88pXeCVQ6BTRK0/OY8fVwJPJF/Tv0+oy2vvwODIIgVuXtOahuW/ITuY8Kh0ofRhonFn3I5TuGi9t8ioiDbDlhTg7cKiAa0TpHqxM0JAwe4BRnjLtp7jfadNSmKg== 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=/Ju8Gm8TIWpokAvj4YGoeAZBgCzxfwJUhp5Tk9eRbLM=; b=id+x0daa5oVBPomVawLTpLiXacQsNezzclLdTbLKPCYnsu6sWIJYklke7WiHBmxgFvE4cnx+AQlQwX1Qs/6Zl2kIYooIF5CO1nWsIJVFdIEHw8kV8SGVeGFqiem8QgTjBhgvbcsXulfSn8Rpr5zz3d3VGo6AREhjmVP6HfsohdpYCJe6xm0VGYRhCmd+pAVoBWubZTT0N5EktDMozO6QfzJKxaCjHtjOJrzV04u+ZyCEAniM4utn5KKxgN5/qbL5I7z/8oDBDR7WBUlYo1SIcrkruuSMbBbKOSGQmeZmz7v4aD1TSUumZEiCeKo6U1djCDCMP+jWazv8FHOLrIb3og== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=analog.com; dmarc=pass action=none header.from=analog.com; dkim=pass header.d=analog.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=analog.onmicrosoft.com; s=selector2-analog-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/Ju8Gm8TIWpokAvj4YGoeAZBgCzxfwJUhp5Tk9eRbLM=; b=wygB0t7+WVArgHbtVLk8ph4IUiLOYMl+4czUKZOlj6hrFIl0JECB0A8jriFm4WHcArKGKl2AD0/0PKxniOy2Oz9+zhVefDqFMuOT1SDuNL6UH1SJFk3ZZb5pMSpKu6j+a2TC+FAiINMOV3Un/iIyyqf8DAkXkFlG71kuCOuBBsg= Received: from DM6PR03MB4411.namprd03.prod.outlook.com (2603:10b6:5:10f::14) by DM6PR03MB4123.namprd03.prod.outlook.com (2603:10b6:5:55::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.29; Sat, 25 Apr 2020 06:28:03 +0000 Received: from DM6PR03MB4411.namprd03.prod.outlook.com ([fe80::c47f:ceee:cfda:6a7f]) by DM6PR03MB4411.namprd03.prod.outlook.com ([fe80::c47f:ceee:cfda:6a7f%3]) with mapi id 15.20.2937.020; Sat, 25 Apr 2020 06:28:03 +0000 From: "Ardelean, Alexandru" To: "srinivas.pandruvada@linux.intel.com" , "linux-input@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-iio@vger.kernel.org" CC: "jic23@kernel.org" Subject: Re: [PATCH] iio: hid-sensors: move triggered buffer setup into hid_sensor_setup_trigger Thread-Topic: [PATCH] iio: hid-sensors: move triggered buffer setup into hid_sensor_setup_trigger Thread-Index: AQHWGfGeWTqeGwaKFUSvVXgit2QrZaiIy3sAgACXH4A= Date: Sat, 25 Apr 2020 06:28:03 +0000 Message-ID: <5fef17cf2d9694ce897fe2bb1a4687dc48850f88.camel@analog.com> References: <20200424043418.3579-1-alexandru.ardelean@analog.com> <9bdf62ca5de58c6fff452691fae51692198f3b75.camel@linux.intel.com> In-Reply-To: <9bdf62ca5de58c6fff452691fae51692198f3b75.camel@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [188.27.130.47] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 89ace549-fc2c-496a-9424-08d7e8e1cf3c x-ms-traffictypediagnostic: DM6PR03MB4123: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0384275935 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB4411.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10009020)(396003)(136003)(366004)(346002)(376002)(39860400002)(76116006)(478600001)(64756008)(30864003)(86362001)(66476007)(6486002)(91956017)(66946007)(66446008)(66556008)(6512007)(186003)(110136005)(2906002)(81156014)(2616005)(6506007)(5660300002)(4326008)(36756003)(8936002)(8676002)(26005)(316002)(71200400001)(579004)(559001);DIR:OUT;SFP:1101; received-spf: None (protection.outlook.com: analog.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mU36cLJV9IH/eJGRQCo9WhrKJETQyoyWv/0LUIsoZj7rCl3ipDFJ79N7lTZQZG8KWOH1ztls64nAp2YQoVkhdBq7n2pZ3tmZp+UpCr4s/JRqEBrEIF4O7G8yNBZ8UlPrO7QUAr/h0DYAk0hkawMxSWaaQUz0okTzzkprKWRtA8LPL6cnb2qkCzz9CG8XNeWPPzfOjE+RLtU/9K8GCP2jV3Je35riFerHUmKstfnvceKSSIMOt+8p9wvvqGa8A3CGneWmOe8/qUGVUr8wX9DQ1ORqao4jpUeG86xvhbtCZyR4WQdJ6I9dxZCJn/RpYRn3QHnhyiaj+gpfx9+e8cuQX7H+smbQo07AgDqVbgHeoz2ebYOGGOestmhCIpLRxF6PtNXYWkZeeb7/Oh4bdMjs6sPU4v4S0azr/evYfBrqeLbl4f/im1Qv7dH3BAiCDRbM x-ms-exchange-antispam-messagedata: jV1pgzih7zRmjitqopMORcafbX0fo2xVK0xr4apSAgHqxocE5P9Zceky85yzQrHhLIFRLWDjPGqB87hawyLPULr5EtxJy9n7rlsAzclH6M2h+Fie7N86unQ1HU2b19GRH4w3Tc+VsjbzUN2Cr5QV3hZWjYt2Om+Kx3GAzOAEC3K52ezq88jJtufJJxGkQvyjLcGJVkmUtkzgHyJa1pt6uThskFdXdONxOncJKM/aX17PVnJuVV/zfakBVxa131o1/C49zRIO8ldD9GwjuVFD9X+AAgbtvYAw2rhO3/brqf7IMPtCvk1QhNC6oQk0oDKvxfQTlh+wlE/ew9aFvvnNfdgdnVeFatsjPoNJhYllVxEUPEFSWUw4DgThjAGEo7Ztnprtah8LQw8OXvgdmtaJjoRz3jIsMQLuGSmkAZN09B+wjVvm/98vnv504BvmQgltyGQOClW0Q+x/9PM/1yJI37QJ1J0jyKk08NZPGW0mkumgx/CSWExOdDP9qORXNQBiLXYOPXCnNVowSXjsyXnZGpevSTi9GZ/2gM5IFOBd19jZZ3cSKEv79vdRpntHoVcL5KH38IzaAk1fEDA8rCsWubwjSJHhcjx5Q47FLwQDpQVe5d7fUxQdNmGCBdTc3GZFji/T9JjbWU9fvW9KTrZgnDWbIVUkppKvxxI+Owl5MkNtNbuR5PDpwxM9ZBQslap82B3bQOFSfJvUaVRXqHSWmQDa7nFqWJskCdEXI8FeBrWPlcLylVOkzoQ1ybUicB14Ts7d86sG2TclFtIqksLMYKEVaCa0OLMFOLkpzX6VfhQ= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <8C85AF3894A32F419B7F7563F77FC019@namprd03.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89ace549-fc2c-496a-9424-08d7e8e1cf3c X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Apr 2020 06:28:03.7254 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: eaa689b4-8f87-40e0-9c6f-7228de4d754a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0YfRPo9pETKvAEZnPIpVxBQh85ZOTRXNFw6Ca/X2fIn1RRN6Glycd/q8EljebJFfsrfe36KkK3b3YPp1osPTCIeamBxbtrFMex7sKcPWLDc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4123 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.676 definitions=2020-04-25_01:2020-04-24,2020-04-25 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 impostorscore=0 mlxscore=0 spamscore=0 phishscore=0 suspectscore=0 clxscore=1015 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004250053 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gRnJpLCAyMDIwLTA0LTI0IGF0IDE0OjMxIC0wNzAwLCBTcmluaXZhcyBQYW5kcnV2YWRhIHdy b3RlOg0KPiBbRXh0ZXJuYWxdDQo+IA0KPiBPbiBGcmksIDIwMjAtMDQtMjQgYXQgMDc6MzQgKzAz MDAsIEFsZXhhbmRydSBBcmRlbGVhbiB3cm90ZToNCj4gPiBUaGUgbWFpbiBpbnRlbnQgaGVyZSBp cyB0byBnZXQgcmlkIG9mIHRoZSBpaW9fYnVmZmVyX3NldF9hdHRycygpDQo+ID4gaGVscGVyLCBv cg0KPiA+IGF0IGxlYXN0IHJld29yayBpdCdzIHVzYWdlIGEgYml0Lg0KPiA+IFRoZSBwcm9ibGVt IHdpdGggdGhhdCBoZWxwZXIgaXMgdGhhdCBpdCBuZWVkcyBhIHBvaW50ZXIgdG8gdGhlDQo+ID4g YnVmZmVyLA0KPiA+IHdoaWNoIG1ha2VzIHN1cHBvcnRpbmcgbXVsdGlwbGUgYnVmZmVycyBwZXIg SUlPIGRldmljZSBhIGJpdCBtb3JlDQo+ID4gY3VtYmVyc29tZS4NCj4gPiANCj4gPiBUaGUgaGlk X3NlbnNvcl9zZXR1cF90cmlnZ2VyKCkgaXMgcHJldHR5IG11Y2ggdXNlZCBpbiB0aGUgc2FtZSB3 YXk6DQo+ID4gLSBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cCgpIGdldHMgY2FsbGVkIGJlZm9y ZQ0KPiA+IC0gdGhlbiBoaWRfc2Vuc29yX3NldHVwX3RyaWdnZXIoKSBhbmQgaGlkX3NlbnNvcl9z ZXR1cF9iYXRjaF9tb2RlKCkNCj4gPiBnZXRzDQo+ID4gICBjYWxsZWQgd2hpY2ggbWF5IGF0dGFj aCBzb21lIGZpZm8gYXR0cmlidXRlcw0KPiA+IA0KPiA+IFRoaXMgY2hhbmdlIG1lcmdlcyB0aGUg MiB0b2dldGhlciB1bmRlciB0aGUNCj4gPiBoaWRfc2Vuc29yX3NldHVwX3RyaWdnZXIoKQ0KPiA+ IGZ1bmN0aW9uLiBPbmx5IHRoZSAmaWlvX3BvbGxmdW5jX3N0b3JlX3RpbWUgaXMgcGFzc2VkIHRv IGFsbCBkZXZpY2VzLA0KPiA+IHNvDQo+ID4gaXQncyBub3QgZXZlbiByZXF1aXJlZCB0byBwYXNz IGl0IGV4cGxpY2l0bHkgb3V0c2lkZSBvZiB0aGUgY29tbW9uDQo+ID4gaGlkX3NlbnNvcl9zZXR1 cF90cmlnZ2VyKCkgZnVuY3Rpb24uDQo+ID4gDQo+ID4gTW92aW5nIHRoZSBkZXZtX2lpb190cmln Z2VyZWRfYnVmZmVyX3NldHVwL2NsZWFudXAoKSBjYWxscyBpbnRvIHRoZQ0KPiA+IGNvbW1vbg0K PiA+IHBsYWNlIGNvZGUgY2FuIGhlbHAgdGhlIHJld29yayBvZiB0aGUgYnVmZmVyIGNvZGUsIHNp bmNlIGl0IGlzIGluIG9uZQ0KPiA+IHBsYWNlLg0KPiA+IA0KPiA+IE9uZSBkZXRhaWwgb2YgdGhl IGNoYW5nZSBpcyB0aGF0IHRoZXJlIGFyZSAyIGRyaXZlcnMgdGhhdCB1c2UNCj4gPiBkZXZtX2lp b190cmlnZ2VyZWRfYnVmZmVyX3NldHVwKCkuIFRoYXQgZnVuY3Rpb24gZ2V0cyBpbXBsaWNpdGx5 DQo+ID4gcmVwbGFjZWQgd2l0aCBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cCgpL2NsZWFudXAo KSwgYnV0IHNpbmNlIGFsbA0KPiA+IGRyaXZlcnMNCj4gPiBjYWxsIGJvdGggaGlkX3NlbnNvcl9z ZXR1cF90cmlnZ2VyOSkgJiBoaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCkNCj4gPiB0cmlnZ2Vy LA0KPiA+IHRoZSBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9jbGVhbnVwKCkgcGlnZ3kgYmFja3Mgb24g dGhlDQo+ID4gaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigpIGNhbGwsIHdoaWNoIHNob3VsZCBj b3ZlciB0aGUgY2xlYW51cC4NCj4gDQo+IERpZCB5b3UgdGVzdCBvbiBhbnkgcGxhdGZvcm0/IFlv dSBjYW4gY2hlY2sgYW55IGxhdGVyIGxhcHRvcHMgYW5kIGNoZWNrDQo+IGRpc3BsYXkgcm90YXRp b24uDQoNClNvcnJ5LCBJIGRpZG4ndC4NCkkgZG8gcmVtZW1iZXIgc2VlaW5nIHRoaXMgb24gc29t ZSBzbWFsbGVyIHRhYmxldC1sYXB0b3BzLCBidXQgSSBkb24ndCBoYXZlIG9uZQ0KYXJvdW5kLg0K VGhlIG5ld2VzdCBJIGhhdmUgaXMgRGVsbCBQcmVjaXNpb24gNTUyMCBmcm9tIDIgeWVhcnMgYWdv LiBXaGljaCBpcyBtb3JlIG9mIGFuDQpvZmZpY2UgbGFwdG9wLg0KDQpJIGNhbid0IHNlZW0gdG8g ZmluZCBhbnkgSUlPIGRldmljZXMgb24gaXQuDQpTbywgSSBkb24ndCB0aGluayBpdCBoYXMgYW55 IGRpc3BsYXkgcm90YXRpb247IG9uIFdpbmRvd3MgSSdtIHByZXR0eSBzdXJlIEkNCmRpZG4ndCBz ZWUgYW55dGhpbmcgYWJvdXQuDQoNCk1heWJlIEkgbWlzc2VkIGl0Lg0KQW55IHBvaW50ZXJzIGFy ZSBhcHByZWNpYXRlZC4NCg0KVGhhbmtzDQpBbGV4DQoNCj4gDQo+IFRoYW5rcywNCj4gU3Jpbml2 YXMNCj4gDQo+ID4gU2lnbmVkLW9mZi1ieTogQWxleGFuZHJ1IEFyZGVsZWFuIDxhbGV4YW5kcnUu YXJkZWxlYW5AYW5hbG9nLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9paW8vYWNjZWwvaGlk LXNlbnNvci1hY2NlbC0zZC5jICAgICAgICB8IDE4ICsrKystLS0tLS0tLS0tDQo+ID4gLS0tLQ0K PiA+ICAuLi4vY29tbW9uL2hpZC1zZW5zb3JzL2hpZC1zZW5zb3ItdHJpZ2dlci5jICAgIHwgMTgg KysrKysrKysrKysrKysrLQ0KPiA+IC0tDQo+ID4gIC4uLi9jb21tb24vaGlkLXNlbnNvcnMvaGlk LXNlbnNvci10cmlnZ2VyLmggICAgfCAgMyArKy0NCj4gPiAgZHJpdmVycy9paW8vZ3lyby9oaWQt c2Vuc29yLWd5cm8tM2QuYyAgICAgICAgICB8IDE4ICsrKystLS0tLS0tLS0tDQo+ID4gLS0tLQ0K PiA+ICBkcml2ZXJzL2lpby9odW1pZGl0eS9oaWQtc2Vuc29yLWh1bWlkaXR5LmMgICAgIHwgMTIg KysrLS0tLS0tLS0tDQo+ID4gIGRyaXZlcnMvaWlvL2xpZ2h0L2hpZC1zZW5zb3ItYWxzLmMgICAg ICAgICAgICAgfCAxOCArKysrLS0tLS0tLS0tLQ0KPiA+IC0tLS0NCj4gPiAgZHJpdmVycy9paW8v bGlnaHQvaGlkLXNlbnNvci1wcm94LmMgICAgICAgICAgICB8IDE4ICsrKystLS0tLS0tLS0tDQo+ ID4gLS0tLQ0KPiA+ICBkcml2ZXJzL2lpby9tYWduZXRvbWV0ZXIvaGlkLXNlbnNvci1tYWduLTNk LmMgIHwgMTggKysrKy0tLS0tLS0tLS0NCj4gPiAtLS0tDQo+ID4gIGRyaXZlcnMvaWlvL29yaWVu dGF0aW9uL2hpZC1zZW5zb3ItaW5jbC0zZC5jICAgfCAxOCArKysrLS0tLS0tLS0tLQ0KPiA+IC0t LS0NCj4gPiAgZHJpdmVycy9paW8vb3JpZW50YXRpb24vaGlkLXNlbnNvci1yb3RhdGlvbi5jICB8 IDE4ICsrKystLS0tLS0tLS0tDQo+ID4gLS0tLQ0KPiA+ICBkcml2ZXJzL2lpby9wcmVzc3VyZS9o aWQtc2Vuc29yLXByZXNzLmMgICAgICAgIHwgMTggKysrKy0tLS0tLS0tLS0NCj4gPiAtLS0tDQo+ ID4gIC4uLi9paW8vdGVtcGVyYXR1cmUvaGlkLXNlbnNvci10ZW1wZXJhdHVyZS5jICAgfCAxMiAr KystLS0tLS0tLS0NCj4gPiAgMTIgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMTM0 IGRlbGV0aW9ucygtKQ0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9hY2NlbC9o aWQtc2Vuc29yLWFjY2VsLTNkLmMNCj4gPiBiL2RyaXZlcnMvaWlvL2FjY2VsL2hpZC1zZW5zb3It YWNjZWwtM2QuYw0KPiA+IGluZGV4IDBkOWUyZGVmMmIyNS4uMGVjMDUzMzQ0OGJjIDEwMDY0NA0K PiA+IC0tLSBhL2RyaXZlcnMvaWlvL2FjY2VsL2hpZC1zZW5zb3ItYWNjZWwtM2QuYw0KPiA+ICsr KyBiL2RyaXZlcnMvaWlvL2FjY2VsL2hpZC1zZW5zb3ItYWNjZWwtM2QuYw0KPiA+IEBAIC0xNCw4 ICsxNCw2IEBADQo+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vaWlvLmg+DQo+ID4gICNpbmNsdWRl IDxsaW51eC9paW8vc3lzZnMuaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9idWZmZXIuaD4N Cj4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyX2NvbnN1bWVyLmg+DQo+ID4gLSNpbmNs dWRlIDxsaW51eC9paW8vdHJpZ2dlcmVkX2J1ZmZlci5oPg0KPiA+ICAjaW5jbHVkZSAiLi4vY29t bW9uL2hpZC1zZW5zb3JzL2hpZC1zZW5zb3ItdHJpZ2dlci5oIg0KPiA+ICANCj4gPiAgZW51bSBh Y2NlbF8zZF9jaGFubmVsIHsNCj4gPiBAQCAtMzkxLDE4ICszODksMTMgQEAgc3RhdGljIGludCBo aWRfYWNjZWxfM2RfcHJvYmUoc3RydWN0DQo+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ ICAJaW5kaW9fZGV2LT5uYW1lID0gbmFtZTsNCj4gPiAgCWluZGlvX2Rldi0+bW9kZXMgPSBJTkRJ T19ESVJFQ1RfTU9ERTsNCj4gPiAgDQo+ID4gLQlyZXQgPSBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9z ZXR1cChpbmRpb19kZXYsDQo+ID4gJmlpb19wb2xsZnVuY19zdG9yZV90aW1lLA0KPiA+IC0JCU5V TEwsIE5VTEwpOw0KPiA+IC0JaWYgKHJldCkgew0KPiA+IC0JCWRldl9lcnIoJnBkZXYtPmRldiwg ImZhaWxlZCB0byBpbml0aWFsaXplIHRyaWdnZXINCj4gPiBidWZmZXJcbiIpOw0KPiA+IC0JCWdv dG8gZXJyb3JfZnJlZV9kZXZfbWVtOw0KPiA+IC0JfQ0KPiA+ICAJYXRvbWljX3NldCgmYWNjZWxf c3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVzLmRhdGFfcmVhZHksIDApOw0KPiA+ICsNCj4gPiAgCXJl dCA9IGhpZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihpbmRpb19kZXYsIG5hbWUsDQo+ID4gIAkJCQkJ JmFjY2VsX3N0YXRlLQ0KPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ICAJaWYgKHJldCA8 IDApIHsNCj4gPiAgCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ0cmlnZ2VyIHNldHVwIGZhaWxlZFxu Iik7DQo+ID4gLQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJfZnVuY3M7DQo+ID4gKwkJZ290byBl cnJvcl9mcmVlX2Rldl9tZW07DQo+ID4gIAl9DQo+ID4gIA0KPiA+ICAJcmV0ID0gaWlvX2Rldmlj ZV9yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+IEBAIC00MjYsOSArNDE5LDcgQEAgc3RhdGljIGlu dCBoaWRfYWNjZWxfM2RfcHJvYmUoc3RydWN0DQo+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0K PiA+ICBlcnJvcl9paW9fdW5yZWc6DQo+ID4gIAlpaW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9f ZGV2KTsNCj4gPiAgZXJyb3JfcmVtb3ZlX3RyaWdnZXI6DQo+ID4gLQloaWRfc2Vuc29yX3JlbW92 ZV90cmlnZ2VyKCZhY2NlbF9zdGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+IC1lcnJvcl91 bnJlZ19idWZmZXJfZnVuY3M6DQo+ID4gLQlpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9jbGVhbnVwKGlu ZGlvX2Rldik7DQo+ID4gKwloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKGluZGlvX2RldiwgJmFj Y2VsX3N0YXRlLQ0KPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ICBlcnJvcl9mcmVlX2Rl dl9tZW06DQo+ID4gIAlrZnJlZShpbmRpb19kZXYtPmNoYW5uZWxzKTsNCj4gPiAgCXJldHVybiBy ZXQ7DQo+ID4gQEAgLTQ0Myw4ICs0MzQsNyBAQCBzdGF0aWMgaW50IGhpZF9hY2NlbF8zZF9yZW1v dmUoc3RydWN0DQo+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICANCj4gPiAgCXNlbnNv cl9odWJfcmVtb3ZlX2NhbGxiYWNrKGhzZGV2LCBoc2Rldi0+dXNhZ2UpOw0KPiA+ICAJaWlvX2Rl dmljZV91bnJlZ2lzdGVyKGluZGlvX2Rldik7DQo+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmln Z2VyKCZhY2NlbF9zdGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+IC0JaWlvX3RyaWdnZXJl ZF9idWZmZXJfY2xlYW51cChpbmRpb19kZXYpOw0KPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJp Z2dlcihpbmRpb19kZXYsICZhY2NlbF9zdGF0ZS0NCj4gPiA+IGNvbW1vbl9hdHRyaWJ1dGVzKTsN Cj4gPiAgCWtmcmVlKGluZGlvX2Rldi0+Y2hhbm5lbHMpOw0KPiA+ICANCj4gPiAgCXJldHVybiAw Ow0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9jb21tb24vaGlkLXNlbnNvcnMvaGlkLXNl bnNvci10cmlnZ2VyLmMNCj4gPiBiL2RyaXZlcnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQt c2Vuc29yLXRyaWdnZXIuYw0KPiA+IGluZGV4IDkwNmQ4Nzc4MDQxOS4uZmYzNzU3OTBiN2U4IDEw MDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29y LXRyaWdnZXIuYw0KPiA+ICsrKyBiL2RyaXZlcnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQt c2Vuc29yLXRyaWdnZXIuYw0KPiA+IEBAIC0xMyw2ICsxMyw4IEBADQo+ID4gICNpbmNsdWRlIDxs aW51eC9oaWQtc2Vuc29yLWh1Yi5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2lpby5oPg0K PiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL3RyaWdnZXIuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4 L2lpby90cmlnZ2VyZWRfYnVmZmVyLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dl cl9jb25zdW1lci5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2J1ZmZlci5oPg0KPiA+ICAj aW5jbHVkZSA8bGludXgvaWlvL3N5c2ZzLmg+DQo+ID4gICNpbmNsdWRlICJoaWQtc2Vuc29yLXRy aWdnZXIuaCINCj4gPiBAQCAtMjIyLDcgKzIyNCw4IEBAIHN0YXRpYyBpbnQNCj4gPiBoaWRfc2Vu c29yX2RhdGFfcmR5X3RyaWdnZXJfc2V0X3N0YXRlKHN0cnVjdCBpaW9fdHJpZ2dlciAqdHJpZywN Cj4gPiAgCXJldHVybiBoaWRfc2Vuc29yX3Bvd2VyX3N0YXRlKGlpb190cmlnZ2VyX2dldF9kcnZk YXRhKHRyaWcpLA0KPiA+IHN0YXRlKTsNCj4gPiAgfQ0KPiA+ICANCj4gPiAtdm9pZCBoaWRfc2Vu c29yX3JlbW92ZV90cmlnZ2VyKHN0cnVjdCBoaWRfc2Vuc29yX2NvbW1vbiAqYXR0cmIpDQo+ID4g K3ZvaWQgaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2 LA0KPiA+ICsJCQkgICAgICAgc3RydWN0IGhpZF9zZW5zb3JfY29tbW9uICphdHRyYikNCj4gPiAg ew0KPiA+ICAJaWYgKGF0b21pY19yZWFkKCZhdHRyYi0+cnVudGltZV9wbV9lbmFibGUpKQ0KPiA+ ICAJCXBtX3J1bnRpbWVfZGlzYWJsZSgmYXR0cmItPnBkZXYtPmRldik7DQo+ID4gQEAgLTIzMyw2 ICsyMzYsNyBAQCB2b2lkIGhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIoc3RydWN0DQo+ID4gaGlk X3NlbnNvcl9jb21tb24gKmF0dHJiKQ0KPiA+ICAJY2FuY2VsX3dvcmtfc3luYygmYXR0cmItPndv cmspOw0KPiA+ICAJaWlvX3RyaWdnZXJfdW5yZWdpc3RlcihhdHRyYi0+dHJpZ2dlcik7DQo+ID4g IAlpaW9fdHJpZ2dlcl9mcmVlKGF0dHJiLT50cmlnZ2VyKTsNCj4gPiArCWlpb190cmlnZ2VyZWRf YnVmZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4gPiAgfQ0KPiA+ICBFWFBPUlRfU1lNQk9MKGhp ZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIpOw0KPiA+ICANCj4gPiBAQCAtMjQ2LDExICsyNTAsMTgg QEAgaW50IGhpZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihzdHJ1Y3QgaWlvX2Rldg0KPiA+ICppbmRp b19kZXYsIGNvbnN0IGNoYXIgKm5hbWUsDQo+ID4gIAlpbnQgcmV0Ow0KPiA+ICAJc3RydWN0IGlp b190cmlnZ2VyICp0cmlnOw0KPiA+ICANCj4gPiArCXJldCA9IGlpb190cmlnZ2VyZWRfYnVmZmVy X3NldHVwKGluZGlvX2RldiwNCj4gPiAmaWlvX3BvbGxmdW5jX3N0b3JlX3RpbWUsDQo+ID4gKwkJ CQkJIE5VTEwsIE5VTEwpOw0KPiA+ICsJaWYgKHJldCkgew0KPiA+ICsJCWRldl9lcnIoJmluZGlv X2Rldi0+ZGV2LCAiVHJpZ2dlcmVkIEJ1ZmZlciBTZXR1cA0KPiA+IEZhaWxlZFxuIik7DQo+ID4g KwkJcmV0dXJuIHJldDsNCj4gPiArCX0NCj4gPiArDQo+ID4gIAl0cmlnID0gaWlvX3RyaWdnZXJf YWxsb2MoIiVzLWRldiVkIiwgbmFtZSwgaW5kaW9fZGV2LT5pZCk7DQo+ID4gIAlpZiAodHJpZyA9 PSBOVUxMKSB7DQo+ID4gIAkJZGV2X2VycigmaW5kaW9fZGV2LT5kZXYsICJUcmlnZ2VyIEFsbG9j YXRlIEZhaWxlZFxuIik7DQo+ID4gIAkJcmV0ID0gLUVOT01FTTsNCj4gPiAtCQlnb3RvIGVycm9y X3JldDsNCj4gPiArCQlnb3RvIGVycm9yX3RyaWdnZXJlZF9idWZmZXJfY2xlYW51cDsNCj4gPiAg CX0NCj4gPiAgDQo+ID4gIAl0cmlnLT5kZXYucGFyZW50ID0gaW5kaW9fZGV2LT5kZXYucGFyZW50 Ow0KPiA+IEBAIC0yODQsNyArMjk1LDggQEAgaW50IGhpZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihz dHJ1Y3QgaWlvX2Rldg0KPiA+ICppbmRpb19kZXYsIGNvbnN0IGNoYXIgKm5hbWUsDQo+ID4gIAlp aW9fdHJpZ2dlcl91bnJlZ2lzdGVyKHRyaWcpOw0KPiA+ICBlcnJvcl9mcmVlX3RyaWc6DQo+ID4g IAlpaW9fdHJpZ2dlcl9mcmVlKHRyaWcpOw0KPiA+IC1lcnJvcl9yZXQ6DQo+ID4gK2Vycm9yX3Ry aWdnZXJlZF9idWZmZXJfY2xlYW51cDoNCj4gPiArCWlpb190cmlnZ2VyZWRfYnVmZmVyX2NsZWFu dXAoaW5kaW9fZGV2KTsNCj4gPiAgCXJldHVybiByZXQ7DQo+ID4gIH0NCj4gPiAgRVhQT1JUX1NZ TUJPTChoaWRfc2Vuc29yX3NldHVwX3RyaWdnZXIpOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2lpby9jb21tb24vaGlkLXNlbnNvcnMvaGlkLXNlbnNvci10cmlnZ2VyLmgNCj4gPiBiL2RyaXZl cnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuaA0KPiA+IGluZGV4 IGY0N2I5NDBmZjE3MC4uYmI0NWNjODllNTUxIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvaWlv L2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuaA0KPiA+ICsrKyBiL2RyaXZl cnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuaA0KPiA+IEBAIC0x Myw3ICsxMyw4IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBoaWRfc2Vuc29yX3Bt X29wczsNCj4gPiAgDQo+ID4gIGludCBoaWRfc2Vuc29yX3NldHVwX3RyaWdnZXIoc3RydWN0IGlp b19kZXYgKmluZGlvX2RldiwgY29uc3QgY2hhcg0KPiA+ICpuYW1lLA0KPiA+ICAJCQkJc3RydWN0 IGhpZF9zZW5zb3JfY29tbW9uICphdHRyYik7DQo+ID4gLXZvaWQgaGlkX3NlbnNvcl9yZW1vdmVf dHJpZ2dlcihzdHJ1Y3QgaGlkX3NlbnNvcl9jb21tb24gKmF0dHJiKTsNCj4gPiArdm9pZCBoaWRf c2Vuc29yX3JlbW92ZV90cmlnZ2VyKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsDQo+ID4gKwkJ CSAgICAgICBzdHJ1Y3QgaGlkX3NlbnNvcl9jb21tb24gKmF0dHJiKTsNCj4gPiAgaW50IGhpZF9z ZW5zb3JfcG93ZXJfc3RhdGUoc3RydWN0IGhpZF9zZW5zb3JfY29tbW9uICpzdCwgYm9vbA0KPiA+ IHN0YXRlKTsNCj4gPiAgDQo+ID4gICNlbmRpZg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lp by9neXJvL2hpZC1zZW5zb3ItZ3lyby0zZC5jDQo+ID4gYi9kcml2ZXJzL2lpby9neXJvL2hpZC1z ZW5zb3ItZ3lyby0zZC5jDQo+ID4gaW5kZXggMDhjYWNiYmYzMWU2Li43ZjM4MmFhZTFkZmQgMTAw NjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9paW8vZ3lyby9oaWQtc2Vuc29yLWd5cm8tM2QuYw0KPiA+ ICsrKyBiL2RyaXZlcnMvaWlvL2d5cm8vaGlkLXNlbnNvci1neXJvLTNkLmMNCj4gPiBAQCAtMTQs OCArMTQsNiBAQA0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2lpby5oPg0KPiA+ICAjaW5jbHVk ZSA8bGludXgvaWlvL3N5c2ZzLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vYnVmZmVyLmg+ DQo+ID4gLSNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dlcl9jb25zdW1lci5oPg0KPiA+IC0jaW5j bHVkZSA8bGludXgvaWlvL3RyaWdnZXJlZF9idWZmZXIuaD4NCj4gPiAgI2luY2x1ZGUgIi4uL2Nv bW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuaCINCj4gPiAgDQo+ID4gIGVudW0g Z3lyb18zZF9jaGFubmVsIHsNCj4gPiBAQCAtMzI2LDE4ICszMjQsMTMgQEAgc3RhdGljIGludCBo aWRfZ3lyb18zZF9wcm9iZShzdHJ1Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4g IAlpbmRpb19kZXYtPm5hbWUgPSBuYW1lOw0KPiA+ICAJaW5kaW9fZGV2LT5tb2RlcyA9IElORElP X0RJUkVDVF9NT0RFOw0KPiA+ICANCj4gPiAtCXJldCA9IGlpb190cmlnZ2VyZWRfYnVmZmVyX3Nl dHVwKGluZGlvX2RldiwNCj4gPiAmaWlvX3BvbGxmdW5jX3N0b3JlX3RpbWUsDQo+ID4gLQkJTlVM TCwgTlVMTCk7DQo+ID4gLQlpZiAocmV0KSB7DQo+ID4gLQkJZGV2X2VycigmcGRldi0+ZGV2LCAi ZmFpbGVkIHRvIGluaXRpYWxpemUgdHJpZ2dlcg0KPiA+IGJ1ZmZlclxuIik7DQo+ID4gLQkJZ290 byBlcnJvcl9mcmVlX2Rldl9tZW07DQo+ID4gLQl9DQo+ID4gIAlhdG9taWNfc2V0KCZneXJvX3N0 YXRlLT5jb21tb25fYXR0cmlidXRlcy5kYXRhX3JlYWR5LCAwKTsNCj4gPiArDQo+ID4gIAlyZXQg PSBoaWRfc2Vuc29yX3NldHVwX3RyaWdnZXIoaW5kaW9fZGV2LCBuYW1lLA0KPiA+ICAJCQkJCSZn eXJvX3N0YXRlLQ0KPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ICAJaWYgKHJldCA8IDAp IHsNCj4gPiAgCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ0cmlnZ2VyIHNldHVwIGZhaWxlZFxuIik7 DQo+ID4gLQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJfZnVuY3M7DQo+ID4gKwkJZ290byBlcnJv cl9mcmVlX2Rldl9tZW07DQo+ID4gIAl9DQo+ID4gIA0KPiA+ICAJcmV0ID0gaWlvX2RldmljZV9y ZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+IEBAIC0zNjEsOSArMzU0LDcgQEAgc3RhdGljIGludCBo aWRfZ3lyb18zZF9wcm9iZShzdHJ1Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4g IGVycm9yX2lpb191bnJlZzoNCj4gPiAgCWlpb19kZXZpY2VfdW5yZWdpc3RlcihpbmRpb19kZXYp Ow0KPiA+ICBlcnJvcl9yZW1vdmVfdHJpZ2dlcjoNCj4gPiAtCWhpZF9zZW5zb3JfcmVtb3ZlX3Ry aWdnZXIoJmd5cm9fc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiAtZXJyb3JfdW5yZWdf YnVmZmVyX2Z1bmNzOg0KPiA+IC0JaWlvX3RyaWdnZXJlZF9idWZmZXJfY2xlYW51cChpbmRpb19k ZXYpOw0KPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihpbmRpb19kZXYsICZneXJvX3N0 YXRlLQ0KPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ICBlcnJvcl9mcmVlX2Rldl9tZW06 DQo+ID4gIAlrZnJlZShpbmRpb19kZXYtPmNoYW5uZWxzKTsNCj4gPiAgCXJldHVybiByZXQ7DQo+ ID4gQEAgLTM3OCw4ICszNjksNyBAQCBzdGF0aWMgaW50IGhpZF9neXJvXzNkX3JlbW92ZShzdHJ1 Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gIA0KPiA+ICAJc2Vuc29yX2h1Yl9y ZW1vdmVfY2FsbGJhY2soaHNkZXYsIEhJRF9VU0FHRV9TRU5TT1JfR1lST18zRCk7DQo+ID4gIAlp aW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiAtCWhpZF9zZW5zb3JfcmVtb3Zl X3RyaWdnZXIoJmd5cm9fc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiAtCWlpb190cmln Z2VyZWRfYnVmZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4gPiArCWhpZF9zZW5zb3JfcmVtb3Zl X3RyaWdnZXIoaW5kaW9fZGV2LCAmZ3lyb19zdGF0ZS0NCj4gPiA+IGNvbW1vbl9hdHRyaWJ1dGVz KTsNCj4gPiAgCWtmcmVlKGluZGlvX2Rldi0+Y2hhbm5lbHMpOw0KPiA+ICANCj4gPiAgCXJldHVy biAwOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9odW1pZGl0eS9oaWQtc2Vuc29yLWh1 bWlkaXR5LmMNCj4gPiBiL2RyaXZlcnMvaWlvL2h1bWlkaXR5L2hpZC1zZW5zb3ItaHVtaWRpdHku Yw0KPiA+IGluZGV4IGM5OWI1NGIwNTY4ZC4uZDIzMThjNGFhYjBmIDEwMDY0NA0KPiA+IC0tLSBh L2RyaXZlcnMvaWlvL2h1bWlkaXR5L2hpZC1zZW5zb3ItaHVtaWRpdHkuYw0KPiA+ICsrKyBiL2Ry aXZlcnMvaWlvL2h1bWlkaXR5L2hpZC1zZW5zb3ItaHVtaWRpdHkuYw0KPiA+IEBAIC03LDggKzcs NiBAQA0KPiA+ICAjaW5jbHVkZSA8bGludXgvaGlkLXNlbnNvci1odWIuaD4NCj4gPiAgI2luY2x1 ZGUgPGxpbnV4L2lpby9idWZmZXIuaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9paW8uaD4N Cj4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyZWRfYnVmZmVyLmg+DQo+ID4gLSNpbmNs dWRlIDxsaW51eC9paW8vdHJpZ2dlcl9jb25zdW1lci5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgv bW9kdWxlLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4gPiAg DQo+ID4gQEAgLTIzMywxMiArMjMxLDggQEAgc3RhdGljIGludCBoaWRfaHVtaWRpdHlfcHJvYmUo c3RydWN0DQo+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAJaW5kaW9fZGV2LT5uYW1l ID0gbmFtZTsNCj4gPiAgCWluZGlvX2Rldi0+bW9kZXMgPSBJTkRJT19ESVJFQ1RfTU9ERTsNCj4g PiAgDQo+ID4gLQlyZXQgPSBkZXZtX2lpb190cmlnZ2VyZWRfYnVmZmVyX3NldHVwKCZwZGV2LT5k ZXYsIGluZGlvX2RldiwNCj4gPiAtCQkJCQkmaWlvX3BvbGxmdW5jX3N0b3JlX3RpbWUsIE5VTEws DQo+ID4gTlVMTCk7DQo+ID4gLQlpZiAocmV0KQ0KPiA+IC0JCXJldHVybiByZXQ7DQo+ID4gLQ0K PiA+ICAJYXRvbWljX3NldCgmaHVtaWRfc3QtPmNvbW1vbl9hdHRyaWJ1dGVzLmRhdGFfcmVhZHks IDApOw0KPiA+ICsNCj4gPiAgCXJldCA9IGhpZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihpbmRpb19k ZXYsIG5hbWUsDQo+ID4gIAkJCQkmaHVtaWRfc3QtPmNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiAg CWlmIChyZXQpDQo+ID4gQEAgLTI2MSw3ICsyNTUsNyBAQCBzdGF0aWMgaW50IGhpZF9odW1pZGl0 eV9wcm9iZShzdHJ1Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gIGVycm9yX3Jl bW92ZV9jYWxsYmFjazoNCj4gPiAgCXNlbnNvcl9odWJfcmVtb3ZlX2NhbGxiYWNrKGhzZGV2LCBI SURfVVNBR0VfU0VOU09SX0hVTUlESVRZKTsNCj4gPiAgZXJyb3JfcmVtb3ZlX3RyaWdnZXI6DQo+ ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZodW1pZF9zdC0+Y29tbW9uX2F0dHJpYnV0 ZXMpOw0KPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihpbmRpb19kZXYsICZodW1pZF9z dC0NCj4gPiA+IGNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiAgCXJldHVybiByZXQ7DQo+ID4gIH0N Cj4gPiAgDQo+ID4gQEAgLTI3NCw3ICsyNjgsNyBAQCBzdGF0aWMgaW50IGhpZF9odW1pZGl0eV9y ZW1vdmUoc3RydWN0DQo+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICANCj4gPiAgCWlp b19kZXZpY2VfdW5yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+ICAJc2Vuc29yX2h1Yl9yZW1vdmVf Y2FsbGJhY2soaHNkZXYsIEhJRF9VU0FHRV9TRU5TT1JfSFVNSURJVFkpOw0KPiA+IC0JaGlkX3Nl bnNvcl9yZW1vdmVfdHJpZ2dlcigmaHVtaWRfc3QtPmNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiAr CWhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIoaW5kaW9fZGV2LCAmaHVtaWRfc3QtDQo+ID4gPiBj b21tb25fYXR0cmlidXRlcyk7DQo+ID4gIA0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vbGlnaHQvaGlkLXNlbnNvci1hbHMuYw0KPiA+IGIvZHJp dmVycy9paW8vbGlnaHQvaGlkLXNlbnNvci1hbHMuYw0KPiA+IGluZGV4IGI2Y2QyOTk1MTdkMS4u ODFmYTJhNDIyNzk3IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2xpZ2h0L2hpZC1zZW5z b3ItYWxzLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9saWdodC9oaWQtc2Vuc29yLWFscy5jDQo+ ID4gQEAgLTE0LDggKzE0LDYgQEANCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9paW8uaD4NCj4g PiAgI2luY2x1ZGUgPGxpbnV4L2lpby9zeXNmcy5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlv L2J1ZmZlci5oPg0KPiA+IC0jaW5jbHVkZSA8bGludXgvaWlvL3RyaWdnZXJfY29uc3VtZXIuaD4N Cj4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyZWRfYnVmZmVyLmg+DQo+ID4gICNpbmNs dWRlICIuLi9jb21tb24vaGlkLXNlbnNvcnMvaGlkLXNlbnNvci10cmlnZ2VyLmgiDQo+ID4gIA0K PiA+ICBlbnVtIHsNCj4gPiBAQCAtMzA4LDE4ICszMDYsMTMgQEAgc3RhdGljIGludCBoaWRfYWxz X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UNCj4gPiAqcGRldikNCj4gPiAgCWluZGlvX2Rl di0+bmFtZSA9IG5hbWU7DQo+ID4gIAlpbmRpb19kZXYtPm1vZGVzID0gSU5ESU9fRElSRUNUX01P REU7DQo+ID4gIA0KPiA+IC0JcmV0ID0gaWlvX3RyaWdnZXJlZF9idWZmZXJfc2V0dXAoaW5kaW9f ZGV2LA0KPiA+ICZpaW9fcG9sbGZ1bmNfc3RvcmVfdGltZSwNCj4gPiAtCQlOVUxMLCBOVUxMKTsN Cj4gPiAtCWlmIChyZXQpIHsNCj4gPiAtCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8g aW5pdGlhbGl6ZSB0cmlnZ2VyDQo+ID4gYnVmZmVyXG4iKTsNCj4gPiAtCQlnb3RvIGVycm9yX2Zy ZWVfZGV2X21lbTsNCj4gPiAtCX0NCj4gPiAgCWF0b21pY19zZXQoJmFsc19zdGF0ZS0+Y29tbW9u X2F0dHJpYnV0ZXMuZGF0YV9yZWFkeSwgMCk7DQo+ID4gKw0KPiA+ICAJcmV0ID0gaGlkX3NlbnNv cl9zZXR1cF90cmlnZ2VyKGluZGlvX2RldiwgbmFtZSwNCj4gPiAgCQkJCSZhbHNfc3RhdGUtPmNv bW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiAgCWlmIChyZXQgPCAwKSB7DQo+ID4gIAkJZGV2X2Vycigm cGRldi0+ZGV2LCAidHJpZ2dlciBzZXR1cCBmYWlsZWRcbiIpOw0KPiA+IC0JCWdvdG8gZXJyb3Jf dW5yZWdfYnVmZmVyX2Z1bmNzOw0KPiA+ICsJCWdvdG8gZXJyb3JfZnJlZV9kZXZfbWVtOw0KPiA+ ICAJfQ0KPiA+ICANCj4gPiAgCXJldCA9IGlpb19kZXZpY2VfcmVnaXN0ZXIoaW5kaW9fZGV2KTsN Cj4gPiBAQCAtMzQzLDkgKzMzNiw3IEBAIHN0YXRpYyBpbnQgaGlkX2Fsc19wcm9iZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlDQo+ID4gKnBkZXYpDQo+ID4gIGVycm9yX2lpb191bnJlZzoNCj4gPiAg CWlpb19kZXZpY2VfdW5yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+ICBlcnJvcl9yZW1vdmVfdHJp Z2dlcjoNCj4gPiAtCWhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIoJmFsc19zdGF0ZS0+Y29tbW9u X2F0dHJpYnV0ZXMpOw0KPiA+IC1lcnJvcl91bnJlZ19idWZmZXJfZnVuY3M6DQo+ID4gLQlpaW9f dHJpZ2dlcmVkX2J1ZmZlcl9jbGVhbnVwKGluZGlvX2Rldik7DQo+ID4gKwloaWRfc2Vuc29yX3Jl bW92ZV90cmlnZ2VyKGluZGlvX2RldiwgJmFsc19zdGF0ZS0NCj4gPiA+IGNvbW1vbl9hdHRyaWJ1 dGVzKTsNCj4gPiAgZXJyb3JfZnJlZV9kZXZfbWVtOg0KPiA+ICAJa2ZyZWUoaW5kaW9fZGV2LT5j aGFubmVscyk7DQo+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+IEBAIC0zNjAsOCArMzUxLDcgQEAgc3Rh dGljIGludCBoaWRfYWxzX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gKnBkZXYp DQo+ID4gIA0KPiA+ICAJc2Vuc29yX2h1Yl9yZW1vdmVfY2FsbGJhY2soaHNkZXYsIEhJRF9VU0FH RV9TRU5TT1JfQUxTKTsNCj4gPiAgCWlpb19kZXZpY2VfdW5yZWdpc3RlcihpbmRpb19kZXYpOw0K PiA+IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmYWxzX3N0YXRlLT5jb21tb25fYXR0cmli dXRlcyk7DQo+ID4gLQlpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9jbGVhbnVwKGluZGlvX2Rldik7DQo+ ID4gKwloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKGluZGlvX2RldiwgJmFsc19zdGF0ZS0NCj4g PiA+IGNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiAgCWtmcmVlKGluZGlvX2Rldi0+Y2hhbm5lbHMp Ow0KPiA+ICANCj4gPiAgCXJldHVybiAwOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9s aWdodC9oaWQtc2Vuc29yLXByb3guYw0KPiA+IGIvZHJpdmVycy9paW8vbGlnaHQvaGlkLXNlbnNv ci1wcm94LmMNCj4gPiBpbmRleCA3ZTEwMzBhZjliYTMuLmU5YzA0ZGYwNzM0NCAxMDA2NDQNCj4g PiAtLS0gYS9kcml2ZXJzL2lpby9saWdodC9oaWQtc2Vuc29yLXByb3guYw0KPiA+ICsrKyBiL2Ry aXZlcnMvaWlvL2xpZ2h0L2hpZC1zZW5zb3ItcHJveC5jDQo+ID4gQEAgLTE0LDggKzE0LDYgQEAN Cj4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9paW8uaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2lp by9zeXNmcy5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2J1ZmZlci5oPg0KPiA+IC0jaW5j bHVkZSA8bGludXgvaWlvL3RyaWdnZXJfY29uc3VtZXIuaD4NCj4gPiAtI2luY2x1ZGUgPGxpbnV4 L2lpby90cmlnZ2VyZWRfYnVmZmVyLmg+DQo+ID4gICNpbmNsdWRlICIuLi9jb21tb24vaGlkLXNl bnNvcnMvaGlkLXNlbnNvci10cmlnZ2VyLmgiDQo+ID4gIA0KPiA+ICAjZGVmaW5lIENIQU5ORUxf U0NBTl9JTkRFWF9QUkVTRU5DRSAwDQo+ID4gQEAgLTI4NiwxOCArMjg0LDEzIEBAIHN0YXRpYyBp bnQgaGlkX3Byb3hfcHJvYmUoc3RydWN0DQo+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ ICAJaW5kaW9fZGV2LT5uYW1lID0gbmFtZTsNCj4gPiAgCWluZGlvX2Rldi0+bW9kZXMgPSBJTkRJ T19ESVJFQ1RfTU9ERTsNCj4gPiAgDQo+ID4gLQlyZXQgPSBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9z ZXR1cChpbmRpb19kZXYsDQo+ID4gJmlpb19wb2xsZnVuY19zdG9yZV90aW1lLA0KPiA+IC0JCU5V TEwsIE5VTEwpOw0KPiA+IC0JaWYgKHJldCkgew0KPiA+IC0JCWRldl9lcnIoJnBkZXYtPmRldiwg ImZhaWxlZCB0byBpbml0aWFsaXplIHRyaWdnZXINCj4gPiBidWZmZXJcbiIpOw0KPiA+IC0JCWdv dG8gZXJyb3JfZnJlZV9kZXZfbWVtOw0KPiA+IC0JfQ0KPiA+ICAJYXRvbWljX3NldCgmcHJveF9z dGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMuZGF0YV9yZWFkeSwgMCk7DQo+ID4gKw0KPiA+ICAJcmV0 ID0gaGlkX3NlbnNvcl9zZXR1cF90cmlnZ2VyKGluZGlvX2RldiwgbmFtZSwNCj4gPiAgCQkJCSZw cm94X3N0YXRlLT5jb21tb25fYXR0cmlidXRlcyk7DQo+ID4gIAlpZiAocmV0KSB7DQo+ID4gIAkJ ZGV2X2VycigmcGRldi0+ZGV2LCAidHJpZ2dlciBzZXR1cCBmYWlsZWRcbiIpOw0KPiA+IC0JCWdv dG8gZXJyb3JfdW5yZWdfYnVmZmVyX2Z1bmNzOw0KPiA+ICsJCWdvdG8gZXJyb3JfZnJlZV9kZXZf bWVtOw0KPiA+ICAJfQ0KPiA+ICANCj4gPiAgCXJldCA9IGlpb19kZXZpY2VfcmVnaXN0ZXIoaW5k aW9fZGV2KTsNCj4gPiBAQCAtMzIxLDkgKzMxNCw3IEBAIHN0YXRpYyBpbnQgaGlkX3Byb3hfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiA+ICpwZGV2KQ0KPiA+ICBlcnJvcl9paW9fdW5y ZWc6DQo+ID4gIAlpaW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiAgZXJyb3Jf cmVtb3ZlX3RyaWdnZXI6DQo+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZwcm94X3N0 YXRlLT5jb21tb25fYXR0cmlidXRlcyk7DQo+ID4gLWVycm9yX3VucmVnX2J1ZmZlcl9mdW5jczoN Cj4gPiAtCWlpb190cmlnZ2VyZWRfYnVmZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4gPiArCWhp ZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIoaW5kaW9fZGV2LCAmcHJveF9zdGF0ZS0NCj4gPiA+IGNv bW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiAgZXJyb3JfZnJlZV9kZXZfbWVtOg0KPiA+ICAJa2ZyZWUo aW5kaW9fZGV2LT5jaGFubmVscyk7DQo+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+IEBAIC0zMzgsOCAr MzI5LDcgQEAgc3RhdGljIGludCBoaWRfcHJveF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZQ0KPiA+ICpwZGV2KQ0KPiA+ICANCj4gPiAgCXNlbnNvcl9odWJfcmVtb3ZlX2NhbGxiYWNrKGhz ZGV2LCBISURfVVNBR0VfU0VOU09SX1BST1gpOw0KPiA+ICAJaWlvX2RldmljZV91bnJlZ2lzdGVy KGluZGlvX2Rldik7DQo+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZwcm94X3N0YXRl LT5jb21tb25fYXR0cmlidXRlcyk7DQo+ID4gLQlpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9jbGVhbnVw KGluZGlvX2Rldik7DQo+ID4gKwloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKGluZGlvX2Rldiwg JnByb3hfc3RhdGUtDQo+ID4gPiBjb21tb25fYXR0cmlidXRlcyk7DQo+ID4gIAlrZnJlZShpbmRp b19kZXYtPmNoYW5uZWxzKTsNCj4gPiAgDQo+ID4gIAlyZXR1cm4gMDsNCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9paW8vbWFnbmV0b21ldGVyL2hpZC1zZW5zb3ItbWFnbi0zZC5jDQo+ID4gYi9k cml2ZXJzL2lpby9tYWduZXRvbWV0ZXIvaGlkLXNlbnNvci1tYWduLTNkLmMNCj4gPiBpbmRleCAy NWU2MGIyMzNlMDguLjBjMDlkYWY4Nzc5NCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9t YWduZXRvbWV0ZXIvaGlkLXNlbnNvci1tYWduLTNkLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9t YWduZXRvbWV0ZXIvaGlkLXNlbnNvci1tYWduLTNkLmMNCj4gPiBAQCAtMTQsOCArMTQsNiBAQA0K PiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2lpby5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlv L3N5c2ZzLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vYnVmZmVyLmg+DQo+ID4gLSNpbmNs dWRlIDxsaW51eC9paW8vdHJpZ2dlcl9jb25zdW1lci5oPg0KPiA+IC0jaW5jbHVkZSA8bGludXgv aWlvL3RyaWdnZXJlZF9idWZmZXIuaD4NCj4gPiAgI2luY2x1ZGUgIi4uL2NvbW1vbi9oaWQtc2Vu c29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuaCINCj4gPiAgDQo+ID4gIGVudW0gbWFnbl8zZF9jaGFu bmVsIHsNCj4gPiBAQCAtNTE5LDE4ICs1MTcsMTMgQEAgc3RhdGljIGludCBoaWRfbWFnbl8zZF9w cm9iZShzdHJ1Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gIAlpbmRpb19kZXYt Pm5hbWUgPSBuYW1lOw0KPiA+ICAJaW5kaW9fZGV2LT5tb2RlcyA9IElORElPX0RJUkVDVF9NT0RF Ow0KPiA+ICANCj4gPiAtCXJldCA9IGlpb190cmlnZ2VyZWRfYnVmZmVyX3NldHVwKGluZGlvX2Rl diwNCj4gPiAmaWlvX3BvbGxmdW5jX3N0b3JlX3RpbWUsDQo+ID4gLQkJTlVMTCwgTlVMTCk7DQo+ ID4gLQlpZiAocmV0KSB7DQo+ID4gLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGlu aXRpYWxpemUgdHJpZ2dlcg0KPiA+IGJ1ZmZlclxuIik7DQo+ID4gLQkJcmV0dXJuIHJldDsNCj4g PiAtCX0NCj4gPiAgCWF0b21pY19zZXQoJm1hZ25fc3RhdGUtPm1hZ25fZmx1eF9hdHRyaWJ1dGVz LmRhdGFfcmVhZHksIDApOw0KPiA+ICsNCj4gPiAgCXJldCA9IGhpZF9zZW5zb3Jfc2V0dXBfdHJp Z2dlcihpbmRpb19kZXYsIG5hbWUsDQo+ID4gIAkJCQkJJm1hZ25fc3RhdGUtDQo+ID4gPiBtYWdu X2ZsdXhfYXR0cmlidXRlcyk7DQo+ID4gIAlpZiAocmV0IDwgMCkgew0KPiA+ICAJCWRldl9lcnIo JnBkZXYtPmRldiwgInRyaWdnZXIgc2V0dXAgZmFpbGVkXG4iKTsNCj4gPiAtCQlnb3RvIGVycm9y X3VucmVnX2J1ZmZlcl9mdW5jczsNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICAJfQ0KPiA+ICAN Cj4gPiAgCXJldCA9IGlpb19kZXZpY2VfcmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiBAQCAtNTU0 LDkgKzU0Nyw3IEBAIHN0YXRpYyBpbnQgaGlkX21hZ25fM2RfcHJvYmUoc3RydWN0DQo+ID4gcGxh dGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICBlcnJvcl9paW9fdW5yZWc6DQo+ID4gIAlpaW9fZGV2 aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiAgZXJyb3JfcmVtb3ZlX3RyaWdnZXI6DQo+ ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZtYWduX3N0YXRlLT5tYWduX2ZsdXhfYXR0 cmlidXRlcyk7DQo+ID4gLWVycm9yX3VucmVnX2J1ZmZlcl9mdW5jczoNCj4gPiAtCWlpb190cmln Z2VyZWRfYnVmZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4gPiArCWhpZF9zZW5zb3JfcmVtb3Zl X3RyaWdnZXIoaW5kaW9fZGV2LCAmbWFnbl9zdGF0ZS0NCj4gPiA+IG1hZ25fZmx1eF9hdHRyaWJ1 dGVzKTsNCj4gPiAgCXJldHVybiByZXQ7DQo+ID4gIH0NCj4gPiAgDQo+ID4gQEAgLTU2OSw4ICs1 NjAsNyBAQCBzdGF0aWMgaW50IGhpZF9tYWduXzNkX3JlbW92ZShzdHJ1Y3QNCj4gPiBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpDQo+ID4gIA0KPiA+ICAJc2Vuc29yX2h1Yl9yZW1vdmVfY2FsbGJhY2so aHNkZXYsIEhJRF9VU0FHRV9TRU5TT1JfQ09NUEFTU18zRCk7DQo+ID4gIAlpaW9fZGV2aWNlX3Vu cmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiAtCWhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIoJm1h Z25fc3RhdGUtPm1hZ25fZmx1eF9hdHRyaWJ1dGVzKTsNCj4gPiAtCWlpb190cmlnZ2VyZWRfYnVm ZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4gPiArCWhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIo aW5kaW9fZGV2LCAmbWFnbl9zdGF0ZS0NCj4gPiA+IG1hZ25fZmx1eF9hdHRyaWJ1dGVzKTsNCj4g PiAgDQo+ID4gIAlyZXR1cm4gMDsNCj4gPiAgfQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lp by9vcmllbnRhdGlvbi9oaWQtc2Vuc29yLWluY2wtM2QuYw0KPiA+IGIvZHJpdmVycy9paW8vb3Jp ZW50YXRpb24vaGlkLXNlbnNvci1pbmNsLTNkLmMNCj4gPiBpbmRleCAwMGFmNjg3NjRjZGEuLjZh YWM4YmVhMjMzYSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9vcmllbnRhdGlvbi9oaWQt c2Vuc29yLWluY2wtM2QuYw0KPiA+ICsrKyBiL2RyaXZlcnMvaWlvL29yaWVudGF0aW9uL2hpZC1z ZW5zb3ItaW5jbC0zZC5jDQo+ID4gQEAgLTE1LDggKzE1LDYgQEANCj4gPiAgI2luY2x1ZGUgPGxp bnV4L2lpby9paW8uaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9zeXNmcy5oPg0KPiA+ICAj aW5jbHVkZSA8bGludXgvaWlvL2J1ZmZlci5oPg0KPiA+IC0jaW5jbHVkZSA8bGludXgvaWlvL3Ry aWdnZXJfY29uc3VtZXIuaD4NCj4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyZWRfYnVm ZmVyLmg+DQo+ID4gICNpbmNsdWRlICIuLi9jb21tb24vaGlkLXNlbnNvcnMvaGlkLXNlbnNvci10 cmlnZ2VyLmgiDQo+ID4gIA0KPiA+ICBlbnVtIGluY2xfM2RfY2hhbm5lbCB7DQo+ID4gQEAgLTM0 NiwxOCArMzQ0LDEzIEBAIHN0YXRpYyBpbnQgaGlkX2luY2xfM2RfcHJvYmUoc3RydWN0DQo+ID4g cGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAJaW5kaW9fZGV2LT5uYW1lID0gbmFtZTsNCj4g PiAgCWluZGlvX2Rldi0+bW9kZXMgPSBJTkRJT19ESVJFQ1RfTU9ERTsNCj4gPiAgDQo+ID4gLQly ZXQgPSBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cChpbmRpb19kZXYsDQo+ID4gJmlpb19wb2xs ZnVuY19zdG9yZV90aW1lLA0KPiA+IC0JCU5VTEwsIE5VTEwpOw0KPiA+IC0JaWYgKHJldCkgew0K PiA+IC0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIHRyaWdnZXIN Cj4gPiBidWZmZXJcbiIpOw0KPiA+IC0JCWdvdG8gZXJyb3JfZnJlZV9kZXZfbWVtOw0KPiA+IC0J fQ0KPiA+ICAJYXRvbWljX3NldCgmaW5jbF9zdGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMuZGF0YV9y ZWFkeSwgMCk7DQo+ID4gKw0KPiA+ICAJcmV0ID0gaGlkX3NlbnNvcl9zZXR1cF90cmlnZ2VyKGlu ZGlvX2RldiwgbmFtZSwNCj4gPiAgCQkJCQkmaW5jbF9zdGF0ZS0NCj4gPiA+IGNvbW1vbl9hdHRy aWJ1dGVzKTsNCj4gPiAgCWlmIChyZXQpIHsNCj4gPiAgCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ0 cmlnZ2VyIHNldHVwIGZhaWxlZFxuIik7DQo+ID4gLQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJf ZnVuY3M7DQo+ID4gKwkJZ290byBlcnJvcl9mcmVlX2Rldl9tZW07DQo+ID4gIAl9DQo+ID4gIA0K PiA+ICAJcmV0ID0gaWlvX2RldmljZV9yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+IEBAIC0zODIs OSArMzc1LDcgQEAgc3RhdGljIGludCBoaWRfaW5jbF8zZF9wcm9iZShzdHJ1Y3QNCj4gPiBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gIGVycm9yX2lpb191bnJlZzoNCj4gPiAgCWlpb19kZXZp Y2VfdW5yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+ICBlcnJvcl9yZW1vdmVfdHJpZ2dlcjoNCj4g PiAtCWhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIoJmluY2xfc3RhdGUtPmNvbW1vbl9hdHRyaWJ1 dGVzKTsNCj4gPiAtZXJyb3JfdW5yZWdfYnVmZmVyX2Z1bmNzOg0KPiA+IC0JaWlvX3RyaWdnZXJl ZF9idWZmZXJfY2xlYW51cChpbmRpb19kZXYpOw0KPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJp Z2dlcihpbmRpb19kZXYsICZpbmNsX3N0YXRlLQ0KPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0K PiA+ICBlcnJvcl9mcmVlX2Rldl9tZW06DQo+ID4gIAlrZnJlZShpbmRpb19kZXYtPmNoYW5uZWxz KTsNCj4gPiAgCXJldHVybiByZXQ7DQo+ID4gQEAgLTM5OSw4ICszOTAsNyBAQCBzdGF0aWMgaW50 IGhpZF9pbmNsXzNkX3JlbW92ZShzdHJ1Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ ID4gIA0KPiA+ICAJc2Vuc29yX2h1Yl9yZW1vdmVfY2FsbGJhY2soaHNkZXYsDQo+ID4gSElEX1VT QUdFX1NFTlNPUl9JTkNMSU5PTUVURVJfM0QpOw0KPiA+ICAJaWlvX2RldmljZV91bnJlZ2lzdGVy KGluZGlvX2Rldik7DQo+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZpbmNsX3N0YXRl LT5jb21tb25fYXR0cmlidXRlcyk7DQo+ID4gLQlpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9jbGVhbnVw KGluZGlvX2Rldik7DQo+ID4gKwloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKGluZGlvX2Rldiwg JmluY2xfc3RhdGUtDQo+ID4gPiBjb21tb25fYXR0cmlidXRlcyk7DQo+ID4gIAlrZnJlZShpbmRp b19kZXYtPmNoYW5uZWxzKTsNCj4gPiAgDQo+ID4gIAlyZXR1cm4gMDsNCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9paW8vb3JpZW50YXRpb24vaGlkLXNlbnNvci1yb3RhdGlvbi5jDQo+ID4gYi9k cml2ZXJzL2lpby9vcmllbnRhdGlvbi9oaWQtc2Vuc29yLXJvdGF0aW9uLmMNCj4gPiBpbmRleCA2 NGFlN2QwNGEyMDAuLmI5OWY0MTI0MGUzZSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9v cmllbnRhdGlvbi9oaWQtc2Vuc29yLXJvdGF0aW9uLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9v cmllbnRhdGlvbi9oaWQtc2Vuc29yLXJvdGF0aW9uLmMNCj4gPiBAQCAtMTQsOCArMTQsNiBAQA0K PiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2lpby5oPg0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlv L3N5c2ZzLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vYnVmZmVyLmg+DQo+ID4gLSNpbmNs dWRlIDxsaW51eC9paW8vdHJpZ2dlcl9jb25zdW1lci5oPg0KPiA+IC0jaW5jbHVkZSA8bGludXgv aWlvL3RyaWdnZXJlZF9idWZmZXIuaD4NCj4gPiAgI2luY2x1ZGUgIi4uL2NvbW1vbi9oaWQtc2Vu c29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuaCINCj4gPiAgDQo+ID4gIHN0cnVjdCBkZXZfcm90X3N0 YXRlIHsNCj4gPiBAQCAtMjg4LDE4ICsyODYsMTMgQEAgc3RhdGljIGludCBoaWRfZGV2X3JvdF9w cm9iZShzdHJ1Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gIAlpbmRpb19kZXYt Pm5hbWUgPSBuYW1lOw0KPiA+ICAJaW5kaW9fZGV2LT5tb2RlcyA9IElORElPX0RJUkVDVF9NT0RF Ow0KPiA+ICANCj4gPiAtCXJldCA9IGlpb190cmlnZ2VyZWRfYnVmZmVyX3NldHVwKGluZGlvX2Rl diwNCj4gPiAmaWlvX3BvbGxmdW5jX3N0b3JlX3RpbWUsDQo+ID4gLQkJTlVMTCwgTlVMTCk7DQo+ ID4gLQlpZiAocmV0KSB7DQo+ID4gLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGlu aXRpYWxpemUgdHJpZ2dlcg0KPiA+IGJ1ZmZlclxuIik7DQo+ID4gLQkJcmV0dXJuIHJldDsNCj4g PiAtCX0NCj4gPiAgCWF0b21pY19zZXQoJnJvdF9zdGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMuZGF0 YV9yZWFkeSwgMCk7DQo+ID4gKw0KPiA+ICAJcmV0ID0gaGlkX3NlbnNvcl9zZXR1cF90cmlnZ2Vy KGluZGlvX2RldiwgbmFtZSwNCj4gPiAgCQkJCQkmcm90X3N0YXRlLT5jb21tb25fYXR0cmlidXRl cyk7DQo+ID4gIAlpZiAocmV0KSB7DQo+ID4gIAkJZGV2X2VycigmcGRldi0+ZGV2LCAidHJpZ2dl ciBzZXR1cCBmYWlsZWRcbiIpOw0KPiA+IC0JCWdvdG8gZXJyb3JfdW5yZWdfYnVmZmVyX2Z1bmNz Ow0KPiA+ICsJCXJldHVybiByZXQ7DQo+ID4gIAl9DQo+ID4gIA0KPiA+ICAJcmV0ID0gaWlvX2Rl dmljZV9yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+IEBAIC0zMjMsOSArMzE2LDcgQEAgc3RhdGlj IGludCBoaWRfZGV2X3JvdF9wcm9iZShzdHJ1Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp DQo+ID4gIGVycm9yX2lpb191bnJlZzoNCj4gPiAgCWlpb19kZXZpY2VfdW5yZWdpc3RlcihpbmRp b19kZXYpOw0KPiA+ICBlcnJvcl9yZW1vdmVfdHJpZ2dlcjoNCj4gPiAtCWhpZF9zZW5zb3JfcmVt b3ZlX3RyaWdnZXIoJnJvdF9zdGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+IC1lcnJvcl91 bnJlZ19idWZmZXJfZnVuY3M6DQo+ID4gLQlpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9jbGVhbnVwKGlu ZGlvX2Rldik7DQo+ID4gKwloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKGluZGlvX2RldiwgJnJv dF9zdGF0ZS0NCj4gPiA+IGNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiAgCXJldHVybiByZXQ7DQo+ ID4gIH0NCj4gPiAgDQo+ID4gQEAgLTMzOCw4ICszMjksNyBAQCBzdGF0aWMgaW50IGhpZF9kZXZf cm90X3JlbW92ZShzdHJ1Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gIA0KPiA+ ICAJc2Vuc29yX2h1Yl9yZW1vdmVfY2FsbGJhY2soaHNkZXYsIGhzZGV2LT51c2FnZSk7DQo+ID4g IAlpaW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiAtCWhpZF9zZW5zb3JfcmVt b3ZlX3RyaWdnZXIoJnJvdF9zdGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+IC0JaWlvX3Ry aWdnZXJlZF9idWZmZXJfY2xlYW51cChpbmRpb19kZXYpOw0KPiA+ICsJaGlkX3NlbnNvcl9yZW1v dmVfdHJpZ2dlcihpbmRpb19kZXYsICZyb3Rfc3RhdGUtDQo+ID4gPiBjb21tb25fYXR0cmlidXRl cyk7DQo+ID4gIA0KPiA+ICAJcmV0dXJuIDA7DQo+ID4gIH0NCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9paW8vcHJlc3N1cmUvaGlkLXNlbnNvci1wcmVzcy5jDQo+ID4gYi9kcml2ZXJzL2lpby9w cmVzc3VyZS9oaWQtc2Vuc29yLXByZXNzLmMNCj4gPiBpbmRleCA5NTMyMzUwNTIxNTUuLjVlNjY2 M2Y3NTdhZSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby9wcmVzc3VyZS9oaWQtc2Vuc29y LXByZXNzLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby9wcmVzc3VyZS9oaWQtc2Vuc29yLXByZXNz LmMNCj4gPiBAQCAtMTQsOCArMTQsNiBAQA0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2lpby5o Pg0KPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL3N5c2ZzLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51 eC9paW8vYnVmZmVyLmg+DQo+ID4gLSNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dlcl9jb25zdW1l ci5oPg0KPiA+IC0jaW5jbHVkZSA8bGludXgvaWlvL3RyaWdnZXJlZF9idWZmZXIuaD4NCj4gPiAg I2luY2x1ZGUgIi4uL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuaCINCj4g PiAgDQo+ID4gICNkZWZpbmUgQ0hBTk5FTF9TQ0FOX0lOREVYX1BSRVNTVVJFIDANCj4gPiBAQCAt MjkwLDE4ICsyODgsMTMgQEAgc3RhdGljIGludCBoaWRfcHJlc3NfcHJvYmUoc3RydWN0DQo+ID4g cGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAJaW5kaW9fZGV2LT5uYW1lID0gbmFtZTsNCj4g PiAgCWluZGlvX2Rldi0+bW9kZXMgPSBJTkRJT19ESVJFQ1RfTU9ERTsNCj4gPiAgDQo+ID4gLQly ZXQgPSBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cChpbmRpb19kZXYsDQo+ID4gJmlpb19wb2xs ZnVuY19zdG9yZV90aW1lLA0KPiA+IC0JCU5VTEwsIE5VTEwpOw0KPiA+IC0JaWYgKHJldCkgew0K PiA+IC0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIHRyaWdnZXIN Cj4gPiBidWZmZXJcbiIpOw0KPiA+IC0JCWdvdG8gZXJyb3JfZnJlZV9kZXZfbWVtOw0KPiA+IC0J fQ0KPiA+ICAJYXRvbWljX3NldCgmcHJlc3Nfc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVzLmRhdGFf cmVhZHksIDApOw0KPiA+ICsNCj4gPiAgCXJldCA9IGhpZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihp bmRpb19kZXYsIG5hbWUsDQo+ID4gIAkJCQkmcHJlc3Nfc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVz KTsNCj4gPiAgCWlmIChyZXQpIHsNCj4gPiAgCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ0cmlnZ2Vy IHNldHVwIGZhaWxlZFxuIik7DQo+ID4gLQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJfZnVuY3M7 DQo+ID4gKwkJZ290byBlcnJvcl9mcmVlX2Rldl9tZW07DQo+ID4gIAl9DQo+ID4gIA0KPiA+ICAJ cmV0ID0gaWlvX2RldmljZV9yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+IEBAIC0zMjUsOSArMzE4 LDcgQEAgc3RhdGljIGludCBoaWRfcHJlc3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0K PiA+ICpwZGV2KQ0KPiA+ICBlcnJvcl9paW9fdW5yZWc6DQo+ID4gIAlpaW9fZGV2aWNlX3VucmVn aXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiAgZXJyb3JfcmVtb3ZlX3RyaWdnZXI6DQo+ID4gLQloaWRf c2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZwcmVzc19zdGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMpOw0K PiA+IC1lcnJvcl91bnJlZ19idWZmZXJfZnVuY3M6DQo+ID4gLQlpaW9fdHJpZ2dlcmVkX2J1ZmZl cl9jbGVhbnVwKGluZGlvX2Rldik7DQo+ID4gKwloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKGlu ZGlvX2RldiwgJnByZXNzX3N0YXRlLQ0KPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ICBl cnJvcl9mcmVlX2Rldl9tZW06DQo+ID4gIAlrZnJlZShpbmRpb19kZXYtPmNoYW5uZWxzKTsNCj4g PiAgCXJldHVybiByZXQ7DQo+ID4gQEAgLTM0Miw4ICszMzMsNyBAQCBzdGF0aWMgaW50IGhpZF9w cmVzc19yZW1vdmUoc3RydWN0DQo+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICANCj4g PiAgCXNlbnNvcl9odWJfcmVtb3ZlX2NhbGxiYWNrKGhzZGV2LCBISURfVVNBR0VfU0VOU09SX1BS RVNTVVJFKTsNCj4gPiAgCWlpb19kZXZpY2VfdW5yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+IC0J aGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmcHJlc3Nfc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVz KTsNCj4gPiAtCWlpb190cmlnZ2VyZWRfYnVmZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4gPiAr CWhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIoaW5kaW9fZGV2LCAmcHJlc3Nfc3RhdGUtDQo+ID4g PiBjb21tb25fYXR0cmlidXRlcyk7DQo+ID4gIAlrZnJlZShpbmRpb19kZXYtPmNoYW5uZWxzKTsN Cj4gPiAgDQo+ID4gIAlyZXR1cm4gMDsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vdGVt cGVyYXR1cmUvaGlkLXNlbnNvci10ZW1wZXJhdHVyZS5jDQo+ID4gYi9kcml2ZXJzL2lpby90ZW1w ZXJhdHVyZS9oaWQtc2Vuc29yLXRlbXBlcmF0dXJlLmMNCj4gPiBpbmRleCBlZGE1NWI5YzFlOWIu LjhkMWY0MzRmMTA5ZCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2lpby90ZW1wZXJhdHVyZS9o aWQtc2Vuc29yLXRlbXBlcmF0dXJlLmMNCj4gPiArKysgYi9kcml2ZXJzL2lpby90ZW1wZXJhdHVy ZS9oaWQtc2Vuc29yLXRlbXBlcmF0dXJlLmMNCj4gPiBAQCAtNyw4ICs3LDYgQEANCj4gPiAgI2lu Y2x1ZGUgPGxpbnV4L2hpZC1zZW5zb3ItaHViLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9paW8v YnVmZmVyLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vaWlvLmg+DQo+ID4gLSNpbmNsdWRl IDxsaW51eC9paW8vdHJpZ2dlcmVkX2J1ZmZlci5oPg0KPiA+IC0jaW5jbHVkZSA8bGludXgvaWlv L3RyaWdnZXJfY29uc3VtZXIuaD4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiA+ ICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+DQo+ID4gIA0KPiA+IEBAIC0yMzAs MTIgKzIyOCw4IEBAIHN0YXRpYyBpbnQgaGlkX3RlbXBlcmF0dXJlX3Byb2JlKHN0cnVjdA0KPiA+ IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgCWluZGlvX2Rldi0+bmFtZSA9IG5hbWU7DQo+ ID4gIAlpbmRpb19kZXYtPm1vZGVzID0gSU5ESU9fRElSRUNUX01PREU7DQo+ID4gIA0KPiA+IC0J cmV0ID0gZGV2bV9paW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cCgmcGRldi0+ZGV2LCBpbmRpb19k ZXYsDQo+ID4gLQkJCQkJJmlpb19wb2xsZnVuY19zdG9yZV90aW1lLCBOVUxMLA0KPiA+IE5VTEwp Ow0KPiA+IC0JaWYgKHJldCkNCj4gPiAtCQlyZXR1cm4gcmV0Ow0KPiA+IC0NCj4gPiAgCWF0b21p Y19zZXQoJnRlbXBfc3QtPmNvbW1vbl9hdHRyaWJ1dGVzLmRhdGFfcmVhZHksIDApOw0KPiA+ICsN Cj4gPiAgCXJldCA9IGhpZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihpbmRpb19kZXYsIG5hbWUsDQo+ ID4gIAkJCQkmdGVtcF9zdC0+Y29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ICAJaWYgKHJldCkNCj4g PiBAQCAtMjU4LDcgKzI1Miw3IEBAIHN0YXRpYyBpbnQgaGlkX3RlbXBlcmF0dXJlX3Byb2JlKHN0 cnVjdA0KPiA+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiAgZXJyb3JfcmVtb3ZlX2NhbGxi YWNrOg0KPiA+ICAJc2Vuc29yX2h1Yl9yZW1vdmVfY2FsbGJhY2soaHNkZXYsDQo+ID4gSElEX1VT QUdFX1NFTlNPUl9URU1QRVJBVFVSRSk7DQo+ID4gIGVycm9yX3JlbW92ZV90cmlnZ2VyOg0KPiA+ IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmdGVtcF9zdC0+Y29tbW9uX2F0dHJpYnV0ZXMp Ow0KPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihpbmRpb19kZXYsICZ0ZW1wX3N0LQ0K PiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ICAJcmV0dXJuIHJldDsNCj4gPiAgfQ0KPiA+ ICANCj4gPiBAQCAtMjcwLDcgKzI2NCw3IEBAIHN0YXRpYyBpbnQgaGlkX3RlbXBlcmF0dXJlX3Jl bW92ZShzdHJ1Y3QNCj4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gIAlzdHJ1Y3QgdGVt cGVyYXR1cmVfc3RhdGUgKnRlbXBfc3QgPSBpaW9fcHJpdihpbmRpb19kZXYpOw0KPiA+ICANCj4g PiAgCXNlbnNvcl9odWJfcmVtb3ZlX2NhbGxiYWNrKGhzZGV2LA0KPiA+IEhJRF9VU0FHRV9TRU5T T1JfVEVNUEVSQVRVUkUpOw0KPiA+IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmdGVtcF9z dC0+Y29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihp bmRpb19kZXYsICZ0ZW1wX3N0LQ0KPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ICANCj4g PiAgCXJldHVybiAwOw0KPiA+ICB9DQo=