Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Sep 2019 23:36:50 +0000
From:      vm finance <vm.finance2@gmail.com>
To:        Randall Stewart <rrs@netflix.com>
Cc:        Jamie Landeg-Jones <jamie@catflap.org>, Ryan Stone <rysto32@gmail.com>,  freebsd-net <freebsd-net@freebsd.org>
Subject:   Re: BBR patches?
Message-ID:  <CAKy-8=jY6NRfn0xEiAhCnA4r=U1jpyOVu__B8NkFWW9t2UDg4Q@mail.gmail.com>
In-Reply-To: <CAKy-8=jwoV8=gXXUCCMARe4%2BELuqDXuYY=J9Rn7ej0536xTJvQ@mail.gmail.com>
References:  <CAKy-8=jUu=dbp1s7nhYBwgeh%2BiO-XY-YEnh1MJ81aYJoopVonA@mail.gmail.com> <201909091232.x89CWl4b047025@donotpassgo.dyslexicfish.net> <CAKy-8=gZ8E73PZdxb33aN=TmfigcNyTvZP4wP3M-mAy9no-v6w@mail.gmail.com> <CAFMmRNxbX5f3s0ZZk=Epr7Gu7%2Bsjat8F0TV0aX_RwoFgX0s%2ByA@mail.gmail.com> <CAKy-8=g=3LC8u_vc_3_Pfe6pgoUxpvx7N_j=xv7nRaM%2BD1Oz-A@mail.gmail.com> <D35AF884-C631-42CE-ABFD-F4AA76AA6693@netflix.com> <CAKy-8=jSdSFPJWL=cLeea-KSc=9wxR6vQTODibw7-GUh0XpCfw@mail.gmail.com> <27AD43DA-3237-490A-B3A6-C1792F9674E5@netflix.com> <CAKy-8=idqzA0-Trm%2B5gZSQs=vyXrPm40gP3AsbMf_YQj-NEHaA@mail.gmail.com> <CAKy-8=jpGvKU1khALK%2Ba5Ojp7btg7y1W%2BELtTLQaniVNtgBj3g@mail.gmail.com> <AD906F45-B083-476F-952E-3318F36BD828@netflix.com> <BCC20B79-ECEF-4D7C-AA7E-5F8A0869753A@netflix.com> <5B630235-ABC7-4122-9082-F59BCCCDE14A@netflix.com> <CAKy-8=jwoV8=gXXUCCMARe4%2BELuqDXuYY=J9Rn7ej0536xTJvQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--00000000000065de770592cab622
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

My Kernel config is attached here. Thanks!

On Wed, Sep 18, 2019 at 2:26 AM vm finance <vm.finance2@gmail.com> wrote:

