Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Apr 1998 18:40:02 +0400 (MSD)
From:      Maxim Bolotin <max@rnd.runnet.ru>
To:        Mike Smith <mike@smith.net.au>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: your mail
Message-ID:  <Pine.BSF.3.96.980423183109.29546A-300000@altos.rnd.runnet.ru>
In-Reply-To: <199804222001.NAA00389@dingo.cdrom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
  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.

--0-731731238-893342402=:29546
Content-Type: TEXT/PLAIN; charset=US-ASCII

On Wed, 22 Apr 1998, Mike Smith wrote:
> > Hi!
> 
> G'day Max!
> 
> > As I write year ago, We have driver for IBM EtherJet ethernet card.
> > It's cs8920M chip based card. TP only. We have 70 computers with
> > FreeBSD 2.2.5, work 1 year. I make some style changes of code, and
> > I want commite it. What have I to do it.
> 
> I looked at your driver last year, and made some suggestions then, but 
> never heard back from you.  If your driver is available somewhere for 
> FTP, I'll do the same again.  I think I should be able to obtain one of 
> these cards for testing as well, and once we're both happy, I'll arrange
> for it to be committed.
Hi!
We made some perfomance improvement, add multicast.
All this cards work 6 days per week, 1 year, 12 may 1997 - current.
It's NFS/NIS client computers. We've to location, 48 and 22 computers.
For me fork OK.

	Max.
-
Rostov State University   Computer Center
Rostov-on-Don, +7 (8632) 285794 or 357476
Russia, RUNNet, MAB1-RIPE      max@rsu.ru

--0-731731238-893342402=:29546
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="if_csreg.h"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.3.96.980423184001.29546B@altos.rnd.runnet.ru>
Content-Description: /sys/i386/isa/if_csreg.h

LyoNCiAqIENvcHlyaWdodCAoYykgMTk5NywxOTk4IE1heGltIEJvbG90aW4g
YW5kIE9sZWcgU2hhcm9pa28uDQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K
ICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQNCiAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcNCiAqICAgIGRpc2NsYWltZXIu
DQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQ0KICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4N
CiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRI
T1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EDQogKiBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUNCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFDQogKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQ0KICogRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCiAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTDQogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCiAq
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQogKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZDQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRJZDog
aWZfY3NyZWcuaCx2IDEuMiAxOTk4LzA0LzIwIDA5OjU4OjA5IHJvb3QgRXhw
ICQNCiAqLw0KDQojZGVmaW5lIFBQX0NoaXBJRCAweDAwMDAJLyogb2Zmc2V0
ICAgMGggLT4gQ29ycCAtSUQgICAgICAgICAgICAgICovDQoJCQkJLyogb2Zm
c2V0ICAgMmggLT4gTW9kZWwvUHJvZHVjdCBOdW1iZXIgICovDQoJCQkJLyog
b2Zmc2V0ICAgM2ggLT4gQ2hpcCBSZXZpc2lvbiBOdW1iZXIgICovDQoNCiNk
ZWZpbmUgUFBfSVNBSU9CCQkweDAwMjAJLyogIElPIGJhc2UgYWRkcmVzcyAq
Lw0KI2RlZmluZSBQUF9DUzg5MjBfSVNBSU5UCTB4MDM3MAkvKiAgSVNBIGlu
dGVycnVwdCBzZWxlY3QgKi8NCiNkZWZpbmUgUFBfQ1M4OTIwX0lTQURNQSAJ
MHgwMzc0CS8qICBJU0EgUmVjIERNQSBjaGFubmVsICovDQojZGVmaW5lIFBQ
X0lTQVNPRgkJMHgwMDI2CS8qICBJU0EgRE1BIG9mZnNldCAqLw0KI2RlZmlu
ZSBQUF9EbWFGcmFtZUNudAkJMHgwMDI4CS8qICBJU0EgRE1BIEZyYW1lIGNv
dW50ICovDQojZGVmaW5lIFBQX0RtYUJ5dGVDbnQJCTB4MDAyQQkvKiAgSVNB
IERNQSBCeXRlIGNvdW50ICovDQojZGVmaW5lIFBQX0NTODkyMF9JU0FNZW1C
CTB4MDM0OAkvKiAgTWVtb3J5IGJhc2UgKi8NCg0KLyogRUVQUk9NIGRhdGEg
YW5kIGNvbW1hbmQgcmVnaXN0ZXJzICovDQojZGVmaW5lIFBQX0VFQ01ECQkw
eDAwNDAJLyogIE5WUiBJbnRlcmZhY2UgQ29tbWFuZCByZWdpc3RlciAqLw0K
I2RlZmluZSBQUF9FRURhdGEJCTB4MDA0MgkvKiAgTlZSIEludGVyZmFjZSBE
YXRhIFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0RlYnVnUmVnCQkweDAwNDQJ
LyogIERlYnVnIFJlZ2lzdGVyICovDQoNCiNkZWZpbmUgUFBfUnhDRkcJCTB4
MDEwMgkvKiAgUnggQnVzIGNvbmZpZyAqLw0KI2RlZmluZSBQUF9SeENUTAkJ
MHgwMTA0CS8qICBSZWNlaXZlIENvbnRyb2wgUmVnaXN0ZXIgKi8NCiNkZWZp
bmUgUFBfVHhDRkcJCTB4MDEwNgkvKiAgVHJhbnNtaXQgQ29uZmlnIFJlZ2lz
dGVyICovDQojZGVmaW5lIFBQX1R4Q01ECQkweDAxMDgJLyogIFRyYW5zbWl0
IENvbW1hbmQgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQnVmQ0ZHCQkweDAx
MEEJLyogIEJ1cyBjb25maWd1cmF0aW9uIFJlZ2lzdGVyICovDQojZGVmaW5l
IFBQX0xpbmVDVEwJCTB4MDExMgkvKiAgTGluZSBDb25maWcgUmVnaXN0ZXIg
Ki8NCiNkZWZpbmUgUFBfU2VsZkNUTAkJMHgwMTE0CS8qICBTZWxmIENvbW1h
bmQgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBfQnVzQ1RMCQkweDAxMTYJLyog
IElTQSBidXMgY29udHJvbCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9UZXN0
Q1RMCQkweDAxMTgJLyogIFRlc3QgUmVnaXN0ZXIgKi8NCiNkZWZpbmUgUFBf
QXV0b05lZ0NUTAkJMHgwMTFDCS8qICBBdXRvIE5lZ290aWF0aW9uIEN0cmwg
Ki8NCg0KI2RlZmluZSBQUF9JU1EJCQkweDAxMjAJLyogIEludGVycnVwdCBT
dGF0dXMgKi8NCiNkZWZpbmUgUFBfUnhFdmVudAkJMHgwMTI0CS8qICBSeCBF
dmVudCBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9UeEV2ZW50CQkweDAxMjgJ
LyogIFR4IEV2ZW50IFJlZ2lzdGVyICovDQojZGVmaW5lIFBQX0J1ZkV2ZW50
CQkweDAxMkMJLyogIEJ1cyBFdmVudCBSZWdpc3RlciAqLw0KI2RlZmluZSBQ
UF9SeE1pc3MJCTB4MDEzMAkvKiAgUmVjZWl2ZSBNaXNzIENvdW50ICovDQoj
ZGVmaW5lIFBQX1R4Q29sCQkweDAxMzIJLyogIFRyYW5zbWl0IENvbGxpc2lv
biBDb3VudCAqLw0KI2RlZmluZSBQUF9MaW5lU1QJCTB4MDEzNAkvKiAgTGlu
ZSBTdGF0ZSBSZWdpc3RlciAqLw0KI2RlZmluZSBQUF9TZWxmU1QJCTB4MDEz
NgkvKiAgU2VsZiBTdGF0ZSByZWdpc3RlciAqLw0KI2RlZmluZSBQUF9CdXNT
VAkJMHgwMTM4CS8qICBCdXMgU3RhdHVzICovDQojZGVmaW5lIFBQX1REUgkJ
CTB4MDEzQwkvKiAgVGltZSBEb21haW4gUmVmbGVjdG9tZXRyeSAqLw0KI2Rl
ZmluZSBQUF9BdXRvTmVnU1QJCTB4MDEzRQkvKiAgQXV0byBOZWcgU3RhdHVz
ICovDQojZGVmaW5lIFBQX1R4Q29tbWFuZAkJMHgwMTQ0CS8qICBUeCBDb21t
YW5kICovDQojZGVmaW5lIFBQX1R4TGVuZ3RoCQkweDAxNDYJLyogIFR4IExl
bmd0aCAqLw0KI2RlZmluZSBQUF9MQUYJCQkweDAxNTAJLyogIEhhc2ggVGFi
bGUgKi8NCiNkZWZpbmUgUFBfSUEJCQkweDAxNTgJLyogIFBoeXNpY2FsIEFk
ZHJlc3MgUmVnaXN0ZXIgKi8NCg0KI2RlZmluZSBQUF9SeFN0YXR1cwkJMHgw
NDAwCS8qICBSZWNlaXZlIHN0YXJ0IG9mIGZyYW1lICovDQojZGVmaW5lIFBQ
X1J4TGVuZ3RoCQkweDA0MDIJLyogIFJlY2VpdmUgTGVuZ3RoIG9mIGZyYW1l
ICovDQojZGVmaW5lIFBQX1J4RnJhbWUJCTB4MDQwNAkvKiAgUmVjZWl2ZSBm
cmFtZSBwb2ludGVyICovDQojZGVmaW5lIFBQX1R4RnJhbWUJCTB4MEEwMAkv
KiAgVHJhbnNtaXQgZnJhbWUgcG9pbnRlciAqLw0KDQovKg0KICogIFByaW1h
cnkgSS9PIEJhc2UgQWRkcmVzcy4gSWYgbm8gSS9PIGJhc2UgaXMgc3VwcGxp
ZWQgYnkgdGhlIHVzZXIsIHRoZW4gdGhpcw0KICogIGNhbiBiZSB1c2VkIGFz
IHRoZSBkZWZhdWx0IEkvTyBiYXNlIHRvIGFjY2VzcyB0aGUgUGFja2V0UGFn
ZSBBcmVhLg0KICovDQojZGVmaW5lIERFRkFVTFRJT0JBU0UJCTB4MDMwMA0K
I2RlZmluZSBGSVJTVF9JTwkJMHgwMjBDCS8qICBGaXJzdCBJL08gcG9ydCB0
byBjaGVjayAqLw0KI2RlZmluZSBMQVNUX0lPCQkJMHgwMzdDCS8qICBMYXN0
IEkvTyBwb3J0IHRvIGNoZWNrICgrMTBoKSAqLw0KI2RlZmluZSBBRERfTUFT
SwkJMHgzMDAwCS8qICBNYXNrIGl0IHVzZSBvZiB0aGUgQUREX1BPUlQgcmVn
aXN0ZXIgKi8NCiNkZWZpbmUgQUREX1NJRwkJCTB4MzAwMAkvKiAgRXhwZWN0
ZWQgSUQgc2lnbmF0dXJlICovDQoNCiNkZWZpbmUgQ0hJUF9FSVNBX0lEX1NJ
RwkweDYzMEUJLyogIFByb2R1Y3QgSUQgQ29kZSBmb3IgQ3J5c3RhbCBDaGlw
IChDUzg5MDAgc3BlYyA0LjMpICovDQoNCiNkZWZpbmUgUFJPRFVDVF9JRF9B
REQJCTB4MDAwMgkvKiAgQWRkcmVzcyBvZiBwcm9kdWN0IElEICovDQoNCi8q
ICBNYXNrIHRvIGZpbmQgb3V0IHRoZSB0eXBlcyBvZiAgcmVnaXN0ZXJzICov
DQojZGVmaW5lIFJFR19UWVBFX01BU0sJCTB4MDAxRg0KDQovKiAgRWVwcm9t
IENvbW1hbmRzICovDQojZGVmaW5lIEVSU0VfV1JfRU5CTAkJMHgwMEYwDQoj
ZGVmaW5lIEVSU0VfV1JfRElTQUJMRQkJMHgwMDAwDQoNCi8qICBEZWZpbmVz
IENvbnRyb2wvQ29uZmlnIHJlZ2lzdGVyIHF1aW50dXBsZXQgbnVtYmVycyAq
Lw0KI2RlZmluZSBSWF9CVUZfQ0ZHCQkweDAwMDMNCiNkZWZpbmUgUlhfQ09O
VFJPTAkJMHgwMDA1DQojZGVmaW5lIFRYX0NGRwkJCTB4MDAwNw0KI2RlZmlu
ZSBUWF9DT01NQU5ECQkweDAwMDkNCiNkZWZpbmUgQlVGX0NGRwkJCTB4MDAw
Qg0KI2RlZmluZSBMSU5FX0NPTlRST0wJCTB4MDAxMw0KI2RlZmluZSBTRUxG
X0NPTlRST0wJCTB4MDAxNQ0KI2RlZmluZSBCVVNfQ09OVFJPTAkJMHgwMDE3
DQojZGVmaW5lIFRFU1RfQ09OVFJPTAkJMHgwMDE5DQoNCi8qICBEZWZpbmVz
IFN0YXR1cy9Db3VudCByZWdpc3RlcnMgcXVpbnR1cGxldCBudW1iZXJzICov
DQojZGVmaW5lIFJYX0VWRU5UCQkweDAwMDQNCiNkZWZpbmUgVFhfRVZFTlQJ
CTB4MDAwOA0KI2RlZmluZSBCVUZfRVZFTlQJCTB4MDAwQw0KI2RlZmluZSBS
WF9NSVNTX0NPVU5UCQkweDAwMTANCiNkZWZpbmUgVFhfQ09MX0NPVU5UCQkw
eDAwMTINCiNkZWZpbmUgTElORV9TVEFUVVMJCTB4MDAxNA0KI2RlZmluZSBT
RUxGX1NUQVRVUwkJMHgwMDE2DQojZGVmaW5lIEJVU19TVEFUVVMJCTB4MDAx
OA0KI2RlZmluZSBURFIJCQkweDAwMUMNCg0KLyoNCiAqIFBQX1J4Q0ZHIC0g
UmVjZWl2ZSAgQ29uZmlndXJhdGlvbiBhbmQgSW50ZXJydXB0IE1hc2sNCiAq
CQkJIGJpdCBkZWZpbml0aW9uIC0gIFJlYWQvd3JpdGUNCiAqLw0KI2RlZmlu
ZSBTS0lQXzEJCQkweDAwNDANCiNkZWZpbmUgUlhfU1RSRUFNX0VOQkwJCTB4
MDA4MA0KI2RlZmluZSBSWF9PS19FTkJMCQkweDAxMDANCiNkZWZpbmUgUlhf
RE1BX09OTFkJCTB4MDIwMA0KI2RlZmluZSBBVVRPX1JYX0RNQQkJMHgwNDAw
DQojZGVmaW5lIEJVRkZFUl9DUkMJCTB4MDgwMA0KI2RlZmluZSBSWF9DUkNf
RVJST1JfRU5CTAkweDEwMDANCiNkZWZpbmUgUlhfUlVOVF9FTkJMCQkweDIw
MDANCiNkZWZpbmUgUlhfRVhUUkFfREFUQV9FTkJMCTB4NDAwMA0KDQovKiBQ
UF9SeENUTCAtIFJlY2VpdmUgQ29udHJvbCBiaXQgZGVmaW5pdGlvbiAtIFJl
YWQvd3JpdGUgKi8NCiNkZWZpbmUgUlhfSUFfSEFTSF9BQ0NFUFQJMHgwMDQw
DQojZGVmaW5lIFJYX1BST01fQUNDRVBUCQkweDAwODANCiNkZWZpbmUgUlhf
T0tfQUNDRVBUCQkweDAxMDANCiNkZWZpbmUgUlhfTVVMVENBU1RfQUNDRVBU
CTB4MDIwMA0KI2RlZmluZSBSWF9JQV9BQ0NFUFQJCTB4MDQwMA0KI2RlZmlu
ZSBSWF9CUk9BRENBU1RfQUNDRVBUCTB4MDgwMA0KI2RlZmluZSBSWF9CQURf
Q1JDX0FDQ0VQVAkweDEwMDANCiNkZWZpbmUgUlhfUlVOVF9BQ0NFUFQJCTB4
MjAwMA0KI2RlZmluZSBSWF9FWFRSQV9EQVRBX0FDQ0VQVAkweDQwMDANCiNk
ZWZpbmUgUlhfQUxMX0FDQ0VQVAkJKFJYX1BST01fQUNDRVBUIHwgUlhfQkFE
X0NSQ19BQ0NFUFQgfAlcDQoJCQkJIFJYX1JVTlRfQUNDRVBUIHwgUlhfRVhU
UkFfREFUQV9BQ0NFUFQpDQovKg0KICogIERlZmF1bHQgcmVjZWl2ZSBtb2Rl
IC0gaW5kaXZpZHVhbGx5IGFkZHJlc3NlZCwgYnJvYWRjYXN0LCBhbmQgZXJy
b3IgZnJlZQ0KICovDQojZGVmaW5lIFJYX0RFRl9BQ0NFUFQgKFJYX0lBX0FD
Q0VQVCB8IFJYX0JST0FEQ0FTVF9BQ0NFUFQgfCBSWF9PS19BQ0NFUFQpDQoN
Ci8qDQogKiBQUF9UeENGRyAtIFRyYW5zbWl0IENvbmZpZ3VyYXRpb24gSW50
ZXJydXB0IE1hc2sNCiAqCQkJIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0
ZQ0KICovDQojZGVmaW5lIFRYX0xPU1RfQ1JTX0VOQkwJMHgwMDQwDQojZGVm
aW5lIFRYX1NRRV9FUlJPUl9FTkJMCTB4MDA4MA0KI2RlZmluZSBUWF9PS19F
TkJMCQkweDAxMDANCiNkZWZpbmUgVFhfTEFURV9DT0xfRU5CTAkweDAyMDAN
CiNkZWZpbmUgVFhfSkJSX0VOQkwJCTB4MDQwMA0KI2RlZmluZSBUWF9BTllf
Q09MX0VOQkwJCTB4MDgwMA0KI2RlZmluZSBUWF8xNl9DT0xfRU5CTAkJMHg4
MDAwDQoNCi8qDQogKiBQUF9UeENNRCAtIFRyYW5zbWl0IENvbW1hbmQgYml0
IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBUWF9TVEFS
VF80X0JZVEVTCTB4MDAwMA0KI2RlZmluZSBUWF9TVEFSVF82NF9CWVRFUwkw
eDAwNDANCiNkZWZpbmUgVFhfU1RBUlRfMTI4X0JZVEVTCTB4MDA4MA0KI2Rl
ZmluZSBUWF9TVEFSVF9BTExfQllURVMJMHgwMEMwDQojZGVmaW5lIFRYX0ZP
UkNFCQkweDAxMDANCiNkZWZpbmUgVFhfT05FX0NPTAkJMHgwMjAwDQojZGVm
aW5lIFRYX1RXT19QQVJUX0RFRkZfRElTQUJMRSAweDA0MDANCiNkZWZpbmUg
VFhfTk9fQ1JDCQkweDEwMDANCiNkZWZpbmUgVFhfUlVOVAkJCTB4MjAwMA0K
DQovKg0KICogUFBfQnVmQ0ZHIC0gQnVmZmVyIENvbmZpZ3VyYXRpb24gSW50
ZXJydXB0IE1hc2sNCiAqCQkJIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0
ZQ0KICovDQojZGVmaW5lIEdFTkVSQVRFX1NXX0lOVEVSUlVQVAkweDAwNDAN
CiNkZWZpbmUgUlhfRE1BX0VOQkwJCTB4MDA4MA0KI2RlZmluZSBSRUFEWV9G
T1JfVFhfRU5CTAkweDAxMDANCiNkZWZpbmUgVFhfVU5ERVJSVU5fRU5CTAkw
eDAyMDANCiNkZWZpbmUgUlhfTUlTU19FTkJMCQkweDA0MDANCiNkZWZpbmUg
UlhfMTI4X0JZVEVfRU5CTAkweDA4MDANCiNkZWZpbmUgVFhfQ09MX0NPVU5U
X09WUkZMT1dfRU5CTCAweDEwMDANCiNkZWZpbmUgUlhfTUlTU19DT1VOVF9P
VlJGTE9XX0VOQkwgMHgyMDAwDQojZGVmaW5lIFJYX0RFU1RfTUFUQ0hfRU5C
TAkweDgwMDANCg0KLyoNCiAqIFBQX0xpbmVDVEwgLSBMaW5lIENvbnRyb2wg
Yml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRlDQogKi8NCiNkZWZpbmUgU0VS
SUFMX1JYX09OCQkweDAwNDANCiNkZWZpbmUgU0VSSUFMX1RYX09OCQkweDAw
ODANCiNkZWZpbmUgQVVJX09OTFkJCTB4MDEwMA0KI2RlZmluZSBBVVRPX0FV
SV8xMEJBU0VUCTB4MDIwMA0KI2RlZmluZSBNT0RJRklFRF9CQUNLT0ZGCTB4
MDgwMA0KI2RlZmluZSBOT19BVVRPX1BPTEFSSVRZCTB4MTAwMA0KI2RlZmlu
ZSBUV09fUEFSVF9ERUZESVMJCTB4MjAwMA0KI2RlZmluZSBMT1dfUlhfU1FV
RUxDSAkJMHg0MDAwDQoNCi8qDQogKiBQUF9TZWxmQ1RMIC0gU29mdHdhcmUg
U2VsZiBDb250cm9sIGJpdCBkZWZpbml0aW9uIC0gUmVhZC93cml0ZQ0KICov
DQojZGVmaW5lIFBPV0VSX09OX1JFU0VUCQkweDAwNDANCiNkZWZpbmUgU1df
U1RPUAkJCTB4MDEwMA0KI2RlZmluZSBTTEVFUF9PTgkJMHgwMjAwDQojZGVm
aW5lIEFVVE9fV0FLRVVQCQkweDA0MDANCiNkZWZpbmUgSENCMF9FTkJMCQkw
eDEwMDANCiNkZWZpbmUgSENCMV9FTkJMCQkweDIwMDANCiNkZWZpbmUgSENC
MAkJCTB4NDAwMA0KI2RlZmluZSBIQ0IxCQkJMHg4MDAwDQoNCi8qDQogKiBQ
UF9CdXNDVEwgLSBJU0EgQnVzIENvbnRyb2wgYml0IGRlZmluaXRpb24gLSBS
ZWFkL3dyaXRlDQogKi8NCiNkZWZpbmUgUkVTRVRfUlhfRE1BCQkweDAwNDAN
CiNkZWZpbmUgTUVNT1JZX09OCQkweDA0MDANCiNkZWZpbmUgRE1BX0JVUlNU
X01PREUJCTB4MDgwMA0KI2RlZmluZSBJT19DSEFOTkVMX1JFQURZX09OCTB4
MTAwMA0KI2RlZmluZSBSWF9ETUFfU0laRV82NEtzCTB4MjAwMA0KI2RlZmlu
ZSBFTkFCTEVfSVJRCQkweDgwMDANCg0KLyoNCiAqIFBQX1Rlc3RDVEwgLSBU
ZXN0IENvbnRyb2wgYml0IGRlZmluaXRpb24gLSBSZWFkL3dyaXRlDQogKi8N
CiNkZWZpbmUgTElOS19PRkYJCTB4MDA4MA0KI2RlZmluZSBFTkRFQ19MT09Q
QkFDSwkJMHgwMjAwDQojZGVmaW5lIEFVSV9MT09QQkFDSwkJMHgwNDAwDQoj
ZGVmaW5lIEJBQ0tPRkZfT0ZGCQkweDA4MDANCiNkZWZpbmUgRkFTVF9URVNU
CQkweDgwMDANCg0KLyoNCiAqIFBQX1J4RXZlbnQgLSBSZWNlaXZlIEV2ZW50
IEJpdCBkZWZpbml0aW9uIC0gUmVhZC1vbmx5DQogKi8NCiNkZWZpbmUgUlhf
SUFfSEFTSEVECQkweDAwNDANCiNkZWZpbmUgUlhfRFJJQkJMRQkJMHgwMDgw
DQojZGVmaW5lIFJYX09LCQkJMHgwMTAwDQojZGVmaW5lIFJYX0hBU0hFRAkJ
MHgwMjAwDQojZGVmaW5lIFJYX0lBCQkJMHgwNDAwDQojZGVmaW5lIFJYX0JS
T0FEQ0FTVAkJMHgwODAwDQojZGVmaW5lIFJYX0NSQ19FUlJPUgkJMHgxMDAw
DQojZGVmaW5lIFJYX1JVTlQJCQkweDIwMDANCiNkZWZpbmUgUlhfRVhUUkFf
REFUQQkJMHg0MDAwDQoNCiNkZWZpbmUgSEFTSF9JTkRFWF9NQVNLCQkweDBG
QzAwDQoNCi8qDQogKiBQUF9UeEV2ZW50IC0gVHJhbnNtaXQgRXZlbnQgQml0
IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBUWF9MT1NU
X0NSUwkJMHgwMDQwDQojZGVmaW5lIFRYX1NRRV9FUlJPUgkJMHgwMDgwDQoj
ZGVmaW5lIFRYX09LCQkJMHgwMTAwDQojZGVmaW5lIFRYX0xBVEVfQ09MCQkw
eDAyMDANCiNkZWZpbmUgVFhfSkJSCQkJMHgwNDAwDQojZGVmaW5lIFRYXzE2
X0NPTAkJMHg4MDAwDQojZGVmaW5lIFRYX1NFTkRfT0tfQklUUwkJKFRYX09L
IHwgVFhfTE9TVF9DUlMpDQojZGVmaW5lIFRYX0NPTF9DT1VOVF9NQVNLCTB4
NzgwMA0KDQovKg0KICogUFBfQnVmRXZlbnQgLSBCdWZmZXIgRXZlbnQgQml0
IGRlZmluaXRpb24gLSBSZWFkLW9ubHkNCiAqLw0KI2RlZmluZSBTV19JTlRF
UlJVUFQJCTB4MDA0MA0KI2RlZmluZSBSWF9ETUEJCQkweDAwODANCiNkZWZp
bmUgUkVBRFlfRk9SX1RYCQkweDAxMDANCiNkZWZpbmUgVFhfVU5ERVJSVU4J
CTB4MDIwMA0KI2RlZmluZSBSWF9NSVNTCQkJMHgwNDAwDQojZGVmaW5lIFJY
XzEyOF9CWVRFCQkweDA4MDANCiNkZWZpbmUgVFhfQ09MX09WUkZMVwkJMHgx
MDAwDQojZGVmaW5lIFJYX01JU1NfT1ZSRkxXCQkweDIwMDANCiNkZWZpbmUg
UlhfREVTVF9NQVRDSAkJMHg4MDAwDQoNCi8qDQogKiBQUF9MaW5lU1QgLSBF
dGhlcm5ldCBMaW5lIFN0YXR1cyBiaXQgZGVmaW5pdGlvbiAtIFJlYWQtb25s
eQ0KICovDQojZGVmaW5lIExJTktfT0sJCQkweDAwODANCiNkZWZpbmUgQVVJ
X09OCQkJMHgwMTAwDQojZGVmaW5lIFRFTkJBU0VUX09OCQkweDAyMDANCiNk
ZWZpbmUgUE9MQVJJVFlfT0sJCTB4MTAwMA0KI2RlZmluZSBDUlNfT0sJCQkw
eDQwMDANCg0KLyoNCiAqIFBQX1NlbGZTVCAtIENoaXAgU29mdHdhcmUgU3Rh
dHVzIGJpdCBkZWZpbml0aW9uDQogKi8NCiNkZWZpbmUgQUNUSVZFXzMzVgkJ
MHgwMDQwDQojZGVmaW5lIElOSVRfRE9ORQkJMHgwMDgwDQojZGVmaW5lIFNJ
X0JVU1kJCQkweDAxMDANCiNkZWZpbmUgRUVQUk9NX1BSRVNFTlQJCTB4MDIw
MA0KI2RlZmluZSBFRVBST01fT0sJCTB4MDQwMA0KI2RlZmluZSBFTF9QUkVT
RU5UCQkweDA4MDANCiNkZWZpbmUgRUVfU0laRV82NAkJMHgxMDAwDQoNCi8q
DQogKiBQUF9CdXNTVCAtIElTQSBCdXMgU3RhdHVzIGJpdCBkZWZpbml0aW9u
DQogKi8NCiNkZWZpbmUgVFhfQklEX0VSUk9SCQkweDAwODANCiNkZWZpbmUg
UkVBRFlfRk9SX1RYX05PVwkweDAxMDANCg0KLyoNCiAqIFBQX0F1dG9OZWdD
VEwgLSBBdXRvIE5lZ290aWF0aW9uIENvbnRyb2wgYml0IGRlZmluaXRpb24N
CiAqLw0KI2RlZmluZSBSRV9ORUdfTk9XCQkweDAwNDANCiNkZWZpbmUgQUxM
T1dfRkRYCQkweDAwODANCiNkZWZpbmUgQVVUT19ORUdfRU5BQkxFCQkweDAx
MDANCiNkZWZpbmUgTkxQX0VOQUJMRQkJMHgwMjAwDQojZGVmaW5lIEZPUkNF
X0ZEWAkJMHg4MDAwDQojZGVmaW5lIEFVVE9fTkVHX0JJVFMJCShGT1JDRV9G
RFggfCBOTFBfRU5BQkxFIHwgQVVUT19ORUdfRU5BQkxFKQ0KI2RlZmluZSBB
VVRPX05FR19NQVNLCQkoRk9SQ0VfRkRYIHwgTkxQX0VOQUJMRSB8IEFVVE9f
TkVHX0VOQUJMRSB8IFwNCgkJCQkgQUxMT1dfRkRYIHwgUkVfTkVHX05PVykN
Cg0KLyoNCiAqIFBQX0F1dG9OZWdTVCAtIEF1dG8gTmVnb3RpYXRpb24gU3Rh
dHVzIGJpdCBkZWZpbml0aW9uDQogKi8NCiNkZWZpbmUgQVVUT19ORUdfQlVT
WQkJMHgwMDgwDQojZGVmaW5lIEZMUF9MSU5LCQkweDAxMDANCiNkZWZpbmUg
RkxQX0xJTktfR09PRAkJMHgwODAwDQojZGVmaW5lIExJTktfRkFVTFQJCTB4
MTAwMA0KI2RlZmluZSBIRFhfQUNUSVZFCQkweDQwMDANCiNkZWZpbmUgRkRY
X0FDVElWRQkJMHg4MDAwDQoNCi8qDQogKiBUaGUgZm9sbG93aW5nIGJsb2Nr
IGRlZmluZXMgdGhlIElTUSBldmVudCB0eXBlcw0KICovDQojZGVmaW5lIElT
UV9SRUNFSVZFUl9FVkVOVAkweDA0DQojZGVmaW5lIElTUV9UUkFOU01JVFRF
Ul9FVkVOVAkweDA4DQojZGVmaW5lIElTUV9CVUZGRVJfRVZFTlQJMHgwYw0K
I2RlZmluZSBJU1FfUlhfTUlTU19FVkVOVAkweDEwDQojZGVmaW5lIElTUV9U
WF9DT0xfRVZFTlQJMHgxMg0KDQojZGVmaW5lIElTUV9FVkVOVF9NQVNLCQkw
eDAwM0YJLyogSVNRIG1hc2sgdG8gZmluZCBvdXQgdHlwZSBvZiBldmVudCAq
Lw0KI2RlZmluZSBJU1FfSElTVAkJMTYJLyogc21hbGwgaGlzdG9yeSBidWZm
ZXIgKi8NCiNkZWZpbmUgQVVUT0lOQ1JFTUVOVAkJMHg4MDAwCS8qIEJpdCBt
YXNrIHRvIHNldCBiaXQtMTUgZm9yIGF1dG9pbmNyZW1lbnQgKi8NCg0KI2Rl
ZmluZSBUWFJYQlVGU0laRQkJMHgwNjAwDQojZGVmaW5lIFJYRE1BQlVGU0la
RQkJMHg4MDAwDQojZGVmaW5lIFJYRE1BU0laRQkJMHg0MDAwDQojZGVmaW5l
IFRYUlhfTEVOR1RIX01BU0sJMHgwN0ZGDQoNCi8qICByeCBvcHRpb25zIGJp
dHMgKi8NCiNkZWZpbmUgUkNWX1dJVEhfUlhPTgkJMSAgICAgICAvKiAgU2V0
IFNlclJ4IE9OICovDQojZGVmaW5lIFJDVl9DT1VOVFMJCTIgICAgICAgLyog
IFVzZSBGcmFtZWNudDEgKi8NCiNkZWZpbmUgUkNWX1BPTkcJCTQgICAgICAg
LyogIFBvbmcgcmVzcG9uZGVudCAqLw0KI2RlZmluZSBSQ1ZfRE9ORwkJOCAg
ICAgICAvKiAgRG9uZyBvcGVyYXRpb24gKi8NCiNkZWZpbmUgUkNWX1BPTExJ
TkcJCTB4MTAJLyogIFBvbGwgUnhFdmVudCAqLw0KI2RlZmluZSBSQ1ZfSVNR
CQkJMHgyMAkvKiAgVXNlIElTUSwgaW50ICovDQojZGVmaW5lIFJDVl9BVVRP
X0RNQQkJMHgxMDAJLyogIFNldCBBdXRvUnhETUFFICovDQojZGVmaW5lIFJD
Vl9ETUEJCQkweDIwMAkvKiAgU2V0IFJ4RE1BIG9ubHkgKi8NCiNkZWZpbmUg
UkNWX0RNQV9BTEwJCTB4NDAwCS8qICBDb3B5IGFsbCBETUEnZWQgKi8NCiNk
ZWZpbmUgUkNWX0ZJWEVEX0RBVEEJCTB4ODAwCS8qICBFdmVyeSBmcmFtZSBz
YW1lICovDQojZGVmaW5lIFJDVl9JTwkJCTB4MTAwMAkvKiAgVXNlIElTQSBJ
TyBvbmx5ICovDQojZGVmaW5lIFJDVl9NRU1PUlkJCTB4MjAwMAkvKiAgVXNl
IElTQSBNZW1vcnkgKi8NCg0KI2RlZmluZSBSQU1fU0laRQkJMHgxMDAwICAg
ICAgLyogIFRoZSBjYXJkIGhhcyA0ayBieXRlcyBvciBSQU0gKi8NCiNkZWZp
bmUgUEtUX1NUQVJUCQlQUF9UeEZyYW1lICAvKiAgU3RhcnQgb2YgcGFja2V0
IFJBTSAqLw0KDQojZGVmaW5lIFJYX0ZSQU1FX1BPUlQJCTB4MDAwMA0KI2Rl
ZmluZSBUWF9GUkFNRV9QT1JUCQlSWF9GUkFNRV9QT1JUDQojZGVmaW5lIFRY
X0NNRF9QT1JUCQkweDAwMDQNCiNkZWZpbmUgVFhfTk9XCQkJMHgwMDAwICAv
KiBUeCBwYWNrZXQgYWZ0ZXIgICA1IGJ5dGVzIGNvcGllZCAqLw0KI2RlZmlu
ZSBUWF9BRlRFUl8zODEJCTB4MDAyMCAgLyogVHggcGFja2V0IGFmdGVyIDM4
MSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQUZURVJfQUxMCQkweDAw
NjAgIC8qIFR4IHBhY2tldCBhZnRlciBhbGwgYnl0ZXMgY29waWVkICovDQoj
ZGVmaW5lIFRYX0NTODkyMF9OT1cJCTB4MDAwMCAgLyogVHggcGFja2V0IGFm
dGVyICAgNSBieXRlcyBjb3BpZWQgKi8NCiNkZWZpbmUgVFhfQ1M4OTIwX0FG
VEVSXzM4MQkweDAwNDAgIC8qIFR4IHBhY2tldCBhZnRlciAzODEgYnl0ZXMg
Y29waWVkICovDQojZGVmaW5lIFRYX0NTODkyMF9BRlRFUl8xMDIxCTB4MDA4
MCAgLyogVHggcGFja2V0IGFmdGVyMTAyMSBieXRlcyBjb3BpZWQgKi8NCiNk
ZWZpbmUgVFhfQ1M4OTIwX0FGVEVSX0FMTAkweDAwQzAgIC8qIFR4IHBhY2tl
dCBhZnRlciBhbGwgYnl0ZXMgY29waWVkICovDQojZGVmaW5lIFRYX0xFTl9Q
T1JUCQkweDAwMDYNCiNkZWZpbmUgSVNRX1BPUlQJCTB4MDAwOA0KI2RlZmlu
ZSBBRERfUE9SVAkJMHgwMDBBDQojZGVmaW5lIERBVEFfUE9SVAkJMHgwMDBD
DQoNCiNkZWZpbmUgRUVQUk9NX1dSSVRFX0VOCQkweDAwRjANCiNkZWZpbmUg
RUVQUk9NX1dSSVRFX0RJUwkweDAwMDANCiNkZWZpbmUgRUVQUk9NX1dSSVRF
X0NNRAkweDAxMDANCiNkZWZpbmUgRUVQUk9NX1JFQURfQ01ECQkweDAyMDAN
Cg0KLyogIFJlY2VpdmUgSGVhZGVyDQogKiAgRGVzY3JpcHRpb24gb2YgaGVh
ZGVyIG9mIGVhY2ggcGFja2V0IGluIHJlY2VpdmUgYXJlYSBvZiBtZW1vcnkN
CiAqLw0KI2RlZmluZSBSQlVGX0VWRU5UX0xPVwkwICAvKiBMb3cgYnl0ZSBv
ZiBSeEV2ZW50IC0gc3RhdHVzIG9mIHJlY2VpdmVkIGZyYW1lICovDQojZGVm
aW5lIFJCVUZfRVZFTlRfSElHSAkxICAvKiBIaWdoIGJ5dGUgb2YgUnhFdmVu
dCAtIHN0YXR1cyBvZiByZWNlaXZlZCBmcmFtZSAqLw0KI2RlZmluZSBSQlVG
X0xFTl9MT1cJMiAgLyogTGVuZ3RoIG9mIHJlY2VpdmVkIGRhdGEgLSBsb3cg
Ynl0ZSAqLw0KI2RlZmluZSBSQlVGX0xFTl9ISQkzICAvKiBMZW5ndGggb2Yg
cmVjZWl2ZWQgZGF0YSAtIGhpZ2ggYnl0ZSAqLw0KI2RlZmluZSBSQlVGX0hF
QURfTEVOCTQgIC8qIExlbmd0aCBvZiB0aGlzIGhlYWRlciAqLw0KDQojZGVm
aW5lIENISVBfUkVBRCAweDEgIC8qIFVzZWQgdG8gbWFyayBzdGF0ZSBvZiB0
aGUgcmVwaW5zIGNvZGUgKGNoaXAgb3IgZG1hKSAqLw0KI2RlZmluZSBETUFf
UkVBRCAgMHgyICAvKiBVc2VkIHRvIG1hcmsgc3RhdGUgb2YgdGhlIHJlcGlu
cyBjb2RlIChjaGlwIG9yIGRtYSkgKi8NCg0KLyogIGZvciBiaW9zIHNjYW4g
Ki8NCi8qICAqLw0KI2lmZGVmIENTREVCVUcNCi8qICB1c2UgdGhlc2UgdmFs
dWVzIGZvciBkZWJ1Z2dpbmcgYmlvcyBzY2FuICovDQojZGVmaW5lIEJJT1Nf
U1RBUlRfU0VHCQkweDAwMDAwDQojZGVmaW5lIEJJT1NfT0ZGU0VUX0lOQwkJ
MHgwMDEwDQojZWxzZQ0KI2RlZmluZSBCSU9TX1NUQVJUX1NFRwkJMHgwYzAw
MA0KI2RlZmluZSBCSU9TX09GRlNFVF9JTkMJCTB4MDIwMA0KI2VuZGlmDQoN
CiNkZWZpbmUgQklPU19MQVNUX09GRlNFVAkweDBmYzAwDQoNCi8qDQogKiAg
Qnl0ZSBvZmZzZXRzIGludG8gdGhlIEVFUFJPTSBjb25maWd1cmF0aW9uIGJ1
ZmZlcg0KICovDQojZGVmaW5lIElTQV9DTkZfT0ZGU0VUCQkweDYNCiNkZWZp
bmUgVFhfQ1RMX09GRlNFVAkJKElTQV9DTkZfT0ZGU0VUICsgOCkJLyogIDg5
MDAgZWVwcm9tICovDQojZGVmaW5lIEFVVE9fTkVHX0NORl9PRkZTRVQJKElT
QV9DTkZfT0ZGU0VUICsgOCkJLyogIDg5MjAgZWVwcm9tICovDQoNCi8qDQog
KiAgdGhlIGFzc3VtcHRpb24gaGVyZSBpcyB0aGF0IHRoZSBiaXRzIGluIHRo
ZSBlZXByb20gYXJlIGdlbmVyYWxseSANCiAqICBpbiB0aGUgc2FtZSBwb3Np
dGlvbiBhcyB0aG9zZSBpbiB0aGUgYXV0b25lZ2N0bCByZWdpc3Rlci4gDQog
KiAgT2YgY291cnNlIHRoZSBJTU0gYml0IGlzIG5vdCBpbiB0aGF0IHJlZ2lz
dGVyIHNvIGl0IG11c3QgYmUgDQogKiAgbWFza2VkIG91dA0KICovDQojZGVm
aW5lIEVFX0ZPUkNFX0ZEWAkJMHg4MDAwDQojZGVmaW5lIEVFX05MUF9FTkFC
TEUJCTB4MDIwMA0KI2RlZmluZSBFRV9BVVRPX05FR19FTkFCTEUJMHgwMTAw
DQojZGVmaW5lIEVFX0FMTE9XX0ZEWAkJMHgwMDgwDQojZGVmaW5lIEVFX0FV
VE9fTkVHX0NORl9NQVNLCShFRV9GT1JDRV9GRFggfCBFRV9OTFBfRU5BQkxF
IHwgCVwNCgkJCQkgRUVfQVVUT19ORUdfRU5BQkxFIHwgRUVfQUxMT1dfRkRY
KQ0KDQojZGVmaW5lIElNTV9CSVQJCQkweDAwNDAJLyogIGlnbm9yZSBtaXNz
aW5nIG1lZGlhCSAqLw0KDQojZGVmaW5lIEFEQVBURVJfQ05GX09GRlNFVAko
QVVUT19ORUdfQ05GX09GRlNFVCArIDIpDQojZGVmaW5lIEFfQ05GXzEwQl9U
CQkweDAwMDENCiNkZWZpbmUgQV9DTkZfQVVJCQkweDAwMDINCiNkZWZpbmUg
QV9DTkZfMTBCXzIJCTB4MDAwNA0KI2RlZmluZSBBX0NORl9NRURJQV9UWVBF
CTB4MDA2MA0KI2RlZmluZSBBX0NORl9NRURJQV9BVVRPCTB4MDAwMA0KI2Rl
ZmluZSBBX0NORl9NRURJQV8xMEJfVAkweDAwMjANCiNkZWZpbmUgQV9DTkZf
TUVESUFfQVVJCQkweDAwNDANCiNkZWZpbmUgQV9DTkZfTUVESUFfMTBCXzIJ
MHgwMDYwDQojZGVmaW5lIEFfQ05GX0RDX0RDX1BPTEFSSVRZCTB4MDA4MA0K
I2RlZmluZSBBX0NORl9OT19BVVRPX1BPTEFSSVRZCTB4MjAwMA0KI2RlZmlu
ZSBBX0NORl9MT1dfUlhfU1FVRUxDSAkweDQwMDANCiNkZWZpbmUgQV9DTkZf
RVhUTkRfMTBCXzIJMHg4MDAwDQoNCiNkZWZpbmUgUEFDS0VUX1BBR0VfT0ZG
U0VUCTB4OA0KDQovKg0KICogIEJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIElT
QSBjb25maWd1cmF0aW9uIHdvcmQgZnJvbSB0aGUgRUVQUk9NDQogKi8NCiNk
ZWZpbmUgSU5UX05PX01BU0sJCTB4MDAwRg0KI2RlZmluZSBETUFfTk9fTUFT
SwkJMHgwMDcwDQojZGVmaW5lIElTQV9ETUFfU0laRQkJMHgwMjAwDQojZGVm
aW5lIElTQV9BVVRPX1J4RE1BCQkweDA0MDANCiNkZWZpbmUgSVNBX1J4RE1B
CQkweDA4MDANCiNkZWZpbmUgRE1BX0JVUlNUCQkweDEwMDANCiNkZWZpbmUg
U1RSRUFNX1RSQU5TRkVSCQkweDIwMDANCiNkZWZpbmUgQU5ZX0lTQV9ETUEJ
CShJU0FfQVVUT19SeERNQSB8IElTQV9SeERNQSkNCg0KLyogIERNQSBjb250
cm9sbGVyIHJlZ2lzdGVycyAqLw0KI2RlZmluZSBETUFfQkFTRQkJMHgwMCAg
IC8qIERNQSBjb250cm9sbGVyIGJhc2UgKi8NCiNkZWZpbmUgRE1BX0JBU0Vf
MgkJMHgwQzAgIC8qIERNQSBjb250cm9sbGVyIGJhc2UgKi8NCg0KI2RlZmlu
ZSBETUFfU1RBVAkJMHgwRDAgIC8qIERNQSBjb250cm9sbGVyIHN0YXR1cyBy
ZWdpc3RlciAqLw0KI2RlZmluZSBETUFfTUFTSwkJMHgwRDQgIC8qIERNQSBj
b250cm9sbGVyIG1hc2sgcmVnaXN0ZXIgKi8NCiNkZWZpbmUgRE1BX01PREUJ
CTB4MEQ2ICAvKiBETUEgY29udHJvbGxlciBtb2RlIHJlZ2lzdGVyICovDQoj
ZGVmaW5lIERNQV9SRVNFVEZGCQkweDBEOCAgLyogRE1BIGNvbnRyb2xsZXIg
Zmlyc3QvbGFzdCBmbGlwIGZsb3AgKi8NCg0KLyogIERNQSBkYXRhICovDQoj
ZGVmaW5lIERNQV9ESVNBQkxFCQkweDA0ICAgLyogIERpc2FibGUgY2hhbm5l
bCBuICovDQojZGVmaW5lIERNQV9FTkFCTEUJCTB4MDAgICAvKiAgRW5hYmxl
IGNoYW5uZWwgbiAqLw0KLyogIERlbWFuZCB0cmFuc2ZlcnMsIGluY3IuIGFk
ZHJlc3MsIGF1dG8gaW5pdCwgd3JpdGVzLCBjaC4gbiAqLw0KI2RlZmluZSBE
TUFfUlhfTU9ERQkJMHgxNA0KLyogIERlbWFuZCB0cmFuc2ZlcnMsIGluY3Iu
IGFkZHJlc3MsIGF1dG8gaW5pdCwgcmVhZHMsIGNoLiBuICovDQojZGVmaW5l
IERNQV9UWF9NT0RFCQkweDE4DQoNCiNkZWZpbmUgRE1BX1NJWkUJCSgxNiox
MDI0KQkvKiBTaXplIG9mIGRtYSBidWZmZXIgLSAxNmsgKi8NCg0KI2RlZmlu
ZSBDUzg5MDAJCQkweDAwMDANCiNkZWZpbmUgQ1M4OTIwCQkJMHg0MDAwICAg
DQojZGVmaW5lIENTODkyME0JCQkweDYwMDAgICANCiNkZWZpbmUgUkVWSVNP
Tl9CSVRTCQkweDFGMDANCiNkZWZpbmUgRUVWRVJfTlVNQkVSCQkweDEyDQoj
ZGVmaW5lIENIS1NVTV9MRU4JCTB4MTQNCiNkZWZpbmUgQ0hLU1VNX1ZBTAkJ
MHgwMDAwDQojZGVmaW5lIFNUQVJUX0VFUFJPTV9EQVRBCTB4MDAxYyAvKiBP
ZmZzZXQgaW50byBlZXByb20gZm9yIHN0YXJ0IG9mIGRhdGEgKi8NCiNkZWZp
bmUgSVJRX01BUF9FRVBST01fREFUQQkweDAwNDYgLyogT2Zmc2V0IGludG8g
ZWVwcm9tIGZvciB0aGUgSVJRIG1hcCAqLw0KI2RlZmluZSBJUlFfTUFQX0xF
TgkJMHgwMDA0IC8qIE5vIG9mIGJ5dGVzIHRvIHJlYWQgZm9yIHRoZSBJUlEg
bWFwICovDQojZGVmaW5lIFBOUF9JUlFfRlJNVAkJMHgwMDIyIC8qIFBOUCBz
bWFsbCBpdGVtIElSUSBmb3JtYXQgKi8NCiNkZWZpbmUgQ1M4OTAwX0lSUV9N
QVAJCTB4MWMyMCAvKiBUaGlzIElSUSBtYXAgaXMgZml4ZWQgKi8NCg0KI2Rl
ZmluZSBDUzg5MjBfTk9fSU5UUwkJMHgwRiAgIC8qICBNYXggQ1M4OTIwIGlu
dGVycnVwdCBzZWxlY3QgIyAqLw0KDQojZGVmaW5lIFBOUF9BRERfUE9SVAkJ
MHgwMjc5DQojZGVmaW5lIFBOUF9XUklURV9QT1JUCQkweDBBNzkNCg0KI2Rl
ZmluZSBHRVRfUE5QX0lTQV9TVFJVQ1QJMHg0MA0KI2RlZmluZSBQTlBfSVNB
X1NUUlVDVF9MRU4JMHgwNg0KI2RlZmluZSBQTlBfQ1NOX0NOVF9PRkYJCTB4
MDENCiNkZWZpbmUgUE5QX1JEX1BPUlRfT0ZGCQkweDAyDQojZGVmaW5lIFBO
UF9GVU5DVElPTl9PSwkJMHgwMA0KI2RlZmluZSBQTlBfV0FLRQkJMHgwMw0K
I2RlZmluZSBQTlBfUlNSQ19EQVRBCQkweDA0DQojZGVmaW5lIFBOUF9SU1JD
X1JFQURZCQkweDAxDQojZGVmaW5lIFBOUF9TVEFUVVMJCTB4MDUNCiNkZWZp
bmUgUE5QX0FDVElWQVRFCQkweDMwDQojZGVmaW5lIFBOUF9DTkZfSU9fSAkJ
MHg2MA0KI2RlZmluZSBQTlBfQ05GX0lPX0wJCTB4NjENCiNkZWZpbmUgUE5Q
X0NORl9JTlQJCTB4NzANCiNkZWZpbmUgUE5QX0NORl9ETUEJCTB4NzQNCiNk
ZWZpbmUgUE5QX0NORl9NRU0JCTB4NDgNCg0KI2RlZmluZSBCSVQwCQkJMQ0K
I2RlZmluZSBCSVQxNQkJCTB4ODAwMA0KDQovKiBEZXZpY2UgbmFtZSAqLw0K
I2RlZmluZSBDU19OQU1FCQkJImNzIg0KDQojZGVmaW5lIGNzX3JlYWRyZWco
aW9iYXNlLCBwb3J0bm8pIFwNCgkob3V0dygoaW9iYXNlKSArIEFERF9QT1JU
LCAocG9ydG5vKSksIFwNCglpbncoKGlvYmFzZSkgKyBEQVRBX1BPUlQpKQ0K
I2RlZmluZSBjc193cml0ZXJlZyhpb2Jhc2UsIHBvcnRubywgdmFsdWUpIFwN
Cgkob3V0dygoaW9iYXNlKSArIEFERF9QT1JULCAocG9ydG5vKSksIFwNCglv
dXR3KChpb2Jhc2UpICsgREFUQV9QT1JULCAodmFsdWUpKSkNCiNkZWZpbmUg
Y3NfcmVhZHdvcmQoaW9iYXNlLCBwb3J0bm8pIFwNCgkoaW53KChpb2Jhc2Up
ICsgKHBvcnRubykpKQ0KI2RlZmluZSBjc193cml0ZXdvcmQoaW9iYXNlLCBw
b3J0bm8sIHZhbHVlKSBcDQoJKG91dHcoKGlvYmFzZSkgKyAocG9ydG5vKSwg
KHZhbHVlKSkpDQoNCiNkZWZpbmUgcmVzZXRfY2hpcChuaWNfYWRkcikgXA0K
CWNzX3dyaXRlcmVnKG5pY19hZGRyLCBQUF9TZWxmQ1RMLCBjc19yZWFkcmVn
KGlvYWRkciwgUFBfU2VsZkNUTCkgfCBQT1dFUl9PTl9SRVNFVCksIFwNCglE
RUxBWSgzMDAwMCkNCg==
--0-731731238-893342402=:29546
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="if_cs.c"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.3.96.980423184001.29546C@altos.rnd.runnet.ru>
Content-Description: /sys/i386/isa/if_cs.c

