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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Add some new features Date: Sun, 31 May 2026 02:07:54 GMT Message-ID: <178019327428.1.7975090710454445502.rpms-ibus-ebbfbeae2909@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: ebbfbeae2909e68c3b6f8165302a2620fb55e45f ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiBhdXRvdG9vbAogICAgICAgICAg ICBDb21taXQgOiBlYmJmYmVhZTI5MDllNjhjM2I2ZjgxNjUzMDJhMjYyMGZiNTVlNDVmCiAgICAg ICAgICAgIEF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgogICAg ICAgICAgICBEYXRlICAgOiAyMDIyLTA3LTA3VDA4OjQ3OjMxKzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICsxOTQyLy0yMTMgaW4gMyBmaWxlKHMpCiAgICAgICAgICAgIFVSTCAgICA6IGh0dHBz Oi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvaWJ1cy9jL2ViYmZiZWFlMjkwOWU2OGMzYjZm ODE2NTMwMmEyNjIwZmI1NWU0NWY/YnJhbmNoPWF1dG90b29sCgogICAgICAgICAgICBMb2c6CiAg ICAgICAgICAgIEFkZCBzb21lIG5ldyBmZWF0dXJlcwoKLSBBZGQgSUJVU19DQVBfT1NLIHRvIElC dXNDYXBhYmlsaXRlCi0gVXBkYXRlIGlidXMgcmVzdGFydCBmb3IgLS1zZXJ2aWNlLWZpbGUgb3B0 aW9uCi0gVXBkYXRlIG1hbnBhZ2UgZm9yIGlidXMgaW0tbW9kdWxlIGNvbW1hbmQKLSBJbXBsZW1l bnQgbmV3IHByb2Nlc3Nfa2V5X2V2ZW50IGZvciBHVEs0Ci0gQWRkIGZvY3VzX2luX2lkKCkvZm9j dXNfb3V0X2lkKCkgY2xhc3MgbWV0aG9kcyBpbiBJQnVzRW5naW5lCgotLS0KZGlmZiAtLWdpdCBh L2lidXMtMTM4NTM0OS1zZWd2LWJ1cy1wcm94eS5wYXRjaCBiL2lidXMtMTM4NTM0OS1zZWd2LWJ1 cy1wcm94eS5wYXRjaAppbmRleCA3YTJiMTQwLi4xZjE2MDk0IDEwMDY0NAotLS0gYS9pYnVzLTEz ODUzNDktc2Vndi1idXMtcHJveHkucGF0Y2gKKysrIGIvaWJ1cy0xMzg1MzQ5LXNlZ3YtYnVzLXBy b3h5LnBhdGNoCkBAIC0xLDYgKzEsNiBAQAotRnJvbSBmZDY5Nzg0YzBlZDQ1ZmUxMWI4MDFmM2E1 NjMyMzE3MzU5MjA4OTZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSBjMDkzZmVjODNk YTI3N2M3OWYzMWUwOWIxYjkxMGQzNWJkNDEzNWM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQog RnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogTW9uLCAy MyBNYXkgMjAyMiAyMTo1MDoxNiArMDkwMAorRGF0ZTogU2F0LCAyNSBKdW4gMjAyMiAxOTo0Njow MSArMDkwMAogU3ViamVjdDogW1BBVENIXSBGaXggU0VHViBpbiBidXNfcGFuZWxfcHJveHlfZm9j dXNfaW4oKQogCiByaGJ6IzEzNTAyOTEgU0VHViBpbiBCVVNfSVNfQ09OTkVDVElPTihza2lwX2Nv bm5lY3Rpb24pIGluCkBAIC00MiwxMiArNDIsMTIgQEAgQlVHPXJoYnojMTc2Nzk3NgogQlVHPXJo YnojMTc5NzEyMAogLS0tCiAgYnVzL2RidXNpbXBsLmMgICAgICAgICB8IDQ3ICsrKysrKysrKysr KysrKysrKysrKysrKy0tLQotIGJ1cy9lbmdpbmVwcm94eS5jICAgICAgfCA1MSArKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLQorIGJ1cy9lbmdpbmVwcm94eS5jICAgICAgfCA0NCArKysrKysr KysrKysrKysrKysrLS0tLS0tCiAgY2xpZW50L3gxMS9tYWluLmMgICAgICB8ICA4ICsrKystCiAg c3JjL2lidXNidXMuYyAgICAgICAgICB8ICA2ICsrKysKICB1aS9ndGszL2V4dGVuc2lvbi52YWxh IHwgIDQgKysrCiAgdWkvZ3RrMy9zd2l0Y2hlci52YWxhICB8IDczICsrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLQotIDYgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlv bnMoKyksIDQ3IGRlbGV0aW9ucygtKQorIDYgZmlsZXMgY2hhbmdlZCwgMTM3IGluc2VydGlvbnMo KyksIDQ1IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvYnVzL2RidXNpbXBsLmMgYi9idXMv ZGJ1c2ltcGwuYwogaW5kZXggNTk3ODdhODAuLmFmMmZiZGUyIDEwMDY0NApAQCAtMTM4LDEwICsx MzgsMTAgQEAgaW5kZXggNTk3ODdhODAuLmFmMmZiZGUyIDEwMDY0NAogICAgICBpZiAoaW5jb21p bmcpIHsKICAgICAgICAgIC8qIGlzIGluY29taW5nIG1lc3NhZ2UgKi8KIGRpZmYgLS1naXQgYS9i dXMvZW5naW5lcHJveHkuYyBiL2J1cy9lbmdpbmVwcm94eS5jCi1pbmRleCAyZDk4OTk1Yy4uYmJi ZTU1MzIgMTAwNjQ0CitpbmRleCBmZDFmMzRmYi4uNTdjMDYxYmEgMTAwNjQ0CiAtLS0gYS9idXMv ZW5naW5lcHJveHkuYwogKysrIGIvYnVzL2VuZ2luZXByb3h5LmMKLUBAIC02NjAsMjAgKzY2MCwz MyBAQCBidXNfZW5naW5lX3Byb3h5X2dfc2lnbmFsIChHREJ1c1Byb3h5ICAqcHJveHksCitAQCAt NjkwLDEwICs2OTAsMTIgQEAgYnVzX2VuZ2luZV9wcm94eV9nX3NpZ25hbCAoR0RCdXNQcm94eSAg KnByb3h5LAogICAgICBnX3JldHVybl9pZl9yZWFjaGVkICgpOwogIH0KICAKQEAgLTE1MywxNiAr MTUzLDE0IEBAIGluZGV4IDJkOTg5OTVjLi5iYmJlNTUzMiAxMDA2NDQKICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR0RCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uLAogKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAqKmVycm9yKQogIHsKLSsgICAg R0RCdXNQcm94eUZsYWdzIGZsYWdzOwotKyAgICBCdXNFbmdpbmVQcm94eSAqZW5naW5lOwotKwor ICAgICBHREJ1c1Byb3h5RmxhZ3MgZmxhZ3M7CisgICAgIEJ1c0VuZ2luZVByb3h5ICplbmdpbmU7 CitAQCAtNzA0LDEyICs3MDYsMjAgQEAgYnVzX2VuZ2luZV9wcm94eV9uZXdfaW50ZXJuYWwgKGNv bnN0IGdjaGFyICAgICAqcGF0aCwKICAgICAgZ19hc3NlcnQgKHBhdGgpOwogICAgICBnX2Fzc2Vy dCAoSUJVU19JU19FTkdJTkVfREVTQyAoZGVzYykpOwogICAgICBnX2Fzc2VydCAoR19JU19EQlVT X0NPTk5FQ1RJT04gKGNvbm5lY3Rpb24pKTsKICsgICAgZ19hc3NlcnQgKGVycm9yICYmICplcnJv ciA9PSBOVUxMKTsKICAKLS0gICAgR0RCdXNQcm94eUZsYWdzIGZsYWdzID0gR19EQlVTX1BST1hZ X0ZMQUdTX0RPX05PVF9BVVRPX1NUQVJUOwotLSAgICBCdXNFbmdpbmVQcm94eSAqZW5naW5lID0K ICsgICAgLyogcmhieiMxNjAxNTc3IGVuZ2luZSA9PSBOVUxMIGlmIGNvbm5lY3Rpb24gaXMgY2xv c2VkLiAqLwogKyAgICBpZiAoZ19kYnVzX2Nvbm5lY3Rpb25faXNfY2xvc2VkIChjb25uZWN0aW9u KSkgewogKyAgICAgICAgKmVycm9yID0gZ19lcnJvcl9uZXcgKEdfREJVU19FUlJPUiwKQEAgLTE3 MCwxOSArMTY4LDE5IEBAIGluZGV4IDJkOTg5OTVjLi5iYmJlNTUzMiAxMDA2NDQKICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiBpcyBjbG9zZWQuIik7CiArICAgICAg ICByZXR1cm4gTlVMTDsKICsgICAgfQotKyAgICBmbGFncyA9IEdfREJVU19QUk9YWV9GTEFHU19E T19OT1RfQVVUT19TVEFSVDsKLSsgICAgZW5naW5lID0KLSAgICAgICAgIChCdXNFbmdpbmVQcm94 eSAqKSBnX2luaXRhYmxlX25ldyAoQlVTX1RZUEVfRU5HSU5FX1BST1hZLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImRlc2MiLCAgICAgICAgICAgICAgZGVzYywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImctY29ubmVjdGlvbiIsICAgICAgY29ubmVj dGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImctaW50 ZXJmYWNlLW5hbWUiLCAgSUJVU19JTlRFUkZBQ0VfRU5HSU5FLAotQEAgLTY4MSwxMiArNjk0LDE5 IEBAIGJ1c19lbmdpbmVfcHJveHlfbmV3X2ludGVybmFsIChjb25zdCBnY2hhciAgICAgKnBhdGgs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnLWRlZmF1bHQt dGltZW91dCIsIGdfZ2RidXNfdGltZW91dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImctZmxhZ3MiLCAgICAgICAgICAgZmxhZ3MsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICBmbGFncyA9IEdfREJV U19QUk9YWV9GTEFHU19ET19OT1RfQVVUT19TVEFSVDsKKyAgICAgZW5naW5lID0gKEJ1c0VuZ2lu ZVByb3h5ICopIGdfaW5pdGFibGVfbmV3ICgKKyAgICAgICAgICAgICBCVVNfVFlQRV9FTkdJTkVf UFJPWFksCisgICAgICAgICAgICAgTlVMTCwKKy0gICAgICAgICAgICBOVUxMLAorKyAgICAgICAg ICAgIGVycm9yLAorICAgICAgICAgICAgICJkZXNjIiwgICAgICAgICAgICAgIGRlc2MsCisgICAg ICAgICAgICAgImctY29ubmVjdGlvbiIsICAgICAgY29ubmVjdGlvbiwKKyAgICAgICAgICAgICAi Zy1pbnRlcmZhY2UtbmFtZSIsICBJQlVTX0lOVEVSRkFDRV9FTkdJTkUsCitAQCAtNzE3LDYgKzcy NywxMiBAQCBidXNfZW5naW5lX3Byb3h5X25ld19pbnRlcm5hbCAoY29uc3QgZ2NoYXIgICAgICpw YXRoLAorICAgICAgICAgICAgICJnLWRlZmF1bHQtdGltZW91dCIsIGdfZ2RidXNfdGltZW91dCwK KyAgICAgICAgICAgICAiZy1mbGFncyIsICAgICAgICAgICBmbGFncywKKyAgICAgICAgICAgICBO VUxMKTsKICsgICAgLyogRklYTUU6IHJoYnojMTYwMTU3NyAqLwogKyAgICBpZiAoIWVuZ2luZSkg ewogKyAgICAgICAgLyogc2hvdyBhYnJ0IGxvY2FsIHZhcmlhYmxlICovCkBAIC0xOTIsNiArMTkw LDcgQEAgaW5kZXggMmQ5ODk5NWMuLmJiYmU1NTMyIDEwMDY0NAogICAgICBjb25zdCBnY2hhciAq bGF5b3V0ID0gaWJ1c19lbmdpbmVfZGVzY19nZXRfbGF5b3V0IChkZXNjKTsKICAgICAgaWYgKGxh eW91dCAhPSBOVUxMICYmIGxheW91dFswXSAhPSAnXDAnKSB7CiAgICAgICAgICBlbmdpbmUtPmtl eW1hcCA9IGlidXNfa2V5bWFwX2dldCAobGF5b3V0KTsKK0BAIC03MzYsNiArNzUyLDcgQEAgYnVz X2VuZ2luZV9wcm94eV9uZXdfaW50ZXJuYWwgKGNvbnN0IGdjaGFyICAgICAqcGF0aCwKICAgICAg fQogICAgICByZXR1cm4gZW5naW5lOwogIH0KQEAgLTE5OSw3ICsxOTgsNyBAQCBpbmRleCAyZDk4 OTk1Yy4uYmJiZTU1MzIgMTAwNjQ0CiAgCiAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICBHVGFzayAg ICAgICAgICAgKnRhc2s7Ci1AQCAtNzQ4LDIzICs3NjgsMzAgQEAgY3JlYXRlX2VuZ2luZV9yZWFk eV9jYiAoQnVzRmFjdG9yeVByb3h5ICAgICpmYWN0b3J5LAorQEAgLTc5OCwyMyArODE1LDMwIEBA IGNyZWF0ZV9lbmdpbmVfcmVhZHlfY2IgKEJ1c0ZhY3RvcnlQcm94eSAgICAqZmFjdG9yeSwKICAg ICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgICAgICAgKnJlcywKICAgICAgICAg ICAgICAgICAgICAgICAgICBFbmdpbmVQcm94eU5ld0RhdGEgKmRhdGEpCiAgewpAQCAtNDAxLDUg KzQwMCw1IEBAIGluZGV4IGE0NTI5Yzg4Li4yOWE3MGRkNSAxMDA2NDQKICAjaWYgVkFMQV8wXzM0 CiAgICAgICAgICBzZWF0LnVuZ3JhYigpOwogLS0gCi0yLjM1LjEKKzIuMzUuMwogCgpkaWZmIC0t Z2l0IGEvaWJ1cy1IRUFELnBhdGNoIGIvaWJ1cy1IRUFELnBhdGNoCmluZGV4IDJlMDhlOGMuLmRj OWYxNTAgMTAwNjQ0Ci0tLSBhL2lidXMtSEVBRC5wYXRjaAorKysgYi9pYnVzLUhFQUQucGF0Y2gK QEAgLTE3ODIsOSArMTc4Miw4MyBAQCBpbmRleCAxMDFjMmIzZC4uNDUyYjE0YzggMTAwNjQ0CiAt LSAKIDIuMzUuMwogCi1Gcm9tIDc4Y2UwOTI5MTRlMDBkNmFmM2IyYjkwMjYzZGQ2ZjQxZGU3NTc0 MWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tIGI5NGYwYzFjZWE1ZDBlNDIzZmVmM2Jj YzEzYjIzZjIxMmYwNGM5MzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBmdWppd2Fy YXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBTYXQsIDI1IEp1biAyMDIyIDIw OjQ4OjUwICswOTAwCitEYXRlOiBUaHUsIDcgSnVsIDIwMjIgMDg6MTM6NTcgKzA5MDAKK1N1Ympl Y3Q6IFtQQVRDSF0gc3JjOiBBZGQgSUJVU19DQVBfT1NLIHRvIElCdXNDYXBhYmlsaXRlCisKK1Nv bWUgSU1FcycgYmVoYXZpb3IgaXMgZGlmZmVyZW50IGJldHdlZW4gdGhlIG9uLXNjcmVlbiBrZXli b2FyZCBhbmQKK3RoZSBkaXJlY3QgcGh5c2ljYWwga2V5Ym9hcmQgYW5kIHRoaXMgZmxhZyBpcyB1 c2VmdWwgZm9yIHRoZSBJTUVzLgorCitBbHNvIGZpeCBzcmMvaWJ1c2FjY2VsZ3JvdXAuYyBmb3Ig Z3RrZG9jLW1raHRtbC4KK0lmIHRoZSBBUEkgY29tbWVudCBvZiBJQnVzQ2FwYWJpbGl0ZSBpcyB1 cGRhdGVkLCBYTUwgJiBIVE1MIGZpbGVzCithcmUgcmVidWlsdCBhbmQgZ3RrLWRvYy0xLjMzLjIg bm8gbG9uZ2VyIGFjY2VwdHMgSFRNTCB0YWdzIGluCit0aGUgY29tbWVudHMuCistLS0KKyBzcmMv aWJ1c2FjY2VsZ3JvdXAuYyB8IDE0ICsrKysrKystLS0tLS0tCisgc3JjL2lidXN0eXBlcy5oICAg ICAgfCAgMiArKworIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9u cygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2lidXNhY2NlbGdyb3VwLmMgYi9zcmMvaWJ1c2FjY2Vs Z3JvdXAuYworaW5kZXggZWYyZDM5NzYuLmFlYzFjN2U0IDEwMDY0NAorLS0tIGEvc3JjL2lidXNh Y2NlbGdyb3VwLmMKKysrKyBiL3NyYy9pYnVzYWNjZWxncm91cC5jCitAQCAtMjY3LDE0ICsyNjcs MTQgQEAgaXNfa2V5Y29kZSAoY29uc3QgZ2NoYXIgKnN0cmluZykKKyAgKiAgICAgbW9kaWZpZXIg bWFzaywgJU5VTEwKKyAgKgorICAqIFBhcnNlcyBhIHN0cmluZyByZXByZXNlbnRpbmcgYW4gYWNj ZWxlcmF0b3IuIFRoZSBmb3JtYXQgbG9va3MgbGlrZQorLSAqIOKAnDxDb250cm9sPmHigJ0gb3Ig 4oCcPFNoaWZ0PjxBbHQ+RjHigJ0gb3Ig4oCcPFJlbGVhc2U+euKAnSAodGhlIGxhc3Qgb25lIGlz CistICogZm9yIGtleSByZWxlYXNlKS4KKysgKiDigJwmbHQ7Q29udHJvbCZndDth4oCdIG9yIOKA nCZsdDtTaGlmdCZndDsmbHQ7QWx0Jmd0O0Yx4oCdIG9yIOKAnCZsdDtSZWxlYXNlJWd0O3rigJ0K KysgKiAodGhlIGxhc3Qgb25lIGlzIGZvciBrZXkgcmVsZWFzZSkuCisgICoKKyAgKiBUaGUgcGFy c2VyIGlzIGZhaXJseSBsaWJlcmFsIGFuZCBhbGxvd3MgbG93ZXIgb3IgdXBwZXIgY2FzZSwgYW5k IGFsc28KKy0gKiBhYmJyZXZpYXRpb25zIHN1Y2ggYXMg4oCcPEN0bD7igJ0gYW5kIOKAnDxDdHJs PuKAnS4gS2V5IG5hbWVzIGFyZSBwYXJzZWQgdXNpbmcKKy0gKiBnZGtfa2V5dmFsX2Zyb21fbmFt ZSgpLiBGb3IgY2hhcmFjdGVyIGtleXMgdGhlIG5hbWUgaXMgbm90IHRoZSBzeW1ib2wsCistICog YnV0IHRoZSBsb3dlcmNhc2UgbmFtZSwgZS5nLiBvbmUgd291bGQgdXNlIOKAnDxDdHJsPm1pbnVz 4oCdIGluc3RlYWQgb2YKKy0gKiDigJw8Q3RybD4t4oCdLgorKyAqIGFiYnJldmlhdGlvbnMgc3Vj aCBhcyDigJwmbHQ7Q3RsJmd0O+KAnSBhbmQg4oCcJmx0O0N0cmwmZ3Q74oCdLiBLZXkgbmFtZXMg YXJlCisrICogcGFyc2VkIHVzaW5nIGdka19rZXl2YWxfZnJvbV9uYW1lKCkuIEZvciBjaGFyYWN0 ZXIga2V5cyB0aGUgbmFtZSBpcyBub3QgdGhlCisrICogc3ltYm9sLCBidXQgdGhlIGxvd2VyY2Fz ZSBuYW1lLCBlLmcuIG9uZSB3b3VsZCB1c2Ug4oCcJmx0O0N0cmwmZ3Q7bWludXPigJ0KKysgKiBp bnN0ZWFkIG9mIOKAnCZsdDtDdHJsJmd0Oy3igJ0uCisgICoKKyAgKiBJZiB0aGUgcGFyc2UgZmFp bHMsIEBhY2NlbGVyYXRvcl9rZXkgYW5kIEBhY2NlbGVyYXRvcl9tb2RzIHdpbGwKKyAgKiBiZSBz ZXQgdG8gMCAoemVybykuCitAQCAtNDAzLDcgKzQwMyw3IEBAIG91dDoKKyAgKgorICAqIENvbnZl cnRzIGFuIGFjY2VsZXJhdG9yIGtleXZhbCBhbmQgbW9kaWZpZXIgbWFzayBpbnRvIGEgc3RyaW5n CisgICogcGFyc2VhYmxlIGJ5IGd0a19hY2NlbGVyYXRvcl9wYXJzZSgpLiBGb3IgZXhhbXBsZSwg aWYgeW91IHBhc3MgaW4KKy0gKiAjSUJVU19LRVlfcSBhbmQgI0lCVVNfQ09OVFJPTF9NQVNLLCB0 aGlzIGZ1bmN0aW9uIHJldHVybnMg4oCcPENvbnRyb2w+ceKAnS4KKysgKiAjSUJVU19LRVlfcSBh bmQgI0lCVVNfQ09OVFJPTF9NQVNLLCB0aGlzIGZ1bmN0aW9uIHJldHVybnMg4oCcJmx0O0NvbnRy b2wmZ3Q7ceKAnS4KKyAgKgorICAqIElmIHlvdSBuZWVkIHRvIGRpc3BsYXkgYWNjZWxlcmF0b3Jz IGluIHRoZSB1c2VyIGludGVyZmFjZSwKKyAgKiBzZWUgZ3RrX2FjY2VsZXJhdG9yX2dldF9sYWJl bCgpLgorZGlmZiAtLWdpdCBhL3NyYy9pYnVzdHlwZXMuaCBiL3NyYy9pYnVzdHlwZXMuaAoraW5k ZXggOTkwNjU5YWMuLjYwYmNiOTJiIDEwMDY0NAorLS0tIGEvc3JjL2lidXN0eXBlcy5oCisrKysg Yi9zcmMvaWJ1c3R5cGVzLmgKK0BAIC0xMDgsNiArMTA4LDcgQEAgdHlwZWRlZiBlbnVtCisgICog QElCVVNfQ0FQX1BST1BFUlRZOiBVSSBpcyBjYXBhYmxlIHRvIGhhdmUgcHJvcGVydHkuCisgICog QElCVVNfQ0FQX1NVUlJPVU5ESU5HX1RFWFQ6IENsaWVudCBjYW4gcHJvdmlkZSBzdXJyb3VuZCB0 ZXh0LAorICAqICBvciBJTUUgY2FuIGhhbmRsZSBzdXJyb3VuZCB0ZXh0LgorKyAqIEBJQlVTX0NB UF9PU0s6IFVJIGlzIG93bmVkIGJ5IG9uLXNjcmVlbiBrZXlib2FyZC4KKyAgKgorICAqIENhcGFi aWxpdHkgZmxhZ3Mgb2YgVUkuCisgICovCitAQCAtMTE4LDYgKzExOSw3IEBAIHR5cGVkZWYgZW51 bSB7CisgICAgIElCVVNfQ0FQX0ZPQ1VTICAgICAgICAgICAgICA9IDEgPDwgMywKKyAgICAgSUJV U19DQVBfUFJPUEVSVFkgICAgICAgICAgID0gMSA8PCA0LAorICAgICBJQlVTX0NBUF9TVVJST1VO RElOR19URVhUICAgPSAxIDw8IDUsCisrICAgIElCVVNfQ0FQX09TSyAgICAgICAgICAgICAgICA9 IDEgPDwgNiwKKyB9IElCdXNDYXBhYmlsaXRlOworIAorIC8qKgorLS0gCisyLjM1LjMKKworRnJv bSA0ZTQ4ZTcyMzdkNzNkMjBmMDQyNjI2NWRiYjZiNjkyYjE0ODkxOTMyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgor RGF0ZTogVGh1LCA3IEp1bCAyMDIyIDA4OjIxOjI0ICswOTAwCiBTdWJqZWN0OiBbUEFUQ0hdIHRv b2xzOiBFbmFibGUgaWJ1cyByZXN0YXJ0IGluIEdOT01FIGRlc2t0b3AKIAogSWYgaWJ1cy1kYWVt b24gaXMgY2FsbGVkIHZpYSBzeXN0ZW1kLCBJQnVzIHJlc3RhcnQgQVBJIGNhbm5vdCByZXN0YXJ0 CkBAIC0xNzkyLDExICsxODY2LDEzIEBAIGlidXMtZGFlbW9uIGJ1dCBqdXN0IHRlcm1pbmF0ZXMg aXQuCiBOb3cgaWJ1cyByZXN0YXJ0IGNvbW1hbmQgY2hlY2tzIHRoZSBzeXN0ZW1kIGF2YWlhYmls aXR5IGFuZCByZXN0YXJ0CiBpYnVzLWRhZW1vbiB2aWEgc3lzdGVtZC4KIGlidXMgc3RhcnQgY29t bWFuZCBpcyBhbHNvIGFkZGVkIHRvIGxhdW5jaCBpYnVzLWRhZW1vbiB3aXRoIHN5c3RlbWQuCisK K0JVRz1odHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3Vlcy8yNDA3CiAtLS0KICB0b29s cy9NYWtlZmlsZS5hbSB8ICAgMyArLQogIHRvb2xzL2lidXMuMS5pbiAgIHwgIDMwICsrKysrLQot IHRvb2xzL21haW4udmFsYSAgIHwgMjMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDI1MiBpbnNlcnRpb25zKCspLCAxMiBk ZWxldGlvbnMoLSkKKyB0b29scy9tYWluLnZhbGEgICB8IDI2MSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tCisgMyBmaWxlcyBjaGFuZ2VkLCAzMzAgaW5zZXJ0 aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS90b29scy9NYWtlZmlsZS5h bSBiL3Rvb2xzL01ha2VmaWxlLmFtCiBpbmRleCA1YzE4ZDNkNi4uZTM4MGE5YWEgMTAwNjQ0CkBA IC0xODIwLDcgKzE4OTYsNyBAQCBpbmRleCA1YzE4ZDNkNi4uZTM4MGE5YWEgMTAwNjQ0CiAgCS0t cGtnPXBvc2l4IFwKICAJLS1wa2c9Y29uZmlnIFwKIGRpZmYgLS1naXQgYS90b29scy9pYnVzLjEu aW4gYi90b29scy9pYnVzLjEuaW4KLWluZGV4IDUyNWQ5NzJlLi4wYzE2YTBkMiAxMDA2NDQKK2lu ZGV4IDUyNWQ5NzJlLi5mZTFiNzE1NyAxMDA2NDQKIC0tLSBhL3Rvb2xzL2lidXMuMS5pbgogKysr IGIvdG9vbHMvaWJ1cy4xLmluCiBAQCAtMyw3ICszLDcgQEAKQEAgLTE4MjgsNyArMTkwNCw3IEBA IGluZGV4IDUyNWQ5NzJlLi4wYzE2YTBkMiAxMDA2NDQKICAuXCIgQ29weXJpZ2h0IChjKSBQZW5n IEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4sIDIwMTMuCiAgLlwiCiAtLlRIICJJQlVT IiAxICJNYXkgMjAxNyIgIkBWRVJTSU9OQCIgIlVzZXIgQ29tbWFuZHMiCi0rLlRIICJJQlVTIiAx ICJKdW4gMjAyMiIgIkBWRVJTSU9OQCIgIlVzZXIgQ29tbWFuZHMiCisrLlRIICJJQlVTIiAxICJK dWwgMjAyMiIgIkBWRVJTSU9OQCIgIlVzZXIgQ29tbWFuZHMiCiAgLlNIIE5BTUUKICAuQiBpYnVz CiAgXC0gY29tbWFuZCBsaW5lIHV0aWxpdHkgZm9yIGlidXMKQEAgLTE4NzksNyArMTk1NSw3IEBA IGluZGV4IDUyNWQ5NzJlLi4wYzE2YTBkMiAxMDA2NDQKICAuQiBcLVwtc3lzdGVtCiAgaXMgbm90 IGdpdmVuLgogZGlmZiAtLWdpdCBhL3Rvb2xzL21haW4udmFsYSBiL3Rvb2xzL21haW4udmFsYQot aW5kZXggMjZlN2ZkODguLjcxMTM0MzM0IDEwMDY0NAoraW5kZXggMjZlN2ZkODguLjQwN2VhZjc0 IDEwMDY0NAogLS0tIGEvdG9vbHMvbWFpbi52YWxhCiArKysgYi90b29scy9tYWluLnZhbGEKIEBA IC0zLDcgKzMsNyBAQApAQCAtMTg5MSw3ICsxOTY3LDcgQEAgaW5kZXggMjZlN2ZkODguLjcxMTM0 MzM0IDEwMDY0NAogICAqCiAgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLUBAIC0yNywxNyArMjcsMjIgQEAgcHJp dmF0ZSBjb25zdCBzdHJpbmcgSUJVU19TQ0hFTUFTX0dFTkVSQUxfSE9US0VZID0KK0BAIC0yNywx NyArMjcsMjMgQEAgcHJpdmF0ZSBjb25zdCBzdHJpbmcgSUJVU19TQ0hFTUFTX0dFTkVSQUxfSE9U S0VZID0KICBwcml2YXRlIGNvbnN0IHN0cmluZyBJQlVTX1NDSEVNQVNfUEFORUwgPSAib3JnLmZy ZWVkZXNrdG9wLmlidXMucGFuZWwiOwogIHByaXZhdGUgY29uc3Qgc3RyaW5nIElCVVNfU0NIRU1B U19QQU5FTF9FTU9KSSA9CiAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmlidXMucGFuZWwuZW1v amkiOwpAQCAtMTkwNSw2ICsxOTgxLDcgQEAgaW5kZXggMjZlN2ZkODguLjcxMTM0MzM0IDEwMDY0 NAogIHN0cmluZyBlbmdpbmVfaWQgPSBudWxsOwogK2Jvb2wgdmVyYm9zZSA9IGZhbHNlOwogK3N0 cmluZyBkYWVtb25fdHlwZSA9IG51bGw7Cisrc3RyaW5nIHN5c3RlbWRfc2VydmljZV9maWxlID0g bnVsbDsKICAKICBjbGFzcyBFbmdpbmVMaXN0IHsKICAgICAgcHVibGljIElCdXMuRW5naW5lRGVz Y1tdIGRhdGEgPSB7fTsKQEAgLTE5MTQsNyArMTk5MSw3IEBAIGluZGV4IDI2ZTdmZDg4Li43MTEz NDMzNCAxMDA2NDQKICBJQnVzLkJ1cz8gZ2V0X2J1cygpIHsKICAgICAgdmFyIGJ1cyA9IG5ldyBJ QnVzLkJ1cygpOwogICAgICBpZiAoIWJ1cy5pc19jb25uZWN0ZWQgKCkpCi1AQCAtNDUsNiArNTAs MTIzIEBAIElCdXMuQnVzPyBnZXRfYnVzKCkgeworQEAgLTQ1LDYgKzUxLDEzMSBAQCBJQnVzLkJ1 cz8gZ2V0X2J1cygpIHsKICAgICAgcmV0dXJuIGJ1czsKICB9CiAgCkBAIC0xOTMzLDE0ICsyMDEw LDE0IEBAIGluZGV4IDI2ZTdmZDg4Li43MTEzNDMzNCAxMDA2NDQKICtnZXRfaWJ1c19zeXN0ZW1k X29iamVjdF9wYXRoKEdMaWIuREJ1c0Nvbm5lY3Rpb24gY29ubmVjdGlvbiwKICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgICAgICAgICAgICAgICAgdmVyYm9zZSkgewogKyAgICBz dHJpbmcgb2JqZWN0X3BhdGggPSBudWxsOwotKyAgICBjb25zdCBzdHJpbmcgc2VydmljZV9maWxl ID0gU1lTVEVNRF9TRVNTSU9OX0dOT01FX0ZJTEU7CisrICAgIGFzc2VydChzeXN0ZW1kX3NlcnZp Y2VfZmlsZSAhPSBudWxsKTsKICsgICAgdHJ5IHsKICsgICAgICAgIHZhciB2YXJpYW50ID0gY29u bmVjdGlvbi5jYWxsX3N5bmMgKAogKyAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLnN5 c3RlbWQxIiwKICsgICAgICAgICAgICAgICAgIi9vcmcvZnJlZWRlc2t0b3Avc3lzdGVtZDEiLAog KyAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLnN5c3RlbWQxLk1hbmFnZXIiLAogKyAg ICAgICAgICAgICAgICAiR2V0VW5pdCIsCi0rICAgICAgICAgICAgICAgIG5ldyBHTGliLlZhcmlh bnQoIihzKSIsIHNlcnZpY2VfZmlsZSksCisrICAgICAgICAgICAgICAgIG5ldyBHTGliLlZhcmlh bnQoIihzKSIsIHN5c3RlbWRfc2VydmljZV9maWxlKSwKICsgICAgICAgICAgICAgICAgbmV3IEdM aWIuVmFyaWFudFR5cGUoIihvKSIpLAogKyAgICAgICAgICAgICAgICBHTGliLkRCdXNDYWxsRmxh Z3MuTk9ORSwKICsgICAgICAgICAgICAgICAgLTEsCkBAIC0xOTQ5LDEzICsyMDI2LDE0IEBAIGlu ZGV4IDI2ZTdmZDg4Li43MTEzNDMzNCAxMDA2NDQKICsgICAgICAgIGlmICh2ZXJib3NlKSB7CiAr ICAgICAgICAgICAgc3RkZXJyLnByaW50ZigiU3VjY2VlZCB0byBnZXQgYW4gb2JqZWN0IHBhdGgg XCIlc1wiIGZvciBJQnVzICIgKwogKyAgICAgICAgICAgICAgICAgICAgICAgICAgInN5c3RlbWQg c2VydmljZSBmaWxlIFwiJXNcIi5cbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpl Y3RfcGF0aCwgc2VydmljZV9maWxlKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVj dF9wYXRoLCBzeXN0ZW1kX3NlcnZpY2VfZmlsZSk7CiArICAgICAgICB9CiArICAgICAgICByZXR1 cm4gb2JqZWN0X3BhdGg7CiArICAgIH0gY2F0Y2ggKEdMaWIuRXJyb3IgZSkgewogKyAgICAgICAg aWYgKHZlcmJvc2UpIHsKICsgICAgICAgICAgICBzdGRlcnIucHJpbnRmKCJJQnVzIHN5c3RlbWQg c2VydmljZSBmaWxlIFwiJXNcIiBpcyBub3QgaW5zdGFsbGVkICIgKwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgImluIHlvdXIgc3lzdGVtOiAlc1xuIiwgc2VydmljZV9maWxlLCBlLm1lc3Nh Z2UpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgImluIHlvdXIgc3lzdGVtOiAlc1xuIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbWRfc2VydmljZV9maWxlLCBlLm1lc3Nh Z2UpOwogKyAgICAgICAgfQogKyAgICB9CiArICAgIHJldHVybiBudWxsOwpAQCAtMTk2OCwyNCAr MjA0NiwyOSBAQCBpbmRleCAyNmU3ZmQ4OC4uNzExMzQzMzQgMTAwNjQ0CiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCAgICAgICAgICAgICAgICB2ZXJib3NlKSB7CiArICAgIHN0 cmluZz8gc3RhdGUgPSBudWxsOwogKyAgICB0cnkgewotKyAgICAgICAgdmFyIHZhcmlhbnQgPSBj b25uZWN0aW9uLmNhbGxfc3luYyAoCi0rICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3Au c3lzdGVtZDEiLAotKyAgICAgICAgICAgICAgICBvYmplY3RfcGF0aCwKLSsgICAgICAgICAgICAg ICAgIm9yZy5mcmVlZGVza3RvcC5EQnVzLlByb3BlcnRpZXMiLAotKyAgICAgICAgICAgICAgICAi R2V0IiwKLSsgICAgICAgICAgICAgICAgbmV3IEdMaWIuVmFyaWFudCgiKHNzKSIsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5zeXN0ZW1kMS5Vbml0 IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWN0aXZlU3RhdGUiKSwKLSsg ICAgICAgICAgICAgICAgbmV3IEdMaWIuVmFyaWFudFR5cGUoIih2KSIpLAotKyAgICAgICAgICAg ICAgICBHTGliLkRCdXNDYWxsRmxhZ3MuTk9ORSwKLSsgICAgICAgICAgICAgICAgLTEsCi0rICAg ICAgICAgICAgICAgIG51bGwpOwotKyAgICAgICAgR0xpYi5WYXJpYW50IGNoaWxkID0gbnVsbDsK LSsgICAgICAgIHZhcmlhbnQuZ2V0KCIodikiLCByZWYgY2hpbGQpOwotKyAgICAgICAgc3RhdGUg PSBjaGlsZC5kdXBfc3RyaW5nKCk7Ci0rICAgICAgICBpZiAodmVyYm9zZSkgewotKyAgICAgICAg ICAgIHN0ZGVyci5wcmludGYoIlN1Y2NlZWQgdG8gZ2V0IHRoZSBzdGF0ZSBcIiVzXCIgZm9yIGFu IG9iamVjdCAiICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoIFwiJXNcIi5cbiIs IHN0YXRlLCBvYmplY3RfcGF0aCk7CisrICAgICAgICB3aGlsZSAodHJ1ZSkgeworKyAgICAgICAg ICAgIHZhciB2YXJpYW50ID0gY29ubmVjdGlvbi5jYWxsX3N5bmMgKAorKyAgICAgICAgICAgICAg ICAgICAgIm9yZy5mcmVlZGVza3RvcC5zeXN0ZW1kMSIsCisrICAgICAgICAgICAgICAgICAgICBv YmplY3RfcGF0aCwKKysgICAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AuREJ1cy5Q cm9wZXJ0aWVzIiwKKysgICAgICAgICAgICAgICAgICAgICJHZXQiLAorKyAgICAgICAgICAgICAg ICAgICAgbmV3IEdMaWIuVmFyaWFudCgiKHNzKSIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3Auc3lzdGVtZDEuVW5pdCIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3RpdmVTdGF0ZSIpLAorKyAgICAgICAgICAg ICAgICAgICAgbmV3IEdMaWIuVmFyaWFudFR5cGUoIih2KSIpLAorKyAgICAgICAgICAgICAgICAg ICAgR0xpYi5EQnVzQ2FsbEZsYWdzLk5PTkUsCisrICAgICAgICAgICAgICAgICAgICAtMSwKKysg ICAgICAgICAgICAgICAgICAgIG51bGwpOworKyAgICAgICAgICAgIEdMaWIuVmFyaWFudCBjaGls ZCA9IG51bGw7CisrICAgICAgICAgICAgdmFyaWFudC5nZXQoIih2KSIsIHJlZiBjaGlsZCk7Cisr ICAgICAgICAgICAgc3RhdGUgPSBjaGlsZC5kdXBfc3RyaW5nKCk7CisrICAgICAgICAgICAgaWYg KHZlcmJvc2UpIHsKKysgICAgICAgICAgICAgICAgc3RkZXJyLnByaW50Zigic3lzdGVtZCBzdGF0 ZSBpcyBcIiVzXCIgZm9yIGFuIG9iamVjdCAiICsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAicGF0aCBcIiVzXCIuXG4iLCBzdGF0ZSwgb2JqZWN0X3BhdGgpOworKyAgICAgICAgICAg IH0KKysgICAgICAgICAgICBpZiAoc3RhdGUgIT0gImFjdGl2YXRpbmciKQorKyAgICAgICAgICAg ICAgICBicmVhazsKKysgICAgICAgICAgICBQb3NpeC5zbGVlcCgxKTsKICsgICAgICAgIH0KICsg ICAgfSBjYXRjaCAoR0xpYi5FcnJvciBlKSB7CiArICAgICAgICBpZiAodmVyYm9zZSkKQEAgLTIw MDMsOCArMjA4Niw4IEBAIGluZGV4IDI2ZTdmZDg4Li43MTEzNDMzNCAxMDA2NDQKICsgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCAgICAgICAgICAgICAgICByZXN0YXJ0LAogKyAgICAgICAg ICAgICAgICAgICAgICAgICBib29sICAgICAgICAgICAgICAgIHZlcmJvc2UpIHsKICsgICAgc3Ry aW5nIG9iamVjdF9wYXRoID0gbnVsbDsKLSsgICAgY29uc3Qgc3RyaW5nIHNlcnZpY2VfZmlsZSA9 IFNZU1RFTURfU0VTU0lPTl9HTk9NRV9GSUxFOwogKyAgICBzdHJpbmcgbWV0aG9kID0gIlN0YXJ0 VW5pdCI7CisrICAgIGFzc2VydChzeXN0ZW1kX3NlcnZpY2VfZmlsZSAhPSBudWxsKTsKICsgICAg aWYgKHJlc3RhcnQpCiArICAgICAgICBtZXRob2QgPSAiUmVzdGFydFVuaXQiOwogKyAgICB0cnkg ewpAQCAtMjAxMyw3ICsyMDk2LDcgQEAgaW5kZXggMjZlN2ZkODguLjcxMTM0MzM0IDEwMDY0NAog KyAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9zeXN0ZW1kMSIsCiArICAgICAgICAg ICAgICAgICJvcmcuZnJlZWRlc2t0b3Auc3lzdGVtZDEuTWFuYWdlciIsCiArICAgICAgICAgICAg ICAgIG1ldGhvZCwKLSsgICAgICAgICAgICAgICAgbmV3IEdMaWIuVmFyaWFudCgiKHNzKSIsIHNl cnZpY2VfZmlsZSwgImZhaWwiKSwKKysgICAgICAgICAgICAgICAgbmV3IEdMaWIuVmFyaWFudCgi KHNzKSIsIHN5c3RlbWRfc2VydmljZV9maWxlLCAiZmFpbCIpLAogKyAgICAgICAgICAgICAgICBu ZXcgR0xpYi5WYXJpYW50VHlwZSgiKG8pIiksCiArICAgICAgICAgICAgICAgIEdMaWIuREJ1c0Nh bGxGbGFncy5OT05FLAogKyAgICAgICAgICAgICAgICAtMSwKQEAgLTIwMjIsMTMgKzIxMDUsMTUg QEAgaW5kZXggMjZlN2ZkODguLjcxMTM0MzM0IDEwMDY0NAogKyAgICAgICAgaWYgKHZlcmJvc2Up IHsKICsgICAgICAgICAgICBzdGRlcnIucHJpbnRmKCJTdWNjZWVkIHRvIHJlc3RhcnQgSUJ1cyBk YWVtb24gdmlhIElCdXMgc3lzdGVtZCAiICsKICsgICAgICAgICAgICAgICAgICAgICAgICAgICJz ZXJ2aWNlIGZpbGUgXCIlc1wiOiBcIiVzXCJcbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2aWNlX2ZpbGUsIG9iamVjdF9wYXRoKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAg IHN5c3RlbWRfc2VydmljZV9maWxlLCBvYmplY3RfcGF0aCk7CiArICAgICAgICB9CiArICAgICAg ICByZXR1cm4gdHJ1ZTsKICsgICAgfSBjYXRjaCAoR0xpYi5FcnJvciBlKSB7CiArICAgICAgICBp ZiAodmVyYm9zZSkgewotKyAgICAgICAgICAgIHN0ZGVyci5wcmludGYoIkZhaWxlZCB0byByZXN0 YXJ0IElCdXMgZGFlbW9uIHZpYSBJQnVzIHN5c3RlbWQgIiArCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAic2VydmljZSBmaWxlIFwiJXNcIjogJXNcbiIsIHNlcnZpY2VfZmlsZSwgZS5tZXNz YWdlKTsKKysgICAgICAgICAgICBzdGRlcnIucHJpbnRmKCJGYWlsZWQgdG8gJXMgSUJ1cyBkYWVt b24gdmlhIElCdXMgc3lzdGVtZCAiICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXJ2 aWNlIGZpbGUgXCIlc1wiOiAlc1xuIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Rh cnQgPyAicmVzdGFydCIgOiAic3RhcnQiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3lz dGVtZF9zZXJ2aWNlX2ZpbGUsIGUubWVzc2FnZSk7CiArICAgICAgICB9CiArICAgIH0KICsgICAg cmV0dXJuIGZhbHNlOwpAQCAtMjAzOCw3ICsyMTIzLDcgQEAgaW5kZXggMjZlN2ZkODguLjcxMTM0 MzM0IDEwMDY0NAogIGludCBsaXN0X2VuZ2luZShzdHJpbmdbXSBhcmd2KSB7CiAgICAgIGNvbnN0 IE9wdGlvbkVudHJ5W10gb3B0aW9ucyA9IHsKICAgICAgICAgIHsgIm5hbWUtb25seSIsIDAsIDAs IE9wdGlvbkFyZy5OT05FLCBvdXQgbmFtZV9vbmx5LAotQEAgLTk5LDYgKzIyMSw3IEBAIGludCBs aXN0X2VuZ2luZShzdHJpbmdbXSBhcmd2KSB7CitAQCAtOTksNiArMjMwLDcgQEAgaW50IGxpc3Rf ZW5naW5lKHN0cmluZ1tdIGFyZ3YpIHsKICAgICAgcmV0dXJuIFBvc2l4LkVYSVRfU1VDQ0VTUzsK ICB9CiAgCkBAIC0yMDQ2LDcgKzIxMzEsNyBAQCBpbmRleCAyNmU3ZmQ4OC4uNzExMzQzMzQgMTAw NjQ0CiAgcHJpdmF0ZSBpbnQgZXhlY19zZXR4a2JtYXAoSUJ1cy5FbmdpbmVEZXNjIGVuZ2luZSkg ewogICAgICBzdHJpbmcgbGF5b3V0ID0gZW5naW5lLmdldF9sYXlvdXQoKTsKICAgICAgc3RyaW5n IHZhcmlhbnQgPSBlbmdpbmUuZ2V0X2xheW91dF92YXJpYW50KCk7Ci1AQCAtMTQ5LDYgKzI3Miw3 IEBAIHByaXZhdGUgaW50IGV4ZWNfc2V0eGtibWFwKElCdXMuRW5naW5lRGVzYyBlbmdpbmUpIHsK K0BAIC0xNDksNiArMjgxLDcgQEAgcHJpdmF0ZSBpbnQgZXhlY19zZXR4a2JtYXAoSUJ1cy5Fbmdp bmVEZXNjIGVuZ2luZSkgewogICAgICByZXR1cm4gUG9zaXguRVhJVF9TVUNDRVNTOwogIH0KICAK QEAgLTIwNTQsNyArMjEzOSw3IEBAIGluZGV4IDI2ZTdmZDg4Li43MTEzNDMzNCAxMDA2NDQKICBp bnQgZ2V0X3NldF9lbmdpbmUoc3RyaW5nW10gYXJndikgewogICAgICB2YXIgYnVzID0gZ2V0X2J1 cygpOwogICAgICBzdHJpbmcgZW5naW5lID0gbnVsbDsKLUBAIC0xODIsMjAgKzMwNiwxMDAgQEAg aW50IGdldF9zZXRfZW5naW5lKHN0cmluZ1tdIGFyZ3YpIHsKK0BAIC0xODIsMjAgKzMxNSwxMjEg QEAgaW50IGdldF9zZXRfZW5naW5lKHN0cmluZ1tdIGFyZ3YpIHsKICAgICAgcmV0dXJuIFBvc2l4 LkVYSVRfU1VDQ0VTUzsKICB9CiAgCkBAIC0yMDc0LDYgKzIxNTksOSBAQCBpbmRleCAyNmU3ZmQ4 OC4uNzExMzQzMzQgMTAwNjQ0CiArICAgICAgICB7ICJ0eXBlIiwgMCwgMCwgT3B0aW9uQXJnLlNU UklORywgb3V0IGRhZW1vbl90eXBlLAogKyAgICAgICAgICBOXygiU3RhcnQgb3IgcmVzdGFydCBk YWVtb24gd2l0aCBcImRpcmVjdFwiIG9yIFwic3lzdGVtZFwiIFRZUEUuIiksCiArICAgICAgICAg ICJUWVBFIiB9LAorKyAgICAgICAgeyAic2VydmljZS1maWxlIiwgMCwgMCwgT3B0aW9uQXJnLlNU UklORywgb3V0IHN5c3RlbWRfc2VydmljZV9maWxlLAorKyAgICAgICAgICBOXygiU3RhcnQgb3Ig cmVzdGFydCBkYWVtb24gd2l0aCBTWVNURU1EX1NFUlZJQ0UgZmlsZS4iKSwKKysgICAgICAgICAg IlNZU1RFTURfU0VSVklDRSIgfSwKICsgICAgICAgIHsgInZlcmJvc2UiLCAwLCAwLCBPcHRpb25B cmcuTk9ORSwgb3V0IHZlcmJvc2UsCiArICAgICAgICAgIE5fKCJTaG93IGRlYnVnIG1lc3NhZ2Vz LiIpLCBudWxsIH0sCiArICAgICAgICB7IG51bGwgfQpAQCAtMjA5NCw2ICsyMTgyLDggQEAgaW5k ZXggMjZlN2ZkODguLjcxMTM0MzM0IDEwMDY0NAogKyAgICAgICAgc3RkZXJyLnByaW50ZigidHlw ZSBhcmd1bWVudCBtdXN0IGJlIFwiZGlyZWN0XCIgb3IgXCJzeXN0ZW1kXCJcbiIpOwogKyAgICAg ICAgcmV0dXJuIFBvc2l4LkVYSVRfRkFJTFVSRTsKICsgICAgfQorKyAgICBpZiAoc3lzdGVtZF9z ZXJ2aWNlX2ZpbGUgPT0gbnVsbCkKKysgICAgICAgIHN5c3RlbWRfc2VydmljZV9maWxlID0gU1lT VEVNRF9TRVNTSU9OX0dOT01FX0ZJTEU7CiArCiArICAgIGRvIHsKICsgICAgICAgIGlmIChkYWVt b25fdHlwZSA9PSAiZGlyZWN0IikKQEAgLTIxMDEsMTkgKzIxOTEsMzUgQEAgaW5kZXggMjZlN2Zk ODguLjcxMTM0MzM0IDEwMDY0NAogKyAgICAgICAgR0xpYi5EQnVzQ29ubmVjdGlvbj8gY29ubmVj dGlvbiA9IGdldF9zZXNzaW9uX2J1cyh2ZXJib3NlKTsKICsgICAgICAgIGlmIChjb25uZWN0aW9u ID09IG51bGwpCiArICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICBzdHJpbmc/IG9iamVjdF9w YXRoID0gZ2V0X2lidXNfc3lzdGVtZF9vYmplY3RfcGF0aChjb25uZWN0aW9uLCB2ZXJib3NlKTsK KysgICAgICAgIHN0cmluZz8gb2JqZWN0X3BhdGggPSBudWxsOworKyAgICAgICAgaWYgKHJlc3Rh cnQpIHsKKysgICAgICAgICAgICBvYmplY3RfcGF0aCA9IGdldF9pYnVzX3N5c3RlbWRfb2JqZWN0 X3BhdGgoY29ubmVjdGlvbiwgdmVyYm9zZSk7CisrICAgICAgICAgICAgaWYgKG9iamVjdF9wYXRo ID09IG51bGwpCisrICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgIGlmICghaXNf cnVubmluZ19kYWVtb25fdmlhX3N5c3RlbWQoY29ubmVjdGlvbiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdF9wYXRoLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZSkpIHsKKysgICAgICAg ICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgICAgaWYg KCFzdGFydF9kYWVtb25fdmlhX3N5c3RlbWQoY29ubmVjdGlvbiwgcmVzdGFydCwgdmVyYm9zZSkp CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAvLyBEbyBub3QgY2hlY2sgdGhlIHN5c3Rl bWQgc3RhdGUgaW4gY2FzZSBvZiByZXN0YXJ0IGJlY2F1c2UKKysgICAgICAgIC8vIHRoZSBzeXN0 ZW1kIGZpbGUgdmFsaWRhdGlvbiBpcyBhbHJlYWR5IGRvbmUgYW5kIGFsc28gc3RvcHBpbmcKKysg ICAgICAgIC8vIGRhZW1vbiBhbmQgc3RhcnRpbmcgZGFlbW9uIHRha2UgdGltZSBhbmQgdGhlIHN0 YXRlIGNvdWxkIGJlCisrICAgICAgICAvLyAiaW5hY3RpdmUiIHdpdGggdGhlIHRpbWUgbGFnLgor KyAgICAgICAgaWYgKHJlc3RhcnQpCisrICAgICAgICAgICAgcmV0dXJuIFBvc2l4LkVYSVRfU1VD Q0VTUzsKKysgICAgICAgIG9iamVjdF9wYXRoID0gZ2V0X2lidXNfc3lzdGVtZF9vYmplY3RfcGF0 aChjb25uZWN0aW9uLCB2ZXJib3NlKTsKICsgICAgICAgIGlmIChvYmplY3RfcGF0aCA9PSBudWxs KQogKyAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgaWYgKHJlc3RhcnQgJiYKLSsgICAgICAg ICAgICAhaXNfcnVubmluZ19kYWVtb25fdmlhX3N5c3RlbWQoY29ubmVjdGlvbiwgb2JqZWN0X3Bh dGgsIHZlcmJvc2UpKQorKyAgICAgICAgaWYgKCFpc19ydW5uaW5nX2RhZW1vbl92aWFfc3lzdGVt ZChjb25uZWN0aW9uLCBvYmplY3RfcGF0aCwgdmVyYm9zZSkpCiArICAgICAgICAgICAgYnJlYWs7 Ci0rICAgICAgICBpZiAoc3RhcnRfZGFlbW9uX3ZpYV9zeXN0ZW1kKGNvbm5lY3Rpb24sIHJlc3Rh cnQsIHZlcmJvc2UpKQotKyAgICAgICAgICAgIHJldHVybiBQb3NpeC5FWElUX1NVQ0NFU1M7Ci0g ICAgICAgICByZXR1cm4gUG9zaXguRVhJVF9GQUlMVVJFOworKyAgICAgICAgcmV0dXJuIFBvc2l4 LkVYSVRfU1VDQ0VTUzsKICsgICAgfSB3aGlsZSAoZmFsc2UpOwogKwogKyAgICBpZiAoZGFlbW9u X3R5cGUgPT0gInN5c3RlbWQiKQotKyAgICAgICAgcmV0dXJuIFBvc2l4LkVYSVRfRkFJTFVSRTsK KyAgICAgICAgIHJldHVybiBQb3NpeC5FWElUX0ZBSUxVUkU7CiArICAgIGlmIChyZXN0YXJ0KSB7 CiArICAgICAgICB2YXIgYnVzID0gZ2V0X2J1cygpOwogKyAgICAgICAgaWYgKGJ1cyA9PSBudWxs KSB7CkBAIC0yMTYwLDcgKzIyNjYsNyBAQCBpbmRleCAyNmU3ZmQ4OC4uNzExMzQzMzQgMTAwNjQ0 CiAgaW50IGV4aXRfZGFlbW9uKHN0cmluZ1tdIGFyZ3YpIHsKICAgICAgdmFyIGJ1cyA9IGdldF9i dXMoKTsKICAgICAgaWYgKGJ1cyA9PSBudWxsKSB7Ci1AQCAtMjA2LDExICs0MTAsMTMgQEAgaW50 IGV4aXRfZGFlbW9uKHN0cmluZ1tdIGFyZ3YpIHsKK0BAIC0yMDYsMTEgKzQ0MCwxMyBAQCBpbnQg ZXhpdF9kYWVtb24oc3RyaW5nW10gYXJndikgewogICAgICByZXR1cm4gUG9zaXguRVhJVF9TVUND RVNTOwogIH0KICAKQEAgLTIxNzQsNyArMjI4MCw3IEBAIGluZGV4IDI2ZTdmZDg4Li43MTEzNDMz NCAxMDA2NDQKICBpbnQgcmVhZF9jYWNoZSAoc3RyaW5nW10gYXJndikgewogICAgICBjb25zdCBP cHRpb25FbnRyeVtdIG9wdGlvbnMgPSB7CiAgICAgICAgICB7ICJzeXN0ZW0iLCAwLCAwLCBPcHRp b25BcmcuTk9ORSwgb3V0IGlzX3N5c3RlbSwKLUBAIC0yNTEsNiArNDU3LDcgQEAgaW50IHJlYWRf Y2FjaGUgKHN0cmluZ1tdIGFyZ3YpIHsKK0BAIC0yNTEsNiArNDg3LDcgQEAgaW50IHJlYWRfY2Fj aGUgKHN0cmluZ1tdIGFyZ3YpIHsKICAgICAgcmV0dXJuIFBvc2l4LkVYSVRfU1VDQ0VTUzsKICB9 CiAgCkBAIC0yMTgyLDcgKzIyODgsNyBAQCBpbmRleCAyNmU3ZmQ4OC4uNzExMzQzMzQgMTAwNjQ0 CiAgaW50IHdyaXRlX2NhY2hlIChzdHJpbmdbXSBhcmd2KSB7CiAgICAgIGNvbnN0IE9wdGlvbkVu dHJ5W10gb3B0aW9ucyA9IHsKICAgICAgICAgIHsgInN5c3RlbSIsIDAsIDAsIE9wdGlvbkFyZy5O T05FLCBvdXQgaXNfc3lzdGVtLAotQEAgLTI4MywxMiArNDkwLDE0IEBAIGludCB3cml0ZV9jYWNo ZSAoc3RyaW5nW10gYXJndikgeworQEAgLTI4MywxMiArNTIwLDE0IEBAIGludCB3cml0ZV9jYWNo ZSAoc3RyaW5nW10gYXJndikgewogICAgICAgICAgICAgIFBvc2l4LkVYSVRfU1VDQ0VTUyA6IFBv c2l4LkVYSVRfRkFJTFVSRTsKICB9CiAgCkBAIC0yMTk3LDcgKzIzMDMsNyBAQCBpbmRleCAyNmU3 ZmQ4OC4uNzExMzQzMzQgMTAwNjQ0CiAgcHJpdmF0ZSBpbnQgcmVhZF9jb25maWdfb3B0aW9ucyhz dHJpbmdbXSBhcmd2KSB7CiAgICAgIGNvbnN0IE9wdGlvbkVudHJ5W10gb3B0aW9ucyA9IHsKICAg ICAgICAgIHsgImVuZ2luZS1pZCIsIDAsIDAsIE9wdGlvbkFyZy5TVFJJTkcsIG91dCBlbmdpbmVf aWQsCi1AQCAtMzA5LDYgKzUxOCw3IEBAIHByaXZhdGUgaW50IHJlYWRfY29uZmlnX29wdGlvbnMo c3RyaW5nW10gYXJndikgeworQEAgLTMwOSw2ICs1NDgsNyBAQCBwcml2YXRlIGludCByZWFkX2Nv bmZpZ19vcHRpb25zKHN0cmluZ1tdIGFyZ3YpIHsKICAgICAgcmV0dXJuIFBvc2l4LkVYSVRfU1VD Q0VTUzsKICB9CiAgCkBAIC0yMjA1LDcgKzIzMTEsNyBAQCBpbmRleCAyNmU3ZmQ4OC4uNzExMzQz MzQgMTAwNjQ0CiAgcHJpdmF0ZSBHTGliLlNMaXN0PHN0cmluZz4gZ2V0X2lidXNfc2NoZW1hcygp IHsKICAgICAgc3RyaW5nW10gaWRzID0ge307CiAgICAgIGlmIChlbmdpbmVfaWQgIT0gbnVsbCkg ewotQEAgLTM0Miw2ICs1NTIsNyBAQCBwcml2YXRlIEdMaWIuU0xpc3Q8c3RyaW5nPiBnZXRfaWJ1 c19zY2hlbWFzKCkgeworQEAgLTM0Miw2ICs1ODIsNyBAQCBwcml2YXRlIEdMaWIuU0xpc3Q8c3Ry aW5nPiBnZXRfaWJ1c19zY2hlbWFzKCkgewogICAgICByZXR1cm4gaWJ1c19zY2hlbWFzOwogIH0K ICAKQEAgLTIyMTMsNyArMjMxOSw3IEBAIGluZGV4IDI2ZTdmZDg4Li43MTEzNDMzNCAxMDA2NDQK ICBpbnQgcmVhZF9jb25maWcoc3RyaW5nW10gYXJndikgewogICAgICBpZiAocmVhZF9jb25maWdf b3B0aW9ucyhhcmd2KSA9PSBQb3NpeC5FWElUX0ZBSUxVUkUpCiAgICAgICAgICByZXR1cm4gUG9z aXguRVhJVF9GQUlMVVJFOwotQEAgLTM3MCw2ICs1ODEsNyBAQCBpbnQgcmVhZF9jb25maWcoc3Ry aW5nW10gYXJndikgeworQEAgLTM3MCw2ICs2MTEsNyBAQCBpbnQgcmVhZF9jb25maWcoc3RyaW5n W10gYXJndikgewogICAgICByZXR1cm4gUG9zaXguRVhJVF9TVUNDRVNTOwogIH0KICAKQEAgLTIy MjEsNyArMjMyNyw3IEBAIGluZGV4IDI2ZTdmZDg4Li43MTEzNDMzNCAxMDA2NDQKICBpbnQgcmVz ZXRfY29uZmlnKHN0cmluZ1tdIGFyZ3YpIHsKICAgICAgaWYgKHJlYWRfY29uZmlnX29wdGlvbnMo YXJndikgPT0gUG9zaXguRVhJVF9GQUlMVVJFKQogICAgICAgICAgcmV0dXJuIFBvc2l4LkVYSVRf RkFJTFVSRTsKLUBAIC00MDEsNiArNjEzLDcgQEAgaW50IHJlc2V0X2NvbmZpZyhzdHJpbmdbXSBh cmd2KSB7CitAQCAtNDAxLDYgKzY0Myw3IEBAIGludCByZXNldF9jb25maWcoc3RyaW5nW10gYXJn dikgewogICAgICByZXR1cm4gUG9zaXguRVhJVF9TVUNDRVNTOwogIH0KICAKQEAgLTIyMjksNyAr MjMzNSw3IEBAIGluZGV4IDI2ZTdmZDg4Li43MTEzNDMzNCAxMDA2NDQKICAjaWYgRU1PSklfRElD VAogIGludCBlbW9qaV9kaWFsb2coc3RyaW5nW10gYXJndikgewogICAgICBzdHJpbmcgY21kID0g Q29uZmlnLkxJQkVYRUNESVIgKyAiL2lidXMtdWktZW1vamllciI7Ci1AQCAtNDI3LDExICs2NDAs MTMgQEAgaW50IGVtb2ppX2RpYWxvZyhzdHJpbmdbXSBhcmd2KSB7CitAQCAtNDI3LDExICs2NzAs MTMgQEAgaW50IGVtb2ppX2RpYWxvZyhzdHJpbmdbXSBhcmd2KSB7CiAgfQogICNlbmRpZgogIApA QCAtMjI0Myw3ICsyMzQ5LDcgQEAgaW5kZXggMjZlN2ZkODguLjcxMTM0MzM0IDEwMDY0NAogIGRl bGVnYXRlIGludCBFbnRyeUZ1bmMoc3RyaW5nW10gYXJndik7CiAgCiAgc3RydWN0IENvbW1hbmRF bnRyeSB7Ci1AQCAtNDQwLDEyICs2NTUsMTQgQEAgc3RydWN0IENvbW1hbmRFbnRyeSB7CitAQCAt NDQwLDEyICs2ODUsMTQgQEAgc3RydWN0IENvbW1hbmRFbnRyeSB7CiAgICAgIHVub3duZWQgRW50 cnlGdW5jIGVudHJ5OwogIH0KICAKQEAgLTIyNTgsNyArMjM2NCw3IEBAIGluZGV4IDI2ZTdmZDg4 Li43MTEzNDMzNCAxMDA2NDQKICAgICAgeyAidmVyc2lvbiIsIE5fKCJTaG93IHZlcnNpb24iKSwg cHJpbnRfdmVyc2lvbiB9LAogICAgICB7ICJyZWFkLWNhY2hlIiwgTl8oIlNob3cgdGhlIGNvbnRl bnQgb2YgcmVnaXN0cnkgY2FjaGUiKSwgcmVhZF9jYWNoZSB9LAogICAgICB7ICJ3cml0ZS1jYWNo ZSIsIE5fKCJDcmVhdGUgcmVnaXN0cnkgY2FjaGUiKSwgd3JpdGVfY2FjaGUgfSwKLUBAIC00NjAs NiArNjc3LDcgQEAgY29uc3QgQ29tbWFuZEVudHJ5IGNvbW1hbmRzW10gID0geworQEAgLTQ2MCw2 ICs3MDcsNyBAQCBjb25zdCBDb21tYW5kRW50cnkgY29tbWFuZHNbXSAgPSB7CiAgCiAgc3RhdGlj IHN0cmluZyBwcm9ncmFtX25hbWU7CiAgCkBAIC0yMjY2LDcgKzIzNzIsNyBAQCBpbmRleCAyNmU3 ZmQ4OC4uNzExMzQzMzQgMTAwNjQ0CiAgdm9pZCBwcmludF91c2FnZShGaWxlU3RyZWFtIHN0cmVh bSkgewogICAgICBzdHJlYW0ucHJpbnRmKF8oIlVzYWdlOiAlcyBDT01NQU5EIFtPUFRJT04uLi5d XG5cbiIpLCBwcm9ncmFtX25hbWUpOwogICAgICBzdHJlYW0ucHJpbnRmKF8oIkNvbW1hbmRzOlxu IikpOwotQEAgLTQ3MCw2ICs2ODgsNyBAQCB2b2lkIHByaW50X3VzYWdlKEZpbGVTdHJlYW0gc3Ry ZWFtKSB7CitAQCAtNDcwLDYgKzcxOCw3IEBAIHZvaWQgcHJpbnRfdXNhZ2UoRmlsZVN0cmVhbSBz dHJlYW0pIHsKICAgICAgfQogIH0KICAKQEAgLTIyNzcsNjcgKzIzODMsOSBAQCBpbmRleCAyNmU3 ZmQ4OC4uNzExMzQzMzQgMTAwNjQ0CiAtLSAKIDIuMzUuMwogCi1Gcm9tIDYyMDNiNmM0ZTFkNDFl NzMxYmRjY2IxMzM4ZWQ0NWM5M2JjNTY5MDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBUdWUsIDIxIEp1 biAyMDIyIDAwOjQ5OjQ2ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIHNyYy90ZXN0czogVW5zZXQg R19NRVNTQUdFU19ERUJVRyBmb3IgZ3NldHRpbmdzIGluCi0geGtiLWxhdGluLWxheW91dHMKLQot Z3NldHRpbmdzIGNhbm5vdCBnZXQgdGhlIGtleSB2YWx1ZSB3aGVuIEdfTUVTU0FHRVNfREVCVUcg aXMgZW5hYmxlZC4KLUFkZCBkZW55bGlzdC50eHQgdG8gZW5naW5lL01ha2VmaWxlLmFtCi0tLS0K LSBlbmdpbmUvTWFrZWZpbGUuYW0gICAgICAgICAgfCAzICsrLQotIHNyYy90ZXN0cy94a2ItbGF0 aW4tbGF5b3V0cyB8IDcgKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9lbmdpbmUvTWFrZWZpbGUuYW0gYi9lbmdp bmUvTWFrZWZpbGUuYW0KLWluZGV4IDAzODY3ZjUyLi43MjU2ZmJjOCAxMDA2NDQKLS0tLSBhL2Vu Z2luZS9NYWtlZmlsZS5hbQotKysrIGIvZW5naW5lL01ha2VmaWxlLmFtCi1AQCAtNCw3ICs0LDcg QEAKLSAjCi0gIyBDb3B5cmlnaHQgKGMpIDIwMTAtMjAxNiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0 cyByZXNlcnZlZC4KLSAjIENvcHlyaWdodCAoYykgMjAwNy0yMDE2IFBlbmcgSHVhbmcgPHNoYXdu LnAuaHVhbmdAZ21haWwuY29tPgotLSMgQ29weXJpZ2h0IChjKSAyMDEzLTIwMjAgVGFrYW8gRnVq aXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rIyBDb3B5cmlnaHQgKGMpIDIwMTMt MjAyMSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAjCi0gIyBU aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yCi0gIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCi1AQCAtODgsNiArODgsNyBAQCBDTEVBTkZJTEVTID0gXAotIAkkKE5VTEwpCi0g Ci0gRVhUUkFfRElTVCA9IFwKLSsJZGVueWxpc3QudHh0IFwKLSAJZ2Vuc2ltcGxlLnB5IFwKLSAJ aXNvNjM5Y29udmVydGVyLnB5IFwKLSAJc2ltcGxlLnhtbC5pbiBcCi1kaWZmIC0tZ2l0IGEvc3Jj L3Rlc3RzL3hrYi1sYXRpbi1sYXlvdXRzIGIvc3JjL3Rlc3RzL3hrYi1sYXRpbi1sYXlvdXRzCi1p bmRleCBmOGRjZWQ2Yi4uOTI0NjQyMzQgMTAwNzU1Ci0tLS0gYS9zcmMvdGVzdHMveGtiLWxhdGlu LWxheW91dHMKLSsrKyBiL3NyYy90ZXN0cy94a2ItbGF0aW4tbGF5b3V0cwotQEAgLTgyLDkgKzgy LDE2IEBAIGZpbml0KCkKLSAKLSB0ZXN0X3hrYl9rZXltYXBzKCkKLSB7Ci0rICAgICMgR19NRVNT QUdFU19ERUJVRz1hbGwgb3IgR19NRVNTQUdFU19ERUJVRz1HTGliLUdJTy1ERUJVRyB3b3VsZCBh cHBlbmQKLSsgICAgIyBkZWJ1ZyBtZXNzYWdlcyB0byBnc2V0dGluZ3Mgb3V0cHV0IGFuZCBjb3Vs ZCBub3QgZ2V0IHRoZSByZXN1bHQgY29ycmVjdGx5LgotKyAgICBiYWNrdXBfR19NRVNTQUdFU19E RUJVRz0iJEdfTUVTU0FHRVNfREVCVUciCi0rICAgIHVuc2V0IEdfTUVTU0FHRVNfREVCVUcKLSAg ICAgIyBMb29wIG92ZXIgdG9wIGxldmVsIHNjaGVtYXMgc2luY2UgImdzZXR0aW5ncyBsaXN0LXJl Y3Vyc2l2ZWx5IiBvbmx5Ci0gICAgICMgbG9va3MgZm9yIGRpcmVjdCBjaGlsZHJlbi4KLSAgICAg eGtiX2xhdGluX2xheW91dHM9YGdzZXR0aW5ncyBnZXQgb3JnLmZyZWVkZXNrdG9wLmlidXMuZ2Vu ZXJhbCB4a2ItbGF0aW4tbGF5b3V0c2AKLSsgICAgaWYgWyB4IiRiYWNrdXBfR19NRVNTQUdFU19E RUJVRyIgIT0geCBdIDsgdGhlbgotKyAgICAgICAgZXhwb3J0IEdfTUVTU0FHRVNfREVCVUc9JGJh Y2t1cF9HX01FU1NBR0VTX0RFQlVHCi0rICAgIGZpCi0gICAgIHdoaWxlIHJlYWQga2V5bWFwIDsg ZG8KLSAgICAgICAgIGV2YWwga2V5bWFwPSIka2V5bWFwIgotICAgICAgICAgSEFTX1ZBUklBTlQ9 JCgkRUNITyAiJGtleW1hcCIgfCBncmVwICcoJyAyPiAvZGV2L251bGwpIHx8OgotLS0gCi0yLjM1 LjMKLQotRnJvbSA2NWE3MGE0OTQxNmE1YTJmMGZlNzU4MTVjYWZjZTY4Y2EzOWVlMWYxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA1YjQ0MWZhYmM5ZDc2NmU2OTRiOTkyZTBlMmYyODky NGQwMGE3NDAyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogZnVqaXdhcmF0IDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogV2VkLCAyOSBKdW4gMjAyMiAxNTozNjoxMiAr MDkwMAorRGF0ZTogVGh1LCA3IEp1bCAyMDIyIDA4OjIyOjI2ICswOTAwCiBTdWJqZWN0OiBbUEFU Q0hdIHRvb2xzOiBBZGQgaWJ1cyBpbS1tb2R1bGUgY29tbWFuZAogCiBpYnVzIGltLW1vZHVsZSBj b21tYW5kIGNhbiByZXRyaXZlIGd0ay1pbS1tb2R1bGUgdmFsdWUgZnJvbSBhbgpAQCAtMjM0NSwx NCArMjM5MywxNSBAQCBpbnN0YW5jZSBvZiBHdGtJTU11bHRpQ29udGV4dC4KIFRoZSBHVEsgdmVy c2lvbiBjYW4gYmUgc3BlY2lmaWVkIGJ5IC0tdHlwZSBvcHRpb24gYW5kIHRoZSBkZWZhdWx0CiBp cyAtLXR5cGU9Z3RrMyBhbmQgR1RLMyBpbS1pYnVzLnNvIGlzIGRsb3BlbmVkLgogLS0tCi0gY2xp ZW50L2d0azIvaWJ1c2ltLmMgICAgICAgICAgICB8IDIwICsrKysrKysKLSBjbGllbnQvZ3RrNC9p YnVzaW0uYyAgICAgICAgICAgIHwgMjAgKysrKysrKwotIHRvb2xzL0lCdXNJTU1vZHVsZS0xLjAu bWV0YWRhdGEgfCAgMSArCi0gdG9vbHMvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICB8IDkyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQotIHRvb2xzL2lidXNpbW1vZHVsZS5jICAg ICAgICAgICAgfCA4NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSB0b29scy9pYnVz aW1tb2R1bGUuaCAgICAgICAgICAgIHwgMzYgKysrKysrKysrKysrKwotIHRvb2xzL21haW4udmFs YSAgICAgICAgICAgICAgICAgfCAxNSArKysrKysKLSA3IGZpbGVzIGNoYW5nZWQsIDI2MiBpbnNl cnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorIGNsaWVudC9ndGsyL2lidXNpbS5jICAgICAgICAg ICAgfCAgMjAgKysrKysrCisgY2xpZW50L2d0azQvaWJ1c2ltLmMgICAgICAgICAgICB8ICAyMCAr KysrKysKKyB0b29scy9JQnVzSU1Nb2R1bGUtMS4wLm1ldGFkYXRhIHwgICAxICsKKyB0b29scy9N YWtlZmlsZS5hbSAgICAgICAgICAgICAgIHwgMTE2ICsrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tCisgdG9vbHMvaWJ1cy4xLmluICAgICAgICAgICAgICAgICB8ICAxMCArKysKKyB0b29s cy9pYnVzaW1tb2R1bGUuYyAgICAgICAgICAgIHwgIDg3ICsrKysrKysrKysrKysrKysrKysrKysr KworIHRvb2xzL2lidXNpbW1vZHVsZS5oICAgICAgICAgICAgfCAgMzYgKysrKysrKysrKworIHRv b2xzL21haW4udmFsYSAgICAgICAgICAgICAgICAgfCAgMTEgKysrCisgOCBmaWxlcyBjaGFuZ2Vk LCAzMDggaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IHRvb2xzL0lCdXNJTU1vZHVsZS0xLjAubWV0YWRhdGEKICBjcmVhdGUgbW9kZSAxMDA2NDQgdG9v bHMvaWJ1c2ltbW9kdWxlLmMKICBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvaWJ1c2ltbW9kdWxl LmgKQEAgLTI0MjEsNDIgKzI0NzAsMTEwIEBAIGluZGV4IDAwMDAwMDAwLi4xNGFkYzllZQogQEAg LTAsMCArMSBAQAogK0lCdXNJTU1vZHVsZSBjaGVhZGVyX2ZpbGVuYW1lPSJpYnVzaW1tb2R1bGUu aCIgbmFtZT0iSUJ1c0lNTW9kdWxlIgogZGlmZiAtLWdpdCBhL3Rvb2xzL01ha2VmaWxlLmFtIGIv dG9vbHMvTWFrZWZpbGUuYW0KLWluZGV4IGUzODBhOWFhLi5mOTZmMmJhMiAxMDA2NDQKK2luZGV4 IGUzODBhOWFhLi5hOTI2MmVlMCAxMDA2NDQKIC0tLSBhL3Rvb2xzL01ha2VmaWxlLmFtCiArKysg Yi90b29scy9NYWtlZmlsZS5hbQotQEAgLTIyLDYgKzIyLDEyIEBACi0gIyBVU0EKLSAKK0BAIC0y NCw5ICsyNCwxOSBAQAogIE5VTEwgPQotK25vaW5zdF9MVExJQlJBUklFUyA9CisgCisgbGliaWJ1 cyA9ICQodG9wX2J1aWxkZGlyKS9zcmMvbGliaWJ1cy1ASUJVU19BUElfVkVSU0lPTkAubGEKKyts aWJpYnVzaW1tb2R1bGUgPSBsaWJpYnVzaW1tb2R1bGUubGEKKytpYnVzaW1tb2R1bGVfZ2lyID0g SUJ1c0lNTW9kdWxlLTEuMC5naXIKKytpYnVzX2ltbW9kdWxlX3ZhcGkgPSBpYnVzLWltbW9kdWxl LTEuMC52YXBpCisgbGliaWJ1c19lbW9qaV9kaWFsb2cgPSBcCisgICAgICQodG9wX2J1aWxkZGly KS91aS9ndGszL2xpYmlidXMtZW1vamktZGlhbG9nLUBJQlVTX0FQSV9WRVJTSU9OQC5sYQorIAor K25vaW5zdF9MVExJQlJBUklFUyA9ICQobGliaWJ1c2ltbW9kdWxlKQogK25vaW5zdF9EQVRBID0K ICtJTlRST1NQRUNUSU9OX0dJUlMgPQogK01BSU5UQUlORVJDTEVBTkZJTEVTID0KICtESVNUQ0xF QU5GSUxFUyA9CiArVkFQSUdFTl9WQVBJUyA9CisrCisgIyBmb3JjZSBpbmNsdWRlIGNvbmZpZy5o IGJlZm9yZSBnaTE4bi5oLgorIEFNX0NQUEZMQUdTID0gXAorIAktSSQodG9wX3NyY2Rpcikvc3Jj IFwKK0BAIC00NywyMiArNTcsMjYgQEAgQU1fQ0ZMQUdTID0gXAorIAkkKE5VTEwpCisgCisgQU1f TERBREQgPSBcCistCUBHT0JKRUNUMl9MSUJTQCBcCistCUBHTElCMl9MSUJTQCBcCistCUBHSU8y X0xJQlNAIFwKKy0JQEdUSFJFQUQyX0xJQlNAIFwKKy0JJChsaWJpYnVzKSBcCistCSQoTlVMTCkK KysgICAgQEdPQkpFQ1QyX0xJQlNAIFwKKysgICAgQEdMSUIyX0xJQlNAIFwKKysgICAgQEdJTzJf TElCU0AgXAorKyAgICBAR1RIUkVBRDJfTElCU0AgXAorKyAgICAkKGxpYmlidXMpIFwKKysgICAg JChsaWJpYnVzaW1tb2R1bGUpIFwKKysgICAgJChOVUxMKQogIAotIGxpYmlidXMgPSAkKHRvcF9i dWlsZGRpcikvc3JjL2xpYmlidXMtQElCVVNfQVBJX1ZFUlNJT05ALmxhCi0gbGliaWJ1c19lbW9q aV9kaWFsb2cgPSBcCi1AQCAtNTcsNiArNjMsOCBAQCBBTV9MREFERCA9IFwKICBBTV9WQUxBRkxB R1MgPSBcCi0gCS0tdmFwaWRpcj0kKHRvcF9idWlsZGRpcikvYmluZGluZ3MvdmFsYSBcCi0gCS0t dmFwaWRpcj0kKHRvcF9zcmNkaXIpL2JpbmRpbmdzL3ZhbGEgXAotKwktLXZhcGlkaXI9JChidWls ZGRpcikgXAotKwktLXZhcGlkaXI9JChzcmNkaXIpIFwKLSAJLS1wa2c9Z2lvLTIuMCBcCi0gCS0t cGtnPWlidXMtMS4wIFwKLSAJLS1wa2c9cG9zaXggXAotQEAgLTkxLDE0ICs5OSwxNyBAQCBtYW5f b25lZGlyID0gJChtYW5kaXIpL21hbjEKKy0JLS12YXBpZGlyPSQodG9wX2J1aWxkZGlyKS9iaW5k aW5ncy92YWxhIFwKKy0JLS12YXBpZGlyPSQodG9wX3NyY2RpcikvYmluZGluZ3MvdmFsYSBcCist CS0tcGtnPWdpby0yLjAgXAorLQktLXBrZz1pYnVzLTEuMCBcCistCS0tcGtnPXBvc2l4IFwKKy0J LS1wa2c9Y29uZmlnIFwKKy0JLS10YXJnZXQtZ2xpYj0iJChWQUxBX1RBUkdFVF9HTElCX1ZFUlNJ T04pIiBcCistCSQoTlVMTCkKKysgICAgLS12YXBpZGlyPSQodG9wX2J1aWxkZGlyKS9iaW5kaW5n cy92YWxhIFwKKysgICAgLS12YXBpZGlyPSQodG9wX3NyY2RpcikvYmluZGluZ3MvdmFsYSBcCisr ICAgIC0tdmFwaWRpcj0kKGJ1aWxkZGlyKSBcCisrICAgIC0tdmFwaWRpcj0kKHNyY2RpcikgXAor KyAgICAtLXBrZz1naW8tMi4wIFwKKysgICAgLS1wa2c9aWJ1cy0xLjAgXAorKyAgICAtLXBrZz1p YnVzLWltbW9kdWxlLTEuMCBcCisrICAgIC0tcGtnPXBvc2l4IFwKKysgICAgLS1wa2c9Y29uZmln IFwKKysgICAgLS10YXJnZXQtZ2xpYj0iJChWQUxBX1RBUkdFVF9HTElCX1ZFUlNJT04pIiBcCisr ICAgICQoTlVMTCkKKyAKKyBiaW5fUFJPR1JBTVMgPSBpYnVzCisgCitAQCAtNzksOSArOTMsMjcg QEAgYmFzaF9jb21wbGV0aW9uX0RBVEE9IFwKKyAJJChOVUxMKQorIGJhc2hfY29tcGxldGlvbmRp cj1AZGF0YWRpckAvYmFzaC1jb21wbGV0aW9uL2NvbXBsZXRpb25zCisgCisrbGliaWJ1c2ltbW9k dWxlX2xhX1NPVVJDRVMgPSBcCisrICAgIGlidXNpbW1vZHVsZS5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisrICAgIGlidXNpbW1vZHVsZS5oICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICQoTlVMTCkKKytsaWJpYnVzaW1tb2R1bGVf bGFfQ0ZMQUdTID0gXAorKyAgICBAR0xJQjJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorKyAgICAtREdUSzJfSU1fTU9EVUxFRElSPVwiJChHVEsyX0lNX01P RFVMRURJUilcIiAgICAgICAgXAorKyAgICAtREdUSzNfSU1fTU9EVUxFRElSPVwiJChHVEszX0lN X01PRFVMRURJUilcIiAgICAgICAgXAorKyAgICAtREdUSzRfSU1fTU9EVUxFRElSPVwiJChHVEs0 X0lNX01PRFVMRURJUilcIiAgICAgICAgXAorKyAgICAkKE5VTEwpCisrbGliaWJ1c2ltbW9kdWxl X2xhX0xJQkFERCA9IFwKKysgICAgQEdMSUIyX0xJQlNAICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKysgICAgJChOVUxMKQorK2xpYmlidXNpbW1vZHVsZV9sYV9MREZM QUdTID0gXAorKyAgICAtbm8tdW5kZWZpbmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggImlidXNfLioiICAgICAgICAg ICAgICAgICAgICAgXAorKyAgICAkKE5VTEwpCisrCisgbWFuX29uZV9pbl9maWxlcyA9IGlidXMu MS5pbgorIG1hbl9vbmVfZmlsZXMgPSAkKG1hbl9vbmVfaW5fZmlsZXM6LjEuaW49LjEpCistbWFu X29uZV9EQVRBID0kKG1hbl9vbmVfZmlsZXM6LjE9LjEuZ3opIAorK21hbl9vbmVfREFUQSA9JCht YW5fb25lX2ZpbGVzOi4xPS4xLmd6KQorIG1hbl9vbmVkaXIgPSAkKG1hbmRpcikvbWFuMQorICUu MTogJS4xLmluCisgCSQoQU1fVl9HRU4pIHNlZCBcCitAQCAtOTEsMTQgKzEyMywxNyBAQCBtYW5f b25lZGlyID0gJChtYW5kaXIpL21hbjEKICAJJChBTV9WX0dFTikgZ3ppcCAtYyAkPCA+ICRALnRt cCAmJiBtdiAkQC50bXAgJEAKICAKICBFWFRSQV9ESVNUID0gXAogLQkkKG1hbl9vbmVfaW5fZmls ZXMpIFwKIC0JaWJ1cy5iYXNoIFwKIC0JJChOVUxMKQorKyAgICAkKGlidXNfaW1tb2R1bGVfdmFw aSkgXAorKyAgICAkKGlidXNpbW1vZHVsZV9naXIpIFwKICsgICAgJChtYW5fb25lX2luX2ZpbGVz KSBcCiArICAgIGlidXMuYmFzaCBcCi0rICAgIGlidXNpbW1vZHVsZS5jIFwKLSsgICAgaWJ1c2lt bW9kdWxlLmggXAogKyAgICBJQnVzSU1Nb2R1bGUtMS4wLm1ldGFkYXRhIFwKICsgICAgJChOVUxM KQogIApAQCAtMjQ3MCwzOCArMjU4NywxMiBAQCBpbmRleCBlMzgwYTlhYS4uZjk2ZjJiYTIgMTAw NjQ0CiAgCiAgaWYgRU5BQkxFX0VNT0pJX0RJQ1QKICBpZiBFTkFCTEVfVUkKLUBAIC0xMDgsNCAr MTE5LDczIEBAIEFNX1ZBTEFGTEFHUyArPSBcCitAQCAtMTA4LDQgKzE0Myw0MyBAQCBBTV9WQUxB RkxBR1MgKz0gXAogIGVuZGlmCiAgZW5kaWYKICAKICtpZiBIQVZFX0lOVFJPU1BFQ1RJT04KICtC VUlMVF9TT1VSQ0VTID0gJChJTlRST1NQRUNUSU9OX0dJUlMpICQoVkFQSUdFTl9WQVBJUykKLSts aWJpYnVzaW1tb2R1bGUgPSBsaWJpYnVzaW1tb2R1bGUubGEKLStub2luc3RfTFRMSUJSQVJJRVMg Kz0gJChsaWJpYnVzaW1tb2R1bGUpCi0rCi0rQU1fTERBREQgKz0gJChsaWJpYnVzaW1tb2R1bGUp Ci0rQU1fVkFMQUZMQUdTICs9IFwKLSsgICAgLS1kZWZpbmU9TElCX0lCVVNfTU9EVUxFIFwKLSsg ICAgLS1wa2c9aWJ1cy1pbW1vZHVsZS0xLjAgXAotKyAgICAkKE5VTEwpCi0rCi0rbGliaWJ1c2lt bW9kdWxlX2xhX1NPVVJDRVMgPSBcCi0rICAgIGlidXNpbW1vZHVsZS5jICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIGlidXNpbW1vZHVsZS5oICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICQoTlVMTCkKLStsaWJpYnVzaW1tb2R1 bGVfbGFfQ0ZMQUdTID0gXAotKyAgICBAR0xJQjJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotKyAgICAtREdUSzJfSU1fTU9EVUxFRElSPVwiJChHVEsyX0lN X01PRFVMRURJUilcIiAgICAgICAgXAotKyAgICAtREdUSzNfSU1fTU9EVUxFRElSPVwiJChHVEsz X0lNX01PRFVMRURJUilcIiAgICAgICAgXAotKyAgICAtREdUSzRfSU1fTU9EVUxFRElSPVwiJChH VEs0X0lNX01PRFVMRURJUilcIiAgICAgICAgXAotKyAgICAkKE5VTEwpCi0rbGliaWJ1c2ltbW9k dWxlX2xhX0xJQkFERCA9IFwKLSsgICAgQEdMSUIyX0xJQlNAICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSsgICAgJChOVUxMKQotK2xpYmlidXNpbW1vZHVsZV9sYV9M REZMQUdTID0gXAotKyAgICAtbm8tdW5kZWZpbmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAotKyAgICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggImlidXNfLioiICAgICAg ICAgICAgICAgICAgICAgXAotKyAgICAkKE5VTEwpCiArCiArLWluY2x1ZGUgJChJTlRST1NQRUNU SU9OX01BS0VGSUxFKQogK0lOVFJPU1BFQ1RJT05fU0NBTk5FUl9BUkdTID0KQEAgLTI1MjMsMzMg KzI2MTQsNTAgQEAgaW5kZXggZTM4MGE5YWEuLmY5NmYyYmEyIDEwMDY0NAogKyAgICAtSSQoYnVp bGRkaXIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogKyAgICAkKE5V TEwpCiArCi0raWJ1c2ltbW9kdWxlX2dpciA9IElCdXNJTU1vZHVsZS0xLjAuZ2lyCiArSU5UUk9T UEVDVElPTl9HSVJTICs9ICQoaWJ1c2ltbW9kdWxlX2dpcikKICtub2luc3RfREFUQSArPSAkKGli dXNpbW1vZHVsZV9naXIpCi0rRVhUUkFfRElTVCArPSAkKGlidXNpbW1vZHVsZV9naXIpCiArTUFJ TlRBSU5FUkNMRUFORklMRVMgKz0gJChpYnVzaW1tb2R1bGVfZ2lyKQogK0RJU1RDTEVBTkZJTEVT ICs9ICQoaWJ1c2ltbW9kdWxlX2dpcikKICsKICstaW5jbHVkZSAkKFZBUElHRU5fTUFLRUZJTEUp CiAraWJ1cy1pbW1vZHVsZS0xLjAudmFwaTogJChpYnVzaW1tb2R1bGVfZ2lyKSBJQnVzSU1Nb2R1 bGUtMS4wLm1ldGFkYXRhCi0raWJ1c19pbW1vZHVsZV92YXBpID0gaWJ1cy1pbW1vZHVsZS0xLjAu dmFwaQogK2lidXNfaW1tb2R1bGVfMV8wX3ZhcGlfREVQUyA9IGdsaWItMi4wCiAraWJ1c19pbW1v ZHVsZV8xXzBfdmFwaV9NRVRBREFUQURJUlMgPSAkKHNyY2RpcikKICtpYnVzX2ltbW9kdWxlXzFf MF92YXBpX0ZJTEVTID0gSUJ1c0lNTW9kdWxlLTEuMC5naXIKICtWQVBJR0VOX1ZBUElTICs9ICQo aWJ1c19pbW1vZHVsZV92YXBpKQogK25vaW5zdF9EQVRBICs9ICQoaWJ1c19pbW1vZHVsZV92YXBp KQotK0VYVFJBX0RJU1QgKz0gJChpYnVzX2ltbW9kdWxlX3ZhcGkpCiArTUFJTlRBSU5FUkNMRUFO RklMRVMgKz0gJChpYnVzX2ltbW9kdWxlX3ZhcGkpCiArRElTVENMRUFORklMRVMgKz0gJChpYnVz X2ltbW9kdWxlX3ZhcGkpCi0rCiArZW5kaWYKKysKICAtaW5jbHVkZSAkKHRvcF9zcmNkaXIpL2dp dC5taworZGlmZiAtLWdpdCBhL3Rvb2xzL2lidXMuMS5pbiBiL3Rvb2xzL2lidXMuMS5pbgoraW5k ZXggZmUxYjcxNTcuLjg0ZWY1ZmZmIDEwMDY0NAorLS0tIGEvdG9vbHMvaWJ1cy4xLmluCisrKysg Yi90b29scy9pYnVzLjEuaW4KK0BAIC0xMjgsNiArMTI4LDE2IEBAIG9wdGlvbiBlbmFibGVzIHRv IG1hdGNoIGFubm90YXRpb25zIHdpdGggYSBwYXJ0aWFsIHN0cmluZy4gVGhlc2Ugc2V0dGluZ3MK KyBhcmUgYXZhaWxhYmxlIHdpdGgKKyAuQiBpYnVzXC1zZXR1cCAoMSkKKyB1dGlsaXR5LgorKy5U UAorK1xmQmltLW1vZHVsZVxmUiBbXGZCXC1cLXR5cGU9VFlQRXxcLVwtaGVscFxmUl0KKytTaG93 IGFuIGludGVybmFsIGltLW1vZHVsZSB2YWx1ZSBpbiBhIHZpcnR1YWwgR1RLIGFwcGxpY2F0aW9u LiBJZiBJQnVzIGlzCisraW5zdGFsbGVkIGFuZCBjb25maWd1cmVkIHByb3Blcmx5LCB0aGUgb3V0 cHV0IGlzICJpYnVzIi4gVGhpcyBzdWItY29tbWFuZAorK2lzIHVzZWZ1bCBmb3Igc29tZSB1c2Vy cyB3aG8gYnVpbGQgSUJ1cyBmcm9tIHRoZSBzb3VyY2UgY29kZXMgYW5kIGNoZWNrCisrdGhlIGNv bmZpZ3VyYXRpb25zLiBDdXJyZW50bHkgdGhlIHN1Yi1jb21tYW5kIHN1cHBvcnRzIEdUSyBhcHBs aWNhdGlvbnMgb25seQorK2FuZCB0aGUgZGVmYXVsdCBpcyBHVEszLiBJZiB5b3Ugd2lzaCB0byBj aGVjayBhIEdUSzQgYXBwbGljYXRpb24sIHlvdSBjYW4KKytzcGVjaWZ5CisrLkIgXC1cLXR5cGU9 Z3RrNAorK29wdGlvbiBhbmQgeW91IGNhbiBjaG9vc2Ugb25lIG9mICJndGsyIiwgImd0azMiIGFu ZCAiZ3RrNCIuCisgCisgLlNIIEJVR1MKKyBJZiB5b3UgZmluZCBhIGJ1ZywgcGxlYXNlIHJlcG9y dCBpdCBhdCBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVzL2lzc3VlcwogZGlmZiAtLWdpdCBh L3Rvb2xzL2lidXNpbW1vZHVsZS5jIGIvdG9vbHMvaWJ1c2ltbW9kdWxlLmMKIG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMC4uMTU4N2FmM2QKK2luZGV4IDAwMDAwMDAwLi4yMGNj Yzc0OAogLS0tIC9kZXYvbnVsbAogKysrIGIvdG9vbHMvaWJ1c2ltbW9kdWxlLmMKLUBAIC0wLDAg KzEsODQgQEAKK0BAIC0wLDAgKzEsODcgQEAKICsjaW5jbHVkZSA8Z2xpYi5oPgogKyNpbmNsdWRl IDxnbGliL2dpMThuLWxpYi5oPgogKyNpbmNsdWRlIDxkbGZjbi5oPgpAQCAtMjU1OCw2ICsyNjY2 LDEwIEBAIGluZGV4IDAwMDAwMDAwLi4xNTg3YWYzZAogKyNkZWZpbmUgREVGQVVMVF9JTV9NT0RV TEVfVFlQRSAiZ3RrMyIKICsjZW5kaWYKICsKKysjZGVmaW5lIE9QVElPTl9UWVBFX01FU1NBR0Ug XAorKyAgTl8oIlR5cGUgaW0tbW9kdWxlIFRZUEUgPSBcImd0azJcIiwgIFwiZ3RrM1wiLCBcImd0 azRcIi4gRGVmYXVsdCBpcyAiIFwKKysgICAgICJcImd0azNcIi4iKQorKwogK3R5cGVkZWYgY29u c3QgY2hhciAqICgqIElCdXNJTUdldENvbnRleHRJZEZ1bmMpIChpbnQgKmFyZ2MsIGNoYXIgKioq YXJndik7CiArCiArc3RhdGljIGNoYXIgKmltX21vZHVsZV90eXBlOwpAQCAtMjU2OCw4ICsyNjgw LDcgQEAgaW5kZXggMDAwMDAwMDAuLjE1ODdhZjNkCiArewogKyAgICBzdGF0aWMgY29uc3QgR09w dGlvbkVudHJ5IG9wdGlvbnNbM10gPSB7CiArICAgICAgICB7ICJ0eXBlIiwgKGNoYXIpMCwgKGlu dCkwLCBHX09QVElPTl9BUkdfU1RSSU5HLCAmaW1fbW9kdWxlX3R5cGUsCi0rICAgICAgICAgTl8g KCJUeXBlIGltLW1vZHVsZSBUWVBFID0gXCJndGsyXCIsICBcImd0azNcIiwgXCJndGs0XCIuICIg XAotKyAgICAgICAgICAgICAiRGVmYXVsdCBpcyBcIiIgREVGQVVMVF9JTV9NT0RVTEVfVFlQRSAi XCIuIiksCisrICAgICAgICAgIE9QVElPTl9UWVBFX01FU1NBR0UsCiArICAgICAgICAgIlRZUEUi fSwKICsgICAgICAgIHsgTlVMTCB9CiArICAgIH07CkBAIC0yNjc3LDIyICsyNzg4LDE4IEBAIGlu ZGV4IDAwMDAwMDAwLi5lNzYyYTc0NwogKwogKyNlbmRpZgogZGlmZiAtLWdpdCBhL3Rvb2xzL21h aW4udmFsYSBiL3Rvb2xzL21haW4udmFsYQotaW5kZXggNzExMzQzMzQuLjU4N2YzYTA5IDEwMDY0 NAoraW5kZXggNDA3ZWFmNzQuLjFmZWQyNDQwIDEwMDY0NAogLS0tIGEvdG9vbHMvbWFpbi52YWxh CiArKysgYi90b29scy9tYWluLnZhbGEKLUBAIC02NDEsNiArNjQxLDE5IEBAIGludCBlbW9qaV9k aWFsb2coc3RyaW5nW10gYXJndikgeworQEAgLTY3MSw2ICs2NzEsMTUgQEAgaW50IGVtb2ppX2Rp YWxvZyhzdHJpbmdbXSBhcmd2KSB7CiAgI2VuZGlmCiAgCiAgCiAraW50IHJlYWRfaW1fbW9kdWxl KHN0cmluZ1tdIGFyZ3YpIHsKLSsjaWYgTElCX0lCVVNfTU9EVUxFCiArICAgIHN0cmluZz8gaW1f bW9kdWxlID0gSUJ1c0lNTW9kdWxlLmltX21vZHVsZV9nZXRfaWQoYXJndik7CiArICAgIGlmIChp bV9tb2R1bGUgPT0gbnVsbCkKICsgICAgICAgIHJldHVybiBQb3NpeC5FWElUX0ZBSUxVUkU7CiAr ICAgIHByaW50KCIlc1xuIi5wcmludGYoaW1fbW9kdWxlKSk7Ci0rI2Vsc2UKLSsgICAgcHJpbnQo IiVzXG4iLnByaW50ZihfKCJOb3Qgc3VwcG9ydGVkIGluIHlvdXIgc3lzdGVtLiIpKSk7Ci0rI2Vu ZGlmCiArICAgIHJldHVybiBQb3NpeC5FWElUX1NVQ0NFU1M7CiArfQogKwpAQCAtMjcwMCw3ICsy ODA3LDcgQEAgaW5kZXggNzExMzQzMzQuLjU4N2YzYTA5IDEwMDY0NAogIGludCBwcmludF9oZWxw KHN0cmluZ1tdIGFyZ3YpIHsKICAgICAgcHJpbnRfdXNhZ2Uoc3Rkb3V0KTsKICAgICAgcmV0dXJu IFBvc2l4LkVYSVRfU1VDQ0VTUzsKLUBAIC02NzIsNiArNjg1LDggQEAgY29uc3QgQ29tbWFuZEVu dHJ5IGNvbW1hbmRzW10gID0geworQEAgLTcwMiw2ICs3MTEsOCBAQCBjb25zdCBDb21tYW5kRW50 cnkgY29tbWFuZHNbXSAgPSB7CiAgI2lmIEVNT0pJX0RJQ1QKICAgICAgeyAiZW1vamkiLCBOXygi U2F2ZSBlbW9qaSBvbiBkaWFsb2cgdG8gY2xpcGJvYXJkIiksIGVtb2ppX2RpYWxvZyB9LAogICNl bmRpZgpAQCAtMjcxMiwzICsyODE5LDE2MTkgQEAgaW5kZXggNzExMzQzMzQuLjU4N2YzYTA5IDEw MDY0NAogLS0gCiAyLjM1LjMKIAorRnJvbSA3ZTQyYjQzN2M5MDFiYjU2Y2EyZjc3NmFhZDVmZTY1 ZDBkOGMyNDZhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorRGF0ZTogVGh1LCA3IEp1bCAyMDIyIDA4OjIyOjQyICsw OTAwCitTdWJqZWN0OiBbUEFUQ0hdIGNsaWVudC9ndGsyOiBJbXBsZW1lbnQgbmV3IHByb2Nlc3Nf a2V5X2V2ZW50IGZvciBHVEs0CisKKy0tLQorIGNsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyB8 IDE0NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KKyBzcmMvaWJ1c3R5cGVz LmggICAgICAgICAgICAgfCAgIDQgKworIDIgZmlsZXMgY2hhbmdlZCwgMTI3IGluc2VydGlvbnMo KyksIDI0IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY2xpZW50L2d0azIvaWJ1c2ltY29u dGV4dC5jIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCitpbmRleCBjN2YyMzI5My4uYmMx NGRmMDAgMTAwNjQ0CistLS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKKysrKyBiL2Ns aWVudC9ndGsyL2lidXNpbWNvbnRleHQuYworQEAgLTExMSwxMyArMTExLDEzIEBAIHN0YXRpYyBn dWludCAgICBfc2lnbmFsX2RlbGV0ZV9zdXJyb3VuZGluZ19pZCA9IDA7Cisgc3RhdGljIGd1aW50 ICAgIF9zaWduYWxfcmV0cmlldmVfc3Vycm91bmRpbmdfaWQgPSAwOworIAorICNpZiBHVEtfQ0hF Q0tfVkVSU0lPTiAoMywgOTgsIDQpCistc3RhdGljIGdib29sZWFuIF91c2Vfc3luY19tb2RlID0g VFJVRTsKKytzdGF0aWMgY2hhciBfdXNlX3N5bmNfbW9kZSA9IDI7CisgI2Vsc2UKKyBzdGF0aWMg Y29uc3QgZ2NoYXIgKl9ub19zbm9vcGVyX2FwcHMgPSBOT19TTk9PUEVSX0FQUFM7Cisgc3RhdGlj IGdib29sZWFuIF91c2Vfa2V5X3Nub29wZXIgPSBFTkFCTEVfU05PT1BFUjsKKyBzdGF0aWMgZ3Vp bnQgICAgX2tleV9zbm9vcGVyX2lkID0gMDsKKyAKKy1zdGF0aWMgZ2Jvb2xlYW4gX3VzZV9zeW5j X21vZGUgPSBGQUxTRTsKKytzdGF0aWMgY2hhciBfdXNlX3N5bmNfbW9kZSA9IDA7CisgI2VuZGlm CisgCisgc3RhdGljIGNvbnN0IGdjaGFyICpfZGlzY2FyZF9wYXNzd29yZF9hcHBzICA9ICIiOwor QEAgLTM3NSwxMiArMzc1LDE1IEBAIGlidXNfaW1fY29udGV4dF9jb21taXRfZXZlbnQgKElCdXNJ TUNvbnRleHQgKmlidXNpbWNvbnRleHQsCisgICAgcmV0dXJuIEZBTFNFOworIH0KKyAKKy1zdHJ1 Y3QgX1Byb2Nlc3NLZXlFdmVudERhdGEgeworK3R5cGVkZWYgc3RydWN0IHsKKyAgICAgR2RrRXZl bnQgKmV2ZW50OworICAgICBJQnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0OworLX07CisrfSBQ cm9jZXNzS2V5RXZlbnREYXRhOworIAorLXR5cGVkZWYgc3RydWN0IF9Qcm9jZXNzS2V5RXZlbnRE YXRhIFByb2Nlc3NLZXlFdmVudERhdGE7CisrdHlwZWRlZiBzdHJ1Y3QgeworKyAgICBHTWFpbkxv b3AgKmxvb3A7CisrICAgIGdib29sZWFuICAgIHJldHZhbDsKKyt9IFByb2Nlc3NLZXlFdmVudFJl cGx5RGF0YTsKKyAKKyBzdGF0aWMgdm9pZAorIF9wcm9jZXNzX2tleV9ldmVudF9kb25lIChHT2Jq ZWN0ICAgICAgKm9iamVjdCwKK0BAIC0zOTUsMTIgKzM5OCwxMiBAQCBfcHJvY2Vzc19rZXlfZXZl bnRfZG9uZSAoR09iamVjdCAgICAgICpvYmplY3QsCisgICAgIElCdXNJTUNvbnRleHQgKmlidXNp bWNvbnRleHQgPSBkYXRhLT5pYnVzaW1jb250ZXh0OworICNlbmRpZgorICAgICBHRXJyb3IgKmVy cm9yID0gTlVMTDsKKysgICAgZ2Jvb2xlYW4gcmV0dmFsOworIAorICAgICBnX3NsaWNlX2ZyZWUg KFByb2Nlc3NLZXlFdmVudERhdGEsIGRhdGEpOworLSAgICBnYm9vbGVhbiByZXR2YWwgPSBpYnVz X2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmNfZmluaXNoICgKKy0gICAgICAg ICAgICBjb250ZXh0LAorLSAgICAgICAgICAgIHJlcywKKy0gICAgICAgICAgICAmZXJyb3IpOwor KyAgICByZXR2YWwgPSBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnRfYXN5bmNf ZmluaXNoIChjb250ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXMsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcik7CisgCisgICAg IGlmIChlcnJvciAhPSBOVUxMKSB7CisgICAgICAgICBnX3dhcm5pbmcgKCJQcm9jZXNzIEtleSBF dmVudCBmYWlsZWQ6ICVzLiIsIGVycm9yLT5tZXNzYWdlKTsKK0BAIC00MzEsNiArNDM0LDI3IEBA IF9wcm9jZXNzX2tleV9ldmVudF9kb25lIChHT2JqZWN0ICAgICAgKm9iamVjdCwKKyAjZW5kaWYK KyB9CisgCisrc3RhdGljIHZvaWQKKytfcHJvY2Vzc19rZXlfZXZlbnRfcmVwbHlfZG9uZSAoR09i amVjdCAgICAgICpvYmplY3QsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3lu Y1Jlc3VsdCAqcmVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAg ICAgIHVzZXJfZGF0YSkKKyt7CisrICAgIElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQgPSAoSUJ1 c0lucHV0Q29udGV4dCAqKW9iamVjdDsKKysgICAgUHJvY2Vzc0tleUV2ZW50UmVwbHlEYXRhICpk YXRhID0gKFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSAqKXVzZXJfZGF0YTsKKysgICAgR0Vycm9y ICplcnJvciA9IE5VTEw7CisrICAgIGdib29sZWFuIHJldHZhbCA9IGlidXNfaW5wdXRfY29udGV4 dF9wcm9jZXNzX2tleV9ldmVudF9hc3luY19maW5pc2ggKAorKyAgICAgICAgICAgIGNvbnRleHQs CisrICAgICAgICAgICAgcmVzLAorKyAgICAgICAgICAgICZlcnJvcik7CisrICAgIGlmIChlcnJv ciAhPSBOVUxMKSB7CisrICAgICAgICBnX3dhcm5pbmcgKCJQcm9jZXNzIEtleSBFdmVudCBmYWls ZWQ6ICVzLiIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3Ip OworKyAgICB9CisrICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGRhdGEpOworKyAgICBkYXRhLT5yZXR2 YWwgPSByZXR2YWw7CisrICAgIGdfbWFpbl9sb29wX3F1aXQgKGRhdGEtPmxvb3ApOworK30KKysK KyBzdGF0aWMgZ2Jvb2xlYW4KKyBfcHJvY2Vzc19rZXlfZXZlbnQgKElCdXNJbnB1dENvbnRleHQg KmNvbnRleHQsCisgI2lmIEdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKK0BAIC00NjIsMTMg KzQ4Niw0NSBAQCBfcHJvY2Vzc19rZXlfZXZlbnQgKElCdXNJbnB1dENvbnRleHQgKmNvbnRleHQs CisgI2VuZGlmCisgICAgIGtleWNvZGUgPSBoYXJkd2FyZV9rZXljb2RlOworIAorLSAgICBpZiAo X3VzZV9zeW5jX21vZGUpIHsKKysgICAgc3dpdGNoIChfdXNlX3N5bmNfbW9kZSkgeworKyAgICBj YXNlIDE6IHsKKyAgICAgICAgIHJldHZhbCA9IGlidXNfaW5wdXRfY29udGV4dF9wcm9jZXNzX2tl eV9ldmVudCAoY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga2V5dmFsLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBrZXljb2RlIC0gOCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUpOworKyAgICAgICAg YnJlYWs7CisrICAgIH0KKysgICAgY2FzZSAyOiB7CisrICAgICAgICBHTWFpbkxvb3AgKmxvb3Ag PSBnX21haW5fbG9vcF9uZXcgKE5VTEwsIFRSVUUpOworKyAgICAgICAgUHJvY2Vzc0tleUV2ZW50 UmVwbHlEYXRhICpkYXRhID0gTlVMTDsKKysKKysgICAgICAgIGlmIChsb29wKQorKyAgICAgICAg ICAgIGRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlFdmVudFJlcGx5RGF0YSk7CisrICAg ICAgICBpZiAoIWRhdGEpIHsKKysgICAgICAgICAgICBnX3dhcm5pbmcgKCJDYW5ub3Qgd2FpdCBm b3IgdGhlIHJlcGx5IG9mIHRoZSBwcm9jZXNzIGtleSBldmVudC4iKTsKKysgICAgICAgICAgICBy ZXR2YWwgPSBpYnVzX2lucHV0X2NvbnRleHRfcHJvY2Vzc19rZXlfZXZlbnQgKGNvbnRleHQsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBrZXl2YWwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBrZXljb2RlIC0gOCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlKTsKKysgICAgICAgICAgICBpZiAo bG9vcCkKKysgICAgICAgICAgICAgICAgZ19tYWluX2xvb3BfcXVpdCAobG9vcCk7CisrICAgICAg ICAgICAgYnJlYWs7CisrICAgICAgICB9CisrICAgICAgICBkYXRhLT5sb29wID0gbG9vcDsKKysg ICAgICAgIGlidXNfaW5wdXRfY29udGV4dF9wcm9jZXNzX2tleV9ldmVudF9hc3luYyAoY29udGV4 dCwKKyAgICAgICAgICAgICBrZXl2YWwsCisgICAgICAgICAgICAga2V5Y29kZSAtIDgsCistICAg ICAgICAgICAgc3RhdGUpOworKyAgICAgICAgICAgIHN0YXRlLAorKyAgICAgICAgICAgIC0xLAor KyAgICAgICAgICAgIE5VTEwsCisrICAgICAgICAgICAgX3Byb2Nlc3Nfa2V5X2V2ZW50X3JlcGx5 X2RvbmUsCisrICAgICAgICAgICAgZGF0YSk7CisrICAgICAgICBnX21haW5fbG9vcF9ydW4gKGxv b3ApOworKyAgICAgICAgcmV0dmFsID0gZGF0YS0+cmV0dmFsOworKyAgICAgICAgZ19zbGljZV9m cmVlIChQcm9jZXNzS2V5RXZlbnRSZXBseURhdGEsIGRhdGEpOworKyAgICAgICAgYnJlYWs7Cisg ICAgIH0KKy0gICAgZWxzZSB7CisrICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgIFByb2Nlc3NLZXlF dmVudERhdGEgKmRhdGEgPSBnX3NsaWNlX25ldzAgKFByb2Nlc3NLZXlFdmVudERhdGEpOworICNp ZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCisgICAgICAgICBkYXRhLT5ldmVudCA9IGdk a19ldmVudF9yZWYgKGV2ZW50KTsKK0BAIC00ODcsNiArNTQzLDcgQEAgX3Byb2Nlc3Nfa2V5X2V2 ZW50IChJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorIAorICAgICAgICAgcmV0dmFsID0gVFJV RTsKKyAgICAgfQorKyAgICB9CisgCisgICAgIC8qIEdUSzQgZG9lcyBub3QgcHJvdmlkZSBndGtf a2V5X3Nub29wZXJfaW5zdGFsbCgpIGFuZCBhbHNvCisgICAgICAqIEd0a0lNQ29udGV4dENsYXNz LT5maWx0ZXJfa2V5cHJlc3MoKSBjYW5ub3Qgc2VuZCB0aGUgdXBkYXRlZAorQEAgLTY3NiwyNCAr NzMzLDQ3IEBAIF9rZXlfc25vb3Blcl9jYiAoR3RrV2lkZ2V0ICAgKndpZGdldCwKKyAjZW5kaWYK KyAKKyBzdGF0aWMgZ2Jvb2xlYW4KKy1fZ2V0X2Jvb2xlYW5fZW52KGNvbnN0IGdjaGFyICpuYW1l LAorLSAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgIGRlZnZhbCkKKytfZ2V0X2Jvb2xlYW5f ZW52IChjb25zdCBnY2hhciAqbmFtZSwKKysgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAg ZGVmdmFsKQorIHsKKyAgICAgY29uc3QgZ2NoYXIgKnZhbHVlID0gZ19nZXRlbnYgKG5hbWUpOwor IAorICAgICBpZiAodmFsdWUgPT0gTlVMTCkKKy0gICAgICByZXR1cm4gZGVmdmFsOworKyAgICAg ICAgcmV0dXJuIGRlZnZhbDsKKyAKKyAgICAgaWYgKGdfc3RyY21wMCAodmFsdWUsICIiKSA9PSAw IHx8CisgICAgICAgICBnX3N0cmNtcDAgKHZhbHVlLCAiMCIpID09IDAgfHwKKyAgICAgICAgIGdf c3RyY21wMCAodmFsdWUsICJmYWxzZSIpID09IDAgfHwKKyAgICAgICAgIGdfc3RyY21wMCAodmFs dWUsICJGYWxzZSIpID09IDAgfHwKKy0gICAgICAgIGdfc3RyY21wMCAodmFsdWUsICJGQUxTRSIp ID09IDApCistICAgICAgcmV0dXJuIEZBTFNFOworKyAgICAgICAgZ19zdHJjbXAwICh2YWx1ZSwg IkZBTFNFIikgPT0gMCkgeworKyAgICAgICAgcmV0dXJuIEZBTFNFOworKyAgICB9CisgCisgICAg IHJldHVybiBUUlVFOworIH0KKyAKKytzdGF0aWMgY2hhcgorK19nZXRfY2hhcl9lbnYgKGNvbnN0 IGdjaGFyICpuYW1lLAorKyAgICAgICAgICAgICAgIGNoYXIgICAgICAgICBkZWZ2YWwpCisrewor KyAgICBjb25zdCBnY2hhciAqdmFsdWUgPSBnX2dldGVudiAobmFtZSk7CisrCisrICAgIGlmICh2 YWx1ZSA9PSBOVUxMKQorKyAgICAgICAgcmV0dXJuIGRlZnZhbDsKKysKKysgICAgaWYgKGdfc3Ry Y21wMCAodmFsdWUsICIiKSA9PSAwIHx8CisrICAgICAgICBnX3N0cmNtcDAgKHZhbHVlLCAiMCIp ID09IDAgfHwKKysgICAgICAgIGdfc3RyY21wMCAodmFsdWUsICJmYWxzZSIpID09IDAgfHwKKysg ICAgICAgIGdfc3RyY21wMCAodmFsdWUsICJGYWxzZSIpID09IDAgfHwKKysgICAgICAgIGdfc3Ry Y21wMCAodmFsdWUsICJGQUxTRSIpID09IDApIHsKKysgICAgICAgIHJldHVybiAwOworKyAgICB9 IGVsc2UgaWYgKCFnX3N0cmNtcDAgKHZhbHVlLCAiMiIpKSB7CisrICAgICAgICByZXR1cm4gMjsK KysgICAgfQorKworKyAgICByZXR1cm4gMTsKKyt9CisrCisgc3RhdGljIHZvaWQKKyBkYWVtb25f bmFtZV9hcHBlYXJlZCAoR0RCdXNDb25uZWN0aW9uICpjb25uZWN0aW9uLAorICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgKm5hbWUsCitAQCAtNzc3LDExICs4NTcsMTEgQEAg aWJ1c19pbV9jb250ZXh0X2NsYXNzX2luaXQgKElCdXNJTUNvbnRleHRDbGFzcyAqY2xhc3MpCisg ICAgIGdfYXNzZXJ0IChfc2lnbmFsX3JldHJpZXZlX3N1cnJvdW5kaW5nX2lkICE9IDApOworIAor ICNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgOTgsIDQpCistICAgIF91c2Vfc3luY19tb2RlID0g X2dldF9ib29sZWFuX2VudiAoIklCVVNfRU5BQkxFX1NZTkNfTU9ERSIsIFRSVUUpOworKyAgICBf dXNlX3N5bmNfbW9kZSA9IF9nZXRfY2hhcl9lbnYgKCJJQlVTX0VOQUJMRV9TWU5DX01PREUiLCAy KTsKKyAjZWxzZQorICAgICBfdXNlX2tleV9zbm9vcGVyID0gIV9nZXRfYm9vbGVhbl9lbnYgKCJJ QlVTX0RJU0FCTEVfU05PT1BFUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIShFTkFCTEVfU05PT1BFUikpOworLSAgICBfdXNlX3N5bmNfbW9kZSA9IF9nZXRf Ym9vbGVhbl9lbnYgKCJJQlVTX0VOQUJMRV9TWU5DX01PREUiLCBGQUxTRSk7CisrICAgIF91c2Vf c3luY19tb2RlID0gKGNoYXIpX2dldF9jaGFyX2VudiAoIklCVVNfRU5BQkxFX1NZTkNfTU9ERSIs IDApOworICNlbmRpZgorICAgICBfdXNlX2Rpc2NhcmRfcGFzc3dvcmQgPSBfZ2V0X2Jvb2xlYW5f ZW52ICgiSUJVU19ESVNDQVJEX1BBU1NXT1JEIiwgRkFMU0UpOworIAorQEAgLTkwNCw2ICs5ODQs OCBAQCBpYnVzX2ltX2NvbnRleHRfaW5pdCAoR09iamVjdCAqb2JqKQorICNlbHNlCisgICAgIGli dXNpbWNvbnRleHQtPmNhcHMgPSBJQlVTX0NBUF9QUkVFRElUX1RFWFQgfCBJQlVTX0NBUF9GT0NV UzsKKyAjZW5kaWYKKysgICAgaWYgKF91c2Vfc3luY19tb2RlICE9IDEpCisrICAgICAgICBpYnVz aW1jb250ZXh0LT5jYXBzIHw9IElCVVNfQ0FQX1NZTkNfUFJPQ0VTU19LRVk7CisgCisgICAgIGli dXNpbWNvbnRleHQtPmV2ZW50c19xdWV1ZSA9IGdfcXVldWVfbmV3ICgpOworIAorQEAgLTEyNDYs NyArMTMyOCw3IEBAIGlidXNfaW1fY29udGV4dF9yZXNldCAoR3RrSU1Db250ZXh0ICpjb250ZXh0 KQorICAgICAgICAgICogSUJ1cyB1c2VzIGJ1dHRvbi1wcmVzcy1ldmVudCBpbnN0ZWFkIHVudGls IEdUSyBpcyBmaXhlZC4KKyAgICAgICAgICAqIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9N RS9ndGsvaXNzdWVzLzE1MzQKKyAgICAgICAgICAqLworLSAgICAgICAgaWYgKF91c2Vfc3luY19t b2RlKQorKyAgICAgICAgaWYgKF91c2Vfc3luY19tb2RlID09IDEpCisgICAgICAgICAgICAgaWJ1 c19pbV9jb250ZXh0X2NsZWFyX3ByZWVkaXRfdGV4dCAoaWJ1c2ltY29udGV4dCk7CisgICAgICAg ICBpYnVzX2lucHV0X2NvbnRleHRfcmVzZXQgKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KTsK KyAgICAgfQorQEAgLTEzNjEsNyArMTQ0Myw3IEBAIGlidXNfaW1fY29udGV4dF9zZXRfY2xpZW50 X3dpbmRvdyAoR3RrSU1Db250ZXh0ICpjb250ZXh0LAorIAorICAgICBpZiAoaWJ1c2ltY29udGV4 dC0+Y2xpZW50X3dpbmRvdykgeworICNpZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQor LSAgICAgICAgaWYgKGlidXNpbWNvbnRleHQtPnVzZV9idXR0b25fcHJlc3NfZXZlbnQgJiYgIV91 c2Vfc3luY19tb2RlKQorKyAgICAgICAgaWYgKGlidXNpbWNvbnRleHQtPnVzZV9idXR0b25fcHJl c3NfZXZlbnQgJiYgX3VzZV9zeW5jX21vZGUgIT0gMSkKKyAgICAgICAgICAgICBfY29ubmVjdF9i dXR0b25fcHJlc3NfZXZlbnQgKGlidXNpbWNvbnRleHQsIEZBTFNFKTsKKyAjZW5kaWYKKyAgICAg ICAgIGdfb2JqZWN0X3VucmVmIChpYnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93KTsKK0BAIC0x MzcxLDcgKzE0NTMsNyBAQCBpYnVzX2ltX2NvbnRleHRfc2V0X2NsaWVudF93aW5kb3cgKEd0a0lN Q29udGV4dCAqY29udGV4dCwKKyAgICAgaWYgKGNsaWVudCAhPSBOVUxMKSB7CisgICAgICAgICBp YnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93ID0gZ19vYmplY3RfcmVmIChjbGllbnQpOworICNp ZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorLSAgICAgICAgaWYgKCFpYnVzaW1jb250 ZXh0LT51c2VfYnV0dG9uX3ByZXNzX2V2ZW50ICYmICFfdXNlX3N5bmNfbW9kZSkKKysgICAgICAg IGlmICghaWJ1c2ltY29udGV4dC0+dXNlX2J1dHRvbl9wcmVzc19ldmVudCAmJiBfdXNlX3N5bmNf bW9kZSAhPSAxKQorICAgICAgICAgICAgIF9jb25uZWN0X2J1dHRvbl9wcmVzc19ldmVudCAoaWJ1 c2ltY29udGV4dCwgVFJVRSk7CisgI2VuZGlmCisgICAgIH0KK0BAIC0xOTkzLDcgKzIwNzUsNyBA QCBfaWJ1c19jb250ZXh0X3VwZGF0ZV9wcmVlZGl0X3RleHRfY2IgKElCdXNJbnB1dENvbnRleHQg ICppYnVzY29udGV4dCwKKyAjaWYgIUdUS19DSEVDS19WRVJTSU9OICgzLCA5OCwgNCkKKyAgICAg aWYgKCFpYnVzaW1jb250ZXh0LT51c2VfYnV0dG9uX3ByZXNzX2V2ZW50ICYmCisgICAgICAgICBt b2RlID09IElCVVNfRU5HSU5FX1BSRUVESVRfQ09NTUlUICYmCistICAgICAgICAhX3VzZV9zeW5j X21vZGUpIHsKKysgICAgICAgIF91c2Vfc3luY19tb2RlICE9IDEpIHsKKyAgICAgICAgIGlmIChp YnVzaW1jb250ZXh0LT5jbGllbnRfd2luZG93KSB7CisgICAgICAgICAgICAgX2Nvbm5lY3RfYnV0 dG9uX3ByZXNzX2V2ZW50IChpYnVzaW1jb250ZXh0LCBUUlVFKTsKKyAgICAgICAgIH0KK0BAIC0y MjAwLDYgKzIyODIsOCBAQCBfY3JlYXRlX2lucHV0X2NvbnRleHRfZG9uZSAoSUJ1c0J1cyAgICAg ICAqYnVzLAorIHN0YXRpYyB2b2lkCisgX2NyZWF0ZV9pbnB1dF9jb250ZXh0IChJQnVzSU1Db250 ZXh0ICppYnVzaW1jb250ZXh0KQorIHsKKysgICAgZ2NoYXIgKnByZ25hbWUgPSBnX3N0cmR1cCAo Z19nZXRfcHJnbmFtZSgpKTsKKysgICAgZ2NoYXIgKmNsaWVudF9uYW1lOworICAgICBJREVCVUcg KCIlcyIsIF9fRlVOQ1RJT05fXyk7CisgCisgICAgIGdfYXNzZXJ0IChpYnVzaW1jb250ZXh0LT5p YnVzY29udGV4dCA9PSBOVUxMKTsKK0BAIC0yMjA4LDExICsyMjkyLDI0IEBAIF9jcmVhdGVfaW5w dXRfY29udGV4dCAoSUJ1c0lNQ29udGV4dCAqaWJ1c2ltY29udGV4dCkKKyAKKyAgICAgaWJ1c2lt Y29udGV4dC0+Y2FuY2VsbGFibGUgPSBnX2NhbmNlbGxhYmxlX25ldyAoKTsKKyAKKysgICAgaWYg KCFwcmduYW1lKQorKyAgICAgICAgcHJnbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoIiglZCkiLCBn ZXRwaWQgKCkpOworKyAgICBjbGllbnRfbmFtZSA9IGdfc3RyZHVwX3ByaW50ZiAoIiVzOiVzIiwK KysjaWYgR1RLX0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImd0azQtaW0iLAorKyNlbGlmIEdUS19DSEVDS19WRVJTSU9OICgyLCA5 MSwgMCkKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJndGszLWltIiwKKysj ZWxzZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImd0ay1pbSIsCisrI2Vu ZGlmCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmduYW1lKTsKKysgICAg Z19mcmVlIChwcmduYW1lKTsKKyAgICAgaWJ1c19idXNfY3JlYXRlX2lucHV0X2NvbnRleHRfYXN5 bmMgKF9idXMsCistICAgICAgICAgICAgImd0ay1pbSIsIC0xLAorKyAgICAgICAgICAgIGNsaWVu dF9uYW1lLCAtMSwKKyAgICAgICAgICAgICBpYnVzaW1jb250ZXh0LT5jYW5jZWxsYWJsZSwKKyAg ICAgICAgICAgICAoR0FzeW5jUmVhZHlDYWxsYmFjaylfY3JlYXRlX2lucHV0X2NvbnRleHRfZG9u ZSwKKyAgICAgICAgICAgICBnX29iamVjdF9yZWYgKGlidXNpbWNvbnRleHQpKTsKKysgICAgZ19m cmVlIChjbGllbnRfbmFtZSk7CisgfQorIAorIC8qIENhbGxiYWNrIGZ1bmN0aW9ucyBmb3Igc2xh dmUgY29udGV4dCAqLworQEAgLTIzMjksNiArMjQyNiw4IEBAIF9jcmVhdGVfZmFrZV9pbnB1dF9j b250ZXh0X2RvbmUgKElCdXNCdXMgICAgICAgKmJ1cywKKyAgICAgICAgICAgICAgICAgICAgICAg TlVMTCk7CisgCisgICAgIGd1aW50MzIgY2FwcyA9IElCVVNfQ0FQX1BSRUVESVRfVEVYVCB8IElC VVNfQ0FQX0ZPQ1VTIHwgSUJVU19DQVBfU1VSUk9VTkRJTkdfVEVYVDsKKysgICAgaWYgKF91c2Vf c3luY19tb2RlICE9IDEpCisrICAgICAgICBjYXBzIHw9IElCVVNfQ0FQX1NZTkNfUFJPQ0VTU19L RVk7CisgICAgIGlidXNfaW5wdXRfY29udGV4dF9zZXRfY2FwYWJpbGl0aWVzIChfZmFrZV9jb250 ZXh0LCBjYXBzKTsKKyAKKyAgICAgLyogZm9jdXMgaW4vb3V0IHRoZSBmYWtlIGNvbnRleHQgKi8K K2RpZmYgLS1naXQgYS9zcmMvaWJ1c3R5cGVzLmggYi9zcmMvaWJ1c3R5cGVzLmgKK2luZGV4IDYw YmNiOTJiLi5hOGVlZTMxOSAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzdHlwZXMuaAorKysrIGIvc3Jj L2lidXN0eXBlcy5oCitAQCAtMTA5LDYgKzEwOSw5IEBAIHR5cGVkZWYgZW51bQorICAqIEBJQlVT X0NBUF9TVVJST1VORElOR19URVhUOiBDbGllbnQgY2FuIHByb3ZpZGUgc3Vycm91bmQgdGV4dCwK KyAgKiAgb3IgSU1FIGNhbiBoYW5kbGUgc3Vycm91bmQgdGV4dC4KKyAgKiBASUJVU19DQVBfT1NL OiBVSSBpcyBvd25lZCBieSBvbi1zY3JlZW4ga2V5Ym9hcmQuCisrICogQElCVVNfQ0FQX1NZTkNf UFJPQ0VTU19LRVk6IEFzeW5jaHJvbm91cyBwcm9jZXNzIGtleSBldmVudHMgYXJlIG5vdAorKyAq ICBzdXBwb3J0ZWQgYW5kIHRoZSBpYnVzX2VuZ2luZV9mb3J3YXJkX2tleV9ldmVudCgpIHNob3Vs ZCBub3QgYmUKKysgKiAgdXNlZCBmb3IgdGhlIHJldHVybiB2YWx1ZSBvZiAjSUJ1c0VuZ2luZTo6 cHJvY2Vzc19rZXlfZXZlbnQoKS4KKyAgKgorICAqIENhcGFiaWxpdHkgZmxhZ3Mgb2YgVUkuCisg ICovCitAQCAtMTIwLDYgKzEyMyw3IEBAIHR5cGVkZWYgZW51bSB7CisgICAgIElCVVNfQ0FQX1BS T1BFUlRZICAgICAgICAgICA9IDEgPDwgNCwKKyAgICAgSUJVU19DQVBfU1VSUk9VTkRJTkdfVEVY VCAgID0gMSA8PCA1LAorICAgICBJQlVTX0NBUF9PU0sgICAgICAgICAgICAgICAgPSAxIDw8IDYs CisrICAgIElCVVNfQ0FQX1NZTkNfUFJPQ0VTU19LRVkgICA9IDEgPDwgNywKKyB9IElCdXNDYXBh YmlsaXRlOworIAorIC8qKgorLS0gCisyLjM1LjMKKworRnJvbSBiMTRjYWIzNzUzYzY1MTBhMGE0 OGVlYzY3M2FhNmVhYzg5Yzc5M2ExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVq aXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorRGF0ZTogVGh1LCA3IEp1bCAyMDIy IDA4OjIyOjQ1ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIHNyYy9pYnVzZW5naW5lOiBBZGQgZm9j dXNfaW5faWQoKS9mb2N1c19vdXRfaWQoKSBjbGFzcworIG1ldGhvZHMKKworSUJ1c0VuZ2luZSBj b25zdHJ1Y3RvciBub3cgaGFzIGEgJ2hhcy1mb2N1cy1pZCcgcHJvcGVydHkgYW5kIGlmIGl0J3Mg JVRSVUUsCitJQnVzRW5naW5lOjpmb2N1c19pbl9pZCgpL2ZvY3VzX291dF9pZCgpIGFyZSBjYWxs ZWQgaW5zdGFlZCBvZgorSUJ1c0VuZ2luZTo6Zm9jdXNfaW4oKS9mb2N1c19vdXQoKSBhbmQgdGhl IGNsYXNzIG1ldGhvZCBoYXMgYW4gb2JqZWN0X3BhdGgKK2FyZ3VtZW50IGZvciB0aGUgdW5pcXVl IGlucHV0IGNvbnRleHQgSUQgYW5kIGEgY2xpZW50IGFyZ3VtZW50IGZvcgordGhlIGNsaWVudCBh cHBsaWNhdGlvbiB0eXBlIGxpa2VzIGlidXMtZ3RrLCBpYnVzLWd0azQsIHhpbS4KKy0tLQorIGJ1 cy9lbmdpbmVwcm94eS5jICAgICAgIHwgMzA0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0KKyBidXMvZW5naW5lcHJveHkuaCAgICAgICB8ICAxMiArLQorIGJ1cy9pYnVz aW1wbC5jICAgICAgICAgIHwgIDEzICsrCisgYnVzL2lidXNpbXBsLmggICAgICAgICAgfCAgMTMg Ky0KKyBidXMvaW5wdXRjb250ZXh0LmMgICAgICB8ICA1MCArKysrKy0tCisgc3JjL2lidXNlbmdp bmUuYyAgICAgICAgfCAyMTcgKysrKysrKysrKysrKysrKysrKysrKysrKystLQorIHNyYy9pYnVz ZW5naW5lLmggICAgICAgIHwgIDEwICstCisgc3JjL2lidXNtYXJzaGFsZXJzLmxpc3QgfCAgIDEg KworIDggZmlsZXMgY2hhbmdlZCwgNTA1IGluc2VydGlvbnMoKyksIDExNSBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL2J1cy9lbmdpbmVwcm94eS5jIGIvYnVzL2VuZ2luZXByb3h5LmMKK2lu ZGV4IDJkOTg5OTVjLi5mZDFmMzRmYiAxMDA2NDQKKy0tLSBhL2J1cy9lbmdpbmVwcm94eS5jCisr KysgYi9idXMvZW5naW5lcHJveHkuYworQEAgLTIsNyArMiw3IEBACisgLyogdmltOnNldCBldCBz dHM9NDogKi8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAw OC0yMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdo dCAoQykgMjAxNS0yMDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29t PgorKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIyIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWpp d2FyYTFAZ21haWwuY29tPgorICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE2IFJlZCBIYXQsIElu Yy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IKK0BAIC01OSw2ICs1OSw3IEBAIHN0cnVjdCBfQnVzRW5naW5lUHJv eHkgeworIAorICAgICAvKiBjYWNoZWQgcHJvcGVydGllcyAqLworICAgICBJQnVzUHJvcExpc3Qg KnByb3BfbGlzdDsKKysgICAgZ2Jvb2xlYW4gaGFzX2ZvY3VzX2lkOworIH07CisgCisgc3RydWN0 IF9CdXNFbmdpbmVQcm94eUNsYXNzIHsKK0BAIC0xMDUsMzAgKzEwNiwzNSBAQCBzdGF0aWMgSUJ1 c1RleHQgKnRleHRfZW1wdHkgPSBOVUxMOworIHN0YXRpYyBJQnVzUHJvcExpc3QgKnByb3BfbGlz dF9lbXB0eSA9IE5VTEw7CisgCisgLyogZnVuY3Rpb25zIHByb3RvdHlwZSAqLworLXN0YXRpYyB2 b2lkICAgICBidXNfZW5naW5lX3Byb3h5X3NldF9wcm9wZXJ0eSAgIChCdXNFbmdpbmVQcm94eSAg ICAgICplbmdpbmUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGd1aW50ICAgICAgICAgICAgICAgIHByb3BfaWQsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAgICAgICAgKnZhbHVl LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUGFy YW1TcGVjICAgICAgICAgICpwc3BlYyk7Cistc3RhdGljIHZvaWQgICAgIGJ1c19lbmdpbmVfcHJv eHlfZ2V0X3Byb3BlcnR5ICAgKEJ1c0VuZ2luZVByb3h5ICAgICAgKmVuZ2luZSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAg ICAgICAgcHJvcF9pZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR1ZhbHVlICAgICAgICAgICAgICAqdmFsdWUsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgICAgICAgICAgKnBzcGVj KTsKKytzdGF0aWMgdm9pZCAgICAgYnVzX2VuZ2luZV9wcm94eV9zZXRfcHJvcGVydHkgICAoQnVz RW5naW5lUHJveHkgICAgKmVuZ2luZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgIHByb3BfaWQsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAgICAg ICp2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR1BhcmFtU3BlYyAgICAgICAgKnBzcGVjKTsKKytzdGF0aWMgdm9pZCAgICAgYnVzX2VuZ2lu ZV9wcm94eV9nZXRfcHJvcGVydHkgICAoQnVzRW5naW5lUHJveHkgICAgKmVuZ2luZSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAg ICAgICAgIHByb3BfaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdWYWx1ZSAgICAgICAgICAgICp2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1BhcmFtU3BlYyAgICAgICAgKnBzcGVjKTsK KyBzdGF0aWMgdm9pZCAgICAgYnVzX2VuZ2luZV9wcm94eV9yZWFsX3JlZ2lzdGVyX3Byb3BlcnRp ZXMKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnVz RW5naW5lUHJveHkgICAgICAqZW5naW5lLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJQnVzUHJvcExpc3QgICAgICAgICpwcm9wX2xpc3QpOworKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCdXNFbmdpbmVQ cm94eSAgICAqZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJQnVzUHJvcExpc3QgICAgICAqcHJvcF9saXN0KTsKKyBzdGF0aWMgdm9pZCAg ICAgYnVzX2VuZ2luZV9wcm94eV9yZWFsX3VwZGF0ZV9wcm9wZXJ0eQorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCdXNFbmdpbmVQcm94eSAgICAgICpl bmdpbmUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElCdXNQcm9wZXJ0eSAgICAgICAgKnByb3ApOworLXN0YXRpYyB2b2lkICAgICBidXNfZW5naW5l X3Byb3h5X3JlYWxfZGVzdHJveSAgIChJQnVzUHJveHkgICAgICAgICAgICpwcm94eSk7Cistc3Rh dGljIHZvaWQgICAgIGJ1c19lbmdpbmVfcHJveHlfZ19zaWduYWwgICAgICAgKEdEQnVzUHJveHkg ICAgICAgICAgKnByb3h5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICpzZW5kZXJfbmFtZSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAg ICAqc2lnbmFsX25hbWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdWYXJpYW50ICAgICAgICAgICAgKnBhcmFtZXRlcnMpOworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCdXNFbmdpbmVQcm94eSAgICAq ZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJQnVzUHJvcGVydHkgICAgICAqcHJvcCk7Cisrc3RhdGljIHZvaWQgICAgIGJ1c19lbmdpbmVf cHJveHlfcmVhbF9kZXN0cm95ICAgKElCdXNQcm94eSAgICAgICAgICpwcm94eSk7Cisrc3RhdGlj IHZvaWQgICAgIGJ1c19lbmdpbmVfcHJveHlfZ19zaWduYWwgICAgICAgKEdEQnVzUHJveHkgICAg ICAgICpwcm94eSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgZ2NoYXIgICAgICAgKnNlbmRlcl9uYW1lLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAqc2lnbmFs X25hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdWYXJpYW50ICAgICAgICAgICpwYXJhbWV0ZXJzKTsKKyBzdGF0aWMgdm9pZCAgICAgYnVzX2Vu Z2luZV9wcm94eV9pbml0YWJsZV9pZmFjZV9pbml0CistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKEdJbml0YWJsZUlmYWNlICAgICAgKmluaXRhYmxlX2lm YWNlKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo R0luaXRhYmxlSWZhY2UKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqaW5pdGFibGVfaWZhY2UpOworK3N0YXRpYyB2b2lkICAg ICBidXNfZW5naW5lX3Byb3h5X2dldF9oYXNfZm9jdXNfaWQKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnVzRW5naW5lUHJveHkgICAgKmVuZ2luZSk7 CisgCisgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKEJ1c0VuZ2luZVByb3h5LCBidXNfZW5naW5l X3Byb3h5LCBJQlVTX1RZUEVfUFJPWFksCistICAgICAgICAgICAgICAgICAgICAgICAgIEdfSU1Q TEVNRU5UX0lOVEVSRkFDRSAoR19UWVBFX0lOSVRBQkxFLCBidXNfZW5naW5lX3Byb3h5X2luaXRh YmxlX2lmYWNlX2luaXQpCisrICAgICAgICAgICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5UX0lO VEVSRkFDRSAoCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0lOSVRB QkxFLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlf aW5pdGFibGVfaWZhY2VfaW5pdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICApOworIAorIHN0 YXRpYyBHSW5pdGFibGVJZmFjZSAqcGFyZW50X2luaXRhYmxlX2lmYWNlID0gTlVMTDsKK0BAIC0x MzgsOCArMTQ0LDEwIEBAIGJ1c19lbmdpbmVfcHJveHlfY2xhc3NfaW5pdCAoQnVzRW5naW5lUHJv eHlDbGFzcyAqY2xhc3MpCisgeworICAgICBHT2JqZWN0Q2xhc3MgKmdvYmplY3RfY2xhc3MgPSBH X09CSkVDVF9DTEFTUyAoY2xhc3MpOworIAorLSAgICBnb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVy dHkgPSAoR09iamVjdFNldFByb3BlcnR5RnVuYylidXNfZW5naW5lX3Byb3h5X3NldF9wcm9wZXJ0 eTsKKy0gICAgZ29iamVjdF9jbGFzcy0+Z2V0X3Byb3BlcnR5ID0gKEdPYmplY3RHZXRQcm9wZXJ0 eUZ1bmMpYnVzX2VuZ2luZV9wcm94eV9nZXRfcHJvcGVydHk7CisrICAgIGdvYmplY3RfY2xhc3Mt PnNldF9wcm9wZXJ0eSA9CisrICAgICAgICAgICAgKEdPYmplY3RTZXRQcm9wZXJ0eUZ1bmMpYnVz X2VuZ2luZV9wcm94eV9zZXRfcHJvcGVydHk7CisrICAgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9w ZXJ0eSA9CisrICAgICAgICAgICAgKEdPYmplY3RHZXRQcm9wZXJ0eUZ1bmMpYnVzX2VuZ2luZV9w cm94eV9nZXRfcHJvcGVydHk7CisgCisgICAgIGNsYXNzLT5yZWdpc3Rlcl9wcm9wZXJ0aWVzID0g YnVzX2VuZ2luZV9wcm94eV9yZWFsX3JlZ2lzdGVyX3Byb3BlcnRpZXM7CisgICAgIGNsYXNzLT51 cGRhdGVfcHJvcGVydHkgPSBidXNfZW5naW5lX3Byb3h5X3JlYWxfdXBkYXRlX3Byb3BlcnR5Owor QEAgLTE0Nyw4ICsxNTUsOSBAQCBidXNfZW5naW5lX3Byb3h5X2NsYXNzX2luaXQgKEJ1c0VuZ2lu ZVByb3h5Q2xhc3MgKmNsYXNzKQorICAgICBJQlVTX1BST1hZX0NMQVNTIChjbGFzcyktPmRlc3Ry b3kgPSBidXNfZW5naW5lX3Byb3h5X3JlYWxfZGVzdHJveTsKKyAgICAgR19EQlVTX1BST1hZX0NM QVNTIChjbGFzcyktPmdfc2lnbmFsID0gYnVzX2VuZ2luZV9wcm94eV9nX3NpZ25hbDsKKyAKKy0g ICAgcGFyZW50X2luaXRhYmxlX2lmYWNlID0KKy0gICAgICAgICAgICAoR0luaXRhYmxlSWZhY2Ug KilnX3R5cGVfaW50ZXJmYWNlX3BlZWsgKGJ1c19lbmdpbmVfcHJveHlfcGFyZW50X2NsYXNzLCBH X1RZUEVfSU5JVEFCTEUpOworKyAgICBwYXJlbnRfaW5pdGFibGVfaWZhY2UgPSAoR0luaXRhYmxl SWZhY2UgKilnX3R5cGVfaW50ZXJmYWNlX3BlZWsgKAorKyAgICAgICAgICAgIGJ1c19lbmdpbmVf cHJveHlfcGFyZW50X2NsYXNzLAorKyAgICAgICAgICAgIEdfVFlQRV9JTklUQUJMRSk7CisgCisg ICAgIC8qIGluc3RhbGwgcHJvcGVydGllcyAqLworICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs X3Byb3BlcnR5IChnb2JqZWN0X2NsYXNzLAorQEAgLTE2NCw3ICsxNzMsOSBAQCBidXNfZW5naW5l X3Byb3h5X2NsYXNzX2luaXQgKEJ1c0VuZ2luZVByb3h5Q2xhc3MgKmNsYXNzKQorICAgICAgICAg ICAgICAgICAgICAgICAgIEdfUEFSQU1fU1RBVElDX05JQ0sKKyAgICAgICAgICAgICAgICAgICAg ICAgICApKTsKKyAKKy0gICAgLyogaW5zdGFsbCBnbGliIHNpZ25hbHMgdGhhdCB3aWxsIGJlIHNl bnQgd2hlbiBjb3JyZXNwb25kaW5nIEQtQnVzIHNpZ25hbHMgYXJlIHNlbnQgZnJvbSBhbiBlbmdp bmUgcHJvY2Vzcy4gKi8KKysgICAgLyogaW5zdGFsbCBnbGliIHNpZ25hbHMgdGhhdCB3aWxsIGJl IHNlbnQgd2hlbiBjb3JyZXNwb25kaW5nIEQtQnVzIHNpZ25hbHMKKysgICAgICogYXJlIHNlbnQg ZnJvbSBhbiBlbmdpbmUgcHJvY2Vzcy4KKysgICAgICovCisgICAgIGVuZ2luZV9zaWduYWxzW0NP TU1JVF9URVhUXSA9CisgICAgICAgICBnX3NpZ25hbF9uZXcgKElfKCJjb21taXQtdGV4dCIpLAor ICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTIChjbGFzcyksCitAQCAtNDczLDcgKzQ4NCw4 IEBAIGJ1c19lbmdpbmVfcHJveHlfcmVhbF9kZXN0cm95IChJQnVzUHJveHkgKnByb3h5KQorICAg ICAgICAgZW5naW5lLT5wcm9wX2xpc3QgPSBOVUxMOworICAgICB9CisgCistICAgIElCVVNfUFJP WFlfQ0xBU1MgKGJ1c19lbmdpbmVfcHJveHlfcGFyZW50X2NsYXNzKS0+ZGVzdHJveSAoKElCdXNQ cm94eSAqKWVuZ2luZSk7CisrICAgIElCVVNfUFJPWFlfQ0xBU1MgKGJ1c19lbmdpbmVfcHJveHlf cGFyZW50X2NsYXNzKS0+ZGVzdHJveSAoCisrICAgICAgICAgICAgKElCdXNQcm94eSAqKWVuZ2lu ZSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNDg2LDcgKzQ5OCw4IEBAIF9nX29iamVjdF91 bnJlZl9pZl9mbG9hdGluZyAoZ3BvaW50ZXIgaW5zdGFuY2UpCisgLyoqCisgICogYnVzX2VuZ2lu ZV9wcm94eV9nX3NpZ25hbDoKKyAgKgorLSAqIEhhbmRsZSBhbGwgRC1CdXMgc2lnbmFscyBmcm9t IHRoZSBlbmdpbmUgcHJvY2Vzcy4gVGhpcyBmdW5jdGlvbiBlbWl0cyBjb3JyZXNwb25kaW5nIGds aWIgc2lnbmFsIGZvciB0aGUgRC1CdXMgc2lnbmFsLgorKyAqIEhhbmRsZSBhbGwgRC1CdXMgc2ln bmFscyBmcm9tIHRoZSBlbmdpbmUgcHJvY2Vzcy4gVGhpcyBmdW5jdGlvbiBlbWl0cworKyAqIGNv cnJlc3BvbmRpbmcgZ2xpYiBzaWduYWwgZm9yIHRoZSBELUJ1cyBzaWduYWwuCisgICovCisgc3Rh dGljIHZvaWQKKyBidXNfZW5naW5lX3Byb3h5X2dfc2lnbmFsIChHREJ1c1Byb3h5ICAqcHJveHks CitAQCAtNTIyLDcgKzUzNSw5IEBAIGJ1c19lbmdpbmVfcHJveHlfZ19zaWduYWwgKEdEQnVzUHJv eHkgICpwcm94eSwKKyAgICAgICAgIH0KKyAgICAgfQorIAorLSAgICAvKiBIYW5kbGUgRC1CdXMg c2lnbmFscyB3aXRoIHBhcmFtZXRlcnMuIERlc2VyaWFsaXplIHRoZW0gYW5kIGVtaXQgYSBnbGli IHNpZ25hbC4gKi8KKysgICAgLyogSGFuZGxlIEQtQnVzIHNpZ25hbHMgd2l0aCBwYXJhbWV0ZXJz LiBEZXNlcmlhbGl6ZSB0aGVtIGFuZCBlbWl0IGEgZ2xpYgorKyAgICAgKiBzaWduYWwuCisrICAg ICAqLworICAgICBpZiAoZ19zdHJjbXAwIChzaWduYWxfbmFtZSwgIkNvbW1pdFRleHQiKSA9PSAw KSB7CisgICAgICAgICBHVmFyaWFudCAqYXJnMCA9IE5VTEw7CisgICAgICAgICBnX3ZhcmlhbnRf Z2V0IChwYXJhbWV0ZXJzLCAiKHYpIiwgJmFyZzApOworQEAgLTU2OCw3ICs1ODMsOCBAQCBidXNf ZW5naW5lX3Byb3h5X2dfc2lnbmFsIChHREJ1c1Byb3h5ICAqcHJveHksCisgICAgICAgICBnYm9v bGVhbiB2aXNpYmxlID0gRkFMU0U7CisgICAgICAgICBndWludCBtb2RlID0gMDsKKyAKKy0gICAg ICAgIGdfdmFyaWFudF9nZXQgKHBhcmFtZXRlcnMsICIodnVidSkiLCAmYXJnMCwgJmN1cnNvcl9w b3MsICZ2aXNpYmxlLCAmbW9kZSk7CisrICAgICAgICBnX3ZhcmlhbnRfZ2V0IChwYXJhbWV0ZXJz LCAiKHZ1YnUpIiwKKysgICAgICAgICAgICAgICAgICAgICAgICZhcmcwLCAmY3Vyc29yX3Bvcywg JnZpc2libGUsICZtb2RlKTsKKyAgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGFyZzAgIT0gTlVM TCk7CisgCisgICAgICAgICBJQnVzVGV4dCAqdGV4dCA9IElCVVNfVEVYVCAoaWJ1c19zZXJpYWxp emFibGVfZGVzZXJpYWxpemUgKGFyZzApKTsKK0BAIC01OTQsNyArNjEwLDExIEBAIGJ1c19lbmdp bmVfcHJveHlfZ19zaWduYWwgKEdEQnVzUHJveHkgICpwcm94eSwKKyAgICAgICAgIGdfdmFyaWFu dF91bnJlZiAoYXJnMCk7CisgICAgICAgICBnX3JldHVybl9pZl9mYWlsICh0ZXh0ICE9IE5VTEwp OworIAorLSAgICAgICAgZ19zaWduYWxfZW1pdCAoZW5naW5lLCBlbmdpbmVfc2lnbmFsc1tVUERB VEVfQVVYSUxJQVJZX1RFWFRdLCAwLCB0ZXh0LCB2aXNpYmxlKTsKKysgICAgICAgIGdfc2lnbmFs X2VtaXQgKGVuZ2luZSwKKysgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZV9zaWduYWxzW1VQ REFURV9BVVhJTElBUllfVEVYVF0sCisrICAgICAgICAgICAgICAgICAgICAgICAwLAorKyAgICAg ICAgICAgICAgICAgICAgICAgdGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGUp OworICAgICAgICAgX2dfb2JqZWN0X3VucmVmX2lmX2Zsb2F0aW5nICh0ZXh0KTsKKyAgICAgICAg IHJldHVybjsKKyAgICAgfQorQEAgLTYwNiwxMSArNjI2LDE2IEBAIGJ1c19lbmdpbmVfcHJveHlf Z19zaWduYWwgKEdEQnVzUHJveHkgICpwcm94eSwKKyAgICAgICAgIGdfdmFyaWFudF9nZXQgKHBh cmFtZXRlcnMsICIodmIpIiwgJmFyZzAsICZ2aXNpYmxlKTsKKyAgICAgICAgIGdfcmV0dXJuX2lm X2ZhaWwgKGFyZzAgIT0gTlVMTCk7CisgCistICAgICAgICBJQnVzTG9va3VwVGFibGUgKnRhYmxl ID0gSUJVU19MT09LVVBfVEFCTEUgKGlidXNfc2VyaWFsaXphYmxlX2Rlc2VyaWFsaXplIChhcmcw KSk7CisrICAgICAgICBJQnVzTG9va3VwVGFibGUgKnRhYmxlID0KKysgICAgICAgICAgICAgICAg SUJVU19MT09LVVBfVEFCTEUgKGlidXNfc2VyaWFsaXphYmxlX2Rlc2VyaWFsaXplIChhcmcwKSk7 CisgICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKGFyZzApOworICAgICAgICAgZ19yZXR1cm5faWZf ZmFpbCAodGFibGUgIT0gTlVMTCk7CisgCistICAgICAgICBnX3NpZ25hbF9lbWl0IChlbmdpbmUs IGVuZ2luZV9zaWduYWxzW1VQREFURV9MT09LVVBfVEFCTEVdLCAwLCB0YWJsZSwgdmlzaWJsZSk7 CisrICAgICAgICBnX3NpZ25hbF9lbWl0IChlbmdpbmUsCisrICAgICAgICAgICAgICAgICAgICAg ICBlbmdpbmVfc2lnbmFsc1tVUERBVEVfTE9PS1VQX1RBQkxFXSwKKysgICAgICAgICAgICAgICAg ICAgICAgIDAsCisrICAgICAgICAgICAgICAgICAgICAgICB0YWJsZSwKKysgICAgICAgICAgICAg ICAgICAgICAgIHZpc2libGUpOworICAgICAgICAgX2dfb2JqZWN0X3VucmVmX2lmX2Zsb2F0aW5n ICh0YWJsZSk7CisgICAgICAgICByZXR1cm47CisgICAgIH0KK0BAIC02MjAsMTEgKzY0NSwxNSBA QCBidXNfZW5naW5lX3Byb3h5X2dfc2lnbmFsIChHREJ1c1Byb3h5ICAqcHJveHksCisgICAgICAg ICBnX3ZhcmlhbnRfZ2V0IChwYXJhbWV0ZXJzLCAiKHYpIiwgJmFyZzApOworICAgICAgICAgZ19y ZXR1cm5faWZfZmFpbCAoYXJnMCAhPSBOVUxMKTsKKyAKKy0gICAgICAgIElCdXNQcm9wTGlzdCAq cHJvcF9saXN0ID0gSUJVU19QUk9QX0xJU1QgKGlidXNfc2VyaWFsaXphYmxlX2Rlc2VyaWFsaXpl IChhcmcwKSk7CisrICAgICAgICBJQnVzUHJvcExpc3QgKnByb3BfbGlzdCA9CisrICAgICAgICAg ICAgICAgIElCVVNfUFJPUF9MSVNUIChpYnVzX3NlcmlhbGl6YWJsZV9kZXNlcmlhbGl6ZSAoYXJn MCkpOworICAgICAgICAgZ192YXJpYW50X3VucmVmIChhcmcwKTsKKyAgICAgICAgIGdfcmV0dXJu X2lmX2ZhaWwgKHByb3BfbGlzdCAhPSBOVUxMKTsKKyAKKy0gICAgICAgIGdfc2lnbmFsX2VtaXQg KGVuZ2luZSwgZW5naW5lX3NpZ25hbHNbUkVHSVNURVJfUFJPUEVSVElFU10sIDAsIHByb3BfbGlz dCk7CisrICAgICAgICBnX3NpZ25hbF9lbWl0IChlbmdpbmUsCisrICAgICAgICAgICAgICAgICAg ICAgICBlbmdpbmVfc2lnbmFsc1tSRUdJU1RFUl9QUk9QRVJUSUVTXSwKKysgICAgICAgICAgICAg ICAgICAgICAgIDAsCisrICAgICAgICAgICAgICAgICAgICAgICBwcm9wX2xpc3QpOworICAgICAg ICAgX2dfb2JqZWN0X3VucmVmX2lmX2Zsb2F0aW5nIChwcm9wX2xpc3QpOworICAgICAgICAgcmV0 dXJuOworICAgICB9CitAQCAtNjM0LDcgKzY2Myw4IEBAIGJ1c19lbmdpbmVfcHJveHlfZ19zaWdu YWwgKEdEQnVzUHJveHkgICpwcm94eSwKKyAgICAgICAgIGdfdmFyaWFudF9nZXQgKHBhcmFtZXRl cnMsICIodikiLCAmYXJnMCk7CisgICAgICAgICBnX3JldHVybl9pZl9mYWlsIChhcmcwICE9IE5V TEwpOworIAorLSAgICAgICAgSUJ1c1Byb3BlcnR5ICpwcm9wID0gSUJVU19QUk9QRVJUWSAoaWJ1 c19zZXJpYWxpemFibGVfZGVzZXJpYWxpemUgKGFyZzApKTsKKysgICAgICAgIElCdXNQcm9wZXJ0 eSAqcHJvcCA9CisrICAgICAgICAgICAgICAgIElCVVNfUFJPUEVSVFkgKGlidXNfc2VyaWFsaXph YmxlX2Rlc2VyaWFsaXplIChhcmcwKSk7CisgICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKGFyZzAp OworICAgICAgICAgZ19yZXR1cm5faWZfZmFpbCAocHJvcCAhPSBOVUxMKTsKKyAKK0BAIC02NjUs MjYgKzY5NSw0NSBAQCBidXNfZW5naW5lX3Byb3h5X25ld19pbnRlcm5hbCAoY29uc3QgZ2NoYXIg ICAgICpwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVzRW5naW5lRGVz YyAgKmRlc2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEQnVzQ29ubmVjdGlv biAqY29ubmVjdGlvbikKKyB7CisrICAgIEdEQnVzUHJveHlGbGFncyBmbGFnczsKKysgICAgQnVz RW5naW5lUHJveHkgKmVuZ2luZTsKKysgICAgQnVzSUJ1c0ltcGwgKmlidXMgPSBCVVNfREVGQVVM VF9JQlVTOworKyAgICBHSGFzaFRhYmxlICpoYXNoX3RhYmxlID0gTlVMTDsKKysgICAgRW5naW5l Rm9jdXNDYXRlZ29yeSBjYXRlZ29yeSA9IEVOR0lORV9GT0NVU19DQVRFR09SWV9OT05FOworKwor ICAgICBnX2Fzc2VydCAocGF0aCk7CisgICAgIGdfYXNzZXJ0IChJQlVTX0lTX0VOR0lORV9ERVND IChkZXNjKSk7CisgICAgIGdfYXNzZXJ0IChHX0lTX0RCVVNfQ09OTkVDVElPTiAoY29ubmVjdGlv bikpOworIAorLSAgICBHREJ1c1Byb3h5RmxhZ3MgZmxhZ3MgPSBHX0RCVVNfUFJPWFlfRkxBR1Nf RE9fTk9UX0FVVE9fU1RBUlQ7CistICAgIEJ1c0VuZ2luZVByb3h5ICplbmdpbmUgPQorLSAgICAg ICAgKEJ1c0VuZ2luZVByb3h5ICopIGdfaW5pdGFibGVfbmV3IChCVVNfVFlQRV9FTkdJTkVfUFJP WFksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXNjIiwgICAgICAgICAgICAg IGRlc2MsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnLWNv bm5lY3Rpb24iLCAgICAgIGNvbm5lY3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJnLWludGVyZmFjZS1uYW1lIiwgIElCVVNfSU5URVJGQUNFX0VOR0lO RSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImctb2JqZWN0 LXBhdGgiLCAgICAgcGF0aCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImctZGVmYXVsdC10aW1lb3V0IiwgZ19nZGJ1c190aW1lb3V0LAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZy1mbGFncyIsICAgICAgICAgICBmbGFn cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Cisr ICAgIGZsYWdzID0gR19EQlVTX1BST1hZX0ZMQUdTX0RPX05PVF9BVVRPX1NUQVJUOworKyAgICBl bmdpbmUgPSAoQnVzRW5naW5lUHJveHkgKikgZ19pbml0YWJsZV9uZXcgKAorKyAgICAgICAgICAg IEJVU19UWVBFX0VOR0lORV9QUk9YWSwKKysgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAg IE5VTEwsCisrICAgICAgICAgICAgImRlc2MiLCAgICAgICAgICAgICAgZGVzYywKKysgICAgICAg ICAgICAiZy1jb25uZWN0aW9uIiwgICAgICBjb25uZWN0aW9uLAorKyAgICAgICAgICAgICJnLWlu dGVyZmFjZS1uYW1lIiwgIElCVVNfSU5URVJGQUNFX0VOR0lORSwKKysgICAgICAgICAgICAiZy1v YmplY3QtcGF0aCIsICAgICBwYXRoLAorKyAgICAgICAgICAgICJnLWRlZmF1bHQtdGltZW91dCIs IGdfZ2RidXNfdGltZW91dCwKKysgICAgICAgICAgICAiZy1mbGFncyIsICAgICAgICAgICBmbGFn cywKKysgICAgICAgICAgICBOVUxMKTsKKyAgICAgY29uc3QgZ2NoYXIgKmxheW91dCA9IGlidXNf ZW5naW5lX2Rlc2NfZ2V0X2xheW91dCAoZGVzYyk7CisgICAgIGlmIChsYXlvdXQgIT0gTlVMTCAm JiBsYXlvdXRbMF0gIT0gJ1wwJykgeworICAgICAgICAgZW5naW5lLT5rZXltYXAgPSBpYnVzX2tl eW1hcF9nZXQgKGxheW91dCk7CisgICAgIH0KKysgICAgaWYgKGlidXMpCisrICAgICAgICBoYXNo X3RhYmxlID0gYnVzX2lidXNfaW1wbF9nZXRfZW5naW5lX2ZvY3VzX2lkX3RhYmxlIChpYnVzKTsK KysgICAgaWYgKGhhc2hfdGFibGUpIHsKKysgICAgICAgIGNhdGVnb3J5ID0gKEVuZ2luZUZvY3Vz Q2F0ZWdvcnkpR1BPSU5URVJfVE9fSU5UICgKKysgICAgICAgICAgICAgICAgZ19oYXNoX3RhYmxl X2xvb2t1cCAoaGFzaF90YWJsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZGVzYykpKTsKKysgICAgICAgIGlmIChjYXRl Z29yeSA9PSBFTkdJTkVfRk9DVVNfQ0FURUdPUllfSEFTX0lEKQorKyAgICAgICAgICAgIGVuZ2lu ZS0+aGFzX2ZvY3VzX2lkID0gVFJVRTsKKysgICAgICAgIGVsc2UgaWYgKGNhdGVnb3J5ID09IEVO R0lORV9GT0NVU19DQVRFR09SWV9OT19JRCkKKysgICAgICAgICAgICBlbmdpbmUtPmhhc19mb2N1 c19pZCA9IEZBTFNFOworKyAgICAgICAgZWxzZQorKyAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJv eHlfZ2V0X2hhc19mb2N1c19pZCAoZW5naW5lKTsKKysgICAgfQorICAgICByZXR1cm4gZW5naW5l OworIH0KKyAKK0BAIC03NDAsNyArNzg5LDggQEAgZW5naW5lX3Byb3h5X25ld19kYXRhX2ZyZWUg KEVuZ2luZVByb3h5TmV3RGF0YSAqZGF0YSkKKyAvKioKKyAgKiBjcmVhdGVfZW5naW5lX3JlYWR5 X2NiOgorICAqCistICogQSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBidXNf ZmFjdG9yeV9wcm94eV9jcmVhdGVfZW5naW5lIGZpbmlzaGVzLgorKyAqIEEgY2FsbGJhY2sgZnVu Y3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gYnVzX2ZhY3RvcnlfcHJveHlfY3JlYXRlX2VuZ2luZQor KyAqIGZpbmlzaGVzLgorICAqIENyZWF0ZSBhbiBCdXNFbmdpbmVQcm94eSBvYmplY3QgYW5kIGNh bGwgdGhlIEdBc3luY1JlYWR5Q2FsbGJhY2suCisgICovCisgc3RhdGljIHZvaWQKK0BAIC03NzUs OCArODI1LDEwIEBAIGNyZWF0ZV9lbmdpbmVfcmVhZHlfY2IgKEJ1c0ZhY3RvcnlQcm94eSAgICAq ZmFjdG9yeSwKKyAvKioKKyAgKiBub3RpZnlfZmFjdG9yeV9jYjoKKyAgKgorLSAqIEEgY2FsbGJh Y2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gYnVzX2NvbXBvbmVudF9zdGFydCgpIGVtaXRz ICJub3RpZnk6OmZhY3RvcnkiIHNpZ25hbCB3aXRoaW4gNSBzZWNvbmRzLgorLSAqIENhbGwgYnVz X2ZhY3RvcnlfcHJveHlfY3JlYXRlX2VuZ2luZSB0byBjcmVhdGUgdGhlIGVuZ2luZSBwcm94eSBh c3luY2hyb25vdXNseS4KKysgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVu IGJ1c19jb21wb25lbnRfc3RhcnQoKSBlbWl0cworKyAqICJub3RpZnk6OmZhY3RvcnkiIHNpZ25h bCB3aXRoaW4gNSBzZWNvbmRzLgorKyAqIENhbGwgYnVzX2ZhY3RvcnlfcHJveHlfY3JlYXRlX2Vu Z2luZSB0byBjcmVhdGUgdGhlIGVuZ2luZSBwcm94eQorKyAqIGFzeW5jaHJvbm91c2x5LgorICAq LworIHN0YXRpYyB2b2lkCisgbm90aWZ5X2ZhY3RvcnlfY2IgKEJ1c0NvbXBvbmVudCAgICAgICAq Y29tcG9uZW50LAorQEAgLTc5OCwyMiArODUwLDI1IEBAIG5vdGlmeV9mYWN0b3J5X2NiIChCdXND b21wb25lbnQgICAgICAgKmNvbXBvbmVudCwKKyAgICAgICAgICAgICBkYXRhLT5oYW5kbGVyX2lk ID0gMDsKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIC8qIFdlICpoYXZlIHRvKiBkaXNjb25uZWN0 IHRoZSBjYW5jZWxsZWRfY2IgaGVyZSwgc2luY2UgZ19kYnVzX3Byb3h5X2NhbGwKKy0gICAgICAg ICAqIGNhbGxzIGNyZWF0ZV9lbmdpbmVfcmVhZHlfY2IgZXZlbiBpZiB0aGUgcHJveHkgY2FsbCBp cyBjYW5jZWxsZWQsIGFuZAorLSAgICAgICAgICogaW4gdGhpcyBjYXNlLCBjcmVhdGVfZW5naW5l X3JlYWR5X2NiIGl0c2VsZiB3aWxsIHJldHVybiBlcnJvciB1c2luZworLSAgICAgICAgICogZ190 YXNrX3JldHVybl9lcnJvcigpLiAqLworKyAgICAgICAgLyogV2UgKmhhdmUgdG8qIGRpc2Nvbm5l Y3QgdGhlIGNhbmNlbGxlZF9jYiBoZXJlLCBzaW5jZQorKyAgICAgICAgICogZ19kYnVzX3Byb3h5 X2NhbGwgY2FsbHMgY3JlYXRlX2VuZ2luZV9yZWFkeV9jYiBldmVuIGlmIHRoZSBwcm94eQorKyAg ICAgICAgICogY2FsbCBpcyBjYW5jZWxsZWQsIGFuZCBpbiB0aGlzIGNhc2UsIGNyZWF0ZV9lbmdp bmVfcmVhZHlfY2IgaXRzZWxmCisrICAgICAgICAgKiB3aWxsIHJldHVybiBlcnJvciB1c2luZyBn X3Rhc2tfcmV0dXJuX2Vycm9yKCkuCisrICAgICAgICAgKi8KKyAgICAgICAgIGlmIChkYXRhLT5j YW5jZWxsYWJsZSAmJiBkYXRhLT5jYW5jZWxsZWRfaGFuZGxlcl9pZCAhPSAwKSB7CistICAgICAg ICAgICAgZ19jYW5jZWxsYWJsZV9kaXNjb25uZWN0IChkYXRhLT5jYW5jZWxsYWJsZSwgZGF0YS0+ Y2FuY2VsbGVkX2hhbmRsZXJfaWQpOworKyAgICAgICAgICAgIGdfY2FuY2VsbGFibGVfZGlzY29u bmVjdCAoZGF0YS0+Y2FuY2VsbGFibGUsIAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YS0+Y2FuY2VsbGVkX2hhbmRsZXJfaWQpOworICAgICAgICAgICAgIGRhdGEt PmNhbmNlbGxlZF9oYW5kbGVyX2lkID0gMDsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIC8qIENy ZWF0ZSBlbmdpbmUgZnJvbSBmYWN0b3J5LiAqLworLSAgICAgICAgYnVzX2ZhY3RvcnlfcHJveHlf Y3JlYXRlX2VuZ2luZSAoZGF0YS0+ZmFjdG9yeSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGEtPmRlc2MsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhLT50aW1lb3V0LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YS0+Y2FuY2VsbGFibGUsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoR0FzeW5jUmVhZHlDYWxsYmFjaykgY3JlYXRlX2VuZ2luZV9y ZWFkeV9jYiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEp OworKyAgICAgICAgYnVzX2ZhY3RvcnlfcHJveHlfY3JlYXRlX2VuZ2luZSAoCisrICAgICAgICAg ICAgICAgIGRhdGEtPmZhY3RvcnksCisrICAgICAgICAgICAgICAgIGRhdGEtPmRlc2MsCisrICAg ICAgICAgICAgICAgIGRhdGEtPnRpbWVvdXQsCisrICAgICAgICAgICAgICAgIGRhdGEtPmNhbmNl bGxhYmxlLAorKyAgICAgICAgICAgICAgICAoR0FzeW5jUmVhZHlDYWxsYmFjaykgY3JlYXRlX2Vu Z2luZV9yZWFkeV9jYiwKKysgICAgICAgICAgICAgICAgZGF0YSk7CisgICAgIH0KKyAgICAgLyog SWYgZmFjdG9yeSBpcyBOVUxMLCB3ZSB3aWxsIGNvbnRpbnVlIHdhaXQgZm9yCisgICAgICAqIGZh Y3Rvcnkgbm90aWZ5IHNpZ25hbCBvciB0aW1lb3V0ICovCitAQCAtODIyLDcgKzg3Nyw4IEBAIG5v dGlmeV9mYWN0b3J5X2NiIChCdXNDb21wb25lbnQgICAgICAgKmNvbXBvbmVudCwKKyAvKioKKyAg KiB0aW1lb3V0X2NiOgorICAqCistICogQSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQg d2hlbiBidXNfY29tcG9uZW50X3N0YXJ0KCkgZG9lcyBub3QgZW1pdCAibm90aWZ5OjpmYWN0b3J5 IiBzaWduYWwgd2l0aGluIDUgc2Vjb25kcy4KKysgKiBBIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJl IGNhbGxlZCB3aGVuIGJ1c19jb21wb25lbnRfc3RhcnQoKSBkb2VzIG5vdCBlbWl0CisrICogIm5v dGlmeTo6ZmFjdG9yeSIgc2lnbmFsIHdpdGhpbiA1IHNlY29uZHMuCisgICogQ2FsbCB0aGUgR0Fz eW5jUmVhZHlDYWxsYmFjayBhbmQgc3RvcCB0aGUgNSBzZWMgdGltZXIuCisgICovCisgc3RhdGlj IGdib29sZWFuCitAQCAtOTI3LDE2ICs5ODMsMTggQEAgYnVzX2VuZ2luZV9wcm94eV9uZXcgKElC dXNFbmdpbmVEZXNjICAgICAgKmRlc2MsCisgICAgICAgICAvKiBUaGUgZmFjdG9yeSBpcyByZWFk eS4gV2UnbGwgY3JlYXRlIHRoZSBlbmdpbmUgcHJveHkgZGlyZWN0bHkuICovCisgICAgICAgICBn X29iamVjdF9yZWYgKGRhdGEtPmZhY3RvcnkpOworIAorLSAgICAgICAgLyogV2UgZG9uJ3QgaGF2 ZSB0byBjb25uZWN0IHRvIGNhbmNlbGxlZF9jYiBoZXJlLCBzaW5jZSBnX2RidXNfcHJveHlfY2Fs bAorLSAgICAgICAgICogY2FsbHMgY3JlYXRlX2VuZ2luZV9yZWFkeV9jYiBldmVuIGlmIHRoZSBw cm94eSBjYWxsIGlzIGNhbmNlbGxlZCwgYW5kCistICAgICAgICAgKiBpbiB0aGlzIGNhc2UsIGNy ZWF0ZV9lbmdpbmVfcmVhZHlfY2IgaXRzZWxmIGNhbiByZXR1cm4gZXJyb3IgdXNpbmcKKy0gICAg ICAgICAqIGdfdGFza19yZXR1cm5fZXJyb3IoKS4gKi8KKy0gICAgICAgIGJ1c19mYWN0b3J5X3By b3h5X2NyZWF0ZV9lbmdpbmUgKGRhdGEtPmZhY3RvcnksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhLT5kZXNjLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGltZW91dCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNhbmNlbGxhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKEdBc3luY1JlYWR5Q2FsbGJhY2spIGNyZWF0ZV9lbmdpbmVfcmVhZHlfY2Is CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhKTsKKysgICAg ICAgIC8qIFdlIGRvbid0IGhhdmUgdG8gY29ubmVjdCB0byBjYW5jZWxsZWRfY2IgaGVyZSwgc2lu Y2UKKysgICAgICAgICAqIGdfZGJ1c19wcm94eV9jYWxsIGNhbGxzIGNyZWF0ZV9lbmdpbmVfcmVh ZHlfY2IgZXZlbiBpZiB0aGUgcHJveHkKKysgICAgICAgICAqIGNhbGwgaXMgY2FuY2VsbGVkLCBh bmQgaW4gdGhpcyBjYXNlLCBjcmVhdGVfZW5naW5lX3JlYWR5X2NiIGl0c2VsZgorKyAgICAgICAg ICogY2FuIHJldHVybiBlcnJvciB1c2luZyBnX3Rhc2tfcmV0dXJuX2Vycm9yKCkuCisrICAgICAg ICAgKi8KKysgICAgICAgIGJ1c19mYWN0b3J5X3Byb3h5X2NyZWF0ZV9lbmdpbmUgKAorKyAgICAg ICAgICAgICAgICBkYXRhLT5mYWN0b3J5LAorKyAgICAgICAgICAgICAgICBkYXRhLT5kZXNjLAor KyAgICAgICAgICAgICAgICB0aW1lb3V0LAorKyAgICAgICAgICAgICAgICBjYW5jZWxsYWJsZSwK KysgICAgICAgICAgICAgICAgKEdBc3luY1JlYWR5Q2FsbGJhY2spIGNyZWF0ZV9lbmdpbmVfcmVh ZHlfY2IsCisrICAgICAgICAgICAgICAgIGRhdGEpOworICAgICB9CisgfQorIAorQEAgLTk3OCw4 ICsxMDM2LDExIEBAIGJ1c19lbmdpbmVfcHJveHlfcHJvY2Vzc19rZXlfZXZlbnQgKEJ1c0VuZ2lu ZVByb3h5ICAgICAgKmVuZ2luZSwKKyB7CisgICAgIGdfYXNzZXJ0IChCVVNfSVNfRU5HSU5FX1BS T1hZIChlbmdpbmUpKTsKKyAKKy0gICAgaWYgKGtleWNvZGUgIT0gMCAmJiBidXNfaWJ1c19pbXBs X2lzX3VzZV9zeXNfbGF5b3V0IChCVVNfREVGQVVMVF9JQlVTKSA9PSBGQUxTRSkgeworLSAgICAg ICAgLyogU2luY2UgdXNlX3N5c19sYXlvdXQgaXMgZmFsc2UsIHdlIGRvbid0IHJlbHkgb24gWEtC LiBUcnkgdG8gY29udmVydCBrZXl2YWwgZnJvbSBrZXljb2RlIGJ5IHVzaW5nIG91ciBvd24gbWFw cGluZy4gKi8KKysgICAgaWYgKGtleWNvZGUgIT0gMCAmJgorKyAgICAgICAgYnVzX2lidXNfaW1w bF9pc191c2Vfc3lzX2xheW91dCAoQlVTX0RFRkFVTFRfSUJVUykgPT0gRkFMU0UpIHsKKysgICAg ICAgIC8qIFNpbmNlIHVzZV9zeXNfbGF5b3V0IGlzIGZhbHNlLCB3ZSBkb24ndCByZWx5IG9uIFhL Qi4gVHJ5IHRvIGNvbnZlcnQKKysgICAgICAgICAqIGtleXZhbCBmcm9tIGtleWNvZGUgYnkgdXNp bmcgb3VyIG93biBtYXBwaW5nLgorKyAgICAgICAgICovCisgICAgICAgICBJQnVzS2V5bWFwICpr ZXltYXAgPSBlbmdpbmUtPmtleW1hcDsKKyAgICAgICAgIGlmIChrZXltYXAgPT0gTlVMTCkKKyAg ICAgICAgICAgICBrZXltYXAgPSBCVVNfREVGQVVMVF9LRVlNQVA7CitAQCAtMTE0Miw3ICsxMjAz LDggQEAgdm9pZCBidXNfZW5naW5lX3Byb3h5X3NldF9zdXJyb3VuZGluZ190ZXh0IChCdXNFbmdp bmVQcm94eSAqZW5naW5lLAorICAgICAgICAgZ19zdHJjbXAwICh0ZXh0LT50ZXh0LCBlbmdpbmUt PnN1cnJvdW5kaW5nX3RleHQtPnRleHQpICE9IDAgfHwKKyAgICAgICAgIGN1cnNvcl9wb3MgIT0g ZW5naW5lLT5zdXJyb3VuZGluZ19jdXJzb3JfcG9zIHx8CisgICAgICAgICBhbmNob3JfcG9zICE9 IGVuZ2luZS0+c2VsZWN0aW9uX2FuY2hvcl9wb3MpIHsKKy0gICAgICAgIEdWYXJpYW50ICp2YXJp YW50ID0gaWJ1c19zZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKXRl eHQpOworKyAgICAgICAgR1ZhcmlhbnQgKnZhcmlhbnQgPQorKyAgICAgICAgICAgICAgICBpYnVz X3NlcmlhbGl6YWJsZV9zZXJpYWxpemUgKChJQnVzU2VyaWFsaXphYmxlICopdGV4dCk7CisgICAg ICAgICBpZiAoZW5naW5lLT5zdXJyb3VuZGluZ190ZXh0KQorICAgICAgICAgICAgIGdfb2JqZWN0 X3VucmVmIChlbmdpbmUtPnN1cnJvdW5kaW5nX3RleHQpOworICAgICAgICAgZW5naW5lLT5zdXJy b3VuZGluZ190ZXh0ID0gKElCdXNUZXh0ICopIGdfb2JqZWN0X3JlZl9zaW5rICh0ZXh0KTsKK0BA IC0xMjAxLDYgKzEyNjMsNjEgQEAgYnVzX2VuZ2luZV9wcm94eV9zZXRfY29udGVudF90eXBlIChC dXNFbmdpbmVQcm94eSAqZW5naW5lLAorICAgICBnX3ZhcmlhbnRfdW5yZWYgKGNvbnRlbnRfdHlw ZSk7CisgfQorIAorK3N0YXRpYyB2b2lkCisrX2dldF9oYXNfZm9jdXNfaWRfY2IgKEdPYmplY3Qg ICAgICAgICpvYmplY3QsCisrICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAgICpy ZXMsCisrICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgICB1c2VyX2RhdGEpCisr eworKyAgICBHSGFzaFRhYmxlICpoYXNoX3RhYmxlID0gKEdIYXNoVGFibGUqKXVzZXJfZGF0YTsK KysgICAgQnVzRW5naW5lUHJveHkgKmVuZ2luZTsKKysgICAgR0Vycm9yICplcnJvciA9IE5VTEw7 CisrICAgIEdWYXJpYW50ICpyZXN1bHQ7CisrCisrICAgIGdfcmV0dXJuX2lmX2ZhaWwgKEJVU19J U19FTkdJTkVfUFJPWFkgKG9iamVjdCkpOworKyAgICBlbmdpbmUgPSBCVVNfRU5HSU5FX1BST1hZ IChvYmplY3QpOworKyAgICByZXN1bHQgPSBnX2RidXNfcHJveHlfY2FsbF9maW5pc2ggKEdfREJV U19QUk9YWSAob2JqZWN0KSwgcmVzLCAmZXJyb3IpOworKworKyAgICBpZiAocmVzdWx0ICE9IE5V TEwpIHsKKysgICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0gTlVMTDsKKysgICAgICAgIGdwb2lu dGVyIHZhbHVlOworKyAgICAgICAgZ192YXJpYW50X2dldCAocmVzdWx0LCAiKHYpIiwgJnZhcmlh bnQpOworKyAgICAgICAgZW5naW5lLT5oYXNfZm9jdXNfaWQgPSBnX3ZhcmlhbnRfZ2V0X2Jvb2xl YW4gKHZhcmlhbnQpOworKyAgICAgICAgZ192YXJpYW50X3VucmVmICh2YXJpYW50KTsKKysgICAg ICAgIGdfdmFyaWFudF91bnJlZiAocmVzdWx0KTsKKysgICAgICAgIHZhbHVlID0gIEdJTlRfVE9f UE9JTlRFUiAoZW5naW5lLT5oYXNfZm9jdXNfaWQKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPyBFTkdJTkVfRk9DVVNfQ0FURUdPUllfSEFTX0lECisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogRU5HSU5FX0ZPQ1VTX0NBVEVHT1JZX05PX0lEKTsKKysgICAg ICAgIGdfaGFzaF90YWJsZV9yZXBsYWNlICgKKysgICAgICAgICAgICBoYXNoX3RhYmxlLAorKyAg ICAgICAgICAgIChncG9pbnRlcilpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChlbmdpbmUtPmRl c2MpLAorKyAgICAgICAgICAgIHZhbHVlKTsKKysgICAgfQorKyAgICBnX2hhc2hfdGFibGVfdW5y ZWYgKGhhc2hfdGFibGUpOworK30KKysKKytzdGF0aWMgdm9pZAorK2J1c19lbmdpbmVfcHJveHlf Z2V0X2hhc19mb2N1c19pZCAoQnVzRW5naW5lUHJveHkgKmVuZ2luZSkKKyt7CisrICAgIEJ1c0lC dXNJbXBsICppYnVzID0gQlVTX0RFRkFVTFRfSUJVUzsKKysgICAgR0hhc2hUYWJsZSAqaGFzaF90 YWJsZTsKKysKKysgICAgZ19hc3NlcnQgKEJVU19JU19FTkdJTkVfUFJPWFkgKGVuZ2luZSkpOwor KyAgICBnX2Fzc2VydCAoaWJ1cyk7CisrCisrICAgIGhhc2hfdGFibGUgPSBidXNfaWJ1c19pbXBs X2dldF9lbmdpbmVfZm9jdXNfaWRfdGFibGUgKGlidXMpOworKyAgICBnX2Fzc2VydCAoaGFzaF90 YWJsZSk7CisrICAgIGdfZGJ1c19wcm94eV9jYWxsICgoR0RCdXNQcm94eSAqKSBlbmdpbmUsCisr ICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLkRCdXMuUHJvcGVydGllcy5H ZXQiLAorKyAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIihzcykiLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUJVU19JTlRFUkZBQ0VfRU5HSU5F LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZvY3VzSWQiKSwKKysg ICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCisrICAgICAgICAg ICAgICAgICAgICAgICAtMSwKKysgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisrICAgICAg ICAgICAgICAgICAgICAgICBfZ2V0X2hhc19mb2N1c19pZF9jYiwKKysgICAgICAgICAgICAgICAg ICAgICAgIGdfaGFzaF90YWJsZV9yZWYgKGhhc2hfdGFibGUpKTsKKyt9CisrCisgLyogYSBtYWNy byB0byBnZW5lcmF0ZSBhIGZ1bmN0aW9uIHRvIGNhbGwgYSBudWxsYXJ5IEQtQnVzIG1ldGhvZC4g Ki8KKyAjZGVmaW5lIERFRklORV9GVU5DVElPTihOYW1lLCBuYW1lKSAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorQEAgLTEyMjMsMTEgKzEzNDAsMjQgQEAgREVGSU5FX0ZVTkNUSU9O IChDdXJzb3JEb3duLCBjdXJzb3JfZG93bikKKyAjdW5kZWYgREVGSU5FX0ZVTkNUSU9OCisgCisg dm9pZAorLWJ1c19lbmdpbmVfcHJveHlfZm9jdXNfaW4gKEJ1c0VuZ2luZVByb3h5ICplbmdpbmUp CisrYnVzX2VuZ2luZV9wcm94eV9mb2N1c19pbiAoQnVzRW5naW5lUHJveHkgKmVuZ2luZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAqb2JqZWN0X3BhdGgsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgKmNsaWVudCkKKyB7Cisg ICAgIGdfYXNzZXJ0IChCVVNfSVNfRU5HSU5FX1BST1hZIChlbmdpbmUpKTsKKy0gICAgaWYgKCFl bmdpbmUtPmhhc19mb2N1cykgeworLSAgICAgICAgZW5naW5lLT5oYXNfZm9jdXMgPSBUUlVFOwor KyAgICBpZiAoZW5naW5lLT5oYXNfZm9jdXMpCisrICAgICAgICByZXR1cm47CisrICAgIGVuZ2lu ZS0+aGFzX2ZvY3VzID0gVFJVRTsKKysgICAgaWYgKGVuZ2luZS0+aGFzX2ZvY3VzX2lkKSB7Cisr ICAgICAgICBnX2RidXNfcHJveHlfY2FsbCAoKEdEQnVzUHJveHkgKillbmdpbmUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgIkZvY3VzSW5JZCIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ192YXJpYW50X25ldyAoIihzcykiLCBvYmplY3RfcGF0aCwgY2xpZW50KSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0xLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMKTsKKysgICAgfSBlbHNlIHsKKyAgICAgICAgIGdfZGJ1c19wcm94eV9jYWxs ICgoR0RCdXNQcm94eSAqKWVuZ2luZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRm9j dXNJbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKK0BAIC0xMjQwLDExICsx MzcwLDIzIEBAIGJ1c19lbmdpbmVfcHJveHlfZm9jdXNfaW4gKEJ1c0VuZ2luZVByb3h5ICplbmdp bmUpCisgfQorIAorIHZvaWQKKy1idXNfZW5naW5lX3Byb3h5X2ZvY3VzX291dCAoQnVzRW5naW5l UHJveHkgKmVuZ2luZSkKKytidXNfZW5naW5lX3Byb3h5X2ZvY3VzX291dCAoQnVzRW5naW5lUHJv eHkgKmVuZ2luZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAg Km9iamVjdF9wYXRoKQorIHsKKyAgICAgZ19hc3NlcnQgKEJVU19JU19FTkdJTkVfUFJPWFkgKGVu Z2luZSkpOworLSAgICBpZiAoZW5naW5lLT5oYXNfZm9jdXMpIHsKKy0gICAgICAgIGVuZ2luZS0+ aGFzX2ZvY3VzID0gRkFMU0U7CisrICAgIGlmICghZW5naW5lLT5oYXNfZm9jdXMpCisrICAgICAg ICByZXR1cm47CisrICAgIGVuZ2luZS0+aGFzX2ZvY3VzID0gRkFMU0U7CisrICAgIGlmIChlbmdp bmUtPmhhc19mb2N1c19pZCkgeworKyAgICAgICAgZ19kYnVzX3Byb3h5X2NhbGwgKChHREJ1c1By b3h5ICopZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGb2N1c091dElkIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHMpIiwgb2JqZWN0 X3BhdGgpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05P TkUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworKyAgICB9IGVsc2UgeworICAgICAgICAgZ19k YnVzX3Byb3h5X2NhbGwgKChHREJ1c1Byb3h5ICopZW5naW5lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJGb2N1c091dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwK K2RpZmYgLS1naXQgYS9idXMvZW5naW5lcHJveHkuaCBiL2J1cy9lbmdpbmVwcm94eS5oCitpbmRl eCBhMzAwNmI0Ny4uOTU3Yjc4NTEgMTAwNjQ0CistLS0gYS9idXMvZW5naW5lcHJveHkuaAorKysr IGIvYnVzL2VuZ2luZXByb3h5LmgKK0BAIC0yLDcgKzIsNyBAQAorIC8qIHZpbTpzZXQgZXQgc3Rz PTQ6ICovCisgLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgt MjAxMyBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQg KEMpIDIwMTggVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhQGdtYWlsLmNvbT4KKysgKiBD b3B5cmlnaHQgKEMpIDIwMTgtMjAyMiBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmFAZ21h aWwuY29tPgorICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IFJlZCBIYXQsIEluYy4KKyAgKgor ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IKK0BAIC0xMjYsMjAgKzEyNiwyNiBAQCB2b2lkICAgICAgICAgICAgYnVzX2VuZ2lu ZV9wcm94eV9zZXRfY3Vyc29yX2xvY2F0aW9uCisgLyoqCisgICogYnVzX2VuZ2luZV9wcm94eV9m b2N1c19pbjoKKyAgKiBAZW5naW5lOiBBICNCdXNFbmdpbmVQcm94eS4KKysgKiBAb2JqZWN0X3Bh dGg6IEFuIG9iamVjdCBwYXRoLgorKyAqIEBjbGllbnQ6IEEgY2xpZW50IG5hbWUuCisgICoKKyAg KiBDYWxsICJGb2N1c0luIiBtZXRob2Qgb2YgYW4gZW5naW5lIGFzeW5jaHJvbm91c2x5LiBEbyBu b3RoaW5nIGlmCisgICogdGhlIGVuZ2luZSBhbHJlYWR5IGhhcyBhIGZvY3VzLgorICAqLworLXZv aWQgICAgICAgICAgICBidXNfZW5naW5lX3Byb3h5X2ZvY3VzX2luICAgIChCdXNFbmdpbmVQcm94 eSAgICAgKmVuZ2luZSk7Cisrdm9pZCAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfZm9jdXNf aW4gICAgKEJ1c0VuZ2luZVByb3h5ICAgICAqZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgKm9iamVjdF9wYXRo LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn Y2hhciAgICAgICAgKmNsaWVudCk7CisgCisgLyoqCisgICogYnVzX2VuZ2luZV9wcm94eV9mb2N1 c19vdXQ6CisgICogQGVuZ2luZTogQSAjQnVzRW5naW5lUHJveHkuCisrICogQG9iamVjdF9wYXRo OiBBbiBvYmplY3QgcGF0aC4KKyAgKgorICAqIENhbGwgIkZvY3VzT3V0IiBtZXRob2Qgb2YgYW4g ZW5naW5lIGFzeW5jaHJvbm91c2x5LiBEbyBub3RoaW5nIGlmCisgICogdGhlIGVuZ2luZSBkb2Vz IG5vdCBoYXZlIGEgZm9jdXMuCisgICovCistdm9pZCAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJv eHlfZm9jdXNfb3V0ICAgKEJ1c0VuZ2luZVByb3h5ICAgICAqZW5naW5lKTsKKyt2b2lkICAgICAg ICAgICAgYnVzX2VuZ2luZV9wcm94eV9mb2N1c19vdXQgICAoQnVzRW5naW5lUHJveHkgICAgICpl bmdpbmUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGdjaGFyICAgICAgICAqb2JqZWN0X3BhdGgpOworIAorIC8qKgorICAqIGJ1c19lbmdpbmVf cHJveHlfcmVzZXQ6CitkaWZmIC0tZ2l0IGEvYnVzL2lidXNpbXBsLmMgYi9idXMvaWJ1c2ltcGwu YworaW5kZXggNDlhMTM4ZmUuLjhhNDQzNTQ1IDEwMDY0NAorLS0tIGEvYnVzL2lidXNpbXBsLmMK KysrKyBiL2J1cy9pYnVzaW1wbC5jCitAQCAtNzIsNiArNzIsOCBAQCBzdHJ1Y3QgX0J1c0lCdXNJ bXBsIHsKKyAgICAgICogSUJ1c0VuZ2luZURlc2Mgb2JqZWN0LiAqLworICAgICBHSGFzaFRhYmxl ICplbmdpbmVfdGFibGU7CisgCisrICAgIEdIYXNoVGFibGUgKmVuZ2luZV9mb2N1c19pZF90YWJs ZTsKKysKKyAgICAgQnVzSW5wdXRDb250ZXh0ICpmb2N1c2VkX2NvbnRleHQ7CisgICAgIEJ1c1Bh bmVsUHJveHkgICAqcGFuZWw7CisgICAgIEJ1c1BhbmVsUHJveHkgICAqZW1vamlfZXh0ZW5zaW9u OworQEAgLTU5Niw2ICs1OTgsNyBAQCBidXNfaWJ1c19pbXBsX2luaXQgKEJ1c0lCdXNJbXBsICpp YnVzKQorICAgICBpYnVzLT51c2VfZ2xvYmFsX2VuZ2luZSA9IFRSVUU7CisgICAgIGlidXMtPmds b2JhbF9lbmdpbmVfbmFtZSA9IE5VTEw7CisgICAgIGlidXMtPmdsb2JhbF9wcmV2aW91c19lbmdp bmVfbmFtZSA9IE5VTEw7CisrICAgIGlidXMtPmVuZ2luZV9mb2N1c19pZF90YWJsZSA9IGdfaGFz aF90YWJsZV9uZXcgKGdfc3RyX2hhc2gsIGdfc3RyX2VxdWFsKTsKKyAKKyAgICAgLyogZm9jdXMg dGhlIGZha2VfY29udGV4dCwgaWYgdXNlX2dsb2JhbF9lbmdpbmUgaXMgZW5hYmxlZC4gKi8KKyAg ICAgaWYgKGlidXMtPnVzZV9nbG9iYWxfZW5naW5lKQorQEAgLTIzODQsMyArMjM4NywxMyBAQCBi dXNfaWJ1c19pbXBsX2dldF9mb2N1c2VkX2lucHV0X2NvbnRleHQgKEJ1c0lCdXNJbXBsICppYnVz KQorIAorICAgICByZXR1cm4gaWJ1cy0+Zm9jdXNlZF9jb250ZXh0OworIH0KKysKKytHSGFzaFRh YmxlICoKKytidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfZm9jdXNfaWRfdGFibGUgKEJ1c0lCdXNJ bXBsICppYnVzKQorK3sKKysKKysgICAgZ19hc3NlcnQgKEJVU19JU19JQlVTX0lNUEwgKGlidXMp KTsKKysKKysgICAgcmV0dXJuIGlidXMtPmVuZ2luZV9mb2N1c19pZF90YWJsZTsKKyt9CisrCitk aWZmIC0tZ2l0IGEvYnVzL2lidXNpbXBsLmggYi9idXMvaWJ1c2ltcGwuaAoraW5kZXggMGJiMThk YWYuLmNiZTY4NTZkIDEwMDY0NAorLS0tIGEvYnVzL2lidXNpbXBsLmgKKysrKyBiL2J1cy9pYnVz aW1wbC5oCitAQCAtMiw3ICsyLDggQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGJ1 cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBQZW5nIEh1YW5n IDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBS ZWQgSGF0LCBJbmMuCisrICogQ29weXJpZ2h0IChDKSAyMDIyIFRha2FvIEZ1aml3YXJhIDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDIyIFJlZCBI YXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtNTgsNiArNTksMTMgQEAgR19CRUdJ Tl9ERUNMUworIHR5cGVkZWYgc3RydWN0IF9CdXNJQnVzSW1wbCBCdXNJQnVzSW1wbDsKKyB0eXBl ZGVmIHN0cnVjdCBfQnVzSUJ1c0ltcGxDbGFzcyBCdXNJQnVzSW1wbENsYXNzOworIAorK3R5cGVk ZWYgZW51bQorK3sKKysgICAgRU5HSU5FX0ZPQ1VTX0NBVEVHT1JZX05PTkUgPSAwLAorKyAgICBF TkdJTkVfRk9DVVNfQ0FURUdPUllfTk9fSUQsCisrICAgIEVOR0lORV9GT0NVU19DQVRFR09SWV9I QVNfSUQKKyt9IEVuZ2luZUZvY3VzQ2F0ZWdvcnk7CisrCisgR1R5cGUgICAgICAgICAgICBidXNf aWJ1c19pbXBsX2dldF90eXBlICAgICAgICAgICAgICh2b2lkKTsKKyAKKyAvKioKK0BAIC04MSw2 ICs4OSw3IEBAIGdib29sZWFuICAgICAgICAgYnVzX2lidXNfaW1wbF9pc19lbWJlZF9wcmVlZGl0 X3RleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKEJ1c0lCdXNJbXBsICAgICAgICAqaWJ1cyk7CisgQnVzSW5wdXRDb250ZXh0ICpidXNfaWJ1 c19pbXBsX2dldF9mb2N1c2VkX2lucHV0X2NvbnRleHQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJ1c0lCdXNJbXBsICAgICAgICAqaWJ1cyk7 CistCisrR0hhc2hUYWJsZSAgICAgICpidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfZm9jdXNfaWRf dGFibGUKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKEJ1c0lCdXNJbXBsICAgICAgICAqaWJ1cyk7CisgR19FTkRfREVDTFMKKyAjZW5kaWYKK2Rp ZmYgLS1naXQgYS9idXMvaW5wdXRjb250ZXh0LmMgYi9idXMvaW5wdXRjb250ZXh0LmMKK2luZGV4 IDhkODRmZDA1Li43MjA0MWVjYiAxMDA2NDQKKy0tLSBhL2J1cy9pbnB1dGNvbnRleHQuYworKysr IGIvYnVzL2lucHV0Y29udGV4dC5jCitAQCAtODQ2LDcgKzg0Niw4IEBAIF9pY19wcm9jZXNzX2tl eV9ldmVudF9yZXBseV9jYiAoR09iamVjdCAgICAgICAgICAgICAgICpzb3VyY2UsCisgLyoqCisg ICogX2ljX3Byb2Nlc3Nfa2V5X2V2ZW50OgorICAqCistICogSW1wbGVtZW50IHRoZSAiUHJvY2Vz c0tleUV2ZW50IiBtZXRob2QgY2FsbCBvZiB0aGUgb3JnLmZyZWVkZXNrdG9wLklCdXMuSW5wdXRD b250ZXh0IGludGVyZmFjZS4KKysgKiBJbXBsZW1lbnQgdGhlICJQcm9jZXNzS2V5RXZlbnQiIG1l dGhvZCBjYWxsIG9mIHRoZQorKyAqIG9yZy5mcmVlZGVza3RvcC5JQnVzLklucHV0Q29udGV4dCBp bnRlcmZhY2UuCisgICovCisgc3RhdGljIHZvaWQKKyBfaWNfcHJvY2Vzc19rZXlfZXZlbnQgIChC dXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQsCitAQCAtODYwLDExICs4NjEsMTMgQEAgX2lj X3Byb2Nlc3Nfa2V5X2V2ZW50ICAoQnVzSW5wdXRDb250ZXh0ICAgICAgICpjb250ZXh0LAorICAg ICBnX3ZhcmlhbnRfZ2V0IChwYXJhbWV0ZXJzLCAiKHV1dSkiLCAma2V5dmFsLCAma2V5Y29kZSwg Jm1vZGlmaWVycyk7CisgICAgIGlmIChHX1VOTElLRUxZICghY29udGV4dC0+aGFzX2ZvY3VzKSkg eworICAgICAgICAgLyogd29ya2Fyb3VuZDogc2V0IGZvY3VzIGlmIGNvbnRleHQgZG9lcyBub3Qg aGF2ZSBmb2N1cyAqLworLSAgICAgICAgQnVzSW5wdXRDb250ZXh0ICpmb2N1c2VkX2NvbnRleHQg PSBidXNfaWJ1c19pbXBsX2dldF9mb2N1c2VkX2lucHV0X2NvbnRleHQgKEJVU19ERUZBVUxUX0lC VVMpOworKyAgICAgICAgQnVzSW5wdXRDb250ZXh0ICpmb2N1c2VkX2NvbnRleHQgPQorKyAgICAg ICAgICAgICAgICBidXNfaWJ1c19pbXBsX2dldF9mb2N1c2VkX2lucHV0X2NvbnRleHQgKEJVU19E RUZBVUxUX0lCVVMpOworICAgICAgICAgaWYgKGZvY3VzZWRfY29udGV4dCA9PSBOVUxMIHx8Cisg ICAgICAgICAgICAgZm9jdXNlZF9jb250ZXh0LT5mYWtlID09IFRSVUUgfHwKKyAgICAgICAgICAg ICBjb250ZXh0LT5mYWtlID09IEZBTFNFKSB7CistICAgICAgICAgICAgLyogZ3JhYiBmb2N1cywg aWYgY29udGV4dCBpcyBhIHJlYWwgSUMgb3IgY3VycmVudCBmb2N1c2VkIElDIGlzIGZha2UgKi8K KysgICAgICAgICAgICAvKiBncmFiIGZvY3VzLCBpZiBjb250ZXh0IGlzIGEgcmVhbCBJQyBvciBj dXJyZW50IGZvY3VzZWQgSUMgaXMKKysgICAgICAgICAgICAgKiBmYWtlICovCisgICAgICAgICAg ICAgYnVzX2lucHV0X2NvbnRleHRfZm9jdXNfaW4gKGNvbnRleHQpOworICAgICAgICAgfQorICAg ICB9CitAQCAtOTE0LDcgKzkxNyw4IEBAIF9pY19wcm9jZXNzX2tleV9ldmVudCAgKEJ1c0lucHV0 Q29udGV4dCAgICAgICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGEpOworICAgICB9CisgICAgIGVsc2UgeworLSAgICAgICAgZ19kYnVz X21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZSAoaW52b2NhdGlvbiwgZ192YXJpYW50X25l dyAoIihiKSIsIEZBTFNFKSk7CisrICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0 dXJuX3ZhbHVlIChpbnZvY2F0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ192YXJpYW50X25ldyAoIihiKSIsIEZBTFNFKSk7CisgICAgIH0KKyB9 CisgCitAQCAtMTQzOCw3ICsxNDQyLDkgQEAgYnVzX2lucHV0X2NvbnRleHRfZm9jdXNfaW4gKEJ1 c0lucHV0Q29udGV4dCAqY29udGV4dCkKKyAgICAgY29udGV4dC0+cHJldl9tb2RpZmllcnMgPSAw OworIAorICAgICBpZiAoY29udGV4dC0+ZW5naW5lKSB7CistICAgICAgICBidXNfZW5naW5lX3By b3h5X2ZvY3VzX2luIChjb250ZXh0LT5lbmdpbmUpOworKyAgICAgICAgY29uc3QgZ2NoYXIgKnBh dGggPQorKyAgICAgICAgICAgICAgICBpYnVzX3NlcnZpY2VfZ2V0X29iamVjdF9wYXRoICgoSUJ1 c1NlcnZpY2UgKiljb250ZXh0KTsKKysgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfZm9jdXNfaW4g KGNvbnRleHQtPmVuZ2luZSwgcGF0aCwgY29udGV4dC0+Y2xpZW50KTsKKyAgICAgICAgIGJ1c19l bmdpbmVfcHJveHlfZW5hYmxlIChjb250ZXh0LT5lbmdpbmUpOworICAgICAgICAgYnVzX2VuZ2lu ZV9wcm94eV9zZXRfY2FwYWJpbGl0aWVzIChjb250ZXh0LT5lbmdpbmUsIGNvbnRleHQtPmNhcGFi aWxpdGllcyk7CisgICAgICAgICBidXNfZW5naW5lX3Byb3h5X3NldF9jdXJzb3JfbG9jYXRpb24g KGNvbnRleHQtPmVuZ2luZSwgY29udGV4dC0+eCwgY29udGV4dC0+eSwgY29udGV4dC0+dywgY29u dGV4dC0+aCk7CitAQCAtMTUzOCw3ICsxNTQ0LDkgQEAgYnVzX2lucHV0X2NvbnRleHRfZm9jdXNf b3V0IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCisgICAgIGJ1c19pbnB1dF9jb250ZXh0X3Jl Z2lzdGVyX3Byb3BlcnRpZXMgKGNvbnRleHQsIHByb3BzX2VtcHR5KTsKKyAKKyAgICAgaWYgKGNv bnRleHQtPmVuZ2luZSkgeworLSAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9mb2N1c19vdXQgKGNv bnRleHQtPmVuZ2luZSk7CisrICAgICAgICBjb25zdCBnY2hhciAqcGF0aCA9CisrICAgICAgICAg ICAgaWJ1c19zZXJ2aWNlX2dldF9vYmplY3RfcGF0aCAoKElCdXNTZXJ2aWNlICopY29udGV4dCk7 CisrICAgICAgICBidXNfZW5naW5lX3Byb3h5X2ZvY3VzX291dCAoY29udGV4dC0+ZW5naW5lLCBw YXRoKTsKKyAgICAgfQorIAorICAgICBjb250ZXh0LT5oYXNfZm9jdXMgPSBGQUxTRTsKK0BAIC0y Mzc2LDExICsyMzg0LDE5IEBAIGJ1c19pbnB1dF9jb250ZXh0X2VuYWJsZSAoQnVzSW5wdXRDb250 ZXh0ICpjb250ZXh0KQorICAgICBpZiAoY29udGV4dC0+ZW5naW5lID09IE5VTEwpCisgICAgICAg ICByZXR1cm47CisgCistICAgIGJ1c19lbmdpbmVfcHJveHlfZm9jdXNfaW4gKGNvbnRleHQtPmVu Z2luZSk7CistICAgIGJ1c19lbmdpbmVfcHJveHlfZW5hYmxlIChjb250ZXh0LT5lbmdpbmUpOwor LSAgICBidXNfZW5naW5lX3Byb3h5X3NldF9jYXBhYmlsaXRpZXMgKGNvbnRleHQtPmVuZ2luZSwg Y29udGV4dC0+Y2FwYWJpbGl0aWVzKTsKKy0gICAgYnVzX2VuZ2luZV9wcm94eV9zZXRfY3Vyc29y X2xvY2F0aW9uIChjb250ZXh0LT5lbmdpbmUsIGNvbnRleHQtPngsIGNvbnRleHQtPnksIGNvbnRl eHQtPncsIGNvbnRleHQtPmgpOworLSAgICBidXNfZW5naW5lX3Byb3h5X3NldF9jb250ZW50X3R5 cGUgKGNvbnRleHQtPmVuZ2luZSwgY29udGV4dC0+cHVycG9zZSwgY29udGV4dC0+aGludHMpOwor KyAgICB7CisrICAgICAgICBjb25zdCBnY2hhciAqcGF0aCA9CisrICAgICAgICAgICAgICAgIGli dXNfc2VydmljZV9nZXRfb2JqZWN0X3BhdGggKChJQnVzU2VydmljZSAqKWNvbnRleHQpOworKyAg ICAgICAgYnVzX2VuZ2luZV9wcm94eV9mb2N1c19pbiAoY29udGV4dC0+ZW5naW5lLCBwYXRoLCBj b250ZXh0LT5jbGllbnQpOworKyAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9lbmFibGUgKGNvbnRl eHQtPmVuZ2luZSk7CisrICAgICAgICBidXNfZW5naW5lX3Byb3h5X3NldF9jYXBhYmlsaXRpZXMg KGNvbnRleHQtPmVuZ2luZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGV4dC0+Y2FwYWJpbGl0aWVzKTsKKysgICAgICAgIGJ1c19lbmdpbmVfcHJveHlf c2V0X2N1cnNvcl9sb2NhdGlvbiAoY29udGV4dC0+ZW5naW5lLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT54LCBjb250ZXh0LT55LAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT53LCBj b250ZXh0LT5oKTsKKysgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2NvbnRlbnRfdHlwZSAo Y29udGV4dC0+ZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb250ZXh0LT5wdXJwb3NlLCBjb250ZXh0LT5oaW50cyk7CisrICAgIH0KKyB9CisgCisg dm9pZAorQEAgLTIzOTcsNyArMjQxMyw5IEBAIGJ1c19pbnB1dF9jb250ZXh0X2Rpc2FibGUgKEJ1 c0lucHV0Q29udGV4dCAqY29udGV4dCkKKyAgICAgYnVzX2lucHV0X2NvbnRleHRfcmVnaXN0ZXJf cHJvcGVydGllcyAoY29udGV4dCwgcHJvcHNfZW1wdHkpOworIAorICAgICBpZiAoY29udGV4dC0+ ZW5naW5lKSB7CistICAgICAgICBidXNfZW5naW5lX3Byb3h5X2ZvY3VzX291dCAoY29udGV4dC0+ ZW5naW5lKTsKKysgICAgICAgIGNvbnN0IGdjaGFyICpwYXRoID0KKysgICAgICAgICAgICBpYnVz X3NlcnZpY2VfZ2V0X29iamVjdF9wYXRoICgoSUJ1c1NlcnZpY2UgKiljb250ZXh0KTsKKysgICAg ICAgIGJ1c19lbmdpbmVfcHJveHlfZm9jdXNfb3V0IChjb250ZXh0LT5lbmdpbmUsIHBhdGgpOwor ICAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9kaXNhYmxlIChjb250ZXh0LT5lbmdpbmUpOworICAg ICB9CisgfQorQEAgLTI0NDUsNiArMjQ2Myw4IEBAIGJ1c19pbnB1dF9jb250ZXh0X3Vuc2V0X2Vu Z2luZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorIAorICAgICBpZiAoY29udGV4dC0+ZW5n aW5lKSB7CisgICAgICAgICBnaW50IGk7CisrICAgICAgICBjb25zdCBnY2hhciAqcGF0aCA9Cisr ICAgICAgICAgICAgaWJ1c19zZXJ2aWNlX2dldF9vYmplY3RfcGF0aCAoKElCdXNTZXJ2aWNlICop Y29udGV4dCk7CisgICAgICAgICAvKiB1bmluc3RhbGwgc2lnbmFsIGhhbmRsZXJzIGZvciB0aGUg ZW5naW5lLiAqLworICAgICAgICAgZm9yIChpID0gMDsgaSA8IEdfTl9FTEVNRU5UUyhlbmdpbmVf c2lnbmFscyk7IGkrKykgeworICAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5l Y3RfYnlfZnVuYyAoY29udGV4dC0+ZW5naW5lLAorQEAgLTI0NTMsNyArMjQ3Myw3IEBAIGJ1c19p bnB1dF9jb250ZXh0X3Vuc2V0X2VuZ2luZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorICAg ICAgICAgLyogZm9jdXMgb3V0IGVuZ2luZSBzbyB0aGF0IHRoZSBuZXh0IGNhbGwgb2YKKyAgICAg ICAgICAgIGJ1c19lbmdpbmVfcHJveHlfZm9jdXNfaW4oKSB3aWxsIHRha2UgZWZmZWN0IGFuZCB0 cmlnZ2VyCisgICAgICAgICAgICBSZWdpc3RlclByb3BlcnRpZXMuICovCistICAgICAgICBidXNf ZW5naW5lX3Byb3h5X2ZvY3VzX291dCAoY29udGV4dC0+ZW5naW5lKTsKKysgICAgICAgIGJ1c19l bmdpbmVfcHJveHlfZm9jdXNfb3V0IChjb250ZXh0LT5lbmdpbmUsIHBhdGgpOworICAgICAgICAg Z19vYmplY3RfdW5yZWYgKGNvbnRleHQtPmVuZ2luZSk7CisgICAgICAgICBjb250ZXh0LT5lbmdp bmUgPSBOVUxMOworICAgICB9CitAQCAtMjQ4OCw3ICsyNTA4LDkgQEAgYnVzX2lucHV0X2NvbnRl eHRfc2V0X2VuZ2luZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRleHQpOworICAgICAgICAgfQorICAgICAgICAgaWYgKGNvbnRl eHQtPmhhc19mb2N1cykgeworLSAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfZm9jdXNfaW4g KGNvbnRleHQtPmVuZ2luZSk7CisrICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnBhdGggPQorKyAg ICAgICAgICAgICAgICAgICAgaWJ1c19zZXJ2aWNlX2dldF9vYmplY3RfcGF0aCAoKElCdXNTZXJ2 aWNlICopY29udGV4dCk7CisrICAgICAgICAgICAgYnVzX2VuZ2luZV9wcm94eV9mb2N1c19pbiAo Y29udGV4dC0+ZW5naW5lLCBwYXRoLCBjb250ZXh0LT5jbGllbnQpOworICAgICAgICAgICAgIGJ1 c19lbmdpbmVfcHJveHlfZW5hYmxlIChjb250ZXh0LT5lbmdpbmUpOworICAgICAgICAgICAgIGJ1 c19lbmdpbmVfcHJveHlfc2V0X2NhcGFiaWxpdGllcyAoY29udGV4dC0+ZW5naW5lLCBjb250ZXh0 LT5jYXBhYmlsaXRpZXMpOworICAgICAgICAgICAgIGJ1c19lbmdpbmVfcHJveHlfc2V0X2N1cnNv cl9sb2NhdGlvbiAoY29udGV4dC0+ZW5naW5lLCBjb250ZXh0LT54LCBjb250ZXh0LT55LCBjb250 ZXh0LT53LCBjb250ZXh0LT5oKTsKK2RpZmYgLS1naXQgYS9zcmMvaWJ1c2VuZ2luZS5jIGIvc3Jj L2lidXNlbmdpbmUuYworaW5kZXggN2U4NDQ4MzguLjdjNzk3MTAzIDEwMDY0NAorLS0tIGEvc3Jj L2lidXNlbmdpbmUuYworKysrIGIvc3JjL2lidXNlbmdpbmUuYworQEAgLTIsNyArMiw3IEBACisg LyogdmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cworICAqIENv cHlyaWdodCAoQykgMjAwOC0yMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29t PgorLSAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIxIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWpp d2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIyIFRha2FvIEZ1aml3 YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorICAqIENvcHlyaWdodCAoQykgMjAwOC0y MDIxIFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKK0BAIC0zNyw3ICszNyw5IEBACisgZW51 bSB7CisgICAgIFBST0NFU1NfS0VZX0VWRU5ULAorICAgICBGT0NVU19JTiwKKysgICAgRk9DVVNf SU5fSUQsCisgICAgIEZPQ1VTX09VVCwKKysgICAgRk9DVVNfT1VUX0lELAorICAgICBSRVNFVCwK KyAgICAgRU5BQkxFLAorICAgICBESVNBQkxFLAorQEAgLTYxLDYgKzYzLDcgQEAgZW51bSB7Cisg ZW51bSB7CisgICAgIFBST1BfMCwKKyAgICAgUFJPUF9FTkdJTkVfTkFNRSwKKysgICAgUFJPUF9I QVNfRk9DVVNfSUQsCisgfTsKKyAKKyAKK0BAIC04Miw2ICs4NSw3IEBAIHN0cnVjdCBfSUJ1c0Vu Z2luZVByaXZhdGUgeworICAgICBHSGFzaFRhYmxlICAgICAgICAgICAgKmV4dGVuc2lvbl9rZXli aW5kaW5nczsKKyAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICBlbmFibGVfZXh0ZW5zaW9uOwor ICAgICBnY2hhciAgICAgICAgICAgICAgICAgKmN1cnJlbnRfZXh0ZW5zaW9uX25hbWU7CisrICAg IGdib29sZWFuICAgICAgICAgICAgICAgaGFzX2ZvY3VzX2lkOworIH07CisgCisgCitAQCAtMTA0 LDcgKzEwOCw4IEBAIHN0YXRpYyB2b2lkICAgICAgaWJ1c19lbmdpbmVfc2VydmljZV9tZXRob2Rf Y2FsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RC dXNDb25uZWN0aW9uICAgICpjb25uZWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICpzZW5kZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAg ICAgKm9iamVjdF9wYXRoLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICppbnRlcmZhY2VfbmFtZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICppbnRlcmZhY2VfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAqbWV0aG9kX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgKnBh cmFtZXRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHREJ1c01ldGhvZEludm9jYXRpb24KK0BAIC0xMzIsNyArMTM3LDEyIEBAIHN0YXRpYyBnYm9v bGVhbiAgaWJ1c19lbmdpbmVfcHJvY2Vzc19rZXlfZXZlbnQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICBrZXljb2RlLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAg ICAgICAgICAgIHN0YXRlKTsKKyBzdGF0aWMgdm9pZCAgICAgIGlidXNfZW5naW5lX2ZvY3VzX2lu ICAgICAgICAoSUJ1c0VuZ2luZSAgICAgICAgICplbmdpbmUpOworK3N0YXRpYyB2b2lkICAgICAg aWJ1c19lbmdpbmVfZm9jdXNfaW5faWQgICAgIChJQnVzRW5naW5lICAgICAgICAgKmVuZ2luZSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No YXIgICAgICAgICpvYmplY3RfcGF0aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICpjbGllbnQpOworIHN0YXRpYyB2b2lk ICAgICAgaWJ1c19lbmdpbmVfZm9jdXNfb3V0ICAgICAgIChJQnVzRW5naW5lICAgICAgICAgKmVu Z2luZSk7Cisrc3RhdGljIHZvaWQgICAgICBpYnVzX2VuZ2luZV9mb2N1c19vdXRfaWQgICAgKElC dXNFbmdpbmUgICAgICAgICAqZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgKm9iamVjdF9wYXRoKTsKKyBzdGF0 aWMgdm9pZCAgICAgIGlidXNfZW5naW5lX3Jlc2V0ICAgICAgICAgICAoSUJ1c0VuZ2luZSAgICAg ICAgICplbmdpbmUpOworIHN0YXRpYyB2b2lkICAgICAgaWJ1c19lbmdpbmVfZW5hYmxlICAgICAg ICAgIChJQnVzRW5naW5lICAgICAgICAgKmVuZ2luZSk7Cisgc3RhdGljIHZvaWQgICAgICBpYnVz X2VuZ2luZV9kaXNhYmxlICAgICAgICAgKElCdXNFbmdpbmUgICAgICAgICAqZW5naW5lKTsKK0BA IC0xNzAsNyArMTgwLDggQEAgc3RhdGljIHZvaWQgICAgICBpYnVzX2VuZ2luZV9zZXRfc3Vycm91 bmRpbmdfdGV4dAorIHN0YXRpYyB2b2lkICAgICAgaWJ1c19lbmdpbmVfcHJvY2Vzc19oYW5kX3dy aXRpbmdfZXZlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoSUJ1c0VuZ2luZSAgICAgICAgICplbmdpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdkb3VibGUgICAgICAqY29vcmRpbmF0ZXMsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAg ICAgICAgICAgY29vcmRpbmF0ZXNfbGVuKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ3VpbnQKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlc19sZW4pOworIHN0YXRp YyB2b2lkICAgICAgaWJ1c19lbmdpbmVfY2FuY2VsX2hhbmRfd3JpdGluZworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzRW5naW5lICAgICAgICAgKmVu Z2luZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vp bnQgICAgICAgICAgICAgICBuX3N0cm9rZXMpOworQEAgLTIzMCw3ICsyNDEsMTUgQEAgc3RhdGlj IGNvbnN0IGdjaGFyIGludHJvc3BlY3Rpb25feG1sW10gPQorICAgICAiICAgICAgPGFyZyBkaXJl Y3Rpb249J2luJyAgdHlwZT0ndScgbmFtZT0nc3RhdGUnIC8+IgorICAgICAiICAgIDwvbWV0aG9k PiIKKyAgICAgIiAgICA8bWV0aG9kIG5hbWU9J0ZvY3VzSW4nIC8+IgorKyAgICAiICAgIDxtZXRo b2QgbmFtZT0nRm9jdXNJbklkJz4iCisrICAgICIgICAgICA8YXJnIGRpcmVjdGlvbj0naW4nICB0 eXBlPSdzJyBuYW1lPSdvYmplY3RfcGF0aCcgLz4iCisrICAgICIgICAgICA8YXJnIGRpcmVjdGlv bj0naW4nICB0eXBlPSdzJyBuYW1lPSdjbGllbnQnIC8+IgorKyAgICAiICAgIDwvbWV0aG9kPiIK KysgICAgIiAgICA8bWV0aG9kIG5hbWU9J0ZvY3VzSW4nIC8+IgorICAgICAiICAgIDxtZXRob2Qg bmFtZT0nRm9jdXNPdXQnIC8+IgorKyAgICAiICAgIDxtZXRob2QgbmFtZT0nRm9jdXNPdXRJZCc+ IgorKyAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyAgdHlwZT0ncycgbmFtZT0nb2JqZWN0 X3BhdGgnIC8+IgorKyAgICAiICAgIDwvbWV0aG9kPiIKKyAgICAgIiAgICA8bWV0aG9kIG5hbWU9 J1Jlc2V0JyAvPiIKKyAgICAgIiAgICA8bWV0aG9kIG5hbWU9J0VuYWJsZScgLz4iCisgICAgICIg ICAgPG1ldGhvZCBuYW1lPSdEaXNhYmxlJyAvPiIKK0BAIC0yODMsNiArMzAyLDcgQEAgc3RhdGlj IGNvbnN0IGdjaGFyIGludHJvc3BlY3Rpb25feG1sW10gPQorICAgICAiICAgIDwvc2lnbmFsPiIK KyAgICAgLyogRklYTUUgcHJvcGVydGllcyAqLworICAgICAiICAgIDxwcm9wZXJ0eSBuYW1lPSdD b250ZW50VHlwZScgdHlwZT0nKHV1KScgYWNjZXNzPSd3cml0ZScgLz4iCisrICAgICIgICAgPHBy b3BlcnR5IG5hbWU9J0ZvY3VzSWQnIHR5cGU9JyhiKScgYWNjZXNzPSdyZWFkJyAvPiIKKyAgICAg IiAgPC9pbnRlcmZhY2U+IgorICAgICAiPC9ub2RlPiI7CisgCitAQCAtMzI0LDcgKzM0NCw5IEBA IGlidXNfZW5naW5lX2NsYXNzX2luaXQgKElCdXNFbmdpbmVDbGFzcyAqY2xhc3MpCisgCisgICAg IGNsYXNzLT5wcm9jZXNzX2tleV9ldmVudCA9IGlidXNfZW5naW5lX3Byb2Nlc3Nfa2V5X2V2ZW50 OworICAgICBjbGFzcy0+Zm9jdXNfaW4gICAgID0gaWJ1c19lbmdpbmVfZm9jdXNfaW47CisrICAg IGNsYXNzLT5mb2N1c19pbl9pZCAgPSBpYnVzX2VuZ2luZV9mb2N1c19pbl9pZDsKKyAgICAgY2xh c3MtPmZvY3VzX291dCAgICA9IGlidXNfZW5naW5lX2ZvY3VzX291dDsKKysgICAgY2xhc3MtPmZv Y3VzX291dF9pZCA9IGlidXNfZW5naW5lX2ZvY3VzX291dF9pZDsKKyAgICAgY2xhc3MtPnJlc2V0 ICAgICAgICA9IGlidXNfZW5naW5lX3Jlc2V0OworICAgICBjbGFzcy0+ZW5hYmxlICAgICAgID0g aWJ1c19lbmdpbmVfZW5hYmxlOworICAgICBjbGFzcy0+ZGlzYWJsZSAgICAgID0gaWJ1c19lbmdp bmVfZGlzYWJsZTsKK0BAIC0zNjAsNiArMzgyLDE1IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQg KElCdXNFbmdpbmVDbGFzcyAqY2xhc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJB TV9DT05TVFJVQ1RfT05MWSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9TVEFU SUNfU1RSSU5HUykpOworIAorKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChn b2JqZWN0X2NsYXNzLAorKyAgICAgICAgICAgICAgICAgICAgUFJPUF9IQVNfRk9DVVNfSUQsCisr ICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbiAoImhhcy1mb2N1cy1pZCIs CisrICAgICAgICAgICAgICAgICAgICAgICAgImhhcyBmb2N1cyBpZCIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgIkhhcyBmb2N1cyBJRCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgRkFM U0UsCisrICAgICAgICAgICAgICAgICAgICAgICAgR19QQVJBTV9SRUFEV1JJVEUgfAorKyAgICAg ICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKTsKKysKKyAgICAgLyog aW5zdGFsbCBzaWduYWxzICovCisgICAgIC8qKgorICAgICAgKiBJQnVzRW5naW5lOjpwcm9jZXNz LWtleS1ldmVudDoKK0BAIC0zNzgsNyArNDA5LDggQEAgaWJ1c19lbmdpbmVfY2xhc3NfaW5pdCAo SUJ1c0VuZ2luZUNsYXNzICpjbGFzcykKKyAgICAgICogUmV0dXJuczogJVRSVUUgZm9yIHN1Y2Nl c3NmdWxseSBwcm9jZXNzIHRoZSBrZXk7ICVGQUxTRSBvdGhlcndpc2UuCisgICAgICAqIFNlZSBh bHNvOiAgaWJ1c19pbnB1dF9jb250ZXh0X3Byb2Nlc3Nfa2V5X2V2ZW50KCkuCisgICAgICAqCist ICAgICAqIDxub3RlPjxwYXJhPkFyZ3VtZW50IEB1c2VyX2RhdGEgaXMgaWdub3JlZCBpbiB0aGlz IGZ1bmN0aW9uLjwvcGFyYT48L25vdGU+CisrICAgICAqIDxub3RlPjxwYXJhPkFyZ3VtZW50IEB1 c2VyX2RhdGEgaXMgaWdub3JlZCBpbiB0aGlzIGZ1bmN0aW9uLjwvcGFyYT4KKysgICAgICogPC9u b3RlPgorICAgICAgKi8KKyAgICAgZW5naW5lX3NpZ25hbHNbUFJPQ0VTU19LRVlfRVZFTlRdID0K KyAgICAgICAgIGdfc2lnbmFsX25ldyAoSV8oInByb2Nlc3Mta2V5LWV2ZW50IiksCitAQCAtNDAy LDcgKzQzNCw4IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQgKElCdXNFbmdpbmVDbGFzcyAqY2xh c3MpCisgICAgICAqIGluIGV4dGVuZGVkIGNsYXNzIHRvIHJlY2VpdmUgdGhpcyBzaWduYWwuCisg ICAgICAqCisgICAgICAqIFNlZSBhbHNvOiBpYnVzX2lucHV0X2NvbnRleHRfZm9jdXNfaW4oKQor LSAgICAgKiA8bm90ZT48cGFyYT5Bcmd1bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQgaW4gdGhp cyBmdW5jdGlvbi48L3BhcmE+PC9ub3RlPgorKyAgICAgKiA8bm90ZT48cGFyYT5Bcmd1bWVudCBA dXNlcl9kYXRhIGlzIGlnbm9yZWQgaW4gdGhpcyBmdW5jdGlvbi48L3BhcmE+CisrICAgICAqIDwv bm90ZT4KKyAgICAgICovCisgICAgIGVuZ2luZV9zaWduYWxzW0ZPQ1VTX0lOXSA9CisgICAgICAg ICBnX3NpZ25hbF9uZXcgKElfKCJmb2N1cy1pbiIpLAorQEAgLTQxNCw2ICs0NDcsNTggQEAgaWJ1 c19lbmdpbmVfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZUNsYXNzICpjbGFzcykKKyAgICAgICAgICAg ICBHX1RZUEVfTk9ORSwKKyAgICAgICAgICAgICAwKTsKKyAKKysgICAgLyoqCisrICAgICAqIElC dXNFbmdpbmU6OmZvY3VzLWluLWlkOgorKyAgICAgKiBAZW5naW5lOiBBbiBJQnVzRW5naW5lLgor KyAgICAgKiBAb2JqZWN0X3BhdGg6IEFuIG9iamVjdCBwYXRoLgorKyAgICAgKiBAY2xpZW50OiBB biBjbGllbnQgbmFtZS4KKysgICAgICoKKysgICAgICogRW1pdHRlZCB3aGVuIHRoZSBjbGllbnQg YXBwbGljYXRpb24gZ2V0IHRoZSBmb2N1cy4KKysgICAgICogSW1wbGVtZW50IHRoZSBtZW1iZXIg ZnVuY3Rpb24gSUJ1c0VuZ2luZUNsYXNzOjpmb2N1c19pbgorKyAgICAgKiBpbiBleHRlbmRlZCBj bGFzcyB0byByZWNlaXZlIHRoaXMgc2lnbmFsLgorKyAgICAgKiBAb2JqZWN0X3BhdGggaXMgYSB1 bmlxdWUgaWQgYnkgaW5wdXQgY29udGV4dC4KKysgICAgICogQGNsaWVudCBpbmRpY2F0ZXMgYSBj bGllbnQgdHlwZToKKysgICAgICogJ2Zha2UnOiAgICBmb2N1cyBpcyBvbiBkZXNrdG9wIGJhY2tn cm91bmQgb3Igb3RoZXIgcHJvZ3JhbXMgd2hlcmUgbm8KKysgICAgICogICAgICAgICAgICBpbnB1 dCBpcyBwb3NzaWJsZQorKyAgICAgKiAneGltJzogICAgIG9sZCBYMTEgcHJvZ3JhbXMgbGlrZSB4 dGVybSwgZW1hY3MsIC4uLgorKyAgICAgKiAgICAgICAgICAgIEdUSzMgcHJvZ3JhbXMgaW4gYSBH bm9tZSBYb3JnIHNlc3Npb24gd2hlbiBHVEtfSU1fTU9EVUxFCisrICAgICAqICAgICAgICAgICAg aXMgdW5zZXQgYWxzbyB1c2UgeGltCisrICAgICAqICdndGstaW06Jmx0O2NsaWVudC1uYW1lJmd0 Oyc6ICBHdGsyIGlucHV0IG1vZHVsZSBpcyB1c2VkCisrICAgICAqICdndGszLWltOiZsdDtjbGll bnQtbmFtZSZndDsnOiBHdGszIGlucHV0IG1vZHVsZSBpcyB1c2VkCisrICAgICAqICdndGs0LWlt OiZsdDtjbGllbnQtbmFtZSZndDsnOiBHdGs0IGlucHV0IG1vZHVsZSBpcyB1c2VkCisrICAgICAq ICAgICAgICAgICAgSW4gY2FzZSBvZiB0aGUgR3RrIGlucHV0IG1vZHVsZXMsIHRoZSBuYW1lIG9m IHRoZQorKyAgICAgKiAgICAgICAgICAgIGNsaWVudCBpcyBhbHNvIHNob3duIGFmdGVyIHRoZSDi gJw64oCdLCBmb3IgZXhhbXBsZQorKyAgICAgKiAgICAgICAgICAgIGxpa2UgJ2d0azMtaW06Zmly ZWZveCcsICdndGs0LWltOmdub21lLXRleHQtZWRpdG9yJywg4oCmCisrICAgICAqICdnbm9tZS1z aGVsbCc6IEVudHJpZXMgaGFuZGxlZCBieSBnbm9tZS1zaGVsbAorKyAgICAgKiAgICAgICAgICAg ICAgICAobGlrZSB0aGUgY29tbWFuZCBsaW5lIGRpYWxvZyBvcGVuZWQgd2l0aCBBbHQrRjIKKysg ICAgICogICAgICAgICAgICAgICAgb3IgdGhlIHNlYXJjaCBmaWVsZCB3aGVuIHByZXNzaW5nIHRo ZSBTdXBlciBrZXkuKQorKyAgICAgKiAgICAgICAgICAgICAgICBXaGVuIEdUS19JTV9NT0RVTEUg aXMgdW5zZXQgaW4gYSBHbm9tZSBXYXlsYW5kIHNlc3Npb24KKysgICAgICogICAgICAgICAgICAg ICAgYWxsIHByb2dyYW1zIHdoaWNoIHdvdWxkIHNob3cgJ2d0azMtaW0nIG9yICdndGs0LWltJwor KyAgICAgKiAgICAgICAgICAgICAgICB3aXRoIEdUS19JTV9NT0RVTEU9aWJ1cyB0aGVuIHNob3cg J2dub21lLXNoZWxsJworKyAgICAgKiAgICAgICAgICAgICAgICBpbnN0ZWFkLgorKyAgICAgKiAn UXQnOiAgICAgIFF0NCBwcm9ncmFtcyBsaWtlIGtlZXBhc3N4LTIuMC4zIOKApgorKyAgICAgKiAn UUlCdXNJbnB1dENvbnRleHQnOiBRdDUgcHJvZ3JhbXMgbGlrZSBrZWVwYXNzeGMtMi43LjEsIGFu a2ktMi4xLjE1CisrICAgICAqICAgICAgICAgICAgICAgICAgICAgIHRlbGVncmFtLWRlc2t0b3At My43LjMsIAorKyAgICAgKgorKyAgICAgKiBZb3UgbmVlZCB0byBzZXQgI0lCdXNFbmdpbmU6Omhh cy1mb2N1cy1pZCBwcm9wZXJ0eSB0byAlVFJVRSB3aGVuIHlvdQorKyAgICAgKiBjb25zdHJ1Y3Qg YW4gI0lCdXNFbmdpbmUgdG8gdXNlIHRoaXMgY2xhc3MgbWV0aG9kLgorKyAgICAgKgorKyAgICAg KiBTZWUgYWxzbzogaWJ1c19pbnB1dF9jb250ZXh0X2ZvY3VzX2luKCkKKysgICAgICogPG5vdGU+ PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9w YXJhPgorKyAgICAgKiA8L25vdGU+CisrICAgICAqLworKyAgICBlbmdpbmVfc2lnbmFsc1tGT0NV U19JTl9JRF0gPQorKyAgICAgICAgZ19zaWduYWxfbmV3IChJXygiZm9jdXMtaW4taWQiKSwKKysg ICAgICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyAoZ29iamVjdF9jbGFzcyksCisrICAgICAgICAg ICAgR19TSUdOQUxfUlVOX0xBU1QsCisrICAgICAgICAgICAgR19TVFJVQ1RfT0ZGU0VUIChJQnVz RW5naW5lQ2xhc3MsIGZvY3VzX2luX2lkKSwKKysgICAgICAgICAgICBOVUxMLCBOVUxMLAorKyAg ICAgICAgICAgIF9pYnVzX21hcnNoYWxfVk9JRF9fU1RSSU5HX1NUUklORywKKysgICAgICAgICAg ICBHX1RZUEVfTk9ORSwKKysgICAgICAgICAgICAyLAorKyAgICAgICAgICAgIEdfVFlQRV9TVFJJ TkcsCisrICAgICAgICAgICAgR19UWVBFX1NUUklORyk7CisrCisgICAgIC8qKgorICAgICAgKiBJ QnVzRW5naW5lOjpmb2N1cy1vdXQ6CisgICAgICAqIEBlbmdpbmU6IEFuIElCdXNFbmdpbmUuCitA QCAtNDIzLDcgKzUwOCw4IEBAIGlidXNfZW5naW5lX2NsYXNzX2luaXQgKElCdXNFbmdpbmVDbGFz cyAqY2xhc3MpCisgICAgICAqIGluIGV4dGVuZGVkIGNsYXNzIHRvIHJlY2VpdmUgdGhpcyBzaWdu YWwuCisgICAgICAqCisgICAgICAqIFNlZSBhbHNvOiBpYnVzX2lucHV0X2NvbnRleHRfZm9jdXNf b3V0KCkKKy0gICAgICogPG5vdGU+PHBhcmE+QXJndW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVk IGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPjwvbm90ZT4KKysgICAgICogPG5vdGU+PHBhcmE+QXJn dW1lbnQgQHVzZXJfZGF0YSBpcyBpZ25vcmVkIGluIHRoaXMgZnVuY3Rpb24uPC9wYXJhPgorKyAg ICAgKiA8L25vdGU+CisgICAgICAqLworICAgICBlbmdpbmVfc2lnbmFsc1tGT0NVU19PVVRdID0K KyAgICAgICAgIGdfc2lnbmFsX25ldyAoSV8oImZvY3VzLW91dCIpLAorQEAgLTQzNSw2ICs1MjEs MzMgQEAgaWJ1c19lbmdpbmVfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZUNsYXNzICpjbGFzcykKKyAg ICAgICAgICAgICBHX1RZUEVfTk9ORSwKKyAgICAgICAgICAgICAwKTsKKyAKKysgICAgLyoqCisr ICAgICAqIElCdXNFbmdpbmU6OmZvY3VzLW91dC1pZDoKKysgICAgICogQGVuZ2luZTogQW4gSUJ1 c0VuZ2luZS4KKysgICAgICogQG9iamVjdF9wYXRoOiBBbiBvYmplY3QgcGF0aC4KKysgICAgICoK KysgICAgICogRW1pdHRlZCB3aGVuIHRoZSBjbGllbnQgYXBwbGljYXRpb24gIGxvc3QgdGhlIGZv Y3VzLgorKyAgICAgKiBJbXBsZW1lbnQgdGhlIG1lbWJlciBmdW5jdGlvbiBJQnVzRW5naW5lQ2xh c3M6OmZvY3VzX291dAorKyAgICAgKiBpbiBleHRlbmRlZCBjbGFzcyB0byByZWNlaXZlIHRoaXMg c2lnbmFsLgorKyAgICAgKiBAb2JqZWN0X3BhdGggaXMgYSB1bmlxdWUgaWQgYnkgaW5wdXQgY29u dGV4dC4KKysgICAgICogWW91IG5lZWQgdG8gc2V0ICNJQnVzRW5naW5lOjpoYXMtZm9jdXMtaWQg cHJvcGVydHkgdG8gJVRSVUUgd2hlbiB5b3UKKysgICAgICogY29uc3RydWN0IGFuICNJQnVzRW5n aW5lIHRvIHVzZSB0aGlzIGNsYXNzIG1ldGhvZC4KKysgICAgICoKKysgICAgICogU2VlIGFsc286 IGlidXNfaW5wdXRfY29udGV4dF9mb2N1c19vdXQoKQorKyAgICAgKiA8bm90ZT48cGFyYT5Bcmd1 bWVudCBAdXNlcl9kYXRhIGlzIGlnbm9yZWQgaW4gdGhpcyBmdW5jdGlvbi48L3BhcmE+CisrICAg ICAqIDwvbm90ZT4KKysgICAgICovCisrICAgIGVuZ2luZV9zaWduYWxzW0ZPQ1VTX09VVF9JRF0g PQorKyAgICAgICAgZ19zaWduYWxfbmV3IChJXygiZm9jdXMtb3V0LWlkIiksCisrICAgICAgICAg ICAgR19UWVBFX0ZST01fQ0xBU1MgKGdvYmplY3RfY2xhc3MpLAorKyAgICAgICAgICAgIEdfU0lH TkFMX1JVTl9MQVNULAorKyAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVCAoSUJ1c0VuZ2luZUNs YXNzLCBmb2N1c19vdXRfaWQpLAorKyAgICAgICAgICAgIE5VTEwsIE5VTEwsCisrICAgICAgICAg ICAgX2lidXNfbWFyc2hhbF9WT0lEX19TVFJJTkcsCisrICAgICAgICAgICAgR19UWVBFX05PTkUs CisrICAgICAgICAgICAgMSwKKysgICAgICAgICAgICBHX1RZUEVfU1RSSU5HKTsKKysKKyAgICAg LyoqCisgICAgICAqIElCdXNFbmdpbmU6OnJlc2V0OgorICAgICAgKiBAZW5naW5lOiBBbiBJQnVz RW5naW5lLgorQEAgLTg3Miw2ICs5ODUsOSBAQCBpYnVzX2VuZ2luZV9zZXRfcHJvcGVydHkgKElC dXNFbmdpbmUgICAqZW5naW5lLAorICAgICBjYXNlIFBST1BfRU5HSU5FX05BTUU6CisgICAgICAg ICBlbmdpbmUtPnByaXYtPmVuZ2luZV9uYW1lID0gZ192YWx1ZV9kdXBfc3RyaW5nICh2YWx1ZSk7 CisgICAgICAgICBicmVhazsKKysgICAgY2FzZSBQUk9QX0hBU19GT0NVU19JRDoKKysgICAgICAg IGVuZ2luZS0+cHJpdi0+aGFzX2ZvY3VzX2lkID0gZ192YWx1ZV9nZXRfYm9vbGVhbiAodmFsdWUp OworKyAgICAgICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgICBHX09CSkVDVF9XQVJO X0lOVkFMSURfUFJPUEVSVFlfSUQgKGVuZ2luZSwgcHJvcF9pZCwgcHNwZWMpOworICAgICB9CitA QCAtODg3LDcgKzEwMDMsOSBAQCBpYnVzX2VuZ2luZV9nZXRfcHJvcGVydHkgKElCdXNFbmdpbmUg KmVuZ2luZSwKKyAgICAgY2FzZSBQUk9QX0VOR0lORV9OQU1FOgorICAgICAgICAgZ192YWx1ZV9z ZXRfc3RyaW5nICh2YWx1ZSwgZW5naW5lLT5wcml2LT5lbmdpbmVfbmFtZSk7CisgICAgICAgICBi cmVhazsKKy0KKysgICAgY2FzZSBQUk9QX0hBU19GT0NVU19JRDoKKysgICAgICAgIGdfdmFsdWVf c2V0X2Jvb2xlYW4gKHZhbHVlLCBlbmdpbmUtPnByaXYtPmhhc19mb2N1c19pZCk7CisrICAgICAg ICBicmVhazsKKyAgICAgZGVmYXVsdDoKKyAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q Uk9QRVJUWV9JRCAoZW5naW5lLCBwcm9wX2lkLCBwc3BlYyk7CisgICAgIH0KK0BAIC0xMTc2LDYg KzEyOTQsMzAgQEAgaWJ1c19lbmdpbmVfc2VydmljZV9tZXRob2RfY2FsbCAoSUJ1c1NlcnZpY2Ug ICAgICAgICAgICpzZXJ2aWNlLAorICAgICAgICAgfQorICAgICB9CisgCisrICAgIGlmIChnX3N0 cmNtcDAgKG1ldGhvZF9uYW1lLCAiRm9jdXNJbklkIikgPT0gMCkgeworKyAgICAgICAgZ2NoYXIg Km9iamVjdF9wYXRoID0gTlVMTDsKKysgICAgICAgIGdjaGFyICpjbGllbnQgPSBOVUxMOworKyAg ICAgICAgZ192YXJpYW50X2dldCAocGFyYW1ldGVycywgIigmcyZzKSIsICZvYmplY3RfcGF0aCwg JmNsaWVudCk7CisrICAgICAgICBnX3NpZ25hbF9lbWl0IChlbmdpbmUsCisrICAgICAgICAgICAg ICAgICAgICAgICBlbmdpbmVfc2lnbmFsc1tGT0NVU19JTl9JRF0sCisrICAgICAgICAgICAgICAg ICAgICAgICAwLAorKyAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X3BhdGgsCisrICAgICAg ICAgICAgICAgICAgICAgICBjbGllbnQpOworKyAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0 aW9uX3JldHVybl92YWx1ZSAoaW52b2NhdGlvbiwgTlVMTCk7CisrICAgICAgICByZXR1cm47Cisr ICAgIH0KKysKKysgICAgaWYgKGdfc3RyY21wMCAobWV0aG9kX25hbWUsICJGb2N1c091dElkIikg PT0gMCkgeworKyAgICAgICAgZ2NoYXIgKm9iamVjdF9wYXRoID0gTlVMTDsKKysgICAgICAgIGdf dmFyaWFudF9nZXQgKHBhcmFtZXRlcnMsICIoJnMpIiwgJm9iamVjdF9wYXRoKTsKKysgICAgICAg IGdfc2lnbmFsX2VtaXQgKGVuZ2luZSwKKysgICAgICAgICAgICAgICAgICAgICAgIGVuZ2luZV9z aWduYWxzW0ZPQ1VTX09VVF9JRF0sCisrICAgICAgICAgICAgICAgICAgICAgICAwLAorKyAgICAg ICAgICAgICAgICAgICAgICAgb2JqZWN0X3BhdGgpOworKyAgICAgICAgZ19kYnVzX21ldGhvZF9p bnZvY2F0aW9uX3JldHVybl92YWx1ZSAoaW52b2NhdGlvbiwgTlVMTCk7CisrICAgICAgICByZXR1 cm47CisrICAgIH0KKysKKyAgICAgaWYgKGdfc3RyY21wMCAobWV0aG9kX25hbWUsICJDYW5kaWRh dGVDbGlja2VkIikgPT0gMCkgeworICAgICAgICAgZ3VpbnQgaW5kZXgsIGJ1dHRvbiwgc3RhdGU7 CisgICAgICAgICBnX3ZhcmlhbnRfZ2V0IChwYXJhbWV0ZXJzLCAiKHV1dSkiLCAmaW5kZXgsICZi dXR0b24sICZzdGF0ZSk7CitAQCAtMTMwMyw2ICsxNDQ1LDIzIEBAIGlidXNfZW5naW5lX3NlcnZp Y2VfbWV0aG9kX2NhbGwgKElCdXNTZXJ2aWNlICAgICAgICAgICAqc2VydmljZSwKKyAgICAgZ19y ZXR1cm5faWZfcmVhY2hlZCAoKTsKKyB9CisgCisrLyoqCisrICogX2lidXNfZW5naW5lX2hhc19m b2N1c19pZDoKKysgKgorKyAqIEltcGxlbWVudCB0aGUgIkZvY3VzSWQiIG1ldGhvZCBjYWxsIG9m IHRoZSBvcmcuZnJlZWRlc2t0b3AuSUJ1cyBpbnRlcmZhY2UuCisrICovCisrc3RhdGljIEdWYXJp YW50ICoKKytfaWJ1c19lbmdpbmVfaGFzX2ZvY3VzX2lkIChJQnVzRW5naW5lICAgICAgKmVuZ2lu ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBHREJ1c0Nvbm5lY3Rpb24gKmNvbm5lY3Rp b24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgKiplcnJvcikK Kyt7CisrICAgIGlmIChlcnJvcikgeworKyAgICAgICAgKmVycm9yID0gTlVMTDsKKysgICAgfQor KworKyAgICByZXR1cm4gZ192YXJpYW50X25ld19ib29sZWFuIChlbmdpbmUtPnByaXYtPmhhc19m b2N1c19pZCk7CisrfQorKworIHN0YXRpYyBHVmFyaWFudCAqCisgaWJ1c19lbmdpbmVfc2Vydmlj ZV9nZXRfcHJvcGVydHkgKElCdXNTZXJ2aWNlICAgICAgICAqc2VydmljZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgR0RCdXNDb25uZWN0aW9uICAgICpjb25uZWN0aW9uLAor QEAgLTEzMTIsNyArMTQ3MSwxOCBAQCBpYnVzX2VuZ2luZV9zZXJ2aWNlX2dldF9wcm9wZXJ0eSAo SUJ1c1NlcnZpY2UgICAgICAgICpzZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBnY2hhciAgICAgICAgKnByb3BlcnR5X25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdFcnJvciAgICAgICAgICAgICoqZXJyb3IpCisgeworLSAg ICByZXR1cm4gSUJVU19TRVJWSUNFX0NMQVNTIChpYnVzX2VuZ2luZV9wYXJlbnRfY2xhc3MpLT4K KysgICAgaW50IGk7CisrICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeworKyAgICAgICAgY29uc3Qg Z2NoYXIgKm1ldGhvZF9uYW1lOworKyAgICAgICAgR1ZhcmlhbnQgKiAoKiBtZXRob2RfY2FsbGJh Y2spIChJQnVzRW5naW5lICosCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdEQnVzQ29ubmVjdGlvbiAqLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHRXJyb3IgKiopOworKyAgICB9IG1ldGhvZHMgW10gPSAgeworKyAgICAgICAgeyAi Rm9jdXNJZCIsICAgICAgICAgICAgICAgICAgICBfaWJ1c19lbmdpbmVfaGFzX2ZvY3VzX2lkIH0s CisrICAgIH07CisrCisrICAgIGlmIChnX3N0cmNtcDAgKGludGVyZmFjZV9uYW1lLCBJQlVTX0lO VEVSRkFDRV9FTkdJTkUpICE9IDApIHsKKysgICAgICAgIHJldHVybiBJQlVTX1NFUlZJQ0VfQ0xB U1MgKGlidXNfZW5naW5lX3BhcmVudF9jbGFzcyktPgorICAgICAgICAgICAgICAgICBzZXJ2aWNl X2dldF9wcm9wZXJ0eSAoc2VydmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbm5lY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZW5kZXIsCitAQCAtMTMyMCw2ICsxNDkwLDE5IEBAIGlidXNfZW5naW5lX3NlcnZpY2VfZ2V0 X3Byb3BlcnR5IChJQnVzU2VydmljZSAgICAgICAgKnNlcnZpY2UsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBlcnJvcik7CisrICAgIH0KKysKKysgICAgZm9yIChpID0gMDsg aSA8IEdfTl9FTEVNRU5UUyAobWV0aG9kcyk7IGkrKykgeworKyAgICAgICAgaWYgKGdfc3RyY21w MCAobWV0aG9kc1tpXS5tZXRob2RfbmFtZSwgcHJvcGVydHlfbmFtZSkgPT0gMCkgeworKyAgICAg ICAgICAgIHJldHVybiBtZXRob2RzW2ldLm1ldGhvZF9jYWxsYmFjayAoKElCdXNFbmdpbmUgKikg c2VydmljZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbm5lY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBlcnJvcik7CisrICAgICAgICB9CisrICAgIH0KKysKKysgICAgZ193YXJuaW5nICgic2Vy dmljZV9nZXRfcHJvcGVydHkgcmVjZWl2ZWQgYW4gdW5rbm93biBwcm9wZXJ0eTogJXMiLAorKyAg ICAgICAgICAgICAgIHByb3BlcnR5X25hbWUgPyBwcm9wZXJ0eV9uYW1lIDogIihudWxsKSIpOwor KyAgICByZXR1cm4gTlVMTDsKKyB9CisgCisgc3RhdGljIGdib29sZWFuCitAQCAtMTM4NiwzMSAr MTU2OSwzOSBAQCBpYnVzX2VuZ2luZV9wcm9jZXNzX2tleV9ldmVudCAoSUJ1c0VuZ2luZSAqZW5n aW5lLAorIHN0YXRpYyB2b2lkCisgaWJ1c19lbmdpbmVfZm9jdXNfaW4gKElCdXNFbmdpbmUgKmVu Z2luZSkKKyB7CistICAgIC8vIGdfZGVidWcgKCJmb2N1cy1pbiIpOworK30KKysKKytzdGF0aWMg dm9pZAorK2lidXNfZW5naW5lX2ZvY3VzX2luX2lkIChJQnVzRW5naW5lICAqZW5naW5lLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqb2JqZWN0X3BhdGgsCisrICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpjbGllbnQpCisreworIH0KKyAKKyBzdGF0 aWMgdm9pZAorIGlidXNfZW5naW5lX2ZvY3VzX291dCAoSUJ1c0VuZ2luZSAqZW5naW5lKQorIHsK Ky0gICAgLy8gZ19kZWJ1ZyAoImZvY3VzLW91dCIpOworK30KKysKKytzdGF0aWMgdm9pZAorK2li dXNfZW5naW5lX2ZvY3VzX291dF9pZCAoSUJ1c0VuZ2luZSAgKmVuZ2luZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpvYmplY3RfcGF0aCkKKyt7CisgfQorIAorIHN0 YXRpYyB2b2lkCisgaWJ1c19lbmdpbmVfcmVzZXQgKElCdXNFbmdpbmUgKmVuZ2luZSkKKyB7Cist ICAgIC8vIGdfZGVidWcgKCJyZXNldCIpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorIGlidXNfZW5n aW5lX2VuYWJsZSAoSUJ1c0VuZ2luZSAqZW5naW5lKQorIHsKKy0gICAgLy8gZ19kZWJ1ZyAoImVu YWJsZSIpOworIH0KKyAKKyBzdGF0aWMgdm9pZAorIGlidXNfZW5naW5lX2Rpc2FibGUgKElCdXNF bmdpbmUgKmVuZ2luZSkKKyB7CistICAgIC8vIGdfZGVidWcgKCJkaXNhYmxlIik7CisgfQorIAor IHN0YXRpYyB2b2lkCitkaWZmIC0tZ2l0IGEvc3JjL2lidXNlbmdpbmUuaCBiL3NyYy9pYnVzZW5n aW5lLmgKK2luZGV4IDQzZWFhNTU0Li42YWYwZTg1NiAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzZW5n aW5lLmgKKysrKyBiL3NyYy9pYnVzZW5naW5lLmgKK0BAIC0yLDcgKzIsOCBAQAorIC8qIHZpbTpz ZXQgZXQgc3RzPTQ6ICovCisgLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQg KEMpIDIwMDgtMjAxMyBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBD b3B5cmlnaHQgKEMpIDIwMDgtMjAxMyBSZWQgSGF0LCBJbmMuCisrICogQ29weXJpZ2h0IChDKSAy MDEyLTIwMjIgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICog Q29weXJpZ2h0IChDKSAyMDA4LTIwMjIgUmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJy YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAq IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs aWMKK0BAIC0xNTMsMTAgKzE1NCwxNSBAQCBzdHJ1Y3QgX0lCdXNFbmdpbmVDbGFzcyB7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNFbmdpbmUgICAgICplbmdpbmUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICBw dXJwb3NlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAg ICAgICAgaGludHMpOworKyAgICB2b2lkICAgICAgICAoKiBmb2N1c19pbl9pZCkgICAgIChJQnVz RW5naW5lICAgICAqZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBnY2hhciAgICAqb2JqZWN0X3BhdGgsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICpjbGllbnQpOworKyAgICB2b2lkICAgICAgICAo KiBmb2N1c19vdXRfaWQpICAgIChJQnVzRW5naW5lICAgICAqZW5naW5lLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAqb2JqZWN0X3BhdGgpOwor IAorICAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICAgLyogcGFkZGluZyAqLworLSAgICBncG9pbnRl ciBwZHVtbXlbNF07CisrICAgIGdwb2ludGVyIHBkdW1teVsyXTsKKyB9OworIAorIEdUeXBlICAg ICAgICBpYnVzX2VuZ2luZV9nZXRfdHlwZSAgICAgICAodm9pZCk7CitkaWZmIC0tZ2l0IGEvc3Jj L2lidXNtYXJzaGFsZXJzLmxpc3QgYi9zcmMvaWJ1c21hcnNoYWxlcnMubGlzdAoraW5kZXggYWE5 ZWE4MmEuLjc0ODlmODQyIDEwMDY0NAorLS0tIGEvc3JjL2lidXNtYXJzaGFsZXJzLmxpc3QKKysr KyBiL3NyYy9pYnVzbWFyc2hhbGVycy5saXN0CitAQCAtMTksNiArMTksNyBAQCBWT0lEOk9CSkVD VCxVSU5ULFVJTlQKKyBWT0lEOk9CSkVDVCxCT09MRUFOCisgVk9JRDpCT1hFRCxCT09MRUFOCisg Vk9JRDpCT1hFRAorK1ZPSUQ6U1RSSU5HLFNUUklORworIFZPSUQ6U1RSSU5HLFNUUklORyxWQVJJ QU5UCisgVk9JRDpTVFJJTkcsU1RSSU5HLFNUUklORworIFZPSUQ6VUlOVAorLS0gCisyLjM1LjMK KworRnJvbSA1OWMxMzU5NzkxOGRiOThlYzgxMjBjY2RhYzA5ZjFlMmRjNTc2ZTFiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwu Y29tPgorRGF0ZTogVGh1LCA3IEp1bCAyMDIyIDA4OjIyOjQ4ICswOTAwCitTdWJqZWN0OiBbUEFU Q0hdIHNyYy90ZXN0czogVW5zZXQgR19NRVNTQUdFU19ERUJVRyBmb3IgZ3NldHRpbmdzIGluCisg eGtiLWxhdGluLWxheW91dHMKKworZ3NldHRpbmdzIGNhbm5vdCBnZXQgdGhlIGtleSB2YWx1ZSB3 aGVuIEdfTUVTU0FHRVNfREVCVUcgaXMgZW5hYmxlZC4KK0FkZCBkZW55bGlzdC50eHQgdG8gZW5n aW5lL01ha2VmaWxlLmFtCistLS0KKyBlbmdpbmUvTWFrZWZpbGUuYW0gICAgICAgICAgfCAzICsr LQorIHNyYy90ZXN0cy94a2ItbGF0aW4tbGF5b3V0cyB8IDcgKysrKysrKworIDIgZmlsZXMgY2hh bmdlZCwgOSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgYS9lbmdp bmUvTWFrZWZpbGUuYW0gYi9lbmdpbmUvTWFrZWZpbGUuYW0KK2luZGV4IDAzODY3ZjUyLi43MjU2 ZmJjOCAxMDA2NDQKKy0tLSBhL2VuZ2luZS9NYWtlZmlsZS5hbQorKysrIGIvZW5naW5lL01ha2Vm aWxlLmFtCitAQCAtNCw3ICs0LDcgQEAKKyAjCisgIyBDb3B5cmlnaHQgKGMpIDIwMTAtMjAxNiwg R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAjIENvcHlyaWdodCAoYykgMjAwNy0y MDE2IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSMgQ29weXJpZ2h0IChj KSAyMDEzLTIwMjAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Cisr IyBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyMSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KKyAjCisgIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtODgsNiArODgsNyBAQCBDTEVBTkZJ TEVTID0gXAorIAkkKE5VTEwpCisgCisgRVhUUkFfRElTVCA9IFwKKysJZGVueWxpc3QudHh0IFwK KyAJZ2Vuc2ltcGxlLnB5IFwKKyAJaXNvNjM5Y29udmVydGVyLnB5IFwKKyAJc2ltcGxlLnhtbC5p biBcCitkaWZmIC0tZ2l0IGEvc3JjL3Rlc3RzL3hrYi1sYXRpbi1sYXlvdXRzIGIvc3JjL3Rlc3Rz L3hrYi1sYXRpbi1sYXlvdXRzCitpbmRleCBmOGRjZWQ2Yi4uOTI0NjQyMzQgMTAwNzU1CistLS0g YS9zcmMvdGVzdHMveGtiLWxhdGluLWxheW91dHMKKysrKyBiL3NyYy90ZXN0cy94a2ItbGF0aW4t bGF5b3V0cworQEAgLTgyLDkgKzgyLDE2IEBAIGZpbml0KCkKKyAKKyB0ZXN0X3hrYl9rZXltYXBz KCkKKyB7CisrICAgICMgR19NRVNTQUdFU19ERUJVRz1hbGwgb3IgR19NRVNTQUdFU19ERUJVRz1H TGliLUdJTy1ERUJVRyB3b3VsZCBhcHBlbmQKKysgICAgIyBkZWJ1ZyBtZXNzYWdlcyB0byBnc2V0 dGluZ3Mgb3V0cHV0IGFuZCBjb3VsZCBub3QgZ2V0IHRoZSByZXN1bHQgY29ycmVjdGx5LgorKyAg ICBiYWNrdXBfR19NRVNTQUdFU19ERUJVRz0iJEdfTUVTU0FHRVNfREVCVUciCisrICAgIHVuc2V0 IEdfTUVTU0FHRVNfREVCVUcKKyAgICAgIyBMb29wIG92ZXIgdG9wIGxldmVsIHNjaGVtYXMgc2lu Y2UgImdzZXR0aW5ncyBsaXN0LXJlY3Vyc2l2ZWx5IiBvbmx5CisgICAgICMgbG9va3MgZm9yIGRp cmVjdCBjaGlsZHJlbi4KKyAgICAgeGtiX2xhdGluX2xheW91dHM9YGdzZXR0aW5ncyBnZXQgb3Jn LmZyZWVkZXNrdG9wLmlidXMuZ2VuZXJhbCB4a2ItbGF0aW4tbGF5b3V0c2AKKysgICAgaWYgWyB4 IiRiYWNrdXBfR19NRVNTQUdFU19ERUJVRyIgIT0geCBdIDsgdGhlbgorKyAgICAgICAgZXhwb3J0 IEdfTUVTU0FHRVNfREVCVUc9JGJhY2t1cF9HX01FU1NBR0VTX0RFQlVHCisrICAgIGZpCisgICAg IHdoaWxlIHJlYWQga2V5bWFwIDsgZG8KKyAgICAgICAgIGV2YWwga2V5bWFwPSIka2V5bWFwIgor ICAgICAgICAgSEFTX1ZBUklBTlQ9JCgkRUNITyAiJGtleW1hcCIgfCBncmVwICcoJyAyPiAvZGV2 L251bGwpIHx8OgorLS0gCisyLjM1LjMKKwoKZGlmZiAtLWdpdCBhL2lidXMuc3BlYyBiL2lidXMu c3BlYwppbmRleCA0NzU4NWYxLi42OTU4ZGRmIDEwMDY0NAotLS0gYS9pYnVzLnNwZWMKKysrIGIv aWJ1cy5zcGVjCkBAIC0zOSw3ICszOSw3IEBACiAKIE5hbWU6ICAgICAgICAgICBpYnVzCiBWZXJz aW9uOiAgICAgICAgMS41LjI2Ci1SZWxlYXNlOiAgICAgICAgMTIlez9kaXN0fQorUmVsZWFzZTog ICAgICAgIDEzJXs/ZGlzdH0KIFN1bW1hcnk6ICAgICAgICBJbnRlbGxpZ2VudCBJbnB1dCBCdXMg Zm9yIExpbnV4IE9TCiBMaWNlbnNlOiAgICAgICAgTEdQTHYyKwogVVJMOiAgICAgICAgICAgIGh0 dHBzOi8vZ2l0aHViLmNvbS9pYnVzLyVuYW1lL3dpa2kKQEAgLTUyNCw2ICs1MjQsMTMgQEAgZGNv bmYgdXBkYXRlIHx8IDoKICV7X2RhdGFkaXJ9L2luc3RhbGxlZC10ZXN0cy9pYnVzCiAKICVjaGFu Z2Vsb2cKKyogVGh1IEp1bCAwNyAyMDIyIFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQu Y29tPiAtIDEuNS4yNi0xMworLSBBZGQgSUJVU19DQVBfT1NLIHRvIElCdXNDYXBhYmlsaXRlCist IFVwZGF0ZSBpYnVzIHJlc3RhcnQgZm9yIC0tc2VydmljZS1maWxlIG9wdGlvbgorLSBVcGRhdGUg bWFucGFnZSBmb3IgaWJ1cyBpbS1tb2R1bGUgY29tbWFuZAorLSBJbXBsZW1lbnQgbmV3IHByb2Nl c3Nfa2V5X2V2ZW50IGZvciBHVEs0CistIEFkZCBmb2N1c19pbl9pZCgpL2ZvY3VzX291dF9pZCgp IGNsYXNzIG1ldGhvZHMgaW4gSUJ1c0VuZ2luZQorCiAqIFdlZCBKdW4gMjkgMjAyMiBUYWthbyBG dWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4gLSAxLjUuMjYtMTIKIC0gQWRkIGlidXMgaW0t bW9kdWxlIGNvbW1hbmQKIAo=