[OpenAFS-devel] patch to enable ia64_linux26

Mike Becher Mike.Becher@lrz-muenchen.de
Thu, 16 Dec 2004 19:33:43 +0100 (CET)


  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.

--8323584-2132504408-1103222023=:26077
Content-Type: TEXT/PLAIN; charset=US-ASCII

This patch should enable building of openafs 1.3.76 for platform 
ia64_linux26. Additionally it puts amd64_linux26 initialization stuff at 
another IMO cleaner place.

Summary:
 * SYS_NAME_ID_ia64_linux26       2203   
   I hope I have choosen the right number in src/config/afs_sysnames.h
 * Patch provides a param.ia64_linux26.h
 * Patch introduce platform ia64_linux26 in
   - README
   - src/cf/osconf.m4
   - src/packaging/Debian/kern-sysname
   - 
 * Patch corrects corrects some problems with "struct bucket current" in
   src/util/afs_lhash.c. I couldn't compile this file because this name 
   "current" seems to produce some trouble  with the pointer "current" to 
   the current task. So I have it renamend to "current_b".
 * Patch introduce platform ia64_linux26 in src/afs/LINUX/osi_module.c
   - adds linux/syscalls.h
   - adds ".skip 8" to assembler stub functions for ia64 to make gas work
   - changes in function afs_init()
     - uses "sys_ioctl" and "sys_close" to find ia64 sys_call_table
     - gives amd64_linux26 code a new place
   - introduce MODULE_LICENSE("IBM Public License Version 1.0");
 * src/afs/afs.h
   on ia64_linux26 AFS_FLOCK ==>> flock (not flock64)

All this makes OpenAFS 1.3.76 work on IA64 SMPs, but runs not really 
stable. The following stuff works:
  * getting AFS token
  * getting a PAG
  * traveling through directories  (only with afsd -memcache..) 
  * reading files                  (only with afsd -memcache..)
  * it does not crash the machine
but
  * writing of files does not work

I hope some of you will try to help to make OpenAFS work on ia64_linux26.

best regards,
  mike
--8323584-2132504408-1103222023=:26077
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ia64_linux26-1.3.76.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.58.0412161933430.26077@lxmbe01.lrz.lrz-muenchen.de>
Content-Description: ia64_linux26-1.3.76.patch
Content-Disposition: attachment; filename="ia64_linux26-1.3.76.patch"

