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 C8D601FF16B for ; Tue, 15 Jul 2025 11:39:54 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A764137B8C; Tue, 15 Jul 2025 11:40:33 +0200 (CEST) From: =?UTF-8?q?Michael=20K=C3=B6ppl?= To: pve-devel@lists.proxmox.com Date: Tue, 15 Jul 2025 11:40:15 +0200 Message-ID: <20250715094021.154914-4-m.koeppl@proxmox.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250715094021.154914-1-m.koeppl@proxmox.com> References: <20250715094021.154914-1-m.koeppl@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.013 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_MSPIKE_H2 0.001 Average reputation (+2) 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 v5 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 fCAxMjcgKysrKysrKysrKysrKysrCiBwcm94bW94LXR1aS1pbnN0YWxsZXIvc3JjL3ZpZXdzL2Jv b3RkaXNrLnJzIHwgIDEzICstCiAzIGZpbGVzIGNoYW5nZWQsIDE0MiBpbnNlcnRpb25zKCspLCAx NjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvcHJveG1veC1pbnN0YWxsZXItY29tbW9uL3Ny Yy9kaXNrX2NoZWNrcy5ycyBiL3Byb3htb3gtaW5zdGFsbGVyLWNvbW1vbi9zcmMvZGlza19jaGVj a3MucnMKaW5kZXggZWNjNDNiZC4uNjJkNWVhYiAxMDA2NDQKLS0tIGEvcHJveG1veC1pbnN0YWxs ZXItY29tbW9uL3NyYy9kaXNrX2NoZWNrcy5ycworKysgYi9wcm94bW94LWluc3RhbGxlci1jb21t b24vc3JjL2Rpc2tfY2hlY2tzLnJzCkBAIC0xLDYgKzEsNiBAQAogdXNlIHN0ZDo6Y29sbGVjdGlv bnM6Okhhc2hTZXQ7CiAKLXVzZSBjcmF0ZTo6b3B0aW9uczo6e0J0cmZzUmFpZExldmVsLCBEaXNr LCBaZnNSYWlkTGV2ZWx9OwordXNlIGNyYXRlOjpvcHRpb25zOjpEaXNrOwogdXNlIGNyYXRlOjpz ZXR1cDo6Qm9vdFR5cGU7CiAKIC8vLyBDaGVja3MgYSBsaXN0IG9mIGRpc2tzIGZvciBkdXBsaWNh dGUgZW50cmllcywgdXNpbmcgdGhlaXIgaW5kZXggYXMga2V5LgpAQCAtNDksMTA4ICs0OSwxMiBA QCBwdWIgZm4gY2hlY2tfZGlza3NfNGtuX2xlZ2FjeV9ib290KGJvb3RfdHlwZTogQm9vdFR5cGUs IGRpc2tzOiAmW0Rpc2tdKSAtPiBSZXN1bAogICAgIE9rKCgpKQogfQogCi0vLy8gQ2hlY2tzIHdo ZXRoZXIgYSB1c2VyLXN1cHBsaWVkIFpGUyBSQUlEIHNldHVwIGlzIHZhbGlkIG9yIG5vdCwgc3Vj aCBhcyBkaXNrIHNpemVzIGFuZG1pbmltdW0KLS8vLyBudW1iZXIgb2YgZGlza3MuCi0vLy8KLS8v LyAjIEFyZ3VtZW50cwotLy8vCi0vLy8gKiBgbGV2ZWxgIC0gVGhlIHRhcmdldGVkIFpGUyBSQUlE IGxldmVsIGJ5IHRoZSB1c2VyLgotLy8vICogYGRpc2tzYCAtIExpc3Qgb2YgZGlza3MgZGVzaWdu YXRlZCBhcyBSQUlEIHRhcmdldHMuCi1wdWIgZm4gY2hlY2tfemZzX3JhaWRfY29uZmlnKGxldmVs OiBaZnNSYWlkTGV2ZWwsIGRpc2tzOiAmW0Rpc2tdKSAtPiBSZXN1bHQ8KCksIFN0cmluZz4gewot ICAgIC8vIFNlZSBhbHNvIFByb3htb3gvSW5zdGFsbC5wbTpnZXRfemZzX3JhaWRfc2V0dXAoKQot Ci0gICAgbGV0IGNoZWNrX21pcnJvcl9zaXplID0gfGRpc2sxOiAmRGlzaywgZGlzazI6ICZEaXNr fCB7Ci0gICAgICAgIGlmIChkaXNrMS5zaXplIC0gZGlzazIuc2l6ZSkuYWJzKCkgPiBkaXNrMS5z aXplIC8gMTAuIHsKLSAgICAgICAgICAgIEVycihmb3JtYXQhKAotICAgICAgICAgICAgICAgICJN aXJyb3JlZCBkaXNrcyBtdXN0IGhhdmUgc2FtZSBzaXplOlxuXG4gICoge2Rpc2sxfVxuICAqIHtk aXNrMn0iCi0gICAgICAgICAgICApKQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgT2so KCkpCi0gICAgICAgIH0KLSAgICB9OwotCi0gICAgbWF0Y2ggbGV2ZWwgewotICAgICAgICBaZnNS YWlkTGV2ZWw6OlJhaWQwID0+IGNoZWNrX3JhaWRfbWluX2Rpc2tzKGRpc2tzLCAxKT8sCi0gICAg ICAgIFpmc1JhaWRMZXZlbDo6UmFpZDEgPT4gewotICAgICAgICAgICAgY2hlY2tfcmFpZF9taW5f ZGlza3MoZGlza3MsIDIpPzsKLSAgICAgICAgICAgIGZvciBkaXNrIGluIGRpc2tzIHsKLSAgICAg ICAgICAgICAgICBjaGVja19taXJyb3Jfc2l6ZSgmZGlza3NbMF0sIGRpc2spPzsKLSAgICAgICAg ICAgIH0KLSAgICAgICAgfQotICAgICAgICBaZnNSYWlkTGV2ZWw6OlJhaWQxMCA9PiB7Ci0gICAg ICAgICAgICBjaGVja19yYWlkX21pbl9kaXNrcyhkaXNrcywgNCk/OwotCi0gICAgICAgICAgICBp ZiBkaXNrcy5sZW4oKSAlIDIgIT0gMCB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEVycihmb3Jt YXQhKAotICAgICAgICAgICAgICAgICAgICAiTmVlZHMgYW4gZXZlbiBudW1iZXIgb2YgZGlza3Ms IGN1cnJlbnRseSBzZWxlY3RlZDoge30iLAotICAgICAgICAgICAgICAgICAgICBkaXNrcy5sZW4o KSwKLSAgICAgICAgICAgICAgICApKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLy8g UGFpcnMgbmVlZCB0byBoYXZlIHRoZSBzYW1lIHNpemUKLSAgICAgICAgICAgIGZvciBpIGluICgw Li5kaXNrcy5sZW4oKSkuc3RlcF9ieSgyKSB7Ci0gICAgICAgICAgICAgICAgY2hlY2tfbWlycm9y X3NpemUoJmRpc2tzW2ldLCAmZGlza3NbaSArIDFdKT87Ci0gICAgICAgICAgICB9Ci0gICAgICAg IH0KLSAgICAgICAgLy8gRm9yIFJBSUQtWjogbWluaW11bSBkaXNrcyBudW1iZXIgaXMgbGV2ZWwg KyAyCi0gICAgICAgIFpmc1JhaWRMZXZlbDo6UmFpZFogPT4gewotICAgICAgICAgICAgY2hlY2tf cmFpZF9taW5fZGlza3MoZGlza3MsIDMpPzsKLSAgICAgICAgICAgIGZvciBkaXNrIGluIGRpc2tz IHsKLSAgICAgICAgICAgICAgICBjaGVja19taXJyb3Jfc2l6ZSgmZGlza3NbMF0sIGRpc2spPzsK LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBaZnNSYWlkTGV2ZWw6OlJhaWRaMiA9 PiB7Ci0gICAgICAgICAgICBjaGVja19yYWlkX21pbl9kaXNrcyhkaXNrcywgNCk/OwotICAgICAg ICAgICAgZm9yIGRpc2sgaW4gZGlza3MgewotICAgICAgICAgICAgICAgIGNoZWNrX21pcnJvcl9z aXplKCZkaXNrc1swXSwgZGlzayk/OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg IFpmc1JhaWRMZXZlbDo6UmFpZFozID0+IHsKLSAgICAgICAgICAgIGNoZWNrX3JhaWRfbWluX2Rp c2tzKGRpc2tzLCA1KT87Ci0gICAgICAgICAgICBmb3IgZGlzayBpbiBkaXNrcyB7Ci0gICAgICAg ICAgICAgICAgY2hlY2tfbWlycm9yX3NpemUoJmRpc2tzWzBdLCBkaXNrKT87Ci0gICAgICAgICAg ICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBPaygoKSkKLX0KLQotLy8vIENoZWNrcyB3aGV0 aGVyIGEgdXNlci1zdXBwbGllZCBCdHJmcyBSQUlEIHNldHVwIGlzIHZhbGlkIG9yIG5vdCwgc3Vj aCBhcyBtaW5pbXVtCi0vLy8gbnVtYmVyIG9mIGRpc2tzLgotLy8vCi0vLy8gIyBBcmd1bWVudHMK LS8vLwotLy8vICogYGxldmVsYCAtIFRoZSB0YXJnZXRlZCBCdHJmcyBSQUlEIGxldmVsIGJ5IHRo ZSB1c2VyLgotLy8vICogYGRpc2tzYCAtIExpc3Qgb2YgZGlza3MgZGVzaWduYXRlZCBhcyBSQUlE IHRhcmdldHMuCi1wdWIgZm4gY2hlY2tfYnRyZnNfcmFpZF9jb25maWcobGV2ZWw6IEJ0cmZzUmFp ZExldmVsLCBkaXNrczogJltEaXNrXSkgLT4gUmVzdWx0PCgpLCBTdHJpbmc+IHsKLSAgICAvLyBT ZWUgYWxzbyBQcm94bW94L0luc3RhbGwucG06Z2V0X2J0cmZzX3JhaWRfc2V0dXAoKQotCi0gICAg bWF0Y2ggbGV2ZWwgewotICAgICAgICBCdHJmc1JhaWRMZXZlbDo6UmFpZDAgPT4gY2hlY2tfcmFp ZF9taW5fZGlza3MoZGlza3MsIDEpPywKLSAgICAgICAgQnRyZnNSYWlkTGV2ZWw6OlJhaWQxID0+ IGNoZWNrX3JhaWRfbWluX2Rpc2tzKGRpc2tzLCAyKT8sCi0gICAgICAgIEJ0cmZzUmFpZExldmVs OjpSYWlkMTAgPT4gY2hlY2tfcmFpZF9taW5fZGlza3MoZGlza3MsIDQpPywKLSAgICB9Ci0KLSAg ICBPaygoKSkKLX0KLQogI1tjZmcodGVzdCldCiBtb2QgdGVzdHMgewogICAgIHVzZSBzdXBlcjo6 KjsKIAotICAgIGZuIGR1bW15X2Rpc2soaW5kZXg6IHVzaXplKSAtPiBEaXNrIHsKLSAgICAgICAg RGlzayB7Ci0gICAgICAgICAgICBpbmRleDogaW5kZXgudG9fc3RyaW5nKCksCi0gICAgICAgICAg ICBwYXRoOiBmb3JtYXQhKCIvZGV2L2R1bW15e2luZGV4fSIpLAotICAgICAgICAgICAgbW9kZWw6 IFNvbWUoIkR1bW15IGRpc2siLnRvX293bmVkKCkpLAotICAgICAgICAgICAgc2l6ZTogMTAyNC4g KiAxMDI0LiAqIDEwMjQuICogOC4sCi0gICAgICAgICAgICBibG9ja19zaXplOiBTb21lKDUxMiks Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBmbiBkdW1teV9kaXNrcyhudW06IHVzaXplKSAtPiBW ZWM8RGlzaz4gewotICAgICAgICAoMC4ubnVtKS5tYXAoZHVtbXlfZGlzaykuY29sbGVjdCgpCisg ICAgICAgICgwLi5udW0pLm1hcChEaXNrOjpkdW1teSkuY29sbGVjdCgpCiAgICAgfQogCiAgICAg I1t0ZXN0XQpAQCAtMTU4LDEzICs2MiwxMyBAQCBtb2QgdGVzdHMgewogICAgICAgICBhc3NlcnQh KGNoZWNrX2Zvcl9kdXBsaWNhdGVfZGlza3MoJmR1bW15X2Rpc2tzKDIpKS5pc19vaygpKTsKICAg ICAgICAgYXNzZXJ0X2VxISgKICAgICAgICAgICAgIGNoZWNrX2Zvcl9kdXBsaWNhdGVfZGlza3Mo JlsKLSAgICAgICAgICAgICAgICBkdW1teV9kaXNrKDApLAotICAgICAgICAgICAgICAgIGR1bW15 X2Rpc2soMSksCi0gICAgICAgICAgICAgICAgZHVtbXlfZGlzaygyKSwKLSAgICAgICAgICAgICAg ICBkdW1teV9kaXNrKDIpLAotICAgICAgICAgICAgICAgIGR1bW15X2Rpc2soMyksCisgICAgICAg ICAgICAgICAgRGlzazo6ZHVtbXkoMCksCisgICAgICAgICAgICAgICAgRGlzazo6ZHVtbXkoMSks CisgICAgICAgICAgICAgICAgRGlzazo6ZHVtbXkoMiksCisgICAgICAgICAgICAgICAgRGlzazo6 ZHVtbXkoMiksCisgICAgICAgICAgICAgICAgRGlzazo6ZHVtbXkoMyksCiAgICAgICAgICAgICBd KSwKLSAgICAgICAgICAgIEVycigmZHVtbXlfZGlzaygyKSksCisgICAgICAgICAgICBFcnIoJkRp c2s6OmR1bW15KDIpKSwKICAgICAgICAgKTsKICAgICB9CiAKQEAgLTE4OSw1NSArOTMsNCBAQCBt b2QgdGVzdHMgewogICAgICAgICAgICAgYXNzZXJ0IShjaGVja19kaXNrc180a25fbGVnYWN5X2Jv b3QoQm9vdFR5cGU6OkVmaSwgJmRpc2tzKS5pc19vaygpKTsKICAgICAgICAgfQogICAgIH0KLQot ICAgICNbdGVzdF0KLSAgICBmbiBidHJmc19yYWlkKCkgewotICAgICAgICBsZXQgZGlza3MgPSBk dW1teV9kaXNrcygxMCk7Ci0KLSAgICAgICAgYXNzZXJ0IShjaGVja19idHJmc19yYWlkX2NvbmZp ZyhCdHJmc1JhaWRMZXZlbDo6UmFpZDAsICZbXSkuaXNfZXJyKCkpOwotICAgICAgICBhc3NlcnQh KGNoZWNrX2J0cmZzX3JhaWRfY29uZmlnKEJ0cmZzUmFpZExldmVsOjpSYWlkMCwgJmRpc2tzWy4u MV0pLmlzX29rKCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNrX2J0cmZzX3JhaWRfY29uZmlnKEJ0 cmZzUmFpZExldmVsOjpSYWlkMCwgJmRpc2tzKS5pc19vaygpKTsKLQotICAgICAgICBhc3NlcnQh KGNoZWNrX2J0cmZzX3JhaWRfY29uZmlnKEJ0cmZzUmFpZExldmVsOjpSYWlkMSwgJltdKS5pc19l cnIoKSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfYnRyZnNfcmFpZF9jb25maWcoQnRyZnNSYWlk TGV2ZWw6OlJhaWQxLCAmZGlza3NbLi4xXSkuaXNfZXJyKCkpOwotICAgICAgICBhc3NlcnQhKGNo ZWNrX2J0cmZzX3JhaWRfY29uZmlnKEJ0cmZzUmFpZExldmVsOjpSYWlkMSwgJmRpc2tzWy4uMl0p LmlzX29rKCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNrX2J0cmZzX3JhaWRfY29uZmlnKEJ0cmZz UmFpZExldmVsOjpSYWlkMSwgJmRpc2tzKS5pc19vaygpKTsKLQotICAgICAgICBhc3NlcnQhKGNo ZWNrX2J0cmZzX3JhaWRfY29uZmlnKEJ0cmZzUmFpZExldmVsOjpSYWlkMTAsICZbXSkuaXNfZXJy KCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNrX2J0cmZzX3JhaWRfY29uZmlnKEJ0cmZzUmFpZExl dmVsOjpSYWlkMTAsICZkaXNrc1suLjNdKS5pc19lcnIoKSk7Ci0gICAgICAgIGFzc2VydCEoY2hl Y2tfYnRyZnNfcmFpZF9jb25maWcoQnRyZnNSYWlkTGV2ZWw6OlJhaWQxMCwgJmRpc2tzWy4uNF0p LmlzX29rKCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNrX2J0cmZzX3JhaWRfY29uZmlnKEJ0cmZz UmFpZExldmVsOjpSYWlkMTAsICZkaXNrcykuaXNfb2soKSk7Ci0gICAgfQotCi0gICAgI1t0ZXN0 XQotICAgIGZuIHpmc19yYWlkKCkgewotICAgICAgICBsZXQgZGlza3MgPSBkdW1teV9kaXNrcygx MCk7Ci0KLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNfcmFpZF9jb25maWcoWmZzUmFpZExldmVs OjpSYWlkMCwgJltdKS5pc19lcnIoKSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfemZzX3JhaWRf Y29uZmlnKFpmc1JhaWRMZXZlbDo6UmFpZDAsICZkaXNrc1suLjFdKS5pc19vaygpKTsKLSAgICAg ICAgYXNzZXJ0IShjaGVja196ZnNfcmFpZF9jb25maWcoWmZzUmFpZExldmVsOjpSYWlkMCwgJmRp c2tzKS5pc19vaygpKTsKLQotICAgICAgICBhc3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyha ZnNSYWlkTGV2ZWw6OlJhaWQxLCAmW10pLmlzX2VycigpKTsKLSAgICAgICAgYXNzZXJ0IShjaGVj a196ZnNfcmFpZF9jb25maWcoWmZzUmFpZExldmVsOjpSYWlkMSwgJmRpc2tzWy4uMl0pLmlzX29r KCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6 OlJhaWQxLCAmZGlza3MpLmlzX29rKCkpOwotCi0gICAgICAgIGFzc2VydCEoY2hlY2tfemZzX3Jh aWRfY29uZmlnKFpmc1JhaWRMZXZlbDo6UmFpZDEwLCAmW10pLmlzX2VycigpKTsKLSAgICAgICAg YXNzZXJ0IShjaGVja196ZnNfcmFpZF9jb25maWcoWmZzUmFpZExldmVsOjpSYWlkMTAsICZkdW1t eV9kaXNrcyg0KSkuaXNfb2soKSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfemZzX3JhaWRfY29u ZmlnKFpmc1JhaWRMZXZlbDo6UmFpZDEwLCAmZGlza3MpLmlzX29rKCkpOwotCi0gICAgICAgIGFz c2VydCEoY2hlY2tfemZzX3JhaWRfY29uZmlnKFpmc1JhaWRMZXZlbDo6UmFpZFosICZbXSkuaXNf ZXJyKCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2 ZWw6OlJhaWRaLCAmZGlza3NbLi4yXSkuaXNfZXJyKCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNr X3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJhaWRaLCAmZGlza3NbLi4zXSkuaXNfb2so KSk7Ci0gICAgICAgIGFzc2VydCEoY2hlY2tfemZzX3JhaWRfY29uZmlnKFpmc1JhaWRMZXZlbDo6 UmFpZFosICZkaXNrcykuaXNfb2soKSk7Ci0KLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNfcmFp ZF9jb25maWcoWmZzUmFpZExldmVsOjpSYWlkWjIsICZbXSkuaXNfZXJyKCkpOwotICAgICAgICBh c3NlcnQhKGNoZWNrX3pmc19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJhaWRaMiwgJmRpc2tz Wy4uM10pLmlzX2VycigpKTsKLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNfcmFpZF9jb25maWco WmZzUmFpZExldmVsOjpSYWlkWjIsICZkaXNrc1suLjRdKS5pc19vaygpKTsKLSAgICAgICAgYXNz ZXJ0IShjaGVja196ZnNfcmFpZF9jb25maWcoWmZzUmFpZExldmVsOjpSYWlkWjIsICZkaXNrcyku aXNfb2soKSk7Ci0KLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNfcmFpZF9jb25maWcoWmZzUmFp ZExldmVsOjpSYWlkWjMsICZbXSkuaXNfZXJyKCkpOwotICAgICAgICBhc3NlcnQhKGNoZWNrX3pm c19yYWlkX2NvbmZpZyhaZnNSYWlkTGV2ZWw6OlJhaWRaMywgJmRpc2tzWy4uNF0pLmlzX2Vycigp KTsKLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNfcmFpZF9jb25maWcoWmZzUmFpZExldmVsOjpS YWlkWjMsICZkaXNrc1suLjVdKS5pc19vaygpKTsKLSAgICAgICAgYXNzZXJ0IShjaGVja196ZnNf cmFpZF9jb25maWcoWmZzUmFpZExldmVsOjpSYWlkWjMsICZkaXNrcykuaXNfb2soKSk7Ci0gICAg fQogfQpkaWZmIC0tZ2l0IGEvcHJveG1veC1pbnN0YWxsZXItY29tbW9uL3NyYy9vcHRpb25zLnJz IGIvcHJveG1veC1pbnN0YWxsZXItY29tbW9uL3NyYy9vcHRpb25zLnJzCmluZGV4IDkyNzFiOGIu LjQ4Yzc3YzkgMTAwNjQ0Ci0tLSBhL3Byb3htb3gtaW5zdGFsbGVyLWNvbW1vbi9zcmMvb3B0aW9u cy5ycworKysgYi9wcm94bW94LWluc3RhbGxlci1jb21tb24vc3JjL29wdGlvbnMucnMKQEAgLTYs NiArNiw3IEBAIHVzZSBzdGQ6OnN0cjo6RnJvbVN0cjsKIHVzZSBzdGQ6OnN5bmM6Ok9uY2VMb2Nr OwogdXNlIHN0ZDo6e2NtcCwgZm10fTsKIAordXNlIGNyYXRlOjpkaXNrX2NoZWNrczo6Y2hlY2tf cmFpZF9taW5fZGlza3M7CiB1c2UgY3JhdGU6OnNldHVwOjp7TG9jYWxlSW5mbywgTmV0d29ya0lu Zm8sIFJ1bnRpbWVJbmZvLCBTZXR1cEluZm99OwogdXNlIGNyYXRlOjp1dGlsczo6e0NpZHJBZGRy ZXNzLCBGcWRufTsKIApAQCAtMjgsNiArMjksMTcgQEAgaW1wbCBCdHJmc1JhaWRMZXZlbCB7CiAg ICAgICAgICAgICBCdHJmc1JhaWRMZXZlbDo6UmFpZDEwID0+IDQsCiAgICAgICAgIH0KICAgICB9 CisKKyAgICAvLy8gQ2hlY2tzIHdoZXRoZXIgYSB1c2VyLXN1cHBsaWVkIEJ0cmZzIFJBSUQgc2V0 dXAgaXMgdmFsaWQgb3Igbm90LCBzdWNoIGFzIG1pbmltdW0KKyAgICAvLy8gbnVtYmVyIG9mIGRp c2tzLgorICAgIC8vLworICAgIC8vLyAjIEFyZ3VtZW50cworICAgIC8vLworICAgIC8vLyAqIGBk aXNrc2AgLSBMaXN0IG9mIGRpc2tzIGRlc2lnbmF0ZWQgYXMgUkFJRCB0YXJnZXRzLgorICAgIHB1 YiBmbiBjaGVja19yYWlkX2Rpc2tzX3NldHVwKCZzZWxmLCBkaXNrczogJltEaXNrXSkgLT4gUmVz dWx0PCgpLCBTdHJpbmc+IHsKKyAgICAgICAgY2hlY2tfcmFpZF9taW5fZGlza3MoZGlza3MsIHNl bGYuZ2V0X21pbl9kaXNrcygpKT87CisgICAgICAgIE9rKCgpKQorICAgIH0KIH0KIAogc2VyZGVf cGxhaW46OmRlcml2ZV9kaXNwbGF5X2Zyb21fc2VyaWFsaXplIShCdHJmc1JhaWRMZXZlbCk7CkBA IC02OSw2ICs4MSw1MyBAQCBpbXBsIFpmc1JhaWRMZXZlbCB7CiAgICAgICAgICAgICBaZnNSYWlk TGV2ZWw6OlJhaWRaMyA9PiA1LAogICAgICAgICB9CiAgICAgfQorCisgICAgZm4gY2hlY2tfbWly cm9yX3NpemUoJnNlbGYsIGRpc2sxOiAmRGlzaywgZGlzazI6ICZEaXNrKSAtPiBSZXN1bHQ8KCks IFN0cmluZz4geworICAgICAgICBpZiAoZGlzazEuc2l6ZSAtIGRpc2syLnNpemUpLmFicygpID4g ZGlzazEuc2l6ZSAvIDEwLiB7CisgICAgICAgICAgICBFcnIoZm9ybWF0ISgKKyAgICAgICAgICAg ICAgICAiTWlycm9yZWQgZGlza3MgbXVzdCBoYXZlIHNhbWUgc2l6ZTpcblxuICAqIHtkaXNrMX1c biAgKiB7ZGlzazJ9IgorICAgICAgICAgICAgKSkKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg ICAgIE9rKCgpKQorICAgICAgICB9CisgICAgfQorCisgICAgLy8vIENoZWNrcyB3aGV0aGVyIGEg dXNlci1zdXBwbGllZCBaRlMgUkFJRCBzZXR1cCBpcyB2YWxpZCBvciBub3QsIHN1Y2ggYXMgZGlz ayBzaXplcyBhbmRtaW5pbXVtCisgICAgLy8vIG51bWJlciBvZiBkaXNrcy4KKyAgICAvLy8KKyAg ICAvLy8gIyBBcmd1bWVudHMKKyAgICAvLy8KKyAgICAvLy8gKiBgZGlza3NgIC0gTGlzdCBvZiBk aXNrcyBkZXNpZ25hdGVkIGFzIFJBSUQgdGFyZ2V0cy4KKyAgICBwdWIgZm4gY2hlY2tfcmFpZF9k aXNrc19zZXR1cCgmc2VsZiwgZGlza3M6ICZbRGlza10pIC0+IFJlc3VsdDwoKSwgU3RyaW5nPiB7 CisgICAgICAgIGNoZWNrX3JhaWRfbWluX2Rpc2tzKGRpc2tzLCBzZWxmLmdldF9taW5fZGlza3Mo KSk/OworCisgICAgICAgIG1hdGNoIHNlbGYgeworICAgICAgICAgICAgWmZzUmFpZExldmVsOjpS YWlkMCA9PiB7fQorICAgICAgICAgICAgWmZzUmFpZExldmVsOjpSYWlkMTAgPT4geworICAgICAg ICAgICAgICAgIGlmIGRpc2tzLmxlbigpICUgMiAhPSAwIHsKKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIEVycihmb3JtYXQhKAorICAgICAgICAgICAgICAgICAgICAgICAgIk5lZWRzIGFuIGV2 ZW4gbnVtYmVyIG9mIGRpc2tzLCBjdXJyZW50bHkgc2VsZWN0ZWQ6IHt9IiwKKyAgICAgICAgICAg ICAgICAgICAgICAgIGRpc2tzLmxlbigpLAorICAgICAgICAgICAgICAgICAgICApKTsKKyAgICAg ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBQYWlycyBuZWVkIHRvIGhhdmUgdGhl IHNhbWUgc2l6ZQorICAgICAgICAgICAgICAgIGZvciBpIGluICgwLi5kaXNrcy5sZW4oKSkuc3Rl cF9ieSgyKSB7CisgICAgICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfbWlycm9yX3NpemUoJmRp c2tzW2ldLCAmZGlza3NbaSArIDFdKT87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg fQorICAgICAgICAgICAgWmZzUmFpZExldmVsOjpSYWlkMQorICAgICAgICAgICAgfCBaZnNSYWlk TGV2ZWw6OlJhaWRaCisgICAgICAgICAgICB8IFpmc1JhaWRMZXZlbDo6UmFpZFoyCisgICAgICAg ICAgICB8IFpmc1JhaWRMZXZlbDo6UmFpZFozID0+IHsKKyAgICAgICAgICAgICAgICBmb3IgZGlz ayBpbiBkaXNrcyB7CisgICAgICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfbWlycm9yX3NpemUo JmRpc2tzWzBdLCBkaXNrKT87CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAg ICAgICB9CisKKyAgICAgICAgT2soKCkpCisgICAgfQogfQogCiBzZXJkZV9wbGFpbjo6ZGVyaXZl X2Rpc3BsYXlfZnJvbV9zZXJpYWxpemUhKFpmc1JhaWRMZXZlbCk7CkBAIC0zMTYsNiArMzc1LDE5 IEBAIHB1YiBzdHJ1Y3QgRGlzayB7CiAgICAgcHViIGJsb2NrX3NpemU6IE9wdGlvbjx1c2l6ZT4s CiB9CiAKK2ltcGwgRGlzayB7CisgICAgI1tjZmcodGVzdCldCisgICAgcHViIGZuIGR1bW15KGlu ZGV4OiB1c2l6ZSkgLT4gRGlzayB7CisgICAgICAgIERpc2sgeworICAgICAgICAgICAgaW5kZXg6 IGluZGV4LnRvX3N0cmluZygpLAorICAgICAgICAgICAgcGF0aDogZm9ybWF0ISgiL2Rldi9kdW1t eXtpbmRleH0iKSwKKyAgICAgICAgICAgIG1vZGVsOiBTb21lKCJEdW1teSBkaXNrIi50b19vd25l ZCgpKSwKKyAgICAgICAgICAgIHNpemU6IDEwMjQuICogMTAyNC4gKiAxMDI0LiAqIDguLAorICAg ICAgICAgICAgYmxvY2tfc2l6ZTogU29tZSg1MTIpLAorICAgICAgICB9CisgICAgfQorfQorCiBp bXBsIGZtdDo6RGlzcGxheSBmb3IgRGlzayB7CiAgICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IGZt dDo6Rm9ybWF0dGVyPCdfPikgLT4gZm10OjpSZXN1bHQgewogICAgICAgICAvLyBUT0RPOiBGb3Jt YXQgc2l6ZXMgcHJvcGVybHkgd2l0aCBgcHJveG1veC1odW1hbi1ieXRlYCBvbmNlIG1lcmdlZApA QCAtNTQyLDYgKzYxNCw2MSBAQCBtb2QgdGVzdHMgewogICAgIHVzZSBzdGQ6OmNvbGxlY3Rpb25z OjpCVHJlZU1hcDsKICAgICB1c2Ugc3RkOjpuZXQ6OntJcEFkZHIsIElwdjRBZGRyfTsKIAorICAg IGZuIGR1bW15X2Rpc2tzKG51bTogdXNpemUpIC0+IFZlYzxEaXNrPiB7CisgICAgICAgICgwLi5u dW0pLm1hcChEaXNrOjpkdW1teSkuY29sbGVjdCgpCisgICAgfQorCisgICAgI1t0ZXN0XQorICAg IGZuIGJ0cmZzX3JhaWQoKSB7CisgICAgICAgIGxldCBkaXNrcyA9IGR1bW15X2Rpc2tzKDEwKTsK KworICAgICAgICBsZXQgYnRyZnNfcmFpZF92YXJpYW50cyA9IFsKKyAgICAgICAgICAgIEJ0cmZz UmFpZExldmVsOjpSYWlkMCwKKyAgICAgICAgICAgIEJ0cmZzUmFpZExldmVsOjpSYWlkMSwKKyAg ICAgICAgICAgIEJ0cmZzUmFpZExldmVsOjpSYWlkMTAsCisgICAgICAgIF07CisKKyAgICAgICAg Zm9yIHYgaW4gYnRyZnNfcmFpZF92YXJpYW50cyB7CisgICAgICAgICAgICBhc3NlcnQhKHYuY2hl Y2tfcmFpZF9kaXNrc19zZXR1cCgmW10pLmlzX2VycigpKTsKKyAgICAgICAgICAgIGFzc2VydCEo CisgICAgICAgICAgICAgICAgdi5jaGVja19yYWlkX2Rpc2tzX3NldHVwKCZkaXNrc1suLnYuZ2V0 X21pbl9kaXNrcygpIC0gMV0pCisgICAgICAgICAgICAgICAgICAgIC5pc19lcnIoKQorICAgICAg ICAgICAgKTsKKyAgICAgICAgICAgIGFzc2VydCEoCisgICAgICAgICAgICAgICAgdi5jaGVja19y YWlkX2Rpc2tzX3NldHVwKCZkaXNrc1suLnYuZ2V0X21pbl9kaXNrcygpXSkKKyAgICAgICAgICAg ICAgICAgICAgLmlzX29rKCkKKyAgICAgICAgICAgICk7CisgICAgICAgICAgICBhc3NlcnQhKHYu Y2hlY2tfcmFpZF9kaXNrc19zZXR1cCgmZGlza3MpLmlzX29rKCkpOworICAgICAgICB9CisgICAg fQorCisgICAgI1t0ZXN0XQorICAgIGZuIHpmc19yYWlkKCkgeworICAgICAgICBsZXQgZGlza3Mg PSBkdW1teV9kaXNrcygxMCk7CisKKyAgICAgICAgbGV0IHpmc19yYWlkX3ZhcmlhbnRzID0gWwor ICAgICAgICAgICAgWmZzUmFpZExldmVsOjpSYWlkMCwKKyAgICAgICAgICAgIFpmc1JhaWRMZXZl bDo6UmFpZDEsCisgICAgICAgICAgICBaZnNSYWlkTGV2ZWw6OlJhaWQxMCwKKyAgICAgICAgICAg IFpmc1JhaWRMZXZlbDo6UmFpZFosCisgICAgICAgICAgICBaZnNSYWlkTGV2ZWw6OlJhaWRaMiwK KyAgICAgICAgICAgIFpmc1JhaWRMZXZlbDo6UmFpZFozLAorICAgICAgICBdOworCisgICAgICAg IGZvciB2IGluIHpmc19yYWlkX3ZhcmlhbnRzIHsKKyAgICAgICAgICAgIGFzc2VydCEodi5jaGVj a19yYWlkX2Rpc2tzX3NldHVwKCZbXSkuaXNfZXJyKCkpOworICAgICAgICAgICAgYXNzZXJ0ISgK KyAgICAgICAgICAgICAgICB2LmNoZWNrX3JhaWRfZGlza3Nfc2V0dXAoJmRpc2tzWy4udi5nZXRf bWluX2Rpc2tzKCkgLSAxXSkKKyAgICAgICAgICAgICAgICAgICAgLmlzX2VycigpCisgICAgICAg ICAgICApOworICAgICAgICAgICAgYXNzZXJ0ISgKKyAgICAgICAgICAgICAgICB2LmNoZWNrX3Jh aWRfZGlza3Nfc2V0dXAoJmRpc2tzWy4udi5nZXRfbWluX2Rpc2tzKCldKQorICAgICAgICAgICAg ICAgICAgICAuaXNfb2soKQorICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIGFzc2VydCEodi5j aGVja19yYWlkX2Rpc2tzX3NldHVwKCZkaXNrcykuaXNfb2soKSk7CisgICAgICAgIH0KKyAgICB9 CisKICAgICBmbiBtb2NrX3NldHVwX25ldHdvcmsoKSAtPiAoU2V0dXBJbmZvLCBOZXR3b3JrSW5m bykgewogICAgICAgICBsZXQgbXV0IGludGVyZmFjZXMgPSBCVHJlZU1hcDo6bmV3KCk7CiAgICAg ICAgIGludGVyZmFjZXMuaW5zZXJ0KApkaWZmIC0tZ2l0IGEvcHJveG1veC10dWktaW5zdGFsbGVy L3NyYy92aWV3cy9ib290ZGlzay5ycyBiL3Byb3htb3gtdHVpLWluc3RhbGxlci9zcmMvdmlld3Mv Ym9vdGRpc2sucnMKaW5kZXggMzEzYTNjOS4uNmYzNDc4ZiAxMDA2NDQKLS0tIGEvcHJveG1veC10 dWktaW5zdGFsbGVyL3NyYy92aWV3cy9ib290ZGlzay5ycworKysgYi9wcm94bW94LXR1aS1pbnN0 YWxsZXIvc3JjL3ZpZXdzL2Jvb3RkaXNrLnJzCkBAIC0xNywxMCArMTcsNyBAQCB1c2UgY3JhdGU6 Okluc3RhbGxlclN0YXRlOwogdXNlIGNyYXRlOjpvcHRpb25zOjpGU19UWVBFUzsKIAogdXNlIHBy b3htb3hfaW5zdGFsbGVyX2NvbW1vbjo6ewotICAgIGRpc2tfY2hlY2tzOjp7Ci0gICAgICAgIGNo ZWNrX2J0cmZzX3JhaWRfY29uZmlnLCBjaGVja19kaXNrc180a25fbGVnYWN5X2Jvb3QsIGNoZWNr X2Zvcl9kdXBsaWNhdGVfZGlza3MsCi0gICAgICAgIGNoZWNrX3pmc19yYWlkX2NvbmZpZywKLSAg ICB9LAorICAgIGRpc2tfY2hlY2tzOjp7Y2hlY2tfZGlza3NfNGtuX2xlZ2FjeV9ib290LCBjaGVj a19mb3JfZHVwbGljYXRlX2Rpc2tzfSwKICAgICBvcHRpb25zOjp7CiAgICAgICAgIEFkdmFuY2Vk Qm9vdGRpc2tPcHRpb25zLCBCVFJGU19DT01QUkVTU19PUFRJT05TLCBCb290ZGlza09wdGlvbnMs IEJ0cmZzQm9vdGRpc2tPcHRpb25zLAogICAgICAgICBEaXNrLCBGc1R5cGUsIEx2bUJvb3RkaXNr T3B0aW9ucywgWkZTX0NIRUNLU1VNX09QVElPTlMsIFpGU19DT01QUkVTU19PUFRJT05TLApAQCAt Mjc1LDcgKzI3Miw5IEBAIGltcGwgQWR2YW5jZWRCb290ZGlza09wdGlvbnNWaWV3IHsKICAgICAg ICAgICAgICAgICAub2tfb3IoIkZhaWxlZCB0byByZXRyaWV2ZSBhZHZhbmNlZCBib290ZGlzayBv cHRpb25zIik/OwogCiAgICAgICAgICAgICBpZiBsZXQgRnNUeXBlOjpaZnMobGV2ZWwpID0gZnN0 eXBlIHsKLSAgICAgICAgICAgICAgICBjaGVja196ZnNfcmFpZF9jb25maWcobGV2ZWwsICZkaXNr cykubWFwX2Vycih8ZXJyfCBmb3JtYXQhKCJ7ZnN0eXBlfToge2Vycn0iKSk/OworICAgICAgICAg ICAgICAgIGxldmVsCisgICAgICAgICAgICAgICAgICAgIC5jaGVja19yYWlkX2Rpc2tzX3NldHVw KCZkaXNrcykKKyAgICAgICAgICAgICAgICAgICAgLm1hcF9lcnIofGVycnwgZm9ybWF0ISgie2Zz dHlwZX06IHtlcnJ9IikpPzsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgT2soQm9vdGRp c2tPcHRpb25zIHsKQEAgLTI4OSw3ICsyODgsOSBAQCBpbXBsIEFkdmFuY2VkQm9vdGRpc2tPcHRp b25zVmlldyB7CiAgICAgICAgICAgICAgICAgLm9rX29yKCJGYWlsZWQgdG8gcmV0cmlldmUgYWR2 YW5jZWQgYm9vdGRpc2sgb3B0aW9ucyIpPzsKIAogICAgICAgICAgICAgaWYgbGV0IEZzVHlwZTo6 QnRyZnMobGV2ZWwpID0gZnN0eXBlIHsKLSAgICAgICAgICAgICAgICBjaGVja19idHJmc19yYWlk X2NvbmZpZyhsZXZlbCwgJmRpc2tzKS5tYXBfZXJyKHxlcnJ8IGZvcm1hdCEoIntmc3R5cGV9OiB7 ZXJyfSIpKT87CisgICAgICAgICAgICAgICAgbGV2ZWwKKyAgICAgICAgICAgICAgICAgICAgLmNo ZWNrX3JhaWRfZGlza3Nfc2V0dXAoJmRpc2tzKQorICAgICAgICAgICAgICAgICAgICAubWFwX2Vy cih8ZXJyfCBmb3JtYXQhKCJ7ZnN0eXBlfToge2Vycn0iKSk/OwogICAgICAgICAgICAgfQogCiAg ICAgICAgICAgICBPayhCb290ZGlza09wdGlvbnMgewotLSAKMi40Ny4yCgoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxp c3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20v Y2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=