From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 0DD271FF172 for <inbox@lore.proxmox.com>; Tue, 1 Apr 2025 20:22:16 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 0A4453046; Tue, 1 Apr 2025 20:22:04 +0200 (CEST) Message-ID: <866f1cdd-780c-4012-b4fa-709ae1165891@proxmox.com> Date: Tue, 1 Apr 2025 20:21:30 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Beta To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>, Andreas Rogge <andreas.rogge@bareos.com> References: <20241114150754.374376-1-f.ebner@proxmox.com> <20241114150754.374376-10-f.ebner@proxmox.com> <66969dc5-7587-46fc-8b36-8ecf0d5d744a@bareos.com> Content-Language: en-US, de-AT From: Thomas Lamprecht <t.lamprecht@proxmox.com> Autocrypt: addr=t.lamprecht@proxmox.com; keydata= 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 DrEx In-Reply-To: <66969dc5-7587-46fc-8b36-8ecf0d5d744a@bareos.com> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.039 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] Subject: Re: [pve-devel] [PATCH storage v4 09/27] plugin: introduce new_backup_provider() method X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Cc: Philipp Storz <philipp.storz@bareos.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> SGkhCgpBbSAwMS4wNC4yNSB1bSAxODowMiBzY2hyaWViIEFuZHJlYXMgUm9nZ2U6Cj4gc29ycnkg Zm9yIGRpZ2dpbmcgdXAgdGhhdCBhbmNpZW50IG1haWwsIGJ1dCBJIGZlZWwgdGhhdCdzIHRoZSBi ZXN0IAo+IHN0YXJ0aW5nIHBvaW50IGZvciBtZS4KCkZvciBtb3JlIGN1cnJlbnQgZGlzY3Vzc2lv biBpdCBtaWdodCBiZSBiZXN0IHRvIGNoZWNrIG91dCB0aGUgcmVjZW50bHkKcG9zdGVkIHY3IG9m IHRoaXMgc2VyaWVzLCBpZiBub3RoaW5nIGJpZ2dlciBjb21lcyB1cCBpdCBzaG91bGQgYmUgdmVy eQpjbG9zZSB0byB3aGF0IGdldHMgYXBwbGllZCBmb3IgYW4gaW5pdGlhbCB2ZXJzaW9uIOKAkyBp LmUuLCBvbmUgdGhhdCB3aWxsCmJlIHN1cHBvcnRlZCBmb3IgYSBsb25nIHRpbWUsIHdoaWNoIGRv ZXMgbm90IG5lY2Vzc2FyaWx5IG1lYW4gdGhhdCBpdApjYW5ub3QgZXZvbHZlLgoKaHR0cHM6Ly9s b3JlLnByb3htb3guY29tL3B2ZS1kZXZlbC8yMDI1MDQwMTE3MzQzNS4yMjE4OTItMS1mLmVibmVy QHByb3htb3guY29tL1QvI3QKCj4gQmFyZW9zIGludmVzdGlnYXRlcyBob3cgdG8gYmV0dGVyIGlu dGVncmF0ZSB3aXRoIFByb3htb3ggVkUsIHNvIHVzZXJzIAo+IGNhbiB0YWtlIGJhY2t1cHMgb2Yg dmlydHVhbCBtYWNoaW5lcyBhbmQgcmVzdG9yZSB0aGVtIHVzaW5nIEJhcmVvcy4KCkdyZWF0IHRv IGhlYXIhCgo+IEFtIDE0LjExLjI0IHVtIDE2OjA3IHNjaHJpZWIgRmlvbmEgRWJuZXI6Cj4+IFRo ZSBuZXdfYmFja3VwX3Byb3ZpZGVyKCkgbWV0aG9kIGNhbiBiZSB1c2VkIGJ5IHN0b3JhZ2UgcGx1 Z2lucyBmb3IKPj4gZXh0ZXJuYWwgYmFja3VwIHByb3ZpZGVycy4gSWYgdGhlIG1ldGhvZCByZXR1 cm5zIGEgcHJvdmlkZXIsIFByb3htb3gKPj4gVkUgd2lsbCB1c2UgY2FsbGJhY2tzIHRvIHRoYXQg cHJvdmlkZXIgZm9yIGJhY2t1cHMgYW5kIHJlc3RvcmUgaW5zdGVhZAo+PiBvZiB1c2luZyBpdHMg dXN1YWwgYmFja3VwL3Jlc3RvcmUgbWVjaGFuaXNtcy4KPiBTbyB3ZSBhcyBhIGJhY2t1cCBwcm92 aWRlciBuZWVkIHRvIHByb3ZpZGUgcGx1Z2luIGNvZGUgdGhhdCB3aWxsIHJ1biBhcyAKPiBwYXJ0 IG9mIFBWRS4gSWYgSSB1bmRlcnN0YW5kIGNvcnJlY3RseSB0aGlzIG11c3QgYmUgaW1wbGVtZW50 ZWQgYXMgYSAKPiBQZXJsIG1vZHVsZS4gQWxzbywgUFZFIHdhbnRzIHRvIHRyaWdnZXIgdGhlIGJh Y2t1cCBpdHNlbGYuCgpUaGUgaW50ZXJmYWNlIGlzIGluIFBlcmwsIHRoZSBhY3R1YWwgYmFja3Vw IGNvZGUgY2FuIGJlIHdoYXRldmVyIHJ1bnMKb24gdGhlIFByb3htb3ggVkUgYmFzZSBzeXN0ZW0s IGFzIHRoYXQgaXMgYmFzZWQgb24gRGViaWFuIHRoaXMgbWVhbnMKdGhhdCB0aGVyZSBpcyBhIGxv dCBvZiBmbGV4aWJpbGl0eS4gQSBjb2xsZWFndWUgd3JvdGUgYSBwbHVnaW4gaW4gcnVzdAphcyBw cm9vZiBvZiBjb25jZXB0LCB3ZSBwcm9iYWJseSByZWxlYXNlIHRoYXQgdG9vIGFzIGV4YW1wbGUu CgpXZSBjYW4gYWxzbyBkZWNvdXBsZSB0aGlzIG1vcmUgb25jZSB0aGUgZHVzdCBzZXR0bGVzLCB0 aGVyZSBhcmUgc29tZQppZGVhcyBmbG9hdGluZyBhcm91bmQgYWxyZWFkeSwgYnV0IHRoZXkgY2Fu IGJlIGltcGxlbWVudGVkIGxhdGVyIHNvCmVuc3VyaW5nIHRoYXQgdGhlIGFjdHVhbCBiYXNlIGZ1 bmN0aW9uYWxpdHkgd29ya3Mgb3V0IGlzIG1vcmUgaW1wb3J0YW50LAphcyB3aGF0ZXZlciB0aGUg aW50ZXJmYWNlIGlzLCB0aGV5IHdpbGwgd29yayBzaW1pbGFyIGJ1dCBqdXN0IHVzaW5nIGEKZGlm ZmVyZW50IHRyYW5zcG9ydCAoZS5nLiBzYXkgdmFybGluayBvdmVyIGFuIEZEIGluc3RlYWQgb2Yg cGVybCB3cmFwcGVyCm1vZHVsZSkuCgo+IFRoaXMgaW50cm9kdWNlcyBhIGZldyBodXJkbGVzIGZv ciB1czoKPiBGaXJzdCBvZiBhbGwsIHdlIGRvbid0IHVzdWFsbHkgcHJvZ3JhbSBpbiBQZXJsLCBz byB0aGF0J3MgZ29pbmcgdG8gYmUgYSAKPiBwcm9ibGVtIGZvciB1cy4gV2UgY2FuIHByb2JhYmx5 IGltcGxlbWVudCBzb21ldGhpbmcsIGJ1dCB3ZSBwcm9iYWJseSAKPiBkb24ndCBoYXZlIGFueSBk ZXZlbG9wZXIgdGhhdCBjYW4gd3JpdGUgUGVybCBjb2RlIHRoYXQgbWVldHMgYW55IGtpbmQgb2Yg Cj4gcHJvZmVzc2lvbmFsIHN0YW5kYXJkLgoKVGhlIFBlcmwgY29kZSByZXF1aXJlZCBmb3IgYSBw cm9kdWN0aW9uIHF1YWxpdHkgaW50ZXJmYWNlIGlzIG5vdCB0aGF0Cm11Y2gsIGFuZCBjZXJ0YWlu bHkgZG9lcyBub3QgcmVxdWlyZSBpbi1kZXB0aCBwZXJsIGV4cGVyaWVuY2UuIFBlcmwKaXMgYSBt YXR1cmUgbGFuZ3VhZ2UsIGZvciBiZXR0ZXIgb3Igd29yc2UsIHRoYXQgYWxsb3dlZCBhbmQgc3Rp bGwKYWxsb3dzIGFsbCBraW5kIG9mIHVzZXJzIHRvIGNyZWF0ZSB0b29scyB0aGF0IGNhbiB3b3Jr IGZpbmUgaWYgb25lIGtlZXBzCnRoZW0gc2ltcGxlLCBhbmQgYXMgdGhlIGNvcmUgZGVzaWduIGlz IHJhdGhlciBmaXhlZCBoZXJlLCBpdCBzaG91bGQgbm90CmJlIHRoYXQgbXVjaCB3b3JrLCBhbmQg d2UgY2VydGFpbmx5IGNhbiBoZWxwIG9uIHF1ZXN0aW9ucyBvciBwcm9ibGVtczsKanVzdCByZWFj aCBvdXQgb24gdGhlIGRldmVsb3BlciBsaXN0IGFuZCBwb2ludCB0byB5b3VyIHB1YmxpYyBwbHVn aW4KY29kZS4KCj4gVG8gZG8gaXRzIGpvYlsxXSwgQmFyZW9zIG11c3QgYmUgYWJsZSB0byBzY2hl ZHVsZSBiYWNrdXAgYW5kIHJlc3RvcmUgCj4gam9icyBhbGwgYnkgaXRzZWxmLiBJZiBJIHVuZGVy c3Rvb2QgY29ycmVjdGx5LCBiYWNrdXBzIHV0aWxpemluZyBvbmUgb2YgCj4gdGhlIHBsdWdpbnMg Y2FuIGJlIHJ1biBieSBjYWxsaW5nIGB2emR1bXBgLCBzbyB0aGF0IHRoaXMgaXMgYXQgbGVhc3Qg Cj4gcG9zc2libGUuCgpFeGFjdGx5LCB3ZSB3YW50IGEgbmF0aXZlIFBWRSBpbXBsZW1lbnRhdGlv biBzbyB0aGF0IHN1Y2ggcGx1Zy1pbnMgYXJlCmFjdHVhbGx5IG5pY2VseSBpbnRlZ3JhdGVkIGFu ZCBmZWVsIGFsbW9zdCBuYXRpdmUgKGluIHRoZSBsb25nIHJ1biwKbWlzc2luZyBhIGZldyBiaXRz IGZvciB0aGF0KSwgc28gdXNlcnMgZ2V0IGEgZmlyc3QtY2xhc3MgZXhwZXJpZW5jZQpvbiAiYm90 aCBzaWRlcyIgb2YgdGhlIGJhY2t1cCBhbmQgY2FuIGFsc28gc2VlIHdoYXQncyBnb2luZyBvbiBh dCB0aGUKc291cmNlIHNpZGUgb2YgdGhpbmdzLCBpZiB0aGV5IHdhbnQuCgo+IEhvd2V2ZXIsIHdo YXQgd2UndmUgc2VlbiBvdGhlciB2ZW5kb3JzIGRvIGlzIHRoYXQgdGhleSBwcm92aWRlIGFuIEFQ SSAKPiB3aGVyZSB5b3UganVzdCB0ZWxsIHRoZSBzeXN0ZW0gd2hhdCBWTSB5b3Ugd2FudCB0byBi YWNrIHVwIGFuZCB0aGVuIHlvdSAKPiBhcmUgcHJvdmlkZWQgd2l0aCBhY2Nlc3MgdG8gbWV0YWRh dGEgKGkuZS4gVk0gY29uZmlndXJhdGlvbiwgZGlzayAKPiBsYXlvdXRzLCBudnJhbSBjb250ZW50 LCBldGMpIGFuZCBkaXNrIGNvbnRlbnRzLgoKWW91IGNhbiBzZW5kIGFuIEFQSSByZXF1ZXN0IHRo YXQgYmFzaWNhbGx5IHJlc3VsdHMgaW4gZXhhY3RseSB0aGF0LCBqdXN0CnRoYXQgdGhlIHBsdWdp biBpcyBwcm92aWRpbmcgeW91IHRoZSBpbmZvIHRoZW4uIEEgYmlnIGFkdmFudGFnZSBpcyB0aGF0 CnRoZSB1c2VyIGNhbiBhbHNvIHRyaWdnZXIgYmFja3VwcyBmcm9tIHRoZSBQVkUgc2lkZSBhbmQg dGh1cyBnZXQgYSBtdWNoCmJldHRlciBpbnRlZ3JhdGlvbi4KCj4gRm9yIHJlc3RvcmUgaXQgaXMg bW9zdGx5IHRoZSBzYW1lOiB5b3UgcHJvdmlkZSB0aGUgbWV0YWRhdGEsIGdldCBhIHNldCAKPiBv ZiByYXcgZGlza3MgdGhhdCB5b3UgY2FuIHdyaXRlIHlvdXIgZGF0YSB0byBhbmQgZmluYWxseSB5 b3UganVzdCB0ZWxsIAo+IHRoZSBzeXN0ZW0gdGhhdCB0aGUgVk0gcmVzdG9yZSBpcyBkb25lLgoK SXQncyBkaWZmZXJlbnQgYnV0IGVuc3VyZXMgdGhhdCB3ZSBjYW4gcHJvdmlkZSBiYWNrdXAgcHJv dmlkZXJzIGFuZAp0aGVpciB1c2VyIGEgcXVhc2kgbmF0aXZlIGludGVncmF0aW9uIGludG8gUFZF LCBpZGVhbGx5IGFzIGNsb3NlIGFzCnBvc3NpYmxlIHRvIGhvdyBQQlMgaXMgaW50ZWdyYXRlZCwg dGhpcyBjYW4gSU1PIGJlIGFsc28gYmVuZWZpdCBmb3IKcHJvdmlkZXJzLCBhbmQgbm90aGluZyB0 aGF0IGlzIHBvc3NpYmxlIHdpdGggdGhlIG1ldGhvZHMgeW91IGRlc2NyaWJlCnNob3VsZCBiZWNv bWUgaW1wb3NzaWJsZSB3aXRoIHRoZSBtZXRob2RzIHdlIHByb3ZpZGUuCgoKPj4gMi4gUmVzdG9y ZSBBUEkKPj4KPj4gMi4xLiBSZXN0b3JlIE1lY2hhbmlzbXMKPj4KPj4gVk0gbWVjaGFuaXNtICdx ZW11LWltZyc6Cj4+Cj4+IFRoZSBiYWNrdXAgcHJvdmlkZXIgZ2l2ZXMgYSBwYXRoIHRvIHRoZSBk aXNrIGltYWdlIHRoYXQgd2lsbCBiZQo+PiByZXN0b3JlZC4gVGhlIHBhdGggbmVlZHMgdG8gYmUg c29tZXRoaW5nICdxZW11LWltZycgY2FuIGRlYWwgd2l0aCwKPj4gZS5nLiBjYW4gYWxzbyBiZSBh biBOQkQgVVJJIG9yIHNpbWlsYXIuCj4gVW0uLi4gdGhhdCBoYXMgbm90aGluZyB0byBkbyB3aXRo IHdoYXQgeW91IHByb3ZpZGVkIHdoZW4gd2UgdGFrZSB0aGUgCj4gYmFja3VwLiBJcyB0aGVyZSBh IHJlYXNvbiBQVkUgY2Fubm90IHByb3ZpZGUgYSB3cml0ZWFibGUgYmxvY2sgZGV2aWNlIHRvIAo+ IHJlc3RvcmUgdG8/Cj4gRm9yIEJhcmVvcyB0aGlzIHJlcXVpcmVtZW50IHdvdWxkIGltcGx5IHRo YXQgd2UgbmVlZCBhbiB1bnBsZWFzYW50bHkgCj4gbGFyZ2Ugc3RhZ2luZyBhcmVhIG9uIHRoZSBQ VkUgbm9kZSB0byBmYWNpbGl0YXRlIGEgcmVzdG9yZTogQXMgd2UgY2FuIAo+IG9ubHkgc3RyZWFt IHRoZSBkYXRhIHdlJ2QgaGF2ZSB0byBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlzayBpbWFnZSB0aGF0 IFBWRSAKPiBjYW4gdGhlbiByZWFkLiBUaGlzIHNvdW5kcyBwcmV0dHkgaW5lZmZpY2llbnQgLSBl c3BlY2lhbGx5IHdoZW4gCj4gY29tcGFyaW5nIHdpdGggcW1yZXN0b3JlJ3MgYWJpbGl0eSB0byBq dXN0IHJlYWQgcmVhZCBmcm9tIHN0ZGluLgoKQmFyZW9zIGNvdWxkIHByb3ZpZGUgYSBOQkQgdGhh dCBpcyBzdHJlYW1lZCBkaXJlY3RseSBmcm9tIHRoZSBiYWNrdXAKcmVwb3NpdG9yeSwgdGhpcyBz aG91bGQgYmUgcXVpdGUgZWZmaWNpZW50IHcuci50LiBzcGFjZSB1c2FnZS4KQnV0IGFzIHRoaXMg d2FzIHY0IGFuZCBhIGZldyB0aGluZ3MgY2hhbmdlZCwgYW5kIEknbSBsZXNzIGludm9sdmVkIGFz CnRoZSBhY3R1YWwgYXV0aG9yIGl0IG1pZ2h0IG1ha2UgbW9yZSBzZW5zZSBmb3IgaGVyIHRvIGFu c3dlciB0aGlzLgoKIAo+IFsxXSBBcyBhIGJhY2t1cCBzb2Z0d2FyZSBpdCBpcyBCYXJlb3MnIGpv YiB0byBtYWtlIHN1cmUgdGhlIHByb2R1Y3Rpb24gCj4gc3lzdGVtIGlzIGFzIHN0cmljdGx5IHNl cGFyYXRlZCBmcm9tIHRoZSBiYWNrdXAgZGF0YSBhcyBwb3NzaWJsZS4gV2hpbGUgCj4gd2UgdW5k ZXJzdGFuZCBob3cgbmljZSB0aWdodCBpbnRlZ3JhdGlvbiB3aXRoIFBWRSB3b3VsZCBiZSwgd2Ug c2VlIHRoaXMgCj4gcHJpbWFyaWx5IGFzIHVubmVjZXNzYXJ5IGF0dGFjayBzdXJmYWNlLgoKTm90 aGluZyBpbiB0aGUgcHJvcG9zZWQgbWV0aG9kcyBzaG91bGQgdGVjaG5pY2FsbHkgaGluZGVyIHN1 Y2ggYQpzZXBhcmF0aW9uLCBpdCdzIGp1c3QgdGhlIGludGVyZmFjZSwgbm8gcHJvdGVjdGlvbiBt ZWNoYW5pc20gb24gdGhlIGJhY2t1cApzeXN0ZW1zIHNpZGUgbmVlZCB0byBiZSBhZGFwdGVkIG9y IGNoYW5nZWQsIGFuZCBvbmUgY291bGQgY29uc3RydWN0IHRoZQpwbHVnaW4gc3VjaCB0aGF0IGl0 IGNhbiBvbmx5IHdvcmsgd2l0aCBqb2JzIHRoYXQgZ290IHN0YXJ0ZWQgZnJvbSB0aGUKYmFja3Vw IHN5c3RlbSwgYWxiZWl0IHRoYXQgd291bGQgYmUgSU1PIG5vdCByZWFsbHkgcmVhc29uYWJsZSBv ciBhdApsZWFzdCBub3QgcmVhbGx5IGEgbmljZSBleHBlcmllbmNlIGVzcGVjaWFsbHkgYXMgdGhl IGF0dGFjayBzdXJmYWNlcwpzdGF5cyByYXRoZXIgdGhlIHNhbWUgZWl0aGVyIHdheSwgYXMgZGF0 YSBuZWVkcyBlZmZlY3RpdmVseSB0byBiZSBzZW50CmluIGJvdGggZGlyZWN0aW9ucwoKPiBGb3Ig YSBuaWNlbHkgaW50ZWdyYXRlZCBzb2x1dGlvbiB0aGF0IGNhbiBicmluZyBiYWNrIGxhc3Qgd2Vl aydzIFZNIAo+IHNuYXBzaG90IHdpdGggYSBmZXcgY2xpY2tzLCB0aGVyZSdzIFByb3htb3ggQmFj a3VwIFNlcnZlciwgd2hpY2ggd29ya3MgCj4gZ3JlYXQuCgpEbyB5b3Ugbm90IHdhbnQgYSBuaWNl bHkgaW50ZWdyYXRlZCBzb2x1dGlvbj8gSSB0aGluayB1c2VycyB3YW50IGJvdGgsCmEgbmljZSBp bnRlZ3JhdGlvbiBpbnRvIFBWRSBhbmQgYWRkaXRpb25hbCBmZWF0dXJlcyBhbmQgY2FwYWJpbGl0 aWVzCm9mIGJhY2t1cCBzb2x1dGlvbiBsaWtlIHlvdXJzLgoKYmVzdCByZWdhcmRzLAogVGhvbWFz CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHZlLWRl dmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0 cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==