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 BFCAE1FF170 for ; Thu, 21 Aug 2025 16:39:19 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7DDBD2DDD6; Thu, 21 Aug 2025 16:37:49 +0200 (CEST) From: Daniel Kral To: pve-devel@lists.proxmox.com Date: Thu, 21 Aug 2025 16:35:37 +0200 Message-ID: <20250821143705.256562-5-d.kral@proxmox.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250821143705.256562-1-d.kral@proxmox.com> References: <20250821143705.256562-1-d.kral@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1755787029060 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 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 ha-manager 04/18] rules: resource affinity: inter-consistency check with merged positive rules 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" VGhlIHJlc291cmNlIGFmZmluaXR5IHJ1bGUgc2V0IGlzIGNoZWNrZWQgd2hldGhlciBpdCBjb250 YWlucyBwYWlycyBvZgpwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgcmVzb3VyY2UgYWZmaW5pdHkgcnVs ZXMsIHdoaWNoIHNwZWNpZnkgdHdvIG9yIG1vcmUKSEEgcmVzb3VyY2VzIGluIHRoZW0sIGFuZCBw cnVuZXMgdGhlbSBhcyB0aG9zZSBhcmUgaW5mZWFzaWJsZS4KClRoaXMgY2hlY2sgaGFzIHRoZSBh c3N1bXB0aW9uIHRoYXQgZWFjaCBwb3NpdGl2ZSByZXNvdXJjZSBhZmZpbml0eQpydWxlJ3MgcmVz b3VyY2Ugc2V0IGlzIGRpc2pvaW50IGZyb20gZWFjaCBvdGhlciwgYnV0IHRoaXMgaXMgb25seSBk b25lCmluIHRoZSBsYXRlciB0cmFuc2Zvcm1hdGlvbiBzdGFnZSB3aGVuIHBvc2l0aXZlIHJlc291 cmNlIGFmZmluaXR5IHdpdGgKb3ZlcmxhcHBpbmcgSEEgcmVzb3VyY2VzIGluIHRoZW0gYXJlIG1l cmdlZCB0byBvbmUgcnVsZS4KCkZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGluY29uc2lzdGVu dCBydWxlcyBhcmUgbm90IHBydW5lZDoKCi0gcG9zaXRpdmUgcmVzb3VyY2UgYWZmaW5pdHkgcnVs ZSBiZXR3ZWVuIHZtOjEwMSBhbmQgdm06MTAyCi0gcG9zaXRpdmUgcmVzb3VyY2UgYWZmaW5pdHkg cnVsZSBiZXR3ZWVuIHZtOjEwMiBhbmQgdm06MTAzCi0gbmVnYXRpdmUgcmVzb3VyY2UgYWZmaW5p dHkgcnVsZSBiZXR3ZWVuIHZtOjEwMSBhbmQgdm06MTAzCgpUaGVyZWZvcmUgYnVpbGQgdGhlIHNh bWUgZGlzam9pbnQgcG9zaXRpdmUgcmVzb3VyY2UgYWZmaW5pdHkgcmVzb3VyY2UKc2V0cyBhcyB0 aGUgbWVyZ2VfY29ubmVjdGVkX3Bvc2l0aXZlX3Jlc291cmNlX2FmZmluaXR5X3J1bGVzKC4uLikK c3Vicm91dGluZSwgc28gdGhhdCB0aGUgaW5jb25zaXN0ZW5jeSBjaGVjayBoYXMgdGhlIG5lY2Vz c2FyeQppbmZvcm1hdGlvbiBpbiBhZHZhbmNlLgoKRml4ZXM6IDM2N2NkYmZhICgicnVsZXM6IGlu dHJvZHVjZSByZXNvdXJjZSBhZmZpbml0eSBydWxlIHBsdWdpbiIpClJlcG9ydGVkLWJ5OiBIYW5u ZXMgRMO8cnIgPGguZHVlcnJAcHJveG1veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhbmllbCBLcmFs IDxkLmtyYWxAcHJveG1veC5jb20+Ci0tLQogc3JjL1BWRS9IQS9SdWxlcy9SZXNvdXJjZUFmZmlu aXR5LnBtICAgICAgICAgIHwgNzUgKysrKy0tLS0tLS0tLS0tLS0tLQogLi4uL2luY29uc2lzdGVu dC1yZXNvdXJjZS1hZmZpbml0eS1ydWxlcy5jZmcgIHwgMTUgKysrKwogLi4uc2lzdGVudC1yZXNv dXJjZS1hZmZpbml0eS1ydWxlcy5jZmcuZXhwZWN0IHwgIDUgKy0KIDMgZmlsZXMgY2hhbmdlZCwg MzQgaW5zZXJ0aW9ucygrKSwgNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL1BWRS9I QS9SdWxlcy9SZXNvdXJjZUFmZmluaXR5LnBtIGIvc3JjL1BWRS9IQS9SdWxlcy9SZXNvdXJjZUFm ZmluaXR5LnBtCmluZGV4IGVkZmE0YjNkLi5lOWIzNjhhNCAxMDA2NDQKLS0tIGEvc3JjL1BWRS9I QS9SdWxlcy9SZXNvdXJjZUFmZmluaXR5LnBtCisrKyBiL3NyYy9QVkUvSEEvUnVsZXMvUmVzb3Vy Y2VBZmZpbml0eS5wbQpAQCAtMjA2LDE0ICsyMDYsMTggQEAgc3ViIGNoZWNrX2ludGVyX3Jlc291 cmNlX2FmZmluaXR5X3J1bGVzX2NvbnNpc3RlbmN5IHsKIAogICAgIG15IEBjb25mbGljdHMgPSAo KTsKIAotICAgIHdoaWxlIChteSAoJHBvc2l0aXZlaWQsICRwb3NpdGl2ZSkgPSBlYWNoICUkcG9z aXRpdmVfcnVsZXMpIHsKLSAgICAgICAgbXkgJHBvc2l0aXZlX3Jlc291cmNlcyA9ICRwb3NpdGl2 ZS0+e3Jlc291cmNlc307CisgICAgbXkgQGRpc2pvaW50X3Bvc2l0aXZlX3J1bGVzID0KKyAgICAg ICAgUFZFOjpIQTo6UnVsZXM6OkhlbHBlcnM6OmZpbmRfZGlzam9pbnRfcnVsZXNfcmVzb3VyY2Vf c2V0cygkcG9zaXRpdmVfcnVsZXMpOworCisgICAgZm9yIG15ICRlbnRyeSAoQGRpc2pvaW50X3Bv c2l0aXZlX3J1bGVzKSB7CisgICAgICAgIG15ICRwb3NpdGl2ZV9yZXNvdXJjZXMgPSAkZW50cnkt PntyZXNvdXJjZXN9OwogCiAgICAgICAgIHdoaWxlIChteSAoJG5lZ2F0aXZlaWQsICRuZWdhdGl2 ZSkgPSBlYWNoICUkbmVnYXRpdmVfcnVsZXMpIHsKICAgICAgICAgICAgIG15ICRjb21tb25fcmVz b3VyY2VzID0gc2V0X2ludGVyc2VjdCgkcG9zaXRpdmVfcmVzb3VyY2VzLCAkbmVnYXRpdmUtPnty ZXNvdXJjZXN9KTsKICAgICAgICAgICAgIG5leHQgaWYgJSRjb21tb25fcmVzb3VyY2VzIDwgMjsK IAotICAgICAgICAgICAgcHVzaCBAY29uZmxpY3RzLCBbJHBvc2l0aXZlaWQsICRuZWdhdGl2ZWlk XTsKKyAgICAgICAgICAgIHB1c2ggQGNvbmZsaWN0cywgWyduZWdhdGl2ZScsICRuZWdhdGl2ZWlk XTsKKyAgICAgICAgICAgIHB1c2ggQGNvbmZsaWN0cywgWydwb3NpdGl2ZScsICRfXSBmb3IgJGVu dHJ5LT57cnVsZWlkc30tPkAqOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMzQsMTIgKzIzOCwx NSBAQCBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfY2hlY2soCiAgICAgICAgIG15ICgkY29uZmxpY3Rz LCAkZXJyb3JzKSA9IEBfOwogCiAgICAgICAgIGZvciBteSAkY29uZmxpY3QgKEAkY29uZmxpY3Rz KSB7Ci0gICAgICAgICAgICBteSAoJHBvc2l0aXZlaWQsICRuZWdhdGl2ZWlkKSA9IEAkY29uZmxp Y3Q7CisgICAgICAgICAgICBteSAoJHR5cGUsICRydWxlaWQpID0gQCRjb25mbGljdDsKIAotICAg ICAgICAgICAgcHVzaCAkZXJyb3JzLT57JHBvc2l0aXZlaWR9LT57cmVzb3VyY2VzfS0+QCosCi0g ICAgICAgICAgICAgICAgInJ1bGUgc2hhcmVzIHR3byBvciBtb3JlIHJlc291cmNlcyB3aXRoIGEg bmVnYXRpdmUgcmVzb3VyY2UgYWZmaW5pdHkgcnVsZSI7Ci0gICAgICAgICAgICBwdXNoICRlcnJv cnMtPnskbmVnYXRpdmVpZH0tPntyZXNvdXJjZXN9LT5AKiwKLSAgICAgICAgICAgICAgICAicnVs ZSBzaGFyZXMgdHdvIG9yIG1vcmUgcmVzb3VyY2VzIHdpdGggYSBwb3NpdGl2ZSByZXNvdXJjZSBh ZmZpbml0eSBydWxlIjsKKyAgICAgICAgICAgIGlmICgkdHlwZSBlcSAncG9zaXRpdmUnKSB7Cisg ICAgICAgICAgICAgICAgcHVzaCAkZXJyb3JzLT57JHJ1bGVpZH0tPntyZXNvdXJjZXN9LT5AKiwK KyAgICAgICAgICAgICAgICAgICAgInJ1bGUgc2hhcmVzIHR3byBvciBtb3JlIHJlc291cmNlcyB3 aXRoIGEgbmVnYXRpdmUgcmVzb3VyY2UgYWZmaW5pdHkgcnVsZSI7CisgICAgICAgICAgICB9IGVs c2lmICgkdHlwZSBlcSAnbmVnYXRpdmUnKSB7CisgICAgICAgICAgICAgICAgcHVzaCAkZXJyb3Jz LT57JHJ1bGVpZH0tPntyZXNvdXJjZXN9LT5AKiwKKyAgICAgICAgICAgICAgICAgICAgInJ1bGUg c2hhcmVzIHR3byBvciBtb3JlIHJlc291cmNlcyB3aXRoIGEgcG9zaXRpdmUgcmVzb3VyY2UgYWZm aW5pdHkgcnVsZSI7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9LAogKTsKQEAgLTI0 OCw1OCArMjU1LDYgQEAgX19QQUNLQUdFX18tPnJlZ2lzdGVyX2NoZWNrKAogCiA9Y3V0CiAKLW15 ICRzb3J0X2J5X2xvd2VzdF9yZXNvdXJjZV9pZCA9IHN1YiB7Ci0gICAgbXkgKCRydWxlcykgPSBA XzsKLQotICAgIG15ICRsb3dlc3RfcnVsZV9yZXNvdXJjZV9pZCA9IHt9OwotICAgIGZvciBteSAk cnVsZWlkIChrZXlzICUkcnVsZXMpIHsKLSAgICAgICAgbXkgQHJ1bGVfcmVzb3VyY2VzID0gc29y dCBrZXlzICRydWxlcy0+eyRydWxlaWR9LT57cmVzb3VyY2VzfS0+JSo7Ci0gICAgICAgICRsb3dl c3RfcnVsZV9yZXNvdXJjZV9pZC0+eyRydWxlaWR9ID0gJHJ1bGVfcmVzb3VyY2VzWzBdOwotICAg IH0KLQotICAgICMgc29ydCBydWxlcyBzdWNoIHRoYXQgcnVsZXMgd2l0aCB0aGUgbG93ZXN0IG51 bWJlcmVkIHJlc291cmNlIGNvbWUgZmlyc3QKLSAgICBteSBAc29ydGVkX3J1bGVpZHMgPSBzb3J0 IHsKLSAgICAgICAgJGxvd2VzdF9ydWxlX3Jlc291cmNlX2lkLT57JGF9IGNtcCAkbG93ZXN0X3J1 bGVfcmVzb3VyY2VfaWQtPnskYn0KLSAgICB9IHNvcnQga2V5cyAlJHJ1bGVzOwotCi0gICAgcmV0 dXJuIEBzb3J0ZWRfcnVsZWlkczsKLX07Ci0KLSMgcmV0dXJucyBhIGxpc3Qgb2YgaGFzaGVzLCB3 aGljaCBjb250YWluIGRpc2pvaW50IHJlc291cmNlIGFmZmluaXR5IHJ1bGVzLCBpLmUuLAotIyBw dXQgcmVzb3VyY2UgYWZmaW5pdHkgY29uc3RyYWludHMgb24gZGlzam9pbnQgc2V0cyBvZiByZXNv dXJjZXMKLW15ICRmaW5kX2Rpc2pvaW50X3Jlc291cmNlX2FmZmluaXR5X3J1bGVzID0gc3ViIHsK LSAgICBteSAoJHJ1bGVzKSA9IEBfOwotCi0gICAgbXkgQGRpc2pvaW50X3J1bGVzID0gKCk7Ci0K LSAgICAjIG9yZGVyIG5lZWRlZCBzbyB0aGF0IGl0IGlzIGVhc2llciB0byBjaGVjayB3aGV0aGVy IHRoZXJlIGlzIGFuIG92ZXJsYXAKLSAgICBteSBAc29ydGVkX3J1bGVpZHMgPSAkc29ydF9ieV9s b3dlc3RfcmVzb3VyY2VfaWQtPigkcnVsZXMpOwotCi0gICAgZm9yIG15ICRydWxlaWQgKEBzb3J0 ZWRfcnVsZWlkcykgewotICAgICAgICBteSAkcnVsZSA9ICRydWxlcy0+eyRydWxlaWR9OwotCi0g ICAgICAgIG15ICRmb3VuZCA9IDA7Ci0gICAgICAgIGZvciBteSAkZW50cnkgKEBkaXNqb2ludF9y dWxlcykgewotICAgICAgICAgICAgbmV4dCBpZiBzZXRzX2FyZV9kaXNqb2ludCgkcnVsZS0+e3Jl c291cmNlc30sICRlbnRyeS0+e3Jlc291cmNlc30pOwotCi0gICAgICAgICAgICAkZm91bmQgPSAx OwotICAgICAgICAgICAgcHVzaCBAeyAkZW50cnktPntydWxlaWRzfSB9LCAkcnVsZWlkOwotICAg ICAgICAgICAgJGVudHJ5LT57cmVzb3VyY2VzfS0+eyRffSA9IDEgZm9yIGtleXMgJHJ1bGUtPnty ZXNvdXJjZXN9LT4lKjsKLQotICAgICAgICAgICAgbGFzdDsKLSAgICAgICAgfQotICAgICAgICBp ZiAoISRmb3VuZCkgewotICAgICAgICAgICAgcHVzaCBAZGlzam9pbnRfcnVsZXMsCi0gICAgICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBydWxlaWRzID0+IFskcnVsZWlkXSwKLSAg ICAgICAgICAgICAgICAgICAgcmVzb3VyY2VzID0+IHsgJHJ1bGUtPntyZXNvdXJjZXN9LT4lKiB9 LAotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gQGRp c2pvaW50X3J1bGVzOwotfTsKLQogPWhlYWQzIG1lcmdlX2Nvbm5lY3RlZF9wb3NpdGl2ZV9yZXNv dXJjZV9hZmZpbml0eV9ydWxlcygkcnVsZXMsICRwb3NpdGl2ZV9ydWxlcykKIAogTW9kaWZpZXMg QzwkcnVsZXM+IHRvIGNvbnRhaW4gb25seSBkaXNqb2ludCBwb3NpdGl2ZSByZXNvdXJjZSBhZmZp bml0eSBydWxlcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcnVsZXNfY2Zncy9pbmNvbnNpc3RlbnQt cmVzb3VyY2UtYWZmaW5pdHktcnVsZXMuY2ZnIGIvc3JjL3Rlc3QvcnVsZXNfY2Zncy9pbmNvbnNp c3RlbnQtcmVzb3VyY2UtYWZmaW5pdHktcnVsZXMuY2ZnCmluZGV4IGE2MjBlMjkzLi42YmZjMmRh ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcnVsZXNfY2Zncy9pbmNvbnNpc3RlbnQtcmVzb3VyY2Ut YWZmaW5pdHktcnVsZXMuY2ZnCisrKyBiL3NyYy90ZXN0L3J1bGVzX2NmZ3MvaW5jb25zaXN0ZW50 LXJlc291cmNlLWFmZmluaXR5LXJ1bGVzLmNmZwpAQCAtMSwzICsxLDQgQEAKKyMgQ2FzZSAxOiBS ZW1vdmUgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHJlc291cmNlIGFmZmluaXR5IHJ1bGVzLCB3aGlj aCBzaGFyZSB0d28gb3IgbW9yZSBoYSByZXNvdXJjZXMuCiByZXNvdXJjZS1hZmZpbml0eToga2Vl cC1hcGFydDEKIAlyZXNvdXJjZXMgdm06MTAyLHZtOjEwMwogCWFmZmluaXR5IG5lZ2F0aXZlCkBA IC05LDMgKzEwLDE3IEBAIHJlc291cmNlLWFmZmluaXR5OiBrZWVwLWFwYXJ0MgogcmVzb3VyY2Ut YWZmaW5pdHk6IHN0aWNrLXRvZ2V0aGVyMQogCXJlc291cmNlcyB2bToxMDEsdm06MTAyLHZtOjEw Myx2bToxMDQsdm06MTA2CiAJYWZmaW5pdHkgcG9zaXRpdmUKKworIyBDYXNlIDI6IFJlbW92ZSBw b3NpdGl2ZSBhbmQgbmVnYXRpdmUgcmVzb3VyY2UgYWZmaW5pdHkgcnVsZXMsIHdoaWNoIHNoYXJl IHR3byBvciBtb3JlIEhBIHJlc291cmNlcyB3aXRoIHRoZSBwb3NpdGl2ZQorIyAgICAgICAgIHJl c291cmNlIGFmZmluaXR5IGJlaW5nIHNwbGl0IGluIHR3by4KK3Jlc291cmNlLWFmZmluaXR5OiBz cGxpdC1zdGljay10b2dldGhlcjEKKwlyZXNvdXJjZXMgdm06MjAxLHZtOjIwMgorCWFmZmluaXR5 IHBvc2l0aXZlCisKK3Jlc291cmNlLWFmZmluaXR5OiBzcGxpdC1zdGljay10b2dldGhlcjIKKwly ZXNvdXJjZXMgdm06MjAyLHZtOjIwMworCWFmZmluaXR5IHBvc2l0aXZlCisKK3Jlc291cmNlLWFm ZmluaXR5OiBzcGxpdC1rZWVwLWFwYXJ0MQorCXJlc291cmNlcyB2bToyMDEsdm06MjAzCisJYWZm aW5pdHkgbmVnYXRpdmUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3J1bGVzX2NmZ3MvaW5jb25zaXN0 ZW50LXJlc291cmNlLWFmZmluaXR5LXJ1bGVzLmNmZy5leHBlY3QgYi9zcmMvdGVzdC9ydWxlc19j ZmdzL2luY29uc2lzdGVudC1yZXNvdXJjZS1hZmZpbml0eS1ydWxlcy5jZmcuZXhwZWN0CmluZGV4 IGQ0YTJkN2IyLi44ZjIzMzhkOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcnVsZXNfY2Zncy9pbmNv bnNpc3RlbnQtcmVzb3VyY2UtYWZmaW5pdHktcnVsZXMuY2ZnLmV4cGVjdAorKysgYi9zcmMvdGVz dC9ydWxlc19jZmdzL2luY29uc2lzdGVudC1yZXNvdXJjZS1hZmZpbml0eS1ydWxlcy5jZmcuZXhw ZWN0CkBAIC0xLDExICsxLDE0IEBACiAtLS0gTG9nIC0tLQogRHJvcCBydWxlICdrZWVwLWFwYXJ0 MScsIGJlY2F1c2UgcnVsZSBzaGFyZXMgdHdvIG9yIG1vcmUgcmVzb3VyY2VzIHdpdGggYSBwb3Np dGl2ZSByZXNvdXJjZSBhZmZpbml0eSBydWxlLgogRHJvcCBydWxlICdrZWVwLWFwYXJ0MicsIGJl Y2F1c2UgcnVsZSBzaGFyZXMgdHdvIG9yIG1vcmUgcmVzb3VyY2VzIHdpdGggYSBwb3NpdGl2ZSBy ZXNvdXJjZSBhZmZpbml0eSBydWxlLgorRHJvcCBydWxlICdzcGxpdC1rZWVwLWFwYXJ0MScsIGJl Y2F1c2UgcnVsZSBzaGFyZXMgdHdvIG9yIG1vcmUgcmVzb3VyY2VzIHdpdGggYSBwb3NpdGl2ZSBy ZXNvdXJjZSBhZmZpbml0eSBydWxlLgorRHJvcCBydWxlICdzcGxpdC1zdGljay10b2dldGhlcjEn LCBiZWNhdXNlIHJ1bGUgc2hhcmVzIHR3byBvciBtb3JlIHJlc291cmNlcyB3aXRoIGEgbmVnYXRp dmUgcmVzb3VyY2UgYWZmaW5pdHkgcnVsZS4KK0Ryb3AgcnVsZSAnc3BsaXQtc3RpY2stdG9nZXRo ZXIyJywgYmVjYXVzZSBydWxlIHNoYXJlcyB0d28gb3IgbW9yZSByZXNvdXJjZXMgd2l0aCBhIG5l Z2F0aXZlIHJlc291cmNlIGFmZmluaXR5IHJ1bGUuCiBEcm9wIHJ1bGUgJ3N0aWNrLXRvZ2V0aGVy MScsIGJlY2F1c2UgcnVsZSBzaGFyZXMgdHdvIG9yIG1vcmUgcmVzb3VyY2VzIHdpdGggYSBuZWdh dGl2ZSByZXNvdXJjZSBhZmZpbml0eSBydWxlLgogRHJvcCBydWxlICdzdGljay10b2dldGhlcjEn LCBiZWNhdXNlIHJ1bGUgc2hhcmVzIHR3byBvciBtb3JlIHJlc291cmNlcyB3aXRoIGEgbmVnYXRp dmUgcmVzb3VyY2UgYWZmaW5pdHkgcnVsZS4KIC0tLSBDb25maWcgLS0tCiAkVkFSMSA9IHsKLSAg ICAgICAgICAnZGlnZXN0JyA9PiAnNTA4NzViMzIwMDM0ZDhhYzdkZGVkMTg1ZTU5MGY1Zjg3YzRl MmJiNicsCisgICAgICAgICAgJ2RpZ2VzdCcgPT4gJzgwY2RjMTFhMWQ1YmYyZDFkNTAwNjY1YWYx MjEwY2Q1OWFhYmVkZTYnLAogICAgICAgICAgICdpZHMnID0+IHt9LAogICAgICAgICAgICdvcmRl cicgPT4ge30KICAgICAgICAgfTsKLS0gCjIuNDcuMgoKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGluZyBsaXN0CnB2ZS1kZXZl bEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFp bG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK