From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id C2DE4459B6;
	Tue, 17 Sep 2024 20:25:27 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 7AF9340E28;
	Tue, 17 Sep 2024 20:25:27 +0200 (CEST)
Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com
 [67.231.148.174])
 by mails.dpdk.org (Postfix) with ESMTP id CD88F40280
 for <dev@dpdk.org>; Tue, 17 Sep 2024 20:25:25 +0200 (CEST)
Received: from pps.filterd (m0045849.ppops.net [127.0.0.1])
 by mx0a-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 48HH8nU6017797
 for <dev@dpdk.org>; Tue, 17 Sep 2024 11:25:24 -0700
Received: from pps.reinject (localhost [127.0.0.1])
 by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 41qdwg8am8-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT)
 for <dev@dpdk.org>; Tue, 17 Sep 2024 11:25:24 -0700 (PDT)
Received: from m0045849.ppops.net (m0045849.ppops.net [127.0.0.1])
 by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 48HIPOCV021611;
 Tue, 17 Sep 2024 11:25:24 -0700
Received: from nam10-mw2-obe.outbound.protection.outlook.com
 (mail-mw2nam10lp2047.outbound.protection.outlook.com [104.47.55.47])
 by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 41qdwg8am5-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
 Tue, 17 Sep 2024 11:25:23 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=GCEkJywOKi5IrG2YW4TgdkmDm/RLytP1ZukW7TCjdge0Lq/XM4N+KQgTa61OcjAjWAbUCbyjpgYUXE5zv9DLc6sn5jUgsLh4ZLKC6J46ZoLTxguG5PFUSFujaGt4lxXSPnvG7nmdGzMYXM1Cr837UnKFAzFj2YCsiEfUvZUy/fjBJngrqrELhHfE0a8hOOBc+YLzuAqa7sy2wg0pUlguJVNtOgHoHknaJV+3NUz0tmlXUYMSUbE6hDuXQm3eKjUMQuycZBbyA2KvsQJE6qCPEJkPib2sWvJgfJrk7afTUM9KYHgQ1ctzcvG7h4i7tiRM1Nz1hhoywbCkOaMDuyPAVg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 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=B6RgRpuaIF30zdIiGhSvBmD07nIW+HBmIk9v6i6VuvE=;
 b=KPL2iszrjwoFk4NWRCjbG2xEgkRVmQ2RMDJOx2lV5/YXd8g3Q2h2h1yLx/OfUcjw7cxU4e7Qciaf/kTf/mpVHmF0FzVl+bF0yLAf6svuAXO2us7nX0SdlHVgQb0BtrAJ0K+5q4/CjrZM5baoaUYn5sMpgH0Jx8rvVV373k5ZjmbohBCxPRzFd/6GFoLVBryXRHLW5ViZ+RDMG5AfwwNYi1AWr296kDuPPVPogsTZpA/vsP28698qvbD5QQxhvdlMjRbt4zRUVuXZS6L8/rvKm4dkLPN2CaCWJBbBWc2APNi5zFJgTJjWTQ4L+tBX3wM/jnTGEjtRt6QscNxrbqfruA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com;
 dkim=pass header.d=marvell.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=B6RgRpuaIF30zdIiGhSvBmD07nIW+HBmIk9v6i6VuvE=;
 b=qIoQRCITiwaTSvJrB7ckJq7XCfbKrjXnipWIyYC5xxFjvOZFwD5oFdyFMSYe104+AUPMCL2h4wHfJ1Okbo0ad7fcQXF+RkOSTpT5yIE3jjGu1NByxZCwN05pr1EJFnSfQk66mWgJ/JqQTQ+F88PaDAxoPmioXu8o+jqY9hlfCy0=
Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by
 CO6PR18MB4019.namprd18.prod.outlook.com (2603:10b6:5:34c::6) with
 Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.7962.24; Tue, 17 Sep 2024 18:25:21 +0000
Received: from CO6PR18MB4484.namprd18.prod.outlook.com
 ([fe80::3c98:dd36:4897:a51d]) by CO6PR18MB4484.namprd18.prod.outlook.com
 ([fe80::3c98:dd36:4897:a51d%5]) with mapi id 15.20.7962.022; Tue, 17 Sep 2024
 18:25:21 +0000
From: Akhil Goyal <gakhil@marvell.com>
To: Hanxiao Li <li.hanxiao@zte.com.cn>, "dev@dpdk.org" <dev@dpdk.org>
CC: "wang.yong19@zte.com.cn" <wang.yong19@zte.com.cn>
Subject: RE: [EXTERNAL] [PATCH v6 6/8] zsda: add zsda crypto-pmd
Thread-Topic: [EXTERNAL] [PATCH v6 6/8] zsda: add zsda crypto-pmd
Thread-Index: AQHbBCAB/q4P3EH+mUiYcZB2sUZRerJcVT+Q
Date: Tue, 17 Sep 2024 18:25:21 +0000
Message-ID: <CO6PR18MB4484841EA4895E4ED96C4B39D8612@CO6PR18MB4484.namprd18.prod.outlook.com>
References: <20240911075200.4074366-1-li.hanxiao@zte.com.cn>
 <20240911075447.4074486-1-li.hanxiao@zte.com.cn>
 <20240911075447.4074486-5-li.hanxiao@zte.com.cn>
