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=pass; dmarc=pass (Used From Domain Record) header.from=gmail.com policy.dmarc=quarantine Received: from mail-ej1-x631.google.com (mail-ej1-x631.google.com [IPv6:2a00:1450:4864:20::631]) by mail.toke.dk (Postfix) with ESMTPS id 86CA41155F93 for ; Sun, 24 May 2026 21:59:57 +0200 (CEST) Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-bd3eb594960so1047907066b.0 for ; Sun, 24 May 2026 12:59:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779652796; cv=none; d=google.com; s=arc-20240605; b=MyVAt2WJPTr3/mVDph6+RFztjGzuEqs9FqKxDgGTPzmlQqh7iIJXPj+0N4zemh3lSK 7C8jl3j8icdtKyRO57eNPzEvW6k57qhKyx6WI2W2q95hY1fBILP4DC7LsANGS3W352dU K8cb3pq61R9rgE4wmEUOkv8jA4Xdt6usIUD8Fu0DclNQYageand3njqPN8x9xUJdJ4XI IkQabQ+NrdppHfLQRcjR9qF03Hw9JyQodpglvQHmOZ3JyjpTXwkIA5WwMHAOCapmm3im 6zdPnX8rre35XtxTMwB4f/SosPV73LUrUDtLN2vlYeLls9GAB9FaTk5PZrCFtOXJLGGA zvPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=JOYRZnADM6djtXr+DWtqGBB1lCjEUToJnqMa8X+Cs9o=; fh=rFGNmPCyo8W62n2JQSV85AW7SaQXmhOGBXldLKHgZEE=; b=j08Kvs6DjcDZEfGJDnERQUB4iwYq5sWFRn0t16s+3cGZzlGWnZX3GaL0E5R5NS32UI gJ1l2z1c/x9g4j7RgQZiiR4q1I93RoK+Nh5H2MtY5IunS+j4PJ0lK/OnFsCKC29A1TM3 66ywFqb/3U5GzuW4MiB7T+xOt6qG5QE3Bm/z4SqLdYJuDHYRrL4BHNfNKHrs0Pi+RLln OnbT9/uJVZ8fQuL99/AYypKBsWav+X+Tp400di2SZzGE8zVQoyV6Qqvwpr1NbQq4bDzE LSLdeC+v/TlgSoYAnY1mNRaZ8zAareeAYIho78aZD5wspZqwOETf7CZbnOeJ/BiQHxlk waXw==; darn=lists.bufferbloat.net ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779652796; x=1780257596; 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=JOYRZnADM6djtXr+DWtqGBB1lCjEUToJnqMa8X+Cs9o=; b=mgY4ApVH1s6sGnew8Oq3glcqO4/V4e09cBgW5s1cAtOvX7PSyy8x697YuLn9cazthA AQB5Xb8FL2+GhgvRcAntgfE+Uyy6Dtm8FB5LDxxIUmdVCgiFHKEwTTUAo0bWht26ghfX YHo8NovANQNrllMxSaZxv2+abaVeW4iejNqosoQZ4J6P6qX9c6qgcLQWrIWdAvTVJE5q EZTjZdvTeFlPRli0ADBFESqB/k2otSRGeayHpzkKJvbFkmAeyzOj1ryBHGeqlSeg00KW HNGp4IKuw79NxkafLE0JTdr4jpXqMscvpO4culufv7WlcUKgBu9ZxMGq0qjgFyhWhnAC XPuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779652796; x=1780257596; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=JOYRZnADM6djtXr+DWtqGBB1lCjEUToJnqMa8X+Cs9o=; b=Ma8+DDVbo3ZHEgFvz1EuseurqFhdHxqzUKj8Pm/ProF1Qp7a1CqxIYxImQ76Aa2t5d ShKI7AKsKwvCNUc7SwNfxwyd6LgVJ0SgA2LCRJrQ2N5SU/oRsgbkv9EdCCxX1m0POpl5 JtORIlvVN/SSFyNc6k3HQpVwiXjHrqMEJJvUde3kYLWzeESE7yJ+xTcOIEv+Ohs0IwlF K1Gp4md8SJ7o/jP9ipTwaxFXnVYZjGTn0w5QN+Kyju+4X4IBj4pITmQoXTyvbMflsm7N UUJCOe278cdxImCoBnZf1Idk+kwig946TG3frCI52RN5PPEm0mzN8hn8FpDJgezDVizo c97Q== X-Forwarded-Encrypted: i=1; AFNElJ93+2j1dYxZ5VU711g2gn6i6Q0eWPFoJNdP8hMw9jp3LYiffBK8xKUOBmREbTAz0bJAD6cch2Yf3M16x6wk5w==@lists.bufferbloat.net X-Gm-Message-State: AOJu0YxcFED9OFa/w/xCas9/6mpJEP+/ItNx/fGOlANJHTBP1seVKOWq TwX1+q4VFoIa2dkaujvzcJHZFOsKoufLQKI+bkmojzI7oaaE1CA27QexXkR493yEFSviYlC1oCu 0SlweTiIF0qy57ylBI8G4CJq2VWSnCfQ= X-Gm-Gg: Acq92OEcUMjqtCETxxXXdByPHMLq8L5KGudbkLX9VFQW75ivwuy1EKG6RQWE4+5KmhE 13QySSQp7D+WimEP3l1hJnXwbibnjblbWjqZg1E0HYVvQUg5R8vSMG08tZ+TijousNU0C5TvFSC xutyHyP92ad1Rxc9zOWNQRW1qe9JcBZ7znFOmICuehWtl1uVlgsnVpRPTeqKuwQcuYzPufjY1yy VcgJ+JV0TpkfR6Z9Dus+mhwSPpsxuaPuIYHPuj1bn2CWST6Ii9esm3s8gTwcQg8tpIeOwwPx+yz Nrnoe4ooBs5EkMmnfXhWM3isZXEzxDBbmK+kzkfPbfOTSmKGHNCXPvGPnkvWum6kGu6ruKUjohc Q0IN+wvb5hQ== X-Received: by 2002:a17:907:7fac:b0:bd5:de3:263 with SMTP id a640c23a62f3a-bdd26ce97e4mr733331166b.46.1779652795349; Sun, 24 May 2026 12:59:55 -0700 (PDT) MIME-Version: 1.0 References: <709dac7800ee7ad92aafd4eab1c761d9@umbernetworks.com> <0oq1n88q-36qn-p6s7-699s-p4nr0440p950@ynat.uz> <8e14c6935753c6263351ad00ec59b9cb@umbernetworks.com> In-Reply-To: From: Frantisek Borsik Date: Sun, 24 May 2026 22:06:04 +0200 X-Gm-Features: AVHnY4JPDp64KhfNjAAxO80sSMjl_kKbNbH1oK8TUz_6cX_-UuNg1HtnjKNLU7o Message-ID: To: dan , Robert McMahon Cc: Robert McMahon , David Lang , "Livingood, Jason" , Cake List , Make-Wifi-fast , bloat , Jeremy Austin via Rpm , codel@lists.bufferbloat.net, "Dave.seddon Ca" , William Fisher , Igor Aleinikov , Jim , Jiml , Douglas Fairbairn , Thomas , Tim Odriscoll , Morten , Sebastian Moeller , Mt Denicolo , Mmcmahon01 , Santanu Sinha , Matthew , Koen DS , Shotaro Saito X-MailFrom: frantisek.borsik@gmail.com X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation Message-ID-Hash: CVVTMRPVOHJHDZQLLNHRPT2T3FZPPF3U X-Message-ID-Hash: CVVTMRPVOHJHDZQLLNHRPT2T3FZPPF3U X-Mailman-Approved-At: Mon, 25 May 2026 10:07:12 +0200 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: [Make-wifi-fast] Re: [Rpm] Re: [Bloat] Re: [Cake] "Fi-Wi is a new forwarding plane for wireless" - Bob McMahon List-Id: Lets make wifi fast again! Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: VGVjaG5pY2FsbHksIEJldGFtYXggd2FzIHN1cGVyaW9yIHRvIFZIUywgYW5kIHlldC4uLg0KDQpJ ZiB3ZSB3b3VsZCBiZSB0YWxraW5nIGFib3V0IEZpV2kgcHJlLWp1bXAgZnJvbSBXaS1GaSA1IHRv IFdpLUZpNi9FLzcsIEkNCndvdWxkIGV2ZW4gdHJ5IHRvIGRvIG15IGJlc3QgYW5kIGlnbm9yZSBo dHRwczovL2Zhc3Rnb29kLmNoZWFwLg0KQnV0IHdlIGFyZSBub3QgdGhlcmUsIGZvciBiZXR0ZXIg b3IgZm9yIHdvcnNlLg0KDQpJU1BzIGxpa2UgRGFuIHRoYXQgdXNlIFdpLUZpIDYgKHdpdGggbWVz aCwgZXNwZWNpYWxseSBiYXNlZCBvbiBiYXRtYW4tYWR2DQphbmQgRlEtQ29EZWwgLyBDQUtFKSBh bmQgYWJvdmUgYXQgY3VzdG9tZXIgcHJlbWlzZXMgYW5kIFF1YWxpdHkgb2YNCkV4cGVyaWVuY2Ug bWlkZGxlLWJveCBvbiB0aGVpciBsYXN0LW1pbGUsIHdoaWxlIHByb3ZpZGluZyBnb29kLCBwZXJz b25hbA0KY3VzdG9tZXIgc2VydmljZSAobm90IHNvbWUgY3JhcHB5IG91dHNvdXJjaW5nIG9mIGl0 IHRvIEluZGlhIG9yICJBSSIpIHdpbGwNCmJlIGhhcmQgdG8gYmVhdCwgZXZlbiBmb3IgYSBiaWcg dGVsY28vSVNQIG9mZmVyaW5nIGNoZWFwZXIgcHJpY2UuIFllcywgc29tZQ0KcGVvcGxlIHdpbGwg bGVhdmUgYnV0IHRoZSBtb3N0IG9mIHRoZW0gd2lsbCBiZSBjb21pbmcgYmFjay4NCg0KVGhpcyBp cywgYmVsaWV2ZSBpdCBvciBub3QsIG5vdCBhIGhpZ2ggYmFyIHRvIGp1bXAgb3ZlciwgZXZlbiB0 aG91Z2ggbm90DQptYW55IElTUHMgYXJlIGdldHRpbmcgaXQgYWxyZWFkeS4gV2UgYWxsIGtub3cg dGhhdCBtb3JlIG9yIGxlc3M6ICJCYW5kd2lkdGgNCmlzIGEgbGllLCBCYW5kd2lkdGggaXMgZGVh ZCwiIHNvIGl0J3MgY29taW5nLiBUaGV5IHdpbGwgYmUgdGhyb3dpbmcgbW9yZQ0KYmFuZHdpZHRo IG9uIGl0IGZvciBzb21lIHRpbWUsIGJ1dCB3ZSB3aWxsIGJlIGdldHRpbmcgZnJvbSAiaW5ub3Zh dG9ycyIgdG8NCiJlYXJseSBhZG9wdGVycyIgc29vbiBhbmQgdGhlbiwgYWxsIHdlIG5lZWQgaXMg anVzdCB0aGF0ICJjcm9zc2luZyB0aGUNCmNoYXNtLiINCg0KRGVzcGl0ZSBhbGwgdGhlIGRpZmZp Y3VsdGllcywgaXQgd2lsbCBiZSBmYXN0ZXIgYW5kIGNoZWFwZXIgLSBhbHNvICJnb29kDQplbm91 Z2gsIiB0aGFuIEZpV2kuIE9yIHJhdGhlciwgaXQncyBoZXJlIGFscmVhZHksIGl0J3MganVzdCBu b3QgZXZlbmx5DQpkaXN0cmlidXRlZC4NClRoZXJlIG1pZ2h0IGJlIHNvbWUgZ29vZCBuaWNoZSB1 c2UgY2FzZSBmb3IgRmlXaSwgdGhvdWdoLCBvbmNlIGl0IHdpbGwNCm1hdHVyZSBhbmQgZ2V0IHRo ZXJlLg0KDQpBbGwgdGhlIGJlc3QsDQoNCkZyYW5rDQoNCkZyYW50aXNlayAoRnJhbmspIEJvcnNp aw0KDQoNCipJbiBsb3ZpbmcgbWVtb3J5IG9mIERhdmUgVMOkaHQ6ICoxOTY1LTIwMjUNCg0KaHR0 cHM6Ly9saWJyZXFvcy5pby8yMDI1LzA0LzAxL2luLWxvdmluZy1tZW1vcnktb2YtZGF2ZS8NCg0K DQpodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vZnJhbnRpc2VrYm9yc2lrDQoNClNpZ25hbCwg VGVsZWdyYW0sIFdoYXRzQXBwOiArNDIxOTE5NDE2NzE0DQoNCmlNZXNzYWdlLCBtb2JpbGU6ICs0 MjA3NzUyMzA4ODUNCg0KU2t5cGU6IGNhc2lvYTUzMDJjYQ0KDQpmcmFudGlzZWsuYm9yc2lrQGdt YWlsLmNvbQ0KDQoNCk9uIFN1biwgTWF5IDI0LCAyMDI2IGF0IDI6MTLigK9BTSBkYW4gPGRhbmRl bnNvbkBnbWFpbC5jb20+IHdyb3RlOg0KDQo+DQo+DQo+IE9uIFNhdCwgTWF5IDIzLCAyMDI2IGF0 IDEwOjM24oCvQU0gPGJvYi5tY21haG9uQHVtYmVybmV0d29ya3MuY29tPiB3cm90ZToNCj4NCj4+ ID4gSSBkb24ndCBoYXZlIGFyZ3VtZW50cyBvbiB0aGUgdGVjaG5pY2FsIGJpdHMgb2YgeW91ciBy ZXBseS4NCj4+DQo+PiBUaGUgaW5kdXN0cnkgaGFzbid0IHByb3ZpZGVkIG9wZW4gc291cmNlIHRv b2xzIHRvIGFuYWx5emUgODAyLjExDQo+PiBwcm9wZXJseS4gVGhlIHByb3ByaWV0YXJ5IG9uZXMg YXJlIHRpZ2h0bHkgY291cGxlZCB0byBjaGlwIGZpcm13YXJlLCBvd25lZA0KPj4gYnkgODAyLjEx IHZlbmRvcnMsIGFuZCBub3QgZm9yIHNhbGUuDQo+Pg0KPj4gWW91J3ZlIGJ1aWx0IHNvbGlkIG5l dHdvcmtzLCBlc3BlY2lhbGx5IGdpdmVuIGhvdyBsaXR0bGUgODAyLjExIE1BQy1sYXllcg0KPj4g YW5kIE1DUyBvYnNlcnZhYmlsaXR5IGN1cnJlbnQgdG9vbGluZyBleHBvc2VzLiBJIGhvcGUgdG8g bWFrZSBvcGVuIHNvdXJjZQ0KPj4gODAyLjExIE1BQyB0ZWxlbWV0cnkgdG9vbHMgYXZhaWxhYmxl IHNvb25lciByYXRoZXIgdGhhbiBsYXRlci4gVGhlc2Ugd2lsbA0KPj4gcnVuIG9uIGJvdGggYW4g RVNQMzItQzUgYW5kIGFuIFJQaTUuIFRoZSBpbmV4cGVuc2l2ZSBFU1AzMiBhbGxvd3MgbW9uaXRv cnMNCj4+IHRvIGJlIHBsYWNlZCB0aHJvdWdob3V0IGEgdmVudWUgYXQgbG93IGNvc3QuDQo+Pg0K Pj4gQSBrZXkgaXNzdWUgaXMgd2hhdCdzIGJlaW5nIG1lYXN1cmVkLiBZb3VyIGRlcGxveW1lbnQg ZGF0YSBpcyBhIGNhcGFjaXR5DQo+PiBhbmFseXNpcy4gT25jZSBiYXNlbGluZSBjYXBhY2l0eSBp cyBhZGVxdWF0ZSwgdXNlciBleHBlcmllbmNlIGlzIGRyaXZlbiBieQ0KPj4gdGFpbCBsYXRlbmN5 IGFuZCBzZXJ2aWNlLXRpbWUgdmFyaWFuY2UgcmF0aGVyIHRoYW4gdGhyb3VnaHB1dC4gQSBuZXR3 b3JrDQo+PiBjYW4gc2F0dXJhdGUgYWdncmVnYXRlIHRocm91Z2hwdXQgd2hpbGUgc3RpbGwgc2hv d2luZyBsYXJnZSBzZXJ2aWNlLXRpbWUNCj4+IHZhcmlhbmNlIGFuZCBsb25nIHBlci1mbG93IHRh aWxzIHVuZGVyIGNvbnRlbnRpb24uIFRoZXNlIGFyZSBkaWZmZXJlbnQNCj4+IG1lYXN1cmVtZW50 cy4NCj4+DQo+PiBBbmQgQ09ERUwgYW5kIENBS0UgYXJlIElQLWxheWVyIG1lY2hhbmlzbXMuIFRo ZXkgZG9uJ3Qgb3BlcmF0ZSBvbiA4MDIuMTENCj4+IFRYT1BzIG9yIGFpcnRpbWUgc29qb3Vybiwg d2hpY2ggaXMgd2hlcmUgdGhlIGNvbnRlbnRpb24gYW5kIHNlcnZpY2UtdGltZQ0KPj4gdmFyaWFu Y2UgYWN0dWFsbHkgbGl2ZS4gQVFMIGlzIGNsb3Nlci4gSXQgb3BlcmF0ZXMgb24gYWlydGltZSBh dCB0aGUNCj4+IGRyaXZlci9maXJtd2FyZSBib3VuZGFyeSwgYnV0IGl0J3Mgc3RpbGwgcGVyLUFQ LiBUaGVyZSdzIG5vIGNvb3JkaW5hdGlvbg0KPj4gYWNyb3NzIEFQcyBhbmQgbm8gTUFDIHRlbGVt ZXRyeSBleHBvc2VkIHVwd2FyZC4NCj4+DQo+PiBTbGlkZSA2IG9mIG15IERQREsgU3VtbWl0IFN0 b2NraG9sbSB0YWxrIGxheXMgb3V0IHRoZSBsYXllcmluZzoNCj4+IGh0dHBzOi8vd3d3LnVtYmVy bmV0d29ya3MuY29tL0RQREtfV2lGaV9TdG9ja2hvbG1fUHJlcy5odG1sDQo+Pg0KPj4gQ2hlY2sg b3V0IGlwZXJmMidzIGFkdmFuY2VkIGZlYXR1cmVzIGFyb3VuZCAtLWJvdW5jZWJhY2ssIC0tdHJp cC10aW1lcywNCj4+IGFuZCAtLWhpc3RvZ3JhbXMuIFRoZXNlIGFyZSBhdmFpbGFibGUgYXMgb3Bl biBzb3VyY2UuIE1hbiBwYWdlOg0KPj4gaHR0cHM6Ly9pcGVyZjIuc291cmNlZm9yZ2UuaW8vaXBl cmYtbWFucGFnZS5odG1sDQo+Pg0KPj4gSSdsbCB0cnkgdG8gcmVzcG9uZCB3aXRoIHNvbWUgbWV0 cmljcyBzb29uLiBNeSByaWcgaXMgZG93biBhdCB0aGUgbW9tZW50LA0KPj4gc28gZ2l2ZSBtZSBh IGZldyBkYXlzLg0KPj4NCj4+IEJvYg0KPj4NCj4NCj4gSSBhZ3JlZS4gIEhvd2V2ZXIsIEknbSBu b3QgYWN0dWFsbHkganVzdCBtZWFzdXJpbmcgdGhyb3VnaHB1dCwgYnV0IHJ1bm5pbmcNCj4gbGF0 ZW5jeSBzZW5zaXRpdmUgYXBwbGljYXRpb25zIHdpdGhvdXQgaXNzdWVzLiAgRnJhbmsgbWlnaHQg YXR0ZXN0IHRvIG15DQo+IGVmZm9ydHMgdG8gcmVkdWNlIGxhdGVuY3kgYW5kIEkgcm91dGluZWx5 IHNoYXJlIGRhdGEgb24gbHFvcyAoYW5kIGFub3RoZXINCj4gUW9FIHByb2R1Y3QncykgVENQIG1l YXN1cmVtZW50cyBmb3IgbGF0ZW5jeSBhbmQgYW1vbmcgUW9FIHVzZXJzLCBJIGJlbGlldmUNCj4g bXkgbmV0d29yayBpcyB0b3AgMSUgaW4gbGF0ZW5jeSBhbmQgaml0dGVyIGFuZCBpbiB0aGUgV0lT UCBzcGFjZS4NCj4gT2J2aW91c2x5IEknbSBub3QgZ29pbmcgdG8gY29tcGV0ZSB3aXRoIFhHU1BP TiBvcGVyYXRvcnMuLiAodGhvdWdoIEknbSBvbmx5DQo+IG1lYXN1cmluZyBUQ1AgYmVjYXVzZSB0 aGF0J3MgdGhlICdlYXNpZXN0JyB0byBtZWFzdXJlIHBhc3NpdmVseQ0KPiBwcmFjdGljYWxseSku ICBXaGlsZSB0aGlzIGlzIG5vdCBhbiBlbmdpbmVlcmluZyBhZGVxdWF0ZSBiZW5jaG1hcmssIGlm IG15DQo+IFZvSVAgaGFuZHNldHMgd29yayBvdmVyIHdpcmVsZXNzIHRoZW4gdGhlIHdpcmVsZXNz IGlzIGdvb2QgaXMgYSB2ZXJ5DQo+IHJlYXNvbmFibGUgbGF0ZW5jeSwgaml0dGVyLCBsb3NzIGFy Z3VtZW50LiAgQW5kIEkgcnVuIGEgZmV3IGJyYW5kcyBvZiBXaUZpDQo+IGJhc2VkIFZvSVAgcGhv bmVzIChGYW52aWxsIFd4eHggc2VyaWVzLCBZZWFsaW5rIFd4eCBhbmQgQVh4eCBzZXJpZXMpLg0K PiBTaW1pbGFybHksIGlmIHRoZSBzb25vcyB3b3JrcyBhbmQgaXMgaW4gc3luYywgdGhlIHdpZmkg aXMgZ29vZC4NCj4NCj4gQXMgYSBzZXJ2aWNlIGNvbXBhbnkgYW5kIGFzIGEgdXNlciwgSSBkb24n dCByZWFsbHkgY2FyZSBzbyBtdWNoIHdoZXJlIHRoZQ0KPiBnb29kbmVzcyBpcyBpbiB0aGUgc3lz dGVtLCBtYWMgbGF5ZXIgb3IgSVAgaGF2aW5nIGNha2Ugd29yayBpdCdzIG1hZ2ljLg0KPiBCYXNp Y2FsbHkgcnVubmluZyBhbiBBUCBvbiBPRk1EQSAoYXMgbXVjaCBhcyBwb3NzaWJsZSkgYW5kIHdl bGwgdW5kZXIgdGhlDQo+ICdyZWQgbGluZScgY2FwYWNpdHkgZGVsaXZlcnMgZ3JlYXQgcmVzdWx0 cyBvbiBXaUZpNyByYWRpb3MgKGFuZCBzb21lIFdpRmk2DQo+IHJhZGlvcykuICBJIGhhdmUgbm8g ZG91YnQgdGhhdCBGaVdpIGNvdWxkIGdldCBtb3JlIG9mIHRoZSB0aGVvcmV0aWNhbA0KPiB0aHJv dWdocHV0IGRlbGl2ZXJlZCBhdCB0aGUgbWFjIGxheWVyLg0KPg0KPiBEZWxpdmVyYWJsZXMgYXJl IGFsbCB0aGF0IG1hdHRlciB0byBtZSBhbmQgSSB0aGluayB0byBidXllcnMgYW5kIHVzZXJzLg0K PiBCZW5jaG1hcmtzIHRlc3QgZGVsaXZlcmFibGVzIHdoaWNoIGlzIGdyZWF0IGFuZCBJJ20gYSBy b3V0aW5nIGlwZXJmKiB1c2VyLg0KPiBJdCdzIGVuZ2luZWVyaW5nJ3MgcHJvYmxlbSB0byBkZXZl bG9wIHRoZSBuZXh0IHRlY2ggKkFORCogc29saWNpdCBmdW5kaW5nDQo+IHRvIGRvIHNvLg0KPg0K