From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Alexandre.DERUMIER@groupe-cyllene.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits))
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id 51CDA9A9E8
 for <pve-devel@lists.proxmox.com>; Fri, 17 Nov 2023 16:04:37 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id 374AE35B68
 for <pve-devel@lists.proxmox.com>; Fri, 17 Nov 2023 16:04:07 +0100 (CET)
Received: from mail02.cetsi.fr (mail02.cetsi.fr [91.151.64.22])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by firstgate.proxmox.com (Proxmox) with ESMTPS
 for <pve-devel@lists.proxmox.com>; Fri, 17 Nov 2023 16:04:06 +0100 (CET)
Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28])
 by mail02.cetsi.fr (Postfix) with ESMTP id 5878640502A5
 for <pve-devel@lists.proxmox.com>; Fri, 17 Nov 2023 16:04:01 +0100 (CET)
DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr 5878640502A5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com;
 s=dkim; t=1700233441;
 bh=5B7qClFgYcC4yr8FdRfB9S7F8iFKsVTGXRLvTElEMbY=;
 h=From:To:Subject:Date:References:In-Reply-To:From;
 b=CXrw0KNLHe2exVrgVTSpDUm2m0PI83/BFGe8akPOCm81MQUBj+4mzh2z1wY2dY2Px
 GmXcULWYjp3f5pZzIAJWxH2d/I0DyJYkQ9a1e4oxs1L9MXdQQnTWMVFgMPVvYupZV/
 mNZnz7QtoCMxkaVaSnmiTsk73vM8Dnm77ICST59M=
Received: from CYLNEXC01.cyllene.corp (10.0.250.28) by CYLNEXC01.cyllene.corp
 (10.0.250.28) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Fri, 17 Nov
 2023 16:04:02 +0100
Received: from FRA01-PR2-obe.outbound.protection.outlook.com (10.0.250.254) by
 CYLNEXC01.cyllene.corp (10.0.250.28) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.34 via Frontend Transport; Fri, 17 Nov 2023 16:04:02 +0100
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=aruXS6BKT8hoyNnLtPb7Ng9Umyoz2KgBH7IQviHn6KKKXDmqYHHY5aXmF1lxnBMHaVM90ky9C7gEBXBoG//R8pmQvpNaA2cfAOQkOnAj1RhlIX6INCaPzOyrb3xswzajWtUTW2Iv0xnnZDUeYNr1vehrcZS1v75jdAZ6rATUhUTeQhG64Gvi9bEpE68siQJe31VTbWIlv5o1jrVTeWdukt0SQF4ynyiBiUjvgsnFnk34Pezo+n2OIA3Ix2sANPhdGy3dpPw1ra1Qbx7gKqVNANqHbG0l99ZXVZLi9Sb9bEFj6sJYJeWA6YsY9QpaMS5V2Vb/iEhixfYsohTNSSpiJA==
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=5B7qClFgYcC4yr8FdRfB9S7F8iFKsVTGXRLvTElEMbY=;
 b=SdmgEr9RFJr67d+RLlp/UnNkXe4BbSFQAnKmYilEjDGzqsg3xJzC52u4lNn+KZqRyQ6j6/56jlJY3bUs2+wdEDdVAO/O7HJFsdrbLqCW7vDXLJtaTC/fG5dQNzpWwcTIQls4ACaSt3NmManhXjHnGHXmtEHqLVz+PC+DWAgEBqgC6kD2QusAwcthrkMKVpt3vcSioUKBkn3grZllOVLQ1J/sNIz19txHmRoZ6/5x2hvvRuWrfiN7kNh2mpDQYCZQkKq/+eOA/SYef6oAg9E2J6WX0NidwfPQ0POQXdESzN7ZqmLpgB1so4elH7MNC3Bydc9w65VDGRPgoxYoNtB+HQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=groupe-cyllene.com; dmarc=pass action=none
 header.from=groupe-cyllene.com; dkim=pass header.d=groupe-cyllene.com;
 arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=groupecyllene.onmicrosoft.com; s=selector2-groupecyllene-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=5B7qClFgYcC4yr8FdRfB9S7F8iFKsVTGXRLvTElEMbY=;
 b=gyi3/kdT0TqspXEQC6fwn/UKI9Vjyi4utnLO/+4f9MMqMVnXVA6CWYNojz0oQPogOBwIS4dIsABrzEvdtGlv3IrzhCkJcgqll0i7TbwconunfoH9QaBnNCtEROqKGoi9GIUNPdI59eXMcq9yxnMkfIs3Je/Tn6ZxV6iWXFZZ3Ok=
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17)
 by PR0P264MB2422.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1e1::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.11; Fri, 17 Nov
 2023 15:04:01 +0000
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::ea83:662a:77c9:2b2e]) by MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::ea83:662a:77c9:2b2e%4]) with mapi id 15.20.7025.010; Fri, 17 Nov 2023
 15:04:01 +0000
From: "DERUMIER, Alexandre" <alexandre.derumier@groupe-cyllene.com>
To: "pve-devel@lists.proxmox.com" <pve-devel@lists.proxmox.com>
Thread-Topic: [pve-devel] [PATCH v4 pve-manager 20/33] sdn: ipam: add ipam
 panel
Thread-Index: AQHaGUw7gCWGvYUMk0ePel6QrMuvNbB+m/2A
Date: Fri, 17 Nov 2023 15:04:00 +0000
Message-ID: <378d41123f5a389d7426034b04d435cdb31fda2e.camel@groupe-cyllene.com>
References: <20231117114011.834002-1-s.hanreich@proxmox.com>
 <20231117114011.834002-21-s.hanreich@proxmox.com>