In-Reply-To: <20240911075447.4074486-5-li.hanxiao@zte.com.cn>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|CO6PR18MB4019:EE_
x-ms-office365-filtering-correlation-id: 0d168e09-6ee1-4fc9-7e0b-08dcd7461736
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018;
x-microsoft-antispam-message-info: =?utf-8?B?eDBZK29FR0Z0K3kxOXVUclhSajhnSG16WEE5dFhycFd5RUlsS04zZkN2c0d2?=
 =?utf-8?B?SEJFTGRXb2tsTktMTkZCdnBnRXhBU01SQzExZG8wZHlpWldJaHRXWnRla21p?=
 =?utf-8?B?bUdnTE51bk9VazFYQUpCeWUwbGdWVGZBeWxGOVJiZWxZaHhBNUVBRXU1Mkl4?=
 =?utf-8?B?RWhtT2VCYWdGR3RZVXM5Qys1aWtKcXdvMjVqUUhEL3V3QzRoSVEySHI0V2Ix?=
 =?utf-8?B?SXRQcVFaWWxDREtOZXR0YXNZRStlbnMrQVRLQ3VveWhlbjk2MUJmUmE1Skxp?=
 =?utf-8?B?amZsajJLMDdMQ2Z2b3hCOG4xWEVnMkFnZkJ0NXhkb3BzQ3ZnVXZRSnVQMDI5?=
 =?utf-8?B?d0NPYVExUUcxNGlHbGk2U05PU3JqdFRuc0FpdFl0d3hNWEFZNm9DRUs5akR0?=
 =?utf-8?B?ZVlTK0xFUjFSKzQ3N1p2TzMwSUlVU2FzTEk5aVd4RWxqMmxGeGtna3lVaXNk?=
 =?utf-8?B?bi9pWHNLUVpnUTlrV3JwT0lGOTZnOCtxeTcxdWNDbjl5Q1UvVTNMRjVRRVIw?=
 =?utf-8?B?dFVYRktBaGNtL2NsYmtualFZekZibnE3SFdoMmdFWmJjcVJ5TGhUUmpxVS84?=
 =?utf-8?B?OWYyUFFrdzZodEVQOFdQbVlPdFB3cUwzc1pFVkxacUNGK2E2ZnZheHg0cHNY?=
 =?utf-8?B?UldtT3ljb3QwK2NtOWNYL0grWjl2czN4RlZwd2RmQlRaK3RUUnNKdUdoT0hx?=
 =?utf-8?B?Q1hLNkZIQTUyWmdTa2dnMWFNRjBwZTVuZjNCZXpQdU5ZSG1iUmpVU3ZuS1B1?=
 =?utf-8?B?Z0RocDRlT1dFUVozTzlWeFBHV0pRQldXSHZrYkRidTRiMFQ2S0hUNjg4YlFz?=
 =?utf-8?B?b25CSCtUQjhmbGhUZ0pjZjI1M2VHWTJTYzNZOEczOUpmOFpTVEhHWEJtWUxI?=
 =?utf-8?B?d1ViV3hmbVptU1FwajdsQ05hQWZwYlpaSmxHbkhOR2doTWhDdXhLc0ZndUwv?=
 =?utf-8?B?RzZLRkE5V2NWYzZmNmZ2eVBCQmNFQkZRTEdTMWtVU0NoaDVXODl0azRleTEv?=
 =?utf-8?B?cGFybzFmQXlBNmErWTd2MGJKM0tUQ2g3b3Y3MkVUSGxwWDVnOEJjbkU0Szgy?=
 =?utf-8?B?ZzN5eUJCbFkyZ0ZTRE9uR0Z4dStaaGxCYzBSSndlNjBGTG5GVkRFblpwN01a?=
 =?utf-8?B?S3g0QWVjVnlNdk1udDVjaFdGMzlXT0dYN1ZDcXRWV0NKR2VuQVZvbVRkQ1FW?=
 =?utf-8?B?Nmk5Rm42b1MzVCtSM2xnYjhpd2w3RGl4c2pKMTI5SXdzNDNPc2ppUCtreG9u?=
 =?utf-8?B?bnVoWXk5QnVZakdEOVd4dXdmb1lJbzZURmhScG9mcHpvWEF3WUZZTWg5WGx1?=
 =?utf-8?B?WHh6d1RMbktVVmxNWEM3ZXFwYWNoU1dYaForTDFocUdRVEN6Tms3bEFVc2hE?=
 =?utf-8?B?cWFERFBWYWEwNndXQ002d2puczJ3Zll1bnU0M1VNNHJoU0o1ZTd4cmg0c3d0?=
 =?utf-8?B?eFlaVm5TUnRPWGlueTYzeFJ6aXpLT0NBaVFZdmVtSUluQ3NQd290UnZLK3oz?=
 =?utf-8?B?MzZCdFBJVmd2OG55ZDRweEZHb3c1aHNzTjZMNEYrZlVLQk1BRS9YZVdlRWZy?=
 =?utf-8?B?RVFNNGpIVXFZMmNyRURVMUNYemQ5cWFwSG9KcE1XSHBvc1V0SjVEODAvcmhl?=
 =?utf-8?B?YkFqbGtOL2hOOVhYS0VnWTFGOUNBY0xSTDB1bW5qV1FySDk2OGpxZWZyRWs1?=
 =?utf-8?B?ZUZraVI1TzFjT1ovdFdjalFkcURCUVJzcWpVOEpqRnVQb2NVS2k1d2Vjd05S?=
 =?utf-8?B?b2FrOEFUWDJZcCtqVE8yTTFXWHh5TW9wUkFMaHBqMStudDRZVmYrdS9qRSs5?=
 =?utf-8?B?UFV5UVMxUmEyZUp6UDVJZFhxWnNSUFdKSnhMam1oekJKUndaUVJwbU9qRjJX?=
 =?utf-8?B?Qi91bEo5SndFRFZQRnpyV21yYmszc2tCU2lpRVFsOUljVWc9PQ==?=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:CO6PR18MB4484.namprd18.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Q3k3Q0xsNWRYY09TZUF1Q0d2TWdLSnVDQ1pONHpBRTJKMWNXcFNWN2hVY1dV?=
 =?utf-8?B?NjRuUk0vQ1YwMkczeU9lT1JMZkFwN1YwS0hjTVIyYTRocjVIaEJDT3l5Y3ZS?=
 =?utf-8?B?aVpabjNjUjIwOHlnT2RaZjJvN0FjU3AvVUovOHlqcjhZdDRVSCthOWtaeFVW?=
 =?utf-8?B?b2VkT3J1ck80cytzZ2Z5Z1JOT3p0Zy9QVnRMZFBDYm9DTjN6NFpiRHExTkZF?=
 =?utf-8?B?S0RmSnliNGZ6aEF2TVlrbUsxaG13VHpDc0plWGJ4dk11bjQ1MEFxbVhJbGNB?=
 =?utf-8?B?V0phTjJac2dNOEZudkZqaUYwaFBPcU5sYXdNc2hFSHB6OFlKblZaNDU1WHhL?=
 =?utf-8?B?QzNSNUNYRDVsNlhPclRuT1FpZ214TU1QU3VTdDhmUkVKbUVqYldKN0dJYU1F?=
 =?utf-8?B?T1J6b25TUTUraFZxRE5JVTZQUFVYRXNCRXgvOWthS3daaHhNVm9vQ1R6bWJH?=
 =?utf-8?B?Y2kzWTlnelZxZ3l2ZE9NUDFJeTlPQ3h1eDNiQXhSTW5Wb2pzN2p3MEtwSEZS?=
 =?utf-8?B?T2JNQkV5MnVDNXJJTjBobkRsVEdDZFkrdzkxQjlXOGVVUTN0YlVPZ3ZiVThi?=
 =?utf-8?B?bG5SZWhLeWo4WjVoRlRWalFTcGhDNnl0ZHpjWmFMTnZ0SUhVeU9UZ2x2ZUlz?=
 =?utf-8?B?WlBnV0pCUmlKb2QxODAva3RBRzUvVnFiMmlBYVJhbE1USGtweVFCUkFFZmNY?=
 =?utf-8?B?aGxIcHNxM3Q4ZkQvM0Qzd2JZT2M1VDlQaTN0bk41U2xlUWlrTWk2dW4ydjNC?=
 =?utf-8?B?UU55U3E3V0dmL2llWDc4Wmw3S1lqZ3BKRTM0RTFFVkYxYzNuWHFPWm1TdldS?=
 =?utf-8?B?Yy90eXZSMTJDTGRaa0ZLdERFcGptcWJmdVM1SWxPdThrTkxlT2NCOWtmcEJO?=
 =?utf-8?B?bmx2Unc1RXJNN1IwMllaaUNZcGFwUUhMMzhWQ1RoOC9WM3AvMW9OeGNZdS9i?=
 =?utf-8?B?RG1RZHVGUXF5UDlTRzVBbWVXMllQbVZ1eFRjSnBqNkk4QVhmWjVhbytnUlVC?=
 =?utf-8?B?YW1jRmhCdDVGWjJBYUlGcWtyNXBuZW5SM2lZRTZwcE5SMzhzZTd3SG1wRm5n?=
 =?utf-8?B?RUtkZjhsbVBDRlhnczBXN3MrdXpYSlc5alh0cFd2Nk1kUVozb3FCajhwVUVR?=
 =?utf-8?B?bWhMWmhka1dDbGhaNFB1b0p1OCtRdVlJRmpzQzVFS08vOCs3YUtTWXFaZDcv?=
 =?utf-8?B?KzRIelI3dmN1ckdJTTduc2wxL1k4YWI5aTRGSnQyMXhCWmRmTzdxcUdCTDdw?=
 =?utf-8?B?RWhtMTdYSHNsRjVLYmIyekVxQnkvdjI0emFJRXZDL0E5Q0kxbHdBYzdGRjlV?=
 =?utf-8?B?Z0hRbGRCZ0RJb0x5Kzdya0hORVBaOSsrOUdiaURNZUMwRkNTckp4QitCNE52?=
 =?utf-8?B?ZWc4bHNqbnJoM0RUWi9nZXFJTTJyckJFM1plcTYrNUQ0MVVoQmZZOXJNT0Rr?=
 =?utf-8?B?M2hLWC95MUVkQ21RTWJZSmk0R095QVV4QlRySlFQOVBENWt5czlmL1A3VFdG?=
 =?utf-8?B?WS9EeVNZa2xEVnZ2RWYwVFNwUllsQ2VYYkRBZnlIeEtRbVl5ZVBhWncwTzFZ?=
 =?utf-8?B?WkZCVDd3dlNtdGFsMmk3RUc2RE5rWllUWks3QkhjeUNrZHY1QmMveVhaZGNk?=
 =?utf-8?B?QXNjQU1wZUh4cUNBVVN2b1NLOHBldUpyZTZZZ010RUR1UW9kOFA5OE9DMDNW?=
 =?utf-8?B?ekJ1VHE3WVRlMXpoK2tHK1poVVNzWWZ1TjVVUC83SjhqOHRkN1ZJTVZvbVBF?=
 =?utf-8?B?UHh5cXYvNHA5aGR1YVQ2RktidUV3dzZDWFR1QVFtR1QzZWJza2JoZ1ZsNGVT?=
 =?utf-8?B?MnVNS0Yrb3lDdGEvZGNBalgxOFl1anV6V1dNNk4wWHJLV0ZNYUV2VWtsVjEz?=
 =?utf-8?B?VDVXZ0xxLy91YmsyU2puTXU5OU1qbUZ2ek5xZ0plNDRtVk9sWGNqZDV4Mjlq?=
 =?utf-8?B?enJMWC85VVJkajdIL0FseEQrS01UeWQrQlZ3am83OXI1UEVQTFc2TmM3bDFz?=
 =?utf-8?B?cVQ4WHM5cFlmOGNEd3p5NjN1SnpjbHJ0Z3VmYU5tNTRkZVQxTHNOSStMZ1Ru?=
 =?utf-8?B?Y082Y1h4M1FJMFVtQ1V6a281TFAwNTJZVXEwdjlqVmltWGxseU9KL2hldGpO?=
 =?utf-8?Q?ekl0=3D?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: marvell.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: CO6PR18MB4484.namprd18.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 0d168e09-6ee1-4fc9-7e0b-08dcd7461736
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Sep 2024 18:25:21.6817 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Cmmf9ISduoxzEuJNM5wBbD/6eBj4GpHYNe6XTSYCwuUsjLZRu/2/3RDb6okn7aq31fZotWCoBR4JLL9pOAo6xQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR18MB4019
X-Proofpoint-GUID: 4FMT-Pdi_R8rfZmm6Mx3iWoAWlRYyqtA
X-Proofpoint-ORIG-GUID: XYhuuqfPYk2lhS1oB463vlxOHlYqXIrd
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29
 definitions=2024-09-06_09,2024-09-06_01,2024-09-02_01
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

