From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id 0ACAC1FF16B
	for <inbox@lore.proxmox.com>; Thu,  3 Apr 2025 14:39:00 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id BFE8BBDF;
	Thu,  3 Apr 2025 14:38:48 +0200 (CEST)
From: Wolfgang Bumiller <w.bumiller@proxmox.com>
To: pve-devel@lists.proxmox.com
Date: Thu,  3 Apr 2025 14:31:15 +0200
Message-Id: <20250403123118.264974-36-w.bumiller@proxmox.com>
X-Mailer: git-send-email 2.39.5
In-Reply-To: <20250403123118.264974-1-w.bumiller@proxmox.com>
References: <20250403123118.264974-1-w.bumiller@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.080 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: [pve-devel] [PATCH v8 container 6/7] restore tar archive: check
 potentially untrusted archive
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>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

RnJvbTogRmlvbmEgRWJuZXIgPGYuZWJuZXJAcHJveG1veC5jb20+CgondGFyJyBpdHNlbGYgYWxy
ZWFkeSBwcm90ZWN0cyBhZ2FpbnN0ICcuLicgaW4gY29tcG9uZW50IG5hbWVzIGFuZApzdHJpcHMg
YWJzb2x1dGUgbWVtYmVyIG5hbWVzIHdoZW4gZXh0cmFjdGluZyAoaWYgbm90IHVzZWQgd2l0aCB0
aGUKLS1hYnNvbHV0ZS1uYW1lcyBvcHRpb24pIGFuZCBpbiBnZW5lcmFsIHNlZW1zIHNhbmUgZm9y
IGV4dHJhY3RpbmcuCkFkZGl0aW9uYWxseSwgdGhlIGV4dHJhY3Rpb24gYWxyZWFkeSBoYXBwZW5z
IGluIHRoZSB1c2VyIG5hbWVzcGFjZQphc3NvY2lhdGVkIHRvIHRoZSBjb250YWluZXIuIFNvIGZv
ciBub3csIHN0YXJ0IG91dCB3aXRoIHNvbWUgYmFzaWMKc2FuaXR5IGNoZWNrcy4gVGhlIGhlbHBl
ciBjYW4gc3RpbGwgYmUgZXh0ZW5kZWQgd2l0aCBtb3JlIGNoZWNrcy4KCkNoZWNrczoKCiogbGlz
dCBmaWxlcyBpbiBhcmNoaXZlIC0gd2lsbCBhbHJlYWR5IGNhdGNoIG1hbnkgY29ycnVwdGVkL2Jv
Z3VzCiAgYXJjaGl2ZXMuCgoqIGNoZWNrIHRoYXQgdGhlcmUgYXJlIGF0IGxlYXN0IDEwIG1lbWJl
cnMgLSBzaG91bGQgYWxzbyBjYXRjaAogIGFyY2hpdmVzIG5vdCBhY3R1YWxseSBjb250YWluaW5n
IGEgY29udGFpbmVyIHJvb3QgZmlsZXN5c3RlbSBvcgogIHN0cnVjdHVyYWwgaXNzdWVzIGVhcmx5
LgoKKiBjaGVjayB0aGF0IC9zYmluIGRpcmVjdG9yeSBvciBsaW5rIGV4aXN0cyBpbiBhcmNoaXZl
IC0gaWRlYWxseSB0aGUKICBjaGVjayB3b3VsZCBiZSBmb3IgL3NiaW4vaW5pdCwgYnV0IHRoaXMg
Y2Fubm90IGJlIGRvbmUgZWZmaWNpZW50bHkKICBiZWZvcmUgZXh0cmFjdGlvbiwgYmVjYXVzZSBp
dCB3b3VsZCByZXF1aXJlIHRvIGtlZXAgdHJhY2sgb2YgdGhlCiAgd2hvbGUgYXJjaGl2ZSB0byBi
ZSBhYmxlIHRvIGZvbGxvdyBzeW1saW5rcy4KCiogYWJvcnQgaWYgdGhlcmUgaXMgYSBtdWx0aS12
b2x1bWUgbWVtYmVyIGluIHRoZSBhcmNoaXZlIC0gY2hlYXAgYW5kCiAgaXMgbmV2ZXIgZXhwZWN0
ZWQuCgpDaGVja3MgdGhhdCB3ZXJlIGNvbnNpZGVyZWQsIGJ1dCBub3QgKHlldCkgYWRkZWQ6Cgoq
IGFib3J0IHdoZW4gYSBmaWxlIGhhcyB1bnJlYWxpc3RpY2FsbHkgbGFyZ2Ugc2l6ZSAtIHdoaWxl
IHRoaXMgY291bGQKICBoZWxwIHRvIGRldGVjdCBjZXJ0YWluIGtpbmRzIG9mIGJvZ3VzIGFyY2hp
dmVzLCB0aGVyZSBjYW4gYmUgdmFsaWQuCiAgdXNlIGNhc2VzIGZvciBleHRyZW1lbHkgbGFyZ2Ug
c3BhcnNlIGZpbGVzLCBzbyBpdCdzIG5vdCBjbGVhciB3aGF0CiAgYSBnb29kIGxpbWl0IHdvdWxk
IGJlICgxIEVpQiBtYXliZT8pLiBBbHNvLCBhbiBhdHRhY2tlciBjb3VsZCBqdXN0CiAgYWRhcHQg
dG8gc3VjaCBhIGxpbWl0IGNyZWF0aW5nIG11bHRpcGxlIGZpbGVzIGFuZCB0aGUgYWN0dWFsCiAg
ZXh0cmFjdGlvbiBpcyBhbHJlYWR5IGxpbWl0ZWQgYnkgdGhlIHNpemUgb2YgdGhlIGFsbG9jYXRl
ZCBjb250YWluZXIKICB2b2x1bWUuCgoqIGNoZWNrIHRoYXQgL3NiaW4vaW5pdCBleGlzdHMgYWZ0
ZXIgZXh0cmFjdGluZyAtIGNhbm5vdCBiZSBkb25lCiAgZWZmaWNpZW50bHkgYmVmb3JlIGV4dHJh
Y3Rpb24sIGJlY2F1c2UgaXQgd291bGQgcmVxdWlyZSB0byBrZWVwCiAgdHJhY2sgb2YgdGhlIHdo
b2xlIGFyY2hpdmUgdG8gYmUgYWJsZSB0byBmb2xsb3cgc3ltbGlua3MuIER1cmluZwogIHNldHVw
IHRoZXJlIGFscmVhZHkgaXMgZGV0ZWN0aW9uIG9mIC9ldGMvb3MtcmVsZWFzZSwgc28gaXNzdWVz
IHdpdGgKICB0aGUgc3RydWN0dXJlIHdpbGwgYWxyZWFkeSBiZSBub3RpY2VkLiBBZGRpbmcgYSBo
YXJkIGZhaWwgZm9yCiAgdW50cnVzdGVkIGFyY2hpdmVzIHdvdWxkIHJlcXVpcmUgZWl0aGVyIHBh
c3NpbmcgdGhhdCBpbmZvcm1hdGlvbiB0bwogIHRoZSBzZXR1cCBwaGFzZSBvciBleHRyYWN0aW5n
IHRoZSBwcm90ZWN0ZWRfY2FsbCBtZXRob2QgZnJvbSB0aGVyZQogIGludG8gYSBoZWxwZXIuCgoq
IGFkZGluZyAncmVzdHJpY3QnIHRvIHRoZSAoY29tbW9uKSB0YXIgZmxhZ3MgLSB0aGUgdGFyIG1h
bnVhbCAobm90CiAgdGhlIG1hbiBwYWdlKSBkb2N1bWVudHM6ICJEaXNhYmxlIHVzZSBvZiBzb21l
IHBvdGVudGlhbGx5IGhhcm1mdWwKICAndGFyJyBvcHRpb25zLiAgQ3VycmVudGx5IHRoaXMgb3B0
aW9uIGRpc2FibGVzIHNoZWxsIGludm9jYXRpb24gZnJvbQogIG11bHRpLXZvbHVtZSBtZW51LiIu
IFRoZSBmbGFnIHdhcyBpbnRyb2R1Y2VkIGluIDIwMDUgYW5kIHRoaXMgaXMKICBzdGlsbCB0aGUg
b25seSB0aGluZyBpdCBpcyB1c2VkIGZvci4gVHJ5aW5nIHRvIHJlc3RvcmUgYQogIG11bHRpLXZv
bHVtZSBhcmNoaXZlIGFscmVhZHkgZmFpbHMgd2l0aG91dCBnaXZpbmcgbXVsdGlwbGUgJy0tZmls
ZScKICBhcmd1bWVudHMgYW5kICctLW11bHRpLXZvbHVtZScsIHNvIGRvbid0IGJvdGhlciBhZGRp
bmcgdGhlIGZsYWcuCgoqIGNoZWNrIGZvcm1hdCBvZiB0YXIgZmlsZSAtIHdvdWxkIHJlcXVpcmUg
eWV0IGFub3RoZXIgaW52b2NhdGlvbiBvZgogIHRoZSBkZWNvbXByZXNzb3IgYW5kIHRoZXJlIHNl
ZW1zIHRvIGJlIG5vIGJ1aWx0LWluIHdheSB0byBqdXN0CiAgZGlzcGxheSB0aGUgZm9ybWF0IHdp
dGggJ3RhcicuIFRoZSAnZmlsZScgcHJvZ3JhbSBjb3VsZCBiZSB1c2VkLCBidXQKICBpdCBzZWVt
cyB0byBub3QgbWFrZSBhIGRpc3RpbmN0aW9uIGJldHdlZW4gb2xkIEdOVSBhbmQgR05VIGFuZCBv
bGQKICBQT1NJWCBhbmQgUE9TSVggZm9ybWF0cywgd2l0aCB0aGUgb2xkIG9uZXMgYmVpbmcgY2Fu
ZGlkYXRlcyB0bwogIHByb2hpYml0LiBTbyB0aGF0IHdvdWxkIGxlYXZlIGp1c3QgZGV0ZWN0aW5n
IHRoZSBvbGQgJ3Y3JyBmb3JtYXQuCgpTdWdnZXN0ZWQtYnk6IEZhYmlhbiBHcsO8bmJpY2hsZXIg
PGYuZ3J1ZW5iaWNobGVyQHByb3htb3guY29tPgpTaWduZWQtb2ZmLWJ5OiBGaW9uYSBFYm5lciA8
Zi5lYm5lckBwcm94bW94LmNvbT4KLS0tCk5vIGNoYW5nZXMgdG8gdjcuCgogc3JjL1BWRS9MWEMv
Q3JlYXRlLnBtIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t
LQogMSBmaWxlIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvc3JjL1BWRS9MWEMvQ3JlYXRlLnBtIGIvc3JjL1BWRS9MWEMvQ3JlYXRlLnBtCmlu
ZGV4IDQzZmM1ZmUuLjUzYzU4NGIgMTAwNjQ0Ci0tLSBhL3NyYy9QVkUvTFhDL0NyZWF0ZS5wbQor
KysgYi9zcmMvUFZFL0xYQy9DcmVhdGUucG0KQEAgLTk5LDEyICs5OSw3MyBAQCBteSBzdWIgdGFy
X2NvbXByZXNzaW9uX29wdGlvbiB7CiAgICAgfQogfQogCisjIEJhc2ljIGNoZWNrcyB0cnlpbmcg
dG8gZGV0ZWN0IGlzc3VlcyB3aXRoIGEgcG90ZW50aWFsbHkgdW50cnVzdGVkIG9yIGJvZ3VzIHRh
ciBhcmNoaXZlLgorIyBKdXN0IGxpc3RpbmcgdGhlIGZpbGVzIGlzIGFscmVhZHkgYSBnb29kIGNo
ZWNrIGFnYWluc3QgY29ycnVwdGlvbi4KKyMgJ3RhcicgaXRzZWxmIGFscmVhZHkgcHJvdGVjdHMg
YWdhaW5zdCAnLi4nIGluIGNvbXBvbmVudCBuYW1lcyBhbmQgc3RyaXBzIGFic29sdXRlIG1lbWJl
ciBuYW1lcworIyB3aGVuIGV4dHJhY3RpbmcsIHNvIG5vIG5lZWQgdG8gY2hlY2sgZm9yIHRob3Nl
IGhlcmUuCitteSBzdWIgY2hlY2tfdGFyX2FyY2hpdmUgeworICAgIG15ICgkYXJjaGl2ZSkgPSBA
XzsKKworICAgIHByaW50ICJjaGVja2luZyBhcmNoaXZlLi5cbiI7CisKKyAgICAjIFRvIHJlc29s
dmUgbGlua3MgdG8gZ2V0IHRvICdzYmluL2luaXQnIHdvdWxkIG1lYW4ga2VlcGluZyB0cmFjayBv
ZiBldmVyeXRoaW5nIGluIHRoZSBhcmNoaXZlLAorICAgICMgYmVjYXVzZSB0aGUgdGFyZ2V0IG1p
Z2h0IGJlIG9yZGVyZWQgZmlyc3QuIENoZWNrIG9ubHkgdGhhdCAnc2JpbicgZXhpc3RzIGhlcmUu
CisgICAgbXkgJGZvdW5kX3NiaW47CisKKyAgICAjIEp1c3QgdG8gZGV0ZWN0IGJvZ3VzIGFyY2hp
dmVzLCBhbnkgdmFsaWQgY29udGFpbmVyIGZpbGVzeXN0ZW0gc2hvdWxkIGhhdmUgbW9yZSB0aGFu
IHRoaXMuCisgICAgbXkgJHJlcXVpcmVkX21lbWJlcnMgPSAxMDsKKyAgICBteSAkbWVtYmVyX2Nv
dW50ID0gMDsKKworICAgIG15ICRjaGVja19maWxlX2xpc3QgPSBzdWIgeworCW15ICgkbGluZSkg
PSBAXzsKKworCSRtZW1iZXJfY291bnQrKzsKKworCSMgTm90IGFsd2F5cyBqdXN0IGEgc2luZ2xl
IG51bWJlciwgZS5nLiBmb3IgY2hhcmFjdGVyIGRldmljZXMuCisJbXkgJHNpemVfcmUgPSBxci9c
ZCsoPzosXGQrKT8vOworCisJIyBUaGUgZGF0ZSBpcyBpbiBJU08gODYwMSBmb3JtYXQuIFRoZSBs
YXN0IHBhcnQgY29udGFpbnMgdGhlIHBvdGVudGlhbGx5IHF1b3RlZCBmaWxlIG5hbWUsCisJIyBw
b3RlbnRpYWxseSBmb2xsb3dlZCBieSBzb21lIGFkZGl0aW9uYWwgaW5mbyAoZS5nLiB3aGVyZSBh
IGxpbmsgcG9pbnRzIHRvKS4KKwlteSAoJHR5cGUsICRwZXJtcywgJHVpZCwgJGdpZCwgJHNpemUs
ICRkYXRlLCAkdGltZSwgJGZpbGVfaW5mbykgPQorCSAgICAkbGluZSA9fiBtIV4oW2EtekEtWlwt
XSkoXFMrKVxzKyhcZCspLyhcZCspXHMrKCRzaXplX3JlKVxzKyhcUyspXHMrKFxTKylccysoLiop
JCE7CisJaWYgKCFkZWZpbmVkKCR0eXBlKSkgeworCSAgICBwcmludCAiY2hlY2sgdGFyOiB1bmFi
bGUgdG8gcGFyc2UgbGluZTogJGxpbmVcbiI7CisJICAgIHJldHVybjsKKwl9CisKKwlkaWUgImZv
dW5kIG11bHRpLXZvbHVtZSBtZW1iZXIgaW4gYXJjaGl2ZVxuIiBpZiAkdHlwZSBlcSAnTSc7CisK
KwlpZiAoISRmb3VuZF9zYmluICYmICgKKwkgICAgKCRmaWxlX2luZm8gPX4gbSFeKD86XC4vKT9z
YmluLyQhICYmICR0eXBlIGVxICdkJykKKwkgICAgfHwgKCRmaWxlX2luZm8gPX4gbSFeKD86XC4v
KT9zYmluIC0+ISAmJiAkdHlwZSBlcSAnbCcpCisJICAgIHx8ICgkZmlsZV9pbmZvID1+IG0hXig/
OlwuLyk/c2JpbiBsaW5rIHRvISAmJiAkdHlwZSBlcSAnaCcpCisJKSkgeworCSAgICAkZm91bmRf
c2JpbiA9IDE7CisJfQorCisgICAgfTsKKworICAgIG15ICRjb21wcmVzc2lvbl9vcHQgPSB0YXJf
Y29tcHJlc3Npb25fb3B0aW9uKCRhcmNoaXZlKTsKKworICAgIG15ICRjbWQgPSBbJ3RhcicsICct
dHZmJywgJGFyY2hpdmVdOworICAgIHB1c2ggJGNtZC0+QCosICRjb21wcmVzc2lvbl9vcHQgaWYg
JGNvbXByZXNzaW9uX29wdDsKKyAgICBwdXNoICRjbWQtPkAqLCAnLS1udW1lcmljLW93bmVyJzsK
KworICAgIFBWRTo6VG9vbHM6OnJ1bl9jb21tYW5kKCRjbWQsIG91dGZ1bmMgPT4gJGNoZWNrX2Zp
bGVfbGlzdCk7CisKKyAgICBkaWUgIm5vICdzYmluJyBkaXJlY3RvcnkgKG9yIGxpbmspIGZvdW5k
IGluIGFyY2hpdmUgJyRhcmNoaXZlJ1xuIiBpZiAhJGZvdW5kX3NiaW47CisgICAgZGllICJsZXNz
IHRoYW4gMTAgbWVtYmVycyBpbiBhcmNoaXZlICckYXJjaGl2ZSdcbiIgaWYgJG1lbWJlcl9jb3Vu
dCA8ICRyZXF1aXJlZF9tZW1iZXJzOworfQorCiBteSBzdWIgcmVzdG9yZV90YXJfYXJjaGl2ZV9j
b21tYW5kIHsKLSAgICBteSAoJGNvbmYsICRjb21wcmVzc2lvbl9vcHQsICRyb290ZGlyLCAkYnds
aW1pdCkgPSBAXzsKKyAgICBteSAoJGNvbmYsICRjb21wcmVzc2lvbl9vcHQsICRyb290ZGlyLCAk
YndsaW1pdCwgJHVudHJ1c3RlZCkgPSBAXzsKIAogICAgIG15ICgkaWRfbWFwLCAkcm9vdF91aWQs
ICRyb290X2dpZCkgPSBQVkU6OkxYQzo6cGFyc2VfaWRfbWFwcygkY29uZik7CiAgICAgbXkgJHVz
ZXJuc19jbWQgPSBQVkU6OkxYQzo6dXNlcm5zX2NvbW1hbmQoJGlkX21hcCk7CiAKKyAgICBkaWUg
InJlZnVzaW5nIHRvIHJlc3RvcmUgcHJpdmlsZWdlZCBjb250YWluZXIgYmFja3VwIGZyb20gZXh0
ZXJuYWwgc291cmNlXG4iCisJaWYgJHVudHJ1c3RlZCAmJiAoJHJvb3RfdWlkID09IDAgfHwgJHJv
b3RfZ2lkID09IDApOworCiAgICAgbXkgJGNtZCA9IFtAJHVzZXJuc19jbWQsICd0YXInLCAneHBm
JywgJy0nXTsKICAgICBwdXNoICRjbWQtPkAqLCAkY29tcHJlc3Npb25fb3B0IGlmICRjb21wcmVz
c2lvbl9vcHQ7CiAgICAgcHVzaCAkY21kLT5AKiwgJy0tdG90YWxzJzsKQEAgLTEyNyw3ICsxODgs
NyBAQCBteSBzdWIgcmVzdG9yZV90YXJfYXJjaGl2ZV9jb21tYW5kIHsKIH0KIAogc3ViIHJlc3Rv
cmVfdGFyX2FyY2hpdmUgewotICAgIG15ICgkYXJjaGl2ZSwgJHJvb3RkaXIsICRjb25mLCAkbm9f
dW5wYWNrX2Vycm9yLCAkYndsaW1pdCkgPSBAXzsKKyAgICBteSAoJGFyY2hpdmUsICRyb290ZGly
LCAkY29uZiwgJG5vX3VucGFja19lcnJvciwgJGJ3bGltaXQsICR1bnRydXN0ZWQpID0gQF87CiAK
ICAgICBteSAkYXJjaGl2ZV9maDsKICAgICBteSAkdGFyX2lucHV0ID0gJzwmU1RESU4nOwpAQCAt
MTQyLDcgKzIwMywxMiBAQCBzdWIgcmVzdG9yZV90YXJfYXJjaGl2ZSB7CiAJJHRhcl9pbnB1dCA9
ICc8JicuZmlsZW5vKCRhcmNoaXZlX2ZoKTsKICAgICB9CiAKLSAgICBteSAkY21kID0gcmVzdG9y
ZV90YXJfYXJjaGl2ZV9jb21tYW5kKCRjb25mLCAkY29tcHJlc3Npb25fb3B0LCAkcm9vdGRpciwg
JGJ3bGltaXQpOworICAgIGlmICgkdW50cnVzdGVkKSB7CisJZGllICJjYW5ub3QgdmVyaWZ5IHVu
dHJ1c3RlZCBhcmNoaXZlIG9uIFNURElOXG4iIGlmICRhcmNoaXZlIGVxICctJzsKKwljaGVja190
YXJfYXJjaGl2ZSgkYXJjaGl2ZSk7CisgICAgfQorCisgICAgbXkgJGNtZCA9IHJlc3RvcmVfdGFy
X2FyY2hpdmVfY29tbWFuZCgkY29uZiwgJGNvbXByZXNzaW9uX29wdCwgJHJvb3RkaXIsICRid2xp
bWl0LCAkdW50cnVzdGVkKTsKIAogICAgIGlmICgkYXJjaGl2ZSBlcSAnLScpIHsKIAlwcmludCAi
ZXh0cmFjdGluZyBhcmNoaXZlIGZyb20gU1RESU5cbiI7CkBAIC0xNzAsNyArMjM2LDcgQEAgc3Vi
IHJlc3RvcmVfZXh0ZXJuYWxfYXJjaGl2ZSB7CiAJICAgIG15ICR0YXJfcGF0aCA9ICRpbmZvLT57
J3Rhci1wYXRoJ30KIAkJb3IgZGllICJkaWQgbm90IGdldCBwYXRoIHRvIHRhciBmaWxlIGZyb20g
YmFja3VwIHByb3ZpZGVyXG4iOwogCSAgICBkaWUgIm5vdCBhIHJlZ3VsYXIgZmlsZSAnJHRhcl9w
YXRoJyIgaWYgIS1mICR0YXJfcGF0aDsKLQkgICAgcmVzdG9yZV90YXJfYXJjaGl2ZSgkdGFyX3Bh
dGgsICRyb290ZGlyLCAkY29uZiwgJG5vX3VucGFja19lcnJvciwgJGJ3bGltaXQpOworCSAgICBy
ZXN0b3JlX3Rhcl9hcmNoaXZlKCR0YXJfcGF0aCwgJHJvb3RkaXIsICRjb25mLCAkbm9fdW5wYWNr
X2Vycm9yLCAkYndsaW1pdCwgMSk7CiAJfSBlbHNpZiAoJG1lY2hhbmlzbSBlcSAnZGlyZWN0b3J5
JykgewogCSAgICBteSAkZGlyZWN0b3J5ID0gJGluZm8tPnsnYXJjaGl2ZS1kaXJlY3RvcnknfQog
CQlvciBkaWUgImRpZCBub3QgZ2V0IHBhdGggdG8gYXJjaGl2ZSBkaXJlY3RvcnkgZnJvbSBiYWNr
dXAgcHJvdmlkZXJcbiI7CkBAIC0xODksNiArMjU1LDcgQEAgc3ViIHJlc3RvcmVfZXh0ZXJuYWxf
YXJjaGl2ZSB7CiAJCScuJywKIAkgICAgXTsKIAorCSAgICAjIGFyY2hpdmUgaXMgdHJ1c3RlZCwg
d2UgY3JlYXRlZCBpdAogCSAgICBteSAkZXh0cmFjdF9jbWQgPSByZXN0b3JlX3Rhcl9hcmNoaXZl
X2NvbW1hbmQoJGNvbmYsIHVuZGVmLCAkcm9vdGRpciwgJGJ3bGltaXQpOwogCiAJICAgIG15ICRj
bWQ7Ci0tIAoyLjM5LjUKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5j
b20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZl
LWRldmVsCg==