drm: Branch 'master' - 7 commits

[email protected] (GitLab Mirror) Thu, 16 May 2019 10:08:04 +0000 (UTC)
Newsgroups gmane.comp.video.dri.patches
Message-ID <[email protected]>
IGFtZGdwdS9hbWRncHUtc3ltYm9sLWNoZWNrICAgfCAgICA1IAogYW1kZ3B1L2FtZGdwdS5oICAg
ICAgICAgICAgICB8ICAxMTIgKysrKysrKysrKysrKysrKwogYW1kZ3B1L2FtZGdwdV9jcy5jICAg
ICAgICAgICB8ICAxMDcgKysrKysrKysrKysrKysrCiBpbmNsdWRlL2RybS9hbWRncHVfZHJtLmgg
ICAgIHwgICAgOSArCiB0ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0gICAgIHwgICAgMyAKIHRlc3Rz
L2FtZGdwdS9hbWRncHVfdGVzdC5jICAgfCAgIDExICsKIHRlc3RzL2FtZGdwdS9hbWRncHVfdGVz
dC5oICAgfCAgIDIxICsrKwogdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkICAgICB8ICAgIDIgCiB0
ZXN0cy9hbWRncHUvc3luY29ial90ZXN0cy5jIHwgIDI5MCArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCiB4Zjg2ZHJtLmMgICAgICAgICAgICAgICAgICAgIHwgICA3
NyArKysrKysrKysrKwogeGY4NmRybS5oICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKwogMTEg
ZmlsZXMgY2hhbmdlZCwgNjQ3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpOZXcgY29t
bWl0czoKY29tbWl0IDdhYjQ3MWVkODUxNjkyN2ZiNmI5OGQ2OGYyZjE4ZjBkZDEzY2U3MTkKQXV0
aG9yOiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgpEYXRlOiAgIFRodSBNYXkg
MTYgMTY6MDc6MTQgMjAxOSArMDgwMAoKICAgIGFkZCBzeW5jb2JqIHRpbWVsaW5lIHRlc3RzIHYz
CiAgICAKICAgIHYyOiBkcm9wIERSTV9TWU5DT0JKX0NSRUFURV9UWVBFX1RJTUVMSU5FLCBmaXgg
dGltZW91dCBjYWxjdWxhdGlvbiwKICAgICAgICBmaXggc29tZSB3YXJuaW5ncwogICAgdjM6IGFk
ZCBleHBvcnQvaW1wb3J0IGFuZCBjcHUgc2lnbmFsIHRlc3RpbmcgY2FzZXMKICAgIAogICAgU2ln
bmVkLW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4KICAgIEFja2Vk
LWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CiAgICBBY2tl
ZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgoK
ZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbSBiL3Rlc3RzL2FtZGdwdS9NYWtl
ZmlsZS5hbQppbmRleCA0ODI3ODg0OC4uOTIwODgyZDAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2FtZGdw
dS9NYWtlZmlsZS5hbQorKysgYi90ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0KQEAgLTM0LDQgKzM0
LDUgQEAgYW1kZ3B1X3Rlc3RfU09VUkNFUyA9IFwKIAl1dmVfaWIuaCBcCiAJZGVhZGxvY2tfdGVz
dHMuYyBcCiAJdm1fdGVzdHMuYwlcCi0JcmFzX3Rlc3RzLmMKKwlyYXNfdGVzdHMuYyBcCisJc3lu
Y29ial90ZXN0cy5jCmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYyBiL3Rl
c3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCmluZGV4IDM1YzhiZjZjLi43MzQwM2ZiNCAxMDA2NDQK
LS0tIGEvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMKKysrIGIvdGVzdHMvYW1kZ3B1L2FtZGdw
dV90ZXN0LmMKQEAgLTU3LDYgKzU3LDcgQEAKICNkZWZpbmUgREVBRExPQ0tfVEVTVFNfU1RSICJE
ZWFkbG9jayBUZXN0cyIKICNkZWZpbmUgVk1fVEVTVFNfU1RSICJWTSBUZXN0cyIKICNkZWZpbmUg
UkFTX1RFU1RTX1NUUiAiUkFTIFRlc3RzIgorI2RlZmluZSBTWU5DT0JKX1RJTUVMSU5FX1RFU1RT
X1NUUiAiU1lOQ09CSiBUSU1FTElORSBUZXN0cyIKIAogLyoqCiAgKiAgT3BlbiBoYW5kbGVzIGZv
ciBhbWRncHUgZGV2aWNlcwpAQCAtMTIzLDYgKzEyNCwxMiBAQCBzdGF0aWMgQ1VfU3VpdGVJbmZv
IHN1aXRlc1tdID0gewogCQkucENsZWFudXBGdW5jID0gc3VpdGVfcmFzX3Rlc3RzX2NsZWFuLAog
CQkucFRlc3RzID0gcmFzX3Rlc3RzLAogCX0sCisJeworCQkucE5hbWUgPSBTWU5DT0JKX1RJTUVM
SU5FX1RFU1RTX1NUUiwKKwkJLnBJbml0RnVuYyA9IHN1aXRlX3N5bmNvYmpfdGltZWxpbmVfdGVz
dHNfaW5pdCwKKwkJLnBDbGVhbnVwRnVuYyA9IHN1aXRlX3N5bmNvYmpfdGltZWxpbmVfdGVzdHNf
Y2xlYW4sCisJCS5wVGVzdHMgPSBzeW5jb2JqX3RpbWVsaW5lX3Rlc3RzLAorCX0sCiAKIAlDVV9T
VUlURV9JTkZPX05VTEwsCiB9OwpAQCAtMTc2LDYgKzE4MywxMCBAQCBzdGF0aWMgU3VpdGVzX0Fj
dGl2ZV9TdGF0dXMgc3VpdGVzX2FjdGl2ZV9zdGF0W10gPSB7CiAJCQkucE5hbWUgPSBSQVNfVEVT
VFNfU1RSLAogCQkJLnBBY3RpdmUgPSBzdWl0ZV9yYXNfdGVzdHNfZW5hYmxlLAogCQl9LAorCQl7
CisJCQkucE5hbWUgPSBTWU5DT0JKX1RJTUVMSU5FX1RFU1RTX1NUUiwKKwkJCS5wQWN0aXZlID0g
c3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUsCisJCX0sCiB9OwogCiAKZGlmZiAt
LWdpdCBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90
ZXN0LmgKaW5kZXggYmNkMGJjN2UuLjM2Njc1ZWEzIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUv
YW1kZ3B1X3Rlc3QuaAorKysgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaApAQCAtMjE3LDYg
KzIxNywyNyBAQCBleHRlcm4gQ1VfVGVzdEluZm8gcmFzX3Rlc3RzW107CiAKIAogLyoqCisgKiBJ
bml0aWFsaXplIHN5bmNvYmogdGltZWxpbmUgdGVzdCBzdWl0ZQorICovCitpbnQgc3VpdGVfc3lu
Y29ial90aW1lbGluZV90ZXN0c19pbml0KCk7CisKKy8qKgorICogRGVpbml0aWFsaXplIHN5bmNv
YmogdGltZWxpbmUgdGVzdCBzdWl0ZQorICovCitpbnQgc3VpdGVfc3luY29ial90aW1lbGluZV90
ZXN0c19jbGVhbigpOworCisvKioKKyAqIERlY2lkZSBpZiB0aGUgc3VpdGUgaXMgZW5hYmxlZCBi
eSBkZWZhdWx0IG9yIG5vdC4KKyAqLworQ1VfQk9PTCBzdWl0ZV9zeW5jb2JqX3RpbWVsaW5lX3Rl
c3RzX2VuYWJsZSh2b2lkKTsKKworLyoqCisgKiBUZXN0cyBpbiBzeW5jb2JqIHRpbWVsaW5lIHRl
c3Qgc3VpdGUKKyAqLworZXh0ZXJuIENVX1Rlc3RJbmZvIHN5bmNvYmpfdGltZWxpbmVfdGVzdHNb
XTsKKworCisvKioKICAqIEhlbHBlciBmdW5jdGlvbnMKICAqLwogc3RhdGljIGlubGluZSBhbWRn
cHVfYm9faGFuZGxlIGdwdV9tZW1fYWxsb2MoCmRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvbWVz
b24uYnVpbGQgYi90ZXN0cy9hbWRncHUvbWVzb24uYnVpbGQKaW5kZXggOTVlZDkzMDUuLjE3MjZj
YjQzIDEwMDY0NAotLS0gYS90ZXN0cy9hbWRncHUvbWVzb24uYnVpbGQKKysrIGIvdGVzdHMvYW1k
Z3B1L21lc29uLmJ1aWxkCkBAIC0yNCw3ICsyNCw3IEBAIGlmIGRlcF9jdW5pdC5mb3VuZCgpCiAg
ICAgZmlsZXMoCiAgICAgICAnYW1kZ3B1X3Rlc3QuYycsICdiYXNpY190ZXN0cy5jJywgJ2JvX3Rl
c3RzLmMnLCAnY3NfdGVzdHMuYycsCiAgICAgICAndmNlX3Rlc3RzLmMnLCAndXZkX2VuY190ZXN0
cy5jJywgJ3Zjbl90ZXN0cy5jJywgJ2RlYWRsb2NrX3Rlc3RzLmMnLAotICAgICAgJ3ZtX3Rlc3Rz
LmMnLCAncmFzX3Rlc3RzLmMnLAorICAgICAgJ3ZtX3Rlc3RzLmMnLCAncmFzX3Rlc3RzLmMnLCAn
c3luY29ial90ZXN0cy5jJywKICAgICApLAogICAgIGRlcGVuZGVuY2llcyA6IFtkZXBfY3VuaXQs
IGRlcF90aHJlYWRzXSwKICAgICBpbmNsdWRlX2RpcmVjdG9yaWVzIDogW2luY19yb290LCBpbmNf
ZHJtLCBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuLi8uLi9hbWRncHUnKV0sCmRpZmYgLS1naXQgYS90
ZXN0cy9hbWRncHUvc3luY29ial90ZXN0cy5jIGIvdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMu
YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uYTBjNjI3ZDcKLS0tIC9kZXYv
bnVsbAorKysgYi90ZXN0cy9hbWRncHUvc3luY29ial90ZXN0cy5jCkBAIC0wLDAgKzEsMjkwIEBA
CisvKgorICogQ29weXJpZ2h0IDIwMTcgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoK
KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg
cGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0
ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0
aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh
dGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs
IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNv
ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlz
IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6
CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu
b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg
cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF
RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJ
TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO
T05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xE
RVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisg
KiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU
IE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g
V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhF
IFNPRlRXQVJFLgorICoKKyovCisKKyNpbmNsdWRlICJDVW5pdC9CYXNpYy5oIgorCisjaW5jbHVk
ZSAiYW1kZ3B1X3Rlc3QuaCIKKyNpbmNsdWRlICJhbWRncHVfZHJtLmgiCisjaW5jbHVkZSAiYW1k
Z3B1X2ludGVybmFsLmgiCisjaW5jbHVkZSA8cHRocmVhZC5oPgorCitzdGF0aWMgIGFtZGdwdV9k
ZXZpY2VfaGFuZGxlIGRldmljZV9oYW5kbGU7CitzdGF0aWMgIHVpbnQzMl90ICBtYWpvcl92ZXJz
aW9uOworc3RhdGljICB1aW50MzJfdCAgbWlub3JfdmVyc2lvbjsKKworc3RhdGljIHZvaWQgYW1k
Z3B1X3N5bmNvYmpfdGltZWxpbmVfdGVzdCh2b2lkKTsKKworQ1VfQk9PTCBzdWl0ZV9zeW5jb2Jq
X3RpbWVsaW5lX3Rlc3RzX2VuYWJsZSh2b2lkKQoreworCXJldHVybiBDVV9UUlVFOworfQorCitp
bnQgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19pbml0KHZvaWQpCit7CisJaW50IHI7CisK
KwlyID0gYW1kZ3B1X2RldmljZV9pbml0aWFsaXplKGRybV9hbWRncHVbMF0sICZtYWpvcl92ZXJz
aW9uLAorCQkJCSAgICZtaW5vcl92ZXJzaW9uLCAmZGV2aWNlX2hhbmRsZSk7CisKKwlpZiAocikg
eworCQlpZiAoKHIgPT0gLUVBQ0NFUykgJiYgKGVycm5vID09IEVBQ0NFUykpCisJCQlwcmludGYo
IlxuXG5FcnJvcjolcy4gIgorCQkJCSJIaW50OlRyeSB0byBydW4gdGhpcyB0ZXN0IHByb2dyYW0g
YXMgcm9vdC4iLAorCQkJCXN0cmVycm9yKGVycm5vKSk7CisJCXJldHVybiBDVUVfU0lOSVRfRkFJ
TEVEOworCX0KKworCXJldHVybiBDVUVfU1VDQ0VTUzsKK30KKworaW50IHN1aXRlX3N5bmNvYmpf
dGltZWxpbmVfdGVzdHNfY2xlYW4odm9pZCkKK3sKKwlpbnQgciA9IGFtZGdwdV9kZXZpY2VfZGVp
bml0aWFsaXplKGRldmljZV9oYW5kbGUpOworCisJaWYgKHIgPT0gMCkKKwkJcmV0dXJuIENVRV9T
VUNDRVNTOworCWVsc2UKKwkJcmV0dXJuIENVRV9TQ0xFQU5fRkFJTEVEOworfQorCisKK0NVX1Rl
c3RJbmZvIHN5bmNvYmpfdGltZWxpbmVfdGVzdHNbXSA9IHsKKwl7ICJzeW5jb2JqIHRpbWVsaW5l
IHRlc3QiLCAgYW1kZ3B1X3N5bmNvYmpfdGltZWxpbmVfdGVzdCB9LAorCUNVX1RFU1RfSU5GT19O
VUxMLAorfTsKKworI2RlZmluZSBHRlhfQ09NUFVURV9OT1AgIDB4ZmZmZjEwMDAKKyNkZWZpbmUg
U0RNQV9OT1AgIDB4MAorc3RhdGljIGludCBzeW5jb2JqX2NvbW1hbmRfc3VibWlzc2lvbl9oZWxw
ZXIodWludDMyX3Qgc3luY29ial9oYW5kbGUsIGJvb2wKKwkJCQkJICAgICB3YWl0X29yX3NpZ25h
bCwgdWludDY0X3QgcG9pbnQpCit7CisJYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHRfaGFu
ZGxlOworCWFtZGdwdV9ib19oYW5kbGUgaWJfcmVzdWx0X2hhbmRsZTsKKwl2b2lkICppYl9yZXN1
bHRfY3B1OworCXVpbnQ2NF90IGliX3Jlc3VsdF9tY19hZGRyZXNzOworCXN0cnVjdCBkcm1fYW1k
Z3B1X2NzX2NodW5rIGNodW5rc1syXTsKKwlzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVua19kYXRh
IGNodW5rX2RhdGE7CisJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29iaiBzeW5jb2Jq
X2RhdGE7CisJc3RydWN0IGFtZGdwdV9jc19mZW5jZSBmZW5jZV9zdGF0dXM7CisJYW1kZ3B1X2Jv
X2xpc3RfaGFuZGxlIGJvX2xpc3Q7CisJYW1kZ3B1X3ZhX2hhbmRsZSB2YV9oYW5kbGU7CisJdWlu
dDMyX3QgZXhwaXJlZCwgZmxhZ3M7CisJaW50IGksIHI7CisJdWludDY0X3Qgc2VxX25vOworCXN0
YXRpYyB1aW50MzJfdCAqcHRyOworCisJciA9IGFtZGdwdV9jc19jdHhfY3JlYXRlKGRldmljZV9o
YW5kbGUsICZjb250ZXh0X2hhbmRsZSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9
IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5kbGUsIDQwOTYsIDQwOTYsCisJCQkJ
ICAgIEFNREdQVV9HRU1fRE9NQUlOX0dUVCwgMCwKKwkJCQkgICAgJmliX3Jlc3VsdF9oYW5kbGUs
ICZpYl9yZXN1bHRfY3B1LAorCQkJCSAgICAmaWJfcmVzdWx0X21jX2FkZHJlc3MsICZ2YV9oYW5k
bGUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfZ2V0X2JvX2xpc3Qo
ZGV2aWNlX2hhbmRsZSwgaWJfcmVzdWx0X2hhbmRsZSwgTlVMTCwKKwkJCSAgICAgICAmYm9fbGlz
dCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCisJcHRyID0gaWJfcmVzdWx0X2NwdTsKKwor
CWZvciAoaSA9IDA7IGkgPCAxNjsgKytpKQorCQlwdHJbaV0gPSB3YWl0X29yX3NpZ25hbCA/IEdG
WF9DT01QVVRFX05PUDogU0RNQV9OT1A7CisKKwljaHVua3NbMF0uY2h1bmtfaWQgPSBBTURHUFVf
Q0hVTktfSURfSUI7CisJY2h1bmtzWzBdLmxlbmd0aF9kdyA9IHNpemVvZihzdHJ1Y3QgZHJtX2Ft
ZGdwdV9jc19jaHVua19pYikgLyA0OworCWNodW5rc1swXS5jaHVua19kYXRhID0gKHVpbnQ2NF90
KSh1aW50cHRyX3QpJmNodW5rX2RhdGE7CisJY2h1bmtfZGF0YS5pYl9kYXRhLl9wYWQgPSAwOwor
CWNodW5rX2RhdGEuaWJfZGF0YS52YV9zdGFydCA9IGliX3Jlc3VsdF9tY19hZGRyZXNzOworCWNo
dW5rX2RhdGEuaWJfZGF0YS5pYl9ieXRlcyA9IDE2ICogNDsKKwljaHVua19kYXRhLmliX2RhdGEu
aXBfdHlwZSA9IHdhaXRfb3Jfc2lnbmFsID8gQU1ER1BVX0hXX0lQX0dGWCA6CisJCUFNREdQVV9I
V19JUF9ETUE7CisJY2h1bmtfZGF0YS5pYl9kYXRhLmlwX2luc3RhbmNlID0gMDsKKwljaHVua19k
YXRhLmliX2RhdGEucmluZyA9IDA7CisJY2h1bmtfZGF0YS5pYl9kYXRhLmZsYWdzID0gMDsKKwor
CWNodW5rc1sxXS5jaHVua19pZCA9IHdhaXRfb3Jfc2lnbmFsID8KKwkJQU1ER1BVX0NIVU5LX0lE
X1NZTkNPQkpfVElNRUxJTkVfV0FJVCA6CisJCUFNREdQVV9DSFVOS19JRF9TWU5DT0JKX1RJTUVM
SU5FX1NJR05BTDsKKwljaHVua3NbMV0ubGVuZ3RoX2R3ID0gc2l6ZW9mKHN0cnVjdCBkcm1fYW1k
Z3B1X2NzX2NodW5rX3N5bmNvYmopIC8gNDsKKwljaHVua3NbMV0uY2h1bmtfZGF0YSA9ICh1aW50
NjRfdCkodWludHB0cl90KSZzeW5jb2JqX2RhdGE7CisJc3luY29ial9kYXRhLmhhbmRsZSA9IHN5
bmNvYmpfaGFuZGxlOworCXN5bmNvYmpfZGF0YS5wb2ludCA9IHBvaW50OworCXN5bmNvYmpfZGF0
YS5mbGFncyA9IERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlUOworCisJciA9
IGFtZGdwdV9jc19zdWJtaXRfcmF3KGRldmljZV9oYW5kbGUsCisJCQkJIGNvbnRleHRfaGFuZGxl
LAorCQkJCSBib19saXN0LAorCQkJCSAyLAorCQkJCSBjaHVua3MsCisJCQkJICZzZXFfbm8pOwor
CUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCisJbWVtc2V0KCZmZW5jZV9zdGF0dXMsIDAsIHNp
emVvZihzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlKSk7CisJZmVuY2Vfc3RhdHVzLmNvbnRleHQgPSBj
b250ZXh0X2hhbmRsZTsKKwlmZW5jZV9zdGF0dXMuaXBfdHlwZSA9IHdhaXRfb3Jfc2lnbmFsID8g
QU1ER1BVX0hXX0lQX0dGWDoKKwkJQU1ER1BVX0hXX0lQX0RNQTsKKwlmZW5jZV9zdGF0dXMuaXBf
aW5zdGFuY2UgPSAwOworCWZlbmNlX3N0YXR1cy5yaW5nID0gMDsKKwlmZW5jZV9zdGF0dXMuZmVu
Y2UgPSBzZXFfbm87CisKKwlyID0gYW1kZ3B1X2NzX3F1ZXJ5X2ZlbmNlX3N0YXR1cygmZmVuY2Vf
c3RhdHVzLAorCQkJQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEUsMCwgJmV4cGlyZWQpOworCUNVX0FT
U0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fbGlzdF9kZXN0cm95KGJvX2xpc3Qp
OworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfYm9fdW5tYXBfYW5kX2Zy
ZWUoaWJfcmVzdWx0X2hhbmRsZSwgdmFfaGFuZGxlLAorCQkJCSAgICAgaWJfcmVzdWx0X21jX2Fk
ZHJlc3MsIDQwOTYpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXIgPSBhbWRncHVfY3Nf
Y3R4X2ZyZWUoY29udGV4dF9oYW5kbGUpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXJl
dHVybiByOworfQorCitzdHJ1Y3Qgc3luY29ial9wb2ludCB7CisJdWludDMyX3Qgc3luY29ial9o
YW5kbGU7CisJdWludDY0X3QgcG9pbnQ7Cit9OworCitzdGF0aWMgdm9pZCAqc3luY29ial93YWl0
KHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHN5bmNvYmpfcG9pbnQgKnNwID0gKHN0cnVjdCBzeW5j
b2JqX3BvaW50ICopZGF0YTsKKwlpbnQgcjsKKworCXIgPSBzeW5jb2JqX2NvbW1hbmRfc3VibWlz
c2lvbl9oZWxwZXIoc3AtPnN5bmNvYmpfaGFuZGxlLCB0cnVlLAorCQkJCQkgICAgICBzcC0+cG9p
bnQpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKworCXJldHVybiAodm9pZCAqKShsb25nKXI7
Cit9CisKK3N0YXRpYyB2b2lkICpzeW5jb2JqX3NpZ25hbCh2b2lkICpkYXRhKQoreworCXN0cnVj
dCBzeW5jb2JqX3BvaW50ICpzcCA9IChzdHJ1Y3Qgc3luY29ial9wb2ludCAqKWRhdGE7CisJaW50
IHI7CisKKwlyID0gc3luY29ial9jb21tYW5kX3N1Ym1pc3Npb25faGVscGVyKHNwLT5zeW5jb2Jq
X2hhbmRsZSwgZmFsc2UsCisJCQkJCSAgICAgIHNwLT5wb2ludCk7CisJQ1VfQVNTRVJUX0VRVUFM
KHIsIDApOworCisJcmV0dXJuICh2b2lkICopKGxvbmcpcjsKK30KKworc3RhdGljIHZvaWQgYW1k
Z3B1X3N5bmNvYmpfdGltZWxpbmVfdGVzdCh2b2lkKQoreworCXN0YXRpYyBwdGhyZWFkX3Qgd2Fp
dF90aHJlYWQ7CisJc3RhdGljIHB0aHJlYWRfdCBzaWduYWxfdGhyZWFkOworCXN0YXRpYyBwdGhy
ZWFkX3QgY190aHJlYWQ7CisJc3RydWN0IHN5bmNvYmpfcG9pbnQgc3AxLCBzcDIsIHNwMzsKKwl1
aW50MzJfdCBzeW5jb2JqX2hhbmRsZTsKKwl1aW50NjRfdCBwYXlsb2FkOworCXVpbnQ2NF90IHdh
aXRfcG9pbnQsIHNpZ25hbF9wb2ludDsKKwl1aW50NjRfdCB0aW1lb3V0OworCXN0cnVjdCB0aW1l
c3BlYyB0cDsKKwlpbnQgciwgc3luY19mZDsKKwl2b2lkICp0bXA7CisKKwlyID0gIGFtZGdwdV9j
c19jcmVhdGVfc3luY29iajIoZGV2aWNlX2hhbmRsZSwgMCwgJnN5bmNvYmpfaGFuZGxlKTsKKwlD
VV9BU1NFUlRfRVFVQUwociwgMCk7CisKKwkvLyB3YWl0IG9uIHBvaW50IDUKKwlzcDEuc3luY29i
al9oYW5kbGUgPSBzeW5jb2JqX2hhbmRsZTsKKwlzcDEucG9pbnQgPSA1OworCXIgPSBwdGhyZWFk
X2NyZWF0ZSgmd2FpdF90aHJlYWQsIE5VTEwsIHN5bmNvYmpfd2FpdCwgJnNwMSk7CisJQ1VfQVNT
RVJUX0VRVUFMKHIsIDApOworCisJLy8gc2lnbmFsIG9uIHBvaW50IDEwCisJc3AyLnN5bmNvYmpf
aGFuZGxlID0gc3luY29ial9oYW5kbGU7CisJc3AyLnBvaW50ID0gMTA7CisJciA9IHB0aHJlYWRf
Y3JlYXRlKCZzaWduYWxfdGhyZWFkLCBOVUxMLCBzeW5jb2JqX3NpZ25hbCwgJnNwMik7CisJQ1Vf
QVNTRVJUX0VRVUFMKHIsIDApOworCisJciA9IHB0aHJlYWRfam9pbih3YWl0X3RocmVhZCwgJnRt
cCk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTCh0bXAsIDApOwor
CisJciA9IHB0aHJlYWRfam9pbihzaWduYWxfdGhyZWFkLCAmdG1wKTsKKwlDVV9BU1NFUlRfRVFV
QUwociwgMCk7CisJQ1VfQVNTRVJUX0VRVUFMKHRtcCwgMCk7CisKKwkvL3F1ZXJ5IHRpbWVsaW5l
IHBheWxvYWQKKwlyID0gYW1kZ3B1X2NzX3N5bmNvYmpfcXVlcnkoZGV2aWNlX2hhbmRsZSwgJnN5
bmNvYmpfaGFuZGxlLAorCQkJCSAgICAmcGF5bG9hZCwgMSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIs
IDApOworCUNVX0FTU0VSVF9FUVVBTChwYXlsb2FkLCAxMCk7CisKKwkvL3NpZ25hbCBvbiBwb2lu
dCAxNgorCXNwMy5zeW5jb2JqX2hhbmRsZSA9IHN5bmNvYmpfaGFuZGxlOworCXNwMy5wb2ludCA9
IDE2OworCXIgPSBwdGhyZWFkX2NyZWF0ZSgmY190aHJlYWQsIE5VTEwsIHN5bmNvYmpfc2lnbmFs
LCAmc3AzKTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJLy9DUFUgd2FpdCBvbiBwb2ludCAx
NgorCXdhaXRfcG9pbnQgPSAxNjsKKwl0aW1lb3V0ID0gMDsKKwljbG9ja19nZXR0aW1lKENMT0NL
X01PTk9UT05JQywgJnRwKTsKKwl0aW1lb3V0ID0gdHAudHZfc2VjICogMTAwMDAwMDAwMFVMTCAr
IHRwLnR2X25zZWM7CisJdGltZW91dCArPSAweDEwMDAwMDAwMDAwOyAvLzEwcworCXIgPSBhbWRn
cHVfY3Nfc3luY29ial90aW1lbGluZV93YWl0KGRldmljZV9oYW5kbGUsICZzeW5jb2JqX2hhbmRs
ZSwKKwkJCQkJICAgICZ3YWl0X3BvaW50LCAxLCB0aW1lb3V0LAorCQkJCQkgICAgRFJNX1NZTkNP
QkpfV0FJVF9GTEFHU19XQUlUX0FMTCB8CisJCQkJCSAgICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdT
X1dBSVRfRk9SX1NVQk1JVCwKKwkJCQkJICAgIE5VTEwpOworCisJQ1VfQVNTRVJUX0VRVUFMKHIs
IDApOworCXIgPSBwdGhyZWFkX2pvaW4oY190aHJlYWQsICZ0bXApOworCUNVX0FTU0VSVF9FUVVB
TChyLCAwKTsKKwlDVV9BU1NFUlRfRVFVQUwodG1wLCAwKTsKKworCS8vIGV4cG9ydCBwb2ludCAx
NiBhbmQgaW1wb3J0IHRvIHBvaW50IDE4CisJciA9IGFtZGdwdV9jc19zeW5jb2JqX2V4cG9ydF9z
eW5jX2ZpbGUyKGRldmljZV9oYW5kbGUsIHN5bmNvYmpfaGFuZGxlLAorCQkJCQkJMTYsCisJCQkJ
CQlEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCwKKwkJCQkJCSZzeW5jX2Zk
KTsKKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7CisJciA9IGFtZGdwdV9jc19zeW5jb2JqX2ltcG9y
dF9zeW5jX2ZpbGUyKGRldmljZV9oYW5kbGUsIHN5bmNvYmpfaGFuZGxlLAorCQkJCQkJMTgsIHN5
bmNfZmQpOworCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKKwlyID0gYW1kZ3B1X2NzX3N5bmNvYmpf
cXVlcnkoZGV2aWNlX2hhbmRsZSwgJnN5bmNvYmpfaGFuZGxlLAorCQkJCSAgICAmcGF5bG9hZCwg
MSk7CisJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOworCUNVX0FTU0VSVF9FUVVBTChwYXlsb2FkLCAx
OCk7CisKKwkvLyBDUFUgc2lnbmFsIG9uIHBvaW50IDIwCisJc2lnbmFsX3BvaW50ID0gMjA7CisJ
ciA9IGFtZGdwdV9jc19zeW5jb2JqX3RpbWVsaW5lX3NpZ25hbChkZXZpY2VfaGFuZGxlLCAmc3lu
Y29ial9oYW5kbGUsCisJCQkJCSAgICAgICZzaWduYWxfcG9pbnQsIDEpOworCUNVX0FTU0VSVF9F
UVVBTChyLCAwKTsKKwlyID0gYW1kZ3B1X2NzX3N5bmNvYmpfcXVlcnkoZGV2aWNlX2hhbmRsZSwg
JnN5bmNvYmpfaGFuZGxlLAorCQkJCSAgICAmcGF5bG9hZCwgMSk7CisJQ1VfQVNTRVJUX0VRVUFM
KHIsIDApOworCUNVX0FTU0VSVF9FUVVBTChwYXlsb2FkLCAyMCk7CisKKwlyID0gYW1kZ3B1X2Nz
X2Rlc3Ryb3lfc3luY29iaihkZXZpY2VfaGFuZGxlLCBzeW5jb2JqX2hhbmRsZSk7CisJQ1VfQVNT
RVJUX0VRVUFMKHIsIDApOworCit9CmNvbW1pdCA2YTcyNjYxYzMzYTlmY2RmYmI1NDQ5Y2M2YzBj
OTI4MTBlZDIxN2ZkCkF1dGhvcjogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4K
RGF0ZTogICBUaHUgTWF5IDE2IDE2OjA3OjEzIDIwMTkgKzA4MDAKCiAgICB3cmFwIHRyYW5zZmVy
IGludGVyZmFjZXMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQx
Lnpob3VAYW1kLmNvbT4KICAgIEFja2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4u
a29lbmlnQGFtZC5jb20+CiAgICBBY2tlZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5n
LmxhbmR3ZXJsaW5AaW50ZWwuY29tPgoKZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHUuaCBiL2Ft
ZGdwdS9hbWRncHUuaAppbmRleCBkMjQ4MGRiZS4uOWQ5YjA4MzIgMTAwNjQ0Ci0tLSBhL2FtZGdw
dS9hbWRncHUuaAorKysgYi9hbWRncHUvYW1kZ3B1LmgKQEAgLTE2ODUsNiArMTY4NSwyOCBAQCBp
bnQgYW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZTIoYW1kZ3B1X2RldmljZV9oYW5k
bGUgZGV2LAogCQkJCQl1aW50MzJfdCBzeW5jb2JqLAogCQkJCQl1aW50NjRfdCBwb2ludCwKIAkJ
CQkJaW50IHN5bmNfZmlsZV9mZCk7CisKKy8qKgorICogIHRyYW5zZmVyIGJldHdlZW4gc3luY2Jv
anMuCisgKgorICogXHBhcmFtICAgZGV2CQktIFxjIFtpbl0gZGV2aWNlIGhhbmRsZQorICogXHBh
cmFtICAgZHN0X2hhbmRsZQktIFxjIFtpbl0gc3luYyBvYmplY3QgaGFuZGxlCisgKiBccGFyYW0g
ICBkc3RfcG9pbnQJLSBcYyBbaW5dIHRpbWVsaW5lIHBvaW50LCAwIHByZXNlbnRzIGRzdCBpcyBi
aW5hcnkKKyAqIFxwYXJhbSAgIHNyY19oYW5kbGUJLSBcYyBbaW5dIHN5bmMgb2JqZWN0IGhhbmRs
ZQorICogXHBhcmFtICAgc3JjX3BvaW50CS0gXGMgW2luXSB0aW1lbGluZSBwb2ludCwgMCBwcmVz
ZW50cyBzcmMgaXMgYmluYXJ5CisgKiBccGFyYW0gICBmbGFncwktIFxjIFtpbl0gZmxhZ3MKKyAq
CisgKiBccmV0dXJuICAgMCBvbiBzdWNjZXNzXG4KKyAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUg
UE9TSVggRXJyb3IgY29kZQorICoKKyAqLworaW50IGFtZGdwdV9jc19zeW5jb2JqX3RyYW5zZmVy
KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKKwkJCSAgICAgICB1aW50MzJfdCBkc3RfaGFuZGxl
LAorCQkJICAgICAgIHVpbnQ2NF90IGRzdF9wb2ludCwKKwkJCSAgICAgICB1aW50MzJfdCBzcmNf
aGFuZGxlLAorCQkJICAgICAgIHVpbnQ2NF90IHNyY19wb2ludCwKKwkJCSAgICAgICB1aW50MzJf
dCBmbGFncyk7CisKIC8qKgogICogRXhwb3J0IGFuIGFtZGdwdSBmZW5jZSBhcyBhIGhhbmRsZSAo
c3luY29iaiBvciBmZCkuCiAgKgpkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvYW1k
Z3B1L2FtZGdwdV9jcy5jCmluZGV4IGRhY2E0NDIxLi45NzdmYTNjZiAxMDA2NDQKLS0tIGEvYW1k
Z3B1L2FtZGdwdV9jcy5jCisrKyBiL2FtZGdwdS9hbWRncHVfY3MuYwpAQCAtODE3LDYgKzgxNywy
MiBAQCBvdXQ6CiAJcmV0dXJuIHJldDsKIH0KIAorZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N5
bmNvYmpfdHJhbnNmZXIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAorCQkJCQkgIHVpbnQzMl90
IGRzdF9oYW5kbGUsCisJCQkJCSAgdWludDY0X3QgZHN0X3BvaW50LAorCQkJCQkgIHVpbnQzMl90
IHNyY19oYW5kbGUsCisJCQkJCSAgdWludDY0X3Qgc3JjX3BvaW50LAorCQkJCQkgIHVpbnQzMl90
IGZsYWdzKQoreworCWlmIChOVUxMID09IGRldikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1
cm4gZHJtU3luY29ialRyYW5zZmVyKGRldi0+ZmQsCisJCQkJICBkc3RfaGFuZGxlLCBkc3RfcG9p
bnQsCisJCQkJICBzcmNfaGFuZGxlLCBzcmNfcG9pbnQsCisJCQkJICBmbGFncyk7Cit9CisKIGRy
bV9wdWJsaWMgaW50IGFtZGdwdV9jc19zdWJtaXRfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRl
diwKIAkJCQkgICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsCiAJCQkJICAgIGFtZGdw
dV9ib19saXN0X2hhbmRsZSBib19saXN0X2hhbmRsZSwKY29tbWl0IDZiYjVjYzE3NGJhMDRkODFm
NWQ4NDBjZDA4Y2ZhOTlkOWRjMzI3NGMKQXV0aG9yOiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhv
dUBhbWQuY29tPgpEYXRlOiAgIFRodSBNYXkgMTYgMTY6MDc6MTIgMjAxOSArMDgwMAoKICAgIGV4
cG9zZSB0aW1lbGluZSBzaWduYWwvZXhwb3J0L2ltcG9ydCBpbnRlcmZhY2VzIHYyCiAgICAKICAg
IHYyOiBhZGFwdCB0byBuZXcgb25lIHRyYW5zZmVyIGlvY3RsCiAgICAKICAgIFNpZ25lZC1vZmYt
Ynk6IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+CiAgICBBY2tlZC1ieTogQ2hy
aXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgogICAgQWNrZWQtYnk6IExp
b25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KCmRpZmYgLS1n
aXQgYS9hbWRncHUvYW1kZ3B1LXN5bWJvbC1jaGVjayBiL2FtZGdwdS9hbWRncHUtc3ltYm9sLWNo
ZWNrCmluZGV4IGQzYzViYjg5Li4yNzRiNGM2ZCAxMDA3NTUKLS0tIGEvYW1kZ3B1L2FtZGdwdS1z
eW1ib2wtY2hlY2sKKysrIGIvYW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sKQEAgLTUyLDEwICs1
MiwxMyBAQCBhbWRncHVfY3Nfc3VibWl0CiBhbWRncHVfY3Nfc3VibWl0X3JhdwogYW1kZ3B1X2Nz
X3N1Ym1pdF9yYXcyCiBhbWRncHVfY3Nfc3luY29ial9leHBvcnRfc3luY19maWxlCithbWRncHVf
Y3Nfc3luY29ial9leHBvcnRfc3luY19maWxlMgogYW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5
bmNfZmlsZQorYW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZTIKIGFtZGdwdV9jc19z
eW5jb2JqX3F1ZXJ5CiBhbWRncHVfY3Nfc3luY29ial9yZXNldAogYW1kZ3B1X2NzX3N5bmNvYmpf
c2lnbmFsCithbWRncHVfY3Nfc3luY29ial90aW1lbGluZV9zaWduYWwKIGFtZGdwdV9jc19zeW5j
b2JqX3RpbWVsaW5lX3dhaXQKIGFtZGdwdV9jc19zeW5jb2JqX3dhaXQKIGFtZGdwdV9jc193YWl0
X2ZlbmNlcwpkaWZmIC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdS5oIGIvYW1kZ3B1L2FtZGdwdS5oCmlu
ZGV4IDVlYmZlMWUzLi5kMjQ4MGRiZSAxMDA2NDQKLS0tIGEvYW1kZ3B1L2FtZGdwdS5oCisrKyBi
L2FtZGdwdS9hbWRncHUuaApAQCAtMTUxNyw2ICsxNTE3LDIzIEBAIGludCBhbWRncHVfY3Nfc3lu
Y29ial9zaWduYWwoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAogCQkJICAgICBjb25zdCB1aW50
MzJfdCAqc3luY29ianMsIHVpbnQzMl90IHN5bmNvYmpfY291bnQpOwogCiAvKioKKyAqIFNpZ25h
bCBrZXJuZWwgdGltZWxpbmUgc3luYyBvYmplY3RzLgorICoKKyAqIFxwYXJhbSBkZXYgICAgICAg
ICAgIC0gXGMgW2luXSBkZXZpY2UgaGFuZGxlCisgKiBccGFyYW0gc3luY29ianMgICAgICAtIFxj
IFtpbl0gYXJyYXkgb2Ygc3luYyBvYmplY3QgaGFuZGxlcworICogXHBhcmFtIHBvaW50cwktIFxj
IFtpbl0gYXJyYXkgb2YgdGltZWxpbmUgcG9pbnRzCisgKiBccGFyYW0gc3luY29ial9jb3VudCAt
IFxjIFtpbl0gbnVtYmVyIG9mIGhhbmRsZXMgaW4gc3luY29ianMKKyAqCisgKiBccmV0dXJuICAg
MCBvbiBzdWNjZXNzXG4KKyAqICAgICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29k
ZQorICoKKyovCitpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfdGltZWxpbmVfc2lnbmFsKGFtZGdwdV9k
ZXZpY2VfaGFuZGxlIGRldiwKKwkJCQkgICAgICBjb25zdCB1aW50MzJfdCAqc3luY29ianMsCisJ
CQkJICAgICAgdWludDY0X3QgKnBvaW50cywKKwkJCQkgICAgICB1aW50MzJfdCBzeW5jb2JqX2Nv
dW50KTsKKworLyoqCiAgKiAgV2FpdCBmb3Igb25lIG9yIGFsbCBzeW5jIG9iamVjdHMgdG8gc2ln
bmFsLgogICoKICAqIFxwYXJhbSAgIGRldgkgICAgLSBcYyBbaW5dIHNlbGYtZXhwbGFuYXRvcnkK
QEAgLTE2MzMsOCArMTY1MCw0MiBAQCBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfZXhwb3J0X3N5bmNf
ZmlsZShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfaW1w
b3J0X3N5bmNfZmlsZShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiAJCQkJICAgICAgIHVpbnQz
Ml90IHN5bmNvYmosCiAJCQkJICAgICAgIGludCBzeW5jX2ZpbGVfZmQpOworLyoqCisgKiAgRXhw
b3J0IGtlcm5lbCB0aW1lbGluZSBzeW5jIG9iamVjdCB0byBhIHN5bmNfZmlsZS4KKyAqCisgKiBc
cGFyYW0gICBkZXYJCS0gXGMgW2luXSBkZXZpY2UgaGFuZGxlCisgKiBccGFyYW0gICBzeW5jb2Jq
CS0gXGMgW2luXSBzeW5jIG9iamVjdCBoYW5kbGUKKyAqIFxwYXJhbSAgIHBvaW50CS0gXGMgW2lu
XSB0aW1lbGluZSBwb2ludAorICogXHBhcmFtICAgZmxhZ3MJLSBcYyBbaW5dIGZsYWdzCisgKiBc
cGFyYW0gICBzeW5jX2ZpbGVfZmQgLSBcYyBbb3V0XSBzeW5jX2ZpbGUgZmlsZSBkZXNjcmlwdG9y
LgorICoKKyAqIFxyZXR1cm4gICAwIG9uIHN1Y2Nlc3NcbgorICogICAgICAgICAgPDAgLSBOZWdh
dGl2ZSBQT1NJWCBFcnJvciBjb2RlCisgKgorICovCitpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfZXhw
b3J0X3N5bmNfZmlsZTIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAorCQkJCQl1aW50MzJfdCBz
eW5jb2JqLAorCQkJCQl1aW50NjRfdCBwb2ludCwKKwkJCQkJdWludDMyX3QgZmxhZ3MsCisJCQkJ
CWludCAqc3luY19maWxlX2ZkKTsKIAogLyoqCisgKiAgSW1wb3J0IGtlcm5lbCB0aW1lbGluZSBz
eW5jIG9iamVjdCBmcm9tIGEgc3luY19maWxlLgorICoKKyAqIFxwYXJhbSAgIGRldgkJLSBcYyBb
aW5dIGRldmljZSBoYW5kbGUKKyAqIFxwYXJhbSAgIHN5bmNvYmoJLSBcYyBbaW5dIHN5bmMgb2Jq
ZWN0IGhhbmRsZQorICogXHBhcmFtICAgcG9pbnQJLSBcYyBbaW5dIHRpbWVsaW5lIHBvaW50Cisg
KiBccGFyYW0gICBzeW5jX2ZpbGVfZmQgLSBcYyBbaW5dIHN5bmNfZmlsZSBmaWxlIGRlc2NyaXB0
b3IuCisgKgorICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xuCisgKiAgICAgICAgICA8MCAtIE5l
Z2F0aXZlIFBPU0lYIEVycm9yIGNvZGUKKyAqCisgKi8KK2ludCBhbWRncHVfY3Nfc3luY29ial9p
bXBvcnRfc3luY19maWxlMihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCisJCQkJCXVpbnQzMl90
IHN5bmNvYmosCisJCQkJCXVpbnQ2NF90IHBvaW50LAorCQkJCQlpbnQgc3luY19maWxlX2ZkKTsK
Ky8qKgogICogRXhwb3J0IGFuIGFtZGdwdSBmZW5jZSBhcyBhIGhhbmRsZSAoc3luY29iaiBvciBm
ZCkuCiAgKgogICogXHBhcmFtIHdoYXQJCUFNREdQVV9GRU5DRV9UT19IQU5ETEVfR0VUX3tTWU5D
T0JKLCBGRH0KZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHVfY3MuYyBiL2FtZGdwdS9hbWRncHVf
Y3MuYwppbmRleCA5ZmNhZjJjNC4uZGFjYTQ0MjEgMTAwNjQ0Ci0tLSBhL2FtZGdwdS9hbWRncHVf
Y3MuYworKysgYi9hbWRncHUvYW1kZ3B1X2NzLmMKQEAgLTY3NCw2ICs2NzQsMTggQEAgZHJtX3B1
YmxpYyBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfc2lnbmFsKGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRl
diwKIAlyZXR1cm4gZHJtU3luY29ialNpZ25hbChkZXYtPmZkLCBzeW5jb2Jqcywgc3luY29ial9j
b3VudCk7CiB9CiAKK2RybV9wdWJsaWMgaW50IGFtZGdwdV9jc19zeW5jb2JqX3RpbWVsaW5lX3Np
Z25hbChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCisJCQkJCQkgY29uc3QgdWludDMyX3QgKnN5
bmNvYmpzLAorCQkJCQkJIHVpbnQ2NF90ICpwb2ludHMsCisJCQkJCQkgdWludDMyX3Qgc3luY29i
al9jb3VudCkKK3sKKwlpZiAoTlVMTCA9PSBkZXYpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0
dXJuIGRybVN5bmNvYmpUaW1lbGluZVNpZ25hbChkZXYtPmZkLCBzeW5jb2JqcywKKwkJCQkJcG9p
bnRzLCBzeW5jb2JqX2NvdW50KTsKK30KKwogZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N5bmNv
Ympfd2FpdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiAJCQkJICAgICAgdWludDMyX3QgKmhh
bmRsZXMsIHVuc2lnbmVkIG51bV9oYW5kbGVzLAogCQkJCSAgICAgIGludDY0X3QgdGltZW91dF9u
c2VjLCB1bnNpZ25lZCBmbGFncywKQEAgLTc0OSw2ICs3NjEsNjIgQEAgZHJtX3B1YmxpYyBpbnQg
YW1kZ3B1X2NzX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZShhbWRncHVfZGV2aWNlX2hhbmRsZSBk
ZXYsCiAJcmV0dXJuIGRybVN5bmNvYmpJbXBvcnRTeW5jRmlsZShkZXYtPmZkLCBzeW5jb2JqLCBz
eW5jX2ZpbGVfZmQpOwogfQogCitkcm1fcHVibGljIGludCBhbWRncHVfY3Nfc3luY29ial9leHBv
cnRfc3luY19maWxlMihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCisJCQkJCQkgICB1aW50MzJf
dCBzeW5jb2JqLAorCQkJCQkJICAgdWludDY0X3QgcG9pbnQsCisJCQkJCQkgICB1aW50MzJfdCBm
bGFncywKKwkJCQkJCSAgIGludCAqc3luY19maWxlX2ZkKQoreworCXVpbnQzMl90IGJpbmFyeV9o
YW5kbGU7CisJaW50IHJldDsKKworCWlmIChOVUxMID09IGRldikKKwkJcmV0dXJuIC1FSU5WQUw7
CisKKwlpZiAoIXBvaW50KQorCQlyZXR1cm4gZHJtU3luY29iakV4cG9ydFN5bmNGaWxlKGRldi0+
ZmQsIHN5bmNvYmosIHN5bmNfZmlsZV9mZCk7CisKKwlyZXQgPSBkcm1TeW5jb2JqQ3JlYXRlKGRl
di0+ZmQsIDAsICZiaW5hcnlfaGFuZGxlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJ
cmV0ID0gZHJtU3luY29ialRyYW5zZmVyKGRldi0+ZmQsIGJpbmFyeV9oYW5kbGUsIDAsCisJCQkJ
IHN5bmNvYmosIHBvaW50LCBmbGFncyk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisJcmV0ID0g
ZHJtU3luY29iakV4cG9ydFN5bmNGaWxlKGRldi0+ZmQsIGJpbmFyeV9oYW5kbGUsIHN5bmNfZmls
ZV9mZCk7CitvdXQ6CisJZHJtU3luY29iakRlc3Ryb3koZGV2LT5mZCwgYmluYXJ5X2hhbmRsZSk7
CisJcmV0dXJuIHJldDsKK30KKworZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfaW1w
b3J0X3N5bmNfZmlsZTIoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAorCQkJCQkJICAgdWludDMy
X3Qgc3luY29iaiwKKwkJCQkJCSAgIHVpbnQ2NF90IHBvaW50LAorCQkJCQkJICAgaW50IHN5bmNf
ZmlsZV9mZCkKK3sKKwl1aW50MzJfdCBiaW5hcnlfaGFuZGxlOworCWludCByZXQ7CisKKwlpZiAo
TlVMTCA9PSBkZXYpCisJCXJldHVybiAtRUlOVkFMOworCisJaWYgKCFwb2ludCkKKwkJcmV0dXJu
IGRybVN5bmNvYmpJbXBvcnRTeW5jRmlsZShkZXYtPmZkLCBzeW5jb2JqLCBzeW5jX2ZpbGVfZmQp
OworCisJcmV0ID0gZHJtU3luY29iakNyZWF0ZShkZXYtPmZkLCAwLCAmYmluYXJ5X2hhbmRsZSk7
CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwlyZXQgPSBkcm1TeW5jb2JqSW1wb3J0U3luY0Zp
bGUoZGV2LT5mZCwgYmluYXJ5X2hhbmRsZSwgc3luY19maWxlX2ZkKTsKKwlpZiAocmV0KQorCQln
b3RvIG91dDsKKwlyZXQgPSBkcm1TeW5jb2JqVHJhbnNmZXIoZGV2LT5mZCwgc3luY29iaiwgcG9p
bnQsCisJCQkJIGJpbmFyeV9oYW5kbGUsIDAsIDApOworb3V0OgorCWRybVN5bmNvYmpEZXN0cm95
KGRldi0+ZmQsIGJpbmFyeV9oYW5kbGUpOworCXJldHVybiByZXQ7Cit9CisKIGRybV9wdWJsaWMg
aW50IGFtZGdwdV9jc19zdWJtaXRfcmF3KGFtZGdwdV9kZXZpY2VfaGFuZGxlIGRldiwKIAkJCQkg
ICAgYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHQsCiAJCQkJICAgIGFtZGdwdV9ib19saXN0
X2hhbmRsZSBib19saXN0X2hhbmRsZSwKY29tbWl0IDEyNzEyZWI2ZTMxM2M5OTBkODZlNTM2NTdi
OGJjMzcyMmRhM2E2ZWMKQXV0aG9yOiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29t
PgpEYXRlOiAgIFRodSBNYXkgMTYgMTY6MDc6MTEgMjAxOSArMDgwMAoKICAgIGFkZCB0aW1lbGlu
ZSBzaWduYWwvdHJhbnNmZXIgaW9jdGxzIHYyCiAgICAKICAgIHYyOiB1c2Ugb25lIHRyYW5zZmVy
IGlvY3RsCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91
QGFtZC5jb20+CiAgICBSZXZpZXdlZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxh
bmR3ZXJsaW5AaW50ZWwuY29tPgoKZGlmZiAtLWdpdCBhL3hmODZkcm0uYyBiL3hmODZkcm0uYwpp
bmRleCAxYTcxN2YwMi4uOTUzZmM3NjIgMTAwNjQ0Ci0tLSBhL3hmODZkcm0uYworKysgYi94Zjg2
ZHJtLmMKQEAgLTQyNTcsNiArNDI1NywyMSBAQCBkcm1fcHVibGljIGludCBkcm1TeW5jb2JqU2ln
bmFsKGludCBmZCwgY29uc3QgdWludDMyX3QgKmhhbmRsZXMsCiAgICAgcmV0dXJuIHJldDsKIH0K
IAorZHJtX3B1YmxpYyBpbnQgZHJtU3luY29ialRpbWVsaW5lU2lnbmFsKGludCBmZCwgY29uc3Qg
dWludDMyX3QgKmhhbmRsZXMsCisJCQkJCXVpbnQ2NF90ICpwb2ludHMsIHVpbnQzMl90IGhhbmRs
ZV9jb3VudCkKK3sKKyAgICBzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfYXJyYXkgYXJnczsK
KyAgICBpbnQgcmV0OworCisgICAgbWVtY2xlYXIoYXJncyk7CisgICAgYXJncy5oYW5kbGVzID0g
KHVpbnRwdHJfdCloYW5kbGVzOworICAgIGFyZ3MucG9pbnRzID0gKHVpbnRwdHJfdClwb2ludHM7
CisgICAgYXJncy5jb3VudF9oYW5kbGVzID0gaGFuZGxlX2NvdW50OworCisgICAgcmV0ID0gZHJt
SW9jdGwoZmQsIERSTV9JT0NUTF9TWU5DT0JKX1RJTUVMSU5FX1NJR05BTCwgJmFyZ3MpOworICAg
IHJldHVybiByZXQ7Cit9CisKIGRybV9wdWJsaWMgaW50IGRybVN5bmNvYmpUaW1lbGluZVdhaXQo
aW50IGZkLCB1aW50MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBvaW50cywKIAkJCQkgICAgICB1
bnNpZ25lZCBudW1faGFuZGxlcywKIAkJCQkgICAgICBpbnQ2NF90IHRpbWVvdXRfbnNlYywgdW5z
aWduZWQgZmxhZ3MsCkBAIC00Mjk5LDQgKzQzMTQsMjIgQEAgZHJtX3B1YmxpYyBpbnQgZHJtU3lu
Y29ialF1ZXJ5KGludCBmZCwgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQ2NF90ICpwb2ludHMsCiAg
ICAgcmV0dXJuIDA7CiB9CiAKK2RybV9wdWJsaWMgaW50IGRybVN5bmNvYmpUcmFuc2ZlcihpbnQg
ZmQsCisJCQkJICB1aW50MzJfdCBkc3RfaGFuZGxlLCB1aW50NjRfdCBkc3RfcG9pbnQsCisJCQkJ
ICB1aW50MzJfdCBzcmNfaGFuZGxlLCB1aW50NjRfdCBzcmNfcG9pbnQsCisJCQkJICB1aW50MzJf
dCBmbGFncykKK3sKKyAgICBzdHJ1Y3QgZHJtX3N5bmNvYmpfdHJhbnNmZXIgYXJnczsKKyAgICBp
bnQgcmV0OworCisgICAgbWVtY2xlYXIoYXJncyk7CisgICAgYXJncy5zcmNfaGFuZGxlID0gc3Jj
X2hhbmRsZTsKKyAgICBhcmdzLmRzdF9oYW5kbGUgPSBkc3RfaGFuZGxlOworICAgIGFyZ3Muc3Jj
X3BvaW50ID0gc3JjX3BvaW50OworICAgIGFyZ3MuZHN0X3BvaW50ID0gZHN0X3BvaW50OworICAg
IGFyZ3MuZmxhZ3MgPSBmbGFnczsKKworICAgIHJldCA9IGRybUlvY3RsKGZkLCBEUk1fSU9DVExf
U1lOQ09CSl9UUkFOU0ZFUiwgJmFyZ3MpOwogCisgICAgcmV0dXJuIHJldDsKK30KZGlmZiAtLWdp
dCBhL3hmODZkcm0uaCBiL3hmODZkcm0uaAppbmRleCA2MGM3YTg0Zi4uM2ZiMWQxY2EgMTAwNjQ0
Ci0tLSBhL3hmODZkcm0uaAorKysgYi94Zjg2ZHJtLmgKQEAgLTg3NiwxMiArODc2LDE4IEBAIGV4
dGVybiBpbnQgZHJtU3luY29ialdhaXQoaW50IGZkLCB1aW50MzJfdCAqaGFuZGxlcywgdW5zaWdu
ZWQgbnVtX2hhbmRsZXMsCiAJCQkgIHVpbnQzMl90ICpmaXJzdF9zaWduYWxlZCk7CiBleHRlcm4g
aW50IGRybVN5bmNvYmpSZXNldChpbnQgZmQsIGNvbnN0IHVpbnQzMl90ICpoYW5kbGVzLCB1aW50
MzJfdCBoYW5kbGVfY291bnQpOwogZXh0ZXJuIGludCBkcm1TeW5jb2JqU2lnbmFsKGludCBmZCwg
Y29uc3QgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQzMl90IGhhbmRsZV9jb3VudCk7CitleHRlcm4g
aW50IGRybVN5bmNvYmpUaW1lbGluZVNpZ25hbChpbnQgZmQsIGNvbnN0IHVpbnQzMl90ICpoYW5k
bGVzLAorCQkJCSAgICB1aW50NjRfdCAqcG9pbnRzLCB1aW50MzJfdCBoYW5kbGVfY291bnQpOwog
ZXh0ZXJuIGludCBkcm1TeW5jb2JqVGltZWxpbmVXYWl0KGludCBmZCwgdWludDMyX3QgKmhhbmRs
ZXMsIHVpbnQ2NF90ICpwb2ludHMsCiAJCQkJICB1bnNpZ25lZCBudW1faGFuZGxlcywKIAkJCQkg
IGludDY0X3QgdGltZW91dF9uc2VjLCB1bnNpZ25lZCBmbGFncywKIAkJCQkgIHVpbnQzMl90ICpm
aXJzdF9zaWduYWxlZCk7CiBleHRlcm4gaW50IGRybVN5bmNvYmpRdWVyeShpbnQgZmQsIHVpbnQz
Ml90ICpoYW5kbGVzLCB1aW50NjRfdCAqcG9pbnRzLAogCQkJICAgdWludDMyX3QgaGFuZGxlX2Nv
dW50KTsKK2V4dGVybiBpbnQgZHJtU3luY29ialRyYW5zZmVyKGludCBmZCwKKwkJCSAgICAgIHVp
bnQzMl90IGRzdF9oYW5kbGUsIHVpbnQ2NF90IGRzdF9wb2ludCwKKwkJCSAgICAgIHVpbnQzMl90
IHNyY19oYW5kbGUsIHVpbnQ2NF90IHNyY19wb2ludCwKKwkJCSAgICAgIHVpbnQzMl90IGZsYWdz
KTsKIAogI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiB9CmNvbW1pdCA0NmY5MzBkOTYyYjYwMTA5
ZDM4NzYzMjRjOTVhOWZmMWI4MGEzZjRlCkF1dGhvcjogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpo
b3VAYW1kLmNvbT4KRGF0ZTogICBUaHUgTWF5IDE2IDE2OjA3OjEwIDIwMTkgKzA4MDAKCiAgICB3
cmFwIHN5bmNvYmogdGltZWxpbmUgcXVlcnkvd2FpdCBBUElzIGZvciBhbWRncHUgdjMKICAgIAog
ICAgdjI6IHN5bWJvcyBhcmUgc3RvcmVkIGluIGxleGljYWwgb3JkZXIuCiAgICB2MzogZHJvcCBl
eHBvcnQvaW1wb3J0IGFuZCBleHRyYSBxdWVyeSBpbmRpcmVjdGlvbgogICAgCiAgICBTaWduZWQt
b2ZmLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgogICAgQWNrZWQtYnk6
IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KICAgIEFja2VkLWJ5
OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFuZHdlcmxpbkBpbnRlbC5jb20+CgpkaWZm
IC0tZ2l0IGEvYW1kZ3B1L2FtZGdwdS1zeW1ib2wtY2hlY2sgYi9hbWRncHUvYW1kZ3B1LXN5bWJv
bC1jaGVjawppbmRleCA0ZDgwNjkyMi4uZDNjNWJiODkgMTAwNzU1Ci0tLSBhL2FtZGdwdS9hbWRn
cHUtc3ltYm9sLWNoZWNrCisrKyBiL2FtZGdwdS9hbWRncHUtc3ltYm9sLWNoZWNrCkBAIC01Myw4
ICs1MywxMCBAQCBhbWRncHVfY3Nfc3VibWl0X3JhdwogYW1kZ3B1X2NzX3N1Ym1pdF9yYXcyCiBh
bWRncHVfY3Nfc3luY29ial9leHBvcnRfc3luY19maWxlCiBhbWRncHVfY3Nfc3luY29ial9pbXBv
cnRfc3luY19maWxlCithbWRncHVfY3Nfc3luY29ial9xdWVyeQogYW1kZ3B1X2NzX3N5bmNvYmpf
cmVzZXQKIGFtZGdwdV9jc19zeW5jb2JqX3NpZ25hbAorYW1kZ3B1X2NzX3N5bmNvYmpfdGltZWxp
bmVfd2FpdAogYW1kZ3B1X2NzX3N5bmNvYmpfd2FpdAogYW1kZ3B1X2NzX3dhaXRfZmVuY2VzCiBh
bWRncHVfY3Nfd2FpdF9zZW1hcGhvcmUKZGlmZiAtLWdpdCBhL2FtZGdwdS9hbWRncHUuaCBiL2Ft
ZGdwdS9hbWRncHUuaAppbmRleCBjNDRhNDk1YS4uNWViZmUxZTMgMTAwNjQ0Ci0tLSBhL2FtZGdw
dS9hbWRncHUuaAorKysgYi9hbWRncHUvYW1kZ3B1LmgKQEAgLTE1MzcsNiArMTUzNyw0NSBAQCBp
bnQgYW1kZ3B1X2NzX3N5bmNvYmpfd2FpdChhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiAJCQkg
ICB1aW50MzJfdCAqZmlyc3Rfc2lnbmFsZWQpOwogCiAvKioKKyAqICBXYWl0IGZvciBvbmUgb3Ig
YWxsIHN5bmMgb2JqZWN0cyBvbiB0aGVpciBwb2ludHMgdG8gc2lnbmFsLgorICoKKyAqIFxwYXJh
bSAgIGRldgkgICAgLSBcYyBbaW5dIHNlbGYtZXhwbGFuYXRvcnkKKyAqIFxwYXJhbSAgIGhhbmRs
ZXMgLSBcYyBbaW5dIGFycmF5IG9mIHN5bmMgb2JqZWN0IGhhbmRsZXMKKyAqIFxwYXJhbSAgIHBv
aW50cyAtIFxjIFtpbl0gYXJyYXkgb2Ygc3luYyBwb2ludHMgdG8gd2FpdAorICogXHBhcmFtICAg
bnVtX2hhbmRsZXMgLSBcYyBbaW5dIHNlbGYtZXhwbGFuYXRvcnkKKyAqIFxwYXJhbSAgIHRpbWVv
dXRfbnNlYyAtIFxjIFtpbl0gc2VsZi1leHBsYW5hdG9yeQorICogXHBhcmFtICAgZmxhZ3MgICAt
IFxjIFtpbl0gYSBiaXRtYXNrIG9mIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfKgorICogXHBhcmFt
ICAgZmlyc3Rfc2lnbmFsZWQgLSBcYyBbaW5dIHNlbGYtZXhwbGFuYXRvcnkKKyAqCisgKiBccmV0
dXJuICAgMCBvbiBzdWNjZXNzXG4KKyAqICAgICAgICAgIC1FVElNRSAtIFRpbWVvdXQKKyAqICAg
ICAgICAgIDwwIC0gTmVnYXRpdmUgUE9TSVggRXJyb3IgY29kZQorICoKKyAqLworaW50IGFtZGdw
dV9jc19zeW5jb2JqX3RpbWVsaW5lX3dhaXQoYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2LAorCQkJ
CSAgICB1aW50MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBvaW50cywKKwkJCQkgICAgdW5zaWdu
ZWQgbnVtX2hhbmRsZXMsCisJCQkJICAgIGludDY0X3QgdGltZW91dF9uc2VjLCB1bnNpZ25lZCBm
bGFncywKKwkJCQkgICAgdWludDMyX3QgKmZpcnN0X3NpZ25hbGVkKTsKKy8qKgorICogIFF1ZXJ5
IHN5bmMgb2JqZWN0cyBwYXlsb2Fkcy4KKyAqCisgKiBccGFyYW0gICBkZXYJICAgIC0gXGMgW2lu
XSBzZWxmLWV4cGxhbmF0b3J5CisgKiBccGFyYW0gICBoYW5kbGVzIC0gXGMgW2luXSBhcnJheSBv
ZiBzeW5jIG9iamVjdCBoYW5kbGVzCisgKiBccGFyYW0gICBwb2ludHMgLSBcYyBbb3V0XSBhcnJh
eSBvZiBzeW5jIHBvaW50cyByZXR1cm5lZCwgd2hpY2ggcHJlc2VudHMKKyAqIHN5bmNvYmogcGF5
bG9hZC4KKyAqIFxwYXJhbSAgIG51bV9oYW5kbGVzIC0gXGMgW2luXSBzZWxmLWV4cGxhbmF0b3J5
CisgKgorICogXHJldHVybiAgIDAgb24gc3VjY2Vzc1xuCisgKiAgICAgICAgICAtRVRJTUUgLSBU
aW1lb3V0CisgKiAgICAgICAgICA8MCAtIE5lZ2F0aXZlIFBPU0lYIEVycm9yIGNvZGUKKyAqCisg
Ki8KK2ludCBhbWRncHVfY3Nfc3luY29ial9xdWVyeShhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYs
CisJCQkgICAgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQ2NF90ICpwb2ludHMsCisJCQkgICAgdW5z
aWduZWQgbnVtX2hhbmRsZXMpOworCisvKioKICAqICBFeHBvcnQga2VybmVsIHN5bmMgb2JqZWN0
IHRvIHNoYXJlYWJsZSBmZC4KICAqCiAgKiBccGFyYW0gICBkZXYJICAgICAgIC0gXGMgW2luXSBk
ZXZpY2UgaGFuZGxlCmRpZmYgLS1naXQgYS9hbWRncHUvYW1kZ3B1X2NzLmMgYi9hbWRncHUvYW1k
Z3B1X2NzLmMKaW5kZXggN2M1YjlkMTMuLjlmY2FmMmM0IDEwMDY0NAotLS0gYS9hbWRncHUvYW1k
Z3B1X2NzLmMKKysrIGIvYW1kZ3B1L2FtZGdwdV9jcy5jCkBAIC02ODYsNiArNjg2LDI5IEBAIGRy
bV9wdWJsaWMgaW50IGFtZGdwdV9jc19zeW5jb2JqX3dhaXQoYW1kZ3B1X2RldmljZV9oYW5kbGUg
ZGV2LAogCQkJICAgICAgZmxhZ3MsIGZpcnN0X3NpZ25hbGVkKTsKIH0KIAorZHJtX3B1YmxpYyBp
bnQgYW1kZ3B1X2NzX3N5bmNvYmpfdGltZWxpbmVfd2FpdChhbWRncHVfZGV2aWNlX2hhbmRsZSBk
ZXYsCisJCQkJCSAgICAgICB1aW50MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBvaW50cywKKwkJ
CQkJICAgICAgIHVuc2lnbmVkIG51bV9oYW5kbGVzLAorCQkJCQkgICAgICAgaW50NjRfdCB0aW1l
b3V0X25zZWMsIHVuc2lnbmVkIGZsYWdzLAorCQkJCQkgICAgICAgdWludDMyX3QgKmZpcnN0X3Np
Z25hbGVkKQoreworCWlmIChOVUxMID09IGRldikKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1
cm4gZHJtU3luY29ialRpbWVsaW5lV2FpdChkZXYtPmZkLCBoYW5kbGVzLCBwb2ludHMsIG51bV9o
YW5kbGVzLAorCQkJCSAgICAgIHRpbWVvdXRfbnNlYywgZmxhZ3MsIGZpcnN0X3NpZ25hbGVkKTsK
K30KKworZHJtX3B1YmxpYyBpbnQgYW1kZ3B1X2NzX3N5bmNvYmpfcXVlcnkoYW1kZ3B1X2Rldmlj
ZV9oYW5kbGUgZGV2LAorCQkJCSAgICAgICB1aW50MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBv
aW50cywKKwkJCQkgICAgICAgdW5zaWduZWQgbnVtX2hhbmRsZXMpCit7CisJaWYgKE5VTEwgPT0g
ZGV2KQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldHVybiBkcm1TeW5jb2JqUXVlcnkoZGV2LT5m
ZCwgaGFuZGxlcywgcG9pbnRzLCBudW1faGFuZGxlcyk7Cit9CisKIGRybV9wdWJsaWMgaW50IGFt
ZGdwdV9jc19leHBvcnRfc3luY29iaihhbWRncHVfZGV2aWNlX2hhbmRsZSBkZXYsCiAJCQkJCXVp
bnQzMl90IGhhbmRsZSwKIAkJCQkJaW50ICpzaGFyZWRfZmQpCmNvbW1pdCBlYzZhZTUxZTgwN2Ux
N2YwMDQ1N2M5N2ZjNjBiYzVhYzU1ZDMwMjFkCkF1dGhvcjogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQx
Lnpob3VAYW1kLmNvbT4KRGF0ZTogICBUaHUgTWF5IDE2IDE2OjA3OjA5IDIwMTkgKzA4MDAKCiAg
ICBhZGQgdGltZWxpbmUgd2FpdC9xdWVyeSBpb2N0bCB2MgogICAgCiAgICB2MjogZHJvcCBleHBv
cnQvaW1wb3J0CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3UgPGRhdmlkMS56
aG91QGFtZC5jb20+CiAgICBSZXZpZXdlZC1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5n
LmxhbmR3ZXJsaW5AaW50ZWwuY29tPgoKZGlmZiAtLWdpdCBhL3hmODZkcm0uYyBiL3hmODZkcm0u
YwppbmRleCAyYzE5Mzc2Yi4uMWE3MTdmMDIgMTAwNjQ0Ci0tLSBhL3hmODZkcm0uYworKysgYi94
Zjg2ZHJtLmMKQEAgLTQyNTYsMyArNDI1Niw0NyBAQCBkcm1fcHVibGljIGludCBkcm1TeW5jb2Jq
U2lnbmFsKGludCBmZCwgY29uc3QgdWludDMyX3QgKmhhbmRsZXMsCiAgICAgcmV0ID0gZHJtSW9j
dGwoZmQsIERSTV9JT0NUTF9TWU5DT0JKX1NJR05BTCwgJmFyZ3MpOwogICAgIHJldHVybiByZXQ7
CiB9CisKK2RybV9wdWJsaWMgaW50IGRybVN5bmNvYmpUaW1lbGluZVdhaXQoaW50IGZkLCB1aW50
MzJfdCAqaGFuZGxlcywgdWludDY0X3QgKnBvaW50cywKKwkJCQkgICAgICB1bnNpZ25lZCBudW1f
aGFuZGxlcywKKwkJCQkgICAgICBpbnQ2NF90IHRpbWVvdXRfbnNlYywgdW5zaWduZWQgZmxhZ3Ms
CisJCQkJICAgICAgdWludDMyX3QgKmZpcnN0X3NpZ25hbGVkKQoreworICAgIHN0cnVjdCBkcm1f
c3luY29ial90aW1lbGluZV93YWl0IGFyZ3M7CisgICAgaW50IHJldDsKKworICAgIG1lbWNsZWFy
KGFyZ3MpOworICAgIGFyZ3MuaGFuZGxlcyA9ICh1aW50cHRyX3QpaGFuZGxlczsKKyAgICBhcmdz
LnBvaW50cyA9ICh1aW50cHRyX3QpcG9pbnRzOworICAgIGFyZ3MudGltZW91dF9uc2VjID0gdGlt
ZW91dF9uc2VjOworICAgIGFyZ3MuY291bnRfaGFuZGxlcyA9IG51bV9oYW5kbGVzOworICAgIGFy
Z3MuZmxhZ3MgPSBmbGFnczsKKworICAgIHJldCA9IGRybUlvY3RsKGZkLCBEUk1fSU9DVExfU1lO
Q09CSl9USU1FTElORV9XQUlULCAmYXJncyk7CisgICAgaWYgKHJldCA8IDApCisgICAgICAgIHJl
dHVybiAtZXJybm87CisKKyAgICBpZiAoZmlyc3Rfc2lnbmFsZWQpCisgICAgICAgICpmaXJzdF9z
aWduYWxlZCA9IGFyZ3MuZmlyc3Rfc2lnbmFsZWQ7CisgICAgcmV0dXJuIHJldDsKK30KKworCitk
cm1fcHVibGljIGludCBkcm1TeW5jb2JqUXVlcnkoaW50IGZkLCB1aW50MzJfdCAqaGFuZGxlcywg
dWludDY0X3QgKnBvaW50cywKKwkJCSAgICAgICB1aW50MzJfdCBoYW5kbGVfY291bnQpCit7Cisg
ICAgc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX2FycmF5IGFyZ3M7CisgICAgaW50IHJldDsK
KworICAgIG1lbWNsZWFyKGFyZ3MpOworICAgIGFyZ3MuaGFuZGxlcyA9ICh1aW50cHRyX3QpaGFu
ZGxlczsKKyAgICBhcmdzLnBvaW50cyA9ICh1aW50cHRyX3QpcG9pbnRzOworICAgIGFyZ3MuY291
bnRfaGFuZGxlcyA9IGhhbmRsZV9jb3VudDsKKworICAgIHJldCA9IGRybUlvY3RsKGZkLCBEUk1f
SU9DVExfU1lOQ09CSl9RVUVSWSwgJmFyZ3MpOworICAgIGlmIChyZXQpCisgICAgICAgIHJldHVy
biByZXQ7CisgICAgcmV0dXJuIDA7Cit9CisKKwpkaWZmIC0tZ2l0IGEveGY4NmRybS5oIGIveGY4
NmRybS5oCmluZGV4IDg4N2VjYzc2Li42MGM3YTg0ZiAxMDA2NDQKLS0tIGEveGY4NmRybS5oCisr
KyBiL3hmODZkcm0uaApAQCAtODc2LDYgKzg3NiwxMiBAQCBleHRlcm4gaW50IGRybVN5bmNvYmpX
YWl0KGludCBmZCwgdWludDMyX3QgKmhhbmRsZXMsIHVuc2lnbmVkIG51bV9oYW5kbGVzLAogCQkJ
ICB1aW50MzJfdCAqZmlyc3Rfc2lnbmFsZWQpOwogZXh0ZXJuIGludCBkcm1TeW5jb2JqUmVzZXQo
aW50IGZkLCBjb25zdCB1aW50MzJfdCAqaGFuZGxlcywgdWludDMyX3QgaGFuZGxlX2NvdW50KTsK
IGV4dGVybiBpbnQgZHJtU3luY29ialNpZ25hbChpbnQgZmQsIGNvbnN0IHVpbnQzMl90ICpoYW5k
bGVzLCB1aW50MzJfdCBoYW5kbGVfY291bnQpOworZXh0ZXJuIGludCBkcm1TeW5jb2JqVGltZWxp
bmVXYWl0KGludCBmZCwgdWludDMyX3QgKmhhbmRsZXMsIHVpbnQ2NF90ICpwb2ludHMsCisJCQkJ
ICB1bnNpZ25lZCBudW1faGFuZGxlcywKKwkJCQkgIGludDY0X3QgdGltZW91dF9uc2VjLCB1bnNp
Z25lZCBmbGFncywKKwkJCQkgIHVpbnQzMl90ICpmaXJzdF9zaWduYWxlZCk7CitleHRlcm4gaW50
IGRybVN5bmNvYmpRdWVyeShpbnQgZmQsIHVpbnQzMl90ICpoYW5kbGVzLCB1aW50NjRfdCAqcG9p
bnRzLAorCQkJICAgdWludDMyX3QgaGFuZGxlX2NvdW50KTsKIAogI2lmIGRlZmluZWQoX19jcGx1
c3BsdXMpCiB9CmNvbW1pdCA2NDJlYzdmYzM0NGZhZjExYTI5MzNkMDk0Y2MzMTg0YzJiOGYwMTI2
CkF1dGhvcjogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4KRGF0ZTogICBUaHUg
TWF5IDE2IDE2OjA3OjA4IDIwMTkgKzA4MDAKCiAgICBhZGQgY3MgY2h1bmsgZm9yIHN5bmNvYmog
dGltZWxpbmUKICAgIAogICAgU2lnbmVkLW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpo
b3VAYW1kLmNvbT4KICAgIEFja2VkLWJ5OiBMaW9uZWwgTGFuZHdlcmxpbiA8bGlvbmVsLmcubGFu
ZHdlcmxpbkBpbnRlbC5jb20+CgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vYW1kZ3B1X2RybS5o
IGIvaW5jbHVkZS9kcm0vYW1kZ3B1X2RybS5oCmluZGV4IGQwNzAxZmZjLi4zZDAzMThlNiAxMDA2
NDQKLS0tIGEvaW5jbHVkZS9kcm0vYW1kZ3B1X2RybS5oCisrKyBiL2luY2x1ZGUvZHJtL2FtZGdw
dV9kcm0uaApAQCAtNTI4LDYgKzUyOCw4IEBAIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV92YSB7CiAj
ZGVmaW5lIEFNREdQVV9DSFVOS19JRF9TWU5DT0JKX09VVCAgICAgMHgwNQogI2RlZmluZSBBTURH
UFVfQ0hVTktfSURfQk9fSEFORExFUyAgICAgIDB4MDYKICNkZWZpbmUgQU1ER1BVX0NIVU5LX0lE
X1NDSEVEVUxFRF9ERVBFTkRFTkNJRVMJMHgwNworI2RlZmluZSBBTURHUFVfQ0hVTktfSURfU1lO
Q09CSl9USU1FTElORV9XQUlUICAgIDB4MDgKKyNkZWZpbmUgQU1ER1BVX0NIVU5LX0lEX1NZTkNP
QkpfVElNRUxJTkVfU0lHTkFMICAweDA5CiAKIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rIHsK
IAlfX3UzMgkJY2h1bmtfaWQ7CkBAIC02MDgsNiArNjEwLDEzIEBAIHN0cnVjdCBkcm1fYW1kZ3B1
X2NzX2NodW5rX3NlbSB7CiAJX191MzIgaGFuZGxlOwogfTsKIAorc3RydWN0IGRybV9hbWRncHVf
Y3NfY2h1bmtfc3luY29iaiB7CisJX191MzIgaGFuZGxlOworCV9fdTMyIGZsYWdzOworCV9fdTY0
IHBvaW50OworfTsKKworCiAjZGVmaW5lIEFNREdQVV9GRU5DRV9UT19IQU5ETEVfR0VUX1NZTkNP
QkoJMAogI2RlZmluZSBBTURHUFVfRkVOQ0VfVE9fSEFORExFX0dFVF9TWU5DT0JKX0ZECTEKICNk
ZWZpbmUgQU1ER1BVX0ZFTkNFX1RPX0hBTkRMRV9HRVRfU1lOQ19GSUxFX0ZECTIKCgotLQpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEcmktcGF0Y2hlcyBt
YWlsaW5nIGxpc3QKRHJpLXBhdGNoZXNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlz
dHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2RyaS1wYXRjaGVzCg==