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 774CEA00C4; Wed, 12 Oct 2022 15:39:18 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 18E7443053; Wed, 12 Oct 2022 15:39:18 +0200 (CEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60083.outbound.protection.outlook.com [40.107.6.83]) by mails.dpdk.org (Postfix) with ESMTP id 4AE404303E for ; Wed, 12 Oct 2022 15:39:17 +0200 (CEST) ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=N7PEqlikwq1sz70jsUwFJBNoLxYJefjxsigI6rO3JgXuJ6bx5r+6maVDovSmeNsoZsXPZbPiWD7G6XY10eJx153lS9qeqoheTlWq3qha1O9NPp0XwKW0GxNQXXKGKLK5UmMcyzX9a58sWHnF7tB4J45V2LIHtmQvmWSC/g7/Vc7aDZ3CHqmTmZcBRatw6IIyROM4woaL3Mn+Vcon1xQh68qE3n+h/NzZH+Nt4/CP49PVs9lxa6esYqGu1MAqqfCOoCUKKhPEgpYKep1GRuJr4khuSMX+sSsVZyUnlNv4WRuUO5X394QmewNIX307Q0W6D32Z8OJnuNBLDjHixKcS0w== ARC-Message-Signature: i=2; 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=EC0MJZRM89sr1+qcEklK6UQqIJc6Dx7WlLMSwMrr3CU=; b=RXKgq8WZG+4xest4RswMz9PgLwqOR6PCzStaFOPqzU/aswoF4KuSKFC8Yp8rVtpcLnjZZagMwckD2VVZ5nr70wDXGEs7s4qEHDj0s36h+H+aWadEM1ePO4vlQ+fIadhi6Xv1MScF8QCKy4I+PaG/ghKZEXYlhvy7tI268phVcbPNy2SvfvsnO3bnbhaKLrhCwOMpjJE/1EL3/wsckm3hadcVepUPYrkkVeI2ZXntkXhoxkx7Zf98DxaldnNs6CiHIF9+lbiIdcCbCCxYIAUi5R+L/0DvHJImA+eOp9PQHMLl8uS103vmCBps6SwJ57Hgeu91BWuZDvlDSKvr6h1IKw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=dpdk.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EC0MJZRM89sr1+qcEklK6UQqIJc6Dx7WlLMSwMrr3CU=; b=c38J5HVN5Ygd/HWiRJD4AFu95dc7atT5atXUmhpDMFdXIa0Z0ahNyVonrU+CxBXf1zUjdPtfRBqAMpvHzcVeGp5jpwAjkhSQmFgi1JWI6lQRniq2E+r8mVIM+1D24bB/6AmjgUQMNLvyErqbeVnFbG3Fiq9oP2rsNnboRNRp6gI= Received: from AS9P251CA0023.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:50f::19) by DU0PR08MB7947.eurprd08.prod.outlook.com (2603:10a6:10:3cb::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.21; Wed, 12 Oct 2022 13:39:12 +0000 Received: from AM7EUR03FT008.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:50f:cafe::90) by AS9P251CA0023.outlook.office365.com (2603:10a6:20b:50f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15 via Frontend Transport; Wed, 12 Oct 2022 13:39:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT008.mail.protection.outlook.com (100.127.141.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.10 via Frontend Transport; Wed, 12 Oct 2022 13:39:12 +0000 Received: ("Tessian outbound 7e4a920b87c0:v128"); Wed, 12 Oct 2022 13:39:12 +0000 X-CR-MTA-TID: 64aa7808 Received: from ba558867976f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2E1E56DF-FA71-4771-81A7-56DF0D5E326A.1; Wed, 12 Oct 2022 13:39:01 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ba558867976f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 12 Oct 2022 13:39:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MMEhDV9co/C2Y422Jd/dTqTcYVVsSu2hV7cvYb8rA9ZHwsNjusxnzknwM2al5w1QDkSSkdRS6EYQPLu5jBls9JaFu+n7vl0A66GYZbrm0xH8M1ccwgrh5zoOPiVz72ftSmm9lfUNiiddHJrQ2vYXw7JpCIAmlQ65je3Txm5ljJdi/2EptTTW08IdulAYOYwVIcp2KP+NC4W+BDraZqnNJbnN3f0zc5b4PoO4ZxtYGMGZPlz9GAETnFDdqFpmIkRYbYCCWlhwgCxzlWPDfxmtG4nPhBIl/QbP3lAWe1dAnsbpFzu7M4iWAY5mJjGQLyuOY1BBkOmHnYSIgEqeFz2S8A== 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=EC0MJZRM89sr1+qcEklK6UQqIJc6Dx7WlLMSwMrr3CU=; b=GPvxfbfSwV+smfdcWRiMGL3oVKyYLDW0bK9nvxAmHsZroEHVZY7O0trBgr2zOLf2SMw90kTs+L1YK9FFzddNcURWkHoxyCeBL8WwzBWP/1pXUjAPEv8SAZ8ouQn/P5/emykbovCwbIvUBhFEpu77TFGmzzrPqj9oPfyrD34fl+blyE3Uiq5rOspwMXffkUq9dGAegjiX83CUju7eC/DhXBZS+tx4Xi4oTDo8aWAMIMPVL+LkBTXwXjYdHKdafS+01mJ+uTK0GqC1zaLsR4E+i/EINPWLvooenpm6KNrRXQi7rfxkejo5M6GVUxfp1A7y7LTo8nHmqyhAnTYZZmdp6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EC0MJZRM89sr1+qcEklK6UQqIJc6Dx7WlLMSwMrr3CU=; b=c38J5HVN5Ygd/HWiRJD4AFu95dc7atT5atXUmhpDMFdXIa0Z0ahNyVonrU+CxBXf1zUjdPtfRBqAMpvHzcVeGp5jpwAjkhSQmFgi1JWI6lQRniq2E+r8mVIM+1D24bB/6AmjgUQMNLvyErqbeVnFbG3Fiq9oP2rsNnboRNRp6gI= Received: from AS8PR08MB7718.eurprd08.prod.outlook.com (2603:10a6:20b:50a::22) by PAWPR08MB8840.eurprd08.prod.outlook.com (2603:10a6:102:339::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.19; Wed, 12 Oct 2022 13:38:59 +0000 Received: from AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::165f:9706:a442:32d8]) by AS8PR08MB7718.eurprd08.prod.outlook.com ([fe80::165f:9706:a442:32d8%7]) with mapi id 15.20.5676.028; Wed, 12 Oct 2022 13:38:59 +0000 From: Feifei Wang To: Konstantin Ananyev , "thomas@monjalon.net" , Ferruh Yigit , Andrew Rybchenko , Ray Kinsella CC: "dev@dpdk.org" , nd , Honnappa Nagarahalli , Ruifeng Wang , nd Subject: =?utf-8?B?5Zue5aSNOiDlm57lpI06IFtQQVRDSCB2MiAxLzNdIGV0aGRldjogYWRkIEFQ?= =?utf-8?Q?I_for_direct_rearm_mode?= Thread-Topic: =?utf-8?B?5Zue5aSNOiBbUEFUQ0ggdjIgMS8zXSBldGhkZXY6IGFkZCBBUEkgZm9yIGRp?= =?utf-8?Q?rect_rearm_mode?= Thread-Index: AQHY0hubrZ1gYS40jUunqUVQppYvUK38aE4AgAxcYgCAARargIAA+/HQ Date: Wed, 12 Oct 2022 13:38:59 +0000 Message-ID: References: <20220927024756.947272-1-feifei.wang2@arm.com> <20220927024756.947272-2-feifei.wang2@arm.com> <771c16c9-cb84-2d35-5e64-3686b7b5822e@yandex.ru> In-Reply-To: <771c16c9-cb84-2d35-5e64-3686b7b5822e@yandex.ru> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 10FC898C0628C1499B1780EC2DAABB43.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: AS8PR08MB7718:EE_|PAWPR08MB8840:EE_|AM7EUR03FT008:EE_|DU0PR08MB7947:EE_ X-MS-Office365-Filtering-Correlation-Id: 0a47c475-95fd-4da8-b9b1-08daac572603 x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: QAPXbR3cTt+7tsgjdl3aZxx88vt/iOQfTrIYne7s0PPvW1WAIJPo7YI+tTdHvpyaelXEXRTy8QBSHyXfcVobnWVX1ZLinKHbvYWNu6+mBq2iX9V++GUfDIA5DRGhsi5o0MGusopLB0QXJ24kN5Lw48bopoJH8Y4BC8JH3eu4FcpyUculckkBhvFil0OMYwOZ+4/k2y12NPdtAqTsjGB40gA90abF8l4yng2nzuXvL1S95OThyA0m+E7XQm6cCAak9Q1ZI4t3YFa6wWEunioaRwdWhjJIrshBOdJQQZbi5xWfdp9CcRybiKt+A4KS/WLQcBt4Tybq8iXNsyYE2fPZOKFedTE06Wdeg3/OYpLGKnV1vNX8UZRuMuII+TQDEPcis6uCL44KGaK8ahxfE+CKVwpivFzD1cMBYnNGMcwAacH1GM6fqg0OiIQdok2JGiVw7Bjf5rcwjND7w+lI7dX78/8hPBauV+Kr3RDUHd7DHD2m9FMxXEqOPBd9+5xmxngD+iwxk1a3vvtq8Chh8ojNyXEvWdoQDJWLM+xbu+S42eFywEjodE4Fqh7Q1Wtd+piZkBCISzLHxbefDOPlW+j2eM0Sww415Z4DHHxV7r+0Tuw7wsM9CgHnJaXG1Js6Cd7L5mNXG6vCihjd0oz3YjrHZ5qLPXSmslQ2oIJdkJt62W+4F3i3Dqi5Tr7d4zOr9nVUoyQU+qVWl5DnGUBjRlJkNaDGsd025SxXG8f7NIugulvmxF9o8yyDSfkVjUbKq/U8E061MTgNCztmbacJcScvWg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7718.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(376002)(396003)(39860400002)(136003)(366004)(346002)(451199015)(30864003)(41300700001)(52536014)(5660300002)(38070700005)(316002)(4326008)(224303003)(122000001)(66556008)(71200400001)(7696005)(66476007)(76116006)(64756008)(66946007)(6506007)(66446008)(478600001)(2906002)(33656002)(8936002)(55016003)(83380400001)(86362001)(54906003)(26005)(110136005)(38100700002)(186003)(9686003); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB8840 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 66e3818b-ebb9-4bd8-4022-08daac571e45 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Om0jTv3Bd5Nsx82KpII4tuhnlzqDnZB1tf104E9xm0if/OJhSXESVokbNwk12lBTzMzdDR3OLpqfBmrT9gGYgIbXjqgENE6KMQvJn6MCGFkgY5wEb7W2OP0WKvfw+pkfPfuZaQcqaW93YdyQ7JK5xlQC5yaJfAqqCZKIFn+flmkL5pWiQq1B6eYze4MCCcGn26+kiOX1fTHZXMffOYZgoDAhDJla/Oe7hB8ZrDGFiXfjNlmOagwcEOKnMwwbX+gRJVPTJzPu11HNe5T+GA6B7vYit8c7mbjYI/SCQ3bMzhwauM4og26CYcSCjwKL9s5LbOCdfRQVQLPHgjf066f1YZU2V6crfKJgfMTBDHlLLTi8SSHIEz6+Dt/zK9jtsBhZQyfuIXIvrDhG/jjNjjf9SHsgpZs41ei5RHItEK8wVMs2CFmV6x17Ctf9CpPO2eZfUBK4KpDIXFu8Vmwm/mRcqWOebpzdHvu7aplntbsVsO9vYpx7/GTVJHn53ZfT8Rox2jst/mDcnq5YZ/Mn5VqkfWZCKYUVo3K4ROlXAwPJzCPWLUhWLD01t5CGED51zwlVL52qTVC6uL/6RH29RmUQgu4exPzYI5QSbPKgWK94AnfvkAZIjTSqTdEAu1gqJQ8hNr7QUQJnZXX8uDhm1nLC+5escQiRksWcB8B43kBAdkw2yXGa1R2dxBrb8etEYNFJG00Uf3boIoMoP3uV6AyYfXVMW6YG1aw7SSRUJd9BoGklN1hi6Lzg7+7gLsiMIWsShLJU2c71ZfiZ0BHY7aiuPdW3xOcuW3yK38PwJ1LwZCL8o61vGz6HW7pV3cENnsiH X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230022)(4636009)(396003)(39860400002)(136003)(376002)(346002)(451199015)(46966006)(36840700001)(40470700004)(54906003)(70206006)(110136005)(316002)(82740400003)(81166007)(52536014)(8936002)(356005)(2906002)(30864003)(4326008)(70586007)(41300700001)(5660300002)(7696005)(6506007)(40480700001)(83380400001)(26005)(55016003)(336012)(186003)(47076005)(9686003)(36860700001)(478600001)(33656002)(86362001)(40460700003)(224303003)(82310400005)(23180200003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2022 13:39:12.5319 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0a47c475-95fd-4da8-b9b1-08daac572603 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB7947 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 DQoNCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IEtvbnN0YW50aW4gQW5h bnlldiA8a29uc3RhbnRpbi52LmFuYW55ZXZAeWFuZGV4LnJ1Pg0KPiDlj5HpgIHml7bpl7Q6IFdl ZG5lc2RheSwgT2N0b2JlciAxMiwgMjAyMiA2OjIxIEFNDQo+IOaUtuS7tuS6ujogRmVpZmVpIFdh bmcgPEZlaWZlaS5XYW5nMkBhcm0uY29tPjsgdGhvbWFzQG1vbmphbG9uLm5ldDsNCj4gRmVycnVo IFlpZ2l0IDxmZXJydWgueWlnaXRAeGlsaW54LmNvbT47IEFuZHJldyBSeWJjaGVua28NCj4gPGFu ZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1PjsgUmF5IEtpbnNlbGxhIDxtZHJAYXNocm9lLmV1 Pg0KPiDmioTpgIE6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFybS5jb20+OyBIb25uYXBwYSBOYWdh cmFoYWxsaQ0KPiA8SG9ubmFwcGEuTmFnYXJhaGFsbGlAYXJtLmNvbT47IFJ1aWZlbmcgV2FuZw0K PiA8UnVpZmVuZy5XYW5nQGFybS5jb20+DQo+IOS4u+mimDogUmU6IOWbnuWkjTogW1BBVENIIHYy IDEvM10gZXRoZGV2OiBhZGQgQVBJIGZvciBkaXJlY3QgcmVhcm0gbW9kZQ0KPiANCj4gDQo+IA0K PiA+Pj4gQWRkIEFQSSBmb3IgZW5hYmxpbmcgZGlyZWN0IHJlYXJtIG1vZGUgYW5kIGZvciBtYXBw aW5nIFJYIGFuZCBUWA0KPiA+Pj4gcXVldWVzLiBDdXJyZW50bHksIHRoZSBBUEkgc3VwcG9ydHMg MToxKHR4cSA6IHJ4cSkgbWFwcGluZy4NCj4gPj4+DQo+ID4+PiBGdXJ0aGVybW9yZSwgdG8gYXZv aWQgUnggbG9hZCBUeCBkYXRhIGRpcmVjdGx5LCBhZGQgQVBJIGNhbGxlZA0KPiA+Pj4gJ3J0ZV9l dGhfdHhxX2RhdGFfZ2V0JyB0byBnZXQgVHggc3dfcmluZyBhbmQgaXRzIGluZm9ybWF0aW9uLg0K PiA+Pj4NCj4gPj4+IFN1Z2dlc3RlZC1ieTogSG9ubmFwcGEgTmFnYXJhaGFsbGkgPGhvbm5hcHBh Lm5hZ2FyYWhhbGxpQGFybS5jb20+DQo+ID4+PiBTdWdnZXN0ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8 cnVpZmVuZy53YW5nQGFybS5jb20+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBGZWlmZWkgV2FuZyA8 ZmVpZmVpLndhbmcyQGFybS5jb20+DQo+ID4+PiBSZXZpZXdlZC1ieTogUnVpZmVuZyBXYW5nIDxy dWlmZW5nLndhbmdAYXJtLmNvbT4NCj4gPj4+IFJldmlld2VkLWJ5OiBIb25uYXBwYSBOYWdhcmFo YWxsaSA8aG9ubmFwcGEubmFnYXJhaGFsbGlAYXJtLmNvbT4NCj4gPj4+IC0tLQ0KPiA+Pj4gICAg bGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmggICB8ICA5ICsrKysNCj4gPj4+ICAgIGxpYi9ldGhk ZXYvZXRoZGV2X3ByaXZhdGUuYyAgfCAgMSArDQo+ID4+PiAgICBsaWIvZXRoZGV2L3J0ZV9ldGhk ZXYuYyAgICAgIHwgMzcgKysrKysrKysrKysrKysNCj4gPj4+ICAgIGxpYi9ldGhkZXYvcnRlX2V0 aGRldi5oICAgICAgfCA5NQ0KPiA+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysNCj4gPj4+ICAgIGxpYi9ldGhkZXYvcnRlX2V0aGRldl9jb3JlLmggfCAgNSArKw0KPiA+Pj4g ICAgbGliL2V0aGRldi92ZXJzaW9uLm1hcCAgICAgICB8ICA0ICsrDQo+ID4+PiAgICA2IGZpbGVz IGNoYW5nZWQsIDE1MSBpbnNlcnRpb25zKCspDQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL2xp Yi9ldGhkZXYvZXRoZGV2X2RyaXZlci5oIGIvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmgNCj4g Pj4+IGluZGV4IDQ3YTU1YTQxOWUuLjE0ZjUyOTA3YzEgMTAwNjQ0DQo+ID4+PiAtLS0gYS9saWIv ZXRoZGV2L2V0aGRldl9kcml2ZXIuaA0KPiA+Pj4gKysrIGIvbGliL2V0aGRldi9ldGhkZXZfZHJp dmVyLmgNCj4gPj4+IEBAIC01OCw2ICs1OCw4IEBAIHN0cnVjdCBydGVfZXRoX2RldiB7DQo+ID4+ PiAgICAJZXRoX3J4X2Rlc2NyaXB0b3Jfc3RhdHVzX3QgcnhfZGVzY3JpcHRvcl9zdGF0dXM7DQo+ ID4+PiAgICAJLyoqIENoZWNrIHRoZSBzdGF0dXMgb2YgYSBUeCBkZXNjcmlwdG9yICovDQo+ID4+ PiAgICAJZXRoX3R4X2Rlc2NyaXB0b3Jfc3RhdHVzX3QgdHhfZGVzY3JpcHRvcl9zdGF0dXM7DQo+ ID4+PiArCS8qKiAgVXNlIFR4IG1idWZzIGZvciBSeCB0byByZWFybSAqLw0KPiA+Pj4gKwlldGhf cnhfZGlyZWN0X3JlYXJtX3QgcnhfZGlyZWN0X3JlYXJtOw0KPiA+Pj4NCj4gPj4+ICAgIAkvKioN Cj4gPj4+ICAgIAkgKiBEZXZpY2UgZGF0YSB0aGF0IGlzIHNoYXJlZCBiZXR3ZWVuIHByaW1hcnkg YW5kIHNlY29uZGFyeQ0KPiA+Pj4gcHJvY2Vzc2VzIEBAIC00ODYsNiArNDg4LDExIEBAIHR5cGVk ZWYgaW50DQo+ID4+ICgqZXRoX3J4X2VuYWJsZV9pbnRyX3QpKHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2LA0KPiA+Pj4gICAgdHlwZWRlZiBpbnQgKCpldGhfcnhfZGlzYWJsZV9pbnRyX3QpKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LA0KPiA+Pj4gICAgCQkJCSAgICB1aW50MTZfdCByeF9xdWV1ZV9p ZCk7DQo+ID4+Pg0KPiA+Pj4gKy8qKjwgQGludGVybmFsIEdldCBUeCBpbmZvcm1hdGlvbiBvZiBh IHRyYW5zbWl0IHF1ZXVlIG9mIGFuDQo+ID4+PiArRXRoZXJuZXQgZGV2aWNlLiAqLyB0eXBlZGVm IHZvaWQgKCpldGhfdHhxX2RhdGFfZ2V0X3QpKHN0cnVjdA0KPiBydGVfZXRoX2RldiAqZGV2LA0K PiA+Pj4gKwkJCQkgICAgICB1aW50MTZfdCB0eF9xdWV1ZV9pZCwNCj4gPj4+ICsJCQkJICAgICAg c3RydWN0IHJ0ZV9ldGhfdHhxX2RhdGEgKnR4cV9kYXRhKTsNCj4gPj4+ICsNCj4gPj4+ICAgIC8q KiBAaW50ZXJuYWwgUmVsZWFzZSBtZW1vcnkgcmVzb3VyY2VzIGFsbG9jYXRlZCBieSBnaXZlbiBS eC9UeA0KPiBxdWV1ZS4NCj4gPj4gKi8NCj4gPj4+ICAgIHR5cGVkZWYgdm9pZCAoKmV0aF9xdWV1 ZV9yZWxlYXNlX3QpKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+Pj4gICAgCQkJCSAgICB1 aW50MTZfdCBxdWV1ZV9pZCk7DQo+ID4+PiBAQCAtMTEzOCw2ICsxMTQ1LDggQEAgc3RydWN0IGV0 aF9kZXZfb3BzIHsNCj4gPj4+ICAgIAlldGhfcnhxX2luZm9fZ2V0X3QgICAgICAgICByeHFfaW5m b19nZXQ7DQo+ID4+PiAgICAJLyoqIFJldHJpZXZlIFR4IHF1ZXVlIGluZm9ybWF0aW9uICovDQo+ ID4+PiAgICAJZXRoX3R4cV9pbmZvX2dldF90ICAgICAgICAgdHhxX2luZm9fZ2V0Ow0KPiA+Pj4g KwkvKiogR2V0IHRoZSBhZGRyZXNzIHdoZXJlIFR4IGRhdGEgaXMgc3RvcmVkICovDQo+ID4+PiAr CWV0aF90eHFfZGF0YV9nZXRfdCAgICAgICAgIHR4cV9kYXRhX2dldDsNCj4gPj4+ICAgIAlldGhf YnVyc3RfbW9kZV9nZXRfdCAgICAgICByeF9idXJzdF9tb2RlX2dldDsgLyoqPCBHZXQgUnggYnVy c3QNCj4gPj4gbW9kZSAqLw0KPiA+Pj4gICAgCWV0aF9idXJzdF9tb2RlX2dldF90ICAgICAgIHR4 X2J1cnN0X21vZGVfZ2V0OyAvKio8IEdldCBUeCBidXJzdA0KPiA+PiBtb2RlICovDQo+ID4+PiAg ICAJZXRoX2Z3X3ZlcnNpb25fZ2V0X3QgICAgICAgZndfdmVyc2lvbl9nZXQ7IC8qKjwgR2V0IGZp cm13YXJlDQo+ID4+IHZlcnNpb24gKi8NCj4gPj4+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L2V0 aGRldl9wcml2YXRlLmMNCj4gPj4+IGIvbGliL2V0aGRldi9ldGhkZXZfcHJpdmF0ZS5jIGluZGV4 IDQ4MDkwYzg3OWEuLmJmZTE2YzdkNzcgMTAwNjQ0DQo+ID4+PiAtLS0gYS9saWIvZXRoZGV2L2V0 aGRldl9wcml2YXRlLmMNCj4gPj4+ICsrKyBiL2xpYi9ldGhkZXYvZXRoZGV2X3ByaXZhdGUuYw0K PiA+Pj4gQEAgLTI3Niw2ICsyNzYsNyBAQCBldGhfZGV2X2ZwX29wc19zZXR1cChzdHJ1Y3QgcnRl X2V0aF9mcF9vcHMNCj4gPj4gKmZwbywNCj4gPj4+ICAgIAlmcG8tPnJ4X3F1ZXVlX2NvdW50ID0g ZGV2LT5yeF9xdWV1ZV9jb3VudDsNCj4gPj4+ICAgIAlmcG8tPnJ4X2Rlc2NyaXB0b3Jfc3RhdHVz ID0gZGV2LT5yeF9kZXNjcmlwdG9yX3N0YXR1czsNCj4gPj4+ICAgIAlmcG8tPnR4X2Rlc2NyaXB0 b3Jfc3RhdHVzID0gZGV2LT50eF9kZXNjcmlwdG9yX3N0YXR1czsNCj4gPj4+ICsJZnBvLT5yeF9k aXJlY3RfcmVhcm0gPSBkZXYtPnJ4X2RpcmVjdF9yZWFybTsNCj4gPj4+DQo+ID4+PiAgICAJZnBv LT5yeHEuZGF0YSA9IGRldi0+ZGF0YS0+cnhfcXVldWVzOw0KPiA+Pj4gICAgCWZwby0+cnhxLmNs YmsgPSAodm9pZCAqKikodWludHB0cl90KWRldi0+cG9zdF9yeF9idXJzdF9jYnM7DQo+ID4+PiBk aWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmMgYi9saWIvZXRoZGV2L3J0ZV9ldGhk ZXYuYyBpbmRleA0KPiA+Pj4gMGMyYzEwODhjMC4uMGRjY2VjMmU0YiAxMDA2NDQNCj4gPj4+IC0t LSBhL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5jDQo+ID4+PiArKysgYi9saWIvZXRoZGV2L3J0ZV9l dGhkZXYuYw0KPiA+Pj4gQEAgLTE2NDgsNiArMTY0OCw0MyBAQCBydGVfZXRoX2Rldl9pc19yZW1v dmVkKHVpbnQxNl90IHBvcnRfaWQpDQo+ID4+PiAgICAJcmV0dXJuIHJldDsNCj4gPj4+ICAgIH0N Cj4gPj4+DQo+ID4+PiAraW50DQo+ID4+PiArcnRlX2V0aF90eF9xdWV1ZV9kYXRhX2dldCh1aW50 MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPj4+ICsJCQlzdHJ1Y3QgcnRlX2V0 aF90eHFfZGF0YSAqdHhxX2RhdGEpIHsNCj4gPj4+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXY7 DQo+ID4+PiArDQo+ID4+PiArCVJURV9FVEhfVkFMSURfUE9SVElEX09SX0VSUl9SRVQocG9ydF9p ZCwgLUVOT0RFVik7DQo+ID4+PiArCWRldiA9ICZydGVfZXRoX2RldmljZXNbcG9ydF9pZF07DQo+ ID4+PiArDQo+ID4+PiArCWlmIChxdWV1ZV9pZCA+PSBkZXYtPmRhdGEtPm5iX3R4X3F1ZXVlcykg ew0KPiA+Pj4gKwkJUlRFX0VUSERFVl9MT0coRVJSLCAiSW52YWxpZCBUeCBxdWV1ZV9pZD0ldVxu IiwNCj4gPj4gcXVldWVfaWQpOw0KPiA+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+PiArCX0N Cj4gPj4+ICsNCj4gPj4+ICsJaWYgKHR4cV9kYXRhID09IE5VTEwpIHsNCj4gPj4+ICsJCVJURV9F VEhERVZfTE9HKEVSUiwgIkNhbm5vdCBnZXQgZXRoZGV2IHBvcnQgJXUgVHgNCj4gPj4gcXVldWUg JXUgZGF0YSB0byBOVUxMXG4iLA0KPiA+Pj4gKwkJCXBvcnRfaWQsIHF1ZXVlX2lkKTsNCj4gPj4+ ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+Pj4gKwl9DQo+ID4+PiArDQo+ID4+PiArCWlmIChkZXYt PmRhdGEtPnR4X3F1ZXVlcyA9PSBOVUxMIHx8DQo+ID4+PiArCQkJZGV2LT5kYXRhLT50eF9xdWV1 ZXNbcXVldWVfaWRdID09IE5VTEwpIHsNCj4gPj4+ICsJCVJURV9FVEhERVZfTE9HKEVSUiwNCj4g Pj4+ICsJCQkgICAiVHggcXVldWUgJSJQUkl1MTYiIG9mIGRldmljZSB3aXRoIHBvcnRfaWQ9JSIN Cj4gPj4+ICsJCQkgICBQUkl1MTYiIGhhcyBub3QgYmVlbiBzZXR1cFxuIiwNCj4gPj4+ICsJCQkg ICBxdWV1ZV9pZCwgcG9ydF9pZCk7DQo+ID4+PiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPj4+ICsJ fQ0KPiA+Pj4gKw0KPiA+Pj4gKwlpZiAoKmRldi0+ZGV2X29wcy0+dHhxX2RhdGFfZ2V0ID09IE5V TEwpDQo+ID4+PiArCQlyZXR1cm4gLUVOT1RTVVA7DQo+ID4+PiArDQo+ID4+PiArCWRldi0+ZGV2 X29wcy0+dHhxX2RhdGFfZ2V0KGRldiwgcXVldWVfaWQsIHR4cV9kYXRhKTsNCj4gPj4+ICsNCj4g Pj4+ICsJcmV0dXJuIDA7DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4gICAgc3RhdGljIGludA0K PiA+Pj4gICAgcnRlX2V0aF9yeF9xdWV1ZV9jaGVja19zcGxpdChjb25zdCBzdHJ1Y3QgcnRlX2V0 aF9yeHNlZ19zcGxpdA0KPiAqcnhfc2VnLA0KPiA+Pj4gICAgCQkJICAgICB1aW50MTZfdCBuX3Nl ZywgdWludDMyX3QgKm1icF9idWZfc2l6ZSwgZGlmZiAtLWdpdA0KPiA+Pj4gYS9saWIvZXRoZGV2 L3J0ZV9ldGhkZXYuaCBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oIGluZGV4DQo+ID4+PiAyZTc4 MzUzNmMxLi5kYWY3ZjA1ZDYyIDEwMDY0NA0KPiA+Pj4gLS0tIGEvbGliL2V0aGRldi9ydGVfZXRo ZGV2LmgNCj4gPj4+ICsrKyBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldi5oDQo+ID4+PiBAQCAtMTk0 OSw2ICsxOTQ5LDIzIEBAIHN0cnVjdCBydGVfZXRoX3R4cV9pbmZvIHsNCj4gPj4+ICAgIAl1aW50 OF90IHF1ZXVlX3N0YXRlOyAgICAgICAgLyoqPCBvbmUgb2YgUlRFX0VUSF9RVUVVRV9TVEFURV8q LiAqLw0KPiA+Pj4gICAgfSBfX3J0ZV9jYWNoZV9taW5fYWxpZ25lZDsNCj4gPj4+DQo+ID4+PiAr LyoqDQo+ID4+PiArICogQGludGVybmFsDQo+ID4+PiArICogU3RydWN0dXJlIHVzZWQgdG8gaG9s ZCBwb2ludGVycyB0byBpbnRlcm5hbCBldGhkZXYgVHggZGF0YS4NCj4gPj4+ICsgKiBUaGUgbWFp biBwdXJwb3NlIGlzIHRvIGxvYWQgYW5kIHN0b3JlIFR4IHF1ZXVlIGRhdGEgaW4gZGlyZWN0DQo+ ID4+PiArcmVhcm0NCj4gPj4gbW9kZS4NCj4gPj4+ICsgKi8NCj4gPj4+ICtzdHJ1Y3QgcnRlX2V0 aF90eHFfZGF0YSB7DQo+ID4+PiArCXVpbnQ2NF90ICpvZmZsb2FkczsNCj4gPj4+ICsJdm9pZCAq dHhfc3dfcmluZzsNCj4gPj4+ICsJdm9sYXRpbGUgdm9pZCAqdHhfcmluZzsNCj4gPj4+ICsJdWlu dDE2X3QgKnR4X25leHRfZGQ7DQo+ID4+PiArCXVpbnQxNl90ICpuYl90eF9mcmVlOw0KPiA+Pj4g Kwl1aW50MTZfdCBuYl90eF9kZXNjOw0KPiA+Pj4gKwl1aW50MTZfdCB0eF9yc190aHJlc2g7DQo+ ID4+PiArCXVpbnQxNl90IHR4X2ZyZWVfdGhyZXNoOw0KPiA+Pj4gK30gX19ydGVfY2FjaGVfbWlu X2FsaWduZWQ7DQo+ID4+PiArDQo+ID4+DQo+ID4+IGZpcnN0IG9mIGFsbCBpdCBpcyBub3QgY2xl YXIgd2h5IHRoaXMgc3RydWN0IGhhcyB0byBiZSBpbiBwdWJsaWMNCj4gPj4gaGVhZGVyLCB3aHkg aXQgY2FuJ3QgYmUgaW4gb24gb2YgZXRoZGV2ICdwcml2YXRlJyBoZWFkZXJzLg0KPiA+PiBTZWNv bmQgaXQgbG9va3MgbGlrZSBhIHNuaXBwZXQgZnJvbSBwcml2YXRlIHR4cSBmaWVsZHMgZm9yIHNv bWUgSW50ZWwNCj4gPj4gKGFuZCBhbGlrZSkgUE1EcyAoaTQwZSwgaWNlLCBldGMuKS4NCj4gPj4g SG93IGl0IHN1cHBvc2VkIHRvIHRvIGJlIHVuaXZlcnNhbCBhbmQgYmUgYXBwbGljYWJsZSBmb3Ig YW55IFBNRCB0aGF0DQo+ID4+IGRlY2lkZXMgdG8gaW1wbGVtZW50IHRoaXMgbmV3IEFQST8NCj4g Pj4NCj4gPj4NCj4gPj4+ICAgIC8qIEdlbmVyaWMgQnVyc3QgbW9kZSBmbGFnIGRlZmluaXRpb24s IHZhbHVlcyBjYW4gYmUgT1JlZC4gKi8NCj4gPj4+DQo+ID4+PiAgICAvKioNCj4gPj4+IEBAIC00 NzE4LDYgKzQ3MzUsMjcgQEAgaW50IHJ0ZV9ldGhfcmVtb3ZlX3J4X2NhbGxiYWNrKHVpbnQxNl90 DQo+ID4+IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+Pj4gICAgaW50IHJ0ZV9ldGhf cmVtb3ZlX3R4X2NhbGxiYWNrKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0K PiA+Pj4gICAgCQljb25zdCBzdHJ1Y3QgcnRlX2V0aF9yeHR4X2NhbGxiYWNrICp1c2VyX2NiKTsN Cj4gPj4+DQo+ID4+PiArLyoqDQo+ID4+PiArICogR2V0IHRoZSBhZGRyZXNzIHdoaWNoIFR4IGRh dGEgaXMgc3RvcmVkLg0KPiA+Pj4gKyAqDQo+ID4+PiArICogQHBhcmFtIHBvcnRfaWQNCj4gPj4+ ICsgKiAgIFRoZSBwb3J0IGlkZW50aWZpZXIgb2YgdGhlIEV0aGVybmV0IGRldmljZS4NCj4gPj4+ ICsgKiBAcGFyYW0gcXVldWVfaWQNCj4gPj4+ICsgKiAgIFRoZSBUeCBxdWV1ZSBvbiB0aGUgRXRo ZXJuZXQgZGV2aWNlIGZvciB3aGljaCBpbmZvcm1hdGlvbg0KPiA+Pj4gKyAqICAgd2lsbCBiZSBy ZXRyaWV2ZWQuDQo+ID4+PiArICogQHBhcmFtIHR4cV9kYXRhDQo+ID4+PiArICogICBBIHBvaW50 ZXIgdG8gYSBzdHJ1Y3R1cmUgb2YgdHlwZSAqcnRlX2V0aF90eHFfZGF0YSogdG8gYmUgZmlsbGVk Lg0KPiA+Pj4gKyAqDQo+ID4+PiArICogQHJldHVybg0KPiA+Pj4gKyAqICAgLSAwOiBTdWNjZXNz DQo+ID4+PiArICogICAtIC1FTk9ERVY6ICBJZiAqcG9ydF9pZCogaXMgaW52YWxpZC4NCj4gPj4+ ICsgKiAgIC0gLUVOT1RTVVA6IHJvdXRpbmUgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZGV2aWNl IFBNRC4NCj4gPj4+ICsgKiAgIC0gLUVJTlZBTDogIFRoZSBxdWV1ZV9pZCBpcyBvdXQgb2YgcmFu Z2UuDQo+ID4+PiArICovDQo+ID4+PiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4+PiAraW50IHJ0 ZV9ldGhfdHhfcXVldWVfZGF0YV9nZXQodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVf aWQsDQo+ID4+PiArCQlzdHJ1Y3QgcnRlX2V0aF90eHFfZGF0YSAqdHhxX2RhdGEpOw0KPiA+Pj4g Kw0KPiA+Pj4gICAgLyoqDQo+ID4+PiAgICAgKiBSZXRyaWV2ZSBpbmZvcm1hdGlvbiBhYm91dCBn aXZlbiBwb3J0J3MgUnggcXVldWUuDQo+ID4+PiAgICAgKg0KPiA+Pj4gQEAgLTYyMDksNiArNjI0 Nyw2MyBAQCBydGVfZXRoX3R4X2J1ZmZlcih1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdA0KPiA+ PiBxdWV1ZV9pZCwNCj4gPj4+ICAgIAlyZXR1cm4gcnRlX2V0aF90eF9idWZmZXJfZmx1c2gocG9y dF9pZCwgcXVldWVfaWQsIGJ1ZmZlcik7DQo+ID4+PiAgICB9DQo+ID4+Pg0KPiA+Pj4gKy8qKg0K PiA+Pj4gKyAqIEB3YXJuaW5nDQo+ID4+PiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBt YXkgY2hhbmdlLCBvciBiZSByZW1vdmVkLCB3aXRob3V0DQo+ID4+PiArcHJpb3Igbm90aWNlDQo+ ID4+PiArICoNCj4gPj4+ICsgKiBQdXQgVHggYnVmZmVycyBpbnRvIFJ4IHN3LXJpbmcgYW5kIHJl YXJtIGRlc2NzLg0KPiA+Pj4gKyAqDQo+ID4+PiArICogQHBhcmFtIHBvcnRfaWQNCj4gPj4+ICsg KiAgIFBvcnQgaWRlbnRpZnlpbmcgdGhlIHJlY2VpdmUgc2lkZS4NCj4gPj4+ICsgKiBAcGFyYW0g cXVldWVfaWQNCj4gPj4+ICsgKiAgIFRoZSBpbmRleCBvZiB0aGUgdHJhbnNtaXQgcXVldWUgaWRl bnRpZnlpbmcgdGhlIHJlY2VpdmUgc2lkZS4NCj4gPj4+ICsgKiAgIFRoZSB2YWx1ZSBtdXN0IGJl IGluIHRoZSByYW5nZSBbMCwgbmJfcnhfcXVldWUgLSAxXSBwcmV2aW91c2x5DQo+ID4+IHN1cHBs aWVkDQo+ID4+PiArICogICB0byBydGVfZXRoX2Rldl9jb25maWd1cmUoKS4NCj4gPj4+ICsgKiBA cGFyYW0gdHhxX2RhdGENCj4gPj4+ICsgKiAgIEEgcG9pbnRlciB0byBhIHN0cnVjdHVyZSBvZiB0 eXBlICpydGVfZXRoX3R4cV9kYXRhKiB0byBiZSBmaWxsZWQuDQo+ID4+PiArICogQHJldHVybg0K PiA+Pj4gKyAqICAgVGhlIG51bWJlciBvZiBkaXJlY3QtcmVhcm1lZCBidWZmZXJzLg0KPiA+Pj4g KyAqLw0KPiA+Pj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+Pj4gK3N0YXRpYyBfX3J0ZV9hbHdh eXNfaW5saW5lIHVpbnQxNl90DQo+ID4+PiArcnRlX2V0aF9yeF9kaXJlY3RfcmVhcm0odWludDE2 X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsDQo+ID4+PiArCQlzdHJ1Y3QgcnRlX2V0aF90 eHFfZGF0YSAqdHhxX2RhdGEpIHsNCj4gPj4+ICsJdWludDE2X3QgbmJfcmVhcm07DQo+ID4+PiAr CXN0cnVjdCBydGVfZXRoX2ZwX29wcyAqcDsNCj4gPj4+ICsJdm9pZCAqcWQ7DQo+ID4+PiArDQo+ ID4+PiArI2lmZGVmIFJURV9FVEhERVZfREVCVUdfUlgNCj4gPj4+ICsJaWYgKHBvcnRfaWQgPj0g UlRFX01BWF9FVEhQT1JUUyB8fA0KPiA+Pj4gKwkJCXF1ZXVlX2lkID49IFJURV9NQVhfUVVFVUVT X1BFUl9QT1JUKSB7DQo+ID4+PiArCQlSVEVfRVRIREVWX0xPRyhFUlIsDQo+ID4+PiArCQkJIklu dmFsaWQgcG9ydF9pZD0ldSBvciBxdWV1ZV9pZD0ldVxuIiwNCj4gPj4+ICsJCQlwb3J0X2lkLCBx dWV1ZV9pZCk7DQo+ID4+PiArCQlyZXR1cm4gMDsNCj4gPj4+ICsJfQ0KPiA+Pj4gKyNlbmRpZg0K PiA+Pj4gKw0KPiA+Pj4gKwlwID0gJnJ0ZV9ldGhfZnBfb3BzW3BvcnRfaWRdOw0KPiA+Pj4gKwlx ZCA9IHAtPnJ4cS5kYXRhW3F1ZXVlX2lkXTsNCj4gPj4+ICsNCj4gPj4+ICsjaWZkZWYgUlRFX0VU SERFVl9ERUJVR19SWA0KPiA+Pj4gKwlSVEVfRVRIX1ZBTElEX1BPUlRJRF9PUl9FUlJfUkVUKHBv cnRfaWQsIDApOw0KPiA+Pj4gKw0KPiA+Pj4gKwlpZiAocWQgPT0gTlVMTCkgew0KPiA+Pj4gKwkJ UlRFX0VUSERFVl9MT0coRVJSLCAiSW52YWxpZCBSeCBxdWV1ZV9pZD0ldSBmb3INCj4gPj4gcG9y dF9pZD0ldVxuIiwNCj4gPj4+ICsJCQlxdWV1ZV9pZCwgcG9ydF9pZCk7DQo+ID4+PiArCQlyZXR1 cm4gMDsNCj4gPj4+ICsJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwlpZiAoIXAtPnJ4X2RpcmVjdF9yZWFy bSkNCj4gPj4NCj4gPj4gVGhpcyBjaGVjayBzaG91bGQgYmUgZG9uZSBhbHdheXMgKHVuY29uZGl0 aW9uYWxseSkuDQo+ID4+IGl0IGlzIG5vdCBhIG1hbmRhdG9yeSBmdW5jdGlvbiBmb3IgdGhlIGRy aXZlciAoaXQgY2FuIHNhZmVseSBza2lwIHRvDQo+IGltcGxlbWVudCBpdCkuDQo+ID4+DQo+ID4+ PiArCQlyZXR1cm4gLUVOT1RTVVA7DQo+ID4+DQo+ID4+IFRoaXMgZnVuY3Rpb24gcmV0dXJucyB1 aW50MTZfdCwgd2h5IHNpZ25lZCBpbnRlZ2VycyBoZXJlPw0KPiA+Pg0KPiA+Pg0KPiA+Pj4gKyNl bmRpZg0KPiA+Pj4gKw0KPiA+Pj4gKwluYl9yZWFybSA9IHAtPnJ4X2RpcmVjdF9yZWFybShxZCwg dHhxX2RhdGEpOw0KPiA+Pg0KPiA+PiBTbyByeF9kaXJlY3RfcmVhcm0oKSBmdW5jdGlvbiBrbm93 cyBob3cgdG8gZXh0cmFjdCBkYXRhIGZyb20gVFggcXVldWU/DQo+ID4+IEFzIEkgdW5kZXJzdGFu ZCB0aGF0IGlzIHBvc3NpYmxlIG9ubHkgaW4gb25lIGNhc2U6DQo+ID4+IHJ4X2RpcmVjdF9yZWFy bSgpIGhhcyBmdWxsIGtub3dsZWRnZSBhbmQgYWNlc3Mgb2YgdHhxIGludGVybmFscywgZXRjLg0K PiA+PiBUaGF0IG1lYW5zIHRoYXQgcnhxIGFuZCB0eHEgaGF2ZSB0byBiZWxvbmcgdG8gdGhlIHNh bWUgZHJpdmVyIGFuZA0KPiA+PiBkZXZpY2UgdHlwZS4NCj4gPj4NCj4gPiBUaGFua3MgZm9yIHRo ZSBjb21tZW50cywgYW5kIEkgaGF2ZSBzb21lIHF1ZXN0aW9ucyBmb3IgdGhpcy4NCj4gPg0KPiA+ PiBGaXJzdCBvZiBhbGwsIEkgc3RpbGwgdGhpbmsgaXQgaXMgbm90IHRoZSBiZXN0IGRlc2lnbiBj aG9pY2UuDQo+ID4+IElmIHdlIGdvaW5nIGFoZWFkIHdpdGggaW50cm9kdWNpbmcgdGhpcyBmZWF0 dXJlLCBpdCBiZXR0ZXIgYmUgYXMNCj4gPj4gZ2VuZXJpYyBhcyBwb3NzaWJsZS4NCj4gPj4gUGx1 cyBpdCBtaXhlcyBUWCBhbmQgUlggY29kZS1wYXRocyB0b2dldGhlciwgd2hpbGUgaXQgd291bGQg YmUgbXVjaA0KPiA+PiBiZXR0ZXIgdG8gdG8ga2VlcCB0aGVtIGluZGVwZW5kZW50IGFzIHRoZXkg YXJlIHJpZ2h0IG5vdy4NCj4gPj4NCj4gPj4gQW5vdGhlciB0aGluZyB3aXRoIHN1Y2ggYXBwcm9h Y2ggLSBldmVuIGZvciB0aGUgc2FtZSBQTUQsIGJvdGggVFhRDQo+ID4+IGFuZCBSWFEgY2FuIGhh dmUgZGlmZmVyZW50IGludGVybmFsIGRhdGEgZm9ybWF0IGFuZCBiZWhhdmlvciBsb2dpYw0KPiA+ PiAoZGVwZW5kaW5nIG9uIHBvcnQvcXVldWUgY29uZmlndXJhdGlvbikuDQo+ID4gMS4gSGVyZSBU WFEgYW5kIFJYUSBoYXZlIGRpZmZlcmVudCBpbnRlcm5hbCBmb3JtYXQgbWVhbnMgdGhlIHF1ZXVl DQo+ID4gdHlwZSBhbmQgIGRlc2NzIGNhbiBiZSBkaWZmZXJlbnQsIHJpZ2h0PyBJZiBJIHVuZGVy c3RhbmQgY29ycmVjdGx5LA0KPiA+IGJhc2VkIG9uIHlvdXIgZmlyc3Qgc3RyYXRlZ3ksIGlzIGl0 IG1lYW5zIHdlIHdpbGwgbmVlZCBkaWZmZXJlbnQNCj4gPiAncmVhcm1fZnVuYycgZm9yIGRpZmZl cmVudCBxdWV1ZSB0eXBlIGluIHRoZSBzYW1lIFBNRD8NCj4gDQo+IFllcywgSSB0aGluayBzby4N Cj4gSWYgbGV0IHNheSB3ZSBoYXZlIHNvbWUgUE1EIHdoZXJlIGRlcGVuZGluZyBvbiB0aGUgY29u ZmlnLCB0aGVyZSBjcHVsZCBiZQ0KPiAyIGRpZmZlcmVudCBSWFEgZm9ybWF0czogcnhxX2EgYW5k IHJ4cV9iLCBhbmQgMiBkaWZmZXJlbnQgdHhxIGZvcm1hdHM6IHR4cV9jLA0KPiB0eHFfZC4NCj4g VGhlbiBhc3N1bWluZyBQTUQgd291bGQgbGlrZSB0byBzdXBwb3J0IGRpcmVjdC1yZWFybSBtb2Rl IGZvciBhbGwgZm91cg0KPiBjb21iaW5hdGlvbnMsIGl0IG5lZWRzIDQgZGlmZmVyZW50IHJlYXJt IGZ1bmN0aW9uczoNCj4gDQo+IHJlYXJtX3R4cV9jX3RvX3J4cV9hKCkNCj4gcmVhcm1fdHhxX2Nf dG9fcnhxX2IoKQ0KPiByZWFybV90eHFfZF90b19yeHFfYSgpDQo+IHJlYXJtX3R4cV9kX3RvX3J4 cV9iKCkNCj4gDQpUaGFuayB5b3UgZm9yIHlvdXIgZGV0YWlsZWQgZXhwbGFuYXRpb24sIEkgY2Fu IHVuZGVyc3RhbmQgdGhpcy4NCj4gDQo+ID4NCj4gPj4gU28gcnhfZGlyZWN0X3JlYXJtKCkgZnVu Y3Rpb24gc2VsZWN0aW9uIGhhdmUgdG8gYmUgZG9uZSBiYXNlZCBvbiBib3RoDQo+ID4+IFJYUSBh bmQgVFhRIGNvbmZpZy4NCj4gPj4gU28gaW5zdGVhZCBvZiBydGVfZXRoX3R4X3F1ZXVlX2RhdGFf Z2V0KCksIHlvdSdsbCBwcm9iYWJseSBuZWVkOg0KPiA+PiBldGhfcnhfZGlyZWN0X3JlYXJtX3Qg cnRlX2V0aF9nZXRfcnhfZGlyZWN0X3JlYXJtX2Z1bmMocnhfcG9ydCwNCj4gPj4gcnhfcXVldWUs IHR4X3BvcnQsIHR4X3F1ZXVlKTsNCj4gPj4gVGhlbiwgaXQgd2lsbCBiZSB1c2VyIHJlc3BvbnNp YmlsaXR5IHRvIHN0b3JlIGl0IHNvbWV3aGVyZSBhbmQgY2FsbA0KPiBwZXJpb2RpY2FsbHk6DQo+ ID4+DQo+ID4+IGNvbnRyb2xfcGF0aDoNCj4gPj4gCS4uLg0KPiA+PiAJcmVhcm1fZnVuYyA9IHJ0 ZV9ldGhfZ2V0X3J4X2RpcmVjdF9yZWFybV9mdW5jKHJ4cG9ydCwgcnhxdWV1ZSwNCj4gPj4gCQkg dHhwb3J0LCB0eHF1ZXVlKTsNCj4gPj4gZGF0YS1wYXRoOg0KPiA+PiAJd2hpbGUoLi4uKSB7DQo+ ID4+IAkJcmVhcm1fZnVuYyhyeHBvcnQsIHR4cG9ydCwgcnhxdWV1ZSwgdHhxdWV1ZSk7DQo+ID4+ IAkJcnRlX2V0aF9yeF9idXJzdChyeHBvcnQsIHJ4cXVldWUsIC4uLi4pOw0KPiA+PiAJCXJ0ZV9l dGhfdHhfYnVyc3QodHhwb3J0LCB0eHF1ZXVlLCAuLi4uKTsNCj4gPj4gCX0NCj4gPj4NCj4gPj4N Cj4gPj4gSW4gdGhhdCBjYXNlIHRoZXJlIHNlZW1zIGFic29sdXRlbHkgbm8gcG9pbnQgdG8gaW50 cm9kdWNlIHN0cnVjdA0KPiA+PiBydGVfZXRoX3R4cV9kYXRhLiByeF9kaXJlY3RfcmVhcm0oKSBh Y2Nlc3NlcyBUWFEgcHJpdmF0ZSBkYXRhDQo+ID4+IGRpcmVjdGx5IGFueXdheS4NCj4gPiAyLiBU aGlzIGlzIGEgdmVyeSBnb29kIHByb3Bvc2FsIGFuZCBpdCB3aWxsIGJlIG91ciBmaXJzdCBjaG9p Y2UuDQo+ID4gQmVmb3JlIHdvcmtpbmcgb24gaXQsIEkgaGF2ZSBhIGZldyBxdWVzdGlvbnMgYWJv dXQgaG93IHRvIGltcGxlbWVudA0KPiAncmVhcm1fZnVuYycuDQo+ID4gTGlrZSB5b3Ugc2F5IGFi b3ZlLCBtaXhlZCBSeCBhbmQgVHggcGF0aCBjb2RlIGluICdyZWFybV9mdW5jJyBtZWFucw0KPiA+ IHRoZSBoYXJkLWNvZGUgaXMgbWl4ZWQgbGlrZToNCj4gPiByZWFybV9mdW5jKC4uLikgew0KPiA+ ICAgICAgIC4uLg0KPiA+ICAgICAgdHhlcCA9ICZ0eHEtPnN3X3JpbmdbdHhxLT50eF9uZXh0X2Rk IC0gKHR4cS0+dHhfcnNfdGhyZXNoIC0gMSldOw0KPiA+ICAgICAgZm9yICguLi4pIHsNCj4gPiAg ICAgICAgIHJ4ZXBbaV0ubWJ1ZiA9IHR4ZXBbaV0ubWJ1ZjsNCj4gPiAgICAgICAgIG1iMCA9IHR4 ZXBbaV0ubWJ1ZjsNCj4gPiAgICAgICAgIHBhZGRyID0gbWIwLT5idWZfaW92YSArIFJURV9QS1RN QlVGX0hFQURST09NOw0KPiA+ICAgICAgICBkbWFfYWRkcjAgPSB2ZHVwcV9uX3U2NChwYWRkcik7 DQo+ID4gICAgICAgIHZzdDFxX3U2NCgodWludDY0X3QgKikmcnhkcCsrLT5yZWFkLCBkbWFfYWRk cjApOw0KPiA+ICAgICAgfQ0KPiA+IH0NCj4gPiBJcyBteSB1bmRlcnN0YW5kaW5nIGlzIHJpZ2h0 Pw0KPiANCj4gDQo+IFNvcnJ5LCBJIGRvbid0IHVuZGVyc3RhbmQgdGhlIHF1ZXN0aW9uLg0KPiBD YW4geW91IHByb2JhYmx5IGVsYWJvcmF0ZSBhIGJpdD8NCg0KU29ycnkgZm9yIG15IHVuY2xlYXIg ZXhwcmVzc2lvbi4NCg0KSSBtZWFuIGlmIHdlIG5lZWQgdHdvIGZ1bmMgd2hpY2ggY29udGFpbnMg dHggYW5kIHJ4IHBhdGhzIGNvZGUgcmVzcGVjdGl2ZWx5IGluIHJlYXJtX2Z1bmMsIGxpa2U6DQpy ZWFybV9mdW5jKC4uLikgew0KICAgICAgICAgcnRlX3R4X2ZpbGxfc3dfcmluZzsNCiAgICAgICAg IHJ0ZV9yeF9yZWFybV9kZXNjczsNCn0NCg0KT3IganVzdCBtaXhlZCB0eCBhbmQgcnggcGF0aCBj b2RlIGxpa2UgSSBzYWlkIGJlZm9yZS4gSSBwcmVmZXIgJ3J4IGFuZCB0eCBoYXJkIGNvZGUgbWl4 ZWQnLCANCmJlY2F1c2UgZnJvbSB0aGUgcGVyZm9ybWFuY2UgcGVyc3BlY3RpdmUsIHRoaXMgY2Fu IHJlZHVjZSB0aGUgY29zdCBvZiBmdW5jdGlvbiBjYWxscy4NCj4gDQo+ID4NCj4gPj4NCj4gPj4g QW5vdGhlciB3YXkgLSBtYWtlIHJ0ZV9ldGhfdHhxX2RhdGEgdG90YWxseSBvcGFxdWUgYW5kIGFs bG93IFBNRCB0bw0KPiA+PiBzdG9yZSB0aGVyZSBzb21lIGRhdGEgdGhhdCB3aWxsIGhlbHAgaXQg dG8gZGlzdGluZ3Vpc2ggZXhwZWN0ZWQgVFhRIGZvcm1hdC4NCj4gPj4gVGhhdCB3aWxsIGFsbG93 IFBNRCB0byBrZWVwIHJ4X2RpcmVjdF9yZWFybSgpIHRoZSBzYW1lIGZvciBhbGwNCj4gPj4gc3Vw cG9ydGVkIFRYUSBmb3JtYXRzIChpdCB3aWxsIG1ha2UgZGVjaXNpb24gaW50ZXJuYWxseSBiYXNl ZCBvbiBkYXRhDQo+ID4+IHN0b3JlZCBpbiB0eHFfZGF0YSkuDQo+ID4+IFRob3VnaCBpbiB0aGF0 IGNhc2UgeW91J2xsIHByb2JhYmx5IG5lZWQgb25lIG1vcmUgZGV2LW9wIHRvIGZyZWUNCj4gdHhx X2RhdGEuDQo+ID4NCg0K