From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 72EC71FF15C for ; Fri, 11 Jul 2025 18:26:59 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9680214C40; Fri, 11 Jul 2025 18:27:21 +0200 (CEST) From: =?UTF-8?q?Michael=20K=C3=B6ppl?= To: pve-devel@lists.proxmox.com Date: Fri, 11 Jul 2025 18:27:05 +0200 Message-ID: <20250711162711.133248-4-m.koeppl@proxmox.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250711162711.133248-1-m.koeppl@proxmox.com> References: <20250711162711.133248-1-m.koeppl@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.014 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: [pve-devel] [PATCH installer v4 2/8] move RAID setup checks to RAID level enum implementations 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: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" SW5zdGVhZCBvZiBoYXZpbmcgcGFydHMgb2YgdGhlIFJBSUQgc2V0dXAgY2hlY2tzIHNjYXR0ZXJl ZCBpbiBtdWx0aXBsZQpwbGFjZXMsIG1vdmUgdGhlIGNvcmUgb2YgdGhlIGNoZWNrcyB0byBpbXBs ZW1lbnRhdGlvbnMgb2YgdGhlClpmc1JhaWRMZXZlbCBhbmQgQnRyZnNSYWlkTGV2ZWwgZW51bXMu IEFkZGl0aW9uYWxseSwgYWxzbyBtb3ZlIHRoZSB1bml0CnRlc3RzIGFjY29yZGluZ2x5LgoKU2ln bmVkLW9mZi1ieTogTWljaGFlbCBLw7ZwcGwgPG0ua29lcHBsQHByb3htb3guY29tPgotLS0KIHBy b3htb3gtaW5zdGFsbGVyLWNvbW1vbi9zcmMvZGlza19jaGVja3MucnMgfCAxNjMgKy0tLS0tLS0t LS0tLS0tLS0tLS0KIHByb3htb3gtaW5zdGFsbGVyLWNvbW1vbi9zcmMvb3B0aW9ucy5ycyAgICAg fCAxMTUgKysrKysrKysrKysrKysKIHByb3htb3gtdHVpLWluc3RhbGxlci9zcmMvdmlld3MvYm9v dGRpc2sucnMgfCAgMTMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTMwIGluc2VydGlvbnMoKyksIDE2 MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9wcm94bW94LWluc3RhbGxlci1jb21tb24vc3Jj L2Rpc2tfY2hlY2tzLnJzIGIvcHJveG1veC1pbnN0YWxsZXItY29tbW9uL3NyYy9kaXNrX2NoZWNr cy5ycwppbmRleCBlY2M0M2JkLi42MmQ1ZWFiIDEwMDY0NAotLS0gYS9wcm94bW94LWluc3RhbGxl ci1jb21tb24vc3JjL2Rpc2tfY2hlY2tzLnJzCisrKyBiL3Byb3htb3gtaW5zdGFsbGVyLWNvbW1v bi9zcmMvZGlza19jaGVja3MucnMKQEAgLTEsNiArMSw2IEBACiB1c2Ugc3RkOjpjb2xsZWN0aW9u czo6SGFzaFNldDsKIAotdXNlIGNyYXRlOjpvcHRpb25zOjp7QnRyZnNSYWlkTGV2ZWwsIERpc2ss IFpmc1JhaWRMZXZlbH07Cit1c2UgY3JhdGU6Om9wdGlvbnM6OkRpc2s7CiB1c2UgY3JhdGU6OnNl dHVwOjpCb290VHlwZTsKIAogLy8vIENoZWNrcyBhIGxpc3Qgb2YgZGlza3MgZm9yIGR1cGxpY2F0 ZSBlbnRyaWVzLCB1c2luZyB0aGVpciBpbmRleCBhcyBrZXkuCkBAIC00OSwxMDggKzQ5LDEyIEBA IHB1YiBmbiBjaGVja19kaXNrc180a25fbGVnYWN5X2Jvb3QoYm9vdF90eXBlOiBCb290VHlwZSwg ZGlza3M6ICZbRGlza10pIC0+IFJlc3VsCiAgICAgT2soKCkpCiB9CiAKLS8vLyBDaGVja3Mgd2hl dGhlciBhIHVzZXItc3VwcGxpZWQgWkZTIFJBSUQgc2V0dXAgaXMgdmFsaWQgb3Igbm90LCBzdWNo IGFzIGRpc2sgc2l6ZXMgYW5kbWluaW11bQotLy8vIG51bWJlciBvZiBkaXNrcy4KLS8vLwotLy8v ICMgQXJndW1lbnRzCi0vLy8KLS8vLyAqIGBsZXZlbGAgLSBUaGUgdGFyZ2V0ZWQgWkZTIFJBSUQg bGV2ZWwgYnkgdGhlIHVzZXIuCi0vLy8gKiBgZGlza3NgIC0gTGlzdCBvZiBkaXNrcyBkZXNpZ25h dGVkIGFzIFJBSUQgdGFyZ2V0cy4KLXB1YiBmbiBjaGVja196ZnNfcmFpZF9jb25maWcobGV2ZWw6 IFpmc1JhaWRMZXZlbCwgZGlza3M6ICZbRGlza10pIC0+IFJlc3VsdDwoKSwgU3RyaW5nPiB7Ci0g ICAgLy8gU2VlIGFsc28gUHJveG1veC9JbnN0YWxsLnBtOmdldF96ZnNfcmFpZF9zZXR1cCgpCi0K LSAgICBsZXQgY2hlY2tfbWlycm9yX3NpemUgPSB8ZGlzazE6ICZEaXNrLCBkaXNrMjogJkRpc2t8 IHsKLSAgICAgICAgaWYgKGRpc2sxLnNpemUgLSBkaXNrMi5zaXplKS5hYnMoKSA+IGRpc2sxLnNp emUgLyAxMC4gewotICAgICAgICAgICAgRXJyKGZvcm1hdCEoCi0gICAgICAgICAgICAgICAgIk1p cnJvcmVkIGRpc2tzIG11c3QgaGF2ZSBzYW1lIHNpemU6XG5cbiAgKiB7ZGlzazF9XG4gICoge2Rp c2syfSIKLSAgICAgICAgICAgICkpCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBPaygo KSkKLSAgICAgICAgfQotICAgIH07Ci0KLSAgICBtYXRjaCBsZXZlbCB7Ci0gICAgICAgIFpmc1Jh aWRMZXZlbDo6UmFpZDAgPT4gY2hlY2tfcmFpZF9taW5fZGlza3MoZGlza3MsIDEpPywKLSAgICAg ICAgWmZzUmFpZExldmVsOjpSYWlkMSA9PiB7Ci0gICAgICAgICAgICBjaGVja19yYWlkX21pbl9k aXNrcyhkaXNrcywgMik/OwotICAgICAgICAgICAgZm9yIGRpc2sgaW4gZGlza3MgewotICAgICAg ICAgICAgICAgIGNoZWNrX21pcnJvcl9zaXplKCZkaXNrc1swXSwgZGlzayk/OwotICAgICAgICAg ICAgfQotICAgICAgICB9Ci0gICAgICAgIFpmc1JhaWRMZXZlbDo6UmFpZDEwID0+IHsKLSAgICAg ICAgICAgIGNoZWNrX3JhaWRfbWluX2Rpc2tzKGRpc2tzLCA0KT87Ci0KLSAgICAgICAgICAgIGlm IGRpc2tzLmxlbigpICUgMiAhPSAwIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gRXJyKGZvcm1h dCEoCi0gICAgICAgICAgICAgICAgICAgICJOZWVkcyBhbiBldmVuIG51bWJlciBvZiBkaXNrcywg Y3VycmVudGx5IHNlbGVjdGVkOiB7fSIsCi0gICAgICAgICAgICAgICAgICAgIGRpc2tzLmxlbigp LAotICAgICAgICAgICAgICAgICkpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAvLyBQ YWlycyBuZWVkIHRvIGhhdmUgdGhlIHNhbWUgc2l6ZQotICAgICAgICAgICAgZm9yIGkgaW4gKDAu LmRpc2tzLmxlbigpKS5zdGVwX2J5KDIpIHsKLSAgICAgICAgICAgICAgICBjaGVja19taXJyb3Jf c2l6ZSgmZGlza3NbaV0sICZkaXNrc1tpICsgMV0pPzsKLSAgICAgICAgICAgIH0KLSAgICAgICAg fQotICAgICAgICAvLyBGb3IgUkFJRC1aOiBtaW5pbXVtIGRpc2tzIG51bWJlciBpcyBsZXZlbCAr IDIKLSAgICAgICAgWmZzUmFpZExldmVsOjpSYWlkWiA9PiB7Ci0gICAgICAgICAgICBjaGVja19y YWlkX21pbl9kaXNrcyhkaXNrcywgMyk/OwotICAgICAgICAgICAgZm9yIGRpc2sgaW4gZGlza3Mg ewotICAgICAgICAgICAgICAgIGNoZWNrX21pcnJvcl9zaXplKCZkaXNrc1swXSwgZGlzayk/Owot ICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIFpmc1JhaWRMZXZlbDo6UmFpZFoyID0+ IHsKLSAgICAgICAgICAgIGNoZWNrX3JhaWRfbWluX2Rpc2tzKGRpc2tzLCA0KT87Ci0gICAgICAg ICAgICBmb3IgZGlzayBpbiBkaXNrcyB7Ci0gICAgICAgICAgICAgICAgY2hlY2tfbWlycm9yX3Np emUoJmRpc2tzWzBdLCBkaXNrKT87Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg WmZzUmFpZExldmVsOjpSYWlkWjMgPT4gewotICAgICAgICAgICAgY2hlY2tfcmFpZF9taW5fZGlz a3MoZGlza3MsIDUpPzsKLSAgICAgICAgICAgIGZvciBkaXNrIGluIGRpc2tzIHsKLSAgICAgICAg ICAgICAgICBjaGVja19taXJyb3Jfc2l6ZSgmZGlza3NbMF0sIGRpc2spPzsKLSAgICAgICAgICAg IH0KLSAgICAgICAgfQotICAgIH0KLQotICAgIE9rKCgpKQotfQotCi0vLy8gQ2hlY2tzIHdoZXRo ZXIgYSB1c2VyLXN1cHBsaWVkIEJ0cmZzIFJBSUQgc2V0dXAgaXMgdmFsaWQgb3Igbm90LCBzdWNo IGFzIG1pbmltdW0KLS8vLyBudW1iZXIgb2YgZGlza3MuCi0vLy8KLS8vLyAjIEFyZ3VtZW50cwot Ly8vCi0vLy8gKiBgbGV2ZWxgIC0gVGhlIHRhcmdldGVkIEJ0cmZzIFJBSUQgbGV2ZWwgYnkgdGhl IHVzZXIuCi0vLy8gKiBgZGlza3NgIC0gTGlzdCBvZiBkaXNrcyBkZXNpZ25hdGVkIGFzIFJBSUQg dGFyZ2V0cy4KLXB1YiBmbiBjaGVja19idHJmc19yYWlkX2NvbmZpZyhsZXZlbDogQnRyZnNSYWlk TGV2ZWwsIGRpc2tzOiAmW0Rpc2tdKSAtPiBSZXN1bHQ8KCksIFN0cmluZz4gewotICAgIC8vIFNl ZSBhbHNvIFByb3htb3gvSW5zdGFsbC5wbTpnZXRfYnRyZnNfcmFpZF9zZXR1cCgpCi0KLSAgICBt YXRjaCBsZXZlbCB7Ci0gICAgICAgIEJ0cmZzUmFpZExldmVsOjpSYWlkMCA9PiBjaGVja19yYWlk X21pbl9kaXNrcyhkaXNrcywgMSk/LAotICAgICAgICBCdHJmc1JhaWRMZXZlbDo6UmFpZDEgPT4g Y2hlY2tfcmFpZF9taW5fZGlza3MoZGlza3MsIDIpPywKLSAgICAgICAgQnRyZnNSYWlkTGV2ZWw6 OlJhaWQxMCA9PiBjaGVja19yYWlkX21pbl9kaXNrcyhkaXNrcywgNCk/LAotICAgIH0KLQotICAg IE9rKCgpKQotfQotCiAjW2NmZyh0ZXN0KV0KIG1vZCB0ZXN0cyB7CiAgICAgdXNlIHN1cGVyOjoq OwogCi0gICAgZm4gZHVtbXlfZGlzayhpbmRleDogdXNpemUpIC0+IERpc2sgewotICAgICAgICBE aXNrIHsKLSAgICAgICAgICAgIGluZGV4OiBpbmRleC50b19zdHJpbmcoKSwKLSAgICAgICAgICAg IHBhdGg6IGZvcm1hdCEoIi9kZXYvZHVtbXl7aW5kZXh9IiksCi0gICAgICAgICAgICBtb2RlbDog U29tZSgiRHVtbXkgZGlzayIudG9fb3duZWQoKSksCi0gICAgICAgICAgICBzaXplOiAxMDI0LiAq IDEwMjQuICogMTAyNC4gKiA4LiwKLSAgICAgICAgICAgIGJsb2NrX3NpemU6IFNvbWUoNTEyKSwK LSAgICAgICAgfQotICAgIH0KLQogICAgIGZuIGR1bW15X2Rpc2tzKG51bTogdXNpemUpIC0+IFZl YzxEaXNrPiB7Ci0gICAgICAgICgwLi5udW0pLm1hcChkdW1teV9kaXNrKS5jb2xsZWN0KCkKKyAg ICAgICAgKDAuLm51bSkubWFwKERpc2s6OmR1bW15KS5jb2xsZWN0KCkKICAgICB9CiAKICAgICAj W3Rlc3RdCkBAIC0xNTgsMTMgKzYyLDEzIEBAIG1vZCB0ZXN0cyB7CiAgICAgICAgIGFzc2VydCEo Y2hlY2tfZm9yX2R1cGxpY2F0ZV9kaXNrcygmZHVtbXlfZGlza3MoMikpLmlzX29rKCkpOwogICAg ICAgICBhc3NlcnRfZXEhKAogICAgICAgICAgICAgY2hlY2tfZm9yX2R1cGxpY2F0ZV9kaXNrcygm WwotICAgICAgICAgICAgICAgIGR1bW15X2Rpc2soMCksCi0gICAgICAgICAgICAgICAgZHVtbXlf ZGlzaygxKSwKLSAgICAgICAgICAgICAgICBkdW1teV9kaXNrKDIpLAotICAgICAgICAgICAgICAg IGR1bW15X2Rpc2soMiksCi0gICAgICAgICAgICAgICAgZHVtbXlfZGlzaygzKSwKKyAgICAgICAg ICAgICAgICBEaXNrOjpkdW1teSgwKSwKKyAgICAgICAgICAgICAgICBEaXNrOjpkdW1teSgxKSwK KyAgICAgICAgICAgICAgICBEaXNrOjpkdW1teSgyKSwKKyAgICAgICAgICAgICAgICBEaXNrOjpk dW1teSgyKSwKKyAgICAgICAgICAgICAgICBEaXNrOjpkdW1teSgzKSwKICAgICAgICAgICAgIF0p LAotICAgICAgICAgICAgRXJyKCZkdW1teV9kaXNrKDIpKSwKKyAgICAgICAgICAgIEVycigmRGlz azo6ZHVtbXkoMikpLAogICAgICAgICApOwogICAgIH0KIApAQCAtMTg5LDU1ICs5Myw0IEBAIG1v ZCB0ZXN0cyB7CiAgICAgICAgICAgICBhc3NlcnQhKGNoZWNrX2Rpc2tzXzRrbl9sZWdhY3lfYm9v dChCb290VHlwZTo6RWZpLCAmZGlza3MpLmlzX29rKCkpOwogICAgICAgICB9CiAgICAgfQotCi0g ICAgI1t0ZXN0XQotICAgIGZuIGJ0cmZzX3JhaWQoKSB7Ci0gICAgICAgIGxldCBkaXNrcyA9IGR1 bW15X2Rpc2tzKDEwKTsKLQotICAgICAgICBhc3NlcnQhKGNoZWNrX2J0cmZzX3JhaWRfY29uZmln KEJ0cmZzUmFpZExldmVsOjpSYWlkMCwgJltdKS5pc19lcnIoKSk7Ci0gICAgICAgIGFzc2VydCEo Y2hlY2tfYnRyZnNfcmFpZF9jb25maWcoQnRyZnNSYWlkTGV2ZWw6OlJhaWQwLCAmZGlza3NbLi4x XSkuaXNfb2soKSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfYnRyZnNfcmFpZF9jb25maWcoQnRy ZnNSYWlkTGV2ZWw6OlJhaWQwLCAmZGlza3MpLmlzX29rKCkpOwotCi0gICAgICAgIGFzc2VydCEo Y2hlY2tfYnRyZnNfcmFpZF9jb25maWcoQnRyZnNSYWlkTGV2ZWw6OlJhaWQxLCAmW10pLmlzX2Vy cigpKTsKLSAgICAgICAgYXNzZXJ0IShjaGVja19idHJmc19yYWlkX2NvbmZpZyhCdHJmc1JhaWRM ZXZlbDo6UmFpZDEsICZkaXNrc1suLjFdKS5pc19lcnIoKSk7Ci0gICAgICAgIGFzc2VydCEoY2hl Y2tfYnRyZnNfcmFpZF9jb25maWcoQnRyZnNSYWlkTGV2ZWw6OlJhaWQxLCAmZGlza3NbLi4yXSku aXNfb2soKSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfYnRyZnNfcmFpZF9jb25maWcoQnRyZnNS YWlkTGV2ZWw6OlJhaWQxLCAmZGlza3MpLmlzX29rKCkpOwotCi0gICAgICAgIGFzc2VydCEoY2hl Y2tfYnRyZnNfcmFpZF9jb25maWcoQnRyZnNSYWlkTGV2ZWw6OlJhaWQxMCwgJltdKS5pc19lcnIo KSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfYnRyZnNfcmFpZF9jb25maWcoQnRyZnNSYWlkTGV2 ZWw6OlJhaWQxMCwgJmRpc2tzWy4uM10pLmlzX2VycigpKTsKLSAgICAgICAgYXNzZXJ0IShjaGVj a19idHJmc19yYWlkX2NvbmZpZyhCdHJmc1JhaWRMZXZlbDo6UmFpZDEwLCAmZGlza3NbLi40XSku aXNfb2soKSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfYnRyZnNfcmFpZF9jb25maWcoQnRyZnNS YWlkTGV2ZWw6OlJhaWQxMCwgJmRpc2tzKS5pc19vaygpKTsKLSAgICB9Ci0KLSAgICAjW3Rlc3Rd Ci0gICAgZm4gemZzX3JhaWQoKSB7Ci0gICAgICAgIGxldCBkaXNrcyA9IGR1bW15X2Rpc2tzKDEw KTsKLQotICAgICAgICBhc3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6 OlJhaWQwLCAmW10pLmlzX2VycigpKTsKLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNfcmFpZF9j b25maWcoWmZzUmFpZExldmVsOjpSYWlkMCwgJmRpc2tzWy4uMV0pLmlzX29rKCkpOwotICAgICAg ICBhc3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJhaWQwLCAmZGlz a3MpLmlzX29rKCkpOwotCi0gICAgICAgIGFzc2VydCEoY2hlY2tfemZzX3JhaWRfY29uZmlnKFpm c1JhaWRMZXZlbDo6UmFpZDEsICZbXSkuaXNfZXJyKCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNr X3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJhaWQxLCAmZGlza3NbLi4yXSkuaXNfb2so KSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfemZzX3JhaWRfY29uZmlnKFpmc1JhaWRMZXZlbDo6 UmFpZDEsICZkaXNrcykuaXNfb2soKSk7Ci0KLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNfcmFp ZF9jb25maWcoWmZzUmFpZExldmVsOjpSYWlkMTAsICZbXSkuaXNfZXJyKCkpOwotICAgICAgICBh c3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJhaWQxMCwgJmR1bW15 X2Rpc2tzKDQpKS5pc19vaygpKTsKLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNfcmFpZF9jb25m aWcoWmZzUmFpZExldmVsOjpSYWlkMTAsICZkaXNrcykuaXNfb2soKSk7Ci0KLSAgICAgICAgYXNz ZXJ0IShjaGVja196ZnNfcmFpZF9jb25maWcoWmZzUmFpZExldmVsOjpSYWlkWiwgJltdKS5pc19l cnIoKSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfemZzX3JhaWRfY29uZmlnKFpmc1JhaWRMZXZl bDo6UmFpZFosICZkaXNrc1suLjJdKS5pc19lcnIoKSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tf emZzX3JhaWRfY29uZmlnKFpmc1JhaWRMZXZlbDo6UmFpZFosICZkaXNrc1suLjNdKS5pc19vaygp KTsKLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNfcmFpZF9jb25maWcoWmZzUmFpZExldmVsOjpS YWlkWiwgJmRpc2tzKS5pc19vaygpKTsKLQotICAgICAgICBhc3NlcnQhKGNoZWNrX3pmc19yYWlk X2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJhaWRaMiwgJltdKS5pc19lcnIoKSk7Ci0gICAgICAgIGFz c2VydCEoY2hlY2tfemZzX3JhaWRfY29uZmlnKFpmc1JhaWRMZXZlbDo6UmFpZFoyLCAmZGlza3Nb Li4zXSkuaXNfZXJyKCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyha ZnNSYWlkTGV2ZWw6OlJhaWRaMiwgJmRpc2tzWy4uNF0pLmlzX29rKCkpOwotICAgICAgICBhc3Nl cnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJhaWRaMiwgJmRpc2tzKS5p c19vaygpKTsKLQotICAgICAgICBhc3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyhaZnNSYWlk TGV2ZWw6OlJhaWRaMywgJltdKS5pc19lcnIoKSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfemZz X3JhaWRfY29uZmlnKFpmc1JhaWRMZXZlbDo6UmFpZFozLCAmZGlza3NbLi40XSkuaXNfZXJyKCkp OwotICAgICAgICBhc3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJh aWRaMywgJmRpc2tzWy4uNV0pLmlzX29rKCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNrX3pmc19y YWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJhaWRaMywgJmRpc2tzKS5pc19vaygpKTsKLSAgICB9 CiB9CmRpZmYgLS1naXQgYS9wcm94bW94LWluc3RhbGxlci1jb21tb24vc3JjL29wdGlvbnMucnMg Yi9wcm94bW94LWluc3RhbGxlci1jb21tb24vc3JjL29wdGlvbnMucnMKaW5kZXggOTI3MWI4Yi4u MzA0MThjMiAxMDA2NDQKLS0tIGEvcHJveG1veC1pbnN0YWxsZXItY29tbW9uL3NyYy9vcHRpb25z LnJzCisrKyBiL3Byb3htb3gtaW5zdGFsbGVyLWNvbW1vbi9zcmMvb3B0aW9ucy5ycwpAQCAtNiw2 ICs2LDcgQEAgdXNlIHN0ZDo6c3RyOjpGcm9tU3RyOwogdXNlIHN0ZDo6c3luYzo6T25jZUxvY2s7 CiB1c2Ugc3RkOjp7Y21wLCBmbXR9OwogCit1c2UgY3JhdGU6OmRpc2tfY2hlY2tzOjpjaGVja19y YWlkX21pbl9kaXNrczsKIHVzZSBjcmF0ZTo6c2V0dXA6OntMb2NhbGVJbmZvLCBOZXR3b3JrSW5m bywgUnVudGltZUluZm8sIFNldHVwSW5mb307CiB1c2UgY3JhdGU6OnV0aWxzOjp7Q2lkckFkZHJl c3MsIEZxZG59OwogCkBAIC0yOCw2ICsyOSwxNyBAQCBpbXBsIEJ0cmZzUmFpZExldmVsIHsKICAg ICAgICAgICAgIEJ0cmZzUmFpZExldmVsOjpSYWlkMTAgPT4gNCwKICAgICAgICAgfQogICAgIH0K KworICAgIC8vLyBDaGVja3Mgd2hldGhlciBhIHVzZXItc3VwcGxpZWQgQnRyZnMgUkFJRCBzZXR1 cCBpcyB2YWxpZCBvciBub3QsIHN1Y2ggYXMgbWluaW11bQorICAgIC8vLyBudW1iZXIgb2YgZGlz a3MuCisgICAgLy8vCisgICAgLy8vICMgQXJndW1lbnRzCisgICAgLy8vCisgICAgLy8vICogYGRp c2tzYCAtIExpc3Qgb2YgZGlza3MgZGVzaWduYXRlZCBhcyBSQUlEIHRhcmdldHMuCisgICAgcHVi IGZuIGNoZWNrX3JhaWRfZGlza3Nfc2V0dXAoJnNlbGYsIGRpc2tzOiAmW0Rpc2tdKSAtPiBSZXN1 bHQ8KCksIFN0cmluZz4geworICAgICAgICBjaGVja19yYWlkX21pbl9kaXNrcyhkaXNrcywgc2Vs Zi5nZXRfbWluX2Rpc2tzKCkpPzsKKyAgICAgICAgT2soKCkpCisgICAgfQogfQogCiBzZXJkZV9w bGFpbjo6ZGVyaXZlX2Rpc3BsYXlfZnJvbV9zZXJpYWxpemUhKEJ0cmZzUmFpZExldmVsKTsKQEAg LTY5LDYgKzgxLDUzIEBAIGltcGwgWmZzUmFpZExldmVsIHsKICAgICAgICAgICAgIFpmc1JhaWRM ZXZlbDo6UmFpZFozID0+IDUsCiAgICAgICAgIH0KICAgICB9CisKKyAgICBmbiBjaGVja19taXJy b3Jfc2l6ZSgmc2VsZiwgZGlzazE6ICZEaXNrLCBkaXNrMjogJkRpc2spIC0+IFJlc3VsdDwoKSwg U3RyaW5nPiB7CisgICAgICAgIGlmIChkaXNrMS5zaXplIC0gZGlzazIuc2l6ZSkuYWJzKCkgPiBk aXNrMS5zaXplIC8gMTAuIHsKKyAgICAgICAgICAgIEVycihmb3JtYXQhKAorICAgICAgICAgICAg ICAgICJNaXJyb3JlZCBkaXNrcyBtdXN0IGhhdmUgc2FtZSBzaXplOlxuXG4gICoge2Rpc2sxfVxu ICAqIHtkaXNrMn0iCisgICAgICAgICAgICApKQorICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgT2soKCkpCisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLy8gQ2hlY2tzIHdoZXRoZXIgYSB1 c2VyLXN1cHBsaWVkIFpGUyBSQUlEIHNldHVwIGlzIHZhbGlkIG9yIG5vdCwgc3VjaCBhcyBkaXNr IHNpemVzIGFuZG1pbmltdW0KKyAgICAvLy8gbnVtYmVyIG9mIGRpc2tzLgorICAgIC8vLworICAg IC8vLyAjIEFyZ3VtZW50cworICAgIC8vLworICAgIC8vLyAqIGBkaXNrc2AgLSBMaXN0IG9mIGRp c2tzIGRlc2lnbmF0ZWQgYXMgUkFJRCB0YXJnZXRzLgorICAgIHB1YiBmbiBjaGVja19yYWlkX2Rp c2tzX3NldHVwKCZzZWxmLCBkaXNrczogJltEaXNrXSkgLT4gUmVzdWx0PCgpLCBTdHJpbmc+IHsK KyAgICAgICAgY2hlY2tfcmFpZF9taW5fZGlza3MoZGlza3MsIHNlbGYuZ2V0X21pbl9kaXNrcygp KT87CisKKyAgICAgICAgbWF0Y2ggc2VsZiB7CisgICAgICAgICAgICBaZnNSYWlkTGV2ZWw6OlJh aWQwID0+IHt9CisgICAgICAgICAgICBaZnNSYWlkTGV2ZWw6OlJhaWQxMCA9PiB7CisgICAgICAg ICAgICAgICAgaWYgZGlza3MubGVuKCkgJSAyICE9IDAgeworICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gRXJyKGZvcm1hdCEoCisgICAgICAgICAgICAgICAgICAgICAgICAiTmVlZHMgYW4gZXZl biBudW1iZXIgb2YgZGlza3MsIGN1cnJlbnRseSBzZWxlY3RlZDoge30iLAorICAgICAgICAgICAg ICAgICAgICAgICAgZGlza3MubGVuKCksCisgICAgICAgICAgICAgICAgICAgICkpOworICAgICAg ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8vIFBhaXJzIG5lZWQgdG8gaGF2ZSB0aGUg c2FtZSBzaXplCisgICAgICAgICAgICAgICAgZm9yIGkgaW4gKDAuLmRpc2tzLmxlbigpKS5zdGVw X2J5KDIpIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGVja19taXJyb3Jfc2l6ZSgmZGlz a3NbaV0sICZkaXNrc1tpICsgMV0pPzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9 CisgICAgICAgICAgICBaZnNSYWlkTGV2ZWw6OlJhaWQxCisgICAgICAgICAgICB8IFpmc1JhaWRM ZXZlbDo6UmFpZFoKKyAgICAgICAgICAgIHwgWmZzUmFpZExldmVsOjpSYWlkWjIKKyAgICAgICAg ICAgIHwgWmZzUmFpZExldmVsOjpSYWlkWjMgPT4geworICAgICAgICAgICAgICAgIGZvciBkaXNr IGluIGRpc2tzIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGVja19taXJyb3Jfc2l6ZSgm ZGlza3NbMF0sIGRpc2spPzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg ICAgIH0KKworICAgICAgICBPaygoKSkKKyAgICB9CiB9CiAKIHNlcmRlX3BsYWluOjpkZXJpdmVf ZGlzcGxheV9mcm9tX3NlcmlhbGl6ZSEoWmZzUmFpZExldmVsKTsKQEAgLTMxNiw2ICszNzUsMTkg QEAgcHViIHN0cnVjdCBEaXNrIHsKICAgICBwdWIgYmxvY2tfc2l6ZTogT3B0aW9uPHVzaXplPiwK IH0KIAoraW1wbCBEaXNrIHsKKyAgICAjW2NmZyh0ZXN0KV0KKyAgICBwdWIgZm4gZHVtbXkoaW5k ZXg6IHVzaXplKSAtPiBEaXNrIHsKKyAgICAgICAgRGlzayB7CisgICAgICAgICAgICBpbmRleDog aW5kZXgudG9fc3RyaW5nKCksCisgICAgICAgICAgICBwYXRoOiBmb3JtYXQhKCIvZGV2L2R1bW15 e2luZGV4fSIpLAorICAgICAgICAgICAgbW9kZWw6IFNvbWUoIkR1bW15IGRpc2siLnRvX293bmVk KCkpLAorICAgICAgICAgICAgc2l6ZTogMTAyNC4gKiAxMDI0LiAqIDEwMjQuICogOC4sCisgICAg ICAgICAgICBibG9ja19zaXplOiBTb21lKDUxMiksCisgICAgICAgIH0KKyAgICB9Cit9CisKIGlt cGwgZm10OjpEaXNwbGF5IGZvciBEaXNrIHsKICAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgZm10 OjpGb3JtYXR0ZXI8J18+KSAtPiBmbXQ6OlJlc3VsdCB7CiAgICAgICAgIC8vIFRPRE86IEZvcm1h dCBzaXplcyBwcm9wZXJseSB3aXRoIGBwcm94bW94LWh1bWFuLWJ5dGVgIG9uY2UgbWVyZ2VkCkBA IC01NDIsNiArNjE0LDQ5IEBAIG1vZCB0ZXN0cyB7CiAgICAgdXNlIHN0ZDo6Y29sbGVjdGlvbnM6 OkJUcmVlTWFwOwogICAgIHVzZSBzdGQ6Om5ldDo6e0lwQWRkciwgSXB2NEFkZHJ9OwogCisgICAg Zm4gZHVtbXlfZGlza3MobnVtOiB1c2l6ZSkgLT4gVmVjPERpc2s+IHsKKyAgICAgICAgKDAuLm51 bSkubWFwKERpc2s6OmR1bW15KS5jb2xsZWN0KCkKKyAgICB9CisKKyAgICAjW3Rlc3RdCisgICAg Zm4gYnRyZnNfcmFpZCgpIHsKKyAgICAgICAgbGV0IGRpc2tzID0gZHVtbXlfZGlza3MoMTApOwor CisgICAgICAgIGxldCBidHJmc19yYWlkX3ZhcmlhbnRzID0gWworICAgICAgICAgICAgQnRyZnNS YWlkTGV2ZWw6OlJhaWQwLAorICAgICAgICAgICAgQnRyZnNSYWlkTGV2ZWw6OlJhaWQxLAorICAg ICAgICAgICAgQnRyZnNSYWlkTGV2ZWw6OlJhaWQxMCwKKyAgICAgICAgXTsKKworICAgICAgICBm b3IgdiBpbiBidHJmc19yYWlkX3ZhcmlhbnRzIHsKKyAgICAgICAgICAgIGFzc2VydCEodi5jaGVj a19yYWlkX2Rpc2tzX3NldHVwKCZbXSkuaXNfZXJyKCkpOworICAgICAgICAgICAgYXNzZXJ0ISh2 LmNoZWNrX3JhaWRfZGlza3Nfc2V0dXAoJmRpc2tzWy4udi5nZXRfbWluX2Rpc2tzKCkgLSAxXSku aXNfZXJyKCkpOworICAgICAgICAgICAgYXNzZXJ0ISh2LmNoZWNrX3JhaWRfZGlza3Nfc2V0dXAo JmRpc2tzWy4udi5nZXRfbWluX2Rpc2tzKCldKS5pc19vaygpKTsKKyAgICAgICAgICAgIGFzc2Vy dCEodi5jaGVja19yYWlkX2Rpc2tzX3NldHVwKCZkaXNrcykuaXNfb2soKSk7CisgICAgICAgIH0K KyAgICB9CisKKyAgICAjW3Rlc3RdCisgICAgZm4gemZzX3JhaWQoKSB7CisgICAgICAgIGxldCBk aXNrcyA9IGR1bW15X2Rpc2tzKDEwKTsKKworICAgICAgICBsZXQgemZzX3JhaWRfdmFyaWFudHMg PSBbCisgICAgICAgICAgICBaZnNSYWlkTGV2ZWw6OlJhaWQwLAorICAgICAgICAgICAgWmZzUmFp ZExldmVsOjpSYWlkMSwKKyAgICAgICAgICAgIFpmc1JhaWRMZXZlbDo6UmFpZDEwLAorICAgICAg ICAgICAgWmZzUmFpZExldmVsOjpSYWlkWiwKKyAgICAgICAgICAgIFpmc1JhaWRMZXZlbDo6UmFp ZFoyLAorICAgICAgICAgICAgWmZzUmFpZExldmVsOjpSYWlkWjMsCisgICAgICAgIF07CisKKyAg ICAgICAgZm9yIHYgaW4gemZzX3JhaWRfdmFyaWFudHMgeworICAgICAgICAgICAgYXNzZXJ0ISh2 LmNoZWNrX3JhaWRfZGlza3Nfc2V0dXAoJltdKS5pc19lcnIoKSk7CisgICAgICAgICAgICBhc3Nl cnQhKHYuY2hlY2tfcmFpZF9kaXNrc19zZXR1cCgmZGlza3NbLi52LmdldF9taW5fZGlza3MoKSAt IDFdKS5pc19lcnIoKSk7CisgICAgICAgICAgICBhc3NlcnQhKHYuY2hlY2tfcmFpZF9kaXNrc19z ZXR1cCgmZGlza3NbLi52LmdldF9taW5fZGlza3MoKV0pLmlzX29rKCkpOworICAgICAgICAgICAg YXNzZXJ0ISh2LmNoZWNrX3JhaWRfZGlza3Nfc2V0dXAoJmRpc2tzKS5pc19vaygpKTsKKyAgICAg ICAgfQorICAgIH0KKwogICAgIGZuIG1vY2tfc2V0dXBfbmV0d29yaygpIC0+IChTZXR1cEluZm8s IE5ldHdvcmtJbmZvKSB7CiAgICAgICAgIGxldCBtdXQgaW50ZXJmYWNlcyA9IEJUcmVlTWFwOjpu ZXcoKTsKICAgICAgICAgaW50ZXJmYWNlcy5pbnNlcnQoCmRpZmYgLS1naXQgYS9wcm94bW94LXR1 aS1pbnN0YWxsZXIvc3JjL3ZpZXdzL2Jvb3RkaXNrLnJzIGIvcHJveG1veC10dWktaW5zdGFsbGVy L3NyYy92aWV3cy9ib290ZGlzay5ycwppbmRleCAzMTNhM2M5Li42ZjM0NzhmIDEwMDY0NAotLS0g YS9wcm94bW94LXR1aS1pbnN0YWxsZXIvc3JjL3ZpZXdzL2Jvb3RkaXNrLnJzCisrKyBiL3Byb3ht b3gtdHVpLWluc3RhbGxlci9zcmMvdmlld3MvYm9vdGRpc2sucnMKQEAgLTE3LDEwICsxNyw3IEBA IHVzZSBjcmF0ZTo6SW5zdGFsbGVyU3RhdGU7CiB1c2UgY3JhdGU6Om9wdGlvbnM6OkZTX1RZUEVT OwogCiB1c2UgcHJveG1veF9pbnN0YWxsZXJfY29tbW9uOjp7Ci0gICAgZGlza19jaGVja3M6OnsK LSAgICAgICAgY2hlY2tfYnRyZnNfcmFpZF9jb25maWcsIGNoZWNrX2Rpc2tzXzRrbl9sZWdhY3lf Ym9vdCwgY2hlY2tfZm9yX2R1cGxpY2F0ZV9kaXNrcywKLSAgICAgICAgY2hlY2tfemZzX3JhaWRf Y29uZmlnLAotICAgIH0sCisgICAgZGlza19jaGVja3M6OntjaGVja19kaXNrc180a25fbGVnYWN5 X2Jvb3QsIGNoZWNrX2Zvcl9kdXBsaWNhdGVfZGlza3N9LAogICAgIG9wdGlvbnM6OnsKICAgICAg ICAgQWR2YW5jZWRCb290ZGlza09wdGlvbnMsIEJUUkZTX0NPTVBSRVNTX09QVElPTlMsIEJvb3Rk aXNrT3B0aW9ucywgQnRyZnNCb290ZGlza09wdGlvbnMsCiAgICAgICAgIERpc2ssIEZzVHlwZSwg THZtQm9vdGRpc2tPcHRpb25zLCBaRlNfQ0hFQ0tTVU1fT1BUSU9OUywgWkZTX0NPTVBSRVNTX09Q VElPTlMsCkBAIC0yNzUsNyArMjcyLDkgQEAgaW1wbCBBZHZhbmNlZEJvb3RkaXNrT3B0aW9uc1Zp ZXcgewogICAgICAgICAgICAgICAgIC5va19vcigiRmFpbGVkIHRvIHJldHJpZXZlIGFkdmFuY2Vk IGJvb3RkaXNrIG9wdGlvbnMiKT87CiAKICAgICAgICAgICAgIGlmIGxldCBGc1R5cGU6Olpmcyhs ZXZlbCkgPSBmc3R5cGUgewotICAgICAgICAgICAgICAgIGNoZWNrX3pmc19yYWlkX2NvbmZpZyhs ZXZlbCwgJmRpc2tzKS5tYXBfZXJyKHxlcnJ8IGZvcm1hdCEoIntmc3R5cGV9OiB7ZXJyfSIpKT87 CisgICAgICAgICAgICAgICAgbGV2ZWwKKyAgICAgICAgICAgICAgICAgICAgLmNoZWNrX3JhaWRf ZGlza3Nfc2V0dXAoJmRpc2tzKQorICAgICAgICAgICAgICAgICAgICAubWFwX2Vycih8ZXJyfCBm b3JtYXQhKCJ7ZnN0eXBlfToge2Vycn0iKSk/OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAg ICBPayhCb290ZGlza09wdGlvbnMgewpAQCAtMjg5LDcgKzI4OCw5IEBAIGltcGwgQWR2YW5jZWRC b290ZGlza09wdGlvbnNWaWV3IHsKICAgICAgICAgICAgICAgICAub2tfb3IoIkZhaWxlZCB0byBy ZXRyaWV2ZSBhZHZhbmNlZCBib290ZGlzayBvcHRpb25zIik/OwogCiAgICAgICAgICAgICBpZiBs ZXQgRnNUeXBlOjpCdHJmcyhsZXZlbCkgPSBmc3R5cGUgewotICAgICAgICAgICAgICAgIGNoZWNr X2J0cmZzX3JhaWRfY29uZmlnKGxldmVsLCAmZGlza3MpLm1hcF9lcnIofGVycnwgZm9ybWF0ISgi e2ZzdHlwZX06IHtlcnJ9IikpPzsKKyAgICAgICAgICAgICAgICBsZXZlbAorICAgICAgICAgICAg ICAgICAgICAuY2hlY2tfcmFpZF9kaXNrc19zZXR1cCgmZGlza3MpCisgICAgICAgICAgICAgICAg ICAgIC5tYXBfZXJyKHxlcnJ8IGZvcm1hdCEoIntmc3R5cGV9OiB7ZXJyfSIpKT87CiAgICAgICAg ICAgICB9CiAKICAgICAgICAgICAgIE9rKEJvb3RkaXNrT3B0aW9ucyB7Ci0tIAoyLjQ3LjIKCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHZlLWRldmVs IG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5w cm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==