From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 4CF021FF38E for ; Tue, 14 May 2024 12:35:47 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 4CC1E49CE; Tue, 14 May 2024 12:35:17 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Tue, 14 May 2024 12:34:11 +0200 Message-Id: <20240514103421.289431-56-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240514103421.289431-1-c.ebner@proxmox.com> References: <20240514103421.289431-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.026 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 SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH v6 proxmox-backup 55/65] test-suite: add detection mode change benchmark X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" SW50cm9kdWNlcyB0aGUgcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZSBjcmVhdGUgaW50ZW5kZWQg Zm9yCmJlbmNobWFya2luZyBhbmQgaGlnaCBsZXZlbCB1c2VyIGZhY2luZyB0ZXN0aW5nLgoKVGhl IGluaXRpYWwgY29kZSBpbmNsdWRlcyBhIGJlbmNobWFyayBpbnRlbmRlZCBmb3IgcmVncmVzc2lv biB0ZXN0aW5nIG9mCnRoZSBwcm94bW94LWJhY2t1cC1jbGllbnQgd2hlbiB1c2luZyBkaWZmZXJl bnQgZmlsZSBkZXRlY3Rpb24gbW9kZXMKZHVyaW5nIGJhY2t1cC4KClNpZ25lZC1vZmYtYnk6IENo cmlzdGlhbiBFYm5lciA8Yy5lYm5lckBwcm94bW94LmNvbT4KLS0tCiBDYXJnby50b21sICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogcHJveG1veC1iYWNrdXAtdGVz dC1zdWl0ZS9DYXJnby50b21sICAgICAgICAgIHwgIDE4ICsrCiAuLi4vc3JjL2RldGVjdGlvbl9t b2RlX2JlbmNoLnJzICAgICAgICAgICAgICAgfCAyOTQgKysrKysrKysrKysrKysrKysrCiBwcm94 bW94LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9tYWluLnJzICAgICAgICAgfCAgMTcgKwogNCBmaWxl cyBjaGFuZ2VkLCAzMzAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gt YmFja3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gt YmFja3VwLXRlc3Qtc3VpdGUvc3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzCiBjcmVhdGUgbW9k ZSAxMDA2NDQgcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9zcmMvbWFpbi5ycwoKZGlmZiAtLWdp dCBhL0NhcmdvLnRvbWwgYi9DYXJnby50b21sCmluZGV4IDU3NThiMzdiYy4uOTUwZGQ5NjcxIDEw MDY0NAotLS0gYS9DYXJnby50b21sCisrKyBiL0NhcmdvLnRvbWwKQEAgLTQ1LDYgKzQ1LDcgQEAg bWVtYmVycyA9IFsKICAgICAicHJveG1veC1yZXN0b3JlLWRhZW1vbiIsCiAKICAgICAicHhhci1i aW4iLAorICAgICJwcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlIiwKIF0KIAogW2xpYl0KZGlmZiAt LWdpdCBhL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbCBiL3Byb3htb3gtYmFj a3VwLXRlc3Qtc3VpdGUvQ2FyZ28udG9tbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLjNmODk5ZTliYwotLS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtYmFja3VwLXRlc3Qt c3VpdGUvQ2FyZ28udG9tbApAQCAtMCwwICsxLDE4IEBACitbcGFja2FnZV0KK25hbWUgPSAicHJv eG1veC1iYWNrdXAtdGVzdC1zdWl0ZSIKK3ZlcnNpb24gPSAiMC4xLjAiCithdXRob3JzLndvcmtz cGFjZSA9IHRydWUKK2VkaXRpb24ud29ya3NwYWNlID0gdHJ1ZQorCitbZGVwZW5kZW5jaWVzXQor YW55aG93LndvcmtzcGFjZSA9IHRydWUKK2Z1dHVyZXMud29ya3NwYWNlID0gdHJ1ZQorc2VyZGUu d29ya3NwYWNlID0gdHJ1ZQorc2VyZGVfanNvbi53b3Jrc3BhY2UgPSB0cnVlCisKK3Bicy1jbGll bnQud29ya3NwYWNlID0gdHJ1ZQorcGJzLWtleS1jb25maWcud29ya3NwYWNlID0gdHJ1ZQorcGJz LXRvb2xzLndvcmtzcGFjZSA9IHRydWUKK3Byb3htb3gtYXN5bmMud29ya3NwYWNlID0gdHJ1ZQor cHJveG1veC1yb3V0ZXIgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyJjbGkiXSB9 Citwcm94bW94LXNjaGVtYSA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbICJhcGkt bWFjcm8iIF0gfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9zcmMvZGV0 ZWN0aW9uX21vZGVfYmVuY2gucnMgYi9wcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlL3NyYy9kZXRl Y3Rpb25fbW9kZV9iZW5jaC5ycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LjlhM2M3NjgwMgotLS0gL2Rldi9udWxsCisrKyBiL3Byb3htb3gtYmFja3VwLXRlc3Qtc3VpdGUv c3JjL2RldGVjdGlvbl9tb2RlX2JlbmNoLnJzCkBAIC0wLDAgKzEsMjk0IEBACit1c2Ugc3RkOjpw YXRoOjpQYXRoOwordXNlIHN0ZDo6cHJvY2Vzczo6Q29tbWFuZDsKK3VzZSBzdGQ6Ont0aHJlYWQs IHRpbWV9OworCit1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJyb3J9OwordXNlIHNl cmRlX2pzb246OlZhbHVlOworCit1c2UgcGJzX2NsaWVudDo6eworICAgIHRvb2xzOjp7Y29tcGxl dGVfcmVwb3NpdG9yeSwga2V5X3NvdXJjZTo6S0VZRklMRV9TQ0hFTUEsIFJFUE9fVVJMX1NDSEVN QX0sCisgICAgQkFDS1VQX1NPVVJDRV9TQ0hFTUEsCit9OwordXNlIHBic190b29sczo6anNvbjsK K3VzZSBwcm94bW94X3JvdXRlcjo6Y2xpOjoqOwordXNlIHByb3htb3hfc2NoZW1hOjphcGk7CisK K2NvbnN0IERFRkFVTFRfTlVNQkVSX09GX1JVTlM6IHU2NCA9IDU7CisvLyBIb21lcGFnZSBodHRw czovL2NvY29kYXRhc2V0Lm9yZy8KK2NvbnN0IENPQ09fREFUQVNFVF9TUkNfVVJMOiAmJ3N0YXRp YyBzdHIgPSAiaHR0cDovL2ltYWdlcy5jb2NvZGF0YXNldC5vcmcvemlwcy91bmxhYmVsZWQyMDE3 LnppcCI7CisvLyBIb21lcGFnZSBodHRwczovL2tlcm5lbC5vcmcvCitjb25zdCBMSU5VWF9HSVRf UkVQT1NJVE9SWTogJidzdGF0aWMgc3RyID0KKyAgICAiZ2l0Oi8vZ2l0Lmtlcm5lbC5vcmcvcHVi L3NjbS9saW51eC9rZXJuZWwvZ2l0L3N0YWJsZS9saW51eC5naXQiOworY29uc3QgTElOVVhfR0lU X1RBRzogJidzdGF0aWMgc3RyID0gInY2LjUuNSI7CisKK3B1YihjcmF0ZSkgZm4gZGV0ZWN0aW9u X21vZGVfYmVuY2hfbWd0bV9jbGkoKSAtPiBDbGlDb21tYW5kTWFwIHsKKyAgICBsZXQgcnVuX2Nt ZF9kZWYgPSBDbGlDb21tYW5kOjpuZXcoJkFQSV9NRVRIT0RfREVURUNUSU9OX01PREVfQkVOQ0hf UlVOKQorICAgICAgICAuYXJnX3BhcmFtKCZbImJhY2t1cHNwZWMiXSkKKyAgICAgICAgLmNvbXBs ZXRpb25fY2IoInJlcG9zaXRvcnkiLCBjb21wbGV0ZV9yZXBvc2l0b3J5KQorICAgICAgICAuY29t cGxldGlvbl9jYigia2V5ZmlsZSIsIGNvbXBsZXRlX2ZpbGVfbmFtZSk7CisKKyAgICBsZXQgcHJl cGFyZV9jbWRfZGVmID0gQ2xpQ29tbWFuZDo6bmV3KCZBUElfTUVUSE9EX0RFVEVDVElPTl9NT0RF X0JFTkNIX1BSRVBBUkUpOworICAgIENsaUNvbW1hbmRNYXA6Om5ldygpCisgICAgICAgIC5pbnNl cnQoInByZXBhcmUiLCBwcmVwYXJlX2NtZF9kZWYpCisgICAgICAgIC5pbnNlcnQoInJ1biIsIHJ1 bl9jbWRfZGVmKQorfQorCisjW2FwaSgKKyAgIGlucHV0OiB7CisgICAgICAgcHJvcGVydGllczog eworICAgICAgICAgICBiYWNrdXBzcGVjOiB7CisgICAgICAgICAgICAgICB0eXBlOiBBcnJheSwK KyAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiTGlzdCBvZiBiYWNrdXAgc291cmNlIHNwZWNp ZmljYXRpb25zIChbPGxhYmVsLmV4dD46PHBhdGg+XSAuLi4pIiwKKyAgICAgICAgICAgICAgIGl0 ZW1zOiB7CisgICAgICAgICAgICAgICAgICAgc2NoZW1hOiBCQUNLVVBfU09VUkNFX1NDSEVNQSwK KyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgfSwKKyAgICAgICAgICAgcmVwb3NpdG9yeTog eworICAgICAgICAgICAgICAgc2NoZW1hOiBSRVBPX1VSTF9TQ0hFTUEsCisgICAgICAgICAgICAg ICBvcHRpb25hbDogdHJ1ZSwKKyAgICAgICAgICAgfSwKKyAgICAgICAgICAga2V5ZmlsZTogewor ICAgICAgICAgICAgICAgc2NoZW1hOiBLRVlGSUxFX1NDSEVNQSwKKyAgICAgICAgICAgICAgIG9w dGlvbmFsOiB0cnVlLAorICAgICAgICAgICB9LAorICAgICAgICAgICAibnVtYmVyLW9mLXJ1bnMi OiB7CisgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogIk51bWJlciBvZiB0aW1lcyB0byByZXBl YXQgdGhlIHJ1biIsCisgICAgICAgICAgICAgICB0eXBlOiBJbnRlZ2VyLAorICAgICAgICAgICAg ICAgb3B0aW9uYWw6IHRydWUsCisgICAgICAgICAgIH0sCisgICAgICAgfQorICAgfQorKV0KKy8v LyBSdW4gYmVuY2htYXJrIHRvIGNvbXBhcmUgcGVyZm9ybWFuY2UgZm9yIGJhY2t1cHMgdXNpbmcg ZGlmZmVyZW50IGNoYW5nZSBkZXRlY3Rpb24gbW9kZXMuCitmbiBkZXRlY3Rpb25fbW9kZV9iZW5j aF9ydW4ocGFyYW06IFZhbHVlKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IG11dCBw YmMgPSBDb21tYW5kOjpuZXcoInByb3htb3gtYmFja3VwLWNsaWVudCIpOworICAgIHBiYy5hcmco ImJhY2t1cCIpOworCisgICAgbGV0IGJhY2t1cHNwZWNfbGlzdCA9IGpzb246OnJlcXVpcmVkX2Fy cmF5X3BhcmFtKCZwYXJhbSwgImJhY2t1cHNwZWMiKT87CisgICAgZm9yIGJhY2t1cHNwZWMgaW4g YmFja3Vwc3BlY19saXN0IHsKKyAgICAgICAgbGV0IGFyZyA9IGJhY2t1cHNwZWMKKyAgICAgICAg ICAgIC5hc19zdHIoKQorICAgICAgICAgICAgLm9rX29yX2Vsc2UofHwgZm9ybWF0X2VyciEoImZh aWxlZCB0byBwYXJzZSBiYWNrdXBzcGVjIikpPzsKKyAgICAgICAgcGJjLmFyZyhhcmcpOworICAg IH0KKworICAgIGlmIGxldCBTb21lKHJlcG8pID0gcGFyYW1bInJlcG9zaXRvcnkiXS5hc19zdHIo KSB7CisgICAgICAgIHBiYy5hcmcoIi0tcmVwb3NpdG9yeSIpOworICAgICAgICBwYmMuYXJnOjo8 JnN0cj4ocmVwbyk7CisgICAgfQorCisgICAgaWYgbGV0IFNvbWUoa2V5ZmlsZSkgPSBwYXJhbVsi a2V5ZmlsZSJdLmFzX3N0cigpIHsKKyAgICAgICAgcGJjLmFyZygiLS1rZXlmaWxlIik7CisgICAg ICAgIHBiYy5hcmc6Ojwmc3RyPihrZXlmaWxlKTsKKyAgICB9CisKKyAgICBsZXQgbnVtYmVyX29m X3J1bnMgPSBtYXRjaCBwYXJhbVsibnVtYmVyX29mX3J1bnMiXS5hc191NjQoKSB7CisgICAgICAg IFNvbWUobikgPT4gbiwKKyAgICAgICAgTm9uZSA9PiBERUZBVUxUX05VTUJFUl9PRl9SVU5TLAor ICAgIH07CisgICAgaWYgbnVtYmVyX29mX3J1bnMgPCAxIHsKKyAgICAgICAgYmFpbCEoIk51bWJl ciBvZiBydW5zIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEsIGFib3J0aW5nLiIpOworICAgIH0KKwor ICAgIC8vIEZpcnN0IHJ1biBpcyBhbiBpbml0aWFsIHJ1biB0byBtYWtlIHN1cmUgYWxsIGNodW5r cyBhcmUgcHJlc2VudCBhbHJlYWR5LCByZWR1Y2Ugc2lkZSBlZmZlY3RzCisgICAgLy8gYnkgZmls ZXN5c3RlbSBjYWNoZXMgZWNjLgorICAgIGxldCBfc3RhdHNfaW5pdGlhbCA9IGRvX3J1bigmbXV0 IHBiYywgMSk/OworCisgICAgcHJpbnRsbiEoIlxuU3RhcnRpbmcgYmVuY2htYXJraW5nIGJhY2t1 cHMgd2l0aCByZWd1bGFyIGRldGVjdGlvbiBtb2RlLi4uXG4iKTsKKyAgICBsZXQgc3RhdHNfcmVn ID0gZG9fcnVuKCZtdXQgcGJjLCBudW1iZXJfb2ZfcnVucyk/OworCisgICAgLy8gTWFrZSBzdXJl IHRvIGhhdmUgYSB2YWxpZCByZWZlcmVuY2Ugd2l0aCBjYXRhbG9nIGZyb21hdCB2ZXJzaW9uIDIK KyAgICBwYmMuYXJnKCItLWNoYW5nZS1kZXRlY3Rpb24tbW9kZT1tZXRhZGF0YSIpOworICAgIGxl dCBfc3RhdHNfaW5pdGlhbCA9IGRvX3J1bigmbXV0IHBiYywgMSk/OworCisgICAgcHJpbnRsbiEo IlxuU3RhcnRpbmcgYmVuY2htYXJraW5nIGJhY2t1cHMgd2l0aCBtZXRhZGF0YSBkZXRlY3Rpb24g bW9kZS4uLlxuIik7CisgICAgbGV0IHN0YXRzX21ldGEgPSBkb19ydW4oJm11dCBwYmMsIG51bWJl cl9vZl9ydW5zKT87CisKKyAgICBwcmludGxuISgiXG5Db21wbGV0ZWQgYmVuY2htYXJrIHdpdGgg e251bWJlcl9vZl9ydW5zfSBydW5zIGZvciBlYWNoIHRlc3RlZCBtb2RlLiIpOworICAgIHByaW50 bG4hKCJcbkNvbXBsZXRlZCByZWd1bGFyIGJhY2t1cCB3aXRoOiIpOworICAgIHByaW50bG4hKCJU b3RhbCBydW50aW1lOiB7Oi4yfSBzIiwgc3RhdHNfcmVnLnRvdGFsKTsKKyAgICBwcmludGxuISgi QXZlcmFnZTogezouMn0gwrEgezouMn0gcyIsIHN0YXRzX3JlZy5hdmcsIHN0YXRzX3JlZy5zdGRk ZXYpOworICAgIHByaW50bG4hKCJNaW46IHs6LjJ9IHMiLCBzdGF0c19yZWcubWluKTsKKyAgICBw cmludGxuISgiTWF4OiB7Oi4yfSBzIiwgc3RhdHNfcmVnLm1heCk7CisKKyAgICBwcmludGxuISgi XG5Db21wbGV0ZWQgbWV0YWRhdGEgZGV0ZWN0aW9uIG1vZGUgYmFja3VwIHdpdGg6Iik7CisgICAg cHJpbnRsbiEoIlRvdGFsIHJ1bnRpbWU6IHs6LjJ9IHMiLCBzdGF0c19tZXRhLnRvdGFsKTsKKyAg ICBwcmludGxuISgKKyAgICAgICAgIkF2ZXJhZ2U6IHs6LjJ9IMKxIHs6LjJ9IHMiLAorICAgICAg ICBzdGF0c19tZXRhLmF2Zywgc3RhdHNfbWV0YS5zdGRkZXYKKyAgICApOworICAgIHByaW50bG4h KCJNaW46IHs6LjJ9IHMiLCBzdGF0c19tZXRhLm1pbik7CisgICAgcHJpbnRsbiEoIk1heDogezou Mn0gcyIsIHN0YXRzX21ldGEubWF4KTsKKworICAgIGxldCBkaWZmX3N0ZGRldiA9CisgICAgICAg ICgoc3RhdHNfbWV0YS5zdGRkZXYgKiBzdGF0c19tZXRhLnN0ZGRldikgKyAoc3RhdHNfcmVnLnN0 ZGRldiAqIHN0YXRzX3JlZy5zdGRkZXYpKS5zcXJ0KCk7CisgICAgcHJpbnRsbiEoIlxuRGlmZmVy ZW5jZXMgKG1ldGFkYXRhIGJhc2VkIC0gcmVndWxhcik6Iik7CisgICAgcHJpbnRsbiEoCisgICAg ICAgICJEZWx0YSB0b3RhbCBydW50aW1lOiB7Oi4yfSBzICh7Oi4yfSAlKSIsCisgICAgICAgIHN0 YXRzX21ldGEudG90YWwgLSBzdGF0c19yZWcudG90YWwsCisgICAgICAgIDEwMC4wICogKHN0YXRz X21ldGEudG90YWwgLyBzdGF0c19yZWcudG90YWwgLSAxLjApLAorICAgICk7CisgICAgcHJpbnRs biEoCisgICAgICAgICJEZWx0YSBhdmVyYWdlOiB7Oi4yfSDCsSB7Oi4yfSBzICh7Oi4yfSAlKSIs CisgICAgICAgIHN0YXRzX21ldGEuYXZnIC0gc3RhdHNfcmVnLmF2ZywKKyAgICAgICAgZGlmZl9z dGRkZXYsCisgICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEuYXZnIC8gc3RhdHNfcmVnLmF2ZyAt IDEuMCksCisgICAgKTsKKyAgICBwcmludGxuISgKKyAgICAgICAgIkRlbHRhIG1pbjogezouMn0g cyAoezouMn0gJSkiLAorICAgICAgICBzdGF0c19tZXRhLm1pbiAtIHN0YXRzX3JlZy5taW4sCisg ICAgICAgIDEwMC4wICogKHN0YXRzX21ldGEubWluIC8gc3RhdHNfcmVnLm1pbiAtIDEuMCksCisg ICAgKTsKKyAgICBwcmludGxuISgKKyAgICAgICAgIkRlbHRhIG1heDogezouMn0gcyAoezouMn0g JSkiLAorICAgICAgICBzdGF0c19tZXRhLm1heCAtIHN0YXRzX3JlZy5tYXgsCisgICAgICAgIDEw MC4wICogKHN0YXRzX21ldGEubWF4IC8gc3RhdHNfcmVnLm1heCAtIDEuMCksCisgICAgKTsKKwor ICAgIE9rKCgpKQorfQorCitmbiBkb19ydW4oY21kOiAmbXV0IENvbW1hbmQsIG5fcnVuczogdTY0 KSAtPiBSZXN1bHQ8U3RhdGlzdGljcywgRXJyb3I+IHsKKyAgICAvLyBBdm9pZCBjb25zZWN1dGl2 ZSBzbmFwc2hvdCB0aW1lc3RhbXBzIGNvbGxpc2lvbgorICAgIHRocmVhZDo6c2xlZXAodGltZTo6 RHVyYXRpb246OmZyb21fbWlsbGlzKDEwMDApKTsKKyAgICBsZXQgbXV0IHRpbWluZ3MgPSBWZWM6 OndpdGhfY2FwYWNpdHkobl9ydW5zIGFzIHVzaXplKTsKKyAgICBmb3IgaXRlcmF0aW9uIGluIDEu Lm5fcnVucyArIDEgeworICAgICAgICBsZXQgc3RhcnQgPSBzdGQ6OnRpbWU6OlN5c3RlbVRpbWU6 Om5vdygpOworICAgICAgICBsZXQgbXV0IGNoaWxkID0gY21kLnNwYXduKCk/OworICAgICAgICBs ZXQgZXhpdF9jb2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICAgICAgbGV0IGVsYXBzZWQgPSBzdGFy dC5lbGFwc2VkKCk/OworICAgICAgICB0aW1pbmdzLnB1c2goZWxhcHNlZCk7CisgICAgICAgIGlm ICFleGl0X2NvZGUuc3VjY2VzcygpIHsKKyAgICAgICAgICAgIGJhaWwhKCJSdW4gbnVtYmVyIHtp dGVyYXRpb259IG9mIHtuX3J1bnN9IGZhaWxlZCwgYWJvcnRpbmcuIik7CisgICAgICAgIH0KKyAg ICB9CisKKyAgICBPayhzdGF0aXN0aWNzKHRpbWluZ3MpKQorfQorCitzdHJ1Y3QgU3RhdGlzdGlj cyB7CisgICAgdG90YWw6IGY2NCwKKyAgICBhdmc6IGY2NCwKKyAgICBzdGRkZXY6IGY2NCwKKyAg ICBtaW46IGY2NCwKKyAgICBtYXg6IGY2NCwKK30KKworZm4gc3RhdGlzdGljcyh0aW1pbmdzOiBW ZWM8c3RkOjp0aW1lOjpEdXJhdGlvbj4pIC0+IFN0YXRpc3RpY3MgeworICAgIGxldCB0b3RhbCA9 IHRpbWluZ3MKKyAgICAgICAgLml0ZXIoKQorICAgICAgICAuZm9sZCgwZjY0LCB8c3VtLCB0aW1l fCBzdW0gKyB0aW1lLmFzX3NlY3NfZjY0KCkpOworICAgIGxldCBhdmcgPSB0b3RhbCAvIHRpbWlu Z3MubGVuKCkgYXMgZjY0OworICAgIGxldCB2YXIgPSAxZjY0IC8gKHRpbWluZ3MubGVuKCkgLSAx KSBhcyBmNjQKKyAgICAgICAgKiB0aW1pbmdzLml0ZXIoKS5mb2xkKDBmNjQsIHxzcV9zdW0sIHRp bWV8IHsKKyAgICAgICAgICAgIGxldCBkaWZmID0gdGltZS5hc19zZWNzX2Y2NCgpIC0gYXZnOwor ICAgICAgICAgICAgc3Ffc3VtICsgZGlmZiAqIGRpZmYKKyAgICAgICAgfSk7CisgICAgbGV0IHN0 ZGRldiA9IHZhci5zcXJ0KCk7CisgICAgbGV0IG1pbiA9IHRpbWluZ3MuaXRlcigpLm1pbigpLnVu d3JhcCgpLmFzX3NlY3NfZjY0KCk7CisgICAgbGV0IG1heCA9IHRpbWluZ3MuaXRlcigpLm1heCgp LnVud3JhcCgpLmFzX3NlY3NfZjY0KCk7CisKKyAgICBTdGF0aXN0aWNzIHsKKyAgICAgICAgdG90 YWwsCisgICAgICAgIGF2ZywKKyAgICAgICAgc3RkZGV2LAorICAgICAgICBtaW4sCisgICAgICAg IG1heCwKKyAgICB9Cit9CisKKyNbYXBpKAorICAgIGlucHV0OiB7CisgICAgICAgIHByb3BlcnRp ZXM6IHsKKyAgICAgICAgICAgIHRhcmdldDogeworICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9u OiAidGFyZ2V0IHBhdGggdG8gcHJlcGFyZSB0ZXN0IGRhdGEuIiwKKyAgICAgICAgICAgIH0sCisg ICAgICAgIH0sCisgICAgfSwKKyldCisvLy8gUHJlcGFyZSBmaWxlcyByZXF1aXJlZCBmb3IgZGV0 ZWN0aW9uIG1vZGUgYmFja3VwIGJlbmNobWFya3MuCitmbiBkZXRlY3Rpb25fbW9kZV9iZW5jaF9w cmVwYXJlKHRhcmdldDogU3RyaW5nKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAgbGV0IGxp bnV4X3JlcG9fdGFyZ2V0ID0gZm9ybWF0ISgie3RhcmdldH0vbGludXgiKTsKKyAgICBsZXQgY29j b19kYXRhc2V0X3RhcmdldCA9IGZvcm1hdCEoInt0YXJnZXR9L2NvY28iKTsKKyAgICBnaXRfY2xv bmUoTElOVVhfR0lUX1JFUE9TSVRPUlksIGxpbnV4X3JlcG9fdGFyZ2V0LmFzX3N0cigpKT87Cisg ICAgZ2l0X2NoZWNrb3V0KExJTlVYX0dJVF9UQUcsIGxpbnV4X3JlcG9fdGFyZ2V0LmFzX3N0cigp KT87CisgICAgd2dldF9kb3dubG9hZChDT0NPX0RBVEFTRVRfU1JDX1VSTCwgY29jb19kYXRhc2V0 X3RhcmdldC5hc19zdHIoKSk/OworCisgICAgT2soKCkpCit9CisKK2ZuIGdpdF9jbG9uZShyZXBv OiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKKyAgICBwcmludGxu ISgiQ2FsbGluZyBnaXQgY2xvbmUgZm9yICd7cmVwb30nLiIpOworICAgIGxldCB0YXJnZXRfZ2l0 ID0gZm9ybWF0ISgie3RhcmdldH0vLmdpdCIpOworICAgIGxldCBwYXRoID0gUGF0aDo6bmV3KCZ0 YXJnZXRfZ2l0KTsKKyAgICBpZiBsZXQgT2sodHJ1ZSkgPSBwYXRoLnRyeV9leGlzdHMoKSB7Cisg ICAgICAgIHByaW50bG4hKCJUYXJnZXQgJ3t0YXJnZXR9JyBhbHJlYWR5IGNvbnRhaW5zIGEgZ2l0 IHJlcG9zaXRvcnksIHNraXAuIik7CisgICAgICAgIHJldHVybiBPaygoKSk7CisgICAgfQorCisg ICAgbGV0IG11dCBnaXQgPSBDb21tYW5kOjpuZXcoImdpdCIpOworICAgIGdpdC5hcmdzKFsiY2xv bmUiLCByZXBvLCB0YXJnZXRdKTsKKworICAgIGxldCBtdXQgY2hpbGQgPSBnaXQuc3Bhd24oKT87 CisgICAgbGV0IGV4aXRfY29kZSA9IGNoaWxkLndhaXQoKT87CisgICAgaWYgZXhpdF9jb2RlLnN1 Y2Nlc3MoKSB7CisgICAgICAgIHByaW50bG4hKCJnaXQgY2xvbmUgZmluaXNoZWQgd2l0aCBzdWNj ZXNzLiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIGJhaWwhKCJnaXQgY2xvbmUgZmFpbGVkIGZv ciAne3RhcmdldH0nLiIpOworICAgIH0KKworICAgIE9rKCgpKQorfQorCitmbiBnaXRfY2hlY2tv dXQoY2hlY2tvdXRfdGFyZ2V0OiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJy b3I+IHsKKyAgICBwcmludGxuISgiQ2FsbGluZyBnaXQgY2hlY2tvdXQgJ3tjaGVja291dF90YXJn ZXR9Jy4iKTsKKyAgICBsZXQgbXV0IGdpdCA9IENvbW1hbmQ6Om5ldygiZ2l0Iik7CisgICAgZ2l0 LmFyZ3MoWyItQyIsIHRhcmdldCwgImNoZWNrb3V0IiwgY2hlY2tvdXRfdGFyZ2V0XSk7CisKKyAg ICBsZXQgbXV0IGNoaWxkID0gZ2l0LnNwYXduKCk/OworICAgIGxldCBleGl0X2NvZGUgPSBjaGls ZC53YWl0KCk/OworICAgIGlmIGV4aXRfY29kZS5zdWNjZXNzKCkgeworICAgICAgICBwcmludGxu ISgiZ2l0IGNoZWNrb3V0IGZpbmlzaGVkIHdpdGggc3VjY2Vzcy4iKTsKKyAgICB9IGVsc2Ugewor ICAgICAgICBiYWlsISgiZ2l0IGNoZWNrb3V0ICd7Y2hlY2tvdXRfdGFyZ2V0fScgZmFpbGVkIGZv ciAne3RhcmdldH0nLiIpOworICAgIH0KKyAgICBPaygoKSkKK30KKworZm4gd2dldF9kb3dubG9h ZChzb3VyY2VfdXJsOiAmc3RyLCB0YXJnZXQ6ICZzdHIpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsK KyAgICBsZXQgcGF0aCA9IFBhdGg6Om5ldygmdGFyZ2V0KTsKKyAgICBpZiBsZXQgT2sodHJ1ZSkg PSBwYXRoLnRyeV9leGlzdHMoKSB7CisgICAgICAgIHByaW50bG4hKCJUYXJnZXQgJ3t0YXJnZXR9 JyBhbHJlYWR5IGV4aXN0cywgc2tpcC4iKTsKKyAgICAgICAgcmV0dXJuIE9rKCgpKTsKKyAgICB9 CisgICAgbGV0IHppcCA9IGZvcm1hdCEoInt9L3VubGFiZWxlZDIwMTcuemlwIiwgdGFyZ2V0KTsK KyAgICBsZXQgcGF0aCA9IFBhdGg6Om5ldygmemlwKTsKKyAgICBpZiAhcGF0aC50cnlfZXhpc3Rz KCk/IHsKKyAgICAgICAgcHJpbnRsbiEoIkRvd25sb2FkIGFyY2hpdmUgdXNpbmcgd2dldCBmcm9t ICd7c291cmNlX3VybH0nIHRvICd7dGFyZ2V0fScuIik7CisgICAgICAgIGxldCBtdXQgd2dldCA9 IENvbW1hbmQ6Om5ldygid2dldCIpOworICAgICAgICB3Z2V0LmFyZ3MoWyItUCIsIHRhcmdldCwg c291cmNlX3VybF0pOworCisgICAgICAgIGxldCBtdXQgY2hpbGQgPSB3Z2V0LnNwYXduKCk/Owor ICAgICAgICBsZXQgZXhpdF9jb2RlID0gY2hpbGQud2FpdCgpPzsKKyAgICAgICAgaWYgZXhpdF9j b2RlLnN1Y2Nlc3MoKSB7CisgICAgICAgICAgICBwcmludGxuISgiRG93bmxvYWQgZmluaXNoZWQg d2l0aCBzdWNjZXNzLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYmFpbCEoIkZh aWxlZCB0byBkb3dubG9hZCAne3NvdXJjZV91cmx9JyB0byAne3RhcmdldH0nLiIpOworICAgICAg ICB9CisgICAgICAgIHJldHVybiBPaygoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJpbnRs biEoIlRhcmdldCAne3RhcmdldH0nIGFscmVhZHkgY29udGFpbnMgZG93bmxvYWQsIHNraXAgZG93 bmxvYWQuIik7CisgICAgfQorCisgICAgbGV0IG11dCB1bnppcCA9IENvbW1hbmQ6Om5ldygidW56 aXAiKTsKKyAgICB1bnppcC5hcmdzKFsmemlwLCAiLWQiLCB0YXJnZXRdKTsKKworICAgIGxldCBt dXQgY2hpbGQgPSB1bnppcC5zcGF3bigpPzsKKyAgICBsZXQgZXhpdF9jb2RlID0gY2hpbGQud2Fp dCgpPzsKKyAgICBpZiBleGl0X2NvZGUuc3VjY2VzcygpIHsKKyAgICAgICAgcHJpbnRsbiEoIkV4 dHJhY3RpbmcgemlwIGFyY2hpdmUgZmluaXNoZWQgd2l0aCBzdWNjZXNzLiIpOworICAgIH0gZWxz ZSB7CisgICAgICAgIGJhaWwhKCJGYWlsZWQgdG8gZXh0cmFjdCB6aXAgYXJjaGl2ZSAne3ppcH0n IHRvICd7dGFyZ2V0fScuIik7CisgICAgfQorICAgIE9rKCgpKQorfQpkaWZmIC0tZ2l0IGEvcHJv eG1veC1iYWNrdXAtdGVzdC1zdWl0ZS9zcmMvbWFpbi5ycyBiL3Byb3htb3gtYmFja3VwLXRlc3Qt c3VpdGUvc3JjL21haW4ucnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4w YTViNDM2YTgKLS0tIC9kZXYvbnVsbAorKysgYi9wcm94bW94LWJhY2t1cC10ZXN0LXN1aXRlL3Ny Yy9tYWluLnJzCkBAIC0wLDAgKzEsMTcgQEAKK3VzZSBwcm94bW94X3JvdXRlcjo6Y2xpOjoqOwor Cittb2QgZGV0ZWN0aW9uX21vZGVfYmVuY2g7CisKK2ZuIG1haW4oKSB7CisgICAgbGV0IGNtZF9k ZWYgPSBDbGlDb21tYW5kTWFwOjpuZXcoKS5pbnNlcnQoCisgICAgICAgICJkZXRlY3Rpb24tbW9k ZS1iZW5jaCIsCisgICAgICAgIGRldGVjdGlvbl9tb2RlX2JlbmNoOjpkZXRlY3Rpb25fbW9kZV9i ZW5jaF9tZ3RtX2NsaSgpLAorICAgICk7CisKKyAgICBsZXQgcnBjZW52ID0gQ2xpRW52aXJvbm1l bnQ6Om5ldygpOworICAgIHJ1bl9jbGlfY29tbWFuZCgKKyAgICAgICAgY21kX2RlZiwKKyAgICAg ICAgcnBjZW52LAorICAgICAgICBTb21lKHxmdXR1cmV8IHByb3htb3hfYXN5bmM6OnJ1bnRpbWU6 Om1haW4oZnV0dXJlKSksCisgICAgKTsKK30KLS0gCjIuMzkuMgoKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBsaXN0CnBi cy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1i aW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK