Re: [2.1.132] Modularized sound oops, OPL3-SA1

Bob McElrath (mcelrath@draal.physics.wisc.edu)
Mon, 28 Dec 1998 13:32:52 -0600 (EST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--1753253599-1076025018-914873136=:31243
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.4.04.9812281325421.31243@draal.physics.wisc.edu>

I have fixed this for the pas card (modified pas2_card.c attached). There
are three usage counts for IRQ, DMA, and I/O port. The attached file fixes
it so that you can insmod and rmmod and usage gets updated correctly. The
correction is all in the unload_pas function. <Linus/Alan: Please don't
incorporate this into official sources yet>

I don't know what to do with the pas2 i/o port allocation though. It uses
harmonics of 4-bit wide port space starting at 0x388 all the way up to
0x9788. (See thread "proper ioport space allocation" on this list)
Currently it blocks off *all* portspace used by the pas2 card. (Before I
modified it, it didin't allocate ANY portspace) But it's a lot. I'm also
afraid that the pas2 uses the harmonics (0x388 + n*0x400 where n is an
integer) that are *not* documented, but haven't been able to prove this yet.

Ideally, we could reserve all the port space the pas uses (documented or
not) to avoid conflict.

There is also a documented memory leak in soundcore. (Grep for "FIXME") If
you're testing changes to sound drivers, insmod sound, soundcore, and pas2,
then rmmod all three of them. The problem is a fixed length array of
devices, IIRC, but it never re-uses elements of the array when stuff is
removed.

Unfortunately, I'm 1000 miles away from my box with the pas2 in it, so this
is all the help I can be until sometime around 15 Jan. :(

On Sun, 27 Dec 1998, Alex Stewart wrote:

> (I picked this up while browsing through a kernel archive for last week)
>
> > With a modularized opl3sa1 sound card setup, it looks like soundcore.o's
> > MOD_USE_COUNT is never fully decremented, even when all it's child modules
> > are (auto or manually) unloaded, and the next attempt at autoloading the
> > sound modules causes an oops.
>
> I just wanted to note that I've seen the same behavior with 2.1.131 and
> my (fixed) pas2 driver, though I haven't yet had it oops on me. The
> symptoms are as follows:
>
> (using Kernel 2.1.131 (with linux-2.1.131-pas.patch posted to this list
> earlier) with modutils 2.1.121 on a Pentium 75 (32MB RAM, 1.5GB HD))
>
> [root@mondas /]# insmod soundcore
> [root@mondas /]# lsmod
> Module Size Used by
> soundcore 1968 0 (unused)
> [root@mondas /]# insmod sound
> [root@mondas /]# lsmod
> Module Size Used by
> sound 57084 0 (unused)
> soundcore 1968 3 [sound]
> [root@mondas /]# insmod pas2 io=0x388 irq=11 dma=7
> [root@mondas /]# lsmod
> Module Size Used by
> pas2 11376 0 (unused)
> sound 57084 0 [pas2]
> soundcore 1968 6 [sound]
> [root@mondas /]# rmmod pas2
> [root@mondas /]# lsmod
> Module Size Used by
> sound 57084 0
> soundcore 1968 6 [sound]
> [root@mondas /]# insmod pas2 io=0x388 irq=11 dma=7
> [root@mondas /]# lsmod
> Module Size Used by
> pas2 11376 0 (unused)
> sound 57084 0 [pas2]
> soundcore 1968 9 [sound]
> [root@mondas /]# rmmod pas2
> [root@mondas /]# lsmod
> Module Size Used by
> sound 57084 0
> soundcore 1968 9 [sound]
> [root@mondas /]# rmmod sound
> [root@mondas /]# lsmod
> Module Size Used by
> soundcore 1968 6
>
> (equivalent behavior when using 'modprobe pas2' or demand-loading/etc.)
>
> I note that the soundcore use count goes up by 3 when the sound module
> is loaded, which gets decremented properly when it's unloaded, but when
> the pas2 module is loaded it gets incremented by the same amount (3)
> which doesn't ever get decremented. Could the loading of the pas2
> module be erroneously causing the sound module's use of soundcore to be
> counted again?
>
> I don't know a lot about this aspect of the kernel stuff (just recently
> started looking into module stuff) but one wonders if this might be a
> problem with three(plus)-module chains (most other things I've seen
> don't have dependencies deeper than 2 levels). I don't know off hand of
> any 4-deep chains I could try with my hardware or I would..
>
> Anyway, just some speculations.. I'll post more if I come up with
> anything more revealing.
>
> Please CC any relevant questions/comments to me directly, as I am not
> currently subscribed to the linux-kernel maillist.

-- Bob

Bob McElrath (mcelrath@draal.physics.wisc.edu) Univ. of Wisconsin at Madison

--1753253599-1076025018-914873136=:31243
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="pas2_card.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.04.9812281325360.31243@draal.physics.wisc.edu>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="pas2_card.c"

LyoNCiAqIHNvdW5kL3BhczJfY2FyZC5jDQogKg0KICogRGV0ZWN0aW9uIHJv
dXRpbmUgZm9yIHRoZSBQcm8gQXVkaW8gU3BlY3RydW0gY2FyZHMuDQogKi8N
Cg0KI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPg0KI2luY2x1ZGUgPGxpbnV4
L21vZHVsZS5oPg0KI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+DQojaW5jbHVk
ZSAic291bmRfY29uZmlnLmgiDQojaW5jbHVkZSAic291bmRtb2R1bGUuaCIN
CiNpbmNsdWRlICJwYXMyLmgiDQoNCiNpZmRlZiBDT05GSUdfUEFTDQojZGVm
aW5lIERJU0FCTEVfU0JfRU1VTEFUSU9ODQoNCiNkZWZpbmUgREVCVUcoQkxP
Q0spCUJMT0NLDQoNCnN0YXRpYyB1bnNpZ25lZCBjaGFyIGRtYV9iaXRzW10g
PSB7DQoJNCwgMSwgMiwgMywgMCwgNSwgNiwgNw0KfTsNCg0Kc3RhdGljIHVu
c2lnbmVkIGNoYXIgaXJxX2JpdHNbXSA9IHsNCgkwLCAwLCAxLCAyLCAzLCA0
LCA1LCA2LCAwLCAxLCA3LCA4LCA5LCAwLCAxMCwgMTENCn07DQoNCnN0YXRp
YyB1bnNpZ25lZCBjaGFyIHNiX2lycV9iaXRzW10gPSB7DQoJMHgwMCwgMHgw
MCwgMHgwOCwgMHgxMCwgMHgwMCwgMHgxOCwgMHgwMCwgMHgyMCwgDQoJMHgw
MCwgMHgwOCwgMHgyOCwgMHgzMCwgMHgzOCwgMCwgMA0KfTsNCg0Kc3RhdGlj
IHVuc2lnbmVkIGNoYXIgc2JfZG1hX2JpdHNbXSA9IHsNCgkweDAwLCAweDQw
LCAweDgwLCAweEMwLCAwLCAwLCAwLCAwDQp9Ow0KDQovKg0KICogVGhlIEFk
ZHJlc3MgVHJhbnNsYXRpb24gY29kZSBpcyB1c2VkIHRvIGNvbnZlcnQgSS9P
IHJlZ2lzdGVyIGFkZHJlc3NlcyB0bw0KICogYmUgcmVsYXRpdmUgdG8gdGhl
IGdpdmVuIGJhc2UgLXJlZ2lzdGVyDQogKi8NCg0KaW50ICAgICAgICAgICAg
IHRyYW5zbGF0ZV9jb2RlID0gMDsNCnN0YXRpYyBpbnQgICAgICBwYXNfaW50
cl9tYXNrID0gMDsNCnN0YXRpYyBpbnQgICAgICBwYXNfaXJxID0gMDsNCnN0
YXRpYyBpbnQgICAgICBwYXNfc2JfYmFzZSA9IDA7DQojaWZuZGVmIENPTkZJ
R19QQVNfSk9ZU1RJQ0sNCnN0YXRpYyBpbnQJam95c3RpY2sgPSAwOw0KI2Vs
c2UNCnN0YXRpYyBpbnQgCWpveXN0aWNrID0gMTsNCiNlbmRpZg0KI2lmZGVm
IFNZTVBIT05ZX1BBUw0Kc3RhdGljIGludCAJc3ltcGhvbnkgPSAxOw0KI2Vs
c2UNCnN0YXRpYyBpbnQgCXN5bXBob255ID0gMDsNCiNlbmRpZg0KI2lmZGVm
IEJST0tFTl9CVVNfQ0xPQ0sNCnN0YXRpYyBpbnQJYnJva2VuX2J1c19jbG9j
ayA9IDE7DQojZWxzZQ0Kc3RhdGljIGludAlicm9rZW5fYnVzX2Nsb2NrID0g
MDsNCiNlbmRpZg0KDQoNCmNoYXIgICAgICAgICAgICBwYXNfbW9kZWwgPSAw
Ow0Kc3RhdGljIGNoYXIgICAgKnBhc19tb2RlbF9uYW1lc1tdID0gew0KCSIi
LCANCgkiUHJvIEF1ZGlvU3BlY3RydW0rIiwgDQoJIkNEUEMiLCANCgkiUHJv
IEF1ZGlvU3BlY3RydW0gMTYiLCANCgkiUHJvIEF1ZGlvU3BlY3RydW0gMTZE
Ig0KfTsNCg0KLyoNCiAqIHBhc19yZWFkKCkgYW5kIHBhc193cml0ZSgpIGFy
ZSBlcXVpdmFsZW50cyBvZiBpbmIgYW5kIG91dGIgDQogKiBUaGVzZSByb3V0
aW5lcyBwZXJmb3JtIHRoZSBJL08gYWRkcmVzcyB0cmFuc2xhdGlvbiByZXF1
aXJlZA0KICogdG8gc3VwcG9ydCBvdGhlciB0aGFuIHRoZSBkZWZhdWx0IGJh
c2UgYWRkcmVzcw0KICovDQoNCmV4dGVybiB2b2lkICAgICBtaXhfd3JpdGUo
dW5zaWduZWQgY2hhciBkYXRhLCBpbnQgaW9hZGRyKTsNCg0KdW5zaWduZWQg
Y2hhciBwYXNfcmVhZChpbnQgaW9hZGRyKQ0Kew0KCXJldHVybiBpbmIoaW9h
ZGRyIF4gdHJhbnNsYXRlX2NvZGUpOw0KfQ0KDQp2b2lkIHBhc193cml0ZSh1
bnNpZ25lZCBjaGFyIGRhdGEsIGludCBpb2FkZHIpDQp7DQoJdWRlbGF5KDIw
KTsNCglvdXRiKChkYXRhKSwgaW9hZGRyIF4gdHJhbnNsYXRlX2NvZGUpOw0K
fQ0KDQovKioqKioqKioqKioqKioqKioqKiBCZWdpbiBvZiB0aGUgSW50ZXJy
dXB0IEhhbmRsZXIgKioqKioqKioqKioqKioqKioqKiovDQoNCnN0YXRpYyB2
b2lkIHBhc2ludHIoaW50IGlycSwgdm9pZCAqZGV2X2lkLCBzdHJ1Y3QgcHRf
cmVncyAqZHVtbXkpDQp7DQoJaW50ICAgICAgICAgICAgIHN0YXR1czsNCg0K
CXN0YXR1cyA9IHBhc19yZWFkKElOVEVSUlVQVF9TVEFUVVMpOw0KCXBhc193
cml0ZShzdGF0dXMsIElOVEVSUlVQVF9TVEFUVVMpOwkvKiBDbGVhciBpbnRl
cnJ1cHQgKi8NCg0KCWlmIChzdGF0dXMgJiAweDA4KQ0KCXsNCiNpZmRlZiBD
T05GSUdfQVVESU8NCgkJICBwYXNfcGNtX2ludGVycnVwdChzdGF0dXMsIDEp
Ow0KI2VuZGlmDQoJCSAgc3RhdHVzICY9IH4weDA4Ow0KCX0NCglpZiAoc3Rh
dHVzICYgMHgxMCkNCgl7DQojaWZkZWYgQ09ORklHX01JREkNCgkJICBwYXNf
bWlkaV9pbnRlcnJ1cHQoKTsNCiNlbmRpZg0KCQkgIHN0YXR1cyAmPSB+MHgx
MDsNCgl9DQp9DQoNCmludCBwYXNfc2V0X2ludHIoaW50IG1hc2spDQp7DQoJ
aWYgKCFtYXNrKQ0KCQlyZXR1cm4gMDsNCg0KCXBhc19pbnRyX21hc2sgfD0g
bWFzazsNCg0KCXBhc193cml0ZShwYXNfaW50cl9tYXNrLCBJTlRFUlJVUFRf
Q09OVFJPTCk7DQoJcmV0dXJuIDA7DQp9DQoNCmludCBwYXNfcmVtb3ZlX2lu
dHIoaW50IG1hc2spDQp7DQoJaWYgKCFtYXNrKQ0KCQlyZXR1cm4gMDsNCg0K
CXBhc19pbnRyX21hc2sgJj0gfm1hc2s7DQoJcGFzX3dyaXRlKHBhc19pbnRy
X21hc2ssIDB4MEI4Qik7DQoNCglyZXR1cm4gMDsNCn0NCg0KLyoqKioqKioq
KioqKioqKioqKiogRW5kIG9mIHRoZSBJbnRlcnJ1cHQgaGFuZGxlciAqKioq
KioqKioqKioqKioqKioqKioqLw0KDQovKioqKioqKioqKioqKioqKioqKiBC
ZWdpbiBvZiB0aGUgSW5pdGlhbGl6YXRpb24gQ29kZSAqKioqKioqKioqKioq
KioqKiovDQoNCmV4dGVybiBzdHJ1Y3QgYWRkcmVzc19pbmZvIHNiaHdfY29u
ZmlnOw0KZXh0ZXJuIGludCBwYXNfYXVkaW9kZXY7DQpleHRlcm4gaW50IHBh
czJfbWlkaV9kZXY7DQoNCnN0YXRpYyBpbnQgY29uZmlnX3Bhc19odyhzdHJ1
Y3QgYWRkcmVzc19pbmZvICpod19jb25maWcpDQp7DQoJY2hhciAgICAgICAg
ICAgIG9rID0gMTsNCgl1bnNpZ25lZCAgICAgICAgaW50X3B0cnM7CS8qIHNj
c2kvc291bmQgaW50ZXJydXB0IHBvaW50ZXJzICovDQoNCglwYXNfaXJxID0g
aHdfY29uZmlnLT5pcnE7DQoNCiAgICAgICAgcGFzX3dyaXRlKElfQ18xX0JP
T1RfUkVTRVRfRU5BQkxFLCBJT19DT05GSUdVUkFUSU9OXzEpOyAvKiByZXNl
dCBjYXJkICovDQoJcGFzX3dyaXRlKDB4MDEsIEZBS0VfV0FSTV9CT09UKTsJ
LyogZmFrZSBhIHdhcm0gYm9vdCAqLw0KCXVkZWxheSgxNDApOw0KLy8JcGFz
X3dyaXRlKDB4MDAsIElOVEVSUlVQVF9DT05UUk9MKTsNCglwYXNfd3JpdGUo
SV9DX1BDTV9CVUZGRVJfSVJRX0VOQUJMRSB8IElfQ19QQ01fUkFURV9JUlFf
RU5BQkxFLCBJTlRFUlJVUFRfQ09OVFJPTCk7DQoJcGFzX3dyaXRlKDB4MzYs
IFRJTUVSX0NPTlRST0wpOw0KCXBhc193cml0ZSgweDM2LCBTQU1QTEVfUkFU
RV9USU1FUik7DQoJcGFzX3dyaXRlKDAsIFNBTVBMRV9SQVRFX1RJTUVSKTsN
CglwYXNfd3JpdGUoMHg3NCwgVElNRVJfQ09OVFJPTCk7DQoJcGFzX3dyaXRl
KDB4NzQsIFNBTVBMRV9DT1VOVCk7DQoJcGFzX3dyaXRlKDAsIFNBTVBMRV9D
T1VOVCk7DQoNCiAgICAgICAgcGFzX3dyaXRlKEFfRl9QQ01fQlVGRkVSX0NP
VU5URVIgfCBBX0ZfUENNX1JBVEVfVElNRVIgfCANCiAgICAgICAgICAgICAg
ICBBX0ZfTUlYRVJfVU5NVVRFIHwgMSwgQVVESU9fRklMVEVSKTsNCiAgICAg
ICAgcGFzX3dyaXRlKENfQ19ETUFfRU5BQkxFIHwgQ19DX01PTk8gfCBDX0Nf
REFDX01PREUgfA0KICAgICAgICAgICAgICAgICAgQ19DX01JWEVSX0wyTCB8
IENfQ19NSVhFUl9SMlIsDQogICAgICAgICAgICAgICAgICBDUk9TU19DSEFO
TkVMKTsNCiAgICAgICAgcGFzX3dyaXRlKEFfTV9QQ01fUkVTRVQgfCBBX01f
Rk1fUkVTRVQgfA0KICAgICAgICAgICAgICAgICAgQV9NX1NCX1JFU0VUIHwg
QV9NX01JWEVSX1JFU0VULCBBVURJT19NSVhFUik7DQoNCgkvKnBhc193cml0
ZSgweDAxIHwgMHgwMiB8IDB4MDQgfCAweDEwCQ0KCQkJCQkJICogfA0KCQkJ
CQkJICogMHg4MA0KCQkJCQkJICwgU0VSSUFMX01JWEVSKTsgKi8NCiAgICAg
ICAgcGFzX3dyaXRlKElfQ18xX0JPT1RfUkVTRVRfRU5BQkxFLCBJT19DT05G
SUdVUkFUSU9OXzEpOw0KDQoJLypwYXNfd3JpdGUoMHg4MA0KCQkgIHwgam95
c3RpY2s/MHg0MDowIA0KCQkgICwweEYzODgpOyovDQoNCglpZiAocGFzX2ly
cSA8IDAgfHwgcGFzX2lycSA+IDE1KQ0KCXsNCgkJcHJpbnRrKEtFUk5fRVJS
ICJQQVMxNjogSW52YWxpZCBJUlEgJWRcbiIsIHBhc19pcnEpOw0KCQlvayA9
IDA7DQoJfQ0KCWVsc2UNCgl7DQoJCWludF9wdHJzID0gcGFzX3JlYWQoSU9f
Q09ORklHVVJBVElPTl8zKTsNCgkJaW50X3B0cnMgfD0gaXJxX2JpdHNbcGFz
X2lycV0gJiAweGY7DQoJCXBhc193cml0ZShpbnRfcHRycywgSU9fQ09ORklH
VVJBVElPTl8zKTsNCgkJaW50X3B0cnMgPSBwYXNfcmVhZChJT19DT05GSUdV
UkFUSU9OXzMpOw0KCQlpZiAoIWlycV9iaXRzW3Bhc19pcnFdKQ0KCQl7DQoJ
CQlwcmludGsoS0VSTl9FUlIgIlBBUzE2OiBJbnZhbGlkIElSUSAlZFxuIiwg
cGFzX2lycSk7DQoJCQlvayA9IDA7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlp
ZiAocmVxdWVzdF9pcnEocGFzX2lycSwgcGFzaW50ciwgMCwgcGFzX21vZGVs
X25hbWVzWyhpbnQpIHBhc19tb2RlbF0sTlVMTCkgPCAwKQ0KCQkJCW9rID0g
MDsNCgkJfQ0KCX0NCg0KCWlmIChod19jb25maWctPmRtYSA8IDAgfHwgaHdf
Y29uZmlnLT5kbWEgPiA3KQ0KCXsNCgkJcHJpbnRrKEtFUk5fRVJSICJQQVMx
NjogSW52YWxpZCBETUEgc2VsZWN0aW9uICVkXG4iLCBod19jb25maWctPmRt
YSk7DQoJCW9rID0gMDsNCgl9DQoJZWxzZQ0KCXsNCgkJcGFzX3dyaXRlKGRt
YV9iaXRzW2h3X2NvbmZpZy0+ZG1hXSwgSU9fQ09ORklHVVJBVElPTl8yKTsN
CgkJaWYgKCFkbWFfYml0c1tod19jb25maWctPmRtYV0pDQoJCXsNCgkJCXBy
aW50ayhLRVJOX0VSUiAiUEFTMTY6IEludmFsaWQgRE1BIHNlbGVjdGlvbiAl
ZFxuIiwgaHdfY29uZmlnLT5kbWEpOw0KCQkJb2sgPSAwOw0KCQl9DQoJCWVs
c2UNCgkJew0KCQkJaWYgKHNvdW5kX2FsbG9jX2RtYShod19jb25maWctPmRt
YSwgcGFzX21vZGVsX25hbWVzWyhpbnQpcGFzX21vZGVsXSkpDQoJCQl7DQoJ
CQkJcHJpbnRrKEtFUk5fRVJSICJwYXMyX2NhcmQuYzogQ2FuJ3QgYWxsb2Nh
dGUgRE1BIGNoYW5uZWxcbiIpOw0KCQkJCW9rID0gMDsNCgkJCX0NCgkJfQ0K
CX0NCg0KCS8qDQoJICogVGhpcyBmaXhlcyB0aGUgdGltaW5nIHByb2JsZW1z
IG9mIHRoZSBQQVMgZHVlIHRvIHRoZSBTeW1waG9ueSBjaGlwc2V0DQoJICog
YXMgcGVyIE1lZGlhIFZpc2lvbi4gIE9ubHkgZGVmaW5lIHRoaXMgaWYgeW91
ciBQQVMgZG9lc24ndCB3b3JrIGNvcnJlY3RseS4NCgkgKi8NCg0KCWlmKHN5
bXBob255KQ0KCXsNCgkJb3V0YigoMHgwNSksIDB4YTgpOw0KCQlvdXRiKCgw
eDYwKSwgMHhhOSk7DQoJfQ0KDQogICAgICAgIHBhc193cml0ZShTX0NfMV9Q
Q19TUEtSX0VOQUJMRSB8IFNfQ18xX1BDX1NQS1JfU1RFUkVPIHwgU19DXzFf
UENfU1BLUl9SRUFMU09VTkQgfA0KCQkgIGJyb2tlbl9idXNfY2xvY2s/U19D
XzFfRk1fRU1VTEFURV9DTE9DSzoweDAwLA0KICAgICAgICAgICAgICAgICAg
U1lTVEVNX0NPTkZJR18xKTsgICAgIA0KDQogICAgICAgIHBhc193cml0ZShT
X0NfM19JTlZFUlRfQkNMSyB8IFNfQ18zX1NZTkNfUFVMU0UsIFNZU1RFTV9D
T05GSUdfMyk7DQogICAgICAgIHBhc193cml0ZShBX0ZfTUlYRVJfVU5NVVRF
IHwgMHgwMSwgQVVESU9fRklMVEVSKTsNCg0KICAgICAgICBwYXNfd3JpdGUo
OCwgT1ZFUl9TQU1QTEVfUFJFU0NBTEUpOw0KDQogICAgICAgIHBhc193cml0
ZShQX01fTUlYRVJfQUREUkVTUyB8IDB4MDUsIFBBUkFMTEVMX0FVRElPX01J
WEVSKTsNCgkvKgk/Pz8/PwkJICAgICAgXl5eXiBQX01fTVY1MDhfUENNID8/
PyAqLw0KICAgICAgICBwYXNfd3JpdGUoNSwgUEFSQUxMRUxfQVVESU9fTUlY
RVIpOw0KDQojaWYgIWRlZmluZWQoRElTQUJMRV9TQl9FTVVMQVRJT04pICYm
IGRlZmluZWQoQ09ORklHX1NCKQ0KDQoJew0KCQlzdHJ1Y3QgYWRkcmVzc19p
bmZvICpzYl9jb25maWc7DQoNCiNpZm5kZWYgTU9EVUxFDQoJCWlmICgoc2Jf
Y29uZmlnID0gc291bmRfZ2V0Y29uZihTTkRDQVJEX1NCKSkpDQojZWxzZQ0K
CQlzYl9jb25maWcgPSAmc2Jod19jb25maWc7DQoJCWlmIChzYl9jb25maWct
PmlvX2Jhc2UpDQojZW5kaWYNCgkJew0KCQkJdW5zaWduZWQgY2hhciAgIGly
cV9kbWE7DQoNCgkJCS8qDQoJCQkgKiBUdXJuIG9uIFNvdW5kIEJsYXN0ZXIg
Y29tcGF0aWJpbGl0eQ0KCQkJICogYml0IDEgPSBTQiBlbXVsYXRpb24NCgkJ
CSAqIGJpdCAwID0gTVBVNDAxIGVtdWxhdGlvbiAoQ0RQQyBvbmx5IDotKCAp
DQoJCQkgKi8NCgkJCQ0KCQkJcGFzX3dyaXRlKDB4MDIsIDB4Rjc4OCk7DQoN
CgkJCS8qDQoJCQkgKiAiRW11bGF0aW9uIGFkZHJlc3MiDQoJCQkgKi8NCgkJ
CQ0KCQkJcGFzX3dyaXRlKChzYl9jb25maWctPmlvX2Jhc2UgPj4gNCkgJiAw
eDBmLCAweEY3ODkpOw0KCQkJcGFzX3NiX2Jhc2UgPSBzYl9jb25maWctPmlv
X2Jhc2U7DQoNCgkJCWlmICghc2JfZG1hX2JpdHNbc2JfY29uZmlnLT5kbWFd
KQ0KCQkJCXByaW50ayhLRVJOX0VSUiAiUEFTMTYgV2FybmluZzogSW52YWxp
ZCBTQiBETUEgJWRcblxuIiwgc2JfY29uZmlnLT5kbWEpOw0KDQoJCQlpZiAo
IXNiX2lycV9iaXRzW3NiX2NvbmZpZy0+aXJxXSkNCgkJCQlwcmludGsoS0VS
Tl9FUlIgIlBBUzE2IFdhcm5pbmc6IEludmFsaWQgU0IgSVJRICVkXG5cbiIs
IHNiX2NvbmZpZy0+aXJxKTsNCg0KCQkJaXJxX2RtYSA9IHNiX2RtYV9iaXRz
W3NiX2NvbmZpZy0+ZG1hXSB8DQoJCQkJc2JfaXJxX2JpdHNbc2JfY29uZmln
LT5pcnFdOw0KDQoJCQlwYXNfd3JpdGUoaXJxX2RtYSwgMHhGQjhBKTsNCgkJ
fQ0KCQllbHNlDQoJCQlwYXNfd3JpdGUoMHgwMCwgMHhGNzg4KTsNCgl9DQoj
ZWxzZQ0KCXBhc193cml0ZSgweDAwLCAweEY3ODgpOw0KI2VuZGlmDQoNCglp
ZiAoIW9rKQ0KCQlwcmludGsoS0VSTl9XQVJOSU5HICJQQVMxNjogRHJpdmVy
IG5vdCBlbmFibGVkXG4iKTsNCg0KCXJldHVybiBvazsNCn0NCg0Kc3RhdGlj
IGludCBkZXRlY3RfcGFzX2h3KHN0cnVjdCBhZGRyZXNzX2luZm8gKmh3X2Nv
bmZpZykNCnsNCgl1bnNpZ25lZCBjaGFyICAgYm9hcmRfaWQsIGZvbzsNCg0K
CS8qIFBBUzE2IHVzZXMgYSBCT0FUTE9BRCBvZiBJTyBzcGFjZS4uLiAqLw0K
ICAgICAgICBpZiAoY2hlY2tfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSwg
NCkgfHwgICAgICAgICAgLyogMHgzODggKi8NCgkgICAgY2hlY2tfcmVnaW9u
KGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4NDAwLCA0KSB8fCAgLyogMHg3ODgg
Ki8NCgkgICAgY2hlY2tfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4
ODAwLCA0KSB8fCAgLyogMHhiODggKi8NCgkgICAgY2hlY2tfcmVnaW9uKGh3
X2NvbmZpZy0+aW9fYmFzZSArIDB4YzAwLCA0KSB8fCAgLyogMHhmODggKi8N
CgkgICAgY2hlY2tfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4MTAw
MCwgNCkgfHwgLyogMHgxMzg4ICovDQoJICAgIGNoZWNrX3JlZ2lvbihod19j
b25maWctPmlvX2Jhc2UgKyAweDE0MDAsIDQpIHx8IC8qIDB4MTc4OCAqLw0K
CSAgICBjaGVja19yZWdpb24oaHdfY29uZmlnLT5pb19iYXNlICsgMHgxODAw
LCA0KSB8fCAvKiAweDFiODggKi8NCgkgICAgY2hlY2tfcmVnaW9uKGh3X2Nv
bmZpZy0+aW9fYmFzZSArIDB4MjAwMCwgNCkgfHwgLyogMHgyMzg4ICovDQoJ
ICAgIGNoZWNrX3JlZ2lvbihod19jb25maWctPmlvX2Jhc2UgKyAweDQzMDAs
IDQpIHx8IC8qIDB4NDM4OCAqLw0KCSAgICBjaGVja19yZWdpb24oaHdfY29u
ZmlnLT5pb19iYXNlICsgMHg3NDAwLCA0KSB8fCAvKiAweDc3ODggKi8NCgkg
ICAgY2hlY2tfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4N2MwMCwg
NCkgfHwgLyogMHg3Zjg4ICovDQoJICAgIGNoZWNrX3JlZ2lvbihod19jb25m
aWctPmlvX2Jhc2UgKyAweDgwMDAsIDQpIHx8IC8qIDB4ODM4OCAqLw0KCSAg
ICBjaGVja19yZWdpb24oaHdfY29uZmlnLT5pb19iYXNlICsgMHhiYzAwLCA0
KSB8fCAvKiAweGJmODggKi8NCgkgICAgY2hlY2tfcmVnaW9uKGh3X2NvbmZp
Zy0+aW9fYmFzZSArIDB4ZTAwMCwgNCkgfHwgLyogMHhlMzg4ICovDQoJICAg
IGNoZWNrX3JlZ2lvbihod19jb25maWctPmlvX2Jhc2UgKyAweGU4MDAsIDQp
IHx8IC8qIDB4ZWI4OCAqLw0KCSAgICBjaGVja19yZWdpb24oaHdfY29uZmln
LT5pb19iYXNlICsgMHhlYzAwLCA0KSB8fCAvKiAweGVmODggKi8NCgkgICAg
Y2hlY2tfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4ZjAwMCwgNCkg
fHwgLyogMHhmMzg4ICovDQoJICAgIGNoZWNrX3JlZ2lvbihod19jb25maWct
PmlvX2Jhc2UgKyAweGY0MDAsIDQpIHx8IC8qIDB4Zjc4OCAqLw0KCSAgICBj
aGVja19yZWdpb24oaHdfY29uZmlnLT5pb19iYXNlICsgMHhmODAwLCA0KSB8
fCAvKiAweGZiODggKi8NCgkgICAgY2hlY2tfcmVnaW9uKGh3X2NvbmZpZy0+
aW9fYmFzZSArIDB4ZmMwMCwgNCkgfHwgLyogMHhmZjg4ICovDQoJICAgIGNo
ZWNrX3JlZ2lvbihNQVNURVJfQUREUkVTUywgMSkgICAgLyogMHg5QTAxICov
DQoJICAgKQ0KICAgICAgICB7DQojaWZkZWYgTU9EVUxFDQogICAgICAgICAg
ICAgICAgcHJpbnRrKEtFUk5fSU5GTyAiUEFTMTY6IEkvTyByZWdpb24gYXQg
JXggaXMgaW4gdXNlLlxuIiwgaHdfY29uZmlnLT5pb19iYXNlKTsNCiNlbmRp
Zg0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KICAgICAgICB9DQoNCgkv
KiBDaGVjayB0byBzZWUgaWYgdGhlcmUgaXMgYSBQQVMgYXQgdGhlIHJlcXVl
c3RlZCBiYXNlICovDQoNCglpZihwYXNfcmVhZChJTlRFUlJVUFRfQ09OVFJP
TCkgPT0gMHhmZikgew0KCQlwcmludGsoIlBBUzE2OiBoYXJkd2FyZSBub3Qg
Zm91bmQgYXQgSS9PIGFkZHJlc3MgJXguXG4iLCBod19jb25maWctPmlvX2Jh
c2UpOw0KCQlyZXR1cm4gMDsNCgl9DQoJLyoNCgkgKiBXQVJOSU5HOiBTZXR0
aW5nIGFuIG9wdGlvbiBsaWtlIFc6MSBvciBzbyB0aGF0IGRpc2FibGVzIHdh
cm0gYm9vdCByZXNldA0KCSAqIG9mIHRoZSBjYXJkIHdpbGwgc2NyZXcgdXAg
dGhpcyBkZXRlY3QgY29kZSBzb21ldGhpbmcgZmllcmNlLiBBZGRpbmcgY29k
ZQ0KCSAqIHRvIGhhbmRsZSB0aGlzIG1lYW5zIHBvc3NpYmx5IGludGVyZmVy
aW5nIHdpdGggb3RoZXIgY2FyZHMgb24gdGhlIGJ1cyBpZg0KCSAqIHlvdSBo
YXZlIHNvbWV0aGluZyBvbiBiYXNlIHBvcnQgMHgzODguIFNPIGJlIGZvcmV3
YXJuZWQuDQoJICovDQoNCglvdXRiKCgweEJDKSwgTUFTVEVSX0FERFJFU1Mp
OwkvKiBBY3RpdmF0ZSBmaXJzdCBib2FyZCA/PyB3aWxsIHRoaXMgZnVjayBp
dD8qLw0KCW91dGIoKGh3X2NvbmZpZy0+aW9fYmFzZSA+PiAyKSwgTUFTVEVS
X0FERFJFU1MpOwkvKiBTZXQgYmFzZSBhZGRyZXNzICovDQoJdHJhbnNsYXRl
X2NvZGUgPSAweDM4OCBeIGh3X2NvbmZpZy0+aW9fYmFzZTsNCglwYXNfd3Jp
dGUoMSwgV0FJVF9TVEFURSk7CS8qIFNlbGVjdCBvbmUgd2FpdCBzdGF0ZXMg
Ki8NCg0KCWJvYXJkX2lkID0gcGFzX3JlYWQoSU5URVJSVVBUX0NPTlRST0wp
Ow0KDQoJaWYgKGJvYXJkX2lkID09IDB4ZmYpDQoJCXJldHVybiAwOw0KDQoJ
LyoNCgkgKiBXZSBwcm9iYWJseSBoYXZlIGEgUEFTLXNlcmllcyBib2FyZCwg
bm93IGNoZWNrIGZvciBhIFBBUzE2LXNlcmllcyBib2FyZA0KCSAqIGJ5IHRy
eWluZyB0byBjaGFuZ2UgdGhlIGJvYXJkIHJldmlzaW9uIGJpdHMuIFBBUzE2
LXNlcmllcyBoYXJkd2FyZSB3b24ndA0KCSAqIGxldCB5b3UgZG8gdGhpcyAt
IHRoZSBiaXRzIGFyZSByZWFkLW9ubHkuDQoJICovDQoNCglmb28gPSBib2Fy
ZF9pZCBeIDB4ZTA7DQoNCglwYXNfd3JpdGUoZm9vLCBJTlRFUlJVUFRfQ09O
VFJPTCk7DQoJZm9vID0gcGFzX3JlYWQoSU5URVJSVVBUX0NPTlRST0wpOw0K
CXBhc193cml0ZShib2FyZF9pZCwgSU5URVJSVVBUX0NPTlRST0wpOw0KDQoJ
aWYgKGJvYXJkX2lkICE9IGZvbykNCgkJcmV0dXJuIDA7DQoNCi8vID8/Pz8/
PyBwYXNfcmVhZChCT0FSRF9SRVZfSUQpDQoJcGFzX21vZGVsID0gcGFzX3Jl
YWQoMHhGRjg4KTsNCg0KCXJldHVybiBwYXNfbW9kZWw7DQp9DQoNCnZvaWQg
YXR0YWNoX3Bhc19jYXJkKHN0cnVjdCBhZGRyZXNzX2luZm8gKmh3X2NvbmZp
ZykNCnsNCglwYXNfaXJxID0gaHdfY29uZmlnLT5pcnE7DQoNCglpZiAoZGV0
ZWN0X3Bhc19odyhod19jb25maWcpKQ0KCXsNCgkJLyogQ2FuIHlvdSBzYXkg
b2Jub3hpb3VzPyBsZXQncyBqdXN0IGhvcGUgbm8tb25lIHR5cGVzIGNhdCAv
cHJvYy9pb3BvcnRzICovDQoJCXJlcXVlc3RfcmVnaW9uKGh3X2NvbmZpZy0+
aW9fYmFzZSwgNCwgcGFzX21vZGVsX25hbWVzWyhpbnQpIHBhc19tb2RlbF0p
Ow0KICAgICAgICAJcmVxdWVzdF9yZWdpb24oaHdfY29uZmlnLT5pb19iYXNl
LCA0LCBwYXNfbW9kZWxfbmFtZXNbKGludCkgcGFzX21vZGVsXSk7DQoJCXJl
cXVlc3RfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4NDAwLCA0LCBw
YXNfbW9kZWxfbmFtZXNbKGludCkgcGFzX21vZGVsXSk7DQoJCXJlcXVlc3Rf
cmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4ODAwLCA0LCBwYXNfbW9k
ZWxfbmFtZXNbKGludCkgcGFzX21vZGVsXSk7DQoJCXJlcXVlc3RfcmVnaW9u
KGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4YzAwLCA0LCBwYXNfbW9kZWxfbmFt
ZXNbKGludCkgcGFzX21vZGVsXSk7DQoJCXJlcXVlc3RfcmVnaW9uKGh3X2Nv
bmZpZy0+aW9fYmFzZSArIDB4MTAwMCwgNCwgcGFzX21vZGVsX25hbWVzWyhp
bnQpIHBhc19tb2RlbF0pOw0KCQlyZXF1ZXN0X3JlZ2lvbihod19jb25maWct
PmlvX2Jhc2UgKyAweDE0MDAsIDQsIHBhc19tb2RlbF9uYW1lc1soaW50KSBw
YXNfbW9kZWxdKTsNCgkJcmVxdWVzdF9yZWdpb24oaHdfY29uZmlnLT5pb19i
YXNlICsgMHgxODAwLCA0LCBwYXNfbW9kZWxfbmFtZXNbKGludCkgcGFzX21v
ZGVsXSk7DQoJCXJlcXVlc3RfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSAr
IDB4MjAwMCwgNCwgcGFzX21vZGVsX25hbWVzWyhpbnQpIHBhc19tb2RlbF0p
Ow0KCQlyZXF1ZXN0X3JlZ2lvbihod19jb25maWctPmlvX2Jhc2UgKyAweDQz
MDAsIDQsIHBhc19tb2RlbF9uYW1lc1soaW50KSBwYXNfbW9kZWxdKTsNCgkJ
cmVxdWVzdF9yZWdpb24oaHdfY29uZmlnLT5pb19iYXNlICsgMHg3NDAwLCA0
LCBwYXNfbW9kZWxfbmFtZXNbKGludCkgcGFzX21vZGVsXSk7DQoJCXJlcXVl
c3RfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4N2MwMCwgNCwgcGFz
X21vZGVsX25hbWVzWyhpbnQpIHBhc19tb2RlbF0pOw0KCQlyZXF1ZXN0X3Jl
Z2lvbihod19jb25maWctPmlvX2Jhc2UgKyAweDgwMDAsIDQsIHBhc19tb2Rl
bF9uYW1lc1soaW50KSBwYXNfbW9kZWxdKTsNCgkJcmVxdWVzdF9yZWdpb24o
aHdfY29uZmlnLT5pb19iYXNlICsgMHhiYzAwLCA0LCBwYXNfbW9kZWxfbmFt
ZXNbKGludCkgcGFzX21vZGVsXSk7DQoJCXJlcXVlc3RfcmVnaW9uKGh3X2Nv
bmZpZy0+aW9fYmFzZSArIDB4ZTAwMCwgNCwgcGFzX21vZGVsX25hbWVzWyhp
bnQpIHBhc19tb2RlbF0pOw0KCQlyZXF1ZXN0X3JlZ2lvbihod19jb25maWct
PmlvX2Jhc2UgKyAweGU4MDAsIDQsIHBhc19tb2RlbF9uYW1lc1soaW50KSBw
YXNfbW9kZWxdKTsNCgkJcmVxdWVzdF9yZWdpb24oaHdfY29uZmlnLT5pb19i
YXNlICsgMHhlYzAwLCA0LCBwYXNfbW9kZWxfbmFtZXNbKGludCkgcGFzX21v
ZGVsXSk7DQoJCXJlcXVlc3RfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSAr
IDB4ZjAwMCwgNCwgcGFzX21vZGVsX25hbWVzWyhpbnQpIHBhc19tb2RlbF0p
Ow0KCQlyZXF1ZXN0X3JlZ2lvbihod19jb25maWctPmlvX2Jhc2UgKyAweGY0
MDAsIDQsIHBhc19tb2RlbF9uYW1lc1soaW50KSBwYXNfbW9kZWxdKTsNCgkJ
cmVxdWVzdF9yZWdpb24oaHdfY29uZmlnLT5pb19iYXNlICsgMHhmODAwLCA0
LCBwYXNfbW9kZWxfbmFtZXNbKGludCkgcGFzX21vZGVsXSk7DQoJCXJlcXVl
c3RfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4ZmMwMCwgNCwgcGFz
X21vZGVsX25hbWVzWyhpbnQpIHBhc19tb2RlbF0pOw0KCQlyZXF1ZXN0X3Jl
Z2lvbihNQVNURVJfQUREUkVTUywgMSwgcGFzX21vZGVsX25hbWVzWyhpbnQp
IHBhc19tb2RlbF0pOw0KDQoJCWlmICgocGFzX21vZGVsID0gcGFzX3JlYWQo
MHhGRjg4KSkpDQoJCXsNCgkJCWNoYXIgICAgICAgICAgICB0ZW1wWzEwMF07
DQoNCgkJCXNwcmludGYodGVtcCwNCgkJCSAgICAiJXMgcmV2ICVkIiwgcGFz
X21vZGVsX25hbWVzWyhpbnQpIHBhc19tb2RlbF0sDQoJCQkJICAgIHBhc19y
ZWFkKDB4Mjc4OSkpOw0KCQkJY29uZl9wcmludGYodGVtcCwgaHdfY29uZmln
KTsNCgkJfQ0KCQlpZiAoY29uZmlnX3Bhc19odyhod19jb25maWcpKQ0KCQl7
DQojaWZkZWYgQ09ORklHX0FVRElPDQoJCQlwYXNfcGNtX2luaXQoaHdfY29u
ZmlnKTsNCiNlbmRpZg0KDQojaWYgIWRlZmluZWQoRElTQUJMRV9TQl9FTVVM
QVRJT04pICYmIGRlZmluZWQoQ09ORklHX1NCKQ0KDQoJCQlzYl9kc3BfZGlz
YWJsZV9taWRpKHBhc19zYl9iYXNlKTsJLyogTm8gTUlESSBjYXBhYmlsaXR5
ICovDQojZW5kaWYNCg0KI2lmZGVmIENPTkZJR19NSURJDQoJCQlwYXNfbWlk
aV9pbml0KCk7DQojZW5kaWYNCgkJCXBhc19pbml0X21peGVyKCk7DQoJCX0N
Cgl9DQp9DQoNCmludCBwcm9iZV9wYXMoc3RydWN0IGFkZHJlc3NfaW5mbyAq
aHdfY29uZmlnKQ0Kew0KCXJldHVybiBkZXRlY3RfcGFzX2h3KGh3X2NvbmZp
Zyk7DQp9DQoNCnZvaWQgdW5sb2FkX3BhcyhzdHJ1Y3QgYWRkcmVzc19pbmZv
ICpod19jb25maWcpDQp7DQoJZnJlZV9pcnEoaHdfY29uZmlnLT5pcnEsIE5V
TEwpOw0KCXNvdW5kX2ZyZWVfZG1hKGh3X2NvbmZpZy0+ZG1hKTsNCglyZWxl
YXNlX3JlZ2lvbihod19jb25maWctPmlvX2Jhc2UsIDQpOw0KICAgICAgICBy
ZWxlYXNlX3JlZ2lvbihod19jb25maWctPmlvX2Jhc2UsIDQpOw0KCXJlbGVh
c2VfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4NDAwLCA0KTsNCgly
ZWxlYXNlX3JlZ2lvbihod19jb25maWctPmlvX2Jhc2UgKyAweDgwMCwgNCk7
DQoJcmVsZWFzZV9yZWdpb24oaHdfY29uZmlnLT5pb19iYXNlICsgMHhjMDAs
IDQpOw0KCXJlbGVhc2VfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4
MTAwMCwgNCk7DQoJcmVsZWFzZV9yZWdpb24oaHdfY29uZmlnLT5pb19iYXNl
ICsgMHgxNDAwLCA0KTsNCglyZWxlYXNlX3JlZ2lvbihod19jb25maWctPmlv
X2Jhc2UgKyAweDE4MDAsIDQpOw0KCXJlbGVhc2VfcmVnaW9uKGh3X2NvbmZp
Zy0+aW9fYmFzZSArIDB4MjAwMCwgNCk7DQoJcmVsZWFzZV9yZWdpb24oaHdf
Y29uZmlnLT5pb19iYXNlICsgMHg0MzAwLCA0KTsNCglyZWxlYXNlX3JlZ2lv
bihod19jb25maWctPmlvX2Jhc2UgKyAweDc0MDAsIDQpOw0KCXJlbGVhc2Vf
cmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4N2MwMCwgNCk7DQoJcmVs
ZWFzZV9yZWdpb24oaHdfY29uZmlnLT5pb19iYXNlICsgMHg4MDAwLCA0KTsN
CglyZWxlYXNlX3JlZ2lvbihod19jb25maWctPmlvX2Jhc2UgKyAweGJjMDAs
IDQpOw0KCXJlbGVhc2VfcmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4
ZTAwMCwgNCk7DQoJcmVsZWFzZV9yZWdpb24oaHdfY29uZmlnLT5pb19iYXNl
ICsgMHhlODAwLCA0KTsNCglyZWxlYXNlX3JlZ2lvbihod19jb25maWctPmlv
X2Jhc2UgKyAweGVjMDAsIDQpOw0KCXJlbGVhc2VfcmVnaW9uKGh3X2NvbmZp
Zy0+aW9fYmFzZSArIDB4ZjAwMCwgNCk7DQoJcmVsZWFzZV9yZWdpb24oaHdf
Y29uZmlnLT5pb19iYXNlICsgMHhmNDAwLCA0KTsNCglyZWxlYXNlX3JlZ2lv
bihod19jb25maWctPmlvX2Jhc2UgKyAweGY4MDAsIDQpOw0KCXJlbGVhc2Vf
cmVnaW9uKGh3X2NvbmZpZy0+aW9fYmFzZSArIDB4ZmMwMCwgNCk7DQoJcmVs
ZWFzZV9yZWdpb24oTUFTVEVSX0FERFJFU1MsIDEpOw0KCXNvdW5kX3VubG9h
ZF9taXhlcmRldihhdWRpb19kZXZzW3Bhc19hdWRpb2Rldl0tPm1peGVyX2Rl
dik7DQoJc291bmRfdW5sb2FkX21pZGlkZXYocGFzMl9taWRpX2Rldik7DQoJ
c291bmRfdW5sb2FkX2F1ZGlvZGV2KHBhc19hdWRpb2Rldik7DQp9DQoNCiNp
ZmRlZiBNT0RVTEUNCg0KaW50ICAgICAgICAgICAgIGlvID0gLTE7DQppbnQg
ICAgICAgICAgICAgaXJxID0gLTE7DQppbnQgICAgICAgICAgICAgZG1hID0g
LTE7DQppbnQgICAgICAgICAgICAgZG1hMTYgPSAtMTsJLyogU2V0IHRoaXMg
Zm9yIG1vZHVsZXMgdGhhdCBuZWVkIGl0ICovDQoNCmludCAgICAgICAgICAg
ICBzYl9pbyA9IDA7DQppbnQgICAgICAgICAgICAgc2JfaXJxID0gLTE7DQpp
bnQgICAgICAgICAgICAgc2JfZG1hID0gLTE7DQppbnQgICAgICAgICAgICAg
c2JfZG1hMTYgPSAtMTsNCg0KTU9EVUxFX1BBUk0oaW8sImkiKTsNCk1PRFVM
RV9QQVJNKGlycSwiaSIpOw0KTU9EVUxFX1BBUk0oZG1hLCJpIik7DQpNT0RV
TEVfUEFSTShkbWExNiwiaSIpOw0KDQpNT0RVTEVfUEFSTShzYl9pbywiaSIp
Ow0KTU9EVUxFX1BBUk0oc2JfaXJxLCJpIik7DQpNT0RVTEVfUEFSTShzYl9k
bWEsImkiKTsNCk1PRFVMRV9QQVJNKHNiX2RtYTE2LCJpIik7DQoNCk1PRFVM
RV9QQVJNKGpveXN0aWNrLCJpIik7DQpNT0RVTEVfUEFSTShzeW1waG9ueSwi
aSIpOw0KTU9EVUxFX1BBUk0oYnJva2VuX2J1c19jbG9jaywiaSIpOw0KDQpz
dHJ1Y3QgYWRkcmVzc19pbmZvIGNvbmZpZzsNCnN0cnVjdCBhZGRyZXNzX2lu
Zm8gc2Jod19jb25maWc7DQoNCmludCBpbml0X21vZHVsZSh2b2lkKQ0Kew0K
CXByaW50ayhLRVJOX0lORk8gIlBybyBBdWRpbyBTcGVjdHJ1bSBkcml2ZXIg
Q29weXJpZ2h0IChDKSBieSBIYW5udSBTYXZvbGFpbmVuIDE5OTMtMTk5Nlxu
Iik7DQoNCglpZiAoaW8gPT0gLTEgfHwgZG1hID09IC0xIHx8IGlycSA9PSAt
MSkNCgl7DQoJCSAgcHJpbnRrKEtFUk5fSU5GTyAiUEFTMTY6IEkvTywgSVJR
LCBETUEgYW5kIHR5cGUgYXJlIG1hbmRhdG9yeVxuIik7DQoJCSAgcmV0dXJu
IC1FSU5WQUw7DQoJfQ0KCWNvbmZpZy5pb19iYXNlID0gaW87DQoJY29uZmln
LmlycSA9IGlycTsNCgljb25maWcuZG1hID0gZG1hOw0KCWNvbmZpZy5kbWEy
ID0gZG1hMTY7DQoNCglzYmh3X2NvbmZpZy5pb19iYXNlID0gc2JfaW87DQoJ
c2Jod19jb25maWcuaXJxID0gc2JfaXJxOw0KCXNiaHdfY29uZmlnLmRtYSA9
IHNiX2RtYTsNCglzYmh3X2NvbmZpZy5kbWEyID0gc2JfZG1hMTY7DQoNCglp
ZiAoIXByb2JlX3BhcygmY29uZmlnKSkNCgkJcmV0dXJuIC1FTk9ERVY7DQoJ
YXR0YWNoX3Bhc19jYXJkKCZjb25maWcpOw0KCVNPVU5EX0xPQ0s7DQoJcmV0
dXJuIDA7DQp9DQoNCnZvaWQgY2xlYW51cF9tb2R1bGUodm9pZCkNCnsNCgl1
bmxvYWRfcGFzKCZjb25maWcpOw0KCVNPVU5EX0xPQ0tfRU5EOw0KfQ0KDQoN
CiNlbmRpZg0KI2VuZGlmDQo=
--1753253599-1076025018-914873136=:31243
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME="pas2.h"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.04.9812281325361.31243@draal.physics.wisc.edu>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME="pas2.h"

LyoNCiAqIHBhczIuaA0KICoNCiAqIFBvcnQgZGVmaW5pdGlvbnMgYW5kIHN0
cnVjdHVyZXMgcmVsZXZhbnQgdG8gdGhlIFBybyBBdWRpbyBTcGVjdHJ1bQ0K
ICogZmFtaWx5IG9mIGNhcmRzLg0KICoNCiAqIEJvYiBNY0VscmF0aA0KICov
DQoNCi8qIFBvcnQgZGVmaW5pdGlvbnM6ICovDQojZGVmaW5lIFNZU1RFTV9T
UEVBS0VSX1RJTUVSICAgICAweDAwNDIgICAgLyogU3lzdGVtIFNwZWFrZXIg
VGltZXIgQWRkcmVzcyAgICAgICAgICovDQojZGVmaW5lIFNZU1RFTV9USU1F
Ul9DT05UUk9MICAgICAweDAwNDMgICAgLyogU3lzdGVtIFRpbWVyIENvbnRy
b2wgUmVnaXN0ZXIgICAgICAgICovDQojZGVmaW5lIFNZU1RFTV9TUEVBS0VS
ICAgICAgICAgICAweDAwNjEgICAgLyogU3lzdGVtIFNwZWFrZXIgUmVnaXN0
ZXIgICAgICAgICAgICAgICovDQojZGVmaW5lIEpPWVNUSUNLICAgICAgICAg
ICAgICAgICAweDAyMDEgICAgLyogSm95c3RpY2sgUmVnaXN0ZXIgICAgICAg
ICAgICAgICAgICAgICovDQoNCiNkZWZpbmUgTF9GTV9BRERSRVNTICAgICAg
ICAgICAgIDB4MDM4OCAgICAvKiBMZWZ0ICBGTSBBZGRyZXNzIFJlZ2lzdGVy
ICAgICAgICAgICAgKi8NCiNkZWZpbmUgTF9GTV9EQVRBICAgICAgICAgICAg
ICAgIDB4MDM4OSAgICAvKiBMZWZ0ICBGTSBEYXRhIFJlZ2lzdGVyICAgICAg
ICAgICAgICAgKi8NCiNkZWZpbmUgUl9GTV9BRERSRVNTICAgICAgICAgICAg
IDB4MDM4QSAgICAvKiBSaWdodCBGTSBBZGRyZXNzIFJlZ2lzdGVyICAgICAg
ICAgICAgKi8NCiNkZWZpbmUgUl9GTV9EQVRBICAgICAgICAgICAgICAgIDB4
MDM4QiAgICAvKiBSaWdodCBGTSBEYXRhIFJlZ2lzdGVyICAgICAgICAgICAg
ICAgKi8NCg0KI2RlZmluZSBBVVhfQUREUkVTUyAgICAgICAgICAgICAgMHgw
Nzg4ICAgIC8qIEF1eGlsaWFyeSBSZWdpc3RlciAgICAgICAgICAgICAgICAg
ICAqLw0KI2RlZmluZSBBVVhfREFUQSAgICAgICAgICAgICAgICAgMHgwNzg5
ICAgIC8qIEF1eGlsaWFyeSBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAq
Lw0KI2RlZmluZSBEVUFMX0ZNX0FERFJFU1MgICAgICAgICAgMHgwNzg4ICAg
IC8qIER1YWwgIEZNIEFkZHJlc3MgUmVnaXN0ZXIgICAgICAgICAgICAqLw0K
I2RlZmluZSBEVUFMX0ZNX0RBVEEgICAgICAgICAgICAgMHgwNzg5ICAgIC8q
IER1YWwgIEZNIERhdGEgUmVnaXN0ZXIgICAgICAgICAgICAgICAqLw0KI2Rl
ZmluZSBQQVJBTExFTF9BVURJT19NSVhFUiAgICAgMHgwNzhCICAgIC8qIFBh
cmFsbGVsIGludGVyZmFjZSBBdWRpbyBNaXhlciBSZWcgICAqLw0KDQovKglv
dXRwdXQgY29udHJvbAkJCQkJCQkJKi8NCgkjZGVmaW5lIFBfTV9NSVhFUl9B
RERSRVNTIDB4ODAJLyogUGFyYWxsZWwgbWl4ZXIgYWRkciBzZWxlY3QJCSov
DQoJI2RlZmluZSBwbURBVEFTRUxFQ1QJMHgwMAkJLyogUGFyYWxsZWwgbWl4
ZXIgZGF0YSBzZWxlY3QJCSovDQoNCi8qCW1peGVyIGNoYW5uZWwgcHJvZ3Jh
bW1pbmcgc2VsZWN0aW9uCQkJCQkqLw0KCSNkZWZpbmUgcG1DSEFOTkVMTFIJ
MHgwMAkJLyogTGVmdC9SaWdodCBjaGFubmVsIHNlbGVjdAkJKi8NCgkjZGVm
aW5lIHBtQ0hBTk5FTEwJMHgyMAkJLyogTGVmdCAgY2hhbm5lbCBvbmx5IHNl
bGVjdAkJKi8NCgkjZGVmaW5lIHBtQ0hBTk5FTFIJMHg0MAkJLyogUmlnaHQg
Y2hhbm5lbCBvbmx5IHNlbGVjdAkJKi8NCg0KLyoJZGV2aWNlIHNlbGVjdAkJ
CQkJCQkJKi8NCgkjZGVmaW5lIHBtTUlYRVJTRUxFQ1QJMHgxMAkJLyogUGFy
YWxsZWwgTWl4ZXIgZGV2aWNlIHNlbGVjdCAJKi8NCgkjZGVmaW5lIHBtVk9M
VU1FU0VMRUNUCTB4MDAJCS8qIFBhcmFsbGVsIFZvbHVtZSBkZXZpY2Ugc2Vs
ZWN0CSovDQoNCi8qCVZvbHVtZSBEZXZpY2Ugc2VsZWN0cwkJCQkJCQkqLw0K
CSNkZWZpbmUgcG1WT0xVTUVBCTB4MDEJCS8qIExlZnQvUmlnaHQgY2hhbm5l
bCBzZWxlY3QJCSovDQoJI2RlZmluZSBwbVZPTFVNRUIJMHgwMgkJLyogTGVm
dC9SaWdodCBjaGFubmVsIHNlbGVjdAkJKi8NCgkjZGVmaW5lIHBtVk9MVU1F
QkFTUwkweDAzCQkvKiBMZWZ0L1JpZ2h0IGNoYW5uZWwgc2VsZWN0CQkqLw0K
CSNkZWZpbmUgcG1WT0xVTUVUUkVCCTB4MDQJCS8qIExlZnQvUmlnaHQgY2hh
bm5lbCBzZWxlY3QJCSovDQoJI2RlZmluZSBwbVZPTFVNRU1PREUJMHgwNQkJ
LyogTGVmdC9SaWdodCBjaGFubmVsIHNlbGVjdAkJKi8NCg0KLyoJbWl4ZXIg
c2VsZWN0aW9uIAkJCQkJCQkqLw0KCSNkZWZpbmUgcG1JTlBVVE1JWEVSCTB4
MDAJCS8qIE1peGVyLUEgc2VsZWN0aW9uCQkJKi8NCgkjZGVmaW5lIHBtT1VU
UFVUTUlYRVIJMHgyMAkJLyogTWl4ZXItQiBzZWxlY3Rpb24JCQkqLw0KDQov
KgltaXhlciBjaGFubmVsIHN3YXAJCQkJCQkJKi8NCgkjZGVmaW5lIHBtQ0hT
V0FQCTB4NDAJCS8qIE1peGVyIGNoYW5uZWwgcmVyb3V0ZQkJKi8NCg0KI2Rl
ZmluZSBBVURJT19NSVhFUiAgICAgICAgICAgICAgMHgwQjg4ICAgIC8qIEF1
ZGlvIE1peGVyIENvbnRyb2wgUmVnaXN0ZXIgICAgICAgICAqLw0KCSNkZWZp
bmUgZk1JbWl4ZXJiaXRzCTB4MTcJCS8qIG1peGVyIGNvbnRyb2wgYml0IGZp
ZWxkcwkJKi8NCgkjZGVmaW5lIGZNSXNwa3JiaXRzCTB4NDAJCS8qIHNwZWFr
ZXIgaW50ZWdyYXRvciBmaWVsZCBiaXRzCSovDQoJI2RlZmluZSBiTUlkYXRh
IAkweDAxCQkvKiBkYXRhIGJpdAkJCQkqLw0KCSNkZWZpbmUgYk1JY2xvY2sJ
MHgwMgkJLyogY2xvY2sgc3Ryb2JlIAkJCSovDQoJI2RlZmluZSBiTUltaXN0
cmIJMHgwNAkJLyogbWl4ZXIgb3V0cHV0IHN0cm9iZQkJCSovDQoJI2RlZmlu
ZSBiTUluYTEJCTB4MDgJCS8qIG5vdCB1c2VkCQkJCSovDQoJI2RlZmluZSBi
TUl2b2wJCTB4MTAJCS8qIHRvdGFsIHZvbHVtZSBlbmFibGVkIAkJKi8NCgkj
ZGVmaW5lIGJNSW5hMgkJMHgyMAkJLyogbm90IHVzZWQJCQkJKi8NCgkjZGVm
aW5lIGJNSXNwa3JpbnQJMHg0MAkJLyogc3BlYWtlciBpbnRlZ3JhdG9yCQkJ
Ki8NCgkjZGVmaW5lIGJNSW1vbm9mbQkweDgwCQkvKiBtYWtlIGJvdGggRk1z
IG1vbm8JCQkqLw0KDQoJI2RlZmluZSBBX01fRk1fUkVTRVQJMHgwMSAJLyog
T1BMMyBGTSBjaGlwIHJlc2V0CQkJKi8NCgkjZGVmaW5lIEFfTV9QQ01fUkVT
RVQJMHgwMgkvKiBDT0RFQyAoREFDLCBQQ00pIHJlc2V0CQkJKi8NCgkjZGVm
aW5lIEFfTV9TQl9SRVNFVAkweDA0CS8qIFNCIG1pY3JvcHJvY2Vzc29yIHJl
c2V0CQkqLw0KCSNkZWZpbmUgQV9NX01JWEVSX1JFU0VUCTB4MTAJLyogTVZB
NTA4IHJlc2V0IChtaXhlcikJCQkqLw0KI2RlZmluZSBBVURJT19GSUxURVIg
ICAgICAgICAgICAgMHgwQjhBICAgIC8qIEF1ZGlvIEZpbHRlciBDb250cm9s
IFJlZ2lzdGVyICAgICAgICAqLw0KCSNkZWZpbmUgZkZJZGF0YWJpdHMJMHgx
ZgkvKiBmaWx0ZXIgc2VsZWN0IGFuZCBkZWNvZGUgZmllbGQgYml0cwkqLw0K
CSNkZWZpbmUgZkZJbXV0ZWJpdHMJMHgyMAkvKiBmaWx0ZXIgbXV0ZSBmaWVs
ZCBiaXRzCQkqLw0KCSNkZWZpbmUgZkZJcGNtYml0cwkweGMwCS8qIGZpbHRl
ciBzYW1wbGUgcmF0ZSBmaWVsZCBiaXRzCSovDQoJI2RlZmluZSBBX0ZfTUlY
RVJfVU5NVVRFIAkweDIwCS8qIGZpbHRlciBtdXRlIGJpdAkJCSovDQoJI2Rl
ZmluZSBBX0ZfUENNX1JBVEVfVElNRVIJMHg0MAkvKiBmaWx0ZXIgc2FtcGxl
IHJhdGUgdGltZXIgbWFzawkqLw0KCSNkZWZpbmUgQV9GX1BDTV9CVUZGRVJf
Q09VTlRFUgkweDgwCS8qIGZpbHRlciBzYW1wbGUgYnVmZmVyIGNvdW50ZXIg
bWFzawkqLw0KCSNkZWZpbmUgRklMVEVSTUFYCSAgIDYJLyogc2l4IHBvc3Np
YmxlIHNldHRpbmdzCQkqLw0KI2RlZmluZSBJTlRFUlJVUFRfU1RBVFVTICAg
ICAgICAgMHgwQjg5ICAgIC8qIEludGVycnVwdCBDb250cm9sIFJlZ2lzdGVy
ICAgICAgICAgICAqLw0KCSNkZWZpbmUgZklTaW50cyAJMHgxZgkJLyogSW50
ZXJydXB0IGJpdCBmaWVsZAkJCSovDQoJI2RlZmluZSBiSVNsZWZ0Zm0JMHgw
MQkJLyogTGVmdCBGTSBpbnRlcnJ1cHQgYWN0aXZlCQkqLw0KCSNkZWZpbmUg
YklTcml0Zm0JMHgwMgkJLyogUmlnaHQgRk0gaW50ZXJydXB0IGFjdGl2ZQkJ
Ki8NCgkjZGVmaW5lIElfU19QQ01fUkFURV9JUlFfUEVORElORyAweDA0CS8q
IFNhbXBsZSBSYXRlIHRpbWVyIGludGVycnVwdCBhY3RpdmUJKi8NCgkjZGVm
aW5lIGJJU3NhbXBidWZmCTB4MDgJCS8qIFNhbXBsZSBidWZmZXIgdGltZXIg
aW50ZXJydXB0IGFjdGl2ZSAqLw0KCSNkZWZpbmUgYklTbWlkaSAJMHgxMAkJ
LyogTUlESSBpbnRlcnJ1cHQgYWN0aXZlCQkqLw0KCSNkZWZpbmUgYklTUENN
bHIJMHgyMAkJLyogUENNIGxlZnQvcmlnaHQgYWN0aXZlCQkqLw0KCSNkZWZp
bmUgYklTQWN0aXZlCTB4NDAJCS8qIEhhcmR3YXJlIGlzIGFjdGl2ZSAobm90
IGluIHJlc2V0KQkqLw0KCSNkZWZpbmUgYklTQ2xpcCAJMHg4MAkJLyogU2Ft
cGxlIENsaXBwaW5nIGhhcyBvY2N1cmVkCQkqLw0KI2RlZmluZSBJTlRFUlJV
UFRfQ09OVFJPTCAgICAgICAgMHgwQjhCICAgIC8qIEludGVycnVwdCBDb250
cm9sIFJlZ2lzdGVyICAgICAgICAgICAqLw0KCSNkZWZpbmUgSV9DX0lOVEVS
UlVQVF9NQVNLCTB4MWYJLyogaW50ZXJydXB0IG1hc2sgZmllbGQgYml0cwkJ
Ki8NCgkjZGVmaW5lIElfQ19SRVZJU0lPTl9NQVNLCTB4ZTAJLyogcmV2aXNp
b24gbWFzayBmaWVsZCBiaXRzCQkqLw0KCSNkZWZpbmUgSV9DX0JPQVJEX0lE
X01BU0sJMHhlMAkvKiBCb2FyZCByZXZpc2lvbiBJRCBmaWVsZCBiaXRzIAkq
Lw0KCSNkZWZpbmUgSV9DX0ZNX0xFRlRfSVJRX0VOQUJMRQkweDAxCS8qIExl
ZnQgRk0gaW50ZXJydXB0IGVuYWJsZQkJKi8NCgkjZGVmaW5lIElfQ19GTV9S
SUdIVF9JUlFfRU5BQkxFCTB4MDIJLyogUmlnaHQgRk0gaW50ZXJydXB0IGVu
YWJsZQkJKi8NCgkjZGVmaW5lIElfQ19QQ01fUkFURV9JUlFfRU5BQkxFCTB4
MDQJLyogU2FtcGxlIFJhdGUgdGltZXIgaW50ZXJydXB0IGVuYWJsZQkqLw0K
CSNkZWZpbmUgSV9DX1BDTV9CVUZGRVJfSVJRX0VOQUJMRSAweDA4CS8qIFNh
bXBsZSBidWZmZXIgdGltZXIgaW50ZXJydXB0IGVuYWJsZSAqLw0KCSNkZWZp
bmUgSV9DX01JRElfSVJRX0VOQUJMRSAJMHgxMAkvKiBNSURJIGludGVycnVw
dCBlbmFibGUJCSovDQoJI2RlZmluZSBmSUNyZXZyb2wJMHgwNQkJLyogcm90
YXRlIHJldiBiaXRzIHRvIGxzYgkJKi8NCg0KI2RlZmluZSBQQ01fREFUQV9M
TyAgICAgICAgICAgICAgMHgwRjg4ICAgIC8qIFBDTSBkYXRhIEkvTyByZWdp
c3RlciAgICAgICAgICAgICAgICAqLw0KI2RlZmluZSBQQ01fREFUQV9ISSAg
ICAgICAgICAgICAgMHgwRjg5ICAgIC8qIFBDTSBkYXRhIEkvTyByZWdpc3Rl
ciAgICAgICAgICAgICAgICAqLw0KI2RlZmluZSBDUk9TU19DSEFOTkVMICAg
ICAgICAgICAgMHgwRjhBICAgIC8qIENyb3NzIENoYW5uZWwgUmVnaXN0ZXIg
ICAgICAgICAgICAgICAqLw0KCSNkZWZpbmUgZkNDY3Jvc3NiaXRzCTB4MGYJ
CS8qIGNyb3NzIGNoYW5uZWwgYml0IGZpZWxkCQkqLw0KCSNkZWZpbmUgZkND
cGNtYml0cwkweGYwCQkvKiBwY20vZG1hIGNvbnRyb2wgYml0IGZpZWxkCQkq
Lw0KCSNkZWZpbmUgQ19DX01JWEVSX1IyUgkJMHgwMQkvKiBDUk9TU0NIQU5O
RUwgUmlnaHQgdG8gUmlnaHQJCSovDQoJI2RlZmluZSBDX0NfTUlYRVJfTDJS
CQkweDAyCS8qIENST1NTQ0hBTk5FTCBMZWZ0ICB0byBSaWdodAkJKi8NCgkj
ZGVmaW5lIENfQ19NSVhFUl9SMkwJCTB4MDQJLyogQ1JPU1NDSEFOTkVMIFJp
Z2h0IHRvIExlZnQJCSovDQoJI2RlZmluZSBDX0NfTUlYRVJfTDJMCQkweDA4
CS8qIENST1NTQ0hBTk5FTCBMZWZ0ICB0byBMZWZ0CQkqLw0KCSNkZWZpbmUg
Q19DX0RBQ19NT0RFCQkweDEwCS8qIERBQy9BREMgQ29udHJvbAkJCSovDQoJ
I2RlZmluZSBDX0NfQURDX01PREUJCTB4MDAJLyogREFDL0FEQyBDb250cm9s
CQkJKi8NCgkjZGVmaW5lIENfQ19NT05PCSAJMHgyMAkvKiBQQ00gTW9uYXVy
YWwgRW5hYmxlCQkJKi8NCgkjZGVmaW5lIGJDQ2VuYXBjbQkweDQwCQkvKiBF
bmFibGUgUENNIHN0YXRlIG1hY2hpbmUJCSovDQoJI2RlZmluZSBDX0NfRE1B
X0VOQUJMRQkJMHg4MAkvKiBFbmFibGUgRFJRIGJpdAkJCSovDQoNCg0KI2Rl
ZmluZSBTQU1QTEVfUkFURV9USU1FUiAgICAgICAgMHgxMzg4ICAgIC8qICh0
MCkgU2FtcGxlIFJhdGUgVGltZXIgUmVnaXN0ZXIgICAgICAqLw0KI2RlZmlu
ZSBTQU1QTEVfQ09VTlQgICAgICAgICAgICAgMHgxMzg5ICAgIC8qICh0MSkg
U2FtcGxlIENvdW50IFJlZ2lzdGVyICAgICAgICAgICAqLw0KI2RlZmluZSBT
UEVBS0VSX1RJTUVSICAgICAgICAgICAgMHgxMzhBICAgIC8qICh0MikgTG9j
YWwgU3BlYWtlciBUaW1lciBBZGRyZXNzICAgICAqLw0KI2RlZmluZSBUSU1F
Ul9DT05UUk9MICAgICAgICAgICAgMHgxMzhCICAgIC8qIExvY2FsIFRpbWVy
IENvbnRyb2wgUmVnaXN0ZXIgICAgICAgICAqLw0KDQojZGVmaW5lIE1JRElf
SVJRUiAgICAgICAgICAgICAgICAweDE3ODggICAgLyogTUlESSBJUlEgVmVj
dG9yIFJlZ2lzdGVyICAgICAgICAgICAgICovDQojZGVmaW5lIE1JRElfU1lT
VEVNX0NPTlRST0wgICAgICAweDE3ODkgICAgLyogTUlESSBTeXN0ZW0gQ29u
dHJvbCBSZWdpc3RlciAgICAgICAgICovDQojZGVmaW5lIE1JRElfSVJRX1NU
QVRVUyAgICAgICAgICAweDE3OEEgICAgLyogTUlESSBJUlEgU3RhdHVzIFJl
Z2lzdGVyICAgICAgICAgICAgICovDQojZGVmaW5lIE1JRElfSVJRX0NMRUFS
ICAgICAgICAgICAweDE3OEIgICAgLyogTUlESSBJUlEgQ2xlYXIgUmVnaXN0
ZXIgICAgICAgICAgICAgICovDQoNCiNkZWZpbmUgTUlESV9HUk9VUDQgICAg
ICAgICAgICAgIDB4MUI4OCAgICAvKiBNSURJIEdyb3VwICMxIFJlZ2lzdGVy
IChNREdST1VQMSkgICAgKi8NCiNkZWZpbmUgTUlESV9HUk9VUDUgICAgICAg
ICAgICAgIDB4MUI4OSAgICAvKiBNSURJIEdyb3VwICMyIFJlZ2lzdGVyIChN
REdST1VQMikgICAgKi8NCiNkZWZpbmUgTUlESV9HUk9VUDYgICAgICAgICAg
ICAgIDB4MUI4QSAgICAvKiBNSURJIEdyb3VwICMzIFJlZ2lzdGVyIChNREdS
T1VQMykgICAgKi8NCiNkZWZpbmUgTUlESV9HUk9VUDcgICAgICAgICAgICAg
IDB4MUI4QiAgICAvKiBNSURJIEdyb3VwICM0IFJlZ2lzdGVyIChNREdST1VQ
NCkgICAgKi8NCg0KCS8qIEhhcmR3YXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUg
cHJvZHVjdCAJCQkJKi8NCg0KI2RlZmluZSBERUZBVUxUX0JBU0UJMHgwMzg4
CQkvKiBkZWZhdWx0IGJhc2UgSS9PIGFkZHJlc3MJCSovDQojZGVmaW5lIEFM
VF9CQVNFXzEJMHgwMzg0CQkvKiBmaXJzdCBhbHRlcm5hdGUgYWRkcmVzcwkJ
Ki8NCiNkZWZpbmUgQUxUX0JBU0VfMgkweDAzOEMJCS8qIHNlY29uZCBhbHRl
cm5hdGUgYWRkcmVzcwkJKi8NCiNkZWZpbmUgQUxUX0JBU0VfMwkweDAyODgJ
CS8qIHRoaXJkIGFsdGVybmF0ZSBhZGRyZXNzCQkqLw0KI2RlZmluZSBVU0Vf
QUNUSVZFX0FERFIgMHgwMDAwCQkvKiB1c2VzIHdoYXQgaXMgY3VycmVudGx5
IGFjdGl2ZQkqLw0KDQojZGVmaW5lIERVQUxGTQkJMQkJLyogRHVhbCBGTSBj
aGlwcwkJCSovDQojZGVmaW5lIERVQUxNSVhFUgkxCQkvKiBEdWFsIG1peGVy
cwkJCQkqLw0KI2RlZmluZSBGSUxURVIJCTEJCS8qIEhhcyBmaWx0ZXIgYWZ0
ZXIgaW5wdXQgbWl4ZXIgCSovDQojZGVmaW5lIFZPTFVNRQkJMQkJLyogSGFz
IHRvdGFsIHZvbHVtZSBjb250cm9sCQkqLw0KDQojZGVmaW5lIFRFWFRWRVJT
SU9OSEkJJzAxJyAgICAgICAgICAgIC8qIFZFUlNJT04gMDEuMDAgICAgICAg
ICAgICAgICAgICAgICAgICAqLw0KI2RlZmluZSBURVhUVkVSU0lPTkxPCScw
MCcNCg0KLyoJCQkJCQkJCQkJKi8NCi8qIEZhY3RvcnkgRGVmYXVsdCBTZXR0
aW5ncwkJCQkJCQkqLw0KLyoJCQkJCQkJCQkJKi8NCiNkZWZpbmUgREVGQVVM
VERNQQkweDAxCQkvKiBETUEgY2hhbm5lbCAxCQkJKi8NCiNkZWZpbmUgREVG
QVVMVElSUQkweDA3CQkvKiBJUlEgY2hhbm5lbCA3CQkJKi8NCiNkZWZpbmUg
REVGQVVMVElOVAkweDY1CQkvKiBJbnRlcnJ1cHQgIyBmb3Igc29mdHdhcmUg
aW50ZXJmYWNlCSovDQoNCi8qCQkJCQkJCQkJCSovDQovKiBtaXhlciBzZWxl
Y3QgCQkJCQkJCQkqLw0KLyoJCQkJCQkJCQkJKi8NCiNkZWZpbmUgT1VUUFVU
TUlYRVIJMHgwMAkJLyogb3V0cHV0IG1peGVyIEgvVyBzZWxlY3QJCSovDQoj
ZGVmaW5lIElOUFVUTUlYRVIJMHg0MAkJLyogaW5wdXQgbWl4ZXIgc2VsZWN0
CQkJKi8NCiNkZWZpbmUgREVGTUlYRVIJLTEJCS8qIHVzZSBsYXN0IG1peGVy
IHNlbGVjdGVkCQkqLw0KI2RlZmluZSBNSVhFUk1BWAkweDFmCQkvKiBtYXhp
bXVtIG1peGVyIHNldHRpbmcJCSovDQoNCiNkZWZpbmUgTVZWT0xVTUVNQVgJ
MHgzZgkJLyogTVZBNTA4IG1heGltdW0gbWl4ZXIgc2V0dGluZyAJKi8NCiNk
ZWZpbmUgTlNWT0xVTUVNQVgJMHgyOAkJLyogTmF0aW9uYWwgbWF4aW11bSBt
aXhlciBzZXR0aW5nCSovDQoNCiNkZWZpbmUgRVFVQUxJWkVSTUFYCTB4MGMJ
CS8qIG1heGltdW0gZXF1YWxpemVyIHNldHRpbmcJCSovDQojZGVmaW5lIEVR
VUFMSVpFUk1JRAkweDA2CQkvKiBtYXhpbXVtIG1pZCBzZXR0aW5nCQkJKi8N
Cg0KDQoNCi8qCQkJCQkJCQkJCSovDQovKgkgY3Jvc3MgY2hhbm5lbCBjaGFu
bmVsICNzCQkJCQkJKi8NCi8qCQkJCQkJCQkJCSovDQojZGVmaW5lIFJJR0hU
MlJJR0hUCTB4MDAJCS8qIHJpZ2h0IHRvIHJpZ2h0CQkJKi8NCiNkZWZpbmUg
TEVGVDJSSUdIVAkweDAxCQkvKiBsZWZ0ICB0byByaWdodAkJCSovDQojZGVm
aW5lIFJJR0hUMkxFRlQJMHgwMgkJLyogcmlnaHQgdG8gbGVmdAkJCSovDQoj
ZGVmaW5lIExFRlQyTEVGVAkweDAzCQkvKiBsZWZ0ICB0byBsZWZ0CQkJKi8N
Cg0KLyoJCQkJCQkJCQkJKi8NCi8qIGxlZnQvcmlnaHQgbWl4ZXIgY2hhbm5l
bCBzZWxlY3Rpb24JCQkJCQkqLw0KLyoJCQkJCQkJCQkJKi8NCg0KLyoJbGVm
dCBjaGFubmVsIHZhbHVlcwkJCQkJCQkqLw0KDQojZGVmaW5lIExfTEVGVEZN
CTB4MDENCiNkZWZpbmUgTF9JTUlYRVIJMHgwMg0KI2RlZmluZSBMX0VYVAkJ
MHgwMw0KI2RlZmluZSBMX0lOVAkJMHgwNA0KI2RlZmluZSBMX01JQwkJMHgw
NQ0KI2RlZmluZSBMX1BDTQkJMHgwNg0KI2RlZmluZSBMX1NQRUFLRVIJMHgw
Nw0KI2RlZmluZSBMX0ZSRUUJCTB4MDANCiNkZWZpbmUgTF9TQkRBQyAgICAg
ICAgIDB4MDANCg0KLyoJcmlnaHQgY2hhbm5lbCB2YWx1ZXMJCQkJCQkJKi8N
Cg0KI2RlZmluZSBSX1JJR0hURk0JMHgwOA0KI2RlZmluZSBSX0lNSVhFUgkw
eDA5DQojZGVmaW5lIFJfRVhUCQkweDBBDQojZGVmaW5lIFJfSU5UCQkweDBC
DQojZGVmaW5lIFJfTUlDCQkweDBDDQojZGVmaW5lIFJfUENNCQkweDBEDQoj
ZGVmaW5lIFJfU1BFQUtFUgkweDBFDQojZGVmaW5lIFJfRlJFRQkJMHgwRg0K
I2RlZmluZSBSX1NCREFDIAkweDBGDQoNCg0KLyoJVm9sdW1lIGNvbnRyb2wg
Y2hhbm5lbCAjcwkJCQkJCSovDQoNCiNkZWZpbmUgVk9MTVVURSAJMHg0MAkJ
LyogTVVURSBidXR0b24JCQkJKi8NCiNkZWZpbmUgVk9MTE9VREVOSAkweDQx
CQkvKiBMT1VETkVTUyBhbmQgRU5IQU5DRUQgU1RFUkVPIHN3aXRjaAkqLw0K
I2RlZmluZSBWT0xCQVNTIAkweDQyCQkvKiBCQVNTIGxldmVsIHNldHRpbmcJ
CQkqLw0KI2RlZmluZSBWT0xUUkVCTEUJMHg0MwkJLyogVFJFQkxFIGxldmVs
IHNldHRpbmcgCQkqLw0KI2RlZmluZSBWT0xMRUZUIAkweDQ0CQkvKiBNQVNU
RVIgTEVGVCBMRVZFTCBzZXR0dGluZwkJKi8NCiNkZWZpbmUgVk9MUklHSFQJ
MHg0NQkJLyogTUFTVEVSIFJJR0hUIExFVkVMIHNldHR0aW5nCQkqLw0KI2Rl
ZmluZSBWT0xNT0RFIAkweDQ2CQkvKiBNb2RlbCBTZWxlY3QgTGVmdC9TdGVy
ZW8vUmlnaHQJKi8NCg0KI2RlZmluZSBiVk9MRWJhc3MJMHgwMQkJLyogZW5o
YW5jZWQgYmFzcyBiaXQJCQkqLw0KI2RlZmluZSBiVk9MRXN0ZXJlbwkweDAy
CQkvKiBlbmhhbmNlZCBzdGVyZW8gYml0CQkJKi8NCg0KLyoJaW50IDJGIGFw
cGxpY2F0aW9uIElEIGNvZGVzCQkJCQkJKi8NCg0KI2RlZmluZSBJTlQyRkNP
REUxCTB4MDBCQwkJLyogQnJ5YW4ncyBpbml0aWFscyAgICAgICAgICAgICAg
ICAgICAgICovDQoNCi8qCWludCAyRiBJRCAoZnVuYyAwKSByZXR1cm4gcmVn
aXN0ZXIgdmFsdWVzCQkJCSovDQoNCiNkZWZpbmUgSU5UMkZSRUdCWAkweDZE
MDAJCS8qICdtICcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
Lw0KI2RlZmluZSBJTlQyRlJFR0NYCTB4MDA3NgkJLyogJyB2JyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICovDQojZGVmaW5lIElOVDJGUkVH
RFgJMHgyMDIwCQkvKiBVUFBFUkNBU0UgWE9SIE1BU0sJCQkqLw0KDQovKiBo
YXJkd2FyZSBzcGVjaWZpYyBlcXVhdGVzIGZvciB0aGUgUEFTMi9DRFBDIChk
aWdpdGFsIEFTSUMpCQkJKi8NCg0KI2RlZmluZSBNQVNURVJfQUREUkVTUwkw
eDlBMDEJCS8qIE1hc3RlciBBZGRyZXNzIFBvaW50ZXIgICAgKHcpCSovDQoj
ZGVmaW5lIE1JRElQUkVTQ0FMRQkweDE3ODgJCS8qIE1JREkgcHJlc2NhbGUJ
ICAgICAoci93KQkqLw0KI2RlZmluZSBNSURJVElNRVIJMHgxNzg5CQkvKiBN
SURJIFRpbWVyCQkgICAgIChyL3cpCSovDQojZGVmaW5lIE1JRElEQVRBCTB4
MTc4QQkJLyogTUlESSBEYXRhCQkgICAgIChyL3cpCSovDQojZGVmaW5lIE1J
RElDT05UUk9MCTB4MTc4QgkJLyogTUlESSBDb250cm9sIAkgICAgIChyL3cp
CSovDQojZGVmaW5lIE1JRElTVEFUVVMJMHgxQjg4CQkvKiBNSURJIFN0YXR1
cwkJICAgICAoci93KQkqLw0KI2RlZmluZSBNSURJRklGT1MJMHgxQjg5CQkv
KiBNSURJIEZpZm8gU3RhdHVzCSAgICAgKHIvdykJKi8NCiNkZWZpbmUgTUlE
SUNPTVBBUkUJMHgxQjhBCQkvKiBNSURJIENvbXBhcmUgVGltZQkgICAgIChy
L3cpCSovDQojZGVmaW5lIE1JRElURVNUCTB4MUI4QgkJLyogTUlESSBUZXN0
CQkgICAgICh3KQkqLw0KI2RlZmluZSBNQVNURVJDSElQUgkweEZGODgJCS8q
IE1hc3RlciBDaGlwIFJldgkgICAgIChyKQkqLw0KI2RlZmluZSBTTEFWRUNI
SVBSCTB4RUY4OAkJLyogU2xhdmUgQ2hpcCBSZXYJICAgICAocikJKi8NCiNk
ZWZpbmUgRkFLRV9XQVJNX0JPT1QJMHg3Nzg5CQkvKiBHZXQgdGhlIGNhcmQg
dG8gZmFrZSBhIHdhcm0gYm9vdCAodykgKi8NCiNkZWZpbmUgRU5IQU5DRURT
Q1NJCTB4N2Y4OQkJLyogRW5oYW5jZWQgU0NTSSBkZXRlY3QgcG9ydAkJKi8N
CiNkZWZpbmUgU1lTVEVNX0NPTkZJR18xICAgICAgMHg4Mzg4ICAgICAgICAg
IC8qIFN5c3RlbSBDb25maWcgMSAgICAgICAgICAgKHIvdykgICAgICAqLw0K
CSNkZWZpbmUgU19DXzFfUENfU1BLUl9FTkFCTEUgMHgwMQkvKiBzaGFkb3cg
ZW5hYmxlCQkJKi8NCgkjZGVmaW5lIGJTQzFwY21lbXUJMHgwMgkJLyogUENN
IEVtdWxhdGlvbiBvZiBQQVMxCQkqLw0KCSNkZWZpbmUgU19DXzFfRk1fRU1V
TEFURV9DTE9DSyAweDA0CS8qIDI4bWh6IGNsb2NrIGRpdmlzb3IJCQkqLw0K
CSNkZWZpbmUgYlNDMWludmNvbQkweDA4CQkvKiBpbnZlcnQgQ09NIHBvcnQg
aW50ZXJydXB0IGlucHV0CSovDQoJI2RlZmluZSBTX0NfMV9QQ19TUEtSX1NU
RVJFTyAweDEwCS8qIHN0ZXJlb2l6ZSBwYyBzcGVha2VyIAkJKi8NCgkjZGVm
aW5lIFNfQ18xX1BDX1NQS1JfUkVBTFNPVU5ECTB4MjAJLyogc21hcnQgcmVh
bCBzb3VuZCBlbXVsYXRpbwkJKi8NCgkjZGVmaW5lIGJTQzFkNgkJMHg0MA0K
CSNkZWZpbmUgYlNDMW1zdHJzdAkweDgwCQkvKiBtYXN0ZXIgY2hpcCByZXNl
dAkJCSovDQoNCiNkZWZpbmUgU1lTVEVNX0NPTkZJR18yCTB4ODM4OQkJLyog
U3lzdGVtIENvbmZpZyAyCSAgICAgKHIvdykJKi8NCgkjZGVmaW5lIGJTQzJv
dnJzbXAJMHgwMwkJLyogb3ZlcnNhbXBsaW5nIDAsMSwyLDQgCQkqLw0KCSNk
ZWZpbmUgYlNDMjE2Yml0CTB4MDQJCS8qIDE2IGJpdCBhdWRpbyAJCQkqLw0K
CSNkZWZpbmUgYlNDMjEyYml0CTB4MDgJCS8qIDEyIGJpdCBpbnRlcmxlYXZp
bmcgKGQyIG11c3QgYmUgc2V0KSAqLw0KCSNkZWZpbmUgYlNDMm1zYmludgkw
eDEwCQkvKiBpbnZlcnQgTVNCIGZyb20gc3RhbmRhcmQgbWV0aG9kCSovDQoJ
I2RlZmluZSBiU0Myc2xhdnBvcnQJMHg2MAkJLyogc2xhdmUgcG9ydCBiaXRz
CQkJKi8NCgkjZGVmaW5lIGJTQzJ2Y29sb2NrCTB4ODAJCS8qIFZDTyBsb2Nr
ZWQgKFNhbXBsZSBSYXRlIENsb2NrIFZhbGlkKSAqLw0KDQojZGVmaW5lIFNZ
U1RFTV9DT05GSUdfMwkweDgzOEEJCS8qIFN5c3RlbSBDb25maWcgMwkgICAg
IChyL3cpCSovDQoJI2RlZmluZSBiU0MzMjhtaHpmaWwJMHgwMQkJLyogUENN
IFJhdGUgdXNlcyAyOG1oegkJCSovDQoJI2RlZmluZSBiU0MzMW1oenNiCTB4
MDIJCS8qIDFtaHogdGltZXIgZm9yIFNCIHNhbXBsZSByYXRlCSovDQoJI2Rl
ZmluZSBiU0MzdmNvaW52CTB4MDQJCS8qIGludmVydCBWQ08gb3V0cHV0CQkJ
Ki8NCgkjZGVmaW5lIFNfQ18zX0lOVkVSVF9CQ0xLCTB4MDgJLyogaW52ZXJ0
IEJDTEsgZm9ybSAxNiBiaXQgREFDCQkqLw0KCSNkZWZpbmUgU19DXzNfU1lO
Q19QVUxTRQkweDEwCS8qIDA9TC9SLCAxID0gU3luYyBQdWxzZQkJKi8NCgkj
ZGVmaW5lIGJTQzNkNQkJMHgyMA0KCSNkZWZpbmUgYlNDM2Q2CQkweDQwDQoJ
I2RlZmluZSBiU0MzZDcJCTB4ODANCg0KI2RlZmluZSBTWVNURU1fQ09ORklH
XzQJMHg4MzhCCQkvKiBTeXN0ZW0gQ29uZmlnIDQJICAgICAoci93KQkqLw0K
I2RlZmluZSBJT19DT05GSUdVUkFUSU9OXzEJMHhGMzg4CQkvKiBJL08gQ29u
ZmlnIDEgCSAgICAgKHIvdykJKi8NCgkjZGVmaW5lIElfQ18xX1BTMl9FTkFC
TEUJMHgwMQkvKiBFbmFibGUgQ2hpcCAoUFMyIG9ubHkpCQkqLw0KCSNkZWZp
bmUgYklDMWNvbWRjZAkweDA2CQkvKiBDT00gcG9ydCBkZWNvZGUgcG9pbnRl
cgkJKi8NCgkjZGVmaW5lIGJJQzFjb21pbnQJMHgzOAkJLyogQ09NIHBvcnQg
aW50ZXJydXB0IHBvaW50ZXIJCSovDQoJI2RlZmluZSBiSUMxam95ZW5hCTB4
NDAJCS8qIEVuYWJsZSBqb3lzdGljayByZWFkIAkJKi8NCgkjZGVmaW5lIElf
Q18xX0JPT1RfUkVTRVRfRU5BQkxFCTB4ODAJLyogRW5hYmxlIHdhcm0gYm9v
dCByZXNldAkJKi8NCiNkZWZpbmUgSU9fQ09ORklHVVJBVElPTl8yCTB4RjM4
OQkJLyogSS9PIENvbmZpZyAyIAkgICAgIChyL3cpCSovDQoJI2RlZmluZSBi
SUMyZG1hcHRyCTB4MDMJCS8qIERNQSBjaGFubmVsIHNlbGVjdAkJCSovDQoJ
I2RlZmluZSBiSUMyOGRtYXB0cgkweDBmCQkvKiAgOCBiaXQgRE1BIGNoYW5u
ZWwgc2VsZWN0CQkqLw0KCSNkZWZpbmUgYklDMjE2ZG1hcHRyCTB4ZjAJCS8q
IDE2IGJpdCBETUEgY2hhbm5lbCBzZWxlY3QJCSovDQojZGVmaW5lIElPX0NP
TkZJR1VSQVRJT05fMwkweEYzOEEJCS8qIEkvTyBDb25maWcgMyAJICAgICAo
ci93KQkqLw0KCSNkZWZpbmUgSV9DXzNfUENNX0lSUV9NQVNLCTB4MGYJLyog
cGNtIElSUSBjaGFubmVsIHNlbGVjdAkJKi8NCgkjZGVmaW5lIElfQ18zX0NE
X0lSUV9NQVNLCTB4ZjAJLyogY2QgIElSUSBjaGFubmVsIHNlbGVjdAkJKi8N
CiNkZWZpbmUgSU9fQ09ORklHVVJBVElPTl80CTB4RjM4QgkJLyogSS9PIENv
bmZpZyA0IAkgICAgIChyL3cpCSovDQojZGVmaW5lIENPTVBBVFJFR0UJMHhG
Nzg4CQkvKiBDb21wYXRpYmxlIFJnaXN0ZXIgRW5hYmxlIChyL3cpCSovDQoj
ZGVmaW5lIEVNVUxBRERSUAkweEY3ODkJCS8qIEVtdWxhdGlvbiBBZGRyZXNz
IFBvaW50ZXIgKHIvdykJKi8NCiNkZWZpbmUgV0FJVF9TVEFURQkweEJGODgJ
CS8qIFdhaXQgU3RhdGUJCSAgICAgKHIvdykJKi8NCiNkZWZpbmUgUFVTSEJV
VFRPTgkweEUzODgJCS8qIFB1c2ggQnV0dG9uIChzbGF2ZSkJICAgICAoPz8/
KQkqLw0KI2RlZmluZSBBWFVJTlRTVEFUCTB4RTM4QQkJLyogQXV4IEludCBT
dGF0dXMJICAgICAoPz8/KQkqLw0KI2RlZmluZSBBVVhJTlRFTkEJMHhFMzhC
CQkvKiBBdXggSW50IEVuYWJsZQkgICAgICg/Pz8pCSovDQojZGVmaW5lIE9W
RVJfU0FNUExFX1BSRVNDQUxFCTB4QkY4QQkvKiBPdmVyIFNhbXBsZSBQcmVz
Y2FsZSAgICAgIChyL3cpCSovDQojZGVmaW5lIEFOQUxTRVJECTB4QkY4OQkJ
LyogQW5hbG9nIENoaXAgU2VyaWFsIERhdGEgICAodykJKi8NCiNkZWZpbmUg
TUFTVEVSTU9EUkQJMHhGRjhCCQkvKiBNYXN0ZXIgTW9kZSBSZWFkCSAgICAg
KHIpCSovDQojZGVmaW5lIFNMQVZFTU9EUkQJMHhFRjhCCQkvKiBTbGF2ZSBN
b2RlIFJlYWQJICAgICAocikJKi8NCiNkZWZpbmUgSU5UV0FUQ0hET0cJMHhG
QjhCCQkvKiBJbnRlcnJ1cHQgV2F0Y2ggRG9nCSAgICAgKD8/PykJKi8NCiNk
ZWZpbmUgTUFTVEVSdVBEQVRBCTB4RkI4OAkJLyogTWFzdGVyIHVQIERhdGEJ
ICAgICAoPz8/KQkqLw0KI2RlZmluZSBNQVNURVJ1UENNRAkweEZCODkJCS8q
IE1hc3RlciB1UCBDb21tYW5kL1N0YXR1cyAgKD8/PykJKi8NCiNkZWZpbmUg
TUFTVEVSdVBSU1QJMHhGQjhBCQkvKiBNYXN0ZXIgdVAgUmVzdGFydAkgICAg
ICg/Pz8pCSovDQojZGVmaW5lIFNMQVZFdVBEQVRBCTB4RUI4OAkJLyogU2xh
dmUgdVAgRGF0YQkgICAgICg/Pz8pCSovDQojZGVmaW5lIFNMQVZFdVBDTUQJ
MHhFQjg4CQkvKiBTbGF2ZSB1UCBDb21tYW5kL1N0YXR1cyAgICg/Pz8pCSov
DQojZGVmaW5lIFNMQVZFdVBSU1QJMHhFQjg4CQkvKiBTbGF2ZSB1UCBSZXN0
YXJ0CSAgICAgKD8/PykJKi8NCiNkZWZpbmUgQ0RUT0NPVU5URVIJMHg0Mzg4
CQkvKiBDRC1ST00gdGltZW91dCBjb3VudGVyICAgIChyL3cpCSovDQojZGVm
aW5lIENEVE9TVEFUCTB4NDM4OQkJLyogQ0QtUk9NIHRpbWVvdXQgc3RhdHVz
ICAgICAoci93KQkqLw0KI2RlZmluZSBMRUZUVlVSRAkweDIzODgJCS8qIExl
ZnQgVlUgUmVhZCAJICAgICAocikJKi8NCiNkZWZpbmUgUklUVlVSRCAJMHgy
Mzg5CQkvKiBSaWdodCBWVSBSZWFkCSAgICAgKHIpCSovDQoNCiNkZWZpbmUg
U0JSU1QJCTB4MDIwNgkJLyogU0IgUmVzZXQJCSAgICAgKHcpCSovDQojZGVm
aW5lIFNCREFUQQkJMHgwMjBBCQkvKiBTQiBEYXRhIFJlYWQgCSAgICAgKHIp
CSovDQojZGVmaW5lIFNCQ01ECQkweDAyMEMJCS8qIFNCIENNRCBXcml0ZS9T
dGF0dXMgUmVhZCAgKHIvdykJKi8NCiNkZWZpbmUgU0JTVEFUCQkweDAyMEUJ
CS8qIFNCIERhdGEgU3RhdHVzCSAgICAgKHIpCSovDQojZGVmaW5lIE1QVURB
VEEgCTB4MDMwMAkJLyogTVBVLTQwMSBkYXRhIHJlZwkgICAgIChyL3cpCSov
DQojZGVmaW5lIE1QVUNNRAkJMHgwMzAxCQkvKiBNUFUtNDAxIGNvbW1hbmQg
cmVnCSAgICAgKHIvdykJKi8NCg0KLyogU3lzIENvbmZpZyA0IAkJCQkJCQkJ
Ki8NCg0KI2RlZmluZSBiU0M0ZHJxYWhpCTB4MDEJCS8qIERSUSBmcm9tIGRy
aXZlIGFjdGl2ZSBoaWdoCQkqLw0KI2RlZmluZSBiU0M0ZGFja2FoaQkweDAy
CQkvKiBEUlEgZnJvbSBkcml2ZSBhY3RpdmUgaGlnaAkJKi8NCiNkZWZpbmUg
YlNDNGludGFoaQkweDA0CQkvKiBJTlQgZnJvbSBkcml2ZSBhY3RpdmUgaGln
aAkJKi8NCiNkZWZpbmUgYlNDNGRycXZhbGlkCTB4MDgJCS8qIERSUSBsaW5l
IHZhbGlkIGZyb20gZHJpdmUJCSovDQojZGVmaW5lIGJTQzRjb21lbmEJMHgx
MAkJLyogZW5hYmxlIENPTSBpbnRlcnJ1cHQgCQkqLw0KI2RlZmluZSBiU0M0
ZW5hc2NzaQkweDIwCQkvKiBlbmFibGUgU0NTSSBpbnRlcnJ1cHQJCSovDQoj
ZGVmaW5lIGJTQzRkcnFwdHIJMHhjMAkJLyogRFJRIHRpbWluZyBwb2ludGVy
IGJpdHMJCSovDQoNCi8qIENvbXBhdGliaWxpdHkgUmVnaXN0ZXIJCQkJCQkJ
Ki8NCg0KI2RlZmluZSBjcE1QVUVtdWxhdGlvbgkweDAxCQkvKiBNUFUgZW11
YXRpb24gaXMgb24gYml0CQkqLw0KI2RlZmluZSBjcFNCRW11bGF0aW9uCTB4
MDIJCS8qIFNCIGVtdWF0aW9uIGlzIG9uIGJpdAkJKi8NCg0KLyogRW11bGF0
aW9uIEFkZHJlc3MgUG9pbnRlcgkJCQkJCQkqLw0KDQojZGVmaW5lIGVwU0Jw
dHIgCTB4MEYJCS8qIGJpdCBmaWVsZCBmb3IgU0IgZW11bGF0aW9uCQkqLw0K
I2RlZmluZSBlcE1QVXB0cgkweEYwCQkvKiBiaXQgZmllbGQgZm9yIE1QVSBl
bXVsYXRpb24JCSovDQoNCi8qIFNsYXZlIE1vZGUgUmVhZAkJCQkJCQkJKi8N
Cg0KI2RlZmluZSBiU01SRGRydnR5cAkweDAzCQkvKiBkcml2ZSBpbnRlcmZh
Y2UgdHlwZSAJCSovDQojZGVmaW5lIGJTTVJEZm10eXAJMHgwNAkJLyogRk0g
Y2hpcCB0eXBlIAkJCSovDQojZGVmaW5lIGJTTVJEZGFjdHlwCTB4MDgJCS8q
IDE2IGJpdCBkYWMgKDEpIG9yIDggYml0IGRhYyAoMCkJKi8NCiNkZWZpbmUg
YlNNUkRpbWlkaQkweDEwCQkvKiB1c2UgaW50ZXJuYWwgTUlESQkJCSovDQoj
ZGVmaW5lIGJTTVJEc3dyZXAJMHg4MAkJLyogc3dpdGNoIGlzIGF1dG8gcmVw
ZWF0aW5nCQkqLw0KDQovKiBNYXN0ZXIgTW9kZSBSZWFkCQkJCQkJCQkqLw0K
DQojZGVmaW5lIGJNTVJEYXRwczIJMHgwMQkJLyogQVQoMSkgb3IgUFMyKDAp
IGJ1cwkJCSovDQojZGVmaW5lIGJNTVJEdG1yZW11CTB4MDIJCS8qIHRpbWVy
IGVtdWxhdGlvbiBlbmFibGVkCQkqLw0KI2RlZmluZSBiTU1SRG1zbWQJMHgw
NAkJLyogbWFzdGVyL3NsYXZlIG1vZGUJCQkqLw0KI2RlZmluZSBiTU1SRHNs
YXZlCTB4MDgJCS8qIHNsYXZlIHBvd2VyIG9uIG9yIGRldmljZSBwcmVzZW50
CSovDQojZGVmaW5lIGJNTVJEYXR0aW0JMHgxMAkJLyogeHQvYXQgdGltaW5n
IAkJCSovDQojZGVmaW5lIGJNTVJEbXN0cmV2CTB4ZTAJCS8qIG1hc3RlciAg
cmV2IGxldmVsCQkJKi8NCg0KLyogTUlESSBDb250cm9sIFJlZ2lzdGVyCQkJ
CQkJCSovDQoNCiNkZWZpbmUgYk1DUmVuYXRzdG1wCTB4MDEJCS8qIE1JREkg
ZW5hYmxlIHRpbWUgc3RhbXAgaW50ZXJydXB0CSovDQojZGVmaW5lIGJNQ1Jl
bmFjbXB0bQkweDAyCQkvKiBNSURJIGVuYWJsZSBjb21wYXJlIHRpbWUgaW50
ZXJydXB0CSovDQojZGVmaW5lIGJNQ1JlbmFmaWZvaQkweDA0CQkvKiBNSURJ
IGVuYWJsZSBGSUZPIGlucHV0IGludGVycnVwdAkqLw0KI2RlZmluZSBiTUNS
ZW5hZmlmb28JMHgwOAkJLyogTUlESSBlbmFibGUgRklGTyBvdXRwdXQgaW50
ZXJydXB0CSovDQojZGVmaW5lIGJNQ1JlbmFmaWZvb2gJMHgxMAkJLyogTUlE
SSBlbmFibGUgRklGTyBvdXRwdXQgaGFsZiBpbnQJKi8NCiNkZWZpbmUgYk1D
UnJzdGZpZm9pCTB4MjAJCS8qIE1JREkgcmVzZXQgSW5wdXQgRklGTyBwb2lu
dGVyCSovDQojZGVmaW5lIGJNQ1Jyc3RmaWZvbwkweDQwCQkvKiBNSURJIHJl
c2V0IE91dHB1dCBGSUZPIHBvaW50ZXIJKi8NCiNkZWZpbmUgYk1DUmVjaG9p
bwkweDgwCQkvKiBNSURJIGVjaG8gaW5wdXQgdG8gb3V0cHV0IChUSFJVKQkq
Lw0KDQovKiBNSURJIFN0YXR1cyBSZWdpc3RlciAJCQkJCQkJKi8NCg0KI2Rl
ZmluZSBiTVNSdGltc3RhbXAJMHgwMQkJLyogTUlESSB0aW1lIHN0YW1wIGlu
dGVycnVwdAkJKi8NCiNkZWZpbmUgYk1TUmNtcHRpbWUJMHgwMgkJLyogTUlE
SSBjb21wYXJlIHRpbWUgaW50ZXJydXB0CQkqLw0KI2RlZmluZSBiTVNSaWZp
Zm8JMHgwNAkJLyogTUlESSBpbnB1dCBGSUZPIGRhdGEgYXZhaWwgaW50ZXJy
dXB0ICovDQojZGVmaW5lIGJNU1JvZmlmbwkweDA4CQkvKiBNSURJIG91dHB1
dCBGSUZPIGVtcHR5IGludGVycnVwdAkqLw0KI2RlZmluZSBiTVNSb2ZpZm9o
YWxmCTB4MTAJCS8qIE1JREkgb3V0cHV0IEZJRk8gaGFsZiBlbXB0eSBpbnRl
cnJ1cHQqLw0KI2RlZmluZSBiTVNSaWZpZm9vdnIJMHgyMAkJLyogTUlESSBp
bnB1dCBGSUZPIG92ZXJydW4gZXJyb3IJKi8NCiNkZWZpbmUgYk1TUm9maWZv
b3ZyCTB4NDAJCS8qIE1JREkgb3V0cHV0IEZJRk8gb3ZlcnJ1biBlcnJvcgkq
Lw0KI2RlZmluZSBiTVNSZnJhbWVlcnIJMHg4MAkJLyogTUlESSBmcmFtZSBl
cnJvcgkJCSovDQoNCi8qIE1JREkgRklGTyBjb3VudAkJCQkJCQkJKi8NCg0K
I2RlZmluZSBiTUZDaWZpZm8JMHgwRgkJLyogTUlESSBpbnB1dCBGSUZPIGNv
dW50CQkqLw0KI2RlZmluZSBiTUZDb2ZpZm8JMHhGMAkJLyogTUlESSBvdXRw
dXQgRklGTyBjb3VudAkJKi8NCg0KLyogQXV4IGludGVycnVwdCBzdGF0dXMv
ZW5hYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLw0KDQojZGVmaW5lIGJBVWZtcml0CTB4MDEJCS8qIEZN
IHJpZ2h0IGludGVycnVwdAkJCSovDQojZGVmaW5lIGJBVXB1c2hiCTB4MDIJ
CS8qIHB1c2ggYnV0dG9uIGFjdGl2ZQkJCSovDQojZGVmaW5lIGJBVXNsYXZl
Y3B1CTB4MDQJCS8qIHNsYXZlIGNvcHJvY2Vzc29yCQkJKi8NCiNkZWZpbmUg
YkFVYXV4MGludAkweDA4CQkvKiBhdXggMCBpbnRlcnJ1cHQJCQkqLw0KI2Rl
ZmluZSBiQVVhdXgxaW50CTB4MTAJCS8qIGF1eCAxIGludGVycnVwdAkJCSov
DQojZGVmaW5lIGJBVWF1eDJpbnQJMHgyMAkJLyogYXV4IDIgaW50ZXJydXB0
CQkJKi8NCiNkZWZpbmUgYkFVYXV4M2ludAkweDQwCQkvKiBhdXggMyBpbnRl
cnJ1cHQJCQkqLw0KI2RlZmluZSBiQVVtYXN0cmNwdQkweDgwCQkvKiBtYXN0
ZXIgY29wcm9jZXNzb3Igb3IgZW11bGF0aW9uIGFjdGl2Ki8NCg0KLyogUHVz
aCBCdXR0b25zIG9uIHRoZSBGcm9udCBQYW5lbAkJCQkJCSovDQoNCiNkZWZp
bmUgYlBTSHVwYXJyb3cJMHgwMQkJLyogdXAgYXJyb3cgb24gdGhlIGZyb250
IHBhbmVsCQkqLw0KI2RlZmluZSBiUFNIZG5hcnJvdwkweDAyCQkvKiBkb3du
IGFycm93IG9uIHRoZSBmcm9udCBwYW5lbAkqLw0KI2RlZmluZSBiUFNIbXV0
ZQkweDA0CQkvKiBtdXRlIG9uIHRoZSBmcm9udCBwYW5lbAkJKi8NCiNkZWZp
bmUgYlBTYXV4Yml0MQkweDA4CQkvKiB1bnVzZWQgYml0Li4uCQkJKi8NCiNk
ZWZpbmUgYlBTYXV4Yml0MgkweDEwCQkvKiB1bnVzZWQgYml0Li4uCQkJKi8N
CiNkZWZpbmUgYlBTYXV4Yml0MwkweDIwCQkvKiB1bnVzZWQgYml0Li4uCQkJ
Ki8NCiNkZWZpbmUgYlBTYXV4Yml0NAkweDQwCQkvKiB1bnVzZWQgYml0Li4u
CQkJKi8NCiNkZWZpbmUgYlBTYXV4Yml0NQkweDgwCQkvKiB1bnVzZWQgYml0
Li4uCQkJKi8NCg0KLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PT08
IFBDIEhBUkRXQVJFID49PT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0q
Lw0KDQovKiBJbnRlcnJ1cHQgQ29udHJvbGxlciAjMSBQb3J0IEFkZHJlc3Nl
cyBhbmQgSW50ZXJydXB0IE1hc2tzCQkJKi8NCg0KI2RlZmluZSBJUlExTUFT
S1JFRwkweDIxCQkvKiA4MjU5IG1hc2sgcmVnaXN0ZXIJCQkqLw0KI2RlZmlu
ZSBJUlExQUNLUkVHCTB4MjAJCS8qIDgyNTkgSU5UIGFja25vd2xlZGdlIHJl
Z2lzdGVyCSovDQoNCiNkZWZpbmUgSU5UME1TSyAJMHgwMQkJLyogaW50ZXJy
dXB0IDAgbWFzawkJCSovDQojZGVmaW5lIElOVDFNU0sgCTB4MDIJCS8qIGlu
dGVycnVwdCAxIG1hc2sJCQkqLw0KI2RlZmluZSBJTlQyTVNLIAkweDA0CQkv
KiBpbnRlcnJ1cHQgMiBtYXNrCQkJKi8NCiNkZWZpbmUgSU5UM01TSyAJMHgw
OAkJLyogaW50ZXJydXB0IDMgbWFzawkJCSovDQojZGVmaW5lIElOVDRNU0sg
CTB4MTAJCS8qIGludGVycnVwdCA0IG1hc2sJCQkqLw0KI2RlZmluZSBJTlQ1
TVNLIAkweDIwCQkvKiBpbnRlcnJ1cHQgNSBtYXNrCQkJKi8NCiNkZWZpbmUg
SU5UNk1TSyAJMHg0MAkJLyogaW50ZXJydXB0IDYgbWFzawkJCSovDQojZGVm
aW5lIElOVDdNU0sgCTB4ODAJCS8qIGludGVycnVwdCA3IG1hc2sJCQkqLw0K
DQovKiBJbnRlcnJ1cHQgQ29udHJvbGxlciAjMiBQb3J0IEFkZHJlc3NlcyBh
bmQgSW50ZXJydXB0IE1hc2tzCQkJKi8NCg0KI2RlZmluZSBJUlEyTUFTS1JF
RwkweEExCQkvKiA4MjU5IG1hc2sgcmVnaXN0ZXIJCQkqLw0KI2RlZmluZSBJ
UlEyQUNLUkVHCTB4QTAJCS8qIDgyNTkgSU5UIGFja25vd2xlZGdlIHJlZ2lz
dGVyCSovDQoNCiNkZWZpbmUgSU5UOE1TSyAJMHgwMQkJLyogaW50ZXJydXB0
IDggbWFzawkJCSovDQojZGVmaW5lIElOVDlNU0sgCTB4MDIJCS8qIGludGVy
cnVwdCA5IG1hc2sJCQkqLw0KI2RlZmluZSBJTlRBTVNLIAkweDA0CQkvKiBp
bnRlcnJ1cHQgQSBtYXNrCQkJKi8NCiNkZWZpbmUgSU5UQk1TSyAJMHgwOAkJ
LyogaW50ZXJydXB0IEIgbWFzawkJCSovDQojZGVmaW5lIElOVENNU0sgCTB4
MTAJCS8qIGludGVycnVwdCBDIG1hc2sJCQkqLw0KI2RlZmluZSBJTlRETVNL
IAkweDIwCQkvKiBpbnRlcnJ1cHQgRCBtYXNrCQkJKi8NCiNkZWZpbmUgSU5U
RU1TSyAJMHg0MAkJLyogaW50ZXJydXB0IEUgbWFzawkJCSovDQojZGVmaW5l
IElOVEZNU0sgCTB4ODAJCS8qIGludGVycnVwdCBGIG1hc2sJCQkqLw0KDQoj
ZGVmaW5lIEVPSQkJMDIwaAkJLyogbm9uIHNwZWNpZmljIGVuZCBvZiBpbnRl
cnJ1cHQJKi8NCg0KLyogZG1hIGNvbnRyb2xsZXIgIzEgcG9ydCBhZGRyZXNz
ZXMJCQkJCQkqLw0KDQojZGVmaW5lIERNQUMwQUREUgkweDAwCQkvKiBETUEg
Y2hhbm5lbCAwIEJhc2UgJiBBZGRyZXNzIAkqLw0KI2RlZmluZSBETUFDMENP
VU5UCTB4MDEJCS8qIERNQSBjaGFubmVsIDAgQmFzZSAmIENvdW50CQkqLw0K
I2RlZmluZSBETUFDMUFERFIJMHgwMgkJLyogRE1BIGNoYW5uZWwgMSBCYXNl
ICYgQWRkcmVzcyAJKi8NCiNkZWZpbmUgRE1BQzFDT1VOVAkweDAzCQkvKiBE
TUEgY2hhbm5lbCAxIEJhc2UgJiBDb3VudAkJKi8NCiNkZWZpbmUgRE1BQzJB
RERSCTB4MDQJCS8qIERNQSBjaGFubmVsIDIgQmFzZSAmIEFkZHJlc3MgCSov
DQojZGVmaW5lIERNQUMyQ09VTlQJMHgwNQkJLyogRE1BIGNoYW5uZWwgMiBC
YXNlICYgQ291bnQJCSovDQojZGVmaW5lIERNQUMzQUREUgkweDA2CQkvKiBE
TUEgY2hhbm5lbCAzIEJhc2UgJiBBZGRyZXNzIAkqLw0KI2RlZmluZSBETUFD
M0NPVU5UCTB4MDcJCS8qIERNQSBjaGFubmVsIDMgQmFzZSAmIENvdW50CQkq
Lw0KDQojZGVmaW5lIERNQTJDNEFERFIJMHhDMAkJLyogRE1BIGNoYW5uZWwg
NCBCYXNlICYgQ3VycmVudCBBZGRyZXNzICovDQojZGVmaW5lIERNQTJDNENP
VU5UCTB4QzIJCS8qIERNQSBjaGFubmVsIDQgQmFzZSAmIEN1cnJlbnQgQ291
bnQJKi8NCiNkZWZpbmUgRE1BMkM1QUREUgkweEM0CQkvKiBETUEgY2hhbm5l
bCA1IEJhc2UgJiBDdXJyZW50IEFkZHJlc3MgKi8NCiNkZWZpbmUgRE1BMkM1
Q09VTlQJMHhDNgkJLyogRE1BIGNoYW5uZWwgNSBCYXNlICYgQ3VycmVudCBD
b3VudAkqLw0KI2RlZmluZSBETUEyQzZBRERSCTB4QzgJCS8qIERNQSBjaGFu
bmVsIDYgQmFzZSAmIEN1cnJlbnQgQWRkcmVzcyAqLw0KI2RlZmluZSBETUEy
QzZDT1VOVAkweENBCQkvKiBETUEgY2hhbm5lbCA2IEJhc2UgJiBDdXJyZW50
IENvdW50CSovDQojZGVmaW5lIERNQTJDN0FERFIJMHhDQwkJLyogRE1BIGNo
YW5uZWwgNyBCYXNlICYgQ3VycmVudCBBZGRyZXNzICovDQojZGVmaW5lIERN
QTJDN0NPVU5UCTB4Q0UJCS8qIERNQSBjaGFubmVsIDcgQmFzZSAmIEN1cnJl
bnQgQ291bnQJKi8NCg0KI2RlZmluZSBETUFSRFNUQVQJMHgwOAkJLyogRE1B
IHJlYWQgc3RhdHVzCQkJKi8NCiNkZWZpbmUgRE1BV1JDTlRSTAkweDA4CQkv
KiBETUEgd3JpdGUgY29tbWFuZCByZWdpc3RlcgkJKi8NCiNkZWZpbmUgRE1B
V1JFUSAJMHgwOQkJLyogRE1BIHdyaXRlIHJlcXVlc3QgcmVnaXN0ZXIJCSov
DQojZGVmaW5lIERNQVdSU01SCTB4MEEJCS8qIERNQSB3cml0ZSBzaW5nbGUg
bWFzayByZWcuCQkqLw0KI2RlZmluZSBETUFXUk1PREUJMHgwQgkJLyogRE1B
IHdyaXRlIG1vZGUgcmVnaXN0ZXIJCSovDQojZGVmaW5lIERNQUNMRUFSCTB4
MEMJCS8qIERNQSBjbGVhciBsb3cvaGlnaCBmbGlwLWZsb3AgCSovDQojZGVm
aW5lIERNQVJEVEVNUAkweDBECQkvKiBETUEgcmVhZCB0ZW1wIHJlZ2lzdGVy
CQkqLw0KI2RlZmluZSBETUFXUkNMUgkweDBECQkvKiBETUEgd3JpdGUgbWFz
dGVyIGNsZWFyCQkqLw0KI2RlZmluZSBETUFDTFJNU0sJMHgwRQkJLyogRE1B
IGNsZWFyIG1hc2sgcmVnaXN0ZXIJCSovDQojZGVmaW5lIERNQVdSQUxMCTB4
MEYJCS8qIERNQSB3cml0ZSBhbGwgbWFzayByZWcuIGJpdHMgCSovDQoNCiNk
ZWZpbmUgRE1BMlJEU1RBVAkweEQwCQkvKiBETUEgcmVhZCBzdGF0dXMJCQkq
Lw0KI2RlZmluZSBETUEyV1JDTlRSTAkweEQwCQkvKiBETUEgd3JpdGUgY29t
bWFuZCByZWdpc3RlcgkJKi8NCiNkZWZpbmUgRE1BMldSRVEJMHhEMgkJLyog
RE1BIHdyaXRlIHJlcXVlc3QgcmVnaXN0ZXIJCSovDQojZGVmaW5lIERNQTJX
UlNNUgkweEQ0CQkvKiBETUEgd3JpdGUgc2luZ2xlIG1hc2sgcmVnaXN0ZXIJ
Ki8NCiNkZWZpbmUgRE1BMldSTU9ERQkweEQ2CQkvKiBETUEgd3JpdGUgbW9k
ZSByZWdpc3RlcgkJKi8NCiNkZWZpbmUgRE1BMkNMRUFSCTB4RDgJCS8qIERN
QSBjbGVhciBsb3cvaGlnaCBmbGlwLWZsb3AgCSovDQojZGVmaW5lIERNQTJS
RFRFTVAJMHhEQQkJLyogRE1BIHJlYWQgdGVtcCByZWdpc3RlcgkJKi8NCiNk
ZWZpbmUgRE1BMldSQ0xSCTB4REEJCS8qIERNQSB3cml0ZSBtYXN0ZXIgY2xl
YXIJCSovDQojZGVmaW5lIERNQTJDTFJNU0sJMHhEQwkJLyogRE1BIGNsZWFy
IG1hc2sgcmVnaXN0ZXIJCSovDQojZGVmaW5lIERNQTJXUkFMTAkweERFCQkv
KiBETUEgd3JpdGUgYWxsIG1hc2sgcmVnaXN0ZXIgYml0cwkqLw0KDQojZGVm
aW5lIENIMFBBR0VSRUcJMHg4NwkJLyogQ2hhbm5lbCAwIFBhZ2UgUmVnaXN0
ZXIJCSovDQojZGVmaW5lIENIMVBBR0VSRUcJMHg4MwkJLyogQ2hhbm5lbCAx
IFBhZ2UgUmVnaXN0ZXIJCSovDQojZGVmaW5lIENIMlBBR0VSRUcJMHg4MQkJ
LyogQ2hhbm5lbCAyIFBhZ2UgUmVnaXN0ZXIJCSovDQojZGVmaW5lIENIM1BB
R0VSRUcJMHg4MgkJLyogQ2hhbm5lbCAzIFBhZ2UgUmVnaXN0ZXIJCSovDQoN
CiNkZWZpbmUgQ0g1UEFHRVJFRwkweDhCCQkvKiBDaGFubmVsIDUgUGFnZSBS
ZWdpc3RlcgkJKi8NCiNkZWZpbmUgQ0g2UEFHRVJFRwkweDg5CQkvKiBDaGFu
bmVsIDYgUGFnZSBSZWdpc3RlcgkJKi8NCiNkZWZpbmUgQ0g3UEFHRVJFRwkw
eDhBCQkvKiBDaGFubmVsIDcgUGFnZSBSZWdpc3RlcgkJKi8NCg0K
--1753253599-1076025018-914873136=:31243--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/