From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] gdb-17.2-rebase-f44: - Upgrade to the FSF GDB gdb-7.0 branch and snapshot: 6.8.91.20090917 Date: Sat, 27 Jun 2026 23:54:25 GMT Message-ID: <178260446527.1.9668208931952325250.rpms-gdb-e93d3474d86c@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: e93d3474d86c06192beac39b2c0cfcacb88544a6 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGdkYi0xNy4yLXJlYmFzZS1mNDQK ICAgICAgICAgICAgQ29tbWl0IDogZTkzZDM0NzRkODZjMDYxOTJiZWFjMzliMmMwY2ZjYWNiODg1 NDRhNgogICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3Jh cHJvamVjdC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDktMTdUMTI6MTU6NDIrMDA6 MDAKICAgICAgICAgICAgU3RhdHMgIDogKzYxNC8tNDEyOSBpbiA5IGZpbGUocykKICAgICAgICAg ICAgVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy9lOTNk MzQ3NGQ4NmMwNjE5MmJlYWMzOWIyYzBjZmNhY2I4ODU0NGE2P2JyYW5jaD1nZGItMTcuMi1yZWJh c2UtZjQ0CgogICAgICAgICAgICBMb2c6CiAgICAgICAgICAgIC0gVXBncmFkZSB0byB0aGUgRlNG IEdEQiBnZGItNy4wIGJyYW5jaCBhbmQgc25hcHNob3Q6IDYuOC45MS4yMDA5MDkxNwotIGFyY2hl ci1qYW5rcmF0b2NodmlsLWZlZG9yYTEyIGNvbW1pdDoKICAgIDE2ZjNmMDFjYzJjYmMxNTI4MzQ2 MmVhYWJkZmNkZTkyY2Y0MmNkYzYKLSBEcm9wIHRoZSBxc29ydF9jbXAgd29ya2Fyb3VuZCBhcyBy ZXNvbHZlZCBpbiBGU0YgR0RCIG5vdyAoQlogNTE1NDM0KS4KCi0tLQpkaWZmIC0tZ2l0IGEvLmN2 c2lnbm9yZSBiLy5jdnNpZ25vcmUKaW5kZXggNmY1M2E0Yi4uZDVhMjlkMCAxMDA2NDQKLS0tIGEv LmN2c2lnbm9yZQorKysgYi8uY3ZzaWdub3JlCkBAIC0xICsxIEBACi1nZGItNi44LjUwLjIwMDkw OTEwLnRhci5iejIKK2dkYi02LjguOTEuMjAwOTA5MTcudGFyLmJ6MgoKZGlmZiAtLWdpdCBhL2dk Yi02LjMtZ3N0YWNrLTIwMDUwNDExLnBhdGNoIGIvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0 Y2gKaW5kZXggNTViZmFhYi4uMGFhNjQyNiAxMDA2NDQKLS0tIGEvZ2RiLTYuMy1nc3RhY2stMjAw NTA0MTEucGF0Y2gKKysrIGIvZ2RiLTYuMy1nc3RhY2stMjAwNTA0MTEucGF0Y2gKQEAgLTQsMjAg KzQsMjAgQEAKIAl0byBpbnN0YWxsIGFuZCB1bmluc3RhbGwuCiAJKiBnc3RhY2suc2gsIGdzdGFj ay4xOiBOZXcgZmlsZXMuCiAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9NYWtlZmls ZS5pbgorSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL01ha2VmaWxlLmluCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMi5vcmlnL2dkYi9NYWtlZmlsZS5pbgkyMDA5LTA4 LTAzIDA5OjUwOjU3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2Ri L01ha2VmaWxlLmluCTIwMDktMDgtMDMgMTE6MDk6NDkuMDAwMDAwMDAwICswMjAwCi1AQCAtOTQ3 LDcgKzk0Nyw3IEBAIGdkYi56OmdkYi4xCi0gIyB0aW1lIGl0IHRha2VzIGZvciBtYWtlIHRvIGNo ZWNrIHRoYXQgYWxsIGlzIHVwIHRvIGRhdGUuCi0gIyBpbnN0YWxsLW9ubHkgaXMgaW50ZW5kZWQg dG8gYWRkcmVzcyB0aGF0IG5lZWQuCi0gaW5zdGFsbDogYWxsIGluc3RhbGwtb25seQotLWluc3Rh bGwtb25seTogJChDT05GSUdfSU5TVEFMTCkKLStpbnN0YWxsLW9ubHk6IGluc3RhbGwtZ3N0YWNr ICQoQ09ORklHX0lOU1RBTEwpCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9NYWtl ZmlsZS5pbgkyMDA5LTA5LTE3IDEyOjQ3OjA3LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02Ljgu OTEuMjAwOTA5MTcvZ2RiL01ha2VmaWxlLmluCTIwMDktMDktMTcgMTI6NDc6MzguMDAwMDAwMDAw ICswMjAwCitAQCAtOTg5LDcgKzk4OSw3IEBAIGluc3RhbGw6IGFsbCBpbnN0YWxsLW9ubHkgCisg CisgIyBUaGUgImluc3RhbGwtb25seSIgdGFyZ2V0IGFsc28gaW5zdGFsbHMgdGhlIHN5c2NhbGxz JyBYTUwgZmlsZXMgaW4KKyAjIHRoZSBzeXN0ZW0uCistaW5zdGFsbC1vbmx5OiAkKENPTkZJR19J TlNUQUxMKSB4bWwtc3lzY2FsbC1pbnN0YWxsCisraW5zdGFsbC1vbmx5OiBpbnN0YWxsLWdzdGFj ayAkKENPTkZJR19JTlNUQUxMKSB4bWwtc3lzY2FsbC1pbnN0YWxsCiAgCXRyYW5zZm9ybWVkX25h bWU9YHQ9JyQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSknOyBcCiAgCQkJICBlY2hvIGdkYiB8IHNl ZCAtZSAiJCR0ImAgOyBcCiAgCQlpZiB0ZXN0ICJ4JCR0cmFuc2Zvcm1lZF9uYW1lIiA9IHg7IHRo ZW4gXAotQEAgLTk3OSw5ICs5NzksMjYgQEAgaW5zdGFsbC10dWk6CitAQCAtMTAyMSw5ICsxMDIx LDI2IEBAIGluc3RhbGwtdHVpOgogIAkJCSQoREVTVERJUikkKG1hbjFkaXIpIDsgXAogIAkJJChJ TlNUQUxMX0RBVEEpICQoc3JjZGlyKS9nZGIuMSBcCiAgCQkJJChERVNURElSKSQobWFuMWRpcikv JCR0cmFuc2Zvcm1lZF9uYW1lLjEKQEAgLTQ1LDcgKzQ1LDcgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDIvZ2RiL01ha2VmaWxlLmluCiAgCXRyYW5zZm9ybWVkX25hbWU9YHQ9JyQocHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSknOyBcCiAgCQkJICBlY2hvIGdkYiB8IHNlZCAtZSAkJHRgIDsgXAog IAkJaWYgdGVzdCAieCQkdHJhbnNmb3JtZWRfbmFtZSIgPSB4OyB0aGVuIFwKLUBAIC0xMDAzLDYg KzEwMjAsMTcgQEAgdW5pbnN0YWxsLXR1aToKK0BAIC0xMDQ1LDYgKzEwNjIsMTcgQEAgdW5pbnN0 YWxsLXR1aToKICAJCWZpIDsgXAogIAkJcm0gLWYgJChERVNURElSKSQoYmluZGlyKS8kJHRyYW5z Zm9ybWVkX25hbWUkKEVYRUVYVCkgXAogIAkJICAgICAgJChERVNURElSKSQobWFuMWRpcikvJCR0 cmFuc2Zvcm1lZF9uYW1lLjEKQEAgLTYzLDEwICs2MywxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwMi9nZGIvTWFrZWZpbGUuaW4KICAKICAjIFRoZSBDKysgbmFtZSBwYXJzZXIgY2FuIGJl IGJ1aWx0IHN0YW5kYWxvbmUgZm9yIHRlc3RpbmcuCiAgdGVzdC1jcC1uYW1lLXBhcnNlci5vOiBj cC1uYW1lLXBhcnNlci5jCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvZ3N0YWNrLnNo CitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvZ3N0YWNrLnNoCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDgwMi9nZGIvZ3N0YWNrLnNoCTIwMDktMDgtMDMgMTE6MDg6NTIuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvZ3N0YWNrLnNoCTIwMDktMDkt MTcgMTI6NDc6MTQuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDQ4IEBACiArIyEvYmluL3No CiArCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1pYTY0LXNpZ3RyYW1wLWZwLTIwMDUwOTI2LnBhdGNo IGIvZ2RiLTYuMy1pYTY0LXNpZ3RyYW1wLWZwLTIwMDUwOTI2LnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA5YmFmODAxLi4wMDAwMDAwCi0tLSBhL2dkYi02LjMtaWE2NC1zaWd0 cmFtcC1mcC0yMDA1MDkyNi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi0y MDA1LTA5LTI3ICBKZWZmIEpvaG5zdG9uICA8ampvaG5zdG5AcmVkaGF0LmNvbT4KLQotCSogbGli dW53aW5kLWZyYW1lLmMgKGxpYnVud2luZF9mcmFtZV9jYWNoZSk6IFNhdmUgdGhlIGN1cnJlbnQK LQlzdGFjayBwb2ludGVyIGluIHRoZSBjYWNoZS4KLQkobGlidW53aW5kX3NpZ3RyYW1wX2ZyYW1l X3RoaXNfaWQpOiBOZXcgZnVuY3Rpb24uCi0JKGxpYnVud2luZF9zaWd0cmFtcF9mcmFtZV91bndp bmQpOiBOZXcgdW53aW5kZXIuCi0JKGxpYnVud2luZF9zaWd0cmFtcF9mcmFtZV9zbmlmZmVyKTog UmV0dXJuIAotCWxpYnVud2luZF9zaWd0cmFtcF9mcmFtZV91bndpbmQgYWRkcmVzcy4KLQkqIGxp YnVud2luZC1mcmFtZS5oIChsaWJ1bndpbmRfc2lndHJhbXBfZnJhbWVfdGhpc19pZCk6IE5ldwot CXByb3RvdHlwZS4KLQkqIGlhNjQtdGRlcC5jIChpYTY0X2xpYnVud2luZF9zaWd0cmFtcF9mcmFt ZV90aGlzX2lkKTogQ2FsY3VsYXRlCi0JdGhlIGJhc2UgYWRkcmVzcyB1c2luZyB0aGUgY3VycmVu dCBzdGFjayBwb2ludGVyIHBsdXMgYSBmaXhlZAotCW9mZnNldC4KLQotMjAwNy0xMC0xNCAgSmFu IEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JUG9ydCB0byBHREIt Ni43LgotCi0yMDA4LTAyLTI0ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhh dC5jb20+Ci0KLQlQb3J0IHRvIEdEQi02LjhwcmUuCi0KLTIwMDgtMDQtMTYgIFlpIFpoYW4gIDx5 aS56aGFuQGludGVsLmNvbT4KLQotCUZpeCBhIGNvbXBpbGF0aW9uIGVycm9yIG9uIGEgdHlwby4K LQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2xpYnVud2luZC1mcmFtZS5jCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9saWJ1bndpbmQtZnJhbWUu YwkyMDA5LTAxLTAzIDA2OjU3OjUyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAw OTA4MDMvZ2RiL2xpYnVud2luZC1mcmFtZS5jCTIwMDktMDgtMDQgMDY6MzE6MzQuMDAwMDAwMDAw ICswMjAwCi1AQCAtNjIsNiArNjIsNyBAQCBzdGF0aWMgdW53X3dvcmRfdCAoKnVud19maW5kX2R5 bl9saXN0X3ApCi0gc3RydWN0IGxpYnVud2luZF9mcmFtZV9jYWNoZQotIHsKLSAgIENPUkVfQURE UiBiYXNlOwotKyAgQ09SRV9BRERSIHNwOwotICAgQ09SRV9BRERSIGZ1bmNfYWRkcjsKLSAgIHVu d19jdXJzb3JfdCBjdXJzb3I7Ci0gICB1bndfYWRkcl9zcGFjZV90IGFzOwotQEAgLTEzNCw2ICsx MzUsNyBAQCBsaWJ1bndpbmRfZnJhbWVfY2FjaGUgKHN0cnVjdCBmcmFtZV9pbmZvCi0gICB1bndf YWNjZXNzb3JzX3QgKmFjYzsKLSAgIHVud19hZGRyX3NwYWNlX3QgYXM7Ci0gICB1bndfd29yZF90 IGZwOwotKyAgdW53X3dvcmRfdCBzcDsKLSAgIHVud19yZWdudW1fdCB1d19zcF9yZWdudW07Ci0g ICBzdHJ1Y3QgbGlidW53aW5kX2ZyYW1lX2NhY2hlICpjYWNoZTsKLSAgIHN0cnVjdCBsaWJ1bndp bmRfZGVzY3IgKmRlc2NyOwotQEAgLTE3NSwxNCArMTc3LDMwIEBAIGxpYnVud2luZF9mcmFtZV9j YWNoZSAoc3RydWN0IGZyYW1lX2luZm8KLSAJCQkJIDogX19MSVRUTEVfRU5ESUFOKTsKLSAKLSAg IHVud19pbml0X3JlbW90ZV9wICgmY2FjaGUtPmN1cnNvciwgYXMsIHRoaXNfZnJhbWUpOwotKwot KyAgLyogRm9yIHRoZSBiYXNlIGFkZHJlc3MsIHdlIGhhdmUgYSBzbWFsbCBwcm9ibGVtLiAgVGhl IG1ham9yaXR5Ci0rICAgICBvZiB0aGUgdGltZSwgd2UgY2FuIGdldCB0aGUgc3RhY2sgcG9pbnRl ciBvZiB0aGUgcHJldmlvdXMKLSsgICAgIGZyYW1lIHRvIHVzZSBhcyBhIGZyYW1lIHBvaW50ZXIu ICBJbiB0aGUgY2FzZSB3aGVyZSB3ZSBoYXZlCi0rICAgICBhIHNpZ25hbCB0cmFtcG9saW5lLCB0 aGUgc3RhY2sgbWF5IGNoYW5nZSBkdWUgdG8gYSBzaWdhbHRzdGFjawotKyAgICAgYmVpbmcgc2V0 IHVwLiAgSW4gdGhhdCBjYXNlLCB0aGUgbm9ybWFsIG1lY2hhbmlzbSB3aWxsIGdpdmUgdXMKLSsg ICAgIGFuIGFkZHJlc3MgaW4gdGhlIHJlZ3VsYXIgc3RhY2sgd2hpY2ggaXMgbm90IGF0IHRoZSBl bmQgb2YgdGhlCi0rICAgICBzaWdhbHRzdGFjayBhcyB3ZSB3YW50LiAgVG8gaGFuZGxlIHRoaXMs IHdlIHJlY29yZCB0aGUgc3RhY2sKLSsgICAgIGFkZHJlc3Mgc28gdGhlIGNhbGxlciBtYXkgY2Fs Y3VsYXRlIGEgbW9yZSBjb3JyZWN0IGJhc2UgYWRkcmVzcwotKyAgICAgdG8gdXNlLiAgKi8KLSsg IHV3X3NwX3JlZ251bSA9IGRlc2NyLT5nZGIydXcgKGdkYmFyY2hfc3BfcmVnbnVtIChnZGJhcmNo KSk7Ci0rICByZXQgPSB1bndfZ2V0X3JlZ19wICgmY2FjaGUtPmN1cnNvciwgdXdfc3BfcmVnbnVt LCAmc3ApOwotKyAgaWYgKHJldCA8IDApCi0rICAgIHsKLSsgICAgICB1bndfZGVzdHJveV9hZGRy X3NwYWNlX3AgKGFzKTsKLSsgICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGxpYnVud2luZCBzcCBy ZWdpc3Rlci4iKSk7Ci0rICAgIH0KLSsKLSAgIGlmICh1bndfc3RlcF9wICgmY2FjaGUtPmN1cnNv cikgPCAwKQotICAgICB7Ci0gICAgICAgdW53X2Rlc3Ryb3lfYWRkcl9zcGFjZV9wIChhcyk7Ci0g ICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgIH0KLSAKLS0gIC8qIFRvIGdldCBiYXNlIGFkZHJlc3Ms IGdldCBzcCBmcm9tIHByZXZpb3VzIGZyYW1lLiAgKi8KLS0gIHV3X3NwX3JlZ251bSA9IGRlc2Ny LT5nZGIydXcgKGdkYmFyY2hfc3BfcmVnbnVtIChnZGJhcmNoKSk7Ci0gICByZXQgPSB1bndfZ2V0 X3JlZ19wICgmY2FjaGUtPmN1cnNvciwgdXdfc3BfcmVnbnVtLCAmZnApOwotICAgaWYgKHJldCA8 IDApCi0gICAgIHsKLUBAIC0xOTAsNiArMjA4LDcgQEAgbGlidW53aW5kX2ZyYW1lX2NhY2hlIChz dHJ1Y3QgZnJhbWVfaW5mbwotICAgICAgIGVycm9yIChfKCJDYW4ndCBnZXQgbGlidW53aW5kIHNw IHJlZ2lzdGVyLiIpKTsKLSAgICAgfQotIAotKyAgY2FjaGUtPnNwID0gKENPUkVfQUREUilzcDsK LSAgIGNhY2hlLT5iYXNlID0gKENPUkVfQUREUilmcDsKLSAgIGNhY2hlLT5hcyA9IGFzOwotIAot QEAgLTM3Nyw2ICszOTYsMzEgQEAgbGlidW53aW5kX3NlYXJjaF91bndpbmRfdGFibGUgKHZvaWQg KmFzLAotIAkJCQkgICAgZGksIHBpLCBuZWVkX3Vud2luZF9pbmZvLCBhcmdzKTsKLSB9Ci0gCi0r dm9pZAotK2xpYnVud2luZF9zaWd0cmFtcF9mcmFtZV90aGlzX2lkIChzdHJ1Y3QgZnJhbWVfaW5m byAqdGhpc19mcmFtZSwgCi0rCQkJCSAgdm9pZCAqKnRoaXNfY2FjaGUsCi0rCQkgICAgICAJCSAg c3RydWN0IGZyYW1lX2lkICp0aGlzX2lkKQotK3sKLSsgIHN0cnVjdCBsaWJ1bndpbmRfZnJhbWVf Y2FjaGUgKmNhY2hlID0KLSsgICAgbGlidW53aW5kX2ZyYW1lX2NhY2hlICh0aGlzX2ZyYW1lLCB0 aGlzX2NhY2hlKTsKLSsKLSsgIC8qIFVubGlrZSBhIHJlZ3VsYXIgZnJhbWUsIHdlIGNhbid0IHVz ZSB0aGUgbm9ybWFsIGZyYW1lIHBvaW50ZXIKLSsgICAgIG1lY2hhbmlzbSBiZWNhdXNlIGEgc2ln YWx0c3RhY2sgbWF5IGhhdmUgYmVlbiB1c2VkLiAgSW5zdGVhZCwKLSsgICAgIHdlIHJldHVybiB0 aGUgY3VycmVudCBzdGFjayBwb2ludGVyIGZvciB0aGUgY2FsbGVyIHRvIHVzZQotKyAgICAgdG8g Y2FsY3VsYXRlIHRoZSBiYXNlIGFkZHJlc3MuICAqLwotKyAgaWYgKGNhY2hlICE9IE5VTEwpCi0r ICAgICgqdGhpc19pZCkgPSBmcmFtZV9pZF9idWlsZCAoY2FjaGUtPnNwLCBjYWNoZS0+ZnVuY19h ZGRyKTsKLSsgIGVsc2UKLSsgICAgKCp0aGlzX2lkKSA9IG51bGxfZnJhbWVfaWQ7Ci0rfQotKwot K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kIGxpYnVud2luZF9zaWd0cmFtcF9mcmFt ZV91bndpbmQgPQotK3sKLSsgIFNJR1RSQU1QX0ZSQU1FLAotKyAgbGlidW53aW5kX3NpZ3RyYW1w X2ZyYW1lX3RoaXNfaWQsCi0rICBsaWJ1bndpbmRfZnJhbWVfcHJldl9yZWdpc3RlcgotK307Ci0r Ci0gLyogVmVyaWZ5IGlmIHdlIGFyZSBpbiBhIHNpZ3RyYW1wIGZyYW1lIGFuZCB3ZSBjYW4gdXNl IGxpYnVud2luZCB0byB1bndpbmQuICAqLwotIGludAotIGxpYnVud2luZF9zaWd0cmFtcF9mcmFt ZV9zbmlmZmVyIChjb25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kICpzZWxmLAotSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL2xpYnVud2luZC1mcmFtZS5oCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9saWJ1bndpbmQtZnJhbWUuaAkyMDA5LTAxLTAzIDA2 OjU3OjUyLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2xpYnVu d2luZC1mcmFtZS5oCTIwMDktMDgtMDQgMDY6MzE6MzQuMDAwMDAwMDAwICswMjAwCi1AQCAtNTIs NiArNTIsOSBAQCB2b2lkIGxpYnVud2luZF9mcmFtZV9zZXRfZGVzY3IgKHN0cnVjdCBnCi0gCi0g dm9pZCBsaWJ1bndpbmRfZnJhbWVfdGhpc19pZCAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJh bWUsIHZvaWQgKip0aGlzX2NhY2hlLAotIAkJCSAgICAgIHN0cnVjdCBmcmFtZV9pZCAqdGhpc19p ZCk7Ci0rdm9pZCBsaWJ1bndpbmRfc2lndHJhbXBfZnJhbWVfdGhpc19pZCAoc3RydWN0IGZyYW1l X2luZm8gKnRoaXNfZnJhbWUsIAotKwkJCQkgICAgICAgdm9pZCAqKnRoaXNfY2FjaGUsCi0rCQkJ ICAgICAgCSAgICAgICBzdHJ1Y3QgZnJhbWVfaWQgKnRoaXNfaWQpOwotIHN0cnVjdCB2YWx1ZSAq bGlidW53aW5kX2ZyYW1lX3ByZXZfcmVnaXN0ZXIgKHN0cnVjdCBmcmFtZV9pbmZvICp0aGlzX2Zy YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQg Kip0aGlzX2NhY2hlLCBpbnQgcmVnbnVtKTsKLSB2b2lkIGxpYnVud2luZF9mcmFtZV9kZWFsbG9j X2NhY2hlIChzdHJ1Y3QgZnJhbWVfaW5mbyAqc2VsZiwgdm9pZCAqY2FjaGUpOwotSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MDMvZ2RiL2lhNjQtdGRlcC5jCi09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYu OC41MC4yMDA5MDgwMy5vcmlnL2dkYi9pYTY0LXRkZXAuYwkyMDA5LTA4LTA0IDA2OjMwOjQ1LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2lhNjQtdGRlcC5jCTIw MDktMDgtMDQgMDY6MzE6MzQuMDAwMDAwMDAwICswMjAwCi1AQCAtMzAyMyw3ICszMDIzLDcgQEAg aWE2NF9saWJ1bndpbmRfc2lndHJhbXBfZnJhbWVfdGhpc19pZCAocwotICAgc3RydWN0IGZyYW1l X2lkIGlkOwotICAgQ09SRV9BRERSIHByZXZfaXA7Ci0gCi0tICBsaWJ1bndpbmRfZnJhbWVfdGhp c19pZCAodGhpc19mcmFtZSwgdGhpc19jYWNoZSwgJmlkKTsKLSsgIGxpYnVud2luZF9zaWd0cmFt cF9mcmFtZV90aGlzX2lkICh0aGlzX2ZyYW1lLCB0aGlzX2NhY2hlLCAmaWQpOwotICAgaWYgKGZy YW1lX2lkX2VxIChpZCwgbnVsbF9mcmFtZV9pZCkpCi0gICAgIHsKLSAgICAgICAoKnRoaXNfaWQp ID0gbnVsbF9mcmFtZV9pZDsKLUBAIC0zMDM1LDggKzMwMzUsMTQgQEAgaWE2NF9saWJ1bndpbmRf c2lndHJhbXBfZnJhbWVfdGhpc19pZCAocwotICAgZ2V0X2ZyYW1lX3JlZ2lzdGVyICh0aGlzX2Zy YW1lLCBJQTY0X0JTUF9SRUdOVU0sIGJ1Zik7Ci0gICBic3AgPSBleHRyYWN0X3Vuc2lnbmVkX2lu dGVnZXIgKGJ1ZiwgOCwgYnl0ZV9vcmRlcik7Ci0gCi0tICAvKiBGb3IgYSBzaWd0cmFtcCBmcmFt ZSwgd2UgZG9uJ3QgbWFrZSB0aGUgY2hlY2sgZm9yIHByZXZpb3VzIGlwIGJlaW5nIDAuICAqLwot LSAgKCp0aGlzX2lkKSA9IGZyYW1lX2lkX2J1aWxkX3NwZWNpYWwgKGlkLnN0YWNrX2FkZHIsIGlk LmNvZGVfYWRkciwgYnNwKTsKLSsgIC8qIEZvciBhIHNpZ3RyYW1wIGZyYW1lLCB3ZSBkb24ndCBt YWtlIHRoZSBjaGVjayBmb3IgcHJldmlvdXMgaXAgYmVpbmcgMC4gIAotKyAgICAgV2UgYWxzbyBt dXN0IGNhbGN1bGF0ZSB0aGUgZnJhbWUgcG9pbnRlciBiZWNhdXNlIGxpYnVud2luZCB3aWxsIGdp dmUKLSsgICAgIHVzIGJhY2sgdGhlIGN1cnJlbnQgc3RhY2sgcG9pbnRlciBpbnN0ZWFkIG9mIHRo ZSBmcmFtZSBwb2ludGVyIHNpbmNlCi0rICAgICBpdCBjYW5ub3QgZmlndXJlIHRoaXMgb3V0IHdo ZW4gaW4gYSBzaWdhbHRzdGFjay4gIFdlIG1ha2UgYSBiYXNpYwotKyAgICAgYXNzdW1wdGlvbiBv ZiAxNiAoZGVmYXVsdCBzaXplKSArIDggYnl0ZXMgZm9yIHNpZ2NvbnRleHQgYWRkcmVzcy4KLSsg ICAgIEZJWE1FOiBpZiBsaWJ1bndpbmQgd2VyZSB0byBleHBvcnQgdGhlIGZyYW1lIHBvaW50ZXIg YWRkcmVzcywgd2UKLSsgICAgICAgICAgICBjb3VsZCBlbGltaW5hdGUgdGhlIGFzc3VtcHRpb24g YW5kIGdldCB0aGUgYWN0dWFsIHZhbHVlLiAgKi8KLSsgICgqdGhpc19pZCkgPSBmcmFtZV9pZF9i dWlsZF9zcGVjaWFsIChpZC5zdGFja19hZGRyICsgMjQsIGlkLmNvZGVfYWRkciwgYnNwKTsKLSAK LSAgIGlmIChnZGJhcmNoX2RlYnVnID49IDEpCi0gICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2Ri X3N0ZGxvZywKCmRpZmYgLS1naXQgYS9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaCBiL2dkYi02 LjMtcGllLTIwMDUwMTEwLnBhdGNoCmluZGV4IGY2NjIxYjIuLjA0NzU1ZWEgMTAwNjQ0Ci0tLSBh L2dkYi02LjMtcGllLTIwMDUwMTEwLnBhdGNoCisrKyBiL2dkYi02LjMtcGllLTIwMDUwMTEwLnBh dGNoCkBAIC0yNiwxMCArMjYsMTAgQEAKIAogCUZpeCBzY2FuX2R5bnRhZygpIGZvciBiaW5hcmll cyBwcm92aWRlZCBieSB2YWxncmluZCAoQlogNDYwMzE5KS4KIAotSW5kZXg6IGdkYi02LjguNTAu MjAwOTA5MDkvZ2RiL2FtZDY0LXRkZXAuYworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2Ri L2FtZDY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9n ZGIvYW1kNjQtdGRlcC5jCTIwMDktMDktMDkgMTk6MDk6MzEuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYW1kNjQtdGRlcC5jCTIwMDktMDktMDkgMTk6MjQ6MTMu MDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9hbWQ2NC10 ZGVwLmMJMjAwOS0wOS0xNyAxMjo0ODo0OS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44Ljkx LjIwMDkwOTE3L2dkYi9hbWQ2NC10ZGVwLmMJMjAwOS0wOS0xNyAxMjo1MDowNy4wMDAwMDAwMDAg KzAyMDAKIEBAIC0zNiw2ICszNiw3IEBACiAgI2luY2x1ZGUgInJlZ2NhY2hlLmgiCiAgI2luY2x1 ZGUgInJlZ3NldC5oIgpAQCAtMTM4LDEwICsxMzgsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTA5MDkvZ2RiL2FtZDY0LXRkZXAuYwogICAgcmV0dXJuIHBjOwogIH0KICAKLUluZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9hdXh2LmMKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dk Yi9hdXh2LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2F1 eHYuYwkyMDA5LTA3LTAyIDE5OjI1OjUyLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAu MjAwOTA5MDkvZ2RiL2F1eHYuYwkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCArMDIwMAor LS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvYXV4di5jCTIwMDktMDctMDIgMTk6MjU6 NTIuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvYXV4di5jCTIw MDktMDktMTcgMTI6NTA6MDcuMDAwMDAwMDAwICswMjAwCiBAQCAtNzgsNyArNzgsNyBAQCBwcm9j ZnNfeGZlcl9hdXh2IChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzCiAgICAgUmV0dXJuIDEgaWYgYW4g ZW50cnkgd2FzIHJlYWQgaW50byAqVFlQRVAgYW5kICpWQUxQLiAgKi8KICBzdGF0aWMgaW50CkBA IC0yMzAsMTAgKzIzMCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYXV4di5j CiAgCWJyZWFrOwogICAgICB9CiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYXV4 di5oCitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvYXV4di5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9hdXh2LmgJMjAwOS0wNi0wNyAyMTowNzow OC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9hdXh2LmgJMjAw OS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3 Lm9yaWcvZ2RiL2F1eHYuaAkyMDA5LTA2LTA3IDIxOjA3OjA4LjAwMDAwMDAwMCArMDIwMAorKysr IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2F1eHYuaAkyMDA5LTA5LTE3IDEyOjUwOjA3LjAwMDAw MDAwMCArMDIwMAogQEAgLTMxLDE0ICszMSwxNCBAQAogICAgIFJldHVybiAxIGlmIGFuIGVudHJ5 IHdhcyByZWFkIGludG8gKlRZUEVQIGFuZCAqVkFMUC4gICovCiAgZXh0ZXJuIGludCB0YXJnZXRf YXV4dl9wYXJzZSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywKQEAgLTI1MSwxMSArMjUxLDExIEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9hdXh2LmgKICAKICAvKiBQcmludCB0aGUg Y29udGVudHMgb2YgdGhlIHRhcmdldCdzIEFVWFYgb24gdGhlIHNwZWNpZmllZCBmaWxlLiAqLwog IGV4dGVybiBpbnQgZnByaW50X3RhcmdldF9hdXh2IChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSwgc3Ry dWN0IHRhcmdldF9vcHMgKm9wcyk7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZHdh cmYycmVhZC5jCitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvZHdhcmYycmVhZC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJ MjAwOS0wOS0wOSAxOToyMToyMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAK LUBAIC0xNzE5LDcgKzE3MTksNyBAQCBkd2FyZjJfYnVpbGRfcHN5bXRhYnMgKHN0cnVjdCBvYmpm aWxlICpvCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAw OS0wOS0xNyAxMjo0OToyMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3 L2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOS0xNyAxMjo1MDowNy4wMDAwMDAwMDAgKzAyMDAKK0BA IC0xNzE3LDcgKzE3MTcsNyBAQCBkd2FyZjJfYnVpbGRfcHN5bXRhYnMgKHN0cnVjdCBvYmpmaWxl ICpvCiAgICBkd2FyZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCAmZHdhcmYyX3Blcl9vYmpmaWxl LT5laF9mcmFtZSk7CiAgICBkd2FyZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCAmZHdhcmYyX3Bl cl9vYmpmaWxlLT5mcmFtZSk7CiAgCkBAIC0yNjQsMTAgKzI2NCwxMCBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDkwOS9nZGIvZHdhcmYycmVhZC5jCiAgICAgICAgfHwgKG9iamZpbGUtPmdsb2Jh bF9wc3ltYm9scy5zaXplID09IDAKICAJICAmJiBvYmpmaWxlLT5zdGF0aWNfcHN5bWJvbHMuc2l6 ZSA9PSAwKSkKICAgICAgewotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2VsZnJlYWQu YworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2VsZnJlYWQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZWxmcmVhZC5jCTIwMDktMDktMDkgMTk6 MDU6NTUuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZWxmcmVh ZC5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC45MS4y MDA5MDkxNy5vcmlnL2dkYi9lbGZyZWFkLmMJMjAwOS0wOS0xNyAxMjo0NzowNy4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9lbGZyZWFkLmMJMjAwOS0wOS0xNyAx Mjo1MDowNy4wMDAwMDAwMDAgKzAyMDAKIEBAIC02ODEsNyArNjgxLDcgQEAgZWxmX3N5bWZpbGVf cmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAogICAgLyogSWYgd2UgYXJlIHJlaW5pdGlhbGl6 aW5nLCBvciBpZiB3ZSBoYXZlIG5ldmVyIGxvYWRlZCBzeW1zIHlldCwKICAgICAgIHNldCB0YWJs ZSB0byBlbXB0eS4gIE1BSU5MSU5FIGlzIGNsZWFyZWQgc28gdGhhdCAqX3JlYWRfcHN5bXRhYgpA QCAtMjc3LDExICsyNzcsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2VsZnJl YWQuYwogICAgICB7CiAgICAgICAgaW5pdF9wc3ltYm9sX2xpc3QgKG9iamZpbGUsIDApOwogICAg ICAgIG1haW5saW5lID0gMDsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmZydW4u YworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9pbmZydW4uYwkyMDA5LTA5LTA5IDE5OjA5 OjMxLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2luZnJ1bi5j CTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCi1AQCAtMzYwMiw2ICszNjAyLDEw IEBAIGluZnJ1bjogQlBTVEFUX1dIQVRfU0VUX0xPTkdKTVBfUkVTVU1FICgKKy0tLSBnZGItNi44 LjkxLjIwMDkwOTE3Lm9yaWcvZ2RiL2luZnJ1bi5jCTIwMDktMDktMTcgMTI6NDg6NTAuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvaW5mcnVuLmMJMjAwOS0wOS0x NyAxMjo1MDowNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zNjU5LDYgKzM2NTksMTAgQEAgaW5mcnVu OiBCUFNUQVRfV0hBVF9TRVRfTE9OR0pNUF9SRVNVTUUgKAogICNlbmRpZgogIAkgIHRhcmdldF90 ZXJtaW5hbF9pbmZlcmlvciAoKTsKICAKQEAgLTI5MiwxMyArMjkyLDEzIEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9pbmZydW4uYwogIAkgIC8qIElmIHJlcXVlc3RlZCwgc3RvcCB3 aGVuIHRoZSBkeW5hbWljIGxpbmtlciBub3RpZmllcwogIAkgICAgIGdkYiBvZiBldmVudHMuICBU aGlzIGFsbG93cyB0aGUgdXNlciB0byBnZXQgY29udHJvbAogIAkgICAgIGFuZCBwbGFjZSBicmVh a3BvaW50cyBpbiBpbml0aWFsaXplciByb3V0aW5lcyBmb3IKLUluZGV4OiBnZGItNi44LjUwLjIw MDkwOTA5L2dkYi9vYmpmaWxlcy5jCitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvb2Jq ZmlsZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvb2Jq ZmlsZXMuYwkyMDA5LTA5LTA5IDE5OjIzOjA1LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL29iamZpbGVzLmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAg KzAyMDAKLUBAIC01MSw2ICs1MSw5IEBACi0gI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIKLSAjaW5j bHVkZSAiZXhlYy5oIgorLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvb2JqZmlsZXMu YwkyMDA5LTA5LTE3IDEyOjQ3OjA3LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEuMjAw OTA5MTcvZ2RiL29iamZpbGVzLmMJMjAwOS0wOS0xNyAxMjo1MDoyMC4wMDAwMDAwMDAgKzAyMDAK K0BAIC01Myw2ICs1Myw5IEBACisgI2luY2x1ZGUgIm9ic2VydmVyLmgiCisgI2luY2x1ZGUgImNv bXBsYWludHMuaCIKICAKICsjaW5jbHVkZSAiYXV4di5oIgogKyNpbmNsdWRlICJlbGYvY29tbW9u LmgiCkBAIC0zMDYsNyArMzA2LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL29i amZpbGVzLmMKICAvKiBQcm90b3R5cGVzIGZvciBsb2NhbCBmdW5jdGlvbnMgKi8KICAKICBzdGF0 aWMgdm9pZCBvYmpmaWxlX2FsbG9jX2RhdGEgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKTsKLUBA IC0yNzgsOSArMjgxLDE3IEBAIGluaXRfZW50cnlfcG9pbnRfaW5mbyAoc3RydWN0IG9iamZpbGUg Km8KK0BAIC0yODAsOSArMjgzLDE3IEBAIGluaXRfZW50cnlfcG9pbnRfaW5mbyAoc3RydWN0IG9i amZpbGUgKm8KICBDT1JFX0FERFIKICBlbnRyeV9wb2ludF9hZGRyZXNzICh2b2lkKQogIHsKQEAg LTMyNCw3ICszMjQsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvb2JqZmlsZXMu YwogICAgaWYgKHN5bWZpbGVfb2JqZmlsZSA9PSBOVUxMKQogICAgICByZXR1cm4gMDsKICAKLUBA IC00NjUsNiArNDc2LDkgQEAgZnJlZV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkK K0BAIC00NjcsNiArNDc4LDkgQEAgZnJlZV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSkKICAgIGlmIChvYmpmaWxlID09IHN5bWZpbGVfb2JqZmlsZSkKICAgICAgc3ltZmlsZV9vYmpm aWxlID0gTlVMTDsKICAKQEAgLTMzNCwxMCArMzM0LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIw MDkwOTA5L2dkYi9vYmpmaWxlcy5jCiAgICAvKiBCZWZvcmUgdGhlIHN5bWJvbCB0YWJsZSBjb2Rl IHdhcyByZWRvbmUgdG8gbWFrZSBpdCBlYXNpZXIgdG8KICAgICAgIHNlbGVjdGl2ZWx5IGxvYWQg YW5kIHJlbW92ZSBpbmZvcm1hdGlvbiBwYXJ0aWN1bGFyIHRvIGEgc3BlY2lmaWMKICAgICAgIGxp bmthZ2UgdW5pdCwgZ2RiIHVzZWQgdG8gZG8gdGhlc2UgdGhpbmdzIHdoZW5ldmVyIHRoZSBtb25v bGl0aGljCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc29saWItc3ZyNC5jCitJbmRl eDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvc29saWItc3ZyNC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0wOS0wOSAxOTow OTozNS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zb2xpYi1z dnI0LmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44Ljkx LjIwMDkwOTE3Lm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDA5LTA5LTE3IDEyOjQ4OjUwLjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3NvbGliLXN2cjQuYwkyMDA5 LTA5LTE3IDEyOjUwOjA3LjAwMDAwMDAwMCArMDIwMAogQEAgLTQ3LDYgKzQ3LDcgQEAKICAjaW5j bHVkZSAiZXhlYy5oIgogICNpbmNsdWRlICJhdXh2LmgiCkBAIC0xMDAwLDEwICsxMDAwLDEwIEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zb2xpYi1zdnI0LmMKICsgIGFkZF9pbmZv ICgibGlua21hcCIsIGluZm9fbGlua21hcF9jb21tYW5kLAogKwkgICAgIkRpc3BsYXkgdGhlIGlu ZmVyaW9yJ3MgbGlua21hcC4iKTsKICB9Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv c29saWIuYworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3NvbGliLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3NvbGliLmMJMjAwOS0wOS0wOSAx OTowNTo1Ni4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zb2xp Yi5jCTIwMDktMDktMDkgMTk6MjU6MTguMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC45MS4y MDA5MDkxNy5vcmlnL2dkYi9zb2xpYi5jCTIwMDktMDktMTcgMTI6NDc6MDcuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvc29saWIuYwkyMDA5LTA5LTE3IDEyOjUw OjA3LjAwMDAwMDAwMCArMDIwMAogQEAgLTgyLDYgKzgyLDggQEAgc2V0X3NvbGliX29wcyAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsIAogIAogIC8qIGV4dGVybmFsIGRhdGEgZGVjbGFyYXRpb25z ICovCkBAIC0xMTQwLDEwICsxMTQwLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi9zb2xpYi5jCiArCQkJICAgTlVMTCwgTlVMTCwKICsJCQkgICAmc2V0ZGVidWdsaXN0LCAmc2hv d2RlYnVnbGlzdCk7CiAgfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3NvbGlzdC5o CitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvc29saXN0LmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3NvbGlzdC5oCTIwMDktMDktMDkgMTk6MDU6 NTYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc29saXN0LmgJ MjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIwMDkw OTE3Lm9yaWcvZ2RiL3NvbGlzdC5oCTIwMDktMDktMTcgMTI6NDc6MDcuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvc29saXN0LmgJMjAwOS0wOS0xNyAxMjo1MDow Ny4wMDAwMDAwMDAgKzAyMDAKIEBAIC02MSw2ICs2MSw4IEBAIHN0cnVjdCBzb19saXN0CiAgICAg IGJmZCAqYWJmZDsKICAgICAgY2hhciBzeW1ib2xzX2xvYWRlZDsJLyogZmxhZzogc3ltYm9scyBy ZWFkIGluIHlldD8gKi8KQEAgLTExNjQsMTAgKzExNjQsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA5MDkvZ2RiL3NvbGlzdC5oCiArZXh0ZXJuIGludCBkZWJ1Z19zb2xpYjsKICsKICAjZW5k aWYKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxlLW1lbS5jCitJbmRleDog Z2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvc3ltZmlsZS1tZW0uYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvc3ltZmlsZS1tZW0uYwkyMDA5LTA5LTA5IDE5OjA2 OjU3LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUt bWVtLmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44Ljkx LjIwMDkwOTE3Lm9yaWcvZ2RiL3N5bWZpbGUtbWVtLmMJMjAwOS0wOS0xNyAxMjo0ODo0OS4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9zeW1maWxlLW1lbS5jCTIw MDktMDktMTcgMTI6NTA6MDcuMDAwMDAwMDAwICswMjAwCiBAQCAtMTE1LDcgKzExNSw3IEBAIHN5 bWJvbF9maWxlX2FkZF9mcm9tX21lbW9yeSAoc3RydWN0IGJmZCAKICAJKytpOwogICAgICAgIH0K QEAgLTExNzcsMTAgKzExNzcsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5 bWZpbGUtbWVtLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhaSwgT0JK Rl9TSEFSRUQpOwogIAogICAgLyogVGhpcyBtaWdodCBjaGFuZ2Ugb3VyIGlkZWFzIGFib3V0IGZy YW1lcyBhbHJlYWR5IGxvb2tlZCBhdC4gICovCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9n ZGIvc3ltZmlsZS5jCitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvc3ltZmlsZS5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zeW1maWxlLmMJMjAw OS0wOS0wOSAxOToxNTo0My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi9zeW1maWxlLmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBn ZGItNi44LjkxLjIwMDkwOTE3Lm9yaWcvZ2RiL3N5bWZpbGUuYwkyMDA5LTA5LTE3IDEyOjQ4OjUw LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3N5bWZpbGUuYwky MDA5LTA5LTE3IDEyOjUwOjA3LjAwMDAwMDAwMCArMDIwMAogQEAgLTQ5LDYgKzQ5LDcgQEAKICAj aW5jbHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKICAjaW5jbHVkZSAiZ2RiX2Fzc2VydC5oIgpA QCAtMTI1MCw3ICsxMjUwLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZp bGUuYwogICAgICAgICYmIChoYXZlX2Z1bGxfc3ltYm9scyAoKSB8fCBoYXZlX3BhcnRpYWxfc3lt Ym9scyAoKSkKICAgICAgICAmJiBmcm9tX3R0eQogICAgICAgICYmIChoYXZlX2Z1bGxfc3ltYm9s cyAoKSB8fCBoYXZlX3BhcnRpYWxfc3ltYm9scyAoKSkKLUBAIC0xMTYyLDYgKzExNjgsOSBAQCBz eW1ib2xfZmlsZV9jbGVhciAoaW50IGZyb21fdHR5KQorQEAgLTExNjMsNiArMTE2OSw5IEBAIHN5 bWJvbF9maWxlX2NsZWFyIChpbnQgZnJvbV90dHkpCiAgCQkgICAgc3ltZmlsZV9vYmpmaWxlLT5u YW1lKQogIAkgIDogIXF1ZXJ5IChfKCJEaXNjYXJkIHN5bWJvbCB0YWJsZT8gIikpKSkKICAgICAg ZXJyb3IgKF8oIk5vdCBjb25maXJtZWQuIikpOwpAQCAtMTI2OSwxMSArMTI2OSwxMSBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc3ltZmlsZS5jCiAgCSAgICAgIC8qIElmIHRoZSBt dGltZSBoYXMgY2hhbmdlZCBiZXR3ZWVuIHRoZSB0aW1lIHdlIHNldCBuZXdfbW9kdGltZQogIAkg ICAgICAgICBhbmQgbm93LCB3ZSAqd2FudCogdGhpcyB0byBiZSBvdXQgb2YgZGF0ZSwgc28gZG9u J3QgY2FsbCBzdGF0CiAgCSAgICAgICAgIGFnYWluIG5vdy4gICovCi1JbmRleDogZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmgKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi90 YXJnZXQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvdGFy Z2V0LmgJMjAwOS0wOS0wOSAxOTowNzozNi4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUw LjIwMDkwOTA5L2dkYi90YXJnZXQuaAkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCArMDIw MAotQEAgLTUyOCw3ICs1MjgsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworLS0tIGdkYi02LjguOTEu MjAwOTA5MTcub3JpZy9nZGIvdGFyZ2V0LmgJMjAwOS0wOS0xNyAxMjo0ODo0OS4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi90YXJnZXQuaAkyMDA5LTA5LTE3IDEy OjUwOjA3LjAwMDAwMDAwMCArMDIwMAorQEAgLTU0NSw3ICs1NDUsNyBAQCBzdHJ1Y3QgdGFyZ2V0 X29wcwogICAgICAgICBSZXR1cm4gLTEgaWYgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGJ1ZmZlciBm b3IgYSB3aG9sZSBlbnRyeS4KICAgICAgICAgUmV0dXJuIDEgaWYgYW4gZW50cnkgd2FzIHJlYWQg aW50byAqVFlQRVAgYW5kICpWQUxQLiAgKi8KICAgICAgaW50ICgqdG9fYXV4dl9wYXJzZSkgKHN0 cnVjdCB0YXJnZXRfb3BzICpvcHMsIGdkYl9ieXRlICoqcmVhZHB0ciwKQEAgLTEyODIsMTAgKzEy ODIsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3RhcmdldC5oCiAgCiAgICAg IC8qIFNlYXJjaCBTRUFSQ0hfU1BBQ0VfTEVOIGJ5dGVzIGJlZ2lubmluZyBhdCBTVEFSVF9BRERS IGZvciB0aGUKICAgICAgICAgc2VxdWVuY2Ugb2YgYnl0ZXMgaW4gUEFUVEVSTiB3aXRoIGxlbmd0 aCBQQVRURVJOX0xFTi4KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxlLmgK K0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9zeW1maWxlLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDA5LTA5LTA5IDE5OjE1 OjQzLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUu aAkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguOTEuMjAw OTA5MTcub3JpZy9nZGIvc3ltZmlsZS5oCTIwMDktMDktMTcgMTI6NDg6NTAuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvc3ltZmlsZS5oCTIwMDktMDktMTcgMTI6 NTA6MDcuMDAwMDAwMDAwICswMjAwCiBAQCAtMjI5LDcgKzIyOSwxMyBAQCBlbnVtIHN5bWZpbGVf YWRkX2ZsYWdzCiAgICAgIFNZTUZJTEVfTUFJTkxJTkUgPSAxIDw8IDIsCiAgCkBAIC0xMzAxLDEw ICsxMzAxLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxlLmgKICAg IH07CiAgCiAgZXh0ZXJuIHZvaWQgc3ltc19mcm9tX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICos Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5mY21kLmMKK0luZGV4OiBnZGItNi44 LjkxLjIwMDkwOTE3L2dkYi9pbmZjbWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAw OTA5MDkub3JpZy9nZGIvaW5mY21kLmMJMjAwOS0wOS0wOSAxOToyMDozMy4wMDAwMDAwMDAgKzAy MDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmZjbWQuYwkyMDA5LTA5LTA5IDE5OjI0 OjEzLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvaW5m Y21kLmMJMjAwOS0wOS0xNyAxMjo0OTowMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44Ljkx LjIwMDkwOTE3L2dkYi9pbmZjbWQuYwkyMDA5LTA5LTE3IDEyOjUwOjA3LjAwMDAwMDAwMCArMDIw MAogQEAgLTIzMDgsNiArMjMwOCw5IEBAIGF0dGFjaF9jb21tYW5kX3Bvc3Rfd2FpdCAoY2hhciAq YXJncywgaW4KICAKICAgIHBvc3RfY3JlYXRlX2luZmVyaW9yICgmY3VycmVudF90YXJnZXQsIGZy b21fdHR5KTsKQEAgLTEzMTUsMTAgKzEzMTUsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL2luZmNtZC5jCiAgICAvKiBJbnN0YWxsIGluZmVyaW9yJ3MgdGVybWluYWwgbW9kZXMu ICAqLwogICAgdGFyZ2V0X3Rlcm1pbmFsX2luZmVyaW9yICgpOwogIAotSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL2xpbnV4LXRkZXAuYworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcv Z2RiL2xpbnV4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3Jp Zy9nZGIvbGludXgtdGRlcC5jCTIwMDktMDgtMDQgMjI6NDE6MTMuMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvbGludXgtdGRlcC5jCTIwMDktMDktMDkgMTk6MjQ6 MTMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9saW51 eC10ZGVwLmMJMjAwOS0wOC0wNCAyMjo0MToxMy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44 LjkxLjIwMDkwOTE3L2dkYi9saW51eC10ZGVwLmMJMjAwOS0wOS0xNyAxMjo1MDowNy4wMDAwMDAw MDAgKzAyMDAKIEBAIC0xNjMsNSArMTYzLDcgQEAgaW4gdGhpcyBzZXNzaW9uLlxuIikpOwogIHZv aWQKICBfaW5pdGlhbGl6ZV9saW51eF90ZGVwICh2b2lkKQoKZGlmZiAtLWdpdCBhL2dkYi02Ljgt aW5saW5pbmctYWRkb24ucGF0Y2ggYi9nZGItNi44LWlubGluaW5nLWFkZG9uLnBhdGNoCmluZGV4 IGM4ZTYxNTkuLjRlZGNkMWEgMTAwNjQ0Ci0tLSBhL2dkYi02LjgtaW5saW5pbmctYWRkb24ucGF0 Y2gKKysrIGIvZ2RiLTYuOC1pbmxpbmluZy1hZGRvbi5wYXRjaApAQCAtNSwxMCArNSwxMCBAQCBj YXVzaW5nOiBGQUlMOiBnZGIuYmFzZS91bndpbmRvbnNpZ25hbC5leHA6IHVud2luZG9uc2lnbmFs LCBzdGFjayB1bndvdW5kCiByZXN1bWUoKSAtPiB0YXJnZXRfcmVzdW1lKCkgbW92ZSBvZiBjbGVh cl9pbmxpbmVfZnJhbWVfc3RhdGUoKSBpcyBmb3I6CiBnZGIubWkvbWktbnNtb3JpYnVuZC5leHAK IAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGlu ZS1idC5jCitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv aW5saW5lLWJ0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv aW5saW5lLWJ0LmMJMjAwOS0wOS0wOSAxOToyMDowMC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGIt Ni44LjkxLjIwMDkwOTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCTIw MDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkx Ny9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMJMjAwOS0wOS0xNyAxMjo0OTowMS4w MDAwMDAwMDAgKzAyMDAKIEBAIC0xMywxMCArMTMsMTYgQEAKICAgICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KQEAgLTI4LDEwICsyOCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5 MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMKICAKICBpbmxpbmUgaW50IGZ1 bmMxKHZvaWQpCiAgewotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9n ZGIub3B0L2lubGluZS1jbWRzLmMKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4y MDA5MDkwOS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5jCTIwMDktMDYt MjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv dGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAw MDAwMCArMDIwMAorLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvaW5saW5lLWNtZHMuYwkyMDA5LTA2LTI4IDAyOjIwOjI0LjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRz LmMJMjAwOS0wOS0xNyAxMjo0OTowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMywxMyArMTMsMTkg QEAKICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQogICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KQEAgLTU0LDEwICs1NCwxMCBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5l LWNtZHMuYwogIGlubGluZSBpbnQgZnVuYzEodm9pZCkKICB7CiAgICBiYXIgKCk7Ci1JbmRleDog Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuZXhw CitJbmRleDogZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5l LWNtZHMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi90 ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5leHAJMjAwOS0wNi0yOCAwMjoyMDoyNC4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9w dC9pbmxpbmUtY21kcy5leHAJMjAwOS0wOS0wOSAxOToyMDowMC4wMDAwMDAwMDAgKzAyMDAKKy0t LSBnZGItNi44LjkxLjIwMDkwOTE3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1j bWRzLmV4cAkyMDA5LTA2LTI4IDAyOjIwOjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02Ljgu OTEuMjAwOTA5MTcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA5LTA5 LTE3IDEyOjQ5OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTIzMCw3ICsyMzAsNyBAQCBzZXQgbGlu ZTMgW2dkYl9nZXRfbGluZV9udW1iZXIgInNldCBicmVhCiAgZ2RiX2JyZWFrcG9pbnQgJGxpbmUz CiAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNvbnNlY3V0aXZlIGZ1bmMxIgpAQCAtMTEw LDEwICsxMTAsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9n ZGIub3B0L2lubGluZS1jbWRzLmV4cAogK2dkYl90ZXN0ICJpbmZvIGZyYW1lIiAiaW5saW5lZCBp bnRvIGZyYW1lLioiICJvdXRlcl9pbmxpbmUyIGlubGluZWQiCiArZ2RiX3Rlc3QgImZpbmkiICIi ICJ1cCBmcm9tIG91dGVyX2lubGluZTIiCiArZ2RiX3Rlc3QgImluZm8gZnJhbWUiICIgaW4gbWFp biBcW15cblxdKlxuIHNvdXJjZSBsYW5ndWFnZS4qIiAibWFpbiBub3QgaW5saW5lZCIKLUluZGV4 OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxz LmMKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxp bmUtbG9jYWxzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1sb2NhbHMuYwkyMDA5LTA2LTI4IDAyOjIwOjI0LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIu b3B0L2lubGluZS1sb2NhbHMuYwkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAor LS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5l LWxvY2Fscy5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYu OC45MS4yMDA5MDkxNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCTIwMDkt MDktMTcgMTI6NDk6MDEuMDAwMDAwMDAwICswMjAwCiBAQCAtMTMsMTEgKzEzLDE2IEBACiAgICAg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKICAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCkBAIC0xMzMsMTAgKzEzMywxMCBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fs cy5jCiAgCiAgaW5saW5lIGludCBmdW5jMShpbnQgYXJnMSkKICB7Ci1JbmRleDogZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAKK0luZGV4 OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxz LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAJMjAwOS0wNi0zMCAxNzo1MDoyNy4wMDAwMDAw MDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9p bmxpbmUtbG9jYWxzLmV4cAkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAorLS0t IGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxv Y2Fscy5leHAJMjAwOS0wNi0zMCAxNzo1MDoyNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44 LjkxLjIwMDkwOTE3L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAkyMDA5 LTA5LTE3IDEyOjQ5OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTc3LDYgKzc3LDkgQEAgaWYgeyAh ICRub19mcmFtZXMgfSB7CiAgCiAgIyBNYWtlIHN1cmUgdGhhdCBsb2NhbHMgb24gdGhlIHN0YWNr IGFyZSBmb3VuZC4gIFRoaXMgaXMgYW4gYXJyYXkgdG8KQEAgLTE1NSwxMSArMTU1LDExIEBAIElu ZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9j YWxzLmV4cAogKyAgICBzZXR1cF9rZmFpbCAqLSotKiAiZ2NjL2RlYnVnLm9wdGltaXphdGlvbiIK ICt9CiAgZ2RiX3Rlc3QgInByaW50IGFycmF5XFswXF0iICJcXFwkJGRlY2ltYWwgPSAxODQiICJw cmludCBsb2NhbCAoMykiCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZnJhbWUuYwor SW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2ZyYW1lLmMJMjAwOS0wOS0wOSAxOTowNjo0Ni4w MDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9mcmFtZS5jCTIwMDkt MDktMDkgMTk6MjA6MDAuMDAwMDAwMDAwICswMjAwCi1AQCAtMjc2LDcgKzI3Niw3IEBAIGZwcmlu dF9mcmFtZSAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIHN0cnUKKy0tLSBnZGItNi44LjkxLjIwMDkw OTE3Lm9yaWcvZ2RiL2ZyYW1lLmMJMjAwOS0wOS0xNyAxMjo0ODo0OS4wMDAwMDAwMDAgKzAyMDAK KysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9mcmFtZS5jCTIwMDktMDktMTcgMTI6NDk6MDEu MDAwMDAwMDAwICswMjAwCitAQCAtMzEwLDcgKzMxMCw3IEBAIGZwcmludF9mcmFtZSAoc3RydWN0 IHVpX2ZpbGUgKmZpbGUsIHN0cnUKICBzdGF0aWMgc3RydWN0IGZyYW1lX2luZm8gKgogIHNraXBf aW5saW5lZF9mcmFtZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKICB7CkBAIC0xNjgsNyAr MTY4LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2ZyYW1lLmMKICAgICAgZnJh bWUgPSBnZXRfcHJldl9mcmFtZSAoZnJhbWUpOwogIAogICAgcmV0dXJuIGZyYW1lOwotQEAgLTE3 MTUsNiArMTcxNSw3IEBAIGdldF9mcmFtZV9hZGRyZXNzX2luX2Jsb2NrIChzdHJ1Y3QgZnJhbWUK K0BAIC0xNzc4LDYgKzE3NzgsNyBAQCBnZXRfZnJhbWVfYWRkcmVzc19pbl9ibG9jayAoc3RydWN0 IGZyYW1lCiAgewogICAgLyogQSBkcmFmdCBhZGRyZXNzLiAgKi8KICAgIENPUkVfQUREUiBwYyA9 IGdldF9mcmFtZV9wYyAodGhpc19mcmFtZSk7CkBAIC0xNzYsNyArMTc2LDcgQEAgSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA5MDkvZ2RiL2ZyYW1lLmMKICAKICAgIHN0cnVjdCBmcmFtZV9pbmZvICpu ZXh0X2ZyYW1lID0gdGhpc19mcmFtZS0+bmV4dDsKICAKLUBAIC0xNzU3LDYgKzE3NTgsOSBAQCBn ZXRfZnJhbWVfYWRkcmVzc19pbl9ibG9jayAoc3RydWN0IGZyYW1lCitAQCAtMTgyMCw2ICsxODIx LDkgQEAgZ2V0X2ZyYW1lX2FkZHJlc3NfaW5fYmxvY2sgKHN0cnVjdCBmcmFtZQogICAgICAgd2hp bGUgaW4gYW4gaW5saW5lZCBmdW5jdGlvbiwgdGhlbiB0aGUgY29kZSBhZGRyZXNzIG9mIHRoZQog ICAgICAgImNhbGxpbmciIG5vcm1hbCBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGFkanVzdGVkIGVp dGhlci4gICovCiAgCkBAIC0xODYsNyArMTg2LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL2ZyYW1lLmMKICAgIHdoaWxlIChnZXRfZnJhbWVfdHlwZSAobmV4dF9mcmFtZSkgPT0g SU5MSU5FX0ZSQU1FKQogICAgICBuZXh0X2ZyYW1lID0gbmV4dF9mcmFtZS0+bmV4dDsKICAKLUBA IC0xNzg4LDcgKzE3OTIsNyBAQCBmaW5kX2ZyYW1lX3NhbCAoc3RydWN0IGZyYW1lX2luZm8gKmZy YW1lCitAQCAtMTg1MSw3ICsxODU1LDcgQEAgZmluZF9mcmFtZV9zYWwgKHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZQogIAlzeW0gPSBpbmxpbmVfc2tpcHBlZF9zeW1ib2wgKGluZmVyaW9yX3B0aWQp OwogIAogICAgICAgIGluaXRfc2FsIChzYWwpOwpAQCAtMTk1LDE5ICsxOTUsMTkgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2ZyYW1lLmMKICAJewogIAkgIHNhbC0+c3ltdGFiID0g U1lNQk9MX1NZTVRBQiAoc3ltKTsKICAJICBzYWwtPmxpbmUgPSBTWU1CT0xfTElORSAoc3ltKTsK LUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGIt Ni44LjkxLjIwMDkwOTE3L2dkYi9icmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44 LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDA5LTA5LTA5IDE5OjE5OjQ2LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2JyZWFrcG9pbnQuYwky MDA5LTA5LTA5IDE5OjIxOjE0LjAwMDAwMDAwMCArMDIwMAotQEAgLTYxLDYgKzYxLDcgQEAKLSAj aW5jbHVkZSAidmFscHJpbnQuaCIKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3Lm9yaWcvZ2RiL2Jy ZWFrcG9pbnQuYwkyMDA5LTA5LTE3IDEyOjQ4OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02 LjguOTEuMjAwOTA5MTcvZ2RiL2JyZWFrcG9pbnQuYwkyMDA5LTA5LTE3IDEyOjQ5OjEyLjAwMDAw MDAwMCArMDIwMAorQEAgLTYyLDYgKzYyLDcgQEAKICAjaW5jbHVkZSAiaml0LmgiCisgI2luY2x1 ZGUgInhtbC1zeXNjYWxsLmgiCiAgI2luY2x1ZGUgInBhcnNlci1kZWZzLmgiCiArI2luY2x1ZGUg ImlubGluZS1mcmFtZS5oIgogIAogIC8qIHJlYWRsaW5lIGluY2x1ZGUgZmlsZXMgKi8KICAjaW5j bHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKLUBAIC0zMjE3LDEwICszMjE4LDI0IEBAIGJwc3Rh dF9jaGVja19icmVha3BvaW50X2NvbmRpdGlvbnMgKGJwc3QKK0BAIC0zMjIwLDEwICszMjIxLDI0 IEBAIGJwc3RhdF9jaGVja19icmVha3BvaW50X2NvbmRpdGlvbnMgKGJwc3QKICAgIGNvbnN0IHN0 cnVjdCBicF9sb2NhdGlvbiAqYmwgPSBicy0+YnJlYWtwb2ludF9hdDsKICAgIHN0cnVjdCBicmVh a3BvaW50ICpiID0gYmwtPm93bmVyOwogIApAQCAtMjM2LDcgKzIzNiw3IEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9icmVha3BvaW50LmMKICAgICAgewogICAgICAgIGludCB2YWx1 ZV9pc196ZXJvID0gMDsKICAgICAgICAKLUBAIC0zMzgwLDYgKzMzOTUsMTIgQEAgYnBzdGF0X3N0 b3Bfc3RhdHVzIChDT1JFX0FERFIgYnBfYWRkciwgcAorQEAgLTMzODMsNiArMzM5OCwxMiBAQCBi cHN0YXRfc3RvcF9zdGF0dXMgKENPUkVfQUREUiBicF9hZGRyLCBwCiAgCSAgICBicy0+cHJpbnQg PSAwOwogIAkgIH0KICAJYnMtPmNvbW1hbmRzID0gY29weV9jb21tYW5kX2xpbmVzIChicy0+Y29t bWFuZHMpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi9icmVha3BvaW50LmMKICAgICAgICB9CiAgCiAgICAgIC8qIFByaW50IG5vdGhpbmcgZm9yIHRo aXMgZW50cnkgaWYgd2UgZG9udCBzdG9wIG9yIGlmIHdlIGRvbnQgcHJpbnQuICAqLwotQEAgLTUy NzgsOSArNTI5OSw5IEBAIHNldF9tb21lbnRhcnlfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2gK K0BAIC01NTcyLDkgKzU1OTMsOSBAQCBzZXRfbW9tZW50YXJ5X2JyZWFrcG9pbnQgKHN0cnVjdCBn ZGJhcmNoCiAgewogICAgc3RydWN0IGJyZWFrcG9pbnQgKmI7CiAgCkBAIC0yNjIsMTEgKzI2Miwx MSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYnJlYWtwb2ludC5jCiAgCiAgICBi ID0gc2V0X3Jhd19icmVha3BvaW50IChnZGJhcmNoLCBzYWwsIHR5cGUpOwogICAgYi0+ZW5hYmxl X3N0YXRlID0gYnBfZW5hYmxlZDsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmxp bmUtZnJhbWUuYworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2lubGluZS1mcmFtZS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9pbmxpbmUtZnJh bWUuYwkyMDA5LTA2LTI4IDAyOjIwOjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAu MjAwOTA5MDkvZ2RiL2lubGluZS1mcmFtZS5jCTIwMDktMDktMDkgMTk6MjA6MDAuMDAwMDAwMDAw ICswMjAwCi1AQCAtMTk1LDYgKzE5NSwxMiBAQCBpbmxpbmVfZnJhbWVfc25pZmZlciAoY29uc3Qg c3RydWN0IGZyYW1lCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi9pbmxpbmUtZnJh bWUuYwkyMDA5LTA5LTEzIDE4OjI4OjI4LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEu MjAwOTA5MTcvZ2RiL2lubGluZS1mcmFtZS5jCTIwMDktMDktMTcgMTI6NDk6MDEuMDAwMDAwMDAw ICswMjAwCitAQCAtMTk5LDYgKzE5OSwxMiBAQCBpbmxpbmVfZnJhbWVfc25pZmZlciAoY29uc3Qg c3RydWN0IGZyYW1lCiAgICBpZiAoZnJhbWVfYmxvY2sgPT0gTlVMTCkKICAgICAgcmV0dXJuIDA7 CiAgCkBAIC0yNzksNyArMjc5LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2lu bGluZS1mcmFtZS5jCiAgICAvKiBDYWxjdWxhdGUgREVQVEgsIHRoZSBudW1iZXIgb2YgaW5saW5l ZCBmdW5jdGlvbnMgYXQgdGhpcwogICAgICAgbG9jYXRpb24uICAqLwogICAgZGVwdGggPSAwOwot QEAgLTIwNCw2ICsyMTAsMTAgQEAgaW5saW5lX2ZyYW1lX3NuaWZmZXIgKGNvbnN0IHN0cnVjdCBm cmFtZQorQEAgLTIwOCw2ICsyMTQsMTAgQEAgaW5saW5lX2ZyYW1lX3NuaWZmZXIgKGNvbnN0IHN0 cnVjdCBmcmFtZQogICAgICAgIGlmIChibG9ja19pbmxpbmVkX3AgKGN1cl9ibG9jaykpCiAgCWRl cHRoKys7CiAgCkBAIC0yOTAsNyArMjkwLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL2lubGluZS1mcmFtZS5jCiAgICAgICAgY3VyX2Jsb2NrID0gQkxPQ0tfU1VQRVJCTE9DSyAo Y3VyX2Jsb2NrKTsKICAgICAgfQogIAotQEAgLTI4Nyw3ICsyOTcsNiBAQCBza2lwX2lubGluZV9m cmFtZXMgKHB0aWRfdCBwdGlkKQorQEAgLTI5MSw3ICszMDEsNiBAQCBza2lwX2lubGluZV9mcmFt ZXMgKHB0aWRfdCBwdGlkKQogIHsKICAgIENPUkVfQUREUiB0aGlzX3BjOwogICAgc3RydWN0IGJs b2NrICpmcmFtZV9ibG9jaywgKmN1cl9ibG9jazsKQEAgLTI5OCw3ICsyOTgsNyBAQCBJbmRleDog Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5saW5lLWZyYW1lLmMKICAgIGludCBza2lwX2NvdW50 ID0gMDsKICAgIHN0cnVjdCBpbmxpbmVfc3RhdGUgKnN0YXRlOwogIAotQEAgLTMwOCwxMCArMzE3 LDcgQEAgc2tpcF9pbmxpbmVfZnJhbWVzIChwdGlkX3QgcHRpZCkKK0BAIC0zMTIsMTAgKzMyMSw3 IEBAIHNraXBfaW5saW5lX2ZyYW1lcyAocHRpZF90IHB0aWQpCiAgCQkgb2YgQkxPQ0tfU1RBUlQu ICAqLwogIAkgICAgICBpZiAoQkxPQ0tfU1RBUlQgKGN1cl9ibG9jaykgPT0gdGhpc19wYwogIAkJ ICB8fCBibG9ja19zdGFydGluZ19wb2ludF9hdCAodGhpc19wYywgY3VyX2Jsb2NrKSkKQEAgLTMx MCw3ICszMTAsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5saW5lLWZyYW1l LmMKICAJICAgICAgZWxzZQogIAkJYnJlYWs7CiAgCSAgICB9Ci1AQCAtMzIzLDcgKzMyOSw2IEBA IHNraXBfaW5saW5lX2ZyYW1lcyAocHRpZF90IHB0aWQpCitAQCAtMzI3LDcgKzMzMyw2IEBAIHNr aXBfaW5saW5lX2ZyYW1lcyAocHRpZF90IHB0aWQpCiAgICBzdGF0ZSA9IGFsbG9jYXRlX2lubGlu ZV9mcmFtZV9zdGF0ZSAocHRpZCk7CiAgICBzdGF0ZS0+c2tpcHBlZF9mcmFtZXMgPSBza2lwX2Nv dW50OwogICAgc3RhdGUtPnNhdmVkX3BjID0gdGhpc19wYzsKQEAgLTMxOCw3ICszMTgsNyBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5saW5lLWZyYW1lLmMKICAKICAgIGlmIChz a2lwX2NvdW50ICE9IDApCiAgICAgIHJlaW5pdF9mcmFtZV9jYWNoZSAoKTsKLUBAIC0zNDEsNiAr MzQ2LDIzIEBAIHN0ZXBfaW50b19pbmxpbmVfZnJhbWUgKHB0aWRfdCBwdGlkKQorQEAgLTM0NSw2 ICszNTAsMjMgQEAgc3RlcF9pbnRvX2lubGluZV9mcmFtZSAocHRpZF90IHB0aWQpCiAgICByZWlu aXRfZnJhbWVfY2FjaGUgKCk7CiAgfQogIApAQCAtMzQyLDEwICszNDIsMTAgQEAgSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA5MDkvZ2RiL2lubGluZS1mcmFtZS5jCiAgLyogUmV0dXJuIHRoZSBudW1i ZXIgb2YgaGlkZGVuIGZ1bmN0aW9ucyBpbmxpbmVkIGludG8gdGhlIGN1cnJlbnQKICAgICBmcmFt ZS4gICovCiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5v cHQvaW5saW5lLW1hcmtlcnMuYworSW5kZXg6IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2lubGluZS1tYXJrZXJzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUw LjIwMDkwOTA5Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1tYXJrZXJzLmMJMjAw OS0wNi0yOCAwMjoyMDoyNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbWFya2Vycy5jCTIwMDktMDktMDkgMTk6MjA6 MDAuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbWFya2Vycy5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv aW5saW5lLW1hcmtlcnMuYwkyMDA5LTA5LTE3IDEyOjQ5OjAxLjAwMDAwMDAwMCArMDIwMAogQEAg LTE1LDExICsxNSw2IEBACiAgCiAgZXh0ZXJuIGludCB4LCB5OwpAQCAtMzU4LDEwICszNTgsMTAg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGlu ZS1tYXJrZXJzLmMKICB2b2lkIG1hcmtlcih2b2lkKQogIHsKICAgIHggKz0geTsgLyogc2V0IGJy ZWFrcG9pbnQgMiBoZXJlICovCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZ2RidGhy ZWFkLmgKK0luZGV4OiBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9nZGJ0aHJlYWQuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZ2RidGhyZWFkLmgJMjAwOS0w OS0wOSAxOTowNTo1Ni4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi9nZGJ0aHJlYWQuaAkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdk Yi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvZ2RidGhyZWFkLmgJMjAwOS0wOS0xNyAxMjo0Nzow Ny4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjkxLjIwMDkwOTE3L2dkYi9nZGJ0aHJlYWQu aAkyMDA5LTA5LTE3IDEyOjQ5OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTE5MSw2ICsxOTEsMTIg QEAgc3RydWN0IHRocmVhZF9pbmZvCiAgCiAgICAvKiBQcml2YXRlIGRhdGEgdXNlZCBieSB0aGUg dGFyZ2V0IHZlY3RvciBpbXBsZW1lbnRhdGlvbi4gICovCkBAIC0zNzUsMTAgKzM3NSwxMCBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZ2RidGhyZWFkLmgKICB9OwogIAogIC8qIENy ZWF0ZSBhbiBlbXB0eSB0aHJlYWQgbGlzdCwgb3IgZW1wdHkgdGhlIGV4aXN0aW5nIG9uZS4gICov Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5mY21kLmMKK0luZGV4OiBnZGItNi44 LjkxLjIwMDkwOTE3L2dkYi9pbmZjbWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAw OTA5MDkub3JpZy9nZGIvaW5mY21kLmMJMjAwOS0wOS0wOSAxOTowNTo1Ni4wMDAwMDAwMDAgKzAy MDAKLSsrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmZjbWQuYwkyMDA5LTA5LTA5IDE5OjIw OjMzLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguOTEuMjAwOTA5MTcub3JpZy9nZGIvaW5m Y21kLmMJMjAwOS0wOS0xNyAxMjo0NzowNy4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44Ljkx LjIwMDkwOTE3L2dkYi9pbmZjbWQuYwkyMDA5LTA5LTE3IDEyOjQ5OjAxLjAwMDAwMDAwMCArMDIw MAogQEAgLTE0MzQsMTEgKzE0MzQsMTEgQEAgZmluaXNoX2NvbW1hbmRfY29udGludWF0aW9uICh2 b2lkICphcmcpCiAgICAgICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGU7CiAgCkBAIC01MTgsMTEg KzUxOCwxMSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5mY21kLmMKICB9CiAg DAogIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3RhcmdldC5jCitJbmRleDogZ2Ri LTYuOC45MS4yMDA5MDkxNy9nZGIvdGFyZ2V0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUw LjIwMDkwOTA5Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMDktMDktMDkgMTk6MDk6MzEuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmMJMjAwOS0wOS0wOSAx OToyMTowMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yMTgyLDYgKzIxODIsNyBAQCB0YXJnZXRfcmVz dW1lIChwdGlkX3QgcHRpZCwgaW50IHN0ZXAsIGVuCistLS0gZ2RiLTYuOC45MS4yMDA5MDkxNy5v cmlnL2dkYi90YXJnZXQuYwkyMDA5LTA5LTE3IDEyOjQ4OjQ5LjAwMDAwMDAwMCArMDIwMAorKysr IGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL3RhcmdldC5jCTIwMDktMDktMTcgMTI6NDk6MDEuMDAw MDAwMDAwICswMjAwCitAQCAtMjE4Nyw2ICsyMTg3LDcgQEAgdGFyZ2V0X3Jlc3VtZSAocHRpZF90 IHB0aWQsIGludCBzdGVwLCBlbgogIHsKICAgIHN0cnVjdCB0YXJnZXRfb3BzICp0OwogIApAQCAt NTMwLDEwICs1MzAsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3RhcmdldC5j CiAgICB0YXJnZXRfZGNhY2hlX2ludmFsaWRhdGUgKCk7CiAgCiAgICBmb3IgKHQgPSBjdXJyZW50 X3RhcmdldC5iZW5lYXRoOyB0ICE9IE5VTEw7IHQgPSB0LT5iZW5lYXRoKQotSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA5MDkvZ2RiL2lubGluZS1mcmFtZS5oCitJbmRleDogZ2RiLTYuOC45MS4yMDA5 MDkxNy9nZGIvaW5saW5lLWZyYW1lLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkw OTA5Lm9yaWcvZ2RiL2lubGluZS1mcmFtZS5oCTIwMDktMDYtMjggMDI6MjA6MjIuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5saW5lLWZyYW1lLmgJMjAwOS0w OS0wOSAxOToyMDowMC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjkxLjIwMDkwOTE3Lm9y aWcvZ2RiL2lubGluZS1mcmFtZS5oCTIwMDktMDYtMjggMDI6MjA6MjIuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTYuOC45MS4yMDA5MDkxNy9nZGIvaW5saW5lLWZyYW1lLmgJMjAwOS0wOS0xNyAx Mjo0OTowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC00Myw2ICs0MywxMCBAQCB2b2lkIGNsZWFyX2lu bGluZV9mcmFtZV9zdGF0ZSAocHRpZF90IHB0CiAgCiAgdm9pZCBzdGVwX2ludG9faW5saW5lX2Zy YW1lIChwdGlkX3QgcHRpZCk7CkBAIC01NDUsMTEgKzU0NSwxMSBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvaW5saW5lLWZyYW1lLmgKICAvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBo aWRkZW4gZnVuY3Rpb25zIGlubGluZWQgaW50byB0aGUgY3VycmVudAogICAgIGZyYW1lLiAgKi8K ICAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBn ZGItNi44LjkxLjIwMDkwOTE3L2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDA5LTA5LTA5IDE5OjE5OjQ2 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2R3YXJmMnJlYWQu YwkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAotQEAgLTQxMzAsNiArNDEzMCw3 IEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKKy0tLSBnZGItNi44 LjkxLjIwMDkwOTE3Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDA5LTA5LTE3IDEyOjQ4OjUxLjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguOTEuMjAwOTA5MTcvZ2RiL2R3YXJmMnJlYWQuYwky MDA5LTA5LTE3IDEyOjQ5OjAxLjAwMDAwMDAwMCArMDIwMAorQEAgLTQxMjgsNiArNDEyOCw3IEBA IHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKICAgIHN0cnVjdCBibG9j ayAqYmxvY2s7CiAgICB1bnNpZ25lZCBkaWVfY2hpbGRyZW4gPSAwOwogICAgaW50IGlubGluZWRf ZnVuYyA9IChkaWUtPnRhZyA9PSBEV19UQUdfaW5saW5lZF9zdWJyb3V0aW5lKTsKQEAgLTU1Nyw3 ICs1NTcsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZHdhcmYycmVhZC5jCiAg CiAgICBpZiAoaW5saW5lZF9mdW5jKQogICAgICB7Ci1AQCAtNDE3MSw3ICs0MTcyLDEwIEBAIHJl YWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKK0BAIC00MTY5LDcgKzQxNzAs MTAgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcwogICAgYWRkX3Rv X2N1X2Z1bmNfbGlzdCAobmFtZSwgbG93cGMsIGhpZ2hwYywgY3UpOwogIAogICAgbmV3ID0gcHVz aF9jb250ZXh0ICgwLCBsb3dwYyk7CgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dk Yi1hcmNoZXIucGF0Y2gKaW5kZXggMzFlMmQ0Yi4uMDRjMzNhMSAxMDA2NDQKLS0tIGEvZ2RiLWFy Y2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBodHRwOi8v c291cmNld2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3NvdXJjZXdhcmUu b3JnL2dkYi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBzaG90OgotY29t bWl0IDk0MWViNDg3YTQyOTMzZTQ0MmNiNGQxMTM0NGNkYTk2ZWNiOGEwNGQKK2NvbW1pdCAxNmYz ZjAxY2MyY2JjMTUyODM0NjJlYWFiZGZjZGU5MmNmNDJjZGM2CiAKIGJyYW5jaCBgYXJjaGVyJyAt IHRoZSBtZXJnZSBvZiBicmFuY2hlczoKIGFyY2hlci10cm9tZXktY2FsbC1mcmFtZS1jZmEKQEAg LTE5LDE2ICsxOSwxMyBAQCBhcmNoZXItcG11bGRvb24tbmV4dC1vdmVyLXRocm93CiAKIAogZGlm ZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgotaW5kZXggN2YyZmU1 OC4uYWMzYTRhMCAxMDA2NDQKK2luZGV4IGY1ZTFkZGUuLjczZWU1NWMgMTAwNjQ0CiAtLS0gYS9n ZGIvTWFrZWZpbGUuaW4KICsrKyBiL2dkYi9NYWtlZmlsZS5pbgotQEAgLTE2Niw2ICsxNjYsMTMg QEAgSU5UTF9DRkxBR1MgPSBASU5DSU5UTEAKLSBUQVJHRVRfU1lTVEVNX1JPT1QgPSBAVEFSR0VU X1NZU1RFTV9ST09UQAotIFRBUkdFVF9TWVNURU1fUk9PVF9ERUZJTkUgPSBAVEFSR0VUX1NZU1RF TV9ST09UX0RFRklORUAKK0BAIC0xNjksNiArMTY5LDEwIEBAIFRBUkdFVF9TWVNURU1fUk9PVF9E RUZJTkUgPSBAVEFSR0VUX1NZU1RFTV9ST09UX0RFRklORUAKKyAjIERpZCB0aGUgdXNlciBnaXZl IHVzIGEgLS13aXRoLWdkYi1kYXRhZGlyIG9wdGlvbj8KKyBHREJfREFUQURJUl9QQVRIID0gQEdE Ql9EQVRBRElSX1BBVEhACiAgCi0rIyBEaWQgdGhlIHVzZXIgZ2l2ZSB1cyBhIC0td2l0aC1nZGIt ZGF0YWRpciBvcHRpb24/Ci0rR0RCX0RBVEFESVJfUEFUSCA9IEBHREJfREFUQURJUl9QQVRIQAot KwogKyMgVGhlIGFyZ3VtZW50IHRvIC0td2l0aC1weXRob25kaXIuICBJZiBub3QgZ2l2ZW4sIHRo aXMgaXMKICsjIEdEQl9EQVRBRElSX1BBVEgvcHl0aG9uLgogK3B5dGhvbmRpciA9IEBweXRob25k aXJACkBAIC0zNiw3ICszMyw3IEBAIGluZGV4IDdmMmZlNTguLmFjM2E0YTAgMTAwNjQ0CiAgIyBI ZWxwZXIgY29kZSBmcm9tIGdudWxpYi4KICBMSUJHTlUgPSBnbnVsaWIvbGliZ251LmEKICBJTkNH TlUgPSAtSSQoc3JjZGlyKS9nbnVsaWIgLUlnbnVsaWIKLUBAIC0yNjQsMjEgKzI3MSwzNyBAQCBT VUJESVJfVFVJX0NGTEFHUz0gXAorQEAgLTI2NywyMSArMjcxLDM3IEBAIFNVQkRJUl9UVUlfQ0ZM QUdTPSBcCiAgIwogIFNVQkRJUl9QWVRIT05fT0JTID0gXAogIAlweXRob24ubyBcCkBAIC03NCwy NSArNzEsMjUgQEAgaW5kZXggN2YyZmU1OC4uYWMzYTRhMCAxMDA2NDQKICAJcHl0aG9uL3B5LXR5 cGUuYyBcCiAgCXB5dGhvbi9weS11dGlscy5jIFwKICAJcHl0aG9uL3B5LXZhbHVlLmMKLUBAIC03 NDYsNyArNzY5LDcgQEAgY29uZmlnL3JzNjAwMC9ubS1yczYwMDAuaCB0b3AuaCBic2Qta3ZtLmgg Z2RiLXN0YWJzLmggcmVnZ3JvdXBzLmggXAorQEAgLTc1MCw3ICs3NzAsNyBAQCBjb25maWcvcnM2 MDAwL25tLXJzNjAwMC5oIHRvcC5oIGJzZC1rdm0uaCBnZGItc3RhYnMuaCByZWdncm91cHMuaCBc CiAgYW5ub3RhdGUuaCBzaW0tcmVnbm8uaCBkaWN0aW9uYXJ5LmggZGZwLmggbWFpbi5oIGZyYW1l LXVud2luZC5oCVwKICByZW1vdGUtZmlsZWlvLmggaTM4Ni1saW51eC10ZGVwLmggdmF4LXRkZXAu aCBvYmpjLWxhbmcuaCBcCiAgc2VudGluZWwtZnJhbWUuaCBiY2FjaGUuaCBzeW1maWxlLmggd2lu ZG93cy10ZGVwLmggbGludXgtdGRlcC5oIFwKLS1nZGJfdXNsZWVwLmggaml0LmgKLStnZGJfdXNs ZWVwLmggaml0LmggcHl0aG9uL3B5dGhvbi5oIHB5dGhvbi9weXRob24taW50ZXJuYWwuaAorLWdk Yl91c2xlZXAuaCBqaXQuaCB4bWwtc3lzY2FsbC5oIGFkYS1vcGVyYXRvci5pbmMKKytnZGJfdXNs ZWVwLmggaml0LmggeG1sLXN5c2NhbGwuaCBhZGEtb3BlcmF0b3IuaW5jIHB5dGhvbi9weXRob24u aCBweXRob24vcHl0aG9uLWludGVybmFsLmgKICAKICAjIEhlYWRlciBmaWxlcyB0aGF0IGFscmVh ZHkgaGF2ZSBzcmNkaXIgaW4gdGhlbSwgb3Igd2hpY2ggYXJlIGluIG9iamRpci4KICAKLUBAIC04 NjQsNyArODg3LDcgQEAgZ2VuZXJhdGVkX2ZpbGVzID0gY29uZmlnLmggb2JzZXJ2ZXIuaCBvYnNl cnZlci5pbmMgYWRhLWxleC5jIFwKK0BAIC04NzQsNyArODk0LDcgQEAgZ2VuZXJhdGVkX2ZpbGVz ID0gY29uZmlnLmggb2JzZXJ2ZXIuaCBvYnNlcnZlci5pbmMgYWRhLWxleC5jIFwKICAJJChDT01Q SUxFKSAkPAogIAkkKFBPU1RDT01QSUxFKQogIAotLWFsbDogZ2RiJChFWEVFWFQpICQoQ09ORklH X0FMTCkKLSthbGw6IGdkYiQoRVhFRVhUKSAkKENPTkZJR19BTEwpIC5nZGJpbml0CistYWxsOiBn ZGIkKEVYRUVYVCkgJChDT05GSUdfQUxMKSB4bWwtc3lzY2FsbC1jb3B5CisrYWxsOiBnZGIkKEVY RUVYVCkgJChDT05GSUdfQUxMKSB4bWwtc3lzY2FsbC1jb3B5IC5nZGJpbml0CiAgCUAkKE1BS0Up ICQoRkxBR1NfVE9fUEFTUykgRE89YWxsICJET0RJUlM9YGVjaG8gJChTVUJESVJTKSB8IHNlZCAn cy90ZXN0c3VpdGUvLydgIiBzdWJkaXJfZG8KICAuUEhPTlk6IGFsbC10dWkKICBhbGwtdHVpOiAk KFRVSSkkKEVYRUVYVCkKLUBAIC0xMjIxLDYgKzEyNDQsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIp L2NvbmZpZy5pbiBjb25maWcuc3RhdHVzCitAQCAtMTI2NCw2ICsxMjg0LDEyIEBAIHN0YW1wLWg6 ICQoc3JjZGlyKS9jb25maWcuaW4gY29uZmlnLnN0YXR1cwogIAkgIENPTkZJR19MSU5LUz0gXAog IAkgICQoU0hFTEwpIGNvbmZpZy5zdGF0dXMKICAKQEAgLTEwNSw3ICsxMDIsNyBAQCBpbmRleCA3 ZjJmZTU4Li5hYzNhNGEwIDEwMDY0NAogIGNvbmZpZy5zdGF0dXM6ICQoc3JjZGlyKS9jb25maWd1 cmUgY29uZmlndXJlLnRndCBjb25maWd1cmUuaG9zdAogIAkkKFNIRUxMKSBjb25maWcuc3RhdHVz IC0tcmVjaGVjawogIAotQEAgLTE5MjAsNiArMTk0OSwxNCBAQCBweXRob24ubzogJChzcmNkaXIp L3B5dGhvbi9weXRob24uYworQEAgLTE5NjMsNiArMTk4OSwxNCBAQCBweXRob24ubzogJChzcmNk aXIpL3B5dGhvbi9weXRob24uYwogIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNk aXIpL3B5dGhvbi9weXRob24uYwogIAkkKFBPU1RDT01QSUxFKQogIApAQCAtMTIwLDcgKzExNyw3 IEBAIGluZGV4IDdmMmZlNTguLmFjM2E0YTAgMTAwNjQ0CiAgcHktY21kLm86ICQoc3JjZGlyKS9w eXRob24vcHktY21kLmMKICAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9w eXRob24vcHktY21kLmMKICAJJChQT1NUQ09NUElMRSkKLUBAIC0xOTMyLDE0ICsxOTY5LDM4IEBA IHB5LWZ1bmN0aW9uLm86ICQoc3JjZGlyKS9weXRob24vcHktZnVuY3Rpb24uYworQEAgLTE5NzUs MTQgKzIwMDksMzggQEAgcHktZnVuY3Rpb24ubzogJChzcmNkaXIpL3B5dGhvbi9weS1mdW5jdGlv bi5jCiAgCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5LWZ1 bmN0aW9uLmMKICAJJChQT1NUQ09NUElMRSkKICAKQEAgLTE1OSw3ICsxNTYsNyBAQCBpbmRleCA3 ZjJmZTU4Li5hYzNhNGEwIDEwMDY0NAogIHB5LXR5cGUubzogJChzcmNkaXIpL3B5dGhvbi9weS10 eXBlLmMKICAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHkt dHlwZS5jCiAgCSQoUE9TVENPTVBJTEUpCi1AQCAtMTk1Miw2ICsyMDEzLDM2IEBAIHB5LXZhbHVl Lm86ICQoc3JjZGlyKS9weXRob24vcHktdmFsdWUuYworQEAgLTE5OTUsNiArMjA1MywzNiBAQCBw eS12YWx1ZS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5LXZhbHVlLmMKICAJJChDT01QSUxFKSAkKFBZ VEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktdmFsdWUuYwogIAkkKFBPU1RDT01QSUxF KQogIApAQCAtMTk3LDEwICsxOTQsMTAgQEAgaW5kZXggN2YyZmU1OC4uYWMzYTRhMCAxMDA2NDQK ICAjIERlcGVuZGVuY3kgdHJhY2tpbmcuICBNb3N0IG9mIHRoaXMgaXMgY29uZGl0aW9uYWwgb24g R05VIE1ha2UgYmVpbmcKICAjIGZvdW5kIGJ5IGNvbmZpZ3VyZTsgaWYgR05VIE1ha2UgaXMgbm90 IGZvdW5kLCB3ZSBmYWxsIGJhY2sgdG8gYQogZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05F V1MKLWluZGV4IDE0ZGE2YzguLjE5NzlmNDIgMTAwNjQ0CitpbmRleCA0ZmM2ZGNkLi42NzQ0YjIz IDEwMDY0NAogLS0tIGEvZ2RiL05FV1MKICsrKyBiL2dkYi9ORVdTCi1AQCAtNDQ0LDYgKzQ0NCwx MyBAQCB4ODYveDg2XzY0IERhcndpbgkJaVszNDU2N104Ni0qLWRhcndpbioKK0BAIC00NjIsNiAr NDYyLDEzIEBAIHg4Ni94ODZfNjQgRGFyd2luCQlpWzM0NTY3XTg2LSotZGFyd2luKgogIAogIHg4 Nl82NCBNaW5HVwkJCXg4Nl82NC0qLW1pbmd3KgogIApAQCAtNDY2LDE4ICs0NjMsMTggQEAgaW5k ZXggNTNlNzM3MS4uZDM3M2Y4YSAxMDA2NDQKICsKICAjZW5kaWYgLyogQkxPQ0tfSCAqLwogZGlm ZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5jCi1pbmRleCA5ZjUw ODcyLi5hNDI1NWQ3IDEwMDY0NAoraW5kZXggODExY2RmYi4uYjBiZjMxNCAxMDA2NDQKIC0tLSBh L2dkYi9icmVha3BvaW50LmMKICsrKyBiL2dkYi9icmVha3BvaW50LmMKLUBAIC02MCw2ICs2MCw3 IEBACi0gI2luY2x1ZGUgIndyYXBwZXIuaCIKK0BAIC02MSw2ICs2MSw3IEBACiAgI2luY2x1ZGUg InZhbHByaW50LmgiCiAgI2luY2x1ZGUgImppdC5oIgorICNpbmNsdWRlICJ4bWwtc3lzY2FsbC5o IgogKyNpbmNsdWRlICJwYXJzZXItZGVmcy5oIgogIAogIC8qIHJlYWRsaW5lIGluY2x1ZGUgZmls ZXMgKi8KICAjaW5jbHVkZSAicmVhZGxpbmUvcmVhZGxpbmUuaCIKLUBAIC0xMTEsOCArMTEyLDYg QEAgc3RydWN0IGJyZWFrcG9pbnQgKnNldF9yYXdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2gg KmdkYmFyY2gsCitAQCAtMTEyLDggKzExMyw2IEBAIHN0cnVjdCBicmVha3BvaW50ICpzZXRfcmF3 X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCQkJICAgICAgc3RydWN0 IHN5bXRhYl9hbmRfbGluZSwKICAJCQkJCSAgICAgIGVudW0gYnB0eXBlKTsKICAKQEAgLTQ4Niw3 ICs0ODMsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogIHN0YXRpYyB2b2lkIGJy ZWFrcG9pbnRfYWRqdXN0bWVudF93YXJuaW5nIChDT1JFX0FERFIsIENPUkVfQUREUiwgaW50LCBp bnQpOwogIAogIHN0YXRpYyBDT1JFX0FERFIgYWRqdXN0X2JyZWFrcG9pbnRfYWRkcmVzcyAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsCi1AQCAtMzM0LDE0ICszMzMsMTQgQEAgc3RhdGljIGludCBl eGVjdXRpbmdfc3RhcnR1cDsKK0BAIC0zMzcsMTQgKzMzNiwxNCBAQCBzdGF0aWMgaW50IGV4ZWN1 dGluZ19zdGFydHVwOwogIAkgICAgIEIgPyAoVE1QPUItPm5leHQsIDEpOiAwOwlcCiAgCSAgICAg QiA9IFRNUCkKICAKQEAgLTUwOCw3ICs1MDUsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEw MDY0NAogIAogIC8qIEl0ZXJhdG9yIGZvciB0cmFjZXBvaW50cyBvbmx5LiAgKi8KICAKLUBAIC0z NTMsMTAgKzM1MiwzMSBAQCBzdGF0aWMgaW50IGV4ZWN1dGluZ19zdGFydHVwOworQEAgLTM1Niwx MCArMzU1LDMxIEBAIHN0YXRpYyBpbnQgZXhlY3V0aW5nX3N0YXJ0dXA7CiAgCiAgc3RydWN0IGJy ZWFrcG9pbnQgKmJyZWFrcG9pbnRfY2hhaW47CiAgCkBAIC01NDIsNyArNTM5LDcgQEAgaW5kZXgg OWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgICBtYXkgc3RpbGwgYmUgcmVwb3J0ZWQgYnkgYSB0 YXJnZXQuICAqLwogIFZFQyhicF9sb2NhdGlvbl9wKSAqbW9yaWJ1bmRfbG9jYXRpb25zID0gTlVM TDsKICAKLUBAIC01NzksNiArNTk5LDUzIEBAIGdldF9icmVha3BvaW50IChpbnQgbnVtKQorQEAg LTU4Miw2ICs2MDIsNTMgQEAgZ2V0X2JyZWFrcG9pbnQgKGludCBudW0pCiAgfQogIAogIAwKQEAg LTU5Niw3ICs1OTMsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogIC8qIGNvbmRp dGlvbiBOIEVYUCAtLSBzZXQgYnJlYWsgY29uZGl0aW9uIG9mIGJyZWFrcG9pbnQgTiB0byBFWFAu ICAqLwogIAogIHN0YXRpYyB2b2lkCi1AQCAtNTk5LDQyICs2NjYsNyBAQCBjb25kaXRpb25fY29t bWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCitAQCAtNjAyLDQyICs2NjksNyBAQCBjb25k aXRpb25fY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCiAgICBBTExfQlJFQUtQT0lO VFMgKGIpCiAgICAgIGlmIChiLT5udW1iZXIgPT0gYm51bSkKICAgICAgICB7CkBAIC02NDAsNyAr NjM3LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAJcmV0dXJuOwogICAgICAg IH0KICAKLUBAIC03MzIsMzUgKzc2NCw4OCBAQCBjb21tYW5kc19mcm9tX2NvbnRyb2xfY29tbWFu ZCAoY2hhciAqYXJnLCBzdHJ1Y3QgY29tbWFuZF9saW5lICpjbWQpCitAQCAtNzM1LDM1ICs3Njcs ODggQEAgY29tbWFuZHNfZnJvbV9jb250cm9sX2NvbW1hbmQgKGNoYXIgKmFyZywgc3RydWN0IGNv bW1hbmRfbGluZSAqY21kKQogICAgICAgIH0KICAgIGVycm9yIChfKCJObyBicmVha3BvaW50IG51 bWJlciAlZC4iKSwgYm51bSk7CiAgfQpAQCAtNzQyLDcgKzczOSw3IEBAIGluZGV4IDlmNTA4NzIu LmE0MjU1ZDcgMTAwNjQ0CiAgCiAgICAgIGlmIChicF9hZGRyICsgYnBfc2l6ZSA8PSBtZW1hZGRy KQogICAgICAgIC8qIFRoZSBicmVha3BvaW50IGlzIGVudGlyZWx5IGJlZm9yZSB0aGUgY2h1bmsg b2YgbWVtb3J5IHdlCi1AQCAtOTA5LDcgKzk5NCw3IEBAIHVwZGF0ZV93YXRjaHBvaW50IChzdHJ1 Y3QgYnJlYWtwb2ludCAqYiwgaW50IHJlcGFyc2UpCitAQCAtOTEyLDcgKzk5Nyw3IEBAIHVwZGF0 ZV93YXRjaHBvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwgaW50IHJlcGFyc2UpCiAgICBzdHJ1 Y3QgYnBfbG9jYXRpb24gKmxvYzsKICAgIGJwc3RhdCBiczsKICAKQEAgLTc1MSw3ICs3NDgsNyBA QCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgICAgdXBkYXRlX2dsb2JhbF9sb2Nh dGlvbnMgd2lsbCBldmVudHVhbGx5IGRlbGV0ZSB0aGVtIGFuZCByZW1vdmUKICAgICAgIGJyZWFr cG9pbnRzIGlmIG5lZWRlZC4gICovCiAgICBiLT5sb2MgPSBOVUxMOwotQEAgLTEzNDQsNyArMTQy OSw3IEBAIHN0YXRpYyB2b2lkCitAQCAtMTM0Nyw3ICsxNDMyLDcgQEAgc3RhdGljIHZvaWQKICBp bnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCiAgewogICAgc3RydWN0IGJyZWFrcG9p bnQgKmJwdDsKQEAgLTc2MCw3ICs3NTcsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0 NAogICAgaW50IGVycm9yID0gMDsKICAgIGludCB2YWwgPSAwOwogICAgaW50IGRpc2FibGVkX2Jy ZWFrcyA9IDA7Ci1AQCAtMTM1Nyw3ICsxNDQyLDcgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRp b25zICh2b2lkKQorQEAgLTEzNjAsNyArMTQ0NSw3IEBAIGluc2VydF9icmVha3BvaW50X2xvY2F0 aW9ucyAodm9pZCkKICAgICAgIHRoZXJlIHdhcyBhbiBlcnJvci4gICovCiAgICBmcHJpbnRmX3Vu ZmlsdGVyZWQgKHRtcF9lcnJvcl9zdHJlYW0sICJXYXJuaW5nOlxuIik7CiAgCQpAQCAtNzY5LDcg Kzc2Niw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgIHsKICAgICAgICBp ZiAoIXNob3VsZF9iZV9pbnNlcnRlZCAoYikgfHwgYi0+aW5zZXJ0ZWQpCiAgCWNvbnRpbnVlOwot QEAgLTE0MzEsMTAgKzE1MTYsMTAgQEAgWW91IG1heSBoYXZlIHJlcXVlc3RlZCB0b28gbWFueSBo YXJkd2FyZSBicmVha3BvaW50cy93YXRjaHBvaW50cy5cbiIpOworQEAgLTE0MzQsMTAgKzE1MTks MTAgQEAgWW91IG1heSBoYXZlIHJlcXVlc3RlZCB0b28gbWFueSBoYXJkd2FyZSBicmVha3BvaW50 cy93YXRjaHBvaW50cy5cbiIpOwogIGludAogIHJlbW92ZV9icmVha3BvaW50cyAodm9pZCkKICB7 CkBAIC03ODIsNyArNzc5LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgIHsK ICAgICAgaWYgKGItPmluc2VydGVkKQogICAgICAgIHZhbCB8PSByZW1vdmVfYnJlYWtwb2ludCAo YiwgbWFya191bmluc2VydGVkKTsKLUBAIC0xNDQ1LDEwICsxNTMwLDEwIEBAIHJlbW92ZV9icmVh a3BvaW50cyAodm9pZCkKK0BAIC0xNDQ4LDEwICsxNTMzLDEwIEBAIHJlbW92ZV9icmVha3BvaW50 cyAodm9pZCkKICBpbnQKICByZW1vdmVfaHdfd2F0Y2hwb2ludHMgKHZvaWQpCiAgewpAQCAtNzk1 LDcgKzc5Miw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICB7CiAgICAgIGlm IChiLT5pbnNlcnRlZCAmJiBiLT5sb2NfdHlwZSA9PSBicF9sb2NfaGFyZHdhcmVfd2F0Y2hwb2lu dCkKICAgICAgICB2YWwgfD0gcmVtb3ZlX2JyZWFrcG9pbnQgKGIsIG1hcmtfdW5pbnNlcnRlZCk7 Ci1AQCAtMTQ1OSw3ICsxNTQ0LDcgQEAgcmVtb3ZlX2h3X3dhdGNocG9pbnRzICh2b2lkKQorQEAg LTE0NjIsNyArMTU0Nyw3IEBAIHJlbW92ZV9od193YXRjaHBvaW50cyAodm9pZCkKICBpbnQKICBy ZWF0dGFjaF9icmVha3BvaW50cyAoaW50IHBpZCkKICB7CkBAIC04MDQsNyArODAxLDcgQEAgaW5k ZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgIGludCB2YWw7CiAgICBzdHJ1Y3QgY2xlYW51 cCAqb2xkX2NoYWluID0gc2F2ZV9pbmZlcmlvcl9wdGlkICgpOwogICAgc3RydWN0IHVpX2ZpbGUg KnRtcF9lcnJvcl9zdHJlYW0gPSBtZW1fZmlsZW9wZW4gKCk7Ci1AQCAtMTQ2OCw3ICsxNTUzLDcg QEAgcmVhdHRhY2hfYnJlYWtwb2ludHMgKGludCBwaWQpCitAQCAtMTQ3MSw3ICsxNTU2LDcgQEAg cmVhdHRhY2hfYnJlYWtwb2ludHMgKGludCBwaWQpCiAgICBtYWtlX2NsZWFudXBfdWlfZmlsZV9k ZWxldGUgKHRtcF9lcnJvcl9zdHJlYW0pOwogIAogICAgaW5mZXJpb3JfcHRpZCA9IHBpZF90b19w dGlkIChwaWQpOwpAQCAtODEzLDcgKzgxMCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAw NjQ0CiAgICB7CiAgICAgIGlmIChiLT5pbnNlcnRlZCkKICAgICAgICB7Ci1AQCAtMTU2NiwxMiAr MTY1MSw0MiBAQCBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAoY2hhciAqZnVuY19u YW1lKQorQEAgLTE1NjksMTIgKzE2NTQsNDIgQEAgY3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFr cG9pbnQgKGNoYXIgKmZ1bmNfbmFtZSkKICAgIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAo MSk7CiAgfQogIApAQCAtODU3LDcgKzg1NCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAw NjQ0CiAgCiAgICAvKiBXZSdyZSBhYm91dCB0byBkZWxldGUgYnJlYWtwb2ludHMgZnJvbSBHREIn cyBsaXN0cy4gIElmIHRoZQogICAgICAgSU5TRVJURUQgZmxhZyBpcyB0cnVlLCBHREIgd2lsbCB0 cnkgdG8gbGlmdCB0aGUgYnJlYWtwb2ludHMgYnkKLUBAIC0xNTgxLDcgKzE2OTYsNyBAQCB1cGRh dGVfYnJlYWtwb2ludHNfYWZ0ZXJfZXhlYyAodm9pZCkKK0BAIC0xNTg0LDcgKzE2OTksNyBAQCB1 cGRhdGVfYnJlYWtwb2ludHNfYWZ0ZXJfZXhlYyAodm9pZCkKICAgICAgIGJyZWFrcG9pbnRzIG91 dCBhcyBzb29uIGFzIGl0IGRldGVjdHMgYW4gZXhlYy4gIFdlIGRvbid0IGRvIHRoYXQKICAgICAg IGhlcmUgaW5zdGVhZCwgYmVjYXVzZSB0aGVyZSBtYXkgYmUgb3RoZXIgYXR0ZW1wdHMgdG8gZGVs ZXRlCiAgICAgICBicmVha3BvaW50cyBhZnRlciBkZXRlY3RpbmcgYW4gZXhlYyBhbmQgYmVmb3Jl IHJlYWNoaW5nIGhlcmUuICAqLwpAQCAtODY2LDcgKzg2Myw3IEBAIGluZGV4IDlmNTA4NzIuLmE0 MjU1ZDcgMTAwNjQ0CiAgICAgIGdkYl9hc3NlcnQgKCFicGxvYy0+aW5zZXJ0ZWQpOwogIAogICAg QUxMX0JSRUFLUE9JTlRTX1NBRkUgKGIsIHRlbXApCi1AQCAtMTYwMyw3ICsxNzE4LDcgQEAgdXBk YXRlX2JyZWFrcG9pbnRzX2FmdGVyX2V4ZWMgKHZvaWQpCitAQCAtMTYwNiw3ICsxNzIxLDcgQEAg dXBkYXRlX2JyZWFrcG9pbnRzX2FmdGVyX2V4ZWMgKHZvaWQpCiAgICAgIC8qIFRocmVhZCBldmVu dCBicmVha3BvaW50cyBtdXN0IGJlIHNldCBhbmV3IGFmdGVyIGFuIGV4ZWMoKSwKICAgICAgICAg YXMgbXVzdCBvdmVybGF5IGV2ZW50IGFuZCBsb25nam1wIG1hc3RlciBicmVha3BvaW50cy4gICov CiAgICAgIGlmIChiLT50eXBlID09IGJwX3RocmVhZF9ldmVudCB8fCBiLT50eXBlID09IGJwX292 ZXJsYXlfZXZlbnQKQEAgLTg3NSw3ICs4NzIsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEw MDY0NAogICAgICAgIHsKICAJZGVsZXRlX2JyZWFrcG9pbnQgKGIpOwogIAljb250aW51ZTsKLUBA IC0xNjE4LDcgKzE3MzMsOCBAQCB1cGRhdGVfYnJlYWtwb2ludHNfYWZ0ZXJfZXhlYyAodm9pZCkK K0BAIC0xNjIxLDcgKzE3MzYsOCBAQCB1cGRhdGVfYnJlYWtwb2ludHNfYWZ0ZXJfZXhlYyAodm9p ZCkKICAKICAgICAgLyogTG9uZ2ptcCBhbmQgbG9uZ2ptcC1yZXN1bWUgYnJlYWtwb2ludHMgYXJl IGFsc28gbWVhbmluZ2xlc3MKICAgICAgICAgYWZ0ZXIgYW4gZXhlYy4gICovCkBAIC04ODUsNyAr ODgyLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgICAgICB7CiAgCWRlbGV0 ZV9icmVha3BvaW50IChiKTsKICAJY29udGludWU7Ci1AQCAtMTY3OSwxMiArMTc5NSwxMyBAQCB1 cGRhdGVfYnJlYWtwb2ludHNfYWZ0ZXJfZXhlYyAodm9pZCkKK0BAIC0xNjgyLDEyICsxNzk4LDEz IEBAIHVwZGF0ZV9icmVha3BvaW50c19hZnRlcl9leGVjICh2b2lkKQogICAgY3JlYXRlX2xvbmdq bXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJfbG9uZ2ptcCIpOwogICAgY3JlYXRlX2xvbmdqbXBfbWFz dGVyX2JyZWFrcG9pbnQgKCJzaWdsb25nam1wIik7CiAgICBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJf YnJlYWtwb2ludCAoIl9zaWdsb25nam1wIik7CkBAIC05MDAsNyArODk3LDcgQEAgaW5kZXggOWY1 MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgIGludCB2YWwgPSAwOwogICAgc3RydWN0IGNsZWFudXAg Km9sZF9jaGFpbiA9IHNhdmVfaW5mZXJpb3JfcHRpZCAoKTsKICAKLUBAIC0xNjkzLDExICsxODEw LDEyIEBAIGRldGFjaF9icmVha3BvaW50cyAoaW50IHBpZCkKK0BAIC0xNjk2LDExICsxODEzLDEy IEBAIGRldGFjaF9icmVha3BvaW50cyAoaW50IHBpZCkKICAKICAgIC8qIFNldCBpbmZlcmlvcl9w dGlkOyByZW1vdmVfYnJlYWtwb2ludCB1c2VzIHRoaXMgZ2xvYmFsLiAgKi8KICAgIGluZmVyaW9y X3B0aWQgPSBwaWRfdG9fcHRpZCAocGlkKTsKQEAgLTkxNCw3ICs5MTEsNyBAQCBpbmRleCA5ZjUw ODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgZG9fY2xlYW51cHMgKG9sZF9jaGFpbik7CiAgICByZXR1 cm4gdmFsOwogIH0KLUBAIC0xNzkwLDEyICsxOTA4LDE0IEBAIHJlbW92ZV9icmVha3BvaW50IChz dHJ1Y3QgYnBfbG9jYXRpb24gKmIsIGluc2VydGlvbl9zdGF0ZV90IGlzKQorQEAgLTE3OTMsMTIg KzE5MTEsMTQgQEAgcmVtb3ZlX2JyZWFrcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgaW5z ZXJ0aW9uX3N0YXRlX3QgaXMpCiAgCXJldHVybiB2YWw7CiAgICAgICAgYi0+aW5zZXJ0ZWQgPSAo aXMgPT0gbWFya19pbnNlcnRlZCk7CiAgICAgIH0KQEAgLTkzMSw3ICs5MjgsNyBAQCBpbmRleCA5 ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgICAgIHZhbCA9IHRhcmdldF9yZW1vdmVfd2F0Y2hw b2ludCAoYi0+YWRkcmVzcywgYi0+bGVuZ3RoLCAKICAJCQkJICAgICAgYi0+d2F0Y2hwb2ludF90 eXBlKTsKICAKLUBAIC0xODI0LDkgKzE5NDQsOSBAQCByZW1vdmVfYnJlYWtwb2ludCAoc3RydWN0 IGJwX2xvY2F0aW9uICpiLCBpbnNlcnRpb25fc3RhdGVfdCBpcykKK0BAIC0xODI3LDkgKzE5NDcs OSBAQCByZW1vdmVfYnJlYWtwb2ludCAoc3RydWN0IGJwX2xvY2F0aW9uICpiLCBpbnNlcnRpb25f c3RhdGVfdCBpcykKICB2b2lkCiAgbWFya19icmVha3BvaW50c19vdXQgKHZvaWQpCiAgewpAQCAt OTQzLDcgKzk0MCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgIGJwdC0+ aW5zZXJ0ZWQgPSAwOwogIH0KICAKLUBAIC0xODQ2LDcgKzE5NjYsNyBAQCB2b2lkCitAQCAtMTg0 OSw3ICsxOTY5LDcgQEAgdm9pZAogIGJyZWFrcG9pbnRfaW5pdF9pbmZlcmlvciAoZW51bSBpbmZf Y29udGV4dCBjb250ZXh0KQogIHsKICAgIHN0cnVjdCBicmVha3BvaW50ICpiLCAqdGVtcDsKQEAg LTk1Miw3ICs5NDksNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgaW50IGl4 OwogIAogICAgLyogSWYgYnJlYWtwb2ludCBsb2NhdGlvbnMgYXJlIHNoYXJlZCBhY3Jvc3MgcHJv Y2Vzc2VzLCB0aGVuIHRoZXJlJ3MKLUBAIC0xODU0LDcgKzE5NzQsNyBAQCBicmVha3BvaW50X2lu aXRfaW5mZXJpb3IgKGVudW0gaW5mX2NvbnRleHQgY29udGV4dCkKK0BAIC0xODU3LDcgKzE5Nzcs NyBAQCBicmVha3BvaW50X2luaXRfaW5mZXJpb3IgKGVudW0gaW5mX2NvbnRleHQgY29udGV4dCkK ICAgIGlmIChnZGJhcmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoKSkK ICAgICAgcmV0dXJuOwogIApAQCAtOTYxLDcgKzk1OCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1 ZDcgMTAwNjQ0CiAgICAgIGlmIChicHQtPm93bmVyLT5lbmFibGVfc3RhdGUgIT0gYnBfcGVybWFu ZW50KQogICAgICAgIGJwdC0+aW5zZXJ0ZWQgPSAwOwogIAotQEAgLTE5MTUsMTAgKzIwMzUsMTAg QEAgYnJlYWtwb2ludF9pbml0X2luZmVyaW9yIChlbnVtIGluZl9jb250ZXh0IGNvbnRleHQpCitA QCAtMTkxOCwxMCArMjAzOCwxMCBAQCBicmVha3BvaW50X2luaXRfaW5mZXJpb3IgKGVudW0gaW5m X2NvbnRleHQgY29udGV4dCkKICBlbnVtIGJyZWFrcG9pbnRfaGVyZQogIGJyZWFrcG9pbnRfaGVy ZV9wIChDT1JFX0FERFIgcGMpCiAgewpAQCAtOTc0LDcgKzk3MSw3IEBAIGluZGV4IDlmNTA4NzIu LmE0MjU1ZDcgMTAwNjQ0CiAgICAgIHsKICAgICAgICBpZiAoYnB0LT5sb2NfdHlwZSAhPSBicF9s b2Nfc29mdHdhcmVfYnJlYWtwb2ludAogIAkgICYmIGJwdC0+bG9jX3R5cGUgIT0gYnBfbG9jX2hh cmR3YXJlX2JyZWFrcG9pbnQpCi1AQCAtMTk1OCwxNiArMjA3OCwxNiBAQCBtb3JpYnVuZF9icmVh a3BvaW50X2hlcmVfcCAoQ09SRV9BRERSIHBjKQorQEAgLTE5NjEsMTYgKzIwODEsMTYgQEAgbW9y aWJ1bmRfYnJlYWtwb2ludF9oZXJlX3AgKENPUkVfQUREUiBwYykKICB9CiAgCiAgLyogUmV0dXJu cyBub24temVybyBpZiB0aGVyZSdzIGEgYnJlYWtwb2ludCBpbnNlcnRlZCBhdCBQQywgd2hpY2gg aXMKQEAgLTk5NCw3ICs5OTEsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAg ICB7CiAgICAgICAgaWYgKGJwdC0+bG9jX3R5cGUgIT0gYnBfbG9jX3NvZnR3YXJlX2JyZWFrcG9p bnQKICAJICAmJiBicHQtPmxvY190eXBlICE9IGJwX2xvY19oYXJkd2FyZV9icmVha3BvaW50KQot QEAgLTIwMDgsMTAgKzIxMjgsMTAgQEAgYnJlYWtwb2ludF9pbnNlcnRlZF9oZXJlX3AgKENPUkVf QUREUiBwYykKK0BAIC0yMDExLDEwICsyMTMxLDEwIEBAIGJyZWFrcG9pbnRfaW5zZXJ0ZWRfaGVy ZV9wIChDT1JFX0FERFIgcGMpCiAgaW50CiAgc29mdHdhcmVfYnJlYWtwb2ludF9pbnNlcnRlZF9o ZXJlX3AgKENPUkVfQUREUiBwYykKICB7CkBAIC0xMDA3LDcgKzEwMDQsNyBAQCBpbmRleCA5ZjUw ODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgICB7CiAgICAgICAgaWYgKGJwdC0+bG9jX3R5cGUgIT0g YnBfbG9jX3NvZnR3YXJlX2JyZWFrcG9pbnQpCiAgCWNvbnRpbnVlOwotQEAgLTIwNDEsMTIgKzIx NjEsMTIgQEAgc29mdHdhcmVfYnJlYWtwb2ludF9pbnNlcnRlZF9oZXJlX3AgKENPUkVfQUREUiBw YykKK0BAIC0yMDQ0LDEyICsyMTY0LDEyIEBAIHNvZnR3YXJlX2JyZWFrcG9pbnRfaW5zZXJ0ZWRf aGVyZV9wIChDT1JFX0FERFIgcGMpCiAgaW50CiAgYnJlYWtwb2ludF90aHJlYWRfbWF0Y2ggKENP UkVfQUREUiBwYywgcHRpZF90IHB0aWQpCiAgewpAQCAtMTAyMiw3ICsxMDE5LDcgQEAgaW5kZXgg OWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgICAgewogICAgICAgIGlmIChicHQtPmxvY190eXBl ICE9IGJwX2xvY19zb2Z0d2FyZV9icmVha3BvaW50CiAgCSAgJiYgYnB0LT5sb2NfdHlwZSAhPSBi cF9sb2NfaGFyZHdhcmVfYnJlYWtwb2ludCkKLUBAIC0yNTAwLDYgKzI2MjAsMTIgQEAgcHJpbnRf aXRfdHlwaWNhbCAoYnBzdGF0IGJzKQorQEAgLTI1MDMsNiArMjYyMywxMiBAQCBwcmludF9pdF90 eXBpY2FsIChicHN0YXQgYnMpCiAgICAgICAgcmVzdWx0ID0gUFJJTlRfTk9USElORzsKICAgICAg ICBicmVhazsKICAKQEAgLTEwMzUsNyArMTAzMiw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcg MTAwNjQ0CiAgICAgIGNhc2UgYnBfd2F0Y2hwb2ludDoKICAgICAgY2FzZSBicF9oYXJkd2FyZV93 YXRjaHBvaW50OgogICAgICAgIGFubm90YXRlX3dhdGNocG9pbnQgKGItPm51bWJlcik7Ci1AQCAt MjU4Nyw2ICsyNzEzLDggQEAgcHJpbnRfaXRfdHlwaWNhbCAoYnBzdGF0IGJzKQorQEAgLTI1OTAs NiArMjcxNiw4IEBAIHByaW50X2l0X3R5cGljYWwgKGJwc3RhdCBicykKICAgICAgY2FzZSBicF9u b25lOgogICAgICBjYXNlIGJwX2xvbmdqbXA6CiAgICAgIGNhc2UgYnBfbG9uZ2ptcF9yZXN1bWU6 CkBAIC0xMDQ0LDcgKzEwNDEsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAg ICBjYXNlIGJwX3N0ZXBfcmVzdW1lOgogICAgICBjYXNlIGJwX3dhdGNocG9pbnRfc2NvcGU6CiAg ICAgIGNhc2UgYnBfY2FsbF9kdW1teToKLUBAIC0yOTcwLDggKzMwOTgsMTIgQEAgYnBzdGF0X2No ZWNrX2xvY2F0aW9uIChjb25zdCBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsLCBDT1JFX0FERFIgYnBf YWRkcikKK0BAIC0yOTczLDggKzMxMDEsMTIgQEAgYnBzdGF0X2NoZWNrX2xvY2F0aW9uIChjb25z dCBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsLCBDT1JFX0FERFIgYnBfYWRkcikKICAKICAvKiBJZiBC UyByZWZlcnMgdG8gYSB3YXRjaHBvaW50LCBkZXRlcm1pbmUgaWYgdGhlIHdhdGNoZWQgdmFsdWVz CiAgICAgaGFzIGFjdHVhbGx5IGNoYW5nZWQsIGFuZCB3ZSBzaG91bGQgc3RvcC4gIElmIG5vdCwg c2V0IEJTLT5zdG9wCkBAIC0xMDU5LDcgKzEwNTYsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3 IDEwMDY0NAogIGJwc3RhdF9jaGVja193YXRjaHBvaW50IChicHN0YXQgYnMpCiAgewogICAgY29u c3Qgc3RydWN0IGJwX2xvY2F0aW9uICpibCA9IGJzLT5icmVha3BvaW50X2F0OwotQEAgLTMwNjAs OCArMzE5MiwxMCBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQorQEAgLTMw NjMsOCArMzE5NSwxMCBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQogIAkg ICAgIGFueXRoaW5nIGZvciB0aGlzIHdhdGNocG9pbnQuICAqLwogIAkgIGJzLT5wcmludF9pdCA9 IHByaW50X2l0X25vb3A7CiAgCSAgYnMtPnN0b3AgPSAwOwpAQCAtMTA3MCw3ICsxMDY3LDcgQEAg aW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICB9CiAgCiAgCi1AQCAtMzE1NCwxNyArMzI4 OCwxOSBAQCBicHN0YXQKK0BAIC0zMTU3LDE3ICszMjkxLDE5IEBAIGJwc3RhdAogIGJwc3RhdF9z dG9wX3N0YXR1cyAoQ09SRV9BRERSIGJwX2FkZHIsIHB0aWRfdCBwdGlkKQogIHsKICAgIHN0cnVj dCBicmVha3BvaW50ICpiID0gTlVMTDsKQEAgLTEwOTMsNyArMTA5MCw3IEBAIGluZGV4IDlmNTA4 NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgIGIgPSBibC0+b3duZXI7CiAgICAgIGdkYl9hc3NlcnQg KGIpOwogICAgICBpZiAoIWJyZWFrcG9pbnRfZW5hYmxlZCAoYikgJiYgYi0+ZW5hYmxlX3N0YXRl ICE9IGJwX3Blcm1hbmVudCkKLUBAIC0zMTg1LDYgKzMzMjEsNyBAQCBicHN0YXRfc3RvcF9zdGF0 dXMgKENPUkVfQUREUiBicF9hZGRyLCBwdGlkX3QgcHRpZCkKK0BAIC0zMTg4LDYgKzMzMjQsNyBA QCBicHN0YXRfc3RvcF9zdGF0dXMgKENPUkVfQUREUiBicF9hZGRyLCBwdGlkX3QgcHRpZCkKICAg ICAgLyogQ29tZSBoZXJlIGlmIGl0J3MgYSB3YXRjaHBvaW50LCBvciBpZiB0aGUgYnJlYWsgYWRk cmVzcyBtYXRjaGVzICovCiAgCiAgICAgIGJzID0gYnBzdGF0X2FsbG9jIChibCwgYnMpOwkvKiBB bGxvYyBhIGJwc3RhdCB0byBleHBsYWluIHN0b3AgKi8KQEAgLTExMDEsNyArMTA5OCw3IEBAIGlu ZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgCiAgICAgIC8qIEFzc3VtZSB3ZSBzdG9wLiAg U2hvdWxkIHdlIGZpbmQgd2F0Y2hwb2ludCB0aGF0IGlzIG5vdCBhY3R1YWxseQogICAgICAgICB0 cmlnZ2VyZWQsIG9yIGlmIGNvbmRpdGlvbiBvZiBicmVha3BvaW50IGlzIGZhbHNlLCB3ZSdsbCBy ZXNldAotQEAgLTMxOTIsMTIgKzMzMjksMjEgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChDT1JFX0FE RFIgYnBfYWRkciwgcHRpZF90IHB0aWQpCitAQCAtMzE5NSwxMiArMzMzMiwyMSBAQCBicHN0YXRf c3RvcF9zdGF0dXMgKENPUkVfQUREUiBicF9hZGRyLCBwdGlkX3QgcHRpZCkKICAgICAgYnMtPnN0 b3AgPSAxOwogICAgICBicy0+cHJpbnQgPSAxOwogIApAQCAtMTEyNyw3ICsxMTI0LDcgQEAgaW5k ZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgICAgICAvKiBXZSBkbyBub3Qgc3RvcCBmb3Ig dGhlc2UuICAqLwogICAgICAgIGJzLT5zdG9wID0gMDsKICAgICAgZWxzZQotQEAgLTMyMDUsMTQg KzMzNTEsMTUgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChDT1JFX0FERFIgYnBfYWRkciwgcHRpZF90 IHB0aWQpCitAQCAtMzIwOCwxNCArMzM1NCwxNSBAQCBicHN0YXRfc3RvcF9zdGF0dXMgKENPUkVf QUREUiBicF9hZGRyLCBwdGlkX3QgcHRpZCkKICAgIAogICAgICBpZiAoYnMtPnN0b3ApCiAgICAg ICAgewpAQCAtMTE0NSw3ICsxMTQyLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQK ICAJICB9CiAgCWlmIChiLT5zaWxlbnQpCiAgCSAgYnMtPnByaW50ID0gMDsKLUBAIC0zMjMyLDYg KzMzNzksMTAgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChDT1JFX0FERFIgYnBfYWRkciwgcHRpZF90 IHB0aWQpCitAQCAtMzIzNSw2ICszMzgyLDEwIEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9B RERSIGJwX2FkZHIsIHB0aWRfdCBwdGlkKQogICAgICAgIGJzLT5wcmludF9pdCA9IHByaW50X2l0 X25vb3A7CiAgICB9CiAgCkBAIC0xMTU2LDcgKzExNTMsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1 NWQ3IDEwMDY0NAogICAgZm9yIChpeCA9IDA7IFZFQ19pdGVyYXRlIChicF9sb2NhdGlvbl9wLCBt b3JpYnVuZF9sb2NhdGlvbnMsIGl4LCBsb2MpOyArK2l4KQogICAgICB7CiAgICAgICAgaWYgKGxv Yy0+YWRkcmVzcyA9PSBicF9hZGRyKQotQEAgLTM0MDksNiArMzU2MCw3IEBAIGJwc3RhdF93aGF0 IChicHN0YXQgYnMpCitAQCAtMzQxMiw2ICszNTYzLDcgQEAgYnBzdGF0X3doYXQgKGJwc3RhdCBi cykKICAgIHN0cnVjdCBicHN0YXRfd2hhdCByZXR2YWw7CiAgCiAgICByZXR2YWwuY2FsbF9kdW1t eSA9IDA7CkBAIC0xMTY0LDcgKzExNjEsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0 NAogICAgZm9yICg7IGJzICE9IE5VTEw7IGJzID0gYnMtPm5leHQpCiAgICAgIHsKICAgICAgICBl bnVtIGNsYXNzIGJzX2NsYXNzID0gbm9fZWZmZWN0OwotQEAgLTM0NTUsMTAgKzM2MDcsMTUgQEAg YnBzdGF0X3doYXQgKGJwc3RhdCBicykKK0BAIC0zNDU4LDEwICszNjEwLDE1IEBAIGJwc3RhdF93 aGF0IChicHN0YXQgYnMpCiAgCSAgICBic19jbGFzcyA9IG5vX2VmZmVjdDsKICAJICBicmVhazsK ICAJY2FzZSBicF9sb25nam1wOgpAQCAtMTE4MCw3ICsxMTc3LDcgQEAgaW5kZXggOWY1MDg3Mi4u YTQyNTVkNyAxMDA2NDQKICAJICBicmVhazsKICAJY2FzZSBicF9zdGVwX3Jlc3VtZToKICAJICBp ZiAoYnMtPnN0b3ApCi1AQCAtMzQ4MSw2ICszNjM4LDcgQEAgYnBzdGF0X3doYXQgKGJwc3RhdCBi cykKK0BAIC0zNDg0LDYgKzM2NDEsNyBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQogIAljYXNl IGJwX3RocmVhZF9ldmVudDoKICAJY2FzZSBicF9vdmVybGF5X2V2ZW50OgogIAljYXNlIGJwX2xv bmdqbXBfbWFzdGVyOgpAQCAtMTE4OCw3ICsxMTg1LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVk NyAxMDA2NDQKICAJICBic19jbGFzcyA9IGJwX25vc3RvcDsKICAJICBicmVhazsKICAJY2FzZSBi cF9jYXRjaHBvaW50OgotQEAgLTM2MDIsNiArMzc2MCw4IEBAIHByaW50X29uZV9icmVha3BvaW50 X2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC0zNjA1LDYgKzM3NjMsOCBAQCBw cmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgICAg IHticF9hY2Nlc3Nfd2F0Y2hwb2ludCwgImFjYyB3YXRjaHBvaW50In0sCiAgICAgIHticF9sb25n am1wLCAibG9uZ2ptcCJ9LAogICAgICB7YnBfbG9uZ2ptcF9yZXN1bWUsICJsb25nam1wIHJlc3Vt ZSJ9LApAQCAtMTE5Nyw3ICsxMTk0LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQK ICAgICAge2JwX3N0ZXBfcmVzdW1lLCAic3RlcCByZXN1bWUifSwKICAgICAge2JwX3dhdGNocG9p bnRfc2NvcGUsICJ3YXRjaHBvaW50IHNjb3BlIn0sCiAgICAgIHticF9jYWxsX2R1bW15LCAiY2Fs bCBkdW1teSJ9LAotQEAgLTM2MDksNiArMzc2OSw3IEBAIHByaW50X29uZV9icmVha3BvaW50X2xv Y2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC0zNjEyLDYgKzM3NzIsNyBAQCBwcmlu dF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCiAgICAgIHti cF90aHJlYWRfZXZlbnQsICJ0aHJlYWQgZXZlbnRzIn0sCiAgICAgIHticF9vdmVybGF5X2V2ZW50 LCAib3ZlcmxheSBldmVudHMifSwKICAgICAge2JwX2xvbmdqbXBfbWFzdGVyLCAibG9uZ2ptcCBt YXN0ZXIifSwKQEAgLTEyMDUsNyArMTIwMiw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAw NjQ0CiAgICAgIHticF9jYXRjaHBvaW50LCAiY2F0Y2hwb2ludCJ9LAogICAgICB7YnBfdHJhY2Vw b2ludCwgInRyYWNlcG9pbnQifSwKICAgICAge2JwX2ppdF9ldmVudCwgImppdCBldmVudHMifSwK LUBAIC0zNzMyLDYgKzM4OTMsOCBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3Ry dWN0IGJyZWFrcG9pbnQgKmIsCitAQCAtMzczNSw2ICszODk2LDggQEAgcHJpbnRfb25lX2JyZWFr cG9pbnRfbG9jYXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiLAogICAgICAgIGNhc2UgYnBfZmlu aXNoOgogICAgICAgIGNhc2UgYnBfbG9uZ2ptcDoKICAgICAgICBjYXNlIGJwX2xvbmdqbXBfcmVz dW1lOgpAQCAtMTIxNCw3ICsxMjExLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQK ICAgICAgICBjYXNlIGJwX3N0ZXBfcmVzdW1lOgogICAgICAgIGNhc2UgYnBfd2F0Y2hwb2ludF9z Y29wZToKICAgICAgICBjYXNlIGJwX2NhbGxfZHVtbXk6Ci1AQCAtMzczOSw2ICszOTAyLDcgQEAg cHJpbnRfb25lX2JyZWFrcG9pbnRfbG9jYXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiLAorQEAg LTM3NDIsNiArMzkwNSw3IEBAIHByaW50X29uZV9icmVha3BvaW50X2xvY2F0aW9uIChzdHJ1Y3Qg YnJlYWtwb2ludCAqYiwKICAgICAgICBjYXNlIGJwX3RocmVhZF9ldmVudDoKICAgICAgICBjYXNl IGJwX292ZXJsYXlfZXZlbnQ6CiAgICAgICAgY2FzZSBicF9sb25nam1wX21hc3RlcjoKQEAgLTEy MjIsNyArMTIxOSw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgICAgY2Fz ZSBicF90cmFjZXBvaW50OgogICAgICAgIGNhc2UgYnBfaml0X2V2ZW50OgogIAlpZiAob3B0cy5h ZGRyZXNzcHJpbnQpCi1AQCAtNDE5NCw5ICs0MzU4LDggQEAgc2V0X2RlZmF1bHRfYnJlYWtwb2lu dCAoaW50IHZhbGlkLCBDT1JFX0FERFIgYWRkciwgc3RydWN0IHN5bXRhYiAqc3ltdGFiLAorQEAg LTQxOTcsOSArNDM2MSw4IEBAIHNldF9kZWZhdWx0X2JyZWFrcG9pbnQgKGludCB2YWxpZCwgQ09S RV9BRERSIGFkZHIsIHN0cnVjdCBzeW10YWIgKnN5bXRhYiwKICAgICAob3IgdXNlIGl0IGZvciBh bnkgb3RoZXIgcHVycG9zZSBlaXRoZXIpLgogIAogICAgIE1vcmUgc3BlY2lmaWNhbGx5LCBlYWNo IG9mIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludCB0eXBlcyB3aWxsIGFsd2F5cwpAQCAtMTIzNCw3 ICsxMjMxLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAKICAgICAgICBicF93 YXRjaHBvaW50CiAgICAgICAgYnBfaGFyZHdhcmVfd2F0Y2hwb2ludAotQEAgLTQyMTYsODggKzQz NzksNiBAQCBicmVha3BvaW50X2FkZHJlc3NfaXNfbWVhbmluZ2Z1bCAoc3RydWN0IGJyZWFrcG9p bnQgKmJwdCkKK0BAIC00MjE5LDg4ICs0MzgyLDYgQEAgYnJlYWtwb2ludF9hZGRyZXNzX2lzX21l YW5pbmdmdWwgKHN0cnVjdCBicmVha3BvaW50ICpicHQpCiAgCSAgJiYgdHlwZSAhPSBicF9jYXRj aHBvaW50KTsKICB9CiAgCkBAIC0xMzIzLDcgKzEzMjAsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1 NWQ3IDEwMDY0NAogIHN0YXRpYyB2b2lkCiAgYnJlYWtwb2ludF9hZGp1c3RtZW50X3dhcm5pbmcg KENPUkVfQUREUiBmcm9tX2FkZHIsIENPUkVfQUREUiB0b19hZGRyLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnQgYm51bSwgaW50IGhhdmVfYm51bSkKLUBAIC00Mzc5LDYgKzQ0 NjAsOCBAQCBhbGxvY2F0ZV9icF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKK0BA IC00MzgyLDYgKzQ0NjMsOCBAQCBhbGxvY2F0ZV9icF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9p bnQgKmJwdCkKICAgICAgY2FzZSBicF9maW5pc2g6CiAgICAgIGNhc2UgYnBfbG9uZ2ptcDoKICAg ICAgY2FzZSBicF9sb25nam1wX3Jlc3VtZToKQEAgLTEzMzIsNyArMTMyOSw3IEBAIGluZGV4IDlm NTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgIGNhc2UgYnBfc3RlcF9yZXN1bWU6CiAgICAgIGNh c2UgYnBfd2F0Y2hwb2ludF9zY29wZToKICAgICAgY2FzZSBicF9jYWxsX2R1bW15OgotQEAgLTQz ODcsNiArNDQ3MCw3IEBAIGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAq YnB0KQorQEAgLTQzOTAsNiArNDQ3Myw3IEBAIGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3Qg YnJlYWtwb2ludCAqYnB0KQogICAgICBjYXNlIGJwX292ZXJsYXlfZXZlbnQ6CiAgICAgIGNhc2Ug YnBfaml0X2V2ZW50OgogICAgICBjYXNlIGJwX2xvbmdqbXBfbWFzdGVyOgpAQCAtMTM0MCw3ICsx MzM3LDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAgICAgICBsb2MtPmxvY190 eXBlID0gYnBfbG9jX3NvZnR3YXJlX2JyZWFrcG9pbnQ7CiAgICAgICAgYnJlYWs7CiAgICAgIGNh c2UgYnBfaGFyZHdhcmVfYnJlYWtwb2ludDoKLUBAIC00NTY0LDggKzQ2NDgsNyBAQCBtYWtlX2Jy ZWFrcG9pbnRfcGVybWFuZW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKK0BAIC00NTY4LDggKzQ2 NTIsNyBAQCBtYWtlX2JyZWFrcG9pbnRfcGVybWFuZW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYikK ICB9CiAgCiAgLyogQ2FsbCB0aGlzIHJvdXRpbmUgd2hlbiBzdGVwcGluZyBhbmQgbmV4dGluZyB0 byBlbmFibGUgYSBicmVha3BvaW50CkBAIC0xMzUwLDcgKzEzNDcsNyBAQCBpbmRleCA5ZjUwODcy Li5hNDI1NWQ3IDEwMDY0NAogIAogIHZvaWQKICBzZXRfbG9uZ2ptcF9icmVha3BvaW50IChpbnQg dGhyZWFkKQotQEAgLTQ1NzcsMTAgKzQ2NjAsMTAgQEAgc2V0X2xvbmdqbXBfYnJlYWtwb2ludCAo aW50IHRocmVhZCkKK0BAIC00NTgxLDEwICs0NjY0LDEwIEBAIHNldF9sb25nam1wX2JyZWFrcG9p bnQgKGludCB0aHJlYWQpCiAgICAgICBsb25nam1wICJtYXN0ZXIiIGJyZWFrcG9pbnRzLiAgSGVy ZSwgd2Ugc2ltcGx5IGNyZWF0ZSBtb21lbnRhcnkKICAgICAgIGNsb25lcyBvZiB0aG9zZSBhbmQg ZW5hYmxlIHRoZW0gZm9yIHRoZSByZXF1ZXN0ZWQgdGhyZWFkLiAgKi8KICAgIEFMTF9CUkVBS1BP SU5UU19TQUZFIChiLCB0ZW1wKQpAQCAtMTM2Myw3ICsxMzYwLDcgQEAgaW5kZXggOWY1MDg3Mi4u YTQyNTVkNyAxMDA2NDQKICAJY2xvbmUtPnRocmVhZCA9IHRocmVhZDsKICAgICAgICB9CiAgfQot QEAgLTQ1OTIsNyArNDY3NSw3IEBAIGRlbGV0ZV9sb25nam1wX2JyZWFrcG9pbnQgKGludCB0aHJl YWQpCitAQCAtNDU5Niw3ICs0Njc5LDcgQEAgZGVsZXRlX2xvbmdqbXBfYnJlYWtwb2ludCAoaW50 IHRocmVhZCkKICAgIHN0cnVjdCBicmVha3BvaW50ICpiLCAqdGVtcDsKICAKICAgIEFMTF9CUkVB S1BPSU5UU19TQUZFIChiLCB0ZW1wKQpAQCAtMTM3Miw3ICsxMzY5LDcgQEAgaW5kZXggOWY1MDg3 Mi4uYTQyNTVkNyAxMDA2NDQKICAgICAgICB7CiAgCWlmIChiLT50aHJlYWQgPT0gdGhyZWFkKQog IAkgIGRlbGV0ZV9icmVha3BvaW50IChiKTsKLUBAIC00NzA2LDkgKzQ3ODksOSBAQCBjcmVhdGVf c29saWJfZXZlbnRfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQURE UiBhZGRyZXNzKQorQEAgLTQ3MTAsOSArNDc5Myw5IEBAIGNyZWF0ZV9zb2xpYl9ldmVudF9icmVh a3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIGFkZHJlc3MpCiAgdm9p ZAogIGRpc2FibGVfYnJlYWtwb2ludHNfaW5fc2hsaWJzICh2b2lkKQogIHsKQEAgLTEzODQsNyAr MTM4MSw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICB7CiAgICAgIHN0cnVj dCBicmVha3BvaW50ICpiID0gbG9jLT5vd25lcjsKICAgICAgLyogV2UgYXBwbHkgdGhlIGNoZWNr IHRvIGFsbCBicmVha3BvaW50cywgaW5jbHVkaW5nIGRpc2FibGVkCi1AQCAtNDczOCw3ICs0ODIx LDcgQEAgZGlzYWJsZV9icmVha3BvaW50c19pbl9zaGxpYnMgKHZvaWQpCitAQCAtNDc0Miw3ICs0 ODI1LDcgQEAgZGlzYWJsZV9icmVha3BvaW50c19pbl9zaGxpYnMgKHZvaWQpCiAgc3RhdGljIHZv aWQKICBkaXNhYmxlX2JyZWFrcG9pbnRzX2luX3VubG9hZGVkX3NobGliIChzdHJ1Y3Qgc29fbGlz dCAqc29saWIpCiAgewpAQCAtMTM5Myw3ICsxMzkwLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVk NyAxMDA2NDQKICAgIGludCBkaXNhYmxlZF9zaGxpYl9icmVha3MgPSAwOwogIAogICAgLyogU3Vu T1MgYS5vdXQgc2hhcmVkIGxpYnJhcmllcyBhcmUgYWx3YXlzIG1hcHBlZCwgc28gZG8gbm90Ci1A QCAtNDc0OSw3ICs0ODMyLDcgQEAgZGlzYWJsZV9icmVha3BvaW50c19pbl91bmxvYWRlZF9zaGxp YiAoc3RydWN0IHNvX2xpc3QgKnNvbGliKQorQEAgLTQ3NTMsNyArNDgzNiw3IEBAIGRpc2FibGVf YnJlYWtwb2ludHNfaW5fdW5sb2FkZWRfc2hsaWIgKHN0cnVjdCBzb19saXN0ICpzb2xpYikKICAg ICAgICAmJiBiZmRfZ2V0X2ZsYXZvdXIgKGV4ZWNfYmZkKSA9PSBiZmRfdGFyZ2V0X2FvdXRfZmxh dm91cikKICAgICAgcmV0dXJuOwogIApAQCAtMTQwMiw3ICsxMzk5LDcgQEAgaW5kZXggOWY1MDg3 Mi4uYTQyNTVkNyAxMDA2NDQKICAgIHsKICAgICAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBsb2Mt Pm93bmVyOwogICAgICBpZiAoKGxvYy0+bG9jX3R5cGUgPT0gYnBfbG9jX2hhcmR3YXJlX2JyZWFr cG9pbnQKLUBAIC01MzU0LDYgKzU0MzcsOCBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAq YikKK0BAIC01NjQ4LDYgKzU3MzEsOCBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikK ICAgICAgICBjYXNlIGJwX2ZpbmlzaDoKICAgICAgICBjYXNlIGJwX2xvbmdqbXA6CiAgICAgICAg Y2FzZSBicF9sb25nam1wX3Jlc3VtZToKQEAgLTE0MTEsNyArMTQwOCw3IEBAIGluZGV4IDlmNTA4 NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAgICAgY2FzZSBicF9zdGVwX3Jlc3VtZToKICAgICAgICBj YXNlIGJwX2NhbGxfZHVtbXk6CiAgICAgICAgY2FzZSBicF93YXRjaHBvaW50X3Njb3BlOgotQEAg LTUzNjIsNiArNTQ0Nyw3IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQorQEAgLTU2 NTYsNiArNTc0MSw3IEBAIG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQogICAgICAgIGNh c2UgYnBfb3ZlcmxheV9ldmVudDoKICAgICAgICBjYXNlIGJwX2ppdF9ldmVudDoKICAgICAgICBj YXNlIGJwX2xvbmdqbXBfbWFzdGVyOgpAQCAtMTQxOSw3ICsxNDE2LDcgQEAgaW5kZXggOWY1MDg3 Mi4uYTQyNTVkNyAxMDA2NDQKICAJYnJlYWs7CiAgICAgICAgfQogIAotQEAgLTY2NjQsNiArNjc1 MCw3IEBAIHN0cnVjdCB1bnRpbF9icmVha19jb21tYW5kX2NvbnRpbnVhdGlvbl9hcmdzCitAQCAt Njk1OCw2ICs3MDQ0LDcgQEAgc3RydWN0IHVudGlsX2JyZWFrX2NvbW1hbmRfY29udGludWF0aW9u X2FyZ3MKICB7CiAgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnJlYWtwb2ludDsKICAgIHN0cnVjdCBi cmVha3BvaW50ICpicmVha3BvaW50MjsKQEAgLTE0MjcsNyArMTQyNCw3IEBAIGluZGV4IDlmNTA4 NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgfTsKICAKICAvKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBi eSBmZXRjaF9pbmZlcmlvcl9ldmVudCB2aWEgdGhlCi1AQCAtNjY3OCw2ICs2NzY1LDcgQEAgdW50 aWxfYnJlYWtfY29tbWFuZF9jb250aW51YXRpb24gKHZvaWQgKmFyZykKK0BAIC02OTcyLDYgKzcw NTksNyBAQCB1bnRpbF9icmVha19jb21tYW5kX2NvbnRpbnVhdGlvbiAodm9pZCAqYXJnKQogICAg ZGVsZXRlX2JyZWFrcG9pbnQgKGEtPmJyZWFrcG9pbnQpOwogICAgaWYgKGEtPmJyZWFrcG9pbnQy KQogICAgICBkZWxldGVfYnJlYWtwb2ludCAoYS0+YnJlYWtwb2ludDIpOwpAQCAtMTQzNSw3ICsx NDMyLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICB9CiAgCiAgdm9pZAotQEAg LTY2ODksNiArNjc3Nyw4IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZy b21fdHR5LCBpbnQgYW55d2hlcmUpCitAQCAtNjk4Myw2ICs3MDcxLDggQEAgdW50aWxfYnJlYWtf Y29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAgIHN0cnVj dCBicmVha3BvaW50ICpicmVha3BvaW50OwogICAgc3RydWN0IGJyZWFrcG9pbnQgKmJyZWFrcG9p bnQyID0gTlVMTDsKICAgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW47CkBAIC0xNDQ0LDcgKzE0 NDEsNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogIAogICAgY2xlYXJfcHJvY2Vl ZF9zdGF0dXMgKCk7CiAgCi1AQCAtNjcyNyw2ICs2ODE3LDkgQEAgdW50aWxfYnJlYWtfY29tbWFu ZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKK0BAIC03MDIxLDYgKzcx MTEsOSBAQCB1bnRpbF9icmVha19jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSwgaW50 IGFueXdoZXJlKQogIAogICAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwX2RlbGV0ZV9icmVha3Bv aW50IChicmVha3BvaW50KTsKICAKQEAgLTE0NTQsNyArMTQ1MSw3IEBAIGluZGV4IDlmNTA4NzIu LmE0MjU1ZDcgMTAwNjQ0CiAgICAvKiBLZWVwIHdpdGhpbiB0aGUgY3VycmVudCBmcmFtZSwgb3Ig aW4gZnJhbWVzIGNhbGxlZCBieSB0aGUgY3VycmVudAogICAgICAgb25lLiAgKi8KICAKLUBAIC02 NzM5LDYgKzY4MzIsMTAgQEAgdW50aWxfYnJlYWtfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJv bV90dHksIGludCBhbnl3aGVyZSkKK0BAIC03MDMzLDYgKzcxMjYsMTAgQEAgdW50aWxfYnJlYWtf Y29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAJCQkJCSAg ICAgIGZyYW1lX3Vud2luZF9jYWxsZXJfaWQgKGZyYW1lKSwKICAJCQkJCSAgICAgIGJwX3VudGls KTsKICAgICAgICBtYWtlX2NsZWFudXBfZGVsZXRlX2JyZWFrcG9pbnQgKGJyZWFrcG9pbnQyKTsK QEAgLTE0NjUsNyArMTQ2Miw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgICAg IH0KICAKICAgIHByb2NlZWQgKC0xLCBUQVJHRVRfU0lHTkFMX0RFRkFVTFQsIDApOwotQEAgLTY3 NTUsNiArNjg1Miw3IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21f dHR5LCBpbnQgYW55d2hlcmUpCitAQCAtNzA0OSw2ICs3MTQ2LDcgQEAgdW50aWxfYnJlYWtfY29t bWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVyZSkKICAKICAgICAgICBh cmdzLT5icmVha3BvaW50ID0gYnJlYWtwb2ludDsKICAgICAgICBhcmdzLT5icmVha3BvaW50MiA9 IGJyZWFrcG9pbnQyOwpAQCAtMTQ3Myw3ICsxNDcwLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVk NyAxMDA2NDQKICAKICAgICAgICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2hhaW4pOwogICAgICAg IGFkZF9jb250aW51YXRpb24gKGluZmVyaW9yX3RocmVhZCAoKSwKLUBAIC03MzU3LDYgKzc0NTUs ODIgQEAgZG9fdmVjX2ZyZWUgKHZvaWQgKnApCitAQCAtNzc1OCw2ICs3ODU2LDgyIEBAIGRvX3Zl Y19mcmVlICh2b2lkICpwKQogICAgICBWRUNfZnJlZSAoYnBfbG9jYXRpb25fcCwgKnZlYyk7CiAg fQogIApAQCAtMTU1Niw3ICsxNTUzLDcgQEAgaW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQK ICAvKiBJZiBTSE9VTERfSU5TRVJUIGlzIGZhbHNlLCBkbyBub3QgaW5zZXJ0IGFueSBicmVha3Bv aW50IGxvY2F0aW9ucwogICAgIGludG8gdGhlIGluZmVyaW9yLCBvbmx5IHJlbW92ZSBhbHJlYWR5 LWluc2VydGVkIGxvY2F0aW9ucyB0aGF0IG5vCiAgICAgbG9uZ2VyIHNob3VsZCBiZSBpbnNlcnRl ZC4gIEZ1bmN0aW9ucyB0aGF0IGRlbGV0ZSBhIGJyZWFrcG9pbnQgb3IKLUBAIC03Mzc2LDQ5ICs3 NTUwLDY2IEBAIHN0YXRpYyB2b2lkCitAQCAtNzc3Nyw0OSArNzk1MSw2NiBAQCBzdGF0aWMgdm9p ZAogIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCiAgewog ICAgc3RydWN0IGJyZWFrcG9pbnQgKmI7CkBAIC0xNjUyLDcgKzE2NDksNyBAQCBpbmRleCA5ZjUw ODcyLi5hNDI1NWQ3IDEwMDY0NAogIAogICAgICAgIC8qIElmIHRoaXMgbG9jYXRpb24gaXMgbm8g bG9uZ2VyIHByZXNlbnQsIGFuZCBpbnNlcnRlZCwgbG9vayBpZiB0aGVyZSdzCiAgCSBtYXliZSBh IG5ldyBsb2NhdGlvbiBhdCB0aGUgc2FtZSBhZGRyZXNzLiAgSWYgc28sIG1hcmsgdGhhdCBvbmUg Ci1AQCAtNzQyNiwxMSArNzYxNywxMSBAQCB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9uX2xpc3QgKGlu dCBzaG91bGRfaW5zZXJ0KQorQEAgLTc4MjcsMTEgKzgwMTgsMTEgQEAgdXBkYXRlX2dsb2JhbF9s b2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkKICAJIGRvbid0IGhhdmUgYSB0aW1lIHdp bmRvdyB3aGVyZSBhIGJyZWFrcG9pbnQgYXQgY2VydGFpbiBsb2NhdGlvbiBpcyBub3QKICAJIGlu c2VydGVkLiAgKi8KICAKQEAgLTE2NjYsNyArMTY2Myw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1 ZDcgMTAwNjQ0CiAgCSAgICB7CiAgCSAgICAgIC8qIFRoZSBsb2NhdGlvbiBpcyBzdGlsbCBwcmVz ZW50IGluIHRoZSBsb2NhdGlvbiBsaXN0LCBhbmQgc3RpbGwKICAJCSBzaG91bGQgYmUgaW5zZXJ0 ZWQuICBEb24ndCBkbyBhbnl0aGluZy4gICovCi1AQCAtNzQ0MSwzNyArNzYzMiw0NiBAQCB1cGRh dGVfZ2xvYmFsX2xvY2F0aW9uX2xpc3QgKGludCBzaG91bGRfaW5zZXJ0KQorQEAgLTc4NDIsMzcg KzgwMzMsNDYgQEAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2Vy dCkKICAJICAgICAgLyogVGhlIGxvY2F0aW9uIGlzIGVpdGhlciBubyBsb25nZXIgcHJlc2VudCwg b3IgZ290IGRpc2FibGVkLgogIAkJIFNlZSBpZiB0aGVyZSdzIGFub3RoZXIgbG9jYXRpb24gYXQg dGhlIHNhbWUgYWRkcmVzcywgaW4gd2hpY2ggCiAgCQkgY2FzZSB3ZSBkb24ndCBuZWVkIHRvIHJl bW92ZSB0aGlzIG9uZSBmcm9tIHRoZSB0YXJnZXQuICAqLwpAQCAtMTczMSw3ICsxNzI4LDcgQEAg aW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAJCX0KICAJICAgICAgcmVtb3ZlZCA9IDE7 CiAgCSAgICB9Ci1AQCAtNzQ5MywxOSArNzY5Myw1OSBAQCB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9u X2xpc3QgKGludCBzaG91bGRfaW5zZXJ0KQorQEAgLTc4OTQsMTkgKzgwOTQsNTkgQEAgdXBkYXRl X2dsb2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkKICAJCSBsb25nZXIgbmVl ZCB0byBrZWVwIHRoaXMgYnJlYWtwb2ludC4gIFRoaXMgaXMganVzdCBhCiAgCQkgaGV1cmlzdGlj LCBidXQgaWYgaXQncyB3cm9uZywgd2UnbGwgcmVwb3J0IHVuZXhwZWN0ZWQgU0lHVFJBUCwKICAJ CSB3aGljaCBpcyB1c2FiaWxpdHkgaXNzdWUsIGJ1dCBub3QgYSBjb3JyZWN0bmVzcyBwcm9ibGVt LiAgKi8KQEAgLTE3OTcsNyArMTc5NCw3IEBAIGluZGV4IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0 CiAgICAgIH0KICAKICAgIGlmIChicmVha3BvaW50c19hbHdheXNfaW5zZXJ0ZWRfbW9kZSAoKSAm JiBzaG91bGRfaW5zZXJ0Ci1AQCAtNzY4MSw2ICs3OTIxLDcgQEAgZGVsZXRlX2NvbW1hbmQgKGNo YXIgKmFyZywgaW50IGZyb21fdHR5KQorQEAgLTgwODMsNiArODMyMyw3IEBAIGRlbGV0ZV9jb21t YW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAJICAgICYmIGItPnR5cGUgIT0gYnBfdGhy ZWFkX2V2ZW50CiAgCSAgICAmJiBiLT50eXBlICE9IGJwX292ZXJsYXlfZXZlbnQKICAJICAgICYm IGItPnR5cGUgIT0gYnBfbG9uZ2ptcF9tYXN0ZXIKQEAgLTE4MDUsNyArMTgwMiw3IEBAIGluZGV4 IDlmNTA4NzIuLmE0MjU1ZDcgMTAwNjQ0CiAgCSAgICAmJiBiLT5udW1iZXIgPj0gMCkKICAJICB7 CiAgCSAgICBicmVha3NfdG9fZGVsZXRlID0gMTsKLUBAIC03NzAwLDYgKzc5NDEsNyBAQCBkZWxl dGVfY29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCitAQCAtODEwMiw2ICs4MzQzLDcg QEAgZGVsZXRlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQogIAkJJiYgYi0+dHlw ZSAhPSBicF9qaXRfZXZlbnQKICAJCSYmIGItPnR5cGUgIT0gYnBfb3ZlcmxheV9ldmVudAogIAkJ JiYgYi0+dHlwZSAhPSBicF9sb25nam1wX21hc3RlcgpAQCAtMTgxMyw3ICsxODEwLDcgQEAgaW5k ZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQKICAJCSYmIGItPm51bWJlciA+PSAwKQogIAkgICAg ICBkZWxldGVfYnJlYWtwb2ludCAoYik7CiAgCSAgfQotQEAgLTgwMDIsNiArODI0NCw3IEBAIGJy ZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmludCkKK0BAIC04NDA0LDYgKzg2NDYsNyBAQCBi cmVha3BvaW50X3JlX3NldF9vbmUgKHZvaWQgKmJpbnQpCiAgCSByZXNldCBsYXRlciBieSBicmVh a3BvaW50X3JlX3NldC4gICovCiAgICAgIGNhc2UgYnBfb3ZlcmxheV9ldmVudDoKICAgICAgY2Fz ZSBicF9sb25nam1wX21hc3RlcjoKQEAgLTE4MjEsNyArMTgxOCw3IEBAIGluZGV4IDlmNTA4NzIu LmE0MjU1ZDcgMTAwNjQ0CiAgICAgICAgZGVsZXRlX2JyZWFrcG9pbnQgKGIpOwogICAgICAgIGJy ZWFrOwogIAotQEAgLTgwMjUsNiArODI2OCw4IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9p ZCAqYmludCkKK0BAIC04NDI3LDYgKzg2NzAsOCBAQCBicmVha3BvaW50X3JlX3NldF9vbmUgKHZv aWQgKmJpbnQpCiAgICAgIGNhc2UgYnBfbG9uZ2ptcDoKICAgICAgY2FzZSBicF9sb25nam1wX3Jl c3VtZToKICAgICAgY2FzZSBicF9qaXRfZXZlbnQ6CkBAIC0xODMwLDcgKzE4MjcsNyBAQCBpbmRl eCA5ZjUwODcyLi5hNDI1NWQ3IDEwMDY0NAogICAgICAgIGJyZWFrOwogICAgICB9CiAgCi1AQCAt ODA2MCw2ICs4MzA1LDcgQEAgYnJlYWtwb2ludF9yZV9zZXQgKHZvaWQpCitAQCAtODQ2Miw2ICs4 NzA3LDcgQEAgYnJlYWtwb2ludF9yZV9zZXQgKHZvaWQpCiAgICBjcmVhdGVfbG9uZ2ptcF9tYXN0 ZXJfYnJlYWtwb2ludCAoIl9sb25nam1wIik7CiAgICBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJl YWtwb2ludCAoInNpZ2xvbmdqbXAiKTsKICAgIGNyZWF0ZV9sb25nam1wX21hc3Rlcl9icmVha3Bv aW50ICgiX3NpZ2xvbmdqbXAiKTsKQEAgLTE4MzgsNyArMTgzNSw3IEBAIGluZGV4IDlmNTA4NzIu LmE0MjU1ZDcgMTAwNjQ0CiAgfQogIAwKICAvKiBSZXNldCB0aGUgdGhyZWFkIG51bWJlciBvZiB0 aGlzIGJyZWFrcG9pbnQ6Ci1AQCAtODg3MSw2ICs5MTE3LDIyIEBAIGFsbF90cmFjZXBvaW50cyAo KQorQEAgLTkzMjcsNiArOTU3MywyMiBAQCBhbGxfdHJhY2Vwb2ludHMgKCkKICAgIHJldHVybiB0 cF92ZWM7CiAgfQogIApAQCAtMTg2MSwxNyArMTg1OCwxNyBAQCBpbmRleCA5ZjUwODcyLi5hNDI1 NWQ3IDEwMDY0NAogIAwKICAvKiBUaGlzIGhlbHAgc3RyaW5nIGlzIHVzZWQgZm9yIHRoZSBicmVh aywgaGJyZWFrLCB0YnJlYWsgYW5kIHRoYnJlYWsgY29tbWFuZHMuCiAgICAgSXQgaXMgZGVmaW5l ZCBhcyBhIG1hY3JvIHRvIHByZXZlbnQgZHVwbGljYXRpb24uCi1AQCAtOTM3Myw0ICs5NjM1LDUg QEAgaW5mZXJpb3IgaW4gYWxsLXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWlu c2VydGVkIG1vZGUgaXMgb2ZmLiIpLAorQEAgLTk4NTAsNCArMTAxMTIsNSBAQCBpbmZlcmlvciBp biBhbGwtc3RvcCBtb2RlLCBnZGIgYmVoYXZlcyBhcyBpZiBhbHdheXMtaW5zZXJ0ZWQgbW9kZSBp cyBvZmYuIiksCiAgICBhdXRvbWF0aWNfaGFyZHdhcmVfYnJlYWtwb2ludHMgPSAxOwogIAogICAg b2JzZXJ2ZXJfYXR0YWNoX2Fib3V0X3RvX3Byb2NlZWQgKGJyZWFrcG9pbnRfYWJvdXRfdG9fcHJv Y2VlZCk7CiArICBvYnNlcnZlcl9hdHRhY2hfbWFya191c2VkIChicmVha3BvaW50X3R5cGVzX21h cmtfdXNlZCk7CiAgfQogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmggYi9nZGIvYnJlYWtw b2ludC5oCi1pbmRleCA3MGIxMzk4Li4wZjA1YjVhIDEwMDY0NAoraW5kZXggYmE0OTljNi4uODBm NzAyZiAxMDA2NDQKIC0tLSBhL2dkYi9icmVha3BvaW50LmgKICsrKyBiL2dkYi9icmVha3BvaW50 LmgKLUBAIC01NSw2ICs1NSwxMyBAQCBlbnVtIGJwdHlwZQorQEAgLTU2LDYgKzU2LDEzIEBAIGVu dW0gYnB0eXBlCiAgICAgIGJwX2xvbmdqbXAsCQkJLyogc2VjcmV0IGJyZWFrcG9pbnQgdG8gZmlu ZCBsb25nam1wKCkgKi8KICAgICAgYnBfbG9uZ2ptcF9yZXN1bWUsCQkvKiBzZWNyZXQgYnJlYWtw b2ludCB0byBlc2NhcGUgbG9uZ2ptcCgpICovCiAgCkBAIC0xODg1LDcgKzE4ODIsNyBAQCBpbmRl eCA3MGIxMzk4Li4wZjA1YjVhIDEwMDY0NAogICAgICAvKiBVc2VkIGJ5IHdhaXRfZm9yX2luZmVy aW9yIGZvciBzdGVwcGluZyBvdmVyIHN1YnJvdXRpbmUgY2FsbHMsIGZvcgogICAgICAgICBzdGVw cGluZyBvdmVyIHNpZ25hbCBoYW5kbGVycywgYW5kIGZvciBza2lwcGluZyBwcm9sb2d1ZXMuICAq LwogICAgICBicF9zdGVwX3Jlc3VtZSwKLUBAIC0xMTcsNiArMTI0LDkgQEAgZW51bSBicHR5cGUK K0BAIC0xMTgsNiArMTI1LDkgQEAgZW51bSBicHR5cGUKICAKICAgICAgYnBfbG9uZ2ptcF9tYXN0 ZXIsCiAgCkBAIC0xODk1LDcgKzE4OTIsNyBAQCBpbmRleCA3MGIxMzk4Li4wZjA1YjVhIDEwMDY0 NAogICAgICBicF9jYXRjaHBvaW50LAogIAogICAgICBicF90cmFjZXBvaW50LAotQEAgLTIyNywx MCArMjM3LDYgQEAgc3RydWN0IGJwX2xvY2F0aW9uCitAQCAtMjI4LDEwICsyMzgsNiBAQCBzdHJ1 Y3QgYnBfbG9jYXRpb24KICAgICAgIHRoZSBzYW1lIHBhcmVudCBicmVha3BvaW50LiAgKi8KICAg IHN0cnVjdCBicF9sb2NhdGlvbiAqbmV4dDsKICAKQEAgLTE5MDYsNyArMTkwMyw3IEBAIGluZGV4 IDcwYjEzOTguLjBmMDViNWEgMTAwNjQ0CiAgICAvKiBUeXBlIG9mIHRoaXMgYnJlYWtwb2ludCBs b2NhdGlvbi4gICovCiAgICBlbnVtIGJwX2xvY190eXBlIGxvY190eXBlOwogIAotQEAgLTU3Myw2 ICs1NzksMTAgQEAgc3RydWN0IGJwc3RhdF93aGF0CitAQCAtNTgzLDYgKzU4OSwxMCBAQCBzdHJ1 Y3QgYnBzdGF0X3doYXQKICAgICAgICAgY29udGludWluZyBmcm9tIGEgY2FsbCBkdW1teSB3aXRo b3V0IHBvcHBpbmcgdGhlIGZyYW1lIGlzIG5vdCBhCiAgICAgICAgIHVzZWZ1bCBvbmUpLiAgKi8K ICAgICAgaW50IGNhbGxfZHVtbXk7CkBAIC0xOTE3LDcgKzE5MTQsNyBAQCBpbmRleCA3MGIxMzk4 Li4wZjA1YjVhIDEwMDY0NAogICAgfTsKICAKICAvKiBUaGUgcG9zc2libGUgcmV0dXJuIHZhbHVl cyBmb3IgcHJpbnRfYnBzdGF0LCBwcmludF9pdF9ub3JtYWwsCi1AQCAtOTI3LDYgKzkzNyw5IEBA IGV4dGVybiB2b2lkIGJyZWFrcG9pbnRfcmV0aXJlX21vcmlidW5kICh2b2lkKTsKK0BAIC05NDYs NiArOTU2LDkgQEAgZXh0ZXJuIGludCBjYXRjaGluZ19zeXNjYWxsX251bWJlciAoaW50IHN5c2Nh bGxfbnVtYmVyKTsKICAvKiBUZWxsIGEgYnJlYWtwb2ludCB0byBiZSBxdWlldC4gICovCiAgZXh0 ZXJuIHZvaWQgbWFrZV9icmVha3BvaW50X3NpbGVudCAoc3RydWN0IGJyZWFrcG9pbnQgKik7CiAg CkBAIC0yMzQwLDkgKzIzMzcsMTggQEAgaW5kZXggZjhlNGYxMi4uNWI0N2UyZSAxMDA2NDQKICAg IH0KICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL2MtbGFuZy5jIGIvZ2RiL2MtbGFuZy5jCi1pbmRleCA0 YmE4MWJhLi4wNTNmNjg1IDEwMDY0NAoraW5kZXggNGJhODFiYS4uYmMzNWEzZSAxMDA2NDQKIC0t LSBhL2dkYi9jLWxhbmcuYwogKysrIGIvZ2RiL2MtbGFuZy5jCitAQCAtNDU5LDcgKzQ1OSw3IEBA IGNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZGJfYnl0ZSAqc3RyaW5nLAorIAkgc2luZ2xlIGNoYXJhY3RlciBpbiBpc29sYXRpb24u ICBUaGlzIG1ha2VzIHRoZSBjb2RlIHNpbXBsZXIKKyAJIGFuZCBwcm9iYWJseSBkb2VzIHRoZSBz ZW5zaWJsZSB0aGluZyBpbiB0aGUgbWFqb3JpdHkgb2YKKyAJIGNhc2VzLiAgKi8KKy0gICAgICB3 aGlsZSAobnVtX2NoYXJzID09IDEpCisrICAgICAgd2hpbGUgKG51bV9jaGFycyA9PSAxICYmIHRo aW5nc19wcmludGVkIDwgb3B0aW9ucy0+cHJpbnRfbWF4KQorIAl7CisgCSAgLyogQ291bnQgdGhl IG51bWJlciBvZiByZXBldGl0aW9ucy4gICovCisgCSAgdW5zaWduZWQgaW50IHJlcHMgPSAwOwog QEAgLTcxNSw3ICs3MTUsNyBAQCBjX2dldF9zdHJpbmcgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGdk Yl9ieXRlICoqYnVmZmVyLCBpbnQgKmxlbmd0aCwKICAgICAgIElmIGxlbmd0aCByZXR1cm5lZCBm cm9tIHJlYWRfc3RyaW5nIHdhcyA+IDAsIHJldHVybiB0aGUgbnVtYmVyIG9mCiAgICAgICBjaGFy YWN0ZXJzIHJlYWQgYnkgZGl2aWRpbmcgdGhlIG51bWJlciBvZiBieXRlcyBieSB3aWR0aC4gICov CkBAIC0zNzg3LDcgKzM3OTMsNyBAQCBpbmRleCA3Y2IwMTZkLi5iYjllMzVhIDEwMDY0NAogICAg ZGVmYXVsdF9zeW1maWxlX29mZnNldHMsIC8qIHN5bV9vZmZzZXRzOiBwYXJzZSB1c2VyJ3Mgb2Zm c2V0cyB0bwogIAkJCSAgICAgIGludGVybmFsIGZvcm0gKi8KIGRpZmYgLS1naXQgYS9nZGIvZG9j L2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXggN2IyNjY3NS4uMGUwYzI4 OCAxMDA2NDQKK2luZGV4IDVhNWY1NDIuLjJjNmJjZWYgMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dk Yi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAtOTU5LDggKzk1OSwxMCBA QCBDb25uZWN0IHRvIHByb2Nlc3MgSUQgQHZhcntudW1iZXJ9LCBhcyB3aXRoIHRoZSBAY29kZXth dHRhY2h9IGNvbW1hbmQuCkBAIC0zODIwLDcgKzM4MjYsNyBAQCBpbmRleCA3YjI2Njc1Li4wZTBj Mjg4IDEwMDY0NAogIEBjIHJlc29sdmUgdGhlIHNpdHVhdGlvbiBvZiB0aGVzZSBldmVudHVhbGx5 CiAgQGl0ZW0gLXR1aQogIEBjaW5kZXggQGNvZGV7LS10dWl9Ci1AQCAtMTg1MTksNyArMTg1MzEs NyBAQCBjb21tYW5kOgorQEAgLTE4NjUwLDcgKzE4NjYyLDcgQEAgY29tbWFuZDoKICBAdGFibGUg QGNvZGUKICBAa2luZGV4IHNvdXJjZQogIEBjaW5kZXggZXhlY3V0ZSBjb21tYW5kcyBmcm9tIGEg ZmlsZQpAQCAtMzgyOSw3ICszODM1LDcgQEAgaW5kZXggN2IyNjY3NS4uMGUwYzI4OCAxMDA2NDQK ICBFeGVjdXRlIHRoZSBjb21tYW5kIGZpbGUgQHZhcntmaWxlbmFtZX0uCiAgQGVuZCB0YWJsZQog IAotQEAgLTE4NTM2LDYgKzE4NTQ4LDExIEBAIElmIEBjb2Rley12fSwgZm9yIHZlcmJvc2UgbW9k ZSwgaXMgZ2l2ZW4gdGhlbiBAdmFsdWV7R0RCTn0gZGlzcGxheXMKK0BAIC0xODY2Nyw2ICsxODY3 OSwxMSBAQCBJZiBAY29kZXstdn0sIGZvciB2ZXJib3NlIG1vZGUsIGlzIGdpdmVuIHRoZW4gQHZh bHVle0dEQk59IGRpc3BsYXlzCiAgZWFjaCBjb21tYW5kIGFzIGl0IGlzIGV4ZWN1dGVkLiAgVGhl IG9wdGlvbiBtdXN0IGJlIGdpdmVuIGJlZm9yZQogIEB2YXJ7ZmlsZW5hbWV9LCBhbmQgaXMgaW50 ZXJwcmV0ZWQgYXMgcGFydCBvZiB0aGUgZmlsZW5hbWUgYW55d2hlcmUgZWxzZS4KICAKQEAgLTM4 NDEsNyArMzg0Nyw3IEBAIGluZGV4IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgQ29tbWFuZHMg dGhhdCB3b3VsZCBhc2sgZm9yIGNvbmZpcm1hdGlvbiBpZiB1c2VkIGludGVyYWN0aXZlbHkgcHJv Y2VlZAogIHdpdGhvdXQgYXNraW5nIHdoZW4gdXNlZCBpbiBhIGNvbW1hbmQgZmlsZS4gIE1hbnkg QHZhbHVle0dEQk59IGNvbW1hbmRzIHRoYXQKICBub3JtYWxseSBwcmludCBtZXNzYWdlcyB0byBz YXkgd2hhdCB0aGV5IGFyZSBkb2luZyBvbWl0IHRoZSBtZXNzYWdlcwotQEAgLTE4Nzk3LDggKzE4 ODE0LDYgQEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CitAQCAtMTg5Mjgs OCArMTg5NDUsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToKICAKICBA c21hbGxleGFtcGxlCiAgKEB2YWx1ZXtHREJQfSkgcHl0aG9uCkBAIC0zODUwLDcgKzM4NTYsNyBA QCBpbmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAogID5wcmludCAyMwogID5lbmQKICAyMwot QEAgLTE4ODExLDYgKzE4ODI2LDE0IEBAIGluIGEgUHl0aG9uIHNjcmlwdC4gIFRoaXMgY2FuIGJl IGNvbnRyb2xsZWQgdXNpbmcgQGNvZGV7bWFpbnQgc2V0CitAQCAtMTg5NDIsNiArMTg5NTcsMTQg QEAgaW4gYSBQeXRob24gc2NyaXB0LiAgVGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29k ZXttYWludCBzZXQKICBweXRob24gcHJpbnQtc3RhY2t9OiBpZiBAY29kZXtvbn0sIHRoZSBkZWZh dWx0LCB0aGVuIFB5dGhvbiBzdGFjawogIHByaW50aW5nIGlzIGVuYWJsZWQ7IGlmIEBjb2Rle29m Zn0sIHRoZW4gUHl0aG9uIHN0YWNrIHByaW50aW5nIGlzCiAgZGlzYWJsZWQuCkBAIC0zODY1LDcg KzM4NzEsNyBAQCBpbmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAogIEBlbmQgdGFibGUKICAK ICBAbm9kZSBQeXRob24gQVBJCi1AQCAtMTg4MTgsNiArMTg4NDEsMTQgQEAgZGlzYWJsZWQuCitA QCAtMTg5NDksNiArMTg5NzIsMTQgQEAgZGlzYWJsZWQuCiAgQGNpbmRleCBweXRob24gYXBpCiAg QGNpbmRleCBwcm9ncmFtbWluZyBpbiBweXRob24KICAKQEAgLTM4ODAsNyArMzg4Niw3IEBAIGlu ZGV4IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgQGNpbmRleCBweXRob24gc3Rkb3V0CiAgQGNp bmRleCBweXRob24gcGFnaW5hdGlvbgogIEF0IHN0YXJ0dXAsIEB2YWx1ZXtHREJOfSBvdmVycmlk ZXMgUHl0aG9uJ3MgQGNvZGV7c3lzLnN0ZG91dH0gYW5kCi1AQCAtMTg4MzAsMTMgKzE4ODYxLDE3 IEBAIHNpdHVhdGlvbiwgYSBQeXRob24gQGNvZGV7S2V5Ym9hcmRJbnRlcnJ1cHR9IGV4Y2VwdGlv biBpcyB0aHJvd24uCitAQCAtMTg5NjEsMTMgKzE4OTkyLDE3IEBAIHNpdHVhdGlvbiwgYSBQeXRo b24gQGNvZGV7S2V5Ym9hcmRJbnRlcnJ1cHR9IGV4Y2VwdGlvbiBpcyB0aHJvd24uCiAgKiBCYXNp YyBQeXRob246OiAgICAgICAgICAgICAgICBCYXNpYyBQeXRob24gRnVuY3Rpb25zLgogICogRXhj ZXB0aW9uIEhhbmRsaW5nOjoKICAqIEF1dG8tbG9hZGluZzo6ICAgICAgICAgICAgICAgIEF1dG9t YXRpY2FsbHkgbG9hZGluZyBQeXRob24gY29kZS4KQEAgLTM4OTksNyArMzkwNSw3IEBAIGluZGV4 IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgKiBGcmFtZXMgSW4gUHl0aG9uOjogICAgICAgICAg ICBBY2Vzc2luZyBpbmZlcmlvciBzdGFjayBmcmFtZXMgZnJvbSBQeXRob24uCiAgQGVuZCBtZW51 CiAgCi1AQCAtMTg4NjMsNiArMTg4OTgsMTIgQEAgY29tbWFuZCBhcyBoYXZpbmcgb3JpZ2luYXRl ZCBmcm9tIHRoZSB1c2VyIGludm9raW5nIGl0IGludGVyYWN0aXZlbHkuCitAQCAtMTg5OTQsNiAr MTkwMjksMTIgQEAgY29tbWFuZCBhcyBoYXZpbmcgb3JpZ2luYXRlZCBmcm9tIHRoZSB1c2VyIGlu dm9raW5nIGl0IGludGVyYWN0aXZlbHkuCiAgSXQgbXVzdCBiZSBhIGJvb2xlYW4gdmFsdWUuICBJ ZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBAY29kZXtGYWxzZX0uCiAgQGVuZCBkZWZ1bgogIApA QCAtMzkxMiw3ICszOTE4LDcgQEAgaW5kZXggN2IyNjY3NS4uMGUwYzI4OCAxMDA2NDQKICBAZmlu ZGV4IGdkYi5wYXJhbWV0ZXIKICBAZGVmdW4gcGFyYW1ldGVyIHBhcmFtZXRlcgogIFJldHVybiB0 aGUgdmFsdWUgb2YgYSBAdmFsdWV7R0RCTn0gcGFyYW1ldGVyLiAgQHZhcntwYXJhbWV0ZXJ9IGlz IGEKLUBAIC0xODg3OSw2ICsxODkyMCw3IEBAIGEgUHl0aG9uIHZhbHVlIG9mIHRoZSBhcHByb3By aWF0ZSB0eXBlLCBhbmQgcmV0dXJuZWQuCitAQCAtMTkwMTAsNiArMTkwNTEsNyBAQCBhIFB5dGhv biB2YWx1ZSBvZiB0aGUgYXBwcm9wcmlhdGUgdHlwZSwgYW5kIHJldHVybmVkLgogIEBkZWZ1biBo aXN0b3J5IG51bWJlcgogIFJldHVybiBhIHZhbHVlIGZyb20gQHZhbHVle0dEQk59J3MgdmFsdWUg aGlzdG9yeSAoQHB4cmVme1ZhbHVlCiAgSGlzdG9yeX0pLiAgQHZhcntudW1iZXJ9IGluZGljYXRl cyB3aGljaCBoaXN0b3J5IGVsZW1lbnQgdG8gcmV0dXJuLgpAQCAtMzkyMCw3ICszOTI2LDcgQEAg aW5kZXggN2IyNjY3NS4uMGUwYzI4OCAxMDA2NDQKICBJZiBAdmFye251bWJlcn0gaXMgbmVnYXRp dmUsIHRoZW4gQHZhbHVle0dEQk59IHdpbGwgdGFrZSBpdHMgYWJzb2x1dGUgdmFsdWUKICBhbmQg Y291bnQgYmFja3dhcmQgZnJvbSB0aGUgbGFzdCBlbGVtZW50IChpLmUuLCB0aGUgbW9zdCByZWNl bnQgZWxlbWVudCkgdG8KICBmaW5kIHRoZSB2YWx1ZSB0byByZXR1cm4uICBJZiBAdmFye251bWJl cn0gaXMgemVybywgdGhlbiBAdmFsdWV7R0RCTn0gd2lsbAotQEAgLTE4ODkwLDYgKzE4OTMyLDI4 IEBAIElmIG5vIGV4Y2VwdGlvbiBpcyByYWlzZWQsIHRoZSByZXR1cm4gdmFsdWUgaXMgYWx3YXlz IGFuIGluc3RhbmNlIG9mCitAQCAtMTkwMjEsNiArMTkwNjMsMjggQEAgSWYgbm8gZXhjZXB0aW9u IGlzIHJhaXNlZCwgdGhlIHJldHVybiB2YWx1ZSBpcyBhbHdheXMgYW4gaW5zdGFuY2Ugb2YKICBA Y29kZXtnZGIuVmFsdWV9IChAcHhyZWZ7VmFsdWVzIEZyb20gSW5mZXJpb3J9KS4KICBAZW5kIGRl ZnVuCiAgCkBAIC0zOTQ5LDcgKzM5NTUsNyBAQCBpbmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0 NAogIEBmaW5kZXggZ2RiLndyaXRlCiAgQGRlZnVuIHdyaXRlIHN0cmluZwogIFByaW50IGEgc3Ry aW5nIHRvIEB2YWx1ZXtHREJOfSdzIHBhZ2luYXRlZCBzdGFuZGFyZCBvdXRwdXQgc3RyZWFtLgot QEAgLTE4OTA0LDYgKzE4OTY4LDExIEBAIEZsdXNoIEB2YWx1ZXtHREJOfSdzIHBhZ2luYXRlZCBz dGFuZGFyZCBvdXRwdXQgc3RyZWFtLiAgRmx1c2hpbmcKK0BAIC0xOTAzNSw2ICsxOTA5OSwxMSBA QCBGbHVzaCBAdmFsdWV7R0RCTn0ncyBwYWdpbmF0ZWQgc3RhbmRhcmQgb3V0cHV0IHN0cmVhbS4g IEZsdXNoaW5nCiAgZnVuY3Rpb24uCiAgQGVuZCBkZWZ1bgogIApAQCAtMzk2MSw3ICszOTY3LDcg QEAgaW5kZXggN2IyNjY3NS4uMGUwYzI4OCAxMDA2NDQKICBAbm9kZSBFeGNlcHRpb24gSGFuZGxp bmcKICBAc3Vic3Vic2VjdGlvbiBFeGNlcHRpb24gSGFuZGxpbmcKICBAY2luZGV4IHB5dGhvbiBl eGNlcHRpb25zCi1AQCAtMTkwNDAsNiArMTkxMDksMTMgQEAgVGhlIHR5cGUgb2YgdGhpcyBAY29k ZXtnZGIuVmFsdWV9LiAgVGhlIHZhbHVlIG9mIHRoaXMgYXR0cmlidXRlIGlzIGEKK0BAIC0xOTE3 MSw2ICsxOTI0MCwxMyBAQCBUaGUgdHlwZSBvZiB0aGlzIEBjb2Rle2dkYi5WYWx1ZX0uICBUaGUg dmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgaXMgYQogIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUg cHJvdmlkZWQ6CiAgCiAgQHRhYmxlIEBjb2RlCkBAIC0zOTc1LDcgKzM5ODEsNyBAQCBpbmRleCA3 YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAogIEBkZWZtZXRob2QgVmFsdWUgZGVyZWZlcmVuY2UKICBG b3IgcG9pbnRlciBkYXRhIHR5cGVzLCB0aGlzIG1ldGhvZCByZXR1cm5zIGEgbmV3IEBjb2Rle2dk Yi5WYWx1ZX0gb2JqZWN0CiAgd2hvc2UgY29udGVudHMgaXMgdGhlIG9iamVjdCBwb2ludGVkIHRv IGJ5IHRoZSBwb2ludGVyLiAgRm9yIGV4YW1wbGUsIGlmCi1AQCAtMTkxMTEsNiArMTkxODcsOSBA QCBtb2R1bGU6CitAQCAtMTkyNDIsNiArMTkzMTgsOSBAQCBtb2R1bGU6CiAgVGhpcyBmdW5jdGlv biBsb29rcyB1cCBhIHR5cGUgYnkgbmFtZS4gIEB2YXJ7bmFtZX0gaXMgdGhlIG5hbWUgb2YgdGhl CiAgdHlwZSB0byBsb29rIHVwLiAgSXQgbXVzdCBiZSBhIHN0cmluZy4KICAKQEAgLTM5ODUsNyAr Mzk5MSw3IEBAIGluZGV4IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgT3JkaW5hcmlseSwgdGhp cyBmdW5jdGlvbiB3aWxsIHJldHVybiBhbiBpbnN0YW5jZSBvZiBAY29kZXtnZGIuVHlwZX0uCiAg SWYgdGhlIG5hbWVkIHR5cGUgY2Fubm90IGJlIGZvdW5kLCBpdCB3aWxsIHRocm93IGFuIGV4Y2Vw dGlvbi4KICBAZW5kIGRlZnVuCi1AQCAtMTkxNjMsNiArMTkyNDIsMTIgQEAgVGhpcyBpcyBAY29k ZXtUcnVlfSBpZiB0aGUgZmllbGQgaXMgYXJ0aWZpY2lhbCwgdXN1YWxseSBtZWFuaW5nIHRoYXQK K0BAIC0xOTI5NCw2ICsxOTM3MywxMiBAQCBUaGlzIGlzIEBjb2Rle1RydWV9IGlmIHRoZSBmaWVs ZCBpcyBhcnRpZmljaWFsLCB1c3VhbGx5IG1lYW5pbmcgdGhhdAogIGl0IHdhcyBwcm92aWRlZCBi eSB0aGUgY29tcGlsZXIgYW5kIG5vdCB0aGUgdXNlci4gIFRoaXMgYXR0cmlidXRlIGlzCiAgYWx3 YXlzIHByb3ZpZGVkLCBhbmQgaXMgQGNvZGV7RmFsc2V9IGlmIHRoZSBmaWVsZCBpcyBub3QgYXJ0 aWZpY2lhbC4KICAKQEAgLTM5OTgsNyArNDAwNCw3IEBAIGluZGV4IDdiMjY2NzUuLjBlMGMyODgg MTAwNjQ0CiAgQGl0ZW0gYml0c2l6ZQogIElmIHRoZSBmaWVsZCBpcyBwYWNrZWQsIG9yIGlzIGEg Yml0ZmllbGQsIHRoZW4gdGhpcyB3aWxsIGhhdmUgYQogIG5vbi16ZXJvIHZhbHVlLCB3aGljaCBp cyB0aGUgc2l6ZSBvZiB0aGUgZmllbGQgaW4gYml0cy4gIE90aGVyd2lzZSwKLUBAIC0xOTIxNSw3 ICsxOTMwMCw3IEBAIElmIHRoZSB0eXBlIGRvZXMgbm90IGhhdmUgYSB0YXJnZXQsIHRoaXMgbWV0 aG9kIHdpbGwgdGhyb3cgYW4KK0BAIC0xOTM0Niw3ICsxOTQzMSw3IEBAIElmIHRoZSB0eXBlIGRv ZXMgbm90IGhhdmUgYSB0YXJnZXQsIHRoaXMgbWV0aG9kIHdpbGwgdGhyb3cgYW4KICBleGNlcHRp b24uCiAgQGVuZCBkZWZtZXRob2QKICAKQEAgLTQwMDcsNyArNDAxMyw3IEBAIGluZGV4IDdiMjY2 NzUuLjBlMGMyODggMTAwNjQ0CiAgSWYgdGhpcyBAY29kZXtnZGIuVHlwZX0gaXMgYW4gaW5zdGFu dGlhdGlvbiBvZiBhIHRlbXBsYXRlLCB0aGlzIHdpbGwKICByZXR1cm4gYSBuZXcgQGNvZGV7Z2Ri LlR5cGV9IHdoaWNoIHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlCiAgQHZhcntufXRoIHRlbXBs YXRlIGFyZ3VtZW50LgotQEAgLTE5MjIzLDcgKzE5MzA4LDggQEAgcmV0dXJuIGEgbmV3IEBjb2Rl e2dkYi5UeXBlfSB3aGljaCByZXByZXNlbnRzIHRoZSB0eXBlIG9mIHRoZQorQEAgLTE5MzU0LDcg KzE5NDM5LDggQEAgcmV0dXJuIGEgbmV3IEBjb2Rle2dkYi5UeXBlfSB3aGljaCByZXByZXNlbnRz IHRoZSB0eXBlIG9mIHRoZQogIElmIHRoaXMgQGNvZGV7Z2RiLlR5cGV9IGlzIG5vdCBhIHRlbXBs YXRlIHR5cGUsIHRoaXMgd2lsbCB0aHJvdyBhbgogIGV4Y2VwdGlvbi4gIE9yZGluYXJpbHksIG9u bHkgQ0B0eysrfSBjb2RlIHdpbGwgaGF2ZSB0ZW1wbGF0ZSB0eXBlcy4KICAKQEAgLTQwMTcsNyAr NDAyMyw3IEBAIGluZGV4IDdiMjY2NzUuLjBlMGMyODggMTAwNjQ0CiAgQGVuZCBkZWZtZXRob2QK ICBAZW5kIHRhYmxlCiAgCi1AQCAtMTk1NzcsNiArMTk2NjMsMTIxIEBAIGltcG9ydCBnZGIubGli c3RkY3h4LnY2CitAQCAtMTk3MDgsNiArMTk3OTQsMTIxIEBAIGltcG9ydCBnZGIubGlic3RkY3h4 LnY2CiAgZ2RiLmxpYnN0ZGN4eC52Ni5yZWdpc3Rlcl9wcmludGVycyAoZ2RiLmN1cnJlbnRfb2Jq ZmlsZSAoKSkKICBAZW5kIHNtYWxsZXhhbXBsZQogIApAQCAtNDEzOSw3ICs0MTQ1LDcgQEAgaW5k ZXggN2IyNjY3NS4uMGUwYzI4OCAxMDA2NDQKICBAbm9kZSBDb21tYW5kcyBJbiBQeXRob24KICBA c3Vic3Vic2VjdGlvbiBDb21tYW5kcyBJbiBQeXRob24KICAKLUBAIC0xOTgyOSw2ICsyMDAzMCwx MzUgQEAgcmVnaXN0cmF0aW9uIG9mIHRoZSBjb21tYW5kIHdpdGggQHZhbHVle0dEQk59LiAgRGVw ZW5kaW5nIG9uIGhvdyB0aGUKK0BAIC0xOTk2MCw2ICsyMDE2MSwxMzUgQEAgcmVnaXN0cmF0aW9u IG9mIHRoZSBjb21tYW5kIHdpdGggQHZhbHVle0dEQk59LiAgRGVwZW5kaW5nIG9uIGhvdyB0aGUK ICBQeXRob24gY29kZSBpcyByZWFkIGludG8gQHZhbHVle0dEQk59LCB5b3UgbWF5IG5lZWQgdG8g aW1wb3J0IHRoZQogIEBjb2Rle2dkYn0gbW9kdWxlIGV4cGxpY2l0bHkuCiAgCkBAIC00Mjc1LDcg KzQyODEsNyBAQCBpbmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAogIEBub2RlIEZ1bmN0aW9u cyBJbiBQeXRob24KICBAc3Vic3Vic2VjdGlvbiBXcml0aW5nIG5ldyBjb252ZW5pZW5jZSBmdW5j dGlvbnMKICAKLUBAIC0xOTkzMyw2ICsyMDI2Myw4MiBAQCB3aGljaCBpcyB1c2VkIHRvIGZvcm1h dCB0aGUgdmFsdWUuICBAeHJlZntQcmV0dHkgUHJpbnRpbmd9LCBmb3IgbW9yZQorQEAgLTIwMDY0 LDYgKzIwMzk0LDgyIEBAIHdoaWNoIGlzIHVzZWQgdG8gZm9ybWF0IHRoZSB2YWx1ZS4gIEB4cmVm e1ByZXR0eSBQcmludGluZ30sIGZvciBtb3JlCiAgaW5mb3JtYXRpb24uCiAgQGVuZCBkZWZpdmFy CiAgCkBAIC00MzU4LDcgKzQzNjQsNyBAQCBpbmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAog IEBub2RlIEZyYW1lcyBJbiBQeXRob24KICBAc3Vic3Vic2VjdGlvbiBBY2Vzc2luZyBpbmZlcmlv ciBzdGFjayBmcmFtZXMgZnJvbSBQeXRob24uCiAgCi1AQCAtMTk5OTcsNiArMjA0MDMsMTQgQEAg ZnVuY3Rpb24gdG8gYSBzdHJpbmcuCitAQCAtMjAxMjgsNiArMjA1MzQsMTQgQEAgZnVuY3Rpb24g dG8gYSBzdHJpbmcuCiAgUmV0dXJucyB0aGUgZnJhbWUncyByZXN1bWUgYWRkcmVzcy4KICBAZW5k IGRlZm1ldGhvZAogIApAQCAtNDM3Myw3ICs0Mzc5LDcgQEAgaW5kZXggN2IyNjY3NS4uMGUwYzI4 OCAxMDA2NDQKICBAZGVmbWV0aG9kIEZyYW1lIG9sZGVyCiAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0 IGNhbGxlZCB0aGlzIGZyYW1lLgogIEBlbmQgZGVmbWV0aG9kCi1AQCAtMjAwMDUsMTAgKzIwNDE5 LDE4IEBAIFJldHVybiB0aGUgZnJhbWUgdGhhdCBjYWxsZWQgdGhpcyBmcmFtZS4KK0BAIC0yMDEz NiwxMCArMjA1NTAsMTggQEAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlzIGZyYW1l LgogIFJldHVybiB0aGUgZnJhbWUgY2FsbGVkIGJ5IHRoaXMgZnJhbWUuCiAgQGVuZCBkZWZtZXRo b2QKICAKQEAgLTQzOTIsMzA0ICs0Mzk4LDExIEBAIGluZGV4IDdiMjY2NzUuLjBlMGMyODggMTAw NjQ0CiAgQGVuZCB0YWJsZQogIAogIEBub2RlIEludGVycHJldGVycwotQEAgLTIzMzYwLDYgKzIz NzgyLDggQEAgYWNjZXNzIHRoaXMgZnVuY3Rpb25hbGl0eToKLSBAaXRlbSBAc3Ryb25ne09wZXJh dGlvbn0KLSBAdGFiIEBzdHJvbmd7RGVzY3JpcHRpb259Ci0gCi0rQGl0ZW0gQGNvZGV7LWVuYWJs ZS1wcmV0dHktcHJpbnRpbmd9Ci0rQHRhYiBlbmFibGUgUHl0aG9uLWJhc2VkIHByZXR0eS1wcmlu dGluZwotIEBpdGVtIEBjb2Rley12YXItY3JlYXRlfQotIEB0YWIgY3JlYXRlIGEgdmFyaWFibGUg b2JqZWN0Ci0gQGl0ZW0gQGNvZGV7LXZhci1kZWxldGV9Ci1AQCAtMjMzODgsNiArMjM4MTIsOCBA QCBhY2Nlc3MgdGhpcyBmdW5jdGlvbmFsaXR5OgotIEB0YWIgdXBkYXRlIHRoZSB2YXJpYWJsZSBh bmQgaXRzIGNoaWxkcmVuCi0gQGl0ZW0gQGNvZGV7LXZhci1zZXQtZnJvemVufQotIEB0YWIgc2V0 IGZyb3plbmVzcyBhdHRyaWJ1dGUKLStAaXRlbSBAY29kZXstdmFyLXNldC11cGRhdGUtcmFuZ2V9 Ci0rQHRhYiBzZXQgcmFuZ2Ugb2YgY2hpbGRyZW4gdG8gZGlzcGxheSBvbiB1cGRhdGUKLSBAZW5k IG11bHRpdGFibGUKLSAKLSBJbiB0aGUgbmV4dCBzdWJzZWN0aW9uIHdlIGRlc2NyaWJlIGVhY2gg b3BlcmF0aW9uIGluIGRldGFpbCBhbmQgc3VnZ2VzdAotQEAgLTIzMzk1LDYgKzIzODIxLDIzIEBA IGhvdyBpdCBjYW4gYmUgdXNlZC4KLSAKLSBAc3ViaGVhZGluZyBEZXNjcmlwdGlvbiBBbmQgVXNl IG9mIE9wZXJhdGlvbnMgb24gVmFyaWFibGUgT2JqZWN0cwotIAotK0BzdWJoZWFkaW5nIFRoZSBA Y29kZXstZW5hYmxlLXByZXR0eS1wcmludGluZ30gQ29tbWFuZAotK0BmaW5kZXggLWVuYWJsZS1w cmV0dHktcHJpbnRpbmcKLSsKLStAc21hbGxleGFtcGxlCi0rLWVuYWJsZS1wcmV0dHktcHJpbnRp bmcKLStAZW5kIHNtYWxsZXhhbXBsZQotKwotK0B2YWx1ZXtHREJOfSBhbGxvd3MgUHl0aG9uLWJh c2VkIHZpc3VhbGl6ZXJzIHRvIGFmZmVjdCB0aGUgb3V0cHV0IG9mIHRoZQotK01JIHZhcmlhYmxl IG9iamVjdCBjb21tYW5kcy4gIEhvd2V2ZXIsIGJlY2F1c2UgdGhlcmUgd2FzIG5vIHdheSB0bwot K2ltcGxlbWVudCB0aGlzIGluIGEgZnVsbHkgYmFja3dhcmQtY29tcGF0aWJsZSB3YXksIGEgZnJv bnQgZW5kIG11c3QKLStyZXF1ZXN0IHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IGJlIGVuYWJsZWQu Ci0rCi0rT25jZSBzZW50LCB0aGlzIGNvbW1hbmQgY2Fubm90IGJlIHVuZG9uZS4KLSsKLStOb3Rl IHRoYXQgaWYgUHl0aG9uIHN1cHBvcnQgaGFzIG5vdCBiZWVuIGNvbXBpbGVkIGludG8gQHZhbHVl e0dEQk59LAotK3RoaXMgY29tbWFuZCB3aWxsIHN0aWxsIHN1Y2NlZWQuCi0rCi0gQHN1YmhlYWRp bmcgVGhlIEBjb2Rley12YXItY3JlYXRlfSBDb21tYW5kCi0gQGZpbmRleCAtdmFyLWNyZWF0ZQot IAotQEAgLTIzNDM0LDE1ICsyMzg3Nyw1NSBAQCBiZWdpbiB3aXRoIGEgQHNhbXB7Kn0pLCBvciBv bmUgb2YgdGhlIGZvbGxvd2luZzoKLSBAc2FtcHskQHZhcntyZWduYW1lfX0gLS0tIGEgQ1BVIHJl Z2lzdGVyIG5hbWUKLSBAZW5kIGl0ZW1pemUKLSAKLStBIHZhcm9iaidzIGNvbnRlbnRzIG1heSBi ZSBwcm92aWRlZCBieSBhIFB5dGhvbi1iYXNlZCBwcmV0dHktcHJpbnRlci4gIEluIHRoaXMKLStj YXNlIHRoZSB2YXJvYmogaXMga25vd24gYXMgYSBAZGZue2R5bmFtaWMgdmFyb2JqfS4gIER5bmFt aWMgdmFyb2JqcwotK2hhdmUgc2xpZ2h0bHkgZGlmZmVyZW50IHNlbWFudGljcyBpbiBzb21lIGNh c2VzLiAgSWYgdGhlCi0rQGNvZGV7LWVuYWJsZS1wcmV0dHktcHJpbnRpbmd9IGNvbW1hbmQgaXMg bm90IHNlbnQsIHRoZW4gQHZhbHVle0dEQk59Ci0rd2lsbCBuZXZlciBjcmVhdGUgYSBkeW5hbWlj IHZhcm9iai4gIFRoaXMgZW5zdXJlcyBiYWNrd2FyZAotK2NvbXBhdGliaWxpdHkgZm9yIGV4aXN0 aW5nIGNsaWVudHMuCi0rCi0gQHN1YnN1YmhlYWRpbmcgUmVzdWx0Ci0gCi0tVGhpcyBvcGVyYXRp b24gcmV0dXJucyB0aGUgbmFtZSwgbnVtYmVyIG9mIGNoaWxkcmVuIGFuZCB0aGUgdHlwZSBvZiB0 aGUKLS1vYmplY3QgY3JlYXRlZC4gIFR5cGUgaXMgcmV0dXJuZWQgYXMgYSBzdHJpbmcgYXMgdGhl IG9uZXMgZ2VuZXJhdGVkIGJ5Ci0tdGhlIEB2YWx1ZXtHREJOfSBDTEkuICBJZiBhIGZpeGVkIHZh cmlhYmxlIG9iamVjdCBpcyBib3VuZCB0byBhCi0tc3BlY2lmaWMgdGhyZWFkLCB0aGUgdGhyZWFk IGlzIGlzIGFsc28gcHJpbnRlZDoKLStUaGlzIG9wZXJhdGlvbiByZXR1cm5zIGF0dHJpYnV0ZXMg b2YgdGhlIG5ld2x5LWNyZWF0ZWQgdmFyb2JqLiAgVGhlc2UKLStpbmNsdWRlLCBidXQgYXJlIG5v dCBsaW1pdGVkIHRvOgotKwotK0B0YWJsZSBAc2FtcAotK0BpdGVtIG5hbWUKLStUaGUgbmFtZSBv ZiB0aGUgdmFyb2JqLgotKwotK0BpdGVtIG51bWNoaWxkCi0rVGhlIG51bWJlciBvZiBjaGlsZHJl biBvZiB0aGUgdmFyb2JqLiAgVGhpcyBudW1iZXIgaXMgbm90IG5lY2Vzc2FyaWx5Ci0rcmVsaWFi bGUgZm9yIGEgZHluYW1pYyB2YXJvYmouICBJbnN0ZWFkLCB5b3UgbXVzdCBleGFtaW5lIHRoZQot K0BzYW1we2hhc19tb3JlfSBhdHRyaWJ1dGUuCi0rCi0rQGl0ZW0gdmFsdWUKLStUaGUgdmFyb2Jq J3Mgc2NhbGFyIHZhbHVlLiAgRm9yIGEgdmFyb2JqIHdob3NlIHR5cGUgaXMgc29tZSBzb3J0IG9m Ci0rYWdncmVnYXRlIChlLmcuLCBhIEBjb2Rle3N0cnVjdH0pLCBvciBmb3IgYSBkeW5hbWljIHZh cm9iaiwgdGhpcyB2YWx1ZQotK3dpbGwgbm90IGJlIGludGVyZXN0aW5nLgotKwotK0BpdGVtIHR5 cGUKLStUaGUgdmFyb2JqJ3MgdHlwZS4gIFRoaXMgaXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24g b2YgdGhlIHR5cGUsIGFzCi0rd291bGQgYmUgcHJpbnRlZCBieSB0aGUgQHZhbHVle0dEQk59IENM SS4KLSsKLStAaXRlbSB0aHJlYWQtaWQKLStJZiBhIGZpeGVkIHZhcmlhYmxlIG9iamVjdCBpcyBi b3VuZCB0byBhIHNwZWNpZmljIHRocmVhZCwgdGhlbiB0aGlzIGlzCi0rdGhlIHRocmVhZCdzIGlk ZW50aWZpZXIuCi0rCi0rQGl0ZW0gaGFzX21vcmUKLStGb3IgYSBkeW5hbWljIHZhcm9iaiwgdGhp cyBpbmRpY2F0ZXMgd2hldGhlciB0aGVyZSBhcHBlYXIgdG8gYmUgYW55Ci0rY2hpbGRyZW4gYXZh aWxhYmxlLiAgRm9yIGEgbm9uLWR5bmFtaWMgdmFyb2JqLCB0aGlzIHdpbGwgYmUgMC4KLSsKLStA aXRlbSBkeW5hbWljCi0rVGhpcyBhdHRyaWJ1dGUgd2lsbCBiZSBwcmVzZW50IGFuZCBoYXZlIHRo ZSB2YWx1ZSBAc2FtcHsxfSBpZiB0aGUKLSt2YXJvYmogaXMgYSBkeW5hbWljIHZhcm9iai4gIElm IHRoZSB2YXJvYmogaXMgbm90IGEgZHluYW1pYyB2YXJvYmosCi0rdGhlbiB0aGlzIGF0dHJpYnV0 ZSB3aWxsIG5vdCBiZSBwcmVzZW50LgotK0BlbmQgdGFibGUKLSsKLStUeXBpY2FsIG91dHB1dCB3 aWxsIGxvb2sgbGlrZSB0aGlzOgotIAotIEBzbWFsbGV4YW1wbGUKLS0gbmFtZT0iQHZhcntuYW1l fSIsbnVtY2hpbGQ9IkB2YXJ7Tn0iLHR5cGU9IkB2YXJ7dHlwZX0iLHRocmVhZC1pZD0iQHZhcntN fSIKLSsgbmFtZT0iQHZhcntuYW1lfSIsbnVtY2hpbGQ9IkB2YXJ7Tn0iLHR5cGU9IkB2YXJ7dHlw ZX0iLHRocmVhZC1pZD0iQHZhcntNfSIsCi0rICBoYXNfbW9yZT0iQHZhcntoYXNfbW9yZX0iCi0g QGVuZCBzbWFsbGV4YW1wbGUKLSAKLSAKLUBAIC0yMzUyMCw2ICsyNDAwMywxMCBAQCBSZXR1cm5z IHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gb2YgYSB2YXJpYWJsZSBvYmplY3QgQHZhcntuYW1lfToK LSAgbnVtY2hpbGQ9QHZhcntufQotIEBlbmQgc21hbGxleGFtcGxlCi0gCi0rTm90ZSB0aGF0IHRo aXMgbnVtYmVyIGlzIG5vdCBjb21wbGV0ZWx5IHJlbGlhYmxlIGZvciBhIGR5bmFtaWMgdmFyb2Jq LgotK0l0IHdpbGwgcmV0dXJuIHRoZSBjdXJyZW50IG51bWJlciBvZiBjaGlsZHJlbiwgYnV0IG1v cmUgY2hpbGRyZW4gbWF5Ci0rYmUgYXZhaWxhYmxlLgotKwotIAotIEBzdWJoZWFkaW5nIFRoZSBA Y29kZXstdmFyLWxpc3QtY2hpbGRyZW59IENvbW1hbmQKLSBAZmluZGV4IC12YXItbGlzdC1jaGls ZHJlbgotQEAgLTIzNTI3LDcgKzI0MDE0LDcgQEAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNoaWxk cmVuIG9mIGEgdmFyaWFibGUgb2JqZWN0IEB2YXJ7bmFtZX06Ci0gQHN1YnN1YmhlYWRpbmcgU3lu b3BzaXMKLSAKLSBAc21hbGxleGFtcGxlCi0tIC12YXItbGlzdC1jaGlsZHJlbiBbQHZhcntwcmlu dC12YWx1ZXN9XSBAdmFye25hbWV9Ci0rIC12YXItbGlzdC1jaGlsZHJlbiBbQHZhcntwcmludC12 YWx1ZXN9XSBAdmFye25hbWV9IFtAdmFye2Zyb219IEB2YXJ7dG99XQotIEBlbmQgc21hbGxleGFt cGxlCi0gQGFuY2hvcnstdmFyLWxpc3QtY2hpbGRyZW59Ci0gCi1AQCAtMjM1NDAsNiArMjQwMjcs MjIgQEAgdmFsdWVzOyBhbmQgaWYgaXQgaXMgMiBvciBAY29kZXstLXNpbXBsZS12YWx1ZXN9IHBy aW50IHRoZSBuYW1lIGFuZAotIHZhbHVlIGZvciBzaW1wbGUgZGF0YSB0eXBlcyBhbmQganVzdCB0 aGUgbmFtZSBmb3IgYXJyYXlzLCBzdHJ1Y3R1cmVzCi0gYW5kIHVuaW9ucy4KLSAKLStAdmFye2Zy b219IGFuZCBAdmFye3RvfSwgaWYgc3BlY2lmaWVkLCBpbmRpY2F0ZSB0aGUgcmFuZ2Ugb2YgY2hp bGRyZW4KLSt0byByZXBvcnQuICBJZiBAdmFye2Zyb219IG9yIEB2YXJ7dG99IGlzIGxlc3MgdGhh biB6ZXJvLCB0aGUgcmFuZ2UgaXMKLStyZXNldCBhbmQgYWxsIGNoaWxkcmVuIHdpbGwgYmUgcmVw b3J0ZWQuICBPdGhlcndpc2UsIGNoaWxkcmVuIHN0YXJ0aW5nCi0rYXQgQHZhcntmcm9tfSAoemVy by1iYXNlZCkgYW5kIGVuZGluZyBqdXN0IGJlZm9yZSBAdmFye3RvfSB3aWxsIGJlCi0rcmVwb3J0 ZWQuCi0rCi0rSWYgYSBjaGlsZCByYW5nZSBpcyByZXF1ZXN0ZWQsIGl0IHdpbGwgbm90IGFmZmVj dCB0aGUgcmFuZ2Ugb2YKLStjaGlsZHJlbiByZXBvcnRlZCBieSBhIGZ1dHVyZSBjYWxsIHRvIEBj b2Rley12YXItdXBkYXRlfS4gIEZvciB0aGlzLAotK3lvdSBtdXN0IGluc3RlYWQgdXNlIEBjb2Rl ey12YXItc2V0LXVwZGF0ZS1yYW5nZX0uICBUaGUgaW50ZW50IG9mIHRoaXMKLSthcHByb2FjaCBp cyB0byBlbmFibGUgYSBmcm9udCBlbmQgdG8gaW1wbGVtZW50IGFueSB1cGRhdGUgYXBwcm9hY2gg aXQKLStsaWtlczsgZm9yIGV4YW1wbGUsIHNjcm9sbGluZyBhIHZpZXcgbWF5IGNhdXNlIHRoZSBm cm9udCBlbmQgdG8KLStyZXF1ZXN0IG1vcmUgY2hpbGRyZW4gd2l0aCBAY29kZXstdmFyLWxpc3Qt Y2hpbGRyZW59LCBhbmQgdGhlbiB0aGUKLStmcm9udCBlbmQgY291bGQgY2FsbCBAY29kZXstdmFy LXNldC11cGRhdGUtcmFuZ2V9IHdpdGggYSBkaWZmZXJlbnQKLStyYW5nZSB0byBlbnN1cmUgdGhh dCBmdXR1cmUgdXBkYXRlcyBhcmUgcmVzdHJpY3RlZCB0byBqdXN0IHRoZSB2aXNpYmxlCi0raXRl bXMuCi0rCi0gRm9yIGVhY2ggY2hpbGQgdGhlIGZvbGxvd2luZyByZXN1bHRzIGFyZSByZXR1cm5l ZDoKLSAKLSBAdGFibGUgQHZhcgotQEAgLTIzNTU2LDggKzI0MDU5LDEzIEBAIGRlc2lnbmF0ZSBh Y2Nlc3MgcXVhbGlmaWVycy4gIEZvciB0aGVzZSBwc2V1ZG8gY2hpbGRyZW4gQHZhcntleHB9IGlz Ci0gQHNhbXB7cHVibGljfSwgQHNhbXB7cHJpdmF0ZX0sIG9yIEBzYW1we3Byb3RlY3RlZH0uICBJ biB0aGlzIGNhc2UgdGhlCi0gdHlwZSBhbmQgdmFsdWUgYXJlIG5vdCBwcmVzZW50LgotIAotK0Zv ciBhIGR5bmFtaWMgdmFyb2JqLCB0aGlzIHZhbHVlIGNhbm5vdCByZWxpYWJseSBiZSB1c2VkIHRv IGZvcm0gYW4KLStleHByZXNzaW9uLiAgQWxzbywgYSBkeW5hbWljIHZhcm9iaiB3aWxsIG5vdCBy ZXBvcnQgdGhlIGFjY2VzcwotK3F1YWxpZnlpbmcgcHNldWRvLWNoaWxkcmVuLCByZWdhcmRsZXNz IG9mIHRoZSBsYW5ndWFnZS4KLSsKLSBAaXRlbSBudW1jaGlsZAotLU51bWJlciBvZiBjaGlsZHJl biB0aGlzIGNoaWxkIGhhcy4KLStOdW1iZXIgb2YgY2hpbGRyZW4gdGhpcyBjaGlsZCBoYXMuICBG b3IgYSBkeW5hbWljIHZhcm9iaiwgdGhpcyB3aWxsIGJlCi0rMC4KLSAKLSBAaXRlbSB0eXBlCi0g VGhlIHR5cGUgb2YgdGhlIGNoaWxkLgotQEAgLTIzNTczLDYgKzI0MDgxLDE5IEBAIE90aGVyd2lz ZSB0aGlzIHJlc3VsdCBpcyBub3QgcHJlc2VudC4KLSBJZiB0aGUgdmFyaWFibGUgb2JqZWN0IGlz IGZyb3plbiwgdGhpcyB2YXJpYWJsZSB3aWxsIGJlIHByZXNlbnQgd2l0aCBhIHZhbHVlIG9mIDEu Ci0gQGVuZCB0YWJsZQotIAotK1RoZSByZXN1bHQgbWF5IGhhdmUgaXRzIG93biBhdHRyaWJ1dGVz OgotKwotK0B0YWJsZSBAc2FtcAotK0BpdGVtIGRpc3BsYXloaW50Ci0rQSBkeW5hbWljIHZhcm9i aiBjYW4gc3VwcGx5IGEgZGlzcGxheSBoaW50IHRvIHRoZSBmcm9udCBlbmQuICBUaGUKLStjb21l cyBkaXJlY3RseSBmcm9tIHRoZSBQeXRob24gcHJldHR5LXByaW50ZXIgb2JqZWN0J3MKLStAY29k ZXtkaXNwbGF5X2hpbnR9IG1ldGhvZC4gIEB4cmVme1ByZXR0eSBQcmludGluZ30uCi0rCi0rQGl0 ZW0gaGFzX21vcmUKLStUaGlzIGlzIGFuIGludGVnZXIgYXR0cmlidXRlIHdoaWNoIGlzIG5vbnpl cm8gaWYgdGhlcmUgYXJlIGNoaWxkcmVuCi0rcmVtYWluaW5nIGFmdGVyIHRoZSBlbmQgb2YgdGhl IHNlbGVjdGVkIHJhbmdlLgotK0BlbmQgdGFibGUKLSsKLSBAc3Vic3ViaGVhZGluZyBFeGFtcGxl Ci0gCi0gQHNtYWxsZXhhbXBsZQotQEAgLTIzNjQ5LDYgKzI0MTcwLDkgQEAgcmVzdWx0IGNhbiBi ZSB1c2VkIG9ubHkgZm9yIFVJIHByZXNlbnRhdGlvbi4gIFR5cGljYWwgdXNlIG9mCi0gdGhlIEBj b2Rley12YXItaW5mby1wYXRoLWV4cHJlc3Npb259IGNvbW1hbmQgaXMgY3JlYXRpbmcgYSAKLSB3 YXRjaHBvaW50IGZyb20gYSB2YXJpYWJsZSBvYmplY3QuCi0gCi0rVGhpcyBjb21tYW5kIGlzIGN1 cnJlbnRseSBub3QgdmFsaWQgZm9yIGNoaWxkcmVuIG9mIGEgZHluYW1pYyB2YXJvYmosCi0rYW5k IHdpbGwgZ2l2ZSBhbiBlcnJvciB3aGVuIGludm9rZWQgb24gb25lLgotKwotIEZvciBleGFtcGxl LCBzdXBwb3NlIEBjb2Rle0N9IGlzIGEgQ0B0eysrfSBjbGFzcywgZGVyaXZlZCBmcm9tIGNsYXNz Ci0gQGNvZGV7QmFzZX0sIGFuZCB0aGF0IHRoZSBAY29kZXtCYXNlfSBjbGFzcyBoYXMgYSBtZW1i ZXIgY2FsbGVkCi0gQGNvZGV7bV9zaXplfS4gIEFzc3VtZSBhIHZhcmlhYmxlIEBjb2Rle2N9IGlz IGhhcyB0aGUgdHlwZSBvZgotQEAgLTIzNzU0LDYgKzI0Mjc4LDY4IEBAIFdpdGggdGhlIEBzYW1w eyp9IHBhcmFtZXRlciwgaWYgYSB2YXJpYWJsZSBvYmplY3QgaXMgYm91bmQgdG8gYQotIGN1cnJl bnRseSBydW5uaW5nIHRocmVhZCwgaXQgd2lsbCBub3QgYmUgdXBkYXRlZCwgd2l0aG91dCBhbnkK LSBkaWFnbm9zdGljLgotIAotK0lmIEBjb2Rley12YXItc2V0LXVwZGF0ZS1yYW5nZX0gd2FzIHBy ZXZpb3VzbHkgdXNlZCBvbiBhIHZhcm9iaiwgdGhlbgotK29ubHkgdGhlIHNlbGVjdGVkIHJhbmdl IG9mIGNoaWxkcmVuIHdpbGwgYmUgcmVwb3J0ZWQuCi0rCi0rQGNvZGV7LXZhci11cGRhdGV9IHJl cG9ydHMgYWxsIHRoZSBjaGFuZ2VkIHZhcm9ianMgaW4gYSB0dXBsZSBuYW1lZAotK0BzYW1we2No YW5nZWxpc3R9LgotKwotK0VhY2ggaXRlbSBpbiB0aGUgY2hhbmdlIGxpc3QgaXMgaXRzZWxmIGEg dHVwbGUgaG9sZGluZzoKLSsKLStAdGFibGUgQHNhbXAKLStAaXRlbSBuYW1lCi0rVGhlIG5hbWUg b2YgdGhlIHZhcm9iai4KLSsKLStAaXRlbSB2YWx1ZQotK0lmIHZhbHVlcyB3ZXJlIHJlcXVlc3Rl ZCBmb3IgdGhpcyB1cGRhdGUsIHRoZW4gdGhpcyBmaWVsZCB3aWxsIGJlCi0rcHJlc2VudCBhbmQg d2lsbCBob2xkIHRoZSB2YWx1ZSBvZiB0aGUgdmFyb2JqLgotKwotK0BpdGVtIGluX3Njb3BlCi0r VGhpcyBpcyBhIHN0cmluZywgZWl0aGVyIEBzYW1we2ZhbHNlfSBpZiB0aGUgdmFyb2JqIGlzIG5v dCBpbiBzY29wZSwKLStvciBAc2FtcHt0cnVlfSBpZiBpdCBpcyBpbiBzY29wZS4KLSsKLStAaXRl bSB0eXBlX2NoYW5nZWQKLStUaGlzIGlzIG9ubHkgcHJlc2VudCBpZiB0aGUgdmFyb2JqIGlzIHN0 aWxsIHZhbGlkLiAgSWYgdGhlIHR5cGUKLStjaGFuZ2VkLCB0aGVuIHRoaXMgd2lsbCBiZSB0aGUg c3RyaW5nIEBzYW1we3RydWV9OyBvdGhlcndpc2UgaXQgd2lsbAotK2JlIEBzYW1we2ZhbHNlfS4K LSsKLStAaXRlbSBuZXdfdHlwZQotK0lmIHRoZSB2YXJvYmoncyB0eXBlIGNoYW5nZWQsIHRoZW4g dGhpcyBmaWVsZCB3aWxsIGJlIHByZXNlbnQgYW5kIHdpbGwKLStob2xkIHRoZSBuZXcgdHlwZS4K LSsKLStAaXRlbSBuZXdfbnVtX2NoaWxkcmVuCi0rRm9yIGEgZHluYW1pYyB2YXJvYmosIGlmIHRo ZSBudW1iZXIgb2YgY2hpbGRyZW4gY2hhbmdlZCwgb3IgaWYgdGhlCi0rdHlwZSBjaGFuZ2VkLCB0 aGlzIHdpbGwgYmUgdGhlIG5ldyBudW1iZXIgb2YgY2hpbGRyZW4uCi0rCi0rVGhlIEBzYW1we251 bWNoaWxkfSBmaWVsZCBpbiBvdGhlciB2YXJvYmogcmVzcG9uc2VzIGlzIGdlbmVyYWxseSBub3QK LSt2YWxpZCBmb3IgYSBkeW5hbWljIHZhcm9iaiAtLSBpdCB3aWxsIHNob3cgdGhlIG51bWJlciBv ZiBjaGlsZHJlbiB0aGF0Ci0rQHZhbHVle0dEQk59IGtub3dzIGFib3V0LCBidXQgYmVjYXVzZSBk eW5hbWljIHZhcm9ianMgbGF6aWx5Ci0raW5zdGFudGlhdGUgdGhlaXIgY2hpbGRyZW4sIHRoaXMg d2lsbCBub3QgcmVmbGVjdCB0aGUgbnVtYmVyIG9mCi0rY2hpbGRyZW4gd2hpY2ggbWF5IGJlIGF2 YWlsYWJsZS4KLSsKLStUaGUgQHNhbXB7bmV3X251bV9jaGlsZHJlbn0gYXR0cmlidXRlIG9ubHkg cmVwb3J0cyBjaGFuZ2VzIHRvIHRoZQotK251bWJlciBvZiBjaGlsZHJlbiBrbm93biBieSBAdmFs dWV7R0RCTn0uICBUaGlzIGlzIHRoZSBvbmx5IHdheSB0bwotK2RldGVjdCB3aGV0aGVyIGFuIHVw ZGF0ZSBoYXMgcmVtb3ZlZCBjaGlsZHJlbiAod2hpY2ggbmVjZXNzYXJpbHkgY2FuCi0rb25seSBo YXBwZW4gYXQgdGhlIGVuZCBvZiB0aGUgdXBkYXRlIHJhbmdlKS4KLSsKLStAaXRlbSBkaXNwbGF5 aGludAotK1RoZSBkaXNwbGF5IGhpbnQsIGlmIGFueS4KLSsKLStAaXRlbSBoYXNfbW9yZQotK1Ro aXMgaXMgYW4gaW50ZWdlciB2YWx1ZSwgd2hpY2ggd2lsbCBiZSAxIGlmIHRoZXJlIGFyZSBtb3Jl IGNoaWxkcmVuCi0rYXZhaWxhYmxlIG91dHNpZGUgdGhlIHZhcm9iaidzIHVwZGF0ZSByYW5nZS4K LSsKLStAaXRlbSBkeW5hbWljCi0rVGhpcyBhdHRyaWJ1dGUgd2lsbCBiZSBwcmVzZW50IGFuZCBo YXZlIHRoZSB2YWx1ZSBAc2FtcHsxfSBpZiB0aGUKLSt2YXJvYmogaXMgYSBkeW5hbWljIHZhcm9i ai4gIElmIHRoZSB2YXJvYmogaXMgbm90IGEgZHluYW1pYyB2YXJvYmosCi0rdGhlbiB0aGlzIGF0 dHJpYnV0ZSB3aWxsIG5vdCBiZSBwcmVzZW50LgotKwotK0BpdGVtIG5ld19jaGlsZHJlbgotK0lm IG5ldyBjaGlsZHJlbiB3ZXJlIGFkZGVkIHRvIGEgZHluYW1pYyB2YXJvYmogd2l0aGluIHRoZSBz ZWxlY3RlZAotK3VwZGF0ZSByYW5nZSAoYXMgc2V0IGJ5IEBjb2Rley12YXItc2V0LXVwZGF0ZS1y YW5nZX0pLCB0aGVuIHRoZXkgd2lsbAotK2JlIGxpc3RlZCBpbiB0aGlzIGF0dHJpYnV0ZS4KLStA ZW5kIHRhYmxlCi0rCi0gQHN1YnN1YmhlYWRpbmcgRXhhbXBsZQotIAotIEBzbWFsbGV4YW1wbGUK LUBAIC0yMzgyMSw2ICsyNDQwNywzMiBAQCBVbmZyZWV6aW5nIGEgdmFyaWFibGUgZG9lcyBub3Qg dXBkYXRlIGl0LCBvbmx5IHN1YnNlcXVlbnQKLSAoZ2RiKQotIEBlbmQgc21hbGxleGFtcGxlCi0g Ci0rQHN1YmhlYWRpbmcgVGhlIEBjb2Rley12YXItc2V0LXVwZGF0ZS1yYW5nZX0gY29tbWFuZAot K0BmaW5kZXggLXZhci1zZXQtdXBkYXRlLXJhbmdlCi0rQGFuY2hvcnstdmFyLXNldC11cGRhdGUt cmFuZ2V9Ci0rCi0rQHN1YnN1YmhlYWRpbmcgU3lub3BzaXMKLSsKLStAc21hbGxleGFtcGxlCi0r IC12YXItc2V0LXVwZGF0ZS1yYW5nZSBAdmFye25hbWV9IEB2YXJ7ZnJvbX0gQHZhcnt0b30KLStA ZW5kIHNtYWxsZXhhbXBsZQotKwotK1NldCB0aGUgcmFuZ2Ugb2YgY2hpbGRyZW4gdG8gYmUgcmV0 dXJuZWQgYnkgZnV0dXJlIGludm9jYXRpb25zIG9mCi0rQGNvZGV7LXZhci11cGRhdGV9LgotKwot K0B2YXJ7ZnJvbX0gYW5kIEB2YXJ7dG99IGluZGljYXRlIHRoZSByYW5nZSBvZiBjaGlsZHJlbiB0 byByZXBvcnQuICBJZgotK0B2YXJ7ZnJvbX0gb3IgQHZhcnt0b30gaXMgbGVzcyB0aGFuIHplcm8s IHRoZSByYW5nZSBpcyByZXNldCBhbmQgYWxsCi0rY2hpbGRyZW4gd2lsbCBiZSByZXBvcnRlZC4g IE90aGVyd2lzZSwgY2hpbGRyZW4gc3RhcnRpbmcgYXQgQHZhcntmcm9tfQotKyh6ZXJvLWJhc2Vk KSBhbmQgZW5kaW5nIGp1c3QgYmVmb3JlIEB2YXJ7dG99IHdpbGwgYmUgcmVwb3J0ZWQuCi0rCi0r QHN1YnN1YmhlYWRpbmcgRXhhbXBsZQotKwotK0BzbWFsbGV4YW1wbGUKLSsoZ2RiKQotKy12YXIt c2V0LXVwZGF0ZS1yYW5nZSBWIDEgMgotK15kb25lCi0rQGVuZCBzbWFsbGV4YW1wbGUKLSsKLSBA c3ViaGVhZGluZyBUaGUgQGNvZGV7LXZhci1zZXQtdmlzdWFsaXplcn0gY29tbWFuZAotIEBmaW5k ZXggLXZhci1zZXQtdmlzdWFsaXplcgotIEBhbmNob3J7LXZhci1zZXQtdmlzdWFsaXplcn0KIGRp ZmYgLS1naXQgYS9nZGIvZG9jL2dkYmludC50ZXhpbmZvIGIvZ2RiL2RvYy9nZGJpbnQudGV4aW5m bwotaW5kZXggZTcwNmNhYS4uNmIwNTVkMyAxMDA2NDQKK2luZGV4IGMyYmUzZjcuLmE3ODExYWIg MTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYmludC50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYmlu dC50ZXhpbmZvCi1AQCAtMjEwNiw2ICsyMTA2LDE4IEBAIHRpbWUsIGFuZCBzbyB3ZSBhdHRlbXB0 IHRvIGhhbmRsZSBzeW1ib2xzIGluY3JlbWVudGFsbHkuICBGb3IgaW5zdGFuY2UsCitAQCAtMjEx NCw2ICsyMTE0LDE4IEBAIHRpbWUsIGFuZCBzbyB3ZSBhdHRlbXB0IHRvIGhhbmRsZSBzeW1ib2xz IGluY3JlbWVudGFsbHkuICBGb3IgaW5zdGFuY2UsCiAgd2UgY3JlYXRlIEBkZm57cGFydGlhbCBz eW1ib2wgdGFibGVzfSBjb25zaXN0aW5nIG9mIG9ubHkgc2VsZWN0ZWQKICBzeW1ib2xzLCBhbmQg b25seSBleHBhbmQgdGhlbSB0byBmdWxsIHN5bWJvbCB0YWJsZXMgd2hlbiBuZWNlc3NhcnkuCiAg CkBAIC00NzA4LDcgKzQ0MjEsNyBAQCBpbmRleCBlNzA2Y2FhLi42YjA1NWQzIDEwMDY0NAogIEBz ZWN0aW9uIFN5bWJvbCBSZWFkaW5nCiAgCiAgQGNpbmRleCBzeW1ib2wgcmVhZGluZwotQEAgLTIx OTgsNiArMjIxMCw3IEBAIHN5bXRhYi4gIFVwb24gcmV0dXJuLCBAY29kZXtwc3QtPnJlYWRpbn0g c2hvdWxkIGhhdmUgYmVlbiBzZXQgdG8gMSwgYW5kCitAQCAtMjIwNiw2ICsyMjE4LDcgQEAgc3lt dGFiLiAgVXBvbiByZXR1cm4sIEBjb2Rle3BzdC0+cmVhZGlufSBzaG91bGQgaGF2ZSBiZWVuIHNl dCB0byAxLCBhbmQKICB6ZXJvIGlmIHRoZXJlIHdlcmUgbm8gc3ltYm9scyBpbiB0aGF0IHBhcnQg b2YgdGhlIHN5bWJvbCBmaWxlLgogIEBlbmQgdGFibGUKICAKQEAgLTQ3MTYsNyArNDQyOSw3IEBA IGluZGV4IGU3MDZjYWEuLjZiMDU1ZDMgMTAwNjQ0CiAgQHNlY3Rpb24gUGFydGlhbCBTeW1ib2wg VGFibGVzCiAgCiAgQHZhbHVle0dEQk59IGhhcyB0aHJlZSB0eXBlcyBvZiBzeW1ib2wgdGFibGVz OgotQEAgLTIyOTMsNiArMjMwNiw3IEBAIGFuZCBhbGwgdGhlIHBzeW1ib2xzIHRoZW1zZWx2ZXMg YXJlIGFsbG9jYXRlZCBpbiBhIHBhaXIgb2YgbGFyZ2UgYXJyYXlzCitAQCAtMjMwMSw2ICsyMzE0 LDcgQEAgYW5kIGFsbCB0aGUgcHN5bWJvbHMgdGhlbXNlbHZlcyBhcmUgYWxsb2NhdGVkIGluIGEg cGFpciBvZiBsYXJnZSBhcnJheXMKICBvbiBhbiBvYnN0YWNrLCBzbyB0aGVyZSBpcyBsaXR0bGUg dG8gYmUgZ2FpbmVkIGJ5IHRyeWluZyB0byBmcmVlIHRoZW0KICB1bmxlc3MgeW91IHdhbnQgdG8g ZG8gYSBsb3QgbW9yZSB3b3JrLgogIApAQCAtNDcyNCw3ICs0NDM3LDcgQEAgaW5kZXggZTcwNmNh YS4uNmIwNTVkMyAxMDA2NDQKICBAc2VjdGlvbiBUeXBlcwogIAogIEB1bm51bWJlcmVkc3Vic2Vj IEZ1bmRhbWVudGFsIFR5cGVzIChlLmcuLCBAY29kZXtGVF9WT0lEfSwgQGNvZGV7RlRfQk9PTEVB Tn0pLgotQEAgLTIzMTUsNiArMjMyOSw3IEBAIHR5cGVzIG1hcCB0byBvbmUgQGNvZGV7VFlQRV9D T0RFXyp9IHR5cGUsIGFuZCBhcmUgZGlzdGluZ3Vpc2hlZCBieQorQEAgLTIzMjMsNiArMjMzNyw3 IEBAIHR5cGVzIG1hcCB0byBvbmUgQGNvZGV7VFlQRV9DT0RFXyp9IHR5cGUsIGFuZCBhcmUgZGlz dGluZ3Vpc2hlZCBieQogIG90aGVyIG1lbWJlcnMgb2YgdGhlIHR5cGUgc3RydWN0LCBzdWNoIGFz IHdoZXRoZXIgdGhlIHR5cGUgaXMgc2lnbmVkCiAgb3IgdW5zaWduZWQsIGFuZCBob3cgbWFueSBi aXRzIGl0IHVzZXMuCiAgCkBAIC00NzMyLDcgKzQ0NDUsNyBAQCBpbmRleCBlNzA2Y2FhLi42YjA1 NWQzIDEwMDY0NAogIEB1bm51bWJlcmVkc3Vic2VjIEJ1aWx0aW4gVHlwZXMgKGUuZy4sIEBjb2Rl e2J1aWx0aW5fdHlwZV92b2lkfSwgQGNvZGV7YnVpbHRpbl90eXBlX2NoYXJ9KS4KICAKICBUaGVz ZSBhcmUgaW5zdGFuY2VzIG9mIHR5cGUgc3RydWN0cyB0aGF0IHJvdWdobHkgY29ycmVzcG9uZCB0 bwotQEAgLTIzMjksNiArMjM0NCw3IEBAIG9ubHkgb25lIGluc3RhbmNlIGV4aXN0cywgd2hpbGUg QGZpbGV7Yy1sYW5nLmN9IGJ1aWxkcyBhcyBtYW55CitAQCAtMjMzNyw2ICsyMzUyLDcgQEAgb25s eSBvbmUgaW5zdGFuY2UgZXhpc3RzLCB3aGlsZSBAZmlsZXtjLWxhbmcuY30gYnVpbGRzIGFzIG1h bnkKICBAY29kZXtUWVBFX0NPREVfSU5UfSB0eXBlcyBhcyBuZWVkZWQsIHdpdGggZWFjaCBvbmUg YXNzb2NpYXRlZCB3aXRoCiAgc29tZSBwYXJ0aWN1bGFyIG9iamZpbGUuCiAgCkBAIC00NzQwLDcg KzQ0NTMsNyBAQCBpbmRleCBlNzA2Y2FhLi42YjA1NWQzIDEwMDY0NAogIEBzZWN0aW9uIE9iamVj dCBGaWxlIEZvcm1hdHMKICBAY2luZGV4IG9iamVjdCBmaWxlIGZvcm1hdHMKICAKLUBAIC0yNDE0 LDYgKzI0MzAsNyBAQCBTT00sIHdoaWNoIGlzIGEgY3Jvc3MtbGFuZ3VhZ2UgQUJJKS4KK0BAIC0y NDIyLDYgKzI0MzgsNyBAQCBTT00sIHdoaWNoIGlzIGEgY3Jvc3MtbGFuZ3VhZ2UgQUJJKS4KICAK ICBUaGUgU09NIHJlYWRlciBpcyBpbiBAZmlsZXtzb21yZWFkLmN9LgogIApAQCAtNDc0OCw3ICs0 NDYxLDcgQEAgaW5kZXggZTcwNmNhYS4uNmIwNTVkMyAxMDA2NDQKICBAc2VjdGlvbiBEZWJ1Z2dp bmcgRmlsZSBGb3JtYXRzCiAgCiAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBjaGFyYWN0ZXJpc3Rp Y3Mgb2YgZGVidWdnaW5nIGluZm9ybWF0aW9uIHRoYXQKLUBAIC0yNDg1LDYgKzI1MDIsNyBAQCBE V0FSRiAzIGlzIGFuIGltcHJvdmVkIHZlcnNpb24gb2YgRFdBUkYgMi4KK0BAIC0yNDkzLDYgKzI1 MTAsNyBAQCBEV0FSRiAzIGlzIGFuIGltcHJvdmVkIHZlcnNpb24gb2YgRFdBUkYgMi4KICBAY2lu ZGV4IFNPTSBkZWJ1Z2dpbmcgaW5mbwogIExpa2UgQ09GRiwgdGhlIFNPTSBkZWZpbml0aW9uIGlu Y2x1ZGVzIGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4KICAKQEAgLTQ3NTYsNyArNDQ2OSw3IEBAIGlu ZGV4IGU3MDZjYWEuLjZiMDU1ZDMgMTAwNjQ0CiAgQHNlY3Rpb24gQWRkaW5nIGEgTmV3IFN5bWJv bCBSZWFkZXIgdG8gQHZhbHVle0dEQk59CiAgCiAgQGNpbmRleCBhZGRpbmcgZGVidWdnaW5nIGlu Zm8gcmVhZGVyCi1AQCAtMjUwNyw2ICsyNTI1LDcgQEAgd2lsbCBvbmx5IGV2ZXIgYmUgaW1wbGVt ZW50ZWQgYnkgb25lIG9iamVjdCBmaWxlIGZvcm1hdCBtYXkgYmUgY2FsbGVkCitAQCAtMjUxNSw2 ICsyNTMzLDcgQEAgd2lsbCBvbmx5IGV2ZXIgYmUgaW1wbGVtZW50ZWQgYnkgb25lIG9iamVjdCBm aWxlIGZvcm1hdCBtYXkgYmUgY2FsbGVkCiAgZGlyZWN0bHkuICBUaGlzIGludGVyZmFjZSBzaG91 bGQgYmUgZGVzY3JpYmVkIGluIGEgZmlsZQogIEBmaWxle2JmZC9saWJAdmFye3h5en0uaH0sIHdo aWNoIGlzIGluY2x1ZGVkIGJ5IEB2YWx1ZXtHREJOfS4KICAKQEAgLTQ3NjQsNyArNDQ3Nyw3IEBA IGluZGV4IGU3MDZjYWEuLjZiMDU1ZDMgMTAwNjQ0CiAgQHNlY3Rpb24gTWVtb3J5IE1hbmFnZW1l bnQgZm9yIFN5bWJvbCBGaWxlcwogIAogIE1vc3QgbWVtb3J5IGFzc29jaWF0ZWQgd2l0aCBhIGxv YWRlZCBzeW1ib2wgZmlsZSBpcyBzdG9yZWQgb24KLUBAIC0yNTE4LDEwICsyNTM3LDQ1IEBAIHJl bGVhc2VkIHdoZW4gdGhlIG9iamZpbGUgaXMgdW5sb2FkZWQgb3IgcmVsb2FkZWQuICBUaGVyZWZv cmUgb25lCitAQCAtMjUyNiwxMCArMjU0NSw0NSBAQCByZWxlYXNlZCB3aGVuIHRoZSBvYmpmaWxl IGlzIHVubG9hZGVkIG9yIHJlbG9hZGVkLiAgVGhlcmVmb3JlIG9uZQogIG9iamZpbGUgbXVzdCBu b3QgcmVmZXJlbmNlIHN5bWJvbCBvciB0eXBlIGRhdGEgZnJvbSBhbm90aGVyIG9iamZpbGU7CiAg dGhleSBjb3VsZCBiZSB1bmxvYWRlZCBhdCBkaWZmZXJlbnQgdGltZXMuCiAgCkBAIC00ODMxLDcg KzQ1NDQsNyBAQCBpbmRleCA0OTg0ZjMxLi5mY2YxYjVkIDEwMDY0NAogIFRoaXMgb2JzZXJ2ZXIg aXMgdXNlZCBmb3IgaW50ZXJuYWwgdGVzdGluZy4gIERvIG5vdCB1c2UuICAKICBTZWUgdGVzdHN1 aXRlL2dkYi5nZGIvb2JzZXJ2ZXIuZXhwLgogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjItZnJhbWUu YyBiL2dkYi9kd2FyZjItZnJhbWUuYwotaW5kZXggZjljYTA2Ny4uOTc5YjY0OSAxMDA2NDQKK2lu ZGV4IDY2OGM0MzQuLmMyOWMzYTUgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYyLWZyYW1lLmMKICsr KyBiL2dkYi9kd2FyZjItZnJhbWUuYwogQEAgLTM4LDYgKzM4LDcgQEAKQEAgLTQ4NDIsMjQgKzQ1 NTUsNyBAQCBpbmRleCBmOWNhMDY3Li45NzliNjQ5IDEwMDY0NAogIAogIHN0cnVjdCBjb21wX3Vu aXQ7CiAgCi1AQCAtMzc5LDggKzM4MCwxNSBAQCBleGVjdXRlX3N0YWNrX29wIChnZGJfYnl0ZSAq ZXhwLCBVTE9OR0VTVCBsZW4sIGludCBhZGRyX3NpemUsCi0gICBkd2FyZl9leHByX2V2YWwgKGN0 eCwgZXhwLCBsZW4pOwotICAgcmVzdWx0ID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKLSAK LS0gIGlmIChjdHgtPmluX3JlZykKLSsgIGlmIChjdHgtPmxvY2F0aW9uID09IERXQVJGX1ZBTFVF X1JFR0lTVEVSKQotICAgICByZXN1bHQgPSByZWFkX3JlZyAodGhpc19mcmFtZSwgcmVzdWx0KTsK LSsgIGVsc2UgaWYgKGN0eC0+bG9jYXRpb24gIT0gRFdBUkZfVkFMVUVfTUVNT1JZKQotKyAgICB7 Ci0rICAgICAgLyogVGhpcyBpcyBhY3R1YWxseSBpbnZhbGlkIERXQVJGLCBidXQgaWYgd2UgZXZl ciBkbyBydW4gYWNyb3NzCi0rCSBpdCBzb21laG93LCB3ZSBtaWdodCBhcyB3ZWxsIHN1cHBvcnQg aXQuICBTbywgaW5zdGVhZCwgcmVwb3J0Ci0rCSBpdCBhcyB1bmltcGxlbWVudGVkLiAgKi8KLSsg ICAgICBlcnJvciAoXygiTm90IGltcGxlbWVudGVkOiBjb21wdXRpbmcgdW53b3VuZCByZWdpc3Rl ciB1c2luZyBleHBsaWNpdCB2YWx1ZSBvcGVyYXRvciIpKTsKLSsgICAgfQotIAotICAgZG9fY2xl YW51cHMgKG9sZF9jaGFpbik7Ci0gCi1AQCAtMTU2Niw2ICsxNTc0LDE0IEBAIGR3YXJmMl9mcmFt ZV9maW5kX2ZkZSAoQ09SRV9BRERSICpwYykKK0BAIC0xNTc0LDYgKzE1NzUsMTQgQEAgZHdhcmYy X2ZyYW1lX2ZpbmRfZmRlIChDT1JFX0FERFIgKnBjKQogICAgICAgIENPUkVfQUREUiBvZmZzZXQ7 CiAgICAgICAgQ09SRV9BRERSIHNlZWtfcGM7CiAgCkBAIC00ODc1LDE1MiArNDU3MSwxMCBAQCBp bmRleCBmOWNhMDY3Li45NzliNjQ5IDEwMDY0NAogICAgICAgIGlmIChmZGVfdGFibGUgPT0gTlVM TCkKICAJY29udGludWU7CiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmV4cHIuYyBiL2dkYi9kd2Fy ZjJleHByLmMKLWluZGV4IDY0MDFlNzIuLjA2NDRiNDYgMTAwNjQ0CitpbmRleCA0NmJjOWQ3Li5l Njc1NTc1IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmV4cHIuYwogKysrIGIvZ2RiL2R3YXJmMmV4 cHIuYwotQEAgLTEyNSw4ICsxMjUsNyBAQCBkd2FyZl9leHByX2ZldGNoIChzdHJ1Y3QgZHdhcmZf ZXhwcl9jb250ZXh0ICpjdHgsIGludCBuKQotIAotIC8qIEFkZCBhIG5ldyBwaWVjZSB0byBDVFgn cyBwaWVjZSBsaXN0LiAgKi8KLSBzdGF0aWMgdm9pZAotLWFkZF9waWVjZSAoc3RydWN0IGR3YXJm X2V4cHJfY29udGV4dCAqY3R4LAotLSAgICAgICAgICAgaW50IGluX3JlZywgQ09SRV9BRERSIHZh bHVlLCBVTE9OR0VTVCBzaXplKQotK2FkZF9waWVjZSAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4 dCAqY3R4LCBVTE9OR0VTVCBzaXplKQotIHsKLSAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpw OwotIAotQEAgLTE0MSw5ICsxNDAsMTUgQEAgYWRkX3BpZWNlIChzdHJ1Y3QgZHdhcmZfZXhwcl9j b250ZXh0ICpjdHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaXplb2YgKHN0cnVj dCBkd2FyZl9leHByX3BpZWNlKSk7Ci0gCi0gICBwID0gJmN0eC0+cGllY2VzW2N0eC0+bnVtX3Bp ZWNlcyAtIDFdOwotLSAgcC0+aW5fcmVnID0gaW5fcmVnOwotLSAgcC0+dmFsdWUgPSB2YWx1ZTsK LSsgIHAtPmxvY2F0aW9uID0gY3R4LT5sb2NhdGlvbjsKLSAgIHAtPnNpemUgPSBzaXplOwotKyAg aWYgKHAtPmxvY2F0aW9uID09IERXQVJGX1ZBTFVFX0xJVEVSQUwpCi0rICAgIHsKLSsgICAgICBw LT52LmxpdGVyYWwuZGF0YSA9IGN0eC0+ZGF0YTsKLSsgICAgICBwLT52LmxpdGVyYWwubGVuZ3Ro ID0gY3R4LT5sZW47Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgcC0+di52YWx1ZSA9IGR3YXJmX2V4 cHJfZmV0Y2ggKGN0eCwgMCk7Ci0gfQotIAotIC8qIEV2YWx1YXRlIHRoZSBleHByZXNzaW9uIGF0 IEFERFIgKExFTiBieXRlcyBsb25nKSB1c2luZyB0aGUgY29udGV4dAotQEAgLTI4Nyw2ICsyOTIs MjMgQEAgc2lnbmVkX2FkZHJlc3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCBh ZGRyX3NpemUpCi0gICAgIH0KLSB9Ci0gDAotKwotKy8qIENoZWNrIHRoYXQgdGhlIGN1cnJlbnQg b3BlcmF0b3IgaXMgZWl0aGVyIGF0IHRoZSBlbmQgb2YgYW4KLSsgICBleHByZXNzaW9uLCBvciB0 aGF0IGl0IGlzIGZvbGxvd2VkIGJ5IGEgY29tcG9zaXRpb24gb3BlcmF0b3IuICAqLwotKwotK3N0 YXRpYyB2b2lkCi0rcmVxdWlyZV9jb21wb3NpdGlvbiAoZ2RiX2J5dGUgKm9wX3B0ciwgZ2RiX2J5 dGUgKm9wX2VuZCwgY29uc3QgY2hhciAqb3BfbmFtZSkKLSt7Ci0rICAvKiBJdCBzZWVtcyBsaWtl IERXX09QX0dOVV91bmluaXQgc2hvdWxkIGJlIGhhbmRsZWQgaGVyZS4gIEhvd2V2ZXIsCi0rICAg ICBpdCBkb2Vzbid0IHNlZW0gdG8gbWFrZSBzZW5zZSBmb3IgRFdfT1BfKl92YWx1ZSwgYW5kIGl0 IHdhcyBub3QKLSsgICAgIGNoZWNrZWQgYXQgdGhlIG90aGVyIHBsYWNlIHRoYXQgdGhpcyBmdW5j dGlvbiBpcyBjYWxsZWQuICAqLwotKyAgaWYgKG9wX3B0ciAhPSBvcF9lbmQgJiYgKm9wX3B0ciAh PSBEV19PUF9waWVjZSAmJiAqb3BfcHRyICE9IERXX09QX2JpdF9waWVjZSkKLSsgICAgZXJyb3Ig KF8oIkRXQVJGLTIgZXhwcmVzc2lvbiBlcnJvcjogYCVzJyBvcGVyYXRpb25zIG11c3QgYmUgIgot KwkgICAgICJ1c2VkIGVpdGhlciBhbG9uZSBvciBpbiBjb25qdWN0aW9uIHdpdGggRFdfT1BfcGll Y2UgIgotKwkgICAgICJvciBEV19PUF9iaXRfcGllY2UuIiksCi0rCSAgIG9wX25hbWUpOwotK30K LSsKLSAvKiBUaGUgZW5naW5lIGZvciB0aGUgZXhwcmVzc2lvbiBldmFsdWF0b3IuICBVc2luZyB0 aGUgY29udGV4dCBpbiBDVFgsCi0gICAgZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24gYmV0d2VlbiBP UF9QVFIgYW5kIE9QX0VORC4gICovCi0gCi1AQCAtMjk1LDggKzMxNyw3IEBAIGV4ZWN1dGVfc3Rh Y2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKLSAJCSAgZ2RiX2J5dGUgKm9w X3B0ciwgZ2RiX2J5dGUgKm9wX2VuZCkKLSB7Ci0gICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRl ciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoY3R4LT5nZGJhcmNoKTsKLS0KLS0gIGN0eC0+aW5fcmVn ID0gMDsKLSsgIGN0eC0+bG9jYXRpb24gPSBEV0FSRl9WQUxVRV9NRU1PUlk7Ci0gICBjdHgtPmlu aXRpYWxpemVkID0gMTsgIC8qIERlZmF1bHQgaXMgaW5pdGlhbGl6ZWQuICAqLwotIAotICAgaWYg KGN0eC0+cmVjdXJzaW9uX2RlcHRoID4gY3R4LT5tYXhfcmVjdXJzaW9uX2RlcHRoKQotQEAgLTQz NiwyMCArNDU3LDM2IEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRl eHQgKmN0eCwKLSAJCSAgICJ1c2VkIGVpdGhlciBhbG9uZSBvciBpbiBjb25qdWN0aW9uIHdpdGgg RFdfT1BfcGllY2UuIikpOwotIAotIAkgIHJlc3VsdCA9IG9wIC0gRFdfT1BfcmVnMDsKLS0JICBj dHgtPmluX3JlZyA9IDE7Ci0tCi0rCSAgY3R4LT5sb2NhdGlvbiA9IERXQVJGX1ZBTFVFX1JFR0lT VEVSOwotIAkgIGJyZWFrOwotIAotIAljYXNlIERXX09QX3JlZ3g6Ci0gCSAgb3BfcHRyID0gcmVh ZF91bGViMTI4IChvcF9wdHIsIG9wX2VuZCwgJnJlZyk7Ci0tCSAgaWYgKG9wX3B0ciAhPSBvcF9l bmQgJiYgKm9wX3B0ciAhPSBEV19PUF9waWVjZSkKLS0JICAgIGVycm9yIChfKCJEV0FSRi0yIGV4 cHJlc3Npb24gZXJyb3I6IERXX09QX3JlZyBvcGVyYXRpb25zIG11c3QgYmUgIgotLQkJICAgInVz ZWQgZWl0aGVyIGFsb25lIG9yIGluIGNvbmp1Y3Rpb24gd2l0aCBEV19PUF9waWVjZS4iKSk7Ci0r CSAgcmVxdWlyZV9jb21wb3NpdGlvbiAob3BfcHRyLCBvcF9lbmQsICJEV19PUF9yZWd4Iik7Ci0g Ci0gCSAgcmVzdWx0ID0gcmVnOwotLQkgIGN0eC0+aW5fcmVnID0gMTsKLSsJICBjdHgtPmxvY2F0 aW9uID0gRFdBUkZfVkFMVUVfUkVHSVNURVI7Ci0gCSAgYnJlYWs7Ci0gCi0rCWNhc2UgRFdfT1Bf aW1wbGljaXRfdmFsdWU6Ci0rCSAgewotKwkgICAgVUxPTkdFU1QgbGVuOwotKwkgICAgb3BfcHRy ID0gcmVhZF91bGViMTI4IChvcF9wdHIsIG9wX2VuZCwgJmxlbik7Ci0rCSAgICBpZiAob3BfcHRy ICsgbGVuID4gb3BfZW5kKQotKwkgICAgICBlcnJvciAoXygiRFdfT1BfaW1wbGljaXRfdmFsdWU6 IHRvbyBmZXcgYnl0ZXMgYXZhaWxhYmxlLiIpKTsKLSsJICAgIGN0eC0+bGVuID0gbGVuOwotKwkg ICAgY3R4LT5kYXRhID0gb3BfcHRyOwotKwkgICAgY3R4LT5sb2NhdGlvbiA9IERXQVJGX1ZBTFVF X0xJVEVSQUw7Ci0rCSAgICBvcF9wdHIgKz0gbGVuOwotKwkgICAgcmVxdWlyZV9jb21wb3NpdGlv biAob3BfcHRyLCBvcF9lbmQsICJEV19PUF9pbXBsaWNpdF92YWx1ZSIpOwotKwkgIH0KLSsJICBn b3RvIG5vX3B1c2g7Ci0rCi0rCWNhc2UgRFdfT1Bfc3RhY2tfdmFsdWU6Ci0rCSAgY3R4LT5sb2Nh dGlvbiA9IERXQVJGX1ZBTFVFX1NUQUNLOwotKwkgIHJlcXVpcmVfY29tcG9zaXRpb24gKG9wX3B0 ciwgb3BfZW5kLCAiRFdfT1Bfc3RhY2tfdmFsdWUiKTsKLSsJICBnb3RvIG5vX3B1c2g7Ci0rCi0g CWNhc2UgRFdfT1BfYnJlZzA6Ci0gCWNhc2UgRFdfT1BfYnJlZzE6Ci0gCWNhc2UgRFdfT1BfYnJl ZzI6Ci1AQCAtNTEzLDEyICs1NTAsMTUgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJm X2V4cHJfY29udGV4dCAqY3R4LAotICAgICAgICAgICAgICAgIHNwZWNpZmljIHRoaXNfYmFzZSBt ZXRob2QuICAqLwotIAkgICAgKGN0eC0+Z2V0X2ZyYW1lX2Jhc2UpIChjdHgtPmJhdG9uLCAmZGF0 YXN0YXJ0LCAmZGF0YWxlbik7Ci0gCSAgICBkd2FyZl9leHByX2V2YWwgKGN0eCwgZGF0YXN0YXJ0 LCBkYXRhbGVuKTsKLSsJICAgIGlmIChjdHgtPmxvY2F0aW9uID09IERXQVJGX1ZBTFVFX0xJVEVS QUwKLSsJCXx8IGN0eC0+bG9jYXRpb24gPT0gRFdBUkZfVkFMVUVfU1RBQ0spCi0rCSAgICAgIGVy cm9yIChfKCJOb3QgaW1wbGVtZW50ZWQ6IGNvbXB1dGluZyBmcmFtZSBiYXNlIHVzaW5nIGV4cGxp Y2l0IHZhbHVlIG9wZXJhdG9yIikpOwotIAkgICAgcmVzdWx0ID0gZHdhcmZfZXhwcl9mZXRjaCAo Y3R4LCAwKTsKLS0JICAgIGlmIChjdHgtPmluX3JlZykKLSsJICAgIGlmIChjdHgtPmxvY2F0aW9u ID09IERXQVJGX1ZBTFVFX1JFR0lTVEVSKQotIAkgICAgICByZXN1bHQgPSAoY3R4LT5yZWFkX3Jl ZykgKGN0eC0+YmF0b24sIHJlc3VsdCk7Ci0gCSAgICByZXN1bHQgPSByZXN1bHQgKyBvZmZzZXQ7 Ci0gCSAgICBjdHgtPnN0YWNrX2xlbiA9IGJlZm9yZV9zdGFja19sZW47Ci0tCSAgICBjdHgtPmlu X3JlZyA9IDA7Ci0rCSAgICBjdHgtPmxvY2F0aW9uID0gRFdBUkZfVkFMVUVfTUVNT1JZOwotIAkg IH0KLSAJICBicmVhazsKLSAJY2FzZSBEV19PUF9kdXA6Ci1AQCAtNzU4LDEyICs3OTgsMTMgQEAg ZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAotIAotICAg ICAgICAgICAgIC8qIFJlY29yZCB0aGUgcGllY2UuICAqLwotICAgICAgICAgICAgIG9wX3B0ciA9 IHJlYWRfdWxlYjEyOCAob3BfcHRyLCBvcF9lbmQsICZzaXplKTsKLS0gICAgICAgICAgICBhZGRy X29yX3JlZ251bSA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7Ci0tICAgICAgICAgICAgYWRk X3BpZWNlIChjdHgsIGN0eC0+aW5fcmVnLCBhZGRyX29yX3JlZ251bSwgc2l6ZSk7Ci0rCSAgICBh ZGRfcGllY2UgKGN0eCwgc2l6ZSk7Ci0gCi0tICAgICAgICAgICAgLyogUG9wIG9mZiB0aGUgYWRk cmVzcy9yZWdudW0sIGFuZCBjbGVhciB0aGUgaW5fcmVnIGZsYWcuICAqLwotLSAgICAgICAgICAg IGR3YXJmX2V4cHJfcG9wIChjdHgpOwotLSAgICAgICAgICAgIGN0eC0+aW5fcmVnID0gMDsKLSsg ICAgICAgICAgICAvKiBQb3Agb2ZmIHRoZSBhZGRyZXNzL3JlZ251bSwgYW5kIHJlc2V0IHRoZSBs b2NhdGlvbgotKwkgICAgICAgdHlwZS4gICovCi0rCSAgICBpZiAoY3R4LT5sb2NhdGlvbiAhPSBE V0FSRl9WQUxVRV9MSVRFUkFMKQotKwkgICAgICBkd2FyZl9leHByX3BvcCAoY3R4KTsKLSsgICAg ICAgICAgICBjdHgtPmxvY2F0aW9uID0gRFdBUkZfVkFMVUVfTUVNT1JZOwotICAgICAgICAgICB9 Ci0gICAgICAgICAgIGdvdG8gbm9fcHVzaDsKLSAKLUBAIC03NzUsNiArODE2LDEzIEBAIGV4ZWN1 dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwKK0BAIC04NDgsNiAr ODQ4LDEzIEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0 eCwKICAJICBjdHgtPmluaXRpYWxpemVkID0gMDsKICAJICBnb3RvIG5vX3B1c2g7CiAgCkBAIC01 MDM1LDMwICs0NTg5LDEwIEBAIGluZGV4IDY0MDFlNzIuLjA2NDRiNDYgMTAwNjQ0CiAgCSAgZXJy b3IgKF8oIlVuaGFuZGxlZCBkd2FyZiBleHByZXNzaW9uIG9wY29kZSAweCV4IiksIG9wKTsKICAJ fQogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJleHByLmggYi9nZGIvZHdhcmYyZXhwci5oCi1pbmRl eCA2YjNhMDY4Li41OTdjMmRlIDEwMDY0NAoraW5kZXggYTlhOGEwNS4uZDQ0OTAxMiAxMDA2NDQK IC0tLSBhL2dkYi9kd2FyZjJleHByLmgKICsrKyBiL2dkYi9kd2FyZjJleHByLmgKLUBAIC0yMyw2 ICsyMywxOSBAQAotICNpZiAhZGVmaW5lZCAoRFdBUkYyRVhQUl9IKQotICNkZWZpbmUgRFdBUkYy RVhQUl9ICi0gCi0rLyogVGhlIGxvY2F0aW9uIG9mIGEgdmFsdWUuICAqLwotK2VudW0gZHdhcmZf dmFsdWVfbG9jYXRpb24KLSt7Ci0rICAvKiBUaGUgcGllY2UgaXMgaW4gbWVtb3J5LiAgKi8KLSsg IERXQVJGX1ZBTFVFX01FTU9SWSwKLSsgIC8qIFRoZSBwaWVjZSBpcyBpbiBhIHJlZ2lzdGVyLiAg Ki8KLSsgIERXQVJGX1ZBTFVFX1JFR0lTVEVSLAotKyAgLyogVGhlIHBpZWNlIGlzIG9uIHRoZSBz dGFjay4gICovCi0rICBEV0FSRl9WQUxVRV9TVEFDSywKLSsgIC8qIFRoZSBwaWVjZSBpcyBhIGxp dGVyYWwuICAqLwotKyAgRFdBUkZfVkFMVUVfTElURVJBTAotK307Ci0rCi0gLyogVGhlIGV4cHJl c3Npb24gZXZhbHVhdG9yIHdvcmtzIHdpdGggYSBkd2FyZl9leHByX2NvbnRleHQsIGRlc2NyaWJp bmcKLSAgICBpdHMgY3VycmVudCBzdGF0ZSBhbmQgaXRzIGNhbGxiYWNrcy4gICovCi0gc3RydWN0 IGR3YXJmX2V4cHJfY29udGV4dAotQEAgLTcwLDE5ICs4MywyMyBAQCBzdHJ1Y3QgZHdhcmZfZXhw cl9jb250ZXh0CitAQCAtMTAyLDEwICsxMDIsMTAgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4 dAogICAgICAgVGhlIHJlc3VsdCBtdXN0IGJlIGxpdmUgdW50aWwgdGhlIGN1cnJlbnQgZXhwcmVz c2lvbiBldmFsdWF0aW9uCiAgICAgICBpcyBjb21wbGV0ZS4gICovCiAgICB1bnNpZ25lZCBjaGFy ICooKmdldF9zdWJyKSAodm9pZCAqYmF0b24sIG9mZl90IG9mZnNldCwgc2l6ZV90ICpsZW5ndGgp OwpAQCAtNTA3MCw4NSArNDYwNCw4IEBAIGluZGV4IDZiM2EwNjguLjU5N2MyZGUgMTAwNjQ0CiAg CiAgICAvKiBUaGUgY3VycmVudCBkZXB0aCBvZiBkd2FyZiBleHByZXNzaW9uIHJlY3Vyc2lvbiwg dmlhIERXX09QX2NhbGwqLAogICAgICAgRFdfT1BfZmJyZWcsIERXX09QX3B1c2hfb2JqZWN0X2Fk ZHJlc3MsIGV0Yy4sIGFuZCB0aGUgbWF4aW11bQotICAgICAgZGVwdGggd2UnbGwgdG9sZXJhdGUg YmVmb3JlIHJhaXNpbmcgYW4gZXJyb3IuICAqLwotICAgaW50IHJlY3Vyc2lvbl9kZXB0aCwgbWF4 X3JlY3Vyc2lvbl9kZXB0aDsKLSAKLS0gIC8qIE5vbi16ZXJvIGlmIHRoZSByZXN1bHQgaXMgaW4g YSByZWdpc3Rlci4gIFRoZSByZWdpc3RlciBudW1iZXIKLS0gICAgIHdpbGwgYmUgb24gdGhlIGV4 cHJlc3Npb24gc3RhY2suICAqLwotLSAgaW50IGluX3JlZzsKLSsgIC8qIExvY2F0aW9uIG9mIHRo ZSB2YWx1ZS4gICovCi0rICBlbnVtIGR3YXJmX3ZhbHVlX2xvY2F0aW9uIGxvY2F0aW9uOwotKwot KyAgLyogRm9yIFZBTFVFX0xJVEVSQUwsIGEgdGhlIGN1cnJlbnQgbGl0ZXJhbCB2YWx1ZSdzIGxl bmd0aCBhbmQKLSsgICAgIGRhdGEuICAqLwotKyAgVUxPTkdFU1QgbGVuOwotKyAgZ2RiX2J5dGUg KmRhdGE7Ci0gCi0gICAvKiBJbml0aWFsaXphdGlvbiBzdGF0dXMgb2YgdmFyaWFibGU6IE5vbi16 ZXJvIGlmIHZhcmlhYmxlIGhhcyBiZWVuCi0gICAgICBpbml0aWFsaXplZDsgemVybyBvdGhlcndp c2UuICAqLwotQEAgLTkzLDkgKzExMCw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQKLSAK LSAgICAgIEVhY2ggdGltZSBEV19PUF9waWVjZSBpcyBleGVjdXRlZCwgd2UgYWRkIGEgbmV3IGVs ZW1lbnQgdG8gdGhlCi0gICAgICBlbmQgb2YgdGhpcyBhcnJheSwgcmVjb3JkaW5nIHRoZSBjdXJy ZW50IHRvcCBvZiB0aGUgc3RhY2ssIHRoZQotLSAgICAgY3VycmVudCBpbl9yZWcgZmxhZywgYW5k IHRoZSBzaXplIGdpdmVuIGFzIHRoZSBvcGVyYW5kIHRvCi0tICAgICBEV19PUF9waWVjZS4gIFdl IHRoZW4gcG9wIHRoZSB0b3AgdmFsdWUgZnJvbSB0aGUgc3RhY2ssIGNsZWFyIHRoZQotLSAgICAg aW5fcmVnIGZsYWcsIGFuZCByZXN1bWUgZXZhbHVhdGlvbi4KLSsgICAgIGN1cnJlbnQgbG9jYXRp b24sIGFuZCB0aGUgc2l6ZSBnaXZlbiBhcyB0aGUgb3BlcmFuZCB0bwotKyAgICAgRFdfT1BfcGll Y2UuICBXZSB0aGVuIHBvcCB0aGUgdG9wIHZhbHVlIGZyb20gdGhlIHN0YWNrLCByZXN0IHRoZQot KyAgICAgbG9jYXRpb24sIGFuZCByZXN1bWUgZXZhbHVhdGlvbi4KLSAKLSAgICAgIFRoZSBEd2Fy ZiBzcGVjIGRvZXNuJ3Qgc2F5IHdoZXRoZXIgRFdfT1BfcGllY2UgcG9wcyB0aGUgdG9wIHZhbHVl Ci0gICAgICBmcm9tIHRoZSBzdGFjay4gIFdlIGRvLCBlbnN1cmluZyB0aGF0IGNsaWVudHMgb2Yg dGhpcyBpbnRlcmZhY2UKLUBAIC0xMDYsMTIgKzEyMywxMSBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9j b250ZXh0Ci0gCi0gICAgICBJZiBhbiBleHByZXNzaW9uIG5ldmVyIHVzZXMgRFdfT1BfcGllY2Us IG51bV9waWVjZXMgd2lsbCBiZSB6ZXJvLgotICAgICAgKEl0IHdvdWxkIGJlIG5pY2UgdG8gcHJl c2VudCB0aGVzZSBjYXNlcyBhcyBleHByZXNzaW9ucyB5aWVsZGluZwotLSAgICAgYSBzaW5nbGUg cGllY2UsIHdpdGggaW5fcmVnIGNsZWFyLCBzbyB0aGF0IGNhbGxlcnMgbmVlZCBub3QKLS0gICAg IGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIG5vLURXX09QX3BpZWNlIGFuZCBvbmUtRFdfT1BfcGll Y2UgY2FzZXMuCi0tICAgICBCdXQgZXhwcmVzc2lvbnMgd2l0aCBubyBEV19PUF9waWVjZSBvcGVy YXRpb25zIGhhdmUgbm8gdmFsdWUgdG8KLS0gICAgIHBsYWNlIGluIGEgcGllY2UncyAnc2l6ZScg ZmllbGQ7IHRoZSBzaXplIGNvbWVzIGZyb20gdGhlCi0tICAgICBzdXJyb3VuZGluZyBkYXRhLiAg U28gdGhlIHR3byBjYXNlcyBuZWVkIHRvIGJlIGhhbmRsZWQKLS0gICAgIHNlcGFyYXRlbHkuKSAg Ki8KLSsgICAgIGEgc2luZ2xlIHBpZWNlLCBzbyB0aGF0IGNhbGxlcnMgbmVlZCBub3QgZGlzdGlu Z3Vpc2ggYmV0d2VlbiB0aGUKLSsgICAgIG5vLURXX09QX3BpZWNlIGFuZCBvbmUtRFdfT1BfcGll Y2UgY2FzZXMuICBCdXQgZXhwcmVzc2lvbnMgd2l0aAotKyAgICAgbm8gRFdfT1BfcGllY2Ugb3Bl cmF0aW9ucyBoYXZlIG5vIHZhbHVlIHRvIHBsYWNlIGluIGEgcGllY2UncwotKyAgICAgJ3NpemUn IGZpZWxkOyB0aGUgc2l6ZSBjb21lcyBmcm9tIHRoZSBzdXJyb3VuZGluZyBkYXRhLiAgU28gdGhl Ci0rICAgICB0d28gY2FzZXMgbmVlZCB0byBiZSBoYW5kbGVkIHNlcGFyYXRlbHkuKSAgKi8KLSAg IGludCBudW1fcGllY2VzOwotICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnBpZWNlczsKLSB9 OwotQEAgLTEyMCwxMyArMTM2LDIyIEBAIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQKLSAvKiBB IHBpZWNlIG9mIGFuIG9iamVjdCwgYXMgcmVjb3JkZWQgYnkgRFdfT1BfcGllY2UuICAqLwotIHN0 cnVjdCBkd2FyZl9leHByX3BpZWNlCi0gewotLSAgLyogSWYgSU5fUkVHIGlzIHplcm8sIHRoZW4g dGhlIHBpZWNlIGlzIGluIG1lbW9yeSwgYW5kIFZBTFVFIGlzIGl0cyBhZGRyZXNzLgotLSAgICAg SWYgSU5fUkVHIGlzIG5vbi16ZXJvLCB0aGVuIHRoZSBwaWVjZSBpcyBpbiBhIHJlZ2lzdGVyLCBh bmQgVkFMVUUKLS0gICAgIGlzIHRoZSByZWdpc3RlciBudW1iZXIuICAqLwotLSAgaW50IGluX3Jl ZzsKLS0KLS0gIC8qIFRoaXMgcGllY2UncyBhZGRyZXNzIG9yIHJlZ2lzdGVyIG51bWJlci4gICov Ci0tICBDT1JFX0FERFIgdmFsdWU7Ci0rICBlbnVtIGR3YXJmX3ZhbHVlX2xvY2F0aW9uIGxvY2F0 aW9uOwotKwotKyAgdW5pb24KLSsgIHsKLSsgICAgLyogVGhpcyBwaWVjZSdzIGFkZHJlc3Mgb3Ig cmVnaXN0ZXIgbnVtYmVyLiAgKi8KLSsgICAgQ09SRV9BRERSIHZhbHVlOwotKwotKyAgICBzdHJ1 Y3QKLSsgICAgewotKyAgICAgIC8qIEEgcG9pbnRlciB0byB0aGUgZGF0YSBtYWtpbmcgdXAgdGhp cyBwaWVjZSwgZm9yIGxpdGVyYWwKLSsJIHBpZWNlcy4gICovCi0rICAgICAgZ2RiX2J5dGUgKmRh dGE7Ci0rICAgICAgLyogVGhlIGxlbmd0aCBvZiB0aGUgYXZhaWxhYmxlIGRhdGEuICAqLwotKyAg ICAgIFVMT05HRVNUIGxlbmd0aDsKLSsgICAgfSBsaXRlcmFsOwotKyAgfSB2OwotIAotICAgLyog VGhlIGxlbmd0aCBvZiB0aGUgcGllY2UsIGluIGJ5dGVzLiAgKi8KLSAgIFVMT05HRVNUIHNpemU7 CiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxvYy5jCi1pbmRleCBj M2Y2ZDQwLi5hZjgxNmY0IDEwMDY0NAoraW5kZXggM2E4MTIwMi4uODVmNDQ4NyAxMDA2NDQKIC0t LSBhL2dkYi9kd2FyZjJsb2MuYwogKysrIGIvZ2RiL2R3YXJmMmxvYy5jCiBAQCAtMTE2LDYgKzEx Niw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9uCkBAIC01MTgxLDcgKzQ2MzgsNyBAQCBpbmRl eCBjM2Y2ZDQwLi5hZjgxNmY0IDEwMDY0NAogKyAgICAgIGdkYl9hc3NlcnQgKHN5bWJhdG9uICE9 IE5VTEwpOwogKyAgICAgICpzdGFydCA9IHN5bWJhdG9uLT5kYXRhOwogKyAgICAgICpsZW5ndGgg PSBzeW1iYXRvbi0+c2l6ZTsKLSsgICAgfQorICAgICB9CiArICBlbHNlIGlmIChTWU1CT0xfQ09N UFVURURfT1BTIChmcmFtZWZ1bmMpID09ICZkd2FyZjJfbWlzc2luZ19mdW5jcykKICsgICAgewog KyAgICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiAqc3ltYmF0b247CkBAIC01MTkwLDcg KzQ2NDcsNyBAQCBpbmRleCBjM2Y2ZDQwLi5hZjgxNmY0IDEwMDY0NAogKyAgICAgIGdkYl9hc3Nl cnQgKHN5bWJhdG9uID09IE5VTEwpOwogKyAgICAgICpzdGFydCA9IE5VTEw7CiArICAgICAgKmxl bmd0aCA9IDA7CS8qIHVudXNlZCAqLwotICAgICB9CisrICAgIH0KICsgIGVsc2UKICsgICAgaW50 ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKICsJCSAgICBfKCJVbnN1cHBvcnRlZCBT WU1CT0xfQ09NUFVURURfT1BTICVwIGZvciBcIiVzXCIiKSwKQEAgLTUzMzQsNDggKzQ3OTEsNyBA QCBpbmRleCBjM2Y2ZDQwLi5hZjgxNmY0IDEwMDY0NAogIHN0cnVjdCBwaWVjZV9jbG9zdXJlCiAg ewogICAgLyogVGhlIG51bWJlciBvZiBwaWVjZXMgdXNlZCB0byBkZXNjcmliZSB0aGlzIHZhcmlh YmxlLiAgKi8KLUBAIC0yNTksMTggKzM5NiwxOCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0 IHZhbHVlICp2KQotIAkgIG1lbXNldCAoY29udGVudHMgKyBvZmZzZXQsIDAsIHAtPnNpemUpOwot IAkgIHNldF92YWx1ZV9vcHRpbWl6ZWRfb3V0ICh2LCAxKTsKLSAJfQotLSAgICAgIGVsc2UgaWYg KHAtPmluX3JlZykKLSsgICAgICBlbHNlIGlmIChwLT5sb2NhdGlvbiA9PSBEV0FSRl9WQUxVRV9S RUdJU1RFUikKLSAJewotIAkgIHN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X2ZyYW1lX2FyY2gg KGZyYW1lKTsKLSAJICBnZGJfYnl0ZSByZWd2YWxbTUFYX1JFR0lTVEVSX1NJWkVdOwotLQkgIGlu dCBnZGJfcmVnbnVtID0gZ2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAoYXJjaCwgcC0+dmFs dWUpOwotKwkgIGludCBnZGJfcmVnbnVtID0gZ2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAo YXJjaCwgcC0+di52YWx1ZSk7Ci0gCi0gCSAgZ2V0X2ZyYW1lX3JlZ2lzdGVyIChmcmFtZSwgZ2Ri X3JlZ251bSwgcmVndmFsKTsKLSAJICBtZW1jcHkgKGNvbnRlbnRzICsgb2Zmc2V0LCByZWd2YWws IHAtPnNpemUpOwotIAl9Ci0gICAgICAgZWxzZQotIAl7Ci0tCSAgcmVhZF9tZW1vcnkgKHAtPnZh bHVlLCBjb250ZW50cyArIG9mZnNldCwgcC0+c2l6ZSk7Ci0rCSAgcmVhZF9tZW1vcnkgKHAtPnYu dmFsdWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKLSAJfQotICAgICAgIG9mZnNldCAr PSBwLT5zaXplOwotICAgICB9Ci1AQCAtMjk1LDE1ICs0MzIsMTUgQEAgd3JpdGVfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCi0gICBmb3IgKGkgPSAw OyBpIDwgYy0+bl9waWVjZXM7IGkrKykKLSAgICAgewotICAgICAgIHN0cnVjdCBkd2FyZl9leHBy X3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKLS0gICAgICBpZiAocC0+aW5fcmVnKQotKyAgICAg IGlmIChwLT5sb2NhdGlvbiA9PSBEV0FSRl9WQUxVRV9SRUdJU1RFUikKLSAJewotIAkgIHN0cnVj dCBnZGJhcmNoICphcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLS0JICBpbnQgZ2RiX3Jl Z251bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAtPnZhbHVlKTsKLSsJ ICBpbnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAt PnYudmFsdWUpOwotIAkgIHB1dF9mcmFtZV9yZWdpc3RlciAoZnJhbWUsIGdkYl9yZWdudW0sIGNv bnRlbnRzICsgb2Zmc2V0KTsKLSAJfQotICAgICAgIGVsc2UKLSAJewotLQkgIHdyaXRlX21lbW9y eSAocC0+dmFsdWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKLSsJICB3cml0ZV9tZW1v cnkgKHAtPnYudmFsdWUsIGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKLSAJfQotICAgICAg IG9mZnNldCArPSBwLT5zaXplOwotICAgICB9Ci1AQCAtMzQzLDkgKzQ4MCw4IEBAIGR3YXJmMl9l dmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWUsCitAQCAtMzgyLDkgKzUxOSw4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3Ry dWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCiAgCQkJICBzdHJ1Y3Qg ZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCiAgewogICAgc3RydWN0IHZhbHVlICpyZXR2YWw7 CkBAIC01Mzg2LDE3ICs0ODAyLDE3IEBAIGluZGV4IGMzZjZkNDAuLmFmODE2ZjQgMTAwNjQ0CiAg CiAgICBpZiAoc2l6ZSA9PSAwKQogICAgICB7Ci1AQCAtMzU1LDIyICs0OTEsOCBAQCBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lLAorQEAgLTM5NCwyMiArNTMwLDggQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChz dHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKICAgICAgICByZXR1 cm4gcmV0dmFsOwogICAgICB9CiAgCiAtICBiYXRvbi5mcmFtZSA9IGZyYW1lOwogLSAgYmF0b24u b2JqZmlsZSA9IGR3YXJmMl9wZXJfY3Vfb2JqZmlsZSAocGVyX2N1KTsKLS0KLS0gIGN0eCA9IG5l d19kd2FyZl9leHByX2NvbnRleHQgKCk7Ci0tICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXBfZnJl ZV9kd2FyZl9leHByX2NvbnRleHQgKGN0eCk7CiArICBjdHggPSBkd2FyZl9leHByX3ByZXBfY3R4 IChmcmFtZSwgZGF0YSwgc2l6ZSwgcGVyX2N1KTsKICAKKy0gIGN0eCA9IG5ld19kd2FyZl9leHBy X2NvbnRleHQgKCk7CistICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXBfZnJlZV9kd2FyZl9leHBy X2NvbnRleHQgKGN0eCk7CistCiAtICBjdHgtPmdkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChi YXRvbi5vYmpmaWxlKTsKIC0gIGN0eC0+YWRkcl9zaXplID0gZHdhcmYyX3Blcl9jdV9hZGRyX3Np emUgKHBlcl9jdSk7CiAtICBjdHgtPmJhdG9uID0gJmJhdG9uOwpAQCAtNTQxMCwxMTAgKzQ4MjYs MTkgQEAgaW5kZXggYzNmNmQ0MC4uYWY4MTZmNCAxMDA2NDQKICAgIGlmIChjdHgtPm51bV9waWVj ZXMgPiAwKQogICAgICB7CiAgICAgICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmM7Ci1AQCAtMzgy LDIyICs1MDQsNzAgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9sICp2 YXIsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKLSAJCQkJCWMpOwotICAgICAgIFZBTFVFX0ZS QU1FX0lEIChyZXR2YWwpID0gZnJhbWVfaWQ7Ci0gICAgIH0KLS0gIGVsc2UgaWYgKGN0eC0+aW5f cmVnKQotLSAgICB7Ci0tICAgICAgc3RydWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRfZnJhbWVfYXJj aCAoZnJhbWUpOwotLSAgICAgIENPUkVfQUREUiBkd2FyZl9yZWdudW0gPSBkd2FyZl9leHByX2Zl dGNoIChjdHgsIDApOwotLSAgICAgIGludCBnZGJfcmVnbnVtID0gZ2RiYXJjaF9kd2FyZjJfcmVn X3RvX3JlZ251bSAoYXJjaCwgZHdhcmZfcmVnbnVtKTsKLS0gICAgICByZXR2YWwgPSB2YWx1ZV9m cm9tX3JlZ2lzdGVyIChTWU1CT0xfVFlQRSAodmFyKSwgZ2RiX3JlZ251bSwgZnJhbWUpOwotLSAg ICB9Ci0gICBlbHNlCi0gICAgIHsKLS0gICAgICBDT1JFX0FERFIgYWRkcmVzcyA9IGR3YXJmX2V4 cHJfZmV0Y2ggKGN0eCwgMCk7Ci0tCi0tICAgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZ TUJPTF9UWVBFICh2YXIpKTsKLS0gICAgICBWQUxVRV9MVkFMIChyZXR2YWwpID0gbHZhbF9tZW1v cnk7Ci0tICAgICAgc2V0X3ZhbHVlX2xhenkgKHJldHZhbCwgMSk7Ci0tICAgICAgc2V0X3ZhbHVl X3N0YWNrIChyZXR2YWwsIDEpOwotLSAgICAgIHNldF92YWx1ZV9hZGRyZXNzIChyZXR2YWwsIGFk ZHJlc3MpOwotKyAgICAgIHN3aXRjaCAoY3R4LT5sb2NhdGlvbikKLSsJewotKwljYXNlIERXQVJG X1ZBTFVFX1JFR0lTVEVSOgotKwkgIHsKLSsJICAgIHN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0 X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLSsJICAgIENPUkVfQUREUiBkd2FyZl9yZWdudW0gPSBkd2Fy Zl9leHByX2ZldGNoIChjdHgsIDApOwotKwkgICAgaW50IGdkYl9yZWdudW0gPSBnZGJhcmNoX2R3 YXJmMl9yZWdfdG9fcmVnbnVtIChhcmNoLCBkd2FyZl9yZWdudW0pOwotKwkgICAgcmV0dmFsID0g dmFsdWVfZnJvbV9yZWdpc3RlciAoU1lNQk9MX1RZUEUgKHZhciksIGdkYl9yZWdudW0sIGZyYW1l KTsKLSsJICB9Ci0rCSAgYnJlYWs7Ci0rCi0rCWNhc2UgRFdBUkZfVkFMVUVfTUVNT1JZOgotKwkg IHsKLSsJICAgIENPUkVfQUREUiBhZGRyZXNzID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsK LSsKK0BAIC00MzksNiArNTYxLDExIEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3RydWN0 IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCisgCSAgICBDT1JFX0FERFIg YWRkcmVzcyA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7CisgCSAgICBpbnQgaW5fc3RhY2tf bWVtb3J5ID0gZHdhcmZfZXhwcl9mZXRjaF9pbl9zdGFja19tZW1vcnkgKGN0eCwgMCk7CisgCiAr CSAgICAvKiBvYmplY3RfYWRkcmVzc19zZXQgY2FsbGVkIGhlcmUgaXMgcmVxdWlyZWQgaW4gQUxM T0NBVEVfVkFMVUUncwogKwkgICAgICAgQ0hFQ0tfVFlQRURFRiBmb3IgdGhlIG9iamVjdCdzIHBv c3NpYmxlCiArCSAgICAgICBEV19PUF9wdXNoX29iamVjdF9hZGRyZXNzLiAgKi8KICsJICAgIG9i amVjdF9hZGRyZXNzX3NldCAoYWRkcmVzcyk7CiArCi0rCSAgICByZXR2YWwgPSBhbGxvY2F0ZV92 YWx1ZSAoU1lNQk9MX1RZUEUgKHZhcikpOwotKwkgICAgVkFMVUVfTFZBTCAocmV0dmFsKSA9IGx2 YWxfbWVtb3J5OwotKwkgICAgc2V0X3ZhbHVlX2xhenkgKHJldHZhbCwgMSk7Ci0rCSAgICBzZXRf dmFsdWVfc3RhY2sgKHJldHZhbCwgMSk7Ci0rCSAgICBzZXRfdmFsdWVfYWRkcmVzcyAocmV0dmFs LCBhZGRyZXNzKTsKLSsJICB9Ci0rCSAgYnJlYWs7Ci0rCi0rCWNhc2UgRFdBUkZfVkFMVUVfU1RB Q0s6Ci0rCSAgewotKwkgICAgZ2RiX2J5dGUgYnl0ZXNbc2l6ZW9mIChVTE9OR0VTVCldOwotKwkg ICAgVUxPTkdFU1QgdmFsdWUgPSAoVUxPTkdFU1QpIGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7 Ci0rCSAgICBiZmRfYnl0ZSAqY29udGVudHM7Ci0rCSAgICBzaXplX3QgbiA9IGN0eC0+YWRkcl9z aXplOwotKwotKwkgICAgc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnl0ZXMsIGN0eC0+YWRkcl9z aXplLAotKwkJCQkgICAgZ2RiYXJjaF9ieXRlX29yZGVyIChjdHgtPmdkYmFyY2gpLAotKwkJCQkg ICAgdmFsdWUpOwotKwkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2 YXIpKTsKLSsJICAgIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHNfcmF3IChyZXR2YWwpOwotKwkg ICAgaWYgKG4gPiBUWVBFX0xFTkdUSCAoU1lNQk9MX1RZUEUgKHZhcikpKQotKwkgICAgICBuID0g VFlQRV9MRU5HVEggKFNZTUJPTF9UWVBFICh2YXIpKTsKLSsJICAgIG1lbWNweSAoY29udGVudHMs IGJ5dGVzLCBuKTsKLSsJICB9Ci0rCSAgYnJlYWs7Ci0rCi0rCWNhc2UgRFdBUkZfVkFMVUVfTElU RVJBTDoKLSsJICB7Ci0rCSAgICBiZmRfYnl0ZSAqY29udGVudHM7Ci0rCSAgICBzaXplX3QgbiA9 IGN0eC0+bGVuOwotKwotKwkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBF ICh2YXIpKTsKLSsJICAgIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHNfcmF3IChyZXR2YWwpOwot KwkgICAgaWYgKG4gPiBUWVBFX0xFTkdUSCAoU1lNQk9MX1RZUEUgKHZhcikpKQotKwkgICAgICBu ID0gVFlQRV9MRU5HVEggKFNZTUJPTF9UWVBFICh2YXIpKTsKLSsJICAgIG1lbWNweSAoY29udGVu dHMsIGN0eC0+ZGF0YSwgbik7Ci0rCSAgfQotKwkgIGJyZWFrOwotKwotKwlkZWZhdWx0OgotKwkg IGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQgbG9jYXRpb24g dHlwZSIpKTsKLSsJfQotICAgICB9Ci0gCi0gICBzZXRfdmFsdWVfaW5pdGlhbGl6ZWQgKHJldHZh bCwgY3R4LT5pbml0aWFsaXplZCk7Ci1AQCAtNDk0LDcgKzY2NCw3IEBAIGR3YXJmMl9sb2NfZGVz Y19uZWVkc19mcmFtZSAoZ2RiX2J5dGUgKmRhdGEsIHVuc2lnbmVkIHNob3J0IHNpemUsCi0gCi0g ICBkd2FyZl9leHByX2V2YWwgKGN0eCwgZGF0YSwgc2l6ZSk7Ci0gCi0tICBpbl9yZWcgPSBjdHgt PmluX3JlZzsKLSsgIGluX3JlZyA9IGN0eC0+bG9jYXRpb24gPT0gRFdBUkZfVkFMVUVfUkVHSVNU RVI7Ci0gCi0gICBpZiAoY3R4LT5udW1fcGllY2VzID4gMCkKLSAgICAgewotQEAgLTUwMyw3ICs2 NzMsNyBAQCBkd2FyZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUgKGdkYl9ieXRlICpkYXRhLCB1bnNp Z25lZCBzaG9ydCBzaXplLAotICAgICAgIC8qIElmIHRoZSBsb2NhdGlvbiBoYXMgc2V2ZXJhbCBw aWVjZXMsIGFuZCBhbnkgb2YgdGhlbSBhcmUgaW4KLSAgICAgICAgICByZWdpc3RlcnMsIHRoZW4g d2Ugd2lsbCBuZWVkIGEgZnJhbWUgdG8gZmV0Y2ggdGhlbSBmcm9tLiAgKi8KLSAgICAgICBmb3Ig KGkgPSAwOyBpIDwgY3R4LT5udW1fcGllY2VzOyBpKyspCi0tICAgICAgICBpZiAoY3R4LT5waWVj ZXNbaV0uaW5fcmVnKQotKyAgICAgICAgaWYgKGN0eC0+cGllY2VzW2ldLmxvY2F0aW9uID09IERX QVJGX1ZBTFVFX1JFR0lTVEVSKQotICAgICAgICAgICBpbl9yZWcgPSAxOwotICAgICB9Ci0gCi1A QCAtNzM1LDcgKzkwNSw3IEBAIHN0YXRpYyBpbnQKKyAJICAgIHJldHZhbCA9IGFsbG9jYXRlX3Zh bHVlIChTWU1CT0xfVFlQRSAodmFyKSk7CisgCSAgICBWQUxVRV9MVkFMIChyZXR2YWwpID0gbHZh bF9tZW1vcnk7CisgCSAgICBzZXRfdmFsdWVfbGF6eSAocmV0dmFsLCAxKTsKK0BAIC04MTUsNyAr OTQyLDcgQEAgc3RhdGljIGludAogIGxvY2xpc3RfZGVzY3JpYmVfbG9jYXRpb24gKHN0cnVjdCBz eW1ib2wgKnN5bWJvbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKICB7CiAgICAvKiBGSVhNRTog Q291bGQgcHJpbnQgdGhlIGVudGlyZSBsaXN0IG9mIGxvY2F0aW9ucy4gICovCkBAIC01NTIyLDcg KzQ4NDcsNyBAQCBpbmRleCBjM2Y2ZDQwLi5hZjgxNmY0IDEwMDY0NAogICAgcmV0dXJuIDE7CiAg fQogIAotQEAgLTc1MSwxNiArOTIxLDU2IEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChz dHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTgzMSwx NiArOTU4LDU2IEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9sICpz eW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAogICAgZGF0YSA9IGZpbmRfbG9jYXRp b25fZXhwcmVzc2lvbiAoZGxiYXRvbiwgJnNpemUsIGF4LT5zY29wZSk7CiAgICBpZiAoZGF0YSA9 PSBOVUxMKQpAQCAtNTU5OSw3ICs0OTI0LDcgQEAgaW5kZXggMGJmY2ZjYS4uMDEwMThkNiAxMDA2 NDQKICAKICAjZW5kaWYgLyogZHdhcmYybG9jLmggKi8KIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYy cmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQK K2luZGV4IDRjY2UzNmIuLmQzOTQ4ODcgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYycmVhZC5jCiAr KysgYi9nZGIvZHdhcmYycmVhZC5jCiBAQCAtNDgsNiArNDgsMTIgQEAKQEAgLTU2NjYsNyArNDk5 MSw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICAgIGNoYXIgKm5hbWU7CiAg ICAgIGNoYXIgKmRpcm5hbWU7CiAgCi1AQCAtNjkxLDYgKzcxMiwxMSBAQCBzdHJ1Y3QgZmllbGRf aW5mbworQEAgLTY4OSw2ICs3MTAsMTEgQEAgc3RydWN0IGZpZWxkX2luZm8KICAgICAgaW50IG5m bmZpZWxkczsKICAgIH07CiAgCkBAIC01Njc4LDcgKzUwMDMsNyBAQCBpbmRleCA3ZjA0NDI3Li4z MTUwNGZlIDEwMDY0NAogIC8qIE9uZSBpdGVtIG9uIHRoZSBxdWV1ZSBvZiBjb21waWxhdGlvbiB1 bml0cyB0byByZWFkIGluIGZ1bGwgc3ltYm9scwogICAgIGZvci4gICovCiAgc3RydWN0IGR3YXJm Ml9xdWV1ZV9pdGVtCi1AQCAtODAyLDcgKzgyOCwxMCBAQCBzdGF0aWMgdm9pZCBzY2FuX3BhcnRp YWxfc3ltYm9scyAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKiwKK0BAIC04MDAsNyArODI2LDEw IEBAIHN0YXRpYyB2b2lkIHNjYW5fcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3QgcGFydGlhbF9kaWVf aW5mbyAqLAogIHN0YXRpYyB2b2lkIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKiwKICAJCQkJc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKQEAgLTU2OTAsNyArNTAx NSw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCiAgc3RhdGljIHZvaWQgYWRk X3BhcnRpYWxfbmFtZXNwYWNlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJCQkg ICBDT1JFX0FERFIgKmxvd3BjLCBDT1JFX0FERFIgKmhpZ2hwYywKLUBAIC04MjcsNiArODU2LDEw IEBAIHN0YXRpYyB2b2lkIGR3YXJmMl9wc3ltdGFiX3RvX3N5bXRhYiAoc3RydWN0IHBhcnRpYWxf c3ltdGFiICopOworQEAgLTgyNSw2ICs4NTQsMTAgQEAgc3RhdGljIHZvaWQgZHdhcmYyX3BzeW10 YWJfdG9fc3ltdGFiIChzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7CiAgCiAgc3RhdGljIHZvaWQg cHN5bXRhYl90b19zeW10YWJfMSAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwogIApAQCAtNTcw MSw3ICs1MDI2LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICBzdGF0aWMgdm9p ZCBkd2FyZjJfcmVhZF9hYmJyZXZzIChiZmQgKmFiZmQsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsK ICAKICBzdGF0aWMgdm9pZCBkd2FyZjJfZnJlZV9hYmJyZXZfdGFibGUgKHZvaWQgKik7Ci1AQCAt OTQ3LDggKzk4MCwxMyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKnRhZ190eXBlX3RvX3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOworQEAgLTk0NSw4ICs5NzgsMTMg QEAgc3RhdGljIHN0cnVjdCB0eXBlICp0YWdfdHlwZV90b190eXBlIChzdHJ1Y3QgZGllX2luZm8g Kiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKnJlYWRfdHlw ZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIApAQCAtNTcx NSw3ICs1MDQwLDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICBzdGF0aWMgY2hh ciAqdHlwZW5hbWVfY29uY2F0IChzdHJ1Y3Qgb2JzdGFjayAqLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnByZWZpeCwgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqc3VmZml4LAotQEAgLTk2Niw3ICsxMDA0LDggQEAgc3RhdGlj IGludCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkLCBDT1JFX0FERFIgKiwgQ09SRV9BRERS ICosCitAQCAtOTY0LDcgKzEwMDIsOCBAQCBzdGF0aWMgaW50IGR3YXJmMl9yYW5nZXNfcmVhZCAo dW5zaWduZWQsIENPUkVfQUREUiAqLCBDT1JFX0FERFIgKiwKICAJCQkgICAgICAgc3RydWN0IGR3 YXJmMl9jdSAqLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7CiAgCiAgc3RhdGljIGludCBkd2Fy ZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICosCkBAIC01NzI1LDcgKzUwNTAsNyBA QCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIAogIHN0YXRpYyB2b2lkIGdldF9zY29w ZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAogIAkJCQkgQ09SRV9BRERSICosIENPUkVf QUREUiAqLAotQEAgLTk5MCwxNyArMTAyOSwyNSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfYXR0YWNo X2ZuX2ZpZWxkc190b190eXBlIChzdHJ1Y3QgZmllbGRfaW5mbyAqLAorQEAgLTk4OCwxNyArMTAy NywyNSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfYXR0YWNoX2ZuX2ZpZWxkc190b190eXBlIChzdHJ1 Y3QgZmllbGRfaW5mbyAqLAogIAogIHN0YXRpYyB2b2lkIHByb2Nlc3Nfc3RydWN0dXJlX3Njb3Bl IChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKQEAgLTU3NTQsNyAr NTA3OSw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgc3RhdGljIGNvbnN0IGNo YXIgKm5hbWVzcGFjZV9uYW1lIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKICAJCQkJICAgaW50ICpp c19hbm9ueW1vdXMsIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCi1AQCAtMTAzNiw2ICsxMDgzLDkg QEAgc3RhdGljIHZvaWQgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdh cmYyX2N1ICopOworQEAgLTEwMzQsNiArMTA4MSw5IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfZGll IChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0aWMgY2hh ciAqZHdhcmYyX2xpbmthZ2VfbmFtZSAoc3RydWN0IGRpZV9pbmZvICosIHN0cnVjdCBkd2FyZjJf Y3UgKik7CiAgCkBAIC01NzY0LDcgKzUwODksNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEw MDY0NAogIHN0YXRpYyBjaGFyICpkd2FyZjJfY2Fub25pY2FsaXplX25hbWUgKGNoYXIgKiwgc3Ry dWN0IGR3YXJmMl9jdSAqLAogIAkJCQkgICAgICAgc3RydWN0IG9ic3RhY2sgKik7CiAgCi1AQCAt MTA3OCw3ICsxMTI4LDcgQEAgc3RhdGljIGludCBpc19yZWZfYXR0ciAoc3RydWN0IGF0dHJpYnV0 ZSAqKTsKK0BAIC0xMDc2LDcgKzExMjYsNyBAQCBzdGF0aWMgaW50IGlzX3JlZl9hdHRyIChzdHJ1 Y3QgYXR0cmlidXRlICopOwogIAogIHN0YXRpYyB1bnNpZ25lZCBpbnQgZHdhcmYyX2dldF9yZWZf ZGllX29mZnNldCAoc3RydWN0IGF0dHJpYnV0ZSAqKTsKICAKQEAgLTU3NzMsNyArNTA5OCw3IEBA IGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCiAgc3RhdGljIHN0cnVjdCBkaWVfaW5m byAqZm9sbG93X2RpZV9yZWZfb3Jfc2lnIChzdHJ1Y3QgZGllX2luZm8gKiwKICAJCQkJCSAgICAg ICBzdHJ1Y3QgYXR0cmlidXRlICosCi1AQCAtMTE1MCw2ICsxMjAwLDkgQEAgc3RhdGljIHZvaWQg YWdlX2NhY2hlZF9jb21wX3VuaXRzICh2b2lkKTsKK0BAIC0xMTQ4LDYgKzExOTgsOSBAQCBzdGF0 aWMgdm9pZCBhZ2VfY2FjaGVkX2NvbXBfdW5pdHMgKHZvaWQpOwogIAogIHN0YXRpYyB2b2lkIGZy ZWVfb25lX2NhY2hlZF9jb21wX3VuaXQgKHZvaWQgKik7CiAgCkBAIC01NzgzLDcgKzUxMDgsNyBA QCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqc2V0 X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICBzdHJ1 Y3QgZHdhcmYyX2N1ICopOwogIAotQEAgLTExNjksMjIgKzEyMjIsMzEgQEAgc3RhdGljIHZvaWQg ZHdhcmYyX2NsZWFyX21hcmtzIChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICopOworQEAgLTEx NjcsMjIgKzEyMjAsMzEgQEAgc3RhdGljIHZvaWQgZHdhcmYyX2NsZWFyX21hcmtzIChzdHJ1Y3Qg ZHdhcmYyX3Blcl9jdV9kYXRhICopOwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X2RpZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpOwogIApAQCAt NTgyNCw3ICs1MTQ5LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB9CiAgCiAg LyogV2hlbiBsb2FkaW5nIHNlY3Rpb25zLCB3ZSBjYW4gZWl0aGVyIGxvb2sgZm9yICIuPG5hbWU+ Iiwgb3IgZm9yCi1AQCAtMTI3NywxMCArMTMzOSwxMyBAQCBkd2FyZjJfbG9jYXRlX3NlY3Rpb25z IChiZmQgKmFiZmQsIGFzZWN0aW9uICpzZWN0cCwgdm9pZCAqaWdub3JlX3B0cikKK0BAIC0xMjc1 LDEwICsxMzM3LDEzIEBAIGR3YXJmMl9sb2NhdGVfc2VjdGlvbnMgKGJmZCAqYWJmZCwgYXNlY3Rp b24gKnNlY3RwLCB2b2lkICppZ25vcmVfcHRyKQogIH0KICAKICAvKiBEZWNvbXByZXNzIGEgc2Vj dGlvbiB0aGF0IHdhcyBjb21wcmVzc2VkIHVzaW5nIHpsaWIuICBTdG9yZSB0aGUKQEAgLTU4NDAs NyArNTE2NSw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdkYl9ieXRlICoqb3V0YnVmLCBiZmRfc2l6ZV90eXBlICpvdXRzaXplKQog IHsKICAgIGJmZCAqYWJmZCA9IG9iamZpbGUtPm9iZmQ7Ci1AQCAtMTI5Nyw2ICsxMzYyLDcgQEAg emxpYl9kZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlv biAqc2VjdHAsCitAQCAtMTI5NSw2ICsxMzYwLDcgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24g KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCiAgICB6X3N0cmVhbSBz dHJtOwogICAgaW50IHJjOwogICAgaW50IGhlYWRlcl9zaXplID0gMTI7CkBAIC01ODQ4LDcgKzUx NzMsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIAogICAgaWYgKGJmZF9zZWVr IChhYmZkLCBzZWN0cC0+ZmlsZXBvcywgU0VFS19TRVQpICE9IDAKICAgICAgICB8fCBiZmRfYnJl YWQgKGNvbXByZXNzZWRfYnVmZmVyLCBjb21wcmVzc2VkX3NpemUsIGFiZmQpICE9IGNvbXByZXNz ZWRfc2l6ZSkKLUBAIC0xMzI2LDggKzEzOTIsMTMgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24g KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCitAQCAtMTMyNCw4ICsx MzkwLDEzIEBAIHpsaWJfZGVjb21wcmVzc19zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwgYXNlY3Rpb24gKnNlY3RwLAogICAgc3RybS5hdmFpbF9pbiA9IGNvbXByZXNzZWRfc2l6ZSAt IGhlYWRlcl9zaXplOwogICAgc3RybS5uZXh0X2luID0gKEJ5dGVmKikgY29tcHJlc3NlZF9idWZm ZXIgKyBoZWFkZXJfc2l6ZTsKICAgIHN0cm0uYXZhaWxfb3V0ID0gdW5jb21wcmVzc2VkX3NpemU7 CkBAIC01ODY0LDcgKzUxODksNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAg cmMgPSBpbmZsYXRlSW5pdCAoJnN0cm0pOwogICAgd2hpbGUgKHN0cm0uYXZhaWxfaW4gPiAwKQog ICAgICB7Ci1AQCAtMTM0OCwyNiArMTQxOSwxNzYgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24g KHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBhc2VjdGlvbiAqc2VjdHAsCitAQCAtMTM0NiwyNiAr MTQxNywxNzYgQEAgemxpYl9kZWNvbXByZXNzX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlLCBhc2VjdGlvbiAqc2VjdHAsCiAgICAgIGVycm9yIChfKCJEd2FyZiBFcnJvcjogY29uY2x1 ZGluZyBEV0FSRiB1bmNvbXByZXNzaW9uIGluICclcyc6ICVkIiksCiAgICAgICAgICAgICBiZmRf Z2V0X2ZpbGVuYW1lIChhYmZkKSwgcmMpOwogIApAQCAtNjA0Niw3ICs1MzcxLDcgQEAgaW5kZXgg N2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAKICAgIGlmIChpbmZvLT5hc2VjdGlvbiA9PSBOVUxM IHx8IGluZm8tPnNpemUgPT0gMCkKICAgICAgcmV0dXJuOwotQEAgLTEzODAsNyArMTYwMSw3IEBA IGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdh cmYyX3NlY3Rpb25faW5mbyAqaW5mbykKK0BAIC0xMzc4LDcgKzE1OTksNyBAQCBkd2FyZjJfcmVh ZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9u X2luZm8gKmluZm8pCiAgICAgICAgLyogVXBvbiBkZWNvbXByZXNzaW9uLCB1cGRhdGUgdGhlIGJ1 ZmZlciBhbmQgaXRzIHNpemUuICAqLwogICAgICAgIGlmIChzdHJuY21wIChoZWFkZXIsICJaTElC Iiwgc2l6ZW9mIChoZWFkZXIpKSA9PSAwKQogICAgICAgICAgewpAQCAtNjA1NSw3ICs1MzgwLDcg QEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAJCQkJICAgJmluZm8tPnNpemUpOwog ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9Ci1AQCAtMTQwMyw3ICsxNjI0LDcgQEAgZHdh cmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJf c2VjdGlvbl9pbmZvICppbmZvKQorQEAgLTE0MDEsNyArMTYyMiw3IEBAIGR3YXJmMl9yZWFkX3Nl Y3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5m byAqaW5mbykKICAKICAgICAgICBpZiAocmV0YnVmICE9IE1BUF9GQUlMRUQpCiAgCXsKQEAgLTYw NjQsNyArNTM4OSw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCSAgaW5mby0+ YnVmZmVyID0gcmV0YnVmICsgKHNlY3RwLT5maWxlcG9zICYgKHBhZ2VzaXplIC0gMSkpIDsKICAJ ICByZXR1cm47CiAgCX0KLUBAIC0xNDExLDggKzE2MzIsMTUgQEAgZHdhcmYyX3JlYWRfc2VjdGlv biAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICpp bmZvKQorQEAgLTE0MDksOCArMTYzMCwxNSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCiAgI2Vu ZGlmCiAgCiAgICAvKiBJZiB3ZSBnZXQgaGVyZSwgd2UgYXJlIGEgbm9ybWFsLCBub3QtY29tcHJl c3NlZCBzZWN0aW9uLiAgKi8KQEAgLTYwODIsNyArNTQwNyw3IEBAIGluZGV4IDdmMDQ0MjcuLjMx NTA0ZmUgMTAwNjQ0CiAgCiAgICAvKiBXaGVuIGRlYnVnZ2luZyAubyBmaWxlcywgd2UgbWF5IG5l ZWQgdG8gYXBwbHkgcmVsb2NhdGlvbnM7IHNlZQogICAgICAgaHR0cDovL3NvdXJjZXdhcmUub3Jn L21sL2dkYi1wYXRjaGVzLzIwMDItMDQvbXNnMDAxMzYuaHRtbCAuCi1AQCAtMTQyMSw2ICsxNjQ5 LDggQEAgZHdhcmYyX3JlYWRfc2VjdGlvbiAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHN0cnVj dCBkd2FyZjJfc2VjdGlvbl9pbmZvICppbmZvKQorQEAgLTE0MTksNiArMTY0Nyw4IEBAIGR3YXJm Ml9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3Nl Y3Rpb25faW5mbyAqaW5mbykKICAgIHJldGJ1ZiA9IHN5bWZpbGVfcmVsb2NhdGVfZGVidWdfc2Vj dGlvbiAoYWJmZCwgc2VjdHAsIGJ1Zik7CiAgICBpZiAocmV0YnVmICE9IE5VTEwpCiAgICAgIHsK QEAgLTYwOTEsNyArNTQxNiw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICAg ICAgaW5mby0+YnVmZmVyID0gcmV0YnVmOwogICAgICAgIHJldHVybjsKICAgICAgfQotQEAgLTE0 MjksNiArMTY1OSwxOSBAQCBkd2FyZjJfcmVhZF9zZWN0aW9uIChzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSwgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKmluZm8pCitAQCAtMTQyNyw2ICsxNjU3 LDE5IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1 Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAgICAgICB8fCBiZmRfYnJlYWQgKGJ1Ziwg aW5mby0+c2l6ZSwgYWJmZCkgIT0gaW5mby0+c2l6ZSkKICAgICAgZXJyb3IgKF8oIkR3YXJmIEVy cm9yOiBDYW4ndCByZWFkIERXQVJGIGRhdGEgZnJvbSAnJXMnIiksCiAgCSAgIGJmZF9nZXRfZmls ZW5hbWUgKGFiZmQpKTsKQEAgLTYxMTEsNyArNTQzNiw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0 ZmUgMTAwNjQ0CiAgfQogIAogIC8qIEZpbGwgaW4gU0VDVFAsIEJVRlAgYW5kIFNJWkVQIHdpdGgg c2VjdGlvbiBpbmZvLCBnaXZlbiBPQkpGSUxFIGFuZAotQEAgLTE4MTIsNiArMjA1NSwzNyBAQCBs b29rdXBfc2lnbmF0dXJlZF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgVUxPTkdFU1Qg c2lnKQorQEAgLTE4MTAsNiArMjA1MywzNyBAQCBsb29rdXBfc2lnbmF0dXJlZF90eXBlIChzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgVUxPTkdFU1Qgc2lnKQogICAgcmV0dXJuIGVudHJ5OwogIH0K ICAKQEAgLTYxNDksNyArNTQ3NCw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAg LyogU3Vicm91dGluZSBvZiBwcm9jZXNzX3R5cGVfY29tcF91bml0IGFuZCBkd2FyZjJfYnVpbGRf cHN5bXRhYnNfaGFyZAogICAgIHRvIGNvbWJpbmUgdGhlIGNvbW1vbiBwYXJ0cy4KICAgICBQcm9j ZXNzIGEgY29tcGlsYXRpb24gdW5pdCBmb3IgYSBwc3ltdGFiLgotQEAgLTIzNjEsNyArMjYzNSw3 IEBAIHBhcnRpYWxfZGllX3BhcmVudF9zY29wZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBk aSwKK0BAIC0yMzU5LDcgKzI2MzMsNyBAQCBwYXJ0aWFsX2RpZV9wYXJlbnRfc2NvcGUgKHN0cnVj dCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksCiAgCSBpZ25vcmluZyB0aGVtLiAgKi8KICAgICAgICBj b21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCiAgCQkgXygidW5oYW5kbGVkIGNvbnRhaW5p bmcgRElFIHRhZyAlZCBmb3IgRElFIGF0ICVkIiksCkBAIC02MTU4LDcgKzU0ODMsNyBAQCBpbmRl eCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgICAgIHBhcmVudC0+c2NvcGUgPSBncmFuZHBh cmVudF9zY29wZTsKICAgICAgfQogIAotQEAgLTIzNzYsMTIgKzI2NTAsMjIgQEAgcGFydGlhbF9k aWVfZnVsbF9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAorQEAgLTIzNzQsMTIg KzI2NDgsMjIgQEAgcGFydGlhbF9kaWVfZnVsbF9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5m byAqcGRpLAogIAkJICAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIHsKICAgIGNoYXIgKnBh cmVudF9zY29wZTsKQEAgLTYxODUsNyArNTUxMCw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUg MTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMjM5NywxMiArMjY4MSw5IEBAIGFkZF9w YXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtMjM5NSwxMiArMjY3OSw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3Ry dWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBi YXNlYWRkciA9IEFOT0ZGU0VUIChvYmpmaWxlLT5zZWN0aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RF WFQgKG9iamZpbGUpKTsKICAKQEAgLTYyMDEsNyArNTUyNiw3IEBAIGluZGV4IDdmMDQ0MjcuLjMx NTA0ZmUgMTAwNjQ0CiAgCiAgICBpZiAoYWN0dWFsX25hbWUgPT0gTlVMTCkKICAgICAgYWN0dWFs X25hbWUgPSBwZGktPm5hbWU7Ci1AQCAtMjQ5Myw2ICsyNzc0LDEyIEBAIGFkZF9wYXJ0aWFsX3N5 bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtMjQ5MSw2ICsyNzcyLDEyIEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRp YWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkJICAgJm9iamZpbGUt Pmdsb2JhbF9wc3ltYm9scywKICAJCQkgICAwLCAoQ09SRV9BRERSKSAwLCBjdS0+bGFuZ3VhZ2Us IG9iamZpbGUpOwogICAgICAgIGJyZWFrOwpAQCAtNjIxNCw3ICs1NTM5LDcgQEAgaW5kZXggN2Yw NDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgICAgY2FzZSBEV19UQUdfY2xhc3NfdHlwZToKICAgICAg Y2FzZSBEV19UQUdfaW50ZXJmYWNlX3R5cGU6CiAgICAgIGNhc2UgRFdfVEFHX3N0cnVjdHVyZV90 eXBlOgotQEAgLTI1MzQsMjIgKzI4MjEsNiBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBw YXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTI1MzIsMjIg KzI4MTksNiBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpw ZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBAIC02 MjM3LDcgKzU1NjIsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgaWYgKGJ1 aWx0X2FjdHVhbF9uYW1lKQogICAgICB4ZnJlZSAoYWN0dWFsX25hbWUpOwogIH0KLUBAIC0yNTU5 LDkgKzI4MzAsOSBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTI1NTcsOSArMjgyOCw5IEBAIGFkZF9w YXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICAgbmFtZSBsaXN0ZWQgaW4gdGhlIGRpZS4gICovCiAgCiAgc3RhdGljIGlu dApAQCAtNjI0OSw3ICs1NTc0LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAg ICAgewogICAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6CiAgICAgIGNhc2UgRFdfVEFHX3R5cGVk ZWY6Ci1AQCAtMjU3MSw3ICsyODQyLDIzIEBAIHBkaV9uZWVkc19uYW1lc3BhY2UgKGVudW0gZHdh cmZfdGFnIHRhZykKK0BAIC0yNTY5LDcgKzI4NDAsMjMgQEAgcGRpX25lZWRzX25hbWVzcGFjZSAo ZW51bSBkd2FyZl90YWcgdGFnKQogICAgICBjYXNlIERXX1RBR191bmlvbl90eXBlOgogICAgICBj YXNlIERXX1RBR19lbnVtZXJhdGlvbl90eXBlOgogICAgICBjYXNlIERXX1RBR19lbnVtZXJhdG9y OgpAQCAtNjI3Myw3ICs1NTk4LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAg ICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gMDsKICAgICAgfQotQEAgLTI2MDQsMTIgKzI4OTEs MTIgQEAgc3RhdGljIHZvaWQKK0BAIC0yNjAyLDEyICsyODg5LDEyIEBAIHN0YXRpYyB2b2lkCiAg YWRkX3BhcnRpYWxfbW9kdWxlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLCBDT1JFX0FE RFIgKmxvd3BjLAogIAkJICAgIENPUkVfQUREUiAqaGlnaHBjLCBpbnQgbmVlZF9wYywgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgewpAQCAtNjI5MCw3ICs1NjE1LDcgQEAgaW5kZXggN2YwNDQyNy4u MzE1MDRmZSAxMDA2NDQKICB9CiAgCiAgLyogUmVhZCBhIHBhcnRpYWwgZGllIGNvcnJlc3BvbmRp bmcgdG8gYSBzdWJwcm9ncmFtIGFuZCBjcmVhdGUgYSBwYXJ0aWFsCi1AQCAtMjcwMCwyNyArMjk4 Nyw2IEBAIGd1ZXNzX3N0cnVjdHVyZV9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3Ry dWN0X3BkaSwKK0BAIC0yNjk4LDI3ICsyOTg1LDYgQEAgZ3Vlc3Nfc3RydWN0dXJlX25hbWUgKHN0 cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpzdHJ1Y3RfcGRpLAogIAogICAgICAgIGlmIChyZWFsX3Bk aS0+ZGllX3BhcmVudCAhPSBOVUxMKQogIAlyZXR1cm47CkBAIC02MzE4LDcgKzU2NDMsNyBAQCBp bmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTMyOTcsNiAr MzU2MywxNCBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTMyOTUsNiArMzU2MSwxNCBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICBjYXNlIERXX1RBR19pbXBv cnRlZF9kZWNsYXJhdGlvbjoKICAgICAgY2FzZSBEV19UQUdfaW1wb3J0ZWRfbW9kdWxlOgogICAg ICAgIHByb2Nlc3NpbmdfaGFzX25hbWVzcGFjZV9pbmZvID0gMTsKQEAgLTYzMzMsNyArNTY1OCw3 IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICAgICAgaWYgKGRpZS0+Y2hpbGQg IT0gTlVMTCAmJiAoZGllLT50YWcgPT0gRFdfVEFHX2ltcG9ydGVkX2RlY2xhcmF0aW9uCiAgCQkJ CSB8fCBjdS0+bGFuZ3VhZ2UgIT0gbGFuZ3VhZ2VfZm9ydHJhbikpCiAgCWNvbXBsYWludCAoJnN5 bWZpbGVfY29tcGxhaW50cywgXygiVGFnICclcycgaGFzIHVuZXhwZWN0ZWQgY2hpbGRyZW4iKSwK LUBAIC0zMzEyLDQxICszNTg2LDY4IEBAIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzMxMCw0MSArMzU4NCw2OCBAQCBwcm9jZXNz X2RpZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIC8qIFJl dHVybiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgRElFLCBiYXNlZCBvbiBpdHMgRFdfQVRf bmFtZS4KICAgICBJZiBzY29wZSBxdWFsaWZpZXJzIGFyZSBhcHByb3ByaWF0ZSB0aGV5IHdpbGwg YmUgYWRkZWQuICBUaGUgcmVzdWx0CiAgICAgd2lsbCBiZSBhbGxvY2F0ZWQgb24gdGhlIG9iamZp bGVfb2JzdGFjaywgb3IgTlVMTCBpZiB0aGUgRElFIGRvZXMKQEAgLTY0MjMsNyArNTc0OCw3IEBA IGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgLyogUmVhZCB0aGUgaW1wb3J0IHN0YXRl bWVudCBzcGVjaWZpZWQgYnkgdGhlIGdpdmVuIGRpZSBhbmQgcmVjb3JkIGl0LiAgKi8KICAKICBz dGF0aWMgdm9pZAotQEAgLTMzNTYsOSArMzY1NywxNSBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zMzU0LDkg KzM2NTUsMTUgQEAgcmVhZF9pbXBvcnRfc3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgZGllX2luZm8gKmltcG9ydGVkX2RpZTsK ICAgIGNvbnN0IGNoYXIgKmltcG9ydGVkX25hbWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9u YW1lX3ByZWZpeDsKQEAgLTY0NDEsNyArNTc2Niw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUg MTAwNjQ0CiAgICBpbXBvcnRfYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2ltcG9ydCwg Y3UpOwogICAgaWYgKGltcG9ydF9hdHRyID09IE5VTEwpCiAgICAgIHsKLUBAIC0zNDA2LDE3ICsz NzEzLDI3IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTM0MDQsMTcgKzM3MTEsMjcgQEAgcmVhZF9pbXBvcnRf c3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg ICAgICAgcmV0dXJuOwogICAgICB9CiAgCkBAIC02NDc1LDcgKzU4MDAsNyBAQCBpbmRleCA3ZjA0 NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgICAgIGNhbm9uaWNhbF9uYW1lID0gYWxsb2NhIChzdHJs ZW4gKGltcG9ydGVkX25hbWVfcHJlZml4KSArIDIgKyBzdHJsZW4gKGltcG9ydGVkX25hbWUpICsg MSk7CiAgICAgICAgc3RyY3B5IChjYW5vbmljYWxfbmFtZSwgaW1wb3J0ZWRfbmFtZV9wcmVmaXgp OwogICAgICAgIHN0cmNhdCAoY2Fub25pY2FsX25hbWUsICI6OiIpOwotQEAgLTM0MjcsOCArMzc0 NCwxNCBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNDI1LDggKzM3NDIsMTQgQEAgcmVhZF9pbXBvcnRfc3Rh dGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAg ICAgY2Fub25pY2FsX25hbWUgPSBhbGxvY2EgKHN0cmxlbiAoaW1wb3J0ZWRfbmFtZSkgKyAxKTsK ICAgICAgICBzdHJjcHkgKGNhbm9uaWNhbF9uYW1lLCBpbXBvcnRlZF9uYW1lKTsKICAgICAgfQpA QCAtNjQ5Miw3ICs1ODE3LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB9CiAg CiAgc3RhdGljIHZvaWQKLUBAIC0zNjk3LDYgKzQwMjAsMTQgQEAgaW5oZXJpdF9hYnN0cmFjdF9k aWVzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzY5 NSw2ICs0MDE4LDE0IEBAIGluaGVyaXRfYWJzdHJhY3RfZGllcyAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAK ICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9hYnN0cmFjdF9vcmlnaW4sIGN1KTsK QEAgLTY1MDcsNyArNTgzMiw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICBp ZiAoIWF0dHIpCiAgICAgIHJldHVybjsKICAKLUBAIC0zNzk1LDYgKzQxMjYsNyBAQCByZWFkX2Z1 bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BA IC0zNzkzLDYgKzQxMjQsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIGNoYXIgKm5hbWU7CiAgICBDT1JFX0FERFIgYmFz ZWFkZHI7CiAgICBzdHJ1Y3QgYmxvY2sgKmJsb2NrOwpAQCAtNjUxNSw3ICs1ODQwLDcgQEAgaW5k ZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgIGludCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50 YWcgPT0gRFdfVEFHX2lubGluZWRfc3Vicm91dGluZSk7CiAgCiAgICBpZiAoaW5saW5lZF9mdW5j KQotQEAgLTM4MTMsMTMgKzQxNDUsMjMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzgxMSwxMyArNDE0MywyMyBAQCBy ZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAKICAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywg U0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwogIApAQCAtNjU0Miw3ICs1ODY3LDcgQEAgaW5kZXgg N2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgIGxvd3BjICs9IGJhc2VhZGRyOwogICAgaGlnaHBj ICs9IGJhc2VhZGRyOwogIAotQEAgLTM4NDYsMTQgKzQxODgsMTkgQEAgcmVhZF9mdW5jX3Njb3Bl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzg0NCwx NCArNDE4NiwxOSBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGN1LT5saXN0X2luX3Njb3BlID0gJmxvY2FsX3N5bWJv bHM7CiAgCkBAIC02NTY5LDcgKzU4OTQsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0 NAogICAgICB9CiAgCiAgICBpbmhlcml0X2Fic3RyYWN0X2RpZXMgKGRpZSwgY3UpOwotQEAgLTM4 NjksNiArNDIxNiwxMyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zODY3LDYgKzQyMTQsMTMgQEAgcmVhZF9mdW5jX3Nj b3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkJZGV0 ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSksCiAgCQkJcHJvY2Vzc2luZ19oYXNfbmFtZXNwYWNlX2lu Zm8pOwogIApAQCAtNjU4Myw3ICs1OTA4LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2 NDQKICAgIC8qIElmIHdlIGhhdmUgYWRkcmVzcyByYW5nZXMsIHJlY29yZCB0aGVtLiAgKi8KICAg IGR3YXJmMl9yZWNvcmRfYmxvY2tfcmFuZ2VzIChkaWUsIGJsb2NrLCBiYXNlYWRkciwgY3UpOwog ICAgCi1AQCAtMzkwNSw3ICs0MjU5LDcgQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzkwMyw3ICs0MjU3 LDcgQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICBhcyBtdWx0aXBsZSBsZXhpY2FsIGJsb2Nrcz8gIEhh bmRsaW5nIGNoaWxkcmVuIGluIGEgc2FuZSB3YXkgd291bGQKICAgICAgIGJlIG5hc3R5LiAgTWln aHQgYmUgZWFzaWVyIHRvIHByb3Blcmx5IGV4dGVuZCBnZW5lcmljIGJsb2NrcyB0byAKICAgICAg IGRlc2NyaWJlIHJhbmdlcy4gICovCkBAIC02NTkyLDcgKzU5MTcsNyBAQCBpbmRleCA3ZjA0NDI3 Li4zMTUwNGZlIDEwMDY0NAogICAgICByZXR1cm47CiAgICBsb3dwYyArPSBiYXNlYWRkcjsKICAg IGhpZ2hwYyArPSBiYXNlYWRkcjsKLUBAIC0zOTIyLDcgKzQyNzYsNyBAQCByZWFkX2xleGljYWxf YmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC0zOTIwLDcgKzQyNzQsNyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgfQogICAgbmV3ID0gcG9w X2NvbnRleHQgKCk7CiAgCkBAIC02NjAxLDcgKzU5MjYsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUw NGZlIDEwMDY0NAogICAgICB7CiAgICAgICAgc3RydWN0IGJsb2NrICpibG9jawogICAgICAgICAg PSBmaW5pc2hfYmxvY2sgKDAsICZsb2NhbF9zeW1ib2xzLCBuZXctPm9sZF9ibG9ja3MsIG5ldy0+ c3RhcnRfYWRkciwKLUBAIC00MDc3LDcgKzQ0MzEsOCBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVu c2lnbmVkIG9mZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAorQEAgLTQwNzUsNyArNDQyOSw4 IEBAIGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQgb2Zmc2V0LCBDT1JFX0FERFIgKmxvd19y ZXR1cm4sCiAgICAgZGlzY29udGludW91cywgaS5lLiBkZXJpdmVkIGZyb20gRFdfQVRfcmFuZ2Vz IGluZm9ybWF0aW9uLiAgKi8KICBzdGF0aWMgaW50CiAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3BjLApAQCAtNjYxMSw3ICs1OTM2LDcg QEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyOwogICAgQ09SRV9BRERSIGxvdyA9IDA7Ci1AQCAtNDEwNSw3ICs0NDYwLDcgQEAgZHdh cmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3Bj LAorQEAgLTQxMDMsNyArNDQ1OCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKICAJewogIAkgIC8qIFZhbHVlIG9mIHRoZSBE V19BVF9yYW5nZXMgYXR0cmlidXRlIGlzIHRoZSBvZmZzZXQgaW4gdGhlCiAgCSAgICAgLmRlYnVn X3JhbmdlcyBzZWN0aW9uLiAgKi8KQEAgLTY2MjAsNyArNTk0NSw3IEBAIGluZGV4IDdmMDQ0Mjcu LjMxNTA0ZmUgMTAwNjQ0CiAgCSAgICByZXR1cm4gMDsKICAJICAvKiBGb3VuZCBkaXNjb250aW51 b3VzIHJhbmdlIG9mIGFkZHJlc3Nlcy4gICovCiAgCSAgcmV0ID0gLTE7Ci1AQCAtNDE0NCw3ICs0 NDk5LDcgQEAgZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZv ICpkaWUsCitAQCAtNDE0Miw3ICs0NDk3LDcgQEAgZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2Jv dW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICBDT1JFX0FERFIgbG93LCBoaWdoOwogICAg c3RydWN0IGRpZV9pbmZvICpjaGlsZCA9IGRpZS0+Y2hpbGQ7CiAgCkBAIC02NjI5LDcgKzU5NTQs NyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgICB7CiAgICAgICAgKmxvd3Bj ID0gbWluICgqbG93cGMsIGxvdyk7CiAgICAgICAgKmhpZ2hwYyA9IG1heCAoKmhpZ2hwYywgaGln aCk7Ci1AQCAtNDE4MSw3ICs0NTM2LDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRp ZV9pbmZvICpkaWUsCitAQCAtNDE3OSw3ICs0NTM0LDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAo c3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICBDT1JFX0FERFIgYmVzdF9oaWdoID0gKENPUkVfQURE UikgMDsKICAgIENPUkVfQUREUiBjdXJyZW50X2xvdywgY3VycmVudF9oaWdoOwogIApAQCAtNjYz OCw3ICs1OTYzLDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgICAgewogICAg ICAgIGJlc3RfbG93ID0gY3VycmVudF9sb3c7CiAgICAgICAgYmVzdF9oaWdoID0gY3VycmVudF9o aWdoOwotQEAgLTQ2NjMsNyArNTAxOCw3IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3Qg ZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00NjYxLDcgKzUwMTYs NyBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0 IGRpZV9pbmZvICpkaWUsCiAgICAvKiBUaGUgbmFtZSBpcyBhbHJlYWR5IGFsbG9jYXRlZCBhbG9u ZyB3aXRoIHRoaXMgb2JqZmlsZSwgc28gd2UgZG9uJ3QKICAgICAgIG5lZWQgdG8gZHVwbGljYXRl IGl0IGZvciB0aGUgdHlwZS4gICovCiAgICBmbnAtPnBoeXNuYW1lID0gcGh5c25hbWUgPyBwaHlz bmFtZSA6ICIiOwpAQCAtNjY0Nyw3ICs1OTcyLDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAx MDA2NDQKICAgIHRoaXNfdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwogICAgaWYgKHRo aXNfdHlwZSAmJiBUWVBFX0NPREUgKHRoaXNfdHlwZSkgPT0gVFlQRV9DT0RFX0ZVTkMpCiAgICAg IHsKLUBAIC00NzIzLDE4ICs1MDc4LDE4IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3Qg ZmllbGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKK0BAIC00NzIxLDE4ICs1MDc2 LDE4IEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwLCBzdHJ1 Y3QgZGllX2luZm8gKmRpZSwKICAgICAgewogICAgICAgIC8qIFN1cHBvcnQgdGhlIC5kZWJ1Z19s b2Mgb2Zmc2V0cyAqLwogICAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQpAQCAt NjY3Myw3ICs1OTk4LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgICB9CiAg fQogIAotQEAgLTQ4NDcsNyArNTIwMiw3IEBAIHF1aXJrX2djY19tZW1iZXJfZnVuY3Rpb25fcG9p bnRlciAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTQ4 NDUsNyArNTIwMCw3IEBAIHF1aXJrX2djY19tZW1iZXJfZnVuY3Rpb25fcG9pbnRlciAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICByZXR1cm4gTlVMTDsK ICAKICAgIGRvbWFpbl90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoVFlQRV9GSUVMRF9UWVBFIChw Zm5fdHlwZSwgMCkpOwpAQCAtNjY4Miw3ICs2MDA3LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRm ZSAxMDA2NDQKICAgIHNtYXNoX3RvX21ldGhvZF90eXBlICh0eXBlLCBkb21haW5fdHlwZSwgVFlQ RV9UQVJHRVRfVFlQRSAocGZuX3R5cGUpLAogIAkJCVRZUEVfRklFTERTIChwZm5fdHlwZSksIFRZ UEVfTkZJRUxEUyAocGZuX3R5cGUpLAogIAkJCVRZUEVfVkFSQVJHUyAocGZuX3R5cGUpKTsKLUBA IC00OTAwLDcgKzUyNTUsNyBAQCByZWFkX3N0cnVjdHVyZV90eXBlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNDg5OCw3ICs1MjUzLDcgQEAgcmVhZF9z dHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogICAgICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogICAgICB9CiAg CkBAIC02NjkxLDcgKzYwMTYsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAg SU5JVF9DUExVU19TUEVDSUZJQyAodHlwZSk7CiAgCiAgICBuYW1lID0gZHdhcmYyX25hbWUgKGRp ZSwgY3UpOwotQEAgLTQ5MDksMTQgKzUyNjQsMTggQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTQ5MDcsMTQgKzUy NjIsMTggQEAgcmVhZF9zdHJ1Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGlmIChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3Bs dXMKICAJICB8fCBjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfamF2YSkKICAJewpAQCAtNjcxMyw3 ICs2MDM4LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAJfQogICAgICB9CiAg Ci1AQCAtNTEyNiw3ICs1NDg1LDcgQEAgcmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTEyNCw3ICs1NDgzLDcgQEAg cmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICAgICAgcmV0dXJuIHNldF9kaWVfdHlwZSAoZGllLCB0eXBlLCBjdSk7CiAg ICAgIH0KICAKQEAgLTY3MjIsNyArNjA0Nyw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAw NjQ0CiAgCiAgICBUWVBFX0NPREUgKHR5cGUpID0gVFlQRV9DT0RFX0VOVU07CiAgICBuYW1lID0g ZHdhcmYyX2Z1bGxfbmFtZSAoZGllLCBjdSk7Ci1AQCAtNTE1NCw1MSArNTUxMyw2IEBAIHJlYWRf ZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTUxNTIsNTEgKzU1MTEsNiBAQCByZWFkX2VudW1lcmF0aW9uX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGll X3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogIH0KICAKQEAgLTY3NzQsNyArNjA5OSw3IEBAIGluZGV4 IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgLyogR2l2ZW4gYSBwb2ludGVyIHRvIGEgZGllIHdo aWNoIGJlZ2lucyBhbiBlbnVtZXJhdGlvbiwgcHJvY2VzcyBhbGwKICAgICB0aGUgZGllcyB0aGF0 IGRlZmluZSB0aGUgbWVtYmVycyBvZiB0aGUgZW51bWVyYXRpb24sIGFuZCBjcmVhdGUgdGhlCiAg ICAgc3ltYm9sIGZvciB0aGUgZW51bWVyYXRpb24gdHlwZS4KLUBAIC01Mjc2LDYgKzU1OTAsMjkg QEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTUyNzQsNiArNTU4OCwyOSBAQCBwcm9jZXNzX2VudW1lcmF0 aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAg ICBuZXdfc3ltYm9sIChkaWUsIHRoaXNfdHlwZSwgY3UpOwogIH0KICAKQEAgLTY4MDQsNyArNjEy OSw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgLyogRXh0cmFjdCBhbGwgaW5m b3JtYXRpb24gZnJvbSBhIERXX1RBR19hcnJheV90eXBlIERJRSBhbmQgcHV0IGl0IGluCiAgICAg dGhlIERJRSdzIHR5cGUgZmllbGQuICBGb3Igbm93LCB0aGlzIG9ubHkgaGFuZGxlcyBvbmUgZGlt ZW5zaW9uYWwKICAgICBhcnJheXMuICAqLwotQEAgLTUyODksNyArNTYyNiw3IEBAIHJlYWRfYXJy YXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAg LTUyODcsNyArNTYyNCw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSwgKnJh bmdlX3R5cGUsICppbmRleF90eXBlOwogICAgc3RydWN0IHR5cGUgKipyYW5nZV90eXBlcyA9IE5V TEw7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtNjgxMyw3ICs2MTM4LDcgQEAgaW5k ZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwog ICAgY2hhciAqbmFtZTsKICAKLUBAIC01MzM2LDE2ICs1NjczLDExIEBAIHJlYWRfYXJyYXlfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTUzMzQs MTYgKzU2NzEsMTEgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICB0eXBlID0gZWxlbWVudF90eXBlOwogIAogICAgaWYgKHJl YWRfYXJyYXlfb3JkZXIgKGRpZSwgY3UpID09IERXX09SRF9jb2xfbWFqb3IpCkBAIC02ODM1LDcg KzYxNjAsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIAogICAgLyogVW5kZXJz dGFuZCBEd2FyZjIgc3VwcG9ydCBmb3IgdmVjdG9yIHR5cGVzIChsaWtlIHRoZXkgb2NjdXIgb24K ICAgICAgIHRoZSBQb3dlclBDIHcvIEFsdGlWZWMpLiAgR2NjIGp1c3QgYWRkcyBhbm90aGVyIGF0 dHJpYnV0ZSB0byB0aGUKLUBAIC01NDEyLDEyICs1NzQ0LDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01NDEwLDEyICs1 NzQyLDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKICAgIHJldHVybiBzZXRfZGllX3R5cGUgKGRpZSwgc2V0X3R5cGUsIGN1KTsK ICB9CiAgCkBAIC02ODUyLDcgKzYxNzcsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0 NAogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKICAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKICAg IENPUkVfQUREUiBiYXNlID0gKENPUkVfQUREUikgMDsKLUBAIC01NDI3LDI1ICs1NzYxLDU1IEBA IHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCitAQCAtNTQyNSwyNSArNTc1OSw1NSBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICB7CiAgICAgICAgLyog U3VwcG9ydCB0aGUgLmRlYnVnX2xvYyBvZmZzZXRzICovCiAgICAgICAgaWYgKGF0dHJfZm9ybV9p c19ibG9jayAoYXR0cikpCkBAIC02OTE1LDcgKzYyNDAsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUw NGZlIDEwMDY0NAogIAkgIGF0dHIgPSBkd2FyZjJfYXR0ciAoY2hpbGRfZGllLCBEV19BVF9kYXRh X21lbWJlcl9sb2NhdGlvbiwgY3UpOwogIAkgIGlmIChhdHRyKQogIAkgICAgewotQEAgLTU0NjMs OCArNTgyNywyNSBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU0NjEsOCArNTgyNSwyNSBAQCByZWFkX2NvbW1vbl9i bG9jayAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogIAkgICAg ICBTWU1CT0xfVkFMVUVfQUREUkVTUyAoc3ltKSA9IGJhc2UgKyBieXRlX29mZnNldDsKICAJICAg ICAgYWRkX3N5bWJvbF90b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CiAgCSAgICB9CkBA IC02OTQxLDcgKzYyNjYsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgICB9 CiAgfQogIAotQEAgLTU1MzIsNyArNTkxMyw3IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTUzMCw3ICs1OTExLDcgQEAg cmVhZF9uYW1lc3BhY2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAgICAgICBpZiAoaXNfYW5vbnltb3VzKQogIAl7CiAgCSAgY29uc3QgY2hhciAqcHJldmlv dXNfcHJlZml4ID0gZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSk7CkBAIC02OTUwLDcgKzYyNzUs NyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIAl9CiAgICAgIH0KICAKLUBAIC01 NTQ4LDIwICs1OTI5LDE1NSBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU1NDYsMjAgKzU5MjcsMTU1IEBAIHJlYWRfbmFt ZXNwYWNlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAg IH0KICB9CiAgCkBAIC03MTA5LDcgKzY0MzQsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEw MDY0NAogIH0KICAKICAvKiBSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIG5hbWVzcGFjZSByZXByZXNl bnRlZCBieSBESUUuICBTZXQKLUBAIC01NzI2LDI5ICs2MjQyLDExMyBAQCByZWFkX3RhZ19zdHJp bmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAg LTU3MjQsMjkgKzYyNDAsMTEzIEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOwogICAgc3RydWN0IHR5cGUgKnR5cGUsICpy YW5nZV90eXBlLCAqaW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsKICAgIHN0cnVjdCBhdHRyaWJ1dGUg KmF0dHI7CkBAIC03MjM3LDcgKzY1NjIsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0 NAogICAgY2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdl X2RlZm4sIGdkYmFyY2gpOwogICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hh cl90eXBlLCByYW5nZV90eXBlKTsKICAKLUBAIC01ODQzLDcgKzY0NDMsNiBAQCBzdGF0aWMgc3Ry dWN0IHR5cGUgKgorQEAgLTU4NDEsNyArNjQ0MSw2IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAg cmVhZF90eXBlZGVmIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgewogICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKQEAgLTcyNDUs NyArNjU3MCw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgICBjb25zdCBjaGFy ICpuYW1lID0gTlVMTDsKICAgIHN0cnVjdCB0eXBlICp0aGlzX3R5cGU7CiAgCi1AQCAtNTk1MSw4 ICs2NTUwLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTk0OSw4ICs2NTQ4LDcgQEAgcmVhZF9zdWJyYW5nZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1 Y3QgdHlwZSAqYmFzZV90eXBlOwogICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGU7CiAgICBzdHJ1 Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtNzI1NSw3ICs2NTgwLDcgQEAgaW5kZXggN2YwNDQyNy4u MzE1MDRmZSAxMDA2NDQKICAgIGNoYXIgKm5hbWU7CiAgICAKICAgIGJhc2VfdHlwZSA9IGRpZV90 eXBlIChkaWUsIGN1KTsKLUBAIC01OTY1LDQyICs2NTYzLDg5IEBAIHJlYWRfc3VicmFuZ2VfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTU5NjMs NDIgKzY1NjEsODkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkgICAgIDAsIE5VTEwsIGN1LT5vYmpmaWxlKTsKICAg ICAgfQogIApAQCAtNzM3NCw3ICs2Njk5LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2 NDQKICAKICAgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CiAgICBpZiAobmFtZSkKLUBA IC02NDcxLDYgKzcxMTYsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJfYnl0 ZSAqYnVmZmVyLCBnZGJfYnl0ZSAqaW5mb19wdHIsCitAQCAtNjQ2OSw2ICs3MTE0LDcgQEAgbG9h ZF9wYXJ0aWFsX2RpZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKmJ1ZmZlciwgZ2RiX2J5dGUgKmlu Zm9fcHRyLAogIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19sZXhpY2FsX2Jsb2NrCiAgCSAg JiYgYWJicmV2LT50YWcgIT0gRFdfVEFHX3ZhcmlhYmxlCiAgCSAgJiYgYWJicmV2LT50YWcgIT0g RFdfVEFHX25hbWVzcGFjZQpAQCAtNzM4Miw3ICs2NzA3LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1 MDRmZSAxMDA2NDQKICAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQogIAl7CiAg CSAgLyogT3RoZXJ3aXNlIHdlIHNraXAgdG8gdGhlIG5leHQgc2libGluZywgaWYgYW55LiAgKi8K LUBAIC02NjkxLDkgKzczMzcsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9k aWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjY4OSw5ICs3MzM1LDYgQEAgcmVhZF9wYXJ0aWFsX2Rp ZSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAogIAkgIGlmIChwYXJ0X2RpZS0+ ZGlybmFtZSA9PSBOVUxMKQogIAkgICAgcGFydF9kaWUtPmRpcm5hbWUgPSBEV19TVFJJTkcgKCZh dHRyKTsKICAJICBicmVhazsKQEAgLTczOTIsNyArNjcxNyw3IEBAIGluZGV4IDdmMDQ0MjcuLjMx NTA0ZmUgMTAwNjQ0CiAgCWNhc2UgRFdfQVRfbG93X3BjOgogIAkgIGhhc19sb3dfcGNfYXR0ciA9 IDE7CiAgCSAgcGFydF9kaWUtPmxvd3BjID0gRFdfQUREUiAoJmF0dHIpOwotQEAgLTY5MjUsNyAr NzU2OCw4IEBAIGZpeHVwX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFy dF9kaWUsCitAQCAtNjkyMyw3ICs3NTY2LDggQEAgZml4dXBfcGFydGlhbF9kaWUgKHN0cnVjdCBw YXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKICAgIC8qIElmIHdlIGZvdW5kIGEgcmVmZXJlbmNl IGF0dHJpYnV0ZSBhbmQgdGhlIERJRSBoYXMgbm8gbmFtZSwgdHJ5CiAgICAgICB0byBmaW5kIGEg bmFtZSBpbiB0aGUgcmVmZXJyZWQgdG8gRElFLiAgKi8KICAKQEAgLTc3NDksNyArNzA3NCw3IEBA IGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgfQogIAogIC8qIEdldCBuYW1lIG9mIGEg ZGllLCByZXR1cm4gTlVMTCBpZiBub3QgZm91bmQuICAqLwotQEAgLTEwMjAyLDExICsxMTA3Miwx MSBAQCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQor QEAgLTEwMjAwLDExICsxMTA3MCwxMSBAQCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1 Y3QgYXR0cmlidXRlICphdHRyKQogICAgcmV0dXJuIDA7CiAgfQogIApAQCAtNzc2NCw3ICs3MDg5 LDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB7CiAgICBpZiAoYXR0ci0+Zm9y bSA9PSBEV19GT1JNX3NkYXRhKQogICAgICByZXR1cm4gRFdfU05EIChhdHRyKTsKLUBAIC0xMTAx MSw4ICsxMTg4MSw2IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAq bGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTEwMDksOCArMTE4NzksNiBAQCBkd2FyZl9k ZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0 LAogIHsKICAgIGdkYl9ieXRlICptYWNfcHRyLCAqbWFjX2VuZDsKICAgIHN0cnVjdCBtYWNyb19z b3VyY2VfZmlsZSAqY3VycmVudF9maWxlID0gMDsKQEAgLTc3NzMsNyArNzA5OCw3IEBAIGluZGV4 IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCiAgICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5t YWNpbmZvLmJ1ZmZlciA9PSBOVUxMKQogICAgICB7Ci1AQCAtMTEwMjAsMjkgKzExODg4LDE5IEBA IGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGlu dCBvZmZzZXQsCitAQCAtMTEwMTgsMjkgKzExODg2LDE5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3Mg KHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgcmV0 dXJuOwogICAgICB9CiAgCkBAIC03ODA4LDcgKzcxMzMsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUw NGZlIDEwMDY0NAogICAgICAgICAgfQogIAogICAgICAgIG1hY2luZm9fdHlwZSA9IHJlYWRfMV9i eXRlIChhYmZkLCBtYWNfcHRyKTsKLUBAIC0xMTA1Myw5MiArMTE5MTEsNyBAQCBkd2FyZl9kZWNv ZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAor QEAgLTExMDUxLDkyICsxMTkwOSw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgIC8qIEEgemVybyBt YWNpbmZvIHR5cGUgaW5kaWNhdGVzIHRoZSBlbmQgb2YgdGhlIG1hY3JvCiAgICAgICAgICAgICAg IGluZm9ybWF0aW9uLiAgKi8KICAgICAgICAgIGNhc2UgMDoKQEAgLTc5MDIsNyArNzIyNyw3IEBA IGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgCiAgICAgICAgICBjYXNlIERXX01BQ0lO Rk9fZGVmaW5lOgogICAgICAgICAgY2FzZSBEV19NQUNJTkZPX3VuZGVmOgotQEAgLTExMTUzLDMx ICsxMTkyNiwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxo LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMTUxLDMxICsxMTkyNCwxOSBAQCBkd2FyZl9k ZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0 LAogICAgICAgICAgICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKICAKICAgICAgICAgICAgICBp ZiAoISBjdXJyZW50X2ZpbGUpCkBAIC03OTQ1LDcgKzcyNzAsNyBAQCBpbmRleCA3ZjA0NDI3Li4z MTUwNGZlIDEwMDY0NAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTEx MTkxLDIyICsxMTk1Miw5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRl ciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitAQCAtMTExODksMjIgKzExOTUwLDkgQEAgZHdh cmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9m ZnNldCwKICAgICAgICAgICAgICBmaWxlID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1h Y19wdHIsICZieXRlc19yZWFkKTsKICAgICAgICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7 CiAgCkBAIC03OTcxLDcgKzcyOTYsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAog ICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTExMjYwLDcgKzEyMDA4LDcg QEAgZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQg aW50IG9mZnNldCwKK0BAIC0xMTI1OCw3ICsxMjAwNiw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3Mg KHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAg IH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CkBAIC03OTgwLDcgKzczMDUsNyBAQCBp bmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogIH0KICAKICAvKiBDaGVjayBpZiB0aGUgYXR0 cmlidXRlJ3MgZm9ybSBpcyBhIERXX0ZPUk1fYmxvY2sqCi1AQCAtMTEzMjAsNiArMTIwNjgsMzQg QEAgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorQEAgLTEx MzE4LDYgKzEyMDY2LDM0IEBAIGF0dHJfZm9ybV9pc19jb25zdGFudCAoc3RydWN0IGF0dHJpYnV0 ZSAqYXR0cikKICAgICAgfQogIH0KICAKQEAgLTgwMTUsNyArNzM0MCw3IEBAIGluZGV4IDdmMDQ0 MjcuLjMxNTA0ZmUgMTAwNjQ0CiAgc3RhdGljIHZvaWQKICBkd2FyZjJfc3ltYm9sX21hcmtfY29t cHV0ZWQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkg ICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotQEAgLTExMzQ5LDM1ICsxMjEyNSwyNSBAQCBkd2Fy ZjJfc3ltYm9sX21hcmtfY29tcHV0ZWQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBz eW1ib2wgKnN5bSwKK0BAIC0xMTM0NywzNSArMTIxMjMsMjUgQEAgZHdhcmYyX3N5bWJvbF9tYXJr X2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAg ICAgICAgU1lNQk9MX0NPTVBVVEVEX09QUyAoc3ltKSA9ICZkd2FyZjJfbG9jbGlzdF9mdW5jczsK ICAgICAgICBTWU1CT0xfTE9DQVRJT05fQkFUT04gKHN5bSkgPSBiYXRvbjsKICAgICAgfQpAQCAt ODA2Niw3ICs3MzkxLDcgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICAgICAgfQog IH0KICAKLUBAIC0xMTY2NSw2ICsxMjQzMSwzMSBAQCBvZmZzZXRfYW5kX3R5cGVfZXEgKGNvbnN0 IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3JocykKK0BAIC0xMTY2Myw2ICsxMjQy OSwzMSBAQCBvZmZzZXRfYW5kX3R5cGVfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2 b2lkICppdGVtX3JocykKICAgIHJldHVybiBvZnNfbGhzLT5vZmZzZXQgPT0gb2ZzX3Jocy0+b2Zm c2V0OwogIH0KICAKQEAgLTgwOTgsNyArNzQyMyw3IEBAIGluZGV4IDdmMDQ0MjcuLjMxNTA0ZmUg MTAwNjQ0CiAgLyogU2V0IHRoZSB0eXBlIGFzc29jaWF0ZWQgd2l0aCBESUUgdG8gVFlQRS4gIFNh dmUgaXQgaW4gQ1UncyBoYXNoCiAgICAgdGFibGUgaWYgbmVjZXNzYXJ5LiAgRm9yIGNvbnZlbmll bmNlLCByZXR1cm4gVFlQRS4gICovCiAgCi1AQCAtMTE2NzMsNiArMTI0NjQsOCBAQCBzZXRfZGll X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtMTE2NzEsNiArMTI0NjIsOCBAQCBzZXRfZGllX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CiAgewogICAgc3RydWN0IGR3YXJmMl9vZmZzZXRfYW5kX3R5cGUgKipzbG90LCBvZnM7CiAgCkBA IC04MTA3LDcgKzc0MzIsNyBAQCBpbmRleCA3ZjA0NDI3Li4zMTUwNGZlIDEwMDY0NAogICAgaWYg KGN1LT50eXBlX2hhc2ggPT0gTlVMTCkKICAgICAgewogICAgICAgIGdkYl9hc3NlcnQgKGN1LT5w ZXJfY3UgIT0gTlVMTCk7Ci1AQCAtMTE4MTUsMjMgKzEyNjA4LDEzIEBAIHNob3dfZHdhcmYyX2Nt ZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorQEAgLTExODEzLDIzICsxMjYwNiwxMyBAQCBz aG93X2R3YXJmMl9jbWQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGNtZF9zaG93X2xp c3QgKHNob3dfZHdhcmYyX2NtZGxpc3QsIGZyb21fdHR5LCAiIik7CiAgfQogIApAQCAtODEzNSw4 ICs3NDYwLDggQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB9CiAgCiAgLyogbXVu bWFwIGRlYnVnIHNlY3Rpb25zIGZvciBPQkpGSUxFLCBpZiBuZWNlc3NhcnkuICAqLwotQEAgLTEx ODQwLDE1ICsxMjYyMywxNSBAQCBzdGF0aWMgdm9pZAotIGR3YXJmMl9wZXJfb2JqZmlsZV9jbGVh bnVwIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZCkKK0BAIC0xMTgzOCwxNSArMTI2 MjEsMTUgQEAgc3RhdGljIHZvaWQKKyBkd2FyZjJfcGVyX29iamZpbGVfZnJlZSAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsIHZvaWQgKmQpCiAgewogICAgc3RydWN0IGR3YXJmMl9wZXJfb2JqZmls ZSAqZGF0YSA9IGQ7CiAtICBtdW5tYXBfc2VjdGlvbl9idWZmZXIgKCZkYXRhLT5pbmZvKTsKQEAg LTgxNjAsMTMgKzc0ODUsMTMgQEAgaW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKICB9CiAg CiAgdm9pZCBfaW5pdGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7Ci1AQCAtMTE4NTYsNiArMTI2 MzksNyBAQCB2b2lkIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKTsKK0BAIC0xMTg1NCw2 ICsxMjYzNyw3IEBAIHZvaWQgX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpOwogIHZvaWQK ICBfaW5pdGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCkKICB7CiArICBkaWVfbGlzdCA9IFZFQ19h bGxvYyAoZGllX2luZm9fcCwgMzIpOwogICAgZHdhcmYyX29iamZpbGVfZGF0YV9rZXkKLSAgICAg PSByZWdpc3Rlcl9vYmpmaWxlX2RhdGFfd2l0aF9jbGVhbnVwIChkd2FyZjJfcGVyX29iamZpbGVf Y2xlYW51cCk7CisgICAgID0gcmVnaXN0ZXJfb2JqZmlsZV9kYXRhX3dpdGhfY2xlYW51cCAoTlVM TCwgZHdhcmYyX3Blcl9vYmpmaWxlX2ZyZWUpOwogIAogZGlmZiAtLWdpdCBhL2dkYi9lbGZyZWFk LmMgYi9nZGIvZWxmcmVhZC5jCiBpbmRleCA2ZTc5ZDRhLi4xOThiYWUzIDEwMDY0NApAQCAtODUx NSw3ICs3ODQwLDcgQEAgaW5kZXggN2U0MWQzOS4uMzdmZmUyMyAxMDA2NDQKICAgICAgZGVmYXVs dDoKICAgICAgICB2YWwgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIEVW QUxfQVZPSURfU0lERV9FRkZFQ1RTKTsKIGRpZmYgLS1naXQgYS9nZGIvZXhwcmVzc2lvbi5oIGIv Z2RiL2V4cHJlc3Npb24uaAotaW5kZXggMTIxNjNlMy4uYmYyYjUxOCAxMDA2NDQKK2luZGV4IGVm ZmUxZjAuLjNlMDgzY2EgMTAwNjQ0CiAtLS0gYS9nZGIvZXhwcmVzc2lvbi5oCiArKysgYi9nZGIv ZXhwcmVzc2lvbi5oCiBAQCAtODgsNiArODgsMTYgQEAgZW51bSBleHBfb3Bjb2RlCkBAIC04NTM1 LDcgKzc4NjAsNyBAQCBpbmRleCAxMjE2M2UzLi5iZjJiNTE4IDEwMDY0NAogICAgICAvKiBlbmQg b2YgQysrLiAgKi8KICAKICAgICAgLyogRm9yIE1vZHVsYS0yIGludGVnZXIgZGl2aXNpb24gRElW ICovCi1AQCAtNDM1LDQgKzQ0NSw1IEBAIGV4dGVybiBjaGFyICpvcF9zdHJpbmcgKGVudW0gZXhw X29wY29kZSk7CitAQCAtNDM4LDQgKzQ0OCw1IEBAIGV4dGVybiBjaGFyICpvcF9zdHJpbmcgKGVu dW0gZXhwX29wY29kZSk7CiAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0 IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKiwgY2hhciAqKTsKICBleHRlcm4gdm9pZCBk dW1wX3ByZWZpeF9leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLCBzdHJ1Y3QgdWlfZmls ZSAqKTsKICAKQEAgLTk5OTUsMTAgKzkzMjAsMTAgQEAgaW5kZXggOGMwMjdjOS4uZDIwMWY3NiAx MDA2NDQKICAgIGVsc2UKICAgICAgewogZGlmZiAtLWdpdCBhL2dkYi9mcmFtZS5jIGIvZ2RiL2Zy YW1lLmMKLWluZGV4IDljYTY5YmYuLjFiNGU2N2MgMTAwNjQ0CitpbmRleCA3OTMyYjQ4Li40ZTdj NDM0IDEwMDY0NAogLS0tIGEvZ2RiL2ZyYW1lLmMKICsrKyBiL2dkYi9mcmFtZS5jCi1AQCAtMTE1 Nyw2ICsxMTU3LDE0IEBAIGhhc19zdGFja19mcmFtZXMgKHZvaWQpCitAQCAtMTE3MSw2ICsxMTcx LDE0IEBAIGhhc19zdGFja19mcmFtZXMgKHZvaWQpCiAgICBpZiAocHRpZF9lcXVhbCAoaW5mZXJp b3JfcHRpZCwgbnVsbF9wdGlkKSkKICAgICAgcmV0dXJuIDA7CiAgCkBAIC0xMTU4OCw3ICsxMDkx Myw3IEBAIGluZGV4IDBmOWQ0NGUuLmM5MTBlODggMTAwNjQ0CiAgICAvKiBXZSBkaWRuJ3QgZmlu ZCBpdDsgcHJpbnQgdGhlIHJhdyBkYXRhLiAgKi8KICAgIGlmICh2Yml0KQogZGlmZiAtLWdpdCBh L2dkYi9pMzg2LWxpbnV4LW5hdC5jIGIvZ2RiL2kzODYtbGludXgtbmF0LmMKLWluZGV4IDk5MWIy N2YuLjQxMWI0MWIgMTAwNjQ0CitpbmRleCBmZTg0OGZmLi4xNzBlNmNkIDEwMDY0NAogLS0tIGEv Z2RiL2kzODYtbGludXgtbmF0LmMKICsrKyBiL2dkYi9pMzg2LWxpbnV4LW5hdC5jCiBAQCAtNTg2 LDYgKzU4Niw4IEBAIGkzODZfbGludXhfc3RvcmVfaW5mZXJpb3JfcmVnaXN0ZXJzIChzdHJ1Y3Qg dGFyZ2V0X29wcyAqb3BzLApAQCAtMTE2ODMsNyArMTEwMDgsNyBAQCBpbmRleCA5OTFiMjdmLi40 MTFiNDFiIDEwMDY0NAogIHN0YXRpYyB2b2lkCiAgaTM4Nl9saW51eF9uZXdfdGhyZWFkIChwdGlk X3QgcHRpZCkKICB7Ci1AQCAtODMyLDYgKzg3Nyw4IEBAIF9pbml0aWFsaXplX2kzODZfbGludXhf bmF0ICh2b2lkKQorQEAgLTgzNyw2ICs4ODIsOCBAQCBfaW5pdGlhbGl6ZV9pMzg2X2xpbnV4X25h dCAodm9pZCkKICAgIGkzODZfZHJfbG93LnNldF9hZGRyID0gaTM4Nl9saW51eF9kcl9zZXRfYWRk cjsKICAgIGkzODZfZHJfbG93LnJlc2V0X2FkZHIgPSBpMzg2X2xpbnV4X2RyX3Jlc2V0X2FkZHI7 CiAgICBpMzg2X2RyX2xvdy5nZXRfc3RhdHVzID0gaTM4Nl9saW51eF9kcl9nZXRfc3RhdHVzOwpA QCAtMTE5MjksNyArMTEyNTQsNyBAQCBpbmRleCA5ZTk4MjkwLi5mYWIxODkyIDEwMDY0NAogICAg cHJvY2VlZCAoKENPUkVfQUREUikgLTEsIFRBUkdFVF9TSUdOQUxfREVGQVVMVCwgMCk7CiAgCiBk aWZmIC0tZ2l0IGEvZ2RiL2luZmVyaW9yLmggYi9nZGIvaW5mZXJpb3IuaAotaW5kZXggNzMxMmU1 MS4uZDRlYWU4OCAxMDA2NDQKK2luZGV4IGYxYjVkMTcuLjMxYWRkN2QgMTAwNjQ0CiAtLS0gYS9n ZGIvaW5mZXJpb3IuaAogKysrIGIvZ2RiL2luZmVyaW9yLmgKIEBAIC0yNzIsNiArMjcyLDggQEAg ZXh0ZXJuIHZvaWQgaW50ZXJydXB0X3RhcmdldF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJv bV90dHkpOwpAQCAtMTE5NDIsNyArMTEyNjcsNyBAQCBpbmRleCA3MzEyZTUxLi5kNGVhZTg4IDEw MDY0NAogIAogIGV4dGVybiB2b2lkIG5vdGljZV9uZXdfaW5mZXJpb3IgKHB0aWRfdCwgaW50LCBp bnQpOwogZGlmZiAtLWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwotaW5kZXggYzkw NzYzNS4uYmRhOGQ4NCAxMDA2NDQKK2luZGV4IDFhODNhMjUuLjJlZTIxNjQgMTAwNjQ0CiAtLS0g YS9nZGIvaW5mcnVuLmMKICsrKyBiL2dkYi9pbmZydW4uYwogQEAgLTQ1LDYgKzQ1LDggQEAKQEAg LTExOTYzLDcgKzExMjg4LDcgQEAgaW5kZXggYzkwNzYzNS4uYmRhOGQ4NCAxMDA2NDQKICAKICBz dGF0aWMgdm9pZCBzdG9wX3N0ZXBwaW5nIChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUg KmVjcyk7CiAgc3RhdGljIHZvaWQgcHJlcGFyZV90b193YWl0IChzdHJ1Y3QgZXhlY3V0aW9uX2Nv bnRyb2xfc3RhdGUgKmVjcyk7Ci1AQCAtMjYzMyw2ICsyNjM3LDEwIEBAIGhhbmRsZV9pbmZlcmlv cl9ldmVudCAoc3RydWN0IGV4ZWN1dGlvbl9jb250cm9sX3N0YXRlICplY3MpCitAQCAtMjY4Nyw2 ICsyNjkxLDEwIEBAIGhhbmRsZV9pbmZlcmlvcl9ldmVudCAoc3RydWN0IGV4ZWN1dGlvbl9jb250 cm9sX3N0YXRlICplY3MpCiAgCiAgICAgICAgc3RvcF9wYyA9IHJlZ2NhY2hlX3JlYWRfcGMgKGdl dF90aHJlYWRfcmVnY2FjaGUgKGVjcy0+cHRpZCkpOwogIApAQCAtMTE5NzQsNyArMTEyOTksNyBA QCBpbmRleCBjOTA3NjM1Li5iZGE4ZDg0IDEwMDY0NAogICAgICAgIGVjcy0+ZXZlbnRfdGhyZWFk LT5zdG9wX2Jwc3RhdCA9IGJwc3RhdF9zdG9wX3N0YXR1cyAoc3RvcF9wYywgZWNzLT5wdGlkKTsK ICAKICAgICAgICBlY3MtPnJhbmRvbV9zaWduYWwgPSAhYnBzdGF0X2V4cGxhaW5zX3NpZ25hbCAo ZWNzLT5ldmVudF90aHJlYWQtPnN0b3BfYnBzdGF0KTsKLUBAIC0yNjcwLDYgKzI2NzgsMTAgQEAg aGFuZGxlX2luZmVyaW9yX2V2ZW50IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVj cykKK0BAIC0yNzI0LDYgKzI3MzIsMTAgQEAgaGFuZGxlX2luZmVyaW9yX2V2ZW50IChzdHJ1Y3Qg ZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykKICAKICAgICAgICBzdG9wX3BjID0gcmVnY2Fj aGVfcmVhZF9wYyAoZ2V0X3RocmVhZF9yZWdjYWNoZSAoZWNzLT5wdGlkKSk7CiAgCkBAIC0xMTk4 NSw3ICsxMTMxMCw3IEBAIGluZGV4IGM5MDc2MzUuLmJkYThkODQgMTAwNjQ0CiAgICAgICAgLyog VGhpcyBjYXVzZXMgdGhlIGV2ZW50cG9pbnRzIGFuZCBzeW1ib2wgdGFibGUgdG8gYmUgcmVzZXQu CiAgICAgICAgICAgTXVzdCBkbyB0aGlzIG5vdywgYmVmb3JlIHRyeWluZyB0byBkZXRlcm1pbmUg d2hldGhlciB0bwogICAgICAgICAgIHN0b3AuICAqLwotQEAgLTM0MTEsMjMgKzM0MjMsMzMgQEAg cHJvY2Vzc19ldmVudF9zdG9wX3Rlc3Q6CitAQCAtMzQ2OCwyMyArMzQ4MCwzMyBAQCBwcm9jZXNz X2V2ZW50X3N0b3BfdGVzdDoKICAKICAJZWNzLT5ldmVudF90aHJlYWQtPnN0ZXBwaW5nX292ZXJf YnJlYWtwb2ludCA9IDE7CiAgCkBAIC0xMjAzMSw3ICsxMTM1Niw3IEBAIGluZGV4IGM5MDc2MzUu LmJkYThkODQgMTAwNjQ0CiAgCWtlZXBfZ29pbmcgKGVjcyk7CiAgCXJldHVybjsKICAKLUBAIC0z NDM5LDYgKzM0NjEsNTMgQEAgaW5mcnVuOiBCUFNUQVRfV0hBVF9TRVRfTE9OR0pNUF9SRVNVTUUg KCFnZGJhcmNoX2dldF9sb25nam1wX3RhcmdldClcbiIpOworQEAgLTM0OTYsNiArMzUxOCw1MyBA QCBpbmZydW46IEJQU1RBVF9XSEFUX1NFVF9MT05HSk1QX1JFU1VNRSAoIWdkYmFyY2hfZ2V0X2xv bmdqbXBfdGFyZ2V0KVxuIik7CiAgCWdkYl9hc3NlcnQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVw X3Jlc3VtZV9icmVha3BvaW50ICE9IE5VTEwpOwogIAlkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtw b2ludCAoZWNzLT5ldmVudF90aHJlYWQpOwogIApAQCAtMTIwODUsNyArMTE0MTAsNyBAQCBpbmRl eCBjOTA3NjM1Li5iZGE4ZDg0IDEwMDY0NAogIAllY3MtPmV2ZW50X3RocmVhZC0+c3RvcF9zdGVw ID0gMTsKICAJcHJpbnRfc3RvcF9yZWFzb24gKEVORF9TVEVQUElOR19SQU5HRSwgMCk7CiAgCXN0 b3Bfc3RlcHBpbmcgKGVjcyk7Ci1AQCAtNDQzMSw2ICs0NTAwLDk2IEBAIGluc2VydF9sb25nam1w X3Jlc3VtZV9icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIHBj KQorQEAgLTQ1MDAsNiArNDU2OSw5NiBAQCBpbnNlcnRfbG9uZ2ptcF9yZXN1bWVfYnJlYWtwb2lu dCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBwYykKICAgICAgc2V0X21vbWVu dGFyeV9icmVha3BvaW50X2F0X3BjIChnZGJhcmNoLCBwYywgYnBfbG9uZ2ptcF9yZXN1bWUpOwog IH0KICAKQEAgLTEyMTgyLDcgKzExNTA3LDcgQEAgaW5kZXggYzkwNzYzNS4uYmRhOGQ4NCAxMDA2 NDQKICBzdGF0aWMgdm9pZAogIHN0b3Bfc3RlcHBpbmcgKHN0cnVjdCBleGVjdXRpb25fY29udHJv bF9zdGF0ZSAqZWNzKQogIHsKLUBAIC00NDk5LDYgKzQ2NTgsOCBAQCBrZWVwX2dvaW5nIChzdHJ1 Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykKK0BAIC00NTY4LDYgKzQ3MjcsOCBAQCBr ZWVwX2dvaW5nIChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykKICAJICAgIH0K ICAJICBpZiAoZS5yZWFzb24gPCAwKQogIAkgICAgewpAQCAtMTIzMzcsMTAgKzExNjYyLDEwIEBA IGluZGV4IDNlOTQzYTEuLjNiODk1NmMgMTAwNjQ0CiAgCX0KICAgICAgICByZXR1cm4gdmFsdWVz OwogZGlmZiAtLWdpdCBhL2dkYi9saW51eC1uYXQuYyBiL2dkYi9saW51eC1uYXQuYwotaW5kZXgg MTMwODg0NC4uZTZmYWQyNCAxMDA2NDQKK2luZGV4IDk4ZjYzNDcuLjA5MDdmMDMgMTAwNjQ0CiAt LS0gYS9nZGIvbGludXgtbmF0LmMKICsrKyBiL2dkYi9saW51eC1uYXQuYwotQEAgLTE2MjksNiAr MTYyOSw3IEBAIHJlc3VtZV9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwgdm9pZCAqZGF0 YSkKK0BAIC0xNzEwLDYgKzE3MTAsNyBAQCByZXN1bWVfY2FsbGJhY2sgKHN0cnVjdCBsd3BfaW5m byAqbHAsIHZvaWQgKmRhdGEpCiAgICAgICAgbHAtPnN0b3BwZWQgPSAwOwogICAgICAgIGxwLT5z dGVwID0gMDsKICAgICAgICBtZW1zZXQgKCZscC0+c2lnaW5mbywgMCwgc2l6ZW9mIChscC0+c2ln aW5mbykpOwpAQCAtMTIzNDgsNyArMTE2NzMsNyBAQCBpbmRleCAxMzA4ODQ0Li5lNmZhZDI0IDEw MDY0NAogICAgICB9CiAgICBlbHNlIGlmIChscC0+c3RvcHBlZCAmJiBkZWJ1Z19saW51eF9uYXQp CiAgICAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgIlJDOiBOb3QgcmVzdW1pbmcg c2libGluZyAlcyAoaGFzIHBlbmRpbmcpXG4iLAotQEAgLTE3NjYsNiArMTc2Nyw3IEBAIGxpbnV4 X25hdF9yZXN1bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCitAQCAtMTg0Nyw2ICsxODQ4LDcg QEAgbGludXhfbmF0X3Jlc3VtZSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywKICAKICAgIGxpbnV4 X29wcy0+dG9fcmVzdW1lIChsaW51eF9vcHMsIHB0aWQsIHN0ZXAsIHNpZ25vKTsKICAgIG1lbXNl dCAoJmxwLT5zaWdpbmZvLCAwLCBzaXplb2YgKGxwLT5zaWdpbmZvKSk7CkBAIC0xMjM1Niw3ICsx MTY4MSw3IEBAIGluZGV4IDEzMDg4NDQuLmU2ZmFkMjQgMTAwNjQ0CiAgCiAgICBpZiAoZGVidWdf bGludXhfbmF0KQogICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCi1AQCAtMjE2 NCw2ICsyMTY2LDc4IEBAIG1heWJlX2NsZWFyX2lnbm9yZV9zaWdpbnQgKHN0cnVjdCBsd3BfaW5m byAqbHApCitAQCAtMjI4Niw2ICsyMjg4LDc4IEBAIG1heWJlX2NsZWFyX2lnbm9yZV9zaWdpbnQg KHN0cnVjdCBsd3BfaW5mbyAqbHApCiAgICAgIH0KICB9CiAgCkBAIC0xMjQzNSw3ICsxMTc2MCw3 IEBAIGluZGV4IDEzMDg4NDQuLmU2ZmFkMjQgMTAwNjQ0CiAgLyogV2FpdCB1bnRpbCBMUCBpcyBz dG9wcGVkLiAgKi8KICAKICBzdGF0aWMgaW50Ci1AQCAtMjIxNSw2ICsyMjg5LDggQEAgc3RvcF93 YWl0X2NhbGxiYWNrIChzdHJ1Y3QgbHdwX2luZm8gKmxwLCB2b2lkICpkYXRhKQorQEAgLTIzMzcs NiArMjQxMSw4IEBAIHN0b3Bfd2FpdF9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwgdm9p ZCAqZGF0YSkKICAJICAgICAgLyogU2F2ZSB0aGUgdHJhcCdzIHNpZ2luZm8gaW4gY2FzZSB3ZSBu ZWVkIGl0IGxhdGVyLiAgKi8KICAJICAgICAgc2F2ZV9zaWdpbmZvIChscCk7CiAgCkBAIC0xMjQ0 NCwxMiArMTE3NjksMTMgQEAgaW5kZXggMTMwODg0NC4uZTZmYWQyNCAxMDA2NDQKICAJICAgICAg LyogTm93IHJlc3VtZSB0aGlzIExXUCBhbmQgZ2V0IHRoZSBTSUdTVE9QIGV2ZW50LiAqLwogIAkg ICAgICBlcnJubyA9IDA7CiAgCSAgICAgIHB0cmFjZSAoUFRSQUNFX0NPTlQsIEdFVF9MV1AgKGxw LT5wdGlkKSwgMCwgMCk7Ci1AQCAtMjU3OSw5ICsyNjU1LDEzIEBAIGxpbnV4X25hdF9maWx0ZXJf ZXZlbnQgKGludCBsd3BpZCwgaW50IHN0YXR1cywgaW50IG9wdGlvbnMpCitAQCAtMjcwMSwxMCAr Mjc3NywxNCBAQCBsaW51eF9uYXRfZmlsdGVyX2V2ZW50IChpbnQgbHdwaWQsIGludCBzdGF0dXMs IGludCBvcHRpb25zKQogICAgICAgIGFkZF90aHJlYWQgKGxwLT5wdGlkKTsKICAgICAgfQogIAog LSAgLyogU2F2ZSB0aGUgdHJhcCdzIHNpZ2luZm8gaW4gY2FzZSB3ZSBuZWVkIGl0IGxhdGVyLiAg Ki8KLSAgIGlmIChXSUZTVE9QUEVEIChzdGF0dXMpICYmIFdTVE9QU0lHIChzdGF0dXMpID09IFNJ R1RSQVApCisgICBpZiAoV0lGU1RPUFBFRCAoc3RhdHVzKQorICAgICAgICYmIChXU1RPUFNJRyAo c3RhdHVzKSA9PSBTSUdUUkFQIHx8IFdTVE9QU0lHIChzdGF0dXMpID09IFRSQVBfSVNfU1lTQ0FM TCkpCiAtICAgIHNhdmVfc2lnaW5mbyAobHApOwogKyAgICB7CiArICAgICAgLyogU2F2ZSB0aGUg dHJhcCdzIHNpZ2luZm8gaW4gY2FzZSB3ZSBuZWVkIGl0IGxhdGVyLiAgKi8KQEAgLTEyNDU4LDkg KzExNzg0LDkgQEAgaW5kZXggMTMwODg0NC4uZTZmYWQyNCAxMDA2NDQKICsgICAgICBzYXZlX3Np Z3RyYXAgKGxwKTsKICsgICAgfQogIAotICAgLyogSGFuZGxlIEdOVS9MaW51eCdzIGV4dGVuZGVk IHdhaXRzdGF0dXMgZm9yIHRyYWNlIGV2ZW50cy4gICovCi0gICBpZiAoV0lGU1RPUFBFRCAoc3Rh dHVzKSAmJiBXU1RPUFNJRyAoc3RhdHVzKSA9PSBTSUdUUkFQICYmIHN0YXR1cyA+PiAxNiAhPSAw KQotQEAgLTQ4NzEsNiArNDk1MSwxMCBAQCBsaW51eF9uYXRfYWRkX3RhcmdldCAoc3RydWN0IHRh cmdldF9vcHMgKnQpCisgICAvKiBIYW5kbGUgR05VL0xpbnV4J3MgZXh0ZW5kZWQgd2FpdHN0YXR1 cyBmb3IgdHJhY2UgZXZlbnRzLgorICAgICAgSXQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIGlmIFdT VE9QU0lHIGlzIHNpZ25hbGluZyB0aGF0CitAQCAtNDk5OSw2ICs1MDc5LDEwIEBAIGxpbnV4X25h dF9hZGRfdGFyZ2V0IChzdHJ1Y3QgdGFyZ2V0X29wcyAqdCkKICAgIHQtPnRvX3RocmVhZF9hbGl2 ZSA9IGxpbnV4X25hdF90aHJlYWRfYWxpdmU7CiAgICB0LT50b19waWRfdG9fc3RyID0gbGludXhf bmF0X3BpZF90b19zdHI7CiAgICB0LT50b19oYXNfdGhyZWFkX2NvbnRyb2wgPSB0Y19zY2hlZGxv Y2s7CkBAIC0xMjQ3Miw3ICsxMTc5OCw3IEBAIGluZGV4IDEzMDg4NDQuLmU2ZmFkMjQgMTAwNjQ0 CiAgICB0LT50b19jYW5fYXN5bmNfcCA9IGxpbnV4X25hdF9jYW5fYXN5bmNfcDsKICAgIHQtPnRv X2lzX2FzeW5jX3AgPSBsaW51eF9uYXRfaXNfYXN5bmNfcDsKIGRpZmYgLS1naXQgYS9nZGIvbGlu dXgtbmF0LmggYi9nZGIvbGludXgtbmF0LmgKLWluZGV4IGQxZWQ2ZmMuLmZhZjY4YmIgMTAwNjQ0 CitpbmRleCBlYWU3NGYzLi43MzIwNGZjIDEwMDY0NAogLS0tIGEvZ2RiL2xpbnV4LW5hdC5oCiAr KysgYi9nZGIvbGludXgtbmF0LmgKIEBAIC02Miw2ICs2MiwxMiBAQCBzdHJ1Y3QgbHdwX2luZm8K QEAgLTEyNjk0LDIyMiArMTIwMjAsMTAgQEAgaW5kZXggYWFjODJlOS4uNjI2MjkyYyAxMDA2NDQK ICAgIFRZUEVfQ1BMVVNfU1BFQ0lGSUMgKHQpID0gKHN0cnVjdCBjcGx1c19zdHJ1Y3RfdHlwZSAq KSAmY3BsdXNfc3RydWN0X2RlZmF1bHQ7CiAgICByZXR1cm4gdDsKIGRpZmYgLS1naXQgYS9nZGIv bWkvbWktY21kLXZhci5jIGIvZ2RiL21pL21pLWNtZC12YXIuYwotaW5kZXggMGNmMDNkOS4uOTM0 NTlkZCAxMDA2NDQKK2luZGV4IDBiYWFhODMuLjk0ZWJmZWIgMTAwNjQ0CiAtLS0gYS9nZGIvbWkv bWktY21kLXZhci5jCiArKysgYi9nZGIvbWkvbWktY21kLXZhci5jCi1AQCAtNDEsNyArNDEsNyBA QCBzdGF0aWMgdm9pZCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLAotIAkJ CSAgICAgIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKLSAJCQkgICAgICBpbnQgZXhw bGljaXQpOwotIAotLXN0YXRpYyBpbnQgbWlfcHJpbnRfdmFsdWVfcCAoc3RydWN0IHR5cGUgKnR5 cGUsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcyk7Ci0rc3RhdGljIGludCBtaV9wcmlu dF92YWx1ZV9wIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3Zh bHVlcyk7Ci0gCi0gLyogUHJpbnQgdmFyaWFibGUgb2JqZWN0IFZBUi4gIFRoZSBQUklOVF9WQUxV RVMgcGFyYW1ldGVyIGNvbnRyb2xzCi0gICAgaWYgdGhlIHZhbHVlIHNob3VsZCBiZSBwcmludGVk LiAgVGhlIFBSSU5UX0VYUFJFU1NJT04gcGFyYW1ldGVyCi1AQCAtNTksOCArNTksMTIgQEAgcHJp bnRfdmFyb2JqIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3Zh bHVlcywKLSAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJleHAiLCB2YXJvYmpfZ2V0 X2V4cHJlc3Npb24gKHZhcikpOwotICAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJudW1jaGls ZCIsIHZhcm9ial9nZXRfbnVtX2NoaWxkcmVuICh2YXIpKTsKLSAgIAotLSAgaWYgKG1pX3ByaW50 X3ZhbHVlX3AgKHZhcm9ial9nZXRfZ2RiX3R5cGUgKHZhciksIHByaW50X3ZhbHVlcykpCi0tICAg IHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YXJvYmpfZ2V0X3ZhbHVlICh2 YXIpKTsKLSsgIGlmIChtaV9wcmludF92YWx1ZV9wICh2YXIsIHByaW50X3ZhbHVlcykpCi0rICAg IHsKLSsgICAgICBjaGFyICp2YWwgPSB2YXJvYmpfZ2V0X3ZhbHVlICh2YXIpOwotKyAgICAgIHVp X291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YWwpOwotKyAgICAgIHhmcmVlICh2 YWwpOwotKyAgICB9Ci0gCi0gICB0eXBlID0gdmFyb2JqX2dldF90eXBlICh2YXIpOwotICAgaWYg KHR5cGUgIT0gTlVMTCkKLUBAIC03NSw2ICs3OSw5IEBAIHByaW50X3Zhcm9iaiAoc3RydWN0IHZh cm9iaiAqdmFyLCBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXMsCi0gCi0gICBpZiAodmFy b2JqX2dldF9mcm96ZW4gKHZhcikpCi0gICAgIHVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAiZnJv emVuIiwgMSk7Ci0rCi0rICBpZiAodmFyb2JqX3ByZXR0eV9wcmludGVkX3AgKHZhcikpCi0rICAg IHVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAiZHluYW1pYyIsIDEpOwotIH0KLSAKLSAvKiBWQVJP Qkogb3BlcmF0aW9ucyAqLwotQEAgLTEzOCw2ICsxNDUsOCBAQCBtaV9jbWRfdmFyX2NyZWF0ZSAo Y2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQotIAotICAgcHJpbnRfdmFyb2Jq ICh2YXIsIFBSSU5UX0FMTF9WQUxVRVMsIDAgLyogZG9uJ3QgcHJpbnQgZXhwcmVzc2lvbiAqLyk7 Ci0gCi0rICB1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgImhhc19tb3JlIiwgdmFyb2JqX2hhc19t b3JlICh2YXIsIDApKTsKLSsKLSAgIGRvX2NsZWFudXBzIChvbGRfY2xlYW51cHMpOwotIH0KLSAK LUBAIC0yMjMsNiArMjMyLDcgQEAgbWlfY21kX3Zhcl9zZXRfZm9ybWF0IChjaGFyICpjb21tYW5k LCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCi0gewotICAgZW51bSB2YXJvYmpfZGlzcGxheV9mb3Jt YXRzIGZvcm1hdDsKLSAgIHN0cnVjdCB2YXJvYmogKnZhcjsKLSsgIGNoYXIgKnZhbDsKLSAKLSAg IGlmIChhcmdjICE9IDIpCi0gICAgIGVycm9yIChfKCJtaV9jbWRfdmFyX3NldF9mb3JtYXQ6IFVz YWdlOiBOQU1FIEZPUk1BVC4iKSk7Ci1AQCAtMjM5LDcgKzI0OSw5IEBAIG1pX2NtZF92YXJfc2V0 X2Zvcm1hdCAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQotICAgdWlfb3V0 X2ZpZWxkX3N0cmluZyAodWlvdXQsICJmb3JtYXQiLCB2YXJvYmpfZm9ybWF0X3N0cmluZ1soaW50 KSBmb3JtYXRdKTsKLSAgCi0gICAvKiBSZXBvcnQgdGhlIHZhbHVlIGluIHRoZSBuZXcgZm9ybWF0 ICovCi0tICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgInZhbHVlIiwgdmFyb2JqX2dldF92 YWx1ZSAodmFyKSk7Ci0rICB2YWwgPSB2YXJvYmpfZ2V0X3ZhbHVlICh2YXIpOwotKyAgdWlfb3V0 X2ZpZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhbCk7Ci0rICB4ZnJlZSAodmFsKTsKLSB9 Ci0gCi0gdm9pZAotQEAgLTMzNywxMSArMzQ5LDEyIEBAIE11c3QgYmU6IDAgb3IgXCIlc1wiLCAx IG9yIFwiJXNcIiwgMiBvciBcIiVzXCIiKSwKLSB9Ci0gCi0gLyogUmV0dXJuIDEgaWYgZ2l2ZW4g dGhlIGFyZ3VtZW50IFBSSU5UX1ZBTFVFUyB3ZSBzaG91bGQgZGlzcGxheQotLSAgIGEgdmFsdWUg b2YgdHlwZSBUWVBFLiAgKi8KLSsgICB0aGUgdmFyb2JqIFZBUi4gICovCi0gCi0gc3RhdGljIGlu dAotLW1pX3ByaW50X3ZhbHVlX3AgKHN0cnVjdCB0eXBlICp0eXBlLCBlbnVtIHByaW50X3ZhbHVl cyBwcmludF92YWx1ZXMpCi0rbWlfcHJpbnRfdmFsdWVfcCAoc3RydWN0IHZhcm9iaiAqdmFyLCBl bnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXMpCi0gewotKyAgc3RydWN0IHR5cGUgKnR5cGU7 Ci0gCi0gICBpZiAocHJpbnRfdmFsdWVzID09IFBSSU5UX05PX1ZBTFVFUykKLSAgICAgcmV0dXJu IDA7Ci1AQCAtMzQ5LDYgKzM2MiwxMCBAQCBtaV9wcmludF92YWx1ZV9wIChzdHJ1Y3QgdHlwZSAq dHlwZSwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzKQotICAgaWYgKHByaW50X3ZhbHVl cyA9PSBQUklOVF9BTExfVkFMVUVTKQotICAgICByZXR1cm4gMTsKLSAKLSsgIGlmICh2YXJvYmpf cHJldHR5X3ByaW50ZWRfcCAodmFyKSkKLSsgICAgcmV0dXJuIDE7Ci0rCi0rICB0eXBlID0gdmFy b2JqX2dldF9nZGJfdHlwZSAodmFyKTsKLSAgIGlmICh0eXBlID09IE5VTEwpCi0gICAgIHJldHVy biAxOwotICAgZWxzZQotQEAgLTM2OSwyNCArMzg2LDM1IEBAIG1pX2NtZF92YXJfbGlzdF9jaGls ZHJlbiAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQotICAgc3RydWN0IHZh cm9iaiAqdmFyOyAgCi0gICBWRUModmFyb2JqX3ApICpjaGlsZHJlbjsKLSAgIHN0cnVjdCB2YXJv YmogKmNoaWxkOwotLSAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBfY2hpbGRyZW47Ci0gICBpbnQg bnVtY2hpbGQ7Ci0gICBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92YWx1ZXM7Ci0gICBpbnQgaXg7 Ci0rICBpbnQgZnJvbSwgdG87Ci0gICBjaGFyICpkaXNwbGF5X2hpbnQ7Ci0gCi0tICBpZiAoYXJn YyAhPSAxICYmIGFyZ2MgIT0gMikKLS0gICAgZXJyb3IgKF8oIm1pX2NtZF92YXJfbGlzdF9jaGls ZHJlbjogVXNhZ2U6IFtQUklOVF9WQUxVRVNdIE5BTUUiKSk7Ci0rICBpZiAoYXJnYyA8IDEgfHwg YXJnYyA+IDQpCi0rICAgIGVycm9yIChfKCJtaV9jbWRfdmFyX2xpc3RfY2hpbGRyZW46IFVzYWdl OiBbUFJJTlRfVkFMVUVTXSBOQU1FIFtGUk9NIFRPXSIpKTsKLSAKLSAgIC8qIEdldCB2YXJvYmog aGFuZGxlLCBpZiBhIHZhbGlkIHZhciBvYmogbmFtZSB3YXMgc3BlY2lmaWVkICovCi0tICBpZiAo YXJnYyA9PSAxKQotKyAgaWYgKGFyZ2MgPT0gMSB8fCBhcmdjID09IDMpCi0gICAgIHZhciA9IHZh cm9ial9nZXRfaGFuZGxlIChhcmd2WzBdKTsKLSAgIGVsc2UKLSAgICAgdmFyID0gdmFyb2JqX2dl dF9oYW5kbGUgKGFyZ3ZbMV0pOwotIAotLSAgY2hpbGRyZW4gPSB2YXJvYmpfbGlzdF9jaGlsZHJl biAodmFyKTsKLS0gIHVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAibnVtY2hpbGQiLCBWRUNfbGVu Z3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pKTsKLS0gIGlmIChhcmdjID09IDIpCi0rICBpZiAoYXJn YyA+IDIpCi0rICAgIHsKLSsgICAgICBmcm9tID0gYXRvaSAoYXJndlthcmdjIC0gMl0pOwotKyAg ICAgIHRvID0gYXRvaSAoYXJndlthcmdjIC0gMV0pOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHsK LSsgICAgICBmcm9tID0gLTE7Ci0rICAgICAgdG8gPSAtMTsKLSsgICAgfQotKwotKyAgY2hpbGRy ZW4gPSB2YXJvYmpfbGlzdF9jaGlsZHJlbiAodmFyLCAmZnJvbSwgJnRvKTsKLSsgIHVpX291dF9m aWVsZF9pbnQgKHVpb3V0LCAibnVtY2hpbGQiLCB0byAtIGZyb20pOwotKyAgaWYgKGFyZ2MgPT0g MiB8fCBhcmdjID09IDQpCi0gICAgIHByaW50X3ZhbHVlcyA9IG1pX3BhcnNlX3ZhbHVlc19vcHRp b24gKGFyZ3ZbMF0pOwotICAgZWxzZQotICAgICBwcmludF92YWx1ZXMgPSBQUklOVF9OT19WQUxV RVM7Ci1AQCAtMzk4LDIxICs0MjYsMjggQEAgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVuIChjaGFy ICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCi0gICAgICAgeGZyZWUgKGRpc3BsYXlf aGludCk7Ci0gICAgIH0KLSAKLS0gIGlmIChWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4p ID09IDApCi0tICAgIHJldHVybjsKLS0KLS0gIGlmIChtaV92ZXJzaW9uICh1aW91dCkgPT0gMSkK LS0gICAgY2xlYW51cF9jaGlsZHJlbiA9IG1ha2VfY2xlYW51cF91aV9vdXRfdHVwbGVfYmVnaW5f ZW5kICh1aW91dCwgImNoaWxkcmVuIik7Ci0tICBlbHNlCi0tICAgIGNsZWFudXBfY2hpbGRyZW4g PSBtYWtlX2NsZWFudXBfdWlfb3V0X2xpc3RfYmVnaW5fZW5kICh1aW91dCwgImNoaWxkcmVuIik7 Ci0tICBmb3IgKGl4ID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCBjaGlsZHJlbiwgaXgsIGNo aWxkKTsgKytpeCkKLSsgIGlmIChmcm9tIDwgdG8pCi0gICAgIHsKLS0gICAgICBzdHJ1Y3QgY2xl YW51cCAqY2xlYW51cF9jaGlsZDsKLS0gICAgICBjbGVhbnVwX2NoaWxkID0gbWFrZV9jbGVhbnVw X3VpX291dF90dXBsZV9iZWdpbl9lbmQgKHVpb3V0LCAiY2hpbGQiKTsKLS0gICAgICBwcmludF92 YXJvYmogKGNoaWxkLCBwcmludF92YWx1ZXMsIDEgLyogcHJpbnQgZXhwcmVzc2lvbiAqLyk7Ci0t ICAgICAgZG9fY2xlYW51cHMgKGNsZWFudXBfY2hpbGQpOwotKyAgICAgIHN0cnVjdCBjbGVhbnVw ICpjbGVhbnVwX2NoaWxkcmVuOwotKyAgICAgIGlmIChtaV92ZXJzaW9uICh1aW91dCkgPT0gMSkK LSsJY2xlYW51cF9jaGlsZHJlbgotKwkgID0gbWFrZV9jbGVhbnVwX3VpX291dF90dXBsZV9iZWdp bl9lbmQgKHVpb3V0LCAiY2hpbGRyZW4iKTsKLSsgICAgICBlbHNlCi0rCWNsZWFudXBfY2hpbGRy ZW4KLSsJICA9IG1ha2VfY2xlYW51cF91aV9vdXRfbGlzdF9iZWdpbl9lbmQgKHVpb3V0LCAiY2hp bGRyZW4iKTsKLSsgICAgICBmb3IgKGl4ID0gZnJvbTsKLSsJICAgaXggPCB0byAmJiBWRUNfaXRl cmF0ZSAodmFyb2JqX3AsIGNoaWxkcmVuLCBpeCwgY2hpbGQpOwotKwkgICArK2l4KQotKwl7Ci0r CSAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBfY2hpbGQ7Ci0rCSAgY2xlYW51cF9jaGlsZCA9IG1h a2VfY2xlYW51cF91aV9vdXRfdHVwbGVfYmVnaW5fZW5kICh1aW91dCwgImNoaWxkIik7Ci0rCSAg cHJpbnRfdmFyb2JqIChjaGlsZCwgcHJpbnRfdmFsdWVzLCAxIC8qIHByaW50IGV4cHJlc3Npb24g Ki8pOwotKwkgIGRvX2NsZWFudXBzIChjbGVhbnVwX2NoaWxkKTsKLSsJfQotKyAgICAgIGRvX2Ns ZWFudXBzIChjbGVhbnVwX2NoaWxkcmVuKTsKLSAgICAgfQotLSAgZG9fY2xlYW51cHMgKGNsZWFu dXBfY2hpbGRyZW4pOwotKwotKyAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJoYXNfbW9yZSIs IHZhcm9ial9oYXNfbW9yZSAodmFyLCB0bykpOwotIH0KLSAKLSB2b2lkCi1AQCAtNTM4LDE2ICs1 NzMsMjQgQEAgbWlfY21kX3Zhcl9ldmFsdWF0ZV9leHByZXNzaW9uIChjaGFyICpjb21tYW5kLCBj aGFyICoqYXJndiwgaW50IGFyZ2MpCi0gICB2YXIgPSB2YXJvYmpfZ2V0X2hhbmRsZSAoYXJndltv cHRpbmRdKTsKLSAgICAKLSAgIGlmIChmb3JtYXRGb3VuZCkKLS0gICAgdWlfb3V0X2ZpZWxkX3N0 cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhcm9ial9nZXRfZm9ybWF0dGVkX3ZhbHVlICh2YXIsIGZv cm1hdCkpOwotKyAgICB7Ci0rICAgICAgY2hhciAqdmFsID0gdmFyb2JqX2dldF9mb3JtYXR0ZWRf dmFsdWUgKHZhciwgZm9ybWF0KTsKLSsgICAgICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwg InZhbHVlIiwgdmFsKTsKLSsgICAgICB4ZnJlZSAodmFsKTsKLSsgICAgfQotICAgZWxzZQotLSAg ICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgInZhbHVlIiwgdmFyb2JqX2dldF92YWx1ZSAo dmFyKSk7Ci0rICAgIHsKLSsgICAgICBjaGFyICp2YWwgPSB2YXJvYmpfZ2V0X3ZhbHVlICh2YXIp OwotKyAgICAgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YWwpOwotKyAg ICAgIHhmcmVlICh2YWwpOwotKyAgICB9Ci0gfQotIAotIHZvaWQKLSBtaV9jbWRfdmFyX2Fzc2ln biAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQotIHsKLSAgIHN0cnVjdCB2 YXJvYmogKnZhcjsKLS0gIGNoYXIgKmV4cHJlc3Npb247Ci0rICBjaGFyICpleHByZXNzaW9uLCAq dmFsOwotIAotICAgaWYgKGFyZ2MgIT0gMikKLSAgICAgZXJyb3IgKF8oIm1pX2NtZF92YXJfYXNz aWduOiBVc2FnZTogTkFNRSBFWFBSRVNTSU9OLiIpKTsKLUBAIC01NjMsNyArNjA2LDkgQEAgbWlf Y21kX3Zhcl9hc3NpZ24gKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKLSAg IGlmICghdmFyb2JqX3NldF92YWx1ZSAodmFyLCBleHByZXNzaW9uKSkKLSAgICAgZXJyb3IgKF8o Im1pX2NtZF92YXJfYXNzaWduOiBDb3VsZCBub3QgYXNzaWduIGV4cHJlc3Npb24gdG8gdmFyaWFi bGUgb2JqZWN0IikpOwotIAotLSAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIs IHZhcm9ial9nZXRfdmFsdWUgKHZhcikpOwotKyAgdmFsID0gdmFyb2JqX2dldF92YWx1ZSAodmFy KTsKLSsgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YWwpOwotKyAgeGZy ZWUgKHZhbCk7Ci0gfQotIAotIC8qIFR5cGUgdXNlZCBmb3IgcGFyYW1ldGVycyBwYXNzaW5nIHRv IG1pX2NtZF92YXJfdXBkYXRlX2l0ZXIuICAqLwotQEAgLTY0NCw3ICs2ODksNiBAQCBtaV9jbWRf dmFyX3VwZGF0ZSAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQorQEAgLTY5 Nyw3ICs2OTcsNiBAQCBtaV9jbWRfdmFyX3VwZGF0ZSAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFy Z3YsIGludCBhcmdjKQogICAgICB9CiAgICBlbHNlCiAgICAgIHsKQEAgLTEyOTE3LDE0OSArMTIw MzEsNiBAQCBpbmRleCAwY2YwM2Q5Li45MzQ1OWRkIDEwMDY0NAogICAgICAgIHN0cnVjdCB2YXJv YmogKnZhciA9IHZhcm9ial9nZXRfaGFuZGxlIChuYW1lKTsKICAKICAgICAgICB2YXJvYmpfdXBk YXRlX29uZSAodmFyLCBwcmludF92YWx1ZXMsIDEgLyogZXhwbGljaXQgKi8pOwotQEAgLTY3MCw2 ICs3MTQsNyBAQCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHBy aW50X3ZhbHVlcyBwcmludF92YWx1ZXMsCi0gICBmb3IgKGkgPSAwOyBWRUNfaXRlcmF0ZSAodmFy b2JqX3VwZGF0ZV9yZXN1bHQsIGNoYW5nZXMsIGksIHIpOyArK2kpCi0gICAgIHsKLSAgICAgICBj aGFyICpkaXNwbGF5X2hpbnQ7Ci0rICAgICAgaW50IGZyb20sIHRvOwotIAotICAgICAgIGlmICht aV92ZXJzaW9uICh1aW91dCkgPiAxKQotICAgICAgICAgY2xlYW51cCA9IG1ha2VfY2xlYW51cF91 aV9vdXRfdHVwbGVfYmVnaW5fZW5kICh1aW91dCwgTlVMTCk7Ci1AQCAtNjc4LDggKzcyMywxMiBA QCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHByaW50X3ZhbHVl cyBwcmludF92YWx1ZXMsCi0gICAgICAgc3dpdGNoIChyLT5zdGF0dXMpCi0gCXsKLSAJY2FzZSBW QVJPQkpfSU5fU0NPUEU6Ci0tCSAgaWYgKG1pX3ByaW50X3ZhbHVlX3AgKHZhcm9ial9nZXRfZ2Ri X3R5cGUgKHItPnZhcm9iaiksIHByaW50X3ZhbHVlcykpCi0tCSAgICB1aV9vdXRfZmllbGRfc3Ry aW5nICh1aW91dCwgInZhbHVlIiwgdmFyb2JqX2dldF92YWx1ZSAoci0+dmFyb2JqKSk7Ci0rCSAg aWYgKG1pX3ByaW50X3ZhbHVlX3AgKHItPnZhcm9iaiwgcHJpbnRfdmFsdWVzKSkKLSsJICAgIHsK LSsJICAgICAgY2hhciAqdmFsID0gdmFyb2JqX2dldF92YWx1ZSAoci0+dmFyb2JqKTsKLSsJICAg ICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhbCk7Ci0rCSAgICAgIHhm cmVlICh2YWwpOwotKwkgICAgfQotIAkgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiaW5f c2NvcGUiLCAidHJ1ZSIpOwotIAkgIGJyZWFrOwotICAgICAgICAgY2FzZSBWQVJPQkpfTk9UX0lO X1NDT1BFOgotQEAgLTY5OSwxMSArNzQ4LDExIEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3Qg dmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKLSAJfQotIAotICAg ICAgIGlmIChyLT50eXBlX2NoYW5nZWQpCi0tCXsKLS0gICAgICAgICAgdWlfb3V0X2ZpZWxkX3N0 cmluZyAodWlvdXQsICJuZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSAoci0+dmFyb2JqKSk7Ci0t ICAgICAgICAgIHVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAibmV3X251bV9jaGlsZHJlbiIsIAot LQkJCSAgICB2YXJvYmpfZ2V0X251bV9jaGlsZHJlbiAoci0+dmFyb2JqKSk7Ci0tCX0KLSsJdWlf b3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJuZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSAoci0+ dmFyb2JqKSk7Ci0rCi0rICAgICAgaWYgKHItPnR5cGVfY2hhbmdlZCB8fCByLT5jaGlsZHJlbl9j aGFuZ2VkKQotKwl1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgIm5ld19udW1fY2hpbGRyZW4iLCAK LSsJCQkgIHZhcm9ial9nZXRfbnVtX2NoaWxkcmVuIChyLT52YXJvYmopKTsKLSAKLSAgICAgICBk aXNwbGF5X2hpbnQgPSB2YXJvYmpfZ2V0X2Rpc3BsYXlfaGludCAodmFyKTsKLSAgICAgICBpZiAo ZGlzcGxheV9oaW50KQotQEAgLTcxMiwyOCArNzYxLDU5IEBAIHZhcm9ial91cGRhdGVfb25lIChz dHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKLSAJICB4 ZnJlZSAoZGlzcGxheV9oaW50KTsKLSAJfQotIAotLSAgICAgIGlmIChyLT5jaGlsZHJlbl9jaGFu Z2VkKQotLQl7Ci0tCSAgaW50IGl4OwotLQkgIHN0cnVjdCB2YXJvYmogKmNoaWxkOwotLQkgIHN0 cnVjdCBjbGVhbnVwICpjbGVhbnVwID0KLS0JICAgIG1ha2VfY2xlYW51cF91aV9vdXRfbGlzdF9i ZWdpbl9lbmQgKHVpb3V0LCAiY2hpbGRyZW4iKTsKLSsgICAgICBpZiAodmFyb2JqX3ByZXR0eV9w cmludGVkX3AgKHZhcikpCi0rCXVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAiZHluYW1pYyIsIDEp OwotIAotLQkgIFZFQyAodmFyb2JqX3ApKiBjaGlsZHJlbiA9IHZhcm9ial9saXN0X2NoaWxkcmVu IChyLT52YXJvYmopOwotKyAgICAgIHZhcm9ial9nZXRfY2hpbGRfcmFuZ2UgKHItPnZhcm9iaiwg JmZyb20sICZ0byk7Ci0rICAgICAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJoYXNfbW9yZSIs Ci0rCQkJdmFyb2JqX2hhc19tb3JlIChyLT52YXJvYmosIHRvKSk7Ci0gCi0tCSAgZm9yIChpeCA9 IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgY2hpbGRyZW4sIGl4LCBjaGlsZCk7ICsraXgpCi0r ICAgICAgaWYgKHItPm5ldykKLSsJewotKwkgIGludCBqOwotKwkgIHZhcm9ial9wIGNoaWxkOwot KwkgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwotKwotKwkgIGNsZWFudXAgPSBtYWtlX2NsZWFu dXBfdWlfb3V0X2xpc3RfYmVnaW5fZW5kICh1aW91dCwgIm5ld19jaGlsZHJlbiIpOwotKwkgIGZv ciAoaiA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgci0+bmV3LCBqLCBjaGlsZCk7ICsraikK LSAJICAgIHsKLSAJICAgICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBfY2hpbGQ7Ci0gCSAgICAg IGNsZWFudXBfY2hpbGQgPSBtYWtlX2NsZWFudXBfdWlfb3V0X3R1cGxlX2JlZ2luX2VuZCAodWlv dXQsIE5VTEwpOwotLQkgICAgICBwcmludF92YXJvYmogKGNoaWxkLCBwcmludF92YWx1ZXMsIDEg LyogcHJpbnQgZXhwcmVzc2lvbiAqLyk7Ci0rCSAgICAgIHByaW50X3Zhcm9iaiAoY2hpbGQsIHBy aW50X3ZhbHVlcywgMSAvKiBwcmludF9leHByZXNzaW9uICovKTsKLSAJICAgICAgZG9fY2xlYW51 cHMgKGNsZWFudXBfY2hpbGQpOwotIAkgICAgfQotIAotIAkgIGRvX2NsZWFudXBzIChjbGVhbnVw KTsKLSsJICBWRUNfZnJlZSAodmFyb2JqX3AsIHItPm5ldyk7Ci0rCSAgci0+bmV3ID0gTlVMTDsJ LyogUGFyYW5vaWEuICAqLwotIAl9Ci0tICAKLSsKLSAgICAgICBpZiAobWlfdmVyc2lvbiAodWlv dXQpID4gMSkKLSAJZG9fY2xlYW51cHMgKGNsZWFudXApOwotICAgICB9Ci0gICBWRUNfZnJlZSAo dmFyb2JqX3VwZGF0ZV9yZXN1bHQsIGNoYW5nZXMpOwotIH0KLSsKLSt2b2lkCi0rbWlfY21kX2Vu YWJsZV9wcmV0dHlfcHJpbnRpbmcgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJn YykKLSt7Ci0rICBpZiAoYXJnYyAhPSAwKQotKyAgICBlcnJvciAoXygibWlfY21kX2VuYWJsZV9w cmV0dHlfcHJpbnRpbmc6IG5vIGFyZ3VtZW50cyBhbGxvd2VkIikpOwotKyAgdmFyb2JqX2VuYWJs ZV9wcmV0dHlfcHJpbnRpbmcgKCk7Ci0rfQotKwotK3ZvaWQKLSttaV9jbWRfdmFyX3NldF91cGRh dGVfcmFuZ2UgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKLSt7Ci0rICBz dHJ1Y3QgdmFyb2JqICp2YXI7Ci0rICBpbnQgZnJvbSwgdG87Ci0rCi0rICBpZiAoYXJnYyAhPSAz KQotKyAgICBlcnJvciAoXygibWlfY21kX3Zhcl9zZXRfdXBkYXRlX3JhbmdlOiBVc2FnZTogVkFS T0JKIEZST00gVE8iKSk7Ci0rICAKLSsgIHZhciA9IHZhcm9ial9nZXRfaGFuZGxlIChhcmd2WzBd KTsKLSsgIGZyb20gPSBhdG9pIChhcmd2WzFdKTsKLSsgIHRvID0gYXRvaSAoYXJndlsyXSk7Ci0r Ci0rICB2YXJvYmpfc2V0X2NoaWxkX3JhbmdlICh2YXIsIGZyb20sIHRvKTsKLSt9Ci1kaWZmIC0t Z2l0IGEvZ2RiL21pL21pLWNtZHMuYyBiL2dkYi9taS9taS1jbWRzLmMKLWluZGV4IGRkM2Q4MDMu LjhiYTA4NmMgMTAwNjQ0Ci0tLS0gYS9nZGIvbWkvbWktY21kcy5jCi0rKysgYi9nZGIvbWkvbWkt Y21kcy5jCi1AQCAtNTIsNiArNTIsNyBAQCBzdHJ1Y3QgbWlfY21kIG1pX2NtZHNbXSA9Ci0gICB7 ICJkYXRhLXdyaXRlLW1lbW9yeSIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfZGF0YV93cml0ZV9tZW1v cnl9LAotICAgeyAiZGF0YS13cml0ZS1yZWdpc3Rlci12YWx1ZXMiLCB7IE5VTEwsIDAgfSwgbWlf Y21kX2RhdGFfd3JpdGVfcmVnaXN0ZXJfdmFsdWVzfSwKLSAgIHsgImVuYWJsZS10aW1pbmdzIiwg eyBOVUxMLCAwIH0sIG1pX2NtZF9lbmFibGVfdGltaW5nc30sCi0rICB7ICJlbmFibGUtcHJldHR5 LXByaW50aW5nIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbmFibGVfcHJldHR5X3ByaW50aW5nfSwK LSAgIHsgImVudmlyb25tZW50LWNkIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbnZfY2R9LAotICAg eyAiZW52aXJvbm1lbnQtZGlyZWN0b3J5IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9lbnZfZGlyfSwK LSAgIHsgImVudmlyb25tZW50LXBhdGgiLCB7IE5VTEwsIDAgfSwgbWlfY21kX2Vudl9wYXRofSwK LUBAIC0xMTIsNiArMTEzLDcgQEAgc3RydWN0IG1pX2NtZCBtaV9jbWRzW10gPQotICAgeyAidmFy LWxpc3QtY2hpbGRyZW4iLCB7IE5VTEwsIDAgfSwgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVufSwK LSAgIHsgInZhci1zZXQtZm9ybWF0IiwgeyBOVUxMLCAwIH0sIG1pX2NtZF92YXJfc2V0X2Zvcm1h dH0sCi0gICB7ICJ2YXItc2V0LWZyb3plbiIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3NldF9m cm96ZW59LAotKyAgeyAidmFyLXNldC11cGRhdGUtcmFuZ2UiLCB7IE5VTEwsIDAgfSwgbWlfY21k X3Zhcl9zZXRfdXBkYXRlX3JhbmdlIH0sCi0gICB7ICJ2YXItc2V0LXZpc3VhbGl6ZXIiLCB7IE5V TEwsIDAgfSwgbWlfY21kX3Zhcl9zZXRfdmlzdWFsaXplcn0sCi0gICB7ICJ2YXItc2hvdy1hdHRy aWJ1dGVzIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF92YXJfc2hvd19hdHRyaWJ1dGVzfSwKLSAgIHsg InZhci1zaG93LWZvcm1hdCIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3Nob3dfZm9ybWF0fSwK LWRpZmYgLS1naXQgYS9nZGIvbWkvbWktY21kcy5oIGIvZ2RiL21pL21pLWNtZHMuaAotaW5kZXgg ODVhZDBjNC4uZGZhYjQxMSAxMDA2NDQKLS0tLSBhL2dkYi9taS9taS1jbWRzLmgKLSsrKyBiL2dk Yi9taS9taS1jbWRzLmgKLUBAIC05OSw2ICs5OSw4IEBAIGV4dGVybiBtaV9jbWRfYXJndl9mdHlw ZSBtaV9jbWRfdmFyX3NldF92aXN1YWxpemVyOwotIGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBt aV9jbWRfdmFyX3Nob3dfYXR0cmlidXRlczsKLSBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlf Y21kX3Zhcl9zaG93X2Zvcm1hdDsKLSBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zh cl91cGRhdGU7Ci0rZXh0ZXJuIG1pX2NtZF9hcmd2X2Z0eXBlIG1pX2NtZF9lbmFibGVfcHJldHR5 X3ByaW50aW5nOwotK2V4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFyX3NldF91cGRh dGVfcmFuZ2U7Ci0gCi0gLyogRGVzY3JpcHRpb24gb2YgYSBzaW5nbGUgY29tbWFuZC4gKi8KLSAK IGRpZmYgLS1naXQgYS9nZGIvbWkvbWktbWFpbi5jIGIvZ2RiL21pL21pLW1haW4uYwogaW5kZXgg ODU3YTVkNS4uNjE4MTAwMiAxMDA2NDQKIC0tLSBhL2dkYi9taS9taS1tYWluLmMKQEAgLTEzMDg2 LDIwICsxMjA1NywxMiBAQCBpbmRleCBhODQwMDNmLi45MjRjMWM1IDEwMDY0NAogICAgZGVmYXVs dF9zeW1maWxlX29mZnNldHMsCS8qIHN5bV9vZmZzZXRzOiBkdW1teSBGSVhNRSB0aWwgaW1wbGVt IHN5bSByZWxvYyAqLwogICAgZGVmYXVsdF9zeW1maWxlX3NlZ21lbnRzLAkvKiBzeW1fc2VnbWVu dHM6IEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZyb20KIGRpZmYgLS1naXQgYS9nZGIvb2JqZmls ZXMuYyBiL2dkYi9vYmpmaWxlcy5jCi1pbmRleCAzZmE2OGY2Li4xMGQyYmQxIDEwMDY0NAoraW5k ZXggMWY3NDg5Zi4uYjlhN2VkNiAxMDA2NDQKIC0tLSBhL2dkYi9vYmpmaWxlcy5jCiArKysgYi9n ZGIvb2JqZmlsZXMuYwotQEAgLTUwLDcgKzUwLDYgQEAKLSAjaW5jbHVkZSAiYWRkcm1hcC5oIgot ICNpbmNsdWRlICJhcmNoLXV0aWxzLmgiCi0gI2luY2x1ZGUgImV4ZWMuaCIKLS0jaW5jbHVkZSAi b2JzZXJ2ZXIuaCIKK0BAIC00NTksMTIgKzQ1OSwxNCBAQCBmcmVlX29iamZpbGUgKHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlKQogIAotIC8qIFByb3RvdHlwZXMgZm9yIGxvY2FsIGZ1bmN0aW9ucyAq LwotIAotQEAgLTQ1OCwxMiArNDU3LDE0IEBAIGZyZWVfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUpCi0gCi0gICB1bmxpbmtfb2JqZmlsZSAob2JqZmlsZSk7CisgICB1bmxpbmtfb2Jq ZmlsZSAob2JqZmlsZSk7CiAgCiAtICAvKiBJZiB3ZSBhcmUgZ29pbmcgdG8gZnJlZSB0aGUgcnVu dGltZSBjb21tb24gb2JqZmlsZSwgbWFyayBpdAogLSAgICAgYXMgdW5hbGxvY2F0ZWQuICAqLwpA QCAtMTMxMTQsNyArMTIwNzcsNyBAQCBpbmRleCAzZmE2OGY2Li4xMGQyYmQxIDEwMDY0NAogICAg LyogQmVmb3JlIHRoZSBzeW1ib2wgdGFibGUgY29kZSB3YXMgcmVkb25lIHRvIG1ha2UgaXQgZWFz aWVyIHRvCiAgICAgICBzZWxlY3RpdmVseSBsb2FkIGFuZCByZW1vdmUgaW5mb3JtYXRpb24gcGFy dGljdWxhciB0byBhIHNwZWNpZmljCiAgICAgICBsaW5rYWdlIHVuaXQsIGdkYiB1c2VkIHRvIGRv IHRoZXNlIHRoaW5ncyB3aGVuZXZlciB0aGUgbW9ub2xpdGhpYwotQEAgLTczMCw2ICs3MzEsMjAg QEAgaGF2ZV9wYXJ0aWFsX3N5bWJvbHMgKHZvaWQpCitAQCAtNzMxLDYgKzczMywyMCBAQCBoYXZl X3BhcnRpYWxfc3ltYm9scyAodm9pZCkKICAgICAgaWYgKG9iamZpbGVfaGFzX3BhcnRpYWxfc3lt Ym9scyAob2ZwKSkKICAgICAgICByZXR1cm4gMTsKICAgIH0KQEAgLTEzMTM2LDcgKzEyMDk5LDcg QEAgaW5kZXggM2ZhNjhmNi4uMTBkMmJkMSAxMDA2NDQKICB9CiAgCiBkaWZmIC0tZ2l0IGEvZ2Ri L29iamZpbGVzLmggYi9nZGIvb2JqZmlsZXMuaAotaW5kZXggNmFiY2IwZi4uMjEzOTU5MCAxMDA2 NDQKK2luZGV4IDYyZmE0OTguLjFmYzljNmEgMTAwNjQ0CiAtLS0gYS9nZGIvb2JqZmlsZXMuaAog KysrIGIvZ2RiL29iamZpbGVzLmgKIEBAIC0yMTIsNiArMjEyLDExIEBAIHN0cnVjdCBvYmpmaWxl CkBAIC0xMzE2Nyw3ICsxMjEzMCw3IEBAIGluZGV4IDZhYmNiMGYuLjIxMzk1OTAgMTAwNjQ0CiAg LyogVGhlIG9iamVjdCBmaWxlIHRoYXQgdGhlIG1haW4gc3ltYm9sIHRhYmxlIHdhcyBsb2FkZWQg ZnJvbSAoZS5nLiB0aGUKICAgICBhcmd1bWVudCB0byB0aGUgInN5bWJvbC1maWxlIiBvciAiZmls ZSIgY29tbWFuZCkuICAqLwogIAotQEAgLTU1OSw2ICs1NzMsMTMgQEAgZXh0ZXJuIHZvaWQgZ2Ri X2JmZF91bnJlZiAoc3RydWN0IGJmZCAqYWJmZCk7CitAQCAtNTY4LDYgKzU4MiwxMyBAQCBleHRl cm4gdm9pZCBnZGJfYmZkX3VucmVmIChzdHJ1Y3QgYmZkICphYmZkKTsKICAgIEFMTF9PQkpGSUxF UyAob2JqZmlsZSkJIFwKICAgICAgQUxMX09CSkZJTEVfUFNZTVRBQlMgKG9iamZpbGUsIHApCiAg CkBAIC0xODU5MCw3ICsxNzU1Myw3IEBAIGluZGV4IDAwMDAwMDAuLjgzMGU1ODYKICsgIHNhbF9v YmplY3RfZ2V0c2V0CQkgIC8qIHRwX2dldHNldCAqLwogK307CiBkaWZmIC0tZ2l0IGEvZ2RiL3B5 dGhvbi9weS10eXBlLmMgYi9nZGIvcHl0aG9uL3B5LXR5cGUuYwotaW5kZXggZjIzMjQ4Yy4uYjQx ZDg2OCAxMDA2NDQKK2luZGV4IDU5MGQ5MGEuLmY1MTIyNDggMTAwNjQ0CiAtLS0gYS9nZGIvcHl0 aG9uL3B5LXR5cGUuYwogKysrIGIvZ2RiL3B5dGhvbi9weS10eXBlLmMKIEBAIC0yNyw2ICsyNyw4 IEBACkBAIC0xODc3MSw5ICsxNzczNCw5IEBAIGluZGV4IGYyMzI0OGMuLmI0MWQ4NjggMTAwNjQ0 CiArfQogKwogIHN0YXRpYyB2b2lkCi0gY2xlYW5fdXBfb2JqZmlsZV90eXBlcyAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsIHZvaWQgKmRhdHVtKQorIHNhdmVfb2JqZmlsZV90eXBlcyAoc3RydWN0 IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmRhdHVtKQogIHsKLUBAIC01NDMsMTIgKzYyMSwxMyBA QCBjbGVhbl91cF9vYmpmaWxlX3R5cGVzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAq ZGF0dW0pCitAQCAtNTQzLDEyICs2MjEsMTMgQEAgc2F2ZV9vYmpmaWxlX3R5cGVzIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZGF0dW0pCiAgICAgIHsKICAgICAgICB0eXBlX29iamVj dCAqbmV4dCA9IG9iai0+bmV4dDsKICAKQEAgLTE4NzkxLDcgKzE3NzU0LDcgQEAgaW5kZXggZjIz MjQ4Yy4uYjQxZDg2OCAxMDA2NDQKICAKICAgICAgICBvYmogPSBuZXh0OwogICAgICB9Ci1AQCAt NTU5LDQxICs2MzgsMjUgQEAgY2xlYW5fdXBfb2JqZmlsZV90eXBlcyAoc3RydWN0IG9iamZpbGUg Km9iamZpbGUsIHZvaWQgKmRhdHVtKQorQEAgLTU1OSw0MSArNjM4LDI1IEBAIHNhdmVfb2JqZmls ZV90eXBlcyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZvaWQgKmRhdHVtKQogIH0KICAKICBz dGF0aWMgdm9pZApAQCAtMTg5NjAsNyArMTc5MjMsNyBAQCBpbmRleCA0OWMwNDM3Li44NGE0NzZl IDEwMDY0NAogKyAgcmV0dXJuIDE7CiArfQogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktdmFs dWUuYyBiL2dkYi9weXRob24vcHktdmFsdWUuYwotaW5kZXggM2Q4OGFhMy4uYjk5MzUxNSAxMDA2 NDQKK2luZGV4IDNkODhhYTMuLjlmYTFjNDQgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5LXZh bHVlLmMKICsrKyBiL2dkYi9weXRob24vcHktdmFsdWUuYwogQEAgLTI1LDYgKzI1LDcgQEAKQEAg LTE4OTgyLDcgKzE3OTQ1LDI3IEBAIGluZGV4IDNkODhhYTMuLmI5OTM1MTUgMTAwNjQ0CiAgI2Rl ZmluZSBidWlsdGluX3R5cGVfcHlib29sIFwKICAgIGxhbmd1YWdlX2Jvb2xfdHlwZSAocHl0aG9u X2xhbmd1YWdlLCBweXRob25fZ2RiYXJjaCkKICAKLUBAIC04OTEsNyArODk2LDM0IEBAIGNvbnZl cnRfdmFsdWVfZnJvbV9weXRob24gKFB5T2JqZWN0ICpvYmopCitAQCAtMzI0LDcgKzMyOSwxOCBA QCB2YWxweV9nZXRpdGVtIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmtleSkKKyAJICAgICB0 eXBlLiAgKi8KKyAJICBzdHJ1Y3QgdmFsdWUgKmlkeCA9IGNvbnZlcnRfdmFsdWVfZnJvbV9weXRo b24gKGtleSk7CisgCSAgaWYgKGlkeCAhPSBOVUxMKQorLQkgICAgcmVzX3ZhbCA9IHZhbHVlX3N1 YnNjcmlwdCAodG1wLCB2YWx1ZV9hc19sb25nIChpZHgpKTsKKysJICAgIHsKKysJICAgICAgLyog Q2hlY2sgdGhlIHZhbHVlJ3MgdHlwZSBpcyBzb21ldGhpbmcgdGhhdCBjYW4gYmUgYWNjZXNzZWQg dmlhCisrCQkgYSBzdWJzY3JpcHQuICAqLworKwkgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKKysJ ICAgICAgdG1wID0gY29lcmNlX3JlZiAodG1wKTsKKysJICAgICAgdHlwZSA9IGNoZWNrX3R5cGVk ZWYgKHZhbHVlX3R5cGUgKHRtcCkpOworKwkgICAgICBpZiAoVFlQRV9DT0RFICh0eXBlKSAhPSBU WVBFX0NPREVfQVJSQVkKKysJCSAgJiYgVFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfUFRS KQorKwkJICBlcnJvciggXygiQ2Fubm90IHN1YnNjcmlwdCByZXF1ZXN0ZWQgdHlwZSIpKTsKKysJ ICAgICAgZWxzZQorKwkJcmVzX3ZhbCA9IHZhbHVlX3N1YnNjcmlwdCAodG1wLCB2YWx1ZV9hc19s b25nIChpZHgpKTsKKysJICAgIH0KKyAJfQorICAgICB9CisgCitAQCAtODkxLDcgKzkwNywzNCBA QCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqKQogIAl7CiAgCSAgTE9O R0VTVCBsID0gUHlMb25nX0FzTG9uZ0xvbmcgKG9iaik7CiAgCkBAIC0xOTAxOCw3ICsxODAwMSw3 IEBAIGluZGV4IDNkODhhYTMuLmI5OTM1MTUgMTAwNjQ0CiAgCSAgICB2YWx1ZSA9IHZhbHVlX2Zy b21fbG9uZ2VzdCAoYnVpbHRpbl90eXBlX3B5bG9uZywgbCk7CiAgCX0KICAgICAgICBlbHNlIGlm IChQeUZsb2F0X0NoZWNrIChvYmopKQotQEAgLTk1MCw2ICs5ODIsMjUgQEAgZ2RicHlfaGlzdG9y eSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorQEAgLTk1MCw2ICs5OTMsMjUgQEAg Z2RicHlfaGlzdG9yeSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgcmV0dXJu IHZhbHVlX3RvX3ZhbHVlX29iamVjdCAocmVzX3ZhbCk7CiAgfQogIApAQCAtMTkwNDQsNyArMTgw MjcsNyBAQCBpbmRleCAzZDg4YWEzLi5iOTkzNTE1IDEwMDY0NAogIHZvaWQKICBnZGJweV9pbml0 aWFsaXplX3ZhbHVlcyAodm9pZCkKICB7Ci1AQCAtOTYwLDYgKzEwMTEsOCBAQCBnZGJweV9pbml0 aWFsaXplX3ZhbHVlcyAodm9pZCkKK0BAIC05NjAsNiArMTAyMiw4IEBAIGdkYnB5X2luaXRpYWxp emVfdmFsdWVzICh2b2lkKQogICAgUHlNb2R1bGVfQWRkT2JqZWN0IChnZGJfbW9kdWxlLCAiVmFs dWUiLCAoUHlPYmplY3QgKikgJnZhbHVlX29iamVjdF90eXBlKTsKICAKICAgIHZhbHVlc19pbl9w eXRob24gPSBOVUxMOwpAQCAtMjA5NjgsNyArMTk5NTEsNyBAQCBpbmRleCA3NDBkNGUwLi40NjFm Zjk1IDEwMDY0NAogIAogIGV4dGVybiBzdHJ1Y3Qgc3ltdGFic19hbmRfbGluZXMKIGRpZmYgLS1n aXQgYS9nZGIvdGFyZ2V0LmMgYi9nZGIvdGFyZ2V0LmMKLWluZGV4IGE2NjJlY2EuLjhlNmFmNDIg MTAwNjQ0CitpbmRleCBlNWQxNGZkLi4zN2ZhYjcyIDEwMDY0NAogLS0tIGEvZ2RiL3RhcmdldC5j CiArKysgYi9nZGIvdGFyZ2V0LmMKIEBAIC0xMjQsNiArMTI0LDggQEAgc3RhdGljIGludCBkZWJ1 Z190b19pbnNlcnRfd2F0Y2hwb2ludCAoQ09SRV9BRERSLCBpbnQsIGludCk7CkBAIC0yMDk4OCw3 ICsxOTk3MSw3IEBAIGluZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CiAgICAgICAgSU5IRVJJ VCAodG9fc3RvcHBlZF9kYXRhX2FkZHJlc3MsIHQpOwogICAgICAgIElOSEVSSVQgKHRvX2hhdmVf c3RlcHBhYmxlX3dhdGNocG9pbnQsIHQpOwogICAgICAgIElOSEVSSVQgKHRvX2hhdmVfY29udGlu dWFibGVfd2F0Y2hwb2ludCwgdCk7Ci1AQCAtNzMyLDYgKzczNSw5IEBAIHVwZGF0ZV9jdXJyZW50 X3RhcmdldCAodm9pZCkKK0BAIC03MzMsNiArNzM2LDkgQEAgdXBkYXRlX2N1cnJlbnRfdGFyZ2V0 ICh2b2lkKQogICAgZGVfZmF1bHQgKHRvX3JlbW92ZV93YXRjaHBvaW50LAogIAkgICAgKGludCAo KikgKENPUkVfQUREUiwgaW50LCBpbnQpKQogIAkgICAgcmV0dXJuX21pbnVzX29uZSk7CkBAIC0y MDk5OCw3ICsxOTk4MSw3IEBAIGluZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CiAgICBkZV9m YXVsdCAodG9fc3RvcHBlZF9ieV93YXRjaHBvaW50LAogIAkgICAgKGludCAoKikgKHZvaWQpKQog IAkgICAgcmV0dXJuX3plcm8pOwotQEAgLTMxNjgsNiArMzE3NCwxOSBAQCBkZWJ1Z190b19yZW1v dmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBlKQorQEAgLTMx NzMsNiArMzE3OSwxOSBAQCBkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCAoQ09SRV9BRERSIGFk ZHIsIGludCBsZW4sIGludCB0eXBlKQogICAgcmV0dXJuIHJldHZhbDsKICB9CiAgCkBAIC0yMTAx OCw3ICsyMDAwMSw3IEBAIGluZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CiAgc3RhdGljIHZv aWQKICBkZWJ1Z190b190ZXJtaW5hbF9pbml0ICh2b2lkKQogIHsKLUBAIC0zNDE1LDYgKzM0MzQs NyBAQCBzZXR1cF90YXJnZXRfZGVidWcgKHZvaWQpCitAQCAtMzQyMCw2ICszNDM5LDcgQEAgc2V0 dXBfdGFyZ2V0X2RlYnVnICh2b2lkKQogICAgY3VycmVudF90YXJnZXQudG9fcmVtb3ZlX2h3X2Jy ZWFrcG9pbnQgPSBkZWJ1Z190b19yZW1vdmVfaHdfYnJlYWtwb2ludDsKICAgIGN1cnJlbnRfdGFy Z2V0LnRvX2luc2VydF93YXRjaHBvaW50ID0gZGVidWdfdG9faW5zZXJ0X3dhdGNocG9pbnQ7CiAg ICBjdXJyZW50X3RhcmdldC50b19yZW1vdmVfd2F0Y2hwb2ludCA9IGRlYnVnX3RvX3JlbW92ZV93 YXRjaHBvaW50OwpAQCAtMjEwMjcsMTAgKzIwMDEwLDEwIEBAIGluZGV4IGE2NjJlY2EuLjhlNmFm NDIgMTAwNjQ0CiAgICBjdXJyZW50X3RhcmdldC50b19zdG9wcGVkX2RhdGFfYWRkcmVzcyA9IGRl YnVnX3RvX3N0b3BwZWRfZGF0YV9hZGRyZXNzOwogICAgY3VycmVudF90YXJnZXQudG9fd2F0Y2hw b2ludF9hZGRyX3dpdGhpbl9yYW5nZSA9IGRlYnVnX3RvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5f cmFuZ2U7CiBkaWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC5oIGIvZ2RiL3RhcmdldC5oCi1pbmRleCBj MjEwZmVhLi4wNjVhN2VhIDEwMDY0NAoraW5kZXggYjFjYjg1Mi4uYWRmZjk0NiAxMDA2NDQKIC0t LSBhL2dkYi90YXJnZXQuaAogKysrIGIvZ2RiL3RhcmdldC5oCi1AQCAtMzc5LDYgKzM3OSw3IEBA IHN0cnVjdCB0YXJnZXRfb3BzCitAQCAtMzk1LDYgKzM5NSw3IEBAIHN0cnVjdCB0YXJnZXRfb3Bz CiAgICAgIGludCAoKnRvX3JlbW92ZV9od19icmVha3BvaW50KSAoc3RydWN0IGdkYmFyY2ggKiwg c3RydWN0IGJwX3RhcmdldF9pbmZvICopOwogICAgICBpbnQgKCp0b19yZW1vdmVfd2F0Y2hwb2lu dCkgKENPUkVfQUREUiwgaW50LCBpbnQpOwogICAgICBpbnQgKCp0b19pbnNlcnRfd2F0Y2hwb2lu dCkgKENPUkVfQUREUiwgaW50LCBpbnQpOwpAQCAtMjEwMzgsNyArMjAwMjEsNyBAQCBpbmRleCBj MjEwZmVhLi4wNjVhN2VhIDEwMDY0NAogICAgICBpbnQgKCp0b19zdG9wcGVkX2J5X3dhdGNocG9p bnQpICh2b2lkKTsKICAgICAgaW50IHRvX2hhdmVfc3RlcHBhYmxlX3dhdGNocG9pbnQ7CiAgICAg IGludCB0b19oYXZlX2NvbnRpbnVhYmxlX3dhdGNocG9pbnQ7Ci1AQCAtMTEyNiw2ICsxMTI3LDE1 IEBAIGV4dGVybiBjaGFyICpub3JtYWxfcGlkX3RvX3N0ciAocHRpZF90IHB0aWQpOworQEAgLTEx NjYsNiArMTE2NywxNSBAQCBleHRlcm4gY2hhciAqbm9ybWFsX3BpZF90b19zdHIgKHB0aWRfdCBw dGlkKTsKICAjZGVmaW5lCXRhcmdldF9yZW1vdmVfd2F0Y2hwb2ludChhZGRyLCBsZW4sIHR5cGUp CVwKICAgICAgICgqY3VycmVudF90YXJnZXQudG9fcmVtb3ZlX3dhdGNocG9pbnQpIChhZGRyLCBs ZW4sIHR5cGUpCiAgCkBAIC0yMTA1NCw3ICsyMDAzNyw3IEBAIGluZGV4IGMyMTBmZWEuLjA2NWE3 ZWEgMTAwNjQ0CiAgI2RlZmluZSB0YXJnZXRfaW5zZXJ0X2h3X2JyZWFrcG9pbnQoZ2RiYXJjaCwg YnBfdGd0KSBcCiAgICAgICAoKmN1cnJlbnRfdGFyZ2V0LnRvX2luc2VydF9od19icmVha3BvaW50 KSAoZ2RiYXJjaCwgYnBfdGd0KQogIAotQEAgLTExNjMsNiArMTE3MywyMCBAQCBleHRlcm4gaW50 IHRhcmdldF9zZWFyY2hfbWVtb3J5IChDT1JFX0FERFIgc3RhcnRfYWRkciwKK0BAIC0xMjAzLDYg KzEyMTMsMjAgQEAgZXh0ZXJuIGludCB0YXJnZXRfc2VhcmNoX21lbW9yeSAoQ09SRV9BRERSIHN0 YXJ0X2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVUxPTkdFU1QgcGF0 dGVybl9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSICpm b3VuZF9hZGRycCk7CiAgCkBAIC0yMTA3NSw3ICsyMDA1OCw3IEBAIGluZGV4IGMyMTBmZWEuLjA2 NWE3ZWEgMTAwNjQ0CiAgLyogQ29tbWFuZCBsb2dnaW5nIGZhY2lsaXR5LiAgKi8KICAKICAjZGVm aW5lIHRhcmdldF9sb2dfY29tbWFuZChwKQkJCQkJCVwKLUBAIC0xMjgyLDYgKzEzMDYsMTQgQEAg ZXh0ZXJuIHN0cnVjdCB0YXJnZXRfb3BzICpmaW5kX3RhcmdldF9iZW5lYXRoIChzdHJ1Y3QgdGFy Z2V0X29wcyAqKTsKK0BAIC0xMzIyLDYgKzEzNDYsMTQgQEAgZXh0ZXJuIHN0cnVjdCB0YXJnZXRf b3BzICpmaW5kX3RhcmdldF9iZW5lYXRoIChzdHJ1Y3QgdGFyZ2V0X29wcyAqKTsKICAKICBleHRl cm4gY2hhciAqdGFyZ2V0X2dldF9vc2RhdGEgKGNvbnN0IGNoYXIgKnR5cGUpOwogIApAQCAtMjYz NDMsNzExICsyNTMyNiw2IEBAIGluZGV4IDAwMDAwMDAuLmZmY2EzYWIKICsgICAgICB9CiArICB9 CiArfQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL2dkYjcwMS5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5taS9nZGI3MDEuZXhwCi1pbmRleCBkNGFjZGMyLi4yNDRjNzMxIDEwMDY0 NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvZ2RiNzAxLmV4cAotKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvZ2RiNzAxLmV4cAotQEAgLTU0LDcgKzU0LDcgQEAgbWlfZ2RiX3Rlc3QgIi12 YXItbGlzdC1jaGlsZHJlbiBmb29QdHIiIFwKLSAKLSBmb3JlYWNoIGkgW2xpc3QgeCB5IHpdIHsK LSAgIG1pX2dkYl90ZXN0ICItdmFyLWxpc3QtY2hpbGRyZW4gZm9vUHRyLiRpIiBcCi0tICAgICIo JlwiLipcIlxyXG4pKlxcXmRvbmUsbnVtY2hpbGQ9XCIwXCIiIFwKLSsgICAgIigmXCIuKlwiXHJc bikqXFxeZG9uZSxudW1jaGlsZD1cIjBcIixoYXNfbW9yZT1cIjBcIiIgXAotICAgICAibGlzdCBj aGlsZHJlbiBvZiBmb29QdHIuJGkiCi0gfQotIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLm1pL21pLWJyZWFrLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLWJyZWFrLmV4cAot aW5kZXggNjE5NzI3ZC4uOGQwNmMwZSAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pLWJyZWFrLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktYnJlYWsuZXhwCi1A QCAtMTc1LDcgKzE3NSw3IEBAIHByb2MgdGVzdF9lcnJvciB7fSB7Ci0gICAgICMgY29udGFpbmlu ZyBmdW5jdGlvbiBjYWxsLCB0aGUgaW50ZXJuYWwgYnJlYWtwb2ludCBjcmVhdGVkIHRvIGhhbmRs ZQotICAgICAjIGZ1bmN0aW9uIGNhbGwgd291bGQgYmUgcmVwb3J0ZWQsIG1lc3NpbmcgdXAgTUkg b3V0cHV0LgotICAgICBtaV9nZGJfdGVzdCAiLXZhci1jcmVhdGUgViAqIHJldHVybl8xKCkiIFwK LS0gICAgICAgICJcXF5kb25lLG5hbWU9XCJWXCIsbnVtY2hpbGQ9XCIwXCIsdmFsdWU9XCIxXCIs dHlwZT1cImludFwiIiBcCi0rICAgICAgICAiXFxeZG9uZSxuYW1lPVwiVlwiLG51bWNoaWxkPVwi MFwiLHZhbHVlPVwiMVwiLHR5cGU9XCJpbnRcIixoYXNfbW9yZT1cIjBcIiIgXAotICAgICAgICAg ImNyZWF0ZSB2YXJvYmogZm9yIGZ1bmN0aW9uIGNhbGwiCi0gCi0gICAgIG1pX2dkYl90ZXN0ICIt dmFyLXVwZGF0ZSAqIiBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFy LWJsb2NrLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1ibG9jay5leHAKLWluZGV4 IDg4MDY4NDguLjkzZGVkMjYgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12 YXItYmxvY2suZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItYmxvY2suZXhw Ci1AQCAtNzQsNyArNzQsNyBAQCBtaV9zdGVwX3RvICJkb19ibG9ja190ZXN0cyIgIiIgInZhci1j bWQuYyIgXAotICMgVGVzdDogY192YXJpYWJsZS0zLjQKLSAjIERlc2M6IGNoZWNrIGZvbywgY2Ig Y2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5n ZWxpc3Q9XFxcW1x7bmFtZT1cImZvb1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCJcfSxce25hbWU9XCJjYlwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwiZm9v XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBc Ilx9LFx7bmFtZT1cImNiXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc IixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBjYiBmb28gY2hh bmdlZCIKLSAKLSAjIHN0ZXAgdG8gImZvbyA9IDMyMTsiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWktdmFyLWNoaWxkLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZh ci1jaGlsZC5leHAKLWluZGV4IDFmNGJkYzYuLmViNmM0NTYgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5taS9taS12YXItY2hpbGQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taS12YXItY2hpbGQuZXhwCi1AQCAtNjgwLDcgKzY4MCw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hp bGRyZW5fdGVzdHMge30gIi4qJHtzcmNmaWxlfSIgXAotICMgVGVzdDogY192YXJpYWJsZS01LjIK LSAjIERlc2M6IGNoZWNrIHRoYXQgaW50ZWdlciBjaGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12YXIt dXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2Rl Y2xhcmF0aW9ucy5pbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1Y3Rf ZGVjbGFyYXRpb25zLmludGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJm YWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0 X2RlY2xhcmF0aW9ucy5pbnRlZ2VyIgotIAotICMgU3RlcCBvdmVyOgotQEAgLTY5Myw3ICs2OTMs NyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAgMyIgImVuZC1zdGVwcGluZy1yYW5nZSIgZG9f Y2hpbGRyZW5fdGVzdHMge30gIi4qJHtzcmNmaQotICMgVGVzdDogY192YXJpYWJsZS01LjMKLSAj IERlc2M6IGNoZWNrIHRoYXQgY2hhcl9wdHIgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVw ZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNs YXJhdGlvbnMuY2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5jaGFyX3B0ci5cXCpjaGFyX3B0clwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxc XmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5jaGFyX3B0 clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIw XCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmNoYXJfcHRyLlxcKmNoYXJfcHRyXCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9 XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzIHN0cnVjdF9kZWNsYXJhdGlvbnMuY2hhcl9wdHIi Ci0gCi0gIyBTdGVwIG92ZXIgInN0cnVjdF9kZWNsYXJhdGlvbnMuaW50X3B0cl9wdHIgPSAmZm9v OyIKLUBAIC03MDMsNyArNzAzLDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSAi Lioke3NyY2ZpbGV9IiBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNAotICMgRGVzYzogY2hlY2sg dGhhdCBpbnRfcHRyX3B0ciBhbmQgY2hpbGRyZW4gY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFy LXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cIndlaXJkLT5p bnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxc e25hbWU9XCJ3ZWlyZC0+aW50X3B0cl9wdHIuXFwqd2VpcmQtPmludF9wdHJfcHRyXCIsaW5fc2Nv cGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cIndlaXJkLT5pbnRf cHRyX3B0ci5cXCp3ZWlyZC0+aW50X3B0cl9wdHIuXFwqXFwqd2VpcmQtPmludF9wdHJfcHRyXCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVj dF9kZWNsYXJhdGlvbnMuaW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5pbnRfcHRyX3B0ci5c XCppbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJc fSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmludF9wdHJfcHRyLlxcKmludF9wdHJfcHRy LlxcKlxcKmludF9wdHJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJ3ZWlyZC0+ aW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhh c19tb3JlPVwiMFwiXH0sXHtuYW1lPVwid2VpcmQtPmludF9wdHJfcHRyLlxcKndlaXJkLT5pbnRf cHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21v cmU9XCIwXCJcfSxce25hbWU9XCJ3ZWlyZC0+aW50X3B0cl9wdHIuXFwqd2VpcmQtPmludF9wdHJf cHRyLlxcKlxcKndlaXJkLT5pbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRp b25zLmludF9wdHJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc IixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuaW50X3B0cl9w dHIuXFwqaW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5pbnRfcHRy X3B0ci5cXCppbnRfcHRyX3B0ci5cXCpcXCppbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0 ZSBhbGwgdmFycyBpbnRfcHRyX3B0ciBhbmQgY2hpbGRyZW4gY2hhbmdlZCIKLSAKLSAjIFN0ZXAg b3ZlciAid2VpcmQtPmxvbmdfYXJyYXlbMF0gPSAxMjM0OyIKLUBAIC03MTMsNyArNzEzLDcgQEAg bWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSAiLioke3NyY2ZpbGV9IiBcCi0gIyBUZXN0 OiBjX3ZhcmlhYmxlLTUuNQotICMgRGVzYzogY2hlY2sgdGhhdCBsb25nX2FycmF5WzBdIGNoYW5n ZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0 PVxcXFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuMFwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hh bmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjBcIixp bl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1c XFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5 LjAgY2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2Fy cmF5WzFdID0gMjM0NTsiCi1AQCAtNzIzLDcgKzcyMyw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRy ZW5fdGVzdHMge30gIi4qJHtzcmNmaWxlfSIgXAotICMgVGVzdDogY192YXJpYWJsZS01LjYKLSAj IERlc2M6IGNoZWNrIHRoYXQgbG9uZ19hcnJheVsxXSBjaGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12 YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0 X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjFcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1c InN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS4xXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFs bCB2YXJzIHN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS4xIGNoYW5nZWQiCi0gCi0gIyBT dGVwIG92ZXIgIndlaXJkLT5sb25nX2FycmF5WzJdID0gMzQ1NjsiCi1AQCAtNzMzLDcgKzczMyw3 IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30gIi4qJHtzcmNmaWxlfSIgXAotICMg VGVzdDogY192YXJpYWJsZS01LjcKLSAjIERlc2M6IGNoZWNrIHRoYXQgbG9uZ19hcnJheVsyXSBj aGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdl bGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjJcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25l LGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS4y XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBc Ilx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzIHN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19h cnJheS4yIGNoYW5nZWQiCi0gCi0gIyBTdGVwIG92ZXI6Ci1AQCAtNzUyLDcgKzc1Miw3IEBAIG1p X2V4ZWN1dGVfdG8gImV4ZWMtc3RlcCA3IiAiZW5kLXN0ZXBwaW5nLXJhbmdlIiBkb19jaGlsZHJl bl90ZXN0cyB7fSAiLioke3NyY2ZpCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuOAotICMgRGVzYzog Y2hlY2sgdGhhdCBsb25nX2FycmF5WzMtOV0gY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVw ZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNs YXJhdGlvbnMubG9uZ19hcnJheS4zXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS40XCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVjdF9k ZWNsYXJhdGlvbnMubG9uZ19hcnJheS41XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS42XCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVj dF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS43XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFu Z2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS44 XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0 cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS45XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25h bWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuM1wiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3Rf ZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuNFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25z LmxvbmdfYXJyYXkuNVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIs aGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXku NlwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIw XCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuN1wiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9 XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuOFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVj bGFyYXRpb25zLmxvbmdfYXJyYXkuOVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBzdHJ1 Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuMy05IGNoYW5nZWQiCi0gCi0gCi1AQCAtNzYzLDcg Kzc2Myw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30gIi4qJHtzcmNmaWxlfSIg XAotICMgVGVzdDogY192YXJpYWJsZS01LjkKLSAjIERlc2M6IGNoZWNrIHRoYXQgZnVuY19wdHIg Y2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5n ZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuZnVuY19wdHJcIixpbl9zY29w ZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNo YW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuZnVuY19wdHJcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxd IiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9ucy5mdW5jX3B0ciBjaGFu Z2VkIgotIAotICMgU3RlcCBvdmVyICJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXlbMTBd ID0gMzQ1NiI7Ci1AQCAtNzcxLDcgKzc3MSw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVz dHMge30gIi4qJHtzcmNmaWxlfSIgXAotICAgICBbZXhwciAkbGluZV9kY3Rfbm90aGluZyArIDJd ICJzdGVwIFwkbGluZV9kY3Rfbm90aGluZyArIDIiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBk YXRlIC0tbm8tdmFsdWVzICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwi c3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjEwXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtc e25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuMTBcIixpbl9zY29wZT1cInRy dWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gICJ1 cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjEwIGNoYW5nZWQs IGRvbid0IHByaW50IHZhbHVlcy4iCi0gCi0gIyBTdGVwIG92ZXIgInN0cnVjdF9kZWNsYXJhdGlv bnMubG9uZ19hcnJheVsxMV0gPSA1Njc4IjsKLUBAIC03ODAsNyArNzgwLDcgQEAgbWlfc3RlcF90 byAgZG9fY2hpbGRyZW5fdGVzdHMge30gIi4qJHtzcmNmaWxlfSIgXAotICAgICAkbGluZV9kY3Rf YTBfMCAic3RlcCBcJGxpbmVfZGN0X2EwXzAiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRl IC0tYWxsLXZhbHVlcyAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0 cnVjdF9kZWNsYXJhdGlvbnMubG9uZ19hcnJheS4xMVwiLHZhbHVlPVwiNTY3OFwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hh bmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjExXCIs dmFsdWU9XCI1Njc4XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixo YXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotICAidXBkYXRlIGFsbCB2YXJzIHN0cnVjdF9kZWNsYXJh dGlvbnMubG9uZ19hcnJheS4xMSBjaGFuZ2VkLCBwcmludCB2YWx1ZXMuIgotIAotIG1pX2xpc3Rf dmFyb2JqX2NoaWxkcmVuIHtzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkgLS1hbGwtdmFs dWVzfSB7Ci1AQCAtMTEyMSw3ICsxMTIxLDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0 cyB7fSAiLioke3NyY2ZpbGV9IiBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNDcKLSAjIERlc2M6 IGNoZWNrIHRoYXQgcHNucC0+Y2hhcl9wdHIgKGFuZCBbMF0uY2hhcl9wdHIpIGNoYW5nZWQKLSBt aV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtc e25hbWU9XCJwc25wLT5wdHJzLjAuY2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRy dWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwq cHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqcHNucC0+ Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtu YW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqcHNucC0+Y2hhcl9w dHIuXFwqXFwqXFwqcHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9wdHIu XFwqXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqXFwqXFwq cHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInBzbnAtPnB0cnMu MC5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFz X21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5j aGFyX3B0ci5cXCpwc25wLT5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5jaGFyX3B0ci5cXCpw c25wLT5jaGFyX3B0ci5cXCpcXCpwc25wLT5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5jaGFy X3B0ci5cXCpwc25wLT5jaGFyX3B0ci5cXCpcXCpwc25wLT5jaGFyX3B0ci5cXCpcXCpcXCpwc25w LT5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFz X21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5jaGFyX3B0ci5cXCpwc25wLT5jaGFyX3B0ci5c XCpcXCpwc25wLT5jaGFyX3B0ci5cXCpcXCpcXCpwc25wLT5jaGFyX3B0ci5cXCpcXCpcXCpcXCpw c25wLT5jaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIs aGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBwc25wLT5jaGFyX3B0 ciAoYW5kIDAuY2hhcl9wdHIpIGNoYW5nZWQiCi0gCi0gIyAgU3RlcCBvdmVyICJzbnAxLmNoYXJf cHRyID0gJmMzOyIKLUBAIC0xMTMxLDcgKzExMzEsNyBAQCBtaV9zdGVwX3RvIGRvX2NoaWxkcmVu X3Rlc3RzIHt9ICIuKiR7c3JjZmlsZX0iIFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNS40OAotICMg RGVzYzogY2hlY2sgdGhhdCBwc25wLT5uZXh0LT5jaGFyX3B0ciAoYW5kIFsxXS5jaGFyX3B0cikg Y2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5n ZWxpc3Q9XFxcW1x7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5u ZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJf cHRyLlxcKlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyLlxc KlxcKmNoYXJfcHRyLlxcKlxcKlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxc KmNoYXJfcHRyLlxcKlxcKmNoYXJfcHRyLlxcKlxcKlxcKmNoYXJfcHRyLlxcKlxcKlxcKlxcKmNo YXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIg XAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5j aGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21v cmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0 clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIw XCJcfSxce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0ci5cXCpc XCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFz X21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFy X3B0ci5cXCpcXCpjaGFyX3B0ci5cXCpcXCpcXCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5w dHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0ci5cXCpcXCpjaGFyX3B0ci5cXCpcXCpcXCpj aGFyX3B0ci5cXCpcXCpcXCpcXCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFy cyBwc25wLT5uZXh0LT5jaGFyX3B0ciAoYW5kIDEuY2hhcl9wdHIpIGNoYW5nZWQiCi0gCi0gCi1A QCAtMTE0Miw3ICsxMTQyLDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSAiLiok e3NyY2ZpbGV9IiBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNDkKLSAjIERlc2M6IGNoZWNrIHRo YXQgcHNucC0+bmV4dC0+bmV4dC0+Y2hhcl9wdHIgKGFuZCBbMl0uY2hhcl9wdHIpIGNoYW5nZWQK LSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxc XFtce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5uZXh0LmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2Vs aXN0PVxcXFtce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5uZXh0LmNoYXJfcHRyXCIsaW5fc2Nv cGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIg XAotIAkidXBkYXRlIGFsbCB2YXJzIHBzbnAtPm5leHQtPm5leHQtPmNoYXJfcHRyIChhbmQgMi5j aGFyX3B0cikgY2hhbmdlZCIKLSAKLSAKLUBAIC0xMTUzLDcgKzExNTMsNyBAQCBtaV9zdGVwX3Rv IGRvX2NoaWxkcmVuX3Rlc3RzIHt9ICIuKiR7c3JjZmlsZX0iIFwKLSAjIFRlc3Q6IGNfdmFyaWFi bGUtNS41MAotICMgRGVzYzogY2hlY2sgdGhhdCBwc25wLT5sb25nX3B0ciAoYW5kIFswXS5sb25n X3B0cikgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25l LGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInBzbnAtPnB0cnMuMC5sb25nX3B0clwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0 clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJw c25wLT5sb25nX3B0ci5cXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0ci5cXCpwc25wLT5sb25n X3B0ci5cXCpcXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0ci5cXCpwc25wLT5sb25nX3B0ci5c XCpcXCpwc25wLT5sb25nX3B0ci5cXCpcXCpcXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0ci5c XCpwc25wLT5sb25nX3B0ci5cXCpcXCpwc25wLT5sb25nX3B0ci5cXCpcXCpcXCpwc25wLT5sb25n X3B0ci5cXCpcXCpcXCpcXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtu YW1lPVwicHNucC0+cHRycy4wLmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFu Z2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInBzbnAtPmxvbmdfcHRyXCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9 LFx7bmFtZT1cInBzbnAtPmxvbmdfcHRyLlxcKnBzbnAtPmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInBz bnAtPmxvbmdfcHRyLlxcKnBzbnAtPmxvbmdfcHRyLlxcKlxcKnBzbnAtPmxvbmdfcHRyXCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7 bmFtZT1cInBzbnAtPmxvbmdfcHRyLlxcKnBzbnAtPmxvbmdfcHRyLlxcKlxcKnBzbnAtPmxvbmdf cHRyLlxcKlxcKlxcKnBzbnAtPmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFu Z2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInBzbnAtPmxvbmdfcHRyLlxc KnBzbnAtPmxvbmdfcHRyLlxcKlxcKnBzbnAtPmxvbmdfcHRyLlxcKlxcKlxcKnBzbnAtPmxvbmdf cHRyLlxcKlxcKlxcKlxcKnBzbnAtPmxvbmdfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2 YXJzIHBzbnAtPmxvbmdfcHRyIChhbmQgMC5sb25nX3B0cikgY2hhbmdlZCIKLSAKLSAKLUBAIC0x MTgxLDcgKzExODEsNyBAQCBtaV9zdGVwX3RvIGRvX2NoaWxkcmVuX3Rlc3RzIHt9ICIuKiR7c3Jj ZmlsZX0iIFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNS41MgotICMgRGVzYzogY2hlY2sgdGhhdCBw c25wLT5uZXh0LT5uZXh0LT5sb25nX3B0ciAoYW5kIFsyXS5sb25nX3B0cikgY2hhbmdlZAotIG1p X2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7 bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0Lm5leHQubG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9 XFxcW1x7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0Lm5leHQubG9uZ19wdHJcIixpbl9zY29wZT1c InRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0g CSJ1cGRhdGUgYWxsIHZhcnMgcHNucC0+bmV4dC0+bmV4dC0+bG9uZ19wdHIgKGFuZCAyLmxvbmdf cHRyKSBjaGFuZ2VkIgotIAotIG1pX3ByZXBhcmVfaW5saW5lX3Rlc3RzICRzcmNmaWxlCi1kaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNtZC5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taS12YXItY21kLmV4cAotaW5kZXggYWQyZTU1Yy4uNmVmYjMzMyAxMDA2NDQK LS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jbWQuZXhwCi0rKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5taS9taS12YXItY21kLmV4cAotQEAgLTE0Niw3ICsxNDYsNyBAQCBtaV9zdGVw X3RvICJkb19sb2NhbHNfdGVzdHMiICIiICJ2YXItY21kLmMiICRsaW5lX2RsdF9saW50ZWdlciAi c3RlcCBhdCBkb19sb2NhbAotICMgVGVzdDogY192YXJpYWJsZS0yLjIKLSAjIERlc2M6IGNoZWNr IHdoZXRoZXIgb25seSBsaW50ZWdlciBjaGFuZ2VkIHZhbHVlcwotIG1pX2dkYl90ZXN0ICItdmFy LXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxpbnRlZ2Vy XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwki XFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVw ZGF0ZSBhbGwgdmFyczogbGludGVnZXIgY2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAibHBpbnRl Z2VyID0gJmxpbnRlZ2VyOyIKLUBAIC0xNTUsNyArMTU1LDcgQEAgbWlfc3RlcF90byAiZG9fbG9j YWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiBbZXhwciAkbGluZV9kbHRfbGludGVnZXIgKyAxXSAi c3RlcAotICMgVGVzdDogY192YXJpYWJsZS0yLjMKLSAjIERlc2M6IGNoZWNrIHdoZXRoZXIgb25s eSBscGludGVnZXIgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJc XF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxwaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlz dD1cXFxbXHtuYW1lPVwibHBpbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBs cGludGVnZXIgY2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAibGNoYXJhY3RlciA9ICdhJzsiCi1A QCAtMTY0LDcgKzE2NCw3IEBAIG1pX3N0ZXBfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIgInZhci1j bWQuYyIgW2V4cHIgJGxpbmVfZGx0X2xpbnRlZ2VyICsgMl0gInN0ZXAKLSAjIFRlc3Q6IGNfdmFy aWFibGUtMi40Ci0gIyBEZXNjOiBjaGVjayB3aGV0aGVyIG9ubHkgbGNoYXJhY3RlciBjaGFuZ2Vk Ci0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1c XFxbXHtuYW1lPVwibGNoYXJhY3RlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibGNo YXJhY3RlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21v cmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFyczogbGNoYXJhY3RlciBjaGFuZ2Vk IgotIAotICMgU3RlcCBvdmVyICJscGNoYXJhY3RlciA9ICZsY2hhcmFjdGVyOyIKLUBAIC0xNzMs NyArMTczLDcgQEAgbWlfc3RlcF90byAiZG9fbG9jYWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiBb ZXhwciAkbGluZV9kbHRfbGludGVnZXIgKyAzXSAic3RlcAotICMgVGVzdDogY192YXJpYWJsZS0y LjUKLSAjIERlc2M6IGNoZWNrIHdoZXRoZXIgb25seSBscGNoYXJhY3RlciBjaGFuZ2VkCi0gbWlf Z2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtu YW1lPVwibHBjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxwY2hhcmFj dGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1c IjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBscGNoYXJhY3RlciBjaGFuZ2VkIgot IAotIAotQEAgLTE5NSw3ICsxOTUsNyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAgOSIgImVu ZC1zdGVwcGluZy1yYW5nZSIgImRvX2xvY2Fsc190ZXN0cyIgIiIgXAotICMgRGVzYzogY2hlY2sg d2hldGhlciBsbG9uZywgbHBsb25nLCBsZmxvYXQsIGxwZmxvYXQsIGxkb3VibGUsIGxwZG91Ymxl LCBsc2ltcGxlLmludGVnZXIsCi0gIyAgICAgICBsc2ltcGxlLnVuc2lnbmVkX2NoYXJhY3RlciBs c2ltcGxlLmludGVnZXIgbHNpbXBsZS5jaGFyYWN0ZXIgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICIt dmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxzaW1w bGUuaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxc e25hbWU9XCJsc2ltcGxlLT5pbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIlx9LFx7bmFtZT1cImxzaW1wbGUuY2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVl XCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxwZG91YmxlXCIsaW5fc2NvcGU9 XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxkb3VibGVcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibHBmbG9hdFwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsZmxv YXRcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwi bHBsb25nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFt ZT1cImxsb25nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxc XSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJsc2ltcGxlLmludGVnZXJc Iixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwi XH0sXHtuYW1lPVwibHNpbXBsZS0+aW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJsc2ltcGxlLmNoYXJhY3Rl clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIw XCJcfSxce25hbWU9XCJscGRvdWJsZVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJsZG91YmxlXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxw ZmxvYXRcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3Jl PVwiMFwiXH0sXHtuYW1lPVwibGZsb2F0XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxwbG9uZ1wiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJs bG9uZ1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9 XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFyczogbWFueSBjaGFuZ2VkIgotIAotICMg U3RlcCBvdmVyOgotQEAgLTIxMiw3ICsyMTIsNyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAg NCIgImVuZC1zdGVwcGluZy1yYW5nZSIgImRvX2xvY2Fsc190ZXN0cyIgIiIgXAotICMgVGVzdDog Y192YXJpYWJsZS0yLjcKLSAjIERlc2M6IGNoZWNrIHdoZXRoZXIgKGxzaW1wbGUuc2lnbmVkX2No YXJhY3RlciwgbHNpbXBsZS5jaGFyX3B0cikgbHBzaW1wbGUsIGZ1bmMgY2hhbmdlZAotIG1pX2dk Yl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFt ZT1cImZ1bmNcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtu YW1lPVwibHBzaW1wbGVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImZ1bmNcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtu YW1lPVwibHBzaW1wbGVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi LGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnM6IGZ1bmMgYW5kIGxw c2ltcGxlIGNoYW5nZWQiCi0gCi0gIyBTdGVwIG92ZXIKLUBAIC0yMzQsNyArMjM0LDcgQEAgbWlf ZXhlY3V0ZV90byAiZXhlYy1zdGVwIDgiICJlbmQtc3RlcHBpbmctcmFuZ2UiICJkb19sb2NhbHNf dGVzdHMiICIiIFwKLSAjIE5vdGU6IHRoaXMgdGVzdCBhbHNvIGNoZWNrcyB0aGF0IGxwc2ltcGxl LT5pbnRlZ2VyIGFuZCBsc2ltcGxlLmludGVnZXIgaGF2ZQotICMgICAgICAgY2hhbmdlZCAodGhl eSBhcmUgdGhlIHNhbWUpCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRv bmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibHNpbXBsZS5pbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxzaW1wbGUtPmludGVnZXJc Iixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibHNp bXBsZS5jaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi XH0sXHtuYW1lPVwibGRvdWJsZVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCJcfSxce25hbWU9XCJsZmxvYXRcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9 XCJmYWxzZVwiXH0sXHtuYW1lPVwibGxvbmdcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibHBjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibGNoYXJhY3RlclwiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsaW50ZWdlclwiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUs Y2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibHNpbXBsZS5pbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVl XCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxzaW1w bGUtPmludGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhh c19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibHNpbXBsZS5jaGFyYWN0ZXJcIixpbl9zY29wZT1cInRy dWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGRv dWJsZVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9 XCIwXCJcfSxce25hbWU9XCJsZmxvYXRcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9 XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGxvbmdcIixpbl9zY29wZT1cInRy dWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibHBj aGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19t b3JlPVwiMFwiXH0sXHtuYW1lPVwibGNoYXJhY3RlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJsaW50ZWdlclwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxc XF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFyczogbHNpbXBsZSBhbmQgb3RoZXJzIGNoYW5nZWQiCi0g Ci0gCi1AQCAtMjU3LDcgKzI1Nyw3IEBAIG1pX2dkYl90ZXN0ICItdmFyLWFzc2lnbiBsaW50ZWdl ciAzMzMzIiBcCi0gIyBjaGFuZ2UuCi0gc2V0IGxwY2hhcl91cGRhdGUgIlx7bmFtZT1cImxwY2hh cmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LCIKLSBt aV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFso JGxwY2hhcl91cGRhdGUpP1x7bmFtZT1cImxpbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFso JGxwY2hhcl91cGRhdGUpP1x7bmFtZT1cImxpbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFs bCB2YXJzOiBsaW50ZWdlciBjaGFuZ2VkIGFmdGVyIGFzc2lnbiIKLSAKLSBtaV9nZGJfdGVzdCAi LXZhci1hc3NpZ24gbGludGVnZXIgMzMzMyIgXAotQEAgLTI3Nyw3ICsyNzcsNyBAQCBtaV9nZGJf dGVzdCAiLXZhci1hc3NpZ24gbHBpbnRlZ2VyIFwiJmxpbnRlZ2VyICsgM1wiIiBcCi0gCSJhc3Np Z24gdG8gbHBpbnRlZ2VyIgotIAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJc XF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxwaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlz dD1cXFxbXHtuYW1lPVwibHBpbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBs cGludGVnZXIgY2hhbmdlZCBhZnRlciBhc3NpZ24iCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBk YXRlICoiIFwKLUBAIC0zNzcsNyArMzc3LDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoi IFwKLSAJImFzc2lnbiBzYW1lIHZhbHVlIHRvIGZ1bmMgKHVwZGF0ZSkiCi0gCi0gbWlfZ2RiX3Rl c3QgIi12YXItY3JlYXRlIGFycmF5X3B0ciAqIGFycmF5X3B0ciIgXAotLQkiXFxeZG9uZSxuYW1l PVwiYXJyYXlfcHRyXCIsbnVtY2hpbGQ9XCIxXCIsdmFsdWU9XCIkaGV4XCIsdHlwZT1cImludCBc XCpcIiIgXAotKwkiXFxeZG9uZSxuYW1lPVwiYXJyYXlfcHRyXCIsbnVtY2hpbGQ9XCIxXCIsdmFs dWU9XCIkaGV4XCIsdHlwZT1cImludCBcXCpcIixoYXNfbW9yZT1cIjBcIiIgXAotIAkiY3JlYXRl IGdsb2JhbCB2YXJpYWJsZSBhcnJheV9wdHIiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItYXNzaWdu IGFycmF5X3B0ciBhcnJheTIiIFwKLUBAIC0zODUsNyArMzg1LDcgQEAgbWlfZ2RiX3Rlc3QgIi12 YXItYXNzaWduIGFycmF5X3B0ciBhcnJheTIiIFwKLSAJImFzc2lnbiBhcnJheSB0byBwb2ludGVy IgotIAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxp c3Q9XFxcW1x7bmFtZT1cImFycmF5X3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwi YXJyYXlfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNf bW9yZT1cIjBcIlx9XFxcXSIgXAotIAkiYXNzaWduIGFycmF5IHRvIHBvaW50ZXIgKHVwZGF0ZSki Ci0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItYXNzaWduIGFycmF5X3B0ciBhcnJheTIiIFwKLUBAIC00 MzksNyArNDM5LDcgQEAgbWlfc3RlcF90byAic3Vicm91dGluZTEiICJce25hbWU9XCJpXCIsdmFs dWU9XCIuKlwiXH0sXHtuYW1lPVwibFwiLHZhbHVlPVwiLipcIlwKLSAjIFRlc3Q6IGNfdmFyaWFi bGUtMi4xMwotICMgRGVzYzogY2hhbmdlIHN1YnJvdXRpbmUxIGxvY2FsIGkKLSBtaV9nZGJfdGVz dCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJp XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwki XFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJpXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFs bCB2YXJzOiBpIGNoYW5nZWQiCi0gCi0gbWlfc3RlcF90byAic3Vicm91dGluZTEiICJce25hbWU9 XCJpXCIsdmFsdWU9XCIuKlwiXH0sXHtuYW1lPVwibFwiLHZhbHVlPVwiLipcIlx9IiBcCi1AQCAt NDQ4LDcgKzQ0OCw3IEBAIG1pX3N0ZXBfdG8gInN1YnJvdXRpbmUxIiAiXHtuYW1lPVwiaVwiLHZh bHVlPVwiLipcIlx9LFx7bmFtZT1cImxcIix2YWx1ZT1cIi4qXCJcCi0gIyBUZXN0OiBjX3Zhcmlh YmxlLTIuMTQKLSAjIERlc2M6IGNoYW5nZSBkb19sb2NhbHNfdGVzdHMgbG9jYWwgbGxvbmcKLSBt aV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtc e25hbWU9XCJsbG9uZ1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJc fVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibGxvbmdcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxd IiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnM6IGxsb25nIGNoYW5nZWQiCi0gCi0gc2V0IGxpbmVfZGx0 X2NhbGxfc3Vicm91dGluZTEgW2dkYl9nZXRfbGluZV9udW1iZXIgInN1YnJvdXRpbmUxIChsaW50 ZWdlciwgJmxsb25nKTsiXQotQEAgLTQ1OCw3ICs0NTgsNyBAQCBtaV9uZXh0X3RvICJkb19sb2Nh bHNfdGVzdHMiICIiCSJ2YXItY21kLmMiIFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtMi4xNQotICMg RGVzYzogY2hlY2sgZm9yIG91dCBvZiBzY29wZSBzdWJyb3V0aW5lMSBsb2NhbHMKLSBtaV9nZGJf dGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9 XCJsXCIsaW5fc2NvcGU9XCJmYWxzZVwiXCx0eXBlX2NoYW5nZWQ9XCJmYWxzZVwifSxce25hbWU9 XCJpXCIsaW5fc2NvcGU9XCJmYWxzZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwK LSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibFwiLGluX3Njb3BlPVwiZmFsc2Vc IlwsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIn0sXHtuYW1lPVwiaVwiLGlu X3Njb3BlPVwiZmFsc2VcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1c XFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnM6IGFsbCBub3cgb3V0IG9mIHNjb3BlIgotIAotICMg RG9uZSB3aXRoIGxvY2Fscy9nbG9iYWxzIHRlc3RzLiBFcmFzZSBhbGwgdmFyaWFibGVzCi1AQCAt NTUwLDE0ICs1NTAsMTQgQEAgbWlfZ2RiX3Rlc3QgIi12YXItY3JlYXRlIHNlbGVjdGVkX2EgQCBh IiBcCi0gbWlfY29udGludWVfdG8gaW5jcl9hCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRl IHNlbGVjdGVkX2EiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic2VsZWN0 ZWRfYVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cInRydWVcIixuZXdfdHlwZT1c ImNoYXJcIixuZXdfbnVtX2NoaWxkcmVuPVwiMFwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5n ZWxpc3Q9XFxcW1x7bmFtZT1cInNlbGVjdGVkX2FcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJ0cnVlXCIsbmV3X3R5cGU9XCJjaGFyXCIsbmV3X251bV9jaGlsZHJlbj1cIjBcIixo YXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIHNlbGVjdGVkX2EgaW4gaW5jcl9hIgot IAotIG1pX25leHQgInN0ZXAgYSBsaW5lIGluIGluY3JfYSIKLSBtaV9uZXh0ICJyZXR1cm4gZnJv bSBpbmNyX2EgdG8gZG9fc3BlY2lhbF90ZXN0cyIKLSAKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRh dGUgc2VsZWN0ZWRfYSIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzZWxl Y3RlZF9hXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwidHJ1ZVwiLG5ld190eXBl PVwiaW50XCIsbmV3X251bV9jaGlsZHJlbj1cIjBcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFu Z2VsaXN0PVxcXFtce25hbWU9XCJzZWxlY3RlZF9hXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwidHJ1ZVwiLG5ld190eXBlPVwiaW50XCIsbmV3X251bV9jaGlsZHJlbj1cIjBcIixo YXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIHNlbGVjdGVkX2EgaW4gZG9fc3BlY2lh bF90ZXN0cyIKLSAKLSBtaV9nZGJfdGVzdCAiLWZpbGUtZXhlYy1hbmQtc3ltYm9scyAke2JpbmZp bGV9IiAiXFxeZG9uZSIgXAotQEAgLTU5Niw3ICs1OTYsNyBAQCBtaV9jaGVja192YXJvYmpfdmFs dWUgRiA3ICJjaGVjayBGIGluc2lkZSBjYWxsZWUiCi0gIyBBIHZhcm9iaiB3ZSBmYWlsIHRvIHJl YWQgZHVyaW5nIC12YXItdXBkYXRlIHNob3VsZCBiZSBjb25zaWRlcmVkCi0gIyBvdXQgb2Ygc2Nv cGUuCi0gbWlfZ2RiX3Rlc3QgIi12YXItY3JlYXRlIG51bGxfcHRyICogKiowIiBcCi0tICAgIHtc XmRvbmUsbmFtZT0ibnVsbF9wdHIiLG51bWNoaWxkPSIwIix2YWx1ZT0iLioiLHR5cGU9ImludCJ9 IFwKLSsgICAge1xeZG9uZSxuYW1lPSJudWxsX3B0ciIsbnVtY2hpbGQ9IjAiLHZhbHVlPSIuKiIs dHlwZT0iaW50IixoYXNfbW9yZT0iMCJ9IFwKLSAgICAgImNyZWF0ZSBudWxsX3B0ciIKLSAKLSAj IEFsbG93IHRoaXMgdG8gc3VjY2VlZCwgaWYgYWRkcmVzcyB6ZXJvIGlzIHJlYWRhYmxlLCBhbHRo b3VnaCBpdAotQEAgLTY0NCw3ICs2NDQsNyBAQCBtaV9jaGVja192YXJvYmpfdmFsdWUgIkwiICJ7 Li4ufSIgImluLWFuZC1vdXQtb2Ytc2NvcGU6IGNoZWNrIGluaXRpYWwgdmFsdWUiCi0gbWlfcnVu dG8gbWFpbgotIAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSBMIiBcCi0tICAgIHtcXmRvbmUs Y2hhbmdlbGlzdD1cW3tuYW1lPSJMIixpbl9zY29wZT0iZmFsc2UiLHR5cGVfY2hhbmdlZD0iZmFs c2UifVxdfSBcCi0rICAgIHtcXmRvbmUsY2hhbmdlbGlzdD1cW3tuYW1lPSJMIixpbl9zY29wZT0i ZmFsc2UiLHR5cGVfY2hhbmdlZD0iZmFsc2UiLGhhc19tb3JlPSIwIn1cXX0gXAotICAgICAiaW4t YW5kLW91dC1vZi1zY29wZTogb3V0IG9mIHNjb3BlIG5vdyIKLSAKLSBtaV9nZGJfdGVzdCAiLXZh ci11cGRhdGUgTCIgXAotQEAgLTY1NCw3ICs2NTQsNyBAQCBtaV9nZGJfdGVzdCAiLXZhci11cGRh dGUgTCIgXAotIG1pX2NvbnRpbnVlX3RvIGRvX2xvY2Fsc190ZXN0cwotIAotIG1pX2dkYl90ZXN0 ICItdmFyLXVwZGF0ZSBMIiBcCi0tICAgIHtcXmRvbmUsY2hhbmdlbGlzdD1cW3tuYW1lPSJMIixp bl9zY29wZT0idHJ1ZSIsdHlwZV9jaGFuZ2VkPSJmYWxzZSJ9XF19IFwKLSsgICAge1xeZG9uZSxj aGFuZ2VsaXN0PVxbe25hbWU9IkwiLGluX3Njb3BlPSJ0cnVlIix0eXBlX2NoYW5nZWQ9ImZhbHNl IixoYXNfbW9yZT0iMCJ9XF19IFwKLSAgICAgImluLWFuZC1vdXQtb2Ytc2NvcGU6IGluIHNjb3Bl IG5vdyIKLSAKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgTCIgXAotZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1kaXNwbGF5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2Ri Lm1pL21pLXZhci1kaXNwbGF5LmV4cAotaW5kZXggNGIwMmU1MC4uZmFhOTE3MiAxMDA2NDQKLS0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1kaXNwbGF5LmV4cAotKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWktdmFyLWRpc3BsYXkuZXhwCi1AQCAtNTU4LDcgKzU1OCw3IEBAIG1p X2dkYl90ZXN0ICItdmFyLWluZm8tbnVtLWNoaWxkcmVuIGUiIFwKLSAjIFRlc3Q6IGNfdmFyaWFi bGUtNy41NQotICMgRGVzYzogY2hpbGRyZW4gb2YgZQotIG1pX2dkYl90ZXN0ICItdmFyLWxpc3Qt Y2hpbGRyZW4gZSIgXAotLQkiXFxeZG9uZSxudW1jaGlsZD1cIjBcIiIgXAotKwkiXFxeZG9uZSxu dW1jaGlsZD1cIjBcIixoYXNfbW9yZT1cIjBcIiIgXAotIAkiZ2V0IGNoaWxkcmVuIG9mIGUiCi0g Ci0gIyBUZXN0OiBjX3ZhcmlhYmxlLTcuNjAKLUBAIC02MDAsNyArNjAwLDcgQEAgbWlfZ2RiX3Rl c3QgIi12YXItaW5mby1udW0tY2hpbGRyZW4gYW5vbmUiIFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUt Ny43NQotICMgRGVzYzogY2hpbGRyZW4gb2YgYW5vbmUKLSBtaV9nZGJfdGVzdCAiLXZhci1saXN0 LWNoaWxkcmVuIGFub25lIiBcCi0tCSJcXF5kb25lLG51bWNoaWxkPVwiMFwiIiBcCi0rCSJcXF5k b25lLG51bWNoaWxkPVwiMFwiLGhhc19tb3JlPVwiMFwiIiBcCi0gCSJnZXQgY2hpbGRyZW4gb2Yg YW5vbmUiCi0gCi0gCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWlu dmFsaWRhdGUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWludmFsaWRhdGUuZXhw Ci1pbmRleCAwNWQ0NmZhLi40Yjk1Njc0IDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWktdmFyLWludmFsaWRhdGUuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12 YXItaW52YWxpZGF0ZS5leHAKLUBAIC03Miw3ICs3Miw3IEBAIG1pX3J1bnRvIG1haW4KLSAKLSAj IENoZWNrIGxvY2FsIHZhcmlhYmxlIGlzICJpbnZhbGlkIi4KLSBtaV9nZGJfdGVzdCAiLXZhci11 cGRhdGUgbGludGVnZXIiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibGlu dGVnZXJcIixpbl9zY29wZT1cImludmFsaWRcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2Vs aXN0PVxcXFtce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwiaW52YWxpZFwiLGhhc19tb3Jl PVwiMFwiXH1cXFxdIiBcCi0gCSJsaW50ZWdlciBub3QgYW55bW9yZSBpbiBzY29wZSBkdWUgdG8g YmluYXJ5IGNoYW5nZXMiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItaW5mby10eXBlIGxpbnRlZ2Vy IiBcCi1AQCAtOTcsNyArOTcsNyBAQCBtaV9kZWxldGVfYnJlYWtwb2ludHMKLSBtaV9nZGJfbG9h ZCAke2JpbmZpbGUyfQotICMgQ2hlY2sgbG9jYWwgdmFyaWFibGUgYXJlICJpbnZhbGlkIgotIG1p X2dkYl90ZXN0ICItdmFyLXVwZGF0ZSBsaW50ZWdlciIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0 PVxcXFtce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwiaW52YWxpZFwiXH1cXFxdIiBcCi0r CSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxpbnRlZ2VyXCIsaW5fc2NvcGU9XCJp bnZhbGlkXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJImxpbnRlZ2VyIG5vdCB2YWxpZCBh bnltb3JlIGR1ZSB0byBiaW5hcnkgY2hhbmdlcyIKLSAKLSBtaV9nZGJfdGVzdCAiLXZhci1pbmZv LXR5cGUgbGludGVnZXIiIFwKLUBAIC0xMDYsNyArMTA2LDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXIt aW5mby10eXBlIGxpbnRlZ2VyIiBcCi0gCi0gIyBDaGVjayBnbG9iYWwgdmFyaWFibGUgYXJlIHN0 aWxsIGNvcnJlY3QuCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIGdsb2JhbF9zaW1wbGUiIFwK LS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwiZ2xvYmFsX3NpbXBsZVwiLGluX3Nj b3BlPVwiaW52YWxpZFwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFt ZT1cImdsb2JhbF9zaW1wbGVcIixpbl9zY29wZT1cImludmFsaWRcIixoYXNfbW9yZT1cIjBcIlx9 XFxcXSIgXAotIAkiZ2xvYmFsX3NpbXBsZSBub3QgYW55bW9yZSBpbiBzY29wZSBkdWUgdG8gYmlu YXJ5IGNoYW5nZXMiCi0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItaW5mby10eXBlIGdsb2JhbF9zaW1w bGUiIFwKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLWJsb2NrLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItYmxvY2suZXhwCi1pbmRleCA2YmNmZWEz Li45YjNkMDhmIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1ibG9j ay5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItYmxvY2suZXhwCi1AQCAt NzQsNyArNzQsNyBAQCBtaV9zdGVwX3RvICJkb19ibG9ja190ZXN0cyIgIiIgInZhci1jbWQuYyIg XAotICMgVGVzdDogY192YXJpYWJsZS0zLjQKLSAjIERlc2M6IGNoZWNrIGZvbywgY2IgY2hhbmdl ZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9 XFxcW1x7bmFtZT1cImZvb1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCJcfSxce25hbWU9XCJjYlwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwiZm9vXCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7 bmFtZT1cImNiXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNf bW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBjYiBmb28gY2hhbmdlZCIK LSAKLSAjIHN0ZXAgdG8gImZvbyA9IDMyMTsiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIubWkvbWkyLXZhci1jaGlsZC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLWNo aWxkLmV4cAotaW5kZXggMTYxYjM0Zi4uMGY5YjRkNCAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL21pMi12YXItY2hpbGQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aTItdmFyLWNoaWxkLmV4cAotQEAgLTEsNCArMSw0IEBACi0tIyBDb3B5cmlnaHQgMTk5OSwgMjAw MCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIENv cHlyaWdodCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA5IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbgotIAotICMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci1AQCAt NjgwLDcgKzY4MCw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30gey4qdmFyLWNt ZC5jfSBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuMgotICMgRGVzYzogY2hlY2sgdGhhdCBpbnRl Z2VyIGNoYW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxj aGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmludGVnZXJcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25l LGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuaW50ZWdlclwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxc XF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBzdHJ1Y3RfZGVjbGFyYXRpb25zLmludGVnZXIiCi0g Ci0gIyBTdGVwIG92ZXI6Ci1AQCAtNjkzLDcgKzY5Myw3IEBAIG1pX2V4ZWN1dGVfdG8gImV4ZWMt c3RlcCAzIiAiZW5kLXN0ZXBwaW5nLXJhbmdlIiBkb19jaGlsZHJlbl90ZXN0cyB7fSB7Lip2YXIt Y21kCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuMwotICMgRGVzYzogY2hlY2sgdGhhdCBjaGFyX3B0 ciBjaGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hh bmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5jaGFyX3B0clwiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVj bGFyYXRpb25zLmNoYXJfcHRyLlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25h bWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cInN0cnVjdF9kZWNs YXJhdGlvbnMuY2hhcl9wdHIuXFwqY2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZh cnMgc3RydWN0X2RlY2xhcmF0aW9ucy5jaGFyX3B0ciIKLSAKLSAjIFN0ZXAgb3ZlciAic3RydWN0 X2RlY2xhcmF0aW9ucy5pbnRfcHRyX3B0ciA9ICZmb287IgotQEAgLTcwMyw3ICs3MDMsNyBAQCBt aV9zdGVwX3RvIGRvX2NoaWxkcmVuX3Rlc3RzIHt9IHsuKnZhci1jbWQuY30gXAotICMgVGVzdDog Y192YXJpYWJsZS01LjQKLSAjIERlc2M6IGNoZWNrIHRoYXQgaW50X3B0cl9wdHIgYW5kIGNoaWxk cmVuIGNoYW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxj aGFuZ2VsaXN0PVxcXFtce25hbWU9XCJ3ZWlyZC0+aW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRy dWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwid2VpcmQtPmludF9wdHJfcHRy LlxcKndlaXJkLT5pbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCJcfSxce25hbWU9XCJ3ZWlyZC0+aW50X3B0cl9wdHIuXFwqd2VpcmQtPmludF9wdHJf cHRyLlxcKlxcKndlaXJkLT5pbnRfcHRyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmludF9wdHJfcHRy XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInN0 cnVjdF9kZWNsYXJhdGlvbnMuaW50X3B0cl9wdHIuXFwqaW50X3B0cl9wdHJcIixpbl9zY29wZT1c InRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0 aW9ucy5pbnRfcHRyX3B0ci5cXCppbnRfcHRyX3B0ci5cXCpcXCppbnRfcHRyX3B0clwiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUs Y2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwid2VpcmQtPmludF9wdHJfcHRyXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cIndl aXJkLT5pbnRfcHRyX3B0ci5cXCp3ZWlyZC0+aW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwid2VpcmQt PmludF9wdHJfcHRyLlxcKndlaXJkLT5pbnRfcHRyX3B0ci5cXCpcXCp3ZWlyZC0+aW50X3B0cl9w dHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwi MFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5pbnRfcHRyX3B0clwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9 XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmludF9wdHJfcHRyLlxcKmludF9wdHJfcHRyXCIsaW5fc2Nv cGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFt ZT1cInN0cnVjdF9kZWNsYXJhdGlvbnMuaW50X3B0cl9wdHIuXFwqaW50X3B0cl9wdHIuXFwqXFwq aW50X3B0cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhh c19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgaW50X3B0cl9wdHIgYW5k IGNoaWxkcmVuIGNoYW5nZWQiCi0gCi0gIyBTdGVwIG92ZXIgIndlaXJkLT5sb25nX2FycmF5WzBd ID0gMTIzNDsiCi1AQCAtNzEzLDcgKzcxMyw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVz dHMge30gey4qdmFyLWNtZC5jfSBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNQotICMgRGVzYzog Y2hlY2sgdGhhdCBsb25nX2FycmF5WzBdIGNoYW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRh dGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFy YXRpb25zLmxvbmdfYXJyYXkuMFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0 X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjBcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMg c3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjAgY2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3Zl ciAic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5WzFdID0gMjM0NTsiCi1AQCAtNzIzLDcg KzcyMyw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hpbGRyZW5fdGVzdHMge30gey4qdmFyLWNtZC5jfSBc Ci0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNgotICMgRGVzYzogY2hlY2sgdGhhdCBsb25nX2FycmF5 WzFdIGNoYW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxj aGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuMVwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxc XmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2Fy cmF5LjFcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3Jl PVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9ucy5s b25nX2FycmF5LjEgY2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAid2VpcmQtPmxvbmdfYXJyYXlb Ml0gPSAzNDU2OyIKLUBAIC03MzMsNyArNzMzLDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90 ZXN0cyB7fSB7Lip2YXItY21kLmN9IFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNS43Ci0gIyBEZXNj OiBjaGVjayB0aGF0IGxvbmdfYXJyYXlbMl0gY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVw ZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNs YXJhdGlvbnMubG9uZ19hcnJheS4yXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzdHJ1 Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuMlwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFy cyBzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuMiBjaGFuZ2VkIgotIAotICMgU3RlcCBv dmVyOgotQEAgLTc1Miw3ICs3NTIsNyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAgNyIgImVu ZC1zdGVwcGluZy1yYW5nZSIgZG9fY2hpbGRyZW5fdGVzdHMge30gey4qdmFyLWNtZAotICMgVGVz dDogY192YXJpYWJsZS01LjgKLSAjIERlc2M6IGNoZWNrIHRoYXQgbG9uZ19hcnJheVszLTldIGNo YW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2Vs aXN0PVxcXFtce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuM1wiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVj bGFyYXRpb25zLmxvbmdfYXJyYXkuNFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuNVwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3Rf ZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuNlwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdl ZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuN1wi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1 Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXkuOFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJzdHJ1Y3RfZGVjbGFyYXRpb25zLmxvbmdfYXJyYXku OVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJ IlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25n X2FycmF5LjNcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19t b3JlPVwiMFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjRcIixp bl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0s XHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjVcIixpbl9zY29wZT1cInRy dWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwic3Ry dWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjZcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0 aW9ucy5sb25nX2FycmF5LjdcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2Fy cmF5LjhcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3Jl PVwiMFwiXH0sXHtuYW1lPVwic3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjlcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxd IiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0X2RlY2xhcmF0aW9ucy5sb25nX2FycmF5LjMt OSBjaGFuZ2VkIgotIAotIAotQEAgLTc2NCw3ICs3NjQsNyBAQCBtaV9zdGVwX3RvIGRvX2NoaWxk cmVuX3Rlc3RzIHt9IHsuKnZhci1jbWQuY30gXAotICMgVGVzdDogY192YXJpYWJsZS01LjkKLSAj IERlc2M6IGNoZWNrIHRoYXQgZnVuY19wdHIgY2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVw ZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9kZWNs YXJhdGlvbnMuZnVuY19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInN0cnVjdF9k ZWNsYXJhdGlvbnMuZnVuY19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJm YWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgc3RydWN0 X2RlY2xhcmF0aW9ucy5mdW5jX3B0ciBjaGFuZ2VkIgotIAotICMgRGVsZXRlIGFsbCB2YXJpYWJs ZXMKLUBAIC0xMDc1LDcgKzEwNzUsNyBAQCBtaV9zdGVwX3RvIGRvX2NoaWxkcmVuX3Rlc3RzIHt9 IHsuKnZhci1jbWQuY30gXAotICMgVGVzdDogY192YXJpYWJsZS01LjQ3Ci0gIyBEZXNjOiBjaGVj ayB0aGF0IHBzbnAtPmNoYXJfcHRyIChhbmQgWzBdLmNoYXJfcHRyKSBjaGFuZ2VkCi0gbWlfZ2Ri X3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1l PVwicHNucC0+cHRycy4wLmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIs dHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPmNoYXJfcHRyLlxcKnBzbnAt PmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7 bmFtZT1cInBzbnAtPmNoYXJfcHRyLlxcKnBzbnAtPmNoYXJfcHRyLlxcKlxcKnBzbnAtPmNoYXJf cHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1c InBzbnAtPmNoYXJfcHRyLlxcKnBzbnAtPmNoYXJfcHRyLlxcKlxcKnBzbnAtPmNoYXJfcHRyLlxc KlxcKlxcKnBzbnAtPmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPmNoYXJfcHRyLlxcKnBzbnAtPmNoYXJfcHRyLlxcKlxc KnBzbnAtPmNoYXJfcHRyLlxcKlxcKlxcKnBzbnAtPmNoYXJfcHRyLlxcKlxcKlxcKlxcKnBzbnAt PmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxc XSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJwc25wLT5wdHJzLjAuY2hh cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3Jl PVwiMFwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBl X2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9w dHIuXFwqcHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJm YWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+ Y2hhcl9wdHIuXFwqXFwqcHNucC0+Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIu XFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqXFwqcHNucC0+Y2hh cl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3Jl PVwiMFwiXH0sXHtuYW1lPVwicHNucC0+Y2hhcl9wdHIuXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwq cHNucC0+Y2hhcl9wdHIuXFwqXFwqXFwqcHNucC0+Y2hhcl9wdHIuXFwqXFwqXFwqXFwqcHNucC0+ Y2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19t b3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnMgcHNucC0+Y2hhcl9wdHIgKGFu ZCAwLmNoYXJfcHRyKSBjaGFuZ2VkIgotIAotICMgIFN0ZXAgb3ZlciAic25wMS5jaGFyX3B0ciA9 ICZjMzsiCi1AQCAtMTA4NSw3ICsxMDg1LDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0 cyB7fSB7Lip2YXItY21kLmN9IFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNS40OAotICMgRGVzYzog Y2hlY2sgdGhhdCBwc25wLT5uZXh0LT5jaGFyX3B0ciAoYW5kIFsxXS5jaGFyX3B0cikgY2hhbmdl ZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9 XFxcW1x7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVl XCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNo YXJfcHRyLlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyLlxc KlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9 LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJfcHRyLlxcKlxcKmNo YXJfcHRyLlxcKlxcKlxcKmNoYXJfcHRyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIlx9LFx7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0LmNoYXJfcHRyLlxcKmNoYXJf cHRyLlxcKlxcKmNoYXJfcHRyLlxcKlxcKlxcKmNoYXJfcHRyLlxcKlxcKlxcKlxcKmNoYXJfcHRy XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIgXAotKwki XFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0 clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIw XCJcfSxce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0clwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxc e25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0ci5cXCpcXCpjaGFy X3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9 XCIwXCJcfSxce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0ci5c XCpcXCpjaGFyX3B0ci5cXCpcXCpcXCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5wdHJzLjAu bmV4dC5jaGFyX3B0ci5cXCpjaGFyX3B0ci5cXCpcXCpjaGFyX3B0ci5cXCpcXCpcXCpjaGFyX3B0 ci5cXCpcXCpcXCpcXCpjaGFyX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBwc25w LT5uZXh0LT5jaGFyX3B0ciAoYW5kIDEuY2hhcl9wdHIpIGNoYW5nZWQiCi0gCi0gCi1AQCAtMTA5 Niw3ICsxMDk2LDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSB7Lip2YXItY21k LmN9IFwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNS40OQotICMgRGVzYzogY2hlY2sgdGhhdCBwc25w LT5uZXh0LT5uZXh0LT5jaGFyX3B0ciAoYW5kIFsyXS5jaGFyX3B0cikgY2hhbmdlZAotIG1pX2dk Yl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFt ZT1cInBzbnAtPnB0cnMuMC5uZXh0Lm5leHQuY2hhcl9wdHJcIixpbl9zY29wZT1cInRydWVcIix0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxc W1x7bmFtZT1cInBzbnAtPnB0cnMuMC5uZXh0Lm5leHQuY2hhcl9wdHJcIixpbl9zY29wZT1cInRy dWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1 cGRhdGUgYWxsIHZhcnMgcHNucC0+bmV4dC0+bmV4dC0+Y2hhcl9wdHIgKGFuZCAyLmNoYXJfcHRy KSBjaGFuZ2VkIgotIAotIAotQEAgLTExMDcsNyArMTEwNyw3IEBAIG1pX3N0ZXBfdG8gZG9fY2hp bGRyZW5fdGVzdHMge30gey4qdmFyLWNtZC5jfSBcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTUuNTAK LSAjIERlc2M6IGNoZWNrIHRoYXQgcHNucC0+bG9uZ19wdHIgKGFuZCBbMF0ubG9uZ19wdHIpIGNo YW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2Vs aXN0PVxcXFtce25hbWU9XCJwc25wLT5wdHJzLjAubG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+bG9uZ19wdHJcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+bG9u Z19wdHIuXFwqcHNucC0+bG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9 XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+bG9uZ19wdHIuXFwqcHNucC0+bG9uZ19wdHIuXFwq XFwqcHNucC0+bG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiXH0sXHtuYW1lPVwicHNucC0+bG9uZ19wdHIuXFwqcHNucC0+bG9uZ19wdHIuXFwqXFwqcHNu cC0+bG9uZ19wdHIuXFwqXFwqXFwqcHNucC0+bG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwicHNucC0+bG9uZ19wdHIuXFwqcHNucC0+ bG9uZ19wdHIuXFwqXFwqcHNucC0+bG9uZ19wdHIuXFwqXFwqXFwqcHNucC0+bG9uZ19wdHIuXFwq XFwqXFwqXFwqcHNucC0+bG9uZ19wdHJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9 XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cInBz bnAtPnB0cnMuMC5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0clwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9 XCJwc25wLT5sb25nX3B0ci5cXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5 cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5sb25n X3B0ci5cXCpwc25wLT5sb25nX3B0ci5cXCpcXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJw c25wLT5sb25nX3B0ci5cXCpwc25wLT5sb25nX3B0ci5cXCpcXCpwc25wLT5sb25nX3B0ci5cXCpc XCpcXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZh bHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJwc25wLT5sb25nX3B0ci5cXCpwc25wLT5s b25nX3B0ci5cXCpcXCpwc25wLT5sb25nX3B0ci5cXCpcXCpcXCpwc25wLT5sb25nX3B0ci5cXCpc XCpcXCpcXCpwc25wLT5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBwc25w LT5sb25nX3B0ciAoYW5kIDAubG9uZ19wdHIpIGNoYW5nZWQiCi0gCi0gCi1AQCAtMTEyMCw3ICsx MTIwLDcgQEAgbWlfc3RlcF90byBkb19jaGlsZHJlbl90ZXN0cyB7fSB7Lip2YXItY21kLmN9IFwK LSAjIFdoeSBkb2VzIHRoaXMgaGF2ZSBhIEZJWE1FPwotIHNldHVwX3hmYWlsICotKi0qCi0gbWlf Z2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIkZJWE1FXFxeZG9uZSxjaGFuZ2VsaXN0PVxc XFtce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwi LHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIkZJWE1FXFxeZG9uZSxjaGFuZ2Vs aXN0PVxcXFtce25hbWU9XCJwc25wLT5wdHJzLjAubmV4dC5sb25nX3B0clwiLGluX3Njb3BlPVwi dHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJ InVwZGF0ZSBhbGwgdmFycyBwc25wLT5uZXh0LT5sb25nX3B0ciAoYW5kIDEubG9uZ19wdHIpIGNo YW5nZWQiCi0gY2xlYXJfeGZhaWwgKi0qLSoKLSAKLUBAIC0xMTM1LDcgKzExMzUsNyBAQCBtaV9z dGVwX3RvIGRvX2NoaWxkcmVuX3Rlc3RzIHt9IHsuKnZhci1jbWQuY30gXAotICMgVGVzdDogY192 YXJpYWJsZS01LjUyCi0gIyBEZXNjOiBjaGVjayB0aGF0IHBzbnAtPm5leHQtPm5leHQtPmxvbmdf cHRyIChhbmQgWzJdLmxvbmdfcHRyKSBjaGFuZ2VkCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRl ICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwicHNucC0+cHRycy4wLm5l eHQubmV4dC5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwicHNucC0+cHRy cy4wLm5leHQubmV4dC5sb25nX3B0clwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFycyBwc25w LT5uZXh0LT5uZXh0LT5sb25nX3B0ciAoYW5kIDIubG9uZ19wdHIpIGNoYW5nZWQiCi0gCi0gCi1k aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1jbWQuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWkyLXZhci1jbWQuZXhwCi1pbmRleCBkZGE3N2JiLi4wZTkxNjM0IDEw MDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1jbWQuZXhwCi0rKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLWNtZC5leHAKLUBAIC0xNTEsNyArMTUxLDcgQEAg bWlfc3RlcF90byAiZG9fbG9jYWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiAkbGluZV9kbHRfbGlu dGVnZXIgInN0ZXAgYXQgZG9fbG9jYWwKLSAjIFRlc3Q6IGNfdmFyaWFibGUtMi4yCi0gIyBEZXNj OiBjaGVjayB3aGV0aGVyIG9ubHkgbGludGVnZXIgY2hhbmdlZCB2YWx1ZXMKLSBtaV9nZGJfdGVz dCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJs aW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0i IFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibGludGVnZXJcIixpbl9zY29w ZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH1cXFxdIiBc Ci0gCSJ1cGRhdGUgYWxsIHZhcnM6IGxpbnRlZ2VyIGNoYW5nZWQiCi0gCi0gIyBTdGVwIG92ZXIg ImxwaW50ZWdlciA9ICZsaW50ZWdlcjsiCi1AQCAtMTYwLDcgKzE2MCw3IEBAIG1pX3N0ZXBfdG8g ImRvX2xvY2Fsc190ZXN0cyIgIiIgInZhci1jbWQuYyIgW2V4cHIgJGxpbmVfZGx0X2xpbnRlZ2Vy ICsgMV0gInN0ZXAKLSAjIFRlc3Q6IGNfdmFyaWFibGUtMi4zCi0gIyBEZXNjOiBjaGVjayB3aGV0 aGVyIG9ubHkgbHBpbnRlZ2VyIGNoYW5nZWQKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIg XAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJscGludGVnZXJcIixpbl9zY29w ZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNo YW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxwaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwg dmFyczogbHBpbnRlZ2VyIGNoYW5nZWQiCi0gCi0gIyBTdGVwIG92ZXIgImxjaGFyYWN0ZXIgPSAn YSc7IgotQEAgLTE2OSw3ICsxNjksNyBAQCBtaV9zdGVwX3RvICJkb19sb2NhbHNfdGVzdHMiICIi ICJ2YXItY21kLmMiIFtleHByICRsaW5lX2RsdF9saW50ZWdlciArIDJdICJzdGVwCi0gIyBUZXN0 OiBjX3ZhcmlhYmxlLTIuNAotICMgRGVzYzogY2hlY2sgd2hldGhlciBvbmx5IGxjaGFyYWN0ZXIg Y2hhbmdlZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5n ZWxpc3Q9XFxcW1x7bmFtZT1cImxjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFt ZT1cImxjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwi LGhhc19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnM6IGxjaGFyYWN0ZXIg Y2hhbmdlZCIKLSAKLSAjIFN0ZXAgb3ZlciAibHBjaGFyYWN0ZXIgPSAmbGNoYXJhY3RlcjsiCi1A QCAtMTc4LDcgKzE3OCw3IEBAIG1pX3N0ZXBfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIgInZhci1j bWQuYyIgW2V4cHIgJGxpbmVfZGx0X2xpbnRlZ2VyICsgM10gInN0ZXAKLSAjIFRlc3Q6IGNfdmFy aWFibGUtMi41Ci0gIyBEZXNjOiBjaGVjayB3aGV0aGVyIG9ubHkgbHBjaGFyYWN0ZXIgY2hhbmdl ZAotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxpc3Q9 XFxcW1x7bmFtZT1cImxwY2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJs cGNoYXJhY3RlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFz X21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFyczogbHBjaGFyYWN0ZXIgY2hh bmdlZCIKLSAKLSAKLUBAIC0yMDAsNyArMjAwLDcgQEAgbWlfZXhlY3V0ZV90byAiZXhlYy1zdGVw IDkiICJlbmQtc3RlcHBpbmctcmFuZ2UiICJkb19sb2NhbHNfdGVzdHMiICIiIFwKLSAjIERlc2M6 IGNoZWNrIHdoZXRoZXIgbGxvbmcsIGxwbG9uZywgbGZsb2F0LCBscGZsb2F0LCBsZG91YmxlLCBs cGRvdWJsZSwgbHNpbXBsZS5pbnRlZ2VyLAotICMgICAgICAgbHNpbXBsZS51bnNpZ25lZF9jaGFy YWN0ZXIgbHNpbXBsZS5pbnRlZ2VyIGxzaW1wbGUuY2hhcmFjdGVyIGNoYW5nZWQKLSBtaV9nZGJf dGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9 XCJsc2ltcGxlLmludGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxz ZVwiXH0sXHtuYW1lPVwibHNpbXBsZS0+aW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsc2ltcGxlLmNoYXJhY3RlclwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJscGRvdWJsZVwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsZG91Ymxl XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxw ZmxvYXRcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1l PVwibGZsb2F0XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7 bmFtZT1cImxwbG9uZ1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJc fSxce25hbWU9XCJsbG9uZ1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNl XCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibHNpbXBsZS5p bnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9y ZT1cIjBcIlx9LFx7bmFtZT1cImxzaW1wbGUtPmludGVnZXJcIixpbl9zY29wZT1cInRydWVcIix0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibHNpbXBsZS5j aGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19t b3JlPVwiMFwiXH0sXHtuYW1lPVwibHBkb3VibGVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2No YW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGRvdWJsZVwiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25h bWU9XCJscGZsb2F0XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixo YXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxmbG9hdFwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9XCJscGxvbmdcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtu YW1lPVwibGxvbmdcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhh c19tb3JlPVwiMFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnM6IG1hbnkgY2hhbmdlZCIK LSAKLSAjIFN0ZXAgb3ZlcjoKLUBAIC0yMTcsNyArMjE3LDcgQEAgbWlfZXhlY3V0ZV90byAiZXhl Yy1zdGVwIDQiICJlbmQtc3RlcHBpbmctcmFuZ2UiICJkb19sb2NhbHNfdGVzdHMiICIiIFwKLSAj IFRlc3Q6IGNfdmFyaWFibGUtMi43Ci0gIyBEZXNjOiBjaGVjayB3aGV0aGVyIChsc2ltcGxlLnNp Z25lZF9jaGFyYWN0ZXIsIGxzaW1wbGUuY2hhcl9wdHIpIGxwc2ltcGxlLCBmdW5jIGNoYW5nZWQK LSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxc XFtce25hbWU9XCJmdW5jXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc Ilx9LFx7bmFtZT1cImxwc2ltcGxlXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIlx9XFxcXSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJmdW5j XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBc Ilx9LFx7bmFtZT1cImxwc2ltcGxlXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBmdW5j IGFuZCBscHNpbXBsZSBjaGFuZ2VkIgotIAotICMgU3RlcCBvdmVyCi1AQCAtMjM5LDcgKzIzOSw3 IEBAIG1pX2V4ZWN1dGVfdG8gImV4ZWMtc3RlcCA4IiAiZW5kLXN0ZXBwaW5nLXJhbmdlIiAiZG9f bG9jYWxzX3Rlc3RzIiAiIiBcCi0gIyBOb3RlOiB0aGlzIHRlc3QgYWxzbyBjaGVja3MgdGhhdCBs cHNpbXBsZS0+aW50ZWdlciBhbmQgbHNpbXBsZS5pbnRlZ2VyIGhhdmUKLSAjICAgICAgIGNoYW5n ZWQgKHRoZXkgYXJlIHRoZSBzYW1lKQotIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCi0t CSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxzaW1wbGUuaW50ZWdlclwiLGluX3Nj b3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfSxce25hbWU9XCJsc2ltcGxlLT5p bnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFt ZT1cImxzaW1wbGUuY2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIlx9LFx7bmFtZT1cImxkb3VibGVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibGZsb2F0XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxsb25nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlw ZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxwY2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0 cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9LFx7bmFtZT1cImxjaGFyYWN0ZXJcIixpbl9z Y29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sXHtuYW1lPVwibGludGVnZXJc Iixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJc XF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxzaW1wbGUuaW50ZWdlclwiLGluX3Njb3Bl PVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfSxce25hbWU9 XCJsc2ltcGxlLT5pbnRlZ2VyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxzaW1wbGUuY2hhcmFjdGVyXCIsaW5fc2Nv cGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFt ZT1cImxkb3VibGVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhh c19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGZsb2F0XCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9j aGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxsb25nXCIsaW5fc2Nv cGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIixoYXNfbW9yZT1cIjBcIlx9LFx7bmFt ZT1cImxwY2hhcmFjdGVyXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc IixoYXNfbW9yZT1cIjBcIlx9LFx7bmFtZT1cImxjaGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVc Iix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwiMFwiXH0sXHtuYW1lPVwibGludGVn ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwi MFwiXH1cXFxdIiBcCi0gCSJ1cGRhdGUgYWxsIHZhcnM6IGxzaW1wbGUgYW5kIG90aGVycyBjaGFu Z2VkIgotIAotIAotQEAgLTI2Miw3ICsyNjIsNyBAQCBtaV9nZGJfdGVzdCAiLXZhci1hc3NpZ24g bGludGVnZXIgMzMzMyIgXAotICMgY2hhbmdlLgotIHNldCBscGNoYXJfdXBkYXRlICJce25hbWU9 XCJscGNoYXJhY3RlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJc fSwiCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hhbmdlbGlz dD1cXFxbKCRscGNoYXJfdXBkYXRlKT9ce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlz dD1cXFxbKCRscGNoYXJfdXBkYXRlKT9ce25hbWU9XCJsaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVw ZGF0ZSBhbGwgdmFyczogbGludGVnZXIgY2hhbmdlZCBhZnRlciBhc3NpZ24iCi0gCi0gbWlfZ2Ri X3Rlc3QgIi12YXItYXNzaWduIGxpbnRlZ2VyIDMzMzMiIFwKLUBAIC0yODIsNyArMjgyLDcgQEAg bWlfZ2RiX3Rlc3QgIi12YXItYXNzaWduIGxwaW50ZWdlciBcIiZsaW50ZWdlciArIDNcIiIgXAot IAkiYXNzaWduIHRvIGxwaW50ZWdlciIKLSAKLSBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIg XAotLQkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJscGludGVnZXJcIixpbl9zY29w ZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNo YW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxwaW50ZWdlclwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVf Y2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwg dmFyczogbHBpbnRlZ2VyIGNoYW5nZWQgYWZ0ZXIgYXNzaWduIgotIAotIG1pX2dkYl90ZXN0ICIt dmFyLXVwZGF0ZSAqIiBcCi1AQCAtNDA3LDcgKzQwNyw3IEBAIG1pX3N0ZXBfdG8gInN1YnJvdXRp bmUxIiAiXHtuYW1lPVwiaVwiLHZhbHVlPVwiLipcIlx9LFx7bmFtZT1cImxcIix2YWx1ZT1cIi4q XCJcCi0gIyBUZXN0OiBjX3ZhcmlhYmxlLTIuMTMKLSAjIERlc2M6IGNoYW5nZSBzdWJyb3V0aW5l MSBsb2NhbCBpCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUsY2hh bmdlbGlzdD1cXFxbXHtuYW1lPVwiaVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1c ImZhbHNlXCJcfVxcXF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwiaVwi LGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9XCIwXCJc fVxcXF0iIFwKLSAJInVwZGF0ZSBhbGwgdmFyczogaSBjaGFuZ2VkIgotIAotIG1pX3N0ZXBfdG8g InN1YnJvdXRpbmUxIiAiXHtuYW1lPVwiaVwiLHZhbHVlPVwiLipcIlx9LFx7bmFtZT1cImxcIix2 YWx1ZT1cIi4qXCJcfSIgXAotQEAgLTQxNiw3ICs0MTYsNyBAQCBtaV9zdGVwX3RvICJzdWJyb3V0 aW5lMSIgIlx7bmFtZT1cImlcIix2YWx1ZT1cIi4qXCJcfSxce25hbWU9XCJsXCIsdmFsdWU9XCIu KlwiXAotICMgVGVzdDogY192YXJpYWJsZS0yLjE0Ci0gIyBEZXNjOiBjaGFuZ2UgZG9fbG9jYWxz X3Rlc3RzIGxvY2FsIGxsb25nCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxc XmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibGxvbmdcIixpbl9zY29wZT1cInRydWVcIix0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxc W1x7bmFtZT1cImxsb25nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2Vc IixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBsbG9uZyBjaGFu Z2VkIgotIAotIHNldCBsaW5lX2RsdF9jYWxsX3N1YnJvdXRpbmUxIFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJzdWJyb3V0aW5lMSAobGludGVnZXIsICZsbG9uZyk7Il0KLUBAIC00MjYsNyArNDI2LDcg QEAgbWlfbmV4dF90byAiZG9fbG9jYWxzX3Rlc3RzIiAiIgkidmFyLWNtZC5jIiBcCi0gIyBUZXN0 OiBjX3ZhcmlhYmxlLTIuMTUKLSAjIERlc2M6IGNoZWNrIGZvciBvdXQgb2Ygc2NvcGUgc3Vicm91 dGluZTEgbG9jYWxzCi0gbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLS0JIlxcXmRvbmUs Y2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwibFwiLGluX3Njb3BlPVwiZmFsc2VcIlwsdHlwZV9jaGFu Z2VkPVwiZmFsc2VcIn0sXHtuYW1lPVwiaVwiLGluX3Njb3BlPVwiZmFsc2VcIix0eXBlX2NoYW5n ZWQ9XCJmYWxzZVwiXH1cXFxdIiBcCi0rCSJcXF5kb25lLGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1c ImxcIixpbl9zY29wZT1cImZhbHNlXCJcLHR5cGVfY2hhbmdlZD1cImZhbHNlXCIsaGFzX21vcmU9 XCIwXCJ9LFx7bmFtZT1cImlcIixpbl9zY29wZT1cImZhbHNlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIixoYXNfbW9yZT1cIjBcIlx9XFxcXSIgXAotIAkidXBkYXRlIGFsbCB2YXJzOiBhbGwgbm93 IG91dCBvZiBzY29wZSIKLSAKLSAjIERvbmUgd2l0aCBsb2NhbHMvZ2xvYmFscyB0ZXN0cy4gRXJh c2UgYWxsIHZhcmlhYmxlcwotQEAgLTUxOCwxNCArNTE4LDE0IEBAIG1pX2dkYl90ZXN0ICItdmFy LWNyZWF0ZSBzZWxlY3RlZF9hIEAgYSIgXAotIG1pX2NvbnRpbnVlX3RvIGluY3JfYQotIAotIG1p X2dkYl90ZXN0ICItdmFyLXVwZGF0ZSBzZWxlY3RlZF9hIiBcCi0tCSJcXF5kb25lLGNoYW5nZWxp c3Q9XFxcW1x7bmFtZT1cInNlbGVjdGVkX2FcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5n ZWQ9XCJ0cnVlXCIsbmV3X3R5cGU9XCJjaGFyXCIsbmV3X251bV9jaGlsZHJlbj1cIjBcIlx9XFxc XSIgXAotKwkiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCJzZWxlY3RlZF9hXCIsaW5f c2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwidHJ1ZVwiLG5ld190eXBlPVwiY2hhclwiLG5l d19udW1fY2hpbGRyZW49XCIwXCJcLGhhc19tb3JlPVwiMFwifVxcXF0iIFwKLSAJInVwZGF0ZSBz ZWxlY3RlZF9hIGluIGluY3JfYSIKLSAKLSBtaV9uZXh0ICJzdGVwIGEgbGluZSBpbiBpbmNyX2Ei Ci0gbWlfbmV4dCAicmV0dXJuIGZyb20gaW5jcl9hIHRvIGRvX3NwZWNpYWxfdGVzdHMiCi0gCi0g bWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIHNlbGVjdGVkX2EiIFwKLS0JIlxcXmRvbmUsY2hhbmdl bGlzdD1cXFxbXHtuYW1lPVwic2VsZWN0ZWRfYVwiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cInRydWVcIixuZXdfdHlwZT1cImludFwiLG5ld19udW1fY2hpbGRyZW49XCIwXCJcfVxc XF0iIFwKLSsJIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbXHtuYW1lPVwic2VsZWN0ZWRfYVwiLGlu X3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hhbmdlZD1cInRydWVcIixuZXdfdHlwZT1cImludFwiLG5l d19udW1fY2hpbGRyZW49XCIwXCIsaGFzX21vcmU9XCIwXCJcfVxcXF0iIFwKLSAJInVwZGF0ZSBz ZWxlY3RlZF9hIGluIGRvX3NwZWNpYWxfdGVzdHMiCi0gCi0gbWlfZ2RiX3Rlc3QgIi1maWxlLWV4 ZWMtYW5kLXN5bWJvbHMgJHtiaW5maWxlfSIgIlxcXmRvbmUiIFwKLWRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5taS9taTItdmFyLWRpc3BsYXkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu bWkvbWkyLXZhci1kaXNwbGF5LmV4cAotaW5kZXggZDZjZTY3My4uMTdlMjA4YSAxMDA2NDQKLS0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItZGlzcGxheS5leHAKLSsrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItZGlzcGxheS5leHAKLUBAIC01NTcsNyArNTU3LDcgQEAg bWlfZ2RiX3Rlc3QgIi12YXItaW5mby1udW0tY2hpbGRyZW4gZSIgXAotICMgVGVzdDogY192YXJp YWJsZS03LjU1Ci0gIyBEZXNjOiBjaGlsZHJlbiBvZiBlCi0gbWlfZ2RiX3Rlc3QgIi12YXItbGlz dC1jaGlsZHJlbiBlIiBcCi0tCSJcXF5kb25lLG51bWNoaWxkPVwiMFwiIiBcCi0rCSJcXF5kb25l LG51bWNoaWxkPVwiMFwiLGhhc19tb3JlPVwiMFwiIiBcCi0gCSJnZXQgY2hpbGRyZW4gb2YgZSIK LSAKLSAjIFRlc3Q6IGNfdmFyaWFibGUtNy42MAotQEAgLTU5OSw3ICs1OTksNyBAQCBtaV9nZGJf dGVzdCAiLXZhci1pbmZvLW51bS1jaGlsZHJlbiBhbm9uZSIgXAotICMgVGVzdDogY192YXJpYWJs ZS03Ljc1Ci0gIyBEZXNjOiBjaGlsZHJlbiBvZiBhbm9uZQotIG1pX2dkYl90ZXN0ICItdmFyLWxp c3QtY2hpbGRyZW4gYW5vbmUiIFwKLS0JIlxcXmRvbmUsbnVtY2hpbGQ9XCIwXCIiIFwKLSsJIlxc XmRvbmUsbnVtY2hpbGQ9XCIwXCIsaGFzX21vcmU9XCIwXCIiIFwKLSAJImdldCBjaGlsZHJlbiBv ZiBhbm9uZSIKLSAKLSAKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXkt ZnJvbS1yZWdpc3Rlci1mdW5jLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1y ZWdpc3Rlci1mdW5jLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAwLi43Mjlm NDU3CkBAIC0yNzc1NCwyODMgKzI2MDMyLDExIEBAIGluZGV4IDAwMDAwMDAuLmU5ZDE4YjcKICtn ZGJfcHlfdGVzdF9zaWxlbnRfY21kICJweXRob24gdDAgPSBnZGIuc2VsZWN0ZWRfdGhyZWFkICgp IiAidGVzdCBnZGIuc2VsZWN0ZWRfdGhyZWFkIiAxCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCB0 MCIgIlxcPGdkYi5JbmZlcmlvclRocmVhZCBvYmplY3QgYXQgMHhcW1xbOnhkaWdpdDpcXVxdKz4i ICJ2ZXJpZnkgSW5mZXJpb3JUaHJlYWQgb2JqZWN0IgogK2dkYl90ZXN0ICJweXRob24gcHJpbnQg J3Jlc3VsdCA9JywgdDAubnVtIiAiID0gXFswLTlcXSsiICJ0ZXN0IEluZmVyaW9yLm51bSIKLWRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktbWkuZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LW1pLmV4cAotaW5kZXggZDNmNDRiMi4uYWZkZThjNCAxMDA2NDQK LS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1taS5leHAKLSsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1taS5leHAKLUBAIC00OCwyMyArNDgsNTMgQEAgbWlfZ2RiX3Rl c3QgInB5dGhvbiBleGVjZmlsZSAoJyR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ucHkn KSIgIiIKLSBtaV9jb250aW51ZV90b19saW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVyIHtNSSBicmVh a3BvaW50IGhlcmV9ICR7dGVzdGZpbGV9LmNdIFwKLSAgICJzdGVwIHRvIGJyZWFrcG9pbnQiCi0g Ci0tbWlfY3JlYXRlX2Zsb2F0aW5nX3Zhcm9iaiBjb250YWluZXIgYyAiY3JlYXRlIGNvbnRhaW5l ciB2YXJvYmoiCi0rbWlfY3JlYXRlX2R5bmFtaWNfdmFyb2JqIGNvbnRhaW5lciBjIFwKLSsgICJj cmVhdGUgY29udGFpbmVyIHZhcm9iaiwgbm8gcHJldHR5LXByaW50aW5nIgotKwotK21pX2xpc3Rf dmFyb2JqX2NoaWxkcmVuIGNvbnRhaW5lciB7Ci0rICB7IGNvbnRhaW5lci5uYW1lIG5hbWUgMSBz dHJpbmcgfQotKyAgeyBjb250YWluZXIubGVuIGxlbiAwIGludCB9Ci0rICB7IGNvbnRhaW5lci5l bGVtZW50cyBlbGVtZW50cyAxICJpbnQgLiIgfQotK30gImV4YW1pbmUgY29udGFpbmVyIGNoaWxk cmVuPTAsIG5vIHByZXR0eS1wcmludGluZyIKLSsKLSttaV9kZWxldGVfdmFyb2JqIGNvbnRhaW5l ciAiZGVsZXRlIHZhcm9iaiIKLSsKLSttaV9nZGJfdGVzdCAiLWVuYWJsZS1wcmV0dHktcHJpbnRp bmciICIiCi0rCi0rbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHN0cmluZyBzdHJpbmdfMSBcCi0r ICAgICJzdHJ1Y3Qgc3RyaW5nX3JlcHIiIFwKLSsgICAgImNyZWF0ZSBzdHJpbmdfMSB2YXJvYmoi Ci0rCi0rbWlfZ2RiX3Rlc3QgIi1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gXCJzdHJpbmdfMSA9 IHN0cmluZ18yXCIiICIuKiIgXAotKyAgICAiYXNzaWduIHN0cmluZ18xIGZyb20gc3RyaW5nXzIi Ci0rCi0rbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIHN0cmluZyIgXAotKyAgICAiXFxeZG9uZSxj aGFuZ2VsaXN0PVxcXFt7bmFtZT1cInN0cmluZ1wiLGluX3Njb3BlPVwidHJ1ZVwiLHR5cGVfY2hh bmdlZD1cImZhbHNlXCIsZHluYW1pYz1cIjFcIixoYXNfbW9yZT1cIjBcIn1cXFxdIiBcCi0rICAg ICJ1cGRhdGUgc3RyaW5nIHZhcm9iaiBhZnRlciBhc3NpZ25tZW50IgotKwotK21pX2NyZWF0ZV9k eW5hbWljX3Zhcm9iaiBjb250YWluZXIgYyBcCi0rICAiY3JlYXRlIGNvbnRhaW5lciB2YXJvYmoi Ci0gCi0gbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4gY29udGFpbmVyIHsKLSB9ICJleGFtaW5lIGNv bnRhaW5lciBjaGlsZHJlbj0wIgotIAotIG1pX25leHQgIm5leHQgb3ZlciB1cGRhdGUgMSIKLSAK LS1taV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsKLS0gICAgeyB7Y29udGFpbmVy LlxbMFxdfSB7XFswXF19IDAgaW50IH0KLS19ICJ2YXJvYmogdXBkYXRlIDEiCi0rbWlfdmFyb2Jq X3VwZGF0ZV9keW5hbWljIGNvbnRhaW5lciAidmFyb2JqIHVwZGF0ZSAxIiB7Ci0rICAgIHR5cGVf Y2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDEgZHluYW1pYyAxIGhhc19tb3JlIDAKLSt9 IHsKLSt9IHsKLSsgICAgeyBuYW1lIHtjb250YWluZXIuXFswXF19IGV4cCB7XFswXF19IG51bWNo aWxkIDAgdHlwZSBpbnQgdGhyZWFkLWlkIDEgfQotK30KLSAKLSBtaV9uZXh0ICJuZXh0IG92ZXIg dXBkYXRlIDIiCi0gCi0tbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5lciB7Ci0tICAg IHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGludCB9Ci0tICAgIHsge2NvbnRhaW5lci5c WzFcXX0ge1xbMVxdfSAwIGludCB9Ci0tfSAidmFyb2JqIHVwZGF0ZSAyIgotK21pX3Zhcm9ial91 cGRhdGVfZHluYW1pYyBjb250YWluZXIgInZhcm9iaiB1cGRhdGUgMiIgewotKyAgICB0eXBlX2No YW5nZWQgZmFsc2UgbmV3X251bV9jaGlsZHJlbiAyIGR5bmFtaWMgMSBoYXNfbW9yZSAwCi0rfSB7 Ci0rfSB7Ci0rICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMVxdfSBleHAge1xbMVxdfSBudW1jaGls ZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0KLSt9Ci0gCi0gbWlfZ2RiX3Rlc3QgIi12YXItc2V0 LXZpc3VhbGl6ZXIgY29udGFpbmVyIE5vbmUiIFwKLSAgICJcXF5kb25lIiBcCi1AQCAtNzgsMTkg KzEwOCwxMTEgQEAgbWlfZ2RiX3Rlc3QgIi12YXItc2V0LXZpc3VhbGl6ZXIgY29udGFpbmVyIGdk Yi5kZWZhdWx0X3Zpc3VhbGl6ZXIiIFwKLSAgICJcXF5kb25lIiBcCi0gICAiY2hvb3NlIGRlZmF1 bHQgdmlzdWFsaXplciIKLSAKLS1taV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIHsK LS0gICAgeyB7Y29udGFpbmVyLlxbMFxdfSB7XFswXF19IDAgaW50IH0KLS0gICAgeyB7Y29udGFp bmVyLlxbMVxdfSB7XFsxXF19IDAgaW50IH0KLS19ICJ2YXJvYmogdXBkYXRlIGFmdGVyIGNob29z aW5nIGRlZmF1bHQiCi0rbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5lciAidmFyb2Jq IHVwZGF0ZSBhZnRlciBjaG9vc2luZyBkZWZhdWx0IiB7Ci0rICAgIHR5cGVfY2hhbmdlZCBmYWxz ZSBuZXdfbnVtX2NoaWxkcmVuIDIgZHluYW1pYyAxIGhhc19tb3JlIDAKLSt9IHsKLSt9IHsKLSsg ICAgeyBuYW1lIHtjb250YWluZXIuXFswXF19IGV4cCB7XFswXF19IG51bWNoaWxkIDAgdHlwZSBp bnQgdGhyZWFkLWlkIDEgfQotKyAgICB7IG5hbWUge2NvbnRhaW5lci5cWzFcXX0gZXhwIHtcWzFc XX0gbnVtY2hpbGQgMCB0eXBlIGludCB0aHJlYWQtaWQgMSB9Ci0rfQotIAotIG1pX2dkYl90ZXN0 ICItdmFyLXNldC12aXN1YWxpemVyIGNvbnRhaW5lciBDb250YWluZXJQcmludGVyIiBcCi0gICAi XFxeZG9uZSIgXAotICAgImNob29zZSB2aXN1YWxpemVyIHVzaW5nIGV4cHJlc3Npb24iCi0gCi0t bWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5lciB7Ci0rbWlfdmFyb2JqX3VwZGF0ZV9k eW5hbWljIGNvbnRhaW5lciBcCi0rICAidmFyb2JqIHVwZGF0ZSBhZnRlciBjaG9vc2luZyB2aWEg ZXhwcmVzc2lvbiIgewotKyAgICAgIHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVu IDIgZHluYW1pYyAxIGhhc19tb3JlIDAKLSsgIH0gewotKyAgfSB7Ci0rICAgICAgeyBuYW1lIHtj b250YWluZXIuXFswXF19IGV4cCB7XFswXF19IG51bWNoaWxkIDAgdHlwZSBpbnQgdGhyZWFkLWlk IDEgfQotKyAgICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMVxdfSBleHAge1xbMVxdfSBudW1jaGls ZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0KLSsgIH0KLSsKLSttaV9saXN0X3Zhcm9ial9jaGls ZHJlbl9yYW5nZSBjb250YWluZXIgMSAyIDIgewotKyAgICB7IHtjb250YWluZXIuXFsxXF19IHtc WzFcXX0gMCBpbnQgfQotK30gImxpc3QgdmFyb2JqIGNoaWxkcmVuIGFmdGVyIHNlbGVjdGluZyBj aGlsZCByYW5nZSIKLSsKLSttaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9yYW5nZSBjb250YWluZXIg LTEgLTEgMiB7Ci0rICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGludCB9Ci0rICAg IHsge2NvbnRhaW5lci5cWzFcXX0ge1xbMVxdfSAwIGludCB9Ci0rfSAibGlzdCB2YXJvYmogY2hp bGRyZW4gYWZ0ZXIgcmVzZXR0aW5nIGNoaWxkIHJhbmdlIgotKwotK21pX25leHQgIm5leHQgb3Zl ciB1cGRhdGUgMyIKLSsKLSttaV9nZGJfdGVzdCAiLXZhci1zZXQtdXBkYXRlLXJhbmdlIGNvbnRh aW5lciAwIDEiIFwKLSsgICJcXF5kb25lIiBcCi0rICAic2V0IHVwZGF0ZSByYW5nZSIKLSsKLSsj IFRoaXMgc2hvdWxkIHRydW5jYXRlIHRoZSBsaXN0LgotK21pX2xpc3RfdmFyb2JqX2NoaWxkcmVu IGNvbnRhaW5lciB7Ci0gICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGludCB9Ci0r fSAibGlzdCBjaGlsZHJlbiBhZnRlciBzZXR0aW5nIHVwZGF0ZSByYW5nZSIKLSsKLSsjIFRoaXMg c2hvdWxkIHJldHVybiBqdXN0IHRoZSBpdGVtcyBpbiBbMSwyKS4KLSttaV9saXN0X3Zhcm9ial9j aGlsZHJlbl9yYW5nZSBjb250YWluZXIgMSAyIDIgewotICAgICB7IHtjb250YWluZXIuXFsxXF19 IHtcWzFcXX0gMCBpbnQgfQotLX0gInZhcm9iaiB1cGRhdGUgYWZ0ZXIgY2hvb3NpbmcgdmlhIGV4 cHJlc3Npb24iCi0rfSAibGlzdCBzZWxlY3RlZCBjaGlsZHJlbiBhZnRlciBzZXR0aW5nIHJhbmdl IgotKwotKyMgVGhpcyBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IHRoZSBwcmV2aW91cyBsaXN0 LWNoaWxkcmVuIHJlcXVlc3QuCi0rbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4gY29udGFpbmVyIHsK LSsgICAgeyB7Y29udGFpbmVyLlxbMFxdfSB7XFswXF19IDAgaW50IH0KLSt9ICJsaXN0IGNoaWxk cmVuIGFmdGVyIGxpc3Rpbmcgc2VsZWN0ZWQgcmFuZ2UiCi0rCi0rbWlfbmV4dCAibmV4dCBvdmVy IHVwZGF0ZSA0IgotKwotKwotKyMgUmVncmVzc2lvbiB0ZXN0OiBleGFtaW5lIGFuIG9iamVjdCB0 aGF0IGhhcyBubyBjaGlsZHJlbiwgdGhlbiB1cGRhdGUKLSsjIGl0IHRvIGVuc3VyZSB0aGF0IHdl IGRvbid0IHByaW50IHRoZSBjaGlsZHJlbi4KLSttaV9jcmVhdGVfZHluYW1pY192YXJvYmogY29u dGFpbmVyMiBjMiBcCi0rICAiY3JlYXRlIHNlY29uZCBjb250YWluZXIgdmFyb2JqIgotKwotK21p X2dkYl90ZXN0ICItdmFyLXVwZGF0ZSBjb250YWluZXIyIiBcCi0rICAiXFxeZG9uZSxjaGFuZ2Vs aXN0PS4uIiBcCi0rICAidXBkYXRlIHZhcm9iaiwgbm8gY2hpbGRyZW4gcmVxdWVzdGVkIgotKwot K21pX25leHQgIm5leHQgb3ZlciB1cGRhdGUgNSIKLSsKLSsjIE5vdyBjb250YWluZXIyIGhhcyBh biBlbGVtZW50IC0tIGFuZCBhbiB1cGRhdGUgc2hvdWxkIG1lbnRpb24gdGhhdAotKyMgaXQgaGFz X21vcmUuICBCdXQsIGJlY2F1c2Ugd2UgZGlkIG5vdCByZXF1ZXN0IGNoaWxkcmVuLCB3ZSBzdGls bAotKyMgc2hvdWxkIG5vdCBhY3R1YWxseSBzZWUgdGhlbS4KLSttaV92YXJvYmpfdXBkYXRlX2R5 bmFtaWMgY29udGFpbmVyMiBcCi0rICAgICJ1cGRhdGUgdmFyb2JqIDIsIG5vIGNoaWxkcmVuIHJl cXVlc3RlZCIgewotKwl0eXBlX2NoYW5nZWQgZmFsc2UgZHluYW1pYyAxIGhhc19tb3JlIDEKLSsg ICAgfSB7fSB7fQotKwotKyMgVGhpcyBzaG91bGQgb25seSBzaG93IHRoZSBmaXJzdCBjaGlsZCwg YmVjYXVzZSB0aGUgdXBkYXRlIHJhbmdlIGhhcwotKyMgYmVlbiBzZXQuCi0rbWlfdmFyb2JqX3Vw ZGF0ZV9keW5hbWljIGNvbnRhaW5lciBcCi0rICAidXBkYXRlIGFmdGVyIG5leHQgd2l0aCByZXN0 cmljdGVkIHJhbmdlIiB7Ci0rICAgICAgdHlwZV9jaGFuZ2VkIGZhbHNlIG5ld19udW1fY2hpbGRy ZW4gMSBkeW5hbWljIDEgaGFzX21vcmUgMQotKyAgfSB7Ci0rICAgICAgeyBuYW1lIHtjb250YWlu ZXIuXFswXF19IGluX3Njb3BlIHRydWUgdHlwZV9jaGFuZ2VkIGZhbHNlIGR5bmFtaWMgMSBoYXNf bW9yZSAwIH0KLSsgIH0gewotKyAgfQotKwotK21pX2NvbnRpbnVlX3RvX2xpbmUgXAotKyAgICBb Z2RiX2dldF9saW5lX251bWJlciB7TUkgb3V0ZXIgYnJlYWtwb2ludCBoZXJlfSAke3Rlc3RmaWxl fS5jXSBcCi0rICAgICJzdGVwIHRvIG91dGVyIGJyZWFrcG9pbnQiCi0rCi0rbWlfY3JlYXRlX2R5 bmFtaWNfdmFyb2JqIG91dGVyIG91dGVyIFwKLSsgICJjcmVhdGUgb3V0ZXIgdmFyb2JqIgotKwot K21pX2xpc3RfdmFyb2JqX2NoaWxkcmVuIG91dGVyIHsKLSsgIHsgb3V0ZXIucyBzIDIgInN0cnVj dCBzdWJzdHJ1Y3QiIH0KLSsgIHsgb3V0ZXIueCB4IDAgImludCIgfQotK30gImxpc3QgY2hpbGRy ZW4gb2Ygb3V0ZXIiCi0rCi0rbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4gb3V0ZXIucyB7Ci0rICB7 IG91dGVyLnMuYSBhIDAgaW50IH0KLSsgIHsgb3V0ZXIucy5iIGIgMCBpbnQgfQotK30gImxpc3Qg Y2hpbGRyZW4gb2Ygb3V0ZXIucyIKLSsKLSttaV9uZXh0ICJuZXh0IG92ZXIgb3V0ZXIgdXBkYXRl IgotKwotK21pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSBvdXRlciIgXAotKyAgIi5kb25lLGNoYW5n ZWxpc3Q9LntuYW1lPVwib3V0ZXIucy5hXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2Vk PVwiZmFsc2VcIixkeW5hbWljPVwiMVwiLGhhc19tb3JlPVwiMFwifS4iIFwKLSsgICJ1cGRhdGUg YWZ0ZXIgdXBkYXRpbmcgZWxlbWVudCBvZiBvdXRlciIKLSAKLSBtaV9jb250aW51ZV90b19saW5l IFwKLSAgICAgW2dkYl9nZXRfbGluZV9udW1iZXIge0Fub3RoZXIgTUkgYnJlYWtwb2ludH0gJHt0 ZXN0ZmlsZX0uY10gXAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1w cmV0dHlwcmludC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmMK LWluZGV4IDNjYWZjNDguLmJmNDFlYmMgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktcHJldHR5cHJpbnQuYwotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LXByZXR0eXByaW50LmMKLUBAIC0xNSw2ICsxNSw4IEBACi0gICAgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCi0gCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwotIHN0cnVjdCBzCi0gewot ICAgaW50IGE7Ci1AQCAtODAsNiArODIsMjkgQEAgY2xhc3MgRGVyaXZlZCA6IHB1YmxpYyBWYmFz ZTEsIHB1YmxpYyBWYmFzZTIsIHB1YmxpYyBWYmFzZTMKLSAKLSAjZW5kaWYKLSAKLStzdHJ1Y3Qg c3Vic3RydWN0IHsKLSsgIGludCBhOwotKyAgaW50IGI7Ci0rfTsKLSsKLStzdHJ1Y3Qgb3V0ZXJz dHJ1Y3QgewotKyAgc3RydWN0IHN1YnN0cnVjdCBzOwotKyAgaW50IHg7Ci0rfTsKLSsKLStzdHJ1 Y3Qgb3V0ZXJzdHJ1Y3QKLStzdWJzdHJ1Y3RfdGVzdCAodm9pZCkKLSt7Ci0rICBzdHJ1Y3Qgb3V0 ZXJzdHJ1Y3Qgb3V0ZXI7Ci0rICBvdXRlci5zLmEgPSAwOwotKyAgb3V0ZXIucy5iID0gMDsKLSsg IG91dGVyLnggPSAwOwotKwotKyAgb3V0ZXIucy5hID0gMzsJCS8qIE1JIG91dGVyIGJyZWFrcG9p bnQgaGVyZSAqLwotKwotKyAgcmV0dXJuIG91dGVyOyAgCi0rfQotKwotIHR5cGVkZWYgc3RydWN0 IHN0cmluZ19yZXByCi0gewotICAgc3RydWN0IHdoeWJvdGhlcgotQEAgLTE0OCw2ICsxNzMsMTQg QEAgdm9pZCBkb19ub3RoaW5nKHZvaWQpCi0gICBjID0gMjM7CQkJLyogQW5vdGhlciBNSSBicmVh a3BvaW50ICovCi0gfQotIAotK3N0cnVjdCBudWxsc3RyCi0rewotKyAgY2hhciAqczsKLSt9Owot KwotK3N0cnVjdCBzdHJpbmdfcmVwciBzdHJpbmdfMSA9IHsgeyAib25lIiB9IH07Ci0rc3RydWN0 IHN0cmluZ19yZXByIHN0cmluZ18yID0geyB7ICJ0d28iIH0gfTsKLSsKLSBpbnQKLSBtYWluICgp Ci0gewotQEAgLTE1NSwxMSArMTg4LDE1IEBAIG1haW4gKCkKLSAgIHN0cnVjdCBzcyAgc3NhWzJd OwotICAgc3RyaW5nIHggPSBtYWtlX3N0cmluZyAoInRoaXMgaXMgeCIpOwotICAgenp6X3R5cGUg YyA9IG1ha2VfY29udGFpbmVyICgiY29udGFpbmVyIik7Ci0rICB6enpfdHlwZSBjMiA9IG1ha2Vf Y29udGFpbmVyICgiY29udGFpbmVyMiIpOwotICAgY29uc3Qgc3RydWN0IHN0cmluZ19yZXByIGNz dHJpbmcgPSB7IHsgImNvbnN0IHN0cmluZyIgfSB9OwotKyAgLyogQ2xlYXJpbmcgYnkgYmVpbmcg YHN0YXRpYycgY291bGQgaW52b2tlIGFuIG90aGVyIEdEQiBDKysgYnVnLiAgKi8KLSsgIHN0cnVj dCBudWxsc3RyIG51bGxzdHI7Ci0gCi0gICBpbml0X3NzKCZzcywgMSwgMik7Ci0gICBpbml0X3Nz KHNzYSswLCAzLCA0KTsKLSAgIGluaXRfc3Moc3NhKzEsIDUsIDYpOwotKyAgbWVtc2V0ICgmbnVs bHN0ciwgMCwgc2l6ZW9mIG51bGxzdHIpOwotIAotICAgc3RydWN0IG5zICBuczsKLSAgIG5zLm51 bGxfc3RyID0gImVtYmVkZGVkXDBudWxsXDBzdHJpbmciOwotQEAgLTE5Myw2ICsyMzAsMTMgQEAg bWFpbiAoKQotICAgYWRkX2l0ZW0gKCZjLCA3Mik7Ci0gCi0gI2lmZGVmIE1JCi0rICBhZGRfaXRl bSAoJmMsIDEwMTEpOwotKyAgYy5lbGVtZW50c1swXSA9IDEwMjM7Ci0rCi0rICBhZGRfaXRlbSAo JmMyLCAyMjIyKTsKLSsgIGFkZF9pdGVtICgmYzIsIDMzMzMpOwotKwotKyAgc3Vic3RydWN0X3Rl c3QgKCk7Ci0gICBkb19ub3RoaW5nICgpOwotICNlbmRpZgotIAogZGlmZiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCi1pbmRleCBkMmRiNWJjLi4yODdhNWQzIDEwMDY0 NAoraW5kZXggZDJkYjViYy4uNGRlMTYyMCAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1wcmV0dHlwcmludC5leHAKLUBAIC0yNywxMiArMjcsOSBAQCBzZXQgYmluZmlsZSAke29i amRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CitAQCAtMjcsMTIgKzI3LDIwIEBAIHNldCBiaW5m aWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KICAjIFN0YXJ0IHdpdGggYSBmcmVz aCBnZGIuCiAgZ2RiX2V4aXQKICBnZGJfc3RhcnQKQEAgLTI4MDQzLDEwICsyNjA0OSwzMyBAQCBp bmRleCBkMmRiNWJjLi4yODdhNWQzIDEwMDY0NAogK2lmICFbcHl0aG9uX3N1cHBvcnRlZF0gdGhl biB7CiArICB1bnN1cHBvcnRlZCAicHl0aG9uIHN1cHBvcnQgaXMgZGlzYWJsZWQiCiArICByZXR1 cm4gLTEKKyt9CisrCisrIyBSdW4gYSBjb21tYW5kIGluIEdEQiwgYW5kIHJlcG9ydCBhIGZhaWx1 cmUgaWYgYSBQeXRob24gZXhjZXB0aW9uIGlzIHRocm93bi4KKysjIElmIHJlcG9ydF9wYXNzIGlz IHRydWUsIHJlcG9ydCBhIHBhc3MgaWYgbm8gZXhjZXB0aW9uIGlzIHRocm93bi4KKytwcm9jIGdk Yl9weV90ZXN0X3NpbGVudF9jbWQge2NtZCBuYW1lIHJlcG9ydF9wYXNzfSB7CisrICBnbG9iYWwg Z2RiX3Byb21wdAorKworKyAgZ2RiX3Rlc3RfbXVsdGlwbGUgJGNtZCAkbmFtZSB7CisrICAgICAg LXJlICJUcmFjZWJhY2suKiRnZGJfcHJvbXB0ICQiICB7IGZhaWwgJG5hbWUgfQorKyAgICAgIC1y ZSAiJGdkYl9wcm9tcHQgJCIJICAgICAgeyBpZiAkcmVwb3J0X3Bhc3MgeyBwYXNzICRuYW1lIH0g fQorKyAgfQogIH0KICAKICBwcm9jIHJ1bl9sYW5nX3Rlc3RzIHtsYW5nfSB7Ci1AQCAtODYsNiAr ODMsOCBAQCBwcm9jIHJ1bl9sYW5nX3Rlc3RzIHtsYW5nfSB7CitAQCAtNzksNiArODcsMTEgQEAg cHJvYyBydW5fbGFuZ190ZXN0cyB7bGFuZ30geworIAlnZGJfdGVzdCAicHJpbnQgZGVyaXZlZCIg XAorIAkgICAgIiA9IFx7Lio8VmJhc2UxPiA9IHBwIGNsYXNzIG5hbWU6IFZiYXNlMS4qPFZiYXNl Mj4gPSBcey4qPFZpcnR1YWxUZXN0PiA9IHBwIHZhbHVlIHZhcmlhYmxlIGlzOiAxLC4qbWVtYmVy cyBvZiBWYmFzZTI6LipfdnB0ci5WYmFzZTIgPSAkaGV4Lio8VmJhc2UzPiA9IFx7LiptZW1iZXJz IG9mIFZiYXNlMy4qbWVtYmVycyBvZiBEZXJpdmVkOi4qdmFsdWUgPSAyLioiCisgCWdkYl90ZXN0 ICJwcmludCBucyAiICJcImVtYmVkZGVkXFxcXDAwMG51bGxcXFxcMDAwc3RyaW5nXCIiCisrCWdk Yl9weV90ZXN0X3NpbGVudF9jbWQgInNldCBwcmludCBlbGVtZW50cyAzIiAiIiAxCisrCWdkYl90 ZXN0ICJwcmludCBucyIgImVtYlwuXC5cLi4iCisrCWdkYl9weV90ZXN0X3NpbGVudF9jbWQgInNl dCBwcmludCBlbGVtZW50cyAxMCIgIiIgMQorKwlnZGJfdGVzdCAicHJpbnQgbnMiICJlbWJlZGRl ZFxcXFwwMDBuXC5cLlwuLiIKKysJZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAic2V0IHByaW50IGVs ZW1lbnRzIDIwMCIgIiIgMQorICAgICB9CisgCisgICAgIGdkYl90ZXN0ICJwcmludCB4IiAiID0g JGhleCBcInRoaXMgaXMgeFwiIgorQEAgLTg2LDYgKzk5LDggQEAgcHJvYyBydW5fbGFuZ190ZXN0 cyB7bGFuZ30gewogIAogICAgICBnZGJfdGVzdCAicHJpbnQgYyIgIiA9IGNvbnRhaW5lciAkaGV4 IFwiY29udGFpbmVyXCIgd2l0aCAyIGVsZW1lbnRzID0geyRubCAqLjAuID0gMjMsJG5sICouMS4g PSA3MiRubH0iCiAgCkBAIC0yODA1NSw3MSArMjYwODQsNiBAQCBpbmRleCBkMmRiNWJjLi4yODdh NWQzIDEwMDY0NAogICAgICBnZGJfdGVzdCAiY29udGludWUiICJQcm9ncmFtIGV4aXRlZCBub3Jt YWxseVwuIgogIH0KICAKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt cHJldHR5cHJpbnQucHkgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQu cHkKLWluZGV4IGJmMDA5YTEuLjJmMDcwZDggMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktcHJldHR5cHJpbnQucHkKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1wcmV0dHlwcmludC5weQotQEAgLTkyLDYgKzkyLDEzIEBAIGNsYXNzIHBwX3ZiYXNlMToK LSAgICAgZGVmIHRvX3N0cmluZyAoc2VsZik6Ci0gICAgICAgICByZXR1cm4gInBwIGNsYXNzIG5h bWU6ICIgKyBzZWxmLnZhbC50eXBlLnRhZwotIAotK2NsYXNzIHBwX251bGxzdHI6Ci0rICAgIGRl ZiBfX2luaXRfXyhzZWxmLCB2YWwpOgotKyAgICAgICAgc2VsZi52YWwgPSB2YWwKLSsKLSsgICAg ZGVmIHRvX3N0cmluZyhzZWxmKToKLSsgICAgICAgIHJldHVybiBzZWxmLnZhbFsncyddLnN0cmlu ZyhnZGIucGFyYW1ldGVyKCd0YXJnZXQtY2hhcnNldCcpKQotKwotIGNsYXNzIHBwX25zOgotICAg ICAiUHJpbnQgYSBzdGQ6OmJhc2ljX3N0cmluZyBvZiBzb21lIGtpbmQiCi0gCi1AQCAtMTA1LDEx ICsxMTIsMjQgQEAgY2xhc3MgcHBfbnM6Ci0gICAgIGRlZiBkaXNwbGF5X2hpbnQgKHNlbGYpOgot ICAgICAgICAgcmV0dXJuICdzdHJpbmcnCi0gCi0rY2xhc3MgcHBfb3V0ZXI6Ci0rICAgICJQcmlu dCBzdHJ1Y3Qgb3V0ZXIiCi0rCi0rICAgIGRlZiBfX2luaXRfXyAoc2VsZiwgdmFsKToKLSsgICAg ICAgIHNlbGYudmFsID0gdmFsCi0rCi0rICAgIGRlZiB0b19zdHJpbmcgKHNlbGYpOgotKyAgICAg ICAgcmV0dXJuICJ4ID0gJXMiICUgc2VsZi52YWxbJ3gnXQotKwotKyAgICBkZWYgY2hpbGRyZW4g KHNlbGYpOgotKyAgICAgICAgeWllbGQgJ3MnLCBzZWxmLnZhbFsncyddCi0rICAgICAgICB5aWVs ZCAneCcsIHNlbGYudmFsWyd4J10KLSsKLSBkZWYgbG9va3VwX2Z1bmN0aW9uICh2YWwpOgotICAg ICAiTG9vay11cCBhbmQgcmV0dXJuIGEgcHJldHR5LXByaW50ZXIgdGhhdCBjYW4gcHJpbnQgdmFs LiIKLSAKLSAgICAgIyBHZXQgdGhlIHR5cGUuCi0tICAgIHR5cGUgPSB2YWwudHlwZTsKLSsgICAg dHlwZSA9IHZhbC50eXBlCi0gCi0gICAgICMgSWYgaXQgcG9pbnRzIHRvIGEgcmVmZXJlbmNlLCBn ZXQgdGhlIHJlZmVyZW5jZS4KLSAgICAgaWYgdHlwZS5jb2RlID09IGdkYi5UWVBFX0NPREVfUkVG OgotQEAgLTE0OCw2ICsxNjgsOSBAQCBkZWYgcmVnaXN0ZXJfcHJldHR5X3ByaW50ZXJzICgpOgot ICAgICAKLSAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15WaXJ0dWFsVGVz dCQnKV0gPSAgcHBfbXVsdGlwbGVfdmlydHVhbAotICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFty ZS5jb21waWxlICgnXlZiYXNlMSQnKV0gPSAgcHBfdmJhc2UxCi0rCi0rICAgIHByZXR0eV9wcmlu dGVyc19kaWN0W3JlLmNvbXBpbGUgKCdec3RydWN0IG51bGxzdHIkJyldID0gcHBfbnVsbHN0cgot KyAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlICgnXm51bGxzdHIkJyldID0gcHBf bnVsbHN0cgotICAgICAKLSAgICAgIyBOb3RlIHRoYXQgd2UgcHVycG9zZWx5IG9taXQgdGhlIHR5 cGVkZWYgbmFtZXMgaGVyZS4KLSAgICAgIyBQcmludGVyIGxvb2t1cCBpcyBiYXNlZCBvbiBjYW5v bmljYWwgbmFtZS4KLUBAIC0xNjAsNiArMTgzLDEwIEBAIGRlZiByZWdpc3Rlcl9wcmV0dHlfcHJp bnRlcnMgKCk6Ci0gICAgIAotICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlICgn XnN0cnVjdCBucyQnKV0gID0gcHBfbnMKLSAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29t cGlsZSAoJ15ucyQnKV0gID0gcHBfbnMKLSsKLSsgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUu Y29tcGlsZSAoJ15zdHJ1Y3Qgb3V0ZXJzdHJ1Y3QkJyldICA9IHBwX291dGVyCi0rICAgIHByZXR0 eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUgKCdeb3V0ZXJzdHJ1Y3QkJyldICA9IHBwX291dGVy Ci0rCi0gcHJldHR5X3ByaW50ZXJzX2RpY3QgPSB7fQotIAotIHJlZ2lzdGVyX3ByZXR0eV9wcmlu dGVycyAoKQogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS10ZW1wbGF0 ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdGVtcGxhdGUuZXhwCiBpbmRleCBj ZWE2YWUwLi5jOWE2M2Q0IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LXRlbXBsYXRlLmV4cApAQCAtMjgxNjMsMTEgKzI2MTI3LDQ4IEBAIGluZGV4IGNlYTZhZTAuLmM5 YTYzZDQgMTAwNjQ0CiAgcHJvYyB0ZXN0X3RlbXBsYXRlX2FyZyB7dHlwZX0gewogICAgICBnbG9i YWwgdGVzdGZpbGUgc3JjZGlyIHN1YmRpciBzcmNmaWxlIGJpbmZpbGUKICAgICAgaWYgeyBbZ2Ri X2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIFwK K2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuYyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jCitpbmRleCBmM2Q2Mjg0Li4wMjNkODMwIDEw MDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmMKKysrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5jCitAQCAtMzcsNiArMzcsMTMgQEAgdHlw ZWRlZiBzdHJ1Y3QgcyAqUFRSOworIAorIGVudW0gZSBldmFsdWUgPSBUV087CisgCisrI2lmZGVm IF9fY3BsdXNwbHVzCisrdm9pZCBwdHJfcmVmKGludComIHJwdHJfaW50KQorK3sKKysgIHJldHVy bjsgLyogYnJlYWsgdG8gaW5zcGVjdCBwb2ludGVyIGJ5IHJlZmVyZW5jZS4gKi8KKyt9CisrI2Vu ZGlmCisrCisgaW50CisgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKKyB7CitAQCAtNDYs MTAgKzUzLDE4IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICBQVFIgeCA9ICZz OworICAgY2hhciBzdFsxN10gPSAiZGl2aWRlIGV0IGltcGVyYSI7CisgICBjaGFyIG51bGxzdFsx N10gPSAiZGl2aWRlXDBldFwwaW1wZXJhIjsKKysgIGludCBhWzNdID0gezEsMiwzfTsKKysgIGlu dCAqcCA9IGE7CisrICBpbnQgaSA9IDI7CisrICBpbnQgKnB0cl9pID0gJmk7CisgCisgICBzLmEg PSAzOworICAgcy5iID0gNTsKKyAgIHUuYSA9IDc7CisgCisrI2lmZGVmIF9fY3BsdXNwbHVzCisr ICBwdHJfcmVmKHB0cl9pKTsKKysjZW5kaWYKKysKKyAgIHJldHVybiAwOyAgICAgIC8qIGJyZWFr IHRvIGluc3BlY3Qgc3RydWN0IGFuZCB1bmlvbiAqLworIH0KIGRpZmYgLS1naXQgYS9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXZhbHVlLmV4cAotaW5kZXggOWI0MTkwZC4uOTNjZGRjNyAxMDA2NDQKK2luZGV4IDliNDE5 MGQuLmI5ZjJjM2MgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFs dWUuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCi1AQCAt MjkyLDIxICsyOTIsMzcgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoIHt9IHsKK0BAIC0y OTIsMjEgKzI5MiwxMDYgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoIHt9IHsKICAgICAg InByaW50IHZhbHVlJ3MgdHlwZSIKICB9CiAgCkBAIC0yODE4MCw2ICsyNjE4MSw3NSBAQCBpbmRl eCA5YjQxOTBkLi45M2NkZGM3IDEwMDY0NAogKyAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCB2IiAi NSIgInByaW50IHZhbHVlIGZvciBjYXN0IHRlc3QiCiArfQogKworKyMgUmVncmVzc2lvbiB0ZXN0 IGZvciBpbnZhbGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAorKyMg dGhlIHR5cGUgb2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dp bmcgYQorKyMgc3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgorKworK3Byb2MgdGVzdF9z dWJzY3JpcHRfcmVncmVzc2lvbiB7bGFuZ30geworKworKyBnbG9iYWwgc3JjZGlyIHN1YmRpciBz cmNmaWxlIGJpbmZpbGUgdGVzdGZpbGUgaGV4CisrIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rp cn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlICJkZWJ1ZyAk bGFuZyJdICE9ICIiIH0geworKyAgICAgdW50ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUgJHtzcmNm aWxlfSBpbiAkbGFuZyBtb2RlIgorKyAgICAgcmV0dXJuIC0xCisrIH0KKysKKysgIyBTdGFydCB3 aXRoIGEgZnJlc2ggZ2RiLgorKyBnZGJfZXhpdAorKyBnZGJfc3RhcnQKKysgZ2RiX3JlaW5pdGlh bGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisrIGdkYl9sb2FkICR7YmluZmlsZX0KKysKKysgaWYg IVtydW50b19tYWluIF0gdGhlbiB7CisrICAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVh a3BvaW50IgorKyAgICAgcmV0dXJuCisrIH0KKysKKysgaWYgeyRsYW5nID09ICJjKysifSB7Cisr ICAgICBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiYnJlYWsgdG8gaW5zcGVj dCBwb2ludGVyIGJ5IHJlZmVyZW5jZSJdCisrICAgICBnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAiYnJlYWsgdG8gaW5zcGVjdCBwb2ludGVyIGJ5IHJlZmVyZW5jZSIKKysKKysgICAgIGdkYl9w eV90ZXN0X3NpbGVudF9jbWQgInByaW50IHJwdHJfaW50IiBcCisrCSAiT2J0YWluIGFkZHJlc3Mi IDEKKysgICAgIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBycHRyID0gZ2RiLmhpc3Rv cnkoMCkiIFwKKysJICJPYnRhaW5zIHZhbHVlIGZyb20gR0RCIiAxCisrICAgICBnZGJfdGVzdCAi cHl0aG9uIHByaW50IHJwdHJcWzBcXSIgIjIiICJDaGVjayBwb2ludGVyIHBhc3NlZCBhcyByZWZl cmVuY2UiCisrIH0KKysKKysgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImJy ZWFrIHRvIGluc3BlY3Qgc3RydWN0IGFuZCB1bmlvbiJdCisrIGdkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJicmVhayB0byBpbnNwZWN0IHN0cnVjdCBhbmQgdW5pb24iCisrCisrIGdkYl9weV90 ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBpbnR2ID0gZ2RiLlZhbHVlKDEpIiBcCisrICAgICAiQ3Jl YXRlIGEgdmFsdWUgZm9yIHN1YnNjcmlwdCB0ZXN0IiAxCisrIGdkYl9weV90ZXN0X3NpbGVudF9j bWQgInB5dGhvbiBzdHJpbmd2ID0gZ2RiLlZhbHVlKFwiZm9vXCIpIiBcCisrICAgICAiQ3JlYXRl IGEgdmFsdWUgZm9yIHN1YnNjcmlwdCB0ZXN0IiAxCisrCisrICMgVHJ5IHRvIGFjY2VzcyBhbiBp bnQgd2l0aCBhIHN1YnNjcmlwdC4gIFRoaXMgc2hvdWxkIGZhaWwuCisrIGdkYl90ZXN0ICJweXRo b24gcHJpbnQgaW50diIgIjEiICJCYXNlbGluZSBwcmludCBvZiBhIFB5dGhvbiB2YWx1ZSIKKysg Z2RiX3Rlc3QgInB5dGhvbiBwcmludCBpbnR2XFswXF0iICJSdW50aW1lRXJyb3I6IENhbm5vdCBz dWJzY3JpcHQgcmVxdWVzdGVkIHR5cGUuKiIgXAorKyAgICAgIkF0dGVtcHQgdG8gYWNjZXNzIGFu IGludGVnZXIgd2l0aCBhIHN1YnNjcmlwdCIKKysKKysgIyBUcnkgdG8gYWNjZXNzIGEgc3RyaW5n IHdpdGggYSBzdWJzY3JpcHQuICBUaGlzIHNob3VsZCBwYXNzLgorKyBnZGJfdGVzdCAicHl0aG9u IHByaW50IHN0cmluZ3YiICJmb28uIiAiQmFzZWxpbmUgcHJpbnQgb2YgYSBQeXRob24gdmFsdWUi CisrIGdkYl90ZXN0ICJweXRob24gcHJpbnQgc3RyaW5ndlxbMFxdIiAiZi4iICJBdHRlbXB0IHRv IGFjY2VzcyBhIHN0cmluZyB3aXRoIGEgc3Vic2NyaXB0IgorKworKyAjIFRyeSB0byBhY2Nlc3Mg YW4gaW50IGFycmF5IHZpYSBhIHBvaW50ZXIgd2l0aCBhIHN1YnNjcmlwdC4gIFRoaXMgc2hvdWxk IHBhc3MuCisrIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInByaW50IHAiICJCdWlsZCBwb2ludGVy IHRvIGFycmF5IiAxCisrIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBwb2ludGVyID0g Z2RiLmhpc3RvcnkoMCkiICIiIDEKKysgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2ludGVyXFsw XF0iICIxIiAiQWNjZXNzIGFycmF5IHZpYSBwb2ludGVyIHdpdGggaW50IHN1YnNjcmlwdCIKKysg Z2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2ludGVyXFtpbnR2XF0iICIyIiAiQWNjZXNzIGFycmF5 IHZpYSBwb2ludGVyIHdpdGggdmFsdWUgc3Vic2NyaXB0IgorKworKyAjIFRyeSB0byBhY2Nlc3Mg YSBzaW5nbGUgZGltZW5zaW9uIGFycmF5IHdpdGggYSBzdWJzY3JpcHQgdG8gdGhlCisrICMgcmVz dWx0LiAgVGhpcyBzaG91bGQgZmFpbC4KKysgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBwb2ludGVy XFtpbnR2XF1cWzBcXSIgIlJ1bnRpbWVFcnJvcjogQ2Fubm90IHN1YnNjcmlwdCByZXF1ZXN0ZWQg dHlwZS4qIiBcCisrICAgICAiQXR0ZW1wdCB0byBhY2Nlc3MgYW4gaW50ZWdlciB3aXRoIGEgc3Vi c2NyaXB0IiAgIAorKworKyAjIExhc3RseSwgdGVzdCBzdWJzY3JpcHQgYWNjZXNzIHRvIGFuIGFy cmF5IHdpdGggbXVsdGlwbGUKKysgIyBkaW1lbnNpb25zLiAgVGhpcyBzaG91bGQgcGFzcy4KKysg Z2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAicHJpbnQge1wiZnUgXCIsXCJmb29cIixcImJhclwifSIg IkJ1aWxkIGFycmF5IiAxCisrIGdkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhvbiBtYXJyYXkg PSBnZGIuaGlzdG9yeSgwKSIgIiIgMQorKyBnZGJfdGVzdCAicHl0aG9uIHByaW50IG1hcnJheVxb MVxdXFsyXF0iICJvLiIgIlRlc3QgbXVsdGlwbGUgc3Vic2NyaXB0IgorK30gICAKKysKICAjIFN0 YXJ0IHdpdGggYSBmcmVzaCBnZGIuCiAgCiAgZ2RiX2V4aXQKQEAgLTI4MTk2LDggKzI2MjY2LDgg QEAgaW5kZXggOWI0MTkwZC4uOTNjZGRjNyAxMDA2NDQKICtpZiAhW3B5dGhvbl9zdXBwb3J0ZWRd IHRoZW4gewogKyAgdW5zdXBwb3J0ZWQgInB5dGhvbiBzdXBwb3J0IGlzIGRpc2FibGVkIgogKyAg cmV0dXJuIC0xCi0gfQotIAorK30KKysKICtzZXQgdGVzdGZpbGUgInB5LXZhbHVlIgogK3NldCBz cmNmaWxlICR7dGVzdGZpbGV9LmMKICtzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7 dGVzdGZpbGV9CkBAIC0yODIwNSwxOCArMjYyNzUsMjQgQEAgaW5kZXggOWI0MTkwZC4uOTNjZGRj NyAxMDA2NDQKICtpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2Zp bGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsKICsgICAgdW50 ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUgJHtzcmNmaWxlfSIKICsgICAgcmV0dXJuIC0xCi0rfQot KworIH0KKyAKICtnZGJfbG9hZCAke2JpbmZpbGV9CiArCiAgdGVzdF92YWx1ZV9jcmVhdGlvbgog IHRlc3RfdmFsdWVfbnVtZXJpY19vcHMKICB0ZXN0X3ZhbHVlX2Jvb2xlYW4KLUBAIC0zMjIsMyAr MzM4LDQgQEAgaWYgIVtydW50b19tYWluXSB0aGVuIHsKK0BAIC0zMjIsMyArNDA3LDEwIEBAIGlm ICFbcnVudG9fbWFpbl0gdGhlbiB7CiAgCiAgdGVzdF92YWx1ZV9pbl9pbmZlcmlvcgogIHRlc3Rf dmFsdWVfYWZ0ZXJfZGVhdGgKICt0ZXN0X2Nhc3RfcmVncmVzc2lvbgorKworKyMgVGhlIGZvbGxv d2luZyB0ZXN0IHJlY29tcGlsZXMgdGhlIGJpbmFyeSB0byB0ZXN0IGVpdGhlciBDIG9yIEMrKwor KyMgdmFsdWVzLgorKworK3Rlc3Rfc3Vic2NyaXB0X3JlZ3Jlc3Npb24gImMrKyIKKyt0ZXN0X3N1 YnNjcmlwdF9yZWdyZXNzaW9uICJjIgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weXRob24uZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi5leHAKIGlu ZGV4IDUyMjNmYzguLjAzZTFlYWIgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHl0aG9uLmV4cApAQCAtMjkzMTAsMTY5ICsyNzM4Niw2IEBAIGluZGV4IDBjOTNhNzMuLmQw YzM0OTMgMTAwNjQ0CiAgCiAgZ2xvYmFsIEdEQgogIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvbGliL21pLXN1cHBvcnQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAK LWluZGV4IGU2OTEyMzIuLjE2N2EwMmMgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2xpYi9t aS1zdXBwb3J0LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKLUBA IC0xMTk1LDEzICsxMTk1LDEzIEBAIHByb2MgbWlfbGlzdF9icmVha3BvaW50cyB7IGV4cGVjdGVk IHRlc3QgfSB7Ci0gIyBOYW1lIGNhbm5vdCBiZSAiLSIuCi0gcHJvYyBtaV9jcmVhdGVfdmFyb2Jq IHsgbmFtZSBleHByZXNzaW9uIHRlc3RuYW1lIH0gewotICAgICBtaV9nZGJfdGVzdCAiLXZhci1j cmVhdGUgJG5hbWUgKiAkZXhwcmVzc2lvbiIgXAotLSAgICAgICAgIlxcXmRvbmUsbmFtZT1cIiRu YW1lXCIsbnVtY2hpbGQ9XCJcWzAtOVxdK1wiLHZhbHVlPVwiLipcIix0eXBlPS4qIiBcCi0rICAg ICAgICAiXFxeZG9uZSxuYW1lPVwiJG5hbWVcIixudW1jaGlsZD1cIlxbMC05XF0rXCIsdmFsdWU9 XCIuKlwiLHR5cGU9LiosaGFzX21vcmU9XCIwXCIiIFwKLSAgICAgICAgICR0ZXN0bmFtZQotIH0K LSAKLSBwcm9jIG1pX2NyZWF0ZV9mbG9hdGluZ192YXJvYmogeyBuYW1lIGV4cHJlc3Npb24gdGVz dG5hbWUgfSB7Ci0gICAgIG1pX2dkYl90ZXN0ICItdmFyLWNyZWF0ZSAkbmFtZSBAICRleHByZXNz aW9uIiBcCi0tICAgICAgICAiXFxeZG9uZSxuYW1lPVwiJG5hbWVcIixudW1jaGlsZD1cIlxbMC05 XF0rXCIsdmFsdWU9XCIuKlwiLHR5cGU9LioiIFwKLSsgICAgICAgICJcXF5kb25lLG5hbWU9XCIk bmFtZVwiLG51bWNoaWxkPVwiXCgtMVx8XFswLTlcXStcKVwiLHZhbHVlPVwiLipcIix0eXBlPS4q IiBcCi0gICAgICAgICAkdGVzdG5hbWUKLSB9Ci0gCi1AQCAtMTIxNCw2ICsxMjE0LDE0IEBAIHBy b2MgbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHsgbmFtZSBleHByZXNzaW9uIHR5cGUgdGVzdG5h bWUgfSB7Ci0gICAgICAgICAkdGVzdG5hbWUKLSB9Ci0gCi0rIyBTYW1lIGFzIG1pX2NyZWF0ZV9m bG9hdGluZ192YXJvYmosIGJ1dCBhc3N1bWVzIHRoZSB0ZXN0IGlzIGNyZWF0aW5nCi0rIyBhIGR5 bmFtaWMgdmFyb2JqIHRoYXQgaGFzIGNoaWxkcmVuLCBzbyB0aGUgdmFsdWUgbXVzdCBiZSAiey4u Ln0iLgotK3Byb2MgbWlfY3JlYXRlX2R5bmFtaWNfdmFyb2JqIHtuYW1lIGV4cHJlc3Npb24gdGVz dG5hbWV9IHsKLSsgICAgbWlfZ2RiX3Rlc3QgIi12YXItY3JlYXRlICRuYW1lIEAgJGV4cHJlc3Np b24iIFwKLSsgICAgICAgICJcXF5kb25lLG5hbWU9XCIkbmFtZVwiLG51bWNoaWxkPVwiXCgtMVx8 XFswLTlcXStcKVwiLHZhbHVlPVwie1xcLlxcLlxcLn1cIix0eXBlPS4qIiBcCi0rICAgICAgICAk dGVzdG5hbWUKLSt9Ci0rCi0gIyBEZWxldGVzIHRoZSBzcGVjaWZpZWQgTkFNRS4gCi0gcHJvYyBt aV9kZWxldGVfdmFyb2JqIHsgbmFtZSB0ZXN0bmFtZSB9IHsKLSAgICAgbWlfZ2RiX3Rlc3QgIi12 YXItZGVsZXRlICRuYW1lIiBcCi1AQCAtMTIyOSw3ICsxMjM3LDcgQEAgcHJvYyBtaV92YXJvYmpf dXBkYXRlIHsgbmFtZSBleHBlY3RlZCB0ZXN0bmFtZSB9IHsKLSAgICAgc2V0IGVyICJcXF5kb25l LGNoYW5nZWxpc3Q9XFxcWyIKLSAgICAgc2V0IGZpcnN0IDEKLSAgICAgZm9yZWFjaCBpdGVtICRl eHBlY3RlZCB7Ci0tICAgICAgICBzZXQgdiAie25hbWU9XCIkaXRlbVwiLGluX3Njb3BlPVwidHJ1 ZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJ9IgotKyAgICAgICAgc2V0IHYgIntuYW1lPVwiJGl0 ZW1cIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGhhc19tb3JlPVwi LlwifSIKLSAgICAgICAgIGlmIHskZmlyc3QgPT0gMX0gewotICAgICAgICAgICAgIHNldCBlciAi JGVyJHYiCi0gICAgICAgICAgICAgc2V0IGZpcnN0IDAKLUBAIC0xMjQ0LDIyICsxMjUyLDcwIEBA IHByb2MgbWlfdmFyb2JqX3VwZGF0ZSB7IG5hbWUgZXhwZWN0ZWQgdGVzdG5hbWUgfSB7Ci0gfQot IAotIHByb2MgbWlfdmFyb2JqX3VwZGF0ZV93aXRoX3R5cGVfY2hhbmdlIHsgbmFtZSBuZXdfdHlw ZSBuZXdfY2hpbGRyZW4gdGVzdG5hbWUgfSB7Ci0tICAgIHNldCB2ICJ7bmFtZT1cIiRuYW1lXCIs aW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwidHJ1ZVwiLG5ld190eXBlPVwiJG5ld190 eXBlXCIsbmV3X251bV9jaGlsZHJlbj1cIiRuZXdfY2hpbGRyZW5cIn0iCi0rICAgIHNldCB2ICJ7 bmFtZT1cIiRuYW1lXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwidHJ1ZVwiLG5l d190eXBlPVwiJG5ld190eXBlXCIsbmV3X251bV9jaGlsZHJlbj1cIiRuZXdfY2hpbGRyZW5cIixo YXNfbW9yZT1cIi5cIn0iCi0gICAgIHNldCBlciAiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFskdlxc XF0iCi0gICAgIHZlcmJvc2UgLWxvZyAiRXhwZWN0aW5nOiAkZXIiCi0gICAgIG1pX2dkYl90ZXN0 ICItdmFyLXVwZGF0ZSAkbmFtZSIgJGVyICR0ZXN0bmFtZQotIH0KLSAKLS0jIFVwZGF0ZSBhIGR5 bmFtaWMgdmFyb2JqIG5hbWVkIE5BTUUuICBDSElMRFJFTiBpcyBhIGxpc3Qgb2YgY2hpbGRyZW4s Ci0tIyBpbiB0aGUgc2FtZSBmb3JtIGFzIG1pX2xpc3RfdmFyb2JqX2NoaWxkcmVuLiAgVEVTVE5B TUUgaXMgdGhlIG5hbWUKLS0jIG9mIHRoZSB0ZXN0LgotLXByb2MgbWlfdmFyb2JqX3VwZGF0ZV9k eW5hbWljIHtuYW1lIGNoaWxkcmVuIHRlc3RuYW1lfSB7Ci0tICAgIHNldCBjaGlsZHJlbl9leHBf aiBbbWlfY2hpbGRfcmVnZXhwICRjaGlsZHJlbiAwXQotKyMgQSBoZWxwZXIgdGhhdCB0dXJucyBh IGtleS92YWx1ZSBsaXN0IGludG8gYSByZWd1bGFyIGV4cHJlc3Npb24KLSsjIG1hdGNoaW5nIHNv bWUgTUkgb3V0cHV0LgotK3Byb2MgbWlfdmFyb2JqX3VwZGF0ZV9rdl9oZWxwZXIge2xpc3R9IHsK LSsgICAgc2V0IGZpcnN0IDEKLSsgICAgc2V0IHJ4ICIiCi0rICAgIGZvcmVhY2gge2tleSB2YWx1 ZX0gJGxpc3QgewotKwlpZiB7ISRmaXJzdH0gewotKwkgICAgYXBwZW5kIHJ4ICwKLSsJfQotKwlz ZXQgZmlyc3QgMAotKwlpZiB7JGtleSA9PSAibmV3X2NoaWxkcmVuIn0gewotKwkgICAgYXBwZW5k IHJ4ICIka2V5PVxcXFskdmFsdWVcXFxdIgotKwl9IGVsc2UgewotKwkgICAgYXBwZW5kIHJ4ICIk a2V5PVwiJHZhbHVlXCIiCi0rCX0KLSsgICAgfQotKyAgICByZXR1cm4gJHJ4Ci0rfQotIAotLSAg ICBzZXQgZXIgIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxbIgotKyMgQSBoZWxwZXIgZm9yIG1pX3Zh cm9ial91cGRhdGVfZHluYW1pYyB0aGF0IGNvbXB1dGVzIGEgbWF0Y2gKLSsjIGV4cHJlc3Npb24g Z2l2ZW4gYSBjaGlsZCBsaXN0LgotK3Byb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljX2hlbHBl ciB7Y2hpbGRyZW59IHsKLSsgICAgc2V0IGNyeCAiIgotIAotLSAgICBhcHBlbmQgZXIgIntuYW1l PVwiJG5hbWVcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiIgotLSAg ICBhcHBlbmQgZXIgIixjaGlsZHJlbj1cXFxbJGNoaWxkcmVuX2V4cF9qLipcXFxdfVxcXF0iCi0r ICAgIHNldCBmaXJzdCAxCi0rICAgIGZvcmVhY2ggY2hpbGQgJGNoaWxkcmVuIHsKLSsJaWYgeyEk Zmlyc3R9IHsKLSsJICAgIGFwcGVuZCBjcnggLAotKwl9Ci0rCXNldCBmaXJzdCAwCi0rCWFwcGVu ZCBjcnggInsiCi0rCWFwcGVuZCBjcnggW21pX3Zhcm9ial91cGRhdGVfa3ZfaGVscGVyICRjaGls ZF0KLSsJYXBwZW5kIGNyeCAifSIKLSsgICAgfQotKwotKyAgICByZXR1cm4gJGNyeAotK30KLSsK LSsjIFVwZGF0ZSBhIGR5bmFtaWMgdmFyb2JqIG5hbWVkIE5BTUUuICBDSElMRFJFTiBpcyBhIGxp c3Qgb2YgY2hpbGRyZW4KLSsjIHRoYXQgaGF2ZSBiZWVuIHVwZGF0ZWQ7IE5FV19DSElMRFJFTiBp cyBhIGxpc3Qgb2YgY2hpbGRyZW4gdGhhdCB3ZXJlCi0rIyBhZGRlZCB0byB0aGUgcHJpbWFyeSB2 YXJvYmouICBFYWNoIGNoaWxkIGlzIGEgbGlzdCBvZiBrZXkvdmFsdWUKLSsjIHBhaXJzIHRoYXQg YXJlIGV4cGVjdGVkLiAgU0VMRiBpcyBhIGtleS92YWx1ZSBsaXN0IGhvbGRpbmcKLSsjIGluZm9y bWF0aW9uIGFib3V0IHRoZSB2YXJvYmogaXRzZWxmLiAgVEVTVE5BTUUgaXMgdGhlIG5hbWUgb2Yg dGhlCi0rIyB0ZXN0LgotK3Byb2MgbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIHtuYW1lIHRlc3Ru YW1lIHNlbGYgY2hpbGRyZW4gbmV3X2NoaWxkcmVufSB7Ci0rICAgIGlmIHtbbGxlbmd0aCAkbmV3 X2NoaWxkcmVuXX0gewotKwlzZXQgbmV3cnggW21pX3Zhcm9ial91cGRhdGVfZHluYW1pY19oZWxw ZXIgJG5ld19jaGlsZHJlbl0KLSsJbGFwcGVuZCBzZWxmIG5ld19jaGlsZHJlbiAkbmV3cngKLSsg ICAgfQotKyAgICBzZXQgc2VsZnJ4IFttaV92YXJvYmpfdXBkYXRlX2t2X2hlbHBlciAkc2VsZl0K LSsgICAgc2V0IGNyeCBbbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljX2hlbHBlciAkY2hpbGRyZW5d Ci0rCi0rICAgIHNldCBlciAiXFxeZG9uZSxjaGFuZ2VsaXN0PVxcXFtce25hbWU9XCIkbmFtZVwi LGluX3Njb3BlPVwidHJ1ZVwiIgotKyAgICBhcHBlbmQgZXIgIiwkc2VsZnJ4XH0iCi0rICAgIGlm IHsiJGNyeCIgIT0gIiJ9IHsKLSsJYXBwZW5kIGVyICIsJGNyeCIKLSsgICAgfQotKyAgICBhcHBl bmQgZXIgIlxcXF0iCi0gCi0gICAgIHZlcmJvc2UgLWxvZyAiRXhwZWN0aW5nOiAkZXIiCi0gICAg IG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAkbmFtZSIgJGVyICR0ZXN0bmFtZQotQEAgLTEzMjks MTQgKzEzODUsMTMgQEAgcHJvYyBtaV9jaGlsZF9yZWdleHAge2NoaWxkcmVuIGFkZF9jaGlsZH0g ewotICMgaGF2ZSBubyB2YWx1ZS4KLSAjCi0gcHJvYyBtaV9saXN0X3Zhcm9ial9jaGlsZHJlbiB7 IHZhcm5hbWUgY2hpbGRyZW4gdGVzdG5hbWUgfSB7Ci0tICAgIG1pX2xpc3RfdmFyb2JqX2NoaWxk cmVuX3JhbmdlICR2YXJuYW1lIFtsbGVuZ3RoICRjaGlsZHJlbl0gJGNoaWxkcmVuIFwKLSsgICAg bWlfbGlzdF92YXJvYmpfY2hpbGRyZW5fcmFuZ2UgJHZhcm5hbWUgIiIgIiIgW2xsZW5ndGggJGNo aWxkcmVuXSAkY2hpbGRyZW4gXAotICAgICAgICR0ZXN0bmFtZQotIH0KLSAKLS0jIExpa2UgbWlf bGlzdF92YXJvYmpfY2hpbGRyZW4sIGJ1dCBhc3N1bWVzIHRoYXQgYSBzdWJyYW5nZSBoYXMgYmVl bgotLSMgc2VsZWN0ZWQgd2l0aCAtdmFyLXNldC1jaGlsZC1yYW5nZS4gIE5VTUNISUxEUkVOIGlz IHRoZSB0b3RhbCBudW1iZXIKLS0jIG9mIGNoaWxkcmVuLgotLXByb2MgbWlfbGlzdF92YXJvYmpf Y2hpbGRyZW5fcmFuZ2Uge3Zhcm5hbWUgbnVtY2hpbGRyZW4gY2hpbGRyZW4gdGVzdG5hbWV9IHsK LSsjIExpa2UgbWlfbGlzdF92YXJvYmpfY2hpbGRyZW4sIGJ1dCBzZXRzIGEgc3VicmFuZ2UuICBO VU1DSElMRFJFTiBpcwotKyMgdGhlIHRvdGFsIG51bWJlciBvZiBjaGlsZHJlbi4KLStwcm9jIG1p X2xpc3RfdmFyb2JqX2NoaWxkcmVuX3JhbmdlIHt2YXJuYW1lIGZyb20gdG8gbnVtY2hpbGRyZW4g Y2hpbGRyZW4gdGVzdG5hbWV9IHsKLSAgICAgc2V0IG9wdGlvbnMgIiIKLSAgICAgaWYge1tsbGVu Z3RoICR2YXJuYW1lXSA9PSAyfSB7Ci0gICAgICAgICBzZXQgb3B0aW9ucyBbbGluZGV4ICR2YXJu YW1lIDFdCi1AQCAtMTM1Miw5ICsxNDA3LDE4IEBAIHByb2MgbWlfbGlzdF92YXJvYmpfY2hpbGRy ZW5fcmFuZ2Uge3Zhcm5hbWUgbnVtY2hpbGRyZW4gY2hpbGRyZW4gdGVzdG5hbWV9IHsKLSAgICAg ICAgIHNldCBleHBlY3RlZCAiXFxeZG9uZSxudW1jaGlsZD1cIjBcIiIKLSAgICAgfQotIAotKyAg ICBpZiB7IiR0byIgPT0gIiJ9IHsKLSsgICAgICAgIGFwcGVuZCBleHBlY3RlZCAiLGhhc19tb3Jl PVwiMFwiIgotKyAgICB9IGVsc2VpZiB7JHRvID49IDAgJiYgJG51bWNoaWxkcmVuID4gJHRvfSB7 Ci0rICAgICAgICBhcHBlbmQgZXhwZWN0ZWQgIixoYXNfbW9yZT1cIjFcIiIKLSsgICAgfSBlbHNl IHsKLSsgICAgICAgIGFwcGVuZCBleHBlY3RlZCAiLGhhc19tb3JlPVwiMFwiIgotKyAgICB9Ci0r Ci0gICAgIHZlcmJvc2UgLWxvZyAiRXhwZWN0aW5nOiAkZXhwZWN0ZWQiCi0gCi0tICAgIG1pX2dk Yl90ZXN0ICItdmFyLWxpc3QtY2hpbGRyZW4gJG9wdGlvbnMgJHZhcm5hbWUiICRleHBlY3RlZCAk dGVzdG5hbWUKLSsgICAgbWlfZ2RiX3Rlc3QgIi12YXItbGlzdC1jaGlsZHJlbiAkb3B0aW9ucyAk dmFybmFtZSAkZnJvbSAkdG8iIFwKLSsgICAgICAkZXhwZWN0ZWQgJHRlc3RuYW1lCi0gfQotIAot ICMgVmVyaWZpZXMgdGhhdCB2YXJpYWJsZSBvYmplY3QgVkFSTkFNRSBoYXMgTlVNQkVSIGNoaWxk cmVuLAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL3B5dGhvbi1zdXBwb3J0LmV4cCBi L2dkYi90ZXN0c3VpdGUvbGliL3B5dGhvbi1zdXBwb3J0LmV4cAogbmV3IGZpbGUgbW9kZSAxMDA2 NDQKIGluZGV4IDAwMDAwMDAuLmI4ZTk4MzYKQEAgLTI5NTMzLDcgKzI3NDQ2LDcgQEAgaW5kZXgg MDAwMDAwMC4uYjhlOTgzNgogKyAgICByZXR1cm4gMAogK30KIGRpZmYgLS1naXQgYS9nZGIvdGhy ZWFkLmMgYi9nZGIvdGhyZWFkLmMKLWluZGV4IGE3YWMzYzguLjgxNWM4MmQgMTAwNjQ0CitpbmRl eCA1NWI0Yjk2Li5lMGFkMmQzIDEwMDY0NAogLS0tIGEvZ2RiL3RocmVhZC5jCiArKysgYi9nZGIv dGhyZWFkLmMKIEBAIC02MSw3ICs2MSw2IEBAIHN0YXRpYyBpbnQgdGhyZWFkX2FsaXZlIChzdHJ1 Y3QgdGhyZWFkX2luZm8gKik7CkBAIC0zMDU4NywxMCArMjg1MDAsMTAgQEAgaW5kZXggNTFlNjk2 MC4uNDhiMzBlNCAxMDA2NDQKICAvKiBVc2VyIGZ1bmN0aW9uIGhhbmRsZXIuICAqLwogIAogZGlm ZiAtLWdpdCBhL2dkYi92YXJvYmouYyBiL2dkYi92YXJvYmouYwotaW5kZXggNjAzMDcxZi4uZjFj ZTg5ZiAxMDA2NDQKK2luZGV4IDcyMzU2MzUuLjk4NDhkZTAgMTAwNjQ0CiAtLS0gYS9nZGIvdmFy b2JqLmMKICsrKyBiL2dkYi92YXJvYmouYwotQEAgLTI2LDkgKzI2LDEyIEBACitAQCAtMjYsNiAr MjYsOCBAQAogICNpbmNsdWRlICJnZGJjbWQuaCIKICAjaW5jbHVkZSAiYmxvY2suaCIKICAjaW5j bHVkZSAidmFscHJpbnQuaCIKQEAgLTMwNTk5LDU5ICsyODUxMiw3IEBAIGluZGV4IDYwMzA3MWYu LmYxY2U4OWYgMTAwNjQ0CiAgCiAgI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKICAjaW5jbHVkZSAi Z2RiX3N0cmluZy5oIgotKyNpbmNsdWRlICJnZGJfcmVnZXguaCIKLSAKLSAjaW5jbHVkZSAidmFy b2JqLmgiCi0gI2luY2x1ZGUgInZlYy5oIgotQEAgLTU5LDYgKzYyLDE1IEBAIGNoYXIgKnZhcm9i al9mb3JtYXRfc3RyaW5nW10gPQotIC8qIFN0cmluZyByZXByZXNlbnRhdGlvbnMgb2YgZ2RiJ3Mg a25vd24gbGFuZ3VhZ2VzICovCi0gY2hhciAqdmFyb2JqX2xhbmd1YWdlX3N0cmluZ1tdID0geyAi dW5rbm93biIsICJDIiwgIkMrKyIsICJKYXZhIiB9OwotIAotKy8qIFRydWUgaWYgd2Ugd2FudCB0 byBhbGxvdyBQeXRob24tYmFzZWQgcHJldHR5LXByaW50aW5nLiAgKi8KLStzdGF0aWMgaW50IHBy ZXR0eV9wcmludGluZyA9IDA7Ci0rCi0rdm9pZAotK3Zhcm9ial9lbmFibGVfcHJldHR5X3ByaW50 aW5nICh2b2lkKQotK3sKLSsgIHByZXR0eV9wcmludGluZyA9IDE7Ci0rfQotKwotIC8qIERhdGEg c3RydWN0dXJlcyAqLwotIAotIC8qIEV2ZXJ5IHJvb3QgdmFyaWFibGUgaGFzIG9uZSBvZiB0aGVz ZSBzdHJ1Y3R1cmVzIHNhdmVkIGluIGl0cwotQEAgLTE3Myw5ICsxODUsMzEgQEAgc3RydWN0IHZh cm9iagotICAgICAgZnJvemVuLiAgKi8KLSAgIGludCBub3RfZmV0Y2hlZDsKLSAKLSsgIC8qIFN1 Yi1yYW5nZSBvZiBjaGlsZHJlbiB3aGljaCB0aGUgTUkgY29uc3VtZXIgaGFzIHJlcXVlc3RlZC4g IElmCi0rICAgICBGUk9NIDwgMCBvciBUTyA8IDAsIG1lYW5zIHRoYXQgYWxsIGNoaWxkcmVuIGhh dmUgYmVlbgotKyAgICAgcmVxdWVzdGVkLiAgKi8KLSsgIGludCBmcm9tOwotKyAgaW50IHRvOwot KwotKyAgLyogVGhlIHByZXR0eS1wcmludGVyIGNvbnN0cnVjdG9yLiAgSWYgTlVMTCwgdGhlbiB0 aGUgZGVmYXVsdAotKyAgICAgcHJldHR5LXByaW50ZXIgd2lsbCBiZSBsb29rZWQgdXAuICBJZiBO b25lLCB0aGVuIG5vCi0rICAgICBwcmV0dHktcHJpbnRlciB3aWxsIGJlIGluc3RhbGxlZC4gICov Ci0rICBQeU9iamVjdCAqY29uc3RydWN0b3I7Ci0rCi0gICAvKiBUaGUgcHJldHR5LXByaW50ZXIg dGhhdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZC4gIElmIE5VTEwsIHRoZW4gYQotICAgICAgbmV3IHBy aW50ZXIgb2JqZWN0IGlzIG5lZWRlZCwgYW5kIG9uZSB3aWxsIGJlIGNvbnN0cnVjdGVkLiAgKi8K LSAgIFB5T2JqZWN0ICpwcmV0dHlfcHJpbnRlcjsKLSsKLSsgIC8qIFRoZSBpdGVyYXRvciByZXR1 cm5lZCBieSB0aGUgcHJpbnRlcidzICdjaGlsZHJlbicgbWV0aG9kLCBvciBOVUxMCi0rICAgICBp ZiBub3QgYXZhaWxhYmxlLiAgKi8KLSsgIFB5T2JqZWN0ICpjaGlsZF9pdGVyOwotKwotKyAgLyog V2UgcmVxdWVzdCBvbmUgZXh0cmEgaXRlbSBmcm9tIHRoZSBpdGVyYXRvciwgc28gdGhhdCB3ZSBj YW4KLSsgICAgIHJlcG9ydCB0byB0aGUgY2FsbGVyIHdoZXRoZXIgdGhlcmUgYXJlIG1vcmUgaXRl bXMgdGhhbiB3ZSBoYXZlCi0rICAgICBhbHJlYWR5IHJlcG9ydGVkLiAgSG93ZXZlciwgd2UgZG9u J3Qgd2FudCB0byBpbnN0YWxsIHRoaXMgdmFsdWUKLSsgICAgIHdoZW4gd2UgcmVhZCBpdCwgYmVj YXVzZSB0aGF0IHdpbGwgbWVzcyB1cCBmdXR1cmUgdXBkYXRlcy4gIFNvLAotKyAgICAgd2Ugc3Rh c2ggaXQgaGVyZSBpbnN0ZWFkLiAgKi8KLSsgIFB5T2JqZWN0ICpzYXZlZF9pdGVtOwotIH07Ci0g Ci0gc3RydWN0IGNwc3RhY2sKLUBAIC0yMjEsNiArMjU1LDggQEAgc3RhdGljIHZvaWQgZnJlZV92 YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyKTsKK0BAIC0yNTMsNiArMjU1LDggQEAgc3RhdGlj IHZvaWQgZnJlZV92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyKTsKICAKICBzdGF0aWMgc3Ry dWN0IGNsZWFudXAgKm1ha2VfY2xlYW51cF9mcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2 YXIpOwogIApAQCAtMzA2NjAsMTYgKzI4NTIxLDcgQEAgaW5kZXggNjAzMDcxZi4uZjFjZTg5ZiAx MDA2NDQKICBzdGF0aWMgc3RydWN0IHR5cGUgKmdldF90eXBlIChzdHJ1Y3QgdmFyb2JqICp2YXIp OwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YXJvYmog KnZhcik7Ci1AQCAtMjM2LDggKzI3Miw2IEBAIHN0YXRpYyBjaGFyICpjcHBvcCAoc3RydWN0IGNw c3RhY2sgKipwc3RhY2spOwotIHN0YXRpYyBpbnQgaW5zdGFsbF9uZXdfdmFsdWUgKHN0cnVjdCB2 YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgCi0gCQkJICAgICAgaW50IGluaXRpYWwp OwotIAotLXN0YXRpYyB2b2lkIGluc3RhbGxfZGVmYXVsdF92aXN1YWxpemVyIChzdHJ1Y3QgdmFy b2JqICp2YXIpOwotLQotIC8qIExhbmd1YWdlLXNwZWNpZmljIHJvdXRpbmVzLiAqLwotIAotIHN0 YXRpYyBlbnVtIHZhcm9ial9sYW5ndWFnZXMgdmFyaWFibGVfbGFuZ3VhZ2UgKHN0cnVjdCB2YXJv YmogKnZhcik7Ci1AQCAtNDUwLDYgKzQ4NCw4IEBAIGlzX3Jvb3RfcCAoc3RydWN0IHZhcm9iaiAq dmFyKQorQEAgLTQ4MCw2ICs0ODQsOCBAQCBpc19yb290X3AgKHN0cnVjdCB2YXJvYmogKnZhcikK ICBzdHJ1Y3QgY2xlYW51cCAqCiAgdmFyb2JqX2Vuc3VyZV9weXRob25fZW52IChzdHJ1Y3QgdmFy b2JqICp2YXIpCiAgewpAQCAtMzA2NzgsMzQgKzI4NTMwLDE1IEBAIGluZGV4IDYwMzA3MWYuLmYx Y2U4OWYgMTAwNjQ0CiAgICByZXR1cm4gZW5zdXJlX3B5dGhvbl9lbnYgKHZhci0+cm9vdC0+ZXhw LT5nZGJhcmNoLAogIAkJCSAgICB2YXItPnJvb3QtPmV4cC0+bGFuZ3VhZ2VfZGVmbik7CiAgfQot QEAgLTYyMSw5ICs2NTcsOSBAQCB2YXJvYmpfY3JlYXRlIChjaGFyICpvYmpuYW1lLAorQEAgLTY1 MSw2ICs2NTcsNyBAQCB2YXJvYmpfY3JlYXRlIChjaGFyICpvYmpuYW1lLAogIAkgIGRvX2NsZWFu dXBzIChvbGRfY2hhaW4pOwogIAkgIHJldHVybiBOVUxMOwogIAl9CiArICAgICAgbWFrZV9jbGVh bnVwX3VuaW5zdGFsbF92YXJpYWJsZSAodmFyKTsKICAgICAgfQogIAotLSAgaW5zdGFsbF9kZWZh dWx0X3Zpc3VhbGl6ZXIgKHZhcik7CiAgICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2hhaW4pOwot ICAgcmV0dXJuIHZhcjsKLSB9Ci1AQCAtNzM4LDE1ICs3NzQsOCBAQCBpbnN0YW50aWF0ZV9wcmV0 dHlfcHJpbnRlciAoUHlPYmplY3QgKmNvbnN0cnVjdG9yLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlKQot ICNpZiBIQVZFX1BZVEhPTgotICAgUHlPYmplY3QgKnZhbF9vYmogPSBOVUxMOyAKLSAgIFB5T2Jq ZWN0ICpwcmludGVyOwotLSAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZXhjZXB0Owot IAotLSAgVFJZX0NBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKLS0gICAgewotLSAgICAg IHZhbHVlID0gdmFsdWVfY29weSAodmFsdWUpOwotLSAgICB9Ci0tICBHREJfUFlfSEFORExFX0VY Q0VQVElPTiAoZXhjZXB0KTsKLSAgIHZhbF9vYmogPSB2YWx1ZV90b192YWx1ZV9vYmplY3QgKHZh bHVlKTsKLS0KLSAgIGlmICghIHZhbF9vYmopCi0gICAgIHJldHVybiBOVUxMOwotIAotQEAgLTc5 OSw3ICs4MjgsMTIgQEAgdmFyb2JqX2dldF9kaXNwbGF5X2hpbnQgKHN0cnVjdCB2YXJvYmogKnZh cikKK0BAIC04MjEsNyArODI4LDEyIEBAIHZhcm9ial9nZXRfZGlzcGxheV9oaW50IChzdHJ1Y3Qg dmFyb2JqICp2YXIpCiAgICBjaGFyICpyZXN1bHQgPSBOVUxMOwogIAogICNpZiBIQVZFX1BZVEhP TgpAQCAtMzA3MTksNzg0ICsyODU1Miw3IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYgMTAwNjQ0 CiAgCiAgICBpZiAodmFyLT5wcmV0dHlfcHJpbnRlcikKICAgICAgcmVzdWx0ID0gZ2RicHlfZ2V0 X2Rpc3BsYXlfaGludCAodmFyLT5wcmV0dHlfcHJpbnRlcik7Ci1AQCAtODEwLDYgKzg0NCwxNyBA QCB2YXJvYmpfZ2V0X2Rpc3BsYXlfaGludCAoc3RydWN0IHZhcm9iaiAqdmFyKQotICAgcmV0dXJu IHJlc3VsdDsKLSB9Ci0gCi0rLyogUmV0dXJuIHRydWUgaWYgdGhlIHZhcm9iaiBoYXMgaXRlbXMg YWZ0ZXIgVE8sIGZhbHNlIG90aGVyd2lzZS4gICovCi0rCi0raW50Ci0rdmFyb2JqX2hhc19tb3Jl IChzdHJ1Y3QgdmFyb2JqICp2YXIsIGludCB0bykKLSt7Ci0rICBpZiAoVkVDX2xlbmd0aCAodmFy b2JqX3AsIHZhci0+Y2hpbGRyZW4pID4gdG8pCi0rICAgIHJldHVybiAxOwotKyAgcmV0dXJuICgo dG8gPT0gLTEgfHwgVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pID09IHRvKQot KwkgICYmIHZhci0+c2F2ZWRfaXRlbSAhPSBOVUxMKTsKLSt9Ci0rCi0gLyogSWYgdGhlIHZhcmlh YmxlIG9iamVjdCBpcyBib3VuZCB0byBhIHNwZWNpZmljIHRocmVhZCwgdGhhdAotICAgIGlzIGl0 cyBldmFsdWF0aW9uIGNhbiBhbHdheXMgYmUgZG9uZSBpbiBjb250ZXh0IG9mIGEgZnJhbWUKLSAg ICBpbnNpZGUgdGhhdCB0aHJlYWQsIHJldHVybnMgR0RCIGlkIG9mIHRoZSB0aHJlYWQgLS0gd2hp Y2gKLUBAIC04NDIsMjIgKzg4Nyw5NCBAQCB2YXJvYmpfZ2V0X2Zyb3plbiAoc3RydWN0IHZhcm9i aiAqdmFyKQotICAgcmV0dXJuIHZhci0+ZnJvemVuOwotIH0KLSAKLSsvKiBBIGhlbHBlciBmdW5j dGlvbiB0aGF0IHJlc3RyaWN0cyBhIHJhbmdlIHRvIHdoYXQgaXMgYWN0dWFsbHkKLSsgICBhdmFp bGFibGUgaW4gYSBWRUMuICBUaGlzIGZvbGxvd3MgdGhlIHVzdWFsIHJ1bGVzIGZvciB0aGUgbWVh bmluZwotKyAgIG9mIEZST00gYW5kIFRPIC0tIGlmIGVpdGhlciBpcyBuZWdhdGl2ZSwgdGhlIGVu dGlyZSByYW5nZSBpcwotKyAgIHVzZWQuICAqLwotKwotK3N0YXRpYyB2b2lkCi0rcmVzdHJpY3Rf cmFuZ2UgKFZFQyAodmFyb2JqX3ApICpjaGlsZHJlbiwgaW50ICpmcm9tLCBpbnQgKnRvKQotK3sK LSsgIGlmICgqZnJvbSA8IDAgfHwgKnRvIDwgMCkKLSsgICAgewotKyAgICAgICpmcm9tID0gMDsK LSsgICAgICAqdG8gPSBWRUNfbGVuZ3RoICh2YXJvYmpfcCwgY2hpbGRyZW4pOwotKyAgICB9Ci0r ICBlbHNlCi0rICAgIHsKLSsgICAgICBpZiAoKmZyb20gPiBWRUNfbGVuZ3RoICh2YXJvYmpfcCwg Y2hpbGRyZW4pKQotKwkqZnJvbSA9IFZFQ19sZW5ndGggKHZhcm9ial9wLCBjaGlsZHJlbik7Ci0r ICAgICAgaWYgKCp0byA+IFZFQ19sZW5ndGggKHZhcm9ial9wLCBjaGlsZHJlbikpCi0rCSp0byA9 IFZFQ19sZW5ndGggKHZhcm9ial9wLCBjaGlsZHJlbik7Ci0rICAgICAgaWYgKCpmcm9tID4gKnRv KQotKwkqZnJvbSA9ICp0bzsKLSsgICAgfQotK30KLSsKLSsvKiBBIGhlbHBlciBmb3IgdXBkYXRl X2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuIHRoYXQgaW5zdGFsbHMgYSBuZXcKLSsgICBjaGlsZCB3 aGVuIG5lZWRlZC4gICovCi0rCi0rc3RhdGljIHZvaWQKLStpbnN0YWxsX2R5bmFtaWNfY2hpbGQg KHN0cnVjdCB2YXJvYmogKnZhciwKLSsJCSAgICAgICBWRUMgKHZhcm9ial9wKSAqKmNoYW5nZWQs Ci0rCQkgICAgICAgVkVDICh2YXJvYmpfcCkgKipuZXcsCi0rCQkgICAgICAgVkVDICh2YXJvYmpf cCkgKip1bmNoYW5nZWQsCi0rCQkgICAgICAgaW50ICpjY2hhbmdlZCwKLSsJCSAgICAgICBpbnQg aW5kZXgsCi0rCQkgICAgICAgY29uc3QgY2hhciAqbmFtZSwKLSsJCSAgICAgICBzdHJ1Y3QgdmFs dWUgKnZhbHVlKQotK3sKLSsgIGlmIChWRUNfbGVuZ3RoICh2YXJvYmpfcCwgdmFyLT5jaGlsZHJl bikgPCBpbmRleCArIDEpCi0rICAgIHsKLSsgICAgICAvKiBUaGVyZSdzIG5vIGNoaWxkIHlldC4g ICovCi0rICAgICAgc3RydWN0IHZhcm9iaiAqY2hpbGQgPSB2YXJvYmpfYWRkX2NoaWxkICh2YXIs IG5hbWUsIHZhbHVlKTsKLSsgICAgICBpZiAobmV3KQotKwlWRUNfc2FmZV9wdXNoICh2YXJvYmpf cCwgKm5ldywgY2hpbGQpOwotKyAgICAgICpjY2hhbmdlZCA9IDE7Ci0rICAgIH0KLSsgIGVsc2Ug Ci0rICAgIHsKLSsgICAgICB2YXJvYmpfcCBleGlzdGluZyA9IFZFQ19pbmRleCAodmFyb2JqX3As IHZhci0+Y2hpbGRyZW4sIGluZGV4KTsKLSsgICAgICBpZiAoaW5zdGFsbF9uZXdfdmFsdWUgKGV4 aXN0aW5nLCB2YWx1ZSwgMCkpCi0rCXsKLSsJICBpZiAoY2hhbmdlZCkKLSsJICAgIFZFQ19zYWZl X3B1c2ggKHZhcm9ial9wLCAqY2hhbmdlZCwgZXhpc3RpbmcpOwotKwl9Ci0rICAgICAgZWxzZSBp ZiAodW5jaGFuZ2VkKQotKwlWRUNfc2FmZV9wdXNoICh2YXJvYmpfcCwgKnVuY2hhbmdlZCwgZXhp c3RpbmcpOwotKyAgICB9Ci0rfQotKwotKyNpZiBIQVZFX1BZVEhPTgotKwotK3N0YXRpYyBpbnQK LStkeW5hbWljX3Zhcm9ial9oYXNfY2hpbGRfbWV0aG9kIChzdHJ1Y3QgdmFyb2JqICp2YXIpCi0r ewotKyAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87Ci0rICBQeU9iamVjdCAqcHJpbnRlciA9IHZh ci0+cHJldHR5X3ByaW50ZXI7Ci0rICBpbnQgcmVzdWx0OwotKwotKyAgYmFja190byA9IHZhcm9i al9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKLSsgIHJlc3VsdCA9IFB5T2JqZWN0X0hhc0F0dHIg KHByaW50ZXIsIGdkYnB5X2NoaWxkcmVuX2NzdCk7Ci0rICBkb19jbGVhbnVwcyAoYmFja190byk7 Ci0rICByZXR1cm4gcmVzdWx0OwotK30KLSsKLSsjZW5kaWYKLSsKLSBzdGF0aWMgaW50Ci0gdXBk YXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIsCi0gCQkJCVZF QyAodmFyb2JqX3ApICoqY2hhbmdlZCwKLS0JCQkJVkVDICh2YXJvYmpfcCkgKipuZXdfYW5kX3Vu Y2hhbmdlZCwKLS0JCQkJaW50ICpjY2hhbmdlZCkKLS0KLSsJCQkJVkVDICh2YXJvYmpfcCkgKipu ZXcsCi0rCQkJCVZFQyAodmFyb2JqX3ApICoqdW5jaGFuZ2VkLAotKwkJCQlpbnQgKmNjaGFuZ2Vk LAotKwkJCQlpbnQgdXBkYXRlX2NoaWxkcmVuLAotKwkJCQlpbnQgdG8pCi0gewotICNpZiBIQVZF X1BZVEhPTgotLSAgLyogRklYTUU6IHdlICptaWdodCogd2FudCB0byBwcm92aWRlIHRoaXMgZnVu Y3Rpb25hbGl0eSBhcwotLSAgICAgYSBzdGFuZGFsb25lIGZ1bmN0aW9uLCBzbyB0aGF0IG90aGVy IGludGVyZXN0ZWQgcGFydGllcwotLSAgICAgdGhhbiB2YXJvYmogY29kZSBjYW4gYmVuZWZpdCBm b3IgdGhpcy4gICovCi0gICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKLSAgIFB5T2JqZWN0ICpj aGlsZHJlbjsKLS0gIFB5T2JqZWN0ICppdGVyYXRvcjsKLSAgIGludCBpOwotLSAgaW50IGNoaWxk cmVuX2NoYW5nZWQgPSAwOwotICAgUHlPYmplY3QgKnByaW50ZXIgPSB2YXItPnByZXR0eV9wcmlu dGVyOwotIAotICAgYmFja190byA9IHZhcm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKLUBA IC04NjksODcgKzk4NiwxMDMgQEAgdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuIChzdHJ1 Y3QgdmFyb2JqICp2YXIsCi0gICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAKLS0gIGNoaWxkcmVu ID0gUHlPYmplY3RfQ2FsbE1ldGhvZE9iakFyZ3MgKHByaW50ZXIsIGdkYnB5X2NoaWxkcmVuX2Nz dCwKLS0JCQkJCSBOVUxMKTsKLS0KLS0gIGlmICghY2hpbGRyZW4pCi0rICBpZiAodXBkYXRlX2No aWxkcmVuIHx8ICF2YXItPmNoaWxkX2l0ZXIpCi0gICAgIHsKLS0gICAgICBnZGJweV9wcmludF9z dGFjayAoKTsKLS0gICAgICBlcnJvciAoXygiTnVsbCB2YWx1ZSByZXR1cm5lZCBmb3IgY2hpbGRy ZW4iKSk7Ci0tICAgIH0KLSsgICAgICBjaGlsZHJlbiA9IFB5T2JqZWN0X0NhbGxNZXRob2RPYmpB cmdzIChwcmludGVyLCBnZGJweV9jaGlsZHJlbl9jc3QsCi0rCQkJCQkgICAgIE5VTEwpOwotKwot KyAgICAgIGlmICghY2hpbGRyZW4pCi0rCXsKLSsJICBnZGJweV9wcmludF9zdGFjayAoKTsKLSsJ ICBlcnJvciAoXygiTnVsbCB2YWx1ZSByZXR1cm5lZCBmb3IgY2hpbGRyZW4iKSk7Ci0rCX0KLSAK LS0gIG1ha2VfY2xlYW51cF9weV9kZWNyZWYgKGNoaWxkcmVuKTsKLSsgICAgICBtYWtlX2NsZWFu dXBfcHlfZGVjcmVmIChjaGlsZHJlbik7Ci0gCi0tICBpZiAoIVB5SXRlcl9DaGVjayAoY2hpbGRy ZW4pKQotLSAgICBlcnJvciAoXygiUmV0dXJuZWQgdmFsdWUgaXMgbm90IGl0ZXJhYmxlIikpOwot KyAgICAgIGlmICghUHlJdGVyX0NoZWNrIChjaGlsZHJlbikpCi0rCWVycm9yIChfKCJSZXR1cm5l ZCB2YWx1ZSBpcyBub3QgaXRlcmFibGUiKSk7Ci0gCi0tICBpdGVyYXRvciA9IFB5T2JqZWN0X0dl dEl0ZXIgKGNoaWxkcmVuKTsKLS0gIGlmICghaXRlcmF0b3IpCi0tICAgIHsKLS0gICAgICBnZGJw eV9wcmludF9zdGFjayAoKTsKLS0gICAgICBlcnJvciAoXygiQ291bGQgbm90IGdldCBjaGlsZHJl biBpdGVyYXRvciIpKTsKLSsgICAgICBQeV9YREVDUkVGICh2YXItPmNoaWxkX2l0ZXIpOwotKyAg ICAgIHZhci0+Y2hpbGRfaXRlciA9IFB5T2JqZWN0X0dldEl0ZXIgKGNoaWxkcmVuKTsKLSsgICAg ICBpZiAoIXZhci0+Y2hpbGRfaXRlcikKLSsJewotKwkgIGdkYnB5X3ByaW50X3N0YWNrICgpOwot KwkgIGVycm9yIChfKCJDb3VsZCBub3QgZ2V0IGNoaWxkcmVuIGl0ZXJhdG9yIikpOwotKwl9Ci0r Ci0rICAgICAgUHlfWERFQ1JFRiAodmFyLT5zYXZlZF9pdGVtKTsKLSsgICAgICB2YXItPnNhdmVk X2l0ZW0gPSBOVUxMOwotKwotKyAgICAgIGkgPSAwOwotICAgICB9Ci0tICBtYWtlX2NsZWFudXBf cHlfZGVjcmVmIChpdGVyYXRvcik7Ci0rICBlbHNlCi0rICAgIGkgPSBWRUNfbGVuZ3RoICh2YXJv YmpfcCwgdmFyLT5jaGlsZHJlbik7Ci0gCi0tICBmb3IgKGkgPSAwOyA7ICsraSkKLSsgIC8qIFdl IGFzayBmb3Igb25lIGV4dHJhIGNoaWxkLCBzbyB0aGF0IE1JIGNhbiByZXBvcnQgd2hldGhlciB0 aGVyZQotKyAgICAgYXJlIG1vcmUgY2hpbGRyZW4uICAqLwotKyAgZm9yICg7IHRvIDwgMCB8fCBp IDwgdG8gKyAxOyArK2kpCi0gICAgIHsKLS0gICAgICBQeU9iamVjdCAqaXRlbSA9IFB5SXRlcl9O ZXh0IChpdGVyYXRvcik7Ci0tICAgICAgUHlPYmplY3QgKnB5X3Y7Ci0tICAgICAgc3RydWN0IHZh bHVlICp2OwotLSAgICAgIGNoYXIgKm5hbWU7Ci0tICAgICAgc3RydWN0IGNsZWFudXAgKmlubmVy OwotLSAgICAgIAotKyAgICAgIFB5T2JqZWN0ICppdGVtOwotKwotKyAgICAgIC8qIFNlZSBpZiB0 aGVyZSB3YXMgYSBsZWZ0b3ZlciBmcm9tIGxhc3QgdGltZS4gICovCi0rICAgICAgaWYgKHZhci0+ c2F2ZWRfaXRlbSkKLSsJewotKwkgIGl0ZW0gPSB2YXItPnNhdmVkX2l0ZW07Ci0rCSAgdmFyLT5z YXZlZF9pdGVtID0gTlVMTDsKLSsJfQotKyAgICAgIGVsc2UKLSsJaXRlbSA9IFB5SXRlcl9OZXh0 ICh2YXItPmNoaWxkX2l0ZXIpOwotKwotICAgICAgIGlmICghaXRlbSkKLSAJYnJlYWs7Ci0tICAg ICAgaW5uZXIgPSBtYWtlX2NsZWFudXBfcHlfZGVjcmVmIChpdGVtKTsKLSAKLS0gICAgICBpZiAo IVB5QXJnX1BhcnNlVHVwbGUgKGl0ZW0sICJzTyIsICZuYW1lLCAmcHlfdikpCi0tCWVycm9yIChf KCJJbnZhbGlkIGl0ZW0gZnJvbSB0aGUgY2hpbGQgbGlzdCIpKTsKLS0gICAgICAKLS0gICAgICB2 ID0gY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAocHlfdik7Ci0rICAgICAgLyogV2UgZG9uJ3Qg d2FudCB0byBwdXNoIHRoZSBleHRyYSBjaGlsZCBvbiBhbnkgcmVwb3J0IGxpc3QuICAqLwotKyAg ICAgIGlmICh0byA8IDAgfHwgaSA8IHRvKQotKwl7Ci0rCSAgUHlPYmplY3QgKnB5X3Y7Ci0rCSAg Y2hhciAqbmFtZTsKLSsJICBzdHJ1Y3QgdmFsdWUgKnY7Ci0rCSAgc3RydWN0IGNsZWFudXAgKmlu bmVyOwotIAotLSAgICAgIC8qIFRPRE86IFRoaXMgYXNzdW1lIHRoZSBuYW1lIG9mIHRoZSBpLXRo IGNoaWxkIG5ldmVyIGNoYW5nZXMuICAqLwotKwkgIGlubmVyID0gbWFrZV9jbGVhbnVwX3B5X2Rl Y3JlZiAoaXRlbSk7Ci0gCi0tICAgICAgLyogTm93IHNlZSB3aGF0IHRvIGRvIGhlcmUuICAqLwot LSAgICAgIGlmIChWRUNfbGVuZ3RoICh2YXJvYmpfcCwgdmFyLT5jaGlsZHJlbikgPCBpICsgMSkK LS0JewotLQkgIC8qIFRoZXJlJ3Mgbm8gY2hpbGQgeWV0LiAgKi8KLS0JICBzdHJ1Y3QgdmFyb2Jq ICpjaGlsZCA9IHZhcm9ial9hZGRfY2hpbGQgKHZhciwgbmFtZSwgdik7Ci0tCSAgaWYgKG5ld19h bmRfdW5jaGFuZ2VkKQotLQkgICAgVkVDX3NhZmVfcHVzaCAodmFyb2JqX3AsICpuZXdfYW5kX3Vu Y2hhbmdlZCwgY2hpbGQpOwotLQkgIGNoaWxkcmVuX2NoYW5nZWQgPSAxOwotKwkgIGlmICghUHlB cmdfUGFyc2VUdXBsZSAoaXRlbSwgInNPIiwgJm5hbWUsICZweV92KSkKLSsJICAgIGVycm9yIChf KCJJbnZhbGlkIGl0ZW0gZnJvbSB0aGUgY2hpbGQgbGlzdCIpKTsKLSsKLSsJICB2ID0gY29udmVy dF92YWx1ZV9mcm9tX3B5dGhvbiAocHlfdik7Ci0rCSAgaW5zdGFsbF9keW5hbWljX2NoaWxkICh2 YXIsIGNoYW5nZWQsIG5ldywgdW5jaGFuZ2VkLAotKwkJCQkgY2NoYW5nZWQsIGksIG5hbWUsIHYp OwotKwkgIGRvX2NsZWFudXBzIChpbm5lcik7Ci0gCX0KLS0gICAgICBlbHNlIAotKyAgICAgIGVs c2UKLSAJewotLQkgIHZhcm9ial9wIGV4aXN0aW5nID0gVkVDX2luZGV4ICh2YXJvYmpfcCwgdmFy LT5jaGlsZHJlbiwgaSk7Ci0tCSAgaWYgKGluc3RhbGxfbmV3X3ZhbHVlIChleGlzdGluZywgdiwg MCkgJiYgY2hhbmdlZCkKLS0JICAgIHsKLS0JICAgICAgaWYgKGNoYW5nZWQpCi0tCQlWRUNfc2Fm ZV9wdXNoICh2YXJvYmpfcCwgKmNoYW5nZWQsIGV4aXN0aW5nKTsKLS0JICAgIH0KLS0JICBlbHNl Ci0tCSAgICB7Ci0tCSAgICAgIGlmIChuZXdfYW5kX3VuY2hhbmdlZCkKLS0JCVZFQ19zYWZlX3B1 c2ggKHZhcm9ial9wLCAqbmV3X2FuZF91bmNoYW5nZWQsIGV4aXN0aW5nKTsKLS0JICAgIH0KLS0J fQotKwkgIFB5X1hERUNSRUYgKHZhci0+c2F2ZWRfaXRlbSk7Ci0rCSAgdmFyLT5zYXZlZF9pdGVt ID0gaXRlbTsKLSAKLS0gICAgICBkb19jbGVhbnVwcyAoaW5uZXIpOwotKwkgIC8qIFdlIHdhbnQg dG8gdHJ1bmNhdGUgdGhlIGNoaWxkIGxpc3QganVzdCBiZWZvcmUgdGhpcwotKwkgICAgIGVsZW1l bnQuICAqLwotKwkgIGJyZWFrOwotKwl9Ci0gICAgIH0KLSAKLSAgIGlmIChpIDwgVkVDX2xlbmd0 aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pKQotICAgICB7Ci0tICAgICAgaW50IGk7Ci0tICAg ICAgY2hpbGRyZW5fY2hhbmdlZCA9IDE7Ci0tICAgICAgZm9yIChpID0gMDsgaSA8IFZFQ19sZW5n dGggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuKTsgKytpKQotLQl2YXJvYmpfZGVsZXRlIChWRUNf aW5kZXggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCBpKSwgTlVMTCwgMCk7Ci0rICAgICAgaW50 IGo7Ci0rICAgICAgKmNjaGFuZ2VkID0gMTsKLSsgICAgICBmb3IgKGogPSBpOyBqIDwgVkVDX2xl bmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pOyArK2opCi0rCXZhcm9ial9kZWxldGUgKFZF Q19pbmRleCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4sIGopLCBOVUxMLCAwKTsKLSsgICAgICBW RUNfdHJ1bmNhdGUgKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCBpKTsKLSAgICAgfQotLSAgVkVD X3RydW5jYXRlICh2YXJvYmpfcCwgdmFyLT5jaGlsZHJlbiwgaSk7Ci0rCi0rICAvKiBJZiB0aGVy ZSBhcmUgZmV3ZXIgY2hpbGRyZW4gdGhhbiByZXF1ZXN0ZWQsIG5vdGUgdGhhdCB0aGUgbGlzdCBv ZgotKyAgICAgY2hpbGRyZW4gY2hhbmdlZC4gICovCi0rICBpZiAodG8gPj0gMCAmJiBWRUNfbGVu Z3RoICh2YXJvYmpfcCwgdmFyLT5jaGlsZHJlbikgPCB0bykKLSsgICAgKmNjaGFuZ2VkID0gMTsK LSsKLSAgIHZhci0+bnVtX2NoaWxkcmVuID0gVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hp bGRyZW4pOwotICAKLSAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKLSAKLS0gICpjY2hhbmdlZCA9 IGNoaWxkcmVuX2NoYW5nZWQ7Ci0gICByZXR1cm4gMTsKLSAjZWxzZQotICAgZ2RiX2Fzc2VydCAo MCAmJiAic2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpZiBQeXRob24gaXMgbm90IGVuYWJsZWQiKTsK LUBAIC05NjEsMjAgKzEwOTQsMjYgQEAgdmFyb2JqX2dldF9udW1fY2hpbGRyZW4gKHN0cnVjdCB2 YXJvYmogKnZhcikKLSB7Ci0gICBpZiAodmFyLT5udW1fY2hpbGRyZW4gPT0gLTEpCi0gICAgIHsK LS0gICAgICBpbnQgY2hhbmdlZDsKLS0gICAgICBpZiAoIXZhci0+cHJldHR5X3ByaW50ZXIKLS0J ICB8fCAhdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2YXIsIE5VTEwsIE5VTEwsICZj aGFuZ2VkKSkKLSsgICAgICBpZiAodmFyLT5wcmV0dHlfcHJpbnRlcikKLSsJewotKwkgIGludCBk dW1teTsKLSsKLSsJICAvKiBJZiB3ZSBoYXZlIGEgZHluYW1pYyB2YXJvYmosIGRvbid0IHJlcG9y dCAtMSBjaGlsZHJlbi4KLSsJICAgICBTbywgdHJ5IHRvIGZldGNoIHNvbWUgY2hpbGRyZW4gZmly c3QuICAqLwotKwkgIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBO VUxMLCBOVUxMLCAmZHVtbXksIDAsIDApOwotKwl9Ci0rICAgICAgZWxzZQotIAl2YXItPm51bV9j aGlsZHJlbiA9IG51bWJlcl9vZl9jaGlsZHJlbiAodmFyKTsKLSAgICAgfQotIAotLSAgcmV0dXJu IHZhci0+bnVtX2NoaWxkcmVuOwotKyAgcmV0dXJuIHZhci0+bnVtX2NoaWxkcmVuID49IDAgPyB2 YXItPm51bV9jaGlsZHJlbiA6IDA7Ci0gfQotIAotIC8qIENyZWF0ZXMgYSBsaXN0IG9mIHRoZSBp bW1lZGlhdGUgY2hpbGRyZW4gb2YgYSB2YXJpYWJsZSBvYmplY3Q7Ci0gICAgdGhlIHJldHVybiBj b2RlIGlzIHRoZSBudW1iZXIgb2Ygc3VjaCBjaGlsZHJlbiBvciAtMSBvbiBlcnJvciAqLwotIAot IFZFQyAodmFyb2JqX3ApKgotLXZhcm9ial9saXN0X2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2 YXIpCi0rdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhciwgaW50ICpmcm9t LCBpbnQgKnRvKQotIHsKLSAgIHN0cnVjdCB2YXJvYmogKmNoaWxkOwotICAgY2hhciAqbmFtZTsK LUBAIC05ODIsMTIgKzExMjEsMTYgQEAgdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJv YmogKnZhcikKLSAKLSAgIHZhci0+Y2hpbGRyZW5fcmVxdWVzdGVkID0gMTsKLSAKLS0gIGlmICh2 YXItPnByZXR0eV9wcmludGVyCi0rICBpZiAodmFyLT5wcmV0dHlfcHJpbnRlcikKLSsgICAgewot ICAgICAgIC8qIFRoaXMsIGluIHRoZW9yeSwgY2FuIHJlc3VsdCBpbiB0aGUgbnVtYmVyIG9mIGNo aWxkcmVuIGNoYW5naW5nIHdpdGhvdXQKLSAJIGZyb250ZW5kIG5vdGljaW5nLiAgQnV0IHdlbGws IGNhbGxpbmcgLXZhci1saXN0LWNoaWxkcmVuIG9uIHRoZSBzYW1lCi0gCSB2YXJvYmogdHdpY2Ug aXMgbm90IHNvbWV0aGluZyBhIHNhbmUgZnJvbnRlbmQgd291bGQgZG8uICAqLwotLSAgICAgICYm IHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCAmY2hpbGRy ZW5fY2hhbmdlZCkpCi0tICAgIHJldHVybiB2YXItPmNoaWxkcmVuOwotKyAgICAgIHVwZGF0ZV9k eW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCBOVUxMLCAmY2hpbGRyZW5f Y2hhbmdlZCwKLSsJCQkJICAgICAgMCwgKnRvKTsKLSsgICAgICByZXN0cmljdF9yYW5nZSAodmFy LT5jaGlsZHJlbiwgZnJvbSwgdG8pOwotKyAgICAgIHJldHVybiB2YXItPmNoaWxkcmVuOwotKyAg ICB9Ci0gCi0gICBpZiAodmFyLT5udW1fY2hpbGRyZW4gPT0gLTEpCi0gICAgIHZhci0+bnVtX2No aWxkcmVuID0gbnVtYmVyX29mX2NoaWxkcmVuICh2YXIpOwotQEAgLTEwMTMsMTAgKzExNTYsMTAg QEAgdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKLSAJICBuYW1lID0g bmFtZV9vZl9jaGlsZCAodmFyLCBpKTsKLSAJICBleGlzdGluZyA9IGNyZWF0ZV9jaGlsZCAodmFy LCBpLCBuYW1lKTsKLSAJICBWRUNfcmVwbGFjZSAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4sIGks IGV4aXN0aW5nKTsKLS0JICBpbnN0YWxsX2RlZmF1bHRfdmlzdWFsaXplciAoZXhpc3RpbmcpOwot IAl9Ci0gICAgIH0KLSAKLSsgIHJlc3RyaWN0X3JhbmdlICh2YXItPmNoaWxkcmVuLCBmcm9tLCB0 byk7Ci0gICByZXR1cm4gdmFyLT5jaGlsZHJlbjsKLSB9Ci0gCi1AQCAtMTAyNyw3ICsxMTcwLDYg QEAgdmFyb2JqX2FkZF9jaGlsZCAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICpuYW1l LCBzdHJ1Y3QgdmFsdWUgKnZhbHVlKQotIAkJCQkJVkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+ Y2hpbGRyZW4pLCAKLSAJCQkJCW5hbWUsIHZhbHVlKTsKLSAgIFZFQ19zYWZlX3B1c2ggKHZhcm9i al9wLCB2YXItPmNoaWxkcmVuLCB2KTsKLS0gIGluc3RhbGxfZGVmYXVsdF92aXN1YWxpemVyICh2 KTsKLSAgIHJldHVybiB2OwotIH0KLSAKLUBAIC0xMDg5LDYgKzEyMzEsMTIgQEAgdmFyb2JqX2dl dF9hdHRyaWJ1dGVzIChzdHJ1Y3QgdmFyb2JqICp2YXIpCi0gICByZXR1cm4gYXR0cmlidXRlczsK LSB9Ci0gCi0raW50Ci0rdmFyb2JqX3ByZXR0eV9wcmludGVkX3AgKHN0cnVjdCB2YXJvYmogKnZh cikKLSt7Ci0rICByZXR1cm4gdmFyLT5wcmV0dHlfcHJpbnRlciAhPSBOVUxMOwotK30KLSsKLSBj aGFyICoKLSB2YXJvYmpfZ2V0X2Zvcm1hdHRlZF92YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLAot IAkJCSAgICBlbnVtIHZhcm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0KQotQEAgLTExNjYsNiAr MTMxNCwxMTYgQEAgdmFyb2JqX3NldF92YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBjaGFyICpl eHByZXNzaW9uKQotICAgcmV0dXJuIDE7Ci0gfQotIAotKyNpZiBIQVZFX1BZVEhPTgotKwotKy8q IEEgaGVscGVyIGZ1bmN0aW9uIHRvIGluc3RhbGwgYSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBhbmQg dmlzdWFsaXplcgotKyAgIGluIGEgdmFyb2JqLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2luc3Rh bGxfdmlzdWFsaXplciAoc3RydWN0IHZhcm9iaiAqdmFyLCBQeU9iamVjdCAqY29uc3RydWN0b3Is Ci0rCQkgICAgUHlPYmplY3QgKnZpc3VhbGl6ZXIpCi0rewotKyAgUHlfWERFQ1JFRiAodmFyLT5j b25zdHJ1Y3Rvcik7Ci0rICB2YXItPmNvbnN0cnVjdG9yID0gY29uc3RydWN0b3I7Ci0rCi0rICBQ eV9YREVDUkVGICh2YXItPnByZXR0eV9wcmludGVyKTsKLSsgIHZhci0+cHJldHR5X3ByaW50ZXIg PSB2aXN1YWxpemVyOwotKwotKyAgUHlfWERFQ1JFRiAodmFyLT5jaGlsZF9pdGVyKTsKLSsgIHZh ci0+Y2hpbGRfaXRlciA9IE5VTEw7Ci0rfQotKwotKy8qIEluc3RhbGwgdGhlIGRlZmF1bHQgdmlz dWFsaXplciBmb3IgVkFSLiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2luc3RhbGxfZGVmYXVsdF92 aXN1YWxpemVyIChzdHJ1Y3QgdmFyb2JqICp2YXIpCi0rewotKyAgaWYgKHByZXR0eV9wcmludGlu ZykKLSsgICAgewotKyAgICAgIFB5T2JqZWN0ICpwcmV0dHlfcHJpbnRlciA9IE5VTEw7Ci0rCi0r ICAgICAgaWYgKHZhci0+dmFsdWUpCi0rCXsKLSsJICBwcmV0dHlfcHJpbnRlciA9IGdkYnB5X2dl dF92YXJvYmpfcHJldHR5X3ByaW50ZXIgKHZhci0+dmFsdWUpOwotKwkgIGlmICghIHByZXR0eV9w cmludGVyKQotKwkgICAgewotKwkgICAgICBnZGJweV9wcmludF9zdGFjayAoKTsKLSsJICAgICAg ZXJyb3IgKF8oIkNhbm5vdCBpbnN0YW50aWF0ZSBwcmludGVyIGZvciBkZWZhdWx0IHZpc3VhbGl6 ZXIiKSk7Ci0rCSAgICB9Ci0rCX0KLSsgICAgICAKLSsgICAgICBpZiAocHJldHR5X3ByaW50ZXIg PT0gUHlfTm9uZSkKLSsJewotKwkgIFB5X0RFQ1JFRiAocHJldHR5X3ByaW50ZXIpOwotKwkgIHBy ZXR0eV9wcmludGVyID0gTlVMTDsKLSsJfQotKyAgCi0rICAgICAgaW5zdGFsbF92aXN1YWxpemVy ICh2YXIsIE5VTEwsIHByZXR0eV9wcmludGVyKTsKLSsgICAgfQotK30KLSsKLSsvKiBJbnN0YW50 aWF0ZSBhbmQgaW5zdGFsbCBhIHZpc3VhbGl6ZXIgZm9yIFZBUiB1c2luZyBDT05TVFJVQ1RPUiB0 bwotKyAgIG1ha2UgYSBuZXcgb2JqZWN0LiAgKi8KLSsKLStzdGF0aWMgdm9pZAotK2NvbnN0cnVj dF92aXN1YWxpemVyIChzdHJ1Y3QgdmFyb2JqICp2YXIsIFB5T2JqZWN0ICpjb25zdHJ1Y3RvcikK LSt7Ci0rICBQeU9iamVjdCAqcHJldHR5X3ByaW50ZXI7Ci0rCi0rICBQeV9JTkNSRUYgKGNvbnN0 cnVjdG9yKTsKLSsgIGlmIChjb25zdHJ1Y3RvciA9PSBQeV9Ob25lKQotKyAgICBwcmV0dHlfcHJp bnRlciA9IE5VTEw7Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBwcmV0dHlfcHJpbnRlciA9IGlu c3RhbnRpYXRlX3ByZXR0eV9wcmludGVyIChjb25zdHJ1Y3RvciwgdmFyLT52YWx1ZSk7Ci0rICAg ICAgaWYgKCEgcHJldHR5X3ByaW50ZXIpCi0rCXsKLSsJICBnZGJweV9wcmludF9zdGFjayAoKTsK LSsJICBQeV9ERUNSRUYgKGNvbnN0cnVjdG9yKTsKLSsJICBjb25zdHJ1Y3RvciA9IFB5X05vbmU7 Ci0rCSAgUHlfSU5DUkVGIChjb25zdHJ1Y3Rvcik7Ci0rCX0KLSsKLSsgICAgICBpZiAocHJldHR5 X3ByaW50ZXIgPT0gUHlfTm9uZSkKLSsJewotKwkgIFB5X0RFQ1JFRiAocHJldHR5X3ByaW50ZXIp OwotKwkgIHByZXR0eV9wcmludGVyID0gTlVMTDsKLSsJfQotKyAgICB9Ci0rCi0rICBpbnN0YWxs X3Zpc3VhbGl6ZXIgKHZhciwgY29uc3RydWN0b3IsIHByZXR0eV9wcmludGVyKTsKLSt9Ci0rCi0r I2VuZGlmIC8qIEhBVkVfUFlUSE9OICovCi0rCi0rLyogQSBoZWxwZXIgZnVuY3Rpb24gZm9yIGlu c3RhbGxfbmV3X3ZhbHVlLiAgVGhpcyBjcmVhdGVzIGFuZCBpbnN0YWxscwotKyAgIGEgdmlzdWFs aXplciBmb3IgVkFSLCBpZiBhcHByb3ByaWF0ZS4gICovCi0rCi0rc3RhdGljIHZvaWQKLStpbnN0 YWxsX25ld192YWx1ZV92aXN1YWxpemVyIChzdHJ1Y3QgdmFyb2JqICp2YXIpCi0rewotKyNpZiBI QVZFX1BZVEhPTgotKyAgLyogSWYgdGhlIGNvbnN0cnVjdG9yIGlzIE5vbmUsIHRoZW4gd2Ugd2Fu dCB0aGUgcmF3IHZhbHVlLiAgSWYgVkFSCi0rICAgICBkb2VzIG5vdCBoYXZlIGEgdmFsdWUsIGp1 c3Qgc2tpcCB0aGlzLiAgKi8KLSsgIGlmICh2YXItPmNvbnN0cnVjdG9yICE9IFB5X05vbmUgJiYg dmFyLT52YWx1ZSkKLSsgICAgewotKyAgICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOwotKyAg ICAgIFB5T2JqZWN0ICpwcmV0dHlfcHJpbnRlciA9IE5VTEw7Ci0rCi0rICAgICAgY2xlYW51cCA9 IHZhcm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKLSsKLSsgICAgICBpZiAoIXZhci0+Y29u c3RydWN0b3IpCi0rCWluc3RhbGxfZGVmYXVsdF92aXN1YWxpemVyICh2YXIpOwotKyAgICAgIGVs c2UKLSsJY29uc3RydWN0X3Zpc3VhbGl6ZXIgKHZhciwgdmFyLT5jb25zdHJ1Y3Rvcik7Ci0rCi0r ICAgICAgZG9fY2xlYW51cHMgKGNsZWFudXApOwotKyAgICB9Ci0rI2Vsc2UKLSsgIC8qIERvIG5v dGhpbmcuICAqLwotKyNlbmRpZgotK30KLSsKLSAvKiBBc3NpZ24gYSBuZXcgdmFsdWUgdG8gYSB2 YXJpYWJsZSBvYmplY3QuICBJZiBJTklUSUFMIGlzIG5vbi16ZXJvLAotICAgIHRoaXMgaXMgdGhl IGZpcnN0IGFzc2lnbmVtZW50IGFmdGVyIHRoZSB2YXJpYWJsZSBvYmplY3Qgd2FzIGp1c3QKLSAg ICBjcmVhdGVkLCBvciBjaGFuZ2VkIHR5cGUuICBJbiB0aGF0IGNhc2UsIGp1c3QgYXNzaWduIHRo ZSB2YWx1ZSAKLUBAIC0xMjA2LDEwICsxNDY0LDcgQEAgaW5zdGFsbF9uZXdfdmFsdWUgKHN0cnVj dCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGluaXRpYWwpCi0gICAgICB0 aGF0IGluIEMrKyBhIHJlZmVyZW5jZSBpcyBub3QgcmViaW5kYWJsZSwgaXQgY2Fubm90Ci0gICAg ICBtZWFuaW5nZnVsbHkgY2hhbmdlLiAgU28sIGdldCBob2xkIG9mIHRoZSByZWFsIHZhbHVlLiAg Ki8KLSAgIGlmICh2YWx1ZSkKLS0gICAgewotLSAgICAgIHZhbHVlID0gY29lcmNlX3JlZiAodmFs dWUpOwotLSAgICAgIHJlbGVhc2VfdmFsdWUgKHZhbHVlKTsKLS0gICAgfQotKyAgICB2YWx1ZSA9 IGNvZXJjZV9yZWYgKHZhbHVlKTsKLSAKLSAgIGlmICh2YXItPnR5cGUgJiYgVFlQRV9DT0RFICh2 YXItPnR5cGUpID09IFRZUEVfQ09ERV9VTklPTikKLSAgICAgLyogRm9yIHVuaW9ucywgd2UgbmVl ZCB0byBmZXRjaCB0aGUgdmFsdWUgaW1wbGljaXRseSBiZWNhdXNlCi1AQCAtMTI1Niw3ICsxNTEx LDcgQEAgaW5zdGFsbF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVl ICp2YWx1ZSwgaW50IGluaXRpYWwpCi0gICAgICB2YWx1ZXMuICBEb24ndCBnZXQgc3RyaW5nIHJl bmRlcmluZyBpZiB0aGUgdmFsdWUgaXMKLSAgICAgIGxhenkgLS0gaWYgaXQgaXMsIHRoZSBjb2Rl IGFib3ZlIGhhcyBkZWNpZGVkIHRoYXQgdGhlIHZhbHVlCi0gICAgICBzaG91bGQgbm90IGJlIGZl dGNoZWQuICAqLwotLSAgaWYgKHZhbHVlICYmICF2YWx1ZV9sYXp5ICh2YWx1ZSkpCi0rICBpZiAo dmFsdWUgJiYgIXZhbHVlX2xhenkgKHZhbHVlKSAmJiAhdmFyLT5wcmV0dHlfcHJpbnRlcikKLSAg ICAgcHJpbnRfdmFsdWUgPSB2YWx1ZV9nZXRfcHJpbnRfdmFsdWUgKHZhbHVlLCB2YXItPmZvcm1h dCwgdmFyKTsKLSAKLSAgIC8qIElmIHRoZSB0eXBlIGlzIGNoYW5nZWFibGUsIGNvbXBhcmUgdGhl IG9sZCBhbmQgdGhlIG5ldyB2YWx1ZXMuCi1AQCAtMTI3Miw3ICsxNTI3LDcgQEAgaW5zdGFsbF9u ZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGlu aXRpYWwpCi0gCXsKLSAJICBjaGFuZ2VkID0gMTsKLSAJfQotLSAgICAgIGVsc2UgCi0rICAgICAg ZWxzZSBpZiAoISB2YXItPnByZXR0eV9wcmludGVyKQotIAl7Ci0gCSAgLyogVHJ5IHRvIGNvbXBh cmUgdGhlIHZhbHVlcy4gIFRoYXQgcmVxdWlyZXMgdGhhdCBib3RoCi0gCSAgICAgdmFsdWVzIGFy ZSBub24tbGF6eS4gICovCi1AQCAtMTMxNyw3NCArMTU3Miw1MyBAQCBpbnN0YWxsX25ld192YWx1 ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkK LSAgIGlmICh2YXItPnZhbHVlICE9IE5VTEwgJiYgdmFyLT52YWx1ZSAhPSB2YWx1ZSkKLSAgICAg dmFsdWVfZnJlZSAodmFyLT52YWx1ZSk7Ci0gICB2YXItPnZhbHVlID0gdmFsdWU7Ci0tICBpZiAo dmFyLT5wcmludF92YWx1ZSkKLS0gICAgeGZyZWUgKHZhci0+cHJpbnRfdmFsdWUpOwotLSAgdmFy LT5wcmludF92YWx1ZSA9IHByaW50X3ZhbHVlOwotKyAgaWYgKHZhbHVlICE9IE5VTEwpCi0rICAg IHZhbHVlX2luY3JlZiAodmFsdWUpOwotICAgaWYgKHZhbHVlICYmIHZhbHVlX2xhenkgKHZhbHVl KSAmJiBpbnRlbnRpb25hbGx5X25vdF9mZXRjaGVkKQotICAgICB2YXItPm5vdF9mZXRjaGVkID0g MTsKLSAgIGVsc2UKLSAgICAgdmFyLT5ub3RfZmV0Y2hlZCA9IDA7Ci0gICB2YXItPnVwZGF0ZWQg PSAwOwotIAotKyAgaW5zdGFsbF9uZXdfdmFsdWVfdmlzdWFsaXplciAodmFyKTsKLSsKLSsgIC8q IElmIHdlIGluc3RhbGxlZCBhIHByZXR0eS1wcmludGVyLCByZS1jb21wYXJlIHRoZSBwcmludGVk IHZlcnNpb24KLSsgICAgIHRvIHNlZSBpZiB0aGUgdmFyaWFibGUgY2hhbmdlZC4gICovCi0rICBp ZiAodmFyLT5wcmV0dHlfcHJpbnRlcikKLSsgICAgewotKyAgICAgIHhmcmVlIChwcmludF92YWx1 ZSk7Ci0rICAgICAgcHJpbnRfdmFsdWUgPSB2YWx1ZV9nZXRfcHJpbnRfdmFsdWUgKHZhci0+dmFs dWUsIHZhci0+Zm9ybWF0LCB2YXIpOwotKyAgICAgIGlmICghdmFyLT5wcmludF92YWx1ZSB8fCBz dHJjbXAgKHZhci0+cHJpbnRfdmFsdWUsIHByaW50X3ZhbHVlKSAhPSAwKQotKwljaGFuZ2VkID0g MTsKLSsgICAgfQotKyAgaWYgKHZhci0+cHJpbnRfdmFsdWUpCi0rICAgIHhmcmVlICh2YXItPnBy aW50X3ZhbHVlKTsKLSsgIHZhci0+cHJpbnRfdmFsdWUgPSBwcmludF92YWx1ZTsKLSsKLSAgIGdk Yl9hc3NlcnQgKCF2YXItPnZhbHVlIHx8IHZhbHVlX3R5cGUgKHZhci0+dmFsdWUpKTsKLSAKLSAg IHJldHVybiBjaGFuZ2VkOwotIH0KLSAKLS1zdGF0aWMgdm9pZAotLWluc3RhbGxfdmlzdWFsaXpl ciAoc3RydWN0IHZhcm9iaiAqdmFyLCBQeU9iamVjdCAqdmlzdWFsaXplcikKLSsvKiBSZXR1cm4g dGhlIHJlcXVlc3RlZCByYW5nZSBmb3IgYSB2YXJvYmouICBWQVIgaXMgdGhlIHZhcm9iai4gIEZS T00KLSsgICBhbmQgVE8gYXJlIG91dCBwYXJhbWV0ZXJzOyAqRlJPTSBhbmQgKlRPIHdpbGwgYmUg c2V0IHRvIHRoZQotKyAgIHNlbGVjdGVkIHN1Yi1yYW5nZSBvZiBWQVIuICBJZiBubyByYW5nZSB3 YXMgc2VsZWN0ZWQgdXNpbmcKLSsgICAtdmFyLXNldC11cGRhdGUtcmFuZ2UsIHRoZW4gYm90aCB3 aWxsIGJlIC0xLiAgKi8KLSt2b2lkCi0rdmFyb2JqX2dldF9jaGlsZF9yYW5nZSAoc3RydWN0IHZh cm9iaiAqdmFyLCBpbnQgKmZyb20sIGludCAqdG8pCi0gewotLSNpZiBIQVZFX1BZVEhPTgotLSAg LyogSWYgdGhlcmUgYXJlIGFueSBjaGlsZHJlbiBub3csIHdpcGUgdGhlbS4gICovCi0tICB2YXJv YmpfZGVsZXRlICh2YXIsIE5VTEwsIDEgLyogY2hpbGRyZW4gb25seSAqLyk7Ci0tICB2YXItPm51 bV9jaGlsZHJlbiA9IC0xOwotLQotLSAgUHlfWERFQ1JFRiAodmFyLT5wcmV0dHlfcHJpbnRlcik7 Ci0tICB2YXItPnByZXR0eV9wcmludGVyID0gdmlzdWFsaXplcjsKLS0KLS0gIGluc3RhbGxfbmV3 X3ZhbHVlICh2YXIsIHZhci0+dmFsdWUsIDEpOwotLQotLSAgLyogSWYgd2UgcmVtb3ZlZCB0aGUg dmlzdWFsaXplciwgYW5kIHRoZSB1c2VyIGV2ZXIgcmVxdWVzdGVkIHRoZQotLSAgICAgb2JqZWN0 J3MgY2hpbGRyZW4sIHRoZW4gd2UgbXVzdCBjb21wdXRlIHRoZSBsaXN0IG9mIGNoaWxkcmVuLgot LSAgICAgTm90ZSB0aGF0IHdlIG5lZWRuJ3QgZG8gdGhpcyB3aGVuIGluc3RhbGxpbmcgYSB2aXN1 YWxpemVyLAotLSAgICAgYmVjYXVzZSB1cGRhdGluZyB3aWxsIHJlY29tcHV0ZSBkeW5hbWljIGNo aWxkcmVuLiAgKi8KLS0gIGlmICghdmlzdWFsaXplciAmJiB2YXItPmNoaWxkcmVuX3JlcXVlc3Rl ZCkKLS0gICAgdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHZhcik7Ci0tI2Vsc2UKLS0gIGVycm9yIChf KCJQeXRob24gc3VwcG9ydCByZXF1aXJlZCIpKTsKLS0jZW5kaWYKLSsgICpmcm9tID0gdmFyLT5m cm9tOwotKyAgKnRvID0gdmFyLT50bzsKLSB9Ci0gCi0tc3RhdGljIHZvaWQKLS1pbnN0YWxsX2Rl ZmF1bHRfdmlzdWFsaXplciAoc3RydWN0IHZhcm9iaiAqdmFyKQotKy8qIFNldCB0aGUgc2VsZWN0 ZWQgc3ViLXJhbmdlIG9mIGNoaWxkcmVuIG9mIFZBUiB0byBzdGFydCBhdCBpbmRleAotKyAgIEZS T00gYW5kIGVuZCBhdCBpbmRleCBUTy4gIElmIGVpdGhlciBGUk9NIG9yIFRPIGlzIGxlc3MgdGhh biB6ZXJvLAotKyAgIHRoaXMgaXMgaW50ZXJwcmV0ZWQgYXMgYSByZXF1ZXN0IGZvciBhbGwgY2hp bGRyZW4uICAqLwotK3ZvaWQKLSt2YXJvYmpfc2V0X2NoaWxkX3JhbmdlIChzdHJ1Y3QgdmFyb2Jq ICp2YXIsIGludCBmcm9tLCBpbnQgdG8pCi0gewotLSNpZiBIQVZFX1BZVEhPTgotLSAgc3RydWN0 IGNsZWFudXAgKmNsZWFudXA7Ci0tICBQeU9iamVjdCAqcHJldHR5X3ByaW50ZXIgPSBOVUxMOwot LQotLSAgY2xlYW51cCA9IHZhcm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKLS0KLS0gIGlm ICh2YXItPnZhbHVlKQotLSAgICB7Ci0tICAgICAgcHJldHR5X3ByaW50ZXIgPSBnZGJweV9nZXRf dmFyb2JqX3ByZXR0eV9wcmludGVyICh2YXItPnZhbHVlKTsKLS0gICAgICBpZiAoISBwcmV0dHlf cHJpbnRlcikKLS0JewotLQkgIGdkYnB5X3ByaW50X3N0YWNrICgpOwotLQkgIGVycm9yIChfKCJD YW5ub3QgaW5zdGFudGlhdGUgcHJpbnRlciBmb3IgZGVmYXVsdCB2aXN1YWxpemVyIikpOwotLQl9 Ci0tICAgIH0KLS0gICAgICAKLS0gIGlmIChwcmV0dHlfcHJpbnRlciA9PSBQeV9Ob25lKQotLSAg ICB7Ci0tICAgICAgUHlfREVDUkVGIChwcmV0dHlfcHJpbnRlcik7Ci0tICAgICAgcHJldHR5X3By aW50ZXIgPSBOVUxMOwotLSAgICB9Ci0tICAKLS0gIGluc3RhbGxfdmlzdWFsaXplciAodmFyLCBw cmV0dHlfcHJpbnRlcik7Ci0tICBkb19jbGVhbnVwcyAoY2xlYW51cCk7Ci0tI2Vsc2UKLS0gIC8q IE5vIGVycm9yIGlzIHJpZ2h0IGFzIHRoaXMgZnVuY3Rpb24gaXMgaW5zZXJ0ZWQganVzdCBhcyBh IGhvb2suICAqLwotLSNlbmRpZgotKyAgdmFyLT5mcm9tID0gZnJvbTsKLSsgIHZhci0+dG8gPSB0 bzsKLSB9Ci0gCi0gdm9pZCAKLUBAIC0xNDAyLDMxICsxNjM2LDE5IEBAIHZhcm9ial9zZXRfdmlz dWFsaXplciAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICp2aXN1YWxpemVyKQotICAg bWFrZV9jbGVhbnVwX3B5X2RlY3JlZiAoZ2xvYmFscyk7Ci0gCi0gICBjb25zdHJ1Y3RvciA9IFB5 UnVuX1N0cmluZyAodmlzdWFsaXplciwgUHlfZXZhbF9pbnB1dCwgZ2xvYmFscywgZ2xvYmFscyk7 Ci0tICAKLS0gIC8qIERvIG5vdCBpbnN0YW50aWF0ZSBOb25lVHlwZS4gKi8KLS0gIGlmIChjb25z dHJ1Y3RvciA9PSBQeV9Ob25lKQotLSAgICB7Ci0tICAgICAgcHJldHR5X3ByaW50ZXIgPSBQeV9O b25lOwotLSAgICAgIFB5X0lOQ1JFRiAocHJldHR5X3ByaW50ZXIpOwotLSAgICB9Ci0tICBlbHNl Ci0tICAgIHByZXR0eV9wcmludGVyID0gaW5zdGFudGlhdGVfcHJldHR5X3ByaW50ZXIgKGNvbnN0 cnVjdG9yLCB2YXItPnZhbHVlKTsKLS0KLS0gIFB5X1hERUNSRUYgKGNvbnN0cnVjdG9yKTsKLSAK LS0gIGlmICghIHByZXR0eV9wcmludGVyKQotKyAgaWYgKCEgY29uc3RydWN0b3IpCi0gICAgIHsK LSAgICAgICBnZGJweV9wcmludF9zdGFjayAoKTsKLSAgICAgICBlcnJvciAoXygiQ291bGQgbm90 IGV2YWx1YXRlIHZpc3VhbGl6ZXIgZXhwcmVzc2lvbjogJXMiKSwgdmlzdWFsaXplcik7Ci0gICAg IH0KLSAKLS0gIGlmIChwcmV0dHlfcHJpbnRlciA9PSBQeV9Ob25lKQotLSAgICB7Ci0tICAgICAg UHlfREVDUkVGIChwcmV0dHlfcHJpbnRlcik7Ci0tICAgICAgcHJldHR5X3ByaW50ZXIgPSBOVUxM OwotLSAgICB9Ci0rICBjb25zdHJ1Y3RfdmlzdWFsaXplciAodmFyLCBjb25zdHJ1Y3Rvcik7Ci0r ICBQeV9YREVDUkVGIChjb25zdHJ1Y3Rvcik7Ci0gCi0tICBpbnN0YWxsX3Zpc3VhbGl6ZXIgKHZh ciwgcHJldHR5X3ByaW50ZXIpOwotKyAgLyogSWYgdGhlcmUgYXJlIGFueSBjaGlsZHJlbiBub3cs IHdpcGUgdGhlbS4gICovCi0rICB2YXJvYmpfZGVsZXRlICh2YXIsIE5VTEwsIDEgLyogY2hpbGRy ZW4gb25seSAqLyk7Ci0rICB2YXItPm51bV9jaGlsZHJlbiA9IC0xOwotIAotICAgZG9fY2xlYW51 cHMgKGJhY2tfdG8pOwotICNlbHNlCi1AQCAtMTUzNyw0NCArMTc1OSw3NCBAQCBWRUModmFyb2Jq X3VwZGF0ZV9yZXN1bHQpICp2YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoqdmFycCwgaW50 IGV4cGxpY2l0KQotIAotICAgICAgIC8qIFdlIHByb2JhYmx5IHNob3VsZCBub3QgZ2V0IGNoaWxk cmVuIG9mIGEgdmFyb2JqIHRoYXQgaGFzIGEKLSAJIHByZXR0eS1wcmludGVyLCBidXQgZm9yIHdo aWNoIC12YXItbGlzdC1jaGlsZHJlbiB3YXMgbmV2ZXIKLS0JIGludm9rZWQuICBQcmVzdW1hYmx5 LCBzdWNoIHZhcm9iaiBpcyBub3QgeWV0IGV4cGFuZGVkIGluIHRoZQotLQkgVUksIHNvIHdlIG5l ZWQgbm90IGJvdGhlciBnZXR0aW5nIGl0LiAgKi8KLSsJIGludm9rZWQuICAgICovCi0gICAgICAg aWYgKHYtPnByZXR0eV9wcmludGVyKQotIAl7Ci0tCSAgVkVDICh2YXJvYmpfcCkgKmNoYW5nZWQg PSAwLCAqbmV3X2FuZF91bmNoYW5nZWQgPSAwOwotKwkgIFZFQyAodmFyb2JqX3ApICpjaGFuZ2Vk ID0gMCwgKm5ldyA9IDAsICp1bmNoYW5nZWQgPSAwOwotIAkgIGludCBpLCBjaGlsZHJlbl9jaGFu Z2VkOwotIAkgIHZhcm9ial9wIHRtcDsKLSAKLS0JICBpZiAoIXYtPmNoaWxkcmVuX3JlcXVlc3Rl ZCkKLS0JICAgIGNvbnRpbnVlOwotLQotIAkgIGlmICh2LT5mcm96ZW4pCi0gCSAgICBjb250aW51 ZTsKLSAKLSsJICBpZiAoIXYtPmNoaWxkcmVuX3JlcXVlc3RlZCkKLSsJICAgIHsKLSsJICAgICAg aW50IGR1bW15OwotKwotKwkgICAgICAvKiBJZiB3ZSBpbml0aWFsbHkgZGlkIG5vdCBoYXZlIHBv dGVudGlhbCBjaGlsZHJlbiwgYnV0Ci0rCQkgbm93IHdlIGRvLCBjb25zaWRlciB0aGUgdmFyb2Jq IGFzIGNoYW5nZWQuCi0rCQkgT3RoZXJ3aXNlLCBpZiBjaGlsZHJlbiB3ZXJlIG5ldmVyIHJlcXVl c3RlZCwgY29uc2lkZXIKLSsJCSBpdCBhcyB1bmNoYW5nZWQgLS0gcHJlc3VtYWJseSwgc3VjaCB2 YXJvYmogaXMgbm90IHlldAotKwkJIGV4cGFuZGVkIGluIHRoZSBVSSwgc28gd2UgbmVlZCBub3Qg Ym90aGVyIGdldHRpbmcKLSsJCSBpdC4gICovCi0rCSAgICAgIGlmICghdmFyb2JqX2hhc19tb3Jl ICh2LCAwKSkKLSsJCXsKLSsJCSAgdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2LCBO VUxMLCBOVUxMLCBOVUxMLAotKwkJCQkJCSAgJmR1bW15LCAwLCAwKTsKLSsJCSAgaWYgKHZhcm9i al9oYXNfbW9yZSAodiwgMCkpCi0rCQkgICAgci5jaGFuZ2VkID0gMTsKLSsJCX0KLSsKLSsJICAg ICAgaWYgKHIuY2hhbmdlZCkKLSsJCVZFQ19zYWZlX3B1c2ggKHZhcm9ial91cGRhdGVfcmVzdWx0 LCByZXN1bHQsICZyKTsKLSsKLSsJICAgICAgY29udGludWU7Ci0rCSAgICB9Ci0rCi0gCSAgLyog SWYgdXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuIHJldHVybnMgMCwgdGhlbiB3ZSBoYXZl Ci0gCSAgICAgYSBub24tY29uZm9ybWluZyBwcmV0dHktcHJpbnRlciwgc28gd2Ugc2tpcCBpdC4g ICovCi0tCSAgaWYgKHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodiwgJmNoYW5nZWQs ICZuZXdfYW5kX3VuY2hhbmdlZCwKLS0JCQkJCSAgICAgICZjaGlsZHJlbl9jaGFuZ2VkKSkKLSsJ ICBpZiAodXBkYXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2LCAmY2hhbmdlZCwgJm5ldywg JnVuY2hhbmdlZCwKLSsJCQkJCSAgICAgICZjaGlsZHJlbl9jaGFuZ2VkLCAxLCB2LT50bykpCi0g CSAgICB7Ci0tCSAgICAgIGlmIChjaGlsZHJlbl9jaGFuZ2VkKQotLQkJci5jaGlsZHJlbl9jaGFu Z2VkID0gMTsKLS0JICAgICAgZm9yIChpID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCBjaGFu Z2VkLCBpLCB0bXApOyArK2kpCi0rCSAgICAgIGlmIChjaGlsZHJlbl9jaGFuZ2VkIHx8IG5ldykK LSAJCXsKLS0JCSAgdmFyb2JqX3VwZGF0ZV9yZXN1bHQgciA9IHt0bXB9OwotLQkJICByLmNoYW5n ZWQgPSAxOwotLQkJICByLnZhbHVlX2luc3RhbGxlZCA9IDE7Ci0tCQkgIFZFQ19zYWZlX3B1c2gg KHZhcm9ial91cGRhdGVfcmVzdWx0LCBzdGFjaywgJnIpOwotKwkJICByLmNoaWxkcmVuX2NoYW5n ZWQgPSAxOwotKwkJICByLm5ldyA9IG5ldzsKLSAJCX0KLS0JICAgICAgZm9yIChpID0gMDsKLS0J CSAgIFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgbmV3X2FuZF91bmNoYW5nZWQsIGksIHRtcCk7Ci0t CQkgICArK2kpCi0rCSAgICAgIGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgY2hh bmdlZCwgaSwgdG1wKTsgKytpKQotIAkJewotIAkJICB2YXJvYmpfdXBkYXRlX3Jlc3VsdCByID0g e3RtcH07Ci0rCQkgIHIuY2hhbmdlZCA9IDE7Ci0gCQkgIHIudmFsdWVfaW5zdGFsbGVkID0gMTsK LSAJCSAgVkVDX3NhZmVfcHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHN0YWNrLCAmcik7Ci0g CQl9Ci0rCSAgICAgIGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgdW5jaGFuZ2Vk LCBpLCB0bXApOyArK2kpCi0rCSAgICAgIAl7Ci0rCSAgICAgIAkgIGlmICghdG1wLT5mcm96ZW4p Ci0rCSAgICAgIAkgICAgewotKwkgICAgICAJICAgICAgdmFyb2JqX3VwZGF0ZV9yZXN1bHQgciA9 IHt0bXB9OwotKwkgICAgICAJICAgICAgci52YWx1ZV9pbnN0YWxsZWQgPSAxOwotKwkgICAgICAJ ICAgICAgVkVDX3NhZmVfcHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHN0YWNrLCAmcik7Ci0r CSAgICAgIAkgICAgfQotKwkgICAgICAJfQotIAkgICAgICBpZiAoci5jaGFuZ2VkIHx8IHIuY2hp bGRyZW5fY2hhbmdlZCkKLSAJCVZFQ19zYWZlX3B1c2ggKHZhcm9ial91cGRhdGVfcmVzdWx0LCBy ZXN1bHQsICZyKTsKLSsKLSsJICAgICAgLyogRnJlZSBDSEFOR0VEIGFuZCBVTkNIQU5HRUQsIGJ1 dCBub3QgTkVXLCBiZWNhdXNlIE5FVwotKwkJIGhhcyBiZWVuIHB1dCBpbnRvIHRoZSByZXN1bHQg dmVjdG9yLiAgKi8KLSsJICAgICAgVkVDX2ZyZWUgKHZhcm9ial9wLCBjaGFuZ2VkKTsKLSsJICAg ICAgVkVDX2ZyZWUgKHZhcm9ial9wLCB1bmNoYW5nZWQpOwotKwotIAkgICAgICBjb250aW51ZTsK LSAJICAgIH0KLSAJfQotQEAgLTE4NjIsNyArMjExNCwxMiBAQCBuZXdfdmFyaWFibGUgKHZvaWQp Ci0gICB2YXItPmZyb3plbiA9IDA7Ci0gICB2YXItPm5vdF9mZXRjaGVkID0gMDsKLSAgIHZhci0+ Y2hpbGRyZW5fcmVxdWVzdGVkID0gMDsKLSsgIHZhci0+ZnJvbSA9IC0xOwotKyAgdmFyLT50byA9 IC0xOwotKyAgdmFyLT5jb25zdHJ1Y3RvciA9IDA7Ci0gICB2YXItPnByZXR0eV9wcmludGVyID0g MDsKLSsgIHZhci0+Y2hpbGRfaXRlciA9IDA7Ci0rICB2YXItPnNhdmVkX2l0ZW0gPSAwOwotIAot ICAgcmV0dXJuIHZhcjsKLSB9Ci1AQCAtMTg5Miw3ICsyMTQ5LDEwIEBAIGZyZWVfdmFyaWFibGUg KHN0cnVjdCB2YXJvYmogKnZhcikKLSAgIGlmICh2YXItPnByZXR0eV9wcmludGVyKQotICAgICB7 Ci0gICAgICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXAgPSB2YXJvYmpfZW5zdXJlX3B5dGhvbl9l bnYgKHZhcik7Ci0tICAgICAgUHlfREVDUkVGICh2YXItPnByZXR0eV9wcmludGVyKTsKLSsgICAg ICBQeV9YREVDUkVGICh2YXItPmNvbnN0cnVjdG9yKTsKLSsgICAgICBQeV9YREVDUkVGICh2YXIt PnByZXR0eV9wcmludGVyKTsKLSsgICAgICBQeV9YREVDUkVGICh2YXItPmNoaWxkX2l0ZXIpOwot KyAgICAgIFB5X1hERUNSRUYgKHZhci0+c2F2ZWRfaXRlbSk7Ci0gICAgICAgZG9fY2xlYW51cHMg KGNsZWFudXApOwotICAgICB9Ci0gI2VuZGlmCi1AQCAtMTkyNSw2ICsyMTg1LDE4IEBAIG1ha2Vf Y2xlYW51cF9mcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIpCitAQCAtMjE4Niw2ICsy MTk4LDE4IEBAIG1ha2VfY2xlYW51cF9mcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIp CiAgICByZXR1cm4gbWFrZV9jbGVhbnVwIChkb19mcmVlX3ZhcmlhYmxlX2NsZWFudXAsIHZhcik7 CiAgfQogIApAQCAtMzE1MTUsMTI0ICsyODU3MSw3IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYg MTAwNjQ0CiAgLyogVGhpcyByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJsZS4gSXQgYWxz byBza2lwcyBwYXN0IHR5cGVkZWZzCiAgICAgdG8gcmV0dXJuIHRoZSByZWFsIHR5cGUgb2YgdGhl IHZhcmlhYmxlLgogIAotQEAgLTIxMzksNiArMjQxMSw4IEBAIHZhbHVlX29mX3Jvb3QgKHN0cnVj dCB2YXJvYmogKip2YXJfaGFuZGxlLCBpbnQgKnR5cGVfY2hhbmdlZCkKLSAgICAgICBlbHNlCi0g CXsKLSAJICB0bXBfdmFyLT5vYmpfbmFtZSA9IHhzdHJkdXAgKHZhci0+b2JqX25hbWUpOwotKwkg IHRtcF92YXItPmZyb20gPSB2YXItPmZyb207Ci0rCSAgdG1wX3Zhci0+dG8gPSB2YXItPnRvOwot IAkgIHZhcm9ial9kZWxldGUgKHZhciwgTlVMTCwgMCk7Ci0gCi0gCSAgaW5zdGFsbF92YXJpYWJs ZSAodG1wX3Zhcik7Ci1AQCAtMjE3Myw3ICsyNDQ3LDExIEBAIHN0YXRpYyBjaGFyICoKLSBteV92 YWx1ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZhcm9ial9kaXNwbGF5 X2Zvcm1hdHMgZm9ybWF0KQotIHsKLSAgIGlmICh2YXItPnJvb3QtPmlzX3ZhbGlkKQotLSAgICBy ZXR1cm4gKCp2YXItPnJvb3QtPmxhbmctPnZhbHVlX29mX3ZhcmlhYmxlKSAodmFyLCBmb3JtYXQp OwotKyAgICB7Ci0rICAgICAgaWYgKHZhci0+cHJldHR5X3ByaW50ZXIpCi0rCXJldHVybiB2YWx1 ZV9nZXRfcHJpbnRfdmFsdWUgKHZhci0+dmFsdWUsIHZhci0+Zm9ybWF0LCB2YXIpOwotKyAgICAg IHJldHVybiAoKnZhci0+cm9vdC0+bGFuZy0+dmFsdWVfb2ZfdmFyaWFibGUpICh2YXIsIGZvcm1h dCk7Ci0rICAgIH0KLSAgIGVsc2UKLSAgICAgcmV0dXJuIE5VTEw7Ci0gfQotQEAgLTIxOTYsNDMg KzI0NzQsNTEgQEAgdmFsdWVfZ2V0X3ByaW50X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBl bnVtIHZhcm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0LAotICAgICBzdHJ1Y3QgY2xlYW51cCAq YmFja190byA9IHZhcm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKLSAgICAgUHlPYmplY3Qg KnZhbHVlX2Zvcm1hdHRlciA9IHZhci0+cHJldHR5X3ByaW50ZXI7Ci0gCi0tICAgIGlmICh2YWx1 ZV9mb3JtYXR0ZXIgJiYgUHlPYmplY3RfSGFzQXR0ciAodmFsdWVfZm9ybWF0dGVyLAotLQkJCQkJ ICAgICBnZGJweV90b19zdHJpbmdfY3N0KSkKLSsgICAgaWYgKHZhbHVlX2Zvcm1hdHRlcikKLSAg ICAgICB7Ci0tCWNoYXIgKmhpbnQ7Ci0tCXN0cnVjdCB2YWx1ZSAqcmVwbGFjZW1lbnQ7Ci0tCWlu dCBzdHJpbmdfcHJpbnQgPSAwOwotLQlQeU9iamVjdCAqb3V0cHV0ID0gTlVMTDsKLSsJLyogRmly c3QgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgYW55IGNoaWxkcmVuIGF0IGFsbC4gIElmIHNvLAot KwkgICB3ZSBzaW1wbHkgcmV0dXJuIHsuLi59LiAgKi8KLSsJaWYgKGR5bmFtaWNfdmFyb2JqX2hh c19jaGlsZF9tZXRob2QgKHZhcikpCi0rCSAgcmV0dXJuIHhzdHJkdXAgKCJ7Li4ufSIpOwotIAot LQloaW50ID0gZ2RicHlfZ2V0X2Rpc3BsYXlfaGludCAodmFsdWVfZm9ybWF0dGVyKTsKLS0JaWYg KGhpbnQpCi0rCWlmIChQeU9iamVjdF9IYXNBdHRyICh2YWx1ZV9mb3JtYXR0ZXIsIGdkYnB5X3Rv X3N0cmluZ19jc3QpKQotIAkgIHsKLS0JICAgIGlmICghc3RyY21wIChoaW50LCAic3RyaW5nIikp Ci0tCSAgICAgIHN0cmluZ19wcmludCA9IDE7Ci0tCSAgICB4ZnJlZSAoaGludCk7Ci0tCSAgfQot KwkgICAgY2hhciAqaGludDsKLSsJICAgIHN0cnVjdCB2YWx1ZSAqcmVwbGFjZW1lbnQ7Ci0rCSAg ICBpbnQgc3RyaW5nX3ByaW50ID0gMDsKLSsJICAgIFB5T2JqZWN0ICpvdXRwdXQgPSBOVUxMOwot KwotKwkgICAgaGludCA9IGdkYnB5X2dldF9kaXNwbGF5X2hpbnQgKHZhbHVlX2Zvcm1hdHRlcik7 Ci0rCSAgICBpZiAoaGludCkKLSsJICAgICAgewotKwkJaWYgKCFzdHJjbXAgKGhpbnQsICJzdHJp bmciKSkKLSsJCSAgc3RyaW5nX3ByaW50ID0gMTsKLSsJCXhmcmVlIChoaW50KTsKLSsJICAgICAg fQotIAotLQlvdXRwdXQgPSBhcHBseV92YXJvYmpfcHJldHR5X3ByaW50ZXIgKHZhbHVlX2Zvcm1h dHRlciwKLS0JCQkJCSAgICAgICZyZXBsYWNlbWVudCk7Ci0tIAlpZiAob3V0cHV0KQotLSAgCSAg ewotLSAJICAgIFB5T2JqZWN0ICpweV9zdHIgPSBweXRob25fc3RyaW5nX3RvX3RhcmdldF9weXRo b25fc3RyaW5nIChvdXRwdXQpOwotLSAJICAgIGlmIChweV9zdHIpCi0tIAkgICAgICB7Ci0tIAkJ Y2hhciAqcyA9IFB5U3RyaW5nX0FzU3RyaW5nIChweV9zdHIpOwotLSAJCWxlbiA9IFB5U3RyaW5n X1NpemUgKHB5X3N0cik7Ci0tCQl0aGV2YWx1ZSA9IHhtZW1kdXAgKHMsIGxlbiArIDEsIGxlbiAr IDEpOwotLSAJCVB5X0RFQ1JFRiAocHlfc3RyKTsKLSsJICAgIG91dHB1dCA9IGFwcGx5X3Zhcm9i al9wcmV0dHlfcHJpbnRlciAodmFsdWVfZm9ybWF0dGVyLAotKwkJCQkJCSAgJnJlcGxhY2VtZW50 KTsKLSsJICAgIGlmIChvdXRwdXQpCi0rCSAgICAgIHsKLSsJCVB5T2JqZWN0ICpweV9zdHIKLSsJ CSAgPSBweXRob25fc3RyaW5nX3RvX3RhcmdldF9weXRob25fc3RyaW5nIChvdXRwdXQpOwotKwkJ aWYgKHB5X3N0cikKLSsJCSAgewotKwkJICAgIGNoYXIgKnMgPSBQeVN0cmluZ19Bc1N0cmluZyAo cHlfc3RyKTsKLSsJCSAgICBsZW4gPSBQeVN0cmluZ19TaXplIChweV9zdHIpOwotKwkJICAgIHRo ZXZhbHVlID0geG1lbWR1cCAocywgbGVuICsgMSwgbGVuICsgMSk7Ci0rCQkgICAgUHlfREVDUkVG IChweV9zdHIpOwotKwkJICB9Ci0rCQlQeV9ERUNSRUYgKG91dHB1dCk7Ci0gCSAgICAgIH0KLS0g CSAgICBQeV9ERUNSRUYgKG91dHB1dCk7Ci0tCSAgfQotLQlpZiAodGhldmFsdWUgJiYgIXN0cmlu Z19wcmludCkKLS0JICB7Ci0tCSAgICBkb19jbGVhbnVwcyAoYmFja190byk7Ci0tCSAgICByZXR1 cm4gdGhldmFsdWU7Ci0rCSAgICBpZiAodGhldmFsdWUgJiYgIXN0cmluZ19wcmludCkKLSsJICAg ICAgewotKwkJZG9fY2xlYW51cHMgKGJhY2tfdG8pOwotKwkJcmV0dXJuIHRoZXZhbHVlOwotKwkg ICAgICB9Ci0rCSAgICBpZiAocmVwbGFjZW1lbnQpCi0rCSAgICAgIHZhbHVlID0gcmVwbGFjZW1l bnQ7Ci0gCSAgfQotLQlpZiAocmVwbGFjZW1lbnQpCi0tCSAgdmFsdWUgPSByZXBsYWNlbWVudDsK LSAgICAgICB9Ci0gICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKLSAgIH0KLUBAIC0yOTYxLDEw ICszMjQ3LDcgQEAgY3BsdXNfZGVzY3JpYmVfY2hpbGQgKHN0cnVjdCB2YXJvYmogKnBhcmVudCwg aW50IGluZGV4LAotIAkgICAgKmNuYW1lID0geHN0cmR1cCAoVFlQRV9GSUVMRF9OQU1FICh0eXBl LCBpbmRleCkpOwotIAotIAkgIGlmIChjdmFsdWUgJiYgdmFsdWUpCi0tCSAgICB7Ci0tCSAgICAg ICpjdmFsdWUgPSB2YWx1ZV9jYXN0IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGluZGV4KSwgdmFs dWUpOwotLQkgICAgICByZWxlYXNlX3ZhbHVlICgqY3ZhbHVlKTsKLS0JICAgIH0KLSsJICAgICpj dmFsdWUgPSB2YWx1ZV9jYXN0IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGluZGV4KSwgdmFsdWUp OwotIAotIAkgIGlmIChjdHlwZSkKLSAJICAgIHsKLUBAIC0zMTcwLDYgKzM0NTMsMTkgQEAgamF2 YV92YWx1ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZhcm9ial9kaXNw bGF5X2Zvcm1hdHMgZm9ybWF0KQorQEAgLTM0NDIsNiArMzQ2NiwxOSBAQCBqYXZhX3ZhbHVlX29m X3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9ybWF0 cyBmb3JtYXQpCiAgICByZXR1cm4gY3BsdXNfdmFsdWVfb2ZfdmFyaWFibGUgKHZhciwgZm9ybWF0 KTsKICB9CiAgCkBAIC0zMTY1Miw3ICsyODU5MSw3IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYg MTAwNjQ0CiAgLyogSXRlcmF0ZSBhbGwgdGhlIGV4aXN0aW5nIF9yb290XyBWQVJPQkpzIGFuZCBj YWxsIHRoZSBGVU5DIGNhbGxiYWNrIGZvciB0aGVtCiAgICAgd2l0aCBhbiBhcmJpdHJhcnkgY2Fs bGVyIHN1cHBsaWVkIERBVEEgcG9pbnRlci4gICovCiAgCi1AQCAtMzE4Nyw2ICszNDgzLDQzIEBA IGFsbF9yb290X3Zhcm9ianMgKHZvaWQgKCpmdW5jKSAoc3RydWN0IHZhcm9iaiAqdmFyLCB2b2lk ICpkYXRhKSwgdm9pZCAqZGF0YSkKK0BAIC0zNDU5LDYgKzM0OTYsNDMgQEAgYWxsX3Jvb3RfdmFy b2JqcyAodm9pZCAoKmZ1bmMpIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHZvaWQgKmRhdGEpLCB2b2lk ICpkYXRhKQogICAgICAgICgqZnVuYykgKHZhcl9yb290LT5yb290dmFyLCBkYXRhKTsKICAgICAg fQogIH0KQEAgLTMxNjk2LDY2ICsyODYzNSw2IEBAIGluZGV4IDYwMzA3MWYuLmYxY2U4OWYgMTAw NjQ0CiAgDAogIGV4dGVybiB2b2lkIF9pbml0aWFsaXplX3Zhcm9iaiAodm9pZCk7CiAgdm9pZAot ZGlmZiAtLWdpdCBhL2dkYi92YXJvYmouaCBiL2dkYi92YXJvYmouaAotaW5kZXggNzI5NzI0My4u ZjQzYzU5MyAxMDA2NDQKLS0tLSBhL2dkYi92YXJvYmouaAotKysrIGIvZ2RiL3Zhcm9iai5oCi1A QCAtNzgsNiArNzgsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgdmFyb2JqX3VwZGF0ZV9yZXN1bHRfdAot ICAgICAgbmV3IHZhbHVlIG9mIHZhcm9iaiBpcyBhbHJlYWR5IGNvbXB1dGVkIGFuZCBpbnN0YWxs ZWQsIG9yIGhhcyB0bwotICAgICAgYmUgeWV0IGluc3RhbGxlZC4gIERvbid0IHVzZSB0aGlzIG91 dHNpZGUgdmFyb2JqLmMgKi8KLSAgIGludCB2YWx1ZV9pbnN0YWxsZWQ7ICAKLSsKLSsgIC8qIFRo aXMgd2lsbCBiZSBub24tTlVMTCB3aGVuIG5ldyBjaGlsZHJlbiB3ZXJlIGFkZGVkIHRvIHRoZSB2 YXJvYmouCi0rICAgICBJdCBsaXN0cyB0aGUgbmV3IGNoaWxkcmVuICh3aGljaCBtdXN0IG5lY2Vz c2FyaWx5IGNvbWUgYXQgdGhlIGVuZAotKyAgICAgb2YgdGhlIGNoaWxkIGxpc3QpIGFkZGVkIGR1 cmluZyBhbiB1cGRhdGUuICBUaGUgY2FsbGVyIGlzCi0rICAgICByZXNwb25zaWJsZSBmb3IgZnJl ZWluZyB0aGlzIHZlY3Rvci4gICovCi0rICBWRUMgKHZhcm9ial9wKSAqbmV3OwotIH0gdmFyb2Jq X3VwZGF0ZV9yZXN1bHQ7Ci0gCi0gREVGX1ZFQ19PICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCk7Ci1A QCAtMTEyLDEzICsxMTgsMjQgQEAgZXh0ZXJuIHZvaWQgdmFyb2JqX3NldF9mcm96ZW4gKHN0cnVj dCB2YXJvYmogKnZhciwgaW50IGZyb3plbik7Ci0gCi0gZXh0ZXJuIGludCB2YXJvYmpfZ2V0X2Zy b3plbiAoc3RydWN0IHZhcm9iaiAqdmFyKTsKLSAKLStleHRlcm4gdm9pZCB2YXJvYmpfZ2V0X2No aWxkX3JhbmdlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGludCAqZnJvbSwgaW50ICp0byk7Ci0rCi0r ZXh0ZXJuIHZvaWQgdmFyb2JqX3NldF9jaGlsZF9yYW5nZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBp bnQgZnJvbSwgaW50IHRvKTsKLSsKLSBleHRlcm4gY2hhciAqdmFyb2JqX2dldF9kaXNwbGF5X2hp bnQgKHN0cnVjdCB2YXJvYmogKnZhcik7Ci0gCi0gZXh0ZXJuIGludCB2YXJvYmpfZ2V0X251bV9j aGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyKTsKLSAKLS0vKiBSZXR1cm4gdGhlIGxpc3Qgb2Yg Y2hpbGRyZW4gb2YgVkFSLiAgVGhlIHJldHVybmVkIHZlY3RvcgotLSAgIHNob3VsZCBub3QgYmUg bW9kaWZpZWQgaW4gYW55IHdheS4gICovCi0tZXh0ZXJuIFZFQyAodmFyb2JqX3ApKiB2YXJvYmpf bGlzdF9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyKTsKLSsvKiBSZXR1cm4gdGhlIGxpc3Qg b2YgY2hpbGRyZW4gb2YgVkFSLiAgVGhlIHJldHVybmVkIHZlY3RvciBzaG91bGQgbm90Ci0rICAg YmUgbW9kaWZpZWQgaW4gYW55IHdheS4gIEZST00gYW5kIFRPIGFyZSBpbi9vdXQgcGFyYW1ldGVy cwotKyAgIGluZGljYXRpbmcgdGhlIHJhbmdlIG9mIGNoaWxkcmVuIHRvIHJldHVybi4gIElmIGVp dGhlciAqRlJPTSBvciAqVE8KLSsgICBpcyBsZXNzIHRoYW4gemVybyBvbiBlbnRyeSwgdGhlbiBh bGwgY2hpbGRyZW4gd2lsbCBiZSByZXR1cm5lZC4gIE9uCi0rICAgcmV0dXJuLCAqRlJPTSBhbmQg KlRPIHdpbGwgYmUgdXBkYXRlZCB0byBpbmRpY2F0ZSB0aGUgcmVhbCByYW5nZQotKyAgIHRoYXQg d2FzIHJldHVybmVkLiAgVGhlIHJlc3VsdGluZyBWRUMgd2lsbCBjb250YWluIGF0IGxlYXN0IHRo ZQotKyAgIGNoaWxkcmVuIGZyb20gKkZST00gdG8ganVzdCBiZWZvcmUgKlRPOyBpdCBtaWdodCBj b250YWluIG1vcmUKLSsgICBjaGlsZHJlbiwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgYW55IG1vcmUg d2VyZSBhdmFpbGFibGUuICAqLwotK2V4dGVybiBWRUMgKHZhcm9ial9wKSogdmFyb2JqX2xpc3Rf Y2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhciwKLSsJCQkJCSAgICAgaW50ICpmcm9tLCBpbnQg KnRvKTsKLSAKLSBleHRlcm4gY2hhciAqdmFyb2JqX2dldF90eXBlIChzdHJ1Y3QgdmFyb2JqICp2 YXIpOwotIAotQEAgLTE0OSw2ICsxNjYsMTMgQEAgZXh0ZXJuIGludCB2YXJvYmpfZWRpdGFibGVf cCAoc3RydWN0IHZhcm9iaiAqdmFyKTsKLSAKLSBleHRlcm4gaW50IHZhcm9ial9mbG9hdGluZ19w IChzdHJ1Y3QgdmFyb2JqICp2YXIpOwotIAotLWV4dGVybiB2b2lkIHZhcm9ial9zZXRfdmlzdWFs aXplciAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICp2aXN1YWxpemVyKTsKLStleHRl cm4gdm9pZCAKLSt2YXJvYmpfc2V0X3Zpc3VhbGl6ZXIgKHN0cnVjdCB2YXJvYmogKnZhciwgY29u c3QgY2hhciAqdmlzdWFsaXplcik7Ci0rCi0rZXh0ZXJuIHZvaWQgdmFyb2JqX2VuYWJsZV9wcmV0 dHlfcHJpbnRpbmcgKHZvaWQpOwotKwotK2V4dGVybiBpbnQgdmFyb2JqX2hhc19tb3JlIChzdHJ1 Y3QgdmFyb2JqICp2YXIsIGludCB0byk7Ci0rCi0rZXh0ZXJuIGludCB2YXJvYmpfcHJldHR5X3By aW50ZWRfcCAoc3RydWN0IHZhcm9iaiAqdmFyKTsKLSAKLSAjZW5kaWYgLyogVkFST0JKX0ggKi8K IGRpZmYgLS1naXQgYS9nZGIveGNvZmZyZWFkLmMgYi9nZGIveGNvZmZyZWFkLmMKIGluZGV4IGM1 NmFiODYuLmRhY2Y5MTMgMTAwNjQ0CiAtLS0gYS9nZGIveGNvZmZyZWFkLmMKCmRpZmYgLS1naXQg YS9nZGItYno1MTU0MzQtcXNvcnRfY21wLnBhdGNoIGIvZ2RiLWJ6NTE1NDM0LXFzb3J0X2NtcC5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjFmNDI2NC4uMDAwMDAwMAotLS0g YS9nZGItYno1MTU0MzQtcXNvcnRfY21wLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjI5ICsw LDAgQEAKLUluZGV4OiBvYmpmaWxlcy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1SQ1MgZmlsZTogL2N2cy9zcmMv c3JjL2dkYi9vYmpmaWxlcy5jLHYKLXJldHJpZXZpbmcgcmV2aXNpb24gMS45MwotZGlmZiAtcCAt dSAtcjEuOTMgb2JqZmlsZXMuYwotLS0tIC4vZ2RiL29iamZpbGVzLmMJMjEgQXVnIDIwMDkgMTc6 NTc6MTcgLTAwMDAJMS45MwotKysrIC4vZ2RiL29iamZpbGVzLmMJMjYgQXVnIDIwMDkgMDc6MDc6 MDQgLTAwMDAKLUBAIC03OTAsMTUgKzc5MCw5IEBAIHFzb3J0X2NtcCAoY29uc3Qgdm9pZCAqYSwg Y29uc3Qgdm9pZCAqYikKLSAgIGNvbnN0IENPUkVfQUREUiBzZWN0Ml9hZGRyID0gb2JqX3NlY3Rp b25fYWRkciAoc2VjdDIpOwotIAotICAgaWYgKHNlY3QxX2FkZHIgPCBzZWN0Ml9hZGRyKQotLSAg ICB7Ci0tICAgICAgZ2RiX2Fzc2VydCAob2JqX3NlY3Rpb25fZW5kYWRkciAoc2VjdDEpIDw9IHNl Y3QyX2FkZHIpOwotLSAgICAgIHJldHVybiAtMTsKLS0gICAgfQotKyAgICByZXR1cm4gLTE7Ci0g ICBlbHNlIGlmIChzZWN0MV9hZGRyID4gc2VjdDJfYWRkcikKLS0gICAgewotLSAgICAgIGdkYl9h c3NlcnQgKHNlY3QxX2FkZHIgPj0gb2JqX3NlY3Rpb25fZW5kYWRkciAoc2VjdDIpKTsKLS0gICAg ICByZXR1cm4gMTsKLS0gICAgfQotKyAgICByZXR1cm4gMTsKLSAKLSAgIHJldHVybiAwOwotIH0K LUBAIC04MjMsMTIgKzgxNywxMzMgQEAgcHJlZmVycmVkX29ial9zZWN0aW9uIChzdHJ1Y3Qgb2Jq X3NlY3RpbwotICAgcmV0dXJuIGI7Ci0gfQotIAotKy8qIFJldHVybiAxIGlmIFNFQ1RJT04gc2hv dWxkIGJlIGluc2VydGVkIGludG8gdGhlIHNlY3Rpb24gbWFwLgotKyAgIFdlIHdhbnQgdG8gaW5z ZXJ0IG9ubHkgbm9uLW92ZXJsYXkgYW5kIG5vbi1UTFMgc2VjdGlvbi4gICovCi0rCi0rc3RhdGlj IGludAotK2luc2VydF9zZWN0aW9uX3AgKGNvbnN0IHN0cnVjdCBiZmQgKmFiZmQsCi0rCQkgIGNv bnN0IHN0cnVjdCBiZmRfc2VjdGlvbiAqc2VjdGlvbikKLSt7Ci0rICBjb25zdCBiZmRfdm1hIGxt YSA9IGJmZF9zZWN0aW9uX2xtYSAoYWJmZCwgc2VjdGlvbik7Ci0rCi0rICBpZiAobG1hICE9IDAg JiYgbG1hICE9IGJmZF9zZWN0aW9uX3ZtYSAoYWJmZCwgc2VjdGlvbikKLSsgICAgICAmJiAoYmZk X2dldF9maWxlX2ZsYWdzIChhYmZkKSAmIEJGRF9JTl9NRU1PUlkpID09IDApCi0rICAgIC8qIFRo aXMgaXMgYW4gb3ZlcmxheSBzZWN0aW9uLiAgSU5fTUVNT1JZIGNoZWNrIGlzIG5lZWRlZCB0byBh dm9pZAotKyAgICAgICBkaXNjYXJkaW5nIHNlY3Rpb25zIGZyb20gdGhlICJzeXN0ZW0gc3VwcGxp ZWQgRFNPIiAoYWthIHZkc28pCi0rICAgICAgIG9uIExpbnV4LiAgKi8KLSsgICAgcmV0dXJuIDA7 Ci0rICBpZiAoKGJmZF9nZXRfc2VjdGlvbl9mbGFncyAoYWJmZCwgc2VjdGlvbikgJiBTRUNfVEhS RUFEX0xPQ0FMKSAhPSAwKQotKyAgICAvKiBUaGlzIGlzIGEgVExTIHNlY3Rpb24uICAqLwotKyAg ICByZXR1cm4gMDsKLSsKLSsgIHJldHVybiAxOwotK30KLSsKLSsvKiBGaWx0ZXIgb3V0IG92ZXJs YXBwaW5nIHNlY3Rpb25zIHdoZXJlIG9uZSBzZWN0aW9uIGNhbWUgZnJvbSB0aGUgcmVhbAotKyAg IG9iamZpbGUsIGFuZCB0aGUgb3RoZXIgZnJvbSBhIHNlcGFyYXRlIGRlYnVnaW5mbyBmaWxlLgot KyAgIFJldHVybiB0aGUgc2l6ZSBvZiB0YWJsZSBhZnRlciByZWR1bmRhbnQgc2VjdGlvbnMgaGF2 ZSBiZWVuIGVsaW1pbmF0ZWQuICAqLwotKwotK3N0YXRpYyBpbnQKLStmaWx0ZXJfZGVidWdpbmZv X3NlY3Rpb25zIChzdHJ1Y3Qgb2JqX3NlY3Rpb24gKiptYXAsIGludCBtYXBfc2l6ZSkKLSt7Ci0r ICBpbnQgaSwgajsKLSsKLSsgIGZvciAoaSA9IDAsIGogPSAwOyBpIDwgbWFwX3NpemUgLSAxOyBp KyspCi0rICAgIHsKLSsgICAgICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKmNvbnN0IHNlY3QxID0gbWFw W2ldOwotKyAgICAgIHN0cnVjdCBvYmpfc2VjdGlvbiAqY29uc3Qgc2VjdDIgPSBtYXBbaSArIDFd OwotKyAgICAgIGNvbnN0IHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmaWxlMSA9IHNlY3QxLT5v YmpmaWxlOwotKyAgICAgIGNvbnN0IHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmaWxlMiA9IHNl Y3QyLT5vYmpmaWxlOwotKyAgICAgIGNvbnN0IENPUkVfQUREUiBzZWN0MV9hZGRyID0gb2JqX3Nl Y3Rpb25fYWRkciAoc2VjdDEpOwotKyAgICAgIGNvbnN0IENPUkVfQUREUiBzZWN0Ml9hZGRyID0g b2JqX3NlY3Rpb25fYWRkciAoc2VjdDIpOwotKwotKyAgICAgIGlmIChzZWN0MV9hZGRyID09IHNl Y3QyX2FkZHIKLSsJICAmJiAob2JqZmlsZTEtPnNlcGFyYXRlX2RlYnVnX29iamZpbGUgPT0gb2Jq ZmlsZTIKLSsJICAgICAgfHwgb2JqZmlsZTItPnNlcGFyYXRlX2RlYnVnX29iamZpbGUgPT0gb2Jq ZmlsZTEpKQotKwl7Ci0rCSAgbWFwW2orK10gPSBwcmVmZXJyZWRfb2JqX3NlY3Rpb24gKHNlY3Qx LCBzZWN0Mik7Ci0rCSAgKytpOwotKwl9Ci0rICAgICAgZWxzZQotKwltYXBbaisrXSA9IHNlY3Qx OwotKyAgICB9Ci0rCi0rICBpZiAoaSA8IG1hcF9zaXplKQotKyAgICBtYXBbaisrXSA9IG1hcFtp XTsKLSsKLSsgIC8qIFRoZSBtYXAgc2hvdWxkIG5vdCBoYXZlIHNocnVuayB0byBsZXNzIHRoYW4g aGFsZiB0aGUgb3JpZ2luYWwgc2l6ZS4gICovCi0rICBnZGJfYXNzZXJ0IChtYXBfc2l6ZSAvIDIg PD0gaik7Ci0rCi0rICByZXR1cm4gajsKLSt9Ci0rCi0rLyogRmlsdGVyIG91dCBvdmVybGFwcGlu ZyBzZWN0aW9ucywgaXNzdWluZyBhIHdhcm5pbmcgaWYgYW55IGFyZSBmb3VuZC4KLSsgICBPdmVy bGFwcGluZyBzZWN0aW9ucyBjb3VsZCByZWFsbHkgYmUgb3ZlcmxheSBzZWN0aW9ucyB3aGljaCB3 ZSBkaWRuJ3QKLSsgICBjbGFzc2lmeSBhcyBzdWNoIGluIGluc2VydF9zZWN0aW9uX3AsIG9yIHdl IGNvdWxkIGJlIGRlYWxpbmcgd2l0aCBhCi0rICAgY29ycnVwdCBiaW5hcnkuICAqLwotKwotK3N0 YXRpYyBpbnQKLStmaWx0ZXJfb3ZlcmxhcHBpbmdfc2VjdGlvbnMgKHN0cnVjdCBvYmpfc2VjdGlv biAqKm1hcCwgaW50IG1hcF9zaXplKQotK3sKLSsgIGludCBpLCBqOwotKwotKyAgZm9yIChpID0g MCwgaiA9IDA7IGkgPCBtYXBfc2l6ZSAtIDE7ICkKLSsgICAgewotKyAgICAgIGludCBrOwotKwot KyAgICAgIG1hcFtqKytdID0gbWFwW2ldOwotKyAgICAgIGZvciAoayA9IGkgKyAxOyBrIDwgbWFw X3NpemU7IGsrKykKLSsJewotKwkgIHN0cnVjdCBvYmpfc2VjdGlvbiAqY29uc3Qgc2VjdDEgPSBt YXBbaV07Ci0rCSAgc3RydWN0IG9ial9zZWN0aW9uICpjb25zdCBzZWN0MiA9IG1hcFtrXTsKLSsJ ICBjb25zdCBDT1JFX0FERFIgc2VjdDFfYWRkciA9IG9ial9zZWN0aW9uX2FkZHIgKHNlY3QxKTsK LSsJICBjb25zdCBDT1JFX0FERFIgc2VjdDJfYWRkciA9IG9ial9zZWN0aW9uX2FkZHIgKHNlY3Qy KTsKLSsJICBjb25zdCBDT1JFX0FERFIgc2VjdDFfZW5kYWRkciA9IG9ial9zZWN0aW9uX2VuZGFk ZHIgKHNlY3QxKTsKLSsKLSsJICBnZGJfYXNzZXJ0IChzZWN0MV9hZGRyIDw9IHNlY3QyX2FkZHIp OwotKwotKwkgIGlmIChzZWN0MV9lbmRhZGRyIDw9IHNlY3QyX2FkZHIpCi0rCSAgICBicmVhazsK LSsJICBlbHNlCi0rCSAgICB7Ci0rCSAgICAgIC8qIFdlIGhhdmUgYW4gb3ZlcmxhcC4gIFJlcG9y dCBpdC4gICovCi0rCi0rCSAgICAgIHN0cnVjdCBvYmpmaWxlICpjb25zdCBvYmpmMSA9IHNlY3Qx LT5vYmpmaWxlOwotKwkgICAgICBzdHJ1Y3Qgb2JqZmlsZSAqY29uc3Qgb2JqZjIgPSBzZWN0Mi0+ b2JqZmlsZTsKLSsKLSsJICAgICAgY29uc3Qgc3RydWN0IGJmZCAqY29uc3QgYWJmZDEgPSBvYmpm MS0+b2JmZDsKLSsJICAgICAgY29uc3Qgc3RydWN0IGJmZCAqY29uc3QgYWJmZDIgPSBvYmpmMi0+ b2JmZDsKLSsKLSsJICAgICAgY29uc3Qgc3RydWN0IGJmZF9zZWN0aW9uICpjb25zdCBiZmRzMSA9 IHNlY3QxLT50aGVfYmZkX3NlY3Rpb247Ci0rCSAgICAgIGNvbnN0IHN0cnVjdCBiZmRfc2VjdGlv biAqY29uc3QgYmZkczIgPSBzZWN0Mi0+dGhlX2JmZF9zZWN0aW9uOwotKwotKwkgICAgICBjb25z dCBDT1JFX0FERFIgc2VjdDJfZW5kYWRkciA9IG9ial9zZWN0aW9uX2VuZGFkZHIgKHNlY3QyKTsK LSsKLSsJICAgICAgc3RydWN0IGdkYmFyY2ggKmNvbnN0IGdkYmFyY2ggPSBnZXRfb2JqZmlsZV9h cmNoIChvYmpmMSk7Ci0rCi0rCSAgICAgIHdhcm5pbmcgKF8oIlVuZXhwZWN0ZWQgb3ZlcmxhcCBi ZXR3ZWVuICIKLSsJCQkgInNlY3Rpb24gYCVzJyBmcm9tIGAlcycgWyVzLCAlcykgYW5kICIKLSsJ CQkgInNlY3Rpb24gYCVzJyBmcm9tIGAlcycgWyVzLCAlcykiKSwKLSsJCSAgICAgICBiZmRfc2Vj dGlvbl9uYW1lIChhYmZkMSwgYmZkczEpLCBvYmpmMS0+bmFtZSwKLSsJCSAgICAgICBwYWRkcmVz cyAoZ2RiYXJjaCwgc2VjdDFfYWRkciksCi0rCQkgICAgICAgcGFkZHJlc3MgKGdkYmFyY2gsIHNl Y3QxX2VuZGFkZHIpLAotKwkJICAgICAgIGJmZF9zZWN0aW9uX25hbWUgKGFiZmQyLCBiZmRzMiks IG9iamYyLT5uYW1lLAotKwkJICAgICAgIHBhZGRyZXNzIChnZGJhcmNoLCBzZWN0Ml9hZGRyKSwK LSsJCSAgICAgICBwYWRkcmVzcyAoZ2RiYXJjaCwgc2VjdDJfZW5kYWRkcikpOwotKwkgICAgfQot Kwl9Ci0rICAgICAgaSA9IGs7Ci0rICAgIH0KLSsgIHJldHVybiBtYXBfc2l6ZTsKLSt9Ci0rCi0r Ci0gLyogVXBkYXRlIFBNQVAsIFBNQVBfU0laRSB3aXRoIG5vbi1UTFMgc2VjdGlvbnMgZnJvbSBh bGwgb2JqZmlsZXMuICAqLwotIAotIHN0YXRpYyB2b2lkCi0gdXBkYXRlX3NlY3Rpb25fbWFwIChz dHJ1Y3Qgb2JqX3NlY3Rpb24gKioqcG1hcCwgaW50ICpwbWFwX3NpemUpCi0gewotLSAgaW50IG1h cF9zaXplLCBpLCBqOwotKyAgaW50IGFsbG9jX3NpemUsIG1hcF9zaXplLCBpOwotICAgc3RydWN0 IG9ial9zZWN0aW9uICpzLCAqKm1hcDsKLSAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOwotIAot QEAgLTgzNyw1NSArOTUyLDI3IEBAIHVwZGF0ZV9zZWN0aW9uX21hcCAoc3RydWN0IG9ial9zZWN0 aW9uICoKLSAgIG1hcCA9ICpwbWFwOwotICAgeGZyZWUgKG1hcCk7Ci0gCi0tI2RlZmluZSBpbnNl cnRfcChvYmpmLCBzZWMpIFwKLS0gICgoYmZkX2dldF9zZWN0aW9uX2ZsYWdzICgob2JqZiktPm9i ZmQsIChzZWMpLT50aGVfYmZkX3NlY3Rpb24pIFwKLS0gICAgJiBTRUNfVEhSRUFEX0xPQ0FMKSA9 PSAwKQotLQotLSAgbWFwX3NpemUgPSAwOwotKyAgYWxsb2Nfc2l6ZSA9IDA7Ci0gICBBTExfT0JK U0VDVElPTlMgKG9iamZpbGUsIHMpCi0tICAgIGlmIChpbnNlcnRfcCAob2JqZmlsZSwgcykpCi0t ICAgICAgbWFwX3NpemUgKz0gMTsKLSsgICAgaWYgKGluc2VydF9zZWN0aW9uX3AgKG9iamZpbGUt Pm9iZmQsIHMtPnRoZV9iZmRfc2VjdGlvbikpCi0rICAgICAgYWxsb2Nfc2l6ZSArPSAxOwotIAot LSAgbWFwID0geG1hbGxvYyAobWFwX3NpemUgKiBzaXplb2YgKCptYXApKTsKLSsgIG1hcCA9IHht YWxsb2MgKGFsbG9jX3NpemUgKiBzaXplb2YgKCptYXApKTsKLSAKLSAgIGkgPSAwOwotICAgQUxM X09CSlNFQ1RJT05TIChvYmpmaWxlLCBzKQotLSAgICBpZiAoaW5zZXJ0X3AgKG9iamZpbGUsIHMp KQotKyAgICBpZiAoaW5zZXJ0X3NlY3Rpb25fcCAob2JqZmlsZS0+b2JmZCwgcy0+dGhlX2JmZF9z ZWN0aW9uKSkKLSAgICAgICBtYXBbaSsrXSA9IHM7Ci0gCi0tI3VuZGVmIGluc2VydF9wCi0tCi0t ICBxc29ydCAobWFwLCBtYXBfc2l6ZSwgc2l6ZW9mICgqbWFwKSwgcXNvcnRfY21wKTsKLS0KLS0g IC8qIFdpdGggc2VwYXJhdGUgZGVidWdpbmZvIGZpbGVzLCB3ZSBtYXkgaGF2ZSB1cCB0byB0d28g KGFsbW9zdCkKLS0gICAgIGlkZW50aWNhbCBjb3BpZXMgb2Ygc29tZSBvYmpfc2VjdGlvbnMgaW4g dGhlIG1hcC4KLS0gICAgIEZpbHRlciBvdXQgZHVwbGljYXRlcy4gICovCi0tICBmb3IgKGkgPSAw LCBqID0gMDsgaSA8IG1hcF9zaXplOyArK2kpCi0tICAgIHsKLS0gICAgICBzdHJ1Y3Qgb2JqX3Nl Y3Rpb24gKnNlY3QxID0gbWFwW2ldOwotLSAgICAgIHN0cnVjdCBvYmpfc2VjdGlvbiAqc2VjdDIg PSAoaSArIDEgPCBtYXBfc2l6ZSkgPyBtYXBbaSArIDFdIDogTlVMTDsKLS0KLS0gICAgICBpZiAo c2VjdDIgPT0gTlVMTAotLQkgIHx8IG9ial9zZWN0aW9uX2FkZHIgKHNlY3QxKSAhPSBvYmpfc2Vj dGlvbl9hZGRyIChzZWN0MikpCi0tCW1hcFtqKytdID0gc2VjdDE7Ci0tICAgICAgZWxzZQotLQl7 Ci0tCSAgbWFwW2orK10gPSBwcmVmZXJyZWRfb2JqX3NlY3Rpb24gKHNlY3QxLCBzZWN0Mik7Ci0t CSAgKytpOwotLQl9Ci0tICAgIH0KLS0KLS0gIGlmIChqIDwgbWFwX3NpemUpCi0tICAgIHsKLS0g ICAgICAvKiBTb21lIGR1cGxpY2F0ZXMgd2VyZSBlbGltaW5hdGVkLgotLQkgVGhlIG5ldyBzaXpl IHNob3VsZG4ndCBiZSBsZXNzIHRoYW4gaGFsZiBvZiB0aGUgb3JpZ2luYWwuICovCi0tICAgICAg Z2RiX2Fzc2VydCAobWFwX3NpemUgLyAyIDw9IGopOwotLSAgICAgIG1hcF9zaXplID0gajsKLS0K LS0gICAgICBtYXAgPSB4cmVhbGxvYyAobWFwLCBtYXBfc2l6ZSAqIHNpemVvZiAoKm1hcCkpOyAg LyogVHJpbSBleGNlc3Mgc3BhY2UuICAqLwotLSAgICB9Ci0rICBxc29ydCAobWFwLCBhbGxvY19z aXplLCBzaXplb2YgKCptYXApLCBxc29ydF9jbXApOwotKyAgbWFwX3NpemUgPSBmaWx0ZXJfZGVi dWdpbmZvX3NlY3Rpb25zKG1hcCwgYWxsb2Nfc2l6ZSk7Ci0rICBtYXBfc2l6ZSA9IGZpbHRlcl9v dmVybGFwcGluZ19zZWN0aW9ucyhtYXAsIG1hcF9zaXplKTsKLSsKLSsgIGlmIChtYXBfc2l6ZSA8 IGFsbG9jX3NpemUpCi0rICAgIC8qIFNvbWUgc2VjdGlvbnMgd2VyZSBlbGltaW5hdGVkLiAgVHJp bSBleGNlc3Mgc3BhY2UuICAqLwotKyAgICBtYXAgPSB4cmVhbGxvYyAobWFwLCBtYXBfc2l6ZSAq IHNpemVvZiAoKm1hcCkpOwotICAgZWxzZQotLSAgICBnZGJfYXNzZXJ0IChqID09IG1hcF9zaXpl KTsKLSsgICAgZ2RiX2Fzc2VydCAoYWxsb2Nfc2l6ZSA9PSBtYXBfc2l6ZSk7Ci0gCi0gICAqcG1h cCA9IG1hcDsKLSAgICpwbWFwX3NpemUgPSBtYXBfc2l6ZTsKCmRpZmYgLS1naXQgYS9nZGIuc3Bl YyBiL2dkYi5zcGVjCmluZGV4IGJjZDdiMzEuLjQ1ZTI4ZjkgMTAwNjQ0Ci0tLSBhL2dkYi5zcGVj CisrKyBiL2dkYi5zcGVjCkBAIC0xMCw3ICsxMCw3IEBAIE5hbWU6IGdkYiV7P193aXRoX2RlYnVn Oi1kZWJ1Z30KICMgU2V0IHZlcnNpb24gdG8gY29udGVudHMgb2YgZ2RiL3ZlcnNpb24uaW4uCiAj IE5PVEU6IHRoZSBGU0YgZ2RiIHZlcnNpb25zIGFyZSBudW1iZXJlZCBOLk0gZm9yIG9mZmljaWFs IHJlbGVhc2VzLCBsaWtlIDYuMyAKICMgYW5kLCBzaW5jZSBKYW51YXJ5IDIwMDUsIFguWS5aLmRh dGUgZm9yIGRhaWx5IHNuYXBzaG90cywgbGlrZSA2LjMuNTAuMjAwNTAxMTIgIyAoZGFpbHkgc25h cHNob3QgZnJvbSBtYWlsaW5lKSwgb3IgNi4zLjAuMjAwNDAxMTIgKGhlYWQgb2YgdGhlIHJlbGVh c2UgYnJhbmNoKS4KLVZlcnNpb246IDYuOC41MC4yMDA5MDkxMAorVmVyc2lvbjogNi44LjkxLjIw MDkwOTE3CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZl ZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBg bmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0 ZXN0aW5nLgpAQCAtMTgsNyArMTgsNyBAQCBSZWxlYXNlOiAxJXs/X3dpdGhfdXBzdHJlYW06LnVw c3RyZWFtfSV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKwogR3JvdXA6IERldmVsb3BtZW50L0Rl YnVnZ2VycwotU291cmNlOiBmdHA6Ly9zb3VyY2V3YXJlLm9yZy9wdWIvZ2RiL3NuYXBzaG90cy9j dXJyZW50L2dkYi0le3ZlcnNpb259LnRhci5iejIKK1NvdXJjZTogZnRwOi8vc291cmNld2FyZS5v cmcvcHViL2dkYi9zbmFwc2hvdHMvYnJhbmNoL2dkYi0le3ZlcnNpb259LnRhci5iejIKIEJ1aWxk cm9vdDogJShta3RlbXAgLXVkICV7X3RtcHBhdGh9LyV7bmFtZX0tJXt2ZXJzaW9ufS0le3JlbGVh c2V9LVhYWFhYWCkKIFVSTDogaHR0cDovL2dudS5vcmcvc29mdHdhcmUvZ2RiLwogCkBAIC0xNDks OSArMTQ5LDYgQEAgUGF0Y2gxNjM6IGdkYi02LjMtaW5oZXJpdGFuY2V0ZXN0LTIwMDUwNzI2LnBh dGNoCiAjIEFkZCByZWFkbmV2ZXIgb3B0aW9uCiBQYXRjaDE2NDogZ2RiLTYuMy1yZWFkbmV2ZXIt MjAwNTA5MDcucGF0Y2gKIAotIyBGaXggZnJhbWUgcG9pbnRlciBmb3IgaWE2NCBzaWd0cmFtcCBm cmFtZQotUGF0Y2gxNjY6IGdkYi02LjMtaWE2NC1zaWd0cmFtcC1mcC0yMDA1MDkyNi5wYXRjaAot CiAjIEZpeCBpYTY0IGdkYiBwcm9ibGVtIHdpdGggdXNlci1zcGVjaWZpZWQgU0lHSUxMIGhhbmRs aW5nCiBQYXRjaDE2OTogZ2RiLTYuMy1pYTY0LXNpZ2lsbC0yMDA1MTExNS5wYXRjaAogCkBAIC0z NjAsOSArMzU3LDYgQEAgUGF0Y2gzNjA6IGdkYi02LjgtYno0NTcxODctbGFyZ2VmaWxlLXRlc3Qu cGF0Y2gKICMgRml4IGNvbXBhdGliaWxpdHkgb2YgLS13aXRoLXN5c3RlbS1yZWFkbGluZSBhbmQg cmVhZGxpbmUtNi4wKy4KIFBhdGNoMzc1OiBnZGItcmVhZGxpbmUtNi4wLnBhdGNoCiAKLSMgVGVt cG9yYXJpbHkgZGlzYWJsZSBhc3NlcnRpb24gY2hlY2tzIGNyYXNoaW5nIGluIHFzb3J0X2NtcCAo QlogNTE1NDM0KS4KLVBhdGNoMzc4OiBnZGItYno1MTU0MzQtcXNvcnRfY21wLnBhdGNoCi0KIEJ1 aWxkUmVxdWlyZXM6IG5jdXJzZXMtZGV2ZWwgdGV4aW5mbyBnZXR0ZXh0IGZsZXggYmlzb24gZXhw YXQtZGV2ZWwKIFJlcXVpcmVzOiByZWFkbGluZQogQnVpbGRSZXF1aXJlczogcmVhZGxpbmUtZGV2 ZWwKQEAgLTQ3OSw3ICs0NzMsNiBAQCBybSAtZiBnZGIvanYtZXhwLmMgZ2RiL20yLWV4cC5jIGdk Yi9vYmpjLWV4cC5jIGdkYi9wLWV4cC5jCiAlcGF0Y2gxNjIgLXAxCiAlcGF0Y2gxNjMgLXAxCiAl cGF0Y2gxNjQgLXAxCi0lcGF0Y2gxNjYgLXAxCiAlcGF0Y2gxNjkgLXAxCiAlcGF0Y2gxNzAgLXAx CiAlcGF0Y2gxNzYgLXAxCkBAIC01NTEsNyArNTQ0LDYgQEAgcm0gLWYgZ2RiL2p2LWV4cC5jIGdk Yi9tMi1leHAuYyBnZGIvb2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBhdGNoMzUyIC1wMQogJXBh dGNoMzYwIC1wMQogJXBhdGNoMzc1IC1wMQotJXBhdGNoMzc4IC1wMQogJXBhdGNoMTI0IC1wMQog CiBmaW5kIC1uYW1lICIqLm9yaWciIHwgeGFyZ3Mgcm0gLWYKQEAgLTgxMSw2ICs4MDMsNyBAQCBm aQogJXtweXRob25fc2l0ZWxpYn0vZ2RiCiAlZW5kaWYJIyAwJXshP193aXRob3V0X3B5dGhvbjox fQogJWVuZGlmCSMgMCV7IT9fd2l0aF91cHN0cmVhbToxfQorJXtfZGF0YWRpcn0vZ2RiCiAle19p bmZvZGlyfS9hbm5vdGF0ZS5pbmZvKgogJXtfaW5mb2Rpcn0vZ2RiLmluZm8qCiAle19pbmZvZGly fS9nZGJpbnQuaW5mbyoKQEAgLTgyNSw2ICs4MTgsMTEgQEAgZmkKICVlbmRpZgogCiAlY2hhbmdl bG9nCisqIFRodSBTZXAgMTcgMjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4gLSA2LjguOTEuMjAwOTA5MTctMQorLSBVcGdyYWRlIHRvIHRoZSBGU0YgR0RCIGdk Yi03LjAgYnJhbmNoIGFuZCBzbmFwc2hvdDogNi44LjkxLjIwMDkwOTE3CistIGFyY2hlci1qYW5r cmF0b2NodmlsLWZlZG9yYTEyIGNvbW1pdDogMTZmM2YwMWNjMmNiYzE1MjgzNDYyZWFhYmRmY2Rl OTJjZjQyY2RjNgorLSBEcm9wIHRoZSBxc29ydF9jbXAgd29ya2Fyb3VuZCBhcyByZXNvbHZlZCBp biBGU0YgR0RCIG5vdyAoQlogNTE1NDM0KS4KKwogKiBUaHUgU2VwIDEwIDIwMDkgSmFuIEtyYXRv Y2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNi44LjUwLjIwMDkwOTEwLTEKIC0g VXBncmFkZSB0byB0aGUgRlNGIEdEQiBnZGItNi44LjUwIHNuYXBzaG90OiA2LjguNTAuMjAwOTA5 MTAKIC0gYXJjaGVyLWphbmtyYXRvY2h2aWwtZmVkb3JhMTIgY29tbWl0OiA5NDFlYjQ4N2E0Mjkz M2U0NDJjYjRkMTEzNDRjZGE5NmVjYjhhMDRkCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJj ZXMKaW5kZXggOTkxZGZiMC4uYmRmOWNiMCAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3Vy Y2VzCkBAIC0xICsxIEBACi00NzZlMDA1YjhiYjMzYzVjM2IzZjBiN2JkOTM5ODhiYyAgZ2RiLTYu OC41MC4yMDA5MDkxMC50YXIuYnoyCitlYWVkOTE1MGIyMTljOGVlNTZiYjY3NmUzMmE5ZDJhNSAg Z2RiLTYuOC45MS4yMDA5MDkxNy50YXIuYnoyCg==