> Hi Randall,
>
> Could you please provide a pointer to the latest patch. I had applied the
> one you published Sep-10.
>
> Following is what I have done:
> 1. Picked FreeBSD 12.0 RELEASE VM from osboxes.org
> 2. Got VM up under VMPlayer on x86 laptop
> 3. Checked out latest codebase from freebsd repo:
> svn co svn://svn.freebsd.org/base/head /usr/src*
> cd /usr/src;
> make buildworld buildkernel
> [this is where make fails when patch is applied]
>
> I could try to build with your latest patch - please send me a pointer.
>
> Thanks for your help!
>
>
> On Tue, Sep 17, 2019 at 1:33 PM Randall Stewart <rrs@netflix.com> wrote:
>
>> Looking at your make file log I can=E2=80=99t really tell what you are d=
oing.
>>
>> Its not the BBR or Rack code that is blowing up=E2=80=A6
>>
>> Are you cross compiling?
>>
>> I have done the old fashioned kernel make
>>
>> i.e.
>>
>> cd src/sys/amd64/config
>> config headvm
>> cd ../compile/headvm
>>
>> make cleandepend ; make depend; make -j3
>>
>> I have done
>>
>> cd src
>> make buildkernel KERNCONF=3Dheadvm
>>
>> And even
>>
>> make buildkernel KERNCONF=3DGENERIC
>>
>> to make sure that the build works without bbr.
>>
>> I attach my headvm config..
>>
>> What exactly are you building and how? kernel config too please?
>>
>> R
>>
>>
>>
>>
>> > On Sep 17, 2019, at 1:11 PM, Randall Stewart <rrs@netflix.com> wrote:
>> >
>> > looking
>> >
>> > I was at 352408.. let me update and try it
>> >
>> > R
>> >
>> >> On Sep 17, 2019, at 1:10 PM, Randall Stewart <rrs@netflix.com> wrote:
>> >>
>> >> Hmm
>> >>
>> >> Did you get the patch I updated too this am?
>> >>
>> >> I have built it both with and without the bbr stack and had no issue.=
.
>> there was
>> >> an issue with KTLS before the update though.
>> >>
>> >> I don=E2=80=99t recognize what you have below there though=E2=80=A6
>> >>
>> >> R
>> >>
>> >>> On Sep 17, 2019, at 11:47 AM, vm finance <vm.finance2@gmail.com>
>> wrote:
>> >>>
>> >>> Got it - thank you!
>> >>>
>> >>> btw, I tried to build the patch but its giving an error. Following i=
s
>> SVN info + make error mesg.
>> >>>
>> >>> Please let me know what am I missing here?
>> >>>
>> >>> Thanks!
>> >>>
>> >>> #svnlite revision
>> >>> Path: .
>> >>> Working Copy Root Path: /usr/src
>> >>> URL: svn://svn.freebsd.org/base/head
>> >>> Relative URL: ^/head
>> >>> Repository Root: svn://svn.freebsd.org/base
>> >>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
>> >>> Revision: 352436
>> >>> Node Kind: directory
>> >>> Schedule: normal
>> >>> Last Changed Author: jah
>> >>> Last Changed Rev: 352434
>> >>> Last Changed Date: 2019-09-17 03:39:31 +0000 (Tue, 17 Sep 2019)
>> >>>
>> >>> root@osboxes:/usr/src #
>> >>>
>> >>> -------------------------------------------- snip
>> ----------------------------
>> >>>
>> >>> ad_elf64_obj.llo reloc_elf64.llo disk.llo part.llo vdisk.llo
>> dev_net.llo bcache.llo interp_simple.llo zfs_cmd.llo
>> >>> rm -f .depend .depend.* GPATH GRTAGS GSYMS GTAGS
>> >>> =3D=3D=3D> sys (cleandir)
>> >>> rm -f export_syms machine x86 tcp_bbr.ko tcp_bbr.kld bbr.o
>> sack_filter.o rack_bbr_common.o opt_inet.h opt_inet6.h opt_ipsec.h
>> opt_tcpdebug.h opt_kern_tls.h
>> >>> rm: x86: is a directory
>> >>> *** Error code 1
>> >>>
>> >>> Stop.
>> >>> make[3]: stopped in /usr/src/sys
>> >>> *** Error code 1
>> >>>
>> >>> Stop.
>> >>> make[2]: stopped in /usr/src
>> >>> *** Error code 1
>> >>>
>> >>> Stop.
>> >>> make[1]: stopped in /usr/src
>> >>> *** Error code 1
>> >>>
>> >>> Stop.
>> >>> make: stopped in /usr/src
>> >>>
>> >>>
>> >>> On Tue, Sep 17, 2019 at 6:41 PM vm finance <vm.finance2@gmail.com>
>> wrote:
>> >>> Got it - thank you!
>> >>>
>> >>> btw, I tried to build the patch but its giving an error. Following i=
s
>> SVN info + make error mesg.
>> >>> I have also attached the entire build log...snippet is below
>> >>>
>> >>> Please let me know what am I missing here?
>> >>>
>> >>> Thanks!
>> >>>
>> >>> #svnlite revision
>> >>> Path: .
>> >>> Working Copy Root Path: /usr/src
>> >>> URL: svn://svn.freebsd.org/base/head
>> >>> Relative URL: ^/head
>> >>> Repository Root: svn://svn.freebsd.org/base
>> >>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
>> >>> Revision: 352436
>> >>> Node Kind: directory
>> >>> Schedule: normal
>> >>> Last Changed Author: jah
>> >>> Last Changed Rev: 352434
>> >>> Last Changed Date: 2019-09-17 03:39:31 +0000 (Tue, 17 Sep 2019)
>> >>>
>> >>> root@osboxes:/usr/src #
>> >>>
>> >>> -------------------------------------------- snip
>> ----------------------------
>> >>>
>> >>> ad_elf64_obj.llo reloc_elf64.llo disk.llo part.llo vdisk.llo
>> dev_net.llo bcache.llo interp_simple.llo zfs_cmd.llo
>> >>> rm -f .depend .depend.* GPATH GRTAGS GSYMS GTAGS
>> >>> =3D=3D=3D> sys (cleandir)
>> >>> rm -f export_syms machine x86 tcp_bbr.ko tcp_bbr.kld bbr.o
>> sack_filter.o rack_bbr_common.o opt_inet.h opt_inet6.h opt_ipsec.h
>> opt_tcpdebug.h opt_kern_tls.h
>> >>> rm: x86: is a directory
>> >>> *** Error code 1
>> >>>
>> >>> Stop.
>> >>> make[3]: stopped in /usr/src/sys
>> >>> *** Error code 1
>> >>>
>> >>> Stop.
>> >>> make[2]: stopped in /usr/src
>> >>> *** Error code 1
>> >>>
>> >>> Stop.
>> >>> make[1]: stopped in /usr/src
>> >>> *** Error code 1
>> >>>
>> >>> Stop.
>> >>> make: stopped in /usr/src
>> >>>
>> >>>
>> >>> On Tue, Sep 17, 2019 at 6:27 PM Randall Stewart <rrs@netflix.com>
>> wrote:
>> >>> Pacing is provided by tcp_hpts.c. The current linux patches do not
>> have
>> >>> to have fq.. they built an alternate means of doing pacing into bbr.
>> >>>
>> >>> In either case our testing has shown that our pacing is more accurat=
e
>> than
>> >>> either fq or the internal pacer :)
>> >>>
>> >>> R
>> >>>
>> >>>> On Sep 17, 2019, at 11:05 AM, vm finance <vm.finance2@gmail.com>
>> wrote:
>> >>>>
>> >>>> Thanks Randall.
>> >>>> I was able to apply the patch - now rebuilding the kernel. Would
>> update on how it goes.
>> >>>>
>> >>>> BTW, is there any description on how lack of tc_fq under FreeBSD is
>> compensated here?
>> >>>> The original BBR patches on Linux show that as a must-have? Is that
>> functionality implemented via tcp_ratelimit.[ch]?
>> >>>>
>> >>>> Any pointers to existing presentations/discussions highly
>> appreciated?
>> >>>>
>> >>>> Thanks a lot.
>> >>>>
>> >>>> On Tue, Sep 17, 2019 at 5:39 AM Randall Stewart <rrs@netflix.com>
>> wrote:
>> >>>> You should be able to compile it against the current head. I
>> re-doing that now (had an
>> >>>> issue with my machine and had to roll it back to a backup).
>> >>>>
>> >>>> When I put the patch up on Sept 10th it complied with and without
>> BBR on whatever
>> >>>> was that rev..
>> >>>>
>> >>>> Looking in the commit logs that would have been around 352191
>> >>>>
>> >>>> Hope that helps
>> >>>>
>> >>>> R
>> >>>>
>> >>>>> On Sep 17, 2019, at 3:32 AM, vm finance <vm.finance2@gmail.com>
>> wrote:
>> >>>>>
>> >>>>> Hi Randall,
>> >>>>>
>> >>>>> Thanks for releasing BBR patch:
>> >>>>> https://reviews.freebsd.org/D21582#change-xcAWBif3E9Jq
>> >>>>>
>> >>>>> Could you please let me know what SVN/GIT label tag this is based
>> on? I would like to patch and experiment with it. I couldn't find this i=
nfo
>> in the released patch.
>> >>>>>
>> >>>>> Thanks a lot!
>> >>>>>
>> >>>>> On Tue, Sep 10, 2019 at 10:26 AM Ryan Stone <rysto32@gmail.com>
>> wrote:
>> >>>>> rrs@ has just posted the BBR patch to phabricator:
>> >>>>>
>> >>>>> https://reviews.freebsd.org/D21582
>> >>>>
>> >>>> ------
>> >>>> Randall Stewart
>> >>>> rrs@netflix.com
>> >>>>
>> >>>>
>> >>>>
>> >>>
>> >>> ------
>> >>> Randall Stewart
>> >>> rrs@netflix.com
>> >>>
>> >>>
>> >>>
>> >>
>> >> ------
>> >> Randall Stewart
>> >> rrs@netflix.com
>> >>
>> >>
>> >>
>> >
>> > ------
>> > Randall Stewart
>> > rrs@netflix.com
>> >
>> >
>> >
>>
>> ------
>> Randall Stewart
>> rrs@netflix.com
>>
>>
>>
>>

--00000000000065de770592cab622
Content-Type: application/octet-stream; name=MYKERNEL
Content-Disposition: attachment; filename=MYKERNEL
Content-Transfer-Encoding: base64
Content-ID: <f_k0oh840h0>
X-Attachment-Id: f_k0oh840h0

