From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EBFAFC433DB for ; Tue, 16 Feb 2021 10:51:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A125064DCF for ; Tue, 16 Feb 2021 10:51:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230001AbhBPKun (ORCPT ); Tue, 16 Feb 2021 05:50:43 -0500 Received: from esa.microchip.iphmx.com ([68.232.153.233]:19683 "EHLO esa.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229703AbhBPKuF (ORCPT ); Tue, 16 Feb 2021 05:50:05 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1613472602; x=1645008602; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=ucFhh53+U14tOT/exNe9xieyM5sT+64+8WGbrLtrXXM=; b=UEnU0sEyQgkL8Bifys68IZxEmGpIKAEsmkCVYdz2P+55qQRlg0177lls rPaPzvxOUZk+RYxlAn04fWIgRtkjY1Dwd2vy2YOJougryVfxm37q0m9gH caYD+/eMwgENnvfSN8j5a+7n+KrValB4Mk6zilg8eVVhMg/ZnkSPJ3U7n sVP3aa4+mDnzAVJpr7WkREyCXcukgCUjdSSwHEkcPGqkvLWW4WGASLDvH 9y5DE0n1/GQzz0Y0HEQwLz3yShGkQcuUEcqXfafDkBkIUx12WLAnUXJhD +c4/ah5AnoOJFsO7+JBb3FHW8412mzTYQ5gAR288HDXZ5flcRCmcSk8b/ A==; IronPort-SDR: fT23sRoEmlLlvI2Wc7umQHmu3NGKZGhIhGSw41c0JavGdLRr1q3sN4JP1qjZqDPlinzDD+vl3i S7AmqD07yyZyabR2NZdLBCuzw9/bSOuiGnU5rQQ9dVp2h1NnRkPoCMym2dzVQ5a7TYXbdrajvn C0Ygu0Z5rM/BciNX19GnR1QVO14U3UNdS0xKFVeXf+y7eqqCG8NcbtVJMBzZa1TR90G2LyJUSy CBDe8FwQQhyGN7wmAVXN1kaPhMmq6S8qHh9HxJY1c396jbbvAMkVgV/ig7fdw6dSG1UPF0aUQ9 Wzg= X-IronPort-AV: E=Sophos;i="5.81,183,1610434800"; d="scan'208";a="109835137" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa3.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 16 Feb 2021 03:48:47 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.85.152) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Tue, 16 Feb 2021 03:48:47 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (10.10.215.89) by email.microchip.com (10.10.87.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3 via Frontend Transport; Tue, 16 Feb 2021 03:48:47 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fzjiz4HFy3YA/2o6HZF7nUsVT0zSJ+ClV2sITfHcaQ/PQOoJpwLuyZ8IyQ9fL1cwUfTB2MSbCUtUayUR77LabkXKRL47bpXVa1ayYZSVHiw+cyWjHbwdmmC3rtsL9ULP+BZ2UNsX+Xei9SDpnRncWzEsJKTUudIBMxFuTtr2+19806ixK68CLHNH5t2RpLaqnbWk6xTcszegRwvyxgwenRYe86sbL3Zd1yNO47i0DvmbK3VrLuptwXHBR6VVf9lfBbjIyv5cJoZrKzWpQEKtvzm3zanOHLFZ5yvAgUN5XlGbsdp5nEPFNi7RDiBaKIxlC0Z1+fOMbsbReHJyiPlmwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ucFhh53+U14tOT/exNe9xieyM5sT+64+8WGbrLtrXXM=; b=LfNMsj6sBg8iRtGHvifc9mNKxACCTGO0PIuV+faZtESe9OE+eSgUk7IarXbXK9gBBKIzdxeo4j4LaoodH1cTEJb+vS1LaNb3Jp+CNv7kDWhHCZk9B5QS7AvUswCGYCw0vPkH1+TuEQTETLXjZI2RNFDYNrED4zGDBHo/LZg8UvY6nKZj5XwVIIHZhzRneWzBOijmXqM9585ytRD42r4sIPpxAYG3ICLj0I1SkvceglBp1teB3OTrSjDfh0qmzaqqIgnw8y1TrZvxldPa7f9f4CVrB1yJEy6yQPO89mQvcCnnnYBQwx4Ggt3NykOc7xa0bRBWgUw92xHwBvHbHAEZgw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; 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=ucFhh53+U14tOT/exNe9xieyM5sT+64+8WGbrLtrXXM=; b=va3j+YJPEnqNxbM5DRW0nADHaqhyOE6x3yvJd/rXTfrLBkWhM9Hmf+id4F1Mxq7RhIO7gqn+xQ4M0mbfufdWxmLqNpqMnZr9ECD4Qir+sn0odFEC2e6DMfcuQni+t9SzOBEArpZLeBjk1KhZ9c4hPx+mazPA5hUdlpQGtTLhq7M= Received: from DM5PR1101MB2329.namprd11.prod.outlook.com (2603:10b6:3:9e::23) by DM6PR11MB4332.namprd11.prod.outlook.com (2603:10b6:5:1dd::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3846.39; Tue, 16 Feb 2021 10:48:41 +0000 Received: from DM5PR1101MB2329.namprd11.prod.outlook.com ([fe80::e048:33b3:3453:5a9]) by DM5PR1101MB2329.namprd11.prod.outlook.com ([fe80::e048:33b3:3453:5a9%11]) with mapi id 15.20.3846.042; Tue, 16 Feb 2021 10:48:41 +0000 From: To: , , , , , , , , CC: , , , Subject: Re: [PATCH net-next v2 1/3] net: phy: mscc: adding LCPLL reset to VSC8514 Thread-Topic: [PATCH net-next v2 1/3] net: phy: mscc: adding LCPLL reset to VSC8514 Thread-Index: AQHXA7vBnfiVMNowp0CVz+Uhobz/eKpZd6oAgAEjb4A= Date: Tue, 16 Feb 2021 10:48:41 +0000 Message-ID: <4f3d20174e1182d86eacf3979bed601cf733e513.camel@microchip.com> References: <20210215165800.14580-1-bjarni.jonasson@microchip.com> <8b2a4030-62b3-5c28-fa10-19a839568271@gmail.com> In-Reply-To: <8b2a4030-62b3-5c28-fa10-19a839568271@gmail.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.28.5-0ubuntu0.18.04.2 authentication-results: lunn.ch; dkim=none (message not signed) header.d=none;lunn.ch; dmarc=none action=none header.from=microchip.com; x-originating-ip: [82.163.121.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b2566e95-243a-4357-75ee-08d8d2686ce6 x-ms-traffictypediagnostic: DM6PR11MB4332: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:569; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YyRTO85H7qDZSjb52nn779w1a3O/ecqQJrW7qaRAYKllyoINkkGYb5W4GjWibGqaO2MQoM/SaBPmRFf24bHsVajkZfsslMPXsDeBRsPgTtPsrXaWJFi9maKWQgyOvRzTpesTOspNhMeUz9KpJlAEtIgZG916ojrnrvX24Y6MLT0zzaRXzxvk14g6awosHKMTzaFV2RuM+aYJ2Mh18Qkhth5Oghu+3ge1RIpwMWOv8cl2+IEoMNeevO8EMNKeOjfjdD+cgqT0e02vq471geMQkJ07o8NW0IBBfDg7mU/hzB2R4YMxx3L6txFcdd4Ev6VS0Z4rf4ODqU4cW1qqNCkDklSS2emPg7jrG89h0IBLBgqmgC6lyaEEUlLHn8KnwbQqbf9RX17e4Gp64KZtRm+bn1UVh7GrbRF7OdSRZZSprBCBQTXw/O0vbnak7yA1b9E0GoMOxBh1DnStaAuuXU+40dAHzgQEieOiCy6F7U6m67b9IZUMK6vHV2bNkt4Fd4H5qY0yvth/r9fpQDKGdXpEWvIwhmqqMZbbGgV0d/XiaOelcshq59NLpak1syPIMJpO x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR1101MB2329.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(39860400002)(136003)(396003)(376002)(346002)(366004)(54906003)(6486002)(478600001)(76116006)(316002)(107886003)(110136005)(6512007)(2616005)(8676002)(4326008)(30864003)(6506007)(86362001)(7416002)(66946007)(83380400001)(2906002)(66556008)(64756008)(186003)(5660300002)(8936002)(66476007)(53546011)(91956017)(26005)(71200400001)(36756003)(66446008)(99106002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?ZVZ2L0RudHlCdkl2Sm5aTCtnbVh3VkR5VmY2VEtCa0tkSTVCMVNhZTNud2RC?= =?utf-8?B?NFNud3dqVWhwOXpsSi9vZGZlRWZSTGt1dHZGRWk2MUkxNEM2VExHelQ3ZDQ0?= =?utf-8?B?Wnp5eWpZU2h3TE8yOHBrcVhidGdUQ013czlhNVg5M0xlVERaZVRUenNVbTEv?= =?utf-8?B?VUhYdmxUSzUwbjNUYzFNc0VNK0xsK0hKRDRJNXhTNFdBYmFacVdLM0pwNjI4?= =?utf-8?B?TTAveHgyeGJYWGdBOXk2UktGUUxDUTh3RW5xZkZ4MVYrMWJWSEFZcDUrYUlt?= =?utf-8?B?Q25MaVdhMGJzV25lRDloUnlTMEdSSVdYTXZ0dTNSOXN3RENQcUVXY3NKZEVT?= =?utf-8?B?U0wwMzJYU21UaVNsUWtMbGFVY29vUDdNSXNYQXBWV1hTNWJUNWcybnFkcW83?= =?utf-8?B?VVlMQnBhSGs0cmFYV1dLb1pwTzlWQ0NVUzRmZFc3dmxLMWZ0bUFVb1ozUUtM?= =?utf-8?B?aytrVHdTbGlGakJhczFCcllBYzJ5QlFQUjlrcXYySnkxZEF5NzNWYUdRdG9I?= =?utf-8?B?b1Z3Vis3bWRSUVJZSDhpV0hURzRzRkNSb2wrbkNTN3U1bGFKOVFYNVU4enUy?= =?utf-8?B?V3ZvSXorK201TUsxekFQc3NsU2xVR2JueHI1N05KSmNlYk8rL1JkbmVETXp5?= =?utf-8?B?VDhZVkZKcUpRRmNaSHdvQjBGK20rWnR3YTJVREcyQTVCbTlwRUVSWWpqb0pO?= =?utf-8?B?YXJ1STE2VmlrTDUrbEpSL0kwK0lxeWQzU2NTUFdLREFVcW43RWNRVHNnaGdM?= =?utf-8?B?dDF1LzFBL3ZnT0NIQkp0eFdvZGdBZS91ZVRwbFV2clBoc3pxREtZaGFyWlRZ?= =?utf-8?B?YlV2RTJEclhFUzZVNDh1RjNJekpqd2xDaHFFU1lxT1FEc3E5YitUZ3BQd2Ri?= =?utf-8?B?NmpQNHppVW5qYTJzUmwrUitJemU1MG83NTZabzJ6T3EyTkZPaTlkYXpOZFZv?= =?utf-8?B?U1Q3eTBjLzNLMGdrNTRtbHhVR0toaEJNL0RjSFdOTHNoNTNFNTFhbHg4QVpN?= =?utf-8?B?SytoY1d4Zmt6RTlzM05nMEZReUl1VzdWQkFwQmlKclEvbFAwNFAycmtVQVpR?= =?utf-8?B?VnFhV1BnbWdTeEtoc1g5WThaOTQvOTAvOGZja3dlN3ArVWY4ZnRIclpUOFg2?= =?utf-8?B?VkxGdTZIY0x0S2t1a2NFVUFpUlhhdS9VRmxOb3I2ZnRqZWQwOGJrT3lTRGxQ?= =?utf-8?B?alZXWHZ3MjU0YjR3VzUrckI4Y1hRWTlKWCtxdng2UUNQUXdYTVRLczJiSlJQ?= =?utf-8?B?dHQ5dnNKTE1CWlV2cTIvWjFldnRvdC9aa0xZMVJkRjR2SFpnR3YzQW9oRFRl?= =?utf-8?B?K3U0YWQzSE1yWjNWN0djdzJaNFZZQmltS0tndTEvWHFGQlBSYW0wRUxHT0xI?= =?utf-8?B?cGhkeXdSeFVVZzRGNXdxN0lQL2Y1aEdsVUdidGc0NW0ycmkrdk4xb0sva3JZ?= =?utf-8?B?TGhwaE1Pem5ZNTRvNC9MMkFhYTVJS2VwU1RHL1VYYW9xU3ZtOE5hdEw3b2Ri?= =?utf-8?B?bVlTaVFLR3JPTHJ3ZVoyaTBoaUs2dzBxOXE1SFM4b1pYVzRESis5WDI2Um1h?= =?utf-8?B?SkRhZzNxUG5oQ2RqOEpJb3VDZnVxdGw5cm5QV2NFc0gwMjZ5ZjFmZVZzTE05?= =?utf-8?B?bXV6V0NxWmJZN2Yyc1Q5UGUyajdscDRYTHRRd2NZeVBOWGRCOWJCSmJ6ZEdL?= =?utf-8?B?dzg0ZnRBN0lTZk1YY3lNcEVCMnlFaHYxQ3RIdUNvUjJTR0pmVDY3ZVRBd2xh?= =?utf-8?Q?AMlzVk1Ed69pDhM/qxLamvozT0PKhuaqIeCtqJf?= Content-Type: text/plain; charset="utf-8" Content-ID: <52A3CD185269414EA648CA2D19D5CCE0@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM5PR1101MB2329.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2566e95-243a-4357-75ee-08d8d2686ce6 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Feb 2021 10:48:41.7100 (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: vAmyZXZb2xtX9yikG7FTRSMs5LGg6daS6wsMedrbLppSVD96ecyfJppVLDasLKmRGLEQhrBYGfpDvc2bVjOOumyzdGO1n9zdvZSYL5mMDxY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4332 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gTW9uLCAyMDIxLTAyLTE1IGF0IDE4OjI1ICswMTAwLCBIZWluZXIgS2FsbHdlaXQgd3JvdGU6 DQo+IEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50 cyB1bmxlc3MgeW91DQo+IGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZQ0KPiANCj4gT24gMTUuMDIu MjAyMSAxNzo1NywgQmphcm5pIEpvbmFzc29uIHdyb3RlOg0KPiA+IEF0IFBvd2VyLU9uIFJlc2V0 LCB0cmFuc2llbnRzIG1heSBjYXVzZSB0aGUgTENQTEwgdG8gbG9jayBvbnRvIGENCj4gPiBjbG9j ayB0aGF0IGlzIG1vbWVudGFyaWx5IHVuc3RhYmxlLiBUaGlzIGlzIG5vcm1hbGx5IHNlZW4gaW4g UVNHTUlJDQo+ID4gc2V0dXBzIHdoZXJlIHRoZSBoaWdoZXIgc3BlZWQgNkcgU2VyRGVzIGlzIGJl aW5nIHVzZWQuDQo+ID4gVGhpcyBwYXRjaCBhZGRzIGFuIGluaXRpYWwgTENQTEwgUmVzZXQgdG8g dGhlIFBIWSAoZmlyc3QgaW5zdGFuY2UpDQo+ID4gdG8gYXZvaWQgdGhpcyBpc3N1ZS4NCj4gPiAN Cj4gPiBTaWduZWQtb2ZmLWJ5OiBTdGVlbiBIZWdlbHVuZCA8c3RlZW4uaGVnZWx1bmRAbWljcm9j aGlwLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBCamFybmkgSm9uYXNzb24gPGJqYXJuaS5qb25h c3NvbkBtaWNyb2NoaXAuY29tPg0KPiA+IEZpeGVzOiBlNGY5YmE2NDJmMGIgKCJuZXQ6IHBoeTog bXNjYzogYWRkIHN1cHBvcnQgZm9yIFZTQzg1MTQNCj4gPiBQSFkuIikNCj4gDQo+IENvdmVyIGxl dHRlciBpcyBtaXNzaW5nLCBhbmQgRml4ZXMgc2hvdWxkIGJlIGZpcnN0Lg0KDQpXaWxsIGFkZCB0 aGF0Lg0KDQo+IA0KPiA+IC0tLQ0KPiA+IHYxIC0+IHYyOg0KPiA+ICAgUHJlc2VydmVkIHJldmVy c2VkIGNocmlzdG1hcyB0cmVlDQo+ID4gICBSZW1vdmVkIGZvcndhcmQgZGVmaW5pdGlvbnMNCj4g PiAgIEZpeGVkIGJ1aWxkIGlzc3Vlcw0KPiA+ICAgQ2hhbmdlZCBuZXQgdG8gbmV0LW5leHQNCj4g PiANCj4gPiAgZHJpdmVycy9uZXQvcGh5L21zY2MvbXNjYy5oICAgICAgfCAgIDggKw0KPiA+ICBk cml2ZXJzL25ldC9waHkvbXNjYy9tc2NjX21haW4uYyB8IDM1NCArKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0NCj4gPiAtLS0tDQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMjQwIGluc2VydGlvbnMo KyksIDEyMiBkZWxldGlvbnMoLSkNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv cGh5L21zY2MvbXNjYy5oDQo+ID4gYi9kcml2ZXJzL25ldC9waHkvbXNjYy9tc2NjLmgNCj4gPiBp bmRleCA5NDgxYmNlOTRjMmUuLmMyMDIzZjkzYzBiMiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJz L25ldC9waHkvbXNjYy9tc2NjLmgNCj4gPiArKysgYi9kcml2ZXJzL25ldC9waHkvbXNjYy9tc2Nj LmgNCj4gPiBAQCAtMTAyLDYgKzEwMiw3IEBAIGVudW0gcmdtaWlfY2xvY2tfZGVsYXkgew0KPiA+ ICAjZGVmaW5lIFBIWV9NQ0JfUzZHX1JFQUQgICAgICAgICAgICAgICBCSVQoMzApDQo+ID4gDQo+ ID4gICNkZWZpbmUgUEhZX1M2R19QTEw1R19DRkcwICAgICAgICAgICAgIDB4MDYNCj4gPiArI2Rl ZmluZSBQSFlfUzZHX1BMTDVHX0NGRzIgICAgICAgICAgICAgMHgwOA0KPiA+ICAjZGVmaW5lIFBI WV9TNkdfTENQTExfQ0ZHICAgICAgICAgICAgICAweDExDQo+ID4gICNkZWZpbmUgUEhZX1M2R19Q TExfQ0ZHICAgICAgICAgICAgICAgICAgICAgICAgMHgyYg0KPiA+ICAjZGVmaW5lIFBIWV9TNkdf Q09NTU9OX0NGRyAgICAgICAgICAgICAweDJjDQo+ID4gQEAgLTEyMSw2ICsxMjIsOSBAQCBlbnVt IHJnbWlpX2Nsb2NrX2RlbGF5IHsNCj4gPiAgI2RlZmluZSBQSFlfUzZHX1BMTF9GU01fQ1RSTF9E QVRBX1BPUyAgICAgICAgICA4DQo+ID4gICNkZWZpbmUgUEhZX1M2R19QTExfRlNNX0VOQV9QT1Mg ICAgICAgICAgICAgICAgNw0KPiA+IA0KPiA+ICsjZGVmaW5lIFBIWV9TNkdfQ0ZHMl9GU01fRElT ICAgICAgICAgICAgICAxDQo+ID4gKyNkZWZpbmUgUEhZX1M2R19DRkcyX0ZTTV9DTEtfQlAgICAg ICAgICAgMjMNCj4gPiArDQo+ID4gICNkZWZpbmUgTVNDQ19FWFRfUEFHRV9BQ0NFU1MgICAgICAg ICAgIDMxDQo+ID4gICNkZWZpbmUgTVNDQ19QSFlfUEFHRV9TVEFOREFSRCAgICAgICAgICAgICAg ICAgMHgwMDAwIC8qIFN0YW5kYXJkDQo+ID4gcmVnaXN0ZXJzICovDQo+ID4gICNkZWZpbmUgTVND Q19QSFlfUEFHRV9FWFRFTkRFRCAgICAgICAgICAgICAgICAgMHgwMDAxIC8qIEV4dGVuZGVkDQo+ ID4gcmVnaXN0ZXJzICovDQo+ID4gQEAgLTQxMiw2ICs0MTYsMTAgQEAgc3RydWN0IHZzYzg1MzFf ZWRnZV9yYXRlX3RhYmxlIHsNCj4gPiAgfTsNCj4gPiAgI2VuZGlmIC8qIENPTkZJR19PRl9NRElP ICovDQo+ID4gDQo+ID4gK2VudW0gY3NyX3RhcmdldCB7DQo+ID4gKyAgICAgTUFDUk9fQ1RSTCAg PSAweDA3LA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgI2lmIElTX0VOQUJMRUQoQ09ORklHX01BQ1NF QykNCj4gPiAgaW50IHZzYzg1ODRfbWFjc2VjX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRl dik7DQo+ID4gIHZvaWQgdnNjODU4NF9oYW5kbGVfbWFjc2VjX2ludGVycnVwdChzdHJ1Y3QgcGh5 X2RldmljZSAqcGh5ZGV2KTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvcGh5L21zY2Mv bXNjY19tYWluLmMNCj4gPiBiL2RyaXZlcnMvbmV0L3BoeS9tc2NjL21zY2NfbWFpbi5jDQo+ID4g aW5kZXggMmYyMTU3ZTNkZWFiLi4wOTY1MGMzMzQwYTEgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVy cy9uZXQvcGh5L21zY2MvbXNjY19tYWluLmMNCj4gPiArKysgYi9kcml2ZXJzL25ldC9waHkvbXNj Yy9tc2NjX21haW4uYw0KPiA+IEBAIC03MTAsNiArNzEwLDExMyBAQCBzdGF0aWMgaW50IHBoeV9i YXNlX3JlYWQoc3RydWN0IHBoeV9kZXZpY2UNCj4gPiAqcGh5ZGV2LCB1MzIgcmVnbnVtKQ0KPiA+ ICAgICAgIHJldHVybiBfX3BoeV9wYWNrYWdlX3JlYWQocGh5ZGV2LCByZWdudW0pOw0KPiA+ICB9 DQo+ID4gDQo+ID4gK3N0YXRpYyB1MzIgdnNjODV4eF9jc3JfcmVhZChzdHJ1Y3QgcGh5X2Rldmlj ZSAqcGh5ZGV2LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBjc3JfdGFyZ2V0 IHRhcmdldCwgdTMyIHJlZykNCj4gPiArew0KPiA+ICsgICAgIHVuc2lnbmVkIGxvbmcgZGVhZGxp bmU7DQo+ID4gKyAgICAgdTMyIHZhbCwgdmFsX2wsIHZhbF9oOw0KPiA+ICsNCj4gPiArICAgICBw aHlfYmFzZV93cml0ZShwaHlkZXYsIE1TQ0NfRVhUX1BBR0VfQUNDRVNTLA0KPiA+IE1TQ0NfUEhZ X1BBR0VfQ1NSX0NOVEwpOw0KPiA+ICsNCj4gPiArICAgICAvKiBDU1IgcmVnaXN0ZXJzIGFyZSBn cm91cGVkIHVuZGVyIGRpZmZlcmVudCBUYXJnZXQgSURzLg0KPiA+ICsgICAgICAqIDYtYml0IFRh cmdldF9JRCBpcyBzcGxpdCBiZXR3ZWVuIE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExfMjANCj4gPiBh bmQNCj4gPiArICAgICAgKiBNU0NDX0VYVF9QQUdFX0NTUl9DTlRMXzE5IHJlZ2lzdGVycy4NCj4g PiArICAgICAgKiBUYXJnZXRfSURbNToyXSBtYXBzIHRvIGJpdHNbMzowXSBvZg0KPiA+IE1TQ0Nf RVhUX1BBR0VfQ1NSX0NOVExfMjANCj4gPiArICAgICAgKiBhbmQgVGFyZ2V0X0lEWzE6MF0gbWFw cyB0byBiaXRzWzEzOjEyXSBvZg0KPiA+IE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExfMTkuDQo+ID4g KyAgICAgICovDQo+ID4gKw0KPiA+ICsgICAgIC8qIFNldHVwIHRoZSBUYXJnZXQgSUQgKi8NCj4g PiArICAgICBwaHlfYmFzZV93cml0ZShwaHlkZXYsIE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExfMjAs DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgTVNDQ19QSFlfQ1NSX0NOVExfMjBfVEFSR0VUKHRh cmdldCA+PiAyKSk7DQo+ID4gKw0KPiA+ICsgICAgIGlmICgodGFyZ2V0ID4+IDIgPT0gMHgxKSB8 fCAodGFyZ2V0ID4+IDIgPT0gMHgzKSkNCj4gPiArICAgICAgICAgICAgIC8qIG5vbi1NQUNzZWMg YWNjZXNzICovDQo+ID4gKyAgICAgICAgICAgICB0YXJnZXQgJj0gMHgzOw0KPiA+ICsgICAgIGVs c2UNCj4gPiArICAgICAgICAgICAgIHRhcmdldCA9IDA7DQo+ID4gKw0KPiA+ICsgICAgIC8qIFRy aWdnZXIgQ1NSIEFjdGlvbiAtIFJlYWQgaW50byB0aGUgQ1NSJ3MgKi8NCj4gPiArICAgICBwaHlf YmFzZV93cml0ZShwaHlkZXYsIE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExfMTksDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgTVNDQ19QSFlfQ1NSX0NOVExfMTlfQ01EIHwNCj4gPiBNU0NDX1BIWV9D U1JfQ05UTF8xOV9SRUFEIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICBNU0NDX1BIWV9DU1Jf Q05UTF8xOV9SRUdfQUREUihyZWcpIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICBNU0NDX1BI WV9DU1JfQ05UTF8xOV9UQVJHRVQodGFyZ2V0KSk7DQo+ID4gKw0KPiA+ICsgICAgIC8qIFdhaXQg Zm9yIHJlZ2lzdGVyIGFjY2VzcyovDQo+ID4gKyAgICAgZGVhZGxpbmUgPSBqaWZmaWVzICsNCj4g PiBtc2Vjc190b19qaWZmaWVzKFBST0NfQ01EX05DT01QTEVURURfVElNRU9VVF9NUyk7DQo+ID4g KyAgICAgZG8gew0KPiA+ICsgICAgICAgICAgICAgdXNsZWVwX3JhbmdlKDUwMCwgMTAwMCk7DQo+ ID4gKyAgICAgICAgICAgICB2YWwgPSBwaHlfYmFzZV9yZWFkKHBoeWRldiwNCj4gPiBNU0NDX0VY VF9QQUdFX0NTUl9DTlRMXzE5KTsNCj4gPiArICAgICB9IHdoaWxlICh0aW1lX2JlZm9yZShqaWZm aWVzLCBkZWFkbGluZSkgJiYNCj4gPiArICAgICAgICAgICAgICEodmFsICYgTVNDQ19QSFlfQ1NS X0NOVExfMTlfQ01EKSk7DQo+ID4gKw0KPiA+ICsgICAgIGlmICghKHZhbCAmIE1TQ0NfUEhZX0NT Ul9DTlRMXzE5X0NNRCkpDQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gMHhmZmZmZmZmZjsNCj4g PiArDQo+ID4gKyAgICAgLyogUmVhZCB0aGUgTGVhc3QgU2lnbmlmaWNhbnQgV29yZCAoTFNXKSAo MTcpICovDQo+ID4gKyAgICAgdmFsX2wgPSBwaHlfYmFzZV9yZWFkKHBoeWRldiwgTVNDQ19FWFRf UEFHRV9DU1JfQ05UTF8xNyk7DQo+ID4gKw0KPiA+ICsgICAgIC8qIFJlYWQgdGhlIE1vc3QgU2ln bmlmaWNhbnQgV29yZCAoTVNXKSAoMTgpICovDQo+ID4gKyAgICAgdmFsX2ggPSBwaHlfYmFzZV9y ZWFkKHBoeWRldiwgTVNDQ19FWFRfUEFHRV9DU1JfQ05UTF8xOCk7DQo+ID4gKw0KPiA+ICsgICAg IHBoeV9iYXNlX3dyaXRlKHBoeWRldiwgTVNDQ19FWFRfUEFHRV9BQ0NFU1MsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgTVNDQ19QSFlfUEFHRV9TVEFOREFSRCk7DQo+ID4gKw0KPiA+ICsgICAg IHJldHVybiAodmFsX2ggPDwgMTYpIHwgdmFsX2w7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRp YyBpbnQgdnNjODV4eF9jc3Jfd3JpdGUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNzcl90YXJnZXQgdGFyZ2V0LCB1MzIgcmVn LCB1MzINCj4gPiB2YWwpDQo+ID4gK3sNCj4gPiArICAgICB1bnNpZ25lZCBsb25nIGRlYWRsaW5l Ow0KPiA+ICsNCj4gPiArICAgICBwaHlfYmFzZV93cml0ZShwaHlkZXYsIE1TQ0NfRVhUX1BBR0Vf QUNDRVNTLA0KPiA+IE1TQ0NfUEhZX1BBR0VfQ1NSX0NOVEwpOw0KPiA+ICsNCj4gPiArICAgICAv KiBDU1IgcmVnaXN0ZXJzIGFyZSBncm91cGVkIHVuZGVyIGRpZmZlcmVudCBUYXJnZXQgSURzLg0K PiA+ICsgICAgICAqIDYtYml0IFRhcmdldF9JRCBpcyBzcGxpdCBiZXR3ZWVuIE1TQ0NfRVhUX1BB R0VfQ1NSX0NOVExfMjANCj4gPiBhbmQNCj4gPiArICAgICAgKiBNU0NDX0VYVF9QQUdFX0NTUl9D TlRMXzE5IHJlZ2lzdGVycy4NCj4gPiArICAgICAgKiBUYXJnZXRfSURbNToyXSBtYXBzIHRvIGJp dHNbMzowXSBvZg0KPiA+IE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExfMjANCj4gPiArICAgICAgKiBh bmQgVGFyZ2V0X0lEWzE6MF0gbWFwcyB0byBiaXRzWzEzOjEyXSBvZg0KPiA+IE1TQ0NfRVhUX1BB R0VfQ1NSX0NOVExfMTkuDQo+ID4gKyAgICAgICovDQo+ID4gKw0KPiA+ICsgICAgIC8qIFNldHVw IHRoZSBUYXJnZXQgSUQgKi8NCj4gPiArICAgICBwaHlfYmFzZV93cml0ZShwaHlkZXYsIE1TQ0Nf RVhUX1BBR0VfQ1NSX0NOVExfMjAsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgTVNDQ19QSFlf Q1NSX0NOVExfMjBfVEFSR0VUKHRhcmdldCA+PiAyKSk7DQo+ID4gKw0KPiA+ICsgICAgIC8qIFdy aXRlIHRoZSBMZWFzdCBTaWduaWZpY2FudCBXb3JkIChMU1cpICgxNykgKi8NCj4gPiArICAgICBw aHlfYmFzZV93cml0ZShwaHlkZXYsIE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExfMTcsICh1MTYpdmFs KTsNCj4gPiArDQo+ID4gKyAgICAgLyogV3JpdGUgdGhlIE1vc3QgU2lnbmlmaWNhbnQgV29yZCAo TVNXKSAoMTgpICovDQo+ID4gKyAgICAgcGh5X2Jhc2Vfd3JpdGUocGh5ZGV2LCBNU0NDX0VYVF9Q QUdFX0NTUl9DTlRMXzE4LCAodTE2KSh2YWwNCj4gPiA+PiAxNikpOw0KPiA+ICsNCj4gPiArICAg ICBpZiAoKHRhcmdldCA+PiAyID09IDB4MSkgfHwgKHRhcmdldCA+PiAyID09IDB4MykpDQo+ID4g KyAgICAgICAgICAgICAvKiBub24tTUFDc2VjIGFjY2VzcyAqLw0KPiA+ICsgICAgICAgICAgICAg dGFyZ2V0ICY9IDB4MzsNCj4gPiArICAgICBlbHNlDQo+ID4gKyAgICAgICAgICAgICB0YXJnZXQg PSAwOw0KPiA+ICsNCj4gPiArICAgICAvKiBUcmlnZ2VyIENTUiBBY3Rpb24gLSBXcml0ZSBpbnRv IHRoZSBDU1IncyAqLw0KPiA+ICsgICAgIHBoeV9iYXNlX3dyaXRlKHBoeWRldiwgTVNDQ19FWFRf UEFHRV9DU1JfQ05UTF8xOSwNCj4gPiArICAgICAgICAgICAgICAgICAgICBNU0NDX1BIWV9DU1Jf Q05UTF8xOV9DTUQgfA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIE1TQ0NfUEhZX0NTUl9DTlRM XzE5X1JFR19BRERSKHJlZykgfA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIE1TQ0NfUEhZX0NT Ul9DTlRMXzE5X1RBUkdFVCh0YXJnZXQpKTsNCj4gPiArDQo+ID4gKyAgICAgLyogV2FpdCBmb3Ig cmVnaXN0ZXIgYWNjZXNzICovDQo+ID4gKyAgICAgZGVhZGxpbmUgPSBqaWZmaWVzICsNCj4gPiBt c2Vjc190b19qaWZmaWVzKFBST0NfQ01EX05DT01QTEVURURfVElNRU9VVF9NUyk7DQo+ID4gKyAg ICAgZG8gew0KPiA+ICsgICAgICAgICAgICAgdXNsZWVwX3JhbmdlKDUwMCwgMTAwMCk7DQo+ID4g KyAgICAgICAgICAgICB2YWwgPSBwaHlfYmFzZV9yZWFkKHBoeWRldiwNCj4gPiBNU0NDX0VYVF9Q QUdFX0NTUl9DTlRMXzE5KTsNCj4gPiArICAgICB9IHdoaWxlICh0aW1lX2JlZm9yZShqaWZmaWVz LCBkZWFkbGluZSkgJiYNCj4gPiArICAgICAgICAgICAgICAhKHZhbCAmIE1TQ0NfUEhZX0NTUl9D TlRMXzE5X0NNRCkpOw0KPiA+ICsNCj4gPiArICAgICBpZiAoISh2YWwgJiBNU0NDX1BIWV9DU1Jf Q05UTF8xOV9DTUQpKQ0KPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FVElNRURPVVQ7DQo+ID4g Kw0KPiA+ICsgICAgIHBoeV9iYXNlX3dyaXRlKHBoeWRldiwgTVNDQ19FWFRfUEFHRV9BQ0NFU1Ms DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgTVNDQ19QSFlfUEFHRV9TVEFOREFSRCk7DQo+ID4g Kw0KPiA+ICsgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICAvKiBidXMtPm1kaW9f bG9jayBzaG91bGQgYmUgbG9ja2VkIHdoZW4gdXNpbmcgdGhpcyBmdW5jdGlvbiAqLw0KPiA+ICBz dGF0aWMgdm9pZCB2c2M4NTg0X2Nzcl93cml0ZShzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2LCB1 MTYgYWRkciwNCj4gPiB1MzIgdmFsKQ0KPiA+ICB7DQo+ID4gQEAgLTExMzEsNiArMTIzOCw5NiBA QCBzdGF0aWMgaW50IHZzYzg1NzRfY29uZmlnX3ByZV9pbml0KHN0cnVjdA0KPiA+IHBoeV9kZXZp Y2UgKnBoeWRldikNCj4gPiAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4gDQo+ID4gKy8q IEFjY2VzcyBMQ1BMTCBDZmdfMiAqLw0KPiA+ICtzdGF0aWMgdm9pZCB2c2M4NTg0X3BsbDVnX2Nm ZzJfd3Ioc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgZGlzYWJsZV9mc20sIGJvb2wNCj4gPiBlbmFfY2xrX2J5cGFzcykN Cj4gDQo+IEJvdGggY2FsbGVycyB1c2UgZW5hX2Nsa19ieXBhc3MgPSAwLCBkbyB5b3UgcGxhbiB0 byBhZGQgZnVydGhlcg0KPiB1c2Vycz8NCj4gRWxzZSB0aGUgcGFyYW1ldGVyIGNvdWxkIGJlIHJl bW92ZWQuDQo+IA0KPiA+ICt7DQo+ID4gKyAgICAgdTMyIHJkX2RhdDsNCj4gPiArDQo+ID4gKyAg ICAgcmRfZGF0ID0gdnNjODV4eF9jc3JfcmVhZChwaHlkZXYsIE1BQ1JPX0NUUkwsDQo+ID4gUEhZ X1M2R19QTEw1R19DRkcyKTsNCj4gPiArICAgICByZF9kYXQgJj0gfihCSVQoUEhZX1M2R19DRkcy X0ZTTV9DTEtfQlApIHwNCj4gPiBCSVQoUEhZX1M2R19DRkcyX0ZTTV9ESVMpKTsNCj4gPiArICAg ICByZF9kYXQgfD0gKGRpc2FibGVfZnNtIDw8IFBIWV9TNkdfQ0ZHMl9GU01fRElTKSB8DQo+ID4g KyAgICAgICAgICAgICAgIChlbmFfY2xrX2J5cGFzcyA8PCBQSFlfUzZHX0NGRzJfRlNNX0NMS19C UCk7DQo+ID4gKyAgICAgdnNjODV4eF9jc3Jfd3JpdGUocGh5ZGV2LCBNQUNST19DVFJMLCBQSFlf UzZHX1BMTDVHX0NGRzIsDQo+ID4gcmRfZGF0KTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArLyogdHJp Z2dlciBhIHJlYWQgdG8gdGhlIHNwY2lmaWVkIE1DQiAqLw0KPiA+ICtzdGF0aWMgaW50IHZzYzg1 ODRfbWNiX3JkX3RyaWcoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldiwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHUzMiBtY2JfcmVnX2FkZHIsIHU4IG1jYl9zbGF2ZV9udW0pDQo+ ID4gK3sNCj4gPiArICAgICB1MzIgcmRfZGF0ID0gMDsNCj4gPiArDQo+ID4gKyAgICAgLyogcmVh ZCBNQ0IgKi8NCj4gPiArICAgICB2c2M4NXh4X2Nzcl93cml0ZShwaHlkZXYsIE1BQ1JPX0NUUkws IG1jYl9yZWdfYWRkciwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAoMHg0MDAwMDAwMCB8 ICgxTCA8PCBtY2Jfc2xhdmVfbnVtKSkpOw0KPiA+ICsNCj4gPiArICAgICByZXR1cm4gcmVhZF9w b2xsX3RpbWVvdXQodnNjODV4eF9jc3JfcmVhZCwgcmRfZGF0LA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAhKHJkX2RhdCAmIDB4NDAwMDAwMDApLA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA0MDAwLCAyMDAwMDAsIDAsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBoeWRldiwgTUFDUk9fQ1RSTCwgbWNiX3JlZ19hZGRyKTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArLyogdHJpZ2dlciBhIHdyaXRlIHRvIHRoZSBzcGNpZmllZCBNQ0IgKi8N Cj4gPiArc3RhdGljIGludCB2c2M4NTg0X21jYl93cl90cmlnKHN0cnVjdCBwaHlfZGV2aWNlICpw aHlkZXYsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgbWNiX3JlZ19hZGRy LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggbWNiX3NsYXZlX251bSkNCj4g PiArew0KPiA+ICsgICAgIHUzMiByZF9kYXQgPSAwOw0KPiA+ICsNCj4gPiArICAgICAvKiB3cml0 ZSBiYWNrIE1DQiAqLw0KPiA+ICsgICAgIHZzYzg1eHhfY3NyX3dyaXRlKHBoeWRldiwgTUFDUk9f Q1RSTCwgbWNiX3JlZ19hZGRyLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICgweDgwMDAw MDAwIHwgKDFMIDw8IG1jYl9zbGF2ZV9udW0pKSk7DQo+ID4gKw0KPiA+ICsgICAgIHJldHVybiBy ZWFkX3BvbGxfdGltZW91dCh2c2M4NXh4X2Nzcl9yZWFkLCByZF9kYXQsDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICEocmRfZGF0ICYgMHg4MDAwMDAwMCksDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDQwMDAsIDIwMDAwMCwgMCwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGh5ZGV2LCBNQUNST19DVFJMLCBtY2JfcmVnX2FkZHIpOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICsvKiBTZXF1ZW5jZSB0byBSZXNldCBMQ1BMTCBmb3IgdGhlIFZJ UEVSIGFuZCBFTElTRSBQSFkgKi8NCj4gPiArc3RhdGljIGludCB2c2M4NTg0X3BsbDVnX3Jlc2V0 KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpDQo+ID4gK3sNCj4gPiArICAgICBib29sIGVuYV9j bGtfYnlwYXNzOw0KPiA+ICsgICAgIGJvb2wgZGlzX2ZzbTsNCj4gPiArICAgICBpbnQgcmV0ID0g MDsNCj4gPiArDQo+ID4gKyAgICAgcmV0ID0gdnNjODU4NF9tY2JfcmRfdHJpZyhwaHlkZXYsIDB4 MTEsIDApOw0KPiA+ICsgICAgIGlmIChyZXQgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgZ290byBk b25lOw0KPiA+ICsgICAgIGRpc19mc20gPSAxOw0KPiA+ICsgICAgIGVuYV9jbGtfYnlwYXNzID0g MDsNCj4gPiArDQo+ID4gKyAgICAgLyogUmVzZXQgTENQTEwgKi8NCj4gPiArICAgICB2c2M4NTg0 X3BsbDVnX2NmZzJfd3IocGh5ZGV2LCBkaXNfZnNtLCBlbmFfY2xrX2J5cGFzcyk7DQo+ID4gKw0K PiA+ICsgICAgIC8qIHdyaXRlIGJhY2sgTENQTEwgTUNCICovDQo+ID4gKyAgICAgcmV0ID0gdnNj ODU4NF9tY2Jfd3JfdHJpZyhwaHlkZXYsIDB4MTEsIDApOw0KPiA+ICsgICAgIGlmIChyZXQgPCAw KQ0KPiA+ICsgICAgICAgICAgICAgZ290byBkb25lOw0KPiA+ICsNCj4gPiArICAgICAvKiAxMCBt U2VjIHNsZWVwIHdoaWxlIExDUExMIGlzIGhvbGQgaW4gcmVzZXQgKi8NCj4gPiArICAgICB1c2xl ZXBfcmFuZ2UoMTAwMDAsIDIwMDAwKTsNCj4gPiArDQo+ID4gKyAgICAgLyogcmVhZCBMQ1BMTCBN Q0IgaW50byBDU1JzICovDQo+ID4gKyAgICAgcmV0ID0gdnNjODU4NF9tY2JfcmRfdHJpZyhwaHlk ZXYsIDB4MTEsIDApOw0KPiA+ICsgICAgIGlmIChyZXQgPCAwKQ0KPiA+ICsgICAgICAgICAgICAg Z290byBkb25lOw0KPiA+ICsgICAgIGRpc19mc20gPSAwOw0KPiA+ICsgICAgIGVuYV9jbGtfYnlw YXNzID0gMDsNCj4gPiArDQo+ID4gKyAgICAgLyogUmVsZWFzZSB0aGUgUmVzZXQgb2YgTENQTEwg Ki8NCj4gPiArICAgICB2c2M4NTg0X3BsbDVnX2NmZzJfd3IocGh5ZGV2LCBkaXNfZnNtLCBlbmFf Y2xrX2J5cGFzcyk7DQo+ID4gKw0KPiA+ICsgICAgIC8qIHdyaXRlIGJhY2sgTENQTEwgTUNCICov DQo+ID4gKyAgICAgcmV0ID0gdnNjODU4NF9tY2Jfd3JfdHJpZyhwaHlkZXYsIDB4MTEsIDApOw0K PiA+ICsgICAgIGlmIChyZXQgPCAwKQ0KPiA+ICsgICAgICAgICAgICAgZ290byBkb25lOw0KPiA+ ICsNCj4gPiArICAgICB1c2xlZXBfcmFuZ2UoMTEwMDAwLCAyMDAwMDApOw0KPiA+ICtkb25lOg0K PiA+ICsgICAgIHJldHVybiByZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gIC8qIGJ1cy0+bWRpb19s b2NrIHNob3VsZCBiZSBsb2NrZWQgd2hlbiB1c2luZyB0aGlzIGZ1bmN0aW9uICovDQo+ID4gIHN0 YXRpYyBpbnQgdnNjODU4NF9jb25maWdfcHJlX2luaXQoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRl dikNCj4gPiAgew0KPiA+IEBAIC0xNTY5LDggKzE3NjYsMTYgQEAgc3RhdGljIGludCB2c2M4NTE0 X2NvbmZpZ19wcmVfaW5pdChzdHJ1Y3QNCj4gPiBwaHlfZGV2aWNlICpwaHlkZXYpDQo+ID4gICAg ICAgICAgICAgICB7MHgxNmIyLCAweDAwMDA3MDAwfSwNCj4gPiAgICAgICAgICAgICAgIHsweDE2 YjQsIDB4MDAwMDA4MTR9LA0KPiA+ICAgICAgIH07DQo+ID4gKyAgICAgc3RydWN0IGRldmljZSAq ZGV2ID0gJnBoeWRldi0+bWRpby5kZXY7DQo+ID4gICAgICAgdW5zaWduZWQgaW50IGk7DQo+ID4g ICAgICAgdTE2IHJlZzsNCj4gPiArICAgICBpbnQgcmV0Ow0KPiA+ICsNCj4gPiArICAgICByZXQg PSB2c2M4NTg0X3BsbDVnX3Jlc2V0KHBoeWRldik7DQo+ID4gKyAgICAgaWYgKHJldCA8IDApIHsN Cj4gPiArICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIExDUExMIHJlc2V0LCByZXQ6 ICVkXG4iLCByZXQpOw0KPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiArICAgICB9 DQo+ID4gDQo+ID4gICAgICAgcGh5X2Jhc2Vfd3JpdGUocGh5ZGV2LCBNU0NDX0VYVF9QQUdFX0FD Q0VTUywNCj4gPiBNU0NDX1BIWV9QQUdFX1NUQU5EQVJEKTsNCj4gPiANCj4gPiBAQCAtMTYwNSwx MDEgKzE4MTAsNiBAQCBzdGF0aWMgaW50IHZzYzg1MTRfY29uZmlnX3ByZV9pbml0KHN0cnVjdA0K PiA+IHBoeV9kZXZpY2UgKnBoeWRldikNCj4gPiAgICAgICByZXR1cm4gMDsNCj4gPiAgfQ0KPiA+ IA0KPiA+IC1zdGF0aWMgdTMyIHZzYzg1eHhfY3NyX2N0cmxfcGh5X3JlYWQoc3RydWN0IHBoeV9k ZXZpY2UgKnBoeWRldiwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUz MiB0YXJnZXQsIHUzMiByZWcpDQo+ID4gLXsNCj4gPiAtICAgICB1bnNpZ25lZCBsb25nIGRlYWRs aW5lOw0KPiA+IC0gICAgIHUzMiB2YWwsIHZhbF9sLCB2YWxfaDsNCj4gPiAtDQo+ID4gLSAgICAg cGh5X2Jhc2Vfd3JpdGUocGh5ZGV2LCBNU0NDX0VYVF9QQUdFX0FDQ0VTUywNCj4gPiBNU0NDX1BI WV9QQUdFX0NTUl9DTlRMKTsNCj4gPiAtDQo+ID4gLSAgICAgLyogQ1NSIHJlZ2lzdGVycyBhcmUg Z3JvdXBlZCB1bmRlciBkaWZmZXJlbnQgVGFyZ2V0IElEcy4NCj4gPiAtICAgICAgKiA2LWJpdCBU YXJnZXRfSUQgaXMgc3BsaXQgYmV0d2VlbiBNU0NDX0VYVF9QQUdFX0NTUl9DTlRMXzIwDQo+ID4g YW5kDQo+ID4gLSAgICAgICogTVNDQ19FWFRfUEFHRV9DU1JfQ05UTF8xOSByZWdpc3RlcnMuDQo+ ID4gLSAgICAgICogVGFyZ2V0X0lEWzU6Ml0gbWFwcyB0byBiaXRzWzM6MF0gb2YNCj4gPiBNU0ND X0VYVF9QQUdFX0NTUl9DTlRMXzIwDQo+ID4gLSAgICAgICogYW5kIFRhcmdldF9JRFsxOjBdIG1h cHMgdG8gYml0c1sxMzoxMl0gb2YNCj4gPiBNU0NDX0VYVF9QQUdFX0NTUl9DTlRMXzE5Lg0KPiA+ IC0gICAgICAqLw0KPiA+IC0NCj4gPiAtICAgICAvKiBTZXR1cCB0aGUgVGFyZ2V0IElEICovDQo+ ID4gLSAgICAgcGh5X2Jhc2Vfd3JpdGUocGh5ZGV2LCBNU0NDX0VYVF9QQUdFX0NTUl9DTlRMXzIw LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgIE1TQ0NfUEhZX0NTUl9DTlRMXzIwX1RBUkdFVCh0 YXJnZXQgPj4gMikpOw0KPiA+IC0NCj4gPiAtICAgICAvKiBUcmlnZ2VyIENTUiBBY3Rpb24gLSBS ZWFkIGludG8gdGhlIENTUidzICovDQo+ID4gLSAgICAgcGh5X2Jhc2Vfd3JpdGUocGh5ZGV2LCBN U0NDX0VYVF9QQUdFX0NTUl9DTlRMXzE5LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgIE1TQ0Nf UEhZX0NTUl9DTlRMXzE5X0NNRCB8DQo+ID4gTVNDQ19QSFlfQ1NSX0NOVExfMTlfUkVBRCB8DQo+ ID4gLSAgICAgICAgICAgICAgICAgICAgTVNDQ19QSFlfQ1NSX0NOVExfMTlfUkVHX0FERFIocmVn KSB8DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgTVNDQ19QSFlfQ1NSX0NOVExfMTlfVEFSR0VU KHRhcmdldCAmIDB4MykpOw0KPiA+IC0NCj4gPiAtICAgICAvKiBXYWl0IGZvciByZWdpc3RlciBh Y2Nlc3MqLw0KPiA+IC0gICAgIGRlYWRsaW5lID0gamlmZmllcyArDQo+ID4gbXNlY3NfdG9famlm ZmllcyhQUk9DX0NNRF9OQ09NUExFVEVEX1RJTUVPVVRfTVMpOw0KPiA+IC0gICAgIGRvIHsNCj4g PiAtICAgICAgICAgICAgIHVzbGVlcF9yYW5nZSg1MDAsIDEwMDApOw0KPiA+IC0gICAgICAgICAg ICAgdmFsID0gcGh5X2Jhc2VfcmVhZChwaHlkZXYsDQo+ID4gTVNDQ19FWFRfUEFHRV9DU1JfQ05U TF8xOSk7DQo+ID4gLSAgICAgfSB3aGlsZSAodGltZV9iZWZvcmUoamlmZmllcywgZGVhZGxpbmUp ICYmDQo+ID4gLSAgICAgICAgICAgICAhKHZhbCAmIE1TQ0NfUEhZX0NTUl9DTlRMXzE5X0NNRCkp Ow0KPiA+IC0NCj4gPiAtICAgICBpZiAoISh2YWwgJiBNU0NDX1BIWV9DU1JfQ05UTF8xOV9DTUQp KQ0KPiA+IC0gICAgICAgICAgICAgcmV0dXJuIDB4ZmZmZmZmZmY7DQo+ID4gLQ0KPiA+IC0gICAg IC8qIFJlYWQgdGhlIExlYXN0IFNpZ25pZmljYW50IFdvcmQgKExTVykgKDE3KSAqLw0KPiA+IC0g ICAgIHZhbF9sID0gcGh5X2Jhc2VfcmVhZChwaHlkZXYsIE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExf MTcpOw0KPiA+IC0NCj4gPiAtICAgICAvKiBSZWFkIHRoZSBNb3N0IFNpZ25pZmljYW50IFdvcmQg KE1TVykgKDE4KSAqLw0KPiA+IC0gICAgIHZhbF9oID0gcGh5X2Jhc2VfcmVhZChwaHlkZXYsIE1T Q0NfRVhUX1BBR0VfQ1NSX0NOVExfMTgpOw0KPiA+IC0NCj4gPiAtICAgICBwaHlfYmFzZV93cml0 ZShwaHlkZXYsIE1TQ0NfRVhUX1BBR0VfQUNDRVNTLA0KPiA+IC0gICAgICAgICAgICAgICAgICAg IE1TQ0NfUEhZX1BBR0VfU1RBTkRBUkQpOw0KPiA+IC0NCj4gPiAtICAgICByZXR1cm4gKHZhbF9o IDw8IDE2KSB8IHZhbF9sOw0KPiA+IC19DQo+ID4gLQ0KPiA+IC1zdGF0aWMgaW50IHZzYzg1eHhf Y3NyX2N0cmxfcGh5X3dyaXRlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsDQo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIHRhcmdldCwgdTMyIHJlZywgdTMyIHZh bCkNCj4gPiAtew0KPiA+IC0gICAgIHVuc2lnbmVkIGxvbmcgZGVhZGxpbmU7DQo+ID4gLQ0KPiA+ IC0gICAgIHBoeV9iYXNlX3dyaXRlKHBoeWRldiwgTVNDQ19FWFRfUEFHRV9BQ0NFU1MsDQo+ID4g TVNDQ19QSFlfUEFHRV9DU1JfQ05UTCk7DQo+ID4gLQ0KPiA+IC0gICAgIC8qIENTUiByZWdpc3Rl cnMgYXJlIGdyb3VwZWQgdW5kZXIgZGlmZmVyZW50IFRhcmdldCBJRHMuDQo+ID4gLSAgICAgICog Ni1iaXQgVGFyZ2V0X0lEIGlzIHNwbGl0IGJldHdlZW4gTVNDQ19FWFRfUEFHRV9DU1JfQ05UTF8y MA0KPiA+IGFuZA0KPiA+IC0gICAgICAqIE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExfMTkgcmVnaXN0 ZXJzLg0KPiA+IC0gICAgICAqIFRhcmdldF9JRFs1OjJdIG1hcHMgdG8gYml0c1szOjBdIG9mDQo+ ID4gTVNDQ19FWFRfUEFHRV9DU1JfQ05UTF8yMA0KPiA+IC0gICAgICAqIGFuZCBUYXJnZXRfSURb MTowXSBtYXBzIHRvIGJpdHNbMTM6MTJdIG9mDQo+ID4gTVNDQ19FWFRfUEFHRV9DU1JfQ05UTF8x OS4NCj4gPiAtICAgICAgKi8NCj4gPiAtDQo+ID4gLSAgICAgLyogU2V0dXAgdGhlIFRhcmdldCBJ RCAqLw0KPiA+IC0gICAgIHBoeV9iYXNlX3dyaXRlKHBoeWRldiwgTVNDQ19FWFRfUEFHRV9DU1Jf Q05UTF8yMCwNCj4gPiAtICAgICAgICAgICAgICAgICAgICBNU0NDX1BIWV9DU1JfQ05UTF8yMF9U QVJHRVQodGFyZ2V0ID4+IDIpKTsNCj4gPiAtDQo+ID4gLSAgICAgLyogV3JpdGUgdGhlIExlYXN0 IFNpZ25pZmljYW50IFdvcmQgKExTVykgKDE3KSAqLw0KPiA+IC0gICAgIHBoeV9iYXNlX3dyaXRl KHBoeWRldiwgTVNDQ19FWFRfUEFHRV9DU1JfQ05UTF8xNywgKHUxNil2YWwpOw0KPiA+IC0NCj4g PiAtICAgICAvKiBXcml0ZSB0aGUgTW9zdCBTaWduaWZpY2FudCBXb3JkIChNU1cpICgxOCkgKi8N Cj4gPiAtICAgICBwaHlfYmFzZV93cml0ZShwaHlkZXYsIE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExf MTgsICh1MTYpKHZhbA0KPiA+ID4+IDE2KSk7DQo+ID4gLQ0KPiA+IC0gICAgIC8qIFRyaWdnZXIg Q1NSIEFjdGlvbiAtIFdyaXRlIGludG8gdGhlIENTUidzICovDQo+ID4gLSAgICAgcGh5X2Jhc2Vf d3JpdGUocGh5ZGV2LCBNU0NDX0VYVF9QQUdFX0NTUl9DTlRMXzE5LA0KPiA+IC0gICAgICAgICAg ICAgICAgICAgIE1TQ0NfUEhZX0NTUl9DTlRMXzE5X0NNRCB8DQo+ID4gLSAgICAgICAgICAgICAg ICAgICAgTVNDQ19QSFlfQ1NSX0NOVExfMTlfUkVHX0FERFIocmVnKSB8DQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgTVNDQ19QSFlfQ1NSX0NOVExfMTlfVEFSR0VUKHRhcmdldCAmIDB4MykpOw0K PiA+IC0NCj4gPiAtICAgICAvKiBXYWl0IGZvciByZWdpc3RlciBhY2Nlc3MgKi8NCj4gPiAtICAg ICBkZWFkbGluZSA9IGppZmZpZXMgKw0KPiA+IG1zZWNzX3RvX2ppZmZpZXMoUFJPQ19DTURfTkNP TVBMRVRFRF9USU1FT1VUX01TKTsNCj4gPiAtICAgICBkbyB7DQo+ID4gLSAgICAgICAgICAgICB1 c2xlZXBfcmFuZ2UoNTAwLCAxMDAwKTsNCj4gPiAtICAgICAgICAgICAgIHZhbCA9IHBoeV9iYXNl X3JlYWQocGh5ZGV2LA0KPiA+IE1TQ0NfRVhUX1BBR0VfQ1NSX0NOVExfMTkpOw0KPiA+IC0gICAg IH0gd2hpbGUgKHRpbWVfYmVmb3JlKGppZmZpZXMsIGRlYWRsaW5lKSAmJg0KPiA+IC0gICAgICAg ICAgICAgICEodmFsICYgTVNDQ19QSFlfQ1NSX0NOVExfMTlfQ01EKSk7DQo+ID4gLQ0KPiA+IC0g ICAgIGlmICghKHZhbCAmIE1TQ0NfUEhZX0NTUl9DTlRMXzE5X0NNRCkpDQo+ID4gLSAgICAgICAg ICAgICByZXR1cm4gLUVUSU1FRE9VVDsNCj4gPiAtDQo+ID4gLSAgICAgcGh5X2Jhc2Vfd3JpdGUo cGh5ZGV2LCBNU0NDX0VYVF9QQUdFX0FDQ0VTUywNCj4gPiAtICAgICAgICAgICAgICAgICAgICBN U0NDX1BIWV9QQUdFX1NUQU5EQVJEKTsNCj4gPiAtDQo+ID4gLSAgICAgcmV0dXJuIDA7DQo+ID4g LX0NCj4gPiAtDQo+ID4gIHN0YXRpYyBpbnQgX19waHlfd3JpdGVfbWNiX3M2ZyhzdHJ1Y3QgcGh5 X2RldmljZSAqcGh5ZGV2LCB1MzIgcmVnLA0KPiA+IHU4IG1jYiwNCj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHUzMiBvcCkNCj4gPiAgew0KPiA+IEBAIC0xNzA3LDE1ICsxODE3LDE1 IEBAIHN0YXRpYyBpbnQgX19waHlfd3JpdGVfbWNiX3M2ZyhzdHJ1Y3QNCj4gPiBwaHlfZGV2aWNl ICpwaHlkZXYsIHUzMiByZWcsIHU4IG1jYiwNCj4gPiAgICAgICB1MzIgdmFsOw0KPiA+ICAgICAg IGludCByZXQ7DQo+ID4gDQo+ID4gLSAgICAgcmV0ID0gdnNjODV4eF9jc3JfY3RybF9waHlfd3Jp dGUocGh5ZGV2LCBQSFlfTUNCX1RBUkdFVCwgcmVnLA0KPiA+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9wIHwgKDEgPDwgbWNiKSk7DQo+ID4gKyAgICAgcmV0ID0gdnNj ODV4eF9jc3Jfd3JpdGUocGh5ZGV2LCBQSFlfTUNCX1RBUkdFVCwgcmVnLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9wIHwgKDEgPDwgbWNiKSk7DQo+ID4gICAgICAgaWYgKHJl dCkNCj4gPiAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+IA0KPiA+ICAgICAgIGRl YWRsaW5lID0gamlmZmllcyArDQo+ID4gbXNlY3NfdG9famlmZmllcyhQUk9DX0NNRF9OQ09NUExF VEVEX1RJTUVPVVRfTVMpOw0KPiA+ICAgICAgIGRvIHsNCj4gPiAgICAgICAgICAgICAgIHVzbGVl cF9yYW5nZSg1MDAsIDEwMDApOw0KPiA+IC0gICAgICAgICAgICAgdmFsID0gdnNjODV4eF9jc3Jf Y3RybF9waHlfcmVhZChwaHlkZXYsDQo+ID4gUEhZX01DQl9UQVJHRVQsIHJlZyk7DQo+ID4gKyAg ICAgICAgICAgICB2YWwgPSB2c2M4NXh4X2Nzcl9yZWFkKHBoeWRldiwgUEhZX01DQl9UQVJHRVQs IHJlZyk7DQo+ID4gDQo+ID4gICAgICAgICAgICAgICBpZiAodmFsID09IDB4ZmZmZmZmZmYpDQo+ ID4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlPOw0KPiA+IEBAIC0xNzk2LDQxICsx OTA2LDQxIEBAIHN0YXRpYyBpbnQgdnNjODUxNF9jb25maWdfaW5pdChzdHJ1Y3QNCj4gPiBwaHlf ZGV2aWNlICpwaHlkZXYpDQo+ID4gICAgICAgLyogbGNwbGwgbWNiICovDQo+ID4gICAgICAgcGh5 X3VwZGF0ZV9tY2JfczZnKHBoeWRldiwgUEhZX1M2R19MQ1BMTF9DRkcsIDApOw0KPiA+ICAgICAg IC8qIHBsbDVnY2ZnMCAqLw0KPiA+IC0gICAgIHJldCA9IHZzYzg1eHhfY3NyX2N0cmxfcGh5X3dy aXRlKHBoeWRldiwgUEhZX01DQl9UQVJHRVQsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUEhZX1M2R19QTEw1R19DRkcwLA0KPiA+IDB4NzAzNmYxNDUpOw0KPiA+ ICsgICAgIHJldCA9IHZzYzg1eHhfY3NyX3dyaXRlKHBoeWRldiwgUEhZX01DQl9UQVJHRVQsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZX1M2R19QTEw1R19DRkcwLCAweDcw MzZmMTQ1KTsNCj4gPiAgICAgICBpZiAocmV0KQ0KPiA+ICAgICAgICAgICAgICAgZ290byBlcnI7 DQo+ID4gDQo+ID4gICAgICAgcGh5X2NvbW1pdF9tY2JfczZnKHBoeWRldiwgUEhZX1M2R19MQ1BM TF9DRkcsIDApOw0KPiA+ICAgICAgIC8qIHBsbGNmZyAqLw0KPiA+IC0gICAgIHJldCA9IHZzYzg1 eHhfY3NyX2N0cmxfcGh5X3dyaXRlKHBoeWRldiwgUEhZX01DQl9UQVJHRVQsDQo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZX1M2R19QTExfQ0ZHLA0KPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgzIDw8DQo+ID4gUEhZX1M2R19Q TExfRU5BX09GRlNfUE9TKSB8DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKDEyMCA8PA0KPiA+IFBIWV9TNkdfUExMX0ZTTV9DVFJMX0RBVEFfUE9TKQ0KPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKDAgPDwNCj4gPiBQSFlfUzZH X1BMTF9GU01fRU5BX1BPUykpOw0KPiA+ICsgICAgIHJldCA9IHZzYzg1eHhfY3NyX3dyaXRlKHBo eWRldiwgUEhZX01DQl9UQVJHRVQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UEhZX1M2R19QTExfQ0ZHLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgzIDw8 IFBIWV9TNkdfUExMX0VOQV9PRkZTX1BPUykgfA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgxMjAgPDwNCj4gPiBQSFlfUzZHX1BMTF9GU01fQ1RSTF9EQVRBX1BPUykNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgwIDw8IFBIWV9TNkdfUExMX0ZTTV9FTkFf UE9TKSk7DQo+ID4gICAgICAgaWYgKHJldCkNCj4gPiAgICAgICAgICAgICAgIGdvdG8gZXJyOw0K PiA+IA0KPiA+ICAgICAgIC8qIGNvbW1vbmNmZyAqLw0KPiA+IC0gICAgIHJldCA9IHZzYzg1eHhf Y3NyX2N0cmxfcGh5X3dyaXRlKHBoeWRldiwgUEhZX01DQl9UQVJHRVQsDQo+ID4gLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZX1M2R19DT01NT05fQ0ZHLA0KPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwIDw8IFBIWV9TNkdfU1lTX1JT VF9QT1MpIHwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCA8 PCBQSFlfUzZHX0VOQV9MQU5FX1BPUykNCj4gPiB8DQo+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKDAgPDwgUEhZX1M2R19FTkFfTE9PUF9QT1MpDQo+ID4gfA0KPiA+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgwIDw8IFBIWV9TNkdfUVJB VEVfUE9TKSB8DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDMg PDwgUEhZX1M2R19JRl9NT0RFX1BPUykpOw0KPiA+ICsgICAgIHJldCA9IHZzYzg1eHhfY3NyX3dy aXRlKHBoeWRldiwgUEhZX01DQl9UQVJHRVQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUEhZX1M2R19DT01NT05fQ0ZHLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgwIDw8IFBIWV9TNkdfU1lTX1JTVF9QT1MpIHwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoMCA8PCBQSFlfUzZHX0VOQV9MQU5FX1BPUykgfA0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgwIDw8IFBIWV9TNkdfRU5BX0xPT1BfUE9TKSB8DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDAgPDwgUEhZX1M2R19RUkFURV9QT1MpIHwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMyA8PCBQSFlfUzZHX0lGX01PREVfUE9T KSk7DQo+ID4gICAgICAgaWYgKHJldCkNCj4gPiAgICAgICAgICAgICAgIGdvdG8gZXJyOw0KPiA+ IA0KPiA+ICAgICAgIC8qIG1pc2NjZmcgKi8NCj4gPiAtICAgICByZXQgPSB2c2M4NXh4X2Nzcl9j dHJsX3BoeV93cml0ZShwaHlkZXYsIFBIWV9NQ0JfVEFSR0VULA0KPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBIWV9TNkdfTUlTQ19DRkcsIDEpOw0KPiA+ICsgICAg IHJldCA9IHZzYzg1eHhfY3NyX3dyaXRlKHBoeWRldiwgUEhZX01DQl9UQVJHRVQsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZX1M2R19NSVNDX0NGRywgMSk7DQo+ID4gICAg ICAgaWYgKHJldCkNCj4gPiAgICAgICAgICAgICAgIGdvdG8gZXJyOw0KPiA+IA0KPiA+ICAgICAg IC8qIGdwY2ZnICovDQo+ID4gLSAgICAgcmV0ID0gdnNjODV4eF9jc3JfY3RybF9waHlfd3JpdGUo cGh5ZGV2LCBQSFlfTUNCX1RBUkdFVCwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQSFlfUzZHX0dQQ19DRkcsIDc2OCk7DQo+ID4gKyAgICAgcmV0ID0gdnNjODV4 eF9jc3Jfd3JpdGUocGh5ZGV2LCBQSFlfTUNCX1RBUkdFVCwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQSFlfUzZHX0dQQ19DRkcsIDc2OCk7DQo+ID4gICAgICAgaWYgKHJldCkN Cj4gPiAgICAgICAgICAgICAgIGdvdG8gZXJyOw0KPiA+IA0KPiA+IEBAIC0xODQxLDggKzE5NTEs OCBAQCBzdGF0aWMgaW50IHZzYzg1MTRfY29uZmlnX2luaXQoc3RydWN0DQo+ID4gcGh5X2Rldmlj ZSAqcGh5ZGV2KQ0KPiA+ICAgICAgICAgICAgICAgdXNsZWVwX3JhbmdlKDUwMCwgMTAwMCk7DQo+ ID4gICAgICAgICAgICAgICBwaHlfdXBkYXRlX21jYl9zNmcocGh5ZGV2LCBQSFlfTUNCX1M2R19D RkcsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7IC8qIHJlYWQgNkcg TUNCIGludG8gQ1NScyAqLw0KPiA+IC0gICAgICAgICAgICAgcmVnID0gdnNjODV4eF9jc3JfY3Ry bF9waHlfcmVhZChwaHlkZXYsDQo+ID4gUEhZX01DQl9UQVJHRVQsDQo+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIWV9TNkdfUExMX1NUQVRVUyk7DQo+ ID4gKyAgICAgICAgICAgICByZWcgPSB2c2M4NXh4X2Nzcl9yZWFkKHBoeWRldiwgUEhZX01DQl9U QVJHRVQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIWV9TNkdf UExMX1NUQVRVUyk7DQo+ID4gICAgICAgICAgICAgICBpZiAocmVnID09IDB4ZmZmZmZmZmYpIHsN Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgcGh5X3VubG9ja19tZGlvX2J1cyhwaHlkZXYpOw0K PiA+ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTzsNCj4gPiBAQCAtMTg1Niw4ICsx OTY2LDggQEAgc3RhdGljIGludCB2c2M4NTE0X2NvbmZpZ19pbml0KHN0cnVjdA0KPiA+IHBoeV9k ZXZpY2UgKnBoeWRldikNCj4gPiAgICAgICB9DQo+ID4gDQo+ID4gICAgICAgLyogbWlzY2NmZyAq Lw0KPiA+IC0gICAgIHJldCA9IHZzYzg1eHhfY3NyX2N0cmxfcGh5X3dyaXRlKHBoeWRldiwgUEhZ X01DQl9UQVJHRVQsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UEhZX1M2R19NSVNDX0NGRywgMCk7DQo+ID4gKyAgICAgcmV0ID0gdnNjODV4eF9jc3Jfd3JpdGUo cGh5ZGV2LCBQSFlfTUNCX1RBUkdFVCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQSFlfUzZHX01JU0NfQ0ZHLCAwKTsNCj4gPiAgICAgICBpZiAocmV0KQ0KPiA+ICAgICAgICAg ICAgICAgZ290byBlcnI7DQo+ID4gDQo+ID4gQEAgLTE4NjgsOCArMTk3OCw4IEBAIHN0YXRpYyBp bnQgdnNjODUxNF9jb25maWdfaW5pdChzdHJ1Y3QNCj4gPiBwaHlfZGV2aWNlICpwaHlkZXYpDQo+ ID4gICAgICAgICAgICAgICB1c2xlZXBfcmFuZ2UoNTAwLCAxMDAwKTsNCj4gPiAgICAgICAgICAg ICAgIHBoeV91cGRhdGVfbWNiX3M2ZyhwaHlkZXYsIFBIWV9NQ0JfUzZHX0NGRywNCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsgLyogcmVhZCA2RyBNQ0IgaW50byBDU1Jz ICovDQo+ID4gLSAgICAgICAgICAgICByZWcgPSB2c2M4NXh4X2Nzcl9jdHJsX3BoeV9yZWFkKHBo eWRldiwNCj4gPiBQSFlfTUNCX1RBUkdFVCwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUEhZX1M2R19JQl9TVEFUVVMwKTsNCj4gPiArICAgICAgICAg ICAgIHJlZyA9IHZzYzg1eHhfY3NyX3JlYWQocGh5ZGV2LCBQSFlfTUNCX1RBUkdFVCwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhZX1M2R19JQl9TVEFUVVMwKTsN Cj4gPiAgICAgICAgICAgICAgIGlmIChyZWcgPT0gMHhmZmZmZmZmZikgew0KPiA+ICAgICAgICAg ICAgICAgICAgICAgICBwaHlfdW5sb2NrX21kaW9fYnVzKHBoeWRldik7DQo+ID4gICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAtRUlPOw0KPiA+IA0KPiANCj4gDQo=