In-Reply-To: <20231117114011.834002-21-s.hanreich@proxmox.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Evolution 3.50.0-1 
authentication-results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=groupe-cyllene.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MR1P264MB2481:EE_|PR0P264MB2422:EE_
x-ms-office365-filtering-correlation-id: 237fe5a7-1f89-4211-a792-08dbe77e6e87
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: TV/qof4RxoUNGS0lIGKx8hmxURn8hu6Ao9O+AaKfP5ZZtggxGgdroCRERIzmEScyKubxiLQbcLE4X69/gPh8xdcJWusMVaxOb0Q9TowRJmcqZbT2nuhYmINAou17tA8BuOIgIm/hYduQVSZFo/jL+ozI5s7X8YODUFb/wrAIsSrZkhT+AfWDkSuqUvVtpJndYH+zUyQYaEFjTmLPqQ428JAZRhgd09jYiRPFD6Qh2VSfA2zkBfoXvmpw7Q4uBsKY5utSt6x6MHRGm5xPZhbPnXfTwnQzth3Y1PmZ6DxbzkMOZvwRR2G/Jeso7LmEf8ek0jDgnYw6AE77ApJYzVZO3kKpw5PccJSMk4TDq5MKU47S39w4yx6ioK53P7YcI7KPC6YkZ2QD4eoTiFCiLaCd18TY8Lg7CatyW6w/PSw339+99n6hszPzQ+WyU7TRxf+a5uOImAdyyMDH2ze8weX1OgBBKHkN76WJNsDsljxd2aEJs6/680770pn2YpEcp3+FZzLuN5KSAfzAiBy5q4f8LSZHIABbtMJdIwhfN9weFk7K68ak7QLAO5sOC8SHIadLF6A4LwmL+wJ01h2MWyR0IApiAxzhdoqccCZ7C+SZhBesqtos9cB4qL7UG6aY1fiToZ8IOQ24V3wAT3570/8EvbLtrJf8S7ixlgqgHyHMupU=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE;
 SFS:(13230031)(366004)(376002)(136003)(396003)(39850400004)(346002)(230922051799003)(230273577357003)(230173577357003)(1800799009)(64100799003)(186009)(451199024)(6916009)(316002)(19627405001)(66556008)(66946007)(66476007)(66446008)(64756008)(76116006)(71200400001)(6486002)(478600001)(91956017)(6506007)(38100700002)(19627235002)(6512007)(2616005)(8676002)(8936002)(5660300002)(86362001)(2906002)(36756003)(122000001)(41300700001)(83380400001)(38070700009)(66574015);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a2tqWmR0RkVoU2RKdGN0eFl5RkZ0WmJjdTBYS2VCNEcyOHNjYno0RmdySDVk?=
 =?utf-8?B?QW1paHVoUnVnSTZZU3RmR0Rnai81U0VndWRidEtCR2tjMVZ1WUpQdHlUaUdp?=
 =?utf-8?B?dko2WkhHdGtnUW1Fci9sOUYyNk4wcFA5UW5hc1pXZSsrVUx3bGxHQ1NMVnNq?=
 =?utf-8?B?dERRTThUNE1jUGRCMm1YczRSUi80UlhLV2piN0xNQkU0MmcwSExtVVNVNUw4?=
 =?utf-8?B?bFBxbnB1RVBpemJvSVIzVmJlNmNNdDJLWVZMU2c1ZTZyTWVpSHpUSkQ4a2s2?=
 =?utf-8?B?aWNRY3ZrdU5LVnRrMVc2ZURYSG94UHdVTUpJeEdXRUNwTDl6SkRyNWZVMmI4?=
 =?utf-8?B?NXJ4NjFVZlFBVTd4TU1uQm95S1dSdWV0eDhuV3VmY2w1aGN5Rk40ZU1najhx?=
 =?utf-8?B?NVczQzRxd2xZNnc4ZCs5VzR2K29BL2o0UnEwNnptUnQvaGlIUENYZmxQa2JD?=
 =?utf-8?B?Y1FVZHhTMmsxVlZNSUNEY05DV1NEcjlxWW5xTjFRT1VUOVR2aUN2N01ZV2py?=
 =?utf-8?B?eDlSMXNWSWlZMEdJdmpiWlBhOStzM2UwVjJNUWZ4dWEyTEJsWmRpWVJlWEJl?=
 =?utf-8?B?amtNOFdGeUxGdG9ic21nSWJ5T1VvQlRHTThvcTVveEFWYmNVMTQwQXFzTk5F?=
 =?utf-8?B?aEp2a0s0MC90dS96NGFXKzBSdUtxMDNOV2lDUnI3OExJKzNOblhEdDlHRzdO?=
 =?utf-8?B?djROaDNSMmdhZ2N3OWIyclR1ekpBZklLS3VNU3NTSmJuYnE5YWhnT28vU2Zn?=
 =?utf-8?B?U1ByTE9Pc251WWdsclI4Sk8zYXNsRUhJK3pMY3V0Z3Y3V09oa3VNN21kU0li?=
 =?utf-8?B?dERJYVNuN2NESlZVbEJKcmpjNVRjWTVpaUYzSkQzd1BWMk4wYW9SaURCUk11?=
 =?utf-8?B?Z2FpRks1U0J2bTN1RjhsRlZoOTNwU2ZFQmplZDlWYWp6K2dTb3ZOcmlJbi8r?=
 =?utf-8?B?L2M5ZzBaclora3paMWR4MmhQSzI0SURlUVBOVU9ONFlxYVd3TFJqU2M1WTZH?=
 =?utf-8?B?NWo5Z0wwSzN0L2svekRNMVdxUGNaV0hBMzA0SXhXbmhUTCs2OTljR2ZyTzRI?=
 =?utf-8?B?THhoOG1TRXJPaHVEMVNzMDduaEpIL3VkTm53OXMwRTdBQVg0VUNqUXFBelp1?=
 =?utf-8?B?dFFSRTM1bEpJZ0pZcEsveWZ0U25vZmNMQnI2bDZEL3hqNm9YVm9saWo5QzhU?=
 =?utf-8?B?TGh4ZjF5MVpnNkhicHkrN1J0Z2ZuQU1MSlUyRHZibnFYVGs2bFJ0SUR0Q1pE?=
 =?utf-8?B?MjFYcGF5SnA5emVNY1VnK1ZLeFo3d29JbmQ0VXZEOFBvRC9Ic3ZGYzBPUmxF?=
 =?utf-8?B?bzdLa2MwL281YjJZVDZFeEdIZE1GVW53TldrajlmNld3eWpYbTNkWXM3Y2J5?=
 =?utf-8?B?QTRZakpvSGdPUHZ6OTZZdTZwN21KSFdwRkFsdEJrTVZKTGtvWVdRTEpUaGNQ?=
 =?utf-8?B?bENGT1FLY2JrQ2hSK0U0QktwY1FQTDQxa2hSMFc1QmJaQTYxN1M2K0U0RUg5?=
 =?utf-8?B?UXZOczVlZUxWbnNJK3JSKzdDUDlmUTlrMGIvNGtYU24vR08xblp3MmtxUUlF?=
 =?utf-8?B?WUc1RzRDT2lRTkhNNzdLVmJNRzB0bHNFNTFqa3FIM2JtbUFLN29UNkpOZlJ5?=
 =?utf-8?B?OGg0QlZkNkxKMEZpQWFUODZWSUhWSHo5ZHZ6eEdNVVJnVXFFenNqK0VOWWo2?=
 =?utf-8?B?UlJCb1hRWmkzSEJWOXZrQmlWN3dwdlA4ME5rRVBVclJyZDNZblBGMkt4a1gz?=
 =?utf-8?B?d29HazJkaytheTZ0MXNURW9iWE9wN0hRUmYvWHhyckdTSlRmd296NWxGdG81?=
 =?utf-8?B?N3VwZDVFL1JJdEIwTjBOQzZESXlEWWp3blI3THhEMkZ1WFRtc1lkaUYvT3NP?=
 =?utf-8?B?dmdzNjRhNml1L2gxUUovTTJzeC82MkYvKzZTSVRxTVJvS3ZCUVpGd3pxN1o4?=
 =?utf-8?B?UTFvK0xJNC9XVzl3RFo2ZWdpcTdBL3NoM3JnNWg2c1BGVW9RR01jY3VWVmNy?=
 =?utf-8?B?MHgrWHRGbEtoOXlYZFkzSEFFVDFnSWpMUFRZemhCWUtyRkdjUzMxekM1WE9v?=
 =?utf-8?B?RWtEM08yNjBmL3JRTU85RDZFTXpHQkZkTUpLREpITUdoWDRpM2RnOFN5YldJ?=
 =?utf-8?B?c0RhRkNoNE1zSzIwdDRxVnVGWUZVZUxvbHZpNUJYQXd0RzNsRFo0ZDVBNnl4?=
 =?utf-8?Q?+4iLdQG4RIPIUwUGDMMK1QKZcRe2N6qD1BS5U1aJX2hm?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <DC89B20D8EC7884D90799667E20E052A@FRAP264.PROD.OUTLOOK.COM>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: 237fe5a7-1f89-4211-a792-08dbe77e6e87
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Nov 2023 15:04:00.9052 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: ee11ccf7-112c-4284-848b-f229745e715b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: hxEUXMvTkzEcEy+UoA3KJ9uOJVAkpe4PC9pSdm8CZ13XMmne62hao8CHOdwcoY9gcWExXAlPvFKpdWxM4okXILs/2CAaBbcM6kA74iV+nE7VgGL9rvMWeieOU6826YNX
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB2422
X-OriginatorOrg: groupe-cyllene.com
X-SPAM-LEVEL: Spam detection results:  0
 ARC_SIGNED              0.001 Message has a ARC signature
 ARC_VALID               0.001 Message has a valid ARC signature
 AWL 0.001 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain DMARC_MISSING             0.1 Missing DMARC policy
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
 T_SCC_BODY_TEXT_LINE    -0.01 -
