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: Sergio Durigan Junior To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: Revert "Rebuild due to new libipt release." Date: Sat, 27 Jun 2026 23:59:06 GMT Message-ID: <178260474668.1.5098719626823585222.rpms-gdb-c26726c3ff7c@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: c26726c3ff7cc1e77a92867a28a1cb9fd76f83ae ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogYzI2NzI2YzNmZjdjYzFlNzdhOTI4NjdhMjhhMWNiOWZkNzZm ODNhZQogICAgICAgICAgICBBdXRob3IgOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgPHNlcmdpb2Rq QHJlZGhhdC5jb20+CiAgICAgICAgICAgIERhdGUgICA6IDIwMTgtMDgtMDhUMTY6Mjc6MDUtMDQ6 MDAKICAgICAgICAgICAgU3RhdHMgIDogKzIwMzgvLTIwODggaW4gMTMgZmlsZShzKQogICAgICAg ICAgICBVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jL2My NjcyNmMzZmY3Y2MxZTc3YTkyODY3YTI4YTFjYjlmZDc2ZjgzYWU/YnJhbmNoPWdkYi0xNy4yLXJl YmFzZS1mNDQKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgUmV2ZXJ0ICJSZWJ1aWxkIGR1 ZSB0byBuZXcgbGliaXB0IHJlbGVhc2UuIgoKVGhpcyByZXZlcnRzIGNvbW1pdCA3NmRkYzU2YjZk ODhmZTZkMjU2MjJkMWM0OTM3NDkxNDkxZmExZGMwLgoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdu b3JlIGIvLmdpdGlnbm9yZQppbmRleCA5NDljMjA0Li4wYWJlNThhIDEwMDY0NAotLS0gYS8uZ2l0 aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEsMyArMSwzIEBACiAvZ2RiLWxpYnN0ZGMrKy12 My1weXRob24tOC4xLjEtMjAxODA2MjYudGFyLnh6CisvdjEuNi4xLnRhci5negogL2dkYi04LjEu OTAuMjAxODA3MjcudGFyLnh6Ci0vdjIuMC50YXIuZ3oKCmRpZmYgLS1naXQgYS9fZ2RiLnNwZWMu UGF0Y2guaW5jbHVkZSBiL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCmluZGV4IDk0NmM0YWYuLjhi YTBlNDggMTAwNjQ0Ci0tLSBhL19nZGIuc3BlYy5QYXRjaC5pbmNsdWRlCisrKyBiL19nZGIuc3Bl Yy5QYXRjaC5pbmNsdWRlCkBAIC01MDUsMTEgKzUwNSw4IEBAIFBhdGNoMTIwOiBnZGItdmxhLWlu dGVsLWZpeC1wcmludC1jaGFyLWFycmF5LnBhdGNoCiBQYXRjaDEyMTogZ2RiLXJoYnoxNTUzMTA0 LXMzOTB4LWFyY2gxMi10ZXN0LnBhdGNoCiAKICMgSW1wbGVtZW50IElQdjYgc3VwcG9ydCBmb3Ig R0RCL2dkYnNlcnZlciAoUkggQlogODgxODQ5LCBTZXJnaW8gRHVyaWdhbiBKdW5pb3IpLgotUGF0 Y2gxMjI6IGdkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRjaAorUGF0Y2gxMjI6IGdkYi1yaGJ6 ODgxODQ5LWlwdjYtMW9mMi5wYXRjaAogCi0KLVBhdGNoMTIzOiBnZGItcmhiejg4MTg0OS1pcHY2 LTJvZjMucGF0Y2gKLQotCi1QYXRjaDEyNDogZ2RiLXJoYno4ODE4NDktaXB2Ni0zb2YzLnBhdGNo CisjIEltcGxlbWVudCBJUHY2IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJIIEJaIDg4MTg0 OSwgU2VyZ2lvIER1cmlnYW4gSnVuaW9yKS4KK1BhdGNoMTIzOiBnZGItcmhiejg4MTg0OS1pcHY2 LTJvZjIucGF0Y2gKIAoKZGlmZiAtLWdpdCBhL19nZGIuc3BlYy5wYXRjaC5pbmNsdWRlIGIvX2dk Yi5zcGVjLnBhdGNoLmluY2x1ZGUKaW5kZXggOTdmMTJjNC4uMjdhMzliNyAxMDA2NDQKLS0tIGEv X2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUKKysrIGIvX2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUKQEAg LTEyMSw0ICsxMjEsMyBAQAogJXBhdGNoMTIxIC1wMQogJXBhdGNoMTIyIC1wMQogJXBhdGNoMTIz IC1wMQotJXBhdGNoMTI0IC1wMQoKZGlmZiAtLWdpdCBhL19wYXRjaF9vcmRlciBiL19wYXRjaF9v cmRlcgppbmRleCBiMTA1MzZjLi4xMWI0MTMxIDEwMDY0NAotLS0gYS9fcGF0Y2hfb3JkZXIKKysr IGIvX3BhdGNoX29yZGVyCkBAIC0xMTksNiArMTE5LDUgQEAgZ2RiLXRlc3RzdWl0ZS1yZWFkbGlu ZTYzLXNpZ2ludC5wYXRjaAogZ2RiLWFyY2hlci5wYXRjaAogZ2RiLXZsYS1pbnRlbC1maXgtcHJp bnQtY2hhci1hcnJheS5wYXRjaAogZ2RiLXJoYnoxNTUzMTA0LXMzOTB4LWFyY2gxMi10ZXN0LnBh dGNoCi1nZGItcmhiejg4MTg0OS1pcHY2LTFvZjMucGF0Y2gKLWdkYi1yaGJ6ODgxODQ5LWlwdjYt Mm9mMy5wYXRjaAotZ2RiLXJoYno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoCitnZGItcmhiejg4MTg0 OS1pcHY2LTFvZjIucGF0Y2gKK2dkYi1yaGJ6ODgxODQ5LWlwdjYtMm9mMi5wYXRjaAoKZGlmZiAt LWdpdCBhL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMi5wYXRjaCBiL2dkYi1yaGJ6ODgxODQ5LWlw djYtMW9mMi5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDUxMGM4 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYno4ODE4NDktaXB2Ni0xb2YyLnBhdGNoCkBAIC0w LDAgKzEsMTkzNCBAQAorRnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IFNlcmdpbyBEdXJpZ2FuIEp1bmlvciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KK0Rh dGU6IEZyaSwgMTggTWF5IDIwMTggMDE6Mjk6MjQgLTA0MDAKK1N1YmplY3Q6IGdkYi1yaGJ6ODgx ODQ5LWlwdjYtMW9mMi5wYXRjaAorCis7OyBJbXBsZW1lbnQgSVB2NiBzdXBwb3J0IGZvciBHREIv Z2Ric2VydmVyIChSSCBCWiA4ODE4NDksIFNlcmdpbyBEdXJpZ2FuIEp1bmlvcikuCisKK0ltcGxl bWVudCBJUHY2IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIKKworVGhpcyBwYXRjaCBpbXBsZW1l bnRzIElQdjYgc3VwcG9ydCBmb3IgYm90aCBHREIgYW5kIGdkYnNlcnZlci4gIEJhc2VkCitvbiBt eSByZXNlYXJjaCwgaXQgaXMgdGhlIGZvdXJ0aCBhdHRlbXB0IHRvIGRvIHRoYXQgc2luY2UgMjAw Ni4gIFNpbmNlCitJIHVzZWQgaWRlYXMgZnJvbSBhbGwgb2YgdGhlIHByZXZpb3VzIHBhdGNoZXMs IEkgYWxzbyBhZGRlZCB0aGVpcgorYXV0aG9ycydzIG5hbWVzIG9uIHRoZSBDaGFuZ2VMb2dzIGFz IGEgd2F5IHRvIHJlY29nbml6ZSB0aGVpcgorZWZmb3J0cy4gIEZvciByZWZlcmVuY2Ugc2FrZSwg eW91IGNhbiBmaW5kIHRoZSBwcmV2aW91cyBhdHRlbXB0cyBhdDoKKworICBodHRwczovL3NvdXJj ZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMDYtMDkvbXNnMDAxOTIuaHRtbAorCisgIGh0dHBz Oi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNC0wMi9tc2cwMDI0OC5odG1sCisK KyAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTAyL21zZzAwMjI2 Lmh0bWwKKworVGhlIGJhc2ljIGlkZWEgYmVoaW5kIHRoZSBwYXRjaCBpcyB0byBzdGFydCB1c2lu ZyB0aGUgbmV3CisnZ2V0YWRkcmluZm8nLydnZXRuYW1laW5mbycgY2FsbHMsIHdoaWNoIGFyZSBy ZXNwb25zaWJsZSBmb3IKK3RyYW5zbGF0aW5nIG5hbWVzIGFuZCBhZGRyZXNzZXMgaW4gYSBwcm90 b2NvbC1pbmRlcGVuZGVudCB3YXkuICBUaGlzCittZWFucyB0aGF0IGlmIHdlIGV2ZXIgaGF2ZSBh IG5ldyB2ZXJzaW9uIG9mIHRoZSBJUCBwcm90b2NvbCwgd2Ugd29uJ3QKK25lZWQgdG8gY2hhbmdl IHRoZSBjb2RlIGFnYWluIChvciwgYXQgbGVhc3QsIHdvbid0IGhhdmUgdG8gY2hhbmdlIHRoZQor bWFqb3JpdHkgb2YgdGhlIGNvZGUpLgorCitUaGUgZnVuY3Rpb24gJ2dldGFkZHJpbmZvJyByZXR1 cm5zIGEgbGlua2VkIGxpc3Qgb2YgcG9zc2libGUgYWRkcmVzc2VzCit0byBjb25uZWN0IHRvLiAg RGVhbGluZyB3aXRoIG11bHRpcGxlIGFkZHJlc3NlcyBwcm92ZWQgdG8gYmUgYSBoYXJkCit0YXNr IHdpdGggdGhlIGN1cnJlbnQgVENQIGF1dG8tcmV0cnkgbWVjaGFuaXNtIGltcGxlbWVudGVkIG9u CitzZXItdGNwOm5ldF9vcGVuLiAgRm9yIGV4YW1wbGUsIHdoZW4gZ2Ric2VydmVyIGxpc3RlbmVk IG9ubHkgb24gYW4KK0lQdjQgc29ja2V0OgorCisgICQgLi9nZGJzZXJ2ZXIgLS1vbmNlIDEyNy4w LjAuMToxMjM0IC4vYS5vdXQKKworYW5kIEdEQiB3YXMgaW5zdHJ1Y3RlZCB0byB0cnkgdG8gY29u bmVjdCB0byBib3RoIElQdjYgYW5kIElQdjQKK3NvY2tldHM6CisKKyAgJCAuL2dkYiAtZXggJ3Rh cmdldCBleHRlbmRlZC1yZW1vdGUgbG9jYWxob3N0OjEyMzQnIC4vYS5vdXQKKwordGhlIHVzZXIg d291bGQgbm90aWNlIGEgc29tZXdoYXQgYmlnIGRlbGF5IGJlZm9yZSBHREIgd2FzIGFibGUgdG8K K2Nvbm5lY3QgdG8gdGhlIElQdjQgc29ja2V0LiAgVGhpcyBoYXBwZW5lZCBiZWNhdXNlIEdEQiB3 YXMgdHJ5aW5nIHRvCitjb25uZWN0IHRvIHRoZSBJUHY2IHNvY2tldCBmaXJzdCwgYW5kIGhhZCB0 byB3YWl0IHVudGlsIHRoZSBjb25uZWN0aW9uCit0aW1lZCBvdXQgYmVmb3JlIGl0IHRyaWVkIHRv IGNvbm5lY3QgdG8gdGhlIElQdjQgc29ja2V0LgorCitGb3IgdGhhdCByZWFzb24sIEkgaGFkIHRv IHJld3JpdGUgdGhlIG1haW4gbG9vcCBhbmQgaW1wbGVtZW50IGEgbmV3CittZXRob2QgZm9yIGhh bmRsaW5nIG11bHRpcGxlIGNvbm5lY3Rpb25zLiAgQWZ0ZXIgc29tZSBkaXNjdXNzaW9uLAorUGVk cm8gYW5kIEkgYWdyZWVkIG9uIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtOgorCisgIDEpIEZvciBl YWNoIGVudHJ5IHJldHVybmVkIGJ5ICdnZXRhZGRyaW5mbycsIHdlIHRyeSB0byBvcGVuIGEgc29j a2V0CisgIGFuZCBjb25uZWN0IHRvIGl0LgorCisgIDIuYSkgSWYgd2UgaGF2ZSBhIHN1Y2Nlc3Nm dWwgJ2Nvbm5lY3QnLCB3ZSBqdXN0IHVzZSB0aGF0IGNvbm5lY3Rpb24uCisKKyAgMi5iKSBJZiB3 ZSBkb24ndCBoYXZlIGEgc3VjY2Vzc2Z1bGwgJ2Nvbm5lY3QnLCBidXQgaWYgd2UndmUgZ290IGEK KyAgRUNPTk5SRUZVU0VEIChtZWFuaW5nIHRoZSB0aGUgY29ubmVjdGlvbiB3YXMgcmVmdXNlZCks IHdlIGtlZXAgdHJhY2sKKyAgb2YgdGhpcyBmYWN0IGJ5IHVzaW5nIGEgZmxhZy4KKworICAyLmMp IElmIHdlIGRvbid0IGhhdmUgYSBzdWNjZXNzZnVsbCAnY29ubmVjdCcsIGJ1dCBpZiB3ZSd2ZSBn b3QgYQorICBFSU5QUk9HUkVTUyAobWVhbmluZyB0aGF0IHRoZSBjb25uZWN0aW9uIGlzIGluIHBy b2dyZXNzKSwgd2UgcGVyZm9ybQorICBhICdzZWxlY3QnIGNhbGwgb24gdGhlIHNvY2tldCB1bnRp bCB3ZSBoYXZlIGEgcmVzdWx0IChlaXRoZXIgYQorICBzdWNjZXNzZnVsIGNvbm5lY3Rpb24sIG9y IGFuIGVycm9yIG9uIHRoZSBzb2NrZXQpLgorCisgIDMpIElmIHRjcF9hdXRvX3JldHJ5IGlzIHRy dWUsIGFuZCB3ZSBoYXZlbid0IGdvdHRlbiBhIHN1Y2Nlc3NmdWwKKyAgY29ubmVjdGlvbiwgYW5k IGF0IGxlYXN0IG9uZSBvZiBvdXIgYXR0ZW1wdHMgZmFpbGVkIHdpdGgKKyAgRUNPTk5SRUZVU0VE LCB0aGVuIHdlIHdhaXQgYSBsaXR0bGUgYml0IChpLmUuLCBjYWxsCisgICd3YWl0X2Zvcl9jb25u ZWN0JyksIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSB3YXMgYQorICB0aW1lb3V0L2ludGVycnVwdGlv biAoaW4gd2hpY2ggY2FzZSB3ZSBiYWlsIG91dCksIGFuZCB0aGVuIGdvIGJhY2sKKyAgdG8gKDEp LgorCitBZnRlciBtdWx0aXBsZSB0ZXN0cywgSSB3YXMgYWJsZSB0byBjb25uZWN0IHdpdGhvdXQg ZGVsYXkgb24gdGhlCitzY2VuYXJpbyBkZXNjcmliZWQgYWJvdmUsIGFuZCB3YXMgYWxzbyBhYmxl IHRvIGNvbm5lY3QgaW4gYWxsIG90aGVyCit0eXBlcyBvZiBzY2VuYXJpb3MuCisKK0kgYWxzbyBp bXBsZW1lbnRlZCBzb21lIGhvc3RuYW1lIHBhcnNpbmcgZnVuY3Rpb25zIChhbG9uZyB3aXRoIHRo ZWlyCitjb3JyZXNwb25kaW5nIHVuaXQgdGVzdHMpIHdoaWNoIGFyZSB1c2VkIHRvIGhlbHAgR0RC IGFuZCBnZGJzZXJ2ZXIgdG8KK3BhcnNlIGhvc3RuYW1lIHN0cmluZ3MgcHJvdmlkZWQgYnkgdGhl IHVzZXIuICBUaGVzZSBuZXcgZnVuY3Rpb25zIGFyZQorbGl2aW5nIGluc2lkZSBjb21tb24vbmV0 c3R1ZmYuW2NoXS4gIEkndmUgaGFkIHRvIGRvIHRoYXQgc2luY2UgSVB2NgoraW50cm9kdWNlcyBh IG5ldyBVUkwgc2NoZW1lLCB3aGljaCBkZWZpbmVzIHRoYXQgc3F1YXJlIGJyYWNrZXRzIGNhbiBi ZQordXNlZCB0byBlbmNsb3NlIHRoZSBob3N0IHBhcnQgYW5kIGRpZmZlcmVudGlhdGUgaXQgZnJv bSB0aGUKK3BvcnQgKGUuZy4sICJbOjoxXToxMjM0IiBtZWFucyAiaG9zdCA6OjEsIHBvcnQgMTIz NCIpLiAgSSBzcGVudCBzb21lCit0aW1lIHRoaW5raW5nIGFib3V0IGEgcmVhc29uYWJsZSB3YXkg dG8gaW50ZXJwcmV0IHdoYXQgdGhlIHVzZXIgd2FudHMsCithbmQgSSBjYW1lIHVwIHdpdGggdGhl IGZvbGxvd2luZzoKKworICAtIElmIHRoZSB1c2VyIGhhcyBwcm92aWRlZCBhIHByZWZpeCB0aGF0 IGRvZXNuJ3Qgc3BlY2lmeSB0aGUgcHJvdG9jb2wKKyAgICB2ZXJzaW9uIChpLmUuLCAidGNwOiIg b3IgInVkcDoiKSwgb3IgaWYgdGhlIHVzZXIgaGFzIG5vdCBwcm92aWRlZAorICAgIGFueSBwcmVm aXgsIGRvbid0IG1ha2UgYW55IGFzc3VtcHRpb25zIChpLmUuLCBhc3N1bWUgQUZfVU5TUEVDIHdo ZW4KKyAgICBkZWFsaW5nIHdpdGggJ2dldGFkZHJpbmZvJykgKnVubGVzcyogdGhlIGhvc3Qgc3Rh cnRzIHdpdGggIlsiIChpbgorICAgIHdoaWNoIGNhc2UsIGFzc3VtZSBpdCdzIGFuIElQdjYgaG9z dCkuCisKKyAgLSBJZiB0aGUgdXNlciBoYXMgcHJvdmlkZWQgYSBwcmVmaXggdGhhdCBkb2VzIHNw ZWNpZnkgdGhlIHByb3RvY29sCisgICAgdmVyc2lvbiAoaS5lLiwgInRjcDQ6IiwgInRjcDY6Iiwg InVkcDQ6IiBvciAidWRwNjoiKSwgdGhlbiByZXNwZWN0CisgICAgdGhhdC4KKworVGhpcyBtZXRo b2QgZG9lc24ndCBmb2xsb3cgc3RyaWN0bHkgd2hhdCBSRkMgMjczMiBwcm9wb3NlcyAodGhhdAor bGl0ZXJhbCBJUHY2IGFkZHJlc3NlcyBzaG91bGQgYmUgcHJvdmlkZWQgZW5jbG9zZWQgaW4gIlsi IGFuZCAiXSIpCitiZWNhdXNlIElQdjYgYWRkcmVzc2VzIHN0aWxsIGNhbiBiZSBwcm92aWRlZCB3 aXRob3V0IHNxdWFyZSBicmFja2V0cworaW4gb3VyIGNhc2UsIGJ1dCBzaW5jZSB3ZSBoYXZlIHBy ZWZpeGVzIHRvIHNwZWNpZnkgcHJvdG9jb2wgdmVyc2lvbnMgSQordGhpbmsgdGhpcyBpcyBub3Qg YW4gaXNzdWUuCisKK0Fub3RoZXIgdGhpbmcgd29ydGggbWVudGlvbmluZyBpcyB0aGUgbmV3ICdH REJfVEVTVF9TT0NLRVRIT1NUJwordGVzdGNhc2UgcGFyYW1ldGVyLCB3aGljaCBtYWtlcyBpdCBw b3NzaWJsZSB0byBzcGVjaWZ5IHRoZQoraG9zdG5hbWUgKHdpdGhvdXQgdGhlIHBvcnQpIHRvIGJl IHVzZWQgd2hlbiB0ZXN0aW5nIEdEQiBhbmQKK2dkYnNlcnZlci4gIEZvciBleGFtcGxlLCB0byBy dW4gSVB2NiB0ZXN0czoKKworICAkIG1ha2UgY2hlY2stZ2RiIFJVTlRFU1RGTEFHUz0nR0RCX1RF U1RfU09DS0VUSE9TVD10Y3A2Ols6OjFdJworCitPciwgdG8gcnVuIElQdjQgdGVzdHM6CisKKyAg JCBtYWtlIGNoZWNrLWdkYiBSVU5URVNURkxBR1M9J0dEQl9URVNUX1NPQ0tFVEhPU1Q9dGNwNDox MjcuMC4wLjEnCisKK1RoaXMgcmVxdWlyZWQgYSBmZXcgY2hhbmdlcyBvbiB0aGUgZ2Ric2VydmVy LWJhc2UuZXhwLCBhbmQgYWxzbyBhCittaW5pbWFsIGFkanVzdG1lbnQgb24gZ2RiLnNlcnZlci9y dW4td2l0aG91dC1sb2NhbC1iaW5hcnkuZXhwLgorCitGaW5hbGx5LCBJJ3ZlIGltcGxlbWVudGVk IGEgbmV3IHRlc3RjYXNlLAorZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVjdC5leHAsIHdoaWNoIGlz IHN1cHBvc2VkIHRvIHJ1biBvbiB0aGUgbmF0aXZlCitob3N0IGFuZCBwZXJmb3JtIHZhcmlvdXMg InNtb2tlIHRlc3RzIiB1c2luZyBkaWZmZXJlbnQgY29ubmVjdGlvbgorbWV0aG9kcy4KKworVGhp cyBwYXRjaCBoYXMgYmVlbiByZWdyZXNzaW9uLXRlc3RlZCBvbiBCdWlsZEJvdCBhbmQgbG9jYWxs eSwgYW5kCithbHNvIGJ1aWx0IHVzaW5nIGEgeDg2XzY0LXc2NC1taW5ndzMyIEdDQywgYW5kIG5v IHByb2JsZW1zIHdlcmUgZm91bmQuCisKK2dkYi9DaGFuZ2VMb2c6CisyMDE4LTA3LTExICBTZXJn aW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgorCSAgICBKYW4gS3JhdG9j aHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisJICAgIFBhdWwgRmVydHNlciAgPGZl cmNlcnBhdkBnbWFpbC5jb20+CisJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNv bT4KKwkgICAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKworCSogTWFrZWZpbGUu aW4gKFNVQkRJUl9VTklUVEVTVFNfU1JDUyk6IEFkZAorCSd1bml0dGVzdHMvcGFyc2UtY29ubmVj dGlvbi1zcGVjLXNlbGZ0ZXN0cy5jJy4KKwkoQ09NTU9OX1NGSUxFUyk6IEFkZCAnY29tbW9uL25l dHN0dWZmLmMnLgorCShIRklMRVNfTk9fU1JDRElSKTogQWRkICdjb21tb24vbmV0c3R1ZmYuaCcu CisJKiBORVdTIChDaGFuZ2VzIHNpbmNlIEdEQiA4LjIpOiBNZW50aW9uIElQdjYgc3VwcG9ydC4K KwkqIGNvbW1vbi9uZXRzdHVmZi5jOiBOZXcgZmlsZS4KKwkqIGNvbW1vbi9uZXRzdHVmZi5oOiBO ZXcgZmlsZS4KKwkqIHNlci10Y3AuYzogSW5jbHVkZSAnbmV0c3R1ZmYuaCcgYW5kICd3c3BpYXBp LmgnLgorCSh3YWl0X2Zvcl9jb25uZWN0KTogVXBkYXRlIGNvbW1lbnQuICBOZXcgcGFyYW1ldGVy CisJJ2dkYjo6b3B0aW9uYWw8aW50PiBzb2NrJyBpbnN0ZWFkIG9mICdzdHJ1Y3Qgc2VyaWFsICpz Y2InLgorCVVzZSAnc29jaycgZGlyZWN0bHkgaW5zdGVhZCBvZiAnc2NiLT5mZCcuCisJKHRyeV9j b25uZWN0KTogTmV3IGZ1bmN0aW9uLCB3aXRoIGNvZGUgZnJvbSAnbmV0X29wZW4nLgorCShuZXRf b3Blbik6IFJld3JpdGUgbWFpbiBsb29wIHRvIGRlYWwgd2l0aCBtdWx0aXBsZQorCXNvY2tldHMv YWRkcmVzc2VzLiAgSGFuZGxlIElQdjYtc3R5bGUgaG9zdG5hbWVzOyBpbXBsZW1lbnQKKwlzdXBw b3J0IGZvciBJUHY2IGNvbm5lY3Rpb25zLgorCSogdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24t c3BlYy1zZWxmdGVzdHMuYzogTmV3IGZpbGUuCisKK2dkYi9nZGJzZXJ2ZXIvQ2hhbmdlTG9nOgor MjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4K KwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCSAgICBQ YXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgorCSAgICBUc3V0b211IFNla2kgIDxz ZWtpcmlraUBnbWFpbC5jb20+CisKKwkqIE1ha2VmaWxlLmluIChTRklMRVMpOiBBZGQgJyQoc3Jj ZGlyKS9jb21tb24vbmV0c3R1ZmYuYycuCisJKE9CUyk6IEFkZCAnY29tbW9uL25ldHN0dWZmLm8n LgorCShHREJSRVBMQVlfT0JTKTogTGlrZXdpc2UuCisJKiBnZGJyZXBsYXkuYzogSW5jbHVkZSAn d3NwaWFwaS5oJyBhbmQgJ25ldHN0dWZmLmgnLgorCShyZW1vdGVfb3Blbik6IEltcGxlbWVudCBz dXBwb3J0IGZvciBJUHY2CisJY29ubmVjdGlvbnMuCisJKiByZW1vdGUtdXRpbHMuYzogSW5jbHVk ZSAnbmV0c3R1ZmYuaCcsICdmaWxlc3R1ZmYuaCcKKwlhbmQgJ3dzcGlhcGkuaCcuCisJKGhhbmRs ZV9hY2NlcHRfZXZlbnQpOiBBY2NlcHQgY29ubmVjdGlvbnMgZnJvbSBJUHY2IHNvdXJjZXMuCisJ KHJlbW90ZV9wcmVwYXJlKTogSGFuZGxlIElQdjYtc3R5bGUgaG9zdG5hbWVzOyBpbXBsZW1lbnQK KwlzdXBwb3J0IGZvciBJUHY2IGNvbm5lY3Rpb25zLgorCShyZW1vdGVfb3Blbik6IEltcGxlbWVu dCBzdXBwb3J0IGZvciBwcmludGluZyBjb25uZWN0aW9ucyBmcm9tCisJSVB2NiBzb3VyY2VzLgor CitnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKKzIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1 bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmty YXRvY2h2aWxAcmVkaGF0LmNvbT4KKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWls LmNvbT4KKwkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgorCisJKiBSRUFE TUUgKFRlc3RzdWl0ZSBQYXJhbWV0ZXJzKTogTWVudGlvbiBuZXcgJ0dEQl9URVNUX1NPQ0tFVEhP U1QnCisJcGFyYW1ldGVyLgorCSogYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhw OiBEbyBub3Qgc2V0ICdzb2NrZXRob3N0JworCWJ5IGRlZmF1bHQuCisJKiBib2FyZHMvbmF0aXZl LWdkYnNlcnZlci5leHA6IExpa2V3aXNlLgorCSogZ2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2Nh bC1iaW5hcnkuZXhwOiBJbXByb3ZlIHJlZ2V4cCB1c2VkCisJZm9yIGRldGVjdGluZyB3aGVuIGEg cmVtb3RlIGRlYnVnZ2luZyBjb25uZWN0aW9uIHN1Y2NlZWRzLgorCSogZ2RiLnNlcnZlci9zZXJ2 ZXItY29ubmVjdC5leHA6IE5ldyBmaWxlLgorCSogbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCAo Z2Ric2VydmVyX2RlZmF1bHRfZ2V0X2NvbW1fcG9ydCk6CisJRG8gbm90IHByZWZpeCB0aGUgcG9y dCBudW1iZXIgd2l0aCAiOiIuCisJKGdkYnNlcnZlcl9zdGFydCk6IE5ldyBnbG9iYWwgR0RCX1RF U1RfU09DS0VUSE9TVC4gIEltcGxlbWVudAorCXN1cHBvcnQgZm9yIGRldGVjdGluZyBhbmQgdXNp bmcgaXQuICBBZGQgJyRkZWJ1Z2hvc3RfZ2Ric2VydmVyJworCXRvIHRoZSBsaXN0IG9mIGFyZ3Vt ZW50cyB1c2VkIHRvIHN0YXJ0IGdkYnNlcnZlci4gIEhhbmRsZSBjYXNlCisJd2hlbiBnZGJzZXJ2 ZXIgY2Fubm90IHJlc29sdmUgYSBuZXR3b3JrIG5hbWUuCisKK2dkYi9kb2MvQ2hhbmdlTG9nOgor MjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4K KwkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorCSAgICBQ YXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgorCSAgICBUc3V0b211IFNla2kgIDxz ZWtpcmlraUBnbWFpbC5jb20+CisKKwkqIGdkYi50ZXhpbmZvIChSZW1vdGUgQ29ubmVjdGlvbiBD b21tYW5kcyk6IEFkZCBleHBsYW5hdGlvbgorCWFib3V0IG5ldyBJUHY2IHN1cHBvcnQuICBBZGQg bmV3IGNvbm5lY3Rpb24gcHJlZml4ZXMuCisKK2RpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4g Yi9nZGIvTWFrZWZpbGUuaW4KKy0tLSBhL2dkYi9NYWtlZmlsZS5pbgorKysrIGIvZ2RiL01ha2Vm aWxlLmluCitAQCAtNDMwLDYgKzQzMCw3IEBAIFNVQkRJUl9VTklUVEVTVFNfU1JDUyA9IFwKKyAJ dW5pdHRlc3RzL29mZnNldC10eXBlLXNlbGZ0ZXN0cy5jIFwKKyAJdW5pdHRlc3RzL29ic2VydmFi bGUtc2VsZnRlc3RzLmMgXAorIAl1bml0dGVzdHMvb3B0aW9uYWwtc2VsZnRlc3RzLmMgXAorKwl1 bml0dGVzdHMvcGFyc2UtY29ubmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5jIFwKKyAJdW5pdHRlc3Rz L3B0aWQtc2VsZnRlc3RzLmMgXAorIAl1bml0dGVzdHMvcnNwLWxvdy1zZWxmdGVzdHMuYyBcCisg CXVuaXR0ZXN0cy9zY29wZWRfZmQtc2VsZnRlc3RzLmMgXAorQEAgLTk2Nyw2ICs5NjgsNyBAQCBD T01NT05fU0ZJTEVTID0gXAorIAljb21tb24vam9iLWNvbnRyb2wuYyBcCisgCWNvbW1vbi9nZGJf dGlsZGVfZXhwYW5kLmMgXAorIAljb21tb24vZ2RiX3ZlY3MuYyBcCisrCWNvbW1vbi9uZXRzdHVm Zi5jIFwKKyAJY29tbW9uL25ldy1vcC5jIFwKKyAJY29tbW9uL3BhdGhzdHVmZi5jIFwKKyAJY29t bW9uL3ByaW50LXV0aWxzLmMgXAorQEAgLTE0NDgsNiArMTQ1MCw3IEBAIEhGSUxFU19OT19TUkNE SVIgPSBcCisgCWNvbW1vbi9nZGJfdmVjcy5oIFwKKyAJY29tbW9uL2dkYl93YWl0LmggXAorIAlj b21tb24vY29tbW9uLWluZmVyaW9yLmggXAorKwljb21tb24vbmV0c3R1ZmYuaCBcCisgCWNvbW1v bi9ob3N0LWRlZnMuaCBcCisgCWNvbW1vbi9wYXRoc3R1ZmYuaCBcCisgCWNvbW1vbi9wcmludC11 dGlscy5oIFwKK2RpZmYgLS1naXQgYS9nZGIvTkVXUyBiL2dkYi9ORVdTCistLS0gYS9nZGIvTkVX UworKysrIGIvZ2RiL05FV1MKK0BAIC0xLDYgKzEsMTIgQEAKKyAJCVdoYXQgaGFzIGNoYW5nZWQg aW4gR0RCPworIAkgICAgIChPcmdhbml6ZWQgcmVsZWFzZSBieSByZWxlYXNlKQorIAorKyoqKiBD aGFuZ2VzIHNpbmNlIEdEQiA4LjIKKysKKysqIEdEQiBhbmQgR0RCc2VydmVyIG5vdyBzdXBwb3J0 IElQdjYgY29ubmVjdGlvbnMuICBJUHY2IGFkZHJlc3NlcworKyAgY2FuIGJlIHBhc3NlZCB1c2lu ZyB0aGUgJ1tBRERSRVNTXTpQT1JUJyBub3RhdGlvbiwgb3IgdGhlIHJlZ3VsYXIKKysgICdBRERS RVNTOlBPUlQnIG1ldGhvZC4KKysKKyAqKiogQ2hhbmdlcyBpbiBHREIgOC4yCisgCisgKiBUaGUg J3NldCBkaXNhc3NlbWJsZXItb3B0aW9ucycgY29tbWFuZCBub3cgc3VwcG9ydHMgc3BlY2lmeWlu ZyBvcHRpb25zCitkaWZmIC0tZ2l0IGEvZ2RiL2NvbW1vbi9uZXRzdHVmZi5jIGIvZ2RiL2NvbW1v bi9uZXRzdHVmZi5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYvbnVsbAorKysrIGIv Z2RiL2NvbW1vbi9uZXRzdHVmZi5jCitAQCAtMCwwICsxLDE1NSBAQAorKy8qIE9wZXJhdGlvbnMg b24gbmV0d29yayBzdHVmZi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMTggRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKworKyAg IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysg ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaW5jbHVkZSAiY29t bW9uLWRlZnMuaCIKKysjaW5jbHVkZSAibmV0c3R1ZmYuaCIKKysjaW5jbHVkZSA8YWxnb3JpdGht PgorKworKyNpZmRlZiBVU0VfV0lOMzJBUEkKKysjaW5jbHVkZSA8d2luc29jazIuaD4KKysjaW5j bHVkZSA8d3NwaWFwaS5oPgorKyNlbHNlCisrI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKysjaW5j bHVkZSA8YXJwYS9pbmV0Lmg+CisrI2luY2x1ZGUgPG5ldGRiLmg+CisrI2luY2x1ZGUgPHN5cy9z b2NrZXQuaD4KKysjaW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4KKysjZW5kaWYKKysKKysvKiBTZWUg Y29tbW9uL25ldHN0dWZmLmguICAqLworKworK3Njb3BlZF9mcmVlX2FkZHJpbmZvOjp+c2NvcGVk X2ZyZWVfYWRkcmluZm8gKCkKKyt7CisrICBmcmVlYWRkcmluZm8gKG1fcmVzKTsKKyt9CisrCisr LyogU2VlIGNvbW1vbi9uZXRzdHVmZi5oLiAgKi8KKysKKytwYXJzZWRfY29ubmVjdGlvbl9zcGVj CisrcGFyc2VfY29ubmVjdGlvbl9zcGVjX3dpdGhvdXRfcHJlZml4IChzdGQ6OnN0cmluZyBzcGVj LCBzdHJ1Y3QgYWRkcmluZm8gKmhpbnQpCisreworKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyBy ZXQ7CisrICBzaXplX3QgbGFzdF9jb2xvbl9wb3MgPSAwOworKyAgLyogV2UncmUgZGVhbGluZyB3 aXRoIElQdjYgaWY6CisrCisrICAgICAtIGFpX2ZhbWlseSBpcyBBRl9JTkVUNiwgb3IKKysgICAg IC0gYWlfZmFtaWx5IGlzIG5vdCBBRl9JTkVULCBhbmQKKysgICAgICAgLSBzcGVjWzBdIGlzICdb Jywgb3IKKysgICAgICAgLSB0aGUgbnVtYmVyIG9mICc6JyBvbiBzcGVjIGlzIGdyZWF0ZXIgdGhh biAxLiAgKi8KKysgIGJvb2wgaXNfaXB2NiA9IChoaW50LT5haV9mYW1pbHkgPT0gQUZfSU5FVDYK KysJCSAgfHwgKGhpbnQtPmFpX2ZhbWlseSAhPSBBRl9JTkVUCisrCQkgICAgICAmJiAoc3BlY1sw XSA9PSAnWycKKysJCQkgIHx8IHN0ZDo6Y291bnQgKHNwZWMuYmVnaW4gKCksCisrCQkJCQkgc3Bl Yy5lbmQgKCksICc6JykgPiAxKSkpOworKworKyAgaWYgKGlzX2lwdjYpCisrICAgIHsKKysgICAg ICBpZiAoc3BlY1swXSA9PSAnWycpCisrCXsKKysJICAvKiBJUHY2IGFkZHJlc3NlcyBjYW4gYmUg d3JpdHRlbiBhcyAnW0FERFJdOlBPUlQnLCBhbmQgd2UKKysJICAgICBzdXBwb3J0IHRoaXMgbm90 YXRpb24uICAqLworKwkgIHNpemVfdCBjbG9zZV9icmFja2V0X3BvcyA9IHNwZWMuZmluZF9maXJz dF9vZiAoJ10nKTsKKysKKysJICBpZiAoY2xvc2VfYnJhY2tldF9wb3MgPT0gc3RkOjpzdHJpbmc6 Om5wb3MpCisrCSAgICBlcnJvciAoXygiTWlzc2luZyBjbG9zZSBicmFja2V0IGluIGhvc3RuYW1l ICclcyciKSwKKysJCSAgIHNwZWMuY19zdHIgKCkpOworKworKwkgIGhpbnQtPmFpX2ZhbWlseSA9 IEFGX0lORVQ2OworKworKwkgIGNvbnN0IGNoYXIgYyA9IHNwZWNbY2xvc2VfYnJhY2tldF9wb3Mg KyAxXTsKKysKKysJICBpZiAoYyA9PSAnXDAnKQorKwkgICAgbGFzdF9jb2xvbl9wb3MgPSBzdGQ6 OnN0cmluZzo6bnBvczsKKysJICBlbHNlIGlmIChjICE9ICc6JykKKysJICAgIGVycm9yIChfKCJJ bnZhbGlkIGNydWZ0IGFmdGVyIGNsb3NlIGJyYWNrZXQgaW4gJyVzJyIpLAorKwkJICAgc3BlYy5j X3N0ciAoKSk7CisrCisrCSAgLyogRXJhc2UgYm90aCAnWycgYW5kICddJy4gICovCisrCSAgc3Bl Yy5lcmFzZSAoMCwgMSk7CisrCSAgc3BlYy5lcmFzZSAoY2xvc2VfYnJhY2tldF9wb3MgLSAxLCAx KTsKKysJfQorKyAgICAgIGVsc2UgaWYgKHNwZWMuZmluZF9maXJzdF9vZiAoJ10nKSAhPSBzdGQ6 OnN0cmluZzo6bnBvcykKKysJZXJyb3IgKF8oIk1pc3Npbmcgb3BlbiBicmFja2V0IGluIGhvc3Ru YW1lICclcyciKSwKKysJICAgICAgIHNwZWMuY19zdHIgKCkpOworKyAgICB9CisrCisrICBpZiAo bGFzdF9jb2xvbl9wb3MgPT0gMCkKKysgICAgbGFzdF9jb2xvbl9wb3MgPSBzcGVjLmZpbmRfbGFz dF9vZiAoJzonKTsKKysKKysgIC8qIFRoZSBsZW5ndGggb2YgdGhlIGhvc3RuYW1lIHBhcnQuICAq LworKyAgc2l6ZV90IGhvc3RfbGVuOworKworKyAgaWYgKGxhc3RfY29sb25fcG9zICE9IHN0ZDo6 c3RyaW5nOjpucG9zKQorKyAgICB7CisrICAgICAgLyogVGhlIHVzZXIgaGFzIHByb3ZpZGVkIGEg cG9ydC4gICovCisrICAgICAgaG9zdF9sZW4gPSBsYXN0X2NvbG9uX3BvczsKKysgICAgICByZXQu cG9ydF9zdHIgPSBzcGVjLnN1YnN0ciAobGFzdF9jb2xvbl9wb3MgKyAxKTsKKysgICAgfQorKyAg ZWxzZQorKyAgICBob3N0X2xlbiA9IHNwZWMuc2l6ZSAoKTsKKysKKysgIHJldC5ob3N0X3N0ciA9 IHNwZWMuc3Vic3RyICgwLCBob3N0X2xlbik7CisrCisrICAvKiBEZWZhdWx0IGhvc3RuYW1lIGlz IGxvY2FsaG9zdC4gICovCisrICBpZiAocmV0Lmhvc3Rfc3RyLmVtcHR5ICgpKQorKyAgICByZXQu aG9zdF9zdHIgPSAibG9jYWxob3N0IjsKKysKKysgIHJldHVybiByZXQ7CisrfQorKworKy8qIFNl ZSBjb21tb24vbmV0c3R1ZmYuaC4gICovCisrCisrcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYworK3Bh cnNlX2Nvbm5lY3Rpb25fc3BlYyAoY29uc3QgY2hhciAqc3BlYywgc3RydWN0IGFkZHJpbmZvICpo aW50KQorK3sKKysgIC8qIFN0cnVjdCB0byBob2xkIHRoZSBhc3NvY2lhdGlvbiBiZXR3ZWVuIHZh bGlkIHByZWZpeGVzLCB0aGVpcgorKyAgICAgZmFtaWx5IGFuZCBzb2NrdHlwZS4gICovCisrICBz dHJ1Y3QgaG9zdF9wcmVmaXgKKysgICAgeworKyAgICAgIC8qIFRoZSBwcmVmaXguICAqLworKyAg ICAgIGNvbnN0IGNoYXIgKnByZWZpeDsKKysKKysgICAgICAvKiBUaGUgJ2FpX2ZhbWlseScuICAq LworKyAgICAgIGludCBmYW1pbHk7CisrCisrICAgICAgLyogVGhlICdhaV9zb2NrdHlwZScuICAq LworKyAgICAgIGludCBzb2NrdHlwZTsKKysgICAgfTsKKysgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg aG9zdF9wcmVmaXggcHJlZml4ZXNbXSA9CisrICAgIHsKKysgICAgICB7ICJ1ZHA6IiwgIEFGX1VO U1BFQywgU09DS19ER1JBTSB9LAorKyAgICAgIHsgInRjcDoiLCAgQUZfVU5TUEVDLCBTT0NLX1NU UkVBTSB9LAorKyAgICAgIHsgInVkcDQ6IiwgQUZfSU5FVCwgICBTT0NLX0RHUkFNIH0sCisrICAg ICAgeyAidGNwNDoiLCBBRl9JTkVULCAgIFNPQ0tfU1RSRUFNIH0sCisrICAgICAgeyAidWRwNjoi LCBBRl9JTkVUNiwgIFNPQ0tfREdSQU0gfSwKKysgICAgICB7ICJ0Y3A2OiIsIEFGX0lORVQ2LCAg U09DS19TVFJFQU0gfSwKKysgICAgfTsKKysKKysgIGZvciAoY29uc3QgaG9zdF9wcmVmaXggcHJl Zml4IDogcHJlZml4ZXMpCisrICAgIGlmIChzdGFydHN3aXRoIChzcGVjLCBwcmVmaXgucHJlZml4 KSkKKysgICAgICB7CisrCXNwZWMgKz0gc3RybGVuIChwcmVmaXgucHJlZml4KTsKKysJaGludC0+ YWlfZmFtaWx5ID0gcHJlZml4LmZhbWlseTsKKysJaGludC0+YWlfc29ja3R5cGUgPSBwcmVmaXgu c29ja3R5cGU7CisrCWhpbnQtPmFpX3Byb3RvY29sCisrCSAgPSBoaW50LT5haV9zb2NrdHlwZSA9 PSBTT0NLX0RHUkFNID8gSVBQUk9UT19VRFAgOiBJUFBST1RPX1RDUDsKKysJYnJlYWs7CisrICAg ICAgfQorKworKyAgcmV0dXJuIHBhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAo c3BlYywgaGludCk7CisrfQorZGlmZiAtLWdpdCBhL2dkYi9jb21tb24vbmV0c3R1ZmYuaCBiL2dk Yi9jb21tb24vbmV0c3R1ZmYuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKKy0tLSAvZGV2L251bGwK KysrKyBiL2dkYi9jb21tb24vbmV0c3R1ZmYuaAorQEAgLTAsMCArMSw3NiBAQAorKy8qIE9wZXJh dGlvbnMgb24gbmV0d29yayBzdHVmZi4KKysgICBDb3B5cmlnaHQgKEMpIDIwMTggRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgor KworKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWZuZGVm IE5FVFNUVUZGX0gKKysjZGVmaW5lIE5FVFNUVUZGX0gKKysKKysjaW5jbHVkZSA8c3RyaW5nPgor KworKy8qIExpa2UgTklfTUFYSE9TVC9OSV9NQVhTRVJWLCBidXQgZW5vdWdoIGZvciBudW1lcmlj IGZvcm1zLiAgKi8KKysjZGVmaW5lIEdEQl9OSV9NQVhfQUREUiA2NAorKyNkZWZpbmUgR0RCX05J X01BWF9QT1JUIDE2CisrCisrLyogSGVscGVyIGNsYXNzIHRvIGd1YXJhbnRlZSB0aGF0IHdlIGFs d2F5cyBjYWxsICdmcmVlYWRkcmluZm8nLiAgKi8KKysKKytjbGFzcyBzY29wZWRfZnJlZV9hZGRy aW5mbworK3sKKytwdWJsaWM6CisrICAvKiBEZWZhdWx0IGNvbnN0cnVjdG9yLiAgKi8KKysgIGV4 cGxpY2l0IHNjb3BlZF9mcmVlX2FkZHJpbmZvIChzdHJ1Y3QgYWRkcmluZm8gKmFpbmZvKQorKyAg ICA6IG1fcmVzIChhaW5mbykKKysgIHsKKysgIH0KKysKKysgIC8qIERlc3RydWN0b3IgcmVzcG9u c2libGUgZm9yIGZyZWUnaW5nIE1fUkVTIGJ5IGNhbGxpbmcKKysgICAgICdmcmVlYWRkcmluZm8n LiAgKi8KKysgIH5zY29wZWRfZnJlZV9hZGRyaW5mbyAoKTsKKysKKysgIERJU0FCTEVfQ09QWV9B TkRfQVNTSUdOIChzY29wZWRfZnJlZV9hZGRyaW5mbyk7CisrCisrcHJpdmF0ZToKKysgIC8qIFRo ZSBhZGRyaW5mbyByZXNvdXJjZS4gICovCisrICBzdHJ1Y3QgYWRkcmluZm8gKm1fcmVzOworK307 CisrCisrLyogVGhlIHN0cnVjdCB3ZSByZXR1cm4gYWZ0ZXIgcGFyc2luZyB0aGUgY29ubmVjdGlv biBzcGVjLiAgKi8KKysKKytzdHJ1Y3QgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYworK3sKKysgIC8q IFRoZSBob3N0bmFtZS4gICovCisrICBzdGQ6OnN0cmluZyBob3N0X3N0cjsKKysKKysgIC8qIFRo ZSBwb3J0LCBpZiBhbnkuICAqLworKyAgc3RkOjpzdHJpbmcgcG9ydF9zdHI7CisrfTsKKysKKysK KysvKiBQYXJzZSBTUEVDICh3aGljaCBpcyBhIHN0cmluZyBpbiB0aGUgZm9ybSBvZiAiQUREUjpQ T1JUIikgYW5kCisrICAgcmV0dXJuIGEgJ3BhcnNlZF9jb25uZWN0aW9uX3NwZWMnIHN0cnVjdHVy ZSB3aXRoIHRoZSBwcm9wZXIgZmllbGRzCisrICAgZmlsbGVkIGluLiAgQWxzbyBhZGp1c3QgSElO VCBhY2NvcmRpbmdseS4gICovCisrZXh0ZXJuIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMKKysgIHBh cnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0X3ByZWZpeCAoc3RkOjpzdHJpbmcgc3BlYywKKysJ CQkJCXN0cnVjdCBhZGRyaW5mbyAqaGludCk7CisrCisrLyogUGFyc2UgU1BFQyAod2hpY2ggaXMg YSBzdHJpbmcgaW4gdGhlIGZvcm0gb2YKKysgICAiW3RjcFs2XTp8dWRwWzZdOl1BRERSOlBPUlQi KSBhbmQgcmV0dXJuIGEgJ3BhcnNlZF9jb25uZWN0aW9uX3NwZWMnCisrICAgc3RydWN0dXJlIHdp dGggdGhlIHByb3BlciBmaWVsZHMgZmlsbGVkIGluLiAgQWxzbyBhZGp1c3QgSElOVAorKyAgIGFj Y29yZGluZ2x5LiAgKi8KKytleHRlcm4gcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyBwYXJzZV9jb25u ZWN0aW9uX3NwZWMgKGNvbnN0IGNoYXIgKnNwZWMsCisrCQkJCQkJICAgICBzdHJ1Y3QgYWRkcmlu Zm8gKmhpbnQpOworKworKyNlbmRpZiAvKiAhIE5FVFNUVUZGX0ggKi8KK2RpZmYgLS1naXQgYS9n ZGIvZG9jL0NoYW5nZUxvZyBiL2dkYi9kb2MvQ2hhbmdlTG9nCistLS0gYS9nZGIvZG9jL0NoYW5n ZUxvZworKysrIGIvZ2RiL2RvYy9DaGFuZ2VMb2cKK0BAIC0xLDMgKzEsMTEgQEAKKysyMDE4LTA3 LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgorKwkgICAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorKwkgICAgUGF1bCBG ZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNvbT4KKysJICAgIFRzdXRvbXUgU2VraSAgPHNla2ly aWtpQGdtYWlsLmNvbT4KKysKKysJKiBnZGIudGV4aW5mbyAoUmVtb3RlIENvbm5lY3Rpb24gQ29t bWFuZHMpOiBBZGQgZXhwbGFuYXRpb24KKysJYWJvdXQgbmV3IElQdjYgc3VwcG9ydC4gIEFkZCBu ZXcgY29ubmVjdGlvbiBwcmVmaXhlcy4KKysKKyAyMDE4LTA3LTAyICBNYWNpZWogVy4gUm96eWNr aSAgPG1hY3JvQG1pcHMuY29tPgorIAorIAlQUiB0ZGVwLzgyODIKK2RpZmYgLS1naXQgYS9nZGIv ZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbworLS0tIGEvZ2RiL2RvYy9nZGIu dGV4aW5mbworKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5mbworQEAgLTIwNTQ4LDE2ICsyMDU0OCwy NyBAQCBJZiB5b3UncmUgdXNpbmcgYSBzZXJpYWwgbGluZSwgeW91IG1heSB3YW50IHRvIGdpdmUg QHZhbHVle0dEQk59IHRoZQorIEBjb2Rle3RhcmdldH0gY29tbWFuZC4KKyAKKyBAaXRlbSB0YXJn ZXQgcmVtb3RlIEBjb2Rle0B2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJl bW90ZSBAY29kZXtAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKyBAaXRlbXggdGFyZ2V0IHJlbW90 ZSBAY29kZXt0Y3A6QHZhcntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3Rl IEBjb2Rle3RjcDpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90 ZSBAY29kZXt0Y3A0OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90 ZSBAY29kZXt0Y3A2OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IHJlbW90 ZSBAY29kZXt0Y3A2OkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQorIEBpdGVteCB0YXJnZXQgZXh0 ZW5kZWQtcmVtb3RlIEBjb2Rle0B2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0 IGV4dGVuZGVkLXJlbW90ZSBAY29kZXtAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKyBAaXRlbXgg dGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0Y3A6QHZhcntob3N0fTpAdmFye3BvcnR9fQor K0BpdGVteCB0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3RjcDpAdmFye1tob3N0XX06QHZh cntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0Y3A0OkB2YXJ7 aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt0 Y3A2OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90 ZSBAY29kZXt0Y3A2OkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQorIEBjaW5kZXggQGFjcm9ueW17 VENQfSBwb3J0LCBAY29kZXt0YXJnZXQgcmVtb3RlfQorIERlYnVnIHVzaW5nIGEgQGFjcm9ueW17 VENQfSBjb25uZWN0aW9uIHRvIEB2YXJ7cG9ydH0gb24gQHZhcntob3N0fS4KKy1UaGUgQHZhcnto b3N0fSBtYXkgYmUgZWl0aGVyIGEgaG9zdCBuYW1lIG9yIGEgbnVtZXJpYyBAYWNyb255bXtJUH0K Ky1hZGRyZXNzOyBAdmFye3BvcnR9IG11c3QgYmUgYSBkZWNpbWFsIG51bWJlci4gIFRoZSBAdmFy e2hvc3R9IGNvdWxkIGJlCistdGhlIHRhcmdldCBtYWNoaW5lIGl0c2VsZiwgaWYgaXQgaXMgZGly ZWN0bHkgY29ubmVjdGVkIHRvIHRoZSBuZXQsIG9yCistaXQgbWlnaHQgYmUgYSB0ZXJtaW5hbCBz ZXJ2ZXIgd2hpY2ggaW4gdHVybiBoYXMgYSBzZXJpYWwgbGluZSB0byB0aGUKKy10YXJnZXQuCisr VGhlIEB2YXJ7aG9zdH0gbWF5IGJlIGVpdGhlciBhIGhvc3QgbmFtZSwgYSBudW1lcmljIEBhY3Jv bnlte0lQdjR9CisrYWRkcmVzcywgb3IgYSBudW1lcmljIEBhY3Jvbnlte0lQdjZ9IGFkZHJlc3Mg KHdpdGggb3Igd2l0aG91dCB0aGUKKytzcXVhcmUgYnJhY2tldHMgdG8gc2VwYXJhdGUgdGhlIGFk ZHJlc3MgZnJvbSB0aGUgcG9ydCk7IEB2YXJ7cG9ydH0KKyttdXN0IGJlIGEgZGVjaW1hbCBudW1i ZXIuICBUaGUgQHZhcntob3N0fSBjb3VsZCBiZSB0aGUgdGFyZ2V0IG1hY2hpbmUKKytpdHNlbGYs IGlmIGl0IGlzIGRpcmVjdGx5IGNvbm5lY3RlZCB0byB0aGUgbmV0LCBvciBpdCBtaWdodCBiZSBh CisrdGVybWluYWwgc2VydmVyIHdoaWNoIGluIHR1cm4gaGFzIGEgc2VyaWFsIGxpbmUgdG8gdGhl IHRhcmdldC4KKyAKKyBGb3IgZXhhbXBsZSwgdG8gY29ubmVjdCB0byBwb3J0IDI4Mjggb24gYSB0 ZXJtaW5hbCBzZXJ2ZXIgbmFtZWQKKyBAY29kZXttYW55ZmFybXN9OgorQEAgLTIwNTY2LDYgKzIw NTc3LDI4IEBAIEZvciBleGFtcGxlLCB0byBjb25uZWN0IHRvIHBvcnQgMjgyOCBvbiBhIHRlcm1p bmFsIHNlcnZlciBuYW1lZAorIHRhcmdldCByZW1vdGUgbWFueWZhcm1zOjI4MjgKKyBAZW5kIHNt YWxsZXhhbXBsZQorIAorK1RvIGNvbm5lY3QgdG8gcG9ydCAyODI4IG9uIGEgdGVybWluYWwgc2Vy dmVyIHdob3NlIGFkZHJlc3MgaXMKKytAY29kZXsyMDAxOjBkYjg6ODVhMzowMDAwOjAwMDA6OGEy ZTowMzcwOjczMzR9LCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlCisrc3F1YXJlIGJyYWNrZXQgc3lu dGF4OgorKworK0BzbWFsbGV4YW1wbGUKKyt0YXJnZXQgcmVtb3RlIFsyMDAxOjBkYjg6ODVhMzow MDAwOjAwMDA6OGEyZTowMzcwOjczMzRdOjI4MjgKKytAZW5kIHNtYWxsZXhhbXBsZQorKworK0Bu b2luZGVudAorK29yIGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUgQGFjcm9ueW17SVB2Nn0gcHJvdG9j b2w6CisrCisrQHNtYWxsZXhhbXBsZQorK3RhcmdldCByZW1vdGUgdGNwNjoyMDAxOjBkYjg6ODVh MzowMDAwOjAwMDA6OGEyZTowMzcwOjczMzQ6MjgyOAorK0BlbmQgc21hbGxleGFtcGxlCisrCisr VGhpcyBsYXN0IGV4YW1wbGUgbWF5IGJlIGNvbmZ1c2luZyB0byB0aGUgcmVhZGVyLCBiZWNhdXNl IHRoZXJlIGlzIG5vCisrdmlzaWJsZSBzZXBhcmF0aW9uIGJldHdlZW4gdGhlIGhvc3RuYW1lIGFu ZCB0aGUgcG9ydCBudW1iZXIuCisrVGhlcmVmb3JlLCB3ZSByZWNvbW1lbmQgdGhlIHVzZXIgdG8g cHJvdmlkZSBAYWNyb255bXtJUHY2fSBhZGRyZXNzZXMKKyt1c2luZyBzcXVhcmUgYnJhY2tldHMg Zm9yIGNsYXJpdHkuICBIb3dldmVyLCBpdCBpcyBpbXBvcnRhbnQgdG8KKyttZW50aW9uIHRoYXQg Zm9yIEB2YWx1ZXtHREJOfSB0aGVyZSBpcyBubyBhbWJpZ3VpdHk6IHRoZSBudW1iZXIgYWZ0ZXIK Kyt0aGUgbGFzdCBjb2xvbiBpcyBjb25zaWRlcmVkIHRvIGJlIHRoZSBwb3J0IG51bWJlci4KKysK KyBJZiB5b3VyIHJlbW90ZSB0YXJnZXQgaXMgYWN0dWFsbHkgcnVubmluZyBvbiB0aGUgc2FtZSBt YWNoaW5lIGFzIHlvdXIKKyBkZWJ1Z2dlciBzZXNzaW9uIChlLmcuQDogYSBzaW11bGF0b3IgZm9y IHlvdXIgdGFyZ2V0IHJ1bm5pbmcgb24gdGhlCisgc2FtZSBob3N0KSwgeW91IGNhbiBvbWl0IHRo ZSBob3N0bmFtZS4gIEZvciBleGFtcGxlLCB0byBjb25uZWN0IHRvCitAQCAtMjA1NzksNyArMjA2 MTIsMTUgQEAgdGFyZ2V0IHJlbW90ZSA6MTIzNAorIE5vdGUgdGhhdCB0aGUgY29sb24gaXMgc3Rp bGwgcmVxdWlyZWQgaGVyZS4KKyAKKyBAaXRlbSB0YXJnZXQgcmVtb3RlIEBjb2Rle3VkcDpAdmFy e2hvc3R9OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dWRwOkB2YXJ7 W2hvc3RdfTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3VkcDQ6QHZh cntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgcmVtb3RlIEBjb2Rle3VkcDY6QHZh cntbaG9zdF19OkB2YXJ7cG9ydH19CisrQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNv ZGV7dWRwOkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KKyBAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJl bW90ZSBAY29kZXt1ZHA6QHZhcntob3N0fTpAdmFye3BvcnR9fQorK0BpdGVteCB0YXJnZXQgZXh0 ZW5kZWQtcmVtb3RlIEBjb2Rle3VkcDpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KKytAaXRlbXgg dGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA0OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0K KytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA2OkB2YXJ7aG9zdH06QHZh cntwb3J0fX0KKytAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA2OkB2YXJ7 W2hvc3RdfTpAdmFye3BvcnR9fQorIEBjaW5kZXggQGFjcm9ueW17VURQfSBwb3J0LCBAY29kZXt0 YXJnZXQgcmVtb3RlfQorIERlYnVnIHVzaW5nIEBhY3Jvbnlte1VEUH0gcGFja2V0cyB0byBAdmFy e3BvcnR9IG9uIEB2YXJ7aG9zdH0uICBGb3IgZXhhbXBsZSwgdG8KKyBjb25uZWN0IHRvIEBhY3Jv bnlte1VEUH0gcG9ydCAyODI4IG9uIGEgdGVybWluYWwgc2VydmVyIG5hbWVkIEBjb2Rle21hbnlm YXJtc306CitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cgYi9nZGIvZ2Ric2Vy dmVyL0NoYW5nZUxvZworLS0tIGEvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKKysrKyBiL2dkYi9n ZGJzZXJ2ZXIvQ2hhbmdlTG9nCitAQCAtMSwzICsxLDIyIEBACisrMjAxOC0wNy0xMSAgU2VyZ2lv IER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKysJICAgIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KKysJICAgIFBhdWwgRmVydHNlciAgPGZl cmNlcnBhdkBnbWFpbC5jb20+CisrCSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5j b20+CisrCisrCSogTWFrZWZpbGUuaW4gKFNGSUxFUyk6IEFkZCAnJChzcmNkaXIpL2NvbW1vbi9u ZXRzdHVmZi5jJy4KKysJKE9CUyk6IEFkZCAnY29tbW9uL25ldHN0dWZmLm8nLgorKwkoR0RCUkVQ TEFZX09CUyk6IExpa2V3aXNlLgorKwkqIGdkYnJlcGxheS5jOiBJbmNsdWRlICd3c3BpYXBpLmgn IGFuZCAnbmV0c3R1ZmYuaCcuCisrCShyZW1vdGVfb3Blbik6IEltcGxlbWVudCBzdXBwb3J0IGZv ciBJUHY2CisrCWNvbm5lY3Rpb25zLgorKwkqIHJlbW90ZS11dGlscy5jOiBJbmNsdWRlICduZXRz dHVmZi5oJywgJ2ZpbGVzdHVmZi5oJworKwlhbmQgJ3dzcGlhcGkuaCcuCisrCShoYW5kbGVfYWNj ZXB0X2V2ZW50KTogQWNjZXB0IGNvbm5lY3Rpb25zIGZyb20gSVB2NiBzb3VyY2VzLgorKwkocmVt b3RlX3ByZXBhcmUpOiBIYW5kbGUgSVB2Ni1zdHlsZSBob3N0bmFtZXM7IGltcGxlbWVudAorKwlz dXBwb3J0IGZvciBJUHY2IGNvbm5lY3Rpb25zLgorKwkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQg c3VwcG9ydCBmb3IgcHJpbnRpbmcgY29ubmVjdGlvbnMgZnJvbQorKwlJUHY2IHNvdXJjZXMuCisr CisgMjAxOC0wNy0xMSAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4KKyAKKyAJUFIg Z2RiLzIzMzc3CitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnNlcnZlci9NYWtlZmlsZS5pbiBiL2dkYi9n ZGJzZXJ2ZXIvTWFrZWZpbGUuaW4KKy0tLSBhL2dkYi9nZGJzZXJ2ZXIvTWFrZWZpbGUuaW4KKysr KyBiL2dkYi9nZGJzZXJ2ZXIvTWFrZWZpbGUuaW4KK0BAIC0yMTEsNiArMjExLDcgQEAgU0ZJTEVT ID0gXAorIAkkKHNyY2RpcikvY29tbW9uL2pvYi1jb250cm9sLmMgXAorIAkkKHNyY2RpcikvY29t bW9uL2dkYl90aWxkZV9leHBhbmQuYyBcCisgCSQoc3JjZGlyKS9jb21tb24vZ2RiX3ZlY3MuYyBc CisrCSQoc3JjZGlyKS9jb21tb24vbmV0c3R1ZmYuYyBcCisgCSQoc3JjZGlyKS9jb21tb24vbmV3 LW9wLmMgXAorIAkkKHNyY2RpcikvY29tbW9uL3BhdGhzdHVmZi5jIFwKKyAJJChzcmNkaXIpL2Nv bW1vbi9wcmludC11dGlscy5jIFwKK0BAIC0yNTQsNiArMjU1LDcgQEAgT0JTID0gXAorIAljb21t b24vZm9ybWF0Lm8gXAorIAljb21tb24vZ2RiX3RpbGRlX2V4cGFuZC5vIFwKKyAJY29tbW9uL2dk Yl92ZWNzLm8gXAorKwljb21tb24vbmV0c3R1ZmYubyBcCisgCWNvbW1vbi9uZXctb3AubyBcCisg CWNvbW1vbi9wYXRoc3R1ZmYubyBcCisgCWNvbW1vbi9wcmludC11dGlscy5vIFwKK0BAIC0yOTAs NiArMjkyLDcgQEAgR0RCUkVQTEFZX09CUyA9IFwKKyAJY29tbW9uL2NvbW1vbi1leGNlcHRpb25z Lm8gXAorIAljb21tb24vY29tbW9uLXV0aWxzLm8gXAorIAljb21tb24vZXJyb3JzLm8gXAorKwlj b21tb24vbmV0c3R1ZmYubyBcCisgCWNvbW1vbi9wcmludC11dGlscy5vIFwKKyAJZ2RicmVwbGF5 Lm8gXAorIAl1dGlscy5vIFwKK2RpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL2dkYnJlcGxheS5j IGIvZ2RiL2dkYnNlcnZlci9nZGJyZXBsYXkuYworLS0tIGEvZ2RiL2dkYnNlcnZlci9nZGJyZXBs YXkuYworKysrIGIvZ2RiL2dkYnNlcnZlci9nZGJyZXBsYXkuYworQEAgLTQ2LDggKzQ2LDExIEBA CisgCisgI2lmIFVTRV9XSU4zMkFQSQorICNpbmNsdWRlIDx3aW5zb2NrMi5oPgorKyNpbmNsdWRl IDx3c3BpYXBpLmg+CisgI2VuZGlmCisgCisrI2luY2x1ZGUgIm5ldHN0dWZmLmgiCisrCisgI2lm bmRlZiBIQVZFX1NPQ0tMRU5fVAorIHR5cGVkZWYgaW50IHNvY2tsZW5fdDsKKyAjZW5kaWYKK0BA IC0xNDIsNTYgKzE0NSwxMDggQEAgcmVtb3RlX2Nsb3NlICh2b2lkKQorIHN0YXRpYyB2b2lkCisg cmVtb3RlX29wZW4gKGNoYXIgKm5hbWUpCisgeworLSAgaWYgKCFzdHJjaHIgKG5hbWUsICc6Jykp CisrICBjaGFyICpsYXN0X2NvbG9uID0gc3RycmNociAobmFtZSwgJzonKTsKKysKKysgIGlmIChs YXN0X2NvbG9uID09IE5VTEwpCisgICAgIHsKKyAgICAgICBmcHJpbnRmIChzdGRlcnIsICIlczog TXVzdCBzcGVjaWZ5IHRjcCBjb25uZWN0aW9uIGFzIGhvc3Q6YWRkclxuIiwgbmFtZSk7CisgICAg ICAgZmZsdXNoIChzdGRlcnIpOworICAgICAgIGV4aXQgKDEpOworICAgICB9CistICBlbHNlCist ICAgIHsKKysKKyAjaWZkZWYgVVNFX1dJTjMyQVBJCistICAgICAgc3RhdGljIGludCB3aW5zb2Nr X2luaXRpYWxpemVkOworKyAgc3RhdGljIGludCB3aW5zb2NrX2luaXRpYWxpemVkOworICNlbmRp ZgorLSAgICAgIGNoYXIgKnBvcnRfc3RyOworLSAgICAgIGludCBwb3J0OworLSAgICAgIHN0cnVj dCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsKKy0gICAgICBzb2NrbGVuX3QgdG1wOworLSAgICAgIGlu dCB0bXBfZGVzYzsKKysgIGNoYXIgKnBvcnRfc3RyOworKyAgaW50IHRtcDsKKysgIGludCB0bXBf ZGVzYzsKKysgIHN0cnVjdCBhZGRyaW5mbyBoaW50OworKyAgc3RydWN0IGFkZHJpbmZvICphaW5m bzsKKyAKKy0gICAgICBwb3J0X3N0ciA9IHN0cmNociAobmFtZSwgJzonKTsKKysgIG1lbXNldCAo JmhpbnQsIDAsIHNpemVvZiAoaGludCkpOworKyAgLyogQXNzdW1lIG5vIHByZWZpeCB3aWxsIGJl IHBhc3NlZCwgdGhlcmVmb3JlIHdlIHNob3VsZCB1c2UKKysgICAgIEFGX1VOU1BFQy4gICovCisr ICBoaW50LmFpX2ZhbWlseSA9IEFGX1VOU1BFQzsKKysgIGhpbnQuYWlfc29ja3R5cGUgPSBTT0NL X1NUUkVBTTsKKysgIGhpbnQuYWlfcHJvdG9jb2wgPSBJUFBST1RPX1RDUDsKKyAKKy0gICAgICBw b3J0ID0gYXRvaSAocG9ydF9zdHIgKyAxKTsKKysgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcGFy c2VkID0gcGFyc2VfY29ubmVjdGlvbl9zcGVjIChuYW1lLCAmaGludCk7CisrCisrICBpZiAocGFy c2VkLnBvcnRfc3RyLmVtcHR5ICgpKQorKyAgICBlcnJvciAoXygiTWlzc2luZyBwb3J0IG9uIGhv c3RuYW1lICclcyciKSwgbmFtZSk7CisgCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorLSAgICAgIGlm ICghd2luc29ja19pbml0aWFsaXplZCkKKy0JeworLQkgIFdTQURBVEEgd3NhZDsKKysgIGlmICgh d2luc29ja19pbml0aWFsaXplZCkKKysgICAgeworKyAgICAgIFdTQURBVEEgd3NhZDsKKyAKKy0J ICBXU0FTdGFydHVwIChNQUtFV09SRCAoMSwgMCksICZ3c2FkKTsKKy0JICB3aW5zb2NrX2luaXRp YWxpemVkID0gMTsKKy0JfQorKyAgICAgIFdTQVN0YXJ0dXAgKE1BS0VXT1JEICgxLCAwKSwgJndz YWQpOworKyAgICAgIHdpbnNvY2tfaW5pdGlhbGl6ZWQgPSAxOworKyAgICB9CisgI2VuZGlmCisg CistICAgICAgdG1wX2Rlc2MgPSBzb2NrZXQgKFBGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKy0g ICAgICBpZiAodG1wX2Rlc2MgPT0gLTEpCistCXBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBvcGVu IHNvY2tldCIpOworKyAgaW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3Ry ICgpLCBwYXJzZWQucG9ydF9zdHIuY19zdHIgKCksCisrCQkgICAgICAgJmhpbnQsICZhaW5mbyk7 CisgCistICAgICAgLyogQWxsb3cgcmFwaWQgcmV1c2Ugb2YgdGhpcyBwb3J0LiAqLworLSAgICAg IHRtcCA9IDE7CistICAgICAgc2V0c29ja29wdCAodG1wX2Rlc2MsIFNPTF9TT0NLRVQsIFNPX1JF VVNFQUREUiwgKGNoYXIgKikgJnRtcCwKKy0JCSAgc2l6ZW9mICh0bXApKTsKKysgIGlmIChyICE9 IDApCisrICAgIHsKKysgICAgICBmcHJpbnRmIChzdGRlcnIsICIlczolczogY2Fubm90IHJlc29s dmUgbmFtZTogJXNcbiIsCisrCSAgICAgICBwYXJzZWQuaG9zdF9zdHIuY19zdHIgKCksIHBhcnNl ZC5wb3J0X3N0ci5jX3N0ciAoKSwKKysJICAgICAgIGdhaV9zdHJlcnJvciAocikpOworKyAgICAg IGZmbHVzaCAoc3RkZXJyKTsKKysgICAgICBleGl0ICgxKTsKKysgICAgfQorKworKyAgc2NvcGVk X2ZyZWVfYWRkcmluZm8gZnJlZV9haW5mbyAoYWluZm8pOworKworKyAgc3RydWN0IGFkZHJpbmZv ICpwOworKworKyAgZm9yIChwID0gYWluZm87IHAgIT0gTlVMTDsgcCA9IHAtPmFpX25leHQpCisr ICAgIHsKKysgICAgICB0bXBfZGVzYyA9IHNvY2tldCAocC0+YWlfZmFtaWx5LCBwLT5haV9zb2Nr dHlwZSwgcC0+YWlfcHJvdG9jb2wpOworIAorLSAgICAgIHNvY2thZGRyLnNpbl9mYW1pbHkgPSBQ Rl9JTkVUOworLSAgICAgIHNvY2thZGRyLnNpbl9wb3J0ID0gaHRvbnMgKHBvcnQpOworLSAgICAg IHNvY2thZGRyLnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7CisrICAgICAgaWYgKHRtcF9k ZXNjID49IDApCisrCWJyZWFrOworKyAgICB9CisrCisrICBpZiAocCA9PSBOVUxMKQorKyAgICBw ZXJyb3Jfd2l0aF9uYW1lICgiQ2Fubm90IG9wZW4gc29ja2V0Iik7CisgCistICAgICAgaWYgKGJp bmQgKHRtcF9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgc2l6ZW9mIChzb2Nr YWRkcikpCistCSAgfHwgbGlzdGVuICh0bXBfZGVzYywgMSkpCistCXBlcnJvcl93aXRoX25hbWUg KCJDYW4ndCBiaW5kIGFkZHJlc3MiKTsKKysgIC8qIEFsbG93IHJhcGlkIHJldXNlIG9mIHRoaXMg cG9ydC4gKi8KKysgIHRtcCA9IDE7CisrICBzZXRzb2Nrb3B0ICh0bXBfZGVzYywgU09MX1NPQ0tF VCwgU09fUkVVU0VBRERSLCAoY2hhciAqKSAmdG1wLAorKwkgICAgICBzaXplb2YgKHRtcCkpOwor KworKyAgc3dpdGNoIChwLT5haV9mYW1pbHkpCisrICAgIHsKKysgICAgY2FzZSBBRl9JTkVUOgor KyAgICAgICgoc3RydWN0IHNvY2thZGRyX2luICopIHAtPmFpX2FkZHIpLT5zaW5fYWRkci5zX2Fk ZHIgPSBJTkFERFJfQU5ZOworKyAgICAgIGJyZWFrOworKyAgICBjYXNlIEFGX0lORVQ2OgorKyAg ICAgICgoc3RydWN0IHNvY2thZGRyX2luNiAqKSBwLT5haV9hZGRyKS0+c2luNl9hZGRyID0gaW42 YWRkcl9hbnk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgZnByaW50ZiAo c3RkZXJyLCAiSW52YWxpZCAnYWlfZmFtaWx5JyAlZFxuIiwgcC0+YWlfZmFtaWx5KTsKKysgICAg ICBleGl0ICgxKTsKKysgICAgfQorKworKyAgaWYgKGJpbmQgKHRtcF9kZXNjLCBwLT5haV9hZGRy LCBwLT5haV9hZGRybGVuKSAhPSAwKQorKyAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgYmlu ZCBhZGRyZXNzIik7CisrCisrICBpZiAocC0+YWlfc29ja3R5cGUgPT0gU09DS19ER1JBTSkKKysg ICAgcmVtb3RlX2Rlc2MgPSB0bXBfZGVzYzsKKysgIGVsc2UKKysgICAgeworKyAgICAgIHN0cnVj dCBzb2NrYWRkcl9zdG9yYWdlIHNvY2thZGRyOworKyAgICAgIHNvY2tsZW5fdCBzb2NrYWRkcnNp emUgPSBzaXplb2YgKHNvY2thZGRyKTsKKysgICAgICBjaGFyIG9yaWdfaG9zdFtHREJfTklfTUFY X0FERFJdLCBvcmlnX3BvcnRbR0RCX05JX01BWF9QT1JUXTsKKysKKysgICAgICBpZiAobGlzdGVu ICh0bXBfZGVzYywgMSkgIT0gMCkKKysJcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGxpc3RlbiBv biBzb2NrZXQiKTsKKysKKysgICAgICByZW1vdGVfZGVzYyA9IGFjY2VwdCAodG1wX2Rlc2MsIChz dHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLAorKwkJCSAgICAmc29ja2FkZHJzaXplKTsKKyAK Ky0gICAgICB0bXAgPSBzaXplb2YgKHNvY2thZGRyKTsKKy0gICAgICByZW1vdGVfZGVzYyA9IGFj Y2VwdCAodG1wX2Rlc2MsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCAmdG1wKTsKKyAg ICAgICBpZiAocmVtb3RlX2Rlc2MgPT0gLTEpCisgCXBlcnJvcl93aXRoX25hbWUgKCJBY2NlcHQg ZmFpbGVkIik7CisgCitAQCAtMjA2LDYgKzI2MSwxNiBAQCByZW1vdGVfb3BlbiAoY2hhciAqbmFt ZSkKKyAgICAgICBzZXRzb2Nrb3B0IChyZW1vdGVfZGVzYywgSVBQUk9UT19UQ1AsIFRDUF9OT0RF TEFZLAorIAkJICAoY2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkpOworIAorKyAgICAgIGlmIChn ZXRuYW1laW5mbyAoKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIHNvY2thZGRyc2l6ZSwK KysJCSAgICAgICBvcmlnX2hvc3QsIHNpemVvZiAob3JpZ19ob3N0KSwKKysJCSAgICAgICBvcmln X3BvcnQsIHNpemVvZiAob3JpZ19wb3J0KSwKKysJCSAgICAgICBOSV9OVU1FUklDSE9TVCB8IE5J X05VTUVSSUNTRVJWKSA9PSAwKQorKwl7CisrCSAgZnByaW50ZiAoc3RkZXJyLCAiUmVtb3RlIGRl YnVnZ2luZyBmcm9tIGhvc3QgJXMsIHBvcnQgJXNcbiIsCisrCQkgICBvcmlnX2hvc3QsIG9yaWdf cG9ydCk7CisrCSAgZmZsdXNoIChzdGRlcnIpOworKwl9CisrCisgI2lmbmRlZiBVU0VfV0lOMzJB UEkKKyAgICAgICBjbG9zZSAodG1wX2Rlc2MpOwkJLyogTm8gbG9uZ2VyIG5lZWQgdGhpcyAqLwor IAorZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2ZXIvcmVtb3RlLXV0aWxzLmMgYi9nZGIvZ2Ric2Vy dmVyL3JlbW90ZS11dGlscy5jCistLS0gYS9nZGIvZ2Ric2VydmVyL3JlbW90ZS11dGlscy5jCisr KysgYi9nZGIvZ2Ric2VydmVyL3JlbW90ZS11dGlscy5jCitAQCAtMjYsNiArMjYsOCBAQAorICNp bmNsdWRlICJkbGwuaCIKKyAjaW5jbHVkZSAicnNwLWxvdy5oIgorICNpbmNsdWRlICJnZGJ0aHJl YWQuaCIKKysjaW5jbHVkZSAibmV0c3R1ZmYuaCIKKysjaW5jbHVkZSAiZmlsZXN0dWZmLmgiCisg I2luY2x1ZGUgPGN0eXBlLmg+CisgI2lmIEhBVkVfU1lTX0lPQ1RMX0gKKyAjaW5jbHVkZSA8c3lz L2lvY3RsLmg+CitAQCAtNjMsNiArNjUsNyBAQAorIAorICNpZiBVU0VfV0lOMzJBUEkKKyAjaW5j bHVkZSA8d2luc29jazIuaD4KKysjaW5jbHVkZSA8d3NwaWFwaS5oPgorICNlbmRpZgorIAorICNp ZiBfX1FOWF9fCitAQCAtMTUxLDE5ICsxNTQsMTggQEAgZW5hYmxlX2FzeW5jX25vdGlmaWNhdGlv biAoaW50IGZkKQorIHN0YXRpYyBpbnQKKyBoYW5kbGVfYWNjZXB0X2V2ZW50IChpbnQgZXJyLCBn ZGJfY2xpZW50X2RhdGEgY2xpZW50X2RhdGEpCisgeworLSAgc3RydWN0IHNvY2thZGRyX2luIHNv Y2thZGRyOworLSAgc29ja2xlbl90IHRtcDsKKysgIHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIHNv Y2thZGRyOworKyAgc29ja2xlbl90IGxlbiA9IHNpemVvZiAoc29ja2FkZHIpOworIAorICAgaWYg KGRlYnVnX3RocmVhZHMpCisgICAgIGRlYnVnX3ByaW50ZiAoImhhbmRsaW5nIHBvc3NpYmxlIGFj Y2VwdCBldmVudFxuIik7CisgCistICB0bXAgPSBzaXplb2YgKHNvY2thZGRyKTsKKy0gIHJlbW90 ZV9kZXNjID0gYWNjZXB0IChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2Fk ZHIsICZ0bXApOworKyAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKGxpc3Rlbl9kZXNjLCAoc3RydWN0 IHNvY2thZGRyICopICZzb2NrYWRkciwgJmxlbik7CisgICBpZiAocmVtb3RlX2Rlc2MgPT0gLTEp CisgICAgIHBlcnJvcl93aXRoX25hbWUgKCJBY2NlcHQgZmFpbGVkIik7CisgCisgICAvKiBFbmFi bGUgVENQIGtlZXAgYWxpdmUgcHJvY2Vzcy4gKi8KKy0gIHRtcCA9IDE7CisrICBzb2NrbGVuX3Qg dG1wID0gMTsKKyAgIHNldHNvY2tvcHQgKHJlbW90ZV9kZXNjLCBTT0xfU09DS0VULCBTT19LRUVQ QUxJVkUsCisgCSAgICAgIChjaGFyICopICZ0bXAsIHNpemVvZiAodG1wKSk7CisgCitAQCAtMTky LDggKzE5NCwxOSBAQCBoYW5kbGVfYWNjZXB0X2V2ZW50IChpbnQgZXJyLCBnZGJfY2xpZW50X2Rh dGEgY2xpZW50X2RhdGEpCisgICBkZWxldGVfZmlsZV9oYW5kbGVyIChsaXN0ZW5fZGVzYyk7Cisg CisgICAvKiBDb252ZXJ0IElQIGFkZHJlc3MgdG8gc3RyaW5nLiAgKi8KKy0gIGZwcmludGYgKHN0 ZGVyciwgIlJlbW90ZSBkZWJ1Z2dpbmcgZnJvbSBob3N0ICVzXG4iLAorLQkgICBpbmV0X250b2Eg KHNvY2thZGRyLnNpbl9hZGRyKSk7CisrICBjaGFyIG9yaWdfaG9zdFtHREJfTklfTUFYX0FERFJd LCBvcmlnX3BvcnRbR0RCX05JX01BWF9QT1JUXTsKKysKKysgIGludCByID0gZ2V0bmFtZWluZm8g KChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBsZW4sCisrCQkgICAgICAgb3JpZ19ob3N0 LCBzaXplb2YgKG9yaWdfaG9zdCksCisrCQkgICAgICAgb3JpZ19wb3J0LCBzaXplb2YgKG9yaWdf cG9ydCksCisrCQkgICAgICAgTklfTlVNRVJJQ0hPU1QgfCBOSV9OVU1FUklDU0VSVik7CisrCisr ICBpZiAociAhPSAwKQorKyAgICBmcHJpbnRmIChzdGRlcnIsIF8oIkNvdWxkIG5vdCBvYnRhaW4g cmVtb3RlIGFkZHJlc3M6ICVzXG4iKSwKKysJICAgICBnYWlfc3RyZXJyb3IgKHIpKTsKKysgIGVs c2UKKysgICAgZnByaW50ZiAoc3RkZXJyLCBfKCJSZW1vdGUgZGVidWdnaW5nIGZyb20gaG9zdCAl cywgcG9ydCAlc1xuIiksCisrCSAgICAgb3JpZ19ob3N0LCBvcmlnX3BvcnQpOworIAorICAgZW5h YmxlX2FzeW5jX25vdGlmaWNhdGlvbiAocmVtb3RlX2Rlc2MpOworIAorQEAgLTIyMiwxMCArMjM1 LDcgQEAgcmVtb3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCisgI2lmZGVmIFVTRV9XSU4z MkFQSQorICAgc3RhdGljIGludCB3aW5zb2NrX2luaXRpYWxpemVkOworICNlbmRpZgorLSAgaW50 IHBvcnQ7CistICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29ja2FkZHI7CisgICBzb2NrbGVuX3QgdG1w OworLSAgY2hhciAqcG9ydF9lbmQ7CisgCisgICByZW1vdGVfaXNfc3RkaW8gPSAwOworICAgaWYg KHN0cmNtcCAobmFtZSwgU1RESU9fQ09OTkVDVElPTl9OQU1FKSA9PSAwKQorQEAgLTIzOCwxNyAr MjQ4LDI1IEBAIHJlbW90ZV9wcmVwYXJlIChjb25zdCBjaGFyICpuYW1lKQorICAgICAgIHJldHVy bjsKKyAgICAgfQorIAorLSAgcG9ydF9zdHIgPSBzdHJjaHIgKG5hbWUsICc6Jyk7CistICBpZiAo cG9ydF9zdHIgPT0gTlVMTCkKKysgIHN0cnVjdCBhZGRyaW5mbyBoaW50OworKyAgc3RydWN0IGFk ZHJpbmZvICphaW5mbzsKKysKKysgIG1lbXNldCAoJmhpbnQsIDAsIHNpemVvZiAoaGludCkpOwor KyAgLyogQXNzdW1lIG5vIHByZWZpeCB3aWxsIGJlIHBhc3NlZCwgdGhlcmVmb3JlIHdlIHNob3Vs ZCB1c2UKKysgICAgIEFGX1VOU1BFQy4gICovCisrICBoaW50LmFpX2ZhbWlseSA9IEFGX1VOU1BF QzsKKysgIGhpbnQuYWlfc29ja3R5cGUgPSBTT0NLX1NUUkVBTTsKKysgIGhpbnQuYWlfcHJvdG9j b2wgPSBJUFBST1RPX1RDUDsKKysKKysgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcGFyc2VkCisr ICAgID0gcGFyc2VfY29ubmVjdGlvbl9zcGVjX3dpdGhvdXRfcHJlZml4IChuYW1lLCAmaGludCk7 CisrCisrICBpZiAocGFyc2VkLnBvcnRfc3RyLmVtcHR5ICgpKQorICAgICB7CisgICAgICAgY3Mu dHJhbnNwb3J0X2lzX3JlbGlhYmxlID0gMDsKKyAgICAgICByZXR1cm47CisgICAgIH0KKyAKKy0g IHBvcnQgPSBzdHJ0b3VsIChwb3J0X3N0ciArIDEsICZwb3J0X2VuZCwgMTApOworLSAgaWYgKHBv cnRfc3RyWzFdID09ICdcMCcgfHwgKnBvcnRfZW5kICE9ICdcMCcpCistICAgIGVycm9yICgiQmFk IHBvcnQgYXJndW1lbnQ6ICVzIiwgbmFtZSk7CistCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorICAg aWYgKCF3aW5zb2NrX2luaXRpYWxpemVkKQorICAgICB7CitAQCAtMjU5LDggKzI3NywyNiBAQCBy ZW1vdGVfcHJlcGFyZSAoY29uc3QgY2hhciAqbmFtZSkKKyAgICAgfQorICNlbmRpZgorIAorLSAg bGlzdGVuX2Rlc2MgPSBzb2NrZXQgKFBGX0lORVQsIFNPQ0tfU1RSRUFNLCBJUFBST1RPX1RDUCk7 CistICBpZiAobGlzdGVuX2Rlc2MgPT0gLTEpCisrICBpbnQgciA9IGdldGFkZHJpbmZvIChwYXJz ZWQuaG9zdF9zdHIuY19zdHIgKCksIHBhcnNlZC5wb3J0X3N0ci5jX3N0ciAoKSwKKysJCSAgICAg ICAmaGludCwgJmFpbmZvKTsKKysKKysgIGlmIChyICE9IDApCisrICAgIGVycm9yIChfKCIlczog Y2Fubm90IHJlc29sdmUgbmFtZTogJXMiKSwgbmFtZSwgZ2FpX3N0cmVycm9yIChyKSk7CisrCisr ICBzY29wZWRfZnJlZV9hZGRyaW5mbyBmcmVlYWRkcmluZm8gKGFpbmZvKTsKKysKKysgIHN0cnVj dCBhZGRyaW5mbyAqaXRlcjsKKysKKysgIGZvciAoaXRlciA9IGFpbmZvOyBpdGVyICE9IE5VTEw7 IGl0ZXIgPSBpdGVyLT5haV9uZXh0KQorKyAgICB7CisrICAgICAgbGlzdGVuX2Rlc2MgPSBnZGJf c29ja2V0X2Nsb2V4ZWMgKGl0ZXItPmFpX2ZhbWlseSwgaXRlci0+YWlfc29ja3R5cGUsCisrCQkJ CQlpdGVyLT5haV9wcm90b2NvbCk7CisrCisrICAgICAgaWYgKGxpc3Rlbl9kZXNjID49IDApCisr CWJyZWFrOworKyAgICB9CisrCisrICBpZiAoaXRlciA9PSBOVUxMKQorICAgICBwZXJyb3Jfd2l0 aF9uYW1lICgiQ2FuJ3Qgb3BlbiBzb2NrZXQiKTsKKyAKKyAgIC8qIEFsbG93IHJhcGlkIHJldXNl IG9mIHRoaXMgcG9ydC4gKi8KK0BAIC0yNjgsMTQgKzMwNCwyNSBAQCByZW1vdGVfcHJlcGFyZSAo Y29uc3QgY2hhciAqbmFtZSkKKyAgIHNldHNvY2tvcHQgKGxpc3Rlbl9kZXNjLCBTT0xfU09DS0VU LCBTT19SRVVTRUFERFIsIChjaGFyICopICZ0bXAsCisgCSAgICAgIHNpemVvZiAodG1wKSk7Cisg CistICBzb2NrYWRkci5zaW5fZmFtaWx5ID0gUEZfSU5FVDsKKy0gIHNvY2thZGRyLnNpbl9wb3J0 ID0gaHRvbnMgKHBvcnQpOworLSAgc29ja2FkZHIuc2luX2FkZHIuc19hZGRyID0gSU5BRERSX0FO WTsKKysgIHN3aXRjaCAoaXRlci0+YWlfZmFtaWx5KQorKyAgICB7CisrICAgIGNhc2UgQUZfSU5F VDoKKysgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSBpdGVyLT5haV9hZGRyKS0+c2luX2Fk ZHIuc19hZGRyID0gSU5BRERSX0FOWTsKKysgICAgICBicmVhazsKKysgICAgY2FzZSBBRl9JTkVU NjoKKysgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikgaXRlci0+YWlfYWRkciktPnNpbjZf YWRkciA9IGluNmFkZHJfYW55OworKyAgICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAg IGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisrCQkgICAgICBfKCJJbnZhbGlk ICdhaV9mYW1pbHknICVkXG4iKSwgaXRlci0+YWlfZmFtaWx5KTsKKysgICAgfQorIAorLSAgaWYg KGJpbmQgKGxpc3Rlbl9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgc2l6ZW9m IChzb2NrYWRkcikpCistICAgICAgfHwgbGlzdGVuIChsaXN0ZW5fZGVzYywgMSkpCisrICBpZiAo YmluZCAobGlzdGVuX2Rlc2MsIGl0ZXItPmFpX2FkZHIsIGl0ZXItPmFpX2FkZHJsZW4pICE9IDAp CisgICAgIHBlcnJvcl93aXRoX25hbWUgKCJDYW4ndCBiaW5kIGFkZHJlc3MiKTsKKyAKKysgIGlm IChsaXN0ZW4gKGxpc3Rlbl9kZXNjLCAxKSAhPSAwKQorKyAgICBwZXJyb3Jfd2l0aF9uYW1lICgi Q2FuJ3QgbGlzdGVuIG9uIHNvY2tldCIpOworKworICAgY3MudHJhbnNwb3J0X2lzX3JlbGlhYmxl ID0gMTsKKyB9CisgCitAQCAtMzUwLDE4ICszOTcsMjQgQEAgcmVtb3RlX29wZW4gKGNvbnN0IGNo YXIgKm5hbWUpCisgI2VuZGlmIC8qIFVTRV9XSU4zMkFQSSAqLworICAgZWxzZQorICAgICB7Cist ICAgICAgaW50IHBvcnQ7CistICAgICAgc29ja2xlbl90IGxlbjsKKy0gICAgICBzdHJ1Y3Qgc29j a2FkZHJfaW4gc29ja2FkZHI7CistCistICAgICAgbGVuID0gc2l6ZW9mIChzb2NrYWRkcik7Cist ICAgICAgaWYgKGdldHNvY2tuYW1lIChsaXN0ZW5fZGVzYywKKy0JCSAgICAgICAoc3RydWN0IHNv Y2thZGRyICopICZzb2NrYWRkciwgJmxlbikgPCAwCistCSAgfHwgbGVuIDwgc2l6ZW9mIChzb2Nr YWRkcikpCisrICAgICAgY2hhciBsaXN0ZW5fcG9ydFtHREJfTklfTUFYX1BPUlRdOworKyAgICAg IHN0cnVjdCBzb2NrYWRkcl9zdG9yYWdlIHNvY2thZGRyOworKyAgICAgIHNvY2tsZW5fdCBsZW4g PSBzaXplb2YgKHNvY2thZGRyKTsKKysKKysgICAgICBpZiAoZ2V0c29ja25hbWUgKGxpc3Rlbl9k ZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwgJmxlbikgPCAwKQorIAlwZXJyb3Jf d2l0aF9uYW1lICgiQ2FuJ3QgZGV0ZXJtaW5lIHBvcnQiKTsKKy0gICAgICBwb3J0ID0gbnRvaHMg KHNvY2thZGRyLnNpbl9wb3J0KTsKKyAKKy0gICAgICBmcHJpbnRmIChzdGRlcnIsICJMaXN0ZW5p bmcgb24gcG9ydCAlZFxuIiwgcG9ydCk7CisrICAgICAgaW50IHIgPSBnZXRuYW1laW5mbyAoKHN0 cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsIGxlbiwKKysJCQkgICBOVUxMLCAwLAorKwkJCSAg IGxpc3Rlbl9wb3J0LCBzaXplb2YgKGxpc3Rlbl9wb3J0KSwKKysJCQkgICBOSV9OVU1FUklDU0VS Vik7CisrCisrICAgICAgaWYgKHIgIT0gMCkKKysJZnByaW50ZiAoc3RkZXJyLCBfKCJDYW4ndCBv YnRhaW4gcG9ydCB3aGVyZSB3ZSBhcmUgbGlzdGVuaW5nOiAlcyIpLAorKwkJIGdhaV9zdHJlcnJv ciAocikpOworKyAgICAgIGVsc2UKKysJZnByaW50ZiAoc3RkZXJyLCBfKCJMaXN0ZW5pbmcgb24g cG9ydCAlc1xuIiksIGxpc3Rlbl9wb3J0KTsKKysKKyAgICAgICBmZmx1c2ggKHN0ZGVycik7Cisg CisgICAgICAgLyogUmVnaXN0ZXIgdGhlIGV2ZW50IGxvb3AgaGFuZGxlci4gICovCitkaWZmIC0t Z2l0IGEvZ2RiL3Nlci10Y3AuYyBiL2dkYi9zZXItdGNwLmMKKy0tLSBhL2dkYi9zZXItdGNwLmMK KysrKyBiL2dkYi9zZXItdGNwLmMKK0BAIC0yNSw2ICsyNSw3IEBACisgI2luY2x1ZGUgImNsaS9j bGktZGVjb2RlLmgiCisgI2luY2x1ZGUgImNsaS9jbGktc2V0c2hvdy5oIgorICNpbmNsdWRlICJm aWxlc3R1ZmYuaCIKKysjaW5jbHVkZSAibmV0c3R1ZmYuaCIKKyAKKyAjaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CisgCitAQCAtMzksNiArNDAsNyBAQAorIAorICNpZmRlZiBVU0VfV0lOMzJBUEkKKyAj aW5jbHVkZSA8d2luc29jazIuaD4KKysjaW5jbHVkZSA8d3NwaWFwaS5oPgorICNpZm5kZWYgRVRJ TUVET1VUCisgI2RlZmluZSBFVElNRURPVVQgV1NBRVRJTUVET1VUCisgI2VuZGlmCitAQCAtODEs MTIgKzgzLDEzIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgdGNwX3JldHJ5X2xpbWl0ID0gMTU7Cisg CisgI2RlZmluZSBQT0xMX0lOVEVSVkFMIDUKKyAKKy0vKiBIZWxwZXIgZnVuY3Rpb24gdG8gd2Fp dCBhIHdoaWxlLiAgSWYgU0NCIGlzIG5vbi1udWxsLCB3YWl0IG9uIGl0cworLSAgIGZpbGUgZGVz Y3JpcHRvci4gIE90aGVyd2lzZSBqdXN0IHdhaXQgb24gYSB0aW1lb3V0LCB1cGRhdGluZyAqUE9M TFMuCistICAgUmV0dXJucyAtMSBvbiB0aW1lb3V0IG9yIGludGVycnVwdCwgb3RoZXJ3aXNlIHRo ZSB2YWx1ZSBvZiBzZWxlY3QuICAqLworKy8qIEhlbHBlciBmdW5jdGlvbiB0byB3YWl0IGEgd2hp bGUuICBJZiBTT0NLIGlzIG5vdCAtMSwgd2FpdCBvbiBpdHMKKysgICBmaWxlIGRlc2NyaXB0b3Iu ICBPdGhlcndpc2UganVzdCB3YWl0IG9uIGEgdGltZW91dCwgdXBkYXRpbmcKKysgICAqUE9MTFMu ICBSZXR1cm5zIC0xIG9uIHRpbWVvdXQgb3IgaW50ZXJydXB0LCBvdGhlcndpc2UgdGhlIHZhbHVl IG9mCisrICAgc2VsZWN0LiAgKi8KKyAKKyBzdGF0aWMgaW50Cistd2FpdF9mb3JfY29ubmVjdCAo c3RydWN0IHNlcmlhbCAqc2NiLCB1bnNpZ25lZCBpbnQgKnBvbGxzKQorK3dhaXRfZm9yX2Nvbm5l Y3QgKGludCBzb2NrLCB1bnNpZ25lZCBpbnQgKnBvbGxzKQorIHsKKyAgIHN0cnVjdCB0aW1ldmFs IHQ7CisgICBpbnQgbjsKK0BAIC0xMjAsMjQgKzEyMywyNCBAQCB3YWl0X2Zvcl9jb25uZWN0IChz dHJ1Y3Qgc2VyaWFsICpzY2IsIHVuc2lnbmVkIGludCAqcG9sbHMpCisgICAgICAgdC50dl91c2Vj ID0gMDsKKyAgICAgfQorIAorLSAgaWYgKHNjYikKKysgIGlmIChzb2NrID49IDApCisgICAgIHsK KyAgICAgICBmZF9zZXQgcnNldCwgd3NldCwgZXNldDsKKyAKKyAgICAgICBGRF9aRVJPICgmcnNl dCk7CistICAgICAgRkRfU0VUIChzY2ItPmZkLCAmcnNldCk7CisrICAgICAgRkRfU0VUIChzb2Nr LCAmcnNldCk7CisgICAgICAgd3NldCA9IHJzZXQ7CisgICAgICAgZXNldCA9IHJzZXQ7CistCSAg CisrCisgICAgICAgLyogUE9TSVggc3lzdGVtcyByZXR1cm4gY29ubmVjdGlvbiBzdWNjZXNzIG9y IGZhaWx1cmUgYnkgc2lnbmFsbGluZworIAkgd3NldC4gIFdpbmRvd3Mgc3lzdGVtcyByZXR1cm4g c3VjY2VzcyBpbiB3c2V0IGFuZCBmYWlsdXJlIGluCisgCSBlc2V0LgorLSAgICAgCisrCisgCSBX ZSBtdXN0IGNhbGwgc2VsZWN0IGhlcmUsIHJhdGhlciB0aGFuIGdkYl9zZWxlY3QsIGJlY2F1c2UK KyAJIHRoZSBzZXJpYWwgc3RydWN0dXJlIGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQgLSB0 aGUKKyAJIE1pbkdXIHNlbGVjdCB3cmFwcGVyIHdpbGwgbm90IGtub3cgdGhhdCB0aGlzIEZEIHJl ZmVycworIAkgdG8gYSBzb2NrZXQuICAqLworLSAgICAgIG4gPSBzZWxlY3QgKHNjYi0+ZmQgKyAx LCAmcnNldCwgJndzZXQsICZlc2V0LCAmdCk7CisrICAgICAgbiA9IHNlbGVjdCAoc29jayArIDEs ICZyc2V0LCAmd3NldCwgJmVzZXQsICZ0KTsKKyAgICAgfQorICAgZWxzZQorICAgICAvKiBVc2Ug Z2RiX3NlbGVjdCBoZXJlLCBzaW5jZSB3ZSBoYXZlIG5vIGZpbGUgZGVzY3JpcHRvcnMsIGFuZCBv bgorQEAgLTE1Myw4MCArMTU2LDI4IEBAIHdhaXRfZm9yX2Nvbm5lY3QgKHN0cnVjdCBzZXJpYWwg KnNjYiwgdW5zaWduZWQgaW50ICpwb2xscykKKyAgIHJldHVybiBuOworIH0KKyAKKy0vKiBPcGVu IGEgdGNwIHNvY2tldC4gICovCisrLyogVHJ5IHRvIGNvbm5lY3QgdG8gdGhlIGhvc3QgcmVwcmVz ZW50ZWQgYnkgQUlORk8uICBJZiB0aGUgY29ubmVjdGlvbgorKyAgIHN1Y2NlZWRzLCByZXR1cm4g aXRzIHNvY2tldC4gIE90aGVyd2lzZSwgcmV0dXJuIC0xIGFuZCBzZXQgRVJSTk8KKysgICBhY2Nv cmRpbmdseS4gIFBPTExTIGlzIHVzZWQgd2hlbiAnY29ubmVjdCcgcmV0dXJucyBFSU5QUk9HUkVT UywgYW5kCisrICAgd2UgbmVlZCB0byBpbnZva2UgJ3dhaXRfZm9yX2Nvbm5lY3QnIHRvIG9idGFp biB0aGUgc3RhdHVzLiAgKi8KKyAKKy1pbnQKKy1uZXRfb3BlbiAoc3RydWN0IHNlcmlhbCAqc2Ni LCBjb25zdCBjaGFyICpuYW1lKQorK3N0YXRpYyBpbnQKKyt0cnlfY29ubmVjdCAoY29uc3Qgc3Ry dWN0IGFkZHJpbmZvICphaW5mbywgdW5zaWduZWQgaW50ICpwb2xscykKKyB7CistICBjaGFyIGhv c3RuYW1lWzEwMF07CistICBjb25zdCBjaGFyICpwb3J0X3N0cjsKKy0gIGludCBuLCBwb3J0LCB0 bXA7CistICBpbnQgdXNlX3VkcDsKKy0gIHN0cnVjdCBob3N0ZW50ICpob3N0ZW50OworLSAgc3Ry dWN0IHNvY2thZGRyX2luIHNvY2thZGRyOworLSNpZmRlZiBVU0VfV0lOMzJBUEkKKy0gIHVfbG9u ZyBpb2FyZzsKKy0jZWxzZQorLSAgaW50IGlvYXJnOworLSNlbmRpZgorLSAgdW5zaWduZWQgaW50 IHBvbGxzID0gMDsKKy0KKy0gIHVzZV91ZHAgPSAwOworLSAgaWYgKHN0YXJ0c3dpdGggKG5hbWUs ICJ1ZHA6IikpCistICAgIHsKKy0gICAgICB1c2VfdWRwID0gMTsKKy0gICAgICBuYW1lID0gbmFt ZSArIDQ7CistICAgIH0KKy0gIGVsc2UgaWYgKHN0YXJ0c3dpdGggKG5hbWUsICJ0Y3A6IikpCist ICAgIG5hbWUgPSBuYW1lICsgNDsKKy0KKy0gIHBvcnRfc3RyID0gc3RyY2hyIChuYW1lLCAnOicp OworLQorLSAgaWYgKCFwb3J0X3N0cikKKy0gICAgZXJyb3IgKF8oIm5ldF9vcGVuOiBObyBjb2xv biBpbiBob3N0IG5hbWUhIikpOyAgLyogU2hvdWxkbid0IGV2ZXIKKy0JCQkJCQkgICAgICAgaGFw cGVuLiAgKi8KKy0KKy0gIHRtcCA9IHN0ZDo6bWluIChwb3J0X3N0ciAtIG5hbWUsIChwdHJkaWZm X3QpIHNpemVvZiBob3N0bmFtZSAtIDEpOworLSAgc3RybmNweSAoaG9zdG5hbWUsIG5hbWUsIHRt cCk7CS8qIERvbid0IHdhbnQgY29sb24uICAqLworLSAgaG9zdG5hbWVbdG1wXSA9ICdcMDAwJzsJ LyogVGllIG9mZiBob3N0IG5hbWUuICAqLworLSAgcG9ydCA9IGF0b2kgKHBvcnRfc3RyICsgMSk7 CistCistICAvKiBEZWZhdWx0IGhvc3RuYW1lIGlzIGxvY2FsaG9zdC4gICovCistICBpZiAoIWhv c3RuYW1lWzBdKQorLSAgICBzdHJjcHkgKGhvc3RuYW1lLCAibG9jYWxob3N0Iik7CistCistICBo b3N0ZW50ID0gZ2V0aG9zdGJ5bmFtZSAoaG9zdG5hbWUpOworLSAgaWYgKCFob3N0ZW50KQorLSAg ICB7CistICAgICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkZXJyLCAiJXM6IHVua25vd24g aG9zdFxuIiwgaG9zdG5hbWUpOworLSAgICAgIGVycm5vID0gRU5PRU5UOworLSAgICAgIHJldHVy biAtMTsKKy0gICAgfQorKyAgaW50IHNvY2sgPSBnZGJfc29ja2V0X2Nsb2V4ZWMgKGFpbmZvLT5h aV9mYW1pbHksIGFpbmZvLT5haV9zb2NrdHlwZSwKKysJCQkJIGFpbmZvLT5haV9wcm90b2NvbCk7 CisgCistICBzb2NrYWRkci5zaW5fZmFtaWx5ID0gUEZfSU5FVDsKKy0gIHNvY2thZGRyLnNpbl9w b3J0ID0gaHRvbnMgKHBvcnQpOworLSAgbWVtY3B5ICgmc29ja2FkZHIuc2luX2FkZHIuc19hZGRy LCBob3N0ZW50LT5oX2FkZHIsCistCSAgc2l6ZW9mIChzdHJ1Y3QgaW5fYWRkcikpOworLQorLSBy ZXRyeToKKy0KKy0gIGlmICh1c2VfdWRwKQorLSAgICBzY2ItPmZkID0gZ2RiX3NvY2tldF9jbG9l eGVjIChQRl9JTkVULCBTT0NLX0RHUkFNLCAwKTsKKy0gIGVsc2UKKy0gICAgc2NiLT5mZCA9IGdk Yl9zb2NrZXRfY2xvZXhlYyAoUEZfSU5FVCwgU09DS19TVFJFQU0sIDApOworLQorLSAgaWYgKHNj Yi0+ZmQgPT0gLTEpCisrICBpZiAoc29jayA8IDApCisgICAgIHJldHVybiAtMTsKKy0gIAorKwor ICAgLyogU2V0IHNvY2tldCBub25ibG9ja2luZy4gICovCistICBpb2FyZyA9IDE7CistICBpb2N0 bCAoc2NiLT5mZCwgRklPTkJJTywgJmlvYXJnKTsKKysgIGludCBpb2FyZyA9IDE7CisrCisrICBp b2N0bCAoc29jaywgRklPTkJJTywgJmlvYXJnKTsKKyAKKyAgIC8qIFVzZSBOb24tYmxvY2tpbmcg Y29ubmVjdC4gIGNvbm5lY3QoKSB3aWxsIHJldHVybiAwIGlmIGNvbm5lY3RlZAorICAgICAgYWxy ZWFkeS4gICovCistICBuID0gY29ubmVjdCAoc2NiLT5mZCwgKHN0cnVjdCBzb2NrYWRkciAqKSAm c29ja2FkZHIsIHNpemVvZiAoc29ja2FkZHIpKTsKKy0KKy0gIGlmIChuIDwgMCkKKysgIGlmIChj b25uZWN0IChzb2NrLCBhaW5mby0+YWlfYWRkciwgYWluZm8tPmFpX2FkZHJsZW4pIDwgMCkKKyAg ICAgeworICNpZmRlZiBVU0VfV0lOMzJBUEkKKyAgICAgICBpbnQgZXJyID0gV1NBR2V0TGFzdEVy cm9yKCk7CitAQCAtMjM0LDIxICsxODUsMjYgQEAgbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNj YiwgY29uc3QgY2hhciAqbmFtZSkKKyAgICAgICBpbnQgZXJyID0gZXJybm87CisgI2VuZGlmCisg CistICAgICAgLyogTWF5YmUgd2UncmUgd2FpdGluZyBmb3IgdGhlIHJlbW90ZSB0YXJnZXQgdG8g YmVjb21lIHJlYWR5IHRvCistCSBhY2NlcHQgY29ubmVjdGlvbnMuICAqLworLSAgICAgIGlmICh0 Y3BfYXV0b19yZXRyeQorKyAgICAgIC8qIElmIHdlJ3ZlIGdvdCBhICJjb25uZWN0aW9uIHJlZnVz ZWQiIGVycm9yLCBqdXN0IHJldHVybgorKwkgLTEuICBUaGUgY2FsbGVyIHdpbGwga25vdyB3aGF0 IHRvIGRvLiAgKi8KKysgICAgICBpZiAoCisgI2lmZGVmIFVTRV9XSU4zMkFQSQorLQkgICYmIGVy ciA9PSBXU0FFQ09OTlJFRlVTRUQKKysJICBlcnIgPT0gV1NBRUNPTk5SRUZVU0VECisgI2Vsc2UK Ky0JICAmJiBlcnIgPT0gRUNPTk5SRUZVU0VECisrCSAgZXJyID09IEVDT05OUkVGVVNFRAorICNl bmRpZgorLQkgICYmIHdhaXRfZm9yX2Nvbm5lY3QgKE5VTEwsICZwb2xscykgPj0gMCkKKysJICAp CisgCXsKKy0JICBjbG9zZSAoc2NiLT5mZCk7CistCSAgZ290byByZXRyeTsKKysJICBjbG9zZSAo c29jayk7CisrCSAgZXJybm8gPSBlcnI7CisrCSAgcmV0dXJuIC0xOworIAl9CisgCisgICAgICAg aWYgKAorKwkgIC8qIEFueSBvdGhlciBlcnJvciAoZXhjZXB0IEVJTlBST0dSRVNTKSB3aWxsIGJl ICJzd2FsbG93ZWQiCisrCSAgICAgaGVyZS4gIFdlIHJldHVybiB3aXRob3V0IHNwZWNpZnlpbmcg YSByZXR1cm4gdmFsdWUsIGFuZAorKwkgICAgIHNldCBlcnJubyBpZiB0aGUgY2FsbGVyIHdhbnRz IHRvIGluc3BlY3Qgd2hhdAorKwkgICAgIGhhcHBlbmVkLiAgKi8KKyAjaWZkZWYgVVNFX1dJTjMy QVBJCisgCSAgLyogVW5kZXIgV2luZG93cywgY2FsbGluZyAiY29ubmVjdCIgd2l0aCBhIG5vbi1i bG9ja2luZyBzb2NrZXQKKyAJICAgICByZXN1bHRzIGluIFdTQUVXT1VMREJMT0NLLCBub3QgV1NB RUlOUFJPR1JFU1MuICAqLworQEAgLTI1OCw2NiArMjE0LDE2NiBAQCBuZXRfb3BlbiAoc3RydWN0 IHNlcmlhbCAqc2NiLCBjb25zdCBjaGFyICpuYW1lKQorICNlbmRpZgorIAkgICkKKyAJeworKwkg IGNsb3NlIChzb2NrKTsKKyAJICBlcnJubyA9IGVycjsKKy0JICBuZXRfY2xvc2UgKHNjYik7Cisg CSAgcmV0dXJuIC0xOworIAl9CisgCisgICAgICAgLyogTG9va3MgbGlrZSB3ZSBuZWVkIHRvIHdh aXQgZm9yIHRoZSBjb25uZWN0LiAgKi8KKy0gICAgICBkbyAKKy0JeworLQkgIG4gPSB3YWl0X2Zv cl9jb25uZWN0IChzY2IsICZwb2xscyk7CistCX0gCisrICAgICAgaW50IG47CisrCisrICAgICAg ZG8KKysJbiA9IHdhaXRfZm9yX2Nvbm5lY3QgKHNvY2ssIHBvbGxzKTsKKyAgICAgICB3aGlsZSAo biA9PSAwKTsKKysKKyAgICAgICBpZiAobiA8IDApCisgCXsKKy0JICBuZXRfY2xvc2UgKHNjYik7 CisrCSAgaW50IHNhdmVkX2Vycm5vID0gZXJybm87CisrCisrCSAgLyogQSBuZWdhdGl2ZSB2YWx1 ZSBoZXJlIG1lYW5zIHRoYXQgd2UgZWl0aGVyIHRpbWVkIG91dCBvcgorKwkgICAgIGdvdCBpbnRl cnJ1cHRlZCBieSB0aGUgdXNlci4gIEp1c3QgcmV0dXJuLiAgKi8KKysJICBjbG9zZSAoc29jayk7 CisrCSAgZXJybm8gPSBzYXZlZF9lcnJubzsKKyAJICByZXR1cm4gLTE7CisgCX0KKyAgICAgfQor IAorICAgLyogR290IHNvbWV0aGluZy4gIElzIGl0IGFuIGVycm9yPyAgKi8KKy0gIHsKKy0gICAg aW50IHJlcywgZXJyOworLSAgICBzb2NrbGVuX3QgbGVuOworLQorLSAgICBsZW4gPSBzaXplb2Yg KGVycik7CistICAgIC8qIE9uIFdpbmRvd3MsIHRoZSBmb3VydGggcGFyYW1ldGVyIHRvIGdldHNv Y2tvcHQgaXMgYSAiY2hhciAqIjsKKy0gICAgICAgb24gVU5JWCBzeXN0ZW1zIGl0IGlzIGdlbmVy YWxseSAidm9pZCAqIi4gIFRoZSBjYXN0IHRvICJjaGFyICoiCistICAgICAgIGlzIE9LIGV2ZXJ5 d2hlcmUsIHNpbmNlIGluIEMrKyBhbnkgZGF0YSBwb2ludGVyIHR5cGUgY2FuIGJlCistICAgICAg IGltcGxpY2l0bHkgY29udmVydGVkIHRvICJ2b2lkICoiLiAgKi8KKy0gICAgcmVzID0gZ2V0c29j a29wdCAoc2NiLT5mZCwgU09MX1NPQ0tFVCwgU09fRVJST1IsIChjaGFyICopICZlcnIsICZsZW4p OworLSAgICBpZiAocmVzIDwgMCB8fCBlcnIpCistICAgICAgeworLQkvKiBNYXliZSB0aGUgdGFy Z2V0IHN0aWxsIGlzbid0IHJlYWR5IHRvIGFjY2VwdCB0aGUgY29ubmVjdGlvbi4gICovCistCWlm ICh0Y3BfYXV0b19yZXRyeQorKyAgaW50IGVycjsKKysgIHNvY2tsZW5fdCBsZW4gPSBzaXplb2Yg KGVycik7CisrCisrICAvKiBPbiBXaW5kb3dzLCB0aGUgZm91cnRoIHBhcmFtZXRlciB0byBnZXRz b2Nrb3B0IGlzIGEgImNoYXIgKiI7CisrICAgICBvbiBVTklYIHN5c3RlbXMgaXQgaXMgZ2VuZXJh bGx5ICJ2b2lkICoiLiAgVGhlIGNhc3QgdG8gImNoYXIgKiIKKysgICAgIGlzIE9LIGV2ZXJ5d2hl cmUsIHNpbmNlIGluIEMrKyBhbnkgZGF0YSBwb2ludGVyIHR5cGUgY2FuIGJlCisrICAgICBpbXBs aWNpdGx5IGNvbnZlcnRlZCB0byAidm9pZCAqIi4gICovCisrICBpbnQgcmV0ID0gZ2V0c29ja29w dCAoc29jaywgU09MX1NPQ0tFVCwgU09fRVJST1IsIChjaGFyICopICZlcnIsICZsZW4pOworKwor KyAgaWYgKHJldCA8IDApCisrICAgIHsKKysgICAgICBpbnQgc2F2ZWRfZXJybm8gPSBlcnJubzsK KysKKysgICAgICBjbG9zZSAoc29jayk7CisrICAgICAgZXJybm8gPSBzYXZlZF9lcnJubzsKKysg ICAgICByZXR1cm4gLTE7CisrICAgIH0KKysgIGVsc2UgaWYgKHJldCA9PSAwICYmIGVyciAhPSAw KQorKyAgICB7CisrICAgICAgY2xvc2UgKHNvY2spOworKyAgICAgIGVycm5vID0gZXJyOworKyAg ICAgIHJldHVybiAtMTsKKysgICAgfQorKworKyAgLyogVGhlIGNvbm5lY3Rpb24gc3VjY2VlZGVk LiAgUmV0dXJuIHRoZSBzb2NrZXQuICAqLworKyAgcmV0dXJuIHNvY2s7CisrfQorKworKy8qIE9w ZW4gYSB0Y3Agc29ja2V0LiAgKi8KKysKKytpbnQKKytuZXRfb3BlbiAoc3RydWN0IHNlcmlhbCAq c2NiLCBjb25zdCBjaGFyICpuYW1lKQorK3sKKysgIHN0cnVjdCBhZGRyaW5mbyBoaW50OworKyAg c3RydWN0IGFkZHJpbmZvICphaW5mbzsKKysKKysgIG1lbXNldCAoJmhpbnQsIDAsIHNpemVvZiAo aGludCkpOworKyAgLyogQXNzdW1lIG5vIHByZWZpeCB3aWxsIGJlIHBhc3NlZCwgdGhlcmVmb3Jl IHdlIHNob3VsZCB1c2UKKysgICAgIEFGX1VOU1BFQy4gICovCisrICBoaW50LmFpX2ZhbWlseSA9 IEFGX1VOU1BFQzsKKysgIGhpbnQuYWlfc29ja3R5cGUgPSBTT0NLX1NUUkVBTTsKKysgIGhpbnQu YWlfcHJvdG9jb2wgPSBJUFBST1RPX1RDUDsKKysKKysgIHBhcnNlZF9jb25uZWN0aW9uX3NwZWMg cGFyc2VkID0gcGFyc2VfY29ubmVjdGlvbl9zcGVjIChuYW1lLCAmaGludCk7CisrCisrICBpZiAo cGFyc2VkLnBvcnRfc3RyLmVtcHR5ICgpKQorKyAgICBlcnJvciAoXygiTWlzc2luZyBwb3J0IG9u IGhvc3RuYW1lICclcyciKSwgbmFtZSk7CisrCisrICBpbnQgciA9IGdldGFkZHJpbmZvIChwYXJz ZWQuaG9zdF9zdHIuY19zdHIgKCksCisrCQkgICAgICAgcGFyc2VkLnBvcnRfc3RyLmNfc3RyICgp LAorKwkJICAgICAgICZoaW50LCAmYWluZm8pOworKworKyAgaWYgKHIgIT0gMCkKKysgICAgewor KyAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGVyciwgXygiJXM6IGNhbm5vdCByZXNv bHZlIG5hbWU6ICVzXG4iKSwKKysJCQkgIG5hbWUsIGdhaV9zdHJlcnJvciAocikpOworKyAgICAg IGVycm5vID0gRU5PRU5UOworKyAgICAgIHJldHVybiAtMTsKKysgICAgfQorKworKyAgc2NvcGVk X2ZyZWVfYWRkcmluZm8gZnJlZV9haW5mbyAoYWluZm8pOworKworKyAgLyogRmxhZyB0byBpbmRp Y2F0ZSB3aGV0aGVyIHdlJ3ZlIGdvdCBhIGNvbm5lY3Rpb24gcmVmdXNlZC4gIEl0IHdpbGwKKysg ICAgIGJlIHRydWUgaWYgYW55IG9mIHRoZSBjb25uZWN0aW9ucyB0cmllZCB3YXMgcmVmdXNlZC4g ICovCisrICBib29sIGdvdF9jb25ucmVmdXNlZDsKKysgIC8qIElmIGEgY29ubmVjdGlvbiBzdWNj ZWVlZHMsIFNVQ0NFU1NfQUlORk8gd2lsbCBwb2ludCB0byB0aGUKKysgICAgICdzdHJ1Y3QgYWRk cmluZm8nIHRoYXQgc3VjY2VlZC4gICovCisrICBzdHJ1Y3QgYWRkcmluZm8gKnN1Y2Nlc3NfYWlu Zm8gPSBOVUxMOworKyAgdW5zaWduZWQgaW50IHBvbGxzID0gMDsKKysKKysgIC8qIEFzc3VtZSB0 aGUgd29yc3QuICAqLworKyAgc2NiLT5mZCA9IC0xOworKworKyAgZG8KKysgICAgeworKyAgICAg IGdvdF9jb25ucmVmdXNlZCA9IGZhbHNlOworKworKyAgICAgIGZvciAoc3RydWN0IGFkZHJpbmZv ICppdGVyID0gYWluZm87IGl0ZXIgIT0gTlVMTDsgaXRlciA9IGl0ZXItPmFpX25leHQpCisrCXsK KysJICAvKiBJdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgcG9zc2libGUgYWRkcmVzc2VzIHRvIGNv bm5lY3QKKysJICAgICB0by4gIEZvciBlYWNoLCB3ZSdsbCB0cnkgdG8gY29ubmVjdCBhbmQgc2Vl IGlmIGl0CisrCSAgICAgc3VjY2VlZHMuICAqLworKwkgIGludCBzb2NrID0gdHJ5X2Nvbm5lY3Qg KGl0ZXIsICZwb2xscyk7CisrCisrCSAgaWYgKHNvY2sgPj0gMCkKKysJICAgIHsKKysJICAgICAg LyogV2UndmUgZ290dGVuIGEgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uLiAgU2F2ZSBpdHMKKysJCSAn c3RydWN0IGFkZHJpbmZvJywgdGhlIHNvY2tldCwgYW5kIGJyZWFrLiAgKi8KKysJICAgICAgc3Vj Y2Vzc19haW5mbyA9IGl0ZXI7CisrCSAgICAgIHNjYi0+ZmQgPSBzb2NrOworKwkgICAgICBicmVh azsKKysJICAgIH0KKysJICBlbHNlIGlmICgKKyAjaWZkZWYgVVNFX1dJTjMyQVBJCistCSAgICAm JiBlcnIgPT0gV1NBRUNPTk5SRUZVU0VECisrCSAgZXJybm8gPT0gV1NBRUNPTk5SRUZVU0VECisg I2Vsc2UKKy0JICAgICYmIGVyciA9PSBFQ09OTlJFRlVTRUQKKysJICBlcnJubyA9PSBFQ09OTlJF RlVTRUQKKyAjZW5kaWYKKy0JICAgICYmIHdhaXRfZm9yX2Nvbm5lY3QgKE5VTEwsICZwb2xscykg Pj0gMCkKKy0JICB7CistCSAgICBjbG9zZSAoc2NiLT5mZCk7CistCSAgICBnb3RvIHJldHJ5Owor LQkgIH0KKy0JaWYgKGVycikKKy0JICBlcnJubyA9IGVycjsKKy0JbmV0X2Nsb3NlIChzY2IpOwor LQlyZXR1cm4gLTE7CistICAgICAgfQorLSAgfSAKKysJCSAgICkKKysJICAgIGdvdF9jb25ucmVm dXNlZCA9IHRydWU7CisrCX0KKysgICAgfQorKyAgLyogSnVzdCByZXRyeSBpZjoKKysKKysgICAg IC0gdGNwX2F1dG9fcmV0cnkgaXMgdHJ1ZSwgYW5kCisrICAgICAtIFdlIGhhdmVuJ3QgZ290dGVu IGEgY29ubmVjdGlvbiB5ZXQsIGFuZAorKyAgICAgLSBBbnkgb2Ygb3VyIGNvbm5lY3Rpb24gYXR0 ZW1wdHMgcmV0dXJuZWQgd2l0aCBFQ09OTlJFRlVTRUQsIGFuZAorKyAgICAgLSB3YWl0X2Zvcl9j b25uZWN0IHNpZ25hbHMgdGhhdCB3ZSBjYW4ga2VlcCBnb2luZy4gICovCisrICB3aGlsZSAodGNw X2F1dG9fcmV0cnkKKysJICYmIHN1Y2Nlc3NfYWluZm8gPT0gTlVMTAorKwkgJiYgZ290X2Nvbm5y ZWZ1c2VkCisrCSAmJiB3YWl0X2Zvcl9jb25uZWN0ICgtMSwgJnBvbGxzKSA+PSAwKTsKKysKKysg IGlmIChzdWNjZXNzX2FpbmZvID09IE5VTEwpCisrICAgIHsKKysgICAgICBuZXRfY2xvc2UgKHNj Yik7CisrICAgICAgcmV0dXJuIC0xOworKyAgICB9CisgCisgICAvKiBUdXJuIG9mZiBub25ibG9j a2luZy4gICovCistICBpb2FyZyA9IDA7CisrI2lmZGVmIFVTRV9XSU4zMkFQSQorKyAgdV9sb25n IGlvYXJnID0gMDsKKysjZWxzZQorKyAgaW50IGlvYXJnID0gMDsKKysjZW5kaWYKKysKKyAgIGlv Y3RsIChzY2ItPmZkLCBGSU9OQklPLCAmaW9hcmcpOworIAorLSAgaWYgKHVzZV91ZHAgPT0gMCkK KysgIGlmIChzdWNjZXNzX2FpbmZvLT5haV9zb2NrdHlwZSA9PSBJUFBST1RPX1RDUCkKKyAgICAg eworICAgICAgIC8qIERpc2FibGUgTmFnbGUgYWxnb3JpdGhtLiAgTmVlZGVkIGluIHNvbWUgY2Fz ZXMuICAqLworLSAgICAgIHRtcCA9IDE7CisrICAgICAgaW50IHRtcCA9IDE7CisrCisgICAgICAg c2V0c29ja29wdCAoc2NiLT5mZCwgSVBQUk9UT19UQ1AsIFRDUF9OT0RFTEFZLAorLQkJICAoY2hh ciAqKSZ0bXAsIHNpemVvZiAodG1wKSk7CisrCQkgIChjaGFyICopICZ0bXAsIHNpemVvZiAodG1w KSk7CisgICAgIH0KKyAKKyAjaWZkZWYgU0lHUElQRQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvQ2hhbmdlTG9nIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKy0tLSBhL2dkYi90ZXN0c3Vp dGUvQ2hhbmdlTG9nCisrKysgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworQEAgLTEsMyArMSwy MyBAQAorKzIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhh dC5jb20+CisrCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ CisrCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgorKwkgICAgVHN1dG9t dSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgorKworKwkqIFJFQURNRSAoVGVzdHN1aXRlIFBh cmFtZXRlcnMpOiBNZW50aW9uIG5ldyAnR0RCX1RFU1RfU09DS0VUSE9TVCcKKysJcGFyYW1ldGVy LgorKwkqIGJvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cDogRG8gbm90IHNldCAn c29ja2V0aG9zdCcKKysJYnkgZGVmYXVsdC4KKysJKiBib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5l eHA6IExpa2V3aXNlLgorKwkqIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4 cDogSW1wcm92ZSByZWdleHAgdXNlZAorKwlmb3IgZGV0ZWN0aW5nIHdoZW4gYSByZW1vdGUgZGVi dWdnaW5nIGNvbm5lY3Rpb24gc3VjY2VlZHMuCisrCSogZ2RiLnNlcnZlci9zZXJ2ZXItY29ubmVj dC5leHA6IE5ldyBmaWxlLgorKwkqIGxpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgKGdkYnNlcnZl cl9kZWZhdWx0X2dldF9jb21tX3BvcnQpOgorKwlEbyBub3QgcHJlZml4IHRoZSBwb3J0IG51bWJl ciB3aXRoICI6Ii4KKysJKGdkYnNlcnZlcl9zdGFydCk6IE5ldyBnbG9iYWwgR0RCX1RFU1RfU09D S0VUSE9TVC4gIEltcGxlbWVudAorKwlzdXBwb3J0IGZvciBkZXRlY3RpbmcgYW5kIHVzaW5nIGl0 LiAgQWRkICckZGVidWdob3N0X2dkYnNlcnZlcicKKysJdG8gdGhlIGxpc3Qgb2YgYXJndW1lbnRz IHVzZWQgdG8gc3RhcnQgZ2Ric2VydmVyLiAgSGFuZGxlIGNhc2UKKysJd2hlbiBnZGJzZXJ2ZXIg Y2Fubm90IHJlc29sdmUgYSBuZXR3b3JrIG5hbWUuCisrCisgMjAxOC0wNy0xMSAgU2VyZ2lvIER1 cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKyAKKyAJUFIgYysrLzIzMzczCitk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9SRUFETUUgYi9nZGIvdGVzdHN1aXRlL1JFQURNRQor LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9SRUFETUUKKysrKyBiL2dkYi90ZXN0c3VpdGUvUkVBRE1FCitA QCAtMjU5LDYgKzI1OSwyMCBAQCBUaGlzIG1ha2UgKG5vdCBydW50ZXN0KSB2YXJpYWJsZSBpcyB1 c2VkIHRvIHNwZWNpZnkgd2hldGhlciB0aGUKKyB0ZXN0c3VpdGUgcHJlbG9hZHMgdGhlIHJlYWQx LnNvIGxpYnJhcnkgaW50byBleHBlY3QuICBBbnkgbm9uLWVtcHR5CisgdmFsdWUgbWVhbnMgdHJ1 ZS4gIFNlZSAiUmFjZSBkZXRlY3Rpb24iIGJlbG93LgorIAorK0dEQl9URVNUX1NPQ0tFVEhPU1QK KysKKytUaGlzIHZhcmlhYmxlIGNhbiBwcm92aWRlIHRoZSBob3N0bmFtZS9hZGRyZXNzIHRoYXQg c2hvdWxkIGJlIHVzZWQKKyt3aGVuIHBlcmZvcm1pbmcgR0RCc2VydmVyLXJlbGF0ZWQgdGVzdHMu ICBUaGlzIGlzIHVzZWZ1bCBpbiBzb21lCisrc2l0dWF0aW9ucywgZS5nLiwgd2hlbiB5b3Ugd2Fu dCB0byB0ZXN0IHRoZSBJUHY2IGNvbm5lY3Rpdml0eSBvZiBHREIKKythbmQgR0RCc2VydmVyLCBv ciB3aGVuIHVzaW5nIGEgZGlmZmVyZW50IGhvc3RuYW1lL2FkZHJlc3MgaXMgbmVlZGVkLgorK0Zv ciBleGFtcGxlLCB0byBtYWtlIEdEQiBhbmQgR0RCc2VydmVyIHVzZSBJUHY2LW9ubHkgY29ubmVj dGlvbnMsIHlvdQorK2NhbiBkbzoKKysKKysJbWFrZSBjaGVjayBURVNUUz0iZ2RiLnNlcnZlci8q LmV4cCIgUlVOVEVTVEZMQUdTPSdHREJfVEVTVF9TT0NLRVRIT1NUPXRjcDY6Wzo6MV0nCisrCisr Tm90ZSB0aGF0IG9ubHkgYSBob3N0bmFtZS9hZGRyZXNzIGNhbiBiZSBwcm92aWRlZCwgd2l0aG91 dCBhIHBvcnQKKytudW1iZXIuCisrCisgUmFjZSBkZXRlY3Rpb24KKyAqKioqKioqKioqKioqKgor IAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJz ZXJ2ZXIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZl ci5leHAKKy0tLSBhL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2 ZXIuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2Vy dmVyLmV4cAorQEAgLTI0LDggKzI0LDYgQEAgbG9hZF9nZW5lcmljX2NvbmZpZyAiZXh0ZW5kZWQt Z2Ric2VydmVyIgorIGxvYWRfYm9hcmRfZGVzY3JpcHRpb24gImdkYnNlcnZlci1iYXNlIgorIGxv YWRfYm9hcmRfZGVzY3JpcHRpb24gImxvY2FsLWJvYXJkIgorIAorLXNldF9ib2FyZF9pbmZvIHNv Y2tldGhvc3QgImxvY2FsaG9zdDoiCistCisgIyBXZSB3aWxsIGJlIHVzaW5nIHRoZSBleHRlbmRl ZCBHREIgcmVtb3RlIHByb3RvY29sLgorIHNldF9ib2FyZF9pbmZvIGdkYl9wcm90b2NvbCAiZXh0 ZW5kZWQtcmVtb3RlIgorIAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2 ZS1nZGJzZXJ2ZXIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWdkYnNlcnZlci5l eHAKKy0tLSBhL2dkYi90ZXN0c3VpdGUvYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwCisrKysg Yi9nZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cAorQEAgLTMwLDcgKzMw LDYgQEAgc2V0X2JvYXJkX2luZm8gZ2RiLGRvX3JlbG9hZF9vbl9ydW4gMQorICMgVGhlcmUncyBu byBzdXBwb3J0IGZvciBhcmd1bWVudC1wYXNzaW5nICh5ZXQpLgorIHNldF9ib2FyZF9pbmZvIG5v YXJncyAxCisgCistc2V0X2JvYXJkX2luZm8gc29ja2V0aG9zdCAibG9jYWxob3N0OiIKKyBzZXRf Ym9hcmRfaW5mbyB1c2VfZ2RiX3N0dWIgMQorIHNldF9ib2FyZF9pbmZvIGV4aXRfaXNfcmVsaWFi bGUgMQorIAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9ydW4td2l0aG91 dC1sb2NhbC1iaW5hcnkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3J1bi13aXRob3V0 LWxvY2FsLWJpbmFyeS5leHAKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9ydW4td2l0 aG91dC1sb2NhbC1iaW5hcnkuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvcnVu LXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cAorQEAgLTUzLDcgKzUzLDcgQEAgc2F2ZV92YXJzIHsg R0RCRkxBR1MgfSB7CisgICAgIHNldCB1c2VfZ2RiX3N0dWIgMAorIAorICAgICBnZGJfdGVzdCAi dGFyZ2V0ICR7Z2Ric2VydmVyX3Byb3RvY29sfSAke2dkYnNlcnZlcl9nZGJwb3J0fSIgXAorLQki UmVtb3RlIGRlYnVnZ2luZyB1c2luZyAkZ2Ric2VydmVyX2dkYnBvcnQiIFwKKysJIlJlbW90ZSBk ZWJ1Z2dpbmcgdXNpbmcgW3N0cmluZ190b19yZWdleHAgJGdkYnNlcnZlcl9nZGJwb3J0XSIgXAor IAkiY29ubmVjdCB0byBnZGJzZXJ2ZXIiCisgCisgICAgIGdkYl90ZXN0ICJydW4iIFwKK2RpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3NlcnZlci1jb25uZWN0LmV4cAorbmV3IGZpbGUgbW9kZSAx MDA2NDQKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9zZXJ2 ZXItY29ubmVjdC5leHAKK0BAIC0wLDAgKzEsMTExIEBACisrIyBUaGlzIHRlc3RjYXNlIGlzIHBh cnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgorKyMKKysjIENvcHlyaWdodCAyMDE4IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisrCisrIyBUZXN0IG11bHRpcGxlIHR5cGVzIG9mIGNvbm5lY3Rpb24gKElQdjQsIElQdjYs IFRDUCwgVURQKSBhbmQgbWFrZQorKyMgc3VyZSBib3RoIGdkYnNlcnZlciBhbmQgR0RCIHdvcmsu CisrCisrbG9hZF9saWIgZ2Ric2VydmVyLXN1cHBvcnQuZXhwCisrCisrc3RhbmRhcmRfdGVzdGZp bGUgbm9ybWFsLmMKKysKKytpZiB7W3NraXBfZ2Ric2VydmVyX3Rlc3RzXX0geworKyAgICByZXR1 cm4gMAorK30KKysKKysjIFdlIHdhbnQgdG8gaGF2ZSBjb250cm9sIG92ZXIgd2hlcmUgd2Ugc3Rh cnQgZ2Ric2VydmVyLgorK2lmIHsgW2lzX3JlbW90ZSB0YXJnZXRdIH0geworKyAgICByZXR1cm4g MAorK30KKysKKytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIg JHRlc3RmaWxlICRzcmNmaWxlIGRlYnVnXSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMg TWFrZSBzdXJlIHdlJ3JlIGRpc2Nvbm5lY3RlZCwgaW4gY2FzZSB3ZSdyZSB0ZXN0aW5nIHdpdGgg YW4KKysjIGV4dGVuZGVkLXJlbW90ZSBib2FyZCwgdGhlcmVmb3JlIGFscmVhZHkgY29ubmVjdGVk LgorK2dkYl90ZXN0ICJkaXNjb25uZWN0IiAiLioiCisrCisrc2V0IHRhcmdldF9leGVjIFtnZGJz ZXJ2ZXJfZG93bmxvYWRfY3VycmVudF9wcm9nXQorKworKyMgQW4gYXJyYXkgY29udGFpbmluZyB0 aGUgdGVzdCBpbnN0cnVjdGlvbnMgZm9yIGVhY2ggc2NlbmFyaW8uICBUaGUKKysjIGRlc2NyaXB0 aW9uIG9mIGVhY2ggZmllbGQgaXMgYXMgZm9sbG93czoKKysjCisrIyAtIFRoZSBjb25uZWN0aW9u IHNwZWNpZmljYXRpb24gdG8gYmUgdXNlZCB3aGVuIHN0YXJ0aW5nCisrIyAgIGdkYnNlcnZlci9H REIuICBUaGlzIHN0cmluZyB3aWxsIGJlIHVzZWQgdG8gc2V0IHRoZQorKyMgICBHREJfVEVTVF9T T0NLRVRIT1NUIHdoZW4gY2FsbGluZyBnZGJzZXJ2ZXJfc3RhcnQuCisrIworKyMgLSBBIGZsYWcg aW5kaWNhdGluZyB3aGV0aGVyIGdkYnNlcnZlciBzaG91bGQgZmFpbCB3aGVuIHdlIGF0dGVtcHQg dG8KKysjICAgc3RhcnQgaXQuICBVc2VmdWwgd2hlbiB0ZXN0aW5nIGVycm9uZW91cyBjb25uZWN0 aW9uIHNwZWNzIHN1Y2ggYXMKKysjICAgInRjcDg6Ii4KKysjCisrIyAtIFRoZSBwcmVmaXggdGhh dCBzaG91bGQgYmUgcHJlcGVuZGVkIHRvIHRoZSB0ZXN0IG1lc3NhZ2VzLgorK3NldCB0ZXN0X3Bh cmFtcyBcCisrICAgIHsgXAorKwkgIHsgInRjcDQ6MTI3LjAuMC4xIiAwICJ0Y3A0IiB9IFwKKysJ ICB7ICJ0Y3A2Ojo6MSIgICAgICAgMCAidGNwNiIgfSBcCisrCSAgeyAidGNwNjpbOjoxXSIgICAg IDAgInRjcDYtd2l0aC1icmFja2V0cyIgfSBcCisrCSAgeyAidGNwOmxvY2FsaG9zdCIgIDAgInRj cCIgfSBcCisrCSAgeyAidWRwNDoxMjcuMC4wLjEiIDAgInVkcDQiIH0gXAorKwkgIHsgInVkcDY6 OjoxIiAgICAgICAwICJ1ZHA2IiB9IFwKKysJICB7ICJ1ZHA2Ols6OjFdIiAgICAgMCAidWRwNi13 aXRoLWJyYWNrZXRzIiB9IFwKKysJICB7ICJ0Y3A4OjEyMyIgICAgICAgMSAidGNwOCIgfSBcCisr CSAgeyAidWRwMTIzOjo6IiAgICAgIDEgInVkcDEyMyIgfSBcCisrCSAgeyAiZ2FyYmFnZToxMjM0 IiAgIDEgImdhcmJhZ2U6MTIzNCIgfSBcCisrICAgIH0KKysKKysjIFRoZSBiZXN0IHdheSB0byB0 ZXN0IGRpZmZlcmVudCB0eXBlcyBvZiBjb25uZWN0aW9ucyBpcyB0byBzZXQgdGhlCisrIyBHREJf VEVTVF9TT0NLRVRIT1NUIHZhcmlhYmxlIGFjY29yZGluZ2x5LgorK3NhdmVfdmFycyB7IEdEQl9U RVNUX1NPQ0tFVEhPU1QgfSB7CisrICAgIGZvcmVhY2ggbGluZSAkdGVzdF9wYXJhbXMgeworKwlz ZXQgc29ja2hvc3QgW2xpbmRleCAkbGluZSAwXQorKwlzZXQgZ2Ric2VydmVyX3Nob3VsZF9mYWls IFtsaW5kZXggJGxpbmUgMV0KKysJc2V0IHByZWZpeCBbbGluZGV4ICRsaW5lIDJdCisrCisrCXdp dGhfdGVzdF9wcmVmaXggJHByZWZpeCB7CisrCSAgICBzZXQgR0RCX1RFU1RfU09DS0VUSE9TVCAk c29ja2hvc3QKKysJICAgIHNldCB0ZXN0ICJzdGFydCBnZGJzZXJ2ZXIiCisrCisrCSAgICAjIFRy eSB0byBzdGFydCBnZGJzZXJ2ZXIuCisrCSAgICBzZXQgY2F0Y2hyZXMgW2NhdGNoIHtzZXQgcmVz IFtnZGJzZXJ2ZXJfc3RhcnQgIiIgJHRhcmdldF9leGVjXX0gZXJybXNnXQorKworKwkgICAgaWYg eyAkY2F0Y2hyZXMgIT0gMCB9IHsKKysJCWlmIHsgJGdkYnNlcnZlcl9zaG91bGRfZmFpbCB9IHsK KysJCSAgICBwYXNzICIkdGVzdDogZ2Ric2VydmVyIGZhaWxlZCBhcyBleHBlY3RlZCIKKysJCX0g ZWxzZSB7CisrCQkgICAgZmFpbCAiJHRlc3Q6ICRlcnJtc2ciCisrCQl9CisrCQljb250aW51ZQor KwkgICAgfSBlbHNlIHsKKysJCWlmIHsgJGdkYnNlcnZlcl9zaG91bGRfZmFpbCB9IHsKKysJCSAg ICBmYWlsICIkdGVzdDogZ2Ric2VydmVyIHNob3VsZCBmYWlsIGJ1dCBkaWQgbm90IgorKwkJfSBl bHNlIHsKKysJCSAgICBwYXNzICIkdGVzdCIKKysJCX0KKysJICAgIH0KKysKKysJICAgIHNldCBn ZGJzZXJ2ZXJfcHJvdG9jb2wgW2xpbmRleCAkcmVzIDBdCisrCSAgICBzZXQgZ2Ric2VydmVyX2dk YnBvcnQgW2xpbmRleCAkcmVzIDFdCisrCSAgICBzZXQgdGVzdCAiY29ubmVjdCB0byBnZGJzZXJ2 ZXIgdXNpbmcgJHNvY2tob3N0IgorKworKwkgICAgaWYgeyBbZ2RiX3RhcmdldF9jbWQgJGdkYnNl cnZlcl9wcm90b2NvbCAkZ2Ric2VydmVyX2dkYnBvcnRdID09IDAgfSB7CisrCQlwYXNzICR0ZXN0 CisrCSAgICB9IGVsc2UgeworKwkJZmFpbCAkdGVzdAorKwkgICAgfQorKwl9CisrICAgIH0KKyt9 CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCistLS0gYS9nZGIvdGVzdHN1 aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvbGliL2dk YnNlcnZlci1zdXBwb3J0LmV4cAorQEAgLTIxMSw3ICsyMTEsNyBAQCBwcm9jIGdkYnNlcnZlcl9k ZWZhdWx0X2dldF9yZW1vdGVfYWRkcmVzcyB7IGhvc3QgcG9ydCB9IHsKKyAjIERlZmF1bHQgcm91 dGluZSB0byBjb21wdXRlIHRoZSAiY29tbSIgYXJndW1lbnQgZm9yIGdkYnNlcnZlci4KKyAKKyBw cm9jIGdkYnNlcnZlcl9kZWZhdWx0X2dldF9jb21tX3BvcnQgeyBwb3J0IH0geworLSAgICByZXR1 cm4gIjokcG9ydCIKKysgICAgcmV0dXJuICIkcG9ydCIKKyB9CisgCisgIyBTdGFydCBhIGdkYnNl cnZlciBwcm9jZXNzIHdpdGggaW5pdGlhbCBPUFRJT05TIGFuZCB0cmFpbGluZyBBUkdVTUVOVFMu CitAQCAtMjIxLDYgKzIyMSw3IEBAIHByb2MgZ2Ric2VydmVyX2RlZmF1bHRfZ2V0X2NvbW1fcG9y dCB7IHBvcnQgfSB7CisgCisgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50 cyB9IHsKKyAgICAgZ2xvYmFsIHBvcnRudW0KKysgICAgZ2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhP U1QKKyAKKyAgICAgIyBQb3J0IGlkIC0tIGVpdGhlciBzcGVjaWZpZWQgaW4gYmFzZWJvYXJkIGZp bGUsIG9yIG1hbmFnZWQgaGVyZS4KKyAgICAgaWYgW3RhcmdldF9pbmZvIGV4aXN0cyBnZGIsc29j a2V0cG9ydF0geworQEAgLTIzMSwxMCArMjMyLDIyIEBAIHByb2MgZ2Ric2VydmVyX3N0YXJ0IHsg b3B0aW9ucyBhcmd1bWVudHMgfSB7CisgICAgIH0KKyAKKyAgICAgIyBFeHRyYWN0IHRoZSBsb2Nh bCBhbmQgcmVtb3RlIGhvc3QgaWRzIGZyb20gdGhlIHRhcmdldCBib2FyZCBzdHJ1Y3QuCistICAg IGlmIFt0YXJnZXRfaW5mbyBleGlzdHMgc29ja2V0aG9zdF0geworKyAgICBpZiB7IFtpbmZvIGV4 aXN0cyBHREJfVEVTVF9TT0NLRVRIT1NUXSB9IHsKKysJIyBUaGUgdXNlciBpcyBub3Qgc3VwcG9z ZWQgdG8gcHJvdmlkZSBhIHBvcnQgbnVtYmVyLCBqdXN0IGEKKysJIyBob3N0bmFtZS9hZGRyZXNz LCB0aGVyZWZvcmUgd2UgYWRkIHRoZSB0cmFpbGluZyAiOiIgaGVyZS4KKysJc2V0IGRlYnVnaG9z dCAiJHtHREJfVEVTVF9TT0NLRVRIT1NUfToiCisrCSMgRXNjYXBlIG9wZW4gYW5kIGNsb3NlIHNx dWFyZSBicmFja2V0cy4KKysJc2V0IGRlYnVnaG9zdF90bXAgW3N0cmluZyBtYXAgeyBbIFxcWyBd IFxcXSB9ICRkZWJ1Z2hvc3RdCisrCSMgV2UgbmVlZCBhICJnZGJzZXJ2ZXIiIHZlcnNpb24gb2Yg dGhlIGRlYnVnaG9zdCwgd2hpY2ggd2lsbAorKwkjIGhhdmUgdGhlIHBvc3NpYmxlIGNvbm5lY3Rp b24gcHJlZml4IHN0cmlwcGVkLiAgVGhpcyBpcworKwkjIGJlY2F1c2UgZ2Ric2VydmVyIGN1cnJl bnRseSBkb2Vzbid0IHJlY29nbml6ZSB0aGUgcHJlZml4ZXMuCisrCXJlZ3N1YiAtYWxsICJeXCh0 Y3A6fHVkcDp8dGNwNDp8dWRwNDp8dGNwNjp8dWRwNjpcKSIgJGRlYnVnaG9zdF90bXAgIiIgZGVi dWdob3N0X2dkYnNlcnZlcgorKyAgICB9IGVsc2VpZiBbdGFyZ2V0X2luZm8gZXhpc3RzIHNvY2tl dGhvc3RdIHsKKyAJc2V0IGRlYnVnaG9zdCBbdGFyZ2V0X2luZm8gc29ja2V0aG9zdF0KKysJc2V0 IGRlYnVnaG9zdF9nZGJzZXJ2ZXIgJGRlYnVnaG9zdAorICAgICB9IGVsc2UgeworIAlzZXQgZGVi dWdob3N0ICJsb2NhbGhvc3Q6IgorKwlzZXQgZGVidWdob3N0X2dkYnNlcnZlciAkZGVidWdob3N0 CisgICAgIH0KKyAKKyAgICAgIyBTb21lIGJvYXJkcyB1c2UgYSBkaWZmZXJlbnQgdmFsdWUgZm9y IHRoZSBwb3J0IHRoYXQgaXMgcGFzc2VkIHRvCitAQCAtMjc3LDggKzI5MCwxNCBAQCBwcm9jIGdk YnNlcnZlcl9zdGFydCB7IG9wdGlvbnMgYXJndW1lbnRzIH0geworIAlpZiB7ICRvcHRpb25zICE9 ICIiIH0geworIAkgICAgYXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgJG9wdGlvbnMiCisgCX0K KysJaWYgeyAkZGVidWdob3N0X2dkYnNlcnZlciAhPSAiIiB9IHsKKysJICAgIGFwcGVuZCBnZGJz ZXJ2ZXJfY29tbWFuZCAiICRkZWJ1Z2hvc3RfZ2Ric2VydmVyIgorKwl9CisgCWlmIHsgJHBvcnRu dW0gIT0gIiIgfSB7CistCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiBbJGdldF9jb21t X3BvcnQgJHBvcnRudW1dIgorKwkgICAgaWYgeyAkZGVidWdob3N0X2dkYnNlcnZlciA9PSAiIiB9 IHsKKysJCWFwcGVuZCBnZGJzZXJ2ZXJfY29tbWFuZCAiICIKKysJICAgIH0KKysJICAgIGFwcGVu ZCBnZGJzZXJ2ZXJfY29tbWFuZCAiWyRnZXRfY29tbV9wb3J0ICRwb3J0bnVtXSIKKyAJfQorIAlp ZiB7ICRhcmd1bWVudHMgIT0gIiIgfSB7CisgCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQg IiAkYXJndW1lbnRzIgorQEAgLTMwNyw2ICszMjYsOSBAQCBwcm9jIGdkYnNlcnZlcl9zdGFydCB7 IG9wdGlvbnMgYXJndW1lbnRzIH0geworIAkJICAgIGNvbnRpbnVlCisgCQl9CisgCSAgICB9Cisr CSAgICAtcmUgIi4qOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiBOYW1lIG9yIHNlcnZpY2Ugbm90IGtu b3duXHJcbiIgeworKwkJZXJyb3IgImdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBuYW1lLiIKKysJ ICAgIH0KKyAJICAgIHRpbWVvdXQgeworIAkJZXJyb3IgIlRpbWVvdXQgd2FpdGluZyBmb3IgZ2Ri c2VydmVyIHJlc3BvbnNlLiIKKyAJICAgIH0KK2RpZmYgLS1naXQgYS9nZGIvdW5pdHRlc3RzL3Bh cnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYyBiL2dkYi91bml0dGVzdHMvcGFyc2UtY29u bmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5jCituZXcgZmlsZSBtb2RlIDEwMDY0NAorLS0tIC9kZXYv bnVsbAorKysrIGIvZ2RiL3VuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3Rz LmMKK0BAIC0wLDAgKzEsMjQ5IEBACisrLyogU2VsZiB0ZXN0cyBmb3IgcGFyc2luZyBjb25uZWN0 aW9uIHNwZWNzIGZvciBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IChD KSAyMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAg IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovCisrCisrI2luY2x1ZGUgImRlZnMuaCIKKysjaW5jbHVkZSAic2VsZnRlc3QuaCIKKysjaW5j bHVkZSAiY29tbW9uL25ldHN0dWZmLmgiCisrI2luY2x1ZGUgImRpYWdub3N0aWNzLmgiCisrI2lm ZGVmIFVTRV9XSU4zMkFQSQorKyNpbmNsdWRlIDx3aW5zb2NrMi5oPgorKyNpbmNsdWRlIDx3c3Bp YXBpLmg+CisrI2Vsc2UKKysjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgorKyNpbmNsdWRlIDxhcnBh L2luZXQuaD4KKysjaW5jbHVkZSA8bmV0ZGIuaD4KKysjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgor KyNpbmNsdWRlIDxuZXRpbmV0L3RjcC5oPgorKyNlbmRpZgorKworK25hbWVzcGFjZSBzZWxmdGVz dHMgeworK25hbWVzcGFjZSBwYXJzZV9jb25uZWN0aW9uX3NwZWNfdGVzdHMgeworKworKy8qIEF1 eGlsaWFyeSBzdHJ1Y3QgdGhhdCBob2xkcyBpbmZvIGFib3V0IGEgc3BlY2lmaWMgdGVzdCBmb3Ig YQorKyAgIGNvbm5lY3Rpb24gc3BlYy4gICovCisrCisrc3RydWN0IHBhcnNlX2Nvbm5fdGVzdAor K3sKKysgIC8qIFRoZSBjb25uZWN0aW9uIHNwZWMuICAqLworKyAgY29uc3QgY2hhciAqY29ubnNw ZWM7CisrCisrICAvKiBFeHBlY3RlZCByZXN1bHQgZnJvbSAncGFyc2VfY29ubmVjdGlvbl9zcGVj Jy4gICovCisrICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIGV4cGVjdGVkX3Jlc3VsdDsKKysKKysg IC8qIFRydWUgaWYgdGhpcyB0ZXN0IHNob3VsZCBmYWlsLCBmYWxzZSBvdGhlcndpc2UuICBJZiB0 cnVlLCBvbmx5CisrICAgICB0aGUgQ09OTlNQRUMgZmllbGQgc2hvdWxkIGJlIGNvbnNpZGVyZWQg YXMgdmFsaWQuICAqLworKyAgYm9vbCBzaG91bGRfZmFpbDsKKysKKysgIC8qIFRoZSBleHBlY3Rl ZCBBSV9GQU1JTFkgdG8gYmUgZm91bmQgb24gdGhlICdzdHJ1Y3QgYWRkcmluZm8nCisrICAgICBI SU5ULiAgKi8KKysgIGludCBleHBfYWlfZmFtaWx5OworKworKyAgLyogVGhlIGV4cGVjdGVkIEFJ X1NPQ0tUWVBFIHRvIGJlIGZvdW5kIG9uIHRoZSAnc3RydWN0IGFkZHJpbmZvJworKyAgICAgSElO VC4gICovCisrICBpbnQgZXhwX2FpX3NvY2t0eXBlOworKworKyAgLyogVGhlIGV4cGVjdGVkIEFJ X1BST1RPQ09MIHRvIGJlIGZvdW5kIG9uIHRoZSAnc3RydWN0IGFkZHJpbmZvJworKyAgICAgSElO VC4gICovCisrICBpbnQgZXhwX2FpX3Byb3RvY29sOworK307CisrCisrLyogU29tZSBkZWZpbmVz IHRvIGhlbHAgdXMgZmlsbCBhICdzdHJ1Y3QgcGFyc2VfY29ubl90ZXN0Jy4gICovCisrCisrLyog SW5pdGlhbGl6ZSBhIGZ1bGwgZW50cnkuICAqLworKyNkZWZpbmUgSU5JVF9FTlRSWShBRERSLCBF WFBfSE9TVCwgRVhQX1BPUlQsIFNIT1VMRF9GQUlMLCBFWFBfQUlfRkFNSUxZLCBcCisrCQkgICBF WFBfQUlfU09DS1RZUEUsIEVYUF9BSV9QUk9UT0NPTCkJCQlcCisrICB7IEFERFIsIHsgRVhQX0hP U1QsIEVYUF9QT1JUIH0sIFNIT1VMRF9GQUlMLCBFWFBfQUlfRkFNSUxZLCBcCisrICAgIEVYUF9B SV9TT0NLVFlQRSwgRVhQX0FJX1BST1RPQ09MIH0KKysKKysvKiBJbml0aWFsaXplIGFuIHVucHJl Zml4ZWQgZW50cnkuICBJbiB0aGlzIGNhc2UsIHdlIGRvbid0IGV4cGVjdAorKyAgIGFueXRoaW5n IG9uIHRoZSAnc3RydWN0IGFkZHJpbmZvJyBISU5ULiAgKi8KKysjZGVmaW5lIElOSVRfVU5QUkVG SVhFRF9FTlRSWShBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKKysgIElOSVRfRU5UUlkgKEFE RFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgZmFsc2UsIDAsIDAsIDApCisrCisrLyogSW5pdGlhbGl6 ZWQgYW4gdW5wcmVmaXhlZCBJUHY2IGVudHJ5LiAgSW4gdGhpcyBjYXNlLCB3ZSBkb24ndAorKyAg IGV4cGVjdCBhbnl0aGluZyBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycgSElOVC4gICovCisrI2Rl ZmluZSBJTklUX1VOUFJFRklYRURfSVBWNl9FTlRSWShBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQp IFwKKysgIElOSVRfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgZmFsc2UsIEFGX0lO RVQ2LCAwLCAwKQorKworKy8qIEluaXRpYWxpemUgYSBwcmVmaXhlZCBlbnRyeS4gICovCisrI2Rl ZmluZSBJTklUX1BSRUZJWEVEX0VOVFJZKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgRVhQX0FJ X0ZBTUlMWSwgXAorKwkJCSAgICBFWFBfQUlfU09DS1RZUEUsIEVYUF9BSV9QUk9UT0NPTCkgXAor KyAgSU5JVF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBmYWxzZSwgRVhQX0FJX0ZB TUlMWSwgXAorKwkgICAgICBFWFBfQUlfU09DS1RZUEUsIEVYUF9BSV9QUk9UT0NPTCkKKysKKysv KiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInRjcDQ6Ii4gICovCisrI2RlZmlu ZSBJTklUX1BSRUZJWEVEX0lQVjRfVENQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAorKyAg SU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVULCBT T0NLX1NUUkVBTSwgXAorKwkJICAgICAgIElQUFJPVE9fVENQKQorKworKy8qIEluaXRpYWxpemUg YW4gZW50cnkgcHJlZml4ZWQgd2l0aCAidGNwNjoiLiAgKi8KKysjZGVmaW5lIElOSVRfUFJFRklY RURfSVBWNl9UQ1AoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCisrICBJTklUX1BSRUZJWEVE X0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIEFGX0lORVQ2LCBTT0NLX1NUUkVBTSwg XAorKwkJICAgICAgIElQUFJPVE9fVENQKQorKworKy8qIEluaXRpYWxpemUgYW4gZW50cnkgcHJl Zml4ZWQgd2l0aCAidWRwNDoiLiAgKi8KKysjZGVmaW5lIElOSVRfUFJFRklYRURfSVBWNF9VRFAo QUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCisrICBJTklUX1BSRUZJWEVEX0VOVFJZIChBRERS LCBFWFBfSE9TVCwgRVhQX1BPUlQsIEFGX0lORVQsIFNPQ0tfREdSQU0sIFwKKysJCSAgICAgICBJ UFBST1RPX1VEUCkKKysKKysvKiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInVk cDY6Ii4gICovCisrI2RlZmluZSBJTklUX1BSRUZJWEVEX0lQVjZfVURQKEFERFIsIEVYUF9IT1NU LCBFWFBfUE9SVCkgXAorKyAgSU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVY UF9QT1JULCBBRl9JTkVUNiwgU09DS19ER1JBTSwgXAorKwkJICAgICAgIElQUFJPVE9fVURQKQor KworKy8qIEluaXRpYWxpemUgYSBib2d1cyBlbnRyeSwgaS5lLiwgYSBjb25uZWN0aW9uIHNwZWMg dGhhdCBzaG91bGQKKysgICBmYWlsLiAgKi8KKysjZGVmaW5lIElOSVRfQk9HVVNfRU5UUlkoQURE UikgXAorKyAgSU5JVF9FTlRSWSAoQUREUiwgIiIsICIiLCB0cnVlLCAwLCAwLCAwKQorKworKy8q IFRoZSB2YXJpYWJsZSB3aGljaCBob2xkcyBhbGwgb2Ygb3VyIHRlc3RzLiAgKi8KKysKKytzdGF0 aWMgY29uc3QgcGFyc2VfY29ubl90ZXN0IGNvbm5fdGVzdFtdID0KKysgIHsKKysgICAgLyogVW5w cmVmaXhlZCBhZGRyZXNzZXMuICAqLworKworKyAgICAvKiBJUHY0LCBob3N0IGFuZCBwb3J0IHBy ZXNlbnQuICAqLworKyAgICBJTklUX1VOUFJFRklYRURfRU5UUlkgKCIxMjcuMC4wLjE6MTIzNCIs ICIxMjcuMC4wLjEiLCAiMTIzNCIpLAorKyAgICAvKiBJUHY0LCBvbmx5IGhvc3QuICAqLworKyAg ICBJTklUX1VOUFJFRklYRURfRU5UUlkgKCIxMjcuMC4wLjEiLCAiMTI3LjAuMC4xIiwgIiIpLAor KyAgICAvKiBJUHY0LCBtaXNzaW5nIHBvcnQuICAqLworKyAgICBJTklUX1VOUFJFRklYRURfRU5U UlkgKCIxMjcuMC4wLjE6IiwgIjEyNy4wLjAuMSIsICIiKSwKKysKKysgICAgLyogSVB2NiwgaG9z dCBhbmQgcG9ydCBwcmVzZW50LCBubyBicmFja2V0cy4gICovCisrICAgIElOSVRfVU5QUkVGSVhF RF9FTlRSWSAoIjo6MToxMjM0IiwgIjo6MSIsICIxMjM0IiksCisrICAgIC8qIElQdjYsIG1pc3Np bmcgcG9ydCwgbm8gYnJhY2tldHMuICAqLworKyAgICBJTklUX1VOUFJFRklYRURfRU5UUlkgKCI6 OjE6IiwgIjo6MSIsICIiKSwKKysgICAgLyogSVB2NiwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LCB3 aXRoIGJyYWNrZXRzLiAgKi8KKysgICAgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlkgKCJbOjox XToxMjM0IiwgIjo6MSIsICIxMjM0IiksCisrICAgIC8qIElQdjYsIG9ubHkgaG9zdCwgd2l0aCBi cmFja2V0cy4gICovCisrICAgIElOSVRfVU5QUkVGSVhFRF9JUFY2X0VOVFJZICgiWzo6MV0iLCAi OjoxIiwgIiIpLAorKyAgICAvKiBJUHY2LCBtaXNzaW5nIHBvcnQsIHdpdGggYnJhY2tldHMuICAq LworKyAgICBJTklUX1VOUFJFRklYRURfSVBWNl9FTlRSWSAoIls6OjFdOiIsICI6OjEiLCAiIiks CisrCisrICAgIC8qIFVuc3BlY2lmaWVkLCBvbmx5IHBvcnQuICAqLworKyAgICBJTklUX1VOUFJF RklYRURfRU5UUlkgKCI6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAorKworKyAgICAvKiBQ cmVmaXhlZCBhZGRyZXNzZXMuICAqLworKworKyAgICAvKiBQcmVmaXhlZCAidGNwNDoiIElQdjQs IGhvc3QgYW5kIHBvcnQgcHJlc2VudHMuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVENQ ICgidGNwNDoxMjcuMC4wLjE6MTIzNCIsICIxMjcuMC4wLjEiLCAiMTIzNCIpLAorKyAgICAvKiBQ cmVmaXhlZCAidGNwNDoiIElQdjQsIG9ubHkgcG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURf SVBWNF9UQ1AgKCJ0Y3A0OjoxMjM0IiwgImxvY2FsaG9zdCIsICIxMjM0IiksCisrICAgIC8qIFBy ZWZpeGVkICJ0Y3A0OiIgSVB2NCwgb25seSBob3N0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9J UFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4xIiwgIjEyNy4wLjAuMSIsICIiKSwKKysgICAgLyogUHJl Zml4ZWQgInRjcDQ6IiBJUHY0LCBtaXNzaW5nIHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVE X0lQVjRfVENQICgidGNwNDoxMjcuMC4wLjE6IiwgIjEyNy4wLjAuMSIsICIiKSwKKysKKysgICAg LyogUHJlZml4ZWQgInVkcDQ6IiBJUHY0LCBob3N0IGFuZCBwb3J0IHByZXNlbnQuICAqLworKyAg ICBJTklUX1BSRUZJWEVEX0lQVjRfVURQICgidWRwNDoxMjcuMC4wLjE6MTIzNCIsICIxMjcuMC4w LjEiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidWRwNDoiIElQdjQsIG9ubHkgcG9ydC4g ICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNF9VRFAgKCJ1ZHA0OjoxMjM0IiwgImxvY2FsaG9z dCIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgb25seSBob3N0LiAg Ki8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6MTI3LjAuMC4xIiwgIjEyNy4w LjAuMSIsICIiKSwKKysgICAgLyogUHJlZml4ZWQgInVkcDQ6IiBJUHY0LCBtaXNzaW5nIHBvcnQu ICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVURQICgidWRwNDoxMjcuMC4wLjE6IiwgIjEy Ny4wLjAuMSIsICIiKSwKKysKKysKKysgICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2LCBob3N0 IGFuZCBwb3J0IHByZXNlbnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNw Njo6OjE6MTIzNCIsICI6OjEiLCAiMTIzNCIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQ djYsIG9ubHkgcG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ojox MjM0IiwgImxvY2FsaG9zdCIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2 Niwgb25seSBob3N0LiAgKi8KKysgICAgLy9JTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjo6 OjEiLCAiOjoxIiwgIiIpLAorKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYsIG1pc3Npbmcg cG9ydC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9UQ1AgKCJ0Y3A2Ojo6MToiLCAiOjox IiwgIiIpLAorKworKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYsIGhvc3QgYW5kIHBvcnQg cHJlc2VudC4gICovCisrICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ojo6MToxMjM0 IiwgIjo6MSIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2Niwgb25seSBw b3J0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6OjEyMzQiLCAibG9j YWxob3N0IiwgIjEyMzQiKSwKKysgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2LCBvbmx5IGhv c3QuICAqLworKyAgICAvL0lOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2Ojo6MSIsICI6OjEi LCAiIiksCisrICAgIC8qIFByZWZpeGVkICJ1ZHA2OiIgSVB2NiwgbWlzc2luZyBwb3J0LiAgKi8K KysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6OjoxOiIsICI6OjEiLCAiIiksCisr CisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2NiB3aXRoIGJyYWNrZXRzLCBob3N0IGFuZCBw b3J0IHByZXNlbnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQICgidGNwNjpbOjox XToxMjM0IiwgIjo6MSIsICIxMjM0IiksCisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2NiB3 aXRoIGJyYWNrZXRzLCBvbmx5IGhvc3QuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQVjZfVENQ ICgidGNwNjpbOjoxXSIsICI6OjEiLCAiIiksCisrICAgIC8qIFByZWZpeGVkICJ0Y3A2OiIgSVB2 NiB3aXRoIGJyYWNrZXRzLCBtaXNzaW5nIHBvcnQuICAqLworKyAgICBJTklUX1BSRUZJWEVEX0lQ VjZfVENQICgidGNwNjpbOjoxXToiLCAiOjoxIiwgIiIpLAorKworKyAgICAvKiBQcmVmaXhlZCAi dWRwNjoiIElQdjYgd2l0aCBicmFja2V0cywgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KKysg ICAgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6Wzo6MV06MTIzNCIsICI6OjEiLCAiMTIz NCIpLAorKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYgd2l0aCBicmFja2V0cywgb25seSBo b3N0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6Wzo6MV0iLCAiOjox IiwgIiIpLAorKyAgICAvKiBQcmVmaXhlZCAidWRwNjoiIElQdjYgd2l0aCBicmFja2V0cywgbWlz c2luZyBwb3J0LiAgKi8KKysgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1VEUCAoInVkcDY6Wzo6MV06 IiwgIjo6MSIsICIiKSwKKysKKysKKysgICAgLyogQm9ndXMgYWRkcmVzc2VzLiAgKi8KKysgICAg SU5JVF9CT0dVU19FTlRSWSAoInRjcDY6Wzo6MV0xMjM6NDQiKSwKKysgICAgSU5JVF9CT0dVU19F TlRSWSAoIls6OjEiKSwKKysgICAgSU5JVF9CT0dVU19FTlRSWSAoInRjcDY6OjoxXToiKSwKKysg IH07CisrCisrLyogVGVzdCBhIGNvbm5lY3Rpb24gc3BlYyBDLiAgKi8KKysKKytzdGF0aWMgdm9p ZAorK3Rlc3RfY29ubiAoY29uc3QgcGFyc2VfY29ubl90ZXN0ICZjKQorK3sKKysgIHN0cnVjdCBh ZGRyaW5mbyBoaW50OworKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYyByZXQ7CisrCisrICBtZW1z ZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKKysKKysgIFRSWQorKyAgICB7CisrICAgICAg cmV0ID0gcGFyc2VfY29ubmVjdGlvbl9zcGVjIChjLmNvbm5zcGVjLCAmaGludCk7CisrICAgIH0K KysgIENBVENIIChleCwgUkVUVVJOX01BU0tfRVJST1IpCisrICAgIHsKKysgICAgICAvKiBJZiB3 ZSBjYXVnaHQgYW4gZXJyb3IsIHdlIHNob3VsZCBjaGVjayBpZiB0aGlzIGNvbm5lY3Rpb24KKysJ IHNwZWMgd2FzIHN1cHBvc2VkIHRvIGZhaWwuICAqLworKyAgICAgIFNFTEZfQ0hFQ0sgKGMuc2hv dWxkX2ZhaWwpOworKyAgICAgIHJldHVybjsKKysgICAgfQorKyAgRU5EX0NBVENICisrCisrICBT RUxGX0NIRUNLICghYy5zaG91bGRfZmFpbCk7CisrICBTRUxGX0NIRUNLIChyZXQuaG9zdF9zdHIg PT0gYy5leHBlY3RlZF9yZXN1bHQuaG9zdF9zdHIpOworKyAgU0VMRl9DSEVDSyAocmV0LnBvcnRf c3RyID09IGMuZXhwZWN0ZWRfcmVzdWx0LnBvcnRfc3RyKTsKKysgIFNFTEZfQ0hFQ0sgKGhpbnQu YWlfZmFtaWx5ID09IGMuZXhwX2FpX2ZhbWlseSk7CisrICBTRUxGX0NIRUNLIChoaW50LmFpX3Nv Y2t0eXBlID09IGMuZXhwX2FpX3NvY2t0eXBlKTsKKysgIFNFTEZfQ0hFQ0sgKGhpbnQuYWlfcHJv dG9jb2wgPT0gYy5leHBfYWlfcHJvdG9jb2wpOworK30KKysKKysvKiBSdW4gdGhlIHRlc3RzIGFz c29jaWF0ZWQgd2l0aCBwYXJzaW5nIGNvbm5lY3Rpb24gc3BlY3MuICAqLworKworK3N0YXRpYyB2 b2lkCisrcnVuX3Rlc3RzICgpCisreworKyAgZm9yIChjb25zdCBwYXJzZV9jb25uX3Rlc3QgJmMg OiBjb25uX3Rlc3QpCisrICAgIHRlc3RfY29ubiAoYyk7CisrfQorK30gLyogbmFtZXNwYWNlIHBh cnNlX2Nvbm5lY3Rpb25fc3BlY190ZXN0cyAqLworK30gLyogbmFtZXNwYWNlIHNlbGZ0ZXN0cyAq LworKworK3ZvaWQKKytfaW5pdGlhbGl6ZV9wYXJzZV9jb25uZWN0aW9uX3NwZWNfc2VsZnRlc3Rz ICgpCisreworKyAgc2VsZnRlc3RzOjpyZWdpc3Rlcl90ZXN0ICgicGFyc2VfY29ubmVjdGlvbl9z cGVjIiwKKysJCQkgICAgc2VsZnRlc3RzOjpwYXJzZV9jb25uZWN0aW9uX3NwZWNfdGVzdHM6OnJ1 bl90ZXN0cyk7CisrfQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRj aCBiL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMW9mMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggN2MzYTY2NC4uMDAwMDAwMAotLS0gYS9nZGItcmhiejg4MTg0OS1pcHY2LTFvZjMu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTM0ICswLDAgQEAKLUZyb20gRkVET1JBX1BBVENI RVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTZXJnaW8gRHVyaWdhbiBKdW5pb3Ig PHNlcmdpb2RqQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDE4IE1heSAyMDE4IDAxOjI5OjI0IC0w NDAwCi1TdWJqZWN0OiBnZGItcmhiejg4MTg0OS1pcHY2LTFvZjMucGF0Y2gKLQotOzsgSW1wbGVt ZW50IElQdjYgc3VwcG9ydCBmb3IgR0RCL2dkYnNlcnZlciAoUkggQlogODgxODQ5LCBTZXJnaW8g RHVyaWdhbiBKdW5pb3IpLgotCi1JbXBsZW1lbnQgSVB2NiBzdXBwb3J0IGZvciBHREIvZ2Ric2Vy dmVyCi0KLVRoaXMgcGF0Y2ggaW1wbGVtZW50cyBJUHY2IHN1cHBvcnQgZm9yIGJvdGggR0RCIGFu ZCBnZGJzZXJ2ZXIuICBCYXNlZAotb24gbXkgcmVzZWFyY2gsIGl0IGlzIHRoZSBmb3VydGggYXR0 ZW1wdCB0byBkbyB0aGF0IHNpbmNlIDIwMDYuICBTaW5jZQotSSB1c2VkIGlkZWFzIGZyb20gYWxs IG9mIHRoZSBwcmV2aW91cyBwYXRjaGVzLCBJIGFsc28gYWRkZWQgdGhlaXIKLWF1dGhvcnMncyBu YW1lcyBvbiB0aGUgQ2hhbmdlTG9ncyBhcyBhIHdheSB0byByZWNvZ25pemUgdGhlaXIKLWVmZm9y dHMuICBGb3IgcmVmZXJlbmNlIHNha2UsIHlvdSBjYW4gZmluZCB0aGUgcHJldmlvdXMgYXR0ZW1w dHMgYXQ6Ci0KLSAgaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDA2LTA5 L21zZzAwMTkyLmh0bWwKLQotICBodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVz LzIwMTQtMDIvbXNnMDAyNDguaHRtbAotCi0gIGh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2Ri LXBhdGNoZXMvMjAxNi0wMi9tc2cwMDIyNi5odG1sCi0KLVRoZSBiYXNpYyBpZGVhIGJlaGluZCB0 aGUgcGF0Y2ggaXMgdG8gc3RhcnQgdXNpbmcgdGhlIG5ldwotJ2dldGFkZHJpbmZvJy8nZ2V0bmFt ZWluZm8nIGNhbGxzLCB3aGljaCBhcmUgcmVzcG9uc2libGUgZm9yCi10cmFuc2xhdGluZyBuYW1l cyBhbmQgYWRkcmVzc2VzIGluIGEgcHJvdG9jb2wtaW5kZXBlbmRlbnQgd2F5LiAgVGhpcwotbWVh bnMgdGhhdCBpZiB3ZSBldmVyIGhhdmUgYSBuZXcgdmVyc2lvbiBvZiB0aGUgSVAgcHJvdG9jb2ws IHdlIHdvbid0Ci1uZWVkIHRvIGNoYW5nZSB0aGUgY29kZSBhZ2FpbiAob3IsIGF0IGxlYXN0LCB3 b24ndCBoYXZlIHRvIGNoYW5nZSB0aGUKLW1ham9yaXR5IG9mIHRoZSBjb2RlKS4KLQotVGhlIGZ1 bmN0aW9uICdnZXRhZGRyaW5mbycgcmV0dXJucyBhIGxpbmtlZCBsaXN0IG9mIHBvc3NpYmxlIGFk ZHJlc3NlcwotdG8gY29ubmVjdCB0by4gIERlYWxpbmcgd2l0aCBtdWx0aXBsZSBhZGRyZXNzZXMg cHJvdmVkIHRvIGJlIGEgaGFyZAotdGFzayB3aXRoIHRoZSBjdXJyZW50IFRDUCBhdXRvLXJldHJ5 IG1lY2hhbmlzbSBpbXBsZW1lbnRlZCBvbgotc2VyLXRjcDpuZXRfb3Blbi4gIEZvciBleGFtcGxl LCB3aGVuIGdkYnNlcnZlciBsaXN0ZW5lZCBvbmx5IG9uIGFuCi1JUHY0IHNvY2tldDoKLQotICAk IC4vZ2Ric2VydmVyIC0tb25jZSAxMjcuMC4wLjE6MTIzNCAuL2Eub3V0Ci0KLWFuZCBHREIgd2Fz IGluc3RydWN0ZWQgdG8gdHJ5IHRvIGNvbm5lY3QgdG8gYm90aCBJUHY2IGFuZCBJUHY0Ci1zb2Nr ZXRzOgotCi0gICQgLi9nZGIgLWV4ICd0YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIGxvY2FsaG9zdDox MjM0JyAuL2Eub3V0Ci0KLXRoZSB1c2VyIHdvdWxkIG5vdGljZSBhIHNvbWV3aGF0IGJpZyBkZWxh eSBiZWZvcmUgR0RCIHdhcyBhYmxlIHRvCi1jb25uZWN0IHRvIHRoZSBJUHY0IHNvY2tldC4gIFRo aXMgaGFwcGVuZWQgYmVjYXVzZSBHREIgd2FzIHRyeWluZyB0bwotY29ubmVjdCB0byB0aGUgSVB2 NiBzb2NrZXQgZmlyc3QsIGFuZCBoYWQgdG8gd2FpdCB1bnRpbCB0aGUgY29ubmVjdGlvbgotdGlt ZWQgb3V0IGJlZm9yZSBpdCB0cmllZCB0byBjb25uZWN0IHRvIHRoZSBJUHY0IHNvY2tldC4KLQot Rm9yIHRoYXQgcmVhc29uLCBJIGhhZCB0byByZXdyaXRlIHRoZSBtYWluIGxvb3AgYW5kIGltcGxl bWVudCBhIG5ldwotbWV0aG9kIGZvciBoYW5kbGluZyBtdWx0aXBsZSBjb25uZWN0aW9ucy4gIEFm dGVyIHNvbWUgZGlzY3Vzc2lvbiwKLVBlZHJvIGFuZCBJIGFncmVlZCBvbiB0aGUgZm9sbG93aW5n IGFsZ29yaXRobToKLQotICAxKSBGb3IgZWFjaCBlbnRyeSByZXR1cm5lZCBieSAnZ2V0YWRkcmlu Zm8nLCB3ZSB0cnkgdG8gb3BlbiBhIHNvY2tldAotICBhbmQgY29ubmVjdCB0byBpdC4KLQotICAy LmEpIElmIHdlIGhhdmUgYSBzdWNjZXNzZnVsICdjb25uZWN0Jywgd2UganVzdCB1c2UgdGhhdCBj b25uZWN0aW9uLgotCi0gIDIuYikgSWYgd2UgZG9uJ3QgaGF2ZSBhIHN1Y2Nlc3NmdWxsICdjb25u ZWN0JywgYnV0IGlmIHdlJ3ZlIGdvdCBhCi0gIEVDT05OUkVGVVNFRCAobWVhbmluZyB0aGUgdGhl IGNvbm5lY3Rpb24gd2FzIHJlZnVzZWQpLCB3ZSBrZWVwIHRyYWNrCi0gIG9mIHRoaXMgZmFjdCBi eSB1c2luZyBhIGZsYWcuCi0KLSAgMi5jKSBJZiB3ZSBkb24ndCBoYXZlIGEgc3VjY2Vzc2Z1bGwg J2Nvbm5lY3QnLCBidXQgaWYgd2UndmUgZ290IGEKLSAgRUlOUFJPR1JFU1MgKG1lYW5pbmcgdGhh dCB0aGUgY29ubmVjdGlvbiBpcyBpbiBwcm9ncmVzcyksIHdlIHBlcmZvcm0KLSAgYSAnc2VsZWN0 JyBjYWxsIG9uIHRoZSBzb2NrZXQgdW50aWwgd2UgaGF2ZSBhIHJlc3VsdCAoZWl0aGVyIGEKLSAg c3VjY2Vzc2Z1bCBjb25uZWN0aW9uLCBvciBhbiBlcnJvciBvbiB0aGUgc29ja2V0KS4KLQotICAz KSBJZiB0Y3BfYXV0b19yZXRyeSBpcyB0cnVlLCBhbmQgd2UgaGF2ZW4ndCBnb3R0ZW4gYSBzdWNj ZXNzZnVsCi0gIGNvbm5lY3Rpb24sIGFuZCBhdCBsZWFzdCBvbmUgb2Ygb3VyIGF0dGVtcHRzIGZh aWxlZCB3aXRoCi0gIEVDT05OUkVGVVNFRCwgdGhlbiB3ZSB3YWl0IGEgbGl0dGxlIGJpdCAoaS5l LiwgY2FsbAotICAnd2FpdF9mb3JfY29ubmVjdCcpLCBjaGVjayB0byBzZWUgaWYgdGhlcmUgd2Fz IGEKLSAgdGltZW91dC9pbnRlcnJ1cHRpb24gKGluIHdoaWNoIGNhc2Ugd2UgYmFpbCBvdXQpLCBh bmQgdGhlbiBnbyBiYWNrCi0gIHRvICgxKS4KLQotQWZ0ZXIgbXVsdGlwbGUgdGVzdHMsIEkgd2Fz IGFibGUgdG8gY29ubmVjdCB3aXRob3V0IGRlbGF5IG9uIHRoZQotc2NlbmFyaW8gZGVzY3JpYmVk IGFib3ZlLCBhbmQgd2FzIGFsc28gYWJsZSB0byBjb25uZWN0IGluIGFsbCBvdGhlcgotdHlwZXMg b2Ygc2NlbmFyaW9zLgotCi1JIGFsc28gaW1wbGVtZW50ZWQgc29tZSBob3N0bmFtZSBwYXJzaW5n IGZ1bmN0aW9ucyAoYWxvbmcgd2l0aCB0aGVpcgotY29ycmVzcG9uZGluZyB1bml0IHRlc3RzKSB3 aGljaCBhcmUgdXNlZCB0byBoZWxwIEdEQiBhbmQgZ2Ric2VydmVyIHRvCi1wYXJzZSBob3N0bmFt ZSBzdHJpbmdzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLiAgVGhlc2UgbmV3IGZ1bmN0aW9ucyBhcmUK LWxpdmluZyBpbnNpZGUgY29tbW9uL25ldHN0dWZmLltjaF0uICBJJ3ZlIGhhZCB0byBkbyB0aGF0 IHNpbmNlIElQdjYKLWludHJvZHVjZXMgYSBuZXcgVVJMIHNjaGVtZSwgd2hpY2ggZGVmaW5lcyB0 aGF0IHNxdWFyZSBicmFja2V0cyBjYW4gYmUKLXVzZWQgdG8gZW5jbG9zZSB0aGUgaG9zdCBwYXJ0 IGFuZCBkaWZmZXJlbnRpYXRlIGl0IGZyb20gdGhlCi1wb3J0IChlLmcuLCAiWzo6MV06MTIzNCIg bWVhbnMgImhvc3QgOjoxLCBwb3J0IDEyMzQiKS4gIEkgc3BlbnQgc29tZQotdGltZSB0aGlua2lu ZyBhYm91dCBhIHJlYXNvbmFibGUgd2F5IHRvIGludGVycHJldCB3aGF0IHRoZSB1c2VyIHdhbnRz LAotYW5kIEkgY2FtZSB1cCB3aXRoIHRoZSBmb2xsb3dpbmc6Ci0KLSAgLSBJZiB0aGUgdXNlciBo YXMgcHJvdmlkZWQgYSBwcmVmaXggdGhhdCBkb2Vzbid0IHNwZWNpZnkgdGhlIHByb3RvY29sCi0g ICAgdmVyc2lvbiAoaS5lLiwgInRjcDoiIG9yICJ1ZHA6IiksIG9yIGlmIHRoZSB1c2VyIGhhcyBu b3QgcHJvdmlkZWQKLSAgICBhbnkgcHJlZml4LCBkb24ndCBtYWtlIGFueSBhc3N1bXB0aW9ucyAo aS5lLiwgYXNzdW1lIEFGX1VOU1BFQyB3aGVuCi0gICAgZGVhbGluZyB3aXRoICdnZXRhZGRyaW5m bycpICp1bmxlc3MqIHRoZSBob3N0IHN0YXJ0cyB3aXRoICJbIiAoaW4KLSAgICB3aGljaCBjYXNl LCBhc3N1bWUgaXQncyBhbiBJUHY2IGhvc3QpLgotCi0gIC0gSWYgdGhlIHVzZXIgaGFzIHByb3Zp ZGVkIGEgcHJlZml4IHRoYXQgZG9lcyBzcGVjaWZ5IHRoZSBwcm90b2NvbAotICAgIHZlcnNpb24g KGkuZS4sICJ0Y3A0OiIsICJ0Y3A2OiIsICJ1ZHA0OiIgb3IgInVkcDY6IiksIHRoZW4gcmVzcGVj dAotICAgIHRoYXQuCi0KLVRoaXMgbWV0aG9kIGRvZXNuJ3QgZm9sbG93IHN0cmljdGx5IHdoYXQg UkZDIDI3MzIgcHJvcG9zZXMgKHRoYXQKLWxpdGVyYWwgSVB2NiBhZGRyZXNzZXMgc2hvdWxkIGJl IHByb3ZpZGVkIGVuY2xvc2VkIGluICJbIiBhbmQgIl0iKQotYmVjYXVzZSBJUHY2IGFkZHJlc3Nl cyBzdGlsbCBjYW4gYmUgcHJvdmlkZWQgd2l0aG91dCBzcXVhcmUgYnJhY2tldHMKLWluIG91ciBj YXNlLCBidXQgc2luY2Ugd2UgaGF2ZSBwcmVmaXhlcyB0byBzcGVjaWZ5IHByb3RvY29sIHZlcnNp b25zIEkKLXRoaW5rIHRoaXMgaXMgbm90IGFuIGlzc3VlLgotCi1Bbm90aGVyIHRoaW5nIHdvcnRo IG1lbnRpb25pbmcgaXMgdGhlIG5ldyAnR0RCX1RFU1RfU09DS0VUSE9TVCcKLXRlc3RjYXNlIHBh cmFtZXRlciwgd2hpY2ggbWFrZXMgaXQgcG9zc2libGUgdG8gc3BlY2lmeSB0aGUKLWhvc3RuYW1l ICh3aXRob3V0IHRoZSBwb3J0KSB0byBiZSB1c2VkIHdoZW4gdGVzdGluZyBHREIgYW5kCi1nZGJz ZXJ2ZXIuICBGb3IgZXhhbXBsZSwgdG8gcnVuIElQdjYgdGVzdHM6Ci0KLSAgJCBtYWtlIGNoZWNr LWdkYiBSVU5URVNURkxBR1M9J0dEQl9URVNUX1NPQ0tFVEhPU1Q9dGNwNjpbOjoxXScKLQotT3Is IHRvIHJ1biBJUHY0IHRlc3RzOgotCi0gICQgbWFrZSBjaGVjay1nZGIgUlVOVEVTVEZMQUdTPSdH REJfVEVTVF9TT0NLRVRIT1NUPXRjcDQ6MTI3LjAuMC4xJwotCi1UaGlzIHJlcXVpcmVkIGEgZmV3 IGNoYW5nZXMgb24gdGhlIGdkYnNlcnZlci1iYXNlLmV4cCwgYW5kIGFsc28gYQotbWluaW1hbCBh ZGp1c3RtZW50IG9uIGdkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cC4KLQot RmluYWxseSwgSSd2ZSBpbXBsZW1lbnRlZCBhIG5ldyB0ZXN0Y2FzZSwKLWdkYi5zZXJ2ZXIvc2Vy dmVyLWNvbm5lY3QuZXhwLCB3aGljaCBpcyBzdXBwb3NlZCB0byBydW4gb24gdGhlIG5hdGl2ZQot aG9zdCBhbmQgcGVyZm9ybSB2YXJpb3VzICJzbW9rZSB0ZXN0cyIgdXNpbmcgZGlmZmVyZW50IGNv bm5lY3Rpb24KLW1ldGhvZHMuCi0KLVRoaXMgcGF0Y2ggaGFzIGJlZW4gcmVncmVzc2lvbi10ZXN0 ZWQgb24gQnVpbGRCb3QgYW5kIGxvY2FsbHksIGFuZAotYWxzbyBidWlsdCB1c2luZyBhIHg4Nl82 NC13NjQtbWluZ3czMiBHQ0MsIGFuZCBubyBwcm9ibGVtcyB3ZXJlIGZvdW5kLgotCi1nZGIvQ2hh bmdlTG9nOgotMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVk aGF0LmNvbT4KLQkgICAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29t PgotCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgotCSAgICBUc3V0b211 IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+Ci0JICAgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJl ZGhhdC5jb20+Ci0KLQkqIE1ha2VmaWxlLmluIChTVUJESVJfVU5JVFRFU1RTX1NSQ1MpOiBBZGQK LQkndW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYycuCi0JKENPTU1P Tl9TRklMRVMpOiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5jJy4KLQkoSEZJTEVTX05PX1NSQ0RJUik6 IEFkZCAnY29tbW9uL25ldHN0dWZmLmgnLgotCSogTkVXUyAoQ2hhbmdlcyBzaW5jZSBHREIgOC4y KTogTWVudGlvbiBJUHY2IHN1cHBvcnQuCi0JKiBjb21tb24vbmV0c3R1ZmYuYzogTmV3IGZpbGUu Ci0JKiBjb21tb24vbmV0c3R1ZmYuaDogTmV3IGZpbGUuCi0JKiBzZXItdGNwLmM6IEluY2x1ZGUg J25ldHN0dWZmLmgnIGFuZCAnd3NwaWFwaS5oJy4KLQkod2FpdF9mb3JfY29ubmVjdCk6IFVwZGF0 ZSBjb21tZW50LiAgTmV3IHBhcmFtZXRlcgotCSdnZGI6Om9wdGlvbmFsPGludD4gc29jaycgaW5z dGVhZCBvZiAnc3RydWN0IHNlcmlhbCAqc2NiJy4KLQlVc2UgJ3NvY2snIGRpcmVjdGx5IGluc3Rl YWQgb2YgJ3NjYi0+ZmQnLgotCSh0cnlfY29ubmVjdCk6IE5ldyBmdW5jdGlvbiwgd2l0aCBjb2Rl IGZyb20gJ25ldF9vcGVuJy4KLQkobmV0X29wZW4pOiBSZXdyaXRlIG1haW4gbG9vcCB0byBkZWFs IHdpdGggbXVsdGlwbGUKLQlzb2NrZXRzL2FkZHJlc3Nlcy4gIEhhbmRsZSBJUHY2LXN0eWxlIGhv c3RuYW1lczsgaW1wbGVtZW50Ci0Jc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4KLQkqIHVu aXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmM6IE5ldyBmaWxlLgotCi1n ZGIvZ2Ric2VydmVyL0NoYW5nZUxvZzoKLTIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlv ciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0JICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KLQkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNv bT4KLQkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotCi0JKiBNYWtlZmls ZS5pbiAoU0ZJTEVTKTogQWRkICckKHNyY2RpcikvY29tbW9uL25ldHN0dWZmLmMnLgotCShPQlMp OiBBZGQgJ2NvbW1vbi9uZXRzdHVmZi5vJy4KLQkoR0RCUkVQTEFZX09CUyk6IExpa2V3aXNlLgot CSogZ2RicmVwbGF5LmM6IEluY2x1ZGUgJ3dzcGlhcGkuaCcgYW5kICduZXRzdHVmZi5oJy4KLQko cmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2NgotCWNvbm5lY3Rpb25zLgot CSogcmVtb3RlLXV0aWxzLmM6IEluY2x1ZGUgJ25ldHN0dWZmLmgnLCAnZmlsZXN0dWZmLmgnCi0J YW5kICd3c3BpYXBpLmgnLgotCShoYW5kbGVfYWNjZXB0X2V2ZW50KTogQWNjZXB0IGNvbm5lY3Rp b25zIGZyb20gSVB2NiBzb3VyY2VzLgotCShyZW1vdGVfcHJlcGFyZSk6IEhhbmRsZSBJUHY2LXN0 eWxlIGhvc3RuYW1lczsgaW1wbGVtZW50Ci0Jc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4K LQkocmVtb3RlX29wZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgcHJpbnRpbmcgY29ubmVjdGlv bnMgZnJvbQotCUlQdjYgc291cmNlcy4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6Ci0yMDE4 LTA3LTExICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgotCSAg ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0JICAgIFBhdWwg RmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+Ci0JICAgIFRzdXRvbXUgU2VraSAgPHNla2ly aWtpQGdtYWlsLmNvbT4KLQotCSogUkVBRE1FIChUZXN0c3VpdGUgUGFyYW1ldGVycyk6IE1lbnRp b24gbmV3ICdHREJfVEVTVF9TT0NLRVRIT1NUJwotCXBhcmFtZXRlci4KLQkqIGJvYXJkcy9uYXRp dmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cDogRG8gbm90IHNldCAnc29ja2V0aG9zdCcKLQlieSBk ZWZhdWx0LgotCSogYm9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwOiBMaWtld2lzZS4KLQkqIGdk Yi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cDogSW1wcm92ZSByZWdleHAgdXNl ZAotCWZvciBkZXRlY3Rpbmcgd2hlbiBhIHJlbW90ZSBkZWJ1Z2dpbmcgY29ubmVjdGlvbiBzdWNj ZWVkcy4KLQkqIGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiBOZXcgZmlsZS4KLQkqIGxp Yi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAgKGdkYnNlcnZlcl9kZWZhdWx0X2dldF9jb21tX3BvcnQp OgotCURvIG5vdCBwcmVmaXggdGhlIHBvcnQgbnVtYmVyIHdpdGggIjoiLgotCShnZGJzZXJ2ZXJf c3RhcnQpOiBOZXcgZ2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhPU1QuICBJbXBsZW1lbnQKLQlzdXBw b3J0IGZvciBkZXRlY3RpbmcgYW5kIHVzaW5nIGl0LiAgQWRkICckZGVidWdob3N0X2dkYnNlcnZl cicKLQl0byB0aGUgbGlzdCBvZiBhcmd1bWVudHMgdXNlZCB0byBzdGFydCBnZGJzZXJ2ZXIuICBI YW5kbGUgY2FzZQotCXdoZW4gZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIGEgbmV0d29yayBuYW1l LgotCi1nZGIvZG9jL0NoYW5nZUxvZzoKLTIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlv ciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+Ci0JICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KLQkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2QGdtYWlsLmNv bT4KLQkgICAgVHN1dG9tdSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotCi0JKiBnZGIudGV4 aW5mbyAoUmVtb3RlIENvbm5lY3Rpb24gQ29tbWFuZHMpOiBBZGQgZXhwbGFuYXRpb24KLQlhYm91 dCBuZXcgSVB2NiBzdXBwb3J0LiAgQWRkIG5ldyBjb25uZWN0aW9uIHByZWZpeGVzLgotCi1kaWZm IC0tZ2l0IGEvZ2RiL01ha2VmaWxlLmluIGIvZ2RiL01ha2VmaWxlLmluCi0tLS0gYS9nZGIvTWFr ZWZpbGUuaW4KLSsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTQzMCw2ICs0MzAsNyBAQCBTVUJE SVJfVU5JVFRFU1RTX1NSQ1MgPSBcCi0gCXVuaXR0ZXN0cy9vZmZzZXQtdHlwZS1zZWxmdGVzdHMu YyBcCi0gCXVuaXR0ZXN0cy9vYnNlcnZhYmxlLXNlbGZ0ZXN0cy5jIFwKLSAJdW5pdHRlc3RzL29w dGlvbmFsLXNlbGZ0ZXN0cy5jIFwKLSsJdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1z ZWxmdGVzdHMuYyBcCi0gCXVuaXR0ZXN0cy9wdGlkLXNlbGZ0ZXN0cy5jIFwKLSAJdW5pdHRlc3Rz L3JzcC1sb3ctc2VsZnRlc3RzLmMgXAotIAl1bml0dGVzdHMvc2NvcGVkX2ZkLXNlbGZ0ZXN0cy5j IFwKLUBAIC05NjcsNiArOTY4LDcgQEAgQ09NTU9OX1NGSUxFUyA9IFwKLSAJY29tbW9uL2pvYi1j b250cm9sLmMgXAotIAljb21tb24vZ2RiX3RpbGRlX2V4cGFuZC5jIFwKLSAJY29tbW9uL2dkYl92 ZWNzLmMgXAotKwljb21tb24vbmV0c3R1ZmYuYyBcCi0gCWNvbW1vbi9uZXctb3AuYyBcCi0gCWNv bW1vbi9wYXRoc3R1ZmYuYyBcCi0gCWNvbW1vbi9wcmludC11dGlscy5jIFwKLUBAIC0xNDQ4LDYg KzE0NTAsNyBAQCBIRklMRVNfTk9fU1JDRElSID0gXAotIAljb21tb24vZ2RiX3ZlY3MuaCBcCi0g CWNvbW1vbi9nZGJfd2FpdC5oIFwKLSAJY29tbW9uL2NvbW1vbi1pbmZlcmlvci5oIFwKLSsJY29t bW9uL25ldHN0dWZmLmggXAotIAljb21tb24vaG9zdC1kZWZzLmggXAotIAljb21tb24vcGF0aHN0 dWZmLmggXAotIAljb21tb24vcHJpbnQtdXRpbHMuaCBcCi1kaWZmIC0tZ2l0IGEvZ2RiL05FV1Mg Yi9nZGIvTkVXUwotLS0tIGEvZ2RiL05FV1MKLSsrKyBiL2dkYi9ORVdTCi1AQCAtMSw2ICsxLDEy IEBACi0gCQlXaGF0IGhhcyBjaGFuZ2VkIGluIEdEQj8KLSAJICAgICAoT3JnYW5pemVkIHJlbGVh c2UgYnkgcmVsZWFzZSkKLSAKLSsqKiogQ2hhbmdlcyBzaW5jZSBHREIgOC4yCi0rCi0rKiBHREIg YW5kIEdEQnNlcnZlciBub3cgc3VwcG9ydCBJUHY2IGNvbm5lY3Rpb25zLiAgSVB2NiBhZGRyZXNz ZXMKLSsgIGNhbiBiZSBwYXNzZWQgdXNpbmcgdGhlICdbQUREUkVTU106UE9SVCcgbm90YXRpb24s IG9yIHRoZSByZWd1bGFyCi0rICAnQUREUkVTUzpQT1JUJyBtZXRob2QuCi0rCi0gKioqIENoYW5n ZXMgaW4gR0RCIDguMgotIAotICogVGhlICdzZXQgZGlzYXNzZW1ibGVyLW9wdGlvbnMnIGNvbW1h bmQgbm93IHN1cHBvcnRzIHNwZWNpZnlpbmcgb3B0aW9ucwotZGlmZiAtLWdpdCBhL2dkYi9jb21t b24vbmV0c3R1ZmYuYyBiL2dkYi9jb21tb24vbmV0c3R1ZmYuYwotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9jb21tb24vbmV0c3R1ZmYuYwotQEAgLTAsMCAr MSwxNTUgQEAKLSsvKiBPcGVyYXRpb25zIG9uIG5ldHdvcmsgc3R1ZmYuCi0rICAgQ29weXJpZ2h0 IChDKSAyMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0r ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwot KyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCi0rCi0rI2luY2x1ZGUgImNvbW1vbi1kZWZzLmgiCi0rI2luY2x1ZGUgIm5ldHN0dWZm LmgiCi0rI2luY2x1ZGUgPGFsZ29yaXRobT4KLSsKLSsjaWZkZWYgVVNFX1dJTjMyQVBJCi0rI2lu Y2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2luY2x1ZGUgPHdzcGlhcGkuaD4KLSsjZWxzZQotKyNpbmNs dWRlIDxuZXRpbmV0L2luLmg+Ci0rI2luY2x1ZGUgPGFycGEvaW5ldC5oPgotKyNpbmNsdWRlIDxu ZXRkYi5oPgotKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+Ci0rI2luY2x1ZGUgPG5ldGluZXQvdGNw Lmg+Ci0rI2VuZGlmCi0rCi0rLyogU2VlIGNvbW1vbi9uZXRzdHVmZi5oLiAgKi8KLSsKLStzY29w ZWRfZnJlZV9hZGRyaW5mbzo6fnNjb3BlZF9mcmVlX2FkZHJpbmZvICgpCi0rewotKyAgZnJlZWFk ZHJpbmZvIChtX3Jlcyk7Ci0rfQotKwotKy8qIFNlZSBjb21tb24vbmV0c3R1ZmYuaC4gICovCi0r Ci0rcGFyc2VkX2Nvbm5lY3Rpb25fc3BlYwotK3BhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRob3V0 X3ByZWZpeCAoc3RkOjpzdHJpbmcgc3BlYywgc3RydWN0IGFkZHJpbmZvICpoaW50KQotK3sKLSsg IHBhcnNlZF9jb25uZWN0aW9uX3NwZWMgcmV0OwotKyAgc2l6ZV90IGxhc3RfY29sb25fcG9zID0g MDsKLSsgIC8qIFdlJ3JlIGRlYWxpbmcgd2l0aCBJUHY2IGlmOgotKwotKyAgICAgLSBhaV9mYW1p bHkgaXMgQUZfSU5FVDYsIG9yCi0rICAgICAtIGFpX2ZhbWlseSBpcyBub3QgQUZfSU5FVCwgYW5k Ci0rICAgICAgIC0gc3BlY1swXSBpcyAnWycsIG9yCi0rICAgICAgIC0gdGhlIG51bWJlciBvZiAn Oicgb24gc3BlYyBpcyBncmVhdGVyIHRoYW4gMS4gICovCi0rICBib29sIGlzX2lwdjYgPSAoaGlu dC0+YWlfZmFtaWx5ID09IEFGX0lORVQ2Ci0rCQkgIHx8IChoaW50LT5haV9mYW1pbHkgIT0gQUZf SU5FVAotKwkJICAgICAgJiYgKHNwZWNbMF0gPT0gJ1snCi0rCQkJICB8fCBzdGQ6OmNvdW50IChz cGVjLmJlZ2luICgpLAotKwkJCQkJIHNwZWMuZW5kICgpLCAnOicpID4gMSkpKTsKLSsKLSsgIGlm IChpc19pcHY2KQotKyAgICB7Ci0rICAgICAgaWYgKHNwZWNbMF0gPT0gJ1snKQotKwl7Ci0rCSAg LyogSVB2NiBhZGRyZXNzZXMgY2FuIGJlIHdyaXR0ZW4gYXMgJ1tBRERSXTpQT1JUJywgYW5kIHdl Ci0rCSAgICAgc3VwcG9ydCB0aGlzIG5vdGF0aW9uLiAgKi8KLSsJICBzaXplX3QgY2xvc2VfYnJh Y2tldF9wb3MgPSBzcGVjLmZpbmRfZmlyc3Rfb2YgKCddJyk7Ci0rCi0rCSAgaWYgKGNsb3NlX2Jy YWNrZXRfcG9zID09IHN0ZDo6c3RyaW5nOjpucG9zKQotKwkgICAgZXJyb3IgKF8oIk1pc3Npbmcg Y2xvc2UgYnJhY2tldCBpbiBob3N0bmFtZSAnJXMnIiksCi0rCQkgICBzcGVjLmNfc3RyICgpKTsK LSsKLSsJICBoaW50LT5haV9mYW1pbHkgPSBBRl9JTkVUNjsKLSsKLSsJICBjb25zdCBjaGFyIGMg PSBzcGVjW2Nsb3NlX2JyYWNrZXRfcG9zICsgMV07Ci0rCi0rCSAgaWYgKGMgPT0gJ1wwJykKLSsJ ICAgIGxhc3RfY29sb25fcG9zID0gc3RkOjpzdHJpbmc6Om5wb3M7Ci0rCSAgZWxzZSBpZiAoYyAh PSAnOicpCi0rCSAgICBlcnJvciAoXygiSW52YWxpZCBjcnVmdCBhZnRlciBjbG9zZSBicmFja2V0 IGluICclcyciKSwKLSsJCSAgIHNwZWMuY19zdHIgKCkpOwotKwotKwkgIC8qIEVyYXNlIGJvdGgg J1snIGFuZCAnXScuICAqLwotKwkgIHNwZWMuZXJhc2UgKDAsIDEpOwotKwkgIHNwZWMuZXJhc2Ug KGNsb3NlX2JyYWNrZXRfcG9zIC0gMSwgMSk7Ci0rCX0KLSsgICAgICBlbHNlIGlmIChzcGVjLmZp bmRfZmlyc3Rfb2YgKCddJykgIT0gc3RkOjpzdHJpbmc6Om5wb3MpCi0rCWVycm9yIChfKCJNaXNz aW5nIG9wZW4gYnJhY2tldCBpbiBob3N0bmFtZSAnJXMnIiksCi0rCSAgICAgICBzcGVjLmNfc3Ry ICgpKTsKLSsgICAgfQotKwotKyAgaWYgKGxhc3RfY29sb25fcG9zID09IDApCi0rICAgIGxhc3Rf Y29sb25fcG9zID0gc3BlYy5maW5kX2xhc3Rfb2YgKCc6Jyk7Ci0rCi0rICAvKiBUaGUgbGVuZ3Ro IG9mIHRoZSBob3N0bmFtZSBwYXJ0LiAgKi8KLSsgIHNpemVfdCBob3N0X2xlbjsKLSsKLSsgIGlm IChsYXN0X2NvbG9uX3BvcyAhPSBzdGQ6OnN0cmluZzo6bnBvcykKLSsgICAgewotKyAgICAgIC8q IFRoZSB1c2VyIGhhcyBwcm92aWRlZCBhIHBvcnQuICAqLwotKyAgICAgIGhvc3RfbGVuID0gbGFz dF9jb2xvbl9wb3M7Ci0rICAgICAgcmV0LnBvcnRfc3RyID0gc3BlYy5zdWJzdHIgKGxhc3RfY29s b25fcG9zICsgMSk7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgaG9zdF9sZW4gPSBzcGVjLnNpemUg KCk7Ci0rCi0rICByZXQuaG9zdF9zdHIgPSBzcGVjLnN1YnN0ciAoMCwgaG9zdF9sZW4pOwotKwot KyAgLyogRGVmYXVsdCBob3N0bmFtZSBpcyBsb2NhbGhvc3QuICAqLwotKyAgaWYgKHJldC5ob3N0 X3N0ci5lbXB0eSAoKSkKLSsgICAgcmV0Lmhvc3Rfc3RyID0gImxvY2FsaG9zdCI7Ci0rCi0rICBy ZXR1cm4gcmV0OwotK30KLSsKLSsvKiBTZWUgY29tbW9uL25ldHN0dWZmLmguICAqLwotKwotK3Bh cnNlZF9jb25uZWN0aW9uX3NwZWMKLStwYXJzZV9jb25uZWN0aW9uX3NwZWMgKGNvbnN0IGNoYXIg KnNwZWMsIHN0cnVjdCBhZGRyaW5mbyAqaGludCkKLSt7Ci0rICAvKiBTdHJ1Y3QgdG8gaG9sZCB0 aGUgYXNzb2NpYXRpb24gYmV0d2VlbiB2YWxpZCBwcmVmaXhlcywgdGhlaXIKLSsgICAgIGZhbWls eSBhbmQgc29ja3R5cGUuICAqLwotKyAgc3RydWN0IGhvc3RfcHJlZml4Ci0rICAgIHsKLSsgICAg ICAvKiBUaGUgcHJlZml4LiAgKi8KLSsgICAgICBjb25zdCBjaGFyICpwcmVmaXg7Ci0rCi0rICAg ICAgLyogVGhlICdhaV9mYW1pbHknLiAgKi8KLSsgICAgICBpbnQgZmFtaWx5OwotKwotKyAgICAg IC8qIFRoZSAnYWlfc29ja3R5cGUnLiAgKi8KLSsgICAgICBpbnQgc29ja3R5cGU7Ci0rICAgIH07 Ci0rICBzdGF0aWMgY29uc3Qgc3RydWN0IGhvc3RfcHJlZml4IHByZWZpeGVzW10gPQotKyAgICB7 Ci0rICAgICAgeyAidWRwOiIsICBBRl9VTlNQRUMsIFNPQ0tfREdSQU0gfSwKLSsgICAgICB7ICJ0 Y3A6IiwgIEFGX1VOU1BFQywgU09DS19TVFJFQU0gfSwKLSsgICAgICB7ICJ1ZHA0OiIsIEFGX0lO RVQsICAgU09DS19ER1JBTSB9LAotKyAgICAgIHsgInRjcDQ6IiwgQUZfSU5FVCwgICBTT0NLX1NU UkVBTSB9LAotKyAgICAgIHsgInVkcDY6IiwgQUZfSU5FVDYsICBTT0NLX0RHUkFNIH0sCi0rICAg ICAgeyAidGNwNjoiLCBBRl9JTkVUNiwgIFNPQ0tfU1RSRUFNIH0sCi0rICAgIH07Ci0rCi0rICBm b3IgKGNvbnN0IGhvc3RfcHJlZml4IHByZWZpeCA6IHByZWZpeGVzKQotKyAgICBpZiAoc3RhcnRz d2l0aCAoc3BlYywgcHJlZml4LnByZWZpeCkpCi0rICAgICAgewotKwlzcGVjICs9IHN0cmxlbiAo cHJlZml4LnByZWZpeCk7Ci0rCWhpbnQtPmFpX2ZhbWlseSA9IHByZWZpeC5mYW1pbHk7Ci0rCWhp bnQtPmFpX3NvY2t0eXBlID0gcHJlZml4LnNvY2t0eXBlOwotKwloaW50LT5haV9wcm90b2NvbAot KwkgID0gaGludC0+YWlfc29ja3R5cGUgPT0gU09DS19ER1JBTSA/IElQUFJPVE9fVURQIDogSVBQ Uk9UT19UQ1A7Ci0rCWJyZWFrOwotKyAgICAgIH0KLSsKLSsgIHJldHVybiBwYXJzZV9jb25uZWN0 aW9uX3NwZWNfd2l0aG91dF9wcmVmaXggKHNwZWMsIGhpbnQpOwotK30KLWRpZmYgLS1naXQgYS9n ZGIvY29tbW9uL25ldHN0dWZmLmggYi9nZGIvY29tbW9uL25ldHN0dWZmLmgKLW5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvY29tbW9uL25ldHN0dWZmLmgKLUBA IC0wLDAgKzEsNzYgQEAKLSsvKiBPcGVyYXRpb25zIG9uIG5ldHdvcmsgc3R1ZmYuCi0rICAgQ29w eXJpZ2h0IChDKSAyMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyAgIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5Ci0rICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKLSsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKwotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsgICBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCi0rCi0rI2lmbmRlZiBORVRTVFVGRl9ICi0rI2RlZmluZSBORVRTVFVGRl9I Ci0rCi0rI2luY2x1ZGUgPHN0cmluZz4KLSsKLSsvKiBMaWtlIE5JX01BWEhPU1QvTklfTUFYU0VS ViwgYnV0IGVub3VnaCBmb3IgbnVtZXJpYyBmb3Jtcy4gICovCi0rI2RlZmluZSBHREJfTklfTUFY X0FERFIgNjQKLSsjZGVmaW5lIEdEQl9OSV9NQVhfUE9SVCAxNgotKwotKy8qIEhlbHBlciBjbGFz cyB0byBndWFyYW50ZWUgdGhhdCB3ZSBhbHdheXMgY2FsbCAnZnJlZWFkZHJpbmZvJy4gICovCi0r Ci0rY2xhc3Mgc2NvcGVkX2ZyZWVfYWRkcmluZm8KLSt7Ci0rcHVibGljOgotKyAgLyogRGVmYXVs dCBjb25zdHJ1Y3Rvci4gICovCi0rICBleHBsaWNpdCBzY29wZWRfZnJlZV9hZGRyaW5mbyAoc3Ry dWN0IGFkZHJpbmZvICphaW5mbykKLSsgICAgOiBtX3JlcyAoYWluZm8pCi0rICB7Ci0rICB9Ci0r Ci0rICAvKiBEZXN0cnVjdG9yIHJlc3BvbnNpYmxlIGZvciBmcmVlJ2luZyBNX1JFUyBieSBjYWxs aW5nCi0rICAgICAnZnJlZWFkZHJpbmZvJy4gICovCi0rICB+c2NvcGVkX2ZyZWVfYWRkcmluZm8g KCk7Ci0rCi0rICBESVNBQkxFX0NPUFlfQU5EX0FTU0lHTiAoc2NvcGVkX2ZyZWVfYWRkcmluZm8p OwotKwotK3ByaXZhdGU6Ci0rICAvKiBUaGUgYWRkcmluZm8gcmVzb3VyY2UuICAqLwotKyAgc3Ry dWN0IGFkZHJpbmZvICptX3JlczsKLSt9OwotKwotKy8qIFRoZSBzdHJ1Y3Qgd2UgcmV0dXJuIGFm dGVyIHBhcnNpbmcgdGhlIGNvbm5lY3Rpb24gc3BlYy4gICovCi0rCi0rc3RydWN0IHBhcnNlZF9j b25uZWN0aW9uX3NwZWMKLSt7Ci0rICAvKiBUaGUgaG9zdG5hbWUuICAqLwotKyAgc3RkOjpzdHJp bmcgaG9zdF9zdHI7Ci0rCi0rICAvKiBUaGUgcG9ydCwgaWYgYW55LiAgKi8KLSsgIHN0ZDo6c3Ry aW5nIHBvcnRfc3RyOwotK307Ci0rCi0rCi0rLyogUGFyc2UgU1BFQyAod2hpY2ggaXMgYSBzdHJp bmcgaW4gdGhlIGZvcm0gb2YgIkFERFI6UE9SVCIpIGFuZAotKyAgIHJldHVybiBhICdwYXJzZWRf Y29ubmVjdGlvbl9zcGVjJyBzdHJ1Y3R1cmUgd2l0aCB0aGUgcHJvcGVyIGZpZWxkcwotKyAgIGZp bGxlZCBpbi4gIEFsc28gYWRqdXN0IEhJTlQgYWNjb3JkaW5nbHkuICAqLwotK2V4dGVybiBwYXJz ZWRfY29ubmVjdGlvbl9zcGVjCi0rICBwYXJzZV9jb25uZWN0aW9uX3NwZWNfd2l0aG91dF9wcmVm aXggKHN0ZDo6c3RyaW5nIHNwZWMsCi0rCQkJCQlzdHJ1Y3QgYWRkcmluZm8gKmhpbnQpOwotKwot Ky8qIFBhcnNlIFNQRUMgKHdoaWNoIGlzIGEgc3RyaW5nIGluIHRoZSBmb3JtIG9mCi0rICAgIlt0 Y3BbNl06fHVkcFs2XTpdQUREUjpQT1JUIikgYW5kIHJldHVybiBhICdwYXJzZWRfY29ubmVjdGlv bl9zcGVjJwotKyAgIHN0cnVjdHVyZSB3aXRoIHRoZSBwcm9wZXIgZmllbGRzIGZpbGxlZCBpbi4g IEFsc28gYWRqdXN0IEhJTlQKLSsgICBhY2NvcmRpbmdseS4gICovCi0rZXh0ZXJuIHBhcnNlZF9j b25uZWN0aW9uX3NwZWMgcGFyc2VfY29ubmVjdGlvbl9zcGVjIChjb25zdCBjaGFyICpzcGVjLAot KwkJCQkJCSAgICAgc3RydWN0IGFkZHJpbmZvICpoaW50KTsKLSsKLSsjZW5kaWYgLyogISBORVRT VFVGRl9IICovCi1kaWZmIC0tZ2l0IGEvZ2RiL2RvYy9DaGFuZ2VMb2cgYi9nZGIvZG9jL0NoYW5n ZUxvZwotLS0tIGEvZ2RiL2RvYy9DaGFuZ2VMb2cKLSsrKyBiL2dkYi9kb2MvQ2hhbmdlTG9nCi1A QCAtMSwzICsxLDExIEBACi0rMjAxOC0wNy0xMSAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2Vy Z2lvZGpAcmVkaGF0LmNvbT4KLSsJICAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4KLSsJICAgIFBhdWwgRmVydHNlciAgPGZlcmNlcnBhdkBnbWFpbC5jb20+Ci0r CSAgICBUc3V0b211IFNla2kgIDxzZWtpcmlraUBnbWFpbC5jb20+Ci0rCi0rCSogZ2RiLnRleGlu Zm8gKFJlbW90ZSBDb25uZWN0aW9uIENvbW1hbmRzKTogQWRkIGV4cGxhbmF0aW9uCi0rCWFib3V0 IG5ldyBJUHY2IHN1cHBvcnQuICBBZGQgbmV3IGNvbm5lY3Rpb24gcHJlZml4ZXMuCi0rCi0gMjAx OC0wNy0wMiAgTWFjaWVqIFcuIFJvenlja2kgIDxtYWNyb0BtaXBzLmNvbT4KLSAKLSAJUFIgdGRl cC84MjgyCi1kaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRl eGluZm8KLS0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KLSsrKyBiL2dkYi9kb2MvZ2RiLnRleGlu Zm8KLUBAIC0yMDU0OCwxNiArMjA1NDgsMjcgQEAgSWYgeW91J3JlIHVzaW5nIGEgc2VyaWFsIGxp bmUsIHlvdSBtYXkgd2FudCB0byBnaXZlIEB2YWx1ZXtHREJOfSB0aGUKLSBAY29kZXt0YXJnZXR9 IGNvbW1hbmQuCi0gCi0gQGl0ZW0gdGFyZ2V0IHJlbW90ZSBAY29kZXtAdmFye2hvc3R9OkB2YXJ7 cG9ydH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7QHZhcntbaG9zdF19OkB2YXJ7cG9y dH19Ci0gQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwOkB2YXJ7aG9zdH06QHZhcntwb3J0 fX0KLStAaXRlbXggdGFyZ2V0IHJlbW90ZSBAY29kZXt0Y3A6QHZhcntbaG9zdF19OkB2YXJ7cG9y dH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNDpAdmFye2hvc3R9OkB2YXJ7cG9y dH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNjpAdmFye2hvc3R9OkB2YXJ7cG9y dH19Ci0rQGl0ZW14IHRhcmdldCByZW1vdGUgQGNvZGV7dGNwNjpAdmFye1tob3N0XX06QHZhcntw b3J0fX0KLSBAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXtAdmFye2hvc3R9OkB2 YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7QHZhcntbaG9z dF19OkB2YXJ7cG9ydH19Ci0gQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNw OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBA Y29kZXt0Y3A6QHZhcntbaG9zdF19OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRl ZC1yZW1vdGUgQGNvZGV7dGNwNDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdl dCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0 ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dGNwNjpAdmFye1tob3N0XX06QHZhcntw b3J0fX0KLSBAY2luZGV4IEBhY3Jvbnlte1RDUH0gcG9ydCwgQGNvZGV7dGFyZ2V0IHJlbW90ZX0K LSBEZWJ1ZyB1c2luZyBhIEBhY3Jvbnlte1RDUH0gY29ubmVjdGlvbiB0byBAdmFye3BvcnR9IG9u IEB2YXJ7aG9zdH0uCi0tVGhlIEB2YXJ7aG9zdH0gbWF5IGJlIGVpdGhlciBhIGhvc3QgbmFtZSBv ciBhIG51bWVyaWMgQGFjcm9ueW17SVB9Ci0tYWRkcmVzczsgQHZhcntwb3J0fSBtdXN0IGJlIGEg ZGVjaW1hbCBudW1iZXIuICBUaGUgQHZhcntob3N0fSBjb3VsZCBiZQotLXRoZSB0YXJnZXQgbWFj aGluZSBpdHNlbGYsIGlmIGl0IGlzIGRpcmVjdGx5IGNvbm5lY3RlZCB0byB0aGUgbmV0LCBvcgot LWl0IG1pZ2h0IGJlIGEgdGVybWluYWwgc2VydmVyIHdoaWNoIGluIHR1cm4gaGFzIGEgc2VyaWFs IGxpbmUgdG8gdGhlCi0tdGFyZ2V0LgotK1RoZSBAdmFye2hvc3R9IG1heSBiZSBlaXRoZXIgYSBo b3N0IG5hbWUsIGEgbnVtZXJpYyBAYWNyb255bXtJUHY0fQotK2FkZHJlc3MsIG9yIGEgbnVtZXJp YyBAYWNyb255bXtJUHY2fSBhZGRyZXNzICh3aXRoIG9yIHdpdGhvdXQgdGhlCi0rc3F1YXJlIGJy YWNrZXRzIHRvIHNlcGFyYXRlIHRoZSBhZGRyZXNzIGZyb20gdGhlIHBvcnQpOyBAdmFye3BvcnR9 Ci0rbXVzdCBiZSBhIGRlY2ltYWwgbnVtYmVyLiAgVGhlIEB2YXJ7aG9zdH0gY291bGQgYmUgdGhl IHRhcmdldCBtYWNoaW5lCi0raXRzZWxmLCBpZiBpdCBpcyBkaXJlY3RseSBjb25uZWN0ZWQgdG8g dGhlIG5ldCwgb3IgaXQgbWlnaHQgYmUgYQotK3Rlcm1pbmFsIHNlcnZlciB3aGljaCBpbiB0dXJu IGhhcyBhIHNlcmlhbCBsaW5lIHRvIHRoZSB0YXJnZXQuCi0gCi0gRm9yIGV4YW1wbGUsIHRvIGNv bm5lY3QgdG8gcG9ydCAyODI4IG9uIGEgdGVybWluYWwgc2VydmVyIG5hbWVkCi0gQGNvZGV7bWFu eWZhcm1zfToKLUBAIC0yMDU2Niw2ICsyMDU3NywyOCBAQCBGb3IgZXhhbXBsZSwgdG8gY29ubmVj dCB0byBwb3J0IDI4Mjggb24gYSB0ZXJtaW5hbCBzZXJ2ZXIgbmFtZWQKLSB0YXJnZXQgcmVtb3Rl IG1hbnlmYXJtczoyODI4Ci0gQGVuZCBzbWFsbGV4YW1wbGUKLSAKLStUbyBjb25uZWN0IHRvIHBv cnQgMjgyOCBvbiBhIHRlcm1pbmFsIHNlcnZlciB3aG9zZSBhZGRyZXNzIGlzCi0rQGNvZGV7MjAw MTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0fSwgeW91IGNhbiBlaXRoZXIgdXNl IHRoZQotK3NxdWFyZSBicmFja2V0IHN5bnRheDoKLSsKLStAc21hbGxleGFtcGxlCi0rdGFyZ2V0 IHJlbW90ZSBbMjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0XToyODI4Ci0r QGVuZCBzbWFsbGV4YW1wbGUKLSsKLStAbm9pbmRlbnQKLStvciBleHBsaWNpdGx5IHNwZWNpZnkg dGhlIEBhY3Jvbnlte0lQdjZ9IHByb3RvY29sOgotKwotK0BzbWFsbGV4YW1wbGUKLSt0YXJnZXQg cmVtb3RlIHRjcDY6MjAwMTowZGI4Ojg1YTM6MDAwMDowMDAwOjhhMmU6MDM3MDo3MzM0OjI4MjgK LStAZW5kIHNtYWxsZXhhbXBsZQotKwotK1RoaXMgbGFzdCBleGFtcGxlIG1heSBiZSBjb25mdXNp bmcgdG8gdGhlIHJlYWRlciwgYmVjYXVzZSB0aGVyZSBpcyBubwotK3Zpc2libGUgc2VwYXJhdGlv biBiZXR3ZWVuIHRoZSBob3N0bmFtZSBhbmQgdGhlIHBvcnQgbnVtYmVyLgotK1RoZXJlZm9yZSwg d2UgcmVjb21tZW5kIHRoZSB1c2VyIHRvIHByb3ZpZGUgQGFjcm9ueW17SVB2Nn0gYWRkcmVzc2Vz Ci0rdXNpbmcgc3F1YXJlIGJyYWNrZXRzIGZvciBjbGFyaXR5LiAgSG93ZXZlciwgaXQgaXMgaW1w b3J0YW50IHRvCi0rbWVudGlvbiB0aGF0IGZvciBAdmFsdWV7R0RCTn0gdGhlcmUgaXMgbm8gYW1i aWd1aXR5OiB0aGUgbnVtYmVyIGFmdGVyCi0rdGhlIGxhc3QgY29sb24gaXMgY29uc2lkZXJlZCB0 byBiZSB0aGUgcG9ydCBudW1iZXIuCi0rCi0gSWYgeW91ciByZW1vdGUgdGFyZ2V0IGlzIGFjdHVh bGx5IHJ1bm5pbmcgb24gdGhlIHNhbWUgbWFjaGluZSBhcyB5b3VyCi0gZGVidWdnZXIgc2Vzc2lv biAoZS5nLkA6IGEgc2ltdWxhdG9yIGZvciB5b3VyIHRhcmdldCBydW5uaW5nIG9uIHRoZQotIHNh bWUgaG9zdCksIHlvdSBjYW4gb21pdCB0aGUgaG9zdG5hbWUuICBGb3IgZXhhbXBsZSwgdG8gY29u bmVjdCB0bwotQEAgLTIwNTc5LDcgKzIwNjEyLDE1IEBAIHRhcmdldCByZW1vdGUgOjEyMzQKLSBO b3RlIHRoYXQgdGhlIGNvbG9uIGlzIHN0aWxsIHJlcXVpcmVkIGhlcmUuCi0gCi0gQGl0ZW0gdGFy Z2V0IHJlbW90ZSBAY29kZXt1ZHA6QHZhcntob3N0fTpAdmFye3BvcnR9fQotK0BpdGVteCB0YXJn ZXQgcmVtb3RlIEBjb2Rle3VkcDpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KLStAaXRlbXggdGFy Z2V0IHJlbW90ZSBAY29kZXt1ZHA0OkB2YXJ7aG9zdH06QHZhcntwb3J0fX0KLStAaXRlbXggdGFy Z2V0IHJlbW90ZSBAY29kZXt1ZHA2OkB2YXJ7W2hvc3RdfTpAdmFye3BvcnR9fQotK0BpdGVteCB0 YXJnZXQgZXh0ZW5kZWQtcmVtb3RlIEBjb2Rle3VkcDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0g QGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRwOkB2YXJ7aG9zdH06QHZhcntw b3J0fX0KLStAaXRlbXggdGFyZ2V0IGV4dGVuZGVkLXJlbW90ZSBAY29kZXt1ZHA6QHZhcntbaG9z dF19OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUgQGNvZGV7dWRw NDpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRlZC1yZW1vdGUg QGNvZGV7dWRwNjpAdmFye2hvc3R9OkB2YXJ7cG9ydH19Ci0rQGl0ZW14IHRhcmdldCBleHRlbmRl ZC1yZW1vdGUgQGNvZGV7dWRwNjpAdmFye1tob3N0XX06QHZhcntwb3J0fX0KLSBAY2luZGV4IEBh Y3Jvbnlte1VEUH0gcG9ydCwgQGNvZGV7dGFyZ2V0IHJlbW90ZX0KLSBEZWJ1ZyB1c2luZyBAYWNy b255bXtVRFB9IHBhY2tldHMgdG8gQHZhcntwb3J0fSBvbiBAdmFye2hvc3R9LiAgRm9yIGV4YW1w bGUsIHRvCi0gY29ubmVjdCB0byBAYWNyb255bXtVRFB9IHBvcnQgMjgyOCBvbiBhIHRlcm1pbmFs IHNlcnZlciBuYW1lZCBAY29kZXttYW55ZmFybXN9OgotZGlmZiAtLWdpdCBhL2dkYi9nZGJzZXJ2 ZXIvQ2hhbmdlTG9nIGIvZ2RiL2dkYnNlcnZlci9DaGFuZ2VMb2cKLS0tLSBhL2dkYi9nZGJzZXJ2 ZXIvQ2hhbmdlTG9nCi0rKysgYi9nZGIvZ2Ric2VydmVyL0NoYW5nZUxvZwotQEAgLTEsMyArMSwy MiBAQAotKzIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhh dC5jb20+Ci0rCSAgICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ Ci0rCSAgICBQYXVsIEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgotKwkgICAgVHN1dG9t dSBTZWtpICA8c2VraXJpa2lAZ21haWwuY29tPgotKwotKwkqIE1ha2VmaWxlLmluIChTRklMRVMp OiBBZGQgJyQoc3JjZGlyKS9jb21tb24vbmV0c3R1ZmYuYycuCi0rCShPQlMpOiBBZGQgJ2NvbW1v bi9uZXRzdHVmZi5vJy4KLSsJKEdEQlJFUExBWV9PQlMpOiBMaWtld2lzZS4KLSsJKiBnZGJyZXBs YXkuYzogSW5jbHVkZSAnd3NwaWFwaS5oJyBhbmQgJ25ldHN0dWZmLmgnLgotKwkocmVtb3RlX29w ZW4pOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgSVB2NgotKwljb25uZWN0aW9ucy4KLSsJKiByZW1v dGUtdXRpbHMuYzogSW5jbHVkZSAnbmV0c3R1ZmYuaCcsICdmaWxlc3R1ZmYuaCcKLSsJYW5kICd3 c3BpYXBpLmgnLgotKwkoaGFuZGxlX2FjY2VwdF9ldmVudCk6IEFjY2VwdCBjb25uZWN0aW9ucyBm cm9tIElQdjYgc291cmNlcy4KLSsJKHJlbW90ZV9wcmVwYXJlKTogSGFuZGxlIElQdjYtc3R5bGUg aG9zdG5hbWVzOyBpbXBsZW1lbnQKLSsJc3VwcG9ydCBmb3IgSVB2NiBjb25uZWN0aW9ucy4KLSsJ KHJlbW90ZV9vcGVuKTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIHByaW50aW5nIGNvbm5lY3Rpb25z IGZyb20KLSsJSVB2NiBzb3VyY2VzLgotKwotIDIwMTgtMDctMTEgIFBlZHJvIEFsdmVzICA8cGFs dmVzQHJlZGhhdC5jb20+Ci0gCi0gCVBSIGdkYi8yMzM3NwotZGlmZiAtLWdpdCBhL2dkYi9nZGJz ZXJ2ZXIvTWFrZWZpbGUuaW4gYi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCi0tLS0gYS9nZGIv Z2Ric2VydmVyL01ha2VmaWxlLmluCi0rKysgYi9nZGIvZ2Ric2VydmVyL01ha2VmaWxlLmluCi1A QCAtMjExLDYgKzIxMSw3IEBAIFNGSUxFUyA9IFwKLSAJJChzcmNkaXIpL2NvbW1vbi9qb2ItY29u dHJvbC5jIFwKLSAJJChzcmNkaXIpL2NvbW1vbi9nZGJfdGlsZGVfZXhwYW5kLmMgXAotIAkkKHNy Y2RpcikvY29tbW9uL2dkYl92ZWNzLmMgXAotKwkkKHNyY2RpcikvY29tbW9uL25ldHN0dWZmLmMg XAotIAkkKHNyY2RpcikvY29tbW9uL25ldy1vcC5jIFwKLSAJJChzcmNkaXIpL2NvbW1vbi9wYXRo c3R1ZmYuYyBcCi0gCSQoc3JjZGlyKS9jb21tb24vcHJpbnQtdXRpbHMuYyBcCi1AQCAtMjU0LDYg KzI1NSw3IEBAIE9CUyA9IFwKLSAJY29tbW9uL2Zvcm1hdC5vIFwKLSAJY29tbW9uL2dkYl90aWxk ZV9leHBhbmQubyBcCi0gCWNvbW1vbi9nZGJfdmVjcy5vIFwKLSsJY29tbW9uL25ldHN0dWZmLm8g XAotIAljb21tb24vbmV3LW9wLm8gXAotIAljb21tb24vcGF0aHN0dWZmLm8gXAotIAljb21tb24v cHJpbnQtdXRpbHMubyBcCi1AQCAtMjkwLDYgKzI5Miw3IEBAIEdEQlJFUExBWV9PQlMgPSBcCi0g CWNvbW1vbi9jb21tb24tZXhjZXB0aW9ucy5vIFwKLSAJY29tbW9uL2NvbW1vbi11dGlscy5vIFwK LSAJY29tbW9uL2Vycm9ycy5vIFwKLSsJY29tbW9uL25ldHN0dWZmLm8gXAotIAljb21tb24vcHJp bnQtdXRpbHMubyBcCi0gCWdkYnJlcGxheS5vIFwKLSAJdXRpbHMubyBcCi1kaWZmIC0tZ2l0IGEv Z2RiL2dkYnNlcnZlci9nZGJyZXBsYXkuYyBiL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKLS0t LSBhL2dkYi9nZGJzZXJ2ZXIvZ2RicmVwbGF5LmMKLSsrKyBiL2dkYi9nZGJzZXJ2ZXIvZ2RicmVw bGF5LmMKLUBAIC00Niw4ICs0NiwxMSBAQAotIAotICNpZiBVU0VfV0lOMzJBUEkKLSAjaW5jbHVk ZSA8d2luc29jazIuaD4KLSsjaW5jbHVkZSA8d3NwaWFwaS5oPgotICNlbmRpZgotIAotKyNpbmNs dWRlICJuZXRzdHVmZi5oIgotKwotICNpZm5kZWYgSEFWRV9TT0NLTEVOX1QKLSB0eXBlZGVmIGlu dCBzb2NrbGVuX3Q7Ci0gI2VuZGlmCi1AQCAtMTQyLDU2ICsxNDUsMTA4IEBAIHJlbW90ZV9jbG9z ZSAodm9pZCkKLSBzdGF0aWMgdm9pZAotIHJlbW90ZV9vcGVuIChjaGFyICpuYW1lKQotIHsKLS0g IGlmICghc3RyY2hyIChuYW1lLCAnOicpKQotKyAgY2hhciAqbGFzdF9jb2xvbiA9IHN0cnJjaHIg KG5hbWUsICc6Jyk7Ci0rCi0rICBpZiAobGFzdF9jb2xvbiA9PSBOVUxMKQotICAgICB7Ci0gICAg ICAgZnByaW50ZiAoc3RkZXJyLCAiJXM6IE11c3Qgc3BlY2lmeSB0Y3AgY29ubmVjdGlvbiBhcyBo b3N0OmFkZHJcbiIsIG5hbWUpOwotICAgICAgIGZmbHVzaCAoc3RkZXJyKTsKLSAgICAgICBleGl0 ICgxKTsKLSAgICAgfQotLSAgZWxzZQotLSAgICB7Ci0rCi0gI2lmZGVmIFVTRV9XSU4zMkFQSQot LSAgICAgIHN0YXRpYyBpbnQgd2luc29ja19pbml0aWFsaXplZDsKLSsgIHN0YXRpYyBpbnQgd2lu c29ja19pbml0aWFsaXplZDsKLSAjZW5kaWYKLS0gICAgICBjaGFyICpwb3J0X3N0cjsKLS0gICAg ICBpbnQgcG9ydDsKLS0gICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gc29ja2FkZHI7Ci0tICAgICAg c29ja2xlbl90IHRtcDsKLS0gICAgICBpbnQgdG1wX2Rlc2M7Ci0rICBjaGFyICpwb3J0X3N0cjsK LSsgIGludCB0bXA7Ci0rICBpbnQgdG1wX2Rlc2M7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsK LSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87Ci0gCi0tICAgICAgcG9ydF9zdHIgPSBzdHJjaHIg KG5hbWUsICc6Jyk7Ci0rICBtZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKLSsgIC8q IEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNl Ci0rICAgICBBRl9VTlNQRUMuICAqLwotKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7Ci0r ICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19TVFJFQU07Ci0rICBoaW50LmFpX3Byb3RvY29sID0g SVBQUk9UT19UQ1A7Ci0gCi0tICAgICAgcG9ydCA9IGF0b2kgKHBvcnRfc3RyICsgMSk7Ci0rICBw YXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlZCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAobmFt ZSwgJmhpbnQpOwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKLSsgICAgZXJy b3IgKF8oIk1pc3NpbmcgcG9ydCBvbiBob3N0bmFtZSAnJXMnIiksIG5hbWUpOwotIAotICNpZmRl ZiBVU0VfV0lOMzJBUEkKLS0gICAgICBpZiAoIXdpbnNvY2tfaW5pdGlhbGl6ZWQpCi0tCXsKLS0J ICBXU0FEQVRBIHdzYWQ7Ci0rICBpZiAoIXdpbnNvY2tfaW5pdGlhbGl6ZWQpCi0rICAgIHsKLSsg ICAgICBXU0FEQVRBIHdzYWQ7Ci0gCi0tCSAgV1NBU3RhcnR1cCAoTUFLRVdPUkQgKDEsIDApLCAm d3NhZCk7Ci0tCSAgd2luc29ja19pbml0aWFsaXplZCA9IDE7Ci0tCX0KLSsgICAgICBXU0FTdGFy dHVwIChNQUtFV09SRCAoMSwgMCksICZ3c2FkKTsKLSsgICAgICB3aW5zb2NrX2luaXRpYWxpemVk ID0gMTsKLSsgICAgfQotICNlbmRpZgotIAotLSAgICAgIHRtcF9kZXNjID0gc29ja2V0IChQRl9J TkVULCBTT0NLX1NUUkVBTSwgMCk7Ci0tICAgICAgaWYgKHRtcF9kZXNjID09IC0xKQotLQlwZXJy b3Jfd2l0aF9uYW1lICgiQ2FuJ3Qgb3BlbiBzb2NrZXQiKTsKLSsgIGludCByID0gZ2V0YWRkcmlu Zm8gKHBhcnNlZC5ob3N0X3N0ci5jX3N0ciAoKSwgcGFyc2VkLnBvcnRfc3RyLmNfc3RyICgpLAot KwkJICAgICAgICZoaW50LCAmYWluZm8pOwotIAotLSAgICAgIC8qIEFsbG93IHJhcGlkIHJldXNl IG9mIHRoaXMgcG9ydC4gKi8KLS0gICAgICB0bXAgPSAxOwotLSAgICAgIHNldHNvY2tvcHQgKHRt cF9kZXNjLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsIChjaGFyICopICZ0bXAsCi0tCQkgIHNp emVvZiAodG1wKSk7Ci0rICBpZiAociAhPSAwKQotKyAgICB7Ci0rICAgICAgZnByaW50ZiAoc3Rk ZXJyLCAiJXM6JXM6IGNhbm5vdCByZXNvbHZlIG5hbWU6ICVzXG4iLAotKwkgICAgICAgcGFyc2Vk Lmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJzZWQucG9ydF9zdHIuY19zdHIgKCksCi0rCSAgICAgICBn YWlfc3RyZXJyb3IgKHIpKTsKLSsgICAgICBmZmx1c2ggKHN0ZGVycik7Ci0rICAgICAgZXhpdCAo MSk7Ci0rICAgIH0KLSsKLSsgIHNjb3BlZF9mcmVlX2FkZHJpbmZvIGZyZWVfYWluZm8gKGFpbmZv KTsKLSsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqcDsKLSsKLSsgIGZvciAocCA9IGFpbmZvOyBwICE9 IE5VTEw7IHAgPSBwLT5haV9uZXh0KQotKyAgICB7Ci0rICAgICAgdG1wX2Rlc2MgPSBzb2NrZXQg KHAtPmFpX2ZhbWlseSwgcC0+YWlfc29ja3R5cGUsIHAtPmFpX3Byb3RvY29sKTsKLSAKLS0gICAg ICBzb2NrYWRkci5zaW5fZmFtaWx5ID0gUEZfSU5FVDsKLS0gICAgICBzb2NrYWRkci5zaW5fcG9y dCA9IGh0b25zIChwb3J0KTsKLS0gICAgICBzb2NrYWRkci5zaW5fYWRkci5zX2FkZHIgPSBJTkFE RFJfQU5ZOwotKyAgICAgIGlmICh0bXBfZGVzYyA+PSAwKQotKwlicmVhazsKLSsgICAgfQotKwot KyAgaWYgKHAgPT0gTlVMTCkKLSsgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbm5vdCBvcGVuIHNv Y2tldCIpOwotIAotLSAgICAgIGlmIChiaW5kICh0bXBfZGVzYywgKHN0cnVjdCBzb2NrYWRkciAq KSAmc29ja2FkZHIsIHNpemVvZiAoc29ja2FkZHIpKQotLQkgIHx8IGxpc3RlbiAodG1wX2Rlc2Ms IDEpKQotLQlwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3QgYmluZCBhZGRyZXNzIik7Ci0rICAvKiBB bGxvdyByYXBpZCByZXVzZSBvZiB0aGlzIHBvcnQuICovCi0rICB0bXAgPSAxOwotKyAgc2V0c29j a29wdCAodG1wX2Rlc2MsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgKGNoYXIgKikgJnRtcCwK LSsJICAgICAgc2l6ZW9mICh0bXApKTsKLSsKLSsgIHN3aXRjaCAocC0+YWlfZmFtaWx5KQotKyAg ICB7Ci0rICAgIGNhc2UgQUZfSU5FVDoKLSsgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSBw LT5haV9hZGRyKS0+c2luX2FkZHIuc19hZGRyID0gSU5BRERSX0FOWTsKLSsgICAgICBicmVhazsK LSsgICAgY2FzZSBBRl9JTkVUNjoKLSsgICAgICAoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikgcC0+ YWlfYWRkciktPnNpbjZfYWRkciA9IGluNmFkZHJfYW55OwotKyAgICAgIGJyZWFrOwotKyAgICBk ZWZhdWx0OgotKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIkludmFsaWQgJ2FpX2ZhbWlseScgJWRc biIsIHAtPmFpX2ZhbWlseSk7Ci0rICAgICAgZXhpdCAoMSk7Ci0rICAgIH0KLSsKLSsgIGlmIChi aW5kICh0bXBfZGVzYywgcC0+YWlfYWRkciwgcC0+YWlfYWRkcmxlbikgIT0gMCkKLSsgICAgcGVy cm9yX3dpdGhfbmFtZSAoIkNhbid0IGJpbmQgYWRkcmVzcyIpOwotKwotKyAgaWYgKHAtPmFpX3Nv Y2t0eXBlID09IFNPQ0tfREdSQU0pCi0rICAgIHJlbW90ZV9kZXNjID0gdG1wX2Rlc2M7Ci0rICBl bHNlCi0rICAgIHsKLSsgICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKLSsg ICAgICBzb2NrbGVuX3Qgc29ja2FkZHJzaXplID0gc2l6ZW9mIChzb2NrYWRkcik7Ci0rICAgICAg Y2hhciBvcmlnX2hvc3RbR0RCX05JX01BWF9BRERSXSwgb3JpZ19wb3J0W0dEQl9OSV9NQVhfUE9S VF07Ci0rCi0rICAgICAgaWYgKGxpc3RlbiAodG1wX2Rlc2MsIDEpICE9IDApCi0rCXBlcnJvcl93 aXRoX25hbWUgKCJDYW4ndCBsaXN0ZW4gb24gc29ja2V0Iik7Ci0rCi0rICAgICAgcmVtb3RlX2Rl c2MgPSBhY2NlcHQgKHRtcF9kZXNjLCAoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwKLSsJ CQkgICAgJnNvY2thZGRyc2l6ZSk7Ci0gCi0tICAgICAgdG1wID0gc2l6ZW9mIChzb2NrYWRkcik7 Ci0tICAgICAgcmVtb3RlX2Rlc2MgPSBhY2NlcHQgKHRtcF9kZXNjLCAoc3RydWN0IHNvY2thZGRy ICopICZzb2NrYWRkciwgJnRtcCk7Ci0gICAgICAgaWYgKHJlbW90ZV9kZXNjID09IC0xKQotIAlw ZXJyb3Jfd2l0aF9uYW1lICgiQWNjZXB0IGZhaWxlZCIpOwotIAotQEAgLTIwNiw2ICsyNjEsMTYg QEAgcmVtb3RlX29wZW4gKGNoYXIgKm5hbWUpCi0gICAgICAgc2V0c29ja29wdCAocmVtb3RlX2Rl c2MsIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxBWSwKLSAJCSAgKGNoYXIgKikgJnRtcCwgc2l6ZW9m ICh0bXApKTsKLSAKLSsgICAgICBpZiAoZ2V0bmFtZWluZm8gKChzdHJ1Y3Qgc29ja2FkZHIgKikg JnNvY2thZGRyLCBzb2NrYWRkcnNpemUsCi0rCQkgICAgICAgb3JpZ19ob3N0LCBzaXplb2YgKG9y aWdfaG9zdCksCi0rCQkgICAgICAgb3JpZ19wb3J0LCBzaXplb2YgKG9yaWdfcG9ydCksCi0rCQkg ICAgICAgTklfTlVNRVJJQ0hPU1QgfCBOSV9OVU1FUklDU0VSVikgPT0gMCkKLSsJewotKwkgIGZw cmludGYgKHN0ZGVyciwgIlJlbW90ZSBkZWJ1Z2dpbmcgZnJvbSBob3N0ICVzLCBwb3J0ICVzXG4i LAotKwkJICAgb3JpZ19ob3N0LCBvcmlnX3BvcnQpOwotKwkgIGZmbHVzaCAoc3RkZXJyKTsKLSsJ fQotKwotICNpZm5kZWYgVVNFX1dJTjMyQVBJCi0gICAgICAgY2xvc2UgKHRtcF9kZXNjKTsJCS8q IE5vIGxvbmdlciBuZWVkIHRoaXMgKi8KLSAKLWRpZmYgLS1naXQgYS9nZGIvZ2Ric2VydmVyL3Jl bW90ZS11dGlscy5jIGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMuYwotLS0tIGEvZ2RiL2dk YnNlcnZlci9yZW1vdGUtdXRpbHMuYwotKysrIGIvZ2RiL2dkYnNlcnZlci9yZW1vdGUtdXRpbHMu YwotQEAgLTI2LDYgKzI2LDggQEAKLSAjaW5jbHVkZSAiZGxsLmgiCi0gI2luY2x1ZGUgInJzcC1s b3cuaCIKLSAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCi0rI2luY2x1ZGUgIm5ldHN0dWZmLmgiCi0r I2luY2x1ZGUgImZpbGVzdHVmZi5oIgotICNpbmNsdWRlIDxjdHlwZS5oPgotICNpZiBIQVZFX1NZ U19JT0NUTF9ICi0gI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgotQEAgLTYzLDYgKzY1LDcgQEAKLSAK LSAjaWYgVVNFX1dJTjMyQVBJCi0gI2luY2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2luY2x1ZGUgPHdz cGlhcGkuaD4KLSAjZW5kaWYKLSAKLSAjaWYgX19RTlhfXwotQEAgLTE1MSwxOSArMTU0LDE4IEBA IGVuYWJsZV9hc3luY19ub3RpZmljYXRpb24gKGludCBmZCkKLSBzdGF0aWMgaW50Ci0gaGFuZGxl X2FjY2VwdF9ldmVudCAoaW50IGVyciwgZ2RiX2NsaWVudF9kYXRhIGNsaWVudF9kYXRhKQotIHsK LS0gIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsKLS0gIHNvY2tsZW5fdCB0bXA7Ci0rICBz dHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRkcjsKLSsgIHNvY2tsZW5fdCBsZW4gPSBzaXpl b2YgKHNvY2thZGRyKTsKLSAKLSAgIGlmIChkZWJ1Z190aHJlYWRzKQotICAgICBkZWJ1Z19wcmlu dGYgKCJoYW5kbGluZyBwb3NzaWJsZSBhY2NlcHQgZXZlbnRcbiIpOwotIAotLSAgdG1wID0gc2l6 ZW9mIChzb2NrYWRkcik7Ci0tICByZW1vdGVfZGVzYyA9IGFjY2VwdCAobGlzdGVuX2Rlc2MsIChz dHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCAmdG1wKTsKLSsgIHJlbW90ZV9kZXNjID0gYWNj ZXB0IChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pOwot ICAgaWYgKHJlbW90ZV9kZXNjID09IC0xKQotICAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQWNjZXB0 IGZhaWxlZCIpOwotIAotICAgLyogRW5hYmxlIFRDUCBrZWVwIGFsaXZlIHByb2Nlc3MuICovCi0t ICB0bXAgPSAxOwotKyAgc29ja2xlbl90IHRtcCA9IDE7Ci0gICBzZXRzb2Nrb3B0IChyZW1vdGVf ZGVzYywgU09MX1NPQ0tFVCwgU09fS0VFUEFMSVZFLAotIAkgICAgICAoY2hhciAqKSAmdG1wLCBz aXplb2YgKHRtcCkpOwotIAotQEAgLTE5Miw4ICsxOTQsMTkgQEAgaGFuZGxlX2FjY2VwdF9ldmVu dCAoaW50IGVyciwgZ2RiX2NsaWVudF9kYXRhIGNsaWVudF9kYXRhKQotICAgZGVsZXRlX2ZpbGVf aGFuZGxlciAobGlzdGVuX2Rlc2MpOwotIAotICAgLyogQ29udmVydCBJUCBhZGRyZXNzIHRvIHN0 cmluZy4gICovCi0tICBmcHJpbnRmIChzdGRlcnIsICJSZW1vdGUgZGVidWdnaW5nIGZyb20gaG9z dCAlc1xuIiwKLS0JICAgaW5ldF9udG9hIChzb2NrYWRkci5zaW5fYWRkcikpOwotKyAgY2hhciBv cmlnX2hvc3RbR0RCX05JX01BWF9BRERSXSwgb3JpZ19wb3J0W0dEQl9OSV9NQVhfUE9SVF07Ci0r Ci0rICBpbnQgciA9IGdldG5hbWVpbmZvICgoc3RydWN0IHNvY2thZGRyICopICZzb2NrYWRkciwg bGVuLAotKwkJICAgICAgIG9yaWdfaG9zdCwgc2l6ZW9mIChvcmlnX2hvc3QpLAotKwkJICAgICAg IG9yaWdfcG9ydCwgc2l6ZW9mIChvcmlnX3BvcnQpLAotKwkJICAgICAgIE5JX05VTUVSSUNIT1NU IHwgTklfTlVNRVJJQ1NFUlYpOwotKwotKyAgaWYgKHIgIT0gMCkKLSsgICAgZnByaW50ZiAoc3Rk ZXJyLCBfKCJDb3VsZCBub3Qgb2J0YWluIHJlbW90ZSBhZGRyZXNzOiAlc1xuIiksCi0rCSAgICAg Z2FpX3N0cmVycm9yIChyKSk7Ci0rICBlbHNlCi0rICAgIGZwcmludGYgKHN0ZGVyciwgXygiUmVt b3RlIGRlYnVnZ2luZyBmcm9tIGhvc3QgJXMsIHBvcnQgJXNcbiIpLAotKwkgICAgIG9yaWdfaG9z dCwgb3JpZ19wb3J0KTsKLSAKLSAgIGVuYWJsZV9hc3luY19ub3RpZmljYXRpb24gKHJlbW90ZV9k ZXNjKTsKLSAKLUBAIC0yMjIsMTAgKzIzNSw3IEBAIHJlbW90ZV9wcmVwYXJlIChjb25zdCBjaGFy ICpuYW1lKQotICNpZmRlZiBVU0VfV0lOMzJBUEkKLSAgIHN0YXRpYyBpbnQgd2luc29ja19pbml0 aWFsaXplZDsKLSAjZW5kaWYKLS0gIGludCBwb3J0OwotLSAgc3RydWN0IHNvY2thZGRyX2luIHNv Y2thZGRyOwotICAgc29ja2xlbl90IHRtcDsKLS0gIGNoYXIgKnBvcnRfZW5kOwotIAotICAgcmVt b3RlX2lzX3N0ZGlvID0gMDsKLSAgIGlmIChzdHJjbXAgKG5hbWUsIFNURElPX0NPTk5FQ1RJT05f TkFNRSkgPT0gMCkKLUBAIC0yMzgsMTcgKzI0OCwyNSBAQCByZW1vdGVfcHJlcGFyZSAoY29uc3Qg Y2hhciAqbmFtZSkKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0gIHBvcnRfc3RyID0gc3Ry Y2hyIChuYW1lLCAnOicpOwotLSAgaWYgKHBvcnRfc3RyID09IE5VTEwpCi0rICBzdHJ1Y3QgYWRk cmluZm8gaGludDsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87Ci0rCi0rICBtZW1zZXQgKCZo aW50LCAwLCBzaXplb2YgKGhpbnQpKTsKLSsgIC8qIEFzc3VtZSBubyBwcmVmaXggd2lsbCBiZSBw YXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCi0rICAgICBBRl9VTlNQRUMuICAqLwotKyAg aGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7Ci0rICBoaW50LmFpX3NvY2t0eXBlID0gU09DS19T VFJFQU07Ci0rICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7Ci0rCi0rICBwYXJzZWRf Y29ubmVjdGlvbl9zcGVjIHBhcnNlZAotKyAgICA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlY193aXRo b3V0X3ByZWZpeCAobmFtZSwgJmhpbnQpOwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0 eSAoKSkKLSAgICAgewotICAgICAgIGNzLnRyYW5zcG9ydF9pc19yZWxpYWJsZSA9IDA7Ci0gICAg ICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICBwb3J0ID0gc3RydG91bCAocG9ydF9zdHIgKyAxLCAm cG9ydF9lbmQsIDEwKTsKLS0gIGlmIChwb3J0X3N0clsxXSA9PSAnXDAnIHx8ICpwb3J0X2VuZCAh PSAnXDAnKQotLSAgICBlcnJvciAoIkJhZCBwb3J0IGFyZ3VtZW50OiAlcyIsIG5hbWUpOwotLQot ICNpZmRlZiBVU0VfV0lOMzJBUEkKLSAgIGlmICghd2luc29ja19pbml0aWFsaXplZCkKLSAgICAg ewotQEAgLTI1OSw4ICsyNzcsMjYgQEAgcmVtb3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUp Ci0gICAgIH0KLSAjZW5kaWYKLSAKLS0gIGxpc3Rlbl9kZXNjID0gc29ja2V0IChQRl9JTkVULCBT T0NLX1NUUkVBTSwgSVBQUk9UT19UQ1ApOwotLSAgaWYgKGxpc3Rlbl9kZXNjID09IC0xKQotKyAg aW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLCBwYXJzZWQucG9y dF9zdHIuY19zdHIgKCksCi0rCQkgICAgICAgJmhpbnQsICZhaW5mbyk7Ci0rCi0rICBpZiAociAh PSAwKQotKyAgICBlcnJvciAoXygiJXM6IGNhbm5vdCByZXNvbHZlIG5hbWU6ICVzIiksIG5hbWUs IGdhaV9zdHJlcnJvciAocikpOwotKwotKyAgc2NvcGVkX2ZyZWVfYWRkcmluZm8gZnJlZWFkZHJp bmZvIChhaW5mbyk7Ci0rCi0rICBzdHJ1Y3QgYWRkcmluZm8gKml0ZXI7Ci0rCi0rICBmb3IgKGl0 ZXIgPSBhaW5mbzsgaXRlciAhPSBOVUxMOyBpdGVyID0gaXRlci0+YWlfbmV4dCkKLSsgICAgewot KyAgICAgIGxpc3Rlbl9kZXNjID0gZ2RiX3NvY2tldF9jbG9leGVjIChpdGVyLT5haV9mYW1pbHks IGl0ZXItPmFpX3NvY2t0eXBlLAotKwkJCQkJaXRlci0+YWlfcHJvdG9jb2wpOwotKwotKyAgICAg IGlmIChsaXN0ZW5fZGVzYyA+PSAwKQotKwlicmVhazsKLSsgICAgfQotKwotKyAgaWYgKGl0ZXIg PT0gTlVMTCkKLSAgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IG9wZW4gc29ja2V0Iik7Ci0g Ci0gICAvKiBBbGxvdyByYXBpZCByZXVzZSBvZiB0aGlzIHBvcnQuICovCi1AQCAtMjY4LDE0ICsz MDQsMjUgQEAgcmVtb3RlX3ByZXBhcmUgKGNvbnN0IGNoYXIgKm5hbWUpCi0gICBzZXRzb2Nrb3B0 IChsaXN0ZW5fZGVzYywgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAoY2hhciAqKSAmdG1wLAot IAkgICAgICBzaXplb2YgKHRtcCkpOwotIAotLSAgc29ja2FkZHIuc2luX2ZhbWlseSA9IFBGX0lO RVQ7Ci0tICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKLS0gIHNvY2thZGRyLnNp bl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7Ci0rICBzd2l0Y2ggKGl0ZXItPmFpX2ZhbWlseSkK LSsgICAgewotKyAgICBjYXNlIEFGX0lORVQ6Ci0rICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW4g KikgaXRlci0+YWlfYWRkciktPnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7Ci0rICAgICAg YnJlYWs7Ci0rICAgIGNhc2UgQUZfSU5FVDY6Ci0rICAgICAgKChzdHJ1Y3Qgc29ja2FkZHJfaW42 ICopIGl0ZXItPmFpX2FkZHIpLT5zaW42X2FkZHIgPSBpbjZhZGRyX2FueTsKLSsgICAgICBicmVh azsKLSsgICAgZGVmYXVsdDoKLSsgICAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElO RV9fLAotKwkJICAgICAgXygiSW52YWxpZCAnYWlfZmFtaWx5JyAlZFxuIiksIGl0ZXItPmFpX2Zh bWlseSk7Ci0rICAgIH0KLSAKLS0gIGlmIChiaW5kIChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2Nr YWRkciAqKSAmc29ja2FkZHIsIHNpemVvZiAoc29ja2FkZHIpKQotLSAgICAgIHx8IGxpc3RlbiAo bGlzdGVuX2Rlc2MsIDEpKQotKyAgaWYgKGJpbmQgKGxpc3Rlbl9kZXNjLCBpdGVyLT5haV9hZGRy LCBpdGVyLT5haV9hZGRybGVuKSAhPSAwKQotICAgICBwZXJyb3Jfd2l0aF9uYW1lICgiQ2FuJ3Qg YmluZCBhZGRyZXNzIik7Ci0gCi0rICBpZiAobGlzdGVuIChsaXN0ZW5fZGVzYywgMSkgIT0gMCkK LSsgICAgcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGxpc3RlbiBvbiBzb2NrZXQiKTsKLSsKLSAg IGNzLnRyYW5zcG9ydF9pc19yZWxpYWJsZSA9IDE7Ci0gfQotIAotQEAgLTM1MCwxOCArMzk3LDI0 IEBAIHJlbW90ZV9vcGVuIChjb25zdCBjaGFyICpuYW1lKQotICNlbmRpZiAvKiBVU0VfV0lOMzJB UEkgKi8KLSAgIGVsc2UKLSAgICAgewotLSAgICAgIGludCBwb3J0OwotLSAgICAgIHNvY2tsZW5f dCBsZW47Ci0tICAgICAgc3RydWN0IHNvY2thZGRyX2luIHNvY2thZGRyOwotLQotLSAgICAgIGxl biA9IHNpemVvZiAoc29ja2FkZHIpOwotLSAgICAgIGlmIChnZXRzb2NrbmFtZSAobGlzdGVuX2Rl c2MsCi0tCQkgICAgICAgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2FkZHIsICZsZW4pIDwgMAot LQkgIHx8IGxlbiA8IHNpemVvZiAoc29ja2FkZHIpKQotKyAgICAgIGNoYXIgbGlzdGVuX3BvcnRb R0RCX05JX01BWF9QT1JUXTsKLSsgICAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBzb2NrYWRk cjsKLSsgICAgICBzb2NrbGVuX3QgbGVuID0gc2l6ZW9mIChzb2NrYWRkcik7Ci0rCi0rICAgICAg aWYgKGdldHNvY2tuYW1lIChsaXN0ZW5fZGVzYywgKHN0cnVjdCBzb2NrYWRkciAqKSAmc29ja2Fk ZHIsICZsZW4pIDwgMCkKLSAJcGVycm9yX3dpdGhfbmFtZSAoIkNhbid0IGRldGVybWluZSBwb3J0 Iik7Ci0tICAgICAgcG9ydCA9IG50b2hzIChzb2NrYWRkci5zaW5fcG9ydCk7Ci0gCi0tICAgICAg ZnByaW50ZiAoc3RkZXJyLCAiTGlzdGVuaW5nIG9uIHBvcnQgJWRcbiIsIHBvcnQpOwotKyAgICAg IGludCByID0gZ2V0bmFtZWluZm8gKChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBsZW4s Ci0rCQkJICAgTlVMTCwgMCwKLSsJCQkgICBsaXN0ZW5fcG9ydCwgc2l6ZW9mIChsaXN0ZW5fcG9y dCksCi0rCQkJICAgTklfTlVNRVJJQ1NFUlYpOwotKwotKyAgICAgIGlmIChyICE9IDApCi0rCWZw cmludGYgKHN0ZGVyciwgXygiQ2FuJ3Qgb2J0YWluIHBvcnQgd2hlcmUgd2UgYXJlIGxpc3Rlbmlu ZzogJXMiKSwKLSsJCSBnYWlfc3RyZXJyb3IgKHIpKTsKLSsgICAgICBlbHNlCi0rCWZwcmludGYg KHN0ZGVyciwgXygiTGlzdGVuaW5nIG9uIHBvcnQgJXNcbiIpLCBsaXN0ZW5fcG9ydCk7Ci0rCi0g ICAgICAgZmZsdXNoIChzdGRlcnIpOwotIAotICAgICAgIC8qIFJlZ2lzdGVyIHRoZSBldmVudCBs b29wIGhhbmRsZXIuICAqLwotZGlmZiAtLWdpdCBhL2dkYi9zZXItdGNwLmMgYi9nZGIvc2VyLXRj cC5jCi0tLS0gYS9nZGIvc2VyLXRjcC5jCi0rKysgYi9nZGIvc2VyLXRjcC5jCi1AQCAtMjUsNiAr MjUsNyBAQAotICNpbmNsdWRlICJjbGkvY2xpLWRlY29kZS5oIgotICNpbmNsdWRlICJjbGkvY2xp LXNldHNob3cuaCIKLSAjaW5jbHVkZSAiZmlsZXN0dWZmLmgiCi0rI2luY2x1ZGUgIm5ldHN0dWZm LmgiCi0gCi0gI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotIAotQEAgLTM5LDYgKzQwLDcgQEAKLSAK LSAjaWZkZWYgVVNFX1dJTjMyQVBJCi0gI2luY2x1ZGUgPHdpbnNvY2syLmg+Ci0rI2luY2x1ZGUg PHdzcGlhcGkuaD4KLSAjaWZuZGVmIEVUSU1FRE9VVAotICNkZWZpbmUgRVRJTUVET1VUIFdTQUVU SU1FRE9VVAotICNlbmRpZgotQEAgLTgxLDEyICs4MywxMyBAQCBzdGF0aWMgdW5zaWduZWQgaW50 IHRjcF9yZXRyeV9saW1pdCA9IDE1OwotIAotICNkZWZpbmUgUE9MTF9JTlRFUlZBTCA1Ci0gCi0t LyogSGVscGVyIGZ1bmN0aW9uIHRvIHdhaXQgYSB3aGlsZS4gIElmIFNDQiBpcyBub24tbnVsbCwg d2FpdCBvbiBpdHMKLS0gICBmaWxlIGRlc2NyaXB0b3IuICBPdGhlcndpc2UganVzdCB3YWl0IG9u IGEgdGltZW91dCwgdXBkYXRpbmcgKlBPTExTLgotLSAgIFJldHVybnMgLTEgb24gdGltZW91dCBv ciBpbnRlcnJ1cHQsIG90aGVyd2lzZSB0aGUgdmFsdWUgb2Ygc2VsZWN0LiAgKi8KLSsvKiBIZWxw ZXIgZnVuY3Rpb24gdG8gd2FpdCBhIHdoaWxlLiAgSWYgU09DSyBpcyBub3QgLTEsIHdhaXQgb24g aXRzCi0rICAgZmlsZSBkZXNjcmlwdG9yLiAgT3RoZXJ3aXNlIGp1c3Qgd2FpdCBvbiBhIHRpbWVv dXQsIHVwZGF0aW5nCi0rICAgKlBPTExTLiAgUmV0dXJucyAtMSBvbiB0aW1lb3V0IG9yIGludGVy cnVwdCwgb3RoZXJ3aXNlIHRoZSB2YWx1ZSBvZgotKyAgIHNlbGVjdC4gICovCi0gCi0gc3RhdGlj IGludAotLXdhaXRfZm9yX2Nvbm5lY3QgKHN0cnVjdCBzZXJpYWwgKnNjYiwgdW5zaWduZWQgaW50 ICpwb2xscykKLSt3YWl0X2Zvcl9jb25uZWN0IChpbnQgc29jaywgdW5zaWduZWQgaW50ICpwb2xs cykKLSB7Ci0gICBzdHJ1Y3QgdGltZXZhbCB0OwotICAgaW50IG47Ci1AQCAtMTIwLDI0ICsxMjMs MjQgQEAgd2FpdF9mb3JfY29ubmVjdCAoc3RydWN0IHNlcmlhbCAqc2NiLCB1bnNpZ25lZCBpbnQg KnBvbGxzKQotICAgICAgIHQudHZfdXNlYyA9IDA7Ci0gICAgIH0KLSAKLS0gIGlmIChzY2IpCi0r ICBpZiAoc29jayA+PSAwKQotICAgICB7Ci0gICAgICAgZmRfc2V0IHJzZXQsIHdzZXQsIGVzZXQ7 Ci0gCi0gICAgICAgRkRfWkVSTyAoJnJzZXQpOwotLSAgICAgIEZEX1NFVCAoc2NiLT5mZCwgJnJz ZXQpOwotKyAgICAgIEZEX1NFVCAoc29jaywgJnJzZXQpOwotICAgICAgIHdzZXQgPSByc2V0Owot ICAgICAgIGVzZXQgPSByc2V0OwotLQkgIAotKwotICAgICAgIC8qIFBPU0lYIHN5c3RlbXMgcmV0 dXJuIGNvbm5lY3Rpb24gc3VjY2VzcyBvciBmYWlsdXJlIGJ5IHNpZ25hbGxpbmcKLSAJIHdzZXQu ICBXaW5kb3dzIHN5c3RlbXMgcmV0dXJuIHN1Y2Nlc3MgaW4gd3NldCBhbmQgZmFpbHVyZSBpbgot IAkgZXNldC4KLS0gICAgIAotKwotIAkgV2UgbXVzdCBjYWxsIHNlbGVjdCBoZXJlLCByYXRoZXIg dGhhbiBnZGJfc2VsZWN0LCBiZWNhdXNlCi0gCSB0aGUgc2VyaWFsIHN0cnVjdHVyZSBoYXMgbm90 IHlldCBiZWVuIGluaXRpYWxpemVkIC0gdGhlCi0gCSBNaW5HVyBzZWxlY3Qgd3JhcHBlciB3aWxs IG5vdCBrbm93IHRoYXQgdGhpcyBGRCByZWZlcnMKLSAJIHRvIGEgc29ja2V0LiAgKi8KLS0gICAg ICBuID0gc2VsZWN0IChzY2ItPmZkICsgMSwgJnJzZXQsICZ3c2V0LCAmZXNldCwgJnQpOwotKyAg ICAgIG4gPSBzZWxlY3QgKHNvY2sgKyAxLCAmcnNldCwgJndzZXQsICZlc2V0LCAmdCk7Ci0gICAg IH0KLSAgIGVsc2UKLSAgICAgLyogVXNlIGdkYl9zZWxlY3QgaGVyZSwgc2luY2Ugd2UgaGF2ZSBu byBmaWxlIGRlc2NyaXB0b3JzLCBhbmQgb24KLUBAIC0xNTMsODAgKzE1NiwyOCBAQCB3YWl0X2Zv cl9jb25uZWN0IChzdHJ1Y3Qgc2VyaWFsICpzY2IsIHVuc2lnbmVkIGludCAqcG9sbHMpCi0gICBy ZXR1cm4gbjsKLSB9Ci0gCi0tLyogT3BlbiBhIHRjcCBzb2NrZXQuICAqLwotKy8qIFRyeSB0byBj b25uZWN0IHRvIHRoZSBob3N0IHJlcHJlc2VudGVkIGJ5IEFJTkZPLiAgSWYgdGhlIGNvbm5lY3Rp b24KLSsgICBzdWNjZWVkcywgcmV0dXJuIGl0cyBzb2NrZXQuICBPdGhlcndpc2UsIHJldHVybiAt MSBhbmQgc2V0IEVSUk5PCi0rICAgYWNjb3JkaW5nbHkuICBQT0xMUyBpcyB1c2VkIHdoZW4gJ2Nv bm5lY3QnIHJldHVybnMgRUlOUFJPR1JFU1MsIGFuZAotKyAgIHdlIG5lZWQgdG8gaW52b2tlICd3 YWl0X2Zvcl9jb25uZWN0JyB0byBvYnRhaW4gdGhlIHN0YXR1cy4gICovCi0gCi0taW50Ci0tbmV0 X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKLStzdGF0aWMgaW50 Ci0rdHJ5X2Nvbm5lY3QgKGNvbnN0IHN0cnVjdCBhZGRyaW5mbyAqYWluZm8sIHVuc2lnbmVkIGlu dCAqcG9sbHMpCi0gewotLSAgY2hhciBob3N0bmFtZVsxMDBdOwotLSAgY29uc3QgY2hhciAqcG9y dF9zdHI7Ci0tICBpbnQgbiwgcG9ydCwgdG1wOwotLSAgaW50IHVzZV91ZHA7Ci0tICBzdHJ1Y3Qg aG9zdGVudCAqaG9zdGVudDsKLS0gIHN0cnVjdCBzb2NrYWRkcl9pbiBzb2NrYWRkcjsKLS0jaWZk ZWYgVVNFX1dJTjMyQVBJCi0tICB1X2xvbmcgaW9hcmc7Ci0tI2Vsc2UKLS0gIGludCBpb2FyZzsK LS0jZW5kaWYKLS0gIHVuc2lnbmVkIGludCBwb2xscyA9IDA7Ci0tCi0tICB1c2VfdWRwID0gMDsK LS0gIGlmIChzdGFydHN3aXRoIChuYW1lLCAidWRwOiIpKQotLSAgICB7Ci0tICAgICAgdXNlX3Vk cCA9IDE7Ci0tICAgICAgbmFtZSA9IG5hbWUgKyA0OwotLSAgICB9Ci0tICBlbHNlIGlmIChzdGFy dHN3aXRoIChuYW1lLCAidGNwOiIpKQotLSAgICBuYW1lID0gbmFtZSArIDQ7Ci0tCi0tICBwb3J0 X3N0ciA9IHN0cmNociAobmFtZSwgJzonKTsKLS0KLS0gIGlmICghcG9ydF9zdHIpCi0tICAgIGVy cm9yIChfKCJuZXRfb3BlbjogTm8gY29sb24gaW4gaG9zdCBuYW1lISIpKTsgIC8qIFNob3VsZG4n dCBldmVyCi0tCQkJCQkJICAgICAgIGhhcHBlbi4gICovCi0tCi0tICB0bXAgPSBzdGQ6Om1pbiAo cG9ydF9zdHIgLSBuYW1lLCAocHRyZGlmZl90KSBzaXplb2YgaG9zdG5hbWUgLSAxKTsKLS0gIHN0 cm5jcHkgKGhvc3RuYW1lLCBuYW1lLCB0bXApOwkvKiBEb24ndCB3YW50IGNvbG9uLiAgKi8KLS0g IGhvc3RuYW1lW3RtcF0gPSAnXDAwMCc7CS8qIFRpZSBvZmYgaG9zdCBuYW1lLiAgKi8KLS0gIHBv cnQgPSBhdG9pIChwb3J0X3N0ciArIDEpOwotLQotLSAgLyogRGVmYXVsdCBob3N0bmFtZSBpcyBs b2NhbGhvc3QuICAqLwotLSAgaWYgKCFob3N0bmFtZVswXSkKLS0gICAgc3RyY3B5IChob3N0bmFt ZSwgImxvY2FsaG9zdCIpOwotLQotLSAgaG9zdGVudCA9IGdldGhvc3RieW5hbWUgKGhvc3RuYW1l KTsKLS0gIGlmICghaG9zdGVudCkKLS0gICAgewotLSAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAo Z2RiX3N0ZGVyciwgIiVzOiB1bmtub3duIGhvc3RcbiIsIGhvc3RuYW1lKTsKLS0gICAgICBlcnJu byA9IEVOT0VOVDsKLS0gICAgICByZXR1cm4gLTE7Ci0tICAgIH0KLSsgIGludCBzb2NrID0gZ2Ri X3NvY2tldF9jbG9leGVjIChhaW5mby0+YWlfZmFtaWx5LCBhaW5mby0+YWlfc29ja3R5cGUsCi0r CQkJCSBhaW5mby0+YWlfcHJvdG9jb2wpOwotIAotLSAgc29ja2FkZHIuc2luX2ZhbWlseSA9IFBG X0lORVQ7Ci0tICBzb2NrYWRkci5zaW5fcG9ydCA9IGh0b25zIChwb3J0KTsKLS0gIG1lbWNweSAo JnNvY2thZGRyLnNpbl9hZGRyLnNfYWRkciwgaG9zdGVudC0+aF9hZGRyLAotLQkgIHNpemVvZiAo c3RydWN0IGluX2FkZHIpKTsKLS0KLS0gcmV0cnk6Ci0tCi0tICBpZiAodXNlX3VkcCkKLS0gICAg c2NiLT5mZCA9IGdkYl9zb2NrZXRfY2xvZXhlYyAoUEZfSU5FVCwgU09DS19ER1JBTSwgMCk7Ci0t ICBlbHNlCi0tICAgIHNjYi0+ZmQgPSBnZGJfc29ja2V0X2Nsb2V4ZWMgKFBGX0lORVQsIFNPQ0tf U1RSRUFNLCAwKTsKLS0KLS0gIGlmIChzY2ItPmZkID09IC0xKQotKyAgaWYgKHNvY2sgPCAwKQot ICAgICByZXR1cm4gLTE7Ci0tICAKLSsKLSAgIC8qIFNldCBzb2NrZXQgbm9uYmxvY2tpbmcuICAq LwotLSAgaW9hcmcgPSAxOwotLSAgaW9jdGwgKHNjYi0+ZmQsIEZJT05CSU8sICZpb2FyZyk7Ci0r ICBpbnQgaW9hcmcgPSAxOwotKwotKyAgaW9jdGwgKHNvY2ssIEZJT05CSU8sICZpb2FyZyk7Ci0g Ci0gICAvKiBVc2UgTm9uLWJsb2NraW5nIGNvbm5lY3QuICBjb25uZWN0KCkgd2lsbCByZXR1cm4g MCBpZiBjb25uZWN0ZWQKLSAgICAgIGFscmVhZHkuICAqLwotLSAgbiA9IGNvbm5lY3QgKHNjYi0+ ZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikgJnNvY2thZGRyLCBzaXplb2YgKHNvY2thZGRyKSk7Ci0t Ci0tICBpZiAobiA8IDApCi0rICBpZiAoY29ubmVjdCAoc29jaywgYWluZm8tPmFpX2FkZHIsIGFp bmZvLT5haV9hZGRybGVuKSA8IDApCi0gICAgIHsKLSAjaWZkZWYgVVNFX1dJTjMyQVBJCi0gICAg ICAgaW50IGVyciA9IFdTQUdldExhc3RFcnJvcigpOwotQEAgLTIzNCwyMSArMTg1LDI2IEBAIG5l dF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUpCi0gICAgICAgaW50 IGVyciA9IGVycm5vOwotICNlbmRpZgotIAotLSAgICAgIC8qIE1heWJlIHdlJ3JlIHdhaXRpbmcg Zm9yIHRoZSByZW1vdGUgdGFyZ2V0IHRvIGJlY29tZSByZWFkeSB0bwotLQkgYWNjZXB0IGNvbm5l Y3Rpb25zLiAgKi8KLS0gICAgICBpZiAodGNwX2F1dG9fcmV0cnkKLSsgICAgICAvKiBJZiB3ZSd2 ZSBnb3QgYSAiY29ubmVjdGlvbiByZWZ1c2VkIiBlcnJvciwganVzdCByZXR1cm4KLSsJIC0xLiAg VGhlIGNhbGxlciB3aWxsIGtub3cgd2hhdCB0byBkby4gICovCi0rICAgICAgaWYgKAotICNpZmRl ZiBVU0VfV0lOMzJBUEkKLS0JICAmJiBlcnIgPT0gV1NBRUNPTk5SRUZVU0VECi0rCSAgZXJyID09 IFdTQUVDT05OUkVGVVNFRAotICNlbHNlCi0tCSAgJiYgZXJyID09IEVDT05OUkVGVVNFRAotKwkg IGVyciA9PSBFQ09OTlJFRlVTRUQKLSAjZW5kaWYKLS0JICAmJiB3YWl0X2Zvcl9jb25uZWN0IChO VUxMLCAmcG9sbHMpID49IDApCi0rCSAgKQotIAl7Ci0tCSAgY2xvc2UgKHNjYi0+ZmQpOwotLQkg IGdvdG8gcmV0cnk7Ci0rCSAgY2xvc2UgKHNvY2spOwotKwkgIGVycm5vID0gZXJyOwotKwkgIHJl dHVybiAtMTsKLSAJfQotIAotICAgICAgIGlmICgKLSsJICAvKiBBbnkgb3RoZXIgZXJyb3IgKGV4 Y2VwdCBFSU5QUk9HUkVTUykgd2lsbCBiZSAic3dhbGxvd2VkIgotKwkgICAgIGhlcmUuICBXZSBy ZXR1cm4gd2l0aG91dCBzcGVjaWZ5aW5nIGEgcmV0dXJuIHZhbHVlLCBhbmQKLSsJICAgICBzZXQg ZXJybm8gaWYgdGhlIGNhbGxlciB3YW50cyB0byBpbnNwZWN0IHdoYXQKLSsJICAgICBoYXBwZW5l ZC4gICovCi0gI2lmZGVmIFVTRV9XSU4zMkFQSQotIAkgIC8qIFVuZGVyIFdpbmRvd3MsIGNhbGxp bmcgImNvbm5lY3QiIHdpdGggYSBub24tYmxvY2tpbmcgc29ja2V0Ci0gCSAgICAgcmVzdWx0cyBp biBXU0FFV09VTERCTE9DSywgbm90IFdTQUVJTlBST0dSRVNTLiAgKi8KLUBAIC0yNTgsNjYgKzIx NCwxNjYgQEAgbmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkK LSAjZW5kaWYKLSAJICApCi0gCXsKLSsJICBjbG9zZSAoc29jayk7Ci0gCSAgZXJybm8gPSBlcnI7 Ci0tCSAgbmV0X2Nsb3NlIChzY2IpOwotIAkgIHJldHVybiAtMTsKLSAJfQotIAotICAgICAgIC8q IExvb2tzIGxpa2Ugd2UgbmVlZCB0byB3YWl0IGZvciB0aGUgY29ubmVjdC4gICovCi0tICAgICAg ZG8gCi0tCXsKLS0JICBuID0gd2FpdF9mb3JfY29ubmVjdCAoc2NiLCAmcG9sbHMpOwotLQl9IAot KyAgICAgIGludCBuOwotKwotKyAgICAgIGRvCi0rCW4gPSB3YWl0X2Zvcl9jb25uZWN0IChzb2Nr LCBwb2xscyk7Ci0gICAgICAgd2hpbGUgKG4gPT0gMCk7Ci0rCi0gICAgICAgaWYgKG4gPCAwKQot IAl7Ci0tCSAgbmV0X2Nsb3NlIChzY2IpOwotKwkgIGludCBzYXZlZF9lcnJubyA9IGVycm5vOwot KwotKwkgIC8qIEEgbmVnYXRpdmUgdmFsdWUgaGVyZSBtZWFucyB0aGF0IHdlIGVpdGhlciB0aW1l ZCBvdXQgb3IKLSsJICAgICBnb3QgaW50ZXJydXB0ZWQgYnkgdGhlIHVzZXIuICBKdXN0IHJldHVy bi4gICovCi0rCSAgY2xvc2UgKHNvY2spOwotKwkgIGVycm5vID0gc2F2ZWRfZXJybm87Ci0gCSAg cmV0dXJuIC0xOwotIAl9Ci0gICAgIH0KLSAKLSAgIC8qIEdvdCBzb21ldGhpbmcuICBJcyBpdCBh biBlcnJvcj8gICovCi0tICB7Ci0tICAgIGludCByZXMsIGVycjsKLS0gICAgc29ja2xlbl90IGxl bjsKLS0KLS0gICAgbGVuID0gc2l6ZW9mIChlcnIpOwotLSAgICAvKiBPbiBXaW5kb3dzLCB0aGUg Zm91cnRoIHBhcmFtZXRlciB0byBnZXRzb2Nrb3B0IGlzIGEgImNoYXIgKiI7Ci0tICAgICAgIG9u IFVOSVggc3lzdGVtcyBpdCBpcyBnZW5lcmFsbHkgInZvaWQgKiIuICBUaGUgY2FzdCB0byAiY2hh ciAqIgotLSAgICAgICBpcyBPSyBldmVyeXdoZXJlLCBzaW5jZSBpbiBDKysgYW55IGRhdGEgcG9p bnRlciB0eXBlIGNhbiBiZQotLSAgICAgICBpbXBsaWNpdGx5IGNvbnZlcnRlZCB0byAidm9pZCAq Ii4gICovCi0tICAgIHJlcyA9IGdldHNvY2tvcHQgKHNjYi0+ZmQsIFNPTF9TT0NLRVQsIFNPX0VS Uk9SLCAoY2hhciAqKSAmZXJyLCAmbGVuKTsKLS0gICAgaWYgKHJlcyA8IDAgfHwgZXJyKQotLSAg ICAgIHsKLS0JLyogTWF5YmUgdGhlIHRhcmdldCBzdGlsbCBpc24ndCByZWFkeSB0byBhY2NlcHQg dGhlIGNvbm5lY3Rpb24uICAqLwotLQlpZiAodGNwX2F1dG9fcmV0cnkKLSsgIGludCBlcnI7Ci0r ICBzb2NrbGVuX3QgbGVuID0gc2l6ZW9mIChlcnIpOwotKwotKyAgLyogT24gV2luZG93cywgdGhl IGZvdXJ0aCBwYXJhbWV0ZXIgdG8gZ2V0c29ja29wdCBpcyBhICJjaGFyICoiOwotKyAgICAgb24g VU5JWCBzeXN0ZW1zIGl0IGlzIGdlbmVyYWxseSAidm9pZCAqIi4gIFRoZSBjYXN0IHRvICJjaGFy ICoiCi0rICAgICBpcyBPSyBldmVyeXdoZXJlLCBzaW5jZSBpbiBDKysgYW55IGRhdGEgcG9pbnRl ciB0eXBlIGNhbiBiZQotKyAgICAgaW1wbGljaXRseSBjb252ZXJ0ZWQgdG8gInZvaWQgKiIuICAq LwotKyAgaW50IHJldCA9IGdldHNvY2tvcHQgKHNvY2ssIFNPTF9TT0NLRVQsIFNPX0VSUk9SLCAo Y2hhciAqKSAmZXJyLCAmbGVuKTsKLSsKLSsgIGlmIChyZXQgPCAwKQotKyAgICB7Ci0rICAgICAg aW50IHNhdmVkX2Vycm5vID0gZXJybm87Ci0rCi0rICAgICAgY2xvc2UgKHNvY2spOwotKyAgICAg IGVycm5vID0gc2F2ZWRfZXJybm87Ci0rICAgICAgcmV0dXJuIC0xOwotKyAgICB9Ci0rICBlbHNl IGlmIChyZXQgPT0gMCAmJiBlcnIgIT0gMCkKLSsgICAgewotKyAgICAgIGNsb3NlIChzb2NrKTsK LSsgICAgICBlcnJubyA9IGVycjsKLSsgICAgICByZXR1cm4gLTE7Ci0rICAgIH0KLSsKLSsgIC8q IFRoZSBjb25uZWN0aW9uIHN1Y2NlZWRlZC4gIFJldHVybiB0aGUgc29ja2V0LiAgKi8KLSsgIHJl dHVybiBzb2NrOwotK30KLSsKLSsvKiBPcGVuIGEgdGNwIHNvY2tldC4gICovCi0rCi0raW50Ci0r bmV0X29wZW4gKHN0cnVjdCBzZXJpYWwgKnNjYiwgY29uc3QgY2hhciAqbmFtZSkKLSt7Ci0rICBz dHJ1Y3QgYWRkcmluZm8gaGludDsKLSsgIHN0cnVjdCBhZGRyaW5mbyAqYWluZm87Ci0rCi0rICBt ZW1zZXQgKCZoaW50LCAwLCBzaXplb2YgKGhpbnQpKTsKLSsgIC8qIEFzc3VtZSBubyBwcmVmaXgg d2lsbCBiZSBwYXNzZWQsIHRoZXJlZm9yZSB3ZSBzaG91bGQgdXNlCi0rICAgICBBRl9VTlNQRUMu ICAqLwotKyAgaGludC5haV9mYW1pbHkgPSBBRl9VTlNQRUM7Ci0rICBoaW50LmFpX3NvY2t0eXBl ID0gU09DS19TVFJFQU07Ci0rICBoaW50LmFpX3Byb3RvY29sID0gSVBQUk9UT19UQ1A7Ci0rCi0r ICBwYXJzZWRfY29ubmVjdGlvbl9zcGVjIHBhcnNlZCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAo bmFtZSwgJmhpbnQpOwotKwotKyAgaWYgKHBhcnNlZC5wb3J0X3N0ci5lbXB0eSAoKSkKLSsgICAg ZXJyb3IgKF8oIk1pc3NpbmcgcG9ydCBvbiBob3N0bmFtZSAnJXMnIiksIG5hbWUpOwotKwotKyAg aW50IHIgPSBnZXRhZGRyaW5mbyAocGFyc2VkLmhvc3Rfc3RyLmNfc3RyICgpLAotKwkJICAgICAg IHBhcnNlZC5wb3J0X3N0ci5jX3N0ciAoKSwKLSsJCSAgICAgICAmaGludCwgJmFpbmZvKTsKLSsK LSsgIGlmIChyICE9IDApCi0rICAgIHsKLSsgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9z dGRlcnIsIF8oIiVzOiBjYW5ub3QgcmVzb2x2ZSBuYW1lOiAlc1xuIiksCi0rCQkJICBuYW1lLCBn YWlfc3RyZXJyb3IgKHIpKTsKLSsgICAgICBlcnJubyA9IEVOT0VOVDsKLSsgICAgICByZXR1cm4g LTE7Ci0rICAgIH0KLSsKLSsgIHNjb3BlZF9mcmVlX2FkZHJpbmZvIGZyZWVfYWluZm8gKGFpbmZv KTsKLSsKLSsgIC8qIEZsYWcgdG8gaW5kaWNhdGUgd2hldGhlciB3ZSd2ZSBnb3QgYSBjb25uZWN0 aW9uIHJlZnVzZWQuICBJdCB3aWxsCi0rICAgICBiZSB0cnVlIGlmIGFueSBvZiB0aGUgY29ubmVj dGlvbnMgdHJpZWQgd2FzIHJlZnVzZWQuICAqLwotKyAgYm9vbCBnb3RfY29ubnJlZnVzZWQ7Ci0r ICAvKiBJZiBhIGNvbm5lY3Rpb24gc3VjY2VlZWRzLCBTVUNDRVNTX0FJTkZPIHdpbGwgcG9pbnQg dG8gdGhlCi0rICAgICAnc3RydWN0IGFkZHJpbmZvJyB0aGF0IHN1Y2NlZWQuICAqLwotKyAgc3Ry dWN0IGFkZHJpbmZvICpzdWNjZXNzX2FpbmZvID0gTlVMTDsKLSsgIHVuc2lnbmVkIGludCBwb2xs cyA9IDA7Ci0rCi0rICAvKiBBc3N1bWUgdGhlIHdvcnN0LiAgKi8KLSsgIHNjYi0+ZmQgPSAtMTsK LSsKLSsgIGRvCi0rICAgIHsKLSsgICAgICBnb3RfY29ubnJlZnVzZWQgPSBmYWxzZTsKLSsKLSsg ICAgICBmb3IgKHN0cnVjdCBhZGRyaW5mbyAqaXRlciA9IGFpbmZvOyBpdGVyICE9IE5VTEw7IGl0 ZXIgPSBpdGVyLT5haV9uZXh0KQotKwl7Ci0rCSAgLyogSXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9m IHBvc3NpYmxlIGFkZHJlc3NlcyB0byBjb25uZWN0Ci0rCSAgICAgdG8uICBGb3IgZWFjaCwgd2Un bGwgdHJ5IHRvIGNvbm5lY3QgYW5kIHNlZSBpZiBpdAotKwkgICAgIHN1Y2NlZWRzLiAgKi8KLSsJ ICBpbnQgc29jayA9IHRyeV9jb25uZWN0IChpdGVyLCAmcG9sbHMpOwotKwotKwkgIGlmIChzb2Nr ID49IDApCi0rCSAgICB7Ci0rCSAgICAgIC8qIFdlJ3ZlIGdvdHRlbiBhIHN1Y2Nlc3NmdWwgY29u bmVjdGlvbi4gIFNhdmUgaXRzCi0rCQkgJ3N0cnVjdCBhZGRyaW5mbycsIHRoZSBzb2NrZXQsIGFu ZCBicmVhay4gICovCi0rCSAgICAgIHN1Y2Nlc3NfYWluZm8gPSBpdGVyOwotKwkgICAgICBzY2It PmZkID0gc29jazsKLSsJICAgICAgYnJlYWs7Ci0rCSAgICB9Ci0rCSAgZWxzZSBpZiAoCi0gI2lm ZGVmIFVTRV9XSU4zMkFQSQotLQkgICAgJiYgZXJyID09IFdTQUVDT05OUkVGVVNFRAotKwkgIGVy cm5vID09IFdTQUVDT05OUkVGVVNFRAotICNlbHNlCi0tCSAgICAmJiBlcnIgPT0gRUNPTk5SRUZV U0VECi0rCSAgZXJybm8gPT0gRUNPTk5SRUZVU0VECi0gI2VuZGlmCi0tCSAgICAmJiB3YWl0X2Zv cl9jb25uZWN0IChOVUxMLCAmcG9sbHMpID49IDApCi0tCSAgewotLQkgICAgY2xvc2UgKHNjYi0+ ZmQpOwotLQkgICAgZ290byByZXRyeTsKLS0JICB9Ci0tCWlmIChlcnIpCi0tCSAgZXJybm8gPSBl cnI7Ci0tCW5ldF9jbG9zZSAoc2NiKTsKLS0JcmV0dXJuIC0xOwotLSAgICAgIH0KLS0gIH0gCi0r CQkgICApCi0rCSAgICBnb3RfY29ubnJlZnVzZWQgPSB0cnVlOwotKwl9Ci0rICAgIH0KLSsgIC8q IEp1c3QgcmV0cnkgaWY6Ci0rCi0rICAgICAtIHRjcF9hdXRvX3JldHJ5IGlzIHRydWUsIGFuZAot KyAgICAgLSBXZSBoYXZlbid0IGdvdHRlbiBhIGNvbm5lY3Rpb24geWV0LCBhbmQKLSsgICAgIC0g QW55IG9mIG91ciBjb25uZWN0aW9uIGF0dGVtcHRzIHJldHVybmVkIHdpdGggRUNPTk5SRUZVU0VE LCBhbmQKLSsgICAgIC0gd2FpdF9mb3JfY29ubmVjdCBzaWduYWxzIHRoYXQgd2UgY2FuIGtlZXAg Z29pbmcuICAqLwotKyAgd2hpbGUgKHRjcF9hdXRvX3JldHJ5Ci0rCSAmJiBzdWNjZXNzX2FpbmZv ID09IE5VTEwKLSsJICYmIGdvdF9jb25ucmVmdXNlZAotKwkgJiYgd2FpdF9mb3JfY29ubmVjdCAo LTEsICZwb2xscykgPj0gMCk7Ci0rCi0rICBpZiAoc3VjY2Vzc19haW5mbyA9PSBOVUxMKQotKyAg ICB7Ci0rICAgICAgbmV0X2Nsb3NlIChzY2IpOwotKyAgICAgIHJldHVybiAtMTsKLSsgICAgfQot IAotICAgLyogVHVybiBvZmYgbm9uYmxvY2tpbmcuICAqLwotLSAgaW9hcmcgPSAwOwotKyNpZmRl ZiBVU0VfV0lOMzJBUEkKLSsgIHVfbG9uZyBpb2FyZyA9IDA7Ci0rI2Vsc2UKLSsgIGludCBpb2Fy ZyA9IDA7Ci0rI2VuZGlmCi0rCi0gICBpb2N0bCAoc2NiLT5mZCwgRklPTkJJTywgJmlvYXJnKTsK LSAKLS0gIGlmICh1c2VfdWRwID09IDApCi0rICBpZiAoc3VjY2Vzc19haW5mby0+YWlfc29ja3R5 cGUgPT0gSVBQUk9UT19UQ1ApCi0gICAgIHsKLSAgICAgICAvKiBEaXNhYmxlIE5hZ2xlIGFsZ29y aXRobS4gIE5lZWRlZCBpbiBzb21lIGNhc2VzLiAgKi8KLS0gICAgICB0bXAgPSAxOwotKyAgICAg IGludCB0bXAgPSAxOwotKwotICAgICAgIHNldHNvY2tvcHQgKHNjYi0+ZmQsIElQUFJPVE9fVENQ LCBUQ1BfTk9ERUxBWSwKLS0JCSAgKGNoYXIgKikmdG1wLCBzaXplb2YgKHRtcCkpOwotKwkJICAo Y2hhciAqKSAmdG1wLCBzaXplb2YgKHRtcCkpOwotICAgICB9Ci0gCi0gI2lmZGVmIFNJR1BJUEUK LWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZyBiL2dkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nCi0tLS0gYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKLUBAIC0xLDMgKzEsMjMgQEAKLSsyMDE4LTA3LTExICBTZXJnaW8gRHVyaWdh biBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgotKwkgICAgSmFuIEtyYXRvY2h2aWwgIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwkgICAgUGF1bCBGZXJ0c2VyICA8ZmVyY2VycGF2 QGdtYWlsLmNvbT4KLSsJICAgIFRzdXRvbXUgU2VraSAgPHNla2lyaWtpQGdtYWlsLmNvbT4KLSsK LSsJKiBSRUFETUUgKFRlc3RzdWl0ZSBQYXJhbWV0ZXJzKTogTWVudGlvbiBuZXcgJ0dEQl9URVNU X1NPQ0tFVEhPU1QnCi0rCXBhcmFtZXRlci4KLSsJKiBib2FyZHMvbmF0aXZlLWV4dGVuZGVkLWdk YnNlcnZlci5leHA6IERvIG5vdCBzZXQgJ3NvY2tldGhvc3QnCi0rCWJ5IGRlZmF1bHQuCi0rCSog Ym9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwOiBMaWtld2lzZS4KLSsJKiBnZGIuc2VydmVyL3J1 bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHA6IEltcHJvdmUgcmVnZXhwIHVzZWQKLSsJZm9yIGRl dGVjdGluZyB3aGVuIGEgcmVtb3RlIGRlYnVnZ2luZyBjb25uZWN0aW9uIHN1Y2NlZWRzLgotKwkq IGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiBOZXcgZmlsZS4KLSsJKiBsaWIvZ2Ric2Vy dmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9wb3J0KToKLSsJRG8g bm90IHByZWZpeCB0aGUgcG9ydCBudW1iZXIgd2l0aCAiOiIuCi0rCShnZGJzZXJ2ZXJfc3RhcnQp OiBOZXcgZ2xvYmFsIEdEQl9URVNUX1NPQ0tFVEhPU1QuICBJbXBsZW1lbnQKLSsJc3VwcG9ydCBm b3IgZGV0ZWN0aW5nIGFuZCB1c2luZyBpdC4gIEFkZCAnJGRlYnVnaG9zdF9nZGJzZXJ2ZXInCi0r CXRvIHRoZSBsaXN0IG9mIGFyZ3VtZW50cyB1c2VkIHRvIHN0YXJ0IGdkYnNlcnZlci4gIEhhbmRs ZSBjYXNlCi0rCXdoZW4gZ2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIGEgbmV0d29yayBuYW1lLgot KwotIDIwMTgtMDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5j b20+Ci0gCi0gCVBSIGMrKy8yMzM3MwotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvUkVBRE1F IGIvZ2RiL3Rlc3RzdWl0ZS9SRUFETUUKLS0tLSBhL2dkYi90ZXN0c3VpdGUvUkVBRE1FCi0rKysg Yi9nZGIvdGVzdHN1aXRlL1JFQURNRQotQEAgLTI1OSw2ICsyNTksMjAgQEAgVGhpcyBtYWtlIChu b3QgcnVudGVzdCkgdmFyaWFibGUgaXMgdXNlZCB0byBzcGVjaWZ5IHdoZXRoZXIgdGhlCi0gdGVz dHN1aXRlIHByZWxvYWRzIHRoZSByZWFkMS5zbyBsaWJyYXJ5IGludG8gZXhwZWN0LiAgQW55IG5v bi1lbXB0eQotIHZhbHVlIG1lYW5zIHRydWUuICBTZWUgIlJhY2UgZGV0ZWN0aW9uIiBiZWxvdy4K LSAKLStHREJfVEVTVF9TT0NLRVRIT1NUCi0rCi0rVGhpcyB2YXJpYWJsZSBjYW4gcHJvdmlkZSB0 aGUgaG9zdG5hbWUvYWRkcmVzcyB0aGF0IHNob3VsZCBiZSB1c2VkCi0rd2hlbiBwZXJmb3JtaW5n IEdEQnNlcnZlci1yZWxhdGVkIHRlc3RzLiAgVGhpcyBpcyB1c2VmdWwgaW4gc29tZQotK3NpdHVh dGlvbnMsIGUuZy4sIHdoZW4geW91IHdhbnQgdG8gdGVzdCB0aGUgSVB2NiBjb25uZWN0aXZpdHkg b2YgR0RCCi0rYW5kIEdEQnNlcnZlciwgb3Igd2hlbiB1c2luZyBhIGRpZmZlcmVudCBob3N0bmFt ZS9hZGRyZXNzIGlzIG5lZWRlZC4KLStGb3IgZXhhbXBsZSwgdG8gbWFrZSBHREIgYW5kIEdEQnNl cnZlciB1c2UgSVB2Ni1vbmx5IGNvbm5lY3Rpb25zLCB5b3UKLStjYW4gZG86Ci0rCi0rCW1ha2Ug Y2hlY2sgVEVTVFM9ImdkYi5zZXJ2ZXIvKi5leHAiIFJVTlRFU1RGTEFHUz0nR0RCX1RFU1RfU09D S0VUSE9TVD10Y3A2Ols6OjFdJwotKwotK05vdGUgdGhhdCBvbmx5IGEgaG9zdG5hbWUvYWRkcmVz cyBjYW4gYmUgcHJvdmlkZWQsIHdpdGhvdXQgYSBwb3J0Ci0rbnVtYmVyLgotKwotIFJhY2UgZGV0 ZWN0aW9uCi0gKioqKioqKioqKioqKioKLSAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2Jv YXJkcy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cCBiL2dkYi90ZXN0c3VpdGUvYm9hcmRz L25hdGl2ZS1leHRlbmRlZC1nZGJzZXJ2ZXIuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2JvYXJk cy9uYXRpdmUtZXh0ZW5kZWQtZ2Ric2VydmVyLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9ib2Fy ZHMvbmF0aXZlLWV4dGVuZGVkLWdkYnNlcnZlci5leHAKLUBAIC0yNCw4ICsyNCw2IEBAIGxvYWRf Z2VuZXJpY19jb25maWcgImV4dGVuZGVkLWdkYnNlcnZlciIKLSBsb2FkX2JvYXJkX2Rlc2NyaXB0 aW9uICJnZGJzZXJ2ZXItYmFzZSIKLSBsb2FkX2JvYXJkX2Rlc2NyaXB0aW9uICJsb2NhbC1ib2Fy ZCIKLSAKLS1zZXRfYm9hcmRfaW5mbyBzb2NrZXRob3N0ICJsb2NhbGhvc3Q6IgotLQotICMgV2Ug d2lsbCBiZSB1c2luZyB0aGUgZXh0ZW5kZWQgR0RCIHJlbW90ZSBwcm90b2NvbC4KLSBzZXRfYm9h cmRfaW5mbyBnZGJfcHJvdG9jb2wgImV4dGVuZGVkLXJlbW90ZSIKLSAKLWRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2JvYXJkcy9uYXRpdmUtZ2Ric2VydmVyLmV4cCBiL2dkYi90ZXN0c3VpdGUv Ym9hcmRzL25hdGl2ZS1nZGJzZXJ2ZXIuZXhwCi0tLS0gYS9nZGIvdGVzdHN1aXRlL2JvYXJkcy9u YXRpdmUtZ2Ric2VydmVyLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9ib2FyZHMvbmF0aXZlLWdk YnNlcnZlci5leHAKLUBAIC0zMCw3ICszMCw2IEBAIHNldF9ib2FyZF9pbmZvIGdkYixkb19yZWxv YWRfb25fcnVuIDEKLSAjIFRoZXJlJ3Mgbm8gc3VwcG9ydCBmb3IgYXJndW1lbnQtcGFzc2luZyAo eWV0KS4KLSBzZXRfYm9hcmRfaW5mbyBub2FyZ3MgMQotIAotLXNldF9ib2FyZF9pbmZvIHNvY2tl dGhvc3QgImxvY2FsaG9zdDoiCi0gc2V0X2JvYXJkX2luZm8gdXNlX2dkYl9zdHViIDEKLSBzZXRf Ym9hcmRfaW5mbyBleGl0X2lzX3JlbGlhYmxlIDEKLSAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnNlcnZlci9ydW4td2l0aG91dC1sb2NhbC1iaW5hcnkuZXhwCi0tLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5zZXJ2ZXIvcnVuLXdpdGhvdXQtbG9jYWwtYmluYXJ5LmV4cAotKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuc2VydmVyL3J1bi13aXRob3V0LWxvY2FsLWJpbmFyeS5leHAKLUBAIC01 Myw3ICs1Myw3IEBAIHNhdmVfdmFycyB7IEdEQkZMQUdTIH0gewotICAgICBzZXQgdXNlX2dkYl9z dHViIDAKLSAKLSAgICAgZ2RiX3Rlc3QgInRhcmdldCAke2dkYnNlcnZlcl9wcm90b2NvbH0gJHtn ZGJzZXJ2ZXJfZ2RicG9ydH0iIFwKLS0JIlJlbW90ZSBkZWJ1Z2dpbmcgdXNpbmcgJGdkYnNlcnZl cl9nZGJwb3J0IiBcCi0rCSJSZW1vdGUgZGVidWdnaW5nIHVzaW5nIFtzdHJpbmdfdG9fcmVnZXhw ICRnZGJzZXJ2ZXJfZ2RicG9ydF0iIFwKLSAJImNvbm5lY3QgdG8gZ2Ric2VydmVyIgotIAotICAg ICBnZGJfdGVzdCAicnVuIiBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuc2VydmVy L3NlcnZlci1jb25uZWN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnNlcnZlci9zZXJ2ZXItY29u bmVjdC5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwCi1AQCAtMCwwICsxLDExMSBA QAotKyMgVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KLSsj Ci0rIyBDb3B5cmlnaHQgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0r IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwot KyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgVGVzdCBtdWx0aXBsZSB0eXBlcyBv ZiBjb25uZWN0aW9uIChJUHY0LCBJUHY2LCBUQ1AsIFVEUCkgYW5kIG1ha2UKLSsjIHN1cmUgYm90 aCBnZGJzZXJ2ZXIgYW5kIEdEQiB3b3JrLgotKwotK2xvYWRfbGliIGdkYnNlcnZlci1zdXBwb3J0 LmV4cAotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIG5vcm1hbC5jCi0rCi0raWYge1tza2lwX2dkYnNl cnZlcl90ZXN0c119IHsKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0rIyBXZSB3YW50IHRvIGhhdmUg Y29udHJvbCBvdmVyIHdoZXJlIHdlIHN0YXJ0IGdkYnNlcnZlci4KLStpZiB7IFtpc19yZW1vdGUg dGFyZ2V0XSB9IHsKLSsgICAgcmV0dXJuIDAKLSt9Ci0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVz dGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR0ZXN0ZmlsZSAkc3JjZmlsZSBkZWJ1Z10gfSB7Ci0r ICAgIHJldHVybiAtMQotK30KLSsKLSsjIE1ha2Ugc3VyZSB3ZSdyZSBkaXNjb25uZWN0ZWQsIGlu IGNhc2Ugd2UncmUgdGVzdGluZyB3aXRoIGFuCi0rIyBleHRlbmRlZC1yZW1vdGUgYm9hcmQsIHRo ZXJlZm9yZSBhbHJlYWR5IGNvbm5lY3RlZC4KLStnZGJfdGVzdCAiZGlzY29ubmVjdCIgIi4qIgot KwotK3NldCB0YXJnZXRfZXhlYyBbZ2Ric2VydmVyX2Rvd25sb2FkX2N1cnJlbnRfcHJvZ10KLSsK LSsjIEFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIHRlc3QgaW5zdHJ1Y3Rpb25zIGZvciBlYWNoIHNj ZW5hcmlvLiAgVGhlCi0rIyBkZXNjcmlwdGlvbiBvZiBlYWNoIGZpZWxkIGlzIGFzIGZvbGxvd3M6 Ci0rIwotKyMgLSBUaGUgY29ubmVjdGlvbiBzcGVjaWZpY2F0aW9uIHRvIGJlIHVzZWQgd2hlbiBz dGFydGluZwotKyMgICBnZGJzZXJ2ZXIvR0RCLiAgVGhpcyBzdHJpbmcgd2lsbCBiZSB1c2VkIHRv IHNldCB0aGUKLSsjICAgR0RCX1RFU1RfU09DS0VUSE9TVCB3aGVuIGNhbGxpbmcgZ2Ric2VydmVy X3N0YXJ0LgotKyMKLSsjIC0gQSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBnZGJzZXJ2ZXIgc2hv dWxkIGZhaWwgd2hlbiB3ZSBhdHRlbXB0IHRvCi0rIyAgIHN0YXJ0IGl0LiAgVXNlZnVsIHdoZW4g dGVzdGluZyBlcnJvbmVvdXMgY29ubmVjdGlvbiBzcGVjcyBzdWNoIGFzCi0rIyAgICJ0Y3A4OiIu Ci0rIwotKyMgLSBUaGUgcHJlZml4IHRoYXQgc2hvdWxkIGJlIHByZXBlbmRlZCB0byB0aGUgdGVz dCBtZXNzYWdlcy4KLStzZXQgdGVzdF9wYXJhbXMgXAotKyAgICB7IFwKLSsJICB7ICJ0Y3A0OjEy Ny4wLjAuMSIgMCAidGNwNCIgfSBcCi0rCSAgeyAidGNwNjo6OjEiICAgICAgIDAgInRjcDYiIH0g XAotKwkgIHsgInRjcDY6Wzo6MV0iICAgICAwICJ0Y3A2LXdpdGgtYnJhY2tldHMiIH0gXAotKwkg IHsgInRjcDpsb2NhbGhvc3QiICAwICJ0Y3AiIH0gXAotKwkgIHsgInVkcDQ6MTI3LjAuMC4xIiAw ICJ1ZHA0IiB9IFwKLSsJICB7ICJ1ZHA2Ojo6MSIgICAgICAgMCAidWRwNiIgfSBcCi0rCSAgeyAi dWRwNjpbOjoxXSIgICAgIDAgInVkcDYtd2l0aC1icmFja2V0cyIgfSBcCi0rCSAgeyAidGNwODox MjMiICAgICAgIDEgInRjcDgiIH0gXAotKwkgIHsgInVkcDEyMzo6OiIgICAgICAxICJ1ZHAxMjMi IH0gXAotKwkgIHsgImdhcmJhZ2U6MTIzNCIgICAxICJnYXJiYWdlOjEyMzQiIH0gXAotKyAgICB9 Ci0rCi0rIyBUaGUgYmVzdCB3YXkgdG8gdGVzdCBkaWZmZXJlbnQgdHlwZXMgb2YgY29ubmVjdGlv bnMgaXMgdG8gc2V0IHRoZQotKyMgR0RCX1RFU1RfU09DS0VUSE9TVCB2YXJpYWJsZSBhY2NvcmRp bmdseS4KLStzYXZlX3ZhcnMgeyBHREJfVEVTVF9TT0NLRVRIT1NUIH0gewotKyAgICBmb3JlYWNo IGxpbmUgJHRlc3RfcGFyYW1zIHsKLSsJc2V0IHNvY2tob3N0IFtsaW5kZXggJGxpbmUgMF0KLSsJ c2V0IGdkYnNlcnZlcl9zaG91bGRfZmFpbCBbbGluZGV4ICRsaW5lIDFdCi0rCXNldCBwcmVmaXgg W2xpbmRleCAkbGluZSAyXQotKwotKwl3aXRoX3Rlc3RfcHJlZml4ICRwcmVmaXggewotKwkgICAg c2V0IEdEQl9URVNUX1NPQ0tFVEhPU1QgJHNvY2tob3N0Ci0rCSAgICBzZXQgdGVzdCAic3RhcnQg Z2Ric2VydmVyIgotKwotKwkgICAgIyBUcnkgdG8gc3RhcnQgZ2Ric2VydmVyLgotKwkgICAgc2V0 IGNhdGNocmVzIFtjYXRjaCB7c2V0IHJlcyBbZ2Ric2VydmVyX3N0YXJ0ICIiICR0YXJnZXRfZXhl Y119IGVycm1zZ10KLSsKLSsJICAgIGlmIHsgJGNhdGNocmVzICE9IDAgfSB7Ci0rCQlpZiB7ICRn ZGJzZXJ2ZXJfc2hvdWxkX2ZhaWwgfSB7Ci0rCQkgICAgcGFzcyAiJHRlc3Q6IGdkYnNlcnZlciBm YWlsZWQgYXMgZXhwZWN0ZWQiCi0rCQl9IGVsc2UgewotKwkJICAgIGZhaWwgIiR0ZXN0OiAkZXJy bXNnIgotKwkJfQotKwkJY29udGludWUKLSsJICAgIH0gZWxzZSB7Ci0rCQlpZiB7ICRnZGJzZXJ2 ZXJfc2hvdWxkX2ZhaWwgfSB7Ci0rCQkgICAgZmFpbCAiJHRlc3Q6IGdkYnNlcnZlciBzaG91bGQg ZmFpbCBidXQgZGlkIG5vdCIKLSsJCX0gZWxzZSB7Ci0rCQkgICAgcGFzcyAiJHRlc3QiCi0rCQl9 Ci0rCSAgICB9Ci0rCi0rCSAgICBzZXQgZ2Ric2VydmVyX3Byb3RvY29sIFtsaW5kZXggJHJlcyAw XQotKwkgICAgc2V0IGdkYnNlcnZlcl9nZGJwb3J0IFtsaW5kZXggJHJlcyAxXQotKwkgICAgc2V0 IHRlc3QgImNvbm5lY3QgdG8gZ2Ric2VydmVyIHVzaW5nICRzb2NraG9zdCIKLSsKLSsJICAgIGlm IHsgW2dkYl90YXJnZXRfY21kICRnZGJzZXJ2ZXJfcHJvdG9jb2wgJGdkYnNlcnZlcl9nZGJwb3J0 XSA9PSAwIH0gewotKwkJcGFzcyAkdGVzdAotKwkgICAgfSBlbHNlIHsKLSsJCWZhaWwgJHRlc3QK LSsJICAgIH0KLSsJfQotKyAgICB9Ci0rfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGli L2dkYnNlcnZlci1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBw b3J0LmV4cAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCi0r KysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKLUBAIC0yMTEsNyAr MjExLDcgQEAgcHJvYyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfcmVtb3RlX2FkZHJlc3MgeyBob3N0 IHBvcnQgfSB7Ci0gIyBEZWZhdWx0IHJvdXRpbmUgdG8gY29tcHV0ZSB0aGUgImNvbW0iIGFyZ3Vt ZW50IGZvciBnZGJzZXJ2ZXIuCi0gCi0gcHJvYyBnZGJzZXJ2ZXJfZGVmYXVsdF9nZXRfY29tbV9w b3J0IHsgcG9ydCB9IHsKLS0gICAgcmV0dXJuICI6JHBvcnQiCi0rICAgIHJldHVybiAiJHBvcnQi Ci0gfQotIAotICMgU3RhcnQgYSBnZGJzZXJ2ZXIgcHJvY2VzcyB3aXRoIGluaXRpYWwgT1BUSU9O UyBhbmQgdHJhaWxpbmcgQVJHVU1FTlRTLgotQEAgLTIyMSw2ICsyMjEsNyBAQCBwcm9jIGdkYnNl cnZlcl9kZWZhdWx0X2dldF9jb21tX3BvcnQgeyBwb3J0IH0gewotIAotIHByb2MgZ2Ric2VydmVy X3N0YXJ0IHsgb3B0aW9ucyBhcmd1bWVudHMgfSB7Ci0gICAgIGdsb2JhbCBwb3J0bnVtCi0rICAg IGdsb2JhbCBHREJfVEVTVF9TT0NLRVRIT1NUCi0gCi0gICAgICMgUG9ydCBpZCAtLSBlaXRoZXIg c3BlY2lmaWVkIGluIGJhc2Vib2FyZCBmaWxlLCBvciBtYW5hZ2VkIGhlcmUuCi0gICAgIGlmIFt0 YXJnZXRfaW5mbyBleGlzdHMgZ2RiLHNvY2tldHBvcnRdIHsKLUBAIC0yMzEsMTAgKzIzMiwyMiBA QCBwcm9jIGdkYnNlcnZlcl9zdGFydCB7IG9wdGlvbnMgYXJndW1lbnRzIH0gewotICAgICB9Ci0g Ci0gICAgICMgRXh0cmFjdCB0aGUgbG9jYWwgYW5kIHJlbW90ZSBob3N0IGlkcyBmcm9tIHRoZSB0 YXJnZXQgYm9hcmQgc3RydWN0LgotLSAgICBpZiBbdGFyZ2V0X2luZm8gZXhpc3RzIHNvY2tldGhv c3RdIHsKLSsgICAgaWYgeyBbaW5mbyBleGlzdHMgR0RCX1RFU1RfU09DS0VUSE9TVF0gfSB7Ci0r CSMgVGhlIHVzZXIgaXMgbm90IHN1cHBvc2VkIHRvIHByb3ZpZGUgYSBwb3J0IG51bWJlciwganVz dCBhCi0rCSMgaG9zdG5hbWUvYWRkcmVzcywgdGhlcmVmb3JlIHdlIGFkZCB0aGUgdHJhaWxpbmcg IjoiIGhlcmUuCi0rCXNldCBkZWJ1Z2hvc3QgIiR7R0RCX1RFU1RfU09DS0VUSE9TVH06IgotKwkj IEVzY2FwZSBvcGVuIGFuZCBjbG9zZSBzcXVhcmUgYnJhY2tldHMuCi0rCXNldCBkZWJ1Z2hvc3Rf dG1wIFtzdHJpbmcgbWFwIHsgWyBcXFsgXSBcXF0gfSAkZGVidWdob3N0XQotKwkjIFdlIG5lZWQg YSAiZ2Ric2VydmVyIiB2ZXJzaW9uIG9mIHRoZSBkZWJ1Z2hvc3QsIHdoaWNoIHdpbGwKLSsJIyBo YXZlIHRoZSBwb3NzaWJsZSBjb25uZWN0aW9uIHByZWZpeCBzdHJpcHBlZC4gIFRoaXMgaXMKLSsJ IyBiZWNhdXNlIGdkYnNlcnZlciBjdXJyZW50bHkgZG9lc24ndCByZWNvZ25pemUgdGhlIHByZWZp eGVzLgotKwlyZWdzdWIgLWFsbCAiXlwodGNwOnx1ZHA6fHRjcDQ6fHVkcDQ6fHRjcDY6fHVkcDY6 XCkiICRkZWJ1Z2hvc3RfdG1wICIiIGRlYnVnaG9zdF9nZGJzZXJ2ZXIKLSsgICAgfSBlbHNlaWYg W3RhcmdldF9pbmZvIGV4aXN0cyBzb2NrZXRob3N0XSB7Ci0gCXNldCBkZWJ1Z2hvc3QgW3Rhcmdl dF9pbmZvIHNvY2tldGhvc3RdCi0rCXNldCBkZWJ1Z2hvc3RfZ2Ric2VydmVyICRkZWJ1Z2hvc3QK LSAgICAgfSBlbHNlIHsKLSAJc2V0IGRlYnVnaG9zdCAibG9jYWxob3N0OiIKLSsJc2V0IGRlYnVn aG9zdF9nZGJzZXJ2ZXIgJGRlYnVnaG9zdAotICAgICB9Ci0gCi0gICAgICMgU29tZSBib2FyZHMg dXNlIGEgZGlmZmVyZW50IHZhbHVlIGZvciB0aGUgcG9ydCB0aGF0IGlzIHBhc3NlZCB0bwotQEAg LTI3Nyw4ICsyOTAsMTQgQEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50 cyB9IHsKLSAJaWYgeyAkb3B0aW9ucyAhPSAiIiB9IHsKLSAJICAgIGFwcGVuZCBnZGJzZXJ2ZXJf Y29tbWFuZCAiICRvcHRpb25zIgotIAl9Ci0rCWlmIHsgJGRlYnVnaG9zdF9nZGJzZXJ2ZXIgIT0g IiIgfSB7Ci0rCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIiAkZGVidWdob3N0X2dkYnNl cnZlciIKLSsJfQotIAlpZiB7ICRwb3J0bnVtICE9ICIiIH0gewotLQkgICAgYXBwZW5kIGdkYnNl cnZlcl9jb21tYW5kICIgWyRnZXRfY29tbV9wb3J0ICRwb3J0bnVtXSIKLSsJICAgIGlmIHsgJGRl YnVnaG9zdF9nZGJzZXJ2ZXIgPT0gIiIgfSB7Ci0rCQlhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQg IiAiCi0rCSAgICB9Ci0rCSAgICBhcHBlbmQgZ2Ric2VydmVyX2NvbW1hbmQgIlskZ2V0X2NvbW1f cG9ydCAkcG9ydG51bV0iCi0gCX0KLSAJaWYgeyAkYXJndW1lbnRzICE9ICIiIH0gewotIAkgICAg YXBwZW5kIGdkYnNlcnZlcl9jb21tYW5kICIgJGFyZ3VtZW50cyIKLUBAIC0zMDcsNiArMzI2LDkg QEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9IHsKLSAJCSAgICBj b250aW51ZQotIAkJfQotIAkgICAgfQotKwkgICAgLXJlICIuKjogY2Fubm90IHJlc29sdmUgbmFt ZTogTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93blxyXG4iIHsKLSsJCWVycm9yICJnZGJzZXJ2ZXIg Y2Fubm90IHJlc29sdmUgbmFtZS4iCi0rCSAgICB9Ci0gCSAgICB0aW1lb3V0IHsKLSAJCWVycm9y ICJUaW1lb3V0IHdhaXRpbmcgZm9yIGdkYnNlcnZlciByZXNwb25zZS4iCi0gCSAgICB9Ci1kaWZm IC0tZ2l0IGEvZ2RiL3VuaXR0ZXN0cy9wYXJzZS1jb25uZWN0aW9uLXNwZWMtc2VsZnRlc3RzLmMg Yi9nZGIvdW5pdHRlc3RzL3BhcnNlLWNvbm5lY3Rpb24tc3BlYy1zZWxmdGVzdHMuYwotbmV3IGZp bGUgbW9kZSAxMDA2NDQKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi91bml0dGVzdHMvcGFyc2Ut Y29ubmVjdGlvbi1zcGVjLXNlbGZ0ZXN0cy5jCi1AQCAtMCwwICsxLDI0OSBAQAotKy8qIFNlbGYg dGVzdHMgZm9yIHBhcnNpbmcgY29ubmVjdGlvbiBzcGVjcyBmb3IgR0RCLCB0aGUgR05VIGRlYnVn Z2VyLgotKwotKyAgIENvcHlyaWdodCAoQykgMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLSsKLSsgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIuCi0rCi0rICAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKLSsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsg ICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCi0rICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotKwotKyNpbmNsdWRlICJkZWZzLmgiCi0rI2lu Y2x1ZGUgInNlbGZ0ZXN0LmgiCi0rI2luY2x1ZGUgImNvbW1vbi9uZXRzdHVmZi5oIgotKyNpbmNs dWRlICJkaWFnbm9zdGljcy5oIgotKyNpZmRlZiBVU0VfV0lOMzJBUEkKLSsjaW5jbHVkZSA8d2lu c29jazIuaD4KLSsjaW5jbHVkZSA8d3NwaWFwaS5oPgotKyNlbHNlCi0rI2luY2x1ZGUgPG5ldGlu ZXQvaW4uaD4KLSsjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+Ci0rI2luY2x1ZGUgPG5ldGRiLmg+Ci0r I2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSsjaW5jbHVkZSA8bmV0aW5ldC90Y3AuaD4KLSsjZW5k aWYKLSsKLStuYW1lc3BhY2Ugc2VsZnRlc3RzIHsKLStuYW1lc3BhY2UgcGFyc2VfY29ubmVjdGlv bl9zcGVjX3Rlc3RzIHsKLSsKLSsvKiBBdXhpbGlhcnkgc3RydWN0IHRoYXQgaG9sZHMgaW5mbyBh Ym91dCBhIHNwZWNpZmljIHRlc3QgZm9yIGEKLSsgICBjb25uZWN0aW9uIHNwZWMuICAqLwotKwot K3N0cnVjdCBwYXJzZV9jb25uX3Rlc3QKLSt7Ci0rICAvKiBUaGUgY29ubmVjdGlvbiBzcGVjLiAg Ki8KLSsgIGNvbnN0IGNoYXIgKmNvbm5zcGVjOwotKwotKyAgLyogRXhwZWN0ZWQgcmVzdWx0IGZy b20gJ3BhcnNlX2Nvbm5lY3Rpb25fc3BlYycuICAqLwotKyAgcGFyc2VkX2Nvbm5lY3Rpb25fc3Bl YyBleHBlY3RlZF9yZXN1bHQ7Ci0rCi0rICAvKiBUcnVlIGlmIHRoaXMgdGVzdCBzaG91bGQgZmFp bCwgZmFsc2Ugb3RoZXJ3aXNlLiAgSWYgdHJ1ZSwgb25seQotKyAgICAgdGhlIENPTk5TUEVDIGZp ZWxkIHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIHZhbGlkLiAgKi8KLSsgIGJvb2wgc2hvdWxkX2Zh aWw7Ci0rCi0rICAvKiBUaGUgZXhwZWN0ZWQgQUlfRkFNSUxZIHRvIGJlIGZvdW5kIG9uIHRoZSAn c3RydWN0IGFkZHJpbmZvJwotKyAgICAgSElOVC4gICovCi0rICBpbnQgZXhwX2FpX2ZhbWlseTsK LSsKLSsgIC8qIFRoZSBleHBlY3RlZCBBSV9TT0NLVFlQRSB0byBiZSBmb3VuZCBvbiB0aGUgJ3N0 cnVjdCBhZGRyaW5mbycKLSsgICAgIEhJTlQuICAqLwotKyAgaW50IGV4cF9haV9zb2NrdHlwZTsK LSsKLSsgIC8qIFRoZSBleHBlY3RlZCBBSV9QUk9UT0NPTCB0byBiZSBmb3VuZCBvbiB0aGUgJ3N0 cnVjdCBhZGRyaW5mbycKLSsgICAgIEhJTlQuICAqLwotKyAgaW50IGV4cF9haV9wcm90b2NvbDsK LSt9OwotKwotKy8qIFNvbWUgZGVmaW5lcyB0byBoZWxwIHVzIGZpbGwgYSAnc3RydWN0IHBhcnNl X2Nvbm5fdGVzdCcuICAqLwotKwotKy8qIEluaXRpYWxpemUgYSBmdWxsIGVudHJ5LiAgKi8KLSsj ZGVmaW5lIElOSVRfRU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBTSE9VTERfRkFJTCwg RVhQX0FJX0ZBTUlMWSwgXAotKwkJICAgRVhQX0FJX1NPQ0tUWVBFLCBFWFBfQUlfUFJPVE9DT0wp CQkJXAotKyAgeyBBRERSLCB7IEVYUF9IT1NULCBFWFBfUE9SVCB9LCBTSE9VTERfRkFJTCwgRVhQ X0FJX0ZBTUlMWSwgXAotKyAgICBFWFBfQUlfU09DS1RZUEUsIEVYUF9BSV9QUk9UT0NPTCB9Ci0r Ci0rLyogSW5pdGlhbGl6ZSBhbiB1bnByZWZpeGVkIGVudHJ5LiAgSW4gdGhpcyBjYXNlLCB3ZSBk b24ndCBleHBlY3QKLSsgICBhbnl0aGluZyBvbiB0aGUgJ3N0cnVjdCBhZGRyaW5mbycgSElOVC4g ICovCi0rI2RlZmluZSBJTklUX1VOUFJFRklYRURfRU5UUlkoQUREUiwgRVhQX0hPU1QsIEVYUF9Q T1JUKSBcCi0rICBJTklUX0VOVFJZIChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQsIGZhbHNlLCAw LCAwLCAwKQotKwotKy8qIEluaXRpYWxpemVkIGFuIHVucHJlZml4ZWQgSVB2NiBlbnRyeS4gIElu IHRoaXMgY2FzZSwgd2UgZG9uJ3QKLSsgICBleHBlY3QgYW55dGhpbmcgb24gdGhlICdzdHJ1Y3Qg YWRkcmluZm8nIEhJTlQuICAqLwotKyNkZWZpbmUgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5UUlko QUREUiwgRVhQX0hPU1QsIEVYUF9QT1JUKSBcCi0rICBJTklUX0VOVFJZIChBRERSLCBFWFBfSE9T VCwgRVhQX1BPUlQsIGZhbHNlLCBBRl9JTkVUNiwgMCwgMCkKLSsKLSsvKiBJbml0aWFsaXplIGEg cHJlZml4ZWQgZW50cnkuICAqLwotKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9FTlRSWShBRERSLCBF WFBfSE9TVCwgRVhQX1BPUlQsIEVYUF9BSV9GQU1JTFksIFwKLSsJCQkgICAgRVhQX0FJX1NPQ0tU WVBFLCBFWFBfQUlfUFJPVE9DT0wpIFwKLSsgIElOSVRfRU5UUlkgKEFERFIsIEVYUF9IT1NULCBF WFBfUE9SVCwgZmFsc2UsIEVYUF9BSV9GQU1JTFksIFwKLSsJICAgICAgRVhQX0FJX1NPQ0tUWVBF LCBFWFBfQUlfUFJPVE9DT0wpCi0rCi0rLyogSW5pdGlhbGl6ZSBhbiBlbnRyeSBwcmVmaXhlZCB3 aXRoICJ0Y3A0OiIuICAqLwotKyNkZWZpbmUgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUChBRERSLCBF WFBfSE9TVCwgRVhQX1BPUlQpIFwKLSsgIElOSVRfUFJFRklYRURfRU5UUlkgKEFERFIsIEVYUF9I T1NULCBFWFBfUE9SVCwgQUZfSU5FVCwgU09DS19TVFJFQU0sIFwKLSsJCSAgICAgICBJUFBST1RP X1RDUCkKLSsKLSsvKiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInRjcDY6Ii4g ICovCi0rI2RlZmluZSBJTklUX1BSRUZJWEVEX0lQVjZfVENQKEFERFIsIEVYUF9IT1NULCBFWFBf UE9SVCkgXAotKyAgSU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JU LCBBRl9JTkVUNiwgU09DS19TVFJFQU0sIFwKLSsJCSAgICAgICBJUFBST1RPX1RDUCkKLSsKLSsv KiBJbml0aWFsaXplIGFuIGVudHJ5IHByZWZpeGVkIHdpdGggInVkcDQ6Ii4gICovCi0rI2RlZmlu ZSBJTklUX1BSRUZJWEVEX0lQVjRfVURQKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCkgXAotKyAg SU5JVF9QUkVGSVhFRF9FTlRSWSAoQUREUiwgRVhQX0hPU1QsIEVYUF9QT1JULCBBRl9JTkVULCBT T0NLX0RHUkFNLCBcCi0rCQkgICAgICAgSVBQUk9UT19VRFApCi0rCi0rLyogSW5pdGlhbGl6ZSBh biBlbnRyeSBwcmVmaXhlZCB3aXRoICJ1ZHA2OiIuICAqLwotKyNkZWZpbmUgSU5JVF9QUkVGSVhF RF9JUFY2X1VEUChBRERSLCBFWFBfSE9TVCwgRVhQX1BPUlQpIFwKLSsgIElOSVRfUFJFRklYRURf RU5UUlkgKEFERFIsIEVYUF9IT1NULCBFWFBfUE9SVCwgQUZfSU5FVDYsIFNPQ0tfREdSQU0sIFwK LSsJCSAgICAgICBJUFBST1RPX1VEUCkKLSsKLSsvKiBJbml0aWFsaXplIGEgYm9ndXMgZW50cnks IGkuZS4sIGEgY29ubmVjdGlvbiBzcGVjIHRoYXQgc2hvdWxkCi0rICAgZmFpbC4gICovCi0rI2Rl ZmluZSBJTklUX0JPR1VTX0VOVFJZKEFERFIpIFwKLSsgIElOSVRfRU5UUlkgKEFERFIsICIiLCAi IiwgdHJ1ZSwgMCwgMCwgMCkKLSsKLSsvKiBUaGUgdmFyaWFibGUgd2hpY2ggaG9sZHMgYWxsIG9m IG91ciB0ZXN0cy4gICovCi0rCi0rc3RhdGljIGNvbnN0IHBhcnNlX2Nvbm5fdGVzdCBjb25uX3Rl c3RbXSA9Ci0rICB7Ci0rICAgIC8qIFVucHJlZml4ZWQgYWRkcmVzc2VzLiAgKi8KLSsKLSsgICAg LyogSVB2NCwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVE X0VOVFJZICgiMTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKLSsgICAgLyog SVB2NCwgb25seSBob3N0LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAu MC4xIiwgIjEyNy4wLjAuMSIsICIiKSwKLSsgICAgLyogSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8K LSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiMTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAi IiksCi0rCi0rICAgIC8qIElQdjYsIGhvc3QgYW5kIHBvcnQgcHJlc2VudCwgbm8gYnJhY2tldHMu ICAqLwotKyAgICBJTklUX1VOUFJFRklYRURfRU5UUlkgKCI6OjE6MTIzNCIsICI6OjEiLCAiMTIz NCIpLAotKyAgICAvKiBJUHY2LCBtaXNzaW5nIHBvcnQsIG5vIGJyYWNrZXRzLiAgKi8KLSsgICAg SU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjoxOiIsICI6OjEiLCAiIiksCi0rICAgIC8qIElQdjYs IGhvc3QgYW5kIHBvcnQgcHJlc2VudCwgd2l0aCBicmFja2V0cy4gICovCi0rICAgIElOSVRfVU5Q UkVGSVhFRF9JUFY2X0VOVFJZICgiWzo6MV06MTIzNCIsICI6OjEiLCAiMTIzNCIpLAotKyAgICAv KiBJUHY2LCBvbmx5IGhvc3QsIHdpdGggYnJhY2tldHMuICAqLwotKyAgICBJTklUX1VOUFJFRklY RURfSVBWNl9FTlRSWSAoIls6OjFdIiwgIjo6MSIsICIiKSwKLSsgICAgLyogSVB2NiwgbWlzc2lu ZyBwb3J0LCB3aXRoIGJyYWNrZXRzLiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0lQVjZfRU5U UlkgKCJbOjoxXToiLCAiOjoxIiwgIiIpLAotKwotKyAgICAvKiBVbnNwZWNpZmllZCwgb25seSBw b3J0LiAgKi8KLSsgICAgSU5JVF9VTlBSRUZJWEVEX0VOVFJZICgiOjEyMzQiLCAibG9jYWxob3N0 IiwgIjEyMzQiKSwKLSsKLSsgICAgLyogUHJlZml4ZWQgYWRkcmVzc2VzLiAgKi8KLSsKLSsgICAg LyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0LCBob3N0IGFuZCBwb3J0IHByZXNlbnRzLiAgKi8KLSsg ICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAu MC4xIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInRjcDQ6IiBJUHY0LCBvbmx5IHBvcnQu ICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVENQICgidGNwNDo6MTIzNCIsICJsb2NhbGhv c3QiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAidGNwNDoiIElQdjQsIG9ubHkgaG9zdC4g ICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNF9UQ1AgKCJ0Y3A0OjEyNy4wLjAuMSIsICIxMjcu MC4wLjEiLCAiIiksCi0rICAgIC8qIFByZWZpeGVkICJ0Y3A0OiIgSVB2NCwgbWlzc2luZyBwb3J0 LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1RDUCAoInRjcDQ6MTI3LjAuMC4xOiIsICIx MjcuMC4wLjEiLCAiIiksCi0rCi0rICAgIC8qIFByZWZpeGVkICJ1ZHA0OiIgSVB2NCwgaG9zdCBh bmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VEUCAoInVkcDQ6 MTI3LjAuMC4xOjEyMzQiLCAiMTI3LjAuMC4xIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQg InVkcDQ6IiBJUHY0LCBvbmx5IHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQVjRfVURQ ICgidWRwNDo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVmaXhlZCAi dWRwNDoiIElQdjQsIG9ubHkgaG9zdC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNF9VRFAg KCJ1ZHA0OjEyNy4wLjAuMSIsICIxMjcuMC4wLjEiLCAiIiksCi0rICAgIC8qIFByZWZpeGVkICJ1 ZHA0OiIgSVB2NCwgbWlzc2luZyBwb3J0LiAgKi8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY0X1VE UCAoInVkcDQ6MTI3LjAuMC4xOiIsICIxMjcuMC4wLjEiLCAiIiksCi0rCi0rCi0rICAgIC8qIFBy ZWZpeGVkICJ0Y3A2OiIgSVB2NiwgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5J VF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6OjoxOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKLSsg ICAgLyogUHJlZml4ZWQgInRjcDY6IiBJUHY2LCBvbmx5IHBvcnQuICAqLwotKyAgICBJTklUX1BS RUZJWEVEX0lQVjZfVENQICgidGNwNjo6MTIzNCIsICJsb2NhbGhvc3QiLCAiMTIzNCIpLAotKyAg ICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYsIG9ubHkgaG9zdC4gICovCi0rICAgIC8vSU5JVF9Q UkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6OjoxIiwgIjo6MSIsICIiKSwKLSsgICAgLyogUHJlZml4 ZWQgInRjcDY6IiBJUHY2LCBtaXNzaW5nIHBvcnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVEX0lQ VjZfVENQICgidGNwNjo6OjE6IiwgIjo6MSIsICIiKSwKLSsKLSsgICAgLyogUHJlZml4ZWQgInVk cDY6IiBJUHY2LCBob3N0IGFuZCBwb3J0IHByZXNlbnQuICAqLwotKyAgICBJTklUX1BSRUZJWEVE X0lQVjZfVURQICgidWRwNjo6OjE6MTIzNCIsICI6OjEiLCAiMTIzNCIpLAotKyAgICAvKiBQcmVm aXhlZCAidWRwNjoiIElQdjYsIG9ubHkgcG9ydC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBW Nl9VRFAgKCJ1ZHA2OjoxMjM0IiwgImxvY2FsaG9zdCIsICIxMjM0IiksCi0rICAgIC8qIFByZWZp eGVkICJ1ZHA2OiIgSVB2Niwgb25seSBob3N0LiAgKi8KLSsgICAgLy9JTklUX1BSRUZJWEVEX0lQ VjZfVURQICgidWRwNjo6OjEiLCAiOjoxIiwgIiIpLAotKyAgICAvKiBQcmVmaXhlZCAidWRwNjoi IElQdjYsIG1pc3NpbmcgcG9ydC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1 ZHA2Ojo6MToiLCAiOjoxIiwgIiIpLAotKwotKyAgICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYg d2l0aCBicmFja2V0cywgaG9zdCBhbmQgcG9ydCBwcmVzZW50LiAgKi8KLSsgICAgSU5JVF9QUkVG SVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV06MTIzNCIsICI6OjEiLCAiMTIzNCIpLAotKyAgICAv KiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywgb25seSBob3N0LiAgKi8KLSsg ICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV0iLCAiOjoxIiwgIiIpLAotKyAg ICAvKiBQcmVmaXhlZCAidGNwNjoiIElQdjYgd2l0aCBicmFja2V0cywgbWlzc2luZyBwb3J0LiAg Ki8KLSsgICAgSU5JVF9QUkVGSVhFRF9JUFY2X1RDUCAoInRjcDY6Wzo6MV06IiwgIjo6MSIsICIi KSwKLSsKLSsgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJUHY2IHdpdGggYnJhY2tldHMsIGhvc3Qg YW5kIHBvcnQgcHJlc2VudC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBWNl9VRFAgKCJ1ZHA2 Ols6OjFdOjEyMzQiLCAiOjoxIiwgIjEyMzQiKSwKLSsgICAgLyogUHJlZml4ZWQgInVkcDY6IiBJ UHY2IHdpdGggYnJhY2tldHMsIG9ubHkgaG9zdC4gICovCi0rICAgIElOSVRfUFJFRklYRURfSVBW Nl9VRFAgKCJ1ZHA2Ols6OjFdIiwgIjo6MSIsICIiKSwKLSsgICAgLyogUHJlZml4ZWQgInVkcDY6 IiBJUHY2IHdpdGggYnJhY2tldHMsIG1pc3NpbmcgcG9ydC4gICovCi0rICAgIElOSVRfUFJFRklY RURfSVBWNl9VRFAgKCJ1ZHA2Ols6OjFdOiIsICI6OjEiLCAiIiksCi0rCi0rCi0rICAgIC8qIEJv Z3VzIGFkZHJlc3Nlcy4gICovCi0rICAgIElOSVRfQk9HVVNfRU5UUlkgKCJ0Y3A2Ols6OjFdMTIz OjQ0IiksCi0rICAgIElOSVRfQk9HVVNfRU5UUlkgKCJbOjoxIiksCi0rICAgIElOSVRfQk9HVVNf RU5UUlkgKCJ0Y3A2Ojo6MV06IiksCi0rICB9OwotKwotKy8qIFRlc3QgYSBjb25uZWN0aW9uIHNw ZWMgQy4gICovCi0rCi0rc3RhdGljIHZvaWQKLSt0ZXN0X2Nvbm4gKGNvbnN0IHBhcnNlX2Nvbm5f dGVzdCAmYykKLSt7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludDsKLSsgIHBhcnNlZF9jb25uZWN0 aW9uX3NwZWMgcmV0OwotKwotKyAgbWVtc2V0ICgmaGludCwgMCwgc2l6ZW9mIChoaW50KSk7Ci0r Ci0rICBUUlkKLSsgICAgewotKyAgICAgIHJldCA9IHBhcnNlX2Nvbm5lY3Rpb25fc3BlYyAoYy5j b25uc3BlYywgJmhpbnQpOwotKyAgICB9Ci0rICBDQVRDSCAoZXgsIFJFVFVSTl9NQVNLX0VSUk9S KQotKyAgICB7Ci0rICAgICAgLyogSWYgd2UgY2F1Z2h0IGFuIGVycm9yLCB3ZSBzaG91bGQgY2hl Y2sgaWYgdGhpcyBjb25uZWN0aW9uCi0rCSBzcGVjIHdhcyBzdXBwb3NlZCB0byBmYWlsLiAgKi8K LSsgICAgICBTRUxGX0NIRUNLIChjLnNob3VsZF9mYWlsKTsKLSsgICAgICByZXR1cm47Ci0rICAg IH0KLSsgIEVORF9DQVRDSAotKwotKyAgU0VMRl9DSEVDSyAoIWMuc2hvdWxkX2ZhaWwpOwotKyAg U0VMRl9DSEVDSyAocmV0Lmhvc3Rfc3RyID09IGMuZXhwZWN0ZWRfcmVzdWx0Lmhvc3Rfc3RyKTsK LSsgIFNFTEZfQ0hFQ0sgKHJldC5wb3J0X3N0ciA9PSBjLmV4cGVjdGVkX3Jlc3VsdC5wb3J0X3N0 cik7Ci0rICBTRUxGX0NIRUNLIChoaW50LmFpX2ZhbWlseSA9PSBjLmV4cF9haV9mYW1pbHkpOwot KyAgU0VMRl9DSEVDSyAoaGludC5haV9zb2NrdHlwZSA9PSBjLmV4cF9haV9zb2NrdHlwZSk7Ci0r ICBTRUxGX0NIRUNLIChoaW50LmFpX3Byb3RvY29sID09IGMuZXhwX2FpX3Byb3RvY29sKTsKLSt9 Ci0rCi0rLyogUnVuIHRoZSB0ZXN0cyBhc3NvY2lhdGVkIHdpdGggcGFyc2luZyBjb25uZWN0aW9u IHNwZWNzLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK3J1bl90ZXN0cyAoKQotK3sKLSsgIGZvciAo Y29uc3QgcGFyc2VfY29ubl90ZXN0ICZjIDogY29ubl90ZXN0KQotKyAgICB0ZXN0X2Nvbm4gKGMp OwotK30KLSt9IC8qIG5hbWVzcGFjZSBwYXJzZV9jb25uZWN0aW9uX3NwZWNfdGVzdHMgKi8KLSt9 IC8qIG5hbWVzcGFjZSBzZWxmdGVzdHMgKi8KLSsKLSt2b2lkCi0rX2luaXRpYWxpemVfcGFyc2Vf Y29ubmVjdGlvbl9zcGVjX3NlbGZ0ZXN0cyAoKQotK3sKLSsgIHNlbGZ0ZXN0czo6cmVnaXN0ZXJf dGVzdCAoInBhcnNlX2Nvbm5lY3Rpb25fc3BlYyIsCi0rCQkJICAgIHNlbGZ0ZXN0czo6cGFyc2Vf Y29ubmVjdGlvbl9zcGVjX3Rlc3RzOjpydW5fdGVzdHMpOwotK30KCmRpZmYgLS1naXQgYS9nZGIt cmhiejg4MTg0OS1pcHY2LTJvZjIucGF0Y2ggYi9nZGItcmhiejg4MTg0OS1pcHY2LTJvZjIucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM5Yzk2NgotLS0gL2Rldi9u dWxsCisrKyBiL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMm9mMi5wYXRjaApAQCAtMCwwICsxLDYzIEBA CitGcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2Vy Z2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQuY29tPgorRGF0ZTogRnJpLCAxMyBK dWwgMjAxOCAxNjoyMDozNCAtMDQwMAorU3ViamVjdDogZ2RiLXJoYno4ODE4NDktaXB2Ni0yb2Yy LnBhdGNoCisKKzs7IEltcGxlbWVudCBJUHY2IHN1cHBvcnQgZm9yIEdEQi9nZGJzZXJ2ZXIgKFJI IEJaIDg4MTg0OSwgU2VyZ2lvIER1cmlnYW4gSnVuaW9yKS4KKworRXhwZWN0IGZvciBhbm90aGVy IHZhcmlhbnQgb2YgZXJyb3IgbWVzc2FnZSB3aGVuIGdkYnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBo b3N0bmFtZQorCitJJ3ZlIG5vdGljZWQgdGhhdCBvbiBhIGZldyBob3N0cywgd2hlbiBnaXZlbiBh biBpbnZhbGlkIGhvc3RuYW1lLAorZ2Ric2VydmVyIGZhaWxzIHdpdGg6CisKKyAgc3Bhd24gLy4u Ly4uL2dkYi9nZGJzZXJ2ZXIvZ2Ric2VydmVyIC0tb25jZSB0Y3A4OjEyMzoyMzUzIC9nZGIvYnVp bGQvZmVkb3JhLXMzOTB4L2J1aWxkL2dkYi90ZXN0c3VpdGUvb3V0cHV0cy9nZGIuc2VydmVyL3Nl cnZlci1jb25uZWN0L3NlcnZlci1jb25uZWN0CisgIHRjcDg6MTIzOjIzNTM6IGNhbm5vdCByZXNv bHZlIG5hbWU6IE5vIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGhvc3RuYW1lCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eCisgIEV4aXRpbmcKKworVW5mb3J0dW5hdGVseSwgdGhpcyBjYXVzZXMgYSBmYWlsIG9u IHRoZSBuZXcKK2dkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwIHRlc3QgKGludHJvZHVjZWQg YnkgdGhlIElQdjYgcGF0Y2gpOgorCisgIEZBSUw6IGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3Qu ZXhwOiB0Y3A4OiBzdGFydCBnZGJzZXJ2ZXI6IGdkYnNlcnZlciBzaG91bGQgZmFpbCBidXQgZGlk IG5vdAorCitUaGlzIGhhcHBlbnMgYmVjYXVzZSB3ZSdyZSBleHBlY3RpbmcgZm9yIGFub3RoZXIg dmFyaWFudCBvZiB0aGlzIGVycm9yCittZXNzYWdlOgorCisgIGNhbm5vdCByZXNvbHZlIG5hbWU6 IE5hbWUgb3Igc2VydmljZSBub3Qga25vd24KKworVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGV4dGVu ZHMgdGhlIGhlbHBlciBmdW5jdGlvbiAnZ2Ric2VydmVyX3N0YXJ0JyB0bworYWxzbyByZWNvZ25p emUgdGhlICJObyBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCBob3N0bmFtZSIgbWVzc2FnZS4KK1Ro aXMgImZpeGVzIiB0aGUgdGVzdGNhc2Ugb24gdGhlIGhvc3RzIHRoYXQgdXNlIHRoaXMgdmFyaWFu dC4KKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CisyMDE4LTA3LTEzICBTZXJnaW8gRHVyaWdh biBKdW5pb3IgIDxzZXJnaW9kakByZWRoYXQuY29tPgorCisJKiBsaWIvZ2Ric2VydmVyLXN1cHBv cnQuZXhwIChnZGJzZXJ2ZXJfc3RhcnQpOiBFeHBlY3QgZm9yIHRoZQorCW1lc3NhZ2UgIk5vIGFk ZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGhvc3RuYW1lIiB3aGVuIGdkYnNlcnZlcgorCWNhbm5vdCBy ZXNvbHZlIHRoZSBob3N0bmFtZS4KKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKy0tLSBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdl TG9nCisrKysgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworQEAgLTEsMyArMSw5IEBACisrMjAx OC0wNy0xMyAgU2VyZ2lvIER1cmlnYW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KKysK KysJKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJfc3RhcnQpOiBFeHBlY3Qg Zm9yIHRoZQorKwltZXNzYWdlICJObyBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCBob3N0bmFtZSIg d2hlbiBnZGJzZXJ2ZXIKKysJY2Fubm90IHJlc29sdmUgdGhlIGhvc3RuYW1lLgorKworIDIwMTgt MDctMTEgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJlZGhhdC5jb20+CisgCSAg ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisgCSAgICBQYXVs IEZlcnRzZXIgIDxmZXJjZXJwYXZAZ21haWwuY29tPgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cCBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZl ci1zdXBwb3J0LmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQu ZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKK0BAIC0z MjYsNyArMzI2LDcgQEAgcHJvYyBnZGJzZXJ2ZXJfc3RhcnQgeyBvcHRpb25zIGFyZ3VtZW50cyB9 IHsKKyAJCSAgICBjb250aW51ZQorIAkJfQorIAkgICAgfQorLQkgICAgLXJlICIuKjogY2Fubm90 IHJlc29sdmUgbmFtZTogTmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93blxyXG4iIHsKKysJICAgIC1y ZSAiLio6IGNhbm5vdCByZXNvbHZlIG5hbWU6IFwoTm8gYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGgg aG9zdG5hbWV8TmFtZSBvciBzZXJ2aWNlIG5vdCBrbm93blwpXHJcbiIgeworIAkJZXJyb3IgImdk YnNlcnZlciBjYW5ub3QgcmVzb2x2ZSBuYW1lLiIKKyAJICAgIH0KKyAJICAgIHRpbWVvdXQgewoK ZGlmZiAtLWdpdCBhL2dkYi1yaGJ6ODgxODQ5LWlwdjYtMm9mMy5wYXRjaCBiL2dkYi1yaGJ6ODgx ODQ5LWlwdjYtMm9mMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkwYmUw Zi4uMDAwMDAwMAotLS0gYS9nZGItcmhiejg4MTg0OS1pcHY2LTJvZjMucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw1NCArMCwwIEBACi1Gcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogU2VyZ2lvIER1cmlnYW4gSnVuaW9yIDxzZXJnaW9kakByZWRoYXQu Y29tPgotRGF0ZTogTW9uLCAzMCBKdWwgMjAxOCAxNToyMzoyNyAtMDQwMAotU3ViamVjdDogZ2Ri LXJoYno4ODE4NDktaXB2Ni0yb2YzLnBhdGNoCi0KLU1hdGNoIGFueSBraW5kIG9mIGVycm9yIGFm dGVyICJjYW5ub3QgcmVzb2x2ZSBuYW1lIiBvbiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwOmdk YnNlcnZlcl9zdGFydAotCi1PbiBjb21taXQ6Ci0KLWNvbW1pdCA3ZjFmN2UyMzkzOWFkYzdkNzEw MzZhMTdmYzYwODFlM2FmN2NhNTg1Ci1BdXRob3I6IFNlcmdpbyBEdXJpZ2FuIEp1bmlvciA8c2Vy Z2lvZGpAcmVkaGF0LmNvbT4KLURhdGU6ICAgRnJpIEp1bCAxMyAxNjoyMDozNCAyMDE4IC0wNDAw Ci0KLSAgICBFeHBlY3QgZm9yIGFub3RoZXIgdmFyaWFudCBvZiBlcnJvciBtZXNzYWdlIHdoZW4g Z2Ric2VydmVyIGNhbm5vdCByZXNvbHZlIGhvc3RuYW1lCi0KLUkgZXh0ZW5kZWQgdGhlIHJlZ3Vs YXIgZXhwcmVzc2lvbiBiZWluZyB1c2VkIHRvIGlkZW50aWZ5IHdoZXRoZXIKLWdkYnNlcnZlciBj b3VsZCBub3QgcmVzb2x2ZSBhIChob3N0KW5hbWUuICBUaGlzIHdhcyBuZWVkZWQgYmVjYXVzZSB0 aGUKLWVycm9yIG1lc3NhZ2UgYmVpbmcgcHJpbnRlZCBoYWQgYSBkaWZmZXJlbnQgdmFyaWF0aW9u IGFjcm9zcyBzb21lCi1zeXN0ZW1zLiAgSG93ZXZlciwgYXMgaXQgdHVybnMgb3V0LCBJJ3ZlIGp1 c3Qgbm90aWNlZCB0aGF0IHRoZSBtZXNzYWdlCi1oYXMgeWV0IGFub3RoZXIgdmFyaWF0aW9uOgot Ci0gIHRhcmdldCByZW1vdGUgdGNwODoxMjM6MjM1MwotICB0Y3A4OjEyMzoyMzUzOiBjYW5ub3Qg cmVzb2x2ZSBuYW1lOiBTeXN0ZW0gZXJyb3IKLSAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eCi0gIHRjcDg6MTIzOjIzNTM6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkuCi0gIChnZGIpIEZBSUw6IGdkYi5zZXJ2ZXIvc2VydmVyLWNvbm5lY3QuZXhwOiB0 Y3A4OiBjb25uZWN0IHRvIGdkYnNlcnZlciB1c2luZyB0Y3A4OjEyMwotCi13aGljaCBpcyBjYXVz aW5nIEZBSUxzIG9uIHNvbWUgc3lzdGVtcyAobmFtZWx5LCBGZWRvcmEtaTY4NiBvbgotQnVpbGRC b3QpLgotCi1TbyBpbnN0ZWFkIG9mIHRyeWluZyB0byBwcmVkaWN0IGV2ZXJ5dGhpbmcgdGhhdCBj YW4gYmUgcHJpbnRlZCwgSQotZGVjaWRlZCB0byBqdXN0IG1hdGNoIGFueXRoaW5nIGFmdGVyIHRo ZSAiY2Fubm90IHJlc29sdmUgbmFtZTogIiBwYXJ0LgotVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHRo YXQuCi0KLVJlZ3Jlc3Npb24gdGVzdGVkIG9uIHRoZSBCdWlsZEJvdC4KLQotZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2c6Ci0yMDE4LTA3LTMwICBTZXJnaW8gRHVyaWdhbiBKdW5pb3IgIDxzZXJnaW9k akByZWRoYXQuY29tPgotCi0JKiBsaWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwIChnZGJzZXJ2ZXJf c3RhcnQpOiBNYXRjaCBhbnkga2luZCBvZgotCWVycm9yIGFmdGVyICJjYW5ub3QgcmVzb2x2ZSBu YW1lIiBzdHJpbmcuCi0KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXIt c3VwcG9ydC5leHAgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGJzZXJ2ZXItc3VwcG9ydC5leHAKLS0t LSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYnNlcnZlci1zdXBwb3J0LmV4cAotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9saWIvZ2Ric2VydmVyLXN1cHBvcnQuZXhwCi1AQCAtMzI2LDcgKzMyNiw3IEBAIHBy b2MgZ2Ric2VydmVyX3N0YXJ0IHsgb3B0aW9ucyBhcmd1bWVudHMgfSB7Ci0gCQkgICAgY29udGlu dWUKLSAJCX0KLSAJICAgIH0KLS0JICAgIC1yZSAiLio6IGNhbm5vdCByZXNvbHZlIG5hbWU6IE5h bWUgb3Igc2VydmljZSBub3Qga25vd25cclxuIiB7Ci0rCSAgICAtcmUgIi4qOiBjYW5ub3QgcmVz b2x2ZSBuYW1lOiAuKlxyXG4iIHsKLSAJCWVycm9yICJnZGJzZXJ2ZXIgY2Fubm90IHJlc29sdmUg bmFtZS4iCi0gCSAgICB9Ci0gCSAgICB0aW1lb3V0IHsKCmRpZmYgLS1naXQgYS9nZGItcmhiejg4 MTg0OS1pcHY2LTNvZjMucGF0Y2ggYi9nZGItcmhiejg4MTg0OS1pcHY2LTNvZjMucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4OWNiMTguLjAwMDAwMDAKLS0tIGEvZ2RiLXJo Yno4ODE4NDktaXB2Ni0zb2YzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAot RnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFNlcmdp byBEdXJpZ2FuIEp1bmlvciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLURhdGU6IEZyaSwgMyBBdWcg MjAxOCAxODowNDozOCAtMDQwMAotU3ViamVjdDogZ2RiLXJoYno4ODE4NDktaXB2Ni0zb2YzLnBh dGNoCi0KLUZpeCB0aGlua28gd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIGRpc2FibGUgVENQJ3Mg TmFnbGUgYWxnb3JpdGhtCi0KLVRoaXMgcGF0Y2ggZml4ZXMgYSB0aGlua28gdGhhdCBoYXBwZW5l ZCB3aGVuIEkgd2FzIGltcGxlbWVudGluZyB0aGUKLUlQdjYgc3VwcG9ydCBvbiBHREIvZ2Ric2Vy dmVyLiAgT24gY2VydGFpbiBzaXR1YXRpb25zLCBpdCBpcyBuZWNlc3NhcnkKLXRvIGRpc2FibGUg VENQJ3MgTmFnbGUgYWxnb3JpdGhtIChOT0RFTEFZKS4gIEZvciBvYnZpb3VzIHJlYXNvbnMsIHRo aXMKLW9ubHkgYXBwbGllcyB3aGVuIHdlIGFyZSBkZWFsaW5nIHdpdGggYSBUQ1AgY29ubmVjdGlv bi4KLQotV2hpbGUgaW1wbGVtZW50aW5nIHRoZSBJUHY2IHBhdGNoLCBJIG5vdGljZWQgdGhhdCB0 aGUgbmV0X29wZW4KLWZ1bmN0aW9uIChvbiBnZGIvc2VyLXRjcC5jKSBrZXB0IGEgZmxhZyBpbmRp Y2F0aW5nIHdoZXRoZXIgdGhlCi1jb25uZWN0aW9uIHR5cGUgd2FzIFVEUCBvciBUQ1AuICBJIGVs aW1pbmF0ZWQgdGhhdCBmbGFnLCBhbmQgc3RhcnRlZAotdXNpbmcgdGhlICdzdHJ1Y3QgYWRkcmlu Zm8gKicgcmVsYXRlZCB0byB0aGUgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uCi1kaXJlY3RseS4gIEhv d2V2ZXIsIEkgbWFkZSBhIG1pc3Rha2U6Ci0KLSAgaWYgKHN1Y2Nlc3NfYWluZm8tPmFpX3NvY2t0 eXBlID09IElQUFJPVE9fVENQKQotICAgICAgICAgICAgICAgICAgICAgXl5eXl5eXl5eXl4KLSAg ICB7Ci0gICAgICAvKiBEaXNhYmxlIE5hZ2xlIGFsZ29yaXRobS4gIE5lZWRlZCBpbiBzb21lIGNh c2VzLiAgKi8KLSAgICAgIGludCB0bXAgPSAxOwotCi0gICAgICBzZXRzb2Nrb3B0IChzY2ItPmZk LCBJUFBST1RPX1RDUCwgVENQX05PREVMQVksCi0JCSAgKGNoYXIgKikgJnRtcCwgc2l6ZW9mICh0 bXApKTsKLSAgICB9Ci0KLVRoZSAnYWlfc29ja3R5cGUnIGZpZWxkIHNwZWNpZmllcyB0aGUgc29j a2V0IHR5cGUgKFNPQ0tfU1RSRUFNIG9yCi1TT0NLX0RHUkFNKSwgYW5kIG5vdCB0aGUgcHJvdG9j b2wuICBUaGlzIHRlc3Qgd2FzIGFsd2F5cyBmYWlsaW5nLCBhbmQKLXRoZSBOYWdsZSBhbGdvcml0 aG0gd2FzIG5ldmVyIGJlaW5nIGRpc2FibGVkLgotCi1UaGUgb2J2aW91cyBmaXggaXMgdG8gdXNl IHRoZSAnYWlfcHJvdG9jb2wnIGZpZWxkLiAgVGhpcyBpcyB3aGF0IHRoaXMKLXBhdGNoIGRvZXMu Ci0KLUh1Z2UgInRoYW5rIHlvdSIgdG8gSm9lbCBCcm9iZWNrZXIgd2hvIHJlcG9ydGVkIHRoZSBy ZWdyZXNzaW9uIChoZSB3YXMKLWV4cGVyaWVuY2luZyBhbiB1bnVzdWFsIGRlbGF5IHdoaWxlIGRl YnVnZ2luZyBhIGJhcmUtbWV0YWwgcHJvZ3JhbQotcnVubmluZyB1bmRlciBRRU1VKSBhbmQgaGVs cGVkIG1lIHNldCB1cCBhIHByb3BlciByZXByb2R1Y2VyIGZvciB0aGUKLWJ1Zy4KLQotZ2RiL0No YW5nZUxvZzoKLTIwMTgtMDgtMDMgIFNlcmdpbyBEdXJpZ2FuIEp1bmlvciAgPHNlcmdpb2RqQHJl ZGhhdC5jb20+Ci0KLQkqIHNlci10Y3AuYyAobmV0X29wZW4pOiBGaXggdGhpbmtvIHdoZW4gZGVj aWRpbmcgd2hldGhlciB0bwotCWRpc2FibGUgVENQJ3MgTmFnbGUgYWxnb3JpdGhtICh1c2UgImFp X3Byb3RvY29sIiBpbnN0ZWFkIG9mCi0JImFpX3NvY2t0eXBlIikuCi0KLWRpZmYgLS1naXQgYS9n ZGIvQ2hhbmdlTG9nIGIvZ2RiL0NoYW5nZUxvZwotLS0tIGEvZ2RiL0NoYW5nZUxvZwotKysrIGIv Z2RiL0NoYW5nZUxvZwotQEAgLTEsMyArMSw5IEBACi0rMjAxOC0wOC0wMyAgU2VyZ2lvIER1cmln YW4gSnVuaW9yICA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4KLSsKLSsJKiBzZXItdGNwLmMgKG5ldF9v cGVuKTogRml4IHRoaW5rbyB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgdG8KLSsJZGlzYWJsZSBUQ1An cyBOYWdsZSBhbGdvcml0aG0gKHVzZSAiYWlfcHJvdG9jb2wiIGluc3RlYWQgb2YKLSsJImFpX3Nv Y2t0eXBlIikuCi0rCi0gMjAxOC0wNy0yNSAgQWxhbiBIYXl3YXJkICA8YWxhbi5oYXl3YXJkQGFy bS5jb20+Ci0gCi0gCSogdGFyZ2V0LWRlc2NyaXB0aW9ucy5jICh0ZGVzY19yZWdpc3Rlcl9iaXRz aXplKTogUmVuYW1lLgotZGlmZiAtLWdpdCBhL2dkYi9zZXItdGNwLmMgYi9nZGIvc2VyLXRjcC5j Ci0tLS0gYS9nZGIvc2VyLXRjcC5jCi0rKysgYi9nZGIvc2VyLXRjcC5jCi1AQCAtMzY3LDcgKzM2 Nyw3IEBAIG5ldF9vcGVuIChzdHJ1Y3Qgc2VyaWFsICpzY2IsIGNvbnN0IGNoYXIgKm5hbWUpCi0g Ci0gICBpb2N0bCAoc2NiLT5mZCwgRklPTkJJTywgJmlvYXJnKTsKLSAKLS0gIGlmIChzdWNjZXNz X2FpbmZvLT5haV9zb2NrdHlwZSA9PSBJUFBST1RPX1RDUCkKLSsgIGlmIChzdWNjZXNzX2FpbmZv LT5haV9wcm90b2NvbCA9PSBJUFBST1RPX1RDUCkKLSAgICAgewotICAgICAgIC8qIERpc2FibGUg TmFnbGUgYWxnb3JpdGhtLiAgTmVlZGVkIGluIHNvbWUgY2FzZXMuICAqLwotICAgICAgIGludCB0 bXAgPSAxOwoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggNmYzODcyYS4u N2RiNmY3MiAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTI2LDcgKzI2 LDcgQEAgVmVyc2lvbjogOC4xLjkwLiV7c25hcHNyY30KIAogIyBUaGUgcmVsZWFzZSBhbHdheXMg Y29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVw c3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRl bmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiA0MCV7P2Rpc3R9CitS ZWxlYXNlOiAzOSV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhj ZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFu ZCBMR1BMdjIrIGFuZCBMR1BMdjMrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4gYW5kIEdGREwK IEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTE2OSwxMSArMTY5LDE0IEBAIFNvdXJj ZTU6ICV7bGlic3RkY3h4cHl0aG9ufS50YXIueHoKIFNvdXJjZTY6IGdkYnR1aQogCiAjIGxpYmlw dDogSW50ZWwgUHJvY2Vzc29yIFRyYWNlIERlY29kZXIgTGlicmFyeQotJWdsb2JhbCBsaWJpcHRf dmVyc2lvbiAyLjAKKyVnbG9iYWwgbGliaXB0X3ZlcnNpb24gMS42LjEKICM9ZmVkb3JhCiBTb3Vy Y2U3OiB2JXtsaWJpcHRfdmVyc2lvbn0udGFyLmd6CiAjPWZlZG9yYQogUGF0Y2gxMTQyOiB2MS41 LWxpYmlwdC1zdGF0aWMucGF0Y2gKKyMgW3JoZWwgZHRzIGxpYmlwdF0gRml4IFstV2Vycm9yPWlt cGxpY2l0LWZhbGx0aHJvdWdoPV0gd2l0aCBnY2MtNy4xLjEuCisjPXB1c2gramFuCitQYXRjaDEx NzE6IHYxLjYuMS1pbXBsaWNpdC1mYWxsdGhyb3VnaC5wYXRjaAogCiAjIyBbdGVzdHN1aXRlXSBG aXggZmFsc2Ugc2VsZnRlc3QuZXhwIEZBSUwgZnJvbSBzeXN0ZW0gcmVhZGxpbmUtNi4zKyAoUGF0 cmljayBQYWxrYSkuCiAjIz1mZWRvcmF0ZXN0CkBAIC00MTIsNiArNDE1LDcgQEAgdGFyIHh6ZiAl e1NPVVJDRTd9CiAoCiAgY2QgcHJvY2Vzc29yLXRyYWNlLSV7bGliaXB0X3ZlcnNpb259CiAlcGF0 Y2gxMTQyIC1wMQorJXBhdGNoMTE3MSAtcDEKICkKICVlbmRpZgogCkBAIC0xMDIyLDExICsxMDI2 LDYgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdlbG9nCi0qIFdlZCBBdWcgIDggMjAxOCBTZXJnaW8g RHVyaWdhbiBKdW5pb3IgPHNlcmdpb2RqQHJlZGhhdC5jb20+IC0gOC4xLjkwLjIwMTgwNzI3LTQw LmZjMjkKLS0gUmVidWlsZCBkdWUgdG8gbmV3IGxpYmlwdCByZWxlYXNlLgotLSBBZGp1c3QgYnVu ZGxlZCBsaWJpcHQ7IHJlbW92ZSB1bm5lY2Vzc2FyeSBwYXRjaC4KLS0gU3luYyBJUHY2IHBhdGNo IHdpdGggRi0yOCBHREIuCi0KICogV2VkIEF1ZyAgOCAyMDE4IEphbiBLcmF0b2NodmlsIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDguMS45MC4yMDE4MDcyNy0zOS5mYzI5CiAtIFtkdHNd IEZpeCBidWlsZCBieSByZW1vdmluZyBhIHBhdGNoIGZvciBhbHJlYWR5IHJlbW92ZWQgcGFob2xl LnB5IC4KIC0gW2R0cyByaGVsNl0gRml4IGJ1aWxkIGJ5IHVwZGF0aW5nIGdkYi1nbmF0LWR3YXJm LWNyYXNoLTNvZjMucGF0Y2ggLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4 IDVkOGI4NTMuLjE5M2M1N2QgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAt MSwzICsxLDMgQEAKIFNIQTUxMiAoZ2RiLWxpYnN0ZGMrKy12My1weXRob24tOC4xLjEtMjAxODA2 MjYudGFyLnh6KSA9IGE4YjFjNTRkZDM0OGNmZWIzN2RhNzNmOTY4NzQyODk2YmUzZGQxM2E0MjE1 ZjhkODUxOTg3MGMyYWJlYTkxNWY1MTc2YzNmYTY5ODlkZGQxMGYyMDAyMGExNmYwZmFiMjBjYmFl NjhlZThkNThhODIyMzRkODc3ODAyMzUyMGY4CitTSEE1MTIgKHYxLjYuMS50YXIuZ3opID0gYzdj OWM4YmE3ODAyMWZmZjNmZGUxMmEyMTZmNTcyOWM2MDMxMTE0ZTVhNzI3ZjQ5YjdmZjFhMzFjNTNi NWRkYmEyNGQxYjNhZWUyNTJkODI3OGVjZDFmYWZlNzhhNDRlZDA1OWMxMmI5ZWIyOWVjYTMzMDkz ZTA3MjA2NzM0NjgKIFNIQTUxMiAoZ2RiLTguMS45MC4yMDE4MDcyNy50YXIueHopID0gMGY4ZTlj ZmFlYWY5ZjIyMzYxYjNiOGQ1ZDQ5MGQwYThiZWEzZWVhYWEwYzY4MTNkNWRmMGE2ZDUyNjdmZjNm NTk3NzQ3Y2MwZTk3ZDcwYzQxOTZkNzhlZTMyZTBlODJkNTg5MzI4M2Q3MWI0NDlkODk3MDM4OTNi ZjFhZTAwMTQKLVNIQTUxMiAodjIuMC50YXIuZ3opID0gZWM2MzE1MWU4NDJjODFjYzczZWExMWJh NTYwYjYzZTAwNWNlZmJlMTlkOThkZTI0YWU1YzhjYWE0ZGU3YzljMWQ3MWQxZWM1YjYyMTRhMzQ3 NTkyZWFjNjc1Yjc1YTNkMmIyNmQ0NjkxY2E4NmY5MTAyMGViZmVhOGU5MTI5MzkKCmRpZmYgLS1n aXQgYS92MS41LWxpYmlwdC1zdGF0aWMucGF0Y2ggYi92MS41LWxpYmlwdC1zdGF0aWMucGF0Y2gK aW5kZXggNjU5OTQ0NS4uNDc3YjZjNCAxMDA2NDQKLS0tIGEvdjEuNS1saWJpcHQtc3RhdGljLnBh dGNoCisrKyBiL3YxLjUtbGliaXB0LXN0YXRpYy5wYXRjaApAQCAtMSw4ICsxLDYgQEAKLUluZGV4 OiBwcm9jZXNzb3ItdHJhY2UtMi4wL2xpYmlwdC9DTWFrZUxpc3RzLnR4dAotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIHByb2Nlc3Nvci10cmFjZS0yLjAub3JpZy9saWJpcHQvQ01ha2VMaXN0cy50eHQKLSsrKyBw cm9jZXNzb3ItdHJhY2UtMi4wL2xpYmlwdC9DTWFrZUxpc3RzLnR4dAotQEAgLTg1LDcgKzg1LDcg QEAgZW5kaWYgKENNQUtFX0hPU1RfV0lOMzIpCistLS0gcHJvY2Vzc29yLXRyYWNlLTEuNS9saWJp cHQvQ01ha2VMaXN0cy50eHQtb3JpZwkyMDE2LTA0LTA3IDA4OjUyOjE0LjAwMDAwMDAwMCArMDIw MAorKysrIHByb2Nlc3Nvci10cmFjZS0xLjUvbGliaXB0L0NNYWtlTGlzdHMudHh0CTIwMTYtMDgt MTcgMjM6MTI6MjMuMjQxMTA5MjQ0ICswMjAwCitAQCAtODEsNyArODEsNyBAQCBlbmRpZiAoQ01B S0VfSE9TVF9XSU4zMikKICAKICBzZXQoTElCSVBUX0ZJTEVTICR7TElCSVBUX0ZJTEVTfSAke0xJ QklQVF9TRUNUSU9OX0ZJTEVTfSkKICAKQEAgLTExLDEwICs5LDggQEAgSW5kZXg6IHByb2Nlc3Nv ci10cmFjZS0yLjAvbGliaXB0L0NNYWtlTGlzdHMudHh0CiAgICAke0xJQklQVF9GSUxFU30KICAp CiAgCi1JbmRleDogcHJvY2Vzc29yLXRyYWNlLTIuMC9saWJpcHQvc3JjL3Bvc2l4L2luaXQuYwot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIHByb2Nlc3Nvci10cmFjZS0yLjAub3JpZy9saWJpcHQvc3JjL3Bvc2l4 L2luaXQuYwotKysrIHByb2Nlc3Nvci10cmFjZS0yLjAvbGliaXB0L3NyYy9wb3NpeC9pbml0LmMK Ky0tLSBwcm9jZXNzb3ItdHJhY2UtMS41L2xpYmlwdC9zcmMvcG9zaXgvaW5pdC5jLW9yaWcJMjAx Ni0wNC0wNyAwODo1MjoxNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBwcm9jZXNzb3ItdHJhY2UtMS41 L2xpYmlwdC9zcmMvcG9zaXgvaW5pdC5jCTIwMTYtMDgtMjMgMDk6MDQ6MTEuNTQwMTc2NjY4ICsw MjAwCiBAQCAtMjksNyArMjksNyBAQAogICNpbmNsdWRlICJwdF9pbGQuaCIKICAKCmRpZmYgLS1n aXQgYS92MS42LjEtaW1wbGljaXQtZmFsbHRocm91Z2gucGF0Y2ggYi92MS42LjEtaW1wbGljaXQt ZmFsbHRocm91Z2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI4 NDRkMwotLS0gL2Rldi9udWxsCisrKyBiL3YxLjYuMS1pbXBsaWNpdC1mYWxsdGhyb3VnaC5wYXRj aApAQCAtMCwwICsxLDIzIEBACitnY2MtNy4xLjEtMS5mYzI3Lng4Nl82NAorL2hvbWUvamtyYXRv Y2gvcmVkaGF0L2ZlZG9yYS9saWJpcHQvbWFzdGVyL3Byb2Nlc3Nvci10cmFjZS0xLjYuMS9saWJp cHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIuYzogSW4gZnVuY3Rpb24g4oCYcHRfYmxrX3Byb2NlZWRf bm9fZXZlbnRfY2FjaGVk4oCZOgorL2hvbWUvamtyYXRvY2gvcmVkaGF0L2ZlZG9yYS9saWJpcHQv bWFzdGVyL3Byb2Nlc3Nvci10cmFjZS0xLjYuMS9saWJpcHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIu YzoyMjgyOjY6IGVycm9yOiB0aGlzIHN0YXRlbWVudCBtYXkgZmFsbCB0aHJvdWdoIFstV2Vycm9y PWltcGxpY2l0LWZhbGx0aHJvdWdoPV0KKyAgIGlmIChiY2UuaXNpemUpIHsKKyAgICAgIF4KKy9o b21lL2prcmF0b2NoL3JlZGhhdC9mZWRvcmEvbGliaXB0L21hc3Rlci9wcm9jZXNzb3ItdHJhY2Ut MS42LjEvbGliaXB0L3NyYy9wdF9ibG9ja19kZWNvZGVyLmM6MjMyODoyOiBub3RlOiBoZXJlCisg IGNhc2UgcHRicV9kZWNvZGU6IHsKKyAgXn5+fgorCitkaWZmIC0tZ2l0IGEvbGliaXB0L3NyYy9w dF9ibG9ja19kZWNvZGVyLmMgYi9saWJpcHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIuYworaW5kZXgg MjE3ODNhNi4uOTFkNWJiMyAxMDA2NDQKKy0tLSBhL2xpYmlwdC9zcmMvcHRfYmxvY2tfZGVjb2Rl ci5jCisrKysgYi9saWJpcHQvc3JjL3B0X2Jsb2NrX2RlY29kZXIuYworQEAgLTIwOTUsNiArMjA5 NSw5IEBAIHN0YXRpYyBpbnQgcHRfYmxrX3Byb2NlZWRfbm9fZXZlbnRfY2FjaGVkKHN0cnVjdCBw dF9ibG9ja19kZWNvZGVyICpkZWNvZGVyLAorIAkJfQorIAorIAkJLyogRmFsbCB0aHJvdWdoIHRv IHB0YnFfZGVjb2RlLiAqLworKyNpZiBfX0dOVUNfXyA+PSA3CisrCQlfX2F0dHJpYnV0ZV9fICgo ZmFsbHRocm91Z2gpKTsKKysjZW5kaWYKKyAKKyAJY2FzZSBwdGJxX2RlY29kZTogeworIAkJc3Ry dWN0IHB0X2luc25fZXh0IGlleHQ7Cg==