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) server-digest SHA256)
 (No client certificate requested)
 by lists.proxmox.com (Postfix) with ESMTPS id 9E3E08B944
 for <pve-devel@lists.proxmox.com>; Thu, 25 Aug 2022 17:38:02 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
 by firstgate.proxmox.com (Proxmox) with ESMTP id 91F0427BFB
 for <pve-devel@lists.proxmox.com>; Thu, 25 Aug 2022 17:38:02 +0200 (CEST)
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>; Thu, 25 Aug 2022 17:38:01 +0200 (CEST)
Received: from CYLNEXC01.cyllene.corp (unknown [10.0.250.28])
 by mail02.cetsi.fr (Postfix) with ESMTP id 029E04050BE5
 for <pve-devel@lists.proxmox.com>; Thu, 25 Aug 2022 17:37:59 +0200 (CEST)
DKIM-Filter: OpenDKIM Filter v2.11.0 mail02.cetsi.fr 029E04050BE5
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groupe-cyllene.com;
 s=dkim; t=1661441879;
 bh=PkZhtC28030mOz15NZl4DbZYIY1++yYjxkZH5g19dlM=;
 h=From:To:Subject:Date:References:In-Reply-To:From;
 b=EflhiMPMTfsaT398fFadt2LHX2qLfNhh5WpvLMk+b1tWRjHMrIqP0kObDl1VMGUD8
 BDV1a9/vk9SRYQ/ocDtgGyuNkt0yabbaItgDIaPUUqyueikb9ukoLpXv3h719Evlw/
 +mZVJHGly2OcuVSdSVb/pmhEWuiYhzxI4gxN6NKc=
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.2375.31; Thu, 25 Aug
 2022 17:38:00 +0200
Received: from FRA01-MR2-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.2375.31 via Frontend Transport; Thu, 25 Aug 2022 17:38:00 +0200
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=T3WW7OMsBvmEW4WGz2JXCfSaOEyOuIlAfJJERsjrEm2G4wDvmRBRO6KYQgp4xGyp/RCxj1yIIz1F81xkbNfmeh1fPsG/L3HNAPG9IRIcQStd8NFt2O0bjW9TkeyPVl4qJ7twWOQrP2hVTu/5ML3P8QbFAau94aQKnMjjdrYMMxz9toupdoWWFNQLCOQeeUHtT8CQK4qbgAo3xpCce9711JIH39k90JQE8DelVK5PCUZhXMquOBkZA6OdOfLg/4QZwGeA0EVjsTlfyluAS3+gvK0kMVlj9Pu72bvypo7qs9M15IT8QEBT16NcdhGU/4JB99JisQYps2ZuUB8XYcW7pw==
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=PkZhtC28030mOz15NZl4DbZYIY1++yYjxkZH5g19dlM=;
 b=SGRRZrtiNzkft5fWCMaxerJsd+vMXFcBbm2cvumN/P22oe1OhVXMYJfs5gbKHKzPagm8LKa9GjtOslC+ur4kP/MyzT69GyNj1dmwfYPF08PZ4nNah7Bz0ikqUHOS4xSiln3JjCW0zh+39w4vy+8AQ/r9sM535yoDmvtgGXlEcZdCepHGd8mQsgCGz6v0J0IDvXHPFzVAW6iUJBDvajLFhOb+Cc+V6Zb4uAuX16uMqAAKzIuAJXFkeW73oO3Z/+todQWflC/syVBWrt1PUpkqXMHcFJhBIsvkEHJc/au55nYyZlsn2dkm2x1u1AqnwaUOmi1wVmlw+38teoO5OuDyRw==
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=PkZhtC28030mOz15NZl4DbZYIY1++yYjxkZH5g19dlM=;
 b=xHITR9RUFZKKaXgSBFYkzedpMzJcytETSaWF+0LwADF5Osjn74gL/RYKmyZC2AdlxCNCFNvMyJad+5VaA6EGPqowSfeCnb4bVedN3FUgFqpHSpcW54eVKsr7ck/WOU1pOnMrD9O5mnSxPAjbdSEmjIZMUFkQPModoVP/u5fgoPQ=
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:32::17)
 by PR1P264MB3445.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:180::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5566.15; Thu, 25 Aug
 2022 15:37:59 +0000
Received: from MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::cff:d35d:80f3:8810]) by MR1P264MB2481.FRAP264.PROD.OUTLOOK.COM
 ([fe80::cff:d35d:80f3:8810%8]) with mapi id 15.20.5566.015; Thu, 25 Aug 2022
 15:37:59 +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 manager v2 11/13] ui: add dc/HardwareView: a
 CRUD interface for hardware mapping
Thread-Index: AQHYuGWZdH+mFVVrkE6Q3uiEKKwBDK2/wIOA
Date: Thu, 25 Aug 2022 15:37:59 +0000
Message-ID: <38ddcb04-c9e8-4804-7ea2-c330e3357258@groupe-cyllene.com>
References: <20220825092440.1810328-1-d.csapak@proxmox.com>
 <20220825092440.1810328-30-d.csapak@proxmox.com>
