Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 22 Jul 2012 14:50:45 -0700
From:      Zack Breckenridge <zbrdge@gmail.com>
To:        =?UTF-8?B?5LmU5qWa?= <honestqiao@gmail.com>
Cc:        freebsd-acpi <freebsd-acpi@freebsd.org>
Subject:   Re: Re: Resume failed after Suspend on Thinkpad x201i
Message-ID:  <CA%2BXA1unEPqexDX7HbwfO6YGu5pTnrFkgHGqUtEbiRjk2EV22aw@mail.gmail.com>
In-Reply-To: <CA%2BXA1umP9AyncDO-OA-q_ntDjcqRYT7hs6fV3MTvo==3M9Kd5w@mail.gmail.com>
References:  <201207021729413382845@gmail.com> <4FF2599B.6050409@gmail.com> <201207031411248300207@gmail.com> <1341437029.4017.5.camel@localhost> <CALBk6yLgUUvbZUhEhNgbqKOz8bc5eAM9anuP0ZSDR=qd6SstUw@mail.gmail.com> <CALBk6yK1fSg2ksVP4hmQz1pN-NVqXVGb3enjcE9t-rq0qXQQfA@mail.gmail.com> <2012072016090861869410@gmail.com> <CA%2BXA1um8xQmdXsP%2B0qJuqnWoPUD-EHnM9vGTUTifE_8nChh-zg@mail.gmail.com> <CAMAY4VjDwTLLG3y0G0Z9X4=-=-F1pgaN=7vwJxsaNgikr8YzcQ@mail.gmail.com> <CA%2BXA1umP9AyncDO-OA-q_ntDjcqRYT7hs6fV3MTvo==3M9Kd5w@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--90e6ba308ef21743bd04c5721fd9
Content-Type: text/plain; charset=GB2312
Content-Transfer-Encoding: quoted-printable

Oops, there was an error with the attachment. Here's a second try.

- Zack

On Sun, Jul 22, 2012 at 2:45 PM, Zack Breckenridge <zbrdge@gmail.com> wrote=
:

