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 559811FF16B for ; Tue, 15 Jul 2025 16:34:51 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 149AF88BB; Tue, 15 Jul 2025 16:33:06 +0200 (CEST) From: Aaron Lauterer To: pve-devel@lists.proxmox.com Date: Tue, 15 Jul 2025 16:31:52 +0200 Message-Id: <20250715143218.1548306-9-a.lauterer@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250715143218.1548306-1-a.lauterer@proxmox.com> References: <20250715143218.1548306-1-a.lauterer@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -1.418 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_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_MAILER 2 Automated Mailer Tag Left in Email 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 cluster v3 3/4] status: introduce new pve-{type}- rrd and metric format 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" V2l0aCBQVkU5IG5vdyB3ZSBoYXZlIGFkZGl0aW9uYWwgZmllbGRzIGluIHRoZSBtZXRyaWNzIHRo YXQgYXJlCmNvbGxlY3RlZCBhbmQgZGlzdHJpYnV0ZWQgaW4gdGhlIGNsdXN0ZXIuIFRoZSBuZXcg ZmllbGRzL2NvbHVtbnMgYXJlCmFkZGVkIGF0IHRoZSBlbmQgb2YgdGhlIGV4aXN0aW5nIG9uZXMu IFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIFBWRTgKaW5zdGFsbGF0aW9ucyB0byBzdGlsbCB1 c2UgdGhlbSBieSBjdXR0aW5nIHRoZSBuZXcgYWRkaXRpb25hbCBkYXRhLgoKVG8gbWFrZSBpdCBt b3JlIGZ1dHVyZSBwcm9vZiwgdGhlIGZvcm1hdCBvZiB0aGUga2V5cyBmb3IgZWFjaCBtZXRyaWNz CmFyZSBub3cgY2hhbmdlZDoKCk9sZCBwcmUgUFZFOTogIHB2ZXt2ZXJzaW9ufS17dHlwZX0ve2lk fQpOb3cgd2l0aCBQVkU5OiBwdmUte3R5cGV9LXt2ZXJzaW9ufS97aWR9CgpUaGlzIHdheSB3ZSBo YXZlIGFuIGVhc2llciB0aW1lIHRvIGhhbmRsZSBuZXcgdmVyc2lvbnMgaW4gdGhlIGZ1dHVyZSBh cwp3ZSBpbml0aWFsbHkgb25seSBuZWVkIHRvIGNoZWNrIGZvciBgcHZlLXt0eXBlfS1gLiBJZiB3 ZSBrbm93IHRoZQp2ZXJzaW9uLCB3ZSBjYW4gaGFuZGxlIGl0IGFjY29yZGluZ2x5OyBlLmcuIHBh ZCBpZiBvbGRlciBmb3JtYXQgd2l0aAptaXNzaW5nIGRhdGEuIElmIHdlIGRvbid0IGtub3cgdGhl IHZlcnNpb24sIGl0IG11c3QgYmUgYSBuZXdlciBvbmUgYW5kCndlIGN1dCB0aGUgZGF0YSBzdHJl YW0gYXQgdGhlIGxlbmd0aCB3ZSBuZWVkIGZvciB0aGUgY3VycmVudCB2ZXJzaW9uLgoKVGhpcyBt ZWFucyBvZiBjb3Vyc2UgdGhhdCB0byBhdm9pZCBhIGJyZWFraW5nIGNoYW5nZSwgd2UgY2FuIG9u bHkgYWRkCm5ldyBjb2x1bW5zIGlmIG5lZWRlZCwgYnV0IG5vdCByZW1vdmUgYW55ISBCdXQgd2Fp dGluZyBmb3IgYSBicmVha2luZwpjaGFuZ2UgdW50aWwgdGhlIG5leHQgbWFqb3IgcmVsZWFzZSBp cyBhIHdvcnRoeSB0cmFkZS1vZmYgaWYgaXQgYWxsb3dzCnVzIHRvIGV4cGFuZCB0aGUgZm9ybWF0 IGluIGJldHdlZW4gaWYgbmVlZGVkLgoKVGhlICdycmRfc2tpcF9kYXRhJyBmdW5jdGlvbiBnb3Qg YSBuZXcgcGFyYW1ldGVyIGRlZmluaW5nIHRoZSBzZXBhdGFyaW5nCmNoYXJhY3Rlci4gVGhpcyB0 aGVuIG1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBpdCBhbHNvIHRvIGRldGVybWluZSB3aGljaApw YXJ0IG9mIHRoZSBrZXkgc3RyaW5nIGlzIHRoZSB2ZXJzaW9uL3R5cGUgYW5kIHdoaWNoIG9uZSBp cyB0aGUgYWN0dWFsCnJlc291cmNlIGlkZW50aWZpZXIuCgpXZSBhZGQgc2V2ZXJhbCBuZXcgY29s dW1ucyB0byBub2RlcyBhbmQgVk1zIChndWVzdCkgUlJEcy4gU2VlIGZ1dGhlcgpkb3duIGZvciBk ZXRhaWxzLiBBZGRpdGlvbmFsbHkgd2UgY2hhbmdlIHRoZSBSUkEgZGVmaW5pdGlvbnMgb24gaG93 IHdlCmFnZ3JlZ2F0ZSB0aGUgZGF0YSB0byBtYXRjaCBob3cgd2UgZG8gaXQgZm9yIHRoZSBQcm94 bW94IEJhY2t1cCBTZXJ2ZXIKWzBdLgoKVGhlIG1pZ3JhdGlvbiBvZiBhbiBleGlzdGluZyBpbnN0 YWxsYXRpb24gaXMgaGFuZGxlZCBieSBhIGRlZGljYXRlZAp0b29sLiBPbmx5IG9uY2UgdGhhdCBo YXMgaGFwcGVuZWQsIHdpbGwgd2Ugc3RvcmUgZGF0YSBpbiB0aGUgbmV3CmZvcm1hdC4KVGhpcyBs ZWF2ZXMgdXMgd2l0aCBhIGZldyBjYXNlcyB0byBoYW5kbGU6CgogIGRhdGEgcmVjdiDihpIgICAg ICAgICAgb2xkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3CiAg4oaTIHJyZCBm aWxlcwogLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIG5vbmUgICAgICAgIHwgY2hlY2sgaWYgZGly ZWN0b3JpZXMgZXhpc3RzOgogICAgICAgICAgICAgIHwgICAgIG5laXRoZXIgb2xkIG9yIG5ldyAt PiBuZXcKCSAgICAgIHwgICAgIG5ldyAgICAgICAgICAgICAgICAtPiBuZXcKCSAgICAgIHwgICAg IG9sZCBvbmx5ICAgICAgICAgICAtPiBvbGQKLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBvbmx5 IG9sZCAgICB8IHVzZSBvbGQgZmlsZSBhcyBpcyAgICAgICAgfCBjdXQgbmV3IGNvbHVtbnMgYW5k IHVzZSBvbGQgZmlsZQotLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIG5ldyBwcmVzZW50IHwgcGFk IGRhdGEgdG8gbWF0Y2ggbmV3IGZtdCB8IHVzZSBuZXcgZmlsZSBhcyBpcyBhbmQgcGFzcyBkYXRh CgpUbyBoYW5kbGUgdGhlIHBhZGRpbmcgd2UgdXNlIGEgYnVmZmVyLiBDdXR0aW5nIGNhbiBiZSBo YW5kbGVkIGFzIHdlCmFscmVhZHkgZG8gaXQgaW4gdGhlIHN0YWJsZS9ib29rd29ybSAoUFZFOCkg YnJhbmNoIGJ5IGludHJvZHVjaW5nIGEgbnVsbAp0ZXJtaW5hdG9yIGluIHRoZSBvcmlnaW5hbCBz dHJpbmcgYXQgdGhlIGVuZCBvZiB0aGUgZXhwZWN0ZWQgY29sdW1ucy4KCldlIGFkZCB0aGUgZm9s bG93aW5nIG5ldyBjb2x1bW5zOgoKTm9kZXM6CiogbWVtZnJlZQoqIGFyY3NpemUKKiBwcmVzc3Vy ZXM6CiAgKiBjcHUgc29tZQogICogaW8gc29tZQogICogaW8gZnVsbAogICogbWVtIHNvbWUKICAq IG1lbSBmdWxsCgpWTXM6CiogbWVtaG9zdCAobWVtb3J5IGNvbnN1bXB0aW9uIG9mIGFsbCBwcm9j ZXNzZXMgaW4gdGhlIGd1ZXN0cyBjZ3JvdXAsIGhvc3QgdmlldykKKiBwcmVzc3VyZXM6CiAgKiBj cHUgc29tZQogICogY3B1IGZ1bGwKICAqIGlvIHNvbWUKICAqIGlvIGZ1bGwKICAqIG1lbSBzb21l CiAgKiBtZW0gZnVsbAoKWzBdIGh0dHBzOi8vZ2l0LnByb3htb3guY29tLz9wPXByb3htb3gtYmFj a3VwLmdpdDthPWJsb2I7Zj1zcmMvc2VydmVyL21ldHJpY19jb2xsZWN0aW9uL3JyZC5ycztoPWVk MzljYzk0ZWUwNTY5MjRiN2FkYmMyMWI4NGMwMjA5NDc4YmNmNDI7aGI9ZGMzMjQ3MTZhNjg4YTY3 ZDcwMGZhMTMzNzI1NzQwYWM1ZDM3OTVjZSNsNzYKClNpZ25lZC1vZmYtYnk6IEFhcm9uIExhdXRl cmVyIDxhLmxhdXRlcmVyQHByb3htb3guY29tPgotLS0KIHNyYy9wbXhjZnMvc3RhdHVzLmMgfCAy NjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAyMzYgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL3BteGNmcy9zdGF0dXMuYyBiL3NyYy9wbXhjZnMvc3RhdHVzLmMKaW5kZXggNjQwNTQwZi4u NWVjZGExMiAxMDA2NDQKLS0tIGEvc3JjL3BteGNmcy9zdGF0dXMuYworKysgYi9zcmMvcG14Y2Zz L3N0YXR1cy5jCkBAIC0xMDk2LDYgKzEwOTYsOSBAQCBrdmVudHJ5X2hhc2hfc2V0KEdIYXNoVGFi bGUgKmt2aGFzaCwgY29uc3QgY2hhciAqa2V5LCBnY29uc3Rwb2ludGVyIGRhdGEsIHNpemVfdAog ICAgIHJldHVybiBUUlVFOwogfQogCisvLyBXZSBjcmVhdGUgdGhlIFJSRCBmaWxlcyB3aXRoIGEg NjAgc2Vjb25kIHN0ZXBzaXplLCB0aGVyZWZvcmUsIFJSQSB0aW1lc3RlcHMKKy8vIGFyZSBhbHd5 cyBwZXIgNjAgc2Vjb25kcy4gVGhlc2UgNjAgc2Vjb25kcyBhcmUgdXN1YWxseSBzaG93aW5nIHVw IGluIG90aGVyCisvLyBjb2RlIHBhdGhzIHdoZXJlIHdlIGludGVyYWN0IHdpdGggUlJEIGRhdGEh CiBzdGF0aWMgY29uc3QgY2hhciAqcnJkX2RlZl9ub2RlW10gPSB7CiAgICAgIkRTOmxvYWRhdmc6 R0FVR0U6MTIwOjA6VSIsCiAgICAgIkRTOm1heGNwdTpHQVVHRToxMjA6MDpVIiwKQEAgLTExMjQs NiArMTEyNywzOSBAQCBzdGF0aWMgY29uc3QgY2hhciAqcnJkX2RlZl9ub2RlW10gPSB7CiAgICAg TlVMTCwKIH07CiAKK3N0YXRpYyBjb25zdCBjaGFyICpycmRfZGVmX25vZGVfcHZlOV8wW10gPSB7 CisgICAgIkRTOmxvYWRhdmc6R0FVR0U6MTIwOjA6VSIsCisgICAgIkRTOm1heGNwdTpHQVVHRTox MjA6MDpVIiwKKyAgICAiRFM6Y3B1OkdBVUdFOjEyMDowOlUiLAorICAgICJEUzppb3dhaXQ6R0FV R0U6MTIwOjA6VSIsCisgICAgIkRTOm1lbXRvdGFsOkdBVUdFOjEyMDowOlUiLAorICAgICJEUzpt ZW11c2VkOkdBVUdFOjEyMDowOlUiLAorICAgICJEUzpzd2FwdG90YWw6R0FVR0U6MTIwOjA6VSIs CisgICAgIkRTOnN3YXB1c2VkOkdBVUdFOjEyMDowOlUiLAorICAgICJEUzpyb290dG90YWw6R0FV R0U6MTIwOjA6VSIsCisgICAgIkRTOnJvb3R1c2VkOkdBVUdFOjEyMDowOlUiLAorICAgICJEUzpu ZXRpbjpERVJJVkU6MTIwOjA6VSIsCisgICAgIkRTOm5ldG91dDpERVJJVkU6MTIwOjA6VSIsCisg ICAgIkRTOm1lbWZyZWU6R0FVR0U6MTIwOjA6VSIsCisgICAgIkRTOmFyY3NpemU6R0FVR0U6MTIw OjA6VSIsCisgICAgIkRTOnByZXNzdXJlY3B1c29tZTpHQVVHRToxMjA6MDpVIiwKKyAgICAiRFM6 cHJlc3N1cmVpb3NvbWU6R0FVR0U6MTIwOjA6VSIsCisgICAgIkRTOnByZXNzdXJlaW9mdWxsOkdB VUdFOjEyMDowOlUiLAorICAgICJEUzpwcmVzc3VyZW1lbW9yeXNvbWU6R0FVR0U6MTIwOjA6VSIs CisgICAgIkRTOnByZXNzdXJlbWVtb3J5ZnVsbDpHQVVHRToxMjA6MDpVIiwKKworICAgICJSUkE6 QVZFUkFHRTowLjU6MToxNDQwIiwgICAgLy8gMSBtaW4gKiAxNDQwID0+IDEgZGF5CisgICAgIlJS QTpBVkVSQUdFOjAuNTozMDoxNDQwIiwgICAvLyAzMCBtaW4gKiAxNDQwID0+IDMwIGRheQorICAg ICJSUkE6QVZFUkFHRTowLjU6MzYwOjE0NDAiLCAgLy8gNiBob3VycyAqIDE0NDAgPT4gMzYwIGRh eSB+MSB5ZWFyCisgICAgIlJSQTpBVkVSQUdFOjAuNToxMDA4MDo1NzAiLCAvLyAxIHdlZWsgKiA1 NzAgPT4gfjEwIHllYXJzCisKKyAgICAiUlJBOk1BWDowLjU6MToxNDQwIiwgICAgLy8gMSBtaW4g KiAxNDQwID0+IDEgZGF5CisgICAgIlJSQTpNQVg6MC41OjMwOjE0NDAiLCAgIC8vIDMwIG1pbiAq IDE0NDAgPT4gMzAgZGF5CisgICAgIlJSQTpNQVg6MC41OjM2MDoxNDQwIiwgIC8vIDYgaG91cnMg KiAxNDQwID0+IDM2MCBkYXkgfjEgeWVhcgorICAgICJSUkE6TUFYOjAuNToxMDA4MDo1NzAiLCAv LyAxIHdlZWsgKiA1NzAgPT4gfjEwIHllYXJzCisgICAgTlVMTCwKK307CisKIHN0YXRpYyBjb25z dCBjaGFyICpycmRfZGVmX3ZtW10gPSB7CiAgICAgIkRTOm1heGNwdTpHQVVHRToxMjA6MDpVIiwK ICAgICAiRFM6Y3B1OkdBVUdFOjEyMDowOlUiLApAQCAtMTE0OSw2ICsxMTg1LDM2IEBAIHN0YXRp YyBjb25zdCBjaGFyICpycmRfZGVmX3ZtW10gPSB7CiAgICAgIlJSQTpNQVg6MC41OjEwMDgwOjcw IiwgLy8gNyBkYXkgbWF4IC0gb255IHllYXIKICAgICBOVUxMLAogfTsKK3N0YXRpYyBjb25zdCBj aGFyICpycmRfZGVmX3ZtX3B2ZTlfMFtdID0geworICAgICJEUzptYXhjcHU6R0FVR0U6MTIwOjA6 VSIsCisgICAgIkRTOmNwdTpHQVVHRToxMjA6MDpVIiwKKyAgICAiRFM6bWF4bWVtOkdBVUdFOjEy MDowOlUiLAorICAgICJEUzptZW06R0FVR0U6MTIwOjA6VSIsCisgICAgIkRTOm1heGRpc2s6R0FV R0U6MTIwOjA6VSIsCisgICAgIkRTOmRpc2s6R0FVR0U6MTIwOjA6VSIsCisgICAgIkRTOm5ldGlu OkRFUklWRToxMjA6MDpVIiwKKyAgICAiRFM6bmV0b3V0OkRFUklWRToxMjA6MDpVIiwKKyAgICAi RFM6ZGlza3JlYWQ6REVSSVZFOjEyMDowOlUiLAorICAgICJEUzpkaXNrd3JpdGU6REVSSVZFOjEy MDowOlUiLAorICAgICJEUzptZW1ob3N0OkdBVUdFOjEyMDowOlUiLAorICAgICJEUzpwcmVzc3Vy ZWNwdXNvbWU6R0FVR0U6MTIwOjA6VSIsCisgICAgIkRTOnByZXNzdXJlY3B1ZnVsbDpHQVVHRTox MjA6MDpVIiwKKyAgICAiRFM6cHJlc3N1cmVpb3NvbWU6R0FVR0U6MTIwOjA6VSIsCisgICAgIkRT OnByZXNzdXJlaW9mdWxsOkdBVUdFOjEyMDowOlUiLAorICAgICJEUzpwcmVzc3VyZW1lbW9yeXNv bWU6R0FVR0U6MTIwOjA6VSIsCisgICAgIkRTOnByZXNzdXJlbWVtb3J5ZnVsbDpHQVVHRToxMjA6 MDpVIiwKKworICAgICJSUkE6QVZFUkFHRTowLjU6MToxNDQwIiwgICAgLy8gMSBtaW4gKiAxNDQw ID0+IDEgZGF5CisgICAgIlJSQTpBVkVSQUdFOjAuNTozMDoxNDQwIiwgICAvLyAzMCBtaW4gKiAx NDQwID0+IDMwIGRheQorICAgICJSUkE6QVZFUkFHRTowLjU6MzYwOjE0NDAiLCAgLy8gNiBob3Vy cyAqIDE0NDAgPT4gMzYwIGRheSB+MSB5ZWFyCisgICAgIlJSQTpBVkVSQUdFOjAuNToxMDA4MDo1 NzAiLCAvLyAxIHdlZWsgKiA1NzAgPT4gfjEwIHllYXJzCisKKyAgICAiUlJBOk1BWDowLjU6MTox NDQwIiwgICAgLy8gMSBtaW4gKiAxNDQwID0+IDEgZGF5CisgICAgIlJSQTpNQVg6MC41OjMwOjE0 NDAiLCAgIC8vIDMwIG1pbiAqIDE0NDAgPT4gMzAgZGF5CisgICAgIlJSQTpNQVg6MC41OjM2MDox NDQwIiwgIC8vIDYgaG91cnMgKiAxNDQwID0+IDM2MCBkYXkgfjEgeWVhcgorICAgICJSUkE6TUFY OjAuNToxMDA4MDo1NzAiLCAvLyAxIHdlZWsgKiA1NzAgPT4gfjEwIHllYXJzCisgICAgTlVMTCwK K307CiAKIHN0YXRpYyBjb25zdCBjaGFyICpycmRfZGVmX3N0b3JhZ2VbXSA9IHsKICAgICAiRFM6 dG90YWw6R0FVR0U6MTIwOjA6VSIsCkBAIC0xMTY4LDggKzEyMzQsMzAgQEAgc3RhdGljIGNvbnN0 IGNoYXIgKnJyZF9kZWZfc3RvcmFnZVtdID0gewogICAgIE5VTEwsCiB9OwogCitzdGF0aWMgY29u c3QgY2hhciAqcnJkX2RlZl9zdG9yYWdlX3B2ZTlfMFtdID0geworICAgICJEUzp0b3RhbDpHQVVH RToxMjA6MDpVIiwKKyAgICAiRFM6dXNlZDpHQVVHRToxMjA6MDpVIiwKKworICAgICJSUkE6QVZF UkFHRTowLjU6MToxNDQwIiwgICAgLy8gMSBtaW4gKiAxNDQwID0+IDEgZGF5CisgICAgIlJSQTpB VkVSQUdFOjAuNTozMDoxNDQwIiwgICAvLyAzMCBtaW4gKiAxNDQwID0+IDMwIGRheQorICAgICJS UkE6QVZFUkFHRTowLjU6MzYwOjE0NDAiLCAgLy8gNiBob3VycyAqIDE0NDAgPT4gMzYwIGRheSB+ MSB5ZWFyCisgICAgIlJSQTpBVkVSQUdFOjAuNToxMDA4MDo1NzAiLCAvLyAxIHdlZWsgKiA1NzAg PT4gfjEwIHllYXJzCisKKyAgICAiUlJBOk1BWDowLjU6MToxNDQwIiwgICAgLy8gMSBtaW4gKiAx NDQwID0+IDEgZGF5CisgICAgIlJSQTpNQVg6MC41OjMwOjE0NDAiLCAgIC8vIDMwIG1pbiAqIDE0 NDAgPT4gMzAgZGF5CisgICAgIlJSQTpNQVg6MC41OjM2MDoxNDQwIiwgIC8vIDYgaG91cnMgKiAx NDQwID0+IDM2MCBkYXkgfjEgeWVhcgorICAgICJSUkE6TUFYOjAuNToxMDA4MDo1NzAiLCAvLyAx IHdlZWsgKiA1NzAgPT4gfjEwIHllYXJzCisgICAgTlVMTCwKK307CisKICNkZWZpbmUgUlJERElS ICIvdmFyL2xpYi9ycmRjYWNoZWQvZGIiCiAKKy8vIEEgNGsgYnVmZmVyIHNob3VsZCBiZSBwbGVu dHkgdG8gdGVtcG9yYXJpbHkgc3RvcmUgUlJEIGRhdGEuIDY0IGJpdCBpbnRlZ2VycyBhcmUgMjAg Y2hhcnMgbG9uZywKKy8vIHBsdXMgdGhlIHNlcGFyYXRvciBjaGFyOiAoNDA5Ni0xKS8yMX4xOTUg Y29sdW1ucyBUaGlzIGJ1ZmZlciBpcyBvbmx5IHVzZWQgaW4gdGhlCisvLyBgdXBkYXRlX3JyZF9k YXRhYCBmdW5jdGlvbi4gSXQgaXMgc2FmZSB0byB1c2UgYXMgdGhlIGNhbGxpbmcgc2l0ZXMgZ2V0 IHRoZSBnbG9iYWwgbXV0ZXg6CisvLyBycmRfdXBkYXRlX2RhdGEgLT4gcnJkZW50cnlfaGFzaF9z ZXQgLT4gY2ZzX3N0YXR1c19zZXQgLyBhbmQgY2ZzX2t2c3RvcmVfbm9kZV9zZXQKK3N0YXRpYyBj aGFyIHJyZF9mb3JtYXRfdXBkYXRlX2J1ZmZlcls0MDk2XTsKKwogc3RhdGljIHZvaWQgY3JlYXRl X3JyZF9maWxlKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBpbnQgYXJnY291bnQsIGNvbnN0IGNoYXIg KnJyZGRlZltdKSB7CiAgICAgLyogc3RhcnQgYXQgZGF5IGJvdW5kYXJ5ICovCiAgICAgdGltZV90 IGN0aW1lOwpAQCAtMTIyOSw2ICsxMzE3LDggQEAgc3RhdGljIHZvaWQgdXBkYXRlX3JyZF9kYXRh KGNvbnN0IGNoYXIgKmtleSwgZ2NvbnN0cG9pbnRlciBkYXRhLCBzaXplX3QgbGVuKSB7CiAKICAg ICBpbnQgc2tpcCA9IDA7IC8vIGNvbHVtbnMgdG8gc2tpcCBhdCBiZWdpbm5pbmcuIFRoZXkgY29u dGFpbiBub24tYXJjaGl2YWJsZSBkYXRhLCBsaWtlIHVwdGltZSwKICAgICAgICAgICAgICAgICAg IC8vIHN0YXR1cywgaXMgZ3Vlc3QgYSB0ZW1wbGF0ZSBhbmQgc3VjaC4KKyAgICBpbnQgcGFkZGlu ZyA9IDA7IC8vIGhvdyBtYW55IGNvbHVtbnMgbmVlZCB0byBiZSBhZGRlZCB3aXRoICJVIiBpZiB3 ZSBnZXQgYW4gb2xkIGZvcm1hdCB0aGF0IGlzCisgICAgICAgICAgICAgICAgICAgICAvLyBtaXNz aW5nIGNvbHVtbnMgYXQgdGhlIGVuZC4KICAgICBpbnQga2VlcF9jb2x1bW5zID0gMDsgLy8gaG93 IG1hbnkgY29sdW1ucyBkbyB3ZSB3YW50IHRvIGtlZXAgKGFmdGVyIGluaXRpYWwgc2tpcCkgaW4g Y2FzZSB3ZSBnZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbW9yZSBjb2x1bW5zIHRo YW4gbmVlZGVkIGZyb20gYSBuZXdlciBmb3JtYXQKIApAQCAtMTI0MywyMCArMTMzMyw2MCBAQCBz dGF0aWMgdm9pZCB1cGRhdGVfcnJkX2RhdGEoY29uc3QgY2hhciAqa2V5LCBnY29uc3Rwb2ludGVy IGRhdGEsIHNpemVfdCBsZW4pIHsKICAgICAgICAgICAgIGdvdG8ga2V5ZXJyb3I7CiAgICAgICAg IH0KIAotICAgICAgICBza2lwID0gMjsgLy8gZmlyc3QgdHdvIGNvbHVtbnMgYXJlIGxpdmUgZGF0 YSB0aGF0IGlzbid0IGFyY2hpdmVkCisgICAgICAgIGZpbGVuYW1lID0gZ19zdHJkdXBfcHJpbnRm KFJSRERJUiAiL3B2ZS1ub2RlLTkuMC8lcyIsIG5vZGUpOworICAgICAgICBjaGFyICpmaWxlbmFt ZV9wdmUyID0gZ19zdHJkdXBfcHJpbnRmKFJSRERJUiAiL3B2ZTItbm9kZS8lcyIsIG5vZGUpOwog Ci0gICAgICAgIGlmIChzdHJuY21wKGtleSwgInB2ZS1ub2RlLSIsIDkpID09IDApIHsKLSAgICAg ICAgICAgIGtlZXBfY29sdW1ucyA9IDEyOyAvLyBwdmUyLW5vZGUgZm9ybWF0IHVzZXMgMTIgY29s dW1ucworICAgICAgICBpbnQgdXNlX3B2ZTJfZmlsZSA9IDA7CisKKyAgICAgICAgLy8gY2hlY2sg ZXhpc3RpbmcgcnJkIGZpbGVzIGFuZCBkaXJlY3RvcmllcworICAgICAgICBpZiAoZ19maWxlX3Rl c3QoZmlsZW5hbWUsIEdfRklMRV9URVNUX0VYSVNUUykpIHsKKyAgICAgICAgICAgIC8vIHB2ZS1u b2RlLTkuMCBmaWxlIGV4aXN0cywgd2UgdXNlIHRoYXQKKyAgICAgICAgICAgIC8vIFRPRE86IGdl dCBjb25kaXRpb25zIHNvLCB0aGF0IHdlIGRvIG5vdCBoYXZlIHRoaXMgZW1wdHkgYnJhbmNoCisg ICAgICAgIH0gZWxzZSBpZiAoZ19maWxlX3Rlc3QoZmlsZW5hbWVfcHZlMiwgR19GSUxFX1RFU1Rf RVhJU1RTKSkgeworICAgICAgICAgICAgLy8gb2xkIGZpbGUgZXhpc3RzLCB1c2UgaXQKKyAgICAg ICAgICAgIHVzZV9wdmUyX2ZpbGUgPSAxOworICAgICAgICAgICAgZmlsZW5hbWUgPSBnX3N0cmR1 cF9wcmludGYoIiVzIiwgZmlsZW5hbWVfcHZlMik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg ICAgICAvLyBuZWl0aGVyIGZpbGUgZXhpc3RzLCBjaGVjayBmb3IgZGlyZWN0b3JpZXMgdG8gZGVj aWRlIGFuZCBjcmVhdGUgZmlsZQorICAgICAgICAgICAgY2hhciAqZGlyX3B2ZTIgPSBnX3N0cmR1 cF9wcmludGYoUlJERElSICIvcHZlMi1ub2RlIik7CisgICAgICAgICAgICBjaGFyICpkaXJfcHZl OTAgPSBnX3N0cmR1cF9wcmludGYoUlJERElSICIvcHZlLW5vZGUtOS4wIik7CisKKyAgICAgICAg ICAgIGlmIChnX2ZpbGVfdGVzdChkaXJfcHZlOTAsIEdfRklMRV9URVNUX0lTX0RJUikpIHsKKwor ICAgICAgICAgICAgICAgIGludCBhcmdjb3VudCA9IHNpemVvZihycmRfZGVmX25vZGVfcHZlOV8w KSAvIHNpemVvZih2b2lkICopIC0gMTsKKyAgICAgICAgICAgICAgICBjcmVhdGVfcnJkX2ZpbGUo ZmlsZW5hbWUsIGFyZ2NvdW50LCBycmRfZGVmX25vZGVfcHZlOV8wKTsKKyAgICAgICAgICAgIH0g ZWxzZSBpZiAoZ19maWxlX3Rlc3QoZGlyX3B2ZTIsIEdfRklMRV9URVNUX0lTX0RJUikpIHsKKyAg ICAgICAgICAgICAgICB1c2VfcHZlMl9maWxlID0gMTsKKworICAgICAgICAgICAgICAgIGZpbGVu YW1lID0gZ19zdHJkdXBfcHJpbnRmKCIlcyIsIGZpbGVuYW1lX3B2ZTIpOworCisgICAgICAgICAg ICAgICAgaW50IGFyZ2NvdW50ID0gc2l6ZW9mKHJyZF9kZWZfbm9kZSkgLyBzaXplb2Yodm9pZCAq KSAtIDE7CisgICAgICAgICAgICAgICAgY3JlYXRlX3JyZF9maWxlKGZpbGVuYW1lLCBhcmdjb3Vu dCwgcnJkX2RlZl9ub2RlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg Ly8gbm8gZGlyIGV4aXN0cyB5ZXQsIHVzZSBuZXcgcHZlLW5vZGUtOS4wCisgICAgICAgICAgICAg ICAgbWtkaXIoUlJERElSICIvcHZlLW5vZGUtOS4wIiwgMDc1NSk7CisKKyAgICAgICAgICAgICAg ICBpbnQgYXJnY291bnQgPSBzaXplb2YocnJkX2RlZl9ub2RlX3B2ZTlfMCkgLyBzaXplb2Yodm9p ZCAqKSAtIDE7CisgICAgICAgICAgICAgICAgY3JlYXRlX3JyZF9maWxlKGZpbGVuYW1lLCBhcmdj b3VudCwgcnJkX2RlZl9ub2RlX3B2ZTlfMCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBn X2ZyZWUoZGlyX3B2ZTIpOworICAgICAgICAgICAgZ19mcmVlKGRpcl9wdmU5MCk7CiAgICAgICAg IH0KIAotICAgICAgICBmaWxlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZihSUkRESVIgIi9wdmUyLW5v ZGUvJXMiLCBub2RlKTsKKyAgICAgICAgc2tpcCA9IDI7IC8vIGZpcnN0IHR3byBjb2x1bW5zIGFy ZSBsaXZlIGRhdGEgdGhhdCBpc24ndCBhcmNoaXZlZAogCi0gICAgICAgIGlmICghZ19maWxlX3Rl c3QoZmlsZW5hbWUsIEdfRklMRV9URVNUX0VYSVNUUykpIHsKLSAgICAgICAgICAgIG1rZGlyKFJS RERJUiAiL3B2ZTItbm9kZSIsIDA3NTUpOwotICAgICAgICAgICAgaW50IGFyZ2NvdW50ID0gc2l6 ZW9mKHJyZF9kZWZfbm9kZSkgLyBzaXplb2Yodm9pZCAqKSAtIDE7Ci0gICAgICAgICAgICBjcmVh dGVfcnJkX2ZpbGUoZmlsZW5hbWUsIGFyZ2NvdW50LCBycmRfZGVmX25vZGUpOworICAgICAgICBp ZiAoc3RybmNtcChrZXksICJwdmUyLW5vZGUvIiwgMTApID09IDAgJiYgIXVzZV9wdmUyX2ZpbGUp IHsKKyAgICAgICAgICAgIHBhZGRpbmcgPSA3OyAvLyBwdmUtbm9kZS05LjAgaGFzIDcgbW9yZSBj b2x1bW5zIHRoYW4gcHZlMi1ub2RlCisgICAgICAgIH0gZWxzZSBpZiAoc3RybmNtcChrZXksICJw dmUtbm9kZS0iLCA5KSA9PSAwICYmIHVzZV9wdmUyX2ZpbGUpIHsKKyAgICAgICAgICAgIGtlZXBf Y29sdW1ucyA9IDEyOyAvLyBwdmUyLW5vZGUgZm9ybWF0IHVzZXMgMTIgY29sdW1ucworICAgICAg ICB9IGVsc2UgaWYgKHN0cm5jbXAoa2V5LCAicHZlLW5vZGUtOS4wLyIsIDEzKSAhPSAwKSB7Cisg ICAgICAgICAgICAvLyB3ZSByZWNlaXZlZCBhbiB1bmtub3duIGZvcm1hdCwgZXhwZWN0YXRpb24g aXMgaXQgaXMgbmV3ZXIgYW5kIGhhcyBtb3JlIGNvbHVtbnMKKyAgICAgICAgICAgIC8vIHRoYW4g d2UgY2FuIGN1cnJlbnRseSBoYW5kbGUKKyAgICAgICAgICAgIGtlZXBfY29sdW1ucyA9IDE5OyAv LyBwdmUtbm9kZS05LjAgZm9ybWF0IHVzZXMgMTkgY29sdW1ucwogICAgICAgICB9CiAKKyAgICAg ICAgZ19mcmVlKGZpbGVuYW1lX3B2ZTIpOworCiAgICAgfSBlbHNlIGlmIChzdHJuY21wKGtleSwg InB2ZTIuMy12bS8iLCAxMCkgPT0gMCB8fCBzdHJuY21wKGtleSwgInB2ZS12bS0iLCA3KSA9PSAw KSB7CiAKICAgICAgICAgY29uc3QgY2hhciAqdm1pZCA9IHJyZF9za2lwX2RhdGEoa2V5LCAxLCAn LycpOwpAQCAtMTI2OSwyMCArMTM5OSw2MCBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfcnJkX2RhdGEo Y29uc3QgY2hhciAqa2V5LCBnY29uc3Rwb2ludGVyIGRhdGEsIHNpemVfdCBsZW4pIHsKICAgICAg ICAgICAgIGdvdG8ga2V5ZXJyb3I7CiAgICAgICAgIH0KIAotICAgICAgICBza2lwID0gNDsgLy8g Zmlyc3QgNCBjb2x1bW5zIGFyZSBsaXZlIGRhdGEgdGhhdCBpc24ndCBhcmNoaXZlZAorICAgICAg ICBmaWxlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZihSUkRESVIgIi9wdmUtdm0tOS4wLyVzIiwgdm1p ZCk7CisgICAgICAgIGNoYXIgKmZpbGVuYW1lX3B2ZTIgPSBnX3N0cmR1cF9wcmludGYoUlJERElS ICIvJXMvJXMiLCAicHZlMi12bSIsIHZtaWQpOworCisgICAgICAgIGludCB1c2VfcHZlMl9maWxl ID0gMDsKKworICAgICAgICAvLyBjaGVjayBleGlzdGluZyBycmQgZmlsZXMgYW5kIGRpcmVjdG9y aWVzCisgICAgICAgIGlmIChnX2ZpbGVfdGVzdChmaWxlbmFtZSwgR19GSUxFX1RFU1RfRVhJU1RT KSkgeworICAgICAgICAgICAgLy8gcHZlLXZtLTkuMCBmaWxlIGV4aXN0cywgd2UgdXNlIHRoYXQK KyAgICAgICAgICAgIC8vIFRPRE86IGdldCBjb25kaXRpb25zIHNvLCB0aGF0IHdlIGRvIG5vdCBo YXZlIHRoaXMgZW1wdHkgYnJhbmNoCisgICAgICAgIH0gZWxzZSBpZiAoZ19maWxlX3Rlc3QoZmls ZW5hbWVfcHZlMiwgR19GSUxFX1RFU1RfRVhJU1RTKSkgeworICAgICAgICAgICAgLy8gb2xkIGZp bGUgZXhpc3RzLCB1c2UgaXQKKyAgICAgICAgICAgIHVzZV9wdmUyX2ZpbGUgPSAxOworICAgICAg ICAgICAgZmlsZW5hbWUgPSBnX3N0cmR1cF9wcmludGYoIiVzIiwgZmlsZW5hbWVfcHZlMik7Cisg ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBuZWl0aGVyIGZpbGUgZXhpc3RzLCBjaGVj ayBmb3IgZGlyZWN0b3JpZXMgdG8gZGVjaWRlIGFuZCBjcmVhdGUgZmlsZQorICAgICAgICAgICAg Y2hhciAqZGlyX3B2ZTIgPSBnX3N0cmR1cF9wcmludGYoUlJERElSICIvcHZlMi12bSIpOworICAg ICAgICAgICAgY2hhciAqZGlyX3B2ZTkwID0gZ19zdHJkdXBfcHJpbnRmKFJSRERJUiAiL3B2ZS12 bS05LjAiKTsKKworICAgICAgICAgICAgaWYgKGdfZmlsZV90ZXN0KGRpcl9wdmU5MCwgR19GSUxF X1RFU1RfSVNfRElSKSkgewogCi0gICAgICAgIGlmIChzdHJuY21wKGtleSwgInB2ZS12bS0iLCA3 KSA9PSAwKSB7Ci0gICAgICAgICAgICBrZWVwX2NvbHVtbnMgPSAxMDsgLy8gcHZlMi4zLXZtIGZv cm1hdCB1c2VzIDEwIGRhdGEgY29sdW1ucworICAgICAgICAgICAgICAgIGludCBhcmdjb3VudCA9 IHNpemVvZihycmRfZGVmX3ZtX3B2ZTlfMCkgLyBzaXplb2Yodm9pZCAqKSAtIDE7CisgICAgICAg ICAgICAgICAgY3JlYXRlX3JyZF9maWxlKGZpbGVuYW1lLCBhcmdjb3VudCwgcnJkX2RlZl92bV9w dmU5XzApOworICAgICAgICAgICAgfSBlbHNlIGlmIChnX2ZpbGVfdGVzdChkaXJfcHZlMiwgR19G SUxFX1RFU1RfSVNfRElSKSkgeworICAgICAgICAgICAgICAgIHVzZV9wdmUyX2ZpbGUgPSAxOwor CisgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBnX3N0cmR1cF9wcmludGYoIiVzIiwgZmlsZW5h bWVfcHZlMik7CisKKyAgICAgICAgICAgICAgICBpbnQgYXJnY291bnQgPSBzaXplb2YocnJkX2Rl Zl92bSkgLyBzaXplb2Yodm9pZCAqKSAtIDE7CisgICAgICAgICAgICAgICAgY3JlYXRlX3JyZF9m aWxlKGZpbGVuYW1lLCBhcmdjb3VudCwgcnJkX2RlZl92bSk7CisgICAgICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgICAgIC8vIG5vIGRpciBleGlzdHMgeWV0LCB1c2UgbmV3IHB2ZS12bS05 LjAKKyAgICAgICAgICAgICAgICBta2RpcihSUkRESVIgIi9wdmUtdm0tOS4wIiwgMDc1NSk7CisK KyAgICAgICAgICAgICAgICBpbnQgYXJnY291bnQgPSBzaXplb2YocnJkX2RlZl92bV9wdmU5XzAp IC8gc2l6ZW9mKHZvaWQgKikgLSAxOworICAgICAgICAgICAgICAgIGNyZWF0ZV9ycmRfZmlsZShm aWxlbmFtZSwgYXJnY291bnQsIHJyZF9kZWZfdm1fcHZlOV8wKTsKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICAgIGdfZnJlZShkaXJfcHZlMik7CisgICAgICAgICAgICBnX2ZyZWUoZGlyX3B2ZTkw KTsKICAgICAgICAgfQogCi0gICAgICAgIGZpbGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmKFJSRERJ UiAiLyVzLyVzIiwgInB2ZTItdm0iLCB2bWlkKTsKKyAgICAgICAgc2tpcCA9IDQ7IC8vIGZpcnN0 IDQgY29sdW1ucyBhcmUgbGl2ZSBkYXRhIHRoYXQgaXNuJ3QgYXJjaGl2ZWQKIAotICAgICAgICBp ZiAoIWdfZmlsZV90ZXN0KGZpbGVuYW1lLCBHX0ZJTEVfVEVTVF9FWElTVFMpKSB7Ci0gICAgICAg ICAgICBta2RpcihSUkRESVIgIi9wdmUyLXZtIiwgMDc1NSk7Ci0gICAgICAgICAgICBpbnQgYXJn Y291bnQgPSBzaXplb2YocnJkX2RlZl92bSkgLyBzaXplb2Yodm9pZCAqKSAtIDE7Ci0gICAgICAg ICAgICBjcmVhdGVfcnJkX2ZpbGUoZmlsZW5hbWUsIGFyZ2NvdW50LCBycmRfZGVmX3ZtKTsKKyAg ICAgICAgaWYgKHN0cm5jbXAoa2V5LCAicHZlMi4zLXZtLyIsIDEwKSA9PSAwICYmICF1c2VfcHZl Ml9maWxlKSB7CisgICAgICAgICAgICBwYWRkaW5nID0gNzsgLy8gcHZlLXZtLTkuMCBoYXMgNyBt b3JlIGNvbHVtbnMgdGhhbiBwdmUyLjMtdm0KKyAgICAgICAgfSBlbHNlIGlmIChzdHJuY21wKGtl eSwgInB2ZS12bS0iLCA3KSA9PSAwICYmIHVzZV9wdmUyX2ZpbGUpIHsKKyAgICAgICAgICAgIGtl ZXBfY29sdW1ucyA9IDEwOyAvLyBwdmUyLjMtdm0gZm9ybWF0IHVzZXMgMTAgY29sdW1ucworICAg ICAgICB9IGVsc2UgaWYgKHN0cm5jbXAoa2V5LCAicHZlLXZtLTkuMC8iLCAxMSkgIT0gMCkgewor ICAgICAgICAgICAgLy8gd2UgcmVjZWl2ZWQgYW4gdW5rbm93biBmb3JtYXQsIGV4cGVjdGF0aW9u IGlzIGl0IGlzIG5ld2VyIGFuZCBoYXMgbW9yZSBjb2x1bW5zCisgICAgICAgICAgICAvLyB0aGFu IHdlIGNhbiBjdXJyZW50bHkgaGFuZGxlCisgICAgICAgICAgICBrZWVwX2NvbHVtbnMgPSAxNzsg Ly8gcHZlLXZtLTkuMCBmb3JtYXQgdXNlcyAxOSBjb2x1bW5zCiAgICAgICAgIH0KIAorICAgICAg ICBnX2ZyZWUoZmlsZW5hbWVfcHZlMik7CisKICAgICB9IGVsc2UgaWYgKHN0cm5jbXAoa2V5LCAi cHZlMi1zdG9yYWdlLyIsIDEzKSA9PSAwIHx8IHN0cm5jbXAoa2V5LCAicHZlLXN0b3JhZ2UtIiwg MTIpID09IDApIHsKICAgICAgICAgY29uc3QgY2hhciAqbm9kZSA9IHJyZF9za2lwX2RhdGEoa2V5 LCAxLCAnLycpOyAvLyB3aWxsIGNvbnRhaW4ge25vZGV9L3tzdG9yYWdlfQogCkBAIC0xMzAwLDE4 ICsxNDcwLDUwIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9ycmRfZGF0YShjb25zdCBjaGFyICprZXks IGdjb25zdHBvaW50ZXIgZGF0YSwgc2l6ZV90IGxlbikgewogICAgICAgICAgICAgZ290byBrZXll cnJvcjsKICAgICAgICAgfQogCi0gICAgICAgIGZpbGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmKFJS RERJUiAiL3B2ZTItc3RvcmFnZS8lcyIsIG5vZGUpOworICAgICAgICBmaWxlbmFtZSA9IGdfc3Ry ZHVwX3ByaW50ZihSUkRESVIgIi9wdmUtc3RvcmFnZS05LjAvJXMiLCBub2RlKTsKKyAgICAgICAg Y2hhciAqZmlsZW5hbWVfcHZlMiA9IGdfc3RyZHVwX3ByaW50ZihSUkRESVIgIi8lcy8lcyIsICJw dmUyLXN0b3JhZ2UiLCBub2RlKTsKKworICAgICAgICAvLyBjaGVjayBleGlzdGluZyBycmQgZmls ZXMgYW5kIGRpcmVjdG9yaWVzCisgICAgICAgIGlmIChnX2ZpbGVfdGVzdChmaWxlbmFtZSwgR19G SUxFX1RFU1RfRVhJU1RTKSkgeworICAgICAgICAgICAgLy8gcHZlLXN0b3JhZ2UtOS4wIGZpbGUg ZXhpc3RzLCB3ZSB1c2UgdGhhdAorICAgICAgICAgICAgLy8gVE9ETzogZ2V0IGNvbmRpdGlvbnMg c28sIHRoYXQgd2UgZG8gbm90IGhhdmUgdGhpcyBlbXB0eSBicmFuY2gKKyAgICAgICAgfSBlbHNl IGlmIChnX2ZpbGVfdGVzdChmaWxlbmFtZV9wdmUyLCBHX0ZJTEVfVEVTVF9FWElTVFMpKSB7Cisg ICAgICAgICAgICAvLyBvbGQgZmlsZSBleGlzdHMsIHVzZSBpdAorICAgICAgICAgICAgZmlsZW5h bWUgPSBnX3N0cmR1cF9wcmludGYoIiVzIiwgZmlsZW5hbWVfcHZlMik7CisgICAgICAgIH0gZWxz ZSB7CisgICAgICAgICAgICAvLyBuZWl0aGVyIGZpbGUgZXhpc3RzLCBjaGVjayBmb3IgZGlyZWN0 b3JpZXMgdG8gZGVjaWRlIGFuZCBjcmVhdGUgZmlsZQorICAgICAgICAgICAgY2hhciAqZGlyX3B2 ZTIgPSBnX3N0cmR1cF9wcmludGYoUlJERElSICIvcHZlMi1zdG9yYWdlIik7CisgICAgICAgICAg ICBjaGFyICpkaXJfcHZlOTAgPSBnX3N0cmR1cF9wcmludGYoUlJERElSICIvcHZlLXN0b3JhZ2Ut OS4wIik7CisKKyAgICAgICAgICAgIGlmIChnX2ZpbGVfdGVzdChkaXJfcHZlOTAsIEdfRklMRV9U RVNUX0lTX0RJUikpIHsKKworICAgICAgICAgICAgICAgIGludCBhcmdjb3VudCA9IHNpemVvZihy cmRfZGVmX3N0b3JhZ2VfcHZlOV8wKSAvIHNpemVvZih2b2lkICopIC0gMTsKKyAgICAgICAgICAg ICAgICBjcmVhdGVfcnJkX2ZpbGUoZmlsZW5hbWUsIGFyZ2NvdW50LCBycmRfZGVmX3N0b3JhZ2Vf cHZlOV8wKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZ19maWxlX3Rlc3QoZGlyX3B2ZTIsIEdf RklMRV9URVNUX0lTX0RJUikpIHsKKyAgICAgICAgICAgICAgICBmaWxlbmFtZSA9IGdfc3RyZHVw X3ByaW50ZigiJXMiLCBmaWxlbmFtZV9wdmUyKTsKIAotICAgICAgICBpZiAoIWdfZmlsZV90ZXN0 KGZpbGVuYW1lLCBHX0ZJTEVfVEVTVF9FWElTVFMpKSB7Ci0gICAgICAgICAgICBta2RpcihSUkRE SVIgIi9wdmUyLXN0b3JhZ2UiLCAwNzU1KTsKLSAgICAgICAgICAgIGNoYXIgKmRpciA9IGdfcGF0 aF9nZXRfZGlybmFtZShmaWxlbmFtZSk7Ci0gICAgICAgICAgICBta2RpcihkaXIsIDA3NTUpOwot ICAgICAgICAgICAgZ19mcmVlKGRpcik7CisgICAgICAgICAgICAgICAgaW50IGFyZ2NvdW50ID0g c2l6ZW9mKHJyZF9kZWZfc3RvcmFnZSkgLyBzaXplb2Yodm9pZCAqKSAtIDE7CisgICAgICAgICAg ICAgICAgY3JlYXRlX3JyZF9maWxlKGZpbGVuYW1lLCBhcmdjb3VudCwgcnJkX2RlZl9zdG9yYWdl KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gbm8gZGlyIGV4aXN0 cyB5ZXQsIHVzZSBuZXcgcHZlLXN0b3JhZ2UtOS4wCisgICAgICAgICAgICAgICAgbWtkaXIoUlJE RElSICIvcHZlLXN0b3JhZ2UtOS4wIiwgMDc1NSk7CiAKLSAgICAgICAgICAgIGludCBhcmdjb3Vu dCA9IHNpemVvZihycmRfZGVmX3N0b3JhZ2UpIC8gc2l6ZW9mKHZvaWQgKikgLSAxOwotICAgICAg ICAgICAgY3JlYXRlX3JyZF9maWxlKGZpbGVuYW1lLCBhcmdjb3VudCwgcnJkX2RlZl9zdG9yYWdl KTsKKyAgICAgICAgICAgICAgICBpbnQgYXJnY291bnQgPSBzaXplb2YocnJkX2RlZl9zdG9yYWdl X3B2ZTlfMCkgLyBzaXplb2Yodm9pZCAqKSAtIDE7CisgICAgICAgICAgICAgICAgY3JlYXRlX3Jy ZF9maWxlKGZpbGVuYW1lLCBhcmdjb3VudCwgcnJkX2RlZl9zdG9yYWdlX3B2ZTlfMCk7CisgICAg ICAgICAgICB9CisgICAgICAgICAgICBnX2ZyZWUoZGlyX3B2ZTIpOworICAgICAgICAgICAgZ19m cmVlKGRpcl9wdmU5MCk7CiAgICAgICAgIH0KIAorICAgICAgICAvLyBhY3R1YWwgZGF0YSBjb2x1 bW5zIGRpZG4ndCBjaGFuZ2UgYmV0d2VlbiBwdmUyLXN0b3JhZ2UgYW5kIHB2ZS1zdG9yYWdlLTku MAorICAgICAgICBpZiAoc3RybmNtcChrZXksICJwdmUtc3RvcmFnZS0iLCAxMikgPT0gMCAmJiBz dHJuY21wKGtleSwgInB2ZS1zdG9yYWdlLTkuMC8iLCAxNikgIT0gMCkgeworICAgICAgICAgICAg Ly8gd2UgcmVjZWl2ZWQgYW4gdW5rbm93biBmb3JtYXQsIGV4cGVjdGF0aW9uIGlzIGl0IGlzIG5l d2VyIGFuZCBoYXMgbW9yZSBjb2x1bW5zCisgICAgICAgICAgICAvLyB0aGFuIHdlIGNhbiBjdXJy ZW50bHkgaGFuZGxlCisgICAgICAgICAgICBrZWVwX2NvbHVtbnMgPSAyOyAvLyBwdmUtc3RvcmFn ZS05LjAgZm9ybWF0IHVzZXMgMiBjb2x1bW5zCisgICAgICAgIH0KKworICAgICAgICBnX2ZyZWUo ZmlsZW5hbWVfcHZlMik7CisKICAgICB9IGVsc2UgewogICAgICAgICBnb3RvIGtleWVycm9yOwog ICAgIH0KQEAgLTEzMjUsNyArMTUyNywxNiBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfcnJkX2RhdGEo Y29uc3QgY2hhciAqa2V5LCBnY29uc3Rwb2ludGVyIGRhdGEsIHNpemVfdCBsZW4pIHsKICAgICAg ICAgKihjdXQgLSAxKSA9IDA7IC8vIHRlcm1pbmF0ZSBzdHJpbmcgYnkgcmVwbGFjaW5nIGNvbG9u IGZyb20gZmllbGQgc2VwYXJhdG9yIHdpdGggemVyby4KICAgICB9CiAKLSAgICBjb25zdCBjaGFy ICp1cGRhdGVfYXJnc1tdID0ge2RwLCBOVUxMfTsKKyAgICBjb25zdCBjaGFyICp1cGRhdGVfYXJn c1tdID0ge05VTEwsIE5VTEx9OworICAgIGlmIChwYWRkaW5nKSB7CisgICAgICAgIC8vIGFkZCBw YWRkaW5nICJVIiBjb2x1bW5zIHRvIGRhdGEgc3RyaW5nCisgICAgICAgIGNoYXIgKnBhZHNyYyA9 CisgICAgICAgICAgICAiOlU6VTpVOlU6VTpVOlU6VTpVOlU6VTpVOlU6VTpVOlU6VTpVOlU6VTpV OlU6VTpVOlUiOyAvLyBjYW4gcGFkIHVwIHRvIDI1IGNvbHVtbnMKKyAgICAgICAgZ19zbnByaW50 ZihycmRfZm9ybWF0X3VwZGF0ZV9idWZmZXIsIDEwMjQgKiA0LCAiJXMlLipzIiwgZHAsIHBhZGRp bmcgKiAyLCBwYWRzcmMpOworICAgICAgICB1cGRhdGVfYXJnc1swXSA9IHJyZF9mb3JtYXRfdXBk YXRlX2J1ZmZlcjsKKyAgICB9IGVsc2UgeworICAgICAgICB1cGRhdGVfYXJnc1swXSA9IGRwOwor ICAgIH0KIAogICAgIGlmICh1c2VfZGFlbW9uKSB7CiAgICAgICAgIGludCBzdGF0dXM7Ci0tIAoy LjM5LjUKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K cHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6 Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==