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 42FFD1FF15C for ; Wed, 13 Nov 2024 14:46:00 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 029D516336; Wed, 13 Nov 2024 14:46:01 +0100 (CET) Message-ID: <39def709-3df0-4182-8179-8be4022f0f9e@proxmox.com> Date: Wed, 13 Nov 2024 14:45:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Proxmox Backup Server development discussion , =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= References: <20241105140153.282980-1-c.ebner@proxmox.com> <20241105140153.282980-5-c.ebner@proxmox.com> <1731330267.220wgkqhtc.astroid@yuna.none> Content-Language: en-US, de-DE From: Christian Ebner In-Reply-To: <1731330267.220wgkqhtc.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.370 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 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 Subject: Re: [pbs-devel] [PATCH proxmox-backup 4/4] fix #5853: client: pxar: exclude stale files on metadata read 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" T24gMTEvMTEvMjQgMTQ6MzcsIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4gYmVoYXZpb3Vy IHdpc2UgdGhpcyBzZWVtcyBva2F5IHRvIG1lLCBidXQgaWYgcG9zc2libGUsIEknZCBhdm9pZCBh bGwgdGhlCj4gcmV0dXJuIHZhbHVlIHR1cGxlcywgc2VlIGRldGFpbGVkIGNvbW1lbnRzIGJlbG93 Li4KCkFncmVlZCwgSSBhbSBub3QgYSBmYW4gb2YgcGFzc2luZyB0aGUgc3RhbGUgZmlsZSBoYW5k bGUgZXJyb3IgaW5mbyBhbG9uZyAKYSB0aGUgYm9vbGVhbiBpbiB0aGUgcmV0dXJuIHZhbHVlIGFz IHdlbGwuCgpCdXQgdW5mb3J0dW5hdGVseSBwYXNzaW5nIGFsb25nIHRoZSBlcnJvciB3aXRob3V0 IGxvb3NpbmcgcHJlLWV4aXN0aW5nIAplcnJvciBjb250ZXh0IGFuZCBzd2l0Y2hpbmcgYWxsIHRo ZSBgZ2V0X21ldGFkYXRhYCByZWxhdGVkIGZ1bmN0aW9ucyB0byAKcmV0dXJuIGFuIGBFcnJub2Ag aXMgbm90IHBvc3NpYmxlIGFzIGlzLgoKRS5nLiBgcHJvY2Vzc19hY2xgIHJldHVybnMgYW4gYGFu eWhvdzo6RXJyb3JgIChjb3VsZCBiZSBkZWZpbmVkIHRvIApyZXR1cm4gYW4gZS5nLiBgRXJybm86 OkVJTlZBTElEYCBpbnN0ZWFkPyksIHNwZWNpYWwgaGFuZGxpbmcgb2YgCmBFcnJubzo6RTJCSUdg IGZvciB0aGUgeGF0dHIgY2FzZSBvbmx5LCAuLi4KClRoZSBjdXJyZW50IGFwcHJvYWNoIHdhcyBj aG9vc2VuIHRvIGtlZXAgdGhlIGN1cnJlbnQgYW55aG93IGVycm9yIApjb250ZXh0IGNsb3NlIHRv IHRoZSBhY3R1YWwgZXJyb3JzIHdoZW4gdGhleSBvY2N1ci4KICA+IE9uIE5vdmVtYmVyIDUsIDIw MjQgMzowMSBwbSwgQ2hyaXN0aWFuIEVibmVyIHdyb3RlOgo+PiBTa2lwIGFuZCB3YXJuIHRoZSB1 c2VyIGZvciBmaWxlcyB3aGljaCByZXR1cm5lZCBhIHN0YWxlIGZpbGUgaGFuZGxlCj4+IGVycm9y IHdoaWxlIHJlYWRpbmcgdGhlIG1ldGFkYXRhIGFzc29jaWF0ZWQgdG8gdGhhdCBmaWxlLgo+Pgo+ PiBJbnN0ZWFkIG9mIHJldHVybmluZyB3aXRoIGFuIGVycm9yIHdoZW4gZ2V0dGluZyB0aGUgbWV0 YWRhdGEsIHJldHVybgo+PiBhIGJvb2xlYW4gZmxhZyBzaWduYWxpbmcgaWYgYSBzdGFsZSBmaWxl IGhhbmRsZSBoYXMgYmVlbiBlbmNvdW50ZXJlZC4KPj4KPj4gTGluayB0byBpc3N1ZSBpbiBidWd0 cmFja2VyOgo+PiBodHRwczovL2J1Z3ppbGxhLnByb3htb3guY29tL3Nob3dfYnVnLmNnaT9pZD01 ODUzCj4+Cj4+IExpbmsgdG8gdGhyZWFkIGluIGNvbW11bml0eSBmb3J1bToKPj4gaHR0cHM6Ly9m b3J1bS5wcm94bW94LmNvbS90aHJlYWRzLzE1NjgyMi8KPj4KPj4gU2lnbmVkLW9mZi1ieTogQ2hy aXN0aWFuIEVibmVyIDxjLmVibmVyQHByb3htb3guY29tPgo+PiAtLS0KPj4gICBwYnMtY2xpZW50 L3NyYy9weGFyL2NyZWF0ZS5ycyB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tCj4+ICAgMSBmaWxlIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygt KQo+Pgo+PiBkaWZmIC0tZ2l0IGEvcGJzLWNsaWVudC9zcmMvcHhhci9jcmVhdGUucnMgYi9wYnMt Y2xpZW50L3NyYy9weGFyL2NyZWF0ZS5ycwo+PiBpbmRleCAyYTg0NDkyMmMuLjg1YmUwMGRiNCAx MDA2NDQKPj4gLS0tIGEvcGJzLWNsaWVudC9zcmMvcHhhci9jcmVhdGUucnMKPj4gKysrIGIvcGJz LWNsaWVudC9zcmMvcHhhci9jcmVhdGUucnMKPj4gQEAgLTIyOCw3ICsyMjgsNyBAQCB3aGVyZQo+ PiAgICAgICBsZXQgbXV0IGZzX2ZlYXR1cmVfZmxhZ3MgPSBGbGFnczo6ZnJvbV9tYWdpYyhmc19t YWdpYyk7Cj4+ICAgCj4+ICAgICAgIGxldCBzdGF0ID0gbml4OjpzeXM6OnN0YXQ6OmZzdGF0KHNv dXJjZV9kaXIuYXNfcmF3X2ZkKCkpPzsKPj4gLSAgICBsZXQgbWV0YWRhdGEgPSBnZXRfbWV0YWRh dGEoCj4+ICsgICAgbGV0IChtZXRhZGF0YSwgc3RhbGVfZmQpID0gZ2V0X21ldGFkYXRhKAo+IAo+ IHN0YWxlX2ZkIGhlcmUgaXMgbm90IHVzZWQgYXQgYWxsLi4KClllcywgdGhhdCBvbmUgc2hvdWxk IGxlYWQgdG8gYSBoYXJkIGVycm9yIGFzIHlvdSBtZW50aW9uZWQsIHNvIHNob3VsZCBiZSAKaGFu ZGxlZCBhY2NvcmRpbmdseS4gSSB3aWxsIGFkYXB0IHRoaXMgdG8gYmUgYSBoYXJkIGVycm9yLgoK PiAKPj4gICAgICAgICAgIHNvdXJjZV9kaXIuYXNfcmF3X2ZkKCksCj4+ICAgICAgICAgICAmc3Rh dCwKPj4gICAgICAgICAgIGZlYXR1cmVfZmxhZ3MgJiBmc19mZWF0dXJlX2ZsYWdzLAo+PiBAQCAt NzQ0LDcgKzc0NCw3IEBAIGltcGwgQXJjaGl2ZXIgewo+PiAgICAgICAgICAgICAgIHJldHVybiBP aygoKSk7Cj4+ICAgICAgICAgICB9Cj4+ICAgCj4+IC0gICAgICAgIGxldCBtZXRhZGF0YSA9IGdl dF9tZXRhZGF0YSgKPj4gKyAgICAgICAgbGV0IChtZXRhZGF0YSwgc3RhbGVfZmQpID0gZ2V0X21l dGFkYXRhKAo+IAo+IHRoaXMgb25lIGlzIHVzZWQKPiAKPj4gICAgICAgICAgICAgICBmZC5hc19y YXdfZmQoKSwKPj4gICAgICAgICAgICAgICBzdGF0LAo+PiAgICAgICAgICAgICAgIHNlbGYuZmxh Z3MoKSwKPj4gQEAgLTc1Myw2ICs3NTMsMTEgQEAgaW1wbCBBcmNoaXZlciB7Cj4+ICAgICAgICAg ICAgICAgc2VsZi5za2lwX2UyYmlnX3hhdHRyLAo+PiAgICAgICAgICAgKT87Cj4+ICAgCj4+ICsg ICAgICAgIGlmIHN0YWxlX2ZkIHsKPj4gKyAgICAgICAgICAgIGxvZzo6d2FybiEoIlN0YWxlIGZp bGVoYW5kbGUgZW5jb3VudGVyZWQsIHNraXAgezo/fSIsIHNlbGYucGF0aCk7Cj4+ICsgICAgICAg ICAgICByZXR1cm4gT2soKCkpOwo+PiArICAgICAgICB9Cj4gCj4gZm9yIHRoaXMgd2FybmluZy4u IGJ1dCBnZXRfbWV0YWRhdGEgYWxyZWFkeSBsb2dzIChwb3RlbnRpYWxseSBtdWx0aXBsZQo+IHRp bWVzIDspKSB0aGF0IHRoaW5ncyBhcmUgaW5jb21wbGV0ZSBjYXVzZSBvZiB0aGUgc3RhbGUgZmls ZWhhbmRsZSwgdGhpcwo+IG9ubHkgYWRkcyB0aGUgcGF0aCBjb250ZXh0Li4KCmJ1dCBoZXJlIHRo ZXJlIGlzIGFsc28gYW4gZWFybHkgcmV0dXJuLCBub3QganVzdCB0aGUgbG9nLi4uIHRoaXMgc2tp cHMgCm92ZXIgYWRkaW5nIHRoaXMgZW50cnksIGFuZCBhbnkgc3ViIGVudHJpZXMgaWYgdGhlIGVu dHJ5IGlzIGEgZGlyZWN0b3J5LgoKVGhlIGxvZ2dpbmcgY291bGQgaG93ZXZlciBiZSBtb3ZlZCB0 byB0aGUgZ2V0X21ldGFkYXRhIGNhbGwgYW5kIG9ubHkgYmUgCmxvZ2dlZCBvbmNlLCBhZ3JlZWQu Cgo+IAo+PiArCj4+ICAgICAgICAgICBpZiBzZWxmLnByZXZpb3VzX3BheWxvYWRfaW5kZXguaXNf bm9uZSgpIHsKPj4gICAgICAgICAgICAgICByZXR1cm4gc2VsZgo+PiAgICAgICAgICAgICAgICAg ICAuYWRkX2VudHJ5X3RvX2FyY2hpdmUoZW5jb2RlciwgJm11dCBOb25lLCBjX2ZpbGVfbmFtZSwg c3RhdCwgZmQsICZtZXRhZGF0YSwgTm9uZSkKPj4gQEAgLTEzMDEsNyArMTMwNiwxNCBAQCBpbXBs IEFyY2hpdmVyIHsKPj4gICAgICAgICAgIGZpbGVfbmFtZTogJlBhdGgsCj4+ICAgICAgICAgICBt ZXRhZGF0YTogJk1ldGFkYXRhLAo+PiAgICAgICApIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4g LSAgICAgICAgbGV0IGRlc3QgPSBuaXg6OmZjbnRsOjpyZWFkbGlua2F0KGZkLmFzX3Jhd19mZCgp LCAmYiIiWy4uXSk/Owo+PiArICAgICAgICBsZXQgZGVzdCA9IG1hdGNoIG5peDo6ZmNudGw6OnJl YWRsaW5rYXQoZmQuYXNfcmF3X2ZkKCksICZiIiJbLi5dKSB7Cj4+ICsgICAgICAgICAgICBPayhk ZXN0KSA9PiBkZXN0LAo+PiArICAgICAgICAgICAgRXJyKEVycm5vOjpFU1RBTEUpID0+IHsKPj4g KyAgICAgICAgICAgICAgICBsb2c6Ondhcm4hKCJTdGFsZSBmaWxlIGhhbmRsZSBlbmNvdW50ZXJl ZCwgc2tpcCB7ZmlsZV9uYW1lOj99Iik7Cj4+ICsgICAgICAgICAgICAgICAgcmV0dXJuIE9rKCgp KTsKPj4gKyAgICAgICAgICAgIH0KPj4gKyAgICAgICAgICAgIEVycihlcnIpID0+IHJldHVybiBF cnIoZXJyLmludG8oKSksCj4+ICsgICAgICAgIH07Cj4+ICAgICAgICAgICBlbmNvZGVyLmFkZF9z eW1saW5rKG1ldGFkYXRhLCBmaWxlX25hbWUsIGRlc3QpLmF3YWl0PzsKPj4gICAgICAgICAgIE9r KCgpKQo+PiAgICAgICB9Cj4+IEBAIC0xMzk3LDkgKzE0MDksMTAgQEAgZm4gZ2V0X21ldGFkYXRh KAo+PiAgICAgICBmc19tYWdpYzogaTY0LAo+PiAgICAgICBmc19mZWF0dXJlX2ZsYWdzOiAmbXV0 IEZsYWdzLAo+PiAgICAgICBza2lwX2UyYmlnX3hhdHRyOiBib29sLAo+PiAtKSAtPiBSZXN1bHQ8 TWV0YWRhdGEsIEVycm9yPiB7Cj4+ICspIC0+IFJlc3VsdDwoTWV0YWRhdGEsIGJvb2wpLCBFcnJv cj4gewo+PiAgICAgICAvLyByZXF1aXJlZCBmb3Igc29tZSBvZiB0aGVzZQo+PiAgICAgICBsZXQg cHJvY19wYXRoID0gUGF0aDo6bmV3KCIvcHJvYy9zZWxmL2ZkLyIpLmpvaW4oZmQudG9fc3RyaW5n KCkpOwo+PiArICAgIGxldCBtdXQgc3RhbGVfZmQgPSBmYWxzZTsKPj4gICAKPj4gICAgICAgbGV0 IG11dCBtZXRhID0gTWV0YWRhdGEgewo+PiAgICAgICAgICAgc3RhdDogcHhhcjo6U3RhdCB7Cj4+ IEBAIC0xNDEyLDE4ICsxNDI1LDI3IEBAIGZuIGdldF9tZXRhZGF0YSgKPj4gICAgICAgICAgIC4u RGVmYXVsdDo6ZGVmYXVsdCgpCj4+ICAgICAgIH07Cj4+ICAgCj4+IC0gICAgZ2V0X3hhdHRyX2Zj YXBzX2FjbCgKPj4gKyAgICBpZiBnZXRfeGF0dHJfZmNhcHNfYWNsKAo+IAo+IG9ubHkgY2FsbCBz aXRlLCBjb3VsZCBqdXN0IGJ1YmJsZSB1cCBFU1RBTEUKCkFzIG1lbnRpb25lZCwgdGhpcyBoYXMg MiBpc3N1ZXM6IExvc3Mgb2YgYW55aG93IGVycm9yIGNvbnRleHQgZm9yIHdoaWNoIApzdWItZnVu Y3Rpb24gdGhlIEVycm5vIG9jY3VycmVkIGFuZCBzdWItZnVuY3Rpb25zIGxpa2UgYHByb2Nlc3Nf YWNsYCAKd2hpY2ggZG8gbm90IHJlbHkgb24gZmZpIGNhbGxzIGF0IGFsbCwgcmV0dXJuaW5nIHBs YWluIGBhbnlob3c6OkVycm9yYCwgCndoaWNoIGdyYW50ZWQgY291bGQgYmUgcmVkZWZpbmVkIHRv IHJldHVybiBhbiBFcnJuby4KCj4gCj4+ICAgICAgICAgICAmbXV0IG1ldGEsCj4+ICAgICAgICAg ICBmZCwKPj4gICAgICAgICAgICZwcm9jX3BhdGgsCj4+ICAgICAgICAgICBmbGFncywKPj4gICAg ICAgICAgIGZzX2ZlYXR1cmVfZmxhZ3MsCj4+ICAgICAgICAgICBza2lwX2UyYmlnX3hhdHRyLAo+ PiAtICAgICk/Owo+PiAtICAgIGdldF9jaGF0dHIoJm11dCBtZXRhLCBmZCk/Owo+PiArICAgICk/ IHsKPj4gKyAgICAgICAgc3RhbGVfZmQgPSB0cnVlOwo+PiArICAgICAgICBsb2c6Ondhcm4hKCJT dGFsZSBmaWxlaGFuZGxlLCB4YXR0cnMgaW5jb21wbGV0ZSIpOwo+PiArICAgIH0KPj4gKyAgICBp ZiBnZXRfY2hhdHRyKCZtdXQgbWV0YSwgZmQpPyB7Cj4gCj4gc2FtZQo+IAo+PiArICAgICAgICBz dGFsZV9mZCA9IHRydWU7Cj4+ICsgICAgICAgIGxvZzo6d2FybiEoIlN0YWxlIGZpbGVoYW5kbGUs IGNoYXR0ciBpbmNvbXBsZXRlIik7Cj4+ICsgICAgfQo+PiAgICAgICBnZXRfZmF0X2F0dHIoJm11 dCBtZXRhLCBmZCwgZnNfbWFnaWMpPzsKPj4gLSAgICBnZXRfcXVvdGFfcHJvamVjdF9pZCgmbXV0 IG1ldGEsIGZkLCBmbGFncywgZnNfbWFnaWMpPzsKPj4gLSAgICBPayhtZXRhKQo+PiArICAgIGlm IGdldF9xdW90YV9wcm9qZWN0X2lkKCZtdXQgbWV0YSwgZmQsIGZsYWdzLCBmc19tYWdpYyk/IHsK PiAKPiBzYW1lCj4gCj4+ICsgICAgICAgIHN0YWxlX2ZkID0gdHJ1ZTsKPj4gKyAgICAgICAgbG9n Ojp3YXJuISgiU3RhbGUgZmlsZWhhbmRsZSwgcXVvdGEgIHByb2plY3QgaWQgaW5jb21wbGV0ZSIp Owo+PiArICAgIH0KPiAKPiBzZWUgYWJvdmUgYW5kIHdheSBkb3duIGJlbG93LCBJTUhPIGFsbCBv ZiB0aGVzZSBjb3VsZCBqdXN0IGJ1YmJsZSB1cCB0aGUgZXJyb3IuLgo+IAo+PiArICAgIE9rKCht ZXRhLCBzdGFsZV9mZCkpCj4+ICAgfQo+PiAgIAo+PiAgIGZuIGdldF9mY2FwcygKPj4gQEAgLTE0 MzEsMjIgKzE0NTMsMjMgQEAgZm4gZ2V0X2ZjYXBzKAo+PiAgICAgICBmZDogUmF3RmQsCj4+ICAg ICAgIGZsYWdzOiBGbGFncywKPj4gICAgICAgZnNfZmVhdHVyZV9mbGFnczogJm11dCBGbGFncywK Pj4gLSkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiArKSAtPiBSZXN1bHQ8Ym9vbCwgRXJyb3I+ IHsKPiAKPiB0aGlzIGlzIG9ubHkgY2FsbGVkIGJ5IGdldF94YXR0cl9mY2Fwc19hY2wsIHNvIGNv dWxkIGp1c3QgYnViYmxlIHVwCj4gRVNUQUxFIGFzIHdlbGwuLgo+IAo+PiAgICAgICBpZiAhZmxh Z3MuY29udGFpbnMoRmxhZ3M6OldJVEhfRkNBUFMpIHsKPj4gLSAgICAgICAgcmV0dXJuIE9rKCgp KTsKPj4gKyAgICAgICAgcmV0dXJuIE9rKGZhbHNlKTsKPj4gICAgICAgfQo+PiAgIAo+PiAgICAg ICBtYXRjaCB4YXR0cjo6ZmdldHhhdHRyKGZkLCB4YXR0cjo6WEFUVFJfTkFNRV9GQ0FQUykgewo+ PiAgICAgICAgICAgT2soZGF0YSkgPT4gewo+PiAgICAgICAgICAgICAgIG1ldGEuZmNhcHMgPSBT b21lKHB4YXI6OmZvcm1hdDo6RkNhcHMgeyBkYXRhIH0pOwo+PiAtICAgICAgICAgICAgT2soKCkp Cj4+ICsgICAgICAgICAgICBPayhmYWxzZSkKPj4gICAgICAgICAgIH0KPj4gLSAgICAgICAgRXJy KEVycm5vOjpFTk9EQVRBKSA9PiBPaygoKSksCj4+ICsgICAgICAgIEVycihFcnJubzo6RU5PREFU QSkgPT4gT2soZmFsc2UpLAo+PiAgICAgICAgICAgRXJyKEVycm5vOjpFT1BOT1RTVVBQKSA9PiB7 Cj4+ICAgICAgICAgICAgICAgZnNfZmVhdHVyZV9mbGFncy5yZW1vdmUoRmxhZ3M6OldJVEhfRkNB UFMpOwo+PiAtICAgICAgICAgICAgT2soKCkpCj4+ICsgICAgICAgICAgICBPayhmYWxzZSkKPj4g ICAgICAgICAgIH0KPj4gLSAgICAgICAgRXJyKEVycm5vOjpFQkFERikgPT4gT2soKCkpLCAvLyBz eW1saW5rcwo+PiArICAgICAgICBFcnIoRXJybm86OkVCQURGKSA9PiBPayhmYWxzZSksIC8vIHN5 bWxpbmtzCj4+ICsgICAgICAgIEVycihFcnJubzo6RVNUQUxFKSA9PiBPayh0cnVlKSwKPj4gICAg ICAgICAgIEVycihlcnIpID0+IEVycihlcnIpLmNvbnRleHQoImZhaWxlZCB0byByZWFkIGZpbGUg Y2FwYWJpbGl0aWVzIiksCj4+ICAgICAgIH0KPj4gICB9Cj4+IEBAIC0xNDU4LDMyICsxNDgxLDM1 IEBAIGZuIGdldF94YXR0cl9mY2Fwc19hY2woCj4+ICAgICAgIGZsYWdzOiBGbGFncywKPj4gICAg ICAgZnNfZmVhdHVyZV9mbGFnczogJm11dCBGbGFncywKPj4gICAgICAgc2tpcF9lMmJpZ194YXR0 cjogYm9vbCwKPj4gLSkgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiArKSAtPiBSZXN1bHQ8Ym9v bCwgRXJyb3I+IHsKPj4gICAgICAgaWYgIWZsYWdzLmNvbnRhaW5zKEZsYWdzOjpXSVRIX1hBVFRS Uykgewo+PiAtICAgICAgICByZXR1cm4gT2soKCkpOwo+PiArICAgICAgICByZXR1cm4gT2soZmFs c2UpOwo+PiAgICAgICB9Cj4+ICAgCj4+ICAgICAgIGxldCB4YXR0cnMgPSBtYXRjaCB4YXR0cjo6 Zmxpc3R4YXR0cihmZCkgewo+PiAgICAgICAgICAgT2sobmFtZXMpID0+IG5hbWVzLAo+PiAgICAg ICAgICAgRXJyKEVycm5vOjpFT1BOT1RTVVBQKSA9PiB7Cj4+ICAgICAgICAgICAgICAgZnNfZmVh dHVyZV9mbGFncy5yZW1vdmUoRmxhZ3M6OldJVEhfWEFUVFJTKTsKPj4gLSAgICAgICAgICAgIHJl dHVybiBPaygoKSk7Cj4+ICsgICAgICAgICAgICByZXR1cm4gT2soZmFsc2UpOwo+PiAgICAgICAg ICAgfQo+PiAgICAgICAgICAgRXJyKEVycm5vOjpFMkJJRykgPT4gewo+PiAgICAgICAgICAgICAg IG1hdGNoIHNraXBfZTJiaWdfeGF0dHIgewo+PiAtICAgICAgICAgICAgICAgIHRydWUgPT4gcmV0 dXJuIE9rKCgpKSwKPj4gKyAgICAgICAgICAgICAgICB0cnVlID0+IHJldHVybiBPayhmYWxzZSks Cj4+ICAgICAgICAgICAgICAgICAgIGZhbHNlID0+IHsKPj4gICAgICAgICAgICAgICAgICAgICAg IGJhaWwhKCJ7fSAodHJ5IC0tc2tpcC1lMmJpZy14YXR0cikiLCBFcnJubzo6RTJCSUcudG9fc3Ry aW5nKCkpOwo+PiAgICAgICAgICAgICAgICAgICB9Cj4+ICAgICAgICAgICAgICAgfTsKPj4gICAg ICAgICAgIH0KPj4gLSAgICAgICAgRXJyKEVycm5vOjpFQkFERikgPT4gcmV0dXJuIE9rKCgpKSwg Ly8gc3ltbGlua3MKPj4gKyAgICAgICAgRXJyKEVycm5vOjpFQkFERikgPT4gcmV0dXJuIE9rKGZh bHNlKSwgLy8gc3ltbGlua3MKPj4gKyAgICAgICAgRXJyKEVycm5vOjpFU1RBTEUpID0+IHJldHVy biBPayh0cnVlKSwKPiAKPiBzZWUgYWJvdmUKPiAKPj4gICAgICAgICAgIEVycihlcnIpID0+IHJl dHVybiBFcnIoZXJyKS5jb250ZXh0KCJmYWlsZWQgdG8gcmVhZCB4YXR0cnMiKSwKPj4gICAgICAg fTsKPj4gICAKPj4gICAgICAgZm9yIGF0dHIgaW4gJnhhdHRycyB7Cj4+ICAgICAgICAgICBpZiB4 YXR0cjo6aXNfc2VjdXJpdHlfY2FwYWJpbGl0eShhdHRyKSB7Cj4+IC0gICAgICAgICAgICBnZXRf ZmNhcHMobWV0YSwgZmQsIGZsYWdzLCBmc19mZWF0dXJlX2ZsYWdzKT87Cj4+ICsgICAgICAgICAg ICBpZiBnZXRfZmNhcHMobWV0YSwgZmQsIGZsYWdzLCBmc19mZWF0dXJlX2ZsYWdzKT8gewo+PiAr ICAgICAgICAgICAgICAgIHJldHVybiBPayh0cnVlKTsKPiAKPiBzZWUgYWJvdmUKPiAKPj4gKyAg ICAgICAgICAgIH0KPj4gICAgICAgICAgICAgICBjb250aW51ZTsKPj4gICAgICAgICAgIH0KPj4g ICAKPj4gQEAgLTE1MDUsMzUgKzE1MzEsMzcgQEAgZm4gZ2V0X3hhdHRyX2ZjYXBzX2FjbCgKPj4g ICAgICAgICAgICAgICBFcnIoRXJybm86OkVCQURGKSA9PiAoKSwgICAvLyBzeW1saW5rcywgc2hv dWxkbid0IGJlIGFibGUgdG8gcmVhY2ggdGhpcyBlaXRoZXIKPj4gICAgICAgICAgICAgICBFcnIo RXJybm86OkUyQklHKSA9PiB7Cj4+ICAgICAgICAgICAgICAgICAgIG1hdGNoIHNraXBfZTJiaWdf eGF0dHIgewo+PiAtICAgICAgICAgICAgICAgICAgICB0cnVlID0+IHJldHVybiBPaygoKSksCj4+ ICsgICAgICAgICAgICAgICAgICAgIHRydWUgPT4gcmV0dXJuIE9rKGZhbHNlKSwKPj4gICAgICAg ICAgICAgICAgICAgICAgIGZhbHNlID0+IHsKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICBi YWlsISgie30gKHRyeSAtLXNraXAtZTJiaWcteGF0dHIpIiwgRXJybm86OkUyQklHLnRvX3N0cmlu ZygpKTsKPj4gICAgICAgICAgICAgICAgICAgICAgIH0KPj4gICAgICAgICAgICAgICAgICAgfTsK Pj4gICAgICAgICAgICAgICB9Cj4+ICsgICAgICAgICAgICBFcnIoRXJybm86OkVTVEFMRSkgPT4g cmV0dXJuIE9rKHRydWUpLCAvLyBzeW1saW5rcwo+IAo+IHNhbWUgaGVyZSAoYW5kIHN0cmF5IGNv cHktcGFzdGUgY29tbWVudCBJIGd1ZXNzPykKPiAKPj4gICAgICAgICAgICAgICBFcnIoZXJyKSA9 PiB7Cj4+ICAgICAgICAgICAgICAgICAgIHJldHVybiBFcnIoZXJyKS5jb250ZXh0KGZvcm1hdCEo ImVycm9yIHJlYWRpbmcgZXh0ZW5kZWQgYXR0cmlidXRlIHthdHRyOj99IikpCj4+ICAgICAgICAg ICAgICAgfQo+PiAgICAgICAgICAgfQo+PiAgICAgICB9Cj4+ICAgCj4+IC0gICAgT2soKCkpCj4+ ICsgICAgT2soZmFsc2UpCj4+ICAgfQo+PiAgIAo+PiAtZm4gZ2V0X2NoYXR0cihtZXRhZGF0YTog Jm11dCBNZXRhZGF0YSwgZmQ6IFJhd0ZkKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+ICtmbiBn ZXRfY2hhdHRyKG1ldGFkYXRhOiAmbXV0IE1ldGFkYXRhLCBmZDogUmF3RmQpIC0+IFJlc3VsdDxi b29sLCBFcnJvcj4gewo+PiAgICAgICBsZXQgbXV0IGF0dHI6IGxpYmM6OmNfbG9uZyA9IDA7Cj4+ ICAgCj4+ICAgICAgIG1hdGNoIHVuc2FmZSB7IGZzOjpyZWFkX2F0dHJfZmQoZmQsICZtdXQgYXR0 cikgfSB7Cj4+ICAgICAgICAgICBPayhfKSA9PiAoKSwKPj4gKyAgICAgICAgRXJyKEVycm5vOjpF U1RBTEUpID0+IHJldHVybiBPayh0cnVlKSwKPj4gICAgICAgICAgIEVycihlcnJubykgaWYgZXJy bm9faXNfdW5zdXBwb3J0ZWQoZXJybm8pID0+IHsKPj4gLSAgICAgICAgICAgIHJldHVybiBPaygo KSk7Cj4+ICsgICAgICAgICAgICByZXR1cm4gT2soZmFsc2UpOwo+PiAgICAgICAgICAgfQo+PiAg ICAgICAgICAgRXJyKGVycikgPT4gcmV0dXJuIEVycihlcnIpLmNvbnRleHQoImZhaWxlZCB0byBy ZWFkIGZpbGUgYXR0cmlidXRlcyIpLAo+PiAgICAgICB9Cj4+ICAgCj4+ICAgICAgIG1ldGFkYXRh LnN0YXQuZmxhZ3MgfD0gRmxhZ3M6OmZyb21fY2hhdHRyKGF0dHIpLmJpdHMoKTsKPj4gICAKPj4g LSAgICBPaygoKSkKPj4gKyAgICBPayhmYWxzZSkKPj4gICB9Cj4+ICAgCj4+ICAgZm4gZ2V0X2Zh dF9hdHRyKG1ldGFkYXRhOiAmbXV0IE1ldGFkYXRhLCBmZDogUmF3RmQsIGZzX21hZ2ljOiBpNjQp IC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4gQEAgLTE1NjQsMzAgKzE1OTIsMzQgQEAgZm4gZ2V0 X3F1b3RhX3Byb2plY3RfaWQoCj4+ICAgICAgIGZkOiBSYXdGZCwKPj4gICAgICAgZmxhZ3M6IEZs YWdzLAo+PiAgICAgICBtYWdpYzogaTY0LAo+PiAtKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+ ICspIC0+IFJlc3VsdDxib29sLCBFcnJvcj4gewo+IAo+IHNlZSBhYm92ZQo+IAo+PiAgICAgICBp ZiAhKG1ldGFkYXRhLmlzX2RpcigpIHx8IG1ldGFkYXRhLmlzX3JlZ3VsYXJfZmlsZSgpKSB7Cj4+ IC0gICAgICAgIHJldHVybiBPaygoKSk7Cj4+ICsgICAgICAgIHJldHVybiBPayhmYWxzZSk7Cj4+ ICAgICAgIH0KPj4gICAKPj4gICAgICAgaWYgIWZsYWdzLmNvbnRhaW5zKEZsYWdzOjpXSVRIX1FV T1RBX1BST0pJRCkgewo+PiAtICAgICAgICByZXR1cm4gT2soKCkpOwo+PiArICAgICAgICByZXR1 cm4gT2soZmFsc2UpOwo+PiAgICAgICB9Cj4+ICAgCj4+ICAgICAgIHVzZSBwcm94bW94X3N5czo6 bGludXg6Om1hZ2ljOjoqOwo+PiAgIAo+PiAgICAgICBtYXRjaCBtYWdpYyB7Cj4+ICAgICAgICAg ICBFWFQ0X1NVUEVSX01BR0lDIHwgWEZTX1NVUEVSX01BR0lDIHwgRlVTRV9TVVBFUl9NQUdJQyB8 IFpGU19TVVBFUl9NQUdJQyA9PiAoKSwKPj4gLSAgICAgICAgXyA9PiByZXR1cm4gT2soKCkpLAo+ PiArICAgICAgICBfID0+IHJldHVybiBPayhmYWxzZSksCj4+ICAgICAgIH0KPj4gICAKPj4gICAg ICAgbGV0IG11dCBmc3hhdHRyID0gZnM6OkZTWEF0dHI6OmRlZmF1bHQoKTsKPj4gICAgICAgbGV0 IHJlcyA9IHVuc2FmZSB7IGZzOjpmc19pb2NfZnNnZXR4YXR0cihmZCwgJm11dCBmc3hhdHRyKSB9 Owo+PiAgIAo+PiArICAgIGlmIGxldCBFcnIoRXJybm86OkVTVEFMRSkgPSByZXMgewo+PiArICAg ICAgICByZXR1cm4gT2sodHJ1ZSk7Cj4+ICsgICAgfQo+PiArCj4+ICAgICAgIC8vIE9uIHNvbWUg RlVTRSBmaWxlc3lzdGVtcyBpdCBjYW4gaGFwcGVuIHRoYXQgaW9jdGwgaXMgbm90IHN1cHBvcnRl ZC4KPj4gICAgICAgLy8gRm9yIHRoZXNlIGNhc2VzIHByb2ppZCBpcyBzZXQgdG8gMCB3aGlsZSB0 aGUgZXJyb3IgaXMgaWdub3JlZC4KPj4gICAgICAgaWYgbGV0IEVycihlcnJubykgPSByZXMgewo+ PiAgICAgICAgICAgaWYgZXJybm9faXNfdW5zdXBwb3J0ZWQoZXJybm8pIHsKPj4gLSAgICAgICAg ICAgIHJldHVybiBPaygoKSk7Cj4+ICsgICAgICAgICAgICByZXR1cm4gT2soZmFsc2UpOwo+PiAg ICAgICAgICAgfSBlbHNlIHsKPj4gICAgICAgICAgICAgICByZXR1cm4gRXJyKGVycm5vKS5jb250 ZXh0KCJlcnJvciB3aGlsZSByZWFkaW5nIHF1b3RhIHByb2plY3QgaWQiKTsKPj4gICAgICAgICAg IH0KPj4gQEAgLTE1OTcsNyArMTYyOSw3IEBAIGZuIGdldF9xdW90YV9wcm9qZWN0X2lkKAo+PiAg ICAgICBpZiBwcm9qaWQgIT0gMCB7Cj4+ICAgICAgICAgICBtZXRhZGF0YS5xdW90YV9wcm9qZWN0 X2lkID0gU29tZShweGFyOjpmb3JtYXQ6OlF1b3RhUHJvamVjdElkIHsgcHJvamlkIH0pOwo+PiAg ICAgICB9Cj4+IC0gICAgT2soKCkpCj4+ICsgICAgT2soZmFsc2UpCj4+ICAgfQo+PiAgIAo+PiAg IGZuIGdldF9hY2woCj4+IEBAIC0xODQwLDcgKzE4NzIsNyBAQCBtb2QgdGVzdHMgewo+PiAgICAg ICAgICAgbGV0IGZzX21hZ2ljID0gZGV0ZWN0X2ZzX3R5cGUoZGlyLmFzX3Jhd19mZCgpKS51bndy YXAoKTsKPj4gICAgICAgICAgIGxldCBzdGF0ID0gbml4OjpzeXM6OnN0YXQ6OmZzdGF0KGRpci5h c19yYXdfZmQoKSkudW53cmFwKCk7Cj4+ICAgICAgICAgICBsZXQgbXV0IGZzX2ZlYXR1cmVfZmxh Z3MgPSBGbGFnczo6ZnJvbV9tYWdpYyhmc19tYWdpYyk7Cj4+IC0gICAgICAgIGxldCBtZXRhZGF0 YSA9IGdldF9tZXRhZGF0YSgKPj4gKyAgICAgICAgbGV0IChtZXRhZGF0YSwgXykgPSBnZXRfbWV0 YWRhdGEoCj4gCj4gbm8gdXNlIG9mIHRoZSBuZXcgcmV0dXJuIHZhbHVlCj4gCj4+ICAgICAgICAg ICAgICAgZGlyLmFzX3Jhd19mZCgpLAo+PiAgICAgICAgICAgICAgICZzdGF0LAo+PiAgICAgICAg ICAgICAgIGZzX2ZlYXR1cmVfZmxhZ3MsCj4+IEBAIC0xOTM3LDcgKzE5NjksNyBAQCBtb2QgdGVz dHMgewo+PiAgICAgICAgICAgICAgIGxldCBzdGF0ID0gbml4OjpzeXM6OnN0YXQ6OmZzdGF0KHNv dXJjZV9kaXIuYXNfcmF3X2ZkKCkpLnVud3JhcCgpOwo+PiAgICAgICAgICAgICAgIGxldCBtdXQg ZnNfZmVhdHVyZV9mbGFncyA9IEZsYWdzOjpmcm9tX21hZ2ljKGZzX21hZ2ljKTsKPj4gICAKPj4g LSAgICAgICAgICAgIGxldCBtZXRhZGF0YSA9IGdldF9tZXRhZGF0YSgKPj4gKyAgICAgICAgICAg IGxldCAobWV0YWRhdGEsIF8pID0gZ2V0X21ldGFkYXRhKAo+IAo+IG5vIHVzZSBlaXRoZXIuLiBz byB3b3VsZG4ndCBpdCBtYWtlIG1vcmUgc2Vuc2UgdG8gcGFzcyBpbiBhIHBhdGggYW5kIGxvZwo+ IHRoZSBjb250ZXh0IHJpZ2h0IGluIGdldF9tZXRhZGF0YT8gb3IgdHJlYXQgdGhlIHN0YWxlIEZE IGFzIGFuIGVycm9yLAo+IGFuZCBhZGQgdGhlIGNvbnRleHQvcGF0aCBhcyBwYXJ0IG9mIGVycm9y IGhhbmRsaW5nPwoKVGhlIGZpcnN0IGFwcHJvYWNoIHNlZW1zIGJldHRlciwgd2lsbCBob3dldmVy IG5vdCBoZWxwIHRvIGRpZmZlcmVudGlhdGUgCnRoZSAoaGFyZCkgZXJyb3JzIGZyb20gdGhlIHNv ZnQgZXJyb3IgRVNUQUxFLCB3aGljaCByZXF1aXJlcyB0byBza2lwIApvdmVyIGVudHJpZXMgYXQg dGhlIGBnZXRfbWV0YWRhdGFgIGNhbGwgc2lkZSBjb25kaXRpb25hbGx5LgoKUmV0dXJuaW5nIHRo ZSBzdGFsZSBmaWxlIGhhbmRsZSBlcnJvciBhcyBgQW55aG93OjpFcnJvcmAgYWxzbyBkb2VzIG5v dCAKYWxsb3cgdG8gZGlzdGluZ3Vpc2ggZnJvbSBvdGhlciAoaGFyZCkgZXJyb3JzLCBzbyBhZ2Fp biBpdCBjYW5ub3QgYmUgCmhhbmRsZWQgYXMgc29mdCBlcnJvciBhdCB0aGUgY2FsbCBzaXRlLgoK QW5kIHJldHVybmluZyBhbGwgZXJyb3JzIGFzIGBFcnJub2AgaGFzIHRoZSBsb3NzIG9mIGVycm9y IGNvbnRleHQgaXNzdWUgCmFzIGRlc2NyaWJlZCBhYm92ZS4KCkkgd2lsbCBzZWUgaWYgSSBjYW4g Y292ZXIgdGhpcyBiZXR0ZXIgYnkgcmVmYWN0b3JpbmcgdGhlIGNvZGUsIGFzIG1vc3QgCm9mIHRo ZSBoZWxwZXJzIGhhdmUgYSBzaW5nbGUgY2FsbCBzaWRlLCBzbyBpdCBzaG91bGQgYmUgcG9zc2li bGUgdG8gCnJlb3JnYW5pemUgd2l0aG91dCBtdWNoIHNpZGUgZWZmZWN0cy4KCj4gCj4gdGhlIGZv dXIgY2FsbCBzaXRlcyBhcmU6Cj4gLSB0d28gcmVsYXRlZCB0byB0ZXN0cywgd2UgY2FuIHByb2Jh Ymx5IHRyZWF0IEVTVEFMRSBhcyBoYXJkIGVycm9yIHRoZXJlCj4gLSB0aGUgb25lIGZvciBvYnRh aW5pbmcgdGhlIG1ldGFkYXRhIG9mIHRoZSBzb3VyY2UgZGlyIG9mIHRoZSBhcmNoaXZlLAo+ICAg IGlmIHRoYXQgaXMgc3RhbGUgd2UgY2FuJ3QgY3JlYXRlIGFuIGFyY2hpdmUgLT4gaGFyZCBlcnJv ciBhcyB3ZWxsCj4gLSBhZGRpbmcgYW4gZW50cnk6IGZvciB0aGUgc3RhbGUgY2FzZSwgd2UgYWxy ZWFkeSBsb2cgYSB3YXJuaW5nIGFuZAo+ICAgIHByb2NlZWQgd2l0aCB0aGUgbmV4dCBlbnRyeSwg c28gd2UgZG9uJ3QgYmVuZWZpdCBmcm9tIHRoZSBmYWN0IHRoYXQKPiAgICAoaW5jb21wbGV0ZSkg bWV0YWRhdGEgYW5kIHRoZSBzdGFsZW5lc3MgaXMgcmV0dXJuZWQsIGFzIG9wcG9zZWQgdG8KPiAg ICBqdXN0IHRyZWF0aW5nIEVTVEFMRSBhcyBhbiBlcnJvciB0aGF0IHdlIGNhbiAiY2F0Y2giIGFu ZCBoYW5kbGUuLgo+IAo+PiAgICAgICAgICAgICAgICAgICBzb3VyY2VfZGlyLmFzX3Jhd19mZCgp LAo+PiAgICAgICAgICAgICAgICAgICAmc3RhdCwKPj4gICAgICAgICAgICAgICAgICAgZnNfZmVh dHVyZV9mbGFncywKPj4gLS0gCj4+IDIuMzkuNQo+Pgo+Pgo+Pgo+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBwYnMtZGV2ZWwgbWFpbGluZyBsaXN0 Cj4+IHBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+PiBodHRwczovL2xpc3RzLnByb3htb3gu Y29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwKPj4KPj4KPj4KPiAKPiAKPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IHBicy1kZXZl bCBtYWlsaW5nIGxpc3QKPiBwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KPiBodHRwczovL2xp c3RzLnByb3htb3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwKPiAKPiAK CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRl dmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0 cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==