From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (unknown [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 9832B1FF141 for ; Fri, 16 Jan 2026 15:28:56 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 3DC391A7F3; Fri, 16 Jan 2026 15:28:52 +0100 (CET) MIME-Version: 1.0 In-Reply-To: <845335b1-78b7-4710-805a-d2ff464ceba0@proxmox.com> References: <20260109173548.301653-1-r.obkircher@proxmox.com> <20260109173548.301653-2-r.obkircher@proxmox.com> <1768390129.t2gtpb8x7e.astroid@yuna.none> <845335b1-78b7-4710-805a-d2ff464ceba0@proxmox.com> From: Fabian =?utf-8?q?Gr=C3=BCnbichler?= To: Proxmox Backup Server development discussion Date: Fri, 16 Jan 2026 15:28:13 +0100 Message-ID: <176857369362.137827.9885953475732630098@yuna.proxmox.com> User-Agent: alot/0.0.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1768573648106 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.046 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_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com, datastore.rs] Subject: Re: [pbs-devel] [PATCH v3 proxmox-backup 1/5] fix #3847: datastore: support writing fidx files of unknown size 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" UXVvdGluZyBSb2JlcnQgT2JraXJjaGVyICgyMDI2LTAxLTE2IDEzOjQyOjM2KQo+IAo+IE9uIDEv MTQvMjYgMTQ6MTMsIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4gPiBPbiBKYW51YXJ5IDks IDIwMjYgNjozNSBwbSwgUm9iZXJ0IE9ia2lyY2hlciB3cm90ZToKPiA+PiBVc2UgbXJlbWFwIGFu ZCBmdHJ1bmNhdGUgdG8gc3VwcG9ydCBncm93YWJsZSBGaXhlZEluZGV4V3JpdGVycy4gR3Jvdwo+ ID4+IGV4cG9uZW50aWFsbHkgZnJvbSBhIHNtYWxsIGluaXRpYWwgaW5kZXggc2l6ZSBmb3IgZWZm aWNpZW5jeS4gVHJ1bmNhdGUKPiA+PiBleGNlc3NpdmUgY2FwYWNpdHkgYWZ0ZXIgZW5jb3VudGVy aW5nIGEgbm9uLWZ1bGwgYmxvY2sgb3Igb24gY2xvc2UuCj4gPj4KPiA+PiBTaWduZWQtb2ZmLWJ5 OiBSb2JlcnQgT2JraXJjaGVyPHIub2JraXJjaGVyQHByb3htb3guY29tPgo+ID4+IC0tLQo+ID4+ ICAgcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzICAgfCAgIDIgKy0KPiA+PiAgIHBicy1k YXRhc3RvcmUvc3JjL2ZpeGVkX2luZGV4LnJzIHwgMTIwICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0KPiA+PiAgIDIgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCj4gPj4KPiA+PiBkaWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0 b3JlLnJzIGIvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzCj4gPj4gaW5kZXggOWM1N2Fh YWMuLmFmNzEyNzI2IDEwMDY0NAo+ID4+IC0tLSBhL3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9y ZS5ycwo+ID4+ICsrKyBiL3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycwo+ID4+IEBAIC01 OTEsNyArNTkxLDcgQEAgaW1wbCBEYXRhU3RvcmUgewo+ID4+ICAgICAgIHB1YiBmbiBjcmVhdGVf Zml4ZWRfd3JpdGVyPFA6IEFzUmVmPFBhdGg+PigKPiA+PiAgICAgICAgICAgJnNlbGYsCj4gPj4g ICAgICAgICAgIGZpbGVuYW1lOiBQLAo+ID4+IC0gICAgICAgIHNpemU6IHVzaXplLAo+ID4+ICsg ICAgICAgIHNpemU6IE9wdGlvbjx1c2l6ZT4sCj4gPj4gICAgICAgICAgIGNodW5rX3NpemU6IHVz aXplLAo+ID4+ICAgICAgICkgLT4gUmVzdWx0PEZpeGVkSW5kZXhXcml0ZXIsIEVycm9yPiB7Cj4g Pj4gICAgICAgICAgIGxldCBpbmRleCA9IEZpeGVkSW5kZXhXcml0ZXI6OmNyZWF0ZSgKPiA+PiBk aWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMvZml4ZWRfaW5kZXgucnMgYi9wYnMtZGF0YXN0 b3JlL3NyYy9maXhlZF9pbmRleC5ycwo+ID4+IGluZGV4IDZjM2JlMmQ0Li44MDM2YTUxOSAxMDA2 NDQKPiA+PiAtLS0gYS9wYnMtZGF0YXN0b3JlL3NyYy9maXhlZF9pbmRleC5ycwo+ID4+ICsrKyBi L3Bicy1kYXRhc3RvcmUvc3JjL2ZpeGVkX2luZGV4LnJzCj4gPj4gQEAgLTIxOSw5ICsyMTksMTIg QEAgcHViIHN0cnVjdCBGaXhlZEluZGV4V3JpdGVyIHsKPiA+PiAgICAgICBjaHVua19zaXplOiB1 c2l6ZSwKPiA+PiAgICAgICBzaXplOiB1c2l6ZSwKPiA+PiAgICAgICBpbmRleF9sZW5ndGg6IHVz aXplLAo+ID4+ICsgICAgaW5kZXhfY2FwYWNpdHk6IHVzaXplLAo+ID4gY2h1bmtfc2l6ZSBhbmQg c2l6ZSBlZmZlY3RpdmVseSBhbHJlYWR5IGdpdmUgeW91IGluZGV4X2xlbmd0aCAoYXMgaW4sCj4g PiBob3cgbWFueSAic2xvdHMiIGFyZSBhbGxvd2VkIHRvIGJlIHVzZWQpLCBzbyBpbmRleCBsZW5n dGggYW5kIGluZGV4Cj4gPiBjYXBhY2l0eSBjYW4gYmUgYSBzaW5nbGUgZmllbGQuIGlmIHlvdSB3 YW50IHRvIHJlbmFtZSBpdCB0byBzaWduaWZ5IHRoYXQKPiA+IGl0IG1pZ2h0IG5vdyBiZSBiaWdn ZXIgdGhhbiBjZWlsKHNpemUvY2h1bmtfc2l6ZSksIHRoYXQncyBmaW5lLCBidXQgSQo+ID4gZG9u J3QgdGhpbmsgd2UgbmVlZCB0byBkdXBsaWNhdGUgaXQgYW5kIGNvbXBsaWNhdGUgdGhlIGNvZGUg YmVsb3cuLgo+IEJ5IHRoYXQgbG9naWMgKGNodW5rX3NpemUsIHNpemUsIGdyb3dhYmxlX3NpemUp IGFsc28gZ2l2ZSBtZSB0aGUgY2FwYWNpdHksCj4gc28gYm90aCBmaWVsZHMgY291bGQgYmUgcmVt b3ZlZC4KCnRoYXQncyB0cnVlIDopCgo+IEkga2VwdCB0aGVtIGFzIHNlcGFyYXRlIGZpZWxkcyBi ZWNhdXNlIHRoYXQgaXMgd2hhdCB0aGUgb3JpZ2luYWwgY29kZSBhbmQKPiB0aGUgUmVhZGVyIGRv LCBzdXBwb3NlZGx5IHRvIGF2b2lkIHRoZSBkaXZpc2lvbiBmb3IgdGhlIGJvdW5kcyBjaGVjay4K CndlIGVmZmVjdGl2ZWx5IGRvIHRoYXQgYm91bmRzIGNoZWNrIHR3aWNlIHRob3VnaCAtIG9uY2Ug Zm9yIHNpemUgKGluCmNoZWNrX2NodW5rX2FsaWdubWVudCkgYW5kIGFnYWluIGZvciBpbmRleF9s ZW5ndGggKHdoaWNoIGlzIGRlcml2ZWQgMToxIGZyb20Kc2l6ZSBhbmQgY2h1bmtfc2l6ZSkgaW4g YWRkX2RpZ2VzdC4uIGFuZCB0aGUgYmFja3VwIGVudiBjYWxscwpjaGVja19jaHVua19hbGlnbm1l bnQgcmlnaHQgYmVmb3JlIGNhbGxpbmcgYWRkX2RpZ2VzdC4gd2hlbiBjb3B5aW5nIGZyb20gYQpy ZWFkZXIgZGlyZWN0bHkgdG8gdGhlIHdyaXRlciB0aGF0IGRvZXMgbm90IGhhcHBlbiwgYnV0IGlu IHRoYXQgY2FzZSB3ZSBhbHJlYWR5CmNoZWNrZWQgdGhhdCB0aGUgaW5kZXggYW5kIGNodW5rIHNp emVzIG1hdGNoIGJlZm9yZSB3ZSBzdGFydCBhZGRpbmcgdGhlIGZpcnN0CmRpZ2VzdCwgc28gdGhl IGNoZWNrIGluIGFkZF9kaWdlc3QgaXMgcmVkdW5kYW50IHRoZXJlIGFzIHdlbGwuLgoKSSBub3cg d29uZGVyIHdlIGNvdWxkIGNvbWJpbmUgY2hlY2tfY2h1bmtfYWxpZ25tZW50IGFuZCBncm93X3Rv X3NpemUsIHNpbmNlCnRoZXkgaGFuZGxlIHF1aXRlIHNpbWlsYXIgYXNwZWN0cyBhbmQgYm90aCBv bmx5IGhhdmUgYSBzaW5nbGUgY2FsbCBzaXRlIG91dHNpZGUKb2YgdGVzdHMsIHdoaWNoIGlzIHJp Z2h0IG5leHQgdG8gZWFjaG90aGVyLi4gb3IgKHNlZSBiZWxvdykKCj4gCj4gVGhpcyBhbHNvIG1h a2VzIGl0IG11Y2ggbW9yZSBleHBsaWNpdCB3aGF0IGlzIGdvaW5nIG9uIGFuZCBzaW5jZSB0aGUK PiBpbmRleF9sZW5ndGggaGFzIHRvIGJlIGNvbXB1dGVkIGFueXdheSB3aGlsZSByZXNpemluZywg SSBkb24ndCBzZWUgaG93Cj4gc3RvcmluZyB0aGF0IHZhbHVlIGZvciBsYXRlciBpcyBtb3JlIGNv bXBsaWNhdGVkIHRoYW4gcmVjb21wdXRpbmcgaXQuCj4gCj4gPj4gICAgICAgaW5kZXg6ICptdXQg dTgsCj4gPj4gICAgICAgcHViIHV1aWQ6IFt1ODsgMTZdLAo+ID4+ICAgICAgIHB1YiBjdGltZTog aTY0LAo+ID4+ICsgICAgZ3Jvd2FibGVfc2l6ZTogYm9vbCwKPiA+PiArICAgIHdyaXRlX3NpemVf b25fY2xvc2U6IGJvb2wsCj4gPj4gICB9Cj4gPj4gICAKPiA+PiAgIC8vIGBpbmRleGAgaXMgbW1h cCgpZWQgd2hpY2ggY2Fubm90IGJlIHRocmVhZC1sb2NhbCBzbyBzaG91bGQgYmUgc2VuZGFibGUK PiA+PiBAQCAtMjM3LDEyICsyNDAsMTggQEAgaW1wbCBEcm9wIGZvciBGaXhlZEluZGV4V3JpdGVy IHsKPiA+PiAgIH0KPiA+PiAgIAo+ID4+ICAgaW1wbCBGaXhlZEluZGV4V3JpdGVyIHsKPiA+PiAr ICAgIC8vLyBUaGUgaW5pdGlhbCBjYXBhY2l0eSwgaWYgdGhlIHRvdGFsIHNpemUgaXMgdW5rbm93 bi4KPiA+PiArICAgIC8vLwo+ID4+ICsgICAgLy8vIFRoaXMgY2FwYWNpdHkgdGFrZXMgdXAgdGhl IHNhbWUgYW1vdW50IG9mIHNwYWNlIGFzIHRoZSBoZWFkZXIKPiA+PiArICAgIC8vLyBhbmQgY2Fu IHJlZmVyIHRvIDEyOCBCbG9ja3MgKiA0IE1pQi9CbG9jayA9IDUxMiBNaUIgb2YgY29udGVudC4K PiA+PiArICAgIGNvbnN0IElOSVRJQUxfQ0FQQUNJVFk6IHVzaXplID0gNDA5NiAvIDMyOwo+ID4g bWlnaHQgbWFrZSBzZW5zZSB0byBtYWtlIHRoaXMgbW9yZSBleHBsaWNpdCAtIHdlIGNhbiBvbmx5 IG1hcCB1c2luZyBwYWdlCj4gPiBncmFudWxhcml0eSwgdGhlIGhlYWRlciBpcyBvbmUgcGFnZSwg c28gdGhlIGZpcnN0IHBhcnQgbmVlZHMgdG8gYmUgYQo+ID4gcGFnZSBhcyB3ZWxsLCBhbmQgaWYg dGhlbiBhbHdheXMgZG91YmxlIGl0IHdoZW4gcmVzaXppbmcgd2Ugc3RheSBhbGlnbmVkCj4gPiB0 byBwYWdlIGJvdW5kYXJpZXMuCj4gCj4gVGhlcmUgaXMgYWN0dWFsbHkgbm8gc3RyaWN0IHJlcXVp cmVtZW50IGZvciB0aGUgbWFwcGVkIGxlbmd0aCB0byBiZQo+IGEgbXVsdGlwbGUgb2YgdGhlIHBh Z2Ugc2l6ZSwgc28gSSBkaWRuJ3Qgd2FudCB0byBndWFyYW50ZWUgdG9vIG11Y2guCj4gSG93ZXZl ciwgdGhlIG9mZnNldCBpbnRvIHRoZSBmaWxlIG11c3QgYmUgYWxpZ25lZCwgc28gYSBwYWdlIHNp emUKPiBsYXJnZXIgdGhhbiB0aGUgaGVhZGVyIHdvdWxkIGJyZWFrIGFueXdheS4KCnlvdSBhcmUg cmlnaHQsIHNvcnJ5IQoKPiBJIHRoaW5rIGl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8ganVzdCBtYXAg dGhlIGZpbGUgZnJvbSB0aGUgc3RhcnQsIGJlY2F1c2UKPiB0aGF0IHdvdWxkIHNpbXBsaWZ5IG15 IG90aGVyIGZpeCBbMV0gYW5kIHRoZSBzaXplL2NoZWNrc3VtIHVwZGF0ZSBpbgo+IGNsb3NlKCku CgpnaXZlbiB0aGF0IHdlIGFscmVhZHkgaGFkIGEgcmVwb3J0IGFib3V0IFBCUyBub3Qgd29ya2lu ZyBvbiAxNmsgcGFnZSBrZXJuZWxzLAphbmQgdGhlcmUgYXJlIG90aGVyIHBsYXRmb3JtcyB3aXRo IDY0ayBwYWdlcywgaXQgbWlnaHQgYmUgbmljZSB0byBmaXggdGhpcyB1cAppZiBpdCBkb2Vzbid0 IGNhdXNlIHRvbyBtdWNoIGFubm95YW5jZS4KCklJUkMgYmVzaWRlcyB0aGUgaW5kZXggY29kZSwg b25seSBvdXIgc2hhcmVkIG1lbW9yeSBoZWxwZXIgKGZvciBjb25maWcgY2FjaGluZwphbmQgcmF0 ZSBsaW1pdGluZykgdXNlIG1tYXAuIGluIHRob3NlIGNhc2VzIHRoZSBtYXBwZWQgZGF0YSBpcyBw YWRkZWQgdG8gYQpzaW5nbGUgNGsgcGFnZSBhdG0sIGFuZCB3aGVuIG1hcHBpbmcgd2Ugcm91bmQg dXAgdG8gYSBwYWdlIGFzIHdlbGwsIGFsdGhvdWdoCnRoZSBoZWxwZXIgZm9yIHRoYXQgaGFzIGEg RklYTUUgY2FsbGluZyBmb3IgaXQgdG8gYWN0dWFsbHkgcXVlcnkgdGhlIHBhZ2Ugc2l6ZQppbnN0 ZWFkIG9mIGFzc3VtaW5nIGl0J3MgNGsgOykKCnNvIHllYWgsIHRob3NlIGFsbCBzb3VuZCBsaWtl IHRoZXkgY291bGQgYmUgZml4ZWQgdXAgd2l0aG91dCB0b28gbXVjaCBlZmZvcnQKYW5kIHdpdGhv dXQgbXVjaCBhZGRpdGlvbmFsIGNvc3QgKGZvciB0aGUgaW5kZXggYWNjZXNzLCBpdCBib2lscyBk b3duIHRvIG9uZQpleHRyYSBwb2ludGVyIGFkZGl0aW9uIGZvciB0aGUgaGVhZGVyLXRvLXBheWxv YWQtb2Zmc2V0PykuCgo+IAo+IFsxXSAKPiBodHRwczovL2xvcmUucHJveG1veC5jb20vcGJzLWRl dmVsLzIwMjYwMTA5MTc1OTQ1LjMwOTkxMy0zLXIub2JraXJjaGVyQHByb3htb3guY29tLwo+IAo+ ID4+ICsKPiA+PiAgICAgICAjW2FsbG93KGNsaXBweTo6Y2FzdF9wdHJfYWxpZ25tZW50KV0KPiA+ PiAgICAgICAvLyBSZXF1aXJlcyBvYnRhaW5pbmcgYSBzaGFyZWQgY2h1bmsgc3RvcmUgbG9jayBi ZWZvcmVoYW5kCj4gPj4gICAgICAgcHViIGZuIGNyZWF0ZSgKPiA+PiAgICAgICAgICAgc3RvcmU6 IEFyYzxDaHVua1N0b3JlPiwKPiA+PiAgICAgICAgICAgcGF0aDogJlBhdGgsCj4gPj4gLSAgICAg ICAgc2l6ZTogdXNpemUsCj4gPj4gKyAgICAgICAga25vd25fc2l6ZTogT3B0aW9uPHVzaXplPiwK PiA+PiAgICAgICAgICAgY2h1bmtfc2l6ZTogdXNpemUsCj4gPj4gICAgICAgKSAtPiBSZXN1bHQ8 U2VsZiwgRXJyb3I+IHsKPiA+PiAgICAgICAgICAgbGV0IGZ1bGxfcGF0aCA9IHN0b3JlLnJlbGF0 aXZlX3BhdGgocGF0aCk7Cj4gPj4gQEAgLTI2NCw2ICsyNzMsNyBAQCBpbXBsIEZpeGVkSW5kZXhX cml0ZXIgewo+ID4+ICAgICAgICAgICB9Cj4gPj4gICAKPiA+PiAgICAgICAgICAgbGV0IGN0aW1l ID0gcHJveG1veF90aW1lOjplcG9jaF9pNjQoKTsKPiA+PiArICAgICAgICBsZXQgc2l6ZSA9IGtu b3duX3NpemUudW53cmFwX29yKDApOwo+ID4+ICAgCj4gPj4gICAgICAgICAgIGxldCB1dWlkID0g VXVpZDo6Z2VuZXJhdGUoKTsKPiA+PiAgIAo+ID4+IEBAIC0yODAsOCArMjkwLDEyIEBAIGltcGwg Rml4ZWRJbmRleFdyaXRlciB7Cj4gPj4gICAKPiA+PiAgICAgICAgICAgZmlsZS53cml0ZV9hbGwo JmJ1ZmZlcik/Owo+ID4+ICAgCj4gPj4gLSAgICAgICAgbGV0IGluZGV4X2xlbmd0aCA9IHNpemUu ZGl2X2NlaWwoY2h1bmtfc2l6ZSk7Cj4gPj4gLSAgICAgICAgbGV0IGluZGV4X3NpemUgPSBpbmRl eF9sZW5ndGggKiAzMjsKPiA+PiArICAgICAgICBsZXQgKGluZGV4X2xlbmd0aCwgaW5kZXhfY2Fw YWNpdHkpID0ga25vd25fc2l6ZQo+ID4+ICsgICAgICAgICAgICAubWFwKHxzfCBzLmRpdl9jZWls KGNodW5rX3NpemUpKQo+ID4+ICsgICAgICAgICAgICAubWFwKHxsZW58IChsZW4sIGxlbikpCj4g Pj4gKyAgICAgICAgICAgIC51bndyYXBfb3IoKDAsIFNlbGY6OklOSVRJQUxfQ0FQQUNJVFkpKTsK PiA+PiArCj4gPj4gKyAgICAgICAgbGV0IGluZGV4X3NpemUgPSBpbmRleF9jYXBhY2l0eSAqIDMy Owo+ID4+ICAgICAgICAgICBuaXg6OnVuaXN0ZDo6ZnRydW5jYXRlKCZmaWxlLCAoaGVhZGVyX3Np emUgKyBpbmRleF9zaXplKSBhcyBpNjQpPzsKPiA+PiAgIAo+ID4+ICAgICAgICAgICBsZXQgZGF0 YSA9IHVuc2FmZSB7Cj4gPj4gQEAgLTMwNSwxMiArMzE5LDg3IEBAIGltcGwgRml4ZWRJbmRleFdy aXRlciB7Cj4gPj4gICAgICAgICAgICAgICBjaHVua19zaXplLAo+ID4+ICAgICAgICAgICAgICAg c2l6ZSwKPiA+PiAgICAgICAgICAgICAgIGluZGV4X2xlbmd0aCwKPiA+PiArICAgICAgICAgICAg aW5kZXhfY2FwYWNpdHksCj4gPj4gICAgICAgICAgICAgICBpbmRleDogZGF0YSwKPiA+PiAgICAg ICAgICAgICAgIGN0aW1lLAo+ID4+ICAgICAgICAgICAgICAgdXVpZDogKnV1aWQuYXNfYnl0ZXMo KSwKPiA+PiArICAgICAgICAgICAgZ3Jvd2FibGVfc2l6ZToga25vd25fc2l6ZS5pc19ub25lKCks Cj4gPj4gKyAgICAgICAgICAgIHdyaXRlX3NpemVfb25fY2xvc2U6IGtub3duX3NpemUuaXNfbm9u ZSgpLAo+ID4+ICsgICAgICAgIH0pCj4gPj4gKyAgICB9Cj4gPj4gKwo+ID4+ICsgICAgLy8vIElm IHRoaXMgcmV0dXJucyBhbiBlcnJvciwgdGhlIHNpemVzIG1heSBiZSBvdXQgb2Ygc3luYywKPiA+ PiArICAgIC8vLyB3aGljaCBpcyBlc3BlY2lhbGx5IGJhZCBpZiB0aGUgY2FwYWNpdHkgd2FzIHJl ZHVjZWQuCj4gPj4gKyAgICBmbiBzZXRfaW5kZXhfY2FwYWNpdHkoJm11dCBzZWxmLCBuZXdfY2Fw YWNpdHk6IHVzaXplKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4gPj4gKyAgICAgICAgaWYgbmV3 X2NhcGFjaXR5ID09IHNlbGYuaW5kZXhfY2FwYWNpdHkgewo+ID4+ICsgICAgICAgICAgICByZXR1 cm4gT2soKCkpOwo+ID4+ICsgICAgICAgIH0KPiA+PiArICAgICAgICBsZXQgb2xkX2luZGV4X3Np emUgPSBzZWxmLmluZGV4X2NhcGFjaXR5ICogMzI7Cj4gPj4gKyAgICAgICAgbGV0IG5ld19pbmRl eF9zaXplID0gbmV3X2NhcGFjaXR5ICogMzI7Cj4gPj4gKyAgICAgICAgbGV0IG5ld19maWxlX3Np emUgPSAoc2l6ZV9vZjo6PEZpeGVkSW5kZXhIZWFkZXI+KCkgKyBuZXdfaW5kZXhfc2l6ZSkgYXMg aTY0Owo+ID4+ICsKPiA+PiArICAgICAgICBsZXQgaW5kZXhfYWRkciA9IE5vbk51bGw6Om5ldyhz ZWxmLmluZGV4IGFzICptdXQgc3RkOjpmZmk6OmNfdm9pZCkub2tfb3JfZWxzZSh8fCB7Cj4gPj4g KyAgICAgICAgICAgIGZvcm1hdF9lcnIhKCJDYW4ndCByZXNpemUgRml4ZWRJbmRleFdyaXRlciBp bmRleCBiZWNhdXNlIHRoZSBpbmRleCBwb2ludGVyIGlzIG51bGwuIikKPiA+PiArICAgICAgICB9 KT87Cj4gPj4gKwo+ID4+ICsgICAgICAgIG5peDo6dW5pc3RkOjpmdHJ1bmNhdGUoJnNlbGYuZmls ZSwgbmV3X2ZpbGVfc2l6ZSk/Owo+ID4+ICsKPiA+PiArICAgICAgICBsZXQgbmV3X2luZGV4ID0g dW5zYWZlIHsKPiA+PiArICAgICAgICAgICAgbml4OjpzeXM6Om1tYW46Om1yZW1hcCgKPiA+PiAr ICAgICAgICAgICAgICAgIGluZGV4X2FkZHIsCj4gPj4gKyAgICAgICAgICAgICAgICBvbGRfaW5k ZXhfc2l6ZSwKPiA+PiArICAgICAgICAgICAgICAgIG5ld19pbmRleF9zaXplLAo+ID4+ICsgICAg ICAgICAgICAgICAgbml4OjpzeXM6Om1tYW46Ok1SZW1hcEZsYWdzOjpNUkVNQVBfTUFZTU9WRSwK PiA+PiArICAgICAgICAgICAgICAgIE5vbmUsCj4gPj4gKyAgICAgICAgICAgICkKPiA+PiArICAg ICAgICB9PzsKPiA+PiArCj4gPj4gKyAgICAgICAgc2VsZi5pbmRleCA9IG5ld19pbmRleC5hc19w dHIoKS5jYXN0Ojo8dTg+KCk7Cj4gPj4gKyAgICAgICAgc2VsZi5pbmRleF9jYXBhY2l0eSA9IG5l d19jYXBhY2l0eTsKPiA+PiArICAgICAgICBPaygoKSkKPiA+PiArICAgIH0KPiA+PiArCj4gPj4g KyAgICAvLy8gVW5tYXBwaW5nIGVuc3VyZXMgZnV0dXJlIGFkZCBhbmQgY2xvc2Ugb3BlcmF0aW9u cyBmYWlsLgo+ID4+ICsgICAgZm4gc2V0X2luZGV4X2NhcGFjaXR5X29yX3VubWFwKCZtdXQgc2Vs ZiwgbmV3X2NhcGFjaXR5OiB1c2l6ZSkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+ID4+ICsgICAg ICAgIHNlbGYuc2V0X2luZGV4X2NhcGFjaXR5KG5ld19jYXBhY2l0eSkubWFwX2Vycih8ZXwgewo+ ID4+ICsgICAgICAgICAgICBsZXQgdW5tYXBfcmVzdWx0ID0gc2VsZi51bm1hcCgpOwo+ID4+ICsg ICAgICAgICAgICBsZXQgbWVzc2FnZSA9IGZvcm1hdCEoCj4gPj4gKyAgICAgICAgICAgICAgICAi ZmFpbGVkIHRvIHJlc2l6ZSBpbmRleCBjYXBhY2l0eSBmcm9tIHt9IHRvIHtuZXdfY2FwYWNpdHl9 IHdpdGggYmFja2luZyBmaWxlOiB7Oj99IiwKPiA+PiArICAgICAgICAgICAgICAgIHNlbGYuaW5k ZXhfY2FwYWNpdHksIHNlbGYudG1wX2ZpbGVuYW1lCj4gPj4gKyAgICAgICAgICAgICk7Cj4gPj4g KyAgICAgICAgICAgIGFzc2VydCEoc2VsZi5pbmRleC5pc19udWxsKCksICJ7bWVzc2FnZX0ge3Vu bWFwX3Jlc3VsdDo/fSIpOwo+ID4+ICsgICAgICAgICAgICBlLmNvbnRleHQobWVzc2FnZSkKPiA+ PiAgICAgICAgICAgfSkKPiA+PiAgICAgICB9Cj4gPj4gICAKPiA+PiArICAgIC8vLyBJbmNyZWFz ZSB0aGUgY29udGVudCBzaXplIHRvIGJlIGF0IGxlYXN0IGByZXF1ZXN0ZWRfc2l6ZWAgYW5kCj4g Pj4gKyAgICAvLy8gZW5zdXJlIHRoZXJlIGlzIGVub3VnaCBjYXBhY2l0eS4KPiA+PiArICAgIC8v Lwo+ID4+ICsgICAgLy8vIE9ubHkgd3JpdGVycyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRob3V0IGEg a25vd24gc2l6ZSBjYW4gZ3Jvdy4KPiA+PiArICAgIC8vLyBUaGUgc2l6ZSBhbHNvIGJlY29tZXMg Zml4ZWQgYXMgc29vbiBhcyBpdCBpcyBubyBsb25nZXIgZGl2aXNpYmxlCj4gPj4gKyAgICAvLy8g YnkgdGhlIGJsb2NrIHNpemUsIHRvIGVuc3VyZSB0aGF0IG9ubHkgdGhlIGxhc3QgYmxvY2sgY2Fu IGJlCj4gPj4gKyAgICAvLy8gc21hbGxlci4KPiA+PiArICAgIHB1YiBmbiBncm93X3RvX3NpemUo Jm11dCBzZWxmLCByZXF1ZXN0ZWRfc2l6ZTogdXNpemUpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsK PiA+PiArICAgICAgICBpZiBzZWxmLnNpemUgPCByZXF1ZXN0ZWRfc2l6ZSB7Cj4gPj4gKyAgICAg ICAgICAgIGlmICFzZWxmLmdyb3dhYmxlX3NpemUgewo+ID4+ICsgICAgICAgICAgICAgICAgYmFp bCEoInJlZnVzaW5nIHRvIHJlc2l6ZSBmcm9tIHt9IHRvIHtyZXF1ZXN0ZWRfc2l6ZX0iLCBzZWxm LnNpemUpOwo+ID4+ICsgICAgICAgICAgICB9Cj4gPj4gKyAgICAgICAgICAgIGxldCBuZXdfbGVu ID0gcmVxdWVzdGVkX3NpemUuZGl2X2NlaWwoc2VsZi5jaHVua19zaXplKTsKPiA+PiArICAgICAg ICAgICAgaWYgbmV3X2xlbiAqIHNlbGYuY2h1bmtfc2l6ZSAhPSByZXF1ZXN0ZWRfc2l6ZSB7Cj4g Pj4gKyAgICAgICAgICAgICAgICAvLyBub3QgYSBmdWxsIGNodW5rLCBzbyB0aGlzIG11c3QgYmUg dGhlIGxhc3Qgb25lCj4gPj4gKyAgICAgICAgICAgICAgICBzZWxmLmdyb3dhYmxlX3NpemUgPSBm YWxzZTsKPiA+PiArICAgICAgICAgICAgICAgIHNlbGYuc2V0X2luZGV4X2NhcGFjaXR5X29yX3Vu bWFwKG5ld19sZW4pPzsKPiA+PiArICAgICAgICAgICAgfSBlbHNlIGlmIG5ld19sZW4gPiBzZWxm LmluZGV4X2NhcGFjaXR5IHsKPiA+PiArICAgICAgICAgICAgICAgIHNlbGYuc2V0X2luZGV4X2Nh cGFjaXR5X29yX3VubWFwKG5ld19sZW4ubmV4dF9wb3dlcl9vZl90d28oKSk/Owo+ID4+ICsgICAg ICAgICAgICB9Owo+ID4+ICsgICAgICAgICAgICBhc3NlcnQhKG5ld19sZW4gPD0gc2VsZi5pbmRl eF9jYXBhY2l0eSk7Cj4gPj4gKyAgICAgICAgICAgIHNlbGYuaW5kZXhfbGVuZ3RoID0gbmV3X2xl bjsKPiA+PiArICAgICAgICAgICAgc2VsZi5zaXplID0gcmVxdWVzdGVkX3NpemU7Cj4gPj4gKyAg ICAgICAgfQo+ID4gc2hvdWxkIHdlIGhhbmRsZSB0aGUgZWxzZSBwYXJ0IGhlcmU/IGkuZS4sIGVy cm9yIG91dCBpZiBzaHJpbmtpbmcgaXMKPiA+IHJlcXVlc3RlZD8KPiAKPiBUaGUgZWxzZSBwYXJ0 IGlzIGV4cGVjdGVkIHRvIHN1Y2NlZWQuIEkgY29uc2lkZXJlZCByZW5hbWluZyB0aGUgbWV0aG9k IHRvCj4gc29tZXRoaW5nIGxpa2UgZ3Jvd19pZl9zbWFsbGVyIG9yIGVuc3VyZV9jYXBhY2l0eSB0 byBtYWtlIHRoaXMgY2xlYXIsIGJ1dAo+IEknbSBub3QgcXVpdGUgaGFwcHkgd2l0aCB0aG9zZSBu YW1lcyBlaXRoZXIuCgp3ZSBjb3VsZAotIGNhbGwgaXQgcmVzaXplLCBtb3ZlIHRoZSBzaXplIGNo ZWNrIHRvIHRoZSAob25seSkgY2FsbCBzaXRlLCBhbmQgYWxsb3cKICBzaHJpbmtpbmcKLSBjYWxs IGl0IHJlc2VydmUsIG1ha2UgaXQgb25seSBoYW5kbGUgY2FwYWNpdHksIGFuZCBtb3ZlIHRoZSBz aXplIHVwZGF0ZSB0byBhCiAgKHJlbmFtZWQpIGNoZWNrX2NodW5rX2FsaWdubWVudAotIGNvbWJp bmUgZ3Jvd190b19zaXplIGFuZCBjaGVja19jaHVua19hbGlnbm1lbnQgYW5kIGZpbmQgYSBmaXR0 aW5nIG5hbWUgZm9yCiAgd2hhdCBpdCBkb2VzIDotUAotIGtlZXAgaXQgYXMgaXMsIGJ1dCBmaW5k IGEgYmV0dGVyIG5hbWUKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNv bQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMt ZGV2ZWwK