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 0FE211FF16F
	for <inbox@lore.proxmox.com>; Tue, 29 Apr 2025 10:37:21 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 824406AA9;
	Tue, 29 Apr 2025 10:37:30 +0200 (CEST)
Message-ID: <bdea044b-68fb-45b8-b7c4-23b9fdd52d06@proxmox.com>
Date: Tue, 29 Apr 2025 10:37:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
From: Daniel Kral <d.kral@proxmox.com>
To: Fiona Ebner <f.ebner@proxmox.com>,
 Proxmox VE development discussion <pve-devel@lists.proxmox.com>,
 =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
References: <20250325151254.193177-1-d.kral@proxmox.com>
 <20250325151254.193177-7-d.kral@proxmox.com>
 <1743672047.yfgqapvf7h.astroid@yuna.none>
 <123e823b-c283-4090-9bf0-9bce777eb670@proxmox.com>
 <9a47259a-2ffd-4e43-a45c-fa4f9a7c2ee8@proxmox.com>
Content-Language: en-US
In-Reply-To: <9a47259a-2ffd-4e43-a45c-fa4f9a7c2ee8@proxmox.com>
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.011 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: [pve-devel] [PATCH ha-manager 05/15] rules: add colocation rule
 plugin
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-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

QWdyZWUgd2l0aCBhbGwgaGVyZSwgYnV0IEkgcHJvcG9zZSB0byByZW1vdmUgdGhlIG1lcmdpbmcg
Zm9yIGFueSAKY29sb2NhdGlvbiBydWxlcyBpbiB0aGUgbGFzdCBjb21tZW50LCBpZiB0aGVyZSdz
IG5vdGhpbmcgc3BlYWtpbmcgCmFnYWluc3QgaXQuCgpPbiA0LzI1LzI1IDE2OjA2LCBGaW9uYSBF
Ym5lciB3cm90ZToKPiBBbSAxMS4wNC4yNSB1bSAxMzowNCBzY2hyaWViIERhbmllbCBLcmFsOgo+
PiBPbiA0LzMvMjUgMTQ6MTYsIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4+PiBPbiBNYXJj
aCAyNSwgMjAyNSA0OjEyIHBtLCBEYW5pZWwgS3JhbCB3cm90ZToKPj4+PiArc3ViIGNoZWNrX3Nl
cnZpY2VzX2NvdW50IHsKPj4+PiArwqDCoMKgIG15ICgkcnVsZXMpID0gQF87Cj4+Pj4gKwo+Pj4+
ICvCoMKgwqAgbXkgJGNvbmZsaWN0cyA9IFtdOwo+Pj4+ICsKPj4+PiArwqDCoMKgIGZvcmVhY2hf
Y29sb2NhdGlvbl9ydWxlKCRydWxlcywgc3ViIHsKPj4+PiArwqDCoMKgIG15ICgkcnVsZSwgJHJ1
bGVpZCkgPSBAXzsKPj4+PiArCj4+Pj4gK8KgwqDCoCBwdXNoIEAkY29uZmxpY3RzLCAkcnVsZWlk
IGlmIChzY2FsYXIoa2V5cyAleyRydWxlLT57c2VydmljZXN9fSkKPj4+PiA8IDIpOwo+Pj4+ICvC
oMKgwqAgfSk7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgcmV0dXJuICRjb25mbGljdHM7Cj4+Pj4gK30K
Pj4+Cj4+PiBpcyB0aGlzIHJlYWxseSBhbiBpc3N1ZT8gYSBjb2xvY2F0aW9uIHJ1bGUgd2l0aCBh
IHNpbmdsZSBzZXJ2aWNlIGlzIGp1c3QKPj4+IGEgbm9wPyB0aGVyZSdzIGN1cnJlbnRseSBubyBj
bGVhbnVwIEFGQUlDVCBpZiBhIHJlc291cmNlIGlzIHJlbW92ZWQsIGJ1dAo+Pgo+PiBZb3UncmUg
cmlnaHQsIEFGQUlDUyB0aG9zZSBhcmUgYSBub29wIHdoZW4gc2VsZWN0aW5nIHRoZSBzZXJ2aWNl
IG5vZGUuIEkKPj4gZ3Vlc3MgSSB3YXMgYSBsaXR0bGUgcGVkYW50aWMgLyBvdmVycHJvdGVjdGl2
ZSBoZXJlIGFib3V0IHdoaWNoIHJ1bGVzCj4+IG1ha2Ugc2Vuc2UgaW4gZ2VuZXJhbCBpbnN0ZWFk
IG9mIHdoYXQgdGhlIGFsZ29yaXRobSBkb2VzIGluIHRoZSBlbmQuCj4+Cj4+IEFuZCBnb29kIHBv
aW50IGFib3V0IGhhbmRsaW5nIHdoZW4gcmVzb3VyY2VzIGFyZSByZW1vdmVkLCBhZGRpbmcgdGhh
dCB0bwo+PiBkZWxldGVfc2VydmljZV9mcm9tX2NvbmZpZyBjb21lcyByaWdodCBvbiBteSBUT0RP
IGxpc3QgZm9yIHRoZSB2MSEKPj4KPj4+IGlmIHdlIGFkZCB0aGF0IHBhcnQgKHdlIG1heWJlIHNo
b3VsZD8pIHRoZW4gb25lIGNhbiBlYXNpbHkgZW5kIHVwIGluIGEKPj4+IHNpdHVhdGlvbiB3aGVy
ZSBhIHJ1bGUgdGVtcG9yYXJpbHkgY29udGFpbnMgYSBzaW5nbGUgb3Igbm8gc2VydmljZT8KPj4K
Pj4gSG0sIHllcywgZXNwZWNpYWxseSBpZiB3ZSBhZGQgcG9vbHMvdGFncyBhdCBhIGxhdGVyIHBv
aW50IHRvIHNlbGVjdAo+PiBzZXJ2aWNlcyBmb3IgdGhlIHJ1bGUsIHRoZW4gdGhpcyBjb3VsZCBo
YXBwZW4gdmVyeSBlYXNpbHkuIEJ1dCBhcyB5b3UKPj4gYWxyZWFkeSBtZW50aW9uZWQsIHRob3Nl
IHR3byBjYXNlcyB3b3VsZCBiZSBub29wcyB0b28uCj4+Cj4+IE5ldmVydGhlbGVzcywgc2hvdWxk
IHdlIGRyb3AgdGhpcz8gSSB0aGluayBpdCBjb3VsZCBiZW5lZml0IHVzZXJzIGluCj4+IGlkZW50
aWZ5aW5nIHRoYXQgc29tZSBydWxlcyBtaWdodCBub3QgZG8gc29tZXRoaW5nIHRoZXkgd2FudGVk
IGFuZCBnaXZlCj4+IHRoZW0gYSByZWFzb24gd2h5LCBpLmUuIHRoZXJlJ3Mgb25seSBvbmUgc2Vy
dmljZSBpbiB0aGVyZSwgYnV0IGF0IHRoZQo+PiBzYW1lIHRpbWUgaXQgY291bGQgYmUgYSBsaXR0
bGUgbm9pc3kgaWYgdGhlcmUgYXJlIGEgbG90IG9mIGFmZmVjdGVkIHJ1bGVzLgo+IAo+IEknZCBz
dGlsbCBrZWVwIHJ1bGVzIHRoYXQgZW5kIHVwIHdpdGggb25seSBvbmUgc2VydmljZSBhcm91bmQs
IGJ1dCBtYXliZQo+ICh0ZW1wb3JhcmlseSkgZGlzYWJsZSB0aGVtLiBBbmQvb3Igd2UgY291bGQg
YWxzbyBhZGQgYSBzcGVjaWFsCj4gIm5vLWVmZmVjdCIgbWFya2VyIGxpa2UgdGhlICJjb25mbGlj
dCIgb25lIHByb3Bvc2VkIGluIG15IG90aGVyIGFuc3dlcj8KPiBUaGVuIGEgdXNlciBjb3VsZCBl
bmFibGUvbWFrZSB0aGUgcnVsZSBlZmZlY3RpdmUgYWdhaW4gYnkgYWRkaW5nIGEgbmV3Cj4gc2Vy
dmljZSB0byBpdC4KClllcywgSSB0aGluayB0aGUgJ2NvbmZsaWN0Jy8naW5lZmZlY3RpdmUnIHN0
YXRlcyBhcmUgbXVjaCBtb3JlIAp1c2VyLWZyaWVuZGx5IG9wcG9zZWQgdG8gZHJvcHBpbmcgdGhl
bSBhbmQgb25seSBtYWtpbmcgdGhlc2UgZGVjaXNpb25zIApleHBsaWNpdCBpbiB0aGUgbG9nLiBJ
J2xsIGFkZCB0aGF0IHRvIHRoZSB2MSEKCj4gCj4+Pj4gKwo+Pj4+ICs9aGVhZDMgY2hlY2tfcG9z
aXRpdmVfaW50cmFuc2l0aXZpdHkoJHJ1bGVzKQo+Pj4+ICsKPj4+PiArUmV0dXJucyBhIGxpc3Qg
b2YgY29uZmxpY3RzIGNhdXNlZCBieSB0cmFuc2l0aXZlIHBvc2l0aXZlIGNvbG9jYXRpb24KPj4+
PiBydWxlcwo+Pj4+ICtkZWZpbmVkIGluIEM8JHJ1bGVzPi4KPj4+PiArCj4+Pj4gK1RyYW5zaXRp
dmUgcG9zaXRpdmUgY29sb2NhdGlvbiBydWxlcyBleGlzdCwgaWYgdGhlcmUgYXJlIGF0IGxlYXN0
Cj4+Pj4gdHdvIHBvc2l0aXZlCj4+Pj4gK2NvbG9jYXRpb24gcnVsZXMgd2l0aCB0aGUgc2FtZSBz
dHJpY3RuZXNzLCB3aGljaCBwdXQgYXQgbGVhc3QgdGhlCj4+Pj4gc2FtZSB0d28KPj4+PiArc2Vy
dmljZXMgaW4gcmVsYXRpb24uIFRoaXMgbWVhbnMsIHRoYXQgdGhlc2UgcnVsZXMgY2FuIGJlIG1l
cmdlZAo+Pj4+IHRvZ2V0aGVyLgo+Pj4+ICsKPj4+PiArSWYgdGhlcmUgYXJlIG5vIGNvbmZsaWN0
cywgdGhlIHJldHVybmVkIGxpc3QgaXMgZW1wdHkuCj4+Pgo+Pj4gVGhlIHRlcm1pbm9sb2d5IGhl
cmUgaXMgcXVpdCBjb25mdXNpbmcgLSBjb25mbGljdCBtZWFuaW5nIHRoYXQgdHdvIHJ1bGVzCj4+
PiBhcmUgInRyYW5zaXRpdmUiIGFuZCB0aHVzIG1lcmdlYWJsZSAod2hpY2ggaXMgZ29vZCwgY2F1
c2UgaXQgbWFrZXMKPj4+IHRoaW5ncyBlYXNpZXIgdG8gaGFuZGxlPykgaXMgcXVpdGUgd2VpcmQs
IGFzICJjb25mbGljdCIgaXMgYSByYXRoZXIKPj4+IG5lZ2F0aXZlIHRlcm0uLgo+Pj4KPj4+IHRo
ZXJlJ3Mgb25seSBhIHNpbmdsZSBjYWxsIHNpdGUgaW4gdGhlIHNhbWUgbW9kdWxlLCBtYXliZSB3
ZSBjb3VsZCBqdXN0Cj4+PiByZW5hbWUgdGhpcyBpbnRvICJmaW5kX21lcmdlYWJsZV9wb3NpdGl2
ZV9ydWxlaWRzIiwgc2ltaWxhciB0byB0aGUKPj4+IHZhcmlhYmxlIHdoZXJlIHRoZSByZXN1bHQg
aXMgc3RvcmVkPwo+Pgo+PiBZZWFoLCBJIHdhcyBwcm9iYWJseSB0byBrZWVuIG9uIHRoZSBgJGNv
bmZsaWN0ID0gY2hlY2tfc29tZXRoaW5nKC4uLilgCj4+IHBhdHRlcm4gaGVyZSwgYnV0IGl0IHdv
dWxkIGJlIG11Y2ggbW9yZSByZWFkYWJsZSB3aXRoIGEgc2ltcGxlciBuYW1lLAo+PiBJJ2xsIGNo
YW5nZSB0aGF0IGZvciB0aGUgdjEhCj4+Cj4+IC0tLS0tCj4+Cj4+IEFkIHdoeTogSSdsbCBhbHNv
IGFkZCBzb21lIGRvY3VtZW50YXRpb24gYWJvdXQgdGhlIHJhdGlvbmFsZSB3aHkgdGhpcyBpcwo+
PiBuZWVkZWQgaW4gdGhlIGZpcnN0IHBsYWNlLgo+Pgo+PiBUaGUgbWFpbiByZWFzb24gd2FzIGJl
Y2F1c2UgdGhlIGxhdHRlciBydWxlIGNoZWNrCj4+ICdjaGVja19pbm5lcl9jb25zaXN0ZW5jeScg
ZGVwZW5kcyBvbiB0aGUgZmFjdCB0aGF0IHRoZSBwb3NpdGl2ZQo+PiBjb2xvY2F0aW9uIHJ1bGVz
IGhhdmUgYmVlbiBtZXJnZWQgYWxyZWFkeSwgYXMgaXQgYXNzdW1lcyB0aGF0IGVhY2gKPj4gcG9z
aXRpdmUgY29sb2NhdGlvbiBydWxlIGhhcyBhbGwgb2YgdGhlIHNlcnZpY2VzIGluIHRoZXJlLCB3
aGljaCBhcmUKPj4gcG9zaXRpdmVseSBjb2xvY2F0ZWQuIElmIGl0IHdlcmVuJ3Qgc28sIGl0IHdv
dWxkbid0IGRldGVjdCB0aGF0IHRoZQo+PiBmb2xsb3dpbmcgdGhyZWUgcnVsZXMgYXJlIGluY29u
c2lzdGVudCB3aXRoIGVhY2ggb3RoZXI6Cj4+Cj4+IGNvbG9jYXRpb246IHN0aWNrLXRvZ2V0aGVy
MQo+PiAgwqDCoMKgIHNlcnZpY2VzIHZtOjEwMSx2bToxMDQKPj4gIMKgwqDCoCBhZmZpbml0eSB0
b2dldGhlcgo+PiAgwqDCoMKgIHN0cmljdCAxCj4+Cj4+IGNvbG9jYXRpb246IHN0aWNrLXRvZ2V0
aGVyMgo+PiAgwqDCoMKgIHNlcnZpY2VzIHZtOjEwNCx2bToxMDIKPj4gIMKgwqDCoCBhZmZpbml0
eSB0b2dldGhlcgo+PiAgwqDCoMKgIHN0cmljdCAxCj4+Cj4+IGNvbG9jYXRpb246IGtlZXAtYXBh
cnQKPj4gIMKgwqDCoCBzZXJ2aWNlcyB2bToxMDEsdm06MTAyLHZtOjEwMwo+PiAgwqDCoMKgIGFm
ZmluaXR5IHNlcGFyYXRlCj4+ICDCoMKgwqAgc3RyaWN0IDEKPj4KPj4gVGhpcyByZWR1Y2VzIHRo
ZSBjb21wbGV4aXR5IG9mIHRoZSBsb2dpYyBhIGxpdHRsZSBpbgo+PiAnY2hlY2tfaW5uZXJfY29u
c2lzdGVuY3knIGFzIHRoZXJlIGl0IGRvZXNuJ3QgaGF2ZSB0byBoYW5kbGUgdGhpcwo+PiBzcGVj
aWFsIGNhc2UgYXMgJ3N0aWNrLXRvZ2V0aGVyMScgYW5kICdzdGljay10b2dldGhlcjInIGFyZSBh
bHJlYWR5Cj4+IG1lcmdlZCBpbiB0byBvbmUgYW5kIGl0IGlzIGVhc2lseSBhcHBhcmVudCB0aGF0
IHZtIDEwMSBhbmQgdm0gMTAyIGNhbm5vdAo+PiBiZSBjb2xvY2F0ZWQgYW5kIG5vbi1jb2xvY2F0
ZWQgYXQgdGhlIHNhbWUgdGltZS4KPj4KPj4gLS0tLS0KPj4KPj4gQWxzbywgSSB3YXMgY3VyaW91
cyBhYm91dCBob3cgdGhhdCB3b3VsZCB3b3JrIG91dCBmb3IgdGhlIGNhc2Ugd2hlcmUgYQo+PiBu
ZWdhdGl2ZSBjb2xvY2F0aW9uIHJ1bGUgd2FzIGRlZmluZWQgZm9yIHRocmVlIG5vZGVzIHdpdGgg
dGhvc2UgcnVsZXMKPj4gc3BsaXQgaW50byB0aHJlZSBydWxlcyAoZXNzZW50aWFsbHkgYSBjeWNs
ZSBkZXBlbmRlbmNlKS4gVGhpcyBzaG91bGQgaW4KPj4gdGhlb3J5IGhhdmUgdGhlIHNhbWUgc2Vt
YW50aWNzIGFzIHRoZSBhYm92ZSBydWxlIHNldDoKPj4KPj4gY29sb2NhdGlvbjogc3RpY2stdG9n
ZXRoZXIxCj4+ICDCoMKgwqAgc2VydmljZXMgdm06MTAxLHZtOjEwNAo+PiAgwqDCoMKgIGFmZmlu
aXR5IHRvZ2V0aGVyCj4+ICDCoMKgwqAgc3RyaWN0IDEKPj4KPj4gY29sb2NhdGlvbjogc3RpY2st
dG9nZXRoZXIyCj4+ICDCoMKgwqAgc2VydmljZXMgdm06MTA0LHZtOjEwMgo+PiAgwqDCoMKgIGFm
ZmluaXR5IHRvZ2V0aGVyCj4+ICDCoMKgwqAgc3RyaWN0IDEKPj4KPj4gY29sb2NhdGlvbjogdmVy
eS1sb25lbHktc2VydmljZXMxCj4+ICDCoMKgwqAgc2VydmljZXMgdm06MTAxLHZtOjEwMgo+PiAg
wqDCoMKgIGFmZmluaXR5IHNlcGFyYXRlCj4+ICDCoMKgwqAgc3RyaWN0IDEKPj4KPj4gY29sb2Nh
dGlvbjogdmVyeS1sb25lbHktc2VydmljZXMyCj4+ICDCoMKgwqAgc2VydmljZXMgdm06MTAyLHZt
OjEwMwo+PiAgwqDCoMKgIGFmZmluaXR5IHNlcGFyYXRlCj4+ICDCoMKgwqAgc3RyaWN0IDEKPj4K
Pj4gY29sb2NhdGlvbjogdmVyeS1sb25lbHktc2VydmljZXMzCj4+ICDCoMKgwqAgc2VydmljZXMg
dm06MTAxLHZtOjEwMwo+PiAgwqDCoMKgIGFmZmluaXR5IHNlcGFyYXRlCj4+ICDCoMKgwqAgc3Ry
aWN0IDEKPj4KPj4gV2l0aG91dCB0aGUgbWVyZ2Ugb2YgcG9zaXRpdmUgcnVsZXMsICdjaGVja19p
bm5lcl9jb25zaXN0ZW5jeScgd291bGQKPj4gYWdhaW4gbm90IGRldGVjdCB0aGUgaW5jb25zaXN0
ZW5jeSBoZXJlLiBCdXQgd2l0aCB0aGUgbWVyZ2UgY29ycmVjdGx5Cj4+IGFwcGxpZWQgYmVmb3Jl
IGNoZWNraW5nIHRoZSBjb25zaXN0ZW5jeSwgdGhpcyB3b3VsZCBiZSByZXNvbHZlZCBhbmQgdGhl
Cj4+IGVmZmVjdGl2ZSBydWxlIHNldCB3b3VsZCBiZToKPiAKPiBJIHN1cHBvc2UgdGhlIGVmZmVj
dGl2ZSBydWxlIHNldCB3b3VsZCBzdGlsbCBhbHNvIGNvbnRhaW4gdGhlIHR3bwo+ICd0b2dldGhl
cicgcnVsZXMsIG9yPwoKTm8sIGhlcmUgaXQgd291bGQgbm90LiBJIGZvdW5kIGl0IHdvdWxkIGJl
IG1vc3QgZmFpciBvciByZWFzb25hYmxlIHRoYXQgCmlmIGEgcG9zaXRpdmUgYW5kIGEgbmVnYXRp
dmUgY29sb2NhdGlvbiBydWxlIGNvbnRyYWRpY3QgZWFjaCBvdGhlciB0byAKZHJvcCBib3RoIG9m
IHRoZW0uIEhlcmUgdGhlIGNvbmZsaWN0cyBhcmUKCnN0aWNrLXRvZ2V0aGVyMSAtLSB2ZXJ5LWxv
bmVseS1zZXJ2aWNlczEKc3RpY2stdG9nZXRoZXIyIC0tIHZlcnktbG9uZWx5LXNlcnZpY2VzMQoK
c28gYWxsIHRocmVlIG9mIHRoZW0gd2lsbCBiZSBkcm9wcGVkIGZyb20gdGhlIHJ1bGUgc2V0LgoK
U2VlaW5nIHRoaXMgYWdhaW4gaGVyZSwgc3VjaCBjYXNlcyBkZWZpbml0ZWx5IGJlbmVmaXQgZnJv
bSB0aGUgaW1tZWRpYXRlIApyZXNwb25zZSB3aXRoIHRoZSAnY29uZmxpY3QnLydpbmVmZmVjdGl2
ZScgc3RhdGUgdG8gc2hvdyB1c2VycyB0aGF0IAp0aG9zZSB3b24ndCBiZSBhcHBsaWVkIGluc3Rl
YWQgb2Ygb25seSBsb2dnaW5nIGl0LgoKPiAKPj4KPj4gY29sb2NhdGlvbjogdmVyeS1sb25lbHkt
c2VydmljZXMyCj4+ICDCoMKgwqAgc2VydmljZXMgdm06MTAyLHZtOjEwMwo+PiAgwqDCoMKgIGFm
ZmluaXR5IHNlcGFyYXRlCj4+ICDCoMKgwqAgc3RyaWN0IDEKPj4KPj4gY29sb2NhdGlvbjogdmVy
eS1sb25lbHktc2VydmljZXMzCj4+ICDCoMKgwqAgc2VydmljZXMgdm06MTAxLHZtOjEwMwo+PiAg
wqDCoMKgIGFmZmluaXR5IHNlcGFyYXRlCj4+ICDCoMKgwqAgc3RyaWN0IDEKPj4KPj4gSXQgY291
bGQgYmUgYXJndWVkLCB0aGF0IHRoZSBuZWdhdGl2ZSBjb2xvY2F0aW9uIHJ1bGVzIHNob3VsZCBi
ZSBtZXJnZWQKPj4gaW4gYSBzaW1pbGFyIG1hbm5lciBoZXJlLCBhcyB0aGVyZSdzIG5vdyBhICJl
ZmZlY3RpdmUiIGRpZmZlcmVuY2UgaW4gdGhlCj4+IHNlbWFudGljcyBvZiB0aGUgYWJvdmUgcnVs
ZSBzZXRzLCBhcyB0aGUgbmVnYXRpdmUgY29sb2NhdGlvbiBydWxlCj4+IGJldHdlZW4gdm0gMTAx
IGFuZCB2bSAxMDMgYW5kIHZtIDEwMiBhbmQgdm0gMTAzIHJlbWFpbnMuCj4+Cj4+IFdoYXQgZG8g
eW91IHRoaW5rPwo+IAo+IEkgZG9uJ3QgdGhpbmsgdGhlcmUncyBhIHBhcnRpY3VsYXIgbmVlZCB0
byBhbHNvIG1lcmdlIG5lZ2F0aXZlIHJ1bGVzCj4gYmV0d2VlbiBzZXJ2aWNlcyAod2hlbiB0aGV5
IGZvcm0gYSBjb21wbGV0ZSBncmFwaCkuIEl0IHdvbid0IG1ha2UgYQo+IGRpZmZlcmVuY2UgaWYg
dGhlcmUgYXJlIG5vIGNvbmZsaWN0cyB3aXRoIHBvc2l0aXZlIHJ1bGVzIGFuZCBpbiBlZGdlCj4g
Y2FzZXMgd2hlbiB0aGVyZSBhcmUgY29uZmxpY3RzICh3aGljaCB1c3VhbGx5IGdldHMgY2F1Z2h0
IHdoaWxlIGVkaXRpbmcKPiB0aGUgcnVsZXMpLCBpdCdzIGJldHRlciB0byBkcm9wIGZld2VyIHJ1
bGVzLCBzbyBub3QgbWVyZ2luZyBpcyBhbgo+IGFkdmFudGFnZS4gT3IgZG8geW91IGhhdmUgYSBw
YXJ0aWN1bGFyIGFkdmFudGFnZSBpbiBmYXZvciBvZiBtZXJnaW5nIGluCj4gbWluZD8KClllcywg
SSB0aGluayBzbyB0b28uCgpUaGVyZSdzIHF1aXRlIHRoZSBzZW1hbnRpYyBkaWZmZXJlbmNlIGJl
dHdlZW4gcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIApjb2xvY2F0aW9uIHJ1bGVzIGhlcmUuICJDb25u
ZWN0ZWQiIHBvc2l0aXZlIGNvbG9jYXRpb24gcmVsYXRpb25zaGlwcyAKKHN0cmljdCBvbmVzIGlu
IHBhcnRpY3VsYXIpIG11c3QgYmUgY28tbG9jYXRlZCBpbiB0aGUgZW5kIGFueXdheSwgc28gaXQg
Cm1ha2VzIHNlbnNlIHRvIG1lcmdlIHRoZW0uIE5lZ2F0aXZlIGNvbG9jYXRpb24gcmVsYXRpb25z
aGlwcyBtdXN0IGJlIApkZWZpbmVkIGluIGEgImNpcmN1bGFyIiB3YXkgYW5kIG1pZ2h0IGp1c3Qg
aGFwcGVuIGJ5IGNvaW5jaWRlbmNlIGZvciAKc21hbGwgc2NlbmFyaW9zLgoKQnV0IG9uZSB0aGlu
ZyB0aGF0IGp1c3Qgc3RydWNrIG1lIGlzIHRoYXQgd2hhdCBpZiB0aGUgdXNlciBpbnRlbnRpb25h
bGx5IAp3cm90ZSB0aGVtIGFzIHNlcGFyYXRlIHJ1bGVzPyBUaGVuIGl0IG1pZ2h0IGJlIGNvbmZ1
c2luZyB0aGF0IGFsbCBydWxlcyAKYXJlIGRyb3BwZWQgYW5kIG5vdCBqdXN0IHRoZSBtaW5pbWFs
IGFtb3VudCB0aGF0IGNvbnRyYWRpY3Qgb3RoZXIgCnJ1bGVzLi4uIFRoZW4gY2hlY2tfaW5uZXJf
Y29uc2lzdGVuY3koKSB3b3VsZCBqdXN0IGRyb3AgdGhlIG1pbmltYWwgCmFtb3VudCBvZiBydWxl
cyB0aGF0IG5lZWQgdG8gYmUgZHJvcHBlZCBhcyBpbiB0aGUgYWJvdmUgZXhhbXBsZS4KCkl0IHdv
dWxkIGJlIGEgc29mdGVyIGludGVycHJldGF0aW9uIG9mIHRoZSBydWxlcyBpbmRlZWQsIGJ1dCBp
dCBtaWdodCAKYmVuZWZpdCB0aGUgdXNlciBpbiB0aGUgZW5kIGFuZCBtYWtlIHRoaW5ncyBlYXNp
ZXIgdG8gZm9sbG93IGZyb20gdGhlIAp1c2VyIHBlcnNwZWN0aXZlLiBJZiB0aGVyZSdzIG5vIG9w
cG9zaXRpb24gdG8gdGhhdCwgSSdkIHRlbmQgdG8gZHJvcCB0aGUgCm1lcmdpbmcgZm9yIGFueSBy
dWxlcyBhZnRlciBhbGwuCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KcHZlLWRldmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5j
b20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZl
LWRldmVsCg==