In-Reply-To: <20220825092440.1810328-30-d.csapak@proxmox.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.2.0
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-office365-filtering-correlation-id: cfebc69c-bc41-44b1-c61c-08da86afca26
x-ms-traffictypediagnostic: PR1P264MB3445:EE_
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: +bEYd8JPm1Hw03l+OpowLBQ5dMtu4Rv/xj4o3OlhqXrU36ONjEt8WF4LIEQo5b/XVqqkETPh8P30slVB+vrMfLwmVJBoiaKRonP7nB1oWwEsQal/MUShlyfiXrBeA/knODXaqR5YXsFr06xAZkgkqZpwHtaPv8cNxo2i2ntXrdxclfYzLEgtV/oXSz42KlYAppNICI9wYc3jua1wb1BtABIWdVLjPprheaBnBqfncdlXkvp1dkVUgoTxBR+8HFpG7wgJU1DZp5z19jzQXd01FOLgDNm7W3h0PbwU+JeYQeMtgWLpAIHpblW8EimXzYEoXVRUI8prm9Mx9g7AC5GwxRkmjIlVjA8F0imo/gzFIyRZ1SVbN0kTOIRogAMBjo6wSbfl+w+SxspD3YvCLMrlkHfOGPTf77hpWo8tFCp/iksePPcsjLr/BclFA7m+7GcWwN5b4RkO0NfSH/vtjkZxgyx3qgh8UA9Ns23/213tOck4n1KJyiKUkzFF+XqtUB94lEimr7CfWOmP0+OB4aXBqJAbYb75E4RtWQVbrigGQX6LKA09lxg2XakU9SsMJtGw/r2N4Brp6J+zWGbjJJJta++2KoetscfodqTehwjIEHnWuOSNRAQOECKo2OswmH1zWzJtsyUwnx0EaxqofQxHLmnnDmKdao6O/QhZqHaSmXcUOTD7nH8WNEu6il3DYewYhS3TdIkuN0qnCosJ7Qlc6GrrIGGwqLR9hzyP55IstC2aUJHxUUD2av9kaXEahOuwco+dNPs37rPGNi2o3eUtouK0igRbXxbC1HWlGhEqv/Cnp9FhnphFIfXeOsDSP/CmYgnrqzTFFYYad3hvLBjRXaI7J/CLBBY4FQc3it0L7oM=
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:(13230016)(4636009)(366004)(136003)(396003)(376002)(346002)(39850400004)(19627235002)(5660300002)(8936002)(41300700001)(30864003)(6916009)(36756003)(122000001)(316002)(31686004)(6486002)(478600001)(71200400001)(91956017)(64756008)(66446008)(66476007)(66556008)(66946007)(8676002)(76116006)(2616005)(26005)(66574015)(6512007)(2906002)(6506007)(83380400001)(38070700005)(38100700002)(86362001)(31696002)(186003)(45980500001)(43740500002)(309714004);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ank3WmZma2NpRUVIR3N1dzZVLzdWV1k5SnJPc0tiaDFpWE9JeC9HMVF0M3p6?=
 =?utf-8?B?dDlqT0pkVml3STE3T2l4UGwrcStTWWtLZ2gzTFNTOXBRM0U5MHdabFdFNW0y?=
 =?utf-8?B?L05FdkVHWjFLVkh2SWxnUUxtSWhDbTI5UTh0RHNHZVBiN1ZuVDFlMkQvVzZ2?=
 =?utf-8?B?Qy84akhSK3FXZEkyOHJhUE0ybHRFaDIzcGFuVkRNbzdrTTlQV0tqREUvM0Qv?=
 =?utf-8?B?R1FiblorLzl1UGdwV0p4NTM0V3VRbUUyY2FucGoxTjdOMjdtVGhMTkZTUnJi?=
 =?utf-8?B?VGFPeVQ4S25BSEdwUkRjZGdkQk8vZnZpWHZvQ21QbFhQeU9oQ1RzaFRKdkNL?=
 =?utf-8?B?M0ZOVllPd3dERWlDQU5zTGtyMnhGelBoZlNTWUc5cWUyZkpqaFg0UmJ0U3pw?=
 =?utf-8?B?bXk5NURIVkcwRFE4SVhXV005NVgxOXJXOWlFSlFyRzJ6OGpnMmxhaXRWcnZJ?=
 =?utf-8?B?cmpvWVhLc2gyQVowK1pjZ2ZaMFBmUi9wVnJtSlorMmVYZDkxM2hyMkd3SzU4?=
 =?utf-8?B?NGUvR3NCUE9rZnU0WFE1b2tWR1RORjNyV3VHcUNyOXZWUEJYN1Bac2lNbVZp?=
 =?utf-8?B?WE1qdjU1MlBWd1E4bVVUd01ld2dYNERFdG9wY2thbXA5MldocVFiWFU1anJy?=
 =?utf-8?B?VVFyUG9iL09PYmo4WjZsZG5RSHp3WWNHWTBIMDhBd1RSY0dIWDZqUXVlTHhV?=
 =?utf-8?B?SWdwWUc3NnFSTENwUFpEeTVDQ1ZJWGJnYk5PVDZibkNHRmxZYXNkMW9ZQ3ZS?=
 =?utf-8?B?U05mSmJ1V2VUZVNWVFB5eVpuS0ZKNEJTWEhSNGlEeTJ3YzRoOGYvZUNMZzBI?=
 =?utf-8?B?bm1ESmpzYW5tTG9qY2FUZUEwMXp4U3JjbW4vVjhnOEhqK2IvTHB3RlpjSmR0?=
 =?utf-8?B?RVRhbCtZYSszQXVTd01ncDdxS3c0WWh5UGJiUUwxZDhyTEoxaGwyN25QNkY5?=
 =?utf-8?B?Zm42S0MwblpvM0d4cVhlM3ZkOXBQSVFubGwrZnFrZzRNOUFFZVY2em5ORW1v?=
 =?utf-8?B?S3I0b3h1STUrYlp3SEVqQ2MyTk1SSFJObVVnMXYyNnVSOXBCU2lGYUdzRVVn?=
 =?utf-8?B?VUdCR0ttZUg4ZG1XRm13ZXVvSXpBV0ZOQVdXRzZycnZ0TXhCekVmTCtqWnZx?=
 =?utf-8?B?WjdvV2Z4eFY2YlluR2ppMU1aK0NrYnpTV21OMm9iZlNzaWhZbWJuUmhQdW1M?=
 =?utf-8?B?eWlIVnI1Y1FzTXFETmRBNDZsSjI5dCtjUXg5ZmFZSEJHVDcvYWNnZVFjQW5q?=
 =?utf-8?B?Y2ZmRjk0TzN3a1lYSGlDK1lTVU81akk3SUhxY1NjYU56OVhuakdYZGFKeFg5?=
 =?utf-8?B?N1AwK0Z2THlva1U0VHNubGdoRS9EdHVaK2xicGEzS3BJQ0tyV3ZielFlK0Z3?=
 =?utf-8?B?VWhrZWVKUjZvN21yK2FJQmM2ZVJJUk9mR2ZiOGhFbEJPSDlJQjY3WXJENHVO?=
 =?utf-8?B?bC9LN0lLS1BUZlNEOWFBQmJYaFpqekNxbDBlSmJHUmhrd0lsaE9uVkhJR3Bv?=
 =?utf-8?B?d3dZcFkrbWlxV2NLL1lNZDlWenJBRkpSODNPUkptU1llZXJDN1ZHVEdrQjQ2?=
 =?utf-8?B?SHNwZGJpRm5tMFVFV28xalh3NVdXTHQ5aEE3UUl6ZGVyMEVxbzU4U1JaT3hH?=
 =?utf-8?B?VUZtbGZpTENrSDAxVEo4am9LdE9pREpZT0xLVmtzK2t4WUsralRwR1dENlQx?=
 =?utf-8?B?bjYxU1JEZVBpRTdOWlU2aWtmR0xKRFdvV1pLeDVUT0ZWRERYK05HblVTTi85?=
 =?utf-8?B?V003QUNoRUphZ240TEFOMlZvOUNZUU94ZGYxR2thdW5hV1orREI2eVpkWnUr?=
 =?utf-8?B?c1dJY3UyY0tHQU1NN2xmV1JDd2NIRGk0N2NaS24yTTlCTk94dnBiRlJrWklk?=
 =?utf-8?B?bkZ6dXJ0dUZ3TndkcWlYUXV1VjJmUjNBcXByaitDYmV6RlBSUy9ZcDJNOXJT?=
 =?utf-8?B?bWZsTllNVzNjdXVyd2FNSnc3K05MK1A3bnhrZGx4SnZHMk9ENzhUOEw3TEpG?=
 =?utf-8?B?dlRMUG1WRS9aVTBCZzZocndWamQ1QUJINmRXOVR1WVA0dUV2bHFqOUYyWHli?=
 =?utf-8?B?S3R4L3RRNTFzbTJkMUZjb01hdTZVa255QWxaWWhWNUNCSFdKWmVSWVg5bHBn?=
 =?utf-8?B?VUVqT2N1eVkyT0NqaExUY1V1bUZPM0QxRTVOTkZ1bHZ5ME5EQ1E4VGd1b2xv?=
 =?utf-8?Q?jflZ3njrMFaj4ZJtaumIB9FpaihV4hbXH4wBkBlhb32Q?=
