2017-10-29 07:27:30

by Kalle Valo

[permalink] [raw]
Subject: ath10k: Wifi slow on the XPS13 (9360) (QCA6174)

KyBsaW51eC13aXJlbGVzcyBhbmQgY2xlYW5pbmcgdGhlIHN1YmplY3QNCg0KSGkgVGhvcnN0ZW4s
DQoNCnNvcnJ5IGZvciB0aGUgbGF0ZSByZXBseSwgSSdtIGhhdmluZyBwcm9ibGVtcyBrZWVwaW5n
IHVwIHdpdGggYWxsIHRoZQ0KZW1haWwuIEkganVzdCBkbyBhIHF1aWNrIHJlcGx5IG5vdyB0byBw
b2ludCBvdXQgdGhhdCB5b3UgYXJlIHRhbGtpbmcNCmFib3V0IHR3byBkaWZmZXJlbnQgcHJvYmxl
bXMuIFRvIGtlZXAgdGhlIGRpc2N1c3Npb24gc2ltcGxlIEkgcmVjb21tZW5kDQprZWVwaW5nIHRo
ZSB0d28gaXNzdWVzIGNvbXBsZXRlIHNlcGFyYXRlLg0KDQpUaG9yc3RlbiBMZWVtaHVpcyA8bGlu
dXhAbGVlbWh1aXMuaW5mbz4gd3JpdGVzOg0KDQo+IExvISBTcGxpdHRpbmcgdGhpcyB0aHJlYWQg
dG8gZm9jdXMgb24gYSBpc3N1ZSB0aGF0IGhhcyBub3RoaW5nIHRvIGRvDQo+IHdpdGggdGhlIHJl
Z3Jlc3Npb24gaW4gNC4xNCBJIHJlcG9ydGVkOg0KPg0KPiBPbiAwMy4xMC4yMDE3IDAxOjQwLCBS
eWFuIEhzdSB3cm90ZToNCj4+IE9uIDEwLzAxLzIwMTcgMDE6NTkgQU0sIFRob3JzdGVuIExlZW1o
dWlzIHdyb3RlOg0KPj4+PiBhdGgxMGtfcGNpIDAwMDA6M2E6MDAuMDogRGlyZWN0IGZpcm13YXJl
IGxvYWQgZm9yDQo+Pj4+IGF0aDEway9wcmUtY2FsLXBjaS0wMDAwOjNhOjAwLjAuYmluIGZhaWxl
ZCB3aXRoIGVycm9yIC0yDQo+Pj4+IGF0aDEwa19wY2kgMDAwMDozYTowMC4wOiBEaXJlY3QgZmly
bXdhcmUgbG9hZCBmb3INCj4+Pj4gYXRoMTBrL2NhbC1wY2ktMDAwMDozYTowMC4wLmJpbiBmYWls
ZWQgd2l0aCBlcnJvciAtMg0KPj4+IERvIHRoZXkgaGF2ZSBhbnl0aGluZyB0byBkbyB3aXRoIHRo
aXM/IEhhcmR3YXJlIGlzDQo+PiBUaGlzIGVycm9yIG1lc3NhZ2UgaXMgY29uZnVzaW5nIHNpbmNl
IFFDQTYxNzQgaXMgbm90IHN1cHBvcnRpbmcNCj4+IHByZS1jYWxpYnJhdGlvbiBmZWF0dXJlLCB0
aGlzIHJlbWluZHMgbWUgdGhhdCB3ZSBuZWVkIHRvIGNsZWFuIHRoaXMgdXAuDQo+DQo+IEkgZ3Vl
c3MgdGhhdCB3b3VsZCBiZSBnb29kIHRvIGF2b2lkIGNvbmZ1c2lvbi4gQnV0IHdoaWxlIGF0IGl0
OiBJZiB5b3UNCj4gaGF2ZSBhIG1pbnV0ZSwgY291bGQgeW91IHBsZWFzZSBleHBsYWluIHRvIG1l
IGhvdyB0byBwcm9wZXJseSBzZXQgdXAgdGhlDQo+IHdpZmkgZmlybXdhcmUgZmlsZXMgZm9yIG15
IERlbGwgWFBTMTMgKDkzNjApPyBUaGUgcmVhc29ucyB3aHkgSSdtDQo+IGFza2luZzogU2VuZGlu
ZyBkYXRhIHZpYSB3aWZpIGlzIHJlYWxseSBzbG93IG9uIG15IGxhcHRvcCAoc2NwIGNvcGllcw0K
PiBvbmx5IGdldCAyIHRvIDUgTUJ5dGUvcyBvbiBuZXR3b3JrcyB0aGF0IGFyZSBrbm93biB0byBi
ZSBhIGxvdCBmYXN0ZXIpLg0KPiBJIHdvbmRlciBpZiB0aGUgZmlybXdhcmUgZmlsZXMgb3IgdGhl
IGNhbGlicmF0aW9uIGRhdGEgaXMgcGFydCBvZiB0aGUNCj4gcmVhc29uIHdpZmkgVHggaXMgc2xv
dy4gVGhlIG1hY2hpbmUgaXMgbm9ybWFsbHkgc2hpcHBlZCB3aXRoIGEgc2xpZ2h0bHkNCj4gZW5o
YW5jZWQgVWJ1bnR1IDE2LjA0LiBUaGF0IGFtb25nIG90aGVycyBjb250YWlucyBhIHBhY2thZ2Ug
d2l0aCB0aGUNCj4gbWFjaGluZSBzcGVjaWZpYyBmaWxlcyBib2FyZC5iaW4gYW5kIGJvYXJkLTIu
YmluIHRoYXQgcmVwbGFjZSB0aGUgZmlsZXMNCj4gbm9ybWFsbHkgaW5zdGFsbGVkIGluIC9saWIv
ZmlybXdhcmUvYXRoMTBrL1FDQTYxNzQvaHczLjAvIEFyZSB0aG9zZQ0KPiBtYWNoaW5lIHNwZWNp
ZmljIGZpbGVzIGNydWNpYWwgdG8gaGF2ZSBvciBhcmUgdGhlIG9uZSBmcm9tIHRoZQ0KPiBsaW51
eC1maXJtd2FyZSByZXBvIGdvb2QgZW5vZ3VoPyBJJ20gdXNpbmcgRmVkb3JhIGFuZCBjb3VsZCBj
b3B5IHRoZQ0KPiBvbmVzIGZyb20gVWJ1bnR1IG92ZXIsIGJ1dCBvYnZpb3VzbHkgdGhleSB3aWxs
IGdldCBvdmVyd3JpdHRlbiBldmVyeQ0KPiB0aW1lIEZlZG9yYSBzaGlwcyBhIG5ldyBsaW51eC1m
aXJtd2FyZSBwYWNrYWdlIOKAkyBJT1c6IGV2ZXJ5IGZldyB3ZWVrcyA6LS8NCg0KWWVzLCB0aGUg
Ym9hcmQgZmlsZSBjYW4gYWZmZWN0IHRocm91Z2h0cHV0LCBfYm90aF8gVENQIGFuZCBVRFAuIEkg
ZG9uJ3QNCmtub3cgd2hhdCBib2FyZCBmaWxlcyBVYnVudHUgaXMgc2hpcHBpbmcgYnV0IHdlIHNo
b3VsZCB0cnkgdG8gZ2V0IHRob3NlDQppbnRvIHVwc3RyZWFtLg0KDQo+IFNpZGUgbm90ZTogWW91
IGZpbmQgYSBsb3Qgb2YgcmVwb3J0cyBhYm91dCBzbG93IHdpZmkgaXMgeW91IHNlYXJjaCB0aGUN
Cj4gbmV0IHdpdGggdGVybXMgbGlrZSAiOTM2MCB3aWZpIHNsb3cgbGludXgiLiBVYnVudHUgZml4
ZWQgdGhhdCBhIGZldw0KPiBtb250aHMgYWdvIHdpdGggdGhpcyBwYXRjaDoNCj4gaHR0cDovL2tl
cm5lbC51YnVudHUuY29tL2dpdC91YnVudHUvdWJ1bnR1LXhlbmlhbC5naXQvY29tbWl0Lz9pZD05
NjkwZjE5ZjA3ZmVlMmFjYjJiMDRlYTVlYWE1ZGIxODRlZTE3NWQ1DQo+DQo+IFNvbWUgYnVncyBh
Ym91dCB0aGlzOg0KPiBodHRwczovL2J1Z3MubGF1bmNocGFkLm5ldC91YnVudHUvK3NvdXJjZS9s
aW51eC8rYnVnLzE2OTI4MzYNCj4gaHR0cHM6Ly9idWdzLmxhdW5jaHBhZC5uZXQvdWJ1bnR1Lytz
b3VyY2UvbGludXgvK2J1Zy8xNjcwMDQxDQoNCkJ1dCB0aGlzIGFnYWluIGFib3V0IGludGVycmFj
dGlvbiBiZXR3ZWVuIGF0aDEwayBhbmQgVENQIHN0YWNrLiBBbmQgaXQNCl9vbmx5XyBhZmZlY3Rz
IFRDUCwgVURQIHNob3VsZCBiZSB1bmFmZmVjdGVkLiBTbyB3aGVuZXZlciB0ZXN0aW5nDQp0aHJv
dWdocHV0IHBsZWFzZSBhbHdheXMgbWVhc3VyZSBib3RoIFRDUCBhbmQgVURQIGJlY2F1c2UgdGhl
biBpdCdzDQplYXNpZXIgdG8gcGlucG9pbnQgdGhlIHJlYXNvbi4NCg0KPiBCdXQgZnJvbSB3aGF0
IEkgZ2F0aGVyZWQgYnkgc2VhcmNoaW5nIHRoZSBuZXQgYW5kIGFza2luZyBvbiAjYXRoMTBrIEkN
Cj4gZ290IHRoZSBpbXByZXNzaW9uIHRoYXQgcGF0Y2ggaXMgYSBtYXNzaXZlIHVnbHkgaGFjayBh
bmQgbm8gd2F5DQo+IGFjY2VwdGFibGUgdXBzdHJlYW0uICBJcyB0aGF0IGNvcnJlY3Q/DQoNClll
cywgaXQncyBhIGhvcnJpYmxlIGhhY2sgYW5kIEkgY2Fubm90IGFwcGx5IHRoYXQuIEFuZCBsaWtl
IHlvdSBzYWlkDQojMTY5MjgzNiwgYWxzbyBFcmljIER1bWF6ZXQgKG9uZSBvZiBUQ1AgbWFpbnRh
aW5lcnMpIGFncmVlcyB3aXRoIHRoYXQuDQoNCj4gSWYgeWVzOiBpcyB0aGVyZSBtYXliZSBhIHBy
b3BlciBmaXggb3V0IHRoZXJlIHNvbWV3aGVyZT8NCg0KVW5mb3J0dW5hdGVseSB0aGVyZSBzdGls
bCBpcyBubyBnb29kIHNvbHV0aW9uLiBJbiBhIHdlZWsgdGhlcmUncyBOZXRkZXYNCjIuMiBhbmQg
d2UgaGF2ZSBMaW51eCBXaXJlbGVzcyBzdW1taXQgdGhlcmUuIFdlIHNob3VsZCBicmluZyB1cCB0
aGlzDQp0b3BpYyB0aGVyZS4NCg0KLS0gDQpLYWxsZSBWYWxv


