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=EeDyEIxd; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by passt.top (Postfix) with ESMTPS id 7BD535A0265 for ; Wed, 18 Mar 2026 10:08:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1773824879; 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=cclGgCWNBhtzMoSP9DsHkGoqEMMoF91oAvrjkUiEG3U=; b=EeDyEIxdvnBzNdCaQlt2mKP18iMHtcbZYE+JQMBrvhZ+FgiQwfkrG4n9izzjerwlgCvhjJ RZ6ZRsmjSGD6FHfnjz1w2eSST39hc92628jFMg9Zca0Y5/qYtMaRyzePMqaaIpgnDJaX18 RKSprAPY1ltAp750NfnLDATAZ7m6n7Y= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-397-CRxubbqGOp6rxLjJkgcOxQ-1; Wed, 18 Mar 2026 05:07:57 -0400 X-MC-Unique: CRxubbqGOp6rxLjJkgcOxQ-1 X-Mimecast-MFC-AGG-ID: CRxubbqGOp6rxLjJkgcOxQ_1773824877 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4853553944fso9429855e9.0 for ; Wed, 18 Mar 2026 02:07:57 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773824876; x=1774429676; 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=cclGgCWNBhtzMoSP9DsHkGoqEMMoF91oAvrjkUiEG3U=; b=oLNbXa1MgUSPMJf0cz7bmFW3qdeVOQnyPgBwRfLfk3fZ4xnBr4JPGU199+jiWmu/UD YeiGIN5JHCHlqqtfJkjSGhWAOa5tv5KpwEDvODwy11y+df05aMqpBDtP5sm730W45SLY fP0EKylLOrRiBnOM9yzC3c7Jb1x2DvvdQGvknX60PJ6lrjGY6PTXVd0t9Jp7qndIR/OF YeNK1hv9eqJcnv5Z3No4AVS7Q/jlHY8+BPX3nmy1vRmRMVuk+qv9/1+cmBP+jy+SsgW4 25BeV/KuZkjPKg6lY318PY/6Y1Ka42ZKpfF+eflhulsxtrpa0za04ljSMKRVpEeuSXmP 2wUA== X-Forwarded-Encrypted: i=1; AJvYcCXBDa3s5w/n+lKlQWrUCpFgoEFrLq+yCFMDq2yjg3o/tXzHEzTHN8TfBhx8GRRawPTMD6YZkJ1e070=@passt.top X-Gm-Message-State: AOJu0YxNsDR3QTJZwMhW2HCFvpU+Ro2yne/UW367/J/eO2fg1oGxUqBJ byZUDuutT+GYYmjxVeEYqhkqkL90S4X3iS3HuvgWiqh2CzCPQ2J7FRJvywQQqk8BZwQFUneIxU8 NzPkJlwGgJ9k/0jFHHL62BoFpuDsEK4LadG0fomsJJEm6cUenyDNCGg== X-Gm-Gg: ATEYQzwV9XedJJxCLSo0fYHgDHswVsh1b+oT54WzkJWpWpwYyLiMgF1gVKQXx3EFYNl jykcHVlmsFUwzNdTRqYIU+DpeLfd8xGCg97XDzf/C7Fs5j+0KFbJm3mZlwEHcsdbChERlU+6mxH Z8OxcPsvvmLKaItDwR2qVDIYan6hHpAxBHD+vURg47wTV/liH5XJhN1Cc9ts5xHvHbTAMkdgygJ aUzL0JgEnzyaxU/lxq//DHEFp1/t8/ZkQND1YtAZrW1r073vqXVuqkU6oGPDitlRqMnoBskem75 dbfyj1nc+/JG7IJb7h7yKFDFyJ5HKvP7UA6fwb6Dzn81wSERB5OYmG3p/WfI1ftoBhCpVKuSNB0 9PJPGwL8NsheNyl9FupCf3O5XHPebC5a7wK2333CsSNqXebHuo8PbEd2QAOMUxzsvPQ== X-Received: by 2002:a05:600c:4713:b0:485:3cef:d6ea with SMTP id 5b1f17b1804b1-486f40c8f15mr39199625e9.13.1773824876370; Wed, 18 Mar 2026 02:07:56 -0700 (PDT) X-Received: by 2002:a05:600c:4713:b0:485:3cef:d6ea with SMTP id 5b1f17b1804b1-486f40c8f15mr39198985e9.13.1773824875596; Wed, 18 Mar 2026 02:07:55 -0700 (PDT) Received: from ?IPV6:2a01:e0a:e10:ef90:4326:a36e:a7cb:624b? ([2a01:e0a:e10:ef90:4326:a36e:a7cb:624b]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486f4bbfbf4sm14977355e9.31.2026.03.18.02.07.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 18 Mar 2026 02:07:55 -0700 (PDT) Message-ID: Date: Wed, 18 Mar 2026 10:07:53 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 3/3] vu_common: Move iovec management into vu_collect() To: Stefano Brivio References: <20260313182618.4157365-1-lvivier@redhat.com> <20260313182618.4157365-4-lvivier@redhat.com> <20260317162350.058e10e0@elisabeth> <4705f7ab-9277-4462-ada6-6bee39342627@redhat.com> <062fad4c-39f9-489e-8c98-544a4c6ada30@redhat.com> <20260318100439.3a13730b@elisabeth> From: Laurent Vivier Autocrypt: addr=lvivier@redhat.com; keydata= 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 In-Reply-To: <20260318100439.3a13730b@elisabeth> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: Z3DPiEBwYwBqZnyWoXHaNpRl7mluK15FanQgMfKwWN4_1773824877 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: TEUUNEKQHWTQMIZ3OZPLZ5FBOAYZXGY3 X-Message-ID-Hash: TEUUNEKQHWTQMIZ3OZPLZ5FBOAYZXGY3 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: David Gibson , passt-dev@passt.top 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: T24gMy8xOC8yNiAxMDowNCwgU3RlZmFubyBCcml2aW8gd3JvdGU6DQo+IE9uIFdlZCwgMTggTWFy IDIwMjYgMDg6MjE6MTAgKzAxMDANCj4gTGF1cmVudCBWaXZpZXIgPGx2aXZpZXJAcmVkaGF0LmNv bT4gd3JvdGU6DQo+IA0KPj4gT24gMy8xOC8yNiAwMjoxNiwgRGF2aWQgR2lic29uIHdyb3RlOg0K Pj4+IE9uIFR1ZSwgTWFyIDE3LCAyMDI2IGF0IDA1OjMwOjMyUE0gKzAxMDAsIExhdXJlbnQgVml2 aWVyIHdyb3RlOg0KPj4+PiBPbiAzLzE3LzI2IDE2OjIzLCBTdGVmYW5vIEJyaXZpbyB3cm90ZToN Cj4+Pj4+IE9uIFR1ZSwgMTcgTWFyIDIwMjYgMDg6MjU6NDkgKzAxMDANCj4+Pj4+IExhdXJlbnQg Vml2aWVyIDxsdml2aWVyQHJlZGhhdC5jb20+IHdyb3RlOg0KPj4+Pj4gICANCj4+Pj4+PiBPbiAz LzE3LzI2IDAzOjQwLCBEYXZpZCBHaWJzb24gd3JvdGU6DQo+Pj4+Pj4+IE9uIEZyaSwgTWFyIDEz LCAyMDI2IGF0IDA3OjI2OjE4UE0gKzAxMDAsIExhdXJlbnQgVml2aWVyIHdyb3RlOg0KPj4+Pj4+ Pj4gUHJldmlvdXNseSwgY2FsbGVycyBoYWQgdG8gcHJlLWluaXRpYWxpemUgdmlydHF1ZXVlIGVs ZW1lbnRzIHdpdGggaW92ZWMNCj4+Pj4+Pj4+IGVudHJpZXMgdXNpbmcgdnVfc2V0X2VsZW1lbnQo KSBvciB2dV9pbml0X2VsZW0oKSBiZWZvcmUgY2FsbGluZw0KPj4+Pj4+Pj4gdnVfY29sbGVjdCgp LiAgVGhpcyBtZWFudCBlYWNoIGVsZW1lbnQgb3duZWQgYSBmaXhlZCwgcHJlLWFzc2lnbmVkIGlv dmVjDQo+Pj4+Pj4+PiBzbG90Lg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IE1vdmUgdGhlIGlvdmVjIGFy cmF5IGludG8gdnVfY29sbGVjdCgpIGFzIGV4cGxpY2l0IHBhcmFtZXRlcnMgKGluX3NnLA0KPj4+ Pj4+Pj4gbWF4X2luX3NnLCBhbmQgaW5fbnVtKSwgbGV0dGluZyBpdCBwYXNzIHRoZSByZW1haW5p bmcgaW92ZWMgY2FwYWNpdHkNCj4+Pj4+Pj4+IGRpcmVjdGx5IHRvIHZ1X3F1ZXVlX3BvcCgpLiAg QSBydW5uaW5nIGN1cnJlbnRfaW92IGNvdW50ZXIgdHJhY2tzDQo+Pj4+Pj4+PiBjb25zdW1lZCBl bnRyaWVzIGFjcm9zcyBlbGVtZW50cywgc28gbXVsdGlwbGUgZWxlbWVudHMgc2hhcmUgYSBzaW5n bGUNCj4+Pj4+Pj4+IGlvdmVjIHBvb2wuICBUaGUgb3B0aW9uYWwgaW5fbnVtIG91dHB1dCBwYXJh bWV0ZXIgcmVwb3J0cyBob3cgbWFueSBpb3ZlYw0KPj4+Pj4+Pj4gZW50cmllcyB3ZXJlIGNvbnN1 bWVkLCBhbGxvd2luZyBjYWxsZXJzIHRvIHRyYWNrIHVzYWdlIGFjcm9zcyBtdWx0aXBsZQ0KPj4+ Pj4+Pj4gdnVfY29sbGVjdCgpIGNhbGxzLg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IFRoaXMgcmVtb3Zl cyB2dV9zZXRfZWxlbWVudCgpIGFuZCB2dV9pbml0X2VsZW0oKSB3aGljaCBhcmUgbm8gbG9uZ2Vy DQo+Pj4+Pj4+PiBuZWVkZWQsIGFuZCBpcyBhIHByZXJlcXVpc2l0ZSBmb3IgbXVsdGktYnVmZmVy IHN1cHBvcnQgd2hlcmUgYSBzaW5nbGUNCj4+Pj4+Pj4+IHZpcnRxdWV1ZSBlbGVtZW50IGNhbiB1 c2UgbW9yZSB0aGFuIG9uZSBpb3ZlYyBlbnRyeS4gIEZvciBub3csIGNhbGxlcnMNCj4+Pj4+Pj4+ IGFzc2VydCB0aGUgY3VycmVudCBzaW5nbGUtaW92ZWMtcGVyLWVsZW1lbnQgaW52YXJpYW50IHVu dGlsIHRoZXkgYXJlDQo+Pj4+Pj4+PiB1cGRhdGVkIHRvIGhhbmRsZSBtdWx0aXBsZSBpb3ZlY3Mu DQo+Pj4+Pj4+Pg0KPj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTGF1cmVudCBWaXZpZXIgPGx2aXZp ZXJAcmVkaGF0LmNvbT4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gUmV2aWV3ZWQtYnk6IERhdmlkIEdpYnNv biA8ZGF2aWRAZ2lic29uLmRyb3BiZWFyLmlkLmF1Pg0KPj4+Pj4+Pg0KPj4+Pj4+PiBDb3VwbGUg b2YgdGhvdWdodHMgb24gcG9zc2libGUgcG9saXNoIGJlbG93Lg0KPj4+Pj4+Pg0KPj4+Pj4+PiBb c25pcF0NCj4+Pj4+Pj4+ICAgICAgLyoqDQo+Pj4+Pj4+PiAgICAgICAqIHZ1X2NvbGxlY3QoKSAt IGNvbGxlY3QgdmlydGlvIGJ1ZmZlcnMgZnJvbSBhIGdpdmVuIHZpcnRxdWV1ZQ0KPj4+Pj4+Pj4g ICAgICAgKiBAdmRldjoJCXZob3N0LXVzZXIgZGV2aWNlDQo+Pj4+Pj4+PiAgICAgICAqIEB2cToJ CQl2aXJ0cXVldWUgdG8gY29sbGVjdCBmcm9tDQo+Pj4+Pj4+PiAtICogQGVsZW06CQlBcnJheSBv ZiB2aXJ0cXVldWUgZWxlbWVudA0KPj4+Pj4+Pj4gLSAqIAkJCWVhY2ggZWxlbWVudCBtdXN0IGJl IGluaXRpYWxpemVkIHdpdGggb25lIGlvdmVjIGVudHJ5DQo+Pj4+Pj4+PiAtICogCQkJaW4gdGhl IGluX3NnIGFycmF5Lg0KPj4+Pj4+Pj4gKyAqIEBlbGVtOgkJQXJyYXkgb2YgQG1heF9lbGVtIHZp cnRxdWV1ZSBlbGVtZW50cw0KPj4+Pj4+Pj4gICAgICAgKiBAbWF4X2VsZW06CQlOdW1iZXIgb2Yg dmlydHF1ZXVlIGVsZW1lbnRzIGluIHRoZSBhcnJheQ0KPj4+Pj4+Pj4gKyAqIEBpbl9zZzoJCUlu Y29taW5nIGlvdmVjIGFycmF5IGZvciBkZXZpY2Utd3JpdGFibGUgZGVzY3JpcHRvcnMNCj4+Pj4+ Pj4+ICsgKiBAbWF4X2luX3NnOgkJTWF4aW11bSBudW1iZXIgb2YgZW50cmllcyBpbiBAaW5fc2cN Cj4+Pj4+Pj4+ICsgKiBAaW5fbnVtOgkJTnVtYmVyIG9mIGNvbGxlY3RlZCBlbnRyaWVzIGZyb20g QGluX3NnIChvdXRwdXQpDQo+Pj4+Pj4+PiAgICAgICAqIEBzaXplOgkJTWF4aW11bSBzaXplIG9m IHRoZSBkYXRhIGluIHRoZSBmcmFtZQ0KPj4+Pj4+Pj4gICAgICAgKiBAY29sbGVjdGVkOgkJQ29s bGVjdGVkIGJ1ZmZlciBsZW5ndGgsIHVwIHRvIEBzaXplLCBzZXQgb24gcmV0dXJuDQo+Pj4+Pj4+ PiAgICAgICAqDQo+Pj4+Pj4+PiBAQCAtODAsMjAgKzY3LDIxIEBAIHZvaWQgdnVfaW5pdF9lbGVt KHN0cnVjdCB2dV92aXJ0cV9lbGVtZW50ICplbGVtLCBzdHJ1Y3QgaW92ZWMgKmlvdiwgaW50IGVs ZW1fY250DQo+Pj4+Pj4+PiAgICAgICAqLw0KPj4+Pj4+Pj4gICAgICBpbnQgdnVfY29sbGVjdChj b25zdCBzdHJ1Y3QgdnVfZGV2ICp2ZGV2LCBzdHJ1Y3QgdnVfdmlydHEgKnZxLA0KPj4+Pj4+Pj4g ICAgICAJICAgICAgIHN0cnVjdCB2dV92aXJ0cV9lbGVtZW50ICplbGVtLCBpbnQgbWF4X2VsZW0s DQo+Pj4+Pj4+PiArCSAgICAgICBzdHJ1Y3QgaW92ZWMgKmluX3NnLCBzaXplX3QgbWF4X2luX3Nn LCBzaXplX3QgKmluX251bSwNCj4+Pj4+Pj4+ICAgICAgCSAgICAgICBzaXplX3Qgc2l6ZSwgc2l6 ZV90ICpjb2xsZWN0ZWQpDQo+Pj4+Pj4+PiAgICAgIHsNCj4+Pj4+Pj4+ICAgICAgCXNpemVfdCBj dXJyZW50X3NpemUgPSAwOw0KPj4+Pj4+Pj4gKwlzaXplX3QgY3VycmVudF9pb3YgPSAwOw0KPj4+ Pj4+Pj4gICAgICAJaW50IGVsZW1fY250ID0gMDsNCj4+Pj4+Pj4+IC0Jd2hpbGUgKGN1cnJlbnRf c2l6ZSA8IHNpemUgJiYgZWxlbV9jbnQgPCBtYXhfZWxlbSkgew0KPj4+Pj4+Pj4gLQkJc3RydWN0 IGlvdmVjICppb3Y7DQo+Pj4+Pj4+PiArCXdoaWxlIChjdXJyZW50X3NpemUgPCBzaXplICYmIGVs ZW1fY250IDwgbWF4X2VsZW0gJiYNCj4+Pj4+Pj4+ICsJICAgICAgIGN1cnJlbnRfaW92IDwgbWF4 X2luX3NnKSB7DQo+Pj4+Pj4+PiAgICAgIAkJaW50IHJldDsNCj4+Pj4+Pj4+ICAgICAgCQlyZXQg PSB2dV9xdWV1ZV9wb3AodmRldiwgdnEsICZlbGVtW2VsZW1fY250XSwNCj4+Pj4+Pj4+IC0JCQkJ ICAgZWxlbVtlbGVtX2NudF0uaW5fc2csDQo+Pj4+Pj4+PiAtCQkJCSAgIGVsZW1bZWxlbV9jbnRd LmluX251bSwNCj4+Pj4+Pj4+IC0JCQkJICAgZWxlbVtlbGVtX2NudF0ub3V0X3NnLA0KPj4+Pj4+ Pj4gLQkJCQkgICBlbGVtW2VsZW1fY250XS5vdXRfbnVtKTsNCj4+Pj4+Pj4+ICsJCQkJICAgJmlu X3NnW2N1cnJlbnRfaW92XSwNCj4+Pj4+Pj4+ICsJCQkJICAgbWF4X2luX3NnIC0gY3VycmVudF9p b3YsDQo+Pj4+Pj4+PiArCQkJCSAgIE5VTEwsIDApOw0KPj4+Pj4+Pj4gICAgICAJCWlmIChyZXQg PCAwKQ0KPj4+Pj4+Pj4gICAgICAJCQlicmVhazsNCj4+Pj4+Pj4+IEBAIC0xMDMsMTggKzkxLDIy IEBAIGludCB2dV9jb2xsZWN0KGNvbnN0IHN0cnVjdCB2dV9kZXYgKnZkZXYsIHN0cnVjdCB2dV92 aXJ0cSAqdnEsDQo+Pj4+Pj4+PiAgICAgIAkJCWJyZWFrOw0KPj4+Pj4+Pj4gICAgICAJCX0NCj4+ Pj4+Pj4+IC0JCWlvdiA9ICZlbGVtW2VsZW1fY250XS5pbl9zZ1swXTsNCj4+Pj4+Pj4+IC0NCj4+ Pj4+Pj4+IC0JCWlmIChpb3YtPmlvdl9sZW4gPiBzaXplIC0gY3VycmVudF9zaXplKQ0KPj4+Pj4+ Pj4gLQkJCWlvdi0+aW92X2xlbiA9IHNpemUgLSBjdXJyZW50X3NpemU7DQo+Pj4+Pj4+PiArCQll bGVtW2VsZW1fY250XS5pbl9udW0gPSBpb3ZfdHJ1bmNhdGUoZWxlbVtlbGVtX2NudF0uaW5fc2cs DQo+Pj4+Pj4+PiArCQkJCQkJICAgICBlbGVtW2VsZW1fY250XS5pbl9udW0sDQo+Pj4+Pj4+PiAr CQkJCQkJICAgICBzaXplIC0gY3VycmVudF9zaXplKTsNCj4+Pj4+Pj4NCj4+Pj4+Pj4gV2lsbCBl bGVtW10uaW5fbnVtIGFsd2F5cyBlbmQgdXAgd2l0aCB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgQGlu X251bQ0KPj4+Pj4+PiBwYXJhbWV0ZXI/ICBJZiBzbywgZG8gd2UgbmVlZCB0aGUgZXhwbGljaXQg cGFyYW1ldGVyPw0KPj4+Pj4+DQo+Pj4+Pj4gQGluX251bSBwYXJhbWV0ZXIgb2YgdnVfY29sbGVj dCgpPw0KPj4+Pj4+DQo+Pj4+Pj4gQGluX251bSBpcyB0aGUgc3VtIG9mIGFsbCBlbGVtW10uaW5f bnVtLCBpdCBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlIGNhbGxlciBmdW5jdGlvbiBmcm9tDQo+Pj4+ Pj4gZWxlbSwgYnV0IGl0IGlzIHNpbXBsZXIgdG8gcmV0dXJuIGl0IGFzIHdlIG5lZWQgdG8gY29t cHV0ZSBpdCBpbiB0aGUgbG9vcC4NCj4+Pj4+DQo+Pj4+PiBJJ20gbm90IHN1cmUgSSB1bmRlcnN0 b29kIHRoZSBwb2ludCBvZiBEYXZpZCdzIGNvbW1lbnQgaGVyZSwgYW5kIHRoaXMNCj4+Pj4+IGV4 cGxhbmF0aW9uIG1ha2VzIHNlbnNlIHRvIG1lIG5vdywgYnV0IGl0IHRvb2sgbWUgYSBiaXQgdG8g ZmlndXJlIHRoYXQNCj4+Pj4+IG91dC4NCj4+Pj4+DQo+Pj4+PiBDb3VsZCBpdCBiZSB0aGF0IEBp bl9udW0gaXMgYSBiaXQgY29uZnVzaW5nIGFzIGl0IGhhcyAiaW4iIGFuZCAibnVtIiBpbg0KPj4+ Pj4gaXQsIGJ1dCBpdCdzIGFjdHVhbGx5IGFuIG91dHB1dCByZXByZXNlbnRpbmcgaG93IG1hbnkg ImluIiBlbnRyaWVzIHdlDQo+Pj4+PiB1c2VkL25lZWQ/DQo+Pj4+DQo+Pj4+IEZvciBhbiBlbGVt ZW50LCAqw6xuXypudW0gaXMgdGhlIG51bWJlciBvZiAqaW5fKnNnIHdlIGhhdmUgcmVhZCBmcm9t IHRoZSByaW5nIGZvciBhbiBlbGVtZW50Lg0KPj4+Pg0KPj4+PiBJdCdzIHZpcnRpbyBzZW1hbnRp Yywgc28gICppbl8qIG1lYW5zIHNnIGdvaW5nICppbiogdGhlIGd1ZXN0Lg0KPj4+Pg0KPj4+PiBG b3IgKm91dF8qc2cgd2UgaGF2ZSAqb3V0XypudW0uDQo+Pj4+ICAgDQo+Pj4+Pg0KPj4+Pj4gV2hh dCBpZiB3ZSByZW5hbWUgaXQgdG8gQGluX3VzZWQgb3IgQGluX2NvbGxlY3RlZD8NCj4+Pj4+ICAg DQo+Pj4+DQo+Pj4+IFRoZSBpZGVhIHdhcyB0byBrZWVwIHRoZSBzYW1lIG5hbWUgYXMgaW4gdGhl IGVsZW1lbnQuIEJ1dCB3ZSBjYW4gY2hhbmdlIHRoaXMgdG8gQGluX3VzZWQuDQo+Pj4NCj4+PiBX b3VsZCAiaW5fdG90YWwiIHdvcmsgYmV0dGVyIHRvIHN1Z2dlc3QgdGhhdCBpdCdzIHRoZSBzdW0g b2YgYWxsIHRoZQ0KPj4+IGVsZW1lbnRzJyBpbl9udW0/DQo+Pg0KPj4gWWVzLCBJIHRoaW5rIGl0 IGdpdmVzIHRoZSBpbmZvcm1hdGlvbiBpdCdzIHRoZSBzdW0gb2YgdGhlIGluX251bQ0KPiANCj4g T2theSwgc2hvdWxkIEkgY2hhbmdlIHRoaXMgb24gbWVyZ2UsIG9yIGRvIHlvdSBwbGFuIHRvIHJl cG9zdA0KPiAod2hpY2ggd291bGQgYmUgc2xpZ2h0bHkgbW9yZSBjb252ZW5pZW50IGZvciBtZSBi dXQgbm90IHJlYWxseSBuZWVkZWQpPw0KPiANCg0KSSdtIHByZXBhcmluZyB0aGUgdjMuDQoNClRo YW5rcywNCkxhdXJlbnQNCg0K