[PATCH 2/3 v2] Provide SSL/TLS compression configuration options

Simon Horman <[email protected]> Wed, 11 May 2016 09:50:20 +0900
Newsgroups gmane.mail.perdition.user
Message-ID <7ee220600234f0202013.1462927820@Reginn.isobedori.kobe.vergenet.net>
RGlzYWJsZSBTU0wvVExTIGNvbXByZXNzaW9uIGJ5IGRlZmF1bHQgYW5kIGFsbG93IGl0IHRvIGJl
IGVuYWJsZWQgYnkgbmV3CmNvbmZpZ3VyYXRpb24gb3B0aW9ucyBpbmRlcGVuZGVudGx5IGZvciBh
Y2NlcHRpbmcgaW5jb21pbmcgY29ubmVjdGlvbnMKKGxpc3RlbmluZykgYW5kIG1ha2luZyBvdXRn
b2luZyBjb25uZWN0aW9ucy4KCkJhc2VkIG9uIHdvcmsgYnkgTWF0dGhpYXMgSHVuc3RvY2suCgpD
YzogTWF0dGhpYXMgSHVuc3RvY2sgPG1hdHRoaWFzLmh1bnN0b2NrQHR1LWlsbWVuYXUuZGU+ClNp
Z25lZC1vZmYtYnk6IFNpbW9uIEhvcm1hbiA8aG9ybXNAdmVyZ2UubmV0LmF1PgotLS0KTGlnaHRs
eSB0ZXN0ZWQKCnYyCiogTmV3IHBhdGNoCgpkaWZmIC1yIDY0MjgwNzBiNDg4OSBjb25maWd1cmUu
YWMKLS0tIGEvY29uZmlndXJlLmFjCVN1biBEZWMgMDEgMTc6MjY6NTEgMjAxMyArMDkwMAorKysg
Yi9jb25maWd1cmUuYWMJVHVlIE1heSAxMCAyMjowMTo0NSAyMDE2ICswOTAwCkBAIC0yMTEsNiAr
MjExLDkgQEAKCiBpZiB0ZXN0ICIkZW5hYmxlX3NzbCIgPSAieWVzIjsgdGhlbgogICAgQUNfREVG
SU5FKFdJVEhfU1NMX1NVUFBPUlQsIDEsIENvbXBpbGUgd2l0aCBTU0wvVExTIHN1cHBvcnQpCisg
ICBBQ19DSEVDS19MSUIoc3NsLCBTU0xfQ1RYX3NldF9taW5fcHJvdG9fdmVyc2lvbikKKyAgIEFD
X0NIRUNLX0RFQ0xTKFtTU0xfQ1RYX3NldF9taW5fcHJvdG9fdmVyc2lvbl0sIFtdLCBbXSwgW1sj
aW5jbHVkZSA8b3BlbnNzbC9zc2wuaD5dXSkKKyAgIEFDX0NIRUNLX0RFQ0xTKFtTU0xfQ1RYX3Nl
dF9tYXhfcHJvdG9fdmVyc2lvbl0sIFtdLCBbXSwgW1sjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD5d
XSkKIGVsc2UKICAgc3NsX2xpYj0iIgogICBzc2xfaW5jbHVkZXM9IiIKZGlmZiAtciA2NDI4MDcw
YjQ4ODkgZXRjL3BlcmRpdGlvbi9wZXJkaXRpb24uY29uZgotLS0gYS9ldGMvcGVyZGl0aW9uL3Bl
cmRpdGlvbi5jb25mCVN1biBEZWMgMDEgMTc6MjY6NTEgMjAxMyArMDkwMAorKysgYi9ldGMvcGVy
ZGl0aW9uL3BlcmRpdGlvbi5jb25mCVR1ZSBNYXkgMTAgMjI6MDE6NDUgMjAxNiArMDkwMApAQCAt
NDAzLDMgKzQwMywzMCBAQAogIyB0byBjb25uZWN0IHRvIHRoZSBzZXJ2ZXIuCiAjc3NsX25vX2Nu
X3ZlcmlmeQoKKyMgc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbiBQUk9UT0NPTF9WRVJTSU9O
OgorIyBNaW5pbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lvbiB3aGVuIGFjY2Vw
dGluZyBpbmNvbWluZworIyBjb25uZWN0aW9ucy4KKyMgSWYgZW1wdHkgKCIiKSB0aGVuIG9wZW5z
c2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC4KKyMgKGRlZmF1bHQgInRsc3YxIikKKyNzc2xfbGlz
dGVuX21pbl9wcm90b192ZXJzaW9uICJ0bHN2MSIKKworIyBzc2xfb3V0Z29pbmdfbWluX3Byb3Rv
X3ZlcnNpb24gUFJPVE9DT0xfVkVSU0lPTjoKKyMgTWluaW11bSBwZXJtaXRlZCBTU0wvVExTIHBy
b3RvY29sIHZlcnNpb24gd2hlbiBtYWtpbmcgb3V0Z29pbmcKKyMgY29ubmVjdGlvbnMuCisjIElm
IGVtcHR5ICgiIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3aWxsIGJlIHVzZWQuCisjIChkZWZh
dWx0ICJ0bHN2MSIpCisjc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uICJ0bHN2MSIKKwor
IyBzc2xfbGlzdGVuX21heF9wcm90b192ZXJzaW9uIFBST1RPQ09MX1ZFUlNJT046CisjIE1heGlt
dW0gcGVybWl0ZWQgU1NML1RMUyBwcm90b2NvbCB2ZXJzaW9uIHdoZW4gYWNjZXB0aW5nIGluY29t
YXhnCisjIGNvbm5lY3Rpb25zLgorIyBJZiBlbXB0eSAoIiIpIHRoZW4gb3BlbnNzbCdzIGRlZmF1
bHQgd2lsbCBiZSB1c2VkLgorIyAoZGVmYXVsdCAiIikKKyNzc2xfbGlzdGVuX21heF9wcm90b192
ZXJzaW9uICJ0bHN2MS4yIgorCisjIHNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lvbiBQUk9U
T0NPTF9WRVJTSU9OOgorIyBNYXhpbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lv
biB3aGVuIG1ha2luZyBvdXRnb2luZworIyBjb25uZWN0aW9ucy4KKyMgSWYgZW1wdHkgKCIiKSB0
aGVuIG9wZW5zc2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC4KKyMgKGRlZmF1bHQgIiIpCisjc3Ns
X291dGdvaW5nX21heF9wcm90b192ZXJzaW9uICJ0bHN2MS4yIgpkaWZmIC1yIDY0MjgwNzBiNDg4
OSBwZXJkaXRpb24vb3B0aW9ucy5jCi0tLSBhL3BlcmRpdGlvbi9vcHRpb25zLmMJU3VuIERlYyAw
MSAxNzoyNjo1MSAyMDEzICswOTAwCisrKyBiL3BlcmRpdGlvbi9vcHRpb25zLmMJVHVlIE1heSAx
MCAyMjowMTo0NSAyMDE2ICswOTAwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAib3B0aW9u
cy5oIgogI2luY2x1ZGUgImNvbmZpZ19maWxlLmgiCiAjaW5jbHVkZSAicGVyZGl0aW9uX2dsb2Jh
bHMuaCIKKyNpbmNsdWRlICJzc2wuaCIKCiAjaWZkZWYgRE1BTExPQwogI2luY2x1ZGUgPGRtYWxs
b2MuaD4KQEAgLTQ4OCw2ICs0ODksMTQgQEAKICAgICAgIFRBR19TU0xfUEFTU1BIUkFTRV9GRCwg
TlVMTCwgTlVMTH0sCiAgICAgeyJzc2xfcGFzc3BocmFzZV9maWxlIiwgICAgICAgICAnXDAnLCBQ
T1BUX0FSR19TVFJJTkcsIE5VTEwsCiAgICAgICBUQUdfU1NMX1BBU1NQSFJBU0VfRklMRSwgTlVM
TCwgTlVMTH0sCisgICAgeyJzc2xfbGlzdGVuX21pbl9wcm90b192ZXJzaW9uIiwgJ1wwJywgUE9Q
VF9BUkdfU1RSSU5HLCBOVUxMLAorICAgICAgVEFHX1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJ
T04sIE5VTEwsIE5VTEx9LAorICAgIHsic3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIiwg
J1wwJywgUE9QVF9BUkdfU1RSSU5HLCBOVUxMLAorICAgICAgVEFHX1NTTF9PVVRHT0lOR19NSU5f
UFJPVE9fVkVSU0lPTiwgTlVMTCwgTlVMTH0sCisgICAgeyJzc2xfbGlzdGVuX21heF9wcm90b192
ZXJzaW9uIiwgJ1wwJywgUE9QVF9BUkdfU1RSSU5HLCBOVUxMLAorICAgICAgVEFHX1NTTF9MSVNU
RU5fTUFYX1BST1RPX1ZFUlNJT04sIE5VTEwsIE5VTEx9LAorICAgIHsic3NsX291dGdvaW5nX21h
eF9wcm90b192ZXJzaW9uIiwgJ1wwJywgUE9QVF9BUkdfU1RSSU5HLCBOVUxMLAorICAgICAgVEFH
X1NTTF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiwgTlVMTCwgTlVMTH0sCiAgICAge05VTEws
ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAwLCAgICAgICAgICAgICAgIE5VTEwsCiAg
ICAgIDAsIE5VTEwsIE5VTEx9CiAgIH07CkBAIC02MTgsNiArNjI3LDE0IEBACiAJCSAgICAmaSwg
MCwgT1BUX05PVF9TRVQpOwogICAgIG9wdF9wKCYob3B0LnNzbF9wYXNzcGhyYXNlX2ZpbGUpLERF
RkFVTFRfU1NMX1BBU1NQSFJBU0VfRklMRSwKIAkJICAgICZpLCAwLCBPUFRfTk9UX1NFVCk7Cisg
ICAgb3B0X3AoJihvcHQuc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbiksCisJICBERUZBVUxU
X1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJT04sICZpLCAwLCBPUFRfTk9UX1NFVCk7CisgICAg
b3B0X3AoJihvcHQuc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uKSwKKwkgIERFRkFVTFRf
U1NMX09VVEdPSU5HX01JTl9QUk9UT19WRVJTSU9OLCAmaSwgMCwgT1BUX05PVF9TRVQpOworICAg
IG9wdF9wKCYob3B0LnNzbF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb24pLAorCSAgREVGQVVMVF9T
U0xfTElTVEVOX01BWF9QUk9UT19WRVJTSU9OLCAmaSwgMCwgT1BUX05PVF9TRVQpOworICAgIG9w
dF9wKCYob3B0LnNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lvbiksCisJICBERUZBVUxUX1NT
TF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiwgJmksIDAsIE9QVF9OT1RfU0VUKTsKICNlbmRp
ZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCiAgIH0KCkBAIC0xMDEwLDYgKzEwMjcsMzggQEAKIAlO
T19TU0xfT1BUKCJzc2xfcGFzc3BocmFzZV9maWxlIik7CiAjZW5kaWYgLyogV0lUSF9TU0xfU1VQ
UE9SVCAqLwogICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVEFHX1NTTF9MSVNURU5fTUlOX1BS
T1RPX1ZFUlNJT046CisjaWZkZWYgV0lUSF9TU0xfU1VQUE9SVAorICAgICAgICBvcHRfcCgmKG9w
dC5zc2xfbGlzdGVuX21pbl9wcm90b192ZXJzaW9uKSwgb3B0YXJnLCAmKG9wdC5zc2xfbWFzayks
CisJCQlNQVNLX1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJT04sIGYpOworI2Vsc2UgLyogV0lU
SF9TU0xfU1VQUE9SVCAqLworCU5PX1NTTF9PUFQoInNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNp
b24iKTsKKyNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCisgICAgICAgIGJyZWFrOworICAg
ICAgY2FzZSBUQUdfU1NMX09VVEdPSU5HX01JTl9QUk9UT19WRVJTSU9OOgorI2lmZGVmIFdJVEhf
U1NMX1NVUFBPUlQKKyAgICAgICAgb3B0X3AoJihvcHQuc3NsX291dGdvaW5nX21pbl9wcm90b192
ZXJzaW9uKSwgb3B0YXJnLCAmKG9wdC5zc2xfbWFzayksCisJCQlNQVNLX1NTTF9PVVRHT0lOR19N
SU5fUFJPVE9fVkVSU0lPTiwgZik7CisjZWxzZSAvKiBXSVRIX1NTTF9TVVBQT1JUICovCisJTk9f
U1NMX09QVCgic3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIik7CisjZW5kaWYgLyogV0lU
SF9TU0xfU1VQUE9SVCAqLworICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgVEFHX1NTTF9MSVNU
RU5fTUFYX1BST1RPX1ZFUlNJT046CisjaWZkZWYgV0lUSF9TU0xfU1VQUE9SVAorICAgICAgICBv
cHRfcCgmKG9wdC5zc2xfbGlzdGVuX21heF9wcm90b192ZXJzaW9uKSwgb3B0YXJnLCAmKG9wdC5z
c2xfbWFzayksCisJCQlNQVNLX1NTTF9MSVNURU5fTUFYX1BST1RPX1ZFUlNJT04sIGYpOworI2Vs
c2UgLyogV0lUSF9TU0xfU1VQUE9SVCAqLworCU5PX1NTTF9PUFQoInNzbF9saXN0ZW5fbWF4X3By
b3RvX3ZlcnNpb24iKTsKKyNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCisgICAgICAgIGJy
ZWFrOworICAgICAgY2FzZSBUQUdfU1NMX09VVEdPSU5HX01BWF9QUk9UT19WRVJTSU9OOgorI2lm
ZGVmIFdJVEhfU1NMX1NVUFBPUlQKKyAgICAgICAgb3B0X3AoJihvcHQuc3NsX291dGdvaW5nX21h
eF9wcm90b192ZXJzaW9uKSwgb3B0YXJnLCAmKG9wdC5zc2xfbWFzayksCisJCQlNQVNLX1NTTF9P
VVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiwgZik7CisjZWxzZSAvKiBXSVRIX1NTTF9TVVBQT1JU
ICovCisJTk9fU1NMX09QVCgic3NsX291dGdvaW5nX21heF9wcm90b192ZXJzaW9uIik7CisjZW5k
aWYgLyogV0lUSF9TU0xfU1VQUE9SVCAqLworICAgICAgICBicmVhazsKICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgIFZBTkVTU0FfTE9HR0VSX0RFQlVHX1JBVygiVW5rbm93biBPcHRpb24iKTsKICAg
ICAgICAgYnJlYWs7CkBAIC0xMDI5LDYgKzEwNzgsMTAwIEBACiAgICAgfQogICB9CgorICB7CisJ
aW50IG1pbl92ZXIgPSAwOworCWludCBtYXhfdmVyID0gMDsKKworCWlmIChvcHQuc3NsX2xpc3Rl
bl9taW5fcHJvdG9fdmVyc2lvbikgeworCQlWQU5FU1NBX0xPR0dFUl9ERUJVR19SQVcoIm1pbiIp
OworCQltaW5fdmVyID0gcGVyZGl0aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uKAorCQkJCW9w
dC5zc2xfbGlzdGVuX21pbl9wcm90b192ZXJzaW9uKTsKKwkJaWYgKG1pbl92ZXIgPCAwKSB7CisJ
CQlWQU5FU1NBX0xPR0dFUl9ERUJVR19SQVcoIlVua25vd24gc3NsX2xpc3Rlbl9taW5fcHJvdG9f
dmVyc2lvbiIpOworCQkJaWYgKGYgJiBPUFRfRVJSKSB7CisJCQkJdXNhZ2UoLTEpOworCQkJfSBl
bHNlIHsKKwkJCQlwb3B0RnJlZUNvbnRleHQoY29udGV4dCk7CisJCQkJcmV0dXJuIC0xOworCQkJ
fQorCQl9CisJfQorCisJaWYgKG9wdC5zc2xfbGlzdGVuX21heF9wcm90b192ZXJzaW9uKSB7CisJ
CW1heF92ZXIgPSBwZXJkaXRpb25fcGFyc2Vfc3NsX3Byb3RvX3ZlcnNpb24oCisJCQkJb3B0LnNz
bF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb24pOworCQlpZiAobWF4X3ZlciA8IDApIHsKKwkJCVZB
TkVTU0FfTE9HR0VSX0RFQlVHX1JBVygiVW5rbm93biBzc2xfbGlzdGVuX21heF9wcm90b192ZXJz
aW9uIik7CisJCQlpZiAoZiAmIE9QVF9FUlIpIHsKKwkJCQl1c2FnZSgtMSk7CisJCQl9IGVsc2Ug
eworCQkJCXBvcHRGcmVlQ29udGV4dChjb250ZXh0KTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisJ
CX0KKwl9CisKKwlpZiAob3B0LnNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb24gJiYKKwkgICAg
b3B0LnNzbF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb24gJiYgbWluX3ZlciA+IG1heF92ZXIpIHsK
KwkJVkFORVNTQV9MT0dHRVJfREVCVUdfUkFXKCJzc2xfbGlzdGVuX21pbl9wcm90b192ZXJzaW9u
IGlzICIKKwkJCQkJICJncmVhdGVyIHRoYW4gIgorCQkJCQkgInNzbF9saXN0ZW5fbWF4X3Byb3Rv
X3ZlcnNpb24iKTsKKwkJaWYgKGYmT1BUX0VSUikgeworCQkJdXNhZ2UoLTEpOworCQl9IGVsc2Ug
eworCQkJcG9wdEZyZWVDb250ZXh0KGNvbnRleHQpOworCQkJcmV0dXJuIC0xOworCQl9CisJfQor
CisgIH0KKworICB7CisJaW50IG1pbl92ZXIgPSAwOworCWludCBtYXhfdmVyID0gMDsKKworCWlm
IChvcHQuc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbikgeworCQltaW5fdmVyID0gcGVyZGl0
aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uKAorCQkJCW9wdC5zc2xfbGlzdGVuX21pbl9wcm90
b192ZXJzaW9uKTsKKwkJaWYgKG1pbl92ZXIgPCAwKSB7CisJCQlWQU5FU1NBX0xPR0dFUl9ERUJV
R19SQVcoIlVua25vd24gc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIik7CisJCQlpZiAo
ZiAmIE9QVF9FUlIpIHsKKwkJCQl1c2FnZSgtMSk7CisJCQl9IGVsc2UgeworCQkJCXBvcHRGcmVl
Q29udGV4dChjb250ZXh0KTsKKwkJCQlyZXR1cm4gLTE7CisJCQl9CisJCX0KKwl9CisKKwlpZiAo
b3B0LnNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lvbikgeworCQltYXhfdmVyID0gcGVyZGl0
aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uKAorCQkJCW9wdC5zc2xfb3V0Z29pbmdfbWF4X3By
b3RvX3ZlcnNpb24pOworCQlpZiAobWF4X3ZlciA8IDApIHsKKwkJCVZBTkVTU0FfTE9HR0VSX0RF
QlVHX1JBVygiVW5rbm93biBzc2xfb3V0Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb24iKTsKKwkJCWlm
IChmICYgT1BUX0VSUikgeworCQkJCXVzYWdlKC0xKTsKKwkJCX0gZWxzZSB7CisJCQkJcG9wdEZy
ZWVDb250ZXh0KGNvbnRleHQpOworCQkJCXJldHVybiAtMTsKKwkJCX0KKwkJfQorCX0KKworCWlm
IChvcHQuc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbiAmJgorCSAgICBvcHQuc3NsX291dGdv
aW5nX21heF9wcm90b192ZXJzaW9uICYmIG1pbl92ZXIgPiBtYXhfdmVyKSB7CisJCVZBTkVTU0Ff
TE9HR0VSX0RFQlVHX1JBVygic3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIGlzICIKKwkJ
CQkJICJncmVhdGVyIHRoYW4gIgorCQkJCQkgInNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lv
biIpOworCQlpZiAoZiAmIE9QVF9FUlIpIHsKKwkJCXVzYWdlKC0xKTsKKwkJfSBlbHNlIHsKKwkJ
CXBvcHRGcmVlQ29udGV4dChjb250ZXh0KTsKKwkJCXJldHVybiAtMTsKKwkJfQorCX0KKyAgfQor
CiAgIGlmIChjIDwgLTEpIHsKICAgICBWQU5FU1NBX0xPR0dFUl9ERUJVR19VTlNBRkUoICIlczog
JXMiLAogICAgICAgcG9wdEJhZE9wdGlvbihjb250ZXh0LCBQT1BUX0JBRE9QVElPTl9OT0FMSUFT
KSwgcG9wdFN0cmVycm9yKGMpKTsKQEAgLTE0MDAsNiArMTU0MywxMCBAQAogCQkgInNzbF9ub19j
bl92ZXJpZnk9XCIlc1wiICIKIAkJICJzc2xfcGFzc3BocmFzZV9mZD0lZCwgIgogCQkgInNzbF9w
YXNzcGhyYXNlX2ZpbGU9XCIlc1wiLCAiCisJCSAic3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lv
bj1cIiVzXCIsICIKKwkJICJzc2xfb3V0Z29pbmdfbWluX3Byb3RvX3ZlcnNpb249XCIlc1wiLCAi
CisJCSAic3NsX2xpc3Rlbl9tYXhfcHJvdG9fdmVyc2lvbj1cIiVzXCIsICIKKwkJICJzc2xfb3V0
Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb249XCIlc1wiLCAiCiAJCSAiKHNzbF9tYXNrPTB4JTA4eCkg
IiwKIAkJIHNzbF9tb2RlLAogCQkgT1BUX1NUUihvcHQuc3NsX2NhX2ZpbGUpLApAQCAtMTQxOCw2
ICsxNTY1LDEwIEBACiAJCSBCSU5fT1BUX1NUUihvcHQuc3NsX25vX2NuX3ZlcmlmeSksCiAJCSBv
cHQuc3NsX3Bhc3NwaHJhc2VfZmQsCiAJCSBPUFRfU1RSKG9wdC5zc2xfcGFzc3BocmFzZV9maWxl
KSwKKwkJIE9QVF9TVFIob3B0LnNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb24pLAorCQkgT1BU
X1NUUihvcHQuc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uKSwKKwkJIE9QVF9TVFIob3B0
LnNzbF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb24pLAorCQkgT1BUX1NUUihvcHQuc3NsX291dGdv
aW5nX21heF9wcm90b192ZXJzaW9uKSwKIAkJIG9wdC5zc2xfbWFzayk7CiAJb3V0W01BWF9MSU5F
X0xFTkdUSCAtIDFdID0gJ1wwJzsKCkBAIC0xNzE2LDYgKzE4NjcsMjYgQEAKICAgICAiIC0tc3Ns
X3Bhc3NwaHJhc2VfZmlsZSBGSUxFTkFNRTpcbiIKICAgICAiICAgIEZpbGUgZnJvbSB3aXRoIHRo
ZSBwYXNzcGhyYXNlIGZvciB0aGUgY2VydGlmaWNhdGUgaXMgcmVhZC5cbiIKICAgICAiICAgIChk
ZWZhdWx0IFwiJXNcIilcbiIKKyAgICAiIC0tc3NsX2xpc3Rlbl9taW5fcHJvdG9fdmVyc2lvbiBQ
Uk9UT0NPTF9WRVJTSU9OOlxuIgorICAgICIgICAgTWluaW11bSBwZXJtaXRlZCBTU0wvVExTIHBy
b3RvY29sIHZlcnNpb24gd2hlbiBhY2NlcHRpbmcgaW5jb21taW5nXG4iCisgICAgIiAgICBjb25u
ZWN0aW9ucy5cbiIKKyAgICAiICAgIElmIGVtcHR5IChcIlwiKSB0aGVuIG9wZW5zc2wncyBkZWZh
dWx0IHdpbGwgYmUgdXNlZC5cbiIKKyAgICAiICAgIChkZWZhdWx0IFwiJXNcIilcbiIKKyAgICAi
IC0tc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uIFBST1RPQ09MX1ZFUlNJT046XG4iCisg
ICAgIiAgICBNaW5pbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lvbiB3aGVuIG1h
a2luZyBvdXRnb2luZ1xuIgorICAgICIgICAgY29ubmVjdGlvbnMuXG4iCisgICAgIiAgICBJZiBl
bXB0eSAoXCJcIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3aWxsIGJlIHVzZWQuXG4iCisgICAg
IiAgICAoZGVmYXVsdCBcIiVzXCIpXG4iCisgICAgIiAtLXNzbF9saXN0ZW5fbWF4X3Byb3RvX3Zl
cnNpb24gUFJPVE9DT0xfVkVSU0lPTjpcbiIKKyAgICAiICAgIE1heGltdW0gcGVybWl0ZWQgU1NM
L1RMUyBwcm90b2NvbCB2ZXJzaW9uIHdoZW4gYWNjZXB0aW5nIGluY29taW5nXG4iCisgICAgIiAg
ICBjb25uZWN0aW9ucy5cbiIKKyAgICAiICAgIElmIGVtcHR5IChcIlwiKSB0aGVuIG9wZW5zc2wn
cyBkZWZhdWx0IHdpbGwgYmUgdXNlZC5cbiIKKyAgICAiICAgIChkZWZhdWx0IFwiJXNcIilcbiIK
KyAgICAiIC0tc3NsX291dGdvaW5nX21heF9wcm90b192ZXJzaW9uIFBST1RPQ09MX1ZFUlNJT046
XG4iCisgICAgIiAgICBNYXhpbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lvbiB3
aGVuIG1ha2luZyBvdXRnb2luZ1xuIgorICAgICIgICAgY29ubmVjdGlvbnMuXG4iCisgICAgIiAg
ICBJZiBlbXB0eSAoXCJcIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3aWxsIGJlIHVzZWQuXG4i
CisgICAgIiAgICAoZGVmYXVsdCBcIiVzXCIpXG4iCiAjZW5kaWYgLyogV0lUSF9TU0xfU1VQUE9S
VCAqLwogICAgICJcbiIKICAgICAiIE5vdGVzOiBEZWZhdWx0IHZhbHVlIGZvciBiaW5hcnkgZmxh
Z3MgaXMgb2ZmLlxuIgpAQCAtMTc2MCw3ICsxOTMxLDExIEBACiAgICAgT1BUX1NUUihERUZBVUxU
X1NTTF9MSVNURU5fQ0lQSEVSUyksCiAgICAgT1BUX1NUUihERUZBVUxUX1NTTF9PVVRHT0lOR19D
SVBIRVJTKSwKICAgICBERUZBVUxUX1NTTF9QQVNTUEhSQVNFX0ZELAotICAgIE9QVF9TVFIoREVG
QVVMVF9TU0xfUEFTU1BIUkFTRV9GSUxFKQorICAgIE9QVF9TVFIoREVGQVVMVF9TU0xfUEFTU1BI
UkFTRV9GSUxFKSwKKyAgICBPUFRfU1RSKERFRkFVTFRfU1NMX0xJU1RFTl9NSU5fUFJPVE9fVkVS
U0lPTiksCisgICAgT1BUX1NUUihERUZBVUxUX1NTTF9PVVRHT0lOR19NSU5fUFJPVE9fVkVSU0lP
TiksCisgICAgT1BUX1NUUihERUZBVUxUX1NTTF9MSVNURU5fTUFYX1BST1RPX1ZFUlNJT04pLAor
ICAgIE9QVF9TVFIoREVGQVVMVF9TU0xfT1VUR09JTkdfTUFYX1BST1RPX1ZFUlNJT04pCiAjZW5k
aWYgLyogV0lUSF9TU0xfU1VQUE9SVCAqLwogICApOwoKZGlmZiAtciA2NDI4MDcwYjQ4ODkgcGVy
ZGl0aW9uL29wdGlvbnMuaAotLS0gYS9wZXJkaXRpb24vb3B0aW9ucy5oCVN1biBEZWMgMDEgMTc6
MjY6NTEgMjAxMyArMDkwMAorKysgYi9wZXJkaXRpb24vb3B0aW9ucy5oCVR1ZSBNYXkgMTAgMjI6
MDE6NDUgMjAxNiArMDkwMApAQCAtMTgxLDYgKzE4MSwxMCBAQAogI2RlZmluZSBERUZBVUxUX1NT
TF9OT19DTl9WRVJJRlkgICAgICAgICAgICAgMAogI2RlZmluZSBERUZBVUxUX1NTTF9QQVNTUEhS
QVNFX0ZEICAgICAgICAgICAgMAogI2RlZmluZSBERUZBVUxUX1NTTF9QQVNTUEhSQVNFX0ZJTEUg
ICAgICAgICAgTlVMTAorI2RlZmluZSBERUZBVUxUX1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJ
T04gInRsc3YxIgorI2RlZmluZSBERUZBVUxUX1NTTF9PVVRHT0lOR19NSU5fUFJPVE9fVkVSU0lP
TiAidGxzdjEiCisjZGVmaW5lIERFRkFVTFRfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiBO
VUxMCisjZGVmaW5lIERFRkFVTFRfU1NMX09VVEdPSU5HX01BWF9QUk9UT19WRVJTSU9OIE5VTEwK
ICNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCgoKQEAgLTI0OSw2ICsyNTMsMTAgQEAKICAg
aW50ICAgICAgICAgICAgIHNzbF9ub19jbl92ZXJpZnk7CiAgIGludCAgICAgICAgICAgICBzc2xf
cGFzc3BocmFzZV9mZDsKICAgY2hhciAgICAgICAgICAgICpzc2xfcGFzc3BocmFzZV9maWxlOwor
ICBjaGFyICAgICAgICAgICAgKnNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb247CisgIGNoYXIg
ICAgICAgICAgICAqc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uOworICBjaGFyICAgICAg
ICAgICAgKnNzbF9saXN0ZW5fbWF4X3Byb3RvX3ZlcnNpb247CisgIGNoYXIgICAgICAgICAgICAq
c3NsX291dGdvaW5nX21heF9wcm90b192ZXJzaW9uOwogICBmbGFnX3QgICAgICAgICAgc3NsX21h
c2s7CiB9IG9wdGlvbnNfdDsKCkBAIC0zMTcsNiArMzI1LDEwIEBACiAjZGVmaW5lIE1BU0tfU1NM
X05PX0NOX1ZFUklGWSAgICAgICAgICAgICAgICAgIChmbGFnX3QpIDB4MDAwMDQwMDAKICNkZWZp
bmUgTUFTS19TU0xfUEFTU1BIUkFTRV9GRCAgICAgICAgICAgICAgICAgKGZsYWdfdCkgMHgwMDAw
ODAwMAogI2RlZmluZSBNQVNLX1NTTF9QQVNTUEhSQVNFX0ZJTEUgICAgICAgICAgICAgICAoZmxh
Z190KSAweDAwMDEwMDAwCisjZGVmaW5lIE1BU0tfU1NMX0xJU1RFTl9NSU5fUFJPVE9fVkVSU0lP
TiAgICAgIChmbGFnX3QpIDB4MDAwMjAwMDAKKyNkZWZpbmUgTUFTS19TU0xfT1VUR09JTkdfTUlO
X1BST1RPX1ZFUlNJT04gICAgKGZsYWdfdCkgMHgwMDA0MDAwMAorI2RlZmluZSBNQVNLX1NTTF9M
SVNURU5fTUFYX1BST1RPX1ZFUlNJT04gICAgICAoZmxhZ190KSAweDAwMDgwMDAwCisjZGVmaW5l
IE1BU0tfU1NMX09VVEdPSU5HX01BWF9QUk9UT19WRVJTSU9OICAgIChmbGFnX3QpIDB4MDAxMDAw
MDAKICNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCgogLyoKQEAgLTM1NSw2ICszNjcsMTAg
QEAKICNkZWZpbmUgVEFHX01BTkFHRVNJRVZFX0NBUEFCSUxJVFkgICAgICAgICAgICAgKGludCkg
MTU1CiAjZGVmaW5lIFRBR19QT1BfQ0FQQUJJTElUWSAgICAgICAgICAgICAgICAgICAgIChpbnQp
IDE1NgogI2RlZmluZSBUQUdfVENQX0tFRVBBTElWRSAgICAgICAgICAgICAgICAgICAgICAoaW50
KSAxNTcKKyNkZWZpbmUgVEFHX1NTTF9MSVNURU5fTUlOX1BST1RPX1ZFUlNJT04gICAgICAgKGlu
dCkgMTU4CisjZGVmaW5lIFRBR19TU0xfT1VUR09JTkdfTUlOX1BST1RPX1ZFUlNJT04gICAgIChp
bnQpIDE1OQorI2RlZmluZSBUQUdfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiAgICAgICAo
aW50KSAxNjAKKyNkZWZpbmUgVEFHX1NTTF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiAgICAg
KGludCkgMTYxCgogLypGbGFnIHZhbHVlcyBmb3Igb3B0aW9ucygpKi8KICNkZWZpbmUgT1BUX0VS
UiAgICAgICAgIChmbGFnX3QpIDB4MSAgLypQcmludCBlcnJvciB0byBzdGRlcnIsIGVuYWJsZSBo
ZWxwKi8KZGlmZiAtciA2NDI4MDcwYjQ4ODkgcGVyZGl0aW9uL3BlcmRpdGlvbi44Ci0tLSBhL3Bl
cmRpdGlvbi9wZXJkaXRpb24uOAlTdW4gRGVjIDAxIDE3OjI2OjUxIDIwMTMgKzA5MDAKKysrIGIv
cGVyZGl0aW9uL3BlcmRpdGlvbi44CVR1ZSBNYXkgMTAgMjI6MDE6NDUgMjAxNiArMDkwMApAQCAt
NjM1LDYgKzYzNSw2OSBAQAogYmUgc3BlY2lmaWVkLgogKGRlZmF1bHQgTlVMTCwgbm8gZmlsZSkK
IC5UUAorLkIgXC1cLXNzbF9saXN0ZW5fY2lwaGVycyBTVFJJTkc6CitDaXBoZXIgbGlzdCB3aGVu
IGxpc3RlbmluZyBmb3IgU1NMIG9yIFRMUyBjb25uZWN0aW9ucyBhcyBwZXIKK2NpcGhlcnMoMSku
IElmIGVtcHR5ICgiIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3aWxsIGJlIHVzZWQuCisuYnIK
KyhkZWZhdWx0ICIiKQorLlRQCisuQiBcLVwtc3NsX291dGdvaW5nX2NpcGhlcnMgU1RSSU5HOgor
Q2lwaGVyIGxpc3Qgd2hlbiBtYWtpbmcgb3V0Z29pbmcgU1NMIG9yIFRMUyBjb25uZWN0aW9ucyBh
cyBwZXIKK2NpcGhlcnMoMSkuIElmIGVtcHR5ICgiIikgdGhlbiBvcGVuc3NsJ3MgZGVmYXVsdCB3
aWxsIGJlIHVzZWQuCisuYnIKKyhkZWZhdWx0ICIiKQorLlRQCisuQiBcLVwtc3NsX25vX2NlcnRf
dmVyaWZ5OgorRG9uJ3QgY3J5cHRvZ3JhcGhpY2FsbHkgdmVyaWZ5IHRoZSBjZXJ0aWZpY2F0ZXMu
CitVc2VkIGZvciBTU0wgb3IgVExTIG91dGdvaW5nIGNvbm5lY3Rpb25zLgorLlRQCisuQiBcLVwt
c3NsX25vX2NsaWVudF9jZXJ0X3ZlcmlmeToKK0Rvbid0IGNyeXB0b2dyYXBoaWNhbGx5IHZlcmlm
eSB0aGUgZW5kLXVzZXIncyBjZXJ0aWZpY2F0ZS4KK1VzZWQgZm9yIFNTTCBvciBUTFMgb3V0Z29p
bmcgY29ubmVjdGlvbnMuCisuVFAKKy5CIFwtXC1zc2xfbm9fY25fdmVyaWZ5OgorRG9uJ3QgdmVy
aWZ5IHRoZSByZWFsLXNlcnZlcidzIGNvbW1vbiBuYW1lIHdpdGggdGhlIG5hbWUgdXNlZC4KK3Rv
IGNvbm5lY3QgdG8gdGhlIHNlcnZlci4gVXNlZCBmb3IgU1NMIG9yIFRMUyBvdXRnb2luZyBjb25u
ZWN0aW9ucy4KKy5UUAorLkIgXC1cLXNzbF9wYXNzcGhyYXNlX2ZkIE46CitGaWxlIGRlc2NyaXB0
b3IgdG8gcmVhZCB0aGUgcGFzc3BocmFzZSBmb3IgdGhlIGNlcnRpZmljYXRlIGZyb20uCitPbmx5
IHRoZSBmaXJzdCBsaW5lIHdpbGwgYmUgcmVhZC4KK09ubHkgb25lIG9mIHNzbF9wYXNzcGhyYXNl
X2ZkIGFuZCBzc2xfcGFzc3BocmFzZV9maWxlIG1heQorYmUgc3BlY2lmaWVkLgorKGRlZmF1bHQg
MCkKKy5UUAorLkIgXC1cLXNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb24gUFJPVE9DT0xfVkVS
U0lPTlM6CitNaW5pbXVtIHBlcm1pdGVkIFNTTC9UTFMgcHJvdG9jb2wgdmVyc2lvbiB3aGVuIGFj
Y2VwdGluZyBpbmNvbW1pbmcKK2Nvbm5lY3Rpb25zLiBJZiBlbXB0eSAoIiIpIHRoZW4gb3BlbnNz
bCdzIGRlZmF1bHQgd2lsbCBiZSB1c2VkLgorLnNwCitUaGUgdmFsaWQgcHJvdG9jb2wgdmVyc2lv
bnMgYXJlIHNzbHYzLCB0bHN2MSwgdGxzdjEuMSBhbmQgdGxzdjEuMi4KKy5zcAorKGRlZmF1bHQg
InRsc3YxIikKKy5UUAorLkIgXC1cLXNzbF9vdXRnb2luZ19taW5fcHJvdG9fdmVyc2lvbiBQUk9U
T0NPTF9WRVJTSU9OUzoKK01pbmltdW0gcGVybWl0ZWQgU1NML1RMUyBwcm90b2NvbCB2ZXJzaW9u
IHdoZW4gbWFraW5nIG91dGdvaW5nCitjb25uZWN0aW9ucy4gSWYgZW1wdHkgKCIiKSB0aGVuIG9w
ZW5zc2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC4KKy5zcAorVGhlIHZhbGlkIHByb3RvY29sIHZl
cnNpb25zIGFyZSBzc2x2MywgdGxzdjEsIHRsc3YxLjEgYW5kIHRsc3YxLjIuCisuc3AKKyhkZWZh
dWx0ICJ0bHN2MSIpCisuVFAKKy5CIFwtXC1zc2xfbGlzdGVuX21heF9wcm90b192ZXJzaW9uIFBS
T1RPQ09MX1ZFUlNJT05TOgorTWF4aW11bSBwZXJtaXRlZCBTU0wvVExTIHByb3RvY29sIHZlcnNp
b24gd2hlbiBhY2NlcHRpbmcgaW5jb21tYXhnCitjb25uZWN0aW9ucy4gSWYgZW1wdHkgKCIiKSB0
aGVuIG9wZW5zc2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC4KKy5zcAorVGhlIHZhbGlkIHByb3Rv
Y29sIHZlcnNpb25zIGFyZSBzc2x2MywgdGxzdjEsIHRsc3YxLjEgYW5kIHRsc3YxLjIuCisuc3AK
KyhkZWZhdWx0ICIiKQorLlRQCisuQiBcLVwtc3NsX291dGdvaW5nX21heF9wcm90b192ZXJzaW9u
IFBST1RPQ09MX1ZFUlNJT05TOgorTWF4aW11bSBwZXJtaXRlZCBTU0wvVExTIHByb3RvY29sIHZl
cnNpb24gd2hlbiBtYWtpbmcgb3V0Z29pbmcKK2Nvbm5lY3Rpb25zLiBJZiBlbXB0eSAoIiIpIHRo
ZW4gb3BlbnNzbCdzIGRlZmF1bHQgd2lsbCBiZSB1c2VkLgorLnNwCitUaGUgdmFsaWQgcHJvdG9j
b2wgdmVyc2lvbnMgYXJlIHNzbHYzLCB0bHN2MSwgdGxzdjEuMSBhbmQgdGxzdjEuMi4KKy5zcAor
KGRlZmF1bHQgIiIpCisuVFAKIE5vdGVzOgogRGVmYXVsdCB2YWx1ZSBmb3IgYmluYXJ5IGZsYWdz
IGlzIG9mZi4KIC5icgpkaWZmIC1yIDY0MjgwNzBiNDg4OSBwZXJkaXRpb24vc3NsLmMKLS0tIGEv
cGVyZGl0aW9uL3NzbC5jCVN1biBEZWMgMDEgMTc6MjY6NTEgMjAxMyArMDkwMAorKysgYi9wZXJk
aXRpb24vc3NsLmMJVHVlIE1heSAxMCAyMjowMTo0NSAyMDE2ICswOTAwCkBAIC0xMzksNiArMTM5
LDIzIEBACiAJcmV0dXJuIHN0cmxlbihidWYpOwogfQoKK2ludCBwZXJkaXRpb25fcGFyc2Vfc3Ns
X3Byb3RvX3ZlcnNpb24oY29uc3QgY2hhciAqc3RyKQoreworCWlmICghc3RyY2FzZWNtcChzdHIs
ICJzc2x2MyIpKSB7CisJCXJldHVybiBTU0wzX1ZFUlNJT047CisJfQorCWlmICghc3RyY2FzZWNt
cChzdHIsICJ0bHN2MSIpKSB7CisJCXJldHVybiBUTFMxX1ZFUlNJT047CisJfQorCWlmICghc3Ry
Y2FzZWNtcChzdHIsICJ0bHN2MS4xIikpIHsKKwkJcmV0dXJuIFRMUzFfMV9WRVJTSU9OOworCX0K
KwlpZiAoIXN0cmNhc2VjbXAoc3RyLCAidGxzdjEuMiIpKSB7CisJCXJldHVybiBUTFMxXzJfVkVS
U0lPTjsKKwl9CisKKwlyZXR1cm4gLTE7Cit9CgogLyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIHBlcmRpdGlv
bl9zc2xfY3R4CkBAIC00ODYsNiArNTAzLDcyIEBACiAJcmV0dXJuKHZlcmlmeSk7CiB9CgorI2lm
IEhBVkVfREVDTF9TU0xfQ1RYX1NFVF9NSU5fUFJPVE9fVkVSU0lPTiA9PSAwCitzdGF0aWMgaW50
CitwZXJkaXRpb25fc3NsX2N0eF9zZXRfbWluX3Byb3RvX3ZlcnNpb24oU1NMX0NUWCAqc3NsX2N0
eCwgaW50IG1pbl92ZXJzaW9uKQoreworCWxvbmcgb3B0aW9ucyA9IFNTTF9PUF9OT19TU0x2MjsK
KworCXN3aXRjaCAobWluX3ZlcnNpb24pIHsKKwljYXNlIFRMUzFfMl9WRVJTSU9OOgorCQlvcHRp
b25zIHw9IFNTTF9PUF9OT19UTFN2MV8xOworCQkvKiBmYWxsLXRocm91Z2ggKi8KKwljYXNlIFRM
UzFfMV9WRVJTSU9OOgorCQlvcHRpb25zIHw9IFNTTF9PUF9OT19UTFN2MTsKKwkJLyogZmFsbC10
aHJvdWdoICovCisJY2FzZSBUTFMxX1ZFUlNJT046CisJCW9wdGlvbnMgfD0gU1NMX09QX05PX1NT
THYzOworCQkvKiBmYWxsLXRocm91Z2ggKi8KKwljYXNlIFNTTDNfVkVSU0lPTjoKKwkJLyogTm90
aGluZyBtb3JlIHRvIGRvICovCisJCWJyZWFrOworCWRlZmF1bHQ6CisJCVBFUkRJVElPTl9ERUJV
R19TU0xfRVJSKCJVbmtub3duIG1pbnVtdW0gdmVyc2lvbiIpOworCQlyZXR1cm4gMDsKKwl9CisK
KwlTU0xfQ1RYX3NldF9vcHRpb25zKHNzbF9jdHgsIG9wdGlvbnMpOworCXJldHVybiAxOworfQor
CisjZGVmaW5lIFNTTF9DVFhfc2V0X21pbl9wcm90b192ZXJzaW9uIHBlcmRpdGlvbl9zc2xfY3R4
X3NldF9taW5fcHJvdG9fdmVyc2lvbgorI2VuZGlmCisKKyNpZiBIQVZFX0RFQ0xfU1NMX0NUWF9T
RVRfTUFYX1BST1RPX1ZFUlNJT04gPT0gMAorc3RhdGljIGludAorcGVyZGl0aW9uX3NzbF9jdHhf
c2V0X21heF9wcm90b192ZXJzaW9uKFNTTF9DVFggKnNzbF9jdHgsIGludCBtYXhfdmVyc2lvbikK
K3sKKwlsb25nIG9wdGlvbnMgPSAwOworCisJc3dpdGNoIChtYXhfdmVyc2lvbikgeworCWNhc2Ug
U1NMM19WRVJTSU9OOgorCQlvcHRpb25zIHw9IFNTTF9PUF9OT19UTFN2MTsKKwkJLyogZmFsbC10
aHJvdWdoICovCisJY2FzZSBUTFMxX1ZFUlNJT046CisJCW9wdGlvbnMgfD0gU1NMX09QX05PX1RM
U3YxXzE7CisJCS8qIGZhbGwtdGhyb3VnaCAqLworCWNhc2UgVExTMV8xX1ZFUlNJT046CisJCW9w
dGlvbnMgfD0gU1NMX09QX05PX1RMU3YxXzI7CisJCS8qIGZhbGwtdGhyb3VnaCAqLworCWNhc2Ug
VExTMV8yX1ZFUlNJT046CisJCS8qIE5vdGhpbmcgbW9yZSB0byBkbyAqLworCQlicmVhazsKKwlk
ZWZhdWx0OgorCQlQRVJESVRJT05fREVCVUdfU1NMX0VSUigiVW5rbm93biBtYXhpbXVtIHZlcnNp
b24iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJU1NMX0NUWF9zZXRfb3B0aW9ucyhzc2xfY3R4LCBv
cHRpb25zKTsKKworCVZBTkVTU0FfTE9HR0VSX0VSUigiUHJvdG9jb2wgdmVyc2lvbnMgZ3JlYXRl
ciB0aGFuIHRsc3YxLjIgbWF5ICIKKwkJCSAgICJzdGlsbCBiZSBhbGxvd2VkIGlmIHN1cHBvcnRl
ZCBieSB0aGUgU1NML1RMUyAiCisJCQkgICAiaW1wbGVtZW50YXRpb24iKTsKKwlyZXR1cm4gMTsK
K30KKworI2RlZmluZSBTU0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lvbiBwZXJkaXRpb25fc3Ns
X2N0eF9zZXRfbWF4X3Byb3RvX3ZlcnNpb24KKyNlbmRpZgorCiBTU0xfQ1RYICpwZXJkaXRpb25f
c3NsX2N0eChjb25zdCBjaGFyICpjYV9maWxlLCBjb25zdCBjaGFyICpjYV9wYXRoLAogCQljb25z
dCBjaGFyICpjZXJ0LCBjb25zdCBjaGFyICpwcml2a2V5LAogCQljb25zdCBjaGFyICpjYV9jaGFp
bl9maWxlLCBjb25zdCBjaGFyICpjaXBoZXJzLCBmbGFnX3QgZmxhZykKQEAgLTUzMyw2ICs2MTYs
NjAgQEAKIAl9CgogCS8qCisJICogU2V0IG1pbmltdW0gcHJvdG9jb2wgdmVyc2lvbgorCSAqLwor
CXsKKwkJY29uc3QgY2hhciAqdmVyX3N0cjsKKworCQlpZiAoZmxhZyA9PSBQRVJESVRJT05fU1NM
X0NMSUVOVCkKKwkJCXZlcl9zdHIgPSBvcHQuc3NsX291dGdvaW5nX21pbl9wcm90b192ZXJzaW9u
OworCQllbHNlCisJCQl2ZXJfc3RyID0gb3B0LnNzbF9saXN0ZW5fbWluX3Byb3RvX3ZlcnNpb247
CisKKwkJaWYgKHZlcl9zdHIpIHsKKwkJCWludCB2ZXJfbm8gPSBwZXJkaXRpb25fcGFyc2Vfc3Ns
X3Byb3RvX3ZlcnNpb24odmVyX3N0cik7CisKKworCQkJaWYgKHZlcl9ubyA8IDApIHsKKwkJCQlW
QU5FU1NBX0xPR0dFUl9ERUJVRygicGVyZGl0aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uIik7
CisJCQkJZ290byBlcnI7CisJCQl9CisKKwkJCWlmICghU1NMX0NUWF9zZXRfbWluX3Byb3RvX3Zl
cnNpb24oc3NsX2N0eCwgdmVyX25vKSkgeworCQkJCVZBTkVTU0FfTE9HR0VSX0RFQlVHKCJTU0xf
Q1RYX3NldF9taW5fcHJvdG9fdmVyc2lvbiIpOworCQkJCWdvdG8gZXJyOworCQkJfQorCQl9CisJ
fQorCisJLyoKKwkgKiBTZXQgbWF4aW11bSBwcm90b2NvbCB2ZXJzaW9uCisJICovCisJeworCQlj
b25zdCBjaGFyICp2ZXJfc3RyOworCisJCWlmIChmbGFnID09IFBFUkRJVElPTl9TU0xfQ0xJRU5U
KQorCQkJdmVyX3N0ciA9IG9wdC5zc2xfb3V0Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb247CisJCWVs
c2UKKwkJCXZlcl9zdHIgPSBvcHQuc3NsX2xpc3Rlbl9tYXhfcHJvdG9fdmVyc2lvbjsKKworCQlp
ZiAodmVyX3N0cikgeworCQkJaW50IHZlcl9ubyA9IHBlcmRpdGlvbl9wYXJzZV9zc2xfcHJvdG9f
dmVyc2lvbih2ZXJfc3RyKTsKKworCisJCQlpZiAodmVyX25vIDwgMCkgeworCQkJCVZBTkVTU0Ff
TE9HR0VSX0RFQlVHKCJwZXJkaXRpb25fcGFyc2Vfc3NsX3Byb3RvX3ZlcnNpb24iKTsKKwkJCQln
b3RvIGVycjsKKwkJCX0KKworCQkJaWYgKCFTU0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lvbihz
c2xfY3R4LCB2ZXJfbm8pKSB7CisJCQkJVkFORVNTQV9MT0dHRVJfREVCVUcoIlNTTF9DVFhfc2V0
X21heF9wcm90b192ZXJzaW9uIik7CisJCQkJZ290byBlcnI7CisJCQl9CisJCX0KKwl9CisKKwkv
KgogCSAqIFNldCB0aGUgYXZhaWxhYmxlIGNpcGhlcnMKIAkgKi8KIAlpZihjaXBoZXJzICYmIFNT
TF9DVFhfc2V0X2NpcGhlcl9saXN0KHNzbF9jdHgsIGNpcGhlcnMpIDwgMCkgewpkaWZmIC1yIDY0
MjgwNzBiNDg4OSBwZXJkaXRpb24vc3NsLmgKLS0tIGEvcGVyZGl0aW9uL3NzbC5oCVN1biBEZWMg
MDEgMTc6MjY6NTEgMjAxMyArMDkwMAorKysgYi9wZXJkaXRpb24vc3NsLmgJVHVlIE1heSAxMCAy
MjowMTo0NSAyMDE2ICswOTAwCkBAIC0zOSw2ICszOSw4IEBACiAjZGVmaW5lIFBFUkRJVElPTl9T
U0xfQ0xJRU5UIChmbGFnX3QpIDB4MQogI2RlZmluZSBQRVJESVRJT05fU1NMX1NFUlZFUiAoZmxh
Z190KSAweDIKCitpbnQgcGVyZGl0aW9uX3BhcnNlX3NzbF9wcm90b192ZXJzaW9uKGNvbnN0IGNo
YXIgKnN0cik7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBwZXJkaXRpb25fc3NsX2N0eAogICogQ3Jl
YXRlIGFuIFNTTCBjb250ZXh0CgpkaWZmIC1yIDBmOWI2MTJkNmQwNyAtciA3ZWUyMjA2MDAyMzQg
ZXRjL3BlcmRpdGlvbi9wZXJkaXRpb24uY29uZgotLS0gYS9ldGMvcGVyZGl0aW9uL3BlcmRpdGlv
bi5jb25mCVdlZCBNYXkgMTEgMDg6NTc6MjIgMjAxNiArMDkwMAorKysgYi9ldGMvcGVyZGl0aW9u
L3BlcmRpdGlvbi5jb25mCVdlZCBNYXkgMTEgMDk6MjY6MjEgMjAxNiArMDkwMApAQCAtNDMwLDMg
KzQzMCwxMiBAQAogIyBJZiBlbXB0eSAoIiIpIHRoZW4gb3BlbnNzbCdzIGRlZmF1bHQgd2lsbCBi
ZSB1c2VkLgogIyAoZGVmYXVsdCAiIikKICNzc2xfb3V0Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb24g
InRsc3YxLjIiCisKKyMgc3NsX2xpc3Rlbl9jb21wcmVzc2lvbgorIyBBbGxvdyBTU0wvVExTIGNv
bXByZXNzaW9uIHdoZW4gYWNjZXB0aW5nIGluY29taW5nIGNvbm5lY3Rpb25zLgorI3NzbF9saXN0
ZW5fY29tcHJlc3Npb24KKworIyBzc2xfb3V0Z29pbmdfY29tcHJlc3Npb24KKyMgQWxsb3cgU1NM
L1RMUyBjb21wcmVzc2lvbiB3aGVuIG1ha2luZyBvdXRnb2luZyBjb25uZWN0aW9ucy4KKyNzc2xf
b3V0Z29pbmdfY29tcHJlc3Npb24KKwpkaWZmIC1yIDBmOWI2MTJkNmQwNyAtciA3ZWUyMjA2MDAy
MzQgcGVyZGl0aW9uL29wdGlvbnMuYwotLS0gYS9wZXJkaXRpb24vb3B0aW9ucy5jCVdlZCBNYXkg
MTEgMDg6NTc6MjIgMjAxNiArMDkwMAorKysgYi9wZXJkaXRpb24vb3B0aW9ucy5jCVdlZCBNYXkg
MTEgMDk6MjY6MjEgMjAxNiArMDkwMApAQCAtNDk3LDYgKzQ5NywxMCBAQAogICAgICAgVEFHX1NT
TF9MSVNURU5fTUFYX1BST1RPX1ZFUlNJT04sIE5VTEwsIE5VTEx9LAogICAgIHsic3NsX291dGdv
aW5nX21heF9wcm90b192ZXJzaW9uIiwgJ1wwJywgUE9QVF9BUkdfU1RSSU5HLCBOVUxMLAogICAg
ICAgVEFHX1NTTF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiwgTlVMTCwgTlVMTH0sCisgICAg
eyJzc2xfbGlzdGVuX2NvbXByZXNzaW9uIiwgJ1wwJywgUE9QVF9BUkdfTk9ORSwgTlVMTCwKKyAg
ICAgIFRBR19TU0xfTElTVEVOX0NPTVBSRVNTSU9OLCBOVUxMLCBOVUxMfSwKKyAgICB7InNzbF9v
dXRnb2luZ19jb21wcmVzc2lvbiIsICdcMCcsIFBPUFRfQVJHX05PTkUsIE5VTEwsCisgICAgICBU
QUdfU1NMX09VVEdPSU5HX0NPTVBSRVNTSU9OLCBOVUxMLCBOVUxMfSwKICAgICB7TlVMTCwgICAg
ICAgICAgICAgICAgICAgICAgICAgICAwLCAgIDAsICAgICAgICAgICAgICAgTlVMTCwKICAgICAg
MCwgTlVMTCwgTlVMTH0KICAgfTsKQEAgLTYzNSw2ICs2MzksMTAgQEAKIAkgIERFRkFVTFRfU1NM
X0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiwgJmksIDAsIE9QVF9OT1RfU0VUKTsKICAgICBvcHRf
cCgmKG9wdC5zc2xfb3V0Z29pbmdfbWF4X3Byb3RvX3ZlcnNpb24pLAogCSAgREVGQVVMVF9TU0xf
T1VUR09JTkdfTUFYX1BST1RPX1ZFUlNJT04sICZpLCAwLCBPUFRfTk9UX1NFVCk7CisgICAgb3B0
X2koJihvcHQuc3NsX2xpc3Rlbl9jb21wcmVzc2lvbiksIERFRkFVTFRfU1NMX0xJU1RFTl9DT01Q
UkVTU0lPTiwKKwkgICZpLCAwLCBPUFRfTk9UX1NFVCk7CisgICAgb3B0X2koJihvcHQuc3NsX291
dGdvaW5nX2NvbXByZXNzaW9uKSwgREVGQVVMVF9TU0xfT1VUR09JTkdfQ09NUFJFU1NJT04sCisJ
ICAmaSwgMCwgT1BUX05PVF9TRVQpOwogI2VuZGlmIC8qIFdJVEhfU1NMX1NVUFBPUlQgKi8KICAg
fQogCkBAIC0xMDU5LDYgKzEwNjcsMjIgQEAKIAlOT19TU0xfT1BUKCJzc2xfb3V0Z29pbmdfbWF4
X3Byb3RvX3ZlcnNpb24iKTsKICNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCiAgICAgICAg
IGJyZWFrOworICAgICAgY2FzZSBUQUdfU1NMX0xJU1RFTl9DT01QUkVTU0lPTjoKKyNpZmRlZiBX
SVRIX1NTTF9TVVBQT1JUCisgICAgICAgIG9wdF9pKCYob3B0LnNzbF9saXN0ZW5fY29tcHJlc3Np
b24pLCAxLCAmKG9wdC5zc2xfbWFzayksCisJCQlNQVNLX1NTTF9MSVNURU5fQ09NUFJFU1NJT04s
IGYpOworI2Vsc2UgLyogV0lUSF9TU0xfU1VQUE9SVCAqLworCU5PX1NTTF9PUFQoInNzbF9saXN0
ZW5fY29tcHJlc3Npb24iKTsKKyNlbmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCisgICAgICAg
IGJyZWFrOworICAgICAgY2FzZSBUQUdfU1NMX09VVEdPSU5HX0NPTVBSRVNTSU9OOgorI2lmZGVm
IFdJVEhfU1NMX1NVUFBPUlQKKyAgICAgICAgb3B0X2koJihvcHQuc3NsX291dGdvaW5nX2NvbXBy
ZXNzaW9uKSwgMSwgJihvcHQuc3NsX21hc2spLAorCQkJTUFTS19TU0xfT1VUR09JTkdfQ09NUFJF
U1NJT04sIGYpOworI2Vsc2UgLyogV0lUSF9TU0xfU1VQUE9SVCAqLworCU5PX1NTTF9PUFQoInNz
bF9vdXRnb2luZ19jb21wcmVzc2lvbiIpOworI2VuZGlmIC8qIFdJVEhfU1NMX1NVUFBPUlQgKi8K
KyAgICAgICAgYnJlYWs7CiAgICAgICBkZWZhdWx0OgogICAgICAgICBWQU5FU1NBX0xPR0dFUl9E
RUJVR19SQVcoIlVua25vd24gT3B0aW9uIik7CiAgICAgICAgIGJyZWFrOwpAQCAtMTU3NSw2ICsx
NTk5LDggQEAKIAkJICJzc2xfb3V0Z29pbmdfbWluX3Byb3RvX3ZlcnNpb249XCIlc1wiLCAiCiAJ
CSAic3NsX2xpc3Rlbl9tYXhfcHJvdG9fdmVyc2lvbj1cIiVzXCIsICIKIAkJICJzc2xfb3V0Z29p
bmdfbWF4X3Byb3RvX3ZlcnNpb249XCIlc1wiLCAiCisJCSAic3NsX2xpc3Rlbl9jb21wcmVzc2lv
bj1cIiVzXCIsICIKKwkJICJzc2xfb3V0Z29pbmdfY29tcHJlc3Npb249XCIlc1wiLCAiCiAJCSAi
KHNzbF9tYXNrPTB4JTA4eCkgIiwKIAkJIHNzbF9tb2RlLAogCQkgT1BUX1NUUihvcHQuc3NsX2Nh
X2ZpbGUpLApAQCAtMTU5Nyw2ICsxNjIzLDggQEAKIAkJIE9QVF9TVFIob3B0LnNzbF9vdXRnb2lu
Z19taW5fcHJvdG9fdmVyc2lvbiksCiAJCSBPUFRfU1RSKG9wdC5zc2xfbGlzdGVuX21heF9wcm90
b192ZXJzaW9uKSwKIAkJIE9QVF9TVFIob3B0LnNzbF9vdXRnb2luZ19tYXhfcHJvdG9fdmVyc2lv
biksCisJCSBCSU5fT1BUX1NUUihvcHQuc3NsX2xpc3Rlbl9jb21wcmVzc2lvbiksCisJCSBCSU5f
T1BUX1NUUihvcHQuc3NsX291dGdvaW5nX2NvbXByZXNzaW9uKSwKIAkJIG9wdC5zc2xfbWFzayk7
CiAJb3V0W01BWF9MSU5FX0xFTkdUSCAtIDFdID0gJ1wwJzsKIApAQCAtMTkxNSw2ICsxOTQzLDEw
IEBACiAgICAgIiAgICBjb25uZWN0aW9ucy5cbiIKICAgICAiICAgIElmIGVtcHR5IChcIlwiKSB0
aGVuIG9wZW5zc2wncyBkZWZhdWx0IHdpbGwgYmUgdXNlZC5cbiIKICAgICAiICAgIChkZWZhdWx0
IFwiJXNcIilcbiIKKyAgICAiIC0tc3NsX2xpc3Rlbl9jb21wcmVzc2lvblxuIgorICAgICIgICAg
QWxsb3cgU1NML1RMUyBjb21wcmVzc2lvbiB3aGVuIGFjY2VwdGluZyBpbmNvbWluZyBjb25uZWN0
aW9ucy5cbiIKKyAgICAiIC0tc3NsX291dGdvaW5nX2NvbXByZXNzaW9uXG4iCisgICAgIiAgICBB
bGxvdyBTU0wvVExTIGNvbXByZXNzaW9uIHdoZW4gbWFraW5nIG91dGdvaW5nIGNvbm5lY3Rpb25z
LlxuIgogI2VuZGlmIC8qIFdJVEhfU1NMX1NVUFBPUlQgKi8KICAgICAiXG4iCiAgICAgIiBOb3Rl
czogRGVmYXVsdCB2YWx1ZSBmb3IgYmluYXJ5IGZsYWdzIGlzIG9mZi5cbiIKZGlmZiAtciAwZjli
NjEyZDZkMDcgLXIgN2VlMjIwNjAwMjM0IHBlcmRpdGlvbi9vcHRpb25zLmgKLS0tIGEvcGVyZGl0
aW9uL29wdGlvbnMuaAlXZWQgTWF5IDExIDA4OjU3OjIyIDIwMTYgKzA5MDAKKysrIGIvcGVyZGl0
aW9uL29wdGlvbnMuaAlXZWQgTWF5IDExIDA5OjI2OjIxIDIwMTYgKzA5MDAKQEAgLTE4NSw2ICsx
ODUsOCBAQAogI2RlZmluZSBERUZBVUxUX1NTTF9PVVRHT0lOR19NSU5fUFJPVE9fVkVSU0lPTiAi
dGxzdjEiCiAjZGVmaW5lIERFRkFVTFRfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiBOVUxM
CiAjZGVmaW5lIERFRkFVTFRfU1NMX09VVEdPSU5HX01BWF9QUk9UT19WRVJTSU9OIE5VTEwKKyNk
ZWZpbmUgREVGQVVMVF9TU0xfTElTVEVOX0NPTVBSRVNTSU9OICAgICAgIDAKKyNkZWZpbmUgREVG
QVVMVF9TU0xfT1VUR09JTkdfQ09NUFJFU1NJT04gICAgIDAKICNlbmRpZiAvKiBXSVRIX1NTTF9T
VVBQT1JUICovCiAKIApAQCAtMjU3LDYgKzI1OSw4IEBACiAgIGNoYXIgICAgICAgICAgICAqc3Ns
X291dGdvaW5nX21pbl9wcm90b192ZXJzaW9uOwogICBjaGFyICAgICAgICAgICAgKnNzbF9saXN0
ZW5fbWF4X3Byb3RvX3ZlcnNpb247CiAgIGNoYXIgICAgICAgICAgICAqc3NsX291dGdvaW5nX21h
eF9wcm90b192ZXJzaW9uOworICBpbnQgICAgICAgICAgICAgc3NsX2xpc3Rlbl9jb21wcmVzc2lv
bjsKKyAgaW50ICAgICAgICAgICAgIHNzbF9vdXRnb2luZ19jb21wcmVzc2lvbjsKICAgZmxhZ190
ICAgICAgICAgIHNzbF9tYXNrOwogfSBvcHRpb25zX3Q7CiAKQEAgLTMyOSw2ICszMzMsOCBAQAog
I2RlZmluZSBNQVNLX1NTTF9PVVRHT0lOR19NSU5fUFJPVE9fVkVSU0lPTiAgICAoZmxhZ190KSAw
eDAwMDQwMDAwCiAjZGVmaW5lIE1BU0tfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiAgICAg
IChmbGFnX3QpIDB4MDAwODAwMDAKICNkZWZpbmUgTUFTS19TU0xfT1VUR09JTkdfTUFYX1BST1RP
X1ZFUlNJT04gICAgKGZsYWdfdCkgMHgwMDEwMDAwMAorI2RlZmluZSBNQVNLX1NTTF9MSVNURU5f
Q09NUFJFU1NJT04gICAgICAgICAgICAoZmxhZ190KSAweDAwMjAwMDAwCisjZGVmaW5lIE1BU0tf
U1NMX09VVEdPSU5HX0NPTVBSRVNTSU9OICAgICAgICAgIChmbGFnX3QpIDB4MDA0MDAwMDAKICNl
bmRpZiAvKiBXSVRIX1NTTF9TVVBQT1JUICovCiAKIC8qIApAQCAtMzcxLDYgKzM3Nyw4IEBACiAj
ZGVmaW5lIFRBR19TU0xfT1VUR09JTkdfTUlOX1BST1RPX1ZFUlNJT04gICAgIChpbnQpIDE1OQog
I2RlZmluZSBUQUdfU1NMX0xJU1RFTl9NQVhfUFJPVE9fVkVSU0lPTiAgICAgICAoaW50KSAxNjAK
ICNkZWZpbmUgVEFHX1NTTF9PVVRHT0lOR19NQVhfUFJPVE9fVkVSU0lPTiAgICAgKGludCkgMTYx
CisjZGVmaW5lIFRBR19TU0xfTElTVEVOX0NPTVBSRVNTSU9OICAgICAgICAgICAgIChpbnQpIDE2
MgorI2RlZmluZSBUQUdfU1NMX09VVEdPSU5HX0NPTVBSRVNTSU9OICAgICAgICAgICAoaW50KSAx
NjMKIAogLypGbGFnIHZhbHVlcyBmb3Igb3B0aW9ucygpKi8KICNkZWZpbmUgT1BUX0VSUiAgICAg
ICAgIChmbGFnX3QpIDB4MSAgLypQcmludCBlcnJvciB0byBzdGRlcnIsIGVuYWJsZSBoZWxwKi8K
ZGlmZiAtciAwZjliNjEyZDZkMDcgLXIgN2VlMjIwNjAwMjM0IHBlcmRpdGlvbi9wZXJkaXRpb24u
OAotLS0gYS9wZXJkaXRpb24vcGVyZGl0aW9uLjgJV2VkIE1heSAxMSAwODo1NzoyMiAyMDE2ICsw
OTAwCisrKyBiL3BlcmRpdGlvbi9wZXJkaXRpb24uOAlXZWQgTWF5IDExIDA5OjI2OjIxIDIwMTYg
KzA5MDAKQEAgLTY5OCw2ICs2OTgsMTIgQEAKIC5zcAogKGRlZmF1bHQgIiIpCiAuVFAKKy5CIFwt
XC1zc2xfbGlzdGVuX2NvbXByZXNzaW9uOgorQWxsb3cgU1NML1RMUyBjb21wcmVzc2lvbiB3aGVu
IGFjY2VwdGluZyBpbmNvbWluZyBjb25uZWN0aW9ucy4KKy5UUAorLkIgXC1cLXNzbF9vdXRnb2lu
Z19jb21wcmVzc2lvbjoKK0FsbG93IFNTTC9UTFMgY29tcHJlc3Npb24gd2hlbiBtYWtpbmcgb3V0
Z29pbmcgY29ubmVjdGlvbnMuCisuVFAKIE5vdGVzOiAKIERlZmF1bHQgdmFsdWUgZm9yIGJpbmFy
eSBmbGFncyBpcyBvZmYuCiAuYnIKZGlmZiAtciAwZjliNjEyZDZkMDcgLXIgN2VlMjIwNjAwMjM0
IHBlcmRpdGlvbi9zc2wuYwotLS0gYS9wZXJkaXRpb24vc3NsLmMJV2VkIE1heSAxMSAwODo1Nzoy
MiAyMDE2ICswOTAwCisrKyBiL3BlcmRpdGlvbi9zc2wuYwlXZWQgTWF5IDExIDA5OjI2OjIxIDIw
MTYgKzA5MDAKQEAgLTY3MCw2ICs2NzAsMTQgQEAKIAl9CiAKIAkvKgorCSAqIFNldCBjb21wcmVz
c2lvbgorCSAqLworCWlmICgoZmxhZyA9PSBQRVJESVRJT05fU1NMX0NMSUVOVCAmJiAhb3B0LnNz
bF9vdXRnb2luZ19jb21wcmVzc2lvbikgJiYKKwkgICAgKGZsYWcgIT0gUEVSRElUSU9OX1NTTF9D
TElFTlQgJiYgIW9wdC5zc2xfbGlzdGVuX2NvbXByZXNzaW9uKSkgeworCQlTU0xfQ1RYX3NldF9v
cHRpb25zKHNzbF9jdHgsIFNTTF9PUF9OT19DT01QUkVTU0lPTik7CisJfQorCisJLyoKIAkgKiBT
ZXQgdGhlIGF2YWlsYWJsZSBjaXBoZXJzCiAJICovCiAJaWYoY2lwaGVycyAmJiBTU0xfQ1RYX3Nl
dF9jaXBoZXJfbGlzdChzc2xfY3R4LCBjaXBoZXJzKSA8IDApIHsKCgpfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClBlcmRpdGlvbi11c2VycyBtYWlsaW5nIGxp
c3QKUGVyZGl0aW9uLXVzZXJzQHZlcmdlbmV0Lm5ldApodHRwczovL2xpc3RzLnZlcmdlbmV0Lm5l
dC9saXN0aW5mby9wZXJkaXRpb24tdXNlcnMK