Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1842447pxb; Wed, 9 Feb 2022 05:46:32 -0800 (PST) X-Google-Smtp-Source: ABdhPJyPeqhoWEGZVEgUZaYOZM2I8vgyViUcAgU/CIQl3h8VHjTrjG0dWA7qBLLK3F/vSuZW9xBA X-Received: by 2002:a17:90a:5a48:: with SMTP id m8mr1205703pji.97.1644414391647; Wed, 09 Feb 2022 05:46:31 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1644414391; cv=pass; d=google.com; s=arc-20160816; b=kEOoAzjez5jvUFp/2q4PcPlooC94RRENINdKly7HCRhDmctF5HzZgRAF0m58FedijX C5kAhgDUYrmYZyhbS+Fe4r2q3NTA+ovADFPsKvUeR+8y1lnV7UlCvepeTJ239tKJ3D7G tt+DirRTw2Z/yCefplHh/XSPKQm+TRV9ghJd1iEE0XBlmfm6nqd+aA3lm9+1wT7AuOth 1MOYKIWn14miZ9mBIdg39NjMnwgiE+PJZ8Fylq7fFCiSN0uAEkO/I95fGZjdDdGInHDn XfQDvv+fskBrAmWQtNlyl5cdFHceCiGkVBFWHj9/Z/89yeivDXp4SDplQsTyZHSb6ZBe n9Hg== 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-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature:ironport-sdr:dkim-signature; bh=MYMkxsve3qzFi9iMkyCEOLqb9upbfHD9+Nevv4kBim8=; b=AxEl5wu7eYc9axDNK6ze7Jnb6AyP5J5tZThf3qHsHj0U9/D/J44U3o6RbbTIj3awDv FYzsSoPmuwKKSG01ggk/ZpuJ1i6F158EIDQgCbIP3h3PWT8c8xbQP9IkaDYbmpe/KVQw R1jO+UfphB6ly2hkB6EftMA5peesKfUsO6IgGHzO3vzjxZgy8kwWgFRF3f01Pv1cfCtR 9JmylWmLOGEqW0O7B1XWUhsifRPDhVhsUdcPWHj6axC7+hOBElgGCaWeshbwQXBVxA6i 0Bz5DGPBVyv9rvwGmQjUG34RNDo9V25I9X2xlFMpxDjX938pbgovnaeolbLDTi9neE2g 2lCg== ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=X0L1XoZr; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=Jk5fgYdU; arc=pass (i=1); spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id l9si17775781pfc.282.2022.02.09.05.46.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Feb 2022 05:46:31 -0800 (PST) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=fail header.i=@microchip.com header.s=mchp header.b=X0L1XoZr; dkim=pass header.i=@microchiptechnology.onmicrosoft.com header.s=selector2-microchiptechnology-onmicrosoft-com header.b=Jk5fgYdU; arc=pass (i=1); spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=microchip.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 74F8AE14E472; Wed, 9 Feb 2022 02:27:22 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235568AbiBIG74 (ORCPT + 99 others); Wed, 9 Feb 2022 01:59:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231335AbiBIG7o (ORCPT ); Wed, 9 Feb 2022 01:59:44 -0500 Received: from esa.microchip.iphmx.com (esa.microchip.iphmx.com [68.232.153.233]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 92D5AC0613CB; Tue, 8 Feb 2022 22:59:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1644389984; x=1675925984; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=MYMkxsve3qzFi9iMkyCEOLqb9upbfHD9+Nevv4kBim8=; b=X0L1XoZr5c7OA3GAKBiEDsymF731GIHv5PT8BRwbtAagojDxF/hzU+HZ MSCbY7lqM8RS8SJECeDKmfQ5nlaISYernbNSwcBUoC1e57KYbLNW8U8t0 jGG5ULZgV4AM+880agrAZEPUaaIqJAuGAQUVl/lDAhlAGm5TFMsJQxOp9 TSI7AQ5e1apaBhG0LNJiQKh9abfwRLecgOdVYM7LgABhQG6VpULd8z+H7 wIik82bE3Ovc7EsCDNGLFA/73z7kf3MPVH0ygB68YOMDoaVpIY3VIAUU6 ZeRQ3sPEEl2pjty8VFc2TgP/Laue/+oQ6fDqHF+MFSMxXyIvuz0LJ9x56 Q==; IronPort-SDR: EQwc1l9wCS9K3pkr2tffYSBPwVukT361gZplJ7fwX69FJSYx89y6HXP7mD0dlejqi6AAg3QqXH kyvCpKW4S3gLzUm9PunKdHhDOoyup1i+szU+N3WiK9YpA3RJ0NnJ6YXJqLxR1AuvwEtHoOh3RJ fhvhfE109rqAHDJ1R05ca+LosH+HDdYdG9OBcoDQH+zGmsVwAO6do8ewTTflSf+LO24AbFbRhD 7rwMT+G4rT6elAfbklbMiX63pXOdyT/W9S7kH7Q9I225xXFzO5q8xgzjR4cX0fEhC3X0tjn8Zl VYVrVw9Wh+T4cbJXvZhvudKv X-IronPort-AV: E=Sophos;i="5.88,354,1635231600"; d="scan'208";a="161586222" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa1.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 08 Feb 2022 23:59:43 -0700 Received: from chn-vm-ex01.mchp-main.com (10.10.85.143) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Tue, 8 Feb 2022 23:59:43 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17 via Frontend Transport; Tue, 8 Feb 2022 23:59:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GAmmvsKFb+l9knSMDxZzPCjNA2TgG8zbo5PPZdLUkgSMZGrRiXX9wyjCKS6YBgec0KvuLZsdicK61kEoXrmGm03vu0nDL15WnB3cgG/tK1oZR4A2Gt6cCAl4EW8/pU8gdBogAZN2HQkhUTl4TOuWRSLv362KpToBSyf7CzJQK3Uq0X+GLfeF4XLD6Tnfs5xeQq1dNKEcIDvedJ3f3EQjwoV0zt2SBjQzDQ656eAAWo0eMLd3EN5H4BAIs0fsQdW0Dg2iIKArk4Rb7BWpsG7OkZarRantelMvHAwgKw1wPE943sKNsCtAop3FTBG4JNg5FwkFPtm/L+/7NoIjM23Vwg== 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=MYMkxsve3qzFi9iMkyCEOLqb9upbfHD9+Nevv4kBim8=; b=I1bH1axdPeWcxTiXMs7r/E6elJ9MaeN1ytItSiTYBROLWcOivQlpwT2O0qwGL0I6b9AgL0VtoSH/oyzkogzR9v9k7o1AcFaNrH8yV5rweRleksQAklv18TJl6NqHEJWtfs6vf0f33dv10l7ccx5r7Ixfq3L3qQ+6I+FPMe8wi+g8LHknbYd+e8VmDR5ivtNjuWPRFrBf6H6ICc5lMf4mUfhEJI7AUX4kxDGrPgp6a2KUR0xRoAlYwhufPm+ij+kQDQHg+2D4beBv4EeE3iGcpFJn2/4yFNfNgdBJT81Maurb5AD3O57hkcyGIwHsvb6gd47zeOsfUEar5HSRqBDHRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchiptechnology.onmicrosoft.com; s=selector2-microchiptechnology-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MYMkxsve3qzFi9iMkyCEOLqb9upbfHD9+Nevv4kBim8=; b=Jk5fgYdUUAL9YTdtOzFrwSOOGj52LHf9nHfiLQbpV++Bm29ivEEmP+q3/Q9pe68oMiFMRXhZ9rPV7pWvFEl/bneN7n74FjDShNNgHqt5ZdgoU+pNjk1IPHt8OKnkOX5qkNwM0obl1ZsjgBOYtem1hA6RvQ/F2wBvnYbNdsmeBMk= Received: from BL1PR11MB5384.namprd11.prod.outlook.com (2603:10b6:208:311::14) by MWHPR11MB1614.namprd11.prod.outlook.com (2603:10b6:301:11::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4951.12; Wed, 9 Feb 2022 06:59:37 +0000 Received: from BL1PR11MB5384.namprd11.prod.outlook.com ([fe80::11a5:42e0:3f3d:fcdc]) by BL1PR11MB5384.namprd11.prod.outlook.com ([fe80::11a5:42e0:3f3d:fcdc%9]) with mapi id 15.20.4975.011; Wed, 9 Feb 2022 06:59:37 +0000 From: To: CC: , , , , , , , , , Subject: Re: [PATCH v4 03/11] media: atmel: atmel-isc: implement media controller Thread-Topic: [PATCH v4 03/11] media: atmel: atmel-isc: implement media controller Thread-Index: AQHYDsj+4PNJuzXuM0OUGB4VItn8vKyII2QAgAAPlICAAUPUgIAAGkGAgACWLYCAAMBlgA== Date: Wed, 9 Feb 2022 06:59:37 +0000 Message-ID: <0e768525-1a5a-e96f-eadf-79e82f3dc0bc@microchip.com> References: <20220121131416.603972-1-eugen.hristev@microchip.com> <20220121131416.603972-4-eugen.hristev@microchip.com> <20220207124444.giyamcg2dgn6t3hv@uno.localdomain> <20220208085931.5rf5dueyb57zxlyk@uno.localdomain> <8ed88286-3959-03e9-e6e3-6b1675d7de4f@microchip.com> <20220208193059.qxitj5xb5cwiggkg@uno.localdomain> In-Reply-To: <20220208193059.qxitj5xb5cwiggkg@uno.localdomain> Accept-Language: en-US, ro-RO Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 338e42e6-6a47-4f8f-2201-08d9eb99bc80 x-ms-traffictypediagnostic: MWHPR11MB1614:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2043; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: DGG0s9233LXrEWcKRBT5Zir6DyrpILhacsFtaJH0l/f9ig0tN+UJTfd/4zvg1sxEa6lnelTWHuu7OXykcL8ZFD/cgLhRDOsG2n0jL+42SGZM30LGZyfU5oFd+IrkZxTsHLMulTmf2A9HAU/HDkWxdp5Cz4pcNwxFVU2xZeT6QlzjTMqCLOQUUrjKfhZRMBZHa24LpwQYNF0mPdvRx2bNKikWmC5k9hOB/f7zTIIxpDcwO0EER5I4Ithy1Ul8bIsWhy1Z9UsgOczjF19XGlxUk7u4JgVr5hsM06m6HOXGWtMMm1VKUQOq14JZ8+7p2GOx3uAb3HhalBPx1hRSffpb78z9xW1H1mySCw6vAQ8rzmktwmssAy5tHcxLf+pn0TuIqCppRZ7YK6UgM3MBuK2tFQKZ5Dip+DuTJ/0IGqtH6Vnlc6FKTF9Zo6Fq1ikyLqe6oS/eQtOOJ6D7WDp2QpYky9OCqTNJ5Ec0VX7SyWBF+t+TM6eHP2GzRQrcIXQRN+VDSfFdQ6DbQvcVFxwJcCxFRvt69HCzMXigS6NtFaQgwfrlh4y/UNNIeXbXNyot+Ov1jv8boqYztUY58qkEt6WTXIv8IybJXQhk4GLs9O1Tewj9lPZ1b/AaidPkcQG8Wgv+OyKplxLH+wgIJiTiCr0i0czj1uufQeTHKmkHj73pKChY/vG3y0yIyjqFS/5Yt2kx23nTunUIOuOzLLzgyNIUZH0HPeXiYLjoTA0Bke/Jew9CyA98YyyNDtu2jT7Dy0PbY6gdqOyCTaHsi5sbW+7o79b57PEnyGUx/5LUSVTQjQ+2ZXogu4dx5141nCtqNYRmdfKqasBKhqOGg3xMq6wZnNVfhZjgQwBIBWK6sghyjPc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL1PR11MB5384.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(83380400001)(186003)(8936002)(4326008)(66446008)(5660300002)(6916009)(26005)(316002)(66946007)(64756008)(66476007)(66556008)(8676002)(76116006)(91956017)(36756003)(54906003)(31686004)(45080400002)(6512007)(6486002)(966005)(31696002)(71200400001)(53546011)(6506007)(122000001)(2616005)(38070700005)(508600001)(38100700002)(2906002)(7416002)(30864003)(86362001)(43740500002)(45980500001)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QnNvUFRvSDRDMVI5WHlPYVpKd3BJanNLQnpDbTgxWERjOEdwN2VKYXRadjRZ?= =?utf-8?B?dUVOS3JTZE1HMkY4OFdzWTBuSTRPclJTL2xERHI4ZnpDK3ZiMGVIRUlWUlZS?= =?utf-8?B?L1Z1Mi9BVW96LzNaaXlrckk5cWcvRGhRQTN6RnBVdSs0MVpLTjMrTjAwT0xh?= =?utf-8?B?RW5MTHd4UDhndDN2M2tjU0wyLzcrdGRlcVNPcVBWUkRNeDFKTUFWTDlmbnNy?= =?utf-8?B?cktrdVp5bUhzYm5PaGxVWSs5VnU3S2RXbjJjcVErc09YSVJaUWRJdzI3akxx?= =?utf-8?B?d2hWS2pvdUZSZDJIMXJVTnJzV0xONEhrWFBqbVgvZnFMT2dqQm51a3AxSTlt?= =?utf-8?B?ZVVGQmVYZEQxRTlBMDg3T0Y5NE1aT1ExTVF1NkZ6NG0zemx1SkFhVnNaMG4y?= =?utf-8?B?VWcyRWNrNzA5Rlk1SFRKUG5EdEZTV1YxdGFtSVplZnljSjNwem1aZnFBRjh0?= =?utf-8?B?aTdmYXljS1pReWRBL0tWdU1iMklMZkRscEFkSzYvbnhqb0pMWDNLeG11K1l1?= =?utf-8?B?UmwzeHdiOVVURjJsYUpnVjQyY3gzOGNQWU9ZZXBCWVlvaTBEcEo0UmdSbFBJ?= =?utf-8?B?eGoydldybHNIMGU3MW04Um1rUmFMKzlyaU5kU2RBUlNrQVJtSFBqcStDV052?= =?utf-8?B?SDN3dEhwS1Q3VDlsUll1TmNyRElhd0o5Zmd1UGRhckdOUkZJRDNCanpIU2Jy?= =?utf-8?B?VzFOTFFOY05MNmZrVHZGemgzSWRodVVDaHBJSGt2M3F0RXFhSnk4YTcxdFow?= =?utf-8?B?QTN5dW8xRDhZcE9GOUFvcUpmQmU3MkVodjd6d3l5NnRhY213cDBkZHdyUDhQ?= =?utf-8?B?U3AxMVpmRkpoeFdPblk0REo2VFJNSGlWem11OVRhZUFEa3RBc2hIMGZzeTZM?= =?utf-8?B?dTZiTmFOOVJVNUhFeUR4UUhtMEkxbTB0SVNhaW9ZT3YvQnJOenZlUDBFcmdt?= =?utf-8?B?RGxsTnpabndPQjJmUks1WVlnRlh5R0RVRnNpYjJNcFhrQTNOTkRHTCtDVUlZ?= =?utf-8?B?S1pxWDNNUjludi9DOUU0ckpLNGZZOGErTGlMMGlzamNQVzV4SmVBb1lOODJm?= =?utf-8?B?WmxsdEVNV1hNdDlBOTdpMTJzTUJueTRPTGNDVmRuZ2pyUE5MUTFKaW1oc3Uz?= =?utf-8?B?M0hoTmJTSmhaMksvSElleTdUSmpRQzRBUUd5czJNYWZqeGJTRlA2MElmVDc5?= =?utf-8?B?ZnhWeVV4WWZMeEZndERqcFRnV0pCSnFLdjAvd3JVTHlwOE1GVEJ2bE8xUTBJ?= =?utf-8?B?STdGbXc1ckdQOGdYakJyVm9rN2JHRDdjMWNTT2NvM1YyaXNDaFJ4SGtROENM?= =?utf-8?B?ZHBsM25NbmxMQWRJQU1jWmlsd01KeTlnOHQ5bmcxMXJlS2U0YTVwNmIxUHJB?= =?utf-8?B?TnNsd1hSVGloK0NVbW84dXhKdXpLb2E0VGYwTWExdXFkdGM4dFlFbjAyWEc5?= =?utf-8?B?alhLYndpTUhmOXFQbUthaXkvbHNmdGV2WGFqUkZBU1FCRkZqME5TNURyRmVG?= =?utf-8?B?UFNOK0p6SWZZSmNZakdNOFJjalpQWHdRY0RLN0QzQ0tUNUlSN0pFWGV3MWJB?= =?utf-8?B?bE1icm5ydTE3VnkxeE5iVm9QdHRmR0oyQTA0ZDdPRXM4U2FhRlNZOHBWWDRu?= =?utf-8?B?MXY0UjJ0dkRmTjdKbi9pUkg1OW1JSlhTd3Azc2Z1NGcrbFFvNGU2Z2hZSFlU?= =?utf-8?B?NTlUZXJ0TUNxaGdwVkl3OGJjNHh3SHdKUDhjOTMra3hTU2hUNVBIelZaeTc0?= =?utf-8?B?TjFNUXhlOTR3Ykx3bEM0V2tlV1NuUnVrdno2Q2s4MXpkdzlXMExnNjg4eXhU?= =?utf-8?B?dGZzNTJKOXUrU1JHRHd6S2x0Z1c4bTcxdDd0aTA0RlJMaE1NTTA0cFl6Ylp3?= =?utf-8?B?RERCODJ1ZzJkNkFRZmhkaXNzQWh3OTNGczhqb2pGSk1WRkNaU2FXYmNsZ1hK?= =?utf-8?B?cDkrb1JJS1dxN1pWZHIzVXZKWndtV09zRUFvNnhtckVOdnpWRGJNYVl5RzBj?= =?utf-8?B?bU1uMEZEaU8xdCtGZ0ltd0pPaU1pUVZCNGNsaG54SXFRdEM3bXRsS3I4L25m?= =?utf-8?B?UzA3TWd0WVY4REhIOUd0Z2U3Q3RVYnFYK1J0ajVxaW04eWc5OHJQdytRdjEx?= =?utf-8?B?azdFbmZ1MGs1ZkFYSVpEYmxYUTY5T0Z0WDJsVkgraXZGeFhwUW9TMjRXY3hM?= =?utf-8?B?cXRwVkJzQk15NENETElkaElIMEVBZFE2Wk1RaTVGcU9obEFwT0hCeDdNL3l5?= =?utf-8?B?Y3kwS1pJSkVOYXN1T1FaL041bkNnPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: <5C5681939056834582A22206EE9E692A@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR11MB5384.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 338e42e6-6a47-4f8f-2201-08d9eb99bc80 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2022 06:59:37.3892 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Y7R+ITgoXdDqthuDGlRtWTkOBpH1SySG5Y73PqZ3qKamVU6zFF+3u7BJbOiclK6lX8eWUcHl/zncKschHa+h5mP6Zo+U1NxRIS+SAplPlqs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1614 X-Spam-Status: No, score=-0.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,PDS_OTHER_BAD_TLD,RDNS_NONE,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMi84LzIyIDk6MzAgUE0sIEphY29wbyBNb25kaSB3cm90ZToNCj4gSGkgRXVnZW4NCj4gDQo+ IE9uIFR1ZSwgRmViIDA4LCAyMDIyIGF0IDEwOjMzOjMxQU0gKzAwMDAsIEV1Z2VuLkhyaXN0ZXZA bWljcm9jaGlwLmNvbSB3cm90ZToNCj4+IE9uIDIvOC8yMiAxMDo1OSBBTSwgSmFjb3BvIE1vbmRp IHdyb3RlOg0KPj4+IEhpIEV1Z2VuDQo+Pj4NCj4+PiBPbiBNb24sIEZlYiAwNywgMjAyMiBhdCAw MTo0MDozMVBNICswMDAwLCBFdWdlbi5IcmlzdGV2QG1pY3JvY2hpcC5jb20gd3JvdGU6DQo+Pj4+ IE9uIDIvNy8yMiAyOjQ0IFBNLCBKYWNvcG8gTW9uZGkgd3JvdGU6DQo+Pj4+PiBIaSBFdWdlbg0K Pj4+Pj4NCj4+Pj4+IE9uIEZyaSwgSmFuIDIxLCAyMDIyIGF0IDAzOjE0OjA4UE0gKzAyMDAsIEV1 Z2VuIEhyaXN0ZXYgd3JvdGU6DQo+Pj4+Pj4gSW1wbGVtZW50IHRoZSBzdXBwb3J0IGZvciBtZWRp YS1jb250cm9sbGVyLg0KPj4+Pj4+IFRoaXMgbWVhbnMgdGhhdCB0aGUgY2FwYWJpbGl0aWVzIG9m IHRoZSBkcml2ZXIgaGF2ZSBjaGFuZ2VkIGFuZCBub3cNCj4+Pj4+PiBpdCBhbHNvIGFkdmVydGlz ZXMgdGhlIElPX01DIC4NCj4+Pj4+PiBUaGUgZHJpdmVyIHdpbGwgcmVnaXN0ZXIgaXQncyBtZWRp YSBkZXZpY2UsIGFuZCBhZGQgdGhlIHZpZGVvIGVudGl0eSB0byB0aGlzDQo+Pj4+Pj4gbWVkaWEg ZGV2aWNlLiBUaGUgc3ViZGV2aWNlcyBhcmUgcmVnaXN0ZXJlZCB0byB0aGUgc2FtZSBtZWRpYSBk ZXZpY2UuDQo+Pj4+Pj4gVGhlIElTQyB3aWxsIGhhdmUgYSBiYXNlIGVudGl0eSB3aGljaCBpcyBh dXRvLWRldGVjdGVkIGFzIGF0bWVsX2lzY19iYXNlLg0KPj4+Pj4+IEl0IHdpbGwgYWxzbyByZWdp c3RlciBhIHN1YmRldmljZSB0aGF0IGFsbG93cyBjcm9wcGluZyBvZiB0aGUgaW5jb21pbmcgZnJh bWUNCj4+Pj4+PiB0byB0aGUgbWF4aW11bSBmcmFtZSBzaXplIHN1cHBvcnRlZCBieSB0aGUgSVND Lg0KPj4+Pj4+IFRoZSBJU0Mgd2lsbCBjcmVhdGUgYSBsaW5rIGJldHdlZW4gdGhlIHN1YmRldmlj ZSB0aGF0IGlzIGFzeW5jaHJvbm91c2x5DQo+Pj4+Pj4gcmVnaXN0ZXJlZCBhbmQgdGhlIGF0bWVs X2lzY19zY2FsZXIgZW50aXR5Lg0KPj4+Pj4+IFRoZW4sIHRoZSBhdG1lbF9pc2Nfc2NhbGVyIGFu ZCBhdG1lbF9pc2NfYmFzZSBhcmUgY29ubmVjdGVkIHRocm91Z2ggYW5vdGhlcg0KPj4+Pj4+IGxp bmsuDQo+Pj4+Pj4NCj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBFdWdlbiBIcmlzdGV2IDxldWdlbi5o cmlzdGV2QG1pY3JvY2hpcC5jb20+DQo+Pj4+Pj4gLS0tDQo+Pj4+Pj4gQ2hhbmdlcyBpbiB2NDoN Cj4+Pj4+PiBBcyBzdWdnZXN0ZWQgYnkgSmFjb3BvOg0KPj4+Pj4+IC0gcmVuYW1lZCBhdG1lbF9p c2NfbWMgdG8gYXRtZWxfaXNjX3NjYWxlci5jDQo+Pj4+Pj4gLSBtb3ZlZCBpbml0X21jL2NsZWFu X21jIHRvIGlzY19iYXNlIGZpbGUNCj4+Pj4+Pg0KPj4+Pj4+IENoYW5nZXMgaW4gdjI6DQo+Pj4+ Pj4gLSBpbXBsZW1lbnQgdHJ5IGZvcm1hdHMNCj4+Pj4+Pg0KPj4+Pj4+ICAgICBkcml2ZXJzL21l ZGlhL3BsYXRmb3JtL2F0bWVsL01ha2VmaWxlICAgICAgICAgfCAgIDIgKy0NCj4+Pj4+PiAgICAg ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1pc2MtYmFzZS5jIHwgIDczICsrKysr LQ0KPj4+Pj4+ICAgICAuLi4vbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLXNjYWxlci5j ICAgfCAyNDUgKysrKysrKysrKysrKysrKysrDQo+Pj4+Pj4gICAgIGRyaXZlcnMvbWVkaWEvcGxh dGZvcm0vYXRtZWwvYXRtZWwtaXNjLmggICAgICB8ICAzNyArKysNCj4+Pj4+PiAgICAgLi4uL21l ZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLXNhbWE1ZDItaXNjLmMgIHwgIDE0ICstDQo+Pj4+Pj4g ICAgIC4uLi9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1zYW1hN2c1LWlzYy5jICB8ICAxMiAr LQ0KPj4+Pj4+ICAgICA2IGZpbGVzIGNoYW5nZWQsIDM3NSBpbnNlcnRpb25zKCspLCA4IGRlbGV0 aW9ucygtKQ0KPj4+Pj4+ICAgICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZWRpYS9wbGF0 Zm9ybS9hdG1lbC9hdG1lbC1pc2Mtc2NhbGVyLmMNCj4+Pj4+Pg0KPj4+Pj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL01ha2VmaWxlIGIvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS9hdG1lbC9NYWtlZmlsZQ0KPj4+Pj4+IGluZGV4IDc5NGU4ZjczOTI4Ny4uZjAyZDAz ZGY4OWQ2IDEwMDY0NA0KPj4+Pj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwv TWFrZWZpbGUNCj4+Pj4+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL01ha2Vm aWxlDQo+Pj4+Pj4gQEAgLTEsNyArMSw3IEBADQo+Pj4+Pj4gICAgICMgU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAtb25seQ0KPj4+Pj4+ICAgICBhdG1lbC1pc2Mtb2JqcyA9IGF0bWVs LXNhbWE1ZDItaXNjLm8NCj4+Pj4+PiAgICAgYXRtZWwteGlzYy1vYmpzID0gYXRtZWwtc2FtYTdn NS1pc2Mubw0KPj4+Pj4+IC1hdG1lbC1pc2MtY29tbW9uLW9ianMgPSBhdG1lbC1pc2MtYmFzZS5v IGF0bWVsLWlzYy1jbGsubw0KPj4+Pj4+ICthdG1lbC1pc2MtY29tbW9uLW9ianMgPSBhdG1lbC1p c2MtYmFzZS5vIGF0bWVsLWlzYy1jbGsubyBhdG1lbC1pc2Mtc2NhbGVyLm8NCj4+Pj4+Pg0KPj4+ Pj4+ICAgICBvYmotJChDT05GSUdfVklERU9fQVRNRUxfSVNJKSArPSBhdG1lbC1pc2kubw0KPj4+ Pj4+ICAgICBvYmotJChDT05GSUdfVklERU9fQVRNRUxfSVNDX0JBU0UpICs9IGF0bWVsLWlzYy1j b21tb24ubw0KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVs L2F0bWVsLWlzYy1iYXNlLmMgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlz Yy1iYXNlLmMNCj4+Pj4+PiBpbmRleCA2YjAwMDU5ODdhMTcuLjZiNDgyMjcwZWI5MyAxMDA2NDQN Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1iYXNl LmMNCj4+Pj4+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1i YXNlLmMNCj4+Pj4+PiBAQCAtMTcxMCw2ICsxNzEwLDcgQEAgc3RhdGljIGludCBpc2NfYXN5bmNf Ym91bmQoc3RydWN0IHY0bDJfYXN5bmNfbm90aWZpZXIgKm5vdGlmaWVyLA0KPj4+Pj4+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlzY19kZXZp Y2UsIHY0bDJfZGV2KTsNCj4+Pj4+PiAgICAgICAgICBzdHJ1Y3QgaXNjX3N1YmRldl9lbnRpdHkg KnN1YmRldl9lbnRpdHkgPQ0KPj4+Pj4+ICAgICAgICAgICAgICAgICAgY29udGFpbmVyX29mKG5v dGlmaWVyLCBzdHJ1Y3QgaXNjX3N1YmRldl9lbnRpdHksIG5vdGlmaWVyKTsNCj4+Pj4+PiArICAg ICBpbnQgcGFkOw0KPj4+Pj4+DQo+Pj4+Pj4gICAgICAgICAgaWYgKHZpZGVvX2lzX3JlZ2lzdGVy ZWQoJmlzYy0+dmlkZW9fZGV2KSkgew0KPj4+Pj4+ICAgICAgICAgICAgICAgICAgdjRsMl9lcnIo JmlzYy0+djRsMl9kZXYsICJvbmx5IHN1cHBvcnRzIG9uZSBzdWItZGV2aWNlLlxuIik7DQo+Pj4+ Pj4gQEAgLTE3MTgsNiArMTcxOSwxNiBAQCBzdGF0aWMgaW50IGlzY19hc3luY19ib3VuZChzdHJ1 Y3QgdjRsMl9hc3luY19ub3RpZmllciAqbm90aWZpZXIsDQo+Pj4+Pj4NCj4+Pj4+PiAgICAgICAg ICBzdWJkZXZfZW50aXR5LT5zZCA9IHN1YmRldjsNCj4+Pj4+Pg0KPj4+Pj4+ICsgICAgIHBhZCA9 IG1lZGlhX2VudGl0eV9nZXRfZndub2RlX3BhZCgmc3ViZGV2LT5lbnRpdHksIGFzZC0+bWF0Y2gu Zndub2RlLA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN RURJQV9QQURfRkxfU09VUkNFKTsNCj4+Pj4+PiArICAgICBpZiAocGFkIDwgMCkgew0KPj4+Pj4+ ICsgICAgICAgICAgICAgdjRsMl9lcnIoJmlzYy0+djRsMl9kZXYsICJmYWlsZWQgdG8gZmluZCBw YWQgZm9yICVzXG4iLA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgc3ViZGV2LT5uYW1l KTsNCj4+Pj4+PiArICAgICAgICAgICAgIHJldHVybiBwYWQ7DQo+Pj4+Pj4gKyAgICAgfQ0KPj4+ Pj4+ICsNCj4+Pj4+PiArICAgICBpc2MtPnJlbW90ZV9wYWQgPSBwYWQ7DQo+Pj4+Pj4gKw0KPj4+ Pj4+ICAgICAgICAgIHJldHVybiAwOw0KPj4+Pj4+ICAgICB9DQo+Pj4+Pj4NCj4+Pj4+PiBAQCAt MTczMiw4ICsxNzQzLDggQEAgc3RhdGljIHZvaWQgaXNjX2FzeW5jX3VuYmluZChzdHJ1Y3QgdjRs Ml9hc3luY19ub3RpZmllciAqbm90aWZpZXIsDQo+Pj4+Pj4gICAgICAgICAgdjRsMl9jdHJsX2hh bmRsZXJfZnJlZSgmaXNjLT5jdHJscy5oYW5kbGVyKTsNCj4+Pj4+PiAgICAgfQ0KPj4+Pj4+DQo+ Pj4+Pj4gLXN0YXRpYyBzdHJ1Y3QgaXNjX2Zvcm1hdCAqZmluZF9mb3JtYXRfYnlfY29kZShzdHJ1 Y3QgaXNjX2RldmljZSAqaXNjLA0KPj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvZGUsIGludCAqaW5kZXgpDQo+Pj4+Pj4gK3N0 cnVjdCBpc2NfZm9ybWF0ICppc2NfZmluZF9mb3JtYXRfYnlfY29kZShzdHJ1Y3QgaXNjX2Rldmlj ZSAqaXNjLA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGNvZGUsIGludCAqaW5kZXgpDQo+Pj4+Pj4gICAgIHsNCj4+Pj4+PiAgICAg ICAgICBzdHJ1Y3QgaXNjX2Zvcm1hdCAqZm10ID0gJmlzYy0+Zm9ybWF0c19saXN0WzBdOw0KPj4+ Pj4+ICAgICAgICAgIHVuc2lnbmVkIGludCBpOw0KPj4+Pj4+IEBAIC0xNzQ5LDYgKzE3NjAsNyBA QCBzdGF0aWMgc3RydWN0IGlzY19mb3JtYXQgKmZpbmRfZm9ybWF0X2J5X2NvZGUoc3RydWN0IGlz Y19kZXZpY2UgKmlzYywNCj4+Pj4+Pg0KPj4+Pj4+ICAgICAgICAgIHJldHVybiBOVUxMOw0KPj4+ Pj4+ICAgICB9DQo+Pj4+Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKGlzY19maW5kX2Zvcm1hdF9ieV9j b2RlKTsNCj4+Pj4+Pg0KPj4+Pj4+ICAgICBzdGF0aWMgaW50IGlzY19mb3JtYXRzX2luaXQoc3Ry dWN0IGlzY19kZXZpY2UgKmlzYykNCj4+Pj4+PiAgICAgew0KPj4+Pj4+IEBAIC0xNzY1LDcgKzE3 NzcsNyBAQCBzdGF0aWMgaW50IGlzY19mb3JtYXRzX2luaXQoc3RydWN0IGlzY19kZXZpY2UgKmlz YykNCj4+Pj4+PiAgICAgICAgICAgICAgICAgTlVMTCwgJm1idXNfY29kZSkpIHsNCj4+Pj4+PiAg ICAgICAgICAgICAgICAgIG1idXNfY29kZS5pbmRleCsrOw0KPj4+Pj4+DQo+Pj4+Pj4gLSAgICAg ICAgICAgICBmbXQgPSBmaW5kX2Zvcm1hdF9ieV9jb2RlKGlzYywgbWJ1c19jb2RlLmNvZGUsICZp KTsNCj4+Pj4+PiArICAgICAgICAgICAgIGZtdCA9IGlzY19maW5kX2Zvcm1hdF9ieV9jb2RlKGlz YywgbWJ1c19jb2RlLmNvZGUsICZpKTsNCj4+Pj4+PiAgICAgICAgICAgICAgICAgIGlmICghZm10 KSB7DQo+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgIHY0bDJfd2FybigmaXNjLT52NGwy X2RldiwgIk1idXMgY29kZSAleCBub3Qgc3VwcG9ydGVkXG4iLA0KPj4+Pj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWJ1c19jb2RlLmNvZGUpOw0KPj4+Pj4+IEBAIC0xODkx LDcgKzE5MDMsOCBAQCBzdGF0aWMgaW50IGlzY19hc3luY19jb21wbGV0ZShzdHJ1Y3QgdjRsMl9h c3luY19ub3RpZmllciAqbm90aWZpZXIpDQo+Pj4+Pj4gICAgICAgICAgdmRldi0+cXVldWUgICAg ICAgICAgICAgPSBxOw0KPj4+Pj4+ICAgICAgICAgIHZkZXYtPmxvY2sgICAgICAgICAgICAgID0g JmlzYy0+bG9jazsNCj4+Pj4+PiAgICAgICAgICB2ZGV2LT5jdHJsX2hhbmRsZXIgICAgICA9ICZp c2MtPmN0cmxzLmhhbmRsZXI7DQo+Pj4+Pj4gLSAgICAgdmRldi0+ZGV2aWNlX2NhcHMgICAgICAg PSBWNEwyX0NBUF9TVFJFQU1JTkcgfCBWNEwyX0NBUF9WSURFT19DQVBUVVJFOw0KPj4+Pj4+ICsg ICAgIHZkZXYtPmRldmljZV9jYXBzICAgICAgID0gVjRMMl9DQVBfU1RSRUFNSU5HIHwgVjRMMl9D QVBfVklERU9fQ0FQVFVSRSB8DQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWNEwyX0NBUF9JT19NQzsNCj4+Pj4+PiAgICAgICAgICB2aWRlb19zZXRfZHJ2ZGF0YSh2ZGV2 LCBpc2MpOw0KPj4+Pj4+DQo+Pj4+Pj4gICAgICAgICAgcmV0ID0gdmlkZW9fcmVnaXN0ZXJfZGV2 aWNlKHZkZXYsIFZGTF9UWVBFX1ZJREVPLCAtMSk7DQo+Pj4+Pj4gQEAgLTE5MDEsOCArMTkxNCwx OCBAQCBzdGF0aWMgaW50IGlzY19hc3luY19jb21wbGV0ZShzdHJ1Y3QgdjRsMl9hc3luY19ub3Rp ZmllciAqbm90aWZpZXIpDQo+Pj4+Pj4gICAgICAgICAgICAgICAgICBnb3RvIGlzY19hc3luY19j b21wbGV0ZV9lcnI7DQo+Pj4+Pj4gICAgICAgICAgfQ0KPj4+Pj4+DQo+Pj4+Pj4gKyAgICAgcmV0 ID0gaXNjX3NjYWxlcl9saW5rKGlzYyk7DQo+Pj4+Pj4gKyAgICAgaWYgKHJldCA8IDApDQo+Pj4+ Pj4gKyAgICAgICAgICAgICBnb3RvIGlzY19hc3luY19jb21wbGV0ZV91bnJlZ2lzdGVyX2Rldmlj ZTsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgcmV0ID0gbWVkaWFfZGV2aWNlX3JlZ2lzdGVyKCZp c2MtPm1kZXYpOw0KPj4+Pj4+ICsgICAgIGlmIChyZXQgPCAwKQ0KPj4+Pj4+ICsgICAgICAgICAg ICAgZ290byBpc2NfYXN5bmNfY29tcGxldGVfdW5yZWdpc3Rlcl9kZXZpY2U7DQo+Pj4+Pj4gICAg ICAgICAgcmV0dXJuIDA7DQo+Pj4+Pj4NCj4+Pj4+PiAraXNjX2FzeW5jX2NvbXBsZXRlX3VucmVn aXN0ZXJfZGV2aWNlOg0KPj4+Pj4+ICsgICAgIHZpZGVvX3VucmVnaXN0ZXJfZGV2aWNlKHZkZXYp Ow0KPj4+Pj4+ICsNCj4+Pj4+PiAgICAgaXNjX2FzeW5jX2NvbXBsZXRlX2VycjoNCj4+Pj4+PiAg ICAgICAgICBtdXRleF9kZXN0cm95KCZpc2MtPmxvY2spOw0KPj4+Pj4+ICAgICAgICAgIHJldHVy biByZXQ7DQo+Pj4+Pj4gQEAgLTE5NjksNiArMTk5Miw0OCBAQCBpbnQgaXNjX3BpcGVsaW5lX2lu aXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYykNCj4+Pj4+PiAgICAgfQ0KPj4+Pj4+ICAgICBFWFBP UlRfU1lNQk9MX0dQTChpc2NfcGlwZWxpbmVfaW5pdCk7DQo+Pj4+Pj4NCj4+Pj4+PiAraW50IGlz Y19tY19pbml0KHN0cnVjdCBpc2NfZGV2aWNlICppc2MsIHUzMiB2ZXIpDQo+Pj4+Pj4gK3sNCj4+ Pj4+PiArICAgICBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkICptYXRjaDsNCj4+Pj4+PiArICAg ICBpbnQgcmV0Ow0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICBpc2MtPnZpZGVvX2Rldi5lbnRpdHku ZnVuY3Rpb24gPSBNRURJQV9FTlRfRl9JT19WNEw7DQo+Pj4+Pj4gKyAgICAgaXNjLT52aWRlb19k ZXYuZW50aXR5LmZsYWdzID0gTUVESUFfRU5UX0ZMX0RFRkFVTFQ7DQo+Pj4+Pg0KPj4+Pj4gU2hv dWxkIHlvdSBzZXQgZW50aXR5Lm9wcy5saW5rX3ZhbGlkYXRlID0gdjRsMl9zdWJkZXZfbGlua192 YWxpZGF0ZQ0KPj4+Pj4gdG8gYmUgYWJsZSB0byBoYXZlIHRoZSBtZWRpYSBwaXBlbGluZSB2YWxp ZGF0ZWQgYXQNCj4+Pj4+IG1lZGlhX3BpcGVsaW5lX3N0YXJ0KCkgdGltZSA/DQo+Pj4+DQo+Pj4+ IEhpLA0KPj4+Pg0KPj4+PiBJIGFtIGRvaW5nIHRoYXQgaW4gYSBzdWJzZXF1ZW50IHBhdGNoLiBU aGluZ3MgYXJlIG5vdCBjb21wbGV0ZWx5IHJlYWR5DQo+Pj4+IGF0IHRoaXMgbW9tZW50LCBiZWNh dXNlIElTQyBzdGlsbCByZWxpZXMgb24gdGhlIG9sZCBtZWNoYW5pc20gdG8gY2FsbA0KPj4+PiB2 NGwyX3N1YmRldl9jYWxsIHdpdGggc2V0X2ZtdCBvbiB0aGUgc3ViZGV2aWNlICh3aGljaCBzdWJz ZXF1ZW50IHBhdGNoDQo+Pj4+IHJlbW92ZXMgYW5kIGFkZHMgY2hlY2tzIHRvIHRoZSBsaW5rIHZh bGlkYXRlICkuDQo+Pj4+DQo+Pj4NCj4+PiBJIHNlZS4uIHRoZSBzdWJzZXF1ZW50IHBhdGNoZXMg YXJlIG5vdCBwYXJ0IG9mIHRoaXMgc2VyaWVzLCByaWdodCA/DQo+Pg0KPj4gTm8uIFBhdGNoIDcg ZG9lcyB0aGlzLiBJbiB0aGF0IHBhdGNoLCB0aGUgbGluayB2YWxpZGF0aW9uIGlzIGNyZWF0ZWQg YW5kDQo+PiBhbGwgdGhlIGxvZ2ljIG9mIGZvcm1hdCBwcm9wYWdhdGlvbiBpcyByZW1vdmVkIGFu ZCByZXdvcmtlZCwgYW5kIGNyZWF0ZXMNCj4+IHRoZSBuZWVkIGZvciB0aGUgbGlua192YWxpZGF0 ZSBjYWxsDQo+PiBDb3VsZCB5b3UgaGF2ZSBhbHNvIGEgbG9vayBhdCB0aGF0IHBhdGNoID8NCj4g DQo+IEFoIHVwcywgNyB3YXMgbm90IGluIG15IGluYm94IHdpdGggdGhlIHJlc3Qgb2YgdGhlIHNl cmllcy4gSnVzdA0KPiBub3RpY2VkLiBJIGhhZCBldmVuIHJldmlld2VkIHRoZSBwcmV2aW91cyB2 ZXJzaW9uLCBJIHNob3VsZCBoYXZlDQo+IHJlbWVtYmVyZWQgbGlua192YWxpZGF0ZSB3YXMgYWRk ZWQgbGF0ZXINCj4gDQo+Pj4NCj4+PiBJIHRoaW5rIHBhdGNoZXMgMSwgMiwgNCwgNSBhbmQgNiBm cm9tIHRoaXMgc2VyaWVzIGRvIG5vdCBkZXBlbmQgb24NCj4+PiB0aGUgaW50cm9kdWN0aW9uIG9m IG1lZGlhIGNvbnRyb2xsZXIgb3IgdGhlIHNjYWxlciwgcmlnaHQgPyAoSSdtIG5vdA0KPj4+IHN1 cmUgaWYgdGhlIERUUyBwYXRjaGVzIGRvKS4NCj4gDQo+IERvIERUUyBwYXRjaGVzIGRlcGVuZCBv biBtZWRpYS1jb250cm9sbGVyIHBsdW1iaW5nID8NCg0KSSB0aGluayBub3QsIGJ1dCwgSSBoYXZl IG5vdCB0ZXN0ZWQgdGhlbSB3aXRob3V0IHRoZSBtZWRpYSBjb250cm9sbGVyLg0KDQo+IA0KPj4+ DQo+Pj4gSWYgdGhhdCdzIHRoZSBjYXNlLCB3b3VsZCBpdCBtYWtlIHNlbnNlIHRvIHRvIGZhc3Qt dHJhY2sgdGhlbSAoYXMgc29tZQ0KPj4+IG9mIHRoZW0gYXJlIGZpeGVzKSBhbmQgdGhlbiBvbiB0 b3AgcGx1bWIgdGhlIG1lZGlhIGNvbnRyb2xsZXINCj4+PiBpbmZyYXN0cnVjdHVyZSB3aXRoIHRo aXMgcGF0Y2ggYW5kIHRoZSBvbmVzIHlvdSBoYXZlIGJlZW4gbWVudGlvbmluZyA/DQo+Pg0KPj4g SXQgd291bGQgbWFrZSBzZW5zZS4NCj4+DQo+IA0KPiBPbmNlIHRoZSBvdGhlciBkaXNjdXNzaW9u IHdpdGggSGFucyBhYm91dCB0aGUgc3RvcCBzdGF0ZSBpdCBtaWdodCBtYWtlDQo+IHNlbnNlIHRv IGZhc3RyYWNrIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBzZXJpZXMgPw0KDQpUaGUgb3RoZXIgdGhy ZWUgcGF0Y2hlcyAoNCw1LDYpIGFyZSBxdWl0ZSBpbmRlcGVuZGVudCBhbmQgY2FuIGdvIGZhc3Rl ci4NCj4gDQo+Pj4NCj4+Pj4+DQo+Pj4+Pj4gKyAgICAgaXNjLT5wYWRzW0lTQ19QQURfU0lOS10u ZmxhZ3MgPSBNRURJQV9QQURfRkxfU0lOSzsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgcmV0ID0g bWVkaWFfZW50aXR5X3BhZHNfaW5pdCgmaXNjLT52aWRlb19kZXYuZW50aXR5LCBJU0NfUEFEU19O VU0sDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc2MtPnBhZHMp Ow0KPj4+Pj4+ICsgICAgIGlmIChyZXQgPCAwKSB7DQo+Pj4+Pj4gKyAgICAgICAgICAgICBkZXZf ZXJyKGlzYy0+ZGV2LCAibWVkaWEgZW50aXR5IGluaXQgZmFpbGVkXG4iKTsNCj4+Pj4+PiArICAg ICAgICAgICAgIHJldHVybiByZXQ7DQo+Pj4+Pj4gKyAgICAgfQ0KPj4+Pj4+ICsNCj4+Pj4+PiAr ICAgICBpc2MtPm1kZXYuZGV2ID0gaXNjLT5kZXY7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIG1h dGNoID0gb2ZfbWF0Y2hfbm9kZShpc2MtPmRldi0+ZHJpdmVyLT5vZl9tYXRjaF90YWJsZSwNCj4+ Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNjLT5kZXYtPm9mX25vZGUpOw0KPj4+ Pj4+ICsNCj4+Pj4+PiArICAgICBzdHJzY3B5KGlzYy0+bWRldi5kcml2ZXJfbmFtZSwgS0JVSUxE X01PRE5BTUUsDQo+Pj4+Pj4gKyAgICAgICAgICAgICBzaXplb2YoaXNjLT5tZGV2LmRyaXZlcl9u YW1lKSk7DQo+Pj4+Pj4gKyAgICAgc3Ryc2NweShpc2MtPm1kZXYubW9kZWwsIG1hdGNoLT5jb21w YXRpYmxlLCBzaXplb2YoaXNjLT5tZGV2Lm1vZGVsKSk7DQo+Pj4+Pj4gKyAgICAgc25wcmludGYo aXNjLT5tZGV2LmJ1c19pbmZvLCBzaXplb2YoaXNjLT5tZGV2LmJ1c19pbmZvKSwgInBsYXRmb3Jt OiVzIiwNCj4+Pj4+PiArICAgICAgICAgICAgICBpc2MtPnY0bDJfZGV2Lm5hbWUpOw0KPj4+Pj4+ ICsgICAgIGlzYy0+bWRldi5od19yZXZpc2lvbiA9IHZlcjsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAg ICAgbWVkaWFfZGV2aWNlX2luaXQoJmlzYy0+bWRldik7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAg IGlzYy0+djRsMl9kZXYubWRldiA9ICZpc2MtPm1kZXY7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAg IHJldHVybiBpc2Nfc2NhbGVyX2luaXQoaXNjKTsNCj4+Pj4+PiArfQ0KPj4+Pj4+ICtFWFBPUlRf U1lNQk9MX0dQTChpc2NfbWNfaW5pdCk7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICt2b2lkIGlzY19tY19j bGVhbnVwKHN0cnVjdCBpc2NfZGV2aWNlICppc2MpDQo+Pj4+Pj4gK3sNCj4+Pj4+PiArICAgICBt ZWRpYV9lbnRpdHlfY2xlYW51cCgmaXNjLT52aWRlb19kZXYuZW50aXR5KTsNCj4+Pj4+PiArfQ0K Pj4+Pj4+ICtFWFBPUlRfU1lNQk9MX0dQTChpc2NfbWNfY2xlYW51cCk7DQo+Pj4+Pj4gKw0KPj4+ Pj4+ICAgICAvKiByZWdtYXAgY29uZmlndXJhdGlvbiAqLw0KPj4+Pj4+ICAgICAjZGVmaW5lIEFU TUVMX0lTQ19SRUdfTUFYICAgIDB4ZDVjDQo+Pj4+Pj4gICAgIGNvbnN0IHN0cnVjdCByZWdtYXBf Y29uZmlnIGlzY19yZWdtYXBfY29uZmlnID0gew0KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy1zY2FsZXIuYyBiL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLXNjYWxlci5jDQo+Pj4+Pj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQNCj4+Pj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmVjOTVjOTY2NTg4Mw0KPj4+Pj4+IC0t LSAvZGV2L251bGwNCj4+Pj4+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL2F0bWVsL2F0 bWVsLWlzYy1zY2FsZXIuYw0KPj4+Pj4+IEBAIC0wLDAgKzEsMjQ1IEBADQo+Pj4+Pj4gKy8vIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkNCj4+Pj4+PiArLyoNCj4+Pj4+PiAr ICogTWljcm9jaGlwIEltYWdlIFNlbnNvciBDb250cm9sbGVyIChJU0MpIFNjYWxlciBlbnRpdHkg c3VwcG9ydA0KPj4+Pj4+ICsgKg0KPj4+Pj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMjEgTWljcm9j aGlwIFRlY2hub2xvZ3ksIEluYy4NCj4+Pj4+DQo+Pj4+PiBUaW1lIGZsaWVzISBJdCdzIDIwMjIg YWxyZWFkeSA6KQ0KPj4+Pj4NCj4+Pj4+PiArICoNCj4+Pj4+PiArICogQXV0aG9yOiBFdWdlbiBI cmlzdGV2IDxldWdlbi5ocmlzdGV2QG1pY3JvY2hpcC5jb20+DQo+Pj4+Pj4gKyAqDQo+Pj4+Pj4g KyAqLw0KPj4+Pj4+ICsNCj4+Pj4+PiArI2luY2x1ZGUgPG1lZGlhL21lZGlhLWRldmljZS5oPg0K Pj4+Pj4+ICsjaW5jbHVkZSA8bWVkaWEvbWVkaWEtZW50aXR5Lmg+DQo+Pj4+Pj4gKyNpbmNsdWRl IDxtZWRpYS92NGwyLWRldmljZS5oPg0KPj4+Pj4+ICsjaW5jbHVkZSA8bWVkaWEvdjRsMi1zdWJk ZXYuaD4NCj4+Pj4+PiArDQo+Pj4+Pj4gKyNpbmNsdWRlICJhdG1lbC1pc2MtcmVncy5oIg0KPj4+ Pj4+ICsjaW5jbHVkZSAiYXRtZWwtaXNjLmgiDQo+Pj4+Pj4gKw0KPj4+Pj4+ICtzdGF0aWMgaW50 IGlzY19zY2FsZXJfZ2V0X2ZtdChzdHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLA0KPj4+Pj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnNkX3N0YXRl LA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZf Zm9ybWF0ICpmb3JtYXQpDQo+Pj4+Pj4gK3sNCj4+Pj4+PiArICAgICBzdHJ1Y3QgaXNjX2Rldmlj ZSAqaXNjID0gY29udGFpbmVyX29mKHNkLCBzdHJ1Y3QgaXNjX2RldmljZSwgc2NhbGVyX3NkKTsN Cj4+Pj4+PiArICAgICBzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICp2NGwyX3RyeV9mbXQ7DQo+ Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIGlmIChmb3JtYXQtPndoaWNoID09IFY0TDJfU1VCREVWX0ZP Uk1BVF9UUlkpIHsNCj4+Pj4+PiArICAgICAgICAgICAgIHY0bDJfdHJ5X2ZtdCA9IHY0bDJfc3Vi ZGV2X2dldF90cnlfZm9ybWF0KHNkLCBzZF9zdGF0ZSwNCj4+Pj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdC0+cGFkKTsNCj4+ Pj4+PiArICAgICAgICAgICAgIGZvcm1hdC0+Zm9ybWF0ID0gKnY0bDJfdHJ5X2ZtdDsNCj4+Pj4+ PiArDQo+Pj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gMDsNCj4+Pj4+PiArICAgICB9DQo+Pj4+ Pj4gKw0KPj4+Pj4+ICsgICAgIGZvcm1hdC0+Zm9ybWF0ID0gaXNjLT5zY2FsZXJfZm9ybWF0Ow0K Pj4+Pj4NCj4+Pj4+IGlzYy0+c2NhbGVyX2Zvcm1hdCBpcyBvbmx5IHVzZWQgaW5zaWRlIHRoaXMg ZmlsZSBpZiBJJ20gbm90IG1pc3Rha2VuLg0KPj4+Pj4gSSB3b25kZXIgd2h5IGl0IGxpdmVzIGlu IHRoZSBpc2NfZGV2aWNlIHN0cnVjdC4NCj4+Pj4NCj4+Pj4gaXNjX2RldmljZSBpcyBhIHBsYWNl aG9sZGVyIGZvciBhbGwgaXNjIHRoaW5ncy4NCj4+Pj4NCj4+Pj4gSSB3b3VsZCBub3QgY3JlYXRl IGEgc2VwYXJhdGUgc3RydWN0IGluIHRoaXMgZmlsZSB0aGF0IHdvdWxkIGhhdmUgdG8gYmUNCj4+ Pj4gYWxsb2NhdGVkIGV0Yy4uLiBqdXN0IGZvciBvbmUgdHdvIHRoaW5ncy4gU28gSSBwcmVmZXJy ZWQgdG8gaGF2ZSBpdCBpbg0KPj4+PiB0aGUgc2FtZSBwbGFjZSBhcyBhbGwgdGhlIG90aGVyIHRo aW5ncy4NCj4+Pj4NCj4+Pj4+DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIHJldHVybiAwOw0KPj4+ Pj4+ICt9DQo+Pj4+Pj4gKw0KPj4+Pj4+ICtzdGF0aWMgaW50IGlzY19zY2FsZXJfc2V0X2ZtdChz dHJ1Y3QgdjRsMl9zdWJkZXYgKnNkLA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnNkX3N0YXRlLA0KPj4+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXZfZm9ybWF0ICpyZXFfZm10KQ0KPj4+ Pj4+ICt7DQo+Pj4+Pj4gKyAgICAgc3RydWN0IGlzY19kZXZpY2UgKmlzYyA9IGNvbnRhaW5lcl9v ZihzZCwgc3RydWN0IGlzY19kZXZpY2UsIHNjYWxlcl9zZCk7DQo+Pj4+Pj4gKyAgICAgc3RydWN0 IHY0bDJfbWJ1c19mcmFtZWZtdCAqdjRsMl90cnlfZm10Ow0KPj4+Pj4+ICsgICAgIHN0cnVjdCBp c2NfZm9ybWF0ICpmbXQ7DQo+Pj4+Pj4gKyAgICAgdW5zaWduZWQgaW50IGk7DQo+Pj4+Pj4gKw0K Pj4+Pj4+ICsgICAgIGlmIChyZXFfZm10LT5wYWQgPT0gSVNDX1NDQUxFUl9QQURfU09VUkNFKQ0K Pj4+Pj4+ICsgICAgICAgICAgICAgdjRsX2JvdW5kX2FsaWduX2ltYWdlDQo+Pj4+Pj4gKyAgICAg ICAgICAgICAgICAgICAgICgmcmVxX2ZtdC0+Zm9ybWF0LndpZHRoLCAxNiwgaXNjLT5tYXhfd2lk dGgsIDAsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAmcmVxX2ZtdC0+Zm9ybWF0Lmhl aWdodCwgMTYsIGlzYy0+bWF4X2hlaWdodCwgMCwgMCk7DQo+Pj4+Pj4gKyAgICAgZWxzZQ0KPj4+ Pj4+ICsgICAgICAgICAgICAgdjRsX2JvdW5kX2FsaWduX2ltYWdlDQo+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICgmcmVxX2ZtdC0+Zm9ybWF0LndpZHRoLCAxNiwgMTAwMDAsIDAsDQo+Pj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgICAmcmVxX2ZtdC0+Zm9ybWF0LmhlaWdodCwgMTYsIDEw MDAwLCAwLCAwKTsNCj4+Pj4+DQo+Pj4+PiBXaGVyZSBkb2VzIDEwMDAwIGNvbWUgZnJvbSA/DQo+ Pj4+DQo+Pj4+IEl0J3MgYSByYW5kb20gbnVtYmVyLiBEbyB5b3UgaGF2ZSBhbnkgc3VnZ2VzdGlv biBmb3IgYSBiZXR0ZXIgb25lID8NCj4+Pg0KPj4+IEFuIGFjdHVhbCBIVyBsaW1pdCA/IDopDQo+ Pg0KPj4gVGhlcmUgaXMgbm8gaGFyZHdhcmUgbGltaXQuIFRoZSBJU0MganVzdCBzdG9wcyBzYW1w bGluZyBwaXhlbHMgb25jZSB0aGUNCj4+IGNyb3AgbGltaXQgaXMgcmVhY2hlZC4gVGhlIGVsZW1l bnQgdGhhdCBnZW5lcmF0ZXMgcGl4ZWxzIGNvdWxkIGdvIG9uDQo+PiBmb3JldmVyICwgb3IgdW50 aWwgdGhlIG5leHQgSEJMQU5LL1ZCTEFOSy4gU28gd2hhdCBsaW1pdCBjb3VsZCBJIHBsYWNlDQo+ PiBoZXJlID8NCj4+IFRoZSBjcm9wcGluZyBpcyBtYW5kYXRvcnksIG90aGVyd2lzZSB0aGVyZSBj b3VsZCBiZSBhbiBvdmVyZmxvdyB3LnIudC4NCj4+IHRoZSBidWZmZXIgc2l6ZSBpZiB0aGUgSVND IHdvdWxkIHNhbXBsZSBtb3JlIHBpeGVscyB0aGFuIHRoZSBzb2Z0d2FyZQ0KPj4gZXhwZWN0cyBp dCB0by4NCj4+DQo+Pj4NCj4+Pj4gTWF5YmUgdGhpcyB3b3VsZCBiZSBtdWNoIG1vcmUgY2xlYXIg d2l0aCBteSBjb21tZW50cyBiZWxvdyAod2hlcmUgSSB3aWxsDQo+Pj4+IGV4cGxhaW4gd2hhdCB0 aGUgaXNjIHNjYWxlciBkb2VzICkNCj4+Pj4gSW4gc2hvcnQsIGl0IGFsbG93cyB0aGUgb3RoZXIg ZW50aXR5IGluIHRoZSBsaW5rIHRvICdzaW5rJyBhIGh1Z2UgZm9ybWF0DQo+Pj4+IGludG8gdGhp cyAnc2NhbGVyJyAuIEJlY2F1c2UgdGhlIHNjYWxlciBjYW4gY3JvcCBhbnl0aGluZyBiYXNpY2Fs bHkgZG93bg0KPj4+PiB0byB0aGUgYmlnZ2VzdCBmb3JtYXQgc2l6ZSB0aGUgSVNDIGNvdWxkIGhh bmRsZS4NCj4+Pj4NCj4+Pg0KPj4+IGRvZXNuJ3QgaXQgaGF2ZSBhbnkgZG9jdW1lbnRlZCBpbnB1 dCBzaXplIGxpbWl0ID8NCj4+DQo+PiBBcyBzdGF0ZWQgYWJvdmUsIElTQyBoYW5kbGVzIGEgcGl4 ZWwgc3RyZWFtIGFuZCBzdG9yZXMgaXQgaW4gYW4gaW50ZXJuYWwNCj4+IFNSQU0uIElTQyBzdG9w cyBzYW1wbGluZyB3aGVuIHRoaXMgU1JBTSBpcyBmdWxsIG9yIHdoZW4gdGhlIGNyb3BwaW5nDQo+ PiBsaW1pdCBpcyByZWFjaGVkLg0KPj4gQWZ0ZXIgc3RvcmluZyB0aGUgcGl4ZWxzIGluIHRoZSBT UkFNICh3aGljaCBpcyBsaW1pdGVkIHRvIHRoZSBJU0MNCj4+IG1heGltdW0gZnJhbWUgc2l6ZSks IHRoZSBJU0Mgd2lsbCB3b3JrIG9uIHRoZSBwaXhlbHMgYW5kIHRoZW4gRE1BIHRoZQ0KPj4gZnJh bWUgdG8gYW5vdGhlciBSQU0uDQo+Pg0KPiANCj4gSSB1bmRlcnN0YW5kLi4uDQo+IA0KPiBTbyB3 aGF0ZXZlciB0aGUgaW5wdXQgc2l6ZSBpcywgb25seSB0aGUgZmlyc3Qgbi10aCBieXRlcyBhcmUg YWN0dWFsbHkNCj4gZHVtcGVkIHRvIG1lbW9yeSwgdGhlIGZvbGxvd2luZyBvbmVzIGFyZSBkaXNj YXJkZWQuDQoNClllcyAhIFRoYXQncyB0aGUgYmVoYXZpb3IuDQo+IA0KPiBTbyB0aGUgY3JvcCBp cyBhbHdheXMgYXBwbGllZCBvbiB0aGUgdG9wLWxlZnRtb3N0IGNvcm5lciBhcyBhDQo+IGNvbnNl cXVlbmNlLCByaWdodCA/DQoNClJpZ2h0LiBQaXhlbHMgY29tZSBpbiBvcmRlci4gVGhlIElTQyBk b2VzIG5vdCByZWFsbHkga25vdyBob3cgbWFueSANCnBpeGVscyBhcmUgY29taW5nIHVudGlsIGl0 cyBtZW1vcnkgaXMgZnVsbCAob3IgY291bnRpbmcgdW50aWwgdGhlIGNyb3AgDQpsaW1pdCBpcyBy ZWFjaGVkKS4gQWZ0ZXIgdGhhdCBpdCBzdG9wcyBzYW1wbGluZyBwaXhlbHMsIGFuZCB3YWl0cyBm b3IgDQp2YmxhbmsgdG8gZmluaXNoIHRoZSBmcmFtZS4NCg0KDQo+IA0KPiBJIHVuZGVyc3RhbmQg d2h5IHlvdSBoYWQgZGlmZmljdWx0aWVzIHBpY2tpbmcgYSBkZWZhdWx0IDopDQo+IA0KPiBUaGlz IGlzIG5vdCBlYXN5IHRvIGhhbmRsZSwgYXMgdGhlIHNjYWxlciBkb2Vzbid0IGFjdHVhbGx5IGFw cGxpZXMgYQ0KPiBjcm9wIGJ1dCByYXRoZXIgc3RvcHMgY2FwdHVyaW5nIGFmdGVyIHRoZSBkZXN0 aW5hdGlvbiBidWZmZXIgaGFzIGJlZW4NCj4gc2F0dXJhdGVkLiBTbyB0aGUgbGltaXRpbmcgZmFj dG9yIGlzIHRoZSBmdWxsIGltYWdlIHNpemUsIG5vdCBvbmUgb2YNCj4gaXRzIGRpbWVuc2lvbnMs IGxpa2UgaW4gZXhhbXBsZSB0aGUgbGluZSBsZW5ndGguIFRoaXMgbWFrZXMgaXQgaGFyZA0KPiB0 byBhZGp1c3QgY3JvcHBpbmcgdG8gc29tZXRoaW5nIG1lYW5pbmdmdWwgZm9yIG1vc3QgdXNlIGNh c2VzLg0KDQpJIGRpZG4ndCBrbm93IGhvdyB0byBuYW1lIHRoaXMgZXhjZXB0IGNyb3AuIEl0ICdj cm9wcyBvdXQnIHdoYXQgZG9lcyBub3QgDQpmaXQgaW4gdGhlIGludGVybmFsIG1lbW9yeSBvZiB0 aGUgSVNDDQoNCj4gDQo+IEluIHlvdXIgYmVsb3cgZXhhbXBsZSB5b3Ugc3VnZ2VzdCB0aGF0IGFu IGltYWdlIHNpemUgb2YgKDgwMDAwMCB4IDEwKQ0KPiB3b3VsZCB0aGVvcmV0aWNhbGx5IGJlIGNh cHR1cmVkIGNvcnJlY3RseS4gIFdoYXQgaWYgdGhlIGlucHV0IGlzIG9mDQo+IHNpemUgKDgwMDAw MCB4IDEwICsgMSkuIFdoYXQgc2l6ZSB3b3VsZCB5b3Ugc2V0IHRoZSBjcm9wIHJlY3RhbmdsZSB0 byA/DQo+IA0KPiBJIHdvdWxkbid0IGhvd2V2ZXIgYmUgdG9vIG11Y2ggY29uY2VybmVkIGZvciB0 aGUgbW9tZW50LCBidXQgSSB3b3VsZA0KPiByZWNvcmQgdGhpcyBpbiBhIGNvbW1lbnQgPw0KDQpJ IGRpc2N1c3NlZCBhIGJpdCBtb3JlIHdpdGggZGVzaWduZXIgYW5kIGxvb2tlZCBpbiBkYXRhc2hl ZXQuDQpJdCBsb29rcyBsaWtlIHRoZSBob3Jpem9udGFsIGxpbmUgbGVuZ3RoIGlzIG5vdCBhIGhh cmQgbGltaXQsIGJ1dCBpdCANCm1ha2VzIHRoZSBJU0MgaW50ZXJuYWwgSVNQIHN0b3Agd29ya2lu Zywgc28gSSB3b3VsZCBrZWVwIHRoZSBob3Jpem9udGFsIA0KbGltaXQgYXMgd2VsbCBmb3Igbm93 LCB1bmxlc3MgYW4gaW1wb3J0YW50IHVzZSBjYXNlIChJIGFtIGNvbWluZyBiYWNrIHRvIA0KdGhh dCkuIFRoZSB2ZXJ0aWNhbCBsaW1pdCBsb29rcyB0byBiZSBhIGhhcmQgcmVxdWlyZW1lbnQuDQpT byBpbiBzaG9ydCwgd2UgaGF2ZSB0byBpbXBvc2UgYSB2ZXJ0aWNhbCBsaW1pdCBvZiAyNDY0ICwg d2UgY2Fubm90IGhhdmUgDQptb3JlIGxpbmVzIHRoYW4gdGhlc2UuIFNvIGlmIHRoZSBob3Jpem9u dGFsIGlzIDEwMCBwaXhlbHMgZS5nLiwgd2UgY2FuIA0KY2FwdHVyZSBvbmx5IDEwMHgyNDY0IC4N CkluIHByYWN0aWNlIHdlIGNvdWxkIGNhcHR1cmUgWzE2LDMyNjRdIG9uIHRoZSBob3Jpem9udGFs LCBhbmQgWzE2LDI0NjRdIA0Kb24gdGhlIHZlcnRpY2FsLCBhbmQgaW4gdGhlb3J5IGhvcml6b250 YWwgY291bGQgZ28gbW9yZSBsaWtlIFsxNiwgNDAwMF0sIA0KYnV0IHdlIGhhdmUgdG8gbGltaXQg dGhlIHZlcnRpY2FsLCBhbmQgd2l0aG91dCB0aGUgaW50ZXJuYWwgSVNQLg0KU28gSSB3b3VsZCBu b3QgaGFwaGF6YXJkbHkgZ28gaW4gdGhpcyBkaXJlY3Rpb24uIExldCdzIHN0aWNrIHRvIHRoZSAN CmRhdGFzaGVldCBtYXhpbXVtIGZyYW1lIDMyNjR4MjQ2NCAuDQpBY2NvcmRpbmcgdG8gdGhpcyAs IEkgY2hhbmdlZCB0aGUgZnJhbWUgc2l6ZSBvZiB0aGUgSVNDIHRvIGJlIGEgDQpjb250aW51b3Vz IHNpemUgZnJvbSBbMTYsMTZdIHRvIFszMjY0LDI0NjRdDQpBYm91dCB0aGF0IHVzZSBjYXNlIHRo YXQgSSB0YWxrZWQgYWJvdXQgZWFybGllciwgd2UgaGF2ZSBvbmUgc2Vuc29yICwgDQppbXgyNzQs IHdoaWNoIGlzIG1vcmUgd2lkZSwgYW5kIG91dHB1dHMgc29tZXRoaW5nIGxpa2UgMzgwMHgyMTAw IC4NCldpdGggdGhlIGNyb3BwaW5nIGFuZCBsaW1pdGF0aW9ucyB3ZSBoYXZlIGluIHBsYWNlIG5v dywgdGhpcyB3aWxsIGJlIA0KbGltaXRlZCB0byAzMjY0eDIxMDAgLCB3aGljaCBpcyBpbiBsaW5l IHdpdGggZGF0YXNoZWV0IGFuZCB3aGF0IHRoZSBJU0MgDQpzdXBwb3J0cyBub3cuDQpBcyBpbiB0 aGVvcnkgd2UgY291bGQgY2FwdHVyZSAzODAweDIxMDAgYXMgbG9uZyBhcyB0aGUgU1JBTSBkb2Vz bid0IGdldCANCmZ1bGwsIGZvciBub3cgSSB3b3VsZCBsaWtlIHRvIGF2b2lkIGNhcHR1cmluZyB0 aGlzIHNpemUgKGFuZCBkaXNhYmxlIHRoZSANCmludGVybmFsIElTUCksIHVudGlsIHdlIGhhdmUg c29tZW9uZSByZWFsbHkgYXNraW5nIGZvciBzdWNoIGtpbmQgb2YgDQpjYXB0dXJlIGFuZCB3aXRo IHNvbWUgZ29vZCByZWFzb25zLg0KSW4gc2hvcnQgSSB3b3VsZCBsaWtlIHRvIGhhdmUgdGhlIGNy b3AgcmVjdGFuZ2xlIHRvIDMyNjR4MjQ2NCBhbmQgdGhlIA0KYm91bmRzIHdvdWxkIGJlIGxpbWl0 ZWQgdG8gdGhlIGluY29taW5nIGZyYW1lIGJ1dCBubyBIPjMyNjQgYW5kIG5vIA0KVj4yNDY0LiBE b2VzIHRoYXQgbWFrZSBzZW5zZSA/DQoNCj4gDQo+Pj4NCj4+Pj4+DQo+Pj4+Pj4gKw0KPj4+Pj4+ ICsgICAgIHJlcV9mbXQtPmZvcm1hdC5jb2xvcnNwYWNlID0gVjRMMl9DT0xPUlNQQUNFX1NSR0I7 DQo+Pj4+Pj4gKyAgICAgcmVxX2ZtdC0+Zm9ybWF0LmZpZWxkID0gVjRMMl9GSUVMRF9OT05FOw0K Pj4+Pj4+ICsgICAgIHJlcV9mbXQtPmZvcm1hdC55Y2Jjcl9lbmMgPSBWNEwyX1lDQkNSX0VOQ19E RUZBVUxUOw0KPj4+Pj4+ICsgICAgIHJlcV9mbXQtPmZvcm1hdC5xdWFudGl6YXRpb24gPSBWNEwy X1FVQU5USVpBVElPTl9ERUZBVUxUOw0KPj4+Pj4+ICsgICAgIHJlcV9mbXQtPmZvcm1hdC54ZmVy X2Z1bmMgPSBWNEwyX1hGRVJfRlVOQ19ERUZBVUxUOw0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICBm bXQgPSBpc2NfZmluZF9mb3JtYXRfYnlfY29kZShpc2MsIHJlcV9mbXQtPmZvcm1hdC5jb2RlLCAm aSk7DQo+Pj4+Pg0KPj4+Pj4gU28geW91IHJlbHkgb24gdGhlIGlzYyBmb3JtYXQgbGlzdCBmb3Ig dGhlIHNjYWxlciBhcyB3ZWxsID8NCj4+Pj4+IEkgdGhpbmsgaXQncyBmaW5lIGFzIGxvbmcgYXMg dGhleSBhcmUgaWRlbnRpY2FsDQo+Pj4+DQo+Pj4+IFllcywgdGhlIHNjYWxlciBpcyBraW5kIG9m IGEgZHVtbXkgZW50aXR5ICwgYnV0IGl0J3MgcmVxdWlyZWQgYnkgdGhlDQo+Pj4+IG1lZGlhIGNv bnRyb2xsZXIgdmFsaWRhdGlvbiBvZiB0aGUgcGlwZWxpbmUuDQo+Pj4+DQo+Pj4NCj4+PiBNb3Jl IG9uIHRoaXMgbGF0ZXINCj4+Pg0KPj4+Pj4NCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgaWYgKCFm bXQpDQo+Pj4+Pj4gKyAgICAgICAgICAgICBmbXQgPSAmaXNjLT5mb3JtYXRzX2xpc3RbMF07DQo+ Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIHJlcV9mbXQtPmZvcm1hdC5jb2RlID0gZm10LT5tYnVzX2Nv ZGU7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIGlmIChyZXFfZm10LT53aGljaCA9PSBWNEwyX1NV QkRFVl9GT1JNQVRfVFJZKSB7DQo+Pj4+Pj4gKyAgICAgICAgICAgICB2NGwyX3RyeV9mbXQgPSB2 NGwyX3N1YmRldl9nZXRfdHJ5X2Zvcm1hdChzZCwgc2Rfc3RhdGUsDQo+Pj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFfZm10LT5w YWQpOw0KPj4+Pj4+ICsgICAgICAgICAgICAgKnY0bDJfdHJ5X2ZtdCA9IHJlcV9mbXQtPmZvcm1h dDsNCj4+Pj4+PiArICAgICAgICAgICAgIC8qIFRyeWluZyBvbiB0aGUgcGFkIHNpbmsgbWFrZXMg dGhlIHNvdXJjZSBzaW5rIGNoYW5nZSB0b28gKi8NCj4+Pj4+PiArICAgICAgICAgICAgIGlmIChy ZXFfZm10LT5wYWQgPT0gSVNDX1NDQUxFUl9QQURfU0lOSykgew0KPj4+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICB2NGwyX3RyeV9mbXQgPQ0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHY0bDJfc3ViZGV2X2dldF90cnlfZm9ybWF0KHNkLCBzZF9zdGF0ZSwNCj4+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ U0NfU0NBTEVSX1BBRF9TT1VSQ0UpOw0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAqdjRs Ml90cnlfZm10ID0gcmVxX2ZtdC0+Zm9ybWF0Ow0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICAgICAg ICAgICAgICAgICAgdjRsX2JvdW5kX2FsaWduX2ltYWdlKCZ2NGwyX3RyeV9mbXQtPndpZHRoLA0K Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYsIGlz Yy0+bWF4X3dpZHRoLCAwLA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnY0bDJfdHJ5X2ZtdC0+aGVpZ2h0LA0KPj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYsIGlzYy0+bWF4X2hlaWdodCwgMCwgMCk7 DQo+Pj4+Pj4gKyAgICAgICAgICAgICB9DQo+Pj4+Pj4gKyAgICAgICAgICAgICAvKiBpZiB3ZSBh cmUganVzdCB0cnlpbmcsIHdlIGFyZSBkb25lICovDQo+Pj4+Pj4gKyAgICAgICAgICAgICByZXR1 cm4gMDsNCj4+Pj4+PiArICAgICB9DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIGlzYy0+c2NhbGVy X2Zvcm1hdCA9IHJlcV9mbXQtPmZvcm1hdDsNCj4+Pj4+DQo+Pj4+PiBObyBwZXItcGFkIGZvcm1h dCBidXQgYSBnbG9iYWwgc2NhbGVyX2Zvcm1hdCA/IEhvdyBkbyB5b3UgY29uZmlndXJlIHNjYWxp bmcgPw0KPj4+Pj4NCj4+Pj4+IEFjdHVhbGx5LCBJIHdvdWxkIGxpa2UgdG8ga25vdyBtb3JlIGFi b3V0IHRoZSBzY2FsZXIgZGV2aWNlDQo+Pj4+PiBjYXBhYmlsaXRpZXMuIFdoYXQgZnVuY3Rpb25z IGNhbiB0aGlzIElQIHBlcmZvcm0gPyBEb2VzIGl0IGRvDQo+Pj4+PiBjcm9wcGluZywgY2FuIGl0 IGFsc28gZG8gKGRvd24pc2NhbGluZyBvciBldmVuIGNvbXBvc2l0aW9uID8NCj4+Pj4+DQo+Pj4+ PiBJIHRoaW5rIGl0IGlzIHdvcnRoIHRvIHJlYWQNCj4+Pj4+IGh0dHBzOi8vd3d3Lmtlcm5lbC5v cmcvZG9jL2h0bWwvbGF0ZXN0L3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL2Rldi1zdWJkZXYuaHRt bCN2NGwyLXN1YmRldi1zZWxlY3Rpb25zDQo+Pj4+PiB3aGVyZSBpdCBpcyByZXBvcnRlZCBob3cg Y3JvcHBpbmcgYW5kIHNjYWxpbmcgYXJlIGltcGxlbWVudGVkIGJ5IHVzaW5nDQo+Pj4+PiB0aGUg c2VsZWN0aW9uIEFQSS4NCj4+Pj4+DQo+Pj4+PiBGaWd1cmUgNC41IGlzIHBhcnRpY3VsYXJseSBo ZWxwZnVsIHRvIGV4cGxhaW4gdGhlIHNpbXBsZSBjcm9wIGNhc2UsDQo+Pj4+PiBmb3Igd2hpY2gg eW91IG5lZWQgdG8gaW1wbGVtZW50IHN1cHBvcnQgdG8gYnkgYWRkaW5nIHNfc2VsZWN0aW9uIG9u DQo+Pj4+PiB0aGUgc2luayBwYWQgVEdUX0NST1AgdGFyZ2V0Lg0KPj4+Pg0KPj4+PiBUaGUgc2Nh bGVyIGlzIGtpbmQgb2YgYSBkdW1teSBlbnRpdHkuDQo+Pj4+IFRoZSBwcm9ibGVtIGlzIHRoYXQg ZGlmZmVyZW50IHN1YmRldmljZXMgY2Fubm90IGJlIGNvbm5lY3RlZCBkaXJlY3RseSB0bw0KPj4+ PiBhIHY0bCBlbnRpdHksIGJlY2F1c2UgdGhlIElTQyBkb2VzIGNyb3BwaW5nIG9uIHRoZSBpbmNv bWluZyBmcmFtZS4NCj4+Pj4gVGhlIElTQyBoYXMgYSBsaW1pdCBvbiB0aGUgdG90YWwgbnVtYmVy IG9mIHBpeGVscyBwZXIgZnJhbWUsIHRodXMgaXQNCj4+Pj4gd2lsbCBkbyBhIGNyb3AuDQo+Pj4N Cj4+PiBXaGF0IGlzIHRoaXMgbGltaXQgcmVsYXRlZCB0byA/IEkgZG9uJ3Qga25vdyB0aGUgSVND IGludGVybmFscywgYnV0IGlzDQo+Pj4gdGhlIGxpbWl0YXRpb24gZHVlIHRvIHRoZSBvdmVyYWxs IGltYWdlIHNpemUsIG9yIG1heWJlIGl0J3MgZHVlIHRvDQo+Pj4gc29tZSBsaW5lIGJ1ZmZlcnMg YmVpbmcgbGltaXRlZCBpbiB0aGUgc2l6ZSB0aGV5IGNhbiB0cmFuc2ZlciB0bw0KPj4+IG1lbW9y eSA/IElzIGl0IGEgbGltaXRhdGlvbiBvbiB0aGUgc2l6ZSBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxz LCBvciBpcw0KPj4+IGl0IGR1ZSB0byBhIGxpbWl0YXRpb24gb2YgdGhlIHByb2Nlc3NpbmcgYmFu ZHdpZHRoIG9uIHRoZSBpbnB1dA0KPj4+IGludGVyZmFjZSBhbmQgdGh1cyBkZXBlbmRzIG9uIHRo ZSBhY3R1YWwgc2l6ZSBvZiB0aGUgaW1hZ2UgaW4gYnl0ZXMgPw0KPj4NCj4+IExpbWl0YXRpb24g aXMgYm90aCBvbiBsaW5lIHNpemUgYW5kIGZ1bGwgaW1hZ2Ugc2l6ZS4gRnJvbSBteQ0KPj4gdW5k ZXJzdGFuZGluZywgaXMgdGhhdCB0aGUgaW50ZXJuYWwgU1JBTSBpcyBsaW1pdGVkICg4IE1waXhl bHMgd2l0aCBhDQo+PiBzbWFsbCBzYWZlIGJ1ZmZlciBvbiB0b3AgaW4gdGhlIGNhc2Ugb2Ygc2Ft YTdnNSApDQo+PiBUaGlzIFNSQU0gY291bGQgYmUgdXNlZCBhcyA4MDAwMDB4MTAgZm9yIGV4YW1w bGUsIG9yIDMyMDB4MjQ2NCBmb3INCj4+IGFub3RoZXIgZXhhbXBsZS4gSG93ZXZlciwgSSBhbSBu b3Qgc3VyZSBpZiBhIHJlYWwgbGluZSBvZiA4MDAsMDAwIHBpeGVscw0KPj4gbWFrZSBzZW5zZSwg b3IgaWYgdGhlcmUgaXMgYW5vdGhlciBpbnRlcm5hbCBtZWNoYW5pc20gaW4gdGhlIElTQyB0aGF0 DQo+PiBzdG9wcyBpdC4NCj4+IEluIGFueSBjYXNlLCB0aGUgSVNDIGlzIGNyb3BwaW5nIHRoZSBp bmNvbWluZyBmcmFtZSBmcm9tIGFhYVhiYmIgdXAgdG8NCj4+IHRoZSBtYXhpbXVtIGZyYW1lIHRo YXQgaXQgY2FuIGhhbmRsZQ0KPj4NCj4+Pg0KPj4+PiBTbywgaWYgSSBhbGxvdyBlLmcuIGFuIGVu dGl0eSB0aGF0IHNlbmRzIDMyODB4MjQ2NCAsIHdoZW4gdGhlIElTQyBjYW4NCj4+Pj4gb25seSBo YW5kbGUgMzI2NHgyNDY0ICwgdGhlbiB3ZSBoYXZlIHR3byBjaG9pY2VzOg0KPj4+PiAxLyBjcm9w IGl0IGFuZCBvdXRwdXQgdGhlIDMyNjR4MjQ2NCAtPiBjYW5ub3QsIGJlY2F1c2UgdXNlcnNwYWNl IGV4cGVjdHMNCj4+Pj4gMzI4MHgyNDY0LCBhbmQgdGhlIHdob2xlIHBpcGVsaW5lIGZhaWxzIHRv IGNvbmZpZ3VyZSwgdGhlcmUgaXMgYQ0KPj4+PiBtaXNtYXRjaCBiZXR3ZWVuIC9kZXYvdmlkZW8g b3V0cHV0IGFuZCB3aGF0IHRoZSB3aG9sZSBwaXBlbGluZSBwcm9kdWNlcw0KPj4+DQo+Pj4gSSdt IGNvbmZ1c2VkIGluIGZpcnN0IHBsYWNlLiBJZiB0aGUgSVNDIGNhbm5vdCBvdXRwdXQgYW55dGhp bmcgbGFyZ2VyDQo+Pj4gdGhhbiAzMjY0eDI0NjQsIHRoZW4gaWYgdXNlcnNwYWNlIHNldHMgYSAz MjgweDI0NjQgc2l6ZSBvbiB0aGUgSVNDLA0KPj4+IHRoaXMgc2hvdWxkIGJlIGFkanVzdGVkIHRv IDMyNjR4MjQ2NC4NCj4+DQo+PiB5ZXMsIHRoYXQgaXMgdHJ1ZS4gSG93ZXZlciwgd2l0aG91dCBh biBlbnRpdHkgdGhhdCBzYXlzICdJIGFtIGRvaW5nDQo+PiBjcm9wcGluZycsIHRoZSBtZWRpYSBw aXBlbGluZSB3aWxsIGZhaWwsIGJlY2F1c2UgcHJldmlvdXMgZW50aXR5IHdpbGwNCj4+IG91dHB1 dCAzMjgweDI0NjQgLg0KPj4gVGhlIGNvbmNsdXNpb24gdG8gY3JlYXRlIGEgc2NhbGVyIGVudGl0 aXR5IHdhcyBkb25lIGR1cmluZyBteSBsYXN0IHllYXINCj4+IGRpc2N1c3Npb25zIG9uIHRoZSBJ UkMuIEkgY291bGQgbm90IGZpbmQgYSB3YXkgdG8gcGVyZm9ybSB0aGlzIGNyb3BwaW5nDQo+PiBh dCB0aGUgdjRsIGVudGl0eSBzaWRlLCBhbmQgb25lIHJlYXNvbiBpcyB0aGF0IHRoZSB2NGwgZW50 aXR5IGRvZXMgbm90DQo+PiBzdXBwb3J0IHdoYXQgSSBuZWVkZWQgLCBvciBhdCBsZWFzdCB0aGF0 IHdhcyBteSB1bmRlcnN0YW5kaW5nLg0KPj4gWW91IGNsYWltIHRoYXQgdGhlIHY0bCBlbnRpdHkg Y291bGQgcGVyZm9ybSB0aGUgY3JvcHBpbmcgaW4gdGhlIHNhbWUNCj4+IGVudGl0eSA/DQo+IA0K PiBJIHRob3VnaHQgc28sIGJ1dCBJIGhhdmVuJ3QgdHJpZWQgdG8gYmUgaG9uZXN0DQo+IA0KPj4N Cj4+IExldCdzIGFzc3VtZSBmb3IgYSBtaW51dGUgdGhhdCBpdCBjb3VsZCBkbyB0aGlzLiBFdmVu IHNvLCBJIHdvdWxkIHByZWZlcg0KPj4gdG8gaGF2ZSBhIHNlcGFyYXRlIHNjYWxlciBlbnRpdHkg dG8gZG8gdGhpcyAsIGZvciBzZXZlcmFsIHJlYXNvbnM6DQo+PiAtPiBJIHdvdWxkIGxpa2UgdG8g YmUgYWJsZSB0byBjcm9wIHRoZSBmcmFtZSBhcmJpdHJhcmlseSBpZiBJIHdhbnQgdG8sDQo+PiBh bmQgdGhlIHNjYWxlciB3b3VsZCBhbGxvdyBtZSB0byBkbyB0aGlzIGVhc2llcg0KPj4gLT4gaXQg d291bGQgYmUgbW9yZSBvYnZpb3VzIHRoYXQgdGhlIGZyYW1lIGlzIGNyb3BwZWQgYnkgaGF2aW5n IHRoaXMNCj4+IGVudGl0eSB0aGVyZQ0KPj4gLT4gaW4gZmFjdCBzb21lIG9mIHRoZSBJU0MgdmVy c2lvbnMgcmVhbGx5IGhhdmUgYSBkb3duIHNjYWxlciwgdGhhdCBJDQo+PiBoYXZlIG5vdCBpbXBs ZW1lbnRlZCB5ZXQuIFNvIGl0IHdvdWxkIGJlIHVzZWZ1bCB0byBhbHJlYWR5IGhhdmUgdGhpcyBp bg0KPj4gcGxhY2UgdG8gYmUgYWJsZSB0byBzY2FsZSBkb3duIHdpdGggaXQgYXQgYSBsYXRlciB0 aW1lLg0KPiANCj4gSSB0aGluayB0aGlzIGxhc3QgcmVhc29uIGlzIGVub3VnaCB0byBoYXZlIGFu IGVudGl0eSBwbHVtYmVkIGluDQo+IGFscmVhZHkNCj4gDQo+Pg0KPj4+DQo+Pj4gT3IgaXMgdGhl IElTQyBsaW1pdGF0aW9uIG9uIHRoZSAtaW5wdXQtIHNpZGUgPw0KPj4+DQo+Pj4+IDIvIGRlbnkg dGhlIGxpbmssIGFuZCBhc2sgdGhlIHN1YmRldmljZSB0byBwcm9kdWNlIHRoZSAzMjY0eDI0NjQg d2hpY2gNCj4+Pj4gdGhlIElTQyBjYW4gaGFuZGxlIGF0IG1vc3QgLT4gY2Fubm90ICwgYmVjYXVz ZSB0aGUgc2Vuc29yIGxldCdzIHNheSBjYW4NCj4+Pj4gKm9ubHkqIHByb2R1Y2UgMzI4MHgyNDY0 IGFuZCAqYW55KiBvdGhlciBmcmFtZSBzaXplIHJldHVybnMgYW4gZXJyb3IuDQo+Pj4NCj4+PiBi dWdneSBzZW5zb3IgSSB3b3VsZCBzYXkgOikNCj4+DQo+PiBJIGNhbm5vdCB0ZWxsIHRoaXMgdG8g dGhlIGN1c3RvbWVycywgYW5kIEkgY2Fubm90IGZhaWwgdGhlIHdob2xlDQo+PiBwaXBlbGluZSBi ZWNhdXNlIHRoZSBzZW5zb3IgZG9lcyBub3QgY3JvcCAxNiBwaXhlbHMsIHdoZW4gaW4gZmFjdCBJ IGNhbg0KPj4gZG8gdGhpcyB2ZXJ5IGVhc2lseSBvbiB0aGUgSVNDIHNpZGUuDQo+Pg0KPiANCj4g RmFpciBlbm91Z2ggOikNCj4gDQo+Pj4NCj4+Pj4NCj4+Pj4gVGhlIG9ubHkgc29sdXRpb24gdG8g bWFrZSBib3RoIHdvcmxkcyBoYXBweSwgaXMgdG8gaGF2ZSBhIGR1bW15IGVudGl0eQ0KPj4+PiBj YWxsZWQgJ3NjYWxlcicgd2hpY2ggaW4gZmFjdCBub3cgaXQgb25seSBwZXJmb3JtcyBhIHNpbXBs ZSBjcm9wLg0KPj4+PiBJdCBhY2NlcHRzIGFueSBmcmFtZSBzaXplIGF0IGlucHV0IChoZW5jZSB0 aGUgMTAwMDB4MTAwMDAgd2hpY2ggeW91IHNhdw0KPj4+PiBlYXJsaWVyKSwgYW5kIG91dHB1dHMg YXQgbW9zdCAzMjY0eDI0NjQgdGhlIGlzY19tYXhfaGVpZ2h0IGFuZA0KPj4+PiBpc2NfbWF4X3dp ZHRoLg0KPj4+DQo+Pj4gSSBoYXZlIGEgbWF5YmUgZHVtYiBxdWVzdGlvbjogY2FuIHRoZSBjcm9w cGluZyBvcGVyYXRpb24gYmUgbW9kZWxlZA0KPj4+IGJ5IGFwcGx5aW5nIGEgVEdUX0NST1AgcmVj dGFuZ2xlICh3aG9zZSBfQk9VTkQgc2l6ZSBpcyAzMjgweDI0NjQpIHRvDQo+Pj4gdGhlIGF0bWVs X2lzY19jb21tb24gZW50aXR5IHNpbmsgcGFkIGFuZCBhdm9pZCB0aGUgc2NhbGVyIGNvbXBsZXRl bHkgPw0KPj4NCj4+IEkgYW0gbm90IHN1cmUuIFRoaXMgaXMgd2hhdCBJIHdhbnRlZCBpbml0aWFs bHkuIEJ1dCB0aGVuIEkgdGhvdWdodCBhYm91dA0KPj4gdGhlIHRocmVlIHJlYXNvbnMgc3RhdGVk IGFib3ZlIGZvciB0aGUgdXNlIG9mIHRoZSBzY2FsZXIgZW50aXR5LCBhbmQNCj4+IGRpc2N1c3Nl ZCB3aXRoIGZvbGtzIG9uIHRoZSBJUkMsIGFuZCBjb21lIHVwIHdpdGggdGhlIHNvbHV0aW9uIGZv ciB0aGUNCj4+IHNjYWxlciBlbnRpdHkNCj4+DQo+Pj4NCj4+Pj4NCj4+Pj4gU28gdG8gYW5zd2Vy IHlvdXIgcXVlc3Rpb24sIHRoZSBpc2Mgc2NhbGVyIGlzIGEgc29mdHdhcmUgbW9kZWwgZm9yIGEN Cj4+Pj4gc2ltcGxlIGNyb3BwaW5nLCB0aGF0IHdvdWxkIG1ha2UgbWVkaWEgY29udHJvbGxlciBo YXBweSwgYW5kIGNhcHR1cmUNCj4+Pj4gc29mdHdhcmUgaGFwcHkuDQo+Pj4+DQo+Pj4+IEhlcmUg aXQgaG93IGl0IGxvb2tzIDoNCj4+Pj4NCj4+Pj4gRGV2aWNlIHRvcG9sb2d5DQo+Pj4+IC0gZW50 aXR5IDE6IGF0bWVsX2lzY19zY2FsZXIgKDIgcGFkcywgMiBsaW5rcykNCj4+Pj4gICAgICAgICAg ICAgICAgdHlwZSBWNEwyIHN1YmRldiBzdWJ0eXBlIFVua25vd24gZmxhZ3MgMA0KPj4+PiAgICAg ICAgICAgICAgICBkZXZpY2Ugbm9kZSBuYW1lIC9kZXYvdjRsLXN1YmRldjANCj4+Pj4gICAgICAg ICAgICBwYWQwOiBTaW5rDQo+Pj4+ICAgICAgICAgICAgICAgICAgICBbZm10OlNSR0dCMTBfMVgx MC8zMjgweDI0NjQgZmllbGQ6bm9uZSBjb2xvcnNwYWNlOnNyZ2INCj4+Pj4gICAgICAgICAgICAg ICAgICAgICBjcm9wLmJvdW5kczooMCwwKS8zMjY0eDI0NjQNCj4+Pj4gICAgICAgICAgICAgICAg ICAgICBjcm9wOigwLDApLzMyNjR4MjQ2NF0NCj4+Pj4gICAgICAgICAgICAgICAgICAgIDwtICJj c2kyZGMiOjEgW0VOQUJMRUQsSU1NVVRBQkxFXQ0KPj4+PiAgICAgICAgICAgIHBhZDE6IFNvdXJj ZQ0KPj4+PiAgICAgICAgICAgICAgICAgICAgW2ZtdDpTUkdHQjEwXzFYMTAvMzI4MHgyNDY0IGZp ZWxkOm5vbmUgY29sb3JzcGFjZTpzcmdiXQ0KPj4+PiAgICAgICAgICAgICAgICAgICAgLT4gImF0 bWVsX2lzY19jb21tb24iOjAgW0VOQUJMRUQsSU1NVVRBQkxFXQ0KPj4+Pg0KPj4+PiAtIGVudGl0 eSA0OiBjc2kyZGMgKDIgcGFkcywgMiBsaW5rcykNCj4+Pj4gICAgICAgICAgICAgICAgdHlwZSBW NEwyIHN1YmRldiBzdWJ0eXBlIFVua25vd24gZmxhZ3MgMA0KPj4+PiAgICAgICAgICAgICAgICBk ZXZpY2Ugbm9kZSBuYW1lIC9kZXYvdjRsLXN1YmRldjENCj4+Pj4gICAgICAgICAgICBwYWQwOiBT aW5rDQo+Pj4+ICAgICAgICAgICAgICAgICAgICBbZm10OlNSR0dCMTBfMVgxMC8zMjgweDI0NjQg ZmllbGQ6bm9uZSBjb2xvcnNwYWNlOnNyZ2JdDQo+Pj4+ICAgICAgICAgICAgICAgICAgICA8LSAi ZHctY3NpLjAiOjEgW0VOQUJMRURdDQo+Pj4+ICAgICAgICAgICAgcGFkMTogU291cmNlDQo+Pj4+ ICAgICAgICAgICAgICAgICAgICBbZm10OlNSR0dCMTBfMVgxMC8zMjgweDI0NjQgZmllbGQ6bm9u ZSBjb2xvcnNwYWNlOnNyZ2JdDQo+Pj4+ICAgICAgICAgICAgICAgICAgICAtPiAiYXRtZWxfaXNj X3NjYWxlciI6MCBbRU5BQkxFRCxJTU1VVEFCTEVdDQo+Pj4+DQo+Pj4+IC0gZW50aXR5IDc6IGR3 LWNzaS4wICgyIHBhZHMsIDIgbGlua3MpDQo+Pj4+ICAgICAgICAgICAgICAgIHR5cGUgVjRMMiBz dWJkZXYgc3VidHlwZSBVbmtub3duIGZsYWdzIDANCj4+Pj4gICAgICAgICAgICAgICAgZGV2aWNl IG5vZGUgbmFtZSAvZGV2L3Y0bC1zdWJkZXYyDQo+Pj4+ICAgICAgICAgICAgcGFkMDogU2luaw0K Pj4+PiAgICAgICAgICAgICAgICAgICAgW2ZtdDpTUkdHQjEwXzFYMTAvMzI4MHgyNDY0XQ0KPj4+ PiAgICAgICAgICAgICAgICAgICAgPC0gImlteDIxOSAxLTAwMTAiOjAgW0VOQUJMRURdDQo+Pj4+ ICAgICAgICAgICAgcGFkMTogU291cmNlDQo+Pj4+ICAgICAgICAgICAgICAgICAgICBbZm10OlNS R0dCMTBfMVgxMC8zMjgweDI0NjRdDQo+Pj4+ICAgICAgICAgICAgICAgICAgICAtPiAiY3NpMmRj IjowIFtFTkFCTEVEXQ0KPj4+Pg0KPj4+PiAtIGVudGl0eSAxMjogaW14MjE5IDEtMDAxMCAoMSBw YWQsIDEgbGluaykNCj4+Pj4gICAgICAgICAgICAgICAgIHR5cGUgVjRMMiBzdWJkZXYgc3VidHlw ZSBTZW5zb3IgZmxhZ3MgMA0KPj4+PiAgICAgICAgICAgICAgICAgZGV2aWNlIG5vZGUgbmFtZSAv ZGV2L3Y0bC1zdWJkZXYzDQo+Pj4+ICAgICAgICAgICAgcGFkMDogU291cmNlDQo+Pj4+ICAgICAg ICAgICAgICAgICAgICBbZm10OlNSR0dCMTBfMVgxMC8zMjgweDI0NjQgZmllbGQ6bm9uZSBjb2xv cnNwYWNlOnNyZ2INCj4+Pj4geGZlcjpzcmdiIHljYmNyOjYwMSBxdWFudGl6YXRpb246ZnVsbC1y YW5nZQ0KPj4+PiAgICAgICAgICAgICAgICAgICAgIGNyb3AuYm91bmRzOig4LDgpLzMyODB4MjQ2 NA0KPj4+PiAgICAgICAgICAgICAgICAgICAgIGNyb3A6KDgsOCkvMzI4MHgyNDY0XQ0KPj4+PiAg ICAgICAgICAgICAgICAgICAgLT4gImR3LWNzaS4wIjowIFtFTkFCTEVEXQ0KPj4+Pg0KPj4+PiAt IGVudGl0eSAyNDogYXRtZWxfaXNjX2NvbW1vbiAoMSBwYWQsIDEgbGluaykNCj4+Pj4gICAgICAg ICAgICAgICAgIHR5cGUgTm9kZSBzdWJ0eXBlIFY0TCBmbGFncyAxDQo+Pj4+ICAgICAgICAgICAg ICAgICBkZXZpY2Ugbm9kZSBuYW1lIC9kZXYvdmlkZW8wDQo+Pj4+ICAgICAgICAgICAgcGFkMDog U2luaw0KPj4+PiAgICAgICAgICAgICAgICAgICAgPC0gImF0bWVsX2lzY19zY2FsZXIiOjEgW0VO QUJMRUQsSU1NVVRBQkxFXQ0KPj4+Pg0KPj4+Pg0KPj4+PiBTY2FsZXIgZG9lcyB0aGlzIG9uZSBj dXRlIGxpdHRsZSB0aGluZyA6DQo+Pj4+DQo+Pj4+ICAgICAgICAgcGFkMDogU2luaw0KPj4+PiAg ICAgICAgICAgICAgICAgICAgW2ZtdDpTUkdHQjEwXzFYMTAvMzI4MHgyNDY0IGZpZWxkOm5vbmUg Y29sb3JzcGFjZTpzcmdiDQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgY3JvcC5ib3VuZHM6KDAs MCkvMzI2NHgyNDY0DQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgY3JvcDooMCwwKS8zMjY0eDI0 NjRdDQo+Pj4+ICAgICAgICAgICAgICAgICAgICA8LSAiY3NpMmRjIjoxIFtFTkFCTEVELElNTVVU QUJMRV0NCj4+Pj4gICAgICAgICAgICBwYWQxOiBTb3VyY2UNCj4+Pj4gICAgICAgICAgICAgICAg ICAgIFtmbXQ6U1JHR0IxMF8xWDEwLzMyODB4MjQ2NCBmaWVsZDpub25lIGNvbG9yc3BhY2U6c3Jn Yl0NCj4+Pg0KPj4+IFNob3VsZG4ndCB0aGlzIGJlIDMyNjR4MjQ2NCBhcyB0aGF0J3Mgd2hhdCB0 aGUgZW50aXR5IG91dHB1dHMgYWZ0ZXINCj4+PiB0aGUgY3JvcHBpbmcgPyBBbmQgc2hvdWxkbid0 IHRoZW4gYmUgMzI2NHgyNDY0IHRoZSBzaXplIG91dHB1dCBmcm9tDQo+Pj4gdGhlIHZpZGVvIGRl dmljZSB0b28gPw0KPj4NCj4+IFRoYXQncyByaWdodC4NCj4+IEkgZG9uJ3Qga25vdyB3aHkgdGhl IHNvdXJjZSBmb3JtYXQgZm9yIHRoZSBzY2FsZXIgaXMgc3RpbGwgMzI4MHgyNDY0Lg0KPj4gTWF5 YmUgdGhlcmUgaXMgYSBidWcgb24gZ19mbXQgZm9yIGl0Li4gaGF2ZSB0byBjaGVjayBpdC4NCj4g DQo+IFRoYW5rcywgSSB0aGluayB0aGlzIHNob3VsZCBiZSBmaXhlZCB0ZW4NCj4gDQo+IA0KPj4N Cj4+IEFueXdheSwgdGhlIHZpZGVvIGZvcm1hdCBpcyBsaWtlIHRoaXMgOg0KPj4NCj4+ICMgdjRs Mi1jdGwgLS1nZXQtZm10LXZpZGVvDQo+PiBGb3JtYXQgVmlkZW8gQ2FwdHVyZToNCj4+ICAgICAg ICAgICBXaWR0aC9IZWlnaHQgICAgICA6IDMyNjQvMjQ2NA0KPj4gICAgICAgICAgIFBpeGVsIEZv cm1hdCAgICAgIDogJ1JHQlAnICgxNi1iaXQgUkdCIDUtNi01KQ0KPj4gICAgICAgICAgIEZpZWxk ICAgICAgICAgICAgIDogTm9uZQ0KPj4gICAgICAgICAgIEJ5dGVzIHBlciBMaW5lICAgIDogNjUy OA0KPj4gICAgICAgICAgIFNpemUgSW1hZ2UgICAgICAgIDogMTYwODQ5OTINCj4+ICAgICAgICAg ICBDb2xvcnNwYWNlICAgICAgICA6IHNSR0INCj4+ICAgICAgICAgICBUcmFuc2ZlciBGdW5jdGlv biA6IERlZmF1bHQgKG1hcHMgdG8gc1JHQikNCj4+ICAgICAgICAgICBZQ2JDci9IU1YgRW5jb2Rp bmc6IERlZmF1bHQgKG1hcHMgdG8gSVRVLVIgNjAxKQ0KPj4gICAgICAgICAgIFF1YW50aXphdGlv biAgICAgIDogRGVmYXVsdCAobWFwcyB0byBGdWxsIFJhbmdlKQ0KPj4gICAgICAgICAgIEZsYWdz ICAgICAgICAgICAgIDoNCj4+ICMNCj4+DQo+PiBhbmQgaW5pdGlhbGl6aW5nIHRoZSBwaXBlbGlu ZSBsb29rcyBmaW5lIGZyb20gdXNlciBwZXJzcGVjdGl2ZS4NCj4+IFRoZSBzY2FsZXIgaXMgaW4g ZmFjdCB0aGUgc29sdXRpb24gdG8gbWFrZSB0aGlzIHBpcGVsaW5lIHdvcmsgd2l0aA0KPj4gbGli Y2FtZXJhLg0KPj4gSSBmb3VuZCB0aGlzIGNyb3BwaW5nIHRvIGJlIGFuIGlzc3VlIGluIG1lZGlh IGNvbnRyb2xsZXIgd2hlbiB0cnlpbmcgaXQNCj4+IHdpdGggbGliY2FtZXJhLiBPdGhlcndpc2Us IHRoZSBvdGhlciB1c2VyIHNwYWNlIGFwcHMgd2hpY2ggSSB3YXMgdXNpbmcNCj4+IG5ldmVyIGNv bXBsYWluZWQgdGhhdCBhbnl0aGluZyB3YXMgd3JvbmcNCj4+IExpYmNhbWVyYSBzaW1wbHkgcmVm dXNlcyB0byBhY2tub3dsZWRnZSB0aGUgcGlwZWxpbmUgaWYgdGhlIHZpZGVvIG91dHB1dA0KPj4g aXMgMzI2NHgyNDY0IGJ1dCB0aGVyZSBpcyBubyBlbnRpdHkgdGhhdCBjaGFuZ2VzIHRoZSBmb3Jt YXQgZnJvbQ0KPj4gMzI4MHgyNDY0IGRvd24NCj4gDQo+IE5vdCBzdXJlIHdoeSBsaWJjYW1lcmEg c2hvdWxkIHBsYXkgYSByb2xlIHRoZXJlLiBJc24ndCBpdCB0aGUgbWVkaWENCj4gcGlwZWxpbmUg dmFsaWRhdGlvbiB0aGF0IGNvbXBsYWlucyBhbmQgcmV0dXJucyBhbiAtRVBJUEUgPw0KDQpJIHRy aWVkIHRoaXMgYmVmb3JlIHRoZSBtZWRpYV9waXBlbGluZV9zdGFydCAuDQpQZXJoYXBzIGxpYmNh bWVyYSB3YXMgZG9pbmcgc29tZSBzaW1pbGFyIGNoZWNrcywgYW55d2F5LCBpdCB3YXMgDQpjb21w bGFpbmluZyBhbmQgbm90IGFkZGluZyB0aGUgc3RyZWFtLCBhbmQgcmVwb3J0ZWQgbm8gdXNhYmxl IHN0cmVhbXMvY2FtZXJhDQoNCk9uY2UgSSB3aWxsIHJld29yayBzb21lIG9mIHRoZSB0aGluZ3Mg YWNjb3JkaW5nIHRvIHlvdXIgcmV2aWV3IEkgd2lsbCANCnJ1biBsaWJjYW1lcmEgYWdhaW4gdG8g c2VlIHdoYXQgaXQgY29tcGxhaW5zIGFib3V0DQoNCj4gDQo+Pg0KPj4+DQo+Pj4NCj4+Pj4gICAg ICAgICAgICAgICAgICAgIC0+ICJhdG1lbF9pc2NfY29tbW9uIjowIFtFTkFCTEVELElNTVVUQUJM RV0NCj4+Pj4NCj4+Pj4NCj4+Pj4gV2hpY2ggaXMgd2hhdCB3ZSBuZWVkZWQuDQo+Pj4+DQo+Pj4+ Pg0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICByZXR1cm4gMDsNCj4+Pj4+PiArfQ0KPj4+Pj4+ICsN Cj4+Pj4+PiArc3RhdGljIGludCBpc2Nfc2NhbGVyX2VudW1fbWJ1c19jb2RlKHN0cnVjdCB2NGwy X3N1YmRldiAqc2QsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdjRsMl9zdWJkZXZfc3RhdGUgKnNkX3N0YXRlLA0KPj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHY0bDJfc3ViZGV2X21idXNfY29kZV9lbnVtICpj b2RlKQ0KPj4+Pj4+ICt7DQo+Pj4+Pj4gKyAgICAgc3RydWN0IGlzY19kZXZpY2UgKmlzYyA9IGNv bnRhaW5lcl9vZihzZCwgc3RydWN0IGlzY19kZXZpY2UsIHNjYWxlcl9zZCk7DQo+Pj4+Pj4gKyAg ICAgaW50IHN1cHBvcnRlZF9pbmRleCA9IDA7DQo+Pj4+Pj4gKyAgICAgaW50IGk7DQo+Pj4+Pj4g Kw0KPj4+Pj4+ICsgICAgIGZvciAoaSA9IDA7IGkgPCBpc2MtPmZvcm1hdHNfbGlzdF9zaXplOyBp KyspIHsNCj4+Pj4+PiArICAgICAgICAgICAgIGlmICghaXNjLT5mb3JtYXRzX2xpc3RbaV0uc2Rf c3VwcG9ydCkNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+Pj4+Pg0K Pj4+Pj4gVGhlIHNkX3N1cHBvcnQgZmxhZyBzdGlsbCBkb2Vzbid0IGNsaWNrIGluIG15IGhlYWQu DQo+Pj4+Pg0KPj4+Pj4gU2hvdWxkbid0IHRoZSBlbnVtZXJhdGlvbiBvZiBhdmFpbGFibGUgZm9y bWF0cyBvbiB0aGUgc2NhbGVyIGRvIG5vdA0KPj4+Pj4gZGVwZW5kIG9uIHRoZSBzZW5zb3Igc3Vw cHJvdGVkIGZvcm1hdHMgPw0KPj4+Pg0KPj4+PiBZb3UncmUgcmlnaHQuIEkgd2lsbCBoYXZlIHRv IGNoZWNrIGl0IGFnYWluLg0KPj4+Pg0KPj4+Pj4NCj4+Pj4+PiArICAgICAgICAgICAgIGlmIChz dXBwb3J0ZWRfaW5kZXggPT0gY29kZS0+aW5kZXgpIHsNCj4+Pj4+PiArICAgICAgICAgICAgICAg ICAgICAgY29kZS0+Y29kZSA9IGlzYy0+Zm9ybWF0c19saXN0W2ldLm1idXNfY29kZTsNCj4+Pj4+ PiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+Pj4+Pj4gKyAgICAgICAgICAgICB9 DQo+Pj4+Pj4gKyAgICAgICAgICAgICBzdXBwb3J0ZWRfaW5kZXgrKzsNCj4+Pj4+PiArICAgICB9 DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIHJldHVybiAtRUlOVkFMOw0KPj4+Pj4+ICt9DQo+Pj4+ Pj4gKw0KPj4+Pj4+ICtzdGF0aWMgaW50IGlzY19zY2FsZXJfZ19zZWwoc3RydWN0IHY0bDJfc3Vi ZGV2ICpzZCwNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2NGwyX3N1 YmRldl9zdGF0ZSAqc2Rfc3RhdGUsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgdjRsMl9zdWJkZXZfc2VsZWN0aW9uICpzZWwpDQo+Pj4+Pj4gK3sNCj4+Pj4+PiArICAg ICBzdHJ1Y3QgaXNjX2RldmljZSAqaXNjID0gY29udGFpbmVyX29mKHNkLCBzdHJ1Y3QgaXNjX2Rl dmljZSwgc2NhbGVyX3NkKTsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgaWYgKHNlbC0+cGFkID09 IElTQ19TQ0FMRVJfUEFEX1NPVVJDRSkNCj4+Pj4+PiArICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOw0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICBpZiAoc2VsLT50YXJnZXQgIT0gVjRMMl9TRUxf VEdUX0NST1BfQk9VTkRTICYmDQo+Pj4+Pj4gKyAgICAgICAgIHNlbC0+dGFyZ2V0ICE9IFY0TDJf U0VMX1RHVF9DUk9QKQ0KPj4+Pj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4+ Pj4gKw0KPj4+Pj4+ICsgICAgIHNlbC0+ci5oZWlnaHQgPSBpc2MtPm1heF9oZWlnaHQ7DQo+Pj4+ Pj4gKyAgICAgc2VsLT5yLndpZHRoID0gaXNjLT5tYXhfd2lkdGg7DQo+Pj4+Pg0KPj4+Pj4gVGhl IENST1BfQk9VTkRTIHNob3VsZCBiZSBzZXQgdG8gdGhlIHNhbWUgc2l6ZSBhcyB0aGUgc2luayBw YWQgaW1hZ2UgZm9ybWF0LA0KPj4+Pj4gYXMgaXQgcmVwcmVzZW50cyB0aGUgbWF4aW11bSB2YWxp ZCBjcm9wIHJlY3RhbmdsZS4NCj4+Pj4+DQo+Pj4+PiBUR1RfQ1JPUCBzaG91bGQgcmVwb3J0IHRo ZSBjb25maWd1cmVkIGNyb3AgcmVjdGFuZ2xlIHdoaWNoIGNhbiBiZQ0KPj4+Pj4gaW50aWlhbGl6 ZWQgdG8gdGhlIHNhbWUgc2l6ZSBhcyBDUk9QX0JPVU5EUywgaWYgbXkgdW5kZXJzdGFuZGluZyBv Zg0KPj4+Pj4gdGhlIHNwZWMgaXMgY29ycmVjdA0KPj4+Pg0KPj4+PiBTbyB5b3Ugd291bGQgbGlr ZSB0byBoYXZlIHRoaXMgZGlmZmVyZW50aWF0ZWQsIGFuZCByZXBvcnQgdGhlDQo+Pj4+IENST1Bf Qk9VTkRTIHRvIHdoYXRldmVyIGlzIG9uIHRoZSBzaW5rIHBhZCwgYW5kIHRoZSBUR1RfQ1JPUCB0 byB3aGF0IGlzDQo+Pj4+IHJlcG9ydGVkIG5vdywgdGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgSVND IGZyYW1lIC4NCj4+Pj4gTXkgdW5kZXJzdGFuZGluZyBpcyBjb3JyZWN0ID8NCj4+Pj4NCj4+Pg0K Pj4+IEkgZGlkbid0IGtub3cgeW91IGhhdmUgYW4gSFcgbGltaXRhdGlvbiwgc28geW91ciBfQk9V TkRTIGlzIG5vdCB0aGUNCj4+PiBpbnB1dCBpbWFnZSBzaXplIGJ1dCByYXRoZXIgMzI2NHgyNDY0 ICggPT0gbWF4X3dpZHRoIHggbWF4X2hlaWdodCkuDQo+Pj4NCj4+PiBXaGF0IEkgbWVhbnQgaXMg dGhhdCBfQk9VTkRTIHNob3VsZCByZXBvcnQgdGhlIG1heGltdW0gcmVjdGFuZ2xlIHNpemUNCj4+ PiB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIHRoZSBfQ1JPUCB0YXJnZXQuIEluIHlvdSBjYXNlIHlv dSBoYXZlIGFuIEhXDQo+Pj4gbGltaXRhdGlvbiAzMjY0eDI0NjQgYW5kIHRoYXQncyB0aGUgbGFy Z2VzdCByZWN0YW5nbGUgeW91IGNhbiBhcHBseS4NCj4+IFNvIHRoZSBDUk9QIHNob3VsZCBiZSBh dCAzMjY0eDI0NjQNCj4+PiBUR1RfQ1JPUCBjYW4gYmUgaW5pdGlhbGl6ZWQgdG8gdGhlIHNhbWUg YXMgX0JPVU5ELCBidXQgaWYgeW91DQo+Pj4gaW1wbGVtZW50IHNfc2VsZWN0aW9uIGl0IHNob3Vs ZCByZXBvcnQgd2hhdCBoYXMgYmVlbiB0aGVyZSBhcHBsaWVkLg0KPj4gYW5kIEJPVU5EIHRvIGFj dHVhbCBmcmFtZSBzaXplID8NCj4+PiBCdXQgYXMgeW91IGRvbid0IGltcGxlbWVudCBzX3NlbGVj dGlvbiB5ZXQsIEkgdGhpbmsgdGhpcyBpcyBmaW5lIGZvcg0KPj4+IG5vdy4gTWF5YmUgYSBsaXR0 bGUgY29tbWVudCA/DQo+Pg0KPj4gSXQgY291bGQgYWxzbyBiZSB0aGUgY2FzZSB3aGVyZSBlLmcu IHRoZSBzZW5zb3IgaXMgb3V0cHV0dGluZyAxOTIweDEwODAsDQo+PiBpbiB0aGlzIGNhc2UgdGhl IHNjYWxlciB3b3VsZCBkbyBub3RoaW5nLg0KPj4gQ1JPUCBpcyBzdGlsbCAzMjY0eDI0NjQgYW5k IEJPVU5EIGluIHRoaXMgY2FzZSBpcyAxOTIweDEwODAgPw0KPj4gSWYgdGhlIHNlbnNvciBpcyBv dXRwdXR0aW5nIDE5MjB4MTA4MCwgdGhpcyBmb3JtYXQgY29tZXMgZGlyZWN0bHkgZnJvbQ0KPj4g dGhlIHNlbnNvciAodGhlIHNlbnNvciBpcyBjcm9wcGluZyBpdCBmcm9tIDMyODB4MjQ2NCBvciBu b3QuLi4gaXQncyB0aGUNCj4+IHNlbnNvcidzIHByb2JsZW0pDQo+Pj4NCj4+PiBBbHNvLCBpcyBz ZXQtPnIgemVyb2VkIGJ5IHRoZSBmcmFtZXdvcmsgYmVmb3JlIGdldHRpbmcgaGVyZSA/DQo+Pj4g T3RoZXJ3aXNlIHlvdSBzaG91bGQgc2V0IHIubGVmdCBhbmQgci50b3AgdG8gMA0KPj4NCj4+IElm IHRoZXNlIGFyZSByZWR1bmRhbnQsIG5vIHByb2JsZW0gdG8gcmVtb3ZlIHRoZW0NCj4gDQo+IEkg d2FzIGFjdHVhbGx5IGNvbmZ1c2VkLiBJIHdhcyBzdWdnZXN0aW5nIHlvdSB0byBhZGQuLi4NCj4g DQo+Pj4NCj4+Pj4+DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIHNlbC0+ci5sZWZ0ID0gMDsNCj4+ Pj4+PiArICAgICBzZWwtPnIudG9wID0gMDsNCj4gDQo+ICAgICAgICAgIFRoZXNlIF4NCj4gDQo+ IFNvIG5vdGhpbmcgdG8gY2hhbmdlLiBTb3JyeSBJJ3ZlIG1pc3NlZCB0aGVtDQo+IA0KPiBUaGFu a3MNCj4gICAgag0KPiANCj4gDQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIHJldHVybiAwOw0KPj4+ Pj4+ICt9DQo+Pj4+Pj4gKw0KPj4+Pj4+ICtzdGF0aWMgaW50IGlzY19zY2FsZXJfaW5pdF9jZmco c3RydWN0IHY0bDJfc3ViZGV2ICpzZCwNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCB2NGwyX3N1YmRldl9zdGF0ZSAqc2Rfc3RhdGUpDQo+Pj4+Pj4gK3sNCj4+Pj4+ PiArICAgICBzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICp2NGwyX3RyeV9mbXQgPQ0KPj4+Pj4+ ICsgICAgICAgICAgICAgdjRsMl9zdWJkZXZfZ2V0X3RyeV9mb3JtYXQoc2QsIHNkX3N0YXRlLCAw KTsNCj4+Pj4+PiArICAgICBzdHJ1Y3QgaXNjX2RldmljZSAqaXNjID0gY29udGFpbmVyX29mKHNk LCBzdHJ1Y3QgaXNjX2RldmljZSwgc2NhbGVyX3NkKTsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAg KnY0bDJfdHJ5X2ZtdCA9IGlzYy0+c2NhbGVyX2Zvcm1hdDsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAg ICAgcmV0dXJuIDA7DQo+Pj4+Pj4gK30NCj4+Pj4+PiArDQo+Pj4+Pj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgdjRsMl9zdWJkZXZfcGFkX29wcyBpc2Nfc2NhbGVyX3BhZF9vcHMgPSB7DQo+Pj4+Pj4g KyAgICAgLmVudW1fbWJ1c19jb2RlID0gaXNjX3NjYWxlcl9lbnVtX21idXNfY29kZSwNCj4+Pj4+ PiArICAgICAuc2V0X2ZtdCA9IGlzY19zY2FsZXJfc2V0X2ZtdCwNCj4+Pj4+PiArICAgICAuZ2V0 X2ZtdCA9IGlzY19zY2FsZXJfZ2V0X2ZtdCwNCj4+Pj4+PiArICAgICAuZ2V0X3NlbGVjdGlvbiA9 IGlzY19zY2FsZXJfZ19zZWwsDQo+Pj4+Pj4gKyAgICAgLmluaXRfY2ZnID0gaXNjX3NjYWxlcl9p bml0X2NmZywNCj4+Pj4+DQo+Pj4+PiAubGlua192YWxpZGF0ZSA9IHY0bDJfc3ViZGV2X2xpbmtf dmFsaWRhdGVfZGVmYXVsdCwNCj4+Pj4+DQo+Pj4+PiBUbyBoYXZlIHRoZSBmb3JtYXRzIGF0IHRo ZSBlbmQgb2YgbGlua3MgdGhhdCBwb2ludCB0byB0aGlzIGVudGl0eQ0KPj4+Pj4gdmFsaWRhdGVk IChJIHRoaW5rIHRoZSBmcmFtZXdvcmsgYWxyZWFkeSBjYWxscyBpdCBpZiBub3Qgc2V0IHRob3Vn aCwNCj4+Pj4+IHBsZWFzZSBjaGVjayB2NGwyLXN1YmRldi5jOnY0bDJfc3ViZGV2X2xpbmtfdmFs aWRhdGUoKSkNCj4+Pj4+DQo+Pj4+Pj4gK307DQo+Pj4+Pj4gKw0KPj4+Pj4+ICtzdGF0aWMgY29u c3Qgc3RydWN0IHY0bDJfc3ViZGV2X29wcyB4aXNjX3NjYWxlcl9zdWJkZXZfb3BzID0gew0KPj4+ Pj4+ICsgICAgIC5wYWQgPSAmaXNjX3NjYWxlcl9wYWRfb3BzLA0KPj4+Pj4+ICt9Ow0KPj4+Pj4+ ICsNCj4+Pj4+PiAraW50IGlzY19zY2FsZXJfaW5pdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0K Pj4+Pj4+ICt7DQo+Pj4+Pj4gKyAgICAgaW50IHJldDsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAg djRsMl9zdWJkZXZfaW5pdCgmaXNjLT5zY2FsZXJfc2QsICZ4aXNjX3NjYWxlcl9zdWJkZXZfb3Bz KTsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgaXNjLT5zY2FsZXJfc2Qub3duZXIgPSBUSElTX01P RFVMRTsNCj4+Pj4+PiArICAgICBpc2MtPnNjYWxlcl9zZC5kZXYgPSBpc2MtPmRldjsNCj4+Pj4+ PiArICAgICBzbnByaW50Zihpc2MtPnNjYWxlcl9zZC5uYW1lLCBzaXplb2YoaXNjLT5zY2FsZXJf c2QubmFtZSksDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgImF0bWVsX2lzY19zY2FsZXIiKTsNCj4+ Pj4+DQo+Pj4+PiBJIHdvdWxkIGRyb3AgJ2F0bWVsJyBmb3IgYnJldml0eSwgdW5sZXNzIG90aGVy IGVudGl0aWVzIGhhdmUgdGhpcw0KPj4+Pj4gcHJlZml4IHNldCBhbHJlYWR5DQo+Pj4+DQo+Pj4+ IFRoZSB2NGwgZW50aXR5IHRha2VzIGl0J3MgbmFtZSBmcm9tIHRoZSBtb2R1bGUgbmFtZSwgd2hp Y2ggaXMNCj4+Pj4gYXRtZWxfaXNjX2NvbW1vbiwgc28gSSB0aG91Z2h0IHRvIGtlZXAgdGhlIHBy ZWZpeA0KPj4+Pg0KPj4+DQo+Pj4gQWNrIQ0KPj4+DQo+Pj4+Pg0KPj4+Pj4+ICsNCj4+Pj4+PiAr ICAgICBpc2MtPnNjYWxlcl9zZC5mbGFncyB8PSBWNEwyX1NVQkRFVl9GTF9IQVNfREVWTk9ERTsN Cj4+Pj4+PiArICAgICBpc2MtPnNjYWxlcl9zZC5lbnRpdHkuZnVuY3Rpb24gPSBNRURJQV9FTlRf Rl9QUk9DX1ZJREVPX1NDQUxFUjsNCj4+Pj4+PiArICAgICBpc2MtPnNjYWxlcl9wYWRzW0lTQ19T Q0FMRVJfUEFEX1NJTktdLmZsYWdzID0gTUVESUFfUEFEX0ZMX1NJTks7DQo+Pj4+Pj4gKyAgICAg aXNjLT5zY2FsZXJfcGFkc1tJU0NfU0NBTEVSX1BBRF9TT1VSQ0VdLmZsYWdzID0gTUVESUFfUEFE X0ZMX1NPVVJDRTsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgaXNjLT5zY2FsZXJfZm9ybWF0Lmhl aWdodCA9IGlzYy0+bWF4X2hlaWdodDsNCj4+Pj4+PiArICAgICBpc2MtPnNjYWxlcl9mb3JtYXQu d2lkdGggPSBpc2MtPm1heF93aWR0aDsNCj4+Pj4+PiArICAgICBpc2MtPnNjYWxlcl9mb3JtYXQu Y29kZSA9IGlzYy0+Zm9ybWF0c19saXN0WzBdLm1idXNfY29kZTsNCj4+Pj4+PiArICAgICBpc2Mt PnNjYWxlcl9mb3JtYXQuY29sb3JzcGFjZSA9IFY0TDJfQ09MT1JTUEFDRV9TUkdCOw0KPj4+Pj4+ ICsgICAgIGlzYy0+c2NhbGVyX2Zvcm1hdC5maWVsZCA9IFY0TDJfRklFTERfTk9ORTsNCj4+Pj4+ PiArICAgICBpc2MtPnNjYWxlcl9mb3JtYXQueWNiY3JfZW5jID0gVjRMMl9ZQ0JDUl9FTkNfREVG QVVMVDsNCj4+Pj4+PiArICAgICBpc2MtPnNjYWxlcl9mb3JtYXQucXVhbnRpemF0aW9uID0gVjRM Ml9RVUFOVElaQVRJT05fREVGQVVMVDsNCj4+Pj4+PiArICAgICBpc2MtPnNjYWxlcl9mb3JtYXQu eGZlcl9mdW5jID0gVjRMMl9YRkVSX0ZVTkNfREVGQVVMVDsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAg ICAgcmV0ID0gbWVkaWFfZW50aXR5X3BhZHNfaW5pdCgmaXNjLT5zY2FsZXJfc2QuZW50aXR5LA0K Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNDX1NDQUxFUl9QQURT X05VTSwNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzYy0+c2Nh bGVyX3BhZHMpOw0KPj4+Pj4+ICsgICAgIGlmIChyZXQgPCAwKSB7DQo+Pj4+Pj4gKyAgICAgICAg ICAgICBkZXZfZXJyKGlzYy0+ZGV2LCAic2NhbGVyIHNkIG1lZGlhIGVudGl0eSBpbml0IGZhaWxl ZFxuIik7DQo+Pj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4+Pj4+ICsgICAgIH0N Cj4+Pj4+PiArICAgICByZXQgPSB2NGwyX2RldmljZV9yZWdpc3Rlcl9zdWJkZXYoJmlzYy0+djRs Ml9kZXYsICZpc2MtPnNjYWxlcl9zZCk7DQo+Pj4+Pj4gKyAgICAgaWYgKHJldCA8IDApIHsNCj4+ Pj4+PiArICAgICAgICAgICAgIGRldl9lcnIoaXNjLT5kZXYsICJzY2FsZXIgc2QgZmFpbGVkIHRv IHJlZ2lzdGVyIHN1YmRldlxuIik7DQo+Pj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Ow0K Pj4+Pj4+ICsgICAgIH0NCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgcmV0dXJuIHJldDsNCj4+Pj4+ PiArfQ0KPj4+Pj4+ICtFWFBPUlRfU1lNQk9MX0dQTChpc2Nfc2NhbGVyX2luaXQpOw0KPj4+Pj4+ ICsNCj4+Pj4+PiAraW50IGlzY19zY2FsZXJfbGluayhzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKQ0K Pj4+Pj4+ICt7DQo+Pj4+Pj4gKyAgICAgaW50IHJldDsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAg cmV0ID0gbWVkaWFfY3JlYXRlX3BhZF9saW5rKCZpc2MtPmN1cnJlbnRfc3ViZGV2LT5zZC0+ZW50 aXR5LA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc2MtPnJlbW90 ZV9wYWQsICZpc2MtPnNjYWxlcl9zZC5lbnRpdHksDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElTQ19TQ0FMRVJfUEFEX1NJTkssDQo+Pj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE1FRElBX0xOS19GTF9FTkFCTEVEIHwNCj4+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVESUFfTE5LX0ZMX0lNTVVUQUJMRSk7DQo+ Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIGlmIChyZXQgPCAwKSB7DQo+Pj4+Pj4gKyAgICAgICAgICAg ICB2NGwyX2VycigmaXNjLT52NGwyX2RldiwNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICJGYWlsZWQgdG8gY3JlYXRlIHBhZCBsaW5rOiAlcyB0byAlc1xuIiwNCj4+Pj4+PiArICAgICAg ICAgICAgICAgICAgICAgIGlzYy0+Y3VycmVudF9zdWJkZXYtPnNkLT5lbnRpdHkubmFtZSwNCj4+ Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIGlzYy0+c2NhbGVyX3NkLmVudGl0eS5uYW1lKTsN Cj4+Pj4+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+Pj4+Pj4gKyAgICAgfQ0KPj4+Pj4+ ICsNCj4+Pj4+PiArICAgICBkZXZfZGJnKGlzYy0+ZGV2LCAibGluayB3aXRoICVzIHBhZDogJWRc biIsDQo+Pj4+Pj4gKyAgICAgICAgICAgICBpc2MtPmN1cnJlbnRfc3ViZGV2LT5zZC0+bmFtZSwg aXNjLT5yZW1vdGVfcGFkKTsNCj4+Pj4+PiArDQo+Pj4+Pj4gKyAgICAgcmV0ID0gbWVkaWFfY3Jl YXRlX3BhZF9saW5rKCZpc2MtPnNjYWxlcl9zZC5lbnRpdHksDQo+Pj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElTQ19TQ0FMRVJfUEFEX1NPVVJDRSwNCj4+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlzYy0+dmlkZW9fZGV2LmVudGl0eSwgSVND X1BBRF9TSU5LLA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRURJ QV9MTktfRkxfRU5BQkxFRCB8DQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE1FRElBX0xOS19GTF9JTU1VVEFCTEUpOw0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICBpZiAo cmV0IDwgMCkgew0KPj4+Pj4+ICsgICAgICAgICAgICAgdjRsMl9lcnIoJmlzYy0+djRsMl9kZXYs DQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBwYWQgbGlu azogJXMgdG8gJXNcbiIsDQo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICBpc2MtPnNjYWxl cl9zZC5lbnRpdHkubmFtZSwNCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIGlzYy0+dmlk ZW9fZGV2LmVudGl0eS5uYW1lKTsNCj4+Pj4+PiArICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ Pj4+Pj4gKyAgICAgfQ0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICBkZXZfZGJnKGlzYy0+ZGV2LCAi bGluayB3aXRoICVzIHBhZDogJWRcbiIsIGlzYy0+c2NhbGVyX3NkLm5hbWUsDQo+Pj4+Pj4gKyAg ICAgICAgICAgICBJU0NfU0NBTEVSX1BBRF9TT1VSQ0UpOw0KPj4+Pj4+ICsNCj4+Pj4+PiArICAg ICByZXR1cm4gcmV0Ow0KPj4+Pj4+ICt9DQo+Pj4+Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKGlzY19z Y2FsZXJfbGluayk7DQo+Pj4+Pg0KPj4+Pj4gICAgRnJvbSB0aGUgRFQgZ3JhcGggcG9pbnQgb2Yg dmlldywgdGhlIElTQyBhcHBlYXJzIGFzIGEgc2luZ2xlIGJsb2NrDQo+Pj4+PiB3aXRoIGFuIENT SS0yIGlucHV0IHBvcnQuIEl0IGlzIHRoZW4gaW4gY2hhcmdlIG9mIHBhcnNpbmcgdGhlIC5kdHMg YW5kDQo+Pj4+PiBhZGQgdG8gaXRzIG5vdGlmaWVyIHRoZSBpbWFnZSBzZW5zb3IgcmVtb3RlIHN1 YmRldmljZS4NCj4+Pj4NCj4+Pj4gQWN0dWFsbHkgaXQncyBvbmx5IGEgcGFyYWxsZWwgcG9ydC4N Cj4+Pj4gQW5kIGl0IGNhbiBiZSBjb25uZWN0ZWQgZWl0aGVyIHRvIGEgc2Vuc29yIGRpcmVjdGx5 IG9yIHRvIHRoZSBjc2kyZGMNCj4+Pj4gYnJpZGdlLiAodGhlIGNzaTJkYyBicmlkZ2UgY2FuIGJl IGNvbm5lY3RlZCB0byBhIENTSS0yIHJlY2VpdmVyKQ0KPj4+Pg0KPj4+Pj4NCj4+Pj4+IFdoZW4g dGhlIHNlbnNvciBzdWJkZXYgcmVnaXN0ZXJzIGFuZCB0aGUgSVNDIG5vdGlmaWVyIGNvbXBsZXRl cywgdGhlIHNjYWxlcg0KPj4+Pj4gZW50aXR5IHdoaWNoIHdhcyBpbml0aWFsaXplZCBhdCBpc2Nf cHJvYmUoKSB0aW1lIGlzIGxpbmtlZCBpbiBiZXR3ZWVuDQo+Pj4+PiB0aGUgSVNDIGFuZCB0aGUg aW1hZ2Ugc2Vuc29yIGltbXV0YWJseS4NCj4+Pj4NCj4+Pj4geWVzLCBiZWNhdXNlIHRoaXMgY2Fu bm90IGNoYW5nZSBhdCBydW50aW1lLCBhbmQgdXN1YWxseSwgaXQgY2FuJ3QgY2hhbmdlDQo+Pj4+ IHdpdGhvdXQgYWx0ZXJpbmcgdGhlIGJvYXJkIGhhcmR3YXJlLiAoYXQgbGVhc3QgdGhpcyBpcyB3 aGF0IG15DQo+Pj4+IHVuZGVyc3RhbmRpbmcgb2YgaW1tdXRhYmlsaXR5IGlzICkNCj4+Pj4NCj4+ Pj4+DQo+Pj4+PiBJIHRoaW5rIGl0IGlzIGZpbmUgZm9yIG5vdywgYnV0IEkgd29uZGVyIGlmIHlv dSBwbGFuIHRvIHBsdW1iIG1vcmUNCj4+Pj4+IGNvbXBvbmVudHMgYmV0d2VlbiB0aGUgSVNDIHZp ZGVvIG5vZGUgYW5kIHRoZSBzZW5zb3IsIGlmIGl0J3Mgbm90DQo+Pj4+PiB3b3J0aCBjaGFuZ2lu ZyB0aGUgRFQgYmluZGluZ3MgYW5kIHRoZWlyIHBhcnNpbmcgbG9naWMgdG8gc2VwYXJhdGUgdGhl DQo+Pj4+PiBDU0ktMiByZWNlaXZlciBmcm9tIHRoZSBJU0MsIHdoY2loIGNhbiBjcmVhdGUgaXRz IG1lZGlhIGdyYXBoIGF0IHByb2JlDQo+Pj4+PiB0aW1lIGFuZCBoYXZlIHRoZSBDU0ktMiByZWNl aXZlciBlbnRpdHkgYXMgZG93bnN0cmVhbSByZW1vdGUuIEkgdGhpbmsNCj4+Pj4+IEkgbmVlZCB0 byBnZXQgdG8ga25vdyB0aGUgSVNDIGJldHRlciB0byByZWFsbHkgaGF2ZSBhbiBpZGVhLiBGb3Ig bm93LA0KPj4+Pj4gdGhpcyBzZWVtcyBvayB0byBtZSwgYnV0IHBsZWFzZSBjaGVjayB3aXRoIG1h aW50YWluZXJzIGlmIHRoaXMgaXMgZmluZQ0KPj4+Pj4gd2l0aCB0aGVtLg0KPj4+Pg0KPj4+PiBJ biB0aGUgWElTQyBjYXNlIChzYW1hN2c1LWlzYyksIHRoZSBjc2kyZGMgcmVjZWl2ZXIgaXMgdGhl IHN1YmRldiAoc28sDQo+Pj4+IHRoZSByZW1vdGUgc3ViZGV2KS4NCj4+Pj4gVGhlIElTQyB3aWxs IHJlZ2lzdGVyIGEgc2NhbGVyLCBhbmQgY29ubmVjdCB0aGUgc3ViZGV2IHRvIHRoaXMgc2NhbGVy DQo+Pj4+IGZpcnN0LCBhbmQgdGhlbiwgdGhlIHNjYWxlciB0byB0aGUgaXNjIGl0c2VsZiAodGhl IHY0bCBlbnRpdHkpLg0KPj4+Pg0KPj4+Pj4NCj4+Pj4+PiArDQo+Pj4+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRtZWwvYXRtZWwtaXNjLmggYi9kcml2ZXJzL21lZGlh L3BsYXRmb3JtL2F0bWVsL2F0bWVsLWlzYy5oDQo+Pj4+Pj4gaW5kZXggNWZiZjUyYTkwODBiLi5j OTIzNGM5MGFlNTggMTAwNjQ0DQo+Pj4+Pj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9h dG1lbC9hdG1lbC1pc2MuaA0KPj4+Pj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vYXRt ZWwvYXRtZWwtaXNjLmgNCj4+Pj4+PiBAQCAtMTgzLDYgKzE4MywxNyBAQCBzdHJ1Y3QgaXNjX3Jl Z19vZmZzZXRzIHsNCj4+Pj4+PiAgICAgICAgICB1MzIgaGlzX2VudHJ5Ow0KPj4+Pj4+ICAgICB9 Ow0KPj4+Pj4+DQo+Pj4+Pj4gK2VudW0gaXNjX21jX3BhZHMgew0KPj4+Pj4+ICsgICAgIElTQ19Q QURfU0lOSyAgICA9IDAsDQo+Pj4+Pj4gKyAgICAgSVNDX1BBRFNfTlVNICAgID0gMSwNCj4+Pj4+ PiArfTsNCj4+Pj4+PiArDQo+Pj4+Pj4gK2VudW0gaXNjX3NjYWxlcl9wYWRzIHsNCj4+Pj4+PiAr ICAgICBJU0NfU0NBTEVSX1BBRF9TSU5LICAgICA9IDAsDQo+Pj4+Pj4gKyAgICAgSVNDX1NDQUxF Ul9QQURfU09VUkNFICAgPSAxLA0KPj4+Pj4+ICsgICAgIElTQ19TQ0FMRVJfUEFEU19OVU0gICAg ID0gMiwNCj4+Pj4+PiArfTsNCj4+Pj4+PiArDQo+Pj4+Pj4gICAgIC8qDQo+Pj4+Pj4gICAgICAq IHN0cnVjdCBpc2NfZGV2aWNlIC0gSVNDIGRldmljZSBkcml2ZXIgZGF0YS9jb25maWcgc3RydWN0 DQo+Pj4+Pj4gICAgICAqIEByZWdtYXA6ICAgICAgICAgIFJlZ2lzdGVyIG1hcA0KPj4+Pj4+IEBA IC0yNTcsNiArMjY4LDEyIEBAIHN0cnVjdCBpc2NfcmVnX29mZnNldHMgew0KPj4+Pj4+ICAgICAg KiAgICAgICAgICAgICAgICAgICBiZSB1c2VkIGFzIGFuIGlucHV0IHRvIHRoZSBjb250cm9sbGVy DQo+Pj4+Pj4gICAgICAqIEBjb250cm9sbGVyX2Zvcm1hdHNfc2l6ZTogc2l6ZSBvZiBjb250cm9s bGVyX2Zvcm1hdHMgYXJyYXkNCj4+Pj4+PiAgICAgICogQGZvcm1hdHNfbGlzdF9zaXplOiAgICAg ICBzaXplIG9mIGZvcm1hdHNfbGlzdCBhcnJheQ0KPj4+Pj4+ICsgKiBAcGFkczogICAgICAgICAg ICBtZWRpYSBjb250cm9sbGVyIHBhZHMgZm9yIGlzYyB2aWRlbyBlbnRpdHkNCj4+Pj4+PiArICog QG1kZXY6ICAgICAgICAgICAgbWVkaWEgZGV2aWNlIHRoYXQgaXMgcmVnaXN0ZXJlZCBieSB0aGUg aXNjDQo+Pj4+Pj4gKyAqIEByZW1vdGVfcGFkOiAgICAgICAgICAgICAgcmVtb3RlIHBhZCBvbiB0 aGUgY29ubmVjdGVkIHN1YmRldmljZQ0KPj4+Pj4+ICsgKiBAc2NhbGVyX3NkOiAgICAgICAgICAg ICAgIHN1YmRldmljZSBmb3IgdGhlIHNjYWxlciB0aGF0IGlzYyByZWdpc3RlcnMNCj4+Pj4+PiAr ICogQHNjYWxlcl9wYWRzOiAgICAgbWVkaWEgY29udHJvbGxlciBwYWRzIGZvciB0aGUgc2NhbGVy IHN1YmRldmljZQ0KPj4+Pj4+ICsgKiBAc2NhbGVyX2Zvcm1hdDogICBjdXJyZW50IGZvcm1hdCBm b3IgdGhlIHNjYWxlciBzdWJkZXZpY2UNCj4+Pj4+PiAgICAgICovDQo+Pj4+Pj4gICAgIHN0cnVj dCBpc2NfZGV2aWNlIHsNCj4+Pj4+PiAgICAgICAgICBzdHJ1Y3QgcmVnbWFwICAgICAgICAgICAq cmVnbWFwOw0KPj4+Pj4+IEBAIC0zNDQsNiArMzYxLDE5IEBAIHN0cnVjdCBpc2NfZGV2aWNlIHsN Cj4+Pj4+PiAgICAgICAgICBzdHJ1Y3QgaXNjX2Zvcm1hdCAgICAgICAgICAgICAgICpmb3JtYXRz X2xpc3Q7DQo+Pj4+Pj4gICAgICAgICAgdTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b250cm9sbGVyX2Zvcm1hdHNfc2l6ZTsNCj4+Pj4+PiAgICAgICAgICB1MzIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZvcm1hdHNfbGlzdF9zaXplOw0KPj4+Pj4+ICsNCj4+Pj4+PiArICAg ICBzdHJ1Y3Qgew0KPj4+Pj4+ICsgICAgICAgICAgICAgc3RydWN0IG1lZGlhX3BhZCAgICAgICAg ICAgICAgICBwYWRzW0lTQ19QQURTX05VTV07DQo+Pj4+Pj4gKyAgICAgICAgICAgICBzdHJ1Y3Qg bWVkaWFfZGV2aWNlICAgICAgICAgICAgIG1kZXY7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgICAg ICAgICAgdTMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdGVfcGFkOw0KPj4+Pj4+ ICsgICAgIH07DQo+Pj4+Pj4gKw0KPj4+Pj4+ICsgICAgIHN0cnVjdCB7DQo+Pj4+Pj4gKyAgICAg ICAgICAgICBzdHJ1Y3QgdjRsMl9zdWJkZXYgICAgICAgICAgICAgIHNjYWxlcl9zZDsNCj4+Pj4+ PiArICAgICAgICAgICAgIHN0cnVjdCBtZWRpYV9wYWQgICAgICAgICAgICAgICAgc2NhbGVyX3Bh ZHNbSVNDX1NDQUxFUl9QQURTX05VTV07DQo+Pj4+Pj4gKyAgICAgICAgICAgICBzdHJ1Y3QgdjRs Ml9tYnVzX2ZyYW1lZm10ICAgICAgIHNjYWxlcl9mb3JtYXQ7DQo+Pj4+DQo+Pj4+IEhlcmUgYXJl IHRoZSBzY2FsZXIgc3R1ZmYgd2hpY2ggSSBhZGRlZCwgaW4gdGhlIHNhbWUgYnVsayBzdHJ1Y3Qg Zm9yIHRoZQ0KPj4+PiB3aG9sZSBpc2MgZGV2aWNlDQo+Pj4+DQo+Pj4+DQo+Pj4+Pj4gKyAgICAg fTsNCj4+Pj4+PiAgICAgfTsNCj4+Pj4+Pg0KPj4+Pj4+ICAgICBleHRlcm4gY29uc3Qgc3RydWN0 IHJlZ21hcF9jb25maWcgaXNjX3JlZ21hcF9jb25maWc7DQo+Pj4+Pj4gQEAgLTM1NSw0ICszODUs MTEgQEAgaW50IGlzY19jbGtfaW5pdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKTsNCj4+Pj4+PiAg ICAgdm9pZCBpc2Nfc3ViZGV2X2NsZWFudXAoc3RydWN0IGlzY19kZXZpY2UgKmlzYyk7DQo+Pj4+ Pj4gICAgIHZvaWQgaXNjX2Nsa19jbGVhbnVwKHN0cnVjdCBpc2NfZGV2aWNlICppc2MpOw0KPj4+ Pj4+DQo+Pj4+Pj4gK2ludCBpc2Nfc2NhbGVyX2xpbmsoc3RydWN0IGlzY19kZXZpY2UgKmlzYyk7 DQo+Pj4+Pj4gK2ludCBpc2Nfc2NhbGVyX2luaXQoc3RydWN0IGlzY19kZXZpY2UgKmlzYyk7DQo+ Pj4+Pj4gK2ludCBpc2NfbWNfaW5pdChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLCB1MzIgdmVyKTsN Cj4+Pj4+PiArdm9pZCBpc2NfbWNfY2xlYW51cChzdHJ1Y3QgaXNjX2RldmljZSAqaXNjKTsNCj4+ Pj4+PiArDQo+Pj4+Pj4gK3N0cnVjdCBpc2NfZm9ybWF0ICppc2NfZmluZF9mb3JtYXRfYnlfY29k ZShzdHJ1Y3QgaXNjX2RldmljZSAqaXNjLA0KPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvZGUsIGludCAqaW5kZXgpOw0KPj4+Pj4+ ICAgICAjZW5kaWYNCj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9h dG1lbC9hdG1lbC1zYW1hNWQyLWlzYy5jIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9h dG1lbC1zYW1hNWQyLWlzYy5jDQo+Pj4+Pj4gaW5kZXggYzViOTU2M2UzNmNiLi5jMjQ0NjgyZWEy MmYgMTAwNjQ0DQo+Pj4+Pj4gLS0tIGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1l bC1zYW1hNWQyLWlzYy5jDQo+Pj4+Pj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1l bC9hdG1lbC1zYW1hNWQyLWlzYy5jDQo+Pj4+Pj4gQEAgLTU1Myw2ICs1NTMsMTIgQEAgc3RhdGlj IGludCBhdG1lbF9pc2NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4+Pj4+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+Pj4+Pj4gICAgICAgICAgfQ0KPj4+ Pj4+DQo+Pj4+Pj4gKyAgICAgcmVnbWFwX3JlYWQoaXNjLT5yZWdtYXAsIElTQ19WRVJTSU9OICsg aXNjLT5vZmZzZXRzLnZlcnNpb24sICZ2ZXIpOw0KPj4+Pj4NCj4+Pj4+IEkgYW0gc3VycHJpc2Vk IHlvdSBjYW4gcmVhZCBhIHJlZ2lzdGVyIGJlZm9yZSBydW50aW1lX3BtIGlzDQo+Pj4+PiBpbnRp YWxpemVkIQ0KPj4+Pj4NCj4+Pj4NCj4+Pj4gQWN0dWFsbHkgSSBjYW4gcmVhZCBhbnkgcmVnaXN0 ZXIgYWZ0ZXIgdGhlIG1vbWVudCBvZiBzdGFydGluZyB0aGUgY2xvY2sNCj4+Pj4gb24gdGhlIGhh cmR3YXJlIGJsb2NrLg0KPj4+DQo+Pj4gQWggcmlnaHQgdGhlbg0KPj4+DQo+Pj4+IE1heWJlIHRo ZSBzdGFydGluZyBhbmQgc3RvcHBpbmcgb2YgdGhlIGNsb2NrIG5lZWRzIHRvIGJlIG1vdmVkIHRv IHRoZQ0KPj4+PiBydW50aW1lX3BtIGNhbGxzLCBidXQgdGhpcyBpcyBhbm90aGVyIHN0b3J5LCBu b3QgcmVsYXRlZCB0byB0aGUgbWVkaWENCj4+Pj4gY29udHJvbGxlci4NCj4+Pg0KPj4+IEl0J3Mg ZmluZSwgYnV0IG1heWJlIHdvcnRoIHJlY29yZGluZyB3aXRoIGEgdG9kbyA/DQo+Pj4NCj4+PiBU aGFua3MNCj4+PiAgICAgag0KPj4+DQo+Pj4+IEkgbW92ZWQgdGhpcyBsaW5lIGJlY2F1c2UgSSBo YWQgdG8gcGFzcyB0aGUgdmVyc2lvbiB0byB0aGUgaXNjX21jX2luaXQgY2FsbA0KPj4+Pg0KPj4+ Pj4gVGhhbmtzDQo+Pj4+PiAgICAgICBqDQo+Pj4+DQo+Pj4+IFRoYW5rcyBmb3IgcmV2aWV3aW5n ICENCj4+Pj4gRXVnZW4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICByZXQg PSBpc2NfbWNfaW5pdChpc2MsIHZlcik7DQo+Pj4+Pj4gKyAgICAgaWYgKHJldCA8IDApDQo+Pj4+ Pj4gKyAgICAgICAgICAgICBnb3RvIGlzY19wcm9iZV9tY19pbml0X2VycjsNCj4+Pj4+PiArDQo+ Pj4+Pj4gICAgICAgICAgcG1fcnVudGltZV9zZXRfYWN0aXZlKGRldik7DQo+Pj4+Pj4gICAgICAg ICAgcG1fcnVudGltZV9lbmFibGUoZGV2KTsNCj4+Pj4+PiAgICAgICAgICBwbV9yZXF1ZXN0X2lk bGUoZGV2KTsNCj4+Pj4+PiBAQCAtNTYyLDcgKzU2OCw3IEBAIHN0YXRpYyBpbnQgYXRtZWxfaXNj X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+Pj4+Pj4gICAgICAgICAgcmV0 ID0gY2xrX3ByZXBhcmVfZW5hYmxlKGlzYy0+aXNwY2spOw0KPj4+Pj4+ICAgICAgICAgIGlmIChy ZXQpIHsNCj4+Pj4+PiAgICAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGVu YWJsZSBpc3BjazogJWRcbiIsIHJldCk7DQo+Pj4+Pj4gLSAgICAgICAgICAgICBnb3RvIGNsZWFu dXBfc3ViZGV2Ow0KPj4+Pj4+ICsgICAgICAgICAgICAgZ290byBpc2NfcHJvYmVfbWNfaW5pdF9l cnI7DQo+Pj4+Pj4gICAgICAgICAgfQ0KPj4+Pj4+DQo+Pj4+Pj4gICAgICAgICAgLyogaXNwY2sg c2hvdWxkIGJlIGdyZWF0ZXIgb3IgZXF1YWwgdG8gaGNsb2NrICovDQo+Pj4+Pj4gQEAgLTU3Miw3 ICs1NzgsNiBAQCBzdGF0aWMgaW50IGF0bWVsX2lzY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2 aWNlICpwZGV2KQ0KPj4+Pj4+ICAgICAgICAgICAgICAgICAgZ290byB1bnByZXBhcmVfY2xrOw0K Pj4+Pj4+ICAgICAgICAgIH0NCj4+Pj4+Pg0KPj4+Pj4+IC0gICAgIHJlZ21hcF9yZWFkKGlzYy0+ cmVnbWFwLCBJU0NfVkVSU0lPTiArIGlzYy0+b2Zmc2V0cy52ZXJzaW9uLCAmdmVyKTsNCj4+Pj4+ PiAgICAgICAgICBkZXZfaW5mbyhkZXYsICJNaWNyb2NoaXAgSVNDIHZlcnNpb24gJXhcbiIsIHZl cik7DQo+Pj4+Pj4NCj4+Pj4+PiAgICAgICAgICByZXR1cm4gMDsNCj4+Pj4+PiBAQCAtNTgwLDYg KzU4NSw5IEBAIHN0YXRpYyBpbnQgYXRtZWxfaXNjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpDQo+Pj4+Pj4gICAgIHVucHJlcGFyZV9jbGs6DQo+Pj4+Pj4gICAgICAgICAgY2xr X2Rpc2FibGVfdW5wcmVwYXJlKGlzYy0+aXNwY2spOw0KPj4+Pj4+DQo+Pj4+Pj4gK2lzY19wcm9i ZV9tY19pbml0X2VycjoNCj4+Pj4+PiArICAgICBpc2NfbWNfY2xlYW51cChpc2MpOw0KPj4+Pj4+ ICsNCj4+Pj4+PiAgICAgY2xlYW51cF9zdWJkZXY6DQo+Pj4+Pj4gICAgICAgICAgaXNjX3N1YmRl dl9jbGVhbnVwKGlzYyk7DQo+Pj4+Pj4NCj4+Pj4+PiBAQCAtNjAwLDYgKzYwOCw4IEBAIHN0YXRp YyBpbnQgYXRtZWxfaXNjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPj4+ Pj4+DQo+Pj4+Pj4gICAgICAgICAgcG1fcnVudGltZV9kaXNhYmxlKCZwZGV2LT5kZXYpOw0KPj4+ Pj4+DQo+Pj4+Pj4gKyAgICAgaXNjX21jX2NsZWFudXAoaXNjKTsNCj4+Pj4+PiArDQo+Pj4+Pj4g ICAgICAgICAgaXNjX3N1YmRldl9jbGVhbnVwKGlzYyk7DQo+Pj4+Pj4NCj4+Pj4+PiAgICAgICAg ICB2NGwyX2RldmljZV91bnJlZ2lzdGVyKCZpc2MtPnY0bDJfZGV2KTsNCj4+Pj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1zYW1hN2c1LWlzYy5jIGIv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1zYW1hN2c1LWlzYy5jDQo+Pj4+Pj4g aW5kZXggMDdhODBiMDhiYzU0Li45ZGM3NWVlZDAwOTggMTAwNjQ0DQo+Pj4+Pj4gLS0tIGEvZHJp dmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1zYW1hN2c1LWlzYy5jDQo+Pj4+Pj4gKysr IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9hdG1lbC9hdG1lbC1zYW1hN2c1LWlzYy5jDQo+Pj4+ Pj4gQEAgLTU0NywxNSArNTQ3LDIzIEBAIHN0YXRpYyBpbnQgbWljcm9jaGlwX3hpc2NfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4+Pj4+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7DQo+Pj4+Pj4gICAgICAgICAgfQ0KPj4+Pj4+DQo+Pj4+Pj4gKyAgICAgcmVn bWFwX3JlYWQoaXNjLT5yZWdtYXAsIElTQ19WRVJTSU9OICsgaXNjLT5vZmZzZXRzLnZlcnNpb24s ICZ2ZXIpOw0KPj4+Pj4+ICsNCj4+Pj4+PiArICAgICByZXQgPSBpc2NfbWNfaW5pdChpc2MsIHZl cik7DQo+Pj4+Pj4gKyAgICAgaWYgKHJldCA8IDApDQo+Pj4+Pj4gKyAgICAgICAgICAgICBnb3Rv IGlzY19wcm9iZV9tY19pbml0X2VycjsNCj4+Pj4+PiArDQo+Pj4+Pj4gICAgICAgICAgcG1fcnVu dGltZV9zZXRfYWN0aXZlKGRldik7DQo+Pj4+Pj4gICAgICAgICAgcG1fcnVudGltZV9lbmFibGUo ZGV2KTsNCj4+Pj4+PiAgICAgICAgICBwbV9yZXF1ZXN0X2lkbGUoZGV2KTsNCj4+Pj4+Pg0KPj4+ Pj4+IC0gICAgIHJlZ21hcF9yZWFkKGlzYy0+cmVnbWFwLCBJU0NfVkVSU0lPTiArIGlzYy0+b2Zm c2V0cy52ZXJzaW9uLCAmdmVyKTsNCj4+Pj4+PiAgICAgICAgICBkZXZfaW5mbyhkZXYsICJNaWNy b2NoaXAgWElTQyB2ZXJzaW9uICV4XG4iLCB2ZXIpOw0KPj4+Pj4+DQo+Pj4+Pj4gICAgICAgICAg cmV0dXJuIDA7DQo+Pj4+Pj4NCj4+Pj4+PiAraXNjX3Byb2JlX21jX2luaXRfZXJyOg0KPj4+Pj4+ ICsgICAgIGlzY19tY19jbGVhbnVwKGlzYyk7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICAgICBjbGVhbnVw X3N1YmRldjoNCj4+Pj4+PiAgICAgICAgICBpc2Nfc3ViZGV2X2NsZWFudXAoaXNjKTsNCj4+Pj4+ Pg0KPj4+Pj4+IEBAIC01NzYsNiArNTg0LDggQEAgc3RhdGljIGludCBtaWNyb2NoaXBfeGlzY19y ZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCj4+Pj4+Pg0KPj4+Pj4+ICAgICAg ICAgIHBtX3J1bnRpbWVfZGlzYWJsZSgmcGRldi0+ZGV2KTsNCj4+Pj4+Pg0KPj4+Pj4+ICsgICAg IGlzY19tY19jbGVhbnVwKGlzYyk7DQo+Pj4+Pj4gKw0KPj4+Pj4+ICAgICAgICAgIGlzY19zdWJk ZXZfY2xlYW51cChpc2MpOw0KPj4+Pj4+DQo+Pj4+Pj4gICAgICAgICAgdjRsMl9kZXZpY2VfdW5y ZWdpc3RlcigmaXNjLT52NGwyX2Rldik7DQo+Pj4+Pj4gLS0NCj4+Pj4+PiAyLjI1LjENCj4+Pj4+ Pg0KPj4+Pg0KPj4NCg0K