> Attached is the kernel configuration file I used to build my kernel
> without VESA.
>
> I went through the same process as you: setting suspend bounce, etc., and
> looking at the dmesg output. Again, I also looked at the witness output
> from my Intel driver when resuming X -- and I noticed that it simply wasn=
't
> able to reach the GPU.
>
> So I think it is some sort of bus error on resume and is related to our
> different BIOSes. Since it worked for me, probably some int 10 call in VE=
SA
> was causing the error. In your case - not being able to issue commands to
> an ATA device could also be a bus issue, caused by NOT calling the proper
> INT 10 setup functions on resume.
>
> I'm going to build a debug kernel today and see if I can start tracking
> the problem to it's root.
>
> - Zack
>
> On Sun, Jul 22, 2012 at 4:36 AM, =C7=C7=B3=FE <honestqiao@gmail.com> wrot=
e:
>
>> 2012/7/20 Zack Breckenridge <zbrdge@gmail.com>:
>> > If you look at the line:
>> >
>> >
>> >> Jul 20 16:07:00 x201i kernel: vga0: calling BIOS POST
>> >
>> > in your dmesg output, and then grep through the source, you'll find
>> this is
>> > actually being printed
>> > from "src/sys/dev/fb/vesa.c" .
>> >
>> > I had a similar problem. After syncing with FreeBSD 10-CURRENT and
>> compiling
>> > a kernel without
>> > VESA support, I was able to get graphics to work on resume, but only
>> when
>> > running X.
>> >
>> > I don't think you actually have to sync with CURRENT though -- I think
>> you
>> > just need to compile without
>> > VESA. I synced with CURRENT to get the newer Intel GMA driver and KMS
>> > subsystem. Also, looking at
>> > the Witness output from the Intel driver, it looks like the graphics
>> card
>> > simply isn't accessible after
>> > this function in vesa.c is called, which means it probably causes the
>> same
>> > problem with your nvidia driver
>> > as well.
>> >
>> > I believe this problem is related to the "x86bios_init_regs" function,
>> > though I haven't had time to debug
>> > it yet. Also, I'm running amd64.
>> >
>> > Try it out...
>> >
>> > - Zack
>> >
>> > On Fri, Jul 20, 2012 at 1:09 AM, =C7=C7=B3=FE/HonestQiao <honestqiao@g=
mail.com>
>> wrote:
>> >>
>> >> >On Sat, Jul 7, 2012 at 10:40 AM, Brandon Gooch
>> >> ><jamesbrandongooch@gmail.com> wrote:
>> >> >> On Wed, Jul 4, 2012 at 4:23 PM, mbsd <mbsd@isgroup.com.ua> wrote:
>> >> >>> On Tue, 2012-07-03 at 14:11 +0800, =C7=C7=B3=FE/HonestQiao wrote:
>> >> >> [SNIP]
>> >> >>>>
>> >> >>>> In All the test, the screen is light and black, system is hangup=
,
>> >> >>>> nothing can be done.
>> >> >>>> The only thing can be done, is push power button, to force it
>> >> >>>> shutdown.
>> >> >>>
>> >> >>> Which graphic card have you used? If you have had nvidia, it's
>> normal,
>> >> >>> I've had the same problem "the screen is light and black".
>> >> >>
>> >> >> Can both of you show the output of `devinfo -v` from your systems?
>> >> >>
>> >> >> I was able to solve my suspend/resume issue with my nvidia-equippe=
d
>> >> >> notebook by forcing the module load ordering of vgapm in
>> >> >> sys/isa/vga_isa.c:
>> >> >>
>> >> >> Index: sys/isa/vga_isa.c
>> >> >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> >> >> --- sys/isa/vga_isa.c   (revision 237779)
>> >> >> +++ sys/isa/vga_isa.c   (working copy)
>> >> >> @@ -379,4 +379,4 @@
>> >> >>         0
>> >> >>  };
>> >> >>
>> >> >> -DRIVER_MODULE(vgapm, vgapci, vgapm_driver, vgapm_devclass, 0, 0);
>> >> >> +DRIVER_MODULE(vgapm, vgapci, vgapm_driver, vgapm_devclass, 0,
>> >> >> SI_ORDER_ANY);
>> >> >>
>> >> >>
>> >> >> The system requires however that I load the nvidia module in
>> >> >> /boot/loader.conf (as opposed to loading it after system is up and
>> >> >> running).
>> >> >>
>> >> >> -Brandon
>> >> >
>> >> >Oops, the patch above should instead be:
>> >> >
>> >> >Index: sys/isa/vga_isa.c
>> >> >=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>> >> >--- sys/isa/vga_isa.c   (revision 238266)
>> >> >+++ sys/isa/vga_isa.c   (working copy)
>> >> >@@ -379,4 +379,4 @@
>> >> >        0
>> >> > };
>> >> >
>> >> >-DRIVER_MODULE(vgapm, vgapci, vgapm_driver, vgapm_devclass, 0, 0);
>> >> >+DRIVER_MODULE_ORDERED(vgapm, vgapci, vgapm_driver, vgapm_devclass,
>> >> >NULL, NULL, SI_ORDER_ANY);
>> >> >
>> >> >I made the edit for the diff on a clean tree, but I'm actually
>> >> >building from another :)
>> >> >
>> >> >The above is correct. However, I'm still not sure this pertains to
>> >> >your Intel video problem.
>> >> >
>> >> >-Brandon
>> >>
>> >> Yesterday, I upgrade my freebsd to FreeBSD 9.1-PRERELEASE.
>> >> This method did not work.
>> >>
>> >> And command 'shutdown -p now' can shutdown the system,
>> >> but the Screen is black and light, and Battery LED is light.
>> >> This command can't power off.
>> >>
>> >> Whethe in:
>> >> sysctl -w hw.acpi.reset_video=3D0
>> >> sysctl -w hw.pci.do_power_suspend=3D1
>> >> sysctl -w hw.pci.do_power_resume=3D1
>> >> Or in:
>> >> sysctl -w hw.acpi.reset_video=3D0
>> >> sysctl -w hw.pci.do_power_suspend=3D1
>> >> sysctl -w hw.pci.do_power_resume=3D1
>> >>
>> >> I can execute acpiconf -s 3, but can't resume the screen which is bla=
ck
>> >> and light.
>> >>
>> >> Log for command 'acpiconf -s 3':
>> >>
>> >> Jul 20 16:06:53 x201i acpi: suspend at 20120720 16:06:53
>> >> Jul 20 16:06:56 x201i kernel: acpi_timer0: switching timecounter,
>> TSC-low
>> >> -> ACPI-safe
>> >> Jul 20 16:06:56 x201i kernel: (ada0:ahcich0:0:0:0): spin-down
>> >> Jul 20 16:07:00 x201i kernel: acpi_lid0: wake_prep enabled for
>> \_SB_.LID_
>> >> (S3)
>> >> Jul 20 16:07:00 x201i kernel: acpi_button0: wake_prep enabled for
>> >> \_SB_.SLPB (S3)
>> >> Jul 20 16:07:00 x201i kernel: uhub0: at usbus0, port 1, addr 1
>> >> (disconnected)
>> >> Jul 20 16:07:00 x201i kernel: ugen0.2: <vendor 0x8087> at usbus0
>> >> (disconnected)
>> >> Jul 20 16:07:00 x201i kernel: uhub2: at uhub0, port 1, addr 2
>> >> (disconnected)
>> >> Jul 20 16:07:00 x201i kernel: pci0:0:28:0: Transition from D0 to D3
>> >> Jul 20 16:07:00 x201i kernel: pci0:0:28:3: Transition from D0 to D3
>> >> Jul 20 16:07:00 x201i kernel: wlan0: link state changed to DOWN
>> >> Jul 20 16:07:00 x201i kernel: pci0:2:0:0: Transition from D0 to D3
>> >> Jul 20 16:07:00 x201i kernel: pci0:0:28:4: Transition from D0 to D3
>> >> Jul 20 16:07:00 x201i kernel: uhub1: at usbus1, port 1, addr 1
>> >> (disconnected)
>> >> Jul 20 16:07:00 x201i kernel: ugen1.2: <vendor 0x8087> at usbus1
>> >> (disconnected)
>> >> Jul 20 16:07:00 x201i kernel: uhub3: at uhub1, port 1, addr 2
>> >> (disconnected)
>> >> Jul 20 16:07:00 x201i kernel: vga0: saving 4804 bytes of video state
>> >> Jul 20 16:07:00 x201i kernel: vga0: saving color palette
>> >> Jul 20 16:07:00 x201i kernel: pci0: failed to set ACPI power state D2
>> on
>> >> \_SB_.PCI0.EXP1: AE_BAD_PARAMETER
>> >> Jul 20 16:07:00 x201i kernel: pci0: failed to set ACPI power state D2
>> on
>> >> \_SB_.PCI0.EXP4: AE_BAD_PARAMETER
>> >> Jul 20 16:07:00 x201i kernel: pci0: failed to set ACPI power state D2
>> on
>> >> \_SB_.PCI0.EXP5: AE_BAD_PARAMETER
>> >> Jul 20 16:07:00 x201i kernel: acpi_lid0: wake_prep enabled for
>> \_SB_.LID_
>> >> (S3)
>> >> Jul 20 16:07:00 x201i kernel: acpi_button0: wake_prep enabled for
>> >> \_SB_.SLPB (S3)
>> >> Jul 20 16:07:00 x201i kernel: pci255: set ACPI power state D0 on
>> >> \_SB_.UNCR.SAD_
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.VID_
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.IGBE
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.EHC2
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.HDEF
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.EXP1
>> >> Jul 20 16:07:00 x201i kernel: pci0:0:28:0: Transition from D3 to D0
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.EXP4
>> >> Jul 20 16:07:00 x201i kernel: pci0:0:28:3: Transition from D3 to D0
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.EXP5
>> >> Jul 20 16:07:00 x201i kernel: pci0:0:28:4: Transition from D3 to D0
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.EHC1
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.PCI1
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.LPC_
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.SAT1
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.EXP1
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.EXP4
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.EXP5
>> >> Jul 20 16:07:00 x201i kernel: pci0:2:0:0: Transition from D3 to D0
>> >> Jul 20 16:07:00 x201i kernel: pci0: set ACPI power state D0 on
>> >> \_SB_.PCI0.PCI1
>> >> Jul 20 16:07:00 x201i kernel: vga0: calling BIOS POST
>> >> Jul 20 16:07:00 x201i kernel: ahcich0: AHCI reset...
>> >> Jul 20 16:07:00 x201i kernel: ahcich0: SATA connect time=3D100us
>> >> status=3D00000123
>> >> Jul 20 16:07:00 x201i kernel: ahcich0: AHCI reset: device found
>> >> Jul 20 16:07:00 x201i kernel: ahcich1: AHCI reset...
>> >> Jul 20 16:07:00 x201i kernel: ahcich1: SATA connect timeout
>> time=3D10000us
>> >> status=3D00000000
>> >> Jul 20 16:07:00 x201i kernel: ahcich1: AHCI reset: device not found
>> >> Jul 20 16:07:00 x201i kernel: ahcich4: AHCI reset...
>> >> Jul 20 16:07:00 x201i kernel: ahcich4: SATA connect timeout
>> time=3D10000us
>> >> status=3D00000000
>> >> Jul 20 16:07:00 x201i kernel: ahcich4: AHCI reset: device not found
>> >> Jul 20 16:07:00 x201i kernel: ahcich5: AHCI reset...
>> >> Jul 20 16:07:00 x201i kernel: ahcich5: SATA connect timeout
>> time=3D10000us
>> >> status=3D00000000
>> >> Jul 20 16:07:00 x201i kernel: ahcich5: AHCI reset: device not found
>> >> Jul 20 16:07:00 x201i kernel: atkbd: the current kbd controller comma=
nd
>> >> byte 0047
>> >> Jul 20 16:07:00 x201i kernel: atkbd: keyboard ID 0x54ab (2)
>> >> Jul 20 16:07:00 x201i kernel: kbdc: RESET_KBD return code:00fa
>> >> Jul 20 16:07:00 x201i kernel: kbdc: RESET_KBD status:00aa
>> >> Jul 20 16:07:00 x201i kernel: kbdc: TEST_AUX_PORT status:0000
>> >> Jul 20 16:07:00 x201i kernel: kbdc: RESET_AUX return code:00fa
>> >> Jul 20 16:07:00 x201i kernel: kbdc: RESET_AUX status:00aa
>> >> Jul 20 16:07:00 x201i kernel: kbdc: RESET_AUX ID:0000
>> >> Jul 20 16:07:00 x201i kernel: battery0: battery initialization start
>> >> Jul 20 16:07:00 x201i kernel: ahcich0: AHCI reset: device ready after
>> >> 100ms
>> >> Jul 20 16:07:00 x201i kernel: battery0: battery initialization done,
>> tried
>> >> 1 times
>> >> Jul 20 16:07:00 x201i kernel: (ada0:ahcich0:0:0:0): resume
>> >> Jul 20 16:07:00 x201i kernel: acpi_timer0: restoring timecounter,
>> >> ACPI-safe -> TSC-low
>> >> Jul 20 16:07:00 x201i kernel: uhub0: <Intel EHCI root HUB, class 9/0,
>> rev
>> >> 2.00/1.00, addr 1> on usbus1
>> >> Jul 20 16:07:00 x201i kernel: uhub1: <Intel EHCI root HUB, class 9/0,
>> rev
>> >> 2.00/1.00, addr 1> on usbus0
>> >> Jul 20 16:07:00 x201i kernel: wlan0: link state changed to UP
>> >> Jul 20 16:07:00 x201i kernel: uhub0: 3 ports with 3 removable, self
>> >> powered
>> >> Jul 20 16:07:00 x201i kernel: uhub1: 3 ports with 3 removable, self
>> >> powered
>> >> Jul 20 16:06:57 x201i wpa_supplicant[525]: CTRL-EVENT-DISCONNECTED
>> >> bssid=3Dc0:c5:20:1b:59:aa reason=3D0
>> >> Jul 20 16:06:57 x201i wpa_supplicant[525]: Failed to initiate AP scan=
.
>> >> Jul 20 16:06:59 x201i acpi: resumed at 20120720 16:06:59
>> >> Jul 20 16:06:59 x201i wpa_supplicant[525]: Trying to associate with
>> >> c0:c5:20:1b:69:8a (SSID=3D'LITB-AP' freq=3D2417 MHz)
>> >> Jul 20 16:07:00 x201i wpa_supplicant[525]: Associated with
>> >> c0:c5:20:1b:69:8a
>> >> Jul 20 16:07:00 x201i wpa_supplicant[525]: WPA: Key negotiation
>> completed
>> >> with c0:c5:20:1b:69:8a [PTK=3DCCMP GTK=3DCCMP]
>> >> Jul 20 16:07:00 x201i wpa_supplicant[525]: CTRL-EVENT-CONNECTED -
>> >> Connection to c0:c5:20:1b:69:8a completed (reauth) [id=3D0 id_str=3D]
>> >> Jul 20 16:07:00 x201i dhclient: New IP Address (wlan0): 192.168.61.18=
4
>> >> Jul 20 16:07:00 x201i dhclient: New Subnet Mask (wlan0): 255.255.255.=
0
>> >> Jul 20 16:07:00 x201i dhclient: New Broadcast Address (wlan0):
>> >> 192.168.61.255
>> >> Jul 20 16:07:00 x201i dhclient: New Routers (wlan0): 192.168.61.1
>> >> Jul 20 16:07:01 x201i kernel: ugen1.2: <vendor 0x8087> at usbus1
>> >> Jul 20 16:07:01 x201i kernel: uhub2: <vendor 0x8087 product 0x0020,
>> class
>> >> 9/0, rev 2.00/0.00, addr 2> on usbus1
>> >> Jul 20 16:07:01 x201i kernel: ugen0.2: <vendor 0x8087> at usbus0
>> >> Jul 20 16:07:01 x201i kernel: uhub3: <vendor 0x8087 product 0x0020,
>> class
>> >> 9/0, rev 2.00/0.00, addr 2> on usbus0
>> >> Jul 20 16:07:02 x201i kernel: uhub3: 6 ports with 6 removable, self
>> >> powered
>> >> Jul 20 16:07:02 x201i kernel: uhub2: 8 ports with 8 removable, self
>> >> powered
>> >>
>> >> _______________________________________________
>> >> freebsd-acpi@freebsd.org mailing list
>> >> http://lists.freebsd.org/mailman/listinfo/freebsd-acpi
>> >> To unsubscribe, send any mail to "freebsd-acpi-unsubscribe@freebsd.or=
g
>> "
>> >>
>> >
>>
>> Today , I build my kernel disabled vesa.
>> Now , there has so many error messages in dmesg:
>> Jul 22 16:42:18 x201i kernel: ACPI Error: No object attached to node
>> 0xfffffe00029a6780 (20110527/exresnte-139)
>> Jul 22 16:42:18 x201i kernel: ACPI Error: Method execution failed
>> [\_SB_.PCI0.LPC_.EC__.BAT0._HID] (Node 0xfffffe00029a6780),
>> AE_AML_NO_OPERAND (20110527/uteval-113)
>>
>>
>>
>> When I test acpiconf -s 3, it's hangup:
>> #sysctl debug.acpi.suspend_bounce=3D1
>> #acpiconf -s 3
>> ahcich0: AHCI reset: device not ready after 31000ms (tfd =3D 00000080)
>> ahcich0: Timeout on slot 12 port 0
>> ......
>> achich0: AHCI reset ...
>> ahcich0: SATA connect time=3D100us status=3D0000123
>> ahcich0: AHCI reset: device found
>> (aprobe0:ahchih0:0:0:0): ATA_IDENTIFY. ACB: ec 00 00 00 00 40 00 00 00 0=
0
>> 00 00
>> (aprobe0:ahchih0:0:0:0): CAM status: command timeout
>> (aprobe0:ahchih0:0:0:0): Error 5, Retry was blocked
>>
>> reboot by push power button:
>> #sysctl debug.acpi.suspend_bounce=3D0
>> #acpiconf -s 3
>> It's will suspend, and sleep LED will light.
>> But can't resume. No button can resume it.
>>
>
>

