Received: by 2002:a05:7412:f589:b0:e2:908c:2ebd with SMTP id eh9csp169596rdb; Tue, 31 Oct 2023 04:24:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFsNAsOUlZnR95xTMKb9/lqMQA6OGh1xa01LEGL7I94g4brhC7rJqfIdyPnm2b6rORMBgOO X-Received: by 2002:a05:6358:7e9b:b0:169:958b:a75f with SMTP id o27-20020a0563587e9b00b00169958ba75fmr359828rwn.30.1698751480807; Tue, 31 Oct 2023 04:24:40 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1698751480; cv=pass; d=google.com; s=arc-20160816; b=L0Bw/guzIQFAmbySBqUKW8idPlmBkcxXG/BpN0ddrB/CgGY3QVFvY4YoALCxGP9WPZ G+6pmVR4juMxzNbRtEmheFaPGsbJzzCPBj6tlgTYftr3nNxTEZgwmH1moq7nYpOPLYTg VHU0PeUBh+MRoFOiZgRpbOZcXG2KeFh6mQvWTReoB5LEbo67T5DwS46LnZJWcJNLmiiG Eeg37Cxv6c9XKXP2GZKNCEpjk8oupdnNESWXt5Nm38y+2QSc1wlBqRYWto7wPlRHSIcY 4XGQvBPy6PsnJQU01SWAOJAc3GFgHTzEQG590X5nFOnWUzM9VGqXEkm5GtPUw54W8ZEn uzJQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:to:from:dkim-signature; bh=hItWnLzmHSGqouD56J2MAnlMO25XCZ2RtOh/if6t8DY=; fh=clrJzAiIUBW+S2VT9MdazBDckzmwdrtShkB3HVQBNys=; b=nGy/FBeaDvucagiIQMW9RNwK8Wt+Sibt8NFqZ1rrCmcAkfwGW6n5tOQzf//DJ7pe9E WWGnZQjoNcfJz6fFnqzO/iWp4UANx3YnCt3P32gsO7IubmZ1VQu1ZIxwWbWEpgqp+z8C 7w8yCKq0Fj5s9AGLPJwOh0aIwS4z914bgFOoOWqWBGPzMYzyxKmbrpRdKnMjU/0yJotA bwKdcG7y1Ay+H4ZPVGBT7H8ixH1kBUo+LVQkVQRZ0RzRG/WS2e1a/6Rp9k1PZvW6Q5N8 Brp7Sncl3tqbKVnmrQz0xiNhodsOFGKhDsP3sPxtGVtDG5DYay0TsG+dmlwCjHTXKWHd /CSw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=JBIxTB3X; 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.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=analog.com Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id k5-20020a633d05000000b005af21fd2c7dsi917568pga.412.2023.10.31.04.24.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Oct 2023 04:24:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@analog.onmicrosoft.com header.s=selector2-analog-onmicrosoft-com header.b=JBIxTB3X; 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.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=analog.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 2B0D5803113A; Tue, 31 Oct 2023 04:24:36 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235481AbjJaLY0 (ORCPT + 99 others); Tue, 31 Oct 2023 07:24:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51836 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235017AbjJaLYV (ORCPT ); Tue, 31 Oct 2023 07:24:21 -0400 Received: from mx0b-00128a01.pphosted.com (mx0b-00128a01.pphosted.com [148.163.139.77]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8AA44A6; Tue, 31 Oct 2023 04:24:17 -0700 (PDT) Received: from pps.filterd (m0167090.ppops.net [127.0.0.1]) by mx0b-00128a01.pphosted.com (8.17.1.22/8.17.1.22) with ESMTP id 39V6hWXl003168; Tue, 31 Oct 2023 07:23:53 -0400 Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2100.outbound.protection.outlook.com [104.47.55.100]) by mx0b-00128a01.pphosted.com (PPS) with ESMTPS id 3u1fu3w1p5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 31 Oct 2023 07:23:52 -0400 (EDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UpvrJVaFGh7aB18f19yy62ruCWTRAM/agP0gmL83quOb3iV5y6stEZZH3e8fukdpel2x5IICMa0JJRPqLPkh0I9cSg88+OSmtjMP7guEz3llpKuCdpTKrwadyRpWGcaoU6yV/rzbzfwl8fGhlWMsRElgkqwOo/u4mf0pjRnctpmBpDzSis3Uomz4T1udeg+jHXEriAFa+YBcMKRVp4FVeciDwCcAnGqVWdb4Rzfvzukyz0SbHqP6+oaPqfbQRvjMr3snTnOw1Ln6OfHPRXNu4QRQN2bokJzW7GeCkO2yXGZDbP1eECT1edfpHPDbuBXyTXJdtZU00eZOQTc1TSOQ/g== 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=hItWnLzmHSGqouD56J2MAnlMO25XCZ2RtOh/if6t8DY=; b=K/JzUvpFDVSaTDaiz140iFMIgZYJ/Y2IpUY2qaE4RaVOziMVRh0tCUWh5ua/y5TDIrpUhwUgqV2Gv+8xL1TtrWRiA5VOtKQOhdq6K/gbQpuQNMWmcM3jjmys3NdY27B6bweDw9oxzQTvQA1pYAjJdqgcwAEYBJALlA3iySaN85ebAQhF1OmLFi4dfNor9CXMK7Rr26sGhNykhJlwTbis7UAadx64qybMZLVv7kkd16He9mze4PTLCIe6nC86eXypRhRs+XmaC0m6B8NzD+H8Pr8wbqg9K+a8CJbB+nMUx+VTBmtCEbAfo+kPEGgEMEZQyMrFVdkrAzx9GzR3j5AI5A== 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=hItWnLzmHSGqouD56J2MAnlMO25XCZ2RtOh/if6t8DY=; b=JBIxTB3XISQEZnMlEdcFtxba3Bhmyy3lnHGnihGXVF+bY/LfROEmHQXQ39uZixJUnsgh6AZlnxkBzeFv17QdO0MdhGryMf4jM4R5aMrxQtTRfTL3tXg6vSx85cyZT8GDc0VekEU+sO/VkzHUJfofZ5o03ILHvN0a7+UYeBIREkQ= Received: from CY4PR03MB3399.namprd03.prod.outlook.com (2603:10b6:910:57::13) by MW4PR03MB6989.namprd03.prod.outlook.com (2603:10b6:303:1b8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.16; Tue, 31 Oct 2023 11:23:49 +0000 Received: from CY4PR03MB3399.namprd03.prod.outlook.com ([fe80::26c3:a563:9b0a:3321]) by CY4PR03MB3399.namprd03.prod.outlook.com ([fe80::26c3:a563:9b0a:3321%3]) with mapi id 15.20.6954.014; Tue, 31 Oct 2023 11:23:49 +0000 From: "Miclaus, Antoniu" To: Guenter Roeck , Alessandro Zummo , Alexandre Belloni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Jean Delvare , "linux-rtc@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-hwmon@vger.kernel.org" Subject: RE: [PATCH 2/2] drivers: rtc: max31335: initial commit Thread-Topic: [PATCH 2/2] drivers: rtc: max31335: initial commit Thread-Index: AQHaCyeLjVRbnUBr8Uu9pZ9Nut/xb7BioqKAgAEesVA= Date: Tue, 31 Oct 2023 11:23:49 +0000 Message-ID: References: <20231030115016.97823-1-antoniu.miclaus@analog.com> <20231030115016.97823-3-antoniu.miclaus@analog.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-dg-ref: =?utf-8?B?UEcxbGRHRStQR0YwSUc1dFBTSmliMlI1TG5SNGRDSWdjRDBpWXpwY2RYTmxj?= =?utf-8?B?bk5jWVcxcFkyeGhkWE5jWVhCd1pHRjBZVnh5YjJGdGFXNW5YREE1WkRnME9X?= =?utf-8?B?STJMVE15WkRNdE5HRTBNQzA0TldWbExUWmlPRFJpWVRJNVpUTTFZbHh0YzJk?= =?utf-8?B?elhHMXpaeTFtTkRWbU5UVTNOeTAzTjJSbUxURXhaV1V0WVdVM09DMWtORGd4?= =?utf-8?B?WkRjMU1EWmtaR1ZjWVcxbExYUmxjM1JjWmpRMVpqVTFOemt0Tnpka1ppMHhN?= =?utf-8?B?V1ZsTFdGbE56Z3RaRFE0TVdRM05UQTJaR1JsWW05a2VTNTBlSFFpSUhONlBT?= =?utf-8?B?SXlOemd5TnlJZ2REMGlNVE16TkRNeU1qVXdNalkyTmpRd056WTJJaUJvUFNK?= =?utf-8?B?RWVrTm9SRTVNUWtsV05qbFZZU3M0U0RWS2IwMVZjRTl5WWxFOUlpQnBaRDBp?= =?utf-8?B?SWlCaWJEMGlNQ0lnWW04OUlqRWlJR05wUFNKalFVRkJRVVZTU0ZVeFVsTlNW?= =?utf-8?B?VVpPUTJkVlFVRkZiME5CUVVJcldXSnRNamRCZG1GQlpWWnFReTh2ZDJWbmEw?= =?utf-8?B?RTFWMDFNTHk5Q05rTlJRVVJCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJTRUZCUVVGRVlVRlJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlJVRkJVVUZDUVVGQlFVVlBjR3hQWjBGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VW8wUVVGQlFtaEJSMUZCWVZGQ1prRklUVUZhVVVKcVFVaFZRV05uUW14QlJq?= =?utf-8?B?aEJZMEZDZVVGSE9FRmhaMEpzUVVkTlFXUkJRbnBCUmpoQldtZENhRUZIZDBG?= =?utf-8?B?amQwSnNRVVk0UVZwblFuWkJTRTFCWVZGQ01FRkhhMEZrWjBKc1FVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGRlFVRkJRVUZCUVVG?= =?utf-8?B?QlFXZEJRVUZCUVVGdVowRkJRVWRGUVZwQlFuQkJSamhCWTNkQ2JFRkhUVUZr?= =?utf-8?B?VVVKNVFVZFZRVmgzUW5kQlNFbEJZbmRDY1VGSFZVRlpkMEl3UVVoTlFWaDNR?= =?utf-8?B?akJCUjJ0QldsRkNlVUZFUlVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJV?= =?utf-8?B?VUZCUVVGQlFVRkJRVU5CUVVGQlFVRkRaVUZCUVVGWlVVSnJRVWRyUVZoM1Fu?= =?utf-8?B?cEJSMVZCV1hkQ01VRklTVUZhVVVKbVFVaEJRV05uUW5aQlIyOUJXbEZDYWtG?= =?utf-8?B?SVVVRmpkMEptUVVoUlFXRlJRbXhCU0VsQlRXZEJRVUZCUVVGQlFVRkJRVUZC?= =?utf-8?B?UVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJR?= =?utf-8?B?VUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFV?= =?utf-8?B?RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG?= =?utf-8?B?QlFVRkJRVUZCUWtGQlFVRkJRVUZCUVVGSlFVRkJRVUZCUVQwOUlpOCtQQzl0?= =?utf-8?B?WlhSaFBnPT0=?= x-dg-rorf: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY4PR03MB3399:EE_|MW4PR03MB6989:EE_ x-ms-office365-filtering-correlation-id: 335c46f8-cdbb-4b80-3461-08dbda03dae0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 273qGmzstGGTvzSMr5x4XkeJmFYfFtWZDmiXy3pEMpVJvxTOngsAdjom0urMTR0RbFbIs9ySF7khn6ri0c3kKiNKqLjIquYHVXAGnn43v/6AVM7UlslpCH2QNe09vubxXwZGOPGxjrHnek+mtduwARWAw55mF2kJUU5c0mlkQF9XygbhpzlTr26jgDR1eh14igdtQgqpPQ1RN+bL/b7Wk5jnUCyD/f3ZGbm8LhLfd89DV2U23CaeX25GmLRjGJZWPs1jtRbE7YwTJvhmeNJGMlH/1uD9KWpm7DNzvSPy3cBgqSNnnqKRqIAYiW74t7P30gO2S/szVK3tL2rqKIGfoNHa5bjPmgJwLI7r4SucssMxGTF+cEfRyOB17GzJLDtDMLJfxQJ1n+YZ1TAhBSdGV6DqeBdrSyJ8R1ViMkS9PxzOOUElX5/01d1PCN0ttzJ5ybVXJmBxuSHetu7dpNgxgYudPMSAMIe8bQfG/P9EH64qmRKDXY81iuhYA9YZhoj/gPSurg7HCb6w5MXpcStrvKzguwAk3gcGJOAp88Zlaqr2wD4j8yGcgKY71aWnI3nei/FWXKksvWWMwCFOJ5OEcgfUUu1Zvqe4SzWp8wDw93VkmQafFoTsTSjmBjB0ZDaII3XaaCtOamh1gYX4PItX2w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY4PR03MB3399.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(136003)(376002)(396003)(366004)(39860400002)(230922051799003)(186009)(451199024)(1800799009)(64100799003)(26005)(7696005)(6506007)(53546011)(55016003)(921008)(9686003)(38070700009)(38100700002)(122000001)(33656002)(86362001)(5660300002)(110136005)(83380400001)(64756008)(7416002)(41300700001)(316002)(66446008)(66946007)(66556008)(76116006)(66476007)(30864003)(52536014)(8936002)(8676002)(2906002)(478600001)(71200400001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OHoxM1U0T2F6VVhRSmwwZTlXdmdQSFczQjVaZzcrUnI1R0VhMURoeWlmQk9v?= =?utf-8?B?WG56VlJGY3dDeVNiRkV6TG11N3VvRnF5MEN2NlM5a2ZQS3ZEMmg0cXkwRTRR?= =?utf-8?B?ckZxUmhxZU1lcVZIYTQvSklBZVNSTFFkeUxLQXJaWjdJamMyaThhbmlXSUNV?= =?utf-8?B?Tm90djhIOHp5Y3lvU3gycUhuM1U1dk9rSGk2UWUrejRQUm1lYVFDMTF2VDFJ?= =?utf-8?B?MURpYUp3cmpJNmptdkIxT2lDNEhPdHpoa21pdzRwaVZKL0U2R3pPZXF4c24w?= =?utf-8?B?di90VldXN0xIUERVRzkwQ2FtSUh5Y1pWWFJPaVErcG1SRGVuWGVTckZVcVdY?= =?utf-8?B?SGQwdzM5enJSZG5nK1R2SHQ1UW5sV3BZY25COHRuUGZ1eGJhdzY3VHVIdi93?= =?utf-8?B?SERDbU9oVWFjTmUrUTZ2TE9qTjNpdjRkZlJsdFphaWtQenZJKzJVT0lmTFpj?= =?utf-8?B?KytlaGZTOVRkdGp0QmlZeXNkdnByMDZydkVIelp3V2RCLzFubnNXY2p6dGxU?= =?utf-8?B?eUZPd1BUV3MzQ0dVb1JFWTV5cytjN2NxTjdadUlxRzk5MWZNNW5XNEhKbkZi?= =?utf-8?B?bklrTXdnNmZDek5qUWZYQ3dHYTVqYVBMUzIycTczV04zSUs0Qko1cHdUcis1?= =?utf-8?B?NXhaclRGUDZiQ3hjS2g3RmJIa1ZCVXZGZFNBWXF2UXZKVWlmYUlRVGxLekFQ?= =?utf-8?B?dGVLNzEwM1dMTUhNdW5LbkI4MW5aaGlNeFZ4NkIwNnZDbUNrQjV0RWozYm5X?= =?utf-8?B?SkpIcHRsNk8xQjhkV3FZSlFBNGdGZVBxM0M4Y2hqeGF4bUMxVVVuZVVpMFRZ?= =?utf-8?B?eURSeHRMK1BFWG1EbjNhTGUzZDV0U1IxdzF6VXphNTZ1QWQzSXNGM3ZyRDY5?= =?utf-8?B?b29wMERveFU1dHB4eEE5OG44eER5ZXpqVFlORCtDUzlpdDV1Q25Xb2lKRjlR?= =?utf-8?B?TkZmM05IYTY2eERYdVNVbng1Uk1heG5DUit6ZUdGcGJCZFNaejc4bGdqb25R?= =?utf-8?B?SDlqRDUvSlQwZ1hTRko2Ry9TWVdCYzA3cWkrZThWVUY4c2duNFRhdVVCU05V?= =?utf-8?B?cWJHVFY3RGRKVkU4T1lCYXFQbmFXQnlUbkZQSXErbjdwbEJwcUJLZmp1RTBr?= =?utf-8?B?cHBxN2l3aWwyak1hZm1wV1BkVmhPQ2YrZllySUg4UXAwaUdndTdYRjBxSmVJ?= =?utf-8?B?RUpnUGV1Znl2bEJhbmN0TkdhanNVbXkvTW5KbWJoK3NrZkJFVERBK1QrUTll?= =?utf-8?B?eERMei96RXQraGRtanAzdmd0MWl5SDRzVkw0VlIrYy9ESGkvcWdpSE5MdzY5?= =?utf-8?B?TndlemdBa3pHTk5EMVZsaWpMQWxSR0Z0S0w1QWtCSmV3L3VBWXNsQVZIVDYy?= =?utf-8?B?dmZOZHFGWU9wcUJHOVp1R3dSK0tMdGo5MUlNeVZrME5aeFJzZHVlSDhhdUhZ?= =?utf-8?B?cE1mM2pXSjFyZDVhaXJxa013cW5jVThCejFyS3lWZXZrTzhvWDUrRCs4eEYr?= =?utf-8?B?T1VrL2VuSmYwMisxVm5GMjE3U0wra3hvOFZPQ3FKNjdvQkpwemlubk9uRGp3?= =?utf-8?B?bUkzTFF4OXY1RTNJclpjbWM2TDVPUGJkcmlqVHhiZDNLRzBEVWRwblZqdTBv?= =?utf-8?B?NExPMERHdW5jS3Z1cmZ6ZjhUcGV2L012cjF1R2hzODNHM2cyUi9pRld5by9l?= =?utf-8?B?UEc1MkdQck16SU5kTllDTTRjb2dwbWVpOXNHbUpVWkpKU0h6RlBFb3R2UmxC?= =?utf-8?B?aVBoTXZSR2NQamtlYi8zS2RSbjRLSTV1NStLR2w2RnI5TDRpVndWSWpYc2Ni?= =?utf-8?B?cmIwT1BHUlp1eVllWGpQenJ3NXlyRHY1K1ZwTnNXNkU3ZmJyOE1kaG9vVjE0?= =?utf-8?B?Qmd2a3hqcFhWS1dRQWZxMUZnVDBMK2V0Q2IzSVZsSGpwdzFiL3czQ2g2TmEx?= =?utf-8?B?ZGswaGlsZnU5UlhWRnhSL0dXZnJXVmpoWHhIRlBtZVlhcU13NTVVWGMrdGxD?= =?utf-8?B?ME9ZM29MQTRjS25TVTZob0J3YWRWeHZ5b0g3Y2NWRXhUMUI2aWxpYmg5N1Qr?= =?utf-8?B?T3BjV01rNGNmNkxMZHFOWmY4Q0hoN2FLRnovTWVicklPaVh6bEhsS3FwSWJn?= =?utf-8?B?NjFEMndZQ2gzcTN6NE9tOCtzN1lwUDhNZG51aTJYYlJ1d20xcTdFcXZ0eHYv?= =?utf-8?B?UEE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: analog.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY4PR03MB3399.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 335c46f8-cdbb-4b80-3461-08dbda03dae0 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Oct 2023 11:23:49.4861 (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: FvMJoMWR2BSeFUZvD1xg3Pmu3MwpyaFaRgN5pXam2x6+/G8n8Xy7dNUeMqMw2QTCqKlRwBgMwgAu7Me/gSw94L0tlfev+8C/MUoxLHUQGXc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR03MB6989 X-Proofpoint-ORIG-GUID: g0391wv53H5-qTu1ALUWSm625TO7105L X-Proofpoint-GUID: g0391wv53H5-qTu1ALUWSm625TO7105L X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-10-31_01,2023-10-31_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 adultscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 lowpriorityscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2310240000 definitions=main-2310310088 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Tue, 31 Oct 2023 04:24:36 -0700 (PDT) PiBPbiAxMC8zMC8yMyAwNDo1MCwgQW50b25pdSBNaWNsYXVzIHdyb3RlOg0KPiA+IFJUQyBkcml2 ZXIgZm9yIE1BWDMxMzM1IMKxMnBwbSBBdXRvbW90aXZlIFJlYWwtVGltZSBDbG9jayB3aXRoDQo+ ID4gSW50ZWdyYXRlZCBNRU1TIFJlc29uYXRvci4NCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEFu dG9uaXUgTWljbGF1cyA8YW50b25pdS5taWNsYXVzQGFuYWxvZy5jb20+DQo+ID4gLS0tDQo+ID4g ICBkcml2ZXJzL3J0Yy9LY29uZmlnICAgICAgICB8ICAxMSArDQo+ID4gICBkcml2ZXJzL3J0Yy9N YWtlZmlsZSAgICAgICB8ICAgMSArDQo+ID4gICBkcml2ZXJzL3J0Yy9ydGMtbWF4MzEzMzUuYyB8 IDc1OQ0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gICAzIGZp bGVzIGNoYW5nZWQsIDc3MSBpbnNlcnRpb25zKCspDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ydGMvcnRjLW1heDMxMzM1LmMNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3J0Yy9LY29uZmlnIGIvZHJpdmVycy9ydGMvS2NvbmZpZw0KPiA+IGluZGV4IGQ3NTAyNDMzYzc4 YS4uMTFjN2Q3ZmUxZTg1IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvcnRjL0tjb25maWcNCj4g PiArKysgYi9kcml2ZXJzL3J0Yy9LY29uZmlnDQo+ID4gQEAgLTM3Myw2ICszNzMsMTcgQEAgY29u ZmlnIFJUQ19EUlZfTUFYODk5Nw0KPiA+ICAgCSAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVp bHQgYXMgYSBtb2R1bGUuIElmIHNvLCB0aGUgbW9kdWxlDQo+ID4gICAJICB3aWxsIGJlIGNhbGxl ZCBydGMtbWF4ODk5Ny4NCj4gPg0KPiA+ICtjb25maWcgUlRDX0RSVl9NQVgzMTMzNQ0KPiA+ICsJ dHJpc3RhdGUgIkFuYWxvZyBEZXZpY2VzIE1BWDMxMzM1Ig0KPiA+ICsJZGVwZW5kcyBvbiBJMkMN Cj4gPiArCXNlbGVjdCBSRUdNQVBfSTJDDQo+ID4gKwloZWxwDQo+ID4gKwkgIElmIHlvdSBzYXkg eWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciB0aGUgQW5hbG9nIERldmljZXMNCj4gPiArCSAg TUFYMzEzMzUuDQo+ID4gKw0KPiA+ICsJICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBh cyBhIG1vZHVsZS4gSWYgc28sIHRoZSBtb2R1bGUNCj4gPiArCSAgd2lsbCBiZSBjYWxsZWQgcnRj LW1heDMxMzM1Lg0KPiA+ICsNCj4gPiAgIGNvbmZpZyBSVENfRFJWX01BWDc3Njg2DQo+ID4gICAJ dHJpc3RhdGUgIk1heGltIE1BWDc3Njg2Ig0KPiA+ICAgCWRlcGVuZHMgb24gTUZEX01BWDc3Njg2 IHx8IE1GRF9NQVg3NzYyMCB8fCBNRkRfTUFYNzc3MTQNCj4gfHwgQ09NUElMRV9URVNUDQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcnRjL01ha2VmaWxlIGIvZHJpdmVycy9ydGMvTWFrZWZpbGUN Cj4gPiBpbmRleCBmZDIwOTg4M2VlMmUuLjk5ZTY4M2E0ODI0MCAxMDA2NDQNCj4gPiAtLS0gYS9k cml2ZXJzL3J0Yy9NYWtlZmlsZQ0KPiA+ICsrKyBiL2RyaXZlcnMvcnRjL01ha2VmaWxlDQo+ID4g QEAgLTg4LDYgKzg4LDcgQEAgb2JqLSQoQ09ORklHX1JUQ19EUlZfTTQxVDk0KQkrPSBydGMtDQo+ IG00MXQ5NC5vDQo+ID4gICBvYmotJChDT05GSUdfUlRDX0RSVl9NNDhUMzUpCSs9IHJ0Yy1tNDh0 MzUubw0KPiA+ICAgb2JqLSQoQ09ORklHX1JUQ19EUlZfTTQ4VDU5KQkrPSBydGMtbTQ4dDU5Lm8N Cj4gPiAgIG9iai0kKENPTkZJR19SVENfRFJWX000OFQ4NikJKz0gcnRjLW00OHQ4Ni5vDQo+ID4g K29iai0kKENPTkZJR19SVENfRFJWX01BWDMxMzM1KQkrPSBydGMtbWF4MzEzMzUubw0KPiA+ICAg b2JqLSQoQ09ORklHX1JUQ19EUlZfTUFYNjkwMCkJKz0gcnRjLW1heDY5MDAubw0KPiA+ICAgb2Jq LSQoQ09ORklHX1JUQ19EUlZfTUFYNjkwMikJKz0gcnRjLW1heDY5MDIubw0KPiA+ICAgb2JqLSQo Q09ORklHX1JUQ19EUlZfTUFYNjkxNikJKz0gcnRjLW1heDY5MTYubw0KPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3J0Yy9ydGMtbWF4MzEzMzUuYyBiL2RyaXZlcnMvcnRjL3J0Yy1tYXgzMTMzNS5j DQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjE1OWEw MTk1MjRiMQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9kcml2ZXJzL3J0Yy9ydGMtbWF4 MzEzMzUuYw0KPiA+IEBAIC0wLDAgKzEsNzU5IEBADQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wDQo+ID4gKy8qDQo+ID4gKyAqIFJUQyBkcml2ZXIgZm9yIHRoZSBNQVgz MTMzNQ0KPiA+ICsgKg0KPiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjMgQW5hbG9nIERldmljZXMN Cj4gPiArICoNCj4gPiArICogQW50b25pdSBNaWNsYXVzIDxhbnRvbml1Lm1pY2xhdXNAYW5hbG9n LmNvbT4NCj4gPiArICoNCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8YXNtLWdlbmVy aWMvdW5hbGlnbmVkLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9iY2QuaD4NCj4gPiArI2luY2x1 ZGUgPGxpbnV4L2JpdGZpZWxkLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4NCj4g PiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvY2xrLXByb3Zp ZGVyLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9od21vbi5oPg0KPiA+ICsjaW5jbHVkZSA8bGlu dXgvaTJjLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4NCj4gPiArI2luY2x1 ZGUgPGxpbnV4L2tlcm5lbC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQo+ID4g KyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4NCj4gPiArI2luY2x1ZGUgPGxpbnV4L3JlZ21h cC5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvcnRjLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC91 dGlsX21hY3Jvcy5oPg0KPiA+ICsNCj4gPiArLyogTUFYMzEzMzUgUmVnaXN0ZXIgTWFwICovDQo+ ID4gKyNkZWZpbmUgTUFYMzEzMzVfU1RBVFVTMQkJCTB4MDANCj4gPiArI2RlZmluZSBNQVgzMTMz NV9JTlRfRU4xCQkJMHgwMQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1NUQVRVUzIJCQkweDAyDQo+ ID4gKyNkZWZpbmUgTUFYMzEzMzVfSU5UX0VOMgkJCTB4MDMNCj4gPiArI2RlZmluZSBNQVgzMTMz NV9SVENfUkVTRVQJCQkweDA0DQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfUlRDX0NPTkZJRwkJCTB4 MDUNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9SVENfQ09ORklHMgkJCTB4MDYNCj4gPiArI2RlZmlu ZSBNQVgzMTMzNV9USU1FU1RBTVBfQ09ORklHCQkweDA3DQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVf VElNRVJfQ09ORklHCQkJMHgwOA0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1NFQ09ORFNfMV8xMjgJ CQkweDA5DQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfU0VDT05EUwkJCTB4MEENCj4gPiArI2RlZmlu ZSBNQVgzMTMzNV9NSU5VVEVTCQkJMHgwQg0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X0hPVVJTCQkJ CTB4MEMNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9EQVkJCQkJMHgwRA0KPiA+ICsjZGVmaW5lIE1B WDMxMzM1X0RBVEUJCQkJMHgwRQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X01PTlRICQkJCTB4MEYN Cj4gPiArI2RlZmluZSBNQVgzMTMzNV9ZRUFSCQkJCTB4MEYNCj4gPiArI2RlZmluZSBNQVgzMTMz NV9BTE0xX1NFQwkJCTB4MTENCj4gPiArI2RlZmluZSBNQVgzMTMzNV9BTE0xX01JTgkJCTB4MTIN Cj4gPiArI2RlZmluZSBNQVgzMTMzNV9BTE0xX0hSUwkJCTB4MTMNCj4gPiArI2RlZmluZSBNQVgz MTMzNV9BTE0xX0RBWV9EQVRFCQkJMHgxNA0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X0FMTTFfTU9O CQkJMHgxNQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X0FMTTFfWUVBUgkJCTB4MTYNCj4gPiArI2Rl ZmluZSBNQVgzMTMzNV9BTE0yX01JTgkJCTB4MTcNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9BTE0y X0hSUwkJCTB4MTgNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9BTE0yX0RBWV9EQVRFCQkJMHgxOQ0K PiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RJTUVSX0NPVU5UCQkJMHgxQQ0KPiA+ICsjZGVmaW5lIE1B WDMxMzM1X1RJTUVSX0lOSVQJCQkweDFCDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfUFdSX01HTVQJ CQkweDFDDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFJJQ0tMRV9SRUcJCQkweDFEDQo+ID4gKyNk ZWZpbmUgTUFYMzEzMzVfQUdJTkdfT0ZGU0VUCQkJMHgxRQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1 X1RTX0NPTkZJRwkJCTB4MzANCj4gPiArI2RlZmluZSBNQVgzMTMzNV9URU1QX0FMQVJNX0hJR0hf TVNCCQkweDMxDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVEVNUF9BTEFSTV9ISUdIX0xTQgkJMHgz Mg0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RFTVBfQUxBUk1fTE9XX01TQgkJMHgzMw0KPiA+ICsj ZGVmaW5lIE1BWDMxMzM1X1RFTVBfQUxBUk1fTE9XX0xTQgkJMHgzNA0KPiA+ICsjZGVmaW5lIE1B WDMxMzM1X1RFTVBfREFUQV9NU0IJCQkweDM1DQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVEVNUF9E QVRBX0xTQgkJCTB4MzYNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9UUzBfU0VDXzFfMTI4CQkJMHg0 MA0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RTMF9TRUMJCQkweDQxDQo+ID4gKyNkZWZpbmUgTUFY MzEzMzVfVFMwX01JTgkJCTB4NDINCj4gPiArI2RlZmluZSBNQVgzMTMzNV9UUzBfSE9VUgkJCTB4 NDMNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9UUzBfREFURQkJCTB4NDQNCj4gPiArI2RlZmluZSBN QVgzMTMzNV9UUzBfTU9OVEgJCQkweDQ1DQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFMwX1lFQVIJ CQkweDQ2DQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFMwX0ZMQUdTCQkJMHg0Nw0KPiA+ICsjZGVm aW5lIE1BWDMxMzM1X1RTMV9TRUNfMV8xMjgJCQkweDQ4DQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVf VFMxX1NFQwkJCTB4NDkNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9UUzFfTUlOCQkJMHg0QQ0KPiA+ ICsjZGVmaW5lIE1BWDMxMzM1X1RTMV9IT1VSCQkJMHg0Qg0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1 X1RTMV9EQVRFCQkJMHg0Qw0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RTMV9NT05USAkJCTB4NEQN Cj4gPiArI2RlZmluZSBNQVgzMTMzNV9UUzFfWUVBUgkJCTB4NEUNCj4gPiArI2RlZmluZSBNQVgz MTMzNV9UUzFfRkxBR1MJCQkweDRGDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFMyX1NFQ18xXzEy OAkJCTB4NTANCj4gPiArI2RlZmluZSBNQVgzMTMzNV9UUzJfU0VDCQkJMHg1MQ0KPiA+ICsjZGVm aW5lIE1BWDMxMzM1X1RTMl9NSU4JCQkweDUyDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFMyX0hP VVIJCQkweDUzDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFMyX0RBVEUJCQkweDU0DQo+ID4gKyNk ZWZpbmUgTUFYMzEzMzVfVFMyX01PTlRICQkJMHg1NQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RT Ml9ZRUFSCQkJMHg1Ng0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RTMl9GTEFHUwkJCTB4NTcNCj4g PiArI2RlZmluZSBNQVgzMTMzNV9UUzNfU0VDXzFfMTI4CQkJMHg1OA0KPiA+ICsjZGVmaW5lIE1B WDMxMzM1X1RTM19TRUMJCQkweDU5DQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFMzX01JTgkJCTB4 NUENCj4gPiArI2RlZmluZSBNQVgzMTMzNV9UUzNfSE9VUgkJCTB4NUINCj4gPiArI2RlZmluZSBN QVgzMTMzNV9UUzNfREFURQkJCTB4NUMNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9UUzNfTU9OVEgJ CQkweDVEDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFMzX1lFQVIJCQkweDVFDQo+ID4gKyNkZWZp bmUgTUFYMzEzMzVfVFMzX0ZMQUdTCQkJMHg1Rg0KPiA+ICsNCj4gPiArLyogTUFYMzEzMzVfU1RB VFVTMSBCaXQgRGVmaW5pdGlvbnMgKi8NCj4gPiArI2RlZmluZSBNQVgzMTMzNV9TVEFUVVMxX1BT REVDVAkJCUJJVCg3KQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1NUQVRVUzFfT1NGCQkJQklUKDYp DQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfU1RBVFVTMV9QRkFJTAkJCUJJVCg1KQ0KPiA+ICsjZGVm aW5lIE1BWDMxMzM1X1NUQVRVUzFfVkJBVExPVwkJQklUKDQpDQo+ID4gKyNkZWZpbmUgTUFYMzEz MzVfU1RBVFVTMV9ESUYJCQlCSVQoMykNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9TVEFUVVMxX1RJ RgkJCUJJVCgyKQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1NUQVRVUzFfQTJGCQkJQklUKDEpDQo+ ID4gKyNkZWZpbmUgTUFYMzEzMzVfU1RBVFVTMV9BMUYJCQlCSVQoMCkNCj4gPiArDQo+ID4gKy8q IE1BWDMxMzM1X0lOVF9FTjEgQml0IERlZmluaXRpb25zICovDQo+ID4gKyNkZWZpbmUgTUFYMzEz MzVfSU5UX0VOMV9ET1NGCQkJQklUKDYpDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfSU5UX0VOMV9Q RkFJTEUJCQlCSVQoNSkNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9JTlRfRU4xX1ZCQVRMT1dFCQlC SVQoNCkNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9JTlRfRU4xX0RJRQkJCUJJVCgzKQ0KPiA+ICsj ZGVmaW5lIE1BWDMxMzM1X0lOVF9FTjFfVElFCQkJQklUKDIpDQo+ID4gKyNkZWZpbmUgTUFYMzEz MzVfSU5UX0VOMV9BMklFCQkJQklUKDEpDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfSU5UX0VOMV9B MUlFCQkJQklUKDApDQo+ID4gKw0KPiA+ICsvKiBNQVgzMTMzNV9TVEFUVVMyIEJpdCBEZWZpbml0 aW9ucyAqLw0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1NUQVRVUzJfVEVNUF9SRFkJCUJJVCgyKQ0K PiA+ICsjZGVmaW5lIE1BWDMxMzM1X1NUQVRVUzJfT1RGCQkJQklUKDEpDQo+ID4gKyNkZWZpbmUg TUFYMzEzMzVfU1RBVFVTMl9VVEYJCQlCSVQoMCkNCj4gPiArDQo+ID4gKy8qIE1BWDMxMzM1X0lO VF9FTjIgQml0IERlZmluaXRpb25zICovDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfSU5UX0VOMl9U RU1QX1JEWV9FTgkJQklUKDIpDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfSU5UX0VOMl9PVElFCQkJ QklUKDEpDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfSU5UX0VOMl9VVElFCQkJQklUKDApDQo+ID4g Kw0KPiA+ICsvKiBNQVgzMTMzNV9SVENfUkVTRVQgQml0IERlZmluaXRpb25zICovDQo+ID4gKyNk ZWZpbmUgTUFYMzEzMzVfUlRDX1JFU0VUX1NXUlNUCQlCSVQoMCkNCj4gPiArDQo+ID4gKy8qIE1B WDMxMzM1X1JUQ19DT05GSUcxIEJpdCBEZWZpbml0aW9ucyAqLw0KPiA+ICsjZGVmaW5lIE1BWDMx MzM1X1JUQ19DT05GSUcxX0VOX0lPCQlCSVQoNikNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9SVENf Q09ORklHMV9BMUFDCQlHRU5NQVNLKDUsIDQpDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfUlRDX0NP TkZJRzFfRElQCQlCSVQoMykNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9SVENfQ09ORklHMV9JMkNf VElNRU9VVAlCSVQoMSkNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9SVENfQ09ORklHMV9FTl9PU0MJ CUJJVCgwKQ0KPiA+ICsNCj4gPiArLyogTUFYMzEzMzVfUlRDX0NPTkZJRzIgQml0IERlZmluaXRp b25zICovDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfUlRDX0NPTkZJRzJfRU5DTEtPCQlCSVQoMikN Cj4gPiArI2RlZmluZSBNQVgzMTMzNV9SVENfQ09ORklHMl9DTEtPX0haCQlHRU5NQVNLKDEsDQo+ IDApDQo+ID4gKw0KPiA+ICsvKiBNQVgzMTMzNV9USU1FU1RBTVBfQ09ORklHIEJpdCBEZWZpbml0 aW9ucyAqLw0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RJTUVTVEFNUF9DT05GSUdfVFNWTE9XCUJJ VCg1KQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RJTUVTVEFNUF9DT05GSUdfVFNQV00JCUJJVCg0 KQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RJTUVTVEFNUF9DT05GSUdfVFNESU4JCUJJVCgzKQ0K PiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RJTUVTVEFNUF9DT05GSUdfVFNPVwkJQklUKDIpDQo+ID4g KyNkZWZpbmUgTUFYMzEzMzVfVElNRVNUQU1QX0NPTkZJR19UU1IJCUJJVCgxKQ0KPiA+ICsjZGVm aW5lIE1BWDMxMzM1X1RJTUVTVEFNUF9DT05GSUdfVFNFCQlCSVQoMCkNCj4gPiArDQo+ID4gKy8q IE1BWDMxMzM1X1RJTUVSX0NPTkZJRyBCaXQgRGVmaW5pdGlvbnMgKi8NCj4gPiArI2RlZmluZSBN QVgzMTMzNV9USU1FUl9DT05GSUdfVEUJCUJJVCg0KQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RJ TUVSX0NPTkZJR19UUEFVU0UJCUJJVCgzKQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RJTUVSX0NP TkZJR19UUlBUCQlCSVQoMikNCj4gPiArI2RlZmluZSBNQVgzMTMzNV9USU1FUl9DT05GSUdfVEZT CQlHRU5NQVNLKDEsIDApDQo+ID4gKw0KPiA+ICsvKiBNQVgzMTMzNV9IT1VSUyBCaXQgRGVmaW5p dGlvbnMgKi8NCj4gPiArI2RlZmluZSBNQVgzMTMzNV9IT1VSU19GXzI0XzEyCQkJQklUKDYpDQo+ ID4gKyNkZWZpbmUgTUFYMzEzMzVfSE9VUlNfSFJfMjBfQU1fUE0JCUJJVCg1KQ0KPiA+ICsNCj4g PiArLyogTUFYMzEzMzVfTU9OVEggQml0IERlZmluaXRpb25zICovDQo+ID4gKyNkZWZpbmUgTUFY MzEzMzVfTU9OVEhfQ0VOVFVSWQkJCUJJVCg3KQ0KPiA+ICsNCj4gPiArLyogTUFYMzEzMzVfUFdS X01HTVQgQml0IERlZmluaXRpb25zICovDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfUFdSX01HTVRf UEZWVAkJCUJJVCgwKQ0KPiA+ICsNCj4gPiArLyogTUFYMzEzMzVfVFJJQ0tMRV9SRUcgQml0IERl ZmluaXRpb25zICovDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFJJQ0tMRV9SRUdfVFJJQ0tMRQkJ R0VOTUFTSygzLCAxKQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RSSUNLTEVfUkVHX0VOX1RSSUNL TEUJCUJJVCgwKQ0KPiA+ICsNCj4gPiArLyogTUFYMzEzMzVfVFNfQ09ORklHIEJpdCBEZWZpbml0 aW9ucyAqLw0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RTX0NPTkZJR19BVVRPCQkJQklUKDQpDQo+ ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFNfQ09ORklHX0NPTlZFUlRfVAkJQklUKDMpDQo+ID4gKyNk ZWZpbmUgTUFYMzEzMzVfVFNfQ09ORklHX1RTSU5UCQlHRU5NQVNLKDIsIDApDQo+ID4gKw0KPiA+ ICsvKiBNQVgzMTMzNV9UU19GTEFHUyBCaXQgRGVmaW5pdGlvbnMgKi8NCj4gPiArI2RlZmluZSBN QVgzMTMzNV9UU19GTEFHU19WTE9XRgkJCUJJVCgzKQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RT X0ZMQUdTX1ZCQVRGCQkJQklUKDIpDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVFNfRkxBR1NfVkND RgkJCUJJVCgxKQ0KPiA+ICsjZGVmaW5lIE1BWDMxMzM1X1RTX0ZMQUdTX0RJTkYJCQlCSVQoMCkN Cj4gPiArDQo+ID4gKy8qIE1BWDMxMzM1IE1pc2NlbGxhbmVvdXMgRGVmaW5pdGlvbnMgKi8NCj4g PiArI2RlZmluZSBNQVgzMTMzNV9TVEFUVVMxX0RFRkFVTFQJCTB4NDANCj4gPiArI2RlZmluZSBN QVgzMTMzNV9SQU1fU0laRQkJCTMyDQo+ID4gKyNkZWZpbmUgTUFYMzEzMzVfVElNRV9TSVpFCQkJ MHgwNw0KPiA+ICsNCj4gPiArI2RlZmluZSBjbGtfaHdfdG9fbWF4MzEzMzUoX2h3KSBjb250YWlu ZXJfb2YoX2h3LCBzdHJ1Y3QNCj4gbWF4MzEzMzVfZGF0YSwgY2xrb3V0KQ0KPiA+ICsNCj4gPiAr c3RydWN0IG1heDMxMzM1X2RhdGEgew0KPiA+ICsJc3RydWN0IHJlZ21hcCAqcmVnbWFwOw0KPiA+ ICsJc3RydWN0IHJ0Y19kZXZpY2UgKnJ0YzsNCj4gPiArCXN0cnVjdCBjbGtfaHcgY2xrb3V0Ow0K PiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IGludCBtYXgzMTMzNV9jbGtvdXRfZnJl cVtdID0geyAxLCA2NCwgMTAyNCwgMzI3NjggfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCB1 MTYgbWF4MzEzMzVfdHJpY2tsZV9yZXNpc3RvcnNbXSA9IHszMDAwLCA2MDAwLCAxMTAwMH07DQo+ ID4gKw0KPiA+ICtzdGF0aWMgYm9vbCBtYXgzMTMzNV92b2xhdGlsZV9yZWcoc3RydWN0IGRldmlj ZSAqZGV2LCB1bnNpZ25lZCBpbnQgcmVnKQ0KPiA+ICt7DQo+ID4gKwkvKiB0aW1lIGtlZXBpbmcg cmVnaXN0ZXJzICovDQo+ID4gKwlpZiAocmVnID49IE1BWDMxMzM1X1NFQ09ORFMgJiYNCj4gPiAr CSAgICByZWcgPCBNQVgzMTMzNV9TRUNPTkRTICsgTUFYMzEzMzVfVElNRV9TSVpFKQ0KPiA+ICsJ CXJldHVybiB0cnVlOw0KPiA+ICsNCj4gPiArCS8qIGludGVycnVwdCBzdGF0dXMgcmVnaXN0ZXIg Ki8NCj4gPiArCWlmIChyZWcgPT0gTUFYMzEzMzVfSU5UX0VOMV9BMUlFKQ0KPiA+ICsJCXJldHVy biB0cnVlOw0KPiA+ICsNCj4gPiArCS8qIHRlbXBlcmF0dXJlIHJlZ2lzdGVycyAqLw0KPiA+ICsJ aWYgKHJlZyA9PSBNQVgzMTMzNV9URU1QX0RBVEFfTVNCIHx8DQo+IE1BWDMxMzM1X1RFTVBfREFU QV9MU0IpDQo+ID4gKwkJcmV0dXJuIHRydWU7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyByZWdtYXBfY29uZmlnID0gew0KPiA+ICsJLnJlZ19i aXRzID0gOCwNCj4gPiArCS52YWxfYml0cyA9IDgsDQo+ID4gKwkubWF4X3JlZ2lzdGVyID0gMHg1 RiwNCj4gPiArCS52b2xhdGlsZV9yZWcgPSBtYXgzMTMzNV92b2xhdGlsZV9yZWcsDQo+ID4gK307 DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG1heDMxMzM1X2dldF9ob3VyKHU4IGhvdXJfcmVnKQ0K PiA+ICt7DQo+ID4gKwlpbnQgaG91cjsNCj4gPiArDQo+ID4gKwkvKiAyNEhyIG1vZGUgKi8NCj4g PiArCWlmICghRklFTERfR0VUKE1BWDMxMzM1X0hPVVJTX0ZfMjRfMTIsIGhvdXJfcmVnKSkNCj4g PiArCQlyZXR1cm4gYmNkMmJpbihob3VyX3JlZyAmIDB4M2YpOw0KPiA+ICsNCj4gPiArCS8qIDEy SHIgbW9kZSAqLw0KPiA+ICsJaG91ciA9IGJjZDJiaW4oaG91cl9yZWcgJiAweDFmKTsNCj4gPiAr CWlmIChob3VyID09IDEyKQ0KPiA+ICsJCWhvdXIgPSAwOw0KPiA+ICsNCj4gPiArCWlmIChGSUVM RF9HRVQoTUFYMzEzMzVfSE9VUlNfSFJfMjBfQU1fUE0sIGhvdXJfcmVnKSkNCj4gPiArCQlob3Vy ICs9IDEyOw0KPiA+ICsNCj4gPiArCXJldHVybiBob3VyOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgaW50IG1heDMxMzM1X3JlYWRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBy dGNfdGltZSAqdG0pDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtYXgzMTMzNV9kYXRhICptYXgzMTMz NSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsJdTggZGF0ZVs3XTsNCj4gPiArCWludCBy ZXQ7DQo+ID4gKw0KPiA+ICsJcmV0ID0gcmVnbWFwX2J1bGtfcmVhZChtYXgzMTMzNS0+cmVnbWFw LCBNQVgzMTMzNV9TRUNPTkRTLA0KPiBkYXRlLA0KPiA+ICsJCQkgICAgICAgc2l6ZW9mKGRhdGUp KTsNCj4gPiArCWlmIChyZXQpDQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiArDQo+ID4gKwl0bS0+ dG1fc2VjICA9IGJjZDJiaW4oZGF0ZVswXSAmIDB4N2YpOw0KPiA+ICsJdG0tPnRtX21pbiAgPSBi Y2QyYmluKGRhdGVbMV0gJiAweDdmKTsNCj4gPiArCXRtLT50bV9ob3VyID0gbWF4MzEzMzVfZ2V0 X2hvdXIoZGF0ZVsyXSk7DQo+ID4gKwl0bS0+dG1fd2RheSA9IGJjZDJiaW4oZGF0ZVszXSAmIDB4 NykgLSAxOw0KPiA+ICsJdG0tPnRtX21kYXkgPSBiY2QyYmluKGRhdGVbNF0gJiAweDNmKTsNCj4g PiArCXRtLT50bV9tb24gID0gYmNkMmJpbihkYXRlWzVdICYgMHgxZikgLSAxOw0KPiA+ICsJdG0t PnRtX3llYXIgPSBiY2QyYmluKGRhdGVbNl0pICsgMTAwOw0KPiA+ICsNCj4gPiArCWlmIChGSUVM RF9HRVQoTUFYMzEzMzVfTU9OVEhfQ0VOVFVSWSwgZGF0ZVs1XSkpDQo+ID4gKwkJdG0tPnRtX3ll YXIgKz0gMTAwOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgaW50IG1heDMxMzM1X3NldF90aW1lKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0 Y190aW1lICp0bSkNCj4gPiArew0KPiA+ICsJc3RydWN0IG1heDMxMzM1X2RhdGEgKm1heDMxMzM1 ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKwl1OCBkYXRlWzddOw0KPiA+ICsNCj4gPiAr CWRhdGVbMF0gPSBiaW4yYmNkKHRtLT50bV9zZWMpOw0KPiA+ICsJZGF0ZVsxXSA9IGJpbjJiY2Qo dG0tPnRtX21pbik7DQo+ID4gKwlkYXRlWzJdID0gYmluMmJjZCh0bS0+dG1faG91cik7DQo+ID4g KwlkYXRlWzNdID0gYmluMmJjZCh0bS0+dG1fd2RheSArIDEpOw0KPiA+ICsJZGF0ZVs0XSA9IGJp bjJiY2QodG0tPnRtX21kYXkpOw0KPiA+ICsJZGF0ZVs1XSA9IGJpbjJiY2QodG0tPnRtX21vbiAr IDEpOw0KPiA+ICsJZGF0ZVs2XSA9IGJpbjJiY2QodG0tPnRtX3llYXIgJSAxMDApOw0KPiA+ICsN Cj4gPiArCWlmICh0bS0+dG1feWVhciA+PSAyMDApDQo+ID4gKwkJZGF0ZVs1XSB8PSBGSUVMRF9Q UkVQKE1BWDMxMzM1X01PTlRIX0NFTlRVUlksIDEpOw0KPiA+ICsNCj4gPiArCXJldHVybiByZWdt YXBfYnVsa193cml0ZShtYXgzMTMzNS0+cmVnbWFwLA0KPiBNQVgzMTMzNV9TRUNPTkRTLCBkYXRl LA0KPiA+ICsJCQkJIHNpemVvZihkYXRlKSk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBp bnQgbWF4MzEzMzVfcmVhZF9vZmZzZXQoc3RydWN0IGRldmljZSAqZGV2LCBsb25nICpvZmZzZXQp DQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtYXgzMTMzNV9kYXRhICptYXgzMTMzNSA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOw0KPiA+ICsJdTMyIHZhbHVlOw0KPiA+ICsJaW50IHJldDsNCj4gPiArDQo+ ID4gKwlyZXQgPSByZWdtYXBfcmVhZChtYXgzMTMzNS0+cmVnbWFwLCBNQVgzMTMzNV9BR0lOR19P RkZTRVQsDQo+ICZ2YWx1ZSk7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJCXJldHVybiByZXQ7DQo+ ID4gKw0KPiA+ICsJKm9mZnNldCA9IHZhbHVlOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG1heDMxMzM1X3NldF9vZmZzZXQoc3RydWN0IGRl dmljZSAqZGV2LCBsb25nIG9mZnNldCkNCj4gPiArew0KPiA+ICsJc3RydWN0IG1heDMxMzM1X2Rh dGEgKm1heDMxMzM1ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKw0KPiA+ICsJcmV0dXJu IHJlZ21hcF93cml0ZShtYXgzMTMzNS0+cmVnbWFwLA0KPiBNQVgzMTMzNV9BR0lOR19PRkZTRVQs IG9mZnNldCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbWF4MzEzMzVfcmVhZF9h bGFybShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfd2thbHJtDQo+ICphbHJtKQ0KPiA+ ICt7DQo+ID4gKwlzdHJ1Y3QgbWF4MzEzMzVfZGF0YSAqbWF4MzEzMzUgPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsNCj4gPiArCXN0cnVjdCBtdXRleCAqbG9jayA9ICZtYXgzMTMzNS0+cnRjLT5vcHNf bG9jazsNCj4gPiArCWludCByZXQsIGN0cmwsIHN0YXR1czsNCj4gPiArCXN0cnVjdCBydGNfdGlt ZSB0aW1lOw0KPiA+ICsJdTggcmVnc1s2XTsNCj4gPiArDQo+ID4gKwltdXRleF9sb2NrKGxvY2sp Ow0KPiA+ICsNCj4gPiArCXJldCA9IHJlZ21hcF9idWxrX3JlYWQobWF4MzEzMzUtPnJlZ21hcCwN Cj4gTUFYMzEzMzVfQUxNMV9TRUMsIHJlZ3MsDQo+ID4gKwkJCSAgICAgICBzaXplb2YocmVncykp Ow0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlnb3RvIGV4aXQ7DQo+ID4gKw0KPiA+ICsJYWxybS0+ dGltZS50bV9zZWMgID0gYmNkMmJpbihyZWdzWzBdICYgMHg3Zik7DQo+ID4gKwlhbHJtLT50aW1l LnRtX21pbiAgPSBiY2QyYmluKHJlZ3NbMV0gJiAweDdmKTsNCj4gPiArCWFscm0tPnRpbWUudG1f aG91ciA9IGJjZDJiaW4ocmVnc1syXSAmIDB4M2YpOw0KPiA+ICsJYWxybS0+dGltZS50bV9tZGF5 ID0gYmNkMmJpbihyZWdzWzNdICYgMHgzZik7DQo+ID4gKwlhbHJtLT50aW1lLnRtX21vbiAgPSBi Y2QyYmluKHJlZ3NbNF0gJiAweDFmKSAtIDE7DQo+ID4gKwlhbHJtLT50aW1lLnRtX3llYXIgPSBi Y2QyYmluKHJlZ3NbNV0pICsgMTAwOw0KPiA+ICsNCj4gPiArCXJldCA9IG1heDMxMzM1X3JlYWRf dGltZShkZXYsICZ0aW1lKTsNCj4gPiArCWlmIChyZXQpDQo+ID4gKwkJZ290byBleGl0Ow0KPiA+ ICsNCj4gPiArCWlmICh0aW1lLnRtX3llYXIgPj0gMjAwKQ0KPiA+ICsJCWFscm0tPnRpbWUudG1f eWVhciArPSAxMDA7DQo+ID4gKw0KPiA+ICsJcmV0ID0gcmVnbWFwX3JlYWQobWF4MzEzMzUtPnJl Z21hcCwgTUFYMzEzMzVfSU5UX0VOMSwgJmN0cmwpOw0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQln b3RvIGV4aXQ7DQo+ID4gKw0KPiA+ICsJcmV0ID0gcmVnbWFwX3JlYWQobWF4MzEzMzUtPnJlZ21h cCwgTUFYMzEzMzVfU1RBVFVTMSwNCj4gJnN0YXR1cyk7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJ CWdvdG8gZXhpdDsNCj4gPiArDQo+ID4gKwlhbHJtLT5lbmFibGVkID0gRklFTERfR0VUKE1BWDMx MzM1X0lOVF9FTjFfQTFJRSwgY3RybCk7DQo+ID4gKwlhbHJtLT5wZW5kaW5nID0gRklFTERfR0VU KE1BWDMxMzM1X1NUQVRVUzFfQTFGLCBzdGF0dXMpOw0KPiA+ICsNCj4gPiArZXhpdDoNCj4gPiAr CW11dGV4X3VubG9jayhsb2NrKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtzdGF0aWMgaW50IG1heDMxMzM1X3NldF9hbGFybShzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBydGNfd2thbHJtDQo+ICphbHJtKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbWF4 MzEzMzVfZGF0YSAqbWF4MzEzMzUgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArCXN0cnVj dCBtdXRleCAqbG9jayA9ICZtYXgzMTMzNS0+cnRjLT5vcHNfbG9jazsNCj4gPiArCXVuc2lnbmVk IGludCByZWc7DQo+ID4gKwl1OCByZWdzWzZdOw0KPiA+ICsJaW50IHJldDsNCj4gPiArDQo+ID4g KwlyZWdzWzBdID0gYmluMmJjZChhbHJtLT50aW1lLnRtX3NlYyk7DQo+ID4gKwlyZWdzWzFdID0g YmluMmJjZChhbHJtLT50aW1lLnRtX21pbik7DQo+ID4gKwlyZWdzWzJdID0gYmluMmJjZChhbHJt LT50aW1lLnRtX2hvdXIpOw0KPiA+ICsJcmVnc1szXSA9IGJpbjJiY2QoYWxybS0+dGltZS50bV9t ZGF5KTsNCj4gPiArCXJlZ3NbNF0gPSBiaW4yYmNkKGFscm0tPnRpbWUudG1fbW9uICsgMSk7DQo+ ID4gKwlyZWdzWzVdID0gYmluMmJjZChhbHJtLT50aW1lLnRtX3llYXIgJSAxMDApOw0KPiA+ICsN Cj4gPiArCW11dGV4X2xvY2sobG9jayk7DQo+ID4gKw0KPiA+ICsJcmV0ID0gcmVnbWFwX2J1bGtf d3JpdGUobWF4MzEzMzUtPnJlZ21hcCwNCj4gTUFYMzEzMzVfQUxNMV9TRUMsDQo+ID4gKwkJCQly ZWdzLCBzaXplb2YocmVncykpOw0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlnb3RvIGV4aXQ7DQo+ ID4gKw0KPiA+ICsJcmVnID0gRklFTERfUFJFUChNQVgzMTMzNV9JTlRfRU4xX0ExSUUsIGFscm0t PmVuYWJsZWQpOw0KPiA+ICsJcmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKG1heDMxMzM1LT5yZWdt YXAsDQo+IE1BWDMxMzM1X0lOVF9FTjEsDQo+ID4gKwkJCQkgTUFYMzEzMzVfSU5UX0VOMV9BMUlF LCByZWcpOw0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlnb3RvIGV4aXQ7DQo+ID4gKw0KPiA+ICsJ cmV0ID0gcmVnbWFwX3VwZGF0ZV9iaXRzKG1heDMxMzM1LT5yZWdtYXAsDQo+IE1BWDMxMzM1X1NU QVRVUzEsDQo+ID4gKwkJCQkgTUFYMzEzMzVfU1RBVFVTMV9BMUYsIDApOw0KPiA+ICsNCj4gPiAr ZXhpdDoNCj4gPiArCW11dGV4X3VubG9jayhsb2NrKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcmV0 Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG1heDMxMzM1X2FsYXJtX2lycV9lbmFi bGUoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQNCj4gZW5hYmxlZCkNCj4gPiArew0K PiA+ICsJc3RydWN0IG1heDMxMzM1X2RhdGEgKm1heDMxMzM1ID0gZGV2X2dldF9kcnZkYXRhKGRl dik7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0cyhtYXgzMTMzNS0+cmVn bWFwLA0KPiBNQVgzMTMzNV9JTlRfRU4xLA0KPiA+ICsJCQkJICBNQVgzMTMzNV9JTlRfRU4xX0Ex SUUsIGVuYWJsZWQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaXJxcmV0dXJuX3QgbWF4 MzEzMzVfaGFuZGxlX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpDQo+ID4gK3sNCj4gPiArCXN0 cnVjdCBtYXgzMTMzNV9kYXRhICptYXgzMTMzNSA9IGRldl9pZDsNCj4gPiArCXN0cnVjdCBtdXRl eCAqbG9jayA9ICZtYXgzMTMzNS0+cnRjLT5vcHNfbG9jazsNCj4gPiArCWludCByZXQsIHN0YXR1 czsNCj4gPiArDQo+ID4gKwltdXRleF9sb2NrKGxvY2spOw0KPiA+ICsNCj4gPiArCXJldCA9IHJl Z21hcF9yZWFkKG1heDMxMzM1LT5yZWdtYXAsIE1BWDMxMzM1X1NUQVRVUzEsDQo+ICZzdGF0dXMp Ow0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlnb3RvIGV4aXQ7DQo+ID4gKw0KPiA+ICsJaWYgKEZJ RUxEX0dFVChNQVgzMTMzNV9TVEFUVVMxX0ExRiwgc3RhdHVzKSkgew0KPiA+ICsJCXJldCA9IHJl Z21hcF91cGRhdGVfYml0cyhtYXgzMTMzNS0+cmVnbWFwLA0KPiBNQVgzMTMzNV9TVEFUVVMxLA0K PiA+ICsJCQkJCSBNQVgzMTMzNV9TVEFUVVMxX0ExRiwgMCk7DQo+ID4gKwkJaWYgKHJldCkNCj4g PiArCQkJZ290byBleGl0Ow0KPiA+ICsNCj4gPiArCQlydGNfdXBkYXRlX2lycShtYXgzMTMzNS0+ cnRjLCAxLCBSVENfQUYgfCBSVENfSVJRRik7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICtleGl0Og0K PiA+ICsJbXV0ZXhfdW5sb2NrKGxvY2spOw0KPiA+ICsNCj4gPiArCXJldHVybiBJUlFfSEFORExF RDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBydGNfY2xhc3Nfb3Bz IG1heDMxMzM1X3J0Y19vcHMgPSB7DQo+ID4gKwkucmVhZF90aW1lID0gbWF4MzEzMzVfcmVhZF90 aW1lLA0KPiA+ICsJLnNldF90aW1lID0gbWF4MzEzMzVfc2V0X3RpbWUsDQo+ID4gKwkucmVhZF9v ZmZzZXQgPSBtYXgzMTMzNV9yZWFkX29mZnNldCwNCj4gPiArCS5zZXRfb2Zmc2V0ID0gbWF4MzEz MzVfc2V0X29mZnNldCwNCj4gPiArCS5yZWFkX2FsYXJtID0gbWF4MzEzMzVfcmVhZF9hbGFybSwN Cj4gPiArCS5zZXRfYWxhcm0gPSBtYXgzMTMzNV9zZXRfYWxhcm0sDQo+ID4gKwkuYWxhcm1faXJx X2VuYWJsZSA9IG1heDMxMzM1X2FsYXJtX2lycV9lbmFibGUsDQo+ID4gK307DQo+ID4gKw0KPiA+ ICtzdGF0aWMgaW50IG1heDMxMzM1X3RyaWNrbGVfY2hhcmdlcl9zZXR1cChzdHJ1Y3QgZGV2aWNl ICpkZXYsDQo+ID4gKwkJCQkJICBzdHJ1Y3QgbWF4MzEzMzVfZGF0YSAqbWF4MzEzMzUpDQo+ID4g K3sNCj4gPiArCXUzMiBvaG1zOw0KPiA+ICsJYm9vbCBkaW9kZSA9IGZhbHNlOw0KPiA+ICsJaW50 IGk7DQo+ID4gKw0KPiA+ICsJaWYgKGRldmljZV9wcm9wZXJ0eV9yZWFkX3UzMihkZXYsICJ0cmlj a2xlLXJlc2lzdG9yLW9obXMiLCAmb2htcykpDQo+ID4gKwkJcmV0dXJuIDA7DQo+ID4gKw0KPiA+ ICsJaWYgKGRldmljZV9wcm9wZXJ0eV9yZWFkX2Jvb2woZGV2LCAidHJpY2tsZS1kaW9kZS1lbmFi bGUiKSkNCj4gPiArCQlkaW9kZSA9IHRydWU7DQo+ID4gKw0KPiANCj4gCWRpb2RlID0gZGV2aWNl X3Byb3BlcnR5X3JlYWRfYm9vbChkZXYsICJ0cmlja2xlLWRpb2RlLWVuYWJsZSIpOw0KPiANCj4g PiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKG1heDMxMzM1X3RyaWNrbGVfcmVzaXN0b3Jz KTsgaSsrKQ0KPiA+ICsJCWlmIChvaG1zID09IG1heDMxMzM1X3RyaWNrbGVfcmVzaXN0b3JzW2ld KQ0KPiA+ICsJCQlicmVhazsNCj4gPiArDQo+ID4gKwlpZiAoaSA+PSBBUlJBWV9TSVpFKG1heDMx MzM1X3RyaWNrbGVfcmVzaXN0b3JzKSkgew0KPiA+ICsJCWRldl9lcnJfcHJvYmUoZGV2LCAtRUlO VkFMLCAiaW52YWxpZCB0cmlja2xlIHJlc2lzdG9yDQo+IHZhbHVlXG4iKTsNCj4gPiArDQo+IA0K PiBTaG91bGQgdGhpcyByZXR1cm4gYSBoYXJkIGVycm9yID8gQWZ0ZXIgYWxsLCBpdCBpcyBhIGRl dmljZXRyZWUgcHJvYmxlbQ0KPiByZXN1bHRpbmcgaW4gYSBmYWlsdXJlIHRvIGVuYWJsZSB0cmlj a2xlIGNoYXJnaW5nIGV2ZW4gdGhvdWdoIHRyaWNrZQ0KPiBjaGFyZ2luZyBpcyByZXF1ZXN0ZWQu DQo+IA0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCWlmIChkaW9kZSkN Cj4gPiArCQlpID0gaSArIDQ7DQo+ID4gKwllbHNlDQo+ID4gKwkJaSA9IGkgKyAxOw0KPiA+ICsN Cj4gPiArCXJldHVybiByZWdtYXBfd3JpdGUobWF4MzEzMzUtPnJlZ21hcCwgTUFYMzEzMzVfVFJJ Q0tMRV9SRUcsDQo+ID4gKwkJCSAgICBGSUVMRF9QUkVQKE1BWDMxMzM1X1RSSUNLTEVfUkVHX1RS SUNLTEUsIGkpIHwNCj4gPiArCQkJCSAgICAgICBNQVgzMTMzNV9UUklDS0xFX1JFR19FTl9UUklD S0xFKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHVuc2lnbmVkIGxvbmcgbWF4MzEzMzVf Y2xrb3V0X3JlY2FsY19yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LA0KPiA+ICsJCQkJCQkgdW5zaWdu ZWQgbG9uZyBwYXJlbnRfcmF0ZSkNCj4gPiArew0KPiA+ICsJc3RydWN0IG1heDMxMzM1X2RhdGEg Km1heDMxMzM1ID0gY2xrX2h3X3RvX21heDMxMzM1KGh3KTsNCj4gPiArCXVuc2lnbmVkIGludCBm cmVxX21hc2s7DQo+ID4gKwl1bnNpZ25lZCBpbnQgcmVnOw0KPiA+ICsJaW50IHJldDsNCj4gPiAr DQo+ID4gKwlyZXQgPSByZWdtYXBfcmVhZChtYXgzMTMzNS0+cmVnbWFwLCBNQVgzMTMzNV9SVENf Q09ORklHMiwNCj4gJnJlZyk7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJCXJldHVybiAwOw0KPiA+ ICsNCj4gPiArCWZyZXFfbWFzayA9DQo+IF9fcm91bmR1cF9wb3dfb2ZfdHdvKEFSUkFZX1NJWkUo bWF4MzEzMzVfY2xrb3V0X2ZyZXEpKSAtIDE7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIG1heDMxMzM1 X2Nsa291dF9mcmVxW3JlZyAmIGZyZXFfbWFza107DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRp YyBsb25nIG1heDMxMzM1X2Nsa291dF9yb3VuZF9yYXRlKHN0cnVjdCBjbGtfaHcgKmh3LCB1bnNp Z25lZA0KPiBsb25nIHJhdGUsDQo+ID4gKwkJCQkgICAgICAgdW5zaWduZWQgbG9uZyAqcHJhdGUp DQo+ID4gK3sNCj4gPiArCWludCBpbmRleDsNCj4gPiArDQo+ID4gKwlpbmRleCA9IGZpbmRfY2xv c2VzdChyYXRlLCBtYXgzMTMzNV9jbGtvdXRfZnJlcSwNCj4gPiArCQkJICAgICBBUlJBWV9TSVpF KG1heDMxMzM1X2Nsa291dF9mcmVxKSk7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIG1heDMxMzM1X2Ns a291dF9mcmVxW2luZGV4XTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBtYXgzMTMz NV9jbGtvdXRfc2V0X3JhdGUoc3RydWN0IGNsa19odyAqaHcsIHVuc2lnbmVkIGxvbmcNCj4gcmF0 ZSwNCj4gPiArCQkJCSAgICB1bnNpZ25lZCBsb25nIHBhcmVudF9yYXRlKQ0KPiA+ICt7DQo+ID4g KwlzdHJ1Y3QgbWF4MzEzMzVfZGF0YSAqbWF4MzEzMzUgPSBjbGtfaHdfdG9fbWF4MzEzMzUoaHcp Ow0KPiA+ICsJdW5zaWduZWQgaW50IGZyZXFfbWFzazsNCj4gPiArCWludCBpbmRleDsNCj4gPiAr DQo+ID4gKwlpbmRleCA9IGZpbmRfY2xvc2VzdChyYXRlLCBtYXgzMTMzNV9jbGtvdXRfZnJlcSwN Cj4gPiArCQkJICAgICBBUlJBWV9TSVpFKG1heDMxMzM1X2Nsa291dF9mcmVxKSk7DQo+ID4gKwlm cmVxX21hc2sgPQ0KPiBfX3JvdW5kdXBfcG93X29mX3R3byhBUlJBWV9TSVpFKG1heDMxMzM1X2Ns a291dF9mcmVxKSkgLSAxOw0KPiA+ICsNCj4gPiArCXJldHVybiByZWdtYXBfdXBkYXRlX2JpdHMo bWF4MzEzMzUtPnJlZ21hcCwNCj4gTUFYMzEzMzVfUlRDX0NPTkZJRzIsDQo+ID4gKwkJCQkgIGZy ZXFfbWFzaywgaW5kZXgpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG1heDMxMzM1 X2Nsa291dF9lbmFibGUoc3RydWN0IGNsa19odyAqaHcpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBt YXgzMTMzNV9kYXRhICptYXgzMTMzNSA9IGNsa19od190b19tYXgzMTMzNShodyk7DQo+ID4gKw0K PiA+ICsJcmV0dXJuIHJlZ21hcF9zZXRfYml0cyhtYXgzMTMzNS0+cmVnbWFwLA0KPiBNQVgzMTMz NV9SVENfQ09ORklHMiwNCj4gPiArCQkJICAgICAgIE1BWDMxMzM1X1JUQ19DT05GSUcyX0VOQ0xL Tyk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIG1heDMxMzM1X2Nsa291dF9kaXNh YmxlKHN0cnVjdCBjbGtfaHcgKmh3KQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbWF4MzEzMzVfZGF0 YSAqbWF4MzEzMzUgPSBjbGtfaHdfdG9fbWF4MzEzMzUoaHcpOw0KPiA+ICsNCj4gPiArCXJlZ21h cF9jbGVhcl9iaXRzKG1heDMxMzM1LT5yZWdtYXAsIE1BWDMxMzM1X1JUQ19DT05GSUcyLA0KPiA+ ICsJCQkgIE1BWDMxMzM1X1JUQ19DT05GSUcyX0VOQ0xLTyk7DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBpbnQgbWF4MzEzMzVfY2xrb3V0X2lzX2VuYWJsZWQoc3RydWN0IGNsa19odyAqaHcp DQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtYXgzMTMzNV9kYXRhICptYXgzMTMzNSA9IGNsa19od190 b19tYXgzMTMzNShodyk7DQo+ID4gKwl1bnNpZ25lZCBpbnQgcmVnOw0KPiA+ICsJaW50IHJldDsN Cj4gPiArDQo+ID4gKwlyZXQgPSByZWdtYXBfcmVhZChtYXgzMTMzNS0+cmVnbWFwLCBNQVgzMTMz NV9SVENfQ09ORklHMiwNCj4gJnJlZyk7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJCXJldHVybiBy ZXQ7DQo+ID4gKw0KPiA+ICsJcmV0dXJuICEhKHJlZyAmIE1BWDMxMzM1X1JUQ19DT05GSUcyX0VO Q0xLTyk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2xrX29wcyBt YXgzMTMzNV9jbGtvdXRfb3BzID0gew0KPiA+ICsJLnJlY2FsY19yYXRlID0gbWF4MzEzMzVfY2xr b3V0X3JlY2FsY19yYXRlLA0KPiA+ICsJLnJvdW5kX3JhdGUgPSBtYXgzMTMzNV9jbGtvdXRfcm91 bmRfcmF0ZSwNCj4gPiArCS5zZXRfcmF0ZSA9IG1heDMxMzM1X2Nsa291dF9zZXRfcmF0ZSwNCj4g PiArCS5lbmFibGUgPSBtYXgzMTMzNV9jbGtvdXRfZW5hYmxlLA0KPiA+ICsJLmRpc2FibGUgPSBt YXgzMTMzNV9jbGtvdXRfZGlzYWJsZSwNCj4gPiArCS5pc19lbmFibGVkID0gbWF4MzEzMzVfY2xr b3V0X2lzX2VuYWJsZWQsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgY2xrX2luaXRfZGF0 YSBtYXgzMTMzNV9jbGtfaW5pdCA9IHsNCj4gPiArCS5uYW1lID0gIm1heDMxMzM1LWNsa291dCIs DQo+ID4gKwkub3BzID0gJm1heDMxMzM1X2Nsa291dF9vcHMsDQo+ID4gK307DQo+ID4gKw0KPiA+ ICtzdGF0aWMgaW50IG1heDMxMzM1X252bWVtX3JlZ19yZWFkKHZvaWQgKnByaXYsIHVuc2lnbmVk IGludCBvZmZzZXQsDQo+ID4gKwkJCQkgICB2b2lkICp2YWwsIHNpemVfdCBieXRlcykNCj4gPiAr ew0KPiA+ICsJc3RydWN0IG1heDMxMzM1X2RhdGEgKm1heDMxMzM1ID0gcHJpdjsNCj4gPiArCXVu c2lnbmVkIGludCByZWcgPSBNQVgzMTMzNV9UUzBfU0VDXzFfMTI4ICsgb2Zmc2V0Ow0KPiA+ICsN Cj4gPiArCXJldHVybiByZWdtYXBfYnVsa19yZWFkKG1heDMxMzM1LT5yZWdtYXAsIHJlZywgdmFs LCBieXRlcyk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbWF4MzEzMzVfbnZtZW1f cmVnX3dyaXRlKHZvaWQgKnByaXYsIHVuc2lnbmVkIGludCBvZmZzZXQsDQo+ID4gKwkJCQkgICAg dm9pZCAqdmFsLCBzaXplX3QgYnl0ZXMpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtYXgzMTMzNV9k YXRhICptYXgzMTMzNSA9IHByaXY7DQo+ID4gKwl1bnNpZ25lZCBpbnQgcmVnID0gTUFYMzEzMzVf VFMwX1NFQ18xXzEyOCArIG9mZnNldDsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcmVnbWFwX2J1bGtf d3JpdGUobWF4MzEzMzUtPnJlZ21hcCwgcmVnLCB2YWwsIGJ5dGVzKTsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArc3RydWN0IG52bWVtX2NvbmZpZyBtYXgzMTMzNV9udm1lbV9jZmcgPSB7DQo+ID4gKwku cmVnX3JlYWQgPSBtYXgzMTMzNV9udm1lbV9yZWdfcmVhZCwNCj4gPiArCS5yZWdfd3JpdGUgPSBt YXgzMTMzNV9udm1lbV9yZWdfd3JpdGUsDQo+ID4gKwkud29yZF9zaXplID0gOCwNCj4gPiArCS5z aXplID0gTUFYMzEzMzVfUkFNX1NJWkUsDQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50 IG1heDMxMzM1X3JlYWRfdGVtcChzdHJ1Y3QgZGV2aWNlICpkZXYsIGVudW0NCj4gaHdtb25fc2Vu c29yX3R5cGVzIHR5cGUsDQo+ID4gKwkJCSAgICAgIHUzMiBhdHRyLCBpbnQgY2hhbm5lbCwgbG9u ZyAqdmFsKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgbWF4MzEzMzVfZGF0YSAqbWF4MzEzMzUgPSBk ZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiArCXU4IHJlZ1syXTsNCj4gPiArCXMxNiB0ZW1wOw0K PiA+ICsJaW50IHJldDsNCj4gPiArDQo+ID4gKwlpZiAodHlwZSAhPSBod21vbl90ZW1wIHx8IGF0 dHIgIT0gaHdtb25fdGVtcF9pbnB1dCkNCj4gPiArCQlyZXR1cm4gLUVPUE5PVFNVUFA7DQo+ID4g Kw0KPiA+ICsJcmV0ID0gcmVnbWFwX2J1bGtfcmVhZChtYXgzMTMzNS0+cmVnbWFwLA0KPiBNQVgz MTMzNV9URU1QX0RBVEFfTVNCLA0KPiA+ICsJCQkgICAgICAgcmVnLCAyKTsNCj4gPiArCWlmIChy ZXQpDQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiArDQo+ID4gKwl0ZW1wID0gZ2V0X3VuYWxpZ25l ZF9iZTE2KHJlZyk7DQo+ID4gKw0KPiA+ICsJKnZhbCA9ICh0ZW1wIC8gNjQpICogMjUwOw0KPiA+ ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdW1vZGVfdCBt YXgzMTMzNV9pc192aXNpYmxlKGNvbnN0IHZvaWQgKmRhdGEsDQo+ID4gKwkJCQkgICBlbnVtIGh3 bW9uX3NlbnNvcl90eXBlcyB0eXBlLA0KPiA+ICsJCQkJICAgdTMyIGF0dHIsIGludCBjaGFubmVs KQ0KPiA+ICt7DQo+ID4gKwlpZiAodHlwZSA9PSBod21vbl90ZW1wICYmIGF0dHIgPT0gaHdtb25f dGVtcF9pbnB1dCkNCj4gPiArCQlyZXR1cm4gMDQ0NDsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBod21vbl9jaGFubmVsX2lu Zm8gKm1heDMxMzM1X2luZm9bXSA9IHsNCj4gPiArCUhXTU9OX0NIQU5ORUxfSU5GTyh0ZW1wLCBI V01PTl9UX0lOUFVUKSwNCj4gPiArCU5VTEwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgaHdtb25fb3BzIG1heDMxMzM1X2h3bW9uX29wcyA9IHsNCj4gPiArCS5pc192 aXNpYmxlID0gbWF4MzEzMzVfaXNfdmlzaWJsZSwNCj4gPiArCS5yZWFkID0gbWF4MzEzMzVfcmVh ZF90ZW1wLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBod21vbl9j aGlwX2luZm8gbWF4MzEzMzVfY2hpcF9pbmZvID0gew0KPiA+ICsJLm9wcyA9ICZtYXgzMTMzNV9o d21vbl9vcHMsDQo+ID4gKwkuaW5mbyA9IG1heDMxMzM1X2luZm8sDQo+ID4gK307DQo+ID4gKw0K PiA+ICtzdGF0aWMgaW50IG1heDMxMzM1X2Nsa291dF9yZWdpc3RlcihzdHJ1Y3QgZGV2aWNlICpk ZXYpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBtYXgzMTMzNV9kYXRhICptYXgzMTMzNSA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOw0KPiA+ICsJaW50IHJldDsNCj4gPiArDQo+ID4gKwlpZiAoIWRldmlj ZV9wcm9wZXJ0eV9wcmVzZW50KGRldiwgIiNjbG9jay1jZWxscyIpKQ0KPiA+ICsJCXJldHVybiAw Ow0KPiA+ICsNCj4gPiArCW1heDMxMzM1LT5jbGtvdXQuaW5pdCA9ICZtYXgzMTMzNV9jbGtfaW5p dDsNCj4gPiArDQo+ID4gKwlyZXQgPSBkZXZtX2Nsa19od19yZWdpc3RlcihkZXYsICZtYXgzMTMz NS0+Y2xrb3V0KTsNCj4gPiArCWlmIChyZXQpDQo+ID4gKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUo ZGV2LCByZXQsICJjYW5ub3QgcmVnaXN0ZXIgY2xvY2tcbiIpOw0KPiA+ICsNCj4gPiArCXJldCA9 IGRldm1fb2ZfY2xrX2FkZF9od19wcm92aWRlcihkZXYsIG9mX2Nsa19od19zaW1wbGVfZ2V0LA0K PiA+ICsJCQkJCSAgJm1heDMxMzM1LT5jbGtvdXQpOw0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQly ZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIHJldCwgImNhbm5vdCBhZGQgaHcNCj4gcHJvdmlkZXJc biIpOw0KPiA+ICsNCj4gPiArCXJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShtYXgzMTMzNS0+Y2xr b3V0LmNsayk7DQo+IA0KPiBTaG91bGQgdGhpcyBjYWxsIGRldm1fY2xrX2dldF9lbmFibGVkKCkg Pw0KPiANCj4gPiArCWlmIChyZXQpDQo+ID4gKwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBy ZXQsICJjYW5ub3QgZW5hYmxlIGNsa291dFxuIik7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbWF4MzEzMzVfcHJvYmUoc3RydWN0IGkyY19j bGllbnQgKmNsaWVudCkNCj4gPiArew0KPiA+ICsJc3RydWN0IG1heDMxMzM1X2RhdGEgKm1heDMx MzM1Ow0KPiA+ICsJc3RydWN0IGRldmljZSAqaHdtb247DQo+ID4gKwlpbnQgcmV0LCBzdGF0dXM7 DQo+ID4gKw0KPiA+ICsJbWF4MzEzMzUgPSBkZXZtX2t6YWxsb2MoJmNsaWVudC0+ZGV2LCBzaXpl b2Yoc3RydWN0DQo+IG1heDMxMzM1X2RhdGEpLA0KPiA+ICsJCQkJR0ZQX0tFUk5FTCk7DQo+ID4g KwlpZiAoIW1heDMxMzM1KQ0KPiA+ICsJCXJldHVybiAtRU5PTUVNOw0KPiA+ICsNCj4gPiArCW1h eDMxMzM1LT5yZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhjbGllbnQsDQo+ICZyZWdtYXBf Y29uZmlnKTsNCj4gPiArCWlmIChJU19FUlIobWF4MzEzMzUtPnJlZ21hcCkpDQo+ID4gKwkJcmV0 dXJuIFBUUl9FUlIobWF4MzEzMzUtPnJlZ21hcCk7DQo+ID4gKw0KPiA+ICsJaTJjX3NldF9jbGll bnRkYXRhKGNsaWVudCwgbWF4MzEzMzUpOw0KPiA+ICsNCj4gPiArCXJldCA9IHJlZ21hcF93cml0 ZShtYXgzMTMzNS0+cmVnbWFwLCBNQVgzMTMzNV9SVENfUkVTRVQsIDEpOw0KPiA+ICsJaWYgKHJl dCkNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICsNCj4gPiArCXJldCA9IHJlZ21hcF93cml0ZSht YXgzMTMzNS0+cmVnbWFwLCBNQVgzMTMzNV9SVENfUkVTRVQsIDApOw0KPiA+ICsJaWYgKHJldCkN Cj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICsNCj4gPiArCXJldCA9IHJlZ21hcF9yZWFkKG1heDMx MzM1LT5yZWdtYXAsIE1BWDMxMzM1X1NUQVRVUzEsDQo+ICZzdGF0dXMpOw0KPiA+ICsJaWYgKHJl dCkNCj4gPiArCQlyZXR1cm4gcmV0Ow0KPiA+ICsNCj4gPiArCWlmIChzdGF0dXMgIT0gTUFYMzEz MzVfU1RBVFVTMV9ERUZBVUxUKQ0KPiA+ICsJCWRldl9lcnJfcHJvYmUoJmNsaWVudC0+ZGV2LCAt RUlOVkFMLA0KPiA+ICsJCQkgICAgICAiVW5hYmxlIHRvIHJlYWQgZnJvbSBkZXZpY2UuXG4iKTsN Cj4gPiArDQo+IA0KPiBUaGF0IGlzIG1pc2xlYWRpbmcuIFRoZSBkZXZpY2UgcmV0dXJuZWQgYW4g dW5leHBlY3RlZCBzdGF0dXMuDQo+IEkgZG9uJ3Qga25vdyBpZiB0aGlzIHJlYWxseSByZWZsZWN0 cyBhIHByb2JsZW0sIGJ1dCBpdCBpcyBub3QNCj4gIlVuYWJsZSB0byByZWFkIGZyb20gZGV2aWNl Ii4NCj4gDQoNClNpbmNlIHRoZSBkZXZpY2UgbGFja3MgYW4gSUQgcmVnaXN0ZXIsIEkgZm91bmQg dGhpcyBhcyBhIHN1aXRhYmxlIA0KcmVwbGFjZW1lbnQgZm9yIGNoZWNraW5nIHRoYXQgdGhlIGNv bW11bmljYXRpb24gd2l0aCB0aGUNCmRldmljZSBhY3R1YWxseSB3b3JrcyBiZWZvcmUgdGhlIHBy b2JlIGZ1bmN0aW9uIGZpbmlzaGVzDQpzdWNjZXNzZnVsbHkuDQoNCkkgd2lsbCBiZSBtb3JlIHNw ZWNpZmljIGluIHRoZSBkZXZfZXJyX3Byb2JlIG1lc3NhZ2UgaW4gdGhlIA0KdXBjb21pbmcgcGF0 Y2ggdmVyc2lvbi4NCg0KPiANCj4gPiArCW1heDMxMzM1LT5ydGMgPSBkZXZtX3J0Y19hbGxvY2F0 ZV9kZXZpY2UoJmNsaWVudC0+ZGV2KTsNCj4gPiArCWlmIChJU19FUlIobWF4MzEzMzUtPnJ0Yykp DQo+ID4gKwkJcmV0dXJuIFBUUl9FUlIobWF4MzEzMzUtPnJ0Yyk7DQo+ID4gKw0KPiA+ICsJbWF4 MzEzMzUtPnJ0Yy0+b3BzID0gJm1heDMxMzM1X3J0Y19vcHM7DQo+ID4gKwltYXgzMTMzNS0+cnRj LT5yYW5nZV9taW4gPSBSVENfVElNRVNUQU1QX0JFR0lOXzIwMDA7DQo+ID4gKwltYXgzMTMzNS0+ cnRjLT5yYW5nZV9tYXggPSBSVENfVElNRVNUQU1QX0VORF8yMTk5Ow0KPiA+ICsNCj4gPiArCXJl dCA9IGRldm1fcnRjX3JlZ2lzdGVyX2RldmljZShtYXgzMTMzNS0+cnRjKTsNCj4gPiArCWlmIChy ZXQpDQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiArDQo+ID4gKwlyZXQgPSBtYXgzMTMzNV9jbGtv dXRfcmVnaXN0ZXIoJmNsaWVudC0+ZGV2KTsNCj4gPiArCWlmIChyZXQpDQo+ID4gKwkJcmV0dXJu IHJldDsNCj4gPiArDQo+ID4gKwlpZiAoY2xpZW50LT5pcnEgPiAwKSB7DQo+ID4gKwkJcmV0ID0g ZGV2bV9yZXF1ZXN0X3RocmVhZGVkX2lycSgmY2xpZW50LT5kZXYsIGNsaWVudC0+aXJxLA0KPiA+ ICsJCQkJCQlOVUxMLCBtYXgzMTMzNV9oYW5kbGVfaXJxLA0KPiA+ICsJCQkJCQlJUlFGX09ORVNI T1QsDQo+ID4gKwkJCQkJCSJtYXgzMTMzNSIsIG1heDMxMzM1KTsNCj4gPiArCQlpZiAocmV0KSB7 DQo+ID4gKwkJCWRldl93YXJuKCZjbGllbnQtPmRldiwNCj4gPiArCQkJCSAidW5hYmxlIHRvIHJl cXVlc3QgSVJRLCBhbGFybSBtYXgzMTMzNQ0KPiBkaXNhYmxlZFxuIik7DQo+ID4gKwkJCWNsaWVu dC0+aXJxID0gMDsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKCFjbGllbnQt PmlycSkNCj4gPiArCQljbGVhcl9iaXQoUlRDX0ZFQVRVUkVfQUxBUk0sIG1heDMxMzM1LT5ydGMt PmZlYXR1cmVzKTsNCj4gPiArDQo+ID4gKwltYXgzMTMzNV9udm1lbV9jZmcucHJpdiA9IG1heDMx MzM1Ow0KPiA+ICsJcmV0ID0gZGV2bV9ydGNfbnZtZW1fcmVnaXN0ZXIobWF4MzEzMzUtPnJ0YywN Cj4gJm1heDMxMzM1X252bWVtX2NmZyk7DQo+ID4gKwlpZiAocmV0KQ0KPiA+ICsJCWRldl9lcnJf cHJvYmUoJmNsaWVudC0+ZGV2LCByZXQsICJjYW5ub3QgcmVnaXN0ZXIgcnRjDQo+IG52bWVtXG4i KTsNCj4gPiArDQo+ID4gKwlod21vbiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhf aW5mbygmY2xpZW50LT5kZXYsDQo+IGNsaWVudC0+bmFtZSwNCj4gPiArCQkJCQkJICAgICBtYXgz MTMzNSwNCj4gPiArCQkJCQkJICAgICAmbWF4MzEzMzVfY2hpcF9pbmZvLA0KPiA+ICsJCQkJCQkg ICAgIE5VTEwpOw0KPiA+ICsJaWYgKElTX0VSUihod21vbikpDQo+ID4gKwkJZGV2X2Vycl9wcm9i ZSgmY2xpZW50LT5kZXYsIFBUUl9FUlIoaHdtb24pLA0KPiA+ICsJCQkgICAgICAiY2Fubm90IHJl Z2lzdGVyIGh3bW9uIGRldmljZVxuIik7DQo+ID4gKw0KPiA+ICsJcmV0dXJuIG1heDMxMzM1X3Ry aWNrbGVfY2hhcmdlcl9zZXR1cCgmY2xpZW50LT5kZXYsIG1heDMxMzM1KTsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIG1heDMxMzM1X2lkW10g PSB7DQo+ID4gKwl7ICJtYXgzMTMzNSIsIDAgfSwNCj4gPiArCXsgfQ0KPiA+ICt9Ow0KPiA+ICsN Cj4gPiArTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIG1heDMxMzM1X2lkKTsNCj4gPiArDQo+ID4g K3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1heDMxMzM1X29mX21hdGNoW10gPSB7 DQo+ID4gKwl7IC5jb21wYXRpYmxlID0gImFkaSxtYXgzMTMzNSIgfSwNCj4gPiArCXsgfQ0KPiA+ ICt9Ow0KPiA+ICsNCj4gPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWF4MzEzMzVfb2ZfbWF0 Y2gpOw0KPiA+ICsNCj4gPiArc3RhdGljIHN0cnVjdCBpMmNfZHJpdmVyIG1heDMxMzM1X2RyaXZl ciA9IHsNCj4gPiArCS5kcml2ZXIgPSB7DQo+ID4gKwkJLm5hbWUgPSAicnRjLW1heDMxMzM1IiwN Cj4gPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBtYXgzMTMzNV9vZl9tYXRjaCwNCj4gPiArCX0sDQo+ ID4gKwkucHJvYmUgPSBtYXgzMTMzNV9wcm9iZSwNCj4gPiArCS5pZF90YWJsZSA9IG1heDMxMzM1 X2lkLA0KPiA+ICt9Ow0KPiA+ICttb2R1bGVfaTJjX2RyaXZlcihtYXgzMTMzNV9kcml2ZXIpOw0K PiA+ICsNCj4gPiArTU9EVUxFX0FVVEhPUigiQW50b25pdSBNaWNsYXVzIDxhbnRvbml1Lm1pY2xh dXNAYW5hbG9nLmNvbT4iKTsNCj4gPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJNQVgzMTMzNSBSVEMg ZHJpdmVyIik7DQo+ID4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCg0K