Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jun 2023 21:48:04 +0000
From:      "titus_edc.ro (Titus  Manea)" <phabric-noreply@FreeBSD.org>
To:        Phabricator <phabric-noreply@FreeBSD.org>
Cc:        freebsd-arm@freebsd.org
Subject:   [Differential] D40712: support for rockchip rk3308
Message-ID:  <2bc950834f67f1a6052aa5beb181610b@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-g5cpfnen4oxe6xbvnfzk-req@reviews.freebsd.org>
References:  <differential-rev-PHID-DREV-g5cpfnen4oxe6xbvnfzk-req@reviews.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--b1_2bc950834f67f1a6052aa5beb181610b
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64

dGl0dXNfZWRjLnJvIGNyZWF0ZWQgdGhpcyByZXZpc2lvbi4KdGl0dXNfZWRjLnJvIGFkZGVkIGEg
cmV2aWV3ZXI6IGFybTY0LgpIZXJhbGQgYWRkZWQgYSByZXZpZXdlcjogYW5kcmV3LgpIZXJhbGQg
YWRkZWQgYSByZXZpZXdlcjogYW5kcmV3LgpIZXJhbGQgYWRkZWQgc3Vic2NyaWJlcnM6IGFuZHJl
dywgZW1hc3RlLgpIZXJhbGQgYWRkZWQgYSByZXZpZXdlcjogbWFudS4KSGVyYWxkIGFkZGVkIGEg
cmV2aWV3ZXI6IG1hbnUuCnRpdHVzX2VkYy5ybyByZXF1ZXN0ZWQgcmV2aWV3IG9mIHRoaXMgcmV2
aXNpb24uCgpSRVZJU0lPTiBTVU1NQVJZCiAgcm9ja2NoaXAtcyBpcyBwcm9iYWJseSB0aGUgY2hl
YXBlc3QgYXJtNjQgYm9hcmQKICB1c2IsIHNkY2FyZCwgZXRoZXJuZXQsIHVhcnQgd29yawogIG1v
c3Qgb2YgdGhlIGNoYW5nZXMgYXJlIHBvcnRlZCBmcm9tIGxpbnV4IGFuZCBvcGVuYnNkCiAgdGhl
IHJrMzMwOF9jcnUuYyBmaWxlIGlzIGJhc2ljYWxseSBnZW5lcmF0ZWQgd2l0aCBhIHNldCBvZiBj
b252ZXJzaW9uIGNwcCBtYWNyb3MgKGNvbnZlcnQgbGludXggbWFjcm9zIHRvIGZyZWVic2QgbWFj
cm9zKQogIHRoZSByZWd1bGF0b3ItcHdtIGlzIGNydWRlIGFuZCBvbmx5IHN1cHBvcnRzIGNvbnRp
bnVvdXMgbW9kZQogIHNldHRpbmcgY3B1IGZyZXF1ZW5jeSB3b3JrcwogIHRlbXBlcmF0dXJlIHJl
YWRpbmcgd29ya3MKICBldGhlcm5ldCBtZWRpYSBhdXRvc2VsZWN0IGRvZXMgbm90IHdvcmsKICB3
aXRoIG9sZGVyIHUtYm9vdCAyMDE3IGV0aGVybmV0IGRvZXMgbm90IHdvcmsgKHBoeSByZWd1bGF0
b3Igc2VlbXMgZG93bikKClRFU1QgUExBTgogIHlvdSBuZWVkIHRvIGJ1aWxkIHUtYm9vdCBmcm9t
IGdpdCB3aXRoIHJvY2stcGktcy1yazMzMDhfZGVmY29uZmlnICsgRUZJIHN1cHBvcnQKICBwcmVs
b2FkZXIgYW5kIHRydXN0LmltZyBhcmUgZnJvbSByb2NrY2hpcCAodGhlcmUgaXMgbm8gcHVibGlj
IHNvdXJjZSBjb2RlIGZvciBibDMxKSwgdGhlbiB1c2UgcmstbG9hZGVyaW1hZ2UgKHBvcnRzKSB0
byBjb252ZXJ0IHUtYm9vdC1kdGIuYmluIGludG8gdS1ib290LmltZwogIGkgYnVpbHQgYSAxMy54
IGtlcm5lbCBhbmQgaXQgd29ya3MgKGFsbCB0aGUgZmlsZXMgaW4gdGhlIGRpZmYgYXJlIGZyb20g
LUNVUlJFTlQgYnV0IHRoZXkgYXJlIG1vc3RseSB0aGUgc2FtZSBhcyAxMy4yICkKICB1LWJvb3Qg
YmluYXJpZXMgYXZhaWxhYmxlIGhlcmUgbGluayA8aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2Zp
bGUvZC8xNmp3WHRSbzdibUhleGgtVlR6Nk9kalYyZmtINElIZ1gvdmlldz4KICBkaXNrIGxheW91
dCBpcyBzaW1pbGFyIHRvIG90aGVyIHJvY2tjaGlwIHNiY3MsIHlvdSBuZWVkICAxNk1CIG9mIGVt
cHR5IHNwYWNlIGJlZm9yZSB0aGUgZmlyc3QvZWZpIHBhcnRpdGlvbgoKUkVWSVNJT04gREVUQUlM
CiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL0Q0MDcxMgoKQUZGRUNURUQgRklMRVMKICBz
eXMvYXJtNjQvY29uZi9zdGQucm9ja2NoaXAKICBzeXMvYXJtNjQvcm9ja2NoaXAvY2xrL3JrMzMw
OF9jcnUuYwogIHN5cy9hcm02NC9yb2NrY2hpcC9pZl9kd2NfcmsuYwogIHN5cy9hcm02NC9yb2Nr
Y2hpcC9ya19ncmYuYwogIHN5cy9hcm02NC9yb2NrY2hpcC9ya19waW5jdHJsLmMKICBzeXMvYXJt
NjQvcm9ja2NoaXAvcmtfcHdtLmMKICBzeXMvYXJtNjQvcm9ja2NoaXAvcmtfc3BpLmMKICBzeXMv
YXJtNjQvcm9ja2NoaXAvcmtfdHNhZGMuYwogIHN5cy9hcm02NC9yb2NrY2hpcC9ya191c2IycGh5
LmMKICBzeXMvY29uZi9maWxlcwogIHN5cy9jb25mL2ZpbGVzLmFybTY0CiAgc3lzL2Rldi9leHRy
ZXMvcmVndWxhdG9yL3JlZ3VsYXRvcl9wd20uYwogIHN5cy9kZXYvZXh0cmVzL3JlZ3VsYXRvci9y
ZWd1bGF0b3JfcHdtLmgKCkVNQUlMIFBSRUZFUkVOQ0VTCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVi
c2Qub3JnL3NldHRpbmdzL3BhbmVsL2VtYWlscHJlZmVyZW5jZXMvCgpUbzogdGl0dXNfZWRjLnJv
LCAjYXJtNjQsIGFuZHJldywgbWFudQpDYzogZW1hc3RlLCBmcmVlYnNkLWFybS1saXN0LCBhbmRy
ZXcK

--b1_2bc950834f67f1a6052aa5beb181610b
Content-Type: text/x-patch; charset=utf-8; name="D40712.123644.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D40712.123644.patch"