--90e6ba308ef21743bd04c5721fd9
Content-Type: application/octet-stream; name=NOVESA
Content-Disposition: attachment; filename=NOVESA
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h4ynu0kd0

IwojIEdFTkVSSUMgLS0gR2VuZXJpYyBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGZvciBGcmVl
QlNEL2FtZDY0CiMKIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGZpbGUsIHBsZWFzZSBy
ZWFkIHRoZSBjb25maWcoNSkgbWFudWFsIHBhZ2UsCiMgYW5kL29yIHRoZSBoYW5kYm9vayBzZWN0
aW9uIG9uIEtlcm5lbCBDb25maWd1cmF0aW9uIEZpbGVzOgojCiMgICAgaHR0cDovL3d3dy5GcmVl
QlNELm9yZy9kb2MvZW5fVVMuSVNPODg1OS0xL2Jvb2tzL2hhbmRib29rL2tlcm5lbGNvbmZpZy1j
b25maWcuaHRtbAojCiMgVGhlIGhhbmRib29rIGlzIGFsc28gYXZhaWxhYmxlIGxvY2FsbHkgaW4g
L3Vzci9zaGFyZS9kb2MvaGFuZGJvb2sKIyBpZiB5b3UndmUgaW5zdGFsbGVkIHRoZSBkb2MgZGlz
dHJpYnV0aW9uLCBvdGhlcndpc2UgYWx3YXlzIHNlZSB0aGUKIyBGcmVlQlNEIFdvcmxkIFdpZGUg
V2ViIHNlcnZlciAoaHR0cDovL3d3dy5GcmVlQlNELm9yZy8pIGZvciB0aGUKIyBsYXRlc3QgaW5m
b3JtYXRpb24uCiMKIyBBbiBleGhhdXN0aXZlIGxpc3Qgb2Ygb3B0aW9ucyBhbmQgbW9yZSBkZXRh
aWxlZCBleHBsYW5hdGlvbnMgb2YgdGhlCiMgZGV2aWNlIGxpbmVzIGlzIGFsc28gcHJlc2VudCBp
biB0aGUgLi4vLi4vY29uZi9OT1RFUyBhbmQgTk9URVMgZmlsZXMuCiMgSWYgeW91IGFyZSBpbiBk
b3VidCBhcyB0byB0aGUgcHVycG9zZSBvciBuZWNlc3NpdHkgb2YgYSBsaW5lLCBjaGVjayBmaXJz
dAojIGluIE5PVEVTLgojCiMgJEZyZWVCU0Q6IHNyYy9zeXMvYW1kNjQvY29uZi9HRU5FUklDLHYg
MS41OTEgMjAxMi8wNi8xOSAwNzozNDoxMyBucCBFeHAgJAoKY3B1CQlIQU1NRVIKaWRlbnQJCU5P
VkVTQQoKbWFrZW9wdGlvbnMJREVCVUc9LWcJCSMgQnVpbGQga2VybmVsIHdpdGggZ2RiKDEpIGRl
YnVnIHN5bWJvbHMKbWFrZW9wdGlvbnMJV0lUSF9DVEY9MQkJIyBSdW4gY3RmY29udmVydCgxKSBm
b3IgRFRyYWNlIHN1cHBvcnQKCm9wdGlvbnMgCVNDSEVEX1VMRQkJIyBVTEUgc2NoZWR1bGVyCm9w
dGlvbnMgCVBSRUVNUFRJT04JCSMgRW5hYmxlIGtlcm5lbCB0aHJlYWQgcHJlZW1wdGlvbgpvcHRp
b25zIAlJTkVUCQkJIyBJbnRlck5FVHdvcmtpbmcKb3B0aW9ucyAJSU5FVDYJCQkjIElQdjYgY29t
bXVuaWNhdGlvbnMgcHJvdG9jb2xzCm9wdGlvbnMgCVRDUF9PRkZMT0FECQkjIFRDUCBvZmZsb2Fk
Cm9wdGlvbnMgCVNDVFAJCQkjIFN0cmVhbSBDb250cm9sIFRyYW5zbWlzc2lvbiBQcm90b2NvbApv
cHRpb25zIAlGRlMJCQkjIEJlcmtlbGV5IEZhc3QgRmlsZXN5c3RlbQpvcHRpb25zIAlTT0ZUVVBE
QVRFUwkJIyBFbmFibGUgRkZTIHNvZnQgdXBkYXRlcyBzdXBwb3J0Cm9wdGlvbnMgCVVGU19BQ0wJ
CQkjIFN1cHBvcnQgZm9yIGFjY2VzcyBjb250cm9sIGxpc3RzCm9wdGlvbnMgCVVGU19ESVJIQVNI
CQkjIEltcHJvdmUgcGVyZm9ybWFuY2Ugb24gYmlnIGRpcmVjdG9yaWVzCm9wdGlvbnMgCVVGU19H
Sk9VUk5BTAkJIyBFbmFibGUgZ2pvdXJuYWwtYmFzZWQgVUZTIGpvdXJuYWxpbmcKb3B0aW9ucyAJ
TURfUk9PVAkJCSMgTUQgaXMgYSBwb3RlbnRpYWwgcm9vdCBkZXZpY2UKb3B0aW9ucyAJTkZTQ0wJ
CQkjIE5ldyBOZXR3b3JrIEZpbGVzeXN0ZW0gQ2xpZW50Cm9wdGlvbnMgCU5GU0QJCQkjIE5ldyBO
ZXR3b3JrIEZpbGVzeXN0ZW0gU2VydmVyCm9wdGlvbnMgCU5GU0xPQ0tECQkjIE5ldHdvcmsgTG9j
ayBNYW5hZ2VyCm9wdGlvbnMgCU5GU19ST09UCQkjIE5GUyB1c2FibGUgYXMgLywgcmVxdWlyZXMg
TkZTQ0wKb3B0aW9ucyAJTVNET1NGUwkJCSMgTVNET1MgRmlsZXN5c3RlbQpvcHRpb25zIAlDRDk2
NjAJCQkjIElTTyA5NjYwIEZpbGVzeXN0ZW0Kb3B0aW9ucyAJUFJPQ0ZTCQkJIyBQcm9jZXNzIGZp
bGVzeXN0ZW0gKHJlcXVpcmVzIFBTRVVET0ZTKQpvcHRpb25zIAlQU0VVRE9GUwkJIyBQc2V1ZG8t
ZmlsZXN5c3RlbSBmcmFtZXdvcmsKb3B0aW9ucyAJR0VPTV9QQVJUX0dQVAkJIyBHVUlEIFBhcnRp
dGlvbiBUYWJsZXMuCm9wdGlvbnMgCUdFT01fUkFJRAkJIyBTb2Z0IFJBSUQgZnVuY3Rpb25hbGl0
eS4Kb3B0aW9ucyAJR0VPTV9MQUJFTAkJIyBQcm92aWRlcyBsYWJlbGl6YXRpb24Kb3B0aW9ucyAJ
Q09NUEFUX0ZSRUVCU0QzMgkjIENvbXBhdGlibGUgd2l0aCBpMzg2IGJpbmFyaWVzCm9wdGlvbnMg
CUNPTVBBVF9GUkVFQlNENAkJIyBDb21wYXRpYmxlIHdpdGggRnJlZUJTRDQKb3B0aW9ucyAJQ09N
UEFUX0ZSRUVCU0Q1CQkjIENvbXBhdGlibGUgd2l0aCBGcmVlQlNENQpvcHRpb25zIAlDT01QQVRf
RlJFRUJTRDYJCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0Q2Cm9wdGlvbnMgCUNPTVBBVF9GUkVF
QlNENwkJIyBDb21wYXRpYmxlIHdpdGggRnJlZUJTRDcKb3B0aW9ucyAJU0NTSV9ERUxBWT01MDAw
CQkjIERlbGF5IChpbiBtcykgYmVmb3JlIHByb2JpbmcgU0NTSQpvcHRpb25zIAlLVFJBQ0UJCQkj
IGt0cmFjZSgxKSBzdXBwb3J0Cm9wdGlvbnMgCVNUQUNLCQkJIyBzdGFjayg5KSBzdXBwb3J0Cm9w
dGlvbnMgCVNZU1ZTSE0JCQkjIFNZU1Ytc3R5bGUgc2hhcmVkIG1lbW9yeQpvcHRpb25zIAlTWVNW
TVNHCQkJIyBTWVNWLXN0eWxlIG1lc3NhZ2UgcXVldWVzCm9wdGlvbnMgCVNZU1ZTRU0JCQkjIFNZ
U1Ytc3R5bGUgc2VtYXBob3JlcwpvcHRpb25zIAlfS1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkcg
IyBQT1NJWCBQMTAwM18xQiByZWFsLXRpbWUgZXh0ZW5zaW9ucwpvcHRpb25zIAlQUklOVEZfQlVG
Ul9TSVpFPTEyOAkjIFByZXZlbnQgcHJpbnRmIG91dHB1dCBiZWluZyBpbnRlcnNwZXJzZWQuCm9w
dGlvbnMgCUtCRF9JTlNUQUxMX0NERVYJIyBpbnN0YWxsIGEgQ0RFViBlbnRyeSBpbiAvZGV2Cm9w
dGlvbnMgCUhXUE1DX0hPT0tTCQkjIE5lY2Vzc2FyeSBrZXJuZWwgaG9va3MgZm9yIGh3cG1jKDQp
Cm9wdGlvbnMgCUFVRElUCQkJIyBTZWN1cml0eSBldmVudCBhdWRpdGluZwpvcHRpb25zIAlDQVBB
QklMSVRZX01PREUJCSMgQ2Fwc2ljdW0gY2FwYWJpbGl0eSBtb2RlCm9wdGlvbnMgCUNBUEFCSUxJ
VElFUwkJIyBDYXBzaWN1bSBjYXBhYmlsaXRpZXMKb3B0aW9ucyAJTUFDCQkJIyBUcnVzdGVkQlNE
IE1BQyBGcmFtZXdvcmsKb3B0aW9ucyAJS0RUUkFDRV9GUkFNRQkJIyBFbnN1cmUgZnJhbWVzIGFy
ZSBjb21waWxlZCBpbgpvcHRpb25zIAlLRFRSQUNFX0hPT0tTCQkjIEtlcm5lbCBEVHJhY2UgaG9v
a3MKb3B0aW9ucyAJRERCX0NURgkJCSMgS2VybmVsIEVMRiBsaW5rZXIgbG9hZHMgQ1RGIGRhdGEK
b3B0aW9ucyAJSU5DTFVERV9DT05GSUdfRklMRSAgICAgIyBJbmNsdWRlIHRoaXMgZmlsZSBpbiBr
ZXJuZWwKCiMgRGVidWdnaW5nIHN1cHBvcnQuICBBbHdheXMgbmVlZCB0aGlzOgpvcHRpb25zIAlL
REIJCQkjIEVuYWJsZSBrZXJuZWwgZGVidWdnZXIgc3VwcG9ydC4KIyBGb3IgbWluaW11bSBkZWJ1
Z2dlciBzdXBwb3J0IChzdGFibGUgYnJhbmNoKSB1c2U6CiNvcHRpb25zIAlLREJfVFJBQ0UJCSMg
UHJpbnQgYSBzdGFjayB0cmFjZSBmb3IgYSBwYW5pYy4KIyBGb3IgZnVsbCBkZWJ1Z2dlciBzdXBw
b3J0IHVzZSB0aGlzIGluc3RlYWQ6Cm9wdGlvbnMgCUREQgkJCSMgU3VwcG9ydCBEREIuCm9wdGlv
bnMgCUdEQgkJCSMgU3VwcG9ydCByZW1vdGUgR0RCLgpvcHRpb25zIAlERUFETEtSRVMJCSMgRW5h
YmxlIHRoZSBkZWFkbG9jayByZXNvbHZlcgpvcHRpb25zIAlJTlZBUklBTlRTCQkjIEVuYWJsZSBj
YWxscyBvZiBleHRyYSBzYW5pdHkgY2hlY2tpbmcKb3B0aW9ucyAJSU5WQVJJQU5UX1NVUFBPUlQJ
IyBFeHRyYSBzYW5pdHkgY2hlY2tzIG9mIGludGVybmFsIHN0cnVjdHVyZXMsIHJlcXVpcmVkIGJ5
IElOVkFSSUFOVFMKb3B0aW9ucyAJV0lUTkVTUwkJCSMgRW5hYmxlIGNoZWNrcyB0byBkZXRlY3Qg
ZGVhZGxvY2tzIGFuZCBjeWNsZXMKb3B0aW9ucyAJV0lUTkVTU19TS0lQU1BJTgkjIERvbid0IHJ1
biB3aXRuZXNzIG9uIHNwaW5sb2NrcyBmb3Igc3BlZWQKb3B0aW9ucyAJTUFMTE9DX0RFQlVHX01B
WFpPTkVTPTgJIyBTZXBhcmF0ZSBtYWxsb2MoOSkgem9uZXMKCiMgTWFrZSBhbiBTTVAtY2FwYWJs
ZSBrZXJuZWwgYnkgZGVmYXVsdApvcHRpb25zIAlTTVAJCQkjIFN5bW1ldHJpYyBNdWx0aVByb2Nl
c3NvciBLZXJuZWwKCiMgQ1BVIGZyZXF1ZW5jeSBjb250cm9sCmRldmljZQkJY3B1ZnJlcQoKIyBC
dXMgc3VwcG9ydC4KZGV2aWNlCQlhY3BpCmRldmljZQkJcGNpCgojIEZsb3BweSBkcml2ZXMKZGV2
aWNlCQlmZGMKCiMgQVRBIGNvbnRyb2xsZXJzCmRldmljZQkJYWhjaQkJIyBBSENJLWNvbXBhdGli
bGUgU0FUQSBjb250cm9sbGVycwpkZXZpY2UJCWF0YQkJIyBMZWdhY3kgQVRBL1NBVEEgY29udHJv
bGxlcnMKb3B0aW9ucyAJQVRBX0NBTQkJIyBIYW5kbGUgbGVnYWN5IGNvbnRyb2xsZXJzIHdpdGgg
Q0FNCm9wdGlvbnMgCUFUQV9TVEFUSUNfSUQJIyBTdGF0aWMgZGV2aWNlIG51bWJlcmluZwpkZXZp
Y2UJCW12cwkJIyBNYXJ2ZWxsIDg4U1g1MFhYLzg4U1g2MFhYLzg4U1g3MFhYL1NvQyBTQVRBCmRl
dmljZQkJc2lpcwkJIyBTaWxpY29uSW1hZ2UgU2lJMzEyNC9TaUkzMTMyL1NpSTM1MzEgU0FUQQoK
IyBTQ1NJIENvbnRyb2xsZXJzCmRldmljZQkJYWhjCQkjIEFIQTI5NDAgYW5kIG9uYm9hcmQgQUlD
N3h4eCBkZXZpY2VzCm9wdGlvbnMgCUFIQ19SRUdfUFJFVFRZX1BSSU5UCSMgUHJpbnQgcmVnaXN0
ZXIgYml0ZmllbGRzIGluIGRlYnVnCgkJCQkJIyBvdXRwdXQuICBBZGRzIH4xMjhrIHRvIGRyaXZl
ci4KZGV2aWNlCQlhaGQJCSMgQUhBMzkzMjAvMjkzMjAgYW5kIG9uYm9hcmQgQUlDNzl4eCBkZXZp
Y2VzCm9wdGlvbnMgCUFIRF9SRUdfUFJFVFRZX1BSSU5UCSMgUHJpbnQgcmVnaXN0ZXIgYml0Zmll
bGRzIGluIGRlYnVnCgkJCQkJIyBvdXRwdXQuICBBZGRzIH4yMTVrIHRvIGRyaXZlci4KZGV2aWNl
CQllc3AJCSMgQU1EIEFtNTNDOTc0IChUZWtyYW0gREMtMzkwKFQpKQpkZXZpY2UJCWhwdGlvcAkJ
IyBIaWdocG9pbnQgUm9ja2V0UmFpZCAzeHh4IHNlcmllcwpkZXZpY2UJCWlzcAkJIyBRbG9naWMg
ZmFtaWx5CiNkZXZpY2UJCWlzcGZ3CQkjIEZpcm13YXJlIGZvciBRTG9naWMgSEJBcy0gbm9ybWFs
bHkgYSBtb2R1bGUKZGV2aWNlCQltcHQJCSMgTFNJLUxvZ2ljIE1QVC1GdXNpb24KZGV2aWNlCQlt
cHMJCSMgTFNJLUxvZ2ljIE1QVC1GdXNpb24gMgojZGV2aWNlCQluY3IJCSMgTkNSL1N5bWJpb3Mg
TG9naWMKZGV2aWNlCQlzeW0JCSMgTkNSL1N5bWJpb3MgTG9naWMgKG5ld2VyIGNoaXBzZXRzICsg
dGhvc2Ugb2YgYG5jcicpCmRldmljZQkJdHJtCQkjIFRla3JhbSBEQzM5NVUvVVcvRiBEQzMxNVUg
YWRhcHRlcnMKCmRldmljZQkJYWR2CQkjIEFkdmFuc3lzIFNDU0kgYWRhcHRlcnMKZGV2aWNlCQlh
ZHcJCSMgQWR2YW5zeXMgd2lkZSBTQ1NJIGFkYXB0ZXJzCmRldmljZQkJYWljCQkjIEFkYXB0ZWMg
MTVbMDEyXXggU0NTSSBhZGFwdGVycywgQUlDLTZbMjNdNjAuCmRldmljZQkJYnQJCSMgQnVzbG9n
aWMvTXlsZXggTXVsdGlNYXN0ZXIgU0NTSSBhZGFwdGVycwpkZXZpY2UJCWlzY2kJCSMgSW50ZWwg
QzYwMCBTQVMgY29udHJvbGxlcgoKIyBBVEEvU0NTSSBwZXJpcGhlcmFscwpkZXZpY2UJCXNjYnVz
CQkjIFNDU0kgYnVzIChyZXF1aXJlZCBmb3IgQVRBL1NDU0kpCmRldmljZQkJY2gJCSMgU0NTSSBt
ZWRpYSBjaGFuZ2VycwpkZXZpY2UJCWRhCQkjIERpcmVjdCBBY2Nlc3MgKGRpc2tzKQpkZXZpY2UJ
CXNhCQkjIFNlcXVlbnRpYWwgQWNjZXNzICh0YXBlIGV0YykKZGV2aWNlCQljZAkJIyBDRApkZXZp
Y2UJCXBhc3MJCSMgUGFzc3Rocm91Z2ggZGV2aWNlIChkaXJlY3QgQVRBL1NDU0kgYWNjZXNzKQpk
ZXZpY2UJCXNlcwkJIyBFbmNsb3N1cmUgU2VydmljZXMgKFNFUyBhbmQgU0FGLVRFKQpkZXZpY2UJ
CWN0bAkJIyBDQU0gVGFyZ2V0IExheWVyCgojIFJBSUQgY29udHJvbGxlcnMgaW50ZXJmYWNlZCB0
byB0aGUgU0NTSSBzdWJzeXN0ZW0KZGV2aWNlCQlhbXIJCSMgQU1JIE1lZ2FSQUlECmRldmljZQkJ
YXJjbXNyCQkjIEFyZWNhIFNBVEEgSUkgUkFJRAojWFhYIGl0IGlzIG5vdCA2NC1iaXQgY2xlYW4s
IC1zY290dGwKI2RldmljZQkJYXNyCQkjIERQVCBTbWFydFJBSUQgViwgVkkgYW5kIEFkYXB0ZWMg
U0NTSSBSQUlECmRldmljZQkJY2lzcwkJIyBDb21wYXEgU21hcnQgUkFJRCA1KgpkZXZpY2UJCWRw
dAkJIyBEUFQgU21hcnRjYWNoZSBJSUksIElWIC0gU2VlIE5PVEVTIGZvciBvcHRpb25zCmRldmlj
ZQkJaHB0bXYJCSMgSGlnaHBvaW50IFJvY2tldFJBSUQgMTgyeApkZXZpY2UJCWhwdHJyCQkjIEhp
Z2hwb2ludCBSb2NrZXRSQUlEIDE3eHgsIDIyeHgsIDIzeHgsIDI1eHgKZGV2aWNlCQlpaXIJCSMg
SW50ZWwgSW50ZWdyYXRlZCBSQUlECmRldmljZQkJaXBzCQkjIElCTSAoQWRhcHRlYykgU2VydmVS
QUlECmRldmljZQkJbWx5CQkjIE15bGV4IEFjY2VsZVJBSUQvZVh0cmVtZVJBSUQKZGV2aWNlCQl0
d2EJCSMgM3dhcmUgOTAwMCBzZXJpZXMgUEFUQS9TQVRBIFJBSUQKCiMgUkFJRCBjb250cm9sbGVy
cwpkZXZpY2UJCWFhYwkJIyBBZGFwdGVjIEZTQSBSQUlECmRldmljZQkJYWFjcAkJIyBTQ1NJIHBh
c3N0aHJvdWdoIGZvciBhYWMgKHJlcXVpcmVzIENBTSkKZGV2aWNlCQlpZGEJCSMgQ29tcGFxIFNt
YXJ0IFJBSUQKZGV2aWNlCQltZmkJCSMgTFNJIE1lZ2FSQUlEIFNBUwpkZXZpY2UJCW1seAkJIyBN
eWxleCBEQUM5NjAgZmFtaWx5CiNYWFggcG9pbnRlci9pbnQgd2FybmluZ3MKI2RldmljZQkJcHN0
CQkjIFByb21pc2UgU3VwZXJ0cmFrIFNYNjAwMApkZXZpY2UJCXR3ZQkJIyAzd2FyZSBBVEEgUkFJ
RApkZXZpY2UJCXR3cwkJIyBMU0kgM3dhcmUgOTc1MCBTQVRBK1NBUyA2R2IvcyBSQUlEIGNvbnRy
b2xsZXIKCiMgYXRrYmRjMCBjb250cm9scyBib3RoIHRoZSBrZXlib2FyZCBhbmQgdGhlIFBTLzIg
bW91c2UKZGV2aWNlCQlhdGtiZGMJCSMgQVQga2V5Ym9hcmQgY29udHJvbGxlcgpkZXZpY2UJCWF0
a2JkCQkjIEFUIGtleWJvYXJkCmRldmljZQkJcHNtCQkjIFBTLzIgbW91c2UKCmRldmljZQkJa2Jk
bXV4CQkjIGtleWJvYXJkIG11bHRpcGxleGVyCgpkZXZpY2UJCXZnYQkJIyBWR0EgdmlkZW8gY2Fy
ZCBkcml2ZXIKI29wdGlvbnMgCVZFU0EJCSMgQWRkIHN1cHBvcnQgZm9yIFZFU0EgQklPUyBFeHRl
bnNpb25zIChWQkUpCgpkZXZpY2UJCXNwbGFzaAkJIyBTcGxhc2ggc2NyZWVuIGFuZCBzY3JlZW4g
c2F2ZXIgc3VwcG9ydAoKIyBzeXNjb25zIGlzIHRoZSBkZWZhdWx0IGNvbnNvbGUgZHJpdmVyLCBy
ZXNlbWJsaW5nIGFuIFNDTyBjb25zb2xlCmRldmljZQkJc2MKb3B0aW9ucyAJU0NfUElYRUxfTU9E
RQkjIGFkZCBzdXBwb3J0IGZvciB0aGUgcmFzdGVyIHRleHQgbW9kZQoKZGV2aWNlCQlhZ3AJCSMg
c3VwcG9ydCBzZXZlcmFsIEFHUCBjaGlwc2V0cwoKIyBQQ0NBUkQgKFBDTUNJQSkgc3VwcG9ydAoj
IFBDTUNJQSBhbmQgY2FyZGJ1cyBicmlkZ2Ugc3VwcG9ydApkZXZpY2UJCWNiYgkJIyBjYXJkYnVz
ICh5ZW50YSkgYnJpZGdlCmRldmljZQkJcGNjYXJkCQkjIFBDIENhcmQgKDE2LWJpdCkgYnVzCmRl
dmljZQkJY2FyZGJ1cwkJIyBDYXJkQnVzICgzMi1iaXQpIGJ1cwoKIyBTZXJpYWwgKENPTSkgcG9y
dHMKZGV2aWNlCQl1YXJ0CQkjIEdlbmVyaWMgVUFSVCBkcml2ZXIKCiMgUGFyYWxsZWwgcG9ydApk
ZXZpY2UJCXBwYwpkZXZpY2UJCXBwYnVzCQkjIFBhcmFsbGVsIHBvcnQgYnVzIChyZXF1aXJlZCkK
ZGV2aWNlCQlscHQJCSMgUHJpbnRlcgpkZXZpY2UJCXBsaXAJCSMgVENQL0lQIG92ZXIgcGFyYWxs
ZWwKZGV2aWNlCQlwcGkJCSMgUGFyYWxsZWwgcG9ydCBpbnRlcmZhY2UgZGV2aWNlCiNkZXZpY2UJ
CXZwbwkJIyBSZXF1aXJlcyBzY2J1cyBhbmQgZGEKCmRldmljZQkJcHVjCQkjIE11bHRpIEkvTyBj
YXJkcyBhbmQgbXVsdGktY2hhbm5lbCBVQVJUcwoKIyBQQ0kgRXRoZXJuZXQgTklDcy4KZGV2aWNl
CQlieGUJCSMgQnJvYWRjb20gQkNNNTc3MTAvQkNNNTc3MTEvQkNNNTc3MTFFIDEwR2IgRXRoZXJu
ZXQKZGV2aWNlCQlkZQkJIyBERUMvSW50ZWwgREMyMXg0eCAoYGBUdWxpcCcnKQpkZXZpY2UJCWVt
CQkjIEludGVsIFBSTy8xMDAwIEdpZ2FiaXQgRXRoZXJuZXQgRmFtaWx5CmRldmljZQkJaWdiCQkj
IEludGVsIFBSTy8xMDAwIFBDSUUgU2VydmVyIEdpZ2FiaXQgRmFtaWx5CmRldmljZQkJaXhnYmUJ
CSMgSW50ZWwgUFJPLzEwR2JFIFBDSUUgRXRoZXJuZXQgRmFtaWx5CmRldmljZQkJbGUJCSMgQU1E
IEFtNzkwMCBMQU5DRSBhbmQgQW03OUM5eHggUENuZXQKZGV2aWNlCQl0aQkJIyBBbHRlb24gTmV0
d29ya3MgVGlnb24gSS9JSSBnaWdhYml0IEV0aGVybmV0CmRldmljZQkJdHhwCQkjIDNDb20gM2NS
OTkwIChgYFR5cGhvb24nJykKZGV2aWNlCQl2eAkJIyAzQ29tIDNjNTkwLCAzYzU5NSAoYGBWb3J0
ZXgnJykKCiMgUENJIEV0aGVybmV0IE5JQ3MgdGhhdCB1c2UgdGhlIGNvbW1vbiBNSUkgYnVzIGNv
bnRyb2xsZXIgY29kZS4KIyBOT1RFOiBCZSBzdXJlIHRvIGtlZXAgdGhlICdkZXZpY2UgbWlpYnVz
JyBsaW5lIGluIG9yZGVyIHRvIHVzZSB0aGVzZSBOSUNzIQpkZXZpY2UJCW1paWJ1cwkJIyBNSUkg
YnVzIHN1cHBvcnQKZGV2aWNlCQlhZQkJIyBBdHRhbnNpYy9BdGhlcm9zIEwyIEZhc3RFdGhlcm5l
dApkZXZpY2UJCWFnZQkJIyBBdHRhbnNpYy9BdGhlcm9zIEwxIEdpZ2FiaXQgRXRoZXJuZXQKZGV2
aWNlCQlhbGMJCSMgQXRoZXJvcyBBUjgxMzEvQVI4MTMyIEV0aGVybmV0CmRldmljZQkJYWxlCQkj
IEF0aGVyb3MgQVI4MTIxL0FSODExMy9BUjgxMTQgRXRoZXJuZXQKZGV2aWNlCQliY2UJCSMgQnJv
YWRjb20gQkNNNTcwNi9CQ001NzA4IEdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQliZmUJCSMgQnJv
YWRjb20gQkNNNDQweCAxMC8xMDAgRXRoZXJuZXQKZGV2aWNlCQliZ2UJCSMgQnJvYWRjb20gQkNN
NTcweHggR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCWNhcwkJIyBTdW4gQ2Fzc2luaS9DYXNzaW5p
KyBhbmQgTlMgRFA4MzA2NSBTYXR1cm4KZGV2aWNlCQlkYwkJIyBERUMvSW50ZWwgMjExNDMgYW5k
IHZhcmlvdXMgd29ya2FsaWtlcwpkZXZpY2UJCWV0CQkjIEFnZXJlIEVUMTMxMCAxMC8xMDAvR2ln
YWJpdCBFdGhlcm5ldApkZXZpY2UJCWZ4cAkJIyBJbnRlbCBFdGhlckV4cHJlc3MgUFJPLzEwMEIg
KDgyNTU3LCA4MjU1OCkKZGV2aWNlCQlnZW0JCSMgU3VuIEdFTS9TdW4gRVJJL0FwcGxlIEdNQUMK
ZGV2aWNlCQlobWUJCSMgU3VuIEhNRSAoSGFwcHkgTWVhbCBFdGhlcm5ldCkKZGV2aWNlCQlqbWUJ
CSMgSk1pY3JvbiBKTUMyNTAgR2lnYWJpdC9KTUMyNjAgRmFzdCBFdGhlcm5ldApkZXZpY2UJCWxn
ZQkJIyBMZXZlbCAxIExYVDEwMDEgZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCW1zawkJIyBNYXJ2
ZWxsL1N5c0tvbm5lY3QgWXVrb24gSUkgR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCW5mZQkJIyBu
VmlkaWEgbkZvcmNlIE1DUCBvbi1ib2FyZCBFdGhlcm5ldApkZXZpY2UJCW5nZQkJIyBOYXRTZW1p
IERQODM4MjAgZ2lnYWJpdCBFdGhlcm5ldAojZGV2aWNlCQludmUJCSMgblZpZGlhIG5Gb3JjZSBN
Q1Agb24tYm9hcmQgRXRoZXJuZXQgTmV0d29ya2luZwpkZXZpY2UJCXBjbgkJIyBBTUQgQW03OUM5
N3ggUENJIDEwLzEwMCAocHJlY2VkZW5jZSBvdmVyICdsZScpCmRldmljZQkJcmUJCSMgUmVhbFRl
ayA4MTM5QysvODE2OS84MTY5Uy84MTEwUwpkZXZpY2UJCXJsCQkjIFJlYWxUZWsgODEyOS84MTM5
CmRldmljZQkJc2YJCSMgQWRhcHRlYyBBSUMtNjkxNSAoYGBTdGFyZmlyZScnKQpkZXZpY2UJCXNn
ZQkJIyBTaWxpY29uIEludGVncmF0ZWQgU3lzdGVtcyBTaVMxOTAvMTkxCmRldmljZQkJc2lzCQkj
IFNpbGljb24gSW50ZWdyYXRlZCBTeXN0ZW1zIFNpUyA5MDAvU2lTIDcwMTYKZGV2aWNlCQlzawkJ
IyBTeXNLb25uZWN0IFNLLTk4NHggJiBTSy05ODJ4IGdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQlz
dGUJCSMgU3VuZGFuY2UgU1QyMDEgKEQtTGluayBERkUtNTUwVFgpCmRldmljZQkJc3RnZQkJIyBT
dW5kYW5jZS9UYW1hcmFjayBUQzkwMjEgZ2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCXRsCQkjIFRl
eGFzIEluc3RydW1lbnRzIFRodW5kZXJMQU4KZGV2aWNlCQl0eAkJIyBTTUMgRXRoZXJQb3dlciBJ
SSAoODNjMTcwIGBgRVBJQycnKQpkZXZpY2UJCXZnZQkJIyBWSUEgVlQ2MTJ4IGdpZ2FiaXQgRXRo
ZXJuZXQKZGV2aWNlCQl2cgkJIyBWSUEgUmhpbmUsIFJoaW5lIElJCmRldmljZQkJd2IJCSMgV2lu
Ym9uZCBXODlDODQwRgpkZXZpY2UJCXhsCQkjIDNDb20gM2M5MHggKGBgQm9vbWVyYW5nJycsIGBg
Q3ljbG9uZScnKQoKIyBJU0EgRXRoZXJuZXQgTklDcy4gIHBjY2FyZCBOSUNzIGluY2x1ZGVkLgpk
ZXZpY2UJCWNzCQkjIENyeXN0YWwgU2VtaWNvbmR1Y3RvciBDUzg5eDAgTklDCiMgJ2RldmljZSBl
ZCcgcmVxdWlyZXMgJ2RldmljZSBtaWlidXMnCmRldmljZQkJZWQJCSMgTkVbMTJdMDAwLCBTTUMg
VWx0cmEsIDNjNTAzLCBEUzgzOTAgY2FyZHMKZGV2aWNlCQlleAkJIyBJbnRlbCBFdGhlckV4cHJl
c3MgUHJvLzEwIGFuZCBQcm8vMTArCmRldmljZQkJZXAJCSMgRXRoZXJsaW5rIElJSSBiYXNlZCBj
YXJkcwpkZXZpY2UJCWZlCQkjIEZ1aml0c3UgTUI4Njk2eCBiYXNlZCBjYXJkcwpkZXZpY2UJCXNu
CQkjIFNNQydzIDkwMDAgc2VyaWVzIG9mIEV0aGVybmV0IGNoaXBzCmRldmljZQkJeGUJCSMgWGly
Y29tIHBjY2FyZCBFdGhlcm5ldAoKIyBXaXJlbGVzcyBOSUMgY2FyZHMKZGV2aWNlCQl3bGFuCQkj
IDgwMi4xMSBzdXBwb3J0Cm9wdGlvbnMgCUlFRUU4MDIxMV9ERUJVRwkjIGVuYWJsZSBkZWJ1ZyBt
c2dzCm9wdGlvbnMgCUlFRUU4MDIxMV9BTVBEVV9BR0UgIyBhZ2UgZnJhbWVzIGluIEFNUERVIHJl
b3JkZXIgcSdzCm9wdGlvbnMgCUlFRUU4MDIxMV9TVVBQT1JUX01FU0gJIyBlbmFibGUgODAyLjEx
cyBkcmFmdCBzdXBwb3J0CmRldmljZQkJd2xhbl93ZXAJIyA4MDIuMTEgV0VQIHN1cHBvcnQKZGV2
aWNlCQl3bGFuX2NjbXAJIyA4MDIuMTEgQ0NNUCBzdXBwb3J0CmRldmljZQkJd2xhbl90a2lwCSMg
ODAyLjExIFRLSVAgc3VwcG9ydApkZXZpY2UJCXdsYW5fYW1ycgkjIEFNUlIgdHJhbnNtaXQgcmF0
ZSBjb250cm9sIGFsZ29yaXRobQpkZXZpY2UJCWFuCQkjIEFpcm9uZXQgNDUwMC80ODAwIDgwMi4x
MSB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCWF0aAkJIyBBdGhlcm9zIE5JQydzCmRldmljZQkJYXRo
X3BjaQkJIyBBdGhlcm9zIHBjaS9jYXJkYnVzIGdsdWUKZGV2aWNlCQlhdGhfaGFsCQkjIHBjaS9j
YXJkYnVzIGNoaXAgc3VwcG9ydApvcHRpb25zIAlBSF9TVVBQT1JUX0FSNTQxNgkjIGVuYWJsZSBB
UjU0MTYgdHgvcnggZGVzY3JpcHRvcnMKb3B0aW9ucyAJQUhfQVI1NDE2X0lOVEVSUlVQVF9NSVRJ
R0FUSU9OCSMgQVI1NDE2IGludGVycnVwdCBtaXRpZ2F0aW9uCm9wdGlvbnMgCUFUSF9FTkFCTEVf
MTFOCSMgRW5hYmxlIDgwMi4xMW4gc3VwcG9ydCBmb3IgQVI1NDE2IGFuZCBsYXRlcgpkZXZpY2UJ
CWF0aF9yYXRlX3NhbXBsZQkjIFNhbXBsZVJhdGUgdHggcmF0ZSBjb250cm9sIGZvciBhdGgKI2Rl
dmljZQkJYndpCQkjIEJyb2FkY29tIEJDTTQzMHgvQkNNNDMxeCB3aXJlbGVzcyBOSUNzLgojZGV2
aWNlCQlid24JCSMgQnJvYWRjb20gQkNNNDN4eCB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCWlwdwkJ
IyBJbnRlbCAyMTAwIHdpcmVsZXNzIE5JQ3MuCmRldmljZQkJaXdpCQkjIEludGVsIDIyMDBCRy8y
MjI1QkcvMjkxNUFCRyB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCWl3bgkJIyBJbnRlbCA0OTY1LzEw
MDAvNTAwMC82MDAwIHdpcmVsZXNzIE5JQ3MuCmRldmljZQkJbWFsbwkJIyBNYXJ2ZWxsIExpYmVy
dGFzIHdpcmVsZXNzIE5JQ3MuCmRldmljZQkJbXdsCQkjIE1hcnZlbGwgODhXODM2MyA4MDIuMTFu
IHdpcmVsZXNzIE5JQ3MuCmRldmljZQkJcmFsCQkjIFJhbGluayBUZWNobm9sb2d5IFJUMjUwMCB3
aXJlbGVzcyBOSUNzLgpkZXZpY2UJCXdpCQkjIFdhdmVMQU4vSW50ZXJzaWwvU3ltYm9sIDgwMi4x
MSB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCXdwaQkJIyBJbnRlbCAzOTQ1QUJHIHdpcmVsZXNzIE5J
Q3MuCgojIFBzZXVkbyBkZXZpY2VzLgpkZXZpY2UJCWxvb3AJCSMgTmV0d29yayBsb29wYmFjawpk
ZXZpY2UJCXJhbmRvbQkJIyBFbnRyb3B5IGRldmljZQpkZXZpY2UJCWV0aGVyCQkjIEV0aGVybmV0
IHN1cHBvcnQKZGV2aWNlCQl2bGFuCQkjIDgwMi4xUSBWTEFOIHN1cHBvcnQKZGV2aWNlCQl0dW4J
CSMgUGFja2V0IHR1bm5lbC4KZGV2aWNlCQltZAkJIyBNZW1vcnkgImRpc2tzIgpkZXZpY2UJCWdp
ZgkJIyBJUHY2IGFuZCBJUHY0IHR1bm5lbGluZwpkZXZpY2UJCWZhaXRoCQkjIElQdjYtdG8tSVB2
NCByZWxheWluZyAodHJhbnNsYXRpb24pCmRldmljZQkJZmlybXdhcmUJIyBmaXJtd2FyZSBhc3Np
c3QgbW9kdWxlCgojIFRoZSBgYnBmJyBkZXZpY2UgZW5hYmxlcyB0aGUgQmVya2VsZXkgUGFja2V0
IEZpbHRlci4KIyBCZSBhd2FyZSBvZiB0aGUgYWRtaW5pc3RyYXRpdmUgY29uc2VxdWVuY2VzIG9m
IGVuYWJsaW5nIHRoaXMhCiMgTm90ZSB0aGF0ICdicGYnIGlzIHJlcXVpcmVkIGZvciBESENQLgpk
ZXZpY2UJCWJwZgkJIyBCZXJrZWxleSBwYWNrZXQgZmlsdGVyCgojIFVTQiBzdXBwb3J0Cm9wdGlv
bnMgCVVTQl9ERUJVRwkjIGVuYWJsZSBkZWJ1ZyBtc2dzCmRldmljZQkJdWhjaQkJIyBVSENJIFBD
SS0+VVNCIGludGVyZmFjZQpkZXZpY2UJCW9oY2kJCSMgT0hDSSBQQ0ktPlVTQiBpbnRlcmZhY2UK
ZGV2aWNlCQllaGNpCQkjIEVIQ0kgUENJLT5VU0IgaW50ZXJmYWNlIChVU0IgMi4wKQpkZXZpY2UJ
CXhoY2kJCSMgWEhDSSBQQ0ktPlVTQiBpbnRlcmZhY2UgKFVTQiAzLjApCmRldmljZQkJdXNiCQkj
IFVTQiBCdXMgKHJlcXVpcmVkKQpkZXZpY2UJCXVrYmQJCSMgS2V5Ym9hcmQKZGV2aWNlCQl1bWFz
cwkJIyBEaXNrcy9NYXNzIHN0b3JhZ2UgLSBSZXF1aXJlcyBzY2J1cyBhbmQgZGEKCiMgRmlyZVdp
cmUgc3VwcG9ydApkZXZpY2UJCWZpcmV3aXJlCSMgRmlyZVdpcmUgYnVzIGNvZGUKIyBzYnAoNCkg
d29ya3MgZm9yIHNvbWUgc3lzdGVtcyBidXQgY2F1c2VzIGJvb3QgZmFpbHVyZSBvbiBvdGhlcnMK
I2RldmljZQkJc2JwCQkjIFNDU0kgb3ZlciBGaXJlV2lyZSAoUmVxdWlyZXMgc2NidXMgYW5kIGRh
KQpkZXZpY2UJCWZ3ZQkJIyBFdGhlcm5ldCBvdmVyIEZpcmVXaXJlIChub24tc3RhbmRhcmQhKQpk
ZXZpY2UJCWZ3aXAJCSMgSVAgb3ZlciBGaXJlV2lyZSAoUkZDIDI3MzQsMzE0NikKZGV2aWNlCQlk
Y29ucwkJIyBEdW1iIGNvbnNvbGUgZHJpdmVyCmRldmljZQkJZGNvbnNfY3JvbQkjIENvbmZpZ3Vy
YXRpb24gUk9NIGZvciBkY29ucwoKIyBTb3VuZCBzdXBwb3J0CmRldmljZQkJc291bmQJCSMgR2Vu
ZXJpYyBzb3VuZCBkcml2ZXIgKHJlcXVpcmVkKQpkZXZpY2UJCXNuZF9jbWkJCSMgQ01lZGlhIENN
STgzMzgvQ01JODczOApkZXZpY2UJCXNuZF9jc2EJCSMgQ3J5c3RhbCBTZW1pY29uZHVjdG9yIENT
NDYxeC80Mjh4CmRldmljZQkJc25kX2VtdTEwa3gJIyBDcmVhdGl2ZSBTb3VuZEJsYXN0ZXIgTGl2
ZSEgYW5kIEF1ZGlneQpkZXZpY2UJCXNuZF9lczEzN3gJIyBFbnNvbmlxIEF1ZGlvUENJIEVTMTM3
eApkZXZpY2UJCXNuZF9oZGEJCSMgSW50ZWwgSGlnaCBEZWZpbml0aW9uIEF1ZGlvCmRldmljZQkJ
c25kX2ljaAkJIyBJbnRlbCwgTlZpZGlhIGFuZCBvdGhlciBJQ0ggQUMnOTcgQXVkaW8KZGV2aWNl
CQlzbmRfdmlhODIzMwkjIFZJQSBWVDgyMzN4IEF1ZGlvCgojIE1NQy9TRApkZXZpY2UJCW1tYwkJ
IyBNTUMvU0QgYnVzCmRldmljZQkJbW1jc2QJCSMgTU1DL1NEIG1lbW9yeSBjYXJkCmRldmljZQkJ
c2RoY2kJCSMgR2VuZXJpYyBQQ0kgU0QgSG9zdCBDb250cm9sbGVyCg==
--90e6ba308ef21743bd04c5721fd9--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BXA1unEPqexDX7HbwfO6YGu5pTnrFkgHGqUtEbiRjk2EV22aw>