From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pbs-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 336A31FF18C for <inbox@lore.proxmox.com>; Mon, 12 May 2025 12:02:48 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 7454016DD; Mon, 12 May 2025 12:03:09 +0200 (CEST) Date: Mon, 12 May 2025 12:03:03 +0200 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= <f.gruenbichler@proxmox.com> To: Christian Ebner <c.ebner@proxmox.com>, Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> References: <20250508130555.494782-1-c.ebner@proxmox.com> <20250508130555.494782-19-c.ebner@proxmox.com> <1746793013.k8qdvp27bh.astroid@yuna.none> <39b85c49-8a09-4702-8a76-2d7bdbc500e5@proxmox.com> In-Reply-To: <39b85c49-8a09-4702-8a76-2d7bdbc500e5@proxmox.com> MIME-Version: 1.0 User-Agent: astroid/0.16.0 (https://github.com/astroidmail/astroid) Message-Id: <1747042049.qdgxw6i7os.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.504 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 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: Re: [pbs-devel] [RFC v2 proxmox-backup 18/21] api: admin: implement endpoints to restore trashed contents X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion <pbs-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/> List-Post: <mailto:pbs-devel@lists.proxmox.com> List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com> T24gTWF5IDksIDIwMjUgMjo1OSBwbSwgQ2hyaXN0aWFuIEVibmVyIHdyb3RlOgo+IFRoYW5rcyBm b3IgZmVlZGJhY2ssIHdpbGwgaGF2ZSBhIGNsb3NlciBsb29rIG5leHQgd2Vlay4KPiAKPiBBbGxv dyBtZSB0d28gcXVpY2sgcXVlc3Rpb25zIGlubGluZSB0aG91Z2guLi4KPiAKPiBPbiA1LzkvMjUg MTQ6MjcsIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4+IE9uIE1heSA4LCAyMDI1IDM6MDUg cG0sIENocmlzdGlhbiBFYm5lciB3cm90ZToKPj4+IEltcGxlbWVudHMgdGhlIGFwaSBlbmRwb2lu dHMgdG8gcmVzdG9yZSB0cmFzaGVkIGNvbnRlbnRzIGNvbnRhaW5lZAo+Pj4gd2l0aGluIG5hbWVz cGFjZXMsIGJhY2t1cCBncm91cHMgb3IgaW5kaXZpZHVhbCBzbmFwc2hvdHMuCj4+Pgo+Pj4gU2ln bmVkLW9mZi1ieTogQ2hyaXN0aWFuIEVibmVyIDxjLmVibmVyQHByb3htb3guY29tPgo+Pj4gLS0t Cj4+PiAgIHNyYy9hcGkyL2FkbWluL2RhdGFzdG9yZS5ycyB8IDE3MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KPj4+ICAgMSBmaWxlIGNoYW5nZWQsIDE3MiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL3NyYy9hcGkyL2FkbWluL2Rh dGFzdG9yZS5ycyBiL3NyYy9hcGkyL2FkbWluL2RhdGFzdG9yZS5ycwo+Pj4gaW5kZXggY2JkMjRj NzI5Li5lYjAzM2MzZmMgMTAwNjQ0Cj4+PiAtLS0gYS9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUu cnMKPj4+ICsrKyBiL3NyYy9hcGkyL2FkbWluL2RhdGFzdG9yZS5ycwo+Pj4gQEAgLTUxLDcgKzUx LDcgQEAgdXNlIHBic19hcGlfdHlwZXM6OnsKPj4+ICAgfTsKPj4+ICAgdXNlIHBic19jbGllbnQ6 OnB4YXI6OntjcmVhdGVfdGFyLCBjcmVhdGVfemlwfTsKPj4+ICAgdXNlIHBic19jb25maWc6OkNh Y2hlZFVzZXJJbmZvOwo+Pj4gLXVzZSBwYnNfZGF0YXN0b3JlOjpiYWNrdXBfaW5mbzo6e0JhY2t1 cEluZm8sIExpc3RCYWNrdXBGaWx0ZXJ9Owo+Pj4gK3VzZSBwYnNfZGF0YXN0b3JlOjpiYWNrdXBf aW5mbzo6e0JhY2t1cEluZm8sIExpc3RCYWNrdXBGaWx0ZXIsIFRSQVNIX01BUktFUl9GSUxFTkFN RX07Cj4+PiAgIHVzZSBwYnNfZGF0YXN0b3JlOjpjYWNoZWRfY2h1bmtfcmVhZGVyOjpDYWNoZWRD aHVua1JlYWRlcjsKPj4+ICAgdXNlIHBic19kYXRhc3RvcmU6OmNhdGFsb2c6OntBcmNoaXZlRW50 cnksIENhdGFsb2dSZWFkZXJ9Owo+Pj4gICB1c2UgcGJzX2RhdGFzdG9yZTo6ZGF0YV9ibG9iOjpE YXRhQmxvYjsKPj4+IEBAIC0yNzI3LDYgKzI3MjcsMTY1IEBAIHB1YiBhc3luYyBmbiB1bm1vdW50 KHN0b3JlOiBTdHJpbmcsIHJwY2VudjogJm11dCBkeW4gUnBjRW52aXJvbm1lbnQpIC0+IFJlc3Vs dDxWCj4+PiAgICAgICBPayhqc29uISh1cGlkKSkKPj4+ICAgfQo+Pj4gICAKPj4+ICsjW2FwaSgK Pj4+ICsgICAgaW5wdXQ6IHsKPj4+ICsgICAgICAgIHByb3BlcnRpZXM6IHsKPj4+ICsgICAgICAg ICAgICBzdG9yZTogeyBzY2hlbWE6IERBVEFTVE9SRV9TQ0hFTUEgfSwKPj4+ICsgICAgICAgICAg ICBuczogeyB0eXBlOiBCYWNrdXBOYW1lc3BhY2UsIH0sCj4+PiArICAgICAgICB9LAo+Pj4gKyAg ICB9LAo+Pj4gKyAgICBhY2Nlc3M6IHsKPj4+ICsgICAgICAgIHBlcm1pc3Npb246ICZQZXJtaXNz aW9uOjpBbnlib2R5LAo+Pj4gKyAgICAgICAgZGVzY3JpcHRpb246ICJSZXF1aXJlcyBvbiAvZGF0 YXN0b3JlL3tzdG9yZX1bL3tuYW1lc3BhY2V9XSBlaXRoZXIgREFUQVNUT1JFX01PRElGWSBmb3Ig YW55IFwKPj4+ICsgICAgICAgICAgICBvciBEQVRBU1RPUkVfQkFDS1VQIGFuZCBiZWluZyB0aGUg b3duZXIgb2YgdGhlIGdyb3VwIiwKPj4+ICsgICAgfSwKPj4+ICspXQo+Pj4gKy8vLyBSZWNvdmVy IHRyYXNoZWQgY29udGVudHMgb2YgYSBuYW1lc3BhY2UuCj4+PiArcHViIGZuIHJlY292ZXJfbmFt ZXNwYWNlKAo+Pj4gKyAgICBzdG9yZTogU3RyaW5nLAo+Pj4gKyAgICBuczogQmFja3VwTmFtZXNw YWNlLAo+Pj4gKyAgICBycGNlbnY6ICZtdXQgZHluIFJwY0Vudmlyb25tZW50LAo+Pj4gKykgLT4g UmVzdWx0PCgpLCBFcnJvcj4gewo+Pj4gKyAgICBsZXQgYXV0aF9pZDogQXV0aGlkID0gcnBjZW52 LmdldF9hdXRoX2lkKCkudW53cmFwKCkucGFyc2UoKT87Cj4+PiArICAgIGxldCBsaW1pdGVkID0g Y2hlY2tfbnNfcHJpdnNfZnVsbCgKPj4+ICsgICAgICAgICZzdG9yZSwKPj4+ICsgICAgICAgICZu cywKPj4+ICsgICAgICAgICZhdXRoX2lkLAo+Pj4gKyAgICAgICAgUFJJVl9EQVRBU1RPUkVfTU9E SUZZLAo+Pj4gKyAgICAgICAgUFJJVl9EQVRBU1RPUkVfQkFDS1VQLAo+Pj4gKyAgICApPzsKPj4+ ICsKPj4+ICsgICAgbGV0IGRhdGFzdG9yZSA9IERhdGFTdG9yZTo6bG9va3VwX2RhdGFzdG9yZSgm c3RvcmUsIFNvbWUoT3BlcmF0aW9uOjpXcml0ZSkpPzsKPj4+ICsKPj4+ICsgICAgZm9yIGJhY2t1 cF9ncm91cCBpbiBkYXRhc3RvcmUuaXRlcl9iYWNrdXBfZ3JvdXBzKG5zLmNsb25lKCkpPyB7Cj4+ PiArICAgICAgICBsZXQgYmFja3VwX2dyb3VwID0gYmFja3VwX2dyb3VwPzsKPj4+ICsgICAgICAg IGlmIGxpbWl0ZWQgewo+Pj4gKyAgICAgICAgICAgIGxldCBvd25lciA9IGRhdGFzdG9yZS5nZXRf b3duZXIoJm5zLCBiYWNrdXBfZ3JvdXAuZ3JvdXAoKSk/Owo+Pj4gKyAgICAgICAgICAgIGlmIGNo ZWNrX2JhY2t1cF9vd25lcigmb3duZXIsICZhdXRoX2lkKS5pc19lcnIoKSB7Cj4+PiArICAgICAg ICAgICAgICAgIGNvbnRpbnVlOwo+Pj4gKyAgICAgICAgICAgIH0KPj4+ICsgICAgICAgIH0KPj4+ ICsgICAgICAgIGRvX3JlY292ZXJfZ3JvdXAoJmJhY2t1cF9ncm91cCk/Owo+Pj4gKyAgICB9Cj4+ PiArCj4+PiArICAgIE9rKCgpKQo+Pj4gK30KPj4+ICsKPj4+ICsjW2FwaSgKPj4+ICsgICAgaW5w dXQ6IHsKPj4+ICsgICAgICAgIHByb3BlcnRpZXM6IHsKPj4+ICsgICAgICAgICAgICBzdG9yZTog eyBzY2hlbWE6IERBVEFTVE9SRV9TQ0hFTUEgfSwKPj4+ICsgICAgICAgICAgICBncm91cDogewo+ Pj4gKyAgICAgICAgICAgICAgICB0eXBlOiBwYnNfYXBpX3R5cGVzOjpCYWNrdXBHcm91cCwKPj4+ ICsgICAgICAgICAgICAgICAgZmxhdHRlbjogdHJ1ZSwKPj4+ICsgICAgICAgICAgICB9LAo+Pj4g KyAgICAgICAgICAgIG5zOiB7Cj4+PiArICAgICAgICAgICAgICAgIHR5cGU6IEJhY2t1cE5hbWVz cGFjZSwKPj4+ICsgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsCj4+PiArICAgICAgICAg ICAgfSwKPj4+ICsgICAgICAgIH0sCj4+PiArICAgIH0sCj4+PiArICAgIGFjY2Vzczogewo+Pj4g KyAgICAgICAgcGVybWlzc2lvbjogJlBlcm1pc3Npb246OkFueWJvZHksCj4+PiArICAgICAgICBk ZXNjcmlwdGlvbjogIlJlcXVpcmVzIG9uIC9kYXRhc3RvcmUve3N0b3JlfVsve25hbWVzcGFjZX1d IGVpdGhlciBEQVRBU1RPUkVfTU9ESUZZIGZvciBhbnkgXAo+Pj4gKyAgICAgICAgICAgIG9yIERB VEFTVE9SRV9CQUNLVVAgYW5kIGJlaW5nIHRoZSBvd25lciBvZiB0aGUgZ3JvdXAiLAo+Pj4gKyAg ICB9LAo+Pj4gKyldCj4+PiArLy8vIFJlY292ZXIgdHJhc2hlZCBjb250ZW50cyBvZiBhIGJhY2t1 cCBncm91cC4KPj4+ICtwdWIgZm4gcmVjb3Zlcl9ncm91cCgKPj4+ICsgICAgc3RvcmU6IFN0cmlu ZywKPj4+ICsgICAgZ3JvdXA6IHBic19hcGlfdHlwZXM6OkJhY2t1cEdyb3VwLAo+Pj4gKyAgICBu czogT3B0aW9uPEJhY2t1cE5hbWVzcGFjZT4sCj4+PiArICAgIHJwY2VudjogJm11dCBkeW4gUnBj RW52aXJvbm1lbnQsCj4+PiArKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+PiArICAgIGxldCBh dXRoX2lkOiBBdXRoaWQgPSBycGNlbnYuZ2V0X2F1dGhfaWQoKS51bndyYXAoKS5wYXJzZSgpPzsK Pj4+ICsgICAgbGV0IG5zID0gbnMudW53cmFwX29yX2RlZmF1bHQoKTsKPj4+ICsgICAgbGV0IGRh dGFzdG9yZSA9IGNoZWNrX3ByaXZzX2FuZF9sb2FkX3N0b3JlKAo+Pj4gKyAgICAgICAgJnN0b3Jl LAo+Pj4gKyAgICAgICAgJm5zLAo+Pj4gKyAgICAgICAgJmF1dGhfaWQsCj4+PiArICAgICAgICBQ UklWX0RBVEFTVE9SRV9NT0RJRlksCj4+PiArICAgICAgICBQUklWX0RBVEFTVE9SRV9CQUNLVVAs Cj4+PiArICAgICAgICBTb21lKE9wZXJhdGlvbjo6V3JpdGUpLAo+Pj4gKyAgICAgICAgJmdyb3Vw LAo+Pj4gKyAgICApPzsKPj4+ICsKPj4+ICsgICAgbGV0IGJhY2t1cF9ncm91cCA9IGRhdGFzdG9y ZS5iYWNrdXBfZ3JvdXAobnMsIGdyb3VwKTsKPj4+ICsgICAgZG9fcmVjb3Zlcl9ncm91cCgmYmFj a3VwX2dyb3VwKT87Cj4+PiArCj4+PiArICAgIE9rKCgpKQo+Pj4gK30KPj4+ICsKPj4+ICtmbiBk b19yZWNvdmVyX2dyb3VwKGJhY2t1cF9ncm91cDogJkJhY2t1cEdyb3VwKSAtPiBSZXN1bHQ8KCks IEVycm9yPiB7Cj4+IAo+PiBtaXNzaW5nIGxvY2tpbmcgZm9yIHRoZSBncm91cD8KPiAKPiBOb3Qg c3VyZSBhYm91dCB0aGF0IG9uZS4gQWZ0ZXIgYWxsIHRoZSBncm91cCBpcyB0cmFzaGVkIGF0IGxl YXN0IGFzIGxvbmcgCj4gYXMgYWxsIHRoZSBzbmFwc2hvdHMgYXJlIHRyYXNoZWQuIEFuZCBHQyB3 aWxsIG9ubHkgZXZlciBjbGVhbiB1cCB0aGUgCj4gZ3JvdXAgZm9sZGVyIGlmIHRoZSB0cmFzaCBt YXJrZXIgaXMgbm90IHNldC4gU28gSSBkbyBub3Qgc2VlIGEgcmVhc29uIAo+IHdoeSB0aGlzIHNo b3VsZCBiZSBsb2NrZWQuCgpiZWNhdXNlIGxvZ2ljYWxseSwgdGhpcyBpcyB0aGUgaW52ZXJzZSBv ZiBCYWNrdXBHcm91cDo6ZGVzdHJveSB3aXRoCnNraXBfdHJhc2g9ZmFsc2UsIGFuZCB0aGF0IGxv Y2tzIHRoZSBncm91cC4uCgplbHNlIHlvdSBjb3VsZCBoYXZlIGEgcmVjb3ZlcnkgYW5kIGEgZnVs bCBkZWxldGlvbiBydW5uaW5nIGNvbmN1cnJlbnRseQpmb3IgdGhlIHNhbWUgZ3JvdXAuIGFsc28s IHdoaWxlIHlvdSBhcmUgcmVjb3ZlcmluZyB0aGUgZ3JvdXAgeW91CnByb2JhYmx5IGRvbid0IHdh bnQgdG8gc3RhcnQgYSBuZXcgYmFja3VwIHNuYXBzaG90LCB3aGljaCB3b3VsZCBhbHNvIGJlCnBv c3NpYmxlIHdpdGggdGhlIG1pc3NpbmcgbG9jay4KCj4+PiArICAgIGxldCB0cmFzaGVkX3NuYXBz aG90cyA9IGJhY2t1cF9ncm91cC5saXN0X2JhY2t1cHMoTGlzdEJhY2t1cEZpbHRlcjo6VHJhc2hl ZCk/Owo+Pj4gKyAgICBmb3Igc25hcHNob3QgaW4gdHJhc2hlZF9zbmFwc2hvdHMgewo+Pj4gKyAg ICAgICAgZG9fcmVjb3Zlcl9zbmFwc2hvdCgmc25hcHNob3QuYmFja3VwX2Rpcik/Owo+Pj4gKyAg ICB9Cj4+PiArCj4+PiArICAgIGxldCBncm91cF90cmFzaF9wYXRoID0gYmFja3VwX2dyb3VwLmZ1 bGxfZ3JvdXBfcGF0aCgpLmpvaW4oVFJBU0hfTUFSS0VSX0ZJTEVOQU1FKTsKPj4+ICsgICAgaWYg bGV0IEVycihlcnIpID0gc3RkOjpmczo6cmVtb3ZlX2ZpbGUoJmdyb3VwX3RyYXNoX3BhdGgpIHsK Pj4+ICsgICAgICAgIGlmIGVyci5raW5kKCkgIT0gc3RkOjppbzo6RXJyb3JLaW5kOjpOb3RGb3Vu ZCB7Cj4+PiArICAgICAgICAgICAgYmFpbCEoImZhaWxlZCB0byByZW1vdmUgZ3JvdXAgdHJhc2gg ZmlsZSB7Z3JvdXBfdHJhc2hfcGF0aDo/fSAtIHtlcnJ9Iik7Cj4+PiArICAgICAgICB9Cj4+PiAr ICAgIH0KPj4+ICsgICAgT2soKCkpCj4+PiArfQo+Pj4gKwo+Pj4gKyNbYXBpKAo+Pj4gKyAgICBp bnB1dDogewo+Pj4gKyAgICAgICAgcHJvcGVydGllczogewo+Pj4gKyAgICAgICAgICAgIHN0b3Jl OiB7IHNjaGVtYTogREFUQVNUT1JFX1NDSEVNQSB9LAo+Pj4gKyAgICAgICAgICAgIGJhY2t1cF9k aXI6IHsKPj4+ICsgICAgICAgICAgICAgICAgdHlwZTogcGJzX2FwaV90eXBlczo6QmFja3VwRGly LAo+Pj4gKyAgICAgICAgICAgICAgICBmbGF0dGVuOiB0cnVlLAo+Pj4gKyAgICAgICAgICAgIH0s Cj4+PiArICAgICAgICAgICAgbnM6IHsKPj4+ICsgICAgICAgICAgICAgICAgdHlwZTogQmFja3Vw TmFtZXNwYWNlLAo+Pj4gKyAgICAgICAgICAgICAgICBvcHRpb25hbDogdHJ1ZSwKPj4+ICsgICAg ICAgICAgICB9LAo+Pj4gKyAgICAgICAgfSwKPj4+ICsgICAgfSwKPj4+ICsgICAgYWNjZXNzOiB7 Cj4+PiArICAgICAgICBwZXJtaXNzaW9uOiAmUGVybWlzc2lvbjo6QW55Ym9keSwKPj4+ICsgICAg ICAgIGRlc2NyaXB0aW9uOiAiUmVxdWlyZXMgb24gL2RhdGFzdG9yZS97c3RvcmV9Wy97bmFtZXNw YWNlfV0gZWl0aGVyIERBVEFTVE9SRV9NT0RJRlkgZm9yIGFueSBcCj4+PiArICAgICAgICAgICAg b3IgREFUQVNUT1JFX0JBQ0tVUCBhbmQgYmVpbmcgdGhlIG93bmVyIG9mIHRoZSBncm91cCIsCj4+ PiArICAgIH0sCj4+PiArKV0KPj4+ICsvLy8gUmVjb3ZlciB0cmFzaGVkIGNvbnRlbnRzIG9mIGEg YmFja3VwIHNuYXBzaG90Lgo+Pj4gK3B1YiBmbiByZWNvdmVyX3NuYXBzaG90KAo+Pj4gKyAgICBz dG9yZTogU3RyaW5nLAo+Pj4gKyAgICBiYWNrdXBfZGlyOiBwYnNfYXBpX3R5cGVzOjpCYWNrdXBE aXIsCj4+PiArICAgIG5zOiBPcHRpb248QmFja3VwTmFtZXNwYWNlPiwKPj4+ICsgICAgcnBjZW52 OiAmbXV0IGR5biBScGNFbnZpcm9ubWVudCwKPj4+ICspIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsK Pj4+ICsgICAgbGV0IGF1dGhfaWQ6IEF1dGhpZCA9IHJwY2Vudi5nZXRfYXV0aF9pZCgpLnVud3Jh cCgpLnBhcnNlKCk/Owo+Pj4gKyAgICBsZXQgbnMgPSBucy51bndyYXBfb3JfZGVmYXVsdCgpOwo+ Pj4gKyAgICBsZXQgZGF0YXN0b3JlID0gY2hlY2tfcHJpdnNfYW5kX2xvYWRfc3RvcmUoCj4+PiAr ICAgICAgICAmc3RvcmUsCj4+PiArICAgICAgICAmbnMsCj4+PiArICAgICAgICAmYXV0aF9pZCwK Pj4+ICsgICAgICAgIFBSSVZfREFUQVNUT1JFX01PRElGWSwKPj4+ICsgICAgICAgIFBSSVZfREFU QVNUT1JFX0JBQ0tVUCwKPj4+ICsgICAgICAgIFNvbWUoT3BlcmF0aW9uOjpXcml0ZSksCj4+PiAr ICAgICAgICAmYmFja3VwX2Rpci5ncm91cCwKPj4+ICsgICAgKT87Cj4+PiArCj4+PiArICAgIGxl dCBzbmFwc2hvdCA9IGRhdGFzdG9yZS5iYWNrdXBfZGlyKG5zLCBiYWNrdXBfZGlyKT87Cj4+PiAr ICAgIGRvX3JlY292ZXJfc25hcHNob3QoJnNuYXBzaG90KT87Cj4+PiArCj4+PiArICAgIE9rKCgp KQo+Pj4gK30KPj4+ICsKPj4+ICtmbiBkb19yZWNvdmVyX3NuYXBzaG90KHNuYXBzaG90X2Rpcjog JkJhY2t1cERpcikgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiAKPj4gbWlzc2luZyBsb2NraW5n IGZvciB0aGUgc25hcHNob3Q/Cj4gCj4gV2h5PyByZW1vdmVfZmlsZSgpIHNob3VsZCBiZSBhdG9t aWM/CgpidXQgYSBza2lwX3RyYXNoPXRydWUgZGVsZXRpb24gbWlnaHQgYmUgZ29pbmcgb24gYWxy ZWFkeSBvciBzb21lIG90aGVyCm9wZXJhdGlvbiBob2xkaW5nIGEgbG9jayBvbiB0aGUgc25hcHNo b3QgdGhhdCBkb2Vzbid0IHdhbnQgdGhlICd0cmFzaCcKc3RhdHVzIGJlaW5nIGNoYW5nZWQgdW5k ZXJuZWF0aCBpdD8KCj4+IAo+Pj4gKyAgICBsZXQgdHJhc2hfcGF0aCA9IHNuYXBzaG90X2Rpci5m dWxsX3BhdGgoKS5qb2luKFRSQVNIX01BUktFUl9GSUxFTkFNRSk7Cj4+PiArICAgIGlmIGxldCBF cnIoZXJyKSA9IHN0ZDo6ZnM6OnJlbW92ZV9maWxlKCZ0cmFzaF9wYXRoKSB7Cj4+PiArICAgICAg ICBpZiBlcnIua2luZCgpICE9IHN0ZDo6aW86OkVycm9yS2luZDo6Tm90Rm91bmQgewo+Pj4gKyAg ICAgICAgICAgIGJhaWwhKCJmYWlsZWQgdG8gcmVtb3ZlIHRyYXNoIGZpbGUge3RyYXNoX3BhdGg6 P30gLSB7ZXJyfSIpOwo+Pj4gKyAgICAgICAgfQo+Pj4gKyAgICB9Cj4+PiArICAgIE9rKCgpKQo+ Pj4gK30KPj4+ICsKPj4+ICAgI1tzb3J0YWJsZV0KPj4+ICAgY29uc3QgREFUQVNUT1JFX0lORk9f U1VCRElSUzogU3ViZGlyTWFwID0gJlsKPj4+ICAgICAgICgKPj4+IEBAIC0yNzkyLDYgKzI5NTEs MTggQEAgY29uc3QgREFUQVNUT1JFX0lORk9fU1VCRElSUzogU3ViZGlyTWFwID0gJlsKPj4+ICAg ICAgICAgICAicHhhci1maWxlLWRvd25sb2FkIiwKPj4+ICAgICAgICAgICAmUm91dGVyOjpuZXco KS5kb3dubG9hZCgmQVBJX01FVEhPRF9QWEFSX0ZJTEVfRE9XTkxPQUQpLAo+Pj4gICAgICAgKSwK Pj4+ICsgICAgKAo+Pj4gKyAgICAgICAgInJlY292ZXItZ3JvdXAiLAo+Pj4gKyAgICAgICAgJlJv dXRlcjo6bmV3KCkucG9zdCgmQVBJX01FVEhPRF9SRUNPVkVSX0dST1VQKSwKPj4gCj4+IEkgYW0g bm90IHN1cmUgd2hldGhlciB0aG9zZSBzaG91bGQgYmUgUE9TVCBvciBQVVQsIHRoZXkgYXJlIG1v ZGlmeWluZyBhbgo+PiBleGlzdGluZyAodHJhc2hlZCkgZ3JvdXAvc25hcHNob3QvLi4gYWZ0ZXIg YWxsPwo+PiAKPj4+ICsgICAgKSwKPj4+ICsgICAgKAo+Pj4gKyAgICAgICAgInJlY292ZXItbmFt ZXNwYWNlIiwKPj4+ICsgICAgICAgICZSb3V0ZXI6Om5ldygpLnBvc3QoJkFQSV9NRVRIT0RfUkVD T1ZFUl9OQU1FU1BBQ0UpLAo+Pj4gKyAgICApLAo+Pj4gKyAgICAoCj4+PiArICAgICAgICAicmVj b3Zlci1zbmFwc2hvdCIsCj4+PiArICAgICAgICAmUm91dGVyOjpuZXcoKS5wb3N0KCZBUElfTUVU SE9EX1JFQ09WRVJfU05BUFNIT1QpLAo+Pj4gKyAgICApLAo+Pj4gICAgICAgKCJycmQiLCAmUm91 dGVyOjpuZXcoKS5nZXQoJkFQSV9NRVRIT0RfR0VUX1JSRF9TVEFUUykpLAo+Pj4gICAgICAgKAo+ Pj4gICAgICAgICAgICJzbmFwc2hvdHMiLAo+Pj4gLS0gCj4+PiAyLjM5LjUKPj4+Cj4+Pgo+Pj4K Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBw YnMtZGV2ZWwgbWFpbGluZyBsaXN0Cj4+PiBwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KPj4+ IGh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1k ZXZlbAo+Pj4KPj4+Cj4+Pgo+PiAKPj4gCj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4+IHBicy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gcGJzLWRldmVs QGxpc3RzLnByb3htb3guY29tCj4+IGh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9t YWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo+PiAKPj4gCj4gCj4gCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRldmVsIG1haWxpbmcgbGlzdApw YnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2kt YmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==