ZGlmZiAtLWdpdCBhL3N5cy9kZXYvZXh0cmVzL3JlZ3VsYXRvci9yZWd1bGF0b3JfcHdtLmggYi9z
eXMvZGV2L2V4dHJlcy9yZWd1bGF0b3IvcmVndWxhdG9yX3B3bS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2Rldi9leHRyZXMvcmVndWxhdG9yL3JlZ3VsYXRv
cl9wd20uaApAQCAtMCwwICsxLDE2IEBACisjaWZuZGVmIF9ERVZfRVhUUkVTX1JFR1VMQVRPUl9Q
V01fSF8KKyNkZWZpbmUgX0RFVl9FWFRSRVNfUkVHVUxBVE9SX1BXTV9IXworCisjaW5jbHVkZSA8
ZGV2L2dwaW8vZ3Bpb2J1c3Zhci5oPgorI2luY2x1ZGUgPGRldi9leHRyZXMvcmVndWxhdG9yL3Jl
Z3VsYXRvci5oPgorCitzdHJ1Y3QgcmVnbm9kZV9wd21faW5pdF9kZWYgeworCXN0cnVjdCByZWdu
b2RlX2luaXRfZGVmCXJlZ19pbml0X2RlZjsKKwlib29sCQkJZ3Bpb19vcGVuX2RyYWluOworCXN0
cnVjdCBncGlvYnVzX3BpbgkqZ3Bpb19waW47Cit9OworCitpbnQgcmVnbm9kZV9wd21fcmVnaXN0
ZXIoZGV2aWNlX3QgZGV2LAorICAgIHN0cnVjdCByZWdub2RlX3B3bV9pbml0X2RlZiAqaW5pdF9k
ZWYpOworCisjZW5kaWYgLypfREVWX0VYVFJFU19SRUdVTEFUT1JfUFdNX0hfKi8KZGlmZiAtLWdp
dCBhL3N5cy9kZXYvZXh0cmVzL3JlZ3VsYXRvci9yZWd1bGF0b3JfcHdtLmMgYi9zeXMvZGV2L2V4
dHJlcy9yZWd1bGF0b3IvcmVndWxhdG9yX3B3bS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvc3lzL2Rldi9leHRyZXMvcmVndWxhdG9yL3JlZ3VsYXRvcl9wd20uYwpA
QCAtMCwwICsxLDU2MCBAQAorI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVl
QlNEJCIpOworCisjaW5jbHVkZSAib3B0X3BsYXRmb3JtLmgiCisjaW5jbHVkZSA8c3lzL3BhcmFt
Lmg+CisjaW5jbHVkZSA8c3lzL2NvbmYuaD4KKyNpbmNsdWRlIDxzeXMvZ3Bpby5oPgorI2luY2x1
ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMva29iai5oPgorI2luY2x1ZGUgPHN5cy9z
eXN0bS5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKyNpbmNsdWRlIDxzeXMvbXV0ZXguaD4K
KworI2lmZGVmIEZEVAorI2luY2x1ZGUgPGRldi9mZHQvZmR0X2NvbW1vbi5oPgorI2luY2x1ZGUg
PGRldi9vZncvb2Z3X2J1cy5oPgorI2luY2x1ZGUgPGRldi9vZncvb2Z3X2J1c19zdWJyLmg+Cisj
aW5jbHVkZSAicHdtYnVzX2lmLmgiCisjZW5kaWYKKyNpbmNsdWRlIDxkZXYvZ3Bpby9ncGlvYnVz
dmFyLmg+CisjaW5jbHVkZSA8ZGV2L3B3bS9wd21idXMuaD4KKyNpbmNsdWRlIDxkZXYvZXh0cmVz
L3JlZ3VsYXRvci9yZWd1bGF0b3JfcHdtLmg+CisKKyNpbmNsdWRlICJyZWdkZXZfaWYuaCIKKwor
TUFMTE9DX0RFRklORShNX1BXTVJFR1VMQVRPUiwgInB3bXJlZ3VsYXRvciIsICJQV00gcmVndWxh
dG9yIik7CisKKy8qIEdQSU8gbGlzdCBmb3Igc2hhcmVkIHBpbnMuICovCit0eXBlZGVmIFRBSUxR
X0hFQUQoZ3Bpb19saXN0LCBncGlvX2VudHJ5KSBncGlvX2xpc3RfdDsKK3N0cnVjdCBncGlvX2Vu
dHJ5IHsKKwlUQUlMUV9FTlRSWShncGlvX2VudHJ5KQlsaW5rOworCXN0cnVjdCBncGlvYnVzX3Bp
bglncGlvX3BpbjsKKwlpbnQgCQkJdXNlX2NudDsKKwlpbnQgCQkJZW5hYmxlX2NudDsKKwlib29s
CQkJYWx3YXlzX29uOworfTsKK3N0YXRpYyBncGlvX2xpc3RfdCBncGlvX2xpc3QgPSBUQUlMUV9I
RUFEX0lOSVRJQUxJWkVSKGdwaW9fbGlzdCk7CitzdGF0aWMgc3RydWN0IG10eCBncGlvX2xpc3Rf
bXR4OworTVRYX1NZU0lOSVQoZ3Bpb19saXN0X2xvY2ssICZncGlvX2xpc3RfbXR4LCAiUmVndWxh
dG9yIEdQSU8gbG9jayIsIE1UWF9ERUYpOworCitzdHJ1Y3QgcmVnbm9kZV9wd21fc2MgeworCXN0
cnVjdCByZWdub2RlX3N0ZF9wYXJhbSAqcGFyYW07CisJYm9vbAkJCWdwaW9fb3Blbl9kcmFpbjsK
KwlzdHJ1Y3QgZ3Bpb19lbnRyeQkqZ3Bpb19lbnRyeTsKK307CisKK3N0YXRpYyBpbnQgcmVnbm9k
ZV9wd21faW5pdChzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSk7CitzdGF0aWMgaW50IHJlZ25vZGVf
cHdtX2VuYWJsZShzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSwgYm9vbCBlbmFibGUsCisgICAgaW50
ICp1ZGVsYXkpOworc3RhdGljIGludCByZWdub2RlX3B3bV9zdGF0dXMoc3RydWN0IHJlZ25vZGUg
KnJlZ25vZGUsIGludCAqc3RhdHVzKTsKK3N0YXRpYyBpbnQgcmVnbm9kZV9wd21fc3RvcChzdHJ1
Y3QgcmVnbm9kZSAqcmVnbm9kZSwgaW50ICp1ZGVsYXkpOworc3RhdGljIGludCByZWdub2RlX3B3
bV9nZXRfdm9sdGFnZShzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSwgaW50ICp1dm9sdCk7CitzdGF0
aWMgaW50IHJlZ25vZGVfcHdtX3NldF92b2x0YWdlKHN0cnVjdCByZWdub2RlICpyZWdub2RlLCBp
bnQgbWluX3V2b2x0LCBpbnQgbWF4X3V2b2x0LGludCAqdWRlbGF5KTsKKworc3RhdGljIHJlZ25v
ZGVfbWV0aG9kX3QgcmVnbm9kZV9wd21fbWV0aG9kc1tdID0geworCS8qIFJlZ3VsYXRvciBpbnRl
cmZhY2UgKi8KKwlSRUdOT0RFTUVUSE9EKHJlZ25vZGVfaW5pdCwJCXJlZ25vZGVfcHdtX2luaXQp
LAorCVJFR05PREVNRVRIT0QocmVnbm9kZV9lbmFibGUsCQlyZWdub2RlX3B3bV9lbmFibGUpLAor
CVJFR05PREVNRVRIT0QocmVnbm9kZV9zdGF0dXMsCQlyZWdub2RlX3B3bV9zdGF0dXMpLAorCVJF
R05PREVNRVRIT0QocmVnbm9kZV9zdG9wLAkJcmVnbm9kZV9wd21fc3RvcCksCisJUkVHTk9ERU1F
VEhPRChyZWdub2RlX2dldF92b2x0YWdlLAlyZWdub2RlX3B3bV9nZXRfdm9sdGFnZSksCisJUkVH
Tk9ERU1FVEhPRChyZWdub2RlX3NldF92b2x0YWdlLAlyZWdub2RlX3B3bV9zZXRfdm9sdGFnZSks
CQorCVJFR05PREVNRVRIT0QocmVnbm9kZV9jaGVja192b2x0YWdlLAlyZWdub2RlX21ldGhvZF9j
aGVja192b2x0YWdlKSwKKwlSRUdOT0RFTUVUSE9EX0VORAorfTsKK0RFRklORV9DTEFTU18xKHJl
Z25vZGVfcHdtLCByZWdub2RlX3B3bV9jbGFzcywgcmVnbm9kZV9wd21fbWV0aG9kcywKKyAgIHNp
emVvZihzdHJ1Y3QgcmVnbm9kZV9wd21fc2MpLCByZWdub2RlX2NsYXNzKTsKKworLyoKKyAqIEdQ
SU8gbGlzdCBmdW5jdGlvbnMuCisgKiBUd28gb3IgbW9yZSByZWd1bGF0b3JzIGNhbiBzaGFyZSBz
aW5nbGUgR1BJTyBwaW5zLCBzbyB3ZSBtdXN0IHRyYWNrIGFsbAorICogR1BJT3MgaW4gZ3Bpb19s
aXN0LgorICogVGhlIEdQSU8gcGluIGlzIHJlZ2lzdGVyZCBhbmQgcmVzZXZlZCBmb3IgZmlyc3Qg
Y29uc3VtZXIsIGFsbCBvdGhlcnMgc2hhcmUKKyAqIGdwaW9fZW50cnkgd2l0aCBpdC4KKyAqLwor
c3RhdGljIHN0cnVjdCBncGlvX2VudHJ5ICoKK3JlZ25vZGVfZ2V0X2dwaW9fZW50cnkoc3RydWN0
IGdwaW9idXNfcGluICpncGlvX3BpbikKK3sKKwlzdHJ1Y3QgZ3Bpb19lbnRyeSAqZW50cnksICp0
bXA7CisJZGV2aWNlX3QgYnVzZGV2OworCWludCBydjsKKworCWJ1c2RldiA9IEdQSU9fR0VUX0JV
UyhncGlvX3Bpbi0+ZGV2KTsKKwlpZiAoYnVzZGV2ID09IE5VTEwpCisJCXJldHVybiAoTlVMTCk7
CisJZW50cnkgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBncGlvX2VudHJ5KSwgTV9QV01SRUdVTEFU
T1IsCisJICAgIE1fV0FJVE9LIHwgTV9aRVJPKTsKKworCW10eF9sb2NrKCZncGlvX2xpc3RfbXR4
KTsKKworCVRBSUxRX0ZPUkVBQ0godG1wLCAmZ3Bpb19saXN0LCBsaW5rKSB7CisJCWlmICh0bXAt
PmdwaW9fcGluLmRldiA9PSBncGlvX3Bpbi0+ZGV2ICYmCisJCSAgICB0bXAtPmdwaW9fcGluLnBp
biA9PSBncGlvX3Bpbi0+cGluKSB7CisJCQl0bXAtPnVzZV9jbnQrKzsKKwkJCW10eF91bmxvY2so
JmdwaW9fbGlzdF9tdHgpOworCQkJZnJlZShlbnRyeSwgTV9QV01SRUdVTEFUT1IpOworCQkJcmV0
dXJuICh0bXApOworCQl9CisJfQorCisJLyogUmVzZXJ2ZSBwaW4uICovCisJLyogWFhYIENhbiB3
ZSBjYWxsIGdwaW9idXNfYWNxdWlyZV9waW4oKSB3aXRoIGdwaW9fbGlzdF9tdHggaGVsZD8gKi8K
KwlydiA9IGdwaW9idXNfYWNxdWlyZV9waW4oYnVzZGV2LCBncGlvX3Bpbi0+cGluKTsKKwlpZiAo
cnYgIT0gMCkgeworCQltdHhfdW5sb2NrKCZncGlvX2xpc3RfbXR4KTsKKwkJZnJlZShlbnRyeSwg
TV9QV01SRUdVTEFUT1IpOworCQlyZXR1cm4gKE5VTEwpOworCX0KKwkvKiBFdmVyeXRoaW5nIGlz
IE9LLCBidWlsZCBuZXcgZW50cnkgYW5kIGluc2VydCBpdCB0byBsaXN0LiAqLworCWVudHJ5LT5n
cGlvX3BpbiA9ICpncGlvX3BpbjsKKwllbnRyeS0+dXNlX2NudCA9IDE7CisJVEFJTFFfSU5TRVJU
X1RBSUwoJmdwaW9fbGlzdCwgZW50cnksIGxpbmspOworCisJbXR4X3VubG9jaygmZ3Bpb19saXN0
X210eCk7CisJcmV0dXJuIChlbnRyeSk7Cit9CisKKyNpZmRlZiBGRFQKKyNpbmNsdWRlIDxkZXYv
cHdtL29md19wd20uaD4KK3N0cnVjdCAgcmVncHdtX3NvZnRjCit7CisJZGV2aWNlX3QJCQlkZXY7
CisJYm9vbAkJCQlhdHRhY2hfZG9uZTsKKwlzdHJ1Y3QgcmVnbm9kZV9wd21faW5pdF9kZWYJaW5p
dF9kZWY7CisJcGhhbmRsZV90CQkJZ3Bpb19wcm9keHJlZjsKKwlwY2VsbF90CQkJCSpncGlvX2Nl
bGxzOworCWludAkJCQlncGlvX25jZWxsczsKKwlzdHJ1Y3QgZ3Bpb2J1c19waW4JCWdwaW9fcGlu
OworCXB3bV9jaGFubmVsX3QgICAJCWNoYW5uZWw7CisJdWludDMyX3QJCQlzY19kdXR5Y3ljbGVf
dW5pdDsKKwl1aW50MzJfdAkJCXNjX2R1dHljeWNsZV9yYW5nZVsyXTsKK307CisjZW5kaWYKKy8q
CisgKiBSZWd1bGF0b3IgY2xhc3MgaW1wbGVtZW50YXRpb24uCisgKi8KK3N0YXRpYyBpbnQKK3Jl
Z25vZGVfcHdtX2luaXQoc3RydWN0IHJlZ25vZGUgKnJlZ25vZGUpCit7CisJZGV2aWNlX3QgZGV2
OworCXN0cnVjdCByZWdub2RlX3B3bV9zYyAqc2M7CisJc3RydWN0IGdwaW9idXNfcGluICpwaW47
CisJdWludDMyX3QgZmxhZ3M7CisJaW50IHJ2OworCisJc2MgPSByZWdub2RlX2dldF9zb2Z0Yyhy
ZWdub2RlKTsKKwlkZXYgPSByZWdub2RlX2dldF9kZXZpY2UocmVnbm9kZSk7CisJc2MtPnBhcmFt
ID0gcmVnbm9kZV9nZXRfc3RkcGFyYW0ocmVnbm9kZSk7CisJaWYgKHNjLT5ncGlvX2VudHJ5ID09
IE5VTEwpCisJCXJldHVybiAoMCk7CisJcGluID0gJnNjLT5ncGlvX2VudHJ5LT5ncGlvX3BpbjsK
KworCWZsYWdzID0gR1BJT19QSU5fT1VUUFVUOworCWlmIChzYy0+Z3Bpb19vcGVuX2RyYWluKQor
CQlmbGFncyB8PSBHUElPX1BJTl9PUEVORFJBSU47CisJaWYgKHNjLT5wYXJhbS0+Ym9vdF9vbiB8
fCBzYy0+cGFyYW0tPmFsd2F5c19vbikgeworCQlydiA9IEdQSU9fUElOX1NFVChwaW4tPmRldiwg
cGluLT5waW4sIHNjLT5wYXJhbS0+ZW5hYmxlX2FjdGl2ZV9oaWdoKTsKKwkJaWYgKHJ2ICE9IDAp
IHsKKwkJCWRldmljZV9wcmludGYoZGV2LCAiQ2Fubm90IHNldCBHUElPIHBpbjogJWRcbiIsCisJ
CQkgICAgcGluLT5waW4pOworCQkJcmV0dXJuIChydik7CisJCX0KKwl9CisKKwlydiA9IEdQSU9f
UElOX1NFVEZMQUdTKHBpbi0+ZGV2LCBwaW4tPnBpbiwgZmxhZ3MpOworCWlmIChydiAhPSAwKSB7
CisJCWRldmljZV9wcmludGYoZGV2LCAiQ2Fubm90IGNvbmZpZ3VyZSBHUElPIHBpbjogJWRcbiIs
IHBpbi0+cGluKTsKKwkJcmV0dXJuIChydik7CisJfQorCisJcmV0dXJuICgwKTsKK30KKworLyoK
KyAqIEVuYWJsZS9kaXNhYmxlIHJlZ3VsYXRvci4KKyAqIFRha2Ugc2hhcmVkIEdQSU8gcGlucyBp
biBhY2NvdW50CisgKi8KK3N0YXRpYyBpbnQKK3JlZ25vZGVfcHdtX2VuYWJsZShzdHJ1Y3QgcmVn
bm9kZSAqcmVnbm9kZSwgYm9vbCBlbmFibGUsIGludCAqdWRlbGF5KQoreworCWRldmljZV90IGRl
djsKKwlzdHJ1Y3QgcmVnbm9kZV9wd21fc2MgKnNjOworCXN0cnVjdCBncGlvYnVzX3BpbiAqcGlu
OworCWludCBydjsKKworCXNjID0gcmVnbm9kZV9nZXRfc29mdGMocmVnbm9kZSk7CisJZGV2ID0g
cmVnbm9kZV9nZXRfZGV2aWNlKHJlZ25vZGUpOworCisJKnVkZWxheSA9IDA7CisJaWYgKHNjLT5n
cGlvX2VudHJ5ID09IE5VTEwpCisJCXJldHVybiAoMCk7CisJcGluID0gJnNjLT5ncGlvX2VudHJ5
LT5ncGlvX3BpbjsKKwlpZiAoZW5hYmxlKSB7CisJCXNjLT5ncGlvX2VudHJ5LT5lbmFibGVfY250
Kys7CisJCWlmIChzYy0+Z3Bpb19lbnRyeS0+ZW5hYmxlX2NudCA+IDEpCisJCQlyZXR1cm4gKDAp
OworCX0gZWxzZSB7CisJCUtBU1NFUlQoc2MtPmdwaW9fZW50cnktPmVuYWJsZV9jbnQgPiAwLAor
CQkgICAgKCJJbnZhbGlkIGVuYWJsZSBjb3VudCIpKTsKKwkJc2MtPmdwaW9fZW50cnktPmVuYWJs
ZV9jbnQtLTsKKwkJaWYgKHNjLT5ncGlvX2VudHJ5LT5lbmFibGVfY250ID49IDEpCisJCQlyZXR1
cm4gKDApOworCX0KKwlpZiAoc2MtPmdwaW9fZW50cnktPmFsd2F5c19vbiAmJiAhZW5hYmxlKQor
CQlyZXR1cm4gKDApOworCWlmICghc2MtPnBhcmFtLT5lbmFibGVfYWN0aXZlX2hpZ2gpCisJCWVu
YWJsZSA9ICFlbmFibGU7CisJcnYgPSBHUElPX1BJTl9TRVQocGluLT5kZXYsIHBpbi0+cGluLCBl
bmFibGUpOworCWlmIChydiAhPSAwKSB7CisJCWRldmljZV9wcmludGYoZGV2LCAiQ2Fubm90IHNl
dCBHUElPIHBpbjogJWRcbiIsIHBpbi0+cGluKTsKKwkJcmV0dXJuIChydik7CisJfQorCSp1ZGVs
YXkgPSBzYy0+cGFyYW0tPmVuYWJsZV9kZWxheTsKKwlyZXR1cm4gKDApOworfQorCisvKgorICog
U3RvcCAocGh5c2ljYWx5IHNodXRkb3duKSByZWd1bGF0b3IuCisgKiBUYWtlIHNoYXJlZCBHUElP
IHBpbnMgaW4gYWNjb3VudAorICovCitzdGF0aWMgaW50CityZWdub2RlX3B3bV9zdG9wKHN0cnVj
dCByZWdub2RlICpyZWdub2RlLCBpbnQgKnVkZWxheSkKK3sKKwlkZXZpY2VfdCBkZXY7CisJc3Ry
dWN0IHJlZ25vZGVfcHdtX3NjICpzYzsKKwlzdHJ1Y3QgZ3Bpb2J1c19waW4gKnBpbjsKKwlpbnQg
cnY7CisKKwlzYyA9IHJlZ25vZGVfZ2V0X3NvZnRjKHJlZ25vZGUpOworCWRldiA9IHJlZ25vZGVf
Z2V0X2RldmljZShyZWdub2RlKTsKKworCSp1ZGVsYXkgPSAwOworCWlmIChzYy0+Z3Bpb19lbnRy
eSA9PSBOVUxMKQorCQlyZXR1cm4gKDApOworCWlmIChzYy0+Z3Bpb19lbnRyeS0+YWx3YXlzX29u
KQorCQlyZXR1cm4gKDApOworCXBpbiA9ICZzYy0+Z3Bpb19lbnRyeS0+Z3Bpb19waW47CisJaWYg
KHNjLT5ncGlvX2VudHJ5LT5lbmFibGVfY250ID4gMCkgeworCQkvKiBPdGhlciByZWd1bGF0b3Io
cykgYXJlIGVuYWJsZWQuICovCisJCS8qIFhYWFggQW55IGRpYWdub3N0aWMgbWVzc2FnZT8gT3Ig
ZXJyb3I/ICovCisJCXJldHVybiAoMCk7CisJfQorCXJ2ID0gR1BJT19QSU5fU0VUKHBpbi0+ZGV2
LCBwaW4tPnBpbiwKKwkgICAgc2MtPnBhcmFtLT5lbmFibGVfYWN0aXZlX2hpZ2ggPyBmYWxzZTog
dHJ1ZSk7CisJaWYgKHJ2ICE9IDApIHsKKwkJZGV2aWNlX3ByaW50ZihkZXYsICJDYW5ub3Qgc2V0
IEdQSU8gcGluOiAlZFxuIiwgcGluLT5waW4pOworCQlyZXR1cm4gKHJ2KTsKKwl9CisJKnVkZWxh
eSA9IHNjLT5wYXJhbS0+ZW5hYmxlX2RlbGF5OworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBp
bnQKK3JlZ25vZGVfcHdtX3N0YXR1cyhzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSwgaW50ICpzdGF0
dXMpCit7CisJc3RydWN0IHJlZ25vZGVfcHdtX3NjICpzYzsKKwlzdHJ1Y3QgZ3Bpb2J1c19waW4g
KnBpbjsKKwl1aW50MzJfdCB2YWw7CisJaW50IHJ2OworCisJc2MgPSByZWdub2RlX2dldF9zb2Z0
YyhyZWdub2RlKTsKKworCSpzdGF0dXMgPSAwOworCWlmIChzYy0+Z3Bpb19lbnRyeSA9PSBOVUxM
KSB7CisJCSpzdGF0dXMgPSBSRUdVTEFUT1JfU1RBVFVTX0VOQUJMRUQ7CisJCXJldHVybiAoMCk7
CisJfQorCXBpbiA9ICZzYy0+Z3Bpb19lbnRyeS0+Z3Bpb19waW47CisKKwlydiA9IEdQSU9fUElO
X0dFVChwaW4tPmRldiwgcGluLT5waW4sICZ2YWwpOworCWlmIChydiA9PSAwKSB7CisJCWlmICgh
c2MtPnBhcmFtLT5lbmFibGVfYWN0aXZlX2hpZ2ggXiAodmFsICE9IDApKQorCQkJKnN0YXR1cyA9
IFJFR1VMQVRPUl9TVEFUVVNfRU5BQkxFRDsKKwl9CisJcmV0dXJuIChydik7Cit9CitzdGF0aWMg
aW50IAorcmVnbm9kZV9wd21fc2V0X3ZvbHRhZ2Uoc3RydWN0IHJlZ25vZGUgKnJlZ25vZGUsIGlu
dCBtaW5fdXZvbHQsIGludCBtYXhfdXZvbHQsIGludCAqIHVkZWxheSkgCit7CisgICAgICAgIHN0
cnVjdCByZWdub2RlX3B3bV9zYyAqc2M7CisgICAgICAgIHN0cnVjdCByZWdwd21fc29mdGMgKmRz
YzsKKyAgICAgICAgaW50MzJfdCB4MCwgeDEsIHkwLCB5MTsKKyAgICAgICAgaW50MzJfdCB4LCB5
OworICAgICAgICBib29sICBlbmFibGVkOworCisgICAgICAgIHNjID0gcmVnbm9kZV9nZXRfc29m
dGMocmVnbm9kZSk7CisgICAgICAgIGRzYyA9IGRldmljZV9nZXRfc29mdGMocmVnbm9kZV9nZXRf
ZGV2aWNlKHJlZ25vZGUpKTsKKyAgICAgICAgUFdNQlVTX0NIQU5ORUxfSVNfRU5BQkxFRChkc2Mt
PmNoYW5uZWwtPmRldixkc2MtPmNoYW5uZWwtPmNoYW5uZWwsICZlbmFibGVkKTsKKyAgCWlmKCFl
bmFibGVkKSAKKyAgCSAgcmV0dXJuIDA7CisgIAkgIAorICAJeDAgPSBzYy0+cGFyYW0tPm1pbl91
dm9sdDsKKyAgCXgxID0gc2MtPnBhcmFtLT5tYXhfdXZvbHQ7CisJeTAgPSBkc2MtPnNjX2R1dHlj
eWNsZV9yYW5nZVswXTsKKwl5MSA9IGRzYy0+c2NfZHV0eWN5Y2xlX3JhbmdlWzFdOworCXggPSBt
aW5fdXZvbHQ7CisJeSA9IHkwICsgKHggLSB4MCkgKiAoeTEgLSB5MCkgLyAoeDEgLSB4MCk7CisJ
ZHNjLT5jaGFubmVsLT5kdXR5ID0gKHkgKiBkc2MtPmNoYW5uZWwtPnBlcmlvZCkgLyBkc2MtPnNj
X2R1dHljeWNsZV91bml0OworCVBXTUJVU19DSEFOTkVMX0NPTkZJRyhkc2MtPmNoYW5uZWwtPmRl
dixkc2MtPmNoYW5uZWwtPmNoYW5uZWwsCisgICAgICAgICBkc2MtPmNoYW5uZWwtPnBlcmlvZCwg
ZHNjLT5jaGFubmVsLT5kdXR5KTsKKyAgICAgICAgcmV0dXJuIDA7CQorfQorCitzdGF0aWMgaW50
CityZWdub2RlX3B3bV9nZXRfdm9sdGFnZShzdHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZSwgaW50ICp1
dm9sdCkKK3sKKwlzdHJ1Y3QgcmVnbm9kZV9wd21fc2MgKnNjOworCXN0cnVjdCByZWdwd21fc29m
dGMgKmRzYzsKKwlpbnQzMl90IHgwLCB4MSwgeTAsIHkxOworCWludDMyX3QgeCwgeTsKKwlib29s
ICBlbmFibGVkOworCQorCXNjID0gcmVnbm9kZV9nZXRfc29mdGMocmVnbm9kZSk7CisJZHNjID0g
ZGV2aWNlX2dldF9zb2Z0YyhyZWdub2RlX2dldF9kZXZpY2UocmVnbm9kZSkpOwkKKyAgICAgICAg
UFdNQlVTX0NIQU5ORUxfSVNfRU5BQkxFRChkc2MtPmNoYW5uZWwtPmRldixkc2MtPmNoYW5uZWwt
PmNoYW5uZWwsICZlbmFibGVkKTsKKyAgCWlmKCFlbmFibGVkKSAKKyAgCSAgcmV0dXJuIDA7Cisg
IAkJIAorCVBXTUJVU19DSEFOTkVMX0dFVF9DT05GSUcoZHNjLT5jaGFubmVsLT5kZXYsZHNjLT5j
aGFubmVsLT5jaGFubmVsLAorCSh1X2ludCAqKSAmZHNjLT5jaGFubmVsLT5wZXJpb2QsICh1X2lu
dCAqKSZkc2MtPmNoYW5uZWwtPmR1dHkpOworCisJeDAgPSBkc2MtPnNjX2R1dHljeWNsZV9yYW5n
ZVswXTsKKwl4MSA9IGRzYy0+c2NfZHV0eWN5Y2xlX3JhbmdlWzFdOworCXkwID0gc2MtPnBhcmFt
LT5taW5fdXZvbHQ7CisJeTEgPSBzYy0+cGFyYW0tPm1heF91dm9sdDsKKwl4ID0gKGRzYy0+Y2hh
bm5lbC0+ZHV0eSAqIGRzYy0+c2NfZHV0eWN5Y2xlX3VuaXQpIC8gZHNjLT5jaGFubmVsLT5wZXJp
b2Q7CisJeSA9IHkwICsgKHggLSB4MCkgKiAoeTEgLSB5MCkgLyAoeDEgLSB4MCk7CisJCisJKnV2
b2x0ID0geTsKKwlyZXR1cm4gKDApOworfQorCitpbnQKK3JlZ25vZGVfcHdtX3JlZ2lzdGVyKGRl
dmljZV90IGRldiwgc3RydWN0IHJlZ25vZGVfcHdtX2luaXRfZGVmICppbml0X2RlZikKK3sKKwlz
dHJ1Y3QgcmVnbm9kZSAqcmVnbm9kZTsKKwlzdHJ1Y3QgcmVnbm9kZV9wd21fc2MgKnNjOworCisJ
cmVnbm9kZSA9IHJlZ25vZGVfY3JlYXRlKGRldiwgJnJlZ25vZGVfcHdtX2NsYXNzLAorCSAgICAm
aW5pdF9kZWYtPnJlZ19pbml0X2RlZik7CisJaWYgKHJlZ25vZGUgPT0gTlVMTCkgeworCQlkZXZp
Y2VfcHJpbnRmKGRldiwgIkNhbm5vdCBjcmVhdGUgcmVndWxhdG9yLlxuIik7CisJCXJldHVybihF
TlhJTyk7CisJfQorCXNjID0gcmVnbm9kZV9nZXRfc29mdGMocmVnbm9kZSk7CisJc2MtPmdwaW9f
b3Blbl9kcmFpbiA9IGluaXRfZGVmLT5ncGlvX29wZW5fZHJhaW47CisJaWYgKGluaXRfZGVmLT5n
cGlvX3BpbiAhPSBOVUxMKSB7CisJCXNjLT5ncGlvX2VudHJ5ID0gcmVnbm9kZV9nZXRfZ3Bpb19l
bnRyeShpbml0X2RlZi0+Z3Bpb19waW4pOworCQlpZiAoc2MtPmdwaW9fZW50cnkgPT0gTlVMTCkK
KwkJCXJldHVybihFTlhJTyk7CisJfQorCXJlZ25vZGUgPSByZWdub2RlX3JlZ2lzdGVyKHJlZ25v
ZGUpOworCWlmIChyZWdub2RlID09IE5VTEwpIHsKKwkJZGV2aWNlX3ByaW50ZihkZXYsICJDYW5u
b3QgcmVnaXN0ZXIgcmVndWxhdG9yLlxuIik7CisJCXJldHVybihFTlhJTyk7CisJfQorCisJaWYg
KHNjLT5ncGlvX2VudHJ5ICE9IE5VTEwpCisJCXNjLT5ncGlvX2VudHJ5LT5hbHdheXNfb24gfD0g
c2MtPnBhcmFtLT5hbHdheXNfb247CisKKwlyZXR1cm4gKDApOworfQorCisvKgorICogT0ZXIERy
aXZlciBpbXBsZW1lbnRhdGlvbi4KKyAqLworI2lmZGVmIEZEVAorc3RhdGljIHN0cnVjdCBvZndf
Y29tcGF0X2RhdGEgY29tcGF0X2RhdGFbXSA9IHsKKwl7InB3bS1yZWd1bGF0b3IiLAkJMX0sCisJ
e05VTEwsCQkJCTB9LAorfTsKKworc3RhdGljIGludAorcmVncHdtX2dldF9ncGlvKHN0cnVjdCBy
ZWdwd21fc29mdGMgKiBzYykKK3sKKwlkZXZpY2VfdCBidXNkZXY7CisJcGhhbmRsZV90IG5vZGU7
CisKKwlpbnQgcnY7CisKKwlpZiAoc2MtPmdwaW9fcHJvZHhyZWYgPT0gMCkKKwkJcmV0dXJuICgw
KTsKKworCW5vZGUgPSBvZndfYnVzX2dldF9ub2RlKHNjLT5kZXYpOworCisJLyogVGVzdCBpZiBj
b250cm9sbGVyIGV4aXN0LiAqLworCXNjLT5ncGlvX3Bpbi5kZXYgPSBPRl9kZXZpY2VfZnJvbV94
cmVmKHNjLT5ncGlvX3Byb2R4cmVmKTsKKwlpZiAoc2MtPmdwaW9fcGluLmRldiA9PSBOVUxMKQor
CQlyZXR1cm4gKEVOT0RFVik7CisKKwkvKiBUZXN0IGlmIEdQSU8gYnVzIGFscmVhZHkgZXhpc3Qu
ICovCisJYnVzZGV2ID0gR1BJT19HRVRfQlVTKHNjLT5ncGlvX3Bpbi5kZXYpOworCWlmIChidXNk
ZXYgPT0gTlVMTCkKKwkJcmV0dXJuIChFTk9ERVYpOworCisJcnYgPSBncGlvX21hcF9ncGlvcyhz
Yy0+Z3Bpb19waW4uZGV2LCBub2RlLAorCSAgICBPRl9ub2RlX2Zyb21feHJlZihzYy0+Z3Bpb19w
cm9keHJlZiksIHNjLT5ncGlvX25jZWxscywKKwkgICAgc2MtPmdwaW9fY2VsbHMsICYoc2MtPmdw
aW9fcGluLnBpbiksICYoc2MtPmdwaW9fcGluLmZsYWdzKSk7CisJaWYgKHJ2ICE9IDApIHsKKwkJ
ZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAiQ2Fubm90IG1hcCB0aGUgZ3BpbyBwcm9wZXJ0eS5cbiIp
OworCQlyZXR1cm4gKEVOWElPKTsKKwl9CisJc2MtPmluaXRfZGVmLmdwaW9fcGluID0gJnNjLT5n
cGlvX3BpbjsKKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgaW50CityZWdwd21fcGFyc2VfZmR0
KHN0cnVjdCByZWdwd21fc29mdGMgKiBzYykKK3sKKwlwaGFuZGxlX3Qgbm9kZTsKKwlpbnQgcnY7
CisJaW50IGxlbjsKKwlzdHJ1Y3QgcmVnbm9kZV9pbml0X2RlZiAqaW5pdF9kZWY7CisKKwlub2Rl
ID0gb2Z3X2J1c19nZXRfbm9kZShzYy0+ZGV2KTsKKwlpbml0X2RlZiA9ICZzYy0+aW5pdF9kZWYu
cmVnX2luaXRfZGVmOworCisJcnYgPSByZWd1bGF0b3JfcGFyc2Vfb2Z3X3N0ZHBhcmFtKHNjLT5k
ZXYsIG5vZGUsIGluaXRfZGVmKTsKKwlpZiAocnYgIT0gMCkgeworCQlkZXZpY2VfcHJpbnRmKHNj
LT5kZXYsICJDYW5ub3QgcGFyc2Ugc3RhbmRhcmQgcGFyYW1ldGVycy5cbiIpOworCQlyZXR1cm4o
cnYpOworCX0KKwlsZW4gPSBPRl9nZXRwcm9wbGVuKG5vZGUsICJwd21zIik7CisJaWYgKGxlbiA8
PSA0KSB7CisJCWRldmljZV9wcmludGYoc2MtPmRldiwgIjogbm8gcHdtcyBwcm9wZXJ0eVxuIik7
CisJCXJldHVybiBFTlhJTzsKKwl9CisKKwlpZiAoT0ZfZ2V0cHJvcGxlbihub2RlLCAidm9sdGFn
ZS10YWJsZXMiKSA+IDApIHsKKwkJZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAiOiB2b2x0YWdlIHRh
YmxlIG1vZGUgdW5zdXBwb3J0ZWRcbiIpOworCQlyZXR1cm4gRU5YSU87CisJfQorCisJaWYgKGlu
aXRfZGVmLT5zdGRfcGFyYW0ubWluX3V2b2x0ID4gaW5pdF9kZWYtPnN0ZF9wYXJhbS5tYXhfdXZv
bHQpIHsKKwkJZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAibWluX3V2b2x0ID4gbWF4X3V2b2x0XG4i
KTsKKwkJcmV0dXJuIChFTlhJTyk7CisJfQorCXJ2ID0gcHdtX2dldF9ieV9vZndfcHJvcGlkeChz
Yy0+ZGV2LCBub2RlLCAicHdtcyIsIDAsICZzYy0+Y2hhbm5lbCk7CisgICAgICAgIGlmIChydiAh
PSAwKSB7CisgICAgICAgICAgICAgICAgZGV2aWNlX3ByaW50ZihzYy0+ZGV2LCAiQ2Fubm90IG1h
cCBwd20gY2hhbm5lbCAlZFxuIiwgcnYpOworICAgICAgICAgICAgICAgIHJldHVybiAoRU5YSU8p
OworICAgICAgICB9CisKKwlydiA9IE9GX2dldGVuY3Byb3Aobm9kZSwgInB3bS1kdXR5Y3ljbGUt
dW5pdCIsICZzYy0+c2NfZHV0eWN5Y2xlX3VuaXQsCisJIHNpemVvZihzYy0+c2NfZHV0eWN5Y2xl
X3VuaXQpKTsKKwlpZihydiA8PSAwKSBzYy0+c2NfZHV0eWN5Y2xlX3VuaXQgPSAxMDA7IAorCXNj
LT5zY19kdXR5Y3ljbGVfcmFuZ2VbMF0gPSAwOworCXNjLT5zY19kdXR5Y3ljbGVfcmFuZ2VbMV0g
PSAxMDA7CisJcnYgPSBPRl9nZXRlbmNwcm9wKG5vZGUsICJwd20tZHV0eWN5Y2xlLXJhbmdlIiwK
KwkgICAgc2MtPnNjX2R1dHljeWNsZV9yYW5nZSwgc2l6ZW9mKHNjLT5zY19kdXR5Y3ljbGVfcmFu
Z2UpKTsKKy8vCWRldmljZV9wcmludGYoc2MtPmRldiwiJXggJXhcbiIsc2MtPnNjX2R1dHljeWNs
ZV9yYW5nZVswXSxzYy0+c2NfZHV0eWN5Y2xlX3JhbmdlWzFdKTsKKwkvKiBQV00gcmVndWxhdG9y
IHVzZXMgJ3N0YXJ0dXAtZGVsYXktdXMnIHByb3BlcnR5IGZvciBlbmFibGVfZGVsYXkgKi8KKy8q
CisJaWYgKCFPRl9oYXNwcm9wKG5vZGUsICJncGlvIikpCisJCXJldHVybiAoMCk7CisJcnYgPSBv
ZndfYnVzX3BhcnNlX3hyZWZfbGlzdF9hbGxvYyhub2RlLCAiZ3BpbyIsICIjZ3Bpby1jZWxscyIs
IDAsCisJICAgICZzYy0+Z3Bpb19wcm9keHJlZiwgJnNjLT5ncGlvX25jZWxscywgJnNjLT5ncGlv
X2NlbGxzKTsKKwlpZiAocnYgIT0gMCkgeworCQlzYy0+Z3Bpb19wcm9keHJlZiA9IDA7CisJCWRl
dmljZV9wcmludGYoc2MtPmRldiwgIk1hbGZvcm1lZCBncGlvIHByb3BlcnR5XG4iKTsKKwkJcmV0
dXJuIChFTlhJTyk7CisJfQorKi8JCisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIHZvaWQKK3Jl
Z3B3bV9uZXdfcGFzcyhkZXZpY2VfdCBkZXYpCit7CisJc3RydWN0IHJlZ3B3bV9zb2Z0YyAqIHNj
OworCWludCBydjsKKworCXNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOworCWJ1c19nZW5lcmlj
X25ld19wYXNzKGRldik7CisKKwlpZiAoc2MtPmF0dGFjaF9kb25lKQorCQlyZXR1cm47CisKKwkv
KiBUcnkgdG8gZ2V0IGFuZCBjb25maWd1cmUgR1BJTy4gKi8KKwlydiA9IHJlZ3B3bV9nZXRfZ3Bp
byhzYyk7CisJaWYgKHJ2ICE9IDApCisJCXJldHVybjsKKworCS8qIFJlZ2lzdGVyIHJlZ3VsYXRv
ci4gKi8KKwlyZWdub2RlX3B3bV9yZWdpc3RlcihzYy0+ZGV2LCAmc2MtPmluaXRfZGVmKTsKKwlz
Yy0+YXR0YWNoX2RvbmUgPSB0cnVlOworfQorCitzdGF0aWMgaW50CityZWdwd21fcHJvYmUoZGV2
aWNlX3QgZGV2KQoreworCisJaWYgKCFvZndfYnVzX3N0YXR1c19va2F5KGRldikpCisJCXJldHVy
biAoRU5YSU8pOworCisJaWYgKCFvZndfYnVzX3NlYXJjaF9jb21wYXRpYmxlKGRldiwgY29tcGF0
X2RhdGEpLT5vY2RfZGF0YSkKKwkJcmV0dXJuIChFTlhJTyk7CisKKwlkZXZpY2Vfc2V0X2Rlc2Mo
ZGV2LCAiUFdNIFJlZ3VsYXRvciIpOworCXJldHVybiAoQlVTX1BST0JFX0RFRkFVTFQpOworfQor
CitzdGF0aWMgaW50CityZWdwd21fZGV0YWNoKGRldmljZV90IGRldikKK3sKKworCS8qIFRoaXMg
ZGV2aWNlIGlzIGFsd2F5cyBwcmVzZW50LiAqLworCXJldHVybiAoRUJVU1kpOworfQorCitzdGF0
aWMgaW50CityZWdwd21fYXR0YWNoKGRldmljZV90IGRldikKK3sKKwlzdHJ1Y3QgcmVncHdtX3Nv
ZnRjICogc2M7CisJaW50IHJ2OworCisJc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJc2Mt
PmRldiA9IGRldjsKKworCS8qIFBhcnNlIEZEVCBkYXRhLiAqLworCXJ2ID0gcmVncHdtX3BhcnNl
X2ZkdChzYyk7CisJaWYgKHJ2ICE9IDApCisJCXJldHVybihFTlhJTyk7CisKKwkvKiBGaWxsIHJl
c2V0IG9mIGluaXQuICovCisJc2MtPmluaXRfZGVmLnJlZ19pbml0X2RlZi5pZCA9IDE7CisJc2Mt
PmluaXRfZGVmLnJlZ19pbml0X2RlZi5mbGFncyA9IFJFR1VMQVRPUl9GTEFHU19TVEFUSUM7CisK
KwkvKiBUcnkgdG8gZ2V0IGFuZCBjb25maWd1cmUgR1BJTy4gKi8KKwlydiA9IHJlZ3B3bV9nZXRf
Z3BpbyhzYyk7CisJaWYgKHJ2ICE9IDApCisJCXJldHVybiAoYnVzX2dlbmVyaWNfYXR0YWNoKGRl
dikpOworCisJLyogUmVnaXN0ZXIgcmVndWxhdG9yLiAqLworCXJlZ25vZGVfcHdtX3JlZ2lzdGVy
KHNjLT5kZXYsICZzYy0+aW5pdF9kZWYpOworCXNjLT5hdHRhY2hfZG9uZSA9IHRydWU7CisKKwly
ZXR1cm4gKGJ1c19nZW5lcmljX2F0dGFjaChkZXYpKTsKK30KKworc3RhdGljIGRldmljZV9tZXRo
b2RfdCByZWdwd21fbWV0aG9kc1tdID0geworCS8qIERldmljZSBpbnRlcmZhY2UgKi8KKwlERVZN
RVRIT0QoZGV2aWNlX3Byb2JlLAkJcmVncHdtX3Byb2JlKSwKKwlERVZNRVRIT0QoZGV2aWNlX2F0
dGFjaCwJcmVncHdtX2F0dGFjaCksCisJREVWTUVUSE9EKGRldmljZV9kZXRhY2gsCXJlZ3B3bV9k
ZXRhY2gpLAorCS8qIEJ1cyBpbnRlcmZhY2UgKi8KKwlERVZNRVRIT0QoYnVzX25ld19wYXNzLAkJ
cmVncHdtX25ld19wYXNzKSwKKwkvKiBSZWdkZXYgaW50ZXJmYWNlICovCisJREVWTUVUSE9EKHJl
Z2Rldl9tYXAsCQlyZWdkZXZfZGVmYXVsdF9vZndfbWFwKSwKKworCURFVk1FVEhPRF9FTkQKK307
CisKK3N0YXRpYyBkZXZjbGFzc190IHJlZ3B3bV9kZXZjbGFzczsKK0RFRklORV9DTEFTU18wKHJl
Z3B3bSwgcmVncHdtX2RyaXZlciwgcmVncHdtX21ldGhvZHMsCisgICAgc2l6ZW9mKHN0cnVjdCBy
ZWdwd21fc29mdGMpKTsKK0VBUkxZX0RSSVZFUl9NT0RVTEUocmVncHdtLCBzaW1wbGVidXMsIHJl
Z3B3bV9kcml2ZXIsCisgICByZWdwd21fZGV2Y2xhc3MsIDAsIDAsIEJVU19QQVNTX0JVUyk7CisK
KyNlbmRpZiAvKiBGRFQgKi8KZGlmZiAtLWdpdCBhL3N5cy9jb25mL2ZpbGVzLmFybTY0IGIvc3lz
L2NvbmYvZmlsZXMuYXJtNjQKLS0tIGEvc3lzL2NvbmYvZmlsZXMuYXJtNjQKKysrIGIvc3lzL2Nv
bmYvZmlsZXMuYXJtNjQKQEAgLTY5MCw2ICs2OTAsNyBAQAogYXJtNjQvcm9ja2NoaXAvY2xrL3Jr
MzM5OV9wbXVjcnUuYwkJb3B0aW9uYWwgZmR0IHNvY19yb2NrY2hpcF9yazMzOTkKIGFybTY0L3Jv
Y2tjaGlwL2Nsay9yazM1NjhfY3J1LmMJCQlvcHRpb25hbCBmZHQgc29jX3JvY2tjaGlwX3JrMzU2
OAogYXJtNjQvcm9ja2NoaXAvY2xrL3JrMzU2OF9wbXVjcnUuYwkJb3B0aW9uYWwgZmR0IHNvY19y
b2NrY2hpcF9yazM1NjgKK2FybTY0L3JvY2tjaGlwL2Nsay9yazMzMDhfY3J1LmMgICAgICAgICAg
ICAgICAgIG9wdGlvbmFsIGZkdCBzb2Nfcm9ja2NoaXBfcmszMzA4CiAKICMgWGlsaW54CiBhcm0v
eGlsaW54L3VhcnRfZGV2X2NkbmMuYwkJCW9wdGlvbmFsIHVhcnQgc29jX3hpbGlueF96eW5xIGZk
dApkaWZmIC0tZ2l0IGEvc3lzL2NvbmYvZmlsZXMgYi9zeXMvY29uZi9maWxlcwotLS0gYS9zeXMv
Y29uZi9maWxlcworKysgYi9zeXMvY29uZi9maWxlcwpAQCAtMTcwOSw2ICsxNzA5LDcgQEAKIGRl
di9leHRyZXMvcmVndWxhdG9yL3JlZ3VsYXRvci5jCW9wdGlvbmFsIHJlZ3VsYXRvcgogZGV2L2V4
dHJlcy9yZWd1bGF0b3IvcmVndWxhdG9yX2J1cy5jCW9wdGlvbmFsIHJlZ3VsYXRvciBmZHQKIGRl
di9leHRyZXMvcmVndWxhdG9yL3JlZ3VsYXRvcl9maXhlZC5jCW9wdGlvbmFsIHJlZ3VsYXRvcgor
ZGV2L2V4dHJlcy9yZWd1bGF0b3IvcmVndWxhdG9yX3B3bS5jCW9wdGlvbmFsIHJlZ3VsYXRvciBm
ZHQKIGRldi9leHRyZXMvc3lzY29uL3N5c2Nvbi5jCQlvcHRpb25hbCBzeXNjb24KIGRldi9leHRy
ZXMvc3lzY29uL3N5c2Nvbl9nZW5lcmljLmMJb3B0aW9uYWwgc3lzY29uIGZkdAogZGV2L2V4dHJl
cy9zeXNjb24vc3lzY29uX2lmLm0JCW9wdGlvbmFsIHN5c2NvbgpkaWZmIC0tZ2l0IGEvc3lzL2Fy
bTY0L3JvY2tjaGlwL3JrX3VzYjJwaHkuYyBiL3N5cy9hcm02NC9yb2NrY2hpcC9ya191c2IycGh5
LmMKLS0tIGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3VzYjJwaHkuYworKysgYi9zeXMvYXJtNjQv
cm9ja2NoaXAvcmtfdXNiMnBoeS5jCkBAIC04MSwxMCArODEsMTkgQEAKIAkJLmRpc2FibGVfbWFz
ayA9IDB4MTAwMDEwLAogCX0KIH07CitzdHJ1Y3QgcmtfdXNiMnBoeV9yZWdzIHJrMzMwOF9yZWdz
ID0geworCS5jbGtfY3RsID0geworCQkub2Zmc2V0ID0gMHgwMTA4LAorCQkuZW5hYmxlX21hc2sg
PSAweDEwMDAwMCwKKwkJLyogYml0IDQgcHV0IHBsbCBpbiBzdXNwZW5kICovCisJCS5kaXNhYmxl
X21hc2sgPSAweDEwMDAxMCwKKwl9CQorfTsKIAogc3RhdGljIHN0cnVjdCBvZndfY29tcGF0X2Rh
dGEgY29tcGF0X2RhdGFbXSA9IHsKIAl7ICJyb2NrY2hpcCxyazMzOTktdXNiMnBoeSIsCSh1aW50
cHRyX3QpJnJrMzM5OV9yZWdzIH0sCiAJeyAicm9ja2NoaXAscmszNTY4LXVzYjJwaHkiLAkodWlu
dHB0cl90KSZyazM1NjhfcmVncyB9LAorCXsgInJvY2tjaGlwLHJrMzMwOC11c2IycGh5IiwJKHVp
bnRwdHJfdCkmcmszMzA4X3JlZ3MgfSwJCiAJeyBOVUxMLAkJCQkwIH0KIH07CiAKZGlmZiAtLWdp
dCBhL3N5cy9hcm02NC9yb2NrY2hpcC9ya190c2FkYy5jIGIvc3lzL2FybTY0L3JvY2tjaGlwL3Jr
X3RzYWRjLmMKLS0tIGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3RzYWRjLmMKKysrIGIvc3lzL2Fy
bTY0L3JvY2tjaGlwL3JrX3RzYWRjLmMKQEAgLTI2Miw2ICsyNjIsNyBAQAogCX0KIH07CiAKKwog
c3RhdGljIHN0cnVjdCBya19jYWxpYl9lbnRyeSByazMzOTlfY2FsaWJfZGF0YVtdID0gewogCXs0
MDIsIC00MDAwMH0sCiAJezQxMCwgLTM1MDAwfSwKQEAgLTM3NSwxMSArMzc2LDMzIEBACiAJfQog
fTsKIAorc3RhdGljIHN0cnVjdCB0c2Vuc29yIHJrMzMwOF90c2Vuc29yc1tdID0geworCXsgLmNo
YW5uZWwgPSAwLCAuaWQgPSAwLCAubmFtZSA9ICJDUFUifSwKKwl7IC5jaGFubmVsID0gMSwgLmlk
ID0gMSwgLm5hbWUgPSAiR1BVIn0sCit9OworCitzdGF0aWMgc3RydWN0IHRzYWRjX2NvbmYgcmsz
MzA4X3RzYWRjX2NvbmYgPSB7CisJLnZlcnNpb24gPQkJVFNBRENfVjIsCisJLnFfc2VsX250YyA9
CQkxLAorCS5zaHV0ZG93bl90ZW1wID0JOTUwMDAsCisJLnNodXRkb3duX21vZGUgPQkwLCAvKiBD
UlUgKi8KKwkuc2h1dGRvd25fcG9sID0JCTAsIC8qIExvdyAgKi8KKwkudHNlbnNvcnMgPSAJCXJr
MzMwOF90c2Vuc29ycywKKwkubnRzZW5zb3JzID0gCQluaXRlbXMocmszMzA4X3RzZW5zb3JzKSwK
KwkuY2FsaWJfaW5mbyA9IAl7CisJCQkudGFibGUgPSByazMzMjhfY2FsaWJfZGF0YSwKKwkJCS5u
ZW50cmllcyA9IG5pdGVtcyhyazMzMjhfY2FsaWJfZGF0YSksCisJfQorfTsKKworCiBzdGF0aWMg
c3RydWN0IG9md19jb21wYXRfZGF0YSBjb21wYXRfZGF0YVtdID0gewogCXsicm9ja2NoaXAscmsz
Mjg4LXRzYWRjIiwJKHVpbnRwdHJfdCkmcmszMjg4X3RzYWRjX2NvbmZ9LAogCXsicm9ja2NoaXAs
cmszMzI4LXRzYWRjIiwJKHVpbnRwdHJfdCkmcmszMzI4X3RzYWRjX2NvbmZ9LAorCXsicm9ja2No
aXAscmszMzA4LXRzYWRjIiwJKHVpbnRwdHJfdCkmcmszMzI4X3RzYWRjX2NvbmZ9LAkKIAl7InJv
Y2tjaGlwLHJrMzM5OS10c2FkYyIsCSh1aW50cHRyX3QpJnJrMzM5OV90c2FkY19jb25mfSwKIAl7
InJvY2tjaGlwLHJrMzU2OC10c2FkYyIsCSh1aW50cHRyX3QpJnJrMzU2OF90c2FkY19jb25mfSwK
Kwl7InJvY2tjaGlwLHJrMzMwOC10c2FkYyIsICAgICAgICh1aW50cHRyX3QpJnJrMzMwOF90c2Fk
Y19jb25mfSwKIAl7TlVMTCwJCTB9CiB9OwogCmRpZmYgLS1naXQgYS9zeXMvYXJtNjQvcm9ja2No
aXAvcmtfc3BpLmMgYi9zeXMvYXJtNjQvcm9ja2NoaXAvcmtfc3BpLmMKLS0tIGEvc3lzL2FybTY0
L3JvY2tjaGlwL3JrX3NwaS5jCisrKyBiL3N5cy9hcm02NC9yb2NrY2hpcC9ya19zcGkuYwpAQCAt
MSw1ICsxLDUgQEAKIC8qLQotICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVz
ZQorICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1GcmVlQlNECiAgKgog
ICogQ29weXJpZ2h0IChjKSAyMDE5IE9sZWtzYW5kciBUeW1vc2hlbmtvIDxnb256b0BGcmVlQlNE
Lm9yZz4KICAqCkBAIC05Miw3ICs5Miw3IEBACiBzdGF0aWMgc3RydWN0IG9md19jb21wYXRfZGF0
YSBjb21wYXRfZGF0YVtdID0gewogCXsgInJvY2tjaGlwLHJrMzMyOC1zcGkiLAkJMSB9LAogCXsg
InJvY2tjaGlwLHJrMzM5OS1zcGkiLAkJMSB9LAotCXsgInJvY2tjaGlwLHJrMzU2OC1zcGkiLAkJ
MSB9LAorCXsgInJvY2tjaGlwLHJrMzMwOC1zcGkiLAkJMSB9LAkKIAl7IE5VTEwsCQkJCQkwIH0K
IH07CiAKQEAgLTQ3NSw3ICs0NzUsOSBAQAogCXNpemVvZihzdHJ1Y3Qgcmtfc3BpX3NvZnRjKSwK
IH07CiAKLURSSVZFUl9NT0RVTEUocmtfc3BpLCBzaW1wbGVidXMsIHJrX3NwaV9kcml2ZXIsIDAs
IDApOwotRFJJVkVSX01PRFVMRShvZndfc3BpYnVzLCBya19zcGksIG9md19zcGlidXNfZHJpdmVy
LCAwLCAwKTsKK3N0YXRpYyBkZXZjbGFzc190IHJrX3NwaV9kZXZjbGFzczsKKworRFJJVkVSX01P
RFVMRShya19zcGksIHNpbXBsZWJ1cywgcmtfc3BpX2RyaXZlciwgcmtfc3BpX2RldmNsYXNzLCAw
LCAwKTsKK0RSSVZFUl9NT0RVTEUob2Z3X3NwaWJ1cywgcmtfc3BpLCBvZndfc3BpYnVzX2RyaXZl
ciwgb2Z3X3NwaWJ1c19kZXZjbGFzcywgMCwgMCk7CiBNT0RVTEVfREVQRU5EKHJrX3NwaSwgb2Z3
X3NwaWJ1cywgMSwgMSwgMSk7CiBPRldCVVNfUE5QX0lORk8oY29tcGF0X2RhdGEpOwpkaWZmIC0t
Z2l0IGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3B3bS5jIGIvc3lzL2FybTY0L3JvY2tjaGlwL3Jr
X3B3bS5jCi0tLSBhL3N5cy9hcm02NC9yb2NrY2hpcC9ya19wd20uYworKysgYi9zeXMvYXJtNjQv
cm9ja2NoaXAvcmtfcHdtLmMKQEAgLTEsNSArMSw1IEBACiAvKi0KLSAqIFNQRFgtTGljZW5zZS1J
ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UKKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0Qt
Mi1DbGF1c2UtRnJlZUJTRAogICoKICAqIENvcHlyaWdodCAoYykgMjAxOCBFbW1hbnVlbCBWYWRv
dCA8bWFudUBGcmVlQlNELm9yZz4KICAqIENvcHlyaWdodCAoYykgMjAxOSBCcmFuZG9uIEJlcmdy
ZW4gPGdpdEBiZHJhZ29uLnJ0azAubmV0PgpAQCAtMTAwLDYgKzEwMCw3IEBACiAKIHN0YXRpYyBz
dHJ1Y3Qgb2Z3X2NvbXBhdF9kYXRhIGNvbXBhdF9kYXRhW10gPSB7CiAJeyAicm9ja2NoaXAscmsz
Mjg4LXB3bSIsCQkxIH0sCisJeyAicm9ja2NoaXAscmszMzI4LXB3bSIsCQkxIH0sCQogCXsgInJv
Y2tjaGlwLHJrMzM5OS1wd20iLAkJMSB9LAogCXsgTlVMTCwJCQkJCTAgfQogfTsKQEAgLTM5OCw1
ICszOTksNyBAQAogCXNpemVvZihzdHJ1Y3QgcmtfcHdtX3NvZnRjKSwKIH07CiAKLURSSVZFUl9N
T0RVTEUocmtfcHdtLCBzaW1wbGVidXMsIHJrX3B3bV9kcml2ZXIsIDAsIDApOworc3RhdGljIGRl
dmNsYXNzX3QgcmtfcHdtX2RldmNsYXNzOworCitFQVJMWV9EUklWRVJfTU9EVUxFKHJrX3B3bSwg
c2ltcGxlYnVzLCBya19wd21fZHJpdmVyLCBya19wd21fZGV2Y2xhc3MsIDAsIDAsQlVTX1BBU1Nf
QlVTICsgQlVTX1BBU1NfT1JERVJfTEFURSk7CiBTSU1QTEVCVVNfUE5QX0lORk8oY29tcGF0X2Rh
dGEpOwpkaWZmIC0tZ2l0IGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3BpbmN0cmwuYyBiL3N5cy9h
cm02NC9yb2NrY2hpcC9ya19waW5jdHJsLmMKLS0tIGEvc3lzL2FybTY0L3JvY2tjaGlwL3JrX3Bp
bmN0cmwuYworKysgYi9zeXMvYXJtNjQvcm9ja2NoaXAvcmtfcGluY3RybC5jCkBAIC0xMDA0LDEx
ICsxMDA0LDE5NSBAQAogCS5nZXRfYmlhc192YWx1ZSA9IHJrMzU2OF9nZXRfYmlhc192YWx1ZSwK
IH07CiAKK3N0YXRpYyBzdHJ1Y3QgcmtfcGluY3RybF9ncGlvIHJrMzMwOF9ncGlvX2JhbmtbXSA9
IHsKKyAgICAgICAgUktfR1BJTygwLCAiZ3BpbzAiKSwKKyAgICAgICAgUktfR1BJTygxLCAiZ3Bp
bzEiKSwKKyAgICAgICAgUktfR1BJTygyLCAiZ3BpbzIiKSwKKyAgICAgICAgUktfR1BJTygzLCAi
Z3BpbzMiKSwKKyAgICAgICAgUktfR1BJTyg0LCAiZ3BpbzQiKSwgICAgICAgIAorCit9OworCitz
dGF0aWMgc3RydWN0IHJrX3BpbmN0cmxfYmFuayByazMzMDhfaW9tdXhfYmFua1tdID0geworICAg
ICAgICAvKiAgICBiYW5rIHN1YiBvZmZzIG5iaXRzICovCisgICAgICAgIFJLX0lPTVVYKDAsIDAs
IDB4MDAwMCwgMiksCisgICAgICAgIFJLX0lPTVVYKDAsIDEsIDB4MDAwNCwgMiksCisgICAgICAg
IFJLX0lPTVVYKDAsIDIsIDB4MDAwOCwgMiksCisgICAgICAgIFJLX0lPTVVYKDAsIDMsIDB4MDAw
QywgMiksCisgICAgICAgIFJLX0lPTVVYKDEsIDAsIDB4MDAxMCwgMiksCisgICAgICAgIFJLX0lP
TVVYKDEsIDEsIDB4MDAxNCwgMiksCisgICAgICAgIFJLX0lPTVVYKDEsIDIsIDB4MDAxOCwgMiks
CisgICAgICAgIFJLX0lPTVVYKDEsIDMsIDB4MDAxQywgMiksCisgICAgICAgIFJLX0lPTVVYKDIs
IDAsIDB4MDAyMCwgMiksCisgICAgICAgIFJLX0lPTVVYKDIsIDEsIDB4MDAyNCwgMiksCisgICAg
ICAgIFJLX0lPTVVYKDIsIDIsIDB4MDAyOCwgMiksCisgICAgICAgIFJLX0lPTVVYKDIsIDMsIDB4
MDAyQywgMiksCisgICAgICAgIFJLX0lPTVVYKDMsIDAsIDB4MDAzMCwgMiksCisgICAgICAgIFJL
X0lPTVVYKDMsIDEsIDB4MDAzNCwgMiksCisgICAgICAgIFJLX0lPTVVYKDMsIDIsIDB4MDAzOCwg
MiksCisgICAgICAgIFJLX0lPTVVYKDMsIDMsIDB4MDAzQywgMiksCisgICAgICAgIFJLX0lPTVVY
KDQsIDAsIDB4MDA0MCwgMiksCisgICAgICAgIFJLX0lPTVVYKDQsIDEsIDB4MDA0NCwgMiksCisg
ICAgICAgIFJLX0lPTVVYKDQsIDIsIDB4MDA0OCwgMiksCisgICAgICAgIFJLX0lPTVVYKDQsIDMs
IDB4MDA0QywgMiksICAgICAgICAKK307CisjZGVmaW5lIFJLX1BJTkZJWF9NUyhiYW5rLHBpbixy
ZWcsYml0LG1hc2spIFJLX1BJTkZJWChiYW5rLHBpbixyZWcsYml0LChtYXNrIDw8IGJpdCkpCitz
dGF0aWMgc3RydWN0IHJrX3BpbmN0cmxfcGluX2ZpeHVwIHJrMzMwOF9waW5fZml4dXBbXSA9IHsK
KwkvKiAgICAgIGJhbmsgIHBpbiByZWcgIGJpdCAgbWFzayAqLworICAgICAgICAgIFJLX1BJTkZJ
WF9NUygxLCAxNCwgMHgyOCwgMTIsIDB4ZiksCisgICAgICAgICAgUktfUElORklYX01TKDEsIDE1
LCAweDJjLCAwLCAweDMpLAorICAgICAgICAgIFJLX1BJTkZJWF9NUygxLCAxOCwgMHgzMCwgNCwg
MHhmKSwKKyAgICAgICAgICBSS19QSU5GSVhfTVMoMSwgMTksIDB4MzAsIDgsIDB4ZiksCisgICAg
ICAgICAgUktfUElORklYX01TKDEsIDIwLCAweDMwLCAxMiwgMHhmKSwKKyAgICAgICAgICBSS19Q
SU5GSVhfTVMoMSwgMjEsIDB4MzQsIDAsIDB4ZiksCisgICAgICAgICAgUktfUElORklYX01TKDEs
IDIyLCAweDM0LCA0LCAweGYpLAorICAgICAgICAgIFJLX1BJTkZJWF9NUygxLCAyMywgMHgzNCwg
OCwgMHhmKSwKKyAgICAgICAgICBSS19QSU5GSVhfTVMoMiwgMiwgMHg0MCwgNCwgMHgzKSwKKyAg
ICAgICAgICBSS19QSU5GSVhfTVMoMiwgMywgMHg0MCwgNiwgMHgzKSwKKyAgICAgICAgICBSS19Q
SU5GSVhfTVMoMiwgMTYsIDB4NTAsIDAsIDB4MyksCisgICAgICAgICAgUktfUElORklYX01TKDMs
IDEwLCAweDY4LCA0LCAweDMpLAorICAgICAgICAgIFJLX1BJTkZJWF9NUygzLCAxMSwgMHg2OCwg
NiwgMHgzKSwKKyAgICAgICAgICBSS19QSU5GSVhfTVMoMywgMTIsIDB4NjgsIDgsIDB4ZiksCisg
ICAgICAgICAgUktfUElORklYX01TKDMsIDEzLCAweDY4LCAxMiwgMHhmKSwKK307CitzdGF0aWMg
c3RydWN0IHJrX3BpbmN0cmxfcGluX2RyaXZlIHJrMzMwOF9waW5fZHJpdmVbXSA9IHsKKwkvKiAg
ICAgICBiYW5rIHN1YiAgb2ZmcyB2YWwgbWEgKi8KKwlSS19QSU5EUklWRSgwLCAwLCAweDEwMCwg
MCwgMiksCisJUktfUElORFJJVkUoMCwgMCwgMHgxMDAsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDAs
IDAsIDB4MTAwLCAyLCA4KSwKKwlSS19QSU5EUklWRSgwLCAwLCAweDEwMCwgMywgMTIpLAorCisJ
UktfUElORFJJVkUoMCwgMSwgMHgxMDQsIDAsIDIpLAorCVJLX1BJTkRSSVZFKDAsIDEsIDB4MTA0
LCAxLCA0KSwKKwlSS19QSU5EUklWRSgwLCAxLCAweDEwNCwgMiwgOCksCisJUktfUElORFJJVkUo
MCwgMSwgMHgxMDQsIDMsIDEyKSwKKworCVJLX1BJTkRSSVZFKDAsIDIsIDB4MTA4LCAwLCAyKSwK
KwlSS19QSU5EUklWRSgwLCAyLCAweDEwOCwgMSwgNCksCisJUktfUElORFJJVkUoMCwgMiwgMHgx
MDgsIDIsIDgpLAorCVJLX1BJTkRSSVZFKDAsIDIsIDB4MTA4LCAzLCAxMiksCisKKwlSS19QSU5E
UklWRSgwLCAzLCAweDEwQywgMCwgMiksCisJUktfUElORFJJVkUoMCwgMywgMHgxMEMsIDEsIDQp
LAorCVJLX1BJTkRSSVZFKDAsIDMsIDB4MTBDLCAyLCA4KSwKKwlSS19QSU5EUklWRSgwLCAzLCAw
eDEwQywgMywgMTIpLAorCisJUktfUElORFJJVkUoMSwgMCwgMHgxMTAsIDAsIDIpLAorCVJLX1BJ
TkRSSVZFKDEsIDAsIDB4MTEwLCAxLCA0KSwKKwlSS19QSU5EUklWRSgxLCAwLCAweDExMCwgMiwg
OCksCisJUktfUElORFJJVkUoMSwgMCwgMHgxMTAsIDMsIDEyKSwKKworCVJLX1BJTkRSSVZFKDEs
IDEsIDB4MTE0LCAwLCAyKSwKKwlSS19QSU5EUklWRSgxLCAxLCAweDExNCwgMSwgNCksCisJUktf
UElORFJJVkUoMSwgMSwgMHgxMTQsIDIsIDgpLAorCVJLX1BJTkRSSVZFKDEsIDEsIDB4MTE0LCAz
LCAxMiksCisKKwlSS19QSU5EUklWRSgxLCAyLCAweDExOCwgMCwgMiksCisJUktfUElORFJJVkUo
MSwgMiwgMHgxMTgsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDEsIDIsIDB4MTE4LCAyLCA4KSwKKwlS
S19QSU5EUklWRSgxLCAyLCAweDExOCwgMywgMTIpLAorCisJUktfUElORFJJVkUoMSwgMywgMHgx
MUMsIDAsIDIpLAorCVJLX1BJTkRSSVZFKDEsIDMsIDB4MTFDLCAxLCA0KSwKKwlSS19QSU5EUklW
RSgxLCAzLCAweDExQywgMiwgOCksCisJUktfUElORFJJVkUoMSwgMywgMHgxMUMsIDMsIDEyKSwK
KworCVJLX1BJTkRSSVZFKDIsIDAsIDB4MTIwLCAwLCAyKSwKKwlSS19QSU5EUklWRSgyLCAwLCAw
eDEyMCwgMSwgNCksCisJUktfUElORFJJVkUoMiwgMCwgMHgxMjAsIDIsIDgpLAorCVJLX1BJTkRS
SVZFKDIsIDAsIDB4MTIwLCAzLCAxMiksCisKKwlSS19QSU5EUklWRSgyLCAxLCAweDEyNCwgMCwg
MiksCisJUktfUElORFJJVkUoMiwgMSwgMHgxMjQsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDIsIDEs
IDB4MTI0LCAyLCA4KSwKKwlSS19QSU5EUklWRSgyLCAxLCAweDEyNCwgMywgMTIpLAorCisJUktf
UElORFJJVkUoMiwgMiwgMHgxMjgsIDAsIDIpLAorCVJLX1BJTkRSSVZFKDIsIDIsIDB4MTI4LCAx
LCA0KSwKKwlSS19QSU5EUklWRSgyLCAyLCAweDEyOCwgMiwgOCksCisJUktfUElORFJJVkUoMiwg
MiwgMHgxMjgsIDMsIDEyKSwKKworCVJLX1BJTkRSSVZFKDIsIDMsIDB4MTJDLCAwLCAyKSwKKwlS
S19QSU5EUklWRSgyLCAzLCAweDEyQywgMSwgNCksCisJUktfUElORFJJVkUoMiwgMywgMHgxMkMs
IDIsIDgpLAorCVJLX1BJTkRSSVZFKDIsIDMsIDB4MTJDLCAzLCAxMiksCisKKwlSS19QSU5EUklW
RSgzLCAwLCAweDEzMCwgMCwgMiksCisJUktfUElORFJJVkUoMywgMCwgMHgxMzAsIDEsIDQpLAor
CVJLX1BJTkRSSVZFKDMsIDAsIDB4MTMwLCAyLCA4KSwKKwlSS19QSU5EUklWRSgzLCAwLCAweDEz
MCwgMywgMTIpLAorCisJUktfUElORFJJVkUoMywgMSwgMHgxMzQsIDAsIDIpLAorCVJLX1BJTkRS
SVZFKDMsIDEsIDB4MTM0LCAxLCA0KSwKKwlSS19QSU5EUklWRSgzLCAxLCAweDEzNCwgMiwgOCks
CisJUktfUElORFJJVkUoMywgMSwgMHgxMzQsIDMsIDEyKSwKKworCVJLX1BJTkRSSVZFKDMsIDIs
IDB4MTM4LCAwLCAyKSwKKwlSS19QSU5EUklWRSgzLCAyLCAweDEzOCwgMSwgNCksCisJUktfUElO
RFJJVkUoMywgMiwgMHgxMzgsIDIsIDgpLAorCVJLX1BJTkRSSVZFKDMsIDIsIDB4MTM4LCAzLCAx
MiksCisKKwlSS19QSU5EUklWRSgzLCAzLCAweDEzQywgMCwgMiksCisJUktfUElORFJJVkUoMywg
MywgMHgxM0MsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDMsIDMsIDB4MTNDLCAyLCA4KSwKKwlSS19Q
SU5EUklWRSgzLCAzLCAweDEzQywgMywgMTIpLAorCisJUktfUElORFJJVkUoNCwgMCwgMHgxNDAs
IDAsIDIpLAorCVJLX1BJTkRSSVZFKDQsIDAsIDB4MTQwLCAxLCA0KSwKKwlSS19QSU5EUklWRSg0
LCAwLCAweDE0MCwgMiwgOCksCisJUktfUElORFJJVkUoNCwgMCwgMHgxNDAsIDQsIDEyKSwKKwor
CVJLX1BJTkRSSVZFKDQsIDEsIDB4MTQ0LCAwLCAyKSwKKwlSS19QSU5EUklWRSg0LCAxLCAweDE0
NCwgMSwgNCksCisJUktfUElORFJJVkUoNCwgMSwgMHgxNDQsIDIsIDgpLAorCVJLX1BJTkRSSVZF
KDQsIDEsIDB4MTQ0LCA0LCAxMiksCisKKwlSS19QSU5EUklWRSg0LCAyLCAweDE0OCwgMCwgMiks
CisJUktfUElORFJJVkUoNCwgMiwgMHgxNDgsIDEsIDQpLAorCVJLX1BJTkRSSVZFKDQsIDIsIDB4
MTQ4LCAyLCA4KSwKKwlSS19QSU5EUklWRSg0LCAyLCAweDE0OCwgNCwgMTIpLAorCisJUktfUElO
RFJJVkUoNCwgNCwgMHgxNEMsIDAsIDIpLAorCVJLX1BJTkRSSVZFKDQsIDQsIDB4MTRDLCAxLCA0
KSwKKwlSS19QSU5EUklWRSg0LCA0LCAweDE0QywgMiwgOCksCisJUktfUElORFJJVkUoNCwgNCwg
MHgxNEMsIDQsIDEyKSwKKwkKK307CisKK3N0YXRpYyB1aW50MzJfdAorcmszMzA4X2dldF9wZF9v
ZmZzZXQoc3RydWN0IHJrX3BpbmN0cmxfc29mdGMgKnNjLCB1aW50MzJfdCBiYW5rKQoreworCXJl
dHVybiAoMHhBMCk7Cit9CisKK3N0YXRpYyBzdHJ1Y3Qgc3lzY29uICoKK3JrMzMwOF9nZXRfc3lz
Y29uKHN0cnVjdCBya19waW5jdHJsX3NvZnRjICpzYywgdWludDMyX3QgYmFuaykKK3sKKwlyZXR1
cm4gKHNjLT5ncmYpOworfQorCitzdHJ1Y3QgcmtfcGluY3RybF9jb25mIHJrMzMwOF9jb25mID0g
eworCS5pb211eF9jb25mID0gcmszMzA4X2lvbXV4X2JhbmssCisJLmlvbXV4X25iYW5rcyA9IG5p
dGVtcyhyazMzMDhfaW9tdXhfYmFuayksCisJLnBpbl9maXh1cCA9IHJrMzMwOF9waW5fZml4dXAs
CisJLm5waW5fZml4dXAgPSBuaXRlbXMocmszMzA4X3Bpbl9maXh1cCksCisJLnBpbl9kcml2ZSA9
IHJrMzMwOF9waW5fZHJpdmUsCisJLm5waW5fZHJpdmUgPSBuaXRlbXMocmszMzA4X3Bpbl9kcml2
ZSksCisJLmdwaW9fYmFuayA9IHJrMzMwOF9ncGlvX2JhbmssCisJLm5ncGlvX2JhbmsgPSBuaXRl
bXMocmszMzA4X2dwaW9fYmFuayksCisJLmdldF9wZF9vZmZzZXQgPSByazMzMDhfZ2V0X3BkX29m
ZnNldCwKKwkuZ2V0X3N5c2NvbiA9IHJrMzMwOF9nZXRfc3lzY29uLAorCS5wYXJzZV9iaWFzID0g
cmszMjg4X3BhcnNlX2JpYXMsCisJLnJlc29sdl9iaWFzX3ZhbHVlID0gcmszMjg4X3Jlc29sdl9i
aWFzX3ZhbHVlLAorCS5nZXRfYmlhc192YWx1ZSA9IHJrMzI4OF9nZXRfYmlhc192YWx1ZSwKK307
CisKIHN0YXRpYyBzdHJ1Y3Qgb2Z3X2NvbXBhdF9kYXRhIGNvbXBhdF9kYXRhW10gPSB7CiAJeyJy
b2NrY2hpcCxyazMyODgtcGluY3RybCIsICh1aW50cHRyX3QpJnJrMzI4OF9jb25mfSwKIAl7InJv
Y2tjaGlwLHJrMzMyOC1waW5jdHJsIiwgKHVpbnRwdHJfdCkmcmszMzI4X2NvbmZ9LAogCXsicm9j
a2NoaXAscmszMzk5LXBpbmN0cmwiLCAodWludHB0cl90KSZyazMzOTlfY29uZn0sCiAJeyJyb2Nr
Y2hpcCxyazM1NjgtcGluY3RybCIsICh1aW50cHRyX3QpJnJrMzU2OF9jb25mfSwKKwl7InJvY2tj
aGlwLHJrMzMwOC1waW5jdHJsIiwgKHVpbnRwdHJfdCkmcmszMzA4X2NvbmZ9LAkKIAl7TlVMTCwg
ICAgICAgICAgICAgMH0KIH07CiAKZGlmZiAtLWdpdCBhL3N5cy9hcm02NC9yb2NrY2hpcC9ya19n
cmYuYyBiL3N5cy9hcm02NC9yb2NrY2hpcC9ya19ncmYuYwotLS0gYS9zeXMvYXJtNjQvcm9ja2No
aXAvcmtfZ3JmLmMKKysrIGIvc3lzL2FybTY0L3JvY2tjaGlwL3JrX2dyZi5jCkBAIC01NSw2ICs1
NSw3IEBACiAJeyJyb2NrY2hpcCxyazM1NjgtcGlwZS1ncmYiLCAxfSwKIAl7InJvY2tjaGlwLHJr
MzU2OC1waXBlLXBoeS1ncmYiLCAxfSwKIAl7InJvY2tjaGlwLHJrMzU2OC1wY2llMy1waHktZ3Jm
IiwgMX0sCisJeyJyb2NrY2hpcCxyazMzMDgtZ3JmIiwgMX0sCQogCXtOVUxMLCAgICAgICAgICAg
ICAwfQogfTsKIApkaWZmIC0tZ2l0IGEvc3lzL2FybTY0L3JvY2tjaGlwL2lmX2R3Y19yay5jIGIv
c3lzL2FybTY0L3JvY2tjaGlwL2lmX2R3Y19yay5jCi0tLSBhL3N5cy9hcm02NC9yb2NrY2hpcC9p
Zl9kd2NfcmsuYworKysgYi9zeXMvYXJtNjQvcm9ja2NoaXAvaWZfZHdjX3JrLmMKQEAgLTEsNSAr
MSw1IEBACiAvKi0KLSAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UKKyAq
IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtRnJlZUJTRAogICoKICAqIENv
cHlyaWdodCAoYykgMjAxOCBFbW1hbnVlbCBWYWRvdCA8bWFudUBmcmVlYnNkLm9yZz4KICAqCkBA
IC0xMDMsNiArMTAzLDEzIEBACiAjZGVmaW5lCSBTT0NfQ09ONl9HTUFDX1JYQ0xLX0RMWV9FTkEJ
CSgxIDw8IDE1KQogI2RlZmluZQkgU09DX0NPTjZfUlhfRExfQ0ZHX1NISUZUCQk4CiAKKy8qIFJL
MzMwOCByZWdpc3RlcnMgKi8KKyNkZWZpbmUgUkszMzA4X0dSRl9NQUNfQ09OMAkweDA0YTAKKyNk
ZWZpbmUgUkszMzA4X01BQ19TUEVFRF8xMDBNCSgoMHgxIDw8IDApIDw8IDE2IHwgKDB4MSA8PCAw
KSkKKyNkZWZpbmUgUkszMzA4X01BQ19TUEVFRF8xME0JKCgweDEgPDwgMCkgPDwgMTYgfCAoMHgw
IDw8IDApKQorI2RlZmluZSBSSzMzMDhfSU5URl9TRUxfUk1JSQkoKDB4MSA8PCA0KSA8PCAxNiB8
ICgweDEgPDwgNCkpCisKKwogc3RydWN0IGlmX2R3Y19ya19zb2Z0YzsKIAogdHlwZWRlZiB2b2lk
ICgqaWZfZHdjX3JrX3NldF9kZWxheXNmbl90KShzdHJ1Y3QgaWZfZHdjX3JrX3NvZnRjICopOwpA
QCAtMTQ3LDkgKzE1NCwxMyBAQAogc3RhdGljIHZvaWQgcmszMzk5X3NldF9kZWxheXMoc3RydWN0
IGlmX2R3Y19ya19zb2Z0YyAqc2MpOwogc3RhdGljIGludCByazMzOTlfc2V0X3NwZWVkKHN0cnVj
dCBpZl9kd2Nfcmtfc29mdGMgKnNjLCBpbnQgc3BlZWQpOwogCitzdGF0aWMgaW50IHJrMzMwOF9z
ZXRfc3BlZWQoc3RydWN0IGlmX2R3Y19ya19zb2Z0YyAqc2MsIGludCBzcGVlZCk7CitzdGF0aWMg
dm9pZCByazMzMDhfc2V0X3BoeV9tb2RlKHN0cnVjdCBpZl9kd2Nfcmtfc29mdGMgKnNjKTsKKwog
c3RhdGljIHN0cnVjdCBpZl9kd2Nfcmtfb3BzIHJrMzI4OF9vcHMgPSB7CiB9OwogCisKIHN0YXRp
YyBzdHJ1Y3QgaWZfZHdjX3JrX29wcyByazMzMjhfb3BzID0gewogCS5zZXRfZGVsYXlzID0gcmsz
MzI4X3NldF9kZWxheXMsCiAJLnNldF9zcGVlZCA9IHJrMzMyOF9zZXRfc3BlZWQsCkBAIC0xNjIs
MTAgKzE3MywxNyBAQAogCS5zZXRfc3BlZWQgPSByazMzOTlfc2V0X3NwZWVkLAogfTsKIAorc3Rh
dGljIHN0cnVjdCBpZl9kd2Nfcmtfb3BzIHJrMzMwOF9vcHMgPSB7CisJLnNldF9zcGVlZCA9IHJr
MzMwOF9zZXRfc3BlZWQsCisJLnNldF9waHlfbW9kZSA9IHJrMzMwOF9zZXRfcGh5X21vZGUsCit9
OworCiBzdGF0aWMgc3RydWN0IG9md19jb21wYXRfZGF0YSBjb21wYXRfZGF0YVtdID0gewogCXsi
cm9ja2NoaXAscmszMjg4LWdtYWMiLCAodWludHB0cl90KSZyazMyODhfb3BzfSwKIAl7InJvY2tj
aGlwLHJrMzMyOC1nbWFjIiwgKHVpbnRwdHJfdCkmcmszMzI4X29wc30sCiAJeyJyb2NrY2hpcCxy
azMzOTktZ21hYyIsICh1aW50cHRyX3QpJnJrMzM5OV9vcHN9LAorCXsicm9ja2NoaXAscmszMzA4
LWdtYWMiLCAodWludHB0cl90KSZyazMzMDhfb3BzfSwJCisJeyJyb2NrY2hpcCxyazMzMDgtbWFj
IiwgKHVpbnRwdHJfdCkmcmszMzA4X29wc30sCQkKIAl7TlVMTCwJCQkgMH0KIH07CiAKQEAgLTMz
Nyw2ICszNTUsNDYgQEAKIAkgICAgKChTT0NfQ09ONV9HTUFDX0NMS19TRUxfTUFTSyA8PCAxNikg
fCByZWcpKTsKIAlyZXR1cm4gKDApOwogfQorc3RhdGljIGludAorcmszMzA4X3NldF9zcGVlZChz
dHJ1Y3QgaWZfZHdjX3JrX3NvZnRjICpzYywgaW50IHNwZWVkKQoreworCXVpbnQzMl90IHJlZzsK
KworCXN3aXRjaCAoc2MtPmJhc2UucGh5X21vZGUpIHsKKwljYXNlIFBIWV9NT0RFX1JHTUlJOgor
CQlicmVhazsKKwljYXNlIFBIWV9NT0RFX1JNSUk6CisJCXN3aXRjaCAoc3BlZWQpIHsKKwkJY2Fz
ZSBJRk1fMTAwX1RYOgorCQkJcmVnID0gUkszMzA4X0lOVEZfU0VMX1JNSUkgfCBSSzMzMDhfTUFD
X1NQRUVEXzEwME07CisJCQlicmVhazsKKwkJY2FzZSBJRk1fMTBfVDoKKwkJCSByZWcgPSBSSzMz
MDhfSU5URl9TRUxfUk1JSSB8IFJLMzMwOF9NQUNfU1BFRURfMTBNOworCQkJYnJlYWs7CisJCWRl
ZmF1bHQ6CisJCQlkZXZpY2VfcHJpbnRmKHNjLT5iYXNlLmRldiwgInVuc3VwcG9ydGVkIFJNSUkg
bWVkaWEgJXVcbiIsIHNwZWVkKTsKKwkJCXJldHVybiAoLTEpOworCQl9CisKKwkJU1lTQ09OX1dS
SVRFXzQoc2MtPmdyZiwgUkszMzA4X0dSRl9NQUNfQ09OMCwgcmVnKTsKKwkJYnJlYWs7CisJfQor
CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIHZvaWQKK3JrMzMwOF9zZXRfcGh5X21vZGUoc3Ry
dWN0IGlmX2R3Y19ya19zb2Z0YyAqc2MpCit7CisJc3dpdGNoIChzYy0+YmFzZS5waHlfbW9kZSkg
eworCWNhc2UgUEhZX01PREVfUkdNSUk6CisJCWJyZWFrOworCWNhc2UgUEhZX01PREVfUk1JSToK
KwkJU1lTQ09OX1dSSVRFXzQoc2MtPmdyZiwgUkszMzA4X0dSRl9NQUNfQ09OMCxSSzMzMDhfSU5U
Rl9TRUxfUk1JSSk7CisKKwkJYnJlYWs7CisJfQorfQogCiBzdGF0aWMgaW50CiBpZl9kd2Nfcmtf
c3lzY3RsX2RlbGF5cyhTWVNDVExfSEFORExFUl9BUkdTKQpAQCAtNDA3LDYgKzQ2NSw4IEBACiAJ
aWYgKGVycm9yICE9IDApIHsKIAkJZGV2aWNlX3ByaW50ZihkZXYsICJjb3VsZCBub3QgZmluZCBj
bG9jayBzdG1tYWNldGhcbiIpOwogCQlyZXR1cm4gKGVycm9yKTsKKwl9IGVsc2UgeworLy8JY2xr
X3NldF9mcmVxKHNjLT5jbGtfc3RtbWFjZXRoLCA1MDAwMDAwMCwgMCk7CiAJfQogCiAJaWYgKGNs
a19nZXRfYnlfb2Z3X25hbWUoZGV2LCAwLCAibWFjX2Nsa19yeCIsICZzYy0+bWFjX2Nsa19yeCkg
IT0gMCkgewpAQCAtNDQwLDcgKzUwMCw2IEBACiAJCQkJZGV2aWNlX3ByaW50ZihzYy0+YmFzZS5k
ZXYsICJjb3VsZCBub3QgZ2V0IGNsa19tYWNfcmVmb3V0IGNsb2NrXG4iKTsKIAkJCQlzYy0+Y2xr
X21hY19yZWZvdXQgPSBOVUxMOwogCQkJfQotCiAJCQljbGtfc2V0X2ZyZXEoc2MtPmNsa19zdG1t
YWNldGgsIDUwMDAwMDAwLCAwKTsKIAkJfQogCX0KQEAgLTQ2NCw4ICs1MjMsOSBAQAogCQlpZiAo
c2MtPmNsa19tYWNfcmVmb3V0KQogCQkJY2xrX2VuYWJsZShzYy0+Y2xrX21hY19yZWZvdXQpOwog
CX0KLQlpZiAoc2MtPmNsa19waHkpCisJaWYgKHNjLT5jbGtfcGh5KSB7CiAJCWNsa19lbmFibGUo
c2MtPmNsa19waHkpOworCQl9CiAJaWYgKHNjLT5hY2xrX21hYykKIAkJY2xrX2VuYWJsZShzYy0+
YWNsa19tYWMpOwogCWlmIChzYy0+cGNsa19tYWMpCkBAIC02MTUsOSArNjc1LDExIEBACiAJREVW
TUVUSE9EX0VORAogfTsKIAorc3RhdGljIGRldmNsYXNzX3QgZHdjX3JrX2RldmNsYXNzOworCiBl
eHRlcm4gZHJpdmVyX3QgZHdjX2RyaXZlcjsKIAogREVGSU5FX0NMQVNTXzEoZHdjLCBkd2Nfcmtf
ZHJpdmVyLCBpZl9kd2NfcmtfbWV0aG9kcywKICAgICBzaXplb2Yoc3RydWN0IGlmX2R3Y19ya19z
b2Z0YyksIGR3Y19kcml2ZXIpOwotRFJJVkVSX01PRFVMRShkd2NfcmssIHNpbXBsZWJ1cywgZHdj
X3JrX2RyaXZlciwgMCwgMCk7CitEUklWRVJfTU9EVUxFKGR3Y19yaywgc2ltcGxlYnVzLCBkd2Nf
cmtfZHJpdmVyLCBkd2NfcmtfZGV2Y2xhc3MsIDAsIDApOwogTU9EVUxFX0RFUEVORChkd2Nfcmss
IGR3YywgMSwgMSwgMSk7CmRpZmYgLS1naXQgYS9zeXMvYXJtNjQvcm9ja2NoaXAvY2xrL3JrMzMw
OF9jcnUuYyBiL3N5cy9hcm02NC9yb2NrY2hpcC9jbGsvcmszMzA4X2NydS5jCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3lzL2FybTY0L3JvY2tjaGlwL2Nsay9yazMz
MDhfY3J1LmMKQEAgLTAsMCArMSw3MjIgQEAKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNs
dWRlIDxzeXMvc3lzdG0uaD4KKyNpbmNsdWRlIDxzeXMvYnVzLmg+CisjaW5jbHVkZSA8c3lzL3Jt
YW4uaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgor
I2luY2x1ZGUgPG1hY2hpbmUvYnVzLmg+CisKKyNpbmNsdWRlIDxkZXYvZmR0L3NpbXBsZWJ1cy5o
PgorCisjaW5jbHVkZSA8ZGV2L29mdy9vZndfYnVzLmg+CisjaW5jbHVkZSA8ZGV2L29mdy9vZndf
YnVzX3N1YnIuaD4KKworI2luY2x1ZGUgPGRldi9leHRyZXMvY2xrL2Nsa19kaXYuaD4KKyNpbmNs
dWRlIDxkZXYvZXh0cmVzL2Nsay9jbGtfZml4ZWQuaD4KKyNpbmNsdWRlIDxkZXYvZXh0cmVzL2Ns
ay9jbGtfbXV4Lmg+CisKKyNpbmNsdWRlIDxhcm02NC9yb2NrY2hpcC9jbGsvcmtfY3J1Lmg+Cisj
aW5jbHVkZSA8Y29udHJpYi9kZXZpY2UtdHJlZS9pbmNsdWRlL2R0LWJpbmRpbmdzL2Nsb2NrL3Jr
MzMwOC1jcnUuaD4KKworCisjZGVmaW5lIFJLMzMwOF9QTExTRUxfQ09OKHgpIAkJKCh4KSAqIDB4
MjApCisjZGVmaW5lIFJLMzMwOF9DTEtTRUxfQ09OKHgpCQkoKHgpICogMHg0ICsgMHgxMDApCisj
ZGVmaW5lIFJLMzMwOF9DTEtHQVRFX0NPTih4KQkJKCh4KSAqIDB4NCArIDB4MzAwKQorI2RlZmlu
ZSBSSzMzMDhfR0xCX1NSU1RfRlNUCQkweGI4CisjZGVmaW5lIFJLMzMwOF9TT0ZUUlNUX0NPTih4
KQkJKCh4KSAqIDB4NCArIDB4NDAwKQorI2RlZmluZSBSSzMzMDhfTU9ERV9DT04JCQkweGEwCisj
ZGVmaW5lIFJLMzMwOF9TRE1NQ19DT04wCQkweDQ4MAorI2RlZmluZSBSSzMzMDhfU0RNTUNfQ09O
MQkJMHg0ODQKKyNkZWZpbmUgUkszMzA4X1NESU9fQ09OMAkJMHg0ODgKKyNkZWZpbmUgUkszMzA4
X1NESU9fQ09OMQkJMHg0OGMKKyNkZWZpbmUgUkszMzA4X0VNTUNfQ09OMAkJMHg0OTAKKyNkZWZp
bmUgUkszMzA4X0VNTUNfQ09OMQkJMHg0OTQKKworCisjZGVmaW5lCVBOQU1FKF9uYW1lKSBzdGF0
aWMgY29uc3QgY2hhciAqX25hbWVbXQorCisKKyNkZWZpbmUJUktfUExMUkFURShfaHosIF9yZWYs
IF9mYiwgX3Bvc3QxLCBfcG9zdDIsIF9kc3BkKQkJXAorewkJCQkJCQkJCVwKKwkuZnJlcSA9IF9o
eiwJCQkJCQkJXAorCS5yZWZkaXYgPSBfcmVmLAkJCQkJCQlcCisJLmZiZGl2ID0gX2ZiLAkJCQkJ
CQlcCisJLnBvc3RkaXYxID0gX3Bvc3QxLAkJCQkJCVwKKwkucG9zdGRpdjIgPSBfcG9zdDIsCQkJ
CQkJXAorCS5kc21wZCA9IF9kc3BkLAkJCQkJCQlcCit9CisKKy8qIFBMTCBjbG9jayAqLworI2Rl
ZmluZQlSS19QTEwoX2lkLCBfbmFtZSwgX3BuYW1lcywgX29mZiwgX3NoaWZ0KQkJCVwKK3sJCQkJ
CQkJCQlcCisJLnR5cGUgPSBSSzMzMjhfQ0xLX1BMTCwJCQkJCQlcCisJLmNsay5wbGwgPSAmKHN0
cnVjdCBya19jbGtfcGxsX2RlZikgewkJCQlcCisJCS5jbGtkZWYuaWQgPSBfaWQsCQkJCQlcCisJ
CS5jbGtkZWYubmFtZSA9IF9uYW1lLAkJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9uYW1lcyA9IF9w
bmFtZXMsCQkJCVwKKwkJLmNsa2RlZi5wYXJlbnRfY250ID0gbml0ZW1zKF9wbmFtZXMpLAkJCVwK
KwkJLmNsa2RlZi5mbGFncyA9IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQkuYmFzZV9v
ZmZzZXQgPSBSSzMzMDhfUExMU0VMX0NPTihfb2ZmKSwJCQlcCisJCS5tb2RlX3JlZyA9IDB4YzAs
CQkJCQlcCisJCS5tb2RlX3NoaWZ0ID0gX3NoaWZ0LAkJCQkJXAorCQkucmF0ZXMgPSByazMzMDhf
cGxsX3JhdGVzLAkJCQlcCisJfSwJCQkJCQkJCVwKK30KKworLyogQ2xvY2sgZm9yIEFSTSBjb3Jl
KHMpICovCisjZGVmaW5lCVJLX0FSTURJVihfaWQsIF9ubSwgX3BuLCBfciwgX29mZiwgX2RzLCBf
ZHcsIF9tcywgX213LCBfbXAsIF9hcClcCit7CQkJCQkJCQkJXAorCS50eXBlID0gUktfQ0xLX0FS
TUNMSywJCQkJCQlcCisJLmNsay5hcm1jbGsgPSAmKHN0cnVjdCBya19jbGtfYXJtY2xrX2RlZikg
ewkJCVwKKwkJLmNsa2RlZi5pZCA9IF9pZCwJCQkJCVwKKwkJLmNsa2RlZi5uYW1lID0gX25tLAkJ
CQkJXAorCQkuY2xrZGVmLnBhcmVudF9uYW1lcyA9IF9wbiwJCQkJXAorCQkuY2xrZGVmLnBhcmVu
dF9jbnQgPSBuaXRlbXMoX3BuKSwJCQlcCisJCS5jbGtkZWYuZmxhZ3MgPSBDTEtfTk9ERV9TVEFU
SUNfU1RSSU5HUywJCVwKKwkJLm11eGRpdl9vZmZzZXQgPSBSSzMzMDhfQ0xLU0VMX0NPTihfb2Zm
KSwJCVwKKwkJLm11eF9zaGlmdCA9IF9tcywJCQkJCVwKKwkJLm11eF93aWR0aCA9IF9tdywJCQkJ
CVwKKwkJLmRpdl9zaGlmdCA9IF9kcywJCQkJCVwKKwkJLmRpdl93aWR0aCA9IF9kdywJCQkJCVwK
KwkJLm1haW5fcGFyZW50ID0gX21wLAkJCQkJXAorCQkuYWx0X3BhcmVudCA9IF9hcCwJCQkJCVwK
KwkJLnJhdGVzID0gX3IsCQkJCQkJXAorCQkubnJhdGVzID0gbml0ZW1zKF9yKSwJCQkJCVwKKwl9
LAkJCQkJCQkJXAorfQorCisvKiBDb21wb3NpdGUgKi8KKyNkZWZpbmUJUktfQ09NUE9TSVRFKF9p
ZCwgX25hbWUsIF9wbmFtZXMsIF9vLCBfbXMsIF9tdywgX2RzLCBfZHcsIF9nbywgX2d3LF9mKVwK
K3sJCQkJCQkJCQlcCisJLnR5cGUgPSBSS19DTEtfQ09NUE9TSVRFLAkJCQkJXAorCS5jbGsuY29t
cG9zaXRlID0gJihzdHJ1Y3QgcmtfY2xrX2NvbXBvc2l0ZV9kZWYpIHsJCVwKKwkJLmNsa2RlZi5p
ZCA9IF9pZCwJCQkJCVwKKwkJLmNsa2RlZi5uYW1lID0gX25hbWUsCQkJCQlcCisJCS5jbGtkZWYu
cGFyZW50X25hbWVzID0gX3BuYW1lcywJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9jbnQgPSBuaXRl
bXMoX3BuYW1lcyksCQkJXAorCQkuY2xrZGVmLmZsYWdzID0gQ0xLX05PREVfU1RBVElDX1NUUklO
R1MsCQlcCisJCS5tdXhkaXZfb2Zmc2V0ID0gUkszMzA4X0NMS1NFTF9DT04oX28pLAkJCVwKKwkJ
Lm11eF9zaGlmdCA9IF9tcywJCQkJCVwKKwkJLm11eF93aWR0aCA9IF9tdywJCQkJCVwKKwkJLmRp
dl9zaGlmdCA9IF9kcywJCQkJCVwKKwkJLmRpdl93aWR0aCA9IF9kdywJCQkJCVwKKwkJLmdhdGVf
b2Zmc2V0ID0gUkszMzA4X0NMS0dBVEVfQ09OKF9nbyksCQkJXAorCQkuZ2F0ZV9zaGlmdCA9IF9n
dywJCQkJCVwKKwkJLmZsYWdzID0gUktfQ0xLX0NPTVBPU0lURV9IQVZFX01VWCB8CQkJXAorCQkJ
IFJLX0NMS19DT01QT1NJVEVfSEFWRV9HQVRFIHwgX2YsCQlcCisJfSwJCQkJCQkJCVwKK30KKwor
LyogQ29tcG9zaXRlIG5vIG11eCAqLworI2RlZmluZQlSS19DT01QTk9NVVgoX2lkLCBfbmFtZSwg
X3BuYW1lLCBfbywgX2RzLCBfZHcsIF9nbywgX2d3LCBfZikJXAorewkJCQkJCQkJCVwKKwkudHlw
ZSA9IFJLX0NMS19DT01QT1NJVEUsCQkJCQlcCisJLmNsay5jb21wb3NpdGUgPSAmKHN0cnVjdCBy
a19jbGtfY29tcG9zaXRlX2RlZikgewkJXAorCQkuY2xrZGVmLmlkID0gX2lkLAkJCQkJXAorCQku
Y2xrZGVmLm5hbWUgPSBfbmFtZSwJCQkJCVwKKwkJLmNsa2RlZi5wYXJlbnRfbmFtZXMgPSAoY29u
c3QgY2hhciAqW10pe19wbmFtZX0sCVwKKwkJLmNsa2RlZi5wYXJlbnRfY250ID0gMSwJCQkJCVwK
KwkJLmNsa2RlZi5mbGFncyA9IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQkubXV4ZGl2
X29mZnNldCA9IFJLMzMwOF9DTEtTRUxfQ09OKF9vKSwJCQlcCisJCS5kaXZfc2hpZnQgPSBfZHMs
CQkJCQlcCisJCS5kaXZfd2lkdGggPSBfZHcsCQkJCQlcCisJCS5nYXRlX29mZnNldCA9IFJLMzMw
OF9DTEtHQVRFX0NPTihfZ28pLAkJCVwKKwkJLmdhdGVfc2hpZnQgPSBfZ3csCQkJCQlcCisJCS5m
bGFncyA9IFJLX0NMS19DT01QT1NJVEVfSEFWRV9HQVRFIHwgX2YsCQlcCisJfSwJCQkJCQkJCVwK
K30KKworLyogQ29tcG9zaXRlIG5vIGRpdiAqLworI2RlZmluZQlSS19DT01QTk9ESVYoX2lkLCBf
bmFtZSwgX3BuYW1lcywgX28sIF9tcywgX213LCBfZ28sIF9ndywgX2YpCVwKK3sJCQkJCQkJCQlc
CisJLnR5cGUgPSBSS19DTEtfQ09NUE9TSVRFLAkJCQkJXAorCS5jbGsuY29tcG9zaXRlID0gJihz
dHJ1Y3QgcmtfY2xrX2NvbXBvc2l0ZV9kZWYpIHsJCVwKKwkJLmNsa2RlZi5pZCA9IF9pZCwJCQkJ
CVwKKwkJLmNsa2RlZi5uYW1lID0gX25hbWUsCQkJCQlcCisJCS5jbGtkZWYucGFyZW50X25hbWVz
ID0gX3BuYW1lcywJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9jbnQgPSAgbml0ZW1zKF9wbmFtZXMp
LAkJCVwKKwkJLmNsa2RlZi5mbGFncyA9IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQku
bXV4ZGl2X29mZnNldCA9IFJLMzMwOF9DTEtTRUxfQ09OKF9vKSwJCQlcCisJCS5tdXhfc2hpZnQg
PSBfbXMsCQkJCQlcCisJCS5tdXhfd2lkdGggPSBfbXcsCQkJCQlcCisJCS5nYXRlX29mZnNldCA9
IFJLMzMwOF9DTEtHQVRFX0NPTihfZ28pLAkJCVwKKwkJLmdhdGVfc2hpZnQgPSBfZ3csCQkJCQlc
CisJCS5mbGFncyA9IFJLX0NMS19DT01QT1NJVEVfSEFWRV9NVVggfAkJCVwKKwkJCSBSS19DTEtf
Q09NUE9TSVRFX0hBVkVfR0FURSB8IF9mLAkJXAorCX0sCQkJCQkJCQlcCit9CisKKy8qIENvbXBv
c2l0ZSBkaXYgb25seSAqLworI2RlZmluZQlSS19DT01QRElWKF9pZCwgX25hbWUsIF9wbmFtZSwg
X28sIF9kcywgX2R3LCBfZikJCVwKK3sJCQkJCQkJCQlcCisJLnR5cGUgPSBSS19DTEtfQ09NUE9T
SVRFLAkJCQkJXAorCS5jbGsuY29tcG9zaXRlID0gJihzdHJ1Y3QgcmtfY2xrX2NvbXBvc2l0ZV9k
ZWYpIHsJCVwKKwkJLmNsa2RlZi5pZCA9IF9pZCwJCQkJCVwKKwkJLmNsa2RlZi5uYW1lID0gX25h
bWUsCQkJCQlcCisJCS5jbGtkZWYucGFyZW50X25hbWVzID0gKGNvbnN0IGNoYXIgKltdKXtfcG5h
bWV9LAlcCisJCS5jbGtkZWYucGFyZW50X2NudCA9IDEsCQkJCQlcCisJCS5jbGtkZWYuZmxhZ3Mg
PSBDTEtfTk9ERV9TVEFUSUNfU1RSSU5HUywJCVwKKwkJLm11eGRpdl9vZmZzZXQgPSBSSzMzMDhf
Q0xLU0VMX0NPTihfbyksCQkJXAorCQkuZGl2X3NoaWZ0ID0gX2RzLAkJCQkJXAorCQkuZGl2X3dp
ZHRoID0gX2R3LAkJCQkJXAorCQkuZmxhZ3MgPSAgX2YsCQkJCQkJXAorCX0sCQkJCQkJCQlcCit9
CisKKworLyogRml4ZWQgZmFjdG9yIG11eC9kaXYgKi8KKyNkZWZpbmUJUktfRkFDVE9SKF9pZCwg
X25hbWUsIF9wbmFtZSwgX211bHQsIF9kaXYpCQkJXAorewkJCQkJCQkJCVwKKwkudHlwZSA9IFJL
X0NMS19GSVhFRCwJCQkJCQlcCisJLmNsay5maXhlZCA9ICYoc3RydWN0IGNsa19maXhlZF9kZWYp
IHsJCQkJXAorCQkuY2xrZGVmLmlkID0gX2lkLAkJCQkJXAorCQkuY2xrZGVmLm5hbWUgPSBfbmFt
ZSwJCQkJCVwKKwkJLmNsa2RlZi5wYXJlbnRfbmFtZXMgPSAoY29uc3QgY2hhciAqW10pe19wbmFt
ZX0sCVwKKwkJLmNsa2RlZi5wYXJlbnRfY250ID0gMSwJCQkJCVwKKwkJLmNsa2RlZi5mbGFncyA9
IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQkubXVsdCA9IF9tdWx0LAkJCQkJCVwKKwkJ
LmRpdiA9IF9kaXYsCQkJCQkJXAorCX0sCQkJCQkJCQlcCit9CisKKworI2RlZmluZSBSS19GQUNU
T1JfR0FURShfaWQsIGNuYW1lLCBwbmFtZSxmLCAgZm0sIGZkLCBnbywgZ2IsIGdmKQlcCisJewkJ
CQkJCQlcCisJLnR5cGUgPSBSS19DTEtfQ09NUE9TSVRFLAkJCQkJCVwKKwkuY2xrLmNvbXBvc2l0
ZSA9ICYoc3RydWN0IHJrX2Nsa19jb21wb3NpdGVfZGVmKSB7CQkJCVwKKwkJLmNsa2RlZi5pZCA9
IF9pZCwJCQkJCVwKKwkJLmNsa2RlZi5uYW1lID0gY25hbWUsCQkJCQlcCisJCS5jbGtkZWYucGFy
ZW50X25hbWVzID0gKGNvbnN0IGNoYXIgKltdKXsgcG5hbWUgfSwJXAorCQkuY2xrZGVmLnBhcmVu
dF9jbnQgPSAxLAkJCQkJXAorCQkuY2xrZGVmLmZsYWdzID0gQ0xLX05PREVfU1RBVElDX1NUUklO
R1MsCQlcCisJCS5kaXZfc2hpZnQJPSBmbSwJCQkJXAorCQkuZGl2X3dpZHRoCT0gZmQsCQkJCVwK
KwkJLmdhdGVfb2Zmc2V0CT0gZ28sCQkJCVwKKwkJLmdhdGVfc2hpZnQJPSBnYiwJCQkJXAorCQku
ZmxhZ3MJPSBSS19DTEtfRlJBQ1RfSEFWRV9HQVRFIHwgZ2YsCQkJCVwKKwl9LAlcCit9CisvKiBG
cmFjdGlvbmFsICovCisjZGVmaW5lCVJLX0ZSQUNUSU9OKF9pZCwgX25hbWUsIF9wbmFtZSwgX28s
IF9nbywgX2d3LCBfZikJCVwKK3sJCQkJCQkJCQlcCisJLnR5cGUgPSBSS19DTEtfRlJBQ1QsCQkJ
CQkJXAorCS5jbGsuZnJhY3QgPSAmKHN0cnVjdCBya19jbGtfZnJhY3RfZGVmKSB7CQkJXAorCQku
Y2xrZGVmLmlkID0gX2lkLAkJCQkJXAorCQkuY2xrZGVmLm5hbWUgPSBfbmFtZSwJCQkJCVwKKwkJ
LmNsa2RlZi5wYXJlbnRfbmFtZXMgPSAoY29uc3QgY2hhciAqW10pe19wbmFtZX0sCVwKKwkJLmNs
a2RlZi5wYXJlbnRfY250ID0gMSwJCQkJCVwKKwkJLmNsa2RlZi5mbGFncyA9IENMS19OT0RFX1NU
QVRJQ19TVFJJTkdTLAkJXAorCQkub2Zmc2V0ID0gUkszMzA4X0NMS1NFTF9DT04oX28pLAkJCVwK
KwkJLmdhdGVfb2Zmc2V0ID0gUkszMzA4X0NMS0dBVEVfQ09OKF9nbyksCQkJXAorCQkuZ2F0ZV9z
aGlmdCA9IF9ndywJCQkJCVwKKwkJLmZsYWdzID0gUktfQ0xLX0ZSQUNUX0hBVkVfR0FURSB8IF9m
LAkJCVwKKwl9LAkJCQkJCQkJXAorfQorCisvKiBNdWx0aXBsZXhlciAqLworI2RlZmluZQlSS19N
VVgoX2lkLCBfbmFtZSwgX3BuYW1lcywgX28sIF9tcywgX213LCBfZikJCQlcCit7CQkJCQkJCQkJ
XAorCS50eXBlID0gUktfQ0xLX01VWCwJCQkJCQlcCisJLmNsay5tdXggPSAmKHN0cnVjdCBya19j
bGtfbXV4X2RlZikgewkJCQlcCisJCS5jbGtkZWYuaWQgPSBfaWQsCQkJCQlcCisJCS5jbGtkZWYu
bmFtZSA9IF9uYW1lLAkJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9uYW1lcyA9IF9wbmFtZXMsCQkJ
CVwKKwkJLmNsa2RlZi5wYXJlbnRfY250ID0gbml0ZW1zKF9wbmFtZXMpLAkJCVwKKwkJLmNsa2Rl
Zi5mbGFncyA9IENMS19OT0RFX1NUQVRJQ19TVFJJTkdTLAkJXAorCQkub2Zmc2V0ID0gUkszMzA4
X0NMS1NFTF9DT04oX28pLAkJCVwKKwkJLnNoaWZ0ID0gX21zLAkJCQkJCVwKKwkJLndpZHRoID0g
X213LAkJCQkJCVwKKwkJLm11eF9mbGFncyA9IF9mLAkJCQkJXAorCX0sCQkJCQkJCQlcCit9CisK
KyNkZWZpbmUJUktfR0FURShfaWQsIF9uYW1lLCBfcG5hbWUsIF9vLCBfcykJCQkJXAorewkJCQkJ
CQkJCVwKKwkuaWQgPSBfaWQsCQkJCQkJCVwKKwkubmFtZSA9IF9uYW1lLAkJCQkJCQlcCisJLnBh
cmVudF9uYW1lID0gX3BuYW1lLAkJCQkJCVwKKwkub2Zmc2V0ID0gUkszMzA4X0NMS0dBVEVfQ09O
KF9vKSwJCQkJXAorCS5zaGlmdCA9IF9zLAkJCQkJCQlcCit9CisjZGVmaW5lCVJLX01NQyhfaWQs
IF9uYW1lLCBfcG5hbWUsIF9vLCBfZHMpCQlcCit7CQkJCQkJCQkJXAorCS50eXBlID0gUktfQ0xL
X0NPTVBPU0lURSwJCQkJCVwKKwkuY2xrLmNvbXBvc2l0ZSA9ICYoc3RydWN0IHJrX2Nsa19jb21w
b3NpdGVfZGVmKSB7CQlcCisJCS5jbGtkZWYuaWQgPSBfaWQsCQkJCQlcCisJCS5jbGtkZWYubmFt
ZSA9IF9uYW1lLAkJCQkJXAorCQkuY2xrZGVmLnBhcmVudF9uYW1lcyA9IChjb25zdCBjaGFyICpb
XSl7X3BuYW1lfSwJXAorCQkuY2xrZGVmLnBhcmVudF9jbnQgPSAxLAkJCQkJXAorCQkuY2xrZGVm
LmZsYWdzID0gQ0xLX05PREVfU1RBVElDX1NUUklOR1MsCQlcCisJCS5tdXhkaXZfb2Zmc2V0ID0g
UkszMzA4X0NMS1NFTF9DT04oX28pLAkJCVwKKwkJLmRpdl9zaGlmdCA9IF9kcywJCQkJCVwKKwl9
LAkJCQkJCQkJXAorfQorCitzdHJ1Y3QgcmtfY2xrX3BsbF9yYXRlIHJrMzMwOF9wbGxfcmF0ZXNb
XSA9IHsKKwkvKiBfbWh6LCBfcmVmZGl2LCBfZmJkaXYsIF9wb3N0ZGl2MSwgX3Bvc3RkaXYyLCBf
ZHNtcGQgKi8KKwlSS19QTExSQVRFKDE2MDgwMDAwMDAsIDEsIDY3LCAxLCAxLCAxKSwKKwlSS19Q
TExSQVRFKDE1ODQwMDAwMDAsIDEsIDY2LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDE1NjAwMDAw
MDAsIDEsIDY1LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDE1MzYwMDAwMDAsIDEsIDY0LCAxLCAx
LCAxKSwKKwlSS19QTExSQVRFKDE1MTIwMDAwMDAsIDEsIDYzLCAxLCAxLCAxKSwKKwlSS19QTExS
QVRFKDE0ODgwMDAwMDAsIDEsIDYyLCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDE0NjQwMDAwMDAs
IDEsIDYxLCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDE0NDAwMDAwMDAsIDEsIDYwLCAxLCAxLCAx
KSwKKwlSS19QTExSQVRFKDE0MTYwMDAwMDAsIDEsIDU5LCAxLCAxLCAxKSwKKwlSS19QTExSQVRF
KDEzOTIwMDAwMDAsIDEsIDU4LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEzNjgwMDAwMDAsIDEs
IDU3LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEzNDQwMDAwMDAsIDEsIDU2LCAxLCAxLCAxKSwK
KwlSS19QTExSQVRFKDEzMjAwMDAwMDAsIDEsIDU1LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEy
OTYwMDAwMDAsIDEsIDU0LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEyNzIwMDAwMDAsIDEsIDUz
LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDEyNDgwMDAwMDAsIDEsIDUyLCAxLCAxLCAxKSwKKwlS
S19QTExSQVRFKDEyMDAwMDAwMDAsIDEsIDUwLCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDExODgw
MDAwMDAsIDIsIDk5LCAxLCAxLCAxKSwKKwlSS19QTExSQVRFKDExMDQwMDAwMDAsIDEsIDQ2LCAx
LCAxLCAxKSwKKwlSS19QTExSQVRFKDExMDAwMDAwMDAsIDEyLCA1NTAsIDEsIDEsIDEpLAorCVJL
X1BMTFJBVEUoMTAwODAwMDAwMCwgMSwgODQsIDIsIDEsIDEpLAorCVJLX1BMTFJBVEUoMTAwMDAw
MDAwMCwgNiwgNTAwLCAyLCAxLCAxKSwKKwlSS19QTExSQVRFKDk4NDAwMDAwMCwgMSwgODIsIDIs
IDEsIDEpLAorCVJLX1BMTFJBVEUoOTYwMDAwMDAwLCAxLCA4MCwgMiwgMSwgMSksCisJUktfUExM
UkFURSg5MzYwMDAwMDAsIDEsIDc4LCAyLCAxLCAxKSwKKwlSS19QTExSQVRFKDkxMjAwMDAwMCwg
MSwgNzYsIDIsIDEsIDEpLAorCVJLX1BMTFJBVEUoOTAwMDAwMDAwLCA0LCAzMDAsIDIsIDEsIDEp
LAorCVJLX1BMTFJBVEUoODg4MDAwMDAwLCAxLCA3NCwgMiwgMSwgMSksCisJUktfUExMUkFURSg4
NjQwMDAwMDAsIDEsIDcyLCAyLCAxLCAxKSwKKwlSS19QTExSQVRFKDg0MDAwMDAwMCwgMSwgNzAs
IDIsIDEsIDEpLAorCVJLX1BMTFJBVEUoODE2MDAwMDAwLCAxLCA2OCwgMiwgMSwgMSksCisJUktf
UExMUkFURSg4MDAwMDAwMDAsIDYsIDQwMCwgMiwgMSwgMSksCisJUktfUExMUkFURSg3MDAwMDAw
MDAsIDYsIDM1MCwgMiwgMSwgMSksCisJUktfUExMUkFURSg2OTYwMDAwMDAsIDEsIDU4LCAyLCAx
LCAxKSwKKwlSS19QTExSQVRFKDYyNDAwMDAwMCwgMSwgNTIsIDIsIDEsIDEpLAorCVJLX1BMTFJB
VEUoNjAwMDAwMDAwLCAxLCA3NSwgMywgMSwgMSksCisJUktfUExMUkFURSg1OTQwMDAwMDAsIDIs
IDk5LCAyLCAxLCAxKSwKKwlSS19QTExSQVRFKDUwNDAwMDAwMCwgMSwgNjMsIDMsIDEsIDEpLAor
CVJLX1BMTFJBVEUoNTAwMDAwMDAwLCA2LCAyNTAsIDIsIDEsIDEpLAorCVJLX1BMTFJBVEUoNDA4
MDAwMDAwLCAxLCA2OCwgMiwgMiwgMSksCisJUktfUExMUkFURSgzMTIwMDAwMDAsIDEsIDUyLCAy
LCAyLCAxKSwKKwlSS19QTExSQVRFKDIxNjAwMDAwMCwgMSwgNzIsIDQsIDIsIDEpLAorCVJLX1BM
TFJBVEUoOTYwMDAwMDAsIDEsIDY0LCA0LCA0LCAxKSwKKwl7IC8qIHNlbnRpbmVsICovIH0sCit9
OworCitzdGF0aWMgc3RydWN0IHJrX2Nsa19hcm1jbGtfcmF0ZXMgcmszMzA4X2FybWNsa19yYXRl
c1tdID0geworCXsxNjA4MDAwMDAwLCAxfSwKKyAgICAgICAgezE1MTIwMDAwMDAsIDF9LAorICAg
ICAgICB7MTQ4ODAwMDAwMCwgMX0sCisgICAgICAgIHsxNDE2MDAwMDAwLCAxfSwKKyAgICAgICAg
ezEzOTIwMDAwMDAsIDF9LAorICAgICAgICB7MTI5NjAwMDAwMCwgMX0sCisgICAgICAgIHsxMjAw
MDAwMDAwLCAxfSwKKyAgICAgICAgezExMDQwMDAwMDAsIDF9LAorICAgICAgICB7MTAwODAwMDAw
MCwgMX0sCisgICAgICAgIHs5MTIwMDAwMDAsIDF9LAorICAgICAgICB7ODE2MDAwMDAwLCAxfSwK
KyAgICAgICAgezY5NjAwMDAwMCwgMX0sCisgICAgICAgIHs2MDAwMDAwMDAsIDF9LAorICAgICAg
ICB7NDA4MDAwMDAwLCAxfSwKKyAgICAgICAgezMxMjAwMDAwMCwgMX0sCisgICAgICAgIHsyMTYw
MDAwMDAsICAxfSwKKyAgICAgICAgezk2MDAwMDAwLCAxfSwKKwl7fSwKK307CisKKy8qIFBhcmVu
dCBjbG9jayBkZWZpbmVzICovCitQTkFNRShtdXhfcGxsX3ApCQk9IHsgInhpbjI0bSIgfTsKK1BO
QU1FKG11eF91c2I0ODBtX3ApCQk9IHsgInhpbjI0bSIsICJ1c2I0ODBtX3BoeSIsICJjbGtfcnRj
MzJrIiB9OworUE5BTUUobXV4X2FybWNsa19wKQkJPSB7ICJhcGxsX2NvcmUiLCAidnBsbDBfY29y
ZSIsICJ2cGxsMV9jb3JlIiB9OworUE5BTUUobXV4X2RwbGxfdnBsbDBfcCkJCT0geyAiZHBsbCIs
ICJ2cGxsMCIgfTsKK1BOQU1FKG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wKQk9IHsgImRwbGwiLCAi
dnBsbDAiLCAieGluMjRtIiB9OworUE5BTUUobXV4X2RwbGxfdnBsbDBfdnBsbDFfcCkJPSB7ICJk
cGxsIiwgInZwbGwwIiwgInZwbGwxIiB9OworUE5BTUUobXV4X2RwbGxfdnBsbDBfdnBsbDFfeGlu
MjRtX3ApCT0geyAiZHBsbCIsICJ2cGxsMCIsICJ2cGxsMSIsICJ4aW4yNG0iIH07CitQTkFNRSht
dXhfZHBsbF92cGxsMF92cGxsMV91c2I0ODBtX3hpbjI0bV9wKQk9IHsgImRwbGwiLCAidnBsbDAi
LCAidnBsbDEiLCAidXNiNDgwbSIsICJ4aW4yNG0iIH07CitQTkFNRShtdXhfdnBsbDBfdnBsbDFf
cCkJPSB7ICJ2cGxsMCIsICJ2cGxsMSIgfTsKK1BOQU1FKG11eF92cGxsMF92cGxsMV94aW4yNG1f
cCkJPSB7ICJ2cGxsMCIsICJ2cGxsMSIsICJ4aW4yNG0iIH07CitQTkFNRShtdXhfdWFydDBfcCkJ
CT0geyAiY2xrX3VhcnQwX3NyYyIsICJkdW1teSIsICJjbGtfdWFydDBfZnJhYyIgfTsKK1BOQU1F
KG11eF91YXJ0MV9wKQkJPSB7ICJjbGtfdWFydDFfc3JjIiwgImR1bW15IiwgImNsa191YXJ0MV9m
cmFjIiB9OworUE5BTUUobXV4X3VhcnQyX3ApCQk9IHsgImNsa191YXJ0Ml9zcmMiLCAiZHVtbXki
LCAiY2xrX3VhcnQyX2ZyYWMiIH07CitQTkFNRShtdXhfdWFydDNfcCkJCT0geyAiY2xrX3VhcnQz
X3NyYyIsICJkdW1teSIsICJjbGtfdWFydDNfZnJhYyIgfTsKK1BOQU1FKG11eF91YXJ0NF9wKQkJ
PSB7ICJjbGtfdWFydDRfc3JjIiwgImR1bW15IiwgImNsa191YXJ0NF9mcmFjIiB9OworUE5BTUUo
bXV4X2RjbGtfdm9wX3ApCQk9IHsgImRjbGtfdm9wX3NyYyIsICJkY2xrX3ZvcF9mcmFjIiwgInhp
bjI0bSIgfTsKK1BOQU1FKG11eF9uYW5kY19wKQkJPSB7ICJjbGtfbmFuZGNfZGl2IiwgImNsa19u
YW5kY19kaXY1MCIgfTsKK1BOQU1FKG11eF9zZG1tY19wKQkJPSB7ICJjbGtfc2RtbWNfZGl2Iiwg
ImNsa19zZG1tY19kaXY1MCIgfTsKK1BOQU1FKG11eF9zZGlvX3ApCQk9IHsgImNsa19zZGlvX2Rp
diIsICJjbGtfc2Rpb19kaXY1MCIgfTsKK1BOQU1FKG11eF9lbW1jX3ApCQk9IHsgImNsa19lbW1j
X2RpdiIsICJjbGtfZW1tY19kaXY1MCIgfTsKK1BOQU1FKG11eF9tYWNfcCkJCT0geyAiY2xrX21h
Y19zcmMiLCAibWFjX2Nsa2luIiB9OworUE5BTUUobXV4X21hY19ybWlpX3NlbF9wKQk9IHsgImNs
a19tYWNfcnhfdHhfZGl2MjAiLCAiY2xrX21hY19yeF90eF9kaXYyIiB9OworUE5BTUUobXV4X2Rk
cnN0ZGJ5X3ApCQk9IHsgImNsa19kZHJwaHkxeF9vdXQiLCAiY2xrX2Rkcl9zdGRieV9kaXY0IiB9
OworUE5BTUUobXV4X3J0YzMya19wKQkJPSB7ICJ4aW4zMmsiLCAiY2xrX3B2dG1fMzJrIiwgImNs
a19ydGMzMmtfZnJhYyIsICJjbGtfcnRjMzJrX2RpdiIgfTsKK1BOQU1FKG11eF91c2JwaHlfcmVm
X3ApCQk9IHsgInhpbjI0bSIsICJjbGtfdXNicGh5X3JlZl9zcmMiIH07CitQTkFNRShtdXhfd2lm
aV9zcmNfcCkJCT0geyAiY2xrX3dpZmlfZHBsbCIsICJjbGtfd2lmaV92cGxsMCIgfTsKK1BOQU1F
KG11eF93aWZpX3ApCQk9IHsgImNsa193aWZpX29zYyIsICJjbGtfd2lmaV9zcmMiIH07CitQTkFN
RShtdXhfcGRtX3ApCQk9IHsgImNsa19wZG1fc3JjIiwgImNsa19wZG1fZnJhYyIgfTsKK1BOQU1F
KG11eF9pMnMwXzhjaF90eF9wKQk9IHsgImNsa19pMnMwXzhjaF90eF9zcmMiLCAiY2xrX2kyczBf
OGNoX3R4X2ZyYWMiLCAibWNsa19pMnMwXzhjaF9pbiIgfTsKK1BOQU1FKG11eF9pMnMwXzhjaF90
eF9yeF9wKQk9IHsgImNsa19pMnMwXzhjaF90eF9tdXgiLCAiY2xrX2kyczBfOGNoX3J4X211eCJ9
OworUE5BTUUobXV4X2kyczBfOGNoX3R4X291dF9wKQk9IHsgImNsa19pMnMwXzhjaF90eCIsICJ4
aW4xMm0iIH07CitQTkFNRShtdXhfaTJzMF84Y2hfcnhfcCkJPSB7ICJjbGtfaTJzMF84Y2hfcnhf
c3JjIiwgImNsa19pMnMwXzhjaF9yeF9mcmFjIiwgIm1jbGtfaTJzMF84Y2hfaW4iIH07CitQTkFN
RShtdXhfaTJzMF84Y2hfcnhfdHhfcCkJPSB7ICJjbGtfaTJzMF84Y2hfcnhfbXV4IiwgImNsa19p
MnMwXzhjaF90eF9tdXgifTsKK1BOQU1FKG11eF9pMnMxXzhjaF90eF9wKQk9IHsgImNsa19pMnMx
XzhjaF90eF9zcmMiLCAiY2xrX2kyczFfOGNoX3R4X2ZyYWMiLCAibWNsa19pMnMxXzhjaF9pbiIg
fTsKK1BOQU1FKG11eF9pMnMxXzhjaF90eF9yeF9wKQk9IHsgImNsa19pMnMxXzhjaF90eF9tdXgi
LCAiY2xrX2kyczFfOGNoX3J4X211eCJ9OworUE5BTUUobXV4X2kyczFfOGNoX3R4X291dF9wKQk9
IHsgImNsa19pMnMxXzhjaF90eCIsICJ4aW4xMm0iIH07CitQTkFNRShtdXhfaTJzMV84Y2hfcnhf
cCkJPSB7ICJjbGtfaTJzMV84Y2hfcnhfc3JjIiwgImNsa19pMnMxXzhjaF9yeF9mcmFjIiwgIm1j
bGtfaTJzMV84Y2hfaW4iIH07CitQTkFNRShtdXhfaTJzMV84Y2hfcnhfdHhfcCkJPSB7ICJjbGtf
aTJzMV84Y2hfcnhfbXV4IiwgImNsa19pMnMxXzhjaF90eF9tdXgifTsKK1BOQU1FKG11eF9pMnMy
XzhjaF90eF9wKQk9IHsgImNsa19pMnMyXzhjaF90eF9zcmMiLCAiY2xrX2kyczJfOGNoX3R4X2Zy
YWMiLCAibWNsa19pMnMyXzhjaF9pbiIgfTsKK1BOQU1FKG11eF9pMnMyXzhjaF90eF9yeF9wKQk9
IHsgImNsa19pMnMyXzhjaF90eF9tdXgiLCAiY2xrX2kyczJfOGNoX3J4X211eCJ9OworUE5BTUUo
bXV4X2kyczJfOGNoX3R4X291dF9wKQk9IHsgImNsa19pMnMyXzhjaF90eCIsICJ4aW4xMm0iIH07
CitQTkFNRShtdXhfaTJzMl84Y2hfcnhfcCkJPSB7ICJjbGtfaTJzMl84Y2hfcnhfc3JjIiwgImNs
a19pMnMyXzhjaF9yeF9mcmFjIiwgIm1jbGtfaTJzMl84Y2hfaW4iIH07CitQTkFNRShtdXhfaTJz
Ml84Y2hfcnhfdHhfcCkJPSB7ICJjbGtfaTJzMl84Y2hfcnhfbXV4IiwgImNsa19pMnMyXzhjaF90
eF9tdXgifTsKK1BOQU1FKG11eF9pMnMzXzhjaF90eF9wKQk9IHsgImNsa19pMnMzXzhjaF90eF9z
cmMiLCAiY2xrX2kyczNfOGNoX3R4X2ZyYWMiLCAibWNsa19pMnMzXzhjaF9pbiIgfTsKK1BOQU1F
KG11eF9pMnMzXzhjaF90eF9yeF9wKQk9IHsgImNsa19pMnMzXzhjaF90eF9tdXgiLCAiY2xrX2ky
czNfOGNoX3J4X211eCJ9OworUE5BTUUobXV4X2kyczNfOGNoX3R4X291dF9wKQk9IHsgImNsa19p
MnMzXzhjaF90eCIsICJ4aW4xMm0iIH07CitQTkFNRShtdXhfaTJzM184Y2hfcnhfcCkJPSB7ICJj
bGtfaTJzM184Y2hfcnhfc3JjIiwgImNsa19pMnMzXzhjaF9yeF9mcmFjIiwgIm1jbGtfaTJzM184
Y2hfaW4iIH07CitQTkFNRShtdXhfaTJzM184Y2hfcnhfdHhfcCkJPSB7ICJjbGtfaTJzM184Y2hf
cnhfbXV4IiwgImNsa19pMnMzXzhjaF90eF9tdXgifTsKK1BOQU1FKG11eF9pMnMwXzJjaF9wKQkJ
PSB7ICJjbGtfaTJzMF8yY2hfc3JjIiwgImNsa19pMnMwXzJjaF9mcmFjIiwgIm1jbGtfaTJzMF8y
Y2hfaW4iIH07CitQTkFNRShtdXhfaTJzMF8yY2hfb3V0X3ApCT0geyAiY2xrX2kyczBfMmNoIiwg
InhpbjEybSIgfTsKK1BOQU1FKG11eF9pMnMxXzJjaF9wKQkJPSB7ICJjbGtfaTJzMV8yY2hfc3Jj
IiwgImNsa19pMnMxXzJjaF9mcmFjIiwgIm1jbGtfaTJzMV8yY2hfaW4ifTsKK1BOQU1FKG11eF9p
MnMxXzJjaF9vdXRfcCkJPSB7ICJjbGtfaTJzMV8yY2giLCAieGluMTJtIiB9OworUE5BTUUobXV4
X3NwZGlmX3R4X3NyY19wKQk9IHsgImNsa19zcGRpZl90eF9kaXYiLCAiY2xrX3NwZGlmX3R4X2Rp
djUwIiB9OworUE5BTUUobXV4X3NwZGlmX3R4X3ApCQk9IHsgImNsa19zcGRpZl90eF9zcmMiLCAi
Y2xrX3NwZGlmX3R4X2ZyYWMiLCAibWNsa19pMnMwXzJjaF9pbiIgfTsKK1BOQU1FKG11eF9zcGRp
Zl9yeF9zcmNfcCkJPSB7ICJjbGtfc3BkaWZfcnhfZGl2IiwgImNsa19zcGRpZl9yeF9kaXY1MCIg
fTsKK1BOQU1FKG11eF9zcGRpZl9yeF9wKQkJPSB7ICJjbGtfc3BkaWZfcnhfc3JjIiwgImNsa19z
cGRpZl9yeF9mcmFjIiB9OworLyogQ0xPQ0tTICovCitzdGF0aWMgc3RydWN0IHJrX2NsayByazMz
MDhfY2xrc1tdID0geworCS8qIEV4dGVybmFsIGNsb2NrcyAqLworIAkgTElOSygieGluMjRtIiks
CisJIExJTksoImNsa19ydGNfMzJrIiksCisgIAkgTElOSygidXNiNDgwbV9waHkiKSwKKy8vICAJ
IExJTksoImp0YWdfY2xraW4iKSwKKyAgCSBMSU5LKCJjbGtfZGRycGh5MXhfb3V0IiksCisgIAkg
TElOSygiY2xrX3B2dG1fMzJrIiksCisgIAkgTElOSygieGluMzJrIiksCisJIExJTksoIm1jbGtf
aTJzMF84Y2hfaW4iKSwKKwkgTElOSygibWNsa19pMnMxXzhjaF9pbiIpLAkvLyBTT1MgU0NSVQor
CSBMSU5LKCJtY2xrX2kyczJfOGNoX2luIiksCisJIExJTksoIm1jbGtfaTJzM184Y2hfaW4iKSwK
KwkgTElOSygibWNsa19pMnMwXzJjaF9pbiIpLAorCSBMSU5LKCJtY2xrX2kyczFfMmNoX2luIiks
CisJIExJTksoIm1hY19jbGtpbiIpLAorCSBMSU5LKCJkdW1teSIpLAorCS8qIFBMTCdzICovCisg
CSBSS19QTEwoUExMX0FQTEwsICJhcGxsIiwgbXV4X3BsbF9wLCAwLCAwKSwKKwkgUktfUExMKFBM
TF9EUExMLCAiZHBsbCIsIG11eF9wbGxfcCwgMSwgMiksCisJIFJLX1BMTChQTExfVlBMTDAsICJ2
cGxsMCIsIG11eF9wbGxfcCwgMiwgNCksCisJIFJLX1BMTChQTExfVlBMTDEsICJ2cGxsMSIsIG11
eF9wbGxfcCwgMywgNiksCisJIFJLX0FSTURJVihBUk1DTEssICJhcm1jbGsiLCBtdXhfYXJtY2xr
X3AsIHJrMzMwOF9hcm1jbGtfcmF0ZXMsIDAsIDAsIDUsNiwgMSwgMCwgMSksCisJIFJLX01VWChV
U0I0ODBNLCAidXNiNDgwbSIsIG11eF91c2I0ODBtX3AsIFJLMzMwOF9NT0RFX0NPTiwgOCwgMiwg
MCksCisJIFJLX0ZBQ1RPUigwLCAieGluMTJtIiwgInhpbjI0bSIsIDEsIDIpLAorCSBSS19DT01Q
Tk9NVVgoMCwgInBjbGtfY29yZV9kYmciLCAiYXJtY2xrIiwgMCwgOCwgNCwgMCwgMiwgMCksCisJ
IFJLX0NPTVBOT01VWCgwLCAiYWNsa19jb3JlIiwgImFybWNsayIsIDAsIDEyLCAzLCAwLCAxLCAw
KSwKKwkgUktfQ09NUE5PRElWKEFDTEtfQlVTX1NSQywgImNsa19idXNfc3JjIiwgbXV4X2RwbGxf
dnBsbDBfdnBsbDFfcCwgNSwgNiwgMiwgMSwgMCwgMCksCisJIFJLX0NPTVBOT01VWChQQ0xLX0JV
UywgInBjbGtfYnVzIiwgImNsa19idXNfc3JjIiwgNiwgOCwgNSwgMSwgMywgMCksCisJIFJLX0NP
TVBOT01VWChIQ0xLX0JVUywgImhjbGtfYnVzIiwgImNsa19idXNfc3JjIiwgNiwgMCwgNSwgMSwg
MiwgMCksCisJIFJLX0NPTVBOT01VWChBQ0xLX0JVUywgImFjbGtfYnVzIiwgImNsa19idXNfc3Jj
IiwgNSwgMCwgNSwgMSwgMSwgMCksCisJIFJLX0NPTVBPU0lURSgwLCAiY2xrX3VhcnQwX3NyYyIs
IG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3VzYjQ4MG1feGluMjRtX3AsIDEwLCAxMywgMywgMCwgNSwg
MSwgOSwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfdWFydDBfZnJhYyIsICJjbGtfdWFydDBf
c3JjIiwgMTIsIDEsIDExLCAwKSwKKwkgUktfTVVYKDAsICJjbGtfdWFydDBfbXV4IiwgbXV4X3Vh
cnQwX3AsIDExLCAxNCwgMiwgMCksCisJIFJLX0NPTVBPU0lURSgwLCAiY2xrX3VhcnQxX3NyYyIs
IG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3VzYjQ4MG1feGluMjRtX3AsIDEzLCAxMywgMywgMCwgNSwg
MSwgMTMsIDApLAorCSBSS19GUkFDVElPTigwLCAiY2xrX3VhcnQxX2ZyYWMiLCAiY2xrX3VhcnQx
X3NyYyIsIDE1LCAxLCAxNSwgMCksCisJIFJLX01VWCgwLCAiY2xrX3VhcnQxX211eCIsIG11eF91
YXJ0MV9wLCAxNCwgMTQsIDIsIDApLAorCSBSS19DT01QT1NJVEUoMCwgImNsa191YXJ0Ml9zcmMi
LCBtdXhfZHBsbF92cGxsMF92cGxsMV91c2I0ODBtX3hpbjI0bV9wLCAxNiwgMTMsIDMsIDAsIDUs
IDIsIDEsIDApLAorCSBSS19GUkFDVElPTigwLCAiY2xrX3VhcnQyX2ZyYWMiLCAiY2xrX3VhcnQy
X3NyYyIsIDE4LCAyLCAzLCAwKSwKKwkgUktfTVVYKDAsICJjbGtfdWFydDJfbXV4IiwgbXV4X3Vh
cnQyX3AsIDE3LCAxNCwgMiwgMCksCisJIFJLX0NPTVBPU0lURSgwLCAiY2xrX3VhcnQzX3NyYyIs
IG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3VzYjQ4MG1feGluMjRtX3AsIDE5LCAxMywgMywgMCwgNSwg
MiwgNSwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfdWFydDNfZnJhYyIsICJjbGtfdWFydDNf
c3JjIiwgMjEsIDIsIDcsIDApLAorCSBSS19NVVgoMCwgImNsa191YXJ0M19tdXgiLCBtdXhfdWFy
dDNfcCwgMjAsIDE0LCAyLCAwKSwKKwkgUktfQ09NUE9TSVRFKDAsICJjbGtfdWFydDRfc3JjIiwg
bXV4X2RwbGxfdnBsbDBfdnBsbDFfdXNiNDgwbV94aW4yNG1fcCwgMjIsIDEzLCAzLCAwLCA1LCAy
LCA5LCAwKSwKKwkgUktfRlJBQ1RJT04oMCwgImNsa191YXJ0NF9mcmFjIiwgImNsa191YXJ0NF9z
cmMiLCAyNCwgMiwgMTEsIDApLAorCSBSS19NVVgoMCwgImNsa191YXJ0NF9tdXgiLCBtdXhfdWFy
dDRfcCwgMjMsIDE0LCAyLCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfSTJDMCwgImNsa19pMmMw
IiwgbXV4X2RwbGxfdnBsbDBfeGluMjRtX3AsIDI1LCAxNCwgMiwgMCwgNywgMiwgMTMsIDApLAor
CSBSS19DT01QT1NJVEUoU0NMS19JMkMxLCAiY2xrX2kyYzEiLCBtdXhfZHBsbF92cGxsMF94aW4y
NG1fcCwgMjYsIDE0LCAyLCAwLCA3LCAyLCAxNCwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX0ky
QzIsICJjbGtfaTJjMiIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAyNywgMTQsIDIsIDAsIDcs
IDIsIDE1LCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfSTJDMywgImNsa19pMmMzIiwgbXV4X2Rw
bGxfdnBsbDBfeGluMjRtX3AsIDI4LCAxNCwgMiwgMCwgNywgMywgMCwgMCksCisJIFJLX0NPTVBP
U0lURShTQ0xLX1BXTTAsICJjbGtfcHdtMCIsIG11eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCAyOSwg
MTQsIDIsIDAsIDcsIDMsIDEsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19QV00xLCAiY2xrX3B3
bTEiLCBtdXhfZHBsbF92cGxsMF94aW4yNG1fcCwgNzQsIDE0LCAyLCAwLCA3LCAxNSwgMCwgMCks
CisJIFJLX0NPTVBPU0lURShTQ0xLX1BXTTIsICJjbGtfcHdtMiIsIG11eF9kcGxsX3ZwbGwwX3hp
bjI0bV9wLCA3NSwgMTQsIDIsIDAsIDcsIDE1LCAxLCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtf
U1BJMCwgImNsa19zcGkwIiwgbXV4X2RwbGxfdnBsbDBfeGluMjRtX3AsIDMwLCAxNCwgMiwgMCwg
NywgMywgMiwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX1NQSTEsICJjbGtfc3BpMSIsIG11eF9k
cGxsX3ZwbGwwX3hpbjI0bV9wLCAzMSwgMTQsIDIsIDAsIDcsIDMsIDMsIDApLAorCSBSS19DT01Q
T1NJVEUoU0NMS19TUEkyLCAiY2xrX3NwaTIiLCBtdXhfZHBsbF92cGxsMF94aW4yNG1fcCwgMzIs
IDE0LCAyLCAwLCA3LCAzLCA0LCAwKSwKKwkgUktfQ09NUE5PTVVYKFNDTEtfVFNBREMsICJjbGtf
dHNhZGMiLCAieGluMjRtIiwgMzMsIDAsIDExLCAzLCA1LCAwKSwKKwkgUktfQ09NUE5PTVVYKFND
TEtfU0FSQURDLCAiY2xrX3NhcmFkYyIsICJ4aW4yNG0iLCAzNCwgMCwgMTEsIDMsIDYsIDApLAor
CSBSS19DT01QTk9NVVgoU0NMS19PVFAsICJjbGtfb3RwIiwgInhpbjI0bSIsIDM1LCAwLCA0LCAz
LCA3LCAwKSwKKwkgUktfQ09NUE5PTVVYKFNDTEtfT1RQX1VTUiwgImNsa19vdHBfdXNyIiwgImNs
a19vdHAiLCAzNSwgNCwgMiwgMywgOCwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX0NSWVBUTywg
ImNsa19jcnlwdG8iLCBtdXhfZHBsbF92cGxsMF92cGxsMV9wLCA3LCA2LCAyLCAwLCA1LCAxLCA0
LCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfQ1JZUFRPX0FQSywgImNsa19jcnlwdG9fYXBrIiwg
bXV4X2RwbGxfdnBsbDBfdnBsbDFfcCwgNywgMTQsIDIsIDgsIDUsIDEsIDUsIDApLAorCSBSS19D
T01QT1NJVEUoMCwgImRjbGtfdm9wX3NyYyIsIG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3AsIDgsIDEw
LCAyLCAwLCA4LCAxLCA2LCAwKSwKKwkgUktfRlJBQ1RJT04oMCwgImRjbGtfdm9wX2ZyYWMiLCAi
ZGNsa192b3Bfc3JjIiwgOSwgMSwgNywgMCksCisgCSBSS19NVVgoMCwgImRjbGtfdm9wX211eCIs
IG11eF9kY2xrX3ZvcF9wLCA4LCAxNCwgMiwgMCksCisJIFJLX0NPTVBOT0RJVihBQ0xLX1BFUklf
U1JDLCAiY2xrX3Blcmlfc3JjIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFfcCwgMzYsIDYsIDIsIDgs
IDAsIDApLAorCSBSS19DT01QTk9NVVgoQUNMS19QRVJJLCAiYWNsa19wZXJpIiwgImNsa19wZXJp
X3NyYyIsIDM2LCAwLCA1LCA4LCAxLCAwKSwKKwkgUktfQ09NUE5PTVVYKEhDTEtfUEVSSSwgImhj
bGtfcGVyaSIsICJjbGtfcGVyaV9zcmMiLCAzNywgMCwgNSwgOCwgMiwgMCksCisJIFJLX0NPTVBO
T01VWChQQ0xLX1BFUkksICJwY2xrX3BlcmkiLCAiY2xrX3Blcmlfc3JjIiwgMzcsIDgsIDUsIDgs
IDMsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19OQU5EQ19ESVYsICJjbGtfbmFuZGNfZGl2Iiwg
bXV4X2RwbGxfdnBsbDBfdnBsbDFfcCwgMzgsIDYsIDIsIDAsIDUsIDgsIDQsIDApLAorCSBSS19D
T01QT1NJVEUoU0NMS19OQU5EQ19ESVY1MCwgImNsa19uYW5kY19kaXY1MCIsIG11eF9kcGxsX3Zw
bGwwX3ZwbGwxX3AsIDM4LCA2LCAyLCAwLCA1LCA4LCA0LCAwKSwKKwkgUktfQ09NUE5PRElWKFND
TEtfTkFOREMsICJjbGtfbmFuZGMiLCBtdXhfbmFuZGNfcCwgMzgsIDE1LCAxLCA4LCA1LCAwKSwK
KwkgUktfQ09NUE9TSVRFKFNDTEtfU0RNTUNfRElWLCAiY2xrX3NkbW1jX2RpdiIsIG11eF9kcGxs
X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCAzOSwgOCwgMiwgMCwgOCwgOCwgNiwgMCksCisJIFJLX0NP
TVBPU0lURShTQ0xLX1NETU1DX0RJVjUwLCAiY2xrX3NkbW1jX2RpdjUwIiwgbXV4X2RwbGxfdnBs
bDBfdnBsbDFfeGluMjRtX3AsIDM5LCA4LCAyLCAwLCA4LCA4LCA2LCAwKSwKKwkgUktfQ09NUE5P
RElWKFNDTEtfU0RNTUMsICJjbGtfc2RtbWMiLCBtdXhfc2RtbWNfcCwgMzksIDE1LCAxLCA4LCA3
LCAwKSwKKy8vCSBSS19NTUMoU0NMS19TRE1NQ19EUlYsICJzZG1tY19kcnYiLCAiY2xrX3NkbW1j
IiwgUkszMzA4X1NETU1DX0NPTjAsIDEpLAorLy8JIFJLX01NQyhTQ0xLX1NETU1DX1NBTVBMRSwg
InNkbW1jX3NhbXBsZSIsICJjbGtfc2RtbWMiLCBSSzMzMDhfU0RNTUNfQ09OMSwgMSksCisJIFJL
X0NPTVBPU0lURShTQ0xLX1NESU9fRElWLCAiY2xrX3NkaW9fZGl2IiwgbXV4X2RwbGxfdnBsbDBf
dnBsbDFfeGluMjRtX3AsIDQwLCA4LCAyLCAwLCA4LCA4LCA4LCAwKSwKKwkgUktfQ09NUE9TSVRF
KFNDTEtfU0RJT19ESVY1MCwgImNsa19zZGlvX2RpdjUwIiwgbXV4X2RwbGxfdnBsbDBfdnBsbDFf
eGluMjRtX3AsIDQwLCA4LCAyLCAwLCA4LCA4LCA4LCAwKSwKKwkgUktfQ09NUE5PRElWKFNDTEtf
U0RJTywgImNsa19zZGlvIiwgbXV4X3NkaW9fcCwgNDAsIDE1LCAxLCA4LCA5LCAwKSwKKy8vCSBS
S19NTUMoU0NMS19TRElPX0RSViwgInNkaW9fZHJ2IiwgImNsa19zZGlvIiwgUkszMzA4X1NESU9f
Q09OMCwgMSksCisvLwkgUktfTU1DKFNDTEtfU0RJT19TQU1QTEUsICJzZGlvX3NhbXBsZSIsICJj
bGtfc2RpbyIsIFJLMzMwOF9TRElPX0NPTjEsIDEpLAorCSBSS19DT01QT1NJVEUoU0NMS19FTU1D
X0RJViwgImNsa19lbW1jX2RpdiIsIG11eF9kcGxsX3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCA0MSwg
OCwgMiwgMCwgOCwgOCwgMTAsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19FTU1DX0RJVjUwLCAi
Y2xrX2VtbWNfZGl2NTAiLCBtdXhfZHBsbF92cGxsMF92cGxsMV94aW4yNG1fcCwgNDEsIDgsIDIs
IDAsIDgsIDgsIDEwLCAwKSwKKwkgUktfQ09NUE5PRElWKFNDTEtfRU1NQywgImNsa19lbW1jIiwg
bXV4X2VtbWNfcCwgNDEsIDE1LCAxLCA4LCAxMSwgMCksCisvLwkgUktfTU1DKFNDTEtfRU1NQ19E
UlYsICJlbW1jX2RydiIsICJjbGtfZW1tYyIsIFJLMzMwOF9FTU1DX0NPTjAsIDEpLAorLy8JIFJL
X01NQyhTQ0xLX0VNTUNfU0FNUExFLCAiZW1tY19zYW1wbGUiLCAiY2xrX2VtbWMiLCBSSzMzMDhf
RU1NQ19DT04xLCAxKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfU0ZDLCAiY2xrX3NmYyIsIG11eF9k
cGxsX3ZwbGwwX3ZwbGwxX3AsIDQyLCAxNCwgMiwgMCwgNywgOCwgMTIsIDApLAorCSBSS19NVVgo
U0NMS19SVEMzMkssICJjbGtfcnRjMzJrIiwgbXV4X3J0YzMya19wLCAyLCA4LCAyLCAwKSwKKwkg
UktfQ09NUE9TSVRFKFNDTEtfTUFDX1NSQywgImNsa19tYWNfc3JjIiwgbXV4X2RwbGxfdnBsbDBf
dnBsbDFfcCwgNDMsIDYsIDIsIDAsIDUsIDgsIDE0LCAwKSwKKwkgUktfTVVYKFNDTEtfTUFDLCAi
Y2xrX21hYyIsIG11eF9tYWNfcCwgNDMsIDE0LCAxLCAwKSwKKwkgUktfRkFDVE9SKDAsICJjbGtf
bWFjX3J4X3R4X2RpdjIiLCAiY2xrX21hY19yeF90eCIsIDEsIDIpLAorCSBSS19GQUNUT1IoMCwg
ImNsa19tYWNfcnhfdHhfZGl2MjAiLCAiY2xrX21hY19yeF90eCIsIDEsIDIwKSwKKwkgUktfTVVY
KFNDTEtfTUFDX1JNSUksICJjbGtfbWFjX3JtaWlfc2VsIiwgbXV4X21hY19ybWlpX3NlbF9wLCA0
MywgMTUsIDEsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19PV0lSRSwgImNsa19vd2lyZSIsIG11
eF9kcGxsX3ZwbGwwX3hpbjI0bV9wLCA0NCwgMTQsIDIsIDgsIDYsIDgsIDE1LCAwKSwKKwkgUktf
Q09NUE9TSVRFKFNDTEtfRERSQ0xLLCAiY2xrX2RkcnBoeTR4X3NyYyIsIG11eF9kcGxsX3ZwbGww
X3ZwbGwxX3AsIDEsIDYsIDIsIDAsIDMsIDAsIDEwLCAwKSwKKwkgUktfRkFDVE9SX0dBVEUoMCwg
ImNsa19kZHJfc3RkYnlfZGl2NCIsICJjbGtfZGRycGh5NHgiLDAsMSwgNCwgMCwgMTMsMCksCisJ
IFJLX0NPTVBOT0RJVigwLCAiY2xrX2RkcnN0ZGJ5IiwgbXV4X2RkcnN0ZGJ5X3AsIDEsIDgsIDEs
IDQsIDE0LCAwKSwKKwkgUktfRlJBQ1RJT04oMCwgImNsa19ydGMzMmtfZnJhYyIsICJ4aW4yNG0i
LCAzLCA0LCAzLCAwKSwKKwkgUktfTVVYKDAsICJjbGtfcnRjMzJrX2Rpdl9zcmMiLCBtdXhfdnBs
bDBfdnBsbDFfcCwgMiwgMTAsIDEsIDApLAorCSBSS19DT01QTk9NVVgoMCwgImNsa19ydGMzMmtf
ZGl2IiwgImNsa19ydGMzMmtfZGl2X3NyYyIsIDQsIDAsIDE2LCA0LCAyLCAwKSwKKwkgUktfQ09N
UE9TSVRFKDAsICJjbGtfdXNicGh5X3JlZl9zcmMiLCBtdXhfZHBsbF92cGxsMF9wLCA3MiwgNiwg
MSwgMCwgNiwgNCwgNywgMCksCisJIFJLX0NPTVBOT0RJVihTQ0xLX1VTQlBIWV9SRUYsICJjbGtf
dXNicGh5X3JlZiIsIG11eF91c2JwaHlfcmVmX3AsIDcyLCA3LCAxLCA0LCA4LCAwKSwKKwkgUktf
Q09NUE9TSVRFKDAsICJjbGtfd2lmaV9zcmMiLCBtdXhfd2lmaV9zcmNfcCwgNDQsIDYsIDEsIDAs
IDYsIDQsIDAsIDApLAorCSBSS19DT01QTk9ESVYoU0NMS19XSUZJLCAiY2xrX3dpZmkiLCBtdXhf
d2lmaV9wLCA0NCwgNywgMSwgNCwgMSwgMCksCisJIFJLX0NPTVBOT0RJVigwLCAiY2xrX2F1ZGlv
X3NyYyIsIG11eF92cGxsMF92cGxsMV94aW4yNG1fcCwgNDUsIDYsIDIsIDEwLCAwLCAwKSwKKwkg
UktfQ09NUE5PTVVYKEhDTEtfQVVESU8sICJoY2xrX2F1ZGlvIiwgImNsa19hdWRpb19zcmMiLCA0
NSwgMCwgNSwgMTAsIDEsIDApLAorCSBSS19DT01QTk9NVVgoUENMS19BVURJTywgInBjbGtfYXVk
aW8iLCAiY2xrX2F1ZGlvX3NyYyIsIDQ1LCA4LCA1LCAxMCwgMiwgMCksCisJIFJLX0NPTVBPU0lU
RSgwLCAiY2xrX3BkbV9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIDQ2LCA4LCAyLCAw
LCA3LCAxMCwgMywgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfcGRtX2ZyYWMiLCAiY2xrX3Bk
bV9zcmMiLCA0NywgMTAsIDQsIDApLAorCSBSS19NVVgoMCwgImNsa19wZG1fbXV4IiwgbXV4X3Bk
bV9wLCA0NiwgMTUsIDEsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19JMlMwXzhDSF9UWF9TUkMs
ICJjbGtfaTJzMF84Y2hfdHhfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCA1MiwgOCwg
MiwgMCwgNywgMTAsIDEyLCAwKSwKKwkgUktfRlJBQ1RJT04oMCwgImNsa19pMnMwXzhjaF90eF9m
cmFjIiwgImNsa19pMnMwXzhjaF90eF9zcmMiLCA1MywgMTAsIDEzLCAwKSwKKwkgUktfQ09NUE5P
RElWKFNDTEtfSTJTMF84Q0hfVFgsICJjbGtfaTJzMF84Y2hfdHgiLCBtdXhfaTJzMF84Y2hfdHhf
cnhfcCwgNTIsIDEyLCAxLCAxMCwgMTQsIDApLAorCSBSS19DT01QTk9ESVYoU0NMS19JMlMwXzhD
SF9UWF9PVVQsICJjbGtfaTJzMF84Y2hfdHhfb3V0IiwgbXV4X2kyczBfOGNoX3R4X291dF9wLCA1
MiwgMTUsIDEsIDEwLCAxNSwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX0kyUzBfOENIX1JYX1NS
QywgImNsa19pMnMwXzhjaF9yeF9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3AsIDU0LCA4
LCAyLCAwLCA3LCAxMSwgMCwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfaTJzMF84Y2hfcnhf
ZnJhYyIsICJjbGtfaTJzMF84Y2hfcnhfc3JjIiwgNTUsIDExLCAxLCAwKSwKKwkgUktfQ09NUE5P
RElWKFNDTEtfSTJTMF84Q0hfUlgsICJjbGtfaTJzMF84Y2hfcngiLCBtdXhfaTJzMF84Y2hfcnhf
dHhfcCwgNTQsIDEyLCAxLCAxMSwgMiwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX0kyUzFfOENI
X1RYX1NSQywgImNsa19pMnMxXzhjaF90eF9zcmMiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRtX3As
IDU2LCA4LCAyLCAwLCA3LCAxMSwgNCwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtfaTJzMV84
Y2hfdHhfZnJhYyIsICJjbGtfaTJzMV84Y2hfdHhfc3JjIiwgNTcsIDExLCA1LCAwKSwKKwkgUktf
Q09NUE5PRElWKFNDTEtfSTJTMV84Q0hfVFgsICJjbGtfaTJzMV84Y2hfdHgiLCBtdXhfaTJzMV84
Y2hfdHhfcnhfcCwgNTYsIDEyLCAxLCAxMSwgNiwgMCksCisJIFJLX0NPTVBOT0RJVihTQ0xLX0ky
UzFfOENIX1RYX09VVCwgImNsa19pMnMxXzhjaF90eF9vdXQiLCBtdXhfaTJzMV84Y2hfdHhfb3V0
X3AsIDU2LCAxNSwgMSwgMTEsIDcsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19JMlMxXzhDSF9S
WF9TUkMsICJjbGtfaTJzMV84Y2hfcnhfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9wLCA1
OCwgOCwgMiwgMCwgNywgMTEsIDgsIDApLAorCSBSS19GUkFDVElPTigwLCAiY2xrX2kyczFfOGNo
X3J4X2ZyYWMiLCAiY2xrX2kyczFfOGNoX3J4X3NyYyIsIDU5LCAxMSwgOSwgMCksCisJIFJLX0NP
TVBOT0RJVihTQ0xLX0kyUzFfOENIX1JYLCAiY2xrX2kyczFfOGNoX3J4IiwgbXV4X2kyczFfOGNo
X3J4X3R4X3AsIDU4LCAxMiwgMSwgMTEsIDEwLCAwKSwKKwkgUktfQ09NUE9TSVRFKFNDTEtfSTJT
Ml84Q0hfVFhfU1JDLCAiY2xrX2kyczJfOGNoX3R4X3NyYyIsIG11eF92cGxsMF92cGxsMV94aW4y
NG1fcCwgNjAsIDgsIDIsIDAsIDcsIDExLCAxMiwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJjbGtf
aTJzMl84Y2hfdHhfZnJhYyIsICJjbGtfaTJzMl84Y2hfdHhfc3JjIiwgNjEsIDExLCAxMywgMCks
CisJIFJLX0NPTVBOT0RJVihTQ0xLX0kyUzJfOENIX1RYLCAiY2xrX2kyczJfOGNoX3R4IiwgbXV4
X2kyczJfOGNoX3R4X3J4X3AsIDYwLCAxMiwgMSwgMTEsIDE0LCAwKSwKKwkgUktfQ09NUE5PRElW
KFNDTEtfSTJTMl84Q0hfVFhfT1VULCAiY2xrX2kyczJfOGNoX3R4X291dCIsIG11eF9pMnMyXzhj
aF90eF9vdXRfcCwgNjAsIDE1LCAxLCAxMSwgMTUsIDApLAorCSBSS19DT01QT1NJVEUoU0NMS19J
MlMyXzhDSF9SWF9TUkMsICJjbGtfaTJzMl84Y2hfcnhfc3JjIiwgbXV4X3ZwbGwwX3ZwbGwxX3hp
bjI0bV9wLCA2MiwgOCwgMiwgMCwgNywgMTIsIDAsIDApLAorCSBSS19GUkFDVElPTigwLCAiY2xr
X2kyczJfOGNoX3J4X2ZyYWMiLCAiY2xrX2kyczJfOGNoX3J4X3NyYyIsIDYzLCAxMiwgMSwgMCks
CisJIFJLX0NPTVBOT0RJVihTQ0xLX0kyUzJfOENIX1JYLCAiY2xrX2kyczJfOGNoX3J4IiwgbXV4
X2kyczJfOGNoX3J4X3R4X3AsIDYyLCAxMiwgMSwgMTIsIDIsIDApLAorCSBSS19DT01QT1NJVEUo
U0NMS19JMlMzXzhDSF9UWF9TUkMsICJjbGtfaTJzM184Y2hfdHhfc3JjIiwgbXV4X3ZwbGwwX3Zw
bGwxX3hpbjI0bV9wLCA2NCwgOCwgMiwgMCwgNywgMTIsIDQsIDApLAorCSBSS19GUkFDVElPTigw
LCAiY2xrX2kyczNfOGNoX3R4X2ZyYWMiLCAiY2xrX2kyczNfOGNoX3R4X3NyYyIsIDY1LCAxMiwg
NSwgMCksCisJIFJLX0NPTVBOT0RJVihTQ0xLX0kyUzNfOENIX1RYLCAiY2xrX2kyczNfOGNoX3R4
IiwgbXV4X2kyczNfOGNoX3R4X3J4X3AsIDY0LCAxMiwgMSwgMTIsIDYsIDApLAorCSBSS19DT01Q
Tk9ESVYoU0NMS19JMlMzXzhDSF9UWF9PVVQsICJjbGtfaTJzM184Y2hfdHhfb3V0IiwgbXV4X2ky
czNfOGNoX3R4X291dF9wLCA2NCwgMTUsIDEsIDEyLCA3LCAwKSwKKwkgUktfQ09NUE9TSVRFKFND
TEtfSTJTM184Q0hfUlhfU1JDLCAiY2xrX2kyczNfOGNoX3J4X3NyYyIsIG11eF92cGxsMF92cGxs
MV94aW4yNG1fcCwgNjYsIDgsIDIsIDAsIDcsIDEyLCA4LCAwKSwKKwkgUktfRlJBQ1RJT04oMCwg
ImNsa19pMnMzXzhjaF9yeF9mcmFjIiwgImNsa19pMnMzXzhjaF9yeF9zcmMiLCA2NywgMTIsIDks
IDApLAorCSBSS19DT01QTk9ESVYoU0NMS19JMlMzXzhDSF9SWCwgImNsa19pMnMzXzhjaF9yeCIs
IG11eF9pMnMzXzhjaF9yeF90eF9wLCA2NiwgMTIsIDEsIDEyLCAxMCwgMCksCisJIFJLX0NPTVBP
U0lURShTQ0xLX0kyUzBfMkNIX1NSQywgImNsa19pMnMwXzJjaF9zcmMiLCBtdXhfdnBsbDBfdnBs
bDFfeGluMjRtX3AsIDY4LCA4LCAyLCAwLCA3LCAxMiwgMTIsIDApLAorCSBSS19GUkFDVElPTigw
LCAiY2xrX2kyczBfMmNoX2ZyYWMiLCAiY2xrX2kyczBfMmNoX3NyYyIsIDY5LCAxMiwgMTMsIDAp
LAorCSBSS19DT01QTk9ESVYoU0NMS19JMlMwXzJDSF9PVVQsICJjbGtfaTJzMF8yY2hfb3V0Iiwg
bXV4X2kyczBfMmNoX291dF9wLCA2OCwgMTUsIDEsIDEyLCAxNSwgMCksCisJIFJLX0NPTVBPU0lU
RShTQ0xLX0kyUzFfMkNIX1NSQywgImNsa19pMnMxXzJjaF9zcmMiLCBtdXhfdnBsbDBfdnBsbDFf
eGluMjRtX3AsIDcwLCA4LCAyLCAwLCA3LCAxMywgMCwgMCksCisJIFJLX0ZSQUNUSU9OKDAsICJj
bGtfaTJzMV8yY2hfZnJhYyIsICJjbGtfaTJzMV8yY2hfc3JjIiwgNzEsIDEzLCAxLCAwKSwKKwkg
UktfQ09NUE5PRElWKFNDTEtfSTJTMV8yQ0hfT1VULCAiY2xrX2kyczFfMmNoX291dCIsIG11eF9p
MnMxXzJjaF9vdXRfcCwgNzAsIDE1LCAxLCAxMywgMywgMCksCisJIFJLX0NPTVBPU0lURShTQ0xL
X1NQRElGX1RYX0RJViwgImNsa19zcGRpZl90eF9kaXYiLCBtdXhfdnBsbDBfdnBsbDFfeGluMjRt
X3AsIDQ4LCA4LCAyLCAwLCA3LCAxMCwgNiwgMCksCisJIFJLX0NPTVBPU0lURShTQ0xLX1NQRElG
X1RYX0RJVjUwLCAiY2xrX3NwZGlmX3R4X2RpdjUwIiwgbXV4X3ZwbGwwX3ZwbGwxX3hpbjI0bV9w
LCA0OCwgOCwgMiwgMCwgNywgMTAsIDYsIDApLAorCSBSS19NVVgoMCwgImNsa19zcGRpZl90eF9z
cmMiLCBtdXhfc3BkaWZfdHhfc3JjX3AsIDQ4LCAxMiwgMSwgMCksCisJIFJLX0ZSQUNUSU9OKDAs
ICJjbGtfc3BkaWZfdHhfZnJhYyIsICJjbGtfc3BkaWZfdHhfc3JjIiwgNDksIDEwLCA3LCAwKSwK
KwkgUktfQ09NUE9TSVRFKFNDTEtfU1BESUZfUlhfRElWLCAiY2xrX3NwZGlmX3J4X2RpdiIsIG11
eF92cGxsMF92cGxsMV94aW4yNG1fcCwgNTAsIDgsIDIsIDAsIDcsIDEwLCA5LCAwKSwKKwkgUktf
Q09NUE9TSVRFKFNDTEtfU1BESUZfUlhfRElWNTAsICJjbGtfc3BkaWZfcnhfZGl2NTAiLCBtdXhf
dnBsbDBfdnBsbDFfeGluMjRtX3AsIDUwLCA4LCAyLCAwLCA3LCAxMCwgOSwgMCksCisJIFJLX01V
WCgwLCAiY2xrX3NwZGlmX3J4X3NyYyIsIG11eF9zcGRpZl9yeF9zcmNfcCwgNTAsIDE0LCAxLCAw
KSwKKwkgUktfRlJBQ1RJT04oMCwgImNsa19zcGRpZl9yeF9mcmFjIiwgImNsa19zcGRpZl9yeF9z
cmMiLCA1MSwgMTAsIDEwLCAwKSwKKwkgUktfRkFDVE9SKEFDTEtfRE1BQzAsICJhY2xrX2RtYWMw
IiwgImFjbGtfYnVzIiwgMSwgMSksCisJIFJLX0ZBQ1RPUihBQ0xLX0RNQUMxLCAiYWNsa19kbWFj
MSIsICJhY2xrX2J1cyIsIDEsIDEpLAorCSBSS19GQUNUT1IoUENMS19XRFQsICJwY2xrX3dkdCIs
ICJwY2xrX2J1cyIsIDEsIDEpLAorCSBSS19NVVgoU0NMS19JMlMwXzhDSF9UWF9NVVgsICJjbGtf
aTJzMF84Y2hfdHhfbXV4IiwgbXV4X2kyczBfOGNoX3R4X3AsIDUyLCAxMCwgMiwgMCksCisJIFJL
X01VWChTQ0xLX0kyUzBfOENIX1JYX01VWCwgImNsa19pMnMwXzhjaF9yeF9tdXgiLCBtdXhfaTJz
MF84Y2hfcnhfcCwgNTQsIDEwLCAyLCAwKSwKKwkgUktfTVVYKFNDTEtfSTJTMV84Q0hfVFhfTVVY
LCAiY2xrX2kyczFfOGNoX3R4X211eCIsIG11eF9pMnMxXzhjaF90eF9wLCA1NiwgMTAsIDIsIDAp
LAorCSBSS19NVVgoU0NMS19JMlMxXzhDSF9SWF9NVVgsICJjbGtfaTJzMV84Y2hfcnhfbXV4Iiwg
bXV4X2kyczFfOGNoX3J4X3AsIDU4LCAxMCwgMiwgMCksCisJIFJLX01VWChTQ0xLX0kyUzJfOENI
X1RYX01VWCwgImNsa19pMnMyXzhjaF90eF9tdXgiLCBtdXhfaTJzMl84Y2hfdHhfcCwgNjAsIDEw
LCAyLCAwKSwKKwkgUktfTVVYKFNDTEtfSTJTMl84Q0hfUlhfTVVYLCAiY2xrX2kyczJfOGNoX3J4
X211eCIsIG11eF9pMnMyXzhjaF9yeF9wLCA2MiwgMTAsIDIsIDApLAorCSBSS19NVVgoU0NMS19J
MlMzXzhDSF9UWF9NVVgsICJjbGtfaTJzM184Y2hfdHhfbXV4IiwgbXV4X2kyczNfOGNoX3R4X3As
IDY0LCAxMCwgMiwgMCksCisJIFJLX01VWChTQ0xLX0kyUzNfOENIX1JYX01VWCwgImNsa19pMnMz
XzhjaF9yeF9tdXgiLCBtdXhfaTJzM184Y2hfcnhfcCwgNjYsIDEwLCAyLCAwKSwKKwkgUktfTVVY
KDAsICJjbGtfaTJzMF8yY2hfbXV4IiwgbXV4X2kyczBfMmNoX3AsIDY4LCAxMCwgMiwgMCksCisJ
IFJLX01VWCgwLCAiY2xrX2kyczFfMmNoX211eCIsIG11eF9pMnMxXzJjaF9wLCA3MCwgMTAsIDIs
IDApLAorCSBSS19NVVgoMCwgImNsa19zcGRpZl90eF9tdXgiLCBtdXhfc3BkaWZfdHhfcCwgNDgs
IDE0LCAyLCAwKSwKKwkgUktfTVVYKDAsICJjbGtfc3BkaWZfcnhfbXV4IiwgbXV4X3NwZGlmX3J4
X3AsIDUwLCAxNSwgMSwgMCksCit9OworCisvKiBHQVRFUyAqLworc3RhdGljIHN0cnVjdCBya19j
cnVfZ2F0ZSByazMzMDhfZ2F0ZXNbXSA9IHsKKyBSS19HQVRFKDAsICJhcGxsX2NvcmUiLCAiYXBs
bCIsIDAsIDApLAorIFJLX0dBVEUoMCwgInZwbGwwX2NvcmUiLCAidnBsbDAiLCAwLCAwKSwKKyBS
S19HQVRFKDAsICJ2cGxsMV9jb3JlIiwgInZwbGwxIiwgMCwgMCksCisvLyBSS19HQVRFKDAsICJj
bGtfanRhZyIsICJqdGFnX2Nsa2luIiwgMCwgMyksCisgUktfR0FURShTQ0xLX1BWVE1fQ09SRSwg
ImNsa19wdnRtX2NvcmUiLCAieGluMjRtIiwgMCwgNCksCisgUktfR0FURShQQ0xLX0REUiwgInBj
bGtfZGRyIiwgInBjbGtfYnVzIiwgNCwgMTUpLAorIFJLX0dBVEUoU0NMS19VQVJUMCwgImNsa191
YXJ0MCIsICJjbGtfdWFydDBfbXV4IiwgMSwgMTIpLAorIFJLX0dBVEUoU0NMS19VQVJUMSwgImNs
a191YXJ0MSIsICJjbGtfdWFydDFfbXV4IiwgMiwgMCksCisgUktfR0FURShTQ0xLX1VBUlQyLCAi
Y2xrX3VhcnQyIiwgImNsa191YXJ0Ml9tdXgiLCAyLCA0KSwKKyBSS19HQVRFKFNDTEtfVUFSVDMs
ICJjbGtfdWFydDMiLCAiY2xrX3VhcnQzX211eCIsIDIsIDgpLAorIFJLX0dBVEUoU0NMS19VQVJU
NCwgImNsa191YXJ0NCIsICJjbGtfdWFydDRfbXV4IiwgMiwgMTIpLAorIFJLX0dBVEUoU0NMS19U
SU1FUjAsICJzY2xrX3RpbWVyMCIsICJ4aW4yNG0iLCAzLCAxMCksCisgUktfR0FURShTQ0xLX1RJ
TUVSMSwgInNjbGtfdGltZXIxIiwgInhpbjI0bSIsIDMsIDExKSwKKyBSS19HQVRFKFNDTEtfVElN
RVIyLCAic2Nsa190aW1lcjIiLCAieGluMjRtIiwgMywgMTIpLAorIFJLX0dBVEUoU0NMS19USU1F
UjMsICJzY2xrX3RpbWVyMyIsICJ4aW4yNG0iLCAzLCAxMyksCisgUktfR0FURShTQ0xLX1RJTUVS
NCwgInNjbGtfdGltZXI0IiwgInhpbjI0bSIsIDMsIDE0KSwKKyBSS19HQVRFKFNDTEtfVElNRVI1
LCAic2Nsa190aW1lcjUiLCAieGluMjRtIiwgMywgMTUpLAorIFJLX0dBVEUoU0NMS19DUFVfQk9P
U1QsICJjbGtfY3B1X2Jvb3N0IiwgInhpbjI0bSIsIDMsIDkpLAorIFJLX0dBVEUoRENMS19WT1As
ICJkY2xrX3ZvcCIsICJkY2xrX3ZvcF9tdXgiLCAxLCA4KSwKKyBSS19HQVRFKFNDTEtfT1RHX0FE
UCwgImNsa19vdGdfYWRwIiwgImNsa19ydGMzMmsiLCA4LCAxMyksCisgUktfR0FURShTQ0xLX01B
Q19SRUYsICJjbGtfbWFjX3JlZiIsICJjbGtfbWFjIiwgOSwgMSksCisgUktfR0FURShTQ0xLX01B
Q19SWF9UWCwgImNsa19tYWNfcnhfdHgiLCAiY2xrX21hYyIsIDksIDApLAorIFJLX0dBVEUoMCwg
ImNsa19kZHJfbW9uX3RpbWVyIiwgInhpbjI0bSIsIDAsIDEyKSwKKyBSS19HQVRFKDAsICJjbGtf
ZGRyX21vbiIsICJjbGtfZGRycGh5MXhfb3V0IiwgNCwgMTApLAorIFJLX0dBVEUoMCwgImNsa19k
ZHJfdXBjdHJsIiwgImNsa19kZHJwaHkxeF9vdXQiLCA0LCAxMSksCisgUktfR0FURSgwLCAiY2xr
X2Rkcl9tc2NoIiwgImNsa19kZHJwaHkxeF9vdXQiLCA0LCAxMiksCisgUktfR0FURSgwLCAiY2xr
X2Rkcl9tc2NoX3BlcmlidXMiLCAiY2xrX2RkcnBoeTF4X291dCIsIDQsIDEzKSwKKyBSS19HQVRF
KDAsICJjbGtfZGRycGh5NHgiLCAiY2xrX2RkcnBoeTR4X3NyYyIsIDAsIDExKSwKKyBSS19HQVRF
KFBDTEtfUE1VLCAicGNsa19wbXUiLCAicGNsa19idXMiLCA0LCA1KSwKKyBSS19HQVRFKFNDTEtf
UE1VLCAiY2xrX3BtdSIsICJwY2xrX2J1cyIsIDQsIDYpLAorIFJLX0dBVEUoMCwgImNsa193aWZp
X2RwbGwiLCAiZHBsbCIsIDE1LCAyKSwKKyBSS19HQVRFKDAsICJjbGtfd2lmaV92cGxsMCIsICJ2
cGxsMCIsIDE1LCAzKSwKKyBSS19HQVRFKDAsICJjbGtfd2lmaV9vc2MiLCAieGluMjRtIiwgMTUs
IDQpLAorIFJLX0dBVEUoU0NMS19QVlRNX1BNVSwgImNsa19wdnRtX3BtdSIsICJ4aW4yNG0iLCA0
LCA0KSwKKyBSS19HQVRFKFNDTEtfUERNLCAiY2xrX3BkbSIsICJjbGtfcGRtX211eCIsIDEwLCA1
KSwKKyBSS19HQVRFKFNDTEtfSTJTMF84Q0hfUlhfT1VULCAiY2xrX2kyczBfOGNoX3J4X291dCIs
ICJjbGtfaTJzMF84Y2hfcngiLCAxMSwgMyksCisgUktfR0FURShTQ0xLX0kyUzFfOENIX1JYX09V
VCwgImNsa19pMnMxXzhjaF9yeF9vdXQiLCAiY2xrX2kyczFfOGNoX3J4IiwgMTEsIDExKSwKKyBS
S19HQVRFKFNDTEtfSTJTMl84Q0hfUlhfT1VULCAiY2xrX2kyczJfOGNoX3J4X291dCIsICJjbGtf
aTJzMl84Y2hfcngiLCAxMiwgMyksCisgUktfR0FURShTQ0xLX0kyUzNfOENIX1JYX09VVCwgImNs
a19pMnMzXzhjaF9yeF9vdXQiLCAiY2xrX2kyczNfOGNoX3J4IiwgMTIsIDExKSwKKyBSS19HQVRF
KFNDTEtfSTJTMF8yQ0gsICJjbGtfaTJzMF8yY2giLCAiY2xrX2kyczBfMmNoX211eCIsIDEyLCAx
NCksCisgUktfR0FURShTQ0xLX0kyUzFfMkNILCAiY2xrX2kyczFfMmNoIiwgImNsa19pMnMxXzJj
aF9tdXgiLCAxMywgMiksCisgUktfR0FURShTQ0xLX1NQRElGX1RYLCAiY2xrX3NwZGlmX3R4Iiwg
ImNsa19zcGRpZl90eF9tdXgiLCAxMCwgOCksCisgUktfR0FURShTQ0xLX1NQRElGX1JYLCAiY2xr
X3NwZGlmX3J4IiwgImNsa19zcGRpZl9yeF9tdXgiLCAxMCwgMTEpLAorIFJLX0dBVEUoMCwgImFj
bGtfY29yZV9uaXUiLCAiYWNsa19jb3JlIiwgMCwgNSksCisgUktfR0FURSgwLCAicGNsa19jb3Jl
X2RiZ19uaXUiLCAiYWNsa19jb3JlIiwgMCwgNiksCisgUktfR0FURSgwLCAicGNsa19jb3JlX2Ri
Z19kYXBsaXRlIiwgInBjbGtfY29yZV9kYmciLCAwLCA3KSwKKyBSS19HQVRFKDAsICJhY2xrX2Nv
cmVfcGVyZiIsICJwY2xrX2NvcmVfZGJnIiwgMCwgOCksCisgUktfR0FURSgwLCAicGNsa19jb3Jl
X2dyZiIsICJwY2xrX2NvcmVfZGJnIiwgMCwgOSksCisgUktfR0FURSgwLCAiYWNsa19wZXJpX25p
dSIsICJhY2xrX3BlcmkiLCA5LCAyKSwKKyBSS19HQVRFKDAsICJhY2xrX3BlcmlidXNfbml1Iiwg
ImFjbGtfcGVyaSIsIDksIDMpLAorIFJLX0dBVEUoQUNMS19NQUMsICJhY2xrX21hYyIsICJhY2xr
X3BlcmkiLCA5LCA0KSwKKyBSS19HQVRFKDAsICJoY2xrX3Blcmlfbml1IiwgImhjbGtfcGVyaSIs
IDksIDUpLAorIFJLX0dBVEUoSENMS19OQU5EQywgImhjbGtfbmFuZGMiLCAiaGNsa19wZXJpIiwg
OSwgNiksCisgUktfR0FURShIQ0xLX1NETU1DLCAiaGNsa19zZG1tYyIsICJoY2xrX3BlcmkiLCA5
LCA3KSwKKyBSS19HQVRFKEhDTEtfU0RJTywgImhjbGtfc2RpbyIsICJoY2xrX3BlcmkiLCA5LCA4
KSwKKyBSS19HQVRFKEhDTEtfRU1NQywgImhjbGtfZW1tYyIsICJoY2xrX3BlcmkiLCA5LCA5KSwK
KyBSS19HQVRFKEhDTEtfU0ZDLCAiaGNsa19zZmMiLCAiaGNsa19wZXJpIiwgOSwgMTApLAorIFJL
X0dBVEUoSENMS19PVEcsICJoY2xrX290ZyIsICJoY2xrX3BlcmkiLCA5LCAxMSksCisgUktfR0FU
RShIQ0xLX0hPU1QsICJoY2xrX2hvc3QiLCAiaGNsa19wZXJpIiwgOSwgMTIpLAorIFJLX0dBVEUo
SENMS19IT1NUX0FSQiwgImhjbGtfaG9zdF9hcmIiLCAiaGNsa19wZXJpIiwgOSwgMTMpLAorIFJL
X0dBVEUoMCwgInBjbGtfcGVyaV9uaXUiLCAicGNsa19wZXJpIiwgOSwgMTQpLAorIFJLX0dBVEUo
UENMS19NQUMsICJwY2xrX21hYyIsICJwY2xrX3BlcmkiLCA5LCAxNSksCisgUktfR0FURSgwLCAi
aGNsa19hdWRpb19uaXUiLCAiaGNsa19hdWRpbyIsIDE0LCAwKSwKKyBSS19HQVRFKEhDTEtfUERN
LCAiaGNsa19wZG0iLCAiaGNsa19hdWRpbyIsIDE0LCAxKSwKKyBSS19HQVRFKEhDTEtfU1BESUZU
WCwgImhjbGtfc3BkaWZ0eCIsICJoY2xrX2F1ZGlvIiwgMTQsIDIpLAorIFJLX0dBVEUoSENMS19T
UERJRlJYLCAiaGNsa19zcGRpZnJ4IiwgImhjbGtfYXVkaW8iLCAxNCwgMyksCisgUktfR0FURShI
Q0xLX0kyUzBfOENILCAiaGNsa19pMnMwXzhjaCIsICJoY2xrX2F1ZGlvIiwgMTQsIDQpLAorIFJL
X0dBVEUoSENMS19JMlMxXzhDSCwgImhjbGtfaTJzMV84Y2giLCAiaGNsa19hdWRpbyIsIDE0LCA1
KSwKKyBSS19HQVRFKEhDTEtfSTJTMl84Q0gsICJoY2xrX2kyczJfOGNoIiwgImhjbGtfYXVkaW8i
LCAxNCwgNiksCisgUktfR0FURShIQ0xLX0kyUzNfOENILCAiaGNsa19pMnMzXzhjaCIsICJoY2xr
X2F1ZGlvIiwgMTQsIDcpLAorIFJLX0dBVEUoSENMS19JMlMwXzJDSCwgImhjbGtfaTJzMF8yY2gi
LCAiaGNsa19hdWRpbyIsIDE0LCA4KSwKKyBSS19HQVRFKEhDTEtfSTJTMV8yQ0gsICJoY2xrX2ky
czFfMmNoIiwgImhjbGtfYXVkaW8iLCAxNCwgOSksCisgUktfR0FURShIQ0xLX1ZBRCwgImhjbGtf
dmFkIiwgImhjbGtfYXVkaW8iLCAxNCwgMTApLAorIFJLX0dBVEUoMCwgInBjbGtfYXVkaW9fbml1
IiwgInBjbGtfYXVkaW8iLCAxNCwgMTEpLAorIFJLX0dBVEUoUENMS19BQ09ERUMsICJwY2xrX2Fj
b2RlYyIsICJwY2xrX2F1ZGlvIiwgMTQsIDEyKSwKKyBSS19HQVRFKDAsICJhY2xrX2J1c19uaXUi
LCAiYWNsa19idXMiLCA1LCAwKSwKKyBSS19HQVRFKDAsICJhY2xrX2ludG1lbSIsICJhY2xrX2J1
cyIsIDUsIDEpLAorIFJLX0dBVEUoQUNMS19DUllQVE8sICJhY2xrX2NyeXB0byIsICJhY2xrX2J1
cyIsIDUsIDIpLAorIFJLX0dBVEUoQUNMS19WT1AsICJhY2xrX3ZvcCIsICJhY2xrX2J1cyIsIDUs
IDMpLAorIFJLX0dBVEUoMCwgImFjbGtfZ2ljIiwgImFjbGtfYnVzIiwgNSwgNCksCisgUktfR0FU
RSgwLCAiaGNsa19idXNfbml1IiwgImhjbGtfYnVzIiwgNSwgNSksCisgUktfR0FURSgwLCAiaGNs
a19yb20iLCAiaGNsa19idXMiLCA1LCA2KSwKKyBSS19HQVRFKEhDTEtfQ1JZUFRPLCAiaGNsa19j
cnlwdG8iLCAiaGNsa19idXMiLCA1LCA3KSwKKyBSS19HQVRFKEhDTEtfVk9QLCAiaGNsa192b3Ai
LCAiaGNsa19idXMiLCA1LCA4KSwKKyBSS19HQVRFKDAsICJwY2xrX2J1c19uaXUiLCAicGNsa19i
dXMiLCA1LCA5KSwKKyBSS19HQVRFKFBDTEtfVUFSVDAsICJwY2xrX3VhcnQwIiwgInBjbGtfYnVz
IiwgNSwgMTApLAorIFJLX0dBVEUoUENMS19VQVJUMSwgInBjbGtfdWFydDEiLCAicGNsa19idXMi
LCA1LCAxMSksCisgUktfR0FURShQQ0xLX1VBUlQyLCAicGNsa191YXJ0MiIsICJwY2xrX2J1cyIs
IDUsIDEyKSwKKyBSS19HQVRFKFBDTEtfVUFSVDMsICJwY2xrX3VhcnQzIiwgInBjbGtfYnVzIiwg
NSwgMTMpLAorIFJLX0dBVEUoUENMS19VQVJUNCwgInBjbGtfdWFydDQiLCAicGNsa19idXMiLCA1
LCAxNCksCisgUktfR0FURShQQ0xLX0kyQzAsICJwY2xrX2kyYzAiLCAicGNsa19idXMiLCA1LCAx
NSksCisgUktfR0FURShQQ0xLX0kyQzEsICJwY2xrX2kyYzEiLCAicGNsa19idXMiLCA2LCAwKSwK
KyBSS19HQVRFKFBDTEtfSTJDMiwgInBjbGtfaTJjMiIsICJwY2xrX2J1cyIsIDYsIDEpLAorIFJL
X0dBVEUoUENMS19JMkMzLCAicGNsa19pMmMzIiwgInBjbGtfYnVzIiwgNiwgMiksCisgUktfR0FU
RShQQ0xLX1BXTTAsICJwY2xrX3B3bTAiLCAicGNsa19idXMiLCA2LCAzKSwKKyBSS19HQVRFKFBD
TEtfU1BJMCwgInBjbGtfc3BpMCIsICJwY2xrX2J1cyIsIDYsIDQpLAorIFJLX0dBVEUoUENMS19T
UEkxLCAicGNsa19zcGkxIiwgInBjbGtfYnVzIiwgNiwgNSksCisgUktfR0FURShQQ0xLX1NQSTIs
ICJwY2xrX3NwaTIiLCAicGNsa19idXMiLCA2LCA2KSwKKyBSS19HQVRFKFBDTEtfU0FSQURDLCAi
cGNsa19zYXJhZGMiLCAicGNsa19idXMiLCA2LCA3KSwKKyBSS19HQVRFKFBDTEtfVFNBREMsICJw
Y2xrX3RzYWRjIiwgInBjbGtfYnVzIiwgNiwgOCksCisgUktfR0FURShQQ0xLX1RJTUVSLCAicGNs
a190aW1lciIsICJwY2xrX2J1cyIsIDYsIDkpLAorIFJLX0dBVEUoUENMS19PVFBfTlMsICJwY2xr
X290cF9ucyIsICJwY2xrX2J1cyIsIDYsIDEwKSwKKyBSS19HQVRFKFBDTEtfR1BJTzAsICJwY2xr
X2dwaW8wIiwgInBjbGtfYnVzIiwgNiwgMTIpLAorIFJLX0dBVEUoUENMS19HUElPMSwgInBjbGtf
Z3BpbzEiLCAicGNsa19idXMiLCA2LCAxMyksCisgUktfR0FURShQQ0xLX0dQSU8yLCAicGNsa19n
cGlvMiIsICJwY2xrX2J1cyIsIDYsIDE0KSwKKyBSS19HQVRFKFBDTEtfR1BJTzMsICJwY2xrX2dw
aW8zIiwgInBjbGtfYnVzIiwgNiwgMTUpLAorIFJLX0dBVEUoUENMS19HUElPNCwgInBjbGtfZ3Bp
bzQiLCAicGNsa19idXMiLCA3LCAwKSwKKyBSS19HQVRFKFBDTEtfU0dSRiwgInBjbGtfc2dyZiIs
ICJwY2xrX2J1cyIsIDcsIDEpLAorIFJLX0dBVEUoUENMS19HUkYsICJwY2xrX2dyZiIsICJwY2xr
X2J1cyIsIDcsIDIpLAorIFJLX0dBVEUoUENMS19VU0JTRF9ERVQsICJwY2xrX3VzYnNkX2RldCIs
ICJwY2xrX2J1cyIsIDcsIDMpLAorIFJLX0dBVEUoUENMS19ERFJfVVBDVEwsICJwY2xrX2Rkcl91
cGN0bCIsICJwY2xrX2J1cyIsIDcsIDQpLAorIFJLX0dBVEUoUENMS19ERFJfTU9OLCAicGNsa19k
ZHJfbW9uIiwgInBjbGtfYnVzIiwgNywgNSksCisgUktfR0FURShQQ0xLX0REUlBIWSwgInBjbGtf
ZGRycGh5IiwgInBjbGtfYnVzIiwgNywgNiksCisgUktfR0FURShQQ0xLX0REUl9TVERCWSwgInBj
bGtfZGRyX3N0ZGJ5IiwgInBjbGtfYnVzIiwgNywgNyksCisgUktfR0FURShQQ0xLX1VTQl9HUkYs
ICJwY2xrX3VzYl9ncmYiLCAicGNsa19idXMiLCA3LCA4KSwKKyBSS19HQVRFKFBDTEtfQ1JVLCAi
cGNsa19jcnUiLCAicGNsa19idXMiLCA3LCA5KSwKKyBSS19HQVRFKFBDTEtfT1RQX1BIWSwgInBj
bGtfb3RwX3BoeSIsICJwY2xrX2J1cyIsIDcsIDEwKSwKKyBSS19HQVRFKFBDTEtfQ1BVX0JPT1NU
LCAicGNsa19jcHVfYm9vc3QiLCAicGNsa19idXMiLCA3LCAxMSksCisgUktfR0FURShQQ0xLX1BX
TTEsICJwY2xrX3B3bTEiLCAicGNsa19idXMiLCA3LCAxMiksCisgUktfR0FURShQQ0xLX1BXTTIs
ICJwY2xrX3B3bTIiLCAicGNsa19idXMiLCA3LCAxMyksCisgUktfR0FURShQQ0xLX0NBTiwgInBj
bGtfY2FuIiwgInBjbGtfYnVzIiwgNywgMTQpLAorIFJLX0dBVEUoUENMS19PV0lSRSwgInBjbGtf
b3dpcmUiLCAicGNsa19idXMiLCA3LCAxNSksCit9OworCisKK3N0YXRpYyBpbnQKK3JrMzMwOF9j
cnVfcHJvYmUoZGV2aWNlX3QgZGV2KQoreworCisJaWYgKCFvZndfYnVzX3N0YXR1c19va2F5KGRl
dikpCisJCXJldHVybiAoRU5YSU8pOworCisJaWYgKG9md19idXNfaXNfY29tcGF0aWJsZShkZXYs
ICJyb2NrY2hpcCxyazMzMDgtY3J1IikpIHsKKwkJZGV2aWNlX3NldF9kZXNjKGRldiwgIlJvY2tj
aGlwIFJLMzMwOCBDbG9jayAmIFJlc2V0IFVuaXQiKTsKKwkJcmV0dXJuIChCVVNfUFJPQkVfREVG
QVVMVCk7CisJfQorCXJldHVybiAoRU5YSU8pOworfQorCitzdGF0aWMgaW50CityazMzMDhfY3J1
X2F0dGFjaChkZXZpY2VfdCBkZXYpCit7CisJc3RydWN0IHJrX2NydV9zb2Z0YyAqc2M7CisKKwlz
YyA9IGRldmljZV9nZXRfc29mdGMoZGV2KTsKKwlzYy0+ZGV2ID0gZGV2OworCXNjLT5jbGtzID0g
cmszMzA4X2Nsa3M7CisJc2MtPm5jbGtzID0gbml0ZW1zKHJrMzMwOF9jbGtzKTsKKwlzYy0+Z2F0
ZXMgPSByazMzMDhfZ2F0ZXM7CisJc2MtPm5nYXRlcyA9IG5pdGVtcyhyazMzMDhfZ2F0ZXMpOwor
CXNjLT5yZXNldF9vZmZzZXQgPSAweDQwMDsKKwlzYy0+cmVzZXRfbnVtID0gNDc4OworCisJcmV0
dXJuIChya19jcnVfYXR0YWNoKGRldikpOworfQorCitzdGF0aWMgZGV2aWNlX21ldGhvZF90IG1l
dGhvZHNbXSA9IHsKKwkvKiBEZXZpY2UgaW50ZXJmYWNlICovCisJREVWTUVUSE9EKGRldmljZV9w
cm9iZSwJCXJrMzMwOF9jcnVfcHJvYmUpLAorCURFVk1FVEhPRChkZXZpY2VfYXR0YWNoLAlyazMz
MDhfY3J1X2F0dGFjaCksCisKKwlERVZNRVRIT0RfRU5ECit9OworCitERUZJTkVfQ0xBU1NfMShy
azMzMDhfY3J1LCByazMzMDhfY3J1X2RyaXZlciwgbWV0aG9kcywKKyAgICBzaXplb2Yoc3RydWN0
IHJrX2NydV9zb2Z0YyksIHJrX2NydV9kcml2ZXIpOworCitFQVJMWV9EUklWRVJfTU9EVUxFKHJr
MzMwOF9jcnUsIHNpbXBsZWJ1cywgcmszMzA4X2NydV9kcml2ZXIsCisgICAgMCwgMCwgQlVTX1BB
U1NfQlVTICsgQlVTX1BBU1NfT1JERVJfTUlERExFKTsKZGlmZiAtLWdpdCBhL3N5cy9hcm02NC9j
b25mL3N0ZC5yb2NrY2hpcCBiL3N5cy9hcm02NC9jb25mL3N0ZC5yb2NrY2hpcAotLS0gYS9zeXMv
YXJtNjQvY29uZi9zdGQucm9ja2NoaXAKKysrIGIvc3lzL2FybTY0L2NvbmYvc3RkLnJvY2tjaGlw
CkBAIC02LDYgKzYsOCBAQAogb3B0aW9ucyAJU09DX1JPQ0tDSElQX1JLMzMyOAogb3B0aW9ucyAJ
U09DX1JPQ0tDSElQX1JLMzM5OQogb3B0aW9ucyAJU09DX1JPQ0tDSElQX1JLMzU2OAorb3B0aW9u
cyAgICAgICAgIFNPQ19ST0NLQ0hJUF9SSzMzMDgKKwogCiAjIEdQSU8gLyBQSU5DVFJMCiBkZXZp
Y2UJCWR3Z3BpbwkJCSMgU3lub3BzeXMgRGVzaWduV2FyZSBBUEIgR1BJTyBDb250cm9sbGVyCgo=


--b1_2bc950834f67f1a6052aa5beb181610b--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2bc950834f67f1a6052aa5beb181610b>