ZGlmZiAtdSAtciAtTiBvcGVuYWZzLTEuMy43Ni5vcmlnL1JFQURNRSBvcGVu
YWZzLTEuMy43Ni9SRUFETUUNCi0tLSBvcGVuYWZzLTEuMy43Ni5vcmlnL1JF
QURNRQkyMDA0LTA3LTI3IDE2OjM5OjMxLjAwMDAwMDAwMCArMDIwMA0KKysr
IG9wZW5hZnMtMS4zLjc2L1JFQURNRQkyMDA0LTEyLTE2IDEzOjQ5OjI0LjAw
MDAwMDAwMCArMDEwMA0KQEAgLTUzLDYgKzUzLDcgQEANCiAgICAgICBhbHBo
YV9saW51eDIyIA0KICAgICAgIGFscGhhX2xpbnV4MjQgDQogICAgICAgaWE2
NF9saW51eDI0DQorICAgICAgaWE2NF9saW51eDI2DQogICAgICAgc3BhcmNf
bGludXgyMg0KICAgICAgIHNwYXJjX2xpbnV4MjQNCiAgICAgICBzcGFyYzY0
X2xpbnV4MjINCmRpZmYgLXUgLXIgLU4gb3BlbmFmcy0xLjMuNzYub3JpZy9z
cmMvY2Yvb3Njb25mLm00IG9wZW5hZnMtMS4zLjc2L3NyYy9jZi9vc2NvbmYu
bTQNCi0tLSBvcGVuYWZzLTEuMy43Ni5vcmlnL3NyYy9jZi9vc2NvbmYubTQJ
MjAwNC0xMi0wNyAwNzowODo0Mi4wMDAwMDAwMDAgKzAxMDANCisrKyBvcGVu
YWZzLTEuMy43Ni9zcmMvY2Yvb3Njb25mLm00CTIwMDQtMTItMTYgMTQ6MjA6
MDMuMDAwMDAwMDAwICswMTAwDQpAQCAtMjE3LDcgKzIxNyw3IEBADQogCQlZ
QUNDPSJiaXNvbiAteSINCiAJCTs7DQogDQotCWlhNjRfbGludXgyNCkNCisJ
aWE2NF9saW51eDI0fGlhNjRfbGludXgyNikNCiAJCUtFUk5fT1BUTVo9LU8y
DQogCQlMRVg9ImZsZXggLWwiDQogCQlNVF9DRkxBR1M9Jy1EQUZTX1BUSFJF
QURfRU5WIC1wdGhyZWFkIC1EX1JFRU5UUkFOVCAke1hDRkxBR1N9Jw0KZGlm
ZiAtdSAtciAtTiBvcGVuYWZzLTEuMy43Ni5vcmlnL3NyYy9jb25maWcvYWZz
X3N5c25hbWVzLmggb3BlbmFmcy0xLjMuNzYvc3JjL2NvbmZpZy9hZnNfc3lz
bmFtZXMuaA0KLS0tIG9wZW5hZnMtMS4zLjc2Lm9yaWcvc3JjL2NvbmZpZy9h
ZnNfc3lzbmFtZXMuaAkyMDA0LTEyLTA3IDA3OjA4OjQ2LjAwMDAwMDAwMCAr
MDEwMA0KKysrIG9wZW5hZnMtMS4zLjc2L3NyYy9jb25maWcvYWZzX3N5c25h
bWVzLmgJMjAwNC0xMi0xNiAxNDoyMDowNi4wMDAwMDAwMDAgKzAxMDANCkBA
IC0xNzMsNiArMTczLDcgQEANCiAjZGVmaW5lIFNZU19OQU1FX0lEX2lhNjRf
bGludXgyCQkyMjAwDQogI2RlZmluZSBTWVNfTkFNRV9JRF9pYTY0X2xpbnV4
MjIJMjIwMQ0KICNkZWZpbmUgU1lTX05BTUVfSURfaWE2NF9saW51eDI0CTIy
MDINCisjZGVmaW5lIFNZU19OQU1FX0lEX2lhNjRfbGludXgyNgkyMjAzDQog
DQogI2RlZmluZSBTWVNfTkFNRV9JRF9tNjhrX2xpbnV4MjIgICAgICAgIDIz
MDENCiAjZGVmaW5lIFNZU19OQU1FX0lEX202OGtfbGludXgyNCAgICAgICAg
MjMwMg0KZGlmZiAtdSAtciAtTiBvcGVuYWZzLTEuMy43Ni5vcmlnL3NyYy9j
b25maWcvcGFyYW0uaWE2NF9saW51eDI2Lmggb3BlbmFmcy0xLjMuNzYvc3Jj
L2NvbmZpZy9wYXJhbS5pYTY0X2xpbnV4MjYuaA0KLS0tIG9wZW5hZnMtMS4z
Ljc2Lm9yaWcvc3JjL2NvbmZpZy9wYXJhbS5pYTY0X2xpbnV4MjYuaAkxOTcw
LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMA0KKysrIG9wZW5hZnMt
MS4zLjc2L3NyYy9jb25maWcvcGFyYW0uaWE2NF9saW51eDI2LmgJMjAwNC0x
Mi0xNiAxNDoyMjoxOC4wMDAwMDAwMDAgKzAxMDANCkBAIC0wLDAgKzEsMTcy
IEBADQorI2lmbmRlZiBVS0VSTkVMDQorLyogVGhpcyBzZWN0aW9uIGZvciBr
ZXJuZWwgbGliYWZzIGNvbXBpbGVzIG9ubHkgKi8NCisNCisvKiANCisgKiBD
b3B5cmlnaHQgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5l
cyBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLg0KKyAqIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuDQorICogDQorICogVGhpcyBzb2Z0d2FyZSBoYXMgYmVlbiByZWxl
YXNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIElCTSBQdWJsaWMNCisgKiBM
aWNlbnNlLiAgRm9yIGRldGFpbHMsIHNlZSB0aGUgTElDRU5TRSBmaWxlIGlu
IHRoZSB0b3AtbGV2ZWwgc291cmNlDQorICogZGlyZWN0b3J5IG9yIG9ubGlu
ZSBhdCBodHRwOi8vd3d3Lm9wZW5hZnMub3JnL2RsL2xpY2Vuc2UxMC5odG1s
DQorICovDQorDQorDQorI2lmbmRlZiBBRlNfUEFSQU1fSA0KKyNkZWZpbmUg
QUZTX1BBUkFNX0gNCisNCisvKiBJbiB1c2VyIHNwYWNlIHRoZSBBRlNfTElO
VVgyMF9FTlYgc2hvdWxkIGJlIHN1ZmZpY2llbnQuIEluIHRoZSBrZXJuZWws
DQorICogaXQncyBhIGp1ZGdtZW50IGNhbGwuIElmIHNvbWV0aGluZyBpcyBv
YnZpb3VzbHkgaWE2NCBzcGVjaWZpYywgdXNlIHRoYXQNCisgKiAjZGVmaW5l
IGluc3RlYWQuIE5vdGUgdGhhdCAiMjAiIHJlZmVycyB0byB0aGUgbGludXgg
Mi4wIGtlcm5lbC4gVGhlICIyIg0KKyAqIGluIHRoZSBzeXNuYW1lIGlzIHRo
ZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIGNsaWVudC4gVGhpcyB0YWtlcyBp
bnRvDQorICogYWNjb3VudCB0aGUgcGVyZmVycmVkIE9TIHVzZXIgc3BhY2Ug
Y29uZmlndXJhdGlvbiBhcyB3ZWxsIGFzIHRoZSBrZXJuZWwuDQorICovDQor
DQorI2RlZmluZSBBRlNfTElOVVgyMF9FTlYJMQ0KKyNkZWZpbmUgQUZTX0xJ
TlVYMjJfRU5WCTENCisjZGVmaW5lIEFGU19MSU5VWDI0X0VOVgkxDQorI2Rl
ZmluZSBBRlNfTElOVVgyNl9FTlYJMQ0KKyNkZWZpbmUgQUZTX0lBNjRfTElO
VVgyMF9FTlYJMQ0KKyNkZWZpbmUgQUZTX0lBNjRfTElOVVgyMl9FTlYJMQ0K
KyNkZWZpbmUgQUZTX0lBNjRfTElOVVgyNF9FTlYJMQ0KKyNkZWZpbmUgQUZT
X0lBNjRfTElOVVgyNl9FTlYJMQ0KKyNkZWZpbmUgQUZTX0xJTlVYXzY0QklU
X0tFUk5FTCAxDQorI2RlZmluZSBBRlNfTk9ORlNUUkFOUyAxDQorDQorI2Rl
ZmluZSBBRlNfTU9VTlRfQUZTICJhZnMiCS8qIFRoZSBuYW1lIG9mIHRoZSBm
aWxlc3lzdGVtIHR5cGUuICovDQorI2RlZmluZSBBRlNfU1lTQ0FMTCAxMTQx
DQorI2RlZmluZSBBRlNfNjRCSVRfSU9QU19FTlYgIDENCisjZGVmaW5lIEFG
U19OQU1FSV9FTlYgICAgIDEJLyogVXNlciBzcGFjZSBpbnRlcmZhY2UgdG8g
ZmlsZSBzeXN0ZW0gKi8NCisNCisjZGVmaW5lIEFGU182NEJJVF9FTlYJCTEJ
LyogRGVmaW5lcyBhZnNfaW50MzIgYXMgaW50LCBub3QgbG9uZy4gKi8NCisj
ZGVmaW5lIEFGU182NEJJVF9DTElFTlQJMQkNCisNCisjZGVmaW5lIEFGU182
NEJJVFBPSU5URVJfRU5WCTEJLyogcG9pbnRlcnMgYXJlIDY0IGJpdHMuICov
DQorDQorI2lmIGRlZmluZWQoX19LRVJORUxfXykgJiYgIWRlZmluZWQoS0RV
TVBfS0VSTkVMKQ0KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+DQorI2luY2x1
ZGUgPGxpbnV4L21vZHVsZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwu
aD4NCisjaW5jbHVkZSA8bGludXgvdGhyZWFkcy5oPg0KKw0KKyNpbmNsdWRl
IDxsaW51eC9jb25maWcuaD4NCisjaWZkZWYgQ09ORklHX1NNUA0KKyN1bmRl
ZiBDT05GSUdfU01QDQorI2VuZGlmDQorLyogVXNpbmcgIkFGU19TTVAiIHRv
IG1hcCB0byBob3dldmVyIG1hbnkgI2RlZmluZSdzIGFyZSByZXF1aXJlZCB0
byBnZXQNCisgKiBNUCB0byBjb21waWxlIGZvciBMaW51eA0KKyAqLw0KKyNp
ZmRlZiBBRlNfU01QDQorI2RlZmluZSBDT05GSUdfU01QIDENCisjaWZuZGVm
IF9fU01QX18NCisjZGVmaW5lIF9fU01QX18NCisjZW5kaWYNCisjZGVmaW5l
IEFGU19HTE9CQUxfU1VOTE9DSw0KKyNlbmRpZg0KKw0KKyNpZiBkZWZpbmVk
KE1PRFVMRSkgJiYgZGVmaW5lZChDT05GSUdfTU9EVkVSU0lPTlMpDQorI2Rl
ZmluZSBNT0RWRVJTSU9OUw0KKy8qICNpbmNsdWRlIDxjb25maWcvbW9kdmVy
c2lvbnMuaD4gKi8NCisjZW5kaWYNCisNCisjZW5kaWYgLyogX19LRVJORUxf
XyAgJiYgIURVTVBfS0VSTkVMICovDQorDQorI2luY2x1ZGUgPGFmcy9hZnNf
c3lzbmFtZXMuaD4NCisNCisjZGVmaW5lIEFGU19VU0VSU1BBQ0VfSVBfQURE
UiAxDQorI2RlZmluZSBSWEtfTElTVEVORVJfRU5WIDENCisjZGVmaW5lIEFG
U19HQ1BBR1MgICAgICAgMgkvKiBTZXQgdG8gVXNlcmRpc2FibGVkLCBhbGxv
dyBzeXNjdGwgdG8gb3ZlcnJpZGUgKi8NCisNCisvKiBNYWNoaW5lIC8gT3Bl
cmF0aW5nIHN5c3RlbSBpbmZvcm1hdGlvbiAqLw0KKyNkZWZpbmUgU1lTX05B
TUUJImlhNjRfbGludXgyNiINCisjZGVmaW5lIFNZU19OQU1FX0lECVNZU19O
QU1FX0lEX2lhNjRfbGludXgyNg0KKyNkZWZpbmUgQUZTTElUVExFX0VORElB
TiAgICAxDQorI2RlZmluZSBBRlNfSEFWRV9GRlMgICAgICAgIDEJLyogVXNl
IHN5c3RlbSdzIGZmcy4gKi8NCisjZGVmaW5lIEFGU19IQVZFX1NUQVRWRlMg
ICAgMAkvKiBTeXN0ZW0gZG9lc24ndCBzdXBwb3J0IHN0YXR2ZnMgKi8NCisj
ZGVmaW5lIEFGU19WTV9SRFdSX0VOViAgICAgICAgICAgIDEJLyogcmVhZC93
cml0ZSBpbXBsZW1lbnRlZCB2aWEgVk0gKi8NCisNCisjaWZkZWYgS0VSTkVM
DQorI2lmbmRlZiBNSU4NCisjZGVmaW5lIE1JTihBLEIpICgoQSkgPCAoQikg
PyAoQSkgOiAoQikpDQorI2VuZGlmDQorI2lmbmRlZiBNQVgNCisjZGVmaW5l
IE1BWChBLEIpICgoQSkgPiAoQikgPyAoQSkgOiAoQikpDQorI2VuZGlmDQor
I2VuZGlmIC8qIEtFUk5FTCAqLw0KKw0KKyNkZWZpbmUgVVNFX1VDT05URVhU
CQkvKiBzaG91bGQgYmUgaW4gYWZzY29uZmlnLmggKi8NCisNCisjZW5kaWYg
LyogX1BBUkFNX0lBNjRfTElOVVgyMF9IXyAqLw0KKw0KKyNlbHNlIC8qICFk
ZWZpbmVkKFVLRVJORUwpICovDQorDQorLyogVGhpcyBzZWN0aW9uIGZvciB1
c2VyIHNwYWNlIGNvbXBpbGVzIG9ubHkgKi8NCisNCisvKiANCisgKiBDb3B5
cmlnaHQgMjAwMCwgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBD
b3Jwb3JhdGlvbiBhbmQgb3RoZXJzLg0KKyAqIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuDQorICogDQorICogVGhpcyBzb2Z0d2FyZSBoYXMgYmVlbiByZWxlYXNl
ZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIElCTSBQdWJsaWMNCisgKiBMaWNl
bnNlLiAgRm9yIGRldGFpbHMsIHNlZSB0aGUgTElDRU5TRSBmaWxlIGluIHRo
ZSB0b3AtbGV2ZWwgc291cmNlDQorICogZGlyZWN0b3J5IG9yIG9ubGluZSBh
dCBodHRwOi8vd3d3Lm9wZW5hZnMub3JnL2RsL2xpY2Vuc2UxMC5odG1sDQor
ICovDQorDQorDQorI2lmbmRlZiBBRlNfUEFSQU1fSA0KKyNkZWZpbmUgQUZT
X1BBUkFNX0gNCisNCisvKiBJbiB1c2VyIHNwYWNlIHRoZSBBRlNfTElOVVgy
MF9FTlYgc2hvdWxkIGJlIHN1ZmZpY2llbnQuIEluIHRoZSBrZXJuZWwsDQor
ICogaXQncyBhIGp1ZGdtZW50IGNhbGwuIElmIHNvbWV0aGluZyBpcyBvYnZp
b3VzbHkgaTM4NiBzcGVjaWZpYywgdXNlIHRoYXQNCisgKiAjZGVmaW5lIGlu
c3RlYWQuIE5vdGUgdGhhdCAiMjAiIHJlZmVycyB0byB0aGUgbGludXggMi4w
IGtlcm5lbC4gVGhlICIyIg0KKyAqIGluIHRoZSBzeXNuYW1lIGlzIHRoZSBj
dXJyZW50IHZlcnNpb24gb2YgdGhlIGNsaWVudC4gVGhpcyB0YWtlcyBpbnRv
DQorICogYWNjb3VudCB0aGUgcGVyZmVycmVkIE9TIHVzZXIgc3BhY2UgY29u
ZmlndXJhdGlvbiBhcyB3ZWxsIGFzIHRoZSBrZXJuZWwuDQorICovDQorDQor
I2RlZmluZSBVS0VSTkVMICAgICAgICAgICAgICAgICAgICAgICAgMQkvKiB1
c2VyIHNwYWNlIGtlcm5lbCAqLw0KKyNkZWZpbmUgQUZTX0VOViAgICAgICAg
ICAgICAgICAgICAgICAgIDENCisjZGVmaW5lIEFGU19VU1JfTElOVVgyMF9F
TlYgICAgMQ0KKyNkZWZpbmUgQUZTX1VTUl9MSU5VWDIyX0VOViAgICAxDQor
I2RlZmluZSBBRlNfVVNSX0xJTlVYMjRfRU5WICAgIDENCisjZGVmaW5lIEFG
U19VU1JfTElOVVgyNl9FTlYgICAgMQ0KKyNkZWZpbmUgQUZTX05PTkZTVFJB
TlMgMQ0KKw0KKyNkZWZpbmUgQUZTX01PVU5UX0FGUyAiYWZzIgkvKiBUaGUg
bmFtZSBvZiB0aGUgZmlsZXN5c3RlbSB0eXBlLiAqLw0KKyNkZWZpbmUgQUZT
X1NZU0NBTEwgMTE0MQ0KKyNkZWZpbmUgQUZTXzY0QklUX0lPUFNfRU5WICAx
DQorI2RlZmluZSBBRlNfTkFNRUlfRU5WICAgICAxCS8qIFVzZXIgc3BhY2Ug
aW50ZXJmYWNlIHRvIGZpbGUgc3lzdGVtICovDQorI2luY2x1ZGUgPGFmcy9h
ZnNfc3lzbmFtZXMuaD4NCisNCisjZGVmaW5lIEFGU19VU0VSU1BBQ0VfSVBf
QUREUiAxDQorI2RlZmluZSBSWEtfTElTVEVORVJfRU5WIDENCisjZGVmaW5l
IEFGU19HQ1BBR1MgICAgICAgICAgICAgMAkvKiBpZiBub256ZXJvLCBnYXJi
YWdlIGNvbGxlY3QgUEFHcyAqLw0KKw0KKw0KKy8qIE1hY2hpbmUgLyBPcGVy
YXRpbmcgc3lzdGVtIGluZm9ybWF0aW9uICovDQorI2RlZmluZSBTWVNfTkFN
RQkiaWE2NF9saW51eDI2Ig0KKyNkZWZpbmUgU1lTX05BTUVfSUQJU1lTX05B
TUVfSURfaWE2NF9saW51eDI2DQorI2RlZmluZSBBRlNMSVRUTEVfRU5ESUFO
ICAgIDENCisjZGVmaW5lIEFGU19IQVZFX0ZGUyAgICAgICAgMQkvKiBVc2Ug
c3lzdGVtJ3MgZmZzLiAqLw0KKyNkZWZpbmUgQUZTX0hBVkVfU1RBVFZGUyAg
ICAwCS8qIFN5c3RlbSBkb2Vzbid0IHN1cHBvcnQgc3RhdHZmcyAqLw0KKyNk
ZWZpbmUgQUZTX1ZNX1JEV1JfRU5WICAgICAgICAgICAgMQkvKiByZWFkL3dy
aXRlIGltcGxlbWVudGVkIHZpYSBWTSAqLw0KKw0KKyNkZWZpbmUgICAgICAg
IGFmc2lvX2lvdiAgICAgICB1aW9faW92DQorI2RlZmluZSAgICAgICAgYWZz
aW9faW92Y250ICAgIHVpb19pb3ZjbnQNCisjZGVmaW5lICAgICAgICBhZnNp
b19vZmZzZXQgICAgdWlvX29mZnNldA0KKyNkZWZpbmUgICAgICAgIGFmc2lv
X3NlZyAgICAgICB1aW9fc2VnZmxnDQorI2RlZmluZSAgICAgICAgYWZzaW9f
Zm1vZGUgICAgIHVpb19mbW9kZQ0KKyNkZWZpbmUgICAgICAgIGFmc2lvX3Jl
c2lkICAgICB1aW9fcmVzaWQNCisjZGVmaW5lICAgICAgICBBRlNfVUlPU1lT
ICAgICAgMQ0KKyNkZWZpbmUgICAgICAgIEFGU19VSU9VU0VSICAgICBVSU9f
VVNFUlNQQUNFDQorI2RlZmluZSAgICAgICAgQUZTX0NMQllURVMgICAgIE1D
TEJZVEVTDQorI2RlZmluZSAgICAgICAgQUZTX01JTkNIQU5HRSAgIDINCisj
ZGVmaW5lICAgICAgICBWQVRUUl9OVUxMICAgICAgdXNyX3ZhdHRyX251bGwN
CisNCisjZGVmaW5lIEFGU19ESVJFTlQNCisjaWZuZGVmIENNU0VSVkVSUFJF
Rg0KKyNkZWZpbmUgQ01TRVJWRVJQUkVGDQorI2VuZGlmDQorDQorI2RlZmlu
ZSBVU0VfVUNPTlRFWFQJCS8qIHNob3VsZCBiZSBpbiBhZnNjb25maWcuaCAq
Lw0KKw0KKyNlbmRpZiAvKiBBRlNfUEFSQU1fSCAqLw0KKw0KKyNlbmRpZiAv
KiAhZGVmaW5lZChVS0VSTkVMKSAqLw0KZGlmZiAtdSAtciAtTiBvcGVuYWZz
LTEuMy43Ni5vcmlnL3NyYy9wYWNrYWdpbmcvRGViaWFuL2tlcm4tc3lzbmFt
ZSBvcGVuYWZzLTEuMy43Ni9zcmMvcGFja2FnaW5nL0RlYmlhbi9rZXJuLXN5
c25hbWUNCi0tLSBvcGVuYWZzLTEuMy43Ni5vcmlnL3NyYy9wYWNrYWdpbmcv
RGViaWFuL2tlcm4tc3lzbmFtZQkyMDAyLTA4LTI2IDIyOjUyOjAyLjAwMDAw
MDAwMCArMDIwMA0KKysrIG9wZW5hZnMtMS4zLjc2L3NyYy9wYWNrYWdpbmcv
RGViaWFuL2tlcm4tc3lzbmFtZQkyMDA0LTEyLTE2IDE0OjIyOjI5LjAwMDAw
MDAwMCArMDEwMA0KQEAgLTExLDggKzExLDE1IEBADQogCSAgICBlc2FjDQog
OzsNCiAgICAgaWE2NCkNCi0gICAgZWNobyBpYTY0X2xpbnV4MjQNCi07Ow0K
KwljYXNlICRLVkVSUyBpbg0KKwkgICAgMi40KikNCisJCWVjaG8gaWE2NF9s
aW51eDI0DQorCQk7Ow0KKwkgICAgMi42KikNCisJCWVjaG8gaWE2NF9saW51
eDI2DQorCQk7Ow0KKwkgICAgZXNhYw0KKwk7Ow0KICAgICBhbHBoYSkNCiAJ
Y2FzZSAkS1ZFUlMgaW4NCiAJICAgIDIuMiopDQpkaWZmIC11IC1yIC1OIG9w
ZW5hZnMtMS4zLjc2Lm9yaWcvc3JjL3V0aWwvYWZzX2xoYXNoLmMgb3BlbmFm
cy0xLjMuNzYvc3JjL3V0aWwvYWZzX2xoYXNoLmMNCi0tLSBvcGVuYWZzLTEu
My43Ni5vcmlnL3NyYy91dGlsL2Fmc19saGFzaC5jCTIwMDMtMDctMTYgMDE6
MTc6MTUuMDAwMDAwMDAwICswMjAwDQorKysgb3BlbmFmcy0xLjMuNzYvc3Jj
L3V0aWwvYWZzX2xoYXNoLmMJMjAwNC0xMi0xNiAxNDoyNTozOS4wMDAwMDAw
MDAgKzAxMDANCkBAIC0xNjksNyArMTY5LDcgQEANCiAgICAgc2l6ZV90IG9s
ZF9hZGRyZXNzOwkJLyogaW5kZXggb2YgYnVja2V0IHRvIHNwbGl0ICovDQog
ICAgIHNpemVfdCBuZXdfYWRkcmVzczsJCS8qIGluZGV4IG9mIG5ldyBidWNr
ZXQgKi8NCiANCi0gICAgc3RydWN0IGJ1Y2tldCAqY3VycmVudDsJLyogZm9y
IHNjYW5uaW5nIGRvd24gb2xkIGNoYWluICovDQorICAgIHN0cnVjdCBidWNr
ZXQgKmN1cnJlbnRfYjsJLyogZm9yIHNjYW5uaW5nIGRvd24gb2xkIGNoYWlu
ICovDQogICAgIHN0cnVjdCBidWNrZXQgKnByZXZpb3VzOw0KIA0KICAgICBz
dHJ1Y3QgYnVja2V0ICpsYXN0X29mX25ldzsJLyogbGFzdCBlbGVtZW50IGlu
IG5ldyBjaGFpbiAqLw0KQEAgLTIwNiwzNiArMjA2LDM2IEBADQogDQogICAg
IC8qIHJlbG9jYXRlIHJlY29yZHMgdG8gdGhlIG5ldyBidWNrZXQgKi8NCiAN
Ci0gICAgY3VycmVudCA9IGxoLT50YWJsZVtvbGRfYWRkcmVzc107DQorICAg
IGN1cnJlbnRfYiA9IGxoLT50YWJsZVtvbGRfYWRkcmVzc107DQogICAgIHBy
ZXZpb3VzID0gMDsNCiAgICAgbGFzdF9vZl9uZXcgPSAwOw0KICAgICBsaC0+
dGFibGVbbmV3X2FkZHJlc3NdID0gMDsNCiANCi0gICAgd2hpbGUgKGN1cnJl
bnQpIHsNCisgICAgd2hpbGUgKGN1cnJlbnRfYikgew0KIAlzaXplX3QgYWRk
cjsNCi0JYWRkciA9IGFmc19saGFzaF9hZGRyZXNzKGxoLCBjdXJyZW50LT5r
ZXkpOw0KKwlhZGRyID0gYWZzX2xoYXNoX2FkZHJlc3MobGgsIGN1cnJlbnRf
Yi0+a2V5KTsNCiAJaWYgKGFkZHIgPT0gbmV3X2FkZHJlc3MpIHsNCiAJICAg
IC8qIGF0dGFjaCBpdCB0byB0aGUgZW5kIG9mIHRoZSBuZXcgY2hhaW4gKi8N
CiAJICAgIGlmIChsYXN0X29mX25ldykgew0KLQkJbGFzdF9vZl9uZXctPm5l
eHQgPSBjdXJyZW50Ow0KKwkJbGFzdF9vZl9uZXctPm5leHQgPSBjdXJyZW50
X2I7DQogCSAgICB9IGVsc2Ugew0KLQkJbGgtPnRhYmxlW25ld19hZGRyZXNz
XSA9IGN1cnJlbnQ7DQorCQlsaC0+dGFibGVbbmV3X2FkZHJlc3NdID0gY3Vy
cmVudF9iOw0KIAkgICAgfQ0KIAkgICAgaWYgKHByZXZpb3VzKSB7DQotCQlw
cmV2aW91cy0+bmV4dCA9IGN1cnJlbnQtPm5leHQ7DQorCQlwcmV2aW91cy0+
bmV4dCA9IGN1cnJlbnRfYi0+bmV4dDsNCiAJICAgIH0gZWxzZSB7DQotCQls
aC0+dGFibGVbb2xkX2FkZHJlc3NdID0gY3VycmVudC0+bmV4dDsNCisJCWxo
LT50YWJsZVtvbGRfYWRkcmVzc10gPSBjdXJyZW50X2ItPm5leHQ7DQogCSAg
ICB9DQotCSAgICBsYXN0X29mX25ldyA9IGN1cnJlbnQ7DQotCSAgICBjdXJy
ZW50ID0gY3VycmVudC0+bmV4dDsNCisJICAgIGxhc3Rfb2ZfbmV3ID0gY3Vy
cmVudF9iOw0KKwkgICAgY3VycmVudF9iID0gY3VycmVudF9iLT5uZXh0Ow0K
IAkgICAgbGFzdF9vZl9uZXctPm5leHQgPSAwOw0KIAl9IGVsc2Ugew0KICNp
ZmRlZiBDSEVDS19JTlZBUklBTlRTDQogCSAgICBhc3NlcnQoYWRkciA9PSBv
bGRfYWRkcmVzcyk7DQogI2VuZGlmIC8qIENIRUNLX0lOVkFSSUFOVFMgKi8N
CiAJICAgIC8qIGxlYXZlIGl0IG9uIHRoZSBvbGQgY2hhaW4gKi8NCi0JICAg
IHByZXZpb3VzID0gY3VycmVudDsNCi0JICAgIGN1cnJlbnQgPSBjdXJyZW50
LT5uZXh0Ow0KKwkgICAgcHJldmlvdXMgPSBjdXJyZW50X2I7DQorCSAgICBj
dXJyZW50X2IgPSBjdXJyZW50X2ItPm5leHQ7DQogCX0NCiAgICAgfQ0KIH0N
CkBAIC0zMjksMTAgKzMyOSwxMCBAQA0KICNlbmRpZiAvKiBDSEVDS19JTlZB
UklBTlRTICovDQogDQogICAgIGZvciAoaSA9IDA7IGkgPCBsaC0+bHRhYmxl
OyBpKyspIHsNCi0Jc3RydWN0IGJ1Y2tldCAqY3VycmVudDsNCisJc3RydWN0
IGJ1Y2tldCAqY3VycmVudF9iOw0KIA0KLQlmb3IgKGN1cnJlbnQgPSBsaC0+
dGFibGVbaV07IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5uZXh0KSB7
DQotCSAgICBmKGksIGN1cnJlbnQtPmtleSwgY3VycmVudC0+ZGF0YSk7DQor
CWZvciAoY3VycmVudF9iID0gbGgtPnRhYmxlW2ldOyBjdXJyZW50X2I7IGN1
cnJlbnRfYiA9IGN1cnJlbnRfYi0+bmV4dCkgew0KKwkgICAgZihpLCBjdXJy
ZW50X2ItPmtleSwgY3VycmVudF9iLT5kYXRhKTsNCiAJfQ0KICAgICB9DQog
fQ0KQEAgLTM0MiwxNSArMzQyLDE1IEBADQogew0KICAgICBzaXplX3QgazsN
CiAgICAgc3RydWN0IGJ1Y2tldCAqcHJldmlvdXM7DQotICAgIHN0cnVjdCBi
dWNrZXQgKmN1cnJlbnQ7DQorICAgIHN0cnVjdCBidWNrZXQgKmN1cnJlbnRf
YjsNCiANCiAgICAgbGgtPnNlYXJjaF9jYWxscysrOw0KIA0KICAgICBrID0g
YWZzX2xoYXNoX2FkZHJlc3MobGgsIGtleSk7DQotICAgIGZvciAocHJldmlv
dXMgPSAwLCBjdXJyZW50ID0gbGgtPnRhYmxlW2tdOyBjdXJyZW50Ow0KLQkg
cHJldmlvdXMgPSBjdXJyZW50LCBjdXJyZW50ID0gY3VycmVudC0+bmV4dCkg
ew0KKyAgICBmb3IgKHByZXZpb3VzID0gMCwgY3VycmVudF9iID0gbGgtPnRh
YmxlW2tdOyBjdXJyZW50X2I7DQorCSBwcmV2aW91cyA9IGN1cnJlbnRfYiwg
Y3VycmVudF9iID0gY3VycmVudF9iLT5uZXh0KSB7DQogCWxoLT5zZWFyY2hf
dGVzdHMrKzsNCi0JaWYgKGxoLT5lcXVhbChkYXRhLCBjdXJyZW50LT5kYXRh
KSkgew0KKwlpZiAobGgtPmVxdWFsKGRhdGEsIGN1cnJlbnRfYi0+ZGF0YSkp
IHsNCiANCiAJICAgIC8qDQogCSAgICAgKiBTaW5jZSB3ZSBmb3VuZCB3aGF0
IHdlIHdlcmUgbG9va2luZyBmb3IsIG1vdmUNCkBAIC0zNjYsMTIgKzM2Niwx
MiBAQA0KIAkgICAgICovDQogDQogCSAgICBpZiAocHJldmlvdXMpIHsNCi0J
CXByZXZpb3VzLT5uZXh0ID0gY3VycmVudC0+bmV4dDsNCi0JCWN1cnJlbnQt
Pm5leHQgPSBsaC0+dGFibGVba107DQotCQlsaC0+dGFibGVba10gPSBjdXJy
ZW50Ow0KKwkJcHJldmlvdXMtPm5leHQgPSBjdXJyZW50X2ItPm5leHQ7DQor
CQljdXJyZW50X2ItPm5leHQgPSBsaC0+dGFibGVba107DQorCQlsaC0+dGFi
bGVba10gPSBjdXJyZW50X2I7DQogCSAgICB9DQogDQotCSAgICByZXR1cm4g
Y3VycmVudC0+ZGF0YTsNCisJICAgIHJldHVybiBjdXJyZW50X2ItPmRhdGE7
DQogCX0NCiAgICAgfQ0KIA0KQEAgLTM4MiwxMiArMzgyLDEyIEBADQogYWZz
X2xoYXNoX3Jvc2VhcmNoKGNvbnN0IGFmc19saGFzaCAqIGxoLCB1bnNpZ25l
ZCBrZXksIGNvbnN0IHZvaWQgKmRhdGEpDQogew0KICAgICBzaXplX3QgazsN
Ci0gICAgc3RydWN0IGJ1Y2tldCAqY3VycmVudDsNCisgICAgc3RydWN0IGJ1
Y2tldCAqY3VycmVudF9iOw0KIA0KICAgICBrID0gYWZzX2xoYXNoX2FkZHJl
c3MobGgsIGtleSk7DQotICAgIGZvciAoY3VycmVudCA9IGxoLT50YWJsZVtr
XTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPm5leHQpIHsNCi0JaWYg
KGxoLT5lcXVhbChkYXRhLCBjdXJyZW50LT5kYXRhKSkgew0KLQkgICAgcmV0
dXJuIGN1cnJlbnQtPmRhdGE7DQorICAgIGZvciAoY3VycmVudF9iID0gbGgt
PnRhYmxlW2tdOyBjdXJyZW50X2I7IGN1cnJlbnRfYiA9IGN1cnJlbnRfYi0+
bmV4dCkgew0KKwlpZiAobGgtPmVxdWFsKGRhdGEsIGN1cnJlbnRfYi0+ZGF0
YSkpIHsNCisJICAgIHJldHVybiBjdXJyZW50X2ItPmRhdGE7DQogCX0NCiAg
ICAgfQ0KIA0KZGlmZiAtdSAtciAtTiBvcGVuYWZzLTEuMy43Ni5vcmlnL3Ny
Yy9hZnMvTElOVVgvb3NpX21vZHVsZS5jIG9wZW5hZnMtMS4zLjc2L3NyYy9h
ZnMvTElOVVgvb3NpX21vZHVsZS5jDQotLS0gb3BlbmFmcy0xLjMuNzYub3Jp
Zy9zcmMvYWZzL0xJTlVYL29zaV9tb2R1bGUuYwkyMDA0LTEyLTA3IDA3OjEy
OjEzLjAwMDAwMDAwMCArMDEwMA0KKysrIG9wZW5hZnMtMS4zLjc2L3NyYy9h
ZnMvTElOVVgvb3NpX21vZHVsZS5jCTIwMDQtMTItMTYgMTQ6MDI6NTQuMDAw
MDAwMDAwICswMTAwDQpAQCAtMzUsNiArMzUsOCBAQA0KICNlbmRpZg0KICNp
ZiAhZGVmaW5lZChFWFBPUlRFRF9TWVNfQ0FMTF9UQUJMRSkgJiYgZGVmaW5l
ZChIQVZFX0tFUk5FTF9MSU5VWF9TWVNDQUxMX0gpDQogI2luY2x1ZGUgPGxp
bnV4L3N5c2NhbGwuaD4NCisjZWxpZiAhZGVmaW5lZChFWFBPUlRFRF9TWVNf
Q0FMTF9UQUJMRSkgJiYgZGVmaW5lZChIQVZFX0tFUk5FTF9MSU5VWF9TWVND
QUxMU19IKQ0KKyNpbmNsdWRlIDxsaW51eC9zeXNjYWxscy5oPg0KICNlbmRp
Zg0KIA0KICNpZmRlZiBBRlNfU1BBUkM2NF9MSU5VWDI0X0VOVg0KQEAgLTY3
LDYgKzY5LDggQEANCiAjZW5kaWYNCiANCiBleHRlcm4gc3RydWN0IGZpbGVf
c3lzdGVtX3R5cGUgYWZzX2ZzX3R5cGU7DQorZXh0ZXJuIGludCBvc2lfc3lz
Y3RsX2luaXQodm9pZCk7DQorZXh0ZXJuIHZvaWQgb3NpX3N5c2N0bF9jbGVh
bih2b2lkKTsNCiANCiAjaWYgIWRlZmluZWQoQUZTX0xJTlVYMjRfRU5WKQ0K
IHN0YXRpYyBsb25nIGdldF9wYWdlX29mZnNldCh2b2lkKTsNCkBAIC0xODIs
NyArMTg2LDcgQEANCiBzdGF0aWMgc3RydWN0IHByb2NfZGlyX2VudHJ5ICpv
cGVuYWZzX3Byb2NmczsNCiANCiBzdGF0aWMgaW50DQotYWZzcHJvY19pbml0
KCkNCithZnNwcm9jX2luaXQodm9pZCkNCiB7DQogICAgIHN0cnVjdCBwcm9j
X2Rpcl9lbnRyeSAqZW50cnkxOw0KICAgICBzdHJ1Y3QgcHJvY19kaXJfZW50
cnkgKmVudHJ5MjsNCkBAIC0yMDAsNyArMjA0LDcgQEANCiB9DQogDQogc3Rh
dGljIHZvaWQNCi1hZnNwcm9jX2V4aXQoKQ0KK2Fmc3Byb2NfZXhpdCh2b2lk
KQ0KIHsNCiAgICAgcmVtb3ZlX3Byb2NfZW50cnkoUFJPQ19DRUxMU0VSVkRC
X05BTUUsIG9wZW5hZnNfcHJvY2ZzKTsNCiAgICAgcmVtb3ZlX3Byb2NfZW50
cnkoUFJPQ19TWVNDQUxMX05BTUUsIG9wZW5hZnNfcHJvY2ZzKTsNCkBAIC0y
MzMsOSArMjM3LDkgQEANCiB7DQogICAgIF9fYXNtX18gX192b2xhdGlsZV9f
KCJhbGxvYyByNDIgPSBhci5wZnMsIDgsIDMsIDYsIDBcblx0IiAibW92IHI0
MSA9IGIwXG5cdCIJLyogc2F2ZSBycCAqLw0KIAkJCSAibW92IG91dDAgPSBp
bjBcblx0IiAibW92IG91dDEgPSBpbjFcblx0IiAibW92IG91dDIgPSBpbjJc
blx0IiAibW92IG91dDMgPSBpbjNcblx0IiAibW92IG91dDQgPSBpbjRcblx0
IiAibW92IG91dDUgPSBncFxuXHQiCS8qIHNhdmUgZ3AgKi8NCi0JCQkgIjs7
XG4iICIuTDE6ICAgIG1vdiByMyA9IGlwXG5cdCIgIjs7XG5cdCIgImFkZGwg
cjE1PS5mcHRyX2Fmc19zeXNjYWxsLS5MMSxyM1xuXHQiICI7O1xuXHQiICJs
ZDggcjE1PVtyMTVdXG5cdCIgIjs7XG5cdCIgImxkOCByMTY9W3IxNV0sOFxu
XHQiICI7O1xuXHQiICJsZDggZ3A9W3IxNV1cblx0IiAibW92IGI2PXIxNlxu
XHQiICJici5jYWxsLnNwdGsubWFueSBiMCA9IGI2XG5cdCIgIjs7XG5cdCIg
Im1vdiBhci5wZnMgPSByNDJcblx0IiAibW92IGIwID0gcjQxXG5cdCIgIm1v
diBncCA9IHI0OFxuXHQiCS8qIHJlc3RvcmUgZ3AgKi8NCisJCQkgIjs7XG4i
ICIuTDE6XG5cdCIgIm1vdiByMyA9IGlwXG5cdCIgIjs7XG5cdCIgImFkZGwg
cjE1PS5mcHRyX2Fmc19zeXNjYWxsLS5MMSxyM1xuXHQiICI7O1xuXHQiICJs
ZDggcjE1PVtyMTVdXG5cdCIgIjs7XG5cdCIgImxkOCByMTY9W3IxNV0sOFxu
XHQiICI7O1xuXHQiICJsZDggZ3A9W3IxNV1cblx0IiAibW92IGI2PXIxNlxu
XHQiICJici5jYWxsLnNwdGsubWFueSBiMCA9IGI2XG5cdCIgIjs7XG5cdCIg
Im1vdiBhci5wZnMgPSByNDJcblx0IiAibW92IGIwID0gcjQxXG5cdCIgIm1v
diBncCA9IHI0OFxuXHQiCS8qIHJlc3RvcmUgZ3AgKi8NCiAJCQkgImJyLnJl
dC5zcHRrLm1hbnkgYjBcbiIgIi5mcHRyX2Fmc19zeXNjYWxsOlxuXHQiDQot
CQkJICJkYXRhOCBAZnB0cihhZnNfc3lzY2FsbCkiKTsNCisJCQkgImRhdGE4
IEBmcHRyKGFmc19zeXNjYWxsKVxuXHQiICIuc2tpcCA4Iik7DQogfQ0KIA0K
IGFzbWxpbmthZ2UgbG9uZw0KQEAgLTI0Myw5ICsyNDcsOSBAQA0KIHsNCiAg
ICAgX19hc21fXyBfX3ZvbGF0aWxlX18oImFsbG9jIHI0MiA9IGFyLnBmcywg
OCwgMywgNiwgMFxuXHQiICJtb3YgcjQxID0gYjBcblx0IgkvKiBzYXZlIHJw
ICovDQogCQkJICJtb3Ygb3V0MCA9IGluMFxuXHQiICJtb3Ygb3V0MSA9IGlu
MVxuXHQiICJtb3Ygb3V0MiA9IGluMlxuXHQiICJtb3Ygb3V0MyA9IGluM1xu
XHQiICJtb3Ygb3V0NCA9IGluNFxuXHQiICJtb3Ygb3V0NSA9IGdwXG5cdCIJ
Lyogc2F2ZSBncCAqLw0KLQkJCSAiOztcbiIgIi5MMjogICAgbW92IHIzID0g
aXBcblx0IiAiOztcblx0IiAiYWRkbCByMTU9LmZwdHJfYWZzX3hzZXRncm91
cHMgLSAuTDIscjNcblx0IiAiOztcblx0IiAibGQ4IHIxNT1bcjE1XVxuXHQi
ICI7O1xuXHQiICJsZDggcjE2PVtyMTVdLDhcblx0IiAiOztcblx0IiAibGQ4
IGdwPVtyMTVdXG5cdCIgIm1vdiBiNj1yMTZcblx0IiAiYnIuY2FsbC5zcHRr
Lm1hbnkgYjAgPSBiNlxuXHQiICI7O1xuXHQiICJtb3YgYXIucGZzID0gcjQy
XG5cdCIgIm1vdiBiMCA9IHI0MVxuXHQiICJtb3YgZ3AgPSByNDhcblx0Igkv
KiByZXN0b3JlIGdwICovDQorCQkJICI7O1xuIiAiLkwyOlxuXHQiICJtb3Yg
cjMgPSBpcFxuXHQiICI7O1xuXHQiICJhZGRsIHIxNT0uZnB0cl9hZnNfeHNl
dGdyb3VwcyAtIC5MMixyM1xuXHQiICI7O1xuXHQiICJsZDggcjE1PVtyMTVd
XG5cdCIgIjs7XG5cdCIgImxkOCByMTY9W3IxNV0sOFxuXHQiICI7O1xuXHQi
ICJsZDggZ3A9W3IxNV1cblx0IiAibW92IGI2PXIxNlxuXHQiICJici5jYWxs
LnNwdGsubWFueSBiMCA9IGI2XG5cdCIgIjs7XG5cdCIgIm1vdiBhci5wZnMg
PSByNDJcblx0IiAibW92IGIwID0gcjQxXG5cdCIgIm1vdiBncCA9IHI0OFxu
XHQiCS8qIHJlc3RvcmUgZ3AgKi8NCiAJCQkgImJyLnJldC5zcHRrLm1hbnkg
YjBcbiIgIi5mcHRyX2Fmc194c2V0Z3JvdXBzOlxuXHQiDQotCQkJICJkYXRh
OCBAZnB0cihhZnNfeHNldGdyb3VwcykiKTsNCisJCQkgImRhdGE4IEBmcHRy
KGFmc194c2V0Z3JvdXBzKVxuXHQiICIuc2tpcCA4Iik7DQogfQ0KIA0KIHN0
cnVjdCBmcHRyIHsNCkBAIC0yODEsMTcgKzI4NSwyOSBAQA0KICAgICB1bnNp
Z25lZCBsb25nIGtlcm5lbF9ncCA9IDA7DQogICAgIHN0YXRpYyBzdHJ1Y3Qg
ZnB0ciBzeXNfc2V0Z3JvdXBzOw0KICNlbmRpZiAvKiBkZWZpbmVkKEFGU19J
QTY0X0xJTlVYMjBfRU5WKSAqLw0KKyNpZiBkZWZpbmVkKEFGU19MSU5VWDI2
X0VOVikNCisgICAgZXh0ZXJuIGxvbmcgYWZzX3hzZXRncm91cHMoaW50IGdp
ZHNldHNpemUsIGdpZF90IF9fdXNlciAqZ3JvdXBsaXN0KTsNCisjZWxzZQ0K
ICAgICBleHRlcm4gbG9uZyBhZnNfeHNldGdyb3VwcygpOw0KKyNlbmRpZiAv
KiBBRlNfTElOVVgyNl9FTlYgKi8NCiAjaWYgZGVmaW5lZChfX05SX3NldGdy
b3VwczMyKQ0KKyMgaWYgZGVmaW5lZChBRlNfTElOVVgyNl9FTlYpDQorICAg
IGV4dGVybiBsb25nIGFmc194c2V0Z3JvdXBzMzIoaW50IGdpZHNldHNpemUs
IGdpZF90ICogZ3JvdXBsaXN0KTsNCisjIGVsc2UNCiAgICAgZXh0ZXJuIGlu
dCBhZnNfeHNldGdyb3VwczMyKCk7DQorIyBlbmRpZiAvKiBBRlNfTElOVVgy
Nl9FTlYgKi8NCiAjZW5kaWYgLyogX19OUl9zZXRncm91cHMzMiAqLw0KLSNp
ZiBkZWZpbmVkKEFGU19TUEFSQzY0X0xJTlVYMjBfRU5WKSB8fCBkZWZpbmVk
IChBRlNfQU1ENjRfTElOVVgyMF9FTlYpIHx8IGRlZmluZWQoQUZTX1BQQzY0
X0xJTlVYMjBfRU5WKQ0KKyNpZiBkZWZpbmVkKEFGU19TUEFSQzY0X0xJTlVY
MjBfRU5WKSB8fCBkZWZpbmVkIChBRlNfQU1ENjRfTElOVVgyMF9FTlYpIHx8
IGRlZmluZWQoQUZTX1BQQzY0X0xJTlVYMjBfRU5WKSB8fCBkZWZpbmVkIChB
RlNfSUE2NF9MSU5VWDIwX0VOVikNCisjaWYgZGVmaW5lZChBRlNfTElOVVgy
Nl9FTlYpDQorICAgIGV4dGVybiBsb25nIGFmczMyX3hzZXRncm91cHMgKGlu
dCBnaWRzZXRzaXplLCB1MTYgKiBncm91cGxpc3QpOw0KKyNlbHNlDQogICAg
IGV4dGVybiBpbnQgYWZzMzJfeHNldGdyb3VwcygpOw0KKyNlbmRpZiAvKkFG
U19MSU5VWDI2X0VOViAqLw0KICNpZiAoZGVmaW5lZChfX05SX3NldGdyb3Vw
czMyKSAmJiBkZWZpbmVkKEFGU19TUEFSQzY0X0xJTlVYMjBfRU5WKSkNCi0g
ICAgZXh0ZXJuIGludCBhZnMzMl94c2V0Z3JvdXBzMzIoKTsNCisgICAgZXh0
ZXJuIGxvbmcgYWZzMzJfeHNldGdyb3VwczMyKGludCBnaWRzZXRzaXplLCBn
aWRfdCAqIGdyb3VwbGlzdCk7DQogI2VuZGlmIC8qIGRlZmluZWQoX19OUl9z
ZXRncm91cHMzMikgJiYgZGVmaW5lZChBRlNfU1BBUkM2NF9MSU5VWDIwX0VO
VikgKi8NCiAjaWYgKGRlZmluZWQoX19OUl9pYTMyX3NldGdyb3VwczMyKSAm
JiBkZWZpbmVkKEFGU19BTUQ2NF9MSU5VWDIwX0VOVikpDQotICAgIGV4dGVy
biBpbnQgYWZzMzJfeHNldGdyb3VwczMyKCk7DQorICAgIGV4dGVybiBsb25n
IGFmczMyX3hzZXRncm91cHMzMihpbnQgZ2lkc2V0c2l6ZSwgZ2lkX3QgKiBn
cm91cGxpc3QpOw0KICNlbmRpZiAvKiAoZGVmaW5lZChfX05SX2lhMzJfc2V0
Z3JvdXBzMzIpICYmIGRlZmluZWQoQUZTX0FNRDY0X0xJTlVYMjBfRU5WKSAq
Lw0KICNlbmRpZiAvKiBBRlNfU1BBUkM2NF9MSU5VWDIwX0VOViB8fCBBRlNf
QU1ENjRfTElOVVgyMF9FTlYgfHwgQUZTX1BQQzY0X0xJTlVYMjBfRU5WICov
DQogDQpAQCAtMzY5LDcgKzM4NSwxNiBAQA0KICAgICBkYXRhbGVuID0gMTYz
ODQ7DQogI2VuZGlmDQogICAgIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwg
ZGF0YWxlbjsgcHRyKyssIG9mZnNldCsrKSB7DQotI2lmIGRlZmluZWQoQUZT
X0lBNjRfTElOVVgyMF9FTlYpDQorI2lmIGRlZmluZWQoQUZTX0lBNjRfTElO
VVgyNl9FTlYpDQorCXVuc2lnbmVkIGxvbmcgY2xvc2VfaXAgPQ0KKwkgICAg
KHVuc2lnbmVkIGxvbmcpKChzdHJ1Y3QgZnB0ciAqKSZzeXNfY2xvc2UpLT5p
cDsNCisJdW5zaWduZWQgbG9uZyBpb2N0bF9pcCA9DQorCSAgICAodW5zaWdu
ZWQgbG9uZykoKHN0cnVjdCBmcHRyICopJnN5c19pb2N0bCktPmlwOw0KKwlp
ZiAocHRyWzBdID09IGNsb3NlX2lwICYmIHB0cltfX05SX2lvY3RsIC0gX19O
Ul9jbG9zZV0gPT0gaW9jdGxfaXApIHsNCisJICAgIHN5c19jYWxsX3RhYmxl
ID0gKHZvaWQgKikmKHB0clstMSAqIChfX05SX2Nsb3NlIC0gMTAyNCldKTsN
CisJICAgIGJyZWFrOw0KKwl9DQorI2VsaWYgZGVmaW5lZChBRlNfSUE2NF9M
SU5VWDIwX0VOVikNCiAJdW5zaWduZWQgbG9uZyBjbG9zZV9pcCA9DQogCSAg
ICAodW5zaWduZWQgbG9uZykoKHN0cnVjdCBmcHRyICopJnN5c19jbG9zZSkt
PmlwOw0KIAl1bnNpZ25lZCBsb25nIGNoZGlyX2lwID0NCkBAIC00MTMsNyAr
NDM4LDExIEBADQogCXN5c19jYWxsX3RhYmxlID0gMDsNCiAjZW5kaWYgLyog
RVhQT1JURURfS0FMTFNZTVNfQUREUkVTUyAqLw0KICAgICBpZiAoIXN5c19j
YWxsX3RhYmxlKSB7DQorI2lmZGVmIEFGU19BTUQ2NF9MSU5VWDIwX0VOVg0K
KwlwcmludGYoIkZhaWxlZCB0byBmaW5kIGFkZHJlc3Mgb2Ygc3lzX2NhbGxf
dGFibGUsIHRyeWluZyBpYTMyX3N5c19jYWxsX3RhYmxlIG9uIHRoaXMgcGxh
dGZvcm1cbiIpOw0KKyNlbHNlDQogCXByaW50ZigiRmFpbGVkIHRvIGZpbmQg
YWRkcmVzcyBvZiBzeXNfY2FsbF90YWJsZVxuIik7DQorI2VuZGlmIC8qIEFG
U19BTUQ2NF9MSU5VWDIwX0VOViAqLw0KICAgICB9IGVsc2Ugew0KIAlwcmlu
dGYoIkZvdW5kIHN5c19jYWxsX3RhYmxlIGF0ICVseFxuIiwgKHVuc2lnbmVk
IGxvbmcpc3lzX2NhbGxfdGFibGUpOw0KICNpZiBkZWZpbmVkKEFGU19TUEFS
QzY0X0xJTlVYMjBfRU5WKSB8fCBkZWZpbmVkKEFGU19TMzkwWF9MSU5VWDI0
X0VOVikNCkBAIC00MjEsNjkgKzQ1MCw2IEBADQogI2VuZGlmIC8qIEFGU19T
UEFSQzY0X0xJTlVYMjBfRU5WICovDQogI2VuZGlmIC8qIEVYUE9SVEVEX1NZ
U19DQUxMX1RBQkxFICovDQogDQotI2lmZGVmIEFGU19BTUQ2NF9MSU5VWDIw
X0VOVg0KLSNpZm5kZWYgRVhQT1JURURfSUEzMl9TWVNfQ0FMTF9UQUJMRQ0K
LQlpYTMyX3N5c19jYWxsX3RhYmxlID0gMDsNCi0jaWZkZWYgRVhQT1JURURf
S0FMTFNZTVNfU1lNQk9MDQotCXJldCA9IDE7DQotCXRva2VuID0gMDsNCi0J
d2hpbGUgKHJldCkgew0KLQkgICAgc3ltX3N0YXJ0ID0gMDsNCi0JICAgIHJl
dCA9IGthbGxzeW1zX3N5bWJvbF90b19hZGRyZXNzKCJpYTMyX3N5c19jYWxs
X3RhYmxlIiwgJnRva2VuLA0KLQkJCQkJICAgICAmbW9kX25hbWUsICZtb2Rf
c3RhcnQsICZtb2RfZW5kLA0KLQkJCQkJICAgICAmc2VjX25hbWUsICZzZWNf
c3RhcnQsICZzZWNfZW5kLA0KLQkJCQkJICAgICAmc3ltX25hbWUsICZzeW1f
c3RhcnQsICZzeW1fZW5kKTsNCi0JICAgIGlmIChyZXQgJiYgIXN0cmNtcCht
b2RfbmFtZSwgImtlcm5lbCIpKQ0KLQkJYnJlYWs7DQotCX0NCi0JaWYgKHJl
dCAmJiBzeW1fc3RhcnQpIHsNCi0JICAgIGlhMzJfc3lzX2NhbGxfdGFibGUg
PSBzeW1fc3RhcnQ7DQotCX0NCi0jZWxzZSAvKiBFWFBPUlRFRF9LQUxMU1lN
U19TWU1CT0wgKi8NCi0jaWZkZWYgRVhQT1JURURfS0FMTFNZTVNfQUREUkVT
Uw0KLQlyZXQgPSBrYWxsc3ltc19hZGRyZXNzX3RvX3N5bWJvbCgodW5zaWdu
ZWQgbG9uZykNCi0JCQkJCSAmaW50ZXJydXB0aWJsZV9zbGVlcF9vbiwNCi0J
CQkJCSAmbW9kX25hbWUsICZtb2Rfc3RhcnQsICZtb2RfZW5kLA0KLQkJCQkJ
ICZzZWNfbmFtZSwgJnNlY19zdGFydCwgJnNlY19lbmQsDQotCQkJCQkgJnN5
bV9uYW1lLCAmc3ltX3N0YXJ0LCAmc3ltX2VuZCk7DQotCXB0ciA9ICh1bnNp
Z25lZCBsb25nICopc2VjX3N0YXJ0Ow0KLQlkYXRhbGVuID0gKHNlY19lbmQg
LSBzZWNfc3RhcnQpIC8gc2l6ZW9mKHVuc2lnbmVkIGxvbmcpOw0KLSNlbHNl
IC8qIEVYUE9SVEVEX0tBTExTWU1TX0FERFJFU1MgKi8NCi0jaWYgZGVmaW5l
ZChBRlNfQU1ENjRfTElOVVgyMF9FTlYpDQotCXB0ciA9ICh1bnNpZ25lZCBs
b25nICopJmludGVycnVwdGlibGVfc2xlZXBfb247DQotCWRhdGFsZW4gPSAw
eDE4MDAwMCAvIHNpemVvZihwdHIpOw0KLSNlbHNlIC8qIEFGU19BTUQ2NF9M
SU5VWDIwX0VOViAqLw0KLQlwdHIgPSAodW5zaWduZWQgbG9uZyAqKSZpbnRl
cnJ1cHRpYmxlX3NsZWVwX29uOw0KLQlkYXRhbGVuID0gMTYzODQ7DQotI2Vu
ZGlmIC8qIEFGU19BTUQ2NF9MSU5VWDIwX0VOViAqLw0KLSNlbmRpZiAvKiBF
WFBPUlRFRF9LQUxMU1lNU19BRERSRVNTICovDQotCWZvciAob2Zmc2V0ID0g
MDsgb2Zmc2V0IDwgZGF0YWxlbjsgcHRyKyssIG9mZnNldCsrKSB7DQotCSAg
ICBpZiAocHRyWzBdID09ICh1bnNpZ25lZCBsb25nKSZzeXNfZXhpdA0KLQkJ
JiYgcHRyW19fTlJfaWEzMl9vcGVuIC0gX19OUl9pYTMyX2V4aXRdID09DQot
CQkodW5zaWduZWQgbG9uZykmc3lzX29wZW4pIHsNCi0JCSAgICBpYTMyX3N5
c19jYWxsX3RhYmxlID0gcHRyIC0gX19OUl9pYTMyX2V4aXQ7DQotCQkgICAg
YnJlYWs7DQotCSAgICB9DQotCX0NCi0jaWZkZWYgRVhQT1JURURfS0FMTFNZ
TVNfQUREUkVTUw0KLQlyZXQgPSBrYWxsc3ltc19hZGRyZXNzX3RvX3N5bWJv
bCgodW5zaWduZWQgbG9uZylpYTMyX3N5c19jYWxsX3RhYmxlLA0KLQkJCQkJ
ICZtb2RfbmFtZSwgJm1vZF9zdGFydCwgJm1vZF9lbmQsDQotCQkJCQkgJnNl
Y19uYW1lLCAmc2VjX3N0YXJ0LCAmc2VjX2VuZCwNCi0JCQkJCSAmc3ltX25h
bWUsICZzeW1fc3RhcnQsICZzeW1fZW5kKTsNCi0JaWYgKHJldCAmJiBzdHJj
bXAoc3ltX25hbWUsICJpYTMyX3N5c19jYWxsX3RhYmxlIikpDQotCSAgICBp
YTMyX3N5c19jYWxsX3RhYmxlID0gMDsNCi0jZW5kaWYgLyogRVhQT1JURURf
S0FMTFNZTVNfQUREUkVTUyAqLw0KLSNlbmRpZiAvKiBFWFBPUlRFRF9LQUxM
U1lNU19TWU1CT0wgKi8NCi0JaWYgKCFpYTMyX3N5c19jYWxsX3RhYmxlKSB7
DQotCSAgICBwcmludGYoIldhcm5pbmc6IEZhaWxlZCB0byBmaW5kIGFkZHJl
c3Mgb2YgaWEzMl9zeXNfY2FsbF90YWJsZVxuIik7DQotCX0gZWxzZSB7DQot
CSAgICBwcmludGYoIkZvdW5kIGlhMzJfc3lzX2NhbGxfdGFibGUgYXQgJWx4
XG4iLCAodW5zaWduZWQgbG9uZylpYTMyX3N5c19jYWxsX3RhYmxlKTsNCi0J
fQ0KLSNlbHNlDQotCXByaW50ZigiRm91bmQgaWEzMl9zeXNfY2FsbF90YWJs
ZSBhdCAlbHhcbiIsICh1bnNpZ25lZCBsb25nKWlhMzJfc3lzX2NhbGxfdGFi
bGUpOw0KLSNlbmRpZiAvKiBJQTMyX1NZU19DQUxMX1RBQkxFICovDQotI2Vu
ZGlmDQotDQogCS8qIEluaXRpYWxpemUgcG9pbnRlcnMgdG8ga2VybmVsIHN5
c2NhbGxzLiAqLw0KICNpZiAhZGVmaW5lZChBRlNfTElOVVgyNF9FTlYpDQog
CXN5c19zZXR0aW1lb2ZkYXlwID0gU1lTQ0FMTDJQT0lOVEVSIHN5c19jYWxs
X3RhYmxlW19TKF9fTlJfc2V0dGltZW9mZGF5KV07DQpAQCAtNTEyLDE2ICs0
NzgsNzQgQEANCiAJc3lzX2NhbGxfdGFibGUzMltfX05SX2Fmc19zeXNjYWxs
XSA9IFBPSU5URVIyU1lTQ0FMTCBhZnNfc3lzY2FsbDMyOw0KICNlbmRpZg0K
ICNlbmRpZiAvKiBBRlNfSUE2NF9MSU5VWDIwX0VOViAqLw0KLSNpZmRlZiBB
RlNfQU1ENjRfTElOVVgyMF9FTlYNCi0JaWYgKGlhMzJfc3lzX2NhbGxfdGFi
bGUpIHsNCi0JICAgIGlhMzJfbmlfc3lzY2FsbCA9IGlhMzJfc3lzX2NhbGxf
dGFibGVbX19OUl9pYTMyX2Fmc19zeXNjYWxsXTsNCi0JICAgIGlhMzJfc3lz
X2NhbGxfdGFibGVbX19OUl9pYTMyX2Fmc19zeXNjYWxsXSA9DQotCQkgICAg
UE9JTlRFUjJTWVNDQUxMIGFmc19zeXNjYWxsOw0KLQl9DQotI2VuZGlmIC8q
IEFGU19TMzkwX0xJTlVYMjJfRU5WICovDQogI2lmbmRlZiBFWFBPUlRFRF9T
WVNfQ0FMTF9UQUJMRQ0KICAgICB9DQogI2VuZGlmIC8qIEVYUE9SVEVEX1NZ
U19DQUxMX1RBQkxFICovDQorDQorI2lmZGVmIEFGU19BTUQ2NF9MSU5VWDIw
X0VOVg0KKyNpZm5kZWYgRVhQT1JURURfSUEzMl9TWVNfQ0FMTF9UQUJMRQ0K
KyAgICBpYTMyX3N5c19jYWxsX3RhYmxlID0gMDsNCisjaWZkZWYgRVhQT1JU
RURfS0FMTFNZTVNfU1lNQk9MDQorICAgIHJldCA9IDE7DQorICAgIHRva2Vu
ID0gMDsNCisgICAgd2hpbGUgKHJldCkgew0KKyAgICAgICAgc3ltX3N0YXJ0
ID0gMDsNCisgICAgICAgIHJldCA9IGthbGxzeW1zX3N5bWJvbF90b19hZGRy
ZXNzKCJpYTMyX3N5c19jYWxsX3RhYmxlIiwgJnRva2VuLA0KKwkJCQkJICZt
b2RfbmFtZSwgJm1vZF9zdGFydCwgJm1vZF9lbmQsDQorCQkJCQkgJnNlY19u
YW1lLCAmc2VjX3N0YXJ0LCAmc2VjX2VuZCwNCisJCQkJCSAmc3ltX25hbWUs
ICZzeW1fc3RhcnQsICZzeW1fZW5kKTsNCisgICAgICAgIGlmIChyZXQgJiYg
IXN0cmNtcChtb2RfbmFtZSwgImtlcm5lbCIpKQ0KKwkJYnJlYWs7DQorICAg
IH0NCisgICAgaWYgKHJldCAmJiBzeW1fc3RhcnQpIHsNCisgICAgICAgIGlh
MzJfc3lzX2NhbGxfdGFibGUgPSBzeW1fc3RhcnQ7DQorICAgIH0NCisjZWxz
ZSAvKiBFWFBPUlRFRF9LQUxMU1lNU19TWU1CT0wgKi8NCisjaWZkZWYgRVhQ
T1JURURfS0FMTFNZTVNfQUREUkVTUw0KKyAgICAgcmV0ID0ga2FsbHN5bXNf
YWRkcmVzc190b19zeW1ib2woKHVuc2lnbmVkIGxvbmcpDQorCQkJCQkmaW50
ZXJydXB0aWJsZV9zbGVlcF9vbiwNCisJCQkJCSZtb2RfbmFtZSwgJm1vZF9z
dGFydCwgJm1vZF9lbmQsDQorCQkJCQkmc2VjX25hbWUsICZzZWNfc3RhcnQs
ICZzZWNfZW5kLA0KKwkJCQkJJnN5bV9uYW1lLCAmc3ltX3N0YXJ0LCAmc3lt
X2VuZCk7DQorICAgICBwdHIgPSAodW5zaWduZWQgbG9uZyAqKXNlY19zdGFy
dDsNCisgICAgIGRhdGFsZW4gPSAoc2VjX2VuZCAtIHNlY19zdGFydCkgLyBz
aXplb2YodW5zaWduZWQgbG9uZyk7DQorI2Vsc2UgLyogRVhQT1JURURfS0FM
TFNZTVNfQUREUkVTUyAqLw0KKyAgICAgcHRyID0gKHVuc2lnbmVkIGxvbmcg
KikmaW50ZXJydXB0aWJsZV9zbGVlcF9vbjsNCisgICAgIGRhdGFsZW4gPSAw
eDE4MDAwMCAvIHNpemVvZihwdHIpOw0KKyNlbmRpZiAvKiBFWFBPUlRFRF9L
QUxMU1lNU19BRERSRVNTICovDQorICAgIGZvciAob2Zmc2V0ID0gMDsgb2Zm
c2V0IDwgZGF0YWxlbjsgcHRyKyssIG9mZnNldCsrKSB7DQorICAgICAgICBp
ZiAoKHB0clswXSA9PSAodW5zaWduZWQgbG9uZykmc3lzX2V4aXQgKSAmJg0K
KyAgICAgICAgICAgIChwdHJbX19OUl9pYTMyX29wZW4gLSBfX05SX2lhMzJf
ZXhpdF0gPT0gKHVuc2lnbmVkIGxvbmcpJnN5c19vcGVuKQ0KKyAgICAgICAg
ICAgKSB7DQorICAgIAkgICAgaWEzMl9zeXNfY2FsbF90YWJsZSA9IHB0ciAt
IF9fTlJfaWEzMl9leGl0Ow0KKyAgICAJICAgIGJyZWFrOw0KKyAgICAgICAg
fQ0KKyAgICB9DQorI2lmZGVmIEVYUE9SVEVEX0tBTExTWU1TX0FERFJFU1MN
CisgICAgcmV0ID0ga2FsbHN5bXNfYWRkcmVzc190b19zeW1ib2woKHVuc2ln
bmVkIGxvbmcpaWEzMl9zeXNfY2FsbF90YWJsZSwNCisJCQkJJm1vZF9uYW1l
LCAmbW9kX3N0YXJ0LCAmbW9kX2VuZCwNCisJCQkJJnNlY19uYW1lLCAmc2Vj
X3N0YXJ0LCAmc2VjX2VuZCwNCisJCQkJJnN5bV9uYW1lLCAmc3ltX3N0YXJ0
LCAmc3ltX2VuZCk7DQorICAgIGlmIChyZXQgJiYgc3RyY21wKHN5bV9uYW1l
LCAiaWEzMl9zeXNfY2FsbF90YWJsZSIpKSB7DQorICAgICAgICBpYTMyX3N5
c19jYWxsX3RhYmxlID0gMDsNCisgICAgfQ0KKyNlbmRpZiAvKiBFWFBPUlRF
RF9LQUxMU1lNU19BRERSRVNTICovDQorI2VuZGlmIC8qIEVYUE9SVEVEX0tB
TExTWU1TX1NZTUJPTCAqLw0KKyAgICBpZiAoIWlhMzJfc3lzX2NhbGxfdGFi
bGUpIHsNCisgICAgICAgIHByaW50ZigiV2FybmluZzogRmFpbGVkIHRvIGZp
bmQgYWRkcmVzcyBvZiBpYTMyX3N5c19jYWxsX3RhYmxlXG4iKTsNCisgICAg
fSBlbHNlIHsNCisgICAgICAgIHByaW50ZigiRm91bmQgaWEzMl9zeXNfY2Fs
bF90YWJsZSBhdCAlbHhcbiIsICh1bnNpZ25lZCBsb25nKWlhMzJfc3lzX2Nh
bGxfdGFibGUpOw0KKyAgICB9DQorI2Vsc2UNCisgICAgcHJpbnRmKCJGb3Vu
ZCBpYTMyX3N5c19jYWxsX3RhYmxlIGF0ICVseFxuIiwgKHVuc2lnbmVkIGxv
bmcpaWEzMl9zeXNfY2FsbF90YWJsZSk7DQorI2VuZGlmIC8qIElBMzJfU1lT
X0NBTExfVEFCTEUgKi8NCisgICAgaWYgKGlhMzJfc3lzX2NhbGxfdGFibGUp
IHsNCisgICAgICAgIGlhMzJfbmlfc3lzY2FsbCA9IGlhMzJfc3lzX2NhbGxf
dGFibGVbX19OUl9pYTMyX2Fmc19zeXNjYWxsXTsNCisgICAgICAgIGlhMzJf
c3lzX2NhbGxfdGFibGVbX19OUl9pYTMyX2Fmc19zeXNjYWxsXSA9IA0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUE9JTlRF
UjJTWVNDQUxMIGFmc19zeXNjYWxsOw0KKyAgICB9DQorI2VuZGlmIC8qIEFG
U19BTUQ2NF9MSU5VWDIwX0VOViAqLw0KKw0KICAgICBvc2lfSW5pdCgpOw0K
ICAgICByZWdpc3Rlcl9maWxlc3lzdGVtKCZhZnNfZnNfdHlwZSk7DQogDQpA
QCAtNTUzLDYgKzU3Nyw5IEBADQogCSAgICBQT0lOVEVSMlNZU0NBTEwgYWZz
MzJfeHNldGdyb3VwczMyOw0KICNlbmRpZiAvKiBBRlNfU1BBUkM2NF9MSU5V
WDIwX0VOViAqLw0KICNlbmRpZiAvKiBfX05SX3NldGdyb3VwczMyICovDQor
I2VuZGlmIC8qIEFGU19JQTY0X0xJTlVYMjBfRU5WICovDQorICAgIH0gDQor
DQogI2lmZGVmIEFGU19BTUQ2NF9MSU5VWDIwX0VOVg0KICAgICBpZiAoaWEz
Ml9zeXNfY2FsbF90YWJsZSkgew0KIAlzeXMzMl9zZXRncm91cHNwID0NCkBA
IC01NjcsOSArNTk0LDYgQEANCiAjZW5kaWYgLyogX19OUl9pYTMyX3NldGdy
b3VwczMyICovDQogICAgIH0NCiAjZW5kaWYgLyogQUZTX0FNRDY0X0xJTlVY
MjBfRU5WICovDQotI2VuZGlmIC8qIEFGU19JQTY0X0xJTlVYMjBfRU5WICov
DQotDQotICAgIH0NCiANCiAgICAgb3NpX3N5c2N0bF9pbml0KCk7DQogICAg
IGFmc3Byb2NfaW5pdCgpOw0KQEAgLTYxMiwxMCArNjM2LDEwIEBADQogCSAg
ICBQT0lOVEVSMlNZU0NBTEwgc3lzMzJfc2V0Z3JvdXBzcDsNCiAJaWEzMl9z
eXNfY2FsbF90YWJsZVtfX05SX2lhMzJfYWZzX3N5c2NhbGxdID0NCiAJICAg
IFBPSU5URVIyU1lTQ0FMTCBpYTMyX25pX3N5c2NhbGw7DQotIyBpZiBkZWZp
bmVkKF9fTlJfc2V0Z3JvdXBzMzIpDQorIyBpZiBkZWZpbmVkKF9fTlJfaWEz
Ml9zZXRncm91cHMzMikNCiAJaWEzMl9zeXNfY2FsbF90YWJsZVtfX05SX2lh
MzJfc2V0Z3JvdXBzMzJdID0NCiAJICAgIFBPSU5URVIyU1lTQ0FMTCBzeXMz
Ml9zZXRncm91cHMzMnA7DQotI2VuZGlmDQorI2VuZGlmIC8qIF9fTlJfaWEz
Ml9zZXRncm91cHMzMiAqLw0KICAgICB9DQogI2VuZGlmDQogICAgIH0NCkBA
IC02MzIsNiArNjU2LDkgQEANCiBtb2R1bGVfaW5pdChhZnNfaW5pdCk7DQog
bW9kdWxlX2V4aXQoYWZzX2NsZWFudXApOw0KICNlbmRpZg0KKyNpZiBMSU5V
WF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDApDQorTU9E
VUxFX0xJQ0VOU0UoIklCTSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCIp
Ow0KKyNlbmRpZg0KIA0KIA0KICNpZiAhZGVmaW5lZChBRlNfTElOVVgyNF9F
TlYpDQpkaWZmIC11IC1yIC1OIG9wZW5hZnMtMS4zLjc2Lm9yaWcvc3JjL2Fm
cy9hZnMuaCBvcGVuYWZzLTEuMy43Ni9zcmMvYWZzL2Fmcy5oDQotLS0gb3Bl
bmFmcy0xLjMuNzYub3JpZy9zcmMvYWZzL2Fmcy5oCTIwMDQtMTEtMDkgMTg6
MTQ6NTcuMDAwMDAwMDAwICswMTAwDQorKysgb3BlbmFmcy0xLjMuNzYvc3Jj
L2Fmcy9hZnMuaAkyMDA0LTEyLTE2IDE0OjA0OjI4LjAwMDAwMDAwMCArMDEw
MA0KQEAgLTQzLDcgKzQzLDcgQEANCiAjaWYgICAgIGRlZmluZWQoQUZTX0hQ
VVgxMDJfRU5WKQ0KICNkZWZpbmUgQUZTX0ZMT0NLICAgICAgIGtfZmxvY2sN
CiAjZWxzZQ0KLSNpZiAgICAgZGVmaW5lZChBRlNfU1VONTZfRU5WKSB8fCAo
ZGVmaW5lZChBRlNfTElOVVgyNF9FTlYpICYmICFkZWZpbmVkKEFGU19QUEM2
NF9MSU5VWDI2X0VOVikgJiYgIWRlZmluZWQoQUZTX0FNRDY0X0xJTlVYMjZf
RU5WKSkNCisjaWYgICAgIGRlZmluZWQoQUZTX1NVTjU2X0VOVikgfHwgKGRl
ZmluZWQoQUZTX0xJTlVYMjRfRU5WKSAmJiAhZGVmaW5lZChBRlNfUFBDNjRf
TElOVVgyNl9FTlYpICYmICFkZWZpbmVkKEFGU19BTUQ2NF9MSU5VWDI2X0VO
VikgJiYgIWRlZmluZWQoQUZTX0lBNjRfTElOVVgyNl9FTlYpKQ0KICNkZWZp
bmUgQUZTX0ZMT0NLICAgICAgIGZsb2NrNjQNCiAjZWxzZQ0KICNkZWZpbmUg
QUZTX0ZMT0NLICAgICAgIGZsb2NrDQo=

--8323584-2132504408-1103222023=:26077--