From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 5E039A00C4;
	Mon, 25 Jul 2022 03:17:49 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id EA1BB4021E;
	Mon, 25 Jul 2022 03:17:47 +0200 (CEST)
Received: from EUR05-VI1-obe.outbound.protection.outlook.com
 (mail-vi1eur05on2072.outbound.protection.outlook.com [40.107.21.72])
 by mails.dpdk.org (Postfix) with ESMTP id B6761400D4
 for <dev@dpdk.org>; Mon, 25 Jul 2022 03:17:46 +0200 (CEST)
ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;
 b=crlzpgxIHgeUyk45JUCdfSlGpRpM01Jk5odasxOYtQM9Krp8+z1eX2ShOod2nTg/m3ZQVM7F88EFNxikMxkn0gD6SsGi2eRL0h/64yNMM3VdbIKV0hhdkn/kEQPTY4HjhvhkMTOyyuIozESd6bfN4kfEXk/FvEYXViDbG4me44yErP+4Vs8gWmN8zSpw7alkQWiNodmRcRJQ4QGS178ZnkS8Knx9yoteJm3vUHu5JmVW8T2dwf9ZgTFL4AsHwhG7JK4fuJgkYBhLXJ5rY0/3OnBRU4V5v3/0MYhvQAW55sX2xPlnTkij6wXWa8i4z2kxXyXkNb95cfWMSYjhb+QJ3A==
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=zs4/04e/76IItetd7sgsmR5XK7SWznnqwEMK4BrLJxc=;
 b=YTNHNyh4ZvYu8dbYTFqSmM3dp4nBH9XptxRpW2aDKMyfgCQUw8hInc2ZiNMGNV59ZEPvWOxOm9q0aT7fOBwCf6qRnsmqIRy0Z3CQsC0hp9bMzyjEvOvt8ITaik5S0UE5mVd3kD/xSPfl/WuOMyljM480sDz0443fKR87jWDV5yG8t/SIzb8u/OnyjU1eOtTZwIswe2uwPVe3kEQqmRiwUb//VyU115ZIIkNSDkdE3C/tvOKA+ExYgekWwQXndQeosGXNJF29dHfTinuKEczKLEBP2IDMHJdWl9ctYg4k6zjN6AsmbkfRSvMrW06hgy4uL2s8G8fWJRh1hOZ7aaqXbA==
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=zs4/04e/76IItetd7sgsmR5XK7SWznnqwEMK4BrLJxc=;
 b=OVZk7gBDSlmIOStC4/e4cHrR08jAjNEtA/SCxHNIf6NFzP447PpetSgxj47T4spdku6DxfSP6pEWdAgjT8cBPZnGhzkrDNIIWuCe6sbTL/jLLVhXRDwOLN8KUCgSeQ/YunKVbbhspnCi73qOBMZX4LlVMIU0eZSlt2x9kcsNqRo=
Received: from AS8PR04CA0139.eurprd04.prod.outlook.com (2603:10a6:20b:127::24)
 by PAXPR08MB7645.eurprd08.prod.outlook.com (2603:10a6:102:240::22)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.24; Mon, 25 Jul
 2022 01:17:44 +0000
Received: from AM5EUR03FT046.eop-EUR03.prod.protection.outlook.com
 (2603:10a6:20b:127:cafe::39) by AS8PR04CA0139.outlook.office365.com
 (2603:10a6:20b:127::24) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.24 via Frontend
 Transport; Mon, 25 Jul 2022 01:17:44 +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
 AM5EUR03FT046.mail.protection.outlook.com (10.152.16.164) with
 Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.5458.17 via Frontend Transport; Mon, 25 Jul 2022 01:17:44 +0000
Received: ("Tessian outbound 63c09d5d38ac:v123");
 Mon, 25 Jul 2022 01:17:44 +0000
X-CR-MTA-TID: 64aa7808
Received: from 0eb8781ecd19.1
 by 64aa7808-outbound-1.mta.getcheckrecipient.com id
 7FEE2D5B-A975-40B5-8CD1-0FFC4C3ACDAF.1; 
 Mon, 25 Jul 2022 01:17:39 +0000
Received: from EUR05-AM6-obe.outbound.protection.outlook.com
 by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0eb8781ecd19.1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);
 Mon, 25 Jul 2022 01:17:39 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=jYS/1HCdp/nrTrGcL038cC30M4ZA3wqk4Gn8DBaIwMMeAHCxYvXoMC4rKr4NzucpZibCkalqmC2PNn7WkmMwdcdtqNdx5OHrzIzG9TQjk77iBNPQRqF+ow6BcGFN0nO4RS5SxKuBiNFSDJgiTk4yg//rxCxdzm1+GoODgjG110ZUImZUv4rCEknwJC/wrTevo5R7uFmVT1MrFsQGpjYfJC9as8APS2FHlNvFCbu3d+31nKKl4wbEM04ng6n9lQpTgv//SvzePIiWfydlEQlghSpApWvy4Qcb45nd0t20jL7C1Y+ScZYMutXsb5US2Xw5NjuR31gXrCjXPmpUUm6aZw==
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=zs4/04e/76IItetd7sgsmR5XK7SWznnqwEMK4BrLJxc=;
 b=XiyGItIMLndJNmXYE26LjgIBh/jEPYwkuI+iYtXtnj21B+wAyXbvfWYruyG7AimMVZX+PRFFz+OH3Hq2iQ6WBDJSNUFQyO8o76bcpGLDQZUEdPiRcuc+aT0xCheid3smhWpOvyNzOiz43HHJeUxciuOvLMEA9YgjG/EjJL3WwOuj82zwQgKxKhZQ02baoCyAURWKndOK26OMj43Dap53EG+GIzUfMorRtl4LSGiMn7wM9kBjLpn9+u0TvRMClKQDfNRwUM8z8J1+dLjhBLzN+96Gn77cRymTMr35j3G/qYsOSETMiDzJtN//LPehjLTmoh4wzm+mpqBdoCe8K+mYhw==
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=zs4/04e/76IItetd7sgsmR5XK7SWznnqwEMK4BrLJxc=;
 b=OVZk7gBDSlmIOStC4/e4cHrR08jAjNEtA/SCxHNIf6NFzP447PpetSgxj47T4spdku6DxfSP6pEWdAgjT8cBPZnGhzkrDNIIWuCe6sbTL/jLLVhXRDwOLN8KUCgSeQ/YunKVbbhspnCi73qOBMZX4LlVMIU0eZSlt2x9kcsNqRo=
Received: from DBAPR08MB5814.eurprd08.prod.outlook.com (2603:10a6:10:1b1::6)
 by DB6PR0801MB2054.eurprd08.prod.outlook.com (2603:10a6:4:77::7) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.20; Mon, 25 Jul
 2022 01:17:36 +0000
Received: from DBAPR08MB5814.eurprd08.prod.outlook.com
 ([fe80::f9bc:749e:7a65:a2fc]) by DBAPR08MB5814.eurprd08.prod.outlook.com
 ([fe80::f9bc:749e:7a65:a2fc%7]) with mapi id 15.20.5458.024; Mon, 25 Jul 2022
 01:17:36 +0000
From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
To: Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>,
 =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= <mb@smartsharesystems.com>, "dev@dpdk.org"
 <dev@dpdk.org>, Bruce Richardson <bruce.richardson@intel.com>
CC: Jan Viktorin <viktorin@rehivetech.com>, Ruifeng Wang
 <Ruifeng.Wang@arm.com>, David Christensen <drc@linux.vnet.ibm.com>, Stanislaw
 Kardach <kda@semihalf.com>, nd <nd@arm.com>, nd <nd@arm.com>
Subject: RE: [RFC v2] non-temporal memcpy
Thread-Topic: [RFC v2] non-temporal memcpy
Thread-Index: AdiMgG8wV8KKmxnURxm0C2yHsgRJzAO+5XRQAHcUDgAAF+qXAABqjEcAABhfkMA=
Date: Mon, 25 Jul 2022 01:17:36 +0000
Message-ID: <DBAPR08MB5814C313CCD1465C8BA2527398959@DBAPR08MB5814.eurprd08.prod.outlook.com>
References: <98CBD80474FA8B44BF855DF32C47DC35D871D4@smartserver.smartshare.dk>
 <bac1f67b-e189-fe5c-1dc9-9ec777b692e5@yandex.ru>
 <98CBD80474FA8B44BF855DF32C47DC35D871DB@smartserver.smartshare.dk>
 <262c214b-7870-a221-2621-6684dce42823@yandex.ru>
