From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass smtp.mailfrom=; dkim=pass header.d=rjmcmahon.com; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=rjmcmahon.com policy.dmarc=reject Received: from bobcat.rjmcmahon.com (bobcat.rjmcmahon.com [45.33.58.123]) by mail.toke.dk (Postfix) with ESMTPS id 1B1741143025 for ; Fri, 22 May 2026 18:36:32 +0200 (CEST) Received: from mail-oa1-f49.google.com (mail-oa1-f49.google.com [209.85.160.49]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bobcat.rjmcmahon.com (Postfix) with ESMTPSA id 8EB921B31F for ; Fri, 22 May 2026 09:36:30 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 bobcat.rjmcmahon.com 8EB921B31F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rjmcmahon.com; s=bobcat; t=1779467790; bh=EjlcNN7RXfX/UyLFnfOtzigJBLthwMLPiiUZqEXSVzM=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=EuJ9Nxo2F0jknEkKDuQeyuDEPJhu8J0wSI3Jt0LLIZ8SiWJAn4U/LAWjBV1K9nEBs NQZFuaYknnYBunT70qs52JVhd+6TpngEMZqy+b1Ym56HuUMI6v3yB55CcTZra6a9aF yTBurHmOCBwWn1fc3KcdzB0fTB+xbEvMjP6BpmUk= Received: by mail-oa1-f49.google.com with SMTP id 586e51a60fabf-43b69833d10so577269fac.1 for ; Fri, 22 May 2026 09:36:30 -0700 (PDT) X-Forwarded-Encrypted: i=1; AFNElJ9XOrQphX9F/AgWNW+GzFuIigJgl6BlJWseE2I7JkmCEB6RhoByz+tUNNc/DR/8tZKsyGYG@lists.bufferbloat.net X-Gm-Message-State: AOJu0YwwAn6CL4V3aBGIvVTmy9a9VubH2BzYITS5EDEkjyxn4sSH/GWB YWmD9YqhfJgTZCAc8Afga3P2W4RvbdM2Hs+NZx1ZnA5NhFNK8/KaWM6Wc7TjKtNMNcfiD3mTO+1 n8l3A0MNKchtU7O5HUt2W6QjugkNXqAA= X-Received: by 2002:a05:6820:8186:b0:696:25d4:1e62 with SMTP id 006d021491bc7-69d7ead4e83mr2256937eaf.2.1779467789732; Fri, 22 May 2026 09:36:29 -0700 (PDT) MIME-Version: 1.0 References: <709dac7800ee7ad92aafd4eab1c761d9@umbernetworks.com> <0oq1n88q-36qn-p6s7-699s-p4nr0440p950@ynat.uz> In-Reply-To: From: Robert McMahon Date: Fri, 22 May 2026 09:36:18 -0700 X-Gmail-Original-Message-ID: X-Gm-Features: AVHnY4LM_CJeKUsGGHtj9mqYN6bdizVk4SMWDUtU3k-BDCRoOvlmNTrhzlDknhg Message-ID: To: dan Cc: Frantisek Borsik , bob.mcmahon@umbernetworks.com, 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 Message-ID-Hash: OX33VPIIB52CSVN4NR2LJ276NNK5YTSS X-Message-ID-Hash: OX33VPIIB52CSVN4NR2LJ276NNK5YTSS X-MailFrom: rjmcmahon@rjmcmahon.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: [Cake] Re: [Rpm] Re: [Bloat] Re: "Fi-Wi is a new forwarding plane for wireless" - Bob McMahon List-Id: Cake - FQ_codel the next generation Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: SGkgRGFuLA0KDQpUaGFua3MgZm9yIHRoaXMgcmVzcG9uc2UuIFRoZXNlIGFyZSB0aGluZ3MgdGhl IDgwMi4xMSBjdXN0b21lcnMgYW5kDQpvcGVyYXRvcnMgYXJlIGJlaW5nIHRhdWdodCBhbGwgb3Zl ciB0aGUgd29ybGQuIEJ1dCBhZnRlciAxNSB5ZWFycyBvZg0KdGVzdGluZyBXaS1GaSBjaGlwcyBh bmQgbWFpbnRhaW5pbmcgaXBlcmYyIGFzIG9wZW4gc291cmNlLCBJIHNlZSB0aGluZ3MgYQ0KYml0 IGRpZmZlcmVudGx5IG5vdy4NCg0KSSBmaW5kIHRoZXJlIGFyZSBnZW5lcmFsbHkgdHdvIHZlcnkg ZGlmZmVyZW50IHdheXMgcGVvcGxlIGV2YWx1YXRlIGhpZ2gNCnRlY2hub2xvZ3kuDQoNCk9uZSBp cyBtYXJrZXRpbmctZHJpdmVuLiBUaGUgZ29hbCBpcyBmZWF0dXJlIGxpc3RzIGFuZCBudW1iZXJz LiBGb3IgV2ktRmksDQp0aGluZ3MgbGlrZSBwZWFrIFBIWSByYXRlcywgc2lnbmFsIHN0cmVuZ3Ro LCBhbmQgc2luZ2xlLWNsaWVudCBiZW5jaG1hcmsNCm51bWJlcnMuIFRoZW4gV2ktRmkgNiB0byA3 IHRvIDguIFdoYXRldmVyIGNsb3NlcyB0aGUgc2FsZSBiZWNvbWVzIHRoZSBmb2N1cy4NCg0KVGhl IG90aGVyIGlzIGVuZ2luZWVyaW5nLWRyaXZlbi4gVGhlIGdvYWwgaGVyZSBpcyB0byBtZWFzdXJl IHdoYXQgYWN0dWFsbHkNCmdhdGVzIHBlcmZvcm1hbmNlIGluIHJlYWwtd29ybGQgZW52aXJvbm1l bnRzLiBSZWFsLXdvcmxkIGNvbmRpdGlvbnMgbWF0dGVyLA0KYW5kIHdlbGwtZGVzaWduZWQgbGFi IHRlc3RzIHJhcmVseSBjYXB0dXJlIHRoZW0uDQoNCkJ1dCB0aGlzIHJhaXNlcyB0aGUgb2J2aW91 cyBxdWVzdGlvbjogd2hhdCBkZWZpbmVzIHBlcmZvcm1hbmNlPyBBIGNhcGFjaXR5DQpudW1iZXIg b24gYSByZXRhaWwgYm94PyBUaGUgZW5kLXVzZXIgZXhwZXJpZW5jZT8gV2hhdCBkZWZpbmVzIHRo YXQ/IEknZA0KYXJndWUgbGF0ZW5jeSB1bmRlciBkZXZpY2UgY291bnQgYW5kIGxvYWQgaXMgYSBt YWpvciB0aGluZyB0byBjb25zaWRlci4NCg0KT25jZSBwZXJmb3JtYW5jZSBtYXBzIGRpcmVjdGx5 IHRvIHVzZXIgZXhwZXJpZW5jZSwgdGhlIGdhdGluZyB2YXJpYWJsZSBpcw0Kbm90IFJTU0ksIFNO Uiwgb3IgUEhZIHJhdGUuIEl0IGlzIE1BQyBiZWhhdmlvcjogVFhPUHMsIHJldHJpZXMsIGNvbnRl bnRpb24sDQpxdWV1ZWluZywgYWdncmVnYXRpb24sIGFpcnRpbWUsIGFuZCBFRENBIGR5bmFtaWNz IHRoYXQgZGV0ZXJtaW5lIHdobw0KYWN0dWFsbHkgZ2V0cyB0cmFuc21pc3Npb24gb3Bwb3J0dW5p dGllcyBhbmQgd2hlbi4NCg0KVGhpcyByZXZlYWxzIGEgbWFqb3IgbWVhc3VyZW1lbnQgZ2FwLiBU aGUgY29tbW9uIHRvb2xzIG1vc3RseSBleHBvc2UNClBIWS1sYXllciBvYnNlcnZhYmxlcyBzdWNo IGFzIGNoYW5uZWwgdXRpbGl6YXRpb24sIG5vaXNlLCBNQ1MsIGFuZCBtYXliZQ0KcmV0cmllcyBp biBjb2Fyc2UgZm9ybS4gVGhleSBnZW5lcmFsbHkgZG8gbm90IGV4cG9zZSB0aGUgTUFDIHRlbGVt ZXRyeQ0KbmVlZGVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZSBzeXN0ZW0gaXMgYWN0dWFsbHkgc3Bl bmRpbmcgaXRzIGZpbml0ZSBUWE9QDQpidWRnZXQsIHdoeSBhaXJ0aW1lIHdhcyBjb25zdW1lZCwg b3Igd2h5IGJlaGF2aW9yIGNoYW5nZWQgdW5kZXIgbG9hZC4NCg0KVGhlIGFjaGlldmFibGUgVFhP UCBidWRnZXQgaXMgZmluaXRlLCAxMCwwMDAgVFhPUC9zZWMgKGxlc3NlciBwZXIgcGF5bG9hZHMp DQpQZXJmb3JtYW5jZSBpcyBnYXRlZCBieSBob3cgdGhvc2UgVFhPUHMgYXJlIGFsbG9jYXRlZCwg ZGVsYXllZCwgY29sbGlkZWQsDQpyZXRyaWVkLCBhZ2dyZWdhdGVkLCBhbmQgY29uc3VtZWQgYWNy b3NzIGNvbXBldGluZyBzdGF0aW9ucy4gQSBUWE9QIGxvc3QgdG8NCmEgcGFja2V0IGVycm9yIGJ1 cm5zIHRoZSBBTVBEVSB3aXRoIGl0LiBPbmUgZmFpbGVkIFRYT1AgY2FuIGRlbGF5IDY0DQpFdGhl cm5ldCBmcmFtZXMuDQoNCkVEQ0EgaW4gZGVwbG95ZWQgc3lzdGVtcyBpcyBtb3N0bHkgc3RhdGlj IHBvbGljeSwgbm90IGEgZ2xvYmFsbHkgbWFuYWdlZA0KcmVhbC10aW1lIGNvbnRyb2wgbG9vcC4g VGhlcmUgaXMgbm8gYnVpbGRpbmctd2lkZSBCU1MgbWFuYWdlciBjb250aW51b3VzbHkNCmFkYXB0 aW5nIEVEQ0EgcGFyYW1ldGVycyBhY3Jvc3MgQVBzIGFuZCBjbGllbnRzIGJhc2VkIG9uIG1lYXN1 cmVkIGFpcnRpbWUNCnN0YXRlLCBjb250ZW50aW9uIGJlaGF2aW9yLCByZXRyeSBidXJuLCBxdWV1 ZWluZyBkeW5hbWljcywgb3Igc2VydmljZS10aW1lDQp2YXJpYW5jZS4gQXV0b25vbW91cyBBUHMg bWFrZSBsb2NhbCBkZWNpc2lvbnMgZnJvbSBwYXJ0aWFsIGluZm9ybWF0aW9uLg0KDQpGb3IgZXhh bXBsZTogd2h5IGRpZCBhbiBhZ2dyZWdhdGUgc3RvcCBiZWZvcmUgdGhlIG1heGltdW0gcG9zc2li bGUgc2l6ZT8NClF1ZXVlIHN0YXJ2YXRpb24/IFJldHJ5IHByZXNzdXJlPyBBaXJ0aW1lIGV4cGly YXRpb24/IEVEQ0EgY29udGVudGlvbj8NCkZpcm13YXJlIHNjaGVkdWxpbmc/IENvZXhpc3RlbmNl PyBEcml2ZXIgbGF0ZW5jeT8gQW5vdGhlciBzdGF0aW9uIHdpbm5pbmcNCnRoZSBUWE9QPyBNb3N0 IHN5c3RlbXMgZG9uJ3QgZXhwb3NlIGVub3VnaCBNQUMgdGVsZW1ldHJ5IHRvIGFuc3dlciBjbGVh bmx5Lg0KDQpTbyB3aGVuIEkgaGVhciB0aGUgYXJndW1lbnQgdGhhdCBtb2Rlcm4gV2ktRmkgaGFz ICJiYXNpY2FsbHkgc29sdmVkIiB0aGlzDQpiZWNhdXNlIE9GRE1BIGV4aXN0cyBvciBiZWNhdXNl IFdpLUZpIDcgYWRkZWQgYW5vdGhlciBmZWF0dXJlLCBJIGhlYXIgYQ0KZmVhdHVyZS1saXN0IGFy Z3VtZW50LCBub3QgYSBlbmdpbmVlcmluZyBkcml2ZW4gbWVhc3VyZW1lbnQgYXJndW1lbnQuDQoN Ck9GRE1BIGlzIGEgUEhZLWxheWVyIHNjaGVkdWxpbmcgaW1wcm92ZW1lbnQgd2l0aGluIG9uZSBC U1MuIFRoZSB0cmlnZ2VyDQpmcmFtZXMgdGhhdCBkcml2ZSBpdCBzdGlsbCByaWRlIG9uIEVEQ0Es IHNvIHRoZSAic2NoZWR1bGVkIiB1cGxpbmsgaXMgZ2F0ZWQNCmJ5IHVuc2NoZWR1bGVkIGNvbnRl bnRpb24gdXBzdHJlYW0uIEluIGRlbnNlIG11bHRpLUJTUyBlbnZpcm9ubWVudHMsIHRoYXQNCmNv bnRlbnRpb24gaXMgZXhhY3RseSB0aGUgcHJvYmxlbS4gSXQgZG9lc24ndCBwcm92aWRlIGdsb2Jh bCBNQUMgdGVsZW1ldHJ5LA0KZGV0ZXJtaW5pc3RpYyBzZXJ2aWNlIGludGVydmFscywgb3IgYnVp bGRpbmctd2lkZSBzY2hlZHVsaW5nIGFjcm9zcw0KYXV0b25vbW91cyBBUHMgYW5kIGNsaWVudHMu IFRob3NlIGFyZSBkaWZmZXJlbnQgcHJvYmxlbXMgYXQgYSBkaWZmZXJlbnQNCmxheWVyLg0KDQpU aGF0J3MgdGhlIGdhcCBGaS1XaSBpcyBidWlsdCB0byBjbG9zZS4gTWVhc3VyZW1lbnQgYW5kIGNv bnRyb2wgb2YgYWN0dWFsDQpiZWhhdmlvciBhY3Jvc3MgYSBjb3ZlcmFnZSBhcmVhIGFzIGEgdW5p ZmllZCBzY2hlZHVsaW5nIGFuZCB0aW1pbmcgZG9tYWluLA0Kbm90IGEgZmVkZXJhdGlvbiBvZiBh dXRvbm9tb3VzIEFQcyBlYWNoIGd1ZXNzaW5nIGZyb20gcGFydGlhbCBpbmZvcm1hdGlvbi4NCg0K VGhpcyBpcyBhbHNvIHdoeSBMNFMgaXMgY3JpdGljYWwuIEl0J3Mgbm90IGp1c3QgZm9yIHRyYW5z cG9ydC4gSXQncyBmb3INCndpcmVsZXNzIHRvby4gQW5kIHdpcmVsZXNzIGlzIG5vdyBkcml2aW5n IHVzZXIgZXhwZXJpZW5jZS4NCg0KQ1NNQS9DRCBnb3QgcmlkIG9mIGNvbGxpc2lvbnMgYnkgYmVp bmcgcmVwbGFjZWQsIG5vdCBpbXByb3ZlZC4gU3dpdGNoZWQNCkV0aGVybmV0IGVsaW1pbmF0ZWQg dGhlIHNoYXJlZCBtZWRpdW0uIENTTUEvQ0EgaXMgaW4gdGhlIHNhbWUgcGxhY2Ugbm93Lg0KSGlk ZGVuIG5vZGVzLCByZXRyeSBwcmVzc3VyZSwgYW5kIEVEQ0EgY29udGVudGlvbiB3b24ndCBiZSBm aXhlZCBieSBhbm90aGVyDQpnZW5lcmF0aW9uIG9mIGNvbnRlbnRpb24gcnVsZXMuIFRoZXkncmUg c29sdmVkIGFyY2hpdGVjdHVyYWxseS4gVGhhdCdzIHdoYXQNCkZpLVdpIGRvZXMuDQoNCkJvYg0K DQoNCg0KT24gRnJpLCBNYXkgMjIsIDIwMjYgYXQgNDoxMOKAr0FNIGRhbiB2aWEgUnBtIDxycG1A bGlzdHMuYnVmZmVyYmxvYXQubmV0Pg0Kd3JvdGU6DQoNCj4gT24gVGh1LCBNYXkgMjEsIDIwMjYg YXQgMTozNuKAr1BNIEZyYW50aXNlayBCb3JzaWsNCj4gPGZyYW50aXNlay5ib3JzaWtAZ21haWwu Y29tPiB3cm90ZToNCj4gPg0KPiA+IFNhdyB0aGlzIG9uZSBmcm9tIEJvYiBvbiBMaW5rZWRJbiAt IG1heWJlIHRoZXJlIGlzIHNvbWVvbmUgaW50ZXJlc3RlZA0KPiBsdXJraW5nIGhlcmUuLi46DQo+ ID4NCj4gPiAiVW1iZXIgaXMgbG9va2luZyBmb3IgYSBCYXkgQXJlYSBjYWJsZSB0ZWNoIChjb250 cmFjdCwgcGFydC10aW1lIHRvDQo+IHN0YXJ0KSBhcyB3ZSBwcmVwYXJlIHRvIHNoaXAgb3VyIFVB WC04IGNvbmNlbnRyYXRvci4NCj4gPg0KPiA+IEVhY2ggaW5zdGFsbCB1c2VzIGEgaHlicmlkIGNh YmxlOiBkdWFsIGZpYmVyIGZvciBkYXRhIHBsdXMgY29wcGVyIHRoYXQNCj4gcG93ZXJzIHRoZSBy ZW1vdGUgcmFkaW8gaGVhZC4gVGhlIGpvYiBpcyB0byBjdXQgdG8gbGVuZ3RoIGZyb20gYSAxMDAw IGZ0DQo+IHNwb29sLCB0ZXJtaW5hdGUgd2l0aCBhIHBpZ3RhaWwsIGFuZCB2ZXJpZnkgb3B0aWNh bCBwb3dlciBhbmQgbG93LXZvbHRhZ2UNCj4gZGVsaXZlcnkgYmVmb3JlIHVuaXRzIGdvIG91dC4N Cj4gPg0KPiA+IFRoZSBNZXRhIExldmVsIFVwIHRyYWluaW5nIGlzIGZyZWUuIFVtYmVyIHdpbGwg cHJvdmlkZSB0aGUgc3BsaWNpbmcgYW5kDQo+IHBvd2VyLXRlc3RpbmcgZXF1aXBtZW50LiBGaXJz dCB1bml0cyBhbmQgb3VyIHBvd2VyIGRpc3RyaWJ1dGlvbiBzeXN0ZW0NCj4gc2hvdWxkIGJlIHJl YWR5IGJ5IGxhdGUgc3VtbWVyLiINCj4gPg0KPiA+DQo+IGh0dHBzOi8vd3d3LmxpbmtlZGluLmNv bS9wb3N0cy9yb2JlcnQtYm9iLW1jbWFob24tYjFhNDJhMV9sZXZlbHVwLWZpYmVyLXRlY2huaWNp YW4tcGF0aHdheS1tZXRhLWRhdGEtYWN0aXZpdHktNzQ2MzI1MTk2OTYzMDA5NzQwOC1BY1dKDQo+ ID8NCj4gPg0KPiA+IEFsbCB0aGUgYmVzdCwNCj4gPg0KPiA+IEZyYW5rDQo+ID4NCj4gPiBGcmFu dGlzZWsgKEZyYW5rKSBCb3JzaWsNCj4gPg0KPiA+DQo+ID4gSW4gbG92aW5nIG1lbW9yeSBvZiBE YXZlIFTDpGh0OiAxOTY1LTIwMjUNCj4gPg0KPiA+IGh0dHBzOi8vbGlicmVxb3MuaW8vMjAyNS8w NC8wMS9pbi1sb3ZpbmctbWVtb3J5LW9mLWRhdmUvDQo+ID4NCj4gPg0KPiA+IGh0dHBzOi8vd3d3 LmxpbmtlZGluLmNvbS9pbi9mcmFudGlzZWtib3JzaWsNCj4gPg0KPiA+IFNpZ25hbCwgVGVsZWdy YW0sIFdoYXRzQXBwOiArNDIxOTE5NDE2NzE0DQo+ID4NCj4gPiBpTWVzc2FnZSwgbW9iaWxlOiAr NDIwNzc1MjMwODg1DQo+ID4NCj4gPiBTa3lwZTogY2FzaW9hNTMwMmNhDQo+ID4NCj4gPiBmcmFu dGlzZWsuYm9yc2lrQGdtYWlsLmNvbQ0KPiA+DQo+ID4NCj4gPg0KPiA+IE9uIFdlZCwgTWF5IDIw LCAyMDI2IGF0IDEyOjQ14oCvQU0gPGJvYi5tY21haG9uQHVtYmVybmV0d29ya3MuY29tPiB3cm90 ZToNCj4gPj4NCj4gPj4gPiB0aGUgcmVhc29uIGhvbWUgd2lmaSBpcyBzbyBiYWQgaXMgYmVjYXVz ZSB0aGVyZSBpcyBubyBjb29yZGluYXRpb24NCj4gPj4gPiBiZXR3ZWVuIHRoZSB3aWZpIGluIHRo ZSBkaWZmZWVudCBob3VzZXMvYXBhcnRtZW50cy4geW91IGRvbid0IG5lZWQgdG8NCj4gPj4gPiB0 aWUgYWxsIHRob3NlIGRldmljZXMgaW50byBhIHNpbmdsZSBuZXR3b3JrIHRvIHNvbHZlIHRoYXQs IGFuZCB1bmxlc3MNCj4gPj4gPiB5b3UgZG8gc29sdmUgdGhlIGNvb3JkaW5hdGlvbiBwcm9ibGVt LCB0aGVyZSBpcyBubyB3YXkgZm9yIHlvdSB0byBtYWtlDQo+ID4+ID4gdGhlIHJmIGVudmlyb25t ZW50IGJldHRlci4NCj4gPj4gPg0KPiA+PiA+IGNvb3JkaW5hdGlvbiBtYXkgb25seSBiZSBhbiA4 MCUgc29sdXRpb24gY29tcGFyZWQgdG8gdGhpcywgYnV0IDgwJSBpcw0KPiBhDQo+ID4+ID4gbG90 Lg0KPiA+PiA+DQo+ID4+DQo+ID4+IERhdmlkLA0KPiA+Pg0KPiA+PiBFdmVuIGdyYW50aW5nIHRo ZSA4MCUgY2xhaW0sIHdoaWNoIEkgZG9uJ3QgdGhpbmsgaG9sZHMgYWNyb3NzIDEzNE0NCj4gPj4g b2NjdXBpZWQgaG9tZXMgaW4gdGhlIFVTIG9uY2UgeW91IG1lYXN1cmUgYnJvYWRseSBlbm91Z2gs IHRoZSBsb3NzDQo+ID4+IGZ1bmN0aW9ucyBzaGlmdCBkcmFtYXRpY2FsbHkgd2l0aCBkZW5zaXR5 LCB3b3JrbG9hZCwgYW5kIG1ldHJpYy4NCj4gPj4gVGhyb3VnaHB1dCwgdGFpbCBsYXRlbmN5LCBh bmQgaml0dGVyIHVuZGVyIGxvYWQgZG8gbm90IGRlZ3JhZGUgZm9yIHRoZQ0KPiA+PiBzYW1lIHJl YXNvbnMsIGFuZCB0aGV5IGRvIG5vdCByZWR1Y2UgdG8gYSBzaW5nbGUgbnVtYmVyLg0KPiA+Pg0K PiA+PiBFdmVuIGluc2lkZSBhIHNpbmdsZSBob21lIHdpdGggb25lIEFQIGFuZCBubyBuZWlnaGJv cnMsIFdpLUZpIGV4aGliaXRzDQo+ID4+IHBhdGhvbG9naWVzIHVucmVsYXRlZCB0byBjcm9zcy1u ZXR3b3JrIGNvb3JkaW5hdGlvbjogaGlkZGVuIHF1ZXVlcywNCj4gPj4gcmV0cnkgc3Rvcm1zLCBh Z2dyZWdhdGlvbiBidXJzdHMsIEVEQ0EgYmFja29mZiB2YXJpYW5jZSwgcm9hbWluZw0KPiA+PiBk ZWNpc2lvbnMgbWFkZSB3aXRoIHN0YWxlIGluZm9ybWF0aW9uLCBhbmQgZmlybXdhcmUgYmVoYXZp b3IgdGhlDQo+ID4+IG9wZXJhdG9yIGNhbm5vdCBvYnNlcnZlIG9yIGNvbnRyb2wuDQo+ID4+DQo+ ID4+IEVDTiBtYXJraW5nLCBMNFMsIHBhY2luZywgYW5kIEFRTXMgYWxsIGFzc3VtZSB0aGUgbGF5 ZXIgYmVsb3cgdGhlbQ0KPiA+PiBwcm92aWRlcyBvYnNlcnZhYmxlIGFuZCByZWFzb25hYmx5IGJv dW5kZWQgc2VydmljZSB0aW1lLiBDb252ZW50aW9uYWwNCj4gPj4gQVBzIGRvIG5vdCBwcm92aWRl IHRoYXQuIENvb3JkaW5hdGluZyBuZWlnaGJvcnMgZG9lcyBub3QgZml4IGl0Lg0KPiA+Pg0KPiA+ PiBUaGUgZGVlcGVyIHByb2JsZW0gaXMgYXJjaGl0ZWN0dXJhbC4gQ29udmVudGlvbmFsIFdpLUZp IHNjYXR0ZXJzIHRoZQ0KPiA+PiBvYnNlcnZhdGlvbnMuIE5vIEFQIHNlZXMgZW5vdWdoIHN0YXRl IHRvIG1ha2UgZ2xvYmFsbHkgY29ycmVjdCBkZWNpc2lvbnMNCj4gPj4gYWNyb3NzIHNwYWNlLCB0 aW1lLCBhbmQgZnJlcXVlbmN5LCBzbyBldmVyeSBBUCB0cmVhdHMgb3ZlcmxhcCBhcyBsb3NzDQo+ ID4+IGFuZCByZWFjdHMgdXNpbmcgbG9jYWwsIHBhcnRpYWwgaW5mb3JtYXRpb24uIE5laWdoYm9y IGNvb3JkaW5hdGlvbg0KPiA+PiBjYW5ub3QgcmVjb3ZlciBpbmZvcm1hdGlvbiB0aGF0IHdhcyBu ZXZlciBjb2xsZWN0ZWQsIG5vciBjYW4gaXQgaW1wb3NlDQo+ID4+IGRldGVybWluaXN0aWMgc2Vy dmljZSBpbnRlcnZhbHMgb24gYXV0b25vbW91cyA4MDIuMTEgTUFDIHN0YXRlIG1hY2hpbmVzDQo+ ID4+IHJ1bm5pbmcgaW4gb3BhcXVlIHZlbmRvciBmaXJtd2FyZS4NCj4gPj4NCj4gPj4gRmktV2kg aW52ZXJ0cyB0aGF0IGFyY2hpdGVjdHVyZS4gVGhlIDgwMi4xMSBNQUMgbW92ZXMgdG8gdGhlDQo+ ID4+IGNvbmNlbnRyYXRvciwgd2hlcmUgdGhlIG9ic2VydmF0aW9ucyBhcmUgY28tbG9jYXRlZCBh bmQgc2NoZWR1bGluZw0KPiA+PiBkZWNpc2lvbnMgYXJlIG1hZGUgaW4gc29mdHdhcmUgdGhlIG9w ZXJhdG9yIG9yIGJ1aWxkaW5nIG93bmVyIGNvbnRyb2xzLg0KPiA+PiBUaGUgcmFkaW9zIGhhbmRs ZSBQSFkvUkYgZXhlY3V0aW9uLiBPbmUgUlJIIG9yIHR3ZW50eSwgdGhlIGFyY2hpdGVjdHVyYWwN Cj4gPj4gcHJvcGVydHkgaXMgdGhlIHNhbWU6IGFpcnRpbWUgc2NoZWR1bGluZywgdHJhbnNwb3J0 IGZlZWRiYWNrLCBhbmQNCj4gPj4gb2JzZXJ2YWJpbGl0eSBleGlzdCBpbiBvbmUgcGxhY2UuDQo+ ID4+DQo+ID4+IEkgcHV0IHRvZ2V0aGVyIGEgc21hbGwgYW5pbWF0aW9uIHNob3dpbmcgaG93IGNv bnRlbnRpb24gcHJvYmFiaWxpdHkNCj4gPj4gcmlzZXMgcmFwaWRseSBldmVuIHdpdGggcmVsYXRp dmVseSBzbWFsbCBjb250ZW50aW9uIHdpbmRvd3MgYW5kIG1vZGVyYXRlDQo+ID4+IGFjdGl2ZSBz dGF0aW9uIGNvdW50cy4gSXQgaGVscHMgdmlzdWFsaXplIHdoeSBzeXN0ZW1zIG9mdGVuIGJlY29t ZQ0KPiA+PiBNQUMtbGltaXRlZCBiZWZvcmUgUEhZLWxpbWl0ZWQ6DQo+ID4+DQo+ID4+IGh0dHBz Oi8vd3d3LnVtYmVybmV0d29ya3MuY29tL2NzbWEtcHJldmlldy5odG1sDQo+ID4+DQo+ID4+IFRo ZSAic2luZ2xlIG5ldHdvcmsiIGlzIHVsdGltYXRlbHkgYSBodW1hbiBtYW5hZ2VtZW50IGFic3Ry YWN0aW9uLiBSRiwNCj4gPj4gbGlrZSByYXRzLCBkb2VzIG5vdCByZXNwZWN0IHByb3BlcnR5IGJv dW5kYXJpZXMuIFRoZSBtZWRpdW0gaXMgc2hhcmVkDQo+ID4+IHdoZXRoZXIgb3Igbm90IHRoZSBt YW5hZ2VtZW50IHBsYW5lIHByZXRlbmRzIG90aGVyd2lzZS4gQ29vcmRpbmF0aW9uDQo+ID4+IGJl dHdlZW4gYXV0b25vbW91cyBuZXR3b3JrcyB0cmllcyB0byBwYXBlciBvdmVyIGEgcGFydGl0aW9u IHdlIGludmVudGVkLA0KPiA+PiBhbmQgdGhlIGNlaWxpbmcgaXMgc2V0IGJ5IHRoZSBwYXJ0aXRp b24uIEZpLVdpIGRvZXNuJ3QgZWxpbWluYXRlIHRoZQ0KPiA+PiBwYXJ0aXRpb24gZ2xvYmFsbHku IEl0IGRpc3NvbHZlcyBpdCB3aXRoaW4gYSBjb3ZlcmFnZSBhcmVhLCBieSByZXBsYWNpbmcNCj4g Pj4gYXV0b25vbW91cyBBUHMgd2l0aCByYWRpbyBhcnJheXMgc2VydmluZyBvbmUgTUFDLiBJbnNp ZGUgdGhlIGRvbWFpbiwNCj4gPj4gdGhlcmUgaXMgbm8gcGFydGl0aW9uIHRvIHBhcGVyIG92ZXIu IEVuZ2luZWVyaW5nIHRoYXQgbWF0Y2hlcyBwaHlzaWNzIGlzDQo+ID4+IHRoZSBnb2FsLg0KPiA+ Pg0KPiA+PiBCb2INCj4NCj4NCj4gV2Ugd2VyZSBoYXZpbmcgYW4gb2Zmc2hvb3QgY29udmVyc2F0 aW9uIGFib3V0IHRoaXMgdGhyZWFkIHNvIEkgdGhvdWdodA0KPiBJJ2QgcG9wIGluIGFuZCBhZGQg bXkgJ2Jvb3RzIG9uIHRoZSBncm91bmQnIHBlcnNwZWN0aXZlLg0KPg0KPiBGaVdpIHNvdW5kcyBn cmVhdCB0ZWNobm9sb2d5IHdpc2UsIGhvd2V2ZXIsIFdpRmkgaGFzIGdvdHRlbiB2ZXJ5IGdvb2QN Cj4gYW5kIG1vc3Qgb2YgdGhlIGJlbmVmaXRzIHRvdXRlZCBieSBGaVdpIGFyZSBiYXNpY2FsbHkg YWxzbyBpbg0KPiB1bHRyYS1tb2Rlcm4gd2lmaS4NCj4NCj4gT0ZETUEgaXMgbm93IHN0YW5kYXJk IGluIFdpRmk3Kywgc28gdGhlIENTTUEgYXJndW1lbnQgaXMgZmFkaW5nIGF0IGENCj4gZGVjZW50 IGNsaXAuDQo+IERldmljZSBjaHVybiBwdXRzIG1vcmUgYW5kIG1vcmUgT0ZETUEgY2FwYWJsZSBk ZXZpY2VzIG9uIG5ldHdvcmtzIGFsbA0KPiB0aGUgdGltZS4gIFdlJ3JlIHNlZWluZyBjb25zZXJ2 YXRpdmVseSAyNSUgb2YgY29ubmVjdGVkIGNsaWVudHMgaGF2aW5nDQo+IE9GRE1BIGNhcGFibGUg cmFkaW9zLCBuYW1lbHkgc21hcnQgcGhvbmVzIGFuZCBsYXB0b3BzLiAgU29tZSBkYXlzIHRoYXQN Cj4gbnVtYmVyIGlzIG11Y2ggaGlnaGVyIGFuZCB0aGVyZSdzIGEgcHJhY3RpY2FsICc1IHllYXIn IHdpbmRvdyBoZXJlIG9uDQo+IG9sZCB0ZWNoIGZvciB0aGVzZSBkZXZpY2VzLiAgSW9UIGRldmlj ZXMgYW5kICdhcHBsaWFuY2VzJyBsaWtlDQo+IHByaW50ZXJzIHdpbGwgbGFnIG9uIG11Y2ggbG9u Z2VyLiAgRXZlcnkgbmV3IHNtYXJ0cGhvbmUgc29sZCBpbiB0aGUNCj4gbGFzdCAxLTIgeWVhcnMg YWxyZWFkeSBkb2VzIGl0LCBhbmQgYmFzaWNhbGx5IGFueSBsYXB0b3Agc29sZCBpbiB0aGUNCj4g bGFzdCB5ZWFyIGFsc28uDQo+IFNwbGl0dGluZyAyLjQvNS82IGludG8gMi40IGxlZ2FjeS9Jb1Qg J0NTTUEnLCB0aGVuIDUvNiBpbiBPRkRNQSB3b3Jrcw0KPiBleGNlcHRpb25hbGx5IHdlbGwsIGFu ZCBzb21lIGVudGVycHJpc2UgQVBzIGhhdmUgMiA1R2h6IHJhZGlvcyBzbyB5b3UNCj4gZ2V0IDIu NC81IGxlZ2FjeSArIDUvNiBPRkRNQSBvbiBkaWZmZXJlbnQgY2hhbm5lbHMuDQo+IFNvbWUgZW50 ZXJwcmlzZSBBUHMgY2FuIHN5bmMgdGltaW5nIHRvIGltcHJvdmUgcmUtdXNlLg0KPiBBIG51bWJl ciBvZiB2ZW5kb3JzIG9mZmVyIGRpcmVjdGlvbmFsIChuYW1lbHkgZG93bndhcm4gY29uZSkgYW50 ZW5uYXMNCj4gZm9yIHNwb3QgY292ZXJhZ2UgZm9yIHNjYWxlDQo+IEFuZCBpdCdzIGFsbCBvbiB0 b2RheSdzIHBoeXNpY2FsIGluZnJhc3RydWN0dXJlLCAxLzIuNS81R2JwcyBwb3J0cyBvbg0KPiBl bnRlcnByaXNlIEFQcyBhbmQgc28gb24uDQo+IE5vdGhpbmcgc3RvcHBpbmcgYSBXaUZpIEFQIGZy b20gaGFuZGxpbmcgQVFNLCBFQ04sIGV0Yy4gIENQVXMgKmFyZSogYQ0KPiBib3R0bGVuZWNrIG9u IGNoZWFwZXIgQVBzLCBidXQgb24gZW50ZXJwcmlzZSBoYXJkd2FyZSB0aGV5IGVpdGhlciBoYXZl DQo+IGEgZmFzdCBlbm91Z2ggQ1BVIG9yIHRoZXkgaGF2ZSBhIGhhcmR3YXJlIG9mZmxvYWQgZm9y IHRoZQ0KPiByYWRpby9ldGhlcm5ldCBicmlkZ2UuICBBbnkgc2hvcnRjb21pbmcgaGVyZSBpcyBJ TU8gZW50aXJlbHkgYmFzZWQgb24NCj4gdGhlIHZlbmRvcidzIG5vdCBiZWxpZXZpbmcgdGhlIGZl YXR1cmUgaXMgd29ydGggaW1wbGVtZW50aW5nLg0KPiBNVU1JTU8gb24gZW50ZXJwcmlzZSBBUHMg KHdpdGggT0ZETUEpIGlzIGZhbnRhc3RpYyBhbmQgdGhhdCByZWFsbHkNCj4gaGVscHMgcmVkdWNl IGNvLWludGVyZmVyZW5jZS4NCj4NCj4NCj4gVGhlIG9uZSBJIGd1ZXNzICd1bmlxdWUnIGZlYXR1 cmUgb2YgdGhlIEZpV2kgcGl0Y2ggdGhhdCBpcyB1bm1hdGNoZWQNCj4gKG9yIHVubWF0Y2hhYmxl PykgaXMgc2NoZWR1bGluZyB0cmFuc21pc3Npb24gb24gdGhlIFJSSCB0aGF0IHRoZQ0KPiBzeXN0 ZW0gY2FsY3VsYXRlcyBpcyBiZXN0IGZvciB0aGUgcmVjZWl2ZXIgYW5kIHRoYXQgY2xpZW50IGRl dmljZSBub3QNCj4gcmVhbGx5IGNhcmluZyB3aGljaCAnQVAnIGl0IGNvbWVzIGZyb20uICBpZSwg bm8gQ2xpZW50OkFQIDE6MQ0KPiBhc3NvY2lhdGlvbiB0aGF0IHJlbGllcyBvbiByb2FtaW5nIGZv ciBzZWFtbGVzcyBjb3ZlcmFnZSBidXQgaXMgYXQgdGhlDQo+IGVuZCBvZiB0aGUgZGF5IHN0aWxs IDE6MS4gIFRvIG1lLCB0aGlzIGlzIHJlYWxseSB0aGUgb25seSBraWxsZXINCj4gZmVhdHVyZSwg YW5kIHJlYWxseSBpdCdzIHByb2JhYmx5IHNvbWV0aGluZyBXaUZpIGNhbiBhbmQgd2lsbA0KPiBp bXBsZW1lbnQgaW4gdGhlIGZ1dHVyZS4gIEknbSBpbmNsdWRpbmcgY2xpZW50IHRyYW5zbWlzc2lv bnMgYW5kDQo+IHJlZHVuZGFuY3kgaGFuZGxpbmcgaW4gdGhpcyBwaWVjZSB0b28sIGtpbGxlciBm ZWF0dXJlLCBubyByZWFzb24NCj4gc3RhbmRhcmQgV2lGaSBjYW4ndCBkbyB0aGlzIGluIGEgZnV0 dXJlIHZlcnNpb24gdGhhdCB3b3VsZCBwb3RlbnRpYWxseQ0KPiBsYW5kIGJlZm9yZSBGaVdpIHdh cyBhIHByYWN0aWNhbCByZWFsaXR5Lg0KPg0KPiBIb3dldmVyLCBteSB0aG91Z2h0IGlzIHRoYXQg aXQgd2lsbCB0YWtlIGZhciBsZXNzIHRpbWUgZm9yIGFsbCB3aWZpDQo+IGNsaWVudCBkZXZpY2Vz IHRvIGJlIHVwZ3JhZGVkL3JlcGxhY2VkIHdpdGggT0ZETUEgY2FwYWJsZSB1bml0cy4NCj4gRnVu ZGFtZW50YWxseSBjaGFuZ2luZyB0aGUgd2F5ICd3aWZpL0ZpV2knIGlzIGRlcGxveWVkIGluIGJ1 aWxkaW5ncw0KPiB3aXRoIGhvbWUtcnVuIGZpYmVyIGlzIGxpa2VseSBleHRyZW1lbHkgbmljaGUu DQo+DQo+IEluIHRoZSBtYXJrZXQsIHRoZSBhZC1ob2MgZGV2aWNlIG1vZGVsLCBldmVuIGNvb3Jk aW5hdGVkIHdpdGggYQ0KPiBjb250cm9sbGVyLCBoYXMgYmVhdGVuIG91dCB0aGUgY2VudHJhbGx5 IG1hbmFnZWQgc29sdXRpb24gb3ZlciBhbmQNCj4gb3Zlci4gRmlXaSBpcyBtYWluZnJhbWUtdG8t dGVybWluYWwvdGhpbl9jbGllbnQgdG8gV2lGaSdzDQo+IEFQL3RoaWNrX2NsaWVudCBtb2RlbC4g IEkgdGhpbmsgdGhhdCBhbmFsb2d5IHdvdWxkIGxpa2VseSBiZSBob3cgdGhlDQo+IG1hcmtldCB3 b3VsZCBsb29rIGlmIEZpV2kgd2VyZSB0byBwcm9jZWVkIGFzIHNvbWUgZGVzaXJlLg0KPg0KPiBJ J2QgYWxzbyBhcmd1ZSB0aGF0IHN0YW5kIGFsb25lIEFQcyBjb29yZGluYXRlZCBieSBhIGNvbnRy b2xsZXIgYXJlIGENCj4gc2NhbGUtb3V0IG1vZGVsLiAgUHV0dGluZyBjYWtlIG9uIHRoZSB3aWZp IGludGVyZmFjZXMgKHdoaWNoIGlzIE5PVA0KPiBjb21tb24uLi4uKSBzY2FsZXMgY2FrZSBvdXQg dG8gdGhlIENQVSBvbiB0aG9zZSBBUHMgaW5zdGVhZCBvZiBsZWFuaW5nDQo+IG9uIG9uZSBjZW50 cmFsIENQVS4gIFRoZSBXaUZpIG1vZGVsIGFsc28gaXMgYSBiaXQgbW9yZSBhdXRvbWF0aWNhbGx5 DQo+IHJlZHVuZGFudC4gIEVhY2ggQVAgY2FuIGRvICdldmVyeXRoaW5nJyBhbmQgdGhlIG9ubHkg dGhpbmcgYXQgdGhlIGNvcmUNCj4gaXMgYSBzd2l0Y2gsIGFuZCBtb3N0IGVudGVycHJpc2UgQVBz IGhhdmUgZHVhbCBwb3J0cyBhbmQgY2FuIGRvIHNvbWUNCj4gbWV0aG9kIG9mIGJvbmRpbmcvTUxB R0cvZXRjLiAgVlMgYSBzaW5nbGUgY29yZSBjb250cm9sbGVyIGFuZCBSUkgsIGENCj4gZmFpbHVy ZSB3b3VsZCBzZWVtIGEgYml0IG1vcmUgY2F0YXN0cm9waGljLg0KPg0KPiBKdXN0IHRob3VnaHRz IHRob3VnaC4NCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj4gUnBtIG1haWxpbmcgbGlzdCAtLSBycG1AbGlzdHMuYnVmZmVyYmxvYXQubmV0DQo+IFRv IHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnBtLWxlYXZlQGxpc3RzLmJ1ZmZlcmJsb2F0 Lm5ldA0KPg0K