From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; 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 ; 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 ; 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 ; 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" To: "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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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=