Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp615223ybz; Sat, 25 Apr 2020 00:27:11 -0700 (PDT) X-Google-Smtp-Source: APiQypJXV3NFoGf7LsAeQnf7ID8QpBBM54AcqbWc93rNdmIdQh67ZnYQFz79/BR4vCUO4d9W3TAA X-Received: by 2002:a05:6402:1773:: with SMTP id da19mr10683813edb.2.1587799631737; Sat, 25 Apr 2020 00:27:11 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1587799631; cv=pass; d=google.com; s=arc-20160816; b=ZF675xZRhjlBMQyyD75myZVQDKHYaPdHSpmfzTkIUT3rL6VCX779csiSqVfHVsUSet 3CzJScE7wJZ8mXOvrJLAhrL/tBIYL0Kos+g9vX3tJIH+7tq/shnPckRdmGhVyclzvU/8 s9BIPAlWXPWqV3CBf0lYm9saw3H8LTXtDfppXIbQWgekW8B1e3EBDY7gIs3jGBirCm5I 67MMZwc6jIB8i0arax2yesdLEQ9eXS4V6UW1qTmHiRzGwA/HFMUVQltOniG1YeNF/1FU M6WGwfA5igLClOMYkujNsQCR4SFQ7NGA5rnmRE+S4xOkHhUFol09H8uA1kJwXjwoU1Pz Zxrg== 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=gyo4IE1TUWCchoB4FoCxZQXH1k3BhSCld1/dNYsBYME=; b=dYF1c2iwa0Rka9AvJwBwsOGP8xkPK+Lsn/fD8e6T7TDdHoniNKrrWc5PMU/XndZFkk K3hcLWQPGMHnZ/bsnr+J1RF1laGiz56LQRJhLIC786CIXkzo8S54HCiOOQehSHfsP9gH 4YcNEwwHPOLoZUdU9HEZe7ahXnyfB9d+5SUWw5UnQK/73VhkDjbE7KfBZai7ako6AEXH XK8ZVpHX8zWCG+UALgr75mhwExbZgO5ok+o4KUBtL9qJ8ckJ1SRPpJJRqlkTWal6bbj9 Dj4O14x3XxDKHH8cTev8R1DRIw1qJ0eBK+0XOFOoXyfWCbIG7GjlJyqtG5U0uAcuMWA7 VZ4Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=a7X6AYLr; 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 b5si4730764edq.191.2020.04.25.00.26.35; Sat, 25 Apr 2020 00:27:11 -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=a7X6AYLr; 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 S1726113AbgDYHYL (ORCPT + 99 others); Sat, 25 Apr 2020 03:24:11 -0400 Received: from mx0b-00128a01.pphosted.com ([148.163.139.77]:50626 "EHLO mx0b-00128a01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725837AbgDYHYK (ORCPT ); Sat, 25 Apr 2020 03:24:10 -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 03P7MBwk019794; Sat, 25 Apr 2020 03:22:59 -0400 Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2175.outbound.protection.outlook.com [104.47.55.175]) by mx0b-00128a01.pphosted.com with ESMTP id 30meya86jw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sat, 25 Apr 2020 03:22:59 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gqKlTNVljrb1ZxXzrUkSHOQL5JclOAmrsJtQzRJxCdFHd2vHr+p/zeS6+qy455cfIX8csfGQSK0L1KxaOc3boDird9r5VEyFnBcqKSjTjIeJBJxluOJRR3zNiAZPFr3+edFOtopHYRkUrgQz6G/72zoUjgmdOgn1bC1dp6laPqOmeFeTNoG8LCeeu+Gz80uhaxb8f1Tuk7JKgGs2RAf3VPLA1k0Ljcrl/sQ4J2MHMkuigRFmvd6g8zT5nJiRaIXPtOQ2KfW39B0rmSnKDddnSakY7OmsrIr8nMtvEXOSMgTLeYIHcvv2f5I4Z2DYPB/BVBhIMwJSqAgQ3opEHHu9ZA== 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=gyo4IE1TUWCchoB4FoCxZQXH1k3BhSCld1/dNYsBYME=; b=lOFTL17haXWjRUXO/+0C1or9K0l3sl1jHnHPaNsKL6HDLgPe76hpW+s8u/SDQWoO3CiQBHfIUgIsUEIgSzxIeEzvpTABT/eZBkyHiI/ebeZpIGPhSBsHqo58bA7A4LAXK7LMB99lSror7W6zdnz6CCbgYVOs0kv8C1w2jht1SRb9XJ/+UcgiKHbyKepRzYJj9hrYRtX+JhQ8dAFJ+ynffdmdYllGuhO+c2UeAF1VOtt1tlKFpmBEK9mqVAWZEXW+gRYp5uLDoZaeitsA4zcUf7yv1qiBX7AUgSbj+x2kRo2dL/izs2XIlUn064axSNEV3Rnz55lLDZCqNl89X692hA== 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=gyo4IE1TUWCchoB4FoCxZQXH1k3BhSCld1/dNYsBYME=; b=a7X6AYLr0gr4KWHQdfMW8+5r23KhPXTsrTPWRy+GFA5cU2S3amFdWscPtLzExJC2hDcafLaTl8rJuw0cB/HwPLb6T4AxWJZdfw0D8nkNgNKqZ8/BbBESivtAULsUyapcHJL3Bg6jVGSE3DDRhlASvJa1TEFRhcpwpJkmWIyvsu0= Received: from DM6PR03MB4411.namprd03.prod.outlook.com (2603:10b6:5:10f::14) by DM6PR03MB4474.namprd03.prod.outlook.com (2603:10b6:5:10e::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2937.13; Sat, 25 Apr 2020 07:22:50 +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 07:22:50 +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: AQHWGfGeWTqeGwaKFUSvVXgit2QrZaiIy3sAgACXH4CAAA9OAA== Date: Sat, 25 Apr 2020 07:22:50 +0000 Message-ID: References: <20200424043418.3579-1-alexandru.ardelean@analog.com> <9bdf62ca5de58c6fff452691fae51692198f3b75.camel@linux.intel.com> <5fef17cf2d9694ce897fe2bb1a4687dc48850f88.camel@analog.com> In-Reply-To: <5fef17cf2d9694ce897fe2bb1a4687dc48850f88.camel@analog.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: 3462cbd6-64ec-463e-a7bb-08d7e8e9766c x-ms-traffictypediagnostic: DM6PR03MB4474: 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:(376002)(396003)(136003)(39860400002)(366004)(346002)(66556008)(5660300002)(6506007)(110136005)(8936002)(6486002)(6512007)(4326008)(2906002)(76116006)(316002)(30864003)(91956017)(478600001)(66946007)(66446008)(71200400001)(186003)(36756003)(8676002)(81156014)(86362001)(66476007)(26005)(64756008)(2616005)(559001)(579004);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: +aTGsROUqhOxxGHc+NIOKLJygtfm9hS9hNVfQfPH7YTwdZK7gioCpCHw7voym+uTgyNvnEmHN3d85J3KjPm8tXhrGYF8I6Zau9SzAZGtusLl8E7ggyuEL4RW3YaU/JLk0E0Yq7SxlJdkfMP9qPed88RM5HWuJo91OIjM1EJ0+Dmf6/+4x4/egLMStLorLQj/6JqUgglV+FFNj494xC+velyFr8iAIm8IQnuAkdxzdz0oeStDkg6BtGnw5h+Mjqxvr8TctC2F+Emf2V+iizWFDYYQogegA0iWKLZouNRAS+Pspy7ZY5ruFukYl+XGvR+A3KGtSfkB93IhqO8sUxnfmXmVwLQwF9TzYINnaFqcSUCWdtxeMTIB9+psFoqqDkPr03B9INvPr/KCWHPuuLq/Brga9RAKO2YKvKapkDW149U6bz84SFm7R9pJfu4moT6h x-ms-exchange-antispam-messagedata: 1Do+PpPn+uhreqvaQGkl5ULwCzCh0AKS5kQlPItdN7hOve01FUrBQRM/kFfBv9qrEqx+EufVG/pUxdoYjfuAuqPSIf+9F34CjMDEh+wOyuKLeamxsHMgLlwT8r1S24Y9d5TuP4gg3ZtudVtqsMzwcH9N+ikUxkmsV2TS72TYCIrEOOk5Jo1AfS7KUnYo1ZCGQKfQGcP67xke5OY05tIUQGBhU1BF1uu8uKdSlQr8bhebyhOpds465JEcweKCSTzBW1vWwYgkSADiO1Dqyfmi6FDjcqfHwNWs037ydshMHaPMPHaZ4/xxbycH4YL91rB26C9ulouDzAF7juyjKZRzQ1JewkV4UoM5W/fmDZX5t8s9/XH5IMIBWPTcUky8U9kTVfE/dNaeO/A5yYdPugu51E2N6jBqNM/yZUcgWPaS5CsoroD5woVL0VeTf/eAovhjvSYfgqjP5B73ptJrakUFMI1MCVFVaB+sKLKP2C0wu0k6ycunAUyzvwLiAHD+GtS6dpsq2Wv4LDeqLvg5lKaoq6hE2cQCLTA8wXPcZUOSb+fb8NfVEriuznBqh12alhW46lGQcS3zlEiFp191/HX0Mhfz26JKbFUggnZje6M9GNzJ3q3ac4YCsdQThXn//aEHjHEkAPj1DWmFNQn5IyMZ3bcEBssXSwbCTmy8Xp4MVYtC32/MvQMCk/nJL8wt8/vHVEXw1kD+GCBC5iDUgM8oSKMbQKzWG7IvFL7kJuwprMSoinEXIKGCXsJBFkbLRVGeV+36oqX16O2j01Zpg7G7Kmahsl2GNJN+vSNQ6JZvbak= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3462cbd6-64ec-463e-a7bb-08d7e8e9766c X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Apr 2020 07:22:50.6611 (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: SYeDw3VjNI9QyhRDwKe8SY8QUUQAcwD5ukDPS20MV5loK4Kw8lL9YazcvIrZkdvGvqeerp7axstvqwRVVAu8mEfJ4xYwM/GzSZo0vDVH1iY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR03MB4474 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138,18.0.676 definitions=2020-04-25_03: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-2004250061 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gU2F0LCAyMDIwLTA0LTI1IGF0IDA2OjI4ICswMDAwLCBBcmRlbGVhbiwgQWxleGFuZHJ1IHdy b3RlOg0KPiBbRXh0ZXJuYWxdDQo+IA0KPiBPbiBGcmksIDIwMjAtMDQtMjQgYXQgMTQ6MzEgLTA3 MDAsIFNyaW5pdmFzIFBhbmRydXZhZGEgd3JvdGU6DQo+ID4gW0V4dGVybmFsXQ0KPiA+IA0KPiA+ IE9uIEZyaSwgMjAyMC0wNC0yNCBhdCAwNzozNCArMDMwMCwgQWxleGFuZHJ1IEFyZGVsZWFuIHdy b3RlOg0KPiA+ID4gVGhlIG1haW4gaW50ZW50IGhlcmUgaXMgdG8gZ2V0IHJpZCBvZiB0aGUgaWlv X2J1ZmZlcl9zZXRfYXR0cnMoKQ0KPiA+ID4gaGVscGVyLCBvcg0KPiA+ID4gYXQgbGVhc3QgcmV3 b3JrIGl0J3MgdXNhZ2UgYSBiaXQuDQo+ID4gPiBUaGUgcHJvYmxlbSB3aXRoIHRoYXQgaGVscGVy IGlzIHRoYXQgaXQgbmVlZHMgYSBwb2ludGVyIHRvIHRoZQ0KPiA+ID4gYnVmZmVyLA0KPiA+ID4g d2hpY2ggbWFrZXMgc3VwcG9ydGluZyBtdWx0aXBsZSBidWZmZXJzIHBlciBJSU8gZGV2aWNlIGEg Yml0IG1vcmUNCj4gPiA+IGN1bWJlcnNvbWUuDQo+ID4gPiANCj4gPiA+IFRoZSBoaWRfc2Vuc29y X3NldHVwX3RyaWdnZXIoKSBpcyBwcmV0dHkgbXVjaCB1c2VkIGluIHRoZSBzYW1lIHdheToNCj4g PiA+IC0gaWlvX3RyaWdnZXJlZF9idWZmZXJfc2V0dXAoKSBnZXRzIGNhbGxlZCBiZWZvcmUNCj4g PiA+IC0gdGhlbiBoaWRfc2Vuc29yX3NldHVwX3RyaWdnZXIoKSBhbmQgaGlkX3NlbnNvcl9zZXR1 cF9iYXRjaF9tb2RlKCkNCj4gPiA+IGdldHMNCj4gPiA+ICAgY2FsbGVkIHdoaWNoIG1heSBhdHRh Y2ggc29tZSBmaWZvIGF0dHJpYnV0ZXMNCj4gPiA+IA0KPiA+ID4gVGhpcyBjaGFuZ2UgbWVyZ2Vz IHRoZSAyIHRvZ2V0aGVyIHVuZGVyIHRoZQ0KPiA+ID4gaGlkX3NlbnNvcl9zZXR1cF90cmlnZ2Vy KCkNCj4gPiA+IGZ1bmN0aW9uLiBPbmx5IHRoZSAmaWlvX3BvbGxmdW5jX3N0b3JlX3RpbWUgaXMg cGFzc2VkIHRvIGFsbCBkZXZpY2VzLA0KPiA+ID4gc28NCj4gPiA+IGl0J3Mgbm90IGV2ZW4gcmVx dWlyZWQgdG8gcGFzcyBpdCBleHBsaWNpdGx5IG91dHNpZGUgb2YgdGhlIGNvbW1vbg0KPiA+ID4g aGlkX3NlbnNvcl9zZXR1cF90cmlnZ2VyKCkgZnVuY3Rpb24uDQo+ID4gPiANCj4gPiA+IE1vdmlu ZyB0aGUgZGV2bV9paW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cC9jbGVhbnVwKCkgY2FsbHMgaW50 byB0aGUNCj4gPiA+IGNvbW1vbg0KPiA+ID4gcGxhY2UgY29kZSBjYW4gaGVscCB0aGUgcmV3b3Jr IG9mIHRoZSBidWZmZXIgY29kZSwgc2luY2UgaXQgaXMgaW4gb25lDQo+ID4gPiBwbGFjZS4NCj4g PiA+IA0KPiA+ID4gT25lIGRldGFpbCBvZiB0aGUgY2hhbmdlIGlzIHRoYXQgdGhlcmUgYXJlIDIg ZHJpdmVycyB0aGF0IHVzZQ0KPiA+ID4gZGV2bV9paW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cCgp LiBUaGF0IGZ1bmN0aW9uIGdldHMgaW1wbGljaXRseQ0KPiA+ID4gcmVwbGFjZWQgd2l0aCBpaW9f dHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cCgpL2NsZWFudXAoKSwgYnV0IHNpbmNlIGFsbA0KPiA+ID4g ZHJpdmVycw0KPiA+ID4gY2FsbCBib3RoIGhpZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcjkpICYgaGlk X3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigpDQo+ID4gPiB0cmlnZ2VyLA0KPiA+ID4gdGhlIGlpb190 cmlnZ2VyZWRfYnVmZmVyX2NsZWFudXAoKSBwaWdneSBiYWNrcyBvbiB0aGUNCj4gPiA+IGhpZF9z ZW5zb3JfcmVtb3ZlX3RyaWdnZXIoKSBjYWxsLCB3aGljaCBzaG91bGQgY292ZXIgdGhlIGNsZWFu dXAuDQo+ID4gDQo+ID4gRGlkIHlvdSB0ZXN0IG9uIGFueSBwbGF0Zm9ybT8gWW91IGNhbiBjaGVj ayBhbnkgbGF0ZXIgbGFwdG9wcyBhbmQgY2hlY2sNCj4gPiBkaXNwbGF5IHJvdGF0aW9uLg0KPiAN Cj4gU29ycnksIEkgZGlkbid0Lg0KPiBJIGRvIHJlbWVtYmVyIHNlZWluZyB0aGlzIG9uIHNvbWUg c21hbGxlciB0YWJsZXQtbGFwdG9wcywgYnV0IEkgZG9uJ3QgaGF2ZSBvbmUNCj4gYXJvdW5kLg0K PiBUaGUgbmV3ZXN0IEkgaGF2ZSBpcyBEZWxsIFByZWNpc2lvbiA1NTIwIGZyb20gMiB5ZWFycyBh Z28uIFdoaWNoIGlzIG1vcmUgb2YgYW4NCj4gb2ZmaWNlIGxhcHRvcC4NCj4gDQo+IEkgY2FuJ3Qg c2VlbSB0byBmaW5kIGFueSBJSU8gZGV2aWNlcyBvbiBpdC4NCj4gU28sIEkgZG9uJ3QgdGhpbmsg aXQgaGFzIGFueSBkaXNwbGF5IHJvdGF0aW9uOyBvbiBXaW5kb3dzIEknbSBwcmV0dHkgc3VyZSBJ DQo+IGRpZG4ndCBzZWUgYW55dGhpbmcgYWJvdXQuDQo+IA0KDQpJIHNob3VsZCBtZW50aW9uLg0K SSdtIHJ1bm5pbmcgWFVidW50dSAxOS4xMCwga2VybmVsIHZlcnNpb24gaXMgNS4zDQpYVWJ1bnR1 IGlzIGJhc2ljYWxseSBVYnVudHUgcmUtcGFja2FnZWQgd2l0aCBYRkNFLg0KIA0KDQo+IE1heWJl IEkgbWlzc2VkIGl0Lg0KPiBBbnkgcG9pbnRlcnMgYXJlIGFwcHJlY2lhdGVkLg0KPiANCj4gVGhh bmtzDQo+IEFsZXgNCj4gDQo+ID4gVGhhbmtzLA0KPiA+IFNyaW5pdmFzDQo+ID4gDQo+ID4gPiBT aWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgQXJkZWxlYW4gPGFsZXhhbmRydS5hcmRlbGVhbkBhbmFs b2cuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgZHJpdmVycy9paW8vYWNjZWwvaGlkLXNlbnNvci1h Y2NlbC0zZC5jICAgICAgICB8IDE4ICsrKystLS0tLS0tLS0tDQo+ID4gPiAtLS0tDQo+ID4gPiAg Li4uL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuYyAgICB8IDE4ICsrKysr KysrKysrKysrKy0NCj4gPiA+IC0tDQo+ID4gPiAgLi4uL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQt c2Vuc29yLXRyaWdnZXIuaCAgICB8ICAzICsrLQ0KPiA+ID4gIGRyaXZlcnMvaWlvL2d5cm8vaGlk LXNlbnNvci1neXJvLTNkLmMgICAgICAgICAgfCAxOCArKysrLS0tLS0tLS0tLQ0KPiA+ID4gLS0t LQ0KPiA+ID4gIGRyaXZlcnMvaWlvL2h1bWlkaXR5L2hpZC1zZW5zb3ItaHVtaWRpdHkuYyAgICAg fCAxMiArKystLS0tLS0tLS0NCj4gPiA+ICBkcml2ZXJzL2lpby9saWdodC9oaWQtc2Vuc29yLWFs cy5jICAgICAgICAgICAgIHwgMTggKysrKy0tLS0tLS0tLS0NCj4gPiA+IC0tLS0NCj4gPiA+ICBk cml2ZXJzL2lpby9saWdodC9oaWQtc2Vuc29yLXByb3guYyAgICAgICAgICAgIHwgMTggKysrKy0t LS0tLS0tLS0NCj4gPiA+IC0tLS0NCj4gPiA+ICBkcml2ZXJzL2lpby9tYWduZXRvbWV0ZXIvaGlk LXNlbnNvci1tYWduLTNkLmMgIHwgMTggKysrKy0tLS0tLS0tLS0NCj4gPiA+IC0tLS0NCj4gPiA+ ICBkcml2ZXJzL2lpby9vcmllbnRhdGlvbi9oaWQtc2Vuc29yLWluY2wtM2QuYyAgIHwgMTggKysr Ky0tLS0tLS0tLS0NCj4gPiA+IC0tLS0NCj4gPiA+ICBkcml2ZXJzL2lpby9vcmllbnRhdGlvbi9o aWQtc2Vuc29yLXJvdGF0aW9uLmMgIHwgMTggKysrKy0tLS0tLS0tLS0NCj4gPiA+IC0tLS0NCj4g PiA+ICBkcml2ZXJzL2lpby9wcmVzc3VyZS9oaWQtc2Vuc29yLXByZXNzLmMgICAgICAgIHwgMTgg KysrKy0tLS0tLS0tLS0NCj4gPiA+IC0tLS0NCj4gPiA+ICAuLi4vaWlvL3RlbXBlcmF0dXJlL2hp ZC1zZW5zb3ItdGVtcGVyYXR1cmUuYyAgIHwgMTIgKysrLS0tLS0tLS0tDQo+ID4gPiAgMTIgZmls ZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMTM0IGRlbGV0aW9ucygtKQ0KPiA+ID4gDQo+ ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vYWNjZWwvaGlkLXNlbnNvci1hY2NlbC0zZC5j DQo+ID4gPiBiL2RyaXZlcnMvaWlvL2FjY2VsL2hpZC1zZW5zb3ItYWNjZWwtM2QuYw0KPiA+ID4g aW5kZXggMGQ5ZTJkZWYyYjI1Li4wZWMwNTMzNDQ4YmMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9kcml2 ZXJzL2lpby9hY2NlbC9oaWQtc2Vuc29yLWFjY2VsLTNkLmMNCj4gPiA+ICsrKyBiL2RyaXZlcnMv aWlvL2FjY2VsL2hpZC1zZW5zb3ItYWNjZWwtM2QuYw0KPiA+ID4gQEAgLTE0LDggKzE0LDYgQEAN Cj4gPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2lpby5oPg0KPiA+ID4gICNpbmNsdWRlIDxsaW51 eC9paW8vc3lzZnMuaD4NCj4gPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2J1ZmZlci5oPg0KPiA+ ID4gLSNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dlcl9jb25zdW1lci5oPg0KPiA+ID4gLSNpbmNs dWRlIDxsaW51eC9paW8vdHJpZ2dlcmVkX2J1ZmZlci5oPg0KPiA+ID4gICNpbmNsdWRlICIuLi9j b21tb24vaGlkLXNlbnNvcnMvaGlkLXNlbnNvci10cmlnZ2VyLmgiDQo+ID4gPiAgDQo+ID4gPiAg ZW51bSBhY2NlbF8zZF9jaGFubmVsIHsNCj4gPiA+IEBAIC0zOTEsMTggKzM4OSwxMyBAQCBzdGF0 aWMgaW50IGhpZF9hY2NlbF8zZF9wcm9iZShzdHJ1Y3QNCj4gPiA+IHBsYXRmb3JtX2RldmljZSAq cGRldikNCj4gPiA+ICAJaW5kaW9fZGV2LT5uYW1lID0gbmFtZTsNCj4gPiA+ICAJaW5kaW9fZGV2 LT5tb2RlcyA9IElORElPX0RJUkVDVF9NT0RFOw0KPiA+ID4gIA0KPiA+ID4gLQlyZXQgPSBpaW9f dHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cChpbmRpb19kZXYsDQo+ID4gPiAmaWlvX3BvbGxmdW5jX3N0 b3JlX3RpbWUsDQo+ID4gPiAtCQlOVUxMLCBOVUxMKTsNCj4gPiA+IC0JaWYgKHJldCkgew0KPiA+ ID4gLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgdHJpZ2dlcg0K PiA+ID4gYnVmZmVyXG4iKTsNCj4gPiA+IC0JCWdvdG8gZXJyb3JfZnJlZV9kZXZfbWVtOw0KPiA+ ID4gLQl9DQo+ID4gPiAgCWF0b21pY19zZXQoJmFjY2VsX3N0YXRlLT5jb21tb25fYXR0cmlidXRl cy5kYXRhX3JlYWR5LCAwKTsNCj4gPiA+ICsNCj4gPiA+ICAJcmV0ID0gaGlkX3NlbnNvcl9zZXR1 cF90cmlnZ2VyKGluZGlvX2RldiwgbmFtZSwNCj4gPiA+ICAJCQkJCSZhY2NlbF9zdGF0ZS0NCj4g PiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ID4gIAlpZiAocmV0IDwgMCkgew0KPiA+ID4g IAkJZGV2X2VycigmcGRldi0+ZGV2LCAidHJpZ2dlciBzZXR1cCBmYWlsZWRcbiIpOw0KPiA+ID4g LQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJfZnVuY3M7DQo+ID4gPiArCQlnb3RvIGVycm9yX2Zy ZWVfZGV2X21lbTsNCj4gPiA+ICAJfQ0KPiA+ID4gIA0KPiA+ID4gIAlyZXQgPSBpaW9fZGV2aWNl X3JlZ2lzdGVyKGluZGlvX2Rldik7DQo+ID4gPiBAQCAtNDI2LDkgKzQxOSw3IEBAIHN0YXRpYyBp bnQgaGlkX2FjY2VsXzNkX3Byb2JlKHN0cnVjdA0KPiA+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2 KQ0KPiA+ID4gIGVycm9yX2lpb191bnJlZzoNCj4gPiA+ICAJaWlvX2RldmljZV91bnJlZ2lzdGVy KGluZGlvX2Rldik7DQo+ID4gPiAgZXJyb3JfcmVtb3ZlX3RyaWdnZXI6DQo+ID4gPiAtCWhpZF9z ZW5zb3JfcmVtb3ZlX3RyaWdnZXIoJmFjY2VsX3N0YXRlLT5jb21tb25fYXR0cmlidXRlcyk7DQo+ ID4gPiAtZXJyb3JfdW5yZWdfYnVmZmVyX2Z1bmNzOg0KPiA+ID4gLQlpaW9fdHJpZ2dlcmVkX2J1 ZmZlcl9jbGVhbnVwKGluZGlvX2Rldik7DQo+ID4gPiArCWhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdn ZXIoaW5kaW9fZGV2LCAmYWNjZWxfc3RhdGUtDQo+ID4gPiA+IGNvbW1vbl9hdHRyaWJ1dGVzKTsN Cj4gPiA+ICBlcnJvcl9mcmVlX2Rldl9tZW06DQo+ID4gPiAgCWtmcmVlKGluZGlvX2Rldi0+Y2hh bm5lbHMpOw0KPiA+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ID4gQEAgLTQ0Myw4ICs0MzQsNyBAQCBz dGF0aWMgaW50IGhpZF9hY2NlbF8zZF9yZW1vdmUoc3RydWN0DQo+ID4gPiBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpDQo+ID4gPiAgDQo+ID4gPiAgCXNlbnNvcl9odWJfcmVtb3ZlX2NhbGxiYWNrKGhz ZGV2LCBoc2Rldi0+dXNhZ2UpOw0KPiA+ID4gIAlpaW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9f ZGV2KTsNCj4gPiA+IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmYWNjZWxfc3RhdGUtPmNv bW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiA+IC0JaWlvX3RyaWdnZXJlZF9idWZmZXJfY2xlYW51cChp bmRpb19kZXYpOw0KPiA+ID4gKwloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKGluZGlvX2Rldiwg JmFjY2VsX3N0YXRlLQ0KPiA+ID4gPiBjb21tb25fYXR0cmlidXRlcyk7DQo+ID4gPiAgCWtmcmVl KGluZGlvX2Rldi0+Y2hhbm5lbHMpOw0KPiA+ID4gIA0KPiA+ID4gIAlyZXR1cm4gMDsNCj4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9jb21tb24vaGlkLXNlbnNvcnMvaGlkLXNlbnNvci10 cmlnZ2VyLmMNCj4gPiA+IGIvZHJpdmVycy9paW8vY29tbW9uL2hpZC1zZW5zb3JzL2hpZC1zZW5z b3ItdHJpZ2dlci5jDQo+ID4gPiBpbmRleCA5MDZkODc3ODA0MTkuLmZmMzc1NzkwYjdlOCAxMDA2 NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29y LXRyaWdnZXIuYw0KPiA+ID4gKysrIGIvZHJpdmVycy9paW8vY29tbW9uL2hpZC1zZW5zb3JzL2hp ZC1zZW5zb3ItdHJpZ2dlci5jDQo+ID4gPiBAQCAtMTMsNiArMTMsOCBAQA0KPiA+ID4gICNpbmNs dWRlIDxsaW51eC9oaWQtc2Vuc29yLWh1Yi5oPg0KPiA+ID4gICNpbmNsdWRlIDxsaW51eC9paW8v aWlvLmg+DQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyLmg+DQo+ID4gPiArI2lu Y2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyZWRfYnVmZmVyLmg+DQo+ID4gPiArI2luY2x1ZGUgPGxp bnV4L2lpby90cmlnZ2VyX2NvbnN1bWVyLmg+DQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9i dWZmZXIuaD4NCj4gPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL3N5c2ZzLmg+DQo+ID4gPiAgI2lu Y2x1ZGUgImhpZC1zZW5zb3ItdHJpZ2dlci5oIg0KPiA+ID4gQEAgLTIyMiw3ICsyMjQsOCBAQCBz dGF0aWMgaW50DQo+ID4gPiBoaWRfc2Vuc29yX2RhdGFfcmR5X3RyaWdnZXJfc2V0X3N0YXRlKHN0 cnVjdCBpaW9fdHJpZ2dlciAqdHJpZywNCj4gPiA+ICAJcmV0dXJuIGhpZF9zZW5zb3JfcG93ZXJf c3RhdGUoaWlvX3RyaWdnZXJfZ2V0X2RydmRhdGEodHJpZyksDQo+ID4gPiBzdGF0ZSk7DQo+ID4g PiAgfQ0KPiA+ID4gIA0KPiA+ID4gLXZvaWQgaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihzdHJ1 Y3QgaGlkX3NlbnNvcl9jb21tb24gKmF0dHJiKQ0KPiA+ID4gK3ZvaWQgaGlkX3NlbnNvcl9yZW1v dmVfdHJpZ2dlcihzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LA0KPiA+ID4gKwkJCSAgICAgICBz dHJ1Y3QgaGlkX3NlbnNvcl9jb21tb24gKmF0dHJiKQ0KPiA+ID4gIHsNCj4gPiA+ICAJaWYgKGF0 b21pY19yZWFkKCZhdHRyYi0+cnVudGltZV9wbV9lbmFibGUpKQ0KPiA+ID4gIAkJcG1fcnVudGlt ZV9kaXNhYmxlKCZhdHRyYi0+cGRldi0+ZGV2KTsNCj4gPiA+IEBAIC0yMzMsNiArMjM2LDcgQEAg dm9pZCBoaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKHN0cnVjdA0KPiA+ID4gaGlkX3NlbnNvcl9j b21tb24gKmF0dHJiKQ0KPiA+ID4gIAljYW5jZWxfd29ya19zeW5jKCZhdHRyYi0+d29yayk7DQo+ ID4gPiAgCWlpb190cmlnZ2VyX3VucmVnaXN0ZXIoYXR0cmItPnRyaWdnZXIpOw0KPiA+ID4gIAlp aW9fdHJpZ2dlcl9mcmVlKGF0dHJiLT50cmlnZ2VyKTsNCj4gPiA+ICsJaWlvX3RyaWdnZXJlZF9i dWZmZXJfY2xlYW51cChpbmRpb19kZXYpOw0KPiA+ID4gIH0NCj4gPiA+ICBFWFBPUlRfU1lNQk9M KGhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIpOw0KPiA+ID4gIA0KPiA+ID4gQEAgLTI0NiwxMSAr MjUwLDE4IEBAIGludCBoaWRfc2Vuc29yX3NldHVwX3RyaWdnZXIoc3RydWN0IGlpb19kZXYNCj4g PiA+ICppbmRpb19kZXYsIGNvbnN0IGNoYXIgKm5hbWUsDQo+ID4gPiAgCWludCByZXQ7DQo+ID4g PiAgCXN0cnVjdCBpaW9fdHJpZ2dlciAqdHJpZzsNCj4gPiA+ICANCj4gPiA+ICsJcmV0ID0gaWlv X3RyaWdnZXJlZF9idWZmZXJfc2V0dXAoaW5kaW9fZGV2LA0KPiA+ID4gJmlpb19wb2xsZnVuY19z dG9yZV90aW1lLA0KPiA+ID4gKwkJCQkJIE5VTEwsIE5VTEwpOw0KPiA+ID4gKwlpZiAocmV0KSB7 DQo+ID4gPiArCQlkZXZfZXJyKCZpbmRpb19kZXYtPmRldiwgIlRyaWdnZXJlZCBCdWZmZXIgU2V0 dXANCj4gPiA+IEZhaWxlZFxuIik7DQo+ID4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ID4gKwl9DQo+ ID4gPiArDQo+ID4gPiAgCXRyaWcgPSBpaW9fdHJpZ2dlcl9hbGxvYygiJXMtZGV2JWQiLCBuYW1l LCBpbmRpb19kZXYtPmlkKTsNCj4gPiA+ICAJaWYgKHRyaWcgPT0gTlVMTCkgew0KPiA+ID4gIAkJ ZGV2X2VycigmaW5kaW9fZGV2LT5kZXYsICJUcmlnZ2VyIEFsbG9jYXRlIEZhaWxlZFxuIik7DQo+ ID4gPiAgCQlyZXQgPSAtRU5PTUVNOw0KPiA+ID4gLQkJZ290byBlcnJvcl9yZXQ7DQo+ID4gPiAr CQlnb3RvIGVycm9yX3RyaWdnZXJlZF9idWZmZXJfY2xlYW51cDsNCj4gPiA+ICAJfQ0KPiA+ID4g IA0KPiA+ID4gIAl0cmlnLT5kZXYucGFyZW50ID0gaW5kaW9fZGV2LT5kZXYucGFyZW50Ow0KPiA+ ID4gQEAgLTI4NCw3ICsyOTUsOCBAQCBpbnQgaGlkX3NlbnNvcl9zZXR1cF90cmlnZ2VyKHN0cnVj dCBpaW9fZGV2DQo+ID4gPiAqaW5kaW9fZGV2LCBjb25zdCBjaGFyICpuYW1lLA0KPiA+ID4gIAlp aW9fdHJpZ2dlcl91bnJlZ2lzdGVyKHRyaWcpOw0KPiA+ID4gIGVycm9yX2ZyZWVfdHJpZzoNCj4g PiA+ICAJaWlvX3RyaWdnZXJfZnJlZSh0cmlnKTsNCj4gPiA+IC1lcnJvcl9yZXQ6DQo+ID4gPiAr ZXJyb3JfdHJpZ2dlcmVkX2J1ZmZlcl9jbGVhbnVwOg0KPiA+ID4gKwlpaW9fdHJpZ2dlcmVkX2J1 ZmZlcl9jbGVhbnVwKGluZGlvX2Rldik7DQo+ID4gPiAgCXJldHVybiByZXQ7DQo+ID4gPiAgfQ0K PiA+ID4gIEVYUE9SVF9TWU1CT0woaGlkX3NlbnNvcl9zZXR1cF90cmlnZ2VyKTsNCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2lpby9jb21tb24vaGlkLXNlbnNvcnMvaGlkLXNlbnNvci10cmln Z2VyLmgNCj4gPiA+IGIvZHJpdmVycy9paW8vY29tbW9uL2hpZC1zZW5zb3JzL2hpZC1zZW5zb3It dHJpZ2dlci5oDQo+ID4gPiBpbmRleCBmNDdiOTQwZmYxNzAuLmJiNDVjYzg5ZTU1MSAxMDA2NDQN Cj4gPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRy aWdnZXIuaA0KPiA+ID4gKysrIGIvZHJpdmVycy9paW8vY29tbW9uL2hpZC1zZW5zb3JzL2hpZC1z ZW5zb3ItdHJpZ2dlci5oDQo+ID4gPiBAQCAtMTMsNyArMTMsOCBAQCBleHRlcm4gY29uc3Qgc3Ry dWN0IGRldl9wbV9vcHMgaGlkX3NlbnNvcl9wbV9vcHM7DQo+ID4gPiAgDQo+ID4gPiAgaW50IGhp ZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LCBjb25zdCBj aGFyDQo+ID4gPiAqbmFtZSwNCj4gPiA+ICAJCQkJc3RydWN0IGhpZF9zZW5zb3JfY29tbW9uICph dHRyYik7DQo+ID4gPiAtdm9pZCBoaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKHN0cnVjdCBoaWRf c2Vuc29yX2NvbW1vbiAqYXR0cmIpOw0KPiA+ID4gK3ZvaWQgaGlkX3NlbnNvcl9yZW1vdmVfdHJp Z2dlcihzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LA0KPiA+ID4gKwkJCSAgICAgICBzdHJ1Y3Qg aGlkX3NlbnNvcl9jb21tb24gKmF0dHJiKTsNCj4gPiA+ICBpbnQgaGlkX3NlbnNvcl9wb3dlcl9z dGF0ZShzdHJ1Y3QgaGlkX3NlbnNvcl9jb21tb24gKnN0LCBib29sDQo+ID4gPiBzdGF0ZSk7DQo+ ID4gPiAgDQo+ID4gPiAgI2VuZGlmDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vZ3ly by9oaWQtc2Vuc29yLWd5cm8tM2QuYw0KPiA+ID4gYi9kcml2ZXJzL2lpby9neXJvL2hpZC1zZW5z b3ItZ3lyby0zZC5jDQo+ID4gPiBpbmRleCAwOGNhY2JiZjMxZTYuLjdmMzgyYWFlMWRmZCAxMDA2 NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2d5cm8vaGlkLXNlbnNvci1neXJvLTNkLmMNCj4g PiA+ICsrKyBiL2RyaXZlcnMvaWlvL2d5cm8vaGlkLXNlbnNvci1neXJvLTNkLmMNCj4gPiA+IEBA IC0xNCw4ICsxNCw2IEBADQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9paW8uaD4NCj4gPiA+ ICAjaW5jbHVkZSA8bGludXgvaWlvL3N5c2ZzLmg+DQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2lp by9idWZmZXIuaD4NCj4gPiA+IC0jaW5jbHVkZSA8bGludXgvaWlvL3RyaWdnZXJfY29uc3VtZXIu aD4NCj4gPiA+IC0jaW5jbHVkZSA8bGludXgvaWlvL3RyaWdnZXJlZF9idWZmZXIuaD4NCj4gPiA+ ICAjaW5jbHVkZSAiLi4vY29tbW9uL2hpZC1zZW5zb3JzL2hpZC1zZW5zb3ItdHJpZ2dlci5oIg0K PiA+ID4gIA0KPiA+ID4gIGVudW0gZ3lyb18zZF9jaGFubmVsIHsNCj4gPiA+IEBAIC0zMjYsMTgg KzMyNCwxMyBAQCBzdGF0aWMgaW50IGhpZF9neXJvXzNkX3Byb2JlKHN0cnVjdA0KPiA+ID4gcGxh dGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ID4gIAlpbmRpb19kZXYtPm5hbWUgPSBuYW1lOw0KPiA+ ID4gIAlpbmRpb19kZXYtPm1vZGVzID0gSU5ESU9fRElSRUNUX01PREU7DQo+ID4gPiAgDQo+ID4g PiAtCXJldCA9IGlpb190cmlnZ2VyZWRfYnVmZmVyX3NldHVwKGluZGlvX2RldiwNCj4gPiA+ICZp aW9fcG9sbGZ1bmNfc3RvcmVfdGltZSwNCj4gPiA+IC0JCU5VTEwsIE5VTEwpOw0KPiA+ID4gLQlp ZiAocmV0KSB7DQo+ID4gPiAtCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gaW5pdGlh bGl6ZSB0cmlnZ2VyDQo+ID4gPiBidWZmZXJcbiIpOw0KPiA+ID4gLQkJZ290byBlcnJvcl9mcmVl X2Rldl9tZW07DQo+ID4gPiAtCX0NCj4gPiA+ICAJYXRvbWljX3NldCgmZ3lyb19zdGF0ZS0+Y29t bW9uX2F0dHJpYnV0ZXMuZGF0YV9yZWFkeSwgMCk7DQo+ID4gPiArDQo+ID4gPiAgCXJldCA9IGhp ZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihpbmRpb19kZXYsIG5hbWUsDQo+ID4gPiAgCQkJCQkmZ3ly b19zdGF0ZS0NCj4gPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ID4gIAlpZiAocmV0IDwg MCkgew0KPiA+ID4gIAkJZGV2X2VycigmcGRldi0+ZGV2LCAidHJpZ2dlciBzZXR1cCBmYWlsZWRc biIpOw0KPiA+ID4gLQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJfZnVuY3M7DQo+ID4gPiArCQln b3RvIGVycm9yX2ZyZWVfZGV2X21lbTsNCj4gPiA+ICAJfQ0KPiA+ID4gIA0KPiA+ID4gIAlyZXQg PSBpaW9fZGV2aWNlX3JlZ2lzdGVyKGluZGlvX2Rldik7DQo+ID4gPiBAQCAtMzYxLDkgKzM1NCw3 IEBAIHN0YXRpYyBpbnQgaGlkX2d5cm9fM2RfcHJvYmUoc3RydWN0DQo+ID4gPiBwbGF0Zm9ybV9k ZXZpY2UgKnBkZXYpDQo+ID4gPiAgZXJyb3JfaWlvX3VucmVnOg0KPiA+ID4gIAlpaW9fZGV2aWNl X3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiA+ICBlcnJvcl9yZW1vdmVfdHJpZ2dlcjoNCj4g PiA+IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmZ3lyb19zdGF0ZS0+Y29tbW9uX2F0dHJp YnV0ZXMpOw0KPiA+ID4gLWVycm9yX3VucmVnX2J1ZmZlcl9mdW5jczoNCj4gPiA+IC0JaWlvX3Ry aWdnZXJlZF9idWZmZXJfY2xlYW51cChpbmRpb19kZXYpOw0KPiA+ID4gKwloaWRfc2Vuc29yX3Jl bW92ZV90cmlnZ2VyKGluZGlvX2RldiwgJmd5cm9fc3RhdGUtDQo+ID4gPiA+IGNvbW1vbl9hdHRy aWJ1dGVzKTsNCj4gPiA+ICBlcnJvcl9mcmVlX2Rldl9tZW06DQo+ID4gPiAgCWtmcmVlKGluZGlv X2Rldi0+Y2hhbm5lbHMpOw0KPiA+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ID4gQEAgLTM3OCw4ICsz NjksNyBAQCBzdGF0aWMgaW50IGhpZF9neXJvXzNkX3JlbW92ZShzdHJ1Y3QNCj4gPiA+IHBsYXRm b3JtX2RldmljZSAqcGRldikNCj4gPiA+ICANCj4gPiA+ICAJc2Vuc29yX2h1Yl9yZW1vdmVfY2Fs bGJhY2soaHNkZXYsIEhJRF9VU0FHRV9TRU5TT1JfR1lST18zRCk7DQo+ID4gPiAgCWlpb19kZXZp Y2VfdW5yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmln Z2VyKCZneXJvX3N0YXRlLT5jb21tb25fYXR0cmlidXRlcyk7DQo+ID4gPiAtCWlpb190cmlnZ2Vy ZWRfYnVmZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4gPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVf dHJpZ2dlcihpbmRpb19kZXYsICZneXJvX3N0YXRlLQ0KPiA+ID4gPiBjb21tb25fYXR0cmlidXRl cyk7DQo+ID4gPiAgCWtmcmVlKGluZGlvX2Rldi0+Y2hhbm5lbHMpOw0KPiA+ID4gIA0KPiA+ID4g IAlyZXR1cm4gMDsNCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9odW1pZGl0eS9oaWQt c2Vuc29yLWh1bWlkaXR5LmMNCj4gPiA+IGIvZHJpdmVycy9paW8vaHVtaWRpdHkvaGlkLXNlbnNv ci1odW1pZGl0eS5jDQo+ID4gPiBpbmRleCBjOTliNTRiMDU2OGQuLmQyMzE4YzRhYWIwZiAxMDA2 NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2h1bWlkaXR5L2hpZC1zZW5zb3ItaHVtaWRpdHku Yw0KPiA+ID4gKysrIGIvZHJpdmVycy9paW8vaHVtaWRpdHkvaGlkLXNlbnNvci1odW1pZGl0eS5j DQo+ID4gPiBAQCAtNyw4ICs3LDYgQEANCj4gPiA+ICAjaW5jbHVkZSA8bGludXgvaGlkLXNlbnNv ci1odWIuaD4NCj4gPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2J1ZmZlci5oPg0KPiA+ID4gICNp bmNsdWRlIDxsaW51eC9paW8vaWlvLmg+DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmln Z2VyZWRfYnVmZmVyLmg+DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyX2NvbnN1 bWVyLmg+DQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiA+ID4gICNpbmNsdWRl IDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4gPiA+ICANCj4gPiA+IEBAIC0yMzMsMTIgKzIz MSw4IEBAIHN0YXRpYyBpbnQgaGlkX2h1bWlkaXR5X3Byb2JlKHN0cnVjdA0KPiA+ID4gcGxhdGZv cm1fZGV2aWNlICpwZGV2KQ0KPiA+ID4gIAlpbmRpb19kZXYtPm5hbWUgPSBuYW1lOw0KPiA+ID4g IAlpbmRpb19kZXYtPm1vZGVzID0gSU5ESU9fRElSRUNUX01PREU7DQo+ID4gPiAgDQo+ID4gPiAt CXJldCA9IGRldm1faWlvX3RyaWdnZXJlZF9idWZmZXJfc2V0dXAoJnBkZXYtPmRldiwgaW5kaW9f ZGV2LA0KPiA+ID4gLQkJCQkJJmlpb19wb2xsZnVuY19zdG9yZV90aW1lLCBOVUxMLA0KPiA+ID4g TlVMTCk7DQo+ID4gPiAtCWlmIChyZXQpDQo+ID4gPiAtCQlyZXR1cm4gcmV0Ow0KPiA+ID4gLQ0K PiA+ID4gIAlhdG9taWNfc2V0KCZodW1pZF9zdC0+Y29tbW9uX2F0dHJpYnV0ZXMuZGF0YV9yZWFk eSwgMCk7DQo+ID4gPiArDQo+ID4gPiAgCXJldCA9IGhpZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihp bmRpb19kZXYsIG5hbWUsDQo+ID4gPiAgCQkJCSZodW1pZF9zdC0+Y29tbW9uX2F0dHJpYnV0ZXMp Ow0KPiA+ID4gIAlpZiAocmV0KQ0KPiA+ID4gQEAgLTI2MSw3ICsyNTUsNyBAQCBzdGF0aWMgaW50 IGhpZF9odW1pZGl0eV9wcm9iZShzdHJ1Y3QNCj4gPiA+IHBsYXRmb3JtX2RldmljZSAqcGRldikN Cj4gPiA+ICBlcnJvcl9yZW1vdmVfY2FsbGJhY2s6DQo+ID4gPiAgCXNlbnNvcl9odWJfcmVtb3Zl X2NhbGxiYWNrKGhzZGV2LCBISURfVVNBR0VfU0VOU09SX0hVTUlESVRZKTsNCj4gPiA+ICBlcnJv cl9yZW1vdmVfdHJpZ2dlcjoNCj4gPiA+IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmaHVt aWRfc3QtPmNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJp Z2dlcihpbmRpb19kZXYsICZodW1pZF9zdC0NCj4gPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0K PiA+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ID4gIH0NCj4gPiA+ICANCj4gPiA+IEBAIC0yNzQsNyAr MjY4LDcgQEAgc3RhdGljIGludCBoaWRfaHVtaWRpdHlfcmVtb3ZlKHN0cnVjdA0KPiA+ID4gcGxh dGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ID4gIA0KPiA+ID4gIAlpaW9fZGV2aWNlX3VucmVnaXN0 ZXIoaW5kaW9fZGV2KTsNCj4gPiA+ICAJc2Vuc29yX2h1Yl9yZW1vdmVfY2FsbGJhY2soaHNkZXYs IEhJRF9VU0FHRV9TRU5TT1JfSFVNSURJVFkpOw0KPiA+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90 cmlnZ2VyKCZodW1pZF9zdC0+Y29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ID4gKwloaWRfc2Vuc29y X3JlbW92ZV90cmlnZ2VyKGluZGlvX2RldiwgJmh1bWlkX3N0LQ0KPiA+ID4gPiBjb21tb25fYXR0 cmlidXRlcyk7DQo+ID4gPiAgDQo+ID4gPiAgCXJldHVybiAwOw0KPiA+ID4gIH0NCj4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2lpby9saWdodC9oaWQtc2Vuc29yLWFscy5jDQo+ID4gPiBiL2Ry aXZlcnMvaWlvL2xpZ2h0L2hpZC1zZW5zb3ItYWxzLmMNCj4gPiA+IGluZGV4IGI2Y2QyOTk1MTdk MS4uODFmYTJhNDIyNzk3IDEwMDY0NA0KPiA+ID4gLS0tIGEvZHJpdmVycy9paW8vbGlnaHQvaGlk LXNlbnNvci1hbHMuYw0KPiA+ID4gKysrIGIvZHJpdmVycy9paW8vbGlnaHQvaGlkLXNlbnNvci1h bHMuYw0KPiA+ID4gQEAgLTE0LDggKzE0LDYgQEANCj4gPiA+ICAjaW5jbHVkZSA8bGludXgvaWlv L2lpby5oPg0KPiA+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vc3lzZnMuaD4NCj4gPiA+ICAjaW5j bHVkZSA8bGludXgvaWlvL2J1ZmZlci5oPg0KPiA+ID4gLSNpbmNsdWRlIDxsaW51eC9paW8vdHJp Z2dlcl9jb25zdW1lci5oPg0KPiA+ID4gLSNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dlcmVkX2J1 ZmZlci5oPg0KPiA+ID4gICNpbmNsdWRlICIuLi9jb21tb24vaGlkLXNlbnNvcnMvaGlkLXNlbnNv ci10cmlnZ2VyLmgiDQo+ID4gPiAgDQo+ID4gPiAgZW51bSB7DQo+ID4gPiBAQCAtMzA4LDE4ICsz MDYsMTMgQEAgc3RhdGljIGludCBoaWRfYWxzX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UN Cj4gPiA+ICpwZGV2KQ0KPiA+ID4gIAlpbmRpb19kZXYtPm5hbWUgPSBuYW1lOw0KPiA+ID4gIAlp bmRpb19kZXYtPm1vZGVzID0gSU5ESU9fRElSRUNUX01PREU7DQo+ID4gPiAgDQo+ID4gPiAtCXJl dCA9IGlpb190cmlnZ2VyZWRfYnVmZmVyX3NldHVwKGluZGlvX2RldiwNCj4gPiA+ICZpaW9fcG9s bGZ1bmNfc3RvcmVfdGltZSwNCj4gPiA+IC0JCU5VTEwsIE5VTEwpOw0KPiA+ID4gLQlpZiAocmV0 KSB7DQo+ID4gPiAtCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZSB0 cmlnZ2VyDQo+ID4gPiBidWZmZXJcbiIpOw0KPiA+ID4gLQkJZ290byBlcnJvcl9mcmVlX2Rldl9t ZW07DQo+ID4gPiAtCX0NCj4gPiA+ICAJYXRvbWljX3NldCgmYWxzX3N0YXRlLT5jb21tb25fYXR0 cmlidXRlcy5kYXRhX3JlYWR5LCAwKTsNCj4gPiA+ICsNCj4gPiA+ICAJcmV0ID0gaGlkX3NlbnNv cl9zZXR1cF90cmlnZ2VyKGluZGlvX2RldiwgbmFtZSwNCj4gPiA+ICAJCQkJJmFsc19zdGF0ZS0+ Y29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ID4gIAlpZiAocmV0IDwgMCkgew0KPiA+ID4gIAkJZGV2 X2VycigmcGRldi0+ZGV2LCAidHJpZ2dlciBzZXR1cCBmYWlsZWRcbiIpOw0KPiA+ID4gLQkJZ290 byBlcnJvcl91bnJlZ19idWZmZXJfZnVuY3M7DQo+ID4gPiArCQlnb3RvIGVycm9yX2ZyZWVfZGV2 X21lbTsNCj4gPiA+ICAJfQ0KPiA+ID4gIA0KPiA+ID4gIAlyZXQgPSBpaW9fZGV2aWNlX3JlZ2lz dGVyKGluZGlvX2Rldik7DQo+ID4gPiBAQCAtMzQzLDkgKzMzNiw3IEBAIHN0YXRpYyBpbnQgaGlk X2Fsc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlDQo+ID4gPiAqcGRldikNCj4gPiA+ICBl cnJvcl9paW9fdW5yZWc6DQo+ID4gPiAgCWlpb19kZXZpY2VfdW5yZWdpc3RlcihpbmRpb19kZXYp Ow0KPiA+ID4gIGVycm9yX3JlbW92ZV90cmlnZ2VyOg0KPiA+ID4gLQloaWRfc2Vuc29yX3JlbW92 ZV90cmlnZ2VyKCZhbHNfc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiA+IC1lcnJvcl91 bnJlZ19idWZmZXJfZnVuY3M6DQo+ID4gPiAtCWlpb190cmlnZ2VyZWRfYnVmZmVyX2NsZWFudXAo aW5kaW9fZGV2KTsNCj4gPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihpbmRpb19kZXYs ICZhbHNfc3RhdGUtDQo+ID4gPiA+IGNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiA+ICBlcnJvcl9m cmVlX2Rldl9tZW06DQo+ID4gPiAgCWtmcmVlKGluZGlvX2Rldi0+Y2hhbm5lbHMpOw0KPiA+ID4g IAlyZXR1cm4gcmV0Ow0KPiA+ID4gQEAgLTM2MCw4ICszNTEsNyBAQCBzdGF0aWMgaW50IGhpZF9h bHNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UNCj4gPiA+ICpwZGV2KQ0KPiA+ID4gIA0K PiA+ID4gIAlzZW5zb3JfaHViX3JlbW92ZV9jYWxsYmFjayhoc2RldiwgSElEX1VTQUdFX1NFTlNP Ul9BTFMpOw0KPiA+ID4gIAlpaW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiA+ IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmYWxzX3N0YXRlLT5jb21tb25fYXR0cmlidXRl cyk7DQo+ID4gPiAtCWlpb190cmlnZ2VyZWRfYnVmZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4g PiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihpbmRpb19kZXYsICZhbHNfc3RhdGUtDQo+ ID4gPiA+IGNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiA+ICAJa2ZyZWUoaW5kaW9fZGV2LT5jaGFu bmVscyk7DQo+ID4gPiAgDQo+ID4gPiAgCXJldHVybiAwOw0KPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaWlvL2xpZ2h0L2hpZC1zZW5zb3ItcHJveC5jDQo+ID4gPiBiL2RyaXZlcnMvaWlvL2xp Z2h0L2hpZC1zZW5zb3ItcHJveC5jDQo+ID4gPiBpbmRleCA3ZTEwMzBhZjliYTMuLmU5YzA0ZGYw NzM0NCAxMDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvaWlvL2xpZ2h0L2hpZC1zZW5zb3ItcHJv eC5jDQo+ID4gPiArKysgYi9kcml2ZXJzL2lpby9saWdodC9oaWQtc2Vuc29yLXByb3guYw0KPiA+ ID4gQEAgLTE0LDggKzE0LDYgQEANCj4gPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2lpby5oPg0K PiA+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vc3lzZnMuaD4NCj4gPiA+ICAjaW5jbHVkZSA8bGlu dXgvaWlvL2J1ZmZlci5oPg0KPiA+ID4gLSNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dlcl9jb25z dW1lci5oPg0KPiA+ID4gLSNpbmNsdWRlIDxsaW51eC9paW8vdHJpZ2dlcmVkX2J1ZmZlci5oPg0K PiA+ID4gICNpbmNsdWRlICIuLi9jb21tb24vaGlkLXNlbnNvcnMvaGlkLXNlbnNvci10cmlnZ2Vy LmgiDQo+ID4gPiAgDQo+ID4gPiAgI2RlZmluZSBDSEFOTkVMX1NDQU5fSU5ERVhfUFJFU0VOQ0Ug MA0KPiA+ID4gQEAgLTI4NiwxOCArMjg0LDEzIEBAIHN0YXRpYyBpbnQgaGlkX3Byb3hfcHJvYmUo c3RydWN0DQo+ID4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gPiAgCWluZGlvX2Rldi0+ bmFtZSA9IG5hbWU7DQo+ID4gPiAgCWluZGlvX2Rldi0+bW9kZXMgPSBJTkRJT19ESVJFQ1RfTU9E RTsNCj4gPiA+ICANCj4gPiA+IC0JcmV0ID0gaWlvX3RyaWdnZXJlZF9idWZmZXJfc2V0dXAoaW5k aW9fZGV2LA0KPiA+ID4gJmlpb19wb2xsZnVuY19zdG9yZV90aW1lLA0KPiA+ID4gLQkJTlVMTCwg TlVMTCk7DQo+ID4gPiAtCWlmIChyZXQpIHsNCj4gPiA+IC0JCWRldl9lcnIoJnBkZXYtPmRldiwg ImZhaWxlZCB0byBpbml0aWFsaXplIHRyaWdnZXINCj4gPiA+IGJ1ZmZlclxuIik7DQo+ID4gPiAt CQlnb3RvIGVycm9yX2ZyZWVfZGV2X21lbTsNCj4gPiA+IC0JfQ0KPiA+ID4gIAlhdG9taWNfc2V0 KCZwcm94X3N0YXRlLT5jb21tb25fYXR0cmlidXRlcy5kYXRhX3JlYWR5LCAwKTsNCj4gPiA+ICsN Cj4gPiA+ICAJcmV0ID0gaGlkX3NlbnNvcl9zZXR1cF90cmlnZ2VyKGluZGlvX2RldiwgbmFtZSwN Cj4gPiA+ICAJCQkJJnByb3hfc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiA+ICAJaWYg KHJldCkgew0KPiA+ID4gIAkJZGV2X2VycigmcGRldi0+ZGV2LCAidHJpZ2dlciBzZXR1cCBmYWls ZWRcbiIpOw0KPiA+ID4gLQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJfZnVuY3M7DQo+ID4gPiAr CQlnb3RvIGVycm9yX2ZyZWVfZGV2X21lbTsNCj4gPiA+ICAJfQ0KPiA+ID4gIA0KPiA+ID4gIAly ZXQgPSBpaW9fZGV2aWNlX3JlZ2lzdGVyKGluZGlvX2Rldik7DQo+ID4gPiBAQCAtMzIxLDkgKzMx NCw3IEBAIHN0YXRpYyBpbnQgaGlkX3Byb3hfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0K PiA+ID4gKnBkZXYpDQo+ID4gPiAgZXJyb3JfaWlvX3VucmVnOg0KPiA+ID4gIAlpaW9fZGV2aWNl X3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiA+ICBlcnJvcl9yZW1vdmVfdHJpZ2dlcjoNCj4g PiA+IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmcHJveF9zdGF0ZS0+Y29tbW9uX2F0dHJp YnV0ZXMpOw0KPiA+ID4gLWVycm9yX3VucmVnX2J1ZmZlcl9mdW5jczoNCj4gPiA+IC0JaWlvX3Ry aWdnZXJlZF9idWZmZXJfY2xlYW51cChpbmRpb19kZXYpOw0KPiA+ID4gKwloaWRfc2Vuc29yX3Jl bW92ZV90cmlnZ2VyKGluZGlvX2RldiwgJnByb3hfc3RhdGUtDQo+ID4gPiA+IGNvbW1vbl9hdHRy aWJ1dGVzKTsNCj4gPiA+ICBlcnJvcl9mcmVlX2Rldl9tZW06DQo+ID4gPiAgCWtmcmVlKGluZGlv X2Rldi0+Y2hhbm5lbHMpOw0KPiA+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ID4gQEAgLTMzOCw4ICsz MjksNyBAQCBzdGF0aWMgaW50IGhpZF9wcm94X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl DQo+ID4gPiAqcGRldikNCj4gPiA+ICANCj4gPiA+ICAJc2Vuc29yX2h1Yl9yZW1vdmVfY2FsbGJh Y2soaHNkZXYsIEhJRF9VU0FHRV9TRU5TT1JfUFJPWCk7DQo+ID4gPiAgCWlpb19kZXZpY2VfdW5y ZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZw cm94X3N0YXRlLT5jb21tb25fYXR0cmlidXRlcyk7DQo+ID4gPiAtCWlpb190cmlnZ2VyZWRfYnVm ZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4gPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dl cihpbmRpb19kZXYsICZwcm94X3N0YXRlLQ0KPiA+ID4gPiBjb21tb25fYXR0cmlidXRlcyk7DQo+ ID4gPiAgCWtmcmVlKGluZGlvX2Rldi0+Y2hhbm5lbHMpOw0KPiA+ID4gIA0KPiA+ID4gIAlyZXR1 cm4gMDsNCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2lpby9tYWduZXRvbWV0ZXIvaGlkLXNl bnNvci1tYWduLTNkLmMNCj4gPiA+IGIvZHJpdmVycy9paW8vbWFnbmV0b21ldGVyL2hpZC1zZW5z b3ItbWFnbi0zZC5jDQo+ID4gPiBpbmRleCAyNWU2MGIyMzNlMDguLjBjMDlkYWY4Nzc5NCAxMDA2 NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvaWlvL21hZ25ldG9tZXRlci9oaWQtc2Vuc29yLW1hZ24t M2QuYw0KPiA+ID4gKysrIGIvZHJpdmVycy9paW8vbWFnbmV0b21ldGVyL2hpZC1zZW5zb3ItbWFn bi0zZC5jDQo+ID4gPiBAQCAtMTQsOCArMTQsNiBAQA0KPiA+ID4gICNpbmNsdWRlIDxsaW51eC9p aW8vaWlvLmg+DQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9zeXNmcy5oPg0KPiA+ID4gICNp bmNsdWRlIDxsaW51eC9paW8vYnVmZmVyLmg+DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90 cmlnZ2VyX2NvbnN1bWVyLmg+DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyZWRf YnVmZmVyLmg+DQo+ID4gPiAgI2luY2x1ZGUgIi4uL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vu c29yLXRyaWdnZXIuaCINCj4gPiA+ICANCj4gPiA+ICBlbnVtIG1hZ25fM2RfY2hhbm5lbCB7DQo+ ID4gPiBAQCAtNTE5LDE4ICs1MTcsMTMgQEAgc3RhdGljIGludCBoaWRfbWFnbl8zZF9wcm9iZShz dHJ1Y3QNCj4gPiA+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiA+ICAJaW5kaW9fZGV2LT5u YW1lID0gbmFtZTsNCj4gPiA+ICAJaW5kaW9fZGV2LT5tb2RlcyA9IElORElPX0RJUkVDVF9NT0RF Ow0KPiA+ID4gIA0KPiA+ID4gLQlyZXQgPSBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cChpbmRp b19kZXYsDQo+ID4gPiAmaWlvX3BvbGxmdW5jX3N0b3JlX3RpbWUsDQo+ID4gPiAtCQlOVUxMLCBO VUxMKTsNCj4gPiA+IC0JaWYgKHJldCkgew0KPiA+ID4gLQkJZGV2X2VycigmcGRldi0+ZGV2LCAi ZmFpbGVkIHRvIGluaXRpYWxpemUgdHJpZ2dlcg0KPiA+ID4gYnVmZmVyXG4iKTsNCj4gPiA+IC0J CXJldHVybiByZXQ7DQo+ID4gPiAtCX0NCj4gPiA+ICAJYXRvbWljX3NldCgmbWFnbl9zdGF0ZS0+ bWFnbl9mbHV4X2F0dHJpYnV0ZXMuZGF0YV9yZWFkeSwgMCk7DQo+ID4gPiArDQo+ID4gPiAgCXJl dCA9IGhpZF9zZW5zb3Jfc2V0dXBfdHJpZ2dlcihpbmRpb19kZXYsIG5hbWUsDQo+ID4gPiAgCQkJ CQkmbWFnbl9zdGF0ZS0NCj4gPiA+ID4gbWFnbl9mbHV4X2F0dHJpYnV0ZXMpOw0KPiA+ID4gIAlp ZiAocmV0IDwgMCkgew0KPiA+ID4gIAkJZGV2X2VycigmcGRldi0+ZGV2LCAidHJpZ2dlciBzZXR1 cCBmYWlsZWRcbiIpOw0KPiA+ID4gLQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJfZnVuY3M7DQo+ ID4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ID4gIAl9DQo+ID4gPiAgDQo+ID4gPiAgCXJldCA9IGlp b19kZXZpY2VfcmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiA+IEBAIC01NTQsOSArNTQ3LDcgQEAg c3RhdGljIGludCBoaWRfbWFnbl8zZF9wcm9iZShzdHJ1Y3QNCj4gPiA+IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikNCj4gPiA+ICBlcnJvcl9paW9fdW5yZWc6DQo+ID4gPiAgCWlpb19kZXZpY2VfdW5y ZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+ID4gIGVycm9yX3JlbW92ZV90cmlnZ2VyOg0KPiA+ID4g LQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZtYWduX3N0YXRlLT5tYWduX2ZsdXhfYXR0cmli dXRlcyk7DQo+ID4gPiAtZXJyb3JfdW5yZWdfYnVmZmVyX2Z1bmNzOg0KPiA+ID4gLQlpaW9fdHJp Z2dlcmVkX2J1ZmZlcl9jbGVhbnVwKGluZGlvX2Rldik7DQo+ID4gPiArCWhpZF9zZW5zb3JfcmVt b3ZlX3RyaWdnZXIoaW5kaW9fZGV2LCAmbWFnbl9zdGF0ZS0NCj4gPiA+ID4gbWFnbl9mbHV4X2F0 dHJpYnV0ZXMpOw0KPiA+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ID4gIH0NCj4gPiA+ICANCj4gPiA+ IEBAIC01NjksOCArNTYwLDcgQEAgc3RhdGljIGludCBoaWRfbWFnbl8zZF9yZW1vdmUoc3RydWN0 DQo+ID4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gPiAgDQo+ID4gPiAgCXNlbnNvcl9o dWJfcmVtb3ZlX2NhbGxiYWNrKGhzZGV2LCBISURfVVNBR0VfU0VOU09SX0NPTVBBU1NfM0QpOw0K PiA+ID4gIAlpaW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiA+IC0JaGlkX3Nl bnNvcl9yZW1vdmVfdHJpZ2dlcigmbWFnbl9zdGF0ZS0+bWFnbl9mbHV4X2F0dHJpYnV0ZXMpOw0K PiA+ID4gLQlpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9jbGVhbnVwKGluZGlvX2Rldik7DQo+ID4gPiAr CWhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdnZXIoaW5kaW9fZGV2LCAmbWFnbl9zdGF0ZS0NCj4gPiA+ ID4gbWFnbl9mbHV4X2F0dHJpYnV0ZXMpOw0KPiA+ID4gIA0KPiA+ID4gIAlyZXR1cm4gMDsNCj4g PiA+ICB9DQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9paW8vb3JpZW50YXRpb24vaGlkLXNl bnNvci1pbmNsLTNkLmMNCj4gPiA+IGIvZHJpdmVycy9paW8vb3JpZW50YXRpb24vaGlkLXNlbnNv ci1pbmNsLTNkLmMNCj4gPiA+IGluZGV4IDAwYWY2ODc2NGNkYS4uNmFhYzhiZWEyMzNhIDEwMDY0 NA0KPiA+ID4gLS0tIGEvZHJpdmVycy9paW8vb3JpZW50YXRpb24vaGlkLXNlbnNvci1pbmNsLTNk LmMNCj4gPiA+ICsrKyBiL2RyaXZlcnMvaWlvL29yaWVudGF0aW9uL2hpZC1zZW5zb3ItaW5jbC0z ZC5jDQo+ID4gPiBAQCAtMTUsOCArMTUsNiBAQA0KPiA+ID4gICNpbmNsdWRlIDxsaW51eC9paW8v aWlvLmg+DQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9zeXNmcy5oPg0KPiA+ID4gICNpbmNs dWRlIDxsaW51eC9paW8vYnVmZmVyLmg+DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmln Z2VyX2NvbnN1bWVyLmg+DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyZWRfYnVm ZmVyLmg+DQo+ID4gPiAgI2luY2x1ZGUgIi4uL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29y LXRyaWdnZXIuaCINCj4gPiA+ICANCj4gPiA+ICBlbnVtIGluY2xfM2RfY2hhbm5lbCB7DQo+ID4g PiBAQCAtMzQ2LDE4ICszNDQsMTMgQEAgc3RhdGljIGludCBoaWRfaW5jbF8zZF9wcm9iZShzdHJ1 Y3QNCj4gPiA+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiA+ICAJaW5kaW9fZGV2LT5uYW1l ID0gbmFtZTsNCj4gPiA+ICAJaW5kaW9fZGV2LT5tb2RlcyA9IElORElPX0RJUkVDVF9NT0RFOw0K PiA+ID4gIA0KPiA+ID4gLQlyZXQgPSBpaW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cChpbmRpb19k ZXYsDQo+ID4gPiAmaWlvX3BvbGxmdW5jX3N0b3JlX3RpbWUsDQo+ID4gPiAtCQlOVUxMLCBOVUxM KTsNCj4gPiA+IC0JaWYgKHJldCkgew0KPiA+ID4gLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFp bGVkIHRvIGluaXRpYWxpemUgdHJpZ2dlcg0KPiA+ID4gYnVmZmVyXG4iKTsNCj4gPiA+IC0JCWdv dG8gZXJyb3JfZnJlZV9kZXZfbWVtOw0KPiA+ID4gLQl9DQo+ID4gPiAgCWF0b21pY19zZXQoJmlu Y2xfc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVzLmRhdGFfcmVhZHksIDApOw0KPiA+ID4gKw0KPiA+ ID4gIAlyZXQgPSBoaWRfc2Vuc29yX3NldHVwX3RyaWdnZXIoaW5kaW9fZGV2LCBuYW1lLA0KPiA+ ID4gIAkJCQkJJmluY2xfc3RhdGUtDQo+ID4gPiA+IGNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiA+ ICAJaWYgKHJldCkgew0KPiA+ID4gIAkJZGV2X2VycigmcGRldi0+ZGV2LCAidHJpZ2dlciBzZXR1 cCBmYWlsZWRcbiIpOw0KPiA+ID4gLQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJfZnVuY3M7DQo+ ID4gPiArCQlnb3RvIGVycm9yX2ZyZWVfZGV2X21lbTsNCj4gPiA+ICAJfQ0KPiA+ID4gIA0KPiA+ ID4gIAlyZXQgPSBpaW9fZGV2aWNlX3JlZ2lzdGVyKGluZGlvX2Rldik7DQo+ID4gPiBAQCAtMzgy LDkgKzM3NSw3IEBAIHN0YXRpYyBpbnQgaGlkX2luY2xfM2RfcHJvYmUoc3RydWN0DQo+ID4gPiBw bGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gPiAgZXJyb3JfaWlvX3VucmVnOg0KPiA+ID4gIAlp aW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiA+ICBlcnJvcl9yZW1vdmVfdHJp Z2dlcjoNCj4gPiA+IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmaW5jbF9zdGF0ZS0+Y29t bW9uX2F0dHJpYnV0ZXMpOw0KPiA+ID4gLWVycm9yX3VucmVnX2J1ZmZlcl9mdW5jczoNCj4gPiA+ IC0JaWlvX3RyaWdnZXJlZF9idWZmZXJfY2xlYW51cChpbmRpb19kZXYpOw0KPiA+ID4gKwloaWRf c2Vuc29yX3JlbW92ZV90cmlnZ2VyKGluZGlvX2RldiwgJmluY2xfc3RhdGUtDQo+ID4gPiA+IGNv bW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiA+ICBlcnJvcl9mcmVlX2Rldl9tZW06DQo+ID4gPiAgCWtm cmVlKGluZGlvX2Rldi0+Y2hhbm5lbHMpOw0KPiA+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ID4gQEAg LTM5OSw4ICszOTAsNyBAQCBzdGF0aWMgaW50IGhpZF9pbmNsXzNkX3JlbW92ZShzdHJ1Y3QNCj4g PiA+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiA+ICANCj4gPiA+ICAJc2Vuc29yX2h1Yl9y ZW1vdmVfY2FsbGJhY2soaHNkZXYsDQo+ID4gPiBISURfVVNBR0VfU0VOU09SX0lOQ0xJTk9NRVRF Ul8zRCk7DQo+ID4gPiAgCWlpb19kZXZpY2VfdW5yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+ID4g LQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZpbmNsX3N0YXRlLT5jb21tb25fYXR0cmlidXRl cyk7DQo+ID4gPiAtCWlpb190cmlnZ2VyZWRfYnVmZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4g PiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihpbmRpb19kZXYsICZpbmNsX3N0YXRlLQ0K PiA+ID4gPiBjb21tb25fYXR0cmlidXRlcyk7DQo+ID4gPiAgCWtmcmVlKGluZGlvX2Rldi0+Y2hh bm5lbHMpOw0KPiA+ID4gIA0KPiA+ID4gIAlyZXR1cm4gMDsNCj4gPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2lpby9vcmllbnRhdGlvbi9oaWQtc2Vuc29yLXJvdGF0aW9uLmMNCj4gPiA+IGIvZHJp dmVycy9paW8vb3JpZW50YXRpb24vaGlkLXNlbnNvci1yb3RhdGlvbi5jDQo+ID4gPiBpbmRleCA2 NGFlN2QwNGEyMDAuLmI5OWY0MTI0MGUzZSAxMDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvaWlv L29yaWVudGF0aW9uL2hpZC1zZW5zb3Itcm90YXRpb24uYw0KPiA+ID4gKysrIGIvZHJpdmVycy9p aW8vb3JpZW50YXRpb24vaGlkLXNlbnNvci1yb3RhdGlvbi5jDQo+ID4gPiBAQCAtMTQsOCArMTQs NiBAQA0KPiA+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vaWlvLmg+DQo+ID4gPiAgI2luY2x1ZGUg PGxpbnV4L2lpby9zeXNmcy5oPg0KPiA+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vYnVmZmVyLmg+ DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyX2NvbnN1bWVyLmg+DQo+ID4gPiAt I2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyZWRfYnVmZmVyLmg+DQo+ID4gPiAgI2luY2x1ZGUg Ii4uL2NvbW1vbi9oaWQtc2Vuc29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuaCINCj4gPiA+ICANCj4g PiA+ICBzdHJ1Y3QgZGV2X3JvdF9zdGF0ZSB7DQo+ID4gPiBAQCAtMjg4LDE4ICsyODYsMTMgQEAg c3RhdGljIGludCBoaWRfZGV2X3JvdF9wcm9iZShzdHJ1Y3QNCj4gPiA+IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikNCj4gPiA+ICAJaW5kaW9fZGV2LT5uYW1lID0gbmFtZTsNCj4gPiA+ICAJaW5kaW9f ZGV2LT5tb2RlcyA9IElORElPX0RJUkVDVF9NT0RFOw0KPiA+ID4gIA0KPiA+ID4gLQlyZXQgPSBp aW9fdHJpZ2dlcmVkX2J1ZmZlcl9zZXR1cChpbmRpb19kZXYsDQo+ID4gPiAmaWlvX3BvbGxmdW5j X3N0b3JlX3RpbWUsDQo+ID4gPiAtCQlOVUxMLCBOVUxMKTsNCj4gPiA+IC0JaWYgKHJldCkgew0K PiA+ID4gLQkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGluaXRpYWxpemUgdHJpZ2dl cg0KPiA+ID4gYnVmZmVyXG4iKTsNCj4gPiA+IC0JCXJldHVybiByZXQ7DQo+ID4gPiAtCX0NCj4g PiA+ICAJYXRvbWljX3NldCgmcm90X3N0YXRlLT5jb21tb25fYXR0cmlidXRlcy5kYXRhX3JlYWR5 LCAwKTsNCj4gPiA+ICsNCj4gPiA+ICAJcmV0ID0gaGlkX3NlbnNvcl9zZXR1cF90cmlnZ2VyKGlu ZGlvX2RldiwgbmFtZSwNCj4gPiA+ICAJCQkJCSZyb3Rfc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVz KTsNCj4gPiA+ICAJaWYgKHJldCkgew0KPiA+ID4gIAkJZGV2X2VycigmcGRldi0+ZGV2LCAidHJp Z2dlciBzZXR1cCBmYWlsZWRcbiIpOw0KPiA+ID4gLQkJZ290byBlcnJvcl91bnJlZ19idWZmZXJf ZnVuY3M7DQo+ID4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ID4gIAl9DQo+ID4gPiAgDQo+ID4gPiAg CXJldCA9IGlpb19kZXZpY2VfcmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiA+IEBAIC0zMjMsOSAr MzE2LDcgQEAgc3RhdGljIGludCBoaWRfZGV2X3JvdF9wcm9iZShzdHJ1Y3QNCj4gPiA+IHBsYXRm b3JtX2RldmljZSAqcGRldikNCj4gPiA+ICBlcnJvcl9paW9fdW5yZWc6DQo+ID4gPiAgCWlpb19k ZXZpY2VfdW5yZWdpc3RlcihpbmRpb19kZXYpOw0KPiA+ID4gIGVycm9yX3JlbW92ZV90cmlnZ2Vy Og0KPiA+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZyb3Rfc3RhdGUtPmNvbW1vbl9h dHRyaWJ1dGVzKTsNCj4gPiA+IC1lcnJvcl91bnJlZ19idWZmZXJfZnVuY3M6DQo+ID4gPiAtCWlp b190cmlnZ2VyZWRfYnVmZmVyX2NsZWFudXAoaW5kaW9fZGV2KTsNCj4gPiA+ICsJaGlkX3NlbnNv cl9yZW1vdmVfdHJpZ2dlcihpbmRpb19kZXYsICZyb3Rfc3RhdGUtDQo+ID4gPiA+IGNvbW1vbl9h dHRyaWJ1dGVzKTsNCj4gPiA+ICAJcmV0dXJuIHJldDsNCj4gPiA+ICB9DQo+ID4gPiAgDQo+ID4g PiBAQCAtMzM4LDggKzMyOSw3IEBAIHN0YXRpYyBpbnQgaGlkX2Rldl9yb3RfcmVtb3ZlKHN0cnVj dA0KPiA+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ID4gIA0KPiA+ID4gIAlzZW5zb3Jf aHViX3JlbW92ZV9jYWxsYmFjayhoc2RldiwgaHNkZXYtPnVzYWdlKTsNCj4gPiA+ICAJaWlvX2Rl dmljZV91bnJlZ2lzdGVyKGluZGlvX2Rldik7DQo+ID4gPiAtCWhpZF9zZW5zb3JfcmVtb3ZlX3Ry aWdnZXIoJnJvdF9zdGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ID4gLQlpaW9fdHJpZ2dl cmVkX2J1ZmZlcl9jbGVhbnVwKGluZGlvX2Rldik7DQo+ID4gPiArCWhpZF9zZW5zb3JfcmVtb3Zl X3RyaWdnZXIoaW5kaW9fZGV2LCAmcm90X3N0YXRlLQ0KPiA+ID4gPiBjb21tb25fYXR0cmlidXRl cyk7DQo+ID4gPiAgDQo+ID4gPiAgCXJldHVybiAwOw0KPiA+ID4gIH0NCj4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2lpby9wcmVzc3VyZS9oaWQtc2Vuc29yLXByZXNzLmMNCj4gPiA+IGIvZHJp dmVycy9paW8vcHJlc3N1cmUvaGlkLXNlbnNvci1wcmVzcy5jDQo+ID4gPiBpbmRleCA5NTMyMzUw NTIxNTUuLjVlNjY2M2Y3NTdhZSAxMDA2NDQNCj4gPiA+IC0tLSBhL2RyaXZlcnMvaWlvL3ByZXNz dXJlL2hpZC1zZW5zb3ItcHJlc3MuYw0KPiA+ID4gKysrIGIvZHJpdmVycy9paW8vcHJlc3N1cmUv aGlkLXNlbnNvci1wcmVzcy5jDQo+ID4gPiBAQCAtMTQsOCArMTQsNiBAQA0KPiA+ID4gICNpbmNs dWRlIDxsaW51eC9paW8vaWlvLmg+DQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L2lpby9zeXNmcy5o Pg0KPiA+ID4gICNpbmNsdWRlIDxsaW51eC9paW8vYnVmZmVyLmg+DQo+ID4gPiAtI2luY2x1ZGUg PGxpbnV4L2lpby90cmlnZ2VyX2NvbnN1bWVyLmg+DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lp by90cmlnZ2VyZWRfYnVmZmVyLmg+DQo+ID4gPiAgI2luY2x1ZGUgIi4uL2NvbW1vbi9oaWQtc2Vu c29ycy9oaWQtc2Vuc29yLXRyaWdnZXIuaCINCj4gPiA+ICANCj4gPiA+ICAjZGVmaW5lIENIQU5O RUxfU0NBTl9JTkRFWF9QUkVTU1VSRSAwDQo+ID4gPiBAQCAtMjkwLDE4ICsyODgsMTMgQEAgc3Rh dGljIGludCBoaWRfcHJlc3NfcHJvYmUoc3RydWN0DQo+ID4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpDQo+ID4gPiAgCWluZGlvX2Rldi0+bmFtZSA9IG5hbWU7DQo+ID4gPiAgCWluZGlvX2Rldi0+ bW9kZXMgPSBJTkRJT19ESVJFQ1RfTU9ERTsNCj4gPiA+ICANCj4gPiA+IC0JcmV0ID0gaWlvX3Ry aWdnZXJlZF9idWZmZXJfc2V0dXAoaW5kaW9fZGV2LA0KPiA+ID4gJmlpb19wb2xsZnVuY19zdG9y ZV90aW1lLA0KPiA+ID4gLQkJTlVMTCwgTlVMTCk7DQo+ID4gPiAtCWlmIChyZXQpIHsNCj4gPiA+ IC0JCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIHRyaWdnZXINCj4g PiA+IGJ1ZmZlclxuIik7DQo+ID4gPiAtCQlnb3RvIGVycm9yX2ZyZWVfZGV2X21lbTsNCj4gPiA+ IC0JfQ0KPiA+ID4gIAlhdG9taWNfc2V0KCZwcmVzc19zdGF0ZS0+Y29tbW9uX2F0dHJpYnV0ZXMu ZGF0YV9yZWFkeSwgMCk7DQo+ID4gPiArDQo+ID4gPiAgCXJldCA9IGhpZF9zZW5zb3Jfc2V0dXBf dHJpZ2dlcihpbmRpb19kZXYsIG5hbWUsDQo+ID4gPiAgCQkJCSZwcmVzc19zdGF0ZS0+Y29tbW9u X2F0dHJpYnV0ZXMpOw0KPiA+ID4gIAlpZiAocmV0KSB7DQo+ID4gPiAgCQlkZXZfZXJyKCZwZGV2 LT5kZXYsICJ0cmlnZ2VyIHNldHVwIGZhaWxlZFxuIik7DQo+ID4gPiAtCQlnb3RvIGVycm9yX3Vu cmVnX2J1ZmZlcl9mdW5jczsNCj4gPiA+ICsJCWdvdG8gZXJyb3JfZnJlZV9kZXZfbWVtOw0KPiA+ ID4gIAl9DQo+ID4gPiAgDQo+ID4gPiAgCXJldCA9IGlpb19kZXZpY2VfcmVnaXN0ZXIoaW5kaW9f ZGV2KTsNCj4gPiA+IEBAIC0zMjUsOSArMzE4LDcgQEAgc3RhdGljIGludCBoaWRfcHJlc3NfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0KPiA+ID4gKnBkZXYpDQo+ID4gPiAgZXJyb3JfaWlv X3VucmVnOg0KPiA+ID4gIAlpaW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4gPiA+ ICBlcnJvcl9yZW1vdmVfdHJpZ2dlcjoNCj4gPiA+IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dl cigmcHJlc3Nfc3RhdGUtPmNvbW1vbl9hdHRyaWJ1dGVzKTsNCj4gPiA+IC1lcnJvcl91bnJlZ19i dWZmZXJfZnVuY3M6DQo+ID4gPiAtCWlpb190cmlnZ2VyZWRfYnVmZmVyX2NsZWFudXAoaW5kaW9f ZGV2KTsNCj4gPiA+ICsJaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcihpbmRpb19kZXYsICZwcmVz c19zdGF0ZS0NCj4gPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ID4gIGVycm9yX2ZyZWVf ZGV2X21lbToNCj4gPiA+ICAJa2ZyZWUoaW5kaW9fZGV2LT5jaGFubmVscyk7DQo+ID4gPiAgCXJl dHVybiByZXQ7DQo+ID4gPiBAQCAtMzQyLDggKzMzMyw3IEBAIHN0YXRpYyBpbnQgaGlkX3ByZXNz X3JlbW92ZShzdHJ1Y3QNCj4gPiA+IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4gPiA+ICANCj4g PiA+ICAJc2Vuc29yX2h1Yl9yZW1vdmVfY2FsbGJhY2soaHNkZXYsIEhJRF9VU0FHRV9TRU5TT1Jf UFJFU1NVUkUpOw0KPiA+ID4gIAlpaW9fZGV2aWNlX3VucmVnaXN0ZXIoaW5kaW9fZGV2KTsNCj4g PiA+IC0JaGlkX3NlbnNvcl9yZW1vdmVfdHJpZ2dlcigmcHJlc3Nfc3RhdGUtPmNvbW1vbl9hdHRy aWJ1dGVzKTsNCj4gPiA+IC0JaWlvX3RyaWdnZXJlZF9idWZmZXJfY2xlYW51cChpbmRpb19kZXYp Ow0KPiA+ID4gKwloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKGluZGlvX2RldiwgJnByZXNzX3N0 YXRlLQ0KPiA+ID4gPiBjb21tb25fYXR0cmlidXRlcyk7DQo+ID4gPiAgCWtmcmVlKGluZGlvX2Rl di0+Y2hhbm5lbHMpOw0KPiA+ID4gIA0KPiA+ID4gIAlyZXR1cm4gMDsNCj4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2lpby90ZW1wZXJhdHVyZS9oaWQtc2Vuc29yLXRlbXBlcmF0dXJlLmMNCj4g PiA+IGIvZHJpdmVycy9paW8vdGVtcGVyYXR1cmUvaGlkLXNlbnNvci10ZW1wZXJhdHVyZS5jDQo+ ID4gPiBpbmRleCBlZGE1NWI5YzFlOWIuLjhkMWY0MzRmMTA5ZCAxMDA2NDQNCj4gPiA+IC0tLSBh L2RyaXZlcnMvaWlvL3RlbXBlcmF0dXJlL2hpZC1zZW5zb3ItdGVtcGVyYXR1cmUuYw0KPiA+ID4g KysrIGIvZHJpdmVycy9paW8vdGVtcGVyYXR1cmUvaGlkLXNlbnNvci10ZW1wZXJhdHVyZS5jDQo+ ID4gPiBAQCAtNyw4ICs3LDYgQEANCj4gPiA+ICAjaW5jbHVkZSA8bGludXgvaGlkLXNlbnNvci1o dWIuaD4NCj4gPiA+ICAjaW5jbHVkZSA8bGludXgvaWlvL2J1ZmZlci5oPg0KPiA+ID4gICNpbmNs dWRlIDxsaW51eC9paW8vaWlvLmg+DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2Vy ZWRfYnVmZmVyLmg+DQo+ID4gPiAtI2luY2x1ZGUgPGxpbnV4L2lpby90cmlnZ2VyX2NvbnN1bWVy Lmg+DQo+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiA+ID4gICNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4gPiA+ICANCj4gPiA+IEBAIC0yMzAsMTIgKzIyOCw4 IEBAIHN0YXRpYyBpbnQgaGlkX3RlbXBlcmF0dXJlX3Byb2JlKHN0cnVjdA0KPiA+ID4gcGxhdGZv cm1fZGV2aWNlICpwZGV2KQ0KPiA+ID4gIAlpbmRpb19kZXYtPm5hbWUgPSBuYW1lOw0KPiA+ID4g IAlpbmRpb19kZXYtPm1vZGVzID0gSU5ESU9fRElSRUNUX01PREU7DQo+ID4gPiAgDQo+ID4gPiAt CXJldCA9IGRldm1faWlvX3RyaWdnZXJlZF9idWZmZXJfc2V0dXAoJnBkZXYtPmRldiwgaW5kaW9f ZGV2LA0KPiA+ID4gLQkJCQkJJmlpb19wb2xsZnVuY19zdG9yZV90aW1lLCBOVUxMLA0KPiA+ID4g TlVMTCk7DQo+ID4gPiAtCWlmIChyZXQpDQo+ID4gPiAtCQlyZXR1cm4gcmV0Ow0KPiA+ID4gLQ0K PiA+ID4gIAlhdG9taWNfc2V0KCZ0ZW1wX3N0LT5jb21tb25fYXR0cmlidXRlcy5kYXRhX3JlYWR5 LCAwKTsNCj4gPiA+ICsNCj4gPiA+ICAJcmV0ID0gaGlkX3NlbnNvcl9zZXR1cF90cmlnZ2VyKGlu ZGlvX2RldiwgbmFtZSwNCj4gPiA+ICAJCQkJJnRlbXBfc3QtPmNvbW1vbl9hdHRyaWJ1dGVzKTsN Cj4gPiA+ICAJaWYgKHJldCkNCj4gPiA+IEBAIC0yNTgsNyArMjUyLDcgQEAgc3RhdGljIGludCBo aWRfdGVtcGVyYXR1cmVfcHJvYmUoc3RydWN0DQo+ID4gPiBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYp DQo+ID4gPiAgZXJyb3JfcmVtb3ZlX2NhbGxiYWNrOg0KPiA+ID4gIAlzZW5zb3JfaHViX3JlbW92 ZV9jYWxsYmFjayhoc2RldiwNCj4gPiA+IEhJRF9VU0FHRV9TRU5TT1JfVEVNUEVSQVRVUkUpOw0K PiA+ID4gIGVycm9yX3JlbW92ZV90cmlnZ2VyOg0KPiA+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90 cmlnZ2VyKCZ0ZW1wX3N0LT5jb21tb25fYXR0cmlidXRlcyk7DQo+ID4gPiArCWhpZF9zZW5zb3Jf cmVtb3ZlX3RyaWdnZXIoaW5kaW9fZGV2LCAmdGVtcF9zdC0NCj4gPiA+ID4gY29tbW9uX2F0dHJp YnV0ZXMpOw0KPiA+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ID4gIH0NCj4gPiA+ICANCj4gPiA+IEBA IC0yNzAsNyArMjY0LDcgQEAgc3RhdGljIGludCBoaWRfdGVtcGVyYXR1cmVfcmVtb3ZlKHN0cnVj dA0KPiA+ID4gcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ID4gIAlzdHJ1Y3QgdGVtcGVyYXR1 cmVfc3RhdGUgKnRlbXBfc3QgPSBpaW9fcHJpdihpbmRpb19kZXYpOw0KPiA+ID4gIA0KPiA+ID4g IAlzZW5zb3JfaHViX3JlbW92ZV9jYWxsYmFjayhoc2RldiwNCj4gPiA+IEhJRF9VU0FHRV9TRU5T T1JfVEVNUEVSQVRVUkUpOw0KPiA+ID4gLQloaWRfc2Vuc29yX3JlbW92ZV90cmlnZ2VyKCZ0ZW1w X3N0LT5jb21tb25fYXR0cmlidXRlcyk7DQo+ID4gPiArCWhpZF9zZW5zb3JfcmVtb3ZlX3RyaWdn ZXIoaW5kaW9fZGV2LCAmdGVtcF9zdC0NCj4gPiA+ID4gY29tbW9uX2F0dHJpYnV0ZXMpOw0KPiA+ ID4gIA0KPiA+ID4gIAlyZXR1cm4gMDsNCj4gPiA+ICB9DQo=