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 DB75F1FF15C for ; Wed, 30 Oct 2024 11:08:34 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6953E14714; Wed, 30 Oct 2024 11:08:38 +0100 (CET) MIME-Version: 1.0 In-Reply-To: References: <20240904141155.350454-1-h.laimer@proxmox.com> <20240904141155.350454-8-h.laimer@proxmox.com> <1728907855.3hw8kydnft.astroid@yuna.none> From: Fabian =?utf-8?q?Gr=C3=BCnbichler?= To: Proxmox Backup Server development discussion Date: Wed, 30 Oct 2024 11:07:55 +0100 Message-ID: <173028287557.67540.11868267444477304501@yuna.proxmox.com> User-Agent: alot/0.10 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.047 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 Subject: Re: [pbs-devel] [PATCH proxmox-backup v12 07/26] api: admin: add (un)mount endpoint for removable datastores 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" UXVvdGluZyBIYW5uZXMgTGFpbWVyICgyMDI0LTEwLTI5IDE1OjU4OjI1KQo+IE9uIE1vbiBPY3Qg MTQsIDIwMjQgYXQgMzo0MiBQTSBDRVNULCBGYWJpYW4gR3LDvG5iaWNobGVyIHdyb3RlOgo+ID4g T24gU2VwdGVtYmVyIDQsIDIwMjQgNDoxMSBwbSwgSGFubmVzIExhaW1lciB3cm90ZToKPiA+ID4g U2lnbmVkLW9mZi1ieTogSGFubmVzIExhaW1lciA8aC5sYWltZXJAcHJveG1veC5jb20+Cj4gPiA+ IC0tLQo+ID4gPiAgcGJzLWFwaS10eXBlcy9zcmMvbWFpbnRlbmFuY2UucnMgfCAgIDQgKwo+ID4g PiAgc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzICAgICAgfCAyNDMgKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLQo+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAyMzcgaW5zZXJ0aW9ucygr KSwgMTAgZGVsZXRpb25zKC0pCj4gPgo+ID4gYSBwcmV0dHkgc3Vic3RhbnRpYWwgcGF0Y2ggLSBu byBjb21taXQgbWVzc2FnZSBhdCBhbGw/Pwo+ID4KPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9w YnMtYXBpLXR5cGVzL3NyYy9tYWludGVuYW5jZS5ycyBiL3Bicy1hcGktdHlwZXMvc3JjL21haW50 ZW5hbmNlLnJzCj4gPiA+IGluZGV4IDlmNTEyOTJlLi42MDE4MTI1OCAxMDA2NDQKPiA+ID4gLS0t IGEvcGJzLWFwaS10eXBlcy9zcmMvbWFpbnRlbmFuY2UucnMKPiA+ID4gKysrIGIvcGJzLWFwaS10 eXBlcy9zcmMvbWFpbnRlbmFuY2UucnMKPiA+ID4gQEAgLTc4LDYgKzc4LDEwIEBAIHB1YiBzdHJ1 Y3QgTWFpbnRlbmFuY2VNb2RlIHsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAgaW1wbCBNYWludGVu YW5jZU1vZGUgewo+ID4gPiArICAgIHB1YiBmbiBuZXcodHk6IE1haW50ZW5hbmNlVHlwZSwgbWVz c2FnZTogT3B0aW9uPFN0cmluZz4pIC0+IFNlbGYgewo+ID4gPiArICAgICAgICBTZWxmIHsgdHks IG1lc3NhZ2UgfQo+ID4gPiArICAgIH0KPiA+ID4gKwo+ID4KPiA+IG5pdDogaWYgd2Ugd2FudCB0 aGlzLCBpdCBzaG91bGQgYmUgaW4gaXRzIG93biBwYXRjaCBhbmQgY29udmVydCBleGlzdGluZwo+ ID4gY29uc3RydWN0aW9ucyBhcyB3ZWxsLi4gb3IgdGhpcyBjb3VsZCBiZSBkcm9wcGVkIGFuZCB0 aGUgY2FsbCB0byBgbmV3YAo+ID4gYmVsb3cgY291bGQganVzdCBpbml0IHRoZSBzdHJ1Y3QuLgo+ ID4KPiA+ID4gICAgICAvLy8gVXNlZCBmb3IgZGVjaWRpbmcgd2hldGhlciB0aGUgZGF0YXN0b3Jl IGlzIGNsZWFyZWQgZnJvbSB0aGUgaW50ZXJuYWwgY2FjaGUgYWZ0ZXIgdGhlIGxhc3QKPiA+ID4g ICAgICAvLy8gdGFzayBmaW5pc2hlcywgc28gYWxsIG9wZW4gZmlsZXMgYXJlIGNsb3NlZC4KPiA+ ID4gICAgICBwdWIgZm4gaXNfb2ZmbGluZSgmc2VsZikgLT4gYm9vbCB7Cj4gPiA+IGRpZmYgLS1n aXQgYS9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMgYi9zcmMvYXBpMi9hZG1pbi9kYXRhc3Rv cmUucnMKPiA+ID4gaW5kZXggOTc2NjE3ZDkuLjNjOTU4ODhkIDEwMDY0NAo+ID4gPiAtLS0gYS9z cmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMKPiA+ID4gKysrIGIvc3JjL2FwaTIvYWRtaW4vZGF0 YXN0b3JlLnJzCj4gPiA+IEBAIC0zLDcgKzMsNyBAQAo+ID4gPiAgdXNlIHN0ZDo6Y29sbGVjdGlv bnM6Okhhc2hTZXQ7Cj4gPiA+ICB1c2Ugc3RkOjpmZmk6Ok9zU3RyOwo+ID4gPiAgdXNlIHN0ZDo6 b3M6OnVuaXg6OmZmaTo6T3NTdHJFeHQ7Cj4gPiA+IC11c2Ugc3RkOjpwYXRoOjpQYXRoQnVmOwo+ ID4gPiArdXNlIHN0ZDo6cGF0aDo6e1BhdGgsIFBhdGhCdWZ9Owo+ID4gPiAgdXNlIHN0ZDo6c3lu Yzo6QXJjOwo+ID4gPiAgCj4gPiA+ICB1c2UgYW55aG93Ojp7YmFpbCwgZm9ybWF0X2VyciwgRXJy b3J9Owo+ID4gPiBAQCAtMTMsNyArMTMsNyBAQCB1c2UgaHlwZXI6OntoZWFkZXIsIEJvZHksIFJl c3BvbnNlLCBTdGF0dXNDb2RlfTsKPiA+ID4gIHVzZSBzZXJkZTo6RGVzZXJpYWxpemU7Cj4gPiA+ ICB1c2Ugc2VyZGVfanNvbjo6e2pzb24sIFZhbHVlfTsKPiA+ID4gIHVzZSB0b2tpb19zdHJlYW06 OndyYXBwZXJzOjpSZWNlaXZlclN0cmVhbTsKPiA+ID4gLXVzZSB0cmFjaW5nOjp7aW5mbywgd2Fy bn07Cj4gPiA+ICt1c2UgdHJhY2luZzo6e2RlYnVnLCBpbmZvLCB3YXJufTsKPiA+ID4gIAo+ID4g PiAgdXNlIHByb3htb3hfYXN5bmM6OmJsb2NraW5nOjpXcmFwcGVkUmVhZGVyU3RyZWFtOwo+ID4g PiAgdXNlIHByb3htb3hfYXN5bmM6Ontpbzo6QXN5bmNDaGFubmVsV3JpdGVyLCBzdHJlYW06OkFz eW5jUmVhZGVyU3RyZWFtfTsKPiA+ID4gQEAgLTI5LDYgKzI5LDcgQEAgdXNlIHByb3htb3hfc3lz Ojpmczo6ewo+ID4gPiAgICAgIGZpbGVfcmVhZF9maXJzdGxpbmUsIGZpbGVfcmVhZF9vcHRpb25h bF9zdHJpbmcsIHJlcGxhY2VfZmlsZSwgQ3JlYXRlT3B0aW9ucywKPiA+ID4gIH07Cj4gPiA+ICB1 c2UgcHJveG1veF90aW1lOjpDYWxlbmRhckV2ZW50Owo+ID4gPiArdXNlIHByb3htb3hfd29ya2Vy X3Rhc2s6OldvcmtlclRhc2tDb250ZXh0Owo+ID4gPiAgCj4gPiA+ICB1c2UgcHhhcjo6YWNjZXNz b3I6OmFpbzo6QWNjZXNzb3I7Cj4gPiA+ICB1c2UgcHhhcjo6RW50cnlLaW5kOwo+ID4gPiBAQCAt MzYsMTIgKzM3LDEyIEBAIHVzZSBweGFyOjpFbnRyeUtpbmQ7Cj4gPiA+ICB1c2UgcGJzX2FwaV90 eXBlczo6ewo+ID4gPiAgICAgIHByaW50X25zX2FuZF9zbmFwc2hvdCwgcHJpbnRfc3RvcmVfYW5k X25zLCBBdXRoaWQsIEJhY2t1cENvbnRlbnQsIEJhY2t1cE5hbWVzcGFjZSwgQmFja3VwVHlwZSwK PiA+ID4gICAgICBDb3VudHMsIENyeXB0TW9kZSwgRGF0YVN0b3JlQ29uZmlnLCBEYXRhU3RvcmVM aXN0SXRlbSwgRGF0YVN0b3JlU3RhdHVzLAo+ID4gPiAtICAgIEdhcmJhZ2VDb2xsZWN0aW9uSm9i U3RhdHVzLCBHcm91cExpc3RJdGVtLCBKb2JTY2hlZHVsZVN0YXR1cywgS2VlcE9wdGlvbnMsIE9w ZXJhdGlvbiwKPiA+ID4gLSAgICBQcnVuZUpvYk9wdGlvbnMsIFNuYXBzaG90TGlzdEl0ZW0sIFNu YXBzaG90VmVyaWZ5U3RhdGUsIEJBQ0tVUF9BUkNISVZFX05BTUVfU0NIRU1BLAo+ID4gPiAtICAg IEJBQ0tVUF9JRF9TQ0hFTUEsIEJBQ0tVUF9OQU1FU1BBQ0VfU0NIRU1BLCBCQUNLVVBfVElNRV9T Q0hFTUEsIEJBQ0tVUF9UWVBFX1NDSEVNQSwKPiA+ID4gLSAgICBEQVRBU1RPUkVfU0NIRU1BLCBJ R05PUkVfVkVSSUZJRURfQkFDS1VQU19TQ0hFTUEsIE1BWF9OQU1FU1BBQ0VfREVQVEgsIE5TX01B WF9ERVBUSF9TQ0hFTUEsCj4gPiA+IC0gICAgUFJJVl9EQVRBU1RPUkVfQVVESVQsIFBSSVZfREFU QVNUT1JFX0JBQ0tVUCwgUFJJVl9EQVRBU1RPUkVfTU9ESUZZLCBQUklWX0RBVEFTVE9SRV9QUlVO RSwKPiA+ID4gLSAgICBQUklWX0RBVEFTVE9SRV9SRUFELCBQUklWX0RBVEFTVE9SRV9WRVJJRlks IFVQSUQsIFVQSURfU0NIRU1BLAo+ID4gPiArICAgIEdhcmJhZ2VDb2xsZWN0aW9uSm9iU3RhdHVz LCBHcm91cExpc3RJdGVtLCBKb2JTY2hlZHVsZVN0YXR1cywgS2VlcE9wdGlvbnMsIE1haW50ZW5h bmNlTW9kZSwKPiA+ID4gKyAgICBNYWludGVuYW5jZVR5cGUsIE9wZXJhdGlvbiwgUHJ1bmVKb2JP cHRpb25zLCBTbmFwc2hvdExpc3RJdGVtLCBTbmFwc2hvdFZlcmlmeVN0YXRlLAo+ID4gPiArICAg IEJBQ0tVUF9BUkNISVZFX05BTUVfU0NIRU1BLCBCQUNLVVBfSURfU0NIRU1BLCBCQUNLVVBfTkFN RVNQQUNFX1NDSEVNQSwgQkFDS1VQX1RJTUVfU0NIRU1BLAo+ID4gPiArICAgIEJBQ0tVUF9UWVBF X1NDSEVNQSwgREFUQVNUT1JFX1NDSEVNQSwgSUdOT1JFX1ZFUklGSUVEX0JBQ0tVUFNfU0NIRU1B LCBNQVhfTkFNRVNQQUNFX0RFUFRILAo+ID4gPiArICAgIE5TX01BWF9ERVBUSF9TQ0hFTUEsIFBS SVZfREFUQVNUT1JFX0FVRElULCBQUklWX0RBVEFTVE9SRV9CQUNLVVAsIFBSSVZfREFUQVNUT1JF X01PRElGWSwKPiA+ID4gKyAgICBQUklWX0RBVEFTVE9SRV9QUlVORSwgUFJJVl9EQVRBU1RPUkVf UkVBRCwgUFJJVl9EQVRBU1RPUkVfVkVSSUZZLCBVUElELCBVUElEX1NDSEVNQSwKPiA+ID4gICAg ICBWRVJJRklDQVRJT05fT1VUREFURURfQUZURVJfU0NIRU1BLAo+ID4gPiAgfTsKPiA+ID4gIHVz ZSBwYnNfY2xpZW50OjpweGFyOjp7Y3JlYXRlX3RhciwgY3JlYXRlX3ppcH07Cj4gPiA+IEBAIC01 Nyw4ICs1OCw4IEBAIHVzZSBwYnNfZGF0YXN0b3JlOjppbmRleDo6SW5kZXhGaWxlOwo+ID4gPiAg dXNlIHBic19kYXRhc3RvcmU6Om1hbmlmZXN0Ojp7QmFja3VwTWFuaWZlc3QsIENMSUVOVF9MT0df QkxPQl9OQU1FLCBNQU5JRkVTVF9CTE9CX05BTUV9Owo+ID4gPiAgdXNlIHBic19kYXRhc3RvcmU6 OnBydW5lOjpjb21wdXRlX3BydW5lX2luZm87Cj4gPiA+ICB1c2UgcGJzX2RhdGFzdG9yZTo6ewo+ ID4gPiAtICAgIGNoZWNrX2JhY2t1cF9vd25lciwgdGFza190cmFja2luZywgQmFja3VwRGlyLCBC YWNrdXBHcm91cCwgRGF0YVN0b3JlLCBMb2NhbENodW5rUmVhZGVyLAo+ID4gPiAtICAgIFN0b3Jl UHJvZ3Jlc3MsIENBVEFMT0dfTkFNRSwKPiA+ID4gKyAgICBjaGVja19iYWNrdXBfb3duZXIsIGlz X2RhdGFzdG9yZV9hdmFpbGFibGUsIHRhc2tfdHJhY2tpbmcsIEJhY2t1cERpciwgQmFja3VwR3Jv dXAsIERhdGFTdG9yZSwKPiA+ID4gKyAgICBMb2NhbENodW5rUmVhZGVyLCBTdG9yZVByb2dyZXNz LCBDQVRBTE9HX05BTUUsCj4gPiA+ICB9Owo+ID4gPiAgdXNlIHBic190b29sczo6anNvbjo6cmVx dWlyZWRfc3RyaW5nX3BhcmFtOwo+ID4gPiAgdXNlIHByb3htb3hfcmVzdF9zZXJ2ZXI6Ontmb3Jt YXR0ZXIsIFdvcmtlclRhc2t9Owo+ID4gPiBAQCAtMjM4NCw2ICsyMzg1LDIyNiBAQCBwdWIgYXN5 bmMgZm4gc2V0X2JhY2t1cF9vd25lcigKPiA+ID4gICAgICAuYXdhaXQ/Cj4gPiA+ICB9Cj4gPiA+ ICAKPiA+ID4gKy8vLyBIZXJlIHdlCj4gPiA+ICsvLy8KPiA+ID4gKy8vLyAxLiBtb3VudCB0aGUg cmVtb3ZhYmxlIGRldmljZSB0byBgPFBCU19SVU5fRElSPi9tb3VudC88UkFORE9NX1VVSUQ+YAo+ ID4gPiArLy8vIDIuIGJpbmQgbW91bnQgYDxQQlNfUlVOX0RJUj4vbW91bnQvPFJBTkRPTV9VVUlE Pi88ZGF0YXN0b3JlLnBhdGg+YCB0byBgL21udC9kYXRhc3RvcmUvPGRhdGFzdG9yZS5uYW1lPmAK PiA+ID4gKy8vLyAzLiB1bm1vdW50IGA8UEJTX1JVTl9ESVI+L21vdW50LzxSQU5ET01fVVVJRD5g Cj4gPgo+ID4gY291bGRuJ3Qgd2UgaW5zdGVhZCBtb3VudCBkaXJlY3RseSwgYW5kIGFkYXB0IGdl dF9hYnNvbHV0ZV9wYXRoIHRvCj4gPiByZXR1cm4gL21udC9kYXRhc3RvcmUve2RhdGFzdG9yZS5u YW1lfS97ZGF0YXN0b3JlLnBhdGh9ID8KPiA+Cj4gCj4gYnV0IHRoZW4gd2Ugd291bGQgZWl0aGVy IG1vdW50IGFsbCwgb3Igbm9uZSwgb2YgdGhlIGRhdGFzdG9yZXMgb24gdGhlCj4gZGV2aWNlLgoK d2hpY2ggSSB0aGluayBpcyBwcm9iYWJseSB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VyLCBidXQgSSBj YW4gc2VlIHRoZSBhcmd1bWVudAphZ2FpbnN0IGl0IGFzIHdlbGwuLgoKPiAKPiA+IHRoZSAiY29u Y3VycmVudCBtb3VudHMiIGNhbiBiZSBzb2x2ZWQgYnkgbG9ja2luZyAodXNpbmcgdGhlIFVVSUQg b3IKPiA+IGRhdGFzdG9yZSBuYW1lIGFzIGxvY2sgc2NvcGUpIG9yIGJ5IGdvaW5nIHZpYSBhIE1v dW50IG1haW50ZW5hbmNlIG1vZGUuLgo+ID4KPiAKPiB5ZXMsIEknbSBqdXN0IG5vdCBzdXJlIHRo YXQgbG9ja2luZyByZWFsbHkgYWRkcyBzb21ldGhpbmcuIFdlCj4gY2FuIG1vdW50IGluIHBhcmFs ZWxsLCB3ZSBqdXN0IGhhdmUgdG8gbWFrZSBzdXJlIHdlIGRvbid0IHVzZSB0aGUgc2FtZSB0bXAK PiBkaXIgbmFtZSBmb3IgaXQuCj4gCj4gPiBzZWVtcyB0byBtZSBsaWtlIHRoZXJlJ3MgYSBsb3Qg bGVzcyB0aGF0IGNvdWxkIGdvIHdyb25nL2ZhaWwgaW4gdGhhdAo+ID4gY2FzZT8gYnV0IG1heWJl IEkgYW0gbWlzc2luZyBzb21lIGJhY2tncm91bmQgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGluCj4g PiB0aGUgY29tbWl0IG1lc3NhZ2UgOykKPiA+Cj4gCj4gbW9zdCBvZiB3aGF0IGNhbiBnbyB3cm9u ZyBjb21lcyBmcm9tIG5lZWRpbmcgYSBidW5jaCBvZiB0bXAgdGhpbmdzIGFuZAo+IHRoZSAoYmlu ZCkgbW91bnRpbmcgdGhhdCBoYXBwZW5zLCB0aGF0IHdvdWxkIHN0aWxsIGhhcHBlbiwgZXZlbgo+ IG5vbi1jb25jdXJyZW50bHkuCgp3ZWxsLCB3aXRoIG9uZSBtb3VudCBwZXIgZGV2aWNlIHRoZXJl IHdvdWxkIGJlIG5vIG5lZWQgZm9yIHRtcCB0aGluZ3MgYW5kIGJpbmQgbW91bnRzIGF0IGFsbD8K Cj4gCj4gPiBpZiBJIHRoaW5rIG9mIHRoZSBzZW1hbnRpY3Mgb2YgInJlbW92YWJsZSBkYXRhc3Rv cmVzIiwgdGhlbiBpZiB3ZSB3YW50Cj4gPiB0byBzdXBwb3J0IG11bHRpcGxlIHN1Y2ggZGF0YXN0 b3JlcyBvbiBhIHNpbmdsZSBkZXZpY2UgKGF0IGxlYXN0IGFzIGFuCj4gPiBvcHRpb24gaW4gdGhl IGZ1dHVyZSksIHRoZW4gdW5tb3VudGluZyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4gdGhpbmtpbmcg b2YKPiA+IHRoZSBiYWNraW5nIGRldmljZSAoYWZ0ZXIgYWxsLCBJIHdhbnQgdG8gdW5tb3VudCB0 byB1bnBsdWcgaXQsIGFuZCBJCj4gPiBkb24ndCB3YW50IHRvIGRvIHRoYXQgMTAgdGltZXMgaWYg dGhlIGJhY2tpbmcgZGV2aWNlcyBjb250YWlucyAxMAo+ID4gZGF0YXN0b3JlcywgYW5kIGtlZXAg dHJhY2sgb2YgdGhlbSBhbGwsIGFuZCBlbnN1cmUgbm90aGluZyBtb3VudHMgdGhlbQo+ID4gYWdh aW4gaW4gdGhlIG1lYW50aW1lLCAuLikuLiBzbyBvbmx5IG1vdW50aW5nIGl0IG9uY2UgaW4gdGhl IGZpcnN0IHBsYWNlCj4gPiAoYW5kIHBvaW50aW5nIHRoZSBkYXRhc3RvcmUgYXQgdGhlIHJlbGV2 YW50IHN1YmRpciBvZiB0aGUgbW91bnRwb2ludCkKPiA+IHNlZW1zIGxpa2UgdGhlIGJldHRlciBv cHRpb24/Cj4gPgo+IAo+IFdlIGNvdWxkIG5vdCBhdXRvIG1vdW50IGlmIGEgZGV2aWNlIHRoYXQg Y29udGFpbnMgbXVsdGlwbGUgZGF0YXN0b3Jlcywgc28KPiB3aGF0IHNvbWVvbmUgbW91bnRlZCB0 aGV5IGFsc28gaGF2ZSB0byB1bm1vdW50LiBJIGZlZWwgbGlrZSBjbGlja2luZwo+ICJ1bm1vdW50 IiBvbiBvbmUgZGF0YXN0b3JlIGFuZCA0IG90aGVyIG9uZXMgYWxzbyBlbmQgdXAgdW4tbW91bnRl ZCBpcwo+IG5vdCByZWFsbHkgc29tZXRoaW5nIEknZCBleHBlY3QsIGFsc28gd2UnZCBoYXZlIHRv IHRyYWNrIGFjdGl2ZQo+IG9wZXJhdGlvbnMgb24gYWxsIG9mIHRoZW0gd2hlbiB1bm91bnRpbmcs IHdoaWNoIHdlIGNhbiBkbywgYnV0IGlkay4uLgo+IFRoaXMgY291bGQgbWFrZSBzZW5zZSBpZiB3 ZSBoYWQgdGhlIG5vdGlvbiBvZiBhIGRldmljZSwgYW5kIHVubW91bnRpbmcKPiB0aGUgZGVpdmNl IHVubW91bnRzIGFsbCB0aGlzIGRhdGFzdG9yZXMsIGJ1dCBJIGRvbid0IHRoaW5rIHRoYXQgaXMg d2hhdCB3ZSB3YW50LgoKd2VsbCB0aGUgd2hvbGUgcHVycG9zZSBvZiByZW1vdmFibGUgZGF0YXN0 b3JlcyBpcyB0byBhbGxvdyByb3RhdGluZyB0aG9zZQpkZXZpY2VzIG9yIHB1dHRpbmcgdGhlbSBp biBjb2xkIHN0b3JhZ2UuLiBzbyBpZiB3ZSB3YW50IHRvIHN1cHBvcnQgbXVsdGlwbGUKZGF0YXN0 b3JlcyBvbiB0aGUgc2FtZSBkZXZpY2UsIHRoZW4gYSBzaW5nbGUgdW5tb3VudCBmb3IgYWxsIG9m IHRoZW0gd291bGQgbWFrZQphIGxvdCBvZiBzZW5zZSBJTUhPLi4ganVzdCB1bm1vdW50aW5nIG9u ZSBvZiBOIGRhdGFzdG9yZXMgb24gdGhlIHNhbWUgZGV2aWNlCmhhcyBubyBwdXJwb3NlPwoKPiAK PiA+ID4gKy8vLwo+ID4gPiArLy8vIGxlYXZpbmcgdXMgd2l0aCB0aGUgZGF0YXN0b3JlIGJlaW5n IG1vdW50ZWQgZGlyZWN0bHkgd2l0aCBpdHMgbmFtZSB1bmRlciAvbW50L2RhdGFzdG9yZS8uLi4K PiA+ID4gKy8vLwo+ID4gPiArLy8vIFRoZSByZWFzb24gZm9yIHRoZSByYW5kb21pemVkIGRldmlj ZSBtb3VudGluZyBwYXRocyBpcyB0byBhdm9pZCB0d28gdGFza3MgdHJ5aW5nIHRvIG1vdW50IHRv Cj4gPiA+ICsvLy8gdGhlIHNhbWUgcGF0aCwgdGhpcyBpcyAqdmVyeSogdW5saWtlbHkgc2luY2Ug dGhlIGRldmljZSBpcyBvbmx5IG1vdW50ZWQgcmVhbGx5IHNob3J0bHksIGJ1dAo+ID4gPiArLy8v IHRlY2huaWNhbGx5IHBvc3NpYmxlLgo+ID4gPiArcHViIGZuIGRvX21vdW50X2RldmljZShkYXRh c3RvcmU6IERhdGFTdG9yZUNvbmZpZykgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+ID4gPiArICAg IGlmIGxldCAoU29tZSh1dWlkKSwgU29tZShtb3VudF9wb2ludCkpID0gKAo+ID4gPiArICAgICAg ICBkYXRhc3RvcmUuYmFja2luZ19kZXZpY2UuYXNfcmVmKCksCj4gPiA+ICsgICAgICAgIGRhdGFz dG9yZS5nZXRfbW91bnRfcG9pbnQoKSwKPiA+ID4gKyAgICApIHsKPiA+ID4gKyAgICAgICAgaWYg cGJzX2RhdGFzdG9yZTo6aXNfZGF0YXN0b3JlX2F2YWlsYWJsZSgmZGF0YXN0b3JlKSB7Cj4gPiA+ ICsgICAgICAgICAgICBiYWlsISgiZGF0YXN0b3JlICd7fScgaXMgYWxyZWFkeSBtb3VudGVkIiwg ZGF0YXN0b3JlLm5hbWUpOwo+ID4gPiArICAgICAgICB9Cj4gPiA+ICsgICAgICAgIGxldCB0bXBf bW91bnRfcGF0aCA9IGZvcm1hdCEoCj4gPiA+ICsgICAgICAgICAgICAie30vezp4fSIsCj4gPiA+ ICsgICAgICAgICAgICBwYnNfYnVpbGRjZmc6OnJ1bmRpciEoIi9tb3VudCIpLAo+ID4gPiArICAg ICAgICAgICAgcHJveG1veF91dWlkOjpVdWlkOjpnZW5lcmF0ZSgpCj4gPiA+ICsgICAgICAgICk7 Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgbGV0IGRlZmF1bHRfb3B0aW9ucyA9IHByb3htb3hfc3lz Ojpmczo6Q3JlYXRlT3B0aW9uczo6bmV3KCk7Cj4gPiA+ICsgICAgICAgIHByb3htb3hfc3lzOjpm czo6Y3JlYXRlX3BhdGgoCj4gPiA+ICsgICAgICAgICAgICAmdG1wX21vdW50X3BhdGgsCj4gPiA+ ICsgICAgICAgICAgICBTb21lKGRlZmF1bHRfb3B0aW9ucy5jbG9uZSgpKSwKPiA+ID4gKyAgICAg ICAgICAgIFNvbWUoZGVmYXVsdF9vcHRpb25zLmNsb25lKCkpLAo+ID4gPiArICAgICAgICApPzsK PiA+ID4gKwo+ID4gPiArICAgICAgICBkZWJ1ZyEoIm1vdW50aW5nICd7dXVpZH0nIHRvICd7fSci LCB0bXBfbW91bnRfcGF0aCk7Cj4gPiA+ICsgICAgICAgIGNyYXRlOjp0b29sczo6ZGlza3M6Om1v dW50X2J5X3V1aWQodXVpZCwgUGF0aDo6bmV3KCZ0bXBfbW91bnRfcGF0aCkpPzsKPiA+ID4gKwo+ ID4gPiArICAgICAgICBsZXQgZnVsbF9zdG9yZV9wYXRoID0gZm9ybWF0ISgKPiA+ID4gKyAgICAg ICAgICAgICJ7dG1wX21vdW50X3BhdGh9L3t9IiwKPiA+ID4gKyAgICAgICAgICAgIGRhdGFzdG9y ZS5wYXRoLnRyaW1fc3RhcnRfbWF0Y2hlcygnLycpCj4gPiA+ICsgICAgICAgICk7Cj4gPiA+ICsK PiA+ID4gKyAgICAgICAgcHJveG1veF9zeXM6OmZzOjpjcmVhdGVfcGF0aCgKPiA+ID4gKyAgICAg ICAgICAgICZtb3VudF9wb2ludCwKPiA+ID4gKyAgICAgICAgICAgIFNvbWUoZGVmYXVsdF9vcHRp b25zLmNsb25lKCkpLAo+ID4gPiArICAgICAgICAgICAgU29tZShkZWZhdWx0X29wdGlvbnMuY2xv bmUoKSksCj4gPiA+ICsgICAgICAgICk/Owo+ID4gPiArCj4gPiA+ICsgICAgICAgIC8vIGNhbid0 IGJlIGNyZWF0ZWQgYmVmb3JlIGl0IGlzIG1vdW50ZWQsIHNvIHdlIGhhdmUgdG8gZG8gaXQgaGVy ZQo+ID4gPiArICAgICAgICBwcm94bW94X3N5czo6ZnM6OmNyZWF0ZV9wYXRoKAo+ID4gPiArICAg ICAgICAgICAgJmZ1bGxfc3RvcmVfcGF0aCwKPiA+ID4gKyAgICAgICAgICAgIFNvbWUoZGVmYXVs dF9vcHRpb25zLmNsb25lKCkpLAo+ID4gPiArICAgICAgICAgICAgU29tZShkZWZhdWx0X29wdGlv bnMuY2xvbmUoKSksCj4gPiA+ICsgICAgICAgICk/Owo+ID4KPiA+IHNob3VsZG4ndCB0aGlzIGNy ZWF0ZV9wYXRoIGNhbGwgYmUgbGltaXRlZCB0byB0aGUgaW5pdGlhbCBjcmVhdGlvbiBvZgo+ID4g dGhlIGRhdGFzdG9yZT8gaW4gYWxsIG90aGVyIGNhc2VzIGl0IHNob3VsZCBhbHJlYWR5IGJlIHRo ZXJlLi4KPiA+Cj4gCj4gd2UnZCBoYXZlIHRvIGNoZWNrIGlmIGAuY2h1bmtzL2AgZXhpc3RzIGZv ciB0aGF0LCBhbmQKPiBjcmVhdGVfcGF0aCBhbHJlYWR5IGtpbmQgb2YgZG9lcyB0aGF0LiBCdXQg bWFudWFsbHkgY2hlY2tpbmcKPiBpcyBwcm9iYWJseSBhIGxpdHRsZSBmYXN0ZXIoPykKPiAKPiA+ ID4gKwo+ID4gPiArICAgICAgICBpbmZvISgKPiA+ID4gKyAgICAgICAgICAgICJtb3VudGluZyAn e30nKHt9KSB0byAne30nIiwKPiA+ID4gKyAgICAgICAgICAgIGRhdGFzdG9yZS5uYW1lLCBkYXRh c3RvcmUucGF0aCwgbW91bnRfcG9pbnQKPiA+ID4gKyAgICAgICAgKTsKPiA+ID4gKyAgICAgICAg aWYgbGV0IEVycihlcnIpID0KPiA+ID4gKyAgICAgICAgICAgIGNyYXRlOjp0b29sczo6ZGlza3M6 OmJpbmRfbW91bnQoUGF0aDo6bmV3KCZmdWxsX3N0b3JlX3BhdGgpLCBQYXRoOjpuZXcoJm1vdW50 X3BvaW50KSkKPiA+ID4gKyAgICAgICAgewo+ID4gPiArICAgICAgICAgICAgZGVidWchKCJ1bm1v dW50aW5nICd7fSciLCB0bXBfbW91bnRfcGF0aCk7Cj4gPiA+ICsgICAgICAgICAgICBsZXQgXyA9 IGNyYXRlOjp0b29sczo6ZGlza3M6OnVubW91bnRfYnlfbW91bnRwb2ludCgmdG1wX21vdW50X3Bh dGgpOwo+ID4gPiArICAgICAgICAgICAgbGV0IF8gPSBzdGQ6OmZzOjpyZW1vdmVfZGlyKHN0ZDo6 cGF0aDo6UGF0aDo6bmV3KCZ0bXBfbW91bnRfcGF0aCkpOwo+ID4gPiArICAgICAgICAgICAgcmV0 dXJuIEVycihmb3JtYXRfZXJyISgKPiA+ID4gKyAgICAgICAgICAgICAgICAiRGF0YXN0b3JlICd7 fScgY291bmQgbm90IGJlIG1vdW50ZWQ6IHt9LiIsCj4gPiA+ICsgICAgICAgICAgICAgICAgZGF0 YXN0b3JlLm5hbWUsCj4gPiA+ICsgICAgICAgICAgICAgICAgZXJyCj4gPiA+ICsgICAgICAgICAg ICApKTsKPiA+ID4gKyAgICAgICAgfQo+ID4gPiArCj4gPiA+ICsgICAgICAgIGRlYnVnISgidW5t b3VudGluZyAne30nIiwgdG1wX21vdW50X3BhdGgpOwo+ID4gPiArICAgICAgICBjcmF0ZTo6dG9v bHM6OmRpc2tzOjp1bm1vdW50X2J5X21vdW50cG9pbnQoJnRtcF9tb3VudF9wYXRoKT87Cj4gPiA+ ICsgICAgICAgIHN0ZDo6ZnM6OnJlbW92ZV9kaXIoc3RkOjpwYXRoOjpQYXRoOjpuZXcoJnRtcF9t b3VudF9wYXRoKSk/Owo+ID4gPiArCj4gPiA+ICsgICAgICAgIE9rKCgpKQo+ID4gPiArICAgIH0g ZWxzZSB7Cj4gPiA+ICsgICAgICAgIEVycihmb3JtYXRfZXJyISgKPiA+ID4gKyAgICAgICAgICAg ICJEYXRhc3RvcmUgJ3t9JyBjYW5ub3QgYmUgbW91bnRlZCBiZWNhdXNlIGl0IGlzIG5vdCByZW1v dmFibGUuIiwKPiA+ID4gKyAgICAgICAgICAgIGRhdGFzdG9yZS5uYW1lCj4gPiA+ICsgICAgICAg ICkpCj4gPiA+ICsgICAgfQo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICsjW2FwaSgKPiA+ID4gKyAg ICBwcm90ZWN0ZWQ6IHRydWUsCj4gPiA+ICsgICAgaW5wdXQ6IHsKPiA+ID4gKyAgICAgICAgcHJv cGVydGllczogewo+ID4gPiArICAgICAgICAgICAgc3RvcmU6IHsKPiA+ID4gKyAgICAgICAgICAg ICAgICBzY2hlbWE6IERBVEFTVE9SRV9TQ0hFTUEsCj4gPiA+ICsgICAgICAgICAgICB9LAo+ID4g PiArICAgICAgICB9Cj4gPiA+ICsgICAgfSwKPiA+ID4gKyAgICByZXR1cm5zOiB7Cj4gPiA+ICsg ICAgICAgIHNjaGVtYTogVVBJRF9TQ0hFTUEsCj4gPiA+ICsgICAgfSwKPiA+ID4gKyAgICBhY2Nl c3M6IHsKPiA+ID4gKyAgICAgICAgcGVybWlzc2lvbjogJlBlcm1pc3Npb246OlByaXZpbGVnZSgm WyJkYXRhc3RvcmUiLCAie3N0b3JlfSJdLCBQUklWX0RBVEFTVE9SRV9BVURJVCwgZmFsc2UpLAo+ ID4gPiArICAgIH0sCj4gPiA+ICspXQo+ID4gPiArLy8vIE1vdW50IHJlbW92YWJsZSBkYXRhc3Rv cmUuCj4gPiA+ICtwdWIgZm4gbW91bnQoc3RvcmU6IFN0cmluZywgcnBjZW52OiAmbXV0IGR5biBS cGNFbnZpcm9ubWVudCkgLT4gUmVzdWx0PFZhbHVlLCBFcnJvcj4gewo+ID4gPiArICAgIGxldCAo c2VjdGlvbl9jb25maWcsIF9kaWdlc3QpID0gcGJzX2NvbmZpZzo6ZGF0YXN0b3JlOjpjb25maWco KT87Cj4gPiA+ICsgICAgbGV0IGRhdGFzdG9yZTogRGF0YVN0b3JlQ29uZmlnID0gc2VjdGlvbl9j b25maWcubG9va3VwKCJkYXRhc3RvcmUiLCAmc3RvcmUpPzsKPiA+ID4gKwo+ID4gPiArICAgIGlm IGRhdGFzdG9yZS5iYWNraW5nX2RldmljZS5pc19ub25lKCkgewo+ID4gPiArICAgICAgICBiYWls ISgiZGF0YXN0b3JlICd7c3RvcmV9JyBpcyBub3QgcmVtb3ZhYmxlIik7Cj4gPiA+ICsgICAgfQo+ ID4gPiArCj4gPiA+ICsgICAgbGV0IGF1dGhfaWQ6IEF1dGhpZCA9IHJwY2Vudi5nZXRfYXV0aF9p ZCgpLnVud3JhcCgpLnBhcnNlKCk/Owo+ID4gPiArICAgIGxldCB0b19zdGRvdXQgPSBycGNlbnYu ZW52X3R5cGUoKSA9PSBScGNFbnZpcm9ubWVudFR5cGU6OkNMSTsKPiA+ID4gKwo+ID4gPiArICAg IGxldCB1cGlkID0gV29ya2VyVGFzazo6bmV3X3RocmVhZCgKPiA+ID4gKyAgICAgICAgIm1vdW50 LWRldmljZSIsCj4gPiA+ICsgICAgICAgIFNvbWUoc3RvcmUpLAo+ID4gPiArICAgICAgICBhdXRo X2lkLnRvX3N0cmluZygpLAo+ID4gPiArICAgICAgICB0b19zdGRvdXQsCj4gPiA+ICsgICAgICAg IG1vdmUgfF93b3JrZXJ8IGRvX21vdW50X2RldmljZShkYXRhc3RvcmUpLAo+ID4gPiArICAgICk/ Owo+ID4gPiArCj4gPiA+ICsgICAgT2soanNvbiEodXBpZCkpCj4gPiA+ICt9Cj4gPiA+ICsKPiA+ ID4gK2ZuIGRvX3VubW91bnRfZGV2aWNlKAo+ID4gPiArICAgIGRhdGFzdG9yZTogRGF0YVN0b3Jl Q29uZmlnLAo+ID4gPiArICAgIHdvcmtlcjogT3B0aW9uPCZkeW4gV29ya2VyVGFza0NvbnRleHQ+ LAo+ID4gPiArKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4gPiA+ICsgICAgbGV0IG11dCBhY3Rp dmVfb3BlcmF0aW9ucyA9IHRhc2tfdHJhY2tpbmc6OmdldF9hY3RpdmVfb3BlcmF0aW9ucygmZGF0 YXN0b3JlLm5hbWUpPzsKPiA+ID4gKyAgICBsZXQgbXV0IG9sZF9zdGF0dXMgPSBTdHJpbmc6Om5l dygpOwo+ID4gPiArICAgIHdoaWxlIGFjdGl2ZV9vcGVyYXRpb25zLnJlYWQgKyBhY3RpdmVfb3Bl cmF0aW9ucy53cml0ZSA+IDAgewo+ID4gPiArICAgICAgICBpZiBsZXQgU29tZSh3b3JrZXIpID0g d29ya2VyIHsKPiA+ID4gKyAgICAgICAgICAgIGlmIHdvcmtlci5hYm9ydF9yZXF1ZXN0ZWQoKSB7 Cj4gPiA+ICsgICAgICAgICAgICAgICAgYmFpbCEoImFib3J0ZWQsIGR1ZSB0byB1c2VyIHJlcXVl c3QiKTsKPiA+ID4gKyAgICAgICAgICAgIH0KPiA+ID4gKyAgICAgICAgICAgIGxldCBzdGF0dXMg PSBmb3JtYXQhKAo+ID4gPiArICAgICAgICAgICAgICAgICJjYW5ub3QgdW5tb3VudCB5ZXQsIHN0 aWxsIHt9IHJlYWQgYW5kIHt9IHdyaXRlIG9wZXJhdGlvbnMgYWN0aXZlIiwKPiA+ID4gKyAgICAg ICAgICAgICAgICBhY3RpdmVfb3BlcmF0aW9ucy5yZWFkLCBhY3RpdmVfb3BlcmF0aW9ucy53cml0 ZQo+ID4gPiArICAgICAgICAgICAgKTsKPiA+ID4gKyAgICAgICAgICAgIGlmIHN0YXR1cyAhPSBv bGRfc3RhdHVzIHsKPiA+ID4gKyAgICAgICAgICAgICAgICBpbmZvISgie3N0YXR1c30iKTsKPiA+ ID4gKyAgICAgICAgICAgICAgICBvbGRfc3RhdHVzID0gc3RhdHVzOwo+ID4gPiArICAgICAgICAg ICAgfQo+ID4gPiArICAgICAgICB9Cj4gPiA+ICsgICAgICAgIHN0ZDo6dGhyZWFkOjpzbGVlcChz dGQ6OnRpbWU6OkR1cmF0aW9uOjpmcm9tX21pbGxpcygyNTApKTsKPiA+Cj4gPiBJIHRoaW5rIG9u Y2UgcGVyIHNlY29uZCBpcyBwcm9iYWJseSBlbm91Z2g/IG9uIGEgYnVzeS9iaWcgc2VydmVyIHRo ZXJlCj4gPiBtaWdodCBiZSBhIGxvdCBvZiBvcGVyYXRpb25zIHRoYXQgd2UgYXJlIHdhaXRpbmcg Zm9yIChhbmQgdGh1cyBhIGxvdCBvZgo+ID4gZGVjcmVtZW50cyBvZiB0aGUgY291bnRlcnMpLi4K PiA+Cj4gCj4gbWFrZXMgc2Vuc2UKPiAKPiA+ID4gKyAgICAgICAgYWN0aXZlX29wZXJhdGlvbnMg PSB0YXNrX3RyYWNraW5nOjpnZXRfYWN0aXZlX29wZXJhdGlvbnMoJmRhdGFzdG9yZS5uYW1lKT87 Cj4gPiA+ICsgICAgfQo+ID4gPiArICAgIGlmIGxldCBTb21lKG1vdW50X3BvaW50KSA9IGRhdGFz dG9yZS5nZXRfbW91bnRfcG9pbnQoKSB7Cj4gPgo+ID4gc2hvdWxkbid0IHRoaXMgaWYgYmUgcmln aHQgYXQgdGhlIHN0YXJ0Pwo+ID4KPiAKPiB0aGlzIGZuIGlzIG9ubHkgY2FsbGVkIGluIHRoZSB1 bm1vdW50IGVuZHBvaW50LCB3aGljaCBkb2VzIHRoaXMgY2hlY2suCj4gQnV0IGNoZWNraW5nIGFn YWluIHdvdWxkbid0IGh1cnQsIEkgZ3Vlc3MgCj4gCj4gPiA+ICsgICAgICAgIGNyYXRlOjp0b29s czo6ZGlza3M6OnVubW91bnRfYnlfbW91bnRwb2ludCgmbW91bnRfcG9pbnQpPzsKPiA+ID4gKwo+ ID4gPiArICAgICAgICBsZXQgX2xvY2sgPSBwYnNfY29uZmlnOjpkYXRhc3RvcmU6OmxvY2tfY29u ZmlnKCk/Owo+ID4gPiArICAgICAgICBsZXQgKG11dCBzZWN0aW9uX2NvbmZpZywgX2RpZ2VzdCkg PSBwYnNfY29uZmlnOjpkYXRhc3RvcmU6OmNvbmZpZygpPzsKPiA+ID4gKyAgICAgICAgbGV0IG11 dCBzdG9yZV9jb25maWc6IERhdGFTdG9yZUNvbmZpZyA9Cj4gPiA+ICsgICAgICAgICAgICBzZWN0 aW9uX2NvbmZpZy5sb29rdXAoImRhdGFzdG9yZSIsICZkYXRhc3RvcmUubmFtZSk/Owo+ID4KPiA+ IHNob3VsZCB3ZSByZS1jaGVjayB0aGUgY3VycmVudCBtYWludGVuYW5jZV9tb2RlIGhlcmUgdG8g YXZvaWQgcmFjZXM/Cj4gPgo+IAo+IEkgdGhpbmsgdGhlIG9ubHkgdGhpbmcgd2UgY291bGQgcmFj ZSBhZ2FpbnN0IGFyZSBvdGhlciB1bm1vdW50IHRhc2tzLAo+IGFuZCBib3RoIHdvdWxkIHNldCBp dCB0byBgTm9uZWAKCm9yIGFuIGFkbWluIHNldHRpbmcgaXQgdG8gc29tZXRoaW5nIGVsc2UgbWFu dWFsbHkgYmVjYXVzZSB0aGV5IGdhdmUgdXAgb24KdW5tb3VudGluZyBhbmQgd2UgZ2l2ZSB0aGVt IG5vIHdheSB0byBjYW5jZWwgdGhhdCA7KQoKPiAKPiA+ID4gKyAgICAgICAgc3RvcmVfY29uZmln Lm1haW50ZW5hbmNlX21vZGUgPSBOb25lOwo+ID4KPiA+IHNob3VsZCB1c2Ugc2V0X21haW50ZW5h bmNlX21vZGUKPiA+Cj4gCj4gd2Ugc2V0IHRoZSBtYWludGVuYW5jZSB0byBgVW5tb3VudGAgYmVm b3JlIHN0YXJ0aW5nIHRoZSB1bm1vdW50aW5nLCB3ZQo+IGNhbid0IGxlYXZlIHRoYXQgZXhjZXB0 IGJ5IHNldHRpbmcgaXQgbGlrZSB0aGlzLiBJZiBzb21ldGhpbmcgc2hvdWxkIGdvCj4gd3Jvbmcg d2Ugd2FudCB0aGlzIGxvY2tlZCBpbiwgc28gdG8gc2F5LiBTbyBtYW51YWxseSBleGFtaW5pZyB0 aGUKPiBzaXR1YXRpb24sIGFuZCBlZGl0aW5nIHRoZSBjb25maWcgZmlsZSBpcyBuZWVkZWQuCgp3 b3VsZG4ndCBpdCBtYWtlIHNlbnNlIHRvIGFsbG93IGNhbmNlbGxpbmcgYW4gdW5tb3VudCBieSBz ZXR0aW5nIHRoZQptYWludGVuYW5jZSBtb2RlIHRvIHNvbWV0aGluZyBlbHNlIGFnYWluPwoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBt YWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJv eG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=