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 376279848A5 for ; Fri, 1 Jul 2022 11:10:51 +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=FT3f8Z25 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1656666650; 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=Ha22KHyIXSdBBz3QWDSA7oxPGo4QM+O1JeALObg3GJQ=; b=FT3f8Z25hV4vcphroEGt53DfxPpXASf4tLEVedRWIAggt8rBNe1k42FFPuZ9Fdi+F1gaiE Hh8JAGscld6NzMg1O51okl2NRlEJ6wyjEfhZ+uD1jG6xuRMEVqDEqoWaN2jFIU8nYEfmmB OxMQhdupBF6dlgvVxketu3EASGCcPHs= Received: from mail-lf1-f69.google.com (mail-lf1-f69.google.com [209.85.167.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-576--FQiFz0aP96MhfYa5NRQnA-1; Fri, 01 Jul 2022 05:10:48 -0400 X-MC-Unique: -FQiFz0aP96MhfYa5NRQnA-1 Received: by mail-lf1-f69.google.com with SMTP id y8-20020ac24208000000b0047f9fc8f632so860813lfh.11 for ; Fri, 01 Jul 2022 02:10:48 -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=Ha22KHyIXSdBBz3QWDSA7oxPGo4QM+O1JeALObg3GJQ=; b=hDmmQ5x6LMPWPjcwjZ+ZhGCl/EDNIgd/8FQtz4JYaibVHnxIhHm8bUtz8meTLKrJXV DKHSpPWQYuinn4TFn6t3BHUSIh7PLMoQXkI2ZqO9yFWRiSUpEyVHMwNsMCrGdPwNvKsp bgCp0/mPrMw/WWMfx6fM9JcQlHIGDXTVO2zxk5u0u7LYe4mVc2kZIR8MnXBt5FhEd+xM YcH/VaN2rtNQxUlEyB3MtODRpDQUaCw/nomXpWo+xj7eheZFsFrqsL9wCvuK9M2alMx6 Q2iHTRdNp4pjAUSOAx+1UfLLArkFA+2HygbEh2sSe35pjA9WpwjFuZkTYcJlM6JZMv9U sTug== X-Gm-Message-State: AJIora+DXQF8/hqyhlwYkdsRi8hVZQID5VyFR4hxW5PprIsyvP/Stshg j/GrJnFBZE4KvkZEpuA+nTsJszyYMbJF1AxIvVzC+OdcO4sJFTB1nNbHmciGImKp2k8+P7yHDBx 9RjkQzvZawovG0OVO/Ljm X-Received: by 2002:a2e:941:0:b0:25b:bf7d:2f9d with SMTP id 62-20020a2e0941000000b0025bbf7d2f9dmr8000469ljj.478.1656666647173; Fri, 01 Jul 2022 02:10:47 -0700 (PDT) X-Google-Smtp-Source: AGRyM1ultni/eW5JwUbbBTL0wj0CCUZdPlKl2Ax9jQYxqRmKBTKwBgl8qV8XWvp6AOhj2sa8jVhjEw== X-Received: by 2002:a2e:941:0:b0:25b:bf7d:2f9d with SMTP id 62-20020a2e0941000000b0025bbf7d2f9dmr8000451ljj.478.1656666646766; Fri, 01 Jul 2022 02:10:46 -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 cf3-20020a056512280300b0047fa8ffe92csm3530776lfb.233.2022.07.01.02.10.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 01 Jul 2022 02:10:46 -0700 (PDT) From: Jesper Dangaard Brouer X-Google-Original-From: Jesper Dangaard Brouer Message-ID: <6dc1e9f5-784e-1cb0-e091-6c03a869c15b@redhat.com> Date: Fri, 1 Jul 2022 11:10:45 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 To: =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , bpf@vger.kernel.org References: <165643378969.449467.13237011812569188299.stgit@firesoul> <165643385885.449467.3259561784742405947.stgit@firesoul> <87fsjna6v7.fsf@toke.dk> In-Reply-To: <87fsjna6v7.fsf@toke.dk> 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: SKSKP7YRIMWFYBVGR7FF4GNDGZMEM2KO X-Message-ID-Hash: SKSKP7YRIMWFYBVGR7FF4GNDGZMEM2KO 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: xdp-hints@xdp-project.net, Alexander Lobakin , Alexander Lobakin 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: DQoNCk9uIDI5LzA2LzIwMjIgMTYuMjAsIFRva2UgSMO4aWxhbmQtSsO4cmdlbnNlbiB3cm90ZToN Cj4gSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVyQHJlZGhhdC5jb20+IHdyaXRlczoNCj4g DQo+PiBYRFAgQlBGLXByb2cncyBuZWVkIGEgd2F5IHRvIGludGVyYWN0IHdpdGggdGhlIFhEUC1o aW50cy4gVGhpcyBwYXRjaA0KPj4gaW50cm9kdWNlcyBhIEJQRi1oZWxwZXIgZnVuY3Rpb24sIHRo YXQgYWxsb3cgWERQIEJQRi1wcm9nJ3MgdG8gaW50ZXJhY3QNCj4+IHdpdGggdGhlIFhEUC1oaW50 cy4NCj4+DQo+PiBCUEYtcHJvZyBjYW4gcXVlcnkgaWYgYW55IFhEUC1oaW50cyBoYXZlIGJlZW4g c2V0dXAgYW5kIGlmIHRoaXMgaXMNCj4+IGNvbXBhdGlibGUgd2l0aCB0aGUgeGRwX2hpbnRzX2Nv bW1vbiBzdHJ1Y3QuIElmIFhEUC1oaW50cyBhcmUgYXZhaWxhYmxlDQo+PiB0aGUgQlBGICJvcmln aW4iIGlzIHJldHVybmVkIChzZWUgZW51bSB4ZHBfaGludHNfYnRmX29yaWdpbikgYXMgQlRGIGNh bg0KPj4gY29tZSBmcm9tIGRpZmZlcmVudCBzb3VyY2VzIG9yIG9yaWdpbnMgZS5nLiB2bWxpbnV4 LCBtb2R1bGUgb3IgbG9jYWwuDQo+IA0KPiBJJ20gbm90IHN1cmUgSSBxdWl0ZSB1bmRlcnN0YW5k IHdoYXQgdGhpcyBvcmlnaW4gaXMgc3VwcG9zZWQgdG8gYmUgZ29vZA0KPiBmb3I/IA0KDQpTb21l IGJhY2tncm91bmQgaW5mbyBvbiBCVEYgaXMgbmVlZGVkIGhlcmU6IEJURl9JRCBudW1iZXJzIGFy ZSBub3QNCmdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVycywgdGh1cyB3ZSBuZWVkIHRvIGtub3cg d2hlcmUgaXQgb3JpZ2luYXRlDQpmcm9tLCB0byBtYWtlIGl0IHVuaXF1ZSAoYXMgd2Ugc3RvcmUg dGhpcyBCVEZfSUQgaW4gWERQLWhpbnRzKS4NCg0KVGhlcmUgaXMgYSBjb25uZWN0aW9uIGJldHdl ZW4gb3JpZ2luICJ2bWxpbnV4IiBhbmQgIm1vZHVsZSIsIHdoaWNoIGlzDQp0aGF0IHZtbGludXgg d2lsbCBzdGFydCBhdCBJRD0xIGFuZCBlbmQgYXQgYSBtYXggSUQgbnVtYmVyLiAgTW9kdWxlcw0K cmVmZXIgdG8gSUQncyBpbiAidm1saW51eCIsIGFuZCBmb3IgdGhpcyB0byB3b3JrLCB0aGV5IHdp bGwgc2hpZnQgdGhlaXINCm93biBudW1iZXJpbmcgdG8gc3RhcnQgYWZ0ZXIgSUQ9bWF4LXZtbGlu dXgtaWQuDQoNCk9yaWdpbiAibG9jYWwiIGlzIGZvciBCVEYgaW5mb3JtYXRpb24gc3RvcmVkIGlu IHRoZSBCUEYtRUxGIG9iamVjdCBmaWxlLg0KVGhlaXIgbnVtYmVyaW5nIHN0YXJ0cyBhdCBJRD0x LiAgVGhlIHVzZS1jYXNlIGlzIHRoYXQgYSBCUEYtcHJvZyB3YW50IHRvDQpleHRlbmQgdGhlIGtl cm5lbCBkcml2ZXJzIEJURi1sYXlvdXQsIGFuZCBlLmcuIGFkZCBhIFJYLXRpbWVzdGFtcCBsaWtl DQpbMV0uICBUaGVuIEJQRi1wcm9nIGNhbiBjaGVjayBpZiBpdCBrbm93cyBtb2R1bGUncyBCVEZf SUQgYW5kIHRoZW4NCmV4dGVuZCB2aWEgYnBmX3hkcF9hZGp1c3RfbWV0YSwgYW5kIHVwZGF0ZSBC VEZfSUQgaW4gWERQLWhpbnRzIGFuZCBjYWxsDQp0aGUgaGVscGVyIChJIGludHJvZHVjZWQpIG1h cmtpbmcgdGhpcyBhcyBvcmlnaW4gImxvY2FsIiBmb3Iga2VybmVsIHRvDQprbm93IHRoaXMgaXMg bm8tbG9uZ2VyIG9yaWdpbiAibW9kdWxlIi4NCg0KICBbMV0gDQpodHRwczovL2dpdGh1Yi5jb20v eGRwLXByb2plY3QvYnBmLWV4YW1wbGVzL3RyZWUvbWFzdGVyL0FGX1hEUC1pbnRlcmFjdGlvbi8N Cg0KPiBXaGF0IGlzIGEgQlBGIChvciBBRl9YRFApIHByb2dyYW0gc3VwcG9zZWQgdG8gZG8gd2l0 aCB0aGUNCj4gaW5mb3JtYXRpb24gInRoaXMgWERQIGhpbnRzIHN0cnVjdCBjYW1lIGZyb20gYSBt b2R1bGU/IiB3aXRob3V0IGtub3dpbmcNCj4gd2hpY2ggbW9kdWxlIHRoYXQgd2FzPyANCg0KRm9y IEFGX1hEUCBteSBjbGFpbSBpcyB0aGUgdXNlcnNwYWNlIHByb2dyYW0gd2lsbCBhbHJlYWR5IGtu b3cgdGhhdA0KZHJpdmVyIGl0IGlzIGFyZSB0YWxraW5nIHRvIGJlY2F1c2UgaXQgbmVlZCB0byAi YmluZCIgdG8gYSBzcGVjaWZpYw0KaW50ZXJmYWNlIChhbmQgYXR0YWNoIHRvIFhEUC1wcm9nIHRv IGlmaW5kZXgpLiBTZWUgc2FtcGxlIGNvZGVbMl0gZm9yDQpnZXRfZHJpdmVyX25hbWUgZnJvbSBp ZmluZGV4Lg0KVGh1cywgcGFydCBvZiB1c2luZyBYRFAtaGludHMgYWxyZWFkeSBpbnZvbHZlcyAo cmVzb2x2aW5nIGFuZCkgb3BlbmluZw0KL3N5cy9rZXJuZWwvYnRmL2RyaXZlcl9uYW1lLiAgU28g dGhlIG9yaWdpbiAibW9kdWxlIiBpcyBlbm91Z2ggZm9yIHRoZQ0KQVBJIGVuZC11c2VyIHRvIG1h a2UgdGhlIEJURl9JRCB1bmlxdWUuDQoNClJ1bnRpbWUgdGhlIEJQRi1wcm9nIGFuZCBrZXJuZWwg Y2FuIGZpbmQgb3V0IHdoYXQgbmV0X2RldmljZSB0aGUgb3JpZ2luDQoibW9kdWxlIiByZWZlcnMg dG8gdmlhIHhkcF9idWZmLT5yeHEtPmRldi4gIFdoZW4gYW4gZW5kLXVzZXIvcHJvZ3JhbQ0KYXR0 YWNoIFhEUCB0aGV5IGFsc28gbmVlZCB0byBrbm93IHRoZSBpZmluZGV4LCBhZ2FpbiBnaXZpbmcg dGhlbQ0Ka25vd2xlZGdlIHRoYXQgbWFrZSBvcmlnaW4gIm1vZHVsZSIgQlRGX0lEJ3MgdW5pcXVl IGZvciB0aGVtLA0KDQpTYW1lIHdheSB0aGUgb3JpZ2luICJsb2NhbCIgaGF2ZSBtZWFuaW5nIHRv IHRoZSBCUEYtcHJvZyBhbmQgdXNlcg0KbG9hZGluZyBpdC4NCg0KICBbMl0gDQpodHRwczovL2dp dGh1Yi5jb20vdG9ydmFsZHMvbGludXgvYmxvYi92NS4xOC9zYW1wbGVzL2JwZi94ZHBfc2FtcGxl X3VzZXIuYyNMMTYwMg0KDQoNCj4gVWx0aW1hdGVseSwgdGhlIG9yaWdpbiBpcyB1c2VmdWwgZm9y IGEgY29uc3VtZXINCj4gdG8gY2hlY2sgdGhhdCB0aGUgbWV0YWRhdGEgaXMgaW4gdGhlIGZvcm1h dCB0aGF0IGl0J3MgZXhwZWN0aW5nIGl0IHRvIGJlDQo+IGluIChzbyBpdCBjYW4ganVzdCBsb2Fk IHRoZSBkYXRhIGZyb20gdGhlIGFwcHJvcHJpYXRlIG9mZnNldHMpLiBCdXQgdG8NCj4gYW5zd2Vy IHRoaXMsIHdlIHJlYWxseSBuZWVkIGEgdW5pcXVlIGlkZW50aWZpZXI7IHNvIEkgdGhpbmsgdGhl IGFwcHJvYWNoDQo+IGluIEFsZXhhbmRlcidzIHNlcmllcyBvZiBlbmNvZGluZyB0aGUgSUQgb2Yg dGhlIEJURiBzdHJ1Y3R1cmUgaXRzZWxmDQo+IGludG8gdGhlIG5leHQgMzIgYml0cyBpcyBiZXR0 ZXI/IFRoYXQgd2F5IHdlJ2xsIGhhdmUgYSB1bmlxdWUgInBvaW50ZXIiDQo+IHRvIHRoZSBhY3R1 YWwgc3RydWN0IHRoYXQncyBpbiB0aGUgbWV0YWRhdGEgYXJlYSBhbmQgY2FuIGFjdCBvbiB0aGlz Lg0KDQpJIHdvdWxkIHJlYWxseSBsaWtlIGFuIGV4cGxhbmF0aW9uIGZyb20gQWxleGFuZGVyLCBo b3cgaGlzIGFwcHJvYWNoDQpjcmVhdGVzIHVuaXF1ZSBpZGVudGlmaWVyIGFjcm9zcyBhbGwga2Vy bmVsIG1vZHVsZXMuICBJIGRvbid0IGdldCBpdA0KZnJvbSByZWFkaW5nIHRoZSBjb2RlLiAgVG8g bWUgaXQgbG9va3MgbGlrZSBzb21lIGV4dHJhIEJURiAidHlwZSINCmluZm9ybWF0aW9uIGFib3V0 IHRoZSBCVEZfSUQuDQoNCkUuZy4gaG93IGRvIEJURiAibG9jYWwiIEJQRi1FTEYgb2JqZWN0J3Mg Z2V0IGEgdW5pcXVlIGlkZW50aWZpZXIsIHRoYXQNCmRvZXNuJ3Qgb3ZlcmxhcCB3aXRoIGUuZy4g a2VybmVsIG1vZHVsZXM/DQoNCj4+IFJGQy9UT0RPOiBJbXByb3ZlIHBhdGNoOiBDYW4gdmVyaWZp ZXIgdmFsaWRhdGUgcHJvdmlkZWQgQlRGIG9uICJ1cGRhdGUiDQo+PiBhbmQgZGV0ZWN0IGlmIGNv bXBhdGlibGUgd2l0aCBjb21tb24gc3RydWN0Pz8/DQo+IA0KPiBJZiB3ZSBoYXZlIHRoZSB1bmlx dWUgSUQgYXMgbWVudGlvbmVkIGFib3ZlLCBJIHRoaW5rIHRoZSBrZXJuZWwgcHJvYmFibHkNCj4g Y291bGQgcmVzb2x2ZSB0aGlzIGF1dG9tYXRpY2FsbHk6IHdoZW5ldmVyIGEgbW9kdWxlIGlzIGxv YWRlZCwgdGhlDQo+IGtlcm5lbCBjb3VsZCB3YWxrIHRoZSBCVEYgaW5mb3JtYXRpb24gZnJvbSB0 aGF0IG1vZHVsZSBhbiBzaW1wbHkgaW5zcGVjdA0KPiBhbGwgdGhlIG1ldGFkYXRhIHN0cnVjdHMg YW5kIHNlZSBpZiB0aGV5IGNvbnRhaW4gdGhlIGVtYmVkZGVkDQo+IHhkcF9oaW50c19jb21tb24g c3RydWN0LiBUaGUgSURzIG9mIGFueSBtZXRhZGF0YSBzdHJ1Y3RzIHRoYXQgZG8gY29udGFpbg0K PiB0aGUgY29tbW9uIHN0cnVjdCBjYW4gdGhlbiBiZSBrZXB0IGluIGEgY2VudHJhbCBsb29rdXAg dGFibGUgYW5kIHRoZQ0KPiBjb25zdW1wdGlvbiBjb2RlIGNhbiB0aGVuIHNpbXBseSBjb21wYXJl IHRoZSBCVEYgSUQgdG8gdGhpcyB0YWJsZSB3aGVuDQo+IGJ1aWxkaW5nIGFuIFNLQj8NCg0KSSdt IG5vdCBhZ2FpbnN0IHRoZSBpZGVhIGZvciB0aGUga2VybmVsIHRvIGtlZXAgdHJhY2sgb2YgdGhl c2Ugc3RydWN0cy4NCkkganVzdCBkb24ndCBsaWtlIHRoZSBpZGVhIG9mIGNoZWNraW5nIHRoaXMg cnVudGltZSwgZXNwZWNpYWxseSBhcyB0aGlzDQphcHByb2FjaCBmb3Igd2Fsa2luZyBhbGwgb3Ro ZXIgbW9kdWxlcyBCVEYgc3RydWN0J3MgZG9lc24ndCBzY2FsZS4NCg0KDQo+IEFzIGZvciB0aGUg dmFsaWRhdGlvbiBvbiB0aGUgQlBGIHNpZGU6bg0KPiANCj4+ICsJaWYgKGZsYWdzICYgSElOVFNf QlRGX1VQREFURSkgew0KPj4gKwkJaXNfY29tcGF0X2NvbW1vbiA9ICEhKGZsYWdzICYgSElOVFNf QlRGX0NPTVBBVF9DT01NT04pOw0KPj4gKwkvKiBUT0RPOiBDYW4ga2VybmVsIHZhbGlkYXRlIGlm IGhpbnRzIGFyZSBCVEYgY29tcGF0IHdpdGggY29tbW9uPyAqLw0KPj4gKwkvKiBUT0RPOiBDb3Vs ZCBCUEYgcHJvZyBwcm92aWRlIEJURiBhcyBBUkdfUFRSX1RPX0JURl9JRCB0byBwcm92ZSBjb21w YXRfY29tbW9uID8gKi8NCj4gDQo+IElmIHdlIHVzZSB0aGUgImdsb2JhbCBJRCArIGxvb2t1cCB0 YWJsZSIgYXBwcm9hY2ggYWJvdmUsIHdlIGRvbid0IHJlYWxseQ0KPiBuZWVkIHRvIHZhbGlkYXRl IGFueXRoaW5nIGhlcmU6IGlmIHRoZSBwcm9ncmFtIHNheXMgaXQncyB3cml0aW5nDQo+IG1ldGFk YXRhIHdpdGggYSBmb3JtYXQgZ2l2ZW4gYnkgYSBzcGVjaWZpYyBJRCwgdGhhdCBpbXBsaWVzDQo+ IGNvbXBhdGliaWxpdHkgKG9yIG5vdCkgYXMgZ2l2ZW4gYnkgdGhlIElELiBXZSBjb3VsZCBzYW5p dHktY2hlY2sgdGhlDQo+IG1ldGFkYXRhIGFyZWEgc2l6ZSwgYnV0IHRoZSBjb25zdW1wdGlvbiBj b2RlIGhhcyB0byBkbyB0aGF0IGFueXdheSwgc28NCj4gSSdtIG5vdCBzdXJlIGl0J3Mgd29ydGgg dGhlIHJ1bnRpbWUgb3ZlcmhlYWQgdG8gaGF2ZSBhbiBhZGRpdGlvbmFsIGNoZWNrDQo+IGhlcmU/ DQoNCkFzIHlvdSBrbm93IEkgaGF0ZSAicnVudGltZSBjaGVja3MiLCBhbmQgdHJ5IGhhcmQgdG8g cHVzaCBjaGVja3MgdG8NCiJzZXR1cCB0aW1lIi4gIE1heWJlIHdlIGNvdWxkIGhhdmUgdmVyaWZp ZXIgKG9yIGxpYmJwZikgZG8gdGhlIGNoZWNrIGF0DQpzZXR1cC9sb2FkIHRpbWUsIGJ5IGlkZW50 aWZ5aW5nIHRoZSBoZWxwZXIgY2FsbCBhbmQgY2hlY2sgaWYgcHJvdmlkZWQNCkJURiBkbyBtYXRj aCBDT01QQVRfQ09NTU9OIGNsYWltLg0KDQpGb3IgdGhpcyB0byB3b3JrLCB0aGUgdmVyaWZpZXIg bmVlZCB0byBiZSBhYmxlIHRvIHJlc29sdmUgb3JpZ2luDQoibW9kdWxlIiwgd2hpY2ggaGFwcGVu cyBhdCBCUEYgbG9hZC10aW1lLCBzbyB3ZSB3b3VsZCBuZWVkIHRvIHNldCB0aGUNCmlmaW5kZXgg KGN1cnIgdXNlZCBmb3IgWERQLWhhcmR3YXJlLW9mZmxvYWQpIGF0IEJQRiBsb2FkLXRpbWUuDQoN Cg0KPiBBcyBmb3Igc2FmZXR5IG9mIHRoZSBtZXRhZGF0YSBjb250ZW50IGl0c2VsZiwgSSBkb24n dCByZWFsbHkgdGhpbmsgd2UNCj4gY2FuIGRvIGFueXRoaW5nIHRvIGd1YXJhbnRlZSB0aGlzOiBp biBhbnkgY2FzZSB0aGUgQlBGIHByb2dyYW0gY2FuIHBhc3MNCj4gYSB2YWxpZCBCVEYgSUQgYW5k IHN0aWxsIHdyaXRlIGdhcmJhZ2UgdmFsdWVzIGludG8gdGhlIGFjdHVhbCBmaWVsZHMsIHNvDQo+ IHRoZSBjb25zdW1wdGlvbiBjb2RlIGhhcyB0byBkbyBlbm91Z2ggdmFsaWRhdGlvbiB0aGF0IHRo aXMgd29uJ3QgY3Jhc2gNCj4gdGhlIGtlcm5lbCBhbnl3YXkuIEJ1dCB0aGlzIGlzIG5vIGRpZmZl cmVudCBmcm9tIHRoZSBwYWNrZXQgZGF0YSBpdHNlbGY6DQo+IFhEUCBpcyBiYXNpY2FsbHkgaW4g YSBwb3NpdGlvbiB0byBiZSBhIE1JVE0gYXR0YWNrZXIgb2YgdGhlIG5ldHdvcmsNCj4gc3RhY2sg aXRzZWxmLCB3aGljaCBpcyB3aHkgbG9hZGluZyBYRFAgcHJvZ3JhbXMgaXMgYSBwcml2aWxlZ2Vk DQo+IG9wZXJhdGlvbi4uLg0KDQpJIGFncmVlLCB0aGF0IHdlIGNhbm5vdCBzdG9wIHRoZSBlbmQt dXNlciBmcm9tIHNjcmV3aW5nIHVwIHRoZWlyDQpCUEYtcHJvZyB0byBwcm92aWRlIGdhcmJhZ2Ug aW4gdGhlIGZpZWxkcywgYXMgbG9uZyBhcyBpdCBkb2Vzbid0IGNyYXNoDQp0aGUga2VybmVsLiAg SSBkbyB0aGluayBpdCB3b3VsZCBpbXByb3ZlIHVzYWJpbGl0eSBmb3IgZW5kLXVzZXJzIGlmIHdl DQpjYW4gZGV0ZWN0IGFuZCByZXBvcnQgdGhhdCB0aGVpciBCUEYtcHJvZyBoYXZlIGdvdHRlbiBv dXQgb2Ygc3luYyB3aXRoDQp0aGUgcnVubmluZyBrZXJuZWwgYW5kIHRoZWlyIGNsYWltIHRoYXQg dGhlaXIgQlRGIGxheW91dCBhcmUNCkNPTVBBVF9DT01NT04gaXNuJ3QgYWN0dWFsbHkgdHJ1ZS4g IEJ1dCBJIGd1ZXNzIGl0IGlzIHNob3VsZG4ndCBibG9jaw0KdGhlIGNvZGUsIGFzIGl0J3Mgb25s eSBhbiBleHRyYSB1c2FiaWxpdHkgaGVscC4NCg0KLS1KZXNwZXINCg0K