From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-oi0-x243.google.com ([2607:f8b0:4003:c06::243]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ayJl8-0005aQ-J5 for ath10k@lists.infradead.org; Thu, 05 May 2016 13:56:07 +0000 Received: by mail-oi0-x243.google.com with SMTP id w198so13906642oiw.2 for ; Thu, 05 May 2016 06:55:46 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <57258F41.8040600@candelatech.com> <1462114043.512818296@apps.rackspace.com> Date: Thu, 5 May 2016 16:55:45 +0300 Message-ID: Subject: Re: [Make-wifi-fast] fq_codel_drop vs a udp flood From: Roman Yeryomin List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ath10k" Errors-To: ath10k-bounces+kvalo=adurom.com@lists.infradead.org To: Dave Taht Cc: make-wifi-fast@lists.bufferbloat.net, David Reed , "codel@lists.bufferbloat.net" , Ben Greear , ath10k T24gMiBNYXkgMjAxNiBhdCAyMTo0MCwgRGF2ZSBUYWh0IDxkYXZlLnRhaHRAZ21haWwuY29tPiB3 cm90ZToKPiBPbiBNb24sIE1heSAyLCAyMDE2IGF0IDc6MDMgQU0sIFJvbWFuIFllcnlvbWluIDxs ZXJvaS5saXN0c0BnbWFpbC5jb20+IHdyb3RlOgo+PiBPbiAxIE1heSAyMDE2IGF0IDE3OjQ3LCAg PGRwcmVlZEByZWVkLmNvbT4gd3JvdGU6Cj4+PiBNYXliZSBJIG1pc3NlZCBzb21ldGhpbmcsIGJ1 dCB3aHkgaXMgaXQgaW1wb3J0YW50IHRvIG9wdGltaXplIGZvciBhIFVEUCBmbG9vZD8KPj4KPj4g V2UgZG9uJ3QgbmVlZCB0byBvcHRpbWl6ZSBpdCB0byBVRFAgYnV0IFVEUCBpcyB1c2VkIGUuZy4g YnkgdG9ycmVudHMKPj4gdG8gYWNoaWV2ZSBoaWdoZXIgdGhyb3VnaHB1dCBhbmQgdXNlZCBhIGxv dCBpbiBnZW5lcmFsLgo+Cj4gVG9ycmVudHMgdXNlIHVUUCBjb25nZXN0aW9uIGNvbnRyb2wgYW5k IHdvbid0IGhpdCB0aGlzIGZ1bmN0aW9uIGF0Cj4gYWxsLiBBbmQgZXJpYyBqdXN0IG1hZGUgZnFf Y29kZWxfZHJvcCBtb3JlIGVmZmljaWVudCBmb3IgdGVzdHMgdGhhdAo+IGRvLgo+Cj4gVGhlcmUg YXJlIHBvdGVudGlhbGx5IHppbGxpb25zIG9mIG90aGVyIGlzc3VlcyB3aXRoIGFtcGR1J3MsIHR4 b3AKPiB1c2FnZSwgYWdncmVnYXRlICJwYWNraW5nIiwgZXRjIHRoYXQgY2FuIGFsc28gYWZmZWN0 IGFuZCBvdGhlcgo+IHByb3RvY29vbHMuCj4KPj4gQW5kLCBhZ2FpbiwgaW4gdGhpcyBjYXNlIFRD UCBpcyBicm9rZW4gdG9vICg3NTBNYnBzIGRvd24gdG8gNTUwKSwgc28KPj4gaXQncyBub3QgbGlr ZSBEYXZlIGlzIHNheWluZyB0aGF0IFVEUCB0ZXN0IGlzIGJyb2tlbiwgZnFfY29kZWwgaXMganVz dAo+PiB0b28gaHVuZ3J5IGZvciBDUFUKPgo+ICJmcV9jb2RlbF9kcm9wIiB3YXMgdG9vIGh1bmdy eSBmb3IgY3B1LiBmaXhlZC4gdGh4IGVyaWMuIDopCj4KPiBJJ3ZlIG5ldmVyIHNlZW4gYXRoMTBr IHRjcCB0aHJvdWdocHV0IGluIHRoZSByZWFsIHdvcmxkIChlLmcgbm90IHdpcmVkCj4gdXAsIG92 ZXIgdGhlIGFpcikgZXZlbiBjbG9zZSB0byA3NTAgdW5kZXIgdGVzdCBvbiB0aGUgYXRoMTBrIChJ J3ZlCj4gc2VlbiAzMDAsIGFuZCBJJ20gZ2V0dGluZyBzb21lIGJldHRlciBnZWFyIHVwIHRoaXMg d2VlaykuLi4gYW5kCj4gZXZlcnlib2R5IHRlc3RzIHdpZmkgZGlmZmVyZW50bHkuCgpwZXJoYXBz IHlvdSBkaWRuJ3QgaGF2ZSAzeDMgY2xpZW50IGFuZCBBUD8KCj4gKGZvciB0aGUgcmVjb3JkLCB3 aGF0IHdhcyB5b3VyIGlwZXJmIHRjcCB0ZXN0IGxpbmU/KS4gTW9yZSBwZW9wbGUKPiB0ZXN0aW5n IGRpZmZlcmVudGx5ID0gZ29vZC4KCmlwZXJmMyAtYyA8c2VydmVyX2lwPiAtdDYwMAoKPiBEaWQg ZnFfY29kZWxfZHJvcCBzaG93IHVwIGluIHRoZSBwZXJmIHRyYWNlIGZvciB0aGUgdGNwIHRlc3Q/ Cgp5ZXMsIGJ1dCBpdCB3YXMgbGVzcyBodW5ncnksIHNvbWV0aGluZyBhYm91dCAxNS0yMCUgaWYg SSByZW1lbWJlciBjb3JyZWN0bHkKCj4gKE1vcmUgbGlrZWx5IHlvdSB3b3VsZCBoYXZlIHNlZW4g dGltZXN0YW1waW5nIHJpc2Ugc2lnbmlmaWNhbnRseSBmb3IKPiB0aGUgdGNwIHRlc3QsIGFzIHdl bGwgYXMgZW5xdWV1ZSB0aW1lKQo+Cj4gVGhhdCBzYWlkLCBtb3JlIHBlb3BsZSB0ZXN0aW5nIHRo ZSBzYW1lIHdheXMsIGdvb2QgdG9vLgo+Cj4gSSdkIGxvdmUgaXQgaWYgeW91IGNvdWxkIHJlLXJ1 biB5b3VyIHRlc3QgdmlhIGZsZW50LCByYXRoZXIgdGhhbgo+IGlwZXJmLCBhbmQgbG9vayBhdCB0 aGUgdGNwIHNhd3Rvb3RoIG9yIGxhY2sgdGhlcmVvZiwgYW5kIHRoZSBvdmVyYWxsCj4gY3VydmUg b2YgdGhlIHRocm91Z2hwdXQsIGJlZm9yZSBhbmQgYWZ0ZXIgdGhpcyBzZXQgb2YgY29tbWl0cy4K CkkgZ3Vlc3MgSSBzaG91bGQgdHJ5IGZsZW50IGJ1dCB0aGUgcGVyZm9ybWFuY2UgZHJvcCB3YXMg dG9vIGV2aWRlbnQKZXZlbiB3aXRoIGlwZXJmCgo+IEZsZW50IGNhbiBiZSBtYWRlIHRvIHJ1biBv biBvc3ggdmlhIG1hY3BvcnRzIG9yIGJyZXcuIChtdWNoIGVhc2llciB0bwo+IGdldCBydW5uaW5n IG9uIGxpbnV4KSBBbmQgdHJ5IHRvIHRhZyBhbG9uZyBvbiBvYnNlcnZpbmcvZml4aW5nIGxvdwo+ IHdpZmkgcmF0ZSBiZWhhdmlvcj8KPgo+IFRoaXMgd2FzIHRoZSBtb3JlIHJlY2VudCBkcWwgdnMg d2lmaSB0ZXN0Ogo+Cj4gaHR0cDovL2Jsb2cuY2Vyb3dydC5vcmcvcG9zdC9kcWxfb25fd2lmaV8y Lwo+Cj4gYW5kIHNlcmllcy4KPgo+Pj4gQSBnZW5lcmFsIG9ic2VydmF0aW9uIG9mIGNvbnRyb2wg dGhlb3J5IGlzIHRoYXQgdGhlcmUgaXMgYWxtb3N0IGFsd2F5cyBhbiBhZHZlcnNhcmlhbCBzdHJh dGVneSB0aGF0IHdpbGwgZGVzdHJveSBhbnkgY29udHJvbCByZWdpbWUuIFNvbWV0aW1lcyBvbmUg aGFzIHRvIGludm9rZSBhbiAib3JhY2xlIiB0aGF0IGtub3dzIHRoZSBzdGF0ZSBvZiB0aGUgY29u dHJvbCBzeXN0ZW0gYXQgYWxsIHRpbWVzIHRvIGdldCB0aGVyZS4KPj4+Cj4+PiBTbyBhIGhhbmR3 YXZlIGlzIHRoYXQgKnRoZXJlIGlzIGFsd2F5cyBhIEREb1MgdGhhdCB3aWxsIHdvcmsqIG5vIG1h dHRlciBob3cgY2xldmVyIHlvdSBhcmUuCj4+Pgo+Pj4gQW5kIHRoZSBjb3JvbGxhcnkgaXMgaWxs dXN0cmF0ZWQgYnkgdGhlIFRTQS4gSWYgeW91IGNhbid0IGFudGljaXBhdGUgYWxsIHBvc3NpYmxl IGF0dGFja3MsIGl0IGlzIG5vdCBjbGVhcmx5IGJldHRlciB0byBqdXN0IGNvbmdlc3QgdGhlIHdo b2xlIHN5c3RlbSBhdCBhbGwgdGltZXMgd2l0aCBjb250cm9scyB0aGF0IGNhbid0IHBvc3NpYmx5 IHNvbHZlIGFsbCBwb3NzaWJsZSBhdHRhY2tzIC0gaS5lLiBTZWN1cml0eSBUaGVhdGVyLiBXZSBk b24ndCB3YW50ICJhbnRpLUREb1MgdGhlYXRlciIgSSBkb24ndCB0aGluay4KPj4+Cj4+PiBUaGVy ZSBpcyBhbiBhbHRlcm5hdGl2ZSBtZWNoYW5pc20gdGhhdCBoYXMgYmVlbiBlZmZlY3RpdmUgYXQg ZGVhbGluZyB3aXRoIEREb1MgaW4gZ2VuZXJhbCAtIHRyYWNrIHRoZSBkaXNydXB0aW9uIGJhY2sg dG8gdGhlIHNvdXJjZSBhbmQga2lsbCBpdC4gICh0aGlzIGlzIHdoYXQgdGhlIGVuZC10by1lbmQg YXJndW1lbnQgd291bGQgYmU6IGRvbid0IHRyeSB0byBzb2x2ZSBhIGZ1bmRhbWVudGFsbHkgZW5k LXRvLWVuZCBwcm9ibGVtLCBERG9TLCBzb2xlbHkgaW4gdGhlIG5ldHdvcmsgW3N3aXRjaGVzXSwg c2luY2UgeW91IGhhdmUgdG8gc29sdmUgaXQgYXQgdGhlIGVkZ2VzIGFueXdheS4gSnVzdCBpbmNs dWRlIGluIHRoZSBuZXR3b3JrIHRoaW5ncyB0aGF0IHdpbGwgaGVscCB5b3Ugc29sdmUgaXQgYXQg dGhlIGVkZ2VzIC0gdHJhY2ViYWNrIHRvb2xzIHRoYXQgd29yayBmYXN0IGFuZCB0YXJnZXRlZCBz aHV0ZG93biBvZiBzb3VyY2VzKS4KPj4+Cj4+PiBJIGRvbid0IGhhcHBlbiB0byBrbm93IG9mIGEg Im5vcm1hbCIgYXBwbGljYXRpb24gdGhhdCBiZW5lZml0cyBmcm9tIFVEUCBmbG9vZGluZyAtIG5v dCBldmVuICJnb3NzaXAgcHJvdG9jb2xzIiBkbyB0aGF0IQo+Pj4KPj4+IEluIGNvbnRleHQsIHRo ZW4sIGxldCdzIG5vdCBmb2N1cyBvbiBVRFAgZmxvb2QgcGVyZm9ybWFuY2UgKG9yIGFueSBvdGhl ciAiZXh0cmVtZSBjYXNlIiB0aGF0IGp1c3Qgc2VlbXMgZnVuIHRvIHdvcmsgb24gaW4gYSByZXNl YXJjaCBwYXBlciBiZWNhdXNlIGl0IGlzIGVhc3kgdG8gc3RhdGUgY29tcGFyZWQgdG8gdGhlIHJl YWwgd29ybGQpIHRvbyBtdWNoLgo+Pj4KPj4+IEkga25vdyB0aGF0IHRoZSByZWFjdGlvbiB0byB0 aGlzIHBvc3Qgd2lsbCBiZSB0byByZWFkIGl0IGFuZCBwcmV0dHkgbXVjaCBnbyBvbiBhcyB1c3Vh bCBmb2N1c2luZyBvbiBVRFAgZmxvb2RzLiBCdXQgSSBoYXZlIHRvIHRyeS4gVGhlcmUgYXJlIHNv IG1hbnkgbW9yZSBpbXBvcnRhbnQgaXNzdWVzIChsaWtlIHVuZGVyc3RhbmRpbmcgaG93IHRvIHVz ZSBjb25nZXN0aW9uIHNpZ25hbGxpbmcgaW4gZ29zc2lwIHByb3RvY29scywgZ2FtaW5nLCBvciBs aXZlIEFWIGNvbmZlcmVuY2luZyBiZXR0ZXIsIGFzIHNvbWUgcmVsYXRlZCBleGFtcGxlcywgd2hp Y2ggYXJlIGVuZC10by1lbmQgcHJvYmxlbXMgZm9yIHdoaWNoIHF1ZXVlIG1hbmFnZW1lbnQgYW5k IGNvbmdlc3Rpb24gc2lnbmFsbGluZyBhcmUgdHJ1bHkgY3J1Y2lhbCkuCj4+Pgo+Pj4KPj4+Cj4+ PiBPbiBTdW5kYXksIE1heSAxLCAyMDE2IDE6MjNhbSwgIkRhdmUgVGFodCIgPGRhdmUudGFodEBn bWFpbC5jb20+IHNhaWQ6Cj4+Pgo+Pj4+IE9uIFNhdCwgQXByIDMwLCAyMDE2IGF0IDEwOjA4IFBN LCBCZW4gR3JlZWFyIDxncmVlYXJiQGNhbmRlbGF0ZWNoLmNvbT4gd3JvdGU6Cj4+Pj4+Cj4+Pj4+ Cj4+Pj4+IE9uIDA0LzMwLzIwMTYgMDg6NDEgUE0sIERhdmUgVGFodCB3cm90ZToKPj4+Pj4+Cj4+ Pj4+PiBUaGVyZSB3ZXJlIGEgZmV3IHRoaW5ncyBvbiB0aGlzIHRocmVhZCB0aGF0IHdlbnQgYnks IGFuZCBJIHdhc24ndCBvbgo+Pj4+Pj4gdGhlIGF0aDEwayBsaXN0Cj4+Pj4+Pgo+Pj4+Pj4gKGh0 dHBzOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20vYXRoMTBrQGxpc3RzLmluZnJhZGVhZC5vcmcvbXNn MDQ0NjEuaHRtbCkKPj4+Pj4+Cj4+Pj4+PiBmaXJzdCB1cCwgdWRwIGZsb29kLi4uCj4+Pj4+Pgo+ Pj4+Pj4+Pj4gRnJvbTogYXRoMTBrIDxhdGgxMGstYm91bi4uLkBsaXN0cy5pbmZyYWRlYWQub3Jn PiBvbiBiZWhhbGYgb2YgUm9tYW4KPj4+Pj4+Pj4+IFllcnlvbWluIDxsZXJvaS5saS4uLkBnbWFp bC5jb20+Cj4+Pj4+Pj4+PiBTZW50OiBGcmlkYXksIEFwcmlsIDgsIDIwMTYgODoxNCBQTQo+Pj4+ Pj4+Pj4gVG86IGF0aDEwa0BsaXN0cy5pbmZyYWRlYWQub3JnCj4+Pj4+Pj4+PiBTdWJqZWN0OiBh dGgxMGsgcGVyZm9ybWFuY2UsIG1hc3RlciBicmFuY2ggZnJvbSAyMDE2MDQwNwo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+IEhlbGxvIQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEkndmUgc2VlbiBwZXJmb3JtYW5j ZSBwYXRjaGVzIHdlcmUgY29tbWl0ZWQgc28gSSd2ZSBkZWNpZGVkIHRvIGdpdmUgaXQKPj4+Pj4+ Pj4+IGEgdHJ5ICh1c2luZyA0LjEga2VybmVsIGFuZCBiYWNrcG9ydHMpLgo+Pj4+Pj4+Pj4gVGhl IHJlc3VsdHMgYXJlIHF1aXRlIGRpc2FwcG9pbnRpbmc6IFRDUCBkb3dubG9hZCAoY2xpZW50IHBv dikgZHJvcHBlZAo+Pj4+Pj4+Pj4gZnJvbSA3NTBNYnBzIHRvIH41NTAgYW5kIFVEUCBzaG93cyBj b21wbGV0ZWx5IHdlaXJkIGJlaGF2b3VyIC0gaWYKPj4+Pj4+Pj4+IGdlbmVyYXRpbmcgOTAwTWJw cyBpdCBnaXZlcyAzME1icHMgbWF4LCBpZiBnZW5lcmF0aW5nIDMwME1icHMgaXQgZ2l2ZXMKPj4+ Pj4+Pj4+IDI1ME1icHMsIGJlZm9yZSAobGF0ZXN0IG9mZmljaWFsIGJhY2twb3J0cyByZWxlYXNl IGZyb20gSmFudWFyeSkgSSB3YXMKPj4+Pj4+Pj4+IGFibGUgdG8gZ2V0IDkwME1icHMuCj4+Pj4+ Pj4+PiBIYXJkd2FyZSBpcyBiYXNpY2FsbHkgYXAxNTIgKyBxY2E5ODh4IDN4My4KPj4+Pj4+Pj4+ IFdoZW4gcnVubmluZyBwZXJmIHRvcCBJIHNlZSB0aGF0IGZxX2NvZGVsX2Ryb3AgZWF0cyBhIGxv dCBvZiBjcHUuCj4+Pj4+Pj4+PiBIZXJlIGlzIHRoZSBvdXRwdXQgd2hlbiBydW5uaW5nIGlwZXJm MyBVRFAgdGVzdDoKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAgICAgIDQ1Ljc4JSAgW2tlcm5lbF0gICAg ICAgW2tdIGZxX2NvZGVsX2Ryb3AKPj4+Pj4+Pj4+ICAgICAgIDMuMDUlICBba2VybmVsXSAgICAg ICBba10gYWc3MXh4X3BvbGwKPj4+Pj4+Pj4+ICAgICAgIDIuMTglICBba2VybmVsXSAgICAgICBb a10gc2tiX3JlbGVhc2VfZGF0YQo+Pj4+Pj4+Pj4gICAgICAgMi4wMSUgIFtrZXJuZWxdICAgICAg IFtrXSByNGtfZG1hX2NhY2hlX2ludgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBUaGUgdWRwIGZsb29k IGJlaGF2aW9yIGlzIG5vdCAid2VpcmQiLiAgVGhlIHRlc3QgaXMgd3JvbmcuIEl0IGlzIHNvCj4+ Pj4+PiBmaWxsaW5nCj4+Pj4+PiB0aGUgbG9jYWwgcXVldWUgYXMgdG8gZHJhbWF0aWNhbGx5IGV4 Y2VlZCB0aGUgYmFuZHdpZHRoIG9uIHRoZSBsaW5rLgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBJdCB3b3Vs ZCBiZSBuaWNlIGlmIHlvdSBjb3VsZCBwcm92aWRlIGJhY2twcmVzc3VyZSBzbyB0aGF0IHlvdSBj b3VsZAo+Pj4+PiBzaW1wbHkgc2VsZWN0IG9uIHRoZSB1ZHAgc29ja2V0IGFuZCB1c2UgdGhhdCB0 byBrbm93IHdoZW4geW91IGNhbiBzZW5kCj4+Pj4+IG1vcmUgZnJhbWVzPz8KPj4+Pgo+Pj4+IFRo ZSBxZGlzYyB2ZXJzaW9uIHJldHVybnMgIE5FVF9YTUlUX0NOIHRvIHRoZSB1cHBlciBsYXllcnMg b2YgdGhlCj4+Pj4gc3RhY2sgaW4gdGhlIGNhc2UKPj4+PiB3aGVyZSB0aGUgZHJvcHBlZCBwYWNr ZXQncyBmbG93ID0gdGhlIGluZ3Jlc3MgcGFja2V0J3MgZmxvdywgYnV0IHRoYXQKPj4+PiBpcyBh ZnRlciB0aGUKPj4+PiBleGhhdXN0aXZlIHNlYXJjaC4uLgo+Pj4+Cj4+Pj4gSSBkb24ndCBrbm93 IHdoYXQgZWZmZWN0IChpZiBhbnkpIHRoYXQgaGFkIG9uIHVkcCBzb2NrZXRzLiBIbW0uLi4gd2ls bAo+Pj4+IGxvb2suIEVyaWMgd291bGQgImp1c3Qga25vdyIuCj4+Pj4KPj4+PiBUaGF0IG1pZ2h0 IHByb3ZpZGUgbW9yZSBiYWNrcHJlc3N1cmUgaW4gdGhlIGxvY2FsIHNjZW5hcmlvLiBTT19TTkRf QlVGCj4+Pj4gc2hvdWxkIGludGVyYWN0IHdpdGggdGhpcyBzdHVmZiBpbiBzb21lIHNhbmUgd2F5 Li4uCj4+Pj4KPj4+PiAuLi4gYnV0IG92ZXIgdGhlIHdpcmUgZnJvbSBhIHRlc3QgZHJpdmVyIGJv eCBlbHNld2hlcmUsIHRobywgYXNpZGUKPj4+PiBmcm9tIGV0aGVybmV0IGZsb3cgY29udHJvbCBp dHNlbGYsIHdoZXJlIGVuYWJsZWQsIG5vLgo+Pj4+Cj4+Pj4gLi4uIGJ1dCBpbiB0aGF0IGNhc2Ug eW91IGhhdmUgYSBtdWNoIGxvd2VyIGluYm91bmQvb3V0Ym91bmQKPj4+PiBwZXJmb3JtYW5jZSBk aXNwYXJpdHkgaW4gdGhlIGdlbmVyYWwgY2FzZSB0byBzdGFydCB3aXRoLi4uIHdoaWNoIGNhbgo+ Pj4+IHN0aWxsIGJlIHF1aXRlIGhpZ2guLi4KPj4+Pgo+Pj4+Pgo+Pj4+PiBBbnkgaWRlYSBob3cg dGhhdCB3b3JrcyB3aXRoIGNvZGVsPwo+Pj4+Cj4+Pj4gQmVhdXRpZnVsbHkuCj4+Pj4KPj4+PiBG b3IgcmVzcG9uc2l2ZSBUQ1AgZmxvd3MuIEl0IGltbWVkaWF0ZWx5IHJlZHVjZXMgdGhlIHdpbmRv dyB3aXRob3V0IGEgUlRULgo+Pj4+Cj4+Pj4+IFRoYW5rcywKPj4+Pj4gQmVuCj4+Pj4+Cj4+Pj4+ IC0tCj4+Pj4+IEJlbiBHcmVlYXIgPGdyZWVhcmJAY2FuZGVsYXRlY2guY29tPgo+Pj4+PiBDYW5k ZWxhIFRlY2hub2xvZ2llcyBJbmMgIGh0dHA6Ly93d3cuY2FuZGVsYXRlY2guY29tCj4+Pj4KPj4+ Pgo+Pj4+Cj4+Pj4gLS0KPj4+PiBEYXZlIFTDpGh0Cj4+Pj4gTGV0J3MgZ28gbWFrZSBob21lIHJv dXRlcnMgYW5kIHdpZmkgZmFzdGVyISBXaXRoIGJldHRlciBzb2Z0d2FyZSEKPj4+PiBodHRwOi8v YmxvZy5jZXJvd3J0Lm9yZwo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCj4+Pj4gTWFrZS13aWZpLWZhc3QgbWFpbGluZyBsaXN0Cj4+Pj4gTWFrZS13 aWZpLWZhc3RAbGlzdHMuYnVmZmVyYmxvYXQubmV0Cj4+Pj4gaHR0cHM6Ly9saXN0cy5idWZmZXJi bG9hdC5uZXQvbGlzdGluZm8vbWFrZS13aWZpLWZhc3QKPj4+Pgo+Pj4KPj4+Cj4+PiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+Pj4gTWFrZS13aWZpLWZh c3QgbWFpbGluZyBsaXN0Cj4+PiBNYWtlLXdpZmktZmFzdEBsaXN0cy5idWZmZXJibG9hdC5uZXQK Pj4+IGh0dHBzOi8vbGlzdHMuYnVmZmVyYmxvYXQubmV0L2xpc3RpbmZvL21ha2Utd2lmaS1mYXN0 Cj4KPgo+Cj4gLS0KPiBEYXZlIFTDpGh0Cj4gTGV0J3MgZ28gbWFrZSBob21lIHJvdXRlcnMgYW5k IHdpZmkgZmFzdGVyISBXaXRoIGJldHRlciBzb2Z0d2FyZSEKPiBodHRwOi8vYmxvZy5jZXJvd3J0 Lm9yZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYXRo MTBrIG1haWxpbmcgbGlzdAphdGgxMGtAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2F0aDEwawo=