IwojIEdFTkVSSUMgLS0gR2VuZXJpYyBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGZvciBGcmVl
QlNEL2FtZDY0CiMKIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGZpbGUsIHBsZWFzZSBy
ZWFkIHRoZSBjb25maWcoNSkgbWFudWFsIHBhZ2UsCiMgYW5kL29yIHRoZSBoYW5kYm9vayBzZWN0
aW9uIG9uIEtlcm5lbCBDb25maWd1cmF0aW9uIEZpbGVzOgojCiMgICAgaHR0cHM6Ly93d3cuRnJl
ZUJTRC5vcmcvZG9jL2VuX1VTLklTTzg4NTktMS9ib29rcy9oYW5kYm9vay9rZXJuZWxjb25maWct
Y29uZmlnLmh0bWwKIwojIFRoZSBoYW5kYm9vayBpcyBhbHNvIGF2YWlsYWJsZSBsb2NhbGx5IGlu
IC91c3Ivc2hhcmUvZG9jL2hhbmRib29rCiMgaWYgeW91J3ZlIGluc3RhbGxlZCB0aGUgZG9jIGRp
c3RyaWJ1dGlvbiwgb3RoZXJ3aXNlIGFsd2F5cyBzZWUgdGhlCiMgRnJlZUJTRCBXb3JsZCBXaWRl
IFdlYiBzZXJ2ZXIgKGh0dHBzOi8vd3d3LkZyZWVCU0Qub3JnLykgZm9yIHRoZQojIGxhdGVzdCBp
bmZvcm1hdGlvbi4KIwojIEFuIGV4aGF1c3RpdmUgbGlzdCBvZiBvcHRpb25zIGFuZCBtb3JlIGRl
dGFpbGVkIGV4cGxhbmF0aW9ucyBvZiB0aGUKIyBkZXZpY2UgbGluZXMgaXMgYWxzbyBwcmVzZW50
IGluIHRoZSAuLi8uLi9jb25mL05PVEVTIGFuZCBOT1RFUyBmaWxlcy4KIyBJZiB5b3UgYXJlIGlu
IGRvdWJ0IGFzIHRvIHRoZSBwdXJwb3NlIG9yIG5lY2Vzc2l0eSBvZiBhIGxpbmUsIGNoZWNrIGZp
cnN0CiMgaW4gTk9URVMuCiMKIyAkRnJlZUJTRDogaGVhZC9zeXMvYW1kNjQvY29uZi9HRU5FUklD
IDM0OTI1MyAyMDE5LTA2LTIxIDAwOjE2OjMwWiBjZW0gJAoKY3B1CQlIQU1NRVIKaWRlbnQJCUdF
TkVSSUMKCm1ha2VvcHRpb25zCURFQlVHPS1nCQkjIEJ1aWxkIGtlcm5lbCB3aXRoIGdkYigxKSBk
ZWJ1ZyBzeW1ib2xzCm1ha2VvcHRpb25zCVdJVEhfQ1RGPTEJCSMgUnVuIGN0ZmNvbnZlcnQoMSkg
Zm9yIERUcmFjZSBzdXBwb3J0CgpvcHRpb25zIAlTQ0hFRF9VTEUJCSMgVUxFIHNjaGVkdWxlcgpv
cHRpb25zIAlOVU1BCQkJIyBOb24tVW5pZm9ybSBNZW1vcnkgQXJjaGl0ZWN0dXJlIHN1cHBvcnQK
b3B0aW9ucyAJUFJFRU1QVElPTgkJIyBFbmFibGUga2VybmVsIHRocmVhZCBwcmVlbXB0aW9uCm9w
dGlvbnMgCVZJTUFHRQkJCSMgU3Vic3lzdGVtIHZpcnR1YWxpemF0aW9uLCBlLmcuIFZORVQKb3B0
aW9ucyAJSU5FVAkJCSMgSW50ZXJORVR3b3JraW5nCm9wdGlvbnMgCUlORVQ2CQkJIyBJUHY2IGNv
bW11bmljYXRpb25zIHByb3RvY29scwpvcHRpb25zIAlJUFNFQ19TVVBQT1JUCQkjIEFsbG93IGts
ZGxvYWQgb2YgaXBzZWMgYW5kIHRjcG1kNQpvcHRpb25zIAlUQ1BfT0ZGTE9BRAkJIyBUQ1Agb2Zm
bG9hZApvcHRpb25zIAlUQ1BfQkxBQ0tCT1gJCSMgRW5oYW5jZWQgVENQIGV2ZW50IGxvZ2dpbmcK
b3B0aW9ucyAJVENQX0hIT09LCQkjIGhob29rKDkpIGZyYW1ld29yayBmb3IgVENQCm9wdGlvbnMJ
CVRDUF9SRkM3NDEzCQkjIFRDUCBGYXN0IE9wZW4Kb3B0aW9ucyAJU0NUUAkJCSMgU3RyZWFtIENv
bnRyb2wgVHJhbnNtaXNzaW9uIFByb3RvY29sCm9wdGlvbnMgCUZGUwkJCSMgQmVya2VsZXkgRmFz
dCBGaWxlc3lzdGVtCm9wdGlvbnMgCVNPRlRVUERBVEVTCQkjIEVuYWJsZSBGRlMgc29mdCB1cGRh
dGVzIHN1cHBvcnQKb3B0aW9ucyAJVUZTX0FDTAkJCSMgU3VwcG9ydCBmb3IgYWNjZXNzIGNvbnRy
b2wgbGlzdHMKb3B0aW9ucyAJVUZTX0RJUkhBU0gJCSMgSW1wcm92ZSBwZXJmb3JtYW5jZSBvbiBi
aWcgZGlyZWN0b3JpZXMKb3B0aW9ucyAJVUZTX0dKT1VSTkFMCQkjIEVuYWJsZSBnam91cm5hbC1i
YXNlZCBVRlMgam91cm5hbGluZwpvcHRpb25zIAlRVU9UQQkJCSMgRW5hYmxlIGRpc2sgcXVvdGFz
IGZvciBVRlMKb3B0aW9ucyAJTURfUk9PVAkJCSMgTUQgaXMgYSBwb3RlbnRpYWwgcm9vdCBkZXZp
Y2UKb3B0aW9ucyAJTkZTQ0wJCQkjIE5ldHdvcmsgRmlsZXN5c3RlbSBDbGllbnQKb3B0aW9ucyAJ
TkZTRAkJCSMgTmV0d29yayBGaWxlc3lzdGVtIFNlcnZlcgpvcHRpb25zIAlORlNMT0NLRAkJIyBO
ZXR3b3JrIExvY2sgTWFuYWdlcgpvcHRpb25zIAlORlNfUk9PVAkJIyBORlMgdXNhYmxlIGFzIC8s
IHJlcXVpcmVzIE5GU0NMCm9wdGlvbnMgCU1TRE9TRlMJCQkjIE1TRE9TIEZpbGVzeXN0ZW0Kb3B0
aW9ucyAJQ0Q5NjYwCQkJIyBJU08gOTY2MCBGaWxlc3lzdGVtCm9wdGlvbnMgCVBST0NGUwkJCSMg
UHJvY2VzcyBmaWxlc3lzdGVtIChyZXF1aXJlcyBQU0VVRE9GUykKb3B0aW9ucyAJUFNFVURPRlMJ
CSMgUHNldWRvLWZpbGVzeXN0ZW0gZnJhbWV3b3JrCm9wdGlvbnMgCUdFT01fUkFJRAkJIyBTb2Z0
IFJBSUQgZnVuY3Rpb25hbGl0eS4Kb3B0aW9ucyAJR0VPTV9MQUJFTAkJIyBQcm92aWRlcyBsYWJl
bGl6YXRpb24Kb3B0aW9ucyAJRUZJUlQJCQkjIEVGSSBSdW50aW1lIFNlcnZpY2VzIHN1cHBvcnQK
b3B0aW9ucyAJQ09NUEFUX0ZSRUVCU0QzMgkjIENvbXBhdGlibGUgd2l0aCBpMzg2IGJpbmFyaWVz
Cm9wdGlvbnMgCUNPTVBBVF9GUkVFQlNENAkJIyBDb21wYXRpYmxlIHdpdGggRnJlZUJTRDQKb3B0
aW9ucyAJQ09NUEFUX0ZSRUVCU0Q1CQkjIENvbXBhdGlibGUgd2l0aCBGcmVlQlNENQpvcHRpb25z
IAlDT01QQVRfRlJFRUJTRDYJCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0Q2Cm9wdGlvbnMgCUNP
TVBBVF9GUkVFQlNENwkJIyBDb21wYXRpYmxlIHdpdGggRnJlZUJTRDcKb3B0aW9ucyAJQ09NUEFU
X0ZSRUVCU0Q5CQkjIENvbXBhdGlibGUgd2l0aCBGcmVlQlNEOQpvcHRpb25zIAlDT01QQVRfRlJF
RUJTRDEwCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0QxMApvcHRpb25zIAlDT01QQVRfRlJFRUJT
RDExCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0QxMQpvcHRpb25zIAlDT01QQVRfRlJFRUJTRDEy
CSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0QxMgpvcHRpb25zIAlTQ1NJX0RFTEFZPTUwMDAJCSMg
RGVsYXkgKGluIG1zKSBiZWZvcmUgcHJvYmluZyBTQ1NJCm9wdGlvbnMgCUtUUkFDRQkJCSMga3Ry
YWNlKDEpIHN1cHBvcnQKb3B0aW9ucyAJU1RBQ0sJCQkjIHN0YWNrKDkpIHN1cHBvcnQKb3B0aW9u
cyAJU1lTVlNITQkJCSMgU1lTVi1zdHlsZSBzaGFyZWQgbWVtb3J5Cm9wdGlvbnMgCVNZU1ZNU0cJ
CQkjIFNZU1Ytc3R5bGUgbWVzc2FnZSBxdWV1ZXMKb3B0aW9ucyAJU1lTVlNFTQkJCSMgU1lTVi1z
dHlsZSBzZW1hcGhvcmVzCm9wdGlvbnMgCV9LUE9TSVhfUFJJT1JJVFlfU0NIRURVTElORyAjIFBP
U0lYIFAxMDAzXzFCIHJlYWwtdGltZSBleHRlbnNpb25zCm9wdGlvbnMgCVBSSU5URl9CVUZSX1NJ
WkU9MTI4CSMgUHJldmVudCBwcmludGYgb3V0cHV0IGJlaW5nIGludGVyc3BlcnNlZC4Kb3B0aW9u
cyAJS0JEX0lOU1RBTExfQ0RFVgkjIGluc3RhbGwgYSBDREVWIGVudHJ5IGluIC9kZXYKb3B0aW9u
cyAJSFdQTUNfSE9PS1MJCSMgTmVjZXNzYXJ5IGtlcm5lbCBob29rcyBmb3IgaHdwbWMoNCkKb3B0
aW9ucyAJQVVESVQJCQkjIFNlY3VyaXR5IGV2ZW50IGF1ZGl0aW5nCm9wdGlvbnMgCUNBUEFCSUxJ
VFlfTU9ERQkJIyBDYXBzaWN1bSBjYXBhYmlsaXR5IG1vZGUKb3B0aW9ucyAJQ0FQQUJJTElUSUVT
CQkjIENhcHNpY3VtIGNhcGFiaWxpdGllcwpvcHRpb25zIAlNQUMJCQkjIFRydXN0ZWRCU0QgTUFD
IEZyYW1ld29yawpvcHRpb25zIAlLRFRSQUNFX0ZSQU1FCQkjIEVuc3VyZSBmcmFtZXMgYXJlIGNv
bXBpbGVkIGluCm9wdGlvbnMgCUtEVFJBQ0VfSE9PS1MJCSMgS2VybmVsIERUcmFjZSBob29rcwpv
cHRpb25zIAlEREJfQ1RGCQkJIyBLZXJuZWwgRUxGIGxpbmtlciBsb2FkcyBDVEYgZGF0YQpvcHRp
b25zIAlJTkNMVURFX0NPTkZJR19GSUxFCSMgSW5jbHVkZSB0aGlzIGZpbGUgaW4ga2VybmVsCm9w
dGlvbnMgCVJBQ0NUCQkJIyBSZXNvdXJjZSBhY2NvdW50aW5nIGZyYW1ld29yawpvcHRpb25zIAlS
QUNDVF9ERUZBVUxUX1RPX0RJU0FCTEVEICMgU2V0IGtlcm4ucmFjY3QuZW5hYmxlPTAgYnkgZGVm
YXVsdApvcHRpb25zIAlSQ1RMCQkJIyBSZXNvdXJjZSBsaW1pdHMKCiMgRGVidWdnaW5nIHN1cHBv
cnQuICBBbHdheXMgbmVlZCB0aGlzOgpvcHRpb25zIAlLREIJCQkjIEVuYWJsZSBrZXJuZWwgZGVi
dWdnZXIgc3VwcG9ydC4Kb3B0aW9ucyAJS0RCX1RSQUNFCQkjIFByaW50IGEgc3RhY2sgdHJhY2Ug
Zm9yIGEgcGFuaWMuCiMgRm9yIGZ1bGwgZGVidWdnZXIgc3VwcG9ydCB1c2UgKHR1cm4gb2ZmIGlu
IHN0YWJsZSBicmFuY2gpOgpvcHRpb25zIAlCVUZfVFJBQ0tJTkcJCSMgVHJhY2sgYnVmZmVyIGhp
c3RvcnkKb3B0aW9ucyAJRERCCQkJIyBTdXBwb3J0IEREQi4Kb3B0aW9ucyAJRlVMTF9CVUZfVFJB
Q0tJTkcJIyBUcmFjayBtb3JlIGJ1ZmZlciBoaXN0b3J5Cm9wdGlvbnMgCUdEQgkJCSMgU3VwcG9y
dCByZW1vdGUgR0RCLgpvcHRpb25zIAlERUFETEtSRVMJCSMgRW5hYmxlIHRoZSBkZWFkbG9jayBy
ZXNvbHZlcgpvcHRpb25zIAlJTlZBUklBTlRTCQkjIEVuYWJsZSBjYWxscyBvZiBleHRyYSBzYW5p
dHkgY2hlY2tpbmcKb3B0aW9ucyAJSU5WQVJJQU5UX1NVUFBPUlQJIyBFeHRyYSBzYW5pdHkgY2hl
Y2tzIG9mIGludGVybmFsIHN0cnVjdHVyZXMsIHJlcXVpcmVkIGJ5IElOVkFSSUFOVFMKb3B0aW9u
cyAJV0lUTkVTUwkJCSMgRW5hYmxlIGNoZWNrcyB0byBkZXRlY3QgZGVhZGxvY2tzIGFuZCBjeWNs
ZXMKb3B0aW9ucyAJV0lUTkVTU19TS0lQU1BJTgkjIERvbid0IHJ1biB3aXRuZXNzIG9uIHNwaW5s
b2NrcyBmb3Igc3BlZWQKb3B0aW9ucyAJTUFMTE9DX0RFQlVHX01BWFpPTkVTPTgJIyBTZXBhcmF0
ZSBtYWxsb2MoOSkgem9uZXMKb3B0aW9ucyAJVkVSQk9TRV9TWVNJTklUPTAJIyBTdXBwb3J0IGRl
YnVnLnZlcmJvc2Vfc3lzaW5pdCwgb2ZmIGJ5IGRlZmF1bHQKCiMgS2VybmVsIFNhbml0aXplcnMK
I29wdGlvbnMgCUNPVkVSQUdFCQkjIEdlbmVyaWMga2VybmVsIGNvdmVyYWdlLiBVc2VkIGJ5IEtD
T1YKI29wdGlvbnMgCUtDT1YJCQkjIEtlcm5lbCBDb3ZlcmFnZSBTYW5pdGl6ZXIKIyBXYXJuaW5n
OiBLVUJTQU4gY2FuIHJlc3VsdCBpbiBhIGtlcm5lbCB0b28gbGFyZ2UgZm9yIGxvYWRlciB0byBs
b2FkCiNvcHRpb25zIAlLVUJTQU4JCQkjIEtlcm5lbCBVbmRlZmluZWQgQmVoYXZpb3IgU2FuaXRp
emVyCgojIEtlcm5lbCBkdW1wIGZlYXR1cmVzLgpvcHRpb25zIAlFS0NECQkJIyBTdXBwb3J0IGZv
ciBlbmNyeXB0ZWQga2VybmVsIGR1bXBzCm9wdGlvbnMgCUdaSU8JCQkjIGd6aXAtY29tcHJlc3Nl
ZCBrZXJuZWwgYW5kIHVzZXIgZHVtcHMKb3B0aW9ucyAJWlNURElPCQkJIyB6c3RkLWNvbXByZXNz
ZWQga2VybmVsIGFuZCB1c2VyIGR1bXBzCm9wdGlvbnMgCU5FVERVTVAJCQkjIG5ldGR1bXAoNCkg
Y2xpZW50IHN1cHBvcnQKCiMgTWFrZSBhbiBTTVAtY2FwYWJsZSBrZXJuZWwgYnkgZGVmYXVsdApv
cHRpb25zIAlTTVAJCQkjIFN5bW1ldHJpYyBNdWx0aVByb2Nlc3NvciBLZXJuZWwKb3B0aW9ucyAJ
RUFSTFlfQVBfU1RBUlRVUAoKIyBDUFUgZnJlcXVlbmN5IGNvbnRyb2wKZGV2aWNlCQljcHVmcmVx
CgojIEJ1cyBzdXBwb3J0LgpkZXZpY2UJCWFjcGkKb3B0aW9ucyAJQUNQSV9ETUFSCmRldmljZQkJ
cGNpCm9wdGlvbnMgCVBDSV9IUAkJCSMgUENJLUV4cHJlc3MgbmF0aXZlIEhvdFBsdWcKb3B0aW9u
cwkJUENJX0lPVgkJCSMgUENJIFNSLUlPViBzdXBwb3J0CgojIEZsb3BweSBkcml2ZXMKZGV2aWNl
CQlmZGMKCiMgQVRBIGNvbnRyb2xsZXJzCmRldmljZQkJYWhjaQkJCSMgQUhDSS1jb21wYXRpYmxl
IFNBVEEgY29udHJvbGxlcnMKZGV2aWNlCQlhdGEJCQkjIExlZ2FjeSBBVEEvU0FUQSBjb250cm9s
bGVycwpkZXZpY2UJCW12cwkJCSMgTWFydmVsbCA4OFNYNTBYWC84OFNYNjBYWC84OFNYNzBYWC9T
b0MgU0FUQQpkZXZpY2UJCXNpaXMJCQkjIFNpbGljb25JbWFnZSBTaUkzMTI0L1NpSTMxMzIvU2lJ
MzUzMSBTQVRBCgojIFNDU0kgQ29udHJvbGxlcnMKZGV2aWNlCQlhaGMJCQkjIEFIQTI5NDAgYW5k
IG9uYm9hcmQgQUlDN3h4eCBkZXZpY2VzCmRldmljZQkJYWhkCQkJIyBBSEEzOTMyMC8yOTMyMCBh
bmQgb25ib2FyZCBBSUM3OXh4IGRldmljZXMKZGV2aWNlCQllc3AJCQkjIEFNRCBBbTUzQzk3NCAo
VGVrcmFtIERDLTM5MChUKSkKZGV2aWNlCQlocHRpb3AJCQkjIEhpZ2hwb2ludCBSb2NrZXRSYWlk
IDN4eHggc2VyaWVzCmRldmljZQkJaXNwCQkJIyBRbG9naWMgZmFtaWx5CiNkZXZpY2UJCWlzcGZ3
CQkJIyBGaXJtd2FyZSBmb3IgUUxvZ2ljIEhCQXMtIG5vcm1hbGx5IGEgbW9kdWxlCmRldmljZQkJ
bXB0CQkJIyBMU0ktTG9naWMgTVBULUZ1c2lvbgpkZXZpY2UJCW1wcwkJCSMgTFNJLUxvZ2ljIE1Q
VC1GdXNpb24gMgpkZXZpY2UJCW1wcgkJCSMgTFNJLUxvZ2ljIE1QVC1GdXNpb24gMwpkZXZpY2UJ
CXN5bQkJCSMgTkNSL1N5bWJpb3MgTG9naWMKZGV2aWNlCQl0cm0JCQkjIFRla3JhbSBEQzM5NVUv
VVcvRiBEQzMxNVUgYWRhcHRlcnMKZGV2aWNlCQlpc2NpCQkJIyBJbnRlbCBDNjAwIFNBUyBjb250
cm9sbGVyCmRldmljZQkJb2NzX2ZjCQkJIyBFbXVsZXggRkMgYWRhcHRlcnMKCiMgQVRBL1NDU0kg
cGVyaXBoZXJhbHMKZGV2aWNlCQlzY2J1cwkJCSMgU0NTSSBidXMgKHJlcXVpcmVkIGZvciBBVEEv
U0NTSSkKZGV2aWNlCQljaAkJCSMgU0NTSSBtZWRpYSBjaGFuZ2VycwpkZXZpY2UJCWRhCQkJIyBE
aXJlY3QgQWNjZXNzIChkaXNrcykKZGV2aWNlCQlzYQkJCSMgU2VxdWVudGlhbCBBY2Nlc3MgKHRh
cGUgZXRjKQpkZXZpY2UJCWNkCQkJIyBDRApkZXZpY2UJCXBhc3MJCQkjIFBhc3N0aHJvdWdoIGRl
dmljZSAoZGlyZWN0IEFUQS9TQ1NJIGFjY2VzcykKZGV2aWNlCQlzZXMJCQkjIEVuY2xvc3VyZSBT
ZXJ2aWNlcyAoU0VTIGFuZCBTQUYtVEUpCiNkZXZpY2UJCWN0bAkJCSMgQ0FNIFRhcmdldCBMYXll
cgoKIyBSQUlEIGNvbnRyb2xsZXJzIGludGVyZmFjZWQgdG8gdGhlIFNDU0kgc3Vic3lzdGVtCmRl
dmljZQkJYW1yCQkJIyBBTUkgTWVnYVJBSUQKZGV2aWNlCQlhcmNtc3IJCQkjIEFyZWNhIFNBVEEg
SUkgUkFJRApkZXZpY2UJCWNpc3MJCQkjIENvbXBhcSBTbWFydCBSQUlEIDUqCmRldmljZQkJaHB0
bXYJCQkjIEhpZ2hwb2ludCBSb2NrZXRSQUlEIDE4MngKZGV2aWNlCQlocHRucgkJCSMgSGlnaHBv
aW50IERDNzI4MCwgUjc1MApkZXZpY2UJCWhwdHJyCQkJIyBIaWdocG9pbnQgUm9ja2V0UkFJRCAx
N3h4LCAyMnh4LCAyM3h4LCAyNXh4CmRldmljZQkJaHB0Mjd4eAkJCSMgSGlnaHBvaW50IFJvY2tl
dFJBSUQgMjd4eApkZXZpY2UJCWlpcgkJCSMgSW50ZWwgSW50ZWdyYXRlZCBSQUlECmRldmljZQkJ
aXBzCQkJIyBJQk0gKEFkYXB0ZWMpIFNlcnZlUkFJRApkZXZpY2UJCW1seQkJCSMgTXlsZXggQWNj
ZWxlUkFJRC9lWHRyZW1lUkFJRApkZXZpY2UJCXR3YQkJCSMgM3dhcmUgOTAwMCBzZXJpZXMgUEFU
QS9TQVRBIFJBSUQKZGV2aWNlCQlzbWFydHBxaQkJIyBNaWNyb3NlbWkgc21hcnRwcWkgZHJpdmVy
CmRldmljZQkJdHdzCQkJIyBMU0kgM3dhcmUgOTc1MCBTQVRBK1NBUyA2R2IvcyBSQUlEIGNvbnRy
b2xsZXIKCiMgUkFJRCBjb250cm9sbGVycwpkZXZpY2UJCWFhYwkJCSMgQWRhcHRlYyBGU0EgUkFJ
RApkZXZpY2UJCWFhY3AJCQkjIFNDU0kgcGFzc3Rocm91Z2ggZm9yIGFhYyAocmVxdWlyZXMgQ0FN
KQpkZXZpY2UJCWFhY3JhaWQJCQkjIEFkYXB0ZWMgYnkgUE1DIFJBSUQKZGV2aWNlCQlpZGEJCQkj
IENvbXBhcSBTbWFydCBSQUlECmRldmljZQkJbWZpCQkJIyBMU0kgTWVnYVJBSUQgU0FTCmRldmlj
ZQkJbWx4CQkJIyBNeWxleCBEQUM5NjAgZmFtaWx5CmRldmljZQkJbXJzYXMJCQkjIExTSS9BdmFn
byBNZWdhUkFJRCBTQVMvU0FUQSwgNkdiL3MgYW5kIDEyR2IvcwpkZXZpY2UJCXBtc3BjdgkJCSMg
UE1DLVNpZXJyYSBTQVMvU0FUQSBDb250cm9sbGVyIGRyaXZlcgojWFhYIHBvaW50ZXIvaW50IHdh
cm5pbmdzCiNkZXZpY2UJCXBzdAkJCSMgUHJvbWlzZSBTdXBlcnRyYWsgU1g2MDAwCmRldmljZQkJ
dHdlCQkJIyAzd2FyZSBBVEEgUkFJRAoKIyBOVk0gRXhwcmVzcyAoTlZNZSkgc3VwcG9ydApkZXZp
Y2UJCW52bWUJCQkjIGJhc2UgTlZNZSBkcml2ZXIKZGV2aWNlCQludmQJCQkjIGV4cG9zZSBOVk1l
IG5hbWVzcGFjZXMgYXMgZGlza3MsIGRlcGVuZHMgb24gbnZtZQoKIyBhdGtiZGMwIGNvbnRyb2xz
IGJvdGggdGhlIGtleWJvYXJkIGFuZCB0aGUgUFMvMiBtb3VzZQpkZXZpY2UJCWF0a2JkYwkJCSMg
QVQga2V5Ym9hcmQgY29udHJvbGxlcgpkZXZpY2UJCWF0a2JkCQkJIyBBVCBrZXlib2FyZApkZXZp
Y2UJCXBzbQkJCSMgUFMvMiBtb3VzZQoKZGV2aWNlCQlrYmRtdXgJCQkjIGtleWJvYXJkIG11bHRp
cGxleGVyCgpkZXZpY2UJCXZnYQkJCSMgVkdBIHZpZGVvIGNhcmQgZHJpdmVyCm9wdGlvbnMgCVZF
U0EJCQkjIEFkZCBzdXBwb3J0IGZvciBWRVNBIEJJT1MgRXh0ZW5zaW9ucyAoVkJFKQoKZGV2aWNl
CQlzcGxhc2gJCQkjIFNwbGFzaCBzY3JlZW4gYW5kIHNjcmVlbiBzYXZlciBzdXBwb3J0CgojIHN5
c2NvbnMgaXMgdGhlIGRlZmF1bHQgY29uc29sZSBkcml2ZXIsIHJlc2VtYmxpbmcgYW4gU0NPIGNv
bnNvbGUKZGV2aWNlCQlzYwpvcHRpb25zIAlTQ19QSVhFTF9NT0RFCQkjIGFkZCBzdXBwb3J0IGZv
ciB0aGUgcmFzdGVyIHRleHQgbW9kZQoKIyB2dCBpcyB0aGUgbmV3IHZpZGVvIGNvbnNvbGUgZHJp
dmVyCmRldmljZQkJdnQKZGV2aWNlCQl2dF92Z2EKZGV2aWNlCQl2dF9lZmlmYgoKZGV2aWNlCQlh
Z3AJCQkjIHN1cHBvcnQgc2V2ZXJhbCBBR1AgY2hpcHNldHMKCiMgUENDQVJEIChQQ01DSUEpIHN1
cHBvcnQKIyBQQ01DSUEgYW5kIGNhcmRidXMgYnJpZGdlIHN1cHBvcnQKZGV2aWNlCQljYmIJCQkj
IGNhcmRidXMgKHllbnRhKSBicmlkZ2UKZGV2aWNlCQlwY2NhcmQJCQkjIFBDIENhcmQgKDE2LWJp
dCkgYnVzCmRldmljZQkJY2FyZGJ1cwkJCSMgQ2FyZEJ1cyAoMzItYml0KSBidXMKCiMgU2VyaWFs
IChDT00pIHBvcnRzCmRldmljZQkJdWFydAkJCSMgR2VuZXJpYyBVQVJUIGRyaXZlcgoKIyBQYXJh
bGxlbCBwb3J0CmRldmljZQkJcHBjCmRldmljZQkJcHBidXMJCQkjIFBhcmFsbGVsIHBvcnQgYnVz
IChyZXF1aXJlZCkKZGV2aWNlCQlscHQJCQkjIFByaW50ZXIKZGV2aWNlCQlwcGkJCQkjIFBhcmFs
bGVsIHBvcnQgaW50ZXJmYWNlIGRldmljZQojZGV2aWNlCQl2cG8JCQkjIFJlcXVpcmVzIHNjYnVz
IGFuZCBkYQoKZGV2aWNlCQlwdWMJCQkjIE11bHRpIEkvTyBjYXJkcyBhbmQgbXVsdGktY2hhbm5l
bCBVQVJUcwoKIyBQQ0kvUENJLVgvUENJZSBFdGhlcm5ldCBOSUNzIHRoYXQgdXNlIGlmbGliIGlu
ZnJhc3RydWN0dXJlCmRldmljZQkJaWZsaWIKZGV2aWNlCQllbQkJCSMgSW50ZWwgUFJPLzEwMDAg
R2lnYWJpdCBFdGhlcm5ldCBGYW1pbHkKZGV2aWNlCQlpeAkJCSMgSW50ZWwgUFJPLzEwR2JFIFBD
SUUgUEYgRXRoZXJuZXQKZGV2aWNlCQlpeHYJCQkjIEludGVsIFBSTy8xMEdiRSBQQ0lFIFZGIEV0
aGVybmV0CmRldmljZQkJaXhsCQkJIyBJbnRlbCA3MDAgU2VyaWVzIFBoeXNpY2FsIEZ1bmN0aW9u
CmRldmljZQkJaWF2ZgkJCSMgSW50ZWwgQWRhcHRpdmUgVmlydHVhbCBGdW5jdGlvbgpkZXZpY2UJ
CXZteAkJCSMgVk13YXJlIFZNWE5FVDMgRXRoZXJuZXQKCiMgUENJIEV0aGVybmV0IE5JQ3MuCmRl
dmljZQkJYnhlCQkJIyBCcm9hZGNvbSBOZXRYdHJlbWUgSUkgQkNNNTc3MVgvQkNNNTc4WFggMTBH
YkUKZGV2aWNlCQlsZQkJCSMgQU1EIEFtNzkwMCBMQU5DRSBhbmQgQW03OUM5eHggUENuZXQKZGV2
aWNlCQl0aQkJCSMgQWx0ZW9uIE5ldHdvcmtzIFRpZ29uIEkvSUkgZ2lnYWJpdCBFdGhlcm5ldAoK
IyBQQ0kgRXRoZXJuZXQgTklDcyB0aGF0IHVzZSB0aGUgY29tbW9uIE1JSSBidXMgY29udHJvbGxl
ciBjb2RlLgojIE5PVEU6IEJlIHN1cmUgdG8ga2VlcCB0aGUgJ2RldmljZSBtaWlidXMnIGxpbmUg
aW4gb3JkZXIgdG8gdXNlIHRoZXNlIE5JQ3MhCmRldmljZQkJbWlpYnVzCQkJIyBNSUkgYnVzIHN1
cHBvcnQKZGV2aWNlCQlhZQkJCSMgQXR0YW5zaWMvQXRoZXJvcyBMMiBGYXN0RXRoZXJuZXQKZGV2
aWNlCQlhZ2UJCQkjIEF0dGFuc2ljL0F0aGVyb3MgTDEgR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJ
CWFsYwkJCSMgQXRoZXJvcyBBUjgxMzEvQVI4MTMyIEV0aGVybmV0CmRldmljZQkJYWxlCQkJIyBB
dGhlcm9zIEFSODEyMS9BUjgxMTMvQVI4MTE0IEV0aGVybmV0CmRldmljZQkJYmNlCQkJIyBCcm9h
ZGNvbSBCQ001NzA2L0JDTTU3MDggR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCWJmZQkJCSMgQnJv
YWRjb20gQkNNNDQweCAxMC8xMDAgRXRoZXJuZXQKZGV2aWNlCQliZ2UJCQkjIEJyb2FkY29tIEJD
TTU3MHh4IEdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQljYXMJCQkjIFN1biBDYXNzaW5pL0Nhc3Np
bmkrIGFuZCBOUyBEUDgzMDY1IFNhdHVybgpkZXZpY2UJCWRjCQkJIyBERUMvSW50ZWwgMjExNDMg
YW5kIHZhcmlvdXMgd29ya2FsaWtlcwpkZXZpY2UJCWV0CQkJIyBBZ2VyZSBFVDEzMTAgMTAvMTAw
L0dpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQlmeHAJCQkjIEludGVsIEV0aGVyRXhwcmVzcyBQUk8v
MTAwQiAoODI1NTcsIDgyNTU4KQpkZXZpY2UJCWdlbQkJCSMgU3VuIEdFTS9TdW4gRVJJL0FwcGxl
IEdNQUMKZGV2aWNlCQlobWUJCQkjIFN1biBITUUgKEhhcHB5IE1lYWwgRXRoZXJuZXQpCmRldmlj
ZQkJam1lCQkJIyBKTWljcm9uIEpNQzI1MCBHaWdhYml0L0pNQzI2MCBGYXN0IEV0aGVybmV0CmRl
dmljZQkJbGdlCQkJIyBMZXZlbCAxIExYVDEwMDEgZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCW1z
awkJCSMgTWFydmVsbC9TeXNLb25uZWN0IFl1a29uIElJIEdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNl
CQluZmUJCQkjIG5WaWRpYSBuRm9yY2UgTUNQIG9uLWJvYXJkIEV0aGVybmV0CmRldmljZQkJbmdl
CQkJIyBOYXRTZW1pIERQODM4MjAgZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCXJlCQkJIyBSZWFs
VGVrIDgxMzlDKy84MTY5LzgxNjlTLzgxMTBTCmRldmljZQkJcmwJCQkjIFJlYWxUZWsgODEyOS84
MTM5CmRldmljZQkJc2dlCQkJIyBTaWxpY29uIEludGVncmF0ZWQgU3lzdGVtcyBTaVMxOTAvMTkx
CmRldmljZQkJc2lzCQkJIyBTaWxpY29uIEludGVncmF0ZWQgU3lzdGVtcyBTaVMgOTAwL1NpUyA3
MDE2CmRldmljZQkJc2sJCQkjIFN5c0tvbm5lY3QgU0stOTg0eCAmIFNLLTk4MnggZ2lnYWJpdCBF
dGhlcm5ldApkZXZpY2UJCXN0ZQkJCSMgU3VuZGFuY2UgU1QyMDEgKEQtTGluayBERkUtNTUwVFgp
CmRldmljZQkJc3RnZQkJCSMgU3VuZGFuY2UvVGFtYXJhY2sgVEM5MDIxIGdpZ2FiaXQgRXRoZXJu
ZXQKZGV2aWNlCQl2Z2UJCQkjIFZJQSBWVDYxMnggZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCXZy
CQkJIyBWSUEgUmhpbmUsIFJoaW5lIElJCmRldmljZQkJeGwJCQkjIDNDb20gM2M5MHggKGBgQm9v
bWVyYW5nJycsIGBgQ3ljbG9uZScnKQoKIyBXaXJlbGVzcyBOSUMgY2FyZHMKZGV2aWNlCQl3bGFu
CQkJIyA4MDIuMTEgc3VwcG9ydApvcHRpb25zIAlJRUVFODAyMTFfREVCVUcJCSMgZW5hYmxlIGRl
YnVnIG1zZ3MKb3B0aW9ucyAJSUVFRTgwMjExX1NVUFBPUlRfTUVTSAkjIGVuYWJsZSA4MDIuMTFz
IGRyYWZ0IHN1cHBvcnQKZGV2aWNlCQl3bGFuX3dlcAkJIyA4MDIuMTEgV0VQIHN1cHBvcnQKZGV2
aWNlCQl3bGFuX2NjbXAJCSMgODAyLjExIENDTVAgc3VwcG9ydApkZXZpY2UJCXdsYW5fdGtpcAkJ
IyA4MDIuMTEgVEtJUCBzdXBwb3J0CmRldmljZQkJd2xhbl9hbXJyCQkjIEFNUlIgdHJhbnNtaXQg
cmF0ZSBjb250cm9sIGFsZ29yaXRobQpkZXZpY2UJCWFuCQkJIyBBaXJvbmV0IDQ1MDAvNDgwMCA4
MDIuMTEgd2lyZWxlc3MgTklDcy4KZGV2aWNlCQlhdGgJCQkjIEF0aGVyb3MgTklDcwpkZXZpY2UJ
CWF0aF9wY2kJCQkjIEF0aGVyb3MgcGNpL2NhcmRidXMgZ2x1ZQpkZXZpY2UJCWF0aF9oYWwJCQkj
IHBjaS9jYXJkYnVzIGNoaXAgc3VwcG9ydApvcHRpb25zIAlBSF9BUjU0MTZfSU5URVJSVVBUX01J
VElHQVRJT04gIyBBUjU0MTYgaW50ZXJydXB0IG1pdGlnYXRpb24Kb3B0aW9ucyAJQVRIX0VOQUJM
RV8xMU4JCSMgRW5hYmxlIDgwMi4xMW4gc3VwcG9ydCBmb3IgQVI1NDE2IGFuZCBsYXRlcgpkZXZp
Y2UJCWF0aF9yYXRlX3NhbXBsZQkJIyBTYW1wbGVSYXRlIHR4IHJhdGUgY29udHJvbCBmb3IgYXRo
CiNkZXZpY2UJCWJ3aQkJCSMgQnJvYWRjb20gQkNNNDMweC9CQ000MzF4IHdpcmVsZXNzIE5JQ3Mu
CiNkZXZpY2UJCWJ3bgkJCSMgQnJvYWRjb20gQkNNNDN4eCB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJ
CWlwdwkJCSMgSW50ZWwgMjEwMCB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCWl3aQkJCSMgSW50ZWwg
MjIwMEJHLzIyMjVCRy8yOTE1QUJHIHdpcmVsZXNzIE5JQ3MuCmRldmljZQkJaXduCQkJIyBJbnRl
bCA0OTY1LzEwMDAvNTAwMC82MDAwIHdpcmVsZXNzIE5JQ3MuCmRldmljZQkJbWFsbwkJCSMgTWFy
dmVsbCBMaWJlcnRhcyB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCW13bAkJCSMgTWFydmVsbCA4OFc4
MzYzIDgwMi4xMW4gd2lyZWxlc3MgTklDcy4KZGV2aWNlCQlyYWwJCQkjIFJhbGluayBUZWNobm9s
b2d5IFJUMjUwMCB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCXdpCQkJIyBXYXZlTEFOL0ludGVyc2ls
L1N5bWJvbCA4MDIuMTEgd2lyZWxlc3MgTklDcy4KZGV2aWNlCQl3cGkJCQkjIEludGVsIDM5NDVB
Qkcgd2lyZWxlc3MgTklDcy4KCiMgUHNldWRvIGRldmljZXMuCmRldmljZQkJY3J5cHRvCQkJIyBj
b3JlIGNyeXB0byBzdXBwb3J0CmRldmljZQkJbG9vcAkJCSMgTmV0d29yayBsb29wYmFjawpkZXZp
Y2UJCXBhZGxvY2tfcm5nCQkjIFZJQSBQYWRsb2NrIFJORwpkZXZpY2UJCXJkcmFuZF9ybmcJCSMg
SW50ZWwgQnVsbCBNb3VudGFpbiBSTkcKZGV2aWNlCQlldGhlcgkJCSMgRXRoZXJuZXQgc3VwcG9y
dApkZXZpY2UJCXZsYW4JCQkjIDgwMi4xUSBWTEFOIHN1cHBvcnQKZGV2aWNlCQl0dW50YXAJCQkj
IFBhY2tldCB0dW5uZWwuCmRldmljZQkJbWQJCQkjIE1lbW9yeSAiZGlza3MiCmRldmljZQkJZ2lm
CQkJIyBJUHY2IGFuZCBJUHY0IHR1bm5lbGluZwpkZXZpY2UJCWZpcm13YXJlCQkjIGZpcm13YXJl
IGFzc2lzdCBtb2R1bGUKCiMgVGhlIGBicGYnIGRldmljZSBlbmFibGVzIHRoZSBCZXJrZWxleSBQ
YWNrZXQgRmlsdGVyLgojIEJlIGF3YXJlIG9mIHRoZSBhZG1pbmlzdHJhdGl2ZSBjb25zZXF1ZW5j
ZXMgb2YgZW5hYmxpbmcgdGhpcyEKIyBOb3RlIHRoYXQgJ2JwZicgaXMgcmVxdWlyZWQgZm9yIERI
Q1AuCmRldmljZQkJYnBmCQkJIyBCZXJrZWxleSBwYWNrZXQgZmlsdGVyCgojIFVTQiBzdXBwb3J0
Cm9wdGlvbnMgCVVTQl9ERUJVRwkJIyBlbmFibGUgZGVidWcgbXNncwpkZXZpY2UJCXVoY2kJCQkj
IFVIQ0kgUENJLT5VU0IgaW50ZXJmYWNlCmRldmljZQkJb2hjaQkJCSMgT0hDSSBQQ0ktPlVTQiBp
bnRlcmZhY2UKZGV2aWNlCQllaGNpCQkJIyBFSENJIFBDSS0+VVNCIGludGVyZmFjZSAoVVNCIDIu
MCkKZGV2aWNlCQl4aGNpCQkJIyBYSENJIFBDSS0+VVNCIGludGVyZmFjZSAoVVNCIDMuMCkKZGV2
aWNlCQl1c2IJCQkjIFVTQiBCdXMgKHJlcXVpcmVkKQpkZXZpY2UJCXVrYmQJCQkjIEtleWJvYXJk
CmRldmljZQkJdW1hc3MJCQkjIERpc2tzL01hc3Mgc3RvcmFnZSAtIFJlcXVpcmVzIHNjYnVzIGFu
ZCBkYQoKIyBTb3VuZCBzdXBwb3J0CmRldmljZQkJc291bmQJCQkjIEdlbmVyaWMgc291bmQgZHJp
dmVyIChyZXF1aXJlZCkKZGV2aWNlCQlzbmRfY21pCQkJIyBDTWVkaWEgQ01JODMzOC9DTUk4NzM4
CmRldmljZQkJc25kX2NzYQkJCSMgQ3J5c3RhbCBTZW1pY29uZHVjdG9yIENTNDYxeC80Mjh4CmRl
dmljZQkJc25kX2VtdTEwa3gJCSMgQ3JlYXRpdmUgU291bmRCbGFzdGVyIExpdmUhIGFuZCBBdWRp
Z3kKZGV2aWNlCQlzbmRfZXMxMzd4CQkjIEVuc29uaXEgQXVkaW9QQ0kgRVMxMzd4CmRldmljZQkJ
c25kX2hkYQkJCSMgSW50ZWwgSGlnaCBEZWZpbml0aW9uIEF1ZGlvCmRldmljZQkJc25kX2ljaAkJ
CSMgSW50ZWwsIE5WaWRpYSBhbmQgb3RoZXIgSUNIIEFDJzk3IEF1ZGlvCmRldmljZQkJc25kX3Zp
YTgyMzMJCSMgVklBIFZUODIzM3ggQXVkaW8KCiMgTU1DL1NECmRldmljZQkJbW1jCQkJIyBNTUMv
U0QgYnVzCmRldmljZQkJbW1jc2QJCQkjIE1NQy9TRCBtZW1vcnkgY2FyZApkZXZpY2UJCXNkaGNp
CQkJIyBHZW5lcmljIFBDSSBTRCBIb3N0IENvbnRyb2xsZXIKCiMgVmlydElPIHN1cHBvcnQKZGV2
aWNlCQl2aXJ0aW8JCQkjIEdlbmVyaWMgVmlydElPIGJ1cyAocmVxdWlyZWQpCmRldmljZQkJdmly
dGlvX3BjaQkJIyBWaXJ0SU8gUENJIGRldmljZQpkZXZpY2UJCXZ0bmV0CQkJIyBWaXJ0SU8gRXRo
ZXJuZXQgZGV2aWNlCmRldmljZQkJdmlydGlvX2JsawkJIyBWaXJ0SU8gQmxvY2sgZGV2aWNlCmRl
dmljZQkJdmlydGlvX3Njc2kJCSMgVmlydElPIFNDU0kgZGV2aWNlCmRldmljZQkJdmlydGlvX2Jh
bGxvb24JCSMgVmlydElPIE1lbW9yeSBCYWxsb29uIGRldmljZQoKIyBIeXBlclYgZHJpdmVycyBh
bmQgZW5oYW5jZW1lbnQgc3VwcG9ydApkZXZpY2UJCWh5cGVydgkJCSMgSHlwZXJWIGRyaXZlcnMg
CgojIFhlbiBIVk0gR3Vlc3QgT3B0aW1pemF0aW9ucwojIE5PVEU6IFhFTkhWTSBkZXBlbmRzIG9u
IHhlbnBjaS4gIFRoZXkgbXVzdCBiZSBhZGRlZCBvciByZW1vdmVkIHRvZ2V0aGVyLgpvcHRpb25z
IAlYRU5IVk0JCQkjIFhlbiBIVk0ga2VybmVsIGluZnJhc3RydWN0dXJlCmRldmljZQkJeGVucGNp
CQkJIyBYZW4gSFZNIEh5cGVydmlzb3Igc2VydmljZXMgZHJpdmVyCgojIE5ldG1hcCBwcm92aWRl
cyBkaXJlY3QgYWNjZXNzIHRvIFRYL1JYIHJpbmdzIG9uIHN1cHBvcnRlZCBOSUNzCmRldmljZQkJ
bmV0bWFwCQkJIyBuZXRtYXAoNCkgc3VwcG9ydAoKIyBldmRldiBpbnRlcmZhY2UKb3B0aW9ucyAJ
RVZERVZfU1VQUE9SVAkJIyBldmRldiBzdXBwb3J0IGluIGxlZ2FjeSBkcml2ZXJzCmRldmljZQkJ
ZXZkZXYJCQkjIGlucHV0IGV2ZW50IGRldmljZSBzdXBwb3J0CmRldmljZQkJdWlucHV0CQkJIyBp
bnN0YWxsIC9kZXYvdWlucHV0IGNkZXYK
--00000000000065de770592cab622--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAKy-8=jY6NRfn0xEiAhCnA4r=U1jpyOVu__B8NkFWW9t2UDg4Q>