In-Reply-To: <262c214b-7870-a221-2621-6684dce42823@yandex.ru>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ts-tracking-id: 50221DF568F5B44FBA706E51924BF16A.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-Office365-Filtering-Correlation-Id: ee028b46-cf5a-4632-cb7e-08da6ddb7a83
x-ms-traffictypediagnostic: DB6PR0801MB2054:EE_|AM5EUR03FT046:EE_|PAXPR08MB7645:EE_
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: 6wTFcms4Hbn0+cdVcY+22z4JbuqN5hIKK2bJobBt4pRLyHKvJjHYX1RqEDu8fy/ueqAbGA7Uze7ArnHRc1spIEwis++4YvSca1UwtWYTxJGen5zCYfrE2wkbY82an5iU9lX2JR1MCHXuEUOm+cdsNSJbwf7nyxLZ90q35n/LgExhWzJc+VEFoEjC5fxpEYEovL5cnKBpRPw4iunzs608ZGI2F83flkWW8drP6DiJ5vLRJC8nqMDxyASIdT6O2ev+7wrZ9s4NmGnTINPWbRlbeK72ktTOfhFyRutQCvvwIFsYIbXL0oObSq88je7XSobemP8Ub+9Jc21iDsmb8bAL48xpcouU1KyYBNNu+5KimIjd/cStPpgAY+5n4fyA6n6FXAZQkO9oX1xRwMLGtiD4MJq9j5jSnzlKchH4bd3TyFjUXGZOY2X0I91NXfLLWlInRSU4XQ2fLpynyOF8nNE3g5cnpmUNnh9JnCf7iT2rUdZREFXAxUWu+bPT2PLxwh2/l4D5Xy5Fr/RqBsodHygVhVecuD7Y/m+DT6MfHBukhhZeve/mXykZDr67UBv8rsgAf/QzGhTsBy12U6QHgKRC6szhR5lNcCnNqclq82enezj23tiZh7m13UnJDOFzieSlI8dEZbvWBE0o3HCoZO2H1L7bEAxb/EOPyK/hUiMmMNqk+/G/YToiERlgDbbTFAAltt4ctWxSrYCWix3l+uBaYWIp+k99hgO4TF4Kpcdtciiwp9cXcI400oQTpgNZy5/OBH4/bCHjbZ/u6OX9nGBmwjbAbcshHwtnRGC7+GWE09O75Uj19NugauDnGklweIFzhca0FdcmW2UEpOsTvglgbgxnBZpLWTE+VVRP78fVP2nSliWMChg12lNSxQVWwMGg/1wImSGpLzdE6d2EiixPaw==
X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en;
 SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBAPR08MB5814.eurprd08.prod.outlook.com;
 PTR:; CAT:NONE;
 SFS:(13230016)(4636009)(396003)(136003)(346002)(376002)(366004)(39860400002)(66946007)(5660300002)(8936002)(76116006)(52536014)(66556008)(4326008)(64756008)(66446008)(66476007)(30864003)(8676002)(55016003)(33656002)(2906002)(86362001)(38070700005)(7696005)(66574015)(83380400001)(122000001)(478600001)(71200400001)(966005)(110136005)(38100700002)(54906003)(316002)(41300700001)(9686003)(6506007)(186003)(26005)(23180200003);
 DIR:OUT; SFP:1101; 
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB2054
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: AM5EUR03FT046.eop-EUR03.prod.protection.outlook.com
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id-Prvs: 53579f2f-b4c7-41e0-d19e-08da6ddb7568
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: CCqdPPtwaSCgM6GVwDxr+V6qqDt+shKDaBwLlsfLx+ywDxUp/QlGzAwUgxtIohRuZhUnIVM6rs5qqd7/59/Y+TJ8vP1la/W67JbUGk4QRkKC/JrdCRW5Xv2UOgzfRpKF1J6blBi+k2BH1EZylCe5F6oAVNcPnk/s1sWm/iVhx0bFL8MgW9I5zYk+S4kfCNEe20T7gNGo1tlXMyHymUhv97y7GABwgOlMdnUFBbs8fr5l8NHQ/dd4IaQln1OiYtBdKxIps5BoCZhUxhnVqj4cHBB7UFcQW4EPMlbT8AExpm+BRtXL93F0X8/91bB/VdbIvvMV7pNek530a2c8p6BjpdQJb+zmmmMITqGwwnfsMNimPvKYwwHJMLeoxi+HtFSm6c0FjHIlSmjPhjTtx2CCu4TO8427w4wGM6v37n4EIs6nCsq8LTjMVkir/cTL+VjDKcH+7ZHaoywBtCP1Zxk8wuNcgAPetO1s/f+1KChIDNphclrNCuG5QQqAUgamCfSzIvZWKsFPjYVc1yyZpKLxbHFvod2UCFu3VTIoTCPqFG/G0qIHM+4YNwy+xkaqG3LNfoTcb0uzEidLyOu3Fs7mVU3jl/+HC9nNuoaLLA9afSJ2Af2pGqJcwgY8xhHUzsYEwY/w43FDxE4sfLDFfAdx6L7DBuRL4kMLX/zm0Z95vKO1aQ+/TiPCgwhIIKi7eBIxu5ZenuRqP7JLdZ5n/6mi/aCyE41SIw/EHCwLYgLhqc1ARYzd3gKZR/TElgAiMncgVhlpeCHg5Y+BlZr3vRKSdOfVUjqW6CxBAPXJO25imxB6FsFNeG7Ik6mX4oPFElkbe5lhXSeRhO7nisg/cYlzU2Z0Y3LpXGJ00Z/Fa+wMtV7xW7ueDhRuPAbFiRgxS7Eo
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:(13230016)(4636009)(346002)(376002)(39860400002)(136003)(396003)(36840700001)(46966006)(82310400005)(36860700001)(33656002)(86362001)(81166007)(356005)(82740400003)(55016003)(478600001)(966005)(52536014)(30864003)(8936002)(5660300002)(316002)(54906003)(110136005)(4326008)(70206006)(70586007)(336012)(66574015)(47076005)(8676002)(186003)(40480700001)(83380400001)(6506007)(7696005)(41300700001)(2906002)(26005)(9686003)(23180200003);
 DIR:OUT; SFP:1101; 
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2022 01:17:44.6231 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ee028b46-cf5a-4632-cb7e-08da6ddb7a83
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: AM5EUR03FT046.eop-EUR03.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7645
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