Content-Type: text/plain; charset="utf-8"
Content-ID: <651224402E93AC4B8D096175032D30B1@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: cfebc69c-bc41-44b1-c61c-08da86afca26
X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2022 15:37:59.4815 (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: bP/d9rJMj+A7BfrjoNV/wUgiY1JoKdZoVY/rrYSThBuEtXJzflPIUr9bR+QguO6ZNR4BzALJasUBBN9ZslA+x7SyiqmqDe8Jrkvi5WK3RDi3JECysvajSewIBRy2LY+T
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR1P264MB3445
X-OriginatorOrg: groupe-cyllene.com
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.009 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 NICE_REPLY_A           -0.001 Looks like a legit reply (A)
 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 -
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [groupe-cyllene.com, entry.name, groupecyllene.onmicrosoft.com]
Subject: Re: [pve-devel] [PATCH manager v2 11/13] ui: add dc/HardwareView: a
 CRUD interface for hardware mapping
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: Thu, 25 Aug 2022 15:38:02 -0000

SSBkb24ndCBrbm93biBpZiBpdCdzIGEgYnVnIGluIHRoZSBndWksIG9yIHRoZSBhcGkuDQoNCkJ1
dCwgaWYgeW91IHVwZGF0ZSBhbiBleGlzdGluZyBtYXBwaW5nLHdpdGggY3VycmVudGx5LGEgc2lt
cGxlIGZ1bmN0aW9uIA0KcGNpIHdpdGggbWRldj0xLCBhbmQgeW91IGNoYW5nZSBpdCB0byBhIHBj
aSBtdWx0aWZ1bmN0aW9uIHdpdGggbWRldj0wLA0KDQp0aGUgbWRldiB2YWx1ZSBpcyBub3QgdXBk
YXRlZC4NCg0KKFRoaXMgb2NjdXIgaW4gdGhlIG90aGVyIGRpcmVjdGlvbiB0b28pDQoNCg0Kb3Jp
Z2luYWwgc2luZ2x5IGZ1bmN0aW9uIHdpdGggbWRldj0xDQotLS0tLS0tLQ0Kew0KICAgInBjaSI6
IHsNCiAgICAgInNoYXJlZG52aWRpYSI6IHsNCiAgICAgICAicHZlMiI6IHsNCiAgICAgICAgICJw
YXRoIjogIjAwMDA6MDI6MDAuMCIsDQogICAgICAgICAic3Vic3lzdGVtLXZlbmRvciI6ICIweDEw
ZGUiLA0KICAgICAgICAgInN1YnN5c3RlbS1kZXZpY2UiOiAiMHgxMzFiIiwNCiAgICAgICAgICJk
ZXZpY2UiOiAiMHgxYzMxIiwNCiAgICAgICAgICJtZGV2IjogIjEiLA0KICAgICAgICAgImlvbW11
Z3JvdXAiOiAiNDciLA0KICAgICAgICAgInZlbmRvciI6ICIweDEwZGUiDQogICAgICAgfSwNCiAg
ICAgfQ0KICAgfSwNCiAgICJkaWdlc3QiOiAiN2U1NDQxNzJlYjU0ODdlNzUzNjcyZjY1MTFiYWU5
NjAyMzM4ZGU2ZiINCn0NCg0KDQphZnRlciB1cGRhdGUgdG8gbXVsdGlwbGUgZnVuY3Rpb24sIG1k
ZXYgc2hvdWxkIGJlIDAgaW5zdGVhZCAxLg0KDQotLS0tLS0tLQ0Kew0KICAgInBjaSI6IHsNCiAg
ICAgInNoYXJlZG52aWRpYSI6IHsNCiAgICAgICAicHZlMiI6IHsNCiAgICAgICAgICJwYXRoIjog
IjAwMDA6MDI6MDAiLA0KICAgICAgICAgInN1YnN5c3RlbS12ZW5kb3IiOiAiMHgxMGRlIiwNCiAg
ICAgICAgICJzdWJzeXN0ZW0tZGV2aWNlIjogIjB4MTMxYiIsDQogICAgICAgICAiZGV2aWNlIjog
IjB4MWMzMSIsDQogICAgICAgICAibWRldiI6ICIxIiwNCiAgICAgICAgICJpb21tdWdyb3VwIjog
IjQ3IiwNCiAgICAgICAgICJ2ZW5kb3IiOiAiMHgxMGRlIg0KICAgICAgIH0sDQogICAgIH0NCiAg
IH0sDQogICAiZGlnZXN0IjogIjdlNTQ0MTcyZWI1NDg3ZTc1MzY3MmY2NTExYmFlOTYwMjMzOGRl
NmYiDQp9DQoNCkxlIDI1LzA4LzIyIMOgIDExOjI0LCBEb21pbmlrIENzYXBhayBhIMOpY3JpdMKg
Og0KPiBpdCdzIHBvc3NpYmxlIHRvIGFkZC9lZGl0L3JlbW92ZSBtYXBwaW5ncyBoZXJlLCB3aXRo
IGEgY2x1c3Rlcg0KPiB3aWRlIHZpZXcgb24gdGhlIG1hcHBpbmdzIGFuZCB2YWxpZGl0eS4NCj4g
DQo+IHRvIGRvIHRoYXQsIHdlIGhhdmUgdG8gdG8gYW4gYXBpIGNhbGwgZm9yIGVhY2ggbm9kZSwg
c2luY2UNCj4gd2UgZG9uJ3QgaGF2ZSB0aGUgcGNpIHN0YXR1cyBzeW5jZWQgYWNyb3NzIHRoZW0u
DQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBEb21pbmlrIENzYXBhayA8ZC5jc2FwYWtAcHJveG1veC5j
b20+DQo+IC0tLQ0KPiAgIHd3dy9tYW5hZ2VyNi9NYWtlZmlsZSAgICAgICAgICAgfCAgIDEgKw0K
PiAgIHd3dy9tYW5hZ2VyNi9kYy9Db25maWcuanMgICAgICAgfCAgMTggKy0NCj4gICB3d3cvbWFu
YWdlcjYvZGMvSGFyZHdhcmVWaWV3LmpzIHwgMzI0ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrDQo+ICAgMyBmaWxlcyBjaGFuZ2VkLCAzNDEgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv
bnMoLSkNCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgd3d3L21hbmFnZXI2L2RjL0hhcmR3YXJlVmll
dy5qcw0KPiANCj4gZGlmZiAtLWdpdCBhL3d3dy9tYW5hZ2VyNi9NYWtlZmlsZSBiL3d3dy9tYW5h
Z2VyNi9NYWtlZmlsZQ0KPiBpbmRleCA1NTA3Mjc2ZS4uODY5Mzk1ZTEgMTAwNjQ0DQo+IC0tLSBh
L3d3dy9tYW5hZ2VyNi9NYWtlZmlsZQ0KPiArKysgYi93d3cvbWFuYWdlcjYvTWFrZWZpbGUNCj4g
QEAgLTE2Myw2ICsxNjMsNyBAQCBKU1NSQz0gCQkJCQkJCVwNCj4gICAJZGMvVXNlckVkaXQuanMJ
CQkJCVwNCj4gICAJZGMvVXNlclZpZXcuanMJCQkJCVwNCj4gICAJZGMvTWV0cmljU2VydmVyVmll
dy5qcwkJCQlcDQo+ICsJZGMvSGFyZHdhcmVWaWV3LmpzCQkJCVwNCj4gICAJbHhjL0NtZE1lbnUu
anMJCQkJCVwNCj4gICAJbHhjL0NvbmZpZy5qcwkJCQkJXA0KPiAgIAlseGMvQ3JlYXRlV2l6YXJk
LmpzCQkJCVwNCj4gZGlmZiAtLWdpdCBhL3d3dy9tYW5hZ2VyNi9kYy9Db25maWcuanMgYi93d3cv
bWFuYWdlcjYvZGMvQ29uZmlnLmpzDQo+IGluZGV4IDEzZGVkMTJlLi4zNzE0ODU4OCAxMDA2NDQN
Cj4gLS0tIGEvd3d3L21hbmFnZXI2L2RjL0NvbmZpZy5qcw0KPiArKysgYi93d3cvbWFuYWdlcjYv
ZGMvQ29uZmlnLmpzDQo+IEBAIC0yNTUsOCArMjU1LDIyIEBAIEV4dC5kZWZpbmUoJ1BWRS5kYy5D
b25maWcnLCB7DQo+ICAgCQlpY29uQ2xzOiAnZmEgZmEtYmFyLWNoYXJ0JywNCj4gICAJCWl0ZW1J
ZDogJ21ldHJpY3NlcnZlcnMnLA0KPiAgIAkJb25saW5lSGVscDogJ2V4dGVybmFsX21ldHJpY19z
ZXJ2ZXInLA0KPiAtCSAgICB9LA0KPiAtCSAgICB7DQo+ICsJICAgIH0pOw0KPiArCX0NCj4gKw0K
PiArCWlmIChjYXBzLmhhcmR3YXJlWydIYXJkd2FyZS5Vc2UnXSB8fA0KPiArCSAgICBjYXBzLmhh
cmR3YXJlWydIYXJkd2FyZS5BdWRpdCddIHx8DQo+ICsJICAgIGNhcHMuaGFyZHdhcmVbJ0hhcmR3
YXJlLkNvbmZpZ3VyZSddKSB7DQo+ICsJICAgIG1lLml0ZW1zLnB1c2goew0KPiArCQl4dHlwZTog
J3B2ZURjSGFyZHdhcmVWaWV3JywNCj4gKwkJdGl0bGU6IGdldHRleHQoJ0hhcmR3YXJlJyksDQo+
ICsJCWljb25DbHM6ICdmYSBmYS1kZXNrdG9wJywNCj4gKwkJaXRlbUlkOiAnaGFyZHdhcmUnLA0K
PiArCSAgICB9KTsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoY2Fwcy5kY1snU3lzLkF1ZGl0J10pIHsN
Cj4gKwkgICAgbWUuaXRlbXMucHVzaCh7DQo+ICAgCQl4dHlwZTogJ3B2ZURjU3VwcG9ydCcsDQo+
ICAgCQl0aXRsZTogZ2V0dGV4dCgnU3VwcG9ydCcpLA0KPiAgIAkJaXRlbUlkOiAnc3VwcG9ydCcs
DQo+IGRpZmYgLS1naXQgYS93d3cvbWFuYWdlcjYvZGMvSGFyZHdhcmVWaWV3LmpzIGIvd3d3L21h
bmFnZXI2L2RjL0hhcmR3YXJlVmlldy5qcw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl
eCAwMDAwMDAwMC4uNzIwMWQ3MGYNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi93d3cvbWFuYWdl
cjYvZGMvSGFyZHdhcmVWaWV3LmpzDQo+IEBAIC0wLDAgKzEsMzI0IEBADQo+ICtFeHQuZGVmaW5l
KCdwdmUtaGFyZHdhcmUtdHJlZScsIHsNCj4gKyAgICBleHRlbmQ6ICdFeHQuZGF0YS5Nb2RlbCcs
DQo+ICsgICAgZmllbGRzOiBbJ3R5cGUnLCAndGV4dCcsICdwYXRoJywgJ250eXBlJywNCj4gKwl7
DQo+ICsJICAgIG5hbWU6ICd2ZW5kb3InLA0KPiArCSAgICB0eXBlOiAnc3RyaW5nJywNCj4gKwl9
LA0KPiArCXsNCj4gKwkgICAgbmFtZTogJ2RldmljZScsDQo+ICsJICAgIHR5cGU6ICdzdHJpbmcn
LA0KPiArCX0sDQo+ICsJew0KPiArCSAgICBuYW1lOiAnaWNvbkNscycsDQo+ICsJICAgIGNhbGN1
bGF0ZTogZnVuY3Rpb24oZGF0YSkgew0KPiArCQlpZiAoZGF0YS5udHlwZSA9PT0gJ2VudHJ5Jykg
ew0KPiArCQkgICAgaWYgKGRhdGEudHlwZSA9PT0gJ3VzYicpIHsNCj4gKwkJCXJldHVybiAnZmEg
ZmEtZncgZmEtdXNiJzsNCj4gKwkJICAgIH0NCj4gKwkJICAgIGlmIChkYXRhLnR5cGUgPT09ICdw
Y2knKSB7DQo+ICsJCQlyZXR1cm4gJ3B2ZS1pdHlwZS1pY29uLXBjaSc7DQo+ICsJCSAgICB9DQo+
ICsJCSAgICByZXR1cm4gJ2ZhIGZhLWZ3IGZhLWZvbGRlci1vJzsNCj4gKwkJfQ0KPiArDQo+ICsJ
CXJldHVybiAnZmEgZmEtZncgZmEtYnVpbGRpbmcnOw0KPiArCSAgICB9LA0KPiArCX0sDQo+ICsJ
ew0KPiArCSAgICBuYW1lOiAnbGVhZicsDQo+ICsJICAgIGNhbGN1bGF0ZTogZnVuY3Rpb24oZGF0
YSkgew0KPiArCQlyZXR1cm4gZGF0YS5udHlwZSAmJiBkYXRhLm50eXBlICE9PSAnZW50cnknOw0K
PiArCSAgICB9LA0KPiArCX0sDQo+ICsgICAgXSwNCj4gKw0KPiArfSk7DQo+ICsNCj4gK0V4dC5k
ZWZpbmUoJ1BWRS5kYy5IYXJkd2FyZVZpZXcnLCB7DQo+ICsgICAgZXh0ZW5kOiAnRXh0LnRyZWUu
UGFuZWwnLA0KPiArICAgIGFsaWFzOiAnd2lkZ2V0LnB2ZURjSGFyZHdhcmVWaWV3JywNCj4gKyAg
ICBtaXhpbnM6IFsnUHJveG1veC5NaXhpbi5DQmluZCddLA0KPiArDQo+ICsgICAgcm9vdFZpc2li
bGU6IGZhbHNlLA0KPiArDQo+ICsgICAgY2JpbmREYXRhOiBmdW5jdGlvbihpbml0aWFsQ29uZmln
KSB7DQo+ICsJbGV0IG1lID0gdGhpczsNCj4gKwljb25zdCBjYXBzID0gRXh0LnN0YXRlLk1hbmFn
ZXIuZ2V0KCdHdWlDYXAnKTsNCj4gKwltZS5jYW5Db25maWd1cmUgPSAhIWNhcHMubm9kZXNbJ1N5
cy5Nb2RpZnknXSAmJiAhIWNhcHMuaGFyZHdhcmVbJ0hhcmR3YXJlLkNvbmZpZ3VyZSddOw0KPiAr
DQo+ICsJcmV0dXJuIHt9Ow0KPiArICAgIH0sDQo+ICsNCj4gKyAgICBjb250cm9sbGVyOiB7DQo+
ICsJeGNsYXNzOiAnRXh0LmFwcC5WaWV3Q29udHJvbGxlcicsDQo+ICsNCj4gKwlhZGRQQ0k6IGZ1
bmN0aW9uKCkgew0KPiArCSAgICBsZXQgbWUgPSB0aGlzOw0KPiArCSAgICBsZXQgbm9kZW5hbWUg
PSBQcm94bW94Lk5vZGVOYW1lOw0KPiArCSAgICBFeHQuY3JlYXRlKCdQVkUubm9kZS5QQ0lFZGl0
V2luZG93Jywgew0KPiArCQl1cmw6IGAvbm9kZXMvJHtub2RlbmFtZX0vaGFyZHdhcmUvbWFwcGlu
Zy9wY2lgLA0KPiArCQlhdXRvU2hvdzogdHJ1ZSwNCj4gKwkJbGlzdGVuZXJzOiB7DQo+ICsJCSAg
ICBkZXN0cm95OiAoKSA9PiBtZS5sb2FkKCksDQo+ICsJCX0sDQo+ICsJICAgIH0pOw0KPiArCX0s
DQo+ICsNCj4gKwlhZGRVU0I6IGZ1bmN0aW9uKCkgew0KPiArCSAgICBsZXQgbWUgPSB0aGlzOw0K
PiArCSAgICBsZXQgbm9kZW5hbWUgPSBQcm94bW94Lk5vZGVOYW1lOw0KPiArCSAgICBFeHQuY3Jl
YXRlKCdQVkUubm9kZS5VU0JFZGl0V2luZG93Jywgew0KPiArCQl1cmw6IGAvbm9kZXMvJHtub2Rl
bmFtZX0vaGFyZHdhcmUvbWFwcGluZy91c2JgLA0KPiArCQlhdXRvU2hvdzogdHJ1ZSwNCj4gKwkJ
bGlzdGVuZXJzOiB7DQo+ICsJCSAgICBkZXN0cm95OiAoKSA9PiBtZS5sb2FkKCksDQo+ICsJCX0s
DQo+ICsJICAgIH0pOw0KPiArCX0sDQo+ICsNCj4gKwlhZGRIb3N0OiBmdW5jdGlvbigpIHsNCj4g
KwkgICAgbGV0IG1lID0gdGhpczsNCj4gKwkgICAgbWUuZWRpdChmYWxzZSk7DQo+ICsJfSwNCj4g
Kw0KPiArCWVkaXQ6IGZ1bmN0aW9uKGluY2x1ZGVOb2RlbmFtZSA9IHRydWUpIHsNCj4gKwkgICAg
bGV0IG1lID0gdGhpczsNCj4gKwkgICAgbGV0IHZpZXcgPSBtZS5nZXRWaWV3KCk7DQo+ICsJICAg
IGxldCBzZWxlY3Rpb24gPSB2aWV3LmdldFNlbGVjdGlvbigpOw0KPiArCSAgICBpZiAoIXNlbGVj
dGlvbiB8fCAhc2VsZWN0aW9uLmxlbmd0aCkgew0KPiArCQlyZXR1cm47DQo+ICsJICAgIH0NCj4g
KwkgICAgbGV0IHJlYyA9IHNlbGVjdGlvblswXTsNCj4gKwkgICAgaWYgKCF2aWV3LmNhbkNvbmZp
Z3VyZSkgew0KPiArCQlyZXR1cm47DQo+ICsJICAgIH0NCj4gKw0KPiArCSAgICBsZXQgdHlwZSA9
ICdQVkUubm9kZS4nICsgKHJlYy5kYXRhLnR5cGUgPT09ICdwY2knID8gJ1BDSUVkaXRXaW5kb3cn
IDogJ1VTQkVkaXRXaW5kb3cnKTsNCj4gKw0KPiArCSAgICBFeHQuY3JlYXRlKHR5cGUsIHsNCj4g
KwkJdXJsOiBgL25vZGVzLyR7cmVjLmRhdGEubm9kZX0vaGFyZHdhcmUvbWFwcGluZy8ke3JlYy5k
YXRhLnR5cGV9LyR7cmVjLmRhdGEuZW50cnl9YCwNCj4gKwkJYXV0b1Nob3c6IHRydWUsDQo+ICsJ
CWF1dG9Mb2FkOiByZWMuZGF0YS5udHlwZSAhPT0gJ2VudHJ5JywNCj4gKwkJbm9kZW5hbWU6IHJl
Yy5kYXRhLm50eXBlICE9PSAnZW50cnknICYmIGluY2x1ZGVOb2RlbmFtZSA/IHJlYy5kYXRhLm5v
ZGUgOiB1bmRlZmluZWQsDQo+ICsJCW5hbWU6IHJlYy5kYXRhLmVudHJ5ID8/IHJlYy5kYXRhLnRl
eHQsDQo+ICsJCWxpc3RlbmVyczogew0KPiArCQkgICAgZGVzdHJveTogKCkgPT4gbWUubG9hZCgp
LA0KPiArCQl9LA0KPiArCSAgICB9KTsNCj4gKwl9LA0KPiArDQo+ICsJbG9hZDogZnVuY3Rpb24o
KSB7DQo+ICsJICAgIGxldCBtZSA9IHRoaXM7DQo+ICsJICAgIGxldCB2aWV3ID0gbWUuZ2V0Vmll
dygpOw0KPiArCSAgICBQcm94bW94LlV0aWxzLkFQSTJSZXF1ZXN0KHsNCj4gKwkJdXJsOiAnL2Ns
dXN0ZXIvaGFyZHdhcmUvbWFwcGluZycsDQo+ICsJCW1ldGhvZDogJ0dFVCcsDQo+ICsJCWZhaWx1
cmU6IHJlc3BvbnNlID0+IEV4dC5Nc2cuYWxlcnQoZ2V0dGV4dCgnRXJyb3InKSwgcmVzcG9uc2Uu
aHRtbFN0YXR1cyksDQo+ICsJCXN1Y2Nlc3M6IGZ1bmN0aW9uKHsgcmVzdWx0OiB7IGRhdGEgfSB9
KSB7DQo+ICsJCSAgICB2aWV3LnNldFJvb3ROb2RlKHsNCj4gKwkJCWNoaWxkcmVuOiBkYXRhLA0K
PiArCQkgICAgfSk7DQo+ICsJCSAgICBsZXQgcm9vdCA9IHZpZXcuZ2V0Um9vdE5vZGUoKTsNCj4g
KwkJICAgIHJvb3QuZXhwYW5kKCk7DQo+ICsJCSAgICByb290LmNoaWxkTm9kZXMuZm9yRWFjaChu
b2RlID0+IG5vZGUuZXhwYW5kKCkpOw0KPiArCQkgICAgbWUubG9hZFJlbWFpbmlnTm9kZXMoKTsN
Cj4gKwkJfSwNCj4gKwkgICAgfSk7DQo+ICsJfSwNCj4gKw0KPiArCWxvYWRSZW1haW5pZ05vZGVz
OiBmdW5jdGlvbigpIHsNCj4gKwkgICAgbGV0IG1lID0gdGhpczsNCj4gKwkgICAgbGV0IHZpZXcg
PSBtZS5nZXRWaWV3KCk7DQo+ICsJICAgIFBWRS5kYXRhLlJlc291cmNlU3RvcmUuZ2V0Tm9kZXMo
KS5mb3JFYWNoKCh7IG5vZGUgfSkgPT4gew0KPiArCQlpZiAobm9kZSA9PT0gUHJveG1veC5Ob2Rl
TmFtZSkgew0KPiArCQkgICAgcmV0dXJuOw0KPiArCQl9DQo+ICsJCVByb3htb3guVXRpbHMuQVBJ
MlJlcXVlc3Qoew0KPiArCQkgICAgdXJsOiBgL25vZGVzLyR7bm9kZX0vaGFyZHdhcmUvbWFwcGlu
Zy9hbGxgLA0KPiArCQkgICAgbWV0aG9kOiAnR0VUJywNCj4gKwkJICAgIGZhaWx1cmU6IGZ1bmN0
aW9uKHJlc3BvbnNlKSB7DQo+ICsJCQl2aWV3LmdldFJvb3ROb2RlKCk/LmNhc2NhZGUoZnVuY3Rp
b24ocmVjKSB7DQo+ICsJCQkgICAgaWYgKHJlYy5kYXRhLm5vZGUgIT09IG5vZGUpIHsNCj4gKwkJ
CQlyZXR1cm47DQo+ICsJCQkgICAgfQ0KPiArDQo+ICsJCQkgICAgcmVjLnNldCgndmFsaWQnLCAw
KTsNCj4gKwkJCSAgICByZWMuc2V0KCdlcnJtc2cnLCByZXNwb25zZS5odG1sU3RhdHVzKTsNCj4g
KwkJCSAgICByZWMuY29tbWl0KCk7DQo+ICsJCQl9KTsNCj4gKwkJICAgIH0sDQo+ICsJCSAgICBz
dWNjZXNzOiBmdW5jdGlvbih7IHJlc3VsdDogeyBkYXRhIH0gfSkgew0KPiArCQkJbGV0IGVudHJp
ZXMgPSB7fTsNCj4gKwkJCWRhdGEuZm9yRWFjaCgoZW50cnkpID0+IHsNCj4gKwkJCSAgICBlbnRy
aWVzW2VudHJ5Lm5hbWVdID0gZW50cnk7DQo+ICsJCQl9KTsNCj4gKwkJCXZpZXcuZ2V0Um9vdE5v
ZGUoKT8uY2FzY2FkZShmdW5jdGlvbihyZWMpIHsNCj4gKwkJCSAgICBpZiAocmVjLmRhdGEubm9k
ZSAhPT0gbm9kZSkgew0KPiArCQkJCXJldHVybjsNCj4gKwkJCSAgICB9DQo+ICsNCj4gKwkJCSAg
ICBsZXQgZW50cnkgPSBlbnRyaWVzW3JlYy5kYXRhLmVudHJ5XTsNCj4gKw0KPiArCQkJICAgIHJl
Yy5zZXQoJ3ZhbGlkJywgZW50cnkudmFsaWQpOw0KPiArCQkJICAgIHJlYy5zZXQoJ2Vycm1zZycs
IGVudHJ5LmVycm1zZyk7DQo+ICsJCQkgICAgcmVjLmNvbW1pdCgpOw0KPiArCQkJfSk7DQo+ICsJ
CSAgICB9LA0KPiArCQl9KTsNCj4gKwkgICAgfSk7DQo+ICsJfSwNCj4gKyAgICB9LA0KPiArDQo+
ICsgICAgc3RvcmU6IHsNCj4gKwlzb3J0ZXJzOiAndGV4dCcsDQo+ICsJbW9kZWw6ICdwdmUtaGFy
ZHdhcmUtdHJlZScsDQo+ICsJZGF0YToge30sDQo+ICsgICAgfSwNCj4gKw0KPiArDQo+ICsgICAg
dGJhcjogWw0KPiArCXsNCj4gKwkgICAgdGV4dDogZ2V0dGV4dCgnQWRkJyksDQo+ICsJICAgIGNi
aW5kOiB7DQo+ICsJCWRpc2FibGVkOiAneyFjYW5Db25maWd1cmV9JywNCj4gKwkgICAgfSwNCj4g
KwkgICAgbWVudTogWw0KPiArCQl7DQo+ICsJCSAgICB0ZXh0OiBnZXR0ZXh0KCdQQ0knKSwNCj4g
KwkJICAgIGljb25DbHM6ICdwdmUtaXR5cGUtaWNvbi1wY2knLA0KPiArCQkgICAgaGFuZGxlcjog
J2FkZFBDSScsDQo+ICsJCX0sDQo+ICsJCXsNCj4gKwkJICAgIHRleHQ6IGdldHRleHQoJ1VTQicp
LA0KPiArCQkgICAgaWNvbkNsczogJ2ZhIGZhLWZ3IGZhLXVzYiBibGFjaycsDQo+ICsJCSAgICBo
YW5kbGVyOiAnYWRkVVNCJywNCj4gKwkJfSwNCj4gKwkgICAgXSwNCj4gKwl9LA0KPiArCXsNCj4g
KwkgICAgeHR5cGU6ICdwcm94bW94QnV0dG9uJywNCj4gKwkgICAgdGV4dDogZ2V0dGV4dCgnTmV3
IEhvc3QgbWFwcGluZycpLA0KPiArCSAgICBkaXNhYmxlZDogdHJ1ZSwNCj4gKwkgICAgcGFyZW50
WFR5cGU6ICd0cmVlcGFuZWwnLA0KPiArCSAgICBlbmFibGVGbjogZnVuY3Rpb24oX3JlYykgew0K
PiArCQlyZXR1cm4gdGhpcy51cCgndHJlZXBhbmVsJykuY2FuQ29uZmlndXJlOw0KPiArCSAgICB9
LA0KPiArCSAgICBoYW5kbGVyOiAnYWRkSG9zdCcsDQo+ICsJfSwNCj4gKwl7DQo+ICsJICAgIHh0
eXBlOiAncHJveG1veEJ1dHRvbicsDQo+ICsJICAgIHRleHQ6IGdldHRleHQoJ0VkaXQnKSwNCj4g
KwkgICAgZGlzYWJsZWQ6IHRydWUsDQo+ICsJICAgIHBhcmVudFhUeXBlOiAndHJlZXBhbmVsJywN
Cj4gKwkgICAgZW5hYmxlRm46IGZ1bmN0aW9uKHJlYykgew0KPiArCQlyZXR1cm4gcmVjLmRhdGEu
bnR5cGUgIT09ICdlbnRyeScgJiYgdGhpcy51cCgndHJlZXBhbmVsJykuY2FuQ29uZmlndXJlOw0K
PiArCSAgICB9LA0KPiArCSAgICBjYmluZDogew0KPiArCQlkaXNhYmxlZDogJ3shY2FuQ29uZmln
dXJlfScsDQo+ICsJICAgIH0sDQo+ICsJICAgIGhhbmRsZXI6ICdlZGl0JywNCj4gKwl9LA0KPiAr
CXsNCj4gKwkgICAgeHR5cGU6ICdwcm94bW94U3RkUmVtb3ZlQnV0dG9uJywNCj4gKwkgICAgcGFy
ZW50WFR5cGU6ICd0cmVlcGFuZWwnLA0KPiArCSAgICBnZXRVcmw6IGZ1bmN0aW9uKHJlYykgew0K
PiArCQlsZXQgZGF0YSA9IHJlYy5kYXRhOw0KPiArCQlyZXR1cm4gYC9hcGkyL2V4dGpzL25vZGVz
LyR7ZGF0YS5ub2RlfS9oYXJkd2FyZS9tYXBwaW5nLyR7ZGF0YS50eXBlfS8ke2RhdGEuZW50cnl9
YDsNCj4gKwkgICAgfSwNCj4gKwkgICAgY29uZmlybU1zZzogZnVuY3Rpb24ocmVjKSB7DQo+ICsJ
CWxldCBtc2cgPSBnZXR0ZXh0KCdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlIGVudHJ5
IHswfSBmb3IgezF9Jyk7DQo+ICsJCXJldHVybiBFeHQuU3RyaW5nLmZvcm1hdChtc2csIGAnJHty
ZWMuZGF0YS5lbnRyeX0nYCwgYCcke3JlYy5kYXRhLm5vZGV9J2ApOw0KPiArCSAgICB9LA0KPiAr
CSAgICBlbmFibGVGbjogZnVuY3Rpb24ocmVjKSB7DQo+ICsJCXJldHVybiByZWMuZGF0YS5udHlw
ZSAhPT0gJ2VudHJ5JyAmJiB0aGlzLnVwKCd0cmVlcGFuZWwnKS5jYW5Db25maWd1cmU7DQo+ICsJ
ICAgIH0sDQo+ICsJICAgIGNhbGxiYWNrOiAnbG9hZCcsDQo+ICsJICAgIGRpc2FibGVkOiB0cnVl
LA0KPiArCSAgICB0ZXh0OiBnZXR0ZXh0KCdSZW1vdmUnKSwNCj4gKwl9LA0KPiArICAgIF0sDQo+
ICsNCj4gKyAgICBjb2x1bW5zOiBbDQo+ICsJew0KPiArCSAgICB4dHlwZTogJ3RyZWVjb2x1bW4n
LA0KPiArCSAgICB0ZXh0OiBnZXR0ZXh0KCdUeXBlL0lEL05vZGUnKSwNCj4gKwkgICAgZGF0YUlu
ZGV4OiAndGV4dCcsDQo+ICsJICAgIHJlbmRlcmVyOiBmdW5jdGlvbih2YWx1ZSwgX21ldGEsIHJl
Y29yZCkgew0KPiArCQlpZiAocmVjb3JkLmRhdGEubnR5cGUgPT09ICdlbnRyeScpIHsNCj4gKwkJ
ICAgIGxldCB0eXBlTWFwID0gew0KPiArCQkJdXNiOiBnZXR0ZXh0KCdVU0InKSwNCj4gKwkJCXBj
aTogZ2V0dGV4dCgnUENJJyksDQo+ICsJCSAgICB9Ow0KPiArCQkgICAgbGV0IHR5cGUgPSB0eXBl
TWFwW3JlY29yZC5kYXRhLnR5cGVdIHx8IFByb3htb3guVXRpbHMudW5rbm93blRleHQ7DQo+ICsJ
CSAgICByZXR1cm4gYCR7dmFsdWV9ICgke3R5cGV9KWA7DQo+ICsJCX0NCj4gKwkJcmV0dXJuIHZh
bHVlOw0KPiArCSAgICB9LA0KPiArCSAgICB3aWR0aDogMjAwLA0KPiArCX0sDQo+ICsJew0KPiAr
CSAgICB0ZXh0OiBnZXR0ZXh0KCdWZW5kb3InKSwNCj4gKwkgICAgZGF0YUluZGV4OiAndmVuZG9y
JywNCj4gKwl9LA0KPiArCXsNCj4gKwkgICAgdGV4dDogZ2V0dGV4dCgnRGV2aWNlJyksDQo+ICsJ
ICAgIGRhdGFJbmRleDogJ2RldmljZScsDQo+ICsJfSwNCj4gKwl7DQo+ICsJICAgIHRleHQ6IGdl
dHRleHQoJ1N1YnN5c3RlbSBWZW5kb3InKSwNCj4gKwkgICAgZGF0YUluZGV4OiAnc3Vic3lzdGVt
LXZlbmRvcicsDQo+ICsJfSwNCj4gKwl7DQo+ICsJICAgIHRleHQ6IGdldHRleHQoJ1N1YnN5c3Rl
bSBEZXZpY2UnKSwNCj4gKwkgICAgZGF0YUluZGV4OiAnc3Vic3lzdGVtLWRldmljZScsDQo+ICsJ
fSwNCj4gKwl7DQo+ICsJICAgIHRleHQ6IGdldHRleHQoJ0lPTU1VIGdyb3VwJyksDQo+ICsJICAg
IGRhdGFJbmRleDogJ2lvbW11Z3JvdXAnLA0KPiArCX0sDQo+ICsJew0KPiArCSAgICB0ZXh0OiBn
ZXR0ZXh0KCdQYXRoJyksDQo+ICsJICAgIGZsZXg6IDEsDQo+ICsJICAgIGRhdGFJbmRleDogJ3Bh
dGgnLA0KPiArCSAgICByZW5kZXJlcjogZnVuY3Rpb24odmFsdWUpIHsNCj4gKwkJdmFsdWUgPSB2
YWx1ZSA/PyAnJzsNCj4gKwkJaWYgKHZhbHVlLmluZGV4T2YoJzsnKSAhPT0gLTEpIHsNCj4gKwkJ
ICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnOycpLmpvaW4oJywgJyk7DQo+ICsJCX0NCj4gKwkJcmV0
dXJuIHZhbHVlOw0KPiArCSAgICB9LA0KPiArCX0sDQo+ICsJew0KPiArCSAgICBoZWFkZXI6IGdl
dHRleHQoJ1N0YXR1cycpLA0KPiArCSAgICBkYXRhSW5kZXg6ICd2YWxpZCcsDQo+ICsJICAgIGZs
ZXg6IDEsDQo+ICsJICAgIHJlbmRlcmVyOiBmdW5jdGlvbih2YWx1ZSwgX21ldGFkYXRhLCByZWNv
cmQpIHsNCj4gKwkJaWYgKHJlY29yZC5kYXRhLm50eXBlICE9PSAnbWFwcGluZycpIHsNCj4gKwkJ
ICAgIHJldHVybiAnJzsNCj4gKwkJfQ0KPiArCQlsZXQgaWNvbkNsczsNCj4gKwkJbGV0IHN0YXR1
czsNCj4gKwkJaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHsNCj4gKwkJICAgIGljb25DbHMgPSAn
ZmEtc3Bpbm5lciBmYS1zcGluJzsNCj4gKwkJICAgIHN0YXR1cyA9IGdldHRleHQoJ0xvYWRpbmcu
Li4nKTsNCj4gKwkJfSBlbHNlIHsNCj4gKwkJICAgIGxldCBzdGF0ZSA9IHZhbHVlID8gJ2dvb2Qn
IDogJ2NyaXRpY2FsJzsNCj4gKwkJICAgIGljb25DbHMgPSBQVkUuVXRpbHMuZ2V0X2hlYWx0aF9p
Y29uKHN0YXRlLCB0cnVlKTsNCj4gKwkJICAgIHN0YXR1cyA9IHZhbHVlID8gZ2V0dGV4dCgiT0si
KSA6IHJlY29yZC5kYXRhLmVycm1zZyB8fCBQcm94bW94LlV0aWxzLnVua25vd25UZXh0Ow0KPiAr
CQl9DQo+ICsJCXJldHVybiBgPGkgY2xhc3M9ImZhICR7aWNvbkNsc30iPjwvaT4gJHtzdGF0dXN9
YDsNCj4gKwkgICAgfSwNCj4gKwl9LA0KPiArCXsNCj4gKwkgICAgaGVhZGVyOiBnZXR0ZXh0KCdD
b21tZW50JyksDQo+ICsJICAgIGRhdGFJbmRleDogJ2NvbW1lbnQnLA0KPiArCSAgICBmbGV4OiAx
LA0KPiArCX0sDQo+ICsgICAgXSwNCj4gKw0KPiArICAgIGxpc3RlbmVyczogew0KPiArCWFjdGl2
YXRlOiAnbG9hZCcsDQo+ICsJaXRlbWRibGNsaWNrOiAnZWRpdCcsDQo+ICsgICAgfSwNCj4gK30p
Ow0KDQo=