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 665E9985DE9 for ; Wed, 6 Jul 2022 15:29:09 +0200 (CEST) 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=VDPEWoJx DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1657114148; 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=XYgzxfluOfIIjClWUU6GcJbauN/JHiH7jO9rrVTt3Po=; b=VDPEWoJx7G1EqPk2/UYBBKTMtHvjwE58eUUrGg8YLJnWR/08hjAwY8GQkazgk3YSzCtYrM jj2voVTCSpEDXFKXrv/EvUCIbYq1u7b3WRU8+LZgRtakmDWyWlwB3ELkgaO60pJUw/R0eP U1sa3dfRAz3JjmOhmPpTIBfNxQkJB0Q= Received: from mail-lj1-f199.google.com (mail-lj1-f199.google.com [209.85.208.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-314-rLlC3IKhNd6EODXC1Zqc2A-1; Wed, 06 Jul 2022 09:29:06 -0400 X-MC-Unique: rLlC3IKhNd6EODXC1Zqc2A-1 Received: by mail-lj1-f199.google.com with SMTP id g20-20020a2eb0d4000000b0025d3a40ec73so1211033ljl.5 for ; Wed, 06 Jul 2022 06:29:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:message-id:date:mime-version:user-agent:cc :subject:content-language:to:references:in-reply-to :content-transfer-encoding; bh=XYgzxfluOfIIjClWUU6GcJbauN/JHiH7jO9rrVTt3Po=; b=fdFX2Fl9Yc2XEMReZqLBIylwRD2wLuibrKYhmQoMJSzlyRiSmgJUDribt41N9uiXWN NnKuEc4U+zSbKplp64QleOa2C/WoozMsekEkoCsCbFsxZn0IafZYsbZzu5o9EM5L7iQx VwJaFPqwrRjt6ndZjqPopeGkOgtPf0gMdvU2QwMx76RIITINo1Ba++QqqXGymFLP+vGw SjIW/E5IMe4IbAlalMvX4BmirPpU7wQTUvLU3JNP5eMvZzEpJA+aNcwSiMv1cfUzpbsJ 48mJm0g4DbyedbWGMPyqFsRVsLrjyvCPVw/U+x3N6sW3aGAgsRzqld9VhoXty/mhVAMg r9WA== X-Gm-Message-State: AJIora8UOLgEo1gcbY/yeDMy4l+59LqVI0YCFGpRLzwz1gH+HXjqk0Dm JeFUHs8IXWN9WpDk3aqrWUNTGHXuarWAewJft8nm8vYBQo0JEBMTUIenk5XBS0RW8E1+PRfr4il TrjpoB7+QVWQgJN7GuMjg X-Received: by 2002:ac2:4c52:0:b0:481:ce2:1802 with SMTP id o18-20020ac24c52000000b004810ce21802mr25984169lfk.586.1657114145264; Wed, 06 Jul 2022 06:29:05 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uJR12B+FxKgLoUGKMl/E+JKmbsDpjDHnPf8qNy7nyhWtSkNY4BJ97zeI8TEyYf3FoQ6ng/2Q== X-Received: by 2002:ac2:4c52:0:b0:481:ce2:1802 with SMTP id o18-20020ac24c52000000b004810ce21802mr25984143lfk.586.1657114144928; Wed, 06 Jul 2022 06:29:04 -0700 (PDT) Received: from [192.168.0.50] (87-59-106-155-cable.dk.customer.tdc.net. [87.59.106.155]) by smtp.gmail.com with ESMTPSA id a26-20020ac25e7a000000b0047dd412c4dbsm6268640lfr.283.2022.07.06.06.29.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 06 Jul 2022 06:29:04 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: Date: Wed, 6 Jul 2022 15:29:03 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 To: Larysa Zaremba , Jesper Dangaard Brouer , "bpf@vger.kernel.org" References: In-Reply-To: Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jbrouer@redhat.com 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: D73NNSD77QQOSJLIAWU75TBVW6TX3CTJ X-Message-ID-Hash: D73NNSD77QQOSJLIAWU75TBVW6TX3CTJ 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, Toke Hoiland-Jorgensen , Andrii Nakryiko , "xdp-hints@xdp-project.net" , "Lobakin, Alexandr" , Netdev X-Mailman-Version: 3.3.5 Precedence: list Subject: [xdp-hints] Re: [PATCH RFC bpf-next 5/9] xdp: controlling XDP-hints from BPF-prog via helper List-Id: XDP hardware hints design discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: DQoNCk9uIDA1LzA3LzIwMjIgMTkuMDcsIExhcnlzYSBaYXJlbWJhIHdyb3RlOg0KPiBPbiBNb24s IEp1bCAwNCwgMjAyMiBhdCAwODoyNjoxNVBNICswMjAwLCBKZXNwZXIgRGFuZ2FhcmQgQnJvdWVy IHdyb3RlOg0KPj4NCj4+DQo+PiBPbiAwNC8wNy8yMDIyIDEzLjAwLCBaYXJlbWJhLCBMYXJ5c2Eg d3JvdGU6DQo+Pj4gVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vuc2VuIDx0b2tlQHJlZGhhdC5jb20+IHdy aXRlczoNCj4+Pj4NCj4+Pj4gSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8amJyb3VlckByZWRoYXQu Y29tPiB3cml0ZXM6DQo+Pj4+DQo+Pj4+PiBPbiAyOS8wNi8yMDIyIDE2LjIwLCBUb2tlIEjDuGls YW5kLUrDuHJnZW5zZW4gd3JvdGU6DQo+Pj4+Pj4gSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJv dWVyQHJlZGhhdC5jb20+IHdyaXRlczoNCj4+Pj4+Pg0KPj4+Pj4+PiBYRFAgQlBGLXByb2cncyBu ZWVkIGEgd2F5IHRvIGludGVyYWN0IHdpdGggdGhlIFhEUC1oaW50cy4gVGhpcw0KPj4+Pj4+PiBw YXRjaCBpbnRyb2R1Y2VzIGEgQlBGLWhlbHBlciBmdW5jdGlvbiwgdGhhdCBhbGxvdyBYRFAgQlBG LXByb2cncw0KPj4+Pj4+PiB0byBpbnRlcmFjdCB3aXRoIHRoZSBYRFAtaGludHMuDQo+Pj4+Pj4+ DQo+Pj4+Pj4+IEJQRi1wcm9nIGNhbiBxdWVyeSBpZiBhbnkgWERQLWhpbnRzIGhhdmUgYmVlbiBz ZXR1cCBhbmQgaWYgdGhpcyBpcw0KPj4+Pj4+PiBjb21wYXRpYmxlIHdpdGggdGhlIHhkcF9oaW50 c19jb21tb24gc3RydWN0LiBJZiBYRFAtaGludHMgYXJlDQo+Pj4+Pj4+IGF2YWlsYWJsZSB0aGUg QlBGICJvcmlnaW4iIGlzIHJldHVybmVkIChzZWUgZW51bQ0KPj4+Pj4+PiB4ZHBfaGludHNfYnRm X29yaWdpbikgYXMgQlRGIGNhbiBjb21lIGZyb20gZGlmZmVyZW50IHNvdXJjZXMgb3INCj4+Pj4+ Pj4gb3JpZ2lucyBlLmcuIHZtbGludXgsIG1vZHVsZSBvciBsb2NhbC4NCj4+Pj4+Pg0KPj4+Pj4+ IEknbSBub3Qgc3VyZSBJIHF1aXRlIHVuZGVyc3RhbmQgd2hhdCB0aGlzIG9yaWdpbiBpcyBzdXBw b3NlZCB0byBiZQ0KPj4+Pj4+IGdvb2QgZm9yPw0KPj4+Pj4NCj4+Pj4+IFNvbWUgYmFja2dyb3Vu ZCBpbmZvIG9uIEJURiBpcyBuZWVkZWQgaGVyZTogQlRGX0lEIG51bWJlcnMgYXJlIG5vdA0KPj4+ Pj4gZ2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXJzLCB0aHVzIHdlIG5lZWQgdG8ga25vdyB3aGVy ZSBpdCBvcmlnaW5hdGUNCj4+Pj4+IGZyb20sIHRvIG1ha2UgaXQgdW5pcXVlIChhcyB3ZSBzdG9y ZSB0aGlzIEJURl9JRCBpbiBYRFAtaGludHMpLg0KPj4+Pj4NCj4+Pj4+IFRoZXJlIGlzIGEgY29u bmVjdGlvbiBiZXR3ZWVuIG9yaWdpbiAidm1saW51eCIgYW5kICJtb2R1bGUiLCB3aGljaA0KPj4+ Pj4gaXMgdGhhdCB2bWxpbnV4IHdpbGwgc3RhcnQgYXQgSUQ9MSBhbmQgZW5kIGF0IGEgbWF4IElE IG51bWJlci4NCj4+Pj4+IE1vZHVsZXMgcmVmZXIgdG8gSUQncyBpbiAidm1saW51eCIsIGFuZCBm b3IgdGhpcyB0byB3b3JrLCB0aGV5IHdpbGwNCj4+Pj4+IHNoaWZ0IHRoZWlyIG93biBudW1iZXJp bmcgdG8gc3RhcnQgYWZ0ZXIgSUQ9bWF4LXZtbGludXgtaWQuDQo+Pj4+Pg0KPj4+Pj4gT3JpZ2lu ICJsb2NhbCIgaXMgZm9yIEJURiBpbmZvcm1hdGlvbiBzdG9yZWQgaW4gdGhlIEJQRi1FTEYgb2Jq ZWN0IGZpbGUuDQo+Pj4+PiBUaGVpciBudW1iZXJpbmcgc3RhcnRzIGF0IElEPTEuICBUaGUgdXNl LWNhc2UgaXMgdGhhdCBhIEJQRi1wcm9nDQo+Pj4+PiB3YW50IHRvIGV4dGVuZCB0aGUga2VybmVs IGRyaXZlcnMgQlRGLWxheW91dCwgYW5kIGUuZy4gYWRkIGENCj4+Pj4+IFJYLXRpbWVzdGFtcCBs aWtlIFsxXS4gIFRoZW4gQlBGLXByb2cgY2FuIGNoZWNrIGlmIGl0IGtub3dzIG1vZHVsZSdzDQo+ Pj4+PiBCVEZfSUQgYW5kIHRoZW4gZXh0ZW5kIHZpYSBicGZfeGRwX2FkanVzdF9tZXRhLCBhbmQg dXBkYXRlIEJURl9JRCBpbg0KPj4+Pj4gWERQLWhpbnRzIGFuZCBjYWxsIHRoZSBoZWxwZXIgKEkg aW50cm9kdWNlZCkgbWFya2luZyB0aGlzIGFzIG9yaWdpbg0KPj4+Pj4gImxvY2FsIiBmb3Iga2Vy bmVsIHRvIGtub3cgdGhpcyBpcyBuby1sb25nZXIgb3JpZ2luICJtb2R1bGUiLg0KPj4+Pg0KPj4+ PiBSaWdodCwgSSByZWFsaXNlIHRoYXQgOikNCj4+Pj4NCj4+Pj4gTXkgcG9pbnQgd2FzIHRoYXQg anVzdCBrbm93aW5nICJ0aGlzIGlzIGEgQlRGIElEIGNvbWluZyBmcm9tIGEgbW9kdWxlIg0KPj4+ PiBpcyBub3QgdGVycmlibHkgdXNlZnVsOyB5b3UgY291bGQgYWxyZWFkeSBmaWd1cmUgdGhhdCBv dXQgYnkganVzdA0KPj4+PiBsb29raW5nIGF0IHRoZSBJRCBhbmQgc2VlaW5nIGlmIGl0J3MgbGFy Z2VyIHRoYW4gdGhlIG1heGltdW0gSUQgaW4gdm1saW51eCBCVEYuDQo+Pj4+DQo+Pj4+IFJhdGhl ciwgd2hhdCB3ZSBuZWVkIGlzIGEgd2F5IHRvIGlkZW50aWZ5ICp3aGljaCogbW9kdWxlIHRoZSBC VEYgSUQNCj4+Pj4gY29tZXMgZnJvbTsgYW5kIGx1Y2tpbHksIHRoZSBrZXJuZWwgYXNzaWducyBh IHVuaXF1ZSBJRCB0byBldmVyeSBCVEYNCj4+Pj4gKm9iamVjdCogYXMgd2VsbCBhcyB0byBlYWNo IHR5cGUgSUQgd2l0aGluIHRoYXQgb2JqZWN0LiBUaGVzZSBjYW4gYmUNCj4+Pj4gZHVtcGVkIGJ5 IGJwZnRvb2w6DQo+Pj4+DQo+Pj4+ICMgYnBmdG9vbCBidGYNCj4+Pj4gYnBmdG9vbCBidGYNCj4+ Pj4gW3N1ZG9dIHBhc3N3b3JkIGZvciBhbHJ1YToNCj4+Pj4gMTogbmFtZSBbdm1saW51eF0gIHNp emUgNDgwMDE4N0INCj4+Pj4gMjogbmFtZSBbc2VyaW9dICBzaXplIDI1ODhCDQo+Pj4+IDM6IG5h bWUgW2k4MDQyXSAgc2l6ZSAxMTc4NkINCj4+Pj4gNDogbmFtZSBbcm5nX2NvcmVdICBzaXplIDgx ODRCDQo+Pj4+IFsuLi5dDQo+Pj4+IDIwNjI6IG5hbWUgPGFub24+ICBzaXplIDM2OTY1Qg0KPj4+ PiAJcGlkcyBicGZ0b29sKDU0NzI5OCkNCj4+Pj4NCj4+Pj4gSURzIDItNCBhcmUgbW9kdWxlIEJU RiBvYmplY3RzLCBhbmQgdGhhdCBsYXN0IG9uZSBpcyB0aGUgSUQgb2YgYSBCVEYNCj4+Pj4gb2Jq ZWN0IGxvYWRlZCBhbG9uZyB3aXRoIGEgQlBGIHByb2dyYW0gYnkgYnBmdG9vbCBpdHNlbGYuLi4g U28gd2UgKmRvKg0KPj4+PiBpbiBmYWN0IGhhdmUgYSB1bmlxdWUgSUQsIGJ5IGNvbWJpbmluZyB0 aGUgQlRGIG9iamVjdCBJRCB3aXRoIHRoZSB0eXBlDQo+Pj4+IElEOyB0aGlzIGlzIHdoYXQgQWxl eGFuZGVyIGlzIHByb3Bvc2luZyB0byBwdXQgaW50byB0aGUgeGRwLWhpbnRzDQo+Pj4+IHN0cnVj dCBhcyB3ZWxsIChjb21iaW5pbmcgdGhlIHR3byBJRHMgaW50byBhIHNpbmdsZSB1NjQpLg0KPj4N Cj4+IFRoYW5rcyBmb3IgdGhlIGV4cGxhbmF0aW9uLiBJIHRoaW5rIEkgdW5kZXJzdGFuZCBpdCBu b3csIGFuZCBJIGFncmVlDQo+PiB0aGF0IHdlIHNob3VsZCBleHRlbmQvY29tYmluaW5nIHRoZSB0 d28gSURzIGludG8gYSBzaW5nbGUgdTY0Lg0KPj4NCj4+IFRvIEFuZHJpaSwgd2hhdCBpcyB0aGUg cmlnaHQgdGVybWlub2xvZ3kgd2hlbiB0YWxraW5nIGFib3V0IHRoZXNlIHR3bw0KPj4gZGlmZmVy ZW50IEJURi1JRCdzOg0KPj4NCj4+IC0gQlRGIG9iamVjdCBJRCBhbmQgQlRGIHR5cGUgSUQ/DQo+ Pg0KPj4gLSBXaGVyZSBCVEYgKm9iamVjdCogSUQgYXJlIHRoZSBJRHMgd2Ugc2VlIGFib3ZlIGZy b20gJ2JwZnRvb2wgYnRmJywNCj4+ICAgIHdoZXJlIHZtbGludXg9MSBhbmQgbW9kdWxlJ3MgSURz IHdpbGwgc3RhcnQgYWZ0ZXIgMS4NCj4+DQo+PiAtIFdoZXJlIEJURiAqdHlwZSogSUQgYXJlIHRo ZSBJRHMgdGhlIGluZGl2aWR1YWwgZGF0YSAidHlwZXMiIHdpdGhpbiBhDQo+PiAgICBCVEYgIm9i amVjdCIgKGUuZy4gc3RydWN0IHhkcF9oaW50c19jb21tb24gdGhhdCBCUEYtcHJvZydzIGNhbiBn ZXQNCj4+ICAgIHZpYSBjYWxsaW5nIGJwZl9jb3JlX3R5cGVfaWRfa2VybmVsKCkpLg0KPj4NCj4g DQo+IEFGQUlLLCB0aGF0J3MgdGhlIG1vc3QgY29ycmVjdCB3YXkgb2YgZGlzdGluZ3Vpc2ggb25l IGZyb20gYW5vdGhlciBpbg0KPiBjb252ZXJzYXRpb24uDQoNCkdvb2QgdG8gZ2V0IGNvbmZpcm1l ZCB0aGF0IHlvdSBhZ3JlZSB3aXRoIHRoZXNlIHRlcm1zLg0KDQo+IA0KPiBXb3VsZCBiZSBzdGls bCBncmVhdCwgaWYgQW5kcmlpIGNvdWxkIGNvbmZpcm0gdGhhdC4NCg0KWWVzLCBpdCB3b3VsZCA6 LSkNCg0KPiBJIHNob3VsZCBtZW50aW9uIHRoYXQgb3V0IHBhdGNoIG1ha2VzIGJwZl9jb3JlX3R5 cGVfaWRfa2VybmVsKCkgcmV0dXJuDQo+IHU2NCAoQlRGIG9iaiBJRCArIEJURiB0eXBlIElEKSwg YnV0IHlvdXIgc3RhdGVtZW50IGlzIHRydWUgZm9yIGN1cnJlbnQNCj4gbGliYnBmIHZlcnNpb24u DQoNCkl0IHNvdW5kcyB1c2VmdWwgdGhhdCB5b3VyIHBhdGNoZWQgYnBmX2NvcmVfdHlwZV9pZF9r ZXJuZWwoKSByZXR1cm5zIHU2NA0KKEJURiBvYmogSUQgKyBCVEYgdHlwZSBJRCkuDQoNCkkgd29u ZGVyIGlmL2hvdyB3ZSBuZWVkIHRvIGRlYWwgd2l0aCBsaWJicGYgdmVyc2lvbnMgdGhhdCBvbmx5 IHJldHVybnMNCnRoZSB1MzIgQlRGIHR5cGUgSUQgPw0KDQo+IA0KPj4NCj4+PiBUaGF0J3MgY29y cmVjdCwgY29uY2VwdCB3YXMgcHJldmlvdXNseSBkaXNjdXNzZWQgWzFdLiBUaGUgSUQgb2YgQlRG IG9iamVjdCB3YXNuJ3QNCj4+PiBleHBvc2VkIGluIENPLVJFIGFsbG9jYXRpb25zIHRob3VnaCwg d2UndmUgY2hhbmdlZCBpdCBpbiB0aGUgZmlyc3QgNCBwYXRjaGVzLg0KPj4+IFRoZSBtYWluIGxv Z2ljIGlzIGluICJsaWJicGY6IGZhY3RvciBvdXQgQlRGIGxvYWRpbmcgZnJvbSBsb2FkX21vZHVs ZV9idGZzKCkiDQo+Pj4gYW5kICJsaWJicGY6IHBhdGNoIG1vZHVsZSBCVEYgSUQgaW50byBCUEYg aW5zbnMiLg0KPj4+DQo+Pj4gV2UgaGF2ZSBhIHNhbXBsZSB0aGF0IHdhc24ndCBpbmNsdWRlZCBl dmVudHVhbGx5LCBidXQgY2FuIHBvc3NpYmx5DQo+Pj4gZ2l2ZSBhIGdlbmVyYWwgdW5kZXJzdGFu ZGluZyBvZiBvdXIgYXBwcm9hY2ggWzJdLg0KPj4+DQo+Pj4gWzFdIGh0dHBzOi8vbG9yZS5rZXJu ZWwub3JnL2FsbC9DQUVmNEJ6Wk89N01LV2Z4Mk9Dd0VjK3NLa2ZQWll6YUVMdW9iaTRxNXAxYk9L azRBUVFAbWFpbC5nbWFpbC5jb20vDQo+Pj4gWzJdIGh0dHBzOi8vZ2l0aHViLmNvbS9hbG9iYWtp bi9saW51eC9wdWxsLzE2L2ZpbGVzI2RpZmYtYzU5ODM5MDRjYmUwYzI4MDQ1M2Q1OWU4YTFlZWZi NTZjNjcwMThjMzhkNWRhMGMxMTIyYWJjODYyMjVmYzdjOQ0KPj4+DQo+PiAoYXBwcmVjaWF0ZSB0 aGUgbGlua3MpDQo+Pg0KPj4gSSB3b25kZXIgaG93IHRoZXNlIEJURiBvYmplY3QgSURzIGdldHMg cmVzb2x2ZWQgZm9yIG15ICJsb2NhbCIgY2F0ZWdvcnk/DQo+PiAoT3JpZ2luICJsb2NhbCIgaXMg Zm9yIEJURiBpbmZvcm1hdGlvbiBzdG9yZWQgaW4gdGhlIEJQRi1FTEYgb2JqZWN0IGZpbGUpDQo+ Pg0KPj4gTm90ZTogRm9yICJsb2NhbCIgQlRGIHR5cGUgSURzIEJQRi1wcm9nIHJlc29sdmUgdGhl c2UgdmlhDQo+PiBicGZfY29yZV90eXBlX2lkX2xvY2FsKCkgKHdoeSBJIGNob29zZSB0aGUgdGVy bSAibG9jYWwiKS4NCj4+DQo+IA0KPiBFdmVyeSBwcm9ncmFtIGR1cmluZyBDTy1SRSByZWxvY3Mg c2VlcyBhIHNpbmdsZSBsb2NhbCBCVEYgb2JqLCBpbiB3aGljaA0KPiBCVEYgdHlwZSBJRHMgc3Rh cnQgZnJvbSAxIGFuZCBjb3JyZXNwb25kIHRvIGFsbCBkYXRhIHR5cGVzIHVzZWQgaW4NCj4gcHJv Z3JhbS4gU28gbG9jYWwgQlRGIG9iaiBhbmQgdHlwZSBJRHMgaW5zaWRlIGFyZSB2YWxpZCBvbmx5 IGluIHNpbmdsZQ0KPiBwcm9ncmFtLCB0aGVyZWZvcmUgdTMyIHR5cGUgSUQgcmV0dXJuZWQgYnkg YnBmX2NvcmVfdHlwZV9pZF9sb2NhbCgpIGlzDQo+IGVub3VnaC4NCg0KU3VyZSBpdCBtYWtlcyBz ZW5zZSBpZiBvbmx5IGEgc2luZ2xlIFhEUC1wcm9nIGlzIHJ1bm5pbmcuDQoNCkZvciB0aGUgdXNl LWNhc2Ugb2YgbXVsdGlwbGUgWERQLXByb2dzIChlLmcuIHZpYSBsaWJ4ZHApIGFyZSBydW5uaW5n LA0Kd2hlcmUgdGhleSBzZW5kIGluZm8gdG8gZWFjaC1vdGhlciB2aWEgbWV0YWRhdGEgYXJlYS4g VGhlcmUgaXQgd291bGQgYmUNCnZhbHVhYmxlIHRvIGdldCBhIEJURiAqb2JqZWN0KiBJRCBhc3Nv Y2lhdGVkIHdpdGggdGhlc2UgImxvY2FsIiB0eXBlcy4NCg0KTm90ZSB0aGF0IEkgYmVsaWV2ZSB0 aGF0IGEgVEMgaW5ncmVzcyBCUEYtcHJvZyBjYW4gYWxzbyByZWFkIHRoZQ0KbWV0YWRhdGEgYXJl YS4NCg0KPiBMb2NhbCBJRHMgYXJlIG5vdCByZXNvbHZlZCwgdGhleSBhcmUganVzdCBhc3NpZ25l ZCBkdXJpbmcgY29tcGlsYXRpb24uDQo+IEFmdGVyIHByb2dyYW0gbG9hZCB3aXRoIENPLVJFIGVh Y2ggbG9jYWwgdHlwZSBnZXRzIGEgcmVzb2x2ZWQNCj4gdm1saW51eC9tb2R1bGUgQlRGIG9iaiBw b2ludGVyIGFuZCBhbiBJRCBvZiBhIHR5cGUgaW5zaWRlIHRoaXMgQlRGIG9iag0KPiB0aGF0IGlz IHNpbWlsYXIgZW5vdWdoLg0KDQpZZXMsIGJ1dCBvbmx5IGlmIF9fYXR0cmlidXRlX18oKHByZXNl cnZlX2FjY2Vzc19pbmRleCkpIGlzIGRlZmluZWQgb24NCnRoZSAibG9jYWwiIEJQRi1wcm9nIHN0 cnVjdCB3aWxsIGxpYmJwZiBkbyB0aGlzIG1hdGNoaW5nIHRvIGtlcm5lbA0Kc3RydWN0cywgc2Vl WzFdLg0KDQogIFsxXSANCmh0dHBzOi8vZ2l0aHViLmNvbS94ZHAtcHJvamVjdC9icGYtZXhhbXBs ZXMvYmxvYi8xODkwODg3M2E3ZjQ4NDgzZWQ4YmFiMmQ5NDllODc2MGNmZjMwODEwL0FGX1hEUC1p bnRlcmFjdGlvbi9hZl94ZHBfa2Vybi5jI0wzNy1MNDANCiAgWzJdIA0KaHR0cHM6Ly9naXRodWIu Y29tL3hkcC1wcm9qZWN0L2JwZi1leGFtcGxlcy90cmVlL21hc3Rlci9BRl9YRFAtaW50ZXJhY3Rp b24NCg0KDQo+IA0KPiBCb3RoIGxvY2FsIGFuZCB0YXJnZXQgdHlwZSBJRHMgYXJlIG1haW5seSBu ZWVkZWQganVzdCBmb3IgY29tZm9ydGFibGUNCj4gaXRlcmF0aW9uIGluc2lkZSBsaWJicGYsIHNv IHRoZXkgYXJlIGp1c3QgYSBzaWRlIHByb2R1Y3QgdGhhdCBpcyBvbmx5DQo+IHBhdGNoZWQgaW4s IGlmIHdlIHVzZSBicGZfY29yZV90eXBlX2lkX2xvY2FsL3RhcmdldCgpIGluc2lkZSBhIHByb2dy YW0NCj4gZm9yIHRlc3RpbmcgcHVycG9zZXMuDQoNCkluIG15IHVzZS1jYXNlWzJdIEkgd2FudCB0 byBleHRyYWN0IHRoZSAibG9jYWwiIEJURiBJRCBhbmQgdXBkYXRlIHRoZQ0KQlRGIElEIGluIG1l dGFkYXRhIGFyZWEsIHN1Y2ggdGhhdCBteSBBRl9YRFAgcHJvZ3JhbSBjYW4gc2VlIGl0Lg0KDQpU aGUgdXNlLWNhc2UgaXMgdGhhdCBJIGhhdmUgYSBCUEYtcHJvZyB0aGF0IHdhbnQgdG8gZXh0ZW5k IHRoZQ0Ka2VybmVsLW1vZHVsZSBwcm92aWRlZCBYRFAtaGludHMsIHdpdGggYW4gWERQLXNvZnR3 YXJlIFJYIHRpbWVzdGFtcCwgYnV0DQpvbmx5IGZvciBwYWNrZXRzIGNvbnRhaW5pbmcgSFcgdGlt ZXN0YW1wcy4gSXQgd2lsbCAobG9hZC9zZXR1cCB0aW1lKQ0Ka25vdyBCVEYgb2JqK3R5cGUgSUQg dmlhDQpicGZfY29yZV90eXBlX2lkX2tlcm5lbCh4ZHBfaGludHNfaTQwZV90aW1lc3RhbXApIHRv IG1hdGNoIG9uLCBhbmQgdGhlbg0KZXh0ZW5kIG1ldGFkYXRhIGFyZWEsIHR5cGUtY2FzdCB0byAi bG9jYWwiIHN0cnVjdCBhbmQgcmVjb3JkDQpicGZfa3RpbWVfZ2V0X25zKCkuICBJdCBub3cgbmVl ZCB0byB1cGRhdGUgQlRGIElEIGluIFhEUC1oaW50cyBtZXRhZGF0YQ0KYXJlYSwgdG8gdGVsbCBB Rl9YRFAgdXNlcnNwYWNlIHByb2cgKG9yIGNoYWluZWQgWERQL1RDIEJQRi1wcm9nKSB0aGF0DQps YXlvdXQgZm9ybWF0IGhhdmUgY2hhbmdlZC4NCg0KLSBNeSBxdWVzdGlvbiBpczogV2hhdCBCVEYg Km9iamVjdCogSUQgc2hvdWxkIEkgdXNlIGZvciBteSAibG9jYWwiIHUzMg0KQlRGIHR5cGUgSUQg PyAocmV0dXJuZWQgYnkgYnBmX2NvcmVfdHlwZV9pZF9sb2NhbCgpKQ0KDQotLUplc3Blcg0KDQo+ Pg0KPj4gcC5zLiBGb3IgdW5rbm93biByZWFzb25zIGxvcmUua2VybmVsLm9yZyBkaWQgbWF0Y2gg TGFyeXNhJ3MgcmVwbHkgd2l0aCB0aGUNCj4+IHBhdGNoc2V0IHRocmVhZCBoZXJlWzNdLg0KPj4N Cj4+ICAgWzNdIGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2JwZi8xNjU2NDMzNzg5NjkuNDQ5NDY3 LjEzMjM3MDExODEyNTY5MTg4Mjk5LnN0Z2l0QGZpcmVzb3VsLyNyDQoNCg==