From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B4C49C433FE for ; Fri, 6 May 2022 20:12:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1441955AbiEFUQW (ORCPT ); Fri, 6 May 2022 16:16:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42924 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235013AbiEFUQT (ORCPT ); Fri, 6 May 2022 16:16:19 -0400 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2084.outbound.protection.outlook.com [40.107.20.84]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C19A15BD21; Fri, 6 May 2022 13:12:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l745azBCeNn2Uzz1m/16lTtZomgcnZkkNekG7ngaoTlhEbsbj/grKW2XkQql2pMU8Wht9XZuIhvXdAQ8QjPPITsTz64ISP/Sy2JRDHbnocKLr0LnyBHuft71RLlxL4RKz7S+eQWSVOLD4deqpHbtbBYmsNKNtttVA1BvoGCu2s/Vh40brI62KEECZtNFClNOUfhS90HzJnJ+Ka7iUWeiyhz1NMBGGsrjGOaG+STLLd4aXVpklwYQDLQzS4nLWomXWwwm3aizxLEpnPbztK2BQsRE1Gz2F9ybxJYi2fyFv1PEcEDs6lvQhb3aEtTm0rvtB948fMl4VeSXw68o8FxmuQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PCLXS7UA6dK8TH79bCxHzyPuZwYZDds/V4ESPNgigJ8=; b=DN8E7jeqZODU4NpGe6unb6pjwuLYU5V2KOqKVh5NNlxEXHMTCVSsHBad/bcpl9RvX9G754ARwUDSCBo2moEWm30XnrwcnAfer6x7Vzk1/TZCmUQ8IiS3XFOcOOYDKk22Md8IYPez0STUg2FXl9+2LPNBB4uzb0iae1/BFHRt2rG/8fBuutip7aBJa5Jtr8ky5MqeBZTnJ+tnWU11Jkc9vGIfJaNY0BP1sxVonjOSC7MeOpfwN6yi7891F5oqKuix8BNP07nA8JIozGnlLqBprkUflGCa4n7A6AZ4ulcsesjDqblBWL2zosXJw7BQRUqPVGyRlL/dvcbJ4kGZDX6tUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vaisala.com; dmarc=pass action=none header.from=vaisala.com; dkim=pass header.d=vaisala.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vaisala.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PCLXS7UA6dK8TH79bCxHzyPuZwYZDds/V4ESPNgigJ8=; b=mYF7MZ0ZSE2138nz/vuCIouC6TXk3z69yx5zYgYV/ePWTG2bfvyZRG2ts3xd9q17vPccEXSoD+HT/Laym7U5xSFm4Z4LKr5L0WfNrSOLMxC59pkM7Ocj/XPBDh3qW5fSEmKgJ/9JUV9fx0f8zueWguTVjP8U7lqwFCYkqVIK82o+6c/0CLQtqgosTqz9zLtR7Eh8Y0Y6UfkoQhXJSoc0dTJG4Z5reumpZqnsCeIf/nCcTZPeltoc9D5bC4Cb71NFaeOkgiuXyPWo3wYBYMfD+8xFfp0P5sUFK07uNVKwJPa5rYq3Mj2GjXI6UhPejyx86tXRSkbwZmZv80Cl/4jnDA== Received: from HE1PR0602MB3625.eurprd06.prod.outlook.com (2603:10a6:7:81::18) by VI1PR06MB3872.eurprd06.prod.outlook.com (2603:10a6:802:5f::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Fri, 6 May 2022 20:12:26 +0000 Received: from HE1PR0602MB3625.eurprd06.prod.outlook.com ([fe80::5872:9ec6:429c:9de7]) by HE1PR0602MB3625.eurprd06.prod.outlook.com ([fe80::5872:9ec6:429c:9de7%4]) with mapi id 15.20.5206.027; Fri, 6 May 2022 20:12:26 +0000 From: Melin Tomas To: LI Qingwu , "jic23@kernel.org" , "lars@metafoo.de" , "robh+dt@kernel.org" , "andy.shevchenko@gmail.com" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" CC: "linux-iio@vger.kernel.org" , Rob Herring Subject: Re: [PATCH V3 3/5] iio: accel: sca3300: modified to support multi chips Thread-Topic: [PATCH V3 3/5] iio: accel: sca3300: modified to support multi chips Thread-Index: AQHYX7v6qh1CZczF/kuu4gQAeG8N5a0Sd3cA Date: Fri, 6 May 2022 20:12:26 +0000 Message-ID: References: <20220504133612.604304-1-Qing-wu.Li@leica-geosystems.com.cn> <20220504133612.604304-4-Qing-wu.Li@leica-geosystems.com.cn> In-Reply-To: <20220504133612.604304-4-Qing-wu.Li@leica-geosystems.com.cn> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-imapappendstamp: HE1PR0602MB3625.eurprd06.prod.outlook.com (15.20.5206.027) msip_labels: MSIP_Label_7246d30e-a6af-4059-9b44-a42233242e28_Enabled=true; MSIP_Label_7246d30e-a6af-4059-9b44-a42233242e28_SetDate=2022-05-06T20:08:52Z; MSIP_Label_7246d30e-a6af-4059-9b44-a42233242e28_Method=Standard; MSIP_Label_7246d30e-a6af-4059-9b44-a42233242e28_Name=7246d30e-a6af-4059-9b44-a42233242e28; MSIP_Label_7246d30e-a6af-4059-9b44-a42233242e28_SiteId=6d7393e0-41f5-4c2e-9b12-4c2be5da5c57; MSIP_Label_7246d30e-a6af-4059-9b44-a42233242e28_ActionId=48cde4a7-bc8d-4696-9c82-7f56265fc16c; MSIP_Label_7246d30e-a6af-4059-9b44-a42233242e28_ContentBits=0 user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vaisala.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 866fe3b3-881c-47fd-c30c-08da2f9cbd77 x-ms-traffictypediagnostic: VI1PR06MB3872:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aho8lr4uGOkUXamjIzVXtGawVXg4mfTo9VXPMG0xzh8zcJKnpA0Q+oBdOE4BJMXD6Hi26sCQsYPrY4uFm97y61f7knJ1j2sS3+06U0miNKcL/nDhelXJf4I+xbS3y8sCevhkqn+jRkjDuC7ik7Ye6PGB9broatAgG64WSAqkDS8KIR1Dymtnahx0ytnPu5RcVZ8MyDH1AlDgXVo67jGUlIAiCTlZIJViBI5MICDLSpFZxS2HYqwrueRd83vXjWq/K6aQqIRG5M739bHveCArPoTMVV+6tWe0SvQd11mYcXzQ5m+LA1brcZijrjt0Wv8zXGsyKNn8yDKM1mcAAjnu1zNuJdF5tsBEECyBlySZz285cMoc9wqwcyvwkKEkPTXxCvrE23wneC9D93IQwEBl7GsfHvaif6jaR0sEOhI5booOPkNsDHTzSK7JWYJvn756gYOSPviXGNooq0Kj4aoHiPzNHVhtsfMCLIsiZWl0TUtVwuJplZFonAd83dOdOpjBUyeH/G5obL94ywBcTwU9cbD9RL5b2T6NBF5QrwPJl7rJ+N2XQzF3RbH6MxnfABpbT+Srcg2Ia/QvIcA6RytyKsfV5BmlpMJHTMOE774GzGYhL8oyQ8zYMRx1HQy9qo0Wbci09r0gG4xNG/LgueDe3JKFMdQLYw8Nv5+gZBLR5cgSKw+sVy/GJ5Z0AUcbF1Rk2Irqhb1pa+oXfgOWdD3FFsUw1j47fct8EUZjcAatJwHP1QatE0AaPGRiny8odd2T x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0602MB3625.eurprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(4636009)(366004)(64756008)(66476007)(8676002)(76116006)(66556008)(66946007)(66446008)(4326008)(186003)(33656002)(86362001)(9686003)(53546011)(52536014)(26005)(7696005)(6506007)(8936002)(55016003)(5660300002)(71200400001)(2906002)(30864003)(316002)(38100700002)(508600001)(83380400001)(38070700005)(54906003)(110136005)(122000001)(65966003)(43740500002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WHZJc0t5ZVJtTktleU13am95dGJ3ZmVtdDYyQlZqM2dSMklCbXBzUmdmR0Rr?= =?utf-8?B?L3FsbTRGbTA5SkpndVc3ckZMYkRTSWlRNFIxMTBRa2ZZQmFQM09JSjlMTjl5?= =?utf-8?B?SER4Njc1bmdjOEtWYmlldlhzcnFTdDlTWmZKM0RTUVFiaVZiTXN6VWZOSHRx?= =?utf-8?B?WmhXdDdaUENaa1pnN0hWMUhIc3h3OEluMDJIZm45Y3ByKzJlRnlBNVV2QXgy?= =?utf-8?B?T1hvL1oySHFBMi9nd0NWZ0VRbzFyWXVxSit4Zk1vdkJpWFcrUUc2MjI1dWJs?= =?utf-8?B?dTB1ZWg0VjljcWxVRWd2SHRRSDdSRE16YURQVnJna2kzZ0FMZmhPTFNxdFV3?= =?utf-8?B?L3R3eVlUVkVXRmZtelY4b1pNTXk2RFRuVm1Qa1pCQ1A0ckpuOUR1RExsRkxt?= =?utf-8?B?dmgwQWkyZkdJSFArOVdpcUZIYkFTc3ZyL25pbUFVT0QyOUlvZ3pQNEQzK25O?= =?utf-8?B?MHo2Mlk5NVRIUENTMCtUV25JdFQ1VUJ0ZU5WWHkvSnlpWEtEaDZoSzFKaU94?= =?utf-8?B?RWJEYndxdUF3cjlmREdyc3VDKzBoOVFZNm53cmtDWXdhTnNVbHZQckVDSEF3?= =?utf-8?B?blFOTXc4Y05CdHB5OFVRMlZ4L28xOWkzVHhhN3RzYUtEaDJoYnkyY3kwWEVr?= =?utf-8?B?MDVpSSt4c3FlcEppeXlYZ0F4a1VueTJaTHovZ3RydmxMNjU0SXZ5RUhkMVBD?= =?utf-8?B?N1pCMXpQWWkzTXRUVHJnZWdYTk9XWEtiRDZ6R1JhV3QxOVJBZ21UZVpHKzNq?= =?utf-8?B?d3VSNm9Ic1lEdnFhaFV1aXo2aEpnYzlUN0I2MXpvWlUzZ3BIQnFiWXd4ckhI?= =?utf-8?B?TDhGNjZSY3dLVEJaYjdybUlGSHUxS1V5bjU3bmdZSUxreEw3bWEvSiswWjB1?= =?utf-8?B?dDZOZEdMaFlRaFhJejZ3YXpnMkZORmxRVkVxZG9UYkNvZmpBMStaVDZFZ3pV?= =?utf-8?B?RWpRMlprT2hjSGJnUUNIVEE4NXRKVmNpR3I0YnJSUkhEUWlOTVRHYjUrUjIx?= =?utf-8?B?MldkSnhrWC9ydHNUTlFZMDlvRElka0dMdFpxRHptSUo2bVhaUGczU1pzOE9W?= =?utf-8?B?Z1B2OUtNVW9jT0cxYXZNNlI0SGNxd0lkTFp6SlBvUVZMbXRWcFk4bW9GbkNo?= =?utf-8?B?Tk9TaHV4T2dMOUV3QVZucXRoUjdvZ1pFRTQ1NVBPS1pidDNMNVRVMUZIdlFB?= =?utf-8?B?SGhxTzh0V0hNWTZMMEJFcVlpODZXY0txTVZlQmhWd0RtRFoyU0RIR2hVallJ?= =?utf-8?B?TWFnZTBUZWovang0UVNFUlpRMzcwdmlUWVhGMk5wY05teW9CZDBkTE10R25i?= =?utf-8?B?dGc3TFlKbFhIUnZSK3dzRjBLTkQxK3NpZ3hSU2VZZVduK3ppbWxweklyaVZT?= =?utf-8?B?alVqbE5nWEs0S2w2a3F3NlIrRmRFSG4xUmxwWTkrVWdDbWJHY1hmUTNCS2R3?= =?utf-8?B?R3NldW9ibjViTytwRmZ6Y2lrUURJazV5biswdzBUdHlRY3JsZW1sQjhxb3pH?= =?utf-8?B?OEVxNjJXZTVRU1ZEY1VSdDJoaTM3cU9reHJZdTcvZTlrRVM0QmhXc3UwKzNi?= =?utf-8?B?YVlWbys2eFRSSnZSWEMwS3lNNEI0aWRRbUJmcEc2T2ZGN1ZBUEpmbnRmVWUv?= =?utf-8?B?TTlxRWttaERSNTV4ZG5KQVY5eGFhMG5aaHNaMkxoWHhuQjVJaDlZMkQ5UE9z?= =?utf-8?B?OGVNTytiZXlxcmNxalZhS1JicEZEamVHKzJQcmlYOVpNYXNlSGoxdUlLNzMx?= =?utf-8?B?enF4MXU3bUt4aDQwWTRJY0c2VWNpMmN5M042ZUZSVjZkN1NmdEZaUmlKYTRr?= =?utf-8?B?NmcvOFYvb3k4RCs2c3UrLzZMVEFYaW9GQm5oMFJXR05Zb1BnN2wyQ3kzbjho?= =?utf-8?B?RjJuMG80bXhlbVJnNUhLSm50Z3VEVTZxVE5oOGRFdDNMOUF4TmpyM0hxeHFt?= =?utf-8?B?VnBJbHNnUzhteHdIN0tlbDUxTWJNeDdmbWRaOThsejdqTnNHbjFWYkt4ZXVL?= =?utf-8?B?dEtSbmh0SkVRQkhlbHNXcDVHMUtYMTJKRUZidzBDdXZoVmdCcE9LYU15d0Ja?= =?utf-8?B?MFBlV2szV3orN0o3T0l6SHhyNUVkUHpuT1dISjlEMDFUTnordGtXd2g2Sy9n?= =?utf-8?B?dE5hK2ZHbkxDY2FPVGdHaUdFUTZtaWhnbkcrbXNkUjlxNllzNmc3dW1sMGlL?= =?utf-8?B?em9YUldPWkNrMFpWKzM5OTdZMjVvN0gwY2o5cFRsZDBNOUdFL250cmdvYUd4?= =?utf-8?B?MGRKb3lWcnBHUHVMMEtWQy83dTh1MjR5NjlOWHp1cDFyM0RrMDRxMnFKWkI4?= =?utf-8?B?bytkUEJ2STNHRDlndytjUkZ6Q2hYR3lxaEZFLytiRUNnanZkOERhUT09?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vaisala.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: HE1PR0602MB3625.eurprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 866fe3b3-881c-47fd-c30c-08da2f9cbd77 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 May 2022 20:12:26.5867 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 6d7393e0-41f5-4c2e-9b12-4c2be5da5c57 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 16GNOUbG8UzyVSPOv7Mc/gnsobdFg9TVBr/yLl5zEHiuiyXKQmfynSPjbR+c5pvzLVXxwaRfuCH9EpUXBPaEww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR06MB3872 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGksDQoNClNvbWUgY29tbWVudHMgYmVsb3cuDQoNCk9uIDA0LzA1LzIwMjIgMTY6MzYsIExJIFFp bmd3dSB3cm90ZToNCj4gVGhlIGRyaXZlIHN1cHBvcnQgc2NhMzMwMCBvbmx5Lg0KPiBUaGVyZSBh cmUgc29tZSBvdGhlciBzaW1pbGFyIGNoaXBzLCBmb3IgaW5zdGFuY2UsIFNDTDMzMDAuDQo+IFBy ZXBhcmUgdGhlIHdheSBmb3IgbXVsdGlwbGUgY2hpcHMgYW5kIGFkZGl0aW9uYWwgY2hhbm5lbHMu DQo+IE1vZGlmeSB0aGUgZHJpdmVyIHRvIHJlYWQgdGhlIGRldmljZSBpZC4NCj4gQWRkIHRoZSB0 YWJsZXMgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGlkIHRvIHN1cHBvcnQgbXVsdGlwbGUgY2hpcHMu DQo+IEFkZCBwcmVwYXJlcyBmb3IgdGhlIGFkZGl0aW9uIG9mIGV4dHJhIGNoYW5uZWxzLg0KPiBB ZGQgcHJlcGFyZXMgZm9yIGhhbmRsaW5nIHRoZSBvcGVyYXRpb24gbW9kZXMgZm9yIG11bHRpcGxl IGNoaXBzLg0KPiANCj4gUmV2aWV3ZWQtYnk6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+ DQo+IFJldmlld2VkLWJ5OiBBbmR5IFNoZXZjaGVua28gPGFuZHkuc2hldmNoZW5rb0BnbWFpbC5j b20+DQo+IFJldmlld2VkLWJ5OiBKb25hdGhhbiBDYW1lcm9uIDxqaWMyM0BrZXJuZWwub3JnPg0K PiBTaWduZWQtb2ZmLWJ5OiBMSSBRaW5nd3UgPFFpbmctd3UuTGlAbGVpY2EtZ2Vvc3lzdGVtcy5j b20uY24+DQo+IC0tLQ0KPiAgZHJpdmVycy9paW8vYWNjZWwvc2NhMzMwMC5jIHwgMTgwICsrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDE0MSBp bnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2lpby9hY2NlbC9zY2EzMzAwLmMgYi9kcml2ZXJzL2lpby9hY2NlbC9zY2EzMzAwLmMNCj4gaW5k ZXggZmYxNmQyY2M4YzcwLi4xZTBlNmEyZjdhNjMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvaWlv L2FjY2VsL3NjYTMzMDAuYw0KPiArKysgYi9kcml2ZXJzL2lpby9hY2NlbC9zY2EzMzAwLmMNCj4g QEAgLTM3LDcgKzM3LDYgQEANCj4gIA0KPiAgLyogRGV2aWNlIElEICovDQo+ICAjZGVmaW5lIFND QTMzMDBfUkVHX1dIT0FNSQkweDEwDQo+IC0jZGVmaW5lIFNDQTMzMDBfV0hPQU1JX0lECTB4NTEN Ckkgc3VnZ2VzdCBsZWF2aW5nIHRoaXMgaGVyZSwgZGVmaW5lIGFub3RoZXIgdmFsdWUgZm9yIHNj bDMwMDAgaWYgbmVlZGVkLg0KPiAgDQo+ICAvKiBEZXZpY2UgcmV0dXJuIHN0YXR1cyBhbmQgbWFz ayAqLw0KPiAgI2RlZmluZSBTQ0EzMzAwX1ZBTFVFX1JTX0VSUk9SCTB4Mw0KPiBAQCAtOTMsMTUg KzkyLDM1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyBzY2EzMzAwX2NoYW5u ZWxzW10gPSB7DQo+ICAJSUlPX0NIQU5fU09GVF9USU1FU1RBTVAoNCksDQo+ICB9Ow0KPiAgDQo+ IC1zdGF0aWMgY29uc3QgaW50IHNjYTMzMDBfbHBfZnJlcVtdID0gezcwLCA3MCwgNzAsIDEwfTsN Cj4gLXN0YXRpYyBjb25zdCBpbnQgc2NhMzMwMF9hY2NlbF9zY2FsZVtdWzJdID0ge3swLCAzNzB9 LCB7MCwgNzQxfSwgezAsIDE4NX0sIHswLCAxODV9fTsNCj4gK3N0YXRpYyBjb25zdCBpbnQgc2Nh MzMwMF9mcmVxX3RibFtdID0gezcwLCAxMH07DQo+ICtzdGF0aWMgY29uc3QgaW50IHNjYTMzMDBf ZnJlcV9tb2Rlc19tYXBbXSA9IHswLCAwLCAwLCAxfTsNCj4gIA0KPiArc3RhdGljIGNvbnN0IGlu dCBzY2EzMzAwX2FjY2VsX3NjYWxlX3RibFtdWzJdID0ge3swLCAzNzB9LCB7MCwgNzQxfSwgezAs IDE4NX19Ow0KPiArc3RhdGljIGNvbnN0IGludCBzY2EzMzAwX2FjY2VsX3NjYWxlX21vZGVzX21h cFtdID0gezAsIDEsIDIsIDJ9Ow0KU3VnZ2VzdCBrZWVwaW5nIG5hbWUgb2YgdGhpcyBpbnRhY3Qs IGFuZCBrZWVwIG5hbWUgb2YgdGhlIG1hcCB2YXJpYWJsZQ0Kc2ltaWxhci4NCnN0YXRpYyBjb25z dCBpbnQgc2NhMzMwMF9hY2NlbF9zY2FsZVtdWzJdID0ge3swLCAzNzB9LCB7MCwgNzQxfSwgezAs IDE4NX19Ow0Kc3RhdGljIGNvbnN0IGludCBzY2EzMzAwX2FjY2VsX3NjYWxlX21hcFtdID0gezAs IDEsIDIsIDJ9Ow0KDQpUaGF0IGtlZXBzIGl0IGVhc3kgdG8gcmVtZW1iZXIgdGhhdCB0aGVzZSBh cmUgcmVsYXRlZCB0byBlYWNoIG90aGVyLg0KDQo+ICsNCj4gK3N0YXRpYyBjb25zdCBpbnQgc2Nh MzMwMF9hdmFpbF9tb2Rlc19tYXBbXSA9IHswLCAxLCAyLCAzfTsNCj4gIHN0YXRpYyBjb25zdCB1 bnNpZ25lZCBsb25nIHNjYTMzMDBfc2Nhbl9tYXNrc1tdID0gew0KPiAgCUJJVChTQ0EzMzAwX0FD Q19YKSB8IEJJVChTQ0EzMzAwX0FDQ19ZKSB8IEJJVChTQ0EzMzAwX0FDQ19aKSB8DQo+ICAJQklU KFNDQTMzMDBfVEVNUCksDQo+ICAJMA0KPiAgfTsNCj4gIA0KPiArc3RydWN0IHNjYTMzMDBfY2hp cF9pbmZvIHsNCj4gKwljb25zdCBzdHJ1Y3QgaWlvX2NoYW5fc3BlYyAqY2hhbm5lbHM7DQo+ICsJ Y29uc3QgaW50ICgqYWNjZWxfc2NhbGVfdGFibGUpWzJdOz4gKwljb25zdCBpbnQgKmFjY2VsX3Nj YWxlX21vZGVzX21hcDsNCj4gKwljb25zdCB1bnNpZ25lZCBsb25nICpzY2FuX21hc2tzOw0KPiAr CWNvbnN0IGludCAqYXZhaWxfbW9kZXNfdGFibGU7DQo+ICsJY29uc3QgaW50ICpmcmVxX21vZGVz X21hcDsNCj4gKwljb25zdCBpbnQgKmZyZXFfdGFibGU7PiArCWNvbnN0IHU4IG51bV9hY2NlbF9z Y2FsZXM7DQo+ICsJY29uc3QgdTggbnVtX2F2YWlsX21vZGVzOw0KPiArCWNvbnN0IHU4IG51bV9j aGFubmVsczsNCj4gKwljb25zdCB1OCBudW1fZnJlcXM7DQo+ICsJY29uc3QgdTggY2hpcF9pZDsN Cj4gKwljb25zdCBjaGFyICpuYW1lOw0KU3VnZ2VzdCBrZWVwaW5nIHJlbGF0ZWQgdmFyaWFibGVz IGxvZ2ljYWxseSBzb3J0ZWQgaW4gZGVjbGFyYXRpb24NCnRvZ2V0aGVyIGluc3RlYWQgb2Ygc29y dGluZyBhY2NvcmRpbmcgdG8gbGVuZ3RoLg0KPiArfTsNCj4gKw0KPiAgLyoqDQo+ICAgKiBzdHJ1 Y3Qgc2NhMzMwMF9kYXRhIC0gZGV2aWNlIGRhdGENCj4gICAqIEBzcGk6IFNQSSBkZXZpY2Ugc3Ry dWN0dXJlDQo+IEBAIC0xMTcsMTAgKzEzNiwyOCBAQCBzdHJ1Y3Qgc2NhMzMwMF9kYXRhIHsNCj4g IAkJczE2IGNoYW5uZWxzWzRdOw0KPiAgCQlzNjQgdHMgX19hbGlnbmVkKHNpemVvZihzNjQpKTsN Cj4gIAl9IHNjYW47DQo+ICsJY29uc3Qgc3RydWN0IHNjYTMzMDBfY2hpcF9pbmZvICpjaGlwOw0K PiAgCXU4IHR4YnVmWzRdIF9fX19jYWNoZWxpbmVfYWxpZ25lZDsNCj4gIAl1OCByeGJ1Zls0XTsN Cj4gIH07DQo+ICANCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NhMzMwMF9jaGlwX2luZm8gc2Nh MzMwMF9jaGlwX3RibFtdID0gew0KPiArCXsJLm51bV9hY2NlbF9zY2FsZXMgPSBBUlJBWV9TSVpF KHNjYTMzMDBfYWNjZWxfc2NhbGVfdGJsKSoyLD4gKwkJLmFjY2VsX3NjYWxlX21vZGVzX21hcCA9 IHNjYTMzMDBfYWNjZWxfc2NhbGVfbW9kZXNfbWFwLA0KPiArCQkuYWNjZWxfc2NhbGVfdGFibGUg PSBzY2EzMzAwX2FjY2VsX3NjYWxlX3RibCwNCj4gKwkJLm51bV9jaGFubmVscyA9IEFSUkFZX1NJ WkUoc2NhMzMwMF9jaGFubmVscyksDQo+ICsJCS5mcmVxX21vZGVzX21hcCA9IHNjYTMzMDBfZnJl cV9tb2Rlc19tYXAsDQo+ICsJCS5hdmFpbF9tb2Rlc190YWJsZSA9IHNjYTMzMDBfYXZhaWxfbW9k ZXNfbWFwLA0KPiArCQkuZnJlcV90YWJsZSA9IHNjYTMzMDBfZnJlcV90YmwsDQo+ICsJCS5zY2Fu X21hc2tzID0gc2NhMzMwMF9zY2FuX21hc2tzLA0KPiArCQkuY2hhbm5lbHMgPSBzY2EzMzAwX2No YW5uZWxzLA0KPiArCQkubnVtX2F2YWlsX21vZGVzID0gNCwNCj4gKwkJLm5hbWUgPSAic2NhMzMw MCIsDQo+ICsJCS5jaGlwX2lkID0gMHg1MSwNCj4gKwkJLm51bV9mcmVxcyA9IDIsDQo+ICsJfSwN Cj4gK307DQo+ICsNCj4gIERFQ0xBUkVfQ1JDOF9UQUJMRShzY2EzMzAwX2NyY190YWJsZSk7DQo+ ICANCj4gIHN0YXRpYyBpbnQgc2NhMzMwMF90cmFuc2ZlcihzdHJ1Y3Qgc2NhMzMwMF9kYXRhICpz Y2FfZGF0YSwgaW50ICp2YWwpDQo+IEBAIC0yMjcsMzYgKzI2NCw4MCBAQCBzdGF0aWMgaW50IHNj YTMzMDBfd3JpdGVfcmVnKHN0cnVjdCBzY2EzMzAwX2RhdGEgKnNjYV9kYXRhLCB1OCByZWcsIGlu dCB2YWwpDQo+ICAJcmV0dXJuIHNjYTMzMDBfZXJyb3JfaGFuZGxlcihzY2FfZGF0YSk7DQo+ICB9 DQo+ICANCj4gK3N0YXRpYyBpbnQgc2NhMzMwMF9zZXRfb3BfbW9kZShzdHJ1Y3Qgc2NhMzMwMF9k YXRhICpzY2FfZGF0YSwgaW50IGluZGV4KQ0KPiArew0KPiArCWludCBtb2RlOw0KPiArDQo+ICsJ aWYgKChpbmRleCA8IDApIHx8IChpbmRleCA+PSBzY2FfZGF0YS0+Y2hpcC0+bnVtX2F2YWlsX21v ZGVzKSkNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwltb2RlID0gc2NhX2RhdGEtPmNo aXAtPmF2YWlsX21vZGVzX3RhYmxlW2luZGV4XTsNCj4gKw0KPiArCXJldHVybiBzY2EzMzAwX3dy aXRlX3JlZyhzY2FfZGF0YSwgU0NBMzMwMF9SRUdfTU9ERSwgbW9kZSk7DQo+ICt9DQo+ICsNCj4g K3N0YXRpYyBpbnQgc2NhMzMwMF9nZXRfb3BfbW9kZShzdHJ1Y3Qgc2NhMzMwMF9kYXRhICpzY2Ff ZGF0YSwgaW50ICppbmRleCkNCj4gK3sNCj4gKwlpbnQgcmVnX3ZhbDsNCj4gKwlpbnQgcmV0Ow0K PiArCWludCBpOw0KPiArDQo+ICsJcmV0ID0gc2NhMzMwMF9yZWFkX3JlZyhzY2FfZGF0YSwgU0NB MzMwMF9SRUdfTU9ERSwgJnJlZ192YWwpOw0KPiArCWlmIChyZXQpDQo+ICsJCXJldHVybiByZXQ7 DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgc2NhX2RhdGEtPmNoaXAtPm51bV9hdmFpbF9tb2Rl czsgaSsrKSB7DQo+ICsJCWlmIChzY2FfZGF0YS0+Y2hpcC0+YXZhaWxfbW9kZXNfdGFibGVbaV0g PT0gcmVnX3ZhbCkgew0KPiArCQkJKmluZGV4ID0gaTsNCj4gKwkJCWJyZWFrOw0KPiArCQl9DQo+ ICsJfQ0KPiArDQo+ICsJcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiAgc3RhdGljIGludCBzY2Ez MzAwX3dyaXRlX3JhdyhzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LA0KPiAgCQkJICAgICBzdHJ1 Y3QgaWlvX2NoYW5fc3BlYyBjb25zdCAqY2hhbiwNCj4gIAkJCSAgICAgaW50IHZhbCwgaW50IHZh bDIsIGxvbmcgbWFzaykNCj4gIHsNCj4gIAlzdHJ1Y3Qgc2NhMzMwMF9kYXRhICpkYXRhID0gaWlv X3ByaXYoaW5kaW9fZGV2KTsNCj4gKwlpbnQgbW9kZSA9IC0xOw0KU3VnZ2VzdCBub3Qgc2V0dGlu ZyB0byBpbnZhbGlkIGRlZmF1bHQgdmFsdWUsIGluc3RlYWQgYXZvaWQgY2FsbGluZw0KZnVuY3Rp b24gaWYgdmFsdWVzIGFyZSBub3QgZm91bmQuDQoNCj4gIAlpbnQgcmVnX3ZhbDsNCj4gKwlpbnQg aW5kZXg7DQo+ICAJaW50IHJldDsNCj4gIAlpbnQgaTsNCj4gIA0KPiAgCXN3aXRjaCAobWFzaykg ew0KPiAgCWNhc2UgSUlPX0NIQU5fSU5GT19TQ0FMRToNCj4gLQkJaWYgKHZhbCkNCj4gKwkJaWYg KGNoYW4tPnR5cGUgIT0gSUlPX0FDQ0VMKQ0KPiAgCQkJcmV0dXJuIC1FSU5WQUw7DQpXYXMgdGhl cmUgc29tZSBwcm9ibGVtIHdpdGggaWYgKHZhbCkgaGVyZSwgb3Igd2h5IGNoYW5nZWQ/DQo+IC0N Cj4gLQkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoc2NhMzMwMF9hY2NlbF9zY2FsZSk7IGkr Kykgew0KPiAtCQkJaWYgKHZhbDIgPT0gc2NhMzMwMF9hY2NlbF9zY2FsZVtpXVsxXSkNCj4gLQkJ CQlyZXR1cm4gc2NhMzMwMF93cml0ZV9yZWcoZGF0YSwgU0NBMzMwMF9SRUdfTU9ERSwgaSk7DQo+ ICsJCWZvciAoaSA9IDA7IGkgPCBkYXRhLT5jaGlwLT5udW1fYXZhaWxfbW9kZXM7IGkrKykgeyA0 DQo+ICsJCQlpbmRleCA9IGRhdGEtPmNoaXAtPmFjY2VsX3NjYWxlX21vZGVzX21hcFtpXTsNCj4g KwkJCWlmICgodmFsID09IGRhdGEtPmNoaXAtPmFjY2VsX3NjYWxlX3RhYmxlW2luZGV4XVswXSkg JiYNCj4gKwkJCSh2YWwyID09IGRhdGEtPmNoaXAtPmFjY2VsX3NjYWxlX3RhYmxlW2luZGV4XVsx XSkpIHsNCj4gKwkJCQltb2RlID0gaTsNCj4gKwkJCQlicmVhazsNCj4gKwkJCX0NCj4gIAkJfQ0K PiAtCQlyZXR1cm4gLUVJTlZBTDsNCj4gLQ0KPiArCQlyZXR1cm4gc2NhMzMwMF9zZXRfb3BfbW9k ZShkYXRhLCBtb2RlKTsNCj4gIAljYXNlIElJT19DSEFOX0lORk9fTE9XX1BBU1NfRklMVEVSXzNE Ql9GUkVRVUVOQ1k6DQo+IC0JCXJldCA9IHNjYTMzMDBfcmVhZF9yZWcoZGF0YSwgU0NBMzMwMF9S RUdfTU9ERSwgJnJlZ192YWwpOw0KPiArCQlyZXQgPSBzY2EzMzAwX2dldF9vcF9tb2RlKGRhdGEs ICZyZWdfdmFsKTsNCj4gIAkJaWYgKHJldCkNCj4gIAkJCXJldHVybiByZXQ7DQo+IC0JCS8qIGZy ZXEuIGNoYW5nZSBpcyBwb3NzaWJsZSBvbmx5IGZvciBtb2RlIDMgYW5kIDQgKi8NCj4gLQkJaWYg KHJlZ192YWwgPT0gMiAmJiB2YWwgPT0gc2NhMzMwMF9scF9mcmVxWzNdKQ0KPiAtCQkJcmV0dXJu IHNjYTMzMDBfd3JpdGVfcmVnKGRhdGEsIFNDQTMzMDBfUkVHX01PREUsIDMpOw0KPiAtCQlpZiAo cmVnX3ZhbCA9PSAzICYmIHZhbCA9PSBzY2EzMzAwX2xwX2ZyZXFbMl0pDQo+IC0JCQlyZXR1cm4g c2NhMzMwMF93cml0ZV9yZWcoZGF0YSwgU0NBMzMwMF9SRUdfTU9ERSwgMik7DQo+IC0JCXJldHVy biAtRUlOVkFMOw0KPiArCQlpbmRleCA9IGRhdGEtPmNoaXAtPmFjY2VsX3NjYWxlX21vZGVzX21h cFtyZWdfdmFsXTsNCj4gKwkJZm9yIChpID0gMDsgaSA8IGRhdGEtPmNoaXAtPm51bV9hdmFpbF9t b2RlczsgaSsrKSB7DQo+ICsJCQlpbnQgaW5kZXhfbmV3ID0gZGF0YS0+Y2hpcC0+YWNjZWxfc2Nh bGVfbW9kZXNfbWFwW2ldOyAwMTIyDQo+ICsJCQlpbnQgaW5kZXhfZnJlcSA9IGRhdGEtPmNoaXAt PmZyZXFfbW9kZXNfbWFwW2ldOw0KRGVjbGFyZSB2YXJpYWJsZXMgYXQgdG9wIG9mIGZ1bmN0aW9u Lg0KPiArDQo+ICsJCQlpZiAodmFsID09IGRhdGEtPmNoaXAtPmZyZXFfdGFibGVbaW5kZXhfZnJl cV0pIHsNCj4gKwkJCQlpZiAoZGF0YS0+Y2hpcC0+YWNjZWxfc2NhbGVfdGFibGVbaW5kZXhdID09 DQo+ICsJCQkJZGF0YS0+Y2hpcC0+YWNjZWxfc2NhbGVfdGFibGVbaW5kZXhfbmV3XSkgew0KVG8g YmUgY29tcGF0aWJsZSB3aXRoIGV4aXN0aW5nIGNvZGUsIHRoaXMgc2hvdWxkIGNoZWNrIHRoYXQg bW9kZSBpcyAyIG9yDQozLiBJIGRvbid0IHNlZSBob3cgdGhpcyBkb2VzIHRoYXQsIHBsZWFzZSBl eHBsYWluLg0KDQo+ICsJCQkJCW1vZGUgPSBpOw0KPiArCQkJCQlicmVhazsNCj4gKwkJCQl9DQo+ ICsJCQl9DQo+ICsJCX0NCj4gKwkJcmV0dXJuIHNjYTMzMDBfc2V0X29wX21vZGUoZGF0YSwgbW9k ZSk7DQo+ICAJZGVmYXVsdDoNCj4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+ICAJfQ0KPiBAQCAtMjY3 LDggKzM0OCw5IEBAIHN0YXRpYyBpbnQgc2NhMzMwMF9yZWFkX3JhdyhzdHJ1Y3QgaWlvX2RldiAq aW5kaW9fZGV2LA0KPiAgCQkJICAgIGludCAqdmFsLCBpbnQgKnZhbDIsIGxvbmcgbWFzaykNCj4g IHsNCj4gIAlzdHJ1Y3Qgc2NhMzMwMF9kYXRhICpkYXRhID0gaWlvX3ByaXYoaW5kaW9fZGV2KTsN Cj4gLQlpbnQgcmV0Ow0KPiAgCWludCByZWdfdmFsOw0KPiArCWludCBpbmRleDsNCj4gKwlpbnQg cmV0Ow0KPiAgDQo+ICAJc3dpdGNoIChtYXNrKSB7DQo+ICAJY2FzZSBJSU9fQ0hBTl9JTkZPX1JB VzoNCj4gQEAgLTI3NywxNyArMzU5LDI1IEBAIHN0YXRpYyBpbnQgc2NhMzMwMF9yZWFkX3Jhdyhz dHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2LA0KPiAgCQkJcmV0dXJuIHJldDsNCj4gIAkJcmV0dXJu IElJT19WQUxfSU5UOw0KPiAgCWNhc2UgSUlPX0NIQU5fSU5GT19TQ0FMRToNCj4gLQkJcmV0ID0g c2NhMzMwMF9yZWFkX3JlZyhkYXRhLCBTQ0EzMzAwX1JFR19NT0RFLCAmcmVnX3ZhbCk7DQo+ICsJ CXJldCA9IHNjYTMzMDBfZ2V0X29wX21vZGUoZGF0YSwgJnJlZ192YWwpOw0KPiAgCQlpZiAocmV0 KQ0KPiAgCQkJcmV0dXJuIHJldDsNCj4gLQkJKnZhbCA9IDA7DQo+IC0JCSp2YWwyID0gc2NhMzMw MF9hY2NlbF9zY2FsZVtyZWdfdmFsXVsxXTsNCj4gLQkJcmV0dXJuIElJT19WQUxfSU5UX1BMVVNf TUlDUk87DQo+ICsJCXN3aXRjaCAoY2hhbi0+dHlwZSkgew0KPiArCQljYXNlIElJT19BQ0NFTDoN Cj4gKwkJCWluZGV4ID0gZGF0YS0+Y2hpcC0+YWNjZWxfc2NhbGVfbW9kZXNfbWFwW3JlZ192YWxd Ow0KPiArCQkJKnZhbCA9IGRhdGEtPmNoaXAtPmFjY2VsX3NjYWxlX3RhYmxlW2luZGV4XVswXTsN Cj4gKwkJCSp2YWwyID0gZGF0YS0+Y2hpcC0+YWNjZWxfc2NhbGVfdGFibGVbaW5kZXhdWzFdOw0K PiArCQkJcmV0dXJuIElJT19WQUxfSU5UX1BMVVNfTUlDUk87DQo+ICsJCWRlZmF1bHQ6DQo+ICsJ CQlyZXR1cm4gLUVJTlZBTDsNCj4gKwkJfQ0KPiAgCWNhc2UgSUlPX0NIQU5fSU5GT19MT1dfUEFT U19GSUxURVJfM0RCX0ZSRVFVRU5DWToNCj4gLQkJcmV0ID0gc2NhMzMwMF9yZWFkX3JlZyhkYXRh LCBTQ0EzMzAwX1JFR19NT0RFLCAmcmVnX3ZhbCk7DQo+ICsNCj4gKwkJcmV0ID0gc2NhMzMwMF9n ZXRfb3BfbW9kZShkYXRhLCAmcmVnX3ZhbCk7DQo+ICAJCWlmIChyZXQpDQo+ICAJCQlyZXR1cm4g cmV0Ow0KPiAtCQkqdmFsID0gc2NhMzMwMF9scF9mcmVxW3JlZ192YWxdOw0KPiArCQlpbmRleCA9 IGRhdGEtPmNoaXAtPmZyZXFfbW9kZXNfbWFwW3JlZ192YWxdOw0KPiArCQkqdmFsID0gZGF0YS0+ Y2hpcC0+ZnJlcV90YWJsZVtpbmRleF07DQo+ICAJCXJldHVybiBJSU9fVkFMX0lOVDsNCj4gIAlk ZWZhdWx0Og0KPiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gQEAgLTMzMSw2ICs0MjEsNyBAQCBzdGF0 aWMgaW50IHNjYTMzMDBfaW5pdChzdHJ1Y3Qgc2NhMzMwMF9kYXRhICpzY2FfZGF0YSwNCj4gIHsN Cj4gIAlpbnQgdmFsdWUgPSAwOw0KPiAgCWludCByZXQ7DQo+ICsJaW50IGk7DQo+ICANCj4gIAly ZXQgPSBzY2EzMzAwX3dyaXRlX3JlZyhzY2FfZGF0YSwgU0NBMzMwMF9SRUdfTU9ERSwNCj4gIAkJ CQlTQ0EzMzAwX01PREVfU1dfUkVTRVQpOw0KPiBAQCAtMzQ3LDEyICs0MzgsMjIgQEAgc3RhdGlj IGludCBzY2EzMzAwX2luaXQoc3RydWN0IHNjYTMzMDBfZGF0YSAqc2NhX2RhdGEsDQo+ICAJaWYg KHJldCkNCj4gIAkJcmV0dXJuIHJldDsNCj4gIA0KPiAtCWlmICh2YWx1ZSAhPSBTQ0EzMzAwX1dI T0FNSV9JRCkgew0KPiAtCQlkZXZfZXJyKCZzY2FfZGF0YS0+c3BpLT5kZXYsDQo+IC0JCQkiZGV2 aWNlIGlkIG5vdCBleHBlY3RlZCB2YWx1ZSwgJWQgIT0gJXVcbiIsDQo+IC0JCQl2YWx1ZSwgU0NB MzMwMF9XSE9BTUlfSUQpOw0KPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNjYTMzMDBf Y2hpcF90YmwpOyBpKyspIHsNCj4gKwkJaWYgKHNjYTMzMDBfY2hpcF90YmxbaV0uY2hpcF9pZCA9 PSB2YWx1ZSkNCj4gKwkJCWJyZWFrOw0KPiArCX0+ICsJaWYgKGkgPT0gQVJSQVlfU0laRShzY2Ez MzAwX2NoaXBfdGJsKSkgew0KPiArCQlkZXZfZXJyKCZzY2FfZGF0YS0+c3BpLT5kZXYsICJJbnZh bGlkIGNoaXAgJXhcbiIsIHZhbHVlKTsNClBsZWFzZSBzdGFydCB0aGlzIHdpdGggc21hbGwgbGV0 dGVyLCBhbHNvIHBlcmhhcHMgcmVzb3J0IHRvICJ1bmtub3duDQpjaGlwIGlkICV4XG4iIG9yIHNv Lg0KPiAgCQlyZXR1cm4gLUVOT0RFVjsNCj4gIAl9DQo+ICsNCj4gKwlpbmRpb19kZXYtPmF2YWls YWJsZV9zY2FuX21hc2tzID0gc2NhMzMwMF9jaGlwX3RibFtpXS5zY2FuX21hc2tzOw0KPiArCWlu ZGlvX2Rldi0+bnVtX2NoYW5uZWxzID0gc2NhMzMwMF9jaGlwX3RibFtpXS5udW1fY2hhbm5lbHM7 DQo+ICsJaW5kaW9fZGV2LT5jaGFubmVscyA9IHNjYTMzMDBfY2hpcF90YmxbaV0uY2hhbm5lbHM7 DQo+ICsJc2NhX2RhdGEtPmNoaXAgPSAmc2NhMzMwMF9jaGlwX3RibFtpXTsNCj4gKwlpbmRpb19k ZXYtPm5hbWUgPSBzY2EzMzAwX2NoaXBfdGJsW2ldLm5hbWU7DQo+ICsJaW5kaW9fZGV2LT5tb2Rl cyA9IElORElPX0RJUkVDVF9NT0RFOw0KPiArDQpJIHdvdWxkIHByZWZlciB0byBrZWVwIHRoZSBh Ym92ZSBpbmRpb19kZXYgYWRkaXRpb25zIGluIHRoZSBwcm9iZQ0KZnVuY3Rpb24uIFRoYXQgd2F5 IHdlIGtlZXAgdGhlIGluaXQgZnVuY3Rpb24gY2xlYW4oZXIpLg0KDQpUaGFua3MsDQpUb21hcw0K DQo+ICAJcmV0dXJuIDA7DQo+ICB9DQo+ICANCj4gQEAgLTM4NCwxNSArNDg1LDIxIEBAIHN0YXRp YyBpbnQgc2NhMzMwMF9yZWFkX2F2YWlsKHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYsDQo+ICAJ CQkgICAgICBjb25zdCBpbnQgKip2YWxzLCBpbnQgKnR5cGUsIGludCAqbGVuZ3RoLA0KPiAgCQkJ ICAgICAgbG9uZyBtYXNrKQ0KPiAgew0KPiArCXN0cnVjdCBzY2EzMzAwX2RhdGEgKmRhdGEgPSBp aW9fcHJpdihpbmRpb19kZXYpOw0KPiAgCXN3aXRjaCAobWFzaykgew0KPiAgCWNhc2UgSUlPX0NI QU5fSU5GT19TQ0FMRToNCj4gLQkJKnZhbHMgPSAoY29uc3QgaW50ICopc2NhMzMwMF9hY2NlbF9z Y2FsZTsNCj4gLQkJKmxlbmd0aCA9IEFSUkFZX1NJWkUoc2NhMzMwMF9hY2NlbF9zY2FsZSkgKiAy IC0gMjsNCj4gLQkJKnR5cGUgPSBJSU9fVkFMX0lOVF9QTFVTX01JQ1JPOw0KPiAtCQlyZXR1cm4g SUlPX0FWQUlMX0xJU1Q7DQo+ICsJCXN3aXRjaCAoY2hhbi0+dHlwZSkgew0KPiArCQljYXNlIElJ T19BQ0NFTDoNCj4gKwkJCSp2YWxzID0gKGNvbnN0IGludCAqKWRhdGEtPmNoaXAtPmFjY2VsX3Nj YWxlX3RhYmxlOw0KPiArCQkJKmxlbmd0aCA9IGRhdGEtPmNoaXAtPm51bV9hY2NlbF9zY2FsZXM7 DQo+ICsJCQkqdHlwZSA9IElJT19WQUxfSU5UX1BMVVNfTUlDUk87DQo+ICsJCQlyZXR1cm4gSUlP X0FWQUlMX0xJU1Q7DQo+ICsJCWRlZmF1bHQ6DQo+ICsJCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwkJ fQ0KPiAgCWNhc2UgSUlPX0NIQU5fSU5GT19MT1dfUEFTU19GSUxURVJfM0RCX0ZSRVFVRU5DWToN Cj4gLQkJKnZhbHMgPSAmc2NhMzMwMF9scF9mcmVxWzJdOw0KPiAtCQkqbGVuZ3RoID0gMjsNCj4g KwkJKnZhbHMgPSAoY29uc3QgaW50ICopZGF0YS0+Y2hpcC0+ZnJlcV90YWJsZTsNCj4gKwkJKmxl bmd0aCA9IGRhdGEtPmNoaXAtPm51bV9mcmVxczsNCj4gIAkJKnR5cGUgPSBJSU9fVkFMX0lOVDsN Cj4gIAkJcmV0dXJuIElJT19BVkFJTF9MSVNUOw0KPiAgCWRlZmF1bHQ6DQo+IEBAIC00MjQsMTEg KzUzMSw2IEBAIHN0YXRpYyBpbnQgc2NhMzMwMF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3Bp KQ0KPiAgCWNyYzhfcG9wdWxhdGVfbXNiKHNjYTMzMDBfY3JjX3RhYmxlLCBTQ0EzMzAwX0NSQzhf UE9MWU5PTUlBTCk7DQo+ICANCj4gIAlpbmRpb19kZXYtPmluZm8gPSAmc2NhMzMwMF9pbmZvOw0K PiAtCWluZGlvX2Rldi0+bmFtZSA9IFNDQTMzMDBfQUxJQVM7DQo+IC0JaW5kaW9fZGV2LT5tb2Rl cyA9IElORElPX0RJUkVDVF9NT0RFOw0KPiAtCWluZGlvX2Rldi0+Y2hhbm5lbHMgPSBzY2EzMzAw X2NoYW5uZWxzOw0KPiAtCWluZGlvX2Rldi0+bnVtX2NoYW5uZWxzID0gQVJSQVlfU0laRShzY2Ez MzAwX2NoYW5uZWxzKTsNCj4gLQlpbmRpb19kZXYtPmF2YWlsYWJsZV9zY2FuX21hc2tzID0gc2Nh MzMwMF9zY2FuX21hc2tzOw0KPiAgDQo+ICAJcmV0ID0gc2NhMzMwMF9pbml0KHNjYV9kYXRhLCBp bmRpb19kZXYpOw0KPiAgCWlmIChyZXQpIHsNCg==