From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out0.migadu.com (out0.migadu.com [94.23.1.103]) by mail.toke.dk (Postfix) with ESMTPS id C2A3E9BC4B0 for ; Thu, 10 Nov 2022 20:04:36 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (1024-bit key; unprotected) header.d=linux.dev header.i=@linux.dev header.a=rsa-sha256 header.s=key1 header.b=o1DspNdB Message-ID: <7eb3e22a-c416-e898-dff0-1146d3cc82c0@linux.dev> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1668107075; 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; bh=+NSPXeLQ/Mg0rCIKeH+oDdwD6iVX2B+YTMnbLZkHni4=; b=o1DspNdBKs9kWMisaewWSwdQEiy7LnpDmQcUnj11PH3HsYa9jwEXdebpykTPCEve+U0if0 KU/zgbiiPfvKEzBcNsVhH+oHEOvH4Kko0ahM7o77KpE5R1a+PGeEWLjfijRNXnhZJJzYl3 gS9YT5cLFdF3H+F1WTmZZDlQU0PsuXU= Date: Thu, 10 Nov 2022 11:04:28 -0800 MIME-Version: 1.0 Content-Language: en-US To: =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= References: <20221104032532.1615099-1-sdf@google.com> <20221104032532.1615099-7-sdf@google.com> <187e89c3-d7de-7bec-c72e-d9d6eb5bcca0@linux.dev> <9a8fefe4-2fcb-95b7-cda0-06509feee78e@linux.dev> <6f57370f-7ec3-07dd-54df-04423cab6d1f@linux.dev> <87leokz8lq.fsf@toke.dk> <5a23b856-88a3-a57a-2191-b673f4160796@linux.dev> <871qqazyc9.fsf@toke.dk> X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Martin KaFai Lau In-Reply-To: <871qqazyc9.fsf@toke.dk> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-Migadu-Flow: FLOW_OUT Message-ID-Hash: BBDA2B6WBTPJTIYZ36XDFUCW6QJT7BIJ X-Message-ID-Hash: BBDA2B6WBTPJTIYZ36XDFUCW6QJT7BIJ X-MailFrom: martin.lau@linux.dev 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: Stanislav Fomichev , ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org, song@kernel.org, yhs@fb.com, john.fastabend@gmail.com, kpsingh@kernel.org, haoluo@google.com, jolsa@kernel.org, David Ahern , Jakub Kicinski , Willem de Bruijn , Jesper Dangaard Brouer , Anatoly Burakov , Alexander Lobakin , Magnus Karlsson , Maryam Tahhan , xdp-hints@xdp-project.net, netdev@vger.kernel.org, bpf@vger.kernel.org X-Mailman-Version: 3.3.6 Precedence: list Subject: [xdp-hints] Re: [RFC bpf-next v2 06/14] xdp: Carry over xdp metadata into skb context List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gMTEvMTAvMjIgNjoxOSBBTSwgVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIHdyb3RlOg0KPiBN YXJ0aW4gS2FGYWkgTGF1IDxtYXJ0aW4ubGF1QGxpbnV4LmRldj4gd3JpdGVzOg0KPiANCj4+IE9u IDExLzkvMjIgMzoxMCBBTSwgVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIHdyb3RlOg0KPj4+IFNu aXBwaW5nIGEgYml0IG9mIGNvbnRleHQgdG8gcmVwbHkgdG8gdGhpcyBiaXQ6DQo+Pj4NCj4+Pj4+ Pj4gQ2FuIHRoZSB4ZHAgcHJvZyBzdGlsbCBjaGFuZ2UgdGhlIG1ldGFkYXRhIHRocm91Z2ggeGRw LT5kYXRhX21ldGE/IHRiaCwgSSBhbSBub3QNCj4+Pj4+Pj4gc3VyZSBpdCBpcyBzb2xpZCBlbm91 Z2ggYnkgYXNraW5nIHRoZSB4ZHAgcHJvZyBub3QgdG8gdXNlIHRoZSBzYW1lIHJhbmRvbSBudW1i ZXINCj4+Pj4+Pj4gaW4gaXRzIG93biBtZXRhZGF0YSArIG5vdCB0byBjaGFuZ2UgdGhlIG1ldGFk YXRhIHRocm91Z2ggeGRwLT5kYXRhX21ldGEgYWZ0ZXINCj4+Pj4+Pj4gY2FsbGluZyBicGZfeGRw X21ldGFkYXRhX2V4cG9ydF90b19za2IoKS4NCj4+Pj4+Pg0KPj4+Pj4+IFdoYXQgZG8geW91IHRo aW5rIHRoZSB1c2VjYXNlIGhlcmUgbWlnaHQgYmU/IE9yIGFyZSB5b3Ugc3VnZ2VzdGluZyB3ZQ0K Pj4+Pj4+IHJlamVjdCBmdXJ0aGVyIGFjY2VzcyB0byBkYXRhX21ldGEgYWZ0ZXINCj4+Pj4+PiBi cGZfeGRwX21ldGFkYXRhX2V4cG9ydF90b19za2Igc29tZWhvdz8NCj4+Pj4+Pg0KPj4+Pj4+IElm IHdlIHdhbnQgdG8gbGV0IHRoZSBwcm9ncmFtcyBvdmVycmlkZSBzb21lIG9mIHRoaXMNCj4+Pj4+ PiBicGZfeGRwX21ldGFkYXRhX2V4cG9ydF90b19za2IoKSBtZXRhZGF0YSwgaXQgZmVlbHMgbGlr ZSB3ZSBjYW4gYWRkDQo+Pj4+Pj4gbW9yZSBrZnVuY3MgaW5zdGVhZCBvZiBleHBvc2luZyB0aGUg bGF5b3V0Pw0KPj4+Pj4+DQo+Pj4+Pj4gYnBmX3hkcF9tZXRhZGF0YV9leHBvcnRfdG9fc2tiKGN0 eCk7DQo+Pj4+Pj4gYnBmX3hkcF9tZXRhZGF0YV9leHBvcnRfc2tiX2hhc2goY3R4LCAxMjM0KTsN Cj4+Pg0KPj4+IFRoZXJlIGFyZSBzZXZlcmFsIHVzZSBjYXNlcyBmb3IgbmVlZGluZyB0byBhY2Nl c3MgdGhlIG1ldGFkYXRhIGFmdGVyDQo+Pj4gY2FsbGluZyBicGZfeGRwX21ldGRhdGFfZXhwb3J0 X3RvX3NrYigpOg0KPj4+DQo+Pj4gLSBBY2Nlc3NpbmcgdGhlIG1ldGFkYXRhIGFmdGVyIHJlZGly ZWN0IChpbiBhIGNwdW1hcCBvciBkZXZtYXAgcHJvZ3JhbSwNCj4+PiAgICAgb3Igb24gYSB2ZXRo IGRldmljZSkNCj4+PiAtIFRyYW5zZmVycmluZyB0aGUgcGFja2V0K21ldGFkYXRhIHRvIEFGX1hE UA0KPj4gZndpdywgdGhlIHhkcCBwcm9nIGNvdWxkIGFsc28gYmUgbW9yZSBzZWxlY3RpdmUgYW5k IG9ubHkgc3RvcmVzIG9uZSBvZiB0aGUgaGludHMNCj4+IGluc3RlYWQgb2YgdGhlIHdob2xlICdz dHJ1Y3QgeGRwX3RvX3NrYl9tZXRhZGF0YScuDQo+IA0KPiBZdXAsIGFic29sdXRlbHkhIEluIHRo YXQgc2Vuc2UsIHJldXNpbmcgdGhlIFNLQiBmb3JtYXQgaXMgbW9zdGx5IGENCj4gY29udmVuaWVu Y2UgZmVhdHVyZS4gSG93ZXZlciwgbG90cyBvZiBwZW9wbGUgY29uc3VtZSBBRl9YRFAgdGhyb3Vn aCB0aGUNCj4gZGVmYXVsdCBwcm9ncmFtIGluc3RhbGxlZCBieSBsaWJ4ZHAgaW4gdGhlIFhTSyBz ZXR1cCBjb2RlLCBhbmQgaW5jbHVkaW5nDQo+IGN1c3RvbSBtZXRhZGF0YSB0aGVyZSBpcyBhd2t3 YXJkLiBTbyBoYXZpbmcgdGhlIG1ldGFkYXRhIGNvbnN1bWVkIGJ5IHRoZQ0KPiBzdGFjayBhcyB0 aGUgImRlZmF1bHQgc3Vic2V0IiB3b3VsZCBlbmFibGUgZWFzeSBjb25zdW1wdGlvbiBieQ0KPiBu b24tYWR2YW5jZWQgdXNlcnMsIHdoaWxlIGFkdmFuY2VkIHVzZXJzIGNhbiBzdGlsbCBkbyBjdXN0 b20gc3R1ZmYgYnkNCj4gd3JpdGluZyB0aGVpciBvd24gWERQIHByb2dyYW0gdGhhdCBjYWxscyB0 aGUga2Z1bmNzLg0KPiANCj4+PiAtIFJldHVybmluZyBYRFBfUEFTUywgYnV0IGFjY2Vzc2luZyBz b21lIG9mIHRoZSBtZXRhZGF0YSBmaXJzdCAod2hldGhlcg0KPj4+ICAgICB0byByZWFkIG9yIGNo YW5nZSBpdCkNCj4+Pg0KPj4+IFRoZSBsYXN0IG9uZSBjb3VsZCBiZSBzb2x2ZWQgYnkgY2FsbGlu ZyBhZGRpdGlvbmFsIGtmdW5jcywgYnV0IHRoYXQNCj4+PiB3b3VsZCBiZSBsZXNzIGVmZmljaWVu dCB0aGFuIGp1c3QgZGlyZWN0bHkgZWRpdGluZyB0aGUgc3RydWN0IHdoaWNoDQo+Pj4gd2lsbCBi ZSBjYWNoZS1ob3QgYWZ0ZXIgdGhlIGhlbHBlciByZXR1cm5zLg0KPj4NCj4+IFllYWgsIGl0IGlz IG1vcmUgZWZmaWNpZW50IHRvIGRpcmVjdGx5IHdyaXRlIGlmIHBvc3NpYmxlLiAgSSB0aGluayB0 aGlzIHNldA0KPj4gYWxsb3dzIHRoZSBkaXJlY3QgcmVhZGluZyBhbmQgd3JpdGluZyBhbHJlYWR5 IHRocm91Z2ggZGF0YV9tZXRhIChhcyBhIF91OCAqKS4NCj4gDQo+IFl1cCwgdG90YWxseSBmaW5l IHdpdGgganVzdCBrZWVwaW5nIHRoYXQgY2FwYWJpbGl0eSA6KQ0KPiANCj4+PiBBbmQgeWVhaCwg dGhpcyB3aWxsIGFsbG93IHRoZSBYRFAgcHJvZ3JhbSB0byBpbmplY3QgYXJiaXRyYXJ5IG1ldGFk YXRhDQo+Pj4gaW50byB0aGUgbmV0c3RhY2s7IGJ1dCBpdCBjYW4gYWxyZWFkeSBpbmplY3QgYXJi aXRyYXJ5ICpwYWNrZXQqIGRhdGENCj4+PiBpbnRvIHRoZSBzdGFjaywgc28gbm90IHN1cmUgaWYg dGhpcyBpcyBtdWNoIG9mIGFuIGFkZGl0aW9uYWwgcmlzaz8gSWYgaXQNCj4+PiBkb2VzIGxlYWQg dG8gdHJpdmlhbCBjcmFzaGVzLCB3ZSBzaG91bGQgcHJvYmFibHkgaGFyZGVuIHRoZSBzdGFjaw0K Pj4+IGFnYWluc3QgdGhhdD8NCj4+Pg0KPj4+IEFzIGZvciB0aGUgcmFuZG9tIG51bWJlciwgSmVz cGVyIGFuZCBJIGRpc2N1c3NlZCByZXBsYWNpbmcgdGhpcyB3aXRoIHRoZQ0KPj4+IHNhbWUgQlRG LUlEIHNjaGVtZSB0aGF0IGhlIHdhcyB1c2luZyBpbiBoaXMgcGF0Y2ggc2VyaWVzLiBJLmUuLCBp bnN0ZWFkDQo+Pj4gb2YganVzdCBwdXR0aW5nIGluIGEgcmFuZG9tIG51bWJlciwgd2UgaW5zZXJ0 IHRoZSBCVEYgSUQgb2YgdGhlIG1ldGFkYXRhDQo+Pj4gc3RydWN0IGF0IHRoZSBlbmQgb2YgaXQu IFRoaXMgd2lsbCBhbGxvdyB1cyB0byBzdXBwb3J0IG11bHRpcGxlDQo+Pj4gZGlmZmVyZW50IGZv cm1hdHMgaW4gdGhlIGZ1dHVyZSAobm90IGp1c3QgY2hhbmdpbmcgdGhlIGxheW91dCwgYnV0DQo+ Pj4gaGF2aW5nIG11bHRpcGxlIHNpbXVsdGFuZW91cyBmb3JtYXRzIGluIHRoZSBzYW1lIGtlcm5l bCBpbWFnZSksIGluIGNhc2UNCj4+PiB3ZSBydW4gb3V0IG9mIHNwYWNlLg0KPj4NCj4+IFRoaXMg c2VlbXMgYSBiaXQgaHlwb3RoZXRpY2FsLiAgSG93IG11Y2ggaGVhZHJvb20gZG9lcyBpdCB1c3Vh bGx5IGhhdmUgZm9yIHRoZQ0KPj4geGRwIHByb2c/ICBQb3RlbnRpYWxseSB0aGUgaGludHMgY2Fu IHVzZSBhbGwgdGhlIHJlbWFpbmluZyBzcGFjZSBsZWZ0IGFmdGVyIHRoZQ0KPj4gaGVhZGVyIGVu Y2FwIGFuZCB0aGUgY3VycmVudCBicGZfeGRwX2FkanVzdF9tZXRhKCkgdXNhZ2U/DQo+IA0KPiBG b3IgdGhlIG1ldGFkYXRhIGNvbnN1bWVkIGJ5IHRoZSBzdGFjayByaWdodCBub3cgaXQncyBhIGJp dA0KPiBoeXBvdGhldGljYWwsIHllYWguIEhvd2V2ZXIsIHRoZXJlJ3MgYSBidW5jaCBvZiBtZXRh ZGF0YSBjb21tb25seQ0KPiBzdXBwb3J0ZWQgYnkgaGFyZHdhcmUgdGhhdCB0aGUgc3RhY2sgY3Vy cmVudGx5IGRvZXNuJ3QgY29uc3VtZSBhbmQgdGhhdA0KPiBob3BlZnVsbHkgdGhpcyBmZWF0dXJl IHdpbGwgZW5kIHVwIG1ha2luZyBtb3JlIGFjY2Vzc2libGUuIE15IGhvcGUgaXMNCj4gdGhhdCB0 aGUgc3RhY2sgY2FuIGFsc28gbGVhcm4gaG93IHRvIHVzZSB0aGlzIGluIHRoZSBmdXR1cmUsIGlu IHdoaWNoDQo+IGNhc2Ugd2UgbWF5IHJ1biBvdXQgb2Ygc3BhY2UuIFNvIEkgdGhpbmsgb2YgdGhh dCBiaXQgbW9zdGx5IGFzDQo+IGZ1dHVyZS1wcm9vZmluZy4uLg0KDQppYy4gaW4gdGhpcyBjYXNl LCBDYW4gdGhlIGJ0Zl9pZCBiZSBhZGRlZCB0byAnc3RydWN0IHhkcF90b19za2JfbWV0YWRhdGEn IGxhdGVyIA0KaWYgaXQgaXMgaW5kZWVkIG5lZWRlZD8gIFRoZSAnc3RydWN0IHhkcF90b19za2Jf bWV0YWRhdGEnIGlzIG5vdCBpbiBVQVBJIGFuZCANCmRvaW5nIGl0IHdpdGggQ08tUkUgaXMgdG8g Z2l2ZSB1cyBmbGV4aWJpbGl0eSB0byBtYWtlIHRoaXMga2luZCBvZiBjaGFuZ2VzIGluIA0KdGhl IGZ1dHVyZS4NCg0KPiANCj4+PiBXZSBzaG91bGQgcHJvYmFibHkgYWxzbyBoYXZlIGEgZmxhZyBz ZXQgb24gdGhlIHhkcF9mcmFtZSBzbyB0aGUgc3RhY2sNCj4+PiBrbm93cyB0aGF0IHRoZSBtZXRh ZGF0YSBhcmVhIGNvbnRhaW5zIHJlbGV2YW50LXRvLXNrYiBkYXRhLCB0byBndWFyZA0KPj4+IGFn YWluc3QgYW4gWERQIHByb2dyYW0gYWNjaWRlbnRhbGx5IGhpdHRpbmcgdGhlICJtYWdpYyBudW1i ZXIiIChCVEZfSUQpDQo+Pj4gaW4gdW5yZWxhdGVkIHN0dWZmIGl0IHB1dHMgaW50byB0aGUgbWV0 YWRhdGEgYXJlYS4NCj4+DQo+PiBZZWFoLCBJIHRoaW5rIGhhdmluZyBhIGZsYWcgaXMgdXNlZnVs LiAgVGhlIGZsYWcgd2lsbCBiZSBzZXQgYXQgeGRwX2J1ZmYgYW5kDQo+PiB0aGVuIHRyYW5zZmVy IHRvIHRoZSB4ZHBfZnJhbWU/DQo+IA0KPiBZZWFoLCBleGFjdGx5IQ0KPiANCj4+Pj4gQWZ0ZXIg cmUtcmVhZGluZyBwYXRjaCA2LCBoYXZlIGFub3RoZXIgcXVlc3Rpb24uIFRoZSAndm9pZA0KPj4+ PiBicGZfeGRwX21ldGFkYXRhX2V4cG9ydF90b19za2IoKTsnIGZ1bmN0aW9uIHNpZ25hdHVyZS4g U2hvdWxkIGl0IGF0DQo+Pj4+IGxlYXN0IHJldHVybiBvay9lcnI/IG9yIGV2ZW4gcmV0dXJuIGEg J3N0cnVjdCB4ZHBfdG9fc2tiX21ldGFkYXRhIConDQo+Pj4+IHBvaW50ZXIgYW5kIHRoZSB4ZHAg cHJvZyBjYW4gZGlyZWN0bHkgcmVhZCAob3IgZXZlbiB3cml0ZSkgaXQ/DQo+Pj4NCj4+PiBIbW0s IEknbSBub3Qgc3VyZSByZXR1cm5pbmcgYSBmYWlsdXJlIG1ha2VzIHNlbnNlPyBGYWlsdXJlIHRv IHJlYWQgb25lDQo+Pj4gb3IgbW9yZSBmaWVsZHMganVzdCBtZWFucyB0aGF0IHRob3NlIGZpZWxk cyB3aWxsIG5vdCBiZSBwb3B1bGF0ZWQ/IFdlDQo+Pj4gc2hvdWxkIHByb2JhYmx5IGhhdmUgYSBm bGFncyBmaWVsZCBpbnNpZGUgdGhlIG1ldGFkYXRhIHN0cnVjdCBpdHNlbGYgdG8NCj4+PiBpbmRp Y2F0ZSB3aGljaCBmaWVsZHMgYXJlIHNldCBvciBub3QsIGJ1dCBJJ20gbm90IHN1cmUgcmV0dXJu aW5nIGFuDQo+Pj4gZXJyb3IgdmFsdWUgYWRkcyBhbnl0aGluZz8gUmV0dXJuaW5nIGEgcG9pbnRl ciB0byB0aGUgbWV0YWRhdGEgZmllbGQNCj4+PiBtaWdodCBiZSBjb252ZW5pZW50IGZvciB1c2Vy cyAoaXQgd291bGQganVzdCBiZSBhbiBhbGlhcyB0byB0aGUNCj4+PiBkYXRhX21ldGEgcG9pbnRl ciwgYnV0IHRoZSB2ZXJpZmllciBjb3VsZCBrbm93IGl0cyBzaXplLCBzbyB0aGUgcHJvZ3JhbQ0K Pj4+IGRvZXNuJ3QgaGF2ZSB0byBib3VuZHMgY2hlY2sgaXQpLg0KPj4NCj4+IElmIHNvbWUgaGlu dHMgYXJlIG5vdCBhdmFpbGFibGUsIHRob3NlIGhpbnRzIHNob3VsZCBiZSBpbml0aWFsaXplZCB0 bw0KPj4gMC9DSEVDS1NVTV9OT05FLy4uLmV0Yy4NCj4gDQo+IFRoZSBwcm9ibGVtIHdpdGggdGhh dCBpcyB0aGF0IHRoZW4gd2UgaGF2ZSB0byBzcGVuZCBjeWNsZXMgd3JpdGluZw0KPiBlaWdodCBi eXRlcyBvZiB6ZXJvZXMgaW50byB0aGUgY2hlY2tzdW0gZmllbGQgOikNCg0KV2l0aCBhIGNvbW1v biAnc3RydWN0IHhkcF90b19za2JfbWV0YWRhdGEnLCBJIGFtIG5vdCBzdXJlIGhvdyBzb21lIG9m IHRoZXNlIHplcm8gDQp3cml0ZXMgY2FuIGJlIGF2b2lkZWQuICBJZiB0aGUgeGRwIHByb2cgd2Fu dHMgdG8gb3B0aW1pemUsIGl0IGNhbiBjYWxsIA0KaW5kaXZpZHVhbCBrZnVuYyB0byBnZXQgaW5k aXZpZHVhbCBoaW50cy4NCg0KPiANCj4+IFRoZSB4ZHAgcHJvZyBuZWVkcyBhIGRpcmVjdCB3YXkg dG8gdGVsbCBoYXJkIGZhaWx1cmUgd2hlbiBpdCBjYW5ub3QNCj4+IHdyaXRlIHRoZSBtZXRhIGFy ZWEgYmVjYXVzZSBvZiBub3QgZW5vdWdoIHNwYWNlLiBDb21wYXJpbmcNCj4+IHhkcC0+ZGF0YV9t ZXRhIHdpdGggeGRwLT5kYXRhIGFzIGEgc2lkZSBlZmZlY3QgaXMgbm90IGludHVpdGl2ZS4NCj4g DQo+IFllYWgsIGhlbmNlIGEgZmxhZ3MgZmllbGQgc28gd2UgY2FuIGp1c3Qgc2VlIGlmIHNldHRp bmcgZWFjaCBmaWVsZA0KPiBzdWNjZWVkZWQ/DQoNCkhvdyB0ZXN0aW5nIGEgZmxhZyBpcyBkaWZm ZXJlbnQgZnJvbSBjaGVja2luZyAwL2ludmFsaWQtdmFsdWUgb2YgYSBmaWVsZD8gIG9yIA0Kc29t ZSBmaWVsZHMganVzdCBkb24ndCBoYXZlIGFuIGludmFsaWQgdmFsdWUgdG8gY2hlY2sgZm9yIGxp a2Ugdmxhbl90Y2k/DQoNCllvdSBtZWFudCBhIGZsYWdzIGZpZWxkIGFzIGEgcmV0dXJuIHZhbHVl IG9yIGluIHRoZSAnc3RydWN0IHhkcF90b19za2JfbWV0YWRhdGEnID8NCg0KPiANCj4+IEl0IGlz IG1vcmUgdGhhbiBzYXZpbmcgdGhlIGJvdW5kIGNoZWNrLiAgV2l0aCB0eXBlIGluZm8gb2YgJ3N0 cnVjdA0KPj4geGRwX3RvX3NrYl9tZXRhZGF0YSAqJywgdGhlIHZlcmlmaWVyIGNhbiBkbyBtb3Jl IGNoZWNrcyBsaWtlIHJlYWRpbmcgaW4gdGhlDQo+PiBtaWRkbGUgb2YgYW4gaW50ZWdlciBtZW1i ZXIuICBUaGUgdmVyaWZpZXIgY291bGQgYWxzbyBsaW1pdCB3cml0ZSBhY2Nlc3Mgb25seSB0bw0K Pj4gYSBmZXcgc3RydWN0J3MgbWVtYmVycyBpZiBpdCBpcyBuZWVkZWQuDQo+Pg0KPj4gVGhlIHJl dHVybmluZyAnc3RydWN0IHhkcF90b19za2JfbWV0YWRhdGEgKicgc2hvdWxkIG5vdCBiZSBhbiBh bGlhcyB0byB0aGUNCj4+IHhkcC0+ZGF0YV9tZXRhLiAgVGhleSBzaG91bGQgYWN0dWFsbHkgcG9p bnQgdG8gZGlmZmVyZW50IGxvY2F0aW9ucyBpbiB0aGUNCj4+IGhlYWRyb29tLiAgYnBmX3hkcF9t ZXRhZGF0YV9leHBvcnRfdG9fc2tiKCkgc2V0cyBhIGZsYWcgaW4geGRwX2J1ZmYuDQo+PiB4ZHAt PmRhdGFfbWV0YSB3b24ndCBiZSBjaGFuZ2VkIGFuZCBrZWVwcyBwb2ludGluZyB0byB0aGUgbGFz dA0KPj4gYnBmX3hkcF9hZGp1c3RfbWV0YSgpIGxvY2F0aW9uLiAgVGhlIGtlcm5lbCB3aWxsIGtu b3cgaWYgdGhlcmUgaXMNCj4+IHhkcF90b19za2JfbWV0YWRhdGEgYmVmb3JlIHRoZSB4ZHAtPmRh dGFfbWV0YSB3aGVuIHRoYXQgYml0IGlzIHNldCBpbiB0aGUNCj4+IHhkcF97YnVmZixmcmFtZX0u ICBXb3VsZCBpdCB3b3JrPw0KPiANCj4gSG1tLCBsb2dpY2FsbHkgc3BsaXR0aW5nIHRoZSBwcm9n cmFtIG1ldGFkYXRhIGFuZCB0aGUgeGRwX2hpbnRzIG1ldGFkYXRhDQo+IChidXQgaGF2aW5nIHRo ZW0gc2hhcmUgdGhlIHNhbWUgYXJlYSkgKmNvdWxkKiB3b3JrLCBJIGd1ZXNzLCBJJ20ganVzdA0K PiBub3Qgc3VyZSBpdCdzIHdvcnRoIHRoZSBleHRyYSBjb21wbGV4aXR5Pw0KDQpJdCBzaG91bGRu J3Qgc3RvcCB0aGUgZXhpc3RpbmcgeGRwIHByb2cgd3JpdGluZyBpdHMgb3duIG1ldGFkYXRhIGZy b20gdXNpbmcgdGhlIA0KdGhlIG5ldyBicGZfeGRwX21ldGFkYXRhX2V4cG9ydF90b19za2IoKS4N Cg0KPiANCj4+Pj4gQSByZWxhdGVkIHF1ZXN0aW9uLCB3aHkgJ3N0cnVjdCB4ZHBfdG9fc2tiX21l dGFkYXRhJyBuZWVkcw0KPj4+PiBfX3JhbmRvbWl6ZV9sYXlvdXQ/DQo+Pj4NCj4+PiBUaGUgX19y YW5kb21pemVfbGF5b3V0IHRoaW5nIGlzIHRoZXJlIHRvIGZvcmNlIEJQRiBwcm9ncmFtcyB0byB1 c2UgQ08tUkUNCj4+PiB0byBhY2Nlc3MgdGhlIGZpZWxkLiBUaGlzIGlzIHRvIGF2b2lkIHRoZSBz dHJ1Y3QgbGF5b3V0IGFjY2lkZW50YWxseQ0KPj4+IG9zc2lmeWluZyBiZWNhdXNlIHBlb3BsZSBp biBwcmFjdGljZSByZWx5IG9uIGEgcGFydGljdWxhciBsYXlvdXQsIGV2ZW4NCj4+PiB0aG91Z2gg d2UgdGVsbCB0aGVtIHRvIHVzZSBDTy1SRS4gVGhlcmUgYXJlIGxvdHMgb2YgZXhhbXBsZXMgb2Yg dGhpcw0KPj4+IGhhcHBlbmluZyBpbiBvdGhlciBkb21haW5zIChJUCBoZWFkZXIgb3B0aW9ucywg VENQIG9wdGlvbnMsIGV0YyksIGFuZA0KPj4+IF9fcmFuZG9taXplX2xheW91dCBzZWVtZWQgbGlr ZSBhIG5lYXQgdHJpY2sgdG8gZW5mb3JjZSBDTy1SRSB1c2FnZSA6KQ0KPj4NCj4+IEkgYW0gbm90 IHN1cmUgaWYgaXQgaXMgbmVjZXNzYXJ5IG9yIGhlbHBmdWwgdG8gb25seSBlbmZvcmNlIF9fcmFu ZG9taXplX2xheW91dA0KPj4gaW4gJ3N0cnVjdCB4ZHBfdG9fc2tiX21ldGFkYXRhJy4gIFRoZXJl IGFyZSBvdGhlciBDTy1SRSB1c2UgY2FzZXMgKHRyYWNpbmcgYW5kDQo+PiBub24gdHJhY2luZykg dGhhdCBhbHJlYWR5IGhhdmUgZGlyZWN0IGFjY2VzcyAocmVhZGluZyBhbmQvb3Igd3JpdGluZykg dG8gb3RoZXINCj4+IGtlcm5lbCBzdHJ1Y3R1cmVzLg0KPj4NCj4+IEl0IGlzIG1vcmUgaW1wb3J0 YW50IGZvciB0aGUgdmVyaWZpZXIgdG8gc2VlIHRoZSB4ZHAgcHJvZyBhY2Nlc3NpbmcgaXQgYXMg YQ0KPj4gJ3N0cnVjdCB4ZHBfdG9fc2tiX21ldGFkYXRhIConIGluc3RlYWQgb2YgeGRwLT5kYXRh X21ldGEgd2hpY2ggaXMgYSBfX3U4ICogc28NCj4+IHRoYXQgdGhlIHZlcmlmaWVyIGNhbiBlbmZv cmNlIHRoZSBydWxlcyBvZiBhY2Nlc3MuDQo+IA0KPiBUaGF0IG9ubHkgd29ya3MgaW5zaWRlIHRo ZSBrZXJuZWwsIHRob3VnaC4gU2luY2UgdGhlIG1ldGFkYXRhIGZpZWxkIGNhbg0KPiBiZSBjb3Bp ZWQgd2hvbGVzYWxlIHRvIEFGX1hEUCwgaGF2aW5nIGl0IHJhbmRvbWl6ZWQgZm9yY2VzIHVzZXJz cGFjZQ0KPiBjb25zdW1lcnMgdG8gYWxzbyB3cml0ZSBjb2RlIHRvIGRlYWwgd2l0aCB0aGUgbGF5 b3V0IGJlaW5nIGR5bmFtaWMuLi4NCg0KaG0uLi4gSSBzdGlsbCBkb24ndCBzZWUgaG93IHVzZWZ1 bCBpdCBpcywgaW4gcGFydGljdWxhciB5b3UgbWVudGlvbmVkIHRoZSBsaWJ4ZHAgDQp3aWxsIGlu c3RhbGwgYSB4ZHAgcHJvZyB0byB3cml0ZSB0aGlzIGRlZmF1bHQgZm9ybWF0ICh4ZHBfdG9fc2ti X21ldGFkYXRhKSBhbmQgDQpsaWtlbHkgbGlieGRwIHdpbGwgYWxzbyBwcm92aWRlIHNvbWUgaGVs cGVycyB0byBwYXJzZSB0aGUgeGRwX3RvX3NrYl9tZXRhZGF0YSANCmFuZCB0aGUgbGlieGRwIHVz ZXIgc2hvdWxkIG5vdCBuZWVkIHRvIGtub3cgaWYgQ08tUkUgaXMgdXNlZCBvciBub3QuIA0KQ29u c2lkZXJpbmcgaXQgaXMgYSBrZXJuZWwgaW50ZXJuYWwgc3RydWN0LCBJIHRoaW5rIGl0IGlzIGZp bmUgdG8ga2VlcCBpdCBhbmQgDQpjYW4gYmUgcmV2aXNpdGVkIGxhdGVyIGlmIG5lZWRlZC4gIExl dHMgZ2V0IG9uIHRvIG90aGVyIHRoaW5ncyBmaXJzdCA6KQ0KDQo=