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: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: Add GDB support to access/display POWER8 registers (IBM, RH BZ 1187581). Date: Thu, 23 Jul 2026 18:33:36 GMT Message-ID: <178483161651.1.3864697246964030277.rpms-gdb-22998d94f750@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 22998d94f750fbba57ca3ddf5648ae2b772366ee QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogMjI5OThkOTRmNzUwZmJiYTU3Y2EzZGRmNTY0OGFlMmI3 NzIzNjZlZQpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxOC0wOC0wOVQxODozNzo1NSswMjowMApTdGF0cyAgOiArMTM4Ny8tMSBp biAxMSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMv Z2RiL2MvMjI5OThkOTRmNzUwZmJiYTU3Y2EzZGRmNTY0OGFlMmI3NzIzNjZlZT9icmFuY2g9Zml4 LWR1cC1wYXRjaAoKTG9nOgpBZGQgR0RCIHN1cHBvcnQgdG8gYWNjZXNzL2Rpc3BsYXkgUE9XRVI4 IHJlZ2lzdGVycyAoSUJNLCBSSCBCWiAxMTg3NTgxKS4KCi0tLQpkaWZmIC0tZ2l0IGEvX2dkYi5z cGVjLlBhdGNoLmluY2x1ZGUgYi9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQppbmRleCA5NDZjNGFm Li5iM2M1NjMzIDEwMDY0NAotLS0gYS9fZ2RiLnNwZWMuUGF0Y2guaW5jbHVkZQorKysgYi9fZ2Ri LnNwZWMuUGF0Y2guaW5jbHVkZQpAQCAtNTEzLDMgKzUxMywyNCBAQCBQYXRjaDEyMzogZ2RiLXJo Yno4ODE4NDktaXB2Ni0yb2YzLnBhdGNoCiAKIFBhdGNoMTI0OiBnZGItcmhiejg4MTg0OS1pcHY2 LTNvZjMucGF0Y2gKIAorIyBBZGQgR0RCIHN1cHBvcnQgdG8gYWNjZXNzL2Rpc3BsYXkgUE9XRVI4 IHJlZ2lzdGVycyAoSUJNLCBSSCBCWiAxMTg3NTgxKS4KK1BhdGNoMTI1OiBnZGItcmhiejExODc1 ODEtcG93ZXI4LXJlZ3MtMW9mNy5wYXRjaAorCisjIEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3Mv ZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1ODEpLgorUGF0Y2gxMjY6 IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0yb2Y3LnBhdGNoCisKKyMgQWRkIEdEQiBzdXBw b3J0IHRvIGFjY2Vzcy9kaXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4 MSkuCitQYXRjaDEyNzogZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTNvZjcucGF0Y2gKKwor IyBBZGQgR0RCIHN1cHBvcnQgdG8gYWNjZXNzL2Rpc3BsYXkgUE9XRVI4IHJlZ2lzdGVycyAoSUJN LCBSSCBCWiAxMTg3NTgxKS4KK1BhdGNoMTI4OiBnZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3Mt NG9mNy5wYXRjaAorCisjIEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dFUjgg cmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1ODEpLgorUGF0Y2gxMjk6IGdkYi1yaGJ6MTE4NzU4 MS1wb3dlcjgtcmVncy01b2Y3LnBhdGNoCisKKyMgQWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9k aXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4MSkuCitQYXRjaDEzMDog Z2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTZvZjcucGF0Y2gKKworIyBBZGQgR0RCIHN1cHBv cnQgdG8gYWNjZXNzL2Rpc3BsYXkgUE9XRVI4IHJlZ2lzdGVycyAoSUJNLCBSSCBCWiAxMTg3NTgx KS4KK1BhdGNoMTMxOiBnZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtN29mNy5wYXRjaAorCgpk aWZmIC0tZ2l0IGEvX2dkYi5zcGVjLnBhdGNoLmluY2x1ZGUgYi9fZ2RiLnNwZWMucGF0Y2guaW5j bHVkZQppbmRleCA5N2YxMmM0Li5jYTM5MGI3IDEwMDY0NAotLS0gYS9fZ2RiLnNwZWMucGF0Y2gu aW5jbHVkZQorKysgYi9fZ2RiLnNwZWMucGF0Y2guaW5jbHVkZQpAQCAtMTIyLDMgKzEyMiwxMCBA QAogJXBhdGNoMTIyIC1wMQogJXBhdGNoMTIzIC1wMQogJXBhdGNoMTI0IC1wMQorJXBhdGNoMTI1 IC1wMQorJXBhdGNoMTI2IC1wMQorJXBhdGNoMTI3IC1wMQorJXBhdGNoMTI4IC1wMQorJXBhdGNo MTI5IC1wMQorJXBhdGNoMTMwIC1wMQorJXBhdGNoMTMxIC1wMQoKZGlmZiAtLWdpdCBhL19wYXRj aF9vcmRlciBiL19wYXRjaF9vcmRlcgppbmRleCBiMTA1MzZjLi5lYzJmODZmIDEwMDY0NAotLS0g YS9fcGF0Y2hfb3JkZXIKKysrIGIvX3BhdGNoX29yZGVyCkBAIC0xMjIsMyArMTIyLDEwIEBAIGdk Yi1yaGJ6MTU1MzEwNC1zMzkweC1hcmNoMTItdGVzdC5wYXRjaAogZ2RiLXJoYno4ODE4NDktaXB2 Ni0xb2YzLnBhdGNoCiBnZGItcmhiejg4MTg0OS1pcHY2LTJvZjMucGF0Y2gKIGdkYi1yaGJ6ODgx ODQ5LWlwdjYtM29mMy5wYXRjaAorZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTFvZjcucGF0 Y2gKK2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0yb2Y3LnBhdGNoCitnZGItcmhiejExODc1 ODEtcG93ZXI4LXJlZ3MtM29mNy5wYXRjaAorZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTRv ZjcucGF0Y2gKK2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy01b2Y3LnBhdGNoCitnZGItcmhi ejExODc1ODEtcG93ZXI4LXJlZ3MtNm9mNy5wYXRjaAorZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1y ZWdzLTdvZjcucGF0Y2gKCmRpZmYgLS1naXQgYS9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3Mt MW9mNy5wYXRjaCBiL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0xb2Y3LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5YmQ3OTgKLS0tIC9kZXYvbnVsbAorKysg Yi9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtMW9mNy5wYXRjaApAQCAtMCwwICsxLDY1IEBA CitGcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogSmFu IEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CitEYXRlOiBUaHUsIDkgQXVn IDIwMTggMTc6MDk6NDggKzAyMDAKK1N1YmplY3Q6IGdkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVn cy0xb2Y3LnBhdGNoCisKKzs7IEFkZCBHREIgc3VwcG9ydCB0byBhY2Nlc3MvZGlzcGxheSBQT1dF UjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1ODEpLgorCitjb21taXQgMDVhYmZjMzljNzE5 ZTc0MDUzMDAwMDA1OWJiOTYzYWQzMzQ2MjQ3OQorQXV0aG9yOiBQZWRybyBGcmFuY28gZGUgQ2Fy dmFsaG8gPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+CitEYXRlOiAgIE1vbiBBdWcgNiAxNjoyNDo1 NSAyMDE4IC0wMzAwCisKKyAgICBGaXggaW5kZW50YXRpb24gaW4gcmVtb3RlX3RhcmdldDo6ZG93 bmxvYWRfdHJhY2Vwb2ludAorCisgICAgZ2RiL0NoYW5nZUxvZzoKKyAgICAyMDE4LTA4LTA2ICBQ ZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gIDxwZWRyb21mY0BsaW51eC5pYm0uY29tPgorCisgICAg ICAgICAgICAqIHJlbW90ZS5jIChyZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50KTog Rml4IGluZGVudGF0aW9uCisgICAgICAgICAgICBpbiBmb3IgYmxvY2suCisKK2RpZmYgLS1naXQg YS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMKKy0tLSBhL2dkYi9yZW1vdGUuYworKysrIGIv Z2RiL3JlbW90ZS5jCitAQCAtMTI5MTIsMjQgKzEyOTEyLDI0IEBAIHJlbW90ZV90YXJnZXQ6OmRv d25sb2FkX3RyYWNlcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQorIAllcnJvciAoXygi RXJyb3Igb24gdGFyZ2V0IHdoaWxlIHNldHRpbmcgdHJhY2Vwb2ludHMuIikpOworICAgICB9Cisg CistICAgIGZvciAoYXV0byBhY3Rpb25faXQgPSBzdGVwcGluZ19hY3Rpb25zLmJlZ2luICgpOwor LQkgYWN0aW9uX2l0ICE9IHN0ZXBwaW5nX2FjdGlvbnMuZW5kICgpOyBhY3Rpb25faXQrKykKKy0g ICAgICB7CistCVFVSVQ7CS8qIEFsbG93IHVzZXIgdG8gYmFpbCBvdXQgd2l0aCBeQy4gICovCist CistCWJvb2wgaXNfZmlyc3QgPSBhY3Rpb25faXQgPT0gc3RlcHBpbmdfYWN0aW9ucy5iZWdpbiAo KTsKKy0JYm9vbCBoYXNfbW9yZSA9IGFjdGlvbl9pdCAhPSBzdGVwcGluZ19hY3Rpb25zLmVuZCAo KTsKKy0KKy0JeHNucHJpbnRmIChidWYsIEJVRl9TSVpFLCAiUVREUDotJXg6JXM6JXMlcyVzIiwK Ky0JCSAgIGItPm51bWJlciwgYWRkcmJ1ZiwgLyogYWRkcmVzcyAqLworLQkJICAgaXNfZmlyc3Qg PyAiUyIgOiAiIiwKKy0JCSAgIGFjdGlvbl9pdC0+Y19zdHIgKCksCistCQkgICBoYXNfbW9yZSA/ ICItIiA6ICIiKTsKKy0JcHV0cGt0IChidWYpOworLQlyZW1vdGVfZ2V0X25vaXN5X3JlcGx5ICgp OworLQlpZiAoc3RyY21wIChycy0+YnVmLCAiT0siKSkKKy0JICBlcnJvciAoXygiRXJyb3Igb24g dGFyZ2V0IHdoaWxlIHNldHRpbmcgdHJhY2Vwb2ludHMuIikpOworLSAgICAgIH0KKysgIGZvciAo YXV0byBhY3Rpb25faXQgPSBzdGVwcGluZ19hY3Rpb25zLmJlZ2luICgpOworKyAgICAgICBhY3Rp b25faXQgIT0gc3RlcHBpbmdfYWN0aW9ucy5lbmQgKCk7IGFjdGlvbl9pdCsrKQorKyAgICB7Cisr ICAgICAgUVVJVDsJLyogQWxsb3cgdXNlciB0byBiYWlsIG91dCB3aXRoIF5DLiAgKi8KKysKKysg ICAgICBib29sIGlzX2ZpcnN0ID0gYWN0aW9uX2l0ID09IHN0ZXBwaW5nX2FjdGlvbnMuYmVnaW4g KCk7CisrICAgICAgYm9vbCBoYXNfbW9yZSA9IGFjdGlvbl9pdCAhPSBzdGVwcGluZ19hY3Rpb25z LmVuZCAoKTsKKysKKysgICAgICB4c25wcmludGYgKGJ1ZiwgQlVGX1NJWkUsICJRVERQOi0leDol czolcyVzJXMiLAorKwkJIGItPm51bWJlciwgYWRkcmJ1ZiwgLyogYWRkcmVzcyAqLworKwkJIGlz X2ZpcnN0ID8gIlMiIDogIiIsCisrCQkgYWN0aW9uX2l0LT5jX3N0ciAoKSwKKysJCSBoYXNfbW9y ZSA/ICItIiA6ICIiKTsKKysgICAgICBwdXRwa3QgKGJ1Zik7CisrICAgICAgcmVtb3RlX2dldF9u b2lzeV9yZXBseSAoKTsKKysgICAgICBpZiAoc3RyY21wIChycy0+YnVmLCAiT0siKSkKKysJZXJy b3IgKF8oIkVycm9yIG9uIHRhcmdldCB3aGlsZSBzZXR0aW5nIHRyYWNlcG9pbnRzLiIpKTsKKysg ICAgfQorIAorICAgaWYgKHBhY2tldF9zdXBwb3J0IChQQUNLRVRfVHJhY2Vwb2ludFNvdXJjZSkg PT0gUEFDS0VUX0VOQUJMRSkKKyAgICAgewoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTE4NzU4MS1w b3dlcjgtcmVncy0yb2Y3LnBhdGNoIGIvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTJvZjcu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBkNDJjZAotLS0gL2Rl di9udWxsCisrKyBiL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0yb2Y3LnBhdGNoCkBAIC0w LDAgKzEsNDUgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KK0RhdGU6 IFRodSwgOSBBdWcgMjAxOCAxNzoxMDo0NiArMDIwMAorU3ViamVjdDogZ2RiLXJoYnoxMTg3NTgx LXBvd2VyOC1yZWdzLTJvZjcucGF0Y2gKKworOzsgQWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9k aXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4MSkuCisKK2NvbW1pdCBh YTZmMzY5NGNlODY3ODg0ZTQzZDFjMDQwNmM2NGRmMDhlYTI0YmQzCitBdXRob3I6IFBlZHJvIEZy YW5jbyBkZSBDYXJ2YWxobyA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4KK0RhdGU6ICAgTW9uIEF1 ZyA2IDE2OjI0OjU1IDIwMTggLTAzMDAKKworICAgIFJlbW92ZSB0cmFpbGluZyAnLScgZnJvbSB0 aGUgbGFzdCBRVERQIGFjdGlvbiBwYWNrZXQKKworICAgIFRoZSBoYXNfbW9yZSBwcmVkaWNhdGUg aW4gcmVtb3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCBhbHdheXMKKyAgICBldmFsdWF0 ZXMgdG8gdHJ1ZSwgc28gdGhlIGxhc3QgYWN0aW9uIHBhY2tldCB3aWxsIGJlIHNlbnQgd2l0aCBh CisgICAgdHJhaWxpbmcgJy0nLiAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBwcmVkaWNhdGUgdG8g cmVtb3ZlIHRoZSBsYXN0CisgICAgdHJhaWxpbmcgJy0nLgorCisgICAgZ2RiL0NoYW5nZUxvZzoK KyAgICAyMDE4LTA4LTA2ICBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gIDxwZWRyb21mY0BsaW51 eC5pYm0uY29tPgorCisgICAgICAgICAgICAqIHJlbW90ZS5jIChyZW1vdGVfdGFyZ2V0Ojpkb3du bG9hZF90cmFjZXBvaW50KTogRml4IHRoZSBoYXNfbW9yZQorICAgICAgICAgICAgcHJlZGljYXRl IGluIHRoZSBRVERQIGFjdGlvbiBsaXN0IGl0ZXJhdGlvbi4KKworZGlmZiAtLWdpdCBhL2dkYi9y ZW1vdGUuYyBiL2dkYi9yZW1vdGUuYworLS0tIGEvZ2RiL3JlbW90ZS5jCisrKysgYi9nZGIvcmVt b3RlLmMKK0BAIC0xMjg5OSw3ICsxMjg5OSw3IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3Ry YWNlcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQorICAgICB7CisgICAgICAgUVVJVDsJ LyogQWxsb3cgdXNlciB0byBiYWlsIG91dCB3aXRoIF5DLiAgKi8KKyAKKy0gICAgICBib29sIGhh c19tb3JlID0gKGFjdGlvbl9pdCAhPSB0ZHBfYWN0aW9ucy5lbmQgKCkKKysgICAgICBib29sIGhh c19tb3JlID0gKChhY3Rpb25faXQgKyAxKSAhPSB0ZHBfYWN0aW9ucy5lbmQgKCkKKyAJCSAgICAg ICB8fCAhc3RlcHBpbmdfYWN0aW9ucy5lbXB0eSAoKSk7CisgCisgICAgICAgeHNucHJpbnRmIChi dWYsIEJVRl9TSVpFLCAiUVREUDotJXg6JXM6JXMlYyIsCitAQCAtMTI5MTgsNyArMTI5MTgsNyBA QCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24g KmxvYykKKyAgICAgICBRVUlUOwkvKiBBbGxvdyB1c2VyIHRvIGJhaWwgb3V0IHdpdGggXkMuICAq LworIAorICAgICAgIGJvb2wgaXNfZmlyc3QgPSBhY3Rpb25faXQgPT0gc3RlcHBpbmdfYWN0aW9u cy5iZWdpbiAoKTsKKy0gICAgICBib29sIGhhc19tb3JlID0gYWN0aW9uX2l0ICE9IHN0ZXBwaW5n X2FjdGlvbnMuZW5kICgpOworKyAgICAgIGJvb2wgaGFzX21vcmUgPSAoYWN0aW9uX2l0ICsgMSkg IT0gc3RlcHBpbmdfYWN0aW9ucy5lbmQgKCk7CisgCisgICAgICAgeHNucHJpbnRmIChidWYsIEJV Rl9TSVpFLCAiUVREUDotJXg6JXM6JXMlcyVzIiwKKyAJCSBiLT5udW1iZXIsIGFkZHJidWYsIC8q IGFkZHJlc3MgKi8KCmRpZmYgLS1naXQgYS9nZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtM29m Ny5wYXRjaCBiL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy0zb2Y3LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NDZmMmIKLS0tIC9kZXYvbnVsbAorKysgYi9n ZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3MtM29mNy5wYXRjaApAQCAtMCwwICsxLDI1OCBAQAor RnJvbSBGRURPUkFfUEFUQ0hFUyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEphbiBL cmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgorRGF0ZTogVGh1LCA5IEF1ZyAy MDE4IDE3OjExOjA5ICswMjAwCitTdWJqZWN0OiBnZGItcmhiejExODc1ODEtcG93ZXI4LXJlZ3Mt M29mNy5wYXRjaAorCis7OyBBZGQgR0RCIHN1cHBvcnQgdG8gYWNjZXNzL2Rpc3BsYXkgUE9XRVI4 IHJlZ2lzdGVycyAoSUJNLCBSSCBCWiAxMTg3NTgxKS4KKworY29tbWl0IDNkZjNhOTg1YTQ3NWRi MDA0NzA2ZDY0ZjgzZDkwODVmOTkwNTM2MTEKK0F1dGhvcjogUGVkcm8gRnJhbmNvIGRlIENhcnZh bGhvIDxwZWRyb21mY0BsaW51eC5pYm0uY29tPgorRGF0ZTogICBNb24gQXVnIDYgMTY6MjQ6NTUg MjAxOCAtMDMwMAorCisgICAgVXNlIGdldF9yZW1vdGVfcGFja2V0X3NpemUgaW4gZG93bmxvYWRf dHJhY2Vwb2ludAorCisgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSByZW1vdGUgdGFyZ2V0IHRv IHVzZSB0aGUgcmVtb3RlIHBhY2tldCBzaXplIHRvCisgICAgYnVpbGQgUVREUCBwYWNrZXRzLCBh bmQgdG8gY2hlY2sgaWYgdGhlcmUgaXMgZW5vdWdoIHJvb20gZm9yIHRoZQorICAgIHBhY2tldC4K KworICAgIEkgY2hhbmdlZCB0aGUgZnVuY3Rpb24gdG8gcmFpc2UgYW4gZXJyb3IgaWYgdGhlIHBh Y2tldCBpcyB0b28gc21hbGwsCisgICAgaW5zdGVhZCBvZiBhYm9ydGluZyBnZGIgKHRocm91Z2gg eHNucHJpbnRmKS4gIEl0IGlzbid0IGNsZWFyIGlmIGdkYgorICAgIHdpbGwgYmUgaW4gYSBjb25z aXN0ZW50IHN0YXRlIHdpdGggcmVzcGVjdCB0byB0aGUgc3R1YiBhZnRlciB0aGlzLAorICAgIHNp bmNlIGl0J3MgcG9zc2libGUgdGhhdCBzb21lIHBhY2tldHMgd2lsbCBiZSBzZW50IGJ1dCBub3Qg b3RoZXJzLCBhbmQKKyAgICB0aGVyZSBjb3VsZCBiZSBhbiBpbmNvbXBsZXRlIHRyYWNlcG9pbnQg b24gdGhlIHN0dWIuCisKKyAgICBUaGUgY2hhciBhcnJheSB1c2VkIHRvIGJ1aWxkIHRoZSBwYWNr ZXRzIGlzIGNoYW5nZWQgdG8gYQorICAgIGdkYjo6Y2hhcl92ZWN0b3IgYW5kIHNpemVkIHdpdGgg dGhlIHJlc3VsdCBmcm9tCisgICAgZ2V0X3JlbW90ZV9wYWNrZXRfc2l6ZS4KKworICAgIFdoZW4g Y2hlY2tpbmcgaWYgdGhlIGJ1ZmZlciBpcyBsYXJnZSBlbm91Z2ggdG8gaG9sZCB0aGUgdHJhY2Vw b2ludAorICAgIGNvbmRpdGlvbiBhZ2VudCBleHByZXNzaW9uLCB0aGUgbGVuZ3RoIG9mIHRoZSBl eHByZXNzaW9uIGlzIG11bHRpcGxpZWQKKyAgICBieSB0d28sIHNpbmNlIGl0IGlzIGVuY29kZWQg d2l0aCB0d28gaGV4IGRpZ2l0cyBwZXIgZXhwcmVzc2lvbgorICAgIGJ5dGUuICBGb3Igc2ltcGxp Y2l0eSwgSSBhc3N1bWUgdGhhdCB0aGUgcmVzdWx0IHdvbid0IG92ZXJmbG93LCB3aGljaAorICAg IGNhbiBoYXBwZW4gZm9yIHZlcnkgbG9uZyBjb25kaXRpb24gZXhwcmVzc2lvbnMuCisKKyAgICBn ZGIvQ2hhbmdlTG9nOgorICAgIDIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyAg PHBlZHJvbWZjQGxpbnV4LmlibS5jb20+CisKKyAgICAgICAgICAgICogcmVtb3RlLmMgKHJlbW90 ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9pbnQpOiBSZW1vdmUgQlVGX1NJWkUuCisgICAgICAg ICAgICBSZXBsYWNlIGFycmF5IGJ1ZiB3aXRoIGdkYjo6Y2hhcl92ZWN0b3IgYnVmLCBvZiBzaXpl CisgICAgICAgICAgICBnZXRfcmVtb3RlX3BhY2tldF9zaXplICgpLiAgUmVwbGFjZSByZWZlcmVu Y2VzIHRvIGJ1ZiBhbmQKKyAgICAgICAgICAgIEJVRl9TSVpFIHRvIGJ1Zi5kYXRhICgpIGFuZCBi dWYuc2l6ZSAoKS4gIFJlcGxhY2Ugc3RyY3B5LCBzdHJjYXQKKyAgICAgICAgICAgIGFuZCB4c25w cmludGYgd2l0aCBzbnByaW50Zi4gIFJhaXNlIGVycm9ycyBpZiB0aGUgYnVmZmVyIGlzIHRvbwor ICAgICAgICAgICAgc21hbGwuCisKK2RpZmYgLS1naXQgYS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVt b3RlLmMKKy0tLSBhL2dkYi9yZW1vdGUuYworKysrIGIvZ2RiL3JlbW90ZS5jCitAQCAtMTI3OTks MjYgKzEyNzk5LDM1IEBAIHJlbW90ZV90YXJnZXQ6OnJlbW90ZV9kb3dubG9hZF9jb21tYW5kX3Nv dXJjZSAoaW50IG51bSwgVUxPTkdFU1QgYWRkciwKKyB2b2lkCisgcmVtb3RlX3RhcmdldDo6ZG93 bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCisgeworLSNkZWZpbmUg QlVGX1NJWkUgMjA0OAorLQorICAgQ09SRV9BRERSIHRwYWRkcjsKKyAgIGNoYXIgYWRkcmJ1Zls0 MF07CistICBjaGFyIGJ1ZltCVUZfU0laRV07CisgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4g dGRwX2FjdGlvbnM7CisgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gc3RlcHBpbmdfYWN0aW9u czsKKyAgIGNoYXIgKnBrdDsKKyAgIHN0cnVjdCBicmVha3BvaW50ICpiID0gbG9jLT5vd25lcjsK KyAgIHN0cnVjdCB0cmFjZXBvaW50ICp0ID0gKHN0cnVjdCB0cmFjZXBvaW50ICopIGI7CisgICBz dHJ1Y3QgcmVtb3RlX3N0YXRlICpycyA9IGdldF9yZW1vdGVfc3RhdGUgKCk7CisrICBpbnQgcmV0 OworKyAgY2hhciAqZXJyX21zZyA9IF8oIlRyYWNlcG9pbnQgcGFja2V0IHRvbyBsYXJnZSBmb3Ig dGFyZ2V0LiIpOworKyAgc2l6ZV90IHNpemVfbGVmdDsKKysKKysgIC8qIFdlIHVzZSBhIGJ1ZmZl ciBvdGhlciB0aGFuIHJzLT5idWYgYmVjYXVzZSB3ZSdsbCBidWlsZCBzdHJpbmdzCisrICAgICBh Y3Jvc3MgbXVsdGlwbGUgc3RhdGVtZW50cywgYW5kIG90aGVyIHN0YXRlbWVudHMgaW4gYmV0d2Vl biBjb3VsZAorKyAgICAgbW9kaWZ5IHJzLT5idWYuICAqLworKyAgZ2RiOjpjaGFyX3ZlY3RvciBi dWYgKGdldF9yZW1vdGVfcGFja2V0X3NpemUgKCkpOworIAorICAgZW5jb2RlX2FjdGlvbnNfcnNw IChsb2MsICZ0ZHBfYWN0aW9ucywgJnN0ZXBwaW5nX2FjdGlvbnMpOworIAorICAgdHBhZGRyID0g bG9jLT5hZGRyZXNzOworICAgc3ByaW50Zl92bWEgKGFkZHJidWYsIHRwYWRkcik7CistICB4c25w cmludGYgKGJ1ZiwgQlVGX1NJWkUsICJRVERQOiV4OiVzOiVjOiVseDoleCIsIGItPm51bWJlciwK Ky0JICAgICBhZGRyYnVmLCAvKiBhZGRyZXNzICovCistCSAgICAgKGItPmVuYWJsZV9zdGF0ZSA9 PSBicF9lbmFibGVkID8gJ0UnIDogJ0QnKSwKKy0JICAgICB0LT5zdGVwX2NvdW50LCB0LT5wYXNz X2NvdW50KTsKKysgIHJldCA9IHNucHJpbnRmIChidWYuZGF0YSAoKSwgYnVmLnNpemUgKCksICJR VERQOiV4OiVzOiVjOiVseDoleCIsCisrCQkgIGItPm51bWJlciwgYWRkcmJ1ZiwgLyogYWRkcmVz cyAqLworKwkJICAoYi0+ZW5hYmxlX3N0YXRlID09IGJwX2VuYWJsZWQgPyAnRScgOiAnRCcpLAor KwkJICB0LT5zdGVwX2NvdW50LCB0LT5wYXNzX2NvdW50KTsKKysKKysgIGlmIChyZXQgPCAwIHx8 IHJldCA+PSBidWYuc2l6ZSAoKSkKKysgICAgZXJyb3IgKGVycl9tc2cpOworKworICAgLyogRmFz dCB0cmFjZXBvaW50cyBhcmUgbW9zdGx5IGhhbmRsZWQgYnkgdGhlIHRhcmdldCwgYnV0IHdlIGNh bgorICAgICAgdGVsbCB0aGUgdGFyZ2V0IGhvdyBiaWcgb2YgYW4gaW5zdHJ1Y3Rpb24gYmxvY2sg c2hvdWxkIGJlIG1vdmVkCisgICAgICBhcm91bmQuICAqLworQEAgLTEyODMwLDggKzEyODM5LDE1 IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlv biAqbG9jKQorIAl7CisgCSAgaWYgKGdkYmFyY2hfZmFzdF90cmFjZXBvaW50X3ZhbGlkX2F0IChs b2MtPmdkYmFyY2gsIHRwYWRkciwKKyAJCQkJCQlOVUxMKSkKKy0JICAgIHhzbnByaW50ZiAoYnVm ICsgc3RybGVuIChidWYpLCBCVUZfU0laRSAtIHN0cmxlbiAoYnVmKSwgIjpGJXgiLAorLQkJICAg ICAgIGdkYl9pbnNuX2xlbmd0aCAobG9jLT5nZGJhcmNoLCB0cGFkZHIpKTsKKysJICAgIHsKKysJ ICAgICAgc2l6ZV9sZWZ0ID0gYnVmLnNpemUgKCkgLSBzdHJsZW4gKGJ1Zi5kYXRhICgpKTsKKysJ ICAgICAgcmV0ID0gc25wcmludGYgKGJ1Zi5kYXRhICgpICsgc3RybGVuIChidWYuZGF0YSAoKSks CisrCQkJICAgICAgc2l6ZV9sZWZ0LCAiOkYleCIsCisrCQkJICAgICAgZ2RiX2luc25fbGVuZ3Ro IChsb2MtPmdkYmFyY2gsIHRwYWRkcikpOworKworKwkgICAgICBpZiAocmV0IDwgMCB8fCByZXQg Pj0gc2l6ZV9sZWZ0KQorKwkJZXJyb3IgKGVycl9tc2cpOworKwkgICAgfQorIAkgIGVsc2UKKyAJ ICAgIC8qIElmIGl0IHBhc3NlZCB2YWxpZGF0aW9uIGF0IGRlZmluaXRpb24gYnV0IGZhaWxzIG5v dywKKyAJICAgICAgIHNvbWV0aGluZyBpcyB2ZXJ5IHdyb25nLiAgKi8KK0BAIC0xMjg1NSw3ICsx Mjg3MSwxNCBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBf bG9jYXRpb24gKmxvYykKKyAJICBzdHJ1Y3Qgc3RhdGljX3RyYWNlcG9pbnRfbWFya2VyIG1hcmtl cjsKKyAKKyAJICBpZiAodGFyZ2V0X3N0YXRpY190cmFjZXBvaW50X21hcmtlcl9hdCAodHBhZGRy LCAmbWFya2VyKSkKKy0JICAgIHN0cmNhdCAoYnVmLCAiOlMiKTsKKysJICAgIHsKKysJICAgICAg c2l6ZV9sZWZ0ID0gYnVmLnNpemUgKCkgLSBzdHJsZW4gKGJ1Zi5kYXRhICgpKTsKKysJICAgICAg cmV0ID0gc25wcmludGYgKGJ1Zi5kYXRhICgpICsgc3RybGVuIChidWYuZGF0YSAoKSksCisrCQkJ ICAgICAgc2l6ZV9sZWZ0LCAiOlMiKTsKKysKKysJICAgICAgaWYgKHJldCA8IDAgfHwgcmV0ID49 IHNpemVfbGVmdCkKKysJCWVycm9yIChlcnJfbXNnKTsKKysJICAgIH0KKyAJICBlbHNlCisgCSAg ICBlcnJvciAoXygiU3RhdGljIHRyYWNlcG9pbnQgbm90IHZhbGlkIGR1cmluZyBkb3dubG9hZCIp KTsKKyAJfQorQEAgLTEyODczLDEwICsxMjg5NiwyNiBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9h ZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKKyAJIGNhcGFiaWxpdGllcyBh dCBkZWZpbml0aW9uIHRpbWUuICAqLworICAgICAgIGlmIChyZW1vdGVfc3VwcG9ydHNfY29uZF90 cmFjZXBvaW50cyAoKSkKKyAJeworLQkgIGFnZW50X2V4cHJfdXAgYWV4cHIgPSBnZW5fZXZhbF9m b3JfZXhwciAodHBhZGRyLCBsb2MtPmNvbmQuZ2V0ICgpKTsKKy0JICB4c25wcmludGYgKGJ1ZiAr IHN0cmxlbiAoYnVmKSwgQlVGX1NJWkUgLSBzdHJsZW4gKGJ1ZiksICI6WCV4LCIsCistCQkgICAg IGFleHByLT5sZW4pOworLQkgIHBrdCA9IGJ1ZiArIHN0cmxlbiAoYnVmKTsKKysJICBhZ2VudF9l eHByX3VwIGFleHByID0gZ2VuX2V2YWxfZm9yX2V4cHIgKHRwYWRkciwKKysJCQkJCQkgICBsb2Mt PmNvbmQuZ2V0ICgpKTsKKysKKysJICBzaXplX2xlZnQgPSBidWYuc2l6ZSAoKSAtIHN0cmxlbiAo YnVmLmRhdGEgKCkpOworKworKwkgIHJldCA9IHNucHJpbnRmIChidWYuZGF0YSAoKSArIHN0cmxl biAoYnVmLmRhdGEgKCkpLAorKwkJCSAgc2l6ZV9sZWZ0LCAiOlgleCwiLCBhZXhwci0+bGVuKTsK KysKKysJICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9sZWZ0KQorKwkgICAgZXJyb3IgKGVy cl9tc2cpOworKworKwkgIHNpemVfbGVmdCA9IGJ1Zi5zaXplICgpIC0gc3RybGVuIChidWYuZGF0 YSAoKSk7CisrCisrCSAgLyogVHdvIGJ5dGVzIHRvIGVuY29kZSBlYWNoIGFleHByIGJ5dGUsIHBs dXMgdGhlIHRlcm1pbmF0aW5nCisrCSAgICAgbnVsbCBieXRlLiAgKi8KKysJICBpZiAoYWV4cHIt PmxlbiAqIDIgKyAxID4gc2l6ZV9sZWZ0KQorKwkgICAgZXJyb3IgKGVycl9tc2cpOworKworKwkg IHBrdCA9IGJ1Zi5kYXRhICgpICsgc3RybGVuIChidWYuZGF0YSAoKSk7CisrCisgCSAgZm9yIChp bnQgbmR4ID0gMDsgbmR4IDwgYWV4cHItPmxlbjsgKytuZHgpCisgCSAgICBwa3QgPSBwYWNrX2hl eF9ieXRlIChwa3QsIGFleHByLT5idWZbbmR4XSk7CisgCSAgKnBrdCA9ICdcMCc7CitAQCAtMTI4 ODcsOCArMTI5MjYsMTcgQEAgcmVtb3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3Ry dWN0IGJwX2xvY2F0aW9uICpsb2MpCisgICAgIH0KKyAKKyAgIGlmIChiLT5jb21tYW5kcyB8fCAq ZGVmYXVsdF9jb2xsZWN0KQorLSAgICBzdHJjYXQgKGJ1ZiwgIi0iKTsKKy0gIHB1dHBrdCAoYnVm KTsKKysgICAgeworKyAgICAgIHNpemVfbGVmdCA9IGJ1Zi5zaXplICgpIC0gc3RybGVuIChidWYu ZGF0YSAoKSk7CisrCisrICAgICAgcmV0ID0gc25wcmludGYgKGJ1Zi5kYXRhICgpICsgc3RybGVu IChidWYuZGF0YSAoKSksCisrCQkgICAgICBzaXplX2xlZnQsICItIik7CisrCisrICAgICAgaWYg KHJldCA8IDAgfHwgcmV0ID49IHNpemVfbGVmdCkKKysJZXJyb3IgKGVycl9tc2cpOworKyAgICB9 CisrCisrICBwdXRwa3QgKGJ1Zi5kYXRhICgpKTsKKyAgIHJlbW90ZV9nZXRfbm9pc3lfcmVwbHkg KCk7CisgICBpZiAoc3RyY21wIChycy0+YnVmLCAiT0siKSkKKyAgICAgZXJyb3IgKF8oIlRhcmdl dCBkb2VzIG5vdCBzdXBwb3J0IHRyYWNlcG9pbnRzLiIpKTsKK0BAIC0xMjkwMiwxMSArMTI5NTAs MTUgQEAgcmVtb3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0 aW9uICpsb2MpCisgICAgICAgYm9vbCBoYXNfbW9yZSA9ICgoYWN0aW9uX2l0ICsgMSkgIT0gdGRw X2FjdGlvbnMuZW5kICgpCisgCQkgICAgICAgfHwgIXN0ZXBwaW5nX2FjdGlvbnMuZW1wdHkgKCkp OworIAorLSAgICAgIHhzbnByaW50ZiAoYnVmLCBCVUZfU0laRSwgIlFURFA6LSV4OiVzOiVzJWMi LAorLQkJIGItPm51bWJlciwgYWRkcmJ1ZiwgLyogYWRkcmVzcyAqLworLQkJIGFjdGlvbl9pdC0+ Y19zdHIgKCksCistCQkgaGFzX21vcmUgPyAnLScgOiAwKTsKKy0gICAgICBwdXRwa3QgKGJ1Zik7 CisrICAgICAgcmV0ID0gc25wcmludGYgKGJ1Zi5kYXRhICgpLCBidWYuc2l6ZSAoKSwgIlFURFA6 LSV4OiVzOiVzJWMiLAorKwkJICAgICAgYi0+bnVtYmVyLCBhZGRyYnVmLCAvKiBhZGRyZXNzICov CisrCQkgICAgICBhY3Rpb25faXQtPmNfc3RyICgpLAorKwkJICAgICAgaGFzX21vcmUgPyAnLScg OiAwKTsKKysKKysgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCisrCWVy cm9yIChlcnJfbXNnKTsKKysKKysgICAgICBwdXRwa3QgKGJ1Zi5kYXRhICgpKTsKKyAgICAgICBy ZW1vdGVfZ2V0X25vaXN5X3JlcGx5ICgpOworICAgICAgIGlmIChzdHJjbXAgKHJzLT5idWYsICJP SyIpKQorIAllcnJvciAoXygiRXJyb3Igb24gdGFyZ2V0IHdoaWxlIHNldHRpbmcgdHJhY2Vwb2lu dHMuIikpOworQEAgLTEyOTIwLDEyICsxMjk3MiwxNiBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9h ZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKKyAgICAgICBib29sIGlzX2Zp cnN0ID0gYWN0aW9uX2l0ID09IHN0ZXBwaW5nX2FjdGlvbnMuYmVnaW4gKCk7CisgICAgICAgYm9v bCBoYXNfbW9yZSA9IChhY3Rpb25faXQgKyAxKSAhPSBzdGVwcGluZ19hY3Rpb25zLmVuZCAoKTsK KyAKKy0gICAgICB4c25wcmludGYgKGJ1ZiwgQlVGX1NJWkUsICJRVERQOi0leDolczolcyVzJXMi LAorLQkJIGItPm51bWJlciwgYWRkcmJ1ZiwgLyogYWRkcmVzcyAqLworLQkJIGlzX2ZpcnN0ID8g IlMiIDogIiIsCistCQkgYWN0aW9uX2l0LT5jX3N0ciAoKSwKKy0JCSBoYXNfbW9yZSA/ICItIiA6 ICIiKTsKKy0gICAgICBwdXRwa3QgKGJ1Zik7CisrICAgICAgcmV0ID0gc25wcmludGYgKGJ1Zi5k YXRhICgpLCBidWYuc2l6ZSAoKSwgIlFURFA6LSV4OiVzOiVzJXMlcyIsCisrCQkgICAgICBiLT5u dW1iZXIsIGFkZHJidWYsIC8qIGFkZHJlc3MgKi8KKysJCSAgICAgIGlzX2ZpcnN0ID8gIlMiIDog IiIsCisrCQkgICAgICBhY3Rpb25faXQtPmNfc3RyICgpLAorKwkJICAgICAgaGFzX21vcmUgPyAi LSIgOiAiIik7CisrCisrICAgICAgaWYgKHJldCA8IDAgfHwgcmV0ID49IGJ1Zi5zaXplICgpKQor KwllcnJvciAoZXJyX21zZyk7CisrCisrICAgICAgcHV0cGt0IChidWYuZGF0YSAoKSk7CisgICAg ICAgcmVtb3RlX2dldF9ub2lzeV9yZXBseSAoKTsKKyAgICAgICBpZiAoc3RyY21wIChycy0+YnVm LCAiT0siKSkKKyAJZXJyb3IgKF8oIkVycm9yIG9uIHRhcmdldCB3aGlsZSBzZXR0aW5nIHRyYWNl cG9pbnRzLiIpKTsKK0BAIC0xMjkzNSwyMiArMTI5OTEsMzIgQEAgcmVtb3RlX3RhcmdldDo6ZG93 bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCisgICAgIHsKKyAgICAg ICBpZiAoYi0+bG9jYXRpb24gIT0gTlVMTCkKKyAJeworLQkgIHN0cmNweSAoYnVmLCAiUVREUHNy YzoiKTsKKysJICByZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVRE UHNyYzoiKTsKKysKKysJICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCisrCSAg ICBlcnJvciAoZXJyX21zZyk7CisrCisgCSAgZW5jb2RlX3NvdXJjZV9zdHJpbmcgKGItPm51bWJl ciwgbG9jLT5hZGRyZXNzLCAiYXQiLAorIAkJCQlldmVudF9sb2NhdGlvbl90b19zdHJpbmcgKGIt PmxvY2F0aW9uLmdldCAoKSksCistCQkJCWJ1ZiArIHN0cmxlbiAoYnVmKSwgMjA0OCAtIHN0cmxl biAoYnVmKSk7CistCSAgcHV0cGt0IChidWYpOworKwkJCQlidWYuZGF0YSAoKSArIHN0cmxlbiAo YnVmLmRhdGEgKCkpLAorKwkJCQlidWYuc2l6ZSAoKSAtIHN0cmxlbiAoYnVmLmRhdGEgKCkpKTsK KysJICBwdXRwa3QgKGJ1Zi5kYXRhICgpKTsKKyAJICByZW1vdGVfZ2V0X25vaXN5X3JlcGx5ICgp OworIAkgIGlmIChzdHJjbXAgKHJzLT5idWYsICJPSyIpKQorIAkgICAgd2FybmluZyAoXygiVGFy Z2V0IGRvZXMgbm90IHN1cHBvcnQgc291cmNlIGRvd25sb2FkLiIpKTsKKyAJfQorICAgICAgIGlm IChiLT5jb25kX3N0cmluZykKKyAJeworLQkgIHN0cmNweSAoYnVmLCAiUVREUHNyYzoiKTsKKysJ ICByZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVREUHNyYzoiKTsK KysKKysJICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCisrCSAgICBlcnJvciAo ZXJyX21zZyk7CisrCisgCSAgZW5jb2RlX3NvdXJjZV9zdHJpbmcgKGItPm51bWJlciwgbG9jLT5h ZGRyZXNzLAorLQkJCQkiY29uZCIsIGItPmNvbmRfc3RyaW5nLCBidWYgKyBzdHJsZW4gKGJ1Ziks CistCQkJCTIwNDggLSBzdHJsZW4gKGJ1ZikpOworLQkgIHB1dHBrdCAoYnVmKTsKKysJCQkJImNv bmQiLCBiLT5jb25kX3N0cmluZywKKysJCQkJYnVmLmRhdGEgKCkgKyBzdHJsZW4gKGJ1Zi5kYXRh ICgpKSwKKysJCQkJYnVmLnNpemUgKCkgLSBzdHJsZW4gKGJ1Zi5kYXRhICgpKSk7CisrCSAgcHV0 cGt0IChidWYuZGF0YSAoKSk7CisgCSAgcmVtb3RlX2dldF9ub2lzeV9yZXBseSAoKTsKKyAJICBp ZiAoc3RyY21wIChycy0+YnVmLCAiT0siKSkKKyAJICAgIHdhcm5pbmcgKF8oIlRhcmdldCBkb2Vz IG5vdCBzdXBwb3J0IHNvdXJjZSBkb3dubG9hZC4iKSk7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnox MTg3NTgxLXBvd2VyOC1yZWdzLTRvZjcucGF0Y2ggYi9nZGItcmhiejExODc1ODEtcG93ZXI4LXJl Z3MtNG9mNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzU1M2E4 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTRvZjcucGF0 Y2gKQEAgLTAsMCArMSw0NDkgQEAKK0Zyb20gRkVET1JBX1BBVENIRVMgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KK0RhdGU6IFRodSwgOSBBdWcgMjAxOCAxNzoxNzoxNiArMDIwMAorU3ViamVjdDogZ2RiLXJo YnoxMTg3NTgxLXBvd2VyOC1yZWdzLTRvZjcucGF0Y2gKKworOzsgQWRkIEdEQiBzdXBwb3J0IHRv IGFjY2Vzcy9kaXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElCTSwgUkggQlogMTE4NzU4MSkuCisK K2NvbW1pdCA0Mjc3YzRiODdhZGRiNTM1NGNjNDdiOThkN2E3M2U0NGNmYWYyMmMyCitBdXRob3I6 IFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4KK0RhdGU6 ICAgTW9uIEF1ZyA2IDE2OjI0OjU1IDIwMTggLTAzMDAKKworICAgIFVzZSByZW1vdGUgcmVnaXN0 ZXIgbnVtYmVycyBpbiB0cmFjZXBvaW50IG1hc2sKKworICAgIEN1cnJlbnRseSwgdHJhY2Vwb2lu dCByZWdpc3RlciBtYXNrcyBpbiB0aGUgUVREUCBwYWNrZXRzIGluY2x1ZGUgYm90aAorICAgIGlu dGVybmFsIGFuZCByZW1vdGUgcmVnaXN0ZXIgbnVtYmVycywgYXMgd2VsbCBhcyBwc2V1ZG8tcmVn aXN0ZXIKKyAgICBudW1iZXJzLgorCisgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoaXMgc28gdGhh dCB0aGUgbWFzayBvbmx5IGluY2x1ZGVzIHJlbW90ZSByZWdpc3RlcgorICAgIG51bWJlcnMuCisK KyAgICBSZWdpc3RlciBudW1iZXJzIGZyb20gYWdlbnQgZXhwcmVzc2lvbnMgYXJlIGFscmVhZHkg c2V0IGluIHRoZSBtYXNrCisgICAgdXNpbmcgcmVtb3RlIG51bWJlcnMuICBPdGhlciB0cmFjZXBv aW50IGFjdGlvbnMgdXNlZCBpbnRlcm5hbCBudW1iZXJzLAorICAgIGUuZy4gImNvbGxlY3QgJHJl Z3MiIG9yICJjb2xsZWN0ICQ8cHNldWRvcmVnPiIuICBUbyBoYW5kbGUgcHNldWRvcmVnCisgICAg bnVtYmVycywgYW4gZW1wdHkgYWdlbnQgZXhwcmVzc2lvbiBpcyBjcmVhdGVkIGFuZCBheF9yZWdf bWFzayBpcworICAgIGNhbGxlZCBmb3IgdGhpcyBleHByZXNzaW9uIGFuZCB0aGUgcHNldWRvcmVn LiAgVGhpcyB3aWxsIGNhdXNlIHRoZSBheAorICAgIHRvIHNldCBpdHMgbWFzayB3aXRoIHRoZSBj b3JyZXNwb25kaW5nIHJlbW90ZSByYXcgcmVnaXN0ZXIKKyAgICBudW1iZXJzICh1c2luZyBheF9y ZWdzX21hc2ssIHdoaWNoIGNhbGxzCisgICAgZ2RiYXJjaF9heF9wc2V1ZG9fcmVnaXN0ZXJfY29s bGVjdCkuCisKKyAgICBJZiBheF9yZWdzX21hc2sgYW5kIGdkYmFyY2hfYXhfcHNldWRvX3JlZ2lz dGVyX2NvbGxlY3QgYWxzbyBnZW5lcmF0ZQorICAgIG1vcmUgYXggYnl0ZWNvZGUsIHRoZSBheCBp cyBhbHNvIGFwcGVuZGVkIHRvIHRoZSBjb2xsZWN0aW9uIGxpc3QuICBJdAorICAgIGlzbid0IGNs ZWFyIHRoYXQgdGhpcyB3YXMgdGhlIG9yaWdpbmFsIGludGVudCBmb3IKKyAgICBnZGJhcmNoX2F4 X3BzZXVkb19yZWdpc3Rlcl9jb2xsZWN0LCBhbmQgbm9uZSBvZiB0aGUgYXJjaGVzIHNlZW0gdG8g ZG8KKyAgICB0aGlzLCBidXQgaWYgdGhpcyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUsIGl0IHNob3Vs ZCB3b3JrLgorCisgICAgVGhlIHBhdGNoIGFsc28gcmVmYWN0b3JzIHRoZSBjb2RlIHVzZWQgYnkg dmFsaWRhdGVfYWN0aW9uIGxpbmUgdG8KKyAgICB2YWxpZGF0ZSBheHMgaW50byBhIGZ1bmN0aW9u IHRoYXQgaXMgbm93IGNhbGxlZCBmcm9tIGV2ZXJ5IHBsYWNlIHRoYXQKKyAgICBnZW5lcmF0ZXMg YXhzLiAgUHJldmlvdXNseSwgc29tZSBwYXJ0cyBvZiB0cmFjZXBvaW50LmMgdGhhdCBnZW5lcmF0 ZWQKKyAgICBheHMgZGlkbid0IGNoZWNrIGlmIHRoZSBheCBsZW5ndGggd2FzIGdyZWF0ZXIgdGhh biBNQVhfQUdFTlRfRVhQUl9MRU4uCisKKyAgICBnZGIvQ2hhbmdlTG9nOgorICAgIDIwMTgtMDgt MDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyAgPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+CisK KyAgICAgICAgICAgICogdHJhY2Vwb2ludC5oIChjbGFzcyBjb2xsZWN0aW9uX2xpc3QpIDxhZGRf cmVnaXN0ZXI+OiBSZW1vdmUuCisgICAgICAgICAgICA8YWRkX3JlbW90ZV9yZWdpc3RlciwgYWRk X2F4X3JlZ2lzdGVycywgYWRkX2xvY2FsX3JlZ2lzdGVyPjoKKyAgICAgICAgICAgIERlY2xhcmUu CisgICAgICAgICAgICA8YWRkX21lbXJhbmdlPjogQWRkIHNjb3BlIHBhcmFtZXRlci4KKyAgICAg ICAgICAgICogdHJhY2Vwb2ludC5jIChlbmNvZGVfYWN0aW9uc18xKTogTGlrZXdpc2UuCisgICAg ICAgICAgICAoY29sbGVjdGlvbl9saXN0OjphZGRfcmVnaXN0ZXIpOiBSZW5hbWUgdG8gLi4uCisg ICAgICAgICAgICAoY29sbGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVyKTogLi4uIHRo aXMuICBVcGRhdGUKKyAgICAgICAgICAgIGNvbW1lbnQuCisgICAgICAgICAgICAoY29sbGVjdGlv bl9saXN0OjphZGRfYXhfcmVnaXN0ZXJzLCBhZGRfbG9jYWxfcmVnaXN0ZXIpOiBOZXcKKyAgICAg ICAgICAgIG1ldGhvZHMuCisgICAgICAgICAgICAoY29sbGVjdGlvbl9saXN0OjphZGRfbWVtcmFu Z2UpOiBBZGQgc2NvcGUgcGFyYW1ldGVyLiAgQ2FsbAorICAgICAgICAgICAgYWRkX2xvY2FsX3Jl Z2lzdGVyIGluc3RlYWQgb2YgYWRkX3JlZ2lzdGVyLgorICAgICAgICAgICAgKGZpbmFsaXplX3Ry YWNlcG9pbnRfYWV4cHIpOiBOZXcgZnVuY3Rpb24uCisgICAgICAgICAgICAoY29sbGVjdGlvbl9s aXN0Ojpjb2xsZWN0X3N5bWJvbCk6IFVwZGF0ZSBjYWxscyB0byBhZGRfbWVtcmFuZ2UuCisgICAg ICAgICAgICBDYWxsIGFkZF9sb2NhbF9yZWdpc3RlciBpbnN0ZWFkIG9mIGFkZF9yZWdpc3Rlci4g IENhbGwKKyAgICAgICAgICAgIGFkZF9heF9yZWdpc3RlcnMuICBDYWxsIGZpbmFsaXplX3RyYWNl cG9pbnRfYWV4cHIuCisgICAgICAgICAgICAoZW5jb2RlX2FjdGlvbnNfMSk6IEdldCByZW1vdGUg cmVnbm9zIGZvciAkcmVnIGFjdGlvbi4gIENhbGwKKyAgICAgICAgICAgIGFkZF9yZW1vdGVfcmVn aXN0ZXIsIGFkZF9heF9yZWdpc3RlcnMsIGFuZCBhZGRfbG9jYWxfcmVnaXN0ZXIuCisgICAgICAg ICAgICBVcGRhdGUgY2FsbCB0byBhZGRfbWVtcmFuZ2UuICBDYWxsIGZpbmFsaXplX3RyYWNlcG9p bnRfYWV4cHIuCisgICAgICAgICAgICAodmFsaWRhdGVfYWN0aW9ubGluZSk6IENhbGwgZmluYWxp emVfdHJhY2Vwb2ludF9hZXhwci4KKworKzIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2 YWxobyAgPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+CisrCisrCSogdHJhY2Vwb2ludC5oIChjbGFz cyBjb2xsZWN0aW9uX2xpc3QpIDxhZGRfcmVnaXN0ZXI+OiBSZW1vdmUuCisrCTxhZGRfcmVtb3Rl X3JlZ2lzdGVyLCBhZGRfYXhfcmVnaXN0ZXJzLCBhZGRfbG9jYWxfcmVnaXN0ZXI+OgorKwlEZWNs YXJlLgorKwk8YWRkX21lbXJhbmdlPjogQWRkIHNjb3BlIHBhcmFtZXRlci4KKysJKiB0cmFjZXBv aW50LmMgKGVuY29kZV9hY3Rpb25zXzEpOiBMaWtld2lzZS4KKysJKGNvbGxlY3Rpb25fbGlzdDo6 YWRkX3JlZ2lzdGVyKTogUmVuYW1lIHRvIC4uLgorKwkoY29sbGVjdGlvbl9saXN0OjphZGRfcmVt b3RlX3JlZ2lzdGVyKTogLi4uIHRoaXMuICBVcGRhdGUKKysJY29tbWVudC4KKysJKGNvbGxlY3Rp b25fbGlzdDo6YWRkX2F4X3JlZ2lzdGVycywgYWRkX2xvY2FsX3JlZ2lzdGVyKTogTmV3CisrCW1l dGhvZHMuCisrCShjb2xsZWN0aW9uX2xpc3Q6OmFkZF9tZW1yYW5nZSk6IEFkZCBzY29wZSBwYXJh bWV0ZXIuICBDYWxsCisrCWFkZF9sb2NhbF9yZWdpc3RlciBpbnN0ZWFkIG9mIGFkZF9yZWdpc3Rl ci4KKysJKGZpbmFsaXplX3RyYWNlcG9pbnRfYWV4cHIpOiBOZXcgZnVuY3Rpb24uCisrCShjb2xs ZWN0aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sKTogVXBkYXRlIGNhbGxzIHRvIGFkZF9tZW1yYW5n ZS4KKysJQ2FsbCBhZGRfbG9jYWxfcmVnaXN0ZXIgaW5zdGVhZCBvZiBhZGRfcmVnaXN0ZXIuICBD YWxsCisrCWFkZF9heF9yZWdpc3RlcnMuICBDYWxsIGZpbmFsaXplX3RyYWNlcG9pbnRfYWV4cHIu CisrCShlbmNvZGVfYWN0aW9uc18xKTogR2V0IHJlbW90ZSByZWdub3MgZm9yICRyZWcgYWN0aW9u LiAgQ2FsbAorKwlhZGRfcmVtb3RlX3JlZ2lzdGVyLCBhZGRfYXhfcmVnaXN0ZXJzLCBhbmQgYWRk X2xvY2FsX3JlZ2lzdGVyLgorKwlVcGRhdGUgY2FsbCB0byBhZGRfbWVtcmFuZ2UuICBDYWxsIGZp bmFsaXplX3RyYWNlcG9pbnRfYWV4cHIuCisrCSh2YWxpZGF0ZV9hY3Rpb25saW5lKTogQ2FsbCBm aW5hbGl6ZV90cmFjZXBvaW50X2FleHByLgorKworIDIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBk ZSBDYXJ2YWxobyAgPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+CisKKyAJKiByZW1vdGUuYyAocmVt b3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCk6IFJlbW92ZSBCVUZfU0laRS4KKworZGlm ZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50LmMgYi9nZGIvdHJhY2Vwb2ludC5jCistLS0gYS9nZGIv dHJhY2Vwb2ludC5jCisrKysgYi9nZGIvdHJhY2Vwb2ludC5jCitAQCAtNjE1LDYgKzYxNSwxOSBA QCByZXBvcnRfYWdlbnRfcmVxc19lcnJvcnMgKHN0cnVjdCBhZ2VudF9leHByICphZXhwcikKKyAg ICAgZXJyb3IgKF8oIkV4cHJlc3Npb24gaXMgdG9vIGNvbXBsaWNhdGVkLiIpKTsKKyB9CisgCisr LyogQ2FsbCBheF9yZXFzIG9uIEFFWFBSIGFuZCByYWlzZSBhbiBlcnJvciBpZiBzb21ldGhpbmcg aXMgd3JvbmcuICAqLworKworK3N0YXRpYyB2b2lkCisrZmluYWxpemVfdHJhY2Vwb2ludF9hZXhw ciAoc3RydWN0IGFnZW50X2V4cHIgKmFleHByKQorK3sKKysgIGF4X3JlcXMgKGFleHByKTsKKysK KysgIGlmIChhZXhwci0+bGVuID4gTUFYX0FHRU5UX0VYUFJfTEVOKQorKyAgICBlcnJvciAoXygi RXhwcmVzc2lvbiBpcyB0b28gY29tcGxpY2F0ZWQuIikpOworKworKyAgcmVwb3J0X2FnZW50X3Jl cXNfZXJyb3JzIChhZXhwcik7CisrfQorKworIC8qIHdvcmtlciBmdW5jdGlvbiAqLworIHZvaWQK KyB2YWxpZGF0ZV9hY3Rpb25saW5lIChjb25zdCBjaGFyICpsaW5lLCBzdHJ1Y3QgYnJlYWtwb2lu dCAqYikKK0BAIC02OTksMTIgKzcxMiw3IEBAIHZhbGlkYXRlX2FjdGlvbmxpbmUgKGNvbnN0IGNo YXIgKmxpbmUsIHN0cnVjdCBicmVha3BvaW50ICpiKQorIAkJCQkJCQlleHAuZ2V0ICgpLAorIAkJ CQkJCQl0cmFjZV9zdHJpbmcpOworIAorLQkgICAgICBpZiAoYWV4cHItPmxlbiA+IE1BWF9BR0VO VF9FWFBSX0xFTikKKy0JCWVycm9yIChfKCJFeHByZXNzaW9uIGlzIHRvbyBjb21wbGljYXRlZC4i KSk7CistCistCSAgICAgIGF4X3JlcXMgKGFleHByLmdldCAoKSk7CistCistCSAgICAgIHJlcG9y dF9hZ2VudF9yZXFzX2Vycm9ycyAoYWV4cHIuZ2V0ICgpKTsKKysJICAgICAgZmluYWxpemVfdHJh Y2Vwb2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKKyAJICAgIH0KKyAJfQorICAgICAgIHdoaWxl IChwICYmICpwKysgPT0gJywnKTsKK0BAIC03MzEsMTEgKzczOSw3IEBAIHZhbGlkYXRlX2FjdGlv bmxpbmUgKGNvbnN0IGNoYXIgKmxpbmUsIHN0cnVjdCBicmVha3BvaW50ICpiKQorIAkJIGxvbmcu ICAqLworIAkgICAgICBhZ2VudF9leHByX3VwIGFleHByID0gZ2VuX2V2YWxfZm9yX2V4cHIgKGxv Yy0+YWRkcmVzcywgZXhwLmdldCAoKSk7CisgCistCSAgICAgIGlmIChhZXhwci0+bGVuID4gTUFY X0FHRU5UX0VYUFJfTEVOKQorLQkJZXJyb3IgKF8oIkV4cHJlc3Npb24gaXMgdG9vIGNvbXBsaWNh dGVkLiIpKTsKKy0KKy0JICAgICAgYXhfcmVxcyAoYWV4cHIuZ2V0ICgpKTsKKy0JICAgICAgcmVw b3J0X2FnZW50X3JlcXNfZXJyb3JzIChhZXhwci5nZXQgKCkpOworKwkgICAgICBmaW5hbGl6ZV90 cmFjZXBvaW50X2FleHByIChhZXhwci5nZXQgKCkpOworIAkgICAgfQorIAl9CisgICAgICAgd2hp bGUgKHAgJiYgKnArKyA9PSAnLCcpOworQEAgLTgxMSwxMCArODE1LDEwIEBAIG1lbXJhbmdlX3Nv cnRtZXJnZSAoc3RkOjp2ZWN0b3I8bWVtcmFuZ2U+ICZtZW1yYW5nZXMpCisgICAgIH0KKyB9Cisg CistLyogQWRkIGEgcmVnaXN0ZXIgdG8gYSBjb2xsZWN0aW9uIGxpc3QuICAqLworKy8qIEFkZCBy ZW1vdGUgcmVnaXN0ZXIgbnVtYmVyIFJFR05PIHRvIHRoZSBjb2xsZWN0aW9uIGxpc3QgbWFzay4g ICovCisgCisgdm9pZAorLWNvbGxlY3Rpb25fbGlzdDo6YWRkX3JlZ2lzdGVyICh1bnNpZ25lZCBp bnQgcmVnbm8pCisrY29sbGVjdGlvbl9saXN0OjphZGRfcmVtb3RlX3JlZ2lzdGVyICh1bnNpZ25l ZCBpbnQgcmVnbm8pCisgeworICAgaWYgKGluZm9fdmVyYm9zZSkKKyAgICAgcHJpbnRmX2ZpbHRl cmVkICgiY29sbGVjdCByZWdpc3RlciAlZFxuIiwgcmVnbm8pOworQEAgLTgyNCwxMiArODI4LDc0 IEBAIGNvbGxlY3Rpb25fbGlzdDo6YWRkX3JlZ2lzdGVyICh1bnNpZ25lZCBpbnQgcmVnbm8pCisg ICBtX3JlZ3NfbWFza1tyZWdubyAvIDhdIHw9IDEgPDwgKHJlZ25vICUgOCk7CisgfQorIAorKy8q IEFkZCBhbGwgdGhlIHJlZ2lzdGVycyBmcm9tIHRoZSBtYXNrIGluIEFFWFBSIHRvIHRoZSBtYXNr IGluIHRoZQorKyAgIGNvbGxlY3Rpb24gbGlzdC4gIFJlZ2lzdGVycyBpbiB0aGUgQUVYUFIgbWFz ayBhcmUgYWxyZWFkeSByZW1vdGUKKysgICByZWdpc3RlciBudW1iZXJzLiAgKi8KKysKKyt2b2lk CisrY29sbGVjdGlvbl9saXN0OjphZGRfYXhfcmVnaXN0ZXJzIChzdHJ1Y3QgYWdlbnRfZXhwciAq YWV4cHIpCisreworKyAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQorKyAgICB7CisrICAg ICAgZm9yIChpbnQgbmR4MSA9IDA7IG5keDEgPCBhZXhwci0+cmVnX21hc2tfbGVuOyBuZHgxKysp CisrCXsKKysJICBRVUlUOwkvKiBBbGxvdyB1c2VyIHRvIGJhaWwgb3V0IHdpdGggXkMuICAqLwor KwkgIGlmIChhZXhwci0+cmVnX21hc2tbbmR4MV0gIT0gMCkKKysJICAgIHsKKysJICAgICAgLyog QXNzdW1lIGNoYXJzIGhhdmUgOCBiaXRzLiAgKi8KKysJICAgICAgZm9yIChpbnQgbmR4MiA9IDA7 IG5keDIgPCA4OyBuZHgyKyspCisrCQlpZiAoYWV4cHItPnJlZ19tYXNrW25keDFdICYgKDEgPDwg bmR4MikpCisrCQkgIC8qIEl0J3MgdXNlZCAtLSByZWNvcmQgaXQuICAqLworKwkJICBhZGRfcmVt b3RlX3JlZ2lzdGVyIChuZHgxICogOCArIG5keDIpOworKwkgICAgfQorKwl9CisrICAgIH0KKyt9 CisrCisrLyogSWYgUkVHTk8gaXMgcmF3LCBhZGQgaXRzIGNvcnJlc3BvbmRpbmcgcmVtb3RlIHJl Z2lzdGVyIG51bWJlciB0bworKyAgIHRoZSBtYXNrLiAgSWYgUkVHTk8gaXMgYSBwc2V1ZG8tcmVn aXN0ZXIsIGZpZ3VyZSBvdXQgdGhlIG5lY2Vzc2FyeQorKyAgIHJlZ2lzdGVycyB1c2luZyBhIHRl bXBvcmFyeSBhZ2VudCBleHByZXNzaW9uLCBhbmQgYWRkIGl0IHRvIHRoZQorKyAgIGxpc3QgaWYg aXQgbmVlZHMgbW9yZSB0aGFuIGp1c3QgYSBtYXNrLiAgKi8KKysKKyt2b2lkCisrY29sbGVjdGlv bl9saXN0OjphZGRfbG9jYWxfcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorKwkJ CQkgICAgIHVuc2lnbmVkIGludCByZWdubywKKysJCQkJICAgICBDT1JFX0FERFIgc2NvcGUpCisr eworKyAgaWYgKHJlZ25vIDwgZ2RiYXJjaF9udW1fcmVncyAoZ2RiYXJjaCkpCisrICAgIHsKKysg ICAgICBpbnQgcmVtb3RlX3JlZ25vID0gZ2RiYXJjaF9yZW1vdGVfcmVnaXN0ZXJfbnVtYmVyIChn ZGJhcmNoLCByZWdubyk7CisrCisrICAgICAgaWYgKHJlbW90ZV9yZWdubyA8IDApCisrCWVycm9y IChfKCJDYW4ndCBjb2xsZWN0IHJlZ2lzdGVyICVkIiksIHJlZ25vKTsKKysKKysgICAgICBhZGRf cmVtb3RlX3JlZ2lzdGVyIChyZW1vdGVfcmVnbm8pOworKyAgICB9CisrICBlbHNlCisrICAgIHsK KysgICAgICBhZ2VudF9leHByX3VwIGFleHByIChuZXcgYWdlbnRfZXhwciAoZ2RiYXJjaCwgc2Nv cGUpKTsKKysKKysgICAgICBheF9yZWdfbWFzayAoYWV4cHIuZ2V0ICgpLCByZWdubyk7CisrCisr ICAgICAgZmluYWxpemVfdHJhY2Vwb2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKKysKKysgICAg ICBhZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOworKworKyAgICAgIC8qIFVzdWFsbHkg YXhfcmVnX21hc2sgZm9yIGEgcHNldWRvLXJlZ2lzZXIgb25seSBzZXRzIHRoZQorKwkgY29ycmVz cG9uZGluZyByYXcgcmVnaXN0ZXJzIGluIHRoZSBheCBtYXNrLCBidXQgaWYgdGhpcyBpc24ndAor KwkgdGhlIGNhc2UgYWRkIHRoZSBleHByZXNzaW9uIHRoYXQgaXMgZ2VuZXJhdGVkIHRvIHRoZQor KwkgY29sbGVjdGlvbiBsaXN0LiAgKi8KKysgICAgICBpZiAoYWV4cHItPmxlbiA+IDApCisrCWFk ZF9hZXhwciAoc3RkOjptb3ZlIChhZXhwcikpOworKyAgICB9CisrfQorKworIC8qIEFkZCBhIG1l bXJhbmdlIHRvIGEgY29sbGVjdGlvbiBsaXN0LiAgKi8KKyAKKyB2b2lkCisgY29sbGVjdGlvbl9s aXN0OjphZGRfbWVtcmFuZ2UgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIAkJCSAgICAgICBp bnQgdHlwZSwgYmZkX3NpZ25lZF92bWEgYmFzZSwKKy0JCQkgICAgICAgVUxPTkdFU1QgbGVuKQor KwkJCSAgICAgICBVTE9OR0VTVCBsZW4sIENPUkVfQUREUiBzY29wZSkKKyB7CisgICBpZiAoaW5m b192ZXJib3NlKQorICAgICBwcmludGZfZmlsdGVyZWQgKCIoJWQsJXMsJXMpXG4iLCB0eXBlLCBw YWRkcmVzcyAoZ2RiYXJjaCwgYmFzZSksIHB1bG9uZ2VzdCAobGVuKSk7CitAQCAtODQwLDcgKzkw Niw3IEBAIGNvbGxlY3Rpb25fbGlzdDo6YWRkX21lbXJhbmdlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwKKyAgIG1fbWVtcmFuZ2VzLmVtcGxhY2VfYmFjayAodHlwZSwgYmFzZSwgYmFzZSArIGxl bik7CisgCisgICBpZiAodHlwZSAhPSBtZW1yYW5nZV9hYnNvbHV0ZSkgICAgLyogQmV0dGVyIGNv bGxlY3QgdGhlIGJhc2UgcmVnaXN0ZXIhICAqLworLSAgICBhZGRfcmVnaXN0ZXIgKHR5cGUpOwor KyAgICBhZGRfbG9jYWxfcmVnaXN0ZXIgKGdkYmFyY2gsIHR5cGUsIHNjb3BlKTsKKyB9CisgCisg LyogQWRkIGEgc3ltYm9sIHRvIGEgY29sbGVjdGlvbiBsaXN0LiAgKi8KK0BAIC04ODIsMTkgKzk0 OCwxOSBAQCBjb2xsZWN0aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpz eW0sCisgICAgICAgaWYgKFRZUEVfQ09ERSAoU1lNQk9MX1RZUEUgKHN5bSkpID09IFRZUEVfQ09E RV9TVFJVQ1QpCisgCXRyZWF0X2FzX2V4cHIgPSAxOworICAgICAgIGVsc2UKKy0JYWRkX21lbXJh bmdlIChnZGJhcmNoLCBtZW1yYW5nZV9hYnNvbHV0ZSwgb2Zmc2V0LCBsZW4pOworKwlhZGRfbWVt cmFuZ2UgKGdkYmFyY2gsIG1lbXJhbmdlX2Fic29sdXRlLCBvZmZzZXQsIGxlbiwgc2NvcGUpOwor ICAgICAgIGJyZWFrOworICAgICBjYXNlIExPQ19SRUdJU1RFUjoKKyAgICAgICByZWcgPSBTWU1C T0xfUkVHSVNURVJfT1BTIChzeW0pLT5yZWdpc3Rlcl9udW1iZXIgKHN5bSwgZ2RiYXJjaCk7Cisg ICAgICAgaWYgKGluZm9fdmVyYm9zZSkKKyAJcHJpbnRmX2ZpbHRlcmVkICgiTE9DX1JFR1twYXJt XSAlczogIiwgCisgCQkJIFNZTUJPTF9QUklOVF9OQU1FIChzeW0pKTsKKy0gICAgICBhZGRfcmVn aXN0ZXIgKHJlZyk7CisrICAgICAgYWRkX2xvY2FsX3JlZ2lzdGVyIChnZGJhcmNoLCByZWcsIHNj b3BlKTsKKyAgICAgICAvKiBDaGVjayBmb3IgZG91YmxlcyBzdG9yZWQgaW4gdHdvIHJlZ2lzdGVy cy4gICovCisgICAgICAgLyogRklYTUU6IGhvdyBhYm91dCBsYXJnZXIgdHlwZXMgc3RvcmVkIGlu IDMgb3IgbW9yZSByZWdzPyAgKi8KKyAgICAgICBpZiAoVFlQRV9DT0RFIChTWU1CT0xfVFlQRSAo c3ltKSkgPT0gVFlQRV9DT0RFX0ZMVCAmJgorIAkgIGxlbiA+IHJlZ2lzdGVyX3NpemUgKGdkYmFy Y2gsIHJlZykpCistCWFkZF9yZWdpc3RlciAocmVnICsgMSk7CisrCWFkZF9sb2NhbF9yZWdpc3Rl ciAoZ2RiYXJjaCwgcmVnICsgMSwgc2NvcGUpOworICAgICAgIGJyZWFrOworICAgICBjYXNlIExP Q19SRUZfQVJHOgorICAgICAgIHByaW50Zl9maWx0ZXJlZCAoIlNvcnJ5LCBkb24ndCBrbm93IGhv dyB0byBkbyBMT0NfUkVGX0FSRyB5ZXQuXG4iKTsKK0BAIC05MTEsNyArOTc3LDcgQEAgY29sbGVj dGlvbl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAqc3ltLAorIAkJCSAgIFNZ TUJPTF9QUklOVF9OQU1FIChzeW0pLCBwdWxvbmdlc3QgKGxlbiksCisgCQkJICAgcGFkZHJlc3Mg KGdkYmFyY2gsIG9mZnNldCksIHJlZyk7CisgCX0KKy0gICAgICBhZGRfbWVtcmFuZ2UgKGdkYmFy Y2gsIHJlZywgb2Zmc2V0LCBsZW4pOworKyAgICAgIGFkZF9tZW1yYW5nZSAoZ2RiYXJjaCwgcmVn LCBvZmZzZXQsIGxlbiwgc2NvcGUpOworICAgICAgIGJyZWFrOworICAgICBjYXNlIExPQ19SRUdQ QVJNX0FERFI6CisgICAgICAgcmVnID0gU1lNQk9MX1ZBTFVFIChzeW0pOworQEAgLTkyMyw3ICs5 ODksNyBAQCBjb2xsZWN0aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpz eW0sCisgCQkJICAgU1lNQk9MX1BSSU5UX05BTUUgKHN5bSksIHB1bG9uZ2VzdCAobGVuKSwKKyAJ CQkgICBwYWRkcmVzcyAoZ2RiYXJjaCwgb2Zmc2V0KSwgcmVnKTsKKyAJfQorLSAgICAgIGFkZF9t ZW1yYW5nZSAoZ2RiYXJjaCwgcmVnLCBvZmZzZXQsIGxlbik7CisrICAgICAgYWRkX21lbXJhbmdl IChnZGJhcmNoLCByZWcsIG9mZnNldCwgbGVuLCBzY29wZSk7CisgICAgICAgYnJlYWs7CisgICAg IGNhc2UgTE9DX0xPQ0FMOgorICAgICAgIHJlZyA9IGZyYW1lX3JlZ25vOworQEAgLTkzNSw3ICsx MDAxLDcgQEAgY29sbGVjdGlvbl9saXN0Ojpjb2xsZWN0X3N5bWJvbCAoc3RydWN0IHN5bWJvbCAq c3ltLAorIAkJCSAgIFNZTUJPTF9QUklOVF9OQU1FIChzeW0pLCBwdWxvbmdlc3QgKGxlbiksCisg CQkJICAgcGFkZHJlc3MgKGdkYmFyY2gsIG9mZnNldCksIHJlZyk7CisgCX0KKy0gICAgICBhZGRf bWVtcmFuZ2UgKGdkYmFyY2gsIHJlZywgb2Zmc2V0LCBsZW4pOworKyAgICAgIGFkZF9tZW1yYW5n ZSAoZ2RiYXJjaCwgcmVnLCBvZmZzZXQsIGxlbiwgc2NvcGUpOworICAgICAgIGJyZWFrOworIAor ICAgICBjYXNlIExPQ19VTlJFU09MVkVEOgorQEAgLTk2OCwyNiArMTAzNCwxMCBAQCBjb2xsZWN0 aW9uX2xpc3Q6OmNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCisgCSAgcmV0dXJu OworIAl9CisgCistICAgICAgYXhfcmVxcyAoYWV4cHIuZ2V0ICgpKTsKKy0KKy0gICAgICByZXBv cnRfYWdlbnRfcmVxc19lcnJvcnMgKGFleHByLmdldCAoKSk7CisrICAgICAgZmluYWxpemVfdHJh Y2Vwb2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKKyAKKyAgICAgICAvKiBUYWtlIGNhcmUgb2Yg dGhlIHJlZ2lzdGVycy4gICovCistICAgICAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQor LQl7CistCSAgZm9yIChpbnQgbmR4MSA9IDA7IG5keDEgPCBhZXhwci0+cmVnX21hc2tfbGVuOyBu ZHgxKyspCistCSAgICB7CistCSAgICAgIFFVSVQ7CS8qIEFsbG93IHVzZXIgdG8gYmFpbCBvdXQg d2l0aCBeQy4gICovCistCSAgICAgIGlmIChhZXhwci0+cmVnX21hc2tbbmR4MV0gIT0gMCkKKy0J CXsKKy0JCSAgLyogQXNzdW1lIGNoYXJzIGhhdmUgOCBiaXRzLiAgKi8KKy0JCSAgZm9yIChpbnQg bmR4MiA9IDA7IG5keDIgPCA4OyBuZHgyKyspCistCQkgICAgaWYgKGFleHByLT5yZWdfbWFza1tu ZHgxXSAmICgxIDw8IG5keDIpKQorLQkJICAgICAgLyogSXQncyB1c2VkIC0tIHJlY29yZCBpdC4g ICovCistCQkgICAgICBhZGRfcmVnaXN0ZXIgKG5keDEgKiA4ICsgbmR4Mik7CistCQl9CistCSAg ICB9CistCX0KKysgICAgICBhZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOworIAorICAg ICAgIGFkZF9hZXhwciAoc3RkOjptb3ZlIChhZXhwcikpOworICAgICB9CitAQCAtMTI1Nyw4ICsx MzA3LDE4IEBAIGVuY29kZV9hY3Rpb25zXzEgKHN0cnVjdCBjb21tYW5kX2xpbmUgKmFjdGlvbiwK KyAKKyAJICAgICAgaWYgKDAgPT0gc3RybmNhc2VjbXAgKCIkcmVnIiwgYWN0aW9uX2V4cCwgNCkp CisgCQl7CistCQkgIGZvciAoaSA9IDA7IGkgPCBnZGJhcmNoX251bV9yZWdzICh0YXJnZXRfZ2Ri YXJjaCAoKSk7IGkrKykKKy0JCSAgICBjb2xsZWN0LT5hZGRfcmVnaXN0ZXIgKGkpOworKwkJICBm b3IgKGkgPSAwOyBpIDwgZ2RiYXJjaF9udW1fcmVncyAodGFyZ2V0X2dkYmFyY2ggKCkpOworKwkJ ICAgICAgIGkrKykKKysJCSAgICB7CisrCQkgICAgICBpbnQgcmVtb3RlX3JlZ25vID0gKGdkYmFy Y2hfcmVtb3RlX3JlZ2lzdGVyX251bWJlcgorKwkJCQkJICAodGFyZ2V0X2dkYmFyY2ggKCksIGkp KTsKKysKKysJCSAgICAgIC8qIElnbm9yZSBhcmNoIHJlZ25vcyB3aXRob3V0IGEgY29ycmVzcG9u ZGluZworKwkJCSByZW1vdGUgcmVnbm8uICBUaGlzIGNhbiBoYXBwZW4gZm9yIHJlZ25vcyBub3QK KysJCQkgaW4gdGhlIHRkZXNjLiAgKi8KKysJCSAgICAgIGlmIChyZW1vdGVfcmVnbm8gPj0gMCkK KysJCQljb2xsZWN0LT5hZGRfcmVtb3RlX3JlZ2lzdGVyIChyZW1vdGVfcmVnbm8pOworKwkJICAg IH0KKyAJCSAgYWN0aW9uX2V4cCA9IHN0cmNociAoYWN0aW9uX2V4cCwgJywnKTsJLyogbW9yZT8g Ki8KKyAJCX0KKyAJICAgICAgZWxzZSBpZiAoMCA9PSBzdHJuY2FzZWNtcCAoIiRhcmciLCBhY3Rp b25fZXhwLCA0KSkKK0BAIC0xMjg4LDI3ICsxMzQ4LDEwIEBAIGVuY29kZV9hY3Rpb25zXzEgKHN0 cnVjdCBjb21tYW5kX2xpbmUgKmFjdGlvbiwKKyAJCQkJCQkgICAgdGFyZ2V0X2dkYmFyY2ggKCks CisgCQkJCQkJICAgIHRyYWNlX3N0cmluZyk7CisgCistCQkgIGF4X3JlcXMgKGFleHByLmdldCAo KSk7CistCQkgIHJlcG9ydF9hZ2VudF9yZXFzX2Vycm9ycyAoYWV4cHIuZ2V0ICgpKTsKKysJCSAg ZmluYWxpemVfdHJhY2Vwb2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKKyAKKyAJCSAgLyogdGFr ZSBjYXJlIG9mIHRoZSByZWdpc3RlcnMgKi8KKy0JCSAgaWYgKGFleHByLT5yZWdfbWFza19sZW4g PiAwKQorLQkJICAgIHsKKy0JCSAgICAgIGZvciAoaW50IG5keDEgPSAwOyBuZHgxIDwgYWV4cHIt PnJlZ19tYXNrX2xlbjsgbmR4MSsrKQorLQkJCXsKKy0JCQkgIFFVSVQ7CS8qIGFsbG93IHVzZXIg dG8gYmFpbCBvdXQgd2l0aCBeQyAqLworLQkJCSAgaWYgKGFleHByLT5yZWdfbWFza1tuZHgxXSAh PSAwKQorLQkJCSAgICB7CistCQkJICAgICAgLyogYXNzdW1lIGNoYXJzIGhhdmUgOCBiaXRzICov CistCQkJICAgICAgZm9yIChpbnQgbmR4MiA9IDA7IG5keDIgPCA4OyBuZHgyKyspCistCQkJCWlm IChhZXhwci0+cmVnX21hc2tbbmR4MV0gJiAoMSA8PCBuZHgyKSkKKy0JCQkJICB7CistCQkJCSAg ICAvKiBJdCdzIHVzZWQgLS0gcmVjb3JkIGl0LiAgKi8KKy0JCQkJICAgIGNvbGxlY3QtPmFkZF9y ZWdpc3RlciAobmR4MSAqIDggKyBuZHgyKTsKKy0JCQkJICB9CistCQkJICAgIH0KKy0JCQl9Cist CQkgICAgfQorKwkJICBjb2xsZWN0LT5hZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOwor IAorIAkJICBjb2xsZWN0LT5hZGRfYWV4cHIgKHN0ZDo6bW92ZSAoYWV4cHIpKTsKKyAJCSAgYWN0 aW9uX2V4cCA9IHN0cmNociAoYWN0aW9uX2V4cCwgJywnKTsJLyogbW9yZT8gKi8KK0BAIC0xMzQw LDcgKzEzODMsOCBAQCBlbmNvZGVfYWN0aW9uc18xIChzdHJ1Y3QgY29tbWFuZF9saW5lICphY3Rp b24sCisgCQkJCQkgIG5hbWUpOworIAkJCWlmIChpbmZvX3ZlcmJvc2UpCisgCQkJICBwcmludGZf ZmlsdGVyZWQgKCJPUF9SRUdJU1RFUjogIik7CistCQkJY29sbGVjdC0+YWRkX3JlZ2lzdGVyIChp KTsKKysJCQljb2xsZWN0LT5hZGRfbG9jYWxfcmVnaXN0ZXIgKHRhcmdldF9nZGJhcmNoICgpLAor KwkJCQkJCSAgICAgaSwgdGxvYy0+YWRkcmVzcyk7CisgCQkJYnJlYWs7CisgCQkgICAgICB9Cisg CitAQCAtMTM1Miw3ICsxMzk2LDggQEAgZW5jb2RlX2FjdGlvbnNfMSAoc3RydWN0IGNvbW1hbmRf bGluZSAqYWN0aW9uLAorIAkJICAgICAgY2hlY2tfdHlwZWRlZiAoZXhwLT5lbHRzWzFdLnR5cGUp OworIAkJICAgICAgY29sbGVjdC0+YWRkX21lbXJhbmdlICh0YXJnZXRfZ2RiYXJjaCAoKSwKKyAJ CQkJCSAgICAgbWVtcmFuZ2VfYWJzb2x1dGUsIGFkZHIsCistCQkJCQkgICAgIFRZUEVfTEVOR1RI IChleHAtPmVsdHNbMV0udHlwZSkpOworKwkJCQkJICAgICBUWVBFX0xFTkdUSCAoZXhwLT5lbHRz WzFdLnR5cGUpLAorKwkJCQkJICAgICB0bG9jLT5hZGRyZXNzKTsKKyAJCSAgICAgIGNvbGxlY3Qt PmFwcGVuZF9leHAgKGV4cC5nZXQgKCkpOworIAkJICAgICAgYnJlYWs7CisgCitAQCAtMTM3Niwy OCArMTQyMSwxMCBAQCBlbmNvZGVfYWN0aW9uc18xIChzdHJ1Y3QgY29tbWFuZF9saW5lICphY3Rp b24sCisgCQkJCQkJCQlleHAuZ2V0ICgpLAorIAkJCQkJCQkJdHJhY2Vfc3RyaW5nKTsKKyAKKy0J CSAgICAgIGF4X3JlcXMgKGFleHByLmdldCAoKSk7CistCistCQkgICAgICByZXBvcnRfYWdlbnRf cmVxc19lcnJvcnMgKGFleHByLmdldCAoKSk7CisrCQkgICAgICBmaW5hbGl6ZV90cmFjZXBvaW50 X2FleHByIChhZXhwci5nZXQgKCkpOworIAorIAkJICAgICAgLyogVGFrZSBjYXJlIG9mIHRoZSBy ZWdpc3RlcnMuICAqLworLQkJICAgICAgaWYgKGFleHByLT5yZWdfbWFza19sZW4gPiAwKQorLQkJ CXsKKy0JCQkgIGZvciAoaW50IG5keDEgPSAwOyBuZHgxIDwgYWV4cHItPnJlZ19tYXNrX2xlbjsg bmR4MSsrKQorLQkJCSAgICB7CistCQkJICAgICAgUVVJVDsJLyogQWxsb3cgdXNlciB0byBiYWls IG91dCB3aXRoIF5DLiAgKi8KKy0JCQkgICAgICBpZiAoYWV4cHItPnJlZ19tYXNrW25keDFdICE9 IDApCistCQkJCXsKKy0JCQkJICAvKiBBc3N1bWUgY2hhcnMgaGF2ZSA4IGJpdHMuICAqLworLQkJ CQkgIGZvciAoaW50IG5keDIgPSAwOyBuZHgyIDwgODsgbmR4MisrKQorLQkJCQkgICAgaWYgKGFl eHByLT5yZWdfbWFza1tuZHgxXSAmICgxIDw8IG5keDIpKQorLQkJCQkgICAgICB7CistCQkJCQkv KiBJdCdzIHVzZWQgLS0gcmVjb3JkIGl0LiAgKi8KKy0JCQkJCWNvbGxlY3QtPmFkZF9yZWdpc3Rl ciAobmR4MSAqIDggKyBuZHgyKTsKKy0JCQkJICAgICAgfQorLQkJCQl9CistCQkJICAgIH0KKy0J CQl9CisrCQkgICAgICBjb2xsZWN0LT5hZGRfYXhfcmVnaXN0ZXJzIChhZXhwci5nZXQgKCkpOwor IAorIAkJICAgICAgY29sbGVjdC0+YWRkX2FleHByIChzdGQ6Om1vdmUgKGFleHByKSk7CisgCQkg ICAgICBjb2xsZWN0LT5hcHBlbmRfZXhwIChleHAuZ2V0ICgpKTsKK0BAIC0xNDIyLDggKzE0NDks NyBAQCBlbmNvZGVfYWN0aW9uc18xIChzdHJ1Y3QgY29tbWFuZF9saW5lICphY3Rpb24sCisgCQkg IGFnZW50X2V4cHJfdXAgYWV4cHIgPSBnZW5fZXZhbF9mb3JfZXhwciAodGxvYy0+YWRkcmVzcywK KyAJCQkJCQkJICAgZXhwLmdldCAoKSk7CisgCistCQkgIGF4X3JlcXMgKGFleHByLmdldCAoKSk7 CistCQkgIHJlcG9ydF9hZ2VudF9yZXFzX2Vycm9ycyAoYWV4cHIuZ2V0ICgpKTsKKysJCSAgZmlu YWxpemVfdHJhY2Vwb2ludF9hZXhwciAoYWV4cHIuZ2V0ICgpKTsKKyAKKyAJCSAgLyogRXZlbiB0 aG91Z2ggd2UncmUgbm90IG9mZmljaWFsbHkgY29sbGVjdGluZywgYWRkCisgCQkgICAgIHRvIHRo ZSBjb2xsZWN0IGxpc3QgYW55d2F5LiAgKi8KK2RpZmYgLS1naXQgYS9nZGIvdHJhY2Vwb2ludC5o IGIvZ2RiL3RyYWNlcG9pbnQuaAorLS0tIGEvZ2RiL3RyYWNlcG9pbnQuaAorKysrIGIvZ2RiL3Ry YWNlcG9pbnQuaAorQEAgLTI2Myw5ICsyNjMsMTQgQEAgcHVibGljOgorICAgdm9pZCBhZGRfYWV4 cHIgKGFnZW50X2V4cHJfdXAgYWV4cHIpOworIAorICAgdm9pZCBhZGRfcmVnaXN0ZXIgKHVuc2ln bmVkIGludCByZWdubyk7CisrICB2b2lkIGFkZF9yZW1vdGVfcmVnaXN0ZXIgKHVuc2lnbmVkIGlu dCByZWdubyk7CisrICB2b2lkIGFkZF9heF9yZWdpc3RlcnMgKHN0cnVjdCBhZ2VudF9leHByICph ZXhwcik7CisrICB2b2lkIGFkZF9sb2NhbF9yZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsCisrCQkJICAgdW5zaWduZWQgaW50IHJlZ25vLAorKwkJCSAgIENPUkVfQUREUiBzY29wZSk7 CisgICB2b2lkIGFkZF9tZW1yYW5nZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisgCQkgICAg IGludCB0eXBlLCBiZmRfc2lnbmVkX3ZtYSBiYXNlLAorLQkJICAgICBVTE9OR0VTVCBsZW4pOwor KwkJICAgICBVTE9OR0VTVCBsZW4sIENPUkVfQUREUiBzY29wZSk7CisgICB2b2lkIGNvbGxlY3Rf c3ltYm9sIChzdHJ1Y3Qgc3ltYm9sICpzeW0sCisgCQkgICAgICAgc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCisgCQkgICAgICAgbG9uZyBmcmFtZV9yZWdubywgbG9uZyBmcmFtZV9vZmZzZXQsCgpk aWZmIC0tZ2l0IGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTVvZjcucGF0Y2ggYi9nZGIt cmhiejExODc1ODEtcG93ZXI4LXJlZ3MtNW9mNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5lYWNhNTJmCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxMTg3NTgx LXBvd2VyOC1yZWdzLTVvZjcucGF0Y2gKQEAgLTAsMCArMSwyMTUgQEAKK0Zyb20gRkVET1JBX1BB VENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYW4gS3JhdG9jaHZpbCA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgOSBBdWcgMjAxOCAxNzoxNzo0NiAr MDIwMAorU3ViamVjdDogZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTVvZjcucGF0Y2gKKwor OzsgQWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9kaXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElC TSwgUkggQlogMTE4NzU4MSkuCisKK2NvbW1pdCBhMDRiOWQ2MmEyMzQ5MjM4MjZlNDMxYTIwOWQz OTZhNjI4NjYxNTQ4CitBdXRob3I6IFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyA8cGVkcm9tZmNA bGludXguaWJtLmNvbT4KK0RhdGU6ICAgTW9uIEF1ZyA2IDE2OjI0OjU1IDIwMTggLTAzMDAKKwor ICAgIFZhcmlhYmxlIHNpemUgZm9yIHJlZ3MgbWFzayBpbiBjb2xsZWN0aW9uIGxpc3QKKworICAg IFRoaXMgcGF0Y2ggY2hhbmdlcyBjb2xsZWN0aW9uX2xpc3QgdG8gYWxsb3cgbGFyZ2VyIHJlZ2lz dGVyIG1hc2tzLgorCisgICAgVGhlIG1hc2sgaXMgY2hhbmdlZCBmcm9tIGFuIGFycmF5IHRvIGEg dmVjdG9yIGFuZCBpcyBpbml0aWFsaXplZCB0bworICAgIGhvbGQgdGhlIG1heGltdW0gcG9zc2li bGUgcmVtb3RlIHJlZ2lzdGVyIG51bWJlci4gIFRoZSBzdHJpbmdpZnkKKyAgICBtZXRob2QgaXMg dXBkYXRlZCB0byByZXNpemUgdGVtcF9idWYgaWYgbmVlZGVkLgorCisgICAgZ2RiL0NoYW5nZUxv ZzoKKyAgICAyMDE4LTA4LTA2ICBQZWRybyBGcmFuY28gZGUgQ2FydmFsaG8gIDxwZWRyb21mY0Bs aW51eC5pYm0uY29tPgorCisgICAgICAgICAgICAqIHRyYWNlcG9pbnQuaCAoY29sbGVjdGlvbl9s aXN0KSA8bV9yZWdzX21hc2s+OiBDaGFuZ2UgdHlwZSB0bworICAgICAgICAgICAgc3RkOjp2ZWN0 b3I8dW5zaWduZWQgY2hhcj4uCisgICAgICAgICAgICAqIHRyYWNlcG9pbnQuYyAoY29sbGVjdGlv bl9saXN0Ojpjb2xsZWN0aW9uX2xpc3QpOiBSZW1vdmUKKyAgICAgICAgICAgIG1fcmVnc19tYXNr IGluaXRpYWxpemVyIGZyb20gaW5pdGlhbGl6ZXIgbGlzdC4gIFJlc2l6ZQorICAgICAgICAgICAg bV9yZWdzX21hc2sgdXNpbmcgdGhlIGxhcmdlc3QgcmVtb3RlIHJlZ2lzdGVyIG51bWJlci4KKyAg ICAgICAgICAgIChjb2xsZWN0aW9uX2xpc3Q6OmFkZF9yZW1vdGVfcmVnaXN0ZXIpOiBSZW1vdmUg c2l6ZSBjaGVjayBvbgorICAgICAgICAgICAgbV9yZWdzX21hc2suICBVc2UgYXQgdG8gYWNjZXNz IGVsZW1lbnQuCisgICAgICAgICAgICAoY29sbGVjdGlvbl9saXN0OjpzdHJpbmdpZnkpOiBDaGFu Z2UgdHlwZSBvZiB0ZW1wX2J1ZiB0bworICAgICAgICAgICAgZ2RiOjpjaGFyX3ZlY3Rvci4gIFVw ZGF0ZSB1c2VzIG9mIHRlbXBfYnVmLiAgUmVzaXplIGlmIG5lZWRlZCB0bworICAgICAgICAgICAg c3RyaW5naWZ5IHRoZSByZWdpc3RlciBtYXNrLiAgVXNlIHBhY2tfaGV4X2J5dGUgZm9yIHRoZSBy ZWdpc3RlcgorICAgICAgICAgICAgbWFzay4KKworKzIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBk ZSBDYXJ2YWxobyAgPHBlZHJvbWZjQGxpbnV4LmlibS5jb20+CisrCisrCSogdHJhY2Vwb2ludC5o IChjb2xsZWN0aW9uX2xpc3QpIDxtX3JlZ3NfbWFzaz46IENoYW5nZSB0eXBlIHRvCisrCXN0ZDo6 dmVjdG9yPHVuc2lnbmVkIGNoYXI+LgorKwkqIHRyYWNlcG9pbnQuYyAoY29sbGVjdGlvbl9saXN0 Ojpjb2xsZWN0aW9uX2xpc3QpOiBSZW1vdmUKKysJbV9yZWdzX21hc2sgaW5pdGlhbGl6ZXIgZnJv bSBpbml0aWFsaXplciBsaXN0LiAgUmVzaXplCisrCW1fcmVnc19tYXNrIHVzaW5nIHRoZSBsYXJn ZXN0IHJlbW90ZSByZWdpc3RlciBudW1iZXIuCisrCShjb2xsZWN0aW9uX2xpc3Q6OmFkZF9yZW1v dGVfcmVnaXN0ZXIpOiBSZW1vdmUgc2l6ZSBjaGVjayBvbgorKwltX3JlZ3NfbWFzay4gIFVzZSBh dCB0byBhY2Nlc3MgZWxlbWVudC4KKysJKGNvbGxlY3Rpb25fbGlzdDo6c3RyaW5naWZ5KTogQ2hh bmdlIHR5cGUgb2YgdGVtcF9idWYgdG8KKysJZ2RiOjpjaGFyX3ZlY3Rvci4gIFVwZGF0ZSB1c2Vz IG9mIHRlbXBfYnVmLiAgUmVzaXplIGlmIG5lZWRlZCB0bworKwlzdHJpbmdpZnkgdGhlIHJlZ2lz dGVyIG1hc2suICBVc2UgcGFja19oZXhfYnl0ZSBmb3IgdGhlIHJlZ2lzdGVyCisrCW1hc2suCisr CisgMjAxOC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNAbGludXgu aWJtLmNvbT4KKworIAkqIHRyYWNlcG9pbnQuaCAoY2xhc3MgY29sbGVjdGlvbl9saXN0KSA8YWRk X3JlZ2lzdGVyPjogUmVtb3ZlLgorCitkaWZmIC0tZ2l0IGEvZ2RiL3RyYWNlcG9pbnQuYyBiL2dk Yi90cmFjZXBvaW50LmMKKy0tLSBhL2dkYi90cmFjZXBvaW50LmMKKysrKyBiL2dkYi90cmFjZXBv aW50LmMKK0BAIC04MjIsMTAgKzgyMiw4IEBAIGNvbGxlY3Rpb25fbGlzdDo6YWRkX3JlbW90ZV9y ZWdpc3RlciAodW5zaWduZWQgaW50IHJlZ25vKQorIHsKKyAgIGlmIChpbmZvX3ZlcmJvc2UpCisg ICAgIHByaW50Zl9maWx0ZXJlZCAoImNvbGxlY3QgcmVnaXN0ZXIgJWRcbiIsIHJlZ25vKTsKKy0g IGlmIChyZWdubyA+PSAoOCAqIHNpemVvZiAobV9yZWdzX21hc2spKSkKKy0gICAgZXJyb3IgKF8o IkludGVybmFsOiByZWdpc3RlciBudW1iZXIgJWQgdG9vIGxhcmdlIGZvciB0cmFjZXBvaW50Iiks CistCSAgIHJlZ25vKTsKKy0gIG1fcmVnc19tYXNrW3JlZ25vIC8gOF0gfD0gMSA8PCAocmVnbm8g JSA4KTsKKysKKysgIG1fcmVnc19tYXNrLmF0IChyZWdubyAvIDgpIHw9IDEgPDwgKHJlZ25vICUg OCk7CisgfQorIAorIC8qIEFkZCBhbGwgdGhlIHJlZ2lzdGVycyBmcm9tIHRoZSBtYXNrIGluIEFF WFBSIHRvIHRoZSBtYXNrIGluIHRoZQorQEAgLTExMzYsOSArMTEzNCwyMCBAQCBjb2xsZWN0aW9u X2xpc3Q6OmFkZF9zdGF0aWNfdHJhY2VfZGF0YSAoKQorIH0KKyAKKyBjb2xsZWN0aW9uX2xpc3Q6 OmNvbGxlY3Rpb25fbGlzdCAoKQorLSAgOiBtX3JlZ3NfbWFzayAoKSwKKy0gICAgbV9zdHJhY2Vf ZGF0YSAoZmFsc2UpCisrICA6IG1fc3RyYWNlX2RhdGEgKGZhbHNlKQorIHsKKysgIGludCBtYXhf cmVtb3RlX3JlZ25vID0gMDsKKysgIGZvciAoaW50IGkgPSAwOyBpIDwgZ2RiYXJjaF9udW1fcmVn cyAodGFyZ2V0X2dkYmFyY2ggKCkpOyBpKyspCisrICAgIHsKKysgICAgICBpbnQgcmVtb3RlX3Jl Z25vID0gKGdkYmFyY2hfcmVtb3RlX3JlZ2lzdGVyX251bWJlcgorKwkJCSAgKHRhcmdldF9nZGJh cmNoICgpLCBpKSk7CisrCisrICAgICAgaWYgKHJlbW90ZV9yZWdubyA+PSAwICYmIHJlbW90ZV9y ZWdubyA+IG1heF9yZW1vdGVfcmVnbm8pCisrCW1heF9yZW1vdGVfcmVnbm8gPSByZW1vdGVfcmVn bm87CisrICAgIH0KKysKKysgIG1fcmVnc19tYXNrLnJlc2l6ZSAoKG1heF9yZW1vdGVfcmVnbm8g LyA4KSArIDEpOworKworICAgbV9tZW1yYW5nZXMucmVzZXJ2ZSAoMTI4KTsKKyAgIG1fYWV4cHJz LnJlc2VydmUgKDEyOCk7CisgfQorQEAgLTExNDgsNyArMTE1Nyw4IEBAIGNvbGxlY3Rpb25fbGlz dDo6Y29sbGVjdGlvbl9saXN0ICgpCisgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+CisgY29sbGVj dGlvbl9saXN0OjpzdHJpbmdpZnkgKCkKKyB7CistICBjaGFyIHRlbXBfYnVmWzIwNDhdOworKyAg Z2RiOjpjaGFyX3ZlY3RvciB0ZW1wX2J1ZiAoMjA0OCk7CisrCisgICBpbnQgY291bnQ7CisgICBj aGFyICplbmQ7CisgICBsb25nIGk7CitAQCAtMTE1OCwzNSArMTE2OCw0NSBAQCBjb2xsZWN0aW9u X2xpc3Q6OnN0cmluZ2lmeSAoKQorICAgICB7CisgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKKyAJ cHJpbnRmX2ZpbHRlcmVkICgiXG5Db2xsZWN0aW5nIHN0YXRpYyB0cmFjZSBkYXRhXG4iKTsKKy0g ICAgICBlbmQgPSB0ZW1wX2J1ZjsKKysgICAgICBlbmQgPSB0ZW1wX2J1Zi5kYXRhICgpOworICAg ICAgICplbmQrKyA9ICdMJzsKKy0gICAgICBzdHJfbGlzdC5lbXBsYWNlX2JhY2sgKHRlbXBfYnVm LCBlbmQgLSB0ZW1wX2J1Zik7CisrICAgICAgc3RyX2xpc3QuZW1wbGFjZV9iYWNrICh0ZW1wX2J1 Zi5kYXRhICgpLCBlbmQgLSB0ZW1wX2J1Zi5kYXRhICgpKTsKKyAgICAgfQorIAorLSAgZm9yIChp ID0gc2l6ZW9mIChtX3JlZ3NfbWFzaykgLSAxOyBpID4gMDsgaS0tKQorKyAgZm9yIChpID0gbV9y ZWdzX21hc2suc2l6ZSAoKSAtIDE7IGkgPiAwOyBpLS0pCisgICAgIGlmIChtX3JlZ3NfbWFza1tp XSAhPSAwKSAgICAvKiBTa2lwIGxlYWRpbmcgemVyb2VzIGluIHJlZ3NfbWFzay4gICovCisgICAg ICAgYnJlYWs7CisgICBpZiAobV9yZWdzX21hc2tbaV0gIT0gMCkJLyogUHJlcGFyZSB0byBzZW5k IHJlZ3NfbWFzayB0byB0aGUgc3R1Yi4gICovCisgICAgIHsKKyAgICAgICBpZiAoaW5mb192ZXJi b3NlKQorIAlwcmludGZfZmlsdGVyZWQgKCJcbkNvbGxlY3RpbmcgcmVnaXN0ZXJzIChtYXNrKTog MHgiKTsKKy0gICAgICBlbmQgPSB0ZW1wX2J1ZjsKKysKKysgICAgICAvKiBPbmUgY2hhciBmb3Ig J1InLCBvbmUgZm9yIHRoZSBudWxsIHRlcm1pbmF0b3IgYW5kIHR3byBwZXIKKysJIG1hc2sgYnl0 ZS4gICovCisrICAgICAgc3RkOjpzaXplX3QgbmV3X3NpemUgPSAoaSArIDEpICogMiArIDI7Cisr ICAgICAgaWYgKG5ld19zaXplID4gdGVtcF9idWYuc2l6ZSAoKSkKKysJdGVtcF9idWYucmVzaXpl IChuZXdfc2l6ZSk7CisrCisrICAgICAgZW5kID0gdGVtcF9idWYuZGF0YSAoKTsKKyAgICAgICAq ZW5kKysgPSAnUic7CisgICAgICAgZm9yICg7IGkgPj0gMDsgaS0tKQorIAl7CisgCSAgUVVJVDsJ CQkvKiBBbGxvdyB1c2VyIHRvIGJhaWwgb3V0IHdpdGggXkMuICAqLworIAkgIGlmIChpbmZvX3Zl cmJvc2UpCisgCSAgICBwcmludGZfZmlsdGVyZWQgKCIlMDJYIiwgbV9yZWdzX21hc2tbaV0pOwor LQkgIHNwcmludGYgKGVuZCwgIiUwMlgiLCBtX3JlZ3NfbWFza1tpXSk7CistCSAgZW5kICs9IDI7 CisrCisrCSAgZW5kID0gcGFja19oZXhfYnl0ZSAoZW5kLCBtX3JlZ3NfbWFza1tpXSk7CisgCX0K Ky0gICAgICBzdHJfbGlzdC5lbXBsYWNlX2JhY2sgKHRlbXBfYnVmKTsKKysgICAgICAqZW5kID0g J1wwJzsKKysKKysgICAgICBzdHJfbGlzdC5lbXBsYWNlX2JhY2sgKHRlbXBfYnVmLmRhdGEgKCkp OworICAgICB9CisgICBpZiAoaW5mb192ZXJib3NlKQorICAgICBwcmludGZfZmlsdGVyZWQgKCJc biIpOworICAgaWYgKCFtX21lbXJhbmdlcy5lbXB0eSAoKSAmJiBpbmZvX3ZlcmJvc2UpCisgICAg IHByaW50Zl9maWx0ZXJlZCAoIkNvbGxlY3RpbmcgbWVtcmFuZ2VzOiBcbiIpOworLSAgZm9yIChp ID0gMCwgY291bnQgPSAwLCBlbmQgPSB0ZW1wX2J1ZjsgaSA8IG1fbWVtcmFuZ2VzLnNpemUgKCk7 IGkrKykKKysgIGZvciAoaSA9IDAsIGNvdW50ID0gMCwgZW5kID0gdGVtcF9idWYuZGF0YSAoKTsK KysgICAgICAgaSA8IG1fbWVtcmFuZ2VzLnNpemUgKCk7IGkrKykKKyAgICAgeworICAgICAgIFFV SVQ7CQkJLyogQWxsb3cgdXNlciB0byBiYWlsIG91dCB3aXRoIF5DLiAgKi8KKyAgICAgICBpZiAo aW5mb192ZXJib3NlKQorQEAgLTEyMDAsOSArMTIyMCw5IEBAIGNvbGxlY3Rpb25fbGlzdDo6c3Ry aW5naWZ5ICgpCisgCX0KKyAgICAgICBpZiAoY291bnQgKyAyNyA+IE1BWF9BR0VOVF9FWFBSX0xF TikKKyAJeworLQkgIHN0cl9saXN0LmVtcGxhY2VfYmFjayAodGVtcF9idWYsIGNvdW50KTsKKysJ ICBzdHJfbGlzdC5lbXBsYWNlX2JhY2sgKHRlbXBfYnVmLmRhdGEgKCksIGNvdW50KTsKKyAJICBj b3VudCA9IDA7CistCSAgZW5kID0gdGVtcF9idWY7CisrCSAgZW5kID0gdGVtcF9idWYuZGF0YSAo KTsKKyAJfQorIAorICAgICAgIHsKK0BAIC0xMjIyLDcgKzEyNDIsNyBAQCBjb2xsZWN0aW9uX2xp c3Q6OnN0cmluZ2lmeSAoKQorICAgICAgIH0KKyAKKyAgICAgICBjb3VudCArPSBzdHJsZW4gKGVu ZCk7CistICAgICAgZW5kID0gdGVtcF9idWYgKyBjb3VudDsKKysgICAgICBlbmQgPSB0ZW1wX2J1 Zi5kYXRhICgpICsgY291bnQ7CisgICAgIH0KKyAKKyAgIGZvciAoaSA9IDA7IGkgPCBtX2FleHBy cy5zaXplICgpOyBpKyspCitAQCAtMTIzMCw5ICsxMjUwLDkgQEAgY29sbGVjdGlvbl9saXN0Ojpz dHJpbmdpZnkgKCkKKyAgICAgICBRVUlUOwkJCS8qIEFsbG93IHVzZXIgdG8gYmFpbCBvdXQgd2l0 aCBeQy4gICovCisgICAgICAgaWYgKChjb3VudCArIDEwICsgMiAqIG1fYWV4cHJzW2ldLT5sZW4p ID4gTUFYX0FHRU5UX0VYUFJfTEVOKQorIAl7CistCSAgc3RyX2xpc3QuZW1wbGFjZV9iYWNrICh0 ZW1wX2J1ZiwgY291bnQpOworKwkgIHN0cl9saXN0LmVtcGxhY2VfYmFjayAodGVtcF9idWYuZGF0 YSAoKSwgY291bnQpOworIAkgIGNvdW50ID0gMDsKKy0JICBlbmQgPSB0ZW1wX2J1ZjsKKysJICBl bmQgPSB0ZW1wX2J1Zi5kYXRhICgpOworIAl9CisgICAgICAgc3ByaW50ZiAoZW5kLCAiWCUwOFgs IiwgbV9hZXhwcnNbaV0tPmxlbik7CisgICAgICAgZW5kICs9IDEwOwkJLyogJ1gnICsgOCBoZXgg ZGlnaXRzICsgJywnICovCitAQCAtMTI0NCw5ICsxMjY0LDkgQEAgY29sbGVjdGlvbl9saXN0Ojpz dHJpbmdpZnkgKCkKKyAKKyAgIGlmIChjb3VudCAhPSAwKQorICAgICB7CistICAgICAgc3RyX2xp c3QuZW1wbGFjZV9iYWNrICh0ZW1wX2J1ZiwgY291bnQpOworKyAgICAgIHN0cl9saXN0LmVtcGxh Y2VfYmFjayAodGVtcF9idWYuZGF0YSAoKSwgY291bnQpOworICAgICAgIGNvdW50ID0gMDsKKy0g ICAgICBlbmQgPSB0ZW1wX2J1ZjsKKysgICAgICBlbmQgPSB0ZW1wX2J1Zi5kYXRhICgpOworICAg ICB9CisgCisgICByZXR1cm4gc3RyX2xpc3Q7CitkaWZmIC0tZ2l0IGEvZ2RiL3RyYWNlcG9pbnQu aCBiL2dkYi90cmFjZXBvaW50LmgKKy0tLSBhL2dkYi90cmFjZXBvaW50LmgKKysrKyBiL2dkYi90 cmFjZXBvaW50LmgKK0BAIC0yOTMsOCArMjkzLDkgQEAgcHVibGljOgorICAgeyByZXR1cm4gbV9j b21wdXRlZDsgfQorIAorIHByaXZhdGU6CistICAvKiByb29tIGZvciB1cCB0byAyNTYgcmVncyAq LworLSAgdW5zaWduZWQgY2hhciBtX3JlZ3NfbWFza1szMl07CisrICAvKiBXZSBuZWVkIHRoZSBh bGxvY2F0b3IgemVyby1pbml0aWFsaXplIHRoZSBtYXNrLCBzbyB3ZSBkb24ndCB1c2UKKysgICAg IGdkYjo6Ynl0ZV92ZWN0b3IuICAqLworKyAgc3RkOjp2ZWN0b3I8dW5zaWduZWQgY2hhcj4gbV9y ZWdzX21hc2s7CisgCisgICBzdGQ6OnZlY3RvcjxtZW1yYW5nZT4gbV9tZW1yYW5nZXM7CisgCgpk aWZmIC0tZ2l0IGEvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTZvZjcucGF0Y2ggYi9nZGIt cmhiejExODc1ODEtcG93ZXI4LXJlZ3MtNm9mNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5iMGE1ZTFmCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxMTg3NTgx LXBvd2VyOC1yZWdzLTZvZjcucGF0Y2gKQEAgLTAsMCArMSwxODcgQEAKK0Zyb20gRkVET1JBX1BB VENIRVMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYW4gS3JhdG9jaHZpbCA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KK0RhdGU6IFRodSwgOSBBdWcgMjAxOCAxNzoxODoxNSAr MDIwMAorU3ViamVjdDogZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdzLTZvZjcucGF0Y2gKKwor OzsgQWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9kaXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElC TSwgUkggQlogMTE4NzU4MSkuCisKK2NvbW1pdCAyOTY5NTZiZWZlZjM3MTFlZDQ1OGM3Y2JhODA0 MWZkZTBkYWI5YzUwCitBdXRob3I6IFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyA8cGVkcm9tZmNA bGludXguaWJtLmNvbT4KK0RhdGU6ICAgTW9uIEF1ZyA2IDE2OjI0OjU1IDIwMTggLTAzMDAKKwor ICAgIEFsbG93IGxhcmdlciByZWdibG9jayBzaXplcyB3aGVuIHNhdmluZyB0cmFjZWZpbGVzCisK KyAgICBUaGUgdHJhY2VmaWxlLmM6dHJhY2Vfc2F2ZSBmdW5jdGlvbiBhc3N1bWVzIHRyYWNlX3Jl Z2Jsb2NrX3NpemUgd29uJ3QKKyAgICBiZSBsYXJnZXIgdGhhbiB0aGUgTUFYX1RSQUNFX1VQTE9B RCBjb25zdGFudCwgdXNlZCB0byBzaXplIHRoZSBidWZmZXIKKyAgICB3aGljaCBob2xkcyB0cmFj ZSBkYXRhLiAgVGhpcyBjYW4gY2F1c2UgYnVmZmVyIG92ZXJydW5zIHdoZW4gdGhpcyBpcworICAg IG5vdCB0aGUgY2FzZS4gIFRoaXMgcGF0Y2ggY2hhbmdlcyB0aGlzIGZ1bmN0aW9uIHNvIHRoYXQg dGhlIGxhcmdlcgorICAgIHNpemUgaXMgdXNlZCB0byBzaXplIHRoZSBidWZmZXIuCisKKyAgICBn ZGIvQ2hhbmdlTG9nOgorICAgIDIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyAg PHBlZHJvbWZjQGxpbnV4LmlibS5jb20+CisKKyAgICAgICAgICAgICogdHJhY2VmaWxlLmM6IElu Y2x1ZGUgY29tbW9uL2J5dGUtdmVjdG9yLmguCisgICAgICAgICAgICAodHJhY2Vfc2F2ZSk6IENo YW5nZSB0eXBlIG9mIGJ1ZiB0byBnZGI6OmJ5dGVfdmVjdG9yLiAgSW5pdGlhbGl6ZQorICAgICAg ICAgICAgd2l0aCB0cmFjZV9yZWdibG9ja19zaXplIGlmIG5lZWRlZC4gIFVwZGF0ZSB1c2VzIG9m IGJ1Zi4KKworKzIwMTgtMDgtMDYgIFBlZHJvIEZyYW5jbyBkZSBDYXJ2YWxobyAgPHBlZHJvbWZj QGxpbnV4LmlibS5jb20+CisrCisrCSogdHJhY2VmaWxlLmM6IEluY2x1ZGUgY29tbW9uL2J5dGUt dmVjdG9yLmguCisrCSh0cmFjZV9zYXZlKTogQ2hhbmdlIHR5cGUgb2YgYnVmIHRvIGdkYjo6Ynl0 ZV92ZWN0b3IuICBJbml0aWFsaXplCisrCXdpdGggdHJhY2VfcmVnYmxvY2tfc2l6ZSBpZiBuZWVk ZWQuICBVcGRhdGUgdXNlcyBvZiBidWYuCisrCisgMjAxOC0wOC0wNiAgUGVkcm8gRnJhbmNvIGRl IENhcnZhbGhvICA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4KKworIAkqIHRyYWNlcG9pbnQuaCAo Y29sbGVjdGlvbl9saXN0KSA8bV9yZWdzX21hc2s+OiBDaGFuZ2UgdHlwZSB0bworCitkaWZmIC0t Z2l0IGEvZ2RiL3RyYWNlZmlsZS5jIGIvZ2RiL3RyYWNlZmlsZS5jCistLS0gYS9nZGIvdHJhY2Vm aWxlLmMKKysrKyBiL2dkYi90cmFjZWZpbGUuYworQEAgLTIyLDYgKzIyLDcgQEAKKyAjaW5jbHVk ZSAiY3RmLmgiCisgI2luY2x1ZGUgImV4ZWMuaCIKKyAjaW5jbHVkZSAicmVnY2FjaGUuaCIKKysj aW5jbHVkZSAiY29tbW9uL2J5dGUtdmVjdG9yLmgiCisgCisgLyogSGVscGVyIG1hY3Jvcy4gICov CisgCitAQCAtNjcsNyArNjgsNyBAQCB0cmFjZV9zYXZlIChjb25zdCBjaGFyICpmaWxlbmFtZSwg c3RydWN0IHRyYWNlX2ZpbGVfd3JpdGVyICp3cml0ZXIsCisgCisgICBVTE9OR0VTVCBvZmZzZXQg PSAwOworICNkZWZpbmUgTUFYX1RSQUNFX1VQTE9BRCAyMDAwCistICBnZGJfYnl0ZSBidWZbTUFY X1RSQUNFX1VQTE9BRF07CisrICBnZGI6OmJ5dGVfdmVjdG9yIGJ1ZiAoc3RkOjptYXggKE1BWF9U UkFDRV9VUExPQUQsIHRyYWNlX3JlZ2Jsb2NrX3NpemUpKTsKKyAgIGVudW0gYmZkX2VuZGlhbiBi eXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyICh0YXJnZXRfZ2RiYXJjaCAoKSk7CisgCisg ICAvKiBJZiB0aGUgdGFyZ2V0IGlzIHRvIHNhdmUgdGhlIGRhdGEgdG8gYSBmaWxlIG9uIGl0cyBv d24sIHRoZW4ganVzdAorQEAgLTE0NCw3ICsxNDUsNyBAQCB0cmFjZV9zYXZlIChjb25zdCBjaGFy ICpmaWxlbmFtZSwgc3RydWN0IHRyYWNlX2ZpbGVfd3JpdGVyICp3cml0ZXIsCisgCSAgLyogV2Ug YXNrIGZvciBiaWcgYmxvY2tzLCBpbiB0aGUgaG9wZXMgb2YgZWZmaWNpZW5jeSwgYnV0CisgCSAg ICAgd2lsbCB0YWtlIGxlc3MgaWYgdGhlIHRhcmdldCBoYXMgcGFja2V0IHNpemUgbGltaXRhdGlv bnMKKyAJICAgICBvciBzb21lIHN1Y2guICAqLworLQkgIGdvdHRlbiA9IHRhcmdldF9nZXRfcmF3 X3RyYWNlX2RhdGEgKGJ1Ziwgb2Zmc2V0LAorKwkgIGdvdHRlbiA9IHRhcmdldF9nZXRfcmF3X3Ry YWNlX2RhdGEgKGJ1Zi5kYXRhICgpLCBvZmZzZXQsCisgCQkJCQkgICAgICBNQVhfVFJBQ0VfVVBM T0FEKTsKKyAJICBpZiAoZ290dGVuIDwgMCkKKyAJICAgIGVycm9yIChfKCJGYWlsdXJlIHRvIGdl dCByZXF1ZXN0ZWQgdHJhY2UgYnVmZmVyIGRhdGEiKSk7CitAQCAtMTUyLDcgKzE1Myw3IEBAIHRy YWNlX3NhdmUgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgdHJhY2VfZmlsZV93cml0ZXIg KndyaXRlciwKKyAJICBpZiAoZ290dGVuID09IDApCisgCSAgICBicmVhazsKKyAKKy0JICB3cml0 ZXItPm9wcy0+d3JpdGVfdHJhY2VfYnVmZmVyICh3cml0ZXIsIGJ1ZiwgZ290dGVuKTsKKysJICB3 cml0ZXItPm9wcy0+d3JpdGVfdHJhY2VfYnVmZmVyICh3cml0ZXIsIGJ1Zi5kYXRhICgpLCBnb3R0 ZW4pOworIAorIAkgIG9mZnNldCArPSBnb3R0ZW47CisgCX0KK0BAIC0xNjMsNyArMTY0LDcgQEAg dHJhY2Vfc2F2ZSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB0cmFjZV9maWxlX3dyaXRl ciAqd3JpdGVyLAorIAkgIC8qIFBhcnNlIHRoZSB0cmFjZSBidWZmZXJzIGFjY29yZGluZyB0byBo b3cgZGF0YSBhcmUgc3RvcmVkCisgCSAgICAgaW4gdHJhY2UgYnVmZmVyIGluIEdEQnNlcnZlci4g ICovCisgCistCSAgZ290dGVuID0gdGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLCBvZmZz ZXQsIDYpOworKwkgIGdvdHRlbiA9IHRhcmdldF9nZXRfcmF3X3RyYWNlX2RhdGEgKGJ1Zi5kYXRh ICgpLCBvZmZzZXQsIDYpOworIAorIAkgIGlmIChnb3R0ZW4gPT0gMCkKKyAJICAgIGJyZWFrOwor QEAgLTE3MSwxMCArMTcyLDEwIEBAIHRyYWNlX3NhdmUgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBz dHJ1Y3QgdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwKKyAJICAvKiBSZWFkIHRoZSBmaXJzdCBz aXggYnl0ZXMgaW4sIHdoaWNoIGlzIHRoZSB0cmFjZXBvaW50CisgCSAgICAgbnVtYmVyIGFuZCB0 cmFjZSBmcmFtZSBzaXplLiAgKi8KKyAJICB0cF9udW0gPSAodWludDE2X3QpCistCSAgICBleHRy YWN0X3Vuc2lnbmVkX2ludGVnZXIgKCZidWZbMF0sIDIsIGJ5dGVfb3JkZXIpOworKwkgICAgZXh0 cmFjdF91bnNpZ25lZF9pbnRlZ2VyICgmKChidWYuZGF0YSAoKSlbMF0pLCAyLCBieXRlX29yZGVy KTsKKyAKKyAJICB0Zl9zaXplID0gKHVpbnQzMl90KQorLQkgICAgZXh0cmFjdF91bnNpZ25lZF9p bnRlZ2VyICgmYnVmWzJdLCA0LCBieXRlX29yZGVyKTsKKysJICAgIGV4dHJhY3RfdW5zaWduZWRf aW50ZWdlciAoJigoYnVmLmRhdGEgKCkpWzJdKSwgNCwgYnl0ZV9vcmRlcik7CisgCisgCSAgd3Jp dGVyLT5vcHMtPmZyYW1lX29wcy0+c3RhcnQgKHdyaXRlciwgdHBfbnVtKTsKKyAJICBnb3R0ZW4g PSA2OworQEAgLTE5Miw3ICsxOTMsOCBAQCB0cmFjZV9zYXZlIChjb25zdCBjaGFyICpmaWxlbmFt ZSwgc3RydWN0IHRyYWNlX2ZpbGVfd3JpdGVyICp3cml0ZXIsCisgCQkgIC8qIFdlJ2xsIGZldGNo IG9uZSBibG9jayBlYWNoIHRpbWUsIGluIG9yZGVyIHRvCisgCQkgICAgIGhhbmRsZSB0aGUgZXh0 cmVtZWx5IGxhcmdlICdNJyBibG9jay4gIFdlIGZpcnN0CisgCQkgICAgIGZldGNoIG9uZSBieXRl IHRvIGdldCB0aGUgdHlwZSBvZiB0aGUgYmxvY2suICAqLworLQkJICBnb3R0ZW4gPSB0YXJnZXRf Z2V0X3Jhd190cmFjZV9kYXRhIChidWYsIG9mZnNldCwgMSk7CisrCQkgIGdvdHRlbiA9IHRhcmdl dF9nZXRfcmF3X3RyYWNlX2RhdGEgKGJ1Zi5kYXRhICgpLAorKwkJCQkJCSAgICAgIG9mZnNldCwg MSk7CisgCQkgIGlmIChnb3R0ZW4gPCAxKQorIAkJICAgIGVycm9yIChfKCJGYWlsdXJlIHRvIGdl dCByZXF1ZXN0ZWQgdHJhY2UgYnVmZmVyIGRhdGEiKSk7CisgCitAQCAtMjA1LDEzICsyMDcsMTMg QEAgdHJhY2Vfc2F2ZSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB0cmFjZV9maWxlX3dy aXRlciAqd3JpdGVyLAorIAkJICAgIHsKKyAJCSAgICBjYXNlICdSJzoKKyAJCSAgICAgIGdvdHRl bgorLQkJCT0gdGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0YSAoYnVmLCBvZmZzZXQsCisrCQkJPSB0 YXJnZXRfZ2V0X3Jhd190cmFjZV9kYXRhIChidWYuZGF0YSAoKSwgb2Zmc2V0LAorIAkJCQkJCSAg ICAgdHJhY2VfcmVnYmxvY2tfc2l6ZSk7CisgCQkgICAgICBpZiAoZ290dGVuIDwgdHJhY2VfcmVn YmxvY2tfc2l6ZSkKKyAJCQllcnJvciAoXygiRmFpbHVyZSB0byBnZXQgcmVxdWVzdGVkIHRyYWNl IgorIAkJCQkgIiBidWZmZXIgZGF0YSIpKTsKKyAKKy0JCSAgICAgIFRSQUNFX1dSSVRFX1JfQkxP Q0sgKHdyaXRlciwgYnVmLAorKwkJICAgICAgVFJBQ0VfV1JJVEVfUl9CTE9DSyAod3JpdGVyLCBi dWYuZGF0YSAoKSwKKyAJCQkJCSAgIHRyYWNlX3JlZ2Jsb2NrX3NpemUpOworIAkJICAgICAgYnJl YWs7CisgCQkgICAgY2FzZSAnTSc6CitAQCAtMjIxLDcgKzIyMyw4IEBAIHRyYWNlX3NhdmUgKGNv bnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwKKyAJ CQlMT05HRVNUIHQ7CisgCQkJaW50IGo7CisgCistCQkJdCA9IHRhcmdldF9nZXRfcmF3X3RyYWNl X2RhdGEgKGJ1ZixvZmZzZXQsIDEwKTsKKysJCQl0ID0gdGFyZ2V0X2dldF9yYXdfdHJhY2VfZGF0 YSAoYnVmLmRhdGEgKCksCisrCQkJCQkJICAgICAgIG9mZnNldCwgMTApOworIAkJCWlmICh0IDwg MTApCisgCQkJICBlcnJvciAoXygiRmFpbHVyZSB0byBnZXQgcmVxdWVzdGVkIHRyYWNlIgorIAkJ CQkgICAiIGJ1ZmZlciBkYXRhIikpOworQEAgLTIzMSwxMCArMjM0LDEwIEBAIHRyYWNlX3NhdmUg KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBzdHJ1Y3QgdHJhY2VfZmlsZV93cml0ZXIgKndyaXRlciwK KyAKKyAJCQlnb3R0ZW4gPSAwOworIAkJCWFkZHIgPSAoVUxPTkdFU1QpCistCQkJICBleHRyYWN0 X3Vuc2lnbmVkX2ludGVnZXIgKGJ1ZiwgOCwKKysJCQkgIGV4dHJhY3RfdW5zaWduZWRfaW50ZWdl ciAoYnVmLmRhdGEgKCksIDgsCisgCQkJCQkJICAgIGJ5dGVfb3JkZXIpOworIAkJCW1sZW4gPSAo dW5zaWduZWQgc2hvcnQpCistCQkJICBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKCZidWZbOF0s IDIsCisrCQkJICBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgKCYoKGJ1Zi5kYXRhICgpKVs4XSks IDIsCisgCQkJCQkJICAgIGJ5dGVfb3JkZXIpOworIAorIAkJCVRSQUNFX1dSSVRFX01fQkxPQ0tf SEVBREVSICh3cml0ZXIsIGFkZHIsCitAQCAtMjUyLDE0ICsyNTUsMTUgQEAgdHJhY2Vfc2F2ZSAo Y29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCB0cmFjZV9maWxlX3dyaXRlciAqd3JpdGVyLAor IAkJCSAgICBlbHNlCisgCQkJICAgICAgcmVhZF9sZW5ndGggPSBtbGVuIC0gajsKKyAKKy0JCQkg ICAgdCA9IHRhcmdldF9nZXRfcmF3X3RyYWNlX2RhdGEgKGJ1ZiwKKysJCQkgICAgdCA9IHRhcmdl dF9nZXRfcmF3X3RyYWNlX2RhdGEgKGJ1Zi5kYXRhICgpLAorIAkJCQkJCQkgICBvZmZzZXQgKyBq LAorIAkJCQkJCQkgICByZWFkX2xlbmd0aCk7CisgCQkJICAgIGlmICh0IDwgcmVhZF9sZW5ndGgp CisgCQkJICAgICAgZXJyb3IgKF8oIkZhaWx1cmUgdG8gZ2V0IHJlcXVlc3RlZCIKKyAJCQkJICAg ICAgICIgdHJhY2UgYnVmZmVyIGRhdGEiKSk7CisgCistCQkJICAgIFRSQUNFX1dSSVRFX01fQkxP Q0tfTUVNT1JZICh3cml0ZXIsIGJ1ZiwKKysJCQkgICAgVFJBQ0VfV1JJVEVfTV9CTE9DS19NRU1P UlkgKHdyaXRlciwKKysJCQkJCQkJYnVmLmRhdGEgKCksCisgCQkJCQkJCXJlYWRfbGVuZ3RoKTsK KyAKKyAJCQkgICAgaiArPSByZWFkX2xlbmd0aDsKK0BAIC0yNzQsMTggKzI3OCwxOCBAQCB0cmFj ZV9zYXZlIChjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0IHRyYWNlX2ZpbGVfd3JpdGVyICp3 cml0ZXIsCisgCQkJTE9OR0VTVCB2YWw7CisgCisgCQkJZ290dGVuCistCQkJICA9IHRhcmdldF9n ZXRfcmF3X3RyYWNlX2RhdGEgKGJ1Ziwgb2Zmc2V0LAorLQkJCQkJCSAgICAgICAxMik7CisrCQkJ ICA9IHRhcmdldF9nZXRfcmF3X3RyYWNlX2RhdGEgKGJ1Zi5kYXRhICgpLAorKwkJCQkJCSAgICAg ICBvZmZzZXQsIDEyKTsKKyAJCQlpZiAoZ290dGVuIDwgMTIpCisgCQkJICBlcnJvciAoXygiRmFp bHVyZSB0byBnZXQgcmVxdWVzdGVkIgorIAkJCQkgICAiIHRyYWNlIGJ1ZmZlciBkYXRhIikpOwor IAorLQkJCXZudW0gID0gKGludCkgZXh0cmFjdF9zaWduZWRfaW50ZWdlciAoYnVmLAorKwkJCXZu dW0gID0gKGludCkgZXh0cmFjdF9zaWduZWRfaW50ZWdlciAoYnVmLmRhdGEgKCksCisgCQkJCQkJ CSAgICAgIDQsCisgCQkJCQkJCSAgICAgIGJ5dGVfb3JkZXIpOworIAkJCXZhbAorLQkJCSAgPSBl eHRyYWN0X3NpZ25lZF9pbnRlZ2VyICgmYnVmWzRdLCA4LAorLQkJCQkJCSAgICBieXRlX29yZGVy KTsKKysJCQkgID0gZXh0cmFjdF9zaWduZWRfaW50ZWdlciAoJigoYnVmLmRhdGEgKCkpWzRdKSwK KysJCQkJCQkgICAgOCwgYnl0ZV9vcmRlcik7CisgCisgCQkJVFJBQ0VfV1JJVEVfVl9CTE9DSyAo d3JpdGVyLCB2bnVtLCB2YWwpOworIAkJICAgICAgfQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTE4 NzU4MS1wb3dlcjgtcmVncy03b2Y3LnBhdGNoIGIvZ2RiLXJoYnoxMTg3NTgxLXBvd2VyOC1yZWdz LTdvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU4MjY3Mwot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTE4NzU4MS1wb3dlcjgtcmVncy03b2Y3LnBhdGNo CkBAIC0wLDAgKzEsMTI5IEBACitGcm9tIEZFRE9SQV9QQVRDSEVTIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ CitEYXRlOiBUaHUsIDkgQXVnIDIwMTggMTc6MTg6NDkgKzAyMDAKK1N1YmplY3Q6IGdkYi1yaGJ6 MTE4NzU4MS1wb3dlcjgtcmVncy03b2Y3LnBhdGNoCisKKzs7IEFkZCBHREIgc3VwcG9ydCB0byBh Y2Nlc3MvZGlzcGxheSBQT1dFUjggcmVnaXN0ZXJzIChJQk0sIFJIIEJaIDExODc1ODEpLgorCitj b21taXQgYTdmMjVhODRmNGNjMWRmNTI0OGM0NjM0NjMzN2YxOWEyYTY2YWY1YQorQXV0aG9yOiBT aW1vbiBNYXJjaGkgPHNpbW9uLm1hcmNoaUBlcmljc3Nvbi5jb20+CitEYXRlOiAgIE1vbiBBdWcg NiAxNjo1NDo0NyAyMDE4IC0wNDAwCisKKyAgICBGaXggY29tcGlsYXRpb24gZmFpbHVyZSBpbiBy ZW1vdGUuYworCisgICAgQSByZWNlbnQgcGF0Y2ggaW50cm9kdWNlZCBhIGZldyBvZiB0aGVzZToK KworICAgIC9ob21lL2VtYWlzaW4vc3JjL2JpbnV0aWxzLWdkYi9nZGIvcmVtb3RlLmM6MTI4NjI6 MTk6IGVycm9yOiBmb3JtYXQgbm90IGEgc3RyaW5nIGxpdGVyYWwgYW5kIG5vIGZvcm1hdCBhcmd1 bWVudHMgWy1XZXJyb3I9Zm9ybWF0LXNlY3VyaXR5XQorICAgICAgICAgZXJyb3IgKGVycl9tc2cp OworICAgICAgICAgICAgICAgICAgICAgICBeCisKKyAgICBGaXggdGhlbSBieSByZXBsYWNpbmcg dGhlIGNhbGwgdG8gZXJyb3Igd2l0aAorCisgICAgICBlcnJvciAoIiVzIiwgZXJyX21zZyk7CisK KyAgICBnZGIvQ2hhbmdlTG9nOgorCisgICAgICAgICAgICAqIHJlbW90ZS5jIChyZW1vdGVfdGFy Z2V0Ojpkb3dubG9hZF90cmFjZXBvaW50KTogRml4IGZvcm1hdAorICAgICAgICAgICAgc3RyaW5n IGVycm9ycy4KKworKzIwMTgtMDgtMDYgIFNpbW9uIE1hcmNoaSAgPHNpbW9uLm1hcmNoaUBlcmlj c3Nvbi5jb20+CisrCisrCSogcmVtb3RlLmMgKHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNl cG9pbnQpOiBGaXggZm9ybWF0CisrCXN0cmluZyBlcnJvcnMuCisrCisgMjAxOC0wOC0wNiAgUGVk cm8gRnJhbmNvIGRlIENhcnZhbGhvICA8cGVkcm9tZmNAbGludXguaWJtLmNvbT4KKworIAkqIHRy YWNlZmlsZS5jOiBJbmNsdWRlIGNvbW1vbi9ieXRlLXZlY3Rvci5oLgorCitkaWZmIC0tZ2l0IGEv Z2RiL3JlbW90ZS5jIGIvZ2RiL3JlbW90ZS5jCistLS0gYS9nZGIvcmVtb3RlLmMKKysrKyBiL2dk Yi9yZW1vdGUuYworQEAgLTEyODI2LDcgKzEyODI2LDcgQEAgcmVtb3RlX3RhcmdldDo6ZG93bmxv YWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCisgCQkgIHQtPnN0ZXBfY291 bnQsIHQtPnBhc3NfY291bnQpOworIAorICAgaWYgKHJldCA8IDAgfHwgcmV0ID49IGJ1Zi5zaXpl ICgpKQorLSAgICBlcnJvciAoZXJyX21zZyk7CisrICAgIGVycm9yICgiJXMiLCBlcnJfbXNnKTsK KyAKKyAgIC8qIEZhc3QgdHJhY2Vwb2ludHMgYXJlIG1vc3RseSBoYW5kbGVkIGJ5IHRoZSB0YXJn ZXQsIGJ1dCB3ZSBjYW4KKyAgICAgIHRlbGwgdGhlIHRhcmdldCBob3cgYmlnIG9mIGFuIGluc3Ry dWN0aW9uIGJsb2NrIHNob3VsZCBiZSBtb3ZlZAorQEAgLTEyODQ2LDcgKzEyODQ2LDcgQEAgcmVt b3RlX3RhcmdldDo6ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2Mp CisgCQkJICAgICAgZ2RiX2luc25fbGVuZ3RoIChsb2MtPmdkYmFyY2gsIHRwYWRkcikpOworIAor IAkgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9sZWZ0KQorLQkJZXJyb3IgKGVycl9t c2cpOworKwkJZXJyb3IgKCIlcyIsIGVycl9tc2cpOworIAkgICAgfQorIAkgIGVsc2UKKyAJICAg IC8qIElmIGl0IHBhc3NlZCB2YWxpZGF0aW9uIGF0IGRlZmluaXRpb24gYnV0IGZhaWxzIG5vdywK K0BAIC0xMjg3Nyw3ICsxMjg3Nyw3IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2FkX3RyYWNlcG9p bnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQorIAkJCSAgICAgIHNpemVfbGVmdCwgIjpTIik7 CisgCisgCSAgICAgIGlmIChyZXQgPCAwIHx8IHJldCA+PSBzaXplX2xlZnQpCistCQllcnJvciAo ZXJyX21zZyk7CisrCQllcnJvciAoIiVzIiwgZXJyX21zZyk7CisgCSAgICB9CisgCSAgZWxzZQor IAkgICAgZXJyb3IgKF8oIlN0YXRpYyB0cmFjZXBvaW50IG5vdCB2YWxpZCBkdXJpbmcgZG93bmxv YWQiKSk7CitAQCAtMTI5MDUsMTQgKzEyOTA1LDE0IEBAIHJlbW90ZV90YXJnZXQ6OmRvd25sb2Fk X3RyYWNlcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQorIAkJCSAgc2l6ZV9sZWZ0LCAi OlgleCwiLCBhZXhwci0+bGVuKTsKKyAKKyAJICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9s ZWZ0KQorLQkgICAgZXJyb3IgKGVycl9tc2cpOworKwkgICAgZXJyb3IgKCIlcyIsIGVycl9tc2cp OworIAorIAkgIHNpemVfbGVmdCA9IGJ1Zi5zaXplICgpIC0gc3RybGVuIChidWYuZGF0YSAoKSk7 CisgCisgCSAgLyogVHdvIGJ5dGVzIHRvIGVuY29kZSBlYWNoIGFleHByIGJ5dGUsIHBsdXMgdGhl IHRlcm1pbmF0aW5nCisgCSAgICAgbnVsbCBieXRlLiAgKi8KKyAJICBpZiAoYWV4cHItPmxlbiAq IDIgKyAxID4gc2l6ZV9sZWZ0KQorLQkgICAgZXJyb3IgKGVycl9tc2cpOworKwkgICAgZXJyb3Ig KCIlcyIsIGVycl9tc2cpOworIAorIAkgIHBrdCA9IGJ1Zi5kYXRhICgpICsgc3RybGVuIChidWYu ZGF0YSAoKSk7CisgCitAQCAtMTI5MzMsNyArMTI5MzMsNyBAQCByZW1vdGVfdGFyZ2V0Ojpkb3du bG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKKyAJCSAgICAgIHNpemVf bGVmdCwgIi0iKTsKKyAKKyAgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gc2l6ZV9sZWZ0KQor LQllcnJvciAoZXJyX21zZyk7CisrCWVycm9yICgiJXMiLCBlcnJfbXNnKTsKKyAgICAgfQorIAor ICAgcHV0cGt0IChidWYuZGF0YSAoKSk7CitAQCAtMTI5NTYsNyArMTI5NTYsNyBAQCByZW1vdGVf dGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKKyAJ CSAgICAgIGhhc19tb3JlID8gJy0nIDogMCk7CisgCisgICAgICAgaWYgKHJldCA8IDAgfHwgcmV0 ID49IGJ1Zi5zaXplICgpKQorLQllcnJvciAoZXJyX21zZyk7CisrCWVycm9yICgiJXMiLCBlcnJf bXNnKTsKKyAKKyAgICAgICBwdXRwa3QgKGJ1Zi5kYXRhICgpKTsKKyAgICAgICByZW1vdGVfZ2V0 X25vaXN5X3JlcGx5ICgpOworQEAgLTEyOTc5LDcgKzEyOTc5LDcgQEAgcmVtb3RlX3RhcmdldDo6 ZG93bmxvYWRfdHJhY2Vwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpsb2MpCisgCQkgICAgICBo YXNfbW9yZSA/ICItIiA6ICIiKTsKKyAKKyAgICAgICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVm LnNpemUgKCkpCistCWVycm9yIChlcnJfbXNnKTsKKysJZXJyb3IgKCIlcyIsIGVycl9tc2cpOwor IAorICAgICAgIHB1dHBrdCAoYnVmLmRhdGEgKCkpOworICAgICAgIHJlbW90ZV9nZXRfbm9pc3lf cmVwbHkgKCk7CitAQCAtMTI5OTQsNyArMTI5OTQsNyBAQCByZW1vdGVfdGFyZ2V0Ojpkb3dubG9h ZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKKyAJICByZXQgPSBzbnByaW50 ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVREUHNyYzoiKTsKKyAKKyAJICBpZiAocmV0 IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCistCSAgICBlcnJvciAoZXJyX21zZyk7CisrCSAg ICBlcnJvciAoIiVzIiwgZXJyX21zZyk7CisgCisgCSAgZW5jb2RlX3NvdXJjZV9zdHJpbmcgKGIt Pm51bWJlciwgbG9jLT5hZGRyZXNzLCAiYXQiLAorIAkJCQlldmVudF9sb2NhdGlvbl90b19zdHJp bmcgKGItPmxvY2F0aW9uLmdldCAoKSksCitAQCAtMTMwMTAsNyArMTMwMTAsNyBAQCByZW1vdGVf dGFyZ2V0Ojpkb3dubG9hZF90cmFjZXBvaW50IChzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYykKKyAJ ICByZXQgPSBzbnByaW50ZiAoYnVmLmRhdGEgKCksIGJ1Zi5zaXplICgpLCAiUVREUHNyYzoiKTsK KyAKKyAJICBpZiAocmV0IDwgMCB8fCByZXQgPj0gYnVmLnNpemUgKCkpCistCSAgICBlcnJvciAo ZXJyX21zZyk7CisrCSAgICBlcnJvciAoIiVzIiwgZXJyX21zZyk7CisgCisgCSAgZW5jb2RlX3Nv dXJjZV9zdHJpbmcgKGItPm51bWJlciwgbG9jLT5hZGRyZXNzLAorIAkJCQkiY29uZCIsIGItPmNv bmRfc3RyaW5nLAoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggNDI3MWNm Zi4uODA5YWVhZSAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTI2LDcg KzI2LDcgQEAgVmVyc2lvbjogOC4xLjkwLiV7c25hcHNyY30KIAogIyBUaGUgcmVsZWFzZSBhbHdh eXMgY29udGFpbnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMg YHVwc3RyZWFtJyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBl bmRlbmNpZXMgY29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiA0MyV7P2Rpc3R9 CitSZWxlYXNlOiA0NCV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGgg ZXhjZXB0aW9ucyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwr IGFuZCBMR1BMdjIrIGFuZCBMR1BMdjMrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4gYW5kIEdG REwKIEdyb3VwOiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTEwMjIsNiArMTAyMiw5IEBAIGZp CiAlZW5kaWYKIAogJWNoYW5nZWxvZworKiBUaHUgQXVnICA5IDIwMTggSmFuIEtyYXRvY2h2aWwg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gOC4xLjkwLjIwMTgwNzI3LTQ0LmZjMjkKKy0g QWRkIEdEQiBzdXBwb3J0IHRvIGFjY2Vzcy9kaXNwbGF5IFBPV0VSOCByZWdpc3RlcnMgKElCTSwg UkggQlogMTE4NzU4MSkuCisKICogVGh1IEF1ZyAgOSAyMDE4IFNlcmdpbyBEdXJpZ2FuIEp1bmlv ciA8c2VyZ2lvZGpAcmVkaGF0LmNvbT4gLSA4LjEuOTAuMjAxODA3MjctNDMuZmMyOQogLSBSZWVu YWJsZSBsaWJpcHQuCiAK