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 [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id 708EC1FF16B
	for <inbox@lore.proxmox.com>; Thu,  3 Apr 2025 09:12:59 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 901AB38A76;
	Thu,  3 Apr 2025 09:12:46 +0200 (CEST)
Date: Thu, 03 Apr 2025 09:12:37 +0200
From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= <f.gruenbichler@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
References: <20250326142059.261938-1-m.carrara@proxmox.com>
 <20250326142059.261938-3-m.carrara@proxmox.com>
 <1743421835.hd6pyusvlb.astroid@yuna.none>
 <D8WAOUZPCMO5.37G29XB8M94OE@proxmox.com>
In-Reply-To: <D8WAOUZPCMO5.37G29XB8M94OE@proxmox.com>
MIME-Version: 1.0
User-Agent: astroid/0.16.0 (https://github.com/astroidmail/astroid)
Message-Id: <1743662987.9zy3v4thrh.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -1.456 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_BLACK 3 Contains an URL listed in the URIBL blacklist [plugin.pm]
Subject: Re: [pve-devel] [PATCH v1 pve-storage 2/8] pluginbase: add
 high-level plugin API description
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>
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>

T24gQXByaWwgMiwgMjAyNSA2OjMxIHBtLCBNYXggQ2FycmFyYSB3cm90ZToKPiBPbiBNb24gTWFy
IDMxLCAyMDI1IGF0IDU6MTMgUE0gQ0VTVCwgRmFiaWFuIEdyw7xuYmljaGxlciB3cm90ZToKPj4g
T24gTWFyY2ggMjYsIDIwMjUgMzoyMCBwbSwgTWF4IENhcnJhcmEgd3JvdGU6Cj4+ID4gQWRkIGEg
c2hvcnQgcGFyYWdyYXBoIGluIERFU0NSSVBUSU9OIHNlcnZpbmcgYXMgYW4gaW50cm9kdWN0aW9u
IGFzCj4+ID4gd2VsbCBhcyB0aGUgR0VORVJBTCBQQVJBTUVURVJTIGFuZCBDQUNISU5HIEVYUEVO
U0lWRSBPUEVSQVRJT05TCj4+ID4gc2VjdGlvbnMuCj4+ID4gCj4+ID4gVGhlc2Ugc2VjdGlvbnMg
YXJlIGFkZGVkIGluIG9yZGVyIHRvIGF2b2lkIHJlcGVhdGVkbHkgZGVzY3JpYmluZyB0aGUKPj4g
PiBzYW1lIHBhcmFtZXRlcnMgYXMgd2VsbCBhcyB0byBlbGFib3JhdGUgb24gLyBjbGFyaWZ5IGEg
Y291cGxlIHRlcm1zLAo+PiA+IGUuZy4gd2hhdCB0aGUgJGNhY2hlIHBhcmFtZXRlciBkb2VzIG9y
IHdoYXQgYSB2b2x1bWUgaW4gb3VyIGNhc2UgaXMuCj4+ID4gCj4+ID4gU2lnbmVkLW9mZi1ieTog
TWF4IENhcnJhcmEgPG0uY2FycmFyYUBwcm94bW94LmNvbT4KPj4gPiAtLS0KPj4gPiAgc3JjL1BW
RS9TdG9yYWdlL1BsdWdpbkJhc2UucG0gfCA3NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKwo+PiA+ICAxIGZpbGUgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKQo+PiA+IAo+PiA+
IGRpZmYgLS1naXQgYS9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luQmFzZS5wbSBiL3NyYy9QVkUvU3Rv
cmFnZS9QbHVnaW5CYXNlLnBtCj4+ID4gaW5kZXggZTU2YWE3Mi4uMTY5NzdmMyAxMDA2NDQKPj4g
PiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luQmFzZS5wbQo+PiA+ICsrKyBiL3NyYy9QVkUv
U3RvcmFnZS9QbHVnaW5CYXNlLnBtCj4+ID4gQEAgLTQsNiArNCw4MyBAQCBDPFBWRTo6U3RvcmFn
ZTo6UGx1Z2luQmFzZT4gLSBTdG9yYWdlIFBsdWdpbiBBUEkgSW50ZXJmYWNlCj4+ID4gIAo+PiA+
ICA9aGVhZDEgREVTQ1JJUFRJT04KPj4gPiAgCj4+ID4gK1RoaXMgbW9kdWxlIGRvY3VtZW50cyB0
aGUgcHVibGljIFN0b3JhZ2UgUGx1Z2luIEFQSSBvZiBQVkUgYW5kIHNlcnZlcwo+PiA+ICthcyBh
IGJhc2UgZm9yIEM8TDxQVkU6OlN0b3JhZ2U6OlBsdWdpbj4+LiBQbHVnaW5zIG11c3QgQjxhbHdh
eXM+IGluaGVyaXQgZnJvbQo+PiA+ICtDPEw8UFZFOjpTdG9yYWdlOjpQbHVnaW4+PiwgYXMgdGhp
cyBtb2R1bGUgaXMgZm9yIGRvY3VtZW50YXRpb24gcHVycG9zZXMKPj4gPiArb25seS4KPj4KPj4g
ZG9lcyB0aGlzIG1ha2Ugc2Vuc2U/IGlmIHdlIG5vdyBwcm92aWRlIGEgY2xlYW4gYmFzZSBmb3Ig
dGhlIHN0cnVjdHVyZQo+PiBvZiBwbHVnaW5zLCB3aHkgc2hvdWxkbid0IHBsdWdpbnMgYmUgYWJs
ZSB0byB1c2UgdGhhdCwgYnV0IGluc3RlYWQgaGF2ZQo+PiB0byBpbmhlcml0IGZyb20gUFZFOjpT
dG9yYWdlOjpQbHVnaW4gd2hpY2ggaGFzIGEgbG90IG9mIGV4dHJhIHN0dWZmIHRoYXQKPj4gbWFr
ZXMgdGhpbmdzIG1lc3N5Pwo+Pgo+PiBncmFudGVkLCBzd2l0Y2hpbmcgb3ZlciB0byBsb2FkIGZy
b20gUGx1Z2luQmFzZSBjb3VsZCBiZSBkb25lIGFzIGEKPj4gZm9sbG93IHVwIG9yIHdpdGggOS4w
IChvciBub3QgYXQgYWxsLCBpZiB0aGVyZSBpcyBhIHJhdGlvbmFsZSkuLgo+Pgo+PiBhZnRlciB0
aGlzIHNlcmllcyB3ZSBoYXZlOgo+Pgo+PiBTZWN0aW9uQ29uZmlnCj4+IC0+IFBsdWdpbkJhc2Ug
KG5vdCBhbiBhY3R1YWwgYmFzZSBwbHVnaW4gdy5yLnQuIFNlY3Rpb25Db25maWcsIGFuZCBub3QK
Pj4gc29tZXRoaW5nIHlvdSBiYXNlIHBsdWdpbnMgb24gYXMgYSByZXN1bHQpCj4+IC0tPiBQbHVn
aW4gKGEgY29tYmluYXRpb24gb2YgYmFzZSBwbHVnaW4gYW5kIGJhc2Ugb2YgYWxsIG91cgo+PiBk
aXJlY3RvcnktYmFzZWQgcGx1Z2lucykKPj4gLS0tPiBvdGhlciBwbHVnaW5zLCBpbmNsdWRpbmcg
dGhpcmQgcGFydHkgb25lcwo+Pgo+PiB3aGljaCBzZWVtcyB1bmZvcnR1bmF0ZSwgZXZlbiBpZiB0
aGUgY29udGVudHMgb2YgUGx1Z2luQmFzZSBhcmUgaGVscGZ1bAo+PiB3aGVuIGltcGxlbWVudGlu
ZyB5b3VyIG93bi4uCj4+Cj4+IElNSE8gdGhpcyBzaG91bGQgZWl0aGVyIGJlCj4+Cj4+IFNlY3Rp
b25Db25maWcKPj4gLT4gUGx1Z2luQmFzZSAoYWN0dWFsIGJhc2UgcGx1Z2luLCB3aXRoIFNlY3Rp
b25Db25maWcgaW1wbGVtZW50YXRpb25zCj4+IG1vdmVkIG92ZXIgZnJvbSBjdXJyZW50IFBsdWdp
bi5wbSBhcyBuZWVkZWQpCj4+IC0tPiBQbHVnaW5UZW1wbGF0ZSAod2hhdCdzIGN1cnJlbnRseSBQ
bHVnaW5CYXNlIGluIHRoaXMgc2VyaWVzIC0gbmljZWx5Cj4+IGRvY3VtZW50ZWQgcGFyZW50IG9m
IHRoaXJkIHBhcnR5IHBsdWdpbnMsIG5vdCBhY3R1YWxseSByZWdpc3RlcmVkLCBqdXN0Cj4+IGNv
bnRhaW5zIHRoZSBzdG9yYWdlLmNmZyBpbnRlcmZhY2Ugd2l0aG91dCB0aGUgbG93LWxldmVsIFNl
Y3Rpb25Db25maWcKPj4gdGhpbmdzKQo+PiAtLS0+IE5ld1RoaXJkUGFydHlQbHVnaW4gKGNsZWFu
IHNsYXRlIGltcGxlbWVudGF0aW9uIGp1c3QgdXNpbmcgdGhlCj4+IG5pY2VseSBkb2N1bWVudGVk
IGludGVyZmFjZXMsIGd1YXJhbnRlZWQgdG8gbm90IHVzZSBhbnkgaGVscGVycyBmcm9tCj4+IFBs
dWdpbiBzaW5jZSBpdCdzIG5vdCBhIChncmFuZClwYXJlbnQpCj4+IC0tPiBQbHVnaW4gKGJhc2Ug
b2YgYnVpbHQtaW4gcGx1Z2lucywgcHJvYmFibHkgYmFzZSBvZiBleGlzdGluZyB0aGlyZAo+PiBw
YXJ0eSBwbHVnaW5zLCBzaG91bGQgaWRlYWxseSBoYXZlIGEgZGlmZmVyZW50IG5hbWUgaW4gdGhl
IGZ1dHVyZSEpCj4+IC0tLT4gRGlyUGx1Z2luCj4+IC0tLT4gLi4uCj4+IC0tLT4gRXhpc3RpbmdU
aGlyZFBhcnR5UGx1Z2luICh0aGlzIG1pZ2h0IHJlbHkgb24gaGVscGVycyBmcm9tIFBsdWdpbiwK
Pj4gc28gd2UgY2FuJ3QganVzdCByZW5hbWUgdGhhdCBvbmUgdW5sZXNzIHdlIHdhaXQgZm9yIDku
MCkKPj4KPj4gb3IKPj4KPj4gU2VjdGlvbkNvbmZpZwo+PiAtPiBQbHVnaW5CYXNlIChhY3R1YWwg
YmFzZSBwbHVnaW4gKyBkb2NzIG9mIFBsdWdpbiBBUEkpCj4+IC0tPiBQbHVnaW4gKGJhc2Ugb2Yg
b3VyIHBsdWdpbnMgYW5kIGV4aXN0aW5nIHRoaXJkIHBhcnR5IG9uZXMsIGRpci1yZWxhdGVkIGhl
bHBlcnMsIC4uKQo+PiAtLS0+IG90aGVyIHBsdWdpbnMsIGluY2x1ZGluZyB0aGlyZCBwYXJ0eSBv
bmVzCj4+IC0tPiBOZXdUaGlyZFBhcnR5UGx1Z2luIChjbGVhbiBzbGF0ZSBhcyBhYm92ZSkKPiAK
PiBJIGFncmVlIHdpdGggeW91ciBwb2ludCBoZXJlIC0tIGZvciBub3csIGA6OlBsdWdpbkJhc2Vg
IHNob3VsZCBJTU8gc3RpbGwKPiBvbmx5IGJlIGFib3V0IGRvY3VtZW50YXRpb24gYW5kIGVudW1l
cmF0aW5nIHdoYXQncyBwYXJ0IG9mIHRoZSBQbHVnaW4KPiBBUEksICpidXQqIGFkZGluZyBtb3Jl
IGxheWVycyBpbmJldHdlZW4gY2FuIHN0aWxsIGJlIGRvbmUgZXZlbnR1YWxseS4KPiAKPiBIb3dl
dmVyLCBJIHRoaW5rIHdlIHNob3VsZG4ndCBoYXZlIHR3byBkaWZmZXJlbnQgcGFyZW50cyBmb3Ig
aW50ZXJuYWwKPiBhbmQgZXh0ZXJuYWwgcGx1Z2lucywgYXMgaXQgd291bGQgaW50cm9kdWNlIHll
dCBhbm90aGVyIHRoaW5nIHdlJ2QgaGF2ZQo+IHRvIHRyYWNrIHdydC4gQVBJQUdFIHJlc2V0cyBl
dGMuIE1heWJlIGl0J3Mgbm90IGFjdHVhbGx5IGFuIGlzc3VlIGluCj4gdGhpcyBjYXNlLCBidXQg
Li4uCgp0aGUgQVBJIHdvdWxkIGJlIGRlZmluZWQgYnkgdGhlICJwdWJsaWMiL2V4dGVybmFsL3Rv
cC1sZXZlbCBiYXNlCm9idmlvdXNseSwgbm90IGJ5IG91ciBpbnRlcm1lZGlhdGUgc2hhcmVkIGJh
c2UgOykKCj4gVGhhdCBhY3R1YWxseSBnaXZlcyBtZSBhbiBpZGVhIHRoYXQncyBzaW1pbGFyIHRv
IHlvdXIgZmlyc3Qgc3VnZ2VzdGlvbjoKPiAKPiBBcyBvZiB0aGlzIHNlcmllcywgdGhlIGhpZXJh
cmNoeSB3b3VsZCBiZSBhcyBmb2xsb3dzOgo+IAo+IFBsdWdpbkJhc2UKPiDilJTilIDilIAgUGx1
Z2luCj4gICAgIOKUnOKUgOKUgCBFeGlzdGluZ1RoaXJkUGFydHlQbHVnaW4KPiAgICAg4pSc4pSA
4pSAIERpclBsdWdpbgo+ICAgICDilJTilIDilIAgLi4uCj4gCj4gV2UgY291bGQga2VlcCBgUGx1
Z2luQmFzZWAgYXMgaXQgaXMsIHNpbmNlIElNTyBoYXZpbmcgdGhlIGRvY3MgYW5kIHRoZQo+IFNl
Y3Rpb25Db25maWctcmVsYXRlZCBzdHVmZiBpbiBvbmUgcGxhY2UgaXMgZmluZSwgdW5sZXNzIHdl
IHJlYWxseSB3YW50Cj4gdG8ga2VlcCB0aGUgZG9jcyBzZXBhcmF0ZSBmcm9tIHRoZSByZXN0IG9m
IHRoZSBjb2RlLiAoV291bGQgc2VlbSBhIGJpdAo+IHJlZHVuZGFudCB0byBpbnRyb2R1Y2UgYW5v
dGhlciBpbmhlcml0YW5jZSBsYXllciBpbiB0aGF0IGNhc2UsIGJ1dCBJCj4gcGVyc29uYWxseSBk
b24ndCBtaW5kLikKCkkgZG9uJ3QgbWluZCBoYXZpbmcgdGhlIFNlY3Rpb25Db25maWcgYW5kIHRo
ZSAic2tlbGV0b24iIGluIG9uZSBtb2R1bGUsCnByb3ZpZGVkIHRoZXkgYXJlIGNsZWFybHkgc2Vw
YXJhdGVkLiB0aGUgU2VjdGlvbkNvbmZpZyBtZXRob2RzIGFyZQppbmhlcml0ZWQgYW55d2F5IGFu
ZCBhbnkgdGhpcmQgcGFydHkgcGx1Z2luIG11c3QgdXBob2xkIHRoZSBpbnZhcmlhbnQgb2YKbm90
IG1lc3Npbmcgd2l0aCB0aGVtLi4KCj4gVGhlbiwgd2UgZXZlbnR1YWxseSBpbnRyb2R1Y2UgYFBs
dWdpblRlbXBsYXRlYCBvbiB0aGUgc2FtZSBsYXllciBhcwo+IGBQbHVnaW5gLiBgUGx1Z2luVGVt
cGxhdGVgIHdvdWxkIG9ubHkgY29udGFpbiBpbXBsZW1lbnRhdGlvbnMgZm9yIHRoZQo+IG1vc3Qg
YmFzaWMgbWV0aG9kcyAoYW5kIG5vdCBwcm92aWRlIGRlZmF1bHRzIGZvciBmaWxlLWJhc2VkIHN0
b3JhZ2VzKS4KCmRvIHlvdSBoYXZlIHNvbWV0aGluZyBpbiBtaW5kIGZvciB0aGlzICJUZW1wbGF0
ZSI/IGFuZCBpZiB0aG9zZSBtZXRob2RzCndlcmUgc28gZ2VuZXJpYyBhbmQgYmFzaWMgYXQgdGhl
IHNhbWUgdGltZSwgd2h5IHNob3VsZG4ndCB0aGV5IGxpdmUgaW4KUGx1Z2luQmFzZSBpdHNlbGY/
IDspIEkgYW0gbm90IHlldCBjb252aW5jZWQgYW4gZXh0cmEgbGF5ZXIgbGlrZSB0aGlzCm1ha2Vz
IG11Y2ggc2Vuc2UsIGJ1dCBJIGFtIGhhcHB5IHRvIGxpc3RlbiB0byAoY29uY3JldGUpIGFyZ3Vt
ZW50cyB3aHkKaXQgc2hvdWxkIGV4aXN0LiBJTUhPIHRoZSBsZXNzIGNvZGUgaW5oZXJpdGVkIGJ5
IGV4dGVybmFsIHBsdWdpbnMgdGhlCmJldHRlciwgZWxzZSB3ZSBhbHdheXMgaGF2ZSB0byBub3Qg
dG91Y2ggdGhhdCBjb2RlIGZvciBhZ2VzIHRvIGF2b2lkCmJyZWFraW5nIHRoZW0uLgoKPiBQbHVn
aW5CYXNlCj4g4pSc4pSA4pSAIFBsdWdpbgo+IOKUgsKgwqAg4pSc4pSA4pSAIEV4aXN0aW5nVGhp
cmRQYXJ0eVBsdWdpbgo+IOKUgsKgwqAg4pSc4pSA4pSAIERpclBsdWdpbgo+IOKUgsKgwqAg4pSU
4pSA4pSAIC4uLgo+IOKUlOKUgOKUgCBQbHVnaW5UZW1wbGF0ZQo+IAo+IFRoZSBpZGVhIGJlaGlu
ZCB0aGlzIGlzIHRoYXQgd2UgY291bGQgdGhlbiAibWlncmF0ZSIgZWFjaCBwbHVnaW4gYW5kCj4g
YmFzZSBpdCBvZmYgYFBsdWdpblRlbXBsYXRlYCBpbnN0ZWFkLiBIZWxwZXJzIHRoYXQgYXJlIHNo
YXJlZCBiZXR3ZWVuCj4gcGx1Z2lucyBjb3VsZCBnbyBpbnRvIGBQVkU6OlN0b3JhZ2U6OkNvbW1v
bjo6KmAgaW5zdGVhZCBvZiBiZWluZwo+IGltcGxpY2l0bHkgYmVjb21pbmcgcGFydCBvZiBwbHVn
aW5zJyBtb2R1bGVzIGR1ZSB0byBpbmhlcml0YW5jZS4KCnRoZSBpc3N1ZSB3aXRoIHRoYXQgaXMg
dGhhdCB3ZSd2ZSBub3cganVzdCBtb3ZlZCB0aGUgcHJvYmxlbSAtIHdoYXQgYXJlCnRoZSBzdGFi
aWxpdHkgZ3VhcmFudGVlcyBmb3IgUFZFOjpTdG9yYWdlOjpDb21tb246OiogPyBhcmUgZXh0ZXJu
YWwKcGx1Z2lucyBhbGxvd2VkL3N1cHBvc2VkIHRvIHVzZSB0aGVtPyBJIGRvIHRoaW5rIHdlIHdh
bnQgdG8ga2VlcCBzb21lCmFtb3VudCBvZiAiUFZFLXNwZWNpZmljLCBpbnRlcm5hbCIgaGVscGVy
IGNvZGUgKHdoZXRoZXIgaW4gdGhlIHBsdWdpbnMKdGhlbXNlbHZlcyBvciBpbiBzb21lIHN0YW5k
YWxvbmUgaGVscGVyIG1vZHVsZSkgdGhhdCBhcmUgb2ZmLWxpbWl0cyBmb3IKZXh0ZXJuYWwgcGx1
Z2lucywgaWYganVzdCB0byBhdm9pZCB3cml0aW5nIHVzIGludG8gYSBjb3JuZXIuIHRoZSBlYXNp
ZXN0CndheSB0byBhY2hpZXZlIHRoYXQgaXMgdG8gbWlncmF0ZSBleHRlcm5hbCBwbHVnaW5zIGF3
YXkgZnJvbSBQbHVnaW4ucG0KKHdoaWNoIHdlIGNhbiBlbmZvcmNlIGF0IHBsdWdpbiBsb2FkaW5n
IHRpbWUgYXQgc29tZSBwb2ludCBhZnRlciBhCmRlcHJlY2F0aW9uIHBlcmlvZCkuCgpvYnZpb3Vz
bHkgZm9yIGhlbHBlcnMgdGhhdCB3ZSBkZWVtIHN0YWJsZSBlbm91Z2ggbW92aW5nIHRoZW0gdG8g
Q29tbW9uCmFuZCB3cmFwcGluZyB0aGVtIGluIHRoZWlyIG9sZCBsb2NhdGlvbiBpbiBQbHVnaW4g
d291bGQgYmUgYSB2aWFibGUKbWlncmF0aW9uIHN0cmF0ZWd5LgoKPiBQbHVnaW5CYXNlCj4g4pSc
4pSA4pSAIFBsdWdpbgo+IOKUgsKgwqAg4pSc4pSA4pSAIC4uLgo+IOKUgsKgwqAg4pSU4pSA4pSA
IEV4aXN0aW5nVGhpcmRQYXJ0eVBsdWdpbgo+IOKUlOKUgOKUgCBQbHVnaW5UZW1wbGF0ZQo+ICAg
ICDilJzilIDilIAgLi4uCj4gICAgIOKUlOKUgOKUgCBEaXJQbHVnaW4gKGNsZWFuZWQgdXApCj4g
Cj4gVGhhdCB3YXkgd2UgY291bGQgc3RlcCBieSBzdGVwICJkaXNlbnRhbmdsZSIgdGhlIGV4aXN0
aW5nIHBsdWdpbnMgZnJvbQo+IGVhY2ggb3RoZXIgd2l0aG91dCBoYXZpbmcgdG8gY29uc3RhbnRs
eSBrZWVwIHRoZSBvcmlnaW5hbCBiZWhhdmlvdXIocykKPiBvZiBgUGx1Z2luYCBpbiB0aGUgYmFj
ayBvZiBvbmUncyBoZWFkIGFuZCBhY2NvdW50IGZvciB0aGVtLiBJbnN0ZWFkLAo+IGVhY2ggcGx1
Z2luIHdvdWxkIGltcGxlbWVudCBwcmVjaXNlbHkgd2hhdCBpdCBpdHNlbGYgbmVlZHMuCj4gCj4g
U2luY2UgYm90aCB0aGUgb2xkIGBQbHVnaW5gIGFuZCB0aGUgbmV3IGBQbHVnaW5UZW1wbGF0ZWAg
c2hhcmUgdGhlIHNhbWUKPiBpbnRlcmZhY2UsIG5hbWVseSBgUGx1Z2luQmFzZWAsIHdlIGNvdWxk
IHN0aWxsIHN1cHBvcnQgdGhlIG9sZCBgUGx1Z2luYAo+IHVudGlsIGV2ZXJ5dGhpbmcncyBiZWVu
IG1vdmVkIG92ZXIgYW5kIHRoaXJkLXBhcnR5IGRldnMgaGF2ZSBoYWQgZW5vdWdoCj4gdGltZSB0
byBhZGFwdCB0aGVpciBvd24gY29kZSwgdG9vLgoKc2VlIGFib3ZlIC0gd2UgY2FuIGRvIGFsbCBv
ZiB0aGF0IHdpdGhvdXQgaW50cm9kdWNpbmcgUGx1Z2luVGVtcGxhdGUgYXMKd2VsbCwgaW5jbHVk
aW5nIGF0IHNvbWUgcG9pbnQgbm8gbG9uZ2VyIGFsbG93aW5nIHRoaXJkIHBhcnR5IHBsdWdpbnMg
dG8KcmUtdXNlIFBsdWdpbiBidXQgZm9yY2UgdGhlbSB0byBiZSBiYXNlZCBvZiBQbHVnaW5CYXNl
LgoKPiBXaGlsZSBkb2luZyBhbGwgdGhpcywgd2UgY291bGQgYWxzbyByZXdvcmsgcGFydHMgb2Yg
dGhlIEFQSSB0aGF0IGRpZG4ndAo+IGFnZSB0aGF0IGdyYWNlZnVsbHksIHBlcmhhcHMgZGVwcmVj
YXRlIGNlcnRhaW4gb2xkIG1ldGhvZHMsIGludHJvZHVjZQo+IG5ldyBtZXRob2RzLCBldGMuIGFz
IHdlJ2QgaGF2ZSBhICJjbGVhbiIgYnJlYWssIHNvdG9zcGVhay4KCnRoaXMgY291bGQgYWxzbyBi
ZSBkb25lIHdpdGhvdXQgbW92aW5nIGFsbCBwbHVnaW5zIG92ZXIgdG8KUGx1Z2luVGVtcGxhdGUs
IGFsdGhvdWdoIGl0IG1pZ2h0IGJlIGEgYml0IG1vcmUgbWVzc3kvZGFuZ2Vyb3VzLgoKPiBTbywg
dG8gc3VtbWFyaXplIG15IGlkZWE6Cj4gLSBLZWVwIGBQbHVnaW5CYXNlYCBhcyBpdCBpcyByaWdo
dCBub3csIGJ1dCBhbHNvIGluY2x1ZGUKPiAgIFNlY3Rpb25Db25maWctcmVsYXRlZCBjb2RlCj4g
LSBJbnRyb2R1Y2UgYFBsdWdpblRlbXBsYXRlYCB3aXRoIG1pbmltYWwgaW1wbGVtZW50YXRpb24g
bGF0ZXIgZG93biB0aGUKPiAgIGxpbmUgb24gdGhlIHNhbWUgaW5oZXJpdGFuY2UgbGF5ZXIgYXMg
YFBsdWdpbmAKPiAtIFNsb3dseSBtaWdyYXRlIG91ciBwbHVnaW5zLCBiYXNpbmcgdGhlbSBvZmYg
b2YgYFBsdWdpblRlbXBsYXRlYCB3aGlsZQo+ICAgdG9zc2luZyBvdXQgb2xkIGNvZGUsIG1ha2lu
ZyB0aGVtIGluZGVwZW5kZW50IGZyb20gb25lIGFub3RoZXIsIGFuZAo+ICAgY29sbGVjdGluZyBz
aGFyZWQgaGVscGVycyBpbiBgUFZFOjpTdG9yYWdlOjpDb21tb246OipgCj4gCj4gSSdkIHJlYWxs
eSBsaWtlIHRvIGhlYXIgeW91ciB0aG91Z2h0cyBvbiB0aGlzLCBiZWNhdXNlIEknbSBub3Qgc3Vy
ZSBpZgo+IHRoaXMgaXMgKmFjdHVhbGx5KiBmZWFzaWJsZSBvciBwcm92aWRlcyBhbnkgUk9JIGRv
d24gdGhlIGxpbmUuIE9uZQo+IGFsdGVybmF0aXZlIHRoYXQgSSBjYW4gdGhpbmsgb2YgaXMgdG8g
anVzdCBrZWVwIHRoZSBpbmhlcml0YW5jZQo+IGhpZXJhcmNoeSBhcyBpdCBpcyAoYXMgaW4gdGhp
cyBzZXJpZXMpIGFuZCBkaXNlbnRhbmdsZSB0aGUgcGx1Z2lucyBhcwo+IHRoZXkgYXJlIHJpZ2h0
IG5vdywgd2l0aG91dCBjaGFuZ2luZyB0aGVpciBwYXJlbnQgKHNvLCBhbG1vc3QgdGhlIHNhbWUK
PiBhcyB5b3VyIHNlY29uZCBpZGVhKS4gSSBkaWQgc3RhcnQgYnJlYWtpbmcgYXBhcnQgb3VyIHBs
dWdpbnMgbGlrZSB0aGF0Cj4gbGFzdCB5ZWFyLCBidXQgdGhhdCB3YXMgdG9vIG11Y2ggYWxsIGF0
IG9uY2UgWzFdLgo+IAo+IFsxXTogaHR0cHM6Ly9sb3JlLnByb3htb3guY29tL3B2ZS1kZXZlbC8y
MDI0MDcxNzA5NDAzNC4xMjQ4NTctMS1tLmNhcnJhcmFAcHJveG1veC5jb20vCgoKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHZlLWRldmVsIG1haWxpbmcg
bGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNv
bS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==