LyoNCiAqIENvcHlyaWdodCAoYykgMTk5NywxOTk4IE1heGltIEJvbG90aW4g
YW5kIE9sZWcgU2hhcm9pa28uDQogKiBBbGwgcmlnaHRzIHJlc2VydmVkLg0K
ICoNCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zDQogKiBhcmUgbWV0Og0KICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQNCiAqICAgIG5vdGljZSB1bm1vZGlmaWVkLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucywgYW5kIHRoZSBmb2xsb3dpbmcNCiAqICAgIGRpc2NsYWltZXIu
DQogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodA0KICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQ0KICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4N
CiAqDQogKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRI
T1IgQU5EIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EDQogKiBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUNCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFDQogKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQ0KICogRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCiAqIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTDQogKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCiAq
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQogKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZDQogKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GDQogKiBTVUNIIERBTUFHRS4NCiAqDQogKi8NCg0KLyoNCiAqICRJZDog
aWZfY3MuYyx2IDEuMiAxOTk4LzA0LzIwIDA4OjQyOjI0IHJvb3QgRXhwICQN
CiAqDQogKiBEZXZpY2UgZHJpdmVyIGZvciBDcnlzdGFsIFNlbWljb25kdWN0
b3IgQ1M4OTIwIGJhc2VkIGV0aGVybmV0DQogKiAgIGFkYXB0ZXJzLiBCeSBN
YXhpbSBCb2xvdGluIGFuZCBPbGVnIFNoYXJvaWtvLCAyNy1BcHJpbC0xOTk3
DQogKi8NCg0KI2luY2x1ZGUgImNzLmgiDQojaW5jbHVkZSAiYnBmaWx0ZXIu
aCINCg0KI2luY2x1ZGUgPHN5cy9wYXJhbS5oPg0KI2luY2x1ZGUgPHN5cy9z
eXN0bS5oPg0KI2luY2x1ZGUgPHN5cy9jb25mLmg+DQojaW5jbHVkZSA8c3lz
L2Vycm5vLmg+DQojaW5jbHVkZSA8c3lzL2lvY3RsLmg+DQojaW5jbHVkZSA8
c3lzL21idWYuaD4NCiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQojaW5jbHVk
ZSA8c3lzL3N5c2xvZy5oPg0KDQojaW5jbHVkZSA8bmV0L2lmLmg+DQojaW5j
bHVkZSA8bmV0L2lmX2RsLmg+DQojaW5jbHVkZSA8bmV0L2lmX21pYi5oPg0K
I2luY2x1ZGUgPG5ldC9pZl90eXBlcy5oPg0KDQojaWZkZWYgSU5FVA0KI2lu
Y2x1ZGUgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxuZXRpbmV0L2luX3N5
c3RtLmg+DQojaW5jbHVkZSA8bmV0aW5ldC9pbl92YXIuaD4NCiNpbmNsdWRl
IDxuZXRpbmV0L2lwLmg+DQojaW5jbHVkZSA8bmV0aW5ldC9pZl9ldGhlci5o
Pg0KI2VuZGlmDQoNCiNpZmRlZiBJUFgNCiNpbmNsdWRlIDxuZXRpcHgvaXB4
Lmg+DQojaW5jbHVkZSA8bmV0aXB4L2lweF9pZi5oPg0KI2VuZGlmDQoNCiNp
ZmRlZiBOUw0KI2luY2x1ZGUgPG5ldG5zL25zLmg+DQojaW5jbHVkZSA8bmV0
bnMvbnNfaWYuaD4NCiNlbmRpZg0KDQojaWYgTkJQRklMVEVSID4gMA0KI2lu
Y2x1ZGUgPG5ldC9icGYuaD4NCiNpbmNsdWRlIDxuZXQvYnBmZGVzYy5oPg0K
I2VuZGlmDQoNCiNpbmNsdWRlIDxtYWNoaW5lL2Nsb2NrLmg+DQojaW5jbHVk
ZSA8bWFjaGluZS9tZF92YXIuaD4NCg0KI2luY2x1ZGUgPGkzODYvaXNhL2lz
YV9kZXZpY2UuaD4NCiNpbmNsdWRlIDxpMzg2L2lzYS9pY3UuaD4NCiNpbmNs
dWRlIDxpMzg2L2lzYS9pZl9jc3JlZy5oPg0KDQojaWZkZWYgIENTX1VTRV82
NEtfRE1BDQojZGVmaW5lIENTX0RNQV9CVUZGRVJfU0laRSA2NTUzNg0KI2Vs
c2UNCiNkZWZpbmUgQ1NfRE1BX0JVRkZFUl9TSVpFIDE2Mzg0DQojZW5kaWYN
Cg0KI2RlZmluZQlUWF9ERUxBWSAxMDAwDQoNCi8qDQogKiBjc19zb2Z0Yzog
cGVyIGxpbmUgaW5mbyBhbmQgc3RhdHVzDQogKi8NCnN0YXRpYyBzdHJ1Y3Qg
Y3Nfc29mdGMgew0KDQoJLyogRXRoZXJuZXQgY29tbW9uIGNvZGUgKi8NCglz
dHJ1Y3QgYXJwY29tIGFycGNvbTsNCg0KCS8qIENvbmZpZ3VyYXRpb24gd29y
ZHMgZnJvbSBFRVBST00gKi8NCglpbnQgYXV0b19uZWdfY25mOyAgICAgICAg
ICAgICAgIC8qIEF1dG9OZWdvdGl0YXRpb24gY29uZmlndXJhdGlvbiAqLw0K
CWludCBhZGFwdGVyX2NuZjsgICAgICAgICAgICAgICAgLyogQWRhcHRlciBj
b25maWd1cmF0aW9uICovDQoJaW50IGlzYV9jb25maWc7ICAgICAgICAgICAg
ICAgICAvKiBJU0EgY29uZmlndXJhdGlvbiAqLw0KDQoJaW50IG5pY19hZGRy
OyAJCQkvKiBCYXNlIElPIGFkZHJlc3Mgb2YgY2FyZCAqLw0KCWludCBzZW5k
X2NtZDsNCglpbnQgbGluZV9jdGw7ICAgICAgICAgICAgICAgICAgIC8qICov
DQoJaW50IHJ4X21vZGU7DQoJaW50IGN1cnJfcnhfY2ZnOw0KCWludCBzZW5k
X3VuZGVycnVuOw0KCXZvaWQgKnJlY3ZfcmluZzsNCg0KCXVuc2lnbmVkIGNo
YXIgKmJ1ZmZlcjsNCglpbnQgYnVmX2xlbjsNCg0KfQljc19zb2Z0Y1tOQ1Nd
Ow0KDQpzdGF0aWMgaW50CWNzX2F0dGFjaAkJX19QKChzdHJ1Y3QgaXNhX2Rl
dmljZSAqKSk7DQpzdGF0aWMgdm9pZAljc19pbml0CQkJX19QKCh2b2lkICop
KTsNCnN0YXRpYyBpbnQJY3NfaW9jdGwJCV9fUCgoc3RydWN0IGlmbmV0ICos
IGludCwgY2FkZHJfdCkpOw0Kc3RhdGljIGludAljc19wcm9iZQkJX19QKChz
dHJ1Y3QgaXNhX2RldmljZSAqKSk7DQpzdGF0aWMgaW50CWNzX2NzODl4MF9w
cm9iZQkJX19QKChzdHJ1Y3QgaXNhX2RldmljZSAqKSk7DQpzdGF0aWMgdm9p
ZAljc19zdGFydAkJX19QKChzdHJ1Y3QgaWZuZXQgKikpOw0Kc3RhdGljIHZv
aWQJY3Nfc3RvcAkJCV9fUCgoc3RydWN0IGNzX3NvZnRjICopKTsNCnN0YXRp
YyB2b2lkCWNzX3Jlc2V0CQlfX1AoKHN0cnVjdCBjc19zb2Z0YyAqKSk7DQpz
dGF0aWMgdm9pZAljc193YXRjaGRvZwkJX19QKChzdHJ1Y3QgaWZuZXQgKikp
Ow0KDQpzdGF0aWMgdm9pZAljc193cml0ZV9tYnVmcyggc3RydWN0IGNzX3Nv
ZnRjKiwgc3RydWN0ICBtYnVmKik7DQpzdGF0aWMgdm9pZAljc194bWl0X2J1
Ziggc3RydWN0IGNzX3NvZnRjICpzYyApOw0Kc3RhdGljIGludAljc19nZXRf
cGFja2V0KCBzdHJ1Y3QgY3Nfc29mdGMgKiApOw0KDQpzdGF0aWMgaW50CWdl
dF9lZXByb21fZGF0YShzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQsIGludCwg
aW50ICopOw0Kc3RhdGljIGludAlnZXRfZWVwcm9tX2Nrc3VtKGludCwgaW50
LCBpbnQgKik7DQpzdGF0aWMgaW50CXdhaXRfZWVwcm9tX3JlYWR5KCBzdHJ1
Y3QgY3Nfc29mdGMgKik7DQpzdGF0aWMgdm9pZAljb250cm9sX2RjX2RjKCBz
dHJ1Y3QgY3Nfc29mdGMgKiwgaW50ICk7DQpzdGF0aWMgaW50CWRldGVjdF90
cCggc3RydWN0IGNzX3NvZnRjICosIGludCApOw0Kc3RhdGljIGludAlkZXRl
Y3RfYXVpKCBzdHJ1Y3QgY3Nfc29mdGMgKiwgaW50ICk7DQpzdGF0aWMgaW50
CWRldGVjdF9ibmMoIHN0cnVjdCBjc19zb2Z0YyAqLCBpbnQgKTsNCg0Kc3Ry
dWN0IGlzYV9kcml2ZXIgY3Nkcml2ZXIgPSB7DQoJY3NfcHJvYmUsDQoJY3Nf
YXR0YWNoLA0KCUNTX05BTUUsDQoJMA0KfTsNCg0Kc3RhdGljIGludA0KZ2V0
X2VlcHJvbV9kYXRhKCBzdHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQgb2ZmLCBp
bnQgbGVuLCBpbnQgKmJ1ZmZlcikNCnsNCglpbnQgaTsNCg0KI2lmZGVmIENT
X0RFQlVHDQoJcHJpbnRmKENTX05BTUUiOkVFUFJPTSBkYXRhIGZyb20gJXgg
Zm9yICV4OlxuIiwgb2ZmLGxlbik7DQojZW5kaWYNCg0KCWZvciAoaT0wO2k8
bGVuO2krKykgew0KCQlpZiAod2FpdF9lZXByb21fcmVhZHkoc2MpIDwgMCkg
cmV0dXJuIC0xOw0KCQkvKiBTZW5kIGNvbW1hbmQgdG8gRUVQUk9NIHRvIHJl
YWQgKi8NCgkJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9FRUNNRCwg
KG9mZitpKXxFRVBST01fUkVBRF9DTUQgKTsNCgkJaWYgKHdhaXRfZWVwcm9t
X3JlYWR5KHNjKTwwKQ0KCQkJcmV0dXJuIC0xOw0KCQlidWZmZXJbaV0gPSBj
c19yZWFkcmVnIChzYy0+bmljX2FkZHIsIFBQX0VFRGF0YSk7DQoNCiNpZmRl
ZiBDU19ERUJVRw0KCQlwcmludGYoIiUwNHggIixidWZmZXJbaV0pOw0KI2Vu
ZGlmDQoJfQ0KDQojaWZkZWYgQ1NfREVCVUcNCglwcmludGYoIlxuIik7DQoj
ZW5kaWYNCg0KCXJldHVybiAwOw0KfQ0KDQpzdGF0aWMgaW50DQpnZXRfZWVw
cm9tX2Nrc3VtKGludCBvZmYsIGludCBsZW4sIGludCAqYnVmZmVyKQ0Kew0K
CWludCBpLGNrc3VtPTA7DQoNCglmb3IgKGk9MDtpPGxlbjtpKyspDQoJCWNr
c3VtKz1idWZmZXJbaV07DQoJY2tzdW0gJj0gMHhmZmZmOw0KCWlmIChja3N1
bT09MCkNCgkJcmV0dXJuIDA7DQoJcmV0dXJuIC0xOw0KfQ0KDQpzdGF0aWMg
aW50DQp3YWl0X2VlcHJvbV9yZWFkeShzdHJ1Y3QgY3Nfc29mdGMgKnNjKQ0K
ew0KCWludCB0aW1lb3V0PTEwMDA7DQoJREVMQVkgKCAzMDAwMCApOw0KCXJl
dHVybiAwOw0KfQ0KDQpzdGF0aWMgdm9pZA0KY29udHJvbF9kY19kYyhzdHJ1
Y3QgY3Nfc29mdGMgKnNjLCBpbnQgb25fbm90X29mZikNCnsNCgl1bnNpZ25l
ZCBpbnQgc2VsZl9jb250cm9sID0gSENCMV9FTkJMOw0KDQoJaWYgKCgoc2Mt
PmFkYXB0ZXJfY25mICYgQV9DTkZfRENfRENfUE9MQVJJVFkpIT0wKSBeIG9u
X25vdF9vZmYpDQoJCXNlbGZfY29udHJvbCB8PSBIQ0IxOw0KCWVsc2UNCgkJ
c2VsZl9jb250cm9sICY9IH5IQ0IxOw0KCWNzX3dyaXRlcmVnKCBzYy0+bmlj
X2FkZHIsIFBQX1NlbGZDVEwsIHNlbGZfY29udHJvbCApOw0KDQoJREVMQVko
IDUwMDAwMCApOw0KfQ0KDQpzdGF0aWMgaW50DQpkZXRlY3RfdHAoc3RydWN0
IGNzX3NvZnRjICpzYywgaW50IHVuaXQpDQp7DQoJaW50IGk7DQoJY2hhciAq
bmFtZSA9IGNzZHJpdmVyLm5hbWU7DQoNCglpZiAoYm9vdHZlcmJvc2UpDQoJ
CXByaW50ZihDU19OQU1FIiUxZDogYXR0ZW1wdGluZyBUUFxuIiwgdW5pdCk7
DQoNCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwsIHNj
LT5saW5lX2N0bCAmIH5BVUlfT05MWSk7DQoJY29udHJvbF9kY19kYyhzYywg
MCk7DQoJREVMQVkoIDE1MDAwMCApOw0KDQoJaWYgKChjc19yZWFkcmVnKHNj
LT5uaWNfYWRkciwgUFBfTGluZVNUKSZMSU5LX09LKT09MCkNCgkJcmV0dXJu
IDA7DQoNCgkvKg0KCSAqIFRoaXMgY29kZSBpcyBmb3IgQ1M4OTIwIG9ubHku
IENvZGUgZm9yIENTODkwMCBpc24ndCBpbXBsZW1lbnRlZCANCgkgKi8NCglj
c193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0F1dG9OZWdDVEwsc2MtPmF1
dG9fbmVnX2NuZiAmIEFVVE9fTkVHX01BU0spOw0KCWlmKChzYy0+YXV0b19u
ZWdfY25mICYgQVVUT19ORUdfQklUUykgPT0gQVVUT19ORUdfRU5BQkxFKSB7
DQoJCWlmIChib290dmVyYm9zZSkNCgkJCXByaW50ZihDU19OQU1FIiUxZDog
bmVnb3RpYXRpbmcgZHVwbGV4Li4uXG4iLCB1bml0KTsNCgkJZm9yKGk9MDtj
c19yZWFkcmVnKHNjLT5uaWNfYWRkciwgUFBfQXV0b05lZ1NUKSZBVVRPX05F
R19CVVNZO2krKykgew0KCQkJaWYoaSA+IDQwMDAwKSB7DQoJCQkJcHJpbnRm
KENTX05BTUUiJTFkOiBmdWxsL2hhbGYgZHVwbGV4IGF1dG8gbmVnb3RpYXRp
b24gdGltZW91dFxuIiwgdW5pdCk7DQoJCQkJYnJlYWs7DQoJCQl9DQoJCQlE
RUxBWSgxMDAwKTsNCgkJfQ0KCX0NCg0KCWlmIChib290dmVyYm9zZSkNCgkJ
aWYoY3NfcmVhZHJlZyhzYy0+bmljX2FkZHIsIFBQX0F1dG9OZWdTVCkgJiBG
RFhfQUNUSVZFKQ0KCQkJcHJpbnRmKENTX05BTUUiJTFkOiB1c2luZyBmdWxs
IGR1cGxleFxuIiwgdW5pdCk7DQoJCWVsc2UNCgkJCXByaW50ZihDU19OQU1F
IiUxZDogdXNpbmcgaGFsZiBkdXBsZXhcbiIsIHVuaXQpOw0KCS8qDQoJICog
RW5kIG9mIENTODkyMCBjb2RlDQoJICovDQoNCglyZXR1cm4gQV9DTkZfTUVE
SUFfMTBCX1Q7DQp9DQoNCi8qDQogKiBXaWxsIGJlIHJld3JpdHRlbiBmcm9t
IExpbnV4IGRyaXZlci4NCiAqLw0Kc3RhdGljIGludA0KZGV0ZWN0X2F1aShz
dHJ1Y3QgY3Nfc29mdGMgKnNjLCBpbnQgdW5pdCkNCnsNCglyZXR1cm4gMDsN
Cn0NCg0KLyoNCiAqIFdpbGwgYmUgcmV3cml0dGVuIGZyb20gTGludXggZHJp
dmVyLg0KICovDQpzdGF0aWMgaW50DQpkZXRlY3RfYm5jKHN0cnVjdCBjc19z
b2Z0YyAqc2MsIGludCB1bml0KQ0Kew0KCXJldHVybiAwOw0KfQ0KDQpzdGF0
aWMgaW50DQpjc19jczg5eDBfcHJvYmUoc3RydWN0IGlzYV9kZXZpY2UgKmRl
dikNCnsNCgl1bnNpZ25lZCByZXZfdHlwZSA9IDA7DQoJaW50IGksIGlycSwg
cmVzdWx0Ow0KCWludCBpb2Jhc2UgPSBkZXYtPmlkX2lvYmFzZTsNCglpbnQg
dW5pdCA9IGRldi0+aWRfdW5pdDsNCglpbnQgZWVwcm9tX2J1ZmZbQ0hLU1VN
X0xFTl07DQoJaW50IGNoaXBfdHlwZTsNCgljaGFyIGNoaXBfcmV2aXNpb247
DQoJY2hhciAqbmFtZSA9IGNzZHJpdmVyLm5hbWU7DQoJc3RydWN0IGNzX3Nv
ZnRjICpzYyA9ICZjc19zb2Z0Y1tkZXYtPmlkX3VuaXRdOw0KDQoJaWYoKGlu
dyhpb2Jhc2UrQUREX1BPUlQpICYgQUREX01BU0spICE9IEFERF9TSUcpIHsN
CgkJLyoNCgkJICogVHJ5aW5nIHRvIHJlc2V0IGNoaXANCgkJICovDQoJCXBy
aW50ZihDU19OQU1FIiUxZDogdHJ5aW5nIHRvIHJlc2V0IHRoZSBjaGlwLlxu
IiwgdW5pdCk7DQoJCW91dHcoaW9iYXNlK0FERF9QT1JULCBQUF9TZWxmQ1RM
KTsNCgkJaSA9IGludyhpb2Jhc2UrREFUQV9QT1JUKTsNCgkJb3V0dyhpb2Jh
c2UrQUREX1BPUlQsIFBQX1NlbGZDVEwpOw0KCQlvdXR3KGlvYmFzZStEQVRB
X1BPUlQsIGkgfCBQT1dFUl9PTl9SRVNFVCk7DQoJCWlmKChpbncoaW9iYXNl
K0FERF9QT1JUKSAmIEFERF9NQVNLKSAhPSBBRERfU0lHKQ0KCQkJcmV0dXJu
IDA7DQoJfQ0KDQoJb3V0dyhpb2Jhc2UrQUREX1BPUlQsIFBQX0NoaXBJRCk7
DQoJaWYoaW53KGlvYmFzZStEQVRBX1BPUlQpICE9IENISVBfRUlTQV9JRF9T
SUcpDQoJCXJldHVybiAwOw0KDQoJc2MtPm5pY19hZGRyID0gaW9iYXNlOw0K
DQoJcmV2X3R5cGUgPSBjc19yZWFkcmVnKGlvYmFzZSwgUFJPRFVDVF9JRF9B
REQpOw0KCWNoaXBfdHlwZSA9IHJldl90eXBlICYgflJFVklTT05fQklUUzsN
CgljaGlwX3JldmlzaW9uID0gKChyZXZfdHlwZSAmIFJFVklTT05fQklUUykg
Pj4gOCkgKyAnQSc7DQoNCglzYy0+c2VuZF9jbWQgPSBUWF9DUzg5MjBfQUZU
RVJfQUxMOw0KDQoJLyoNCgkgKglyZXNldF9jaGlwKGRldik7IFdlIG5lZWRu
J3QgaXQuDQoJICovDQoNCgkvKg0KCSAqIEVFUFJPTQ0KCSAqLw0KDQoJaWYo
KGNzX3JlYWRyZWcoaW9iYXNlLCBQUF9TZWxmU1QpICYgRUVQUk9NX1BSRVNF
TlQpID09IDApDQoJCXByaW50ZihDU19OQU1FIiUxZDogTm8gRUVQUk9NLCBy
ZWx5aW5nIG9uIGNvbW1hbmQgbGluZS4uLlxuIiwNCgkJCXVuaXQpOw0KCWVs
c2UNCgkJaWYgKGdldF9lZXByb21fZGF0YShzYyxTVEFSVF9FRVBST01fREFU
QSxDSEtTVU1fTEVOLA0KCQkJCSAgICBlZXByb21fYnVmZik8MCkNCgkJCXBy
aW50ZihDU19OQU1FIiUxZDogRUVQUk9NIHJlYWQgZmFpbGVkLCAiDQoJCQkJ
InJlbHlpbmcgb24gY29tbWFuZCBsaW5lLlxuIiwgdW5pdCk7DQoJCWVsc2UN
CgkJCWlmIChnZXRfZWVwcm9tX2Nrc3VtKFNUQVJUX0VFUFJPTV9EQVRBLENI
S1NVTV9MRU4sDQoJCQkJCSAgICAgZWVwcm9tX2J1ZmYpPDApDQoJCQkJcHJp
bnRmKCBDU19OQU1FIiUxZDogRUVQUk9NIGNoZWtzdW0gYmFkLCAiDQoJCQkJ
CSJyZWx5aW5nIG9uIGNvbW1hbmQgbGluZS5cbiIsIHVuaXQgKTsNCgkJCWVs
c2Ugew0KCQkJCWlmICghc2MtPmF1dG9fbmVnX2NuZikNCgkJCQkJc2MtPmF1
dG9fbmVnX2NuZiA9DQoJCQkJCSAgICBlZXByb21fYnVmZltBVVRPX05FR19D
TkZfT0ZGU0VULzJdOw0KCQkJCWlmICghc2MtPmFkYXB0ZXJfY25mKQ0KCQkJ
CQlzYy0+YWRhcHRlcl9jbmYgPSANCgkJCQkJICAgIGVlcHJvbV9idWZmW0FE
QVBURVJfQ05GX09GRlNFVC8yXTsNCgkJCQlzYy0+aXNhX2NvbmZpZyA9IGVl
cHJvbV9idWZmW0lTQV9DTkZfT0ZGU0VULzJdOw0KDQoJCQkJZm9yIChpPTA7
IGk8RVRIRVJfQUREUl9MRU4vMjsgaSsrKSB7DQoJCQkJCXNjLT5hcnBjb20u
YWNfZW5hZGRyW2kqMl09DQoJCQkJCQkJZWVwcm9tX2J1ZmZbaV07DQoJCQkJ
CXNjLT5hcnBjb20uYWNfZW5hZGRyW2kqMisxXT0NCgkJCQkJCQllZXByb21f
YnVmZltpXSA+PiA4Ow0KCQkJCX0NCg0KCQkJCWlmIChkZXYtPmlkX2lycSA8
PSAwKSB7DQoJCQkJCWlycSA9IGNzX3JlYWRyZWcoIGlvYmFzZSwgDQoJCQkJ
CQlQUF9DUzg5MjBfSVNBSU5UKSAmIDB4ZmY7DQoJCQkJCWlmIChpcnEgIT0g
MCAmJiBpcnEgPCBDUzg5MjBfTk9fSU5UUykNCgkJCQkJCWRldi0+aWRfaXJx
ID0gKDEgPDwgaXJxKTsNCgkJCQl9DQoJCQkJaWYgKGRldi0+aWRfZHJxIDwg
MCkNCgkJCQkJZGV2LT5pZF9kcnE9Y3NfcmVhZHJlZyhpb2Jhc2UsIA0KCQkJ
CQkJUFBfQ1M4OTIwX0lTQURNQSkgJiAweDBmOw0KCQkJfQ0KDQoJaWYgKGRl
di0+aWRfaXJxPjApIHsNCgkJZm9yIChpcnE9MCwgaT1kZXYtPmlkX2lycTsg
aTsgaSA9IGkgPj4gMSkNCgkJCWlycSsrOw0KCQljc193cml0ZXJlZyhpb2Jh
c2UsIFBQX0NTODkyMF9JU0FJTlQsIC0taXJxKTsNCgl9IGVsc2Ugew0KCQlw
cmludGYoQ1NfTkFNRSIlMWQ6IGluY29ycmVjdCBpcnFcbiIsIHVuaXQpOw0K
CQlyZXR1cm4gMDsNCgl9DQovKg0KICogVGVtcG9yYXJ5IGRpc2FibGVkDQog
Kg0KCWlmIChkZXYtPmlkX2RycT4wKQ0KCQljc193cml0ZXJlZyhpb2Jhc2Us
IFBQX0NTODkyMF9JU0FETUEsIGRldi0+aWRfZHJxKTsNCgllbHNlIHsNCgkJ
cHJpbnRmKCBDU19OQU1FIiUxZDogaW5jb3JyZWN0IGRycVxuIiwgdW5pdCAp
Ow0KCQlyZXR1cm4gMDsNCgl9DQoqLw0KDQoJaWYgKGJvb3R2ZXJib3NlKQ0K
CQkgcHJpbnRmKENTX05BTUUiJTFkOiBtb2RlbCBDUzg5JWMwJXMgcmV2ICVj
XG4iDQoJCQlDU19OQU1FIiUxZDogbWVkaWEgJXMlcyVzXG4iDQoJCQlDU19O
QU1FIiUxZDogaXJxICVkIGRycSAlZFxuIiwNCgkJCXVuaXQsDQoJCQljaGlw
X3R5cGU9PUNTODkwMCA/ICcwJyA6ICcyJywNCgkJCWNoaXBfdHlwZT09Q1M4
OTIwTSA/ICJNIiA6ICIiLA0KCQkJY2hpcF9yZXZpc2lvbiwNCgkJCXVuaXQs
DQoJCQkoY3Nfc29mdGNbZGV2LT5pZF91bml0XS5hZGFwdGVyX2NuZiAmIEFf
Q05GXzEwQl9UKSA/DQoJCQkJIlJKLTQ1IiA6ICIiLA0KCQkJKGNzX3NvZnRj
W2Rldi0+aWRfdW5pdF0uYWRhcHRlcl9jbmYgJiBBX0NORl9BVUkpICAgPw0K
CQkJCSIgQVVJIiAgOiAiIiwNCgkJCShjc19zb2Z0Y1tkZXYtPmlkX3VuaXRd
LmFkYXB0ZXJfY25mICYgQV9DTkZfMTBCXzIpID8NCgkJCQkiIEJOQyIgIDog
IiIsDQoJCQl1bml0LCBpcnEsIGRldi0+aWRfZHJxKTsNCg0KCWlmICgoc2Mt
PmFkYXB0ZXJfY25mICYgQV9DTkZfRVhUTkRfMTBCXzIpICYmDQoJICAgIChz
Yy0+YWRhcHRlcl9jbmYgJiBBX0NORl9MT1dfUlhfU1FVRUxDSCkpDQoJCXNj
LT5saW5lX2N0bCA9IExPV19SWF9TUVVFTENIOw0KCWVsc2UNCgkJc2MtPmxp
bmVfY3RsID0gMDsNCg0KCXN3aXRjaCAoc2MtPmFkYXB0ZXJfY25mICYgQV9D
TkZfTUVESUFfVFlQRSkgew0KCSAgY2FzZSBBX0NORl9NRURJQV8xMEJfVDoN
CgkgICAgcmVzdWx0ID0gc2MtPmFkYXB0ZXJfY25mICYgQV9DTkZfMTBCX1Q7
DQoJICAgIGJyZWFrOw0KCSAgY2FzZSBBX0NORl9NRURJQV9BVUk6DQoJICAg
IHJlc3VsdCA9IHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GX0FVSTsNCgkgICAg
YnJlYWs7DQoJICBjYXNlIEFfQ05GX01FRElBXzEwQl8yOg0KCSAgICByZXN1
bHQgPSBzYy0+YWRhcHRlcl9jbmYgJiBBX0NORl8xMEJfMjsNCgkgICAgYnJl
YWs7DQoJICBkZWZhdWx0Og0KCSAgICByZXN1bHQgPSBzYy0+YWRhcHRlcl9j
bmYgJiAoQV9DTkZfMTBCX1QgfCBBX0NORl9BVUkgfCBBX0NORl8xMEJfMik7
DQoJfQ0KDQoJaWYgKCFyZXN1bHQpIHsNCgkJcHJpbnRmKENTX05BTUUiJTFk
OiB1bmF2YWlsYWJsZSBtZWRpYSFcbiIsIHVuaXQpOw0KCQlyZXR1cm4gMDsN
Cgl9DQoNCglzd2l0Y2ggKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GX01FRElB
X1RZUEUpew0KDQoJICBjYXNlIEFfQ05GX01FRElBXzEwQl9UOg0KCSAgICBy
ZXN1bHQgPSBkZXRlY3RfdHAoc2MsIHVuaXQpOw0KCSAgICBpZiAoIXJlc3Vs
dCkNCgkJICAgIHByaW50ZihDU19OQU1FIiUxZDogMTBCYXNlLVQgKFJKLTQ1
KSBoYXMgbm8gY2FibGVcbiIsDQoJCQkgICB1bml0KTsNCgkgICAgaWYgKHNj
LT5hdXRvX25lZ19jbmYgJiBJTU1fQklUKQ0KCQkgICAgcmVzdWx0ID0gQV9D
TkZfTUVESUFfMTBCX1Q7DQoJICAgIGJyZWFrOw0KDQoJICBjYXNlIEFfQ05G
X01FRElBX0FVSToNCgkgICAgcmVzdWx0ID0gZGV0ZWN0X2F1aShzYywgdW5p
dCk7DQoJICAgIGlmICghcmVzdWx0KQ0KCQkgICAgcHJpbnRmKENTX05BTUUi
JTFkOiAxMEJhc2UtNSAoQVVJKSBoYXMgbm8gY2FibGVcbiIsIHVuaXQpOw0K
CSAgICBpZiAoc2MtPmF1dG9fbmVnX2NuZiAmIElNTV9CSVQpDQoJCSAgICBy
ZXN1bHQgPSBBX0NORl9NRURJQV9BVUk7DQoJICAgIGJyZWFrOw0KDQoJICBj
YXNlIEFfQ05GX01FRElBXzEwQl8yOg0KCSAgICByZXN1bHQgPSBkZXRlY3Rf
Ym5jKHNjLCB1bml0KTsNCgkgICAgaWYgKCFyZXN1bHQpDQoJCSAgICBwcmlu
dGYoQ1NfTkFNRSIlMWQ6IDEwQmFzZS0yIChCTkMpIGhhcyBubyBjYWJsZVxu
IiwgdW5pdCk7DQoJICAgIGlmIChzYy0+YXV0b19uZWdfY25mICYgSU1NX0JJ
VCkNCgkJICAgIHJlc3VsdCA9IEFfQ05GX01FRElBXzEwQl8yOw0KCSAgICBi
cmVhazsNCg0KCSAgY2FzZSBBX0NORl9NRURJQV9BVVRPOg0KCSAgICBjc193
cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0xpbmVDVEwsDQoJCQlzYy0+bGlu
ZV9jdGwgfCBBVVRPX0FVSV8xMEJBU0VUKTsNCgkgICAgaWYgKChzYy0+YWRh
cHRlcl9jbmYgJiBBX0NORl8xMEJfVCkgJiYNCgkJKChyZXN1bHQ9ZGV0ZWN0
X3RwKHNjLCB1bml0KSkhPTApKQ0KCQkgICAgYnJlYWs7DQoJICAgIGlmICgo
c2MtPmFkYXB0ZXJfY25mICYgQV9DTkZfQVVJICkgJiYNCgkJKChyZXN1bHQ9
ZGV0ZWN0X2F1aShzYywgdW5pdCkpIT0wKSkNCgkJICAgIGJyZWFrOw0KCSAg
ICBpZiAoKHNjLT5hZGFwdGVyX2NuZiAmIEFfQ05GXzEwQl8yKSAmJg0KCQko
KHJlc3VsdD1kZXRlY3RfYm5jKHNjLCB1bml0KSkhPTApKQ0KCQkgICAgYnJl
YWs7DQoJICAgIHByaW50ZihDU19OQU1FIiUxZDogbm8gbWVkaWEgZGV0ZWN0
ZWRcbiIsIHVuaXQpOw0KCSAgICByZXR1cm4gMDsNCgl9DQoNCglzd2l0Y2gg
KHJlc3VsdCl7DQoJICBjYXNlIDA6DQoJICAgIHByaW50ZihDU19OQU1FIiUx
ZDogbm8gY2FibGUgYXR0YWNoZWQgdG8gY29uZmlndXJlZCBtZWRpYVxuIiwg
dW5pdCk7DQoJICAgIGJyZWFrOw0KCSAgY2FzZSBBX0NORl9NRURJQV8xMEJf
VDoNCgkgICAgaWYgKGJvb3R2ZXJib3NlKQ0KCQkgICAgcHJpbnRmKENTX05B
TUUiJTFkOiB1c2luZyAxMEJhc2UtVCAoUkotNDUpXG4iLCB1bml0KTsNCgkg
ICAgYnJlYWs7DQoJICBjYXNlIEFfQ05GX01FRElBX0FVSToNCgkgICAgaWYg
KGJvb3R2ZXJib3NlKQ0KCQkgICAgcHJpbnRmKENTX05BTUUiJTFkOiB1c2lu
ZyAxMEJhc2UtNSAoQVVJKVxuIiwgdW5pdCk7DQoJICAgIGJyZWFrOw0KCSAg
Y2FzZSBBX0NORl9NRURJQV8xMEJfMjoNCgkgICAgaWYgKGJvb3R2ZXJib3Nl
KQ0KCQkgICAgcHJpbnRmKENTX05BTUUiJTFkOiB1c2luZyAxMEJhc2UtMiAo
Qk5DKVxuIiwgdW5pdCk7DQoJICAgIGJyZWFrOw0KCSAgZGVmYXVsdDoNCgkg
ICAgcHJpbnRmKENTX05BTUUiJTFkOiB1bmV4cGVjdGVkIHJlc3VsdCBpbiBt
ZWRpYSBkZXRlY3QuXG4iLCB1bml0KTsNCgkgICAgcmV0dXJuIDA7DQoJfQ0K
DQoJcmV0dXJuIFBQX0lTQUlPQjsNCn0NCg0KLyoNCiAqIERldGVybWluZSBp
ZiB0aGUgZGV2aWNlIGlzIHByZXNlbnQNCiAqDQogKiAgIG9uIGVudHJ5Og0K
ICogCWEgcG9pbnRlciB0byBhbiBpc2FfZGV2aWNlIHN0cnVjdA0KICogICBv
biBleGl0Og0KICoJTlVMTCBpZiBkZXZpY2Ugbm90IGZvdW5kDQogKglvciAj
IG9mIGkvbyBhZGRyZXNzZXMgdXNlZCAoaWYgZm91bmQpDQogKi8NCnN0YXRp
YyBpbnQNCmNzX3Byb2JlKHN0cnVjdCBpc2FfZGV2aWNlICpkZXYpDQp7DQoJ
aW50IG5wb3J0czsNCg0KCW5wb3J0cyA9IGNzX2NzODl4MF9wcm9iZShkZXYp
Ow0KCWlmIChucG9ydHMpDQoJCXJldHVybiAobnBvcnRzKTsNCg0KCXJldHVy
biAoMCk7DQp9DQoNCi8qDQogKiBJbnN0YWxsIHRoZSBpbnRlcmZhY2UgaW50
byBrZXJuZWwgbmV0d29ya2luZyBkYXRhIHN0cnVjdHVyZXMNCiAqLw0Kc3Rh
dGljIGludA0KY3NfYXR0YWNoKHN0cnVjdCBpc2FfZGV2aWNlICpkZXYpDQp7
DQoJc3RydWN0IGNzX3NvZnRjICpzYyA9ICZjc19zb2Z0Y1tkZXYtPmlkX3Vu
aXRdOw0KCXN0cnVjdCBpZm5ldCAqaWZwID0gJihzYy0+YXJwY29tLmFjX2lm
KTsNCg0KCWlmICghaWZwLT5pZl9uYW1lKSB7DQoJCWlmcC0+aWZfc29mdGM9
c2M7DQoJCWlmcC0+aWZfdW5pdD1kZXYtPmlkX3VuaXQ7DQoJCWlmcC0+aWZf
bmFtZT1jc2RyaXZlci5uYW1lOw0KCQlpZnAtPmlmX291dHB1dD1ldGhlcl9v
dXRwdXQ7DQoJCWlmcC0+aWZfc3RhcnQ9Y3Nfc3RhcnQ7DQoJCWlmcC0+aWZf
aW9jdGw9Y3NfaW9jdGw7DQoJCWlmcC0+aWZfd2F0Y2hkb2c9Y3Nfd2F0Y2hk
b2c7DQoJCWlmcC0+aWZfaW5pdD1jc19pbml0Ow0KCQlpZnAtPmlmX3NuZC5p
ZnFfbWF4bGVuPSBJRlFfTUFYTEVOOw0KCQkvKg0KCQkgKiAgTUlCIERBVEEN
CgkJIGlmcC0+aWZfbGlua21pYj0mc2MtPm1pYmRhdGE7DQoJCSBpZnAtPmlm
X2xpbmttaWJsZW49c2l6ZW9mIHNjLT5taWJkYXRhOw0KCQkgKi8NCg0KCQlp
ZnAtPmlmX2ZsYWdzPShJRkZfQlJPQURDQVNUIHwgSUZGX1NJTVBMRVggfCBJ
RkZfTVVMVElDQVNUICk7DQoNCgkJLyoNCgkJICogdGhpcyBjb2RlIHN0aWxs
IGluIHByb2dyZXNzIChETUEgc3VwcG9ydCkNCgkJICoNCg0KCQlzYy0+cmVj
dl9yaW5nPW1hbGxvYyhDU19ETUFfQlVGRkVSX1NJWkU8PDEsIE1fREVWQlVG
LCBNX05PV0FJVCk7DQoJCWlmIChzYy0+cmVjdl9yaW5nID09IE5VTEwpIHsN
CgkJCWxvZyhMT0dfRVJSLENTX05BTUUNCgkJCSIlZDogQ291bGRuJ3QgYWxs
b2NhdGUgbWVtb3J5IGZvciBOSUNcbiIsIGRldi0+aWRfdW5pdCk7DQoJCQly
ZXR1cm4oMCk7DQoJCX0NCgkJaWYgKChzYy0+cmVjdl9yaW5nLShzYy0+cmVj
dl9yaW5nICYgMHgxRkZGRikpDQoJCSAgICA8ICgxMjgqMTAyNC1DU19ETUFf
QlVGRkVSX1NJWkUpKQ0KCQkgICAgc2MtPnJlY3ZfcmluZys9MTYqMTAyNDsN
Cg0KCQlzYy0+YnVmZmVyPW1hbGxvYyhFVEhFUl9NQVhfTEVOLUVUSEVSX0NS
Q19MRU4sTV9ERVZCVUYsTV9OT1dBSVQpOw0KCQlpZiAoc2MtPmJ1ZmZlciA9
PSBOVUxMKSB7DQoJCQlsb2coTE9HX0VSUixDU19OQU1FDQoJCQkgICAgIiVk
OiBDb3VsZG4ndCBhbGxvY2F0ZSBtZW1vcnkgZm9yIE5JQ1xuIiwNCgkJCSAg
ICBkZXYtPmlkX3VuaXQpOw0KCQkJcmV0dXJuKDApOw0KCQl9DQoNCgkJICov
DQoJCQ0KCQlpZl9hdHRhY2goaWZwKTsNCgkJY3Nfc3RvcCggc2MgKTsNCgkJ
ZXRoZXJfaWZhdHRhY2goaWZwKTsNCgl9DQoNCglpZiAoYm9vdHZlcmJvc2Up
DQoJCXByaW50ZihDU19OQU1FIiVkOiBldGhlcm5ldCBhZGRyZXNzICU2RFxu
IiwNCgkJICAgICAgIGlmcC0+aWZfdW5pdCwgc2MtPmFycGNvbS5hY19lbmFk
ZHIsICI6Iik7DQoNCiNpZiBOQlBGSUxURVIgPiAwDQoJYnBmYXR0YWNoKGlm
cCwgRExUX0VOMTBNQiwgc2l6ZW9mIChzdHJ1Y3QgZXRoZXJfaGVhZGVyKSk7
DQojZW5kaWYNCglyZXR1cm4gMTsNCn0NCg0KLyoNCiAqIEluaXRpYWxpemUg
dGhlIGJvYXJkDQogKi8NCnN0YXRpYyB2b2lkDQpjc19pbml0KHZvaWQgKnhz
YykNCnsNCglzdHJ1Y3QgY3Nfc29mdGMgKnNjPShzdHJ1Y3QgY3Nfc29mdGMg
Kil4c2M7DQoJc3RydWN0IGlmbmV0ICppZnAgPSAmc2MtPmFycGNvbS5hY19p
ZjsNCglpbnQgaSxzLHJlc3VsdDsNCg0KCWlmIChpZnAtPmlmX2FkZHJsaXN0
ID09IChzdHJ1Y3QgaWZhZGRyICopIDApDQoJCXJldHVybjsNCg0KCS8qDQoJ
ICogcmVzZXQgd2hhdGNoZG9nIHRpbWVyDQoJICovDQoJaWZwLT5pZl90aW1l
cj0wOw0KCXNjLT5idWZfbGVuID0gMDsNCgkNCglzPXNwbGltcCgpOw0KDQoJ
LyoNCgkgKiBIYXJkd2FyZSBpbml0aWFsaXphdGlvbiBvZiBjcw0KCSAqLw0K
DQoJY3Nfd3JpdGVyZWcoc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMLA0KCQkg
ICAgY3NfcmVhZHJlZyggc2MtPm5pY19hZGRyLCBQUF9MaW5lQ1RMICkgfA0K
CQkgICAgU0VSSUFMX1JYX09OIHwgU0VSSUFMX1RYX09OKTsNCg0KCWNzX3dy
aXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfUnhDVEwsIFJYX0RFRl9BQ0NFUFQg
fCBSWF9NVUxUQ0FTVF9BQ0NFUFQpOw0KDQogICAgICAgIHNjLT5jdXJyX3J4
X2NmZyA9IFJYX09LX0VOQkw7DQogICAgICAgIA0KCWlmIChzYy0+aXNhX2Nv
bmZpZyAmIFNUUkVBTV9UUkFOU0ZFUikNCgkJc2MtPmN1cnJfcnhfY2ZnIHw9
IFJYX1NUUkVBTV9FTkJMOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwg
UFBfUnhDRkcsIHNjLT5jdXJyX3J4X2NmZyk7DQoNCgljc193cml0ZXJlZyhz
Yy0+bmljX2FkZHIsIFBQX1R4Q0ZHLCBUWF9MT1NUX0NSU19FTkJMIHwNCgkJ
ICAgIFRYX1NRRV9FUlJPUl9FTkJMIHwgVFhfT0tfRU5CTCB8IFRYX0xBVEVf
Q09MX0VOQkwgfA0KCQkgICAgVFhfSkJSX0VOQkwgfCBUWF9BTllfQ09MX0VO
QkwgfCBUWF8xNl9DT0xfRU5CTCk7DQoNCgljc193cml0ZXJlZyhzYy0+bmlj
X2FkZHIsIFBQX0J1ZkNGRywgUkVBRFlfRk9SX1RYX0VOQkwgfA0KCQkgICAg
UlhfTUlTU19DT1VOVF9PVlJGTE9XX0VOQkwgfCBUWF9DT0xfQ09VTlRfT1ZS
RkxPV19FTkJMIHwNCgkJICAgIFRYX1VOREVSUlVOX0VOQkwgLyp8IFJYX0RN
QV9FTkJMKi8pOw0KDQoJLyoNCgkgKiBOb3cgZW5hYmxlIGV2ZXJ5dGhpbmcN
CgkgKi8NCi8qDQojaWZkZWYJQ1NfVVNFXzY0S19ETUENCgljc193cml0ZXJl
ZyhzYy0+bmljX2FkZHIsIFBQX0J1c0NUTCwgRU5BQkxFX0lSUSB8IFJYX0RN
QV9TSVpFXzY0Syk7DQogICAgICAgICNlbHNlDQoNCiAgICAgICAgY3Nfd3Jp
dGVyZWcoc2MtPm5pY19hZGRyLCBQUF9CdXNDVEwsIEVOQUJMRV9JUlEpOw0K
I2VuZGlmDQoqLw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVz
Q1RMLCBFTkFCTEVfSVJRKTsNCgkNCgkvKg0KCSAqIFNldCBydW5uaW5nIGFu
ZCBjbGVhciBvdXRwdXQgYWN0aXZlIGZsYWdzDQoJICovDQoJc2MtPmFycGNv
bS5hY19pZi5pZl9mbGFncyB8PSBJRkZfUlVOTklORzsNCglzYy0+YXJwY29t
LmFjX2lmLmlmX2ZsYWdzICY9IH5JRkZfT0FDVElWRTsNCg0KCS8qDQoJICog
U3RhcnQgc2VuZGluZyBwcm9jZXNzDQoJICovDQoJY3Nfc3RhcnQoaWZwKTsN
Cg0KCSh2b2lkKSBzcGx4KHMpOw0KfQ0KDQovKg0KICogR2V0IHRoZSBwYWNr
ZXQgZnJvbSB0aGUgYm9hcmQgYW5kIHNlbmQgaXQgdG8gdGhlIHVwcGVyIGxh
eWVyDQogKiB2aWEgZXRoZXJfaW5wdXQoKS4NCiAqLw0Kc3RhdGljIGludA0K
Y3NfZ2V0X3BhY2tldChzdHJ1Y3QgY3Nfc29mdGMgKnNjKQ0Kew0KCXN0cnVj
dCBpZm5ldCAqaWZwID0gJihzYy0+YXJwY29tLmFjX2lmKTsNCglpbnQgaW9i
YXNlID0gc2MtPm5pY19hZGRyLCBzdGF0dXMsIGxlbmd0aDsNCglzdHJ1Y3Qg
ZXRoZXJfaGVhZGVyICplaDsNCglzdHJ1Y3QgbWJ1ZiAqbTsNCg0KCXN0YXR1
cyA9IGludyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JUKTsNCglsZW5ndGggPSBp
bncoaW9iYXNlICsgUlhfRlJBTUVfUE9SVCk7DQoNCiNpZmRlZiBDU19ERUJV
Rw0KCXByaW50ZihDU19OQU1FIiUxZDogcmN2ZDogc3RhdCAleCwgbGVuICVk
XG4iLA0KCQlpZnAtPmlmX3VuaXQsIHN0YXR1cywgbGVuZ3RoKTsNCiNlbmRp
Zg0KDQoJaWYgKCEoc3RhdHVzICYgUlhfT0spKSB7DQojaWZkZWYgQ1NfREVC
VUcNCgkJcHJpbnRmKENTX05BTUUiJTFkOiBiYWQgcGt0IHN0YXQgJXhcbiIs
IGlmcC0+aWZfdW5pdCwgc3RhdHVzKTsNCiNlbmRpZg0KCQlpZnAtPmlmX2ll
cnJvcnMrKzsNCgkJcmV0dXJuIC0xOw0KCX0NCg0KCU1HRVRIRFIobSwgTV9E
T05UV0FJVCwgTVRfREFUQSk7DQoJaWYgKG09PU5VTEwpDQoJCXJldHVybiAt
MTsNCg0KCWlmIChsZW5ndGggPiBNSExFTikgew0KCQlNQ0xHRVQobSwgTV9E
T05UV0FJVCk7DQoJCWlmICghKG0tPm1fZmxhZ3MgJiBNX0VYVCkpIHsNCgkJ
CW1fZnJlZW0obSk7DQoJCQlyZXR1cm4gLTE7DQoJCX0NCgl9DQoNCgkvKiBJ
bml0aWFsaXplIHBhY2tldCdzIGhlYWRlciBpbmZvICovDQoJbS0+bV9wa3Ro
ZHIucmN2aWYgPSBpZnA7DQoJbS0+bV9wa3RoZHIubGVuID0gbGVuZ3RoOw0K
CW0tPm1fbGVuID0gbGVuZ3RoOw0KDQoJLyogR2V0IHRoZSBkYXRhICovDQoJ
aW5zdyhpb2Jhc2UgKyBSWF9GUkFNRV9QT1JULCBtLT5tX2RhdGEsIChsZW5n
dGgrMSk+PjEpOw0KDQoJZWggPSBtdG9kKG0sIHN0cnVjdCBldGhlcl9oZWFk
ZXIgKik7DQoNCiNpZiBOQlBGSUxURVIgPiAwDQoJaWYgKGlmcC0+aWZfYnBm
KQ0KCQlicGZfbXRhcChpZnAsIG0pOw0KI2VuZGlmDQoNCglpZiAobGVuZ3Ro
PT1FVEhFUl9NQVhfTEVOLUVUSEVSX0NSQ19MRU4pDQoJCURFTEFZKCA1NzAg
KTsNCg0KI2lmZGVmIENTX0RFQlVHDQoJZm9yIChsZW5ndGgvPTI7IGxlbmd0
aDsgbGVuZ3RoLS0pDQoJCXByaW50ZigiICUwNHgiLCBtLT5tX2RhdGErbGVu
Z3RoKTsNCglwcmludGYoICJcbiIgKTsNCiNlbmRpZg0KDQoJbS0+bV9wa3Ro
ZHIubGVuIC09IHNpemVvZihzdHJ1Y3QgZXRoZXJfaGVhZGVyKTsNCgltLT5t
X2xlbiAtPSBzaXplb2Yoc3RydWN0IGV0aGVyX2hlYWRlcik7DQoJbS0+bV9k
YXRhICs9IHNpemVvZihzdHJ1Y3QgZXRoZXJfaGVhZGVyKTsNCg0KCS8qIEZl
ZWQgdGhlIHBhY2tldCB0byB0aGUgdXBwZXIgbGF5ZXIgKi8NCglldGhlcl9p
bnB1dChpZnAsIGVoLCBtKTsNCg0KCWlmcC0+aWZfaXBhY2tldHMrKzsNCg0K
CXJldHVybiAwOw0KfQ0KDQovKg0KICogSGFuZGxlIGludGVycnVwdHMNCiAq
Lw0Kdm9pZA0KY3NpbnRyKGludCB1bml0KQ0Kew0KCXN0cnVjdCBjc19zb2Z0
YyAqc2MgPSAmY3Nfc29mdGNbdW5pdF07DQoJc3RydWN0IGlmbmV0ICppZnAg
PSAmKHNjLT5hcnBjb20uYWNfaWYpOw0KCWludCBzdGF0dXMsIHM7DQoNCiNp
ZmRlZiBDU19ERUJVRw0KCXByaW50ZihDU19OQU1FIiUxZDogSW50ZXJydXB0
LlxuIiwgdW5pdCk7DQojZW5kaWYNCg0KCXdoaWxlICgoc3RhdHVzPWNzX3Jl
YWR3b3JkKHNjLT5uaWNfYWRkciwgSVNRX1BPUlQpKSkgew0KDQojaWZkZWYg
Q1NfREVCVUcNCgkJcHJpbnRmKCBDU19OQU1FIiUxZDpmcm9tIElTUTogJTA0
eFxuIiwgdW5pdCwgc3RhdHVzICk7DQojZW5kaWYNCg0KCQlzd2l0Y2ggKHN0
YXR1cyAmIElTUV9FVkVOVF9NQVNLKSB7DQoJCSAgY2FzZSBJU1FfUkVDRUlW
RVJfRVZFTlQ6DQoJCSAgICBjc19nZXRfcGFja2V0KHNjKTsNCgkJICAgIGJy
ZWFrOw0KDQoJCSAgY2FzZSBJU1FfVFJBTlNNSVRURVJfRVZFTlQ6DQoJCSAg
ICBpZiAoc3RhdHVzICYgVFhfT0spDQoJCQkgICAgaWZwLT5pZl9vcGFja2V0
cysrOw0KCQkgICAgZWxzZQ0KCQkJICAgIGlmcC0+aWZfb2Vycm9ycysrOw0K
CQkgICAgaWZwLT5pZl9mbGFncyAmPSB+SUZGX09BQ1RJVkU7DQoJCSAgICBp
ZnAtPmlmX3RpbWVyID0gMDsNCgkJICAgIGJyZWFrOw0KDQoJCSAgY2FzZSBJ
U1FfQlVGRkVSX0VWRU5UOg0KCQkgICAgaWYgKHN0YXR1cyAmIFJFQURZX0ZP
Ul9UWCkgew0KCQkJICAgIGlmcC0+aWZfZmxhZ3MgJj0gfklGRl9PQUNUSVZF
Ow0KCQkJICAgIGlmcC0+aWZfdGltZXIgPSAwOw0KCQkgICAgfQ0KDQoJCSAg
ICBpZiAoc3RhdHVzICYgVFhfVU5ERVJSVU4pIHsNCgkJCSAgICBpZnAtPmlm
X2ZsYWdzICY9IH5JRkZfT0FDVElWRTsNCgkJCSAgICBpZnAtPmlmX3RpbWVy
ID0gMDsNCgkJCSAgICBpZnAtPmlmX29lcnJvcnMrKzsNCgkJICAgIH0NCgkJ
ICAgIGJyZWFrOw0KDQoJCSAgY2FzZSBJU1FfUlhfTUlTU19FVkVOVDoNCgkJ
ICAgIGlmcC0+aWZfaWVycm9ycys9KHN0YXR1cz4+Nik7DQoJCSAgICBicmVh
azsNCg0KCQkgIGNhc2UgSVNRX1RYX0NPTF9FVkVOVDoNCgkJICAgIGlmcC0+
aWZfY29sbGlzaW9ucys9KHN0YXR1cz4+Nik7DQoJCSAgICBicmVhazsNCgkJ
fQ0KCX0NCg0KCWlmICghKGlmcC0+aWZfZmxhZ3MgJiBJRkZfT0FDVElWRSkp
IHsNCgkJY3Nfc3RhcnQoaWZwKTsNCgl9DQp9DQoNCi8qDQogKiBTYXZlIHRo
ZSBkYXRhIGluIGJ1ZmZlcg0KICovDQoNCnN0YXRpYyB2b2lkDQpjc193cml0
ZV9tYnVmcyggc3RydWN0IGNzX3NvZnRjICpzYywgc3RydWN0IG1idWYgKm0g
KQ0Kew0KCWludCBsZW47DQoJc3RydWN0IG1idWYgKm1wOw0KCXVuc2lnbmVk
IGNoYXIgKmRhdGEsICpidWY7DQoNCglmb3IgKG1wPW0sIGJ1Zj1zYy0+YnVm
ZmVyLCBzYy0+YnVmX2xlbj0wOyBtcCAhPSBOVUxMOyBtcD1tcC0+bV9uZXh0
KSB7DQoJCWxlbiA9IG1wLT5tX2xlbjsNCg0KCQkvKg0KCQkgKiBJZ25vcmUg
ZW1wdHkgcGFydHMNCgkJICovDQoJCWlmICghbGVuKQ0KCQljb250aW51ZTsN
Cg0KCQkvKg0KCQkgKiBGaW5kIGFjdHVhbCBkYXRhIGFkZHJlc3MNCgkJICov
DQoJCWRhdGEgPSBtdG9kKG1wLCBjYWRkcl90KTsNCg0KCQliY29weSgoY2Fk
ZHJfdCkgZGF0YSwgKGNhZGRyX3QpIGJ1ZiwgbGVuKTsNCgkJYnVmICs9IGxl
bjsNCgkJc2MtPmJ1Zl9sZW4gKz0gbGVuOw0KCX0NCn0NCg0KDQpzdGF0aWMg
dm9pZA0KY3NfeG1pdF9idWYoIHN0cnVjdCBjc19zb2Z0YyAqc2MgKQ0Kew0K
CW91dHN3KHNjLT5uaWNfYWRkcitUWF9GUkFNRV9QT1JULCBzYy0+YnVmZmVy
LCAoc2MtPmJ1Zl9sZW4rMSk+PjEpOw0KCXNjLT5idWZfbGVuID0gMDsNCn0N
Cg0Kc3RhdGljIHZvaWQNCmNzX3N0YXJ0KHN0cnVjdCBpZm5ldCAqaWZwKQ0K
ew0KCWludCBzLCBsZW5ndGg7DQoJc3RydWN0IG1idWYgKm0sICptcDsNCglz
dHJ1Y3QgY3Nfc29mdGMgKnNjID0gaWZwLT5pZl9zb2Z0YzsNCg0KCXMgPSBz
cGxpbXAoKTsNCg0KCWZvciAoOzspIHsNCgkJaWYgKHNjLT5idWZfbGVuKQ0K
CQkJbGVuZ3RoID0gc2MtPmJ1Zl9sZW47DQoJCWVsc2Ugew0KCQkJSUZfREVR
VUVVRSggJmlmcC0+aWZfc25kLCBtICk7DQoNCgkJCWlmIChtPT1OVUxMKSB7
DQoJCQkJKHZvaWQpIHNwbHgocyk7DQoJCQkJcmV0dXJuOw0KCQkJfQ0KDQoJ
CQlmb3IgKGxlbmd0aD0wLCBtcD1tOyBtcCAhPSBOVUxMOyBtcD1tcC0+bV9u
ZXh0KQ0KCQkJCWxlbmd0aCArPSBtcC0+bV9sZW47DQoNCgkJCS8qIFNraXAg
emVyby1sZW5ndGggcGFja2V0cyAqLw0KCQkJaWYgKGxlbmd0aCA9PSAwKQ0K
CQkJCWNvbnRpbnVlOw0KDQoJCQljc193cml0ZV9tYnVmcyhzYywgbSk7DQoN
CiNpZiBOQlBGSUxURVIgPiAwDQoJCQlpZiAoaWZwLT5pZl9icGYpIHsNCgkJ
CQlicGZfbXRhcChpZnAsIG0pOw0KCQkJfQ0KI2VuZGlmDQoNCgkJCW1fZnJl
ZW0obSk7DQoJCX0NCg0KCQkvKg0KCQkgKiBJc3N1ZSBhIFNFTkQgY29tbWFu
ZA0KCQkgKi8NCgkJb3V0dyhzYy0+bmljX2FkZHIrVFhfQ01EX1BPUlQsIHNj
LT5zZW5kX2NtZCk7DQoJCW91dHcoc2MtPm5pY19hZGRyK1RYX0xFTl9QT1JU
LCBsZW5ndGggKTsNCg0KCQkvKg0KCQkgKiBJZiB0aGVyZSdzIG5vIGZyZWUg
c3BhY2UgaW4gdGhlIGJ1ZmZlciB0aGVuIGxlYXZlDQoJCSAqIHRoaXMgcGFj
a2V0IGZvciB0aGUgbmV4dCB0aW1lOiBpbmRpY2F0ZSBvdXRwdXQgYWN0aXZl
DQoJCSAqIGFuZCByZXR1cm4uDQoJCSAqLw0KCQlpZiAoIShjc19yZWFkcmVn
KHNjLT5uaWNfYWRkciwgUFBfQnVzU1QpICYgUkVBRFlfRk9SX1RYX05PVykp
IHsNCgkJCWlmcC0+aWZfdGltZXIgPSBzYy0+YnVmX2xlbjsNCgkJCSh2b2lk
KSBzcGx4KHMpOw0KCQkJaWZwLT5pZl9mbGFncyB8PSBJRkZfT0FDVElWRTsN
CgkJCXJldHVybjsNCgkJfQ0KDQogICAgICAgICAgICAgICAJY3NfeG1pdF9i
dWYoc2MpOw0KDQoJCS8qDQoJCSAqIFNldCB0aGUgd2F0Y2hkb2cgdGltZXIg
aW4gY2FzZSB3ZSBuZXZlciBoZWFyDQoJCSAqIGZyb20gYm9hcmQgYWdhaW4u
IChJIGRvbid0IGtub3cgYWJvdXQgY29ycmVjdA0KCQkgKiB2YWx1ZSBmb3Ig
dGhpcyB0aW1lb3V0KQ0KCQkgKi8NCgkJaWZwLT5pZl90aW1lciA9IGxlbmd0
aDsNCg0KCQkodm9pZCkgc3BseChzKTsNCgkJaWZwLT5pZl9mbGFncyB8PSBJ
RkZfT0FDVElWRTsNCgkJcmV0dXJuOw0KCX0NCn0NCg0KLyoNCiAqIFN0b3Ag
ZXZlcnl0aGluZyBvbiB0aGUgaW50ZXJmYWNlDQogKi8NCnN0YXRpYyB2b2lk
DQpjc19zdG9wKHN0cnVjdCBjc19zb2Z0YyAqc2MpDQp7DQoJaW50IHMgPSBz
cGxpbXAoKTsNCg0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfUnhD
RkcsIDApOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfVHhDRkcs
IDApOw0KCWNzX3dyaXRlcmVnKHNjLT5uaWNfYWRkciwgUFBfQnVmQ0ZHLCAw
KTsNCgljc193cml0ZXJlZyhzYy0+bmljX2FkZHIsIFBQX0J1c0NUTCwgMCk7
DQoNCglzYy0+YXJwY29tLmFjX2lmLmlmX2ZsYWdzICY9IH4oSUZGX1JVTk5J
TkcgfCBJRkZfT0FDVElWRSk7DQoJc2MtPmFycGNvbS5hY19pZi5pZl90aW1l
ciA9IDA7DQoNCgkodm9pZCkgc3BseChzKTsNCn0NCg0KLyoNCiAqIFJlc2V0
IHRoZSBpbnRlcmZhY2UNCiAqLw0Kc3RhdGljIHZvaWQNCmNzX3Jlc2V0KHN0
cnVjdCBjc19zb2Z0YyAqc2MpDQp7DQoJY3Nfc3RvcChzYyk7DQoJY3NfaW5p
dChzYyk7DQp9DQoNCnN0YXRpYyBpbnQNCmNzX2lvY3RsKHJlZ2lzdGVyIHN0
cnVjdCBpZm5ldCAqaWZwLCBpbnQgY29tbWFuZCwgY2FkZHJfdCBkYXRhKQ0K
ew0KCXN0cnVjdCBjc19zb2Z0YyAqc2M9aWZwLT5pZl9zb2Z0YzsNCglpbnQg
cyxlcnJvcj0wOw0KDQojaWZkZWYgQ1NfREVCVUcNCglwcmludGYoQ1NfTkFN
RSIlZDogaW9jdGwoJXgpXG4iLHNjLT5hcnBjb20uYWNfaWYuaWZfdW5pdCxj
b21tYW5kKTsNCiNlbmRpZg0KDQoJcz1zcGxpbXAoKTsNCg0KCXN3aXRjaCAo
Y29tbWFuZCkgew0KDQoJICBjYXNlIFNJT0NTSUZBRERSOg0KCSAgICB7DQoJ
CSAgICBzdHJ1Y3QgaWZhZGRyICppZmEgPSAoc3RydWN0IGlmYWRkciAqKWRh
dGE7DQoJCSAgICBzYy0+YXJwY29tLmFjX2lmLmlmX2ZsYWdzIHw9IElGRl9V
UDsNCg0KCQkgICAgc3dpdGNoIChpZmEtPmlmYV9hZGRyLT5zYV9mYW1pbHkp
IHsNCiNpZmRlZiBJTkVUDQoJCSAgICAgIGNhc2UgQUZfSU5FVDoNCgkJCWNz
X2luaXQoc2MpOw0KCQkJYXJwX2lmaW5pdCgmc2MtPmFycGNvbSwgaWZhKTsN
CgkJCWJyZWFrOw0KI2VuZGlmDQojaWZkZWYgSVBYDQoJCQkvKiBYWFgNCgkJ
CSAqIFRoaXMgY29kZSBpcyB0YWtlbiB3aXRob3V0IGFueSB0ZXN0DQoJCQkg
Ki8NCgkJICAgICAgY2FzZSBBRl9JUFg6DQoJCQl7DQoJCQkJcmVnaXN0ZXIg
c3RydWN0IGlweF9hZGRyICppbmEgPQ0KCQkJCQkJJihJQV9TSVBYKGlmYSkt
PnNpcHhfYWRkcik7DQoNCgkJCQlpZiAoaXB4X251bGxob3N0KCppbmEpKQ0K
CQkJCQlpbmEtPnhfaG9zdCA9ICoodW5pb24gaXB4X2hvc3QqKQ0KCQkJCQkJ
ICAgICAgKHNjLT5hcnBjb20uYWNfZW5hZGRyKTsNCgkJCQllbHNlIHsNCgkJ
CQkJYmNvcHkoKGNhZGRyX3QpIGluYS0+eF9ob3N0LmNfaG9zdCwNCgkJCQkJ
ICAgICAgKGNhZGRyX3QpIHNjLT5hcnBjb20uYWNfZW5hZGRyLA0KCQkJCQkg
ICAgICBzaXplb2Yoc2MtPmFycGNvbS5hY19lbmFkZHIpKTsNCgkJCQl9DQoJ
CQkJLyogU2V0IG5ldyBhZGRyZXNzICovDQoJCQkJY3NfaW5pdChzYy0+YXJw
Y29tLmFjX2lmLmlmX3VuaXQpOw0KCQkJCWJyZWFrOw0KCQkJfQ0KI2VuZGlm
DQoJCSAgICAgIGRlZmF1bHQ6DQoJCQljc19pbml0KHNjKTsNCgkJICAgIH0N
CgkJICAgIGJyZWFrOw0KICAgICAgICAgICAgfQ0KLyoNCiNpZmRlZiBTSU9D
R0lGQUREUg0KCSAgY2FzZSBTSU9DR0lGQUREUjoNCiAgICAgICAgICAgIHsN
CgkJc3RydWN0IGlmcmVxICogaWZyID0gKHN0cnVjdCBpZnJlcSAqKWRhdGE7
DQoJCXN0cnVjdCBzb2NrYWRkciAqIHNhID0gKHN0cnVjdCBzb2NrYWRkciAq
KSZpZnItPmlmcl9kYXRhOw0KDQoJCWJjb3B5KChjYWRkcl90KXNjLT5zY19l
bmFkZHIsDQoJCSAgICAgIChjYWRkcl90KXNhLT5zYV9kYXRhLCBFVEhFUl9B
RERSX0xFTik7DQoJCWJyZWFrOw0KCSAgICB9DQojZW5kaWYNCiovDQojaWZk
ZWYgU0lPQ0dJRlBIWVNBRERSDQoJICBjYXNlIFNJT0NHSUZQSFlTQUREUjoN
CgkgICAgew0KCQlzdHJ1Y3QgaWZyZXEgKiBpZnIgPSAoc3RydWN0IGlmcmVx
ICopZGF0YTsNCg0KCQliY29weSgoY2FkZHJfdClzYy0+c2NfZW5hZGRyLA0K
CQkgICAgICAoY2FkZHJfdCkmaWZyLT5pZnJfZGF0YSwgRVRIRVJfQUREUl9M
RU4pOw0KCQlicmVhazsNCgkgICAgfQ0KI2VuZGlmDQogICAgICAgICAgICAN
CiNpZmRlZiBTSU9DU0lGRkxBR1MNCgkgIGNhc2UgU0lPQ1NJRkZMQUdTOg0K
CSAgICB7DQoJCSAgICAvKg0KCQkgICAgICogU3dpdGNoIGludGVyZmFjZSBz
dGF0ZSBiZXR3ZWVuICJydW5uaW5nIiBhbmQNCgkJICAgICAqICJzdG9wcGVk
IiwgcmVmbGVjdGluZyB0aGUgVVAgZmxhZy4NCgkJICAgICAqLw0KCQkgICAg
aWYgKHNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJiBJRkZfVVApIHsNCgkJ
CSAgICBpZiAoKHNjLT5hcnBjb20uYWNfaWYuaWZfZmxhZ3MgJiBJRkZfUlVO
TklORyk9PTApIHsNCgkJCQkgICAgY3NfaW5pdChzYyk7DQoJCQkgICAgfQ0K
CQkgICAgfSBlbHNlIHsNCgkJCSAgICBpZiAoKHNjLT5hcnBjb20uYWNfaWYu
aWZfZmxhZ3MgJiBJRkZfUlVOTklORykhPTApIHsNCgkJCQkgICAgY3Nfc3Rv
cChzYyk7DQoJCQkgICAgfQ0KCQkgICAgfQ0KCQkgICAgLyoNCgkJICAgICAq
IFByb21pc2N1b3VzIGFuZC9vciBtdWx0aWNhc3QgZmxhZ3MgbWF5IGhhdmUg
Y2hhbmdlZCwNCgkJICAgICAqIHNvIHJlcHJvZ3JhbSB0aGUgbXVsdGljYXN0
IGZpbHRlciBhbmQvb3IgcmVjZWl2ZSBtb2RlLg0KCQkgICAgICovDQoJCSAg
ICAvKgkJY3Nfc2V0bW9kZShzYyk7IEkgZG9uJ3Qga25vdyBub3cgYWJvdXQg
aXQuICovDQoJCSAgICBicmVhazsNCgkgICAgfQ0KI2VuZGlmDQoNCiNpZmRl
ZiBTSU9DQURETVVMVEkNCgkgIGNhc2UgU0lPQ0FERE1VTFRJOg0KCSAgY2Fz
ZSBTSU9DREVMTVVMVEk6DQoJICAgIHsNCgkJLyoNCgkJICogVXBkYXRlIG91
dCBtdWx0aWNhc3QgbGlzdC4NCgkJICovDQoJCXN0cnVjdCBpZnJlcSAqIGlm
ciA9IChzdHJ1Y3QgaWZyZXEgKilkYXRhOw0KDQoJCWVycm9yID0gKGNvbW1h
bmQgPT0gU0lPQ0FERE1VTFRJKQ0KCQkgICAgICA/IGV0aGVyX2FkZG11bHRp
KGlmciwgJnNjLT5hcnBjb20pDQoJCSAgICAgIDogZXRoZXJfZGVsbXVsdGko
aWZyLCAmc2MtPmFycGNvbSk7DQoNCgkJaWYgKGVycm9yID09IEVORVRSRVNF
VCkgew0KCQkJLyoNCgkJCSAqIE11bHRpY2FzdCBsaXN0IGhhcyBjaGFuZ2Vk
OyBzZXQgdGhlIGhhcmR3YXJlIGZpbHRlcg0KCQkJICogYWNjb3JkaW5nbHku
DQoJCQkgKi8NCgkJCS8qIGNzX3NldG1vZGUoc2MpOyAqLw0KCQkJZXJyb3Ig
PSAwOw0KCQl9DQoNCgkJYnJlYWs7DQoJICAgIH0NCiNlbmRpZg0KDQojaWZk
ZWYgU0lPQ1NJRk1UVQ0KCSAgY2FzZSBTSU9DU0lGTVRVOg0KCSAgICB7DQoJ
CSAgICAvKg0KCQkgICAgICogU2V0IHRoZSBpbnRlcmZhY2UgTVRVLg0KCQkg
ICAgICovDQoJCSAgICBzdHJ1Y3QgaWZyZXEgKmlmciA9IChzdHJ1Y3QgaWZy
ZXEgKilkYXRhOw0KDQoJCSAgICBpZiAoaWZyLT5pZnJfbXR1ID4gRVRIRVJN
VFUpIHsNCgkJCSAgICBlcnJvciA9IEVJTlZBTDsNCgkJICAgIH0gZWxzZSB7
DQoJCQkgICAgc2MtPmFycGNvbS5hY19pZi5pZl9tdHUgPSBpZnItPmlmcl9t
dHU7DQoJCSAgICB9DQoJCSAgICBicmVhazsNCgkgICAgfQ0KI2VuZGlmDQoN
CgkgIGRlZmF1bHQ6DQoJICAgIGVycm9yID0gRUlOVkFMOw0KCX0NCg0KCSh2
b2lkKSBzcGx4KHMpOw0KCXJldHVybiBlcnJvcjsNCn0NCg0KLyoNCiAqIERl
dmljZSB0aW1lb3V0L3dhdGNoZG9nIHJvdXRpbmUuIEVudGVyZWQgaWYgdGhl
IGRldmljZSBuZWdsZWN0cyB0bw0KICogZ2VuZXJhdGUgYW4gaW50ZXJydXB0
IGFmdGVyIGEgdHJhbnNtaXQgaGFzIGJlZW4gc3RhcnRlZCBvbiBpdC4NCiAq
Lw0Kc3RhdGljIHZvaWQNCmNzX3dhdGNoZG9nKHN0cnVjdCBpZm5ldCAqaWZw
KQ0Kew0KCXN0cnVjdCBjc19zb2Z0YyAqc2MgPSAmY3Nfc29mdGNbaWZwLT5p
Zl91bml0XTsNCg0KCWlmcC0+aWZfb2Vycm9ycysrOw0KCWxvZyhMT0dfRVJS
LCBDU19OQU1FIiVkOiBkZXZpY2UgdGltZW91dFxuIiwgaWZwLT5pZl91bml0
KTsNCg0KCS8qIFJlc2V0IHRoZSBpbnRlcmZhY2UgKi8NCglpZiAoaWZwLT5p
Zl9mbGFncyAmIElGRl9VUCkNCgkJY3NfcmVzZXQoc2MpOw0KCWVsc2UNCgkJ
Y3Nfc3RvcChzYyk7DQp9DQoNCg==
--0-731731238-893342402=:29546--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980423183109.29546A-300000>