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 186CB1FF17A for ; Tue, 11 Nov 2025 13:29:07 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 51EAF950D; Tue, 11 Nov 2025 13:29:52 +0100 (CET) From: Samuel Rufinatscha To: pbs-devel@lists.proxmox.com Date: Tue, 11 Nov 2025 13:29:39 +0100 Message-ID: <20251111122941.110412-2-s.rufinatscha@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251111122941.110412-1-s.rufinatscha@proxmox.com> References: <20251111122941.110412-1-s.rufinatscha@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1762864163712 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.011 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 POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes 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 proxmox-backup 1/3] partial fix #6049: datastore: impl ConfigVersionCache fast path for lookups 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" UmVwZWF0ZWQgL3N0YXR1cyByZXF1ZXN0cyBjYXVzZWQgbG9va3VwX2RhdGFzdG9yZSgpIHRvIHJl LXJlYWQgYW5kCnBhcnNlIGRhdGFzdG9yZS5jZmcgb24gZXZlcnkgY2FsbC4gVGhlIGlzc3VlIHdh cyBtZW50aW9uZWQgaW4gcmVwb3J0CiM2MDQ5IFsxXS4gY2FyZ28tZmxhbWVncmFwaCBbMl0gY29u ZmlybWVkIHRoYXQgdGhlIGhvdCBwYXRoIGlzCmRvbWluYXRlZCBieSBwYnNfY29uZmlnOjpkYXRh c3RvcmU6OmNvbmZpZygpIChjb25maWcgcGFyc2luZykuCgpUaGlzIHBhdGNoIGFkZHMgYSBmYXN0 IHBhdGggdG8gbG9va3VwX2RhdGFzdG9yZSgpIHVzaW5nIHRoZSBzaGFyZWQtCm1lbW9yeSBDb25m aWdWZXJzaW9uQ2FjaGUgZ2VuZXJhdGlvbiBjb3VudGVyIGZvciBkYXRhc3RvcmUuY2ZnLiBJdApz dG9yZXMgdGhlIGxhc3Qgc2VlbiBnZW5lcmF0aW9uIG51bWJlciBhbG9uZ3NpZGUgdGhlIGNhY2hl ZApEYXRhU3RvcmVJbXBsIGFuZCwgd2hlbiBhIHN1YnNlcXVlbnQgbG9va3VwIHNlZXMgdGhlIHNh bWUgZ2VuZXJhdGlvbiwKd2UgcmV1c2UgdGhlIGNhY2hlZCBpbnN0YW5jZSB3aXRob3V0IHJlLXJl YWRpbmcgdGhlIG9uLWRpc2sgY29uZmlnLiBJZgp0aGUgZ2VuZXJhdGlvbiBkaWZmZXJzIChvciB0 aGUgY2FjaGUgaXMgdW5hdmFpbGFibGUpLCBpdCBmYWxscyBiYWNrIHRvCnRoZSBleGlzdGluZyBz bG93IHBhdGggd2l0aCBubyBiZWhhdmlvcmFsIGNoYW5nZXMuCgpCZWhhdmlvcmFsIG5vdGVzCgot IFRoZSBnZW5lcmF0aW9uIGlzIGJ1bXBlZCB2aWEgdGhlIGV4aXN0aW5nIHNhdmVfY29uZmlnKCkg cGF0aCwgc28KICBBUEktZHJpdmVuIGNvbmZpZyBjaGFuZ2VzIGFyZSBkZXRlY3RlZCBpbW1lZGlh dGVseS4KLSBNYW51YWwgZWRpdHMgdG8gZGF0YXN0b3JlLmNmZyBhcmUgbm90IGRldGVjdGVkIGJ5 IHRoaXMgY29tbWl0OyBhIFRUTAogIGd1YXJkIGlzIGludHJvZHVjZWQgaW4gYSBsYXRlciBwYXRj aCB0byBjb3ZlciB0aGF0IGNhc2UuCi0gRGF0YVN0b3JlOjpkcm9wIHN0aWxsIHBlcmZvcm1zIGEg Y29uZmlnIHJlYWQgb24gdGhlIGNvbW1vbiBwYXRoOyB0aGlzCiAgaXMgYWRkcmVzc2VkIGluIHRo ZSBuZXh0IHBhdGNoLgoKVGVzdGluZwoKY2FyZ28tZmxhbWVncmFwaCBjb25maXJtcyB0aGUgY29u ZmlnLXBhcnNlIGhvdHNwb3QgaW4KbG9va3VwX2RhdGFzdG9yZSgpIGRpc2FwcGVhcnMgZnJvbSB0 aGUgaG90IHBhdGguCgpBZGRpdGlvbmFsbHksIGFuIGVuZC10by1lbmQgYmVuY2htYXJrIHdhcyBw ZXJmb3JtZWQgdXNpbmcgdGhlCmAvc3RhdHVzP3ZlcmJvc2U9MGAgQVBJIHdpdGggMTAwMCBkYXRh c3RvcmVzLCA1IHJlcXVlc3RzIHBlciBzdG9yZSwKYW5kIDE2LXdheSBwYXJhbGxlbGlzbToKCnwg TWV0cmljICAgICAgICAgICAgICAgICAgIHwgQmVmb3JlIHwgQWZ0ZXIgIHwgzpQgKGFicykgfCDO lCAoJSkgICB8CnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0tOnw6LS0tLS0tOnw6 LS0tLS0tLTp8Oi0tLS0tLS06fAp8IFRvdGFsIHRpbWUgICAgICAgICAgICAgICB8IDEzcyAgICB8 IDExcyAgICB8IOKIkjJzICAgICB8IOKIkjE1LjM4JSB8CnwgVGhyb3VnaHB1dCAoYWxsIHJvdW5k cykgIHwgMzg0LjYyIHwgNDU0LjU1IHwgKzY5LjkzICB8ICsxOC4xOCUgfAp8IENvbGQgUlBTIChy b3VuZCAjMSkgICAgICB8IDc2LjkyICB8IDkwLjkxICB8ICsxMy45OSAgfCArMTguMTklIHwKfCBX YXJtIFJQUyAocm91bmRzIDIuLk4pICAgfCAzMDcuNjkgfCAzNjMuNjQgfCArNTUuOTUgIHwgKzE4 LjE4JSB8CgpUaHJvdWdocHV0IGltcHJvdmVkIGJ5IH4xOCUgb3ZlcmFsbCwgd2l0aCB0b3RhbCB0 aW1lIHJlZHVjZWQgYnkgfjE1JS4KV2FybSBsb29rdXBzIG5vdyByZXVzZSBjYWNoZWQgZGF0YXN0 b3JlIGluc3RhbmNlcyBhbmQgc2tpcCByZWR1bmRhbnQKY29uZmlnIHBhcnNpbmcgZW50aXJlbHku IFRoZSBmaXJzdC1hY2Nlc3Mgcm91bmQgYWxzbyBzaG93cyBhIHNpbWlsYXIKaW1wcm92ZW1lbnQs IGxpa2VseSBkdWUgdG8gcmVkdWNlZCBjb250ZW50aW9uIGFuZCBJL08gd2hlbiBtYW55IHN0b3Jl cwphcmUgYWNjZXNzZWQgaW4gcGFyYWxsZWwuCgpOb3RlOiBBIHNlY29uZCBob3RzcG90IHJlbWFp bnMgaW4gRHJvcCB3aGVyZSBhIGNvbmZpZyByZWFkIG9jY3VyczsgdGhhdAppcyBhZGRyZXNzZWQg aW4gdGhlIG5leHQgY29tbWl0LgoKTGlua3MKClsxXSBCdWd6aWxsYTogaHR0cHM6Ly9idWd6aWxs YS5wcm94bW94LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NjA0OQpbMl0gY2FyZ28tZmxhbWVncmFwaDog aHR0cHM6Ly9naXRodWIuY29tL2ZsYW1lZ3JhcGgtcnMvZmxhbWVncmFwaAoKRml4ZXM6ICM2MDQ5 ClNpZ25lZC1vZmYtYnk6IFNhbXVlbCBSdWZpbmF0c2NoYSA8cy5ydWZpbmF0c2NoYUBwcm94bW94 LmNvbT4KLS0tCiBwYnMtY29uZmlnL3NyYy9jb25maWdfdmVyc2lvbl9jYWNoZS5ycyB8IDEwICsr Ky0KIHBicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycyAgICAgICAgIHwgNzcgKysrKysrKysr KysrKysrKystLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgMjgg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvcGJzLWNvbmZpZy9zcmMvY29uZmlnX3ZlcnNpb25f Y2FjaGUucnMgYi9wYnMtY29uZmlnL3NyYy9jb25maWdfdmVyc2lvbl9jYWNoZS5ycwppbmRleCBl OGZiOTk0Zi4uYjg3NWY3ZTAgMTAwNjQ0Ci0tLSBhL3Bicy1jb25maWcvc3JjL2NvbmZpZ192ZXJz aW9uX2NhY2hlLnJzCisrKyBiL3Bicy1jb25maWcvc3JjL2NvbmZpZ192ZXJzaW9uX2NhY2hlLnJz CkBAIC0yNiw3ICsyNiw2IEBAIHN0cnVjdCBDb25maWdWZXJzaW9uQ2FjaGVEYXRhSW5uZXIgewog ICAgIC8vIFRyYWZmaWMgY29udHJvbCAodHJhZmZpYy1jb250cm9sLmNmZykgZ2VuZXJhdGlvbi92 ZXJzaW9uLgogICAgIHRyYWZmaWNfY29udHJvbF9nZW5lcmF0aW9uOiBBdG9taWNVc2l6ZSwKICAg ICAvLyBkYXRhc3RvcmUgKGRhdGFzdG9yZS5jZmcpIGdlbmVyYXRpb24vdmVyc2lvbgotICAgIC8v IEZJWE1FOiByZW1vdmUgd2l0aCBQQlMgMy4wCiAgICAgZGF0YXN0b3JlX2dlbmVyYXRpb246IEF0 b21pY1VzaXplLAogICAgIC8vIEFkZCBmdXJ0aGVyIGF0b21pY3MgaGVyZQogfQpAQCAtMTQ1LDgg KzE0NCwxNSBAQCBpbXBsIENvbmZpZ1ZlcnNpb25DYWNoZSB7CiAgICAgICAgICAgICAuZmV0Y2hf YWRkKDEsIE9yZGVyaW5nOjpBY3FSZWwpOwogICAgIH0KIAorICAgIC8vLyBSZXR1cm5zIHRoZSBk YXRhc3RvcmUgZ2VuZXJhdGlvbiBudW1iZXIuCisgICAgcHViIGZuIGRhdGFzdG9yZV9nZW5lcmF0 aW9uKCZzZWxmKSAtPiB1c2l6ZSB7CisgICAgICAgIHNlbGYuc2htZW0KKyAgICAgICAgICAgIC5k YXRhKCkKKyAgICAgICAgICAgIC5kYXRhc3RvcmVfZ2VuZXJhdGlvbgorICAgICAgICAgICAgLmxv YWQoT3JkZXJpbmc6OkFjcXVpcmUpCisgICAgfQorCiAgICAgLy8vIEluY3JlYXNlIHRoZSBkYXRh c3RvcmUgZ2VuZXJhdGlvbiBudW1iZXIuCi0gICAgLy8gRklYTUU6IHJlbW92ZSB3aXRoIFBCUyAz LjAgb3IgbWFrZSBhY3R1YWxseSB1c2VmdWwgYWdhaW4gaW4gZGF0YXN0b3JlIGxvb2t1cAogICAg IHB1YiBmbiBpbmNyZWFzZV9kYXRhc3RvcmVfZ2VuZXJhdGlvbigmc2VsZikgLT4gdXNpemUgewog ICAgICAgICBzZWxmLnNobWVtCiAgICAgICAgICAgICAuZGF0YSgpCmRpZmYgLS1naXQgYS9wYnMt ZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMgYi9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUu cnMKaW5kZXggNzBhZjk0ZDguLjE4ZWViYjU4IDEwMDY0NAotLS0gYS9wYnMtZGF0YXN0b3JlL3Ny Yy9kYXRhc3RvcmUucnMKKysrIGIvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzCkBAIC0z Miw3ICszMiw3IEBAIHVzZSBwYnNfYXBpX3R5cGVzOjp7CiAgICAgTWFpbnRlbmFuY2VUeXBlLCBP cGVyYXRpb24sIFVQSUQsCiB9OwogdXNlIHBic19jb25maWc6OnMzOjpTM19DRkdfVFlQRV9JRDsK LXVzZSBwYnNfY29uZmlnOjpCYWNrdXBMb2NrR3VhcmQ7Cit1c2UgcGJzX2NvbmZpZzo6e0JhY2t1 cExvY2tHdWFyZCwgQ29uZmlnVmVyc2lvbkNhY2hlfTsKIAogdXNlIGNyYXRlOjpiYWNrdXBfaW5m bzo6ewogICAgIEJhY2t1cERpciwgQmFja3VwR3JvdXAsIEJhY2t1cEluZm8sIE9MRF9MT0NLSU5H LCBQUk9URUNURURfTUFSS0VSX0ZJTEVOQU1FLApAQCAtMTQwLDEwICsxNDAsMTAgQEAgcHViIHN0 cnVjdCBEYXRhU3RvcmVJbXBsIHsKICAgICBsYXN0X2djX3N0YXR1czogTXV0ZXg8R2FyYmFnZUNv bGxlY3Rpb25TdGF0dXM+LAogICAgIHZlcmlmeV9uZXc6IGJvb2wsCiAgICAgY2h1bmtfb3JkZXI6 IENodW5rT3JkZXIsCi0gICAgbGFzdF9kaWdlc3Q6IE9wdGlvbjxbdTg7IDMyXT4sCiAgICAgc3lu Y19sZXZlbDogRGF0YXN0b3JlRlN5bmNMZXZlbCwKICAgICBiYWNrZW5kX2NvbmZpZzogRGF0YXN0 b3JlQmFja2VuZENvbmZpZywKICAgICBscnVfc3RvcmVfY2FjaGluZzogT3B0aW9uPExvY2FsRGF0 YXN0b3JlTHJ1Q2FjaGU+LAorICAgIGNhY2hlZF9jb25maWdfdGFnOiBPcHRpb248Q2FjaGVkRGF0 YXN0b3JlQ29uZmlnVGFnPiwKIH0KIAogaW1wbCBEYXRhU3RvcmVJbXBsIHsKQEAgLTE1NiwxMCAr MTU2LDEwIEBAIGltcGwgRGF0YVN0b3JlSW1wbCB7CiAgICAgICAgICAgICBsYXN0X2djX3N0YXR1 czogTXV0ZXg6Om5ldyhHYXJiYWdlQ29sbGVjdGlvblN0YXR1czo6ZGVmYXVsdCgpKSwKICAgICAg ICAgICAgIHZlcmlmeV9uZXc6IGZhbHNlLAogICAgICAgICAgICAgY2h1bmtfb3JkZXI6IERlZmF1 bHQ6OmRlZmF1bHQoKSwKLSAgICAgICAgICAgIGxhc3RfZGlnZXN0OiBOb25lLAogICAgICAgICAg ICAgc3luY19sZXZlbDogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgICAgICAgYmFja2VuZF9j b25maWc6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICAgICAgIGxydV9zdG9yZV9jYWNoaW5n OiBOb25lLAorICAgICAgICAgICAgY2FjaGVkX2NvbmZpZ190YWc6IE5vbmUsCiAgICAgICAgIH0p CiAgICAgfQogfQpAQCAtMjI0LDYgKzIyNCwxNSBAQCBwdWIgZW51bSBEYXRhc3RvcmVCYWNrZW5k IHsKICAgICBTMyhBcmM8UzNDbGllbnQ+KSwKIH0KIAorLy8vIFVzZWQgdG8gZGV0ZXJtaW5lIHdo ZXRoZXIgYSBjYWNoZWQgZGF0YXN0b3JlIGluc3RhbmNlIGlzIHN0aWxsIHZhbGlkCisvLy8gb3Ig bmVlZHMgdG8gYmUgcmVsb2FkZWQgYWZ0ZXIgYSBjb25maWcgY2hhbmdlLgorc3RydWN0IENhY2hl ZERhdGFzdG9yZUNvbmZpZ1RhZyB7CisgICAgLy8vIE1haW50ZW5hbmNlIG1vZGUgYXQgdGhlIHRp bWUgdGhlIGxvb2t1cCBoaW50IHdhcyBjYXB0dXJlZCwgaWYgYW55LgorICAgIGxhc3RfbWFpbnRl bmFuY2VfbW9kZTogT3B0aW9uPE1haW50ZW5hbmNlTW9kZT4sCisgICAgLy8vIERhdGFzdG9yZSBn ZW5lcmF0aW9uIG51bWJlciBmcm9tIGBDb25maWdWZXJzaW9uQ2FjaGVgOyBgTm9uZWAgd2hlbiB0 aGUgY2FjaGUgd2Fzbid0IGF2YWlsYWJsZS4KKyAgICBsYXN0X2dlbmVyYXRpb246IE9wdGlvbjx1 c2l6ZT4sCit9CisKIGltcGwgRGF0YVN0b3JlIHsKICAgICAvLyBUaGlzIG9uZSBqdXN0IHBhbmlj cyBvbiBldmVyeXRoaW5nCiAgICAgI1tkb2MoaGlkZGVuKV0KQEAgLTI5OSwxMyArMzA4LDQwIEBA IGltcGwgRGF0YVN0b3JlIHsKICAgICAgICAgLy8gd2UgdXNlIGl0IHRvIGRlY2lkZSB3aGV0aGVy IGl0IGlzIG9rYXkgdG8gZGVsZXRlIHRoZSBkYXRhc3RvcmUuCiAgICAgICAgIGxldCBfY29uZmln X2xvY2sgPSBwYnNfY29uZmlnOjpkYXRhc3RvcmU6OmxvY2tfY29uZmlnKCk/OwogCi0gICAgICAg IC8vIHdlIGNvdWxkIHVzZSB0aGUgQ29uZmlnVmVyc2lvbkNhY2hlJ3MgZ2VuZXJhdGlvbiBmb3Ig c3RhbGVuZXNzIGRldGVjdGlvbiwgYnV0ICB3ZSBsb2FkCi0gICAgICAgIC8vIHRoZSBjb25maWcg YW55d2F5IC0+IGp1c3QgdXNlIGRpZ2VzdCwgYWRkaXRpb25hbCBiZW5lZml0OiBtYW51YWwgY2hh bmdlcyBnZXQgZGV0ZWN0ZWQKLSAgICAgICAgbGV0IChjb25maWcsIGRpZ2VzdCkgPSBwYnNfY29u ZmlnOjpkYXRhc3RvcmU6OmNvbmZpZygpPzsKKyAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IGRh dGFzdG9yZS5jZmcgZ2VuZXJhdGlvbiBudW1iZXIKKyAgICAgICAgbGV0IGdlbl9udW0gPSBDb25m aWdWZXJzaW9uQ2FjaGU6Om5ldygpCisgICAgICAgICAgICAub2soKQorICAgICAgICAgICAgLm1h cCh8Y3wgYy5kYXRhc3RvcmVfZ2VuZXJhdGlvbigpKTsKKworICAgICAgICAvLyBGYXN0LXBhdGg6 IGlmIHdlIGhhdmUgYSBjYWNoZWQgZW50cnkgY3JlYXRlZCB1bmRlciB0aGUgc2FtZSBkYXRhc3Rv cmUuY2ZnIGdlbmVyYXRpb24gbnVtYmVyLCByZXVzZSBpdC4KKyAgICAgICAgaWYgbGV0IChTb21l KGdlbl9udW0pLCBTb21lKGRzKSkgPQorICAgICAgICAgICAgKGdlbl9udW0sIERBVEFTVE9SRV9N QVAubG9jaygpLnVud3JhcCgpLmdldChuYW1lKS5jbG9uZWQoKSkKKyAgICAgICAgeworICAgICAg ICAgICAgaWYgbGV0IFNvbWUoY2FjaGVkX3RhZykgPSAmZHMuY2FjaGVkX2NvbmZpZ190YWcgewor ICAgICAgICAgICAgICAgIGlmIGNhY2hlZF90YWcubGFzdF9nZW5lcmF0aW9uID09IFNvbWUoZ2Vu X251bSkgeworICAgICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShtbSkgPSAmY2FjaGVkX3Rh Zy5sYXN0X21haW50ZW5hbmNlX21vZGUgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGV0 IEVycihlcnJvcikgPSBtbS5jaGVjayhvcGVyYXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiYWlsISgiZGF0YXN0b3JlICd7bmFtZX0nIGlzIHVuYXZhaWxhYmxlOiB7ZXJyb3J9 Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUob3BlcmF0aW9uKSA9IG9wZXJhdGlvbiB7Cisg ICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfYWN0aXZlX29wZXJhdGlvbnMobmFtZSwgb3Bl cmF0aW9uLCAxKT87CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg cmV0dXJuIE9rKEFyYzo6bmV3KFNlbGYgeworICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXI6 IGRzLAorICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLAorICAgICAgICAgICAgICAg ICAgICB9KSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisK KyAgICAgICAgLy8gU2xvdyBwYXRoOiAocmUpbG9hZCBjb25maWcKKyAgICAgICAgbGV0IChjb25m aWcsIF9kaWdlc3QpID0gcGJzX2NvbmZpZzo6ZGF0YXN0b3JlOjpjb25maWcoKT87CiAgICAgICAg IGxldCBjb25maWc6IERhdGFTdG9yZUNvbmZpZyA9IGNvbmZpZy5sb29rdXAoImRhdGFzdG9yZSIs IG5hbWUpPzsKIAotICAgICAgICBpZiBsZXQgU29tZShtYWludGVuYW5jZV9tb2RlKSA9IGNvbmZp Zy5nZXRfbWFpbnRlbmFuY2VfbW9kZSgpIHsKLSAgICAgICAgICAgIGlmIGxldCBFcnIoZXJyb3Ip ID0gbWFpbnRlbmFuY2VfbW9kZS5jaGVjayhvcGVyYXRpb24pIHsKKyAgICAgICAgbGV0IG1haW50 ZW5hbmNlX21vZGUgPSBjb25maWcuZ2V0X21haW50ZW5hbmNlX21vZGUoKTsKKyAgICAgICAgaWYg bGV0IFNvbWUobW0pID0gJm1haW50ZW5hbmNlX21vZGUgeworICAgICAgICAgICAgaWYgbGV0IEVy cihlcnJvcikgPSBtbS5jaGVjayhvcGVyYXRpb24pIHsKICAgICAgICAgICAgICAgICBiYWlsISgi ZGF0YXN0b3JlICd7bmFtZX0nIGlzIHVuYXZhaWxhYmxlOiB7ZXJyb3J9Iik7CiAgICAgICAgICAg ICB9CiAgICAgICAgIH0KQEAgLTMyMSwxNiArMzU3LDYgQEAgaW1wbCBEYXRhU3RvcmUgewogCiAg ICAgICAgIC8vIHJldXNlIGNodW5rIHN0b3JlIHNvIHRoYXQgd2Uga2VlcCB1c2luZyB0aGUgc2Ft ZSBwcm9jZXNzIGxvY2tlciBpbnN0YW5jZSEKICAgICAgICAgbGV0IGNodW5rX3N0b3JlID0gaWYg bGV0IFNvbWUoZGF0YXN0b3JlKSA9ICZlbnRyeSB7Ci0gICAgICAgICAgICBsZXQgbGFzdF9kaWdl c3QgPSBkYXRhc3RvcmUubGFzdF9kaWdlc3QuYXNfcmVmKCk7Ci0gICAgICAgICAgICBpZiBsZXQg U29tZSh0cnVlKSA9IGxhc3RfZGlnZXN0Lm1hcCh8bGFzdF9kaWdlc3R8IGxhc3RfZGlnZXN0ID09 ICZkaWdlc3QpIHsKLSAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShvcGVyYXRpb24pID0gb3Bl cmF0aW9uIHsKLSAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2FjdGl2ZV9vcGVyYXRpb25zKG5h bWUsIG9wZXJhdGlvbiwgMSk/OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBy ZXR1cm4gT2soQXJjOjpuZXcoU2VsZiB7Ci0gICAgICAgICAgICAgICAgICAgIGlubmVyOiBBcmM6 OmNsb25lKGRhdGFzdG9yZSksCi0gICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiwKLSAgICAg ICAgICAgICAgICB9KSk7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBBcmM6OmNsb25lKCZk YXRhc3RvcmUuY2h1bmtfc3RvcmUpCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBsZXQg dHVuaW5nOiBEYXRhc3RvcmVUdW5pbmcgPSBzZXJkZV9qc29uOjpmcm9tX3ZhbHVlKApAQCAtMzQ0 LDcgKzM3MCwxMSBAQCBpbXBsIERhdGFTdG9yZSB7CiAgICAgICAgICAgICApPykKICAgICAgICAg fTsKIAotICAgICAgICBsZXQgZGF0YXN0b3JlID0gRGF0YVN0b3JlOjp3aXRoX3N0b3JlX2FuZF9j b25maWcoY2h1bmtfc3RvcmUsIGNvbmZpZywgU29tZShkaWdlc3QpKT87CisgICAgICAgIGxldCBt dXQgZGF0YXN0b3JlID0gRGF0YVN0b3JlOjp3aXRoX3N0b3JlX2FuZF9jb25maWcoY2h1bmtfc3Rv cmUsIGNvbmZpZyk/OworICAgICAgICBkYXRhc3RvcmUuY2FjaGVkX2NvbmZpZ190YWcgPSBTb21l KENhY2hlZERhdGFzdG9yZUNvbmZpZ1RhZyB7CisgICAgICAgICAgICBsYXN0X21haW50ZW5hbmNl X21vZGU6IG1haW50ZW5hbmNlX21vZGUsCisgICAgICAgICAgICBsYXN0X2dlbmVyYXRpb246IGdl bl9udW0sCisgICAgICAgIH0pOwogCiAgICAgICAgIGxldCBkYXRhc3RvcmUgPSBBcmM6Om5ldyhk YXRhc3RvcmUpOwogICAgICAgICBkYXRhc3RvcmVfY2FjaGUuaW5zZXJ0KG5hbWUudG9fc3RyaW5n KCksIGRhdGFzdG9yZS5jbG9uZSgpKTsKQEAgLTQzMCwxMSArNDYwLDcgQEAgaW1wbCBEYXRhU3Rv cmUgewogICAgICAgICAgICAgY29uZmlnLmFic29sdXRlX3BhdGgoKSwKICAgICAgICAgICAgIHR1 bmluZy5zeW5jX2xldmVsLnVud3JhcF9vcl9kZWZhdWx0KCksCiAgICAgICAgICk/OwotICAgICAg ICBsZXQgaW5uZXIgPSBBcmM6Om5ldyhTZWxmOjp3aXRoX3N0b3JlX2FuZF9jb25maWcoCi0gICAg ICAgICAgICBBcmM6Om5ldyhjaHVua19zdG9yZSksCi0gICAgICAgICAgICBjb25maWcsCi0gICAg ICAgICAgICBOb25lLAotICAgICAgICApPyk7CisgICAgICAgIGxldCBpbm5lciA9IEFyYzo6bmV3 KFNlbGY6OndpdGhfc3RvcmVfYW5kX2NvbmZpZyhBcmM6Om5ldyhjaHVua19zdG9yZSksIGNvbmZp Zyk/KTsKIAogICAgICAgICBpZiBsZXQgU29tZShvcGVyYXRpb24pID0gb3BlcmF0aW9uIHsKICAg ICAgICAgICAgIHVwZGF0ZV9hY3RpdmVfb3BlcmF0aW9ucygmbmFtZSwgb3BlcmF0aW9uLCAxKT87 CkBAIC00NDYsNyArNDcyLDYgQEAgaW1wbCBEYXRhU3RvcmUgewogICAgIGZuIHdpdGhfc3RvcmVf YW5kX2NvbmZpZygKICAgICAgICAgY2h1bmtfc3RvcmU6IEFyYzxDaHVua1N0b3JlPiwKICAgICAg ICAgY29uZmlnOiBEYXRhU3RvcmVDb25maWcsCi0gICAgICAgIGxhc3RfZGlnZXN0OiBPcHRpb248 W3U4OyAzMl0+LAogICAgICkgLT4gUmVzdWx0PERhdGFTdG9yZUltcGwsIEVycm9yPiB7CiAgICAg ICAgIGxldCBtdXQgZ2Nfc3RhdHVzX3BhdGggPSBjaHVua19zdG9yZS5iYXNlX3BhdGgoKTsKICAg ICAgICAgZ2Nfc3RhdHVzX3BhdGgucHVzaCgiLmdjLXN0YXR1cyIpOwpAQCAtNTA2LDEwICs1MzEs MTAgQEAgaW1wbCBEYXRhU3RvcmUgewogICAgICAgICAgICAgbGFzdF9nY19zdGF0dXM6IE11dGV4 OjpuZXcoZ2Nfc3RhdHVzKSwKICAgICAgICAgICAgIHZlcmlmeV9uZXc6IGNvbmZpZy52ZXJpZnlf bmV3LnVud3JhcF9vcihmYWxzZSksCiAgICAgICAgICAgICBjaHVua19vcmRlcjogdHVuaW5nLmNo dW5rX29yZGVyLnVud3JhcF9vcl9kZWZhdWx0KCksCi0gICAgICAgICAgICBsYXN0X2RpZ2VzdCwK ICAgICAgICAgICAgIHN5bmNfbGV2ZWw6IHR1bmluZy5zeW5jX2xldmVsLnVud3JhcF9vcl9kZWZh dWx0KCksCiAgICAgICAgICAgICBiYWNrZW5kX2NvbmZpZywKICAgICAgICAgICAgIGxydV9zdG9y ZV9jYWNoaW5nLAorICAgICAgICAgICAgY2FjaGVkX2NvbmZpZ190YWc6IE5vbmUsCiAgICAgICAg IH0pCiAgICAgfQogCi0tIAoyLjQ3LjMKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KcGJzLWRldmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMu cHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlz dGluZm8vcGJzLWRldmVsCg==