From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mail.toke.dk (Postfix) with ESMTPS id 9C5FB9B1540 for ; Tue, 1 Nov 2022 15:23:33 +0100 (CET) Authentication-Results: mail.toke.dk; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=g4OiiySD DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1667312612; 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=sqDa+kN8lmTDBcXC/JgXxNqx9tt0i1T0RdgjKzwWXWI=; b=g4OiiySDWOo0hakuSTTbYbmh2LhwxW/ERvTyTL3lpEpvz992mYvaX7SMPHWUXXzlhBSpSj qMEKCdlmATGSnNXxZm/ybc9aHcHrcIjBD51ddBH6gJ7i2UqXaGqwruyp0WTsAvr1NaBESM ePP1MDyhUo+J48AmxCtIMqvZtorx4Do= Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-120-eP_dEWSCM0ShkdI2gW3rEg-1; Tue, 01 Nov 2022 10:23:31 -0400 X-MC-Unique: eP_dEWSCM0ShkdI2gW3rEg-1 Received: by mail-ed1-f72.google.com with SMTP id z15-20020a05640240cf00b00461b253c220so10000283edb.3 for ; Tue, 01 Nov 2022 07:23:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:references:to :content-language:subject:cc:user-agent:mime-version:date:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sqDa+kN8lmTDBcXC/JgXxNqx9tt0i1T0RdgjKzwWXWI=; b=uWDPgmpFby+Bi0gwHglRKHYu4yJXe9U2wryBSsMvtSnxkR4bzE2z3DtIhsZesQnp// cG2Spjs0XeR3DEvc6ZQ5BMSxsAa6Ybs8vNK4g08PQxl+xZlc5eewz53iQfhQIMtc/N9E 5LEqkF4UcX+h295ysRdjauysUVWyZ3rHo54FjdKY5l8XHfVfdL87bGo1t7xe6NDOlqqi 091/WMpHxahIEY9ZM4d29jL5eEtAl+K1VGl54yygCPRgi4F8hnjxfC2qhr3Z3kJO5Mcw MC7azmLT8KXzKd/ztzSJKRwISDkyZnKJPJHjrCIUigdjuUhmqjOrKVk80Et9zLIDl6dY z0Jw== X-Gm-Message-State: ACrzQf1GKd9uq2kU2YGOqT2wp+Khr18NQly8t7IAmDTKZIwLNXqQNcJM Dnx+UNvgSoE/0L3T93ZmBNTNDXRezzgW89X6XwD/X9FY0gxPwbKNxIPhLRSuKp84MIDr8Q5cZi7 zAZF+HhHm+pNKV/bTF5AI X-Received: by 2002:a05:6402:26cc:b0:462:2426:4953 with SMTP id x12-20020a05640226cc00b0046224264953mr19593322edd.13.1667312610509; Tue, 01 Nov 2022 07:23:30 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7EAtyXXEISCk5BIVxhvsExoR2XlOV+BKRQiRc3NgS2/IvtHQzYy6t/vNeNApzYS3rTkdcizg== X-Received: by 2002:a05:6402:26cc:b0:462:2426:4953 with SMTP id x12-20020a05640226cc00b0046224264953mr19593307edd.13.1667312610241; Tue, 01 Nov 2022 07:23:30 -0700 (PDT) Received: from [192.168.41.200] (83-90-141-187-cable.dk.customer.tdc.net. [83.90.141.187]) by smtp.gmail.com with ESMTPSA id i2-20020aa7c9c2000000b00458947539desm4549046edt.78.2022.11.01.07.23.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 01 Nov 2022 07:23:29 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: Date: Tue, 1 Nov 2022 15:23:26 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 To: Stanislav Fomichev , Yonghong Song References: <20221027200019.4106375-1-sdf@google.com> <635bfc1a7c351_256e2082f@john.notmuch> <20221028110457.0ba53d8b@kernel.org> <635c62c12652d_b1ba208d0@john.notmuch> <20221028181431.05173968@kernel.org> <5aeda7f6bb26b20cb74ef21ae9c28ac91d57fae6.camel@siemens.com> <875yg057x1.fsf@toke.dk> <663fb4f4-04b7-5c1f-899c-bdac3010f073@meta.com> <8892271c-fd8d-e8f3-5de9-b94e5f1ce5fe@meta.com> In-Reply-To: X-Mimecast-Spam-Score: 0 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: L5U6HCT6QWIBYTKMRP2W5TJVRIUDAPRA X-Message-ID-Hash: L5U6HCT6QWIBYTKMRP2W5TJVRIUDAPRA X-MailFrom: jbrouer@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: brouer@redhat.com, =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , "Bezdeka, Florian" , "kuba@kernel.org" , "john.fastabend@gmail.com" , "alexandr.lobakin@intel.com" , "anatoly.burakov@intel.com" , "song@kernel.org" , "Deric, Nemanja" , "andrii@kernel.org" , "Kiszka, Jan" , "magnus.karlsson@gmail.com" , "willemb@google.com" , "ast@kernel.org" , "yhs@fb.com" , "martin.lau@linux.dev" , "kpsingh@kernel.org" , "daniel@iogearbox.net" , "bpf@vger.kernel.org" , "mtahhan@redhat.com" , "xdp-hints@xdp-project.net" , "netdev@vger.kernel.org" , "jolsa@kernel.org" , "haoluo@google.com" X-Mailman-Version: 3.3.5 Precedence: list Subject: [xdp-hints] Re: [RFC bpf-next 0/5] xdp: hints via kfuncs List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDMxLzEwLzIwMjIgMjMuNTUsIFN0YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4gT24g TW9uLCBPY3QgMzEsIDIwMjIgYXQgMzozOCBQTSBZb25naG9uZyBTb25nPHloc0BtZXRhLmNvbT4g IHdyb3RlOg0KPj4NCj4+IE9uIDEwLzMxLzIyIDM6MDkgUE0sIFN0YW5pc2xhdiBGb21pY2hldiB3 cm90ZToNCj4+PiBPbiBNb24sIE9jdCAzMSwgMjAyMiBhdCAxMjozNiBQTSBZb25naG9uZyBTb25n PHloc0BtZXRhLmNvbT4gIHdyb3RlOg0KPj4+Pg0KPj4+PiBPbiAxMC8zMS8yMiA4OjI4IEFNLCBU b2tlIEjDuGlsYW5kLUrDuHJnZW5zZW4gd3JvdGU6DQo+Pj4+PiAiQmV6ZGVrYSwgRmxvcmlhbiI8 Zmxvcmlhbi5iZXpkZWthQHNpZW1lbnMuY29tPiAgd3JpdGVzOg0KPj4+Pj4+DQo+Pj4+Pj4gT24g RnJpLCAyMDIyLTEwLTI4IGF0IDE4OjE0IC0wNzAwLCBKYWt1YiBLaWNpbnNraSB3cm90ZToNCj4+ Pj4+Pj4gT24gRnJpLCAyOCBPY3QgMjAyMiAxNjoxNjoxNyAtMDcwMCBKb2huIEZhc3RhYmVuZCB3 cm90ZToNClsuLi5dDQo+Pj4+Pj4gQWxsIHBhcnRzIG9mIG15IGFwcGxpY2F0aW9uIChCUEYgcHJv Z3JhbSBpbmNsdWRlZCkgc2hvdWxkIG5vdCBiZQ0KPj4+Pj4+IG9wdGltaXplZC9hZGp1c3RlZCBm b3IgYWxsIHRoZSBkaWZmZXJlbnQgSFcgdmFyaWFudHMgb3V0IHRoZXJlLg0KPj4+Pj4gWWVzLCBh YnNvbHV0ZWx5IGFncmVlZC4gQWJzdHJhY3RpbmcgYXdheSB0aG9zZSBraW5kcyBvZiBoYXJkd2Fy ZQ0KPj4+Pj4gZGlmZmVyZW5jZXMgaXMgdGhlIHdob2xlKnBvaW50KiAgb2YgaGF2aW5nIGFuIE9T L2RyaXZlciBtb2RlbC4gSS5lLiwNCj4+Pj4+IGl0J3Mgd2hhdCB0aGUga2VybmVsIGlzIHRoZXJl IGZvciEgSWYgcGVvcGxlIHdhbnQgdG8gYnlwYXNzIHRoYXQgYW5kIGdldA0KPj4+Pj4gZGlyZWN0 IGFjY2VzcyB0byB0aGUgaGFyZHdhcmUsIHRoZXkgY2FuIGFscmVhZHkgZG8gdGhhdCBieSB1c2lu ZyBEUERLLg0KPj4+Pj4NCj4+Pj4+IFNvIGluIG90aGVyIHdvcmRzLCAxMDAlIGFncmVlZCB0aGF0 IHdlIHNob3VsZCBub3QgZXhwZWN0IHRoZSBCUEYNCj4+Pj4+IGRldmVsb3BlcnMgdG8gZGVhbCB3 aXRoIGhhcmR3YXJlIGRldGFpbHMgYXMgd291bGQgYmUgcmVxdWlyZWQgd2l0aCBhDQo+Pj4+PiBr cHRyLWJhc2VkIGludGVyZmFjZS4NCj4+Pj4+DQo+Pj4+PiBBcyBmb3IgdGhlIGtmdW5jLWJhc2Vk IGludGVyZmFjZSwgSSB0aGluayBpdCBzaG93cyBzb21lIHByb21pc2UuDQo+Pj4+PiBFeHBvc2lu ZyBhIGxpc3Qgb2YgZnVuY3Rpb24gbmFtZXMgdG8gcmV0cmlldmUgaW5kaXZpZHVhbCBtZXRhZGF0 YSBpdGVtcw0KPj4+Pj4gaW5zdGVhZCBvZiBhIHN0cnVjdCBsYXlvdXQgaXMgc29ydGEgY29tcGFy YWJsZSBpbiB0ZXJtcyBvZiBkZXZlbG9wZXIgVUkNCj4+Pj4+IGFjY2Vzc2liaWxpdHkgZXRjIChJ TU8pLg0KPj4+PiA+Pj4+IExvb2tzIGxpa2UgdGhlcmUgYXJlIHF1aXRlIHNvbWUgdXNlIGNhc2Vz IGZvciBod190aW1lc3RhbXAuDQo+Pj4+IERvIHlvdSB0aGluayB3ZSBjb3VsZCBhZGQgaXQgdG8g dGhlIHVhcGkgbGlrZSBzdHJ1Y3QgeGRwX21kPw0KPj4+Pg0KPj4+PiBUaGUgZm9sbG93aW5nIGlz IHRoZSBjdXJyZW50IHhkcF9tZDoNCj4+Pj4gc3RydWN0IHhkcF9tZCB7DQo+Pj4+ICAgICAgICAg ICAgX191MzIgZGF0YTsNCj4+Pj4gICAgICAgICAgICBfX3UzMiBkYXRhX2VuZDsNCj4+Pj4gICAg ICAgICAgICBfX3UzMiBkYXRhX21ldGE7DQo+Pj4+ICAgICAgICAgICAgLyogQmVsb3cgYWNjZXNz IGdvIHRocm91Z2ggc3RydWN0IHhkcF9yeHFfaW5mbyAqLw0KPj4+PiAgICAgICAgICAgIF9fdTMy IGluZ3Jlc3NfaWZpbmRleDsgLyogcnhxLT5kZXYtPmlmaW5kZXggKi8NCj4+Pj4gICAgICAgICAg ICBfX3UzMiByeF9xdWV1ZV9pbmRleDsgIC8qIHJ4cS0+cXVldWVfaW5kZXggICovDQo+Pj4+DQo+ Pj4+ICAgICAgICAgICAgX191MzIgZWdyZXNzX2lmaW5kZXg7ICAvKiB0eHEtPmRldi0+aWZpbmRl eCAqLw0KPj4+PiB9Ow0KPj4+Pg0KPj4+PiBXZSBjb3VsZCBhZGQgIF9fdTY0IGh3X3RpbWVzdGFt cCB0byB0aGUgeGRwX21kIHNvIHVzZXINCj4+Pj4gY2FuIGp1c3QgZG8geGRwX21kLT5od190aW1l c3RhbXAgdG8gZ2V0IHRoZSB2YWx1ZS4NCj4+Pj4geGRwX21kLT5od190aW1lc3RhbXAgPT0gMCBt ZWFucyBod190aW1lc3RhbXAgaXMgbm90DQo+Pj4+IGF2YWlsYWJsZS4NCj4+Pj4NCj4+Pj4gSW5z aWRlIHRoZSBrZXJuZWwsIHRoZSBjdHggcmV3cml0ZXIgY2FuIGdlbmVyYXRlIGNvZGUNCj4+Pj4g dG8gY2FsbCBkcml2ZXIgc3BlY2lmaWMgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGEuDQo+ Pj4gSWYgdGhlIGRyaXZlciBnZW5lcmF0ZXMgdGhlIGNvZGUgdG8gcmV0cmlldmUgdGhlIGRhdGEs IGhvdydzIHRoYXQNCj4+PiBkaWZmZXJlbnQgZnJvbSB0aGUga2Z1bmMgYXBwcm9hY2g/DQo+Pj4g VGhlIG9ubHkgZGlmZmVyZW5jZSBJIHNlZSBpcyB0aGF0IGl0IHdvdWxkIGJlIGEgbW9yZSBzdHJv bmcgVUFQSSB0aGFuDQo+Pj4gdGhlIGtmdW5jcz8NCj4+IFJpZ2h0LiBpdCBpcyBhIHN0cm9uZyB1 YXBpLg0KPj4NCj4+Pj4gVGhlIGtmdW5jIGFwcHJvYWNoIGNhbiBiZSB1c2VkIHRvKmxlc3MqICBj b21tb24gdXNlIGNhc2VzPw0KPj4+IFdoYXQncyB0aGUgYWR2YW50YWdlIG9mIGhhdmluZyB0d28g YXBwcm9hY2hlcyB3aGVuIG9uZSBjYW4gY292ZXINCj4+PiBjb21tb24gYW5kIHVuY29tbW9uIGNh c2VzPw0KPj4NCj4+IEJleW9uZCBod190aW1lc3RhbXAsIGRvIHdlIGhhdmUgYW55IG90aGVyIGZp ZWxkcyByZWFkeSB0byBzdXBwb3J0Pw0KPj4NCj4+IElmIGl0IGVuZHMgdXAgd2l0aCBsb3RzIG9m IGZpZWxkcyB0byBiZSBhY2Nlc3NlZCBieSB0aGUgYnBmIHByb2dyYW0sDQo+PiBhbmQgYnBmIHBy b2dyYW0gYWN0dWFsbHkgaW50ZW5kcyB0byBhY2Nlc3MgdGhlc2UgZmllbGRzLA0KPj4gdXNpbmcg YSBzdHJvbmcgdWFwaSBtaWdodCBiZSBhIGdvb2QgdGhpbmcgYXMgaXQgY2FuIG1ha2UgY29kZQ0K Pj4gbXVjaCBzdHJlYW1saW5lZC4NCj4gPiBUaGVyZSBhcmUgYSBidW5jaC4gQWxleGFuZGVyJ3Mg c2VyaWVzIGhhcyBhIGdvb2QgbGlzdDoNCj4gDQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9hbG9iYWtp bi9saW51eC9jb21taXQvMzFiZmU4MDM1Yzk5NWZkZjRmMWUzNzhiMzQyOWQyNGI5Njg0NmNjOA0K PiANCg0KQmVsb3cgYXJlIHRoZSBmaWVsZHMgSSd2ZSBpZGVudGlmaWVkLCB3aGljaCBhcmUgY2xv c2UgdG8gd2hhdCBBbGV4YW5kZXIgDQphbHNvIGZvdW5kLg0KDQogIHN0cnVjdCB4ZHBfaGludHNf Y29tbW9uIHsNCgl1bmlvbiB7DQoJCV9fd3N1bQkJY3N1bTsNCgkJc3RydWN0IHsNCgkJCV9fdTE2 CWNzdW1fc3RhcnQ7DQoJCQlfX3UxNgljc3VtX29mZnNldDsNCgkJfTsNCgl9Ow0KCXUxNiByeF9x dWV1ZTsNCgl1MTYgdmxhbl90Y2k7DQoJdTMyIHJ4X2hhc2gzMjsNCgl1MzIgeGRwX2hpbnRzX2Zs YWdzOw0KCXU2NCBidGZfZnVsbF9pZDsgLyogQlRGIG9iamVjdCArIHR5cGUgSUQgKi8NCiAgfSBf X2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQpKSkgX19hdHRyaWJ1dGVfXygocGFja2VkKSk7DQoNClNv bWUgb2YgdGhlIGZpZWxkcyBhcmUgZW5jb2RlZCB2aWEgZmxhZ3M6DQoNCiAgZW51bSB4ZHBfaGlu dHNfZmxhZ3Mgew0KCUhJTlRfRkxBR19DU1VNX1RZUEVfQklUMCAgPSBCSVQoMCksDQoJSElOVF9G TEFHX0NTVU1fVFlQRV9CSVQxICA9IEJJVCgxKSwNCglISU5UX0ZMQUdfQ1NVTV9UWVBFX01BU0sg ID0gMHgzLA0KDQoJSElOVF9GTEFHX0NTVU1fTEVWRUxfQklUMCA9IEJJVCgyKSwNCglISU5UX0ZM QUdfQ1NVTV9MRVZFTF9CSVQxID0gQklUKDMpLA0KCUhJTlRfRkxBR19DU1VNX0xFVkVMX01BU0sg PSAweEMsDQoJSElOVF9GTEFHX0NTVU1fTEVWRUxfU0hJRlQgPSAyLA0KDQoJSElOVF9GTEFHX1JY X0hBU0hfVFlQRV9CSVQwID0gQklUKDQpLA0KCUhJTlRfRkxBR19SWF9IQVNIX1RZUEVfQklUMSA9 IEJJVCg1KSwNCglISU5UX0ZMQUdfUlhfSEFTSF9UWVBFX01BU0sgPSAweDMwLA0KCUhJTlRfRkxB R19SWF9IQVNIX1RZUEVfU0hJRlQgPSAweDQsDQoNCglISU5UX0ZMQUdfUlhfUVVFVUUgPSBCSVQo NyksDQoNCglISU5UX0ZMQUdfVkxBTl9QUkVTRU5UICAgICAgICAgICAgPSBCSVQoOCksDQoJSElO VF9GTEFHX1ZMQU5fUFJPVE9fRVRIX1BfODAyMVEgID0gQklUKDkpLA0KCUhJTlRfRkxBR19WTEFO X1BST1RPX0VUSF9QXzgwMjFBRCA9IEJJVCgxMCksDQoJLyogRmxhZ3MgZnJvbSBCSVQoMTYpIGNh biBiZSB1c2VkIGJ5IGRyaXZlcnMgKi8NCiAgfTsNCg0KPiBXZSBjYW4gZGVmaW5pdGVseSBjYWxs IHNvbWUgb2YgdGhlbSBtb3JlICJjb21tb24iIHRoYW4gdGhlIG90aGVycywgYnV0DQo+IG5vdCBz dXJlIGhvdyBzdHJvbmcgb2YgYSBkZWZpbml0aW9uIHRoYXQgd291bGQgYmUuDQoNClRoZSBpbXBv cnRhbnQgZmllbGRzIHRoYXQgd291bGQgYmUgd29ydGggY29uc2lkZXJpbmcgYXMgVUFQSSBjYW5k aWRhdGVzDQphcmU6ICgxKSBSWC1oYXNoLCAoMikgSGFzaC10eXBlIGFuZCAoMykgUlgtY2hlY2tz dW0uDQpXaXRoIHRoZXNlIHRocmVlIHdlIGNhbiBhdm9pZCBjYWxsaW5nIHRoZSBmbG93LWRpc3Nl Y3RvciBhbmQgR1JPIGZyYW1lDQphZ2dyZWdhdGlvbnMgd29ya3MuIChUaGlzIGN1cnJlbnRseSBo dXJ0cyB4ZHBfZnJhbWUgdG8gU0tCIHBlcmZvcm1hbmNlIGENCmxvdCBpbiBwcmFjdGljZSkuDQoN CipCVVQqIGluIGl0J3MgY3VycmVudCBmb3JtIGFib3ZlIChpbmNsLiBBbGV4YW5kZXJzIGFwcHJv YWNoL3BhdGNoKSBpdA0Kd291bGQgYmUgYSBtaXN0YWtlIHRvIFVBUEkgc3RhbmRhcmRpemUgdGhl ICIoMikgSGFzaC10eXBlIiBpbiB0aGlzDQpzaW1wbGlmaWVkICJyZWR1Y2VkIiBmb3JtICh3aGlj aCBpcyB3aGF0IHRoZSBTS0IgIm5lZWRzIikuDQoNClRoZXJlIGlzIGEgaHVnZSB1bnRhcHBlZCBw b3RlbnRpYWwgaW4gdGhlIEhhc2gtdHlwZS4gIFRoYW5rcyB0bw0KTWljcm9zb2Z0IGFsbW9zdCBh bGwgTklDIGhhcmR3YXJlIHByb3ZpZGVkIGEgSGFzaC10eXBlIHRoYXQgZ2l2ZXMgdXMgdGhlDQpM My1wcm90b2NvbCAoSVB2NCBvciBJUHY2KSBhbmQgdGhlIEw0LXByb3RvY29sIChVRFAgb3IgVENQ IGFuZCBzb21ldGltZXMNClNDVFApLCBwbHVzIGluZm8gaWYgZXh0ZW50aW9uLWhlYWRlcnMgYXJl IHByb3ZpZGVkLiAoRGlnZ2luZyBpbg0KZGF0YXNoZWV0cywgd2UgY2FuIG9mdGVuIGFsc28gZ2V0 IHRoZSBoZWFkZXItc2l6ZSkuDQoNClRoaW5rIGFib3V0IGhvdyBtYW55IGN5Y2xlcyBYRFAgQlBG LXByb2cgY2FuIHNhdmUgcGFyc2luZyBwcm90b2NvbA0KaGVhZGVycy4gIEknbSBhbHNvIGhvcGlu ZyB3ZSBjYW4gbGV2ZXJlZ2F0ZSB0aGlzIHRvIGFsbG93IFNLQnMgY3JlYXRlZA0KZnJvbSBhbiB4 ZHBfZnJhbWUgdG8gaGF2ZSBza2ItPnRyYW5zcG9ydF9oZWFkZXIgYW5kIHNrYi0+bmV0d29ya19o ZWFkZXINCnByZS1wb3B1bGF0ZWQgKGFuZCBza2lwIHNvbWUgb2YgdGhlc2UgbmV0c3RhY2sgbGF5 ZXJzKS4NCg0KLS1KZXNwZXINCg0KcC5zLiBpbiBteSBwYXRjaHNldCwgSSBleHBvc2VkIHRoZSAi cmF3IiBIYXNoLXR5cGUgYml0cyBmcm9tIHRoZSANCmRlc2NyaXB0b3IgaW4gaG9wZSB0aGlzIHdv dWxkIGV2b2x2ZS4NCg0K