From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BA62FC531D0 for ; Mon, 27 Jul 2026 06:25:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-ID:Content-Type:In-Reply-To:References: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=EltYfYVD6cXXyWIthz/p+w4WNXF2iTzx5v5jMJ44rw8=; b=BvkX77sxB3QJoa7pOLSY1YajqY 5IZKXsJLgcztxxq0lub9No0tYZdwTm4JyGajaPn2V9VtA2dZJ5hC7ZnLpa/hSAfFEnjEDaYynsUGl u//4Kn5qdfuYPAm4hYEj9g+XQ0MKxdmdoBr1KvQgHFDB4Dmd4l4sz3Ceqz6l5iuRxrDry3I4qNbw4 wwh96KHb+SbP1vu++BipbndDVJ9yfEmqAqAj/amTHU/XKeGDOBYMDFZ7e/8mz+pmEsyxSA4AuyP/7 4xH29NMgzovKnaUWr6V8O1pIuHHXOdWq+JKB/j6rmZAGeqet0rKC2MtEII+DD1V8ZWASdO03to0Ff e/xEFzbQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1woEli-0000000217P-1XOT; Mon, 27 Jul 2026 06:24:54 +0000 Received: from mail-northcentralusazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c105::1] helo=CH1PR05CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1woElb-0000000214h-1fBA for linux-arm-kernel@lists.infradead.org; Mon, 27 Jul 2026 06:24:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=P3leTvDJrX720/wJnwxWzQnuh/OdxssvLI0mg8538YGh2FWtwvr32I7FuMpeTuGeFQWyC6oevIjU6STusuYcEgQRcsBQUwhCsxJqpW56A5wSymiSzSW3gQ0SWF2GvCQduGud8/rzbimePxZkG7vjr9SDuiRym3AW/bxp2VSBGcu1kzIHS1CdUX2NXtX6vV2YcZAZhy2P91ytYHrVwd/+REbjIt6rz9A++tjX3Wna6zGY8vO4AizANFIIMJNcXCRU8gU7a+7k69Rx8F3Btx9b7VXuFSXV7kJUuztgGkUZXQ0f8vWc9+jdlYOSKo7dOKEHlvgRlNRAQfZi/lY+u1YqSQ== 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=EltYfYVD6cXXyWIthz/p+w4WNXF2iTzx5v5jMJ44rw8=; b=P2R02OphxJUKUY7OXrjO9Q5KAyKyLwKYcMFZLF28Nr/T/2pzY9Efh95MNf9u/Fj5NlDedzeSaOk7MjjCilIEjHzEParlpu5CO8dkL71yAt1ishRtOGMmXPqrRt0o4/Ikby/RKKGFGReE+okGO1tnkvM+h2vKK3MKRg2jbIS+dAIy1L1+uUZ/YuaOrZsJMpAIyd8OVHqmqIIZQI3no/G0mMJOongB4CKxZyFoUY0C3GgTEUIiqa3oaZUtfVdaEFmTjAzIC+81ZbpeeDW31sH/tdwK4V8FNCZP7nLsu+NV4h+wBn3vmPKNvNZeQPVJGy5j0DEf/mK4pXGUI7lSGlcZeA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchip.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EltYfYVD6cXXyWIthz/p+w4WNXF2iTzx5v5jMJ44rw8=; b=Pj4tJ5T3E4b8gP4Uz+AcTlmV0asUlHI69Ym1a8q9JZ9/ZWDHGkGP+UcWVOt4E3GYsuheecUAadd2A8tKevcAcsJ3r18vS63lHcmw7M407Dch8584ym4L0I7AEY0Qn5lVx1ggRZweurDgofZutn5wE8QmeZyndkdSK9AMCQhjy/QWosLPLnYgQAkioQe9KBcLq7rH8eUL2yCDoUxMmGzSX8A7jRVvVL1SVBmwT1tfzDfQ7MJjPH7dFAAoLO6F9c2a1wMR78MwqJ6ODv1WOw49SavU+ygrAKjhJrFZ1uywLfIc5OkgN/93vdcvX1TsClTa0zAYZs3wxI/lQ6UjPggsKA== Received: from IA3PR11MB9014.namprd11.prod.outlook.com (2603:10b6:208:583::17) by SA2PR11MB4809.namprd11.prod.outlook.com (2603:10b6:806:112::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.245.13; Mon, 27 Jul 2026 06:24:39 +0000 Received: from IA3PR11MB9014.namprd11.prod.outlook.com ([fe80::13c0:2f12:94a2:8dc8]) by IA3PR11MB9014.namprd11.prod.outlook.com ([fe80::13c0:2f12:94a2:8dc8%6]) with mapi id 15.21.0223.017; Mon, 27 Jul 2026 06:24:39 +0000 From: To: CC: , , , , , , , , , , , , , , , , , , , , , Subject: Re: [PATCH v3 06/13] nvmem: microchip-otpc: add tag-based packet lookup Thread-Topic: [PATCH v3 06/13] nvmem: microchip-otpc: add tag-based packet lookup Thread-Index: AQHdCHQZdJFct0OCy0CWRGZddDJB/7Z4eVqAgACxrgCABUdkgIACneCA Date: Mon, 27 Jul 2026 06:24:39 +0000 Message-ID: <5f84fd39-e8cd-488e-95f5-6fd39c3c6acb@microchip.com> References: <20260630093603.38663-1-varshini.rajendran@microchip.com> <20260630093603.38663-7-varshini.rajendran@microchip.com> <3998b196-6417-49b0-b8d3-a95a5b415916@tuxon.dev> <5e940d60-3137-49d5-8a62-25c746c58d7e@microchip.com> <87697527-0aff-4647-ae11-0eb51db9b134@tuxon.dev> In-Reply-To: <87697527-0aff-4647-ae11-0eb51db9b134@tuxon.dev> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA3PR11MB9014:EE_|SA2PR11MB4809:EE_ x-ms-office365-filtering-correlation-id: 7d53846f-f219-44cd-aa9f-08deeba7bd0c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|23010399003|38070700021|6133799003|4143699003|56012099006|11063799006|10067099003|22082099003|18002099003; x-microsoft-antispam-message-info: 8PT4Pvhi98eiiZPRFlfDjrw80nuqQfJz/GLdLd28sUmutZaohHT833AtS6Jf1SC9vUo3v7R9ijHZK/Clu8W6NmYiht4PgJ86YKhz0djLZEZdRGPIxkSsD9iC1qrg/2aPrAuCvAmxMXr+a8dZ8aBDFmeXQ5nAXnPrTlcSs/t2x0qTEd5RJPZdYEsBIqCxOQBGnQAsk5EkH/tdrO4MbUQA6r1zlkRKhSNOfo2q7ivotyl5LC2pZ9WmbJLMlgSfSAgM/9UpKoJCD4GZMHoUAi7xl7OdiTLLLafdG6otrvY4Ijlu2HcFOasPpLSi542WAUjo3m2dv9pxf1SSy97h79cwoJgDjKH2xKnRT5dqteyaOOAXW3Ux36cYqLQibkCmhQwgJ02MS32x9IE0/hURQEDSgLpnJbvtuZoR13K4787xrkAlAM0xXAil/d+M8xFPTd8Eo6MwuaDxR9TUDkxzaSC6bL/e9rL/7pRku/Xp5lczwZi2+3/nkaIPGlvYzuW4zMGsJ+OqfH0QkzzL7rXBwWpy+YLxUjIWM7XsNRoAozhSOGG7iPW70pYfti+PUAgF2HZ+qmlvu5EuOpVa5agKbIs691gezS57gYLrNGKZMolZVnWOs1Q9SNsR0f/DWkacj+SweiBtI5fqueppkzSUfAfnzbLV9v62NpBD85wB+kaXTdIuVxmj6FujehlIvnqx9CcHnxaKZeSXtz9g8mLEpJ4s1Xo0qriBE25llfjNP+8x0b0= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA3PR11MB9014.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016)(23010399003)(38070700021)(6133799003)(4143699003)(56012099006)(11063799006)(10067099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NVl0dTQzOGhhdkROTFdvaVVUOEJjd0c0YnFpWkR6YjRmcnVnTEVMdnZ6ZTlG?= =?utf-8?B?MnJ0OGdmWDJBazJablRYT1h4dGgyaWU4ekljc3VEUVpsdmRnRkU3ZG4xVG1K?= =?utf-8?B?Rkl1TEVnbzdtdzFrMVFOcWVMUEl3dWdIZVowMDdRVi93ZlNNL0x6alhsYytZ?= =?utf-8?B?TVRHUjI3NU9xTnBXaUh3QW9vTyt6QkN0TmFpSEVQZ1o4SzFEbW5kU2xWMnFH?= =?utf-8?B?RjFDMnJVMjcvaG5KVHUyd1F3RW54NzJrT2JER2dlWUNzYTNGYkptT1ZjVGFw?= =?utf-8?B?aEtaRXIzUWdBY2ZiQngyZFZWT0prMkt4NXhXK2RBRHZqSTk4WFdpTlpkd2Zt?= =?utf-8?B?ZzhqREI4Uk13dVd4Zkk0aG5QTUJTdWxSQUwrYml5cWFFWlNWY1pZMUNFaUJt?= =?utf-8?B?bE04bHErQ2hZQWJUYW42RlVwU2E1YnhpemExRnFpN3dQL05reWlNMmpMY25w?= =?utf-8?B?aVdzdTQzN3VrSlhCaWdEdStRWmVkbXJHUXo0NHZkVHFJMUtJbklidldkcDlL?= =?utf-8?B?aWRWYktPSHVGT3V6TUZmU2E1TTFFQ0t0Wk9yamRPVkwzdzk5dUphaFZYS3Ir?= =?utf-8?B?Vjc4MmZ6YTB2Y1krNGI1bGtKRi9UeERIeGhzT2pCcE9nZCt2Y29QeHY0K3d4?= =?utf-8?B?OWx4N0VvS3lHbVZkUkZPZ1NLbHErb05KWjQwbE5HOHFHYjdFRnVVRDZ1RWdZ?= =?utf-8?B?VFUzaFJCcGdxUTZUeGpoRHo2ZUM2VG9sby9LMDhxRDhmQktqNmlOZ3dZVnlI?= =?utf-8?B?TW5nM2FMRGxYbU5oeXNmWjhuQ0tMalliajFsRko5TUJPNTJMUDZIWXozaldw?= =?utf-8?B?T0tBOGFJbnBNcXN4RU5pRGlKOWxuZE8vazYvV0M5RHdiQXhYRjBrSlRVTUZk?= =?utf-8?B?SkM3cktPSjVybnNzQkFFbDl3c1JWRzFxMXVhai9rSDJpN3JZRnhlSHhmZXNM?= =?utf-8?B?Y0VrTWJsRFFaV3VhODZpZGROSXBlYXJpMnU5a0plYXB3WGthdWdpT29Fazdw?= =?utf-8?B?b2ZiY1c5VTJjVzVVUkFlQ2hlNDFlNkxXRFNqTFhESHFHUitraU54akMxRWhs?= =?utf-8?B?M1FwSnF6OHAyNE9iTDBGN29MRGl2ZDFoMm1LV1d0VjFadXdocFFqRzlnQ3FH?= =?utf-8?B?UmZhVHRDQzJ1eXh6ZHhKcS9SOFgyb3dHcDdCNitBOHcrWFJ6cjF2Q1FlalhK?= =?utf-8?B?ejhad1hObllxZVZxak1rTWFJbTE2MVkwZGpoWVhFbXU0Q1ZPT1dodWFYaGFX?= =?utf-8?B?ZEJnWnB5aXBKV1B3VG1QRWd4eXQ5ait0eW1rMjBlZVJFTFltRnZrdW9pdkpB?= =?utf-8?B?MERSOXpnTzcrbmZUeXRjQnhFVVRVQWFwU0tZc0V5M05XSVcwVjZETFdjaDgv?= =?utf-8?B?Nk1NbTEwbk1neC9PeHRyMGVUUkE3Mzl6VEpGQVpJT0NiZ2g3K0dCTUYvdmFv?= =?utf-8?B?ZUs2MzROcUU2Y2RiTVVHZ1g4MmNwbjBUbkNkOXJjbUhtbzN6aThIN1lrcEhV?= =?utf-8?B?MlpVd2lld3orSWdoTVZHc1hxUnNQVVVTMEx3ODIvYlNFRDZnUmEyOFFGQ3Nx?= =?utf-8?B?WGx3eEEvZ0J1RU1pTmRmY0N0ZVdRODZRY1k0M2g4cGpZd1JjdTIrTkNQQlgz?= =?utf-8?B?RWkyMzB3dW85Rmc3Rkw5Q1lLdkJhMmRVWkJ4SGN4MEhqR3pVdW5WQWl5MUxQ?= =?utf-8?B?TmlUV3RneGV2R0d4ay94bHp2aEtXSTVrZXVTSmJiMDR3UEo2cHcwZzBrUW5a?= =?utf-8?B?anR2RGw3V0RKM21VTlM5M2ZuK0JVdFRZRUVCN3VNSU5BSTJXY25TVGF3Mk90?= =?utf-8?B?UUh1eVRaazFLV1Bpeko5bi9HeXR2N1RXRnhVcmNqdm02d2dpMGZQVWNwdHlq?= =?utf-8?B?SDNkVkxGeDdPalhHTDBDcE9oc05rQkVnNlFMczVyNzlsUzNucHUraXlmOXZB?= =?utf-8?B?TFFNdFNFRTl0NFZCOUlzc1hldzFnTUI0WktrUUhYRnR3RmRpR2xvQWdVd2Ir?= =?utf-8?B?cXhTQ0JHa0xKYzNxWnJBYm5FNVVwVTdZNUsvTXdvbmtGVldzYVNzTkZuQnJX?= =?utf-8?B?aXBxUTNkN0tOQUVHNVBhdUp6QzUxL3V6ZEF6MjlQWm03NFZnTFYwdkl4NkJo?= =?utf-8?B?Z3Zka3VwQkVaS213QjZENmh4MFNLM0c0ZFdRcTBTempiSXZGalFHRGExbExz?= =?utf-8?B?bGdkUktadzIzWGUwajJyMXgydTdjUHFlRm8xd3N3RzRTcWltTURtUllkb09E?= =?utf-8?B?NTJ3N2dVNGZsTXhMUEs3QWRUWWE2dlhJMnVTOGZPM21zNXl4T1FTaVVaVW9D?= =?utf-8?B?WnZFNjMrT3JUM2pDajg2czJxZG1LTWhkekxIdW16QUpoL2lUa2hHOVlnUDdy?= =?utf-8?Q?i99uU6r2rYF+k57o=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <74325D1D7ABE0A409A639074D51E471F@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: microchip.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA3PR11MB9014.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d53846f-f219-44cd-aa9f-08deeba7bd0c X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jul 2026 06:24:39.6483 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: U0Eur4eFjhHt64xkSQV8b5taE/hAh7YDKNYK1Z5qrTOMNnlYVspIAe9FOUx3BaTSykGDYSK6Y+MvhOanVDsHBvCV7a4Xln0X/qteNH5re3BX9whKRBaqBh1uJMp9qlxS X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR11MB4809 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.9.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260726_232447_732520_1B81D1D7 X-CRM114-Status: GOOD ( 26.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQ2xhdWRpdSwNCg0KT24gMjUvMDcvMjYgNzo1NyBwbSwgQ2xhdWRpdSBCZXpuZWEgd3JvdGU6 DQo+IEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xpY2sgbGlua3Mgb3Igb3BlbiBhdHRhY2htZW50 cyB1bmxlc3MgeW91IGtub3cgDQo+IHRoZSBjb250ZW50IGlzIHNhZmUNCj4gDQo+IEhpLCBWYXJz aGluaSwNCj4gDQo+IE9uIDcvMjIvMjYgMDg6NTAsIFZhcnNoaW5pLlJhamVuZHJhbkBtaWNyb2No aXAuY29tIHdyb3RlOg0KPj4gSGkgQ2xhdWRpdSwNCj4+DQo+PiBUaGFua3MgZm9yIHRha2luZyB0 aGUgdGltZSB0byByZXZpZXcuDQo+Pg0KPj4gT24gMjIvMDcvMjYgMTI6NDQgYW0sIENsYXVkaXUg QmV6bmVhIHdyb3RlOg0KPj4+IEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xpY2sgbGlua3Mgb3Ig b3BlbiBhdHRhY2htZW50cyB1bmxlc3MgeW91IGtub3cNCj4+PiB0aGUgY29udGVudCBpcyBzYWZl DQo+Pj4NCj4+PiBIaSwgVmFyc2hpbmksDQo+Pj4NCj4+PiBPbiA2LzMwLzI2IDEyOjM1LCBWYXJz aGluaSBSYWplbmRyYW4gd3JvdGU6DQo+Pj4+IEFkZCBzdXBwb3J0IGZvciBhY2Nlc3NpbmcgT1RQ IHBhY2tldHMgYnkgdGhlaXIgNC1ieXRlIEFTQ0lJIHRhZyB3aGlsZQ0KPj4+PiBwcmVzZXJ2aW5n IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgZXhpc3RpbmcgSUQtYmFzZWQgbG9va3Vw Lg0KPj4+Pg0KPj4+PiBUaGUgT1RQIG1lbW9yeSBsYXlvdXQgY2FuIHZhcnkgYWNyb3NzIGRldmlj ZXMgYW5kIG1heSBjaGFuZ2Ugb3ZlciB0aW1lLA0KPj4+PiBtYWtpbmcgdGhlIHBhY2tldCBJRCBh cHByb2FjaCB1bnJlbGlhYmxlIHdoZW4gdGhlIG1lbW9yeSBtYXAgaXMgbm90DQo+Pj4+IGtub3du IGluIGFkdmFuY2UuIFRoZSBwYWNrZXQgdGFnIHByb3ZpZGVzIGEgcmVsaWFibGUgd2F5IHRvIGlk ZW50aWZ5DQo+Pj4+IGFuZCBhY2Nlc3MgcGFja2V0cyB3aXRob3V0IHByaW9yIGtub3dsZWRnZSBv ZiB0aGUgT1RQIG1lbW9yeSBsYXlvdXQuDQo+Pj4+DQo+Pj4+IFR3byBvZmZzZXQgZW5jb2Rpbmcg YXJlIG5vdyBzdXBwb3J0ZWQ6DQo+Pj4+IMKgwqDCoCAxLiBMZWdhY3kgSUQtYmFzZWQ6IG9mZnNl dCA9IE9UUF9QS1QoaWQpID0gaWQgKiA0DQo+Pj4+IMKgwqDCoMKgwqDCoCBVc2VkIGluIERUIGFz OiByZWcgPSA8T1RQX1BLVCgxKSA3Nj47DQo+Pj4+IMKgwqDCoCAyLiBUQUctYmFzZWQ6IG9mZnNl dCA9IDQtYnl0ZSBBU0NJSSBwYWNrZXQgdGFnDQo+Pj4+IMKgwqDCoMKgwqDCoCBVc2VkIGluIERU IGFzOiByZWcgPSA8MHg0MTQzNTM1NCAweDRjPjsgKHRhZyAiQUNTVCIpDQo+Pj4+DQo+Pj4NCj4+ PiBJIHRoaW5rIHRoaXM6DQo+Pj4NCj4+Pj4gVGhlIGRyaXZlciByZXNvbHZlcyBvZmZzZXRzIG1h dGNoaW5nIHZhbGlkIGxlZ2FjeSBzZWxlY3RvcnMgKG11bHRpcGxlcw0KPj4+PiBvZiA0IHdpdGhp biB0aGUgcGFja2V0IGNvdW50KSB0aHJvdWdoIElEIGxvb2t1cCwgZmFsbGluZyBiYWNrIHRvIHRh Zw0KPj4+PiBsb29rdXAgZm9yIG90aGVyIHZhbHVlcy4gVGhpcyBlbnN1cmVzIGV4aXN0aW5nIGRl dmljZSB0cmVlcyBjb250aW51ZQ0KPj4+PiB0byB3b3JrIHdoaWxlIGVuYWJsaW5nIG5ldyB0YWct YmFzZWQgYWNjZXNzLg0KPj4+DQo+Pj4gc2hvdWxkIGZhbGwgaW4gYSBkaWZmZXJlbnQgcGF0Y2g/ DQo+Pg0KPj4gWW91IG1lYW4gbW92aW5nIHRoZSAiaW52b2tpbmcgdGhlIG5ldyB0YWctYmFzZWQg bWV0aG9kIHdpdGggdGhlIGxlZ2FjeQ0KPj4gbWV0aG9kIGFzIGEgZmFsbGJhY2siIHBhcnQgYWxv bmU/IE9ubHkgYWRkIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBwYXRjaA0KPj4gYW5kIGludm9raW5n IHRoZW0gaW4gdGhlIG5leHQgb25lIC0gRGlkIEkgZ2V0IGl0IHJpZ2h0Pw0KPiANCj4gQWgsIGFw b2xvZ2llcyBmb3IgY29uZnVzaW9uLCBJIHJlZmVycmVkIHRvIHRoZSB3cm9uZyBzZWN0aW9uLiBJ IHdhbnRlZCANCj4gdG8gcmVmZXINCj4gdG8gdGhpcyBzZWN0aW9uOg0KPiANCj4+Pj4gVGhlIGRy aXZlciBhbHNvIHZhbGlkYXRlcyBPVFAgbWVtb3J5IGFjY2Vzc2liaWxpdHkgYW5kIGVtdWxhdGlv biBtb2RlDQo+Pj4+IHN0YXR1cy4gV2hlbiB0aGUgYm9vdCBwYWNrZXQgaXMgbm90IGNvbmZpZ3Vy ZWQsIGVtdWxhdGlvbiBtb2RlIGFsbG93cw0KPj4+PiBhY2Nlc3MgdG8gdGhlIG90aGVyIHBhY2tl dHMuIFdoZW4gYm90aCBhcmUgbm90IGF2YWlsYWJsZSBhbg0KPj4+PiBpbmZvcm1hdGlvbmFsIG1l c3NhZ2UgaXMgbG9nZ2VkLg0KPiANCj4gVGhhdCBpcyBoYW5kbGVkIHRocm91Z2ggdGhpcyBjb2Rl Og0KPiANCj4gKw0KPiArwqDCoMKgwqDCoMKgIHRtcCA9IHJlYWRsX3JlbGF4ZWQob3RwYy0+YmFz ZSArIE1DSFBfT1RQQ19NUik7DQo+ICvCoMKgwqDCoMKgwqAgZW11bF9lbmFibGUgPSB0bXAgJiBN Q0hQX09UUENfTVJfRU1VTDsNCj4gK8KgwqDCoMKgwqDCoCBpZiAoZW11bF9lbmFibGUpDQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRldl9pbmZvKG90cGMtPmRldiwgIkVtdWxhdGlv biBtb2RlIGVuYWJsZWRcbiIpOw0KPiArDQo+ICDCoMKgwqDCoMKgwqAgcmV0ID0gbWNocF9vdHBj X2luaXRfcGFja2V0c19saXN0KG90cGMsICZzaXplKTsNCj4gIMKgwqDCoMKgwqDCoCBpZiAocmV0 KQ0KPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Ow0KPiANCj4gK8Kg wqDCoMKgwqDCoCBpZiAoIXNpemUpIHsNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg ZGV2X3dhcm4ob3RwYy0+ZGV2LCAiQ2Fubm90IGFjY2VzcyBPVFAgbWVtb3J5XG4iKTsNCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFlbXVsX2VuYWJsZSkNCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRldl9pbmZvKG90cGMtPmRldiwg IkJvb3QgcGFja2V0IG5vdCBwcm9ncmFtbWVkIA0KPiBhbmQgZW11bGF0aW9uIG1vZGUgZGlzYWJs ZWRcbiIpOw0KPiArwqDCoMKgwqDCoMKgIH0NCj4gKw0KPiANCj4gVGhpcyBJIHRoaW5rIHNob3Vs ZCBnbyBpbiBhIGRpZmZlcmVudCBwYXRjaC4NCj4gDQo+Pg0KPj4+DQo+Pj4+DQo+Pj4+IER1cmlu ZyBwcm9iZSwgcGFja2V0IG1ldGEgZGF0YSBpbmNsdWRpbmcgdGhlIHRhZyBpcyByZWFkIGFuZCBj YWNoZWQuDQo+Pj4+IFRoZSBkcml2ZXIgYWxzbyB2YWxpZGF0ZXMgT1RQIG1lbW9yeSBhY2Nlc3Np YmlsaXR5IGFuZCBlbXVsYXRpb24gbW9kZQ0KPj4+PiBzdGF0dXMuIFdoZW4gdGhlIGJvb3QgcGFj a2V0IGlzIG5vdCBjb25maWd1cmVkLCBlbXVsYXRpb24gbW9kZSBhbGxvd3MNCj4+Pj4gYWNjZXNz IHRvIHRoZSBvdGhlciBwYWNrZXRzLiBXaGVuIGJvdGggYXJlIG5vdCBhdmFpbGFibGUgYW4NCj4+ Pj4gaW5mb3JtYXRpb25hbCBtZXNzYWdlIGlzIGxvZ2dlZC4NCj4+Pj4NCj4+Pj4gVGhlIHN0cmlk ZSBvZiB0aGUgbnZtZW0gbWVtb3J5IGlzIHNldCB0byAxIGluIG9yZGVyIHRvIHN1cHBvcnQgdGFn IA0KPj4+PiBiYXNlZA0KPj4+PiBvZmZzZXRzLCBjb21tZW50IGluIHRoZSBoZWFkZXIgZmlsZSBp cyB1cGRhdGVkIGFjY29yZGluZ2x5Lg0KPj4+Pg0KPj4+PiBTaWduZWQtb2ZmLWJ5OiBWYXJzaGlu aSBSYWplbmRyYW4gPHZhcnNoaW5pLnJhamVuZHJhbkBtaWNyb2NoaXAuY29tPg0KPj4+PiAtLS0N Cj4+Pj4gwqDCoCBkcml2ZXJzL252bWVtL21pY3JvY2hpcC1vdHBjLmPCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfCAxNDMgKysrKysrKysrKysrKyANCj4+Pj4gKysrLS0NCj4+Pj4gwqDC oCAuLi4vbnZtZW0vbWljcm9jaGlwLHNhbWE3ZzUtb3RwYy5owqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB8wqDCoCA0ICstDQo+Pj4+IMKgwqAgMiBmaWxlcyBjaGFuZ2VkLCAxMzYgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pDQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL252bWVt L21pY3JvY2hpcC1vdHBjLmMgYi9kcml2ZXJzL252bWVtL21pY3JvY2hpcC0NCj4+Pj4gb3RwYy5j DQo+Pj4+IGluZGV4IGRmOTc5ZTg1NDlmZC4uYmY4NTg5MDQ4ZTE3IDEwMDY0NA0KPj4+PiAtLS0g YS9kcml2ZXJzL252bWVtL21pY3JvY2hpcC1vdHBjLmMNCj4+Pj4gKysrIGIvZHJpdmVycy9udm1l bS9taWNyb2NoaXAtb3RwYy5jDQo+Pj4+IEBAIC0xOCwxNiArMTgsMjAgQEANCj4+Pj4gwqDCoCAj ZGVmaW5lIE1DSFBfT1RQQ19DUl9SRUFEwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDYpDQo+Pj4+ IMKgwqAgI2RlZmluZSBNQ0hQX09UUENfTVLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICgweDQpDQo+Pj4+IMKgwqAgI2RlZmluZSBNQ0hQX09UUENfTVJfQURE UsKgwqDCoMKgwqDCoMKgwqDCoMKgIEdFTk1BU0soMzEsIDE2KQ0KPj4+PiArI2RlZmluZSBNQ0hQ X09UUENfTVJfRU1VTMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQklUKDcpDQo+Pj4+IMKgwqAgI2Rl ZmluZSBNQ0hQX09UUENfQVLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICgweDgpDQo+Pj4+IMKgwqAgI2RlZmluZSBNQ0hQX09UUENfU1LCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgweGMpDQo+Pj4+IMKgwqAgI2RlZmlu ZSBNQ0hQX09UUENfU1JfUkVBRMKgwqDCoMKgwqDCoMKgwqDCoMKgIEJJVCg2KQ0KPj4+PiDCoMKg ICNkZWZpbmUgTUNIUF9PVFBDX0hSwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAoMHgyMCkNCj4+Pj4gwqDCoCAjZGVmaW5lIE1DSFBfT1RQQ19IUl9TSVpFwqDC oMKgwqDCoMKgwqDCoMKgwqAgR0VOTUFTSygxNSwgOCkNCj4+Pj4gKyNkZWZpbmUgTUNIUF9PVFBD X0hSX1BBQ0tFVF9UWVBFwqDCoMKgwqAgR0VOTUFTSygyLCAwKQ0KPj4+DQo+Pj4gTml0OiBpbiBT QU1BN0Q2NSBtYW51YWwgdGhpcyBpcyBzaW1wbHkgcGFja2V0LiBNYXliZSByZW5hbWUgaXQ6DQo+ Pj4gTUNIUF9PVFBDX0hSX1BBQ0tFVCB0byBtYXRjaCB0aGUgbWFudWFsLg0KPj4+DQo+Pj4+IMKg wqAgI2RlZmluZSBNQ0hQX09UUENfRFLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICgweDI0KQ0KPj4+Pg0KPj4+PiDCoMKgICNkZWZpbmUgTUNIUF9PVFBDX05B TUXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIm1jaHAtb3RwYyIN Cj4+Pj4gwqDCoCAjZGVmaW5lIE1DSFBfT1RQQ19TSVpFwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICgxMSAqIDEwMjQpDQo+Pj4+DQo+Pj4+ICsjZGVmaW5lIFBBQ0tF VF9UWVBFX1JFR1VMQVLCoMKgwqDCoMKgwqDCoMKgwqAgMQ0KPj4+DQo+Pj4gSSB3b3VsZCBtb3Zl IHRoaXMgY2xvc2UgdG8gTUNIUF9PVFBDX0hSX1BBQ0tFVF9UWVBFIGFuZCBuYW1lIGl0DQo+Pj4g c29tZXRoaW5nIGxpa2U6DQo+Pj4gTUNIUF9PVFBDX0hSX1BBQ0tFVF9SRUdVTEFSIHRvIG1hdGNo IHRoZSBkYXRhc2hlZXQuDQo+Pj4NCj4+Pj4gKw0KPj4+PiDCoMKgIC8qKg0KPj4+PiDCoMKgwqAg KiBzdHJ1Y3QgbWNocF9vdHBjIC0gT1RQQyBwcml2YXRlIGRhdGEgc3RydWN0dXJlDQo+Pj4+IMKg wqDCoCAqIEBiYXNlOiBiYXNlIGFkZHJlc3MNCj4+Pj4gQEAgLTQ3LDExICs1MSwxNSBAQCBzdHJ1 Y3QgbWNocF9vdHBjIHsNCj4+Pj4gwqDCoMKgICogQGxpc3Q6IGxpc3QgaGVhZA0KPj4+PiDCoMKg wqAgKiBAaWQ6IHBhY2tldCBJRA0KPj4+PiDCoMKgwqAgKiBAb2Zmc2V0OiBwYWNrZXQgb2Zmc2V0 IChpbiB3b3JkcykgaW4gT1RQIG1lbW9yeQ0KPj4+PiArICogQHR5cGU6IHR5cGUgb2YgdGhlIHBh Y2tldA0KPj4+PiArICogQHRhZzogNC1ieXRlIEFTQ0lJIHRhZyBvZiB0aGUgcGFja2V0DQo+Pj4+ IMKgwqDCoCAqLw0KPj4+PiDCoMKgIHN0cnVjdCBtY2hwX290cGNfcGFja2V0IHsNCj4+Pj4gwqDC oMKgwqDCoMKgIHN0cnVjdCBsaXN0X2hlYWQgbGlzdDsNCj4+Pj4gwqDCoMKgwqDCoMKgIHUzMiBp ZDsNCj4+Pj4gwqDCoMKgwqDCoMKgIHUzMiBvZmZzZXQ7DQo+Pj4+ICvCoMKgwqDCoCB1MzIgdHlw ZTsNCj4+Pg0KPj4+IFRoaXMgY2FuIGJlIGRyb3BwZWQgZm9yIG5vdyBzaW5jZSBpdCdzIHVzZWQg b25seSBpbiB0aGUgaW5pdGlhbGl6YXRpb24NCj4+PiBwYXRoLg0KPj4+DQo+Pj4+ICvCoMKgwqDC oCB1MzIgdGFnOw0KPj4+PiDCoMKgIH07DQo+Pj4+DQo+Pj4+IMKgwqAgc3RhdGljIHN0cnVjdCBt Y2hwX290cGNfcGFja2V0ICptY2hwX290cGNfaWRfdG9fcGFja2V0KHN0cnVjdA0KPj4+PiBtY2hw X290cGMgKm90cGMsDQo+Pj4+IEBAIC03MCw2ICs3OCw1NiBAQCBzdGF0aWMgc3RydWN0IG1jaHBf b3RwY19wYWNrZXQNCj4+Pj4gKm1jaHBfb3RwY19pZF90b19wYWNrZXQoc3RydWN0IG1jaHBfb3Rw YyAqb3RwYywNCj4+Pj4gwqDCoMKgwqDCoMKgIHJldHVybiBOVUxMOw0KPj4+PiDCoMKgIH0NCj4+ Pj4NCj4+Pj4gKy8qKg0KPj4+PiArICogbWNocF9vdHBjX3RhZ190b19wYWNrZXQoKSAtIGZpbmQg cGFja2V0IGJ5IHRhZw0KPj4+PiArICogQG90cGM6IE9UUEMgcHJpdmF0ZSBkYXRhDQo+Pj4+ICsg KiBAdGFnOiA0LWJ5dGUgQVNDSUkgdGFnIHRvIHNlYXJjaCBmb3INCj4+Pj4gKyAqDQo+Pj4+ICsg KiBSZXR1cm46IHBvaW50ZXIgdG8gcGFja2V0IGlmIGZvdW5kLCBOVUxMIG90aGVyd2lzZQ0KPj4+ PiArICovDQo+Pj4NCj4+PiBJJ20gbm90IHN1cmUgd2UgbmVlZCB0aGlzIGRlc2NyaXB0aW9uIHNp bmNlIHRoZSBmdW5jdGlvbiBpcyBzaW1wbGUNCj4+PiBlbm91Z2guIEkNCj4+PiB3b3VsZCBkcm9w IGl0Lg0KPj4+DQo+Pj4+ICtzdGF0aWMgc3RydWN0IG1jaHBfb3RwY19wYWNrZXQgKm1jaHBfb3Rw Y190YWdfdG9fcGFja2V0KHN0cnVjdA0KPj4+PiBtY2hwX290cGMgKm90cGMsDQo+Pj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1MzIgdGFnKQ0KPj4+ PiArew0KPj4+PiArwqDCoMKgwqAgc3RydWN0IG1jaHBfb3RwY19wYWNrZXQgKnBhY2tldDsNCj4+ Pj4gKw0KPj4+PiArwqDCoMKgwqAgbGlzdF9mb3JfZWFjaF9lbnRyeShwYWNrZXQsICZvdHBjLT5w YWNrZXRzLCBsaXN0KSB7DQo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHBhY2tl dC0+dGFnID09IHRhZykNCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmV0dXJuIHBhY2tldDsNCj4+Pj4gK8KgwqDCoMKgIH0NCj4+Pj4gKw0KPj4+PiArwqDC oMKgwqAgcmV0dXJuIE5VTEw7DQo+Pj4+ICt9DQo+Pj4+ICsNCj4+Pj4gKy8qKg0KPj4+PiArICog bWNocF9vdHBjX3Jlc29sdmVfcGFja2V0KCkgLSByZXNvbHZlIG9mZnNldCB0byBwYWNrZXQNCj4+ Pj4gKyAqIEBvdHBjOiBPVFBDIHByaXZhdGUgZGF0YQ0KPj4+PiArICogQG9mZjogTlZNRU0gb2Zm c2V0IChsZWdhY3kgSUQtYmFzZWQgb3IgVEFHLWJhc2VkKQ0KPj4+PiArICoNCj4+Pj4gKyAqIExl Z2FjeSBvZmZzZXRzIChtdWx0aXBsZXMgb2YgNCB3aXRoaW4gdmFsaWQgSUQgcmFuZ2UpIGFyZSBy ZXNvbHZlZA0KPj4+PiArICogdGhyb3VnaCBJRCBsb29rdXAuIE90aGVyIG9mZnNldHMgYXJlIHRy ZWF0ZWQgYXMgNC1ieXRlIEFTQ0lJIHRhZ3MuDQo+Pj4+ICsgKg0KPj4+PiArICogUmV0dXJuOiBw b2ludGVyIHRvIHBhY2tldCBpZiBmb3VuZCwgTlVMTCBvdGhlcndpc2UNCj4+Pj4gKyAqLw0KPj4+ DQo+Pj4gU2FtZSBoZXJlLg0KPj4+DQo+Pj4+ICtzdGF0aWMgc3RydWN0IG1jaHBfb3RwY19wYWNr ZXQgKm1jaHBfb3RwY19yZXNvbHZlX3BhY2tldChzdHJ1Y3QNCj4+Pj4gbWNocF9vdHBjICpvdHBj LA0KPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB1MzIgb2ZmKQ0KPj4+PiArew0KPj4+PiArwqDCoMKgwqAgLyoNCj4+Pj4gK8KgwqDCoMKgwqAg KiBMZWdhY3kgaWQgYmFzZWQgcGFja2V0IGFjY2Vzczogb2Zmc2V0ID0gaWQgKiA0DQo+Pj4+ICvC oMKgwqDCoMKgICogSW5zaWRlIHRoZSBkcml2ZXIgd2UgdXNlIGNvbnRpbnVvdXMgdW5zaWduZWQg aW50ZWdlciBudW1iZXJzDQo+Pj4+ICvCoMKgwqDCoMKgICogZm9yIHBhY2tldCBpZCwgdGh1cyBk aXZpZGUgb2ZmIGJ5IDQgYmVmb3JlIHBhc3NpbmcgaXQgdG8NCj4+Pj4gK8KgwqDCoMKgwqAgKiBt Y2hwX290cGNfaWRfdG9fcGFja2V0KCkuDQo+Pj4+ICvCoMKgwqDCoMKgICovDQo+Pj4+ICvCoMKg wqDCoCB1MzIgaWQgPSBvZmYgLyA0Ow0KPj4+PiArDQo+Pj4+ICvCoMKgwqDCoCBpZiAoIShvZmYg JSA0KSAmJiBpZCA8IG90cGMtPm5wYWNrZXRzKQ0KPj4+DQo+Pj4gVGhlIHRhZyBjYW4gYmUgYW55 dGhpbmcsIG5vPyBDYW4ndCB0aGUgdGFnIHNhdGlzZnkgdGhpcyBjb25kaXRpb24gYW5kIA0KPj4+ IHRoZQ0KPj4+IGV4ZWN1dGlvbiB0byB3cm9uZ2x5IHVzZSBtY2hwX290cGNfaWRfdG9fcGFja2V0 KCkgPw0KPj4NCj4+IFRoZSB0YWcgaXMgYSBGb3VyQ0MgY29kZS4gU28gdGhlIG1pbmltdW0gdmFs dWUgd291bGQgYmUgMHgyMDIwMjAyMCB3aGljaA0KPj4gd2F5IHRvbyBiaWcgdGhhbiB0aGUgbnVt YmVyIG9mIHBhY2tldHMgdGhlIE9UUCBjb3VsZCBob2xkLiBTbyB0aGlzDQo+PiBjb25kaXRpb24g cHJldHR5IG11Y2ggbmV2ZXIgZmFpbHMuIElmIHlvdSB3YW50IG1lIHRvIGFkZCB0aGlzDQo+PiAi MHgyMDIwMjAyMCIgdmFsdWUgYXMgYW4gYWRkaXRpb25hbCBjaGVjayBJIGNhbiBkbyB0aGF0Lg0K PiANCj4gUGxlYXNlIG1lbnRpb24gRm91ckNDIGluIHBhdGNoIGRlc2NyaXB0aW9uLg0KDQpZZXMu IEkgd2lsbCBkbyB0aGlzLg0KDQo+IA0KPiBBbHNvLCBJIHRoaW5rIG9uZSB3b3VsZCBtYW5hZ2Ug dG8gYWNjZXNzIGEgcGFja2V0IHdpdGggYSB0YWcgdGhhdCBpcyBub3QgaW4NCj4gRm91ckNDIGZv cm1hdCAodGFnID49IDB4MjAyMDIwMjApLiBFLmcuIGlmIHRoZSBtZW1vcnkgZm9vdHByaW50IGlz Og0KPiANCj4gIMKgSGVhZGVyIDANCj4gLS0tLS0tLS0tLS0NCj4gIMKgUGF5bG9hZCAwOg0KPiAg wqB0YWcwID0gMHgyMDIwMjAyMA0KPiAtLS0tLS0tLS0tLQ0KPiAgwqBIZWFkZXIgMQ0KPiAtLS0t LS0tLS0tLQ0KPiAgwqBQYXlsb2FkIDE6DQo+ICDCoHRhZzEgPSAweDAwMDAyMDIwDQo+IC0tLS0t LS0tLS0tLQ0KPiAgwqBIZWFkZXIgMg0KPiAtLS0tLS0tLS0tLS0NCj4gIMKgUGF5bG9hZCAyOg0K PiAgwqB0YWcyID0gMHgwMDAwMDAwNA0KPiAtLS0tLS0tLS0tLQ0KPiAgwqBIZWFkZXIgMw0KPiAt LS0tLS0tLS0tLQ0KPiAgwqBQYXlsb2FkIDM6DQo+ICDCoHRhZzMgPSAweDAwMDAyMDIwDQo+IC0t LS0tLS0tLS0tDQo+ICDCoEhlYWRlciA0DQo+IC0tLS0tLS0tLS0tDQo+ICDCoFBheWxvYWQgNDoN Cj4gIMKgdGFnMyA9IDB4MDAwMDIwMjANCj4gDQo+IA0KPiBTaW5jZSB0aGUgaW5pdGlhbGl6YXRp b24gZnVuY3Rpb24gbWNocF9vdHBjX3JlYWRfcGFja2V0X3RhZygpIGRvbid0IA0KPiB2YWxpZGF0 ZSB0aGUNCj4gRm91ckNDIGZvcm1hdCB3aXRoIHRoZSBtaW5pbWFsIEZvdXJDQyB2YWx1ZSwgaXQg d2lsbCBjcmVhdGUgYSBsaXN0IHdpdGggNQ0KPiBwYWNrZXRzIGFzIGZvbGxvd3M6DQo+IA0KPiBw YWNrZXQwOg0KPiAtIGlkID0gMA0KPiAtIHRhZyA9IDB4MjAyMDIwMjANCj4gDQo+IHBhY2tldDE6 DQo+IC0gaWQgPSAwDQo+IC0gdGFnID0gMHgwMDAwMjAyMA0KPiANCj4gcGFja2V0MjoNCj4gLSBp ZCA9IDINCj4gLSB0YWcgPSAweDAwMDAwMDA0DQo+IA0KPiBwYWNrZXQzOg0KPiAtIGlkID0gMw0K PiAtIHRhZyA9IDB4MDAwMDIwMjANCj4gDQo+IHBhY2tldDQ6DQo+IC0gaWQgPSA0DQo+IC0gdGFn ID0gMHgwMDAwMjAyMA0KPiANCj4gVGh1cywgcmVhY2hpbmcgbWNocF9vdHBjX3JlYWQoKSB3aXRo IG9mZj0weDAwMDAyMDIwIHdpbGwgYWxsb3cgdGhlIHVzZXIgDQo+IHRvIGdldA0KPiBwYWNrZXQx IHVzaW5nIHRhZyBtZXRob2QgKGV2ZW4gdGhvdWdoIHRoZSB1c2VyIGZsYXNoZWQgbXVsdGlwbGUg cGFja2V0cyANCj4gd2l0aCB0aGUNCj4gc2FtZSB0YWc7IEknbSBub3Qgc3VyZSBpZiB3ZSBzaG91 bGQgdmFsaWRhdGUgdGhpcykuDQo+IA0KPiBBdCB0aGUgc2FtZSB0aW1lIGlmIG9mZj0weDAwMDAw MDA0IChjb3JyZXNwb25kaW5nIHRvIHBhY2tldDIpIHRoZSBjb2RlIHdpbGwNCj4gcmV0dXJuIHRo ZSBwYXlsb2FkIG9mIHBhY2tldDEgYXMgaXQgd2lsbCByZXNvbHZlIHRoZSBwYWNrZXQgdXNpbmcN Cj4gbWNocF9vdHBjX2lkX3RvX3BhY2tldCgpLg0KDQoNClllcy4gVGhhdCBpcyBjb3JyZWN0LiBC dXQgc2luY2UgdGhlIHRhZyB3aWxsIHRlY2huaWNhbGx5IGJlIGEgRm91ckNDIA0KY29kZSwgdGhp cyBwcm9ibGVtIHdpbGwgbm90IGFyaXNlLiBGb3IgY2F1dGlvbiwgSSBjYW4gdmFsaWRhdGUgdGhl IHRhZyANCmlmIGl0IGlzIGEgRm91ckNDIGNvZGUsIGJlZm9yZSBjcmVhdGluZyB0aGUgdGFibGUg b2YgY29udGVudHMgZm9yIHRoZSANCnBhY2tldHMuDQoNCkJ1dCBlaXRoZXIgd2F5LCB0aGUgYmVo YXZpb3IgaXMgZGV0ZXJtaW5pc3RpYyBiYXNlZCBvbiB3aGF0IGlzIHF1ZXJpZWQ6DQoNCi0gSWYg aXQgaXMgYSB2YWxpZCB0YWcgKGZvdXJDQyBjb2RlKSwgdGhlbiBpdCB3aWxsIGFsd2F5cyBleGNl ZWQgYW55IA0KcmVhbGlzdGljIHBhY2tldCBjb3VudCwgc28gdGhleSByZWxpYWJseSBmYWxsIHRo cm91Z2ggdG8gdGFnIGxvb2t1cC4NCg0KLSBJZiBpdCBpcyBhIExlZ2FjeSBJRCwgdGhlIGxvb2t1 cCB3aWxsIGFsd2F5cyB1c2UgaWQgcmVnYXJkbGVzcyBvZiB3aGF0IA0KdGFnIGlzIHByb2dyYW1t ZWQuDQoNCklmIHRoZSB0YWcgaXMgcHJvZ3JhbW1lZCBhcyBhIG5vbi1Gb3VyQ0MgY29kZSwgdGhl biBsZWdhY3kgaWQgYWNjZXNzIGlzIA0KdGhlIG9ubHkgd2F5IGZvciB0aGUgdXNlciB0byBxdWVy eSB0aGUgcGFja2V0Lg0KDQo+IA0KPiBQbGVhc2UgY29ycmVjdCBtZSBpZiBJJ20gd3JvbmcuDQo+ IA0KPiBUaGFuayB5b3UsDQo+IENsYXVkaXUNCg0KDQotLSANClRoYW5rcywNClZhcnNoaW5pIFJh amVuZHJhbi4NCg==