Received: by 2002:ab2:7855:0:b0:1f9:5764:f03e with SMTP id m21csp846283lqp; Thu, 23 May 2024 01:29:57 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVqnFN6dexWTvbHLJxf7Al8DOno168b0V63iSzP89YPJCKTMrbSMdOAPByVtfCwug4JfBECKT9wtsK4O5oPPFx2AmeDzqZFcVOQ8TD6lw== X-Google-Smtp-Source: AGHT+IGMPBEG5n67V07zqMx5D0SCqfwEJ3iNOkNUaXtqXB+1f2CY0NEnANy/GYOoEoZjcWXquVi4 X-Received: by 2002:a05:6a20:9790:b0:1b1:d591:d24 with SMTP id adf61e73a8af0-1b1f87a6d5dmr4045790637.16.1716452996874; Thu, 23 May 2024 01:29:56 -0700 (PDT) Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id d9443c01a7336-1f3029cfca0si47661295ad.495.2024.05.23.01.29.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 May 2024 01:29:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-187182-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector2 header.b=sYhNlREt; arc=fail (signature failed); spf=pass (google.com: domain of linux-kernel+bounces-187182-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-187182-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id B274CB20C78 for ; Thu, 23 May 2024 08:29:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 63E6913CFA5; Thu, 23 May 2024 08:29:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="sYhNlREt" Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on2073.outbound.protection.outlook.com [40.107.15.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 525A951016; Thu, 23 May 2024 08:29:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.15.73 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716452982; cv=fail; b=My89Ly7vsSUSfzn5MbJS7WoKW+GeqUuDY/dIjxVpEP1XuyAdOj0wHOzZksm14FH4X/FRurxhV9VuhshLIbjP5bItJuLvkm7DUyMwRSg3D8wge6bo1QCS9+a7L4sjOBXY3zvHyEQzlYHJkexf7sV0cGkcfXqhK15A0mGlw/j4fnQ= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1716452982; c=relaxed/simple; bh=94OZp6UdtStJalaKp7DbrF3awsHT4iDfmTXgJc0GwjY=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=G9LKQetpbe7q9e9I2Gr+55Pxe++woVumdd95jMjOw1QjP9NH3aIMgolX0ZbRzPBXEnGTlEINV8Ss5mWuK3SHK2StM6ZR9sDG3ftwx+eYB3JJgpBk+6m55BvrJJdsBZFvyyF5Hb/7RcnqTW2U5eOuyv4hc9dOjbba75tmQN9iRTw= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b=sYhNlREt; arc=fail smtp.client-ip=40.107.15.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PO+TxM5EYnt4fujpC+lCQO5I7IwsFTvpwHMFH1ztlK6fAIVC4l18sPWoh41q6wEHQgOqiYmrZs8LjeEoeOwtt2U3jiAxaKHFhnY6LrCgjfUe8dRBW1GFKJfbRkK/AVMlOGyPaZOPSCVvinT3G+dxNHRRxxzi67+De0+eS9ikDpnaFpLNQZ/8RMBqtcfldBuZjbqQg3m6eoCoUZ/knO9I+tS+f2ub+JOrpuwWy+rv1kMtC5QXZ5oTom/OIsBckORqH3cWFEm4r8akZTOxEw6eWX1NnG7JA70fFgdyPKqvN9lH/0MoKzLdwRJqyIsRKgg2L73W1lmFWtqEi4+geGn5Ag== 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=94OZp6UdtStJalaKp7DbrF3awsHT4iDfmTXgJc0GwjY=; b=AYuDhSo3a8iZopwyA7ETXY3QjvQCmtXHyC0QizH/+hYomqS0620qB6HZFX8wRK2dqOLrdSTLti5PEikwXl3GB+xsJUJ9Zz2g+4bQldZ3LfxyhmhNSmpVFgGm9PmjkqHU1zqGNiNoPqPk2h+25LUraZn+PVpnuTvyxhK5o1f5/G7K9mGrKyqFKikK8OskxXPuNc09LzUK1kLao4al9sBZeBEm3d4oZGUHcRxeMjZeiKYskK4wYGssnH73THh1Kb1EYaGeI9MCCMe/A+uaPp3HaDAPcyuH4jzWA5LnW3jyWDowyvfBaUKTpXxP4TYLkVHtCCLa5tofaqsDwMUaPan28g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=94OZp6UdtStJalaKp7DbrF3awsHT4iDfmTXgJc0GwjY=; b=sYhNlREtzVF6QcUYUWCB4npIU7jIzVbO+0m7/gamVK12YO+pabPiZH3LrJb7cys/kzHaVe4ikJGaDHyJYMVCpbTzBSxcfWjnip1EmnYWeO8VLCcNRytQjsiinhs85/H8FuNkbTpvvBjfdTHysFcxvgsAVGUGmQly0wV2y+VQgoo= Received: from DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) by VI1PR04MB9859.eurprd04.prod.outlook.com (2603:10a6:800:1d9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.22; Thu, 23 May 2024 08:29:32 +0000 Received: from DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::4fa3:7420:14ed:5334]) by DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::4fa3:7420:14ed:5334%7]) with mapi id 15.20.7611.016; Thu, 23 May 2024 08:29:32 +0000 From: Bough Chen To: Laurent Pinchart , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-gpio@vger.kernel.org" , "linux-pwm@vger.kernel.org" CC: Alexandru Ardelean , Bartosz Golaszewski , Conor Dooley , Krzysztof Kozlowski , Lee Jones , Linus Walleij , Rob Herring , =?utf-8?B?VXdlIEtsZWluZS1Lw7ZuaWc=?= Subject: RE: [PATCH 3/5] mfd: adp5585: Add Analog Devices ADP5585 core support Thread-Topic: [PATCH 3/5] mfd: adp5585: Add Analog Devices ADP5585 core support Thread-Index: AQHaqvBKuwgLmdldH0+k2QuWavtVkbGkfLoA Date: Thu, 23 May 2024 08:29:32 +0000 Message-ID: References: <20240520195942.11582-1-laurent.pinchart@ideasonboard.com> <20240520195942.11582-4-laurent.pinchart@ideasonboard.com> In-Reply-To: <20240520195942.11582-4-laurent.pinchart@ideasonboard.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DU0PR04MB9496:EE_|VI1PR04MB9859:EE_ x-ms-office365-filtering-correlation-id: 72f648c6-7649-42fb-0a04-08dc7b0278b4 x-ld-processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|366007|7416005|1800799015|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?ZGlRSTZHeFlTSEpkdHNJSUVtSTJ0K3lYUktEbHB0TU1jb0FaMGtySzRVbUIz?= =?utf-8?B?aFdDMUlZMFpwY3N0VlM1QzYxQi9Vd1p0TWpLcGlVUkpIYldkajliR1JMVENq?= =?utf-8?B?aGhkQjZnWU5rT0V5ZEc0QWw0NktKNVdVbVY0Vk9Rakx1V1UxdkZTSEFpYTUr?= =?utf-8?B?YVVzMHMwU2pUa1gzK3A5QzJrR3VLbFBGZTkxbHhZV3BpNnlwbkF0dnRUTkZw?= =?utf-8?B?SHpGWkNzRm9iYlQrQWNWTFJteGhtbFRJNzVvZDNQVjJQRVdiMWc5TEVoTVdL?= =?utf-8?B?WWtkWnRzcEVoaVNDUFFRTkJXREpHNWJYeVQ5MmNvWGZ5WkZDZGJqRitlVjZ2?= =?utf-8?B?QTNHbndLY1lUd2RWWDREd3lpQ2xNQjR0WEoyMGFNQnVoQ3FmeVMzeFpjdDdo?= =?utf-8?B?VWhTeTRDeTRTRDdXMHdIN0hRTWFGV25GQWV1ZFVxRDA0NnJJMXBUOWpSODQz?= =?utf-8?B?RUcrV0IvOUZ2VXEvMmVYSzNzQmVYWmJDY3ZaN3NzcUFPNkJsTmFmd01DOUxs?= =?utf-8?B?VFgyQ3ZYVmJMOG9GQVFCVkovWlB1SkV1bElpQ29abFJ6RFpDdE9IMmtwZDg2?= =?utf-8?B?NC9CWmNBNVRGZ2k3K3V6N21Gd0dLQUlOODlFMmoyd0tPL2ZuckgwS3hUblhE?= =?utf-8?B?SnNQeThscFF2cDlpVmpZK1IvS3BVSXdSajI1MzhjT09POGpGQ2JGVnNGNDEz?= =?utf-8?B?NGJVcGVZeWlZOExFbXI1MlAySWxuWjVnYVZYWDZ5ZVA1SStoa3FKRTJNb3BE?= =?utf-8?B?NHFPWHF3eUQzZXE5T3RMM3pFa24xdmNBZUJYSUEyckx4ZmNlNWx5NUMva1Iy?= =?utf-8?B?bTdJdGRNd09Sb0VmNCtJaDQxQ0JIM1ZDN084eTJ6ZU9uUkdCQ3JGZlphdUZL?= =?utf-8?B?NjBhdFR5dlVkQWpiUE83bVVjOHd3MUZOVC9BcUUyY1BHRVVyeXZtbWt1UjNm?= =?utf-8?B?YkIzMkRqTlB1em5RcWN3R3NIV09wNk9JRkV6NlJUQTlhdnZTN1YweGUrZERp?= =?utf-8?B?bnAvemljeXRFTitVWFhDaXcyVUFWSUNzbjh6R3BldEd4VkRaNmhLb3o3bU5E?= =?utf-8?B?ajMydHFXeXhMQnlKb2NmYXNPeXU2MEVqckZ0L1EvaFR1c3dzdjNDZVlSK1FI?= =?utf-8?B?a3dVSU85eGlWWGpOMWswWjErNWE5aVg0Wkw5U1MrT29yRGV6MTRvbE1UMGV6?= =?utf-8?B?TGthY24vdy9BaTJOOXFpN20zbWNZWGVYYnFxZmsyb2ZkSTUvSnV5THhIT0px?= =?utf-8?B?RDFTUVk2WTcvdk9YZTBwM1B1NDJvbUVvSjdFWEtrckF0aTQ5dVFKY3ExS09F?= =?utf-8?B?NjM5dmlUeTlqT0RsNDVxeHFlNFErQkxGTnRsQlJoMWRBcmkyS1phMTMwcmdM?= =?utf-8?B?WmVnbXdmMnp2OGdiSmJrelJsUTQyVVZNMm9lanhMTXZ0MjN5V2hwNXdFdWEr?= =?utf-8?B?QlVtYThxMUVhSFpoMnRvVnpNcEtxQVhSNDVDaXQxM29QSS9yV0J5VjhvWUlW?= =?utf-8?B?dnRTU1FsNjg2ZnFObW5GeEtEUFJQWEp6bU5SZzZ4QTJDR0YxbFdIUGUvRllV?= =?utf-8?B?M1Q4QWtHd2NKRDNtdTB4RkRsSXhQYWdaS3JmLytnb0ZaM2J5WXo1bWdpZEdN?= =?utf-8?B?SHQzQ3RtbU5NNk1PUnMxYVp1OHVFN1R0dVhBa1B3TWJGSlBpaTVjWndNeWhN?= =?utf-8?B?NkUrTGJzVi9teE9aRTJXeVcyaE52WXl3SzIyYUhFbG11Q3ZTUFVxR3c5TTZr?= =?utf-8?B?ZzdpREV6ckFlOUhEUU5KditFbzFOQlZGZTU2VHo4YTE5MEM0SlkxcDh3amRL?= =?utf-8?B?SGV0WnJ6SHMrdmpHYStoUT09?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9496.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(7416005)(1800799015)(376005)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eWJGMHZtcTBmV0tHUkwvOFhjSTY5Q1hyb05NaWVmYXVlQkt5dXg1VjdkdnU2?= =?utf-8?B?cW44Z3VrRnhXZzFlR0ZndFZ3TnB4dWFIN1JFK1g2T1l6Z3J4MCsxV3QvY3hI?= =?utf-8?B?bERuQkpEUTk4T0M1VFVxcFZsUGx1dEFKcHlUcW5KZ0JmMm1NcCsxVWM5akFV?= =?utf-8?B?emxQL2EyQjltMUNrbkZpNHU2OVQ3OFhrS1dnTkNib0hFdGRZOU9lUWk3R2Nr?= =?utf-8?B?d0p3NFoxT1hzN3JicGZNMm53VndpOHlzUk1aMjVyL1dMa3U0RkVUa1lVWTJI?= =?utf-8?B?a3FkUEY0NDN3UnVvV3pNY0xqWUkrQzJQbDZqOHFUbmU5b2ZxMUV1YXBKYnkz?= =?utf-8?B?V041RDhMNVNQTGpCUWtzc2RTY21kMFduL09xaHVvOGpBSFFMbWJxdVNaSjFv?= =?utf-8?B?RUpqSDNRV0hHditFaWJSZHdkTklJQkJkSkFzaEVrWlJ2NVQ1VGtGNyt4NUFO?= =?utf-8?B?Q2x5RGxwWUxjbnRjQjZGVFR2Y1BxUWJ0SHVjOHBVVmo0R3BOREZxT29VYXpu?= =?utf-8?B?bUwwQWV1TENhT1VhNkFxenpZZ0dWMDVVeWU1UjZ5N3ZLSGRuT2MyUFU2R0J0?= =?utf-8?B?YlU2elBoQ2R4YzJSK05UK09FQ3dURk1LQmcrK3oxZ3lnYzJVWUtGQlhNdEV3?= =?utf-8?B?NkFWLy9UY3NUQTFWYmhVSitKZXM0a04zemxIUFpUeklCYms3cHhhTW1OQjRw?= =?utf-8?B?UXBKeVRSV0pCN3BmNmVlM2RnSjNSMU5CTDFqSGJxd1RFWGYvdWcyTEdGY2ha?= =?utf-8?B?NEtyQm16a0xzTk5RdHM1a1NaNWE2UFRpKzM1UEMySU1XTzNISlFGQ0pxMWJK?= =?utf-8?B?K2VVUFpVYnJrb0FXdzFoVis4bjc5a2Z5alRYU1NPb3Y0dWRRdTRHdFRRbzBz?= =?utf-8?B?NVFSMUkwTHJxdDR2SENnVU92Uko0QzBaS2FJcUwyZHc5M1dPYTBjSnlUV2Jt?= =?utf-8?B?a29Ic3JKempGblBrUzRkbzYxSC8xZGV5d25yUUhUREJYRUNLTGR2MFRVKzNo?= =?utf-8?B?RGVuVytCUmFFNGtpS3doUkNKckhiWHB6S0FVSk9SK1EwSkx1eVhOc1ljL3Va?= =?utf-8?B?dXBZZTFOYjcvZzJ6Kzd4V0ZRNVpDdjdHUjdVZ0RMNmE2bmxzS3VBQVJzSkZW?= =?utf-8?B?cXpoR1JQVjJWdm42WUIxcUEwUFJFZ0xLT1NRdys3TDZscFNwRFMrNk1xcEtZ?= =?utf-8?B?eHIycWdKQVUvMnl3dWF5UkpwOVZtMnYwYXRXYm43M2tGNUt1b1R4dmVXMzA0?= =?utf-8?B?VzlLZW9jZmhHMzI5b2twNjVMMmI5NnJzV2x3c0lPOTBzeTFVaVlacmxmS2Vh?= =?utf-8?B?Q0c4MFgxVjdxZDhtNlBNVEZQSnJCMjhDVTBlZVN5c0d0ZnVnZXFYQkQzQXd1?= =?utf-8?B?UWpvUGp0Wkl3d1VKVE9RdTh6MitiOWwxVExYS0ozbUUrOGRTVzFkVTRxYXJr?= =?utf-8?B?MVdKTW5CeTV5bVF1UzcwSm9xUUhybEdJd0dMVG9TZzFnaWY0OVFjaVViek1t?= =?utf-8?B?czZhWU1ZQXViQ3dVczBhbzB3VkhKZVJHcmpWUWEzL1hSajBaVHFSK1Zjak1u?= =?utf-8?B?cy9rRFg3OHhhdHVNRXExSThFald5eEdMd2wxSnEzRlJzMDdzRFBIVWdab2lY?= =?utf-8?B?cGp2ZnJ3WitSY3dWQk9hc1E0bEhCQmk0bUNGand0UTZ4L24rbXQ0SGFkWjh6?= =?utf-8?B?R0ljbEdIVndMK0d0YUtZeXNVek9xa25sR3JlV2o2SHJTQ3kvTTBxbjBvVUcz?= =?utf-8?B?RXk2YkJLdmdJMWlDR203WWd5bE8xQ1JYaTZHWU52ait4OEFNcEp5VmdVMVJR?= =?utf-8?B?a3Z5eU9iY282T1QxU1hkUjJjYVF4NmtGQllOUUhPeDhTQ0daS3RGaVhlZkJE?= =?utf-8?B?aE9OVy9FdTlIdXRNY3J3eHBhUnNRbDg1VDFkWXRmWkJkKy9tWStBTjZyVzB2?= =?utf-8?B?K0JqOEpHcmh1dytlV3dCdGVVSitXVFM0YjZTWVoxSHNlNTFORElTV3JOK0Qx?= =?utf-8?B?TkN6aXp5Vzc3WWRLYlY4QTJUdXpmazdUQlFnNWtjQXJSM2lDTmRrV1J2UDRv?= =?utf-8?B?NUlaWHRGd0p4V3JEbGVBRnFrSXdrOGY1Q3FRMFc1a0JQV3k3NmZMdmFlZEdP?= =?utf-8?Q?hEIc=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72f648c6-7649-42fb-0a04-08dc7b0278b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2024 08:29:32.4606 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: LR4Eq0ELiGk460+Zh/GGUEi4aA6q2Rfyo2olcheMwwzq3sWQU/qtsZSV9LZsketcToMwXdzDht/z1EQ3KdyQrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB9859 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXVyZW50IFBpbmNoYXJ0IDxs YXVyZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+DQo+IFNlbnQ6IDIwMjTlubQ15pyIMjHm l6UgNDowMA0KPiBUbzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgZGV2aWNldHJlZUB2 Z2VyLmtlcm5lbC5vcmc7DQo+IGxpbnV4LWdwaW9Admdlci5rZXJuZWwub3JnOyBsaW51eC1wd21A dmdlci5rZXJuZWwub3JnDQo+IENjOiBBbGV4YW5kcnUgQXJkZWxlYW4gPGFsZXhhbmRydS5hcmRl bGVhbkBhbmFsb2cuY29tPjsgQmFydG9zeg0KPiBHb2xhc3pld3NraSA8YnJnbEBiZ2Rldi5wbD47 IENvbm9yIERvb2xleSA8Y29ub3IrZHRAa2VybmVsLm9yZz47IEtyenlzenRvZg0KPiBLb3psb3dz a2kgPGtyemsrZHRAa2VybmVsLm9yZz47IExlZSBKb25lcyA8bGVlQGtlcm5lbC5vcmc+OyBMaW51 cyBXYWxsZWlqDQo+IDxsaW51cy53YWxsZWlqQGxpbmFyby5vcmc+OyBSb2IgSGVycmluZyA8cm9i aEBrZXJuZWwub3JnPjsgVXdlIEtsZWluZS1Lw7ZuaWcNCj4gPHVrbGVpbmVrQGtlcm5lbC5vcmc+ OyBCb3VnaCBDaGVuIDxoYWliby5jaGVuQG54cC5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCAzLzVd IG1mZDogYWRwNTU4NTogQWRkIEFuYWxvZyBEZXZpY2VzIEFEUDU1ODUgY29yZSBzdXBwb3J0DQo+ IA0KPiBGcm9tOiBIYWlibyBDaGVuIDxoYWliby5jaGVuQG54cC5jb20+DQo+IA0KPiBUaGUgQURQ NTU4NSBpcyBhIDEwLzExIGlucHV0L291dHB1dCBwb3J0IGV4cGFuZGVyIHdpdGggYSBidWlsdCBp biBrZXlwYWQNCj4gbWF0cml4IGRlY29kZXIsIHByb2dyYW1tYWJsZSBsb2dpYywgcmVzZXQgZ2Vu ZXJhdG9yLCBhbmQgUFdNIGdlbmVyYXRvci4NCj4gVGhpcyBkcml2ZXIgc3VwcG9ydHMgdGhlIGNo aXAgYnkgbW9kZWxsaW5nIGl0IGFzIGFuIE1GRCBkZXZpY2UsIHdpdGggdHdvIGNoaWxkDQo+IGRl dmljZXMgZm9yIHRoZSBHUElPIGFuZCBQV00gZnVuY3Rpb25zLg0KPiANCj4gVGhlIGRyaXZlciBp cyBkZXJpdmVkIGZyb20gYW4gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBmcm9tIE5YUCwgYXZhaWxh YmxlIGluDQo+IGNvbW1pdCA4MDU5ODM1YmVlMTkgKCJNTEstMjU5MTctMSBtZmQ6IGFkcDU1ODU6 IGFkZCBBREkgYWRwNTU4NSBjb3JlDQo+IHN1cHBvcnQiKSBpbiB0aGVpciBCU1Aga2VybmVsIHRy ZWUuIEl0IGhhcyBiZWVuIGV4dGVuc2l2ZWx5IHJld3JpdHRlbi4NCg0KSGkgTGF1cmVudA0KDQpU aGFua3MgZm9yIHNlbmRpbmcgdGhpcyB0byB1cHN0cmVhbS4NCkp1c3Qgb25lIG1pbm9yIGNvbW1l bnQgaW4gdGhlIGVuZCBvZiB0aGlzIHBhdGNoLg0KDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBIYWli byBDaGVuIDxoYWliby5jaGVuQG54cC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IExhdXJlbnQgUGlu Y2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4NCj4gLS0tDQo+IENoYW5n ZXMgY29tcGFyZWQgdG8gdGhlIE5YUCBvcmlnaW5hbCB2ZXJzaW9uOg0KPiANCj4gLSBBZGQgTUFJ TlRBSU5FUlMgZW50cnkNCj4gLSBGaXggY29tcGF0aWJsZSBzdHJpbmdzIGZvciBjaGlsZCBkZXZp Y2VzDQo+IC0gRml4IGhlYWRlciBndWFyZHMNCj4gLSBVc2UgbG93ZXJjYXNlIGhleCBjb25zdGFu dHMNCj4gLSBXaGl0ZSBzcGFjZSBmaXhlcw0KPiAtIFVzZSBtb2R1bGVfaTJjX2RyaXZlcigpDQo+ IC0gU3dpdGNoIHRvIHJlZ21hcA0KPiAtIERyb3AgSTJDIGRldmljZSBJRCB0YWJsZQ0KPiAtIERy b3AgQURQNTU4NV9SRUdfTUFTSw0KPiAtIFN1cHBvcnQgUjUgR1BJTyBwaW4NCj4gLSBEcm9wIGRl diBmaWVsZCBmcm9tIGFkcDU1ODVfZGV2IHN0cnVjdHVyZQ0KPiAtIENoZWNrIGRldmljZSBJRCBh dCBwcm9iZSB0aW1lDQo+IC0gRml4IHJlZ2lzdGVyIGZpZWxkIG5hbWVzDQo+IC0gVXBkYXRlIGNv cHlyaWdodA0KPiAtIFVwZGF0ZSBsaWNlbnNlIHRvIEdQTC0yLjAtb25seQ0KPiAtIEltcGxlbWVu dCBzdXNwZW5kL3Jlc3VtZQ0KPiAtLS0NCj4gIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICB8 ICAgMiArDQo+ICBkcml2ZXJzL21mZC9LY29uZmlnICAgICAgICAgfCAgMTEgKysNCj4gIGRyaXZl cnMvbWZkL01ha2VmaWxlICAgICAgICB8ICAgMSArDQo+ICBkcml2ZXJzL21mZC9hZHA1NTg1LmMg ICAgICAgfCAyMDcNCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICBp bmNsdWRlL2xpbnV4L21mZC9hZHA1NTg1LmggfCAxMjAgKysrKysrKysrKysrKysrKysrKysrDQo+ ICA1IGZpbGVzIGNoYW5nZWQsIDM0MSBpbnNlcnRpb25zKCspDQo+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZHJpdmVycy9tZmQvYWRwNTU4NS5jICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gaW5jbHVkZS9s aW51eC9tZmQvYWRwNTU4NS5oDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTUFJTlRBSU5FUlMgYi9NQUlO VEFJTkVSUw0KPiBpbmRleCBhZmVjZGI4MmU3ODMuLjcxNTBmMDkxYjY5YiAxMDA2NDQNCj4gLS0t IGEvTUFJTlRBSU5FUlMNCj4gKysrIGIvTUFJTlRBSU5FUlMNCj4gQEAgLTUwMyw2ICs1MDMsOCBA QCBMOglsaW51eC1ncGlvQHZnZXIua2VybmVsLm9yZw0KPiAgTDoJbGludXgtcHdtQHZnZXIua2Vy bmVsLm9yZw0KPiAgUzoJTWFpbnRhaW5lZA0KPiAgRjoJRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzLyovYWRpLGFkcDU1ODUqLnlhbWwNCj4gK0Y6CWRyaXZlcnMvbWZkL2FkcDU1ODUu Yw0KPiArRjoJaW5jbHVkZS9saW51eC9tZmQvYWRwNTU4NS5oDQo+IA0KPiAgQURQNTU4OCBRV0VS VFkgS0VZUEFEIEFORCBJTyBFWFBBTkRFUiBEUklWRVIgKEFEUDU1ODgvQURQNTU4NykNCj4gIE06 CU1pY2hhZWwgSGVubmVyaWNoIDxtaWNoYWVsLmhlbm5lcmljaEBhbmFsb2cuY29tPg0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZmQvS2NvbmZpZyBiL2RyaXZlcnMvbWZkL0tjb25maWcgaW5kZXgN Cj4gNGIwMjNlZTIyOWNmLi4zNDIzZWFjMDg3N2EgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbWZk L0tjb25maWcNCj4gKysrIGIvZHJpdmVycy9tZmQvS2NvbmZpZw0KPiBAQCAtMjAsNiArMjAsMTcg QEAgY29uZmlnIE1GRF9DUzU1MzUNCj4gIAkgIFRoaXMgaXMgdGhlIGNvcmUgZHJpdmVyIGZvciBD UzU1MzUvQ1M1NTM2IE1GRCBmdW5jdGlvbnMuICBUaGlzIGlzDQo+ICAJICBuZWNlc3NhcnkgZm9y IHVzaW5nIHRoZSBib2FyZCdzIEdQSU8gYW5kIE1GR1BUIGZ1bmN0aW9uYWxpdHkuDQo+IA0KPiAr Y29uZmlnIE1GRF9BRFA1NTg1DQo+ICsJdHJpc3RhdGUgIkFuYWxvZyBEZXZpY2VzIEFEUDU1ODUg TUZEIGRyaXZlciINCj4gKwlzZWxlY3QgTUZEX0NPUkUNCj4gKwlzZWxlY3QgUkVHTUFQX0kyQw0K PiArCWRlcGVuZHMgb24gSTJDICYmIE9GDQo+ICsJaGVscA0KPiArCSAgU2F5IHllcyBoZXJlIHRv IGFkZCBzdXBwb3J0IGZvciB0aGUgQW5hbG9nIERldmljZXMgQURQNTU4NSBHUElPDQo+ICsJICBl eHBhbmRlciwgUFdNIGFuZCBrZXlwYWQgY29udHJvbGxlci4gVGhpcyBpbmNsdWRlcyB0aGUgSTJD IGRyaXZlciBhbmQNCj4gKwkgIHRoZSBjb3JlIEFQSXMgX29ubHlfLCB5b3UgaGF2ZSB0byBzZWxl Y3QgaW5kaXZpZHVhbCBjb21wb25lbnRzIGxpa2UNCj4gKwkgIHRoZSBHUElPIGFuZCBQV00gZnVu Y3Rpb25zIHVuZGVyIHRoZSBjb3JyZXNwb25kaW5nIG1lbnVzLg0KPiArDQo+ICBjb25maWcgTUZE X0FMVEVSQV9BMTBTUg0KPiAgCWJvb2wgIkFsdGVyYSBBcnJpYTEwIERldktpdCBTeXN0ZW0gUmVz b3VyY2UgY2hpcCINCj4gIAlkZXBlbmRzIG9uIEFSQ0hfSU5URUxfU09DRlBHQSAmJiBTUElfTUFT VEVSPXkgJiYgT0YgZGlmZiAtLWdpdA0KPiBhL2RyaXZlcnMvbWZkL01ha2VmaWxlIGIvZHJpdmVy cy9tZmQvTWFrZWZpbGUgaW5kZXgNCj4gYzY2ZjA3ZWRjZDBlLi4zN2YzNmEwMTlhNjggMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvbWZkL01ha2VmaWxlDQo+ICsrKyBiL2RyaXZlcnMvbWZkL01ha2Vm aWxlDQo+IEBAIC0xODgsNiArMTg4LDcgQEAgb2JqLSQoQ09ORklHX01GRF9EQjg1MDBfUFJDTVUp CSs9DQo+IGRiODUwMC1wcmNtdS5vDQo+ICBvYmotJChDT05GSUdfQUI4NTAwX0NPUkUpCSs9IGFi ODUwMC1jb3JlLm8gYWI4NTAwLXN5c2N0cmwubw0KPiAgb2JqLSQoQ09ORklHX01GRF9USU1CRVJE QUxFKSAgICArPSB0aW1iZXJkYWxlLm8NCj4gIG9iai0kKENPTkZJR19QTUlDX0FEUDU1MjApCSs9 IGFkcDU1MjAubw0KPiArb2JqLSQoQ09ORklHX01GRF9BRFA1NTg1KQkrPSBhZHA1NTg1Lm8NCj4g IG9iai0kKENPTkZJR19NRkRfS0VNUExEKQkrPSBrZW1wbGQtY29yZS5vDQo+ICBvYmotJChDT05G SUdfTUZEX0lOVEVMX1FVQVJLX0kyQ19HUElPKQkrPSBpbnRlbF9xdWFya19pMmNfZ3Bpby5vDQo+ ICBvYmotJChDT05GSUdfTFBDX1NDSCkJCSs9IGxwY19zY2gubw0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9tZmQvYWRwNTU4NS5jIGIvZHJpdmVycy9tZmQvYWRwNTU4NS5jIG5ldyBmaWxlIG1vZGUN Cj4gMTAwNjQ0IGluZGV4IDAwMDAwMDAwMDAwMC4uNzU5NTdmOWI2N2MyDQo+IC0tLSAvZGV2L251 bGwNCj4gKysrIGIvZHJpdmVycy9tZmQvYWRwNTU4NS5jDQo+IEBAIC0wLDAgKzEsMjA3IEBADQo+ ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5DQo+ICsvKg0KPiArICog QW5hbG9nIERldmljZXMgQURQNTU4NSBJL08gZXhwYW5kZXIsIFBXTSBjb250cm9sbGVyIGFuZCBr ZXlwYWQNCj4gK2NvbnRyb2xsZXINCj4gKyAqDQo+ICsgKiBDb3B5cmlnaHQgMjAyMiBOWFANCj4g KyAqIENvcHlyaWdodCAyMDI0IElkZWFzIG9uIEJvYXJkIE95DQo+ICsgKi8NCj4gKw0KPiArI2lu Y2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+ DQo+ICsjaW5jbHVkZSA8bGludXgvaW5pdC5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4N Cj4gKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9vZi5oPg0KPiAr I2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L21mZC9jb3Jl Lmg+DQo+ICsjaW5jbHVkZSA8bGludXgvbWZkL2FkcDU1ODUuaD4NCj4gKyNpbmNsdWRlIDxsaW51 eC9yZWdtYXAuaD4NCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBtZmRfY2VsbCBhZHA1NTg1 X2RldnNbXSA9IHsNCj4gKwl7DQo+ICsJCS5uYW1lID0gImFkcDU1ODUtZ3BpbyIsDQo+ICsJCS5v Zl9jb21wYXRpYmxlID0gImFkaSxhZHA1NTg1LWdwaW8iLA0KPiArCX0sDQo+ICsJew0KPiArCQku bmFtZSA9ICJhZHA1NTg1LXB3bSIsDQo+ICsJCS5vZl9jb21wYXRpYmxlID0gImFkaSxhZHA1NTg1 LXB3bSIsDQo+ICsJfSwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcmVnbWFw X3JhbmdlIGFkcDU1ODVfdm9sYXRpbGVfcmFuZ2VzW10gPSB7DQo+ICsJcmVnbWFwX3JlZ19yYW5n ZShBRFA1NTg1X0lELCBBRFA1NTg1X0dQSV9TVEFUVVNfQiksIH07DQo+ICsNCj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgcmVnbWFwX2FjY2Vzc190YWJsZSBhZHA1NTg1X3ZvbGF0aWxlX3JlZ3MgPSB7 DQo+ICsJLnllc19yYW5nZXMgPSBhZHA1NTg1X3ZvbGF0aWxlX3JhbmdlcywNCj4gKwkubl95ZXNf cmFuZ2VzID0gQVJSQVlfU0laRShhZHA1NTg1X3ZvbGF0aWxlX3JhbmdlcyksDQo+ICt9Ow0KPiAr DQo+ICtzdGF0aWMgY29uc3QgdTggYWRwNTU4NV9yZWdtYXBfZGVmYXVsdHNfMDBbQURQNTU4NV9N QVhfUkVHICsgMV0gPSB7DQo+ICsJLyogMHgwMCAqLyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLA0KPiArCS8qIDB4MDggKi8gMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gKwkvKiAweDEwICovIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQo+ICsJLyogMHgxOCAqLyAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KPiArCS8qIDB4MjAg Ki8gMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gKwkv KiAweDI4ICovIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs DQo+ICsJLyogMHgzMCAqLyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLA0KPiArCS8qIDB4MzggKi8gMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgfTsN Cj4gKw0KPiArc3RhdGljIGNvbnN0IHU4IGFkcDU1ODVfcmVnbWFwX2RlZmF1bHRzXzAyW0FEUDU1 ODVfTUFYX1JFRyArIDFdID0gew0KPiArCS8qIDB4MDAgKi8gMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gKwkvKiAweDA4ICovIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQo+ICsJLyogMHgxMCAqLyAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweGMzLA0KPiArCS8qIDB4MTggKi8g MHgwMywgMHgwMCwgMHgwMywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwNCj4gKwkvKiAw eDIwICovIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQo+ ICsJLyogMHgyOCAqLyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLA0KPiArCS8qIDB4MzAgKi8gMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwNCj4gKwkvKiAweDM4ICovIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IH07DQo+ICsNCj4gK3N0YXRpYyBjb25zdCB1OCBhZHA1NTg1X3JlZ21hcF9kZWZhdWx0c18wNFtB RFA1NTg1X01BWF9SRUcgKyAxXSA9IHsNCj4gKwkvKiAweDAwICovIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQo+ICsJLyogMHgwOCAqLyAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLA0KPiArCS8qIDB4MTAgKi8gMHgw MCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHg1NSwNCj4gKwkvKiAweDE4 ICovIDB4MDUsIDB4NTUsIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsDQo+ICsJ LyogMHgyMCAqLyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAw LA0KPiArCS8qIDB4MjggKi8gMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMCwNCj4gKwkvKiAweDMwICovIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsDQo+ICsJLyogMHgzOCAqLyAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCB9Ow0KPiArDQo+ICtlbnVtIGFkcDU1ODVfcmVnbWFwX3R5cGUgew0KPiArCUFEUDU1ODVf UkVHTUFQXzAwLA0KPiArCUFEUDU1ODVfUkVHTUFQXzAyLA0KPiArCUFEUDU1ODVfUkVHTUFQXzA0 LA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIGFkcDU1 ODVfcmVnbWFwX2NvbmZpZ3NbXSA9IHsNCj4gKwlbQURQNTU4NV9SRUdNQVBfMDBdID0gew0KPiAr CQkucmVnX2JpdHMgPSA4LA0KPiArCQkudmFsX2JpdHMgPSA4LA0KPiArCQkubWF4X3JlZ2lzdGVy ID0gQURQNTU4NV9NQVhfUkVHLA0KPiArCQkudm9sYXRpbGVfdGFibGUgPSAmYWRwNTU4NV92b2xh dGlsZV9yZWdzLA0KPiArCQkuY2FjaGVfdHlwZSA9IFJFR0NBQ0hFX01BUExFLA0KPiArCQkucmVn X2RlZmF1bHRzX3JhdyA9IGFkcDU1ODVfcmVnbWFwX2RlZmF1bHRzXzAwLA0KPiArCQkubnVtX3Jl Z19kZWZhdWx0c19yYXcgPSBzaXplb2YoYWRwNTU4NV9yZWdtYXBfZGVmYXVsdHNfMDApLA0KPiAr CX0sDQo+ICsJW0FEUDU1ODVfUkVHTUFQXzAyXSA9IHsNCj4gKwkJLnJlZ19iaXRzID0gOCwNCj4g KwkJLnZhbF9iaXRzID0gOCwNCj4gKwkJLm1heF9yZWdpc3RlciA9IEFEUDU1ODVfTUFYX1JFRywN Cj4gKwkJLnZvbGF0aWxlX3RhYmxlID0gJmFkcDU1ODVfdm9sYXRpbGVfcmVncywNCj4gKwkJLmNh Y2hlX3R5cGUgPSBSRUdDQUNIRV9NQVBMRSwNCj4gKwkJLnJlZ19kZWZhdWx0c19yYXcgPSBhZHA1 NTg1X3JlZ21hcF9kZWZhdWx0c18wMiwNCj4gKwkJLm51bV9yZWdfZGVmYXVsdHNfcmF3ID0gc2l6 ZW9mKGFkcDU1ODVfcmVnbWFwX2RlZmF1bHRzXzAyKSwNCj4gKwl9LA0KPiArCVtBRFA1NTg1X1JF R01BUF8wNF0gPSB7DQo+ICsJCS5yZWdfYml0cyA9IDgsDQo+ICsJCS52YWxfYml0cyA9IDgsDQo+ ICsJCS5tYXhfcmVnaXN0ZXIgPSBBRFA1NTg1X01BWF9SRUcsDQo+ICsJCS52b2xhdGlsZV90YWJs ZSA9ICZhZHA1NTg1X3ZvbGF0aWxlX3JlZ3MsDQo+ICsJCS5jYWNoZV90eXBlID0gUkVHQ0FDSEVf TUFQTEUsDQo+ICsJCS5yZWdfZGVmYXVsdHNfcmF3ID0gYWRwNTU4NV9yZWdtYXBfZGVmYXVsdHNf MDQsDQo+ICsJCS5udW1fcmVnX2RlZmF1bHRzX3JhdyA9IHNpemVvZihhZHA1NTg1X3JlZ21hcF9k ZWZhdWx0c18wNCksDQo+ICsJfSwNCj4gK307DQo+ICsNCj4gKw0KPiArc3RhdGljIGludCBhZHA1 NTg1X2kyY19wcm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjKSB7DQo+ICsJY29uc3Qgc3RydWN0 IHJlZ21hcF9jb25maWcgKnJlZ21hcF9jb25maWc7DQo+ICsJc3RydWN0IGFkcDU1ODVfZGV2ICph ZHA1NTg1Ow0KPiArCXVuc2lnbmVkIGludCBpZDsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJYWRw NTU4NSA9IGRldm1fa3phbGxvYygmaTJjLT5kZXYsIHNpemVvZihzdHJ1Y3QgYWRwNTU4NV9kZXYp LA0KPiArCQkJICAgICAgIEdGUF9LRVJORUwpOw0KPiArCWlmIChhZHA1NTg1ID09IE5VTEwpDQo+ ICsJCXJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsJaTJjX3NldF9jbGllbnRkYXRhKGkyYywgYWRw NTU4NSk7DQo+ICsNCj4gKwlyZWdtYXBfY29uZmlnID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRh KCZpMmMtPmRldik7DQo+ICsJYWRwNTU4NS0+cmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9pMmMo aTJjLCByZWdtYXBfY29uZmlnKTsNCj4gKwlpZiAoSVNfRVJSKGFkcDU1ODUtPnJlZ21hcCkpDQo+ ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZpMmMtPmRldiwgUFRSX0VSUihhZHA1NTg1LT5yZWdt YXApLA0KPiArCQkJCSAgICAgIkZhaWxlZCB0byBpbml0aWFsaXplIHJlZ2lzdGVyIG1hcFxuIik7 DQo+ICsNCj4gKwkvKiBWZXJpZnkgdGhlIGRldmljZSBJRC4gKi8NCj4gKwlyZXQgPSByZWdtYXBf cmVhZChhZHA1NTg1LT5yZWdtYXAsIEFEUDU1ODVfSUQsICZpZCk7DQo+ICsJaWYgKHJldCkNCj4g KwkJcmV0dXJuIGRldl9lcnJfcHJvYmUoJmkyYy0+ZGV2LCByZXQsDQo+ICsJCQkJICAgICAiRmFp bGVkIHRvIHJlYWQgZGV2aWNlIElEXG4iKTsNCj4gKw0KPiArCWlmIChBRFA1NTg1X01BTl9JRChp ZCkgIT0gQURQNTU4NV9NQU5fSURfVkFMVUUpDQo+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKCZp MmMtPmRldiwgLUVOT0RFViwNCj4gKwkJCQkgICAgICJJbnZhbGlkIGRldmljZSBJRCAweCUwMnhc biIsIGlkKTsNCj4gKw0KPiArCWRldl9kYmcoJmkyYy0+ZGV2LCAiZGV2aWNlIElEIDB4JTAyeFxu IiwgaWQpOw0KPiArDQo+ICsJLyogQWRkIE1GRCBkZXZpY2VzLiAqLw0KPiArCXJldCA9IGRldm1f bWZkX2FkZF9kZXZpY2VzKCZpMmMtPmRldiwgUExBVEZPUk1fREVWSURfQVVUTywNCj4gKwkJCQkg ICBhZHA1NTg1X2RldnMsIEFSUkFZX1NJWkUoYWRwNTU4NV9kZXZzKSwNCj4gKwkJCQkgICBOVUxM LCAwLCBOVUxMKTsNCj4gKwlpZiAocmV0KQ0KPiArCQlyZXR1cm4gZGV2X2Vycl9wcm9iZSgmaTJj LT5kZXYsIHJldCwNCj4gKwkJCQkgICAgICJGYWlsZWQgdG8gYWRkIE1GRCBkZXZpY2VzXG4iKTsN Cj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGFkcDU1ODVfc3Vz cGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpIHsNCj4gKwlzdHJ1Y3QgYWRwNTU4NV9kZXYgKmFkcDU1 ODUgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gKw0KPiArCXJlZ2NhY2hlX2NhY2hlX29ubHko YWRwNTU4NS0+cmVnbWFwLCB0cnVlKTsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgaW50IGFkcDU1ODVfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikgew0KPiArCXN0 cnVjdCBhZHA1NTg1X2RldiAqYWRwNTU4NSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPiArDQo+ ICsJcmVnY2FjaGVfY2FjaGVfb25seShhZHA1NTg1LT5yZWdtYXAsIGZhbHNlKTsNCj4gKwlyZWdj YWNoZV9tYXJrX2RpcnR5KGFkcDU1ODUtPnJlZ21hcCk7DQo+ICsNCj4gKwlyZXR1cm4gcmVnY2Fj aGVfc3luYyhhZHA1NTg1LT5yZWdtYXApOyB9DQo+ICsNCj4gK3N0YXRpYyBERUZJTkVfU0lNUExF X0RFVl9QTV9PUFMoYWRwNTU4NV9wbSwgYWRwNTU4NV9zdXNwZW5kLA0KPiArYWRwNTU4NV9yZXN1 bWUpOw0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhZHA1NTg1X29m X21hdGNoW10gPSB7DQo+ICsJew0KPiArCQkuY29tcGF0aWJsZSA9ICJhZGksYWRwNTU4NS0wMCIs DQo+ICsJCS5kYXRhID0gJmFkcDU1ODVfcmVnbWFwX2NvbmZpZ3NbQURQNTU4NV9SRUdNQVBfMDBd LA0KPiArCX0sIHsNCj4gKwkJLmNvbXBhdGlibGUgPSAiYWRpLGFkcDU1ODUtMDEiLA0KPiArCQku ZGF0YSA9ICZhZHA1NTg1X3JlZ21hcF9jb25maWdzW0FEUDU1ODVfUkVHTUFQXzAwXSwNCj4gKwl9 LCB7DQo+ICsJCS5jb21wYXRpYmxlID0gImFkaSxhZHA1NTg1LTAyIiwNCj4gKwkJLmRhdGEgPSAm YWRwNTU4NV9yZWdtYXBfY29uZmlnc1tBRFA1NTg1X1JFR01BUF8wMl0sDQo+ICsJfSwgew0KPiAr CQkuY29tcGF0aWJsZSA9ICJhZGksYWRwNTU4NS0wMyIsDQo+ICsJCS5kYXRhID0gJmFkcDU1ODVf cmVnbWFwX2NvbmZpZ3NbQURQNTU4NV9SRUdNQVBfMDBdLA0KPiArCX0sIHsNCj4gKwkJLmNvbXBh dGlibGUgPSAiYWRpLGFkcDU1ODUtMDQiLA0KPiArCQkuZGF0YSA9ICZhZHA1NTg1X3JlZ21hcF9j b25maWdzW0FEUDU1ODVfUkVHTUFQXzA0XSwNCj4gKwl9LA0KPiArCXsgLyogc2VudGluZWwgKi8g fQ0KPiArfTsNCj4gK01PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFkcDU1ODVfb2ZfbWF0Y2gpOw0K PiArDQo+ICtzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgYWRwNTU4NV9pMmNfZHJpdmVyID0gew0K PiArCS5kcml2ZXIgPSB7DQo+ICsJCS5uYW1lID0gImFkcDU1ODUiLA0KPiArCQkub2ZfbWF0Y2hf dGFibGUgPSBvZl9tYXRjaF9wdHIoYWRwNTU4NV9vZl9tYXRjaCksDQo+ICsJCS5wbSA9IHBtX3Ns ZWVwX3B0cigmYWRwNTU4NV9wbSksDQo+ICsJfSwNCj4gKwkucHJvYmUgPSBhZHA1NTg1X2kyY19w cm9iZSwNCj4gK307DQo+ICttb2R1bGVfaTJjX2RyaXZlcihhZHA1NTg1X2kyY19kcml2ZXIpOw0K PiArDQo+ICtNT0RVTEVfREVTQ1JJUFRJT04oIkFEUDU1ODUgY29yZSBkcml2ZXIiKTsgTU9EVUxF X0FVVEhPUigiSGFpYm8NCj4gQ2hlbg0KPiArPGhhaWJvLmNoZW5AbnhwLmNvbT4iKTsgTU9EVUxF X0xJQ0VOU0UoIkdQTCIpOw0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZmQvYWRwNTU4 NS5oIGIvaW5jbHVkZS9saW51eC9tZmQvYWRwNTU4NS5oIG5ldyBmaWxlDQo+IG1vZGUgMTAwNjQ0 IGluZGV4IDAwMDAwMDAwMDAwMC4uM2YxNzhmMzBmYWM2DQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvaW5jbHVkZS9saW51eC9tZmQvYWRwNTU4NS5oDQo+IEBAIC0wLDAgKzEsMTIwIEBADQo+ICsv KiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovDQo+ICsvKg0KPiArICog QW5hbG9nIERldmljZXMgQURQNTU4NSBJL08gZXhwYW5kZXIsIFBXTSBjb250cm9sbGVyIGFuZCBr ZXlwYWQNCj4gK2NvbnRyb2xsZXINCj4gKyAqDQo+ICsgKiBDb3B5cmlnaHQgMjAyMiBOWFANCj4g KyAqIENvcHlyaWdodCAyMDI0IElkZWFzIG9uIEJvYXJkIE95DQo+ICsgKi8NCj4gKw0KPiArI2lm bmRlZiBfX0xJTlVYX01GRF9BRFA1NTg1X0hfDQo+ICsjZGVmaW5lIF9fTElOVVhfTUZEX0FEUDU1 ODVfSF8NCj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L2JpdHMuaD4NCj4gKw0KPiArI2RlZmluZSBB RFA1NTg1X0lECQkJMHgwMA0KPiArI2RlZmluZQkJQURQNTU4NV9NQU5fSUQodikJCSgoKHYpICYg MHhmMCkgPj4gNCkNCj4gKyNkZWZpbmUJCUFEUDU1ODVfTUFOX0lEX1ZBTFVFCQkweDAyDQo+ICsj ZGVmaW5lIEFEUDU1ODVfSU5UX1NUQVRVUwkJMHgwMQ0KPiArI2RlZmluZSBBRFA1NTg1X1NUQVRV UwkJCTB4MDINCj4gKyNkZWZpbmUgQURQNTU4NV9GSUZPXzEJCQkweDAzDQo+ICsjZGVmaW5lIEFE UDU1ODVfRklGT18yCQkJMHgwNA0KPiArI2RlZmluZSBBRFA1NTg1X0ZJRk9fMwkJCTB4MDUNCj4g KyNkZWZpbmUgQURQNTU4NV9GSUZPXzQJCQkweDA2DQo+ICsjZGVmaW5lIEFEUDU1ODVfRklGT181 CQkJMHgwNw0KPiArI2RlZmluZSBBRFA1NTg1X0ZJRk9fNgkJCTB4MDgNCj4gKyNkZWZpbmUgQURQ NTU4NV9GSUZPXzcJCQkweDA5DQo+ICsjZGVmaW5lIEFEUDU1ODVfRklGT184CQkJMHgwYQ0KPiAr I2RlZmluZSBBRFA1NTg1X0ZJRk9fOQkJCTB4MGINCj4gKyNkZWZpbmUgQURQNTU4NV9GSUZPXzEw CQkJMHgwYw0KPiArI2RlZmluZSBBRFA1NTg1X0ZJRk9fMTEJCQkweDBkDQo+ICsjZGVmaW5lIEFE UDU1ODVfRklGT18xMgkJCTB4MGUNCj4gKyNkZWZpbmUgQURQNTU4NV9GSUZPXzEzCQkJMHgwZg0K PiArI2RlZmluZSBBRFA1NTg1X0ZJRk9fMTQJCQkweDEwDQo+ICsjZGVmaW5lIEFEUDU1ODVfRklG T18xNQkJCTB4MTENCj4gKyNkZWZpbmUgQURQNTU4NV9GSUZPXzE2CQkJMHgxMg0KPiArI2RlZmlu ZSBBRFA1NTg1X0dQSV9JTlRfU1RBVF9BCQkweDEzDQo+ICsjZGVmaW5lIEFEUDU1ODVfR1BJX0lO VF9TVEFUX0IJCTB4MTQNCj4gKyNkZWZpbmUgQURQNTU4NV9HUElfU1RBVFVTX0EJCTB4MTUNCj4g KyNkZWZpbmUgQURQNTU4NV9HUElfU1RBVFVTX0IJCTB4MTYNCj4gKyNkZWZpbmUgQURQNTU4NV9S UFVMTF9DT05GSUdfQQkJMHgxNw0KPiArI2RlZmluZSBBRFA1NTg1X1JQVUxMX0NPTkZJR19CCQkw eDE4DQo+ICsjZGVmaW5lIEFEUDU1ODVfUlBVTExfQ09ORklHX0MJCTB4MTkNCj4gKyNkZWZpbmUg QURQNTU4NV9SUFVMTF9DT05GSUdfRAkJMHgxYQ0KPiArI2RlZmluZQkJQURQNTU4NV9SeF9QVUxM X0NGRyhuLCB2KQkoKHYpIDw8ICgobikgKiAyKSkNCj4gKyNkZWZpbmUJCUFEUDU1ODVfUnhfUFVM TF9DRkdfUFVfMzAwSwkoMCkNCj4gKyNkZWZpbmUJCUFEUDU1ODVfUnhfUFVMTF9DRkdfUERfMzAw SwkoMSkNCj4gKyNkZWZpbmUJCUFEUDU1ODVfUnhfUFVMTF9DRkdfUFVfMTAwSwkoMikNCj4gKyNk ZWZpbmUJCUFEUDU1ODVfUnhfUFVMTF9DRkdfRElTQUJMRQkoMykNCj4gKyNkZWZpbmUJCUFEUDU1 ODVfUnhfUFVMTF9DRkdfTUFTSwkoMykNCj4gKyNkZWZpbmUgQURQNTU4NV9HUElfSU5UX0xFVkVM X0EJCTB4MWINCj4gKyNkZWZpbmUgQURQNTU4NV9HUElfSU5UX0xFVkVMX0IJCTB4MWMNCj4gKyNk ZWZpbmUgQURQNTU4NV9HUElfRVZFTlRfRU5fQQkJMHgxZA0KPiArI2RlZmluZSBBRFA1NTg1X0dQ SV9FVkVOVF9FTl9CCQkweDFlDQo+ICsjZGVmaW5lIEFEUDU1ODVfR1BJX0lOVEVSUlVQVF9FTl9B CTB4MWYNCj4gKyNkZWZpbmUgQURQNTU4NV9HUElfSU5URVJSVVBUX0VOX0IJMHgyMA0KPiArI2Rl ZmluZSBBRFA1NTg1X0RFQk9VTkNFX0RJU19BCQkweDIxDQo+ICsjZGVmaW5lIEFEUDU1ODVfREVC T1VOQ0VfRElTX0IJCTB4MjINCj4gKyNkZWZpbmUgQURQNTU4NV9HUE9fREFUQV9PVVRfQQkJMHgy Mw0KPiArI2RlZmluZSBBRFA1NTg1X0dQT19EQVRBX09VVF9CCQkweDI0DQo+ICsjZGVmaW5lIEFE UDU1ODVfR1BPX09VVF9NT0RFX0EJCTB4MjUNCj4gKyNkZWZpbmUgQURQNTU4NV9HUE9fT1VUX01P REVfQgkJMHgyNg0KPiArI2RlZmluZSBBRFA1NTg1X0dQSU9fRElSRUNUSU9OX0EJMHgyNw0KPiAr I2RlZmluZSBBRFA1NTg1X0dQSU9fRElSRUNUSU9OX0IJMHgyOA0KPiArI2RlZmluZSBBRFA1NTg1 X1JFU0VUMV9FVkVOVF9BCQkweDI5DQo+ICsjZGVmaW5lIEFEUDU1ODVfUkVTRVQxX0VWRU5UX0IJ CTB4MmENCj4gKyNkZWZpbmUgQURQNTU4NV9SRVNFVDFfRVZFTlRfQwkJMHgyYg0KPiArI2RlZmlu ZSBBRFA1NTg1X1JFU0VUMl9FVkVOVF9BCQkweDJjDQo+ICsjZGVmaW5lIEFEUDU1ODVfUkVTRVQy X0VWRU5UX0IJCTB4MmQNCj4gKyNkZWZpbmUgQURQNTU4NV9SRVNFVF9DRkcJCTB4MmUNCj4gKyNk ZWZpbmUgQURQNTU4NV9QV01fT0ZGVF9MT1cJCTB4MmYNCj4gKyNkZWZpbmUgQURQNTU4NV9QV01f T0ZGVF9ISUdICQkweDMwDQo+ICsjZGVmaW5lIEFEUDU1ODVfUFdNX09OVF9MT1cJCTB4MzENCj4g KyNkZWZpbmUgQURQNTU4NV9QV01fT05UX0hJR0gJCTB4MzINCj4gKyNkZWZpbmUgQURQNTU4NV9Q V01fQ0ZHCQkJMHgzMw0KPiArI2RlZmluZQkJQURQNTU4NV9QV01fSU5fQU5ECQlCSVQoMikNCj4g KyNkZWZpbmUJCUFEUDU1ODVfUFdNX01PREUJCUJJVCgxKQ0KPiArI2RlZmluZQkJQURQNTU4NV9Q V01fRU4JCQlCSVQoMCkNCj4gKyNkZWZpbmUgQURQNTU4NV9MT0dJQ19DRkcJCTB4MzQNCj4gKyNk ZWZpbmUgQURQNTU4NV9MT0dJQ19GRl9DRkcJCTB4MzUNCj4gKyNkZWZpbmUgQURQNTU4NV9MT0dJ Q19JTlRfRVZFTlRfRU4JMHgzNg0KPiArI2RlZmluZSBBRFA1NTg1X1BPTExfUFRJTUVfQ0ZHCQkw eDM3DQo+ICsjZGVmaW5lIEFEUDU1ODVfUElOX0NPTkZJR19BCQkweDM4DQo+ICsjZGVmaW5lIEFE UDU1ODVfUElOX0NPTkZJR19CCQkweDM5DQo+ICsjZGVmaW5lIEFEUDU1ODVfUElOX0NPTkZJR19D CQkweDNhDQo+ICsjZGVmaW5lCQlBRFA1NTg1X1BVTExfU0VMRUNUCQlCSVQoNykNCj4gKyNkZWZp bmUJCUFEUDU1ODVfQzRfRVhURU5EX0NGR19HUElPMTEJKDBVIDw8IDYpDQo+ICsjZGVmaW5lCQlB RFA1NTg1X0M0X0VYVEVORF9DRkdfUkVTRVQyCSgxVSA8PCA2KQ0KPiArI2RlZmluZQkJQURQNTU4 NV9DNF9FWFRFTkRfQ0ZHX01BU0sJKDFVIDw8IDYpDQo+ICsjZGVmaW5lCQlBRFA1NTg1X1I0X0VY VEVORF9DRkdfR1BJTzUJKDBVIDw8IDUpDQo+ICsjZGVmaW5lCQlBRFA1NTg1X1I0X0VYVEVORF9D RkdfUkVTRVQxCSgxVSA8PCA1KQ0KPiArI2RlZmluZQkJQURQNTU4NV9SNF9FWFRFTkRfQ0ZHX01B U0sJKDFVIDw8IDUpDQo+ICsjZGVmaW5lCQlBRFA1NTg1X1IzX0VYVEVORF9DRkdfR1BJTzQJKDBV IDw8IDIpDQo+ICsjZGVmaW5lCQlBRFA1NTg1X1IzX0VYVEVORF9DRkdfTEMJKDFVIDw8IDIpDQo+ ICsjZGVmaW5lCQlBRFA1NTg1X1IzX0VYVEVORF9DRkdfUFdNX09VVAkoMlUgPDwgMikNCj4gKyNk ZWZpbmUJCUFEUDU1ODVfUjNfRVhURU5EX0NGR19NQVNLCSgzVSA8PCAyKQ0KPiArI2RlZmluZQkJ QURQNTU4NV9SMF9FWFRFTkRfQ0ZHX0dQSU8xCSgwVSA8PCAwKQ0KPiArI2RlZmluZQkJQURQNTU4 NV9SMF9FWFRFTkRfQ0ZHX0xZCSgxVSA8PCAwKQ0KPiArI2RlZmluZQkJQURQNTU4NV9SMF9FWFRF TkRfQ0ZHX01BU0sJKDFVIDw8IDApDQo+ICsjZGVmaW5lIEFEUDU1ODVfR0VORVJBTF9DRkcJCTB4 M2INCj4gKyNkZWZpbmUJCUFEUDU1ODVfT1NDX0VOCQkJQklUKDcpDQo+ICsjZGVmaW5lCQlBRFA1 NTg1X09TQ19GUkVRXzUwS0haCQkoMFUgPDwgNSkNCj4gKyNkZWZpbmUJCUFEUDU1ODVfT1NDX0ZS RVFfMTAwS0haCQkoMVUgPDwgNSkNCj4gKyNkZWZpbmUJCUFEUDU1ODVfT1NDX0ZSRVFfMjAwS0ha CQkoMlUgPDwgNSkNCj4gKyNkZWZpbmUJCUFEUDU1ODVfT1NDX0ZSRVFfNTAwS0haCQkoM1UgPDwg NSkNCj4gKyNkZWZpbmUJCUFEUDU1ODVfT1NDX0ZSRVFfTUFTSwkJKDNVIDw8IDUpDQo+ICsjZGVm aW5lCQlBRFA1NTg1X0lOVF9DRkcJCQlCSVQoMSkNCj4gKyNkZWZpbmUJCUFEUDU1ODVfUlNUX0NG RwkJCUJJVCgwKQ0KPiArI2RlZmluZSBBRFA1NTg1X0lOVF9FTgkJCTB4M2MNCj4gKw0KPiArI2Rl ZmluZSBBRFA1NTg1X01BWF9SRUcJCQlBRFA1NTg1X0lOVF9FTg0KPiArDQo+ICsjZGVmaW5lIEFE UDU1ODVfQkFOSyhuKQkJCSgobikgPj0gNiA/IDEgOiAwKQ0KPiArI2RlZmluZSBBRFA1NTg1X0JJ VChuKQkJCSgobikgPj0gNiA/IEJJVCgobikgLSA2KSA6IEJJVChuKSkNCg0KU2luY2UgeW91IHVz ZSA2IGhlcmUgZm9yIHRoZSBCQU5LLCBtYXliZSBiZXR0ZXIgdG8gYWRkIGNvbW1lbnQgaGVyZS4N CkZvciBhZGksYWRwNTU4NS0wMChkZWZhdWx0KSwgbmVlZCB0byBhZGQgIiBncGlvLXJlc2VydmVk LXJhbmdlcyA9IDw1IDE+OyIgdG8gcmVzZXJ2ZSBncGlvNSAoR1BJTyA2L1JvdyA1IGluIGRhdGFz aGVldCkuDQpQZW9wbGUgd2lsbCBtZWV0IGlzc3VlIHdoZW4gdGhleSB0cnkgdG8gdXNlIEdQSU83 fkdQSU8xMSB3aXRob3V0IGNvbmZpZyB0aGUgcmVzZXJ2ZWQgcmFuZ2UsIHRoZW4gd2lsbCBjaGVj ayB0aGUgQkFOSyBoZXJlLCBhZGQgY29tbWVudCBoZXJlIHdpbGwgaGVscC4NCg0KQmVzdCBSZWdh cmRzDQpIYWlibyBDaGVuDQoNCj4gKw0KPiArc3RydWN0IHJlZ21hcDsNCj4gKw0KPiArc3RydWN0 IGFkcDU1ODVfZGV2IHsNCj4gKwlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7DQo+ICt9Ow0KPiArDQo+ ICsjZW5kaWYNCj4gLS0NCj4gUmVnYXJkcywNCj4gDQo+IExhdXJlbnQgUGluY2hhcnQNCg0K