From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 97F484600E; Tue, 7 Jan 2025 15:30:00 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 259ED40BA4; Tue, 7 Jan 2025 15:30:00 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id C058340676 for ; Tue, 7 Jan 2025 15:29:57 +0100 (CET) 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 507E9P6B028414 for ; Tue, 7 Jan 2025 06:29:56 -0800 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 4415s7r173-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 07 Jan 2025 06:29:56 -0800 (PST) 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 507ETtVc027581; Tue, 7 Jan 2025 06:29:55 -0800 Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2044.outbound.protection.outlook.com [104.47.55.44]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 4415s7r172-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Jan 2025 06:29:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dX/8jYtP+Hq9cIbEYX+g13j//yzTaVMl7wg+5w67iwx6xtqd/0L1XXH9R6nUBJ+w9ZL5q9TISarYtjZmT8ojAMQfI2qO6B4Hrm/xxoqbTw5UlfVVVu85kbMDxqgBDEmkSg1qXknQWI3CCpNFM42T2pxSxASV0dEFnfW0U490BkRnrLv0zBHaIbA6+S8hQ275TYdR1zxKSPxooQ44MX+Ru73io5QmfiQchVpTY4tvNQEmWmIv+AyIxfcMq0WYEtgr5oKR9lRWbWPvkyUrZgUbR8BRWN8odbVIGIPg5Fsbl7lnn06Z7+LtJWH8WRfPlj/hRgaoFtq1q5mElaoUmCaFbw== 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=tDtVIa69ysWuNNDHgVzYy9vkvpJSNhaRWVYAD69etZo=; b=ZopgUWCUjRdgVRRQQrxxxpGrPqAzMuh2vBBLv2tDRcdx+aHOlxnWAkIWpIboaxXseNudmO8XTcuzRzjWmPyeFrgec03nRVHFikN7TOKm+LCFM3bmslcI3qhITeacHoRADqsuq4/gpU0oflsd0Stu/UCnmdhitZGI8YoF9GytTuFNmogzhb/Eacms4HmuCe5QkZFVi/n+Xhj1YW+RlcctMEqKfLsp5ssAI9VZQgM/jsq7HNSnk+wKogMnJhe+tqHyXFL7jw+RdIPYuuFvZc1Mgy9H7vn1rlz4zCU0EtZkgBJjnHwkU+vyFQqoctP8bwJZsXaN1FZDe9KrAy86jrn1qw== 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=tDtVIa69ysWuNNDHgVzYy9vkvpJSNhaRWVYAD69etZo=; b=gfk9Q/I29icLBx8++6Jn42eqAxS/FLOQIp+Fj4YS2ElPlRHrWzV3XhmsmL5zdoiiUBAK074rX45QOuyGudrNWNZupmmLQ9qxoltx6l4/Je67Pwatq0JiYgpPSYogeFQHxWX1ibnF59YNezXvPgcpIpHXENmI60EK+icCPnAEoiM= Received: from PH0PR18MB4491.namprd18.prod.outlook.com (2603:10b6:510:e6::13) by CH0PR18MB5507.namprd18.prod.outlook.com (2603:10b6:610:191::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8314.18; Tue, 7 Jan 2025 14:29:46 +0000 Received: from PH0PR18MB4491.namprd18.prod.outlook.com ([fe80::b86b:9af:eec0:d010]) by PH0PR18MB4491.namprd18.prod.outlook.com ([fe80::b86b:9af:eec0:d010%5]) with mapi id 15.20.8314.018; Tue, 7 Jan 2025 14:29:45 +0000 From: Akhil Goyal To: Hanxiao Li , "dev@dpdk.org" Subject: RE: [EXTERNAL] [PATCH v22 10/13] compress/zsda: add zsda compressdev qp ops Thread-Topic: [EXTERNAL] [PATCH v22 10/13] compress/zsda: add zsda compressdev qp ops Thread-Index: AQHbNXV7xJq+2SNCyUyCNXZIuPSPLLMLsoNA Date: Tue, 7 Jan 2025 14:29:45 +0000 Message-ID: References: <20241113022918.3228337-2-li.hanxiao@zte.com.cn> <20241113023323.3228516-1-li.hanxiao@zte.com.cn> <20241113023323.3228516-9-li.hanxiao@zte.com.cn> In-Reply-To: <20241113023323.3228516-9-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: PH0PR18MB4491:EE_|CH0PR18MB5507:EE_ x-ms-office365-filtering-correlation-id: 2daa3566-75d6-4def-2eea-08dd2f27bb85 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?VkxUTy9aSWtMQzNDQU1MVXJnMjlsZ0JJT0lpcHlKZG1kS3lLeG00dldOR2xJ?= =?utf-8?B?bEx6UTlOSldsYmxmYU9GK05aVlNSZmwzbDZMNWtlVFFsOEFPdGYyRFNrdlQr?= =?utf-8?B?dzBqUERpUk90V3NiV21RSEs5MU5SNTdqZnJhSjk4RExIb091eXB0dHFUYk1m?= =?utf-8?B?c0l4cXJIcVdxSHFoaUVSekdQeDFPbUlLVTdadkR6em5iWEEwZGs0TWZXS2Uz?= =?utf-8?B?WU1hSXJYZTdheXltcTFsYUI4U2FTUDEwUnNNOVVreEl4K1prNWQvWkh6N0Vy?= =?utf-8?B?aDRQWFFMTWxISUdqcStNalZDZGNOQnlZbzJXbUtZSGlYcW9SOVIrajhiNzd2?= =?utf-8?B?eEZjdXp4Z3FGb3pqZENjeHNIcWxUVWNzWG40YXpib1dPK1JqUGMzcHRyb0xv?= =?utf-8?B?TjQxTjdKRG5MLzdaMXJ1TzJPMkpzcXZ1QUR3QTNKSlIxVmtsVG1BWVZFbzRG?= =?utf-8?B?Slh4S0liL3JRNEh2bTVUYUw2anBkNmpJcW9yRUx0Ump1a2d0aGhCS1NHeTJ3?= =?utf-8?B?R2NiMk1qd0VjVmo4V0xyaE4weFoxR0VyMkRTOThUUTN3RTdENWNwcGRST0lm?= =?utf-8?B?NVJDdlJHY29lbk5NSy92ajBXUnZiTTAxZ1NKL3Q1eUR1QTNPV0hNWWhKQ1Q5?= =?utf-8?B?YkJEeWtzV2xSR2dwMndXcURaaHlkL0JxT3hvMmlBNFplb2ppd1FiZWIvTGlM?= =?utf-8?B?WC9XUmJUT0xIdi9MMk96TE9vSllDemNwOWlDS3dPc0Q3aDRMNXRobFJzNnBl?= =?utf-8?B?dTlocnFxdC9hK2xwZEZQZ3dlc0RBL0dBSmJaZVJldmVrOGM1WDRQdHhzZk9a?= =?utf-8?B?YjVZZENDS2lhNnJxT2hRRVFxS0Zldm01K0cveU05eWVtVzJiSGxDUWJLUHV0?= =?utf-8?B?TzMxcXpzdDdFY0dVODVHcWxOdmI5UVB4azc0Z1FtNWRBVGNkV05TdXZxamRu?= =?utf-8?B?TkprVnZLbWlTbkdWWlNXbXpsbWxqRGJyNDVPS2FhMjBKTSthWENoYkVsbDFD?= =?utf-8?B?T0tyK3BTZ3V2N0crVDVyc2w4aURlT2Z6Nm5XUHI2RFNxVWpVOUJqS2N6RU1Z?= =?utf-8?B?WGtJUkhVRExNM2VXYUh1ZHgzeS9WWTZBcFJwTUpqdzE1R0ZCZ1l5RGF1Vmd4?= =?utf-8?B?bTROV3NIdnZzL2hkNk5yWUxlMFh1TWxZeW5LK21RU1NSTGxFYnpuSXJmQk9x?= =?utf-8?B?VFJ4dzUrTjBWREQvYy9TRnE4MThLMlc4S0k5bnJ0Z0U1cTdIUzlpL1ZoYmJx?= =?utf-8?B?QnFXRG9kK0VMQ2dvYlZlOE1Pb29MaTRaWFREOHVidWVWRnlLeDFQa0FqeW1k?= =?utf-8?B?OEIyTzBtZ3BRQitSNXh6cU81czV1MjFway9tOE9Vai82SzJyRnNML3NIOWFV?= =?utf-8?B?WmEyOGtxQXRCeVRlTlR5Rm5JQ1gveStnYXJuMTFjNWNyeC9zelU1LzB0Q3ph?= =?utf-8?B?V0hYaHZMdVFVb1U1NUMwbVNTZ29hNXdyNDQyb2RCa2V6cTJsc3NOTTdxQmsx?= =?utf-8?B?emlZSCtYWUtyaXVXcW1GYzNGUlFGbWNMTFdEaCt6azR2RUIyUWVqcTJxclg4?= =?utf-8?B?LzdMQzloUjRzcVRXUjNycGMwUFVCRVhxcWFTUktrRU9xY0Zra24vQjE2SExx?= =?utf-8?B?ZFVseVRwa1dlbUJGY3Zjd1p4MWVaWjQ0aFJDbXlobVU0ZDJjNHhqN0g0T2Vk?= =?utf-8?B?Q1VaTEs1VFZSaldOc1BYandodjlxZExJcmZQZno3eTYrRzg1bENNd3V5R3Nw?= =?utf-8?B?T2VjR2Yxb3Y3eTRXYUxFajIwc2VWTkFrZXRSaVdsbXAwdFo3c1lzMXZFYTJD?= =?utf-8?B?MlZVdkRhcENvNWFpajkxb0N1WVdrWjNqb0k3NnRWblI3MXhKUklsRzkvaXpa?= =?utf-8?B?Zll5Q0o2L0s2TkZQSVBqL1kwN2F0bVJKTCtVczFXUnRYM2twNVYvZmlCUTh6?= =?utf-8?Q?vAgK0Wr+xZCQirItCzYNXHG3q6dQU7O0?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR18MB4491.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L3h4ZlBtL1hHT1BsSGJzdmRnMDYwY2RINjN1eDV5OFc0VzUyVzlERVNXamhk?= =?utf-8?B?aWROQnRNWFdvRjJZTzRFRjUwSVJLYXU1cDZaS1l6MEVoR2I1S2pIckVDODkx?= =?utf-8?B?bWcvYVk4eFh6N0szQklRMEJXWjJTRWwrWCtLNXJBUWVSenNQRmdtMUlRNS91?= =?utf-8?B?TWVFa3ZvRGx3NCtXMTU2cTZKQjQxNk1yclpLYWxjT3VjaDVhaGdwS3Vma05S?= =?utf-8?B?alkyMExtUEZ4TXE5MzhncXN3d2dzQ2prVU1TTTRtQzhMMC9seE1pa1cwcXFw?= =?utf-8?B?cmEvejg4MXdiRnVCMFM2OTI0ZGlmMzB2RHpOK01WbVB3WTdUN21iNUw2dDdG?= =?utf-8?B?V1hDbVJOcjRWaHRTdnljZndqcmJrbUdicEd2TWxiaXY2U0wreUdBbXZ4SjZN?= =?utf-8?B?TUhaeVovdENVN211VWRiVFRQVzliNUFQTXZrWE5ZSmRsc1M4N0RKRVRtSmFl?= =?utf-8?B?QlhnSHdNZ1JRWDJjN1lOaGtPeW8xV2lwQkp4U2pZUHVHbEZCNnM1aWIvRHVq?= =?utf-8?B?N014YzJ6M1kyZHU0MFFhZ2xFL3BUNnBYWXM2YXYwaWl0cU5Ed0FFTUNnWW9J?= =?utf-8?B?KzhyTGhzL3IzNnUxUkZWUW9RbDFJUTZMWkFqUE1PcTdBdjIzTk1yUjMydmtl?= =?utf-8?B?YlBZM1k3aGxHUHdoUzNhQ1pkSXlCbk5oNk42NEdFTk9JMXFtWUFJWHJ2cDJZ?= =?utf-8?B?NHQvYjR4a0JZY3lSU3hYTVAwQ0RLOHpuQ2pJbkE1ZlRNSFdMRldLODl4K1JQ?= =?utf-8?B?a2ZVNnBxNnM3U21zTzJPUU8xVHNzNW5LNHdRaTJtTEUzK2pBL2VhN1dpNHpq?= =?utf-8?B?R0VUSGtKdEJLZVEzaFBqRlJnajczVWttK3hUSHBrV1Rjd2dTcE1qSmYrZGc5?= =?utf-8?B?UjYyNDREMi9tZGIrMFpld0hsZlVUY0RwMktPOWVhQU53b2RMZHNMMFhNVUNr?= =?utf-8?B?aTRXaTBFYmpJaVJZL2VlWlhlWjZzdExTaDNXTzA0cHFINTVTbGs0MDBEb2FI?= =?utf-8?B?RUl3L0NXdWU3bzVhV004RU5YN21rVUhuODhlTEtYVEtWMHl2elFiNm5oNFRy?= =?utf-8?B?QktnTXpGOGIyaXYzbzR0OUdhc3BBMTlHN2VUNStKV1FWcVBEY2xaU2srWkhv?= =?utf-8?B?NTVOMHp3Ri9HZ1ZvZGlCMnVLbDF1Q1czWitJSEpONndhaktIbE5OOG5ldGEz?= =?utf-8?B?Tmx1UkNHdGNEYnlJVHVRUlBQTDdDWkRXTFlialRYd3NabWd6eG9Zc2dQWmov?= =?utf-8?B?N3hpT0lXeU9EZ2xqVG5rMDNaT0tLWWhzM252VEd3MGVhSTErMFNqeWRGbTNo?= =?utf-8?B?VDJKSERQLzhwZlRLb0VTRm80cWlSOTNXVE0yL1dzUnpUeFUrUExFY1BZRC95?= =?utf-8?B?RDlmMHEvQVpISHhieDFnRXZNZGRzTDlQM3FGaHI0NEh3aVJWSkppaE5rRmt5?= =?utf-8?B?OS9kTzF5NUt4QU9vNVpPNzhjWm43aEJJYjVNcjM3c2JibENwaEhDTFh4SHNo?= =?utf-8?B?elFrUlVIcUgrcmdHM3UrQWpZdHdvbEhLeDA2QWdkWXJoeDZPU09ySXRFSU81?= =?utf-8?B?R0czajVpTFJnSm94RDJWQWZjaDIyOTAvSGJ0OG51VCs2aWMxaExEUFJqMS8x?= =?utf-8?B?WU5xbjA5MjF2WjBrdW5FcGR1RWZBK2RjK045OEVWRzIrU3dQYUFqNFkvY1U1?= =?utf-8?B?K1Z3S2l6SEtyaGpWNkE5UjVWQ0tycTB6Vy9uT0ZLaWJxR21JNkVxakM2clhh?= =?utf-8?B?b2pNTUZrdTE2MTVzY2lzdHRCSm5YaW0yTHg0WDRNSUV3NWs1RE1NTU13aldj?= =?utf-8?B?S2hKMUNmMW1UWlRocEV3SVIzSmVJRHFseTA0d3RnWHZQYTl1dVpvaHlmODNP?= =?utf-8?B?YndJZGpTa0p2RnNRelhmQWZSdVVXenB1MThCU1E3bmFFa2taTnZUQ1hoRDlW?= =?utf-8?B?TXhOOFZrbXJqSDNCY0cwWEVWTnFmbTkwclRKaHpkTFA5c1NBSnlFT1ZLTjgr?= =?utf-8?B?ekZaNzNuNHI5akdHL3lWWDJmc2ljalBqMUIzTGZrWGlvMFprL3FyZTdYUlB4?= =?utf-8?B?cWUxTkxNM056SWxHM05LL3I0MzNvV3JISFV6aVFOaWY1cGZRSWgvcVRybEVB?= =?utf-8?Q?Xg+Q=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: PH0PR18MB4491.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2daa3566-75d6-4def-2eea-08dd2f27bb85 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jan 2025 14:29:45.2487 (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: BD7AoWqewouB1sZUyy2OW0Mlm8x2G/yeDNzquIf7bYojBzIfeuDhPVcygOuXc4iBTe1dBvMMlQKAFrlzWOcCrg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR18MB5507 X-Proofpoint-GUID: bVwTLRs5hgszcZzcfK0WhypBGoAS4o-I X-Proofpoint-ORIG-GUID: cgdI3hW2zZW83E9CiQbCThY0UDo5qxKP 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jb21tb24venNkYS96c2RhX2RldmljZS5jDQo+IGIvZHJp dmVycy9jb21tb24venNkYS96c2RhX2RldmljZS5jDQo+IGluZGV4IDVjODM1NjUxZWEuLjUyOTdj ODBlZjkgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9kZXZpY2UuYw0K PiArKysgYi9kcml2ZXJzL2NvbW1vbi96c2RhL3pzZGFfZGV2aWNlLmMNCj4gQEAgLTExLDcgKzEx LDYgQEANCj4gICNpbmNsdWRlICJ6c2RhX2RldmljZS5oIg0KPiAgI2luY2x1ZGUgInpzZGFfbG9n cy5oIg0KPiAgI2luY2x1ZGUgInpzZGFfcXAuaCINCj4gLQ0KPiAgLyogcGVyLXByb2Nlc3MgYXJy YXkgb2YgZGV2aWNlIGRhdGEgKi8NCj4gIHN0cnVjdCB6c2RhX2RldmljZV9pbmZvIHpzZGFfZGV2 c1tSVEVfUE1EX1pTREFfTUFYX1BDSV9ERVZJQ0VTXTsNCj4gIHN0YXRpYyBpbnQgenNkYV9uYl9w Y2lfZGV2aWNlczsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9kZXZp Y2UuaA0KPiBiL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9kZXZpY2UuaA0KPiBpbmRleCA1NjRk NjhhYzZhLi5hZjRhNWM4Y2M3IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2NvbW1vbi96c2RhL3pz ZGFfZGV2aWNlLmgNCj4gKysrIGIvZHJpdmVycy9jb21tb24venNkYS96c2RhX2RldmljZS5oDQo+ IEBAIC01LDEzICs1LDEyIEBADQo+ICAjaWZuZGVmIF9aU0RBX0RFVklDRV9IXw0KPiAgI2RlZmlu ZSBfWlNEQV9ERVZJQ0VfSF8NCj4gDQo+IC0jaW5jbHVkZSA8cnRlX21lbXpvbmUuaD4NCj4gICNp bmNsdWRlICJidXNfcGNpX2RyaXZlci5oIg0KPiArDQo+ICAjaW5jbHVkZSAienNkYV9xcF9jb21t b24uaCINCj4gDQo+ICAjZGVmaW5lIE1BWF9RUFNfT05fRlVOQ1RJT04gICAgICAgICAgICAxMjgN Cj4gICNkZWZpbmUgWlNEQV9ERVZfTkFNRV9NQVhfTEVOICAgICAgICA2NA0KPiAtI2RlZmluZSBa U0RBX01BWF9ERVYgICAgICAgICAgICAgICAgUlRFX1BNRF9aU0RBX01BWF9QQ0lfREVWSUNFUw0K PiANCj4gIHN0cnVjdCB6c2RhX2RldmljZV9pbmZvIHsNCj4gICAgICBjb25zdCBzdHJ1Y3QgcnRl X21lbXpvbmUgKm16Ow0KDQpSZW1vdmUgYWJvdmUgdW5uZWNlc3NhcnkgZGlmZi4gRml4IGluIG9y aWdpbmFsIHBhdGNoLg0KDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbW1vbi96c2RhL3pzZGFf cXAuYyBiL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5jDQo+IGluZGV4IDdlMDAwZDViM2Yu LjY1OGIwYjY5ZTMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5j DQo+ICsrKyBiL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5jDQo+IEBAIC0xMiw2ICsxMiw4 IEBADQo+ICAjZGVmaW5lIE1BR0lDX1NFTkQgMHhhYg0KPiAgI2RlZmluZSBNQUdJQ19SRUNWIDB4 Y2QNCj4gICNkZWZpbmUgQURNSU5fVkVSIDENCj4gKyNkZWZpbmUgUklOR19ESVJfVFggMA0KPiAr I2RlZmluZSBSSU5HX0RJUl9SWCAxDQo+IA0KPiAgc3RhdGljIHVpbnQ4X3QgenNkYV9udW1fdXNl ZF9xcHM7DQo+IA0KPiBAQCAtNTIzLDMgKzUyNSwyNDkgQEAgenNkYV9xdWV1ZV9pbml0KHN0cnVj dCB6c2RhX3BjaV9kZXZpY2UNCj4gKnpzZGFfcGNpX2RldikNCj4gDQo+ICAgICAgcmV0dXJuIHJl dDsNCj4gIH0NCj4gKw0KPiArc3RydWN0IHpzZGFfcXBfaHcgKg0KPiArenNkYV9xcHNfaHdfcGVy X3NlcnZpY2Uoc3RydWN0IHpzZGFfcGNpX2RldmljZSAqenNkYV9wY2lfZGV2LA0KPiArICAgICAg ICAgICAgY29uc3QgZW51bSB6c2RhX3NlcnZpY2VfdHlwZSBzZXJ2aWNlKQ0KPiArew0KPiArICAg IHN0cnVjdCB6c2RhX3FwX2h3ICpxcF9odyA9IE5VTEw7DQo+ICsNCj4gKyAgICBpZiAoc2Vydmlj ZSA8IFpTREFfU0VSVklDRV9JTlZBTElEKQ0KPiArICAgICAgICBxcF9odyA9ICYoenNkYV9wY2lf ZGV2LT56c2RhX2h3X3Fwc1tzZXJ2aWNlXSk7DQo+ICsNCj4gKyAgICByZXR1cm4gcXBfaHc7DQo+ ICt9DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKg0KPiArenNkYV9x dWV1ZV9kbWFfem9uZV9yZXNlcnZlKGNvbnN0IGNoYXIgKnF1ZXVlX25hbWUsDQo+ICsgICAgICAg ICAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IHF1ZXVlX3NpemUsDQo+ICsgICAgICAgICAgICAg ICAgY29uc3QgdW5zaWduZWQgaW50IHNvY2tldF9pZCkNCj4gK3sNCj4gKyAgICBjb25zdCBzdHJ1 Y3QgcnRlX21lbXpvbmUgKm16Ow0KPiArDQo+ICsgICAgbXogPSBydGVfbWVtem9uZV9sb29rdXAo cXVldWVfbmFtZSk7DQo+ICsgICAgaWYgKG16ICE9IDApIHsNCj4gKyAgICAgICAgaWYgKCgoc2l6 ZV90KXF1ZXVlX3NpemUgPD0gbXotPmxlbikgJiYNCj4gKyAgICAgICAgICAgICgoc29ja2V0X2lk ID09IChTT0NLRVRfSURfQU5ZICYgMHhmZmZmKSkgfHwNCj4gKyAgICAgICAgICAgICAoc29ja2V0 X2lkID09IChtei0+c29ja2V0X2lkICYgMHhmZmZmKSkpKSB7DQo+ICsgICAgICAgICAgICBaU0RB X0xPRyhERUJVRywNCj4gKyAgICAgICAgICAgICAgICAgInJlLXVzZSBtZW16b25lIGFscmVhZHkg YWxsb2NhdGVkIGZvciAlcyIsDQo+ICsgICAgICAgICAgICAgICAgIHF1ZXVlX25hbWUpOw0KPiAr ICAgICAgICAgICAgcmV0dXJuIG16Ow0KPiArICAgICAgICB9DQo+ICsgICAgICAgIFpTREFfTE9H KEVSUiwgIkZhaWxlZCEgcXVldWVfbmFtZSBleGlzdCIpOw0KPiArICAgICAgICByZXR1cm4gTlVM TDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBteiA9IHJ0ZV9tZW16b25lX3Jlc2VydmVfYWxpZ25l ZChxdWV1ZV9uYW1lLCBxdWV1ZV9zaXplLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAoaW50 KShzb2NrZXRfaWQgJiAweGZmZiksDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIFJURV9NRU1a T05FX0lPVkFfQ09OVElHLCBxdWV1ZV9zaXplKTsNCj4gKw0KPiArICAgIHJldHVybiBtejsNCj4g K30NCj4gKw0KPiArc3RhdGljIGludA0KPiArenNkYV9xdWV1ZV9jcmVhdGUoY29uc3QgdWludDMy X3QgZGV2X2lkLCBzdHJ1Y3QgenNkYV9xdWV1ZSAqcXVldWUsDQo+ICsgICAgICAgICAgY29uc3Qg c3RydWN0IHpzZGFfcXBfY29uZmlnICpxcF9jb25mLCBjb25zdCB1aW50OF90IGRpcikNCj4gK3sN Cj4gKyAgICB2b2lkICppb19hZGRyOw0KPiArICAgIGNvbnN0IHN0cnVjdCBydGVfbWVtem9uZSAq cXBfbXo7DQo+ICsgICAgc3RydWN0IHFpbmZvIHFjZmcgPSB7MH07DQo+ICsNCj4gKyAgICB1aW50 MTZfdCBkZXNjX3NpemUgPSAoKGRpciA9PSBSSU5HX0RJUl9UWCkgPyBxcF9jb25mLT5ody0+dHhf bXNnX3NpemUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcXBfY29uZi0+aHctPnJ4 X21zZ19zaXplKTsNCj4gKyAgICB1bnNpZ25lZCBpbnQgcXVldWVfc2l6ZV9ieXRlcyA9IHFwX2Nv bmYtPm5iX2Rlc2NyaXB0b3JzICogZGVzY19zaXplOw0KPiArDQo+ICsgICAgcXVldWUtPmh3X3F1 ZXVlX251bWJlciA9DQo+ICsgICAgICAgICgoZGlyID09IFJJTkdfRElSX1RYKSA/IHFwX2NvbmYt Pmh3LT50eF9yaW5nX251bQ0KPiArICAgICAgICAgICAgICAgICAgICAgIDogcXBfY29uZi0+aHct PnJ4X3JpbmdfbnVtKTsNCj4gKw0KPiArICAgIHN0cnVjdCBydGVfcGNpX2RldmljZSAqcGNpX2Rl diA9IHpzZGFfZGV2c1tkZXZfaWRdLnBjaV9kZXY7DQo+ICsgICAgc3RydWN0IHpzZGFfcGNpX2Rl dmljZSAqenNkYV9kZXYgPQ0KPiArICAgICAgICAoc3RydWN0IHpzZGFfcGNpX2RldmljZSAqKXpz ZGFfZGV2c1tkZXZfaWRdLm16LT5hZGRyOw0KPiArDQo+ICsgICAgenNkYV9nZXRfcXVldWVfY2Zn X2J5X2lkKHpzZGFfZGV2LCBxdWV1ZS0+aHdfcXVldWVfbnVtYmVyLCAmcWNmZyk7DQo+ICsNCj4g KyAgICBpZiAoZGlyID09IFJJTkdfRElSX1RYKQ0KPiArICAgICAgICBzbnByaW50ZihxdWV1ZS0+ bWVtel9uYW1lLCBzaXplb2YocXVldWUtPm1lbXpfbmFtZSksDQo+ICsgICAgICAgICAgICAgIiVz XyVkXyVzXyVzXyVkIiwgcGNpX2Rldi0+ZHJpdmVyLT5kcml2ZXIubmFtZSwgZGV2X2lkLA0KPiAr ICAgICAgICAgICAgIHFwX2NvbmYtPnNlcnZpY2Vfc3RyLCAicXB0eG1lbSIsDQo+ICsgICAgICAg ICAgICAgcXVldWUtPmh3X3F1ZXVlX251bWJlcik7DQo+ICsgICAgZWxzZQ0KPiArICAgICAgICBz bnByaW50ZihxdWV1ZS0+bWVtel9uYW1lLCBzaXplb2YocXVldWUtPm1lbXpfbmFtZSksDQo+ICsg ICAgICAgICAgICAgIiVzXyVkXyVzXyVzXyVkIiwgcGNpX2Rldi0+ZHJpdmVyLT5kcml2ZXIubmFt ZSwgZGV2X2lkLA0KPiArICAgICAgICAgICAgIHFwX2NvbmYtPnNlcnZpY2Vfc3RyLCAicXByeG1l bSIsDQo+ICsgICAgICAgICAgICAgcXVldWUtPmh3X3F1ZXVlX251bWJlcik7DQo+ICsNCj4gKyAg ICBxcF9teiA9IHpzZGFfcXVldWVfZG1hX3pvbmVfcmVzZXJ2ZShxdWV1ZS0+bWVtel9uYW1lLA0K PiBxdWV1ZV9zaXplX2J5dGVzLA0KPiArICAgICAgICAgICAgICAgICAgICAgICBydGVfc29ja2V0 X2lkKCkpOw0KPiArICAgIGlmIChxcF9teiA9PSBOVUxMKSB7DQo+ICsgICAgICAgIFpTREFfTE9H KEVSUiwgIkZhaWxlZCEgcXBfbXogaXMgTlVMTCIpOw0KPiArICAgICAgICByZXR1cm4gLUVOT01F TTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBxdWV1ZS0+YmFzZV9hZGRyID0gcXBfbXotPmFkZHI7 DQo+ICsgICAgcXVldWUtPmJhc2VfcGh5c19hZGRyID0gcXBfbXotPmlvdmE7DQo+ICsgICAgcXVl dWUtPm1vZHVsb19tYXNrID0gTUFYX05VTV9PUFM7DQo+ICsgICAgcXVldWUtPm1zZ19zaXplID0g ZGVzY19zaXplOw0KPiArDQo+ICsgICAgcXVldWUtPmhlYWQgPSAoZGlyID09IFJJTkdfRElSX1RY KSA/IHFjZmcud3FfaGVhZCA6IHFjZmcuY3FfaGVhZDsNCj4gKyAgICBxdWV1ZS0+dGFpbCA9IChk aXIgPT0gUklOR19ESVJfVFgpID8gcWNmZy53cV90YWlsIDogcWNmZy5jcV90YWlsOw0KPiArDQo+ ICsgICAgaWYgKChxdWV1ZS0+aGVhZCA9PSAwKSAmJiAocXVldWUtPnRhaWwgPT0gMCkpDQo+ICsg ICAgICAgIHFjZmcuY3ljbGUgKz0gMTsNCj4gKw0KPiArICAgIHF1ZXVlLT52YWxpZCA9IHFjZmcu Y3ljbGUgJiAoWlNEQV9NQVhfQ1lDTEUgLSAxKTsNCj4gKyAgICBxdWV1ZS0+cXVldWVfc2l6ZSA9 IFpTREFfTUFYX0RFU0M7DQo+ICsgICAgcXVldWUtPmN5Y2xlX3NpemUgPSBaU0RBX01BWF9DWUNM RTsNCj4gKyAgICBxdWV1ZS0+aW9fYWRkciA9IHBjaV9kZXYtPm1lbV9yZXNvdXJjZVswXS5hZGRy Ow0KPiArDQo+ICsgICAgbWVtc2V0KHF1ZXVlLT5iYXNlX2FkZHIsIDB4MCwgcXVldWVfc2l6ZV9i eXRlcyk7DQo+ICsgICAgaW9fYWRkciA9IHBjaV9kZXYtPm1lbV9yZXNvdXJjZVswXS5hZGRyOw0K PiArDQo+ICsgICAgaWYgKGRpciA9PSBSSU5HX0RJUl9UWCkNCj4gKyAgICAgICAgWlNEQV9DU1Jf V1FfUklOR19CQVNFKGlvX2FkZHIsIHF1ZXVlLT5od19xdWV1ZV9udW1iZXIsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgcXVldWUtPmJhc2VfcGh5c19hZGRyKTsNCj4gKyAgICBlbHNlDQo+ICsg ICAgICAgIFpTREFfQ1NSX0NRX1JJTkdfQkFTRShpb19hZGRyLCBxdWV1ZS0+aHdfcXVldWVfbnVt YmVyLA0KPiArICAgICAgICAgICAgICAgICAgICAgIHF1ZXVlLT5iYXNlX3BoeXNfYWRkcik7DQo+ ICsNCj4gKyAgICByZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArenNkYV9j b29raWVfaW5pdChjb25zdCB1aW50MzJfdCBkZXZfaWQsIHN0cnVjdCB6c2RhX3FwICoqcXBfYWRk ciwNCj4gKyAgICAgICAgY29uc3QgdWludDE2X3QgcXVldWVfcGFpcl9pZCwNCj4gKyAgICAgICAg Y29uc3Qgc3RydWN0IHpzZGFfcXBfY29uZmlnICp6c2RhX3FwX2NvbmYpDQo+ICt7DQo+ICsgICAg c3RydWN0IHpzZGFfcXAgKnFwID0gKnFwX2FkZHI7DQo+ICsgICAgc3RydWN0IHJ0ZV9wY2lfZGV2 aWNlICpwY2lfZGV2ID0genNkYV9kZXZzW2Rldl9pZF0ucGNpX2RldjsNCj4gKyAgICBjaGFyIG9w X2Nvb2tpZV9wb29sX25hbWVbUlRFX1JJTkdfTkFNRVNJWkVdOw0KPiArICAgIHVpbnQzMl90IGk7 DQo+ICsgICAgZW51bSB6c2RhX3NlcnZpY2VfdHlwZSB0eXBlID0genNkYV9xcF9jb25mLT5zZXJ2 aWNlX3R5cGU7DQo+ICsNCj4gKyAgICBpZiAoenNkYV9xcF9jb25mLT5uYl9kZXNjcmlwdG9ycyAh PSBaU0RBX01BWF9ERVNDKQ0KPiArICAgICAgICBaU0RBX0xPRyhFUlIsICJDYW4ndCBjcmVhdGUg cXAgZm9yICV1IGRlc2NyaXB0b3JzIiwNCj4gKyAgICAgICAgICAgICB6c2RhX3FwX2NvbmYtPm5i X2Rlc2NyaXB0b3JzKTsNCj4gKw0KPiArICAgIHFwLT5zcnZbdHlwZV0ubmJfZGVzY3JpcHRvcnMg PSB6c2RhX3FwX2NvbmYtPm5iX2Rlc2NyaXB0b3JzOw0KPiArDQo+ICsgICAgcXAtPnNydlt0eXBl XS5vcF9jb29raWVzID0gcnRlX3ptYWxsb2Nfc29ja2V0KA0KPiArICAgICAgICAienNkYSBQTUQg b3AgY29va2llIHBvaW50ZXIiLA0KPiArICAgICAgICB6c2RhX3FwX2NvbmYtPm5iX2Rlc2NyaXB0 b3JzICoNCj4gKyAgICAgICAgICAgIHNpemVvZigqcXAtPnNydlt0eXBlXS5vcF9jb29raWVzKSwN Cj4gKyAgICAgICAgUlRFX0NBQ0hFX0xJTkVfU0laRSwgenNkYV9xcF9jb25mLT5zb2NrZXRfaWQp Ow0KPiArDQo+ICsgICAgaWYgKHFwLT5zcnZbdHlwZV0ub3BfY29va2llcyA9PSBOVUxMKSB7DQo+ ICsgICAgICAgIFpTREFfTE9HKEVSUiwgIkZhaWxlZCEgb3BfY29va2llcyBpcyBOVUxMIik7DQo+ ICsgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiArICAgIH0NCj4gKw0KPiArICAgIHNucHJpbnRm KG9wX2Nvb2tpZV9wb29sX25hbWUsIFJURV9SSU5HX05BTUVTSVpFLA0KPiAiJXMlZF9ja3NfJXNf cXAlaHUiLA0KPiArICAgICAgICAgcGNpX2Rldi0+ZHJpdmVyLT5kcml2ZXIubmFtZSwgZGV2X2lk LA0KPiArICAgICAgICAgenNkYV9xcF9jb25mLT5zZXJ2aWNlX3N0ciwgcXVldWVfcGFpcl9pZCk7 DQo+ICsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLm9wX2Nvb2tpZV9wb29sID0NCj4gcnRlX21lbXBv b2xfbG9va3VwKG9wX2Nvb2tpZV9wb29sX25hbWUpOw0KPiArICAgIGlmIChxcC0+c3J2W3R5cGVd Lm9wX2Nvb2tpZV9wb29sID09IE5VTEwpDQo+ICsgICAgICAgIHFwLT5zcnZbdHlwZV0ub3BfY29v a2llX3Bvb2wgPSBydGVfbWVtcG9vbF9jcmVhdGUoDQo+ICsgICAgICAgICAgICBvcF9jb29raWVf cG9vbF9uYW1lLCBxcC0+c3J2W3R5cGVdLm5iX2Rlc2NyaXB0b3JzLA0KPiArICAgICAgICAgICAg enNkYV9xcF9jb25mLT5jb29raWVfc2l6ZSwgNjQsIDAsIE5VTEwsIE5VTEwsIE5VTEwsDQo+ICsg ICAgICAgICAgICBOVUxMLCAoaW50KShydGVfc29ja2V0X2lkKCkgJiAweGZmZiksIDApOw0KPiAr ICAgIGlmICghcXAtPnNydlt0eXBlXS5vcF9jb29raWVfcG9vbCkgew0KPiArICAgICAgICBaU0RB X0xPRyhFUlIsICJGYWlsZWQhIG9wX2Nvb2tpZV9wb29sIGlzIE5VTEwiKTsNCj4gKyAgICAgICAg Z290byBleGl0Ow0KPiArICAgIH0NCj4gKw0KPiArICAgIGZvciAoaSA9IDA7IGkgPCBxcC0+c3J2 W3R5cGVdLm5iX2Rlc2NyaXB0b3JzOyBpKyspIHsNCj4gKyAgICAgICAgaWYgKHJ0ZV9tZW1wb29s X2dldChxcC0+c3J2W3R5cGVdLm9wX2Nvb2tpZV9wb29sLA0KPiArICAgICAgICAgICAgICAgICAg ICAmcXAtPnNydlt0eXBlXS5vcF9jb29raWVzW2ldKSkgew0KPiArICAgICAgICAgICAgWlNEQV9M T0coRVJSLCAiWlNEQSBQTUQgQ2Fubm90IGdldCBvcF9jb29raWUiKTsNCj4gKyAgICAgICAgICAg IGdvdG8gZXhpdDsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBtZW1zZXQocXAtPnNydlt0eXBl XS5vcF9jb29raWVzW2ldLCAwLA0KPiArICAgICAgICAgICAgICAgenNkYV9xcF9jb25mLT5jb29r aWVfc2l6ZSk7DQo+ICsgICAgfQ0KPiArICAgIHJldHVybiBaU0RBX1NVQ0NFU1M7DQo+ICsNCj4g K2V4aXQ6DQo+ICsNCj4gKyAgICBydGVfbWVtcG9vbF9mcmVlKHFwLT5zcnZbdHlwZV0ub3BfY29v a2llX3Bvb2wpOw0KPiArICAgIHJ0ZV9mcmVlKHFwLT5zcnZbdHlwZV0ub3BfY29va2llcyk7DQo+ ICsNCj4gKyAgICByZXR1cm4gLUVGQVVMVDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiAr enNkYV9xdWV1ZV9wYWlyX3NldHVwKGNvbnN0IHVpbnQzMl90IGRldl9pZCwgc3RydWN0IHpzZGFf cXAgKipxcF9hZGRyLA0KPiArICAgICAgICAgICAgICBjb25zdCB1aW50MTZfdCBxdWV1ZV9wYWly X2lkLA0KPiArICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgenNkYV9xcF9jb25maWcgKnpzZGFf cXBfY29uZikNCj4gK3sNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcCAqcXAgPSAqcXBfYWRkcjsNCj4g KyAgICBzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYgPSB6c2RhX2RldnNbZGV2X2lkXS5w Y2lfZGV2Ow0KPiArICAgIGludCByZXQ7DQo+ICsgICAgZW51bSB6c2RhX3NlcnZpY2VfdHlwZSB0 eXBlID0genNkYV9xcF9jb25mLT5zZXJ2aWNlX3R5cGU7DQo+ICsNCj4gKyAgICBpZiAodHlwZSA+ PSBaU0RBX1NFUlZJQ0VfSU5WQUxJRCkgew0KPiArICAgICAgICBaU0RBX0xPRyhFUlIsICJGYWls ZWQhIHNlcnZpY2UgdHlwZSIpOw0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICB9 DQo+ICsNCj4gKyAgICBpZiAocGNpX2Rldi0+bWVtX3Jlc291cmNlWzBdLmFkZHIgPT0gTlVMTCkg ew0KPiArICAgICAgICBaU0RBX0xPRyhFUlIsICJGYWlsZWQhIG1lbV9yZXNvdXJjZVswXS5hZGRy IGlzIE5VTEwiKTsNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAgfQ0KPiArDQo+ ICsgICAgaWYgKHpzZGFfcXVldWVfY3JlYXRlKGRldl9pZCwgJihxcC0+c3J2W3R5cGVdLnR4X3Ep LCB6c2RhX3FwX2NvbmYsDQo+ICsgICAgICAgICAgICAgICAgICBSSU5HX0RJUl9UWCkgIT0gMCkg ew0KPiArICAgICAgICBaU0RBX0xPRyhFUlIsICJGYWlsZWQhIHpzZGFfcXVldWVfY3JlYXRlIHR4 Iik7DQo+ICsgICAgICAgIHJldHVybiAtRUZBVUxUOw0KPiArICAgIH0NCj4gKw0KPiArICAgIGlm ICh6c2RhX3F1ZXVlX2NyZWF0ZShkZXZfaWQsICYocXAtPnNydlt0eXBlXS5yeF9xKSwgenNkYV9x cF9jb25mLA0KPiArICAgICAgICAgICAgICAgICAgUklOR19ESVJfUlgpICE9IDApIHsNCj4gKyAg ICAgICAgWlNEQV9MT0coRVJSLCAiRmFpbGVkISB6c2RhX3F1ZXVlX2NyZWF0ZSByeCIpOw0KPiAr ICAgICAgICB6c2RhX3F1ZXVlX2RlbGV0ZSgmKHFwLT5zcnZbdHlwZV0udHhfcSkpOw0KPiArICAg ICAgICByZXR1cm4gLUVGQVVMVDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXQgPSB6c2RhX2Nv b2tpZV9pbml0KGRldl9pZCwgcXBfYWRkciwgcXVldWVfcGFpcl9pZCwgenNkYV9xcF9jb25mKTsN Cj4gKyAgICBpZiAocmV0KSB7DQo+ICsgICAgICAgIHpzZGFfcXVldWVfZGVsZXRlKCYocXAtPnNy dlt0eXBlXS50eF9xKSk7DQo+ICsgICAgICAgIHpzZGFfcXVldWVfZGVsZXRlKCYocXAtPnNydlt0 eXBlXS5yeF9xKSk7DQo+ICsgICAgICAgIHFwLT5zcnZbdHlwZV0udXNlZCA9IGZhbHNlOw0KPiAr ICAgIH0NCj4gKyAgICBxcC0+c3J2W3R5cGVdLnVzZWQgPSB0cnVlOw0KPiArICAgIHJldHVybiBy ZXQ7DQo+ICt9DQo+ICsNCj4gK2ludA0KPiArenNkYV9jb21tb25fc2V0dXBfcXAodWludDMyX3Qg enNkYV9kZXZfaWQsIHN0cnVjdCB6c2RhX3FwICoqcXBfYWRkciwNCj4gKyAgICAgICAgY29uc3Qg dWludDE2X3QgcXVldWVfcGFpcl9pZCwgY29uc3Qgc3RydWN0IHpzZGFfcXBfY29uZmlnICpjb25m KQ0KDQpSZW5hbWUgdG8genNkYV9jb21tb25fcXBfc2V0dXANCg0KPiArew0KPiArICAgIHVpbnQz Ml90IGk7DQo+ICsgICAgaW50IHJldDsNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcCAqcXA7DQo+ICsg ICAgcnRlX2lvdmFfdCBjb29raWVfcGh5c19hZGRyOw0KPiArDQo+ICsgICAgcmV0ID0genNkYV9x dWV1ZV9wYWlyX3NldHVwKHpzZGFfZGV2X2lkLCBxcF9hZGRyLCBxdWV1ZV9wYWlyX2lkLCBjb25m KTsNCj4gKyAgICBpZiAocmV0KQ0KPiArICAgICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsgICAg cXAgPSAoc3RydWN0IHpzZGFfcXAgKikqcXBfYWRkcjsNCj4gKw0KPiArICAgIGZvciAoaSA9IDA7 IGkgPCBxcC0+c3J2W2NvbmYtPnNlcnZpY2VfdHlwZV0ubmJfZGVzY3JpcHRvcnM7IGkrKykgew0K PiArICAgICAgICBzdHJ1Y3QgenNkYV9vcF9jb29raWUgKmNvb2tpZSA9DQo+ICsgICAgICAgICAg ICBxcC0+c3J2W2NvbmYtPnNlcnZpY2VfdHlwZV0ub3BfY29va2llc1tpXTsNCj4gKyAgICAgICAg Y29va2llX3BoeXNfYWRkciA9IHJ0ZV9tZW1wb29sX3ZpcnQyaW92YShjb29raWUpOw0KPiArDQo+ ICsgICAgICAgIGNvb2tpZS0+Y29tcF9oZWFkX3BoeXNfYWRkciA9IGNvb2tpZV9waHlzX2FkZHIg Kw0KPiArICAgICAgICAgICAgb2Zmc2V0b2Yoc3RydWN0IHpzZGFfb3BfY29va2llLCBjb21wX2hl YWQpOw0KPiArDQo+ICsgICAgICAgIGNvb2tpZS0+c2dsX3NyY19waHlzX2FkZHIgPSBjb29raWVf cGh5c19hZGRyICsNCj4gKyAgICAgICAgICAgIG9mZnNldG9mKHN0cnVjdCB6c2RhX29wX2Nvb2tp ZSwgc2dsX3NyYyk7DQo+ICsNCj4gKyAgICAgICAgY29va2llLT5zZ2xfZHN0X3BoeXNfYWRkciA9 IGNvb2tpZV9waHlzX2FkZHIgKw0KPiArICAgICAgICAgICAgb2Zmc2V0b2Yoc3RydWN0IHpzZGFf b3BfY29va2llLCBzZ2xfZHN0KTsNCj4gKyAgICB9DQo+ICsgICAgcmV0dXJuIHJldDsNCj4gK30N Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5oIGIvZHJpdmVycy9j b21tb24venNkYS96c2RhX3FwLmgNCj4gaW5kZXggMGM4ZjM2MDYxYS4uMWUzMTE1ZTZjOSAxMDA2 NDQNCj4gLS0tIGEvZHJpdmVycy9jb21tb24venNkYS96c2RhX3FwLmgNCj4gKysrIGIvZHJpdmVy cy9jb21tb24venNkYS96c2RhX3FwLmgNCj4gQEAgLTUsNiArNSw4IEBADQo+ICAjaWZuZGVmIF9a U0RBX1FQX0hfDQo+ICAjZGVmaW5lIF9aU0RBX1FQX0hfDQo+IA0KPiArI2luY2x1ZGUgInpzZGFf cXBfY29tbW9uLmgiDQo+ICsNCj4gICNpbmNsdWRlICJ6c2RhX2RldmljZS5oIg0KPiANCj4gICNk ZWZpbmUgWlNEQV9BRE1JTl9RX1NUQVJUICAgICAgICAweDEwMA0KPiBAQCAtNTAsNiArNTIsNDkg QEANCj4gICNkZWZpbmUgWlNEQV9USU1FX1NMRUVQX1VTICAgIDEwMA0KPiAgI2RlZmluZSBaU0RB X1RJTUVfTlVNICAgICAgICA1MDANCj4gDQo+ICsjZGVmaW5lIFdRX0NTUl9MQkFTRSAgICAweDEw MDANCj4gKyNkZWZpbmUgV1FfQ1NSX1VCQVNFICAgIDB4MTAwNA0KPiArI2RlZmluZSBDUV9DU1Jf TEJBU0UgICAgMHgxNDAwDQo+ICsjZGVmaW5lIENRX0NTUl9VQkFTRSAgICAweDE0MDQNCj4gKyNk ZWZpbmUgV1FfVEFJTCAgICAgICAgICAgIDB4MTgwMA0KPiArI2RlZmluZSBDUV9IRUFEICAgICAg ICAgICAgMHgxODA0DQo+ICsNCj4gKy8qIENTUiB3cml0ZSBtYWNybyAqLw0KPiArI2RlZmluZSBa U0RBX0NTUl9XUihjc3JBZGRyLCBjc3JPZmZzZXQsIHZhbCkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCj4gKyAgICBydGVfd3JpdGUzMih2YWwsICgoKHVpbnQ4X3QgKiljc3JB ZGRyKSArIGNzck9mZnNldCkpDQo+ICsjZGVmaW5lIFpTREFfQ1NSX1dDX1dSKGNzckFkZHIsIGNz ck9mZnNldCwgdmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIHJ0 ZV93cml0ZTMyX3djKHZhbCwgKCgodWludDhfdCAqKWNzckFkZHIpICsgY3NyT2Zmc2V0KSkNCj4g Kw0KPiArLyogQ1NSIHJlYWQgbWFjcm8gKi8NCj4gKyNkZWZpbmUgWlNEQV9DU1JfUkQoY3NyQWRk ciwgY3NyT2Zmc2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ ICsgICAgcnRlX3JlYWQzMigoKCh1aW50OF90ICopY3NyQWRkcikgKyBjc3JPZmZzZXQpKQ0KPiAr DQo+ICsjZGVmaW5lIFpTREFfQ1NSX1dRX1JJTkdfQkFTRShjc3JfYmFzZV9hZGRyLCByaW5nLCB2 YWx1ZSkgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIGRvIHsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiAr ICAgICAgICB1aW50MzJfdCBsX2Jhc2UgPSAwLCB1X2Jhc2UgPSAwOyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ICsgICAgICAgIGxfYmFzZSA9ICh1aW50MzJfdCkodmFsdWUgJiAw eEZGRkZGRkZGKTsgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICAgICAgdV9iYXNlID0g KHVpbnQzMl90KSgodmFsdWUgJiAweEZGRkZGRkZGMDAwMDAwMDBVTEwpID4+IDMyKTsgICAgXA0K PiArICAgICAgICBaU0RBX0NTUl9XUihjc3JfYmFzZV9hZGRyLCAocmluZyA8PCAzKSArIFdRX0NT Ul9MQkFTRSwgICAgICAgICBcDQo+ICsgICAgICAgICAgICAgICAgbF9iYXNlKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgICAgICBaU0RBX0xPRyhJ TkZPLCAibF9iYXNnIC0gb2Zmc2V0OjB4JXgsIHZhbHVlOjB4JXgiLCAgICAgICAgICAgICBcDQo+ ICsgICAgICAgICAgICAgKChyaW5nIDw8IDMpICsgV1FfQ1NSX0xCQVNFKSwgbF9iYXNlKTsgICAg ICAgICAgICAgICAgXA0KPiArICAgICAgICBaU0RBX0NTUl9XUihjc3JfYmFzZV9hZGRyLCAocmlu ZyA8PCAzKSArIFdRX0NTUl9VQkFTRSwgICAgICAgICBcDQo+ICsgICAgICAgICAgICAgICAgdV9i YXNlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAg ICAgICBaU0RBX0xPRyhJTkZPLCAiaF9iYXNlIC0gb2Zmc2V0OjB4JXgsIHZhbHVlOjB4JXgiLCAg ICAgICAgICAgICBcDQo+ICsgICAgICAgICAgICAgKChyaW5nIDw8IDMpICsgV1FfQ1NSX1VCQVNF KSwgdV9iYXNlKTsgICAgICAgICAgICAgICAgXA0KPiArICAgIH0gd2hpbGUgKDApDQo+ICsNCj4g KyNkZWZpbmUgWlNEQV9DU1JfQ1FfUklOR19CQVNFKGNzcl9iYXNlX2FkZHIsIHJpbmcsIHZhbHVl KSAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgZG8geyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAg ICAgIHVpbnQzMl90IGxfYmFzZSA9IDAsIHVfYmFzZSA9IDA7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCj4gKyAgICAgICAgbF9iYXNlID0gKHVpbnQzMl90KSh2YWx1ZSAmIDB4RkZG RkZGRkYpOyAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgICAgICB1X2Jhc2UgPSAodWlu dDMyX3QpKCh2YWx1ZSAmIDB4RkZGRkZGRkYwMDAwMDAwMFVMTCkgPj4gMzIpOyAgICBcDQo+ICsg ICAgICAgIFpTREFfQ1NSX1dSKGNzcl9iYXNlX2FkZHIsIChyaW5nIDw8IDMpICsgQ1FfQ1NSX0xC QVNFLCAgICAgICAgIFwNCj4gKyAgICAgICAgICAgICAgICBsX2Jhc2UpOyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgIFpTREFfQ1NSX1dSKGNz cl9iYXNlX2FkZHIsIChyaW5nIDw8IDMpICsgQ1FfQ1NSX1VCQVNFLCAgICAgICAgIFwNCj4gKyAg ICAgICAgICAgICAgICB1X2Jhc2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ICsgICAgfSB3aGlsZSAoMCkNCj4gKw0KPiAgZXh0ZXJuIHN0cnVjdCB6c2Rh X251bV9xcHMgenNkYV9uYl9xcHM7DQo+IA0KPiAgZW51bSB6c2RhX2FkbWluX21zZ19pZCB7DQo+ IEBAIC04Nyw2ICsxMzIsMzkgQEAgc3RydWN0IHpzZGFfbnVtX3FwcyB7DQo+ICAgICAgdWludDE2 X3QgaGFzaDsNCj4gIH07DQo+IA0KPiArc3RydWN0IHpzZGFfcXBfY29uZmlnIHsNCj4gKyAgICBl bnVtIHpzZGFfc2VydmljZV90eXBlIHNlcnZpY2VfdHlwZTsNCj4gKyAgICBjb25zdCBzdHJ1Y3Qg enNkYV9xcF9od19kYXRhICpodzsNCj4gKyAgICB1aW50MTZfdCBuYl9kZXNjcmlwdG9yczsNCj4g KyAgICB1aW50MzJfdCBjb29raWVfc2l6ZTsNCj4gKyAgICBpbnQgc29ja2V0X2lkOw0KPiArICAg IGNvbnN0IGNoYXIgKnNlcnZpY2Vfc3RyOw0KPiArfTsNCj4gKw0KPiArc3RydWN0IHpzZGFfYnVm IHsNCj4gKyAgICB1aW50NjRfdCBhZGRyOw0KPiArICAgIHVpbnQzMl90IGxlbjsNCj4gKyAgICB1 aW50OF90IHJlc3J2ZFszXTsNCj4gKyAgICB1aW50OF90IHR5cGU7DQo+ICt9IF9fcnRlX3BhY2tl ZDsNCj4gKw0KPiArc3RydWN0IF9fcnRlX2NhY2hlX2FsaWduZWQgenNkYV9zZ2wgew0KPiArICAg IHN0cnVjdCB6c2RhX2J1ZiBidWZmZXJzW1pTREFfU0dMX01BWF9OVU1CRVJdOw0KPiArfTsNCj4g Kw0KPiArc3RydWN0IHpzZGFfb3BfY29va2llIHsNCj4gKyAgICBzdHJ1Y3QgenNkYV9zZ2wgc2ds X3NyYzsNCj4gKyAgICBzdHJ1Y3QgenNkYV9zZ2wgc2dsX2RzdDsNCj4gKyAgICBwaHlzX2FkZHJf dCBzZ2xfc3JjX3BoeXNfYWRkcjsNCj4gKyAgICBwaHlzX2FkZHJfdCBzZ2xfZHN0X3BoeXNfYWRk cjsNCj4gKyAgICBwaHlzX2FkZHJfdCBjb21wX2hlYWRfcGh5c19hZGRyOw0KPiArICAgIHVpbnQ4 X3QgY29tcF9oZWFkW0NPTVBfUkVNT1ZFX1NQQUNFX0xFTl07DQo+ICsgICAgdWludDE2X3Qgc2lk Ow0KPiArICAgIGJvb2wgdXNlZDsNCj4gKyAgICBib29sIGRlY29tcF9ub190YWlsOw0KPiArICAg IHZvaWQgKm9wOw0KPiArfTsNCj4gKw0KPiAgZXh0ZXJuIHN0cnVjdCB6c2RhX251bV9xcHMgenNk YV9uYl9xcHM7DQo+IA0KPiAgaW50IHpzZGFfcXVldWVfc3RhcnQoY29uc3Qgc3RydWN0IHJ0ZV9w Y2lfZGV2aWNlICpwY2lfZGV2KTsNCj4gQEAgLTk0LDQgKzE3MiwxMSBAQCBpbnQgenNkYV9xdWV1 ZV9zdG9wKGNvbnN0IHN0cnVjdCBydGVfcGNpX2RldmljZQ0KPiAqcGNpX2Rldik7DQo+IA0KPiAg aW50IHpzZGFfcXVldWVfaW5pdChzdHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6c2RhX3BjaV9kZXYp Ow0KPiANCj4gK3N0cnVjdCB6c2RhX3FwX2h3ICoNCj4gK3pzZGFfcXBzX2h3X3Blcl9zZXJ2aWNl KHN0cnVjdCB6c2RhX3BjaV9kZXZpY2UgKnpzZGFfcGNpX2RldiwNCj4gKyAgICAgICAgICAgIGNv bnN0IGVudW0genNkYV9zZXJ2aWNlX3R5cGUgc2VydmljZSk7DQo+ICsNCj4gK2ludCB6c2RhX2Nv bW1vbl9zZXR1cF9xcCh1aW50MzJfdCBkZXZfaWQsIHN0cnVjdCB6c2RhX3FwICoqcXBfYWRkciwN Cj4gKyAgICAgICAgY29uc3QgdWludDE2X3QgcXVldWVfcGFpcl9pZCwgY29uc3Qgc3RydWN0IHpz ZGFfcXBfY29uZmlnICpjb25mKTsNCj4gKw0KPiAgI2VuZGlmIC8qIF9aU0RBX1FQX0hfICovDQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbW1vbi96c2RhL3pzZGFfcXBfY29tbW9uLmMNCj4gYi9k cml2ZXJzL2NvbW1vbi96c2RhL3pzZGFfcXBfY29tbW9uLmMNCj4gaW5kZXggNzAzNjdlNmM4Mi4u NTc3MzkyODcxZiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jb21tb24venNkYS96c2RhX3FwX2Nv bW1vbi5jDQo+ICsrKyBiL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcF9jb21tb24uYw0KPiBA QCAtNCw3ICs0LDcgQEANCj4gDQo+ICAjaW5jbHVkZSAienNkYV9xcF9jb21tb24uaCINCj4gDQo+ IC1zdGF0aWMgdm9pZA0KPiArdm9pZA0KDQpGaXggaW4gb3JpZ2luYWwgcGF0Y2guDQoNCj4gIHpz ZGFfcXVldWVfZGVsZXRlKGNvbnN0IHN0cnVjdCB6c2RhX3F1ZXVlICpxdWV1ZSkNCj4gIHsNCj4g ICAgICBjb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKm16Ow0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9jb21tb24venNkYS96c2RhX3FwX2NvbW1vbi5oDQo+IGIvZHJpdmVycy9jb21tb24venNkYS96 c2RhX3FwX2NvbW1vbi5oDQo+IGluZGV4IDM1YzcwMzhhNGQuLmRlNzQ2YWQwMGIgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcF9jb21tb24uaA0KPiArKysgYi9kcml2 ZXJzL2NvbW1vbi96c2RhL3pzZGFfcXBfY29tbW9uLmgNCj4gQEAgLTMxLDYgKzMxLDE1IEBAIGVu dW0genNkYV9zZXJ2aWNlX3R5cGUgew0KPiAgI2RlZmluZSBaU0RBX0NTUl9SRUFEOChhZGRyKSAg ICAgICAgICBydGVfcmVhZDgoKGFkZHIpKQ0KPiAgI2RlZmluZSBaU0RBX0NTUl9XUklURTgoYWRk ciwgdmFsdWUpICBydGVfd3JpdGU4X3JlbGF4ZWQoKHZhbHVlKSwgKGFkZHIpKQ0KPiANCj4gKyNk ZWZpbmUgTkJfREVTICAgICAgICAgICAgICAgICAgICA1MTINCj4gKyNkZWZpbmUgWlNEQV9TR0xf TUFYX05VTUJFUiAgICAgICAgNTEyDQo+ICsjZGVmaW5lIENPTVBfUkVNT1ZFX1NQQUNFX0xFTiAx Ng0KPiArDQo+ICsjZGVmaW5lIFpTREFfTUFYX0RFU0MgICAgICAgIDUxMg0KPiArI2RlZmluZSBa U0RBX01BWF9DWUNMRSAgICAgICAgMjU2DQo+ICsjZGVmaW5lIFpTREFfTUFYX0RFViAgICAgICAg UlRFX1BNRF9aU0RBX01BWF9QQ0lfREVWSUNFUw0KPiArI2RlZmluZSBNQVhfTlVNX09QUyAgICAg ICAgICAgIDB4MUZGDQo+ICsNCj4gIHN0cnVjdCB6c2RhX2FkbWluX3JlcSB7DQo+ICAgICAgdWlu dDE2X3QgbXNnX3R5cGU7DQo+ICAgICAgdWludDhfdCBkYXRhWzI2XTsNCj4gQEAgLTEwMSwxMCAr MTEwLDMwIEBAIHN0cnVjdCB6c2RhX3FwX3N0YXQgew0KPiAgICAgIHVpbnQ2NF90IGRlcXVldWVf ZXJyX2NvdW50Ow0KPiAgfTsNCj4gDQo+ICtzdHJ1Y3QgenNkYV9jcWUgew0KPiArICAgIHVpbnQ4 X3QgdmFsaWQ7IC8qIGNxZV9jeWNsZSAqLw0KPiArICAgIHVpbnQ4X3Qgb3BfY29kZTsNCj4gKyAg ICB1aW50MTZfdCBzaWQ7DQo+ICsgICAgdWludDhfdCBzdGF0ZTsNCj4gKyAgICB1aW50OF90IHJl c3VsdDsNCj4gKyAgICB1aW50MTZfdCB6c2RhX3dxX2lkOw0KPiArICAgIHVpbnQzMl90IHR4X3Jl YWxfbGVuZ3RoOw0KPiArICAgIHVpbnQxNl90IGVycjA7DQo+ICsgICAgdWludDE2X3QgZXJyMTsN Cj4gK30gX19ydGVfcGFja2VkOw0KPiArDQo+ICt0eXBlZGVmIGludCAoKnJ4X2NhbGxiYWNrKSh2 b2lkICpjb29raWVfaW4sIHN0cnVjdCB6c2RhX2NxZSAqY3FlKTsNCj4gK3R5cGVkZWYgaW50ICgq dHhfY2FsbGJhY2spKHZvaWQgKm9wX2luLCBjb25zdCBzdHJ1Y3QgenNkYV9xdWV1ZSAqcXVldWUs DQo+ICsgICAgICAgICAgICAgICB2b2lkICoqb3BfY29va2llcywgY29uc3QgdWludDE2X3QgbmV3 X3RhaWwpOw0KPiArdHlwZWRlZiBpbnQgKCpzcnZfbWF0Y2gpKGNvbnN0IHZvaWQgKm9wX2luKTsN Cj4gKw0KPiAgc3RydWN0IHFwX3NydiB7DQo+ICAgICAgYm9vbCB1c2VkOw0KPiAgICAgIHN0cnVj dCB6c2RhX3F1ZXVlIHR4X3E7DQo+ICAgICAgc3RydWN0IHpzZGFfcXVldWUgcnhfcTsNCj4gKyAg ICByeF9jYWxsYmFjayByeF9jYjsNCj4gKyAgICB0eF9jYWxsYmFjayB0eF9jYjsNCj4gKyAgICBz cnZfbWF0Y2ggbWF0Y2g7DQo+ICAgICAgc3RydWN0IHpzZGFfcXBfc3RhdCBzdGF0czsNCj4gICAg ICBzdHJ1Y3QgcnRlX21lbXBvb2wgKm9wX2Nvb2tpZV9wb29sOw0KPiAgICAgIHZvaWQgKipvcF9j b29raWVzOw0KPiBAQCAtMTE5LDUgKzE0OCw2IEBAIGludCB6c2RhX3F1ZXVlX3BhaXJfcmVsZWFz ZShzdHJ1Y3QgenNkYV9xcCAqKnFwX2FkZHIpOw0KPiAgdm9pZCB6c2RhX3N0YXRzX2dldCh2b2lk ICoqcXVldWVfcGFpcnMsIGNvbnN0IHVpbnQzMl90IG5iX3F1ZXVlX3BhaXJzLA0KPiAgICAgICAg ICAgIHN0cnVjdCB6c2RhX3FwX3N0YXQgKnN0YXRzKTsNCj4gIHZvaWQgenNkYV9zdGF0c19yZXNl dCh2b2lkICoqcXVldWVfcGFpcnMsIGNvbnN0IHVpbnQzMl90IG5iX3F1ZXVlX3BhaXJzKTsNCj4g K3ZvaWQgenNkYV9xdWV1ZV9kZWxldGUoY29uc3Qgc3RydWN0IHpzZGFfcXVldWUgKnF1ZXVlKTsN Cj4gDQo+ICAjZW5kaWYgLyogX1pTREFfUVBfQ09NTU9OX0hfICovDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2NvbXByZXNzL3pzZGEvenNkYV9jb21wX3BtZC5jDQo+IGIvZHJpdmVycy9jb21wcmVz cy96c2RhL3pzZGFfY29tcF9wbWQuYw0KPiBpbmRleCBlOTY4MmU5M2NkLi45ODI0ZjdjODNmIDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL2NvbXByZXNzL3pzZGEvenNkYV9jb21wX3BtZC5jDQo+ICsr KyBiL2RyaXZlcnMvY29tcHJlc3MvenNkYS96c2RhX2NvbXBfcG1kLmMNCj4gQEAgLTIxMCw2ICsy MTAsMTA5IEBAIHpzZGFfY29tcF9wcml2YXRlX3hmb3JtX2ZyZWUoc3RydWN0DQo+IHJ0ZV9jb21w cmVzc2RldiAqZGV2IF9fcnRlX3VudXNlZCwNCj4gICAgICByZXR1cm4gLUVJTlZBTDsNCj4gIH0N Cj4gDQo+ICtzdGF0aWMgaW50DQo+ICt6c2RhX3NldHVwX2NvbXBfcXVldWUoc3RydWN0IHpzZGFf cGNpX2RldmljZSAqenNkYV9wY2lfZGV2LCBjb25zdCB1aW50MTZfdA0KPiBxcF9pZCwNCj4gKyAg ICAgICAgIHN0cnVjdCB6c2RhX3FwICpxcCwgdWludDE2X3QgbmJfZGVzLCBpbnQgc29ja2V0X2lk KQ0KDQpSZW5hbWUgdG8genNkYV9jb21wX3F1ZXVlX3NldHVwDQoNCj4gK3sNCj4gKyAgICBlbnVt IHpzZGFfc2VydmljZV90eXBlIHR5cGUgPSBaU0RBX1NFUlZJQ0VfRU5DT01QUkVTU0lPTjsNCj4g KyAgICBzdHJ1Y3QgenNkYV9xcF9jb25maWcgY29uZjsNCj4gKyAgICBpbnQgcmV0Ow0KPiArICAg IHN0cnVjdCB6c2RhX3FwX2h3ICpxcF9odzsNCj4gKw0KPiArICAgIHFwX2h3ID0genNkYV9xcHNf aHdfcGVyX3NlcnZpY2UoenNkYV9wY2lfZGV2LCB0eXBlKTsNCj4gKyAgICBjb25mLmh3ID0gcXBf aHctPmRhdGEgKyBxcF9pZDsNCj4gKyAgICBjb25mLnNlcnZpY2VfdHlwZSA9IHR5cGU7DQo+ICsg ICAgY29uZi5jb29raWVfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgenNkYV9vcF9jb29raWUpOw0KPiAr ICAgIGNvbmYubmJfZGVzY3JpcHRvcnMgPSBuYl9kZXM7DQo+ICsgICAgY29uZi5zb2NrZXRfaWQg PSBzb2NrZXRfaWQ7DQo+ICsgICAgY29uZi5zZXJ2aWNlX3N0ciA9ICJjb21wIjsNCj4gKw0KPiAr ICAgIHJldCA9IHpzZGFfY29tbW9uX3NldHVwX3FwKHpzZGFfcGNpX2Rldi0+enNkYV9kZXZfaWQs ICZxcCwgcXBfaWQsDQo+ICZjb25mKTsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLnJ4X2NiID0gTlVM TDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLnR4X2NiID0gTlVMTDsNCj4gKyAgICBxcC0+c3J2W3R5 cGVdLm1hdGNoID0gTlVMTDsNCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4g K3N0YXRpYyBpbnQNCj4gK3pzZGFfc2V0dXBfZGVjb21wX3F1ZXVlKHN0cnVjdCB6c2RhX3BjaV9k ZXZpY2UgKnpzZGFfcGNpX2RldiwgY29uc3QNCj4gdWludDE2X3QgcXBfaWQsDQo+ICsgICAgICAg ICAgIHN0cnVjdCB6c2RhX3FwICpxcCwgdWludDE2X3QgbmJfZGVzLCBpbnQgc29ja2V0X2lkKQ0K DQpTZXR1cCBvZiBxdWV1ZXMgaXMgYSBjb250cm9sIHBhdGggQVBJLg0KQ2FuIHlvdSBtYWtlIHRo ZSBjb21wcmVzcyBhbmQgZGVjb21wcmVzcyBxdWV1ZSBzZXR1cCBBUElzIGNvbW1vbiB3aXRoDQph IGZ1bmN0aW9uIGFyZ3VtZW50IHRvIGlkZW50aWZ5IGNvbXByZXNzaW9uL2RlY29tcHJlc3Npb24g YW5kIGlmIGNoZWNrcy4NClRoaXMgd2lsbCBhdm9pZCB1bm5lY2Vzc2FyeSBkdXBsaWNhdGlvbiBv ZiBjb2RlLg0KDQo+ICt7DQo+ICsgICAgZW51bSB6c2RhX3NlcnZpY2VfdHlwZSB0eXBlID0gWlNE QV9TRVJWSUNFX0RFQ09NUFJFU1NJT047DQo+ICsgICAgc3RydWN0IHpzZGFfcXBfY29uZmlnIGNv bmY7DQo+ICsgICAgaW50IHJldDsNCj4gKyAgICBzdHJ1Y3QgenNkYV9xcF9odyAqcXBfaHc7DQo+ ICsNCj4gKyAgICBxcF9odyA9IHpzZGFfcXBzX2h3X3Blcl9zZXJ2aWNlKHpzZGFfcGNpX2Rldiwg dHlwZSk7DQo+ICsgICAgY29uZi5odyA9IHFwX2h3LT5kYXRhICsgcXBfaWQ7DQo+ICsgICAgY29u Zi5zZXJ2aWNlX3R5cGUgPSB0eXBlOw0KPiArICAgIGNvbmYuY29va2llX3NpemUgPSBzaXplb2Yo c3RydWN0IHpzZGFfb3BfY29va2llKTsNCj4gKyAgICBjb25mLm5iX2Rlc2NyaXB0b3JzID0gbmJf ZGVzOw0KPiArICAgIGNvbmYuc29ja2V0X2lkID0gc29ja2V0X2lkOw0KPiArICAgIGNvbmYuc2Vy dmljZV9zdHIgPSAiZGVjb21wIjsNCj4gKw0KPiArICAgIHJldCA9IHpzZGFfY29tbW9uX3NldHVw X3FwKHpzZGFfcGNpX2Rldi0+enNkYV9kZXZfaWQsICZxcCwgcXBfaWQsDQo+ICZjb25mKTsNCj4g KyAgICBxcC0+c3J2W3R5cGVdLnJ4X2NiID0gTlVMTDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLnR4 X2NiID0gTlVMTDsNCj4gKyAgICBxcC0+c3J2W3R5cGVdLm1hdGNoID0gTlVMTDsNCj4gKw0KPiAr ICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfY29tcF9x cF9zZXR1cChzdHJ1Y3QgcnRlX2NvbXByZXNzZGV2ICpkZXYsIHVpbnQxNl90IHFwX2lkLA0KPiAr ICAgICAgICAgICB1aW50MzJfdCBtYXhfaW5mbGlnaHRfb3BzLCBpbnQgc29ja2V0X2lkKQ0KPiAr ew0KPiArICAgIGludCByZXQgPSBaU0RBX1NVQ0NFU1M7DQo+ICsgICAgc3RydWN0IHpzZGFfcXAg KnFwX25ldzsNCj4gKw0KPiArICAgIHN0cnVjdCB6c2RhX3FwICoqcXBfYWRkciA9DQo+ICsgICAg ICAgIChzdHJ1Y3QgenNkYV9xcCAqKikmKGRldi0+ZGF0YS0+cXVldWVfcGFpcnNbcXBfaWRdKTsN Cj4gKyAgICBzdHJ1Y3QgenNkYV9jb21wX2Rldl9wcml2YXRlICpjb21wX3ByaXYgPSBkZXYtPmRh dGEtPmRldl9wcml2YXRlOw0KPiArICAgIHN0cnVjdCB6c2RhX3BjaV9kZXZpY2UgKnpzZGFfcGNp X2RldiA9IGNvbXBfcHJpdi0+enNkYV9wY2lfZGV2Ow0KPiArICAgIHVpbnQxNl90IG51bV9xcHNf Y29tcCA9IHpzZGFfbmJfcXBzLmVuY29tcDsNCj4gKyAgICB1aW50MTZfdCBudW1fcXBzX2RlY29t cCA9IHpzZGFfbmJfcXBzLmRlY29tcDsNCj4gKyAgICB1aW50MTZfdCBuYl9kZXMgPSBtYXhfaW5m bGlnaHRfb3BzICYgMHhmZmZmOw0KPiArDQo+ICsgICAgbmJfZGVzID0gKG5iX2RlcyA9PSBOQl9E RVMpID8gbmJfZGVzIDogTkJfREVTOw0KPiArDQo+ICsgICAgaWYgKCpxcF9hZGRyICE9IE5VTEwp IHsNCj4gKyAgICAgICAgcmV0ID0genNkYV9jb21wX3FwX3JlbGVhc2UoZGV2LCBxcF9pZCk7DQo+ ICsgICAgICAgIGlmIChyZXQpDQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgIH0N Cj4gKw0KPiArICAgIHFwX25ldyA9IHJ0ZV96bWFsbG9jX3NvY2tldCgienNkYSBQTUQgcXAgbWV0 YWRhdGEiLCBzaXplb2YoKnFwX25ldyksDQo+ICsgICAgICAgICAgICAgICAgICAgIFJURV9DQUNI RV9MSU5FX1NJWkUsIHNvY2tldF9pZCk7DQo+ICsgICAgaWYgKHFwX25ldyA9PSBOVUxMKSB7DQo+ ICsgICAgICAgIFpTREFfTE9HKEVSUiwgIkZhaWxlZCEgcXBfbmV3IGlzIE5VTEwiKTsNCj4gKyAg ICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgaWYgKG51bV9xcHNf Y29tcCA9PSBNQVhfUVBTX09OX0ZVTkNUSU9OKQ0KPiArICAgICAgICByZXQgPSB6c2RhX3NldHVw X2NvbXBfcXVldWUoenNkYV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBuYl9kZXMsDQo+ICsgICAg ICAgICAgICAgICAgICAgIHNvY2tldF9pZCk7DQo+ICsgICAgZWxzZSBpZiAobnVtX3Fwc19kZWNv bXAgPT0gTUFYX1FQU19PTl9GVU5DVElPTikNCj4gKyAgICAgICAgcmV0ID0genNkYV9zZXR1cF9k ZWNvbXBfcXVldWUoenNkYV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3LCBuYl9kZXMsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgc29ja2V0X2lkKTsNCj4gKyAgICBlbHNlIHsNCj4gKyAgICAgICAg cmV0ID0genNkYV9zZXR1cF9jb21wX3F1ZXVlKHpzZGFfcGNpX2RldiwgcXBfaWQsIHFwX25ldywg bmJfZGVzLA0KPiArICAgICAgICAgICAgICAgICAgICBzb2NrZXRfaWQpOw0KPiArICAgICAgICBy ZXQgfD0genNkYV9zZXR1cF9kZWNvbXBfcXVldWUoenNkYV9wY2lfZGV2LCBxcF9pZCwgcXBfbmV3 LCBuYl9kZXMsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgc29ja2V0X2lkKTsNCj4gKyAgICB9 DQo+ICsNCj4gKyAgICBpZiAocmV0KSB7DQo+ICsgICAgICAgIHJ0ZV9mcmVlKHFwX25ldyk7DQo+ ICsgICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgKnFwX2FkZHIgPSBx cF9uZXc7DQo+ICsNCj4gKyAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiArDQo+ICBzdGF0aWMgc3Ry dWN0IHJ0ZV9jb21wcmVzc2Rldl9vcHMgY29tcHJlc3NfenNkYV9vcHMgPSB7DQo+IA0KPiAgICAg IC5kZXZfY29uZmlndXJlID0genNkYV9jb21wX2Rldl9jb25maWcsDQo+IEBAIC0yMjAsOCArMzIz LDggQEAgc3RhdGljIHN0cnVjdCBydGVfY29tcHJlc3NkZXZfb3BzIGNvbXByZXNzX3pzZGFfb3Bz ID0NCj4gew0KPiANCj4gICAgICAuc3RhdHNfZ2V0ID0genNkYV9jb21wX3N0YXRzX2dldCwNCj4g ICAgICAuc3RhdHNfcmVzZXQgPSB6c2RhX2NvbXBfc3RhdHNfcmVzZXQsDQo+IC0gICAgLnF1ZXVl X3BhaXJfc2V0dXAgPSBOVUxMLA0KPiAtICAgIC5xdWV1ZV9wYWlyX3JlbGVhc2UgPSBOVUxMLA0K PiArICAgIC5xdWV1ZV9wYWlyX3NldHVwID0genNkYV9jb21wX3FwX3NldHVwLA0KPiArICAgIC5x dWV1ZV9wYWlyX3JlbGVhc2UgPSB6c2RhX2NvbXBfcXBfcmVsZWFzZSwNCj4gDQo+ICAgICAgLnBy aXZhdGVfeGZvcm1fY3JlYXRlID0genNkYV9jb21wX3ByaXZhdGVfeGZvcm1fY3JlYXRlLA0KPiAg ICAgIC5wcml2YXRlX3hmb3JtX2ZyZWUgPSB6c2RhX2NvbXBfcHJpdmF0ZV94Zm9ybV9mcmVlLA0K PiAtLQ0KPiAyLjI3LjANCg0K