[PATCH] maint: fix 'make syntax-check' errors

Eric Blake via M4-patches <[email protected]> Thu, 3 Apr 2025 19:56:11 -0500
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
KiBjZmcgKGluZGVudF9hcmdzKTogSW5mb3JtIGluZGVudCBvZiBvdXIgbm8tVEFCIHBvbGljeS4K
KiBzcmMvKjogUnVuICdtYWtlIGluZGVudCcuCiogc3JjL2J1aWx0aW4uYyAoZGVmaW5lX3VzZXJf
bWFjcm8pOiBUb3VjaCB1cCBvZGQgc3BsaXQgaW4gXygpCmJ5IHJlZHVjaW5nIGEgbGF5ZXIgb2Yg
aW5kZW50YXRpb24uCiogc3JjL3N5bXRhYi5jIChzdHJ1Y3QgcHJvZmlsZSk6IFJlZm9ybWF0IGNv
bW1lbnQgdG8gYXZvaWQKbG9uZyBsaW5lIGZyb20gaW5kZW50LgoqIHNyYy9pbnB1dC5jIChuZXh0
X2NoYXJfMSk6IExpa2V3aXNlLgoqIHNyYy9tNC5jIChsb25nX29wdGlvbnMpOiBMaWtld2lzZS4K
KGluY2x1ZGVzKTogUHJlZmVyIDxlcnJvci5oPiBvdmVyICJlcnJvci5oIi4KKiBzcmMvbTQuaDog
TGlrZXdpc2UgZm9yIDxhc3NlcnQuaD4uCihtNF9lcnJvciwgbTRfcGxhY2Vob2xkZXIpOiBXb3Jr
IGFyb3VuZCBpbmRlbnQncyBpbmFiaWxpdHkgdG8KZ3JvayBBVFRSSUJVVEVfQ09MRC4KKiBNYWtl
ZmlsZS5hbSAoRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUyk6IFJlbmFtZSB0bwpBTV9ESVNUQ0hF
Q0tfQ09ORklHVVJFX0ZMQUdTLgotLS0KClB1c2hpbmcgdGhpcyBvbmUsIHRoZW4gcmViYXNpbmcg
dGhlIGV2YWwgcGF0Y2hlcyBvbiB0b3AuICBJdCBhbHNvCnJlc3VsdGVkIGluIGEgYnVnLXJlcG9y
dCBhZ2FpbnN0IEdOVSBpbmRlbnQ6CgpodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9odG1s
L2J1Zy1pbmRlbnQvMjAyNS0wNC9tc2cwMDAwMC5odG1sCgogTWFrZWZpbGUuYW0gICB8ICAgMiAr
LQogY2ZnLm1rICAgICAgICB8ICAgMSArCiBzcmMvYnVpbHRpbi5jIHwgMjI4ICsrKysrKysrKysr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvZGVidWcuYyAgIHwg
IDE1ICsrLS0KIHNyYy9ldmFsLmMgICAgfCAgOTIgKysrKysrKysrKy0tLS0tLS0tLS0KIHNyYy9m
b3JtYXQuYyAgfCAgNTggKysrKysrLS0tLS0tLQogc3JjL2ZyZWV6ZS5jICB8ICAgNSArLQogc3Jj
L2lucHV0LmMgICB8ICA4NiArKysrKysrKystLS0tLS0tLS0tCiBzcmMvbTQuYyAgICAgIHwgIDUy
ICsrKysrKy0tLS0tLQogc3JjL200LmggICAgICB8ICA4MiArKysrKysrKysrLS0tLS0tLS0KIHNy
Yy9tYWNyby5jICAgfCAgMTQgKystLQogc3JjL291dHB1dC5jICB8ICA3NyArKysrKysrKysrKy0t
LS0tLQogc3JjL3BhdGguYyAgICB8ICAxMCArLS0KIHNyYy9zeW10YWIuYyAgfCAgMzcgKysrKy0t
LS0KIDE0IGZpbGVzIGNoYW5nZWQsIDQwNiBpbnNlcnRpb25zKCspLCAzNTMgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQppbmRleCAzZTI3ZTY3ZC4u
OGQ3NmIyOWQgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0z
NSw3ICszNSw3IEBAIE1BSU5UQUlORVJDTEVBTkZJTEVTID0gSU5TVEFMTCBNYWtlZmlsZS5pbiBh
Y2xvY2FsLm00IFwKIEFDTE9DQUxfQU1GTEFHUyA9IC1JIG00CiAjIyBFbm91Z2ggdXNlcnMgaW5z
dGFsbCBHTlUgTTQgYXMgZ200IHRoYXQgd2UgbWFrZSBzdXJlICdtYWtlIGluc3RhbGxjaGVjaycK
ICMjIHdpbGwgaGFuZGxlIHRoYXQsIHByaW9yIHRvIG1ha2luZyBhIHJlbGVhc2UuCi1ESVNUQ0hF
Q0tfQ09ORklHVVJFX0ZMQUdTID0gLS1lbmFibGUtY2hhbmdld29yZCAtLXByb2dyYW0tcHJlZml4
PWcgXAorQU1fRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUyA9IC0tZW5hYmxlLWNoYW5nZXdvcmQg
LS1wcm9ncmFtLXByZWZpeD1nIFwKIAktLWVuYWJsZS1nY2Mtd2FybmluZ3MgLS1lbmFibGUtc2ls
ZW50LXJ1bGVzIC0tZW5hYmxlLWN4eAoKICMgR2VuZXJhdGUgdGhlIENoYW5nZUxvZyBmcm9tIGdp
dCBoaXN0b3J5LgpkaWZmIC0tZ2l0IGEvY2ZnLm1rIGIvY2ZnLm1rCmluZGV4IGYwNGY1N2JhLi42
Y2RmYzNlOSAxMDA2NDQKLS0tIGEvY2ZnLm1rCisrKyBiL2NmZy5tawpAQCAtNDQsNiArNDQsNyBA
QCBzY19wcm9oaWJpdF90YWJfYmFzZWRfaW5kZW50YXRpb246CiAgQHJlPSdeICogICAgJyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIG1zZz0nVEFCIGlu
IGluZGVudGF0aW9uOyB1c2Ugb25seSBzcGFjZXMnICAgICAgICAgICAgICAgICAgIFwKICAgICQo
X3Byb2hpYml0X3JlZ2V4cCkKK2luZGVudF9hcmdzID0gLS1pZ25vcmUtcHJvZmlsZSAtLXByZXBy
b2Nlc3Nvci1pbmRlbnRhdGlvbiAxIC0tbm8tdGFicwoKICMgTGlzdCBhbGwgc3ludGF4LWNoZWNr
IGV4ZW1wdGlvbnM6CiBleGNsdWRlX2ZpbGVfbmFtZV9yZWdleHAtLXNjX3Byb2hpYml0X3RhYl9i
YXNlZF9pbmRlbnRhdGlvbiA9IFwKZGlmZiAtLWdpdCBhL3NyYy9idWlsdGluLmMgYi9zcmMvYnVp
bHRpbi5jCmluZGV4IGVmZDUxZDllLi4yZDRlNDAyZSAxMDA2NDQKLS0tIGEvc3JjL2J1aWx0aW4u
YworKysgYi9zcmMvYnVpbHRpbi5jCkBAIC05MCw5MSArOTAsODkgQEAgREVDTEFSRSAobTRfdW5k
aXZlcnQpOwoKICN1bmRlZiBERUNMQVJFCgotc3RhdGljIGJ1aWx0aW4gY29uc3QgYnVpbHRpbl90
YWJbXSA9Ci17CitzdGF0aWMgYnVpbHRpbiBjb25zdCBidWlsdGluX3RhYltdID0gewoKICAgLyog
bmFtZSAgICAgICAgICAgICAgIEdOVWV4dCAgbWFjcm9zICBibGluZCAgIGZ1bmN0aW9uICovCgot
ICB7ICJfX2ZpbGVfXyIsICAgICAgICAgdHJ1ZSwgICBmYWxzZSwgIGZhbHNlLCAgbTRfX19maWxl
X18gfSwKLSAgeyAiX19saW5lX18iLCAgICAgICAgIHRydWUsICAgZmFsc2UsICBmYWxzZSwgIG00
X19fbGluZV9fIH0sCi0gIHsgIl9fcHJvZ3JhbV9fIiwgICAgICB0cnVlLCAgIGZhbHNlLCAgZmFs
c2UsICBtNF9fX3Byb2dyYW1fXyB9LAotICB7ICJidWlsdGluIiwgICAgICAgICAgdHJ1ZSwgICB0
cnVlLCAgIHRydWUsICAgbTRfYnVpbHRpbiB9LAotICB7ICJjaGFuZ2Vjb20iLCAgICAgICAgZmFs
c2UsICBmYWxzZSwgIGZhbHNlLCAgbTRfY2hhbmdlY29tIH0sCi0gIHsgImNoYW5nZXF1b3RlIiwg
ICAgICBmYWxzZSwgIGZhbHNlLCAgZmFsc2UsICBtNF9jaGFuZ2VxdW90ZSB9LAorICB7Il9fZmls
ZV9fIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBtNF9fX2ZpbGVfX30sCisgIHsiX19saW5lX18iLCB0
cnVlLCBmYWxzZSwgZmFsc2UsIG00X19fbGluZV9ffSwKKyAgeyJfX3Byb2dyYW1fXyIsIHRydWUs
IGZhbHNlLCBmYWxzZSwgbTRfX19wcm9ncmFtX199LAorICB7ImJ1aWx0aW4iLCB0cnVlLCB0cnVl
LCB0cnVlLCBtNF9idWlsdGlufSwKKyAgeyJjaGFuZ2Vjb20iLCBmYWxzZSwgZmFsc2UsIGZhbHNl
LCBtNF9jaGFuZ2Vjb219LAorICB7ImNoYW5nZXF1b3RlIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg
bTRfY2hhbmdlcXVvdGV9LAogI2lmZGVmIEVOQUJMRV9DSEFOR0VXT1JECi0gIHsgImNoYW5nZXdv
cmQiLCAgICAgICB0cnVlLCAgIGZhbHNlLCAgdHJ1ZSwgICBtNF9jaGFuZ2V3b3JkIH0sCisgIHsi
Y2hhbmdld29yZCIsIHRydWUsIGZhbHNlLCB0cnVlLCBtNF9jaGFuZ2V3b3JkfSwKICNlbmRpZgot
ICB7ICJkZWJ1Z21vZGUiLCAgICAgICAgdHJ1ZSwgICBmYWxzZSwgIGZhbHNlLCAgbTRfZGVidWdt
b2RlIH0sCi0gIHsgImRlYnVnZmlsZSIsICAgICAgICB0cnVlLCAgIGZhbHNlLCAgZmFsc2UsICBt
NF9kZWJ1Z2ZpbGUgfSwKLSAgeyAiZGVjciIsICAgICAgICAgICAgIGZhbHNlLCAgZmFsc2UsICB0
cnVlLCAgIG00X2RlY3IgfSwKLSAgeyAiZGVmaW5lIiwgICAgICAgICAgIGZhbHNlLCAgdHJ1ZSwg
ICB0cnVlLCAgIG00X2RlZmluZSB9LAotICB7ICJkZWZuIiwgICAgICAgICAgICAgZmFsc2UsICBm
YWxzZSwgIHRydWUsICAgbTRfZGVmbiB9LAotICB7ICJkaXZlcnQiLCAgICAgICAgICAgZmFsc2Us
ICBmYWxzZSwgIGZhbHNlLCAgbTRfZGl2ZXJ0IH0sCi0gIHsgImRpdm51bSIsICAgICAgICAgICBm
YWxzZSwgIGZhbHNlLCAgZmFsc2UsICBtNF9kaXZudW0gfSwKLSAgeyAiZG5sIiwgICAgICAgICAg
ICAgIGZhbHNlLCAgZmFsc2UsICBmYWxzZSwgIG00X2RubCB9LAotICB7ICJkdW1wZGVmIiwgICAg
ICAgICAgZmFsc2UsICBmYWxzZSwgIGZhbHNlLCAgbTRfZHVtcGRlZiB9LAotICB7ICJlcnJwcmlu
dCIsICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAgbTRfZXJycHJpbnQgfSwKLSAgeyAi
ZXN5c2NtZCIsICAgICAgICAgIHRydWUsICAgZmFsc2UsICB0cnVlLCAgIG00X2VzeXNjbWQgfSwK
LSAgeyAiZXZhbCIsICAgICAgICAgICAgIGZhbHNlLCAgZmFsc2UsICB0cnVlLCAgIG00X2V2YWwg
fSwKLSAgeyAiZm9ybWF0IiwgICAgICAgICAgIHRydWUsICAgZmFsc2UsICB0cnVlLCAgIG00X2Zv
cm1hdCB9LAotICB7ICJpZmRlZiIsICAgICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAg
bTRfaWZkZWYgfSwKLSAgeyAiaWZlbHNlIiwgICAgICAgICAgIGZhbHNlLCAgZmFsc2UsICB0cnVl
LCAgIG00X2lmZWxzZSB9LAotICB7ICJpbmNsdWRlIiwgICAgICAgICAgZmFsc2UsICBmYWxzZSwg
IHRydWUsICAgbTRfaW5jbHVkZSB9LAotICB7ICJpbmNyIiwgICAgICAgICAgICAgZmFsc2UsICBm
YWxzZSwgIHRydWUsICAgbTRfaW5jciB9LAotICB7ICJpbmRleCIsICAgICAgICAgICAgZmFsc2Us
ICBmYWxzZSwgIHRydWUsICAgbTRfaW5kZXggfSwKLSAgeyAiaW5kaXIiLCAgICAgICAgICAgIHRy
dWUsICAgdHJ1ZSwgICB0cnVlLCAgIG00X2luZGlyIH0sCi0gIHsgImxlbiIsICAgICAgICAgICAg
ICBmYWxzZSwgIGZhbHNlLCAgdHJ1ZSwgICBtNF9sZW4gfSwKLSAgeyAibTRleGl0IiwgICAgICAg
ICAgIGZhbHNlLCAgZmFsc2UsICBmYWxzZSwgIG00X200ZXhpdCB9LAotICB7ICJtNHdyYXAiLCAg
ICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAgbTRfbTR3cmFwIH0sCi0gIHsgIm1ha2V0
ZW1wIiwgICAgICAgICBmYWxzZSwgIGZhbHNlLCAgdHJ1ZSwgICBtNF9tYWtldGVtcCB9LAotICB7
ICJta3N0ZW1wIiwgICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAgbTRfbWtzdGVtcCB9
LAotICB7ICJwYXRzdWJzdCIsICAgICAgICAgdHJ1ZSwgICBmYWxzZSwgIHRydWUsICAgbTRfcGF0
c3Vic3QgfSwKLSAgeyAicG9wZGVmIiwgICAgICAgICAgIGZhbHNlLCAgZmFsc2UsICB0cnVlLCAg
IG00X3BvcGRlZiB9LAotICB7ICJwdXNoZGVmIiwgICAgICAgICAgZmFsc2UsICB0cnVlLCAgIHRy
dWUsICAgbTRfcHVzaGRlZiB9LAotICB7ICJyZWdleHAiLCAgICAgICAgICAgdHJ1ZSwgICBmYWxz
ZSwgIHRydWUsICAgbTRfcmVnZXhwIH0sCi0gIHsgInNoaWZ0IiwgICAgICAgICAgICBmYWxzZSwg
IGZhbHNlLCAgdHJ1ZSwgICBtNF9zaGlmdCB9LAotICB7ICJzaW5jbHVkZSIsICAgICAgICAgZmFs
c2UsICBmYWxzZSwgIHRydWUsICAgbTRfc2luY2x1ZGUgfSwKLSAgeyAic3Vic3RyIiwgICAgICAg
ICAgIGZhbHNlLCAgZmFsc2UsICB0cnVlLCAgIG00X3N1YnN0ciB9LAotICB7ICJzeXNjbWQiLCAg
ICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRydWUsICAgbTRfc3lzY21kIH0sCi0gIHsgInN5c3Zh
bCIsICAgICAgICAgICBmYWxzZSwgIGZhbHNlLCAgZmFsc2UsICBtNF9zeXN2YWwgfSwKLSAgeyAi
dHJhY2VvZmYiLCAgICAgICAgIGZhbHNlLCAgZmFsc2UsICBmYWxzZSwgIG00X3RyYWNlb2ZmIH0s
Ci0gIHsgInRyYWNlb24iLCAgICAgICAgICBmYWxzZSwgIGZhbHNlLCAgZmFsc2UsICBtNF90cmFj
ZW9uIH0sCi0gIHsgInRyYW5zbGl0IiwgICAgICAgICBmYWxzZSwgIGZhbHNlLCAgdHJ1ZSwgICBt
NF90cmFuc2xpdCB9LAotICB7ICJ1bmRlZmluZSIsICAgICAgICAgZmFsc2UsICBmYWxzZSwgIHRy
dWUsICAgbTRfdW5kZWZpbmUgfSwKLSAgeyAidW5kaXZlcnQiLCAgICAgICAgIGZhbHNlLCAgZmFs
c2UsICBmYWxzZSwgIG00X3VuZGl2ZXJ0IH0sCisgIHsiZGVidWdtb2RlIiwgdHJ1ZSwgZmFsc2Us
IGZhbHNlLCBtNF9kZWJ1Z21vZGV9LAorICB7ImRlYnVnZmlsZSIsIHRydWUsIGZhbHNlLCBmYWxz
ZSwgbTRfZGVidWdmaWxlfSwKKyAgeyJkZWNyIiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9kZWNy
fSwKKyAgeyJkZWZpbmUiLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgbTRfZGVmaW5lfSwKKyAgeyJkZWZu
IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9kZWZufSwKKyAgeyJkaXZlcnQiLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBtNF9kaXZlcnR9LAorICB7ImRpdm51bSIsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IG00X2Rpdm51bX0sCisgIHsiZG5sIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgbTRfZG5sfSwKKyAg
eyJkdW1wZGVmIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgbTRfZHVtcGRlZn0sCisgIHsiZXJycHJp
bnQiLCBmYWxzZSwgZmFsc2UsIHRydWUsIG00X2VycnByaW50fSwKKyAgeyJlc3lzY21kIiwgdHJ1
ZSwgZmFsc2UsIHRydWUsIG00X2VzeXNjbWR9LAorICB7ImV2YWwiLCBmYWxzZSwgZmFsc2UsIHRy
dWUsIG00X2V2YWx9LAorICB7ImZvcm1hdCIsIHRydWUsIGZhbHNlLCB0cnVlLCBtNF9mb3JtYXR9
LAorICB7ImlmZGVmIiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9pZmRlZn0sCisgIHsiaWZlbHNl
IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9pZmVsc2V9LAorICB7ImluY2x1ZGUiLCBmYWxzZSwg
ZmFsc2UsIHRydWUsIG00X2luY2x1ZGV9LAorICB7ImluY3IiLCBmYWxzZSwgZmFsc2UsIHRydWUs
IG00X2luY3J9LAorICB7ImluZGV4IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9pbmRleH0sCisg
IHsiaW5kaXIiLCB0cnVlLCB0cnVlLCB0cnVlLCBtNF9pbmRpcn0sCisgIHsibGVuIiwgZmFsc2Us
IGZhbHNlLCB0cnVlLCBtNF9sZW59LAorICB7Im00ZXhpdCIsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IG00X200ZXhpdH0sCisgIHsibTR3cmFwIiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9tNHdyYXB9
LAorICB7Im1ha2V0ZW1wIiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9tYWtldGVtcH0sCisgIHsi
bWtzdGVtcCIsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgbTRfbWtzdGVtcH0sCisgIHsicGF0c3Vic3Qi
LCB0cnVlLCBmYWxzZSwgdHJ1ZSwgbTRfcGF0c3Vic3R9LAorICB7InBvcGRlZiIsIGZhbHNlLCBm
YWxzZSwgdHJ1ZSwgbTRfcG9wZGVmfSwKKyAgeyJwdXNoZGVmIiwgZmFsc2UsIHRydWUsIHRydWUs
IG00X3B1c2hkZWZ9LAorICB7InJlZ2V4cCIsIHRydWUsIGZhbHNlLCB0cnVlLCBtNF9yZWdleHB9
LAorICB7InNoaWZ0IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF9zaGlmdH0sCisgIHsic2luY2x1
ZGUiLCBmYWxzZSwgZmFsc2UsIHRydWUsIG00X3NpbmNsdWRlfSwKKyAgeyJzdWJzdHIiLCBmYWxz
ZSwgZmFsc2UsIHRydWUsIG00X3N1YnN0cn0sCisgIHsic3lzY21kIiwgZmFsc2UsIGZhbHNlLCB0
cnVlLCBtNF9zeXNjbWR9LAorICB7InN5c3ZhbCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIG00X3N5
c3ZhbH0sCisgIHsidHJhY2VvZmYiLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBtNF90cmFjZW9mZn0s
CisgIHsidHJhY2VvbiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIG00X3RyYWNlb259LAorICB7InRy
YW5zbGl0IiwgZmFsc2UsIGZhbHNlLCB0cnVlLCBtNF90cmFuc2xpdH0sCisgIHsidW5kZWZpbmUi
LCBmYWxzZSwgZmFsc2UsIHRydWUsIG00X3VuZGVmaW5lfSwKKyAgeyJ1bmRpdmVydCIsIGZhbHNl
LCBmYWxzZSwgZmFsc2UsIG00X3VuZGl2ZXJ0fSwKCi0gIHsgMCwgICAgICAgICAgICAgICAgICBm
YWxzZSwgIGZhbHNlLCAgZmFsc2UsICAwIH0sCisgIHswLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAw
fSwKCiAgIC8qIHBsYWNlaG9sZGVyIGlzIGludGVudGlvbmFsbHkgc3R1Y2sgYWZ0ZXIgdGhlIHRh
YmxlIGVuZCBkZWxpbWl0ZXIsCiAgICAgIHNvIHRoYXQgd2UgY2FuIGVhc2lseSBmaW5kIGl0LCB3
aGlsZSBub3QgdHJlYXRpbmcgaXQgYXMgYSByZWFsCiAgICAgIGJ1aWx0aW4uICAqLwotICB7ICJw
bGFjZWhvbGRlciIsICAgICAgdHJ1ZSwgICBmYWxzZSwgIGZhbHNlLCAgbTRfcGxhY2Vob2xkZXIg
fSwKKyAgeyJwbGFjZWhvbGRlciIsIHRydWUsIGZhbHNlLCBmYWxzZSwgbTRfcGxhY2Vob2xkZXJ9
LAogfTsKCi1zdGF0aWMgcHJlZGVmaW5lZCBjb25zdCBwcmVkZWZpbmVkX3RhYltdID0KLXsKK3N0
YXRpYyBwcmVkZWZpbmVkIGNvbnN0IHByZWRlZmluZWRfdGFiW10gPSB7CiAjaWYgVU5JWAotICB7
ICJ1bml4IiwgICAgICJfX3VuaXhfXyIsICAgICAiIiB9LAorICB7InVuaXgiLCAiX191bml4X18i
LCAiIn0sCiAjZW5kaWYKICNpZiBXMzJfTkFUSVZFCi0gIHsgIndpbmRvd3MiLCAgIl9fd2luZG93
c19fIiwgICIiIH0sCisgIHsid2luZG93cyIsICJfX3dpbmRvd3NfXyIsICIifSwKICNlbmRpZgog
I2lmIE9TMgotICB7ICJvczIiLCAgICAgICJfX29zMl9fIiwgICAgICAiIiB9LAorICB7Im9zMiIs
ICJfX29zMl9fIiwgIiJ9LAogI2VuZGlmCiAjaWYgIVVOSVggJiYgIVczMl9OQVRJVkUgJiYgIU9T
MgogIyB3YXJuaW5nIFBsYXRmb3JtIG1hY3JvIG5vdCBwcm92aWRlZAogI2VuZGlmCi0gIHsgTlVM
TCwgICAgICAgIl9fZ251X18iLCAgICAgICIiIH0sCisgIHtOVUxMLCAiX19nbnVfXyIsICIifSwK
Ci0gIHsgTlVMTCwgICAgICAgTlVMTCwgICAgICAgICAgIE5VTEwgfSwKKyAge05VTEwsIE5VTEws
IE5VTEx9LAogfTsKIAwKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS4KIHwgRmluZCB0aGUgYnVpbHRpbiwgd2hpY2ggbGl2ZXMgb24gQUREUi4gIHwKIGAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi1jb25zdCBidWlsdGluICogQVRU
UklCVVRFX1BVUkUKK2NvbnN0IGJ1aWx0aW4gKkFUVFJJQlVURV9QVVJFCiBmaW5kX2J1aWx0aW5f
YnlfYWRkciAoYnVpbHRpbl9mdW5jICpmdW5jKQogewogICBjb25zdCBidWlsdGluICpicDsKQEAg
LTE5Miw3ICsxOTAsNyBAQCBmaW5kX2J1aWx0aW5fYnlfYWRkciAoYnVpbHRpbl9mdW5jICpmdW5j
KQogfCBwbGFjZWhvbGRlciBidWlsdGluLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfAogYC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0qLwoKLWNvbnN0IGJ1aWx0aW4gKiBBVFRSSUJVVEVfUFVSRQorY29uc3QgYnVp
bHRpbiAqQVRUUklCVVRFX1BVUkUKIGZpbmRfYnVpbHRpbl9ieV9uYW1lIChjb25zdCBjaGFyICpu
YW1lKQogewogICBjb25zdCBidWlsdGluICpicDsKQEAgLTI1MSw3ICsyNDksNyBAQCBzZXRfbWFj
cm9fc2VxdWVuY2UgKGNvbnN0IGNoYXIgKnJlZ2V4cCkKIHsKICAgY29uc3QgY2hhciAqbXNnOwoK
LSAgaWYgKCEgcmVnZXhwKQorICBpZiAoIXJlZ2V4cCkKICAgICByZWdleHAgPSBERUZBVUxUX01B
Q1JPX1NFUVVFTkNFOwogICBlbHNlIGlmIChyZWdleHBbMF0gPT0gJ1wwJykKICAgICB7CkBAIC0y
NjEsMTEgKzI1OSwxMiBAQCBzZXRfbWFjcm9fc2VxdWVuY2UgKGNvbnN0IGNoYXIgKnJlZ2V4cCkK
CiAgIG1zZyA9IHJlX2NvbXBpbGVfcGF0dGVybiAocmVnZXhwLCBzdHJsZW4gKHJlZ2V4cCksICZt
YWNyb19zZXF1ZW5jZV9idWYpOwogICBpZiAobXNnICE9IE5VTEwpCi0gICAgbTRfZmFpbHVyZSAo
MCwgXygiLS13YXJuLW1hY3JvLXNlcXVlbmNlOiBiYWQgcmVndWxhciBleHByZXNzaW9uIGAlcyc6
ICVzIiksCisgICAgbTRfZmFpbHVyZSAoMCwKKyAgICAgICAgICAgICAgICBfKCItLXdhcm4tbWFj
cm8tc2VxdWVuY2U6IGJhZCByZWd1bGFyIGV4cHJlc3Npb24gYCVzJzogJXMiKSwKICAgICAgICAg
ICAgICAgICByZWdleHAsIG1zZyk7CiAgIHJlX3NldF9yZWdpc3RlcnMgKCZtYWNyb19zZXF1ZW5j
ZV9idWYsICZtYWNyb19zZXF1ZW5jZV9yZWdzLAotICAgICAgICAgICAgICAgICAgICBtYWNyb19z
ZXF1ZW5jZV9yZWdzLm51bV9yZWdzLAotICAgICAgICAgICAgICAgICAgICBtYWNyb19zZXF1ZW5j
ZV9yZWdzLnN0YXJ0LCBtYWNyb19zZXF1ZW5jZV9yZWdzLmVuZCk7CisgICAgICAgICAgICAgICAg
ICAgIG1hY3JvX3NlcXVlbmNlX3JlZ3MubnVtX3JlZ3MsIG1hY3JvX3NlcXVlbmNlX3JlZ3Muc3Rh
cnQsCisgICAgICAgICAgICAgICAgICAgIG1hY3JvX3NlcXVlbmNlX3JlZ3MuZW5kKTsKICAgbWFj
cm9fc2VxdWVuY2VfaW51c2UgPSB0cnVlOwogfQoKQEAgLTMwNywyMCArMzA2LDIzIEBAIGRlZmlu
ZV91c2VyX21hY3JvIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp0ZXh0LCBzeW1ib2xf
bG9va3VwIG1vZGUpCiAgICAgICB3aGlsZSAoKG9mZnNldCA9IHJlX3NlYXJjaCAoJm1hY3JvX3Nl
cXVlbmNlX2J1ZiwgZGVmbiwgbGVuLCBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGVuIC0gb2Zmc2V0LCAmbWFjcm9fc2VxdWVuY2VfcmVncykpID49IDApCiAgICAg
ICAgIHsKKyAgICAgICAgICBjaGFyIHRtcDsKKwogICAgICAgICAgIC8qIFNraXAgZW1wdHkgbWF0
Y2hlcy4gICovCiAgICAgICAgICAgaWYgKG1hY3JvX3NlcXVlbmNlX3JlZ3Muc3RhcnRbMF0gPT0g
bWFjcm9fc2VxdWVuY2VfcmVncy5lbmRbMF0pCi0gICAgICAgICAgICBvZmZzZXQrKzsKLSAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGNoYXIgdG1wOwotICAgICAg
ICAgICAgICBvZmZzZXQgPSBtYWNyb19zZXF1ZW5jZV9yZWdzLmVuZFswXTsKLSAgICAgICAgICAg
ICAgdG1wID0gZGVmbltvZmZzZXRdOwotICAgICAgICAgICAgICBkZWZuW29mZnNldF0gPSAnXDAn
OwotICAgICAgICAgICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBfKCJXYXJuaW5nOiBkZWZpbml0aW9uIG9mIGAlcycgY29udGFpbnMgc2Vx
dWVuY2UgYCVzJyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgZGVmbiArIG1hY3Jv
X3NlcXVlbmNlX3JlZ3Muc3RhcnRbMF0pKTsKLSAgICAgICAgICAgICAgZGVmbltvZmZzZXRdID0g
dG1wOworICAgICAgICAgICAgICBvZmZzZXQrKzsKKyAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICBvZmZzZXQgPSBtYWNyb19zZXF1ZW5jZV9yZWdzLmVu
ZFswXTsKKyAgICAgICAgICB0bXAgPSBkZWZuW29mZnNldF07CisgICAgICAgICAgZGVmbltvZmZz
ZXRdID0gJ1wwJzsKKyAgICAgICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCisgICAg
ICAgICAgICAgICAgICAgIF8oIldhcm5pbmc6IGRlZmluaXRpb24gb2YgYCVzJyBjb250YWlucyBz
ZXF1ZW5jZSBgJXMnIiksCisgICAgICAgICAgICAgICAgICAgIG5hbWUsIGRlZm4gKyBtYWNyb19z
ZXF1ZW5jZV9yZWdzLnN0YXJ0WzBdKSk7CisgICAgICAgICAgZGVmbltvZmZzZXRdID0gdG1wOwor
CiAgICAgICAgIH0KICAgICAgIGlmIChvZmZzZXQgPT0gLTIpCiAgICAgICAgIE00RVJST1IgKCh3
YXJuaW5nX3N0YXR1cywgMCwKQEAgLTYwMCw3ICs2MDIsNyBAQCBtNF91bmRlZmluZSAoc3RydWN0
IG9ic3RhY2sgKm9icyBNQVlCRV9VTlVTRUQsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikK
IHN0YXRpYyB2b2lkCiBtNF9wdXNoZGVmIChzdHJ1Y3Qgb2JzdGFjayAqb2JzIE1BWUJFX1VOVVNF
RCwgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2KQogewotICBkZWZpbmVfbWFjcm8gKGFyZ2Ms
IGFyZ3YsICBTWU1CT0xfUFVTSERFRik7CisgIGRlZmluZV9tYWNybyAoYXJnYywgYXJndiwgU1lN
Qk9MX1BVU0hERUYpOwogfQoKIHN0YXRpYyB2b2lkCkBAIC03MTUsOCArNzE3LDggQEAgZHVtcF9z
eW1ib2wgKHN5bWJvbCAqc3ltLCB2b2lkICphcmcpCiBzdGF0aWMgaW50CiBkdW1wZGVmX2NtcCAo
Y29uc3Qgdm9pZCAqczEsIGNvbnN0IHZvaWQgKnMyKQogewotICByZXR1cm4gc3RyY21wIChTWU1C
T0xfTkFNRSAoKiAoc3ltYm9sICpjb25zdCAqKSBzMSksCi0gICAgICAgICAgICAgICAgIFNZTUJP
TF9OQU1FICgqIChzeW1ib2wgKmNvbnN0ICopIHMyKSk7CisgIHJldHVybiBzdHJjbXAgKFNZTUJP
TF9OQU1FICgqKHN5bWJvbCAqIGNvbnN0ICopIHMxKSwKKyAgICAgICAgICAgICAgICAgU1lNQk9M
X05BTUUgKCooc3ltYm9sICogY29uc3QgKikgczIpKTsKIH0KCiAvKi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCkBAIC03NjgsNyAr
NzcwLDggQEAgbTRfZHVtcGRlZiAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFyZ2MsIHRva2Vu
X2RhdGEgKiphcmd2KQogICAgICAgICBjYXNlIFRPS0VOX1RFWFQ6CiAgICAgICAgICAgaWYgKGRl
YnVnX2xldmVsICYgREVCVUdfVFJBQ0VfUVVPVEUpCiAgICAgICAgICAgICBERUJVR19QUklOVDMg
KCIlcyVzJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxxdW90ZS5zdHJpbmcsIFNZ
TUJPTF9URVhUIChkYXRhLmJhc2VbMF0pLCBycXVvdGUuc3RyaW5nKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgbHF1b3RlLnN0cmluZywgU1lNQk9MX1RFWFQgKGRhdGEuYmFzZVswXSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJxdW90ZS5zdHJpbmcpOwogICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIERFQlVHX1BSSU5UMSAoIiVzXG4iLCBTWU1CT0xfVEVYVCAoZGF0YS5iYXNl
WzBdKSk7CiAgICAgICAgICAgYnJlYWs7CkBAIC04MTksMTIgKzgyMiwxMSBAQCBtNF9idWlsdGlu
IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YpCiAgIG5h
bWUgPSBBUkcgKDEpOwogICBicCA9IGZpbmRfYnVpbHRpbl9ieV9uYW1lIChuYW1lKTsKICAgaWYg
KGJwLT5mdW5jID09IG00X3BsYWNlaG9sZGVyKQotICAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1
cywgMCwKLSAgICAgICAgICAgICAgXygidW5kZWZpbmVkIGJ1aWx0aW4gYCVzJyIpLCBuYW1lKSk7
CisgICAgTTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCBfKCJ1bmRlZmluZWQgYnVpbHRpbiBg
JXMnIiksIG5hbWUpKTsKICAgZWxzZQogICAgIHsKICAgICAgIGludCBpOwotICAgICAgaWYgKCEg
YnAtPmdyb2tzX21hY3JvX2FyZ3MpCisgICAgICBpZiAoIWJwLT5ncm9rc19tYWNyb19hcmdzKQog
ICAgICAgICBmb3IgKGkgPSAyOyBpIDwgYXJnYzsgaSsrKQogICAgICAgICAgIGlmIChUT0tFTl9E
QVRBX1RZUEUgKGFyZ3ZbaV0pICE9IFRPS0VOX1RFWFQpCiAgICAgICAgICAgICB7CkBAIC04NjAs
MTIgKzg2MiwxMSBAQCBtNF9pbmRpciAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFyZ2MsIHRv
a2VuX2RhdGEgKiphcmd2KQogICBuYW1lID0gQVJHICgxKTsKICAgcyA9IGxvb2t1cF9zeW1ib2wg
KG5hbWUsIFNZTUJPTF9MT09LVVApOwogICBpZiAocyA9PSBOVUxMIHx8IFNZTUJPTF9UWVBFIChz
KSA9PSBUT0tFTl9WT0lEKQotICAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwKLSAgICAg
ICAgICAgICAgXygidW5kZWZpbmVkIG1hY3JvIGAlcyciKSwgbmFtZSkpOworICAgIE00RVJST1Ig
KCh3YXJuaW5nX3N0YXR1cywgMCwgXygidW5kZWZpbmVkIG1hY3JvIGAlcyciKSwgbmFtZSkpOwog
ICBlbHNlCiAgICAgewogICAgICAgaW50IGk7Ci0gICAgICBpZiAoISBTWU1CT0xfTUFDUk9fQVJH
UyAocykpCisgICAgICBpZiAoIVNZTUJPTF9NQUNST19BUkdTIChzKSkKICAgICAgICAgZm9yIChp
ID0gMjsgaSA8IGFyZ2M7IGkrKykKICAgICAgICAgICBpZiAoVE9LRU5fREFUQV9UWVBFIChhcmd2
W2ldKSAhPSBUT0tFTl9URVhUKQogICAgICAgICAgICAgewpAQCAtODk1LDcgKzg5Niw3IEBAIG00
X2RlZm4gKHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikK
ICAgYXNzZXJ0ICgwIDwgYXJnYyk7CiAgIGZvciAoaSA9IDE7IGkgPCAodW5zaWduZWQpIGFyZ2M7
IGkrKykKICAgICB7Ci0gICAgICBjb25zdCBjaGFyICphcmcgPSBBUkcoKGludCkgaSk7CisgICAg
ICBjb25zdCBjaGFyICphcmcgPSBBUkcgKChpbnQpIGkpOwogICAgICAgcyA9IGxvb2t1cF9zeW1i
b2wgKGFyZywgU1lNQk9MX0xPT0tVUCk7CiAgICAgICBpZiAocyA9PSBOVUxMKQogICAgICAgICBj
b250aW51ZTsKQEAgLTkxNSw4ICs5MTYsNyBAQCBtNF9kZWZuIChzdHJ1Y3Qgb2JzdGFjayAqb2Jz
LCBpbnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YpCiBidWlsdGluIGAlcycgcmVxdWVzdGVkIGJ5
IGZyb3plbiBmaWxlIGlzIG5vdCBzdXBwb3J0ZWQiKSwgYXJnKSk7CiAgICAgICAgICAgZWxzZSBp
ZiAoYXJnYyAhPSAyKQogICAgICAgICAgICAgTTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLAot
ICAgICAgICAgICAgICAgICAgICAgIF8oIldhcm5pbmc6IGNhbm5vdCBjb25jYXRlbmF0ZSBidWls
dGluIGAlcyciKSwKLSAgICAgICAgICAgICAgICAgICAgICBhcmcpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICBfKCJXYXJuaW5nOiBjYW5ub3QgY29uY2F0ZW5hdGUgYnVpbHRpbiBgJXMnIiksIGFy
ZykpOwogICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHB1c2hfbWFjcm8gKGIpOwogICAgICAg
ICAgIGJyZWFrOwpAQCAtMTA5OSw4ICsxMDk5LDcgQEAgbTRfZXZhbCAoc3RydWN0IG9ic3RhY2sg
Km9icywgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2KQogICBpZiAocmFkaXggPCAxIHx8IHJh
ZGl4ID4gKGludCkgc3RybGVuIChkaWdpdHMpKQogICAgIHsKICAgICAgIE00RVJST1IgKCh3YXJu
aW5nX3N0YXR1cywgMCwKLSAgICAgICAgICAgICAgICBfKCJyYWRpeCAlZCBpbiBidWlsdGluIGAl
cycgb3V0IG9mIHJhbmdlIiksCi0gICAgICAgICAgICAgICAgcmFkaXgsIEFSRyAoMCkpKTsKKyAg
ICAgICAgICAgICAgICBfKCJyYWRpeCAlZCBpbiBidWlsdGluIGAlcycgb3V0IG9mIHJhbmdlIiks
IHJhZGl4LCBBUkcgKDApKSk7CiAgICAgICByZXR1cm47CiAgICAgfQoKQEAgLTEyOTgsMTUgKzEy
OTcsMTQgQEAgbTRfc2hpZnQgKHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tlbl9k
YXRhICoqYXJndikKIGAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgogc3RhdGljIHZvaWQKLW00X2NoYW5n
ZXF1b3RlIChzdHJ1Y3Qgb2JzdGFjayAqb2JzIE1BWUJFX1VOVVNFRCwgaW50IGFyZ2MsCi0gICAg
ICAgICAgICAgICAgdG9rZW5fZGF0YSAqKmFyZ3YpCittNF9jaGFuZ2VxdW90ZSAoc3RydWN0IG9i
c3RhY2sgKm9icyBNQVlCRV9VTlVTRUQsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikKIHsK
ICAgaWYgKGJhZF9hcmdjIChhcmd2WzBdLCBhcmdjLCAxLCAzKSkKICAgICByZXR1cm47CgogICAv
KiBFeHBsaWNpdCBOVUxMIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBlbXB0eSBhbmQgbWlzc2luZyBh
cmd1bWVudC4gICovCiAgIHNldF9xdW90ZXMgKChhcmdjID49IDIpID8gVE9LRU5fREFUQV9URVhU
IChhcmd2WzFdKSA6IE5VTEwsCi0gICAgICAgICAgICAgKGFyZ2MgPj0gMykgPyBUT0tFTl9EQVRB
X1RFWFQgKGFyZ3ZbMl0pIDogTlVMTCk7CisgICAgICAgICAgICAgIChhcmdjID49IDMpID8gVE9L
RU5fREFUQV9URVhUIChhcmd2WzJdKSA6IE5VTEwpOwogfQoKIC8qLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCkBAIC0xNDU1
LDExICsxNDUzLDExIEBAIG00X21ha2V0ZW1wIChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJn
YywgdG9rZW5fZGF0YSAqKmFyZ3YpCiAgICAgICAgICBhcmUgaW4gdHJhZGl0aW9uYWwgbW9kZS4K
CiAgICAgICAgICBGb3IgcmVmZXJlbmNlLCBTb2xhcmlzIG00IGRvZXM6Ci0gICAgICAgICAgIG1h
a2V0ZW1wKCkgLT4gYCcKLSAgICAgICAgICAgbWFrZXRlbXAoWCkgLT4gYFgnCi0gICAgICAgICAg
IG1ha2V0ZW1wKFhYKSAtPiBgWG4nLCB3aGVyZSBuIGlzIGxhc3QgZGlnaXQgb2YgcGlkCi0gICAg
ICAgICAgIG1ha2V0ZW1wKFhYWFhYWFhYKSAtPiBgWDAwbm5ubm4nLCB3aGVyZSBubm5ubiBpcyAx
Ni1iaXQgcGlkCi0gICAgICAqLworICAgICAgICAgbWFrZXRlbXAoKSAtPiBgJworICAgICAgICAg
bWFrZXRlbXAoWCkgLT4gYFgnCisgICAgICAgICBtYWtldGVtcChYWCkgLT4gYFhuJywgd2hlcmUg
biBpcyBsYXN0IGRpZ2l0IG9mIHBpZAorICAgICAgICAgbWFrZXRlbXAoWFhYWFhYWFgpIC0+IGBY
MDBubm5ubicsIHdoZXJlIG5ubm5uIGlzIDE2LWJpdCBwaWQKKyAgICAgICAqLwogICAgICAgY29u
c3QgY2hhciAqc3RyID0gQVJHICgxKTsKICAgICAgIGludCBsZW4gPSBzdHJsZW4gKHN0cik7CiAg
ICAgICBpbnQgaTsKQEAgLTE5MjMsOSArMTkyMSw5IEBAIG00X3RyYW5zbGl0IChzdHJ1Y3Qgb2Jz
dGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YpCiAgICAgIGhlbmNlIHRoZSBm
b3VuZCBtYXAuICAqLwogICBtZW1zZXQgKG1hcCwgMCwgc2l6ZW9mIG1hcCk7CiAgIG1lbXNldCAo
Zm91bmQsIDAsIHNpemVvZiBmb3VuZCk7Ci0gIGZvciAoIDsgKGNoID0gKmZyb20pICE9ICdcMCc7
IGZyb20rKykKKyAgZm9yICg7IChjaCA9ICpmcm9tKSAhPSAnXDAnOyBmcm9tKyspCiAgICAgewot
ICAgICAgaWYgKCEgZm91bmRbY2hdKQorICAgICAgaWYgKCFmb3VuZFtjaF0pCiAgICAgICAgIHsK
ICAgICAgICAgICBmb3VuZFtjaF0gPSAxOwogICAgICAgICAgIG1hcFtjaF0gPSAqdG87CkBAIC0x
OTM2LDcgKzE5MzQsNyBAQCBtNF90cmFuc2xpdCAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFy
Z2MsIHRva2VuX2RhdGEgKiphcmd2KQoKICAgZm9yIChkYXRhID0gQVJHICgxKTsgKGNoID0gKmRh
dGEpICE9ICdcMCc7IGRhdGErKykKICAgICB7Ci0gICAgICBpZiAoISBmb3VuZFtjaF0pCisgICAg
ICBpZiAoIWZvdW5kW2NoXSkKICAgICAgICAgb2JzdGFja18xZ3JvdyAob2JzLCBjaCk7CiAgICAg
ICBlbHNlIGlmIChtYXBbY2hdKQogICAgICAgICBvYnN0YWNrXzFncm93IChvYnMsIG1hcFtjaF0p
OwpAQCAtMjAwMCw4ICsxOTk4LDE1IEBAIFdhcm5pbmc6IFxcMCB3aWxsIGRpc2FwcGVhciwgdXNl
IFxcJiBpbnN0ZWFkIGluIHJlcGxhY2VtZW50cyIpKSk7CiAgICAgICAgICAgcmVwbCsrOwogICAg
ICAgICAgIGJyZWFrOwoKLSAgICAgICAgY2FzZSAnMSc6IGNhc2UgJzInOiBjYXNlICczJzogY2Fz
ZSAnNCc6IGNhc2UgJzUnOiBjYXNlICc2JzoKLSAgICAgICAgY2FzZSAnNyc6IGNhc2UgJzgnOiBj
YXNlICc5JzoKKyAgICAgICAgY2FzZSAnMSc6CisgICAgICAgIGNhc2UgJzInOgorICAgICAgICBj
YXNlICczJzoKKyAgICAgICAgY2FzZSAnNCc6CisgICAgICAgIGNhc2UgJzUnOgorICAgICAgICBj
YXNlICc2JzoKKyAgICAgICAgY2FzZSAnNyc6CisgICAgICAgIGNhc2UgJzgnOgorICAgICAgICBj
YXNlICc5JzoKICAgICAgICAgICBpbmQgPSBjaCAtPSAnMCc7CiAgICAgICAgICAgaWYgKHJlZ3Mt
Pm51bV9yZWdzIC0gMSA8PSBpbmQpCiAgICAgICAgICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0
dXMsIDAsCkBAIC0yMjA2LDggKzIyMTEsNyBAQCBtNF9wYXRzdWJzdCAoc3RydWN0IG9ic3RhY2sg
Km9icywgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2KQogYC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiB2b2lk
Ci1tNF9wbGFjZWhvbGRlciAoc3RydWN0IG9ic3RhY2sgKm9icyBNQVlCRV9VTlVTRUQsIGludCBh
cmdjLAotICAgICAgICAgICAgICAgIHRva2VuX2RhdGEgKiphcmd2KQorbTRfcGxhY2Vob2xkZXIg
KHN0cnVjdCBvYnN0YWNrICpvYnMgTUFZQkVfVU5VU0VELCBpbnQgYXJnYywgdG9rZW5fZGF0YSAq
KmFyZ3YpCiB7CiAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwgXygiXAogYnVpbHRpbiBg
JXMnIHJlcXVlc3RlZCBieSBmcm96ZW4gZmlsZSBpcyBub3Qgc3VwcG9ydGVkIiksIEFSRyAoMCkp
KTsKQEAgLTIyMzksOCArMjI0MywxNiBAQCBleHBhbmRfdXNlcl9tYWNybyAoc3RydWN0IG9ic3Rh
Y2sgKm9icywgc3ltYm9sICpzeW0sCiAgICAgICB0ZXh0ID0gZG9sbGFyOwogICAgICAgc3dpdGNo
ICgqKyt0ZXh0KQogICAgICAgICB7Ci0gICAgICAgIGNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAn
Mic6IGNhc2UgJzMnOiBjYXNlICc0JzoKLSAgICAgICAgY2FzZSAnNSc6IGNhc2UgJzYnOiBjYXNl
ICc3JzogY2FzZSAnOCc6IGNhc2UgJzknOgorICAgICAgICBjYXNlICcwJzoKKyAgICAgICAgY2Fz
ZSAnMSc6CisgICAgICAgIGNhc2UgJzInOgorICAgICAgICBjYXNlICczJzoKKyAgICAgICAgY2Fz
ZSAnNCc6CisgICAgICAgIGNhc2UgJzUnOgorICAgICAgICBjYXNlICc2JzoKKyAgICAgICAgY2Fz
ZSAnNyc6CisgICAgICAgIGNhc2UgJzgnOgorICAgICAgICBjYXNlICc5JzoKICAgICAgICAgICBp
ZiAobm9fZ251X2V4dGVuc2lvbnMpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGkgPSAq
dGV4dCsrIC0gJzAnOwpAQCAtMjI0OCwyMCArMjI2MCwyMCBAQCBleHBhbmRfdXNlcl9tYWNybyAo
c3RydWN0IG9ic3RhY2sgKm9icywgc3ltYm9sICpzeW0sCiAgICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBjX2lzZGlnaXQgKCp0ZXh0KTsgdGV4
dCsrKQotICAgICAgICAgICAgICAgIGkgPSBpKjEwICsgKCp0ZXh0IC0gJzAnKTsKKyAgICAgICAg
ICAgICAgICBpID0gaSAqIDEwICsgKCp0ZXh0IC0gJzAnKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICBpZiAoaSA8IGFyZ2MpCiAgICAgICAgICAgICBvYnN0YWNrX2dyb3cgKG9icywgVE9LRU5f
REFUQV9URVhUIChhcmd2W2ldKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuIChU
T0tFTl9EQVRBX1RFWFQgKGFyZ3ZbaV0pKSk7CiAgICAgICAgICAgYnJlYWs7CgotICAgICAgICBj
YXNlICcjJzogLyogbnVtYmVyIG9mIGFyZ3VtZW50cyAqLworICAgICAgICBjYXNlICcjJzogICAg
ICAgICAgICAgIC8qIG51bWJlciBvZiBhcmd1bWVudHMgKi8KICAgICAgICAgICBzaGlwb3V0X2lu
dCAob2JzLCBhcmdjIC0gMSk7CiAgICAgICAgICAgdGV4dCsrOwogICAgICAgICAgIGJyZWFrOwoK
LSAgICAgICAgY2FzZSAnKic6IC8qIGFsbCBhcmd1bWVudHMgKi8KLSAgICAgICAgY2FzZSAnQCc6
IC8qIC4uLiBzYW1lLCBidXQgcXVvdGVkICovCisgICAgICAgIGNhc2UgJyonOiAgICAgICAgICAg
ICAgLyogYWxsIGFyZ3VtZW50cyAqLworICAgICAgICBjYXNlICdAJzogICAgICAgICAgICAgIC8q
IC4uLiBzYW1lLCBidXQgcXVvdGVkICovCiAgICAgICAgICAgZHVtcF9hcmdzIChvYnMsIGFyZ2Ms
IGFyZ3YsICIsIiwgKnRleHQgPT0gJ0AnKTsKICAgICAgICAgICB0ZXh0Kys7CiAgICAgICAgICAg
YnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvZGVidWcuYyBiL3NyYy9kZWJ1Zy5jCmluZGV4IGE0MDE3
NjYwLi5hY2M4M2U1ZSAxMDA2NDQKLS0tIGEvc3JjL2RlYnVnLmMKKysrIGIvc3JjL2RlYnVnLmMK
QEAgLTE4Niw4ICsxODYsNyBAQCBkZWJ1Z19mbHVzaF9maWxlcyAodm9pZCkKICAgICAgdGhpcyBh
dHRlbXB0LiAgVGhlIHN0ZGlvLXNhZmVyIG1vZHVsZSBhbmQgZnJpZW5kcyBhcmUgZXNzZW50aWFs
LAogICAgICBzbyB0aGF0IGlmIHN0ZGluIHdhcyBjbG9zZWQsIHRoaXMgbHNlZWsgaXMgbm90IG9u
IHNvbWUgb3RoZXIgZmlsZQogICAgICB0aGF0IHdlIGhhdmUgc2luY2Ugb3BlbmVkLiAgKi8KLSAg
aWYgKGxzZWVrIChTVERJTl9GSUxFTk8sIDAsIFNFRUtfQ1VSKSA+PSAwCi0gICAgICAmJiBmZmx1
c2ggKHN0ZGluKSA9PSAwKQorICBpZiAobHNlZWsgKFNURElOX0ZJTEVOTywgMCwgU0VFS19DVVIp
ID49IDAgJiYgZmZsdXNoIChzdGRpbikgPT0gMCkKICAgICB7CiAgICAgICBmc2Vla28gKHN0ZGlu
LCAwLCBTRUVLX0NVUik7CiAgICAgfQpAQCAtMjI4LDEyICsyMjcsMTIgQEAgZGVidWdfbWVzc2Fn
ZV9wcmVmaXggKHZvaWQpCiB7CiAgIHhmcHJpbnRmIChkZWJ1ZywgIm00ZGVidWc6Iik7CiAgIGlm
IChjdXJyZW50X2xpbmUpCi0gIHsKLSAgICBpZiAoZGVidWdfbGV2ZWwgJiBERUJVR19UUkFDRV9G
SUxFKQotICAgICAgeGZwcmludGYgKGRlYnVnLCAiJXM6IiwgY3VycmVudF9maWxlKTsKLSAgICBp
ZiAoZGVidWdfbGV2ZWwgJiBERUJVR19UUkFDRV9MSU5FKQotICAgICAgeGZwcmludGYgKGRlYnVn
LCAiJWQ6IiwgY3VycmVudF9saW5lKTsKLSAgfQorICAgIHsKKyAgICAgIGlmIChkZWJ1Z19sZXZl
bCAmIERFQlVHX1RSQUNFX0ZJTEUpCisgICAgICAgIHhmcHJpbnRmIChkZWJ1ZywgIiVzOiIsIGN1
cnJlbnRfZmlsZSk7CisgICAgICBpZiAoZGVidWdfbGV2ZWwgJiBERUJVR19UUkFDRV9MSU5FKQor
ICAgICAgICB4ZnByaW50ZiAoZGVidWcsICIlZDoiLCBjdXJyZW50X2xpbmUpOworICAgIH0KICAg
cHV0YyAoJyAnLCBkZWJ1Zyk7CiB9CiAMCmRpZmYgLS1naXQgYS9zcmMvZXZhbC5jIGIvc3JjL2V2
YWwuYwppbmRleCA5N2VlYjNlYi4uOTAzNjI5MTggMTAwNjQ0Ci0tLSBhL3NyYy9ldmFsLmMKKysr
IGIvc3JjL2V2YWwuYwpAQCAtMjksMzcgKzI5LDM3IEBACiAvKiBFdmFsdWF0ZXMgdG9rZW4gdHlw
ZXMuICAqLwoKIHR5cGVkZWYgZW51bSBldmFsX3Rva2VuCi0gIHsKLSAgICBFUlJPUiwgQkFET1As
Ci0gICAgUExVUywgTUlOVVMsCi0gICAgRVhQT05FTlQsCi0gICAgVElNRVMsIERJVklERSwgTU9E
VUxPLAotICAgIEFTU0lHTiwgRVEsIE5PVEVRLCBHVCwgR1RFUSwgTFMsIExTRVEsCi0gICAgTFNI
SUZULCBSU0hJRlQsCi0gICAgTE5PVCwgTEFORCwgTE9SLAotICAgIE5PVCwgQU5ELCBPUiwgWE9S
LAotICAgIExFRlRQLCBSSUdIVFAsCi0gICAgTlVNQkVSLCBFT1RFWFQKLSAgfQoreworICBFUlJP
UiwgQkFET1AsCisgIFBMVVMsIE1JTlVTLAorICBFWFBPTkVOVCwKKyAgVElNRVMsIERJVklERSwg
TU9EVUxPLAorICBBU1NJR04sIEVRLCBOT1RFUSwgR1QsIEdURVEsIExTLCBMU0VRLAorICBMU0hJ
RlQsIFJTSElGVCwKKyAgTE5PVCwgTEFORCwgTE9SLAorICBOT1QsIEFORCwgT1IsIFhPUiwKKyAg
TEVGVFAsIFJJR0hUUCwKKyAgTlVNQkVSLCBFT1RFWFQKK30KIGV2YWxfdG9rZW47CgogLyogRXJy
b3IgdHlwZXMuICAqLwoKIHR5cGVkZWYgZW51bSBldmFsX2Vycm9yCi0gIHsKLSAgICBOT19FUlJP
UiwKLSAgICBESVZJREVfWkVSTywKLSAgICBNT0RVTE9fWkVSTywKLSAgICBORUdBVElWRV9FWFBP
TkVOVCwKLSAgICAvKiBBbGwgZXJyb3JzIHByaW9yIHRvIFNZTlRBWF9FUlJPUiBjYW4gYmUgaWdu
b3JlZCBpbiBhIGRlYWQKLSAgICAgICBicmFuY2ggb2YgJiYgYW5kIHx8LiAgQWxsIGVycm9ycyBh
ZnRlciBhcmUganVzdCBtb3JlIGRldGFpbHMKLSAgICAgICBhYm91dCBhIHN5bnRheCBlcnJvci4g
ICovCi0gICAgU1lOVEFYX0VSUk9SLAotICAgIE1JU1NJTkdfUklHSFQsCi0gICAgVU5LTk9XTl9J
TlBVVCwKLSAgICBFWENFU1NfSU5QVVQsCi0gICAgSU5WQUxJRF9PUEVSQVRPUgotICB9Cit7Cisg
IE5PX0VSUk9SLAorICBESVZJREVfWkVSTywKKyAgTU9EVUxPX1pFUk8sCisgIE5FR0FUSVZFX0VY
UE9ORU5ULAorICAvKiBBbGwgZXJyb3JzIHByaW9yIHRvIFNZTlRBWF9FUlJPUiBjYW4gYmUgaWdu
b3JlZCBpbiBhIGRlYWQKKyAgICAgYnJhbmNoIG9mICYmIGFuZCB8fC4gIEFsbCBlcnJvcnMgYWZ0
ZXIgYXJlIGp1c3QgbW9yZSBkZXRhaWxzCisgICAgIGFib3V0IGEgc3ludGF4IGVycm9yLiAgKi8K
KyAgU1lOVEFYX0VSUk9SLAorICBNSVNTSU5HX1JJR0hULAorICBVTktOT1dOX0lOUFVULAorICBF
WENFU1NfSU5QVVQsCisgIElOVkFMSURfT1BFUkFUT1IKK30KIGV2YWxfZXJyb3I7Cgogc3RhdGlj
IGV2YWxfZXJyb3IgbG9naWNhbF9vcl90ZXJtIChldmFsX3Rva2VuLCBpbnQzMl90ICopOwpAQCAt
MzIwLDggKzMyMCw3IEBAIGV2YWx1YXRlIChjb25zdCBjaGFyICpleHByLCBpbnQzMl90ICp2YWwp
CiAgICAgICBicmVhazsKCiAgICAgY2FzZSBTWU5UQVhfRVJST1I6Ci0gICAgICBNNEVSUk9SICgo
d2FybmluZ19zdGF0dXMsIDAsCi0gICAgICAgICAgICAgICAgXygiYmFkIGV4cHJlc3Npb24gaW4g
ZXZhbDogJXMiKSwgZXhwcikpOworICAgICAgTTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCBf
KCJiYWQgZXhwcmVzc2lvbiBpbiBldmFsOiAlcyIpLCBleHByKSk7CiAgICAgICBicmVhazsKCiAg
ICAgY2FzZSBVTktOT1dOX0lOUFVUOgpAQCAtMzM1LDI0ICszMzQsMjAgQEAgZXZhbHVhdGUgKGNv
bnN0IGNoYXIgKmV4cHIsIGludDMyX3QgKnZhbCkKICAgICAgIGJyZWFrOwoKICAgICBjYXNlIElO
VkFMSURfT1BFUkFUT1I6Ci0gICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCi0gICAg
ICAgICAgICAgICAgXygiaW52YWxpZCBvcGVyYXRvciBpbiBldmFsOiAlcyIpLCBleHByKSk7Cisg
ICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsIF8oImludmFsaWQgb3BlcmF0b3IgaW4g
ZXZhbDogJXMiKSwgZXhwcikpOwogICAgICAgcmV0Y29kZSA9IEVYSVRfRkFJTFVSRTsKICAgICAg
IGJyZWFrOwoKICAgICBjYXNlIERJVklERV9aRVJPOgotICAgICAgTTRFUlJPUiAoKHdhcm5pbmdf
c3RhdHVzLCAwLAotICAgICAgICAgICAgICAgIF8oImRpdmlkZSBieSB6ZXJvIGluIGV2YWw6ICVz
IiksIGV4cHIpKTsKKyAgICAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwgXygiZGl2aWRl
IGJ5IHplcm8gaW4gZXZhbDogJXMiKSwgZXhwcikpOwogICAgICAgYnJlYWs7CgogICAgIGNhc2Ug
TU9EVUxPX1pFUk86Ci0gICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCi0gICAgICAg
ICAgICAgICAgXygibW9kdWxvIGJ5IHplcm8gaW4gZXZhbDogJXMiKSwgZXhwcikpOworICAgICAg
TTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCBfKCJtb2R1bG8gYnkgemVybyBpbiBldmFsOiAl
cyIpLCBleHByKSk7CiAgICAgICBicmVhazsKCiAgICAgY2FzZSBORUdBVElWRV9FWFBPTkVOVDoK
LSAgICAgIE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwKLSAgICAgICAgICAgICAgICBfKCJu
ZWdhdGl2ZSBleHBvbmVudCBpbiBldmFsOiAlcyIpLCBleHByKSk7CisgICAgICBNNEVSUk9SICgo
d2FybmluZ19zdGF0dXMsIDAsIF8oIm5lZ2F0aXZlIGV4cG9uZW50IGluIGV2YWw6ICVzIiksIGV4
cHIpKTsKICAgICAgIGJyZWFrOwoKICAgICBkZWZhdWx0OgpAQCAtNDE5LDcgKzQxNCw3IEBAIGxv
Z2ljYWxfYW5kX3Rlcm0gKGV2YWxfdG9rZW4gZXQsIGludDMyX3QgKnYxKQogICAgICAgaWYgKGVy
ID09IE5PX0VSUk9SKQogICAgICAgICAqdjEgPSAqdjEgJiYgdjI7CiAgICAgICBlbHNlIGlmICgq
djEgPT0gMCAmJiBlciA8IFNZTlRBWF9FUlJPUikKLSAgICAgICAgOyAvKiB2MSBpcyBhbHJlYWR5
IDAgKi8KKyAgICAgICAgOyAgICAgICAgICAgICAgICAgICAgICAgLyogdjEgaXMgYWxyZWFkeSAw
ICovCiAgICAgICBlbHNlCiAgICAgICAgIHJldHVybiBlcjsKICAgICB9CkBAIC01MzQsMTEgKzUy
OSwxMSBAQCBlcXVhbGl0eV90ZXJtIChldmFsX3Rva2VuIGV0LCBpbnQzMl90ICp2MSkKICAgICAg
ICAgcmV0dXJuIGVyOwoKICAgICAgIGlmIChvcCA9PSBBU1NJR04pCi0gICAgICB7Ci0gICAgICAg
IE00RVJST1IgKCh3YXJuaW5nX3N0YXR1cywgMCwgXygiXAorICAgICAgICB7CisgICAgICAgICAg
TTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCBfKCJcCiBXYXJuaW5nOiByZWNvbW1lbmQgPT0s
IG5vdCA9LCBmb3IgZXF1YWxpdHkgb3BlcmF0b3IiKSkpOwotICAgICAgICBvcCA9IEVROwotICAg
ICAgfQorICAgICAgICAgIG9wID0gRVE7CisgICAgICAgIH0KICAgICAgICp2MSA9IChvcCA9PSBF
USkgPT0gKCp2MSA9PSB2Mik7CiAgICAgfQogICBpZiAob3AgPT0gRVJST1IpCkBAIC01NTgsOCAr
NTUzLDcgQEAgY21wX3Rlcm0gKGV2YWxfdG9rZW4gZXQsIGludDMyX3QgKnYxKQogICBpZiAoKGVy
ID0gc2hpZnRfdGVybSAoZXQsIHYxKSkgIT0gTk9fRVJST1IpCiAgICAgcmV0dXJuIGVyOwoKLSAg
d2hpbGUgKChvcCA9IGV2YWxfbGV4ICgmdjIpKSA9PSBHVCB8fCBvcCA9PSBHVEVRCi0gICAgICAg
ICB8fCBvcCA9PSBMUyB8fCBvcCA9PSBMU0VRKQorICB3aGlsZSAoKG9wID0gZXZhbF9sZXggKCZ2
MikpID09IEdUIHx8IG9wID09IEdURVEgfHwgb3AgPT0gTFMgfHwgb3AgPT0gTFNFUSkKICAgICB7
CgogICAgICAgZXQgPSBldmFsX2xleCAoJnYyKTsKQEAgLTY3OCw5ICs2NzIsOSBAQCBhZGRfdGVy
bSAoZXZhbF90b2tlbiBldCwgaW50MzJfdCAqdjEpCiAgICAgICAgICB1bnNpZ25lZCB0byBzaWdu
ZWQgaXMgYSBzaWxlbnQgdHdvcy1jb21wbGVtZW50CiAgICAgICAgICB3cmFwLWFyb3VuZC4gICov
CiAgICAgICBpZiAob3AgPT0gUExVUykKLSAgICAgICAgKnYxID0gKGludDMyX3QpICgodWludDMy
X3QpICp2MSArICh1aW50MzJfdCkgdjIpOworICAgICAgICAqdjEgPSAoaW50MzJfdCkgKCh1aW50
MzJfdCkgKiB2MSArICh1aW50MzJfdCkgdjIpOwogICAgICAgZWxzZQotICAgICAgICAqdjEgPSAo
aW50MzJfdCkgKCh1aW50MzJfdCkgKnYxIC0gKHVpbnQzMl90KSB2Mik7CisgICAgICAgICp2MSA9
IChpbnQzMl90KSAoKHVpbnQzMl90KSAqIHYxIC0gKHVpbnQzMl90KSB2Mik7CiAgICAgfQogICBp
ZiAob3AgPT0gRVJST1IpCiAgICAgcmV0dXJuIFVOS05PV05fSU5QVVQ7CkBAIC03MTUsNyArNzA5
LDcgQEAgbXVsdF90ZXJtIChldmFsX3Rva2VuIGV0LCBpbnQzMl90ICp2MSkKICAgICAgIHN3aXRj
aCAob3ApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBUSU1FUzoKLSAgICAgICAgICAqdjEgPSAo
aW50MzJfdCkgKCh1aW50MzJfdCkgKnYxICogKHVpbnQzMl90KSB2Mik7CisgICAgICAgICAgKnYx
ID0gKGludDMyX3QpICgodWludDMyX3QpICogdjEgKiAodWludDMyX3QpIHYyKTsKICAgICAgICAg
ICBicmVhazsKCiAgICAgICAgIGNhc2UgRElWSURFOgpAQCAtNzIzLDcgKzcxNyw3IEBAIG11bHRf
dGVybSAoZXZhbF90b2tlbiBldCwgaW50MzJfdCAqdjEpCiAgICAgICAgICAgICByZXR1cm4gRElW
SURFX1pFUk87CiAgICAgICAgICAgZWxzZSBpZiAodjIgPT0gLTEpCiAgICAgICAgICAgICAvKiBB
dm9pZCBvdmVyZmxvdywgYW5kIHRoZSB4ODYgU0lHRlBFIG9uIElOVF9NSU4gLyAtMS4gICovCi0g
ICAgICAgICAgICAqdjEgPSAoaW50MzJfdCkgLSh1aW50MzJfdCkgKnYxOworICAgICAgICAgICAg
KnYxID0gKGludDMyX3QpIC0gKHVpbnQzMl90KSAqIHYxOwogICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICp2MSAvPSB2MjsKICAgICAgICAgICBicmVhazsKQEAgLTc4MCw3ICs3NzQsNyBAQCBl
eHBfdGVybSAoZXZhbF90b2tlbiBldCwgaW50MzJfdCAqdjEpCiAgICAgICBpZiAoKnYxID09IDAg
JiYgdjIgPT0gMCkKICAgICAgICAgcmV0dXJuIERJVklERV9aRVJPOwogICAgICAgd2hpbGUgKHYy
LS0gPiAwKQotICAgICAgICByZXN1bHQgKj0gKHVpbnQzMl90KSAqdjE7CisgICAgICAgIHJlc3Vs
dCAqPSAodWludDMyX3QpICogdjE7CiAgICAgICAqdjEgPSByZXN1bHQ7CiAgICAgfQogICBpZiAo
ZXQgPT0gRVJST1IpCkBAIC04MDksNyArODAzLDcgQEAgdW5hcnlfdGVybSAoZXZhbF90b2tlbiBl
dCwgaW50MzJfdCAqdjEpCiAgICAgICAgICB1bnNpZ25lZCB0byBzaWduZWQgaXMgYSBzaWxlbnQg
dHdvcy1jb21wbGVtZW50CiAgICAgICAgICB3cmFwLWFyb3VuZC4gICovCiAgICAgICBpZiAoZXQg
PT0gTUlOVVMpCi0gICAgICAgICp2MSA9IChpbnQzMl90KSAtKHVpbnQzMl90KSAqdjE7CisgICAg
ICAgICp2MSA9IChpbnQzMl90KSAtICh1aW50MzJfdCkgKiB2MTsKICAgICAgIGVsc2UgaWYgKGV0
ID09IE5PVCkKICAgICAgICAgKnYxID0gfip2MTsKICAgICAgIGVsc2UgaWYgKGV0ID09IExOT1Qp
CmRpZmYgLS1naXQgYS9zcmMvZm9ybWF0LmMgYi9zcmMvZm9ybWF0LmMKaW5kZXggNzRlNWQ2MTQu
LjRiYTI5MmMzIDEwMDY0NAotLS0gYS9zcmMvZm9ybWF0LmMKKysrIGIvc3JjL2Zvcm1hdC5jCkBA
IC0xMjYsMjIgKzEyNiwyMyBAQCBhcmdfZG91YmxlIChjb25zdCBjaGFyICpzdHIpCiB2b2lkCiBl
eHBhbmRfZm9ybWF0IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5fZGF0YSAq
KmFyZ3YpCiB7Ci0gIGNvbnN0IGNoYXIgKmY7ICAgICAgICAgICAgICAgICAgICAgICAgLyogZm9y
bWF0IGNvbnRyb2wgc3RyaW5nICovCi0gIGNvbnN0IGNoYXIgKmZtdDsgICAgICAgICAgICAgICAg
ICAgICAgLyogcG9zaXRpb24gd2l0aGluIGYgKi8KKyAgY29uc3QgY2hhciAqZjsgICAgICAgICAg
ICAgICAgLyogZm9ybWF0IGNvbnRyb2wgc3RyaW5nICovCisgIGNvbnN0IGNoYXIgKmZtdDsgICAg
ICAgICAgICAgIC8qIHBvc2l0aW9uIHdpdGhpbiBmICovCiAgIGNoYXIgZnN0YXJ0W10gPSAiJScr
LSAwIyouKmhoZCI7ICAgICAgLyogY3VycmVudCBmb3JtYXQgc3BlYyAqLwotICBjaGFyICpwOyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBvc2l0aW9uIHdpdGhpbiBmc3RhcnQgKi8K
LSAgdW5zaWduZWQgY2hhciBjOyAgICAgICAgICAgICAgICAgICAgICAvKiBhIHNpbXBsZSBjaGFy
YWN0ZXIgKi8KKyAgY2hhciAqcDsgICAgICAgICAgICAgICAgICAgICAgLyogcG9zaXRpb24gd2l0
aGluIGZzdGFydCAqLworICB1bnNpZ25lZCBjaGFyIGM7ICAgICAgICAgICAgICAvKiBhIHNpbXBs
ZSBjaGFyYWN0ZXIgKi8KCiAgIC8qIEZsYWdzLiAgKi8KLSAgY2hhciBmbGFnczsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiBmbGFncyB0byB1c2UgaW4gZnN0YXJ0ICovCi0gIGVudW0gewot
ICAgIFRIT1VTQU5EUyAgID0gMHgwMSwgLyogJyAqLwotICAgIFBMVVMgICAgICAgID0gMHgwMiwg
LyogKyAqLwotICAgIE1JTlVTICAgICAgID0gMHgwNCwgLyogLSAqLwotICAgIFNQQUNFICAgICAg
ID0gMHgwOCwgLyogICAqLwotICAgIFpFUk8gICAgICAgID0gMHgxMCwgLyogMCAqLwotICAgIEFM
VCAgICAgICAgID0gMHgyMCwgLyogIyAqLwotICAgIERPTkUgICAgICAgID0gMHg0MCAgLyogbm8g
bW9yZSBmbGFncyAqLworICBjaGFyIGZsYWdzOyAgICAgICAgICAgICAgICAgICAvKiBmbGFncyB0
byB1c2UgaW4gZnN0YXJ0ICovCisgIGVudW0KKyAgeworICAgIFRIT1VTQU5EUyA9IDB4MDEsICAg
ICAgICAgICAvKiAnICovCisgICAgUExVUyA9IDB4MDIsICAgICAgICAgICAgICAgIC8qICsgKi8K
KyAgICBNSU5VUyA9IDB4MDQsICAgICAgICAgICAgICAgLyogLSAqLworICAgIFNQQUNFID0gMHgw
OCwgICAgICAgICAgICAgICAvKiAgICovCisgICAgWkVSTyA9IDB4MTAsICAgICAgICAgICAgICAg
IC8qIDAgKi8KKyAgICBBTFQgPSAweDIwLCAgICAgICAgICAgICAgICAgLyogIyAqLworICAgIERP
TkUgPSAweDQwICAgICAgICAgICAgICAgICAvKiBubyBtb3JlIGZsYWdzICovCiAgIH07CgogICAv
KiBQcmVjaXNpb24gc3BlY2lmaWVycy4gICovCkBAIC0xNTYsNyArMTU3LDggQEAgZXhwYW5kX2Zv
cm1hdCAoc3RydWN0IG9ic3RhY2sgKm9icywgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2KQoK
ICAgLyogQnVmZmVyIGFuZCBzdHVmZi4gICovCiAgIGNoYXIgKnN0cjsgICAgICAgICAgICAgICAg
ICAgIC8qIG1hbGxvYydkIGJ1ZmZlciBvZiBmb3JtYXR0ZWQgdGV4dCAqLwotICBlbnVtIHtDSEFS
LCBJTlQsIExPTkcsIERPVUJMRSwgU1RSfSBkYXRhdHlwZTsKKyAgZW51bQorICB7IENIQVIsIElO
VCwgTE9ORywgRE9VQkxFLCBTVFIgfSBkYXRhdHlwZTsKCiAgIGYgPSBmbXQgPSBBUkdfU1RSIChh
cmdjLCBhcmd2KTsKICAgbWVtc2V0IChvaywgMCwgc2l6ZW9mIG9rKTsKQEAgLTE3OCw3ICsxODAs
NyBAQCBleHBhbmRfZm9ybWF0IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5f
ZGF0YSAqKmFyZ3YpCiAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KCi0gICAgICBwID0g
ZnN0YXJ0ICsgMTsgLyogJSAqLworICAgICAgcCA9IGZzdGFydCArIDE7ICAgICAgICAgICAvKiAl
ICovCiAgICAgICBsZmxhZyA9IDA7CiAgICAgICBva1snYSddID0gb2tbJ0EnXSA9IG9rWydjJ10g
PSBva1snZCddID0gb2tbJ2UnXSA9IG9rWydFJ10KICAgICAgICAgPSBva1snZiddID0gb2tbJ0Yn
XSA9IG9rWydnJ10gPSBva1snRyddID0gb2tbJ2knXSA9IG9rWydvJ10KQEAgLTE5MCwzMyArMTky
LDMzIEBAIGV4cGFuZF9mb3JtYXQgKHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tl
bl9kYXRhICoqYXJndikKICAgICAgICAgewogICAgICAgICAgIHN3aXRjaCAoKmZtdCkKICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgIGNhc2UgJ1wnJzogLyogdGhvdXNhbmRzIHNlcGFyYXRvciAq
LworICAgICAgICAgICAgY2FzZSAnXCcnOiAgICAgICAgIC8qIHRob3VzYW5kcyBzZXBhcmF0b3Ig
Ki8KICAgICAgICAgICAgICAgb2tbJ2EnXSA9IG9rWydBJ10gPSBva1snYyddID0gb2tbJ2UnXSA9
IG9rWydFJ10KICAgICAgICAgICAgICAgICA9IG9rWydvJ10gPSBva1sncyddID0gb2tbJ3gnXSA9
IG9rWydYJ10gPSAwOwogICAgICAgICAgICAgICBmbGFncyB8PSBUSE9VU0FORFM7CiAgICAgICAg
ICAgICAgIGJyZWFrOwoKLSAgICAgICAgICAgIGNhc2UgJysnOiAvKiBtYW5kYXRvcnkgc2lnbiAq
LworICAgICAgICAgICAgY2FzZSAnKyc6ICAgICAgICAgIC8qIG1hbmRhdG9yeSBzaWduICovCiAg
ICAgICAgICAgICAgIG9rWydjJ10gPSBva1snbyddID0gb2tbJ3MnXSA9IG9rWyd1J10gPSBva1sn
eCddID0gb2tbJ1gnXSA9IDA7CiAgICAgICAgICAgICAgIGZsYWdzIHw9IFBMVVM7CiAgICAgICAg
ICAgICAgIGJyZWFrOwoKLSAgICAgICAgICAgIGNhc2UgJyAnOiAvKiBzcGFjZSBpbnN0ZWFkIG9m
IHBvc2l0aXZlIHNpZ24gKi8KKyAgICAgICAgICAgIGNhc2UgJyAnOiAgICAgICAgICAvKiBzcGFj
ZSBpbnN0ZWFkIG9mIHBvc2l0aXZlIHNpZ24gKi8KICAgICAgICAgICAgICAgb2tbJ2MnXSA9IG9r
WydvJ10gPSBva1sncyddID0gb2tbJ3UnXSA9IG9rWyd4J10gPSBva1snWCddID0gMDsKICAgICAg
ICAgICAgICAgZmxhZ3MgfD0gU1BBQ0U7CiAgICAgICAgICAgICAgIGJyZWFrOwoKLSAgICAgICAg
ICAgIGNhc2UgJzAnOiAvKiB6ZXJvIHBhZGRpbmcgKi8KKyAgICAgICAgICAgIGNhc2UgJzAnOiAg
ICAgICAgICAvKiB6ZXJvIHBhZGRpbmcgKi8KICAgICAgICAgICAgICAgb2tbJ2MnXSA9IG9rWydz
J10gPSAwOwogICAgICAgICAgICAgICBmbGFncyB8PSBaRVJPOwogICAgICAgICAgICAgICBicmVh
azsKCi0gICAgICAgICAgICBjYXNlICcjJzogLyogYWx0ZXJuYXRlIG91dHB1dCAqLworICAgICAg
ICAgICAgY2FzZSAnIyc6ICAgICAgICAgIC8qIGFsdGVybmF0ZSBvdXRwdXQgKi8KICAgICAgICAg
ICAgICAgb2tbJ2MnXSA9IG9rWydkJ10gPSBva1snaSddID0gb2tbJ3MnXSA9IG9rWyd1J10gPSAw
OwogICAgICAgICAgICAgICBmbGFncyB8PSBBTFQ7CiAgICAgICAgICAgICAgIGJyZWFrOwoKLSAg
ICAgICAgICAgIGNhc2UgJy0nOiAvKiBsZWZ0IGp1c3RpZmljYXRpb24gKi8KKyAgICAgICAgICAg
IGNhc2UgJy0nOiAgICAgICAgICAvKiBsZWZ0IGp1c3RpZmljYXRpb24gKi8KICAgICAgICAgICAg
ICAgZmxhZ3MgfD0gTUlOVVM7CiAgICAgICAgICAgICAgIGJyZWFrOwoKQEAgLTMxNSw3ICszMTcs
NyBAQCBleHBhbmRfZm9ybWF0IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBpbnQgYXJnYywgdG9rZW5f
ZGF0YSAqKmFyZ3YpCiAgICAgICAgIHsKICAgICAgICAgY2FzZSAnYyc6CiAgICAgICAgICAgZGF0
YXR5cGUgPSBDSEFSOwotICAgICAgICAgIHAgLT0gMjsgLyogJS4qYyBpcyB1bmRlZmluZWQsIHNv
IHVuZG8gdGhlICcuKicuICAqLworICAgICAgICAgIHAgLT0gMjsgICAgICAgICAgICAgICAvKiAl
LipjIGlzIHVuZGVmaW5lZCwgc28gdW5kbyB0aGUgJy4qJy4gICovCiAgICAgICAgICAgYnJlYWs7
CgogICAgICAgICBjYXNlICdzJzoKQEAgLTM1NywyNyArMzU5LDI3IEBAIGV4cGFuZF9mb3JtYXQg
KHN0cnVjdCBvYnN0YWNrICpvYnMsIGludCBhcmdjLCB0b2tlbl9kYXRhICoqYXJndikKICAgICAg
IHN3aXRjaCAoZGF0YXR5cGUpCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBDSEFSOgotICAgICAg
ICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0aCwgQVJHX0lOVChhcmdjLCBhcmd2KSk7
CisgICAgICAgICAgc3RyID0geGFzcHJpbnRmIChmc3RhcnQsIHdpZHRoLCBBUkdfSU5UIChhcmdj
LCBhcmd2KSk7CiAgICAgICAgICAgYnJlYWs7CgogICAgICAgICBjYXNlIElOVDoKLSAgICAgICAg
ICBzdHIgPSB4YXNwcmludGYgKGZzdGFydCwgd2lkdGgsIHByZWMsIEFSR19JTlQoYXJnYywgYXJn
dikpOworICAgICAgICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0aCwgcHJlYywgQVJH
X0lOVCAoYXJnYywgYXJndikpOwogICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgY2FzZSBMT05H
OgotICAgICAgICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0aCwgcHJlYywgQVJHX0xP
TkcoYXJnYywgYXJndikpOworICAgICAgICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0
aCwgcHJlYywgQVJHX0xPTkcgKGFyZ2MsIGFyZ3YpKTsKICAgICAgICAgICBicmVhazsKCiAgICAg
ICAgIGNhc2UgRE9VQkxFOgotICAgICAgICAgIHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0
aCwgcHJlYywgQVJHX0RPVUJMRShhcmdjLCBhcmd2KSk7CisgICAgICAgICAgc3RyID0geGFzcHJp
bnRmIChmc3RhcnQsIHdpZHRoLCBwcmVjLCBBUkdfRE9VQkxFIChhcmdjLCBhcmd2KSk7CiAgICAg
ICAgICAgYnJlYWs7CgogICAgICAgICBjYXNlIFNUUjoKLSAgICAgICAgICBzdHIgPSB4YXNwcmlu
dGYgKGZzdGFydCwgd2lkdGgsIHByZWMsIEFSR19TVFIoYXJnYywgYXJndikpOworICAgICAgICAg
IHN0ciA9IHhhc3ByaW50ZiAoZnN0YXJ0LCB3aWR0aCwgcHJlYywgQVJHX1NUUiAoYXJnYywgYXJn
dikpOwogICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICBhYm9y
dCgpOworICAgICAgICAgIGFib3J0ICgpOwogICAgICAgICB9CiAjaWYgNCA8IF9fR05VQ19fICsg
KDYgPD0gX19HTlVDX01JTk9SX18pCiAjIHByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKZGlmZiAt
LWdpdCBhL3NyYy9mcmVlemUuYyBiL3NyYy9mcmVlemUuYwppbmRleCBkMGI1Y2VjZC4uNTBiMTk2
NmEgMTAwNjQ0Ci0tLSBhL3NyYy9mcmVlemUuYworKysgYi9zcmMvZnJlZXplLmMKQEAgLTExNywx
MiArMTE3LDEzIEBAIHByb2R1Y2VfZnJvemVuX3N0YXRlIChjb25zdCBjaGFyICpuYW1lKQogICAv
KiBXcml0ZSBhIHJlY29nbml6YWJsZSBoZWFkZXIuICAqLwoKICAgeGZwcmludGYgKGZpbGUsICIj
IFRoaXMgaXMgYSBmcm96ZW4gc3RhdGUgZmlsZSBnZW5lcmF0ZWQgYnkgJXNcbiIsCi0gICAgICAg
ICAgIFBBQ0tBR0VfU1RSSU5HKTsKKyAgICAgICAgICAgIFBBQ0tBR0VfU1RSSU5HKTsKICAgeGZw
cmludGYgKGZpbGUsICJWMVxuIik7CgogICAvKiBEdW1wIHF1b3RlIGRlbGltaXRlcnMuICAqLwoK
LSAgaWYgKHN0cmNtcCAobHF1b3RlLnN0cmluZywgREVGX0xRVU9URSkgfHwgc3RyY21wIChycXVv
dGUuc3RyaW5nLCBERUZfUlFVT1RFKSkKKyAgaWYgKHN0cmNtcCAobHF1b3RlLnN0cmluZywgREVG
X0xRVU9URSkKKyAgICAgIHx8IHN0cmNtcCAocnF1b3RlLnN0cmluZywgREVGX1JRVU9URSkpCiAg
ICAgewogICAgICAgeGZwcmludGYgKGZpbGUsICJRJWQsJWRcbiIsIChpbnQpIGxxdW90ZS5sZW5n
dGgsIChpbnQpIHJxdW90ZS5sZW5ndGgpOwogICAgICAgZnB1dHMgKGxxdW90ZS5zdHJpbmcsIGZp
bGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2lucHV0LmMgYi9zcmMvaW5wdXQuYwppbmRleCBmOGQ1YzBi
YS4uNzU0YmY0ZWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbnB1dC5jCisrKyBiL3NyYy9pbnB1dC5jCkBA
IC02MSwxNCArNjEsMTQgQEAKICAgIGFjY29yZGluZ2x5LiAgKi8KCiAjaWZkZWYgRU5BQkxFX0NI
QU5HRVdPUkQKLSNpbmNsdWRlICJyZWdleC5oIgorIyBpbmNsdWRlICJyZWdleC5oIgogI2VuZGlm
CgogZW51bSBpbnB1dF90eXBlCiB7Ci0gIElOUFVUX1NUUklORywgICAgICAgICAvKiBTdHJpbmcg
cmVzdWx0aW5nIGZyb20gbWFjcm8gZXhwYW5zaW9uLiAgKi8KLSAgSU5QVVRfRklMRSwgICAgICAg
ICAgIC8qIEZpbGUgZnJvbSBjb21tYW5kIGxpbmUgb3IgaW5jbHVkZS4gICovCi0gIElOUFVUX01B
Q1JPICAgICAgICAgICAvKiBCdWlsdGluIHJlc3VsdGluZyBmcm9tIGRlZm4uICAqLworICBJTlBV
VF9TVFJJTkcsICAgICAgICAgICAgICAgICAvKiBTdHJpbmcgcmVzdWx0aW5nIGZyb20gbWFjcm8g
ZXhwYW5zaW9uLiAgKi8KKyAgSU5QVVRfRklMRSwgICAgICAgICAgICAgICAgICAgLyogRmlsZSBm
cm9tIGNvbW1hbmQgbGluZSBvciBpbmNsdWRlLiAgKi8KKyAgSU5QVVRfTUFDUk8gICAgICAgICAg
ICAgICAgICAgLyogQnVpbHRpbiByZXN1bHRpbmcgZnJvbSBkZWZuLiAgKi8KIH07CgogdHlwZWRl
ZiBlbnVtIGlucHV0X3R5cGUgaW5wdXRfdHlwZTsKQEAgLTgwLDI5ICs4MCwyOSBAQCBzdHJ1Y3Qg
aW5wdXRfYmxvY2sKICAgY29uc3QgY2hhciAqZmlsZTsgICAgICAgICAgICAgLyogZmlsZSB3aGVy
ZSB0aGlzIGlucHV0IGlzIGZyb20gKi8KICAgaW50IGxpbmU7ICAgICAgICAgICAgICAgICAgICAg
LyogbGluZSB3aGVyZSB0aGlzIGlucHV0IGlzIGZyb20gKi8KICAgdW5pb24KKyAgeworICAgIHN0
cnVjdAogICAgIHsKLSAgICAgIHN0cnVjdAotICAgICAgICB7Ci0gICAgICAgICAgY2hhciAqc3Ry
aW5nOyAgICAgICAgIC8qIHJlbWFpbmluZyBzdHJpbmcgdmFsdWUgKi8KLSAgICAgICAgICBjaGFy
ICplbmQ7ICAgICAgICAgICAgLyogdGVybWluYXRpbmcgTlVMIG9mIHN0cmluZyAqLwotICAgICAg
ICB9Ci0gICAgICAgIHVfczsgICAgLyogSU5QVVRfU1RSSU5HICovCi0gICAgICBzdHJ1Y3QKLSAg
ICAgICAgewotICAgICAgICAgIEZJTEUgKmZwOyAgICAgICAgICAgICAgICAgIC8qIGlucHV0IGZp
bGUgaGFuZGxlICovCi0gICAgICAgICAgYm9vbF9iaXRmaWVsZCBlbmQgOiAxOyAgICAgLyogdHJ1
ZSBpZiBwZWVrIGhhcyBzZWVuIEVPRiAqLwotICAgICAgICAgIGJvb2xfYml0ZmllbGQgY2xvc2Ug
OiAxOyAgIC8qIHRydWUgaWYgd2Ugc2hvdWxkIGNsb3NlIGZpbGUgb24gcG9wICovCi0gICAgICAg
ICAgYm9vbF9iaXRmaWVsZCBhZHZhbmNlIDogMTsgLyogdHJhY2sgcHJldmlvdXMgc3RhcnRfb2Zf
aW5wdXRfbGluZSAqLwotICAgICAgICB9Ci0gICAgICAgIHVfZjsgICAgLyogSU5QVVRfRklMRSAq
LwotICAgICAgYnVpbHRpbl9mdW5jICpmdW5jOyAgICAgICAvKiBwb2ludGVyIHRvIG1hY3JvJ3Mg
ZnVuY3Rpb24gKi8KKyAgICAgIGNoYXIgKnN0cmluZzsgICAgICAgICAgICAgLyogcmVtYWluaW5n
IHN0cmluZyB2YWx1ZSAqLworICAgICAgY2hhciAqZW5kOyAgICAgICAgICAgICAgICAvKiB0ZXJt
aW5hdGluZyBOVUwgb2Ygc3RyaW5nICovCiAgICAgfQorICAgIHVfczsgICAgICAgICAgICAgICAg
ICAgICAgICAvKiBJTlBVVF9TVFJJTkcgKi8KKyAgICBzdHJ1Y3QKKyAgICB7CisgICAgICBGSUxF
ICpmcDsgICAgICAgICAgICAgICAgIC8qIGlucHV0IGZpbGUgaGFuZGxlICovCisgICAgICBib29s
X2JpdGZpZWxkIGVuZDoxOyAgICAgIC8qIHRydWUgaWYgcGVlayBoYXMgc2VlbiBFT0YgKi8KKyAg
ICAgIGJvb2xfYml0ZmllbGQgY2xvc2U6MTsgICAgLyogdHJ1ZSBpZiB3ZSBzaG91bGQgY2xvc2Ug
ZmlsZSBvbiBwb3AgKi8KKyAgICAgIGJvb2xfYml0ZmllbGQgYWR2YW5jZToxOyAgLyogdHJhY2sg
cHJldmlvdXMgc3RhcnRfb2ZfaW5wdXRfbGluZSAqLworICAgIH0KKyAgICB1X2Y7ICAgICAgICAg
ICAgICAgICAgICAgICAgLyogSU5QVVRfRklMRSAqLworICAgIGJ1aWx0aW5fZnVuYyAqZnVuYzsg
ICAgICAgICAvKiBwb2ludGVyIHRvIG1hY3JvJ3MgZnVuY3Rpb24gKi8KKyAgfQogICB1OwogfTsK
CiB0eXBlZGVmIHN0cnVjdCBpbnB1dF9ibG9jayBpbnB1dF9ibG9jazsKLQogDAorCiAvKiBDdXJy
ZW50IGlucHV0IGZpbGUgbmFtZS4gICovCiBjb25zdCBjaGFyICpjdXJyZW50X2ZpbGU7CgpAQCAt
MTY3LDkgKzE2Nyw5IEBAIHN0YXRpYyBjb25zdCBjaGFyICp0b2tlbl90eXBlX3N0cmluZyAodG9r
ZW5fdHlwZSk7CiAjZW5kaWYKCiBzdGF0aWMgdm9pZCBwb3BfaW5wdXQgKHZvaWQpOwotCiAMCgor
CiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0uCiB8IHB1c2hfZmlsZSAoKSBwdXNoZXMgYW4gaW5wdXQgZmlsZSBvbiB0
aGUgaW5wdXQgc3RhY2ssIHNhdmluZyB0aGUgICB8CiB8IGN1cnJlbnQgZmlsZSBuYW1lIGFuZCBs
aW5lIG51bWJlci4gIElmIG5leHQgaXMgbm9uLU5VTEwsIHRoaXMgcHVzaCB8CkBAIC0yNDgsOCAr
MjQ4LDcgQEAgcHVzaF9zdHJpbmdfaW5pdCAodm9pZCkKIHsKICAgaWYgKG5leHQgIT0gTlVMTCkK
ICAgICB7Ci0gICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIDAsCi0gICAgICAgICAgICAg
ICAgIklOVEVSTkFMIEVSUk9SOiByZWN1cnNpdmUgcHVzaF9zdHJpbmchIikpOworICAgICAgTTRF
UlJPUiAoKHdhcm5pbmdfc3RhdHVzLCAwLCAiSU5URVJOQUwgRVJST1I6IHJlY3Vyc2l2ZSBwdXNo
X3N0cmluZyEiKSk7CiAgICAgICBhYm9ydCAoKTsKICAgICB9CgpAQCAtMjkxLDcgKzI5MCw3IEBA
IHB1c2hfc3RyaW5nX2ZpbmlzaCAodm9pZCkKICAgICAgIG5leHQtPnUudV9zLmVuZCA9IG5leHQt
PnUudV9zLnN0cmluZyArIGxlbjsKICAgICAgIG5leHQtPnByZXYgPSBpc3A7CiAgICAgICBpc3Ag
PSBuZXh0OwotICAgICAgcmV0ID0gaXNwLT51LnVfcy5zdHJpbmc7IC8qIGZvciBpbW1lZGlhdGUg
dXNlIG9ubHkgKi8KKyAgICAgIHJldCA9IGlzcC0+dS51X3Muc3RyaW5nOyAgLyogZm9yIGltbWVk
aWF0ZSB1c2Ugb25seSAqLwogICAgICAgaW5wdXRfY2hhbmdlID0gdHJ1ZTsKICAgICB9CiAgIGVs
c2UKQEAgLTM3Niw3ICszNzUsNyBAQCBwb3BfaW5wdXQgKHZvaWQpCiAgICAgICBhYm9ydCAoKTsK
ICAgICB9CiAgIG9ic3RhY2tfZnJlZSAoY3VycmVudF9pbnB1dCwgaXNwKTsKLSAgbmV4dCA9IE5V
TEw7IC8qIG1pZ2h0IGJlIHNldCBpbiBwdXNoX3N0cmluZ19pbml0ICgpICovCisgIG5leHQgPSBO
VUxMOyAgICAgICAgICAgICAgICAgIC8qIG1pZ2h0IGJlIHNldCBpbiBwdXNoX3N0cmluZ19pbml0
ICgpICovCgogICBpc3AgPSB0bXA7CiAgIGlucHV0X2NoYW5nZSA9IHRydWU7CkBAIC01NTQsNyAr
NTUzLDggQEAgbmV4dF9jaGFyXzEgKHZvaWQpCiAgICAgICAgICAgYnJlYWs7CgogICAgICAgICBj
YXNlIElOUFVUX01BQ1JPOgotICAgICAgICAgIHBvcF9pbnB1dCAoKTsgLyogSU5QVVRfTUFDUk8g
aW5wdXQgc291cmNlcyBoYXMgb25seSBvbmUgdG9rZW4gKi8KKyAgICAgICAgICAvKiBJTlBVVF9N
QUNSTyBpbnB1dCBzb3VyY2VzIGhhcyBvbmx5IG9uZSB0b2tlbiAqLworICAgICAgICAgIHBvcF9p
bnB1dCAoKTsKICAgICAgICAgICByZXR1cm4gQ0hBUl9NQUNSTzsKCiAgICAgICAgIGRlZmF1bHQ6
CkBAIC02MTUsMTcgKzYxNSwxNyBAQCBtYXRjaF9pbnB1dCAoY29uc3QgY2hhciAqcywgYm9vbCBj
b25zdW1lKQoKICAgY2ggPSBwZWVrX2lucHV0ICgpOwogICBpZiAoY2ggIT0gdG9fdWNoYXIgKCpz
KSkKLSAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAvKiBmYWlsICovCisg
ICAgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgIC8qIGZhaWwgKi8KCiAgIGlmIChzWzFdID09
ICdcMCcpCiAgICAgewogICAgICAgaWYgKGNvbnN1bWUpCiAgICAgICAgIG5leHRfY2hhciAoKTsK
LSAgICAgIHJldHVybiB0cnVlOyAgICAgICAgICAgICAgICAgICAgICAvKiBzaG9ydCBtYXRjaCAq
LworICAgICAgcmV0dXJuIHRydWU7ICAgICAgICAgICAgICAvKiBzaG9ydCBtYXRjaCAqLwogICAg
IH0KCiAgIG5leHRfY2hhciAoKTsKLSAgZm9yIChuID0gMSwgdCA9IHMrKzsgcGVla19pbnB1dCAo
KSA9PSB0b191Y2hhciAoKnMrKyk7ICkKKyAgZm9yIChuID0gMSwgdCA9IHMrKzsgcGVla19pbnB1
dCAoKSA9PSB0b191Y2hhciAoKnMrKyk7KQogICAgIHsKICAgICAgIG5leHRfY2hhciAoKTsKICAg
ICAgIG4rKzsKQEAgLTg0Myw3ICs4NDMsNyBAQCBuZXh0X3Rva2VuICh0b2tlbl9kYXRhICp0ZCwg
aW50ICpsaW5lKQogICBpZiAoIWxpbmUpCiAgICAgbGluZSA9ICZkdW1teTsKCi0gLyogQ2FuJ3Qg
Y29uc3VtZSBjaGFyYWN0ZXIgdW50aWwgYWZ0ZXIgQ0hBUl9NQUNSTyBpcyBoYW5kbGVkLiAgKi8K
KyAgLyogQ2FuJ3QgY29uc3VtZSBjaGFyYWN0ZXIgdW50aWwgYWZ0ZXIgQ0hBUl9NQUNSTyBpcyBo
YW5kbGVkLiAgKi8KICAgY2ggPSBwZWVrX2lucHV0ICgpOwogICBpZiAoY2ggPT0gQ0hBUl9FT0Yp
CiAgICAgewpAQCAtODY0LDcgKzg2NCw3IEBAIG5leHRfdG9rZW4gKHRva2VuX2RhdGEgKnRkLCBp
bnQgKmxpbmUpCiAgICAgICByZXR1cm4gVE9LRU5fTUFDREVGOwogICAgIH0KCi0gIG5leHRfY2hh
ciAoKTsgLyogQ29uc3VtZSBjaGFyYWN0ZXIgd2UgYWxyZWFkeSBwZWVrZWQgYXQuICAqLworICBu
ZXh0X2NoYXIgKCk7ICAgICAgICAgICAgICAgICAvKiBDb25zdW1lIGNoYXJhY3RlciB3ZSBhbHJl
YWR5IHBlZWtlZCBhdC4gICovCiAgIGZpbGUgPSBjdXJyZW50X2ZpbGU7CiAgICpsaW5lID0gY3Vy
cmVudF9saW5lOwogICBpZiAoTUFUQ0ggKGNoLCBiY29tbS5zdHJpbmcsIHRydWUpKQpAQCAtODc4
LDE0ICs4NzgsMTYgQEAgbmV4dF90b2tlbiAodG9rZW5fZGF0YSAqdGQsIGludCAqbGluZSkKICAg
ICAgIGVsc2UKICAgICAgICAgLyogY3VycmVudF9maWxlIGNoYW5nZWQgdG8gIiIgaWYgd2Ugc2Vl
IENIQVJfRU9GLCB1c2UgdGhlCiAgICAgICAgICAgIHByZXZpb3VzIHZhbHVlIHdlIHN0b3JlZCBl
YXJsaWVyLiAgKi8KLSAgICAgICAgbTRfZmFpbHVyZV9hdF9saW5lICgwLCBmaWxlLCAqbGluZSwg
XygiRVJST1I6IGVuZCBvZiBmaWxlIGluIGNvbW1lbnQiKSk7CisgICAgICAgIG00X2ZhaWx1cmVf
YXRfbGluZSAoMCwgZmlsZSwgKmxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygi
RVJST1I6IGVuZCBvZiBmaWxlIGluIGNvbW1lbnQiKSk7CgogICAgICAgdHlwZSA9IFRPS0VOX1NU
UklORzsKICAgICB9CiAgIGVsc2UgaWYgKGRlZmF1bHRfd29yZF9yZWdleHAgJiYgKGNfaXNhbHBo
YSAoY2gpIHx8IGNoID09ICdfJykpCiAgICAgewogICAgICAgb2JzdGFja18xZ3JvdyAoJnRva2Vu
X3N0YWNrLCBjaCk7Ci0gICAgICB3aGlsZSAoKGNoID0gcGVla19pbnB1dCAoKSkgIT0gQ0hBUl9F
T0YgJiYgKGNfaXNhbG51bSAoY2gpIHx8IGNoID09ICdfJykpCisgICAgICB3aGlsZSAoKGNoID0g
cGVla19pbnB1dCAoKSkgIT0gQ0hBUl9FT0YKKyAgICAgICAgICAgICAmJiAoY19pc2FsbnVtIChj
aCkgfHwgY2ggPT0gJ18nKSkKICAgICAgICAgewogICAgICAgICAgIG9ic3RhY2tfMWdyb3cgKCZ0
b2tlbl9zdGFjaywgY2gpOwogICAgICAgICAgIG5leHRfY2hhciAoKTsKQEAgLTkwOSw3ICs5MTEs
NyBAQCBuZXh0X3Rva2VuICh0b2tlbl9kYXRhICp0ZCwgaW50ICpsaW5lKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvYnN0YWNrX29iamVjdF9zaXplICgmdG9rZW5fc3RhY2spLCAw
LCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVncyk7CiAgICAgICAgICAg
aWYgKHN0YXJ0cG9zIHx8Ci0gICAgICAgICAgICAgIHJlZ3MuZW5kIFswXSAhPSAocmVnb2ZmX3Qp
IG9ic3RhY2tfb2JqZWN0X3NpemUgKCZ0b2tlbl9zdGFjaykpCisgICAgICAgICAgICAgIHJlZ3Mu
ZW5kWzBdICE9IChyZWdvZmZfdCkgb2JzdGFja19vYmplY3Rfc2l6ZSAoJnRva2VuX3N0YWNrKSkK
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgKigoKGNoYXIgKikgb2JzdGFja19iYXNlICgm
dG9rZW5fc3RhY2spCiAgICAgICAgICAgICAgICAgICsgb2JzdGFja19vYmplY3Rfc2l6ZSAoJnRv
a2VuX3N0YWNrKSkgLSAxKSA9ICdcMCc7CkBAIC05MjIsMTAgKzkyNCwxMCBAQCBuZXh0X3Rva2Vu
ICh0b2tlbl9kYXRhICp0ZCwgaW50ICpsaW5lKQogICAgICAgb3JpZ190ZXh0ID0gKGNoYXIgKikg
b2JzdGFja19maW5pc2ggKCZ0b2tlbl9zdGFjayk7CgogICAgICAgaWYgKHJlZ3Muc3RhcnRbMV0g
IT0gLTEpCi0gICAgICAgIG9ic3RhY2tfZ3JvdyAoJnRva2VuX3N0YWNrLG9yaWdfdGV4dCArIHJl
Z3Muc3RhcnRbMV0sCisgICAgICAgIG9ic3RhY2tfZ3JvdyAoJnRva2VuX3N0YWNrLCBvcmlnX3Rl
eHQgKyByZWdzLnN0YXJ0WzFdLAogICAgICAgICAgICAgICAgICAgICAgIHJlZ3MuZW5kWzFdIC0g
cmVncy5zdGFydFsxXSk7CiAgICAgICBlbHNlCi0gICAgICAgIG9ic3RhY2tfZ3JvdyAoJnRva2Vu
X3N0YWNrLCBvcmlnX3RleHQscmVncy5lbmRbMF0pOworICAgICAgICBvYnN0YWNrX2dyb3cgKCZ0
b2tlbl9zdGFjaywgb3JpZ190ZXh0LCByZWdzLmVuZFswXSk7CgogICAgICAgdHlwZSA9IFRPS0VO
X1dPUkQ7CiAgICAgfQpAQCAtMTA1Nyw5ICsxMDU5LDkgQEAgcGVla190b2tlbiAodm9pZCkKICAg
ICB9CiAgIGVsc2UgaWYgKChkZWZhdWx0X3dvcmRfcmVnZXhwICYmIChjX2lzYWxwaGEgKGNoKSB8
fCBjaCA9PSAnXycpKQogI2lmZGVmIEVOQUJMRV9DSEFOR0VXT1JECi0gICAgICAgICAgIHx8ICgh
IGRlZmF1bHRfd29yZF9yZWdleHAgJiYgd29yZF9yZWdleHAuZmFzdG1hcFtjaF0pCisgICAgICAg
ICAgIHx8ICghZGVmYXVsdF93b3JkX3JlZ2V4cCAmJiB3b3JkX3JlZ2V4cC5mYXN0bWFwW2NoXSkK
ICNlbmRpZiAvKiBFTkFCTEVfQ0hBTkdFV09SRCAqLwotICAgICAgICAgICApCisgICAgKQogICAg
IHsKICAgICAgIHJlc3VsdCA9IFRPS0VOX1dPUkQ7CiAgICAgfQpAQCAtMTA5NSw4ICsxMDk3LDgg
QEAgcGVla190b2tlbiAodm9pZCkKIHN0YXRpYyBjb25zdCBjaGFyICoKIHRva2VuX3R5cGVfc3Ry
aW5nICh0b2tlbl90eXBlIHQpCiB7Ci0gc3dpdGNoICh0KQotICAgIHsgLyogVE9LU1cgKi8KKyAg
c3dpdGNoICh0KQorICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUT0tTVyAqLwog
ICAgIGNhc2UgVE9LRU5fRU9GOgogICAgICAgcmV0dXJuICJFT0YiOwogICAgIGNhc2UgVE9LRU5f
U1RSSU5HOgpAQCAtMTExNiwxNCArMTExOCwxNCBAQCB0b2tlbl90eXBlX3N0cmluZyAodG9rZW5f
dHlwZSB0KQogICAgIGRlZmF1bHQ6CiAgICAgICBhYm9ydCAoKTsKICAgICB9Ci0gfQorfQoKIHN0
YXRpYyB2b2lkCiBwcmludF90b2tlbiAoY29uc3QgY2hhciAqcywgdG9rZW5fdHlwZSB0LCB0b2tl
bl9kYXRhICp0ZCkKIHsKICAgeGZwcmludGYgKHN0ZGVyciwgIiVzOiAiLCBzKTsKICAgc3dpdGNo
ICh0KQotICAgIHsgLyogVE9LU1cgKi8KKyAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogVE9LU1cgKi8KICAgICBjYXNlIFRPS0VOX09QRU46CiAgICAgY2FzZSBUT0tFTl9DT01NQToK
ICAgICBjYXNlIFRPS0VOX0NMT1NFOgpkaWZmIC0tZ2l0IGEvc3JjL200LmMgYi9zcmMvbTQuYwpp
bmRleCBkYjY2ZDhkZi4uMTRmNGY3NTMgMTAwNjQ0Ci0tLSBhL3NyYy9tNC5jCisrKyBiL3NyYy9t
NC5jCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAidmVyc2lvbi1ldGMuaCIKCiAjaWZkZWYg
REVCVUdfU1RLT1ZGCi0jIGluY2x1ZGUgImFzc2VydC5oIgorIyBpbmNsdWRlIDxhc3NlcnQuaD4K
ICNlbmRpZgoKIC8qIFRSQU5TTEFUT1JTOiBUaGlzIGlzIGEgbm9uLUFTQ0lJIG5hbWU6IFRoZSBm
aXJzdCBuYW1lIGlzICh3aXRoCkBAIC04NCw3ICs4NCw3IEBAIGludCByZXRjb2RlOwogc3RydWN0
IG1hY3JvX2RlZmluaXRpb24KIHsKICAgc3RydWN0IG1hY3JvX2RlZmluaXRpb24gKm5leHQ7Ci0g
IGludCBjb2RlOyAvKiBELCBVLCBzLCB0LCAnXDEnLCBvciBERUJVR0ZJTEVfT1BUSU9OLiAgKi8K
KyAgaW50IGNvZGU7ICAgICAgICAgICAgICAgICAgICAgLyogRCwgVSwgcywgdCwgJ1wxJywgb3Ig
REVCVUdGSUxFX09QVElPTi4gICovCiAgIGNvbnN0IGNoYXIgKmFyZzsKIH07CiB0eXBlZGVmIHN0
cnVjdCBtYWNyb19kZWZpbml0aW9uIG1hY3JvX2RlZmluaXRpb247CkBAIC0xMDIsNyArMTAyLDcg
QEAgbTRfZXJyb3IgKGludCBzdGF0dXMsIGludCBlcnJudW0sIGNvbnN0IGNoYXIgKmZvcm1hdCwg
Li4uKQogICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKICAgdmVycm9yX2F0X2xpbmUgKHN0YXR1
cywgZXJybnVtLCBjdXJyZW50X2xpbmUgPyBjdXJyZW50X2ZpbGUgOiBOVUxMLAogICAgICAgICAg
ICAgICAgICAgY3VycmVudF9saW5lLCBmb3JtYXQsIGFyZ3MpOwotICBpZiAoZmF0YWxfd2Fybmlu
Z3MgJiYgISByZXRjb2RlKQorICBpZiAoZmF0YWxfd2FybmluZ3MgJiYgIXJldGNvZGUpCiAgICAg
cmV0Y29kZSA9IEVYSVRfRkFJTFVSRTsKICAgdmFfZW5kIChhcmdzKTsKIH0KQEAgLTEyOCw3ICsx
MjgsNyBAQCBtNF9lcnJvcl9hdF9saW5lIChpbnQgc3RhdHVzLCBpbnQgZXJybnVtLCBjb25zdCBj
aGFyICpmaWxlLCBpbnQgbGluZSwKICAgdmFfbGlzdCBhcmdzOwogICB2YV9zdGFydCAoYXJncywg
Zm9ybWF0KTsKICAgdmVycm9yX2F0X2xpbmUgKHN0YXR1cywgZXJybnVtLCBsaW5lID8gZmlsZSA6
IE5VTEwsIGxpbmUsIGZvcm1hdCwgYXJncyk7Ci0gIGlmIChmYXRhbF93YXJuaW5ncyAmJiAhIHJl
dGNvZGUpCisgIGlmIChmYXRhbF93YXJuaW5ncyAmJiAhcmV0Y29kZSkKICAgICByZXRjb2RlID0g
RVhJVF9GQUlMVVJFOwogICB2YV9lbmQgKGFyZ3MpOwogfQpAQCAtMTU5LDggKzE1OSw4IEBAIG00
X2ZhaWx1cmVfYXRfbGluZSAoaW50IGVycm51bSwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUs
CiAvKiBQcmUtdHJhbnNsYXRlZCBtZXNzYWdlcyBmb3IgcHJvZ3JhbSBlcnJvcnMuICBEbyBub3Qg
dHJhbnNsYXRlIGluCiAgICB0aGUgc2lnbmFsIGhhbmRsZXIsIHNpbmNlIGdldHRleHQgYW5kIHN0
cnNpZ25hbCBhcmUgbm90CiAgICBhc3luYy1zaWduYWwtc2FmZS4gICovCi1zdGF0aWMgY29uc3Qg
Y2hhciAqIHZvbGF0aWxlIHByb2dyYW1fZXJyb3JfbWVzc2FnZTsKLXN0YXRpYyBjb25zdCBjaGFy
ICogdm9sYXRpbGUgc2lnbmFsX21lc3NhZ2VbTlNJR107CitzdGF0aWMgY29uc3QgY2hhciAqdm9s
YXRpbGUgcHJvZ3JhbV9lcnJvcl9tZXNzYWdlOworc3RhdGljIGNvbnN0IGNoYXIgKnZvbGF0aWxl
IHNpZ25hbF9tZXNzYWdlW05TSUddOwoKIC8qIFByaW50IGEgbmljZXIgbWVzc2FnZSBhYm91dCBh
bnkgcHJvZ3JhbW1lciBlcnJvcnMsIHRoZW4gZXhpdC4gIFRoaXMKICAgIG11c3QgYmUgYXlzbmMt
c2lnbmFsIHNhZmUsIHNpbmNlIGl0IGlzIGV4ZWN1dGVkIGFzIGEgc2lnbmFsCkBAIC0zMTUsMTkg
KzMxNSwyMSBAQCBtaXNtYXRjaCwgb3Igd2hhdGV2ZXIgdmFsdWUgd2FzIHBhc3NlZCB0byB0aGUg
bTRleGl0IG1hY3JvLlxuXAogZW51bQogewogICBERUJVR0ZJTEVfT1BUSU9OID0gQ0hBUl9NQVgg
KyAxLCAgICAgIC8qIG5vIHNob3J0IG9wdCAqLwotICBESVZFUlNJT05TX09QVElPTiwgICAgICAg
ICAgICAgICAgICAgIC8qIG5vdCBxdWl0ZSAtTiwgYmVjYXVzZSBvZiBtZXNzYWdlICovCi0gIFdB
Uk5fTUFDUk9fU0VRVUVOQ0VfT1BUSU9OLCAgICAgICAgICAgLyogbm8gc2hvcnQgb3B0ICovCisg
IERJVkVSU0lPTlNfT1BUSU9OLCAgICAgICAgICAgIC8qIG5vdCBxdWl0ZSAtTiwgYmVjYXVzZSBv
ZiBtZXNzYWdlICovCisgIFdBUk5fTUFDUk9fU0VRVUVOQ0VfT1BUSU9OLCAgIC8qIG5vIHNob3J0
IG9wdCAqLwoKLSAgSEVMUF9PUFRJT04sICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBubyBz
aG9ydCBvcHQgKi8KLSAgVkVSU0lPTl9PUFRJT04gICAgICAgICAgICAgICAgICAgICAgICAvKiBu
byBzaG9ydCBvcHQgKi8KKyAgSEVMUF9PUFRJT04sICAgICAgICAgICAgICAgICAgLyogbm8gc2hv
cnQgb3B0ICovCisgIFZFUlNJT05fT1BUSU9OICAgICAgICAgICAgICAgIC8qIG5vIHNob3J0IG9w
dCAqLwogfTsKCi1zdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9Ci17
CitzdGF0aWMgY29uc3Qgc3RydWN0IG9wdGlvbiBsb25nX29wdGlvbnNbXSA9IHsKICAgeyJhcmds
ZW5ndGgiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2wnfSwKICAgeyJkZWJ1ZyIsIG9wdGlv
bmFsX2FyZ3VtZW50LCBOVUxMLCAnZCd9LAogICB7ImRlZmluZSIsIHJlcXVpcmVkX2FyZ3VtZW50
LCBOVUxMLCAnRCd9LAotICB7ImVycm9yLW91dHB1dCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxM
LCAnbyd9LCAvKiBGSVhNRTogZGVwcmVjYXRlIGluIDIuMCAqLworCisgIC8qIEZJWE1FOiBkZXBy
ZWNhdGUgaW4gMi4wICovCisgIHsiZXJyb3Itb3V0cHV0IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5V
TEwsICdvJ30sCisKICAgeyJmYXRhbC13YXJuaW5ncyIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnRSd9
LAogICB7ImZyZWV6ZS1zdGF0ZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnRid9LAogICB7
ImdudSIsIG5vX2FyZ3VtZW50LCBOVUxMLCAnZyd9LApAQCAtMzQ5LDEyICszNTEsMTMgQEAgc3Rh
dGljIGNvbnN0IHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPQoKICAgeyJkZWJ1Z2ZpbGUi
LCBvcHRpb25hbF9hcmd1bWVudCwgTlVMTCwgREVCVUdGSUxFX09QVElPTn0sCiAgIHsiZGl2ZXJz
aW9ucyIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBESVZFUlNJT05TX09QVElPTn0sCi0gIHsi
d2Fybi1tYWNyby1zZXF1ZW5jZSIsIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBXQVJOX01BQ1JP
X1NFUVVFTkNFX09QVElPTn0sCisgIHsid2Fybi1tYWNyby1zZXF1ZW5jZSIsIG9wdGlvbmFsX2Fy
Z3VtZW50LCBOVUxMLAorICAgV0FSTl9NQUNST19TRVFVRU5DRV9PUFRJT059LAoKICAgeyJoZWxw
Iiwgbm9fYXJndW1lbnQsIE5VTEwsIEhFTFBfT1BUSU9OfSwKICAgeyJ2ZXJzaW9uIiwgbm9fYXJn
dW1lbnQsIE5VTEwsIFZFUlNJT05fT1BUSU9OfSwKCi0gIHsgTlVMTCwgMCwgTlVMTCwgMCB9LAor
ICB7TlVMTCwgMCwgTlVMTCwgMH0sCiB9OwoKIC8qIFByb2Nlc3MgYSBjb21tYW5kIGxpbmUgZmls
ZSBOQU1FLCBhbmQgcmV0dXJuIHRydWUgb25seSBpZiBpdCB3YXMKQEAgLTM5NCw5ICszOTcsOSBA
QCBwcm9jZXNzX2ZpbGUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgICAnLScgZm9yY2VzIGdldG9wdF9s
b25nIHRvIGhhbmQgYmFjayBmaWxlIG5hbWVzIGFzIGFyZ3VtZW50cyB0byBvcHQKICAgICdcMScs
IHJhdGhlciB0aGFuIHJlb3JkZXJpbmcgdGhlIGNvbW1hbmQgbGluZS4gICovCiAjaWZkZWYgRU5B
QkxFX0NIQU5HRVdPUkQKLSNkZWZpbmUgT1BUU1RSSU5HICItQjpEOkVGOkdIOkk6TDpOOlBRUjpT
OlQ6VTpXOmQ6OmVnaWw6bzpzdDoiCisjIGRlZmluZSBPUFRTVFJJTkcgIi1COkQ6RUY6R0g6STpM
Ok46UFFSOlM6VDpVOlc6ZDo6ZWdpbDpvOnN0OiIKICNlbHNlCi0jZGVmaW5lIE9QVFNUUklORyAi
LUI6RDpFRjpHSDpJOkw6TjpQUVI6UzpUOlU6ZDo6ZWdpbDpvOnN0OiIKKyMgZGVmaW5lIE9QVFNU
UklORyAiLUI6RDpFRjpHSDpJOkw6TjpQUVI6UzpUOlU6ZDo6ZWdpbDpvOnN0OiIKICNlbmRpZgoK
IGludApAQCAtNDY3LDcgKzQ3MCw3IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICpjb25zdCAqYXJn
dikKICAgICBpZiAoY3Jhc2gpCiAgICAgICB7CiAgICAgICAgIGlmICghc3RydG9sIChjcmFzaCwg
TlVMTCwgMTApKQotICAgICAgICAgICsrKihpbnQgKikgODsKKyAgICAgICAgICArKyAqIChpbnQg
KikgODsKICAgICAgICAgYXNzZXJ0IChmYWxzZSk7CiAgICAgICAgIGFib3J0ICgpOwogICAgICAg
fQpAQCAtNDkwLDcgKzQ5Myw4IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICpjb25zdCAqYXJndikK
ICAgICAgICAgLyogQ29tcGF0aWJpbGl0eSBqdW5rOiBvcHRpb25zIHRoYXQgb3RoZXIgaW1wbGVt
ZW50YXRpb25zCiAgICAgICAgICAgIHN1cHBvcnQsIGJ1dCB3aGljaCB3ZSBpZ25vcmUgYXMgbm8t
b3BzIGFuZCBkb24ndCBsaXN0IGluCiAgICAgICAgICAgIC0taGVscC4gICovCi0gICAgICAgIGVy
cm9yICgwLCAwLCBfKCJ3YXJuaW5nOiBgbTQgLSVjJyBtYXkgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVy
ZSByZWxlYXNlIiksCisgICAgICAgIGVycm9yICgwLCAwLAorICAgICAgICAgICAgICAgXygid2Fy
bmluZzogYG00IC0lYycgbWF5IGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZSIpLAogICAg
ICAgICAgICAgICAgb3B0Y2hhcik7CiAgICAgICAgIGJyZWFrOwoKQEAgLTUyMyw3ICs1MjcsNyBA
QCBtYWluIChpbnQgYXJnYywgY2hhciAqY29uc3QgKmFyZ3YpCiAgICAgICAgIGJyZWFrOwoKICAg
ICAgIGNhc2UgJ0UnOgotICAgICAgICBpZiAoISBmYXRhbF93YXJuaW5ncykKKyAgICAgICAgaWYg
KCFmYXRhbF93YXJuaW5ncykKICAgICAgICAgICBmYXRhbF93YXJuaW5ncyA9IHRydWU7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICB3YXJuaW5nX3N0YXR1cyA9IEVYSVRfRkFJTFVSRTsKQEAgLTYw
NSwxMCArNjA5LDEwIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICpjb25zdCAqYXJndikKICAgICAg
ICAgYnJlYWs7CgogICAgICAgY2FzZSBXQVJOX01BQ1JPX1NFUVVFTkNFX09QVElPTjoKLSAgICAg
ICAgIC8qIERvbid0IGNhbGwgc2V0X21hY3JvX3NlcXVlbmNlIGhlcmUsIGFzIGl0IGNhbiBleGl0
LgotICAgICAgICAgICAgLS13YXJuLW1hY3JvLXNlcXVlbmNlIHNldHMgb3B0YXJnIHRvIE5VTEwg
KHdoaWNoIHVzZXMgdGhlCi0gICAgICAgICAgICBkZWZhdWx0IHJlZ2V4cCk7IC0td2Fybi1tYWNy
by1zZXF1ZW5jZT0gc2V0cyBvcHRhcmcgdG8gIiIKLSAgICAgICAgICAgICh3aGljaCBkaXNhYmxl
cyB0aGVzZSB3YXJuaW5ncykuICAqLworICAgICAgICAvKiBEb24ndCBjYWxsIHNldF9tYWNyb19z
ZXF1ZW5jZSBoZXJlLCBhcyBpdCBjYW4gZXhpdC4KKyAgICAgICAgICAgLS13YXJuLW1hY3JvLXNl
cXVlbmNlIHNldHMgb3B0YXJnIHRvIE5VTEwgKHdoaWNoIHVzZXMgdGhlCisgICAgICAgICAgIGRl
ZmF1bHQgcmVnZXhwKTsgLS13YXJuLW1hY3JvLXNlcXVlbmNlPSBzZXRzIG9wdGFyZyB0byAiIgor
ICAgICAgICAgICAod2hpY2ggZGlzYWJsZXMgdGhlc2Ugd2FybmluZ3MpLiAgKi8KICAgICAgICAg
bWFjcm9fc2VxdWVuY2UgPSBvcHRhcmc7CiAgICAgICAgIGJyZWFrOwoKZGlmZiAtLWdpdCBhL3Ny
Yy9tNC5oIGIvc3JjL200LmgKaW5kZXggYzFmYjgwNmIuLjE2ODAyM2FiIDEwMDY0NAotLS0gYS9z
cmMvbTQuaAorKysgYi9zcmMvbTQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgPGFzc2Vy
dC5oPgogI2luY2x1ZGUgPGMtY3R5cGUuaD4KICNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUg
PGVycm9yLmg+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAjaW5jbHVkZSA8bG9jYWxlLmg+CiAjaW5j
bHVkZSA8c3RkYm9vbC5oPgpAQCAtNDMsNyArNDQsNiBAQAogI2luY2x1ZGUgImNsb3NlLXN0cmVh
bS5oIgogI2luY2x1ZGUgImNsb3NlaW4uaCIKICNpbmNsdWRlICJkaXJuYW1lLmgiCi0jaW5jbHVk
ZSAiZXJyb3IuaCIKICNpbmNsdWRlICJleGl0ZmFpbC5oIgogI2luY2x1ZGUgImZpbGVuYW1lY2F0
LmgiCiAjaW5jbHVkZSAiaW50cHJvcHMuaCIKQEAgLTg4LDcgKzg4LDcgQEAKICMgdW5kZWYgdGV4
dGRvbWFpbgogIyBkZWZpbmUgdGV4dGRvbWFpbihEb21haW5uYW1lKSAvKiBlbXB0eSAqLwogIyB1
bmRlZiBiaW5kdGV4dGRvbWFpbgotIyBkZWZpbmUgYmluZHRleHRkb21haW4oRG9tYWlubmFtZSwg
RGlybmFtZSkgLyogZW1wdHkgKi8KKyMgZGVmaW5lIGJpbmR0ZXh0ZG9tYWluKERvbWFpbm5hbWUs
IERpcm5hbWUpICAgIC8qIGVtcHR5ICovCiAjZW5kaWYKCiAjZGVmaW5lIF8obXNnaWQpIGdldHRl
eHQgKG1zZ2lkKQpAQCAtOTYsMTAgKzk2LDEwIEBACiAvKiBWYXJpb3VzIGRlY2xhcmF0aW9ucy4g
ICovCgogc3RydWN0IHN0cmluZwotICB7Ci0gICAgY2hhciAqc3RyaW5nOyAgICAgICAgICAgICAg
IC8qIGNoYXJhY3RlcnMgb2YgdGhlIHN0cmluZyAqLwotICAgIHNpemVfdCBsZW5ndGg7ICAgICAg
ICAgICAgICAvKiBsZW5ndGggb2YgdGhlIHN0cmluZyAqLwotICB9OworeworICBjaGFyICpzdHJp
bmc7ICAgICAgICAgICAgICAgICAvKiBjaGFyYWN0ZXJzIG9mIHRoZSBzdHJpbmcgKi8KKyAgc2l6
ZV90IGxlbmd0aDsgICAgICAgICAgICAgICAgLyogbGVuZ3RoIG9mIHRoZSBzdHJpbmcgKi8KK307
CiB0eXBlZGVmIHN0cnVjdCBzdHJpbmcgU1RSSU5HOwoKIC8qIE1lbW9yeSBhbGxvY2F0aW9uLiAg
Ki8KQEAgLTEyMiwxNSArMTIyLDE1IEBAIHR5cGVkZWYgdW5zaWduZWQgaW50IGJvb2xfYml0Zmll
bGQ7CiAvKiBGaWxlOiBtNC5jICAtLS0gZ2xvYmFsIGRlZmluaXRpb25zLiAgKi8KCiAvKiBPcHRp
b24gZmxhZ3MuICAqLwotZXh0ZXJuIGludCBzeW5jX291dHB1dDsgICAgICAgICAgICAgICAgIC8q
IC1zICovCi1leHRlcm4gaW50IGRlYnVnX2xldmVsOyAgICAgICAgICAgICAgICAgLyogLWQgKi8K
LWV4dGVybiBzaXplX3QgaGFzaF90YWJsZV9zaXplOyAgICAgICAgICAvKiAtSCAqLwotZXh0ZXJu
IGludCBub19nbnVfZXh0ZW5zaW9uczsgICAgICAgICAgIC8qIC1HICovCi1leHRlcm4gaW50IHBy
ZWZpeF9hbGxfYnVpbHRpbnM7ICAgICAgICAgLyogLVAgKi8KK2V4dGVybiBpbnQgc3luY19vdXRw
dXQ7ICAgICAgICAgLyogLXMgKi8KK2V4dGVybiBpbnQgZGVidWdfbGV2ZWw7ICAgICAgICAgLyog
LWQgKi8KK2V4dGVybiBzaXplX3QgaGFzaF90YWJsZV9zaXplOyAgLyogLUggKi8KK2V4dGVybiBp
bnQgbm9fZ251X2V4dGVuc2lvbnM7ICAgLyogLUcgKi8KK2V4dGVybiBpbnQgcHJlZml4X2FsbF9i
dWlsdGluczsgLyogLVAgKi8KIGV4dGVybiBpbnQgbWF4X2RlYnVnX2FyZ3VtZW50X2xlbmd0aDsg
ICAvKiAtbCAqLwotZXh0ZXJuIGludCBzdXBwcmVzc193YXJuaW5nczsgICAgICAgICAgIC8qIC1R
ICovCi1leHRlcm4gaW50IHdhcm5pbmdfc3RhdHVzOyAgICAgICAgICAgICAgLyogLUUgKi8KLWV4
dGVybiBpbnQgbmVzdGluZ19saW1pdDsgICAgICAgICAgICAgICAvKiAtTCAqLworZXh0ZXJuIGlu
dCBzdXBwcmVzc193YXJuaW5nczsgICAvKiAtUSAqLworZXh0ZXJuIGludCB3YXJuaW5nX3N0YXR1
czsgICAgICAvKiAtRSAqLworZXh0ZXJuIGludCBuZXN0aW5nX2xpbWl0OyAgICAgICAvKiAtTCAq
LwogI2lmZGVmIEVOQUJMRV9DSEFOR0VXT1JECiBleHRlcm4gY29uc3QgY2hhciAqdXNlcl93b3Jk
X3JlZ2V4cDsgICAgLyogLVcgKi8KICNlbmRpZgpAQCAtMTM4LDYgKzEzOCw4IEBAIGV4dGVybiBj
b25zdCBjaGFyICp1c2VyX3dvcmRfcmVnZXhwOyAgICAvKiAtVyAqLwogLyogRXJyb3IgaGFuZGxp
bmcuICAqLwogZXh0ZXJuIGludCByZXRjb2RlOwoKKworLyogKklOREVOVC1PRkYqICovCiBleHRl
cm4gdm9pZCBtNF9lcnJvciAoaW50LCBpbnQsIGNvbnN0IGNoYXIgKiwgLi4uKQogICBBVFRSSUJV
VEVfQ09MRCBBVFRSSUJVVEVfRk9STUFUICgoX19wcmludGZfXywgMywgNCkpOwogZXh0ZXJuIHZv
aWQgbTRfZXJyb3JfYXRfbGluZSAoaW50LCBpbnQsIGNvbnN0IGNoYXIgKiwgaW50LCBjb25zdCBj
aGFyICosIC4uLikKQEAgLTE0NywxMSArMTQ5LDEyIEBAIGV4dGVybiBfTm9yZXR1cm4gdm9pZCBt
NF9mYWlsdXJlIChpbnQsIGNvbnN0IGNoYXIgKiwgLi4uKQogZXh0ZXJuIF9Ob3JldHVybiB2b2lk
IG00X2ZhaWx1cmVfYXRfbGluZSAoaW50LCBjb25zdCBjaGFyICosIGludCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiwgLi4uKQogICBBVFRS
SUJVVEVfRk9STUFUICgoX19wcmludGZfXywgNCwgNSkpOworLyogKklOREVOVC1PTiogKi8KCiAj
ZGVmaW5lIE00RVJST1IoQXJnbGlzdCkgKG00X2Vycm9yIEFyZ2xpc3QpCiAjZGVmaW5lIE00RVJS
T1JfQVRfTElORShBcmdsaXN0KSAobTRfZXJyb3JfYXRfbGluZSBBcmdsaXN0KQotCiAMCisKIC8q
IEZpbGU6IGRlYnVnLmMgIC0tLSBkZWJ1Z2dpbmcgYW5kIHRyYWNpbmcgZnVuY3Rpb24uICAqLwoK
IGV4dGVybiBGSUxFICpkZWJ1ZzsKQEAgLTI3MywxNyArMjc2LDE3IEBAIHN0cnVjdCB0b2tlbl9k
YXRhCiB7CiAgIGVudW0gdG9rZW5fZGF0YV90eXBlIHR5cGU7CiAgIHVuaW9uCisgIHsKKyAgICBz
dHJ1Y3QKICAgICB7Ci0gICAgICBzdHJ1Y3QKLSAgICAgICAgewotICAgICAgICAgIGNoYXIgKnRl
eHQ7CisgICAgICBjaGFyICp0ZXh0OwogI2lmZGVmIEVOQUJMRV9DSEFOR0VXT1JECi0gICAgICAg
ICAgY2hhciAqb3JpZ2luYWxfdGV4dDsKKyAgICAgIGNoYXIgKm9yaWdpbmFsX3RleHQ7CiAjZW5k
aWYKLSAgICAgICAgfQotICAgICAgdV90OwotICAgICAgYnVpbHRpbl9mdW5jICpmdW5jOwogICAg
IH0KKyAgICB1X3Q7CisgICAgYnVpbHRpbl9mdW5jICpmdW5jOworICB9CiAgIHU7CiB9OwoKQEAg
LTM1OSwxMiArMzYyLDEyIEBAIGVudW0gc3ltYm9sX2xvb2t1cAogLyogU3ltYm9sIHRhYmxlIGVu
dHJ5LiAgKi8KIHN0cnVjdCBzeW1ib2wKIHsKLSAgc3RydWN0IHN5bWJvbCAqc3RhY2s7IC8qIHB1
c2hkZWYgc3RhY2sgKi8KLSAgc3RydWN0IHN5bWJvbCAqbmV4dDsgLyogaGFzaCBidWNrZXQgY2hh
aW4gKi8KLSAgYm9vbF9iaXRmaWVsZCB0cmFjZWQgOiAxOwotICBib29sX2JpdGZpZWxkIG1hY3Jv
X2FyZ3MgOiAxOwotICBib29sX2JpdGZpZWxkIGJsaW5kX25vX2FyZ3MgOiAxOwotICBib29sX2Jp
dGZpZWxkIGRlbGV0ZWQgOiAxOworICBzdHJ1Y3Qgc3ltYm9sICpzdGFjazsgICAgICAgICAvKiBw
dXNoZGVmIHN0YWNrICovCisgIHN0cnVjdCBzeW1ib2wgKm5leHQ7ICAgICAgICAgIC8qIGhhc2gg
YnVja2V0IGNoYWluICovCisgIGJvb2xfYml0ZmllbGQgdHJhY2VkOjE7CisgIGJvb2xfYml0Zmll
bGQgbWFjcm9fYXJnczoxOworICBib29sX2JpdGZpZWxkIGJsaW5kX25vX2FyZ3M6MTsKKyAgYm9v
bF9iaXRmaWVsZCBkZWxldGVkOjE7CiAgIGludCBwZW5kaW5nX2V4cGFuc2lvbnM7CgogICBzaXpl
X3QgaGFzaDsKQEAgLTM4Nyw5ICszOTAsOSBAQCB0eXBlZGVmIGVudW0gc3ltYm9sX2xvb2t1cCBz
eW1ib2xfbG9va3VwOwogdHlwZWRlZiBzdHJ1Y3Qgc3ltYm9sIHN5bWJvbDsKIHR5cGVkZWYgdm9p
ZCBoYWNrX3N5bWJvbCAoc3ltYm9sICosIHZvaWQgKik7CgotI2RlZmluZSBIQVNITUFYIDY1NTM3
ICAgICAgICAgICAgIC8qIGRlZmF1bHQsIG92ZXJyaWRkZW4gYnkgLUhzaXplICovCisjZGVmaW5l
IEhBU0hNQVggNjU1MzcgICAgICAgICAgIC8qIGRlZmF1bHQsIG92ZXJyaWRkZW4gYnkgLUhzaXpl
ICovCgotZXh0ZXJuIHZvaWQgZnJlZV9zeW1ib2wgKHN5bWJvbCAqc3ltKTsKK2V4dGVybiB2b2lk
IGZyZWVfc3ltYm9sIChzeW1ib2wgKiBzeW0pOwogZXh0ZXJuIHZvaWQgc3ltdGFiX2luaXQgKHZv
aWQpOwogZXh0ZXJuIHN5bWJvbCAqbG9va3VwX3N5bWJvbCAoY29uc3QgY2hhciAqLCBzeW1ib2xf
bG9va3VwKTsKIGV4dGVybiB2b2lkIGhhY2tfYWxsX3N5bWJvbHMgKGhhY2tfc3ltYm9sICosIHZv
aWQgKik7CkBAIC00MDYsOSArNDA5LDkgQEAgZXh0ZXJuIHZvaWQgY2FsbF9tYWNybyAoc3ltYm9s
ICosIGludCwgdG9rZW5fZGF0YSAqKiwgc3RydWN0IG9ic3RhY2sgKik7CiBzdHJ1Y3QgYnVpbHRp
bgogewogICBjb25zdCBjaGFyICpuYW1lOwotICBib29sX2JpdGZpZWxkIGdudV9leHRlbnNpb24g
OiAxOwotICBib29sX2JpdGZpZWxkIGdyb2tzX21hY3JvX2FyZ3MgOiAxOwotICBib29sX2JpdGZp
ZWxkIGJsaW5kX2lmX25vX2FyZ3MgOiAxOworICBib29sX2JpdGZpZWxkIGdudV9leHRlbnNpb246
MTsKKyAgYm9vbF9iaXRmaWVsZCBncm9rc19tYWNyb19hcmdzOjE7CisgIGJvb2xfYml0ZmllbGQg
YmxpbmRfaWZfbm9fYXJnczoxOwogICBidWlsdGluX2Z1bmMgKmZ1bmM7CiB9OwoKQEAgLTQzNSw5
ICs0MzgsMTQgQEAgZXh0ZXJuIHZvaWQgc2V0X21hY3JvX3NlcXVlbmNlIChjb25zdCBjaGFyICop
OwogZXh0ZXJuIHZvaWQgZnJlZV9tYWNyb19zZXF1ZW5jZSAodm9pZCk7CiBleHRlcm4gdm9pZCBk
ZWZpbmVfdXNlcl9tYWNybyAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIHN5bWJvbF9sb29r
dXApOwogZXh0ZXJuIHZvaWQgdW5kaXZlcnRfYWxsICh2b2lkKTsKLWV4dGVybiB2b2lkIGV4cGFu
ZF91c2VyX21hY3JvIChzdHJ1Y3Qgb2JzdGFjayAqLCBzeW1ib2wgKiwgaW50LCB0b2tlbl9kYXRh
ICoqKTsKK2V4dGVybiB2b2lkIGV4cGFuZF91c2VyX21hY3JvIChzdHJ1Y3Qgb2JzdGFjayAqLCBz
eW1ib2wgKiwgaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuX2RhdGEg
KiopOworCisvKiAqSU5ERU5ULU9GRiogKi8KIGV4dGVybiB2b2lkIG00X3BsYWNlaG9sZGVyIChz
dHJ1Y3Qgb2JzdGFjayAqLCBpbnQsIHRva2VuX2RhdGEgKiopCiAgIEFUVFJJQlVURV9DT0xEOwor
LyogKklOREVOVC1PTiogKi8KKwogZXh0ZXJuIHZvaWQgaW5pdF9wYXR0ZXJuX2J1ZmZlciAoc3Ry
dWN0IHJlX3BhdHRlcm5fYnVmZmVyICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3QgcmVfcmVnaXN0ZXJzICopOwogZXh0ZXJuIGNvbnN0IGNoYXIgKm50b2EgKGludDMy
X3QsIGludCk7CkBAIC00ODcsNyArNDk1LDExIEBAIGV4dGVybiB2b2lkIHJlbG9hZF9mcm96ZW5f
c3RhdGUgKGNvbnN0IGNoYXIgKik7CiAgICBhIGJpdCBzYWZlciB0aGFuIGNhc3RpbmcgdG8gdW5z
aWduZWQgY2hhciwgc2luY2UgaXQgY2F0Y2hlcyBzb21lIHR5cGUKICAgIGVycm9ycyB0aGF0IHRo
ZSBjYXN0IGRvZXNuJ3QuICAqLwogI2lmIEhBVkVfSU5MSU5FCi1zdGF0aWMgaW5saW5lIHVuc2ln
bmVkIGNoYXIgdG9fdWNoYXIgKGNoYXIgY2gpIHsgcmV0dXJuIGNoOyB9CitzdGF0aWMgaW5saW5l
IHVuc2lnbmVkIGNoYXIKK3RvX3VjaGFyIChjaGFyIGNoKQoreworICByZXR1cm4gY2g7Cit9CiAj
ZWxzZQogIyBkZWZpbmUgdG9fdWNoYXIoQykgKCh1bnNpZ25lZCBjaGFyKSAoQykpCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL3NyYy9tYWNyby5jIGIvc3JjL21hY3JvLmMKaW5kZXggMGUwMmI0M2MuLmVh
ODFhMzMwIDEwMDY0NAotLS0gYS9zcmMvbWFjcm8uYworKysgYi9zcmMvbWFjcm8uYwpAQCAtODUs
NyArODUsNyBAQCBleHBhbmRfdG9rZW4gKHN0cnVjdCBvYnN0YWNrICpvYnMsIHRva2VuX3R5cGUg
dCwgdG9rZW5fZGF0YSAqdGQsIGludCBsaW5lKQogICBzeW1ib2wgKnN5bTsKCiAgIHN3aXRjaCAo
dCkKLSAgICB7IC8qIFRPS1NXICovCisgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q
IFRPS1NXICovCiAgICAgY2FzZSBUT0tFTl9FT0Y6CiAgICAgY2FzZSBUT0tFTl9NQUNERUY6CiAg
ICAgICBicmVhazsKQEAgLTEwMyw4ICsxMDMsNyBAQCBleHBhbmRfdG9rZW4gKHN0cnVjdCBvYnN0
YWNrICpvYnMsIHRva2VuX3R5cGUgdCwgdG9rZW5fZGF0YSAqdGQsIGludCBsaW5lKQogICAgICAg
c3ltID0gbG9va3VwX3N5bWJvbCAoVE9LRU5fREFUQV9URVhUICh0ZCksIFNZTUJPTF9MT09LVVAp
OwogICAgICAgaWYgKHN5bSA9PSBOVUxMIHx8IFNZTUJPTF9UWVBFIChzeW0pID09IFRPS0VOX1ZP
SUQKICAgICAgICAgICB8fCAoU1lNQk9MX1RZUEUgKHN5bSkgPT0gVE9LRU5fRlVOQwotICAgICAg
ICAgICAgICAmJiBTWU1CT0xfQkxJTkRfTk9fQVJHUyAoc3ltKQotICAgICAgICAgICAgICAmJiBw
ZWVrX3Rva2VuICgpICE9IFRPS0VOX09QRU4pKQorICAgICAgICAgICAgICAmJiBTWU1CT0xfQkxJ
TkRfTk9fQVJHUyAoc3ltKSAmJiBwZWVrX3Rva2VuICgpICE9IFRPS0VOX09QRU4pKQogICAgICAg
ICB7CiAjaWZkZWYgRU5BQkxFX0NIQU5HRVdPUkQKICAgICAgICAgICBzaGlwb3V0X3RleHQgKG9i
cywgVE9LRU5fREFUQV9PUklHX1RFWFQgKHRkKSwKQEAgLTE2MSw3ICsxNjAsNyBAQCBleHBhbmRf
YXJndW1lbnQgKHN0cnVjdCBvYnN0YWNrICpvYnMsIHRva2VuX2RhdGEgKmFyZ3ApCiAgICAgewoK
ICAgICAgIHN3aXRjaCAodCkKLSAgICAgICAgeyAvKiBUT0tTVyAqLworICAgICAgICB7ICAgICAg
ICAgICAgICAgICAgICAgICAvKiBUT0tTVyAqLwogICAgICAgICBjYXNlIFRPS0VOX0NPTU1BOgog
ICAgICAgICBjYXNlIFRPS0VOX0NMT1NFOgogICAgICAgICAgIGlmIChwYXJlbl9sZXZlbCA9PSAw
KQpAQCAtMjQwLDcgKzIzOSw3IEBAIGNvbGxlY3RfYXJndW1lbnRzIChzeW1ib2wgKnN5bSwgc3Ry
dWN0IG9ic3RhY2sgKmFyZ3B0ciwKCiAgIGlmIChwZWVrX3Rva2VuICgpID09IFRPS0VOX09QRU4p
CiAgICAgewotICAgICAgbmV4dF90b2tlbiAoJnRkLCBOVUxMKTsgLyogZ29iYmxlIHBhcmVudGhl
c2lzICovCisgICAgICBuZXh0X3Rva2VuICgmdGQsIE5VTEwpOyAgIC8qIGdvYmJsZSBwYXJlbnRo
ZXNpcyAqLwogICAgICAgZG8KICAgICAgICAgewogICAgICAgICAgIG1vcmVfYXJncyA9IGV4cGFu
ZF9hcmd1bWVudCAoYXJndW1lbnRzLCAmdGQpOwpAQCAtMjcwLDcgKzI2OSw3IEBAIGNvbGxlY3Rf
YXJndW1lbnRzIChzeW1ib2wgKnN5bSwgc3RydWN0IG9ic3RhY2sgKmFyZ3B0ciwKCiB2b2lkCiBj
YWxsX21hY3JvIChzeW1ib2wgKnN5bSwgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2LAotICAg
ICAgICAgICAgICAgICBzdHJ1Y3Qgb2JzdGFjayAqZXhwYW5zaW9uKQorICAgICAgICAgICAgc3Ry
dWN0IG9ic3RhY2sgKmV4cGFuc2lvbikKIHsKICAgc3dpdGNoIChTWU1CT0xfVFlQRSAoc3ltKSkK
ICAgICB7CkBAIC0zMjksNyArMzI4LDggQEAgZXhwYW5kX21hY3JvIChzeW1ib2wgKnN5bSkKICAg
U1lNQk9MX1BFTkRJTkdfRVhQQU5TSU9OUyAoc3ltKSsrOwogICBleHBhbnNpb25fbGV2ZWwrKzsK
ICAgaWYgKG5lc3RpbmdfbGltaXQgPiAwICYmIGV4cGFuc2lvbl9sZXZlbCA+IG5lc3RpbmdfbGlt
aXQpCi0gICAgbTRfZmFpbHVyZSAoMCwgXygicmVjdXJzaW9uIGxpbWl0IG9mICVkIGV4Y2VlZGVk
LCB1c2UgLUw8Tj4gdG8gY2hhbmdlIGl0IiksCisgICAgbTRfZmFpbHVyZSAoMCwKKyAgICAgICAg
ICAgICAgICBfKCJyZWN1cnNpb24gbGltaXQgb2YgJWQgZXhjZWVkZWQsIHVzZSAtTDxOPiB0byBj
aGFuZ2UgaXQiKSwKICAgICAgICAgICAgICAgICBuZXN0aW5nX2xpbWl0KTsKCiAgIG1hY3JvX2Nh
bGxfaWQrKzsKZGlmZiAtLWdpdCBhL3NyYy9vdXRwdXQuYyBiL3NyYy9vdXRwdXQuYwppbmRleCA4
NGYxNTEzZS4uMzgxZWY2ZmIgMTAwNjQ0Ci0tLSBhL3NyYy9vdXRwdXQuYworKysgYi9zcmMvb3V0
cHV0LmMKQEAgLTYyLDE3ICs2MiwxNyBAQCB0eXBlZGVmIHN0cnVjdCB0ZW1wX2RpciBtNF90ZW1w
X2RpcjsKIHR5cGVkZWYgc3RydWN0IG00X2RpdmVyc2lvbiBtNF9kaXZlcnNpb247Cgogc3RydWN0
IG00X2RpdmVyc2lvbgoreworICB1bmlvbgogICB7Ci0gICAgdW5pb24KLSAgICAgIHsKLSAgICAg
ICAgRklMRSAqZmlsZTsgICAgICAgICAgICAgLyogRGl2ZXJzaW9uIGZpbGUgb24gZGlzay4gICov
Ci0gICAgICAgIGNoYXIgKmJ1ZmZlcjsgICAgICAgICAgIC8qIE1hbGxvYydkIGRpdmVyc2lvbiBi
dWZmZXIuICAqLwotICAgICAgICBtNF9kaXZlcnNpb24gKm5leHQ7ICAgICAvKiBGcmVlLWxpc3Qg
cG9pbnRlciAqLwotICAgICAgfSB1OwotICAgIGludCBkaXZudW07ICAgICAgICAgICAgICAgICAv
KiBXaGljaCBkaXZlcnNpb24gdGhpcyByZXByZXNlbnRzLiAgKi8KLSAgICBpbnQgc2l6ZTsgICAg
ICAgICAgICAgICAgICAgLyogVXNhYmxlIHNpemUgYmVmb3JlIHJlYWxsb2NhdGlvbi4gICovCi0g
ICAgaW50IHVzZWQ7ICAgICAgICAgICAgICAgICAgIC8qIFVzZWQgYnVmZmVyIGxlbmd0aCwgb3Ig
dG1wIGZpbGUgZXhpc3RzLiAgKi8KLSAgfTsKKyAgICBGSUxFICpmaWxlOyAgICAgICAgICAgICAg
ICAgLyogRGl2ZXJzaW9uIGZpbGUgb24gZGlzay4gICovCisgICAgY2hhciAqYnVmZmVyOyAgICAg
ICAgICAgICAgIC8qIE1hbGxvYydkIGRpdmVyc2lvbiBidWZmZXIuICAqLworICAgIG00X2RpdmVy
c2lvbiAqbmV4dDsgICAgICAgICAvKiBGcmVlLWxpc3QgcG9pbnRlciAqLworICB9IHU7CisgIGlu
dCBkaXZudW07ICAgICAgICAgICAgICAgICAgIC8qIFdoaWNoIGRpdmVyc2lvbiB0aGlzIHJlcHJl
c2VudHMuICAqLworICBpbnQgc2l6ZTsgICAgICAgICAgICAgICAgICAgICAvKiBVc2FibGUgc2l6
ZSBiZWZvcmUgcmVhbGxvY2F0aW9uLiAgKi8KKyAgaW50IHVzZWQ7ICAgICAgICAgICAgICAgICAg
ICAgLyogVXNlZCBidWZmZXIgbGVuZ3RoLCBvciB0bXAgZmlsZSBleGlzdHMuICAqLworfTsKCiAv
KiBUYWJsZSBvZiBkaXZlcnNpb25zIDEgdGhyb3VnaCBJTlRfTUFYLiAgKi8KIHN0YXRpYyBnbF9v
c2V0X3QgZGl2ZXJzaW9uX3RhYmxlOwpAQCAtMTI5LDggKzEyOSw4IEBAIHN0YXRpYyBpbnQgdG1w
X2ZpbGUyX293bmVyOwoKIC8qIFRydWUgaWYgdG1wX2ZpbGUyIGlzIG1vcmUgcmVjZW50bHkgdXNl
ZC4gICovCiBzdGF0aWMgYm9vbCB0bXBfZmlsZTJfcmVjZW50OwotCiAMCisKIC8qIEludGVybmFs
IHJvdXRpbmVzLiAgKi8KCiAvKiBDYWxsYmFjayBmb3IgY29tcGFyaW5nIGxpc3QgZWxlbWVudHMg
RUxUMSBhbmQgRUxUMiBmb3Igb3JkZXIgaW4KQEAgLTMzMSw3ICszMzEsNyBAQCBtNF90bXByZW1v
dmUgKGludCBkaXZudW0pCiAvKiBUcmFuc2ZlciB0aGUgdGVtcG9yYXJ5IGZpbGUgZm9yIGRpdmVy
c2lvbiBPTEROVU0gdG8gdGhlIHByZXZpb3VzbHkKICAgIHVudXNlZCBkaXZlcnNpb24gTkVXTlVN
LiAgUmV0dXJuIGFuIG9wZW4gc3RyZWFtIHZpc2l0aW5nIHRoZSBuZXcKICAgIHRlbXBvcmFyeSBm
aWxlLCBwb3NpdGlvbmVkIGF0IHRoZSBlbmQsIG9yIGV4aXQgb24gZmFpbHVyZS4gICovCi1zdGF0
aWMgRklMRSoKK3N0YXRpYyBGSUxFICoKIG00X3RtcHJlbmFtZSAoaW50IG9sZG51bSwgaW50IG5l
d251bSkKIHsKICAgLyogbTRfdG1wbmFtZSByZXVzZXMgaXRzIHJldHVybiBidWZmZXIuICAqLwpA
QCAtMzQ2LDcgKzM0Niw4IEBAIG00X3RtcHJlbmFtZSAoaW50IG9sZG51bSwgaW50IG5ld251bSkK
ICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgIGlmIChjbG9zZV9zdHJlYW1fdGVtcCAo
dG1wX2ZpbGUxKSkKLSAgICAgICAgICAgIG00X2ZhaWx1cmUgKGVycm5vLCBfKCJjYW5ub3QgY2xv
c2UgdGVtcG9yYXJ5IGZpbGUgZm9yIGRpdmVyc2lvbiIpKTsKKyAgICAgICAgICAgIG00X2ZhaWx1
cmUgKGVycm5vLAorICAgICAgICAgICAgICAgICAgICAgICAgXygiY2Fubm90IGNsb3NlIHRlbXBv
cmFyeSBmaWxlIGZvciBkaXZlcnNpb24iKSk7CiAgICAgICAgICAgdG1wX2ZpbGUxX293bmVyID0g
MDsKICAgICAgICAgfQogICAgIH0KQEAgLTM1OCw3ICszNTksOCBAQCBtNF90bXByZW5hbWUgKGlu
dCBvbGRudW0sIGludCBuZXdudW0pCiAgICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgICBp
ZiAoY2xvc2Vfc3RyZWFtX3RlbXAgKHRtcF9maWxlMikpCi0gICAgICAgICAgICBtNF9mYWlsdXJl
IChlcnJubywgXygiY2Fubm90IGNsb3NlIHRlbXBvcmFyeSBmaWxlIGZvciBkaXZlcnNpb24iKSk7
CisgICAgICAgICAgICBtNF9mYWlsdXJlIChlcnJubywKKyAgICAgICAgICAgICAgICAgICAgICAg
IF8oImNhbm5vdCBjbG9zZSB0ZW1wb3JhcnkgZmlsZSBmb3IgZGl2ZXJzaW9uIikpOwogICAgICAg
ICAgIHRtcF9maWxlMl9vd25lciA9IDA7CiAgICAgICAgIH0KICAgICB9CkBAIC0zNzAsOCArMzcy
LDggQEAgbTRfdG1wcmVuYW1lIChpbnQgb2xkbnVtLCBpbnQgbmV3bnVtKQogICBmcmVlIChvbGRu
YW1lKTsKICAgcmV0dXJuIG00X3RtcG9wZW4gKG5ld251bSwgZmFsc2UpOwogfQotCiAMCisKIC8q
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLgogfCBPdXRwdXQgaW5pdGlhbGl6YXRpb24uICB8CiBg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KQEAgLTYyNywxNCArNjI5LDM3IEBAIHNoaXBvdXRf
dGV4dCAoc3RydWN0IG9ic3RhY2sgKm9icywgY29uc3QgY2hhciAqdGV4dCwgaW50IGxlbmd0aCwg
aW50IGxpbmUpCgogICAgICAgICAvKiBJbi1saW5lIHNob3J0IHRleHRzLiAgKi8KCi0gICAgICBj
YXNlIDg6IE9VVFBVVF9DSEFSQUNURVIgKCp0ZXh0KTsgdGV4dCsrOyBGQUxMVEhST1VHSDsKLSAg
ICAgIGNhc2UgNzogT1VUUFVUX0NIQVJBQ1RFUiAoKnRleHQpOyB0ZXh0Kys7IEZBTExUSFJPVUdI
OwotICAgICAgY2FzZSA2OiBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7IHRleHQrKzsgRkFMTFRI
Uk9VR0g7Ci0gICAgICBjYXNlIDU6IE9VVFBVVF9DSEFSQUNURVIgKCp0ZXh0KTsgdGV4dCsrOyBG
QUxMVEhST1VHSDsKLSAgICAgIGNhc2UgNDogT1VUUFVUX0NIQVJBQ1RFUiAoKnRleHQpOyB0ZXh0
Kys7IEZBTExUSFJPVUdIOwotICAgICAgY2FzZSAzOiBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7
IHRleHQrKzsgRkFMTFRIUk9VR0g7Ci0gICAgICBjYXNlIDI6IE9VVFBVVF9DSEFSQUNURVIgKCp0
ZXh0KTsgdGV4dCsrOyBGQUxMVEhST1VHSDsKLSAgICAgIGNhc2UgMTogT1VUUFVUX0NIQVJBQ1RF
UiAoKnRleHQpOyBGQUxMVEhST1VHSDsKKyAgICAgIGNhc2UgODoKKyAgICAgICAgT1VUUFVUX0NI
QVJBQ1RFUiAoKnRleHQpOworICAgICAgICB0ZXh0Kys7CisgICAgICAgIEZBTExUSFJPVUdIOwor
ICAgICAgY2FzZSA3OgorICAgICAgICBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7CisgICAgICAg
IHRleHQrKzsKKyAgICAgICAgRkFMTFRIUk9VR0g7CisgICAgICBjYXNlIDY6CisgICAgICAgIE9V
VFBVVF9DSEFSQUNURVIgKCp0ZXh0KTsKKyAgICAgICAgdGV4dCsrOworICAgICAgICBGQUxMVEhS
T1VHSDsKKyAgICAgIGNhc2UgNToKKyAgICAgICAgT1VUUFVUX0NIQVJBQ1RFUiAoKnRleHQpOwor
ICAgICAgICB0ZXh0Kys7CisgICAgICAgIEZBTExUSFJPVUdIOworICAgICAgY2FzZSA0OgorICAg
ICAgICBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7CisgICAgICAgIHRleHQrKzsKKyAgICAgICAg
RkFMTFRIUk9VR0g7CisgICAgICBjYXNlIDM6CisgICAgICAgIE9VVFBVVF9DSEFSQUNURVIgKCp0
ZXh0KTsKKyAgICAgICAgdGV4dCsrOworICAgICAgICBGQUxMVEhST1VHSDsKKyAgICAgIGNhc2Ug
MjoKKyAgICAgICAgT1VUUFVUX0NIQVJBQ1RFUiAoKnRleHQpOworICAgICAgICB0ZXh0Kys7Cisg
ICAgICAgIEZBTExUSFJPVUdIOworICAgICAgY2FzZSAxOgorICAgICAgICBPVVRQVVRfQ0hBUkFD
VEVSICgqdGV4dCk7CisgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgY2FzZSAwOgogICAgICAg
ICByZXR1cm47CgpAQCAtNjU1LDcgKzY4MCw3IEBAIHNoaXBvdXRfdGV4dCAoc3RydWN0IG9ic3Rh
Y2sgKm9icywgY29uc3QgY2hhciAqdGV4dCwgaW50IGxlbmd0aCwgaW50IGxpbmUpCiAgICAgICAg
ICAgb3V0cHV0X2N1cnJlbnRfbGluZSsrOwogI2lmZGVmIERFQlVHX09VVFBVVAogICAgICAgICAg
IHhmcHJpbnRmIChzdGRlcnIsICJERUJVRzogbGluZSAlZCwgY3VyICVkLCBjdXIgb3V0ICVkXG4i
LAotICAgICAgICAgICAgICAgICAgIGxpbmUsIGN1cnJlbnRfbGluZSwgb3V0cHV0X2N1cnJlbnRf
bGluZSk7CisgICAgICAgICAgICAgICAgICAgIGxpbmUsIGN1cnJlbnRfbGluZSwgb3V0cHV0X2N1
cnJlbnRfbGluZSk7CiAjZW5kaWYKCiAgICAgICAgICAgLyogT3V0cHV0IGEgYCNsaW5lIE5VTScg
c3luY2hyb25pemF0aW9uIGRpcmVjdGl2ZSBpZiBuZWVkZWQuCkBAIC02OTQsNyArNzE5LDcgQEAg
c2hpcG91dF90ZXh0IChzdHJ1Y3Qgb2JzdGFjayAqb2JzLCBjb25zdCBjaGFyICp0ZXh0LCBpbnQg
bGVuZ3RoLCBpbnQgbGluZSkKICAgICAgICAgICAgICAgb3V0cHV0X2N1cnJlbnRfbGluZSsrOwog
I2lmZGVmIERFQlVHX09VVFBVVAogICAgICAgICAgICAgICB4ZnByaW50ZiAoc3RkZXJyLCAiREVC
VUc6IGxpbmUgJWQsIGN1ciAlZCwgY3VyIG91dCAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgbGluZSwgY3VycmVudF9saW5lLCBvdXRwdXRfY3VycmVudF9saW5lKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxpbmUsIGN1cnJlbnRfbGluZSwgb3V0cHV0X2N1cnJlbnRfbGluZSk7CiAj
ZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgICBPVVRQVVRfQ0hBUkFDVEVSICgqdGV4dCk7
CkBAIC05NzUsNyArMTAwMCw3IEBAIGZyZWV6ZV9kaXZlcnNpb25zIChGSUxFICpmaWxlKQogICBz
YXZlZF9udW1iZXIgPSBjdXJyZW50X2RpdmVyc2lvbjsKICAgbGFzdF9pbnNlcnRlZCA9IDA7CiAg
IG1ha2VfZGl2ZXJzaW9uICgwKTsKLSAgb3V0cHV0X2ZpbGUgPSBmaWxlOyAvKiBrbHVkZ2UgaW4g
dGhlIGZyb3plbiBmaWxlICovCisgIG91dHB1dF9maWxlID0gZmlsZTsgICAgICAgICAgIC8qIGts
dWRnZSBpbiB0aGUgZnJvemVuIGZpbGUgKi8KCiAgIGl0ZXIgPSBnbF9vc2V0X2l0ZXJhdG9yIChk
aXZlcnNpb25fdGFibGUpOwogICB3aGlsZSAoZ2xfb3NldF9pdGVyYXRvcl9uZXh0ICgmaXRlciwg
JmVsdCkpCmRpZmYgLS1naXQgYS9zcmMvcGF0aC5jIGIvc3JjL3BhdGguYwppbmRleCAzMzUyNGE1
Zi4uNGZmNTFmNDEgMTAwNjQ0Ci0tLSBhL3NyYy9wYXRoLmMKKysrIGIvc3JjL3BhdGguYwpAQCAt
MzMsMTEgKzMzLDExIEBAIHN0cnVjdCBpbmNsdWRlcwoKIHR5cGVkZWYgc3RydWN0IGluY2x1ZGVz
IGluY2x1ZGVzOwoKLXN0YXRpYyBpbmNsdWRlcyAqZGlyX2xpc3Q7ICAgICAgICAgICAgICAvKiB0
aGUgbGlzdCBvZiBwYXRoIGRpcmVjdG9yaWVzICovCi1zdGF0aWMgaW5jbHVkZXMgKmRpcl9saXN0
X2VuZDsgICAgICAgICAgLyogdGhlIGVuZCBvZiBzYW1lICovCi1zdGF0aWMgaW50IGRpcl9tYXhf
bGVuZ3RoOyAgICAgICAgICAgICAgLyogbGVuZ3RoIG9mIGxvbmdlc3QgZGlyZWN0b3J5IG5hbWUg
Ki8KLQorc3RhdGljIGluY2x1ZGVzICpkaXJfbGlzdDsgICAgICAvKiB0aGUgbGlzdCBvZiBwYXRo
IGRpcmVjdG9yaWVzICovCitzdGF0aWMgaW5jbHVkZXMgKmRpcl9saXN0X2VuZDsgIC8qIHRoZSBl
bmQgb2Ygc2FtZSAqLworc3RhdGljIGludCBkaXJfbWF4X2xlbmd0aDsgICAgICAvKiBsZW5ndGgg
b2YgbG9uZ2VzdCBkaXJlY3RvcnkgbmFtZSAqLwogDAorCiB2b2lkCiBpbmNsdWRlX2luaXQgKHZv
aWQpCiB7CkBAIC05MSw3ICs5MSw3IEBAIGFkZF9pbmNsdWRlX2RpcmVjdG9yeSAoY29uc3QgY2hh
ciAqZGlyKQogICBpbmNsLT5sZW4gPSBzdHJsZW4gKGRpcik7CiAgIGluY2wtPmRpciA9IHhzdHJk
dXAgKGRpcik7CgotICBpZiAoaW5jbC0+bGVuID4gZGlyX21heF9sZW5ndGgpIC8qIHJlbWVtYmVy
IGxlbiBvZiBsb25nZXN0IGRpcmVjdG9yeSAqLworICBpZiAoaW5jbC0+bGVuID4gZGlyX21heF9s
ZW5ndGgpICAgICAgIC8qIHJlbWVtYmVyIGxlbiBvZiBsb25nZXN0IGRpcmVjdG9yeSAqLwogICAg
IGRpcl9tYXhfbGVuZ3RoID0gaW5jbC0+bGVuOwoKICAgaWYgKGRpcl9saXN0X2VuZCA9PSBOVUxM
KQpkaWZmIC0tZ2l0IGEvc3JjL3N5bXRhYi5jIGIvc3JjL3N5bXRhYi5jCmluZGV4IGVjM2JhMmEz
Li5mNGE1MTk3YiAxMDA2NDQKLS0tIGEvc3JjL3N5bXRhYi5jCisrKyBiL3NyYy9zeW10YWIuYwpA
QCAtNDAsMTAgKzQwLDExIEBACgogc3RydWN0IHByb2ZpbGUKIHsKLSAgaW50IGVudHJ5OyAvKiBO
dW1iZXIgb2YgdGltZXMgbG9va3VwX3N5bWJvbCBjYWxsZWQgd2l0aCB0aGlzIG1vZGUuICAqLwot
ICBpbnQgY29tcGFyaXNvbnM7IC8qIE51bWJlciBvZiB0aW1lcyBzdHJjbXAgd2FzIGNhbGxlZC4g
ICovCi0gIGludCBtaXNzZXM7IC8qIE51bWJlciBvZiB0aW1lcyBzdHJjbXAgZGlkIG5vdCByZXR1
cm4gMC4gICovCi0gIGxvbmcgbG9uZyBieXRlczsgLyogTnVtYmVyIG9mIGJ5dGVzIGNvbXBhcmVk
LiAgKi8KKyAgaW50IGVudHJ5OyAgICAgICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIHRpbWVz
IGxvb2t1cF9zeW1ib2wgY2FsbGVkIHdpdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpcyBtb2RlLiAgKi8KKyAgaW50IGNvbXBhcmlzb25zOyAgICAgICAgICAgICAgLyog
TnVtYmVyIG9mIHRpbWVzIHN0cmNtcCB3YXMgY2FsbGVkLiAgKi8KKyAgaW50IG1pc3NlczsgICAg
ICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIHRpbWVzIHN0cmNtcCBkaWQgbm90IHJldHVybiAw
LiAgKi8KKyAgbG9uZyBsb25nIGJ5dGVzOyAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIGJ5dGVz
IGNvbXBhcmVkLiAgKi8KIH07Cgogc3RhdGljIHN0cnVjdCBwcm9maWxlIHByb2ZpbGVzWzVdOwpA
QCAtNTYsMTAgKzU3LDEwIEBAIHNob3dfcHJvZmlsZSAodm9pZCkKICAgaW50IGk7CiAgIGZvciAo
aSA9IDA7IGkgPCA1OyBpKyspCiAgICAgewotICAgICAgeGZwcmludGYoc3RkZXJyLCAibTQ6IGxv
b2t1cCBtb2RlICVkIGNhbGxlZCAlZCB0aW1lcywgJWQgY29tcGFyZXMsICIKLSAgICAgICAgICAg
ICAgICIlZCBtaXNzZXMsICVsbGQgYnl0ZXNcbiIsCi0gICAgICAgICAgICAgICBpLCBwcm9maWxl
c1tpXS5lbnRyeSwgcHJvZmlsZXNbaV0uY29tcGFyaXNvbnMsCi0gICAgICAgICAgICAgICBwcm9m
aWxlc1tpXS5taXNzZXMsIHByb2ZpbGVzW2ldLmJ5dGVzKTsKKyAgICAgIHhmcHJpbnRmIChzdGRl
cnIsICJtNDogbG9va3VwIG1vZGUgJWQgY2FsbGVkICVkIHRpbWVzLCAlZCBjb21wYXJlcywgIgor
ICAgICAgICAgICAgICAgICIlZCBtaXNzZXMsICVsbGQgYnl0ZXNcbiIsCisgICAgICAgICAgICAg
ICAgaSwgcHJvZmlsZXNbaV0uZW50cnksIHByb2ZpbGVzW2ldLmNvbXBhcmlzb25zLAorICAgICAg
ICAgICAgICAgIHByb2ZpbGVzW2ldLm1pc3NlcywgcHJvZmlsZXNbaV0uYnl0ZXMpOwogICAgIH0K
IH0KCkBAIC04NSw4ICs4Niw4IEBAIHByb2ZpbGVfc3RyY21wIChjb25zdCBjaGFyICpzMSwgY29u
c3QgY2hhciAqczIpCgogIyBkZWZpbmUgc3RyY21wIHByb2ZpbGVfc3RyY21wCiAjZW5kaWYgLyog
REVCVUdfU1lNICovCi0KIAwKKwogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCiB8IEluaXRpYWxpc2UgdGhlIHN5bWJv
bCB0YWJsZSwgYnkgYWxsb2NhdGluZyB0aGUgbmVjZXNzYXJ5IHN0b3JhZ2UsIHwKIHwgYW5kIHpl
cm9pbmcgYWxsIHRoZSBlbnRyaWVzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfApAQCAtMTA4LDcgKzEwOSw3IEBAIHN5bXRhYl9pbml0ICh2b2lkKQoKICNpZmRlZiBERUJV
R19TWU0KICAgewotICAgIGludCBlID0gYXRleGl0KHNob3dfcHJvZmlsZSk7CisgICAgaW50IGUg
PSBhdGV4aXQgKHNob3dfcHJvZmlsZSk7CiAgICAgaWYgKGUgIT0gMCkKICAgICAgIE00RVJST1Ig
KCh3YXJuaW5nX3N0YXR1cywgMCwKICAgICAgICAgICAgICAgICAiSU5URVJOQUwgRVJST1I6IHVu
YWJsZSB0byBzaG93IHN5bXRhYiBwcm9maWxlIikpOwpAQCAtMTQzLDEwICsxNDQsMTEgQEAgZnJl
ZV9zeW1ib2wgKHN5bWJvbCAqc3ltKQogICBpZiAoU1lNQk9MX1BFTkRJTkdfRVhQQU5TSU9OUyAo
c3ltKSA+IDApCiAgICAgewogICAgICAgU1lNQk9MX0RFTEVURUQgKHN5bSkgPSB0cnVlOwotICAg
ICAgaWYgKFNZTUJPTF9TVEFDSyAoc3ltKSkgewotICAgICAgICBTWU1CT0xfTkFNRSAoc3ltKSA9
IHhzdHJkdXAgKFNZTUJPTF9OQU1FIChzeW0pKTsKLSAgICAgICAgU1lNQk9MX1NUQUNLIChzeW0p
ID0gTlVMTDsKLSAgICAgIH0KKyAgICAgIGlmIChTWU1CT0xfU1RBQ0sgKHN5bSkpCisgICAgICAg
IHsKKyAgICAgICAgICBTWU1CT0xfTkFNRSAoc3ltKSA9IHhzdHJkdXAgKFNZTUJPTF9OQU1FIChz
eW0pKTsKKyAgICAgICAgICBTWU1CT0xfU1RBQ0sgKHN5bSkgPSBOVUxMOworICAgICAgICB9CiAg
ICAgfQogICBlbHNlCiAgICAgewpAQCAtMjAzLDcgKzIwNSw3IEBAIGxvb2t1cF9zeW1ib2wgKGNv
bnN0IGNoYXIgKm5hbWUsIHN5bWJvbF9sb29rdXAgbW9kZSkKCiAgIC8qIFN5bWJvbCBub3QgZm91
bmQuICAqLwoKLSAgc3BwID0gKHByZXYgIT0gTlVMTCkgPyAgJnByZXYtPm5leHQgOiAmc3ltdGFi
W2ggJSBoYXNoX3RhYmxlX3NpemVdOworICBzcHAgPSAocHJldiAhPSBOVUxMKSA/ICZwcmV2LT5u
ZXh0IDogJnN5bXRhYltoICUgaGFzaF90YWJsZV9zaXplXTsKCiAgIHN3aXRjaCAobW9kZSkKICAg
ICB7CkBAIC0yODUsMTIgKzI4NywxMSBAQCBsb29rdXBfc3ltYm9sIChjb25zdCBjaGFyICpuYW1l
LCBzeW1ib2xfbG9va3VwIG1vZGUpCiAgICAgICBpZiAoY21wICE9IDApCiAgICAgICAgIHJldHVy
biBOVUxMOwogICAgICAgaWYgKHN5bSA9PSBOVUxMKQotCXJldHVybiBOVUxMOworICAgICAgICBy
ZXR1cm4gTlVMTDsKICAgICAgIHsKICAgICAgICAgYm9vbCB0cmFjZWQgPSBmYWxzZTsKICAgICAg
ICAgc3ltYm9sICpuZXh0OwotICAgICAgICBpZiAoU1lNQk9MX1NUQUNLIChzeW0pICE9IE5VTEwK
LSAgICAgICAgICAgICYmIG1vZGUgPT0gU1lNQk9MX1BPUERFRikKKyAgICAgICAgaWYgKFNZTUJP
TF9TVEFDSyAoc3ltKSAhPSBOVUxMICYmIG1vZGUgPT0gU1lNQk9MX1BPUERFRikKICAgICAgICAg
ICB7CiAgICAgICAgICAgICBTWU1CT0xfVFJBQ0VEIChTWU1CT0xfU1RBQ0sgKHN5bSkpID0gU1lN
Qk9MX1RSQUNFRCAoc3ltKTsKICAgICAgICAgICAgIFNZTUJPTF9TVEFDSyAoc3ltKS0+bmV4dCA9
IHN5bS0+bmV4dDsKLS0gCjIuNDguMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk00LXBhdGNoZXMgbWFpbGluZyBsaXN0Ck00LXBhdGNoZXNAZ251Lm9y
ZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9tNC1wYXRjaGVzCg==