2017-10-31 15:47:22

by Thorsten Leemhuis

[permalink] [raw]
Subject: Re: ath10k: Wifi slow on the XPS13 (9360) (QCA6174)

Lo! On 29.10.2017 08:27, Kalle Valo wrote:
> [..]
> sorry for the late reply, I'm having problems keeping up with all the
> email.

No worries, this problem is nothing new, I just thought it might be good
to finally bring this to ath10k, as I got the impressions it had not
gotten proper attention there yet.

> Thorsten Leemhuis <[email protected]> writes:
>> On 03.10.2017 01:40, Ryan Hsu wrote:
>>> On 10/01/2017 01:59 AM, Thorsten Leemhuis wrote:
>>>>> ath10k_pci 0000:3a:00.0: Direct firmware load for
>>>>> ath10k/pre-cal-pci-0000:3a:00.0.bin failed with error -2
>>>>> ath10k_pci 0000:3a:00.0: Direct firmware load for
>>>>> ath10k/cal-pci-0000:3a:00.0.bin failed with error -2
>>>> Do they have anything to do with this? Hardware is
>>> This error message is confusing since QCA6174 is not supporting
>>> pre-calibration feature, this reminds me that we need to clean this up.
>> I guess that would be good to avoid confusion. But while at it: If you
>> have a minute, could you please explain to me how to properly set up the
>> wifi firmware files for my Dell XPS13 (9360)? The reasons why I'm
>> asking: Sending data via wifi is really slow on my laptop (scp copies
>> only get 2 to 5 MByte/s on networks that are known to be a lot faster).
>> I wonder if the firmware files or the calibration data is part of the
>> reason wifi Tx is slow. The machine is normally shipped with a slightly
>> enhanced Ubuntu 16.04. That among others contains a package with the
>> machine specific files board.bin and board-2.bin that replace the files
>> normally installed in /lib/firmware/ath10k/QCA6174/hw3.0/ Are those
>> machine specific files crucial to have or are the one from the
>> linux-firmware repo good enoguh? I'm using Fedora and could copy the
>> ones from Ubuntu over, but obviously they will get overwritten every
>> time Fedora ships a new linux-firmware package – IOW: every few weeks :-/
> Yes, the board file can affect throughtput, _both_ TCP and UDP. I don't
> know what board files Ubuntu is shipping but we should try to get those
> into upstream.

