From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=; dkim=pass header.d=gmail.com; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=gmail.com policy.dmarc=quarantine Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) by mail.toke.dk (Postfix) with ESMTPS id CFC9E69A285 for ; Tue, 16 Sep 2025 00:25:38 +0200 (CEST) Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-b0787fa12e2so673075266b.2 for ; Mon, 15 Sep 2025 15:25:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757975136; x=1758579936; darn=lists.bufferbloat.net; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=CfBBrKClHOd+BJMulKJtpcFhGmLN0CeAkHgmWV7ukZ0=; b=f7w60wrABOw4R7rL+Ya8S+WKhrzxx/py3xEGp8yCpvATdQCqSx8vqN5YZJqPlmdyIm g1U64j0SFDKDFDR65c3551rI6LZ4Ak/cVt/IwA/1cE4G6W1So8jkesnSPZktU7kHS60w HkUxRCgCEIPW6exmM+pYK9yy9M6OVOwyMLTCVz6hrDKD/819vi3R79nfpB0q+tYhEsXu W16SYJ+tcHhgodsbMrp0gBa77td6wLRdb0VfcWiB+XGqIrFgLdAgauwgmOh19UdtHpxO 8d78mwRnLF6dsdKhR9ctHiwMlZp6U6LhEG4tbU8ygGQ4anEw0uOpYL/fWcuRoERROogj A+Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757975136; x=1758579936; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=CfBBrKClHOd+BJMulKJtpcFhGmLN0CeAkHgmWV7ukZ0=; b=DjBRBCD76452cVz6w6UStgnq7a8WL8oud0F3Uhmx90rxd7vFRqNU2+/EHy3jSnjgVL xaNCqVrF4SYlB3pRudC11KfJu248y+zPUXi5G/Zvz1jfD8QwOLf4IhSGFiBnpHIK2KlN zx3tWOq+NRMRiyMSMLxClTrOoZSEWZQdMl00IpeRXETItGqOb51WyVO9C10PID9XrZhZ IO7OZGUwLeZ4sMC0SlEycrIA09yKUHxIeMtXDPjYtgLqhVbJx8nDy+7uH03mDIoegZDE zExEKVe0xewjOhwKAiRuQ6J1tp2HWQwQhC+8sQ+2F5PTNMxQGswyuRnQS3jyRznV9F0a Cvyg== X-Forwarded-Encrypted: i=1; AJvYcCUz6B4TDkvaQOXibp9weERP0uHAXImCqLsob3u0v7qbcFAodqobRIokuorJ4LKPIYb27evJmQ==@lists.bufferbloat.net X-Gm-Message-State: AOJu0YwItW1pxvIaMxp2aHlF1D50Ru9zGMTx5U3pR1UFI66yrzGd5R2Y lsc0kVbiDSPLXj+IMSi8WGvDS7ofJS7LmJCxl6a8YQwTnV7jTflY9DXbT+8v4vu+2vMBAhdeFZc KHqP7HycVRkeRmn4q7zfx3p+0/+a8OkI= X-Gm-Gg: ASbGncsq97kMLXkOfp7mpZEswiD0DiPKBpMHX83XuKPtBkqRhZlHbbK1rYO7mceJtf6 LOTTx6RBJyIBGeRtgf6nQRg8yW+JNKBXg3DGjRc2t/DJDSXPNNGN2CrxbG9x3yCr2kAXrKv00GL mt6MI22AAMYEeSj92JmRulScqYM8uGANPXrEknKQxXYAm7ZGtdwJWeocIQ+NLJCdIyoHKep5rAS 5Wpp5c8r4iyumNBDJnUXyutUd/6PzhflISLS12KH7HSPxFWsXVa94lD5WpPDm4ispd5lD81SJ1R 3vrSxtAnceXAssINXpIVWi9iGB/JJ75uGj49p8xHkv8MGzVvYMozJKOI9rUpg9wz X-Google-Smtp-Source: AGHT+IGBRFjZAXixC9zDkb1hM1UcMpS86Z+CMvptHouyWJgmN7jTbJLrPGZ2tJM/iF19arUal8f+3q8KFjsgUsC1lIU= X-Received: by 2002:a17:907:72d1:b0:b07:c1df:875 with SMTP id a640c23a62f3a-b07c3a655f3mr1554119766b.56.1757975136114; Mon, 15 Sep 2025 15:25:36 -0700 (PDT) MIME-Version: 1.0 References: <1757449551.421420786@apps.rackspace.com> <1757795591.523513612@apps.rackspace.com> <20250915081637.2cd0d07c@hermes.local> In-Reply-To: From: Frantisek Borsik Date: Tue, 16 Sep 2025 00:26:19 +0200 X-Gm-Features: Ac12FXz9p3H3o7fTxzRipgPI6HnC4c90PRvfjvkj9Q24Vy1JLozwJv-mvo8x1s0 Message-ID: To: Tom Herbert Cc: stephen@networkplumber.org, BeckW--- via Bloat , BeckW@telekom.de, dpreed@deepplum.com, cake@lists.bufferbloat.net, codel@lists.bufferbloat.net, rpm@lists.bufferbloat.net Message-ID-Hash: HFQF3KK3U3O6VU6XKEXSNXLXW27ZK7MU X-Message-ID-Hash: HFQF3KK3U3O6VU6XKEXSNXLXW27ZK7MU X-MailFrom: frantisek.borsik@gmail.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 3.3.10 X-Mailman-Version: 3.3.10 Precedence: list Subject: [Codel] Re: [Bloat] Re: [Cake] Re: XDP2 is here - from one and only Tom Herbert (almost to the date, 10 years after XDP was released) List-Id: CoDel AQM discussions Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: RnJlc2ggZnJvbSBUb20ncyBvdmVuOg0KaHR0cHM6Ly9tZWRpdW0uY29tL0B0b21fODQ5MTIvcHJv Z3JhbW1pbmctYS1wYXJzZXItaW4teGRwMi1pcy1hcy1lYXN5LWFzLXBpZS04ZjI2YzhiM2U3MDQN Cg0KDQpBbGwgdGhlIGJlc3QsDQoNCkZyYW5rDQoNCkZyYW50aXNlayAoRnJhbmspIEJvcnNpaw0K DQoNCipJbiBsb3ZpbmcgbWVtb3J5IG9mIERhdmUgVMOkaHQ6ICoxOTY1LTIwMjUNCg0KaHR0cHM6 Ly9saWJyZXFvcy5pby8yMDI1LzA0LzAxL2luLWxvdmluZy1tZW1vcnktb2YtZGF2ZS8NCg0KDQpo dHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vZnJhbnRpc2VrYm9yc2lrDQoNClNpZ25hbCwgVGVs ZWdyYW0sIFdoYXRzQXBwOiArNDIxOTE5NDE2NzE0DQoNCmlNZXNzYWdlLCBtb2JpbGU6ICs0MjA3 NzUyMzA4ODUNCg0KU2t5cGU6IGNhc2lvYTUzMDJjYQ0KDQpmcmFudGlzZWsuYm9yc2lrQGdtYWls LmNvbQ0KDQoNCk9uIE1vbiwgU2VwIDE1LCAyMDI1IGF0IDg6MzXigK9QTSBUb20gSGVyYmVydCA8 dG9tQGhlcmJlcnRsYW5kLmNvbT4gd3JvdGU6DQoNCj4gT24gTW9uLCBTZXAgMTUsIDIwMjUgYXQg MTE6MDfigK9BTSBGcmFudGlzZWsgQm9yc2lrDQo+IDxmcmFudGlzZWsuYm9yc2lrQGdtYWlsLmNv bT4gd3JvdGU6DQo+ID4NCj4gPg0KPiA+ICJUaGVyZSB3ZXJlIGEgZmV3IE5JQydzIHRoYXQgb2Zm bG9hZGVkIGVCUEYgYnV0IHRoZXkgbmV2ZXIgcmVhbGx5IHdlbnQNCj4gbWFpbnN0cmVhbS4iDQo+ ID4NCj4gPiBBbmQgZXZlbiB0aGVuLCB0aGV5IHdlcmUgZG9pbmcgb25seSA0MCBHYnBzLCBsaWtl IGh0dHBzOi8vbmV0cm9ub21lLmNvbQ0KPiBhbmQgZGlkbid0IGV2ZW4gc3VwcG9ydGVkIGZ1bGwg ZUJQRi4uLg0KPiA+DQo+ID4gVGhleSBvbmx5IHN1cHBvcnQgYSBwcmV0dHkgc21hbGwgc3Vic2V0 IG9mIGVCUEYgKGluIHBhcnRpY3VsYXIgdGhleQ0KPiBkb24ndCBzdXBwb3J0IHRoZSBMUE0gbWFw IHR5cGUsIHdoaWNoIHdhcyBvdXIgYmlnZ2VzdCBwZXJmb3JtYW5jZSBwYWluDQo+IHBvaW50KSwg YW5kIGhhdmUgYSBwcmV0dHkgY29vbCB1c2VyIHJlcGxhY2VhYmxlIGZpcm13YXJlIHN5c3RlbS4g VGhleSBhbHNvDQo+IGRvbid0IGhhdmUgdGhlIGhpZ2hlciBzcGVlZHMgLSBhYm92ZSA0MCBHYnBz IC0gd2hlcmUgdGhlIG9mZmxvYWRpbmcgd291bGQNCj4gYmUgbW9zdCB1c2VmdWwuIg0KPg0KPiBZ ZWFoLCB0aGUgYXR0ZW1wdHMgYXQgb2ZmbG9hZGluZyBlQlBGIHdlcmUgZG9vbWVkIHRvIGZhaWwu IEl0J3MgYQ0KPiByZXN0cmljdGVkIG1vZGVsLCBsYWNrcyBwYXJhbGxlbGlzbSwgZG9lc24ndCBz dXBwb3J0IGlubGluZQ0KPiBhY2NlbGVyYXRvcnMsIGFuZCByZXF1aXJlcyB0aGUgZUJQRiBWTSB0 byBtYWtlIGl0IG5vLXN0YXRlcnMuIERQREsNCj4gd291bGQgZmFpbCBhcyB3ZWxsLiBUaGUga2Vy bmVsL2hvc3QgZW52aXJvbm1lbnQgYW5kIGhhcmR3YXJlDQo+IGVudmlyb25tZW50cyBhcmUgcXVp dGUgZGlmZmVyZW50LiBJZiB3ZSB0cnkgdG8gZm9yY2UgdGhlIGhhcmR3YXJlIHRvDQo+IGxvb2sg bGlrZSB0aGUgaG9zdCB0byBtYWtlIGVCUEYgb3IgRFBESyBwb3J0YWJsZSB0aGVuIHdlJ2xsIGxv c2UgdGhlDQo+IHBlcmZvcm1hbmNlIGFkdmFudGFnZXMgb2YgcnVubmluZyBpbiB0aGUgaGFyZHdh cmUuIFdlIG5lZWQgYSBtb2RlbA0KPiB0aGF0IGFsbG93cyB0aGUgc29mdHdhcmUgdG8gYWRhcHQg dG8gSFcsIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZCAob2YNCj4gY291cnNlLCBpbiBhIHBlcmZl Y3Qgd29ybGQgd2UnZCBkbyBzb2Z0d2FyZS9oYXJkd2FyZSBjb2Rlc2lnbiBmcm9tIHRoZQ0KPiBn ZXQtZ28pLg0KPg0KPiA+DQo+ID4gQnR3LCBUb20gd2lsbCBiZSBhdCBGTE9TUyBXZWVrbHkgdG9t b3Jyb3cgKFR1ZXNkYXkpLCAxMjoyMCBFRFQgLyAxMToyMA0KPiBDRFQgLyAxMDoyMCBNRFQgLyA5 OjIwIFBEVA0KPg0KPiBDYW4ndCB3YWl0IQ0KPg0KPiA+DQo+ID4gaHR0cHM6Ly93d3cueW91dHVi ZS5jb20vbGl2ZS9PQlc1dHd2bUhPSQ0KPiA+DQo+ID4NCj4gPiBBbGwgdGhlIGJlc3QsDQo+ID4N Cj4gPiBGcmFuaw0KPiA+DQo+ID4gRnJhbnRpc2VrIChGcmFuaykgQm9yc2lrDQo+ID4NCj4gPg0K PiA+IEluIGxvdmluZyBtZW1vcnkgb2YgRGF2ZSBUw6RodDogMTk2NS0yMDI1DQo+ID4NCj4gPiBo dHRwczovL2xpYnJlcW9zLmlvLzIwMjUvMDQvMDEvaW4tbG92aW5nLW1lbW9yeS1vZi1kYXZlLw0K PiA+DQo+ID4NCj4gPiBodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vZnJhbnRpc2VrYm9yc2lr DQo+ID4NCj4gPiBTaWduYWwsIFRlbGVncmFtLCBXaGF0c0FwcDogKzQyMTkxOTQxNjcxNA0KPiA+ DQo+ID4gaU1lc3NhZ2UsIG1vYmlsZTogKzQyMDc3NTIzMDg4NQ0KPiA+DQo+ID4gU2t5cGU6IGNh c2lvYTUzMDJjYQ0KPiA+DQo+ID4gZnJhbnRpc2VrLmJvcnNpa0BnbWFpbC5jb20NCj4gPg0KPiA+ DQo+ID4NCj4gPiBPbiBNb24sIFNlcCAxNSwgMjAyNSBhdCA1OjE24oCvUE0gU3RlcGhlbiBIZW1t aW5nZXIgPA0KPiBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4gd3JvdGU6DQo+ID4+DQo+ID4+ IE9uIE1vbiwgMTUgU2VwIDIwMjUgMDg6Mzk6NDggKzAwMDANCj4gPj4gQmVja1ctLS0gdmlhIEJs b2F0IDxibG9hdEBsaXN0cy5idWZmZXJibG9hdC5uZXQ+IHdyb3RlOg0KPiA+Pg0KPiA+PiA+IFBy b2dyYW1taW5nIG5ldHdvcmtpbmcgaGFyZHdhcmUgaXMgYSBiaXQgbGlrZSBwcm9ncmFtbWluZyA4 IGJpdA0KPiBjb21wdXRlcnMgaW50IHRoZSAxOTgwcywgdGhlIGhhcmR3YXJlIGlzIG9mdGVuIHRv byBsaW1pdGVkIGFuZCB2YXJpZWQgdG8NCj4gc3VwcG9ydCB1c2VmdWwgYWJzdHJhY3Rpb25zLiBU aGlzIGlzIGFsc28gdHJ1ZSBmb3IgQ1BVLWJhc2VkIG5ldHdvcmtpbmcNCj4gb25jZSB5b3UgZ2V0 IGludG8gdGhlID4xMCBHYnBzIHJlYWxtLCB3aGVuIGNhY2hpbmcgYW5kIHBpcGVsaW5pbmcNCj4g YXJjaGl0ZWN0dXJlcyBiZWNvbWUgcmVsZXZhbnQuIFdyaXRpbmcgYSBuZXR3b3JrIHByb3RvY29s IGNvbXBpbGVyIHRoYXQNCj4gcHJvZHVjZXMgZWZmaWNpZW50IGNvZGUgZm9yIGRpZmZlcmVudCBO SUNzIGFuZCBkaWZmZXJlbnQgQ1BVcyBpcyBhIGRhdW50aW5nDQo+IHRhc2suIEFuZCB1bmxpa2Ug d2l0aCA4IGJpdCBjb21wdXRlcnMsIHRoZXJlIGFyZSBubyBzaW1wbGUgbWV0cmljcyAoJ3lvdQ0K PiBuZWVkIGF0IGxlYXN0IDMya2IgUkFNIHRvIHJ1biB0aGlzIGNvZGUnIHZzICd0aGlzIE5JQyBz dXBwb3J0cyA0ayBxdWV1ZXMNCj4gd2l0aCBQSUUsIENvZGVsJywgJ3RoaXMgQ1BVIGhhcyAyMCBN Ynl0ZSBvZiBJbnRlbCBTbWFydENhY2hlJykuDQo+ID4+DQo+ID4+IExpbnV4IGtlcm5lbCBzdGls bCBsYWNrcyBhbiBlYXN5IHdheSB0byBzZXR1cCBtYW55IGZlYXR1cmVzIGluIFNtYXJ0DQo+IE5J QydzLiBEUERLIGhhcyBydGVfZmxvdyB3aGljaCBhbGxvd3MgZGlyZWN0DQo+ID4+IGFjY2VzcyB0 byBoYXJkd2FyZSBmbG93IHByb2Nlc3NpbmcuIEJ1dCBEUERLIGxhY2tzIGFueSByZWFzb25hYmxl IGZvcm0NCj4gb2Ygc2hhcGVyIGNvbnRyb2wuDQo+ID4+DQo+ID4+ID4gRWJwZiBpcyB2ZXJ5IGNs b3NlIHRvIHdoYXQgd2FzIGRlc2NyaWJlZCBpbiB0aGlzIDE5OTUgZXhva2VybmVsDQo+IHBhcGVy KA0KPiBodHRwczovL3Bkb3MuY3NhaWwubWl0LmVkdS82LjgyOC8yMDA4L3JlYWRpbmdzL2VuZ2xl cjk1ZXhva2VybmVsLnBkZikuDQo+IFRoZSBpZGVhIG9mIHRoZSBleG9rZXJuZWwgd2FzIHRvIGhh dmUgZWFzaWx5IGxvYWRhYmxlLCB2ZXJpZmllZCBjb2RlIGluIHRoZQ0KPiBrZXJuZWwgLS0gZWcg dGhlIHNlY3VyaXR5LWNyaXRpY2FsIHRhc2sgb2YgYXNzaWduaW5nIGEgcGFja2V0IHRvIGEgc2Vz c2lvbg0KPiBvZiBhIHVzZXIgLS0gYW5kIGxlYXZlIHRoZSByZXN0IG9mIHRoZSBwcm90b2NvbCAt LSBlZyB0Y3AgcmV0cmFuc21pc3Npb25zDQo+IC0tIHRvIHRoZSB1c2VyIHNwYWNlLiBBRkFJSyBm ZXcgcGVvcGxlIHVzZSBlYnBmIGxpa2UgdGhpcywgYnV0IGl0IHNob3VsZCBiZQ0KPiBwb3NzaWJs ZS4NCj4gPj4gPg0KPiA+PiA+IEVicGYgbWFuYWdlcyB0aGUgYWJzdHJhY3Rpb24gcGFydCB3ZWxs LCBidXQgc2FjcmlmaWNlcyBhIGxvdCBvZg0KPiBwZXJmb3JtYW5jZSAtLSBlZyBsYWNrIG9mIGFn Z3Jlc3NpdmUgYmF0Y2hpbmcgbGlrZSB2cHAgLyBmZC5pbyBkb2VzLiBXaXRoDQo+IERQREssICB5 b3Ugb2Z0ZW4gZmluZCBvdXQgdGhhdCB5b3VyIG5pYydzIGhhcmR3YXJlIG9yIGRyaXZlciBkb2Vz bid0DQo+IHN1cHBvcnQgdGhlIGZ1bmN0aW9uIHRoYXQgeW91IGhvcGVkIHRvIHVzZSBhbmQgZW5k IHVwIG9wdGltaXppbmcgZm9yIGENCj4gcGFydGljdWxhciBoYXJkd2FyZS4gRXZlbiBpZiBkcml2 ZXIgYW5kIGhhcmR3YXJlIHN1cHBvcnQgYSBmdW5jdGlvbmFsaXR5LA0KPiBpdCBtYXkgdmVyeSB3 ZWxsIGJlIHRoYXQgaGFyZHdhcmUgcmVzb3VyY2VzIGFyZSB0b28gbGltaXRlZCBmb3IgeW91cg0K PiBwYXJ0aWN1bGFyIHVzZSBjYXNlLiBUaGUgYWJzdHJhY3Rpb24gaXMgdGhlcmUsIGJ1dCB5b3Vy IGNvZGUgaXMgc3RpbGwNCj4gaGFyZHdhcmUgc3BlY2lmaWMuDQo+ID4+DQo+ID4+IFRoZXJlIHdl cmUgYSBmZXcgTklDJ3MgdGhhdCBvZmZsb2FkZWQgZUJQRiBidXQgdGhleSBuZXZlciByZWFsbHkg d2VudA0KPiBtYWluc3RyZWFtLg0KPiA+Pg0KPiA+DQo+ID4NCj4gPj4NCj4gPj4gPiAtLS0tLVVy c3Byw7xuZ2xpY2hlIE5hY2hyaWNodC0tLS0tDQo+ID4+ID4gVm9uOiBEYXZpZCBQLiBSZWVkIDxk cHJlZWRAZGVlcHBsdW0uY29tPg0KPiA+PiA+IEdlc2VuZGV0OiBTYW1zdGFnLCAxMy4gU2VwdGVt YmVyIDIwMjUgMjI6MzMNCj4gPj4gPiBBbjogVG9tIEhlcmJlcnQgPHRvbUBoZXJiZXJ0bGFuZC5j b20+DQo+ID4+ID4gQ2M6IEZyYW50aXNlayBCb3JzaWsgPGZyYW50aXNlay5ib3JzaWtAZ21haWwu Y29tPjsgQ2FrZSBMaXN0IDwNCj4gY2FrZUBsaXN0cy5idWZmZXJibG9hdC5uZXQ+OyBjb2RlbEBs aXN0cy5idWZmZXJibG9hdC5uZXQ7IGJsb2F0IDwNCj4gYmxvYXRAbGlzdHMuYnVmZmVyYmxvYXQu bmV0PjsgSmVyZW15IEF1c3RpbiB2aWEgUnBtIDwNCj4gcnBtQGxpc3RzLmJ1ZmZlcmJsb2F0Lm5l dD4NCj4gPj4gPiBCZXRyZWZmOiBbQmxvYXRdIFJlOiBbQ2FrZV0gUmU6IFhEUDIgaXMgaGVyZSAt IGZyb20gb25lIGFuZCBvbmx5IFRvbQ0KPiBIZXJiZXJ0IChhbG1vc3QgdG8gdGhlIGRhdGUsIDEw IHllYXJzIGFmdGVyIFhEUCB3YXMgcmVsZWFzZWQpDQo+ID4+ID4NCj4gPj4gPg0KPiA+PiA+IFRv bSAtDQo+ID4+ID4NCj4gPj4gPiBBbiBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgbmV0d29yayBm cmFtZXdvcmsgaW5kZXBlbmRlbnQgb2YgdGhlIE9TDQo+IGtlcm5lbCdzIHBlY3VsaWFyaXRpZXMg c2VlbXMgd2l0aGluIHJlYWNoICh0aG91Z2ggYSBmYWlyIGJpdCBvZiB3b3JrKSwgYW5kDQo+IEkg dGhpbmsgaXQgd291bGQgYmUgYSBHT09EIFRISU5HIGluZGVlZC4gSU1ITyB0aGUgTGludXggbmV0 d29ya2luZyBzdGFjayBpbg0KPiB0aGUga2VybmVsIGlzIGEgaG9ycmlmaWMgbWVzcywgYW5kIGl0 IGRvZXNuJ3QgaGF2ZSB0byBiZS4NCj4gPj4gPg0KPiA+PiA+IFRoZSByZWFzb24gaXQgZG9lc24n dCBoYXZlIHRvIGJlIGlzIHRoYXQgdGhlcmUgc2hvdWxkIGJlIG5vIHJlYXNvbiBpdA0KPiBjYW5u b3QgcnVuIGluIHJpbmczL3VzZXJsYW5kLCBqdXN0IGxpa2UgRFBESy4gQW5kIGl0IHNob3VsZCBi ZSBidWlsdCB1c2luZw0KPiAicmVhbC10aW1lIiB1c2VybGFuZCBwcm9ncmFtbWluZyB0ZWNobmlx dWVzLiAoYXZvaWRpbmcgdGhlIGdlbmVyaWMgbGludXgNCj4gc2NoZWR1bGVyKS4gVGhlIE9OTFkg cmVhc29uIGZvciBpbnZvbHZpbmcgdGhlIHNjaGVkdWxlciB3b3VsZCBiZSBiZWNhdXNlDQo+IHRo ZXJlIGFyZW4ndCBlbm91Z2ggY29yZXMuIExpbnV4IHdhcyBkZXNpZ25lZCB0byBiZSBhIHVuaXBy b2Nlc3NvciBVbml4LA0KPiBhbmQgdGhhdCBqdXN0IGlzIG5vIGxvbmdlciB0cnVlIGF0IGFsbC4g V2l0aCBoeXBlcnRocmVhZGluZywgdG9vLCBvbmUgbmVlZA0KPiBuZXZlciBhYmFuZG9uIGEgcHJv Y2Vzc29yJ3MgY29udGV4dCBpbiB1c2Vyc3BhY2UgdG8gcnVuIHNvbWUgInVzZXJsYW5kIg0KPiBh cHBsaWNhdGlvbi4NCj4gPj4gPg0KPiA+PiA+IFRoaXMgd291bGQgcmlwIGEgaHVnZSBhbW91bnQg b2Yga2VybmVsIGNvZGUgb3V0IG9mIHRoZSBrZXJuZWwuIChhdA0KPiBsZWFzdCA1MCUsIGFuZCBw cm9iYWJseSBtb3JlKS4gVEhlIHNlY3VyaXR5IGlzc3VlcyBvZiBhbGwgdGhvc2UgM3JkIHBhcnR5 DQo+IG5ldHdvcmsgZHJpdmVycyB3b3VsZCBnbyBhd2F5Lg0KPiA+PiA+DQo+ID4+ID4gQW5kIHRo ZSBwZXJmb3JtYW5jZSB3b3VsZCBiZSBtdWNoIGhpZ2hlciBmb3IgbmV0d29ya2luZy4gIChydW5u aW5nIGluDQo+IHJpbmcgMywgZXNwZWNpYWxseSBpZiB5b3UgZG9uJ3QgZG8gc3lzdGVtIGNhbGxz LCBpcyBubyBwZXJmb3JtYW5jZSBwZW5hbHR5LA0KPiBhbmQgaW50ZXJwcm9jZXNzb3IgY29tbXVu aWNhdGlvbnMgdXNpbmcgc2hhcmVkIG1lbW9yeSBpcyBtdWNoIGxvd2VyIGxhdGVuY3kNCj4gdGhh biBMaW51eCBJUEMgb3IgbXV0ZXhlcykuDQo+ID4+ID4NCj4gPj4gPiBJIGxpa2UgdGhlIGlkZWEg b2YgYSBjb21waWxhdGlvbiBiYXNlZCBuZXR3b3JrIHN0YWNrLCBhdCBhIHNsaWdodGx5DQo+IGhp Z2hlciBsZXZlbCB0aGFuIEMuIGVCUEYgaXMgTk9UIHdoYXQgSSBoYXZlIGluIG1pbmQgLSBpdCdz IGFuIGludGVycHJldGVyDQo+IHdpdGggaGlnaCBvdmVyaGVhZC4gVGhlIGxhbmd1YWdlIHNob3Vs ZCBzdXBwb3J0IGhpZ2gtcGVyZm9ybWFuY2UNCj4gY28tcm91dGluaW5nIC0gc2hhcmVkIG1lbW9y eSwgaWRlYWxseS4gSSBkb24ndCB0aGluZyBHQyBpcyBhIGdvb2QgdGhpbmcuDQo+IFJ1c3QgbWln aHQgYmUgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGJlY2F1c2UgaXRzIG1lbW9yeSBtYW5hZ2VtZW50 IGlzIHNhZmUuDQo+ID4+ID4gVG8gbWUsIHNvbWUgb2Ygd2hhdCB0aGUgYmFzZSBvZiBEUERLIGlz IGxpa2UgaXMgZ29vZCBzdHVmZi4gSG93ZXZlciwNCj4gaXQgaXNuJ3QgYXJjaGl0ZWN0dXJhbGx5 IG5ldXRyYWwuDQo+ID4+ID4NCj4gPj4gPiBUbyBtZSwgdGhlIG5ldHdvcmsgc3RhY2sgc2hvdWxk IG5vdCBiZSBlbnRhbmdsZWQgd2l0aCBpbnRlcnJ1cHQNCj4gaGFuZGxpbmcgYXQgYWxsLiAicG9s bGluZyIgaXMgZmFyIG1vcmUgcGVyZm9ybWFudCB1bmRlciBsb2FkLiBUaGUgb25seSB1c2UNCj4g Zm9yIGludGVycnVwdHMgaXMgd2hlbiB0aGUgbmV0d29yayBzdGFjayBpcyBjb21wbGV0ZWx5IGlk bGUuIFRoYXQgd291bGQgYmUsDQo+IGluIHVzZXJsYW5kLCBhICJ3YWl0IGZvciBpbnRlcnJ1cHQi IGNhbGwgKG5vdCBhIHBvbGwpLiBJZGVhbGx5LCBvbiByZWNlbnQNCj4gSW50ZWwgbWFjaGluZXMs IGEgdXNlcnNwYWNlIHZlcnNpb24gb2YgTU9OSVRPUi9NV0FJVCkuDQo+ID4+ID4NCj4gPj4gPiBO b3cgSSBrbm93IHRoYXQgTGludXMgYW5kIGhpcyBjcmV3IGFyZSByZWFsbHkgTk9UIGdvbm5hIGxp a2UgdGhpcy4NCj4gTGludXMgaXMgc3RpbGwgdGhpbmtpbmcgbGlrZSBNSU5JWCwgYSB1bmlwcm9j ZXNzb3IgdGltZS1zaGFyaW5nIHN5c3RlbSB3aXRoDQo+IHJpY2ggT1MgZnVuY3Rpb25zIGluIHRo ZSBrZXJuZWwgYW5kIGRvaW5nICJmaWxlIiByZWFkcyBhbmQgd3JpdGVzIHRvDQo+IGNvbW11bmlj YXRlIHdpdGggdGhlIGtlcm5lbCBzdGF0ZS4gQnV0IGl0IGlzIGEgbXVjaCBtb3JlIG1vZGVybiB3 YXkgdG8NCj4gdGhpbmsgb2YgcmVhbC10aW1lIElPIGluIGEgbW9kZXJuIG9wZXJhdGluZyBzeXN0 ZW0uIChXaW5kb3dzIGFuZCBtYWNPUyBhcmUNCj4gYWxzbyBVbml4LWxpa2UsIHVuaXByb2Nlc3Nv ciBtb25vbGl0aGljIGtlcm5lbCBkZXNpZ25zKS4NCj4gPj4gPg0KPiA+PiA+IFNvLCBpZiBYRFAy IGdvdCBhd2F5IGZyb20gdGhlIExpbnV4IGtlcm5lbCwgaXQgY291bGQgYmUgZ3JlYXQuDQo+ID4+ ID4gQlRXLCBpb191cmluZywgZXRjLiBhcmUgaGFsZi1tZWFzdXJlcy4gVGhleSBhZGRyZXNzIGdl dHRpbmcgYXdheSBmcm9tDQo+IGludGVycnVwdHMgdG93YXJkIHBvbGxpbmcsIGJ1dCB0aGV5IHN0 aWxsIG1ha2UgdGhlIG1pc3Rha2Ugb2Yga2VlcGluZyBodWdlDQo+IGRyaXZlcnMgaW4gdGhlIGtl cm5lbC4NCj4gPj4NCj4gPj4gRFBESyBhbHJlYWR5IHN1cHBvcnRzIHVzZSBvZiBYRFAgYXMgYSB3 YXkgdG8gZG8gdXNlcnNwYWNlIG5ldHdvcmtpbmcuDQo+ID4+IEl0IGlzIGdvb2QgZ2VuZXJpYyB3 YXkgdG8gZ2V0IHBhY2tldHMgaW4vb3V0IGJ1dCB0aGUgZGVkaWNhdGVkDQo+IHVzZXJzcGFjZSBk cml2ZXJzIGFsbG93DQo+ID4+IGZvciBtb3JlIGFjY2VzcyB0byBoYXJkd2FyZS4gVGhlIFhEUCBh YnN0cmFjdGlvbiBnZXRzIGluIHRoZSB3YXkgb2YNCj4gbGl0dGxlIHRoaW5ncyBsaWtlIHByb2dy YW1taW5nDQo+ID4+IFZMQU4ncywgZXRjLg0KPiA+Pg0KPiA+PiBUaGUgdHJhZGVvZmYgaXMgdXNl cnNwYWNlIG5ldHdvcmtpbmcgd29ya3MgZ3JlYXQgZm9yIGluZnJhc3RydWN0dXJlLA0KPiByb3V0 ZXJzLCBzd2l0Y2hlcywgZmlyZXdhbGxzIGV0YzsNCj4gPj4gYnV0IHVzZXJzcGFjZSBuZXR3b3Jr aW5nIGZvciBuZXR3b3JrIHN0YWNrcyB0byBhcHBsaWNhdGlvbnMgaXMgaGFyZCB0bw0KPiBkbywg YW5kIGxvc2VzIHRoZSBpc29sYXRpb24NCj4gPj4gdGhhdCB0aGUga2VybmVsIHByb3ZpZGVzLg0K PiA+Pg0KPiA+PiA+ICA+IEkgdGhpbmsgaXQgaXMgaW50ZXJlc3RpbmcgYXMgYSBjb25jZXB0LiBB IHByb2plY3QgSSBhbSBhZHZpc2luZw0KPiBoYXMgYmVlbiAgPiB1c2luZyBEUERLIHZlcnkgZWZm ZWN0aXZlbHkgdG8gZ2V0IHJpZCBvZiB0aGUgaHVnZSBwYXRoIGFuZA0KPiBsb2NraW5nIGRlbGF5 cyAgPiBpbiB0aGUgY3VycmVudCBMaW51eCBuZXR3b3JrIHN0YWNrLiBYRFAyIGNvdWxkIGJlDQo+ IHN1cHBvcnRlZCBpbiBhIHJpbmczICA+ICh1c2VyKSBhZGRyZXNzIHNwYWNlLCBhY2hpZXZpbmcg YSBzaW1pbGFyIHJlc3VsdC4NCj4gPj4gPiBISSBEYXZpZCwNCj4gPj4gPiBUaGUgaWRlYSBpcyB5 b3UgY291bGQgd3JpdGUgdGhlIGNvZGUgaW4gWERQMiBhbmQgaXQgd291bGQgYmUgY29tcGlsZWQN Cj4gdG8gRFBESyBvciBlQlBGIGFuZCB0aGUgY29tcGlsZXIgd291bGQgaGFuZGxlIHRoZSBvcHRp bWl6YXRpb25zLg0KPiA+PiA+ICA+DQo+ID4+ID4gID4NCj4gPj4gPiAgPg0KPiA+PiA+ICA+IEJ1 dCBJIGRvbid0IHRoaW5rIFhEUDIgaXMgZ29pbmcgdGhhdCBkaXJlY3Rpb24gLSBzbyBpdCBtYXkg YmUNCj4gc3R1Y2tpbnRvICA+IHRoZSBtZXNzIG9mIGtlcm5lbCBzcGFjZSBuZXR3b3JraW5nLiBB ZGRpbmcgZUJQRiBvbmx5IGhhcyBtYWRlDQo+IHRoaXMgbW9yZSBvZiAgPiBhIG1lc3MsIGJ5IHRo ZSB3YXkgKGFuZCBhZGRpbmcgYSBuZXcgImNvbXBpbGVyIiB0aGF0IG5lZWRzDQo+IHRvIGJlIHZl cmlyaWVkICA+IGFzIHNhZmUgZm9yIHRoZSBrZXJuZWwpLg0KPiA+PiA+IFRoaW5rIG9mIFhEUDIg YXMgdGhlIGdlbmVyYWxpemF0aW9uIG9mIFhEUCB0byBnbyBiZXlvbmQganVzdCB0aGUNCj4ga2Vy bmVsLiBUaGUgaWRlYSBpcyB0aGF0IHRoZSB1c2VyIHdyaXRlcyB0aGVpciBkYXRhcGF0aCBjb2Rl IG9uY2UgYW5kIHRoZXkNCj4gY29tcGlsZSBpdCB0byBydW4gaW4gd2hhdGV2ZXIgdGFyZ2V0cyB0 aGV5IGhhdmUtLSBEUERLLCBQNCwgb3RoZXINCj4gcHJvZ3JhbW1hYmxlIGhhcmR3YXJlLCBhbmQg eWVzIFhEUC9lQlBGLiBJdCdzIHJlYWxseSBub3QgbGltaXRlZCB0byBrZXJuZWwNCj4gbmV0d29y a2luZy4NCj4gPj4gPiBBcyBmb3IgdGhlIG5hbWUgWERQMiwgd2hlbiB3ZSBjcmVhdGVkIFhEUCwg ZVhwcmVzcyBEYXRhUGF0aCwgbXkNCj4gdmlzaW9uIHdhcyB0aGF0IGl0IHdvdWxkIGJlIGltcGxl bWVudGF0aW9uIGFnbm9zdGljLiBlQlBGIHdhcyB0aGUgZmlyc3QNCj4gaW5zdGFudGlhdGlvbiBm b3IgcHJhY3RpY2FsaXR5LCBidXQgbm93IHRlbiB5ZWFycyBsYXRlciBJIHRoaW5rIHdlIGNhbg0K PiByZWFsaXplIHRoZSBpbml0aWFsIHZpc2lvbi4NCj4gPj4gPiBUb20NCj4gPj4NCj4gPj4NCj4g Pj4gQXQgdGhpcyBwb2ludCwgZGlmZmVyZW50IG5ldHdvcmsgYXJjaGl0ZWN0dXJlcyBnZXQgZm9j dXNlZCBhdCBkaWZmZXJlbnQNCj4gdXNlIGNhc2VzLg0KPiA+PiBUaGUgZGF5cyBvZiB0aGUgb25l LXNpemUtZml0cy1hbGwgbmV0d29ya2luZyBvZiBCU0QgVW5peCBpcyBkZWFkLg0KPg0K