From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/gsi-openssh] epel9: Based on openssh-9.9p1-8.el9 Date: Sat, 30 May 2026 01:18:34 GMT Message-ID: <178010391463.1.13767842319993900925.rpms-gsi-openssh-5a01dd457566@fedoraproject.org> List-ID: X-Git-Repo: rpms/gsi-openssh X-Git-Branch: epel9 X-Git-Rev: 5a01dd45756647c226a30cf62986368a3d463c72 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ3NpLW9wZW5zc2gK QnJhbmNoIDogZXBlbDkKQ29tbWl0IDogNWEwMWRkNDU3NTY2NDdjMjI2YTMwY2Y2Mjk4NjM2OGEz ZDQ2M2M3MgpBdXRob3IgOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51 dS5zZT4KRGF0ZSAgIDogMjAyNi0wNS0yOVQxMDoyNDo0MSswMjowMApTdGF0cyAgOiArNzk5Ly02 IGluIDggZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1z L2dzaS1vcGVuc3NoL2MvNWEwMWRkNDU3NTY2NDdjMjI2YTMwY2Y2Mjk4NjM2OGEzZDQ2M2M3Mj9i cmFuY2g9ZXBlbDkKCkxvZzoKQmFzZWQgb24gb3BlbnNzaC05LjlwMS04LmVsOQoKLS0tCmRpZmYg LS1naXQgYS9nc2ktb3BlbnNzaC5zcGVjIGIvZ3NpLW9wZW5zc2guc3BlYwppbmRleCA4MmEyNmIx Li42YTgxNWIxIDEwMDY0NAotLS0gYS9nc2ktb3BlbnNzaC5zcGVjCisrKyBiL2dzaS1vcGVuc3No LnNwZWMKQEAgLTI0LDcgKzI0LDcgQEAKICVnbG9iYWwgbGliZWRpdCAxCiAKICVnbG9iYWwgb3Bl bnNzaF92ZXIgOS45cDEKLSVnbG9iYWwgb3BlbnNzaF9yZWwgMQorJWdsb2JhbCBvcGVuc3NoX3Jl bCAyCiAKIFN1bW1hcnk6IEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTU0ggcHJvdG9jb2wgd2l0 aCBHU0kgYXV0aGVudGljYXRpb24KIE5hbWU6IGdzaS1vcGVuc3NoCkBAIC0yMDAsNiArMjAwLDIx IEBAIFBhdGNoMTAzNzogb3BlbnNzaC05LjlwMS1yZWplY3QtY250cmwtY2hhcnMtaW4tdXNlcm5h bWUucGF0Y2gKICMgdXBzdHJlYW0gNDNiM2JmZjQ3YmIwMjlmMjI5OWJhY2I2YTM2MDU3OTgxYjM5 ZmRiMAogUGF0Y2gxMDM4OiBvcGVuc3NoLTkuOXAxLXJlamVjdC1udWxsLWNoYXItaW4tdXJsLXN0 cmluZy5wYXRjaAogUGF0Y2gxMDM5OiBvcGVuc3NoLTkuOXAxLWNvbXBhdC1tbGtlbS5wYXRjaAor IyBodHRwczovL2dpdGh1Yi5jb20vb3BlbnNzaC9vcGVuc3NoLXBvcnRhYmxlL3B1bGwvNjQ5CitQ YXRjaDEwNDA6IG9wZW5zc2gtOS45cDEtZmlsbC1kZWZhdWx0LW9wdGlvbnMtZXJyb3IucGF0Y2gK KyMgdXBzdHJlYW0gNDg3ZThhYzE0NmY3ZDY2MTZmNjVjMTI1ZDVlZGIyMTA1MTliODMzYQorUGF0 Y2gxMDQxOiBvcGVuc3NoLTkuOXAxLXNjcC1jbGVhci1zZXR1aWQucGF0Y2gKKyMgdXBzdHJlYW0g YzgwNWI5N2I2N2M3NzRlMGJmOTIyZmZiMjlkZmJjZGE5ZDdiNWFkZAorUGF0Y2gxMDQyOiBvcGVu c3NoLTkuOXAxLW11eC1hc2twYXNzLWNoZWNrLnBhdGNoCisjIHVwc3RyZWFtIGZkMWM3ZTEzMWYz MzE5NDJkMjBmNDJmMzFlNzk5MTJkNTcwMDgxZmEKK1BhdGNoMTA0Mzogb3BlbnNzaC05LjlwMS1l Y2RzYS1pbmNvbXBsZXRlLWFwcGxpY2F0aW9uLnBhdGNoCisjIHVwc3RyZWFtIGZkMWM3ZTEzMWYz MzE5NDJkMjBmNDJmMzFlNzk5MTJkNTcwMDgxZmEKK1BhdGNoMTA0NDogb3BlbnNzaC05LjlwMS1h dXRob3JpemVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2gKKyMgdXBzdHJlYW0gNzY2ODVj OWIwOWE2NjQzNWNkMmFkODM3MzI0NmFkZjFjNTM5NzZkMworIyB1cHN0cmVhbSAwYTBlZjQ1MTUz NjExNDNjYWQyMWFmYTA3MjMxOTgyMzg1NGMxY2Y2CisjIHVwc3RyZWFtIDYwN2JkODcxZWMwMjll OWFhMjJlNjMyYTIyNTQ3MjUwZjNjYWUyMjMKKyMgdXBzdHJlYW0gMTM0MGQzZmE4ZTRiYjEyMjkw NmE4MjE1OWM0YzliOTE1ODRkNjVjZQorUGF0Y2gxMDQ1OiBvcGVuc3NoLTkuOXAxLXByb3h5anVt cC11c2VybmFtZS12YWxpZGl0eS1jaGVja3MucGF0Y2gKIAogIyBUaGlzIGlzIHRoZSBwYXRjaCB0 aGF0IGFkZHMgR1NJIHN1cHBvcnQKICMgQmFzZWQgb24gaHBuX2lzc2hkLWdzaS43LjVwMWIucGF0 Y2ggZnJvbSBHbG9idXMgdXBzdHJlYW0KQEAgLTM1NSw5ICszNzAsNiBAQCBncGd2MiAtLXF1aWV0 IC0ta2V5cmluZyAle1NPVVJDRTN9ICV7U09VUkNFMX0gJXtTT1VSQ0UwfQogCiAlcGF0Y2ggLVAx MDAyIC1wMSAtYiAuc3NoLW1hbnBhZ2UKICVwYXRjaCAtUDEwMDYgLXAxIC1iIC5uZWdvdGlhdGUt c3VwcG9ydGVkLWFsZ3MKLQotJXBhdGNoIC1QMTAwIC1wMSAtYiAuY292ZXJpdHkKLQogJXBhdGNo IC1QMTAwNyAtcDEgLWIgLnNzaHJzYWNoZWNrCiAlcGF0Y2ggLVAxMDEyIC1wMSAtYiAuZXZwLWZp cHMta2V4CiAlcGF0Y2ggLVAxMDE1IC1wMSAtYiAucGFtLXJob3N0CkBAIC0zNzgsNiArMzkwLDE0 IEBAIGdwZ3YyIC0tcXVpZXQgLS1rZXlyaW5nICV7U09VUkNFM30gJXtTT1VSQ0UxfSAle1NPVVJD RTB9CiAlcGF0Y2ggLVAxMDM3IC1wMSAtYiAucmVqZWN0LWNudHJsLWNoYXJzLWluLXVzZXJuYW1l CiAlcGF0Y2ggLVAxMDM4IC1wMSAtYiAucmVqZWN0LW51bGwtY2hhci1pbi11cmwtc3RyaW5nCiAl cGF0Y2ggLVAxMDM5IC1wMSAtYiAuc2tpcC1tbGtlbS13aGVuLW5hCislcGF0Y2ggLVAxMDQwIC1w MSAtYiAuZmlsbC1kZWZhdWx0LW9wdGlvbnMtZXJyb3IKKyVwYXRjaCAtUDEwNDEgLXAxIC1iIC5z Y3AtY2xlYXItc2V0dWlkCislcGF0Y2ggLVAxMDQyIC1wMSAtYiAubXV4LWFza3Bhc3MtY2hlY2sK KyVwYXRjaCAtUDEwNDMgLXAxIC1iIC5lY2RzYS1pbmNvbXBsZXRlLWFwcGxpY2F0aW9uCislcGF0 Y2ggLVAxMDQ0IC1wMSAtYiAuYXV0aG9yaXplZC1rZXlzLXByaW5jaXBsZXMtb3B0aW9uCislcGF0 Y2ggLVAxMDQ1IC1wMSAtYiAucHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcworCisl cGF0Y2ggLVAxMDAgLXAxIC1iIC5jb3Zlcml0eQogCiAlcGF0Y2ggLVA5OCAtcDEgLWIgLmdzaQog JXBhdGNoIC1QOTkgLXAxIC1iIC5ocG4KQEAgLTU4Myw2ICs2MDMsOSBAQCBmaQogJWF0dHIoMDY0 NCxyb290LHJvb3QpICV7X3N5c3VzZXJzZGlyfS8le25hbWV9LXNlcnZlci5jb25mCiAKICVjaGFu Z2Vsb2cKKyogRnJpIE1heSAyOSAyMDI2IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBw aHlzaWNzLnV1LnNlPiAtIDkuOXAxLTIKKy0gQmFzZWQgb24gb3BlbnNzaC05LjlwMS04LmVsOQor CiAqIEZyaSBNYXIgMjAgMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2lj cy51dS5zZT4gLSA5LjlwMS0xCiAtIEJhc2VkIG9uIG9wZW5zc2gtOS45cDEtNS5lbDkKIAoKZGlm ZiAtLWdpdCBhL29wZW5zc2gtNi43cDEtY292ZXJpdHkucGF0Y2ggYi9vcGVuc3NoLTYuN3AxLWNv dmVyaXR5LnBhdGNoCmluZGV4IGZmZTBjNjkuLjMzZGJiMjAgMTAwNjQ0Ci0tLSBhL29wZW5zc2gt Ni43cDEtY292ZXJpdHkucGF0Y2gKKysrIGIvb3BlbnNzaC02LjdwMS1jb3Zlcml0eS5wYXRjaApA QCAtMTU5LDcgKzE1OSw0NyBAQCBkaWZmIC11cCBvcGVuc3NoLTguN3AxL29wZW5ic2QtY29tcGF0 L2JzZC1wc2VsZWN0LmMuY292ZXJpdHkgb3BlbnNzaC04LjdwMS9vcGVuYgogZGlmZiAtdXAgb3Bl bnNzaC04LjVwMS9yZWFkY29uZi5jLmNvdmVyaXR5IG9wZW5zc2gtOC41cDEvcmVhZGNvbmYuYwog LS0tIG9wZW5zc2gtOC41cDEvcmVhZGNvbmYuYy5jb3Zlcml0eQkyMDIxLTAzLTI0IDEyOjAzOjMz Ljc3ODk2ODEzMSArMDEwMAogKysrIG9wZW5zc2gtOC41cDEvcmVhZGNvbmYuYwkyMDIxLTAzLTI0 IDEyOjAzOjMzLjc4NTk2ODE4MCArMDEwMAotQEAgLTE4NDcsNiArMTg0Nyw3IEBAIHBhcnNlX3B1 YmtleV9hbGdvczoKK0BAIC03NDksMTIgKzc0OSwxMiBAQCBtYXRjaF9jZmdfbGluZShPcHRpb25z ICpvcHRpb25zLCBjb25zdCBjCisgCWRlYnVnMigiY2hlY2tpbmcgbWF0Y2ggZm9yICclcycgaG9z dCAlcyBvcmlnaW5hbGx5ICVzIiwKKyAJICAgIGZ1bGxfbGluZSwgaG9zdCwgb3JpZ2luYWxfaG9z dCk7CisgCXdoaWxlICgoYXR0cmliID0gYXJndl9uZXh0KGFjcCwgYXZwKSkgIT0gTlVMTCkgewor LQkJYXR0cmliID0gb2F0dHJpYiA9IHhzdHJkdXAoYXR0cmliKTsKKyAJCS8qIFRlcm1pbmF0ZSBv biBjb21tZW50ICovCisgCQlpZiAoKmF0dHJpYiA9PSAnIycpIHsKKyAJCQlhcmd2X2NvbnN1bWUo YWNwKTsKKyAJCQlicmVhazsKKyAJCX0KKysJCWF0dHJpYiA9IG9hdHRyaWIgPSB4c3RyZHVwKGF0 dHJpYik7CisgCQlhcmcgPSBjcml0ZXJpYSA9IE5VTEw7CisgCQl0aGlzX3Jlc3VsdCA9IDE7Cisg CQlpZiAoKG5lZ2F0ZSA9IChhdHRyaWJbMF0gPT0gJyEnKSkpCitAQCAtNzkzLDcgKzc5Myw3IEBA IG1hdGNoX2NmZ19saW5lKE9wdGlvbnMgKm9wdGlvbnMsIGNvbnN0IGMKKyAJCQlkZWJ1ZzMoIiUu MjAwcyBsaW5lICVkOiAlc21hdGNoZWQgJyVzJyIsCisgCQkJICAgIGZpbGVuYW1lLCBsaW5lbnVt LAorIAkJCSAgICB0aGlzX3Jlc3VsdCA/ICIiIDogIm5vdCAiLCBvYXR0cmliKTsKKy0JCQljb250 aW51ZTsKKysJCQlnb3RvIG5leHQ7CisgCQl9CisgCisgCQkvKiBLZWVwIHRoaXMgbGlzdCBpbiBz eW5jIHdpdGggYmVsb3cgKi8KK0BAIC04NjMsNyArODYzLDcgQEAgbWF0Y2hfY2ZnX2xpbmUoT3B0 aW9ucyAqb3B0aW9ucywgY29uc3QgYworIAkJCQlkZWJ1ZzMoIiUuMjAwcyBsaW5lICVkOiBza2lw cGVkIGV4ZWMgIgorIAkJCQkgICAgIlwiJS4xMDBzXCIiLCBmaWxlbmFtZSwgbGluZW51bSwgY21k KTsKKyAJCQkJZnJlZShjbWQpOworLQkJCQljb250aW51ZTsKKysJCQkJZ290byBuZXh0OworIAkJ CX0KKyAJCQlyID0gZXhlY3V0ZV9pbl9zaGVsbChjbWQpOworIAkJCWlmIChyID09IC0xKSB7CitA QCAtODg3LDYgKzg4Nyw3IEBAIG1hdGNoX2NmZ19saW5lKE9wdGlvbnMgKm9wdGlvbnMsIGNvbnN0 IGMKKyAJCSAgICBjcml0ZXJpYSA9PSBOVUxMID8gIiIgOiAiIFwiIiwKKyAJCSAgICBjcml0ZXJp YSA9PSBOVUxMID8gIiIgOiBjcml0ZXJpYSwKKyAJCSAgICBjcml0ZXJpYSA9PSBOVUxMID8gIiIg OiAiXCIiKTsKKytuZXh0OgorIAkJZnJlZShjcml0ZXJpYSk7CisgCQlmcmVlKG9hdHRyaWIpOwor IAkJb2F0dHJpYiA9IGF0dHJpYiA9IE5VTEw7CitAQCAtMTg0Nyw2ICsxODQ4LDcgQEAgcGFyc2Vf cHVia2V5X2FsZ29zOgogIAkJCX0gZWxzZSBpZiAociAhPSAwKSB7CiAgCQkJCWVycm9yKCIlLjIw MHMgbGluZSAlZDogZ2xvYiBmYWlsZWQgZm9yICVzLiIsCiAgCQkJCSAgICBmaWxlbmFtZSwgbGlu ZW51bSwgYXJnMik7CkBAIC0xNzAsNyArMjEwLDEwOSBAQCBkaWZmIC11cCBvcGVuc3NoLTguNXAx L3JlYWRjb25mLmMuY292ZXJpdHkgb3BlbnNzaC04LjVwMS9yZWFkY29uZi5jCiBkaWZmIC11cCBv cGVuc3NoLTcuNHAxL3NlcnZjb25mLmMuY292ZXJpdHkgb3BlbnNzaC03LjRwMS9zZXJ2Y29uZi5j CiAtLS0gb3BlbnNzaC03LjRwMS9zZXJ2Y29uZi5jLmNvdmVyaXR5CTIwMTYtMTItMjMgMTY6NDA6 MjYuODk2Nzg4NjkwICswMTAwCiArKysgb3BlbnNzaC03LjRwMS9zZXJ2Y29uZi5jCTIwMTYtMTIt MjMgMTY6NDA6MjYuOTAxNzg4NjkxICswMTAwCi1AQCAtMTYzOCw4ICsxNjM4LDkgQEAgcHJvY2Vz c19zZXJ2ZXJfY29uZmlnX2xpbmUoU2VydmVyT3B0aW9ucworQEAgLTExMDQsMTIgKzExMDQsMTIg QEAgbWF0Y2hfY2ZnX2xpbmUoY29uc3QgY2hhciAqZnVsbF9saW5lLCBpbgorIAl9CisgCisgCXdo aWxlICgob2F0dHJpYiA9IGFyZ3ZfbmV4dChhY3AsIGF2cCkpICE9IE5VTEwpIHsKKy0JCWF0dHJp YiA9IHhzdHJkdXAob2F0dHJpYik7CisgCQkvKiBUZXJtaW5hdGUgb24gY29tbWVudCAqLworLQkJ aWYgKCphdHRyaWIgPT0gJyMnKSB7CisrCQlpZiAoKm9hdHRyaWIgPT0gJyMnKSB7CisgCQkJYXJn dl9jb25zdW1lKGFjcCk7IC8qIG1hcmsgYWxsIGFyZ3VtZW50cyBjb25zdW1lZCAqLworIAkJCWJy ZWFrOworIAkJfQorKwkJYXR0cmliID0geHN0cmR1cChvYXR0cmliKTsKKyAJCWFyZyA9IE5VTEw7 CisgCQlhdHRyaWJ1dGVzKys7CisgCQkvKiBDcml0ZXJpb24gImFsbCIgaGFzIG5vIGFyZ3VtZW50 IGFuZCBtdXN0IGFwcGVhciBhbG9uZSAqLworQEAgLTExMzEsMTMgKzExMzEsMTMgQEAgbWF0Y2hf Y2ZnX2xpbmUoY29uc3QgY2hhciAqZnVsbF9saW5lLCBpbgorIAkJaWYgKHN0cmNhc2VjbXAoYXR0 cmliLCAiaW52YWxpZC11c2VyIikgPT0gMCkgeworIAkJCWlmIChjaSA9PSBOVUxMKSB7CisgCQkJ CXJlc3VsdCA9IDA7CistCQkJCWNvbnRpbnVlOworKwkJCQlnb3RvIG5leHQ7CisgCQkJfQorIAkJ CWlmIChjaS0+dXNlcl9pbnZhbGlkID09IDApCisgCQkJCXJlc3VsdCA9IDA7CisgCQkJZWxzZQor IAkJCQlkZWJ1ZygibWF0Y2hlZCBpbnZhbGlkLXVzZXIgYXQgbGluZSAlZCIsIGxpbmUpOworLQkJ CWNvbnRpbnVlOworKwkJCWdvdG8gbmV4dDsKKyAJCX0KKyAKKyAJCS8qIEtlZXAgdGhpcyBsaXN0 IGluIHN5bmMgd2l0aCBiZWxvdyAqLworQEAgLTExNjMsNyArMTE2Myw3IEBAIG1hdGNoX2NmZ19s aW5lKGNvbnN0IGNoYXIgKmZ1bGxfbGluZSwgaW4KKyAJCWlmIChzdHJjYXNlY21wKGF0dHJpYiwg InVzZXIiKSA9PSAwKSB7CisgCQkJaWYgKGNpID09IE5VTEwgfHwgKGNpLT50ZXN0ICYmIGNpLT51 c2VyID09IE5VTEwpKSB7CisgCQkJCXJlc3VsdCA9IDA7CistCQkJCWNvbnRpbnVlOworKwkJCQln b3RvIG5leHQ7CisgCQkJfQorIAkJCWlmIChjaS0+dXNlciA9PSBOVUxMKQorIAkJCQltYXRjaF90 ZXN0X21pc3NpbmdfZmF0YWwoIlVzZXIiLCAidXNlciIpOworQEAgLTExNzUsNyArMTE3NSw3IEBA IG1hdGNoX2NmZ19saW5lKGNvbnN0IGNoYXIgKmZ1bGxfbGluZSwgaW4KKyAJCX0gZWxzZSBpZiAo c3RyY2FzZWNtcChhdHRyaWIsICJncm91cCIpID09IDApIHsKKyAJCQlpZiAoY2kgPT0gTlVMTCB8 fCAoY2ktPnRlc3QgJiYgY2ktPnVzZXIgPT0gTlVMTCkpIHsKKyAJCQkJcmVzdWx0ID0gMDsKKy0J CQkJY29udGludWU7CisrCQkJCWdvdG8gbmV4dDsKKyAJCQl9CisgCQkJaWYgKGNpLT51c2VyID09 IE5VTEwpCisgCQkJCW1hdGNoX3Rlc3RfbWlzc2luZ19mYXRhbCgiR3JvdXAiLCAidXNlciIpOwor QEAgLTExODksNyArMTE4OSw3IEBAIG1hdGNoX2NmZ19saW5lKGNvbnN0IGNoYXIgKmZ1bGxfbGlu ZSwgaW4KKyAJCX0gZWxzZSBpZiAoc3RyY2FzZWNtcChhdHRyaWIsICJob3N0IikgPT0gMCkgewor IAkJCWlmIChjaSA9PSBOVUxMIHx8IChjaS0+dGVzdCAmJiBjaS0+aG9zdCA9PSBOVUxMKSkgewor IAkJCQlyZXN1bHQgPSAwOworLQkJCQljb250aW51ZTsKKysJCQkJZ290byBuZXh0OworIAkJCX0K KyAJCQlpZiAoY2ktPmhvc3QgPT0gTlVMTCkKKyAJCQkJbWF0Y2hfdGVzdF9taXNzaW5nX2ZhdGFs KCJIb3N0IiwgImhvc3QiKTsKK0BAIC0xMjA0LDcgKzEyMDQsNyBAQCBtYXRjaF9jZmdfbGluZShj b25zdCBjaGFyICpmdWxsX2xpbmUsIGluCisgCQkJCQlmYXRhbCgiSW52YWxpZCBNYXRjaCBhZGRy ZXNzIGFyZ3VtZW50ICIKKyAJCQkJCSAgICAiJyVzJyBhdCBsaW5lICVkIiwgYXJnLCBsaW5lKTsK KyAJCQkJcmVzdWx0ID0gMDsKKy0JCQkJY29udGludWU7CisrCQkJCWdvdG8gbmV4dDsKKyAJCQl9 CisgCQkJaWYgKGNpLT5hZGRyZXNzID09IE5VTEwpCisgCQkJCW1hdGNoX3Rlc3RfbWlzc2luZ19m YXRhbCgiQWRkcmVzcyIsICJhZGRyIik7CitAQCAtMTIyOCw3ICsxMjI4LDcgQEAgbWF0Y2hfY2Zn X2xpbmUoY29uc3QgY2hhciAqZnVsbF9saW5lLCBpbgorIAkJCQkJICAgICJhcmd1bWVudCAnJXMn IGF0IGxpbmUgJWQiLCBhcmcsCisgCQkJCQkgICAgbGluZSk7CisgCQkJCXJlc3VsdCA9IDA7Cist CQkJCWNvbnRpbnVlOworKwkJCQlnb3RvIG5leHQ7CisgCQkJfQorIAkJCWlmIChjaS0+bGFkZHJl c3MgPT0gTlVMTCkKKyAJCQkJbWF0Y2hfdGVzdF9taXNzaW5nX2ZhdGFsKCJMb2NhbEFkZHJlc3Mi LAorQEAgLTEyNTYsNyArMTI1Niw3IEBAIG1hdGNoX2NmZ19saW5lKGNvbnN0IGNoYXIgKmZ1bGxf bGluZSwgaW4KKyAJCQl9CisgCQkJaWYgKGNpID09IE5VTEwgfHwgKGNpLT50ZXN0ICYmIGNpLT5s cG9ydCA9PSAtMSkpIHsKKyAJCQkJcmVzdWx0ID0gMDsKKy0JCQkJY29udGludWU7CisrCQkJCWdv dG8gbmV4dDsKKyAJCQl9CisgCQkJaWYgKGNpLT5scG9ydCA9PSAwKQorIAkJCQltYXRjaF90ZXN0 X21pc3NpbmdfZmF0YWwoIkxvY2FsUG9ydCIsICJscG9ydCIpOworQEAgLTEyNzAsNyArMTI3MCw3 IEBAIG1hdGNoX2NmZ19saW5lKGNvbnN0IGNoYXIgKmZ1bGxfbGluZSwgaW4KKyAJCX0gZWxzZSBp ZiAoc3RyY2FzZWNtcChhdHRyaWIsICJyZG9tYWluIikgPT0gMCkgeworIAkJCWlmIChjaSA9PSBO VUxMIHx8IChjaS0+dGVzdCAmJiBjaS0+cmRvbWFpbiA9PSBOVUxMKSkgeworIAkJCQlyZXN1bHQg PSAwOworLQkJCQljb250aW51ZTsKKysJCQkJZ290byBuZXh0OworIAkJCX0KKyAJCQlpZiAoY2kt PnJkb21haW4gPT0gTlVMTCkKKyAJCQkJbWF0Y2hfdGVzdF9taXNzaW5nX2ZhdGFsKCJSRG9tYWlu IiwgInJkb21haW4iKTsKK0BAIC0xMjg0LDYgKzEyODQsNyBAQCBtYXRjaF9jZmdfbGluZShjb25z dCBjaGFyICpmdWxsX2xpbmUsIGluCisgCQkJcmVzdWx0ID0gLTE7CisgCQkJZ290byBvdXQ7Cisg CQl9CisrbmV4dDoKKyAJCWZyZWUoYXR0cmliKTsKKyAJCWF0dHJpYiA9IE5VTEw7CisgCX0KK0BA IC0xNjM4LDggKzE2MzksOSBAQCBwcm9jZXNzX3NlcnZlcl9jb25maWdfbGluZShTZXJ2ZXJPcHRp b25zCiAgCQlpZiAoKmFjdGl2ZXAgJiYgKmNoYXJwdHIgPT0gTlVMTCkgewogIAkJCSpjaGFycHRy ID0gdGlsZGVfZXhwYW5kX2ZpbGVuYW1lKGFyZywgZ2V0dWlkKCkpOwogIAkJCS8qIGluY3JlYXNl IG9wdGlvbmFsIGNvdW50ZXIgKi8KQEAgLTI0NiwzICszODgsMjIgQEAgZGlmZiAtdXAgb3BlbnNz aC04LjVwMS9zc2gta2V5Z2VuLmMuY292ZXJpdHkgb3BlbnNzaC04LjVwMS9zc2gta2V5Z2VuLmMK ICAJCX0gZWxzZSB7CiAgCQkJaWYgKHN0cm5jYXNlY21wKGNwLCAia2V5OiIsIDQpID09IDApIHsK ICAJCQkJY3AgKz0gNDsKK2RpZmYgLXVwIG9wZW5zc2gtOS45cDEvc3NoZC5jLmNvdmVyaXR5IG9w ZW5zc2gtOS45cDEvc3NoZC5jCistLS0gb3BlbnNzaC05LjlwMS9zc2hkLmMuY292ZXJpdHkJMjAy Ni0wNC0wOCAxNToxOToyMC40ODAwMTU1NjggKzAyMDAKKysrKyBvcGVuc3NoLTkuOXAxL3NzaGQu YwkyMDI2LTA0LTA4IDE1OjIyOjEwLjkzODMyODU1NiArMDIwMAorQEAgLTEwNjksNiArMTA2OSw3 IEBAIHNlcnZlcl9hY2NlcHRfbG9vcChpbnQgKnNvY2tfaW4sIGludCAqc28KKyAJCQkJc2VuZF9y ZXhlY19zdGF0ZShjb25maWdfc1swXSwgY2ZnKTsKKyAJCQkJY2xvc2UoY29uZmlnX3NbMF0pOwor IAkJCQlmcmVlKHBmZCk7CisrCQkJCWZyZWUoc3RhcnR1cF9wb2xsZmQpOworIAkJCQlyZXR1cm47 CisgCQkJfQorIAorQEAgLTExMDEsNiArMTEwMiw3IEBAIHNlcnZlcl9hY2NlcHRfbG9vcChpbnQg KnNvY2tfaW4sIGludCAqc28KKyAJCQkJICAgIGxvZ19zdGRlcnIpOworIAkJCQljbG9zZShjb25m aWdfc1swXSk7CisgCQkJCWZyZWUocGZkKTsKKysJCQkJZnJlZShzdGFydHVwX3BvbGxmZCk7Cisg CQkJCXJldHVybjsKKyAJCQl9CisgCgpkaWZmIC0tZ2l0IGEvb3BlbnNzaC05LjlwMS1hdXRob3Jp emVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLWF1dGhvcml6 ZWQta2V5cy1wcmluY2lwbGVzLW9wdGlvbi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi45YmRkMTk5Ci0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzaC05LjlwMS1hdXRo b3JpemVkLWtleXMtcHJpbmNpcGxlcy1vcHRpb24ucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorZGlm ZiAtLWNvbG9yIC1ydU5wIGEvYXV0aDItcHVia2V5ZmlsZS5jIGIvYXV0aDItcHVia2V5ZmlsZS5j CistLS0gYS9hdXRoMi1wdWJrZXlmaWxlLmMJMjAyNC0wOS0yMCAwMDoyMDo0OC4wMDAwMDAwMDAg KzAyMDAKKysrKyBiL2F1dGgyLXB1YmtleWZpbGUuYwkyMDI2LTA0LTA5IDE0OjM4OjQxLjY5NzE3 ODYxMiArMDIwMAorQEAgLTUwLDYgKzUwLDcgQEAKKyAjaW5jbHVkZSAiYXV0aGZpbGUuaCIKKyAj aW5jbHVkZSAibWF0Y2guaCIKKyAjaW5jbHVkZSAic3NoZXJyLmgiCisrI2luY2x1ZGUgInhtYWxs b2MuaCIKKyAKKyBpbnQKKyBhdXRoX2F1dGhvcmlzZV9rZXlvcHRzKHN0cnVjdCBwYXNzd2QgKnB3 LCBzdHJ1Y3Qgc3NoYXV0aG9wdCAqb3B0cywKK0BAIC0xNDYsMjAgKzE0NywyMyBAQCBhdXRoX2F1 dGhvcmlzZV9rZXlvcHRzKHN0cnVjdCBwYXNzd2QgKnB3Cisgc3RhdGljIGludAorIG1hdGNoX3By aW5jaXBhbHNfb3B0aW9uKGNvbnN0IGNoYXIgKnByaW5jaXBhbF9saXN0LCBzdHJ1Y3Qgc3Noa2V5 X2NlcnQgKmNlcnQpCisgeworLQljaGFyICpyZXN1bHQ7CisrCWNoYXIgKmxpc3QsICpvbGlzdCwg KmVudHJ5OworIAl1X2ludCBpOworIAorLQkvKiBYWFggcGVyY2VudF9leHBhbmQoKSBzZXF1ZW5j ZXMgZm9yIGF1dGhvcml6ZWRfcHJpbmNpcGFscz8gKi8KKy0KKy0JZm9yIChpID0gMDsgaSA8IGNl cnQtPm5wcmluY2lwYWxzOyBpKyspIHsKKy0JCWlmICgocmVzdWx0ID0gbWF0Y2hfbGlzdChjZXJ0 LT5wcmluY2lwYWxzW2ldLAorLQkJICAgIHByaW5jaXBhbF9saXN0LCBOVUxMKSkgIT0gTlVMTCkg eworLQkJCWRlYnVnMygibWF0Y2hlZCBwcmluY2lwYWwgZnJvbSBrZXkgb3B0aW9ucyBcIiUuMTAw c1wiIiwKKy0JCQkgICAgcmVzdWx0KTsKKy0JCQlmcmVlKHJlc3VsdCk7CistCQkJcmV0dXJuIDE7 CisrCW9saXN0ID0gbGlzdCA9IHhzdHJkdXAocHJpbmNpcGFsX2xpc3QpOworKwlmb3IgKDs7KSB7 CisrCQlpZiAoKGVudHJ5ID0gc3Ryc2VwKCZsaXN0LCAiLCIpKSA9PSBOVUxMIHx8ICplbnRyeSA9 PSAnXDAnKQorKwkJCWJyZWFrOworKwkJZm9yIChpID0gMDsgaSA8IGNlcnQtPm5wcmluY2lwYWxz OyBpKyspIHsKKysJCQlpZiAoc3RyY21wKGVudHJ5LCBjZXJ0LT5wcmluY2lwYWxzW2ldKSA9PSAw KSB7CisrCQkJCWRlYnVnMygibWF0Y2hlZCBwcmluY2lwYWwgZnJvbSBrZXkgaSIKKysJCQkJICAg ICJvcHRpb25zIFwiJS4xMDBzXCIiLCBlbnRyeSk7CisrCQkJCWZyZWUob2xpc3QpOworKwkJCQly ZXR1cm4gMTsKKysJCQl9CisgCQl9CisgCX0KKysJZnJlZShvbGlzdCk7CisgCXJldHVybiAwOwor IH0KKyAKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLWVjZHNhLWluY29tcGxldGUtYXBwbGlj YXRpb24ucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLWVjZHNhLWluY29tcGxldGUtYXBwbGljYXRpb24u cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2I5M2NhNAotLS0gL2Rl di9udWxsCisrKyBiL29wZW5zc2gtOS45cDEtZWNkc2EtaW5jb21wbGV0ZS1hcHBsaWNhdGlvbi5w YXRjaApAQCAtMCwwICsxLDEwMyBAQAorZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0aDItaG9zdGJh c2VkLmMgYi9hdXRoMi1ob3N0YmFzZWQuYworLS0tIGEvYXV0aDItaG9zdGJhc2VkLmMJMjAyNi0w NC0wOSAxMzoyMjoyOC4xMTQwNDU3NDkgKzAyMDAKKysrKyBiL2F1dGgyLWhvc3RiYXNlZC5jCTIw MjYtMDQtMDkgMTQ6MzQ6NDQuODc2MzkzODIyICswMjAwCitAQCAtOTYsOSArOTYsMTAgQEAgdXNl cmF1dGhfaG9zdGJhc2VkKHN0cnVjdCBzc2ggKnNzaCwgY29ucworIAkJZXJyb3JfZigiY2Fubm90 IGRlY29kZSBrZXk6ICVzIiwgcGthbGcpOworIAkJZ290byBkb25lOworIAl9CistCWlmIChrZXkt PnR5cGUgIT0gcGt0eXBlKSB7CistCQllcnJvcl9mKCJ0eXBlIG1pc21hdGNoIGZvciBkZWNvZGVk IGtleSAiCistCQkgICAgIihyZWNlaXZlZCAlZCwgZXhwZWN0ZWQgJWQpIiwga2V5LT50eXBlLCBw a3R5cGUpOworKwlpZiAoa2V5LT50eXBlICE9IHBrdHlwZSB8fCAoc3Noa2V5X3R5cGVfcGxhaW4o cGt0eXBlKSA9PSBLRVlfRUNEU0EgJiYKKysJICAgIHNzaGtleV9lY2RzYV9uaWRfZnJvbV9uYW1l KHBrYWxnKSAhPSBrZXktPmVjZHNhX25pZCkpIHsKKysJCWVycm9yX2YoImtleSB0eXBlIG1pc21h dGNoIGZvciBkZWNvZGVkIGtleSAiCisrCQkgICAgIihyZWNlaXZlZCAlcywgZXhwZWN0ZWQgJXMp Iiwgc3Noa2V5X3NzaF9uYW1lKGtleSksIHBrYWxnKTsKKyAJCWdvdG8gZG9uZTsKKyAJfQorIAlp ZiAobWF0Y2hfcGF0dGVybl9saXN0KHBrYWxnLCBvcHRpb25zLmhvc3RiYXNlZF9hY2NlcHRlZF9h bGdvcywgMCkgIT0gMSkgeworZGlmZiAtLWNvbG9yIC1ydU5wIGEvYXV0aDItcHVia2V5LmMgYi9h dXRoMi1wdWJrZXkuYworLS0tIGEvYXV0aDItcHVia2V5LmMJMjAyNi0wNC0wOSAxMzoyMjoyOC4x NTcxOTQxMTggKzAyMDAKKysrKyBiL2F1dGgyLXB1YmtleS5jCTIwMjYtMDQtMDkgMTQ6MzU6NDgu OTk3Njg5MzQ3ICswMjAwCitAQCAtMTUyLDkgKzE1MiwxMCBAQCB1c2VyYXV0aF9wdWJrZXkoc3Ry dWN0IHNzaCAqc3NoLCBjb25zdCBjCisgCQllcnJvcl9mKCJjYW5ub3QgZGVjb2RlIGtleTogJXMi LCBwa2FsZyk7CisgCQlnb3RvIGRvbmU7CisgCX0KKy0JaWYgKGtleS0+dHlwZSAhPSBwa3R5cGUp IHsKKy0JCWVycm9yX2YoInR5cGUgbWlzbWF0Y2ggZm9yIGRlY29kZWQga2V5ICIKKy0JCSAgICAi KHJlY2VpdmVkICVkLCBleHBlY3RlZCAlZCkiLCBrZXktPnR5cGUsIHBrdHlwZSk7CisrCWlmIChr ZXktPnR5cGUgIT0gcGt0eXBlIHx8IChzc2hrZXlfdHlwZV9wbGFpbihwa3R5cGUpID09IEtFWV9F Q0RTQSAmJgorKwkgICAgc3Noa2V5X2VjZHNhX25pZF9mcm9tX25hbWUocGthbGcpICE9IGtleS0+ ZWNkc2FfbmlkKSkgeworKwkJZXJyb3JfZigia2V5IHR5cGUgbWlzbWF0Y2ggZm9yIGRlY29kZWQg a2V5ICIKKysJCSAgICAiKHJlY2VpdmVkICVzLCBleHBlY3RlZCAlcykiLCBzc2hrZXlfc3NoX25h bWUoa2V5KSwgcGthbGcpOworIAkJZ290byBkb25lOworIAl9CisgCWlmIChhdXRoMl9rZXlfYWxy ZWFkeV91c2VkKGF1dGhjdHh0LCBrZXkpKSB7CitkaWZmIC0tY29sb3IgLXJ1TnAgYS9zc2hjb25u ZWN0Mi5jIGIvc3NoY29ubmVjdDIuYworLS0tIGEvc3NoY29ubmVjdDIuYwkyMDI2LTA0LTA5IDEz OjIyOjI4LjE5MzQxMjU1MyArMDIwMAorKysrIGIvc3NoY29ubmVjdDIuYwkyMDI2LTA0LTA5IDE0 OjQyOjM3LjY0NDk0NTc2MiArMDIwMAorQEAgLTkxLDYgKzkxLDcgQEAgZXh0ZXJuIE9wdGlvbnMg b3B0aW9uczsKKyBzdGF0aWMgY2hhciAqeHh4X2hvc3Q7Cisgc3RhdGljIHN0cnVjdCBzb2NrYWRk ciAqeHh4X2hvc3RhZGRyOworIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3NoX2Nvbm5faW5mbyAqeHh4 X2Nvbm5faW5mbzsKKytzdGF0aWMgaW50IGtleV90eXBlX2FsbG93ZWQoc3RydWN0IHNzaGtleSAq LCBjb25zdCBjaGFyICopOworIAorIHN0YXRpYyBpbnQKKyB2ZXJpZnlfaG9zdF9rZXlfY2FsbGJh Y2soc3RydWN0IHNzaGtleSAqaG9zdGtleSwgc3RydWN0IHNzaCAqc3NoKQorQEAgLTEwMCw2ICsx MDEsMTAgQEAgdmVyaWZ5X2hvc3Rfa2V5X2NhbGxiYWNrKHN0cnVjdCBzc2hrZXkgKgorIAlpZiAo KHIgPSBzc2hrZXlfY2hlY2tfcnNhX2xlbmd0aChob3N0a2V5LAorIAkgICAgb3B0aW9ucy5yZXF1 aXJlZF9yc2Ffc2l6ZSkpICE9IDApCisgCQlmYXRhbF9yKHIsICJCYWQgc2VydmVyIGhvc3Qga2V5 Iik7CisrCWlmICgha2V5X3R5cGVfYWxsb3dlZChob3N0a2V5LCBvcHRpb25zLmhvc3RrZXlhbGdv cml0aG1zKSkgeworKwkJZmF0YWwoIlNlcnZlciBob3N0IGtleSAlcyBub3QgaW4gSG9zdEtleUFs Z29yaXRobXMiLAorKwkJICAgIHNzaGtleV9zc2hfbmFtZShob3N0a2V5KSk7CisrCX0KKyAJaWYg KHZlcmlmeV9ob3N0X2tleSh4eHhfaG9zdCwgeHh4X2hvc3RhZGRyLCBob3N0a2V5LAorIAkgICAg eHh4X2Nvbm5faW5mbykgIT0gMCkKKyAJCWZhdGFsKCJIb3N0IGtleSB2ZXJpZmljYXRpb24gZmFp bGVkLiIpOworQEAgLTE3NzYsMzQgKzE3ODEsMzcgQEAgbG9hZF9pZGVudGl0eV9maWxlKElkZW50 aXR5ICppZCkKKyB9CisgCisgc3RhdGljIGludAorLWtleV90eXBlX2FsbG93ZWRfYnlfY29uZmln KHN0cnVjdCBzc2hrZXkgKmtleSkKKytrZXlfdHlwZV9hbGxvd2VkKHN0cnVjdCBzc2hrZXkgKmtl eSwgY29uc3QgY2hhciAqYWxsb3dsaXN0KQorIHsKKy0JaWYgKG1hdGNoX3BhdHRlcm5fbGlzdChz c2hrZXlfc3NoX25hbWUoa2V5KSwKKy0JICAgIG9wdGlvbnMucHVia2V5X2FjY2VwdGVkX2FsZ29z LCAwKSA9PSAxKQorKwlpZiAobWF0Y2hfcGF0dGVybl9saXN0KHNzaGtleV9zc2hfbmFtZShrZXkp LCBhbGxvd2xpc3QsIDApID09IDEpCisgCQlyZXR1cm4gMTsKKyAKKyAJLyogUlNBIGtleXMvY2Vy dHMgbWlnaHQgYmUgYWxsb3dlZCBieSBhbHRlcm5hdGUgc2lnbmF0dXJlIHR5cGVzICovCisgCXN3 aXRjaCAoa2V5LT50eXBlKSB7CisgCWNhc2UgS0VZX1JTQToKKy0JCWlmIChtYXRjaF9wYXR0ZXJu X2xpc3QoInJzYS1zaGEyLTUxMiIsCistCQkgICAgb3B0aW9ucy5wdWJrZXlfYWNjZXB0ZWRfYWxn b3MsIDApID09IDEpCisrCQlpZiAobWF0Y2hfcGF0dGVybl9saXN0KCJyc2Etc2hhMi01MTIiLCBh bGxvd2xpc3QsIDApID09IDEpCisgCQkJcmV0dXJuIDE7CistCQlpZiAobWF0Y2hfcGF0dGVybl9s aXN0KCJyc2Etc2hhMi0yNTYiLAorLQkJICAgIG9wdGlvbnMucHVia2V5X2FjY2VwdGVkX2FsZ29z LCAwKSA9PSAxKQorKwkJaWYgKG1hdGNoX3BhdHRlcm5fbGlzdCgicnNhLXNoYTItMjU2IiwgYWxs b3dsaXN0LCAwKSA9PSAxKQorIAkJCXJldHVybiAxOworIAkJYnJlYWs7CisgCWNhc2UgS0VZX1JT QV9DRVJUOgorIAkJaWYgKG1hdGNoX3BhdHRlcm5fbGlzdCgicnNhLXNoYTItNTEyLWNlcnQtdjAx QG9wZW5zc2guY29tIiwKKy0JCSAgICBvcHRpb25zLnB1YmtleV9hY2NlcHRlZF9hbGdvcywgMCkg PT0gMSkKKysJCSAgICBhbGxvd2xpc3QsIDApID09IDEpCisgCQkJcmV0dXJuIDE7CisgCQlpZiAo bWF0Y2hfcGF0dGVybl9saXN0KCJyc2Etc2hhMi0yNTYtY2VydC12MDFAb3BlbnNzaC5jb20iLAor LQkJICAgIG9wdGlvbnMucHVia2V5X2FjY2VwdGVkX2FsZ29zLCAwKSA9PSAxKQorKwkJICAgIGFs bG93bGlzdCwgMCkgPT0gMSkKKyAJCQlyZXR1cm4gMTsKKyAJCWJyZWFrOworIAl9CisgCXJldHVy biAwOworIH0KKyAKKytzdGF0aWMgaW50Cisra2V5X3R5cGVfYWxsb3dlZF9ieV9jb25maWcoc3Ry dWN0IHNzaGtleSAqa2V5KQorK3sKKysJcmV0dXJuIGtleV90eXBlX2FsbG93ZWQoa2V5LCBvcHRp b25zLnB1YmtleV9hY2NlcHRlZF9hbGdvcyk7CisrfQorKworIC8qIG9idGFpbiBhIGxpc3Qgb2Yg a2V5cyBmcm9tIHRoZSBhZ2VudCAqLworIHN0YXRpYyBpbnQKKyBnZXRfYWdlbnRfaWRlbnRpdGll cyhzdHJ1Y3Qgc3NoICpzc2gsIGludCAqYWdlbnRfZmRwLAoKZGlmZiAtLWdpdCBhL29wZW5zc2gt OS45cDEtZmlsbC1kZWZhdWx0LW9wdGlvbnMtZXJyb3IucGF0Y2ggYi9vcGVuc3NoLTkuOXAxLWZp bGwtZGVmYXVsdC1vcHRpb25zLWVycm9yLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjRiODA1MDQKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NoLTkuOXAxLWZpbGwt ZGVmYXVsdC1vcHRpb25zLWVycm9yLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK2RpZmYgLS1jb2xv ciAtcnVOcCBhL3JlYWRjb25mLmMgYi9yZWFkY29uZi5jCistLS0gYS9yZWFkY29uZi5jCTIwMjYt MDQtMDIgMTU6MzY6NDkuNjI0Mzk0ODM2ICswMjAwCisrKysgYi9yZWFkY29uZi5jCTIwMjYtMDQt MDIgMTU6NDM6MTUuMTE1MDQ3MTkwICswMjAwCitAQCAtMjc3OSw3ICsyNzc5LDcgQEAgZmlsbF9k ZWZhdWx0X29wdGlvbnMoT3B0aW9ucyAqIG9wdGlvbnMpCisgeworIAljaGFyICphbGxfY2lwaGVy LCAqYWxsX21hYywgKmFsbF9rZXgsICphbGxfa2V5LCAqYWxsX3NpZzsKKyAJY2hhciAqZGVmX2Np cGhlciwgKmRlZl9tYWMsICpkZWZfa2V4LCAqZGVmX2tleSwgKmRlZl9zaWc7CistCWludCByZXQg PSAwLCByOworKwlpbnQgcmV0ID0gMDsKKyAKKyAJaWYgKG9wdGlvbnMtPmZvcndhcmRfYWdlbnQg PT0gLTEpCisgCQlvcHRpb25zLT5mb3J3YXJkX2FnZW50ID0gMDsKK0BAIC0yOTg5LDkgKzI5ODks OSBAQCBmaWxsX2RlZmF1bHRfb3B0aW9ucyhPcHRpb25zICogb3B0aW9ucykKKyAJICAgIEtFWF9G SVBTX1BLX0FMRyA6IFNTSF9BTExPV0VEX0NBX1NJR0FMR1MpLCBhbGxfc2lnKTsKKyAjZGVmaW5l IEFTU0VNQkxFKHdoYXQsIGRlZmF1bHRzLCBhbGwpIFwKKyAJZG8geyBcCistCQlpZiAoKHIgPSBr ZXhfYXNzZW1ibGVfbmFtZXMoJm9wdGlvbnMtPndoYXQsIFwKKysJCWlmICgocmV0ID0ga2V4X2Fz c2VtYmxlX25hbWVzKCZvcHRpb25zLT53aGF0LCBcCisgCQkgICAgZGVmYXVsdHMsIGFsbCkpICE9 IDApIHsgXAorLQkJCWVycm9yX2ZyKHIsICIlcyIsICN3aGF0KTsgXAorKwkJCWVycm9yX2ZyKHJl dCwgIiVzIiwgI3doYXQpOyBcCisgCQkJZ290byBmYWlsOyBcCisgCQl9IFwKKyAJfSB3aGlsZSAo MCkKCmRpZmYgLS1naXQgYS9vcGVuc3NoLTkuOXAxLW11eC1hc2twYXNzLWNoZWNrLnBhdGNoIGIv b3BlbnNzaC05LjlwMS1tdXgtYXNrcGFzcy1jaGVjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4yMTc2MjQzCi0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNzaC05Ljlw MS1tdXgtYXNrcGFzcy1jaGVjay5wYXRjaApAQCAtMCwwICsxLDIwIEBACitkaWZmIC0tY29sb3Ig LXJ1TnAgYS9tdXguYyBiL211eC5jCistLS0gYS9tdXguYwkyMDI0LTA5LTIwIDAwOjIwOjQ4LjAw MDAwMDAwMCArMDIwMAorKysrIGIvbXV4LmMJMjAyNi0wNC0wOSAxNTowMjozNi4wMTYxOTg4MTQg KzAyMDAKK0BAIC0xMTM3LDYgKzExMzcsMTYgQEAgbXV4X21hc3Rlcl9wcm9jZXNzX3Byb3h5KHN0 cnVjdCBzc2ggKnNzaAorIAorIAlkZWJ1Z19mKCJjaGFubmVsICVkOiBwcm94eSByZXF1ZXN0Iiwg Yy0+c2VsZik7CisgCisrCWlmIChvcHRpb25zLmNvbnRyb2xfbWFzdGVyID09IFNTSENUTF9NQVNU RVJfQVNLIHx8CisrCSAgICBvcHRpb25zLmNvbnRyb2xfbWFzdGVyID09IFNTSENUTF9NQVNURVJf QVVUT19BU0spIHsKKysJCWlmICghYXNrX3Blcm1pc3Npb24oIkFsbG93IG11bHRpcGxleCBwcm94 eSBjb25uZWN0aW9uPyIpKSB7CisrCQkJZGVidWcyX2YoInByb3h5IHJlZnVzZWQgYnkgdXNlciIp OworKwkJCXJlcGx5X2Vycm9yKHJlcGx5LCBNVVhfU19QRVJNSVNTSU9OX0RFTklFRCwgcmlkLAor KwkJCSAgICAiUGVybWlzc2lvbiBkZW5pZWQiKTsKKysJCQlyZXR1cm4gMDsKKysJCX0KKysJfQor KworIAljLT5tdXhfcmNiID0gY2hhbm5lbF9wcm94eV9kb3duc3RyZWFtOworIAlpZiAoKHIgPSBz c2hidWZfcHV0X3UzMihyZXBseSwgTVVYX1NfUFJPWFkpKSAhPSAwIHx8CisgCSAgICAociA9IHNz aGJ1Zl9wdXRfdTMyKHJlcGx5LCByaWQpKSAhPSAwKQoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45 cDEtcHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcy5wYXRjaCBiL29wZW5zc2gtOS45 cDEtcHJveHlqdW1wLXVzZXJuYW1lLXZhbGlkaXR5LWNoZWNrcy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmVlNDE1Ci0tLSAvZGV2L251bGwKKysrIGIvb3BlbnNz aC05LjlwMS1wcm94eWp1bXAtdXNlcm5hbWUtdmFsaWRpdHktY2hlY2tzLnBhdGNoCkBAIC0wLDAg KzEsNDAyIEBACitkaWZmIC0tY29sb3IgLXJ1TnAgYS9yZWFkY29uZi5jIGIvcmVhZGNvbmYuYwor LS0tIGEvcmVhZGNvbmYuYwkyMDI2LTA0LTEwIDE1OjQyOjUwLjY5MzcyNTgyMCArMDIwMAorKysr IGIvcmVhZGNvbmYuYwkyMDI2LTA0LTEwIDE1OjQ5OjU3LjQ0MTExMDI4NyArMDIwMAorQEAgLTE1 MzMsOSArMTUzMyw2IEBAIHBhcnNlX2NoYXJfYXJyYXk6CisgCisgCWNhc2Ugb1Byb3h5Q29tbWFu ZDoKKyAJCWNoYXJwdHIgPSAmb3B0aW9ucy0+cHJveHlfY29tbWFuZDsKKy0JCS8qIElnbm9yZSBQ cm94eUNvbW1hbmQgaWYgUHJveHlKdW1wIGFscmVhZHkgc3BlY2lmaWVkICovCistCQlpZiAob3B0 aW9ucy0+anVtcF9ob3N0ICE9IE5VTEwpCistCQkJY2hhcnB0ciA9ICZvcHRpb25zLT5qdW1wX2hv c3Q7IC8qIFNraXAgYmVsb3cgKi8KKyBwYXJzZV9jb21tYW5kOgorIAkJaWYgKHN0ciA9PSBOVUxM KSB7CisgCQkJZXJyb3IoIiUuMjAwcyBsaW5lICVkOiBNaXNzaW5nIGFyZ3VtZW50LiIsCitAQCAt MTU1Niw3ICsxNTUzLDcgQEAgcGFyc2VfY29tbWFuZDoKKyAJCX0KKyAJCWxlbiA9IHN0cnNwbihz dHIsIFdISVRFU1BBQ0UgIj0iKTsKKyAJCS8qIFhYWCB1c2UgYXJndj8gKi8KKy0JCWlmIChwYXJz ZV9qdW1wKHN0ciArIGxlbiwgb3B0aW9ucywgKmFjdGl2ZXApID09IC0xKSB7CisrCQlpZiAocGFy c2VfanVtcChzdHIgKyBsZW4sIG9wdGlvbnMsIGNtZGxpbmUsICphY3RpdmVwKSA9PSAtMSkgewor IAkJCWVycm9yKCIlLjIwMHMgbGluZSAlZDogSW52YWxpZCBQcm94eUp1bXAgXCIlc1wiIiwKKyAJ CQkgICAgZmlsZW5hbWUsIGxpbmVudW0sIHN0ciArIGxlbik7CisgCQkJZ290byBvdXQ7CitAQCAt MzM3MCw2NSArMzM2NywxMTYgQEAgcGFyc2VfZm9yd2FyZChzdHJ1Y3QgRm9yd2FyZCAqZndkLCBj b25zdAorIH0KKyAKKyBpbnQKKy1wYXJzZV9qdW1wKGNvbnN0IGNoYXIgKnMsIE9wdGlvbnMgKm8s IGludCBhY3RpdmUpCisrc3NoX3ZhbGlkX2hvc3RuYW1lKGNvbnN0IGNoYXIgKnMpCisgeworLQlj aGFyICpvcmlnLCAqc2R1cCwgKmNwOworLQljaGFyICpob3N0ID0gTlVMTCwgKnVzZXIgPSBOVUxM OworLQlpbnQgciwgcmV0ID0gLTEsIHBvcnQgPSAtMSwgZmlyc3Q7CisrCXNpemVfdCBpOworIAor LQlhY3RpdmUgJj0gby0+cHJveHlfY29tbWFuZCA9PSBOVUxMICYmIG8tPmp1bXBfaG9zdCA9PSBO VUxMOworKwlpZiAoKnMgPT0gJy0nKQorKwkJcmV0dXJuIDA7CisrCWZvciAoaSA9IDA7IHNbaV0g IT0gMDsgaSsrKSB7CisrCQlpZiAoc3RyY2hyKCInYFwiJFxcOyY8PnwoKXt9LCIsIHNbaV0pICE9 IE5VTEwgfHwKKysJCSAgICBpc3NwYWNlKCh1X2NoYXIpc1tpXSkgfHwgaXNjbnRybCgodV9jaGFy KXNbaV0pKQorKwkJCXJldHVybiAwOworKwl9CisrCXJldHVybiAxOworK30KKyAKKy0Jb3JpZyA9 IHNkdXAgPSB4c3RyZHVwKHMpOworK2ludAorK3NzaF92YWxpZF9ydXNlcihjb25zdCBjaGFyICpz KQorK3sKKysJc2l6ZV90IGk7CisrCisrCWlmICgqcyA9PSAnLScpCisrCQlyZXR1cm4gMDsKKysJ Zm9yIChpID0gMDsgc1tpXSAhPSAwOyBpKyspIHsKKysJCWlmIChpc2NudHJsKCh1X2NoYXIpc1tp XSkpCisrCQkJcmV0dXJuIDA7CisrCQlpZiAoc3RyY2hyKCInYFwiOyY8PnwoKXt9Iiwgc1tpXSkg IT0gTlVMTCkKKysJCQlyZXR1cm4gMDsKKysJCS8qIERpc2FsbG93ICctJyBhZnRlciB3aGl0ZXNw YWNlICovCisrCQlpZiAoaXNzcGFjZSgodV9jaGFyKXNbaV0pICYmIHNbaSArIDFdID09ICctJykK KysJCQlyZXR1cm4gMDsKKysJCS8qIERpc2FsbG93IFwgaW4gbGFzdCBwb3NpdGlvbiAqLworKwkJ aWYgKHNbaV0gPT0gJ1xcJyAmJiBzW2kgKyAxXSA9PSAnXDAnKQorKwkJCXJldHVybiAwOworKwl9 CisrCXJldHVybiAxOworK30KKysKKytpbnQKKytwYXJzZV9qdW1wKGNvbnN0IGNoYXIgKnMsIE9w dGlvbnMgKm8sIGludCBzdHJpY3QsIGludCBhY3RpdmUpCisreworKwljaGFyICpvcmlnID0gTlVM TCwgKnNkdXAgPSBOVUxMLCAqY3A7CisrCWNoYXIgKnRtcF91c2VyID0gTlVMTCwgKnRtcF9ob3N0 ID0gTlVMTCwgKmhvc3QgPSBOVUxMLCAqdXNlciA9IE5VTEw7CisrCWludCByLCByZXQgPSAtMSwg dG1wX3BvcnQgPSAtMSwgcG9ydCA9IC0xLCBmaXJzdCA9IDE7CisrCisrCWlmIChzdHJjYXNlY21w KHMsICJub25lIikgPT0gMCkgeworKwkJaWYgKGFjdGl2ZSAmJiBvLT5qdW1wX2hvc3QgPT0gTlVM TCkgeworKwkJCW8tPmp1bXBfaG9zdCA9IHhzdHJkdXAoIm5vbmUiKTsKKysJCQlvLT5qdW1wX3Bv cnQgPSAwOworKwkJfQorKwkJcmV0dXJuIDA7CisrCX0KKyAKKy0JLyogUmVtb3ZlIGNvbW1lbnQg YW5kIHRyYWlsaW5nIHdoaXRlc3BhY2UgKi8KKysJb3JpZyA9IHhzdHJkdXAocyk7CisgCWlmICgo Y3AgPSBzdHJjaHIob3JpZywgJyMnKSkgIT0gTlVMTCkKKyAJCSpjcCA9ICdcMCc7CisgCXJ0cmlt KG9yaWcpOworIAorLQlmaXJzdCA9IGFjdGl2ZTsKKysJYWN0aXZlICY9IG8tPnByb3h5X2NvbW1h bmQgPT0gTlVMTCAmJiBvLT5qdW1wX2hvc3QgPT0gTlVMTDsKKysJc2R1cCA9IHhzdHJkdXAob3Jp Zyk7CisgCWRvIHsKKy0JCWlmIChzdHJjYXNlY21wKHMsICJub25lIikgPT0gMCkKKy0JCQlicmVh azsKKysJCS8qIFdvcmsgYmFja3dhcmRzIHRocm91Z2ggc3RyaW5nICovCisgCQlpZiAoKGNwID0g c3RycmNocihzZHVwLCAnLCcpKSA9PSBOVUxMKQorIAkJCWNwID0gc2R1cDsgLyogbGFzdCAqLwor IAkJZWxzZQorIAkJCSpjcCsrID0gJ1wwJzsKKyAKKy0JCWlmIChmaXJzdCkgeworLQkJCS8qIEZp cnN0IGFyZ3VtZW50IGFuZCBjb25maWd1cmF0aW9uIGlzIGFjdGl2ZSAqLworLQkJCXIgPSBwYXJz ZV9zc2hfdXJpKGNwLCAmdXNlciwgJmhvc3QsICZwb3J0KTsKKy0JCQlpZiAociA9PSAtMSB8fCAo ciA9PSAxICYmCistCQkJICAgIHBhcnNlX3VzZXJfaG9zdF9wb3J0KGNwLCAmdXNlciwgJmhvc3Qs ICZwb3J0KSAhPSAwKSkKKysJCXIgPSBwYXJzZV9zc2hfdXJpKGNwLCAmdG1wX3VzZXIsICZ0bXBf aG9zdCwgJnRtcF9wb3J0KTsKKysJCWlmIChyID09IC0xIHx8IChyID09IDEgJiYgcGFyc2VfdXNl cl9ob3N0X3BvcnQoY3AsCisrCQkgICAgJnRtcF91c2VyLCAmdG1wX2hvc3QsICZ0bXBfcG9ydCkg IT0gMCkpCisrCQkJZ290byBvdXQ7IC8qIGVycm9yIGFscmVhZHkgbG9nZ2VkICovCisrCQlpZiAo c3RyaWN0KSB7CisrCQkJaWYgKCFzc2hfdmFsaWRfaG9zdG5hbWUodG1wX2hvc3QpKSB7CisrCQkJ CWVycm9yX2YoImludmFsaWQgaG9zdG5hbWUgXCIlc1wiIiwgdG1wX2hvc3QpOworIAkJCQlnb3Rv IG91dDsKKy0JCX0gZWxzZSB7CistCQkJLyogU3Vic2VxdWVudCBhcmd1bWVudCBvciBpbmFjdGl2 ZSBjb25maWd1cmF0aW9uICovCistCQkJciA9IHBhcnNlX3NzaF91cmkoY3AsIE5VTEwsIE5VTEws IE5VTEwpOworLQkJCWlmIChyID09IC0xIHx8IChyID09IDEgJiYKKy0JCQkgICAgcGFyc2VfdXNl cl9ob3N0X3BvcnQoY3AsIE5VTEwsIE5VTEwsIE5VTEwpICE9IDApKQorKwkJCX0KKysJCQlpZiAo dG1wX3VzZXIgIT0gTlVMTCAmJiAhc3NoX3ZhbGlkX3J1c2VyKHRtcF91c2VyKSkgeworKwkJCQll cnJvcl9mKCJpbnZhbGlkIHVzZXJuYW1lIFwiJXNcIiIsIHRtcF91c2VyKTsKKyAJCQkJZ290byBv dXQ7CisrCQkJfQorKwkJfQorKwkJaWYgKGZpcnN0KSB7CisrCQkJdXNlciA9IHRtcF91c2VyOwor KwkJCWhvc3QgPSB0bXBfaG9zdDsKKysJCQlwb3J0ID0gdG1wX3BvcnQ7CisrCQkJdG1wX3VzZXIg PSB0bXBfaG9zdCA9IE5VTEw7IC8qIHRyYW5zZmVycmVkICovCisgCQl9CisgCQlmaXJzdCA9IDA7 IC8qIG9ubHkgY2hlY2sgc3ludGF4IGZvciBzdWJzZXF1ZW50IGhvc3RzICovCisrCQlmcmVlKHRt cF91c2VyKTsKKysJCWZyZWUodG1wX2hvc3QpOworKwkJdG1wX3VzZXIgPSB0bXBfaG9zdCA9IE5V TEw7CisrCQl0bXBfcG9ydCA9IC0xOworIAl9IHdoaWxlIChjcCAhPSBzZHVwKTsKKysKKyAJLyog c3VjY2VzcyAqLworIAlpZiAoYWN0aXZlKSB7CistCQlpZiAoc3RyY2FzZWNtcChzLCAibm9uZSIp ID09IDApIHsKKy0JCQlvLT5qdW1wX2hvc3QgPSB4c3RyZHVwKCJub25lIik7CistCQkJby0+anVt cF9wb3J0ID0gMDsKKy0JCX0gZWxzZSB7CistCQkJby0+anVtcF91c2VyID0gdXNlcjsKKy0JCQlv LT5qdW1wX2hvc3QgPSBob3N0OworLQkJCW8tPmp1bXBfcG9ydCA9IHBvcnQ7CistCQkJby0+cHJv eHlfY29tbWFuZCA9IHhzdHJkdXAoIm5vbmUiKTsKKy0JCQl1c2VyID0gaG9zdCA9IE5VTEw7Cist CQkJaWYgKChjcCA9IHN0cnJjaHIocywgJywnKSkgIT0gTlVMTCAmJiBjcCAhPSBzKSB7CistCQkJ CW8tPmp1bXBfZXh0cmEgPSB4c3RyZHVwKHMpOworLQkJCQlvLT5qdW1wX2V4dHJhW2NwIC0gc10g PSAnXDAnOworLQkJCX0KKysJCW8tPmp1bXBfdXNlciA9IHVzZXI7CisrCQlvLT5qdW1wX2hvc3Qg PSBob3N0OworKwkJby0+anVtcF9wb3J0ID0gcG9ydDsKKysJCW8tPnByb3h5X2NvbW1hbmQgPSB4 c3RyZHVwKCJub25lIik7CisrCQl1c2VyID0gaG9zdCA9IE5VTEw7IC8qIHRyYW5zZmVycmVkICov CisrCQlpZiAob3JpZyAhPSBOVUxMICYmIChjcCA9IHN0cnJjaHIob3JpZywgJywnKSkgIT0gTlVM TCkgeworKwkJCW8tPmp1bXBfZXh0cmEgPSB4c3RyZHVwKG9yaWcpOworKwkJCW8tPmp1bXBfZXh0 cmFbY3AgLSBvcmlnXSA9ICdcMCc7CisgCQl9CisgCX0KKyAJcmV0ID0gMDsKKyAgb3V0OgorIAlm cmVlKG9yaWcpOworKwlmcmVlKHNkdXApOworKwlmcmVlKHRtcF91c2VyKTsKKysJZnJlZSh0bXBf aG9zdCk7CisgCWZyZWUodXNlcik7CisgCWZyZWUoaG9zdCk7CisgCXJldHVybiByZXQ7CitkaWZm IC0tY29sb3IgLXJ1TnAgYS9yZWFkY29uZi5oIGIvcmVhZGNvbmYuaAorLS0tIGEvcmVhZGNvbmYu aAkyMDI2LTA0LTEwIDE1OjQyOjUwLjQ3MDY5NzcxNCArMDIwMAorKysrIGIvcmVhZGNvbmYuaAky MDI2LTA0LTEwIDE1OjQ5OjU3LjQ0MjExMDMwNiArMDIwMAorQEAgLTI0OSw3ICsyNDksOSBAQCBp bnQJIHByb2Nlc3NfY29uZmlnX2xpbmUoT3B0aW9ucyAqLCBzdHJ1CisgaW50CSByZWFkX2NvbmZp Z19maWxlKGNvbnN0IGNoYXIgKiwgc3RydWN0IHBhc3N3ZCAqLCBjb25zdCBjaGFyICosCisgICAg IGNvbnN0IGNoYXIgKiwgT3B0aW9ucyAqLCBpbnQsIGludCAqKTsKKyBpbnQJIHBhcnNlX2Zvcndh cmQoc3RydWN0IEZvcndhcmQgKiwgY29uc3QgY2hhciAqLCBpbnQsIGludCk7CistaW50CSBwYXJz ZV9qdW1wKGNvbnN0IGNoYXIgKiwgT3B0aW9ucyAqLCBpbnQpOworK2ludAkgc3NoX3ZhbGlkX2hv c3RuYW1lKGNvbnN0IGNoYXIgKik7CisraW50CSBzc2hfdmFsaWRfcnVzZXIoY29uc3QgY2hhciAq KTsKKytpbnQJIHBhcnNlX2p1bXAoY29uc3QgY2hhciAqLCBPcHRpb25zICosIGludCwgaW50KTsK KyBpbnQJIHBhcnNlX3NzaF91cmkoY29uc3QgY2hhciAqLCBjaGFyICoqLCBjaGFyICoqLCBpbnQg Kik7CisgaW50CSBkZWZhdWx0X3NzaF9wb3J0KHZvaWQpOworIGludAkgb3B0aW9uX2NsZWFyX29y X25vbmUoY29uc3QgY2hhciAqKTsKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3JlZ3Jlc3MvTWFrZWZp bGUgYi9yZWdyZXNzL01ha2VmaWxlCistLS0gYS9yZWdyZXNzL01ha2VmaWxlCTIwMjYtMDQtMTAg MTU6NDI6NTAuNTMzODE1NzAyICswMjAwCisrKysgYi9yZWdyZXNzL01ha2VmaWxlCTIwMjYtMDQt MTAgMTY6MDc6MzAuNTY2MDk0NDUwICswMjAwCitAQCAtMTExLDcgKzExMSw4IEBAIExURVNUUz0g CWNvbm5lY3QgXAorIAkJYWdlbnQtcGtjczExLXJlc3RyaWN0IFwKKyAJCWFnZW50LXBrY3MxMS1j ZXJ0IFwKKyAJCXBlbmFsdHkgXAorLQkJcGVuYWx0eS1leHBpcmUKKysJCXBlbmFsdHktZXhwaXJl IFwKKysJCXByb3h5anVtcAorIAorIElOVEVST1BfVEVTVFM9CXB1dHR5LXRyYW5zZmVyIHB1dHR5 LWNpcGhlcnMgcHV0dHkta2V4IGNvbmNoLWNpcGhlcnMKKyBJTlRFUk9QX1RFU1RTKz0JZHJvcGJl YXItY2lwaGVycyBkcm9wYmVhci1rZXgKK2RpZmYgLS1jb2xvciAtcnVOcCBhL3JlZ3Jlc3MvcHJv eHlqdW1wLnNoIGIvcmVncmVzcy9wcm94eWp1bXAuc2gKKy0tLSBhL3JlZ3Jlc3MvcHJveHlqdW1w LnNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgYi9yZWdyZXNzL3By b3h5anVtcC5zaAkyMDI2LTA0LTEwIDE2OjA3OjU1LjIyNTk1ODIwNiArMDIwMAorQEAgLTAsMCAr MSwxMDIgQEAKKysjCSRPcGVuQlNEOiBwcm94eWp1bXAuc2gsdiAxLjEgMjAyNi8wMy8zMCAwNzox OTowMiBkam0gRXhwICQKKysjCVBsYWNlZCBpbiB0aGUgUHVibGljIERvbWFpbi4KKysKKyt0aWQ9 InByb3h5anVtcCIKKysKKysjIFBhcnNpbmcgdGVzdHMKKyt2ZXJib3NlICJiYXNpYyBwYXJzaW5n IgorK2ZvciBqc3BlYyBpbiBcCisrCSJqdW1wMSIgXAorKwkidXNlckBqdW1wMSIgXAorKwkianVt cDE6MjIyMiIgXAorKwkidXNlckBqdW1wMToyMjIyIiBcCisrCSJqdW1wMSxqdW1wMiIgXAorKwki dXNlcjFAanVtcDE6MjIyMSx1c2VyMkBqdW1wMjoyMjIyIiBcCisrCSJzc2g6Ly91c2VyQGhvc3Q6 MjIyMyIgXAorKwk7IGRvCisrCWNhc2UgIiRqc3BlYyIgaW4KKysJImp1bXAxIikJCWV4cGVjdGVk PSJqdW1wMSIgOzsKKysJInVzZXJAanVtcDEiKQkJZXhwZWN0ZWQ9InVzZXJAanVtcDEiIDs7Cisr CSJqdW1wMToyMjIyIikJCWV4cGVjdGVkPSJqdW1wMToyMjIyIiA7OworKwkidXNlckBqdW1wMToy MjIyIikJZXhwZWN0ZWQ9InVzZXJAanVtcDE6MjIyMiIgOzsKKysJImp1bXAxLGp1bXAyIikJCWV4 cGVjdGVkPSJqdW1wMSxqdW1wMiIgOzsKKysJInVzZXIxQGp1bXAxOjIyMjEsdXNlcjJAanVtcDI6 MjIyMiIpCisrCQlleHBlY3RlZD0idXNlcjFAanVtcDE6MjIyMSx1c2VyMkBqdW1wMjoyMjIyIiA7 OworKwkic3NoOi8vdXNlckBob3N0OjIyMjMiKQlleHBlY3RlZD0idXNlckBob3N0OjIyMjMiIDs7 CisrCWVzYWMKKysJZj1gJHtTU0h9IC1HRiAvZGV2L251bGwgLW9Qcm94eUp1bXA9IiRqc3BlYyIg c29tZWhvc3QgfCBcCisrCQlhd2sgJy9ecHJveHlqdW1wIC97cHJpbnQgJDJ9J2AKKysJaWYgWyAi JGYiICE9ICIkZXhwZWN0ZWQiIF07IHRoZW4KKysJCWZhaWwgIlByb3h5SnVtcCAkanNwZWM6IGV4 cGVjdGVkICRleHBlY3RlZCwgZ290ICRmIgorKwlmaQorKwlmPWAke1NTSH0gLUdGIC9kZXYvbnVs bCAtSiAiJGpzcGVjIiBzb21laG9zdCB8IFwKKysJCWF3ayAnL15wcm94eWp1bXAgL3twcmludCAk Mn0nYAorKwlpZiBbICIkZiIgIT0gIiRleHBlY3RlZCIgXTsgdGhlbgorKwkJZmFpbCAic3NoIC1K ICRqc3BlYzogZXhwZWN0ZWQgJGV4cGVjdGVkLCBnb3QgJGYiCisrCWZpCisrZG9uZQorKworK3Zl cmJvc2UgInByZWNlZGVuY2UiCisrZj1gJHtTU0h9IC1HRiAvZGV2L251bGwgLW9Qcm94eUp1bXA9 bm9uZSAtb1Byb3h5SnVtcD1qdW1wMSBzb21laG9zdCB8IFwKKysJZ3JlcCAiXnByb3h5anVtcCAi YAorK2lmIFsgLW4gIiRmIiBdOyB0aGVuCisrCWZhaWwgIlByb3h5SnVtcD1ub25lIGZpcnN0IGRp ZCBub3Qgd2luIgorK2ZpCisrZj1gJHtTU0h9IC1HRiAvZGV2L251bGwgLW9Qcm94eUp1bXA9anVt cCAtb1Byb3h5Q29tbWFuZD1mb28gc29tZWhvc3QgfCBcCisrCWdyZXAgIl5wcm94eWp1bXAgImAK KytpZiBbICIkZiIgIT0gInByb3h5anVtcCBqdW1wIiBdOyB0aGVuCisrCWZhaWwgIlByb3h5SnVt cCBmaXJzdCBkaWQgbm90IHdpbiBvdmVyIFByb3h5Q29tbWFuZCIKKytmaQorK2Y9YCR7U1NIfSAt R0YgL2Rldi9udWxsIC1vUHJveHlDb21tYW5kPWZvbyAtb1Byb3h5SnVtcD1qdW1wIHNvbWVob3N0 IHwgXAorKwlncmVwICJecHJveHljb21tYW5kICJgCisraWYgWyAiJGYiICE9ICJwcm94eWNvbW1h bmQgZm9vIiBdOyB0aGVuCisrCWZhaWwgIlByb3h5Q29tbWFuZCBmaXJzdCBkaWQgbm90IHdpbiBv dmVyIFByb3h5SnVtcCIKKytmaQorKworK3ZlcmJvc2UgImNvbW1hbmQtbGluZSAtSiBpbnZhbGlk IGNoYXJhY3RlcnMiCisrY3AgJE9CSi9zc2hfY29uZmlnICRPQkovc3NoX2NvbmZpZy5vcmlnCisr Zm9yIGpzcGVjIGluIFwKKysJImhvc3Q7d2l0aDtzZW1pY29sb24iIFwKKysJImhvc3Qnd2l0aCdx dW90ZSIgXAorKwkiaG9zdFxgd2l0aFxgYmFja3RpY2siIFwKKysJImhvc3RcJHdpdGhcJGRvbGxh ciIgXAorKwkiaG9zdCh3aXRoKWJyYWNlIiBcCisrCSJ1c2VyO3dpdGg7c2VtaWNvbG9uQGhvc3Qi IFwKKysJInVzZXInd2l0aCdxdW90ZUBob3N0IiBcCisrCSJ1c2VyXGB3aXRoXGBiYWNrdGlja0Bo b3N0IiBcCisrCSJ1c2VyKHdpdGgpYnJhY2VAaG9zdCIgOyBkbworKwkke1NTSH0gLUdGIC9kZXYv bnVsbCAtSiAiJGpzcGVjIiBzb21laG9zdCA+L2Rldi9udWxsIDI+JjEKKysJaWYgWyAkPyAtbmUg MjU1IF07IHRoZW4KKysJCWZhaWwgInNzaCAtSiBcIiRqc3BlY1wiIHdhcyBub3QgcmVqZWN0ZWQi CisrCWZpCisrCSR7U1NIfSAtR0YgL2Rldi9udWxsIC1vUHJveHlKdW1wPSIkanNwZWMiIHNvbWVo b3N0ID4vZGV2L251bGwgMj4mMQorKwlpZiBbICQ/IC1uZSAyNTUgXTsgdGhlbgorKwkJZmFpbCAi c3NoIC1vUHJveHlKdW1wPVwiJGpzcGVjXCIgd2FzIG5vdCByZWplY3RlZCIKKysJZmkKKytkb25l CisrIyBTcGVjaWFsIGNoYXJhY3RlcnMgc2hvdWxkIGJlIGFjY2VwdGVkIGluIHRoZSBjb25maWcg dGhvdWdoLgorK2VjaG8gIlByb3h5SnVtcCB1c2VyO3dpdGg7c2VtaWNvbG9uQGhvc3Q7d2l0aDtz ZW1pY29sb24iID4+ICRPQkovc3NoX2NvbmZpZworK2Y9YCR7U1NIfSAtR0YgJE9CSi9zc2hfY29u ZmlnIHNvbWVob3N0IHwgZ3JlcCAiXnByb3h5anVtcCAiYAorK2lmIFsgIiRmIiAhPSAicHJveHlq dW1wIHVzZXI7d2l0aDtzZW1pY29sb25AaG9zdDt3aXRoO3NlbWljb2xvbiIgXTsgdGhlbgorKwlm YWlsICJQcm94eUp1bXAgZGlkIG5vdCBhbGxvdyBzcGVjaWFsIGNoYXJhY3RlcnMgaW4gY29uZmln OiAkZiIKKytmaQorKworK3ZlcmJvc2UgImZ1bmN0aW9uYWwgdGVzdCIKKysjIFVzZSBkaWZmZXJl bnQgbmFtZXMgdG8gYXZvaWQgdGhlIGxvb3AgZGV0ZWN0aW9uIGluIHNzaC5jCisrZ3JlcCAtaXYg SG9zdEtleUFsaWFzICRPQkovc3NoX2NvbmZpZy5vcmlnID4gJE9CSi9zc2hfY29uZmlnCisrY2F0 IDw8IF9FT0YgPj4gJE9CSi9zc2hfY29uZmlnCisrSG9zdCBqdW1wLWhvc3QKKysJSG9zdGtleUFs aWFzIGp1bXAtaG9zdAorK0hvc3QgdGFyZ2V0LWhvc3QKKysJSG9zdGtleUFsaWFzIHRhcmdldC1o b3N0CisrX0VPRgorK2NwICRPQkova25vd25faG9zdHMgJE9CSi9rbm93bl9ob3N0cy5vcmlnCisr c2VkICdzL15bXiBdKiAvanVtcC1ob3N0IC8nIDwgJE9CSi9rbm93bl9ob3N0cy5vcmlnID4gJE9C Si9rbm93bl9ob3N0cworK3NlZCAncy9eW14gXSogL3RhcmdldC1ob3N0IC8nIDwgJE9CSi9rbm93 bl9ob3N0cy5vcmlnID4+ICRPQkova25vd25faG9zdHMKKytzdGFydF9zc2hkCisrCisrdmVyYm9z ZSAiZnVuY3Rpb25hbCBQcm94eUp1bXAiCisrcmVzPWAke1JFQUxfU1NIfSAtRiAkT0JKL3NzaF9j b25maWcgLUoganVtcC1ob3N0IHRhcmdldC1ob3N0IGVjaG8gIlNVQ0NFU1MiIDI+L2Rldi9udWxs YAorK2lmIFsgIiRyZXMiICE9ICJTVUNDRVNTIiBdOyB0aGVuCisrCWZhaWwgImZ1bmN0aW9uYWwg dGVzdCBmYWlsZWQ6IGV4cGVjdGVkIFNVQ0NFU1MsIGdvdCAkcmVzIgorK2ZpCitkaWZmIC0tY29s b3IgLXJ1TnAgYS9zc2guYyBiL3NzaC5jCistLS0gYS9zc2guYwkyMDI2LTA0LTEwIDE1OjQyOjUw LjY1NzkxMzE4OSArMDIwMAorKysrIGIvc3NoLmMJMjAyNi0wNC0xMCAxNjowNDowNy40ODkwNDc5 NjYgKzAyMDAKK0BAIC02MzksNDMgKzYzOSw2IEBAIHNzaF9jb25uX2luZm9fZnJlZShzdHJ1Y3Qg c3NoX2Nvbm5faW5mbworIAlmcmVlKGNpbmZvKTsKKyB9CisgCistc3RhdGljIGludAorLXZhbGlk X2hvc3RuYW1lKGNvbnN0IGNoYXIgKnMpCisteworLQlzaXplX3QgaTsKKy0KKy0JaWYgKCpzID09 ICctJykKKy0JCXJldHVybiAwOworLQlmb3IgKGkgPSAwOyBzW2ldICE9IDA7IGkrKykgeworLQkJ aWYgKHN0cmNocigiJ2BcIiRcXDsmPD58KCl7fSIsIHNbaV0pICE9IE5VTEwgfHwKKy0JCSAgICBp c3NwYWNlKCh1X2NoYXIpc1tpXSkgfHwgaXNjbnRybCgodV9jaGFyKXNbaV0pKQorLQkJCXJldHVy biAwOworLQl9CistCXJldHVybiAxOworLX0KKy0KKy1zdGF0aWMgaW50CistdmFsaWRfcnVzZXIo Y29uc3QgY2hhciAqcykKKy17CistCXNpemVfdCBpOworLQorLQlpZiAoKnMgPT0gJy0nKQorLQkJ cmV0dXJuIDA7CistCWZvciAoaSA9IDA7IHNbaV0gIT0gMDsgaSsrKSB7CistCQlpZiAoaXNjbnRy bCgodV9jaGFyKXNbaV0pKQorLQkJCXJldHVybiAwOworLQkJaWYgKHN0cmNocigiJ2BcIjsmPD58 KCl7fSIsIHNbaV0pICE9IE5VTEwpCistCQkJcmV0dXJuIDA7CistCQkvKiBEaXNhbGxvdyAnLScg YWZ0ZXIgd2hpdGVzcGFjZSAqLworLQkJaWYgKGlzc3BhY2UoKHVfY2hhcilzW2ldKSAmJiBzW2kg KyAxXSA9PSAnLScpCistCQkJcmV0dXJuIDA7CistCQkvKiBEaXNhbGxvdyBcIGluIGxhc3QgcG9z aXRpb24gKi8KKy0JCWlmIChzW2ldID09ICdcXCcgJiYgc1tpICsgMV0gPT0gJ1wwJykKKy0JCQly ZXR1cm4gMDsKKy0JfQorLQlyZXR1cm4gMTsKKy19CistCisgLyoKKyAgKiBNYWluIHByb2dyYW0g Zm9yIHRoZSBzc2ggY2xpZW50LgorICAqLworQEAgLTkzMSw5ICs4OTQsOSBAQCBtYWluKGludCBh YywgY2hhciAqKmF2KQorIAkJCX0KKyAJCQlpZiAob3B0aW9ucy5wcm94eV9jb21tYW5kICE9IE5V TEwpCisgCQkJCWZhdGFsKCJDYW5ub3Qgc3BlY2lmeSAtSiB3aXRoIFByb3h5Q29tbWFuZCIpOwor LQkJCWlmIChwYXJzZV9qdW1wKG9wdGFyZywgJm9wdGlvbnMsIDEpID09IC0xKQorKwkJCWlmIChw YXJzZV9qdW1wKG9wdGFyZywgJm9wdGlvbnMsIDEsIDEpID09IC0xKQorKworIAkJCQlmYXRhbCgi SW52YWxpZCAtSiBhcmd1bWVudCIpOworLQkJCW9wdGlvbnMucHJveHlfY29tbWFuZCA9IHhzdHJk dXAoIm5vbmUiKTsKKyAJCQlicmVhazsKKyAJCWNhc2UgJ3QnOgorIAkJCWlmIChvcHRpb25zLnJl cXVlc3RfdHR5ID09IFJFUVVFU1RfVFRZX1lFUykKK0BAIC0xMTgzLDEwICsxMTQ2LDE1IEBAIG1h aW4oaW50IGFjLCBjaGFyICoqYXYpCisgCWlmICghaG9zdCkKKyAJCXVzYWdlKCk7CisgCistCWlm ICghdmFsaWRfaG9zdG5hbWUoaG9zdCkpCistCQlmYXRhbCgiaG9zdG5hbWUgY29udGFpbnMgaW52 YWxpZCBjaGFyYWN0ZXJzIik7CistCWlmIChvcHRpb25zLnVzZXIgIT0gTlVMTCAmJiAhdmFsaWRf cnVzZXIob3B0aW9ucy51c2VyKSkKKysJLyoKKysJICogVmFsaWRhdGUgY29tbWFuZGxpbmUtc3Bl Y2lmaWVkIHZhbHVlcyB0aGF0IGVuZCB1cCBpbiAldG9rZW5zCisrCSAqIGJlZm9yZSB0aGV5IGFy ZSB1c2VkIGluIGNvbmZpZyBwYXJzaW5nLgorKwkgKi8KKysJaWYgKG9wdGlvbnMudXNlciAhPSBO VUxMICYmICFzc2hfdmFsaWRfcnVzZXIob3B0aW9ucy51c2VyKSkKKyAJCWZhdGFsKCJyZW1vdGUg dXNlcm5hbWUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIik7CisrCWlmICghc3NoX3ZhbGlk X2hvc3RuYW1lKGhvc3QpKQorKwkJZmF0YWwoImhvc3RuYW1lIGNvbnRhaW5zIGludmFsaWQgY2hh cmFjdGVycyIpOworKworIAlvcHRpb25zLmhvc3RfYXJnID0geHN0cmR1cChob3N0KTsKKyAKKyAJ LyogSW5pdGlhbGl6ZSB0aGUgY29tbWFuZCB0byBleGVjdXRlIG9uIHJlbW90ZSBob3N0LiAqLwor QEAgLTEzNDcsNyArMTMxNSw4IEBAIG1haW4oaW50IGFjLCBjaGFyICoqYXYpCisgCQkJc3NoYmlu ID0gInNzaCI7CisgCisgCQkvKiBDb25zaXN0ZW5jeSBjaGVjayAqLworLQkJaWYgKG9wdGlvbnMu cHJveHlfY29tbWFuZCAhPSBOVUxMKQorKwkJaWYgKG9wdGlvbnMucHJveHlfY29tbWFuZCAhPSBO VUxMICYmCisrCQkgICAgc3RyY2FzZWNtcChvcHRpb25zLnByb3h5X2NvbW1hbmQsICJub25lIikg IT0gMCkKKyAJCQlmYXRhbCgiaW5jb25zaXN0ZW50IG9wdGlvbnM6IFByb3h5Q29tbWFuZCtQcm94 eUp1bXAiKTsKKyAJCS8qIE5ldmVyIHVzZSBGRCBwYXNzaW5nIGZvciBQcm94eUp1bXAgKi8KKyAJ CW9wdGlvbnMucHJveHlfdXNlX2ZkcGFzcyA9IDA7CitAQCAtMTQ2Nyw3ICsxNDM2LDcgQEAgbWFp bihpbnQgYWMsIGNoYXIgKiphdikKKyAJY2luZm8tPmptcGhvc3QgPSB4c3RyZHVwKG9wdGlvbnMu anVtcF9ob3N0ID09IE5VTEwgPworIAkgICAgIiIgOiBvcHRpb25zLmp1bXBfaG9zdCk7CisgCist CWlmICh1c2VyX29uX2NvbW1hbmRsaW5lICYmICF2YWxpZF9ydXNlcihvcHRpb25zLnVzZXIpKQor KwlpZiAodXNlcl9vbl9jb21tYW5kbGluZSAmJiAhc3NoX3ZhbGlkX3J1c2VyKG9wdGlvbnMudXNl cikpCisgCQlmYXRhbCgicmVtb3RlIHVzZXJuYW1lIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVy cyIpOworIAorIAljaW5mby0+Y29ubl9oYXNoX2hleCA9IHNzaF9jb25uZWN0aW9uX2hhc2goY2lu Zm8tPnRoaXNob3N0LAoKZGlmZiAtLWdpdCBhL29wZW5zc2gtOS45cDEtc2NwLWNsZWFyLXNldHVp ZC5wYXRjaCBiL29wZW5zc2gtOS45cDEtc2NwLWNsZWFyLXNldHVpZC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTg0OGExCi0tLSAvZGV2L251bGwKKysrIGIvb3Bl bnNzaC05LjlwMS1zY3AtY2xlYXItc2V0dWlkLnBhdGNoCkBAIC0wLDAgKzEsMTUgQEAKK2RpZmYg LS1jb2xvciAtcnVOcCBhL3NjcC5jIGIvc2NwLmMKKy0tLSBhL3NjcC5jCTIwMjYtMDQtMDcgMTU6 NTQ6MTEuMTkzNzMwODQyICswMjAwCisrKysgYi9zY3AuYwkyMDI2LTA0LTA3IDE1OjU1OjUyLjUy OTQyNTQ4MSArMDIwMAorQEAgLTE3MDUsOCArMTcwNSwxMCBAQCBzaW5rKGludCBhcmdjLCBjaGFy ICoqYXJndiwgY29uc3QgY2hhciAqCisgCisgCXNldGltZXMgPSB0YXJnaXNkaXIgPSAwOworIAlt YXNrID0gdW1hc2soMCk7CistCWlmICghcGZsYWcpCisrCWlmICghcGZsYWcpIHsKKysJCW1hc2sg fD0gMDcwMDA7CisgCQkodm9pZCkgdW1hc2sobWFzayk7CisrCX0KKyAJaWYgKGFyZ2MgIT0gMSkg eworIAkJcnVuX2VycigiYW1iaWd1b3VzIHRhcmdldCIpOworIAkJZXhpdCgxKTsK