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.129.124]) by mail.toke.dk (Postfix) with ESMTPS id 0EF109F892A for ; Fri, 24 Mar 2023 13:14:32 +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=IWntMRAy DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1679660070; 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=pBTZYWuFZuf/Tn0BpTtzc8rxHh/vXia0nkhx33ZjAzM=; b=IWntMRAyMgDYdWPizsjtddS9bHH71UVtXaXBYrcNQz5X8F+eQSGXp4Ms6OTTxfU8VbMeIP 2dhcP1XnpH48WCPbEHqWH8FxwkcYOztnI9fIkDp+wyztR7s6BBY5gRzExjyOHz0G/FsTqh RR4aYCUSkUwFFHhaEi7HFKmnhhaJ8B0= Received: from mail-lf1-f71.google.com (mail-lf1-f71.google.com [209.85.167.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-517-HA6AE0-WOtWN5AW0UZC-UA-1; Fri, 24 Mar 2023 08:14:29 -0400 X-MC-Unique: HA6AE0-WOtWN5AW0UZC-UA-1 Received: by mail-lf1-f71.google.com with SMTP id o17-20020a198c11000000b004e8706b0c72so631494lfd.21 for ; Fri, 24 Mar 2023 05:14:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679660067; h=content-transfer-encoding:in-reply-to:content-language:references :to:subject:cc:user-agent:mime-version:date:message-id:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=pBTZYWuFZuf/Tn0BpTtzc8rxHh/vXia0nkhx33ZjAzM=; b=vRqKB6uTIDVC1joxmmthZLj5y/kNuIdQLJkhe453n4qBwz9HhvZc6iyb8k2rOD44Tx ae9xu6KKqOF1/gIxWAtesSZV0nvpuwWt7oD71aYEtrso0qZn7eLwj0CvA2xu4ilddfwy pVb6ztMpA3MC/5rfm/vNM9tGe+WjL6aRYB+wXwpgPWaIcE/JWf2t3jXWNx8ImG61yHOP 7KLZJGTT09N1CNCnC77VKvM5gMsupzUJkkVDT1RwXrPU2+SFBCnri0vqm/hsmAdaWNT5 6kubPnv6X7k7KZIy4N6uTJiE1MHtBjT9KiH0z+7OfkzR1p3Byz0ILZKdBxUfD6CbJK6e vHNQ== X-Gm-Message-State: AAQBX9c1xQc+JGitedZWUskdGQ3cQ++gEra892P2LtCKuUT75ISIM11L 5GrPpiuFL/aEJid5XRca0lSvHU/XYPq/OxrF5dtl4kIMTlXaKoJfSA6o3l2g8HF8zeFlBi9jsIN 2+JInt3Jlhi4JWE/UL5gg X-Received: by 2002:ac2:5628:0:b0:4d8:82d5:f5bc with SMTP id b8-20020ac25628000000b004d882d5f5bcmr669126lff.34.1679660067664; Fri, 24 Mar 2023 05:14:27 -0700 (PDT) X-Google-Smtp-Source: AKy350ZGgrq+m4WPQmmsrlK4MMSv11q3GGWp6SPbTmKMQIY/s+s9AMABuSCGVG9pWmv7/y1UkqIgEg== X-Received: by 2002:ac2:5628:0:b0:4d8:82d5:f5bc with SMTP id b8-20020ac25628000000b004d882d5f5bcmr669105lff.34.1679660067227; Fri, 24 Mar 2023 05:14:27 -0700 (PDT) Received: from [192.168.42.100] (83-90-141-187-cable.dk.customer.tdc.net. [83.90.141.187]) by smtp.gmail.com with ESMTPSA id x22-20020a19f616000000b0048a982ad0a8sm3328632lfe.23.2023.03.24.05.14.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Mar 2023 05:14:26 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: <6d9dbeb8-e1e7-8f8e-73eb-8fa66a1323de@redhat.com> Date: Fri, 24 Mar 2023 13:14:24 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 To: Stanislav Fomichev , Alexei Starovoitov References: <167940634187.2718137.10209374282891218398.stgit@firesoul> <167940643669.2718137.4624187727245854475.stgit@firesoul> <080640fc-5835-26f1-2b20-ff079bd59182@redhat.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: MHVOH3444ATNF53X47IKGQO2EA423CAN X-Message-ID-Hash: MHVOH3444ATNF53X47IKGQO2EA423CAN 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, Jesper Dangaard Brouer , bpf , Network Development , Martin KaFai Lau , Alexei Starovoitov , Daniel Borkmann , Alexander Lobakin , Larysa Zaremba , xdp-hints@xdp-project.net, anthony.l.nguyen@intel.com, "Song, Yoong Siang" , "Ong, Boon Leong" , intel-wired-lan , Paolo Abeni , Jesse Brandeburg , Jakub Kicinski , Eric Dumazet , John Fastabend , Jesper Dangaard Brouer , "David S. Miller" X-Mailman-Version: 3.3.8 Precedence: list Subject: [xdp-hints] Re: [PATCH bpf-next V2 3/6] selftests/bpf: xdp_hw_metadata RX hash return code info List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDIzLzAzLzIwMjMgMTguNDcsIFN0YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4gT24g VGh1LCBNYXIgMjMsIDIwMjMgYXQgMTA6MzXigK9BTSBBbGV4ZWkgU3Rhcm92b2l0b3YNCj4gPGFs ZXhlaS5zdGFyb3ZvaXRvdkBnbWFpbC5jb20+IHdyb3RlOg0KPj4NCj4+IE9uIFRodSwgTWFyIDIz LCAyMDIzIGF0IDE6NTHigK9BTSBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyDQo+PiA8amJyb3VlckBy ZWRoYXQuY29tPiB3cm90ZToNCj4+Pg0KPj4+DQo+Pj4gT24gMjIvMDMvMjAyMyAyMC4zMywgU3Rh bmlzbGF2IEZvbWljaGV2IHdyb3RlOg0KPj4+PiBPbiBXZWQsIE1hciAyMiwgMjAyMyBhdCAxMjoz MOKAr1BNIEFsZXhlaSBTdGFyb3ZvaXRvdg0KPj4+PiA8YWxleGVpLnN0YXJvdm9pdG92QGdtYWls LmNvbT4gd3JvdGU6DQo+Pj4+Pg0KPj4+Pj4gT24gV2VkLCBNYXIgMjIsIDIwMjMgYXQgMTI6MjPi gK9QTSBTdGFuaXNsYXYgRm9taWNoZXYgPHNkZkBnb29nbGUuY29tPiB3cm90ZToNCj4+Pj4+Pg0K Pj4+Pj4+IE9uIFdlZCwgTWFyIDIyLCAyMDIzIGF0IDEyOjE34oCvUE0gQWxleGVpIFN0YXJvdm9p dG92DQo+Pj4+Pj4gPGFsZXhlaS5zdGFyb3ZvaXRvdkBnbWFpbC5jb20+IHdyb3RlOg0KPj4+Pj4+ Pg0KPj4+Pj4+PiBPbiBXZWQsIE1hciAyMiwgMjAyMyBhdCAxMjowMOKAr1BNIFN0YW5pc2xhdiBG b21pY2hldiA8c2RmQGdvb2dsZS5jb20+IHdyb3RlOg0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IE9uIFdl ZCwgTWFyIDIyLCAyMDIzIGF0IDk6MDfigK9BTSBBbGV4ZWkgU3Rhcm92b2l0b3YNCj4+Pj4+Pj4+ IDxhbGV4ZWkuc3Rhcm92b2l0b3ZAZ21haWwuY29tPiB3cm90ZToNCj4+Pj4+Pj4+Pg0KPj4+Pj4+ Pj4+IE9uIFdlZCwgTWFyIDIyLCAyMDIzIGF0IDk6MDXigK9BTSBKZXNwZXIgRGFuZ2FhcmQgQnJv dWVyDQo+Pj4+Pj4+Pj4gPGpicm91ZXJAcmVkaGF0LmNvbT4gd3JvdGU6DQo+Pj4+Pj4+Pj4+DQo+ Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+IE9uIDIxLzAzLzIwMjMgMTkuNDcsIFN0 YW5pc2xhdiBGb21pY2hldiB3cm90ZToNCj4+Pj4+Pj4+Pj4+IE9uIFR1ZSwgTWFyIDIxLCAyMDIz IGF0IDY6NDfigK9BTSBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVyDQo+Pj4+Pj4+Pj4+PiA8YnJvdWVy QHJlZGhhdC5jb20+IHdyb3RlOg0KPj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+Pj4gV2hlbiBkcml2 ZXIgZGV2ZWxvcGVycyBhZGQgWERQLWhpbnRzIGtmdW5jcyBmb3IgUlggaGFzaCBpdCBpcw0KPj4+ Pj4+Pj4+Pj4+IHByYWN0aWNhbCB0byBwcmludCB0aGUgcmV0dXJuIGNvZGUgaW4gYnBmX3ByaW50 ayB0cmFjZSBwaXBlIGxvZy4NCj4+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4+IFByaW50IGhhc2gg dmFsdWUgYXMgYSBoZXggdmFsdWUsIGJvdGggQUZfWERQIHVzZXJzcGFjZSBhbmQgYnBmX3Byb2cs DQo+Pj4+Pj4+Pj4+Pj4gYXMgdGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gc3BvdCBwb29yIHF1YWxp dHkgaGFzaGVzLg0KPj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogSmVz cGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVyQHJlZGhhdC5jb20+DQo+Pj4+Pj4+Pj4+Pj4gLS0t DQo+Pj4+Pj4+Pj4+Pj4gICAgIC4uLi90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MveGRwX2h3 X21ldGFkYXRhLmMgIHwgICAgOSArKysrKystLS0NCj4+Pj4+Pj4+Pj4+PiAgICAgdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvYnBmL3hkcF9od19tZXRhZGF0YS5jICAgICAgfCAgICA1ICsrKystDQo+ Pj4+Pj4+Pj4+Pj4gICAgIDIgZmlsZXMgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkNCj4+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS90b29scy90 ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MveGRwX2h3X21ldGFkYXRhLmMgYi90b29scy90ZXN0 aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MveGRwX2h3X21ldGFkYXRhLmMNCj4+Pj4+Pj4+Pj4+PiBp bmRleCA0MGMxN2FkYmY0ODMuLmNlMDcwMTBlNGQ0OCAxMDA2NDQNCj4+Pj4+Pj4+Pj4+PiAtLS0g YS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MveGRwX2h3X21ldGFkYXRhLmMNCj4+ Pj4+Pj4+Pj4+PiArKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3MveGRwX2h3 X21ldGFkYXRhLmMNCj4+Pj4+Pj4+Pj4+PiBAQCAtNzcsMTAgKzc3LDEzIEBAIGludCByeChzdHJ1 Y3QgeGRwX21kICpjdHgpDQo+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgIG1ldGEtPnJ4 X3RpbWVzdGFtcCA9IDA7IC8qIFVzZWQgYnkgQUZfWERQIGFzIG5vdCBhdmFpbCBzaWduYWwgKi8N Cj4+Pj4+Pj4+Pj4+PiAgICAgICAgICAgIH0NCj4+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4+IC0g ICAgICAgaWYgKCFicGZfeGRwX21ldGFkYXRhX3J4X2hhc2goY3R4LCAmbWV0YS0+cnhfaGFzaCkp DQo+Pj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgIGJwZl9wcmludGsoInBvcHVsYXRlZCByeF9o YXNoIHdpdGggJXUiLCBtZXRhLT5yeF9oYXNoKTsNCj4+Pj4+Pj4+Pj4+PiAtICAgICAgIGVsc2UN Cj4+Pj4+Pj4+Pj4+PiArICAgICAgIHJldCA9IGJwZl94ZHBfbWV0YWRhdGFfcnhfaGFzaChjdHgs ICZtZXRhLT5yeF9oYXNoKTsNCj4+Pj4+Pj4+Pj4+PiArICAgICAgIGlmIChyZXQgPj0gMCkgew0K Pj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICBicGZfcHJpbnRrKCJwb3B1bGF0ZWQgcnhfaGFz aCB3aXRoIDB4JTA4WCIsIG1ldGEtPnJ4X2hhc2gpOw0KPj4+Pj4+Pj4+Pj4+ICsgICAgICAgfSBl bHNlIHsNCj4+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgYnBmX3ByaW50aygicnhfaGFzaCBu b3QtYXZhaWwgZXJybm86JWQiLCByZXQpOw0KPj4+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAg ICBtZXRhLT5yeF9oYXNoID0gMDsgLyogVXNlZCBieSBBRl9YRFAgYXMgbm90IGF2YWlsIHNpZ25h bCAqLw0KPj4+Pj4+Pj4+Pj4+ICsgICAgICAgfQ0KPj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+Pj4g ICAgICAgICAgICByZXR1cm4gYnBmX3JlZGlyZWN0X21hcCgmeHNrLCBjdHgtPnJ4X3F1ZXVlX2lu ZGV4LCBYRFBfUEFTUyk7DQo+Pj4+Pj4+Pj4+Pj4gICAgIH0NCj4+Pj4+Pj4+Pj4+PiBkaWZmIC0t Z2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3hkcF9od19tZXRhZGF0YS5jIGIvdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3hkcF9od19tZXRhZGF0YS5jDQo+Pj4+Pj4+Pj4+Pj4g aW5kZXggNDAwYmZlMTlhYmZlLi5mM2VjMDdjY2RjOTUgMTAwNjQ0DQo+Pj4+Pj4+Pj4+Pj4gLS0t IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3hkcF9od19tZXRhZGF0YS5jDQo+Pj4+Pj4+ Pj4+Pj4gKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvYnBmL3hkcF9od19tZXRhZGF0YS5j DQo+Pj4+Pj4+Pj4+Pj4gQEAgLTMsNiArMyw5IEBADQo+Pj4+Pj4+Pj4+Pj4gICAgIC8qIFJlZmVy ZW5jZSBwcm9ncmFtIGZvciB2ZXJpZnlpbmcgWERQIG1ldGFkYXRhIG9uIHJlYWwgSFcuIEZ1bmN0 aW9uYWwgdGVzdA0KPj4+Pj4+Pj4+Pj4+ICAgICAgKiBvbmx5LCBkb2Vzbid0IHRlc3QgdGhlIHBl cmZvcm1hbmNlLg0KPj4+Pj4+Pj4+Pj4+ICAgICAgKg0KPj4+Pj4+Pj4+Pj4+ICsgKiBCUEYtcHJv ZyBicGZfcHJpbnRrIGluZm8gb3V0b3V0IGNhbiBiZSBhY2Nlc3MgdmlhDQo+Pj4+Pj4+Pj4+Pj4g KyAqIC9zeXMva2VybmVsL2RlYnVnL3RyYWNpbmcvdHJhY2VfcGlwZQ0KPj4+Pj4+Pj4+Pj4NCj4+ Pj4+Pj4+Pj4+IHMvb3V0b3V0L291dHB1dC8NCj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+DQo+Pj4+ Pj4+Pj4+IEZpeGVkIGluIFYzDQo+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+PiBCdXQgbGV0J3MgbWF5 YmUgZHJvcCBpdD8gSWYgeW91IHdhbnQgdG8gbWFrZSBpdCBtb3JlIHVzYWJsZSwgbGV0J3MNCj4+ Pj4+Pj4+Pj4+IGhhdmUgYSBzZXBhcmF0ZSBwYXRjaCB0byBlbmFibGUgdHJhY2luZyBhbmQgcGVy aW9kaWNhbGx5IGR1bXAgaXQgdG8NCj4+Pj4+Pj4+Pj4+IHRoZSBjb25zb2xlIGluc3RlYWQgKGFz IHByZXZpb3VzbHkgZGlzY3Vzc2VkKS4NCj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4gQ2F0J2luZyAv c3lzL2tlcm5lbC9kZWJ1Zy90cmFjaW5nL3RyYWNlX3BpcGUgd29yayBmb3IgbWUgcmVnYXJkbGVz cyBvZg0KPj4+Pj4+Pj4+PiBzZXR0aW5nIGluDQo+Pj4+Pj4+Pj4+IC9zeXMva2VybmVsL2RlYnVn L3RyYWNpbmcvZXZlbnRzL2JwZl90cmFjZS9icGZfdHJhY2VfcHJpbnRrL2VuYWJsZQ0KPj4+Pj4+ Pj4+Pg0KPj4+Pj4+Pj4+PiBXZSBsaWtlbHkgbmVlZCBhIGZvbGxvd3VwIHBhdGNoIHRoYXQgYWRk cyBhIEJQRiBjb25maWcgc3dpdGNoIHRoYXQgY2FuDQo+Pj4+Pj4+Pj4+IGRpc2FibGUgYnBmX3By aW50ayBjYWxscywgYmVjYXVzZSB0aGlzIGFkZHMgb3ZlcmhlYWQgYW5kIHRodXMgYWZmZWN0cw0K Pj4+Pj4+Pj4+PiB0aGUgdGltZXN0YW1wcy4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IE5vLiBUaGlz IGlzIGJ5IGRlc2lnbi4NCj4+Pj4+Pj4+PiBEbyBub3QgdXNlIGJwZl9wcmludGsqIGluIHByb2R1 Y3Rpb24uDQo+Pj4NCj4+PiBJIGZ1bGx5IGFncmVlIGRvIG5vdCB1c2UgYnBmX3ByaW50ayBpbiAq cHJvZHVjdGlvbiouDQo+Pj4NCj4+Pj4+Pj4+DQo+Pj4+Pj4+PiBCdXQgdGhhdCdzIG5vdCBmb3Ig dGhlIHByb2R1Y3Rpb24/IHhkcF9od19tZXRhZGF0YSBpcyBhIHNtYWxsIHRvb2wgdG8NCj4+Pj4+ Pj4+IHZlcmlmeSB0aGF0IHRoZSBtZXRhZGF0YSBiZWluZyBkdW1wZWQgaXMgY29ycmVjdCAoZHVy aW5nIHRoZQ0KPj4+Pj4+Pj4gZGV2ZWxvcG1lbnQpLg0KPj4+Pj4+Pj4gV2UgaGF2ZSBhIHByb3Bl ciAobGVzcyB2ZXJib3NlKSBzZWxmdGVzdCBpbg0KPj4+Pj4+Pj4ge3Byb2dzLHByb2dfdGVzdHN9 L3hkcF9tZXRhZGF0YS5jIChvdmVyIHZldGgpLg0KPj4+Pj4+Pj4gVGhpcyB4ZHBfaHdfbWV0YWRh dGEgd2FzIHN1cHBvc2VkIHRvIGJlIHVzZWQgZm9yIHJ1bm5pbmcgaXQgYWdhaW5zdA0KPj4+Pj4+ Pj4gdGhlIHJlYWwgaGFyZHdhcmUsIHNvIGhhdmluZyBhcyBtdWNoIGRlYnVnZ2luZyBhdCBoYW5k IGFzIHBvc3NpYmxlDQo+Pj4+Pj4+PiBzZWVtcyBoZWxwZnVsPyAoYXQgbGVhc3QgaXQgd2FzIGhl bHBmdWwgdG8gbWUgd2hlbiBwbGF5aW5nIHdpdGggbWx4NCkNCj4+Pg0KPj4+IE15IGV4cGVyaWVu Y2Ugd2hlbiBkZXZlbG9waW5nIHRoZXNlIGtmdW5jcyBmb3IgaWdjIChyZWFsIGhhcmR3YXJlKSwg dGhpcw0KPj4+ICJ0b29sIiB4ZHBfaHdfbWV0YWRhdGEgd2FzIHN1cGVyIGhlbHBmdWwsIGJlY2F1 c2UgaXQgd2FzIHZlcnkgdmVyYm9zZQ0KPj4+IChhbmQgSSB3YXMganVnZ2xpbmcgcmVhZGluZyBj aGlwIHJlZ2lzdGVycyBCRS9MRSBhbmQgc2VlIHBhdGNoMSBhIGJ1Z2d5DQo+Pj4gaW1wbGVtZW50 YXRpb24gZm9yIFJYLWhhc2gpLg0KPj4+DQo+Pj4gQXMgSSB3cm90ZSBpbiBjb3Zlci1sZXR0ZXIs IEkgcmVjb21tZW5kIG90aGVyIGRyaXZlciBkZXZlbG9wZXJzIHRvIGRvDQo+Pj4gdGhlIHNhbWUs IGJlY2F1c2UgaXQgcmVhbGx5IGhlbHAgc3BlZWQgdXAgdGhlIGRldmVsb3BtZW50LiBJbiB0aGVv cnkNCj4+PiB4ZHBfaHdfbWV0YWRhdGEgZG9lc24ndCBiZWxvbmcgaW4gc2VsZnRlc3RzIGRpcmVj dG9yeSBhbmQgSU1ITyBpdCBzaG91bGQNCj4+PiBoYXZlIGJlZW4gcGxhY2VkIGluIHNhbXBsZXMv YnBmLywgYnV0IGdpdmVuIHRoZSByZWxhdGlvbnNoaXAgd2l0aCByZWFsDQo+Pj4gc2VsZnRlc3Qg e3Byb2dzLHByb2dfdGVzdHN9L3hkcF9tZXRhZGF0YS5jIEkgdGhpbmsgaXQgbWFrZXMgc2Vuc2Ug dG8NCj4+PiBrZWVwIGhlcmUuDQo+Pj4NCj4+Pg0KPj4+Pj4+Pg0KPj4+Pj4+PiBUaGUgb25seSB1 c2Ugb2YgYnBmX3ByaW50ayBpcyBmb3IgZGVidWdnaW5nIG9mIGJwZiBwcm9ncyB0aGVtc2VsdmVz Lg0KPj4+Pj4+PiBJdCBzaG91bGQgbm90IGJlIHVzZWQgaW4gYW55IHRvb2wuDQo+Pj4+Pj4NCj4+ Pj4+PiBIbW0sIGdvb2QgcG9pbnQuIEkgZ3Vlc3MgaXQgYWxzbyBtZWFucyB3ZSB3b24ndCBoYXZl IHRvIG1lc3Mgd2l0aA0KPj4+Pj4+IGVuYWJsaW5nL2R1bXBpbmcgZnRyYWNlIChhbmQgZG9uJ3Qg bmVlZCB0aGlzIGNvbW1lbnQgYWJvdXQgY2F0J2luZyB0aGUNCj4+Pj4+PiBmaWxlKS4NCj4+Pj4+ PiBKZXNwZXIsIG1heWJlIHdlIGNhbiBpbnN0ZWFkIHBhc3MgdGhlIHN0YXR1cyBvZiB0aG9zZQ0K Pj4+Pj4+IGJwZl94ZHBfbWV0YWRhdGFfeHh4IGtmdW5jcyB2aWEgJ3N0cnVjdCB4ZHBfbWV0YSc/ IEFuZCBkdW1wIHRoaXMgaW5mbw0KPj4+Pj4+IGZyb20gdGhlIHVzZXJzcGFjZSBpZiBuZWVkZWQu DQo+Pj4+Pg0KPj4+Pj4gVGhlcmUgYXJlIHNvIG1hbnkgb3RoZXIgd2F5cyBmb3IgYnBmIHByb2cg dG8gY29tbXVuaWNhdGUgd2l0aCB1c2VyIHNwYWNlLg0KPj4+Pj4gVXNlIHJpbmdidWYsIHBlcmZf ZXZlbnQgYnVmZmVyLCBnbG9iYWwgdmFycywgbWFwcywgZXRjLg0KPj4+Pj4gdHJhY2VfcGlwZSBp cyBkZWJ1ZyBvbmx5IGJlY2F1c2UgaXQncyBnbG9iYWwgYW5kIHdpbGwgY29uZmxpY3Qgd2l0aA0K Pj4+Pj4gYWxsIG90aGVyIGRlYnVnIHNlc3Npb25zLg0KPj4+DQo+Pj4gSSB3YW50IHRvIGhpZ2hs aWdodCBhYm92ZSBwYXJhZ3JhcGg6IEl0IGlzIHZlcnkgdHJ1ZSBmb3IgcHJvZHVjdGlvbg0KPj4+ IGNvZGUuIChBbnlvbmUgR29vZ2xpbmcgdGhpcyBwYXkgYXR0ZW50aW9uIHRvIGFib3ZlIHBhcmFn cmFwaCkuDQo+Pj4NCj4+Pj4NCj4+Pj4g8J+RjSBtYWtlcyBzZW5zZSwgdHkhIGhvcGVmdWxseSB3 ZSB3b24ndCBoYXZlIHRvIGFkZCBhIHNlcGFyYXRlIGNoYW5uZWwNCj4+Pj4gZm9yIHRob3NlIGFu ZCBjYW4gKGFiKXVzZSB0aGUgbWV0YWRhdGEgYXJlYS4NCj4+Pj4NCj4+Pg0KPj4+IFByb3Bvc2Vk IHNvbHV0aW9uOiBIb3cgYWJvdXQgZGVmYXVsdCBkaXNhYmxpbmcgdGhlIGJwZl9wcmludGsncyB2 aWEgYQ0KPj4+IG1hY3JvIGRlZmluZSwgYW5kIHRoZW4gZHJpdmVyIGRldmVsb3BlciBjYW4gbWFu dWFsbHkgcmVlbmFibGUgdGhlbQ0KPj4+IGVhc2lseSB2aWEgYSBzaW5nbGUgZGVmaW5lLCB0byBl bmFibGUgYSBkZWJ1Z2dpbmcgbW9kZS4NCj4+Pg0KPj4+IEkgd2FzIG9ubHkgd2F0Y2hpbmcgL3N5 cy9rZXJuZWwvZGVidWcvdHJhY2luZy90cmFjZV9waXBlIHdoZW4gSSB3YXMNCj4+PiBkZWJ1Z2dp bmcgYSBkcml2ZXIgaXNzdWUuICBUaHVzLCBhbiBleHRyYSBzdGVwIG9mIG1vZGlmeWluZyBhIHNp bmdsZQ0KPj4+IGRlZmluZSBpbiBCUEYgc2VlbXMgZWFzaWVyLCB0aGFuIGluc3RydW1lbnRpbmcg bXkgZHJpdmVyIHdpdGggcHJpbnRrLg0KPj4NCj4+IEl0J3MgY2VydGFpbmx5IGZpbmUgdG8gaGF2 ZSBjb21tZW50ZWQgb3V0IGJwZl9wcmludGsgaW4gc2VsZnRlc3RzDQo+PiBhbmQgc2FtcGxlIGNv ZGUuDQo+PiBCdXQgdGhlIHBhdGNoIGRvZXM6DQo+PiArICAgICAgIGlmIChyZXQgPj0gMCkgew0K Pj4gKyAgICAgICAgICAgICAgIGJwZl9wcmludGsoInBvcHVsYXRlZCByeF9oYXNoIHdpdGggMHgl MDhYIiwgbWV0YS0+cnhfaGFzaCk7DQo+PiArICAgICAgIH0gZWxzZSB7DQo+PiArICAgICAgICAg ICAgICAgYnBmX3ByaW50aygicnhfaGFzaCBub3QtYXZhaWwgZXJybm86JWQiLCByZXQpOw0KPj4g ICAgICAgICAgICAgICAgICBtZXRhLT5yeF9oYXNoID0gMDsgLyogVXNlZCBieSBBRl9YRFAgYXMg bm90IGF2YWlsIHNpZ25hbCAqLw0KPj4gKyAgICAgICB9DQo+Pg0KPj4gSXQgZmVlbHMgdGhhdCBw cmludGsgaXMgdGhlIG9ubHkgdGhpbmcgdGhhdCBwcm92aWRlcyB0aGUgc2lnbmFsIHRvIHRoZSB1 c2VyLg0KPj4gRG9pbmcgcy9yZXQgPj0gMC90cnVlLyB3b24ndCBtYWtlIGFueSBkaWZmZXJlbmNl IHRvIHNlbGZ0ZXN0IGFuZA0KPj4gdG8gdGhlIGNvbnN1bWVyIGFuZCB0aGF0J3MgbXkgbWFpbiBj b25jZXJuIHdpdGggc3VjaCBzZWxmdGVzdC9zYW1wbGVzLg0KPiANCj4gSSBhZ3JlZSwgaGF2aW5n IHRoaXMgc2lnbmFsIGRlbGl2ZXJlZCB0byB0aGUgdXNlciAod2l0aG91dCB0aGUgaWZkZWZzKQ0K PiBzZWVtcyBsaWtlIGEgYmV0dGVyIHdheSB0byBnby4NCg0KSSBhZ3JlZSB0aGF0IHdlIGhhdmUg YSBzaWduYWwgdGhhdCB3ZSBhcmUgbm90IGRlbGl2ZXJpbmcgdG8gdGhlIHVzZXIuDQoNCkp1c3Qg c28gd2UgYXJlIG9uIHRoZSBzYW1lIHBhZ2UsIGxldCBtZSBleHBsYWluIGhvdyBhYm92ZSBjb2Rl IGlzDQpwcm9ibGVtYXRpYy4gQXMgdGhlIHJ4X2hhc2ggdmFsdWUgemVybyBoYXZlIHR3byBtZWFu aW5nczoNCg0KICAoMSkgTmVnYXRpdmUgJ3JldCcgc2V0IHJ4X2hhc2g9MCBhcyBlcnIgc2lnbmFs IHRvIEFGX1hEUCAidXNlciINCiAgKDIpIEhhcmR3YXJlIHNldCByeF9oYXNoPTAsIHdoZW4gaGFz aC10eXBlID09IElHQ19SU1NfVFlQRV9OT19IQVNIDQoNCkNhc2UgKDIpIGhhcHBlbnMgZm9yIGFs bCBMMiBwYWNrZXRzIGUuZy4gQVJQIHBhY2tldHMuICBTZWUgaW4gcGF0Y2gtMQ0Kd2hlcmUgSSBt YXAgSUdDX1JTU19UWVBFX05PX0hBU0ggdG8gbmV0c3RhY2sgdHlwZSBQS1RfSEFTSF9UWVBFX0wy Lg0KSSBkaWQgY29uc2lkZXIgcmV0dXJuIGVycm5vL25lZ2F0aXZlIG51bWJlciBmb3IgSUdDX1JT U19UWVBFX05PX0hBU0gsDQpidXQgSSB3YW50ZWQgdG8ga2VlcCBrZnVuYyBjb2RlIGFzIHNpbXBs ZSBhcyBwb3NzaWJsZSAoYm90aCBmb3Igc3BlZWQNCmFuZCBpZiB3ZSBuZWVkIHRvIHVucm9sbCBh cyBieXRlLWNvZGUgbGF0ZXIpLiBBcyBpMjI1IGhhcmR3YXJlIHN0aWxsDQp3cml0ZXMgemVybyBp bnRvIGhhc2ggd29yZCBJIGNob29zZSB0byBrZWVwIGNvZGUgc2ltcGxlLg0KDQoNCklNSE8gdGhp cyBzeW1wdG9tIGlzIHJlbGF0ZWQgdG8gYW4gQVBJIHByb2JsZW0gb2YgdGhlIGtmdW5jLCB0aGF0 DQpkb2Vzbid0IHByb3ZpZGUgdGhlIGhhc2gtdHlwZS4NCg0KPiBTZWVtcyB0cml2aWFsIHRvIGRv IHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dpbmcgYmVsb3c/ICh1bnRlc3RlZCwNCj4gZG9lc24n dCBjb21waWxlLCBnbWFpbC1jb3B5LXBhc3RlZCBzbyBkb24ndCB0cnkgdG8gYXBwbHkgaXQpDQo+ IA0KDQpJZiB0aGUga2Z1bmMgcHJvdmlkZWQgdGhlIGhhc2gtdHlwZSwgd2hpY2ggd2lsbCBiZSBh IHBvc2l0aXZlIG51bWJlci4NClRoZW4gSSB3b3VsZCBhZGQgYSBzaWduZWQgaW50ZWdlciB0byBt ZXRhLCB3aGljaCBjYW4gc3RvcmUgdGhlIGhhc2gtdHlwZQ0Kb3IgdGhlIG5lZ2F0aXZlIGVycm5v IG51bWJlci4NCg0KDQo+IGRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYv cHJvZ3MveGRwX2h3X21ldGFkYXRhLmMNCj4gYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYv cHJvZ3MveGRwX2h3X21ldGFkYXRhLmMNCj4gaW5kZXggNGM1NWI0ZDc5ZDNkLi4wNjFjNDEwZjY4 ZWEgMTAwNjQ0DQo+IC0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2JwZi9wcm9ncy94ZHBf aHdfbWV0YWRhdGEuYw0KPiArKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9icGYvcHJvZ3Mv eGRwX2h3X21ldGFkYXRhLmMNCj4gQEAgLTEyLDYgKzEyLDkgQEAgc3RydWN0IHsNCj4gICAgX190 eXBlKHZhbHVlLCBfX3UzMik7DQo+ICAgfSB4c2sgU0VDKCIubWFwcyIpOw0KPiANCj4gK2ludCBy ZWNlaXZlZDsNCj4gK2ludCBkcm9wcGVkOw0KPiArDQo+ICAgZXh0ZXJuIGludCBicGZfeGRwX21l dGFkYXRhX3J4X3RpbWVzdGFtcChjb25zdCBzdHJ1Y3QgeGRwX21kICpjdHgsDQo+ICAgIF9fdTY0 ICp0aW1lc3RhbXApIF9fa3N5bTsNCj4gICBleHRlcm4gaW50IGJwZl94ZHBfbWV0YWRhdGFfcnhf aGFzaChjb25zdCBzdHJ1Y3QgeGRwX21kICpjdHgsDQo+IEBAIC01MiwxMSArNTUsMTEgQEAgaW50 IHJ4KHN0cnVjdCB4ZHBfbWQgKmN0eCkNCj4gICAgaWYgKHVkcC0+ZGVzdCAhPSBicGZfaHRvbnMo OTA5MSkpDQo+ICAgIHJldHVybiBYRFBfUEFTUzsNCg0KSXQgd2Ugd2FudGVkIHRvIG1ha2UgdGhp cyBwcm9ncmFtIHVzZXIgImZyaWVuZGx5Iiwgd2Ugc2hvdWxkIGFsc28gY291bnQNCnBhY2tldHMg dGhhdCBkb2Vzbid0IGdldCByZWRpcmVjdGVkIHRvIEFGX1hEUCAidXNlciIgYW5kIGluc3RlYWQg c2tpcHBlZC4NCg0KPiAtIGJwZl9wcmludGsoImZvcndhcmRpbmcgVURQOjkwOTEgdG8gQUZfWERQ Iik7DQo+ICsgX19zeW5jX2ZldGNoX2FuZF9hZGQoJnJlY2VpdmVkLCAxKTsNCj4gDQo+ICAgIHJl dCA9IGJwZl94ZHBfYWRqdXN0X21ldGEoY3R4LCAtKGludClzaXplb2Yoc3RydWN0IHhkcF9tZXRh KSk7DQo+ICAgIGlmIChyZXQgIT0gMCkgew0KPiAtIGJwZl9wcmludGsoImJwZl94ZHBfYWRqdXN0 X21ldGEgcmV0dXJuZWQgJWQiLCByZXQpOw0KPiArIF9fc3luY19mZXRjaF9hbmRfYWRkKCZkcm9w cGVkLCAxKTsNCj4gICAgcmV0dXJuIFhEUF9QQVNTOw0KDQpJcyBpdCBhICJkcm9wcGVkIiBvciBh ICJza2lwcGVkIiBwYWNrZXQgKHJldHVybiBYRFBfUEFTUyk/DQoNCj4gICAgfQ0KWy4uLl0NCg0K LS1KZXNwZXINCg0K