drm: Branch 'master' - 6 commits

[email protected] (GitLab Mirror) Mon, 18 Mar 2019 15:51:06 +0000 (UTC)
Newsgroups gmane.comp.video.dri.patches
Message-ID <[email protected]>
IGRhdGEvYW1kZ3B1LmlkcyAgICAgICAgICAgICAgIHwgICAgMSAKIHRlc3RzL2FtZGdwdS9hbWRn
cHVfdGVzdC5jICAgIHwgICAxNCAKIHRlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jICAgIHwgMTIy
OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHRlc3RzL2FtZGdw
dS9kZWFkbG9ja190ZXN0cy5jIHwgIDEwMyArKysKIDQgZmlsZXMgY2hhbmdlZCwgMTM0MyBpbnNl
cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKTmV3IGNvbW1pdHM6CmNvbW1pdCA4NTJhOWQyMGFk
NjQ1ZDM5OTc3NGEyYjNmZjE3NDY1MjE4NDFiYTU0CkF1dGhvcjogQ3VpLCBGbG9yYSA8RmxvcmEu
Q3VpQGFtZC5jb20+CkRhdGU6ICAgRnJpIE1hciAxNSAwODo1MToyMSAyMDE5ICswMDAwCgogICAg
dGVzdHMvYW1kZ3B1OiBhZGQgbWVtY3B5IGRyYXcgdGVzdAogICAgCiAgICBhZGQgbWVtY3B5IGRy
YXcgdGVzdCBmb3IgZ2Z4OQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBGbG9yYSBDdWkgPGZsb3Jh
LmN1aUBhbWQuY29tPgogICAgVGVzdGVkLWJ5OiBSdWkgVGVuZyA8cnVpLnRlbmdAYW1kLmNvbT4K
ICAgIFNpZ25lZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNv
bT4KCmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYyBiL3Rlc3RzL2FtZGdw
dS9iYXNpY190ZXN0cy5jCmluZGV4IDBiYTYxOTkzLi5hMzY0ZjY3YSAxMDA2NDQKLS0tIGEvdGVz
dHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKKysrIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMK
QEAgLTM0Myw3ICszNDMsOCBAQCBzdGF0aWMgY29uc3QgdWludDMyX3QgcHJlYW1ibGVjYWNoZV9n
Zng5W10gPSB7CiB9OwogCiBlbnVtIHBzX3R5cGUgewotCVBTX0NPTlNUCisJUFNfQ09OU1QsCisJ
UFNfVEVYCiB9OwogCiBzdGF0aWMgY29uc3QgdWludDMyX3QgcHNfY29uc3Rfc2hhZGVyX2dmeDlb
XSA9IHsKQEAgLTM5MSw2ICszOTIsNDkgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBzX2NvbnN0
X2NvbnRleHRfcmVnX2dmeDlbXVsyXSA9IHsKICAgICB7MHhBMUM1LCAweDAwMDAwMDA0fSwgLy97
IG1tU1BJX1NIQURFUl9DT0xfRk9STUFULCAgIDB4MDAwMDAwMDQgfQogfTsKIAorc3RhdGljIGNv
bnN0IHVpbnQzMl90IHBzX3RleF9zaGFkZXJfZ2Z4OVtdID0geworICAgIDB4QkVGQzAwMEMsIDB4
QkU4RTAxN0UsIDB4QkVGRTA3N0UsIDB4RDQxODAwMDAsCisgICAgMHhENDE5MDAwMSwgMHhENDFD
MDEwMCwgMHhENDFEMDEwMSwgMHhGMDgwMEYwMCwKKyAgICAweDAwNDAwMjA2LCAweEJFRkUwMTBF
LCAweEJGOEMwRjcwLCAweEQyOTYwMDAwLAorICAgIDB4MDAwMjA3MDIsIDB4RDI5NjAwMDEsIDB4
MDAwMjBCMDQsIDB4QzQwMDFDMEYsCisgICAgMHgwMDAwMDEwMCwgMHhCRjgxMDAwMAorfTsKKwor
c3RhdGljIGNvbnN0IHVpbnQzMl90IHBzX3RleF9zaGFkZXJfcGF0Y2hpbmZvX29mZnNldF9nZng5
W10gPSB7CisgICAgMHgwMDAwMDAwQgorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IHBzX3Rl
eF9zaGFkZXJfcGF0Y2hpbmZvX2NvZGVfc2l6ZV9nZng5ID0gNjsKKworc3RhdGljIGNvbnN0IHVp
bnQzMl90IHBzX3RleF9zaGFkZXJfcGF0Y2hpbmZvX2NvZGVfZ2Z4OVtdWzEwXVs2XSA9IHsKKyAg
ICB7eyAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEM0
MDAxODkwLCAweDAwMDAwMDAwIH0sCisgICAgIHsgMHhCRjgwMDAwMCwgMHhCRjgwMDAwMCwgMHhC
RjgwMDAwMCwgMHhCRjgwMDAwMCwgMHhDNDAwMTgwMSwgMHgwMDAwMDAwMiB9LAorICAgICB7IDB4
QkY4MDAwMDAsIDB4QkY4MDAwMDAsIDB4QkY4MDAwMDAsIDB4QkY4MDAwMDAsIDB4QzQwMDE4MDMs
IDB4MDAwMDAzMDIgfSwKKyAgICAgeyAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEJGODAwMDAw
LCAweEJGODAwMDAwLCAweEM0MDAxODAzLCAweDAwMDAwNTAyIH0sCisgICAgIHsgMHhEMjk2MDAw
MCwgMHgwMDAyMDcwMiwgMHhEMjk2MDAwMSwgMHgwMDAyMEIwNCwgMHhDNDAwMUMwRiwgMHgwMDAw
MDEwMCB9LAorICAgICB7IDB4RDI5NTAwMDAsIDB4MDAwMjA3MDIsIDB4RDI5NTAwMDEsIDB4MDAw
MjBCMDQsIDB4QzQwMDFDMEYsIDB4MDAwMDAxMDAgfSwKKyAgICAgeyAweEQyOTQwMDAwLCAweDAw
MDIwNzAyLCAweEQyOTQwMDAxLCAweDAwMDIwQjA0LCAweEM0MDAxQzBGLCAweDAwMDAwMTAwIH0s
CisgICAgIHsgMHhEMjk3MDAwMCwgMHgwMDAyMDcwMiwgMHhEMjk3MDAwMSwgMHgwMDAyMEIwNCwg
MHhDNDAwMUMwRiwgMHgwMDAwMDEwMCB9LAorICAgICB7IDB4RDI5ODAwMDAsIDB4MDAwMjA3MDIs
IDB4RDI5ODAwMDEsIDB4MDAwMjBCMDQsIDB4QzQwMDFDMEYsIDB4MDAwMDAxMDAgfSwKKyAgICAg
eyAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEM0MDAx
ODBGLCAweDA1MDQwMzAyIH0KKyAgICB9Cit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3QgcHNf
dGV4X3NoX3JlZ2lzdGVyc19nZng5W11bMl0gPSB7CisgICAgezB4MkMwQSwgMHgwMDBDMDA4MX0s
Ly97IG1tU1BJX1NIQURFUl9QR01fUlNSQzFfUFMsIDB4MDAwQzAwODEgfSwKKyAgICB7MHgyQzBC
LCAweDAwMDAwMDE4fSwgLy97IG1tU1BJX1NIQURFUl9QR01fUlNSQzJfUFMsIDB4MDAwMDAwMTgg
fQorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IHBzX3RleF9jb250ZXh0X3JlZ19nZng5W11b
Ml0gPSB7CisgICAgezB4QTFCNCwgMHgwMDAwMDAwMn0sIC8veyBtbVNQSV9QU19JTlBVVF9BRERS
LCAgICAgICAweDAwMDAwMDAyIH0sCisgICAgezB4QTFCNiwgMHgwMDAwMDAwMX0sIC8veyBtbVNQ
SV9QU19JTl9DT05UUk9MLCAgICAgICAweDAwMDAwMDAxIH0sCisgICAgezB4QTA4RiwgMHgwMDAw
MDAwRn0sIC8veyBtbUNCX1NIQURFUl9NQVNLLCAgICAgICAgICAweDAwMDAwMDBGIH0sCisgICAg
ezB4QTIwMywgMHgwMDAwMDAxMH0sIC8veyBtbURCX1NIQURFUl9DT05UUk9MLCAgICAgICAweDAw
MDAwMDEwIH0sCisgICAgezB4QTFDNCwgMHgwMDAwMDAwMH0sIC8veyBtbVNQSV9TSEFERVJfWl9G
T1JNQVQsICAgICAweDAwMDAwMDAwIH0sCisgICAgezB4QTFCOCwgMHgwMDAwMDAwMH0sIC8veyBt
bVNQSV9CQVJZQ19DTlRMLCAgICAgICAgICAweDAwMDAwMDAwIC8qIEFsd2F5cyAwIGZvciBub3cg
Ki99LAorICAgIHsweEExQzUsIDB4MDAwMDAwMDR9LCAvL3sgbW1TUElfU0hBREVSX0NPTF9GT1JN
QVQsICAgMHgwMDAwMDAwNCAgfQorfTsKKwogc3RhdGljIGNvbnN0IHVpbnQzMl90IHZzX1JlY3RQ
b3NUZXhGYXN0X3NoYWRlcl9nZng5W10gPSB7CiAgICAgMHg3RTAwMEIwMCwgMHgwMjAwMDBGMywg
MHhEMDQyMDAwQSwgMHgwMDAxMDEwMCwKICAgICAweDdFMDIwMjAyLCAweDdFMDQwMjAwLCAweDAy
MDAwMEYzLCAweDdFMDYwMjA2LApAQCAtMjQyNSw2ICsyNDY5LDEzIEBAIHN0YXRpYyBpbnQgYW1k
Z3B1X2RyYXdfbG9hZF9wc19zaGFkZXIodWludDhfdCAqcHRyLCBpbnQgcHNfdHlwZSkKIAkJCXBh
dGNoaW5mb19jb2RlX3NpemUgPSBwc19jb25zdF9zaGFkZXJfcGF0Y2hpbmZvX2NvZGVfc2l6ZV9n
Zng5OwogCQkJcGF0Y2hjb2RlX29mZnNldCA9IHBzX2NvbnN0X3NoYWRlcl9wYXRjaGluZm9fb2Zm
c2V0X2dmeDk7CiAJCQlicmVhazsKKwkJY2FzZSBQU19URVg6CisJCQlzaGFkZXIgPSBwc190ZXhf
c2hhZGVyX2dmeDk7CisJCQlzaGFkZXJfc2l6ZSA9IHNpemVvZihwc190ZXhfc2hhZGVyX2dmeDkp
OworCQkJcGF0Y2hpbmZvX2NvZGUgPSAoY29uc3QgdWludDMyX3QgKilwc190ZXhfc2hhZGVyX3Bh
dGNoaW5mb19jb2RlX2dmeDk7CisJCQlwYXRjaGluZm9fY29kZV9zaXplID0gcHNfdGV4X3NoYWRl
cl9wYXRjaGluZm9fY29kZV9zaXplX2dmeDk7CisJCQlwYXRjaGNvZGVfb2Zmc2V0ID0gcHNfdGV4
X3NoYWRlcl9wYXRjaGluZm9fb2Zmc2V0X2dmeDk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJ
CXJldHVybiAtMTsKIAkJCWJyZWFrOwpAQCAtMjU3OCw3ICsyNjI5LDkgQEAgc3RhdGljIGludCBh
bWRncHVfZHJhd19zZXR1cF9hbmRfd3JpdGVfZHJhd2JsdF9zdGF0ZSh1aW50MzJfdCAqcHRyKQog
CXJldHVybiBpOwogfQogCi1zdGF0aWMgaW50IGFtZGdwdV9kcmF3X3ZzX1JlY3RQb3NUZXhGYXN0
X3dyaXRlMmh3KHVpbnQzMl90ICpwdHIsIHVpbnQ2NF90IHNoYWRlcl9hZGRyKQorc3RhdGljIGlu
dCBhbWRncHVfZHJhd192c19SZWN0UG9zVGV4RmFzdF93cml0ZTJodyh1aW50MzJfdCAqcHRyLAor
CQkJCQkJICBpbnQgcHNfdHlwZSwKKwkJCQkJCSAgdWludDY0X3Qgc2hhZGVyX2FkZHIpCiB7CiAJ
aW50IGkgPSAwOwogCkBAIC0yNjI1LDcgKzI2NzgsMTMgQEAgc3RhdGljIGludCBhbWRncHVfZHJh
d192c19SZWN0UG9zVGV4RmFzdF93cml0ZTJodyh1aW50MzJfdCAqcHRyLCB1aW50NjRfdCBzaGFk
ZXIKIAogCXB0cltpKytdID0gUEFDS0VUMyhQS1QzX1NFVF9TSF9SRUcsIDQpOwogCXB0cltpKytd
ID0gMHg1MDsKLQlpICs9IDQ7CisJaSArPSAyOworCWlmIChwc190eXBlID09IFBTX0NPTlNUKSB7
CisJCWkgKz0gMjsKKwl9IGVsc2UgaWYgKHBzX3R5cGUgPT0gUFNfVEVYKSB7CisJCXB0cltpKytd
ID0gMHgzZjgwMDAwMDsKKwkJcHRyW2krK10gPSAweDNmODAwMDAwOworCX0KIAogCXB0cltpKytd
ID0gUEFDS0VUMyhQS1QzX1NFVF9TSF9SRUcsIDQpOwogCXB0cltpKytdID0gMHg1NDsKQEAgLTI2
MzQsMTcgKzI2OTMsMjYgQEAgc3RhdGljIGludCBhbWRncHVfZHJhd192c19SZWN0UG9zVGV4RmFz
dF93cml0ZTJodyh1aW50MzJfdCAqcHRyLCB1aW50NjRfdCBzaGFkZXIKIAlyZXR1cm4gaTsKIH0K
IAotc3RhdGljIGludCBhbWRncHVfZHJhd19wc193cml0ZTJodyh1aW50MzJfdCAqcHRyLCB1aW50
NjRfdCBzaGFkZXJfYWRkcikKK3N0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfcHNfd3JpdGUyaHcodWlu
dDMyX3QgKnB0ciwKKwkJCQkgICBpbnQgcHNfdHlwZSwKKwkJCQkgICB1aW50NjRfdCBzaGFkZXJf
YWRkcikKIHsKIAlpbnQgaSwgajsKIAljb25zdCB1aW50MzJfdCAqc2hfcmVnaXN0ZXJzOwogCWNv
bnN0IHVpbnQzMl90ICpjb250ZXh0X3JlZ2lzdGVyczsKIAl1aW50MzJfdCBudW1fc2hfcmVnLCBu
dW1fY29udGV4dF9yZWc7CiAKLQlzaF9yZWdpc3RlcnMgPSAoY29uc3QgdWludDMyX3QgKilwc19j
b25zdF9zaF9yZWdpc3RlcnNfZ2Z4OTsKLQljb250ZXh0X3JlZ2lzdGVycyA9IChjb25zdCB1aW50
MzJfdCAqKXBzX2NvbnN0X2NvbnRleHRfcmVnX2dmeDk7Ci0JbnVtX3NoX3JlZyA9IHBzX251bV9z
aF9yZWdpc3RlcnNfZ2Z4OTsKLQludW1fY29udGV4dF9yZWcgPSBwc19udW1fY29udGV4dF9yZWdp
c3RlcnNfZ2Z4OTsKKwlpZiAocHNfdHlwZSA9PSBQU19DT05TVCkgeworCQlzaF9yZWdpc3RlcnMg
PSAoY29uc3QgdWludDMyX3QgKilwc19jb25zdF9zaF9yZWdpc3RlcnNfZ2Z4OTsKKwkJY29udGV4
dF9yZWdpc3RlcnMgPSAoY29uc3QgdWludDMyX3QgKilwc19jb25zdF9jb250ZXh0X3JlZ19nZng5
OworCQludW1fc2hfcmVnID0gcHNfbnVtX3NoX3JlZ2lzdGVyc19nZng5OworCQludW1fY29udGV4
dF9yZWcgPSBwc19udW1fY29udGV4dF9yZWdpc3RlcnNfZ2Z4OTsKKwl9IGVsc2UgaWYgKHBzX3R5
cGUgPT0gUFNfVEVYKSB7CisJCXNoX3JlZ2lzdGVycyA9IChjb25zdCB1aW50MzJfdCAqKXBzX3Rl
eF9zaF9yZWdpc3RlcnNfZ2Z4OTsKKwkJY29udGV4dF9yZWdpc3RlcnMgPSAoY29uc3QgdWludDMy
X3QgKilwc190ZXhfY29udGV4dF9yZWdfZ2Z4OTsKKwkJbnVtX3NoX3JlZyA9IHBzX251bV9zaF9y
ZWdpc3RlcnNfZ2Z4OTsKKwkJbnVtX2NvbnRleHRfcmVnID0gcHNfbnVtX2NvbnRleHRfcmVnaXN0
ZXJzX2dmeDk7CisJfQogCiAJaSA9IDA7CiAKQEAgLTI3NDYsOSArMjgxNCw5IEBAIHZvaWQgYW1k
Z3B1X21lbXNldF9kcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9oYW5kbGUsCiAKIAlp
ICs9IGFtZGdwdV9kcmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N0YXRlKHB0cl9jbWQgKyBp
KTsKIAotCWkgKz0gYW1kZ3B1X2RyYXdfdnNfUmVjdFBvc1RleEZhc3Rfd3JpdGUyaHcocHRyX2Nt
ZCArIGksIG1jX2FkZHJlc3Nfc2hhZGVyX3ZzKTsKKwlpICs9IGFtZGdwdV9kcmF3X3ZzX1JlY3RQ
b3NUZXhGYXN0X3dyaXRlMmh3KHB0cl9jbWQgKyBpLCBQU19DT05TVCwgbWNfYWRkcmVzc19zaGFk
ZXJfdnMpOwogCi0JaSArPSBhbWRncHVfZHJhd19wc193cml0ZTJodyhwdHJfY21kICsgaSwgbWNf
YWRkcmVzc19zaGFkZXJfcHMpOworCWkgKz0gYW1kZ3B1X2RyYXdfcHNfd3JpdGUyaHcocHRyX2Nt
ZCArIGksIFBTX0NPTlNULCBtY19hZGRyZXNzX3NoYWRlcl9wcyk7CiAKIAlwdHJfY21kW2krK10g
PSBQQUNLRVQzKFBLVDNfU0VUX1NIX1JFRywgNCk7CiAJcHRyX2NtZFtpKytdID0gMHhjOwpAQCAt
Mjg1Myw2ICsyOTIxLDE3OCBAQCBzdGF0aWMgdm9pZCBhbWRncHVfbWVtc2V0X2RyYXdfdGVzdChh
bWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLAogCUNVX0FTU0VSVF9FUVVBTChyLCAw
KTsKIH0KIAorc3RhdGljIHZvaWQgYW1kZ3B1X21lbWNweV9kcmF3KGFtZGdwdV9kZXZpY2VfaGFu
ZGxlIGRldmljZV9oYW5kbGUsCisJCQkgICAgICAgYW1kZ3B1X2JvX2hhbmRsZSBib19zaGFkZXJf
cHMsCisJCQkgICAgICAgYW1kZ3B1X2JvX2hhbmRsZSBib19zaGFkZXJfdnMsCisJCQkgICAgICAg
dWludDY0X3QgbWNfYWRkcmVzc19zaGFkZXJfcHMsCisJCQkgICAgICAgdWludDY0X3QgbWNfYWRk
cmVzc19zaGFkZXJfdnMsCisJCQkgICAgICAgdWludDMyX3QgcmluZykKK3sKKwlhbWRncHVfY29u
dGV4dF9oYW5kbGUgY29udGV4dF9oYW5kbGU7CisJYW1kZ3B1X2JvX2hhbmRsZSBib19kc3QsIGJv
X3NyYywgYm9fY21kLCByZXNvdXJjZXNbNV07CisJdm9sYXRpbGUgdW5zaWduZWQgY2hhciAqcHRy
X2RzdDsKKwl1bnNpZ25lZCBjaGFyICpwdHJfc3JjOworCXVpbnQzMl90ICpwdHJfY21kOworCXVp
bnQ2NF90IG1jX2FkZHJlc3NfZHN0LCBtY19hZGRyZXNzX3NyYywgbWNfYWRkcmVzc19jbWQ7CisJ
YW1kZ3B1X3ZhX2hhbmRsZSB2YV9kc3QsIHZhX3NyYywgdmFfY21kOworCWludCBpLCByOworCWlu
dCBib19zaXplID0gMTYzODQ7CisJaW50IGJvX2NtZF9zaXplID0gNDA5NjsKKwlzdHJ1Y3QgYW1k
Z3B1X2NzX3JlcXVlc3QgaWJzX3JlcXVlc3QgPSB7MH07CisJc3RydWN0IGFtZGdwdV9jc19pYl9p
bmZvIGliX2luZm89IHswfTsKKwl1aW50MzJfdCBoYW5nX3N0YXRlLCBoYW5ncywgZXhwaXJlZDsK
KwlhbWRncHVfYm9fbGlzdF9oYW5kbGUgYm9fbGlzdDsKKwlzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNl
IGZlbmNlX3N0YXR1cyA9IHswfTsKKworCXIgPSBhbWRncHVfY3NfY3R4X2NyZWF0ZShkZXZpY2Vf
aGFuZGxlLCAmY29udGV4dF9oYW5kbGUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIg
PSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCBib19jbWRfc2l6ZSwgNDA5
NiwKKwkJCQkgICAgQU1ER1BVX0dFTV9ET01BSU5fR1RULCAwLAorCQkJCSAgICAmYm9fY21kLCAo
dm9pZCAqKikmcHRyX2NtZCwKKwkJCQkgICAgJm1jX2FkZHJlc3NfY21kLCAmdmFfY21kKTsKKwlD
VV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX2FsbG9jX2FuZF9tYXAoZGV2
aWNlX2hhbmRsZSwgYm9fc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwg
MCwKKwkJCQkJJmJvX3NyYywgKHZvaWQgKiopJnB0cl9zcmMsCisJCQkJCSZtY19hZGRyZXNzX3Ny
YywgJnZhX3NyYyk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9ib19h
bGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIGJvX3NpemUsIDQwOTYsCisJCQkJCUFNREdQVV9H
RU1fRE9NQUlOX1ZSQU0sIDAsCisJCQkJCSZib19kc3QsICh2b2lkICoqKSZwdHJfZHN0LAorCQkJ
CQkmbWNfYWRkcmVzc19kc3QsICZ2YV9kc3QpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwor
CW1lbXNldChwdHJfc3JjLCAweDU1LCBib19zaXplKTsKKworCWkgPSAwOworCWkgKz0gYW1kZ3B1
X2RyYXdfaW5pdChwdHJfY21kICsgaSk7CisKKwlpICs9IGFtZGdwdV9kcmF3X3NldHVwX2FuZF93
cml0ZV9kcmF3Ymx0X3N1cmZfaW5mbyhwdHJfY21kICsgaSwgbWNfYWRkcmVzc19kc3QpOworCisJ
aSArPSBhbWRncHVfZHJhd19zZXR1cF9hbmRfd3JpdGVfZHJhd2JsdF9zdGF0ZShwdHJfY21kICsg
aSk7CisKKwlpICs9IGFtZGdwdV9kcmF3X3ZzX1JlY3RQb3NUZXhGYXN0X3dyaXRlMmh3KHB0cl9j
bWQgKyBpLCBQU19URVgsIG1jX2FkZHJlc3Nfc2hhZGVyX3ZzKTsKKworCWkgKz0gYW1kZ3B1X2Ry
YXdfcHNfd3JpdGUyaHcocHRyX2NtZCArIGksIFBTX1RFWCwgbWNfYWRkcmVzc19zaGFkZXJfcHMp
OworCisJcHRyX2NtZFtpKytdID0gUEFDS0VUMyhQS1QzX1NFVF9TSF9SRUcsIDgpOworCXB0cl9j
bWRbaSsrXSA9IDB4YzsKKwlwdHJfY21kW2krK10gPSBtY19hZGRyZXNzX3NyYyA+PiA4OworCXB0
cl9jbWRbaSsrXSA9IG1jX2FkZHJlc3Nfc3JjID4+IDQwIHwgMHgxMGUwMDAwMDsKKwlwdHJfY21k
W2krK10gPSAweDdjMDFmOworCXB0cl9jbWRbaSsrXSA9IDB4OTA1MDBmYWM7CisJcHRyX2NtZFtp
KytdID0gMHgzZTAwMDsKKwlpICs9IDM7CisKKwlwdHJfY21kW2krK10gPSBQQUNLRVQzKFBLVDNf
U0VUX1NIX1JFRywgNCk7CisJcHRyX2NtZFtpKytdID0gMHgxNDsKKwlwdHJfY21kW2krK10gPSAw
eDkyOworCWkgKz0gMzsKKworCXB0cl9jbWRbaSsrXSA9IFBBQ0tFVDMoUEtUM19TRVRfU0hfUkVH
LCAxKTsKKwlwdHJfY21kW2krK10gPSAweDE5MTsKKwlwdHJfY21kW2krK10gPSAwOworCisJaSAr
PSBhbWRncHVfZHJhd19kcmF3KHB0cl9jbWQgKyBpKTsKKworCXdoaWxlIChpICYgNykKKwkJcHRy
X2NtZFtpKytdID0gIDB4ZmZmZjEwMDA7IC8qIHR5cGUzIG5vcCBwYWNrZXQgKi8KKworCXJlc291
cmNlc1swXSA9IGJvX2RzdDsKKwlyZXNvdXJjZXNbMV0gPSBib19zcmM7CisJcmVzb3VyY2VzWzJd
ID0gYm9fc2hhZGVyX3BzOworCXJlc291cmNlc1szXSA9IGJvX3NoYWRlcl92czsKKwlyZXNvdXJj
ZXNbNF0gPSBib19jbWQ7CisJciA9IGFtZGdwdV9ib19saXN0X2NyZWF0ZShkZXZpY2VfaGFuZGxl
LCA1LCByZXNvdXJjZXMsIE5VTEwsICZib19saXN0KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7
CisKKwlpYl9pbmZvLmliX21jX2FkZHJlc3MgPSBtY19hZGRyZXNzX2NtZDsKKwlpYl9pbmZvLnNp
emUgPSBpOworCWlic19yZXF1ZXN0LmlwX3R5cGUgPSBBTURHUFVfSFdfSVBfR0ZYOworCWlic19y
ZXF1ZXN0LnJpbmcgPSByaW5nOworCWlic19yZXF1ZXN0LnJlc291cmNlcyA9IGJvX2xpc3Q7CisJ
aWJzX3JlcXVlc3QubnVtYmVyX29mX2licyA9IDE7CisJaWJzX3JlcXVlc3QuaWJzID0gJmliX2lu
Zm87CisJaWJzX3JlcXVlc3QuZmVuY2VfaW5mby5oYW5kbGUgPSBOVUxMOworCXIgPSBhbWRncHVf
Y3Nfc3VibWl0KGNvbnRleHRfaGFuZGxlLCAwLCAmaWJzX3JlcXVlc3QsIDEpOworCUNVX0FTU0VS
VF9FUVVBTChyLCAwKTsKKworCWZlbmNlX3N0YXR1cy5pcF90eXBlID0gQU1ER1BVX0hXX0lQX0dG
WDsKKwlmZW5jZV9zdGF0dXMuaXBfaW5zdGFuY2UgPSAwOworCWZlbmNlX3N0YXR1cy5yaW5nID0g
cmluZzsKKwlmZW5jZV9zdGF0dXMuY29udGV4dCA9IGNvbnRleHRfaGFuZGxlOworCWZlbmNlX3N0
YXR1cy5mZW5jZSA9IGlic19yZXF1ZXN0LnNlcV9ubzsKKworCS8qIHdhaXQgZm9yIElCIGFjY29t
cGxpc2hlZCAqLworCXIgPSBhbWRncHVfY3NfcXVlcnlfZmVuY2Vfc3RhdHVzKCZmZW5jZV9zdGF0
dXMsCisJCQkJCSBBTURHUFVfVElNRU9VVF9JTkZJTklURSwKKwkJCQkJIDAsICZleHBpcmVkKTsK
KwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJQ1VfQVNTRVJUX0VRVUFMKGV4cGlyZWQsIHRydWUp
OworCisJLyogdmVyaWZ5IGlmIG1lbWNweSB0ZXN0IHJlc3VsdCBtZWV0cyB3aXRoIGV4cGVjdGVk
ICovCisJaSA9IDA7CisJd2hpbGUoaSA8IGJvX3NpemUpIHsKKwkJQ1VfQVNTRVJUX0VRVUFMKHB0
cl9kc3RbaV0sIHB0cl9zcmNbaV0pOworCQlpKys7CisJfQorCisJciA9IGFtZGdwdV9ib19saXN0
X2Rlc3Ryb3koYm9fbGlzdCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdw
dV9ib191bm1hcF9hbmRfZnJlZShib19zcmMsIHZhX3NyYywgbWNfYWRkcmVzc19zcmMsIGJvX3Np
emUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlyID0gYW1kZ3B1X2JvX3VubWFwX2FuZF9m
cmVlKGJvX2RzdCwgdmFfZHN0LCBtY19hZGRyZXNzX2RzdCwgYm9fc2l6ZSk7CisJQ1VfQVNTRVJU
X0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9ib191bm1hcF9hbmRfZnJlZShib19jbWQsIHZh
X2NtZCwgbWNfYWRkcmVzc19jbWQsIGJvX2NtZF9zaXplKTsKKwlDVV9BU1NFUlRfRVFVQUwociwg
MCk7CisKKwlyID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGNvbnRleHRfaGFuZGxlKTsKKwlDVV9BU1NF
UlRfRVFVQUwociwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIGFtZGdwdV9tZW1jcHlfZHJhd190ZXN0
KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9oYW5kbGUsIHVpbnQzMl90IHJpbmcpCit7CisJ
YW1kZ3B1X2JvX2hhbmRsZSBib19zaGFkZXJfcHMsIGJvX3NoYWRlcl92czsKKwl2b2lkICpwdHJf
c2hhZGVyX3BzOworCXZvaWQgKnB0cl9zaGFkZXJfdnM7CisJdWludDY0X3QgbWNfYWRkcmVzc19z
aGFkZXJfcHMsIG1jX2FkZHJlc3Nfc2hhZGVyX3ZzOworCWFtZGdwdV92YV9oYW5kbGUgdmFfc2hh
ZGVyX3BzLCB2YV9zaGFkZXJfdnM7CisJaW50IGJvX3NoYWRlcl9zaXplID0gNDA5NjsKKwlpbnQg
cjsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCBib19zaGFk
ZXJfc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwgMCwKKwkJCQkJJmJv
X3NoYWRlcl9wcywgJnB0cl9zaGFkZXJfcHMsCisJCQkJCSZtY19hZGRyZXNzX3NoYWRlcl9wcywg
JnZhX3NoYWRlcl9wcyk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9i
b19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIGJvX3NoYWRlcl9zaXplLCA0MDk2LAorCQkJ
CQlBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAwLAorCQkJCQkmYm9fc2hhZGVyX3ZzLCAmcHRyX3No
YWRlcl92cywKKwkJCQkJJm1jX2FkZHJlc3Nfc2hhZGVyX3ZzLCAmdmFfc2hhZGVyX3ZzKTsKKwlD
VV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2RyYXdfbG9hZF9wc19zaGFkZXIo
cHRyX3NoYWRlcl9wcywgUFNfVEVYKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0g
YW1kZ3B1X2RyYXdfbG9hZF92c19zaGFkZXIocHRyX3NoYWRlcl92cyk7CisJQ1VfQVNTRVJUX0VR
VUFMKHIsIDApOworCisJYW1kZ3B1X21lbWNweV9kcmF3KGRldmljZV9oYW5kbGUsIGJvX3NoYWRl
cl9wcywgYm9fc2hhZGVyX3ZzLAorCQkJbWNfYWRkcmVzc19zaGFkZXJfcHMsIG1jX2FkZHJlc3Nf
c2hhZGVyX3ZzLCByaW5nKTsKKworCXIgPSBhbWRncHVfYm9fdW5tYXBfYW5kX2ZyZWUoYm9fc2hh
ZGVyX3BzLCB2YV9zaGFkZXJfcHMsIG1jX2FkZHJlc3Nfc2hhZGVyX3BzLCBib19zaGFkZXJfc2l6
ZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9ib191bm1hcF9hbmRf
ZnJlZShib19zaGFkZXJfdnMsIHZhX3NoYWRlcl92cywgbWNfYWRkcmVzc19zaGFkZXJfdnMsIGJv
X3NoYWRlcl9zaXplKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cit9CisKIHN0YXRpYyB2b2lk
IGFtZGdwdV9kcmF3X3Rlc3Qodm9pZCkKIHsKIAlpbnQgcjsKQEAgLTI4NjIsNiArMzEwMiw4IEBA
IHN0YXRpYyB2b2lkIGFtZGdwdV9kcmF3X3Rlc3Qodm9pZCkKIAlyID0gYW1kZ3B1X3F1ZXJ5X2h3
X2lwX2luZm8oZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0dGWCwgMCwgJmluZm8pOwogCUNV
X0FTU0VSVF9FUVVBTChyLCAwKTsKIAotCWZvciAocmluZ19pZCA9IDA7ICgxIDw8IHJpbmdfaWQp
ICYgaW5mby5hdmFpbGFibGVfcmluZ3M7IHJpbmdfaWQrKykKKwlmb3IgKHJpbmdfaWQgPSAwOyAo
MSA8PCByaW5nX2lkKSAmIGluZm8uYXZhaWxhYmxlX3JpbmdzOyByaW5nX2lkKyspIHsKIAkJYW1k
Z3B1X21lbXNldF9kcmF3X3Rlc3QoZGV2aWNlX2hhbmRsZSwgcmluZ19pZCk7CisJCWFtZGdwdV9t
ZW1jcHlfZHJhd190ZXN0KGRldmljZV9oYW5kbGUsIHJpbmdfaWQpOworCX0KIH0KY29tbWl0IDAw
ZGQ5YjcyYTEzODYzZGQ3M2NmMTM0MGYzNzAwYTJiYjAwZjBmZTMKQXV0aG9yOiBDdWksIEZsb3Jh
IDxGbG9yYS5DdWlAYW1kLmNvbT4KRGF0ZTogICBGcmkgTWFyIDE1IDA4OjUxOjE4IDIwMTkgKzAw
MDAKCiAgICB0ZXN0cy9hbWRncHU6IGFkZCBtZW1zZXQgZHJhdyB0ZXN0CiAgICAKICAgIGFkZCBt
ZW1zZXQgZHJhdyB0ZXN0IGZvciBnZng5CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IEZsb3JhIEN1
aSA8ZmxvcmEuY3VpQGFtZC5jb20+CiAgICBUZXN0ZWQtYnk6IFJ1aSBUZW5nIDxydWkudGVuZ0Bh
bWQuY29tPgogICAgU2lnbmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hl
ckBhbWQuY29tPgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jIGIvdGVz
dHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMKaW5kZXggOGNjODdiMTMuLmE3OTNjYTdkIDEwMDY0NAot
LS0gYS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYworKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1
X3Rlc3QuYwpAQCAtNDQ1LDYgKzQ0NSwxMSBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGlzYWJsZV9z
dWl0ZXMoKQogCWlmIChmYW1pbHlfaWQgPCBBTURHUFVfRkFNSUxZX0FJIHx8IGZhbWlseV9pZCA+
IEFNREdQVV9GQU1JTFlfUlYpCiAJCWlmIChhbWRncHVfc2V0X3Rlc3RfYWN0aXZlKEJBU0lDX1RF
U1RTX1NUUiwgIkRpc3BhdGNoIFRlc3QiLCBDVV9GQUxTRSkpCiAJCQlmcHJpbnRmKHN0ZGVyciwg
InRlc3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAtICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOwor
CisJLyogVGhpcyB0ZXN0IHdhcyByYW4gb24gR0ZYOSBvbmx5ICovCisJaWYgKGZhbWlseV9pZCA8
IEFNREdQVV9GQU1JTFlfQUkgfHwgZmFtaWx5X2lkID4gQU1ER1BVX0ZBTUlMWV9SVikKKwkJaWYg
KGFtZGdwdV9zZXRfdGVzdF9hY3RpdmUoQkFTSUNfVEVTVFNfU1RSLCAiRHJhdyBUZXN0IiwgQ1Vf
RkFMU0UpKQorCQkJZnByaW50ZihzdGRlcnIsICJ0ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAl
c1xuIiwgQ1VfZ2V0X2Vycm9yX21zZygpKTsKIH0KIAogLyogVGhlIG1haW4oKSBmdW5jdGlvbiBm
b3Igc2V0dGluZyB1cCBhbmQgcnVubmluZyB0aGUgdGVzdHMuCmRpZmYgLS1naXQgYS90ZXN0cy9h
bWRncHUvYmFzaWNfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jCmluZGV4IDJm
NTU5ZjRlLi4wYmE2MTk5MyAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMK
KysrIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKQEAgLTUwLDYgKzUwLDcgQEAgc3RhdGlj
IHZvaWQgYW1kZ3B1X3NlbWFwaG9yZV90ZXN0KHZvaWQpOwogc3RhdGljIHZvaWQgYW1kZ3B1X3N5
bmNfZGVwZW5kZW5jeV90ZXN0KHZvaWQpOwogc3RhdGljIHZvaWQgYW1kZ3B1X2JvX2V2aWN0aW9u
X3Rlc3Qodm9pZCk7CiBzdGF0aWMgdm9pZCBhbWRncHVfZGlzcGF0Y2hfdGVzdCh2b2lkKTsKK3N0
YXRpYyB2b2lkIGFtZGdwdV9kcmF3X3Rlc3Qodm9pZCk7CiAKIHN0YXRpYyB2b2lkIGFtZGdwdV9j
b21tYW5kX3N1Ym1pc3Npb25fd3JpdGVfbGluZWFyX2hlbHBlcih1bnNpZ25lZCBpcF90eXBlKTsK
IHN0YXRpYyB2b2lkIGFtZGdwdV9jb21tYW5kX3N1Ym1pc3Npb25fY29uc3RfZmlsbF9oZWxwZXIo
dW5zaWduZWQgaXBfdHlwZSk7CkBAIC03Miw2ICs3Myw3IEBAIENVX1Rlc3RJbmZvIGJhc2ljX3Rl
c3RzW10gPSB7CiAJeyAiU1cgc2VtYXBob3JlIFRlc3QiLCAgYW1kZ3B1X3NlbWFwaG9yZV90ZXN0
IH0sCiAJeyAiU3luYyBkZXBlbmRlbmN5IFRlc3QiLCAgYW1kZ3B1X3N5bmNfZGVwZW5kZW5jeV90
ZXN0IH0sCiAJeyAiRGlzcGF0Y2ggVGVzdCIsICBhbWRncHVfZGlzcGF0Y2hfdGVzdCB9LAorCXsg
IkRyYXcgVGVzdCIsICBhbWRncHVfZHJhd190ZXN0IH0sCiAJQ1VfVEVTVF9JTkZPX05VTEwsCiB9
OwogI2RlZmluZSBCVUZGRVJfU0laRSAoOCAqIDEwMjQpCkBAIC0zMTgsNiArMzIwLDk5IEBAIHN0
YXRpYyBjb25zdCB1aW50MzJfdCBidWZmZXJjb3B5X2NzX3NoYWRlcl9nZng5W10gPSB7CiAgICAg
MHhCRjhDMEY3MCwgMHhFMDFDMjAwMCwgMHg4MDAxMDEwMCwgMHhCRjgxMDAwMAogfTsKIAorc3Rh
dGljIGNvbnN0IHVpbnQzMl90IHByZWFtYmxlY2FjaGVfZ2Z4OVtdID0geworCTB4YzAwMjY5MDAs
IDB4ODEsIDB4ODAwMDAwMDAsIDB4NDAwMDQwMDAsIDB4YzAwMjY5MDAsIDB4OGMsIDB4YWE5OWFh
YWEsIDB4MCwKKwkweGMwMDI2OTAwLCAweDkwLCAweDgwMDAwMDAwLCAweDQwMDA0MDAwLCAweGMw
MDI2OTAwLCAweDk0LCAweDgwMDAwMDAwLCAweDQwMDA0MDAwLAorCTB4YzAwMjY5MDAsIDB4YjQs
ICAweDAsIDB4M2Y4MDAwMDAsIDB4YzAwMTY5MDAsIDB4MTAzLCAweDAsCisJMHhjMDAxNjkwMCwg
MHgyMDgsIDB4MCwgMHhjMDAxNjkwMCwgMHgyOTAsIDB4MCwKKwkweGMwMDE2OTAwLCAweDJhMSwg
MHgwLCAweGMwMDI2OTAwLCAweDJhZCwgMHgwLCAweDAsCisJMHhjMDAxNjkwMCwgMHgyZDUsIDB4
MTAwMDAsIDB4YzAwMTY5MDAsICAweDJkYywgMHgwLAorCTB4YzAwNjY5MDAsIDB4MmRlLCAweDAs
IDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLCAweGMwMDI2OTAwLCAweDJlNSwgMHgwLCAweDAsCisJ
MHhjMDA1NjkwMCwgMHgyZjksIDB4NSwgMHgzZjgwMDAwMCwgMHgzZjgwMDAwMCwgMHgzZjgwMDAw
MCwgMHgzZjgwMDAwMCwKKwkweGMwMDI2OTAwLCAweDMxMSwgIDB4MywgMHgwLCAweGMwMDI2OTAw
LCAweDMxNiwgMHgxZSwgMHgyMCwKKwkweGMwMDE2OTAwLCAweDM0OSwgMHgwLCAweGMwMDE2OTAw
LCAweDM1OCwgMHgwLCAweGMwMDE2OTAwLCAweDM2NywgMHgwLAorCTB4YzAwMTY5MDAsIDB4Mzc2
LCAweDAsIDB4YzAwMTY5MDAsIDB4Mzg1LCAweDAsIDB4YzAwMTY5MDAsIDB4MTksIDB4MCwKKwkw
eGMwMDU2OTAwLCAweGU4LCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwKKwkweGMwMDc2OTAwLCAw
eDFlMSwgMHgwLCAweDAsIDB4MCwgMHgwLCAweDAsIDB4MCwgMHgwLAorCTB4YzAwMjY5MDAsIDB4
MjA0LCAweDkwMDAwLCAweDQsIDB4YzAwNDY5MDAsIDB4MjBjLCAweDAsIDB4MCwgMHgwLCAweDAs
CisJMHhjMDAxNjkwMCwgMHgyYjIsIDB4MCwgMHhjMDAyNjkwMCwgMHgzMGUsIDB4ZmZmZmZmZmYs
IDB4ZmZmZmZmZmYsCisJMHhjMDAxNjkwMCwgMHgzMTQsIDB4MCwgMHhjMDAwMmYwMCwgMHgxLCAw
eGMwMDE2OTAwLCAweDEsIDB4MSwKKwkweGMwMDE2OTAwLCAweDE4LCAweDIsIDB4YzAwMTY5MDAs
IDB4MjA2LCAweDMwMCwgMHhjMDAxNzkwMCwgMHgyMDAwMDI0MywgMHgwLAorCTB4YzAwMTc5MDAs
IDB4MjQ4LCAweGZmZmZmZmZmLCAweGMwMDE3OTAwLCAweDI0OSwgMHgwLCAweGMwMDE3OTAwLCAw
eDI0YSwgMHgwLAorCTB4YzAwMTc5MDAsIDB4MjRiLCAweDAKK307CisKK2VudW0gcHNfdHlwZSB7
CisJUFNfQ09OU1QKK307CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBwc19jb25zdF9zaGFkZXJf
Z2Z4OVtdID0geworICAgIDB4N0UwMDAyMDAsIDB4N0UwMjAyMDEsIDB4N0UwNDAyMDIsIDB4N0Uw
NjAyMDMsCisgICAgMHhEMjk2MDAwMCwgMHgwMDAyMDMwMCwgMHhEMjk2MDAwMSwgMHgwMDAyMDcw
MiwKKyAgICAweEM0MDAxQzBGLCAweDAwMDAwMTAwLCAweEJGODEwMDAwCit9OworCitzdGF0aWMg
Y29uc3QgdWludDMyX3QgcHNfY29uc3Rfc2hhZGVyX3BhdGNoaW5mb19jb2RlX3NpemVfZ2Z4OSA9
IDY7CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBwc19jb25zdF9zaGFkZXJfcGF0Y2hpbmZvX2Nv
ZGVfZ2Z4OVtdWzEwXVs2XSA9IHsKKyAgICB7eyAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEJG
ODAwMDAwLCAweEJGODAwMDAwLCAweEM0MDAxODkwLCAweDAwMDAwMDAwIH0sCisgICAgIHsgMHhC
RjgwMDAwMCwgMHhCRjgwMDAwMCwgMHhCRjgwMDAwMCwgMHhCRjgwMDAwMCwgMHhDNDAwMTgwMSwg
MHgwMDAwMDAwMCB9LAorICAgICB7IDB4QkY4MDAwMDAsIDB4QkY4MDAwMDAsIDB4QkY4MDAwMDAs
IDB4QkY4MDAwMDAsIDB4QzQwMDE4MDMsIDB4MDAwMDAxMDAgfSwKKyAgICAgeyAweEJGODAwMDAw
LCAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEM0MDAxODAzLCAweDAwMDAw
MzAwIH0sCisgICAgIHsgMHhEMjk2MDAwMCwgMHgwMDAyMDMwMCwgMHhEMjk2MDAwMSwgMHgwMDAy
MDcwMiwgMHhDNDAwMUMwRiwgMHgwMDAwMDEwMCB9LAorICAgICB7IDB4RDI5NTAwMDAsIDB4MDAw
MjAzMDAsIDB4RDI5NTAwMDEsIDB4MDAwMjA3MDIsIDB4QzQwMDFDMEYsIDB4MDAwMDAxMDAgfSwK
KyAgICAgeyAweEQyOTQwMDAwLCAweDAwMDIwMzAwLCAweEQyOTQwMDAxLCAweDAwMDIwNzAyLCAw
eEM0MDAxQzBGLCAweDAwMDAwMTAwIH0sCisgICAgIHsgMHhEMjk3MDAwMCwgMHgwMDAyMDMwMCwg
MHhEMjk3MDAwMSwgMHgwMDAyMDcwMiwgMHhDNDAwMUMwRiwgMHgwMDAwMDEwMCB9LAorICAgICB7
IDB4RDI5ODAwMDAsIDB4MDAwMjAzMDAsIDB4RDI5ODAwMDEsIDB4MDAwMjA3MDIsIDB4QzQwMDFD
MEYsIDB4MDAwMDAxMDAgfSwKKyAgICAgeyAweEJGODAwMDAwLCAweEJGODAwMDAwLCAweEJGODAw
MDAwLCAweEJGODAwMDAwLCAweEM0MDAxODBGLCAweDAzMDIwMTAwIH0KKyAgICB9Cit9OworCitz
dGF0aWMgY29uc3QgdWludDMyX3QgcHNfY29uc3Rfc2hhZGVyX3BhdGNoaW5mb19vZmZzZXRfZ2Z4
OVtdID0geworICAgIDB4MDAwMDAwMDQKK307CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBwc19u
dW1fc2hfcmVnaXN0ZXJzX2dmeDkgPSAyOworCitzdGF0aWMgY29uc3QgdWludDMyX3QgcHNfY29u
c3Rfc2hfcmVnaXN0ZXJzX2dmeDlbXVsyXSA9IHsKKyAgICB7MHgyQzBBLCAweDAwMEMwMDQwfSwv
L3sgbW1TUElfU0hBREVSX1BHTV9SU1JDMV9QUywgMHgwMDBDMDA0MCB9LAorICAgIHsweDJDMEIs
IDB4MDAwMDAwMDh9LCAvL3sgbW1TUElfU0hBREVSX1BHTV9SU1JDMl9QUywgMHgwMDAwMDAwOCB9
Cit9OworCitzdGF0aWMgY29uc3QgdWludDMyX3QgcHNfbnVtX2NvbnRleHRfcmVnaXN0ZXJzX2dm
eDkgPSA3OworCitzdGF0aWMgY29uc3QgdWludDMyX3QgcHNfY29uc3RfY29udGV4dF9yZWdfZ2Z4
OVtdWzJdID0geworICAgIHsweEExQjQsIDB4MDAwMDAwMDJ9LCAvL3sgbW1TUElfUFNfSU5QVVRf
QUREUiwgICAgICAgMHgwMDAwMDAwMiB9LAorICAgIHsweEExQjYsIDB4MDAwMDAwMDB9LCAvL3sg
bW1TUElfUFNfSU5fQ09OVFJPTCwgICAgICAgMHgwMDAwMDAwMCB9LAorICAgIHsweEEwOEYsIDB4
MDAwMDAwMEZ9LCAvL3sgbW1DQl9TSEFERVJfTUFTSywgICAgICAgICAgMHgwMDAwMDAwRiB9LAor
ICAgIHsweEEyMDMsIDB4MDAwMDAwMTB9LCAvL3sgbW1EQl9TSEFERVJfQ09OVFJPTCwgICAgICAg
MHgwMDAwMDAxMCB9LAorICAgIHsweEExQzQsIDB4MDAwMDAwMDB9LCAvL3sgbW1TUElfU0hBREVS
X1pfRk9STUFULCAgICAgMHgwMDAwMDAwMCB9LAorICAgIHsweEExQjgsIDB4MDAwMDAwMDB9LCAv
L3sgbW1TUElfQkFSWUNfQ05UTCwgICAgICAgICAgMHgwMDAwMDAwMCAvKiBBbHdheXMgMCBmb3Ig
bm93ICovfSwKKyAgICB7MHhBMUM1LCAweDAwMDAwMDA0fSwgLy97IG1tU1BJX1NIQURFUl9DT0xf
Rk9STUFULCAgIDB4MDAwMDAwMDQgfQorfTsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IHZzX1Jl
Y3RQb3NUZXhGYXN0X3NoYWRlcl9nZng5W10gPSB7CisgICAgMHg3RTAwMEIwMCwgMHgwMjAwMDBG
MywgMHhEMDQyMDAwQSwgMHgwMDAxMDEwMCwKKyAgICAweDdFMDIwMjAyLCAweDdFMDQwMjAwLCAw
eDAyMDAwMEYzLCAweDdFMDYwMjA2LAorICAgIDB4N0UwODAyMDQsIDB4RDEwMDAwMDEsIDB4MDAy
QTAzMDIsIDB4N0M4NDAwODAsCisgICAgMHg3RTAwMDIwMCwgMHg3RTA0MDIwMywgMHg3RTBBMDIw
MSwgMHhEMTAwMDAwMywKKyAgICAweDAwMkEwNzA0LCAweDdFMEMwMjA3LCAweDdFMEUwMjA1LCAw
eDAwMDAwMTAxLAorICAgIDB4MDAwMjA1MDUsIDB4N0UwNDAyMDgsIDB4N0UwQTAyRjIsIDB4MDAw
NjA5MDMsCisgICAgMHgwMDA4MEQwNywgMHg3RTBDMDIwOSwgMHhDNDAwMDhDRiwgMHgwNTAyMDEw
MCwKKyAgICAweEM0MDAwMjBGLCAweDA1MDYwNDAzLCAweEJGODEwMDAwCit9OworCitzdGF0aWMg
Y29uc3QgdWludDMyX3QgY2FjaGVkX2NtZF9nZng5W10gPSB7CisJMHhjMDAxNjkwMCwgMHgwLCAw
eDAsIDB4YzAwMjY5MDAsIDB4MywgMHgyYSwgMHgwLAorCTB4YzAwNDY5MDAsIDB4YSwgMHgwLCAw
eDAsIDB4MCwgMHgyMDAwMjAsCisJMHhjMDAxNjkwMCwgMHg4MywgMHhmZmZmLCAweGMwMDI2OTAw
LCAweDhlLCAweGYsIDB4ZiwKKwkweGMwMDU2OTAwLCAweDEwNSwgMHgwLCAweDAsICAweDAsIDB4
MCwgMHgxMiwKKwkweGMwMDI2OTAwLCAweDEwYiwgMHgwLCAweDAsIDB4YzAwMTY5MDAsIDB4MWUw
LCAweDAsCisJMHhjMDAzNjkwMCwgMHgyMDAsIDB4MCwgMHgxMDAwMCwgMHhjYzAwMTEsCisJMHhj
MDAyNjkwMCwgMHgyOTIsIDB4MjAsIDB4NjAyMDFiOCwKKwkweGMwMDI2OTAwLCAweDJiMCwgMHgw
LCAweDAsIDB4YzAwMTY5MDAsIDB4MmY4LCAweDAKK307CisKIGludCBhbWRncHVfYm9fYWxsb2Nf
YW5kX21hcF9yYXcoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LCB1bnNpZ25lZCBzaXplLAogCQkJ
dW5zaWduZWQgYWxpZ25tZW50LCB1bnNpZ25lZCBoZWFwLCB1aW50NjRfdCBhbGxvY19mbGFncywK
IAkJCXVpbnQ2NF90IG1hcHBpbmdfZmxhZ3MsIGFtZGdwdV9ib19oYW5kbGUgKmJvLCB2b2lkICoq
Y3B1LApAQCAtMjMxMSwzICsyNDA2LDQ2MiBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGlzcGF0Y2hf
dGVzdCh2b2lkKQogCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3QoZGV2aWNlX2hhbmRsZSwg
QU1ER1BVX0hXX0lQX0dGWCwgcmluZ19pZCk7CiAJfQogfQorCitzdGF0aWMgaW50IGFtZGdwdV9k
cmF3X2xvYWRfcHNfc2hhZGVyKHVpbnQ4X3QgKnB0ciwgaW50IHBzX3R5cGUpCit7CisJaW50IGk7
CisJdWludDMyX3Qgc2hhZGVyX29mZnNldD0gMjU2OworCXVpbnQzMl90IG1lbV9vZmZzZXQsIHBh
dGNoX2NvZGVfb2Zmc2V0OworCXVpbnQzMl90IHNoYWRlcl9zaXplLCBwYXRjaGluZm9fY29kZV9z
aXplOworCWNvbnN0IHVpbnQzMl90ICpzaGFkZXI7CisJY29uc3QgdWludDMyX3QgKnBhdGNoaW5m
b19jb2RlOworCWNvbnN0IHVpbnQzMl90ICpwYXRjaGNvZGVfb2Zmc2V0OworCisJc3dpdGNoIChw
c190eXBlKSB7CisJCWNhc2UgUFNfQ09OU1Q6CisJCQlzaGFkZXIgPSBwc19jb25zdF9zaGFkZXJf
Z2Z4OTsKKwkJCXNoYWRlcl9zaXplID0gc2l6ZW9mKHBzX2NvbnN0X3NoYWRlcl9nZng5KTsKKwkJ
CXBhdGNoaW5mb19jb2RlID0gKGNvbnN0IHVpbnQzMl90ICopcHNfY29uc3Rfc2hhZGVyX3BhdGNo
aW5mb19jb2RlX2dmeDk7CisJCQlwYXRjaGluZm9fY29kZV9zaXplID0gcHNfY29uc3Rfc2hhZGVy
X3BhdGNoaW5mb19jb2RlX3NpemVfZ2Z4OTsKKwkJCXBhdGNoY29kZV9vZmZzZXQgPSBwc19jb25z
dF9zaGFkZXJfcGF0Y2hpbmZvX29mZnNldF9nZng5OworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJ
CQlyZXR1cm4gLTE7CisJCQlicmVhazsKKwl9CisKKwkvKiB3cml0ZSBtYWluIHNoYWRlciBwcm9n
cmFtICovCisJZm9yIChpID0gMCA7IGkgPCAxMDsgaSsrKSB7CisJCW1lbV9vZmZzZXQgPSBpICog
c2hhZGVyX29mZnNldDsKKwkJbWVtY3B5KHB0ciArIG1lbV9vZmZzZXQsIHNoYWRlciwgc2hhZGVy
X3NpemUpOworCX0KKworCS8qIG92ZXJ3cml0ZSBwYXRjaCBjb2RlcyAqLworCWZvciAoaSA9IDAg
OyBpIDwgMTA7IGkrKykgeworCQltZW1fb2Zmc2V0ID0gaSAqIHNoYWRlcl9vZmZzZXQgKyBwYXRj
aGNvZGVfb2Zmc2V0WzBdICogc2l6ZW9mKHVpbnQzMl90KTsKKwkJcGF0Y2hfY29kZV9vZmZzZXQg
PSBpICogcGF0Y2hpbmZvX2NvZGVfc2l6ZTsKKwkJbWVtY3B5KHB0ciArIG1lbV9vZmZzZXQsCisJ
CQlwYXRjaGluZm9fY29kZSArIHBhdGNoX2NvZGVfb2Zmc2V0LAorCQkJcGF0Y2hpbmZvX2NvZGVf
c2l6ZSAqIHNpemVvZih1aW50MzJfdCkpOworCX0KKworCXJldHVybiAwOworfQorCisvKiBsb2Fk
IFJlY3RQb3NUZXhGYXN0X1ZTICovCitzdGF0aWMgaW50IGFtZGdwdV9kcmF3X2xvYWRfdnNfc2hh
ZGVyKHVpbnQ4X3QgKnB0cikKK3sKKwljb25zdCB1aW50MzJfdCAqc2hhZGVyOworCXVpbnQzMl90
IHNoYWRlcl9zaXplOworCisJc2hhZGVyID0gdnNfUmVjdFBvc1RleEZhc3Rfc2hhZGVyX2dmeDk7
CisJc2hhZGVyX3NpemUgPSBzaXplb2YodnNfUmVjdFBvc1RleEZhc3Rfc2hhZGVyX2dmeDkpOwor
CisJbWVtY3B5KHB0ciwgc2hhZGVyLCBzaGFkZXJfc2l6ZSk7CisKKwlyZXR1cm4gMDsKK30KKwor
c3RhdGljIGludCBhbWRncHVfZHJhd19pbml0KHVpbnQzMl90ICpwdHIpCit7CisJaW50IGkgPSAw
OworCWNvbnN0IHVpbnQzMl90ICpwcmVhbWJsZWNhY2hlX3B0cjsKKwl1aW50MzJfdCBwcmVhbWJs
ZWNhY2hlX3NpemU7CisKKwkvKiBXcml0ZSBjb250ZXh0IGNvbnRyb2wgYW5kIGxvYWQgc2hhZG93
aW5nIHJlZ2lzdGVyIGlmIG5lY2Vzc2FyeSAqLworCXB0cltpKytdID0gUEFDS0VUMyhQS1QzX0NP
TlRFWFRfQ09OVFJPTCwgMSk7CisJcHRyW2krK10gPSAweDgwMDAwMDAwOworCXB0cltpKytdID0g
MHg4MDAwMDAwMDsKKworCXByZWFtYmxlY2FjaGVfcHRyID0gcHJlYW1ibGVjYWNoZV9nZng5Owor
CXByZWFtYmxlY2FjaGVfc2l6ZSA9IHNpemVvZihwcmVhbWJsZWNhY2hlX2dmeDkpOworCisJbWVt
Y3B5KHB0ciArIGksIHByZWFtYmxlY2FjaGVfcHRyLCBwcmVhbWJsZWNhY2hlX3NpemUpOworCXJl
dHVybiBpICsgcHJlYW1ibGVjYWNoZV9zaXplL3NpemVvZih1aW50MzJfdCk7Cit9CisKK3N0YXRp
YyBpbnQgYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdibHRfc3VyZl9pbmZvKHVpbnQz
Ml90ICpwdHIsCisJCQkJCQkJIHVpbnQ2NF90IGRzdF9hZGRyKQoreworCWludCBpID0gMDsKKwor
CS8qIHNldHVwIGNvbG9yIGJ1ZmZlciAqLworCS8qIG9mZnNldCAgIHJlZworCSAgIDB4QTMxOCAg
IENCX0NPTE9SMF9CQVNFCisJICAgMHhBMzE5ICAgQ0JfQ09MT1IwX0JBU0VfRVhUCisJICAgMHhB
MzFBICAgQ0JfQ09MT1IwX0FUVFJJQjIKKwkgICAweEEzMUIgICBDQl9DT0xPUjBfVklFVworCSAg
IDB4QTMxQyAgIENCX0NPTE9SMF9JTkZPCisJICAgMHhBMzFEICAgQ0JfQ09MT1IwX0FUVFJJQgor
CSAgIDB4QTMxRSAgIENCX0NPTE9SMF9EQ0NfQ09OVFJPTAorCSAgIDB4QTMxRiAgIENCX0NPTE9S
MF9DTUFTSworCSAgIDB4QTMyMCAgIENCX0NPTE9SMF9DTUFTS19CQVNFX0VYVAorCSAgIDB4QTMy
MSAgIENCX0NPTE9SMF9GTUFTSworCSAgIDB4QTMyMiAgIENCX0NPTE9SMF9GTUFTS19CQVNFX0VY
VAorCSAgIDB4QTMyMyAgIENCX0NPTE9SMF9DTEVBUl9XT1JEMAorCSAgIDB4QTMyNCAgIENCX0NP
TE9SMF9DTEVBUl9XT1JEMQorCSAgIDB4QTMyNSAgIENCX0NPTE9SMF9EQ0NfQkFTRQorCSAgIDB4
QTMyNiAgIENCX0NPTE9SMF9EQ0NfQkFTRV9FWFQgKi8KKwlwdHJbaSsrXSA9IFBBQ0tFVDMoUEFD
S0VUM19TRVRfQ09OVEVYVF9SRUcsIDE1KTsKKwlwdHJbaSsrXSA9IDB4MzE4OworCXB0cltpKytd
ID0gZHN0X2FkZHIgPj4gODsKKwlwdHJbaSsrXSA9IGRzdF9hZGRyID4+IDQwOworCXB0cltpKytd
ID0gMHg3YzAxZjsKKwlwdHJbaSsrXSA9IDA7CisJcHRyW2krK10gPSAweDUwNDM4OworCXB0cltp
KytdID0gMHgxMDE0MDAwMDsKKwlpICs9IDk7CisKKwkvKiBtbUNCX01SVDBfRVBJVENIICovCisJ
cHRyW2krK10gPSBQQUNLRVQzKFBBQ0tFVDNfU0VUX0NPTlRFWFRfUkVHLCAxKTsKKwlwdHJbaSsr
XSA9IDB4MWU4OworCXB0cltpKytdID0gMHgxZjsKKworCS8qIDB4QTMyQiAgIENCX0NPTE9SMV9C
QVNFICovCisJcHRyW2krK10gPSBQQUNLRVQzKFBBQ0tFVDNfU0VUX0NPTlRFWFRfUkVHLCAxKTsK
KwlwdHJbaSsrXSA9IDB4MzJiOworCXB0cltpKytdID0gMDsKKworCS8qIDB4QTMzQSAgIENCX0NP
TE9SMV9CQVNFICovCisJcHRyW2krK10gPSBQQUNLRVQzKFBBQ0tFVDNfU0VUX0NPTlRFWFRfUkVH
LCAxKTsKKwlwdHJbaSsrXSA9IDB4MzNhOworCXB0cltpKytdID0gMDsKKworCS8qIFNQSV9TSEFE
RVJfQ09MX0ZPUk1BVCAqLworCXB0cltpKytdID0gUEFDS0VUMyhQQUNLRVQzX1NFVF9DT05URVhU
X1JFRywgMSk7CisJcHRyW2krK10gPSAweDFjNTsKKwlwdHJbaSsrXSA9IDk7CisKKwkvKiBTZXR1
cCBkZXB0aCBidWZmZXIgKi8KKwkvKiBtbURCX1pfSU5GTyAqLworCXB0cltpKytdID0gUEFDS0VU
MyhQQUNLRVQzX1NFVF9DT05URVhUX1JFRywgMik7CisJcHRyW2krK10gPSAweGU7CisJaSArPSAy
OworCisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dy
aXRlX2RyYXdibHRfc3RhdGUodWludDMyX3QgKnB0cikKK3sKKwlpbnQgaSA9IDA7CisJY29uc3Qg
dWludDMyX3QgKmNhY2hlZF9jbWRfcHRyOworCXVpbnQzMl90IGNhY2hlZF9jbWRfc2l6ZTsKKwor
CS8qIG1tUEFfU0NfVElMRV9TVEVFUklOR19PVkVSUklERSAqLworCXB0cltpKytdID0gUEFDS0VU
MyhQQUNLRVQzX1NFVF9DT05URVhUX1JFRywgMSk7CisJcHRyW2krK10gPSAweGQ3OworCXB0cltp
KytdID0gMDsKKworCXB0cltpKytdID0gMHhmZmZmMTAwMDsKKwlwdHJbaSsrXSA9IDB4YzAwMjEw
MDA7CisKKwlwdHJbaSsrXSA9IFBBQ0tFVDMoUEFDS0VUM19TRVRfQ09OVEVYVF9SRUcsIDEpOwor
CXB0cltpKytdID0gMHhkNzsKKwlwdHJbaSsrXSA9IDE7CisKKwkvKiBtbVBBX1NDX0FBX1NBTVBM
RV9MT0NTX1BJWEVMX1gwWTBfMCAqLworCXB0cltpKytdID0gUEFDS0VUMyhQQUNLRVQzX1NFVF9D
T05URVhUX1JFRywgMTYpOworCXB0cltpKytdID0gMHgyZmU7CisJaSArPSAxNjsKKworCS8qIG1t
UEFfU0NfQ0VOVFJPSURfUFJJT1JJVFlfMCAqLworCXB0cltpKytdID0gUEFDS0VUMyhQQUNLRVQz
X1NFVF9DT05URVhUX1JFRywgMik7CisJcHRyW2krK10gPSAweDJmNTsKKwlpICs9IDI7CisKKwlj
YWNoZWRfY21kX3B0ciA9IGNhY2hlZF9jbWRfZ2Z4OTsKKwljYWNoZWRfY21kX3NpemUgPSBzaXpl
b2YoY2FjaGVkX2NtZF9nZng5KTsKKworCW1lbWNweShwdHIgKyBpLCBjYWNoZWRfY21kX3B0ciwg
Y2FjaGVkX2NtZF9zaXplKTsKKwlpICs9IGNhY2hlZF9jbWRfc2l6ZS9zaXplb2YodWludDMyX3Qp
OworCisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyBpbnQgYW1kZ3B1X2RyYXdfdnNfUmVjdFBvc1Rl
eEZhc3Rfd3JpdGUyaHcodWludDMyX3QgKnB0ciwgdWludDY0X3Qgc2hhZGVyX2FkZHIpCit7CisJ
aW50IGkgPSAwOworCisJLyogbW1QQV9DTF9WU19PVVRfQ05UTCAqLworCXB0cltpKytdID0gUEFD
S0VUMyhQQUNLRVQzX1NFVF9DT05URVhUX1JFRywgMSk7CisJcHRyW2krK10gPSAweDIwNzsKKwlw
dHJbaSsrXSA9IDA7CisKKwkvKiBtbVNQSV9TSEFERVJfUEdNX1JTUkMzX1ZTICovCisJcHRyW2kr
K10gPSBQQUNLRVQzKFBLVDNfU0VUX1NIX1JFRywgMSk7CisJcHRyW2krK10gPSAweDQ2OworCXB0
cltpKytdID0gMHhmZmZmOworCisJLyogbW1TUElfU0hBREVSX1BHTV9MT19WUy4uLm1tU1BJX1NI
QURFUl9QR01fSElfVlMgKi8KKwlwdHJbaSsrXSA9IFBBQ0tFVDMoUEtUM19TRVRfU0hfUkVHLCAy
KTsKKwlwdHJbaSsrXSA9IDB4NDg7CisJcHRyW2krK10gPSBzaGFkZXJfYWRkciA+PiA4OworCXB0
cltpKytdID0gc2hhZGVyX2FkZHIgPj4gNDA7CisKKwkvKiBtbVNQSV9TSEFERVJfUEdNX1JTUkMx
X1ZTICovCisJcHRyW2krK10gPSBQQUNLRVQzKFBLVDNfU0VUX1NIX1JFRywgMSk7CisJcHRyW2kr
K10gPSAweDRhOworCXB0cltpKytdID0gMHhjMDA4MTsKKwkvKiBtbVNQSV9TSEFERVJfUEdNX1JT
UkMyX1ZTICovCisJcHRyW2krK10gPSBQQUNLRVQzKFBLVDNfU0VUX1NIX1JFRywgMSk7CisJcHRy
W2krK10gPSAweDRiOworCXB0cltpKytdID0gMHgxODsKKworCS8qIG1tU1BJX1ZTX09VVF9DT05G
SUcgKi8KKwlwdHJbaSsrXSA9IFBBQ0tFVDMoUEFDS0VUM19TRVRfQ09OVEVYVF9SRUcsIDEpOwor
CXB0cltpKytdID0gMHgxYjE7CisJcHRyW2krK10gPSAyOworCisJLyogbW1TUElfU0hBREVSX1BP
U19GT1JNQVQgKi8KKwlwdHJbaSsrXSA9IFBBQ0tFVDMoUEFDS0VUM19TRVRfQ09OVEVYVF9SRUcs
IDEpOworCXB0cltpKytdID0gMHgxYzM7CisJcHRyW2krK10gPSA0OworCisJcHRyW2krK10gPSBQ
QUNLRVQzKFBLVDNfU0VUX1NIX1JFRywgNCk7CisJcHRyW2krK10gPSAweDRjOworCWkgKz0gMjsK
KwlwdHJbaSsrXSA9IDB4NDIwMDAwMDA7CisJcHRyW2krK10gPSAweDQyMDAwMDAwOworCisJcHRy
W2krK10gPSBQQUNLRVQzKFBLVDNfU0VUX1NIX1JFRywgNCk7CisJcHRyW2krK10gPSAweDUwOwor
CWkgKz0gNDsKKworCXB0cltpKytdID0gUEFDS0VUMyhQS1QzX1NFVF9TSF9SRUcsIDQpOworCXB0
cltpKytdID0gMHg1NDsKKwlpICs9IDQ7CisKKwlyZXR1cm4gaTsKK30KKworc3RhdGljIGludCBh
bWRncHVfZHJhd19wc193cml0ZTJodyh1aW50MzJfdCAqcHRyLCB1aW50NjRfdCBzaGFkZXJfYWRk
cikKK3sKKwlpbnQgaSwgajsKKwljb25zdCB1aW50MzJfdCAqc2hfcmVnaXN0ZXJzOworCWNvbnN0
IHVpbnQzMl90ICpjb250ZXh0X3JlZ2lzdGVyczsKKwl1aW50MzJfdCBudW1fc2hfcmVnLCBudW1f
Y29udGV4dF9yZWc7CisKKwlzaF9yZWdpc3RlcnMgPSAoY29uc3QgdWludDMyX3QgKilwc19jb25z
dF9zaF9yZWdpc3RlcnNfZ2Z4OTsKKwljb250ZXh0X3JlZ2lzdGVycyA9IChjb25zdCB1aW50MzJf
dCAqKXBzX2NvbnN0X2NvbnRleHRfcmVnX2dmeDk7CisJbnVtX3NoX3JlZyA9IHBzX251bV9zaF9y
ZWdpc3RlcnNfZ2Z4OTsKKwludW1fY29udGV4dF9yZWcgPSBwc19udW1fY29udGV4dF9yZWdpc3Rl
cnNfZ2Z4OTsKKworCWkgPSAwOworCisJLyogMHgyYzA3ICAgU1BJX1NIQURFUl9QR01fUlNSQzNf
UFMKKwkgICAweDJjMDggICBTUElfU0hBREVSX1BHTV9MT19QUworCSAgIDB4MmMwOSAgIFNQSV9T
SEFERVJfUEdNX0hJX1BTICovCisJc2hhZGVyX2FkZHIgKz0gMjU2ICogOTsKKwlwdHJbaSsrXSA9
IFBBQ0tFVDMoUEtUM19TRVRfU0hfUkVHLCAzKTsKKwlwdHJbaSsrXSA9IDB4NzsKKwlwdHJbaSsr
XSA9IDB4ZmZmZjsKKwlwdHJbaSsrXSA9IHNoYWRlcl9hZGRyID4+IDg7CisJcHRyW2krK10gPSBz
aGFkZXJfYWRkciA+PiA0MDsKKworCWZvciAoaiA9IDA7IGogPCBudW1fc2hfcmVnOyBqKyspIHsK
KwkJcHRyW2krK10gPSBQQUNLRVQzKFBLVDNfU0VUX1NIX1JFRywgMSk7CisJCXB0cltpKytdID0g
c2hfcmVnaXN0ZXJzW2ogKiAyXSAtIDB4MmMwMDsKKwkJcHRyW2krK10gPSBzaF9yZWdpc3RlcnNb
aiAqIDIgKyAxXTsKKwl9CisKKwlmb3IgKGogPSAwOyBqIDwgbnVtX2NvbnRleHRfcmVnOyBqKysp
IHsKKwkJaWYgKGNvbnRleHRfcmVnaXN0ZXJzW2ogKiAyXSAhPSAweEExQzUpIHsKKwkJCXB0cltp
KytdID0gUEFDS0VUMyhQQUNLRVQzX1NFVF9DT05URVhUX1JFRywgMSk7CisJCQlwdHJbaSsrXSA9
IGNvbnRleHRfcmVnaXN0ZXJzW2ogKiAyXSAtIDB4YTAwMDsKKwkJCXB0cltpKytdID0gY29udGV4
dF9yZWdpc3RlcnNbaiAqIDIgKyAxXTsKKwkJfQorCisJCWlmIChjb250ZXh0X3JlZ2lzdGVyc1tq
ICogMl0gPT0gMHhBMUI0KSB7CisJCQlwdHJbaSsrXSA9IFBBQ0tFVDMoUEFDS0VUM19TRVRfQ09O
VEVYVF9SRUcsIDEpOworCQkJcHRyW2krK10gPSAweDFiMzsKKwkJCXB0cltpKytdID0gMjsKKwkJ
fQorCX0KKworCXJldHVybiBpOworfQorCitzdGF0aWMgaW50IGFtZGdwdV9kcmF3X2RyYXcodWlu
dDMyX3QgKnB0cikKK3sKKwlpbnQgaSA9IDA7CisKKwkvKiBtbUlBX01VTFRJX1ZHVF9QQVJBTSAq
LworCXB0cltpKytdID0gUEFDS0VUMyhQQUNLRVQzX1NFVF9VQ09ORklHX1JFRywgMSk7CisJcHRy
W2krK10gPSAweDQwMDAwMjU4OworCXB0cltpKytdID0gMHhkMDBmZjsKKworCS8qIG1tVkdUX1BS
SU1JVElWRV9UWVBFICovCisJcHRyW2krK10gPSBQQUNLRVQzKFBBQ0tFVDNfU0VUX1VDT05GSUdf
UkVHLCAxKTsKKwlwdHJbaSsrXSA9IDB4MTAwMDAyNDI7CisJcHRyW2krK10gPSAweDExOworCisJ
cHRyW2krK10gPSBQQUNLRVQzKFBBQ0tFVDNfRFJBV19JTkRFWF9BVVRPLCAxKTsKKwlwdHJbaSsr
XSA9IDM7CisJcHRyW2krK10gPSAyOworCisJcmV0dXJuIGk7Cit9CisKK3ZvaWQgYW1kZ3B1X21l
bXNldF9kcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmljZV9oYW5kbGUsCisJCQlhbWRncHVf
Ym9faGFuZGxlIGJvX3NoYWRlcl9wcywKKwkJCWFtZGdwdV9ib19oYW5kbGUgYm9fc2hhZGVyX3Zz
LAorCQkJdWludDY0X3QgbWNfYWRkcmVzc19zaGFkZXJfcHMsCisJCQl1aW50NjRfdCBtY19hZGRy
ZXNzX3NoYWRlcl92cywKKwkJCXVpbnQzMl90IHJpbmdfaWQpCit7CisJYW1kZ3B1X2NvbnRleHRf
aGFuZGxlIGNvbnRleHRfaGFuZGxlOworCWFtZGdwdV9ib19oYW5kbGUgYm9fZHN0LCBib19jbWQs
IHJlc291cmNlc1s0XTsKKwl2b2xhdGlsZSB1bnNpZ25lZCBjaGFyICpwdHJfZHN0OworCXVpbnQz
Ml90ICpwdHJfY21kOworCXVpbnQ2NF90IG1jX2FkZHJlc3NfZHN0LCBtY19hZGRyZXNzX2NtZDsK
KwlhbWRncHVfdmFfaGFuZGxlIHZhX2RzdCwgdmFfY21kOworCWludCBpLCByOworCWludCBib19k
c3Rfc2l6ZSA9IDE2Mzg0OworCWludCBib19jbWRfc2l6ZSA9IDQwOTY7CisJc3RydWN0IGFtZGdw
dV9jc19yZXF1ZXN0IGlic19yZXF1ZXN0ID0gezB9OworCXN0cnVjdCBhbWRncHVfY3NfaWJfaW5m
byBpYl9pbmZvID0gezB9OworCXN0cnVjdCBhbWRncHVfY3NfZmVuY2UgZmVuY2Vfc3RhdHVzID0g
ezB9OworCXVpbnQzMl90IGV4cGlyZWQ7CisJYW1kZ3B1X2JvX2xpc3RfaGFuZGxlIGJvX2xpc3Q7
CisKKwlyID0gYW1kZ3B1X2NzX2N0eF9jcmVhdGUoZGV2aWNlX2hhbmRsZSwgJmNvbnRleHRfaGFu
ZGxlKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX2FsbG9jX2Fu
ZF9tYXAoZGV2aWNlX2hhbmRsZSwgYm9fY21kX3NpemUsIDQwOTYsCisJCQkJCUFNREdQVV9HRU1f
RE9NQUlOX0dUVCwgMCwKKwkJCQkJJmJvX2NtZCwgKHZvaWQgKiopJnB0cl9jbWQsCisJCQkJCSZt
Y19hZGRyZXNzX2NtZCwgJnZhX2NtZCk7CisgICAgICAgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsK
KworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCBib19kc3Rfc2l6
ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dFTV9ET01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX2RzdCwg
KHZvaWQgKiopJnB0cl9kc3QsCisJCQkJCSZtY19hZGRyZXNzX2RzdCwgJnZhX2RzdCk7CisJQ1Vf
QVNTRVJUX0VRVUFMKHIsIDApOworCisJaSA9IDA7CisJaSArPSBhbWRncHVfZHJhd19pbml0KHB0
cl9jbWQgKyBpKTsKKworCWkgKz0gYW1kZ3B1X2RyYXdfc2V0dXBfYW5kX3dyaXRlX2RyYXdibHRf
c3VyZl9pbmZvKHB0cl9jbWQgKyBpLCBtY19hZGRyZXNzX2RzdCk7CisKKwlpICs9IGFtZGdwdV9k
cmF3X3NldHVwX2FuZF93cml0ZV9kcmF3Ymx0X3N0YXRlKHB0cl9jbWQgKyBpKTsKKworCWkgKz0g
YW1kZ3B1X2RyYXdfdnNfUmVjdFBvc1RleEZhc3Rfd3JpdGUyaHcocHRyX2NtZCArIGksIG1jX2Fk
ZHJlc3Nfc2hhZGVyX3ZzKTsKKworCWkgKz0gYW1kZ3B1X2RyYXdfcHNfd3JpdGUyaHcocHRyX2Nt
ZCArIGksIG1jX2FkZHJlc3Nfc2hhZGVyX3BzKTsKKworCXB0cl9jbWRbaSsrXSA9IFBBQ0tFVDMo
UEtUM19TRVRfU0hfUkVHLCA0KTsKKwlwdHJfY21kW2krK10gPSAweGM7CisJcHRyX2NtZFtpKytd
ID0gMHgzMzMzMzMzMzsKKwlwdHJfY21kW2krK10gPSAweDMzMzMzMzMzOworCXB0cl9jbWRbaSsr
XSA9IDB4MzMzMzMzMzM7CisJcHRyX2NtZFtpKytdID0gMHgzMzMzMzMzMzsKKworCWkgKz0gYW1k
Z3B1X2RyYXdfZHJhdyhwdHJfY21kICsgaSk7CisKKwl3aGlsZSAoaSAmIDcpCisJCXB0cl9jbWRb
aSsrXSA9ICAweGZmZmYxMDAwOyAvKiB0eXBlMyBub3AgcGFja2V0ICovCisKKwlyZXNvdXJjZXNb
MF0gPSBib19kc3Q7CisJcmVzb3VyY2VzWzFdID0gYm9fc2hhZGVyX3BzOworCXJlc291cmNlc1sy
XSA9IGJvX3NoYWRlcl92czsKKwlyZXNvdXJjZXNbM10gPSBib19jbWQ7CisJciA9IGFtZGdwdV9i
b19saXN0X2NyZWF0ZShkZXZpY2VfaGFuZGxlLCAzLCByZXNvdXJjZXMsIE5VTEwsICZib19saXN0
KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlpYl9pbmZvLmliX21jX2FkZHJlc3MgPSBt
Y19hZGRyZXNzX2NtZDsKKwlpYl9pbmZvLnNpemUgPSBpOworCWlic19yZXF1ZXN0LmlwX3R5cGUg
PSBBTURHUFVfSFdfSVBfR0ZYOworCWlic19yZXF1ZXN0LnJpbmcgPSByaW5nX2lkOworCWlic19y
ZXF1ZXN0LnJlc291cmNlcyA9IGJvX2xpc3Q7CisJaWJzX3JlcXVlc3QubnVtYmVyX29mX2licyA9
IDE7CisJaWJzX3JlcXVlc3QuaWJzID0gJmliX2luZm87CisJaWJzX3JlcXVlc3QuZmVuY2VfaW5m
by5oYW5kbGUgPSBOVUxMOworCisJLyogc3VibWl0IENTICovCisJciA9IGFtZGdwdV9jc19zdWJt
aXQoY29udGV4dF9oYW5kbGUsIDAsICZpYnNfcmVxdWVzdCwgMSk7CisJQ1VfQVNTRVJUX0VRVUFM
KHIsIDApOworCisJciA9IGFtZGdwdV9ib19saXN0X2Rlc3Ryb3koYm9fbGlzdCk7CisJQ1VfQVNT
RVJUX0VRVUFMKHIsIDApOworCisJZmVuY2Vfc3RhdHVzLmlwX3R5cGUgPSBBTURHUFVfSFdfSVBf
R0ZYOworCWZlbmNlX3N0YXR1cy5pcF9pbnN0YW5jZSA9IDA7CisJZmVuY2Vfc3RhdHVzLnJpbmcg
PSByaW5nX2lkOworCWZlbmNlX3N0YXR1cy5jb250ZXh0ID0gY29udGV4dF9oYW5kbGU7CisJZmVu
Y2Vfc3RhdHVzLmZlbmNlID0gaWJzX3JlcXVlc3Quc2VxX25vOworCisJLyogd2FpdCBmb3IgSUIg
YWNjb21wbGlzaGVkICovCisJciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMoJmZlbmNl
X3N0YXR1cywKKwkJCQkJIEFNREdQVV9USU1FT1VUX0lORklOSVRFLAorCQkJCQkgMCwgJmV4cGly
ZWQpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwoZXhwaXJlZCwg
dHJ1ZSk7CisKKwkvKiB2ZXJpZnkgaWYgbWVtc2V0IHRlc3QgcmVzdWx0IG1lZXRzIHdpdGggZXhw
ZWN0ZWQgKi8KKwlpID0gMDsKKwl3aGlsZShpIDwgYm9fZHN0X3NpemUpIHsKKwkJQ1VfQVNTRVJU
X0VRVUFMKHB0cl9kc3RbaSsrXSwgMHgzMyk7CisJfQorCisJciA9IGFtZGdwdV9ib191bm1hcF9h
bmRfZnJlZShib19kc3QsIHZhX2RzdCwgbWNfYWRkcmVzc19kc3QsIGJvX2RzdF9zaXplKTsKKwlD
VV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJv
X2NtZCwgdmFfY21kLCBtY19hZGRyZXNzX2NtZCwgYm9fY21kX3NpemUpOworCUNVX0FTU0VSVF9F
UVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfY3NfY3R4X2ZyZWUoY29udGV4dF9oYW5kbGUpOwor
CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKK30KKworc3RhdGljIHZvaWQgYW1kZ3B1X21lbXNldF9k
cmF3X3Rlc3QoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwKKwkJCQkgICAgdWlu
dDMyX3QgcmluZykKK3sKKwlhbWRncHVfYm9faGFuZGxlIGJvX3NoYWRlcl9wcywgYm9fc2hhZGVy
X3ZzOworCXZvaWQgKnB0cl9zaGFkZXJfcHM7CisJdm9pZCAqcHRyX3NoYWRlcl92czsKKwl1aW50
NjRfdCBtY19hZGRyZXNzX3NoYWRlcl9wcywgbWNfYWRkcmVzc19zaGFkZXJfdnM7CisJYW1kZ3B1
X3ZhX2hhbmRsZSB2YV9zaGFkZXJfcHMsIHZhX3NoYWRlcl92czsKKwlpbnQgcjsKKwlpbnQgYm9f
c2hhZGVyX3NpemUgPSA0MDk2OworCisJciA9IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmlj
ZV9oYW5kbGUsIGJvX3NoYWRlcl9zaXplLCA0MDk2LAorCQkJCQlBTURHUFVfR0VNX0RPTUFJTl9W
UkFNLCAwLAorCQkJCQkmYm9fc2hhZGVyX3BzLCAmcHRyX3NoYWRlcl9wcywKKwkJCQkJJm1jX2Fk
ZHJlc3Nfc2hhZGVyX3BzLCAmdmFfc2hhZGVyX3BzKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7
CisKKwlyID0gYW1kZ3B1X2JvX2FsbG9jX2FuZF9tYXAoZGV2aWNlX2hhbmRsZSwgYm9fc2hhZGVy
X3NpemUsIDQwOTYsCisJCQkJCUFNREdQVV9HRU1fRE9NQUlOX1ZSQU0sIDAsCisJCQkJCSZib19z
aGFkZXJfdnMsICZwdHJfc2hhZGVyX3ZzLAorCQkJCQkmbWNfYWRkcmVzc19zaGFkZXJfdnMsICZ2
YV9zaGFkZXJfdnMpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfZHJh
d19sb2FkX3BzX3NoYWRlcihwdHJfc2hhZGVyX3BzLCBQU19DT05TVCk7CisJQ1VfQVNTRVJUX0VR
VUFMKHIsIDApOworCisJciA9IGFtZGdwdV9kcmF3X2xvYWRfdnNfc2hhZGVyKHB0cl9zaGFkZXJf
dnMpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCWFtZGdwdV9tZW1zZXRfZHJhdyhkZXZp
Y2VfaGFuZGxlLCBib19zaGFkZXJfcHMsIGJvX3NoYWRlcl92cywKKwkJCW1jX2FkZHJlc3Nfc2hh
ZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRlcl92cywgcmluZyk7CisKKwlyID0gYW1kZ3B1X2JvX3Vu
bWFwX2FuZF9mcmVlKGJvX3NoYWRlcl9wcywgdmFfc2hhZGVyX3BzLCBtY19hZGRyZXNzX3NoYWRl
cl9wcywgYm9fc2hhZGVyX3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBh
bWRncHVfYm9fdW5tYXBfYW5kX2ZyZWUoYm9fc2hhZGVyX3ZzLCB2YV9zaGFkZXJfdnMsIG1jX2Fk
ZHJlc3Nfc2hhZGVyX3ZzLCBib19zaGFkZXJfc2l6ZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDAp
OworfQorCitzdGF0aWMgdm9pZCBhbWRncHVfZHJhd190ZXN0KHZvaWQpCit7CisJaW50IHI7CisJ
c3RydWN0IGRybV9hbWRncHVfaW5mb19od19pcCBpbmZvOworCXVpbnQzMl90IHJpbmdfaWQ7CisK
KwlyID0gYW1kZ3B1X3F1ZXJ5X2h3X2lwX2luZm8oZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQ
X0dGWCwgMCwgJmluZm8pOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCWZvciAocmluZ19p
ZCA9IDA7ICgxIDw8IHJpbmdfaWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7IHJpbmdfaWQrKykK
KwkJYW1kZ3B1X21lbXNldF9kcmF3X3Rlc3QoZGV2aWNlX2hhbmRsZSwgcmluZ19pZCk7Cit9CmNv
bW1pdCBjMWNlZDBiYWZkYjRjODE3YTMwZmY3YjhjNGNlYjdkYjFlOTNlY2M1CkF1dGhvcjogQ3Vp
LCBGbG9yYSA8RmxvcmEuQ3VpQGFtZC5jb20+CkRhdGU6ICAgRnJpIE1hciAxNSAwODo1MToxMyAy
MDE5ICswMDAwCgogICAgdGVzdHMvYW1kZ3B1OiBhZGQgbWVtY3B5IGRpc3BhdGNoIHRlc3QKICAg
IAogICAgYWRkIG1lbWNweSBkaXNwYXRjaCB0ZXN0IGZvciBnZng5CiAgICAKICAgIFNpZ25lZC1v
ZmYtYnk6IEZsb3JhIEN1aSA8ZmxvcmEuY3VpQGFtZC5jb20+CiAgICBUZXN0ZWQtYnk6IFJ1aSBU
ZW5nIDxydWkudGVuZ0BhbWQuY29tPgogICAgUmV2aWV3ZWQtYnk6IEhhd2tpbmcgWmhhbmcgPEhh
d2tpbmcuWmhhbmdAYW1kLmNvbT4KICAgIFNpZ25lZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxl
eGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KCmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYmFzaWNf
dGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9iYXNpY190ZXN0cy5jCmluZGV4IGZlNmRiMDlhLi4yZjU1
OWY0ZSAxMDA2NDQKLS0tIGEvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKKysrIGIvdGVzdHMv
YW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKQEAgLTI5NCw2ICsyOTQsNyBAQCBzdGF0aWMgIHVpbnQzMl90
IHNoYWRlcl9iaW5bXSA9IHsKIAogZW51bSBjc190eXBlIHsKIAlDU19CVUZGRVJDTEVBUiwKKwlD
U19CVUZGRVJDT1BZCiB9OwogCiBzdGF0aWMgY29uc3QgdWludDMyX3QgYnVmZmVyY2xlYXJfY3Nf
c2hhZGVyX2dmeDlbXSA9IHsKQEAgLTMxMiw2ICszMTMsMTEgQEAgc3RhdGljIGNvbnN0IHVpbnQz
Ml90IGJ1ZmZlcmNsZWFyX2NzX3NoYWRlcl9yZWdpc3RlcnNfZ2Z4OVtdWzJdID0gewogCiBzdGF0
aWMgY29uc3QgdWludDMyX3QgYnVmZmVyY2xlYXJfY3Nfc2hhZGVyX3JlZ2lzdGVyc19udW1fZ2Z4
OSA9IDU7CiAKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBidWZmZXJjb3B5X2NzX3NoYWRlcl9nZng5
W10gPSB7CisgICAgMHhEMUZEMDAwMCwgMHgwNDAxMEMwOCwgMHhFMDBDMjAwMCwgMHg4MDAwMDEw
MCwKKyAgICAweEJGOEMwRjcwLCAweEUwMUMyMDAwLCAweDgwMDEwMTAwLCAweEJGODEwMDAwCit9
OworCiBpbnQgYW1kZ3B1X2JvX2FsbG9jX2FuZF9tYXBfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxl
IGRldiwgdW5zaWduZWQgc2l6ZSwKIAkJCXVuc2lnbmVkIGFsaWdubWVudCwgdW5zaWduZWQgaGVh
cCwgdWludDY0X3QgYWxsb2NfZmxhZ3MsCiAJCQl1aW50NjRfdCBtYXBwaW5nX2ZsYWdzLCBhbWRn
cHVfYm9faGFuZGxlICpibywgdm9pZCAqKmNwdSwKQEAgLTE5MjAsNiArMTkyNiwxMCBAQCBzdGF0
aWMgaW50IGFtZGdwdV9kaXNwYXRjaF9sb2FkX2NzX3NoYWRlcih1aW50OF90ICpwdHIsCiAJCQlz
aGFkZXIgPSBidWZmZXJjbGVhcl9jc19zaGFkZXJfZ2Z4OTsKIAkJCXNoYWRlcl9zaXplID0gc2l6
ZW9mKGJ1ZmZlcmNsZWFyX2NzX3NoYWRlcl9nZng5KTsKIAkJCWJyZWFrOworCQljYXNlIENTX0JV
RkZFUkNPUFk6CisJCQlzaGFkZXIgPSBidWZmZXJjb3B5X2NzX3NoYWRlcl9nZng5OworCQkJc2hh
ZGVyX3NpemUgPSBzaXplb2YoYnVmZmVyY29weV9jc19zaGFkZXJfZ2Z4OSk7CisJCQlicmVhazsK
IAkJZGVmYXVsdDoKIAkJCXJldHVybiAtMTsKIAkJCWJyZWFrOwpAQCAtMjEzNCw2ICsyMTQ0LDE1
MSBAQCBzdGF0aWMgdm9pZCBhbWRncHVfbWVtc2V0X2Rpc3BhdGNoX3Rlc3QoYW1kZ3B1X2Rldmlj
ZV9oYW5kbGUgZGV2aWNlX2hhbmRsZSwKIAlDVV9BU1NFUlRfRVFVQUwociwgMCk7CiB9CiAKK3Zv
aWQgYW1kZ3B1X21lbWNweV9kaXNwYXRjaF90ZXN0KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldmlj
ZV9oYW5kbGUsCisJCQkJIHVpbnQzMl90IGlwX3R5cGUsCisJCQkJIHVpbnQzMl90IHJpbmcpCit7
CisJYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHRfaGFuZGxlOworCWFtZGdwdV9ib19oYW5k
bGUgYm9fc3JjLCBib19kc3QsIGJvX3NoYWRlciwgYm9fY21kLCByZXNvdXJjZXNbNF07CisJdm9s
YXRpbGUgdW5zaWduZWQgY2hhciAqcHRyX2RzdDsKKwl2b2lkICpwdHJfc2hhZGVyOworCXVuc2ln
bmVkIGNoYXIgKnB0cl9zcmM7CisJdWludDMyX3QgKnB0cl9jbWQ7CisJdWludDY0X3QgbWNfYWRk
cmVzc19zcmMsIG1jX2FkZHJlc3NfZHN0LCBtY19hZGRyZXNzX3NoYWRlciwgbWNfYWRkcmVzc19j
bWQ7CisJYW1kZ3B1X3ZhX2hhbmRsZSB2YV9zcmMsIHZhX2RzdCwgdmFfc2hhZGVyLCB2YV9jbWQ7
CisJaW50IGksIHI7CisJaW50IGJvX2RzdF9zaXplID0gMTYzODQ7CisJaW50IGJvX3NoYWRlcl9z
aXplID0gNDA5NjsKKwlpbnQgYm9fY21kX3NpemUgPSA0MDk2OworCXN0cnVjdCBhbWRncHVfY3Nf
cmVxdWVzdCBpYnNfcmVxdWVzdCA9IHswfTsKKwlzdHJ1Y3QgYW1kZ3B1X2NzX2liX2luZm8gaWJf
aW5mbz0gezB9OworCXVpbnQzMl90IGV4cGlyZWQ7CisJYW1kZ3B1X2JvX2xpc3RfaGFuZGxlIGJv
X2xpc3Q7CisJc3RydWN0IGFtZGdwdV9jc19mZW5jZSBmZW5jZV9zdGF0dXMgPSB7MH07CisKKwly
ID0gYW1kZ3B1X2NzX2N0eF9jcmVhdGUoZGV2aWNlX2hhbmRsZSwgJmNvbnRleHRfaGFuZGxlKTsK
KwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX2FsbG9jX2FuZF9tYXAo
ZGV2aWNlX2hhbmRsZSwgYm9fY21kX3NpemUsIDQwOTYsCisJCQkJICAgIEFNREdQVV9HRU1fRE9N
QUlOX0dUVCwgMCwKKwkJCQkgICAgJmJvX2NtZCwgKHZvaWQgKiopJnB0cl9jbWQsCisJCQkJICAg
ICZtY19hZGRyZXNzX2NtZCwgJnZhX2NtZCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJ
ciA9IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIGJvX3NoYWRlcl9zaXpl
LCA0MDk2LAorCQkJCQlBTURHUFVfR0VNX0RPTUFJTl9WUkFNLCAwLAorCQkJCQkmYm9fc2hhZGVy
LCAmcHRyX3NoYWRlciwKKwkJCQkJJm1jX2FkZHJlc3Nfc2hhZGVyLCAmdmFfc2hhZGVyKTsKKwlD
VV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2Rpc3BhdGNoX2xvYWRfY3Nfc2hh
ZGVyKHB0cl9zaGFkZXIsIENTX0JVRkZFUkNPUFkgKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7
CisKKwlyID0gYW1kZ3B1X2JvX2FsbG9jX2FuZF9tYXAoZGV2aWNlX2hhbmRsZSwgYm9fZHN0X3Np
emUsIDQwOTYsCisJCQkJCUFNREdQVV9HRU1fRE9NQUlOX1ZSQU0sIDAsCisJCQkJCSZib19zcmMs
ICh2b2lkICoqKSZwdHJfc3JjLAorCQkJCQkmbWNfYWRkcmVzc19zcmMsICZ2YV9zcmMpOworCUNV
X0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZp
Y2VfaGFuZGxlLCBib19kc3Rfc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dFTV9ET01BSU5fVlJB
TSwgMCwKKwkJCQkJJmJvX2RzdCwgKHZvaWQgKiopJnB0cl9kc3QsCisJCQkJCSZtY19hZGRyZXNz
X2RzdCwgJnZhX2RzdCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJbWVtc2V0KHB0cl9z
cmMsIDB4NTUsIGJvX2RzdF9zaXplKTsKKworCWkgPSAwOworCWkgKz0gYW1kZ3B1X2Rpc3BhdGNo
X2luaXQocHRyX2NtZCArIGksIGlwX3R5cGUpOworCisJLyogIElzc3VlIGNvbW1hbmRzIHRvIHNl
dCBjdSBtYXNrIHVzZWQgaW4gY3VycmVudCBkaXNwYXRjaCAqLworCWkgKz0gYW1kZ3B1X2Rpc3Bh
dGNoX3dyaXRlX2N1bWFzayhwdHJfY21kICsgaSk7CisKKwkvKiBXcml0ZXMgc2hhZGVyIHN0YXRl
IHRvIEhXICovCisJaSArPSBhbWRncHVfZGlzcGF0Y2hfd3JpdGUyaHcocHRyX2NtZCArIGksIG1j
X2FkZHJlc3Nfc2hhZGVyKTsKKworCS8qIFdyaXRlIGNvbnN0YW50IGRhdGEgKi8KKwkvKiBXcml0
ZXMgdGhlIHRleHR1cmUgcmVzb3VyY2UgY29uc3RhbnRzIGRhdGEgdG8gdGhlIFNHUFJzICovCisJ
cHRyX2NtZFtpKytdID0gUEFDS0VUM19DT01QVVRFKFBLVDNfU0VUX1NIX1JFRywgNCk7CisJcHRy
X2NtZFtpKytdID0gMHgyNDA7CisJcHRyX2NtZFtpKytdID0gbWNfYWRkcmVzc19zcmM7CisJcHRy
X2NtZFtpKytdID0gKG1jX2FkZHJlc3Nfc3JjID4+IDMyKSB8IDB4MTAwMDAwOworCXB0cl9jbWRb
aSsrXSA9IDB4NDAwOworCXB0cl9jbWRbaSsrXSA9IDB4NzRmYWM7CisKKwkvKiBXcml0ZXMgdGhl
IFVBViBjb25zdGFudCBkYXRhIHRvIHRoZSBTR1BScy4gKi8KKwlwdHJfY21kW2krK10gPSBQQUNL
RVQzX0NPTVBVVEUoUEtUM19TRVRfU0hfUkVHLCA0KTsKKwlwdHJfY21kW2krK10gPSAweDI0NDsK
KwlwdHJfY21kW2krK10gPSBtY19hZGRyZXNzX2RzdDsKKwlwdHJfY21kW2krK10gPSAobWNfYWRk
cmVzc19kc3QgPj4gMzIpIHwgMHgxMDAwMDA7CisJcHRyX2NtZFtpKytdID0gMHg0MDA7CisJcHRy
X2NtZFtpKytdID0gMHg3NGZhYzsKKworCS8qIGRpc3BhdGNoIGRpcmVjdCBjb21tYW5kICovCisJ
cHRyX2NtZFtpKytdID0gUEFDS0VUM19DT01QVVRFKFBBQ0tFVDNfRElTUEFUQ0hfRElSRUNULCAz
KTsKKwlwdHJfY21kW2krK10gPSAweDEwOworCXB0cl9jbWRbaSsrXSA9IDE7CisJcHRyX2NtZFtp
KytdID0gMTsKKwlwdHJfY21kW2krK10gPSAxOworCisJd2hpbGUgKGkgJiA3KQorCQlwdHJfY21k
W2krK10gPSAgMHhmZmZmMTAwMDsgLyogdHlwZTMgbm9wIHBhY2tldCAqLworCisJcmVzb3VyY2Vz
WzBdID0gYm9fc2hhZGVyOworCXJlc291cmNlc1sxXSA9IGJvX3NyYzsKKwlyZXNvdXJjZXNbMl0g
PSBib19kc3Q7CisJcmVzb3VyY2VzWzNdID0gYm9fY21kOworCXIgPSBhbWRncHVfYm9fbGlzdF9j
cmVhdGUoZGV2aWNlX2hhbmRsZSwgNCwgcmVzb3VyY2VzLCBOVUxMLCAmYm9fbGlzdCk7CisJQ1Vf
QVNTRVJUX0VRVUFMKHIsIDApOworCisJaWJfaW5mby5pYl9tY19hZGRyZXNzID0gbWNfYWRkcmVz
c19jbWQ7CisJaWJfaW5mby5zaXplID0gaTsKKwlpYnNfcmVxdWVzdC5pcF90eXBlID0gaXBfdHlw
ZTsKKwlpYnNfcmVxdWVzdC5yaW5nID0gcmluZzsKKwlpYnNfcmVxdWVzdC5yZXNvdXJjZXMgPSBi
b19saXN0OworCWlic19yZXF1ZXN0Lm51bWJlcl9vZl9pYnMgPSAxOworCWlic19yZXF1ZXN0Lmli
cyA9ICZpYl9pbmZvOworCWlic19yZXF1ZXN0LmZlbmNlX2luZm8uaGFuZGxlID0gTlVMTDsKKwly
ID0gYW1kZ3B1X2NzX3N1Ym1pdChjb250ZXh0X2hhbmRsZSwgMCwgJmlic19yZXF1ZXN0LCAxKTsK
KwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlmZW5jZV9zdGF0dXMuaXBfdHlwZSA9IGlwX3R5
cGU7CisJZmVuY2Vfc3RhdHVzLmlwX2luc3RhbmNlID0gMDsKKwlmZW5jZV9zdGF0dXMucmluZyA9
IHJpbmc7CisJZmVuY2Vfc3RhdHVzLmNvbnRleHQgPSBjb250ZXh0X2hhbmRsZTsKKwlmZW5jZV9z
dGF0dXMuZmVuY2UgPSBpYnNfcmVxdWVzdC5zZXFfbm87CisKKwkvKiB3YWl0IGZvciBJQiBhY2Nv
bXBsaXNoZWQgKi8KKwlyID0gYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cygmZmVuY2Vfc3Rh
dHVzLAorCQkJCQkgQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEUsCisJCQkJCSAwLCAmZXhwaXJlZCk7
CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTChleHBpcmVkLCB0cnVl
KTsKKworCS8qIHZlcmlmeSBpZiBtZW1jcHkgdGVzdCByZXN1bHQgbWVldHMgd2l0aCBleHBlY3Rl
ZCAqLworCWkgPSAwOworCXdoaWxlKGkgPCBib19kc3Rfc2l6ZSkgeworCQlDVV9BU1NFUlRfRVFV
QUwocHRyX2RzdFtpXSwgcHRyX3NyY1tpXSk7CisJCWkrKzsKKwl9CisKKwlyID0gYW1kZ3B1X2Jv
X2xpc3RfZGVzdHJveShib19saXN0KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0g
YW1kZ3B1X2JvX3VubWFwX2FuZF9mcmVlKGJvX3NyYywgdmFfc3JjLCBtY19hZGRyZXNzX3NyYywg
Ym9fZHN0X3NpemUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlyID0gYW1kZ3B1X2JvX3Vu
bWFwX2FuZF9mcmVlKGJvX2RzdCwgdmFfZHN0LCBtY19hZGRyZXNzX2RzdCwgYm9fZHN0X3NpemUp
OworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fdW5tYXBfYW5kX2Zy
ZWUoYm9fY21kLCB2YV9jbWQsIG1jX2FkZHJlc3NfY21kLCBib19jbWRfc2l6ZSk7CisJQ1VfQVNT
RVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9ib191bm1hcF9hbmRfZnJlZShib19zaGFk
ZXIsIHZhX3NoYWRlciwgbWNfYWRkcmVzc19zaGFkZXIsIGJvX3NoYWRlcl9zaXplKTsKKwlDVV9B
U1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGNvbnRleHRfaGFu
ZGxlKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cit9CiBzdGF0aWMgdm9pZCBhbWRncHVfZGlz
cGF0Y2hfdGVzdCh2b2lkKQogewogCWludCByOwpAQCAtMjE0MywxMiArMjI5OCwxNiBAQCBzdGF0
aWMgdm9pZCBhbWRncHVfZGlzcGF0Y2hfdGVzdCh2b2lkKQogCXIgPSBhbWRncHVfcXVlcnlfaHdf
aXBfaW5mbyhkZXZpY2VfaGFuZGxlLCBBTURHUFVfSFdfSVBfQ09NUFVURSwgMCwgJmluZm8pOwog
CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKIAotCWZvciAocmluZ19pZCA9IDA7ICgxIDw8IHJpbmdf
aWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7IHJpbmdfaWQrKykKKwlmb3IgKHJpbmdfaWQgPSAw
OyAoMSA8PCByaW5nX2lkKSAmIGluZm8uYXZhaWxhYmxlX3JpbmdzOyByaW5nX2lkKyspIHsKIAkJ
YW1kZ3B1X21lbXNldF9kaXNwYXRjaF90ZXN0KGRldmljZV9oYW5kbGUsIEFNREdQVV9IV19JUF9D
T01QVVRFLCByaW5nX2lkKTsKKwkJYW1kZ3B1X21lbWNweV9kaXNwYXRjaF90ZXN0KGRldmljZV9o
YW5kbGUsIEFNREdQVV9IV19JUF9DT01QVVRFLCByaW5nX2lkKTsKKwl9CiAKIAlyID0gYW1kZ3B1
X3F1ZXJ5X2h3X2lwX2luZm8oZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0dGWCwgMCwgJmlu
Zm8pOwogCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKIAotCWZvciAocmluZ19pZCA9IDA7ICgxIDw8
IHJpbmdfaWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7IHJpbmdfaWQrKykKKwlmb3IgKHJpbmdf
aWQgPSAwOyAoMSA8PCByaW5nX2lkKSAmIGluZm8uYXZhaWxhYmxlX3JpbmdzOyByaW5nX2lkKysp
IHsKIAkJYW1kZ3B1X21lbXNldF9kaXNwYXRjaF90ZXN0KGRldmljZV9oYW5kbGUsIEFNREdQVV9I
V19JUF9HRlgsIHJpbmdfaWQpOworCQlhbWRncHVfbWVtY3B5X2Rpc3BhdGNoX3Rlc3QoZGV2aWNl
X2hhbmRsZSwgQU1ER1BVX0hXX0lQX0dGWCwgcmluZ19pZCk7CisJfQogfQpjb21taXQgOGRiNGUy
ZGI0MTQ5MWJhMDViN2ZlNGRhMDcyNTExNGJiZjIzNzhiMgpBdXRob3I6IEN1aSwgRmxvcmEgPEZs
b3JhLkN1aUBhbWQuY29tPgpEYXRlOiAgIEZyaSBNYXIgMTUgMDg6NTA6NTQgMjAxOSArMDAwMAoK
ICAgIHRlc3RzL2FtZGdwdTogYWRkIG1lbXNldCBkaXNwYXRjaCB0ZXN0CiAgICAKICAgIGFkZCBt
ZW1zZXQgZGlzcGF0Y2ggdGVzdCBmb3IgZ2Z4OQogICAgdjI6IGRpc2FibGUgZGlzcGF0Y2ggdGVz
dCBmb3Igb3RoZXIgQVNJQ3MKICAgIAogICAgU2lnbmVkLW9mZi1ieTogRmxvcmEgQ3VpIDxmbG9y
YS5jdWlAYW1kLmNvbT4KICAgIFRlc3RlZC1ieTogUnVpIFRlbmcgPHJ1aS50ZW5nQGFtZC5jb20+
CiAgICBSZXZpZXdlZC1ieTogSGF3a2luZyBaaGFuZyA8SGF3a2luZy5aaGFuZ0BhbWQuY29tPgog
ICAgU2lnbmVkLW9mZi1ieTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29t
PgoKZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jIGIvdGVzdHMvYW1kZ3B1
L2FtZGdwdV90ZXN0LmMKaW5kZXggMzhiOGE2ODEuLjhjYzg3YjEzIDEwMDY0NAotLS0gYS90ZXN0
cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYworKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwpA
QCAtNDQwLDYgKzQ0MCwxMSBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGlzYWJsZV9zdWl0ZXMoKQog
CWlmIChmYW1pbHlfaWQgPCBBTURHUFVfRkFNSUxZX1ZJIHx8IGZhbWlseV9pZCA+IEFNREdQVV9G
QU1JTFlfUlYpCiAJCWlmIChhbWRncHVfc2V0X3Rlc3RfYWN0aXZlKEJBU0lDX1RFU1RTX1NUUiwg
IlN5bmMgZGVwZW5kZW5jeSBUZXN0IiwgQ1VfRkFMU0UpKQogCQkJZnByaW50ZihzdGRlcnIsICJ0
ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAlc1xuIiwgQ1VfZ2V0X2Vycm9yX21zZygpKTsKKwor
CS8qIFRoaXMgdGVzdCB3YXMgcmFuIG9uIEdGWDkgb25seSAqLworCWlmIChmYW1pbHlfaWQgPCBB
TURHUFVfRkFNSUxZX0FJIHx8IGZhbWlseV9pZCA+IEFNREdQVV9GQU1JTFlfUlYpCisJCWlmIChh
bWRncHVfc2V0X3Rlc3RfYWN0aXZlKEJBU0lDX1RFU1RTX1NUUiwgIkRpc3BhdGNoIFRlc3QiLCBD
VV9GQUxTRSkpCisJCQlmcHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAt
ICVzXG4iLCBDVV9nZXRfZXJyb3JfbXNnKCkpOwogfQogCiAvKiBUaGUgbWFpbigpIGZ1bmN0aW9u
IGZvciBzZXR0aW5nIHVwIGFuZCBydW5uaW5nIHRoZSB0ZXN0cy4KZGlmZiAtLWdpdCBhL3Rlc3Rz
L2FtZGdwdS9iYXNpY190ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L2Jhc2ljX3Rlc3RzLmMKaW5kZXgg
ZGJhZTRkNTMuLmZlNmRiMDlhIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMu
YworKysgYi90ZXN0cy9hbWRncHUvYmFzaWNfdGVzdHMuYwpAQCAtNDksNiArNDksNyBAQCBzdGF0
aWMgdm9pZCBhbWRncHVfdXNlcnB0cl90ZXN0KHZvaWQpOwogc3RhdGljIHZvaWQgYW1kZ3B1X3Nl
bWFwaG9yZV90ZXN0KHZvaWQpOwogc3RhdGljIHZvaWQgYW1kZ3B1X3N5bmNfZGVwZW5kZW5jeV90
ZXN0KHZvaWQpOwogc3RhdGljIHZvaWQgYW1kZ3B1X2JvX2V2aWN0aW9uX3Rlc3Qodm9pZCk7Citz
dGF0aWMgdm9pZCBhbWRncHVfZGlzcGF0Y2hfdGVzdCh2b2lkKTsKIAogc3RhdGljIHZvaWQgYW1k
Z3B1X2NvbW1hbmRfc3VibWlzc2lvbl93cml0ZV9saW5lYXJfaGVscGVyKHVuc2lnbmVkIGlwX3R5
cGUpOwogc3RhdGljIHZvaWQgYW1kZ3B1X2NvbW1hbmRfc3VibWlzc2lvbl9jb25zdF9maWxsX2hl
bHBlcih1bnNpZ25lZCBpcF90eXBlKTsKQEAgLTcwLDYgKzcxLDcgQEAgQ1VfVGVzdEluZm8gYmFz
aWNfdGVzdHNbXSA9IHsKIAl7ICJDb21tYW5kIHN1Ym1pc3Npb24gVGVzdCAoU0RNQSkiLCBhbWRn
cHVfY29tbWFuZF9zdWJtaXNzaW9uX3NkbWEgfSwKIAl7ICJTVyBzZW1hcGhvcmUgVGVzdCIsICBh
bWRncHVfc2VtYXBob3JlX3Rlc3QgfSwKIAl7ICJTeW5jIGRlcGVuZGVuY3kgVGVzdCIsICBhbWRn
cHVfc3luY19kZXBlbmRlbmN5X3Rlc3QgfSwKKwl7ICJEaXNwYXRjaCBUZXN0IiwgIGFtZGdwdV9k
aXNwYXRjaF90ZXN0IH0sCiAJQ1VfVEVTVF9JTkZPX05VTEwsCiB9OwogI2RlZmluZSBCVUZGRVJf
U0laRSAoOCAqIDEwMjQpCkBAIC0xMTcsNiArMTE5LDcgQEAgQ1VfVGVzdEluZm8gYmFzaWNfdGVz
dHNbXSA9IHsKICNkZWZpbmUgUEFDS0VUMyhvcCwgbikJKChQQUNLRVRfVFlQRTMgPDwgMzApIHwJ
CQkJXAogCQkJICgoKG9wKSAmIDB4RkYpIDw8IDgpIHwJCQkJXAogCQkJICgobikgJiAweDNGRkYp
IDw8IDE2KQorI2RlZmluZSBQQUNLRVQzX0NPTVBVVEUob3AsIG4pIFBBQ0tFVDMob3AsIG4pIHwg
KDEgPDwgMSkKIAogLyogUGFja2V0IDMgdHlwZXMgKi8KICNkZWZpbmUJUEFDS0VUM19OT1AJCQkJ
CTB4MTAKQEAgLTI0NSw4ICsyNDgsMTEgQEAgQ1VfVGVzdEluZm8gYmFzaWNfdGVzdHNbXSA9IHsK
ICNkZWZpbmUJCVBBQ0tFVDNfU0VUX1NIX1JFR19TVEFSVAkJCTB4MDAwMDJjMDAKIAogI2RlZmlu
ZQlQQUNLRVQzX0RJU1BBVENIX0RJUkVDVAkJCQkweDE1Ci0KLQorI2RlZmluZSBQQUNLRVQzX0VW
RU5UX1dSSVRFCQkJCTB4NDYKKyNkZWZpbmUgUEFDS0VUM19BQ1FVSVJFX01FTQkJCQkweDU4Cisj
ZGVmaW5lIFBBQ0tFVDNfU0VUX0NPTlRFWFRfUkVHCQkJCTB4NjkKKyNkZWZpbmUgUEFDS0VUM19T
RVRfVUNPTkZJR19SRUcJCQkJMHg3OQorI2RlZmluZSBQQUNLRVQzX0RSQVdfSU5ERVhfQVVUTwkJ
CQkweDJECiAvKiBnZnggOCAqLwogI2RlZmluZSBtbUNPTVBVVEVfUEdNX0xPICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJlMGMKICNkZWZp
bmUgbW1DT01QVVRFX1BHTV9SU1JDMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgMHgyZTEyCkBAIC0yODYsNiArMjkyLDI1IEBAIHN0YXRpYyAgdWlu
dDMyX3Qgc2hhZGVyX2JpbltdID0gewogI2RlZmluZSBDT0RFX09GRlNFVCA1MTIKICNkZWZpbmUg
REFUQV9PRkZTRVQgMTAyNAogCitlbnVtIGNzX3R5cGUgeworCUNTX0JVRkZFUkNMRUFSLAorfTsK
Kworc3RhdGljIGNvbnN0IHVpbnQzMl90IGJ1ZmZlcmNsZWFyX2NzX3NoYWRlcl9nZng5W10gPSB7
CisgICAgMHhEMUZEMDAwMCwgMHgwNDAxMEMwOCwgMHg3RTAyMDIwNCwgMHg3RTA0MDIwNSwKKyAg
ICAweDdFMDYwMjA2LCAweDdFMDgwMjA3LCAweEUwMUMyMDAwLCAweDgwMDAwMTAwLAorICAgIDB4
QkY4MTAwMDAKK307CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBidWZmZXJjbGVhcl9jc19zaGFk
ZXJfcmVnaXN0ZXJzX2dmeDlbXVsyXSA9IHsKKwl7MHgyZTEyLCAweDAwMEMwMDQxfSwJLy97IG1t
Q09NUFVURV9QR01fUlNSQzEsCSAgMHgwMDBDMDA0MSB9LAorCXsweDJlMTMsIDB4MDAwMDAwOTB9
LAkvL3sgbW1DT01QVVRFX1BHTV9SU1JDMiwJICAweDAwMDAwMDkwIH0sCisJezB4MmUwNywgMHgw
MDAwMDA0MH0sCS8veyBtbUNPTVBVVEVfTlVNX1RIUkVBRF9YLCAweDAwMDAwMDQwIH0sCisJezB4
MmUwOCwgMHgwMDAwMDAwMX0sCS8veyBtbUNPTVBVVEVfTlVNX1RIUkVBRF9ZLCAweDAwMDAwMDAx
IH0sCisJezB4MmUwOSwgMHgwMDAwMDAwMX0sCS8veyBtbUNPTVBVVEVfTlVNX1RIUkVBRF9aLCAw
eDAwMDAwMDAxIH0KK307CisKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBidWZmZXJjbGVhcl9jc19z
aGFkZXJfcmVnaXN0ZXJzX251bV9nZng5ID0gNTsKIAogaW50IGFtZGdwdV9ib19hbGxvY19hbmRf
bWFwX3JhdyhhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsIHVuc2lnbmVkIHNpemUsCiAJCQl1bnNp
Z25lZCBhbGlnbm1lbnQsIHVuc2lnbmVkIGhlYXAsIHVpbnQ2NF90IGFsbG9jX2ZsYWdzLApAQCAt
MTg4MywzICsxOTA4LDI0NyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfc3luY19kZXBlbmRlbmN5X3Rl
c3Qodm9pZCkKIAogCWZyZWUoaWJzX3JlcXVlc3QuZGVwZW5kZW5jaWVzKTsKIH0KKworc3RhdGlj
IGludCBhbWRncHVfZGlzcGF0Y2hfbG9hZF9jc19zaGFkZXIodWludDhfdCAqcHRyLAorCQkJCQkg
ICBpbnQgY3NfdHlwZSkKK3sKKwl1aW50MzJfdCBzaGFkZXJfc2l6ZTsKKwljb25zdCB1aW50MzJf
dCAqc2hhZGVyOworCisJc3dpdGNoIChjc190eXBlKSB7CisJCWNhc2UgQ1NfQlVGRkVSQ0xFQVI6
CisJCQlzaGFkZXIgPSBidWZmZXJjbGVhcl9jc19zaGFkZXJfZ2Z4OTsKKwkJCXNoYWRlcl9zaXpl
ID0gc2l6ZW9mKGJ1ZmZlcmNsZWFyX2NzX3NoYWRlcl9nZng5KTsKKwkJCWJyZWFrOworCQlkZWZh
dWx0OgorCQkJcmV0dXJuIC0xOworCQkJYnJlYWs7CisJfQorCisJbWVtY3B5KHB0ciwgc2hhZGVy
LCBzaGFkZXJfc2l6ZSk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYW1kZ3B1X2Rpc3Bh
dGNoX2luaXQodWludDMyX3QgKnB0ciwgdWludDMyX3QgaXBfdHlwZSkKK3sKKwlpbnQgaSA9IDA7
CisKKwkvKiBXcml0ZSBjb250ZXh0IGNvbnRyb2wgYW5kIGxvYWQgc2hhZG93aW5nIHJlZ2lzdGVy
IGlmIG5lY2Vzc2FyeSAqLworCWlmIChpcF90eXBlID09IEFNREdQVV9IV19JUF9HRlgpIHsKKwkJ
cHRyW2krK10gPSBQQUNLRVQzKFBLVDNfQ09OVEVYVF9DT05UUk9MLCAxKTsKKwkJcHRyW2krK10g
PSAweDgwMDAwMDAwOworCQlwdHJbaSsrXSA9IDB4ODAwMDAwMDA7CisJfQorCisJLyogSXNzdWUg
Y29tbWFuZHMgdG8gc2V0IGRlZmF1bHQgY29tcHV0ZSBzdGF0ZS4gKi8KKwkvKiBjbGVhciBtbUNP
TVBVVEVfU1RBUlRfWiAtIG1tQ09NUFVURV9TVEFSVF9YICovCisJcHRyW2krK10gPSBQQUNLRVQz
X0NPTVBVVEUoUEtUM19TRVRfU0hfUkVHLCAzKTsKKwlwdHJbaSsrXSA9IDB4MjA0OworCWkgKz0g
MzsKKwkvKiBjbGVhciBtbUNPTVBVVEVfUkVTT1VSQ0VfTElNSVRTICovCisJcHRyW2krK10gPSBQ
QUNLRVQzX0NPTVBVVEUoUEtUM19TRVRfU0hfUkVHLCAxKTsKKwlwdHJbaSsrXSA9IDB4MjE1Owor
CXB0cltpKytdID0gMDsKKwkvKiBjbGVhciBtbUNPTVBVVEVfVE1QUklOR19TSVpFICovCisJcHRy
W2krK10gPSBQQUNLRVQzX0NPTVBVVEUoUEtUM19TRVRfU0hfUkVHLCAxKTsKKwlwdHJbaSsrXSA9
IDB4MjE4OworCXB0cltpKytdID0gMDsKKworCXJldHVybiBpOworfQorCitzdGF0aWMgaW50IGFt
ZGdwdV9kaXNwYXRjaF93cml0ZV9jdW1hc2sodWludDMyX3QgKnB0cikKK3sKKwlpbnQgaSA9IDA7
CisKKwkvKiAgSXNzdWUgY29tbWFuZHMgdG8gc2V0IGN1IG1hc2sgdXNlZCBpbiBjdXJyZW50IGRp
c3BhdGNoICovCisJLyogc2V0IG1tQ09NUFVURV9TVEFUSUNfVEhSRUFEX01HTVRfU0UxIC0gbW1D
T01QVVRFX1NUQVRJQ19USFJFQURfTUdNVF9TRTAgKi8KKwlwdHJbaSsrXSA9IFBBQ0tFVDNfQ09N
UFVURShQS1QzX1NFVF9TSF9SRUcsIDIpOworCXB0cltpKytdID0gMHgyMTY7CisJcHRyW2krK10g
PSAweGZmZmZmZmZmOworCXB0cltpKytdID0gMHhmZmZmZmZmZjsKKwkvKiBzZXQgbW1DT01QVVRF
X1NUQVRJQ19USFJFQURfTUdNVF9TRTMgLSBtbUNPTVBVVEVfU1RBVElDX1RIUkVBRF9NR01UX1NF
MiAqLworCXB0cltpKytdID0gUEFDS0VUM19DT01QVVRFKFBLVDNfU0VUX1NIX1JFRywgMik7CisJ
cHRyW2krK10gPSAweDIxOTsKKwlwdHJbaSsrXSA9IDB4ZmZmZmZmZmY7CisJcHRyW2krK10gPSAw
eGZmZmZmZmZmOworCisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyBpbnQgYW1kZ3B1X2Rpc3BhdGNo
X3dyaXRlMmh3KHVpbnQzMl90ICpwdHIsIHVpbnQ2NF90IHNoYWRlcl9hZGRyKQoreworCWludCBp
LCBqOworCisJaSA9IDA7CisKKwkvKiBXcml0ZXMgc2hhZGVyIHN0YXRlIHRvIEhXICovCisJLyog
c2V0IG1tQ09NUFVURV9QR01fSEkgLSBtbUNPTVBVVEVfUEdNX0xPICovCisJcHRyW2krK10gPSBQ
QUNLRVQzX0NPTVBVVEUoUEtUM19TRVRfU0hfUkVHLCAyKTsKKwlwdHJbaSsrXSA9IDB4MjBjOwor
CXB0cltpKytdID0gKHNoYWRlcl9hZGRyID4+IDgpOworCXB0cltpKytdID0gKHNoYWRlcl9hZGRy
ID4+IDQwKTsKKwkvKiB3cml0ZSBzaCByZWdzKi8KKwlmb3IgKGogPSAwOyBqIDwgYnVmZmVyY2xl
YXJfY3Nfc2hhZGVyX3JlZ2lzdGVyc19udW1fZ2Z4OTsgaisrKSB7CisJCXB0cltpKytdID0gUEFD
S0VUM19DT01QVVRFKFBLVDNfU0VUX1NIX1JFRywgMSk7CisJCS8qIC0gR2Z4OVNoUmVnQmFzZSAq
LworCQlwdHJbaSsrXSA9IGJ1ZmZlcmNsZWFyX2NzX3NoYWRlcl9yZWdpc3RlcnNfZ2Z4OVtqXVsw
XSAtIDB4MmMwMDsKKwkJcHRyW2krK10gPSBidWZmZXJjbGVhcl9jc19zaGFkZXJfcmVnaXN0ZXJz
X2dmeDlbal1bMV07CisJfQorCisJcmV0dXJuIGk7Cit9CisKK3N0YXRpYyB2b2lkIGFtZGdwdV9t
ZW1zZXRfZGlzcGF0Y2hfdGVzdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXZpY2VfaGFuZGxlLAor
CQkJCQkgdWludDMyX3QgaXBfdHlwZSwKKwkJCQkJIHVpbnQzMl90IHJpbmcpCit7CisJYW1kZ3B1
X2NvbnRleHRfaGFuZGxlIGNvbnRleHRfaGFuZGxlOworCWFtZGdwdV9ib19oYW5kbGUgYm9fZHN0
LCBib19zaGFkZXIsIGJvX2NtZCwgcmVzb3VyY2VzWzNdOworCXZvbGF0aWxlIHVuc2lnbmVkIGNo
YXIgKnB0cl9kc3Q7CisJdm9pZCAqcHRyX3NoYWRlcjsKKwl1aW50MzJfdCAqcHRyX2NtZDsKKwl1
aW50NjRfdCBtY19hZGRyZXNzX2RzdCwgbWNfYWRkcmVzc19zaGFkZXIsIG1jX2FkZHJlc3NfY21k
OworCWFtZGdwdV92YV9oYW5kbGUgdmFfZHN0LCB2YV9zaGFkZXIsIHZhX2NtZDsKKwlpbnQgaSwg
cjsKKwlpbnQgYm9fZHN0X3NpemUgPSAxNjM4NDsKKwlpbnQgYm9fc2hhZGVyX3NpemUgPSA0MDk2
OworCWludCBib19jbWRfc2l6ZSA9IDQwOTY7CisJc3RydWN0IGFtZGdwdV9jc19yZXF1ZXN0IGli
c19yZXF1ZXN0ID0gezB9OworCXN0cnVjdCBhbWRncHVfY3NfaWJfaW5mbyBpYl9pbmZvPSB7MH07
CisJYW1kZ3B1X2JvX2xpc3RfaGFuZGxlIGJvX2xpc3Q7CisJc3RydWN0IGFtZGdwdV9jc19mZW5j
ZSBmZW5jZV9zdGF0dXMgPSB7MH07CisJdWludDMyX3QgZXhwaXJlZDsKKworCXIgPSBhbWRncHVf
Y3NfY3R4X2NyZWF0ZShkZXZpY2VfaGFuZGxlLCAmY29udGV4dF9oYW5kbGUpOworCUNVX0FTU0VS
VF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcChkZXZpY2VfaGFu
ZGxlLCBib19jbWRfc2l6ZSwgNDA5NiwKKwkJCQkJQU1ER1BVX0dFTV9ET01BSU5fR1RULCAwLAor
CQkJCQkmYm9fY21kLCAodm9pZCAqKikmcHRyX2NtZCwKKwkJCQkJJm1jX2FkZHJlc3NfY21kLCAm
dmFfY21kKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX2FsbG9j
X2FuZF9tYXAoZGV2aWNlX2hhbmRsZSwgYm9fc2hhZGVyX3NpemUsIDQwOTYsCisJCQkJCUFNREdQ
VV9HRU1fRE9NQUlOX1ZSQU0sIDAsCisJCQkJCSZib19zaGFkZXIsICZwdHJfc2hhZGVyLAorCQkJ
CQkmbWNfYWRkcmVzc19zaGFkZXIsICZ2YV9zaGFkZXIpOworCUNVX0FTU0VSVF9FUVVBTChyLCAw
KTsKKworCXIgPSBhbWRncHVfZGlzcGF0Y2hfbG9hZF9jc19zaGFkZXIocHRyX3NoYWRlciwgQ1Nf
QlVGRkVSQ0xFQVIpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9f
YWxsb2NfYW5kX21hcChkZXZpY2VfaGFuZGxlLCBib19kc3Rfc2l6ZSwgNDA5NiwKKwkJCQkJQU1E
R1BVX0dFTV9ET01BSU5fVlJBTSwgMCwKKwkJCQkJJmJvX2RzdCwgKHZvaWQgKiopJnB0cl9kc3Qs
CisJCQkJCSZtY19hZGRyZXNzX2RzdCwgJnZhX2RzdCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDAp
OworCisJaSA9IDA7CisJaSArPSBhbWRncHVfZGlzcGF0Y2hfaW5pdChwdHJfY21kICsgaSwgaXBf
dHlwZSk7CisKKwkvKiAgSXNzdWUgY29tbWFuZHMgdG8gc2V0IGN1IG1hc2sgdXNlZCBpbiBjdXJy
ZW50IGRpc3BhdGNoICovCisJaSArPSBhbWRncHVfZGlzcGF0Y2hfd3JpdGVfY3VtYXNrKHB0cl9j
bWQgKyBpKTsKKworCS8qIFdyaXRlcyBzaGFkZXIgc3RhdGUgdG8gSFcgKi8KKwlpICs9IGFtZGdw
dV9kaXNwYXRjaF93cml0ZTJodyhwdHJfY21kICsgaSwgbWNfYWRkcmVzc19zaGFkZXIpOworCisJ
LyogV3JpdGUgY29uc3RhbnQgZGF0YSAqLworCS8qIFdyaXRlcyB0aGUgVUFWIGNvbnN0YW50IGRh
dGEgdG8gdGhlIFNHUFJzLiAqLworCXB0cl9jbWRbaSsrXSA9IFBBQ0tFVDNfQ09NUFVURShQS1Qz
X1NFVF9TSF9SRUcsIDQpOworCXB0cl9jbWRbaSsrXSA9IDB4MjQwOworCXB0cl9jbWRbaSsrXSA9
IG1jX2FkZHJlc3NfZHN0OworCXB0cl9jbWRbaSsrXSA9IChtY19hZGRyZXNzX2RzdCA+PiAzMikg
fCAweDEwMDAwMDsKKwlwdHJfY21kW2krK10gPSAweDQwMDsKKwlwdHJfY21kW2krK10gPSAweDc0
ZmFjOworCisJLyogU2V0cyBhIHJhbmdlIG9mIHBpeGVsIHNoYWRlciBjb25zdGFudHMgKi8KKwlw
dHJfY21kW2krK10gPSBQQUNLRVQzX0NPTVBVVEUoUEtUM19TRVRfU0hfUkVHLCA0KTsKKwlwdHJf
Y21kW2krK10gPSAweDI0NDsKKwlwdHJfY21kW2krK10gPSAweDIyMjIyMjIyOworCXB0cl9jbWRb
aSsrXSA9IDB4MjIyMjIyMjI7CisJcHRyX2NtZFtpKytdID0gMHgyMjIyMjIyMjsKKwlwdHJfY21k
W2krK10gPSAweDIyMjIyMjIyOworCisJLyogZGlzcGF0Y2ggZGlyZWN0IGNvbW1hbmQgKi8KKwlw
dHJfY21kW2krK10gPSBQQUNLRVQzX0NPTVBVVEUoUEFDS0VUM19ESVNQQVRDSF9ESVJFQ1QsIDMp
OworCXB0cl9jbWRbaSsrXSA9IDB4MTA7CisJcHRyX2NtZFtpKytdID0gMTsKKwlwdHJfY21kW2kr
K10gPSAxOworCXB0cl9jbWRbaSsrXSA9IDE7CisKKwl3aGlsZSAoaSAmIDcpCisJCXB0cl9jbWRb
aSsrXSA9ICAweGZmZmYxMDAwOyAvKiB0eXBlMyBub3AgcGFja2V0ICovCisKKwlyZXNvdXJjZXNb
MF0gPSBib19kc3Q7CisJcmVzb3VyY2VzWzFdID0gYm9fc2hhZGVyOworCXJlc291cmNlc1syXSA9
IGJvX2NtZDsKKwlyID0gYW1kZ3B1X2JvX2xpc3RfY3JlYXRlKGRldmljZV9oYW5kbGUsIDMsIHJl
c291cmNlcywgTlVMTCwgJmJvX2xpc3QpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCWli
X2luZm8uaWJfbWNfYWRkcmVzcyA9IG1jX2FkZHJlc3NfY21kOworCWliX2luZm8uc2l6ZSA9IGk7
CisJaWJzX3JlcXVlc3QuaXBfdHlwZSA9IGlwX3R5cGU7CisJaWJzX3JlcXVlc3QucmluZyA9IHJp
bmc7CisJaWJzX3JlcXVlc3QucmVzb3VyY2VzID0gYm9fbGlzdDsKKwlpYnNfcmVxdWVzdC5udW1i
ZXJfb2ZfaWJzID0gMTsKKwlpYnNfcmVxdWVzdC5pYnMgPSAmaWJfaW5mbzsKKwlpYnNfcmVxdWVz
dC5mZW5jZV9pbmZvLmhhbmRsZSA9IE5VTEw7CisKKwkvKiBzdWJtaXQgQ1MgKi8KKwlyID0gYW1k
Z3B1X2NzX3N1Ym1pdChjb250ZXh0X2hhbmRsZSwgMCwgJmlic19yZXF1ZXN0LCAxKTsKKwlDVV9B
U1NFUlRfRVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2JvX2xpc3RfZGVzdHJveShib19saXN0
KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwlmZW5jZV9zdGF0dXMuaXBfdHlwZSA9IGlw
X3R5cGU7CisJZmVuY2Vfc3RhdHVzLmlwX2luc3RhbmNlID0gMDsKKwlmZW5jZV9zdGF0dXMucmlu
ZyA9IHJpbmc7CisJZmVuY2Vfc3RhdHVzLmNvbnRleHQgPSBjb250ZXh0X2hhbmRsZTsKKwlmZW5j
ZV9zdGF0dXMuZmVuY2UgPSBpYnNfcmVxdWVzdC5zZXFfbm87CisKKwkvKiB3YWl0IGZvciBJQiBh
Y2NvbXBsaXNoZWQgKi8KKwlyID0gYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cygmZmVuY2Vf
c3RhdHVzLAorCQkJCQkgQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEUsCisJCQkJCSAwLCAmZXhwaXJl
ZCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTChleHBpcmVkLCB0
cnVlKTsKKworCS8qIHZlcmlmeSBpZiBtZW1zZXQgdGVzdCByZXN1bHQgbWVldHMgd2l0aCBleHBl
Y3RlZCAqLworCWkgPSAwOworCXdoaWxlKGkgPCBib19kc3Rfc2l6ZSkgeworCQlDVV9BU1NFUlRf
RVFVQUwocHRyX2RzdFtpKytdLCAweDIyKTsKKwl9CisKKwlyID0gYW1kZ3B1X2JvX3VubWFwX2Fu
ZF9mcmVlKGJvX2RzdCwgdmFfZHN0LCBtY19hZGRyZXNzX2RzdCwgYm9fZHN0X3NpemUpOworCUNV
X0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fdW5tYXBfYW5kX2ZyZWUoYm9f
c2hhZGVyLCB2YV9zaGFkZXIsIG1jX2FkZHJlc3Nfc2hhZGVyLCBib19zaGFkZXJfc2l6ZSk7CisJ
Q1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9ib191bm1hcF9hbmRfZnJlZShi
b19jbWQsIHZhX2NtZCwgbWNfYWRkcmVzc19jbWQsIGJvX2NtZF9zaXplKTsKKwlDVV9BU1NFUlRf
RVFVQUwociwgMCk7CisKKwlyID0gYW1kZ3B1X2NzX2N0eF9mcmVlKGNvbnRleHRfaGFuZGxlKTsK
KwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIGFtZGdwdV9kaXNwYXRj
aF90ZXN0KHZvaWQpCit7CisJaW50IHI7CisJc3RydWN0IGRybV9hbWRncHVfaW5mb19od19pcCBp
bmZvOworCXVpbnQzMl90IHJpbmdfaWQ7CisKKwlyID0gYW1kZ3B1X3F1ZXJ5X2h3X2lwX2luZm8o
ZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0NPTVBVVEUsIDAsICZpbmZvKTsKKwlDVV9BU1NF
UlRfRVFVQUwociwgMCk7CisKKwlmb3IgKHJpbmdfaWQgPSAwOyAoMSA8PCByaW5nX2lkKSAmIGlu
Zm8uYXZhaWxhYmxlX3JpbmdzOyByaW5nX2lkKyspCisJCWFtZGdwdV9tZW1zZXRfZGlzcGF0Y2hf
dGVzdChkZXZpY2VfaGFuZGxlLCBBTURHUFVfSFdfSVBfQ09NUFVURSwgcmluZ19pZCk7CisKKwly
ID0gYW1kZ3B1X3F1ZXJ5X2h3X2lwX2luZm8oZGV2aWNlX2hhbmRsZSwgQU1ER1BVX0hXX0lQX0dG
WCwgMCwgJmluZm8pOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCWZvciAocmluZ19pZCA9
IDA7ICgxIDw8IHJpbmdfaWQpICYgaW5mby5hdmFpbGFibGVfcmluZ3M7IHJpbmdfaWQrKykKKwkJ
YW1kZ3B1X21lbXNldF9kaXNwYXRjaF90ZXN0KGRldmljZV9oYW5kbGUsIEFNREdQVV9IV19JUF9H
RlgsIHJpbmdfaWQpOworfQpjb21taXQgOGM2ZGJkNzkzODA5MmZmNjRiNjRiYjhkNjM3ZDU2YjBk
YzNmN2ZjOQpBdXRob3I6IEN1aSwgRmxvcmEgPEZsb3JhLkN1aUBhbWQuY29tPgpEYXRlOiAgIFdl
ZCBNYXIgNiAwNjozNzoxMyAyMDE5ICswMDAwCgogICAgdGVzdHMvYW1kZ3B1OiBhZGQgZGVhZGxv
Y2sgdGVzdCBmb3Igc2RtYQogICAgCiAgICBkZWFkbG9jayB0ZXN0IGZvciBzZG1hIHdpbGwgY2F1
c2UgZ3B1IHJlY292ZXJ0eS4KICAgIGRpc2FibGUgdGhlIHRlc3QgZm9yIG5vdyB1bnRpbCBHUFUg
cmVzZXQgcmVjb3ZlcnkgY291bGQgc3Vydml2ZSBhdCBsZWFzdAogICAgMTAwMCB0aW1lcyB0ZXN0
LgogICAgCiAgICB2MjogYWRkIG1vZHByb2JlIHBhcmFtZXRlcgogICAgCiAgICBSZXZpZXdlZC1h
bmQtdGVzdGVkLWJ5OiBFdmFuIFF1YW4gPGV2YW4ucXVhbkBhbWQuY29tPgogICAgQWNrZWQtYnk6
IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KICAgIFNpZ25lZC1v
ZmYtYnk6IEZsb3JhIEN1aSA8ZmxvcmEuY3VpQGFtZC5jb20+CiAgICBTaWduZWQtb2ZmLWJ5OiBB
bGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+CgpkaWZmIC0tZ2l0IGEvdGVz
dHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwppbmRl
eCBlYmY0NDA5OC4uMzhiOGE2ODEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVz
dC5jCisrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCkBAIC00MjYsNiArNDI2LDEwIEBA
IHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNhYmxlX3N1aXRlcygpCiAJCQkiY29tcHV0ZSByaW5nIGJs
b2NrIHRlc3QgKHNldCBhbWRncHUubG9ja3VwX3RpbWVvdXQ9NTApIiwgQ1VfRkFMU0UpKQogCQlm
cHJpbnRmKHN0ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAtICVzXG4iLCBDVV9nZXRf
ZXJyb3JfbXNnKCkpOwogCisJaWYgKGFtZGdwdV9zZXRfdGVzdF9hY3RpdmUoREVBRExPQ0tfVEVT
VFNfU1RSLAorCQkJCSJzZG1hIHJpbmcgYmxvY2sgdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGlt
ZW91dD01MCkiLCBDVV9GQUxTRSkpCisJCWZwcmludGYoc3RkZXJyLCAidGVzdCBkZWFjdGl2YXRp
b24gZmFpbGVkIC0gJXNcbiIsIENVX2dldF9lcnJvcl9tc2coKSk7CisKIAlpZiAoYW1kZ3B1X3Nl
dF90ZXN0X2FjdGl2ZShCT19URVNUU19TVFIsICJNZXRhZGF0YSIsIENVX0ZBTFNFKSkKIAkJZnBy
aW50ZihzdGRlcnIsICJ0ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAlc1xuIiwgQ1VfZ2V0X2Vy
cm9yX21zZygpKTsKIApkaWZmIC0tZ2l0IGEvdGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMg
Yi90ZXN0cy9hbWRncHUvZGVhZGxvY2tfdGVzdHMuYwppbmRleCBhNmMyNjM1ZC4uOTEzNjhjMTUg
MTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jCisrKyBiL3Rlc3RzL2Ft
ZGdwdS9kZWFkbG9ja190ZXN0cy5jCkBAIC05Niw2ICs5Niw5IEBACiAKICNkZWZpbmUgbW1WTV9D
T05URVhUMF9QQUdFX1RBQkxFX0JBU0VfQUREUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMHg1NGYKIAorI2RlZmluZSBTRE1BX1BLVF9IRUFERVJfT1AoeCkJKHggJiAweGZm
KQorI2RlZmluZSBTRE1BX09QX1BPTExfUkVHTUVNICA4CisKIHN0YXRpYyAgYW1kZ3B1X2Rldmlj
ZV9oYW5kbGUgZGV2aWNlX2hhbmRsZTsKIHN0YXRpYyAgdWludDMyX3QgIG1ham9yX3ZlcnNpb247
CiBzdGF0aWMgIHVpbnQzMl90ICBtaW5vcl92ZXJzaW9uOwpAQCAtMTEwLDYgKzExMyw3IEBAIHN0
YXRpYyB2b2lkIGFtZGdwdV9kZWFkbG9ja19nZngodm9pZCk7CiBzdGF0aWMgdm9pZCBhbWRncHVf
ZGVhZGxvY2tfY29tcHV0ZSh2b2lkKTsKIHN0YXRpYyB2b2lkIGFtZGdwdV9pbGxlZ2FsX3JlZ19h
Y2Nlc3MoKTsKIHN0YXRpYyB2b2lkIGFtZGdwdV9pbGxlZ2FsX21lbV9hY2Nlc3MoKTsKK3N0YXRp
YyB2b2lkIGFtZGdwdV9kZWFkbG9ja19zZG1hKHZvaWQpOwogCiBDVV9CT09MIHN1aXRlX2RlYWRs
b2NrX3Rlc3RzX2VuYWJsZSh2b2lkKQogewpAQCAtMTcxLDYgKzE3NSw3IEBAIGludCBzdWl0ZV9k
ZWFkbG9ja190ZXN0c19jbGVhbih2b2lkKQogQ1VfVGVzdEluZm8gZGVhZGxvY2tfdGVzdHNbXSA9
IHsKIAl7ICJnZnggcmluZyBibG9jayB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUw
KSIsIGFtZGdwdV9kZWFkbG9ja19nZnggfSwKIAl7ICJjb21wdXRlIHJpbmcgYmxvY2sgdGVzdCAo
c2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBhbWRncHVfZGVhZGxvY2tfY29tcHV0ZSB9
LAorCXsgInNkbWEgcmluZyBibG9jayB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUw
KSIsIGFtZGdwdV9kZWFkbG9ja19zZG1hIH0sCiAJeyAiaWxsZWdhbCByZWcgYWNjZXNzIHRlc3Qi
LCBhbWRncHVfaWxsZWdhbF9yZWdfYWNjZXNzIH0sCiAJeyAiaWxsZWdhbCBtZW0gYWNjZXNzIHRl
c3QgKHNldCBhbWRncHUudm1fZmF1bHRfc3RvcD0yKSIsIGFtZGdwdV9pbGxlZ2FsX21lbV9hY2Nl
c3MgfSwKIAlDVV9URVNUX0lORk9fTlVMTCwKQEAgLTI2MCw3ICsyNjUsNiBAQCBzdGF0aWMgdm9p
ZCBhbWRncHVfZGVhZGxvY2tfaGVscGVyKHVuc2lnbmVkIGlwX3R5cGUpCiAJaWJzX3JlcXVlc3Qu
aWJzID0gJmliX2luZm87CiAJaWJzX3JlcXVlc3QucmVzb3VyY2VzID0gYm9fbGlzdDsKIAlpYnNf
cmVxdWVzdC5mZW5jZV9pbmZvLmhhbmRsZSA9IE5VTEw7Ci0KIAlmb3IgKGkgPSAwOyBpIDwgMjAw
OyBpKyspIHsKIAkJciA9IGFtZGdwdV9jc19zdWJtaXQoY29udGV4dF9oYW5kbGUsIDAsJmlic19y
ZXF1ZXN0LCAxKTsKIAkJQ1VfQVNTRVJUX0VRVUFMKChyID09IDAgfHwgciA9PSAtRUNBTkNFTEVE
KSwgMSk7CkBAIC0yOTEsNiArMjk1LDEwMyBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGVhZGxvY2tf
aGVscGVyKHVuc2lnbmVkIGlwX3R5cGUpCiAJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwogfQogCitz
dGF0aWMgdm9pZCBhbWRncHVfZGVhZGxvY2tfc2RtYSh2b2lkKQoreworCWFtZGdwdV9jb250ZXh0
X2hhbmRsZSBjb250ZXh0X2hhbmRsZTsKKwlhbWRncHVfYm9faGFuZGxlIGliX3Jlc3VsdF9oYW5k
bGU7CisJdm9pZCAqaWJfcmVzdWx0X2NwdTsKKwl1aW50NjRfdCBpYl9yZXN1bHRfbWNfYWRkcmVz
czsKKwlzdHJ1Y3QgYW1kZ3B1X2NzX3JlcXVlc3QgaWJzX3JlcXVlc3Q7CisJc3RydWN0IGFtZGdw
dV9jc19pYl9pbmZvIGliX2luZm87CisJc3RydWN0IGFtZGdwdV9jc19mZW5jZSBmZW5jZV9zdGF0
dXM7CisJdWludDMyX3QgZXhwaXJlZDsKKwlpbnQgaSwgcjsKKwlhbWRncHVfYm9fbGlzdF9oYW5k
bGUgYm9fbGlzdDsKKwlhbWRncHVfdmFfaGFuZGxlIHZhX2hhbmRsZTsKKwlzdHJ1Y3QgZHJtX2Ft
ZGdwdV9pbmZvX2h3X2lwIGluZm87CisJdWludDMyX3QgcmluZ19pZDsKKworCXIgPSBhbWRncHVf
cXVlcnlfaHdfaXBfaW5mbyhkZXZpY2VfaGFuZGxlLCBBTURHUFVfSFdfSVBfRE1BLCAwLCAmaW5m
byk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IGFtZGdwdV9jc19jdHhfY3JlYXRl
KGRldmljZV9oYW5kbGUsICZjb250ZXh0X2hhbmRsZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDAp
OworCisJZm9yIChyaW5nX2lkID0gMDsgKDEgPDwgcmluZ19pZCkgJiBpbmZvLmF2YWlsYWJsZV9y
aW5nczsgcmluZ19pZCsrKSB7CisJCXIgPSBwdGhyZWFkX2NyZWF0ZSgmc3RyZXNzX3RocmVhZCwg
TlVMTCwgd3JpdGVfbWVtX2FkZHJlc3MsIE5VTEwpOworCQlDVV9BU1NFUlRfRVFVQUwociwgMCk7
CisKKwkJciA9IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwX3JhdyhkZXZpY2VfaGFuZGxlLCA0MDk2
LCA0MDk2LAorCQkJCUFNREdQVV9HRU1fRE9NQUlOX0dUVCwgMCwgdXNlX3VjX210eXBlID8gQU1E
R1BVX1ZNX01UWVBFX1VDIDogMCwKKwkJCQkJCQkgICAgJmliX3Jlc3VsdF9oYW5kbGUsICZpYl9y
ZXN1bHRfY3B1LAorCQkJCQkJCSAgICAmaWJfcmVzdWx0X21jX2FkZHJlc3MsICZ2YV9oYW5kbGUp
OworCQlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwkJciA9IGFtZGdwdV9nZXRfYm9fbGlzdChk
ZXZpY2VfaGFuZGxlLCBpYl9yZXN1bHRfaGFuZGxlLCBOVUxMLAorCQkJCSAgICAgICAmYm9fbGlz
dCk7CisJCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCQlwdHIgPSBpYl9yZXN1bHRfY3B1Owor
CQlpID0gMDsKKworCQlwdHJbaSsrXSA9IFNETUFfUEtUX0hFQURFUl9PUChTRE1BX09QX1BPTExf
UkVHTUVNKSB8CisJCQkJKDAgPDwgMjYpIHwgLyogV0FJVF9SRUdfTUVNICovCisJCQkJKDQgPDwg
MjgpIHwgLyogIT0gKi8KKwkJCQkoMSA8PCAzMSk7IC8qIG1lbW9yeSAqLworCQlwdHJbaSsrXSA9
IChpYl9yZXN1bHRfbWNfYWRkcmVzcyArIDI1Nio0KSAmIDB4ZmZmZmZmZmM7CisJCXB0cltpKytd
ID0gKChpYl9yZXN1bHRfbWNfYWRkcmVzcyArIDI1Nio0KSA+PiAzMikgJiAweGZmZmZmZmZmOwor
CQlwdHJbaSsrXSA9IDB4MDAwMDAwMDA7IC8qIHJlZmVyZW5jZSB2YWx1ZSAqLworCQlwdHJbaSsr
XSA9IDB4ZmZmZmZmZmY7IC8qIGFuZCBtYXNrICovCisJCXB0cltpKytdID0gIDQgfCAvKiBwb2xs
IGludGVydmFsICovCisJCQkJKDB4ZmZmIDw8IDE2KTsgLyogcmV0cnkgY291bnQgKi8KKworCQlm
b3IgKDsgaSA8IDE2OyBpKyspCisJCQlwdHJbaV0gPSAwOworCisJCXB0clsyNTZdID0gMHgwOyAv
KiB0aGUgbWVtb3J5IHdlIHdhaXQgb24gdG8gY2hhbmdlICovCisKKwkJbWVtc2V0KCZpYl9pbmZv
LCAwLCBzaXplb2Yoc3RydWN0IGFtZGdwdV9jc19pYl9pbmZvKSk7CisJCWliX2luZm8uaWJfbWNf
YWRkcmVzcyA9IGliX3Jlc3VsdF9tY19hZGRyZXNzOworCQlpYl9pbmZvLnNpemUgPSAxNjsKKwor
CQltZW1zZXQoJmlic19yZXF1ZXN0LCAwLCBzaXplb2Yoc3RydWN0IGFtZGdwdV9jc19yZXF1ZXN0
KSk7CisJCWlic19yZXF1ZXN0LmlwX3R5cGUgPSBBTURHUFVfSFdfSVBfRE1BOworCQlpYnNfcmVx
dWVzdC5yaW5nID0gcmluZ19pZDsKKwkJaWJzX3JlcXVlc3QubnVtYmVyX29mX2licyA9IDE7CisJ
CWlic19yZXF1ZXN0LmlicyA9ICZpYl9pbmZvOworCQlpYnNfcmVxdWVzdC5yZXNvdXJjZXMgPSBi
b19saXN0OworCQlpYnNfcmVxdWVzdC5mZW5jZV9pbmZvLmhhbmRsZSA9IE5VTEw7CisKKwkJZm9y
IChpID0gMDsgaSA8IDIwMDsgaSsrKSB7CisJCQlyID0gYW1kZ3B1X2NzX3N1Ym1pdChjb250ZXh0
X2hhbmRsZSwgMCwmaWJzX3JlcXVlc3QsIDEpOworCQkJQ1VfQVNTRVJUX0VRVUFMKChyID09IDAg
fHwgciA9PSAtRUNBTkNFTEVEKSwgMSk7CisKKwkJfQorCisJCW1lbXNldCgmZmVuY2Vfc3RhdHVz
LCAwLCBzaXplb2Yoc3RydWN0IGFtZGdwdV9jc19mZW5jZSkpOworCQlmZW5jZV9zdGF0dXMuY29u
dGV4dCA9IGNvbnRleHRfaGFuZGxlOworCQlmZW5jZV9zdGF0dXMuaXBfdHlwZSA9IEFNREdQVV9I
V19JUF9ETUE7CisJCWZlbmNlX3N0YXR1cy5pcF9pbnN0YW5jZSA9IDA7CisJCWZlbmNlX3N0YXR1
cy5yaW5nID0gcmluZ19pZDsKKwkJZmVuY2Vfc3RhdHVzLmZlbmNlID0gaWJzX3JlcXVlc3Quc2Vx
X25vOworCisJCXIgPSBhbWRncHVfY3NfcXVlcnlfZmVuY2Vfc3RhdHVzKCZmZW5jZV9zdGF0dXMs
CisJCQkJQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEUsMCwgJmV4cGlyZWQpOworCQlDVV9BU1NFUlRf
RVFVQUwoKHIgPT0gMCB8fCByID09IC1FQ0FOQ0VMRUQpLCAxKTsKKworCQlwdGhyZWFkX2pvaW4o
c3RyZXNzX3RocmVhZCwgTlVMTCk7CisKKwkJciA9IGFtZGdwdV9ib19saXN0X2Rlc3Ryb3koYm9f
bGlzdCk7CisJCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCQlyID0gYW1kZ3B1X2JvX3VubWFw
X2FuZF9mcmVlKGliX3Jlc3VsdF9oYW5kbGUsIHZhX2hhbmRsZSwKKwkJCQkJICAgICBpYl9yZXN1
bHRfbWNfYWRkcmVzcywgNDA5Nik7CisJCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwl9CisJciA9
IGFtZGdwdV9jc19jdHhfZnJlZShjb250ZXh0X2hhbmRsZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIs
IDApOworfQorCiBzdGF0aWMgdm9pZCBiYWRfYWNjZXNzX2hlbHBlcihpbnQgcmVnX2FjY2VzcykK
IHsKIAlhbWRncHVfY29udGV4dF9oYW5kbGUgY29udGV4dF9oYW5kbGU7CmNvbW1pdCBjOGJjNjlh
MTY1ZTFlYzYyY2NlYTU2ZWZiYjcwYjE4NTQzMzc2MDZiCkF1dGhvcjogQWxleCBEZXVjaGVyIDxh
bGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgpEYXRlOiAgIFR1ZSBNYXIgNSAxMToxNDozMSAyMDE5
IC0wNTAwCgogICAgYW1kZ3B1OiBhZGQgbWFya2V0aW5nIG5hbWUgZm9yIEFNRCBSYWRlb24gVklJ
CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJA
YW1kLmNvbT4KCmRpZmYgLS1naXQgYS9kYXRhL2FtZGdwdS5pZHMgYi9kYXRhL2FtZGdwdS5pZHMK
aW5kZXggZDI0YzdlZTYuLmY2MTQ5N2U0IDEwMDY0NAotLS0gYS9kYXRhL2FtZGdwdS5pZHMKKysr
IGIvZGF0YS9hbWRncHUuaWRzCkBAIC00NSw2ICs0NSw3IEBACiA2NjY1LAk4MywJQU1EIFJhZGVv
biAoVE0pIFI1IE0zMjAKIDY2NjcsCTAsCUFNRCBSYWRlb24gUjUgTTIwMCBTZXJpZXMKIDY2NkYs
CTAsCUFNRCBSYWRlb24gSEQgODUwME0KKzY2QUYsCUMxLAlBTUQgUmFkZW9uIFZJSQogNjc4MCwJ
MCwJQVRJIEZpcmVQcm8gViAoRmlyZUdMIFYpIEdyYXBoaWNzIEFkYXB0ZXIKIDY3OEEsCTAsCUFU
SSBGaXJlUHJvIFYgKEZpcmVHTCBWKSBHcmFwaGljcyBBZGFwdGVyCiA2Nzk4LAkwLAlBTUQgUmFk
ZW9uIEhEIDc5MDAgU2VyaWVzCgoKLS0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KRHJpLXBhdGNoZXMgbWFpbGluZyBsaXN0CkRyaS1wYXRjaGVzQGxpc3Rz
LnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0
aW5mby9kcmktcGF0Y2hlcwo=