PiBBZGQgbmV3IGZpbGUgenNkYV9zeW1fcG1kLmMsIHpzZGFfc3ltX3BtZC5oIGluIGRyaXZlcnMv
Y3J5cHRvL3pzZGENCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEhhbnhpYW8gTGkgPGxpLmhhbnhpYW9A
enRlLmNvbS5jbj4NCg0KDQpQbGVhc2Ugc3BsaXQgdGhlIHBhdGNoZXMgYXBwcm9wcmlhdGVseSBm
b3IgYmV0dGVyIHJldmlldy4NClBsZWFzZSBmb2xsb3cNCmh0dHBzOi8vcGF0Y2hlcy5kcGRrLm9y
Zy9wcm9qZWN0L2RwZGsvcGF0Y2gvMjAyNDA5MTYxNjI4NTYuMTE1NjYtMS1zdGVwaGVuQG5ldHdv
cmtwbHVtYmVyLm9yZy8NCj4gLS0tDQo+ICBkcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX2Nh
cGFiaWxpdGllcy5oIHwgMTEyICsrKysrDQo+ICBkcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3lt
X3BtZC5jICAgICAgICAgIHwgNDI5ICsrKysrKysrKysrKysrKysrKysrDQo+ICBkcml2ZXJzL2Ny
eXB0by96c2RhL3pzZGFfc3ltX3BtZC5oICAgICAgICAgIHwgIDM1ICsrDQo+ICAzIGZpbGVzIGNo
YW5nZWQsIDU3NiBpbnNlcnRpb25zKCspDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9j
cnlwdG8venNkYS96c2RhX3N5bV9jYXBhYmlsaXRpZXMuaA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0
IGRyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fcG1kLmMNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0
NCBkcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5oDQo+IA0KPiBkaWZmIC0tZ2l0IGEv
ZHJpdmVycy9jcnlwdG8venNkYS96c2RhX3N5bV9jYXBhYmlsaXRpZXMuaA0KPiBiL2RyaXZlcnMv
Y3J5cHRvL3pzZGEvenNkYV9zeW1fY2FwYWJpbGl0aWVzLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2
NDQNCj4gaW5kZXggMDAwMDAwMDAwMC4uZGQzODdiMzZhZA0KPiAtLS0gL2Rldi9udWxsDQo+ICsr
KyBiL2RyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fY2FwYWJpbGl0aWVzLmgNCj4gQEAgLTAs
MCArMSwxMTIgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UN
Cj4gKyAqIENvcHlyaWdodChjKSAyMDI0IFpURSBDb3Jwb3JhdGlvbg0KPiArICovDQo+ICsNCj4g
KyNpZm5kZWYgX1pTREFfU1lNX0NBUEFCSUxJVElFU19IXw0KPiArI2RlZmluZSBfWlNEQV9TWU1f
Q0FQQUJJTElUSUVTX0hfDQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rl
dl9jYXBhYmlsaXRpZXMgenNkYV9jcnlwdG9fc3ltX2NhcGFiaWxpdGllc1tdID0gew0KPiArICAg
IHsvKiBTSEExICovDQo+ICsgICAgICAgIC5vcCA9IFJURV9DUllQVE9fT1BfVFlQRV9TWU1NRVRS
SUMsDQo+ICsgICAgICAgIHsgLnN5bSA9IHsueGZvcm1fdHlwZSA9IFJURV9DUllQVE9fU1lNX1hG
T1JNX0FVVEgsDQo+ICsgICAgICAgICAgICB7IC5hdXRoID0gew0KPiArICAgICAgICAgICAgICAg
IC5hbGdvID0gUlRFX0NSWVBUT19BVVRIX1NIQTEsDQo+ICsgICAgICAgICAgICAgICAgLmJsb2Nr
X3NpemUgPSA2NCwNCj4gKyAgICAgICAgICAgICAgICAua2V5X3NpemUgPSB7Lm1pbiA9IDAsIC5t
YXggPSAwLCAuaW5jcmVtZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAgICAgLmRpZ2VzdF9zaXpl
ID0gey5taW4gPSAyMCwgLm1heCA9IDIwLCAuaW5jcmVtZW50ID0gMn0sDQo+ICsgICAgICAgICAg
ICAgICAgLml2X3NpemUgPSB7MH0gfSwNCj4gKyAgICAgICAgICAgIH0gICAgfSwNCj4gKyAgICAg
ICAgfQ0KPiArICAgIH0sDQo+ICsgICAgey8qIFNIQTIyNCAqLw0KPiArICAgICAgICAub3AgPSBS
VEVfQ1JZUFRPX09QX1RZUEVfU1lNTUVUUklDLA0KPiArICAgICAgICB7IC5zeW0gPSB7DQo+ICsg
ICAgICAgICAgICAueGZvcm1fdHlwZSA9IFJURV9DUllQVE9fU1lNX1hGT1JNX0FVVEgsDQo+ICsg
ICAgICAgICAgICB7IC5hdXRoID0gew0KPiArICAgICAgICAgICAgICAgIC5hbGdvID0gUlRFX0NS
WVBUT19BVVRIX1NIQTIyNCwNCj4gKyAgICAgICAgICAgICAgICAuYmxvY2tfc2l6ZSA9IDY0LA0K
PiArICAgICAgICAgICAgICAgIC5rZXlfc2l6ZSA9IHsubWluID0gMCwgLm1heCA9IDAsIC5pbmNy
ZW1lbnQgPSAwfSwNCj4gKyAgICAgICAgICAgICAgICAuZGlnZXN0X3NpemUgPSB7Lm1pbiA9IDI4
LCAubWF4ID0gMjgsIC5pbmNyZW1lbnQgPSAwfSwNCj4gKyAgICAgICAgICAgICAgICAuaXZfc2l6
ZSA9IHswfSB9LA0KPiArICAgICAgICAgICAgfSAgICB9LA0KPiArICAgICAgICB9DQo+ICsgICAg
fSwNCj4gKyAgICB7LyogU0hBMjU2ICovDQo+ICsgICAgICAgIC5vcCA9IFJURV9DUllQVE9fT1Bf
VFlQRV9TWU1NRVRSSUMsDQo+ICsgICAgICAgIHsgLnN5bSA9IHsNCj4gKyAgICAgICAgICAgIC54
Zm9ybV90eXBlID0gUlRFX0NSWVBUT19TWU1fWEZPUk1fQVVUSCwNCj4gKyAgICAgICAgICAgIHsg
LmF1dGggPSB7DQo+ICsgICAgICAgICAgICAgICAgLmFsZ28gPSBSVEVfQ1JZUFRPX0FVVEhfU0hB
MjU2LA0KPiArICAgICAgICAgICAgICAgIC5ibG9ja19zaXplID0gNjQsDQo+ICsgICAgICAgICAg
ICAgICAgLmtleV9zaXplID0gey5taW4gPSAwLCAubWF4ID0gMCwgLmluY3JlbWVudCA9IDB9LA0K
PiArICAgICAgICAgICAgICAgIC5kaWdlc3Rfc2l6ZSA9IHsubWluID0gMzIsIC5tYXggPSAzMiwg
LmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAgICAgICAgIC5pdl9zaXplID0gezB9IH0sDQo+
ICsgICAgICAgICAgICB9IH0sDQo+ICsgICAgICAgIH0NCj4gKyAgICB9LA0KPiArICAgIHsvKiBT
SEEzODQgKi8NCj4gKyAgICAgICAgLm9wID0gUlRFX0NSWVBUT19PUF9UWVBFX1NZTU1FVFJJQywN
Cj4gKyAgICAgICAgeyAuc3ltID0gew0KPiArICAgICAgICAgICAgLnhmb3JtX3R5cGUgPSBSVEVf
Q1JZUFRPX1NZTV9YRk9STV9BVVRILA0KPiArICAgICAgICAgICAgeyAuYXV0aCA9IHsNCj4gKyAg
ICAgICAgICAgICAgICAuYWxnbyA9IFJURV9DUllQVE9fQVVUSF9TSEEzODQsDQo+ICsgICAgICAg
ICAgICAgICAgLmJsb2NrX3NpemUgPSAxMjgsDQo+ICsgICAgICAgICAgICAgICAgLmtleV9zaXpl
ID0gey5taW4gPSAwLCAubWF4ID0gMCwgLmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAgICAg
ICAgIC5kaWdlc3Rfc2l6ZSA9IHsubWluID0gNDgsIC5tYXggPSA0OCwgLmluY3JlbWVudCA9IDB9
LA0KPiArICAgICAgICAgICAgICAgIC5pdl9zaXplID0gezB9IH0sDQo+ICsgICAgICAgICAgICB9
IH0sDQo+ICsgICAgICAgIH0NCj4gKyAgICB9LA0KPiArICAgIHsvKiBTSEE1MTIgKi8NCj4gKyAg
ICAgICAgLm9wID0gUlRFX0NSWVBUT19PUF9UWVBFX1NZTU1FVFJJQywNCj4gKyAgICAgICAgeyAu
c3ltID0gew0KPiArICAgICAgICAgICAgLnhmb3JtX3R5cGUgPSBSVEVfQ1JZUFRPX1NZTV9YRk9S
TV9BVVRILA0KPiArICAgICAgICAgICAgeyAuYXV0aCA9IHsNCj4gKyAgICAgICAgICAgICAgICAu
YWxnbyA9IFJURV9DUllQVE9fQVVUSF9TSEE1MTIsDQo+ICsgICAgICAgICAgICAgICAgLmJsb2Nr
X3NpemUgPSAxMjgsDQo+ICsgICAgICAgICAgICAgICAgLmtleV9zaXplID0gey5taW4gPSAwLCAu
bWF4ID0gMCwgLmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAgICAgICAgIC5kaWdlc3Rfc2l6
ZSA9IHsubWluID0gNjQsIC5tYXggPSA2NCwgLmluY3JlbWVudCA9IDB9LA0KPiArICAgICAgICAg
ICAgICAgIC5pdl9zaXplID0gezB9IH0sDQo+ICsgICAgICAgICAgICB9IH0sDQo+ICsgICAgICAg
IH0NCj4gKyAgICB9LA0KPiArICAgIHsvKiBTTTMgKi8NCj4gKyAgICAgICAgLm9wID0gUlRFX0NS
WVBUT19PUF9UWVBFX1NZTU1FVFJJQywNCj4gKyAgICAgICAgeyAuc3ltID0gew0KPiArICAgICAg
ICAgICAgLnhmb3JtX3R5cGUgPSBSVEVfQ1JZUFRPX1NZTV9YRk9STV9BVVRILA0KPiArICAgICAg
ICAgICAgeyAuYXV0aCA9IHsNCj4gKyAgICAgICAgICAgICAgICAuYWxnbyA9IFJURV9DUllQVE9f
QVVUSF9TTTMsDQo+ICsgICAgICAgICAgICAgICAgLmJsb2NrX3NpemUgPSA2NCwNCj4gKyAgICAg
ICAgICAgICAgICAua2V5X3NpemUgPSB7Lm1pbiA9IDAsIC5tYXggPSAwLCAuaW5jcmVtZW50ID0g
MH0sDQo+ICsgICAgICAgICAgICAgICAgLmRpZ2VzdF9zaXplID0gey5taW4gPSAzMiwgLm1heCA9
IDMyLCAuaW5jcmVtZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAgICAgLml2X3NpemUgPSB7MH0g
fSwNCj4gKyAgICAgICAgICAgIH0gfSwNCj4gKyAgICAgICAgfQ0KPiArICAgIH0sDQo+ICsgICAg
ey8qIEFFUyBYVFMgKi8NCj4gKyAgICAgICAgLm9wID0gUlRFX0NSWVBUT19PUF9UWVBFX1NZTU1F
VFJJQywNCj4gKyAgICAgICAgeyAuc3ltID0gew0KPiArICAgICAgICAgICAgLnhmb3JtX3R5cGUg
PSBSVEVfQ1JZUFRPX1NZTV9YRk9STV9DSVBIRVIsDQo+ICsgICAgICAgICAgICB7IC5jaXBoZXIg
PSB7DQo+ICsgICAgICAgICAgICAgICAgLmFsZ28gPSBSVEVfQ1JZUFRPX0NJUEhFUl9BRVNfWFRT
LA0KPiArICAgICAgICAgICAgICAgIC5ibG9ja19zaXplID0gMTYsDQo+ICsgICAgICAgICAgICAg
ICAgLmtleV9zaXplID0gey5taW4gPSAxNiwgLm1heCA9IDMyLCAuaW5jcmVtZW50ID0gMTZ9LA0K
PiArICAgICAgICAgICAgICAgIC5pdl9zaXplID0gey5taW4gPSAxNiwgLm1heCA9IDE2LCAuaW5j
cmVtZW50ID0gMH0gfSwNCj4gKyAgICAgICAgICAgIH0gfSwNCj4gKyAgICAgICAgfQ0KPiArICAg
IH0sDQo+ICsgICAgey8qIFNNNCBYVFMgKi8NCj4gKyAgICAgICAgLm9wID0gUlRFX0NSWVBUT19P
UF9UWVBFX1NZTU1FVFJJQywNCj4gKyAgICAgICAgeyAuc3ltID0gew0KPiArICAgICAgICAgICAg
Lnhmb3JtX3R5cGUgPSBSVEVfQ1JZUFRPX1NZTV9YRk9STV9DSVBIRVIsDQo+ICsgICAgICAgICAg
ICB7IC5jaXBoZXIgPSB7DQo+ICsgICAgICAgICAgICAgICAgLmFsZ28gPSBSVEVfQ1JZUFRPX0NJ
UEhFUl9TTTRfWFRTLA0KPiArICAgICAgICAgICAgICAgIC5ibG9ja19zaXplID0gMTYsDQo+ICsg
ICAgICAgICAgICAgICAgLmtleV9zaXplID0gey5taW4gPSAzMiwgLm1heCA9IDMyLCAuaW5jcmVt
ZW50ID0gMH0sDQo+ICsgICAgICAgICAgICAgICAgLml2X3NpemUgPSB7Lm1pbiA9IDE2LCAubWF4
ID0gMTYsIC5pbmNyZW1lbnQgPSAwfSB9LA0KPiArICAgICAgICAgICAgfSB9LA0KPiArICAgICAg
ICB9DQo+ICsgICAgfQ0KPiArfTsNCj4gKyNlbmRpZiAvKiBfWlNEQV9TWU1fQ0FQQUJJTElUSUVT
X0hfICovDQo+ICsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3pzZGEvenNkYV9zeW1f
cG1kLmMNCj4gYi9kcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5jDQo+IG5ldyBmaWxl
IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAuLmFjNWE2M2I5NmUNCj4gLS0tIC9kZXYv
bnVsbA0KPiArKysgYi9kcml2ZXJzL2NyeXB0by96c2RhL3pzZGFfc3ltX3BtZC5jDQo+IEBAIC0w
LDAgKzEsNDI5IEBADQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNl
DQo+ICsgKiBDb3B5cmlnaHQoYykgMjAyNCBaVEUgQ29ycG9yYXRpb24NCj4gKyAqLw0KPiArDQo+
ICsjaW5jbHVkZSA8cnRlX2NyeXB0b2Rldi5oPg0KPiArDQo+ICsjaW5jbHVkZSAiY3J5cHRvZGV2
X3BtZC5oIg0KPiArI2luY2x1ZGUgInpzZGFfbG9ncy5oIg0KPiArI2luY2x1ZGUgInpzZGFfc3lt
LmgiDQo+ICsjaW5jbHVkZSAienNkYV9zeW1fcG1kLmgiDQo+ICsjaW5jbHVkZSAienNkYV9zeW1f
c2Vzc2lvbi5oIg0KPiArI2luY2x1ZGUgInpzZGFfc3ltX2NhcGFiaWxpdGllcy5oIg0KPiArDQo+
ICt1aW50OF90IHpzZGFfc3ltX2RyaXZlcl9pZDsNCj4gKw0KPiArc3RhdGljIGludA0KPiArenNk
YV9zeW1fZGV2X2NvbmZpZyhfX3J0ZV91bnVzZWQgc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiwN
Cj4gKyAgICAgICAgICAgIF9fcnRlX3VudXNlZCBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9jb25maWcg
KmNvbmZpZykNCj4gK3sNCj4gKyAgICByZXR1cm4gWlNEQV9TVUNDRVNTOw0KPiArfQ0KPiArDQo+
ICtzdGF0aWMgaW50IHpzZGFfc3ltX3FwX3JlbGVhc2Uoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRl
diwNCj4gKyAgICAgICAgICAgICAgICB1aW50MTZfdCBxdWV1ZV9wYWlyX2lkKTsNCj4gKw0KPiAr
c3RhdGljIGludA0KPiArenNkYV9zeW1fZGV2X3N0YXJ0KHN0cnVjdCBydGVfY3J5cHRvZGV2ICpk
ZXYpDQo+ICt7DQo+ICsgICAgc3RydWN0IHpzZGFfc3ltX2Rldl9wcml2YXRlICpzeW1fZGV2ID0g
ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gKyAgICBpbnQgcmV0ID0gMDsNCj4gKw0KPiArICAg
IHJldCA9IHpzZGFfcXVldWVfc3RhcnQoc3ltX2Rldi0+enNkYV9wY2lfZGV2LT5wY2lfZGV2KTsN
Cj4gKw0KPiArICAgIGlmIChyZXQpDQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwgRV9TVEFSVF9R
KTsNCj4gKyAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArenNk
YV9zeW1fZGV2X3N0b3Aoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldikNCj4gK3sNCj4gKyAgICBz
dHJ1Y3QgenNkYV9zeW1fZGV2X3ByaXZhdGUgKnN5bV9kZXYgPSBkZXYtPmRhdGEtPmRldl9wcml2
YXRlOw0KPiArDQo+ICsgICAgenNkYV9xdWV1ZV9zdG9wKHN5bV9kZXYtPnpzZGFfcGNpX2Rldi0+
cGNpX2Rldik7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc3ltX2Rldl9jbG9z
ZShzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2KQ0KPiArew0KPiArICAgIGludCByZXQgPSAwOw0K
PiArICAgIHVpbnQxNl90IGk7DQo+ICsNCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRh
LT5uYl9xdWV1ZV9wYWlyczsgaSsrKQ0KPiArICAgICAgICByZXQgfD0genNkYV9zeW1fcXBfcmVs
ZWFzZShkZXYsIGkpOw0KPiArDQo+ICsgICAgcmV0dXJuIHJldDsNCj4gK30NCj4gKw0KPiArc3Rh
dGljIHZvaWQNCj4gK3pzZGFfc3ltX2Rldl9pbmZvX2dldChzdHJ1Y3QgcnRlX2NyeXB0b2RldiAq
ZGV2LA0KPiArICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9pbmZvICppbmZvKQ0K
PiArew0KPiArICAgIHN0cnVjdCB6c2RhX3N5bV9kZXZfcHJpdmF0ZSAqc3ltX3ByaXYgPSBkZXYt
PmRhdGEtPmRldl9wcml2YXRlOw0KPiArDQo+ICsgICAgaWYgKGluZm8gIT0gTlVMTCkgew0KPiAr
ICAgICAgICBpbmZvLT5tYXhfbmJfcXVldWVfcGFpcnMgPQ0KPiArICAgICAgICAgICAgenNkYV9j
cnlwdG9fbWF4X25iX3FwcyhzeW1fcHJpdi0+enNkYV9wY2lfZGV2KTsNCj4gKyAgICAgICAgaW5m
by0+ZmVhdHVyZV9mbGFncyA9IGRldi0+ZmVhdHVyZV9mbGFnczsNCj4gKyAgICAgICAgaW5mby0+
Y2FwYWJpbGl0aWVzID0gc3ltX3ByaXYtPnpzZGFfZGV2X2NhcGFiaWxpdGllczsNCj4gKyAgICAg
ICAgaW5mby0+ZHJpdmVyX2lkID0genNkYV9zeW1fZHJpdmVyX2lkOw0KPiArICAgICAgICBpbmZv
LT5zeW0ubWF4X25iX3Nlc3Npb25zID0gMDsNCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gK3N0YXRp
YyB2b2lkDQo+ICt6c2RhX3N5bV9zdGF0c19nZXQoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiwg
c3RydWN0IHJ0ZV9jcnlwdG9kZXZfc3RhdHMNCj4gKnN0YXRzKQ0KPiArew0KPiArICAgIHN0cnVj
dCB6c2RhX2NvbW1vbl9zdGF0IGNvbW0gPSB7MH07DQo+ICsNCj4gKyAgICB6c2RhX3N0YXRzX2dl
dChkZXYtPmRhdGEtPnF1ZXVlX3BhaXJzLCBkZXYtPmRhdGEtPm5iX3F1ZXVlX3BhaXJzLA0KPiAr
ICAgICAgICAgICAgICAgJmNvbW0pOw0KPiArICAgIHN0YXRzLT5lbnF1ZXVlZF9jb3VudCA9IGNv
bW0uZW5xdWV1ZWRfY291bnQ7DQo+ICsgICAgc3RhdHMtPmRlcXVldWVkX2NvdW50ID0gY29tbS5k
ZXF1ZXVlZF9jb3VudDsNCj4gKyAgICBzdGF0cy0+ZW5xdWV1ZV9lcnJfY291bnQgPSBjb21tLmVu
cXVldWVfZXJyX2NvdW50Ow0KPiArICAgIHN0YXRzLT5kZXF1ZXVlX2Vycl9jb3VudCA9IGNvbW0u
ZGVxdWV1ZV9lcnJfY291bnQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICt6c2RhX3N5
bV9zdGF0c19yZXNldChzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2KQ0KPiArew0KPiArICAgIHpz
ZGFfc3RhdHNfcmVzZXQoZGV2LT5kYXRhLT5xdWV1ZV9wYWlycywgZGV2LT5kYXRhLT5uYl9xdWV1
ZV9wYWlycyk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc3ltX3FwX3JlbGVh
c2Uoc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKmRldiwgdWludDE2X3QgcXVldWVfcGFpcl9pZCkNCj4g
K3sNCj4gKyAgICBaU0RBX0xPRyhERUJVRywgIlJlbGVhc2Ugc3ltIHFwICV1IG9uIGRldmljZSAl
ZCIsIHF1ZXVlX3BhaXJfaWQsDQo+ICsgICAgICAgICBkZXYtPmRhdGEtPmRldl9pZCk7DQo+ICsN
Cj4gKyAgICByZXR1cm4genNkYV9xdWV1ZV9wYWlyX3JlbGVhc2UoDQo+ICsgICAgICAgIChzdHJ1
Y3QgenNkYV9xcCAqKikmKGRldi0+ZGF0YS0+cXVldWVfcGFpcnNbcXVldWVfcGFpcl9pZF0pKTsN
Cj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArenNkYV9zZXR1cF9lbmNyeXB0b19xdWV1ZShz
dHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6c2RhX3BjaV9kZXYsIHVpbnQxNl90DQo+IHFwX2lkLA0K
PiArICAgICAgICAgICAgIHN0cnVjdCB6c2RhX3FwICpxcCwgdWludDMyX3QgbmJfZGVzLCBpbnQg
c29ja2V0X2lkKQ0KPiArew0KPiArICAgIGVudW0genNkYV9zZXJ2aWNlX3R5cGUgdHlwZSA9IFpT
REFfU0VSVklDRV9TWU1NRVRSSUNfRU5DUllQVDsNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcF9jb25m
aWcgY29uZjsNCj4gKyAgICBpbnQgcmV0ID0gMDsNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcF9odyAq
cXBfaHc7DQo+ICsNCj4gKyAgICBxcF9odyA9IHpzZGFfcXBzX2h3X3Blcl9zZXJ2aWNlKHpzZGFf
cGNpX2RldiwgdHlwZSk7DQo+ICsgICAgY29uZi5odyA9IHFwX2h3LT5kYXRhICsgcXBfaWQ7DQo+
ICsgICAgY29uZi5zZXJ2aWNlX3R5cGUgPSB0eXBlOw0KPiArICAgIGNvbmYuY29va2llX3NpemUg
PSBzaXplb2Yoc3RydWN0IHpzZGFfb3BfY29va2llKTsNCj4gKyAgICBjb25mLm5iX2Rlc2NyaXB0
b3JzID0gbmJfZGVzOw0KPiArICAgIGNvbmYuc29ja2V0X2lkID0gc29ja2V0X2lkOw0KPiArICAg
IGNvbmYuc2VydmljZV9zdHIgPSAic3ltX2VuY3J5cHQiOw0KPiArDQo+ICsgICAgcmV0ID0genNk
YV9jb21tb25fc2V0dXBfcXAoenNkYV9wY2lfZGV2LT56c2RhX2Rldl9pZCwgJnFwLCBxcF9pZCwN
Cj4gJmNvbmYpOw0KPiArICAgIHFwLT5zcnZbdHlwZV0ucnhfY2IgPSB6c2RhX2NyeXB0b19jYWxs
YmFjazsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLnR4X2NiID0genNkYV9idWlsZF9jaXBoZXJfcmVx
dWVzdDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLm1hdGNoID0genNkYV9lbmNyeV9tYXRjaDsNCj4g
Kw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFf
c2V0dXBfZGVjcnlwdG9fcXVldWUoc3RydWN0IHpzZGFfcGNpX2RldmljZSAqenNkYV9wY2lfZGV2
LCB1aW50MTZfdA0KPiBxcF9pZCwNCj4gKyAgICAgICAgICAgICBzdHJ1Y3QgenNkYV9xcCAqcXAs
IHVpbnQzMl90IG5iX2RlcywgaW50IHNvY2tldF9pZCkNCj4gK3sNCj4gKyAgICBlbnVtIHpzZGFf
c2VydmljZV90eXBlIHR5cGUgPSBaU0RBX1NFUlZJQ0VfU1lNTUVUUklDX0RFQ1JZUFQ7DQo+ICsg
ICAgc3RydWN0IHpzZGFfcXBfY29uZmlnIGNvbmY7DQo+ICsgICAgaW50IHJldCA9IDA7DQo+ICsg
ICAgc3RydWN0IHpzZGFfcXBfaHcgKnFwX2h3Ow0KPiArDQo+ICsgICAgcXBfaHcgPSB6c2RhX3Fw
c19od19wZXJfc2VydmljZSh6c2RhX3BjaV9kZXYsIHR5cGUpOw0KPiArICAgIGNvbmYuaHcgPSBx
cF9ody0+ZGF0YSArIHFwX2lkOw0KPiArICAgIGNvbmYuc2VydmljZV90eXBlID0gdHlwZTsNCj4g
Kw0KPiArICAgIGNvbmYuY29va2llX3NpemUgPSBzaXplb2Yoc3RydWN0IHpzZGFfb3BfY29va2ll
KTsNCj4gKyAgICBjb25mLm5iX2Rlc2NyaXB0b3JzID0gbmJfZGVzOw0KPiArICAgIGNvbmYuc29j
a2V0X2lkID0gc29ja2V0X2lkOw0KPiArICAgIGNvbmYuc2VydmljZV9zdHIgPSAic3ltX2RlY3J5
cHQiOw0KPiArDQo+ICsgICAgcmV0ID0genNkYV9jb21tb25fc2V0dXBfcXAoenNkYV9wY2lfZGV2
LT56c2RhX2Rldl9pZCwgJnFwLCBxcF9pZCwNCj4gJmNvbmYpOw0KPiArICAgIHFwLT5zcnZbdHlw
ZV0ucnhfY2IgPSB6c2RhX2NyeXB0b19jYWxsYmFjazsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLnR4
X2NiID0genNkYV9idWlsZF9jaXBoZXJfcmVxdWVzdDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLm1h
dGNoID0genNkYV9kZWNyeV9tYXRjaDsNCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+
ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc2V0dXBfaGFzaF9xdWV1ZShzdHJ1Y3QgenNkYV9w
Y2lfZGV2aWNlICp6c2RhX3BjaV9kZXYsIHVpbnQxNl90IHFwX2lkLA0KPiArICAgICAgICAgc3Ry
dWN0IHpzZGFfcXAgKnFwLCB1aW50MzJfdCBuYl9kZXMsIGludCBzb2NrZXRfaWQpDQo+ICt7DQo+
ICsgICAgZW51bSB6c2RhX3NlcnZpY2VfdHlwZSB0eXBlID0gWlNEQV9TRVJWSUNFX0hBU0hfRU5D
T0RFOw0KPiArICAgIHN0cnVjdCB6c2RhX3FwX2NvbmZpZyBjb25mOw0KPiArICAgIGludCByZXQg
PSAwOw0KPiArICAgIHN0cnVjdCB6c2RhX3FwX2h3ICpxcF9odzsNCj4gKw0KPiArICAgIHFwX2h3
ID0genNkYV9xcHNfaHdfcGVyX3NlcnZpY2UoenNkYV9wY2lfZGV2LCB0eXBlKTsNCj4gKyAgICBj
b25mLmh3ID0gcXBfaHctPmRhdGEgKyBxcF9pZDsNCj4gKyAgICBjb25mLnNlcnZpY2VfdHlwZSA9
IHR5cGU7DQo+ICsgICAgY29uZi5jb29raWVfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgenNkYV9vcF9j
b29raWUpOw0KPiArICAgIGNvbmYubmJfZGVzY3JpcHRvcnMgPSBuYl9kZXM7DQo+ICsgICAgY29u
Zi5zb2NrZXRfaWQgPSBzb2NrZXRfaWQ7DQo+ICsgICAgY29uZi5zZXJ2aWNlX3N0ciA9ICJzeW1f
aGFzaCI7DQo+ICsNCj4gKyAgICByZXQgPSB6c2RhX2NvbW1vbl9zZXR1cF9xcCh6c2RhX3BjaV9k
ZXYtPnpzZGFfZGV2X2lkLCAmcXAsIHFwX2lkLA0KPiAmY29uZik7DQo+ICsgICAgcXAtPnNydlt0
eXBlXS5yeF9jYiA9IHpzZGFfY3J5cHRvX2NhbGxiYWNrOw0KPiArICAgIHFwLT5zcnZbdHlwZV0u
dHhfY2IgPSB6c2RhX2J1aWxkX2hhc2hfcmVxdWVzdDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLm1h
dGNoID0genNkYV9oYXNoX21hdGNoOw0KPiArDQo+ICsgICAgcmV0dXJuIHJldDsNCj4gK30NCj4g
Kw0KPiArc3RhdGljIGludA0KPiArenNkYV9zeW1fcXBfc2V0dXAoc3RydWN0IHJ0ZV9jcnlwdG9k
ZXYgKmRldiwgdWludDE2X3QgcXBfaWQsDQo+ICsgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9j
cnlwdG9kZXZfcXBfY29uZiAqcXBfY29uZiwNCj4gKyAgICAgICAgICBpbnQgc29ja2V0X2lkKQ0K
PiArew0KPiArICAgIGludCByZXQgPSAwOw0KPiArICAgIHN0cnVjdCB6c2RhX3FwICpxcF9uZXc7
DQo+ICsNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcCAqKnFwX2FkZHIgPQ0KPiArICAgICAgICAoc3Ry
dWN0IHpzZGFfcXAgKiopJihkZXYtPmRhdGEtPnF1ZXVlX3BhaXJzW3FwX2lkXSk7DQo+ICsgICAg
c3RydWN0IHpzZGFfc3ltX2Rldl9wcml2YXRlICpzeW1fcHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3By
aXZhdGU7DQo+ICsgICAgc3RydWN0IHpzZGFfcGNpX2RldmljZSAqenNkYV9wY2lfZGV2ID0gc3lt
X3ByaXYtPnpzZGFfcGNpX2RldjsNCj4gKyAgICB1aW50MTZfdCBudW1fcXBzX2VuY3J5cHQgPSB6
c2RhX3Fwc19wZXJfc2VydmljZSgNCj4gKyAgICAgICAgenNkYV9wY2lfZGV2LCBaU0RBX1NFUlZJ
Q0VfU1lNTUVUUklDX0VOQ1JZUFQpOw0KPiArICAgIHVpbnQxNl90IG51bV9xcHNfZGVjcnlwdCA9
IHpzZGFfcXBzX3Blcl9zZXJ2aWNlKA0KPiArICAgICAgICB6c2RhX3BjaV9kZXYsIFpTREFfU0VS
VklDRV9TWU1NRVRSSUNfREVDUllQVCk7DQo+ICsgICAgdWludDE2X3QgbnVtX3Fwc19oYXNoID0g
enNkYV9xcHNfcGVyX3NlcnZpY2UoDQo+ICsgICAgICAgIHpzZGFfcGNpX2RldiwgWlNEQV9TRVJW
SUNFX0hBU0hfRU5DT0RFKTsNCj4gKw0KPiArICAgIHVpbnQzMl90IG5iX2RlcyA9IHFwX2NvbmYt
Pm5iX2Rlc2NyaXB0b3JzOw0KPiArICAgIG5iX2RlcyA9IChuYl9kZXMgPT0gTkJfREVTKSA/IG5i
X2RlcyA6IE5CX0RFUzsNCj4gKw0KPiArICAgIGlmICgqcXBfYWRkciAhPSBOVUxMKSB7DQo+ICsg
ICAgICAgIHJldCA9IHpzZGFfc3ltX3FwX3JlbGVhc2UoZGV2LCBxcF9pZCk7DQo+ICsgICAgICAg
IGlmIChyZXQpDQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgIH0NCj4gKw0KPiAr
ICAgIHFwX25ldyA9IHJ0ZV96bWFsbG9jX3NvY2tldCgienNkYSBQTUQgcXAgbWV0YWRhdGEiLCBz
aXplb2YoKnFwX25ldyksDQo+ICsgICAgICAgICAgICAgICAgICAgIFJURV9DQUNIRV9MSU5FX1NJ
WkUsIHNvY2tldF9pZCk7DQo+ICsgICAgaWYgKHFwX25ldyA9PSBOVUxMKSB7DQo+ICsgICAgICAg
IFpTREFfTE9HKEVSUiwgIkZhaWxlZCB0byBhbGxvYyBtZW0gZm9yIHFwIHN0cnVjdCIpOw0KPiAr
ICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBpZiAobnVtX3Fw
c19lbmNyeXB0ID09IE1BWF9RUFNfT05fRlVOQ1RJT04pDQo+ICsgICAgICAgIHJldCA9IHpzZGFf
c2V0dXBfZW5jcnlwdG9fcXVldWUoenNkYV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBuYl9kZXMs
DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXRfaWQpOw0KPiArICAgIGVsc2UgaWYg
KG51bV9xcHNfZGVjcnlwdCA9PSBNQVhfUVBTX09OX0ZVTkNUSU9OKQ0KPiArICAgICAgICByZXQg
PSB6c2RhX3NldHVwX2RlY3J5cHRvX3F1ZXVlKHpzZGFfcGNpX2RldiwgcXBfaWQsIHFwX25ldywg
bmJfZGVzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0X2lkKTsNCj4gKyAgICBl
bHNlIGlmIChudW1fcXBzX2hhc2ggPT0gTUFYX1FQU19PTl9GVU5DVElPTikNCj4gKyAgICAgICAg
cmV0ID0genNkYV9zZXR1cF9oYXNoX3F1ZXVlKHpzZGFfcGNpX2RldiwgcXBfaWQsIHFwX25ldywg
bmJfZGVzLA0KPiArICAgICAgICAgICAgICAgICAgICBzb2NrZXRfaWQpOw0KPiArICAgIGVsc2Ug
ew0KPiArICAgICAgICByZXQgPSB6c2RhX3NldHVwX2VuY3J5cHRvX3F1ZXVlKHpzZGFfcGNpX2Rl
diwgcXBfaWQsIHFwX25ldywgbmJfZGVzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgc29j
a2V0X2lkKTsNCj4gKyAgICAgICAgcmV0IHw9IHpzZGFfc2V0dXBfZGVjcnlwdG9fcXVldWUoenNk
YV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBuYl9kZXMsDQo+ICsgICAgICAgICAgICAgICAgICAg
ICAgICBzb2NrZXRfaWQpOw0KPiArICAgICAgICByZXQgfD0genNkYV9zZXR1cF9oYXNoX3F1ZXVl
KHpzZGFfcGNpX2RldiwgcXBfaWQsIHFwX25ldywgbmJfZGVzLA0KPiArICAgICAgICAgICAgICAg
ICAgICBzb2NrZXRfaWQpOw0KPiArICAgIH0NCj4gKw0KPiArICAgIGlmIChyZXQpIHsNCj4gKyAg
ICAgICAgcnRlX2ZyZWUocXBfbmV3KTsNCj4gKyAgICAgICAgcmV0dXJuIHJldDsNCj4gKyAgICB9
DQo+ICsNCj4gKyAgICBxcF9uZXctPm1tYXBfYmFyX2FkZHIgPQ0KPiArICAgICAgICBzeW1fcHJp
di0+enNkYV9wY2lfZGV2LT5wY2lfZGV2LT5tZW1fcmVzb3VyY2VbMF0uYWRkcjsNCj4gKyAgICAq
cXBfYWRkciA9IHFwX25ldzsNCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4g
K3N0YXRpYyB1bnNpZ25lZCBpbnQNCj4gK3pzZGFfc3ltX3Nlc3Npb25fZ2V0X3ByaXZhdGVfc2l6
ZShzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2IF9fcnRlX3VudXNlZCkNCj4gK3sNCj4gKyAgICBy
ZXR1cm4gUlRFX0FMSUdOX0NFSUwoc2l6ZW9mKHN0cnVjdCB6c2RhX3N5bV9zZXNzaW9uKSwgOCk7
DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfc3ltX3Nlc3Npb25fY29uZmlndXJl
KHN0cnVjdCBydGVfY3J5cHRvZGV2ICpkZXYgX19ydGVfdW51c2VkLA0KPiArICAgICAgICAgICAg
ICAgc3RydWN0IHJ0ZV9jcnlwdG9fc3ltX3hmb3JtICp4Zm9ybSwNCj4gKyAgICAgICAgICAgICAg
IHN0cnVjdCBydGVfY3J5cHRvZGV2X3N5bV9zZXNzaW9uICpzZXNzKQ0KPiArew0KPiArICAgIHZv
aWQgKnNlc3NfcHJpdmF0ZV9kYXRhOw0KPiArICAgIGludCByZXQgPSAwOw0KPiArDQo+ICsgICAg
aWYgKHVubGlrZWx5KHNlc3MgPT0gTlVMTCkpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAi
SW52YWxpZCBzZXNzaW9uIHN0cnVjdCIpOw0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4g
KyAgICB9DQo+ICsNCj4gKyAgICBzZXNzX3ByaXZhdGVfZGF0YSA9IENSWVBUT0RFVl9HRVRfU1lN
X1NFU1NfUFJJVihzZXNzKTsNCj4gKw0KPiArICAgIHJldCA9IHpzZGFfY3J5cHRvX3NldF9zZXNz
aW9uX3BhcmFtZXRlcnMoDQo+ICsgICAgICAgICAgICBzZXNzX3ByaXZhdGVfZGF0YSwgeGZvcm0p
Ow0KPiArDQo+ICsgICAgaWYgKHJldCAhPSAwKSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwg
IkZhaWxlZCBjb25maWd1cmUgc2Vzc2lvbiBwYXJhbWV0ZXJzIik7DQo+ICsgICAgICAgIHJldHVy
biByZXQ7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0
YXRpYyB2b2lkDQo+ICt6c2RhX3N5bV9zZXNzaW9uX2NsZWFyKHN0cnVjdCBydGVfY3J5cHRvZGV2
ICpkZXYgX19ydGVfdW51c2VkLA0KPiArICAgICAgICAgICAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZf
c3ltX3Nlc3Npb24gICpzZXNzIF9fcnRlX3VudXNlZCkNCj4gK3t9DQo+ICsNCj4gK3N0YXRpYyBz
dHJ1Y3QgcnRlX2NyeXB0b2Rldl9vcHMgY3J5cHRvX3pzZGFfb3BzID0gew0KPiArDQo+ICsgICAg
LmRldl9jb25maWd1cmUgPSB6c2RhX3N5bV9kZXZfY29uZmlnLA0KPiArICAgIC5kZXZfc3RhcnQg
PSB6c2RhX3N5bV9kZXZfc3RhcnQsDQo+ICsgICAgLmRldl9zdG9wID0genNkYV9zeW1fZGV2X3N0
b3AsDQo+ICsgICAgLmRldl9jbG9zZSA9IHpzZGFfc3ltX2Rldl9jbG9zZSwNCj4gKyAgICAuZGV2
X2luZm9zX2dldCA9IHpzZGFfc3ltX2Rldl9pbmZvX2dldCwNCj4gKw0KPiArICAgIC5zdGF0c19n
ZXQgPSB6c2RhX3N5bV9zdGF0c19nZXQsDQo+ICsgICAgLnN0YXRzX3Jlc2V0ID0genNkYV9zeW1f
c3RhdHNfcmVzZXQsDQo+ICsgICAgLnF1ZXVlX3BhaXJfc2V0dXAgPSB6c2RhX3N5bV9xcF9zZXR1
cCwNCj4gKyAgICAucXVldWVfcGFpcl9yZWxlYXNlID0genNkYV9zeW1fcXBfcmVsZWFzZSwNCj4g
Kw0KPiArICAgIC5zeW1fc2Vzc2lvbl9nZXRfc2l6ZSA9IHpzZGFfc3ltX3Nlc3Npb25fZ2V0X3By
aXZhdGVfc2l6ZSwNCj4gKyAgICAuc3ltX3Nlc3Npb25fY29uZmlndXJlID0genNkYV9zeW1fc2Vz
c2lvbl9jb25maWd1cmUsDQo+ICsgICAgLnN5bV9zZXNzaW9uX2NsZWFyID0genNkYV9zeW1fc2Vz
c2lvbl9jbGVhciwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyB1aW50MTZfdA0KPiArenNkYV9zeW1f
cG1kX2VucXVldWVfb3BfYnVyc3Qodm9pZCAqcXAsIHN0cnVjdCBydGVfY3J5cHRvX29wICoqb3Bz
LA0KPiArICAgICAgICAgICAgICAgICAgdWludDE2X3QgbmJfb3BzKQ0KPiArew0KPiArICAgIHJl
dHVybiB6c2RhX2VucXVldWVfb3BfYnVyc3QoKHN0cnVjdCB6c2RhX3FwICopcXAsICh2b2lkICoq
KW9wcywNCj4gKyAgICAgICAgICAgICAgICAgICAgIG5iX29wcyk7DQo+ICt9DQo+ICsNCj4gK3N0
YXRpYyB1aW50MTZfdA0KPiArenNkYV9zeW1fcG1kX2RlcXVldWVfb3BfYnVyc3Qodm9pZCAqcXAs
IHN0cnVjdCBydGVfY3J5cHRvX29wICoqb3BzLA0KPiArICAgICAgICAgICAgICAgICAgdWludDE2
X3QgbmJfb3BzKQ0KPiArew0KPiArICAgIHJldHVybiB6c2RhX2RlcXVldWVfb3BfYnVyc3QoKHN0
cnVjdCB6c2RhX3FwICopcXAsICh2b2lkICoqKW9wcywNCj4gKyAgICAgICAgICAgICAgICAgICAg
IG5iX29wcyk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBjaGFyIHpzZGFfc3ltX2Rydl9u
YW1lW10gPQ0KPiBSVEVfU1RSKENSWVBUT0RFVl9OQU1FX1pTREFfU1lNX1BNRCk7DQo+ICtzdGF0
aWMgY29uc3Qgc3RydWN0IHJ0ZV9kcml2ZXIgY3J5cHRvZGV2X3pzZGFfc3ltX2RyaXZlciA9IHsN
Cj4gKyAgICAubmFtZSA9IHpzZGFfc3ltX2Rydl9uYW1lLCAuYWxpYXMgPSB6c2RhX3N5bV9kcnZf
bmFtZX07DQo+ICsNCj4gK2ludA0KPiArenNkYV9zeW1fZGV2X2NyZWF0ZShzdHJ1Y3QgenNkYV9w
Y2lfZGV2aWNlICp6c2RhX3BjaV9kZXYpDQo+ICt7DQo+ICsgICAgaW50IHJldCA9IDA7DQo+ICsg
ICAgc3RydWN0IHpzZGFfZGV2aWNlX2luZm8gKmRldl9pbmZvID0NCj4gKyAgICAgICAgJnpzZGFf
ZGV2c1t6c2RhX3BjaV9kZXYtPnpzZGFfZGV2X2lkXTsNCj4gKw0KPiArICAgIHN0cnVjdCBydGVf
Y3J5cHRvZGV2X3BtZF9pbml0X3BhcmFtcyBpbml0X3BhcmFtcyA9IHsNCj4gKyAgICAgICAgLm5h
bWUgPSAiIiwNCj4gKyAgICAgICAgLnNvY2tldF9pZCA9IChpbnQpcnRlX3NvY2tldF9pZCgpLA0K
PiArICAgICAgICAucHJpdmF0ZV9kYXRhX3NpemUgPSBzaXplb2Yoc3RydWN0IHpzZGFfc3ltX2Rl
dl9wcml2YXRlKX07DQo+ICsNCj4gKyAgICBjaGFyIG5hbWVbUlRFX0NSWVBUT0RFVl9OQU1FX01B
WF9MRU5dOw0KPiArICAgIGNoYXIgY2FwYV9tZW16X25hbWVbUlRFX0NSWVBUT0RFVl9OQU1FX01B
WF9MRU5dOw0KPiArICAgIHN0cnVjdCBydGVfY3J5cHRvZGV2ICpjcnlwdG9kZXY7DQo+ICsgICAg
c3RydWN0IHpzZGFfc3ltX2Rldl9wcml2YXRlICpzeW1fcHJpdjsNCj4gKyAgICBjb25zdCBzdHJ1
Y3QgcnRlX2NyeXB0b2Rldl9jYXBhYmlsaXRpZXMgKmNhcGFiaWxpdGllczsNCj4gKyAgICB1aW50
NjRfdCBjYXBhX3NpemU7DQo+ICsNCj4gKyAgICBpbml0X3BhcmFtcy5tYXhfbmJfcXVldWVfcGFp
cnMgPSB6c2RhX2NyeXB0b19tYXhfbmJfcXBzKHpzZGFfcGNpX2Rldik7DQo+ICsgICAgc25wcmlu
dGYobmFtZSwgUlRFX0NSWVBUT0RFVl9OQU1FX01BWF9MRU4sICIlc18lcyIsIHpzZGFfcGNpX2Rl
di0NCj4gPm5hbWUsDQo+ICsgICAgICAgICAic3ltX2VuY3J5cHQiKTsNCj4gKyAgICBaU0RBX0xP
RyhERUJVRywgIkNyZWF0aW5nIFpTREEgU1lNIGRldmljZSAlcyIsIG5hbWUpOw0KPiArDQo+ICsg
ICAgaWYgKHJ0ZV9lYWxfcHJvY2Vzc190eXBlKCkgIT0gUlRFX1BST0NfUFJJTUFSWSkNCj4gKyAg
ICAgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4gKw0KPiArICAgIGRldl9pbmZvLT5zeW1fcnRl
X2Rldi5kcml2ZXIgPSAmY3J5cHRvZGV2X3pzZGFfc3ltX2RyaXZlcjsNCj4gKyAgICBkZXZfaW5m
by0+c3ltX3J0ZV9kZXYubnVtYV9ub2RlID0gZGV2X2luZm8tPnBjaV9kZXYtDQo+ID5kZXZpY2Uu
bnVtYV9ub2RlOw0KPiArICAgIGRldl9pbmZvLT5zeW1fcnRlX2Rldi5kZXZhcmdzID0gTlVMTDsN
Cj4gKw0KPiArICAgIGNyeXB0b2RldiA9IHJ0ZV9jcnlwdG9kZXZfcG1kX2NyZWF0ZShuYW1lLCAm
KGRldl9pbmZvLT5zeW1fcnRlX2RldiksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgJmlu
aXRfcGFyYW1zKTsNCj4gKw0KPiArICAgIGlmIChjcnlwdG9kZXYgPT0gTlVMTCkNCj4gKyAgICAg
ICAgcmV0dXJuIC1FTk9ERVY7DQo+ICsNCj4gKyAgICBkZXZfaW5mby0+c3ltX3J0ZV9kZXYubmFt
ZSA9IGNyeXB0b2Rldi0+ZGF0YS0+bmFtZTsNCj4gKyAgICBjcnlwdG9kZXYtPmRyaXZlcl9pZCA9
IHpzZGFfc3ltX2RyaXZlcl9pZDsNCj4gKw0KPiArICAgIGNyeXB0b2Rldi0+ZGV2X29wcyA9ICZj
cnlwdG9fenNkYV9vcHM7DQo+ICsNCj4gKyAgICBjcnlwdG9kZXYtPmVucXVldWVfYnVyc3QgPSB6
c2RhX3N5bV9wbWRfZW5xdWV1ZV9vcF9idXJzdDsNCj4gKyAgICBjcnlwdG9kZXYtPmRlcXVldWVf
YnVyc3QgPSB6c2RhX3N5bV9wbWRfZGVxdWV1ZV9vcF9idXJzdDsNCj4gKw0KPiArICAgIGNyeXB0
b2Rldi0+ZmVhdHVyZV9mbGFncyA9IFJURV9DUllQVE9ERVZfRkZfU1lNTUVUUklDX0NSWVBUTyB8
DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9TWU1fU0VTU0lPTkxFU1Mg
fA0KPiArICAgICAgICAgICAgICAgICAgIFJURV9DUllQVE9ERVZfRkZfT09QX0xCX0lOX0xCX09V
VCB8DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9PT1BfTEJfSU5fU0dM
X09VVCB8DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9PT1BfU0dMX0lO
X0xCX09VVCB8DQo+ICsgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT0RFVl9GRl9PT1BfU0dM
X0lOX1NHTF9PVVQgfA0KPiArICAgICAgICAgICAgICAgICAgIFJURV9DUllQVE9ERVZfRkZfSFdf
QUNDRUxFUkFURUQ7DQo+ICsNCj4gKyAgICBzeW1fcHJpdiA9IGNyeXB0b2Rldi0+ZGF0YS0+ZGV2
X3ByaXZhdGU7DQo+ICsgICAgc3ltX3ByaXYtPnpzZGFfcGNpX2RldiA9IHpzZGFfcGNpX2RldjsN
Cj4gKyAgICBjYXBhYmlsaXRpZXMgPSB6c2RhX2NyeXB0b19zeW1fY2FwYWJpbGl0aWVzOw0KPiAr
ICAgIGNhcGFfc2l6ZSA9IHNpemVvZih6c2RhX2NyeXB0b19zeW1fY2FwYWJpbGl0aWVzKTsNCj4g
Kw0KPiArICAgIHNucHJpbnRmKGNhcGFfbWVtel9uYW1lLCBSVEVfQ1JZUFRPREVWX05BTUVfTUFY
X0xFTiwNCj4gIlpTREFfU1lNX0NBUEEiKTsNCj4gKw0KPiArICAgIHN5bV9wcml2LT5jYXBhX216
ID0gcnRlX21lbXpvbmVfbG9va3VwKGNhcGFfbWVtel9uYW1lKTsNCj4gKyAgICBpZiAoc3ltX3By
aXYtPmNhcGFfbXogPT0gTlVMTCkNCj4gKyAgICAgICAgc3ltX3ByaXYtPmNhcGFfbXogPSBydGVf
bWVtem9uZV9yZXNlcnZlKA0KPiArICAgICAgICAgICAgY2FwYV9tZW16X25hbWUsIGNhcGFfc2l6
ZSwgcnRlX3NvY2tldF9pZCgpLCAwKTsNCj4gKw0KPiArICAgIGlmIChzeW1fcHJpdi0+Y2FwYV9t
eiA9PSBOVUxMKSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwgRV9NQUxMT0MpOw0KPiArICAg
ICAgICByZXQgPSAtRUZBVUxUOw0KPiArICAgICAgICBnb3RvIGVycm9yOw0KPiArICAgIH0NCj4g
Kw0KPiArICAgIG1lbWNweShzeW1fcHJpdi0+Y2FwYV9tei0+YWRkciwgY2FwYWJpbGl0aWVzLCBj
YXBhX3NpemUpOw0KPiArICAgIHN5bV9wcml2LT56c2RhX2Rldl9jYXBhYmlsaXRpZXMgPSBzeW1f
cHJpdi0+Y2FwYV9tei0+YWRkcjsNCj4gKw0KPiArICAgIHpzZGFfcGNpX2Rldi0+c3ltX2RldiA9
IHN5bV9wcml2Ow0KPiArDQo+ICsgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4gKw0KPiArZXJy
b3I6DQo+ICsNCj4gKyAgICBydGVfY3J5cHRvZGV2X3BtZF9kZXN0cm95KGNyeXB0b2Rldik7DQo+
ICsgICAgbWVtc2V0KCZkZXZfaW5mby0+c3ltX3J0ZV9kZXYsIDAsIHNpemVvZihkZXZfaW5mby0+
c3ltX3J0ZV9kZXYpKTsNCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK2lu
dA0KPiArenNkYV9zeW1fZGV2X2Rlc3Ryb3koc3RydWN0IHpzZGFfcGNpX2RldmljZSAqenNkYV9w
Y2lfZGV2KQ0KPiArew0KPiArICAgIHN0cnVjdCBydGVfY3J5cHRvZGV2ICpjcnlwdG9kZXY7DQo+
ICsNCj4gKyAgICBpZiAoenNkYV9wY2lfZGV2ID09IE5VTEwpDQo+ICsgICAgICAgIHJldHVybiAt
RU5PREVWOw0KPiArICAgIGlmICh6c2RhX3BjaV9kZXYtPnN5bV9kZXYgPT0gTlVMTCkNCj4gKyAg
ICAgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4gKyAgICBpZiAocnRlX2VhbF9wcm9jZXNzX3R5
cGUoKSA9PSBSVEVfUFJPQ19QUklNQVJZKQ0KPiArICAgICAgICBydGVfbWVtem9uZV9mcmVlKHpz
ZGFfcGNpX2Rldi0+c3ltX2Rldi0+Y2FwYV9teik7DQo+ICsNCj4gKyAgICBjcnlwdG9kZXYgPSBy
dGVfY3J5cHRvZGV2X3BtZF9nZXRfZGV2KHpzZGFfcGNpX2Rldi0+enNkYV9kZXZfaWQpOw0KPiAr
DQo+ICsgICAgcnRlX2NyeXB0b2Rldl9wbWRfZGVzdHJveShjcnlwdG9kZXYpOw0KPiArICAgIHpz
ZGFfZGV2c1t6c2RhX3BjaV9kZXYtPnpzZGFfZGV2X2lkXS5zeW1fcnRlX2Rldi5uYW1lID0gTlVM
TDsNCj4gKyAgICB6c2RhX3BjaV9kZXYtPnN5bV9kZXYgPSBOVUxMOw0KPiArDQo+ICsgICAgcmV0
dXJuIFpTREFfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiArc3RhdGljIHN0cnVjdCBjcnlwdG9kZXZf
ZHJpdmVyIHpzZGFfY3J5cHRvX2RydjsNCj4gK1JURV9QTURfUkVHSVNURVJfQ1JZUFRPX0RSSVZF
Uih6c2RhX2NyeXB0b19kcnYsDQo+IGNyeXB0b2Rldl96c2RhX3N5bV9kcml2ZXIsDQo+ICsgICAg
ICAgICAgICAgICAgICAgenNkYV9zeW1fZHJpdmVyX2lkKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZl
cnMvY3J5cHRvL3pzZGEvenNkYV9zeW1fcG1kLmgNCj4gYi9kcml2ZXJzL2NyeXB0by96c2RhL3pz
ZGFfc3ltX3BtZC5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAu
Ljc3MTc1ZmVkNDcNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL2NyeXB0by96c2Rh
L3pzZGFfc3ltX3BtZC5oDQo+IEBAIC0wLDAgKzEsMzUgQEANCj4gKy8qIFNQRFgtTGljZW5zZS1J
ZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAqIENvcHlyaWdodChjKSAyMDI0IFpURSBDb3Jw
b3JhdGlvbg0KPiArICovDQo+ICsNCj4gKyNpZm5kZWYgX1pTREFfU1lNX1BNRF9IXw0KPiArI2Rl
ZmluZSBfWlNEQV9TWU1fUE1EX0hfDQo+ICsNCj4gKyNpbmNsdWRlICJ6c2RhX2RldmljZS5oIg0K
PiArDQo+ICsvKiogWlNEQSBTeW1tZXRyaWMgQ3J5cHRvIFBNRCBkcml2ZXIgbmFtZSAqLw0KPiAr
I2RlZmluZSBDUllQVE9ERVZfTkFNRV9aU0RBX1NZTV9QTUQgY3J5cHRvX3pzZGENCj4gKw0KPiAr
ZXh0ZXJuIHVpbnQ4X3QgenNkYV9zeW1fZHJpdmVyX2lkOw0KPiArDQo+ICsvKiogcHJpdmF0ZSBk
YXRhIHN0cnVjdHVyZSBmb3IgYSBaU0RBIGRldmljZS4NCj4gKyAqIFRoaXMgWlNEQSBkZXZpY2Ug
aXMgYSBkZXZpY2Ugb2ZmZXJpbmcgb25seSBzeW1tZXRyaWMgY3J5cHRvIHNlcnZpY2UsDQo+ICsg
KiB0aGVyZSBjYW4gYmUgb25lIG9mIHRoZXNlIG9uIGVhY2ggenNkYV9wY2lfZGV2aWNlIChWRiku
DQo+ICsgKi8NCj4gK3N0cnVjdCB6c2RhX3N5bV9kZXZfcHJpdmF0ZSB7DQo+ICsgICAgc3RydWN0
IHpzZGFfcGNpX2RldmljZSAqenNkYV9wY2lfZGV2Ow0KPiArICAgIC8qKjwgVGhlIHpzZGEgcGNp
IGRldmljZSBob3N0aW5nIHRoZSBzZXJ2aWNlICovDQo+ICsNCj4gKyAgICBjb25zdCBzdHJ1Y3Qg
cnRlX2NyeXB0b2Rldl9jYXBhYmlsaXRpZXMgKnpzZGFfZGV2X2NhcGFiaWxpdGllczsNCj4gKyAg
ICAvKiBaU0RBIGRldmljZSBzeW1tZXRyaWMgY3J5cHRvIGNhcGFiaWxpdGllcyAqLw0KPiArICAg
IGNvbnN0IHN0cnVjdCBydGVfbWVtem9uZSAqY2FwYV9tejsNCj4gKyAgICAvKiBTaGFyZWQgbWVt
em9uZSBmb3Igc3RvcmluZyBjYXBhYmlsaXRpZXMgKi8NCj4gKyAgICB1aW50MTZfdCBtaW5fZW5x
X2J1cnN0X3RocmVzaG9sZDsNCj4gKyAgICB1aW50MzJfdCBpbnRlcm5hbF9jYXBhYmlsaXRpZXM7
IC8qIHNlZSBmbGFncyBaU0RBX1NZTV9DQVBfeHh4ICovDQo+ICt9Ow0KPiArDQo+ICtpbnQgenNk
YV9zeW1fZGV2X2NyZWF0ZShzdHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6c2RhX3BjaV9kZXYpOw0K
PiArDQo+ICtpbnQgenNkYV9zeW1fZGV2X2Rlc3Ryb3koc3RydWN0IHpzZGFfcGNpX2RldmljZSAq
enNkYV9wY2lfZGV2KTsNCj4gKw0KPiArI2VuZGlmIC8qIF9aU0RBX1NZTV9QTURfSF8gKi8NCj4g
LS0NCj4gMi4yNy4wDQoNCg==