Out of curiosity (don't spend time answering this is you are busy): Is
there even a mechanism for this? Kind of "take
firmwaredir/board-Dell_Inc.-XPS_13_9360.bin if it exists and
firmwaredir/board.bin otherwise? Or can one file serve all machines?

>> Side note: You find a lot of reports about slow wifi is you search the
>> net with terms like "9360 wifi slow linux". Ubuntu fixed that a few
>> months ago with this patch:
>> http://kernel.ubuntu.com/git/ubuntu/ubuntu-xenial.git/commit/?id=9690f19f07fee2acb2b04ea5eaa5db184ee175d5
>> Some bugs about this:
>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1692836
>> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1670041
> But this again about interraction between ath10k and TCP stack. And it
> _only_ affects TCP, UDP should be unaffected.

Ahh, sorry, missed that. Seems I didn't properly read the second
launchpad link above. Sorry.

> So whenever testing
> throughput please always measure both TCP and UDP because then it's
> easier to pinpoint the reason.

Is there any data I could provide that might help getting this soled
once and for all?

>> But from what I gathered by searching the net and asking on #ath10k I
>> got the impression that patch is a massive ugly hack and no way
>> acceptable upstream. Is that correct?
> Yes, it's a horrible hack and I cannot apply that. And like you said
> #1692836, also Eric Dumazet (one of TCP maintainers) agrees with that
Ahh, had missed that, sorry.

>> If yes: is there maybe a proper fix out there somewhere?
> Unfortunately there still is no good solution. In a week there's Netdev
> 2.2 and we have Linux Wireless summit there. We should bring up this
> topic there.

Thx for picking this up, much appreciated! Ciao, Thorsten

2017-11-01 07:26:01

by Kalle Valo

[permalink] [raw]
Subject: Re: ath10k: Wifi slow on the XPS13 (9360) (QCA6174)

VGhvcnN0ZW4gTGVlbWh1aXMgPGxpbnV4QGxlZW1odWlzLmluZm8+IHdyaXRlczoNCg0KPiBMbyEg
T24gMjkuMTAuMjAxNyAwODoyNywgS2FsbGUgVmFsbyB3cm90ZToNCj4+IFRob3JzdGVuIExlZW1o
dWlzIDxsaW51eEBsZWVtaHVpcy5pbmZvPiB3cml0ZXM6DQo+Pj4gT24gMDMuMTAuMjAxNyAwMTo0
MCwgUnlhbiBIc3Ugd3JvdGU6DQo+Pj4+IE9uIDEwLzAxLzIwMTcgMDE6NTkgQU0sIFRob3JzdGVu
IExlZW1odWlzIHdyb3RlOg0KPj4+Pj4+IGF0aDEwa19wY2kgMDAwMDozYTowMC4wOiBEaXJlY3Qg
ZmlybXdhcmUgbG9hZCBmb3INCj4+Pj4+PiBhdGgxMGsvcHJlLWNhbC1wY2ktMDAwMDozYTowMC4w
LmJpbiBmYWlsZWQgd2l0aCBlcnJvciAtMg0KPj4+Pj4+IGF0aDEwa19wY2kgMDAwMDozYTowMC4w
OiBEaXJlY3QgZmlybXdhcmUgbG9hZCBmb3INCj4+Pj4+PiBhdGgxMGsvY2FsLXBjaS0wMDAwOjNh
OjAwLjAuYmluIGZhaWxlZCB3aXRoIGVycm9yIC0yDQo+Pj4+PiBEbyB0aGV5IGhhdmUgYW55dGhp
bmcgdG8gZG8gd2l0aCB0aGlzPyBIYXJkd2FyZSBpcw0KPj4+PiBUaGlzIGVycm9yIG1lc3NhZ2Ug
aXMgY29uZnVzaW5nIHNpbmNlIFFDQTYxNzQgaXMgbm90IHN1cHBvcnRpbmcNCj4+Pj4gcHJlLWNh
bGlicmF0aW9uIGZlYXR1cmUsIHRoaXMgcmVtaW5kcyBtZSB0aGF0IHdlIG5lZWQgdG8gY2xlYW4g
dGhpcyB1cC4NCj4+PiBJIGd1ZXNzIHRoYXQgd291bGQgYmUgZ29vZCB0byBhdm9pZCBjb25mdXNp
b24uIEJ1dCB3aGlsZSBhdCBpdDogSWYgeW91DQo+Pj4gaGF2ZSBhIG1pbnV0ZSwgY291bGQgeW91
IHBsZWFzZSBleHBsYWluIHRvIG1lIGhvdyB0byBwcm9wZXJseSBzZXQgdXAgdGhlDQo+Pj4gd2lm
aSBmaXJtd2FyZSBmaWxlcyBmb3IgbXkgRGVsbCBYUFMxMyAoOTM2MCk/IFRoZSByZWFzb25zIHdo
eSBJJ20NCj4+PiBhc2tpbmc6IFNlbmRpbmcgZGF0YSB2aWEgd2lmaSBpcyByZWFsbHkgc2xvdyBv
biBteSBsYXB0b3AgKHNjcCBjb3BpZXMNCj4+PiBvbmx5IGdldCAyIHRvIDUgTUJ5dGUvcyBvbiBu
ZXR3b3JrcyB0aGF0IGFyZSBrbm93biB0byBiZSBhIGxvdCBmYXN0ZXIpLg0KPj4+IEkgd29uZGVy
IGlmIHRoZSBmaXJtd2FyZSBmaWxlcyBvciB0aGUgY2FsaWJyYXRpb24gZGF0YSBpcyBwYXJ0IG9m
IHRoZQ0KPj4+IHJlYXNvbiB3aWZpIFR4IGlzIHNsb3cuIFRoZSBtYWNoaW5lIGlzIG5vcm1hbGx5
IHNoaXBwZWQgd2l0aCBhIHNsaWdodGx5DQo+Pj4gZW5oYW5jZWQgVWJ1bnR1IDE2LjA0LiBUaGF0
IGFtb25nIG90aGVycyBjb250YWlucyBhIHBhY2thZ2Ugd2l0aCB0aGUNCj4+PiBtYWNoaW5lIHNw
ZWNpZmljIGZpbGVzIGJvYXJkLmJpbiBhbmQgYm9hcmQtMi5iaW4gdGhhdCByZXBsYWNlIHRoZSBm
aWxlcw0KPj4+IG5vcm1hbGx5IGluc3RhbGxlZCBpbiAvbGliL2Zpcm13YXJlL2F0aDEway9RQ0E2
MTc0L2h3My4wLyBBcmUgdGhvc2UNCj4+PiBtYWNoaW5lIHNwZWNpZmljIGZpbGVzIGNydWNpYWwg
dG8gaGF2ZSBvciBhcmUgdGhlIG9uZSBmcm9tIHRoZQ0KPj4+IGxpbnV4LWZpcm13YXJlIHJlcG8g
Z29vZCBlbm9ndWg/IEknbSB1c2luZyBGZWRvcmEgYW5kIGNvdWxkIGNvcHkgdGhlDQo+Pj4gb25l
cyBmcm9tIFVidW50dSBvdmVyLCBidXQgb2J2aW91c2x5IHRoZXkgd2lsbCBnZXQgb3ZlcndyaXR0
ZW4gZXZlcnkNCj4+PiB0aW1lIEZlZG9yYSBzaGlwcyBhIG5ldyBsaW51eC1maXJtd2FyZSBwYWNr
YWdlIOKAkyBJT1c6IGV2ZXJ5IGZldyB3ZWVrcyA6LS8NCj4+IFllcywgdGhlIGJvYXJkIGZpbGUg
Y2FuIGFmZmVjdCB0aHJvdWdodHB1dCwgX2JvdGhfIFRDUCBhbmQgVURQLiBJIGRvbid0DQo+PiBr
bm93IHdoYXQgYm9hcmQgZmlsZXMgVWJ1bnR1IGlzIHNoaXBwaW5nIGJ1dCB3ZSBzaG91bGQgdHJ5
IHRvIGdldCB0aG9zZQ0KPj4gaW50byB1cHN0cmVhbS4NCj4NCj4gT3V0IG9mIGN1cmlvc2l0eSAo
ZG9uJ3Qgc3BlbmQgdGltZSBhbnN3ZXJpbmcgdGhpcyBpcyB5b3UgYXJlIGJ1c3kpOiBJcw0KPiB0
aGVyZSBldmVuIGEgbWVjaGFuaXNtIGZvciB0aGlzPyBLaW5kIG9mICJ0YWtlDQo+IGZpcm13YXJl
ZGlyL2JvYXJkLURlbGxfSW5jLi1YUFNfMTNfOTM2MC5iaW4gaWYgaXQgZXhpc3RzIGFuZA0KPiBm
aXJtd2FyZWRpci9ib2FyZC5iaW4gb3RoZXJ3aXNlPyBPciBjYW4gb25lIGZpbGUgc2VydmUgYWxs
IG1hY2hpbmVzPw0KDQpKdXN0IHRvIGEgcXVpY2sgc2hvcnQgYW5zd2VyOg0KDQpib2FyZC5iaW4g
Y29udGFpbnMganVzdCBvbmUgYm9hcmQgZmlsZSBidXQgYm9hcmQtMi5iaW4gaXMgaW4gcHJhY3Rp
c2UgYQ0KY29udGFpbmVyIGZvcm1hdCB3aGljaCBoYXMgbXVsdGlwbGUgYm9hcmQgZmlsZXMgKG9y
ICJpbWFnZXMiKS4gRWFjaA0KaW1hZ2UgaGFzIGEgbmFtZSBhc3NvY2lhdGVkIHRvIGl0IHdoaWNo
IGF0aDEwayB1c2VzIHRvIGZpbmQgdGhlIGNvcnJlY3QNCmltYWdlLiBFeGFtcGxlOg0KDQpidXM9
cGNpLHZlbmRvcj0xNjhjLGRldmljZT0wMDNlLHN1YnN5c3RlbS12ZW5kb3I9MTQ0ZCxzdWJzeXN0
ZW0tZGV2aWNlPWMxNGYsdmFyaWFudD1LDQoNClNvIHllcywgd2UgaGF2ZSBpbmZyYXN0cnVjdHVy
ZSByZWFkeSB0byBwcm92aWRlIG11bHRpcGxlIGJvYXJkIGZpbGVzLg0KQnV0IHVzdWFsbHkgdGhl
IGNoYWxsZW5nZSBpcyBob3cgdG8gbWFrZSBhdGgxMGsgY29ycmVjdGx5IGRldGVjdCB3aGF0DQpi
b2FyZCBmaWxlIGEgcGFydGljdWxhciBzeXN0ZW0gbmVlZHMuDQoNCj4+PiBTaWRlIG5vdGU6IFlv
dSBmaW5kIGEgbG90IG9mIHJlcG9ydHMgYWJvdXQgc2xvdyB3aWZpIGlzIHlvdSBzZWFyY2ggdGhl
DQo+Pj4gbmV0IHdpdGggdGVybXMgbGlrZSAiOTM2MCB3aWZpIHNsb3cgbGludXgiLiBVYnVudHUg
Zml4ZWQgdGhhdCBhIGZldw0KPj4+IG1vbnRocyBhZ28gd2l0aCB0aGlzIHBhdGNoOg0KPj4+IGh0
dHA6Ly9rZXJuZWwudWJ1bnR1LmNvbS9naXQvdWJ1bnR1L3VidW50dS14ZW5pYWwuZ2l0L2NvbW1p
dC8/aWQ9OTY5MGYxOWYwN2ZlZTJhY2IyYjA0ZWE1ZWFhNWRiMTg0ZWUxNzVkNQ0KPj4+IFNvbWUg
YnVncyBhYm91dCB0aGlzOg0KPj4+IGh0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0L3VidW50dS8r
c291cmNlL2xpbnV4LytidWcvMTY5MjgzNg0KPj4+IGh0dHBzOi8vYnVncy5sYXVuY2hwYWQubmV0
L3VidW50dS8rc291cmNlL2xpbnV4LytidWcvMTY3MDA0MQ0KPj4gQnV0IHRoaXMgYWdhaW4gYWJv
dXQgaW50ZXJyYWN0aW9uIGJldHdlZW4gYXRoMTBrIGFuZCBUQ1Agc3RhY2suIEFuZCBpdA0KPj4g
X29ubHlfIGFmZmVjdHMgVENQLCBVRFAgc2hvdWxkIGJlIHVuYWZmZWN0ZWQuDQo+DQo+IEFoaCwg
c29ycnksIG1pc3NlZCB0aGF0LiBTZWVtcyBJIGRpZG4ndCBwcm9wZXJseSByZWFkIHRoZSBzZWNv
bmQNCj4gbGF1bmNocGFkIGxpbmsgYWJvdmUuIFNvcnJ5Lg0KPg0KPj4gU28gd2hlbmV2ZXIgdGVz
dGluZw0KPj4gdGhyb3VnaHB1dCBwbGVhc2UgYWx3YXlzIG1lYXN1cmUgYm90aCBUQ1AgYW5kIFVE
UCBiZWNhdXNlIHRoZW4gaXQncw0KPj4gZWFzaWVyIHRvIHBpbnBvaW50IHRoZSByZWFzb24uDQo+
DQo+IElzIHRoZXJlIGFueSBkYXRhIEkgY291bGQgcHJvdmlkZSB0aGF0IG1pZ2h0IGhlbHAgZ2V0
dGluZyB0aGlzIHNvbGVkDQo+IG9uY2UgYW5kIGZvciBhbGw/DQoNCldpdGggInRoaXMiIHlvdSBt
ZWFuIFRDUCB0cmFuc21pdCB0aHJvdWdocHV0IHByb2JsZW0gd2l0aCBhdGgxMGs/IEkNCmRvbid0
IHRoaW5rIHRoZXJlJ3MgYW55IGVhc3kgc29sdXRpb24sIHdlIGp1c3QgbmVlZCB0byBzdGFydCBh
IHNlcmlvdXMNCmRpc2N1c3Npb24gd2l0aCB0aGUgVENQIG1haW50YWluZXJzIGhvdyB0byBzb2x2
ZSB0aGlzLiBJSVJDIGF0aDEwaw0KZGlkbid0IGhhdmUgdGhpcyBwcm9ibGVtIHVudGlsIHNvbWV0
aGluZyBjaGFuZ2VkIGluIHRoZSBUQ1Agc3RhY2ssIHNvIGluDQp0aGVvcnkgdGhpcyBjb3VsZCBi
ZSBjbGFzc2lmaWVkIGFzIGEgcmVncmVzc2lvbiBpbiB0aGUgVENQIHN0YWNrLiBCdXQNCkknbSBu
b3Qgc3VyZSBhYm91dCB0aGF0IGFuZCBuZWVkIHRvIGNoZWNrIHRoZSBoaXN0b3J5Lg0KDQpCdXQg
d2hhdCB3b3VsZCBiZSBoZWxwZnVsIHRvIGhhdmUgYSBkZXRhaWxlZCBzdW1tYXJ5IG9mIHRoZSBp
c3N1ZSwNCnBvaW50ZXJzIHRvIHBhc3QgZGlzY3Vzc2lvbnMgYW5kIGlkZW50aWZ5IHRoZSBUQ1Ag
Y29tbWl0IHdoaWNoIHN0YXJ0ZWQNCmFsbCB0aGlzIGV0Yy4gSSdsbCB0cnkgdG8gZG8gdGhhdCBi
ZWZvcmUgdGhlIE5ldGRldiAyLjIgYnV0IGxldCdzIHNlZSBpZg0KSSBjYW4gbWFrZSBpdC4gSGVs
cCB3aXRoIHRoYXQgaXMgcmVhbGx5IHdlbGNvbWUuDQoNCi0tIA0KS2FsbGUgVmFsbw==