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 4F52E1FF13E for ; Fri, 23 Jan 2026 15:17:46 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 213E0EEE5; Fri, 23 Jan 2026 15:18:04 +0100 (CET) Message-ID: <4a8b3e02-5735-4def-8e50-28bc1bf2fe71@proxmox.com> Date: Fri, 23 Jan 2026 15:17:57 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Proxmox VE development discussion , Kefu Chai References: <20260106142440.2368585-1-k.chai@proxmox.com> <20260106142440.2368585-2-k.chai@proxmox.com> Content-Language: en-US From: Samuel Rufinatscha In-Reply-To: <20260106142440.2368585-2-k.chai@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL 0.249 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. [lib.rs, error.rs, readme.md, profile.dev, proxmox.com] Subject: Re: [pve-devel] [PATCH pve-cluster 01/15] pmxcfs-rs: add workspace and pmxcfs-api-types crate X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" VGhhbmtzIGZvciB0aGUgc2VyaWVzLiBJ4oCZdmUgc3RhcnRlZCByZXZpZXdpbmcgcGF0Y2hlcyAx 4oCTNjsgc2VuZGluZwpub3RlcyBmb3IgcGF0Y2ggMSBmaXJzdCwgYW5kIEnigJlsbCBmb2xsb3cg dXAgd2l0aCBjb21tZW50cyBvbiB0aGUKb3RoZXJzIG9uY2UgSeKAmXZlIGdvbmUgdGhyb3VnaCB0 aGVtIGluIG1vcmUgZGVwdGguCgpjb21tZW50cyBpbmxpbmUKCk9uIDEvNi8yNiAzOjI1IFBNLCBL ZWZ1IENoYWkgd3JvdGU6Cj4gSW5pdGlhbGl6ZSB0aGUgUnVzdCB3b3Jrc3BhY2UgZm9yIHRoZSBw bXhjZnMgcmV3cml0ZSBwcm9qZWN0Lgo+IAo+IEFkZCBwbXhjZnMtYXBpLXR5cGVzIGNyYXRlIHdo aWNoIHByb3ZpZGVzIGZvdW5kYXRpb25hbCB0eXBlczoKPiAtIFBteGNmc0Vycm9yOiBFcnJvciB0 eXBlIHdpdGggZXJybm8gbWFwcGluZyBmb3IgRlVTRSBvcGVyYXRpb25zCj4gLSBGdXNlTWVzc2Fn ZTogRmlsZXN5c3RlbSBvcGVyYXRpb24gbWVzc2FnZXMKPiAtIEt2U3RvcmVNZXNzYWdlOiBTdGF0 dXMgc3luY2hyb25pemF0aW9uIG1lc3NhZ2VzCj4gLSBBcHBsaWNhdGlvbk1lc3NhZ2U6IFdyYXBw ZXIgZW51bSBmb3IgYm90aCBtZXNzYWdlIHR5cGVzCj4gLSBWbVR5cGU6IFZNIHR5cGUgZW51bSAo UWVtdSwgTHhjKQo+IAo+IFRoaXMgaXMgdGhlIGZvdW5kYXRpb24gY3JhdGUgd2l0aCBubyBpbnRl cm5hbCBkZXBlbmRlbmNpZXMsIG9ubHkKPiByZXF1aXJpbmcgdGhpc2Vycm9yIGFuZCBsaWJjLiBB bGwgb3RoZXIgY3JhdGVzIHdpbGwgZGVwZW5kIG9uIHRoZXNlCj4gc2hhcmVkIHR5cGUgZGVmaW5p dGlvbnMuCj4gCj4gU2lnbmVkLW9mZi1ieTogS2VmdSBDaGFpIDxrLmNoYWlAcHJveG1veC5jb20+ Cj4gLS0tCj4gICBzcmMvcG14Y2ZzLXJzL0NhcmdvLmxvY2sgICAgICAgICAgICAgICAgICB8IDIw NjcgKysrKysrKysrKysrKysrKysrKysrCgpGb2xsb3dpbmcgdGhlIC5naXRpZ25vcmUgcGF0dGVy biBpbiBvdXIgb3RoZXIgcmVwb3MsIENhcmdvLmxvY2sgaXMKaWdub3JlZCwgc28gSeKAmWQgc3Vn Z2VzdCBkcm9wcGluZyBpdCBmcm9tIHRoZSBzZXJpZXMuCgo+ICAgc3JjL3BteGNmcy1ycy9DYXJn by50b21sICAgICAgICAgICAgICAgICAgfCAgIDgzICsKPiAgIHNyYy9wbXhjZnMtcnMvcG14Y2Zz LWFwaS10eXBlcy9DYXJnby50b21sIHwgICAxOSArCj4gICBzcmMvcG14Y2ZzLXJzL3BteGNmcy1h cGktdHlwZXMvUkVBRE1FLm1kICB8ICAxMDUgKysKPiAgIHNyYy9wbXhjZnMtcnMvcG14Y2ZzLWFw aS10eXBlcy9zcmMvbGliLnJzIHwgIDE1MiArKwo+ICAgNSBmaWxlcyBjaGFuZ2VkLCAyNDI2IGlu c2VydGlvbnMoKykKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcG14Y2ZzLXJzL0NhcmdvLmxv Y2sKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcG14Y2ZzLXJzL0NhcmdvLnRvbWwKPiAgIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcG14Y2ZzLXJzL3BteGNmcy1hcGktdHlwZXMvQ2FyZ28udG9t bAo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbXhjZnMtcnMvcG14Y2ZzLWFwaS10eXBlcy9S RUFETUUubWQKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcG14Y2ZzLXJzL3BteGNmcy1hcGkt dHlwZXMvc3JjL2xpYi5ycwo+IAo+IGRpZmYgLS1naXQgYS9zcmMvcG14Y2ZzLXJzL0NhcmdvLmxv Y2sgYi9zcmMvcG14Y2ZzLXJzL0NhcmdvLmxvY2sKClsuLl0KCj4gKysrIGIvc3JjL3BteGNmcy1y cy9DYXJnby50b21sCj4gQEAgLTAsMCArMSw4MyBAQAo+ICsjIFdvcmtzcGFjZSByb290IGZvciBw bXhjZnMgUnVzdCBpbXBsZW1lbnRhdGlvbgo+ICtbd29ya3NwYWNlXQo+ICttZW1iZXJzID0gWwo+ ICsgICAgInBteGNmcy1hcGktdHlwZXMiLCAjIFNoYXJlZCB0eXBlcyBhbmQgZXJyb3IgZGVmaW5p dGlvbnMKPiArXQo+ICtyZXNvbHZlciA9ICIyIgo+ICsKPiArW3dvcmtzcGFjZS5wYWNrYWdlXQo+ ICt2ZXJzaW9uID0gIjkuMC42Igo+ICtlZGl0aW9uID0gIjIwMjQiCj4gK2F1dGhvcnMgPSBbIlBy b3htb3ggU3VwcG9ydCBUZWFtIDxzdXBwb3J0QHByb3htb3guY29tPiJdCj4gK2xpY2Vuc2UgPSAi QUdQTC0zLjAiCj4gK3JlcG9zaXRvcnkgPSAiaHR0cHM6Ly9naXQucHJveG1veC5jb20vP3A9cHZl LWNsdXN0ZXIuZ2l0Igo+ICtydXN0LXZlcnNpb24gPSAiMS44NSIKPiArCj4gK1t3b3Jrc3BhY2Uu ZGVwZW5kZW5jaWVzXQoKSGVyZSB3ZSBhbHJlYWR5IGRlY2xhcmUgd29ya3NwYWNlIHBhdGggZGVw cyBmb3IgY3JhdGVzIHRoYXQgYXJlbuKAmXQKcHJlc2VudCB5ZXQgKHBteGNmcy1jb25maWcsIHBt eGNmcy1tZW1kYiwgLi4uKS4gRm9yIGJpc2VjdGFiaWxpdHksCmNvdWxkIHdlIGtlZXAgdGhpcyBw YXRjaCBtaW5pbWFsIGFuZCBhZGQgdGhvc2Ugd29ya3NwYWNlCm1lbWJlcnMvcGF0aCBkZXBzIGlu IHRoZSBwYXRjaGVzIHdoZXJlIHRoZSBjcmF0ZXMgYXJlIGludHJvZHVjZWQ/Cgo+ICsjIEludGVy bmFsIHdvcmtzcGFjZSBkZXBlbmRlbmNpZXMKPiArcG14Y2ZzLWFwaS10eXBlcyA9IHsgcGF0aCA9 ICJwbXhjZnMtYXBpLXR5cGVzIiB9Cj4gK3BteGNmcy1jb25maWcgPSB7IHBhdGggPSAicG14Y2Zz LWNvbmZpZyIgfQo+ICtwbXhjZnMtbWVtZGIgPSB7IHBhdGggPSAicG14Y2ZzLW1lbWRiIiB9Cj4g K3BteGNmcy1kZnNtID0geyBwYXRoID0gInBteGNmcy1kZnNtIiB9Cj4gK3BteGNmcy1ycmQgPSB7 IHBhdGggPSAicG14Y2ZzLXJyZCIgfQo+ICtwbXhjZnMtc3RhdHVzID0geyBwYXRoID0gInBteGNm cy1zdGF0dXMiIH0KPiArcG14Y2ZzLWlwYyA9IHsgcGF0aCA9ICJwbXhjZnMtaXBjIiB9Cj4gK3Bt eGNmcy1zZXJ2aWNlcyA9IHsgcGF0aCA9ICJwbXhjZnMtc2VydmljZXMiIH0KPiArcG14Y2ZzLWxv Z2dlciA9IHsgcGF0aCA9ICJwbXhjZnMtbG9nZ2VyIiB9Cj4gKwo+ICsjIENvcmUgYXN5bmMgcnVu dGltZQo+ICt0b2tpbyA9IHsgdmVyc2lvbiA9ICIxLjM1IiwgZmVhdHVyZXMgPSBbImZ1bGwiXSB9 Cj4gK3Rva2lvLXV0aWwgPSAiMC43Igo+ICthc3luYy10cmFpdCA9ICIwLjEiCj4gKwoKSWYgdGhl IGdvYWwgaXMgdG8gY2VudHJhbGx5IHBpbiBleHRlcm5hbCBjcmF0ZSB2ZXJzaW9ucyBlYXJseSwg bWF5YmUKbGltaXQgW3dvcmtzcGFjZS5kZXBlbmRlbmNpZXNdIGhlcmUgZ2VuZXJhbGx5IHRvIHRo ZSBjcmF0ZXMgYWN0dWFsbHkKdXNlZCBieSBwbXhjZnMtYXBpLXR5cGVzICh0aGlzZXJyb3IsIGxp YmMpIGFuZCBleHRlbmQgYXMgbmV3IGNyYXRlcwphcmUgYWRkZWQuCgo+ICsjIEVycm9yIGhhbmRs aW5nCj4gK2FueWhvdyA9ICIxLjAiCj4gK3RoaXNlcnJvciA9ICIxLjAiCj4gKwo+ICsjIExvZ2dp bmcgYW5kIHRyYWNpbmcKPiArdHJhY2luZyA9ICIwLjEiCj4gK3RyYWNpbmctc3Vic2NyaWJlciA9 IHsgdmVyc2lvbiA9ICIwLjMiLCBmZWF0dXJlcyA9IFsiZW52LWZpbHRlciJdIH0KPiArCj4gKyMg U2VyaWFsaXphdGlvbgo+ICtzZXJkZSA9IHsgdmVyc2lvbiA9ICIxLjAiLCBmZWF0dXJlcyA9IFsi ZGVyaXZlIl0gfQo+ICtzZXJkZV9qc29uID0gIjEuMCIKPiArYmluY29kZSA9ICIxLjMiCj4gKwo+ ICsjIE5ldHdvcmsgYW5kIGNsdXN0ZXIKPiArYnl0ZXMgPSAiMS41Igo+ICtzaGEyID0gIjAuMTAi Cj4gK2J5dGVtdWNrID0geyB2ZXJzaW9uID0gIjEuMTQiLCBmZWF0dXJlcyA9IFsiZGVyaXZlIl0g fQo+ICsKPiArIyBTeXN0ZW0gaW50ZWdyYXRpb24KPiArbGliYyA9ICIwLjIiCj4gK25peCA9IHsg dmVyc2lvbiA9ICIwLjI3IiwgZmVhdHVyZXMgPSBbImZzIiwgInByb2Nlc3MiLCAic2lnbmFsIiwg InVzZXIiLCAic29ja2V0Il0gfQo+ICt1c2VycyA9ICIwLjExIgo+ICsKPiArIyBDb3Jvc3luYy9D UEcgYmluZGluZ3MKPiArcnVzdC1jb3Jvc3luYyA9ICIwLjEiCj4gKwo+ICsjIEVudW0gY29udmVy c2lvbnMKPiArbnVtX2VudW0gPSAiMC43Igo+ICsKPiArIyBDb25jdXJyZW5jeSBwcmltaXRpdmVz Cj4gK3BhcmtpbmdfbG90ID0gIjAuMTIiCj4gKwo+ICsjIFV0aWxpdGllcwo+ICtjaHJvbm8gPSAi MC40Igo+ICtmdXR1cmVzID0gIjAuMyIKPiArCj4gKyMgRGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVz Cj4gK3RlbXBmaWxlID0gIjMuOCIKPiArCj4gK1t3b3Jrc3BhY2UubGludHMuY2xpcHB5XQo+ICt1 bmlubGluZWRfZm9ybWF0X2FyZ3MgPSAid2FybiIKPiArCj4gK1twcm9maWxlLnJlbGVhc2VdCj4g K2x0byA9IHRydWUKPiArY29kZWdlbi11bml0cyA9IDEKPiArb3B0LWxldmVsID0gMwo+ICtzdHJp cCA9IHRydWUKPiArCj4gK1twcm9maWxlLmRldl0KPiArb3B0LWxldmVsID0gMQo+ICtkZWJ1ZyA9 IHRydWUKPiBkaWZmIC0tZ2l0IGEvc3JjL3BteGNmcy1ycy9wbXhjZnMtYXBpLXR5cGVzL0Nhcmdv LnRvbWwgYi9zcmMvcG14Y2ZzLXJzL3BteGNmcy1hcGktdHlwZXMvQ2FyZ28udG9tbAo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmNkY2U3OTUxCj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL3NyYy9wbXhjZnMtcnMvcG14Y2ZzLWFwaS10eXBlcy9DYXJnby50b21sCj4gQEAg LTAsMCArMSwxOSBAQAo+ICtbcGFja2FnZV0KPiArbmFtZSA9ICJwbXhjZnMtYXBpLXR5cGVzIgo+ ICtkZXNjcmlwdGlvbiA9ICJTaGFyZWQgdHlwZXMgYW5kIGVycm9yIGRlZmluaXRpb25zIGZvciBw bXhjZnMiCj4gKwo+ICt2ZXJzaW9uLndvcmtzcGFjZSA9IHRydWUKPiArZWRpdGlvbi53b3Jrc3Bh Y2UgPSB0cnVlCj4gK2F1dGhvcnMud29ya3NwYWNlID0gdHJ1ZQo+ICtsaWNlbnNlLndvcmtzcGFj ZSA9IHRydWUKPiArcmVwb3NpdG9yeS53b3Jrc3BhY2UgPSB0cnVlCj4gKwo+ICtbbGludHNdCj4g K3dvcmtzcGFjZSA9IHRydWUKPiArCj4gK1tkZXBlbmRlbmNpZXNdCj4gKyMgRXJyb3IgaGFuZGxp bmcKPiArdGhpc2Vycm9yLndvcmtzcGFjZSA9IHRydWUKPiArCj4gKyMgU3lzdGVtIGludGVncmF0 aW9uCj4gK2xpYmMud29ya3NwYWNlID0gdHJ1ZQo+IGRpZmYgLS1naXQgYS9zcmMvcG14Y2ZzLXJz L3BteGNmcy1hcGktdHlwZXMvUkVBRE1FLm1kIGIvc3JjL3BteGNmcy1ycy9wbXhjZnMtYXBpLXR5 cGVzL1JFQURNRS5tZAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmRh ODMwNGFlCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3NyYy9wbXhjZnMtcnMvcG14Y2ZzLWFwaS10 eXBlcy9SRUFETUUubWQKPiBAQCAtMCwwICsxLDEwNSBAQAo+ICsjIHBteGNmcy1hcGktdHlwZXMK PiArCj4gKyoqU2hhcmVkIFR5cGVzIGFuZCBFcnJvciBEZWZpbml0aW9ucyoqIGZvciBwbXhjZnMu Cj4gKwo+ICtUaGlzIGNyYXRlIHByb3ZpZGVzIGNvbW1vbiB0eXBlcywgZXJyb3IgZGVmaW5pdGlv bnMsIGFuZCBtZXNzYWdlIGZvcm1hdHMgdXNlZCBhY3Jvc3MgYWxsIHBteGNmcyBjcmF0ZXMuIEl0 IHNlcnZlcyBhcyB0aGUgIkFQSSBjb250cmFjdCIgYmV0d2VlbiBkaWZmZXJlbnQgY29tcG9uZW50 cy4KPiArCj4gKyMjIE92ZXJ2aWV3Cj4gKwo+ICtUaGUgY3JhdGUgY29udGFpbnM6Cj4gKy0gKipF cnJvciB0eXBlcyoqOiBgUG14Y2ZzRXJyb3JgIHdpdGggZXJybm8gbWFwcGluZyBmb3IgRlVTRQo+ ICstICoqTWVzc2FnZSB0eXBlcyoqOiBgRnVzZU1lc3NhZ2VgLCBgS3ZTdG9yZU1lc3NhZ2VgLCBg QXBwbGljYXRpb25NZXNzYWdlYAoKVGhlc2UgdHlwZXMgYW5kIHRoZSBtZW50aW9uZWQgc2VyaWFs aXphdGlvbiBoZWxwZXJzIGFyZW7igJl0IHBhcnQgb2YgdGhpcyAKZGlmZiwgY291bGQgeW91IHJl LWNoZWNrIGJvdGggUkVBRE1FLm1kIChhbmQgdGhlIGNvbW1pdCBtZXNzYWdlKSBzbyB0aGV5IApt YXRjaD8KCj4gKy0gKipTaGFyZWQgdHlwZXMqKjogYE1lbWJlckluZm9gLCBgTm9kZVN5bmNJbmZv YAo+ICstICoqU2VyaWFsaXphdGlvbioqOiBDLWNvbXBhdGlibGUgd2lyZSBmb3JtYXQgaGVscGVy cwo+ICsKPiArIyMgRXJyb3IgVHlwZXMKPiArCj4gKyMjIyBQbXhjZnNFcnJvcgo+ICsKPiArVHlw ZS1zYWZlIGVycm9yIGVudW0gd2l0aCBhdXRvbWF0aWMgZXJybm8gY29udmVyc2lvbi4KPiArCj4g KyMjIyBlcnJubyBNYXBwaW5nCj4gKwo+ICtFcnJvcnMgYXV0b21hdGljYWxseSBjb252ZXJ0IHRv IFBPU0lYIGVycm5vIHZhbHVlcyBmb3IgRlVTRS4KPiArCj4gK3wgRXJyb3IgfCBlcnJubyB8IFZh bHVlIHwKPiArfC0tLS0tLS18LS0tLS0tLXwtLS0tLS0tfAo+ICt8IGBOb3RGb3VuZGAgfCBgRU5P RU5UYCB8IDIgfAo+ICt8IGBQZXJtaXNzaW9uRGVuaWVkYCB8IGBFUEVSTWAgfCAxIHwKPiArfCBg QWxyZWFkeUV4aXN0c2AgfCBgRUVYSVNUYCB8IDE3IHwKPiArfCBgTm90QURpcmVjdG9yeWAgfCBg RU5PVERJUmAgfCAyMCB8Cj4gK3wgYElzQURpcmVjdG9yeWAgfCBgRUlTRElSYCB8IDIxIHwKPiAr fCBgRGlyZWN0b3J5Tm90RW1wdHlgIHwgYEVOT1RFTVBUWWAgfCAzOSB8Cj4gK3wgYEZpbGVUb29M YXJnZWAgfCBgRUZCSUdgIHwgMjcgfAo+ICt8IGBSZWFkT25seUZpbGVzeXN0ZW1gIHwgYEVST0ZT YCB8IDMwIHwKPiArfCBgTm9RdW9ydW1gIHwgYEVBQ0NFU2AgfCAxMyB8Cj4gK3wgYFRpbWVvdXRg IHwgYEVUSU1FRE9VVGAgfCAxMTAgfAo+ICsKPiArIyMgTWVzc2FnZSBUeXBlcwo+ICsKPiArIyMj IEZ1c2VNZXNzYWdlCj4gKwo+ICtGaWxlc3lzdGVtIG9wZXJhdGlvbnMgYnJvYWRjYXN0IHRocm91 Z2ggdGhlIGNsdXN0ZXIgKHZpYSBERlNNKS4gVXNlcyBDLWNvbXBhdGlibGUgd2lyZSBmb3JtYXQg Y29tcGF0aWJsZSB3aXRoIGBkY2RiLmNgLgo+ICsKPiArIyMjIEt2U3RvcmVNZXNzYWdlCj4gKwo+ ICtTdGF0dXMgYW5kIG1ldHJpY3Mgc3luY2hyb25pemF0aW9uICh2aWEga3ZzdG9yZSBERlNNKS4g VXNlcyBDLWNvbXBhdGlibGUgd2lyZSBmb3JtYXQuCj4gKwo+ICsjIyMgQXBwbGljYXRpb25NZXNz YWdlCj4gKwo+ICtXcmFwcGVyIGZvciBlaXRoZXIgRnVzZU1lc3NhZ2Ugb3IgS3ZTdG9yZU1lc3Nh Z2UsIHVzZWQgYnkgREZTTSB0byBoYW5kbGUgYm90aCBmaWxlc3lzdGVtIGFuZCBzdGF0dXMgbWVz c2FnZXMgd2l0aCB0eXBlIHNhZmV0eS4KPiArCj4gKyMjIFNoYXJlZCBUeXBlcwo+ICsKPiArIyMj IE1lbWJlckluZm8KPiArCj4gK0NsdXN0ZXIgbWVtYmVyIGluZm9ybWF0aW9uLgo+ICsKPiArIyMj IE5vZGVTeW5jSW5mbwo+ICsKPiArREZTTSBzeW5jaHJvbml6YXRpb24gc3RhdGUuCj4gKwo+ICsj IyBDIHRvIFJ1c3QgTWFwcGluZwo+ICsKPiArIyMjIEVycm9yIEhhbmRsaW5nCj4gKwo+ICsqKkMg VmVyc2lvbiAoY2ZzLXV0aWxzLmgpOioqCj4gKy0gUmV0dXJuIGNvZGVzOiBgMGAgPSBzdWNjZXNz LCBuZWdhdGl2ZSA9IGVycm9yCj4gKy0gZXJybm8tYmFzZWQgZXJyb3IgcmVwb3J0aW5nCj4gKy0g TWFudWFsIGVycm9yIGNoZWNraW5nIGV2ZXJ5d2hlcmUKPiArCj4gKyoqUnVzdCBWZXJzaW9uOioq Cj4gKy0gYFJlc3VsdDxULCBQbXhjZnNFcnJvcj5gIHR5cGUKPiArCj4gKyMjIyBNZXNzYWdlIFR5 cGVzCj4gKwo+ICsqKkMgVmVyc2lvbiAoZGNkYi5oKToqKgo+ICsKPiArKipSdXN0IFZlcnNpb246 KioKPiArLSBUeXBlLXNhZmUgZW51bXMKPiArCj4gKyMjIEtleSBEaWZmZXJlbmNlcyBmcm9tIEMg SW1wbGVtZW50YXRpb24KPiArCj4gK0FsbCBtZXNzYWdlIHR5cGVzIGhhdmUgYHNlcmlhbGl6ZSgp YCBhbmQgYGRlc2VyaWFsaXplKClgIG1ldGhvZHMgdGhhdCBwcm9kdWNlIGJ5dGUtZm9yLWJ5dGUg Y29tcGF0aWJsZSBmb3JtYXRzIHdpdGggdGhlIEMgaW1wbGVtZW50YXRpb24uCj4gKwo+ICsjIyBL bm93biBJc3N1ZXMgLyBUT0RPcwo+ICsKPiArIyMjIE1pc3NpbmcgRmVhdHVyZXMKPiArLSBOb25l IGlkZW50aWZpZWQKPiArCj4gKyMjIyBDb21wYXRpYmlsaXR5Cj4gKy0gKipXaXJlIGZvcm1hdCoq OiAxMDAlIGNvbXBhdGlibGUgd2l0aCBDIGltcGxlbWVudGF0aW9uCj4gKy0gKiplcnJubyB2YWx1 ZXMqKjogTWF0Y2ggUE9TSVggc3RhbmRhcmRzCj4gKy0gKipNZXNzYWdlIHR5cGVzKio6IEFsbCBD IG1lc3NhZ2UgdHlwZXMgY292ZXJlZAo+ICsKPiArIyMgUmVmZXJlbmNlcwo+ICsKPiArIyMjIEMg SW1wbGVtZW50YXRpb24KPiArLSBgc3JjL3BteGNmcy9jZnMtdXRpbHMuaGAgLSBVdGlsaXR5IHR5 cGVzIGFuZCBlcnJvciBjb2Rlcwo+ICstIGBzcmMvcG14Y2ZzL2RjZGIuaGAgLSBGVVNFIG1lc3Nh Z2UgdHlwZXMKPiArLSBgc3JjL3BteGNmcy9zdGF0dXMuaGAgLSBLdlN0b3JlIG1lc3NhZ2UgdHlw ZXMKPiArCj4gKyMjIyBSZWxhdGVkIENyYXRlcwo+ICstICoqcG14Y2ZzLWRmc20qKjogVXNlcyBB cHBsaWNhdGlvbk1lc3NhZ2UgZm9yIGNsdXN0ZXIgc3luYwo+ICstICoqcG14Y2ZzLW1lbWRiKio6 IFVzZXMgUG14Y2ZzRXJyb3IgZm9yIGRhdGFiYXNlIG9wZXJhdGlvbnMKPiArLSAqKnBteGNmcyoq OiBVc2VzIEZ1c2VNZXNzYWdlIGZvciBGVVNFIG9wZXJhdGlvbnMKPiBkaWZmIC0tZ2l0IGEvc3Jj L3BteGNmcy1ycy9wbXhjZnMtYXBpLXR5cGVzL3NyYy9saWIucnMgYi9zcmMvcG14Y2ZzLXJzL3Bt eGNmcy1hcGktdHlwZXMvc3JjL2xpYi5ycwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg MDAwMDAwMDAuLmFlMGU1ZWIwCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3NyYy9wbXhjZnMtcnMv cG14Y2ZzLWFwaS10eXBlcy9zcmMvbGliLnJzCj4gQEAgLTAsMCArMSwxNTIgQEAKPiArdXNlIHRo aXNlcnJvcjo6RXJyb3I7Cj4gKwo+ICsvLy8gRXJyb3IgdHlwZXMgZm9yIHBteGNmcyBvcGVyYXRp b25zCj4gKyNbZGVyaXZlKEVycm9yLCBEZWJ1ZyldCj4gK3B1YiBlbnVtIFBteGNmc0Vycm9yIHsK Cm5pdDogdGhlIGVycm9yIHJlbGF0ZWQgcGFydHMgY291bGQgYmUgYWRkZWQgaW50byBhIGRlZGlj YXRlZCBlcnJvci5ycwptb2R1bGUKCj4gKyAgICAjW2Vycm9yKCJJL08gZXJyb3I6IHswfSIpXQo+ ICsgICAgSW8oI1tmcm9tXSBzdGQ6OmlvOjpFcnJvciksCj4gKwo+ICsgICAgI1tlcnJvcigiRGF0 YWJhc2UgZXJyb3I6IHswfSIpXQo+ICsgICAgRGF0YWJhc2UoU3RyaW5nKSwKPiArCj4gKyAgICAj W2Vycm9yKCJGVVNFIGVycm9yOiB7MH0iKV0KPiArICAgIEZ1c2UoU3RyaW5nKSwKPiArCj4gKyAg ICAjW2Vycm9yKCJDbHVzdGVyIGVycm9yOiB7MH0iKV0KPiArICAgIENsdXN0ZXIoU3RyaW5nKSwK PiArCj4gKyAgICAjW2Vycm9yKCJDb3Jvc3luYyBlcnJvcjogezB9IildCj4gKyAgICBDb3Jvc3lu YyhTdHJpbmcpLAo+ICsKPiArICAgICNbZXJyb3IoIkNvbmZpZ3VyYXRpb24gZXJyb3I6IHswfSIp XQo+ICsgICAgQ29uZmlndXJhdGlvbihTdHJpbmcpLAo+ICsKPiArICAgICNbZXJyb3IoIlN5c3Rl bSBlcnJvcjogezB9IildCj4gKyAgICBTeXN0ZW0oU3RyaW5nKSwKPiArCj4gKyAgICAjW2Vycm9y KCJJUEMgZXJyb3I6IHswfSIpXQo+ICsgICAgSXBjKFN0cmluZyksCj4gKwo+ICsgICAgI1tlcnJv cigiUGVybWlzc2lvbiBkZW5pZWQiKV0KPiArICAgIFBlcm1pc3Npb25EZW5pZWQsCj4gKwo+ICsg ICAgI1tlcnJvcigiTm90IGZvdW5kOiB7MH0iKV0KPiArICAgIE5vdEZvdW5kKFN0cmluZyksCj4g Kwo+ICsgICAgI1tlcnJvcigiQWxyZWFkeSBleGlzdHM6IHswfSIpXQo+ICsgICAgQWxyZWFkeUV4 aXN0cyhTdHJpbmcpLAo+ICsKPiArICAgICNbZXJyb3IoIkludmFsaWQgYXJndW1lbnQ6IHswfSIp XQo+ICsgICAgSW52YWxpZEFyZ3VtZW50KFN0cmluZyksCj4gKwo+ICsgICAgI1tlcnJvcigiTm90 IGEgZGlyZWN0b3J5OiB7MH0iKV0KPiArICAgIE5vdEFEaXJlY3RvcnkoU3RyaW5nKSwKPiArCj4g KyAgICAjW2Vycm9yKCJJcyBhIGRpcmVjdG9yeTogezB9IildCj4gKyAgICBJc0FEaXJlY3Rvcnko U3RyaW5nKSwKPiArCj4gKyAgICAjW2Vycm9yKCJEaXJlY3Rvcnkgbm90IGVtcHR5OiB7MH0iKV0K PiArICAgIERpcmVjdG9yeU5vdEVtcHR5KFN0cmluZyksCj4gKwo+ICsgICAgI1tlcnJvcigiTm8g cXVvcnVtIildCj4gKyAgICBOb1F1b3J1bSwKPiArCj4gKyAgICAjW2Vycm9yKCJSZWFkLW9ubHkg ZmlsZXN5c3RlbSIpXQo+ICsgICAgUmVhZE9ubHlGaWxlc3lzdGVtLAo+ICsKPiArICAgICNbZXJy b3IoIkZpbGUgdG9vIGxhcmdlIildCj4gKyAgICBGaWxlVG9vTGFyZ2UsCj4gKwo+ICsgICAgI1tl cnJvcigiTG9jayBlcnJvcjogezB9IildCj4gKyAgICBMb2NrKFN0cmluZyksCj4gKwo+ICsgICAg I1tlcnJvcigiVGltZW91dCIpXQo+ICsgICAgVGltZW91dCwKPiArCj4gKyAgICAjW2Vycm9yKCJJ bnZhbGlkIHBhdGg6IHswfSIpXQo+ICsgICAgSW52YWxpZFBhdGgoU3RyaW5nKSwKPiArfQo+ICsK PiAraW1wbCBQbXhjZnNFcnJvciB7Cj4gKyAgICAvLy8gQ29udmVydCBlcnJvciB0byBlcnJubyB2 YWx1ZSBmb3IgRlVTRSBvcGVyYXRpb25zCj4gKyAgICBwdWIgZm4gdG9fZXJybm8oJnNlbGYpIC0+ IGkzMiB7Cj4gKyAgICAgICAgbWF0Y2ggc2VsZiB7Cj4gKyAgICAgICAgICAgIFBteGNmc0Vycm9y OjpOb3RGb3VuZChfKSA9PiBsaWJjOjpFTk9FTlQsCj4gKyAgICAgICAgICAgIFBteGNmc0Vycm9y OjpQZXJtaXNzaW9uRGVuaWVkID0+IGxpYmM6OkVQRVJNLAo+ICsgICAgICAgICAgICBQbXhjZnNF cnJvcjo6QWxyZWFkeUV4aXN0cyhfKSA9PiBsaWJjOjpFRVhJU1QsCj4gKyAgICAgICAgICAgIFBt eGNmc0Vycm9yOjpOb3RBRGlyZWN0b3J5KF8pID0+IGxpYmM6OkVOT1RESVIsCj4gKyAgICAgICAg ICAgIFBteGNmc0Vycm9yOjpJc0FEaXJlY3RvcnkoXykgPT4gbGliYzo6RUlTRElSLAo+ICsgICAg ICAgICAgICBQbXhjZnNFcnJvcjo6RGlyZWN0b3J5Tm90RW1wdHkoXykgPT4gbGliYzo6RU5PVEVN UFRZLAo+ICsgICAgICAgICAgICBQbXhjZnNFcnJvcjo6SW52YWxpZEFyZ3VtZW50KF8pID0+IGxp YmM6OkVJTlZBTCwKPiArICAgICAgICAgICAgUG14Y2ZzRXJyb3I6OkZpbGVUb29MYXJnZSA9PiBs aWJjOjpFRkJJRywKPiArICAgICAgICAgICAgUG14Y2ZzRXJyb3I6OlJlYWRPbmx5RmlsZXN5c3Rl bSA9PiBsaWJjOjpFUk9GUywKPiArICAgICAgICAgICAgUG14Y2ZzRXJyb3I6Ok5vUXVvcnVtID0+ IGxpYmM6OkVBQ0NFUywKPiArICAgICAgICAgICAgUG14Y2ZzRXJyb3I6OlRpbWVvdXQgPT4gbGli Yzo6RVRJTUVET1VULAo+ICsgICAgICAgICAgICBQbXhjZnNFcnJvcjo6SW8oZSkgPT4gbWF0Y2gg ZS5yYXdfb3NfZXJyb3IoKSB7Cj4gKyAgICAgICAgICAgICAgICBTb21lKGVycm5vKSA9PiBlcnJu bywKPiArICAgICAgICAgICAgICAgIE5vbmUgPT4gbGliYzo6RUlPLAo+ICsgICAgICAgICAgICB9 LAo+ICsgICAgICAgICAgICBfID0+IGxpYmM6OkVJTywKClBsZWFzZSBjaGVjayB3aXRoIEMgaW1w bGVtZW50YXRpb24sIGJ1dDoKCiJQZXJtaXNzaW9uRGVuaWVkIiBzaG91bGQgbGlrZWx5IG1hcCB0 byBFQUNDRVMgcmF0aGVyIHRoYW4gRVBFUk0uIEluCkZVU0UvUE9TSVgsIEVBQ0NFUyBpcyB0aGUg c3RhbmRhcmQgcmV0dXJuIGZvciBmaWxlIHBlcm1pc3Npb24gYmxvY2tzLAp3aGVyZWFzIEVQRVJN IGlzIHVzdWFsbHkgZm9yIGFkbWluaXN0cmF0aXZlIHJlc3RyaWN0aW9ucwoobGlrZSBvd25lcnNo aXApCgoiSW52YWxpZFBhdGgiIG1hcHMgYmV0dGVyIHRvIEVJTlZBTC4gRUlPIHN1Z2dlc3RzIGEg aGFyZHdhcmUvZGlzawpmYWlsdXJlLCB3aGVyZWFzIEludmFsaWRQYXRoIGltcGxpZXMgYW4gYXJn dW1lbnQgaXNzdWUKCkFsc28sICJMb2NrIiBzaG91bGQgZXhwbGljaXRseSBiZSBtYXBwZWQuCkVC VVNZIChyZXNvdXJjZSBidXN5IC8gbG9jayBjb250ZW50aW9uKQpvciBFREVBRExLIChkZWFkbG9j aykgLyBFQUdBSU4gZGVwZW5kaW5nIG9uIHNlbWFudGljcwoKSW4gZ2VuZXJhbCwgY2FuIHdlIG1p bmltaXplIHRoZSBudW1iZXIgb2YgZXJyb3JzIGZhbGxpbmcgaW50byB0aGUKZ2VuZXJpYyBFSU8g YnJhbmNoPwoKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gK30KPiArCj4gKy8vLyBSZXN1bHQgdHlw ZSBmb3IgcG14Y2ZzIG9wZXJhdGlvbnMKPiArcHViIHR5cGUgUmVzdWx0PFQ+ID0gc3RkOjpyZXN1 bHQ6OlJlc3VsdDxULCBQbXhjZnNFcnJvcj47Cj4gKwo+ICsvLy8gVk0vQ1QgdHlwZXMKPiArI1tk ZXJpdmUoRGVidWcsIENsb25lLCBDb3B5LCBQYXJ0aWFsRXEsIEVxKV0KCklmIHRoaXMgaXMgdXNl ZCBpbiB3aXJlIGNvbnRleHRzIHBsZWFzZSBhZGQgI1tyZXByKHU4KV0gdG8gZW5zdXJlIGEKc3Rh YmxlIEFCSS4KCj4gK3B1YiBlbnVtIFZtVHlwZSB7Cj4gKyAgICBRZW11ID0gMSwKPiArICAgIEx4 YyA9IDMsCgpUaGVyZeKAmXMgYSBnYXAgYmV0d2VlbiB2YWx1ZXMgMSAtPiAzOiBpcyAyIHJlc2Vy dmVkPwpJZiBzbywgbWF5YmUgYWRkIGEgc2hvcnQgY29tbWVudC4KCj4gK30KPiArCj4gK2ltcGwg Vm1UeXBlIHsKPiArICAgIC8vLyBSZXR1cm5zIHRoZSBkaXJlY3RvcnkgbmFtZSB3aGVyZSBjb25m aWcgZmlsZXMgYXJlIHN0b3JlZAo+ICsgICAgcHViIGZuIGNvbmZpZ19kaXIoJnNlbGYpIC0+ICYn c3RhdGljIHN0ciB7Cj4gKyAgICAgICAgbWF0Y2ggc2VsZiB7Cj4gKyAgICAgICAgICAgIFZtVHlw ZTo6UWVtdSA9PiAicWVtdS1zZXJ2ZXIiLAo+ICsgICAgICAgICAgICBWbVR5cGU6Okx4YyA9PiAi bHhjIiwKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gK30KPiArCj4gK2ltcGwgc3RkOjpmbXQ6OkRp c3BsYXkgZm9yIFZtVHlwZSB7Cj4gKyAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgc3RkOjpmbXQ6 OkZvcm1hdHRlcjwnXz4pIC0+IHN0ZDo6Zm10OjpSZXN1bHQgewo+ICsgICAgICAgIG1hdGNoIHNl bGYgewo+ICsgICAgICAgICAgICBWbVR5cGU6OlFlbXUgPT4gd3JpdGUhKGYsICJxZW11IiksCj4g KyAgICAgICAgICAgIFZtVHlwZTo6THhjID0+IHdyaXRlIShmLCAibHhjIiksCj4gKyAgICAgICAg fQo+ICsgICAgfQo+ICt9Cj4gKwo+ICsvLy8gVk0vQ1QgZW50cnkgZm9yIHZtbGlzdAo+ICsjW2Rl cml2ZShEZWJ1ZywgQ2xvbmUpXQo+ICtwdWIgc3RydWN0IFZtRW50cnkgewo+ICsgICAgcHViIHZt aWQ6IHUzMiwKPiArICAgIHB1YiB2bXR5cGU6IFZtVHlwZSwKPiArICAgIHB1YiBub2RlOiBTdHJp bmcsCj4gKyAgICAvLy8gUGVyLVZNIHZlcnNpb24gY291bnRlciAoaW5jcmVtZW50cyB3aGVuIHRo aXMgVk0ncyBjb25maWcgY2hhbmdlcykKPiArICAgIHB1YiB2ZXJzaW9uOiB1MzIsCj4gK30KPiAr Cj4gKy8vLyBJbmZvcm1hdGlvbiBhYm91dCBhIGNsdXN0ZXIgbWVtYmVyCj4gKy8vLwo+ICsvLy8g VGhpcyBpcyBhIHNoYXJlZCB0eXBlIHVzZWQgYnkgYm90aCBjbHVzdGVyIGFuZCBERlNNIG1vZHVs ZXMKPiArI1tkZXJpdmUoRGVidWcsIENsb25lKV0KPiArcHViIHN0cnVjdCBNZW1iZXJJbmZvIHsK PiArICAgIHB1YiBub2RlX2lkOiB1MzIsCj4gKyAgICBwdWIgcGlkOiB1MzIsCj4gKyAgICBwdWIg am9pbmVkX2F0OiB1NjQsCj4gK30KPiArCj4gKy8vLyBOb2RlIHN5bmNocm9uaXphdGlvbiBpbmZv IGZvciBERlNNIHN0YXRlIHN5bmMKPiArLy8vCj4gKy8vLyBVc2VkIGR1cmluZyBERlNNIHN5bmNo cm9uaXphdGlvbiB0byB0cmFjayB3aGljaCBub2RlcyBoYXZlIHByb3ZpZGVkIHN0YXRlCj4gKyNb ZGVyaXZlKERlYnVnLCBDbG9uZSldCj4gK3B1YiBzdHJ1Y3QgTm9kZVN5bmNJbmZvIHsKPiArICAg IHB1YiBub2RlaWQ6IHUzMiwKCldlIGhhdmUgIm5vZGVpZCIgaGVyZSBidXQgIm5vZGVfaWQiIGlu IE1lbWJlckluZm8sIHRoaXMgc2hvdWxkIGJlCmFsaWduZWQuCgo+ICsgICAgcHViIHBpZDogdTMy LAo+ICsgICAgcHViIHN0YXRlOiBPcHRpb248VmVjPHU4Pj4sCj4gKyAgICBwdWIgc3luY2VkOiBi b29sLAo+ICt9CgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0 dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZl bAo=