PHNuaXA+DQo+IA0KPiAyMi8wNy8yMDIyIDExOjQ0LCBNb3J0ZW4gQnLDuHJ1cCDQv9C40YjQtdGC
Og0KPiA+PiBGcm9tOiBLb25zdGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFudGluLnYuYW5h
bnlldkB5YW5kZXgucnVdDQo+ID4+IFNlbnQ6IEZyaWRheSwgMjIgSnVseSAyMDIyIDAxLjIwDQo+
ID4+DQo+ID4+IEhpIE1vcnRlbiwNCj4gPj4NCj4gPj4+IFRoaXMgUkZDIHByb3Bvc2VzIGEgc2V0
IG9mIGZ1bmN0aW9ucyBvcHRpbWl6ZWQgZm9yIG5vbi10ZW1wb3JhbA0KPiA+PiBtZW1vcnkgY29w
eS4NCj4gPj4+DQo+ID4+PiBBdCB0aGlzIHN0YWdlLCBJIGFtIGFza2luZyBmb3IgZmVlZGJhY2sg
b24gdGhlIGNvbmNlcHQuDQo+ID4+Pg0KPiA+Pj4gQXBwbGljYXRpb25zIHNvbWV0aW1lcyBkYXRh
IHRvIGFub3RoZXIgbWVtb3J5IGxvY2F0aW9uLCB3aGljaCBpcw0KPiA+Pj4gb25seQ0KPiA+PiB1
c2VkDQo+ID4+PiBtdWNoIGxhdGVyLg0KPiA+Pj4gSW4gdGhpcyBjYXNlLCBpdCBpcyBpbmVmZmlj
aWVudCB0byBwb2xsdXRlIHRoZSBkYXRhIGNhY2hlIHdpdGggdGhlDQo+ID4+IGNvcGllZA0KPiA+
Pj4gZGF0YS4NCj4gPj4+DQo+ID4+PiBBbiBleGFtcGxlIHVzZSBjYXNlIChvcmlnaW5hdGluZyBm
cm9tIGEgcmVhbCBsaWZlIGFwcGxpY2F0aW9uKToNCj4gPj4+IENvcHlpbmcgZmlsdGVyZWQgcGFj
a2V0cywgb3IgdGhlIGZpcnN0IHBhcnQgb2YgdGhlbSwgaW50byBhIGNhcHR1cmUNCj4gPj4gYnVm
ZmVyDQo+ID4+PiBmb3Igb2ZmbGluZSBhbmFseXNpcy4NCj4gPj4+DQo+ID4+PiBUaGUgcHVycG9z
ZSBvZiB0aGVzZSBmdW5jdGlvbnMgaXMgdG8gYWNoaWV2ZSBhIHBlcmZvcm1hbmNlIGdhaW4gYnkN
Cj4gPj4gbm90DQo+ID4+PiBwb2xsdXRpbmcgdGhlIGNhY2hlIHdoZW4gY29weWluZyBkYXRhLg0K
PiA+Pj4gQWx0aG91Z2ggdGhlIHRocm91Z2hwdXQgbWF5IGJlIGltcHJvdmVkIGJ5IGZ1cnRoZXIg
b3B0aW1pemF0aW9uLCBJDQo+ID4+PiBkbw0KPiA+PiBub3QNCj4gPj4+IGNvbnNpZGVyIHRocm91
Z3B1dCBvcHRpbWl6YXRpb24gcmVsZXZhbnQgaW5pdGlhbGx5Lg0KPiA+Pj4NCj4gPj4+IFRoZSB4
ODYgbm9uLXRlbXBvcmFsIGxvYWQgaW5zdHJ1Y3Rpb25zIGhhdmUgMTYgYnl0ZSBhbGlnbm1lbnQN
Cj4gPj4+IHJlcXVpcmVtZW50cyBbMV0sIHdoaWxlIEFSTSBub24tdGVtcG9yYWwgbG9hZCBpbnN0
cnVjdGlvbnMgYXJlDQo+ID4+IGF2YWlsYWJsZSB3aXRoDQo+ID4+PiA0IGJ5dGUgYWxpZ25tZW50
IHJlcXVpcmVtZW50cyBbMl0uDQo+ID4+PiBCb3RoIHBsYXRmb3JtcyBvZmZlciBub24tdGVtcG9y
YWwgc3RvcmUgaW5zdHJ1Y3Rpb25zIHdpdGggNCBieXRlDQo+ID4+IGFsaWdubWVudA0KPiA+Pj4g
cmVxdWlyZW1lbnRzLg0KPiA+Pj4NCj4gPj4+IEluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGZ1
bmN0aW9uIHdpdGhvdXQgYW55IGFsaWdubWVudA0KPiA+PiByZXF1aXJlbWVudHMsIHdlDQo+ID4+
PiBhbHNvIHByb3ZpZGUgZnVuY3Rpb25zIGZvciByZXNwZWN0aXZseSAxNiBhbmQgNCBieXRlIGFs
aWduZWQgYWNjZXNzDQo+ID4+IGZvcg0KPiA+Pj4gcGVyZm9ybWFuY2UgcHVycG9zZXMuDQo+ID4+
Pg0KPiA+Pj4gVGhlIGZ1bmN0aW9uIG5hbWVzIHJlc2VtYmxlIHN0YW5kYXJkIEMgbGlicmFyeSBm
dW5jdGlvbiBuYW1lcywgYnV0DQo+ID4+IHRoZWlyDQo+ID4+PiBzaWduYXR1cmVzIGFyZSBpbnRl
bnRpb25hbGx5IGRpZmZlcmVudC4gTm8gbmVlZCB0byBkcmFnIGxlZ2FjeSBpbnRvDQo+ID4+IGl0
Lg0KPiA+Pj4NCj4gPj4+IE5COiBEb24ndCBjb21tZW50IG9uIHNwYWNlcyBmb3IgaW5kZW50YXRp
b247IGEgcGF0Y2ggd2lsbCBmb2xsb3cNCj4gPj4+IERQREsNCj4gPj4gY29kaW5nDQo+ID4+PiBz
dHlsZSBhbmQgdXNlIFRBQi4NCj4gPj4NCj4gPj4NCj4gPj4gSSB0aGluayB0aGVyZSB3ZXJlIGRp
c2N1c3Npb25zIGluIG90aGVyIGRpcmVjdGlvbiAtIHJlbW92ZQ0KPiA+PiBydGVfbWVtY3B5KCkg
Y29tcGxldGVseSBhbmQgdXNlIG1lbWNweSgpIGluc3RlYWQuLi4NCj4gPg0KPiA+IFllcywgdGhl
IGhpZ2hseSBvcHRpbWl6ZWQgcnRlX21lbWNweSgpIGltcGxlbWVudGF0aW9uIG9mIG1lbWNweSgp
IGhhcw0KPiBiZWNvbWUgb2Jzb2xldGUsIG5vdyB0aGF0IG1vZGVybiBjb21waWxlcnMgcHJvdmlk
ZSBhbiBlZmZpY2llbnQgbWVtY3B5KCkNCj4gaW1wbGVtZW50YXRpb24uDQo+ID4NCj4gPiBJdCdz
IGFuIGV4Y2VsbGVudCByZWZlcmVuY2UsIGJlY2F1c2Ugd2Ugc2hvdWxkIGxlYXJuIGZyb20gaXQs
IGFuZCBhdm9pZA0KPiBpbnRyb2R1Y2luZyBzaW1pbGFyIG1pc3Rha2VzIHdpdGggbm9uLXRlbXBv
cmFsIG1lbWNweS4NCj4gPg0KPiA+PiBCdXQgaWYgd2UgaGF2ZSBhIGdvb2QgdXNlIGNhc2UgZm9y
IHRoYXQsIHRoZW4gSSBhbSBwb3NpdGl2ZSBpbg0KPiA+PiBwcmluY2lwbGUuDQo+ID4NCj4gPiBU
aGUgc3RhbmRhcmQgQyBsaWJyYXJ5IGRvZXNuJ3Qgb2ZmZXIgbm9uLXRlbXBvcmFsIG1lbWNweSgp
LCBzbyB3ZSBuZWVkIHRvDQo+IGltcGxlbWVudCBpdCBvdXJzZWx2ZXMuDQo+ID4NCj4gPj4gVGhv
dWdoIEkgdGhpbmsgd2UgbmVlZCBhIGNsZWFyIHVzZS1jYXNlIHdpdGhpbiBkcGRrIGZvciBpdCB0
bw0KPiA+PiBkZW1vbnN0cmF0ZSBwZXJmb21hbmNlIGdhaW4uDQo+ID4NCj4gPiBUaGUgcGVyZm9y
bWFuY2UgZ2FpbiBpcyB0byBhdm9pZCBwb2xsdXRpbmcgdGhlIGRhdGEgY2FjaGUuIERQREsgZXhh
bXBsZQ0KPiBhcHBsaWNhdGlvbnMsIGxpa2UgbDNmd2QsIGFyZSBwcm9iYWJseSB0b28gcHJpbWl0
aXZlIHRvIG1lYXN1cmUgYW55IGJlbmVmaXQgaW4gdGhpcw0KPiByZWdhcmQuDQo+ID4NCj4gPj4g
UHJvYmFibHkgY29weWluZyBwYWNrZXRzIHdpdGhpbiBwZHVtcCBsaWIsIG9yIGV4YW1wbGVzL2Rt
YS4gb3IgLi4uDQo+ID4NCj4gPiBHb29kIHBvaW50IC0gdGhlIG5ldyBmdW5jdGlvbnMgc2hvdWxk
IGJlIHVzZWQgc29tZXdoZXJlIHdpdGhpbiBEUERLLiBGb3INCj4gdGhpcyBwdXJwb3NlLCBJIHdp
bGwgbG9vayBpbnRvIG1vZGlmeWluZyBydGVfcGt0bWJ1Zl9jb3B5KCksIHdoaWNoIGlzIHVzZWQg
YnkNCj4gcGR1bXBfY29weSgpLCB0byB1c2Ugbm9uLXRlbXBvcmFsIGNvcHlpbmcgb2YgdGhlIHBh
Y2tldCBkYXRhLg0KPiA+DQo+ID4+IEFub3RoZXIgdGhvdWdodCAtIGRvIHdlIHJlYWxseSBuZWVk
IGEgc2VwYXJhdGUgaW5saW5lIGZ1bmN0aW9uIGZvcg0KPiA+PiBlYWNoIGZsYXZvdXI/DQo+ID4+
IE1pZ2h0IGJlIGp1c3Qgb25lIG5vbi1pbmxpbmUgcnRlX21lbWNweV9udChkc3QsIHNyYywgc2l6
ZSwgZmxhZ3MpLA0KPiA+PiB3aGVyZSBmbGFncyBjb3VsZCBiZSBjb21iaW5hdGlvbiBvZiBOVF9T
UkMsIE5UX0RTVCwgYW5kIGtlZXANCj4gPj4gYWxpZ25tZW50IGRldGVjdGlvbi9kZWNpc2lvbnMg
dG8gcGFydGljdWxhciBpbXBsZW1lbnRhdGlvbj8NCj4gPg0KPiA+IFRoYW5rIHlvdSBmb3IgdGhl
IGZlZWRiYWNrLCBLb25zdGFudGluLg0KPiA+DQo+ID4gTXkgYW5zd2VyIHRvIHRoaXMgc3VnZ2Vz
dGlvbiBnZXRzIGEgbGl0dGxlIGxvbmd3aW5kZWQuLi4NCj4gPg0KPiA+IExvb2tpbmcgYXQgdGhl
IERQREsgcGNhcG5nIGxpYnJhcnksIGl0IGNvcGllcyBhIDQgYnl0ZSBhbGlnbmVkIG1ldGFkYXRh
DQo+IHN0cnVjdHVyZSBzaXplZCAyOCBieXRlLiBTbyBpdCBjYW4gZG8gd2l0aCA0IGJ5dGUgYWxp
Z25lZCBmdW5jdGlvbnMuDQo+ID4NCj4gPiBPdXIgYXBwbGljYXRpb24gY2FuIGNhcHR1cmUgcGFj
a2V0cyBzdGFydGluZyBhdCB0aGUgSVAgaGVhZGVyLCB3aGljaCBpcyBvZmZzZXQNCj4gYnkgMTQg
Ynl0ZSAoRXRoZXJuZXQgaGVhZGVyIHNpemUpIGZyb20gdGhlIHBhY2tldCBidWZmZXIsIHNvIGl0
IHJlcXVpcmVzIDIgYnl0ZQ0KPiBhbGlnbm1lbnQuIEFuZCB0aHVzLCByZXF1aXJpbmcgNCBieXRl
IGFsaWdubWVudCBpcyBub3QgYWNjZXB0YWJsZS4NCj4gPg0KPiA+IE91ciBhcHBsaWNhdGlvbiB1
c2VzIDE2IGJ5dGUgYWxpZ25tZW50IGluIHRoZSBjYXB0dXJlIGJ1ZmZlciBhcmVhLCBhbmQgY2Fu
DQo+IGJlbmVmaXQgZnJvbSAxNiBieXRlIGFsaWduZWQgZnVuY3Rpb25zLiBGdXJ0aGVybW9yZSwg
eDg2IHByb2Nlc3NvcnMgcmVxdWlyZSAxNg0KPiBieXRlIGFsaWdubWVudCBmb3Igbm9uLXRlbXBv
cmFsIGxvYWQgaW5zdHJ1Y3Rpb25zLCBzbyBJIHRoaW5rIGEgMTYgYnl0ZSBhbGlnbmVkDQo+IG5v
bi10ZW1wb3JhbCBtZW1jcHkgZnVuY3Rpb24gc2hvdWxkIGJlIG9mZmVyZWQuDQo+IA0KPiANCj4g
WWVzLCB4ODYgbmVlZHMgMTZCIGFsaWdubWVudCBmb3IgTlQgbG9hZC9zdG9yZXMgQnV0IHRoYXQn
cyBzdXBwb3NlZCB0byBiZSBhcmNoDQo+IHNwZWNpZmljIGxpbWl0YXRpb24sIHRoYXQgd2UgcHJv
YmFibHkgd2FudCB0byBoaWRlLCBubz8NCj4gSW5zaWRlIHRoZSBmdW5jdGlvbiBjYW4gY2hlY2sg
YWxpZ25tZW50IG9mIGJvdGggc3JjIGFuZCBkc3QgYW5kIGRlY2lkZSBzaG91bGQgaXQNCj4gdXNl
IE5UIGxvYWQvc3RvcmUgaW5zdHJ1Y3Rpb25zIG9yIGp1c3QgZG8gbm9ybWFsIGNvcHkuDQpJTU8s
IHRoZSBub3JtYWwgY29weSBzaG91bGQgbm90IGJlIGRvbmUgYnkgdGhpcyBBUEkgdW5kZXIgYW55
IGNvbmRpdGlvbnMuIFdoeSBub3QgbGV0IHRoZSBhcHBsaWNhdGlvbiBjYWxsIG1lbWNweS9ydGVf
bWVtY3B5IHdoZW4gdGhlIE5UIGNvcHkgaXMgbm90IGFwcGxpY2FibGU/IEl0IGhlbHBzIHRoZSBw
cm9ncmFtbWVyIHRvIHVuZGVyc3RhbmQgYW5kIGRlYnVnIHRoZSBpc3N1ZXMgbXVjaCBlYXNpZXIu
DQoNCj4gDQo+IA0KPiA+IFdoaWxlIHdvcmtpbmcgb24gdGhlc2UgZnVudGlvbnMsIEkgZXhwZXJp
bWVudGVkIHdpdGggYW4gcnRlX21lbWNweV9udCgpDQo+IHRha2luZyBmbGFncywgd2hpY2ggaXMg
YWxzbyBteSBwZXJzb25hbCBwcmVmZXJlbmNlLCBidXQgaGF2ZW4ndCBzdWNjZWVkIHlldC4NCj4g
RXNwZWNpYWxseSB3aGVuIGNvcHlpbmcgYSAxNiBieXRlIGFsaWduZWQgc3RydWN0dXJlIG9mIG9u
bHkgMTYgYnl0ZSwgdGhlDQo+IG92ZXJoZWFkIG9mIHRoZSBmdW5jdGlvbiBjYWxsICsgY29tcGFy
aW5nIHRoZSBmbGFncyArIHRoZSBjb3B5IGxvb3Agb3ZlcmhlYWQgaXMNCj4gc2lnbmlmaWNhbnQs
IGNvbXBhcmVkIHRvIGlubGluZSBjb2RlIGNvbnNpc3Rpbmcgb2Ygb25seSBvbmUgcGFpciBvZiAi
bW92bnRkcWENCj4gKCVyc2kpLCV4bW0wOyBtb3ZudGRxICV4bW0wLCglcmRpKSIgaW5zdHJ1Y3Rp
b25zLg0KPiA+DQo+ID4gUmVtZW1iZXIgdGhhdCBhIG5vbi1pbmxpbmVkIHJ0ZV9tZW1jcHlfbnQo
KSB3aWxsIGJlIGNhbGxlZCB3aXRoIHZlcnkNCj4gdmFyeWluZyBzaXplLCBkdWUgdG8gdGhlIHR5
cGljYWwgbWl4IG9mIHNtYWxsIGFuZCBiaWcgcGFja2V0cywgc28gYnJhbmNoIHByZWRpY3Rpb24N
Cj4gd2lsbCBub3QgaGVscC4NCj4gPg0KPiA+IFRoaXMgUkZDIGRvZXMgbm90IHlldCBzaG93IHRo
ZSBydGVfbWVtY3B5X250KCkgZnVuY3Rpb24gaGFuZGxpbmcgdW5hbGlnbmVkDQo+IGxvYWQvc3Rv
cmUsIGJ1dCBpdCBpcyBtb3JlIGNvbXBsZXggdGhhbiB0aGUgYWxpZ25lZCBmdW5jdGlvbnMuIFNv
IEkgdGhpbmsgdGhlDQo+IGFsaWduZWQgdmFyaWFudHMgYXJlIHdhcnJhbnRlZCAtIGZvciBwZXJm
b3JtYW5jZSByZWFzb25zLg0KPiA+DQo+ID4gU29tZSBvZiB0aGUgbmVlZCBmb3IgZXhwb3Npbmcg
aW5kaXZpZHVhbCBmdW5jdGlvbnMgZm9yIGRpZmZlcmVudCBhbGlnbm1lbnQNCj4gc3RlbXMgZnJv
bSB0aGUgY29tcGlsZXIgYmVpbmcgdW5hYmxlIHRvIGRldGVybWluZSB0aGUgYWxpZ25tZW50IG9m
IHRoZSBzb3VyY2UNCj4gYW5kIGRlc3RpbmF0aW9uIHBvaW50ZXJzIGF0IGJ1aWxkIHRpbWUuIFNv
IHdlIG5lZWQgdG8gaGVscCB0aGUgY29tcGlsZXIgd2l0aCB0aGlzDQo+IGF0IGJ1aWxkIHRpbWUs
IGFuZCB0aHVzIHRoZSBuZWVkIGZvciBpbmxpbmluZyB0aGUgZnVuY3Rpb24uIElmIHdlIGV4cG9z
ZSBhIGJ1bmNoDQo+IG9mIHNtYWxsIGlubGluZSBmdW5jdGlvbnMgb3IgYSBiaWcgaW5saW5lIGZ1
bmN0aW9uIHdpdGggZmxhZ3Mgc2VlbXMgdG8gYmUgYSBtYXR0ZXINCj4gb2YgdGFzdGUuDQo+ID4N
Cj4gPiBUaGlua2luZyBhYm91dCBpdCwgeW91IGFyZSBwcm9iYWJseSByaWdodCB0aGF0IGV4cG9z
aW5nIGEgc2luZ2xlIGZ1bmN0aW9uIHdpdGgNCj4gZmxhZ3MgaXMgYmV0dGVyIGZvciBkb2N1bWVu
dGF0aW9uIHB1cnBvc2VzIGFuZCBlYXNpZXIgZm9yIG90aGVyIGFyY2hpdGVjdHVyZXMgdG8NCj4g
aW1wbGVtZW50LiBCdXQgaXQgc3RpbGwgbmVlZHMgdG8gYmUgaW5saW5lLCBmb3IgdGhlIHJlYXNv
bnMgZGVzY3JpYmVkIGFib3ZlLg0KPiANCj4gDQo+IE9rLCBteSBpbml0aWFsIHRob3VnaHQgd2Fz
IHRoYXQgbWFpbiB1c2UtY2FzZSBmb3IgaXQgd291bGQgYmUgY29weWluZyBvZiBiaWcNCj4gY2h1
bmtzIG9mIGRhdGEsIGJ1dCBmcm9tIHlvdXIgZGVzY3JpcHRpb24gaXQgbWlnaHQgbm90IGJlIHRo
ZSBjYXNlLg0KPiBZZXMsIGZvciBqdXN0IDE2LzMyQiBjb3B5IGZ1bmN0aW9uIGNhbGwgb3Zlcmhl
YWQgbWlnaHQgYmUgd2F5IHRvbyBoaWdoLi4uDQo+IEFzIGFub3RoZXIgYWx0ZXJuYXRpdmUgLSB3
b3VsZCBtZW1jcHlfbnRfYnVsaygpIGhlbHAgc29tZWhvdz8NCj4gSXQgY2FuIGRvIGNvcHlpbmcg
Zm9yIHRoZSBzZXZlcmFsIHNyYy9kc3QgcGFpcnMgYXQgb25jZSBhbmQgdGhhdCBtaWdodCBoZWxw
IHRvDQo+IGFtb3J0aXplIGNvc3Qgb2YgZnVuY3Rpb24gY2FsbC4NCj4gDQo+IA0KPiA+DQo+ID4+
DQo+ID4+DQo+ID4+PiBbMV0gaHR0cHM6Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2Vu
L2RvY3MvaW50cmluc2ljcy0NCj4gPj4gZ3VpZGUvaW5kZXguaHRtbCN0ZXh0PV9tbV9zdHJlYW1f
bG9hZA0KPiA+Pj4gWzJdIGh0dHBzOi8vZGV2ZWxvcGVyLmFybS5jb20vZG9jdW1lbnRhdGlvbi8x
MDAwNzYvMDEwMC9BNjQtDQo+ID4+IEluc3RydWN0aW9uLVNldC1SZWZlcmVuY2UvQTY0LUZsb2F0
aW5nLXBvaW50LUluc3RydWN0aW9ucy9MRE5QLS1TSU1ELQ0KPiA+PiBhbmQtRlAtDQo+ID4+Pg0K
PiA+Pj4gVjI6DQo+ID4+PiAtIE9ubHkgY29weSBmcm9tIG5vbi10ZW1wb3JhbCBzb3VyY2UgdG8g
bm9uLXRlbXBvcmFsIGRlc3RpbmF0aW9uLg0KPiA+Pj4gICAgIEkuZS4gcmVtb3ZlIHRoZSB0d28g
dmFyaWFudHMgd2l0aCBvbmx5IHNvdXJjZSBhbmQvb3IgZGVzdGluYXRpb24NCj4gPj4gYmVpbmcN
Cj4gPj4+ICAgICBub24tdGVtcG9yYWwuDQo+ID4+PiAtIERvIG5vdCByZXF1aXJlIGFsaWdubWVu
dC4NCj4gPj4+ICAgICBJbnN0ZWFkLCBvZmZlciBhZGRpdGlvbmFsIDQgYW5kIDE2IGJ5dGUgYWxp
Z25lZCBmdW5jdGlvbnMgZm9yDQo+ID4+IHBlcmZvcm1hbmNlDQo+ID4+PiAgICAgcHVycG9zZXMu
DQo+ID4+PiAtIEltcGxlbWVudGVkIHR3byBvZiB0aGUgZnVuY3Rpb25zIGZvciB4ODYuDQo+ID4+
PiAtIFJlbW92ZSBtZW1zZXQgZnVuY3Rpb24uDQo+ID4+Pg0KPiA+Pj4gU2lnbmVkLW9mZi1ieTog
TW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4NCj4gPj4+IC0tLQ0KPiA+
Pj4NCj4gPj4+IC8qKg0KPiA+Pj4gICAgKiBAd2FybmluZw0KPiA+Pj4gICAgKiBAYiBFWFBFUklN
RU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4+PiAg
ICAqDQo+ID4+PiAgICAqIENvcHkgZGF0YSBmcm9tIG5vbi10ZW1wb3JhbCBzb3VyY2UgdG8gbm9u
LXRlbXBvcmFsIGRlc3RpbmF0aW9uLg0KPiA+Pj4gICAgKg0KPiA+Pj4gICAgKiBAcGFyYW0gZHN0
DQo+ID4+PiAgICAqICAgUG9pbnRlciB0byB0aGUgbm9uLXRlbXBvcmFsIGRlc3RpbmF0aW9uIG9m
IHRoZSBkYXRhLg0KPiA+Pj4gICAgKiAgIFNob3VsZCBiZSA0IGJ5dGUgYWxpZ25lZCwgZm9yIG9w
dGltYWwgcGVyZm9ybWFuY2UuDQo+ID4+PiAgICAqIEBwYXJhbSBzcmMNCj4gPj4+ICAgICogICBQ
b2ludGVyIHRvIHRoZSBub24tdGVtcG9yYWwgc291cmNlIGRhdGEuDQo+ID4+PiAgICAqICAgTm8g
YWxpZ25tZW50IHJlcXVpcmVtZW50cy4NCj4gPj4+ICAgICogQHBhcmFtIGxlbg0KPiA+Pj4gICAg
KiAgIE51bWJlciBvZiBieXRlcyB0byBjb3B5Lg0KPiA+Pj4gICAgKiAgIFNob3VsZCBiZSBiZSBk
aXZpc2libGUgYnkgNCwgZm9yIG9wdGltYWwgcGVyZm9ybWFuY2UuDQo+ID4+PiAgICAqLw0KPiA+
Pj4gX19ydGVfZXhwZXJpbWVudGFsDQo+ID4+PiBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZQ0K
PiA+Pj4gX19hdHRyaWJ1dGVfXygoX19ub25udWxsX18oMSwgMiksIF9fYWNjZXNzX18od3JpdGVf
b25seSwgMSwgMyksDQo+ID4+IF9fYWNjZXNzX18ocmVhZF9vbmx5LCAyLCAzKSkpDQo+ID4+PiB2
b2lkIHJ0ZV9tZW1jcHlfbnQodm9pZCAqIF9fcnRlX3Jlc3RyaWN0IGRzdCwgY29uc3Qgdm9pZCAq
DQo+ID4+IF9fcnRlX3Jlc3RyaWN0IHNyYywgc2l6ZV90IGxlbikNCj4gPj4+IC8qIEltcGxlbWVu
dGF0aW9uIFQuQi5ELiAqLw0KPiA+Pj4NCj4gPj4+IC8qKg0KPiA+Pj4gICAgKiBAd2FybmluZw0K
PiA+Pj4gICAgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBw
cmlvciBub3RpY2UuDQo+ID4+PiAgICAqDQo+ID4+PiAgICAqIENvcHkgZGF0YSBpbiBibG9ja3Mg
b2YgMTYgYnl0ZSBmcm9tIGFsaWduZWQgbm9uLXRlbXBvcmFsIHNvdXJjZQ0KPiA+Pj4gICAgKiB0
byBhbGlnbmVkIG5vbi10ZW1wb3JhbCBkZXN0aW5hdGlvbi4NCj4gPj4+ICAgICoNCj4gPj4+ICAg
ICogQHBhcmFtIGRzdA0KPiA+Pj4gICAgKiAgIFBvaW50ZXIgdG8gdGhlIG5vbi10ZW1wb3JhbCBk
ZXN0aW5hdGlvbiBvZiB0aGUgZGF0YS4NCj4gPj4+ICAgICogICBNdXN0IGJlIDE2IGJ5dGUgYWxp
Z25lZC4NCj4gPj4+ICAgICogQHBhcmFtIHNyYw0KPiA+Pj4gICAgKiAgIFBvaW50ZXIgdG8gdGhl
IG5vbi10ZW1wb3JhbCBzb3VyY2UgZGF0YS4NCj4gPj4+ICAgICogICBNdXN0IGJlIDE2IGJ5dGUg
YWxpZ25lZC4NCj4gPj4+ICAgICogQHBhcmFtIGxlbg0KPiA+Pj4gICAgKiAgIE51bWJlciBvZiBi
eXRlcyB0byBjb3B5Lg0KPiA+Pj4gICAgKiAgIE11c3QgYmUgZGl2aXNpYmxlIGJ5IDE2Lg0KPiA+
Pj4gICAgKi8NCj4gPj4+IF9fcnRlX2V4cGVyaW1lbnRhbA0KPiA+Pj4gc3RhdGljIF9fcnRlX2Fs
d2F5c19pbmxpbmUNCj4gPj4+IF9fYXR0cmlidXRlX18oKF9fbm9ubnVsbF9fKDEsIDIpLCBfX2Fj
Y2Vzc19fKHdyaXRlX29ubHksIDEsIDMpLA0KPiA+PiBfX2FjY2Vzc19fKHJlYWRfb25seSwgMiwg
MykpKQ0KPiA+Pj4gdm9pZCBydGVfbWVtY3B5X250MTZhKHZvaWQgKiBfX3J0ZV9yZXN0cmljdCBk
c3QsIGNvbnN0IHZvaWQgKg0KPiA+PiBfX3J0ZV9yZXN0cmljdCBzcmMsIHNpemVfdCBsZW4pDQo+
ID4+PiB7DQo+ID4+PiAgICAgICBjb25zdCB2b2lkICogY29uc3QgIGVuZCA9IFJURV9QVFJfQURE
KHNyYywgbGVuKTsNCj4gPj4+DQo+ID4+PiAgICAgICBSVEVfQVNTRVJUKHJ0ZV9pc19hbGlnbmVk
KGRzdCwgc2l6ZW9mKF9fbTEyOGkpKSk7DQo+ID4+PiAgICAgICBSVEVfQVNTRVJUKHJ0ZV9pc19h
bGlnbmVkKHNyYywgc2l6ZW9mKF9fbTEyOGkpKSk7DQo+ID4+PiAgICAgICBSVEVfQVNTRVJUKHJ0
ZV9pc19hbGlnbmVkKGxlbiwgc2l6ZW9mKF9fbTEyOGkpKSk7DQo+ID4+Pg0KPiA+Pj4gICAgICAg
LyogQ29weSBsYXJnZSBwb3J0aW9uIG9mIGRhdGEuICovDQo+ID4+PiAgICAgICB3aGlsZSAoUlRF
X1BUUl9ESUZGKGVuZCwgc3JjKSA+PSA0ICogc2l6ZW9mKF9fbTEyOGkpKSB7DQo+ID4+PiAgICAg
ICAgICAgcmVnaXN0ZXIgX19tMTI4aSAgICB4bW0wLCB4bW0xLCB4bW0yLCB4bW0zOw0KPiA+Pj4N
Cj4gPj4+IC8qIE5vdGU6IFdvcmthcm91bmQgZm9yIF9tbV9zdHJlYW1fbG9hZF9zaTEyOCgpIG5v
dCB0YWtpbmcgYSBjb25zdA0KPiA+PiBwb2ludGVyIGFzIHBhcmFtZXRlci4gKi8NCj4gPj4+ICNw
cmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaA0KPiA+Pj4gI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBp
Z25vcmVkICItV2Rpc2NhcmRlZC1xdWFsaWZpZXJzIg0KPiA+Pj4gICAgICAgICAgIHhtbTAgPSBf
bW1fc3RyZWFtX2xvYWRfc2kxMjgoUlRFX1BUUl9BREQoc3JjLCAwICoNCj4gPj4gc2l6ZW9mKF9f
bTEyOGkpKSk7DQo+ID4+PiAgICAgICAgICAgeG1tMSA9IF9tbV9zdHJlYW1fbG9hZF9zaTEyOChS
VEVfUFRSX0FERChzcmMsIDEgKg0KPiA+PiBzaXplb2YoX19tMTI4aSkpKTsNCj4gPj4+ICAgICAg
ICAgICB4bW0yID0gX21tX3N0cmVhbV9sb2FkX3NpMTI4KFJURV9QVFJfQUREKHNyYywgMiAqDQo+
ID4+IHNpemVvZihfX20xMjhpKSkpOw0KPiA+Pj4gICAgICAgICAgIHhtbTMgPSBfbW1fc3RyZWFt
X2xvYWRfc2kxMjgoUlRFX1BUUl9BREQoc3JjLCAzICoNCj4gPj4gc2l6ZW9mKF9fbTEyOGkpKSk7
DQo+ID4+PiAjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcA0KPiA+Pj4gICAgICAgICAgIF9tbV9z
dHJlYW1fc2kxMjgoUlRFX1BUUl9BREQoZHN0LCAwICogc2l6ZW9mKF9fbTEyOGkpKSwNCj4gPj4g
eG1tMCk7DQo+ID4+PiAgICAgICAgICAgX21tX3N0cmVhbV9zaTEyOChSVEVfUFRSX0FERChkc3Qs
IDEgKiBzaXplb2YoX19tMTI4aSkpLA0KPiA+PiB4bW0xKTsNCj4gPj4+ICAgICAgICAgICBfbW1f
c3RyZWFtX3NpMTI4KFJURV9QVFJfQUREKGRzdCwgMiAqIHNpemVvZihfX20xMjhpKSksDQo+ID4+
IHhtbTIpOw0KPiA+Pj4gICAgICAgICAgIF9tbV9zdHJlYW1fc2kxMjgoUlRFX1BUUl9BREQoZHN0
LCAzICogc2l6ZW9mKF9fbTEyOGkpKSwNCj4gPj4geG1tMyk7DQo+ID4+PiAgICAgICAgICAgc3Jj
ID0gUlRFX1BUUl9BREQoc3JjLCA0ICogc2l6ZW9mKF9fbTEyOGkpKTsNCj4gPj4+ICAgICAgICAg
ICBkc3QgPSBSVEVfUFRSX0FERChkc3QsIDQgKiBzaXplb2YoX19tMTI4aSkpOw0KPiA+Pj4gICAg
ICAgfQ0KPiA+Pj4NCj4gPj4+ICAgICAgIC8qIENvcHkgcmVtYWluaW5nIGRhdGEuICovDQo+ID4+
PiAgICAgICB3aGlsZSAoc3JjICE9IGVuZCkgew0KPiA+Pj4gICAgICAgICAgIHJlZ2lzdGVyIF9f
bTEyOGkgICAgeG1tOw0KPiA+Pj4NCj4gPj4+IC8qIE5vdGU6IFdvcmthcm91bmQgZm9yIF9tbV9z
dHJlYW1fbG9hZF9zaTEyOCgpIG5vdCB0YWtpbmcgYSBjb25zdA0KPiA+PiBwb2ludGVyIGFzIHBh
cmFtZXRlci4gKi8NCj4gPj4+ICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaA0KPiA+Pj4gI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rpc2NhcmRlZC1xdWFsaWZpZXJzIg0KPiA+
Pj4gICAgICAgICAgIHhtbSA9IF9tbV9zdHJlYW1fbG9hZF9zaTEyOChzcmMpOyAjcHJhZ21hIEdD
QyBkaWFnbm9zdGljDQo+ID4+PiBwb3ANCj4gPj4+ICAgICAgICAgICBfbW1fc3RyZWFtX3NpMTI4
KGRzdCwgeG1tKTsNCj4gPj4+ICAgICAgICAgICBzcmMgPSBSVEVfUFRSX0FERChzcmMsIHNpemVv
ZihfX20xMjhpKSk7DQo+ID4+PiAgICAgICAgICAgZHN0ID0gUlRFX1BUUl9BREQoZHN0LCBzaXpl
b2YoX19tMTI4aSkpOw0KPiA+Pj4gICAgICAgfQ0KPiA+Pj4gfQ0KPiA+Pj4NCj4gPj4+IC8qKg0K
PiA+Pj4gICAgKiBAd2FybmluZw0KPiA+Pj4gICAgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJ
IG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4+PiAgICAqDQo+ID4+PiAgICAq
IENvcHkgZGF0YSBpbiBibG9ja3Mgb2YgNCBieXRlIGZyb20gYWxpZ25lZCBub24tdGVtcG9yYWwg
c291cmNlDQo+ID4+PiAgICAqIHRvIGFsaWduZWQgbm9uLXRlbXBvcmFsIGRlc3RpbmF0aW9uLg0K
PiA+Pj4gICAgKg0KPiA+Pj4gICAgKiBAcGFyYW0gZHN0DQo+ID4+PiAgICAqICAgUG9pbnRlciB0
byB0aGUgbm9uLXRlbXBvcmFsIGRlc3RpbmF0aW9uIG9mIHRoZSBkYXRhLg0KPiA+Pj4gICAgKiAg
IE11c3QgYmUgNCBieXRlIGFsaWduZWQuDQo+ID4+PiAgICAqIEBwYXJhbSBzcmMNCj4gPj4+ICAg
ICogICBQb2ludGVyIHRvIHRoZSBub24tdGVtcG9yYWwgc291cmNlIGRhdGEuDQo+ID4+PiAgICAq
ICAgTXVzdCBiZSA0IGJ5dGUgYWxpZ25lZC4NCj4gPj4+ICAgICogQHBhcmFtIGxlbg0KPiA+Pj4g
ICAgKiAgIE51bWJlciBvZiBieXRlcyB0byBjb3B5Lg0KPiA+Pj4gICAgKiAgIE11c3QgYmUgZGl2
aXNpYmxlIGJ5IDQuDQo+ID4+PiAgICAqLw0KPiA+Pj4gX19ydGVfZXhwZXJpbWVudGFsDQo+ID4+
PiBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZQ0KPiA+Pj4gX19hdHRyaWJ1dGVfXygoX19ub25u
dWxsX18oMSwgMiksIF9fYWNjZXNzX18od3JpdGVfb25seSwgMSwgMyksDQo+ID4+IF9fYWNjZXNz
X18ocmVhZF9vbmx5LCAyLCAzKSkpDQo+ID4+PiB2b2lkIHJ0ZV9tZW1jcHlfbnQ0YSh2b2lkICog
X19ydGVfcmVzdHJpY3QgZHN0LCBjb25zdCB2b2lkICoNCj4gPj4gX19ydGVfcmVzdHJpY3Qgc3Jj
LCBzaXplX3QgbGVuKQ0KPiA+Pj4gew0KPiA+Pj4gICAgICAgaW50MzJfdCAgICAgICAgICAgICBi
dWZbc2l6ZW9mKF9fbTEyOGkpIC8gc2l6ZW9mKGludDMyX3QpXQ0KPiA+PiBfX3J0ZV9hbGlnbmVk
KHNpemVvZihfX20xMjhpKSk7DQo+ID4+PiAgICAgICAvKiogQWRkcmVzcyBvZiBzb3VyY2UgZGF0
YSwgcm91bmRlZCBkb3duIHRvIGFjaGlldmUgYWxpZ25tZW50Lg0KPiA+PiAqLw0KPiA+Pj4gICAg
ICAgY29uc3Qgdm9pZCAqICAgICAgICBzcmNhID0gUlRFX1BUUl9BTElHTl9GTE9PUihzcmMsDQo+
ID4+IHNpemVvZihfX20xMjhpKSk7DQo+ID4+PiAgICAgICAvKiogQWRkcmVzcyBvZiBlbmQgb2Yg
c291cmNlIGRhdGEsIHJvdW5kZWQgZG93biB0byBhY2hpZXZlDQo+ID4+IGFsaWdubWVudC4gKi8N
Cj4gPj4+ICAgICAgIGNvbnN0IHZvaWQgKiBjb25zdCAgc3JjZW5kYSA9DQo+ID4+IFJURV9QVFJf
QUxJR05fRkxPT1IoUlRFX1BUUl9BREQoc3JjLCBsZW4pLCBzaXplb2YoX19tMTI4aSkpOw0KPiA+
Pj4gICAgICAgY29uc3QgaW50ICAgICAgICAgICBvZmZzZXQgPSAgUlRFX1BUUl9ESUZGKHNyYywg
c3JjYSkgLw0KPiA+PiBzaXplb2YoaW50MzJfdCk7DQo+ID4+PiAgICAgICByZWdpc3RlciBfX20x
MjhpICAgIHhtbTA7DQo+ID4+Pg0KPiA+Pj4gICAgICAgUlRFX0FTU0VSVChydGVfaXNfYWxpZ25l
ZChkc3QsIHNpemVvZihpbnQzMl90KSkpOw0KPiA+Pj4gICAgICAgUlRFX0FTU0VSVChydGVfaXNf
YWxpZ25lZChzcmMsIHNpemVvZihpbnQzMl90KSkpOw0KPiA+Pj4gICAgICAgUlRFX0FTU0VSVChy
dGVfaXNfYWxpZ25lZChsZW4sIHNpemVvZihpbnQzMl90KSkpOw0KPiA+Pj4NCj4gPj4+ICAgICAg
IGlmICh1bmxpa2VseShsZW4gPT0gMCkpIHJldHVybjsNCj4gPj4+DQo+ID4+PiAgICAgICAvKiBD
b3B5IGZpcnN0LCBub24tX19tMTI4aSBhbGlnbmVkLCBwYXJ0IG9mIHNvdXJjZSBkYXRhLiAqLw0K
PiA+Pj4gICAgICAgaWYgKG9mZnNldCkgew0KPiA+Pj4gLyogTm90ZTogV29ya2Fyb3VuZCBmb3Ig
X21tX3N0cmVhbV9sb2FkX3NpMTI4KCkgbm90IHRha2luZyBhIGNvbnN0DQo+ID4+IHBvaW50ZXIg
YXMgcGFyYW1ldGVyLiAqLw0KPiA+Pj4gI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoDQo+ID4+
PiAjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGlzY2FyZGVkLXF1YWxpZmllcnMi
DQo+ID4+PiAgICAgICAgICAgeG1tMCA9IF9tbV9zdHJlYW1fbG9hZF9zaTEyOChzcmNhKTsNCj4g
Pj4+ICAgICAgICAgICBfbW1fc3RvcmVfc2kxMjgoKHZvaWQgKilidWYsIHhtbTApOyAjcHJhZ21h
IEdDQyBkaWFnbm9zdGljDQo+ID4+PiBwb3ANCj4gPj4+ICAgICAgICAgICBzd2l0Y2ggKG9mZnNl
dCkgew0KPiA+Pj4gICAgICAgICAgICAgICBjYXNlIDE6DQo+ID4+PiAgICAgICAgICAgICAgICAg
ICBfbW1fc3RyZWFtX3NpMzIoUlRFX1BUUl9BREQoZHN0LCAwICoNCj4gPj4gc2l6ZW9mKGludDMy
X3QpKSwgYnVmWzFdKTsNCj4gPj4+ICAgICAgICAgICAgICAgICAgIGlmICh1bmxpa2VseShsZW4g
PT0gMSAqIHNpemVvZihpbnQzMl90KSkpIHJldHVybjsNCj4gPj4+ICAgICAgICAgICAgICAgICAg
IF9tbV9zdHJlYW1fc2kzMihSVEVfUFRSX0FERChkc3QsIDEgKg0KPiA+PiBzaXplb2YoaW50MzJf
dCkpLCBidWZbMl0pOw0KPiA+Pj4gICAgICAgICAgICAgICAgICAgaWYgKHVubGlrZWx5KGxlbiA9
PSAyICogc2l6ZW9mKGludDMyX3QpKSkgcmV0dXJuOw0KPiA+Pj4gICAgICAgICAgICAgICAgICAg
X21tX3N0cmVhbV9zaTMyKFJURV9QVFJfQUREKGRzdCwgMiAqDQo+ID4+IHNpemVvZihpbnQzMl90
KSksIGJ1ZlszXSk7DQo+ID4+PiAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPj4+ICAgICAg
ICAgICAgICAgY2FzZSAyOg0KPiA+Pj4gICAgICAgICAgICAgICAgICAgX21tX3N0cmVhbV9zaTMy
KFJURV9QVFJfQUREKGRzdCwgMCAqDQo+ID4+IHNpemVvZihpbnQzMl90KSksIGJ1ZlsyXSk7DQo+
ID4+PiAgICAgICAgICAgICAgICAgICBpZiAodW5saWtlbHkobGVuID09IDEgKiBzaXplb2YoaW50
MzJfdCkpKSByZXR1cm47DQo+ID4+PiAgICAgICAgICAgICAgICAgICBfbW1fc3RyZWFtX3NpMzIo
UlRFX1BUUl9BREQoZHN0LCAxICoNCj4gPj4gc2l6ZW9mKGludDMyX3QpKSwgYnVmWzNdKTsNCj4g
Pj4+ICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+Pj4gICAgICAgICAgICAgICBjYXNlIDM6
DQo+ID4+PiAgICAgICAgICAgICAgICAgICBfbW1fc3RyZWFtX3NpMzIoUlRFX1BUUl9BREQoZHN0
LCAwICoNCj4gPj4gc2l6ZW9mKGludDMyX3QpKSwgYnVmWzNdKTsNCj4gPj4+ICAgICAgICAgICAg
ICAgICAgIGJyZWFrOw0KPiA+Pj4gICAgICAgICAgIH0NCj4gPj4+ICAgICAgICAgICBzcmNhID0g
UlRFX1BUUl9BREQoc3JjYSwgKDQgLSBvZmZzZXQpICogc2l6ZW9mKGludDMyX3QpKTsNCj4gPj4+
ICAgICAgICAgICBkc3QgPSBSVEVfUFRSX0FERChkc3QsICg0IC0gb2Zmc2V0KSAqIHNpemVvZihp
bnQzMl90KSk7DQo+ID4+PiAgICAgICB9DQo+ID4+Pg0KPiA+Pj4gICAgICAgLyogQ29weSBtaWRk
bGUsIF9fbTEyOGkgYWxpZ25lZCwgcGFydCBvZiBzb3VyY2UgZGF0YS4gKi8NCj4gPj4+ICAgICAg
IHdoaWxlIChzcmNhICE9IHNyY2VuZGEpIHsNCj4gPj4+IC8qIE5vdGU6IFdvcmthcm91bmQgZm9y
IF9tbV9zdHJlYW1fbG9hZF9zaTEyOCgpIG5vdCB0YWtpbmcgYSBjb25zdA0KPiA+PiBwb2ludGVy
IGFzIHBhcmFtZXRlci4gKi8NCj4gPj4+ICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaA0KPiA+
Pj4gI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rpc2NhcmRlZC1xdWFsaWZpZXJz
Ig0KPiA+Pj4gICAgICAgICAgIHhtbTAgPSBfbW1fc3RyZWFtX2xvYWRfc2kxMjgoc3JjYSk7ICNw
cmFnbWEgR0NDIGRpYWdub3N0aWMNCj4gPj4+IHBvcA0KPiA+Pj4gICAgICAgICAgIF9tbV9zdG9y
ZV9zaTEyOCgodm9pZCAqKWJ1ZiwgeG1tMCk7DQo+ID4+PiAgICAgICAgICAgX21tX3N0cmVhbV9z
aTMyKFJURV9QVFJfQUREKGRzdCwgMCAqIHNpemVvZihpbnQzMl90KSksDQo+ID4+IGJ1ZlswXSk7
DQo+ID4+PiAgICAgICAgICAgX21tX3N0cmVhbV9zaTMyKFJURV9QVFJfQUREKGRzdCwgMSAqIHNp
emVvZihpbnQzMl90KSksDQo+ID4+IGJ1ZlsxXSk7DQo+ID4+PiAgICAgICAgICAgX21tX3N0cmVh
bV9zaTMyKFJURV9QVFJfQUREKGRzdCwgMiAqIHNpemVvZihpbnQzMl90KSksDQo+ID4+IGJ1Zlsy
XSk7DQo+ID4+PiAgICAgICAgICAgX21tX3N0cmVhbV9zaTMyKFJURV9QVFJfQUREKGRzdCwgMyAq
IHNpemVvZihpbnQzMl90KSksDQo+ID4+IGJ1ZlszXSk7DQo+ID4+PiAgICAgICAgICAgc3JjYSA9
IFJURV9QVFJfQUREKHNyY2EsIHNpemVvZihfX20xMjhpKSk7DQo+ID4+PiAgICAgICAgICAgZHN0
ID0gUlRFX1BUUl9BREQoZHN0LCA0ICogc2l6ZW9mKGludDMyX3QpKTsNCj4gPj4+ICAgICAgIH0N
Cj4gPj4+DQo+ID4+PiAgICAgICAvKiBDb3B5IGxhc3QsIG5vbi1fX20xMjhpIGFsaWduZWQsIHBh
cnQgb2Ygc291cmNlIGRhdGEuICovDQo+ID4+PiAgICAgICBpZiAoUlRFX1BUUl9ESUZGKHNyY2Es
IHNyYykgIT0gNCkgew0KPiA+Pj4gLyogTm90ZTogV29ya2Fyb3VuZCBmb3IgX21tX3N0cmVhbV9s
b2FkX3NpMTI4KCkgbm90IHRha2luZyBhIGNvbnN0DQo+ID4+IHBvaW50ZXIgYXMgcGFyYW1ldGVy
LiAqLw0KPiA+Pj4gI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoDQo+ID4+PiAjcHJhZ21hIEdD
QyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGlzY2FyZGVkLXF1YWxpZmllcnMiDQo+ID4+PiAgICAg
ICAgICAgeG1tMCA9IF9tbV9zdHJlYW1fbG9hZF9zaTEyOChzcmNhKTsNCj4gPj4+ICAgICAgICAg
ICBfbW1fc3RvcmVfc2kxMjgoKHZvaWQgKilidWYsIHhtbTApOyAjcHJhZ21hIEdDQyBkaWFnbm9z
dGljDQo+ID4+PiBwb3ANCj4gPj4+ICAgICAgICAgICBzd2l0Y2ggKG9mZnNldCkgew0KPiA+Pj4g
ICAgICAgICAgICAgICBjYXNlIDE6DQo+ID4+PiAgICAgICAgICAgICAgICAgICBfbW1fc3RyZWFt
X3NpMzIoUlRFX1BUUl9BREQoZHN0LCAwICoNCj4gPj4gc2l6ZW9mKGludDMyX3QpKSwgYnVmWzBd
KTsNCj4gPj4+ICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+Pj4gICAgICAgICAgICAgICBj
YXNlIDI6DQo+ID4+PiAgICAgICAgICAgICAgICAgICBfbW1fc3RyZWFtX3NpMzIoUlRFX1BUUl9B
REQoZHN0LCAwICoNCj4gPj4gc2l6ZW9mKGludDMyX3QpKSwgYnVmWzBdKTsNCj4gPj4+ICAgICAg
ICAgICAgICAgICAgIGlmICh1bmxpa2VseShSVEVfUFRSX0RJRkYoc3JjYSwgc3JjKSA9PSAxICoN
Cj4gPj4gc2l6ZW9mKGludDMyX3QpKSkgcmV0dXJuOw0KPiA+Pj4gICAgICAgICAgICAgICAgICAg
X21tX3N0cmVhbV9zaTMyKFJURV9QVFJfQUREKGRzdCwgMSAqDQo+ID4+IHNpemVvZihpbnQzMl90
KSksIGJ1ZlsxXSk7DQo+ID4+PiAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPj4+ICAgICAg
ICAgICAgICAgY2FzZSAzOg0KPiA+Pj4gICAgICAgICAgICAgICAgICAgX21tX3N0cmVhbV9zaTMy
KFJURV9QVFJfQUREKGRzdCwgMCAqDQo+ID4+IHNpemVvZihpbnQzMl90KSksIGJ1ZlswXSk7DQo+
ID4+PiAgICAgICAgICAgICAgICAgICBpZiAodW5saWtlbHkoUlRFX1BUUl9ESUZGKHNyY2EsIHNy
YykgPT0gMSAqDQo+ID4+IHNpemVvZihpbnQzMl90KSkpIHJldHVybjsNCj4gPj4+ICAgICAgICAg
ICAgICAgICAgIF9tbV9zdHJlYW1fc2kzMihSVEVfUFRSX0FERChkc3QsIDEgKg0KPiA+PiBzaXpl
b2YoaW50MzJfdCkpLCBidWZbMV0pOw0KPiA+Pj4gICAgICAgICAgICAgICAgICAgaWYgKHVubGlr
ZWx5KFJURV9QVFJfRElGRihzcmNhLCBzcmMpID09IDIgKg0KPiA+PiBzaXplb2YoaW50MzJfdCkp
KSByZXR1cm47DQo+ID4+PiAgICAgICAgICAgICAgICAgICBfbW1fc3RyZWFtX3NpMzIoUlRFX1BU
Ul9BREQoZHN0LCAyICoNCj4gPj4gc2l6ZW9mKGludDMyX3QpKSwgYnVmWzJdKTsNCj4gPj4+ICAg
ICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+Pj4gICAgICAgICAgIH0NCj4gPj4+ICAgICAgIH0N
Cj4gPj4+IH0NCj4gPj4+DQo+ID4+DQo+ID4NCg0K