From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=F9V0Zzzs; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by passt.top (Postfix) with ESMTPS id E2C935A0265 for ; Tue, 26 May 2026 09:31:57 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1779780716; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=wQiJlCRN2nzOhS2DxZCWlL0KUllDXjPShJJU8y9KU7s=; b=F9V0ZzzsAPP/dezMlgSr1zJ0a1h1htXvLnL86bsh7jp5F3nn6hTWPjccvRs/f93e3PetpS dbET5hx9p1xZ0rBO3qfQrOjyEACFPXS4Zb5JK94iQZko3aHG7enpcDFDOAUkrhvOGRkyvh AEdRbuVWJ8qRCB5/zwwq87mF1Qklhp8= Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-422-XxMKJkxzM0CT8pIU-hlgew-1; Tue, 26 May 2026 03:31:54 -0400 X-MC-Unique: XxMKJkxzM0CT8pIU-hlgew-1 X-Mimecast-MFC-AGG-ID: XxMKJkxzM0CT8pIU-hlgew_1779780714 Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-45e78dd7baaso8275190f8f.0 for ; Tue, 26 May 2026 00:31:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779780713; x=1780385513; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=wQiJlCRN2nzOhS2DxZCWlL0KUllDXjPShJJU8y9KU7s=; b=A4j6TsPFgFntXl29TAj1tI8KTSYCCj2qtQ2c6F4LXmCITj2Nk3oCqvGGoAo6MJIoL4 o2q65AzxrIK24CI9EL0w3inzkXn2UBckZqtFOCHQGaNISViMENlknQV1/UUXGtvpDC/y QpLJbLy8nOhkmOUPqwKVwyZkUI5XGo6O9VlvMWFkw65S9kjbH72tGNeHYeFvhA07WN1/ RRvJ2FhvPHow9xCybINaYO/+r3ksLxa//N298hmTZBADu9KoNkDqkWpabzhRZVz7oxFY zAeYzQ+SBc0VGYR6M9vCCARul/3DQ6xULsg6VljFQPAi7s8JIkarexDTS06r8BEsBRSr Q7ww== X-Gm-Message-State: AOJu0YyDMT05hx5Qk5x6f9zNKzP+k2FwEQyHh/c7/SwG9Z17eRB4HNll wiY/XYY4pylipSwJoHIdR+vjeqnooJjwp/SkhzQ602MWVsyPYYXcBb/EZOTnh8t86FK6fJfJkuO lYYR1sp6ka7oxKVP79byd1EyK38QMX4ti+IFi5B+qQSHm7q+A6YWpe/GEvoEkPw== X-Gm-Gg: Acq92OG6EAAFs9Dg6hDp0nH8OKIMqoeXTZmrBXKxmR0WoF6ScW4cZ/JYrqJDZ8QDrXa gU7pdMsLg59H4FPnCiDNpI1Q41N0xhDTntmDaXsZXNmzk+MJkz7hFC0OBHTLuBf03IgyxOaKEVj gDgb9rtWGU3qZXE454yNkCiRVVj4QNzStItgpm9CDEeCLyizruRpmH0vdnnaqzc6so2vDad20v0 lUHFRoW4Mc1u1pt+l4nSgmiObUlzlt7xSxOOrBc5TBJpSVwlwP/ATxufcGGvsxDsOn3BXPaHn2L OrHb2KVFoAA/t+n8uLCqvU4mJstYfcNJ9q6p8AzY9UkqTy7z8jX6sV0o67crMx+xii6xAm3uaYU 79ALaVGpn+2Iy3cU9O2JHymJ3Kgu0wyNABSHpsQXUPtEQqEz5aoLB8rQ= X-Received: by 2002:a05:6000:2913:b0:44f:f454:8a4d with SMTP id ffacd0b85a97d-45eb38af4c4mr31806911f8f.23.1779780713468; Tue, 26 May 2026 00:31:53 -0700 (PDT) X-Received: by 2002:a05:6000:2913:b0:44f:f454:8a4d with SMTP id ffacd0b85a97d-45eb38af4c4mr31806848f8f.23.1779780712950; Tue, 26 May 2026 00:31:52 -0700 (PDT) Received: from [192.168.100.100] (82-64-211-94.subs.proxad.net. [82.64.211.94]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45eb6d5e484sm31992645f8f.30.2026.05.26.00.31.51 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 26 May 2026 00:31:52 -0700 (PDT) Message-ID: Date: Tue, 26 May 2026 09:31:51 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 00/10] vhost-user: Preparatory series for multiple iovec entries per virtqueue element To: Stefano Brivio References: <20260513115218.1662850-1-lvivier@redhat.com> <20260520173445.0658dfef@elisabeth> <20260520180708.275ec4de@elisabeth> <20260520181852.1f0119ff@elisabeth> <20260520225340.54490a21@elisabeth> <50d79312-0493-4af0-b0bc-7c590885cbd2@redhat.com> <20260522062239.4fcd3314@elisabeth> <20260522074455.15e6cc3e@elisabeth> <20260522140414.6eaa8f43@elisabeth> From: Laurent Vivier Autocrypt: addr=lvivier@redhat.com; keydata= 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 In-Reply-To: <20260522140414.6eaa8f43@elisabeth> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 44UM2C0g-LEjfv8-5qlenhExCK7ULvBl9PImLU4bGK0_1779780714 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: SIC23LVUCNZM6DDTI7BZHX2EOUZ3YH5B X-Message-ID-Hash: SIC23LVUCNZM6DDTI7BZHX2EOUZ3YH5B X-MailFrom: lvivier@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: passt-dev@passt.top, Jon Maloy , David GIbson X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gNS8yMi8yNiAxNDowNCwgU3RlZmFubyBCcml2aW8gd3JvdGU6DQo+IE9uIEZyaSwgMjIgTWF5 IDIwMjYgMDc6NDQ6NTUgKzAyMDANCj4gU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNv bT4gd3JvdGU6DQo+IA0KPj4gT24gRnJpLCAyMiBNYXkgMjAyNiAwNjoyMjozOSArMDIwMA0KPj4g U3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4gd3JvdGU6DQo+Pg0KPj4+IE9uIEZy aSwgMjIgTWF5IDIwMjYgMDE6MTM6MzMgKzAyMDANCj4+PiBMYXVyZW50IFZpdmllciA8bHZpdmll ckByZWRoYXQuY29tPiB3cm90ZToNCj4+PiAgICANCj4+Pj4gT24gNS8yMS8yNiAxMDozMCwgTGF1 cmVudCBWaXZpZXIgd3JvdGU6DQo+Pj4+PiBPbiA1LzIwLzI2IDIyOjUzLCBTdGVmYW5vIEJyaXZp byB3cm90ZToNCj4+Pj4+PiBPbiBXZWQsIDIwIE1heSAyMDI2IDE4OjE4OjUyICswMjAwDQo+Pj4+ Pj4gU3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4gd3JvdGU6DQo+Pj4+Pj4gICAg ICAgDQo+Pj4+Pj4+IE9uIFdlZCwgMjAgTWF5IDIwMjYgMTg6MDc6MDggKzAyMDANCj4+Pj4+Pj4g U3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4gd3JvdGU6DQo+Pj4+Pj4+ICAgICAg IA0KPj4+Pj4+Pj4gT24gV2VkLCAyMCBNYXkgMjAyNiAxNzozNDo0NSArMDIwMA0KPj4+Pj4+Pj4g U3RlZmFubyBCcml2aW8gPHNicml2aW9AcmVkaGF0LmNvbT4gd3JvdGU6DQo+Pj4+Pj4+Pj4gT24g V2VkLCAxMyBNYXkgMjAyNiAxMzo1MjowOCArMDIwMA0KPj4+Pj4+Pj4+IExhdXJlbnQgVml2aWVy IDxsdml2aWVyQHJlZGhhdC5jb20+IHdyb3RlOg0KPj4+Pj4+Pj4+PiBDdXJyZW50bHksIHRoZSB2 aG9zdC11c2VyIHBhdGggYXNzdW1lcyBlYWNoIHZpcnRxdWV1ZSBlbGVtZW50IGNvbnRhaW5zDQo+ Pj4+Pj4+Pj4+IGV4YWN0bHkgb25lIGlvdmVjIGVudHJ5IGNvdmVyaW5nIHRoZSBlbnRpcmUgZnJh bWUuwqAgVGhpcyBhc3N1bXB0aW9uDQo+Pj4+Pj4+Pj4+IGJyZWFrcyBhcyBzb21lIHZpcnRpby1u ZXQgZHJpdmVycyAobm90YWJseSBpUFhFKSBwcm92aWRlIGRlc2NyaXB0b3JzIHdoZXJlIHRoZQ0K Pj4+Pj4+Pj4+PiB2bmV0IGhlYWRlciBhbmQgdGhlIGZyYW1lIHBheWxvYWQgYXJlIGluIHNlcGFy YXRlIGJ1ZmZlcnMsIHJlc3VsdGluZyBpbg0KPj4+Pj4+Pj4+PiB0d28gaW92ZWMgZW50cmllcyBw ZXIgdmlydHF1ZXVlIGVsZW1lbnQuDQo+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+IFRoaXMgc2VyaWVz IHJlZmFjdG9ycyB0aGUgdmhvc3QtdXNlciBkYXRhIHBhdGggc28gdGhhdCBmcmFtZSBsZW5ndGhz LA0KPj4+Pj4+Pj4+PiBoZWFkZXIgc2l6ZXMsIGFuZCBwYWRkaW5nIGFyZSB0cmFja2VkIGFuZCBw YXNzZWQgZXhwbGljaXRseSByYXRoZXIgdGhhbg0KPj4+Pj4+Pj4+PiBiZWluZyBkZXJpdmVkIGZy b20gaW92ZWMgc2l6ZXMuwqAgVGhpcyBkZWNvdXBsaW5nIGlzIGEgcHJlcmVxdWlzaXRlIGZvcg0K Pj4+Pj4+Pj4+PiBjb3JyZWN0bHkgaGFuZGxpbmcgcGFkZGluZyBvZiBtdWx0aS1idWZmZXIgZnJh bWVzLg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gU29ycnkgdG8gYnJpbmcgKGxpa2VseSkgYmFkIG5l d3MsIGJ1dCB0aGlzIHNlcmllcyBzZWVtcyB0byBpbnRyb2R1Y2UgYQ0KPj4+Pj4+Pj4+IHJlZ3Jl c3Npb246IEkgZ290IHRoZSBtaWdyYXRpb24vcmFtcHN0cmVhbV9pbiB0ZXN0cyBmYWlsIHR3aWNl IGluIGENCj4+Pj4+Pj4+PiByb3csIHdoaWNoIEkndmUgbmV2ZXIgc2F3IGhhcHBlbmluZyAoSSB0 aGluayBJIHNhdyBhIHNpbmdsZSBmYWlsdXJlIGENCj4+Pj4+Pj4+PiBsb25nIHRpbWUgYWdvIHdo ZW4gdGhlIG1hY2hpbmUgaGFkIGEgaGlnaCBDUFUgbG9hZCwgYnV0IG5vdGhpbmcgZWxzZSkuDQo+ Pj4+Pj4+Pj4NCj4+Pj4+Pj4+PiBJJ20gY3VycmVudGx5IGJpc2VjdGluZyBhbmQgdGhlIGJpc2Vj dCBzZWVtcyB0byBwb2ludCB0b3dhcmRzIHRoZSBlbmQNCj4+Pj4+Pj4+PiBvZiB0aGUgc2VyaWVz IChwcm9iYWJseSAxMC8xMCksIGJ1dCBJIGhhdmVuJ3QgZmluaXNoZWQgeWV0LiBJJ2xsIGtlZXAN Cj4+Pj4+Pj4+PiB5b3UgcG9zdGVkLiBJIGhhdmVuJ3Qgc3BvdHRlZCBhbnl0aGluZyB0aGF0IG1p Z2h0IGNhdXNlIGlzc3VlcyB0aGVyZS4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBZZWFoLCB0aGF0J3Mg dGhlIG9uZSA6KA0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+ICQgZ2l0IGJpc2VjdCBiYWQNCj4+Pj4+Pj4+ IGRiNzk4ZmM2MGY0YzU4NjljYjUzMTY4MzU0ZTA2OGZiNGRhYmQ5MWEgaXMgdGhlIGZpcnN0IGJh ZCBjb21taXQNCj4+Pj4+Pj4+IGNvbW1pdCBkYjc5OGZjNjBmNGM1ODY5Y2I1MzE2ODM1NGUwNjhm YjRkYWJkOTFhDQo+Pj4+Pj4+PiBBdXRob3I6IExhdXJlbnQgVml2aWVyIDxsdml2aWVyQHJlZGhh dC5jb20+DQo+Pj4+Pj4+PiBEYXRlOsKgwqAgV2VkIE1heSAxMyAxMzo1MjoxOCAyMDI2ICswMjAw DQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gIMKgwqDCoMKgIHZob3N0LXVzZXI6IENlbnRyYWxpc2UgRXRo ZXJuZXQgZnJhbWUgcGFkZGluZyBpbiB2dV9jb2xsZWN0KCkgYW5kIHZ1X3BhZCgpDQo+Pj4+Pg0K Pj4+Pj4gSSBjaGVja2VkIG9uIG15IHN5c3RlbSB3aXRoIHRoZSBjb21taXQgcHJldmlvdXMgdG8g dGhpcyBzZXJpZXMsDQo+Pj4+PiBiY2MzZDM3YTZlMDEgKCJ1dGlsOiBGaXggY2hhbmdlcyB0byBh c3NlcnRfd2l0aF9tc2coKSIpIGFuZCByYW1wc3RyZWFtX2luIGZhaWxzIHRvbyAobm90DQo+Pj4+ PiBldmVyeXRpbWUpLg0KPj4+Pj4gICAgICAgIA0KPj4+Pj4gICA+IFRDUC9JUHY0OiBzZXF1ZW5j ZSBjaGVjaywgcmFtcHMsIGluYm91bmQNCj4+Pj4+IC4uLmZhaWxlZC4NCj4+Pj4+DQo+Pj4+PiBh bmQgcmFtcHN0cmVhbV9vdXQgaGFuZ3Mgc29tZXRpbWUgdG9vLg0KPj4+Pj4NCj4+Pj4+IEknbSBn b2luZyB0byB0cnkgd2l0aCBlYWxpZXIgY29tbWl0cy4NCj4+Pj4NCj4+Pj4gRm9yIG1lIHRoZSBw cm9ibGVtIGNhbiBoYXBwZW4gd2l0aCBhbnkgY29tbWl0Li4uDQo+Pj4+DQo+Pj4+IEFzIGl0IGRl cGVuZHMgb24gdGhlIGV4ZWN1dGlvbiBwYXRoIGFuZCBvbiB0aGUgbG9hZCBhbmQgc3BlZWQgb2Yg dGhlIHN5c3RlbSBpdCBsb29rcyBsaWtlDQo+Pj4+IGEgcmFjZSBjb25kaXRpb24uDQo+Pj4NCj4+ PiBIYWgsIHRoYW5rcyBmb3IgY2hlY2tpbmcuIE1heWJlLi4uDQo+Pj4gICAgDQo+Pj4+IERpZCB5 b3UgdHJ5IHRvIHRlc3Qgb24gYSBob3N0IHdpdGggYSBrZXJuZWwgcGF0Y2hlZCB3aXRoDQo+Pj4+ ICJbUEFUQ0ggbmV0IHYyIDAvMl0gRml4IHJhY2UgY29uZGl0aW9uIGJldHdlZW4gVENQX1JFUEFJ UiBkdW1wIGFuZCBkYXRhIHJlY2VpdmUiID8NCj4+Pg0KPj4+IE5vdyBJIHRyaWVkLCBhbmQgeWVz LCB0aGUgdGVzdCBkb2Vzbid0IGhhbmcgYW55bW9yZSEgSSBzZWVtIHRvIGhhdmUgYW4NCj4+PiBp c3N1ZSB3aXRoIHRlYXJkb3duIGZ1bmN0aW9ucyBvbiByZWNlbnQga2VybmVscyAoY3VycmVudCBu ZXQuZ2l0IEhFQUQNCj4+PiBtb3JlIG9yIGxlc3MpOg0KPj4+DQo+Pj4gLS0tDQo+Pj4gWy4uLl0N Cj4+Pg0KPj4+IDIwMjYvMDUvMjIgMDQ6MDg6MjMgc29jYXRbNzMwODldIEUgY29ubmVjdCg1LCBB Rj00MCBjaWQ6OTQ1NTggcG9ydDoyMiwgMTYpOiBDb25uZWN0aW9uIHRpbWVkIG91dA0KPj4+IENv bm5lY3Rpb24gY2xvc2VkIGJ5IFVOS05PV04gcG9ydCA2NTUzNQ0KPj4+IC4uLg0KPj4+IC0tLQ0K Pj4+DQo+Pj4gaXQgbG9va3MgbGlrZSB3ZSBzdG9wIFFFTVUgYSBiaXQgdG9vIGVhcmx5LiBCdXQg aXQgc2hvdWxkIGJlIHVucmVsYXRlZC4NCj4gDQo+IE9vcHMsIEkgZm9yZ290IHRvIHVwZ3JhZGUg UUVNVSBvbiB0aGUgdmlydHVhbCBtYWNoaW5lIEkgd2FzIHVzaW5nIHRvDQo+IHRlc3QgdGhvc2Ug a2VybmVsIGJ1aWxkcywgSSBoYWQgYSBzb21ld2hhdCBvdXRkYXRlZCA4LjEgdmVyc2lvbiBhbmQg aXQNCj4gZmFpbGVkIG1pZ3JhdGlvbiBmb3IgdW5yZWxhdGVkIHJlYXNvbnMuIEl0IHdvcmtzIHdp dGggMTEuMC4NCj4gDQo+IEJhY2sgdG8ga2VybmVsIHZlcnNpb25zOiB0aGUgInByb2JsZW0iIGlz IHRoYXQgd2l0aCBhIHJlY2VudA0KPiBuZXQtbmV4dC5naXQgSEVBRCwgd2l0aCBvciB3aXRob3V0 IG15IGZpeCwgaW4gYSBuZXN0ZWQgVk0sIHRoZSB0ZXN0DQo+IGFsd2F5cyBwYXNzZXMgKDIwLzIw KS4gQW5kIEkgY2FuJ3QgZWFzaWx5IHRlc3QgdGhpbmdzIG5vbi1uZXN0ZWQuDQo+IA0KPiBJIGd1 ZXNzIGNvdWxkIGp1c3Qgc2tpcCB0aGF0IHRlc3QgZm9yIHRoZSBtb21lbnQgZnJvbSB0aGUgc2V0 IEkgcnVuIGdpdA0KPiBwdXNoLCBhbmQgcnVuIGl0IG1hbnVhbGx5IGluIHRoZSB2aXJ0dWFsIG1h Y2hpbmUsIGZvciB0aGUgbW9tZW50Lg0KPiANCj4gQnV0IGp1ZGdpbmcgZnJvbSBjYXB0dXJlcyAo dGVzdF9sb2dzL3Bhc3RhXzEucGNhcCBmcm9tIFBDQVA9MSAuL3J1bikNCj4gSSdtIGZhaXJseSBz dXJlIGl0J3Mgbm90ICp0aGF0KiBpc3N1ZToNCj4gDQo+ICAgIDQ2NSAgMTIuMTQxNzYzICAgIDE5 Mi4wLjIuMSDihpIgODguMTk4LjAuMTY0IDU4NDUxIFRDUCBbVENQIFdpbmRvdyBGdWxsXSAzNDQx NiDihpIgMTAwMDEgW1BTSCwgQUNLXSBTZXE9MTAwMDIxMDAgQWNrPTEgV2luPTY1NTM2IExlbj01 ODM5Nw0KPiAgICA0NjYgIDEyLjE4NzE5NSA4OC4xOTguMC4xNjQg4oaSIDE5Mi4wLjIuMSAgICA1 NCBUQ1AgW1RDUCBaZXJvV2luZG93XSAxMDAwMSDihpIgMzQ0MTYgW0FDS10gU2VxPTEgQWNrPTEw MDYwNDk3IFdpbj0wIExlbj0wDQo+ICAgIDQ2NyAgMTMuMTg3MjgxICAgIDE5Mi4wLjIuMSDihpIg ODguMTk4LjAuMTY0IDQxNTAgVENQIDM0NDE2IOKGkiAxMDAwMSBbUFNILCBBQ0tdIFNlcT0xMDA2 MDQ5NyBBY2s9MSBXaW49NjU1MzYgTGVuPTQwOTYNCj4gDQo+IGxhc3QgZGF0YSB0cmFuc2ZlciBm cm9tIGNsaWVudCAocmFtcHN0cmVhbSk6DQo+IA0KPiAgICA0NjggIDEzLjE4NzM1OCA4OC4xOTgu MC4xNjQg4oaSIDE5Mi4wLjIuMSAgICA1NCBUQ1AgW1RDUCBaZXJvV2luZG93XSAxMDAwMSDihpIg MzQ0MTYgW0FDS10gU2VxPTEgQWNrPTEwMDYwNDk3IFdpbj0wIExlbj0wDQo+IA0KPiBldmVyeXRo aW5nIGFja25vd2xlZGdlZCwgbWlncmF0aW9uIHN0YXJ0cyBub3c6DQo+IA0KPiAgICA0NjkgIDE0 LjE0MzIxNyBmZTgwOjpmNDcxOmMzZmY6ZmUxMDo0ZTQ1IOKGkiBmZjAyOjoyICAgICAgNzAgSUNN UHY2IFJvdXRlciBTb2xpY2l0YXRpb24gZnJvbSBmNjo3MTpjMzoxMDo0ZTo0NQ0KPiAgICA0NzAg IDE0LjY4NzEyMyA4OC4xOTguMC4xNjQg4oaSIDE5Mi4wLjIuMSAgICA1NCBUQ1AgW1RDUCBaZXJv V2luZG93XSBbVENQIEtlZXAtQWxpdmVdIDEwMDAxIOKGkiAzNDQxNiBbQUNLXSBTZXE9MCBBY2s9 MTAwNjA0OTcgV2luPTAgTGVuPTANCj4gDQo+IG1pZ3JhdGlvbiBjb21wbGV0ZWQ6IGFuZCB3ZSBh Y2tub3dsZWRnZSB0aGUgcmlnaHQgc2VxdWVuY2UgKDEwMDYwNDk3KSwNCj4gc28gaXQgZGlkbid0 IGp1bXAgZm9yd2FyZC4NCj4gDQo+IEJ1dCBzdGFydGluZyBmcm9tIHRoaXMgcG9pbnQ6DQo+IA0K PiAgICA0NzEgIDE0LjY4NzI2NSAgICAxOTIuMC4yLjEg4oaSIDg4LjE5OC4wLjE2NCA2MCBUQ1Ag MzQ0MTYg4oaSIDEwMDAxIFtBQ0tdIFNlcT0xMDA2MDQ5NyBBY2s9MSBXaW49NjU1MzYgTGVuPTAN Cj4gICAgNDcyICAxNi42ODc0MTIgICAgMTkyLjAuMi4xIOKGkiA4OC4xOTguMC4xNjQgNDE1MCBU Q1AgW1RDUCBSZXRyYW5zbWlzc2lvbl0gMzQ0MTYg4oaSIDEwMDAxIFtQU0gsIEFDS10gU2VxPTEw MDYwNDk3IEFjaz0xIFdpbj02NTUzNiBMZW49NDA5Ng0KPiAgICA0NzMgIDE2LjY4NzQ1MCA4OC4x OTguMC4xNjQg4oaSIDE5Mi4wLjIuMSAgICA1NCBUQ1AgW1RDUCBaZXJvV2luZG93XSAxMDAwMSDi hpIgMzQ0MTYgW0FDS10gU2VxPTEgQWNrPTEwMDYwNDk3IFdpbj0wIExlbj0wDQo+ICAgIDQ3NCAg MjAuNjg3NjUwICAgIDE5Mi4wLjIuMSDihpIgODguMTk4LjAuMTY0IDQxNTAgVENQIFtUQ1AgUmV0 cmFuc21pc3Npb25dIDM0NDE2IOKGkiAxMDAwMSBbUFNILCBBQ0tdIFNlcT0xMDA2MDQ5NyBBY2s9 MSBXaW49NjU1MzYgTGVuPTQwOTYNCj4gICAgNDc1ICAyMC42ODc2OTIgODguMTk4LjAuMTY0IOKG kiAxOTIuMC4yLjEgICAgNTQgVENQIFtUQ1AgWmVyb1dpbmRvd10gMTAwMDEg4oaSIDM0NDE2IFtB Q0tdIFNlcT0xIEFjaz0xMDA2MDQ5NyBXaW49MCBMZW49MA0KPiAgICA0NzYgIDI4LjY4NzgxNyAg ICAxOTIuMC4yLjEg4oaSIDg4LjE5OC4wLjE2NCA0MTUwIFRDUCBbVENQIFJldHJhbnNtaXNzaW9u XSAzNDQxNiDihpIgMTAwMDEgW1BTSCwgQUNLXSBTZXE9MTAwNjA0OTcgQWNrPTEgV2luPTY1NTM2 IExlbj00MDk2DQo+IA0KPiB3ZSBrZWVwIGFkdmVydGlzaW5nIGEgemVybyB3aW5kb3cgKHRoYXQn cyB0aGUga2VybmVsIGRvaW5nIGl0IHJlYWxseSksDQo+IGFzIGlmIHdlIHdlcmUgdW5hYmxlIHRv IGRlcXVldWUgZGF0YS4NCj4gDQo+IEkgZW5hYmxlZCAtLXRyYWNlIGp1c3QgZm9yIHRoZSB0YXJn ZXQgaW5zdGFuY2Ugb2YgcGFzc3QsIGFuZCBJIGRvbid0DQo+IHNlZSBhbnl0aGluZyBzdXNwaWNp b3VzIHRoZXJlOg0KPiANCj4gMTMuMDk1ODogUmVjZWl2aW5nIDEgZmxvd3MNCj4gMTMuMDk1ODog RmxvdyAwIChORVcpOiBGUkVFIC0+IE5FVw0KPiAxMy4wOTU4OiBGbG93IDAgKFRDUCBjb25uZWN0 aW9uKTogVEdUIC0+IFRZUEVEDQo+IDEzLjA5NTg6IEZsb3cgMCAoVENQIGNvbm5lY3Rpb24pOiBI T1NUIFsxOTIuMC4yLjFdOjQ5ODkyIC0+IFs4OC4xOTguMC4xNjRdOjEwMDAxID0+IFRBUCBbMTky LjAuMi4xXTo0OTg5MiAtPiBbODguMTk4LjAuMTY0XToxMDAwMQ0KPiAxMy4wOTU4OiBGbG93IDAg KFRDUCBjb25uZWN0aW9uKTogU2lkZSAxIGhhc2ggdGFibGUgaW5zZXJ0OiBidWNrZXQ6IDEzODE1 NA0KPiAxMy4wOTU4OiBGbG93IDAgKFRDUCBjb25uZWN0aW9uKTogVFlQRUQgLT4gQUNUSVZFDQo+ IDEzLjA5NTg6IEZsb3cgMCAoVENQIGNvbm5lY3Rpb24pOiBIT1NUIFsxOTIuMC4yLjFdOjQ5ODky IC0+IFs4OC4xOTguMC4xNjRdOjEwMDAxID0+IFRBUCBbMTkyLjAuMi4xXTo0OTg5MiAtPiBbODgu MTk4LjAuMTY0XToxMDAwMQ0KPiAxMy4wOTU5OiBGbG93IDAgKFRDUCBjb25uZWN0aW9uKTogRXh0 ZW5kZWQgbWlncmF0aW9uIGRhdGEsIHNvY2tldCA4MyBzZXF1ZW5jZXMgc2VuZCAzMTIxOTI5NTQ0 IHJlY2VpdmUgMTY0Mzg5NTAwMQ0KPiAxMy4wOTU5OiBGbG93IDAgKFRDUCBjb25uZWN0aW9uKTog ICBwZW5kaW5nIHF1ZXVlczogc2VuZCAwIG5vdCBzZW50IDAgcmVjZWl2ZSAzNTAwMDgxDQo+IDEz LjA5NTk6IEZsb3cgMCAoVENQIGNvbm5lY3Rpb24pOiAgIHdpbmRvdzogc25kX3dsMSAxNjQ3Mzk1 MDgyIHNuZF93bmQgNjU1MzYgbWF4IDY1NTM2IHJjdl93bmQgMCByY3Zfd3VwIDE2NDczOTUwODIN Cj4gMTMuMDk1OTogRmxvdyAwIChUQ1AgY29ubmVjdGlvbik6ICAgU09fUEVFS19PRkYgZGlzYWJs ZWQgIG9mZnNldD0wDQo+IDEzLjA5ODU6IEdvdCBwYWNrZXQsIGJ1dCBSWCB2aXJ0cXVldWUgbm90 IHVzYWJsZSB5ZXQNCj4gMTMuMDk4NTogQ2xvc2luZyBtaWdyYXRpb24gY2hhbm5lbCwgZmQ6IDgy DQo+IDEzLjA5ODU6IENsb3NpbmcgVENQX1JFUEFJUiBoZWxwZXIgc29ja2V0DQo+IDEzLjA5ODU6 IHBhc3N0OiBlcG9sbCBldmVudCBvbiB2aG9zdC11c2VyIGNvbW1hbmQgc29ja2V0IDc3IChldmVu dHM6IDB4MDAwMDAwMDEpDQo+IA0KPiB0aGVuIHRoZSB1c3VhbCBWSE9TVF9VU0VSX0NIRUNLX0RF VklDRV9TVEFURSBhbmQgVkhPU1RfVVNFUl9TRVRfVlJJTkdfRU5BQkxFDQo+IGNvbW1hbmRzLiBB ZnRlciB0aGF0LCBhIHRpZ2h0IGxvb3Agb2Y6DQo+IA0KPiAxMy4wOTg2OiBwYXNzdDogZXBvbGwg ZXZlbnQgb24gY29ubmVjdGVkIFRDUCBzb2NrZXQgODMgKGV2ZW50czogMHgwMDAwMDAwMSkNCj4g MTMuMDk4NjogR290IHBhY2tldCwgYnV0IFJYIHZpcnRxdWV1ZSBub3QgdXNhYmxlIHlldA0KPiAx My4wOTg2OiBwYXNzdDogZXBvbGwgZXZlbnQgb24gY29ubmVjdGVkIFRDUCBzb2NrZXQgODMgKGV2 ZW50czogMHgwMDAwMDAwMSkNCj4gMTMuMDk4NjogR290IHBhY2tldCwgYnV0IFJYIHZpcnRxdWV1 ZSBub3QgdXNhYmxlIHlldA0KPiANCj4gdW50aWwgd2UgZ28gZnVydGhlciB3aXRoIHRoZSB2aG9z dC11c2VyIHNldHVwLiBJIHN0aWxsIHNlZSB0aGlzIG1lc3NhZ2UNCj4gd2hpY2ggSSBoYWQgbmV2 ZXIgbm90aWNlZCAoYnV0IEkgZGlkbid0IHRyeSB0byBiaXNlY3QgYXJvdW5kIGl0KToNCj4gDQo+ IDEzLjEwMDY6ID09PT09PT09PT09PT09PT0gVmhvc3QgdXNlciBtZXNzYWdlID09PT09PT09PT09 PT09PT0NCj4gMTMuMTAwNjogUmVxdWVzdDogVkhPU1RfVVNFUl9TRVRfVlJJTkdfQUREUiAoOSkN Cj4gWy4uLl0NCj4gMTMuMTAwNjogTGFzdCBhdmFpbCBpbmRleCAhPSB1c2VkIGluZGV4OiAzMjUy ICE9IDMwMjcNCj4gDQo+IGFuZCB0aGVuIGFmdGVyIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0NBTEws IGFuZDoNCj4gDQo+IDEzLjEwMDg6IHBhc3N0OiBlcG9sbCBldmVudCBvbiB2aG9zdC11c2VyIGtp Y2sgc29ja2V0IDc4IChldmVudHM6IDB4MDAwMDAwMDEpDQo+IDEzLjEwMDg6IHZob3N0LXVzZXI6 IGdvdCBraWNrX2RhdGE6IDAwMDAwMDAwMDAwMDAwMDEgaWR4OiAxDQo+IA0KPiBpdCdzIGp1c3Qg YSB0aWdodCBsb29wIG9mOg0KPiANCj4gMTMuMTAwODogcGFzc3Q6IGVwb2xsIGV2ZW50IG9uIGNv bm5lY3RlZCBUQ1Agc29ja2V0IDgzIChldmVudHM6IDB4MDAwMDAwMDEpDQo+IDEzLjEwMDg6IHBh c3N0OiBlcG9sbCBldmVudCBvbiBjb25uZWN0ZWQgVENQIHNvY2tldCA4MyAoZXZlbnRzOiAweDAw MDAwMDAxKQ0KPiAxMy4xMDA4OiBwYXNzdDogZXBvbGwgZXZlbnQgb24gY29ubmVjdGVkIFRDUCBz b2NrZXQgODMgKGV2ZW50czogMHgwMDAwMDAwMSkNCj4gDQo+IGFzIGlmIHdlIHdlcmVuJ3QgZGVx dWV1ZWluZyBhbnl0aGluZyBmcm9tIHRoZXJlLg0KPiANCj4gSSBzdGFydCBzdXNwZWN0aW5nIHdl IG1pZ2h0IGJlIGhpdHRpbmcgdHdvIGRpZmZlcmVudCBpc3N1ZXM6IHBlcmhhcHMNCj4gdGhpbmdz IGZhaWwgb24geW91ciBzZXR1cCBiZWNhdXNlIG9mIHRoZSBrZXJuZWwgYnVnIHdpdGggVENQX1JF UEFJUiBub3QNCj4gZnJlZXppbmcgdGhlIHF1ZXVlLCBhbmQgdGhleSBmYWlsIG9uIG15IHNldHVw IGZvciBzb21lIG90aGVyIHJlYXNvbi4NCj4gDQo+IEZvciBtZSBpdCdzIHZlcnkgZGV0ZXJtaW5p c3RpYyB0aG91Z2g6IHdpdGggcGF0Y2ggMTAvMTAgdGhpbmdzIGFsd2F5cw0KPiBmYWlsLCBhbmQg d2l0aG91dCBpdCB0aGV5IG5ldmVyIGZhaWwuDQo+IA0KPiBJIGd1ZXNzIEknbGwgYWRkIG1vcmUg cHJpbnRzIGFuZCBjaGVjayBmb3IgbW9yZSBtZXNzYWdlcyBiZWZvcmUvYWZ0ZXINCj4gdGhhdCBw YXRjaC4NCj4gDQoNCkluIGZhY3QgdGhlcmUgaXMgYSBidWZmZXIgbGVhayBiZWNhdXNlIGlvdl9z a2lwX2J5dGVzKCkgZG9lc24ndCBjb3JyZWN0bHkgY29tcHV0ZSB0aGUgDQpudW1iZXIgb2YgdXNl ZCBlbGVtZW50cyBhbmQgdGhlbiB3ZSBkb24ndCByZWxlYXNlIGFsbCB0aGUgdW51c2VkIGJ1ZmZl cnMuDQoNCkknbSB0cnlpbmcgdG8gZml4IHRoYXQuDQoNClBsZWFzZSB0cnkgd2l0aCBzZXJpZXMg IltQQVRDSCB2NyAwLzRdIHZob3N0LXVzZXIsdGNwOiBIYW5kbGUgbXVsdGlwbGUgaW92ZWMgZW50 cmllcyBwZXIgDQp2aXJ0cXVldWUgZWxlbWVudCIgYXBwbGllZCwgaXQgcmV3b3JrcyB0aGlzIHBh cnQuDQoNClRoYW5rcywNCkxhdXJlbnQNCg0K