Subject: Re: [pve-devel] [PATCH v4 pve-manager 20/33] sdn: ipam: add ipam
 panel
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
X-List-Received-Date: Fri, 17 Nov 2023 15:04:37 -0000

SSB3b25kZXIgaWYgdGhpcyBwYW5lbCBjb3VsZCBiZSBpbnRlZ3JhdGVkIGluIHpvbmUgcGFuZWwg
KGFjY2Vzc2libGUNCmZyb20gdGhlIHRyZWUpLg0KDQphcyBJdCdzIG5vdCByZWxhdGVkIHRvIHRo
ZSBzZG4gY29uZmlndXJhdGlvbiBpdHNlbGYuIChhbmQgZG9uJ3QgbmVlZA0Kc2RuIHJlbG9hZCkN
Cg0KSSB0aGluayB5aGlzIGNvdWxkIGFsbG93IHRvIGdpdmUgcGVybWlzc2lvbnMgdG8gdXNlciB0
byBtYW5hZ2UgaXBzIGluDQp0aGUgem9uZSwgd2l0aG91dCBuZWVkIHRvIGFjY2VzcyB0byBkYXRh
Y2VudGVyIHBhbmVsDQoNCg0KLS0tLS0tLS0gTWVzc2FnZSBpbml0aWFsIC0tLS0tLS0tDQpEZTog
U3RlZmFuIEhhbnJlaWNoIDxzLmhhbnJlaWNoQHByb3htb3guY29tPg0KUsOpcG9uZHJlIMOgOiBQ
cm94bW94IFZFIGRldmVsb3BtZW50IGRpc2N1c3Npb24gPHB2ZS0NCmRldmVsQGxpc3RzLnByb3ht
b3guY29tPg0Kw4A6IHB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQ0KT2JqZXQ6IFtwdmUtZGV2
ZWxdIFtQQVRDSCB2NCBwdmUtbWFuYWdlciAyMC8zM10gc2RuOiBpcGFtOiBhZGQgaXBhbQ0KcGFu
ZWwNCkRhdGU6IDE3LzExLzIwMjMgMTI6Mzk6NTgNCg0KU2lnbmVkLW9mZi1ieTogU3RlZmFuIEhh
bnJlaWNoIDxzLmhhbnJlaWNoQHByb3htb3guY29tPg0KLS0tDQrCoHd3dy9jc3MvZXh0Ni1wdmUu
Y3NzwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAyMiArKy0NCsKgd3d3L21hbmFnZXI2L01ha2VmaWxl
wqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAxICsNCsKgd3d3L21hbmFnZXI2L2RjL0NvbmZpZy5qc8Kg
wqDCoMKgIHzCoCAxMiArLQ0KwqB3d3cvbWFuYWdlcjYvc2RuL0lwYW1FZGl0LmpzwqAgfMKgIDc4
ICsrKysrKysrKysNCsKgd3d3L21hbmFnZXI2L3RyZWUvRGhjcFRyZWUuanMgfCAyNjcgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KwqA1IGZpbGVzIGNoYW5nZWQsIDM3MiBpbnNl
cnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KwqBjcmVhdGUgbW9kZSAxMDA2NDQgd3d3L21hbmFn
ZXI2L3Nkbi9JcGFtRWRpdC5qcw0KwqBjcmVhdGUgbW9kZSAxMDA2NDQgd3d3L21hbmFnZXI2L3Ry
ZWUvRGhjcFRyZWUuanMNCg0KZGlmZiAtLWdpdCBhL3d3dy9jc3MvZXh0Ni1wdmUuY3NzIGIvd3d3
L2Nzcy9leHQ2LXB2ZS5jc3MNCmluZGV4IGUxOGIxNzNmNS4uMDkxODU1MzU2IDEwMDY0NA0KLS0t
IGEvd3d3L2Nzcy9leHQ2LXB2ZS5jc3MNCisrKyBiL3d3dy9jc3MvZXh0Ni1wdmUuY3NzDQpAQCAt
NTEwLDI4ICs1MTAsMzggQEAgZGl2LnJpZ2h0LWFsaWduZWQgew0KwqDCoMKgwqAgY29udGVudDog
JyAnOw0KwqB9DQrCoA0KLS5mYS1zZG46YmVmb3JlIHsNCisueC1mYS1zZG4tdHJlZWxpc3Q6YmVm
b3JlIHsNCsKgwqDCoMKgIHdpZHRoOiAxNHB4Ow0KwqDCoMKgwqAgaGVpZ2h0OiAxNHB4Ow0KwqDC
oMKgwqAgcG9zaXRpb246IGFic29sdXRlOw0KwqDCoMKgwqAgbGVmdDogMXB4Ow0KwqDCoMKgwqAg
dG9wOiA0cHg7DQorfQ0KKw0KKy5mYS1zZG46YmVmb3JlIHsNCsKgwqDCoMKgIGJhY2tncm91bmQt
aW1hZ2U6dXJsKC4uL2ltYWdlcy9pY29uLXNkbi5zdmcpOw0KwqDCoMKgwqAgYmFja2dyb3VuZC1z
aXplOiAxNHB4IDE0cHg7DQrCoMKgwqDCoCBjb250ZW50OiAnICc7DQrCoH0NCsKgDQrCoC5mYS1u
ZXR3b3JrLXdpcmVkOmJlZm9yZSB7DQotwqDCoMKgIHdpZHRoOiAxNHB4Ow0KLcKgwqDCoCBoZWln
aHQ6IDE0cHg7DQotwqDCoMKgIHBvc2l0aW9uOiBhYnNvbHV0ZTsNCi3CoMKgwqAgbGVmdDogMXB4
Ow0KLcKgwqDCoCB0b3A6IDRweDsNCsKgwqDCoMKgIGJhY2tncm91bmQtaW1hZ2U6dXJsKC4uL2lt
YWdlcy9pY29uLWZhLW5ldHdvcmstd2lyZWQuc3ZnKTsNCsKgwqDCoMKgIGJhY2tncm91bmQtc2l6
ZTogMTRweCAxNHB4Ow0KwqDCoMKgwqAgY29udGVudDogJyAnOw0KwqB9DQrCoA0KKy54LWZhLXRy
ZWVwYW5lbDpiZWZvcmUgew0KK8KgwqDCoCB3aWR0aDogMTZweDsNCivCoMKgwqAgaGVpZ2h0OiAy
NHB4Ow0KK8KgwqDCoCBkaXNwbGF5OiBibG9jazsNCivCoMKgwqAgYmFja2dyb3VuZC1yZXBlYXQ6
IG5vLXJlcGVhdDsNCivCoMKgwqAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOw0KK30NCisN
CisueC10cmVlLWljb24tbm9uZSB7DQorwqDCoMKgIGRpc3BsYXk6IG5vbmU7DQorfQ0KKw0KwqAu
eC10cmVlbGlzdC1yb3ctb3ZlciA+ICogPiAueC10cmVlbGlzdC1pdGVtLWljb24sDQrCoC54LXRy
ZWVsaXN0LXJvdy1vdmVyID4gKiA+IC54LXRyZWVsaXN0LWl0ZW0tdGV4dHsNCsKgwqDCoMKgIGNv
bG9yOiAjMDAwOw0KZGlmZiAtLWdpdCBhL3d3dy9tYW5hZ2VyNi9NYWtlZmlsZSBiL3d3dy9tYW5h
Z2VyNi9NYWtlZmlsZQ0KaW5kZXggMDkzNDUyY2Q3Li45M2I0ZmYxNTUgMTAwNjQ0DQotLS0gYS93
d3cvbWFuYWdlcjYvTWFrZWZpbGUNCisrKyBiL3d3dy9tYW5hZ2VyNi9NYWtlZmlsZQ0KQEAgLTEw
OCw2ICsxMDgsNyBAQA0KSlNTUkM9wqAJCQkJCQkJXA0KwqAJdHJlZS9SZXNvdXJjZVRyZWUuanMJ
CQkJXA0KwqAJdHJlZS9TbmFwc2hvdFRyZWUuanMJCQkJXA0KwqAJdHJlZS9SZXNvdXJjZU1hcFRy
ZWUuanMJCQkJXA0KKwl0cmVlL0RoY3BUcmVlLmpzCQkJCVwNCsKgCXdpbmRvdy9CYWNrdXAuanMJ
CQkJXA0KwqAJd2luZG93L0JhY2t1cENvbmZpZy5qcwkJCQlcDQrCoAl3aW5kb3cvQnVsa0FjdGlv
bi5qcwkJCQlcDQpkaWZmIC0tZ2l0IGEvd3d3L21hbmFnZXI2L2RjL0NvbmZpZy5qcyBiL3d3dy9t
YW5hZ2VyNi9kYy9Db25maWcuanMNCmluZGV4IDdkMDFkYTVmYi4uN2MyYjdiMTY4IDEwMDY0NA0K
LS0tIGEvd3d3L21hbmFnZXI2L2RjL0NvbmZpZy5qcw0KKysrIGIvd3d3L21hbmFnZXI2L2RjL0Nv
bmZpZy5qcw0KQEAgLTE4NSw3ICsxODUsNyBAQCBFeHQuZGVmaW5lKCdQVkUuZGMuQ29uZmlnJywg
ew0KwqAJCW1lLml0ZW1zLnB1c2goew0KwqAJCcKgwqDCoCB4dHlwZTogJ3B2ZVNETlN0YXR1cycs
DQrCoAkJwqDCoMKgIHRpdGxlOiBnZXR0ZXh0KCdTRE4nKSwNCi0JCcKgwqDCoCBpY29uQ2xzOiAn
ZmEgZmEtc2RuJywNCisJCcKgwqDCoCBpY29uQ2xzOiAnZmEgZmEtc2RuIHgtZmEtc2RuLXRyZWVs
aXN0JywNCsKgCQnCoMKgwqAgaGlkZGVuOiB0cnVlLA0KwqAJCcKgwqDCoCBpdGVtSWQ6ICdzZG4n
LA0KwqAJCcKgwqDCoCBleHBhbmRlZE9uSW5pdDogdHJ1ZSwNCkBAIC0yMDMsNyArMjAzLDcgQEAg
RXh0LmRlZmluZSgnUFZFLmRjLkNvbmZpZycsIHsNCsKgCQnCoMKgwqAgZ3JvdXBzOiBbJ3Nkbidd
LA0KwqAJCcKgwqDCoCB0aXRsZTogJ1ZOZXRzJywNCsKgCQnCoMKgwqAgaGlkZGVuOiB0cnVlLA0K
LQkJwqDCoMKgIGljb25DbHM6ICdmYSBmYS1uZXR3b3JrLXdpcmVkJywNCisJCcKgwqDCoCBpY29u
Q2xzOiAnZmEgZmEtbmV0d29yay13aXJlZCB4LWZhLXNkbi10cmVlbGlzdCcsDQrCoAkJwqDCoMKg
IGl0ZW1JZDogJ3NkbnZuZXQnLA0KwqAJCX0sDQrCoAkJew0KQEAgLTIxMyw2ICsyMTMsMTQgQEAg
RXh0LmRlZmluZSgnUFZFLmRjLkNvbmZpZycsIHsNCsKgCQnCoMKgwqAgaGlkZGVuOiB0cnVlLA0K
wqAJCcKgwqDCoCBpY29uQ2xzOiAnZmEgZmEtZ2VhcicsDQrCoAkJwqDCoMKgIGl0ZW1JZDogJ3Nk
bm9wdGlvbnMnLA0KKwkJfSwNCisJCXsNCisJCcKgwqDCoCB4dHlwZTogJ3B2ZURoY3BUcmVlJywN
CisJCcKgwqDCoCBncm91cHM6IFsnc2RuJ10sDQorCQnCoMKgwqAgdGl0bGU6IGdldHRleHQoJ0lQ
QU0nKSwNCisJCcKgwqDCoCBoaWRkZW46IHRydWUsDQorCQnCoMKgwqAgaWNvbkNsczogJ2ZhIGZh
LW1hcC1zaWducycsDQorCQnCoMKgwqAgaXRlbUlkOiAnc2RubWFwcGluZ3MnLA0KwqAJCX0pOw0K
wqAJwqDCoMKgIH0NCsKgDQpkaWZmIC0tZ2l0IGEvd3d3L21hbmFnZXI2L3Nkbi9JcGFtRWRpdC5q
cw0KYi93d3cvbWFuYWdlcjYvc2RuL0lwYW1FZGl0LmpzDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K
aW5kZXggMDAwMDAwMDAwLi4xOGUyMmM1OTINCi0tLSAvZGV2L251bGwNCisrKyBiL3d3dy9tYW5h
Z2VyNi9zZG4vSXBhbUVkaXQuanMNCkBAIC0wLDAgKzEsNzggQEANCitFeHQuZGVmaW5lKCdQVkUu
c2RuLklwYW1FZGl0SW5wdXRQYW5lbCcsIHsNCivCoMKgwqAgZXh0ZW5kOiAnUHJveG1veC5wYW5l
bC5JbnB1dFBhbmVsJywNCivCoMKgwqAgbWl4aW5zOiBbJ1Byb3htb3guTWl4aW4uQ0JpbmQnXSwN
CisNCivCoMKgwqAgaXNDcmVhdGU6IGZhbHNlLA0KKw0KK8KgwqDCoCBvbkdldFZhbHVlczogZnVu
Y3Rpb24odmFsdWVzKSB7DQorCWxldCBtZSA9IHRoaXM7DQorDQorCWlmICghdmFsdWVzLnZtaWQp
IHsNCisJwqDCoMKgIGRlbGV0ZSB2YWx1ZXMudm1pZDsNCisJfQ0KKw0KKwlyZXR1cm4gdmFsdWVz
Ow0KK8KgwqDCoCB9LA0KKw0KK8KgwqDCoCBpdGVtczogWw0KKwl7DQorCcKgwqDCoCB4dHlwZTog
J3BteERpc3BsYXlFZGl0RmllbGQnLA0KKwnCoMKgwqAgbmFtZTogJ3ZtaWQnLA0KKwnCoMKgwqAg
ZmllbGRMYWJlbDogZ2V0dGV4dCgnVk1JRCcpLA0KKwnCoMKgwqAgYWxsb3dCbGFuazogZmFsc2Us
DQorCcKgwqDCoCBlZGl0YWJsZTogZmFsc2UsDQorCcKgwqDCoCBjYmluZDogew0KKwkJaGlkZGVu
OiAne2lzQ3JlYXRlfScsDQorCcKgwqDCoCB9LA0KKwl9LA0KKwl7DQorCcKgwqDCoCB4dHlwZTog
J3BteERpc3BsYXlFZGl0RmllbGQnLA0KKwnCoMKgwqAgbmFtZTogJ21hYycsDQorCcKgwqDCoCBm
aWVsZExhYmVsOiBnZXR0ZXh0KCdNQUMnKSwNCisJwqDCoMKgIGFsbG93Qmxhbms6IGZhbHNlLA0K
KwnCoMKgwqAgY2JpbmQ6IHsNCisJCWVkaXRhYmxlOiAne2lzQ3JlYXRlfScsDQorCcKgwqDCoCB9
LA0KKwl9LA0KKwl7DQorCcKgwqDCoCB4dHlwZTogJ3Byb3htb3h0ZXh0ZmllbGQnLA0KKwnCoMKg
wqAgbmFtZTogJ2lwJywNCisJwqDCoMKgIGZpZWxkTGFiZWw6IGdldHRleHQoJ0lQJyksDQorCcKg
wqDCoCBhbGxvd0JsYW5rOiBmYWxzZSwNCisJfSwNCivCoMKgwqAgXSwNCit9KTsNCisNCitFeHQu
ZGVmaW5lKCdQVkUuc2RuLklwYW1FZGl0Jywgew0KK8KgwqDCoCBleHRlbmQ6ICdQcm94bW94Lndp
bmRvdy5FZGl0JywNCisNCivCoMKgwqAgc3ViamVjdDogZ2V0dGV4dCgnREhDUCBNYXBwaW5nJyks
DQorwqDCoMKgIHdpZHRoOiAzNTAsDQorDQorwqDCoMKgIGlzQ3JlYXRlOiBmYWxzZSwNCivCoMKg
wqAgbWFwcGluZzoge30sDQorDQorwqDCoMKgIHN1Ym1pdFVybDogZnVuY3Rpb24odXJsLCB2YWx1
ZXMpIHsNCisJcmV0dXJuIGAke3VybH0vJHt2YWx1ZXMuem9uZX0vJHt2YWx1ZXMudm5ldH0vJHt2
YWx1ZXMubWFjfWA7DQorwqDCoMKgIH0sDQorDQorwqDCoMKgIGluaXRDb21wb25lbnQ6IGZ1bmN0
aW9uKCkgew0KKwl2YXIgbWUgPSB0aGlzOw0KKw0KKwltZS5tZXRob2QgPSBtZS5pc0NyZWF0ZSA/
ICdQT1NUJyA6ICdQVVQnOw0KKw0KKwlsZXQgaXBhbmVsID0gRXh0LmNyZWF0ZSgnUFZFLnNkbi5J
cGFtRWRpdElucHV0UGFuZWwnLCB7DQorCcKgwqDCoCBpc0NyZWF0ZTogbWUuaXNDcmVhdGUsDQor
CX0pOw0KKw0KKwlFeHQuYXBwbHkobWUsIHsNCisJwqDCoMKgIGl0ZW1zOiBbDQorCQlpcGFuZWws
DQorCcKgwqDCoCBdLA0KKwl9KTsNCisNCisJbWUuY2FsbFBhcmVudCgpOw0KKw0KKwlpcGFuZWwu
c2V0VmFsdWVzKG1lLm1hcHBpbmcpOw0KK8KgwqDCoCB9LA0KK30pOw0KZGlmZiAtLWdpdCBhL3d3
dy9tYW5hZ2VyNi90cmVlL0RoY3BUcmVlLmpzDQpiL3d3dy9tYW5hZ2VyNi90cmVlL0RoY3BUcmVl
LmpzDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwLi5jYTI3OWMyOWENCi0t
LSAvZGV2L251bGwNCisrKyBiL3d3dy9tYW5hZ2VyNi90cmVlL0RoY3BUcmVlLmpzDQpAQCAtMCww
ICsxLDI2NyBAQA0KK0V4dC5kZWZpbmUoJ1BWRS5zZG4uRGhjcFRyZWUnLCB7DQorwqDCoMKgIGV4
dGVuZDogJ0V4dC50cmVlLlBhbmVsJywNCivCoMKgwqAgeHR5cGU6ICdwdmVEaGNwVHJlZScsDQor
DQorwqDCoMKgIGxheW91dDogJ2ZpdCcsDQorwqDCoMKgIHJvb3RWaXNpYmxlOiBmYWxzZSwNCivC
oMKgwqAgYW5pbWF0ZTogZmFsc2UsDQorDQorwqDCoMKgIHN0b3JlOiB7DQorCXNvcnRlcnM6IFsn
aXAnLCAnbmFtZSddLA0KK8KgwqDCoCB9LA0KKw0KK8KgwqDCoCBjb250cm9sbGVyOiB7DQorCXhj
bGFzczogJ0V4dC5hcHAuVmlld0NvbnRyb2xsZXInLA0KKw0KKwlyZWxvYWQ6IGZ1bmN0aW9uKCkg
ew0KKwnCoMKgwqAgbGV0IG1lID0gdGhpczsNCisNCisJwqDCoMKgIFByb3htb3guVXRpbHMuQVBJ
MlJlcXVlc3Qoew0KKwkJdXJsOiBgL2NsdXN0ZXIvc2RuL2lwYW1gLA0KKwkJbWV0aG9kOiAnR0VU
JywNCisJCXN1Y2Nlc3M6IGZ1bmN0aW9uKHJlc3BvbnNlLCBvcHRzKSB7DQorCQnCoMKgwqAgbGV0
IHJvb3QgPSB7DQorCQkJbmFtZTogJ19fcm9vdCcsDQorCQkJZXhwYW5kZWQ6IHRydWUsDQorCQkJ
Y2hpbGRyZW46IFtdLA0KKwkJwqDCoMKgIH07DQorDQorCQnCoMKgwqAgbGV0IHpvbmVzID0ge307
DQorCQnCoMKgwqAgbGV0IHZuZXRzID0ge307DQorCQnCoMKgwqAgbGV0IHN1Ym5ldHMgPSB7fTsN
CisNCisJCcKgwqDCoCByZXNwb25zZS5yZXN1bHQuZGF0YS5mb3JFYWNoKChlbGVtZW50KSA9PiB7
DQorCQkJZWxlbWVudC5sZWFmID0gdHJ1ZTsNCisNCisJCQlpZiAoIShlbGVtZW50LnpvbmUgaW4g
em9uZXMpKSB7DQorCQkJwqDCoMKgIGxldCB6b25lID0gew0KKwkJCQluYW1lOiBlbGVtZW50Lnpv
bmUsDQorCQkJCXR5cGU6ICd6b25lJywNCisJCQkJaWNvbkNsczogJ2ZhIGZhLXRoJywNCisJCQkJ
ZXhwYW5kZWQ6IHRydWUsDQorCQkJCWNoaWxkcmVuOiBbXSwNCisJCQnCoMKgwqAgfTsNCisNCisJ
CQnCoMKgwqAgem9uZXNbZWxlbWVudC56b25lXSA9IHpvbmU7DQorCQkJwqDCoMKgIHJvb3QuY2hp
bGRyZW4ucHVzaCh6b25lKTsNCisJCQl9DQorDQorCQkJaWYgKCEoZWxlbWVudC52bmV0IGluIHZu
ZXRzKSkgew0KKwkJCcKgwqDCoCBsZXQgdm5ldCA9IHsNCisJCQkJbmFtZTogZWxlbWVudC52bmV0
LA0KKwkJCQl6b25lOiBlbGVtZW50LnpvbmUsDQorCQkJCXR5cGU6ICd2bmV0JywNCisJCQkJaWNv
bkNsczogJ2ZhIGZhLW5ldHdvcmstd2lyZWQgeC1mYS0NCnRyZWVwYW5lbCcsDQorCQkJCWV4cGFu
ZGVkOiB0cnVlLA0KKwkJCQljaGlsZHJlbjogW10sDQorCQkJwqDCoMKgIH07DQorDQorCQkJwqDC
oMKgIHZuZXRzW2VsZW1lbnQudm5ldF0gPSB2bmV0Ow0KKwkJCcKgwqDCoCB6b25lc1tlbGVtZW50
LnpvbmVdLmNoaWxkcmVuLnB1c2godm5ldCk7DQorCQkJfQ0KKw0KKwkJCWlmICghKGVsZW1lbnQu
c3VibmV0IGluIHN1Ym5ldHMpKSB7DQorCQkJwqDCoMKgIGxldCBzdWJuZXQgPSB7DQorCQkJCW5h
bWU6IGVsZW1lbnQuc3VibmV0LA0KKwkJCQl6b25lOiBlbGVtZW50LnpvbmUsDQorCQkJCXZuZXQ6
IGVsZW1lbnQudm5ldCwNCisJCQkJdHlwZTogJ3N1Ym5ldCcsDQorCQkJCWljb25DbHM6ICd4LXRy
ZWUtaWNvbi1ub25lJywNCisJCQkJZXhwYW5kZWQ6IHRydWUsDQorCQkJCWNoaWxkcmVuOiBbXSwN
CisJCQnCoMKgwqAgfTsNCisNCisJCQnCoMKgwqAgc3VibmV0c1tlbGVtZW50LnN1Ym5ldF0gPSBz
dWJuZXQ7DQorCQkJwqDCoMKgIHZuZXRzW2VsZW1lbnQudm5ldF0uY2hpbGRyZW4ucHVzaChzdWJu
ZXQpOw0KKwkJCX0NCisNCisJCQllbGVtZW50LnR5cGUgPSAnbWFwcGluZyc7DQorCQkJZWxlbWVu
dC5pY29uQ2xzID0gJ3gtdHJlZS1pY29uLW5vbmUnOw0KKwkJCXN1Ym5ldHNbZWxlbWVudC5zdWJu
ZXRdLmNoaWxkcmVuLnB1c2goZWxlbWVudCkNCjsNCisJCcKgwqDCoCB9KTsNCisNCisJCcKgwqDC
oCBtZS5nZXRWaWV3KCkuc2V0Um9vdE5vZGUocm9vdCk7DQorCQl9LA0KKwnCoMKgwqAgfSk7DQor
CX0sDQorDQorCWluaXQ6IGZ1bmN0aW9uKHZpZXcpIHsNCisJwqDCoMKgIGxldCBtZSA9IHRoaXM7
DQorCcKgwqDCoCBtZS5yZWxvYWQoKTsNCisJfSwNCisNCisJb25EZWxldGU6IGZ1bmN0aW9uKHRh
YmxlLCBySSwgY0ksIGl0ZW0sIGUsIHsgZGF0YSB9KSB7DQorCcKgwqDCoCBsZXQgbWUgPSB0aGlz
Ow0KKwnCoMKgwqAgbGV0IHZpZXcgPSBtZS5nZXRWaWV3KCk7DQorDQorCcKgwqDCoCBFeHQuTXNn
LnNob3coew0KKwkJdGl0bGU6IGdldHRleHQoJ0NvbmZpcm0nKSwNCisJCWljb246IEV4dC5Nc2cu
V0FSTklORywNCisJCW1lc3NhZ2U6IEV4dC5TdHJpbmcuZm9ybWF0KGdldHRleHQoJ0FyZSB5b3Ug
c3VyZSB5b3UNCndhbnQgdG8gcmVtb3ZlIERIQ1AgbWFwcGluZyB7MH0nKSwgYCR7ZGF0YS5tYWN9
IC8gJHtkYXRhLmlwfWApLA0KKwkJYnV0dG9uczogRXh0Lk1zZy5ZRVNOTywNCisJCWRlZmF1bHRG
b2N1czogJ25vJywNCisJCWNhbGxiYWNrOiBmdW5jdGlvbihidG4pIHsNCisJCcKgwqDCoCBpZiAo
YnRuICE9PSAneWVzJykgew0KKwkJwqDCoMKgwqDCoMKgwqAgcmV0dXJuOw0KKwkJwqDCoMKgIH0N
CisNCisJCcKgwqDCoCBQcm94bW94LlV0aWxzLkFQSTJSZXF1ZXN0KHsNCisJCQl1cmw6DQpgL2Ns
dXN0ZXIvc2RuL2lwYW0vJHtkYXRhLnpvbmV9LyR7ZGF0YS52bmV0fS8ke2RhdGEubWFjfWAsDQor
CQkJbWV0aG9kOiAnREVMRVRFJywNCisJCQl3YWl0TXNnVGFyZ2V0OiB2aWV3LA0KKwkJCWZhaWx1
cmU6IGZ1bmN0aW9uKHJlc3BvbnNlLCBvcHRzKSB7DQorCQkJwqDCoMKgIEV4dC5Nc2cuYWxlcnQo
Z2V0dGV4dCgnRXJyb3InKSwNCnJlc3BvbnNlLmh0bWxTdGF0dXMpOw0KKwkJCX0sDQorCQkJY2Fs
bGJhY2s6IG1lLnJlbG9hZC5iaW5kKG1lKSwNCisJCcKgwqDCoCB9KTsNCisJCX0sDQorCcKgwqDC
oCB9KTsNCisJfSwNCisNCisJZWRpdEFjdGlvbjogZnVuY3Rpb24oX2dyaWQsIF9ySSwgX2NJLCBf
aXRlbSwgX2UsIHJlYykgew0KKwnCoMKgwqAgdGhpcy5lZGl0KHJlYyk7DQorCX0sDQorDQorCWVk
aXREYmxDbGljazogZnVuY3Rpb24oKSB7DQorCcKgwqDCoCBsZXQgbWUgPSB0aGlzOw0KKw0KKwnC
oMKgwqAgbGV0IHZpZXcgPSBtZS5nZXRWaWV3KCk7DQorCcKgwqDCoCBsZXQgc2VsZWN0aW9uID0g
dmlldy5nZXRTZWxlY3Rpb24oKTsNCisNCisJwqDCoMKgIGlmICghc2VsZWN0aW9uIHx8IHNlbGVj
dGlvbi5sZW5ndGggPCAxKSB7DQorCQlyZXR1cm47DQorCcKgwqDCoCB9DQorDQorCcKgwqDCoCBt
ZS5lZGl0KHNlbGVjdGlvblswXSk7DQorCX0sDQorDQorCWVkaXQ6IGZ1bmN0aW9uKHJlYykgew0K
KwnCoMKgwqAgbGV0IG1lID0gdGhpczsNCisNCisJwqDCoMKgIGlmIChyZWMuZGF0YS50eXBlID09
PSAnbWFwcGluZycgJiYgIXJlYy5kYXRhLmdhdGV3YXkpIHsNCisJCW1lLm9wZW5FZGl0V2luZG93
KHJlYy5kYXRhKTsNCisJwqDCoMKgIH0NCisJfSwNCisNCisJb3BlbkVkaXRXaW5kb3c6IGZ1bmN0
aW9uKGRhdGEpIHsNCisJwqDCoMKgIGxldCBtZSA9IHRoaXM7DQorDQorCcKgwqDCoCBFeHQuY3Jl
YXRlKCdQVkUuc2RuLklwYW1FZGl0Jywgew0KKwkJYXV0b1Nob3c6IHRydWUsDQorCQltYXBwaW5n
OiBkYXRhLA0KKwkJdXJsOiBgL2NsdXN0ZXIvc2RuL2lwYW1gLA0KKwkJZXh0cmFSZXF1ZXN0UGFy
YW1zOiB7DQorCQnCoMKgwqAgdm1pZDogZGF0YS52bWlkLA0KKwkJwqDCoMKgIG1hYzogZGF0YS5t
YWMsDQorCQnCoMKgwqAgem9uZTogZGF0YS56b25lLA0KKwkJwqDCoMKgIHZuZXQ6IGRhdGEudm5l
dCwNCisJCX0sDQorCQlsaXN0ZW5lcnM6IHsNCisJCcKgwqDCoCBkZXN0cm95OiAoKSA9PiBtZS5y
ZWxvYWQoKSwNCisJCX0sDQorCcKgwqDCoCB9KTsNCisJfSwNCivCoMKgwqAgfSwNCisNCivCoMKg
wqAgbGlzdGVuZXJzOiB7DQorCWl0ZW1kYmxjbGljazogJ2VkaXREYmxDbGljaycsDQorwqDCoMKg
IH0sDQorDQorwqDCoMKgIHRiYXI6IFsNCisJew0KKwnCoMKgwqAgeHR5cGU6ICdwcm94bW94QnV0
dG9uJywNCisJwqDCoMKgIHRleHQ6IGdldHRleHQoJ1JlbG9hZCcpLA0KKwnCoMKgwqAgaGFuZGxl
cjogJ3JlbG9hZCcsDQorCX0sDQorwqDCoMKgIF0sDQorDQorwqDCoMKgIGNvbHVtbnM6IFsNCisJ
ew0KKwnCoMKgwqAgeHR5cGU6ICd0cmVlY29sdW1uJywNCisJwqDCoMKgIHRleHQ6IGdldHRleHQo
J05hbWUgLyBWTUlEJyksDQorCcKgwqDCoCBkYXRhSW5kZXg6ICduYW1lJywNCisJwqDCoMKgIHdp
ZHRoOiAyMDAsDQorCcKgwqDCoCByZW5kZXJlcjogZnVuY3Rpb24odmFsdWUsIG1ldGEsIHJlY29y
ZCkgew0KKwkJaWYgKHJlY29yZC5nZXQoJ2dhdGV3YXknKSkgew0KKwkJwqDCoMKgIHJldHVybiBn
ZXR0ZXh0KCdHYXRld2F5Jyk7DQorCQl9DQorDQorCQlyZXR1cm4gcmVjb3JkLmdldCgnbmFtZScp
ID8/IHJlY29yZC5nZXQoJ3ZtaWQnKSA/PyAnDQonOw0KKwnCoMKgwqAgfSwNCisJfSwNCisJew0K
KwnCoMKgwqAgdGV4dDogZ2V0dGV4dCgnSVAnKSwNCisJwqDCoMKgIGRhdGFJbmRleDogJ2lwJywN
CisJwqDCoMKgIHdpZHRoOiAyMDAsDQorCX0sDQorCXsNCisJwqDCoMKgIHRleHQ6IGdldHRleHQo
J01BQycpLA0KKwnCoMKgwqAgZGF0YUluZGV4OiAnbWFjJywNCisJwqDCoMKgIHdpZHRoOiAyMDAs
DQorCX0sDQorCXsNCisJwqDCoMKgIHRleHQ6IGdldHRleHQoJ0dhdGV3YXknKSwNCisJwqDCoMKg
IGRhdGFJbmRleDogJ2dhdGV3YXknLA0KKwnCoMKgwqAgd2lkdGg6IDIwMCwNCisJfSwNCisJew0K
KwnCoMKgwqAgaGVhZGVyOiBnZXR0ZXh0KCdBY3Rpb25zJyksDQorCcKgwqDCoCB4dHlwZTogJ2Fj
dGlvbmNvbHVtbicsDQorCcKgwqDCoCBkYXRhSW5kZXg6ICd0ZXh0JywNCisJwqDCoMKgIHdpZHRo
OiAxNTAsDQorCcKgwqDCoCBpdGVtczogWw0KKwkJew0KKwkJwqDCoMKgIGhhbmRsZXI6IGZ1bmN0
aW9uKHRhYmxlLCBySSwgY0ksIGl0ZW0sIGUsIHsgZGF0YQ0KfSkgew0KKwkJCWxldCBtZSA9IHRo
aXM7DQorDQorCQkJRXh0LmNyZWF0ZSgnUFZFLnNkbi5JcGFtRWRpdCcsIHsNCisJCQnCoMKgwqAg
YXV0b1Nob3c6IHRydWUsDQorCQkJwqDCoMKgIG1hcHBpbmc6IHt9LA0KKwkJCcKgwqDCoCB1cmw6
IGAvY2x1c3Rlci9zZG4vaXBhbWAsDQorCQkJwqDCoMKgIGlzQ3JlYXRlOiB0cnVlLA0KKwkJCcKg
wqDCoCBleHRyYVJlcXVlc3RQYXJhbXM6IHsNCisJCQkJdm5ldDogZGF0YS5uYW1lLA0KKwkJCQl6
b25lOiBkYXRhLnpvbmUsDQorCQkJwqDCoMKgIH0sDQorCQkJwqDCoMKgIGxpc3RlbmVyczogew0K
KwkJCQlkZXN0cm95OiAoKSA9PiB7DQorCQkJCcKgwqDCoA0KbWUudXAoJ3B2ZURoY3BUcmVlJyku
Y29udHJvbGxlci5yZWxvYWQoKTsNCisJCQkJfSwNCisJCQnCoMKgwqAgfSwNCisJCQl9KTsNCisJ
CcKgwqDCoCB9LA0KKwkJwqDCoMKgIGdldFRpcDogKHYsIG0sIHJlYykgPT4gZ2V0dGV4dCgnQWRk
JyksDQorCQnCoMKgwqAgZ2V0Q2xhc3M6ICh2LCBtLCB7IGRhdGEgfSkgPT4gew0KKwkJCWlmIChk
YXRhLnR5cGUgPT09ICd2bmV0Jykgew0KKwkJCcKgwqDCoCByZXR1cm4gJ2ZhIGZhLXBsdXMtc3F1
YXJlJzsNCisJCQl9DQorDQorCQkJcmV0dXJuICdwbXgtaGlkZGVuJzsNCisJCcKgwqDCoCB9LA0K
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9LA0KKwkJew0KKwkJwqDCoMKgIGhhbmRs
ZXI6ICdlZGl0QWN0aW9uJywNCisJCcKgwqDCoCBnZXRUaXA6ICh2LCBtLCByZWMpID0+IGdldHRl
eHQoJ0VkaXQnKSwNCisJCcKgwqDCoCBnZXRDbGFzczogKHYsIG0sIHsgZGF0YSB9KSA9PiB7DQor
CQkJaWYgKGRhdGEudHlwZSA9PT0gJ21hcHBpbmcnICYmICFkYXRhLmdhdGV3YXkpDQp7DQorCQkJ
wqDCoMKgIHJldHVybiAnZmEgZmEtcGVuY2lsIGZhLWZ3JzsNCisJCQl9DQorDQorCQkJcmV0dXJu
ICdwbXgtaGlkZGVuJzsNCisJCcKgwqDCoCB9LA0KK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoCB9LA0KKwkJew0KKwkJwqDCoMKgIGhhbmRsZXI6ICdvbkRlbGV0ZScsDQorCQnCoMKgwqAg
Z2V0VGlwOiAodiwgbSwgcmVjKSA9PiBnZXR0ZXh0KCdEZWxldGUnKSwNCisJCcKgwqDCoCBnZXRD
bGFzczogKHYsIG0sIHsgZGF0YSB9KSA9PiB7DQorCQkJaWYgKGRhdGEudHlwZSA9PT0gJ21hcHBp
bmcnICYmICFkYXRhLmdhdGV3YXkpDQp7DQorCQkJwqDCoMKgIHJldHVybiAnZmEgY3JpdGljYWwg
ZmEtdHJhc2gtbyc7DQorCQkJfQ0KKw0KKwkJCXJldHVybiAncG14LWhpZGRlbic7DQorCQnCoMKg
wqAgfSwNCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfSwNCisJwqDCoMKgIF0sDQor
CX0sDQorwqDCoMKgIF0sDQorfSk7DQoNCg==