From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42])
	by mail.toke.dk (Postfix) with ESMTPS id 5C7149B0FF2
	for <xdp-hints@xdp-project.net>; Mon, 31 Oct 2022 23:39:14 +0100 (CET)
Authentication-Results: mail.toke.dk;
	dkim=pass (2048-bit key; unprotected) header.d=meta.com header.i=@meta.com header.a=rsa-sha256 header.s=s2048-2021-q4 header.b=goTOdlGF
Received: from pps.filterd (m0109334.ppops.net [127.0.0.1])
	by mx0a-00082601.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29VMPDLa021965;
	Mon, 31 Oct 2022 15:38:45 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=message-id : date :
 subject : to : cc : references : from : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=s2048-2021-q4;
 bh=4pqExb13oL+QjTnhqlFlH8G4yqJg1l2aBeAG9CSC7a0=;
 b=goTOdlGFfRauSfDWGsRYhgBeekTnV8Ff2Ivj2j1yruPEHZY4ULpP37EKZkw+kJOud1P/
 f5l6rte554R/EBR/YAYamXzZ2htghhZazj7RVc5UW3I9YcjOqZ4k/qR4vslZtFkGlrKE
 Y4+sxzvSIARHFmQX+lJMqKiEzRt8s9qMvNXwvGGx/UfYf7h46cosTJBrggdJYiElBeZM
 q8ua0AdCWEbqpp5REMhAjnUFPo33LcaL72b2C6pnJs2smMv3DT7Bde8nER9/7iN4Ei9J
 I54wPFMjzvYxj5NmfUNUWN82taokXDqeOLD2MGBW5wb6yrzuo8R6ybMHxXSLwSGb3tfX iQ==
Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2041.outbound.protection.outlook.com [104.47.66.41])
	by mx0a-00082601.pphosted.com (PPS) with ESMTPS id 3kjk60tcfh-1
	(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
	Mon, 31 Oct 2022 15:38:45 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=KACjQizeB30UVYsbDDZXMS3zpeDyZJxWkcVihd8fIke9TPnZXmyy5ii3fYgzfvbytbkzqGTdEGWm/5cBuavUIyI/oyZG2iFXWLMCb5ewfXy3pOJqi6/oWvaNKTqWyUPmuc8//8rGuoiTAAKBlpjBnMAXfWouy3eH1sgWuC6df8qAgPPaXgcDImhlDrPfXPXVdg2ND2oD0Noa0LDAmojPiUZ8BMAKcbgfuQoPLdk0PiQSkhETECNrTIe/uMdyebXBZqwR/tykuxav9hGvx2rJiYG2wNB9eX/SnsBe8kO/u8kojd1D+xI91K44ZqZ8p4xZdgadZ2Y0BDV9BNAzIhY+Dw==
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=4pqExb13oL+QjTnhqlFlH8G4yqJg1l2aBeAG9CSC7a0=;
 b=ZN60tsV9ajEt7v0lqPaQw7wSq+MiYUfcT9V6oqpDOYetK+7cGz6ce62r96Xl/zmBg82R25KDZ3/ydhbpVYniVR0rfskAIIlmN9IsPkXIAznPqpjzr7det1V+i0BqEIplKWqPUVj9Cmi86dtYeFpMv2IysVw5J04YaxGfewIGRi4CLH9JNH2Uw6lyWlAGc2OKn4Lfx8byxwbJ5CRvRWJvmOcD28JGasAeRXB7smv//BzTploZSmuqZhUG3YnjijTFE6humSPu3thGNeXpDkQpRavNMhIMD/+RGi9hduyJ+8b02eY+nkO4d44ApXjIOTgCGkYI0t8oq9PoyFD0xWOXJA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=meta.com; dmarc=pass action=none header.from=meta.com;
 dkim=pass header.d=meta.com; arc=none
Received: from SN6PR1501MB2064.namprd15.prod.outlook.com (2603:10b6:805:d::27)
 by MW4PR15MB4779.namprd15.prod.outlook.com (2603:10b6:303:10d::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Mon, 31 Oct
 2022 22:38:43 +0000
Received: from SN6PR1501MB2064.namprd15.prod.outlook.com
 ([fe80::e25d:b529:7556:1e26]) by SN6PR1501MB2064.namprd15.prod.outlook.com
 ([fe80::e25d:b529:7556:1e26%5]) with mapi id 15.20.5769.019; Mon, 31 Oct 2022
 22:38:43 +0000
Message-ID: <8892271c-fd8d-e8f3-5de9-b94e5f1ce5fe@meta.com>
Date: Mon, 31 Oct 2022 15:38:40 -0700
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0)
 Gecko/20100101 Thunderbird/102.4.1
Content-Language: en-US
To: Stanislav Fomichev <sdf@google.com>
References: <20221027200019.4106375-1-sdf@google.com>
 <635bfc1a7c351_256e2082f@john.notmuch> <20221028110457.0ba53d8b@kernel.org>
 <CAKH8qBshi5dkhqySXA-Rg66sfX0-eTtVYz1ymHfBxSE=Mt2duA@mail.gmail.com>
 <635c62c12652d_b1ba208d0@john.notmuch> <20221028181431.05173968@kernel.org>
 <5aeda7f6bb26b20cb74ef21ae9c28ac91d57fae6.camel@siemens.com>
 <875yg057x1.fsf@toke.dk> <663fb4f4-04b7-5c1f-899c-bdac3010f073@meta.com>
 <CAKH8qBt=As5ON+CbH304tRanudvTF27bzeSnjH2GQR2TVx+mXw@mail.gmail.com>
From: Yonghong Song <yhs@meta.com>
In-Reply-To: <CAKH8qBt=As5ON+CbH304tRanudvTF27bzeSnjH2GQR2TVx+mXw@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: base64
X-ClientProxiedBy: BY3PR05CA0026.namprd05.prod.outlook.com
 (2603:10b6:a03:254::31) To SN6PR1501MB2064.namprd15.prod.outlook.com
 (2603:10b6:805:d::27)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN6PR1501MB2064:EE_|MW4PR15MB4779:EE_
X-MS-Office365-Filtering-Correlation-Id: cfe9e924-cafc-481d-1c14-08dabb90aa13
X-FB-Source: Internal
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	6kZM3qeRuwifdCSbO1iE49MsghfwWN06pJncpLwtwG1pHVJ/qI4J9/eRM75kIU0d2pgCwl6EzJB01uBbO6RwG6FkPuaEyw2TGpcwq78SxinlLIQN6rvq1n5l6QVOq5b4P7WsV7jmvGPe/hq3GUqj73ZHi8gUMBP1z7nwovM8oK6g9adq7Ti11orrRx/TjLpssReArGt0zVP8O0udtQixT4SO2GPnxqS1F8m3ToKMIIvXb6BdpPF/teVAt/c3dv7zmih9N/7AYMRVleSbhBpPkQCi18AOMvfYdOaXfU8U2FUF0DDyPzOf4nyMrPPE2tliZ5j5rtr55DtfTbGzFJ3ed0mGjU+pkVT3cqV60BYPc2DM6BqoBZIOOpeEDb+vmFYebvqPRhro9Gr9yrbrQRH2GCP0eCC+D5Bk+F+RhxQwKI7/p6Tur7wkggwxB0Mf34vjmWtDqZhwvObVn6nr351ro9Pa/g1eDMNaX8L7SWgVaJ5TPYiqGgAd1GHt7dY/bCxnnImWmXpWSWJjrlo+7gqZAzsXVFIAuG5J6Zy4xxfrx1LrVEV+zytAc+QWD48zDy864YSSaZjQXPfTpn3mxSKdc+1BktpVdOJKGkB84BaTaGX0koKQ3xat60cfqACAQqBGEx1lAqnSakivOfZSsqp0FBMmBFcqjwTsdAnwzRMhxjR9ibyHeIffc8/YFMPPytWdd78w1dFKgamvI+MjWAP+qBhRdkvTCfmbjdxw1adCfEjyewLF7Jk/cBI3pLO6haNNH5soV2BcrO/5feyWBjjADH0o/5hNjII7I0Sh0noAl04=
X-Forefront-Antispam-Report: 
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR1501MB2064.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(136003)(376002)(366004)(396003)(39860400002)(451199015)(478600001)(8676002)(4326008)(66946007)(66899015)(66556008)(31686004)(66476007)(5660300002)(6506007)(186003)(54906003)(36756003)(83380400001)(6916009)(6486002)(316002)(31696002)(41300700001)(86362001)(53546011)(8936002)(2906002)(6512007)(2616005)(7416002)(66574015)(4001150100001)(38100700002)(45980500001)(43740500002);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: 
	=?utf-8?B?VXdpSTMrazlDNGNqMThLV1BBSzB0YnRBYStMRkFOR0NGV0RqUTd3UlF1MmFv?=
 =?utf-8?B?SnpJbTdHczZSQXJlK0F2VTYzYTBCVTRyckhWK1VObmh2Q0w1WkRQcUxNdjYx?=
 =?utf-8?B?Z2duZ1BmbGFveWxJSlNrVVZQSU9PS3JXMytmV2pRZlVqSjFIY1dBeUNqWE0v?=
 =?utf-8?B?T3dYc3FsSCtiamRRMXRpQWJONnJ5ZTVmZW9hVHhZQ2N1aXlna0F6RUJ3V3VZ?=
 =?utf-8?B?K3RnUnUyb1c3UlBnM0tNVEFGT1A4M2pwTE9JOHovTnJZMnlod1kzdnE2c2Fx?=
 =?utf-8?B?UlJCeEJMZXhiWEh1VUxCdWRIVGdkKzZBQjJGNWNRT3dKS1NkVDRPTmxUcThQ?=
 =?utf-8?B?cktFQW1qcGpmU0hVMFdnWVMzMmVxU01DOURVMmdVZEdXcHUzdC90bHpPN2R0?=
 =?utf-8?B?eVMrNG1remtTcVZXMi9kSzB3cFRnSi9nY0VyM29jcnJ1QXRQcXpZSXphaWF1?=
 =?utf-8?B?OEV1VzBpblcyaUhrTmNkVHRnb1lJNE9WcU81YUY4Z3RkditaWHMyQ0FNSXF0?=
 =?utf-8?B?WVYxNXpoa1BTRk1kUUhQd0pjRFhNbUxCdTN6SWYyUWdBd091Ynk4K2cxbmkw?=
 =?utf-8?B?Zit3UW4xZ0VwWlNDOGZRZ0Qvb2pHc3NVejNtR0QzT2YwZHJpVzVUMTh1M1VC?=
 =?utf-8?B?R3hFcm1ua091M21WY0dTbC9ucGxKZUFCdk9OZ05jU1NMRnFoVkY4MHI0QjhY?=
 =?utf-8?B?d3Q3dFF4OGx4VTNNRGVXQUlLTlZGMjNYSVVIS1o4V0VhbEpBYmdwODdEbmlh?=
 =?utf-8?B?YlMwbGpyZ0x3cDFEV2VtTWtJcmQ1MnVWbDV2NUhJdkIrdzIxYkczdWgvTnM4?=
 =?utf-8?B?dFlMZ3NjaURqTmFmbU9icnh2bCtXL2I0ZXR5eDhiOUpsVS9sM0lXUXFZQWw1?=
 =?utf-8?B?NlR2MHVrZDU1cDVic1ZMNGpiZ2h5TG93VkUwaks3dml1dXl4ZFk3c2RPY3Fa?=
 =?utf-8?B?d1R2MFk2NmQ4UHY5TGY4TDlhQXgzVmNvR2tTRndEb1EyV2ZJOVdoOWQ0TFJI?=
 =?utf-8?B?eGt1ZmtQNlRtRisyVVY1WFIydmYySlBnZFphV1BkSm1PWVBJY0ptWGZXQjZT?=
 =?utf-8?B?ZGdJTVhaMmp1M3N6Z09vbm5BUWdzcFNJT3FWYkdXWDg5VVcrRjdUTmI4WXFy?=
 =?utf-8?B?ZTV5dTdYOGQvU3o0QlpxUXhnaS9XVEdBVlprRXJsd0ZabC9qRUNiQ1FvcGQ4?=
 =?utf-8?B?a00wTWdDc29xVXU1TzFBQW4weGJBMFRteTVuTGFqZ1JtM3hOTVJrRlJRZmZw?=
 =?utf-8?B?NDNueEdwS2ZLZEdVbXRyRnV3WEpaa25RYnoxMTNsTFQrSFdLR0diS1JURjBN?=
 =?utf-8?B?dkJGMjZMSUpFc1hXNi9wNGVHWUlkd3VIbUxUeVFKYnRtd0VMQ3VLVkwzRyt1?=
 =?utf-8?B?d0pxZUZ4QklhenFpVGFjMnp4L1gwQXRpRkJnVmxENWM1YjliNDUwUTYzeWI5?=
 =?utf-8?B?U3JTY1RpaW8raE56QkVZVVk0TjdLSGhpdyt6Q2JncFhxcEN2WVY4UFhObXZY?=
 =?utf-8?B?aE0vQXlLWk5sZWF0aFg0MlZ0SlpzQnBOZEVMbmpzd2lGRkFkYjBVMlc0ZmEy?=
 =?utf-8?B?TXYwVkkrU29peFJPM2NMUjFSU0dKOW9ZUEFMMUhZUEFzcDVTNnZnaUhMYzF0?=
 =?utf-8?B?VllPZ0FGNkdTejV6SmdKRktFbEtCWE9vVWpmb2F0bndUd3pxR09aazRHTzAv?=
 =?utf-8?B?ZEZlRkttMFpScG5SS1M3Umw2UklQTW56N3FzdmlxZFExc2U5WS9EMVpPMit2?=
 =?utf-8?B?M2NqTUxSMlF3WENzc0Q3M3JRY09kUExPQWt5NDlacVhBVFM2NFY3dndiYzdr?=
 =?utf-8?B?LzIxWHA1bGNyTzRDNVlRS1o3dW0wLzUrdmtkWGVUb3RuUzJHQjZTQ2dDNE00?=
 =?utf-8?B?Q2kyZnI1MytyWDlPd0FPZ1N4aTF2NExJNzc5MERyY2RQQnNESVVmOExhR0dI?=
 =?utf-8?B?RWNGc05UMjZiNWdxM2o1SGptelFiUWxyNWtCSGlMVVJPYzVvdW05VERtbHRM?=
 =?utf-8?B?NU45dENkemxxZmhJR2pjTnhqdUhhN0hhZTBMMURvdDJYTGk3UU5OMlhWUXlo?=
 =?utf-8?B?cHRkQm12SStEQ0RodFdVZ2ZlVnZ6alg4VzF4dDhMTmgzN3liWldZcTRFS3Bo?=
 =?utf-8?B?N0kvaGZjUHRuYWNxTWFxNnNhSFVBS3ZmaFg0aHN2bjFqVUZHNnFFekFZUU54?=
 =?utf-8?B?Wnc9PQ==?=
X-OriginatorOrg: meta.com
X-MS-Exchange-CrossTenant-Network-Message-Id: cfe9e924-cafc-481d-1c14-08dabb90aa13
X-MS-Exchange-CrossTenant-AuthSource: SN6PR1501MB2064.namprd15.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2022 22:38:43.0816
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: XKoWhh/Pz17fn4Q0AcvkMafGJ5SB+eT7Zz0naHKhrjxS1g4jdkOUrbQgEA5Ju59M
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR15MB4779
X-Proofpoint-GUID: cTDOqiY6H9jZwqKOzKY8Grz9Ya6OVI39
X-Proofpoint-ORIG-GUID: cTDOqiY6H9jZwqKOzKY8Grz9Ya6OVI39
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1
 definitions=2022-10-31_21,2022-10-31_01,2022-06-22_01
Message-ID-Hash: R5DGFPFINYTSWFL37MD7TL55BKYLJ4LT
X-Message-ID-Hash: R5DGFPFINYTSWFL37MD7TL55BKYLJ4LT
X-MailFrom: prvs=230321e6af=yhs@meta.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= <toke@redhat.com>, "Bezdeka, Florian" <florian.bezdeka@siemens.com>, "kuba@kernel.org" <kuba@kernel.org>, "john.fastabend@gmail.com" <john.fastabend@gmail.com>, "alexandr.lobakin@intel.com" <alexandr.lobakin@intel.com>, "anatoly.burakov@intel.com" <anatoly.burakov@intel.com>, "song@kernel.org" <song@kernel.org>, "Deric, Nemanja" <nemanja.deric@siemens.com>, "andrii@kernel.org" <andrii@kernel.org>, "Kiszka, Jan" <jan.kiszka@siemens.com>, "magnus.karlsson@gmail.com" <magnus.karlsson@gmail.com>, "willemb@google.com" <willemb@google.com>, "ast@kernel.org" <ast@kernel.org>, "brouer@redhat.com" <brouer@redhat.com>, "yhs@fb.com" <yhs@fb.com>, "martin.lau@linux.dev" <martin.lau@linux.dev>, "kpsingh@kernel.org" <kpsingh@kernel.org>, "daniel@iogearbox.net" <daniel@iogearbox.net>, "bpf@vger.kernel.org" <bpf@vger.kernel.org>, "mtahhan@redhat.com" <mtahhan@redhat.com>, "xdp-hints@xdp-project.net" <xdp-hints@xdp-project.net>, "netdev@vger.kernel.org" <netdev@vger.kernel.org>, "jolsa@kernel.org" <jolsa@kernel.org>, "haoluo@google.com" <haoluo@google.com>
X-Mailman-Version: 3.3.5
Precedence: list
Subject: [xdp-hints] Re: [RFC bpf-next 0/5] xdp: hints via kfuncs
List-Id: XDP hardware hints design discussion <xdp-hints.xdp-project.net>
Archived-At: <https://lists.xdp-project.net/xdp-hints/8892271c-fd8d-e8f3-5de9-b94e5f1ce5fe@meta.com/>
List-Archive: <https://lists.xdp-project.net/xdp-hints/>
List-Help: <mailto:xdp-hints-request@xdp-project.net?subject=help>
List-Owner: <mailto:xdp-hints-owner@xdp-project.net>
List-Post: <mailto:xdp-hints@xdp-project.net>
List-Subscribe: <mailto:xdp-hints-join@xdp-project.net>
List-Unsubscribe: <mailto:xdp-hints-leave@xdp-project.net>

DQoNCk9uIDEwLzMxLzIyIDM6MDkgUE0sIFN0YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4gT24g
TW9uLCBPY3QgMzEsIDIwMjIgYXQgMTI6MzYgUE0gWW9uZ2hvbmcgU29uZyA8eWhzQG1ldGEuY29t
PiB3cm90ZToNCj4+DQo+Pg0KPj4NCj4+IE9uIDEwLzMxLzIyIDg6MjggQU0sIFRva2UgSMO4aWxh
bmQtSsO4cmdlbnNlbiB3cm90ZToNCj4+PiAiQmV6ZGVrYSwgRmxvcmlhbiIgPGZsb3JpYW4uYmV6
ZGVrYUBzaWVtZW5zLmNvbT4gd3JpdGVzOg0KPj4+DQo+Pj4+IEhpIGFsbCwNCj4+Pj4NCj4+Pj4g
SSB3YXMgY2xvc2VseSBmb2xsb3dpbmcgdGhpcyBkaXNjdXNzaW9uIGZvciBzb21lIHRpbWUgbm93
LiBTZWVtcyB3ZQ0KPj4+PiByZWFjaGVkIHRoZSBwb2ludCB3aGVyZSBpdCdzIGdldHRpbmcgaW50
ZXJlc3RpbmcgZm9yIG1lLg0KPj4+Pg0KPj4+PiBPbiBGcmksIDIwMjItMTAtMjggYXQgMTg6MTQg
LTA3MDAsIEpha3ViIEtpY2luc2tpIHdyb3RlOg0KPj4+Pj4gT24gRnJpLCAyOCBPY3QgMjAyMiAx
NjoxNjoxNyAtMDcwMCBKb2huIEZhc3RhYmVuZCB3cm90ZToNCj4+Pj4+Pj4+IEFuZCBpdCdzIGFj
dHVhbGx5IGhhcmRlciB0byBhYnN0cmFjdCBhd2F5IGludGVyIEhXIGdlbmVyYXRpb24NCj4+Pj4+
Pj4+IGRpZmZlcmVuY2VzIGlmIHRoZSB1c2VyIHNwYWNlIGNvZGUgaGFzIHRvIGhhbmRsZSBhbGwg
b2YgaXQuDQo+Pj4+Pj4NCj4+Pj4+PiBJIGRvbid0IHNlZSBob3cgaXRzIGFueSBoYXJkZXIgaW4g
cHJhY3RpY2UgdGhvdWdoPw0KPj4+Pj4NCj4+Pj4+IFlvdSBuZWVkIHRvIGZpbmQgb3V0IHdoYXQg
SFcvRlcvY29uZmlnIHlvdSdyZSBydW5uaW5nLCByaWdodD8NCj4+Pj4+IEFuZCBhbGwgeW91IGhh
dmUgaXMgYSBwb2ludGVyIHRvIGEgYmxvYiBvZiB1bmtub3duIHR5cGUuDQo+Pj4+Pg0KPj4+Pj4g
VGFrZSB0aW1lc3RhbXBzIGZvciBleGFtcGxlLCBzb21lIE5JQ3Mgc3VwcG9ydCBhZGp1c3Rpbmcg
dGhlIFBIQw0KPj4+Pj4gb3IgZG9pbmcgU1cgY29ycmVjdGlvbnMgKHdpdGggZGlmZmVyZW50IHZl
cnNpb25zIG9mIGh3L2Z3L3NlcnZlcg0KPj4+Pj4gcGxhdGZvcm1zIGJlaW5nIGNhcGFibGUgb2Yg
Ym90aC9vbmUvbmVpdGhlcikuDQo+Pj4+Pg0KPj4+Pj4gU3VyZSB5b3UgY2FuIGV4dHJhY3QgYWxs
IHRoaXMgaW5mbyB3aXRoIHRyYWNpbmcgYW5kIGNhcmVmdWwNCj4+Pj4+IGluc3BlY3Rpb24gdmlh
IHVBUEkuIEJ1dCBJIGRvbid0IHRoaW5rIHRoYXQncyBfZWFzaWVyXy4NCj4+Pj4+IEFuZCB0aGUg
dmVuZG9ycyBjYW4ndCBydW4gdGhlIHJlc3VsdHMgdGhydSB0aGVpciB2YWxpZGF0aW9uDQo+Pj4+
PiAoZm9yIHdoYXRldmVyIHRoYXQncyB3b3J0aCkuDQo+Pj4+Pg0KPj4+Pj4+PiBJJ3ZlIGhhZCB0
aGUgc2FtZSBjb25jZXJuOg0KPj4+Pj4+Pg0KPj4+Pj4+PiBVbnRpbCB3ZSBoYXZlIHNvbWUgdXNl
cnNwYWNlIGxpYnJhcnkgdGhhdCBhYnN0cmFjdHMgYWxsIHRoZXNlIGRldGFpbHMsDQo+Pj4+Pj4+
IGl0J3Mgbm90IHJlYWxseSBjb252ZW5pZW50IHRvIHVzZS4gSUlVQywgd2l0aCBhIGtwdHIsIEkn
ZCBnZXQgYSBibG9iDQo+Pj4+Pj4+IG9mIGRhdGEgYW5kIEkgbmVlZCB0byBnbyB0aHJvdWdoIHRo
ZSBjb2RlIGFuZCBzZWUgd2hhdCBwYXJ0aWN1bGFyIHR5cGUNCj4+Pj4+Pj4gaXQgcmVwcmVzZW50
cyBmb3IgbXkgcGFydGljdWxhciBkZXZpY2UgYW5kIGhvdyB0aGUgZGF0YSBJIG5lZWQgaXMNCj4+
Pj4+Pj4gcmVwcmVzZW50ZWQgdGhlcmUuIFRoZXJlIGFyZSBhbHNvIHRoZXNlICJpZiB0aGlzIGlz
IGRldmljZSB2MSAtPiB1c2UNCj4+Pj4+Pj4gdjEgZGVzY3JpcHRvciBmb3JtYXQ7IGlmIGl0J3Mg
YSB2Mi0+dXNlIHRoaXMgYW5vdGhlciBzdHJ1Y3Q7IGV0YyINCj4+Pj4+Pj4gY29tcGxleGl0aWVz
IHRoYXQgd2UnbGwgYmUgcHVzaGluZyBvbnRvIHRoZSB1c2Vycy4gV2l0aCBrZnVuY3MsIHdlIHB1
dA0KPj4+Pj4+PiB0aGlzIGJ1cmRlbiBvbiB0aGUgZHJpdmVyIGRldmVsb3BlcnMsIGJ1dCBJIGFn
cmVlIHRoYXQgdGhlIGRyYXdiYWNrDQo+Pj4+Pj4+IGhlcmUgaXMgdGhhdCB3ZSBhY3R1YWxseSBo
YXZlIHRvIHdhaXQgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbnMgdG8gY2F0Y2gNCj4+Pj4+Pj4gdXAu
DQo+Pj4+Pj4NCj4+Pj4+PiBJIGFncmVlIHdpdGggZXZlcnl0aGluZyB0aGVyZSwgeW91IHdpbGwg
Z2V0IGEgYmxvYiBvZiBkYXRhIGFuZCB0aGVuDQo+Pj4+Pj4gd2lsbCBuZWVkIHRvIGtub3cgd2hh
dCBmaWVsZCB5b3Ugd2FudCB0byByZWFkIHVzaW5nIEJURi4gQnV0LCB3ZQ0KPj4+Pj4+IGFscmVh
ZHkgZG8gdGhpcyBmb3IgQlBGIHByb2dyYW1zIGFsbCBvdmVyIHRoZSBwbGFjZSBzbyBpdHMgbm90
IGEgYmlnDQo+Pj4+Pj4gbGlmdCBmb3IgdXMuIEFsbCBvdGhlciBCUEYgdHJhY2luZy9vYnNlcnZh
YmlsaXR5IHJlcXVpcmVzIHRoZSBzYW1lDQo+Pj4+Pj4gbG9naWMuIEkgdGhpbmsgdXNlcnMgb2Yg
QlBGIGluIGdlbmVyYWwgcGVyaGFwcyBYRFAvdGMgYXJlIHRoZSBvbmx5DQo+Pj4+Pj4gcGxhY2Ug
bGVmdCB0byB3cml0ZSBCUEYgcHJvZ3JhbXMgd2l0aG91dCB0aGlua2luZyBhYm91dCBCVEYgYW5k
DQo+Pj4+Pj4ga2VybmVsIGRhdGEgc3RydWN0dXJlcy4NCj4+Pj4+Pg0KPj4+Pj4+IEJ1dCwgd2l0
aCBwcm9wb3NlZCBrcHRyIHRoZSBjb21wbGV4aXR5IGxpdmVzIGluIHVzZXJzcGFjZSBhbmQgY2Fu
IGJlDQo+Pj4+Pj4gZml4ZWQsIGFkZGVkLCB1cGRhdGVkIHdpdGhvdXQgaGF2aW5nIHRvIGJvdGhl
ciB3aXRoIGtlcm5lbCB1cGRhdGVzLCBldGMuDQo+Pj4+Pj4gICBGcm9tIG15IHBvaW50IG9mIHZp
ZXcgb2Ygc3VwcG9ydGluZyBDaWxpdW0gaXRzIGEgd2luIGFuZCBtdWNoIHByZWZlcnJlZA0KPj4+
Pj4+IHRvIGhhdmluZyB0byBkZWFsIHdpdGggZHJpdmVyIG93bmVycyBvbiBhbGwgY2xvdWQgdmVu
ZG9ycywgZGlzdHJpYnV0aW9ucywNCj4+Pj4+PiBhbmQgc28gb24uDQo+Pj4+Pj4NCj4+Pj4+PiBJ
ZiB2ZW5kb3IgdXBkYXRlcyBmaXJtd2FyZSB3aXRoIG5ldyBmaWVsZHMgSSBnZXQgdGhvc2UgaW1t
ZWRpYXRlbHkuDQo+Pj4+Pg0KPj4+Pj4gQ29udmVyc2VseSBpdCdzIGEgdmFsaWQgY29uY2VybiB0
aGF0IHRob3NlIHdobyAqZG8qIGFjdHVhbGx5IHVwZGF0ZQ0KPj4+Pj4gdGhlaXIga2VybmVsIHJl
Z3VsYXJseSB3aWxsIGhhdmUgbW9yZSB0aGluZ3MgdG8gd29ycnkgYWJvdXQuDQo+Pj4+Pg0KPj4+
Pj4+PiBKYWt1YiBtZW50aW9ucyBGVyBhbmQgSSBoYXZlbid0IGV2ZW4gdGhvdWdodCBhYm91dCB0
aGF0OyBzbyB5ZWFoLCBicGYNCj4+Pj4+Pj4gcHJvZ3JhbXMgbWlnaHQgaGF2ZSB0byB0YWtlIGEg
bG90IG9mIG90aGVyIHN0YXRlIGludG8gY29uc2lkZXJhdGlvbg0KPj4+Pj4+PiB3aGVuIHBhcnNp
bmcgdGhlIGRlc2NyaXB0b3JzOyBhbGwgdGhvc2UgZGV0YWlscyBkbyBzZWVtIGxpa2UgdGhleQ0K
Pj4+Pj4+PiBiZWxvbmcgdG8gdGhlIGRyaXZlciBjb2RlLg0KPj4+Pj4+DQo+Pj4+Pj4gSSB3b3Vs
ZCBwcmVmZXIgdG8gYXZvaWQgYmVpbmcgc3R1Y2sgb24gcmVxdWlyaW5nIGRyaXZlciB3cml0ZXJz
IHRvDQo+Pj4+Pj4gYmUgaW52b2x2ZWQuIFdpdGgganVzdCBhIGtwdHIgSSBjYW4gc3VwcG9ydCB0
aGUgZGV2aWNlIGFuZCBhbnkNCj4+Pj4+PiBmaXJ3bWFyZSB2ZXJzaW9ucyB3aXRob3V0IHJlcXVp
cmluZyBoZWxwLg0KPj4+Pj4NCj4+Pj4+IDEpIHdoZXJlIGFyZSB5b3UgZ2V0dGluZyBhbGwgdGhv
c2UgSFcgLyBGVyBzcGVjcyA6Uw0KPj4+Pj4gMikgbWF5YmUgKnlvdSogY2FuIGJ1dCB5b3UncmUg
bm90IGV4YWN0bHkgbm90IGFuIGV4LWRyaXZlciBkZXZlbG9wZXIgOlMNCj4+Pj4+DQo+Pj4+Pj4+
IEZlZWwgZnJlZSB0byBzZW5kIGl0IGVhcmx5IHdpdGgganVzdCBhIGhhbmRmdWwgb2YgZHJpdmVy
cyBpbXBsZW1lbnRlZDsNCj4+Pj4+Pj4gSSdtIG1vcmUgaW50ZXJlc3RlZCBhYm91dCBicGYvYWZf
eGRwL3VzZXIgYXBpIHN0b3J5OyBpZiB3ZSBoYXZlIHNvbWUNCj4+Pj4+Pj4gbmljZSBzYW1wbGUv
dGVzdCBjYXNlIHRoYXQgc2hvd3MgaG93IHRoZSBtZXRhZGF0YSBjYW4gYmUgdXNlZCwgdGhhdA0K
Pj4+Pj4+PiBtaWdodCBwdXNoIHVzIGNsb3NlciB0byB0aGUgYWdyZWVtZW50IG9uIHRoZSBiZXN0
IHdheSB0byBwcm9jZWVkLg0KPj4+Pj4+DQo+Pj4+Pj4gSSdsbCB0cnkgdG8gZG8gYSBpbnRlbCBh
bmQgbWx4IGltcGxlbWVudGF0aW9uIHRvIGdldCBhIGNyb3NzIHNlY3Rpb24uDQo+Pj4+Pj4gSSBo
YXZlIGEgZ29vZCBjb2xsZWN0aW9uIG9mIG5pY3MgaGVyZSBzbyBzaG91bGQgYmUgYWJsZSB0byBz
aG93IGENCj4+Pj4+PiBjb3VwbGUgZmlybXdhcmUgdmVyc2lvbnMuIEl0IGNvdWxkIGJlIGZpbmUg
SSB0aGluayB0byBoYXZlIHRoZSByYXcNCj4+Pj4+PiBrcHRyIGFjY2VzcyBhbmQgdGhlbiBhbHNv
IGtmdW5jcyBmb3Igc29tZSB0aGluZ3MgcGVyaGFwcy4NCj4+Pj4+Pg0KPj4+Pj4+Pj4gSSdkIHBy
ZWZlciBpZiB3ZSBsZWZ0IHRoZSBkb29yIG9wZW4gZm9yIG5ldyB2ZW5kb3JzLiBQdW50aW5nIGRl
c2NyaXB0b3INCj4+Pj4+Pj4+IHBhcnNpbmcgdG8gdXNlciBzcGFjZSB3aWxsIGluZGVlZCByZXN1
bHQgaW4gd2hhdCB5b3UganVzdCBzYWlkIC0gbWFqb3INCj4+Pj4+Pj4+IHZlbmRvcnMgYXJlIHN1
cHBvcnRlZCBhbmQgdGhhdCdzIGl0Lg0KPj4+Pj4+DQo+Pj4+Pj4gSSdtIG5vdCBzdXJlIGFib3V0
IHdoeSBpdCB3b3VsZCBtYWtlIGl0IGhhcmRlciBmb3IgbmV3IHZlbmRvcnM/IEkgdGhpbmsNCj4+
Pj4+PiB0aGUgb3Bwb3NpdGUsDQo+Pj4+Pg0KPj4+Pj4gVEJIIEknbSBvbmx5IHJlcGx5aW5nIHRv
IHRoZSBlbWFpbCBiZWNhdXNlIG9mIHRoZSBhYm92ZSBwYXJ0IDopDQo+Pj4+PiBJIHRob3VnaHQg
dGhpcyB3b3VsZCBiZSBzZWxmIGV2aWRlbnQsIGJ1dCBJIGd1ZXNzIG91ciBwZXJzcGVjdGl2ZXMN
Cj4+Pj4+IGFyZSBkaWZmZXJlbnQuDQo+Pj4+Pg0KPj4+Pj4gUGVyaGFwcyB5b3UgbG9vayBhdCBp
dCBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiBTVyBydW5uaW5nIG9uIHNvbWVvbmUNCj4+Pj4+IGVs
c2UncyBjbG91ZCwgYW4gYmVpbmcgYWJsZSB0byBtb3ZlIHRvIGFub3RoZXIgY2xvdWQsIHdpdGhv
dXQgaGF2aW5nDQo+Pj4+PiB0byB3b3JyeSBpZiBmZWF0dXJlIFggaXMgYXZhaWxhYmxlIGluIHhk
cCBvciBqdXN0IHNrYi4NCj4+Pj4+DQo+Pj4+PiBJIGxvb2sgYXQgaXQgZnJvbSB0aGUgcGVyc3Bl
Y3RpdmUgb2YgbWFpbnRhaW5pbmcgYSBjbG91ZCwgd2l0aCBwZW9wbGUNCj4+Pj4+IHdyaXRpbmcg
cmFuZG9tIFhEUCBhcHBsaWNhdGlvbnMuIElmIEkgc3dhcCBhIE5JQyBmcm9tIGFuIGluY3VtYmVu
dCB0byBhDQo+Pj4+PiAoc3VwZXJpb3IpIHN0YXJ0dXAsIGFuZCBjbG91ZCB1c2VycyBhcmUgbWVz
c2luZyB3aXRoIHJhdyBkZXNjcmlwdG9yIC0NCj4+Pj4+IEknZCBuZWVkIHRvIGdvIGZpbmQgZXZl
cnkgWERQIHByb2dyYW0gb3V0IHRoZXJlIGFuZCBtYWtlIHN1cmUgaXQNCj4+Pj4+IHVuZGVyc3Rh
bmRzIHRoZSBuZXcgZGVzY3JpcHRvcnMuDQo+Pj4+DQo+Pj4+IEhlcmUgaXMgYW5vdGhlciBwZXJz
cGVjdGl2ZToNCj4+Pj4NCj4+Pj4gQXMgQUZfWERQIGFwcGxpY2F0aW9uIGRldmVsb3BlciBJIGRv
bid0IHdhbid0IHRvIGRlYWwgd2l0aCB0aGUNCj4+Pj4gdW5kZXJseWluZyBoYXJkd2FyZSBpbiBk
ZXRhaWwuIEkgbGlrZSB0byByZXF1ZXN0IGEgZmVhdHVyZSBmcm9tIHRoZSBPUw0KPj4+PiAoaW4g
dGhpcyBjYXNlIHJ4L3R4IHRpbWVzdGFtcGluZykuIElmIHRoZSBmZWF0dXJlIGlzIGF2YWlsYWJs
ZSBJIHdpbGwNCj4+Pj4gc2ltcGx5IHVzZSBpdCwgaWYgbm90IEkgbWlnaHQgaGF2ZSB0byB3b3Jr
IGFyb3VuZCBpdCAtIG1heWJlIGJ5IGZhbGxpbmcNCj4+Pj4gYmFjayB0byBTVyB0aW1lc3RhbXBp
bmcuDQo+Pj4+DQo+Pj4+IEFsbCBwYXJ0cyBvZiBteSBhcHBsaWNhdGlvbiAoQlBGIHByb2dyYW0g
aW5jbHVkZWQpIHNob3VsZCBub3QgYmUNCj4+Pj4gb3B0aW1pemVkL2FkanVzdGVkIGZvciBhbGwg
dGhlIGRpZmZlcmVudCBIVyB2YXJpYW50cyBvdXQgdGhlcmUuDQo+Pj4NCj4+PiBZZXMsIGFic29s
dXRlbHkgYWdyZWVkLiBBYnN0cmFjdGluZyBhd2F5IHRob3NlIGtpbmRzIG9mIGhhcmR3YXJlDQo+
Pj4gZGlmZmVyZW5jZXMgaXMgdGhlIHdob2xlICpwb2ludCogb2YgaGF2aW5nIGFuIE9TL2RyaXZl
ciBtb2RlbC4gSS5lLiwNCj4+PiBpdCdzIHdoYXQgdGhlIGtlcm5lbCBpcyB0aGVyZSBmb3IhIElm
IHBlb3BsZSB3YW50IHRvIGJ5cGFzcyB0aGF0IGFuZCBnZXQNCj4+PiBkaXJlY3QgYWNjZXNzIHRv
IHRoZSBoYXJkd2FyZSwgdGhleSBjYW4gYWxyZWFkeSBkbyB0aGF0IGJ5IHVzaW5nIERQREsuDQo+
Pj4NCj4+PiBTbyBpbiBvdGhlciB3b3JkcywgMTAwJSBhZ3JlZWQgdGhhdCB3ZSBzaG91bGQgbm90
IGV4cGVjdCB0aGUgQlBGDQo+Pj4gZGV2ZWxvcGVycyB0byBkZWFsIHdpdGggaGFyZHdhcmUgZGV0
YWlscyBhcyB3b3VsZCBiZSByZXF1aXJlZCB3aXRoIGENCj4+PiBrcHRyLWJhc2VkIGludGVyZmFj
ZS4NCj4+Pg0KPj4+IEFzIGZvciB0aGUga2Z1bmMtYmFzZWQgaW50ZXJmYWNlLCBJIHRoaW5rIGl0
IHNob3dzIHNvbWUgcHJvbWlzZS4NCj4+PiBFeHBvc2luZyBhIGxpc3Qgb2YgZnVuY3Rpb24gbmFt
ZXMgdG8gcmV0cmlldmUgaW5kaXZpZHVhbCBtZXRhZGF0YSBpdGVtcw0KPj4+IGluc3RlYWQgb2Yg
YSBzdHJ1Y3QgbGF5b3V0IGlzIHNvcnRhIGNvbXBhcmFibGUgaW4gdGVybXMgb2YgZGV2ZWxvcGVy
IFVJDQo+Pj4gYWNjZXNzaWJpbGl0eSBldGMgKElNTykuDQo+Pg0KPj4gTG9va3MgbGlrZSB0aGVy
ZSBhcmUgcXVpdGUgc29tZSB1c2UgY2FzZXMgZm9yIGh3X3RpbWVzdGFtcC4NCj4+IERvIHlvdSB0
aGluayB3ZSBjb3VsZCBhZGQgaXQgdG8gdGhlIHVhcGkgbGlrZSBzdHJ1Y3QgeGRwX21kPw0KPj4N
Cj4+IFRoZSBmb2xsb3dpbmcgaXMgdGhlIGN1cnJlbnQgeGRwX21kOg0KPj4gc3RydWN0IHhkcF9t
ZCB7DQo+PiAgICAgICAgICAgX191MzIgZGF0YTsNCj4+ICAgICAgICAgICBfX3UzMiBkYXRhX2Vu
ZDsNCj4+ICAgICAgICAgICBfX3UzMiBkYXRhX21ldGE7DQo+PiAgICAgICAgICAgLyogQmVsb3cg
YWNjZXNzIGdvIHRocm91Z2ggc3RydWN0IHhkcF9yeHFfaW5mbyAqLw0KPj4gICAgICAgICAgIF9f
dTMyIGluZ3Jlc3NfaWZpbmRleDsgLyogcnhxLT5kZXYtPmlmaW5kZXggKi8NCj4+ICAgICAgICAg
ICBfX3UzMiByeF9xdWV1ZV9pbmRleDsgIC8qIHJ4cS0+cXVldWVfaW5kZXggICovDQo+Pg0KPj4g
ICAgICAgICAgIF9fdTMyIGVncmVzc19pZmluZGV4OyAgLyogdHhxLT5kZXYtPmlmaW5kZXggKi8N
Cj4+IH07DQo+Pg0KPj4gV2UgY291bGQgYWRkICBfX3U2NCBod190aW1lc3RhbXAgdG8gdGhlIHhk
cF9tZCBzbyB1c2VyDQo+PiBjYW4ganVzdCBkbyB4ZHBfbWQtPmh3X3RpbWVzdGFtcCB0byBnZXQg
dGhlIHZhbHVlLg0KPj4geGRwX21kLT5od190aW1lc3RhbXAgPT0gMCBtZWFucyBod190aW1lc3Rh
bXAgaXMgbm90DQo+PiBhdmFpbGFibGUuDQo+Pg0KPj4gSW5zaWRlIHRoZSBrZXJuZWwsIHRoZSBj
dHggcmV3cml0ZXIgY2FuIGdlbmVyYXRlIGNvZGUNCj4+IHRvIGNhbGwgZHJpdmVyIHNwZWNpZmlj
IGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBkYXRhLg0KPiANCj4gSWYgdGhlIGRyaXZlciBnZW5l
cmF0ZXMgdGhlIGNvZGUgdG8gcmV0cmlldmUgdGhlIGRhdGEsIGhvdydzIHRoYXQNCj4gZGlmZmVy
ZW50IGZyb20gdGhlIGtmdW5jIGFwcHJvYWNoPw0KPiBUaGUgb25seSBkaWZmZXJlbmNlIEkgc2Vl
IGlzIHRoYXQgaXQgd291bGQgYmUgYSBtb3JlIHN0cm9uZyBVQVBJIHRoYW4NCj4gdGhlIGtmdW5j
cz8NCg0KUmlnaHQuIGl0IGlzIGEgc3Ryb25nIHVhcGkuDQoNCj4gDQo+PiBUaGUga2Z1bmMgYXBw
cm9hY2ggY2FuIGJlIHVzZWQgdG8gKmxlc3MqIGNvbW1vbiB1c2UgY2FzZXM/DQo+IA0KPiBXaGF0
J3MgdGhlIGFkdmFudGFnZSBvZiBoYXZpbmcgdHdvIGFwcHJvYWNoZXMgd2hlbiBvbmUgY2FuIGNv
dmVyDQo+IGNvbW1vbiBhbmQgdW5jb21tb24gY2FzZXM/DQoNCkJleW9uZCBod190aW1lc3RhbXAs
IGRvIHdlIGhhdmUgYW55IG90aGVyIGZpZWxkcyByZWFkeSB0byBzdXBwb3J0Pw0KDQpJZiBpdCBl
bmRzIHVwIHdpdGggbG90cyBvZiBmaWVsZHMgdG8gYmUgYWNjZXNzZWQgYnkgdGhlIGJwZiBwcm9n
cmFtLA0KYW5kIGJwZiBwcm9ncmFtIGFjdHVhbGx5IGludGVuZHMgdG8gYWNjZXNzIHRoZXNlIGZp
ZWxkcywNCnVzaW5nIGEgc3Ryb25nIHVhcGkgbWlnaHQgYmUgYSBnb29kIHRoaW5nIGFzIGl0IGNh
biBtYWtlIGNvZGUNCm11Y2ggc3RyZWFtbGluZWQuDQoNCj4gDQo+Pj4gVGhlcmUgYXJlIHRocmVl
IG1haW4gZHJhd2JhY2tzLCBBRkFJQ1Q6DQo+Pj4NCj4+PiAxLiBJdCByZXF1aXJlcyBkcml2ZXIg
ZGV2ZWxvcGVycyB0byB3cml0ZSBhbmQgbWFpbnRhaW4gdGhlIGNvZGUgdGhhdA0KPj4+IGdlbmVy
YXRlcyB0aGUgdW5yb2xsZWQgQlBGIGJ5dGVjb2RlIHRvIGFjY2VzcyB0aGUgbWV0YWRhdGEgZmll
bGRzLCB3aGljaA0KPj4+IGlzIGEgbm9uLXRyaXZpYWwgYW1vdW50IG9mIGNvbXBsZXhpdHkuIE1h
eWJlIHRoaXMgY2FuIGJlIGFic3RyYWN0ZWQgYXdheQ0KPj4+IHdpdGggc29tZSBpbnRlcm5hbCBo
ZWxwZXJzIHRob3VnaCAobGlrZSwgZS5nLiwgYQ0KPj4+IGJwZl94ZHBfbWV0YWRhdGFfY29weV91
NjQoZHN0LCBzcmMsIG9mZnNldCkgaGVscGVyIHdoaWNoIHdvdWxkIHNwaXQgb3V0DQo+Pj4gdGhl
IHJlcXVpcmVkIEpNUC9NT1YvTERYIGluc3RydWN0aW9ucz8NCj4+Pg0KPj4+IDIuIEFGX1hEUCBw
cm9ncmFtcyB3b24ndCBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgbWV0YWRhdGEgd2l0aG91dCB1c2lu
ZyBhDQo+Pj4gY3VzdG9tIFhEUCBwcm9ncmFtIHRoYXQgY2FsbHMgdGhlIGtmdW5jcyBhbmQgcHV0
cyB0aGUgZGF0YSBpbnRvIHRoZQ0KPj4+IG1ldGFkYXRhIGFyZWEuIFdlIGNvdWxkIHNvbHZlIHRo
aXMgd2l0aCBzb21lIGNvZGUgaW4gbGlieGRwLCB0aG91Z2g7IGlmDQo+Pj4gdGhpcyBjb2RlIGNh
biBiZSBtYWRlIGdlbmVyaWMgZW5vdWdoIChzbyBpdCBqdXN0IGR1bXBzIHRoZSBhdmFpbGFibGUN
Cj4+PiBtZXRhZGF0YSBmdW5jdGlvbnMgZnJvbSB0aGUgcnVubmluZyBrZXJuZWwgYXQgbG9hZCB0
aW1lKSwgaXQgbWF5IGJlDQo+Pj4gcG9zc2libGUgdG8gbWFrZSBpdCBnZW5lcmljIGVub3VnaCB0
aGF0IGl0IHdpbGwgYmUgZm9yd2FyZC1jb21wYXRpYmxlDQo+Pj4gd2l0aCBuZXcgdmVyc2lvbnMg
b2YgdGhlIGtlcm5lbCB0aGF0IGFkZCBuZXcgZmllbGRzLCB3aGljaCBzaG91bGQNCj4+PiBhbGxl
dmlhdGUgRmxvcmlhbidzIGNvbmNlcm4gYWJvdXQga2VlcGluZyB0aGluZ3MgaW4gc3luYy4NCj4+
Pg0KPj4+IDMuIEl0IHdpbGwgbWFrZSBpdCBoYXJkZXIgdG8gY29uc3VtZSB0aGUgbWV0YWRhdGEg
d2hlbiBidWlsZGluZyBTS0JzLiBJDQo+Pj4gdGhpbmsgdGhlIENQVU1BUCBhbmQgdmV0aCB1c2Ug
Y2FzZXMgYXJlIGFsc28gcXVpdGUgaW1wb3J0YW50LCBhbmQgdGhhdA0KPj4+IHdlIHdhbnQgbWV0
YWRhdGEgdG8gYmUgYXZhaWxhYmxlIGZvciBidWlsZGluZyBTS0JzIGluIHRoaXMgcGF0aC4gTWF5
YmUNCj4+PiB0aGlzIGNhbiBiZSByZXNvbHZlZCBieSBoYXZpbmcgYSBjb252ZW5pZW50IGtmdW5j
IGZvciB0aGlzIHRoYXQgY2FuIGJlDQo+Pj4gdXNlZCBmb3IgcHJvZ3JhbXMgZG9pbmcgc3VjaCBy
ZWRpcmVjdHMuIEUuZy4sIHlvdSBjb3VsZCBqdXN0IGNhbGwNCj4+PiB4ZHBfY29weV9tZXRhZGF0
YV9mb3Jfc2tiKCkgYmVmb3JlIGRvaW5nIHRoZSBicGZfcmVkaXJlY3QsIGFuZCB0aGF0DQo+Pj4g
d291bGQgcmVjdXJzaXZlbHkgZXhwYW5kIGludG8gYWxsIHRoZSBrZnVuYyBjYWxscyBuZWVkZWQg
dG8gZXh0cmFjdCB0aGUNCj4+PiBtZXRhZGF0YSBzdXBwb3J0ZWQgYnkgdGhlIFNLQiBwYXRoPw0K
Pj4+DQo+Pj4gLVRva2UNCj4+Pg0K