From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: - Upgrade to the FSF GDB gdb-6.8.50 snapshot: 6.8.50.20090910 Date: Thu, 23 Jul 2026 18:29:14 GMT Message-ID: <178483135456.1.3821834589441796652.rpms-gdb-806f8c893c8b@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 806f8c893c8bfcce9672ad50f4cb226cc8c10b59 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogODA2ZjhjODkzYzhiZmNjZTk2NzJhZDUwZjRjYjIyNmNjOGMxMGI1OQog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amtyYXRvY2hAZmVkb3JhcHJvamVj dC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMDktMDktMTBUMjE6Mzc6NDErMDA6MDAKICAg ICAgICAgICAgU3RhdHMgIDogKzQyODUvLTM0MTkgaW4gMTYgZmlsZShzKQogICAgICAgICAgICBV UkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2dkYi9jLzgwNmY4Yzg5 M2M4YmZjY2U5NjcyYWQ1MGY0Y2IyMjZjYzhjMTBiNTk/YnJhbmNoPWZpeC1kdXAtcGF0Y2gKCiAg ICAgICAgICAgIExvZzoKICAgICAgICAgICAgLSBVcGdyYWRlIHRvIHRoZSBGU0YgR0RCIGdkYi02 LjguNTAgc25hcHNob3Q6IDYuOC41MC4yMDA5MDkxMAotIGFyY2hlci1qYW5rcmF0b2NodmlsLWZl ZG9yYTEyIGNvbW1pdDoKICAgIDk0MWViNDg3YTQyOTMzZTQ0MmNiNGQxMTM0NGNkYTk2ZWNiOGEw NGQKLSBbbmV4dC1vdmVyLXRocm93XSBGaXggZXhjZXB0aW9ucyB0aHJvd24gZHVyaW5nIG5leHQg KFRvbSBUcm9tZXkpLgotIFticF9sb2NhdGlvbi1hY2NlbF0gRG8gbm90IChtdWNoKSBzbG93IGRv d24gb24gNTAwKyBicmVha3BvaW50cyAobWUpLgoKLS0tCmRpZmYgLS1naXQgYS8uY3ZzaWdub3Jl IGIvLmN2c2lnbm9yZQppbmRleCBjODhmNjFiLi42ZjUzYTRiIDEwMDY0NAotLS0gYS8uY3ZzaWdu b3JlCisrKyBiLy5jdnNpZ25vcmUKQEAgLTEgKzEgQEAKLWdkYi02LjguNTAuMjAwOTA4MTgudGFy LmJ6MgorZ2RiLTYuOC41MC4yMDA5MDkxMC50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1s YXJnZS1jb3JlLTIwMDUxMjA2LnBhdGNoIGIvZ2RiLTYuMy1sYXJnZS1jb3JlLTIwMDUxMjA2LnBh dGNoCmluZGV4IDliNDRkNWIuLjI4NzZiNzUgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtbGFyZ2UtY29y ZS0yMDA1MTIwNi5wYXRjaAorKysgYi9nZGItNi4zLWxhcmdlLWNvcmUtMjAwNTEyMDYucGF0Y2gK QEAgLTI1LDEwICsyNSwxMCBAQAogCiAJUG9ydCB0byBHREItNi43LgogCi1JbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS1tZW0uYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL3N5bWZpbGUtbWVtLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAz Lm9yaWcvZ2RiL3N5bWZpbGUtbWVtLmMJMjAwOS0wOC0wMyAxNjowMzowMC4wMDAwMDAwMDAgKzAy MDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxlLW1lbS5jCTIwMDktMDgtMDMg MTY6MDM6MTcuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dk Yi9zeW1maWxlLW1lbS5jCTIwMDktMDctMDIgMTk6MjE6MDYuMDAwMDAwMDAwICswMjAwCisrKysg Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc3ltZmlsZS1tZW0uYwkyMDA5LTA5LTA5IDE5OjA2OjU3 LjAwMDAwMDAwMCArMDIwMAogQEAgLTU2LDYgKzU2LDE0IEBACiAgI2luY2x1ZGUgImVsZi9jb21t b24uaCIKICAKQEAgLTUzLDEwICs1MywxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvc3ltZmlsZS1tZW0uYwogICAgaWYgKG5iZmQgPT0gTlVMTCkKICAgICAgZXJyb3IgKF8oIkZh aWxlZCB0byByZWFkIGEgdmFsaWQgb2JqZWN0IGZpbGUgaW1hZ2UgZnJvbSBtZW1vcnkuIikpOwog IAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5jCitJbmRleDogZ2RiLTYu OC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIw MDkwODAzLm9yaWcvZ2RiL3RhcmdldC5jCTIwMDktMDgtMDMgMTY6MDM6MDAuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmMJMjAwOS0wOC0wMyAxNjow MzoxNy4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3Rh cmdldC5jCTIwMDktMDktMDkgMTk6MDU6NTYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmMJMjAwOS0wOS0wOSAxOTowODoxMS4wMDAwMDAwMDAgKzAy MDAKIEBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBpbnQgbm9zeW1ib2wgKGNoYXIgKiwgQ09SRV9B RERSICoKICAKICBzdGF0aWMgdm9pZCB0Y29tcGxhaW4gKHZvaWQpIEFUVFJfTk9SRVRVUk47CkBA IC02Niw3ICs2Niw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90YXJnZXQuYwog IAogIHN0YXRpYyBpbnQgcmV0dXJuX3plcm8gKHZvaWQpOwogIAotQEAgLTQ1Miw3ICs0NTIsNyBA QCB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKHZvaWQpCitAQCAtNDkyLDcgKzQ5Miw3IEBAIHRh cmdldF90ZXJtaW5hbF9pbmZlcmlvciAodm9pZCkKICAgICgqY3VycmVudF90YXJnZXQudG9fdGVy bWluYWxfaW5mZXJpb3IpICgpOwogIH0KICAKQEAgLTc1LDcgKzc1LDcgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5jCiAgbm9tZW1vcnkgKENPUkVfQUREUiBtZW1hZGRy LCBjaGFyICpteWFkZHIsIGludCBsZW4sIGludCB3cml0ZSwKICAJICBzdHJ1Y3QgdGFyZ2V0X29w cyAqdCkKICB7Ci1AQCAtNjcwLDcgKzY3MCw3IEBAIHVwZGF0ZV9jdXJyZW50X3RhcmdldCAodm9p ZCkKK0BAIC03MTEsNyArNzExLDcgQEAgdXBkYXRlX2N1cnJlbnRfdGFyZ2V0ICh2b2lkKQogIAkg ICAgKHZvaWQgKCopIChzdHJ1Y3QgcmVnY2FjaGUgKikpCiAgCSAgICBub3Byb2Nlc3MpOwogICAg ZGVfZmF1bHQgKGRlcHJlY2F0ZWRfeGZlcl9tZW1vcnksCkBAIC04NCw3ICs4NCw3IEBAIEluZGV4 OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90YXJnZXQuYwogIAkgICAgbm9tZW1vcnkpOwogICAg ZGVfZmF1bHQgKHRvX2ZpbGVzX2luZm8sCiAgCSAgICAodm9pZCAoKikgKHN0cnVjdCB0YXJnZXRf b3BzICopKQotQEAgLTEzODEsNyArMTM4MSw3IEBAIHRhcmdldF94ZmVyX3BhcnRpYWwgKHN0cnVj dCB0YXJnZXRfb3BzICoKK0BAIC0xNDQzLDcgKzE0NDMsNyBAQCB0YXJnZXRfeGZlcl9wYXJ0aWFs IChzdHJ1Y3QgdGFyZ2V0X29wcyAqCiAgICAgaXQgbWFrZXMgbm8gcHJvZ3Jlc3MsIGFuZCB0aGVu IHJldHVybiBob3cgbXVjaCB3YXMgdHJhbnNmZXJyZWQpLiAqLwogIAogIGludApAQCAtOTMsNyAr OTMsMTYgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5jCiAgewogICAg LyogRGlzcGF0Y2ggdG8gdGhlIHRvcG1vc3QgdGFyZ2V0LCBub3QgdGhlIGZsYXR0ZW5lZCBjdXJy ZW50X3RhcmdldC4KICAgICAgIE1lbW9yeSBhY2Nlc3NlcyBjaGVjayB0YXJnZXQtPnRvX2hhc18o YWxsXyltZW1vcnksIGFuZCB0aGUKLUBAIC0xMzk0LDcgKzEzOTQsNyBAQCB0YXJnZXRfcmVhZF9t ZW1vcnkgKENPUkVfQUREUiBtZW1hZGRyLCBnCitAQCAtMTQ1OSw3ICsxNDU5LDcgQEAgdGFyZ2V0 X3JlYWRfbWVtb3J5IChDT1JFX0FERFIgbWVtYWRkciwgZworICAgIHRoZSB0YXJnZXQncyBzdGFj ay4gIFRoaXMgbWF5IHRyaWdnZXIgZGlmZmVyZW50IGNhY2hlIGJlaGF2aW9yLiAgKi8KKyAKKyBp bnQKKy10YXJnZXRfcmVhZF9zdGFjayAoQ09SRV9BRERSIG1lbWFkZHIsIGdkYl9ieXRlICpteWFk ZHIsIGludCBsZW4pCisrdGFyZ2V0X3JlYWRfc3RhY2sgKENPUkVfQUREUiBtZW1hZGRyLCBnZGJf Ynl0ZSAqbXlhZGRyLCBMT05HRVNUIGxlbikKKyB7CisgICAvKiBEaXNwYXRjaCB0byB0aGUgdG9w bW9zdCB0YXJnZXQsIG5vdCB0aGUgZmxhdHRlbmVkIGN1cnJlbnRfdGFyZ2V0LgorICAgICAgTWVt b3J5IGFjY2Vzc2VzIGNoZWNrIHRhcmdldC0+dG9faGFzXyhhbGxfKW1lbW9yeSwgYW5kIHRoZQor QEAgLTE0NzMsNyArMTQ3Myw3IEBAIHRhcmdldF9yZWFkX3N0YWNrIChDT1JFX0FERFIgbWVtYWRk ciwgZ2QKICB9CiAgCiAgaW50CkBAIC0xMDIsNyArMTExLDcgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3RhcmdldC5jCiAgewogICAgLyogRGlzcGF0Y2ggdG8gdGhlIHRvcG1vc3Qg dGFyZ2V0LCBub3QgdGhlIGZsYXR0ZW5lZCBjdXJyZW50X3RhcmdldC4KICAgICAgIE1lbW9yeSBh Y2Nlc3NlcyBjaGVjayB0YXJnZXQtPnRvX2hhc18oYWxsXyltZW1vcnksIGFuZCB0aGUKLUBAIC0y ODYxLDggKzI4NjEsOCBAQCBkZWJ1Z190b19wcmVwYXJlX3RvX3N0b3JlIChzdHJ1Y3QgcmVnY2Fj CitAQCAtMjk2NCw4ICsyOTY0LDggQEAgZGVidWdfdG9fcHJlcGFyZV90b19zdG9yZSAoc3RydWN0 IHJlZ2NhYwogICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAidGFyZ2V0X3ByZXBh cmVfdG9fc3RvcmUgKClcbiIpOwogIH0KICAKQEAgLTExMyw3ICsxMjIsNyBAQCBJbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmMKICAJCQkgICAgICBpbnQgd3JpdGUsIHN0cnVj dCBtZW1fYXR0cmliICphdHRyaWIsCiAgCQkJICAgICAgc3RydWN0IHRhcmdldF9vcHMgKnRhcmdl dCkKICB7Ci1AQCAtMjg3Miw4ICsyODcyLDggQEAgZGVwcmVjYXRlZF9kZWJ1Z194ZmVyX21lbW9y eSAoQ09SRV9BRERSIAorQEAgLTI5NzUsOCArMjk3NSw4IEBAIGRlcHJlY2F0ZWRfZGVidWdfeGZl cl9tZW1vcnkgKENPUkVfQUREUiAKICAJCQkJCQlhdHRyaWIsIHRhcmdldCk7CiAgCiAgICBmcHJp bnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCkBAIC0xMjQsMTEgKzEzMywxMSBAQCBJbmRleDog Z2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmMKICAJCSAgICAgIHdyaXRlID8gIndyaXRl IiA6ICJyZWFkIiwgcmV0dmFsKTsKICAKICAgIGlmIChyZXR2YWwgPiAwKQotSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5oCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9n ZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2Ri L3RhcmdldC5oCTIwMDktMDgtMDMgMTY6MDM6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmgJMjAwOS0wOC0wMyAxNjowMzoxNy4wMDAwMDAwMDAg KzAyMDAKLUBAIC0zNjMsMTAgKzM2MywxMCBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworLS0tIGdkYi02 LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvdGFyZ2V0LmgJMjAwOS0wOS0wOSAxOTowNTo1Ni4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90YXJnZXQuaAkyMDA5LTA5 LTA5IDE5OjA3OjM2LjAwMDAwMDAwMCArMDIwMAorQEAgLTM2NiwxMCArMzY2LDEwIEBAIHN0cnVj dCB0YXJnZXRfb3BzCiAgICAgICAgIE5PVEU6IGNhZ25leS8yMDA0LTEwLTAxOiBUaGlzIGhhcyBi ZWVuIGVudGlyZWx5IHN1cGVyc2VlZGVkIGJ5CiAgICAgICAgIHRvX3hmZXJfcGFydGlhbCBhbmQg aW5mZXJpb3IgaW5oZXJpdGFuY2UuICAqLwogIApAQCAtMTQzLDUzICsxNTIsNTggQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3RhcmdldC5oCiAgCiAgICAgIHZvaWQgKCp0b19maWxl c19pbmZvKSAoc3RydWN0IHRhcmdldF9vcHMgKik7CiAgICAgIGludCAoKnRvX2luc2VydF9icmVh a3BvaW50KSAoc3RydWN0IGdkYmFyY2ggKiwgc3RydWN0IGJwX3RhcmdldF9pbmZvICopOwotQEAg LTY3NSwxMCArNjc1LDEwIEBAIGV4dGVybiBEQ0FDSEUgKnRhcmdldF9kY2FjaGU7CitAQCAtNjgw LDEyICs2ODAsMTIgQEAgZXh0ZXJuIHZvaWQgdGFyZ2V0X2RjYWNoZV9pbnZhbGlkYXRlICh2bwog IAogIGV4dGVybiBpbnQgdGFyZ2V0X3JlYWRfc3RyaW5nIChDT1JFX0FERFIsIGNoYXIgKiosIGlu dCwgaW50ICopOwogIAogLWV4dGVybiBpbnQgdGFyZ2V0X3JlYWRfbWVtb3J5IChDT1JFX0FERFIg bWVtYWRkciwgZ2RiX2J5dGUgKm15YWRkciwgaW50IGxlbik7CiArZXh0ZXJuIGludCB0YXJnZXRf cmVhZF9tZW1vcnkgKENPUkVfQUREUiBtZW1hZGRyLCBnZGJfYnl0ZSAqbXlhZGRyLCBMT05HRVNU IGxlbik7CiAgCistZXh0ZXJuIGludCB0YXJnZXRfcmVhZF9zdGFjayAoQ09SRV9BRERSIG1lbWFk ZHIsIGdkYl9ieXRlICpteWFkZHIsIGludCBsZW4pOworK2V4dGVybiBpbnQgdGFyZ2V0X3JlYWRf c3RhY2sgKENPUkVfQUREUiBtZW1hZGRyLCBnZGJfYnl0ZSAqbXlhZGRyLCBMT05HRVNUIGxlbik7 CisgCiAgZXh0ZXJuIGludCB0YXJnZXRfd3JpdGVfbWVtb3J5IChDT1JFX0FERFIgbWVtYWRkciwg Y29uc3QgZ2RiX2J5dGUgKm15YWRkciwKIC0JCQkJaW50IGxlbik7CiArCQkJCUxPTkdFU1QgbGVu KTsKICAKICAvKiBGZXRjaGVzIHRoZSB0YXJnZXQncyBtZW1vcnkgbWFwLiAgSWYgb25lIGlzIGZv dW5kIGl0IGlzIHNvcnRlZAogICAgIGFuZCByZXR1cm5lZCwgYWZ0ZXIgc29tZSBjb25zaXN0ZW5j eSBjaGVja2luZy4gIE90aGVyd2lzZSwgTlVMTAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMv Z2RiL2RjYWNoZS5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZGNhY2hlLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2RjYWNoZS5jCTIwMDkt MDgtMDMgMTY6MDM6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvZGNhY2hlLmMJMjAwOS0wOC0wMyAxNjowMzoxNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC01MjQs OSArNTI0LDkgQEAgZGNhY2hlX2ZyZWUgKERDQUNIRSAqZGNhY2hlKQorLS0tIGdkYi02LjguNTAu MjAwOTA5MDkub3JpZy9nZGIvZGNhY2hlLmMJMjAwOS0wOC0zMSAyMjoxODo0NS4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9kY2FjaGUuYwkyMDA5LTA5LTA5IDE5 OjA5OjIxLjAwMDAwMDAwMCArMDIwMAorQEAgLTM5MCwxMCArMzkwLDEwIEBAIGRjYWNoZV9mcmVl IChEQ0FDSEUgKmRjYWNoZSkKICAKLSAgICBUaGlzIHJvdXRpbmUgaXMgaW5kZW5kZWQgdG8gYmUg Y2FsbGVkIGJ5IHJlbW90ZV94ZmVyXyBmdW5jdGlvbnMuICovCisgICAgVGhlIG1lYW5pbmcgb2Yg dGhlIHJlc3VsdCBpcyB0aGUgc2FtZSBhcyBmb3IgdGFyZ2V0X3dyaXRlLiAgKi8KICAKIC1pbnQK ICtMT05HRVNUCi0gZGNhY2hlX3hmZXJfbWVtb3J5IChEQ0FDSEUgKmRjYWNoZSwgQ09SRV9BRERS IG1lbWFkZHIsIGdkYl9ieXRlICpteWFkZHIsCisgZGNhY2hlX3hmZXJfbWVtb3J5IChzdHJ1Y3Qg dGFyZ2V0X29wcyAqb3BzLCBEQ0FDSEUgKmRjYWNoZSwKKyAJCSAgICBDT1JFX0FERFIgbWVtYWRk ciwgZ2RiX2J5dGUgKm15YWRkciwKIC0JCSAgICBpbnQgbGVuLCBpbnQgc2hvdWxkX3dyaXRlKQog KwkJICAgIExPTkdFU1QgbGVuLCBpbnQgc2hvdWxkX3dyaXRlKQogIHsKICAgIGludCBpOwotICAg aW50ICgqeGZ1bmMpIChEQ0FDSEUgKmRjYWNoZSwgQ09SRV9BRERSIGFkZHIsIGdkYl9ieXRlICpw dHIpOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2RjYWNoZS5oCisgICBpbnQgcmVz OworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2RjYWNoZS5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9kY2FjaGUuaAkyMDA5LTA4LTAzIDE2OjAz OjAwLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2RjYWNoZS5o CTIwMDktMDgtMDMgMTY6MDM6MTcuMDAwMDAwMDAwICswMjAwCi1AQCAtMzUsNyArMzUsNyBAQCB2 b2lkIGRjYWNoZV9mcmVlIChEQ0FDSEUgKik7CistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmln L2dkYi9kY2FjaGUuaAkyMDA5LTA4LTMxIDIyOjE4OjQ1LjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi02LjguNTAuMjAwOTA5MDkvZ2RiL2RjYWNoZS5oCTIwMDktMDktMDkgMTk6MDg6NTQuMDAwMDAw MDAwICswMjAwCitAQCAtMzUsOCArMzUsOCBAQCB2b2lkIGRjYWNoZV9mcmVlIChEQ0FDSEUgKik7 CiAgCiAgLyogU2ltcGxlIHRvIGNhbGwgZnJvbSA8cmVtb3RlPl94ZmVyX21lbW9yeSAqLwogIAot LWludCBkY2FjaGVfeGZlcl9tZW1vcnkgKERDQUNIRSAqY2FjaGUsIENPUkVfQUREUiBtZW0sIGdk Yl9ieXRlICpteSwKLS0JCQlpbnQgbGVuLCBpbnQgc2hvdWxkX3dyaXRlKTsKLStMT05HRVNUIGRj YWNoZV94ZmVyX21lbW9yeSAoRENBQ0hFICpjYWNoZSwgQ09SRV9BRERSIG1lbSwgZ2RiX2J5dGUg Km15LAotKwkJCSAgICBMT05HRVNUIGxlbiwgaW50IHNob3VsZF93cml0ZSk7CistaW50IGRjYWNo ZV94ZmVyX21lbW9yeSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgRENBQ0hFICpjYWNoZSwgQ09S RV9BRERSIG1lbSwKKy0JCQlnZGJfYnl0ZSAqbXksIGludCBsZW4sIGludCBzaG91bGRfd3JpdGUp OworK0xPTkdFU1QgZGNhY2hlX3hmZXJfbWVtb3J5IChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLCBE Q0FDSEUgKmNhY2hlLCBDT1JFX0FERFIgbWVtLAorKwkJCWdkYl9ieXRlICpteSwgTE9OR0VTVCBs ZW4sIGludCBzaG91bGRfd3JpdGUpOwogIAotICNlbmRpZiAvKiBEQ0FDSEVfSCAqLwotSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2V4ZWMuYworIHZvaWQgZGNhY2hlX3VwZGF0ZSAoRENB Q0hFICpkY2FjaGUsIENPUkVfQUREUiBtZW1hZGRyLCBnZGJfYnl0ZSAqbXlhZGRyLAorIAkJICAg IGludCBsZW4pOworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2V4ZWMuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZXhlYy5jCTIwMDktMDgtMDMg MTY6MDM6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZXhl Yy5jCTIwMDktMDgtMDMgMTY6MDM6MTcuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4y MDA5MDkwOS5vcmlnL2dkYi9leGVjLmMJMjAwOS0wNy0wMiAxOToyMTowNi4wMDAwMDAwMDAgKzAy MDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9leGVjLmMJMjAwOS0wOS0wOSAxOTowNjo1 Ny4wMDAwMDAwMDAgKzAyMDAKIEBAIC01NjAsNyArNTYwLDcgQEAgbWFwX3ZtYXAgKGJmZCAqYWJm ZCwgYmZkICphcmNoKQogIH0KICAMCkBAIC0xOTksMTEgKzIxMywxMSBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvZXhlYy5jCiAgc2VjdGlvbl90YWJsZV94ZmVyX21lbW9yeV9wYXJ0 aWFsIChnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmLAogIAkJCQkg ICBVTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuLAogIAkJCQkgICBzdHJ1Y3QgdGFyZ2V0X3Nl Y3Rpb24gKnNlY3Rpb25zLAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2xpbnV4LW5h dC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvbGludXgtbmF0LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMDktMDgt MDMgMTY6MDM6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv bGludXgtbmF0LmMJMjAwOS0wOC0wMyAxNjowMzoxNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC00NTE2 LDcgKzQ1MTYsNyBAQCBsaW51eF94ZmVyX3BhcnRpYWwgKHN0cnVjdCB0YXJnZXRfb3BzICpvCist LS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9saW51eC1uYXQuYwkyMDA5LTA5LTA5IDE5 OjA2OjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2xpbnV4 LW5hdC5jCTIwMDktMDktMDkgMTk6MDY6NTcuMDAwMDAwMDAwICswMjAwCitAQCAtNDYyMiw3ICs0 NjIyLDcgQEAgbGludXhfeGZlcl9wYXJ0aWFsIChzdHJ1Y3QgdGFyZ2V0X29wcyAqbwogICNlbmRp ZgogICAgICAgIGlmIChpdGVyYXRlX292ZXJfbHdwcyAoaWE2NF9saW51eF9jaGVja19zdGFja19y ZWdpb24sICZyYW5nZSkgIT0gTlVMTCkKICAJeyAvKiBUaGlzIHJlZ2lvbiBjb250YWlucyBpYTY0 IHJzZSByZWdpc3RlcnMsIHdlIGhhdmUgdG8gcmUtcmVhZC4gICovCkBAIC0yMTIsMTAgKzIyNiwx MCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvbGludXgtbmF0LmMKICAKICAJICAv KiBSZS1yZWFkIHJlZ2lzdGVyIHN0YWNrIGFyZWEuICAqLwogIAkgIHh4ZmVyID0gc3VwZXJfeGZl cl9wYXJ0aWFsIChvcHMsIG9iamVjdCwgYW5uZXgsCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvcmVtb3RlLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9yZW1vdGUuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvcmVtb3RlLmMJMjAw OS0wOC0wMyAxNjowMzowMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAz L2dkYi9yZW1vdGUuYwkyMDA5LTA4LTAzIDE2OjAzOjE3LjAwMDAwMDAwMCArMDIwMAorLS0tIGdk Yi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvcmVtb3RlLmMJMjAwOS0wOC0xOCAxODoxNzoxNi4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9yZW1vdGUuYwkyMDA5 LTA5LTA5IDE5OjA2OjU3LjAwMDAwMDAwMCArMDIwMAogQEAgLTI1LDYgKzI1LDcgQEAKICAjaW5j bHVkZSAiZ2RiX3N0cmluZy5oIgogICNpbmNsdWRlIDxjdHlwZS5oPgpAQCAtMjI0LDcgKzIzOCw3 IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9yZW1vdGUuYwogICNpbmNsdWRlICJp bmZlcmlvci5oIgogICNpbmNsdWRlICJiZmQuaCIKICAjaW5jbHVkZSAic3ltZmlsZS5oIgotQEAg LTU3ODUsMTIgKzU3ODYsMTkgQEAgaGFuZGxlX25vdGlmaWNhdGlvbiAoY2hhciAqYnVmLCBzaXpl X3QgbAorQEAgLTU3NjQsMTIgKzU3NjUsMTkgQEAgaGFuZGxlX25vdGlmaWNhdGlvbiAoY2hhciAq YnVmLCBzaXplX3QgbAogICAgIGlmIFNIT1VMRF9XUklURSBpcyBub256ZXJvLiAgUmV0dXJucyBs ZW5ndGggb2YgZGF0YSB3cml0dGVuIG9yCiAgICAgcmVhZDsgMCBmb3IgZXJyb3IuICBUQVJHRVQg aXMgdW51c2VkLiAgKi8KICAKQEAgLTI0Niw3ICsyNjAsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvcmVtb3RlLmMKICAKICAgIHNldF9nZW5lcmFsX3RocmVhZCAoaW5mZXJpb3Jf cHRpZCk7CiAgCi1AQCAtNTc5OSw3ICs1ODA3LDcgQEAgcmVtb3RlX3hmZXJfbWVtb3J5IChDT1JF X0FERFIgbWVtX2FkZHIsIAorQEAgLTU3NzgsNyArNTc4Niw3IEBAIHJlbW90ZV94ZmVyX21lbW9y eSAoQ09SRV9BRERSIG1lbV9hZGRyLCAKICAgIGVsc2UKICAgICAgcmVzID0gcmVtb3RlX3JlYWRf Ynl0ZXMgKG1lbV9hZGRyLCBidWZmZXIsIG1lbV9sZW4pOwogIApAQCAtMjU1LDEwICsyNjksMTAg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3JlbW90ZS5jCiAgfQogIAogIC8qIFNl bmRzIGEgcGFja2V0IHdpdGggY29udGVudCBkZXRlcm1pbmVkIGJ5IHRoZSBwcmludGYgZm9ybWF0 IHN0cmluZwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3JlbW90ZS1zaW0uYworSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3JlbW90ZS1zaW0uYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvcmVtb3RlLXNpbS5jCTIwMDktMDgtMDMgMTY6 MDM6MDAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvcmVtb3Rl LXNpbS5jCTIwMDktMDgtMDMgMTY6MDM6MTcuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41 MC4yMDA5MDkwOS5vcmlnL2dkYi9yZW1vdGUtc2ltLmMJMjAwOS0wNy0wMiAxOToyMTowNi4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9yZW1vdGUtc2ltLmMJMjAw OS0wOS0wOSAxOTowNjo1Ny4wMDAwMDAwMDAgKzAyMDAKIEBAIC03NTIsMTEgKzc1MiwxNCBAQCBn ZGJzaW1fcHJlcGFyZV90b19zdG9yZSAoc3RydWN0IHJlZ2NhY2hlCiAgCiAgICAgUmV0dXJucyB0 aGUgbnVtYmVyIG9mIGJ5dGVzIHRyYW5zZmVycmVkLiAqLwpAQCAtMjc2LDEwICsyOTAsMTAgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3JlbW90ZS1zaW0uYwogICAgLyogSWYgbm8g cHJvZ3JhbSBpcyBydW5uaW5nIHlldCwgdGhlbiBpZ25vcmUgdGhlIHNpbXVsYXRvciBmb3IKICAg ICAgIG1lbW9yeS4gIFBhc3MgdGhlIHJlcXVlc3QgZG93biB0byB0aGUgbmV4dCB0YXJnZXQsIGhv cGVmdWxseQogICAgICAgYW4gZXhlYyBmaWxlLiAgKi8KLUluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9leGVjLmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9leGVjLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2V4ZWMuaAkyMDA5LTA2 LTEyIDIwOjM4OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L2V4ZWMuaAkyMDA5LTA4LTAzIDE2OjAzOjU3LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02Ljgu NTAuMjAwOTA5MDkub3JpZy9nZGIvZXhlYy5oCTIwMDktMDYtMTIgMjA6Mzg6MzYuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZXhlYy5oCTIwMDktMDktMDkgMTk6 MDY6NTcuMDAwMDAwMDAwICswMjAwCiBAQCAtNTYsNyArNTYsNyBAQCBleHRlcm4gaW50IHJlc2l6 ZV9zZWN0aW9uX3RhYmxlIChzdHJ1Y3QgCiAgCiAgICAgT25lLCBhbmQgb25seSBvbmUsIG9mIHJl YWRidWYgb3Igd3JpdGVidWYgbXVzdCBiZSBub24tTlVMTC4gICovCgpkaWZmIC0tZ2l0IGEvZ2Ri LTYuMy1waWUtMjAwNTAxMTAucGF0Y2ggYi9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaAppbmRl eCA2MmU4ZjI1Li5mNjYyMWIyIDEwMDY0NAotLS0gYS9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRj aAorKysgYi9nZGItNi4zLXBpZS0yMDA1MDExMC5wYXRjaApAQCAtMjYsMTAgKzI2LDEwIEBACiAK IAlGaXggc2Nhbl9keW50YWcoKSBmb3IgYmluYXJpZXMgcHJvdmlkZWQgYnkgdmFsZ3JpbmQgKEJa IDQ2MDMxOSkuCiAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9hbWQ2NC10ZGVwLmMK K0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9hbWQ2NC10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDA5LTA4LTEy IDA2OjE4OjAzLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2Ft ZDY0LXRkZXAuYwkyMDA5LTA4LTEyIDA2OjE4OjE1LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02 LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMDktMDktMDkgMTk6MDk6MzEu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYW1kNjQtdGRlcC5j CTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCiBAQCAtMzYsNiArMzYsNyBAQAog ICNpbmNsdWRlICJyZWdjYWNoZS5oIgogICNpbmNsdWRlICJyZWdzZXQuaCIKQEAgLTEzOCwxMCAr MTM4LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9hbWQ2NC10ZGVwLmMKICAg IHJldHVybiBwYzsKICB9CiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvYXV4di5j CitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvYXV4di5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTYuOC41MC4yMDA5MDgxMS5vcmlnL2dkYi9hdXh2LmMJMjAwOS0wOC0xMiAwNjoxODowMy4w MDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODExL2dkYi9hdXh2LmMJMjAwOS0w OC0xMiAwNjoxODoxNS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9y aWcvZ2RiL2F1eHYuYwkyMDA5LTA3LTAyIDE5OjI1OjUyLjAwMDAwMDAwMCArMDIwMAorKysrIGdk Yi02LjguNTAuMjAwOTA5MDkvZ2RiL2F1eHYuYwkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAw MCArMDIwMAogQEAgLTc4LDcgKzc4LDcgQEAgcHJvY2ZzX3hmZXJfYXV4diAoc3RydWN0IHRhcmdl dF9vcHMgKm9wcwogICAgIFJldHVybiAxIGlmIGFuIGVudHJ5IHdhcyByZWFkIGludG8gKlRZUEVQ IGFuZCAqVkFMUC4gICovCiAgc3RhdGljIGludApAQCAtMjMwLDEwICsyMzAsMTAgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2F1eHYuYwogIAlicmVhazsKICAgICAgfQogIAotSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2F1eHYuaAorSW5kZXg6IGdkYi02LjguNTAuMjAw OTA5MDkvZ2RiL2F1eHYuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MTEub3Jp Zy9nZGIvYXV4di5oCTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDgxMS9nZGIvYXV4di5oCTIwMDktMDgtMTIgMDY6MTg6MTUuMDAwMDAwMDAw ICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9hdXh2LmgJMjAwOS0wNi0w NyAyMTowNzowOC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9h dXh2LmgJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKIEBAIC0zMSwxNCArMzEs MTQgQEAKICAgICBSZXR1cm4gMSBpZiBhbiBlbnRyeSB3YXMgcmVhZCBpbnRvICpUWVBFUCBhbmQg KlZBTFAuICAqLwogIGV4dGVybiBpbnQgdGFyZ2V0X2F1eHZfcGFyc2UgKHN0cnVjdCB0YXJnZXRf b3BzICpvcHMsCkBAIC0yNTEsMTEgKzI1MSwxMSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgx MS9nZGIvYXV4di5oCiAgCiAgLyogUHJpbnQgdGhlIGNvbnRlbnRzIG9mIHRoZSB0YXJnZXQncyBB VVhWIG9uIHRoZSBzcGVjaWZpZWQgZmlsZS4gKi8KICBleHRlcm4gaW50IGZwcmludF90YXJnZXRf YXV4diAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIHN0cnVjdCB0YXJnZXRfb3BzICpvcHMpOwotSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTA4MTEub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvZHdhcmYycmVhZC5jCTIwMDkt MDgtMTIgMDY6MTg6MTUuMDAwMDAwMDAwICswMjAwCi1AQCAtMTY1Myw3ICsxNjUzLDcgQEAgZHdh cmYyX2J1aWxkX3BzeW10YWJzIChzdHJ1Y3Qgb2JqZmlsZSAqbworLS0tIGdkYi02LjguNTAuMjAw OTA5MDkub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDktMDkgMTk6MjE6MjMuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZHdhcmYycmVhZC5jCTIwMDktMDkt MDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtMTcxOSw3ICsxNzE5LDcgQEAgZHdhcmYy X2J1aWxkX3BzeW10YWJzIChzdHJ1Y3Qgb2JqZmlsZSAqbwogICAgZHdhcmYyX3JlYWRfc2VjdGlv biAob2JqZmlsZSwgJmR3YXJmMl9wZXJfb2JqZmlsZS0+ZWhfZnJhbWUpOwogICAgZHdhcmYyX3Jl YWRfc2VjdGlvbiAob2JqZmlsZSwgJmR3YXJmMl9wZXJfb2JqZmlsZS0+ZnJhbWUpOwogIApAQCAt MjY0LDEwICsyNjQsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2R3YXJmMnJl YWQuYwogICAgICAgIHx8IChvYmpmaWxlLT5nbG9iYWxfcHN5bWJvbHMuc2l6ZSA9PSAwCiAgCSAg JiYgb2JqZmlsZS0+c3RhdGljX3BzeW1ib2xzLnNpemUgPT0gMCkpCiAgICAgIHsKLUluZGV4OiBn ZGItNi44LjUwLjIwMDkwODExL2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi9lbGZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODExLm9y aWcvZ2RiL2VsZnJlYWQuYwkyMDA5LTA4LTEyIDA2OjE4OjAzLjAwMDAwMDAwMCArMDIwMAotKysr IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL2VsZnJlYWQuYwkyMDA5LTA4LTEyIDA2OjE4OjE1LjAw MDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZWxmcmVhZC5j CTIwMDktMDktMDkgMTk6MDU6NTUuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5 MDkwOS9nZGIvZWxmcmVhZC5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCiBA QCAtNjgxLDcgKzY4MSw3IEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpm aWwKICAgIC8qIElmIHdlIGFyZSByZWluaXRpYWxpemluZywgb3IgaWYgd2UgaGF2ZSBuZXZlciBs b2FkZWQgc3ltcyB5ZXQsCiAgICAgICBzZXQgdGFibGUgdG8gZW1wdHkuICBNQUlOTElORSBpcyBj bGVhcmVkIHNvIHRoYXQgKl9yZWFkX3BzeW10YWIKQEAgLTI3NywxMSArMjc3LDExIEBAIEluZGV4 OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9lbGZyZWFkLmMKICAgICAgewogICAgICAgIGluaXRf cHN5bWJvbF9saXN0IChvYmpmaWxlLCAwKTsKICAgICAgICBtYWlubGluZSA9IDA7Ci1JbmRleDog Z2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvaW5mcnVuLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi9pbmZydW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MTEub3Jp Zy9nZGIvaW5mcnVuLmMJMjAwOS0wOC0xMiAwNjoxODowMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn ZGItNi44LjUwLjIwMDkwODExL2dkYi9pbmZydW4uYwkyMDA5LTA4LTEyIDA2OjE4OjE1LjAwMDAw MDAwMCArMDIwMAotQEAgLTM1MzEsNiArMzUzMSwxMCBAQCBpbmZydW46IEJQU1RBVF9XSEFUX1NF VF9MT05HSk1QX1JFU1VNRSAoCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9pbmZy dW4uYwkyMDA5LTA5LTA5IDE5OjA5OjMxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAu MjAwOTA5MDkvZ2RiL2luZnJ1bi5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAw CitAQCAtMzYwMiw2ICszNjAyLDEwIEBAIGluZnJ1bjogQlBTVEFUX1dIQVRfU0VUX0xPTkdKTVBf UkVTVU1FICgKICAjZW5kaWYKICAJICB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKCk7CiAgCkBA IC0yOTIsMTAgKzI5MiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvaW5mcnVu LmMKICAJICAvKiBJZiByZXF1ZXN0ZWQsIHN0b3Agd2hlbiB0aGUgZHluYW1pYyBsaW5rZXIgbm90 aWZpZXMKICAJICAgICBnZGIgb2YgZXZlbnRzLiAgVGhpcyBhbGxvd3MgdGhlIHVzZXIgdG8gZ2V0 IGNvbnRyb2wKICAJICAgICBhbmQgcGxhY2UgYnJlYWtwb2ludHMgaW4gaW5pdGlhbGl6ZXIgcm91 dGluZXMgZm9yCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvb2JqZmlsZXMuYworSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL29iamZpbGVzLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL29iamZpbGVzLmMJMjAwOS0wOC0xMiAwNjoxODow My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODExL2dkYi9vYmpmaWxlcy5j CTIwMDktMDgtMTIgMDY6MTg6MTUuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5 MDkwOS5vcmlnL2dkYi9vYmpmaWxlcy5jCTIwMDktMDktMDkgMTk6MjM6MDUuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvb2JqZmlsZXMuYwkyMDA5LTA5LTA5IDE5 OjI0OjEzLjAwMDAwMDAwMCArMDIwMAogQEAgLTUxLDYgKzUxLDkgQEAKICAjaW5jbHVkZSAiYXJj aC11dGlscy5oIgogICNpbmNsdWRlICJleGVjLmgiCkBAIC0zMzQsMTAgKzMzNCwxMCBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvb2JqZmlsZXMuYwogICAgLyogQmVmb3JlIHRoZSBz eW1ib2wgdGFibGUgY29kZSB3YXMgcmVkb25lIHRvIG1ha2UgaXQgZWFzaWVyIHRvCiAgICAgICBz ZWxlY3RpdmVseSBsb2FkIGFuZCByZW1vdmUgaW5mb3JtYXRpb24gcGFydGljdWxhciB0byBhIHNw ZWNpZmljCiAgICAgICBsaW5rYWdlIHVuaXQsIGdkYiB1c2VkIHRvIGRvIHRoZXNlIHRoaW5ncyB3 aGVuZXZlciB0aGUgbW9ub2xpdGhpYwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3Nv bGliLXN2cjQuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3NvbGliLXN2cjQuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MTEub3JpZy9nZGIvc29saWItc3ZyNC5j CTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5 MDgxMS9nZGIvc29saWItc3ZyNC5jCTIwMDktMDgtMTIgMDY6MzY6NTguMDAwMDAwMDAwICswMjAw CistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0wOS0w OSAxOTowOTozNS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9z b2xpYi1zdnI0LmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKIEBAIC00Nyw2 ICs0Nyw3IEBACiAgI2luY2x1ZGUgImV4ZWMuaCIKICAjaW5jbHVkZSAiYXV4di5oIgpAQCAtMTAw MCwxMSArMTAwMCwxMSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc29saWItc3Zy NC5jCiArICBhZGRfaW5mbyAoImxpbmttYXAiLCBpbmZvX2xpbmttYXBfY29tbWFuZCwKICsJICAg ICJEaXNwbGF5IHRoZSBpbmZlcmlvcidzIGxpbmttYXAuIik7CiAgfQotSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MTEvZ2RiL3NvbGliLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9z b2xpYi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS5vcmlnL2dkYi9zb2xp Yi5jCTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDgxMS9nZGIvc29saWIuYwkyMDA5LTA4LTEyIDA2OjE4OjE1LjAwMDAwMDAwMCArMDIwMAot QEAgLTgxLDYgKzgxLDggQEAgc2V0X3NvbGliX29wcyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs IAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvc29saWIuYwkyMDA5LTA5LTA5IDE5 OjA1OjU2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3NvbGli LmMJMjAwOS0wOS0wOSAxOToyNToxOC4wMDAwMDAwMDAgKzAyMDAKK0BAIC04Miw2ICs4Miw4IEBA IHNldF9zb2xpYl9vcHMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCAKICAKICAvKiBleHRlcm5h bCBkYXRhIGRlY2xhcmF0aW9ucyAqLwogIApAQCAtMTAxMyw3ICsxMDEzLDcgQEAgSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MTEvZ2RiL3NvbGliLmMKICAvKiBGSVhNRTogZ2RiYXJjaCBuZWVkcyB0 byBjb250cm9sIHRoaXMgdmFyaWFibGUsIG9yIGVsc2UgZXZlcnkKICAgICBjb25maWd1cmF0aW9u IG5lZWRzIHRvIGNhbGwgc2V0X3NvbGliX29wcy4gICovCiAgc3RydWN0IHRhcmdldF9zb19vcHMg KmN1cnJlbnRfdGFyZ2V0X3NvX29wczsKLUBAIC0xMDQsNiArMTA2LDggQEAgVGhlIHNlYXJjaCBw YXRoIGZvciBsb2FkaW5nIG5vbi1hYnNvbHV0ZQorQEAgLTEwNSw2ICsxMDcsOCBAQCBUaGUgc2Vh cmNoIHBhdGggZm9yIGxvYWRpbmcgbm9uLWFic29sdXRlCiAgCQkgICAgdmFsdWUpOwogIH0KICAK QEAgLTEwNjAsMTAgKzEwNjAsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3Nv bGliLmMKICsgIGVsc2UKICsgICAgc28tPm9iamZpbGUgPSBzeW1ib2xfZmlsZV9hZGRfZnJvbV9i ZmQgKHNvLT5hYmZkLCBmbGFncywgc2FwLCBPQkpGX1NIQVJFRCk7CiArCi0gICBwX3JlZmNvdW50 ID0geG1hbGxvYyAoc2l6ZW9mICgqcF9yZWZjb3VudCkpOwotICAgKnBfcmVmY291bnQgPSAyOyAg LyogQm90aCBzb2xpYiBhbmQgb2JqZmlsZSByZWZlciB0byB0aGlzIGFiZmQuICAqLwotICAgYmZk X3VzcmRhdGEgKHNvLT5hYmZkKSA9IHBfcmVmY291bnQ7Ci1AQCAtNjAwLDYgKzYyOCwxMCBAQCB1 cGRhdGVfc29saWJfbGlzdCAoaW50IGZyb21fdHR5LCBzdHJ1Y3QgCisgICBmcmVlX3NlY3Rpb25f YWRkcl9pbmZvIChzYXApOworIAorICAgcmV0dXJuOworQEAgLTU5Niw2ICs2MjQsMTAgQEAgdXBk YXRlX3NvbGliX2xpc3QgKGludCBmcm9tX3R0eSwgc3RydWN0IAogIAkgICAgfQogIAkgIGVsc2UK ICAJICAgIHsKQEAgLTEwNzQsNyArMTA3NCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODEx L2dkYi9zb2xpYi5jCiAgCSAgICAgIGlmICghIHN0cmNtcCAoZ2RiLT5zb19vcmlnaW5hbF9uYW1l LCBpLT5zb19vcmlnaW5hbF9uYW1lKSkKICAJCWJyZWFrOwkgICAgICAKICAJICAgIH0KLUBAIC02 NTQsMTggKzY4Niw3IEBAIHVwZGF0ZV9zb2xpYl9saXN0IChpbnQgZnJvbV90dHksIHN0cnVjdCAK K0BAIC02NTAsMTggKzY4Miw3IEBAIHVwZGF0ZV9zb2xpYl9saXN0IChpbnQgZnJvbV90dHksIHN0 cnVjdCAKICAgICAgICAvKiBGaWxsIGluIHRoZSByZXN0IG9mIGVhY2ggb2YgdGhlIGBzdHJ1Y3Qg c29fbGlzdCcgbm9kZXMuICAqLwogICAgICAgIGZvciAoaSA9IGluZmVyaW9yOyBpOyBpID0gaS0+ bmV4dCkKICAJewpAQCAtMTA5NCw3ICsxMDk0LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MTEvZ2RiL3NvbGliLmMKICAKICAJICAvKiBOb3RpZnkgYW55IG9ic2VydmVyIHRoYXQgdGhlIHNo YXJlZCBvYmplY3QgaGFzIGJlZW4KICAgICAgICAgICAgICAgbG9hZGVkIG5vdyB0aGF0IHdlJ3Zl IGFkZGVkIGl0IHRvIEdEQidzIHRhYmxlcy4gICovCi1AQCAtNzc1LDYgKzc5NiwzMiBAQCBzb2xp Yl9hZGQgKGNoYXIgKnBhdHRlcm4sIGludCBmcm9tX3R0eSwgCitAQCAtNzcxLDYgKzc5MiwzMiBA QCBzb2xpYl9hZGQgKGNoYXIgKnBhdHRlcm4sIGludCBmcm9tX3R0eSwgCiAgICB9CiAgfQogIApA QCAtMTEyNyw3ICsxMTI3LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3NvbGli LmMKICAKICAvKgogIAotQEAgLTExMjgsNCArMTE3NSwxMiBAQCBUaGlzIHRha2VzIHByZWNlZGVu Y2Ugb3ZlciB0aGUgZW52aXJvbm1lCitAQCAtMTE4OSw0ICsxMjM2LDEyIEBAIFRoaXMgdGFrZXMg cHJlY2VkZW5jZSBvdmVyIHRoZSBlbnZpcm9ubWUKICAJCQkJICAgICByZWxvYWRfc2hhcmVkX2xp YnJhcmllcywKICAJCQkJICAgICBzaG93X3NvbGliX3NlYXJjaF9wYXRoLAogIAkJCQkgICAgICZz ZXRsaXN0LCAmc2hvd2xpc3QpOwpAQCAtMTE0MCwxMCArMTE0MCwxMCBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDgxMS9nZGIvc29saWIuYwogKwkJCSAgIE5VTEwsIE5VTEwsCiArCQkJICAgJnNl dGRlYnVnbGlzdCwgJnNob3dkZWJ1Z2xpc3QpOwogIH0KLUluZGV4OiBnZGItNi44LjUwLjIwMDkw ODExL2dkYi9zb2xpc3QuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3NvbGlzdC5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS5vcmlnL2dkYi9zb2xpc3QuaAky MDA5LTA4LTEyIDA2OjE4OjAzLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4 MTEvZ2RiL3NvbGlzdC5oCTIwMDktMDgtMTIgMDY6MTg6MTUuMDAwMDAwMDAwICswMjAwCistLS0g Z2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zb2xpc3QuaAkyMDA5LTA5LTA5IDE5OjA1OjU2 LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3NvbGlzdC5oCTIw MDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCiBAQCAtNjEsNiArNjEsOCBAQCBzdHJ1 Y3Qgc29fbGlzdAogICAgICBiZmQgKmFiZmQ7CiAgICAgIGNoYXIgc3ltYm9sc19sb2FkZWQ7CS8q IGZsYWc6IHN5bWJvbHMgcmVhZCBpbiB5ZXQ/ICovCkBAIC0xMTY0LDEwICsxMTY0LDEwIEBAIElu ZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9zb2xpc3QuaAogK2V4dGVybiBpbnQgZGVidWdf c29saWI7CiArCiAgI2VuZGlmCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmls ZS1tZW0uYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUtbWVtLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL3N5bWZpbGUtbWVtLmMJ MjAwOS0wOC0xMiAwNjoxMzoyMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkw ODExL2dkYi9zeW1maWxlLW1lbS5jCTIwMDktMDgtMTIgMDY6MTg6MTUuMDAwMDAwMDAwICswMjAw CistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zeW1maWxlLW1lbS5jCTIwMDktMDkt MDkgMTk6MDY6NTcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv c3ltZmlsZS1tZW0uYwkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCArMDIwMAogQEAgLTEx NSw3ICsxMTUsNyBAQCBzeW1ib2xfZmlsZV9hZGRfZnJvbV9tZW1vcnkgKHN0cnVjdCBiZmQgCiAg CSsraTsKICAgICAgICB9CkBAIC0xMTc3LDEwICsxMTc3LDEwIEBAIEluZGV4OiBnZGItNi44LjUw LjIwMDkwODExL2dkYi9zeW1maWxlLW1lbS5jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzYWksIE9CSkZfU0hBUkVEKTsKICAKICAgIC8qIFRoaXMgbWlnaHQgY2hhbmdlIG91 ciBpZGVhcyBhYm91dCBmcmFtZXMgYWxyZWFkeSBsb29rZWQgYXQuICAqLwotSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MTEvZ2RiL3N5bWZpbGUuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL3N5bWZpbGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MTEub3JpZy9n ZGIvc3ltZmlsZS5jCTIwMDktMDgtMTIgMDY6MTg6MDMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMTIgMDY6MTg6MTUuMDAwMDAw MDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zeW1maWxlLmMJMjAw OS0wOS0wOSAxOToxNTo0My4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi9zeW1maWxlLmMJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAgKzAyMDAKIEBAIC00 OSw2ICs0OSw3IEBACiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCiAgI2luY2x1ZGUg ImdkYl9hc3NlcnQuaCIKQEAgLTExODksNyArMTE4OSw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIw MDkwODExL2dkYi9zeW1maWxlLmMKICAjaW5jbHVkZSAib2JzZXJ2ZXIuaCIKICAjaW5jbHVkZSAi ZXhlYy5oIgogICNpbmNsdWRlICJwYXJzZXItZGVmcy5oIgotQEAgLTc4Niw3ICs3ODcsNyBAQCBz eW1zX2Zyb21fb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpCitAQCAtNzc5LDcgKzc4MCw3 IEBAIHN5bXNfZnJvbV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmkKICAKICAgIC8qIE5v dyBlaXRoZXIgYWRkcnMgb3Igb2Zmc2V0cyBpcyBub24temVyby4gICovCiAgCkBAIC0xMTk4LDcg KzExOTgsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmlsZS5jCiAgICAg IHsKICAgICAgICAvKiBXZSB3aWxsIG1vZGlmeSB0aGUgbWFpbiBzeW1ib2wgdGFibGUsIG1ha2Ug c3VyZSB0aGF0IGFsbCBpdHMgdXNlcnMKICAgICAgICAgICB3aWxsIGJlIGNsZWFuZWQgdXAgaWYg YW4gZXJyb3Igb2NjdXJzIGR1cmluZyBzeW1ib2wgcmVhZGluZy4gICovCi1AQCAtODE0LDcgKzgx NSw3IEBAIHN5bXNfZnJvbV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmkKK0BAIC04MDcs NyArODA4LDcgQEAgc3ltc19mcm9tX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaQogIAog ICAgICAgV2Ugbm8gbG9uZ2VyIHdhcm4gaWYgdGhlIGxvd2VzdCBzZWN0aW9uIGlzIG5vdCBhIHRl eHQgc2VnbWVudCAoYXMKICAgICAgIGhhcHBlbnMgZm9yIHRoZSBQQTY0IHBvcnQuICAqLwpAQCAt MTIwNyw3ICsxMjA3LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3N5bWZpbGUu YwogICAgICB7CiAgICAgICAgYXNlY3Rpb24gKmxvd2VyX3NlY3Q7CiAgICAgICAgYXNlY3Rpb24g KnNlY3Q7Ci1AQCAtODk3LDcgKzg5OCw3IEBAIHN5bXNfZnJvbV9vYmpmaWxlIChzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmkKK0BAIC04OTAsNyArODkxLDcgQEAgc3ltc19mcm9tX29iamZpbGUgKHN0cnVj dCBvYmpmaWxlICpvYmpmaQogICAgICAgIGluaXRfb2JqZmlsZV9zZWN0X2luZGljZXMgKG9iamZp bGUpOwogICAgICB9CiAgCkBAIC0xMjE2LDcgKzEyMTYsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4y MDA5MDgxMS9nZGIvc3ltZmlsZS5jCiAgCiAgICAvKiBEaXNjYXJkIGNsZWFudXBzIGFzIHN5bWJv bCByZWFkaW5nIHdhcyBzdWNjZXNzZnVsLiAgKi8KICAKLUBAIC05MTYsMTcgKzkxNywyMiBAQCBu ZXdfc3ltZmlsZV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqCitAQCAtOTA5LDE3ICs5MTAs MjIgQEAgbmV3X3N5bWZpbGVfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iagogICAgLyogSWYg dGhpcyBpcyB0aGUgbWFpbiBzeW1ib2wgZmlsZSB3ZSBoYXZlIHRvIGNsZWFuIHVwIGFsbCB1c2Vy cyBvZiB0aGUKICAgICAgIG9sZCBtYWluIHN5bWJvbCBmaWxlLiBPdGhlcndpc2UgaXQgaXMgc3Vm ZmljaWVudCB0byBmaXh1cCBhbGwgdGhlCiAgICAgICBicmVha3BvaW50cyB0aGF0IG1heSBoYXZl IGJlZW4gcmVkZWZpbmVkIGJ5IHRoaXMgc3ltYm9sIGZpbGUuICAqLwpAQCAtMTI0MSw3ICsxMjQx LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3N5bWZpbGUuYwogIAogICAgLyog V2UncmUgZG9uZSByZWFkaW5nIHRoZSBzeW1ib2wgZmlsZTsgZmluaXNoIG9mZiBjb21wbGFpbnRz LiAgKi8KICAgIGNsZWFyX2NvbXBsYWludHMgKCZzeW1maWxlX2NvbXBsYWludHMsIDAsIGFkZF9m bGFncyAmIFNZTUZJTEVfVkVSQk9TRSk7Ci1AQCAtOTgwLDcgKzk4Niw3IEBAIHN5bWJvbF9maWxl X2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMgKGIKK0BAIC05NzMsNyArOTc5LDcgQEAgc3ltYm9s X2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0cyAoYgogICAgLyogR2l2ZSB1c2VyIGEgY2hh bmNlIHRvIGJ1cnAgaWYgd2UnZCBiZQogICAgICAgaW50ZXJhY3RpdmVseSB3aXBpbmcgb3V0IGFu eSBleGlzdGluZyBzeW1ib2xzLiAgKi8KICAKQEAgLTEyNTAsNyArMTI1MCw3IEBAIEluZGV4OiBn ZGItNi44LjUwLjIwMDkwODExL2dkYi9zeW1maWxlLmMKICAgICAgICAmJiAoaGF2ZV9mdWxsX3N5 bWJvbHMgKCkgfHwgaGF2ZV9wYXJ0aWFsX3N5bWJvbHMgKCkpCiAgICAgICAgJiYgZnJvbV90dHkK ICAgICAgICAmJiAoaGF2ZV9mdWxsX3N5bWJvbHMgKCkgfHwgaGF2ZV9wYXJ0aWFsX3N5bWJvbHMg KCkpCi1AQCAtMTE4MSw2ICsxMTg3LDkgQEAgc3ltYm9sX2ZpbGVfY2xlYXIgKGludCBmcm9tX3R0 eSkKK0BAIC0xMTYyLDYgKzExNjgsOSBAQCBzeW1ib2xfZmlsZV9jbGVhciAoaW50IGZyb21fdHR5 KQogIAkJICAgIHN5bWZpbGVfb2JqZmlsZS0+bmFtZSkKICAJICA6ICFxdWVyeSAoXygiRGlzY2Fy ZCBzeW1ib2wgdGFibGU/ICIpKSkpCiAgICAgIGVycm9yIChfKCJOb3QgY29uZmlybWVkLiIpKTsK QEAgLTEyNjAsNyArMTI2MCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODExL2dkYi9zeW1m aWxlLmMKICAKICAgIGZyZWVfYWxsX29iamZpbGVzICgpOwogIAotQEAgLTMzODUsNiArMzM5NCw4 IEBAIHJlcmVhZF9zeW1ib2xzICh2b2lkKQorQEAgLTMzNjksNiArMzM3OCw4IEBAIHJlcmVhZF9z eW1ib2xzICh2b2lkKQogIAkgICAgICAvKiBEaXNjYXJkIGNsZWFudXBzIGFzIHN5bWJvbCByZWFk aW5nIHdhcyBzdWNjZXNzZnVsLiAgKi8KICAJICAgICAgZGlzY2FyZF9jbGVhbnVwcyAob2xkX2Ns ZWFudXBzKTsKICAKQEAgLTEyNjksMTEgKzEyNjksMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MTEvZ2RiL3N5bWZpbGUuYwogIAkgICAgICAvKiBJZiB0aGUgbXRpbWUgaGFzIGNoYW5nZWQg YmV0d2VlbiB0aGUgdGltZSB3ZSBzZXQgbmV3X21vZHRpbWUKICAJICAgICAgICAgYW5kIG5vdywg d2UgKndhbnQqIHRoaXMgdG8gYmUgb3V0IG9mIGRhdGUsIHNvIGRvbid0IGNhbGwgc3RhdAogIAkg ICAgICAgICBhZ2FpbiBub3cuICAqLwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTEvZ2RiL3Rh cmdldC5oCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL3RhcmdldC5oCTIwMDktMDgtMTIg MDY6MTg6MDMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvdGFy Z2V0LmgJMjAwOS0wOC0xMiAwNjoxODoxNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC01MjQsNyArNTI0 LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2Ri L3RhcmdldC5oCTIwMDktMDktMDkgMTk6MDc6MzYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYu OC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmgJMjAwOS0wOS0wOSAxOToyNDoxMy4wMDAwMDAwMDAg KzAyMDAKK0BAIC01MjgsNyArNTI4LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKICAgICAgICAgUmV0 dXJuIC0xIGlmIHRoZXJlIGlzIGluc3VmZmljaWVudCBidWZmZXIgZm9yIGEgd2hvbGUgZW50cnku CiAgICAgICAgIFJldHVybiAxIGlmIGFuIGVudHJ5IHdhcyByZWFkIGludG8gKlRZUEVQIGFuZCAq VkFMUC4gICovCiAgICAgIGludCAoKnRvX2F1eHZfcGFyc2UpIChzdHJ1Y3QgdGFyZ2V0X29wcyAq b3BzLCBnZGJfYnl0ZSAqKnJlYWRwdHIsCkBAIC0xMjgyLDEwICsxMjgyLDEwIEBAIEluZGV4OiBn ZGItNi44LjUwLjIwMDkwODExL2dkYi90YXJnZXQuaAogIAogICAgICAvKiBTZWFyY2ggU0VBUkNI X1NQQUNFX0xFTiBieXRlcyBiZWdpbm5pbmcgYXQgU1RBUlRfQUREUiBmb3IgdGhlCiAgICAgICAg IHNlcXVlbmNlIG9mIGJ5dGVzIGluIFBBVFRFUk4gd2l0aCBsZW5ndGggUEFUVEVSTl9MRU4uCi1J bmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmlsZS5oCitJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5 MDgxMS5vcmlnL2dkYi9zeW1maWxlLmgJMjAwOS0wOC0xMiAwNjoxMzoyMC4wMDAwMDAwMDAgKzAy MDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODExL2dkYi9zeW1maWxlLmgJMjAwOS0wOC0xMiAwNjox ODoxNS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3N5 bWZpbGUuaAkyMDA5LTA5LTA5IDE5OjE1OjQzLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUuaAkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCAr MDIwMAogQEAgLTIyOSw3ICsyMjksMTMgQEAgZW51bSBzeW1maWxlX2FkZF9mbGFncwogICAgICBT WU1GSUxFX01BSU5MSU5FID0gMSA8PCAyLAogIApAQCAtMTMwMSwxMSArMTMwMSwxMSBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIvc3ltZmlsZS5oCiAgICB9OwogIAogIGV4dGVybiB2 b2lkIHN5bXNfZnJvbV9vYmpmaWxlIChzdHJ1Y3Qgb2JqZmlsZSAqLAotSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MTEvZ2RiL2luZmNtZC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv aW5mY21kLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODExLm9yaWcvZ2RiL2lu ZmNtZC5jCTIwMDktMDgtMTIgMDY6MDk6MTQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41 MC4yMDA5MDgxMS9nZGIvaW5mY21kLmMJMjAwOS0wOC0xMiAwNjo0Nzo1OC4wMDAwMDAwMDAgKzAy MDAKLUBAIC0yMjc2LDYgKzIyNzYsOSBAQCBhdHRhY2hfY29tbWFuZF9wb3N0X3dhaXQgKGNoYXIg KmFyZ3MsIGluCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9pbmZjbWQuYwkyMDA5 LTA5LTA5IDE5OjIwOjMzLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL2luZmNtZC5jCTIwMDktMDktMDkgMTk6MjQ6MTMuMDAwMDAwMDAwICswMjAwCitAQCAtMjMw OCw2ICsyMzA4LDkgQEAgYXR0YWNoX2NvbW1hbmRfcG9zdF93YWl0IChjaGFyICphcmdzLCBpbgog IAogICAgcG9zdF9jcmVhdGVfaW5mZXJpb3IgKCZjdXJyZW50X3RhcmdldCwgZnJvbV90dHkpOwog IApAQCAtMTMxNSwxMCArMTMxNSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxMS9nZGIv aW5mY21kLmMKICAgIC8qIEluc3RhbGwgaW5mZXJpb3IncyB0ZXJtaW5hbCBtb2Rlcy4gICovCiAg ICB0YXJnZXRfdGVybWluYWxfaW5mZXJpb3IgKCk7CiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5 MDgxMS9nZGIvbGludXgtdGRlcC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvbGlu dXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgxMS5vcmlnL2dkYi9s aW51eC10ZGVwLmMJMjAwOS0wOC0wNCAyMjo0MToxMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGIt Ni44LjUwLjIwMDkwODExL2dkYi9saW51eC10ZGVwLmMJMjAwOS0wOC0xMiAwNjo0MzoyNy4wMDAw MDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2xpbnV4LXRkZXAu YwkyMDA5LTA4LTA0IDIyOjQxOjEzLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAw OTA5MDkvZ2RiL2xpbnV4LXRkZXAuYwkyMDA5LTA5LTA5IDE5OjI0OjEzLjAwMDAwMDAwMCArMDIw MAogQEAgLTE2Myw1ICsxNjMsNyBAQCBpbiB0aGlzIHNlc3Npb24uXG4iKSk7CiAgdm9pZAogIF9p bml0aWFsaXplX2xpbnV4X3RkZXAgKHZvaWQpCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy10ZXN0LXBp ZS0yMDA1MDEwNy5wYXRjaCBiL2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcucGF0Y2gKaW5kZXgg ZDljNTE0OC4uNmJhMjRhMCAxMDA2NDQKLS0tIGEvZ2RiLTYuMy10ZXN0LXBpZS0yMDA1MDEwNy5w YXRjaAorKysgYi9nZGItNi4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoCkBAIC0xLDcgKzEsNyBA QAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMK K0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMi5vcmlnL2dkYi90ZXN0c3VpdGUvY29u ZmlndXJlLmFjCTIwMDktMDctMzEgMTc6Mzg6MTYuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYu OC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDA5LTA4LTAzIDExOjEw OjQ1LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvdGVz dHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDA5LTA3LTMxIDE3OjM4OjE2LjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAwOS0w OS0wOSAxOTowNjowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xNDQsNiArMTQ0LDYgQEAgQUNfT1VU UFVUKFtNYWtlZmlsZSBcCiAgICBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBn ZGIuZHdhcmYyL01ha2VmaWxlIFwKICAgIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIv TWFrZWZpbGUgXApAQCAtMTAsMzEgKzEwLDMxIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAy L2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCiArICBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3B0 L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtlZmlsZSBcCiAgICBnZGIu cHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIFwKICAgIGdkYi50aHJlYWRzL01h a2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxlXSkKLUluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCitJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02 LjguNTAuMjAwOTA4MDIub3JpZy9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDA5LTA3LTMxIDE3 OjM4OjE2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3Rz dWl0ZS9jb25maWd1cmUJMjAwOS0wOC0wMyAxMToxMToyNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0z MjM5LDcgKzMyMzksNyBAQCBkb25lCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi90 ZXN0c3VpdGUvY29uZmlndXJlCTIwMDktMDgtMjIgMTg6NTY6NDMuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDA5LTA5LTA5 IDE5OjA2OjI3LjAwMDAwMDAwMCArMDIwMAorQEAgLTM1MTUsNyArMzUxNSw3IEBAIGRvbmUKICAK ICAKICAKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19jb25maWdf ZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJj aC9NYWtlZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5jcC9NYWtl ZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFrZWZpbGUgZ2RiLmZvcnRyYW4v TWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIubWkvTWFr ZWZpbGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9wdC9NYWtl ZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2Uv TWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwv TWFrZWZpbGUiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNfY29u ZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2Ri LmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuY3Av TWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIGdkYi5mb3J0 cmFuL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLm1p L01ha2VmaWxlIGdkYi5tb2R1bGEyL01ha2VmaWxlIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcHQv TWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxlIGdkYi5weXRob24v TWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRy YWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCistYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29u ZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEvTWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2Ri LmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtlZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2Fz bS9NYWtlZmlsZSBnZGIuZHdhcmYyL01ha2VmaWxlIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5z ZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1 bGEyL01ha2VmaWxlIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2Nh bC9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIGdkYi50 aHJlYWRzL01ha2VmaWxlIGdkYi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxlIgorK2Fj X2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBNYWtlZmlsZSBnZGIuYWRhL01ha2VmaWxl IGdkYi5hcmNoL01ha2VmaWxlIGdkYi5hc20vTWFrZWZpbGUgZ2RiLmJhc2UvTWFrZWZpbGUgZ2Ri LmNwL01ha2VmaWxlIGdkYi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIu Zm9ydHJhbi9NYWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxlIGdkYi5qYXZhL01ha2VmaWxlIGdk Yi5taS9NYWtlZmlsZSBnZGIubW9kdWxhMi9NYWtlZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBnZGIu b3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBpZS9NYWtlZmlsZSBnZGIucHl0 aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxlIGdkYi50aHJlYWRzL01ha2VmaWxlIGdk Yi50cmFjZS9NYWtlZmlsZSBnZGIueG1sL01ha2VmaWxlIgorIAogIGNhdCA+Y29uZmNhY2hlIDw8 XF9BQ0VPRgogICMgVGhpcyBmaWxlIGlzIGEgc2hlbGwgc2NyaXB0IHRoYXQgY2FjaGVzIHRoZSBy ZXN1bHRzIG9mIGNvbmZpZ3VyZQotICMgdGVzdHMgcnVuIG9uIHRoaXMgc3lzdGVtIHNvIHRoZXkg Y2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGNvbmZpZ3VyZQotQEAgLTM4MTMsNiArMzgxMyw3IEBAIGRv Ci0gICAiZ2RiLm9iamMvTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdk Yi5vYmpjL01ha2VmaWxlIiA7OwotICAgImdkYi5vcHQvTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVT PSIkQ09ORklHX0ZJTEVTIGdkYi5vcHQvTWFrZWZpbGUiIDs7Ci0gICAiZ2RiLnBhc2NhbC9NYWtl ZmlsZSIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnBhc2NhbC9NYWtlZmlsZSIg OzsKLSsgICJnZGIucGllL01ha2VmaWxlIiApIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBn ZGIucGllL01ha2VmaWxlIiA7OwotICAgImdkYi5weXRob24vTWFrZWZpbGUiICkgQ09ORklHX0ZJ TEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5weXRob24vTWFrZWZpbGUiIDs7Ci0gICAiZ2RiLnJldmVy c2UvTWFrZWZpbGUiICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5yZXZlcnNlL01h a2VmaWxlIiA7OwotICAgImdkYi50aHJlYWRzL01ha2VmaWxlIiApIENPTkZJR19GSUxFUz0iJENP TkZJR19GSUxFUyBnZGIudGhyZWFkcy9NYWtlZmlsZSIgOzsKLUluZGV4OiBnZGItNi44LjUwLjIw MDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYworQEAgLTQyMzEsNiArNDIzMSw3 IEBAIGRvCisgICAgICJnZGIub2JqYy9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G SUxFUyBnZGIub2JqYy9NYWtlZmlsZSIgOzsKKyAgICAgImdkYi5vcHQvTWFrZWZpbGUiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLm9wdC9NYWtlZmlsZSIgOzsKKyAgICAgImdkYi5w YXNjYWwvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnBhc2NhbC9N YWtlZmlsZSIgOzsKKysgICAgImdkYi5waWUvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05G SUdfRklMRVMgZ2RiLnBpZS9NYWtlZmlsZSIgOzsKKyAgICAgImdkYi5weXRob24vTWFrZWZpbGUi KSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnB5dGhvbi9NYWtlZmlsZSIgOzsKKyAg ICAgImdkYi5yZXZlcnNlL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdk Yi5yZXZlcnNlL01ha2VmaWxlIiA7OworICAgICAiZ2RiLnRocmVhZHMvTWFrZWZpbGUiKSBDT05G SUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnRocmVhZHMvTWFrZWZpbGUiIDs7CitJbmRleDog Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwky MDA5LTA4LTAzIDExOjEwOjEyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5jCTIwMDktMDktMDkgMTk6MDY6MDEuMDAw MDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDIwIEBACiArLyogVGhpcyBwcm9ncmFtIGlzIGludGVu ZGVkIHRvIGJlIHN0YXJ0ZWQgb3V0c2lkZSBvZiBnZGIsIGFuZCB0aGVuCiArICAgYXR0YWNoZWQg dG8gYnkgZ2RiLiAgVGh1cywgaXQgc2ltcGx5IHNwaW5zIGluIGEgbG9vcC4gIFRoZSBsb29wCkBA IC01NiwxMCArNTYsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0 ZS9nZGIucGllL2F0dGFjaC5jCiArICAgIH0KICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMKK0luZGV4OiBn ZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMJ MjAwOS0wOC0wMyAxMToxMDoxMi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2gyLmMJMjAwOS0wOS0wOSAxOTowNjowMS4w MDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMjQgQEAKICsvKiBUaGlzIHByb2dyYW0gaXMgaW50 ZW5kZWQgdG8gYmUgc3RhcnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4KICsgICBhdHRhY2hl ZCB0byBieSBnZGIuICBUaHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29wLiAgVGhlIGxvb3AK QEAgLTg1LDEwICs4NSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvYXR0YWNoMi5jCiArICAgIH0KICsgIHJldHVybiAoMCk7CiArfQotSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMKK0luZGV4 OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwky MDA5LTA4LTAzIDExOjEwOjEyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5 MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMJMjAwOS0wOS0wOSAxOTowNjowMS4wMDAw MDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMTQ2IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0 IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTIzNiwxMCArMjM2LDEwIEBAIEluZGV4 OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5jCiArICAg IH0KICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9icmVhazEuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rl c3RzdWl0ZS9nZGIucGllL2JyZWFrMS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMi9n ZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMJMjAwOS0wOC0wMyAxMToxMDoxMi4wMDAwMDAw MDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9i cmVhazEuYwkyMDA5LTA5LTA5IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSw0 NCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIu CiArCkBAIC0yODUsMTAgKzI4NSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIv dGVzdHN1aXRlL2dkYi5waWUvYnJlYWsxLmMKICt2b2lkIG1hcmtlcjMgKGEsIGIpIGNoYXIgKmEs ICpiOyB7fQkvKiBzZXQgYnJlYWtwb2ludCAxOCBoZXJlICovCiArdm9pZCBtYXJrZXI0IChkKSBs b25nIGQ7IHt9CQkvKiBzZXQgYnJlYWtwb2ludCAxMyBoZXJlICovCiArI2VuZGlmCi1JbmRleDog Z2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZW1ha2VyLmMKK0lu ZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAw MCArMDAwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2Nv cmVtYWtlci5jCTIwMDktMDgtMDMgMTE6MTA6MTIuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYu OC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZW1ha2VyLmMJMjAwOS0wOS0w OSAxOTowNjowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsMTQyIEBACiArLyogQ29weXJp Z2h0IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTkKICsgICBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KQEAgLTQzMiwxMCArNDMyLDEwIEBAIEluZGV4OiBnZGItNi44LjUw LjIwMDkwODAyL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwogKyAgcmV0dXJuIDA7 CiArfQogKwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGll L2F0dGFjaC5leHAKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2Ri LnBpZS9hdHRhY2guZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvYXR0YWNoLmV4cAkyMDA5LTA4LTAzIDExOjEwOjEyLjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5l eHAJMjAwOS0wOS0wOSAxOTowNjowMS4wMDAwMDAwMDAgKzAyMDAKIEBAIC0wLDAgKzEsNDMyIEBA CiArIyAgIENvcHlyaWdodCAxOTk3LCAxOTk5LCAyMDAyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgogKwpAQCAtODY5LDEwICs4NjksMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5leHAKICtkb19jYWxsX2F0dGFjaF90ZXN0 cwogKwogK3JldHVybiAwCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1aXRl L2dkYi5waWUvYnJlYWsuZXhwCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvYnJlYWsuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIv dGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuZXhwCTIwMDktMDgtMDMgMTE6MTA6MTIuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJl YWsuZXhwCTIwMDktMDktMDkgMTk6MDY6MDEuMDAwMDAwMDAwICswMjAwCiBAQCAtMCwwICsxLDk3 NyBAQAogKyMgICBDb3B5cmlnaHQgMTk4OCwgMTk5MCwgMTk5MSwgMTk5MiwgMTk5NCwgMTk5NSwg MTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKICsjICAgMjAwMCwgMjAwMiwgMjAwMywgMjAwNApAQCAt MTg1MSwxMCArMTg1MSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvdGVzdHN1 aXRlL2dkYi5waWUvYnJlYWsuZXhwCiArICAgIHNlbmRfZ2RiICJzZXQgYXJncyBtYWluXG4iCiAr ICAgIGdkYl9leHBlY3QgLXJlICIuKiRnZGJfcHJvbXB0ICQiIHt9CiArfQotSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAorSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVm aWxlLmV4cAkyMDA5LTA4LTAzIDExOjEwOjEyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxlLmV4cAkyMDA5LTA5LTA5 IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwyNDMgQEAKICsjIENvcHlyaWdo dCAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwCiAr IyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTIwOTksMTAgKzIwOTksMTAgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDIvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVmaWxl LmV4cAogK2dkYl90ZXN0ICJ1cCIgIiNcWzAtOVxdKiAqXFswLTl4YS1mSCdcXSogaW4gLiogXFwo XFwpLioiICJ1cCBpbiBjb3JlZmlsZS5leHAgKHJlaW5pdCkiCiArCiArZ2RiX3Rlc3QgImNvcmUi ICJObyBjb3JlIGZpbGUgbm93LiIKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAyL2dkYi90ZXN0 c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2Ri L3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTYuOC41MC4yMDA5 MDgwMi9nZGIvdGVzdHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4JMjAwOS0wOC0wMyAxMToxMDox Mi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9NYWtlZmlsZS5pbgkyMDA5LTA5LTA5IDE5OjA2OjAxLjAwMDAwMDAwMCArMDIwMAog QEAgLTAsMCArMSwxOSBAQAogK1ZQQVRIID0gQHNyY2RpckAKICtzcmNkaXIgPSBAc3JjZGlyQAoK ZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtcnBtLnBhdGNoIGIvZ2RiLTYuNi1i dWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2gKaW5kZXggM2Q3YWFmMS4uMzJjYmNhMyAxMDA2NDQKLS0t IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlk LWxvY2F0ZS1ycG0ucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTYuOC41MC4yMDA5 MDgwMy9nZGIvZXZlbnQtdG9wLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9ldmVu dC10b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZXZl bnQtdG9wLmMJMjAwOS0wOC0wMyAxNjoxNzoxMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi9ldmVudC10b3AuYwkyMDA5LTA4LTAzIDE2OjE3OjU5LjAwMDAwMDAw MCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAw OS0wOS0wOSAyMDowNTo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi9ldmVudC10b3AuYwkyMDA5LTA5LTA5IDIwOjA4OjA0LjAwMDAwMDAwMCArMDIwMAogQEAg LTMzLDYgKzMzLDcgQEAKICAjaW5jbHVkZSAiY2xpL2NsaS1zY3JpcHQuaCIgICAgIC8qIGZvciBy ZXNldF9jb21tYW5kX25lc3RfZGVwdGggKi8KICAjaW5jbHVkZSAibWFpbi5oIgpAQCAtMjgsMTEg KzI4LDExIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9ldmVudC10b3AuYwogICAg LyogRWFjaCBpbnRlcnByZXRlciBoYXMgaXRzIG93biBydWxlcyBvbiBkaXNwbGF5aW5nIHRoZSBj b21tYW5kCiAgICAgICBwcm9tcHQuICAqLwogICAgaWYgKCFjdXJyZW50X2ludGVycF9kaXNwbGF5 X3Byb21wdF9wICgpKQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bWZpbGUuYwor SW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDktMDgtMDMgMTY6MTc6 MTAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5j CTIwMDktMDgtMDMgMTY6MTc6NTkuMDAwMDAwMDAwICswMjAwCi1AQCAtNTYsNiArNTYsNyBAQAor LS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDktMDktMDkgMjA6 MDg6MDQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc3ltZmls ZS5jCTIwMDktMDktMDkgMjA6MDg6MDQuMDAwMDAwMDAwICswMjAwCitAQCAtNTcsNiArNTcsNyBA QAogICNpbmNsdWRlICJzb2xpYi5oIgogICNpbmNsdWRlICJyZW1vdGUuaCIKICAjaW5jbHVkZSAi bGliYmZkLmgiCkBAIC00MCw3ICs0MCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dk Yi9zeW1maWxlLmMKICAKICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAgI2luY2x1ZGUgPGZjbnRs Lmg+Ci1AQCAtNjQsNiArNjUsNyBAQAorQEAgLTY1LDYgKzY2LDcgQEAKICAjaW5jbHVkZSA8Y3R5 cGUuaD4KICAjaW5jbHVkZSA8dGltZS5oPgogICNpbmNsdWRlIDxzeXMvdGltZS5oPgpAQCAtNDgs NyArNDgsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltZmlsZS5jCiAgCiAg CiAgaW50ICgqZGVwcmVjYXRlZF91aV9sb2FkX3Byb2dyZXNzX2hvb2spIChjb25zdCBjaGFyICpz ZWN0aW9uLCB1bnNpZ25lZCBsb25nIG51bSk7Ci1AQCAtMTY5Miw4ICsxNjk0LDM1MiBAQCBidWls ZF9pZF90b19maWxlbmFtZSAoc3RydWN0IGJ1aWxkX2lkICpiCitAQCAtMTY3Myw4ICsxNjc1LDM1 MiBAQCBidWlsZF9pZF90b19maWxlbmFtZSAoc3RydWN0IGJ1aWxkX2lkICpiCiAgICByZXR1cm4g cmV0dmFsOwogIH0KICAKQEAgLTQwMiw3ICs0MDIsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5 MDgwMy9nZGIvc3ltZmlsZS5jCiAgICAgYXZvaWRhbmNlLiAgKi8KICAKICBzdHJ1Y3QgbWlzc2lu Z19maWxlcGFpcgotQEAgLTE3NDcsMTEgKzIwOTMsMTcgQEAgbWlzc2luZ19maWxlcGFpcl9jaGFu Z2UgKHZvaWQpCitAQCAtMTcyOCwxMSArMjA3NCwxNyBAQCBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5n ZSAodm9pZCkKICAgICAgICAvKiBBbGwgdGhlaXIgbWVtb3J5IGNhbWUganVzdCBmcm9tIG1pc3Np bmdfZmlsZXBhaXJfT0JTVEFDSy4gICovCiAgICAgICAgbWlzc2luZ19maWxlcGFpcl9oYXNoID0g TlVMTDsKICAgICAgfQpAQCAtNDIwLDcgKzQyMCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9zeW1maWxlLmMKICAgIG1pc3NpbmdfZmlsZXBhaXJfY2hhbmdlICgpOwogIH0KICAK LUBAIC0xODE4LDE0ICsyMTcwLDMzIEBAIGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNoYXIg KmJpbmFyeSwKK0BAIC0xNzk5LDE0ICsyMTUxLDMzIEBAIGRlYnVnX3ByaW50X21pc3NpbmcgKGNv bnN0IGNoYXIgKmJpbmFyeSwKICAKICAgICpzbG90ID0gbWlzc2luZ19maWxlcGFpcjsKICAKQEAg LTQ2MSwxMSArNDYxLDExIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9zeW1maWxl LmMKICB9CiAgCiAgc3RhdGljIGNoYXIgKgotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L3N5bWZpbGUuaAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvc3ltZmlsZS5oCTIwMDkt MDgtMDMgMTY6MTc6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9n ZGIvc3ltZmlsZS5oCTIwMDktMDgtMDMgMTY6MTc6NTkuMDAwMDAwMDAwICswMjAwCi1AQCAtMzk0 LDYgKzM5NCw3IEBAIGV4dGVybiBzdHJ1Y3QgYnVpbGRfaWQgKmJ1aWxkX2lkX2FkZHJfZ2UKKy0t LSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDA5LTA5LTA5IDIwOjA4 OjA0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3N5bWZpbGUu aAkyMDA5LTA5LTA5IDIwOjA4OjA0LjAwMDAwMDAwMCArMDIwMAorQEAgLTM4Nyw2ICszODcsNyBA QCBleHRlcm4gc3RydWN0IGJ1aWxkX2lkICpidWlsZF9pZF9hZGRyX2dlCiAgZXh0ZXJuIGNoYXIg KmJ1aWxkX2lkX3RvX2ZpbGVuYW1lIChzdHJ1Y3QgYnVpbGRfaWQgKmJ1aWxkX2lkLAogIAkJCQkg ICBjaGFyICoqbGlua19yZXR1cm4sIGludCBhZGRfZGVidWdfc3VmZml4KTsKICBleHRlcm4gdm9p ZCBkZWJ1Z19wcmludF9taXNzaW5nIChjb25zdCBjaGFyICpiaW5hcnksIGNvbnN0IGNoYXIgKmRl YnVnKTsKQEAgLTQ3MywxMCArNDczLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dk Yi9zeW1maWxlLmgKICAKICAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAotSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMDktMDgt MDMgMTY6MTc6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv dGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMDktMDgtMDMgMTY6MTc6NTkuMDAwMDAwMDAwICswMjAw CistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJ MjAwOS0wOS0wOSAyMDowODowNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAwOS0wOS0wOSAyMDowODowNC4wMDAwMDAw MDAgKzAyMDAKIEBAIC0xMjQ4LDcgKzEyNDgsNyBAQCBwcm9jIGRlZmF1bHRfZ2RiX3N0YXJ0IHsg fSB7CiAgCSAgICB3YXJuaW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgogIAl9CkBA IC00ODYsMTAgKzQ4NiwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1 aXRlL2xpYi9nZGIuZXhwCiAgICAgIHNlbmRfZ2RiICJzZXQgYnVpbGQtaWQtdmVyYm9zZSAwXG4i CiAgICAgIGdkYl9leHBlY3QgMTAgewogIAktcmUgIiRnZGJfcHJvbXB0ICQiIHsKLUluZGV4OiBn ZGItNi44LjUwLjIwMDkwODAzL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCitJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvdGVzdHN1aXRlL2xp Yi9taS1zdXBwb3J0LmV4cAkyMDA5LTA4LTAzIDE2OjE3OjEwLjAwMDAwMDAwMCArMDIwMAotKysr IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAw OS0wOC0wMyAxNjoxNzo1OS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5 Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAwOS0wOS0wOSAyMDowODow NC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUv bGliL21pLXN1cHBvcnQuZXhwCTIwMDktMDktMDkgMjA6MDg6MDQuMDAwMDAwMDAwICswMjAwCiBA QCAtMjIxLDcgKzIyMSw3IEBAIHByb2MgZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0gewog IAkgICAgfQogICAgICAJfQpAQCAtNDk5LDEwICs0OTksMTAgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICAgICAgc2VuZF9nZGIg IjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxuIgogICAgICBnZGJfZXhwZWN0IDEwIHsK ICAJLXJlICIuKjE5MC1nZGItc2V0IGJ1aWxkLWlkLXZlcmJvc2UgMFxyXG4xOTBcXFxeZG9uZVxy XG4kbWlfZ2RiX3Byb21wdCQiIHsKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90dWkv dHVpLWludGVycC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdHVpL3R1aS1pbnRl cnAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvdHVpL3R1 aS1pbnRlcnAuYwkyMDA5LTA4LTAzIDE2OjE3OjEwLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL3R1aS90dWktaW50ZXJwLmMJMjAwOS0wOC0wMyAxNjoxNzo1OS4w MDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3R1aS90dWkt aW50ZXJwLmMJMjAwOS0wOS0wOSAyMDowNTo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi90dWkvdHVpLWludGVycC5jCTIwMDktMDktMDkgMjA6MDg6MDQuMDAw MDAwMDAwICswMjAwCiBAQCAtMzAsNiArMzAsNyBAQAogICNpbmNsdWRlICJ0dWkvdHVpLmgiCiAg I2luY2x1ZGUgInR1aS90dWktaW8uaCIKQEAgLTUyMCwxMyArNTIwLDEzIEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODAzL2dkYi90dWkvdHVpLWludGVycC5jCiAgICAgICAgLyogVGVsbCByZWFk bGluZSB3aGF0IHRoZSBwcm9tcHQgdG8gZGlzcGxheSBpcyBhbmQgd2hhdCBmdW5jdGlvbgogICAg ICAgICAgIGl0IHdpbGwgbmVlZCB0byBjYWxsIGFmdGVyIGEgd2hvbGUgbGluZSBpcyByZWFkLiBU aGlzIGFsc28KICAgICAgICAgICBkaXNwbGF5cyB0aGUgZmlyc3QgcHJvbXB0LiAgKi8KLUluZGV4 OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9hY2xvY2FsLm00CitJbmRleDogZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvYWNsb2NhbC5tNAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4 MDMub3JpZy9nZGIvYWNsb2NhbC5tNAkyMDA5LTA4LTAzIDE2OjE3OjEwLjAwMDAwMDAwMCArMDIw MAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2FjbG9jYWwubTQJMjAwOS0wOC0wMyAxNjox OToyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xMSw2ICsxMSwxNjIgQEAKLSAjIGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSAjIFBB UlRJQ1VMQVIgUFVSUE9TRS4KKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2FjbG9j YWwubTQJMjAwOS0wOS0wOSAyMDowNTo0OC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUw LjIwMDkwOTA5L2dkYi9hY2xvY2FsLm00CTIwMDktMDktMDkgMjA6MDk6MzIuMDAwMDAwMDAwICsw MjAwCitAQCAtMTksNiArMTksMTYyIEBAIFlvdSBoYXZlIGFub3RoZXIgdmVyc2lvbiBvZiBhdXRv Y29uZi4gIEkKKyBJZiB5b3UgaGF2ZSBwcm9ibGVtcywgeW91IG1heSBuZWVkIHRvIHJlZ2VuZXJh dGUgdGhlIGJ1aWxkIHN5c3RlbSBlbnRpcmVseS4KKyBUbyBkbyBzbywgdXNlIHRoZSBwcm9jZWR1 cmUgZG9jdW1lbnRlZCBieSB0aGUgcGFja2FnZSwgdHlwaWNhbGx5IGBhdXRvcmVjb25mJy5dKV0p CiAgCiArIyBwa2cubTQgLSBNYWNyb3MgdG8gbG9jYXRlIGFuZCB1dGlsaXNlIHBrZy1jb25maWcu ICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogKyMgCkBAIC02ODQsMTQgKzY4NCwxNCBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYWNsb2NhbC5tNAogK2ZpW11kbmwKICtdKSMg UEtHX0NIRUNLX01PRFVMRVMKICsKLSAjIENvcHlyaWdodCAoQykgMjAwMiwgMjAwMywgMjAwNSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIw MDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogICMKICAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlnLmluCitJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlnLmluCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9jb25maWcuaW4JMjAwOS0wOC0wMyAxNjoxNzoxMC4w MDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWcuaW4JMjAw OS0wOC0wMyAxNjoxNzo1OS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0zOSw2ICszOSw5IEBACistLS0g Z2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9jb25maWcuaW4JMjAwOS0wOS0wOSAyMDowODow NC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9jb25maWcuaW4J MjAwOS0wOS0wOSAyMDowODowNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC00Miw2ICs0Miw5IEBACiAg LyogRGVmaW5lIHRvIEJGRCdzIGRlZmF1bHQgdGFyZ2V0IHZlY3Rvci4gKi8KICAjdW5kZWYgREVG QVVMVF9CRkRfVkVDCiAgCkBAIC03MDEsNyArNzAxLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAw OTA4MDMvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHRyYW5zbGF0aW9uIG9mIHBy b2dyYW0gbWVzc2FnZXMgdG8gdGhlIHVzZXIncyBuYXRpdmUKICAgICBsYW5ndWFnZSBpcyByZXF1 ZXN0ZWQuICovCiAgI3VuZGVmIEVOQUJMRV9OTFMKLUBAIC0yMTgsNiArMjIxLDkgQEAKK0BAIC0y MjEsNiArMjI0LDkgQEAKICAvKiBEZWZpbmUgaWYgUHl0aG9uIDIuNiBpcyBiZWluZyB1c2VkLiAq LwogICN1bmRlZiBIQVZFX0xJQlBZVEhPTjJfNgogIApAQCAtNzExLDU4ICs3MTEsNTggQEAgSW5k ZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSBpZiBsaWJ1 bndpbmQgbGlicmFyeSBpcyBiZWluZyB1c2VkLiAqLwogICN1bmRlZiBIQVZFX0xJQlVOV0lORAog IAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQorSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA5MDkvZ2RiL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTA4MDMub3JpZy9nZGIvY29uZmlndXJlCTIwMDktMDgtMDMgMTY6MTc6MTAuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCTIwMDktMDgtMDMg MTY6MjA6MDkuMDAwMDAwMDAwICswMjAwCi1AQCAtMzE0LDcgKzMxNCw3IEBAIGFjX3N1YmRpcnNf YWxsPSIkYWNfc3ViZGlyc19hbGwgZG9jIHRlc3QKLSBhY19zdWJkaXJzX2FsbD0iJGFjX3N1YmRp cnNfYWxsIGdkYnRrIgotIGFjX3N1YmRpcnNfYWxsPSIkYWNfc3ViZGlyc19hbGwgbXVsdGktaWNl IgotIGFjX3N1YmRpcnNfYWxsPSIkYWNfc3ViZGlyc19hbGwgZ2Ric2VydmVyIgotLWFjX3N1YnN0 X3ZhcnM9J1NIRUxMIFBBVEhfU0VQQVJBVE9SIFBBQ0tBR0VfTkFNRSBQQUNLQUdFX1RBUk5BTUUg UEFDS0FHRV9WRVJTSU9OIFBBQ0tBR0VfU1RSSU5HIFBBQ0tBR0VfQlVHUkVQT1JUIGV4ZWNfcHJl Zml4IHByZWZpeCBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIGJpbmRpciBzYmluZGlyIGxpYmV4ZWNk aXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3RhdGVkaXIgbGliZGly IGluY2x1ZGVkaXIgb2xkaW5jbHVkZWRpciBpbmZvZGlyIG1hbmRpciBidWlsZF9hbGlhcyBob3N0 X2FsaWFzIHRhcmdldF9hbGlhcyBERUZTIEVDSE9fQyBFQ0hPX04gRUNIT19UIExJQlMgTUFJTlRB SU5FUl9NT0RFX1RSVUUgTUFJTlRBSU5FUl9NT0RFX0ZBTFNFIE1BSU5UIENDIENGTEFHUyBMREZM QUdTIENQUEZMQUdTIGFjX2N0X0NDIEVYRUVYVCBPQkpFWFQgQ1BQIEVHUkVQIFJBTkxJQiBhY19j dF9SQU5MSUIgYnVpbGQgYnVpbGRfY3B1IGJ1aWxkX3ZlbmRvciBidWlsZF9vcyBob3N0IGhvc3Rf Y3B1IGhvc3RfdmVuZG9yIGhvc3Rfb3MgdGFyZ2V0IHRhcmdldF9jcHUgdGFyZ2V0X3ZlbmRvciB0 YXJnZXRfb3MgYW1fX2xlYWRpbmdfZG90IERFUERJUiBDQ0RFUE1PREUgTUFLRSBHTUFLRV9UUlVF IEdNQUtFX0ZBTFNFIFNFVF9NQUtFIFVTRV9OTFMgTElCSU5UTCBMSUJJTlRMX0RFUCBJTkNJTlRM IFhHRVRURVhUIEdNU0dGTVQgUE9TVUIgQ0FUQUxPR1MgREFUQURJUk5BTUUgSU5TVE9CSkVYVCBH RU5DQVQgQ0FUT0JKRVhUIGxvY2FsZWRpciBHTF9DT05EX0xJQlRPT0xfVFJVRSBHTF9DT05EX0xJ QlRPT0xfRkFMU0UgR05VTElCX01FTU1FTSBHTlVMSUJfTUVNUENQWSBHTlVMSUJfTUVNUkNIUiBH TlVMSUJfU1RQQ1BZIEdOVUxJQl9TVFBOQ1BZIEdOVUxJQl9TVFJDSFJOVUwgR05VTElCX1NUUkRV UCBHTlVMSUJfU1RSTkRVUCBHTlVMSUJfU1RSTkxFTiBHTlVMSUJfU1RSUEJSSyBHTlVMSUJfU1RS U0VQIEdOVUxJQl9TVFJTVFIgR05VTElCX1NUUkNBU0VTVFIgR05VTElCX1NUUlRPS19SIEdOVUxJ Ql9NQlNMRU4gR05VTElCX01CU05MRU4gR05VTElCX01CU0NIUiBHTlVMSUJfTUJTUkNIUiBHTlVM SUJfTUJTU1RSIEdOVUxJQl9NQlNDQVNFQ01QIEdOVUxJQl9NQlNOQ0FTRUNNUCBHTlVMSUJfTUJT UENBU0VDTVAgR05VTElCX01CU0NBU0VTVFIgR05VTElCX01CU0NTUE4gR05VTElCX01CU1BCUksg R05VTElCX01CU1NQTiBHTlVMSUJfTUJTU0VQIEdOVUxJQl9NQlNUT0tfUiBHTlVMSUJfU1RSRVJS T1IgR05VTElCX1NUUlNJR05BTCBIQVZFX0RFQ0xfTUVNTUVNIEhBVkVfTUVNUENQWSBIQVZFX0RF Q0xfTUVNUkNIUiBIQVZFX1NUUENQWSBIQVZFX1NUUE5DUFkgSEFWRV9TVFJDSFJOVUwgSEFWRV9E RUNMX1NUUkRVUCBIQVZFX1NUUk5EVVAgSEFWRV9ERUNMX1NUUk5EVVAgSEFWRV9ERUNMX1NUUk5M RU4gSEFWRV9TVFJQQlJLIEhBVkVfU1RSU0VQIEhBVkVfU1RSQ0FTRVNUUiBIQVZFX0RFQ0xfU1RS VE9LX1IgSEFWRV9ERUNMX1NUUkVSUk9SIEhBVkVfREVDTF9TVFJTSUdOQUwgUkVQTEFDRV9TVFJF UlJPUiBSRVBMQUNFX1NUUlNJR05BTCBSRVBMQUNFX01FTU1FTSBSRVBMQUNFX1NUUkNBU0VTVFIg UkVQTEFDRV9TVFJTVFIgSEFWRV9MT05HX0xPTkdfSU5UIEhBVkVfVU5TSUdORURfTE9OR19MT05H X0lOVCBIQVZFX0lOVFRZUEVTX0ggSEFWRV9TWVNfVFlQRVNfSCBJTkNMVURFX05FWFQgTkVYVF9T VERJTlRfSCBIQVZFX1NURElOVF9IIEhBVkVfU1lTX0lOVFRZUEVTX0ggSEFWRV9TWVNfQklUWVBF U19IIEJJVFNJWkVPRl9QVFJESUZGX1QgQklUU0laRU9GX1NJR19BVE9NSUNfVCBCSVRTSVpFT0Zf U0laRV9UIEJJVFNJWkVPRl9XQ0hBUl9UIEJJVFNJWkVPRl9XSU5UX1QgSEFWRV9TSUdORURfU0lH X0FUT01JQ19UIEhBVkVfU0lHTkVEX1dDSEFSX1QgSEFWRV9TSUdORURfV0lOVF9UIFBUUkRJRkZf VF9TVUZGSVggU0lHX0FUT01JQ19UX1NVRkZJWCBTSVpFX1RfU1VGRklYIFdDSEFSX1RfU1VGRklY IFdJTlRfVF9TVUZGSVggU1RESU5UX0ggTkVYVF9TVFJJTkdfSCBHTlVMSUJfV0NXSURUSCBIQVZF X0RFQ0xfV0NXSURUSCBSRVBMQUNFX1dDV0lEVEggV0NIQVJfSCBIQVZFX1dDSEFSX0ggTkVYVF9X Q0hBUl9IIExJQkdOVV9MSUJERVBTIExJQkdOVV9MVExJQkRFUFMgR05VTElCX1NURElOVF9IIFBB Q0tBR0UgSU5TVEFMTF9QUk9HUkFNIElOU1RBTExfU0NSSVBUIElOU1RBTExfREFUQSBDWUdQQVRI X1cgVkVSU0lPTiBBQ0xPQ0FMIEFVVE9DT05GIEFVVE9NQUtFIEFVVE9IRUFERVIgTUFLRUlORk8g aW5zdGFsbF9zaCBTVFJJUCBhY19jdF9TVFJJUCBJTlNUQUxMX1NUUklQX1BST0dSQU0gbWtkaXJf cCBBV0sgQU1UQVIgYW1fX3RhciBhbV9fdW50YXIgYW1fX2luY2x1ZGUgYW1fX3F1b3RlIEFNREVQ X1RSVUUgQU1ERVBfRkFMU0UgQU1ERVBCQUNLU0xBU0ggYW1fX2Zhc3RkZXBDQ19UUlVFIGFtX19m YXN0ZGVwQ0NfRkFMU0UgREVCVUdESVIgR0RCX0RBVEFESVIgR0RCX0RBVEFESVJfUEFUSCBweXRo b25kaXIgc3ViZGlycyBUQVJHRVRfT0JTIFBLR1ZFUlNJT04gUkVQT1JUX0JVR1NfVE8gUkVQT1JU X0JVR1NfVEVYSSBMTl9TIFlBQ0MgQVIgYWNfY3RfQVIgRExMVE9PTCBhY19jdF9ETExUT09MIFdJ TkRSRVMgYWNfY3RfV0lORFJFUyBNSUcgYWNfY3RfTUlHIFJFQURMSU5FIFJFQURMSU5FX0RFUFMg UkVBRExJTkVfQ0ZMQUdTIEhBVkVfTElCRVhQQVQgTElCRVhQQVQgTFRMSUJFWFBBVCBQWVRIT05f Q0ZMQUdTIEFMTE9DQSBDT05GSUdfTERGTEFHUyBUQVJHRVRfU1lTVEVNX1JPT1QgVEFSR0VUX1NZ U1RFTV9ST09UX0RFRklORSBTWVNURU1fR0RCSU5JVCBXQVJOX0NGTEFHUyBXRVJST1JfQ0ZMQUdT IFNFUl9IQVJEV0lSRSBXSU4zMkxJQlMgTElCR1VJIEdVSV9DRkxBR1NfWCBXSU4zMkxEQVBQIFRD TF9WRVJTSU9OIFRDTF9QQVRDSF9MRVZFTCBUQ0xfQklOX0RJUiBUQ0xfU1JDX0RJUiBUQ0xfTElC X0ZJTEUgVENMX0xJQl9GTEFHIFRDTF9MSUJfU1BFQyBUQ0xfU1RVQl9MSUJfRklMRSBUQ0xfU1RV Ql9MSUJfRkxBRyBUQ0xfU1RVQl9MSUJfU1BFQyBUQ0xfSU5DTFVERSBUQ0xfTElCUkFSWSBUQ0xf REVQUyBUS19WRVJTSU9OIFRLX0JJTl9ESVIgVEtfU1JDX0RJUiBUS19MSUJfRklMRSBUS19MSUJf RkxBRyBUS19MSUJfU1BFQyBUS19TVFVCX0xJQl9GSUxFIFRLX1NUVUJfTElCX0ZMQUcgVEtfU1RV Ql9MSUJfU1BFQyBUS19JTkNMVURFIFRLX0xJQlJBUlkgVEtfREVQUyBUS19YSU5DTFVERVMgWF9D RkxBR1MgWF9MREZMQUdTIFhfTElCUyBHREJUS0xJQlMgR0RCVEtfQ0ZMQUdTIEdEQlRLX1NSQ19E SVIgU0lNIFNJTV9PQlMgRU5BQkxFX0NGTEFHUyBQUk9GSUxFX0NGTEFHUyBDT05GSUdfT0JTIENP TkZJR19ERVBTIENPTkZJR19TUkNTIENPTkZJR19BTEwgQ09ORklHX0NMRUFOIENPTkZJR19JTlNU QUxMIENPTkZJR19VTklOU1RBTEwgdGFyZ2V0X3N1YmRpciBmcmFncyBHREJfTk1fRklMRSBkYXRh cm9vdGRpciBkb2NkaXIgaHRtbGRpciBwZGZkaXIgTElCT0JKUyBMVExJQk9CSlMgZ2xfTElCT0JK UyBnbF9MVExJQk9CSlMgZ2x0ZXN0c19MSUJPQkpTIGdsdGVzdHNfTFRMSUJPQkpTJwotK2FjX3N1 YnN0X3ZhcnM9J1NIRUxMIFBBVEhfU0VQQVJBVE9SIFBBQ0tBR0VfTkFNRSBQQUNLQUdFX1RBUk5B TUUgUEFDS0FHRV9WRVJTSU9OIFBBQ0tBR0VfU1RSSU5HIFBBQ0tBR0VfQlVHUkVQT1JUIGV4ZWNf cHJlZml4IHByZWZpeCBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIGJpbmRpciBzYmluZGlyIGxpYmV4 ZWNkaXIgZGF0YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3RhdGVkaXIgbGli ZGlyIGluY2x1ZGVkaXIgb2xkaW5jbHVkZWRpciBpbmZvZGlyIG1hbmRpciBidWlsZF9hbGlhcyBo b3N0X2FsaWFzIHRhcmdldF9hbGlhcyBERUZTIEVDSE9fQyBFQ0hPX04gRUNIT19UIExJQlMgTUFJ TlRBSU5FUl9NT0RFX1RSVUUgTUFJTlRBSU5FUl9NT0RFX0ZBTFNFIE1BSU5UIENDIENGTEFHUyBM REZMQUdTIENQUEZMQUdTIGFjX2N0X0NDIEVYRUVYVCBPQkpFWFQgQ1BQIEVHUkVQIFJBTkxJQiBh Y19jdF9SQU5MSUIgYnVpbGQgYnVpbGRfY3B1IGJ1aWxkX3ZlbmRvciBidWlsZF9vcyBob3N0IGhv c3RfY3B1IGhvc3RfdmVuZG9yIGhvc3Rfb3MgdGFyZ2V0IHRhcmdldF9jcHUgdGFyZ2V0X3ZlbmRv ciB0YXJnZXRfb3MgYW1fX2xlYWRpbmdfZG90IERFUERJUiBDQ0RFUE1PREUgTUFLRSBHTUFLRV9U UlVFIEdNQUtFX0ZBTFNFIFNFVF9NQUtFIFVTRV9OTFMgTElCSU5UTCBMSUJJTlRMX0RFUCBJTkNJ TlRMIFhHRVRURVhUIEdNU0dGTVQgUE9TVUIgQ0FUQUxPR1MgREFUQURJUk5BTUUgSU5TVE9CSkVY VCBHRU5DQVQgQ0FUT0JKRVhUIGxvY2FsZWRpciBHTF9DT05EX0xJQlRPT0xfVFJVRSBHTF9DT05E X0xJQlRPT0xfRkFMU0UgR05VTElCX01FTU1FTSBHTlVMSUJfTUVNUENQWSBHTlVMSUJfTUVNUkNI UiBHTlVMSUJfU1RQQ1BZIEdOVUxJQl9TVFBOQ1BZIEdOVUxJQl9TVFJDSFJOVUwgR05VTElCX1NU UkRVUCBHTlVMSUJfU1RSTkRVUCBHTlVMSUJfU1RSTkxFTiBHTlVMSUJfU1RSUEJSSyBHTlVMSUJf U1RSU0VQIEdOVUxJQl9TVFJTVFIgR05VTElCX1NUUkNBU0VTVFIgR05VTElCX1NUUlRPS19SIEdO VUxJQl9NQlNMRU4gR05VTElCX01CU05MRU4gR05VTElCX01CU0NIUiBHTlVMSUJfTUJTUkNIUiBH TlVMSUJfTUJTU1RSIEdOVUxJQl9NQlNDQVNFQ01QIEdOVUxJQl9NQlNOQ0FTRUNNUCBHTlVMSUJf TUJTUENBU0VDTVAgR05VTElCX01CU0NBU0VTVFIgR05VTElCX01CU0NTUE4gR05VTElCX01CU1BC UksgR05VTElCX01CU1NQTiBHTlVMSUJfTUJTU0VQIEdOVUxJQl9NQlNUT0tfUiBHTlVMSUJfU1RS RVJST1IgR05VTElCX1NUUlNJR05BTCBIQVZFX0RFQ0xfTUVNTUVNIEhBVkVfTUVNUENQWSBIQVZF X0RFQ0xfTUVNUkNIUiBIQVZFX1NUUENQWSBIQVZFX1NUUE5DUFkgSEFWRV9TVFJDSFJOVUwgSEFW RV9ERUNMX1NUUkRVUCBIQVZFX1NUUk5EVVAgSEFWRV9ERUNMX1NUUk5EVVAgSEFWRV9ERUNMX1NU Uk5MRU4gSEFWRV9TVFJQQlJLIEhBVkVfU1RSU0VQIEhBVkVfU1RSQ0FTRVNUUiBIQVZFX0RFQ0xf U1RSVE9LX1IgSEFWRV9ERUNMX1NUUkVSUk9SIEhBVkVfREVDTF9TVFJTSUdOQUwgUkVQTEFDRV9T VFJFUlJPUiBSRVBMQUNFX1NUUlNJR05BTCBSRVBMQUNFX01FTU1FTSBSRVBMQUNFX1NUUkNBU0VT VFIgUkVQTEFDRV9TVFJTVFIgSEFWRV9MT05HX0xPTkdfSU5UIEhBVkVfVU5TSUdORURfTE9OR19M T05HX0lOVCBIQVZFX0lOVFRZUEVTX0ggSEFWRV9TWVNfVFlQRVNfSCBJTkNMVURFX05FWFQgTkVY VF9TVERJTlRfSCBIQVZFX1NURElOVF9IIEhBVkVfU1lTX0lOVFRZUEVTX0ggSEFWRV9TWVNfQklU WVBFU19IIEJJVFNJWkVPRl9QVFJESUZGX1QgQklUU0laRU9GX1NJR19BVE9NSUNfVCBCSVRTSVpF T0ZfU0laRV9UIEJJVFNJWkVPRl9XQ0hBUl9UIEJJVFNJWkVPRl9XSU5UX1QgSEFWRV9TSUdORURf U0lHX0FUT01JQ19UIEhBVkVfU0lHTkVEX1dDSEFSX1QgSEFWRV9TSUdORURfV0lOVF9UIFBUUkRJ RkZfVF9TVUZGSVggU0lHX0FUT01JQ19UX1NVRkZJWCBTSVpFX1RfU1VGRklYIFdDSEFSX1RfU1VG RklYIFdJTlRfVF9TVUZGSVggU1RESU5UX0ggTkVYVF9TVFJJTkdfSCBHTlVMSUJfV0NXSURUSCBI QVZFX0RFQ0xfV0NXSURUSCBSRVBMQUNFX1dDV0lEVEggV0NIQVJfSCBIQVZFX1dDSEFSX0ggTkVY VF9XQ0hBUl9IIExJQkdOVV9MSUJERVBTIExJQkdOVV9MVExJQkRFUFMgR05VTElCX1NURElOVF9I IFBBQ0tBR0UgSU5TVEFMTF9QUk9HUkFNIElOU1RBTExfU0NSSVBUIElOU1RBTExfREFUQSBDWUdQ QVRIX1cgVkVSU0lPTiBBQ0xPQ0FMIEFVVE9DT05GIEFVVE9NQUtFIEFVVE9IRUFERVIgTUFLRUlO Rk8gaW5zdGFsbF9zaCBTVFJJUCBhY19jdF9TVFJJUCBJTlNUQUxMX1NUUklQX1BST0dSQU0gbWtk aXJfcCBBV0sgQU1UQVIgYW1fX3RhciBhbV9fdW50YXIgYW1fX2luY2x1ZGUgYW1fX3F1b3RlIEFN REVQX1RSVUUgQU1ERVBfRkFMU0UgQU1ERVBCQUNLU0xBU0ggYW1fX2Zhc3RkZXBDQ19UUlVFIGFt X19mYXN0ZGVwQ0NfRkFMU0UgREVCVUdESVIgR0RCX0RBVEFESVIgR0RCX0RBVEFESVJfUEFUSCBw eXRob25kaXIgUEtHX0NPTkZJRyBhY19wdF9QS0dfQ09ORklHIFJQTV9DRkxBR1MgUlBNX0xJQlMg c3ViZGlycyBUQVJHRVRfT0JTIFBLR1ZFUlNJT04gUkVQT1JUX0JVR1NfVE8gUkVQT1JUX0JVR1Nf VEVYSSBMTl9TIFlBQ0MgQVIgYWNfY3RfQVIgRExMVE9PTCBhY19jdF9ETExUT09MIFdJTkRSRVMg YWNfY3RfV0lORFJFUyBNSUcgYWNfY3RfTUlHIFJFQURMSU5FIFJFQURMSU5FX0RFUFMgUkVBRExJ TkVfQ0ZMQUdTIEhBVkVfTElCRVhQQVQgTElCRVhQQVQgTFRMSUJFWFBBVCBQWVRIT05fQ0ZMQUdT IEFMTE9DQSBDT05GSUdfTERGTEFHUyBUQVJHRVRfU1lTVEVNX1JPT1QgVEFSR0VUX1NZU1RFTV9S T09UX0RFRklORSBTWVNURU1fR0RCSU5JVCBXQVJOX0NGTEFHUyBXRVJST1JfQ0ZMQUdTIFNFUl9I QVJEV0lSRSBXSU4zMkxJQlMgTElCR1VJIEdVSV9DRkxBR1NfWCBXSU4zMkxEQVBQIFRDTF9WRVJT SU9OIFRDTF9QQVRDSF9MRVZFTCBUQ0xfQklOX0RJUiBUQ0xfU1JDX0RJUiBUQ0xfTElCX0ZJTEUg VENMX0xJQl9GTEFHIFRDTF9MSUJfU1BFQyBUQ0xfU1RVQl9MSUJfRklMRSBUQ0xfU1RVQl9MSUJf RkxBRyBUQ0xfU1RVQl9MSUJfU1BFQyBUQ0xfSU5DTFVERSBUQ0xfTElCUkFSWSBUQ0xfREVQUyBU S19WRVJTSU9OIFRLX0JJTl9ESVIgVEtfU1JDX0RJUiBUS19MSUJfRklMRSBUS19MSUJfRkxBRyBU S19MSUJfU1BFQyBUS19TVFVCX0xJQl9GSUxFIFRLX1NUVUJfTElCX0ZMQUcgVEtfU1RVQl9MSUJf U1BFQyBUS19JTkNMVURFIFRLX0xJQlJBUlkgVEtfREVQUyBUS19YSU5DTFVERVMgWF9DRkxBR1Mg WF9MREZMQUdTIFhfTElCUyBHREJUS0xJQlMgR0RCVEtfQ0ZMQUdTIEdEQlRLX1NSQ19ESVIgU0lN IFNJTV9PQlMgRU5BQkxFX0NGTEFHUyBQUk9GSUxFX0NGTEFHUyBDT05GSUdfT0JTIENPTkZJR19E RVBTIENPTkZJR19TUkNTIENPTkZJR19BTEwgQ09ORklHX0NMRUFOIENPTkZJR19JTlNUQUxMIENP TkZJR19VTklOU1RBTEwgdGFyZ2V0X3N1YmRpciBmcmFncyBHREJfTk1fRklMRSBkYXRhcm9vdGRp ciBkb2NkaXIgaHRtbGRpciBwZGZkaXIgTElCT0JKUyBMVExJQk9CSlMgZ2xfTElCT0JKUyBnbF9M VExJQk9CSlMgZ2x0ZXN0c19MSUJPQkpTIGdsdGVzdHNfTFRMSUJPQkpTJwotIGFjX3N1YnN0X2Zp bGVzPSdob3N0X21ha2VmaWxlX2ZyYWcnCi0gYWNfcHdkPWBwd2RgCi0gCi1AQCAtNzc2LDYgKzc3 NiwxOCBAQCBhY19lbnZfQ1BQX3NldD0ke0NQUCtzZXR9Ci0gYWNfZW52X0NQUF92YWx1ZT0kQ1BQ Ci0gYWNfY3ZfZW52X0NQUF9zZXQ9JHtDUFArc2V0fQotIGFjX2N2X2Vudl9DUFBfdmFsdWU9JENQ UAotK2FjX2Vudl9QS0dfQ09ORklHX3NldD0ke1BLR19DT05GSUcrc2V0fQotK2FjX2Vudl9QS0df Q09ORklHX3ZhbHVlPSRQS0dfQ09ORklHCi0rYWNfY3ZfZW52X1BLR19DT05GSUdfc2V0PSR7UEtH X0NPTkZJRytzZXR9Ci0rYWNfY3ZfZW52X1BLR19DT05GSUdfdmFsdWU9JFBLR19DT05GSUcKLSth Y19lbnZfUlBNX0NGTEFHU19zZXQ9JHtSUE1fQ0ZMQUdTK3NldH0KLSthY19lbnZfUlBNX0NGTEFH U192YWx1ZT0kUlBNX0NGTEFHUwotK2FjX2N2X2Vudl9SUE1fQ0ZMQUdTX3NldD0ke1JQTV9DRkxB R1Mrc2V0fQotK2FjX2N2X2Vudl9SUE1fQ0ZMQUdTX3ZhbHVlPSRSUE1fQ0ZMQUdTCi0rYWNfZW52 X1JQTV9MSUJTX3NldD0ke1JQTV9MSUJTK3NldH0KLSthY19lbnZfUlBNX0xJQlNfdmFsdWU9JFJQ TV9MSUJTCi0rYWNfY3ZfZW52X1JQTV9MSUJTX3NldD0ke1JQTV9MSUJTK3NldH0KLSthY19jdl9l bnZfUlBNX0xJQlNfdmFsdWU9JFJQTV9MSUJTCi0gCi0gIwotICMgUmVwb3J0IHRoZSAtLWhlbHAg bWVzc2FnZS4KLUBAIC04OTUsNiArOTA3LDggQEAgT3B0aW9uYWwgUGFja2FnZXM6CistLS0gZ2Ri LTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9jb25maWd1cmUJMjAwOS0wOS0wOSAyMDowODowNC4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9jb25maWd1cmUJMjAw OS0wOS0wOSAyMDowOTozNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC02NzYsNiArNjc2LDkgQEAgUkVQ T1JUX0JVR1NfVE8KKyBQS0dWRVJTSU9OCisgVEFSR0VUX09CUworIHN1YmRpcnMKKytSUE1fTElC UworK1JQTV9DRkxBR1MKKytQS0dfQ09ORklHCisgcHl0aG9uZGlyCisgR0RCX0RBVEFESVJfUEFU SAorIEdEQl9EQVRBRElSCitAQCAtODg2LDYgKzg4OSw3IEBAIHdpdGhfc2VwYXJhdGVfZGVidWdf ZGlyCisgd2l0aF9nZGJfZGF0YWRpcgorIHdpdGhfcmVsb2NhdGVkX3NvdXJjZXMKKyB3aXRoX3B5 dGhvbmRpcgorK3dpdGhfcnBtCisgZW5hYmxlX3RhcmdldHMKKyBlbmFibGVfNjRfYml0X2JmZAor IGVuYWJsZV9nZGJjbGkKK0BAIC05MjUsNiArOTI5LDkgQEAgTERGTEFHUworIExJQlMKKyBDUFBG TEFHUworIENQUAorK1BLR19DT05GSUcKKytSUE1fQ0ZMQUdTCisrUlBNX0xJQlMKKyBZQUNDCisg WUZMQUdTCisgWE1LTUYnCitAQCAtMTU4OCw2ICsxNTk1LDggQEAgT3B0aW9uYWwgUGFja2FnZXM6 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbREFUQURJUi9nZGJdCiAgICAtLXdpdGgtcHl0 aG9uZGlyICAgICAgICBpbnN0YWxsIFB5dGhvbiBkYXRhIGZpbGVzIGluIHRoaXMgcGF0aAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgW0RBVEFESVIvZ2RiL3B5dGhvbl0KLSsgIC0td2l0aC1y cG0gICAgICAgICAgICAgIHF1ZXJ5IHJwbSBkYXRhYmFzZSBmb3IgbWlzc2luZyBkZWJ1Z2luZm9z Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICBbeWVzL25vLF0sIFtkZWYuXSwgW2F1dG89bGli cnBtLnNvXQorKyAgLS13aXRoLXJwbSAgICAgICAgICAgICAgcXVlcnkgcnBtIGRhdGFiYXNlIGZv ciBtaXNzaW5nIGRlYnVnaW5mb3MgKHllcy9ubywKKysgICAgICAgICAgICAgICAgICAgICAgICAg IGRlZi4gYXV0bz1saWJycG0uc28pCiAgICAtLXdpdGgtbGlidW53aW5kICAgICAgICB1c2UgbGli dW53aW5kIGZyYW1lIHVud2luZGluZyBzdXBwb3J0CiAgICAtLXdpdGgtY3Vyc2VzICAgICAgICAg ICB1c2UgdGhlIGN1cnNlcyBsaWJyYXJ5IGluc3RlYWQgb2YgdGhlIHRlcm1jYXAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpYnJhcnkKLUBAIC05MzIsNiArOTQ2LDkgQEAgU29tZSBpbmZs dWVudGlhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0gICBDUFBGTEFHUyAgICBDL0MrKyBwcmVw cm9jZXNzb3IgZmxhZ3MsIGUuZy4gLUk8aW5jbHVkZSBkaXI+IGlmIHlvdSBoYXZlCi0gICAgICAg ICAgICAgICBoZWFkZXJzIGluIGEgbm9uc3RhbmRhcmQgZGlyZWN0b3J5IDxpbmNsdWRlIGRpcj4K K0BAIC0xNjIxLDYgKzE2MzAsOSBAQCBTb21lIGluZmx1ZW50aWFsIGVudmlyb25tZW50IHZhcmlh YmxlczoKKyAgIENQUEZMQUdTICAgIEMvQysrL09iamVjdGl2ZSBDIHByZXByb2Nlc3NvciBmbGFn cywgZS5nLiAtSTxpbmNsdWRlIGRpcj4gaWYKKyAgICAgICAgICAgICAgIHlvdSBoYXZlIGhlYWRl cnMgaW4gYSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgogICAgQ1BQICAgICAg ICAgQyBwcmVwcm9jZXNzb3IKICsgIFBLR19DT05GSUcgIHBhdGggdG8gcGtnLWNvbmZpZyB1dGls aXR5CiArICBSUE1fQ0ZMQUdTICBDIGNvbXBpbGVyIGZsYWdzIGZvciBSUE0sIG92ZXJyaWRpbmcg cGtnLWNvbmZpZwogKyAgUlBNX0xJQlMgICAgbGlua2VyIGZsYWdzIGZvciBSUE0sIG92ZXJyaWRp bmcgcGtnLWNvbmZpZwotIAotIFVzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhlIGNo b2ljZXMgbWFkZSBieSBgY29uZmlndXJlJyBvciB0byBoZWxwCi0gaXQgdG8gZmluZCBsaWJyYXJp ZXMgYW5kIHByb2dyYW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgotQEAgLTcy OTAsNiArNzMwNyw1NTkgQEAgX0FDRU9GCisgICBZQUNDICAgICAgICBUaGUgYFlldCBBbm90aGVy IEMgQ29tcGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4gRGVmYXVsdHMgdG8KKyAgICAgICAg ICAgICAgIHRoZSBmaXJzdCBwcm9ncmFtIGZvdW5kIG91dCBvZjogYGJpc29uIC15JywgYGJ5YWNj JywgYHlhY2MnLgorICAgWUZMQUdTICAgICAgVGhlIGxpc3Qgb2YgYXJndW1lbnRzIHRoYXQgd2ls bCBiZSBwYXNzZWQgYnkgZGVmYXVsdCB0byAkWUFDQy4KK0BAIC02Njc1LDYgKzY2ODcsNDg2IEBA IF9BQ0VPRgogIGZpCiAgCiAgCkBAIC03ODMsMTMgKzc4MywxMyBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCiArIyAgIGNhbm5vdCBmaW5kIGxpYnJwbSB1c2UgdG8g dGhlIHJwbWxlc3MgY29tcGlsYXRpb24gKGxpa2UgYC0td2l0aG91dC1ycG0nKS4KICsKICsKLSsj IENoZWNrIHdoZXRoZXIgLS13aXRoLXJwbSBvciAtLXdpdGhvdXQtcnBtIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke3dpdGhfcnBtK3NldH0iID0gc2V0OyB0aGVuCi0rICB3aXRodmFsPSIkd2l0aF9y cG0iCi0rCisrIyBDaGVjayB3aGV0aGVyIC0td2l0aC1ycG0gd2FzIGdpdmVuLgorK2lmIHRlc3Qg IiR7d2l0aF9ycG0rc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9ycG07CiAr ZWxzZQogKyAgd2l0aF9ycG09ImF1dG8iCi0rZmk7CisrZmkKKysKICsKICsKICsKQEAgLTgwOSwy NSArODA5LDE4IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUKICsg IGZpCiArICBMSUJSUE1fU1RSSU5HPSciJyIkTElCUlBNIiciJwogKwotKyAgZWNobyAiJGFzX21l OiRMSU5FTk86IGNoZWNraW5nIHNwZWNpZmljIGxpYnJwbSB2ZXJzaW9uIiA+JjUKLStlY2hvICRF Q0hPX04gImNoZWNraW5nIHNwZWNpZmljIGxpYnJwbSB2ZXJzaW9uLi4uICRFQ0hPX0MiID4mNgor KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBzcGVj aWZpYyBsaWJycG0gdmVyc2lvbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgc3BlY2lmaWMg bGlicnBtIHZlcnNpb24uLi4gIiA+JjY7IH0KICsgIEhBVkVfRExPUEVOX0xJQlJQTT1mYWxzZQog KyAgc2F2ZV9MSUJTPSIkTElCUyIKICsgIExJQlM9IiRMSUJTIC1sZGwiCi0rICBpZiB0ZXN0ICIk Y3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgotKyAgeyB7IGVjaG8gIiRhc19tZTokTElORU5P OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotK2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxg JGFjX3B3ZCc6IiA+JjI7fQotK3sgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogZXJyb3I6IGNhbm5v dCBydW4gdGVzdCBwcm9ncmFtIHdoaWxlIGNyb3NzIGNvbXBpbGluZwotK1NlZSBcYGNvbmZpZy5s b2cnIGZvciBtb3JlIGRldGFpbHMuIiA+JjUKLStlY2hvICIkYXNfbWU6IGVycm9yOiBjYW5ub3Qg cnVuIHRlc3QgcHJvZ3JhbSB3aGlsZSBjcm9zcyBjb21waWxpbmcKLStTZWUgXGBjb25maWcubG9n JyBmb3IgbW9yZSBkZXRhaWxzLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH07 IH0KKysgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKysgIHsgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdk JzoiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30K Kythc19mbl9lcnJvciAiY2Fubm90IHJ1biB0ZXN0IHByb2dyYW0gd2hpbGUgY3Jvc3MgY29tcGls aW5nCisrU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iICIkTElORU5PIiA1OyB9 CiArZWxzZQotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMu aC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0 ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAogKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICsKICsjaW5jbHVk ZSA8cnBtL3JwbWxpYi5oPgpAQCAtOTEwLDQ5ICs5MDMsMzIgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogKyAgcmV0dXJuIDA7CiArfQogK19BQ0VPRgotK3JtIC1m IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwi JGFjX2xpbmtcIiIpID4mNQotKyAgKGV2YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1cz0k PwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JwotKyAg eyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSsgIChldmFs ICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86 IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4K KytpZiBhY19mbl9jX3RyeV9ydW4gIiRMSU5FTk8iOyB0aGVuIDoKICsKICsgICAgRExPUEVOX0xJ QlJQTT0iYGNhdCBjb25mdGVzdC5vdXRgIgogKyAgICBpZiB0ZXN0ICJ4JERMT1BFTl9MSUJSUE0i ICE9ICJ4IjsgdGhlbgogKyAgICAgIEhBVkVfRExPUEVOX0xJQlJQTT10cnVlCi0rICAgICAgZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJERMT1BFTl9MSUJSUE0iID4mNQotK2VjaG8gIiR7 RUNIT19UfSRETE9QRU5fTElCUlBNIiA+JjYKKysgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJERMT1BFTl9MSUJSUE0iID4mNQorKyRhc19lY2hv ICIkRExPUEVOX0xJQlJQTSIgPiY2OyB9CiArICAgIGZpCiArCi0rZWxzZQotKyAgZWNobyAiJGFz X21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3RhdHVzIiA+JjUKLStlY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKICtmaQotK3JtIC1mIGNvcmUgKi5jb3JlIGdtb24ub3V0IGJiLm91dCBj b25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Cisr cm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdtb24ub3V0IGJiLm91dCBjb25mdGVz dCRhY19leGVleHQgXAorKyAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0 ZXN0LiRhY19leHQKICtmaQorKwogKyAgcm0gLWYgY29uZnRlc3Qub3V0CiArCiArCiArCiArICBp ZiAkSEFWRV9ETE9QRU5fTElCUlBNOyB0aGVuCiArCi0rICAgIGVjaG8gIiRhc19tZTokTElORU5P OiBjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1Ci0rZWNobyAkRUNI T19OICJjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eS4uLiAkRUNIT19DIiA+ JjYKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eSIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tp bmcgcnBtIGxpYnJhcnkgQVBJIGNvbXBhdGliaWxpdHkuLi4gIiA+JjY7IH0KICsgICAgIyBUaGUg Y29tcGlsYXRpb24gcmVxdWlyZXMgLVdlcnJvciB0byB2ZXJpZnkgYW55dGhpbmcuCiArICAgIHNh dmVfQ0ZMQUdTPSIkQ0ZMQUdTIgogKyAgICBDRkxBR1M9IiRDRkxBR1MgLVdlcnJvciIKLSsgICAg Y2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FD RU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3Qu JGFjX2V4dCA8PF9BQ0VPRgorKyAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz dC4kYWNfZXh0CiArLyogZW5kIGNvbmZkZWZzLmguICAqLwogKwogKy8qIER1cGxpY2F0ZSBoZXJl IHRoZSBkZWNsYXJhdGlvbnMgdG8gdmVyaWZ5IHRoZXkgbWF0Y2ggInN5bWZpbGUuYyIuICAqLwpA QCAtOTc3LDQ0ICs5NTMsMjAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZp Z3VyZQogKyAgcmV0dXJuIDA7CiArfQogK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpl eHQKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+ JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYg Y29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgZWNobyAiJGFzX21lOiRM SU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYK LSsJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLSsJCQkgfHwgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFj X3RyeVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsg IGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRh Y19zdGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2Jq ZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUK LSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07 IH07IHRoZW4KKytpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CiArCiAr ICAgICAgTElCUlBNX0NPTVBBVD10cnVlCi0rICAgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJl c3VsdDogeWVzIiA+JjUKLStlY2hvICIke0VDSE9fVH15ZXMiID4mNgorKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19l Y2hvICJ5ZXMiID4mNjsgfQogKwogK2Vsc2UKLSsgIGVjaG8gIiRhc19tZTogZmFpbGVkIHByb2dy YW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwogKwog KyAgICAgIExJQlJQTV9DT01QQVQ9ZmFsc2UKLSsgICAgICBlY2hvICIkYXNfbWU6JExJTkVOTzog cmVzdWx0OiBubyIgPiY1Ci0rZWNobyAiJHtFQ0hPX1R9bm8iID4mNgorKyAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2Vj aG8gIm5vIiA+JjY7IH0KICsKICtmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKICsgICAgQ0ZMQUdTPSIkc2F2ZV9DRkxBR1Mi CiArCiArICAgIGlmICEgJExJQlJQTV9DT01QQVQ7IHRoZW4KQEAgLTEwMzAsMTggKzk4MiwxNCBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCiArX0FDRU9GCiArCiAr Ci0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfTElCUlBNIDEKLStf QUNFT0YKKyskYXNfZWNobyAiI2RlZmluZSBIQVZFX0xJQlJQTSAxIiA+PmNvbmZkZWZzLmgKICsK ICsgIGVsc2UKLSsgICAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotK2Vj aG8gIiR7RUNIT19UfW5vIiA+JjYKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQogKyAgICBM SUJTPSIkc2F2ZV9MSUJTIgogKyAgICBpZiAkRExPUEVOX1JFUVVJUkU7IHRoZW4KLSsgICAgICB7 IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBTcGVjaWZpYyBuYW1lICRMSUJSUE0gd2Fz IHJlcXVlc3RlZCBidXQgaXQgY291bGQgbm90IGJlIG9wZW5lZC4iID4mNQotK2VjaG8gIiRhc19t ZTogZXJyb3I6IFNwZWNpZmljIG5hbWUgJExJQlJQTSB3YXMgcmVxdWVzdGVkIGJ1dCBpdCBjb3Vs ZCBub3QgYmUgb3BlbmVkLiIgPiYyO30KLSsgICB7IChleGl0IDEpOyBleGl0IDE7IH07IH0KKysg ICAgICBhc19mbl9lcnJvciAiU3BlY2lmaWMgbmFtZSAkTElCUlBNIHdhcyByZXF1ZXN0ZWQgYnV0 IGl0IGNvdWxkIG5vdCBiZSBvcGVuZWQuIiAiJExJTkVOTyIgNQogKyAgICBmaQogKwogKwpAQCAt MTA0OSwxMCArOTk3LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1 cmUKICsJaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgogKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXBrZy1jb25maWciLCBzbyBpdCBjYW4g YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgogK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4 fXBrZy1jb25maWc7IGFjX3dvcmQ9JDIKLStlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKLStlY2hvICRFQ0hPX04gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAkRUNIT19DIiA+JjYKLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhfUEtHX0NPTkZJRytzZXR9IiA9 IHNldDsgdGhlbgotKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKKyt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Cisr aWYgdGVzdCAiJHthY19jdl9wYXRoX1BLR19DT05GSUcrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKICtlbHNlCiArICBjYXNlICRQS0dfQ09ORklHIGlu CiArICBbXFwvXSogfCA/OltcXC9dKikKQEAgLTEwNjQsMzcgKzEwMTIsMzggQEAgSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogK2RvCiArICBJRlM9JGFzX3NhdmVfSUZT CiArICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiAkYXNfZXhlY3V0YWJsZV9w ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgdGhlbgorKyAgICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KICsgICAgYWNfY3ZfcGF0aF9QS0dfQ09ORklHPSIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgotKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzog Zm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiID4mNQogKyAgICBicmVhayAyCiArICBmaQogK2RvbmUKLStkb25lCisrICBkb25lCisr SUZTPSRhc19zYXZlX0lGUwogKwogKyAgOzsKICtlc2FjCiArZmkKICtQS0dfQ09ORklHPSRhY19j dl9wYXRoX1BLR19DT05GSUcKLSsKICtpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KLSsg IGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRQS0dfQ09ORklHIiA+JjUKLStlY2hvICIk e0VDSE9fVH0kUEtHX0NPTkZJRyIgPiY2CisrICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJFBLR19DT05GSUciID4mNQorKyRhc19lY2hvICIkUEtHX0NP TkZJRyIgPiY2OyB9CiArZWxzZQotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8i ID4mNQotK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKKysgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0K ICtmaQogKworKwogK2ZpCiAraWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfUEtHX0NPTkZJRyI7IHRo ZW4KICsgIGFjX3B0X1BLR19DT05GSUc9JFBLR19DT05GSUcKICsgICMgRXh0cmFjdCB0aGUgZmly c3Qgd29yZCBvZiAicGtnLWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRo IGFyZ3MuCiArc2V0IGR1bW15IHBrZy1jb25maWc7IGFjX3dvcmQ9JDIKLStlY2hvICIkYXNfbWU6 JExJTkVOTzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLStlY2hvICRFQ0hPX04gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAkRUNIT19DIiA+JjYKLStpZiB0ZXN0ICIke2FjX2N2X3BhdGhf YWNfcHRfUEtHX0NPTkZJRytzZXR9IiA9IHNldDsgdGhlbgotKyAgZWNobyAkRUNIT19OICIoY2Fj aGVkKSAkRUNIT19DIiA+JjYKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICRhY193b3JkLi4uICIgPiY2OyB9CisraWYgdGVzdCAiJHthY19jdl9wYXRoX2FjX3B0X1BLR19D T05GSUcrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK ICtlbHNlCiArICBjYXNlICRhY19wdF9QS0dfQ09ORklHIGluCiArICBbXFwvXSogfCA/OltcXC9d KikKQEAgLTExMDYsMjkgKzEwNTUsMzkgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L2NvbmZpZ3VyZQogK2RvCiArICBJRlM9JGFzX3NhdmVfSUZTCiArICB0ZXN0IC16ICIkYXNfZGly IiAmJiBhc19kaXI9LgotKyAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4 dGVuc2lvbnM7IGRvCi0rICBpZiAkYXNfZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgdGhlbgorKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KKysgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KICsgICAgYWNfY3ZfcGF0aF9hY19wdF9QS0dfQ09ORklHPSIkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IgotKyAgICBlY2hvICIkYXNfbWU6JExJTkVOTzogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisrICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogKyAg ICBicmVhayAyCiArICBmaQogK2RvbmUKLStkb25lCisrICBkb25lCisrSUZTPSRhc19zYXZlX0lG UwogKwogKyAgOzsKICtlc2FjCiArZmkKICthY19wdF9QS0dfQ09ORklHPSRhY19jdl9wYXRoX2Fj X3B0X1BLR19DT05GSUcKLSsKICtpZiB0ZXN0IC1uICIkYWNfcHRfUEtHX0NPTkZJRyI7IHRoZW4K LSsgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6ICRhY19wdF9QS0dfQ09ORklHIiA+JjUK LStlY2hvICIke0VDSE9fVH0kYWNfcHRfUEtHX0NPTkZJRyIgPiY2CisrICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3B0X1BLR19DT05GSUciID4m NQorKyRhc19lY2hvICIkYWNfcHRfUEtHX0NPTkZJRyIgPiY2OyB9CiArZWxzZQotKyAgZWNobyAi JGFzX21lOiRMSU5FTk86IHJlc3VsdDogbm8iID4mNQotK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYK KysgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg PiY1CisrJGFzX2VjaG8gIm5vIiA+JjY7IH0KICtmaQogKwotKyAgUEtHX0NPTkZJRz0kYWNfcHRf UEtHX0NPTkZJRworKyAgaWYgdGVzdCAieCRhY19wdF9QS0dfQ09ORklHIiA9IHg7IHRoZW4KKysg ICAgUEtHX0NPTkZJRz0iIgorKyAgZWxzZQorKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFj X3Rvb2xfd2FybmVkIGluCisreWVzOikKKyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldCIgPiY1CisrJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3Mg dG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorK2FjX3Rvb2xfd2Fy bmVkPXllcyA7OworK2VzYWMKKysgICAgUEtHX0NPTkZJRz0kYWNfcHRfUEtHX0NPTkZJRworKyAg ZmkKICtlbHNlCiArICBQS0dfQ09ORklHPSIkYWNfY3ZfcGF0aF9QS0dfQ09ORklHIgogK2ZpCkBA IC0xMTM2LDMyICsxMDk1LDMyIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25m aWd1cmUKICtmaQogK2lmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgogKwlfcGtnX21pbl92 ZXJzaW9uPTAuOS4wCi0rCWVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBwa2ctY29uZmln IGlzIGF0IGxlYXN0IHZlcnNpb24gJF9wa2dfbWluX3ZlcnNpb24iID4mNQotK2VjaG8gJEVDSE9f TiAiY2hlY2tpbmcgcGtnLWNvbmZpZyBpcyBhdCBsZWFzdCB2ZXJzaW9uICRfcGtnX21pbl92ZXJz aW9uLi4uICRFQ0hPX0MiID4mNgorKwl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIHBrZy1jb25maWcgaXMgYXQgbGVhc3QgdmVyc2lvbiAkX3BrZ19taW5f dmVyc2lvbiIgPiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgcGtnLWNvbmZpZyBpcyBhdCBsZWFz dCB2ZXJzaW9uICRfcGtnX21pbl92ZXJzaW9uLi4uICIgPiY2OyB9CiArCWlmICRQS0dfQ09ORklH IC0tYXRsZWFzdC1wa2djb25maWctdmVyc2lvbiAkX3BrZ19taW5fdmVyc2lvbjsgdGhlbgotKwkJ ZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogeWVzIiA+JjUKLStlY2hvICIke0VDSE9fVH15 ZXMiID4mNgorKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CiArCWVsc2UKLSsJCWVjaG8gIiRh c19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLStlY2hvICIke0VDSE9fVH1ubyIgPiY2Cisr CQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4m NQorKyRhc19lY2hvICJubyIgPiY2OyB9CiArCQlQS0dfQ09ORklHPSIiCiArCWZpCiArCiArZmkK ICsKICtwa2dfZmFpbGVkPW5vCi0rZWNobyAiJGFzX21lOiRMSU5FTk86IGNoZWNraW5nIGZvciBS UE0iID4mNQotK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIFJQTS4uLiAkRUNIT19DIiA+JjYK Kyt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBS UE0iID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBSUE0uLi4gIiA+JjY7IH0KICsKICtp ZiB0ZXN0IC1uICIkUlBNX0NGTEFHUyI7IHRoZW4KICsgICAgcGtnX2N2X1JQTV9DRkxBR1M9IiRS UE1fQ0ZMQUdTIgogKyBlbGlmIHRlc3QgLW4gIiRQS0dfQ09ORklHIjsgdGhlbgogKyAgICBpZiB0 ZXN0IC1uICIkUEtHX0NPTkZJRyIgJiYgXAotKyAgICB7IChlY2hvICIkYXNfbWU6JExJTkVOTzog XCRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzIFwicnBtXCIiKSA+JjUKKysgICAg eyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkUEtHX0NPTkZJRyAt LWV4aXN0cyAtLXByaW50LWVycm9ycyBcInJwbVwiIjsgfSA+JjUKICsgICgkUEtHX0NPTkZJRyAt LWV4aXN0cyAtLXByaW50LWVycm9ycyAicnBtIikgMj4mNQogKyAgYWNfc3RhdHVzPSQ/Ci0rICBl Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNf c3RhdHVzKTsgfTsgdGhlbgorKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisrICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVu CiArICBwa2dfY3ZfUlBNX0NGTEFHUz1gJFBLR19DT05GSUcgLS1jZmxhZ3MgInJwbSIgMj4vZGV2 L251bGxgCiArZWxzZQogKyAgcGtnX2ZhaWxlZD15ZXMKQEAgLTExNzMsMTEgKzExMzIsMTEgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogKyAgICBwa2dfY3ZfUlBN X0xJQlM9IiRSUE1fTElCUyIKICsgZWxpZiB0ZXN0IC1uICIkUEtHX0NPTkZJRyI7IHRoZW4KICsg ICAgaWYgdGVzdCAtbiAiJFBLR19DT05GSUciICYmIFwKLSsgICAgeyAoZWNobyAiJGFzX21lOiRM SU5FTk86IFwkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyBcInJwbVwiIikgPiY1 CisrICAgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJFBLR19D T05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgXCJycG1cIiI7IH0gPiY1CiArICAoJFBLR19D T05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgInJwbSIpIDI+JjUKICsgIGFjX3N0YXR1cz0k PwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4 aXQgJGFjX3N0YXR1cyk7IH07IHRoZW4KKysgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsg fTsgdGhlbgogKyAgcGtnX2N2X1JQTV9MSUJTPWAkUEtHX0NPTkZJRyAtLWxpYnMgInJwbSIgMj4v ZGV2L251bGxgCiArZWxzZQogKyAgcGtnX2ZhaWxlZD15ZXMKQEAgLTEyMDMsMzEgKzExNjIsMjcg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogKwkjIFB1dCB0aGUg bmFzdHkgZXJyb3IgbWVzc2FnZSBpbiBjb25maWcubG9nIHdoZXJlIGl0IGJlbG9uZ3MKICsJZWNo byAiJFJQTV9QS0dfRVJST1JTIiA+JjUKICsKLSsJZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs dDogbm8iID4mNQotK2VjaG8gIiR7RUNIT19UfW5vIiA+JjYKKysJeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4m NjsgfQogKyAgICAgICAgICAgICAgICBIQVZFX0xJQlJQTT1mYWxzZQogK2VsaWYgdGVzdCAkcGtn X2ZhaWxlZCA9IHVudHJpZWQ7IHRoZW4KICsJSEFWRV9MSUJSUE09ZmFsc2UKICtlbHNlCiArCVJQ TV9DRkxBR1M9JHBrZ19jdl9SUE1fQ0ZMQUdTCiArCVJQTV9MSUJTPSRwa2dfY3ZfUlBNX0xJQlMK LSsgICAgICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IHllcyIgPiY1Ci0rZWNobyAi JHtFQ0hPX1R9eWVzIiA+JjYKKysgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQorKyRhc19lY2hvICJ5ZXMiID4mNjsgfQogKwlI QVZFX0xJQlJQTT10cnVlCiArZmkKICsKICsgICAgaWYgJEhBVkVfTElCUlBNOyB0aGVuCiArCi0r ICAgIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29tcGF0 aWJpbGl0eSIgPiY1Ci0rZWNobyAkRUNIT19OICJjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29t cGF0aWJpbGl0eS4uLiAkRUNIT19DIiA+JjYKKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBycG0gbGlicmFyeSBBUEkgY29tcGF0aWJpbGl0eSIg PiY1CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgcnBtIGxpYnJhcnkgQVBJIGNvbXBhdGliaWxpdHku Li4gIiA+JjY7IH0KICsgICAgIyBUaGUgY29tcGlsYXRpb24gcmVxdWlyZXMgLVdlcnJvciB0byB2 ZXJpZnkgYW55dGhpbmcuCiArICAgIHNhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgogKyAgICBDRkxBR1M9 IiRDRkxBR1MgLVdlcnJvciIKLSsgICAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0r LyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4k YWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKyAgICBjYXQgY29uZmRl ZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CiArLyogZW5kIGNvbmZkZWZzLmguICAq LwogKwogKy8qIER1cGxpY2F0ZSBoZXJlIHRoZSBkZWNsYXJhdGlvbnMgdG8gdmVyaWZ5IHRoZXkg bWF0Y2ggInN5bWZpbGUuYyIuICAqLwpAQCAtMTI1Miw0NCArMTIwNywyMCBAQCBJbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCiArICByZXR1cm4gMDsKICt9CiArX0FDRU9G Ci0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAotK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM SU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29u ZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8KLSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVy MSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBjb25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5l cnIgPiY1Ci0rICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgotKwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dl cnJvcl9mbGFnIgotKwkJCSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJwotKyAgeyAoZXZhbCBl Y2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSsgIChldmFsICRhY190cnkp IDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKLSsJIHsgYWNfdHJ5 PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCi0rICB7IChldmFsIGVjaG8gIiRhc19tZTok TElORU5POiBcIiRhY190cnlcIiIpID4mNQotKyAgKGV2YWwgJGFjX3RyeSkgMj4mNQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1 Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhlbgorK2lmIGFjX2ZuX2NfdHJ5X2NvbXBp bGUgIiRMSU5FTk8iOyB0aGVuIDoKICsKICsgICAgICBMSUJSUE1fQ09NUEFUPXRydWUKLSsgICAg ICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiB5ZXMiID4mNQotK2VjaG8gIiR7RUNIT19U fXllcyIgPiY2CisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IHllcyIgPiY1CisrJGFzX2VjaG8gInllcyIgPiY2OyB9CiArCiArZWxzZQotKyAg ZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNv bmZ0ZXN0LiRhY19leHQgPiY1Ci0rCiArCiArICAgICAgTElCUlBNX0NPTVBBVD1mYWxzZQotKyAg ICAgIGVjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6IG5vIiA+JjUKLStlY2hvICIke0VDSE9f VH1ubyIgPiY2CisrICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKKyskYXNfZWNobyAibm8iID4mNjsgfQogKwogK2ZpCi0rcm0gLWYg Y29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAog KyAgICBDRkxBR1M9IiRzYXZlX0NGTEFHUyIKICsKICsgICAgICBpZiAhICRMSUJSUE1fQ09NUEFU OyB0aGVuCkBAIC0xMzAwLDIwICsxMjMxLDE2IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAz L2dkYi9jb25maWd1cmUKICsKICsgICAgaWYgJEhBVkVfTElCUlBNOyB0aGVuCiArCi0rY2F0ID4+ Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfTElCUlBNIDEKLStfQUNFT0YKKysk YXNfZWNobyAiI2RlZmluZSBIQVZFX0xJQlJQTSAxIiA+PmNvbmZkZWZzLmgKICsKICsgICAgICBD RkxBR1M9IiRDRkxBR1MgJFJQTV9DRkxBR1MiCiArICAgICAgTElCUz0iJExJQlMgJFJQTV9MSUJT IgogKyAgICBlbHNlCiArICAgICAgaWYgJFJQTV9SRVFVSVJFOyB0aGVuCi0rCXsgeyBlY2hvICIk YXNfbWU6JExJTkVOTzogZXJyb3I6ICRSUE1fUEtHX0VSUk9SUyIgPiY1Ci0rZWNobyAiJGFzX21l OiBlcnJvcjogJFJQTV9QS0dfRVJST1JTIiA+JjI7fQotKyAgIHsgKGV4aXQgMSk7IGV4aXQgMTsg fTsgfQorKwlhc19mbl9lcnJvciAiJFJQTV9QS0dfRVJST1JTIiAiJExJTkVOTyIgNQogKyAgICAg IGVsc2UKLSsJeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJFJQTV9QS0dfRVJST1JT IiA+JjUKLStlY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRSUE1fUEtHX0VSUk9SUyIgPiYyO30KKysJ eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkUlBNX1BL R19FUlJPUlMiID4mNQorKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRSUE1fUEtHX0VSUk9S UyIgPiYyO30KICsgICAgICBmaQogKyAgICBmaQogKyAgZmkKQEAgLTEzMjIsMjIgKzEyNDksMjg3 IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUKICAKICAKICAKLUBA IC0yMjUxMyw2ICsyMzA4MywxMCBAQCBzLEBERUJVR0RJUkAsJERFQlVHRElSLDt0IHQKLSBzLEBH REJfREFUQURJUkAsJEdEQl9EQVRBRElSLDt0IHQKLSBzLEBHREJfREFUQURJUl9QQVRIQCwkR0RC X0RBVEFESVJfUEFUSCw7dCB0Ci0gcyxAcHl0aG9uZGlyQCwkcHl0aG9uZGlyLDt0IHQKLStzLEBQ S0dfQ09ORklHQCwkUEtHX0NPTkZJRyw7dCB0Ci0rcyxAYWNfcHRfUEtHX0NPTkZJR0AsJGFjX3B0 X1BLR19DT05GSUcsO3QgdAotK3MsQFJQTV9DRkxBR1NALCRSUE1fQ0ZMQUdTLDt0IHQKLStzLEBS UE1fTElCU0AsJFJQTV9MSUJTLDt0IHQKLSBzLEBzdWJkaXJzQCwkc3ViZGlycyw7dCB0Ci0gcyxA VEFSR0VUX09CU0AsJFRBUkdFVF9PQlMsO3QgdAotIHMsQFBLR1ZFUlNJT05ALCRQS0dWRVJTSU9O LDt0IHQKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUuYWMKK0BAIC05 NzIxLDI2NSArMTAyMTMsMjUgQEAgJGFzX2VjaG8gIiNkZWZpbmUgU1REQ19IRUFERVJTIDEiID4+ Y29uZgorIAorIGZpCisgCistCistCisgZm9yIGFjX2hlYWRlciBpbiBzeXMvdXNlcjMyLmggc3lz L3Byb2NmczMyLmgKKy1kbworLWFzX2FjX0hlYWRlcj1gZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19o ZWFkZXIiIHwgJGFzX3RyX3NoYAorLWlmIGV2YWwgInRlc3QgXCJcJHskYXNfYWNfSGVhZGVyK3Nl dH1cIiA9IHNldCI7IHRoZW4KKy0gIGVjaG8gIiRhc19tZTokTElORU5POiBjaGVja2luZyBmb3Ig JGFjX2hlYWRlciIgPiY1CistZWNobyAkRUNIT19OICJjaGVja2luZyBmb3IgJGFjX2hlYWRlci4u LiAkRUNIT19DIiA+JjYKKy1pZiBldmFsICJ0ZXN0IFwiXCR7JGFzX2FjX0hlYWRlcitzZXR9XCIg PSBzZXQiOyB0aGVuCistICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4mNgorLWZp CistZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAnJHsnJGFzX2FjX0hl YWRlcid9J2AiID4mNQorLWVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7JyRhc19hY19IZWFk ZXInfSdgIiA+JjYKKy1lbHNlCistICAjIElzIHRoZSBoZWFkZXIgY29tcGlsYWJsZT8KKy1lY2hv ICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkiID4mNQorLWVj aG8gJEVDSE9fTiAiY2hlY2tpbmcgJGFjX2hlYWRlciB1c2FiaWxpdHkuLi4gJEVDSE9fQyIgPiY2 CistY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCistLyogY29uZmRlZnMuaC4gICovCist X0FDRU9GCistY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CistY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy0kYWNfaW5jbHVk ZXNfZGVmYXVsdAorLSNpbmNsdWRlIDwkYWNfaGVhZGVyPgorLV9BQ0VPRgorLXJtIC1mIGNvbmZ0 ZXN0LiRhY19vYmpleHQKKy1pZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19j b21waWxlXCIiKSA+JjUKKy0gIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQorLSAg YWNfc3RhdHVzPSQ/CistICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVy cgorLSAgcm0gLWYgY29uZnRlc3QuZXIxCistICBjYXQgY29uZnRlc3QuZXJyID4mNQorLSAgZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorLSAgKGV4aXQgJGFjX3N0 YXR1cyk7IH0gJiYKKy0JIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKKy0J CQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKKy0gIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM SU5FTk86IFwiJGFjX3RyeVwiIikgPiY1CistICAoZXZhbCAkYWNfdHJ5KSAyPiY1CistICBhY19z dGF0dXM9JD8KKy0gIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUK Ky0gIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCistCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25m dGVzdC4kYWNfb2JqZXh0JworLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNf dHJ5XCIiKSA+JjUKKy0gIChldmFsICRhY190cnkpIDI+JjUKKy0gIGFjX3N0YXR1cz0kPworLSAg ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorLSAgKGV4aXQgJGFj X3N0YXR1cyk7IH07IH07IHRoZW4KKy0gIGFjX2hlYWRlcl9jb21waWxlcj15ZXMKKy1lbHNlCist ICBlY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQorLXNlZCAncy9eL3wgLycg Y29uZnRlc3QuJGFjX2V4dCA+JjUKKy0KKy1hY19oZWFkZXJfY29tcGlsZXI9bm8KKy1maQorLXJt IC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKy1l Y2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjUKKy1l Y2hvICIke0VDSE9fVH0kYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjYKKy0KKy0jIElzIHRoZSBoZWFk ZXIgcHJlc2VudD8KKy1lY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgJGFjX2hlYWRlciBw cmVzZW5jZSIgPiY1CistZWNobyAkRUNIT19OICJjaGVja2luZyAkYWNfaGVhZGVyIHByZXNlbmNl Li4uICRFQ0hPX0MiID4mNgorLWNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLS8qIGNv bmZkZWZzLmguICAqLworLV9BQ0VPRgorLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4 dAorLWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy0vKiBlbmQgY29uZmRlZnMuaC4g ICovCistI2luY2x1ZGUgPCRhY19oZWFkZXI+CistX0FDRU9GCistaWYgeyAoZXZhbCBlY2hvICIk YXNfbWU6JExJTkVOTzogXCIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHRcIiIpID4mNQorLSAgKGV2 YWwgJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0KSAyPmNvbmZ0ZXN0LmVyMQorLSAgYWNfc3RhdHVz PSQ/CistICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgorLSAgcm0g LWYgY29uZnRlc3QuZXIxCistICBjYXQgY29uZnRlc3QuZXJyID4mNQorLSAgZWNobyAiJGFzX21l OiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorLSAgKGV4aXQgJGFjX3N0YXR1cyk7IH0g Pi9kZXYvbnVsbDsgdGhlbgorLSAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKy0gICAg YWNfY3BwX2Vycj0kYWNfY19wcmVwcm9jX3dhcm5fZmxhZworLSAgICBhY19jcHBfZXJyPSRhY19j cHBfZXJyJGFjX2Nfd2Vycm9yX2ZsYWcKKy0gIGVsc2UKKy0gICAgYWNfY3BwX2Vycj0KKy0gIGZp CistZWxzZQorLSAgYWNfY3BwX2Vycj15ZXMKKy1maQorLWlmIHRlc3QgLXogIiRhY19jcHBfZXJy IjsgdGhlbgorLSAgYWNfaGVhZGVyX3ByZXByb2M9eWVzCistZWxzZQorLSAgZWNobyAiJGFzX21l OiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKy1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19l eHQgPiY1CistCistICBhY19oZWFkZXJfcHJlcHJvYz1ubworLWZpCistcm0gLWYgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19leHQKKy1lY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0OiAkYWNf aGVhZGVyX3ByZXByb2MiID4mNQorLWVjaG8gIiR7RUNIT19UfSRhY19oZWFkZXJfcHJlcHJvYyIg PiY2CistCistIyBTbz8gIFdoYXQgYWJvdXQgdGhpcyBoZWFkZXI/CistY2FzZSAkYWNfaGVhZGVy X2NvbXBpbGVyOiRhY19oZWFkZXJfcHJlcHJvYzokYWNfY19wcmVwcm9jX3dhcm5fZmxhZyBpbgor LSAgeWVzOm5vOiApCistICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6ICRhY19o ZWFkZXI6IGFjY2VwdGVkIGJ5IHRoZSBjb21waWxlciwgcmVqZWN0ZWQgYnkgdGhlIHByZXByb2Nl c3NvciEiID4mNQorLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRlcjogYWNjZXB0ZWQg YnkgdGhlIGNvbXBpbGVyLCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KKy0g ICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJvY2VlZGlu ZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CistZWNobyAiJGFzX21lOiBXQVJOSU5H OiAkYWNfaGVhZGVyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVzdWx0IiA+JjI7 fQorLSAgICBhY19oZWFkZXJfcHJlcHJvYz15ZXMKKy0gICAgOzsKKy0gIG5vOnllczoqICkKKy0g ICAgeyBlY2hvICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogcHJlc2VudCBi dXQgY2Fubm90IGJlIGNvbXBpbGVkIiA+JjUKKy1lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19o ZWFkZXI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiYyO30KKy0gICAgeyBlY2hv ICIkYXNfbWU6JExJTkVOTzogV0FSTklORzogJGFjX2hlYWRlcjogICAgIGNoZWNrIGZvciBtaXNz aW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPyIgPiY1CistZWNobyAiJGFzX21lOiBXQVJOSU5HOiAk YWNfaGVhZGVyOiAgICAgY2hlY2sgZm9yIG1pc3NpbmcgcHJlcmVxdWlzaXRlIGhlYWRlcnM/IiA+ JjI7fQorLSAgICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBz ZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24iID4mNQorLWVjaG8gIiRhc19tZTogV0FSTklO RzogJGFjX2hlYWRlcjogc2VlIHRoZSBBdXRvY29uZiBkb2N1bWVudGF0aW9uIiA+JjI7fQorLSAg ICB7IGVjaG8gIiRhc19tZTokTElORU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiAgICAgc2VjdGlv biBcIlByZXNlbnQgQnV0IENhbm5vdCBCZSBDb21waWxlZFwiIiA+JjUKKy1lY2hvICIkYXNfbWU6 IFdBUk5JTkc6ICRhY19oZWFkZXI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJl IENvbXBpbGVkXCIiID4mMjt9CistICAgIHsgZWNobyAiJGFzX21lOiRMSU5FTk86IFdBUk5JTkc6 ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+ JjUKKy1lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19oZWFkZXI6IHByb2NlZWRpbmcgd2l0aCB0 aGUgcHJlcHJvY2Vzc29yJ3MgcmVzdWx0IiA+JjI7fQorLSAgICB7IGVjaG8gIiRhc19tZTokTElO RU5POiBXQVJOSU5HOiAkYWNfaGVhZGVyOiBpbiB0aGUgZnV0dXJlLCB0aGUgY29tcGlsZXIgd2ls bCB0YWtlIHByZWNlZGVuY2UiID4mNQorLWVjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2hlYWRl cjogaW4gdGhlIGZ1dHVyZSwgdGhlIGNvbXBpbGVyIHdpbGwgdGFrZSBwcmVjZWRlbmNlIiA+JjI7 fQorLSAgICAoCistICAgICAgY2F0IDw8XF9BU0JPWAorLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIworLSMjIFJlcG9ydCB0aGlzIHRvIHRoZSBBQ19QQUNL QUdFX05BTUUgbGlzdHMuICAjIworLSMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAjIworLV9BU0JPWAorLSAgICApIHwKKy0gICAgICBzZWQgInMvXi8kYXNfbWU6 IFdBUk5JTkc6ICAgICAvIiA+JjIKKy0gICAgOzsKKy1lc2FjCistZWNobyAiJGFzX21lOiRMSU5F Tk86IGNoZWNraW5nIGZvciAkYWNfaGVhZGVyIiA+JjUKKy1lY2hvICRFQ0hPX04gImNoZWNraW5n IGZvciAkYWNfaGVhZGVyLi4uICRFQ0hPX0MiID4mNgorLWlmIGV2YWwgInRlc3QgXCJcJHskYXNf YWNfSGVhZGVyK3NldH1cIiA9IHNldCI7IHRoZW4KKy0gIGVjaG8gJEVDSE9fTiAiKGNhY2hlZCkg JEVDSE9fQyIgPiY2CistZWxzZQorLSAgZXZhbCAiJGFzX2FjX0hlYWRlcj1cJGFjX2hlYWRlcl9w cmVwcm9jIgorLWZpCistZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogYGV2YWwgZWNobyAn JHsnJGFzX2FjX0hlYWRlcid9J2AiID4mNQorLWVjaG8gIiR7RUNIT19UfWBldmFsIGVjaG8gJyR7 JyRhc19hY19IZWFkZXInfSdgIiA+JjYKKy0KKy1maQorLWlmIHRlc3QgYGV2YWwgZWNobyAnJHsn JGFzX2FjX0hlYWRlcid9J2AgPSB5ZXM7IHRoZW4KKytkbyA6CisrICBhc19hY19IZWFkZXI9YCRh c19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCisrYWNfZm5fY19j aGVja19oZWFkZXJfbW9uZ3JlbCAiJExJTkVOTyIgIiRhY19oZWFkZXIiICIkYXNfYWNfSGVhZGVy IiAiJGFjX2luY2x1ZGVzX2RlZmF1bHQiCisrZXZhbCBhc192YWw9XCQkYXNfYWNfSGVhZGVyCisr ICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuIDoKKyAgIGNhdCA+PmNvbmZkZWZz LmggPDxfQUNFT0YKKy0jZGVmaW5lIGBlY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2Nw cGAgMQorKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwgJGFzX3RyX2NwcGAg MQorIF9BQ0VPRgorIAorIGZpCisgCisgZG9uZQorIAorLWVjaG8gIiRhc19tZTokTElORU5POiBj aGVja2luZyBmb3Igc3RydWN0IGVsZl9wcnN0YXR1czMyLnByX3JlZyIgPiY1CistZWNobyAkRUNI T19OICJjaGVja2luZyBmb3Igc3RydWN0IGVsZl9wcnN0YXR1czMyLnByX3JlZy4uLiAkRUNIT19D IiA+JjYKKy1pZiB0ZXN0ICIke2FjX2N2X21lbWJlcl9zdHJ1Y3RfZWxmX3Byc3RhdHVzMzJfcHJf cmVnK3NldH0iID0gc2V0OyB0aGVuCistICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0Mi ID4mNgorLWVsc2UKKy0gIGNhdCA+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorLS8qIGNvbmZk ZWZzLmguICAqLworLV9BQ0VPRgorLWNhdCBjb25mZGVmcy5oID4+Y29uZnRlc3QuJGFjX2V4dAor LWNhdCA+PmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKKy0vKiBlbmQgY29uZmRlZnMuaC4gICov CistI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4KKy0KKy1pbnQKKy1tYWluICgpCisteworLXN0YXRp YyBzdHJ1Y3QgZWxmX3Byc3RhdHVzMzIgYWNfYWdncjsKKy1pZiAoYWNfYWdnci5wcl9yZWcpCist cmV0dXJuIDA7CistICA7CistICByZXR1cm4gMDsKKy19CistX0FDRU9GCistcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dAorLWlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2Nv bXBpbGVcIiIpID4mNQorLSAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCistICBh Y19zdGF0dXM9JD8KKy0gIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJy CistICBybSAtZiBjb25mdGVzdC5lcjEKKy0gIGNhdCBjb25mdGVzdC5lcnIgPiY1CistICBlY2hv ICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CistICAoZXhpdCAkYWNfc3Rh dHVzKTsgfSAmJgorLQkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorLQkJ CSB8fCB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyJworLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKKy0gIChldmFsICRhY190cnkpIDI+JjUKKy0gIGFjX3N0 YXR1cz0kPworLSAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQor LSAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH0gJiYKKy0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0 ZXN0LiRhY19vYmpleHQnCistICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190 cnlcIiIpID4mNQorLSAgKGV2YWwgJGFjX3RyeSkgMj4mNQorLSAgYWNfc3RhdHVzPSQ/CistICBl Y2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CistICAoZXhpdCAkYWNf c3RhdHVzKTsgfTsgfTsgdGhlbgorLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9lbGZfcHJzdGF0dXMz Ml9wcl9yZWc9eWVzCistZWxzZQorLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6 IiA+JjUKKy1zZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CistCistY2F0ID5jb25m dGVzdC4kYWNfZXh0IDw8X0FDRU9GCistLyogY29uZmRlZnMuaC4gICovCistX0FDRU9GCistY2F0 IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0CistY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8 PF9BQ0VPRgorLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKy0jaW5jbHVkZSA8c3lzL3Byb2Nmcy5o PgorLQorLWludAorLW1haW4gKCkKKy17Cistc3RhdGljIHN0cnVjdCBlbGZfcHJzdGF0dXMzMiBh Y19hZ2dyOworLWlmIChzaXplb2YgYWNfYWdnci5wcl9yZWcpCistcmV0dXJuIDA7CistICA7Cist ICByZXR1cm4gMDsKKy19CistX0FDRU9GCistcm0gLWYgY29uZnRlc3QuJGFjX29iamV4dAorLWlm IHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorLSAg KGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCistICBhY19zdGF0dXM9JD8KKy0gIGdy ZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCistICBybSAtZiBjb25mdGVz dC5lcjEKKy0gIGNhdCBjb25mdGVzdC5lcnIgPiY1CistICBlY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CistICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgorLQkgeyBh Y190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgorLQkJCSB8fCB0ZXN0ICEgLXMgY29u ZnRlc3QuZXJyJworLSAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIi KSA+JjUKKy0gIChldmFsICRhY190cnkpIDI+JjUKKy0gIGFjX3N0YXR1cz0kPworLSAgZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorLSAgKGV4aXQgJGFjX3N0YXR1 cyk7IH07IH0gJiYKKy0JIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpleHQnCist ICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQorLSAgKGV2 YWwgJGFjX3RyeSkgMj4mNQorLSAgYWNfc3RhdHVzPSQ/CistICBlY2hvICIkYXNfbWU6JExJTkVO TzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CistICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgfTsgdGhl bgorLSAgYWNfY3ZfbWVtYmVyX3N0cnVjdF9lbGZfcHJzdGF0dXMzMl9wcl9yZWc9eWVzCistZWxz ZQorLSAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKy1zZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1CistCistYWNfY3ZfbWVtYmVyX3N0cnVjdF9lbGZfcHJz dGF0dXMzMl9wcl9yZWc9bm8KKy1maQorLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKy1maQorLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKy1maQorLWVjaG8gIiRhc19tZTokTElORU5P OiByZXN1bHQ6ICRhY19jdl9tZW1iZXJfc3RydWN0X2VsZl9wcnN0YXR1czMyX3ByX3JlZyIgPiY1 CistZWNobyAiJHtFQ0hPX1R9JGFjX2N2X21lbWJlcl9zdHJ1Y3RfZWxmX3Byc3RhdHVzMzJfcHJf cmVnIiA+JjYKKy1pZiB0ZXN0ICRhY19jdl9tZW1iZXJfc3RydWN0X2VsZl9wcnN0YXR1czMyX3By X3JlZyA9IHllczsgdGhlbgorK2FjX2ZuX2NfY2hlY2tfbWVtYmVyICIkTElORU5PIiAic3RydWN0 IGVsZl9wcnN0YXR1czMyIiAicHJfcmVnIiAiYWNfY3ZfbWVtYmVyX3N0cnVjdF9lbGZfcHJzdGF0 dXMzMl9wcl9yZWciICIjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPgorKyIKKytpZiB0ZXN0ICJ4JGFj X2N2X21lbWJlcl9zdHJ1Y3RfZWxmX3Byc3RhdHVzMzJfcHJfcmVnIiA9IHgiInllczsgdGhlbiA6 CisgCistY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKKy0jZGVmaW5lIEhBVkVfRUxGX1BSU1RB VFVTMzIgMQorLV9BQ0VPRgorKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfRUxGX1BSU1RBVFVTMzIg MSIgPj5jb25mZGVmcy5oCisgCisgZmkKKyAKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcv Z2RiL2NvbmZpZ3VyZS5hYwkyMDA5LTA4LTAzIDE2OjE3OjEwLjAwMDAwMDAwMCArMDIwMAotKysr IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZS5hYwkyMDA5LTA4LTAzIDE2OjE3OjU5 LjAwMDAwMDAwMCArMDIwMAotQEAgLTE1Myw2ICsxNTMsMTk5IEBAIGVsc2UKKy0tLSBnZGItNi44 LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDA5LTA5LTA5IDIwOjA4OjA0LjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2NvbmZpZ3VyZS5hYwky MDA5LTA5LTA5IDIwOjA4OjA0LjAwMDAwMDAwMCArMDIwMAorQEAgLTE1MSw2ICsxNTEsMTk5IEBA IGVsc2UKICBmaQogIEFDX1NVQlNUKHB5dGhvbmRpcikKICAKQEAgLTEzNTksNyArMTU1MSw3IEBA IEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUuYWMKICsKICtBQ19BUkdf V0lUSChbcnBtXSwKICsgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXJwbV0sCi0rICAgICAgICAg ICAgICAgICAgW3F1ZXJ5IHJwbSBkYXRhYmFzZSBmb3IgbWlzc2luZyBkZWJ1Z2luZm9zIFt5ZXMv bm8sIGRlZi4gYXV0bz1saWJycG0uc29dXSldLCBbXSwgW3dpdGhfcnBtPSJhdXRvIl0pCisrICAg ICAgICAgICAgICAgICAgW3F1ZXJ5IHJwbSBkYXRhYmFzZSBmb3IgbWlzc2luZyBkZWJ1Z2luZm9z ICh5ZXMvbm8sIGRlZi4gYXV0bz1saWJycG0uc28pXSldLCBbXSwgW3dpdGhfcnBtPSJhdXRvIl0p CiArCiArbTRfcGF0dGVybl9hbGxvdyhbXkFDX01TR19FUlJPUiRdKQogK200X3BhdHRlcm5fYWxs b3coW15BQ19NU0dfV0FSTiRdKQpAQCAtMTUzNywzICsxNzI5LDIyIEBAIEluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUuYWMKICAKICBBQ19DT05GSUdfU1VCRElSUyhkb2Mg dGVzdHN1aXRlKQogIAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2FjaW5jbHVkZS5t NAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvYWNpbmNsdWRl Lm00CTIwMDktMDktMDkgMjA6MDU6NDguMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvYWNpbmNsdWRlLm00CTIwMDktMDktMDkgMjA6MDg6MDQuMDAwMDAwMDAwICsw MjAwCitAQCAtMSwzICsxLDUgQEAKKysjIHNlcmlhbCAxCisrCisgZG5sIHdyaXR0ZW4gYnkgUm9i IFNhdm95ZSA8cm9iQGN5Z251cy5jb20+IGZvciBDeWdudXMgU3VwcG9ydAorIGRubCBtYWpvciBy ZXdyaXRpbmcgZm9yIFRjbCA3LjUgYnkgRG9uIExpYmVzIDxsaWJlc0BuaXN0Lmdvdj4KKyAKK0BA IC03OSw4ICs4MSw2IEBAIEFDX01TR19SRVNVTFQoeWVzKQorICMgRm91bmRhdGlvbiwgSW5jLiwg NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAjIEJvc3RvbiwgTUEgMDIxMTAtMTMw MSwgVVNBLgorIAorLSMgc2VyaWFsIDEKKy0KKyAjIEBkZWZtYWMgQUNfUFJPR19DQ19TVERDCisg IyBAbWFpbmRleCBQUk9HX0NDX1NUREMKKyAjIEBvdmluZGV4IENDCgpkaWZmIC0tZ2l0IGEvZ2Ri LTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gK aW5kZXggYmRlOGNkZS4uOTk2NDY1ZCAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0 ZS5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCkBAIC0xLDcgKzEsNyBA QAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL2NvcmVsb3cuYworSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA5MDkvZ2RiL2NvcmVsb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTA4MTgub3JpZy9nZGIvY29yZWxvdy5jCTIwMDktMDctMzEgMTc6MjU6MjEuMDAwMDAwMDAw ICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvY29yZWxvdy5jCTIwMDktMDgtMTgg MjE6MDc6MjMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dk Yi9jb3JlbG93LmMJMjAwOS0wNy0zMSAxNzoyNToyMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9jb3JlbG93LmMJMjAwOS0wOS0wOSAxOTowOTozNS4wMDAwMDAw MDAgKzAyMDAKIEBAIC00NSw2ICs0NSwxMCBAQAogICNpbmNsdWRlICJleGNlcHRpb25zLmgiCiAg I2luY2x1ZGUgInNvbGliLmgiCkBAIC04OSwxMSArODksMTEgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MTgvZ2RiL2NvcmVsb3cuYwogKwkJCSAgIE5VTEwsIE5VTEwsIE5VTEwsCiArCQkJICAg JnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2Ri L2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2RvYy9nZGIu dGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MTgub3JpZy9nZGIvZG9j L2dkYi50ZXhpbmZvCTIwMDktMDgtMTggMjE6MDc6MDUuMDAwMDAwMDAwICswMjAwCi0rKysgZ2Ri LTYuOC41MC4yMDA5MDgxOC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMDktMDgtMTggMjE6MDc6MjMu MDAwMDAwMDAwICswMjAwCi1AQCAtMTM3MzMsNiArMTM3MzMsMjcgQEAgaW5mb3JtYXRpb24gZmls ZXMuCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAw OS0wOS0wOSAxOTowOTozMS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAwOS0wOS0wOSAxOTowOTozNS4wMDAwMDAwMDAgKzAyMDAK K0BAIC0xMzc2NCw2ICsxMzc2NCwyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4KICAKICBAZW5kIHRh YmxlCiAgCkBAIC0xMjEsMTAgKzEyMSwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxOC9n ZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGNpbmRleCBAY29kZXsuZ251X2RlYnVnbGlua30gc2VjdGlv bnMKICBAY2luZGV4IGRlYnVnIGxpbmsgc2VjdGlvbnMKICBBIGRlYnVnIGxpbmsgaXMgYSBzcGVj aWFsIHNlY3Rpb24gb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSBuYW1lZAotSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MTgvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkv Z2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MTgub3Jp Zy9nZGIvc29saWItc3ZyNC5jCTIwMDktMDgtMTggMjE6MDc6MDQuMDAwMDAwMDAwICswMjAwCi0r KysgZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvc29saWItc3ZyNC5jCTIwMDktMDgtMTggMjE6MDc6 MjMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9zb2xp Yi1zdnI0LmMJMjAwOS0wOS0wOSAxOTowNTo1Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44 LjUwLjIwMDkwOTA5L2dkYi9zb2xpYi1zdnI0LmMJMjAwOS0wOS0wOSAxOTowOTozNS4wMDAwMDAw MDAgKzAyMDAKIEBAIC0xMTAxLDkgKzExMDEsMzMgQEAgc3ZyNF9jdXJyZW50X3NvcyAodm9pZCkK ICAJCSAgICAgc2FmZV9zdHJlcnJvciAoZXJyY29kZSkpOwogIAkgIGVsc2UKQEAgLTE2MiwxMCAr MTYyLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODE4L2dkYi9zb2xpYi1zdnI0LmMKICAJ ICAgIH0KICAJICB4ZnJlZSAoYnVmZmVyKTsKICAKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODE4 L2dkYi9zeW1maWxlLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxlLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODE4Lm9yaWcvZ2RiL3N5bWZpbGUuYwky MDA5LTA4LTE4IDIxOjA3OjA1LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4 MTgvZ2RiL3N5bWZpbGUuYwkyMDA5LTA4LTE4IDIxOjA4OjMxLjAwMDAwMDAwMCArMDIwMAorLS0t IGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvc3ltZmlsZS5jCTIwMDktMDktMDkgMTk6MDk6 MzEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvc3ltZmlsZS5j CTIwMDktMDktMDkgMTk6MDk6NTUuMDAwMDAwMDAwICswMjAwCiBAQCAtNTYsNiArNTYsNyBAQAog ICNpbmNsdWRlICJlbGYtYmZkLmgiCiAgI2luY2x1ZGUgInNvbGliLmgiCkBAIC0xNzQsNyArMTc0 LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuYwogIAogICNpbmNs dWRlIDxzeXMvdHlwZXMuaD4KICAjaW5jbHVkZSA8ZmNudGwuaD4KLUBAIC0xMTkzLDE2ICsxMTk0 LDY1IEBAIHN5bWJvbF9maWxlX2NsZWFyIChpbnQgZnJvbV90dHkpCitAQCAtMTE3NCwxNiArMTE3 NSw2NSBAQCBzeW1ib2xfZmlsZV9jbGVhciAoaW50IGZyb21fdHR5KQogICAgICBwcmludGZfdW5m aWx0ZXJlZCAoXygiTm8gc3ltYm9sIGZpbGUgbm93LlxuIikpOwogIH0KICAKQEAgLTI0Miw3ICsy NDIsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvc3ltZmlsZS5jCiAgewogICAg c3RydWN0IGJ1aWxkX2lkICpyZXR2YWw7CiAgCi1AQCAtMTIxOCw2ICsxMjY4LDM0OCBAQCBidWls ZF9pZF9iZmRfZ2V0IChiZmQgKmFiZmQpCitAQCAtMTE5OSw2ICsxMjQ5LDM0OCBAQCBidWlsZF9p ZF9iZmRfZ2V0IChiZmQgKmFiZmQpCiAgICByZXR1cm4gcmV0dmFsOwogIH0KICAKQEAgLTU5MSw3 ICs1OTEsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvc3ltZmlsZS5jCiAgLyog UmV0dXJuIGlmIEZJTEVOQU1FIGhhcyBOVF9HTlVfQlVJTERfSUQgbWF0Y2hpbmcgdGhlIENIRUNL IHZhbHVlLiAgKi8KICAKICBzdGF0aWMgaW50Ci1AQCAtMTIzNSw3ICsxNjI3LDcgQEAgYnVpbGRf aWRfdmVyaWZ5IChjb25zdCBjaGFyICpmaWxlbmFtZSwgcworQEAgLTEyMTYsNyArMTYwOCw3IEBA IGJ1aWxkX2lkX3ZlcmlmeSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHMKICAgIGlmIChhYmZkID09 IE5VTEwpCiAgICAgIHJldHVybiAwOwogIApAQCAtNjAwLDcgKzYwMCw3IEBAIEluZGV4OiBnZGIt Ni44LjUwLjIwMDkwODE4L2dkYi9zeW1maWxlLmMKICAKICAgIGlmIChmb3VuZCA9PSBOVUxMKQog ICAgICB3YXJuaW5nIChfKCJGaWxlIFwiJXNcIiBoYXMgbm8gYnVpbGQtaWQsIGZpbGUgc2tpcHBl ZCIpLCBmaWxlbmFtZSk7Ci1AQCAtMTI1NCw4ICsxNjQ2LDkgQEAgYnVpbGRfaWRfdmVyaWZ5IChj b25zdCBjaGFyICpmaWxlbmFtZSwgcworQEAgLTEyMzUsOCArMTYyNyw5IEBAIGJ1aWxkX2lkX3Zl cmlmeSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHMKICAgIHJldHVybiByZXR2YWw7CiAgfQogIApA QCAtNjEyLDcgKzYxMiw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODE4L2dkYi9zeW1maWxl LmMKICB7CiAgICBjaGFyICpsaW5rLCAqcywgKnJldHZhbCA9IE5VTEw7CiAgICBnZGJfYnl0ZSAq ZGF0YSA9IGJ1aWxkX2lkLT5kYXRhOwotQEAgLTEyNjMsNyArMTY1Niw5IEBAIGJ1aWxkX2lkX3Rv X2RlYnVnX2ZpbGVuYW1lIChzdHJ1Y3QgYnVpbGQKK0BAIC0xMjQ0LDcgKzE2MzcsOSBAQCBidWls ZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1aWxkCiAgCiAgICAvKiBERUJVR19GSUxF X0RJUkVDVE9SWS8uYnVpbGQtaWQvYWIvY2RlZiAqLwogICAgbGluayA9IHhtYWxsb2MgKHN0cmxl biAoZGVidWdfZmlsZV9kaXJlY3RvcnkpICsgKHNpemVvZiAiLy5idWlsZC1pZC8iIC0gMSkgKyAx CkBAIC02MjMsNyArNjIzLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZp bGUuYwogICAgcyA9IGxpbmsgKyBzcHJpbnRmIChsaW5rLCAiJXMvLmJ1aWxkLWlkLyIsIGRlYnVn X2ZpbGVfZGlyZWN0b3J5KTsKICAgIGlmIChzaXplID4gMCkKICAgICAgewotQEAgLTEyNzQsMTIg KzE2NjksMTQgQEAgYnVpbGRfaWRfdG9fZGVidWdfZmlsZW5hbWUgKHN0cnVjdCBidWlsZAorQEAg LTEyNTUsMTIgKzE2NTAsMTQgQEAgYnVpbGRfaWRfdG9fZGVidWdfZmlsZW5hbWUgKHN0cnVjdCBi dWlsZAogICAgICAqcysrID0gJy8nOwogICAgd2hpbGUgKHNpemUtLSA+IDApCiAgICAgIHMgKz0g c3ByaW50ZiAocywgIiUwMngiLCAodW5zaWduZWQpICpkYXRhKyspOwpAQCAtNjQwLDcgKzY0MCw3 IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODE4L2dkYi9zeW1maWxlLmMKICAKICAgIGlmIChy ZXR2YWwgIT0gTlVMTCAmJiAhYnVpbGRfaWRfdmVyaWZ5IChyZXR2YWwsIGJ1aWxkX2lkKSkKICAg ICAgewotQEAgLTEyODcsOSArMTY4NCwxNTAgQEAgYnVpbGRfaWRfdG9fZGVidWdfZmlsZW5hbWUg KHN0cnVjdCBidWlsZAorQEAgLTEyNjgsOSArMTY2NSwxNTAgQEAgYnVpbGRfaWRfdG9fZGVidWdf ZmlsZW5hbWUgKHN0cnVjdCBidWlsZAogICAgICAgIHJldHZhbCA9IE5VTEw7CiAgICAgIH0KICAK QEAgLTc5MSw3ICs3OTEsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvc3ltZmls ZS5jCiAgc3RhdGljIGNoYXIgKgogIGdldF9kZWJ1Z19saW5rX2luZm8gKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlLCB1bnNpZ25lZCBsb25nICpjcmMzMl9vdXQpCiAgewotQEAgLTEzNzIsMzIgKzE5 MTAsMzYgQEAgc3RhdGljIGNoYXIgKgorQEAgLTEzNTMsMzIgKzE4OTEsMzYgQEAgc3RhdGljIGNo YXIgKgogIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUp CiAgewogICAgYXNlY3Rpb24gKnNlY3Q7CkBAIC04MzYsNyArODM2LDcgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuYwogICAgICB9CiAgCiAgICBiYXNlbmFtZSA9IGdl dF9kZWJ1Z19saW5rX2luZm8gKG9iamZpbGUsICZjcmMzMik7Ci1AQCAtMTQwNSw3ICsxOTQ3LDcg QEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQorQEAgLTEzODYsNyAr MTkyOCw3IEBAIGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKICAgIGlm IChiYXNlbmFtZSA9PSBOVUxMKQogICAgICAvKiBUaGVyZSdzIG5vIHNlcGFyYXRlIGRlYnVnIGlu Zm8sIGhlbmNlIHRoZXJlJ3Mgbm8gd2F5IHdlIGNvdWxkCiAgICAgICAgIGxvYWQgaXQgPT4gbm8g d2FybmluZy4gICovCkBAIC04NDUsNyArODQ1LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MTgvZ2RiL3N5bWZpbGUuYwogIAogICAgZGlyID0geHN0cmR1cCAob2JqZmlsZS0+bmFtZSk7CiAg Ci1AQCAtMTQyNywyNCArMTk2OSwxOSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGUgKHN0cnVj dCBvYmpmaWxlCitAQCAtMTQwOCwyNCArMTk1MCwxOSBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2Zp bGUgKHN0cnVjdCBvYmpmaWxlCiAgICBpZiAoY2Fub25fbmFtZSAmJiBzdHJsZW4gKGNhbm9uX25h bWUpID4gaSkKICAgICAgaSA9IHN0cmxlbiAoY2Fub25fbmFtZSk7CiAgCkBAIC04NzcsNyArODc3 LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuYwogIAogICAgLyog VGhlbiB0cnkgaW4gdGhlIHN1YmRpcmVjdG9yeSBuYW1lZCBERUJVR19TVUJESVJFQ1RPUlkuICAq LwogICAgc3RyY3B5IChkZWJ1Z2ZpbGUsIGRpcik7Ci1AQCAtMTQ1MywxMiArMTk5MCw3IEBAIGZp bmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKK0BAIC0xNDM0LDEyICsxOTcx LDcgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQogICAgc3RyY2F0 IChkZWJ1Z2ZpbGUsIGJhc2VuYW1lKTsKICAKICAgIGlmIChzZXBhcmF0ZV9kZWJ1Z19maWxlX2V4 aXN0cyAoZGVidWdmaWxlLCBjcmMzMiwgb2JqZmlsZS0+bmFtZSkpCkBAIC04OTEsNyArODkxLDcg QEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuYwogIAogICAgLyogVGhl biB0cnkgaW4gdGhlIGdsb2JhbCBkZWJ1Z2ZpbGUgZGlyZWN0b3J5LiAgKi8KICAgIHN0cmNweSAo ZGVidWdmaWxlLCBkZWJ1Z19maWxlX2RpcmVjdG9yeSk7Ci1AQCAtMTQ2NywxMiArMTk5OSw3IEBA IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZSAoc3RydWN0IG9iamZpbGUKK0BAIC0xNDQ4LDEyICsx OTgwLDcgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQogICAgc3Ry Y2F0IChkZWJ1Z2ZpbGUsIGJhc2VuYW1lKTsKICAKICAgIGlmIChzZXBhcmF0ZV9kZWJ1Z19maWxl X2V4aXN0cyAoZGVidWdmaWxlLCBjcmMzMiwgb2JqZmlsZS0+bmFtZSkpCkBAIC05MDUsNyArOTA1 LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuYwogIAogICAgLyog SWYgdGhlIGZpbGUgaXMgaW4gdGhlIHN5c3Jvb3QsIHRyeSB1c2luZyBpdHMgYmFzZSBwYXRoIGlu IHRoZQogICAgICAgZ2xvYmFsIGRlYnVnZmlsZSBkaXJlY3RvcnkuICAqLwotQEAgLTE0ODYsMjAg KzIwMTMsMTggQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2JqZmlsZQorQEAg LTE0NjcsMjAgKzE5OTQsMTggQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlIChzdHJ1Y3Qgb2Jq ZmlsZQogICAgICAgIHN0cmNhdCAoZGVidWdmaWxlLCBiYXNlbmFtZSk7CiAgCiAgICAgICAgaWYg KHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChkZWJ1Z2ZpbGUsIGNyYzMyLCBvYmpmaWxlLT5u YW1lKSkKQEAgLTkzMywyOCArOTMzLDI4IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODE4L2dk Yi9zeW1maWxlLmMKICB9CiAgCiAgCi1AQCAtNDI1NSw0ICs0NzgwLDE2IEBAIFNob3cgcHJpbnRp bmcgb2Ygc3ltYm9sIGxvYWRpbmcgbWVzc2FnZXMKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnNldHByaW50bGlzdCwgJnNob3dwcmludGxpc3QpOwotKwotKyAgYWRk X3NldHNob3dfemludGVnZXJfY21kICgiYnVpbGQtaWQtdmVyYm9zZSIsIG5vX2NsYXNzLCAmYnVp bGRfaWRfdmVyYm9zZSwKLSsJCQkgICAgXygiXAotK1NldCBkZWJ1Z2dpbmcgbGV2ZWwgb2YgdGhl IGJ1aWxkLWlkIGxvY2F0b3IuIiksIF8oIlwKLStTaG93IGRlYnVnZ2luZyBsZXZlbCBvZiB0aGUg YnVpbGQtaWQgbG9jYXRvci4iKSwgXygiXAotK0xldmVsIDEgKGRlZmF1bHQpIGVuYWJsZXMgcHJp bnRpbmcgdGhlIG1pc3NpbmcgZGVidWcgZmlsZW5hbWVzLFxuXAotK2xldmVsIDIgYWxzbyBwcmlu dHMgdGhlIHBhcnNpbmcgb2YgYmluYXJpZXMgdG8gZmluZCB0aGUgaWRlbnRpZmljYXRvcnMuIiks Ci0rCQkJICAgIE5VTEwsCi0rCQkJICAgIHNob3dfYnVpbGRfaWRfdmVyYm9zZSwKLSsJCQkgICAg JnNldGxpc3QsICZzaG93bGlzdCk7Ci0rCi0rICBvYnNlcnZlcl9hdHRhY2hfZXhlY3V0YWJsZV9j aGFuZ2VkIChkZWJ1Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOworQEAgLTQyMzEsNCArNDc1 NiwxNiBAQCB0aGUgZ2xvYmFsIGRlYnVnLWZpbGUgZGlyZWN0b3J5IHByZXBlbmRlCisgCQkJCSAg ICAgTlVMTCwKKyAJCQkJICAgICBzaG93X2RlYnVnX2ZpbGVfZGlyZWN0b3J5LAorIAkJCQkgICAg ICZzZXRsaXN0LCAmc2hvd2xpc3QpOworKyAKKysgICBhZGRfc2V0c2hvd196aW50ZWdlcl9jbWQg KCJidWlsZC1pZC12ZXJib3NlIiwgbm9fY2xhc3MsICZidWlsZF9pZF92ZXJib3NlLAorKyAJCQkg ICAgXygiXAorKyBTZXQgZGVidWdnaW5nIGxldmVsIG9mIHRoZSBidWlsZC1pZCBsb2NhdG9yLiIp LCBfKCJcCisrIFNob3cgZGVidWdnaW5nIGxldmVsIG9mIHRoZSBidWlsZC1pZCBsb2NhdG9yLiIp LCBfKCJcCisrIExldmVsIDEgKGRlZmF1bHQpIGVuYWJsZXMgcHJpbnRpbmcgdGhlIG1pc3Npbmcg ZGVidWcgZmlsZW5hbWVzLFxuXAorKyBsZXZlbCAyIGFsc28gcHJpbnRzIHRoZSBwYXJzaW5nIG9m IGJpbmFyaWVzIHRvIGZpbmQgdGhlIGlkZW50aWZpY2F0b3JzLiIpLAorKyAJCQkgICAgTlVMTCwK KysgCQkJICAgIHNob3dfYnVpbGRfaWRfdmVyYm9zZSwKKysgCQkJICAgICZzZXRsaXN0LCAmc2hv d2xpc3QpOworKyAKKysgICBvYnNlcnZlcl9hdHRhY2hfZXhlY3V0YWJsZV9jaGFuZ2VkIChkZWJ1 Z19wcmludF9leGVjdXRhYmxlX2NoYW5nZWQpOwogIH0KLUluZGV4OiBnZGItNi44LjUwLjIwMDkw ODE4L2dkYi9zeW1maWxlLmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9zeW1maWxl LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODE4Lm9yaWcvZ2RiL3N5bWZpbGUu aAkyMDA5LTA4LTE4IDIxOjA3OjA0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAw OTA4MTgvZ2RiL3N5bWZpbGUuaAkyMDA5LTA4LTE4IDIxOjA3OjIzLjAwMDAwMDAwMCArMDIwMAot QEAgLTM4OCw2ICszODgsMTMgQEAgZXh0ZXJuIGludCBzeW1maWxlX21hcF9vZmZzZXRzX3RvX3Nl Z21lbgorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvc3ltZmlsZS5oCTIwMDktMDkt MDkgMTk6MDU6NTYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv c3ltZmlsZS5oCTIwMDktMDktMDkgMTk6MDk6MzUuMDAwMDAwMDAwICswMjAwCitAQCAtMzgxLDYg KzM4MSwxMyBAQCBleHRlcm4gaW50IHN5bWZpbGVfbWFwX29mZnNldHNfdG9fc2VnbWVuCiAgc3Ry dWN0IHN5bWZpbGVfc2VnbWVudF9kYXRhICpnZXRfc3ltZmlsZV9zZWdtZW50X2RhdGEgKGJmZCAq YWJmZCk7CiAgdm9pZCBmcmVlX3N5bWZpbGVfc2VnbWVudF9kYXRhIChzdHJ1Y3Qgc3ltZmlsZV9z ZWdtZW50X2RhdGEgKmRhdGEpOwogIApAQCAtOTY4LDEwICs5NjgsMTAgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MTgvZ2RiL3N5bWZpbGUuaAogIC8qIEZyb20gZHdhcmYycmVhZC5jICovCiAg CiAgZXh0ZXJuIGludCBkd2FyZjJfaGFzX2luZm8gKHN0cnVjdCBvYmpmaWxlICopOwotSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MTgvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorSW5kZXg6IGdk Yi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi02LjguNTAuMjAwOTA4MTgub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIw MDktMDgtMTggMjE6MDc6MDQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgx OC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMDktMDgtMTggMjE6MDc6MjMuMDAwMDAwMDAw ICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAJMjAwOS0wOS0wOSAxOTowNTo1Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUw LjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAwOS0wOS0wOSAxOTowOTozNS4w MDAwMDAwMDAgKzAyMDAKIEBAIC0xMjQ4LDYgKzEyNDgsMTYgQEAgcHJvYyBkZWZhdWx0X2dkYl9z dGFydCB7IH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0aCB0byAwLiIK ICAJfQpAQCAtOTg5LDEwICs5ODksMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MTgvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogICAgICByZXR1cm4gMDsKICB9CiAgCi1JbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgxOC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAorSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODE4Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIv bWktc3VwcG9ydC5leHAJMjAwOS0wOC0xOCAyMTowNzowNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn ZGItNi44LjUwLjIwMDkwODE4L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMDkt MDgtMTggMjE6MDc6MjMuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5v cmlnL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMDktMDktMDkgMTk6MDU6NTYu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2xp Yi9taS1zdXBwb3J0LmV4cAkyMDA5LTA5LTA5IDE5OjA5OjM1LjAwMDAwMDAwMCArMDIwMAogQEAg LTIyMSw2ICsyMjEsMTYgQEAgcHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7CiAg CSAgICB9CiAgICAgIAl9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1iejI1NDIyOS1nY29yZS1wcnBz aW5mby5wYXRjaCBiL2dkYi02LjgtYnoyNTQyMjktZ2NvcmUtcHJwc2luZm8ucGF0Y2gKaW5kZXgg ZjIyYjA1Mi4uODJlNjRmOSAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1iejI1NDIyOS1nY29yZS1wcnBz aW5mby5wYXRjaAorKysgYi9nZGItNi44LWJ6MjU0MjI5LWdjb3JlLXBycHNpbmZvLnBhdGNoCkBA IC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvYmZkL2VsZi1iZmQuaAor SW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MTAvYmZkL2VsZi1iZmQuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9iZmQvZWxmLWJmZC5oCTIwMDktMDctMjMgMTU6MDA6 MjAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9iZmQvZWxmLWJmZC5o CTIwMDktMDgtMDMgMTc6MjE6MjUuMDAwMDAwMDAwICswMjAwCi1AQCAtMjExNSw3ICsyMTE1LDcg QEAgZXh0ZXJuIEVsZl9JbnRlcm5hbF9QaGRyICogX2JmZF9lbGZfZmluZAorLS0tIGdkYi02Ljgu NTAuMjAwOTA5MTAub3JpZy9iZmQvZWxmLWJmZC5oCTIwMDktMDktMDkgMjM6Mzg6NTcuMDAwMDAw MDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkxMC9iZmQvZWxmLWJmZC5oCTIwMDktMDkt MTAgMjM6MDE6MTUuMDAwMDAwMDAwICswMjAwCitAQCAtMjEyMSw3ICsyMTIxLDcgQEAgZXh0ZXJu IEVsZl9JbnRlcm5hbF9QaGRyICogX2JmZF9lbGZfZmluZAogIGV4dGVybiBjaGFyICplbGZjb3Jl X3dyaXRlX25vdGUKICAgIChiZmQgKiwgY2hhciAqLCBpbnQgKiwgY29uc3QgY2hhciAqLCBpbnQs IGNvbnN0IHZvaWQgKiwgaW50KTsKICBleHRlcm4gY2hhciAqZWxmY29yZV93cml0ZV9wcnBzaW5m bwpAQCAtMTEsMTEgKzExLDExIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2JmZC9lbGYt YmZkLmgKICBleHRlcm4gY2hhciAqZWxmY29yZV93cml0ZV9wcnN0YXR1cwogICAgKGJmZCAqLCBj aGFyICosIGludCAqLCBsb25nLCBpbnQsIGNvbnN0IHZvaWQgKik7CiAgZXh0ZXJuIGNoYXIgKiBl bGZjb3JlX3dyaXRlX3BzdGF0dXMKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2JmZC9lbGYu YworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MTAvYmZkL2VsZi5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2JmZC9lbGYuYwkyMDA5LTA3LTIzIDE1OjAwOjIwLjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvYmZkL2VsZi5jCTIwMDktMDgt MDMgMTc6MjM6MTMuMDAwMDAwMDAwICswMjAwCi1AQCAtODM4MSw2ICs4MzgxLDcgQEAgY2hhciAq CistLS0gZ2RiLTYuOC41MC4yMDA5MDkxMC5vcmlnL2JmZC9lbGYuYwkyMDA5LTA5LTA5IDIzOjM4 OjU3LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MTAvYmZkL2VsZi5jCTIw MDktMDktMTAgMjM6MDQ6MTcuMDAwMDAwMDAwICswMjAwCitAQCAtODM5OCw2ICs4Mzk4LDcgQEAg Y2hhciAqCiAgZWxmY29yZV93cml0ZV9wcnBzaW5mbyAoYmZkICAqYWJmZCwKICAJCQljaGFyICpi dWYsCiAgCQkJaW50ICAqYnVmc2l6LApAQCAtMjMsNyArMjMsNyBAQCBJbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgwMy9iZmQvZWxmLmMKICAJCQljb25zdCBjaGFyICpmbmFtZSwKICAJCQljb25zdCBj aGFyICpwc2FyZ3MpCiAgewotQEAgLTg0MDcsOSArODQwOCwxNSBAQCBlbGZjb3JlX3dyaXRlX3By cHNpbmZvIChiZmQgICphYmZkLAorQEAgLTg0MjQsOSArODQyNSwxNSBAQCBlbGZjb3JlX3dyaXRl X3BycHNpbmZvIChiZmQgICphYmZkLAogICAgICAgIGludCBub3RlX3R5cGUgPSBOVF9QUlBTSU5G TzsKICAjZW5kaWYKICAKQEAgLTQyLDcgKzQyLDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvYmZkL2VsZi5jCiAgICAgICAgcmV0dXJuIGVsZmNvcmVfd3JpdGVfbm90ZSAoYWJmZCwgYnVm LCBidWZzaXosCiAgCQkJCSBub3RlX25hbWUsIG5vdGVfdHlwZSwgJmRhdGEsIHNpemVvZiAoZGF0 YSkpOwogICAgICB9Ci1AQCAtODQyNCw5ICs4NDMxLDE1IEBAIGVsZmNvcmVfd3JpdGVfcHJwc2lu Zm8gKGJmZCAgKmFiZmQsCitAQCAtODQ0MSw5ICs4NDQ4LDE1IEBAIGVsZmNvcmVfd3JpdGVfcHJw c2luZm8gKGJmZCAgKmFiZmQsCiAgICAgICAgaW50IG5vdGVfdHlwZSA9IE5UX1BSUFNJTkZPOwog ICNlbmRpZgogIApAQCAtNjEsMTAgKzYxLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAz L2JmZC9lbGYuYwogICAgICAgIHJldHVybiBlbGZjb3JlX3dyaXRlX25vdGUgKGFiZmQsIGJ1Ziwg YnVmc2l6LAogIAkJCQkgbm90ZV9uYW1lLCBub3RlX3R5cGUsICZkYXRhLCBzaXplb2YgKGRhdGEp KTsKICAgICAgfQotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2FtZDY0LWxpbnV4LW5h dC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkxMC9nZGIvYW1kNjQtbGludXgtbmF0LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2FtZDY0LWxpbnV4LW5h dC5jCTIwMDktMDgtMDMgMTc6MTk6NTcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4y MDA5MDgwMy9nZGIvYW1kNjQtbGludXgtbmF0LmMJMjAwOS0wOC0wMyAxNzoyMToyNS4wMDAwMDAw MDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTEwLm9yaWcvZ2RiL2FtZDY0LWxpbnV4LW5h dC5jCTIwMDktMDktMTAgMjM6MDE6MDcuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4y MDA5MDkxMC9nZGIvYW1kNjQtbGludXgtbmF0LmMJMjAwOS0wOS0xMCAyMzowMToxNS4wMDAwMDAw MDAgKzAyMDAKIEBAIC0xNDAsNiArMTQwLDcgQEAgc3RhdGljIGludCBhbWQ2NF9saW51eF9ncmVn c2V0MzJfcmVnX29mZgogIAogIHN0YXRpYyBjaGFyICoKQEAgLTk4LDEwICs5OCwxMCBAQCBJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYW1kNjQtbGludXgtbmF0LmMKICB9CiAgCiAgc3Rh dGljIHZvaWQKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9mYnNkLW5hdC5jCitJbmRl eDogZ2RiLTYuOC41MC4yMDA5MDkxMC9nZGIvZmJzZC1uYXQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZmJzZC1uYXQuYwkyMDA5LTA3LTAyIDE5OjIxOjA2 LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2Zic2QtbmF0LmMJ MjAwOS0wOC0wMyAxNzoyMToyNS4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkw OTEwLm9yaWcvZ2RiL2Zic2QtbmF0LmMJMjAwOS0wNy0wMiAxOToyMTowNi4wMDAwMDAwMDAgKzAy MDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTEwL2dkYi9mYnNkLW5hdC5jCTIwMDktMDktMTAgMjM6 MDE6MTUuMDAwMDAwMDAwICswMjAwCiBAQCAtMjExLDYgKzIxMSw3IEBAIGZic2RfbWFrZV9jb3Jl ZmlsZV9ub3RlcyAoYmZkICpvYmZkLCBpbnQKICAJcHNhcmdzID0gcmVjb25jYXQgKHBzYXJncywg cHNhcmdzLCAiICIsIGdldF9pbmZlcmlvcl9hcmdzICgpLCBOVUxMKTsKICAKQEAgLTExMCwxMCAr MTEwLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9mYnNkLW5hdC5jCiAgCQkJ CQkgIGZuYW1lLCBwc2FyZ3MpOwogICAgICB9CiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvbGludXgtbmF0LmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTEwL2dkYi9saW51eC1u YXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvbGludXgt bmF0LmMJMjAwOS0wOC0wMyAxNzoxOTo1Ni4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUw LjIwMDkwODAzL2dkYi9saW51eC1uYXQuYwkyMDA5LTA4LTAzIDE3OjI0OjAzLjAwMDAwMDAwMCAr MDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MTAub3JpZy9nZGIvbGludXgtbmF0LmMJMjAwOS0w OS0xMCAyMzowMTowNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTEwL2dk Yi9saW51eC1uYXQuYwkyMDA5LTA5LTEwIDIzOjAxOjE1LjAwMDAwMDAwMCArMDIwMAogQEAgLTU1 LDYgKzU1LDcgQEAKICAjaW5jbHVkZSAieG1sLXN1cHBvcnQuaCIKICAjaW5jbHVkZSAidGVybWlu YWwuaCIKQEAgLTEzMSw3ICsxMzEsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv bGludXgtbmF0LmMKICBjaGFyICooKmxpbnV4X2VsZmNvcmVfd3JpdGVfcHJzdGF0dXMpCiAgICAo YmZkICosIGNoYXIgKiwgaW50ICosIGxvbmcsIGludCwgY29uc3Qgdm9pZCAqKSA9IGVsZmNvcmVf d3JpdGVfcHJzdGF0dXM7CiAgc3RhdGljIGNoYXIgKgotQEAgLTM4NDAsNiArMzg0MSwxNTkgQEAg bGludXhfc3B1X21ha2VfY29yZWZpbGVfbm90ZXMgKGJmZCAqb2JmZAorQEAgLTM5NDYsNiArMzk0 NywxNTkgQEAgbGludXhfc3B1X21ha2VfY29yZWZpbGVfbm90ZXMgKGJmZCAqb2JmZAogICAgcmV0 dXJuIGFyZ3Mubm90ZV9kYXRhOwogIH0KICAKQEAgLTI5MSw3ICsyOTEsNyBAQCBJbmRleDogZ2Ri LTYuOC41MC4yMDA5MDgwMy9nZGIvbGludXgtbmF0LmMKICAvKiBGaWxscyB0aGUgInRvX21ha2Vf Y29yZWZpbGVfbm90ZSIgdGFyZ2V0IHZlY3Rvci4gIEJ1aWxkcyB0aGUgbm90ZQogICAgIHNlY3Rp b24gZm9yIGEgY29yZWZpbGUsIGFuZCByZXR1cm5zIGl0IGluIGEgbWFsbG9jIGJ1ZmZlci4gICov CiAgCi1AQCAtMzg2MCw4ICs0MDE0LDE0IEBAIGxpbnV4X25hdF9tYWtlX2NvcmVmaWxlX25vdGVz IChiZmQgKm9iZmQKK0BAIC0zOTY2LDggKzQxMjAsMTQgQEAgbGludXhfbmF0X21ha2VfY29yZWZp bGVfbm90ZXMgKGJmZCAqb2JmZAogIAogICAgaWYgKGdldF9leGVjX2ZpbGUgKDApKQogICAgICB7 CkBAIC0zMDYsNyArMzA2LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2xpbnV4 LW5hdC5jCiAgICAgICAgaWYgKGdldF9pbmZlcmlvcl9hcmdzICgpKQogIAl7CiAgCSAgY2hhciAq c3RyaW5nX2VuZDsKLUBAIC0zODc3LDkgKzQwMzcsMTUgQEAgbGludXhfbmF0X21ha2VfY29yZWZp bGVfbm90ZXMgKGJmZCAqb2JmZAorQEAgLTM5ODMsOSArNDE0MywxNSBAQCBsaW51eF9uYXRfbWFr ZV9jb3JlZmlsZV9ub3RlcyAoYmZkICpvYmZkCiAgCQkgICAgICAgcHNhcmdzX2VuZCAtIHN0cmlu Z19lbmQpOwogIAkgICAgfQogIAl9CkBAIC0zMjQsMTEgKzMyNCwxMSBAQCBJbmRleDogZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvbGludXgtbmF0LmMKICAgICAgfQogIAogICAgLyogRHVtcCBpbmZv cm1hdGlvbiBmb3IgdGhyZWFkcy4gICovCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv bGludXgtbmF0LmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTEwL2dkYi9saW51eC1uYXQuaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvbGludXgtbmF0LmgJ MjAwOS0wOC0wMyAxNzoxOTo1Ni4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9saW51eC1uYXQuaAkyMDA5LTA4LTAzIDE3OjIxOjI1LjAwMDAwMDAwMCArMDIwMAot QEAgLTE0OCw3ICsxNDgsNyBAQCBzdHJ1Y3Qgc2lnaW5mbyAqbGludXhfbmF0X2dldF9zaWdpbmZv IChwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkxMC5vcmlnL2dkYi9saW51eC1uYXQuaAkyMDA5LTA5 LTEwIDIzOjAxOjA2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MTAvZ2Ri L2xpbnV4LW5hdC5oCTIwMDktMDktMTAgMjM6MDE6MTUuMDAwMDAwMDAwICswMjAwCitAQCAtMTU0 LDcgKzE1NCw3IEBAIHN0cnVjdCBzaWdpbmZvICpsaW51eF9uYXRfZ2V0X3NpZ2luZm8gKHAKICAv KiBUaGVzZSBmdW5jdGlvbnMgbWFrZSBlbGZjb3JlIG5vdGUgc2VjdGlvbnMuCiAgICAgVGhleSBt YXkgZ2V0IG92ZXJyaWRlbiBieSBjb2RlIGFkanVzdGluZyBkYXRhIGZvciBtdWx0aS10YXJnZXQg YnVpbGRzLiAgKi8KICBleHRlcm4gY2hhciAqKCpsaW51eF9lbGZjb3JlX3dyaXRlX3BycHNpbmZv KQpAQCAtMzM3LDEwICszMzcsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2xp bnV4LW5hdC5oCiAgZXh0ZXJuIGNoYXIgKigqbGludXhfZWxmY29yZV93cml0ZV9wcnN0YXR1cykK ICAgIChiZmQgKiwgY2hhciAqLCBpbnQgKiwgbG9uZywgaW50LCBjb25zdCB2b2lkICopOwogIGV4 dGVybiBjaGFyICooKmxpbnV4X2VsZmNvcmVfd3JpdGVfcHJmcHJlZykKLUluZGV4OiBnZGItNi44 LjUwLjIwMDkwODAzL2dkYi9wcm9jZnMuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MTAvZ2Ri L3Byb2Nmcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9w cm9jZnMuYwkyMDA5LTA4LTAxIDAyOjAyOjA0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02Ljgu NTAuMjAwOTA4MDMvZ2RiL3Byb2Nmcy5jCTIwMDktMDgtMDMgMTc6MjE6MjUuMDAwMDAwMDAwICsw MjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkxMC5vcmlnL2dkYi9wcm9jZnMuYwkyMDA5LTA4LTAx IDAyOjAyOjA0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MTAvZ2RiL3By b2Nmcy5jCTIwMDktMDktMTAgMjM6MDE6MTUuMDAwMDAwMDAwICswMjAwCiBAQCAtNjE0Nyw2ICs2 MTQ3LDcgQEAgcHJvY2ZzX21ha2Vfbm90ZV9zZWN0aW9uIChiZmQgKm9iZmQsIGludAogICAgbm90 ZV9kYXRhID0gKGNoYXIgKikgZWxmY29yZV93cml0ZV9wcnBzaW5mbyAob2JmZCwKICAJCQkJCSAg ICAgICBub3RlX2RhdGEsCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuOC1iejQ1NzE4Ny1sYXJnZWZpbGUu cGF0Y2ggYi9nZGItNi44LWJ6NDU3MTg3LWxhcmdlZmlsZS5wYXRjaAppbmRleCA4ZmZjMTIwLi4x OTlkN2EyIDEwMDY0NAotLS0gYS9nZGItNi44LWJ6NDU3MTg3LWxhcmdlZmlsZS5wYXRjaAorKysg Yi9nZGItNi44LWJ6NDU3MTg3LWxhcmdlZmlsZS5wYXRjaApAQCAtNSwzMyArNSwzMCBAQCBnZGIv CiAJKiBjb25maWcuaW46IFJlZ2VuZXJhdGUuCiAJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCiAK LUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUuYWMKK0luZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44 LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDA5LTA4LTA0IDA2OjMyOjM5LjAw MDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZS5hYwky MDA5LTA4LTA0IDA2OjMzOjUxLjAwMDAwMDAwMCArMDIwMAotQEAgLTMwLDYgKzMwLDcgQEAgQUNf R05VX1NPVVJDRQotIEFDX0FJWAotIEFDX0lTQ19QT1NJWAorLS0tIGdkYi02LjguNTAuMjAwOTA5 MDkub3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMDktMDktMDkgMjA6MDg6MDQuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlndXJlLmFjCTIwMDktMDktMDkg MjA6MTE6MDQuMDAwMDAwMDAwICswMjAwCitAQCAtMjgsNiArMjgsNyBAQCBBTV9NQUlOVEFJTkVS X01PREUKKyBBQ19QUk9HX0NDCisgQUNfVVNFX1NZU1RFTV9FWFRFTlNJT05TCiAgZ2xfRUFSTFkK ICtBQ19TWVNfTEFSR0VGSUxFCiAgQU1fUFJPR19DQ19TVERDCiAgCiAgQUNfQ09ORklHX0FVWF9E SVIoLi4pCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlnLmluCitJbmRleDog Z2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlnLmluCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYu OC41MC4yMDA5MDgwMy5vcmlnL2dkYi9jb25maWcuaW4JMjAwOS0wOC0wNCAwNjozMjozOS4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWcuaW4JMjAwOS0w OC0wNCAwNjozMzo1MS4wMDAwMDAwMDAgKzAyMDAKLUBAIC03NDQsNiArNzQ0LDkgQEAKLSAjIHVu ZGVmIF9BTExfU09VUkNFCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9jb25maWcu aW4JMjAwOS0wOS0wOSAyMDowODowNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIw MDkwOTA5L2dkYi9jb25maWcuaW4JMjAwOS0wOS0wOSAyMDoxMTozMy4wMDAwMDAwMDAgKzAyMDAK K0BAIC03NTEsMTAgKzc1MSwxNiBAQAorICMgZW5kaWYKICAjZW5kaWYKICAKICsvKiBOdW1iZXIg b2YgYml0cyBpbiBhIGZpbGUgb2Zmc2V0LCBvbiBob3N0cyB3aGVyZSB0aGlzIGlzIHNldHRhYmxl LiAqLwogKyN1bmRlZiBfRklMRV9PRkZTRVRfQklUUwogKwotIC8qIEVuYWJsZSBHTlUgZXh0ZW5z aW9ucyBvbiBzeXN0ZW1zIHRoYXQgaGF2ZSB0aGVtLiAgKi8KLSAjaWZuZGVmIF9HTlVfU09VUkNF Ci0gIyB1bmRlZiBfR05VX1NPVVJDRQotQEAgLTc1Myw2ICs3NTYsOSBAQAorIC8qIERlZmluZSB0 byAxIHNvIDxzeXMvcHJvYy5oPiBnZXRzIGEgZGVmaW5pdGlvbiBvZiBhbm9uX2hkbC4gV29ya3Mg YXJvdW5kIGEKICAgICA8c3lzL3Byb2MuaD4gcHJvYmxlbSBvbiBJUklYIDUuICovCiAgI3VuZGVm IF9LTUVNVVNFUgogIApAQCAtNDEsMTEgKzM4LDE5IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiBvbiBNSU5JWC4gKi8KICAjdW5k ZWYgX01JTklYCiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCitJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9jb25maWd1cmUJMjAwOS0wOC0wNCAwNjozMjoz OS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUJ MjAwOS0wOC0wNCAwNjozMzo1MS4wMDAwMDAwMDAgKzAyMDAKLUBAIC04NzQsNiArODc0LDcgQEAg T3B0aW9uYWwgRmVhdHVyZXM6CistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9jb25m aWd1cmUJMjAwOS0wOS0wOSAyMDoxMDo0NS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUw LjIwMDkwOTA5L2dkYi9jb25maWd1cmUJMjAwOS0wOS0wOSAyMDoxMTowNy4wMDAwMDAwMDAgKzAy MDAKK0BAIC04ODQsNiArODg0LDcgQEAgYWNfc3Vic3RfZmlsZXM9J2hvc3RfbWFrZWZpbGVfZnJh ZycKKyBhY191c2VyX29wdHM9JworIGVuYWJsZV9vcHRpb25fY2hlY2tpbmcKKyBlbmFibGVfbWFp bnRhaW5lcl9tb2RlCisrZW5hYmxlX2xhcmdlZmlsZQorIGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNr aW5nCisgd2l0aF9zZXBhcmF0ZV9kZWJ1Z19kaXIKKyB3aXRoX2dkYl9kYXRhZGlyCitAQCAtMTU2 Miw2ICsxNTYzLDcgQEAgT3B0aW9uYWwgRmVhdHVyZXM6CiAgICAtLWVuYWJsZS1GRUFUVVJFWz1B UkddICBpbmNsdWRlIEZFQVRVUkUgW0FSRz15ZXNdCiAgICAtLWVuYWJsZS1tYWludGFpbmVyLW1v ZGUgIGVuYWJsZSBtYWtlIHJ1bGVzIGFuZCBkZXBlbmRlbmNpZXMgbm90IHVzZWZ1bAogIAkJCSAg KGFuZCBzb21ldGltZXMgY29uZnVzaW5nKSB0byB0aGUgY2FzdWFsIGluc3RhbGxlcgpAQCAtNTMs MzMgKzU4LDI5IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9jb25maWd1cmUKICAg IC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQK ICAgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICBkbyBub3QgcmVqZWN0IHNsb3cgZGVw ZW5kZW5jeSBleHRyYWN0b3JzCiAgICAtLWVuYWJsZS10YXJnZXRzPVRBUkdFVFMKLUBAIC0zMzQ3 LDYgKzMzNDgsMzcwIEBAIF9BQ0VPRgorQEAgLTQxMDAsNiArNDEwMiwyMDQgQEAgZmkKICAKICAK ICAKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGFyZ2VmaWxlIG9yIC0tZGlzYWJsZS1sYXJn ZWZpbGUgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2xhcmdlZmlsZStzZXR9IiA9IHNl dDsgdGhlbgotKyAgZW5hYmxldmFsPSIkZW5hYmxlX2xhcmdlZmlsZSIKKysjIENoZWNrIHdoZXRo ZXIgLS1lbmFibGUtbGFyZ2VmaWxlIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIke2VuYWJsZV9sYXJn ZWZpbGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgZW5hYmxldmFsPSRlbmFibGVfbGFyZ2VmaWxl OworK2ZpCiArCi0rZmk7CiAraWYgdGVzdCAiJGVuYWJsZV9sYXJnZWZpbGUiICE9IG5vOyB0aGVu CiArCi0rICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHNwZWNpYWwgQyBjb21w aWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMiID4mNQotK2VjaG8gJEVDSE9fTiAi Y2hlY2tpbmcgZm9yIHNwZWNpYWwgQyBjb21waWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2Ug ZmlsZXMuLi4gJEVDSE9fQyIgPiY2Ci0raWYgdGVzdCAiJHthY19jdl9zeXNfbGFyZ2VmaWxlX0ND K3NldH0iID0gc2V0OyB0aGVuCi0rICBlY2hvICRFQ0hPX04gIihjYWNoZWQpICRFQ0hPX0MiID4m NgorKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3Igc3BlY2lhbCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVlZGVkIGZvciBsYXJnZSBmaWxlcyIgPiY1 CisrJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHNwZWNpYWwgQyBjb21waWxlciBvcHRpb25zIG5l ZWRlZCBmb3IgbGFyZ2UgZmlsZXMuLi4gIiA+JjY7IH0KKytpZiB0ZXN0ICIke2FjX2N2X3N5c19s YXJnZWZpbGVfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKICtlbHNlCiArICBhY19jdl9zeXNfbGFyZ2VmaWxlX0NDPW5vCiArICAgICBpZiB0ZXN0 ICIkR0NDIiAhPSB5ZXM7IHRoZW4KICsgICAgICAgYWNfc2F2ZV9DQz0kQ0MKICsgICAgICAgd2hp bGUgOjsgZG8KLSsgICAgIAkgIyBJUklYIDYuMiBhbmQgbGF0ZXIgZG8gbm90IHN1cHBvcnQgbGFy Z2UgZmlsZXMgYnkgZGVmYXVsdCwKLSsgICAgIAkgIyBzbyB1c2UgdGhlIEMgY29tcGlsZXIncyAt bjMyIG9wdGlvbiBpZiB0aGF0IGhlbHBzLgotKwkgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FD RU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25m dGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorKwkgIyBJUklY IDYuMiBhbmQgbGF0ZXIgZG8gbm90IHN1cHBvcnQgbGFyZ2UgZmlsZXMgYnkgZGVmYXVsdCwKKysJ ICMgc28gdXNlIHRoZSBDIGNvbXBpbGVyJ3MgLW4zMiBvcHRpb24gaWYgdGhhdCBoZWxwcy4KKysJ IGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKICsvKiBlbmQgY29u ZmRlZnMuaC4gICovCiArI2luY2x1ZGUgPHN5cy90eXBlcy5oPgogKyAvKiBDaGVjayB0aGF0IG9m Zl90IGNhbiByZXByZXNlbnQgMioqNjMgLSAxIGNvcnJlY3RseS4KQEAgLTk4LDg5ICs5OSwzNCBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmlndXJlCiArICByZXR1cm4gMDsK ICt9CiArX0FDRU9GCi0rICAgICAJIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChl dmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFs ICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12 ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIx Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSsJIHsgYWNfdHJ5 PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLSsJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0 LmVycicKLSsgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1 Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgIGVjaG8gIiRhc19t ZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9 OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotKyAgeyAo ZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSsgIChldmFsICRh Y190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKysJ IGlmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKICsgIGJyZWFrCi0rZWxz ZQotKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98 IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCiArZmkKLStybSAtZiBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dAotKyAgICAgCSBDQz0iJENDIC1uMzIiCi0rICAgICAJIHJtIC1mIGNv bmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh Y19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQot KyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0 LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAg ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH0gJiYKLSsJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIK LSsJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwgZWNobyAiJGFzX21l OiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0rICBh Y19zdGF0dXM9JD8KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAtcyBj b25mdGVzdC4kYWNfb2JqZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIk YWNfdHJ5XCIiKSA+JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwot KyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQg JGFjX3N0YXR1cyk7IH07IH07IHRoZW4KKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC4kYWNfb2JqZXh0CisrCSBDQz0iJENDIC1uMzIiCisrCSBpZiBhY19mbl9jX3RyeV9jb21waWxl ICIkTElORU5PIjsgdGhlbiA6CiArICBhY19jdl9zeXNfbGFyZ2VmaWxlX0NDPScgLW4zMic7IGJy ZWFrCi0rZWxzZQotKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCiArZmkKLStybSAtZiBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dAorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19vYmpleHQKICsJIGJyZWFrCiArICAgICAgIGRvbmUKICsgICAgICAgQ0M9JGFjX3Nh dmVfQ0MKICsgICAgICAgcm0gLWYgY29uZnRlc3QuJGFjX2V4dAogKyAgICBmaQogK2ZpCi0rZWNo byAiJGFzX21lOiRMSU5FTk86IHJlc3VsdDogJGFjX2N2X3N5c19sYXJnZWZpbGVfQ0MiID4mNQot K2VjaG8gIiR7RUNIT19UfSRhY19jdl9zeXNfbGFyZ2VmaWxlX0NDIiA+JjYKKyt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X3N5c19sYXJnZWZp bGVfQ0MiID4mNQorKyRhc19lY2hvICIkYWNfY3Zfc3lzX2xhcmdlZmlsZV9DQyIgPiY2OyB9CiAr ICBpZiB0ZXN0ICIkYWNfY3Zfc3lzX2xhcmdlZmlsZV9DQyIgIT0gbm87IHRoZW4KICsgICAgQ0M9 JENDJGFjX2N2X3N5c19sYXJnZWZpbGVfQ0MKICsgIGZpCiArCi0rICBlY2hvICIkYXNfbWU6JExJ TkVOTzogY2hlY2tpbmcgZm9yIF9GSUxFX09GRlNFVF9CSVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFy Z2UgZmlsZXMiID4mNQotK2VjaG8gJEVDSE9fTiAiY2hlY2tpbmcgZm9yIF9GSUxFX09GRlNFVF9C SVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMuLi4gJEVDSE9fQyIgPiY2Ci0raWYgdGVz dCAiJHthY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cytzZXR9IiA9IHNldDsgdGhlbgotKyAgZWNo byAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKKysgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIF9GSUxFX09GRlNFVF9CSVRTIHZhbHVl IG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBf RklMRV9PRkZTRVRfQklUUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzLi4uICIgPiY2OyB9 CisraWYgdGVzdCAiJHthY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cytzZXR9IiA9IHNldDsgdGhl biA6CisrICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogK2Vsc2UKICsgIHdoaWxlIDo7IGRv Ci0rICBhY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cz1ubwotKyAgY2F0ID5jb25mdGVzdC4kYWNf ZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZz LmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgor KyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KICsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiArIC8qIENoZWNrIHRoYXQg b2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5LgpAQCAtMTk5LDQwICsxNDUs MTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2NvbmZpZ3VyZQogKyAgcmV0dXJu IDA7CiArfQogK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLStpZiB7IChldmFs IGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKLSsgIChldmFsICRh Y19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBncmVwIC12ICde ICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAgcm0gLWYgY29uZnRlc3QuZXIxCi0r ICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRh Y19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH0gJiYKLSsJIHsgYWNfdHJ5PSd0 ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLSsJCQkgfHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVy cicKLSsgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX3RyeVwiIikgPiY1Ci0r ICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgIGVjaG8gIiRhc19tZTok TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChleGl0ICRhY19zdGF0dXMpOyB9OyB9 ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4kYWNfb2JqZXh0JwotKyAgeyAoZXZh bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIiKSA+JjUKLSsgIChldmFsICRhY190 cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IH07IHRoZW4KLSsgIGJy ZWFrCi0rZWxzZQotKyAgZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStz ZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCisraWYgYWNfZm5fY190cnlfY29t cGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHM9bm87 IGJyZWFrCiArZmkKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25m dGVzdC4kYWNfZXh0Ci0rICBjYXQgPmNvbmZ0ZXN0LiRhY19leHQgPDxfQUNFT0YKLSsvKiBjb25m ZGVmcy5oLiAgKi8KLStfQUNFT0YKLStjYXQgY29uZmRlZnMuaCA+PmNvbmZ0ZXN0LiRhY19leHQK LStjYXQgPj5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCisrcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisrICBjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CiArLyogZW5kIGNvbmZkZWZzLmguICAqLwog KyNkZWZpbmUgX0ZJTEVfT0ZGU0VUX0JJVFMgNjQKICsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CkBA IC0yNTIsNjAgKzE2OSwzMyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvY29uZmln dXJlCiArICByZXR1cm4gMDsKICt9CiArX0FDRU9GCi0rcm0gLWYgY29uZnRlc3QuJGFjX29iamV4 dAotK2lmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4m NQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXIxCi0rICBhY19zdGF0dXM9JD8K LSsgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyMSA+Y29uZnRlc3QuZXJyCi0rICBybSAtZiBj b25mdGVzdC5lcjEKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICBlY2hvICIkYXNfbWU6JExJ TkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfSAmJgot KwkgeyBhY190cnk9J3Rlc3QgLXogIiRhY19jX3dlcnJvcl9mbGFnIgotKwkJCSB8fCB0ZXN0ICEg LXMgY29uZnRlc3QuZXJyJwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNf dHJ5XCIiKSA+JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAg ZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFj X3N0YXR1cyk7IH07IH0gJiYKLSsJIHsgYWNfdHJ5PSd0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQnCi0rICB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY190cnlcIiIpID4mNQot KyAgKGV2YWwgJGFjX3RyeSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICBlY2hvICIkYXNfbWU6 JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsg fTsgdGhlbgorK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKICsgIGFj X2N2X3N5c19maWxlX29mZnNldF9iaXRzPTY0OyBicmVhawotK2Vsc2UKLSsgIGVjaG8gIiRhc19t ZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNf ZXh0ID4mNQotKwogK2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAorK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAorKyAgYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHM9dW5r bm93bgogKyAgYnJlYWsKICtkb25lCiArZmkKLStlY2hvICIkYXNfbWU6JExJTkVOTzogcmVzdWx0 OiAkYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMiID4mNQotK2VjaG8gIiR7RUNIT19UfSRhY19j dl9zeXNfZmlsZV9vZmZzZXRfYml0cyIgPiY2Ci0raWYgdGVzdCAiJGFjX2N2X3N5c19maWxlX29m ZnNldF9iaXRzIiAhPSBubzsgdGhlbgotKworK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMiID4mNQorKyRh c19lY2hvICIkYWNfY3Zfc3lzX2ZpbGVfb2Zmc2V0X2JpdHMiID4mNjsgfQorK2Nhc2UgJGFjX2N2 X3N5c19maWxlX29mZnNldF9iaXRzIGluICMoCisrICBubyB8IHVua25vd24pIDs7CisrICAqKQog K2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKICsjZGVmaW5lIF9GSUxFX09GRlNFVF9CSVRTICRh Y19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cwogK19BQ0VPRgotKwotK2ZpCi0rcm0gLWYgY29uZnRl c3QqCi0rICBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIF9MQVJHRV9GSUxFUyB2 YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzIiA+JjUKLStlY2hvICRFQ0hPX04gImNoZWNraW5n IGZvciBfTEFSR0VfRklMRVMgdmFsdWUgbmVlZGVkIGZvciBsYXJnZSBmaWxlcy4uLiAkRUNIT19D IiA+JjYKLStpZiB0ZXN0ICIke2FjX2N2X3N5c19sYXJnZV9maWxlcytzZXR9IiA9IHNldDsgdGhl bgotKyAgZWNobyAkRUNIT19OICIoY2FjaGVkKSAkRUNIT19DIiA+JjYKKys7OworK2VzYWMKKyty bSAtcmYgY29uZnRlc3QqCisrICBpZiB0ZXN0ICRhY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0cyA9 IHVua25vd247IHRoZW4KKysgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgX0xBUkdFX0ZJTEVTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmls ZXMiID4mNQorKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBfTEFSR0VfRklMRVMgdmFsdWUgbmVl ZGVkIGZvciBsYXJnZSBmaWxlcy4uLiAiID4mNjsgfQorK2lmIHRlc3QgIiR7YWNfY3Zfc3lzX2xh cmdlX2ZpbGVzK3NldH0iID0gc2V0OyB0aGVuIDoKKysgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2CiArZWxzZQogKyAgd2hpbGUgOjsgZG8KLSsgIGFjX2N2X3N5c19sYXJnZV9maWxlcz1ubwot KyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0r X0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5jb25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRl c3QuJGFjX2V4dCA8PF9BQ0VPRgorKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRl c3QuJGFjX2V4dAogKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KICsjaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CiArIC8qIENoZWNrIHRoYXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVj dGx5LgpAQCAtMzI0LDQwICsyMTQsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L2NvbmZpZ3VyZQogKyAgcmV0dXJuIDA7CiArfQogK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0LiRh Y19vYmpleHQKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxl XCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNfc3Rh dHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgotKyAg cm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgZWNobyAiJGFz X21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1cyk7 IH0gJiYKLSsJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLSsJCQkgfHwg dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86 IFwiJGFjX3RyeVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0rICBhY19zdGF0dXM9 JD8KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIChl eGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVzdC4k YWNfb2JqZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5XCIi KSA+JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH07IH07IHRoZW4KLSsgIGJyZWFrCi0rZWxzZQotKyAgZWNobyAiJGFzX21lOiBmYWlsZWQg cHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0r CisraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorKyAgYWNfY3Zfc3lz X2xhcmdlX2ZpbGVzPW5vOyBicmVhawogK2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgY2F0ID5jb25mdGVzdC4kYWNfZXh0IDw8 X0FDRU9GCi0rLyogY29uZmRlZnMuaC4gICovCi0rX0FDRU9GCi0rY2F0IGNvbmZkZWZzLmggPj5j b25mdGVzdC4kYWNfZXh0Ci0rY2F0ID4+Y29uZnRlc3QuJGFjX2V4dCA8PF9BQ0VPRgorK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAor KyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KICsjZGVmaW5lIF9MQVJHRV9GSUxFUyAxCiArI2luY2x1ZGUgPHN5cy90 eXBlcy5oPgpAQCAtMzc3LDQ4ICsyMzgsMjYgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMv Z2RiL2NvbmZpZ3VyZQogKyAgcmV0dXJuIDA7CiArfQogK19BQ0VPRgotK3JtIC1mIGNvbmZ0ZXN0 LiRhY19vYmpleHQKLStpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21w aWxlXCIiKSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVyMQotKyAgYWNf c3RhdHVzPSQ/Ci0rICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcjEgPmNvbmZ0ZXN0LmVycgot KyAgcm0gLWYgY29uZnRlc3QuZXIxCi0rICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgZWNobyAi JGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0YXR1 cyk7IH0gJiYKLSsJIHsgYWNfdHJ5PSd0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIKLSsJCQkg fHwgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycicKLSsgIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5F Tk86IFwiJGFjX3RyeVwiIikgPiY1Ci0rICAoZXZhbCAkYWNfdHJ5KSAyPiY1Ci0rICBhY19zdGF0 dXM9JD8KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IChleGl0ICRhY19zdGF0dXMpOyB9OyB9ICYmCi0rCSB7IGFjX3RyeT0ndGVzdCAtcyBjb25mdGVz dC4kYWNfb2JqZXh0JwotKyAgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfdHJ5 XCIiKSA+JjUKLSsgIChldmFsICRhY190cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgZWNo byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgKGV4aXQgJGFjX3N0 YXR1cyk7IH07IH07IHRoZW4KKytpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhl biA6CiArICBhY19jdl9zeXNfbGFyZ2VfZmlsZXM9MTsgYnJlYWsKLStlbHNlCi0rICBlY2hvICIk YXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3Qu JGFjX2V4dCA+JjUKLSsKICtmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKKytybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKysgIGFjX2N2X3N5c19sYXJnZV9maWxlcz11bmtu b3duCiArICBicmVhawogK2RvbmUKICtmaQotK2VjaG8gIiRhc19tZTokTElORU5POiByZXN1bHQ6 ICRhY19jdl9zeXNfbGFyZ2VfZmlsZXMiID4mNQotK2VjaG8gIiR7RUNIT19UfSRhY19jdl9zeXNf bGFyZ2VfZmlsZXMiID4mNgotK2lmIHRlc3QgIiRhY19jdl9zeXNfbGFyZ2VfZmlsZXMiICE9IG5v OyB0aGVuCi0rCisreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRhY19jdl9zeXNfbGFyZ2VfZmlsZXMiID4mNQorKyRhc19lY2hvICIkYWNfY3Zfc3lzX2xh cmdlX2ZpbGVzIiA+JjY7IH0KKytjYXNlICRhY19jdl9zeXNfbGFyZ2VfZmlsZXMgaW4gIygKKysg IG5vIHwgdW5rbm93bikgOzsKKysgICopCiArY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgogKyNk ZWZpbmUgX0xBUkdFX0ZJTEVTICRhY19jdl9zeXNfbGFyZ2VfZmlsZXMKICtfQUNFT0YKLSsKLStm aQotK3JtIC1mIGNvbmZ0ZXN0KgorKzs7CisrZXNhYworK3JtIC1yZiBjb25mdGVzdCoKKysgIGZp CiArZmkKICsKICAKCmRpZmYgLS1naXQgYS9nZGItNi44LWJ6NDY2OTAxLWJhY2t0cmFjZS1mdWxs LXByZWxpbmtlZC5wYXRjaCBiL2dkYi02LjgtYno0NjY5MDEtYmFja3RyYWNlLWZ1bGwtcHJlbGlu a2VkLnBhdGNoCmluZGV4IGYwZmNhMzIuLmY5ZWMzNDkgMTAwNjQ0Ci0tLSBhL2dkYi02LjgtYno0 NjY5MDEtYmFja3RyYWNlLWZ1bGwtcHJlbGlua2VkLnBhdGNoCisrKyBiL2dkYi02LjgtYno0NjY5 MDEtYmFja3RyYWNlLWZ1bGwtcHJlbGlua2VkLnBhdGNoCkBAIC0xLDkgKzEsOSBAQAogRml4IHJl c29sdmluZyBvZiB2YXJpYWJsZXMgYXQgbG9jYXRpb25zIGxpc3RzIGluIHByZWxpbmtlZCBsaWJz IChCWiA0NjY5MDEpLgogCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZHdhcmYybG9j LmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9kd2FyZjJsb2MuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAwOS0wOC0w NCAwNjoyOTo0Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9k d2FyZjJsb2MuYwkyMDA5LTA4LTA0IDA2OjMzOjM1LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02 LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAwOS0wOS0wOSAyMDowODowMy4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9kd2FyZjJsb2MuYwky MDA5LTA5LTA5IDIwOjEwOjM1LjAwMDAwMDAwMCArMDIwMAogQEAgLTU2LDcgKzU2LDkgQEAgZmlu ZF9sb2NhdGlvbl9leHByZXNzaW9uIChzdHJ1Y3QgZHdhcmYyXwogICAgQ09SRV9BRERSIGxvdywg aGlnaDsKICAgIGdkYl9ieXRlICpsb2NfcHRyLCAqYnVmX2VuZDsKQEAgLTE1LDEwICsxNSwxMCBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZHdhcmYybG9jLmMKICAgIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBlbnVtIGJm ZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICB1 bnNpZ25lZCBpbnQgYWRkcl9zaXplID0gZHdhcmYyX3Blcl9jdV9hZGRyX3NpemUgKGJhdG9uLT5w ZXJfY3UpOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1sb2NsaXN0LXByZWxpbmtlZC5leHAKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbG9jbGlzdC1wcmVsaW5rZWQuZXhwCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWxv Y2xpc3QtcHJlbGlua2VkLmV4cAkyMDA5LTA4LTA0IDA2OjMzOjM1LjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1sb2Ns aXN0LXByZWxpbmtlZC5leHAJMjAwOS0wOS0wOSAyMDoxMDozNS4wMDAwMDAwMDAgKzAyMDAKIEBA IC0wLDAgKzEsMTAyIEBACiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KICsKQEAgLTEyMiwxMCArMTIyLDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbG9jbGlzdC1wcmVsaW5rZWQuZXhwCiAr CiArIyBgYWJvcnQnIGNhbiBnZXQgZXhwcmVzc2VkIGFzIGAqX19HSV9hYm9ydCcuCiArZ2RiX3Rl c3QgImJ0IGZ1bGwiICJpbiBcW14gXF0qYWJvcnQgXFwoLippbiBmdW5jIFxcKC4qXHJcblxbXHQg XF0raSA9IC0/XFswLTlcXS4qaW4gbWFpbiBcXCguKiIgIkJhY2t0cmFjZSBhZnRlciBhYm9ydCgp IgotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3 Mi1sb2NsaXN0LXByZWxpbmtlZC1tYWluLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbG9jbGlzdC1wcmVsaW5rZWQtbWFpbi5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWxv Y2xpc3QtcHJlbGlua2VkLW1haW4uYwkyMDA5LTA4LTA0IDA2OjMzOjM1LjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1s b2NsaXN0LXByZWxpbmtlZC1tYWluLmMJMjAwOS0wOS0wOSAyMDoxMDozNS4wMDAwMDAwMDAgKzAy MDAKIEBAIC0wLDAgKzEsMjYgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTUzLDEwICsxNTMsMTAgQEAgSW5kZXg6IGdkYi02Ljgu NTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1sb2NsaXN0LXByZWxpbmtl ZC1tYWluLmMKICsgIGZ1bmMgKCk7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWxvY2xpc3QtcHJlbGlua2Vk LWZ1bmMuUworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1sb2NsaXN0LXByZWxpbmtlZC1mdW5jLlMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNi44LjUwLjIw MDkwODAzL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItbG9jbGlzdC1wcmVsaW5rZWQtZnVu Yy5TCTIwMDktMDgtMDQgMDY6MzM6MzUuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWxvY2xpc3QtcHJlbGlua2VkLWZ1 bmMuUwkyMDA5LTA5LTA5IDIwOjEwOjM1LjAwMDAwMDAwMCArMDIwMAogQEAgLTAsMCArMSwzMjgg QEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgog KwoKZGlmZiAtLWdpdCBhL2dkYi02LjgtaW5saW5pbmctYWRkb24ucGF0Y2ggYi9nZGItNi44LWlu bGluaW5nLWFkZG9uLnBhdGNoCmluZGV4IDcyZDIxNDIuLmM4ZTYxNTkgMTAwNjQ0Ci0tLSBhL2dk Yi02LjgtaW5saW5pbmctYWRkb24ucGF0Y2gKKysrIGIvZ2RiLTYuOC1pbmxpbmluZy1hZGRvbi5w YXRjaApAQCAtNSwxMCArNSwxMCBAQCBjYXVzaW5nOiBGQUlMOiBnZGIuYmFzZS91bndpbmRvbnNp Z25hbC5leHA6IHVud2luZG9uc2lnbmFsLCBzdGFjayB1bndvdW5kCiByZXN1bWUoKSAtPiB0YXJn ZXRfcmVzdW1lKCkgbW92ZSBvZiBjbGVhcl9pbmxpbmVfZnJhbWVfc3RhdGUoKSBpcyBmb3I6CiBn ZGIubWkvbWktbnNtb3JpYnVuZC5leHAKIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkw OS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1idC5jCTIw MDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgw My9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0LmMJMjAwOS0wOC0wMyAxNjo1Nzo0MC4w MDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3Rlc3RzdWl0 ZS9nZGIub3B0L2lubGluZS1idC5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWJ0 LmMJMjAwOS0wOS0wOSAxOToyMDowMC4wMDAwMDAwMDAgKzAyMDAKIEBAIC0xMywxMCArMTMsMTYg QEAKICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQogICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KQEAgLTI4LDEwICsyOCwxMCBA QCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5l LWJ0LmMKICAKICBpbmxpbmUgaW50IGZ1bmMxKHZvaWQpCiAgewotSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmMKK0luZGV4OiBnZGIt Ni44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm9w dC9pbmxpbmUtY21kcy5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAwICswMjAwCi0rKysg Z2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwky MDA5LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5 MDkub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwkyMDA5LTA2LTI4IDAy OjIwOjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmMJMjAwOS0wOS0wOSAxOToyMDowMC4wMDAwMDAwMDAg KzAyMDAKIEBAIC0xMywxMyArMTMsMTkgQEAKICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KQEAgLTU0LDEwICs1NCwxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv dGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuYwogIGlubGluZSBpbnQgZnVuYzEodm9pZCkK ICB7CiAgICBiYXIgKCk7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRl L2dkYi5vcHQvaW5saW5lLWNtZHMuZXhwCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIv dGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWNtZHMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTYu OC41MC4yMDA5MDgwMy5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5leHAJ MjAwOS0wNi0yOCAwMjoyMDoyNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkw ODAzL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtY21kcy5leHAJMjAwOS0wOC0wMyAxNjo1 Nzo0MC4wMDAwMDAwMDAgKzAyMDAKKy0tLSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL3Rl c3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAkyMDA5LTA2LTI4IDAyOjIwOjI0LjAwMDAw MDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L2lubGluZS1jbWRzLmV4cAkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAogQEAg LTIzMCw3ICsyMzAsNyBAQCBzZXQgbGluZTMgW2dkYl9nZXRfbGluZV9udW1iZXIgInNldCBicmVh CiAgZ2RiX2JyZWFrcG9pbnQgJGxpbmUzCiAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImNv bnNlY3V0aXZlIGZ1bmMxIgpAQCAtMTEwLDEwICsxMTAsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAu MjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1jbWRzLmV4cAogK2dkYl90ZXN0 ICJpbmZvIGZyYW1lIiAiaW5saW5lZCBpbnRvIGZyYW1lLioiICJvdXRlcl9pbmxpbmUyIGlubGlu ZWQiCiArZ2RiX3Rlc3QgImZpbmkiICIiICJ1cCBmcm9tIG91dGVyX2lubGluZTIiCiArZ2RiX3Rl c3QgImluZm8gZnJhbWUiICIgaW4gbWFpbiBcW15cblxdKlxuIHNvdXJjZSBsYW5ndWFnZS4qIiAi bWFpbiBub3QgaW5saW5lZCIKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90ZXN0c3Vp dGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1sb2NhbHMu YwkyMDA5LTA2LTI4IDAyOjIwOjI0LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAw OTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1sb2NhbHMuYwkyMDA5LTA4LTAzIDE2 OjU3OjQwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIv dGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5v cHQvaW5saW5lLWxvY2Fscy5jCTIwMDktMDktMDkgMTk6MjA6MDAuMDAwMDAwMDAwICswMjAwCiBA QCAtMTMsMTEgKzEzLDE2IEBACiAgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCkBA IC0xMzMsMTAgKzEzMywxMCBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5jCiAgCiAgaW5saW5lIGludCBmdW5jMShpbnQgYXJn MSkKICB7Ci1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv aW5saW5lLWxvY2Fscy5leHAKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3Vp dGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTA4MDMub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAJMjAw OS0wNi0zMCAxNzo1MDoyNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAz L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAkyMDA5LTA4LTAzIDE2OjU3 OjQwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5vcHQvaW5saW5lLWxvY2Fscy5leHAJMjAwOS0wNi0zMCAxNzo1MDoyNy4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90ZXN0c3VpdGUvZ2RiLm9w dC9pbmxpbmUtbG9jYWxzLmV4cAkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAog QEAgLTc3LDYgKzc3LDkgQEAgaWYgeyAhICRub19mcmFtZXMgfSB7CiAgCiAgIyBNYWtlIHN1cmUg dGhhdCBsb2NhbHMgb24gdGhlIHN0YWNrIGFyZSBmb3VuZC4gIFRoaXMgaXMgYW4gYXJyYXkgdG8K QEAgLTE1NSwxMCArMTU1LDEwIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90ZXN0 c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbG9jYWxzLmV4cAogKyAgICBzZXR1cF9rZmFpbCAqLSotKiAi Z2NjL2RlYnVnLm9wdGltaXphdGlvbiIKICt9CiAgZ2RiX3Rlc3QgInByaW50IGFycmF5XFswXF0i ICJcXFwkJGRlY2ltYWwgPSAxODQiICJwcmludCBsb2NhbCAoMykiCi1JbmRleDogZ2RiLTYuOC41 MC4yMDA5MDgwMy9nZGIvZnJhbWUuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2Zy YW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2ZyYW1l LmMJMjAwOS0wOC0wMyAxNTo1NjowOC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIw MDkwODAzL2dkYi9mcmFtZS5jCTIwMDktMDgtMDMgMTY6NTc6NDAuMDAwMDAwMDAwICswMjAwCist LS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9mcmFtZS5jCTIwMDktMDktMDkgMTk6MDY6 NDYuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZnJhbWUuYwky MDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAogQEAgLTI3Niw3ICsyNzYsNyBAQCBm cHJpbnRfZnJhbWUgKHN0cnVjdCB1aV9maWxlICpmaWxlLCBzdHJ1CiAgc3RhdGljIHN0cnVjdCBm cmFtZV9pbmZvICoKICBza2lwX2lubGluZWRfZnJhbWVzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJh bWUpCkBAIC0xOTUsMTkgKzE5NSwxOSBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv ZnJhbWUuYwogIAl7CiAgCSAgc2FsLT5zeW10YWIgPSBTWU1CT0xfU1lNVEFCIChzeW0pOwogIAkg IHNhbC0+bGluZSA9IFNZTUJPTF9MSU5FIChzeW0pOwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2JyZWFrcG9pbnQuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2JyZWFr cG9pbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvYnJl YWtwb2ludC5jCTIwMDktMDgtMDMgMTY6NTY6MTAuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYu OC41MC4yMDA5MDgwMy9nZGIvYnJlYWtwb2ludC5jCTIwMDktMDgtMDMgMTc6MTk6MjQuMDAwMDAw MDAwICswMjAwCi1AQCAtNjAsNiArNjAsNyBAQAotICNpbmNsdWRlICJ3cmFwcGVyLmgiCistLS0g Z2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAwOS0wOS0wOSAxOTox OTo0Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9icmVha3Bv aW50LmMJMjAwOS0wOS0wOSAxOToyMToxNC4wMDAwMDAwMDAgKzAyMDAKK0BAIC02MSw2ICs2MSw3 IEBACiAgI2luY2x1ZGUgInZhbHByaW50LmgiCisgI2luY2x1ZGUgImppdC5oIgogICNpbmNsdWRl ICJwYXJzZXItZGVmcy5oIgogKyNpbmNsdWRlICJpbmxpbmUtZnJhbWUuaCIKICAKICAvKiByZWFk bGluZSBpbmNsdWRlIGZpbGVzICovCiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCi1A QCAtMzA2NSwxMCArMzA2NiwyNCBAQCBicHN0YXRfY2hlY2tfYnJlYWtwb2ludF9jb25kaXRpb25z IChicHN0CitAQCAtMzIxNywxMCArMzIxOCwyNCBAQCBicHN0YXRfY2hlY2tfYnJlYWtwb2ludF9j b25kaXRpb25zIChicHN0CiAgICBjb25zdCBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJsID0gYnMtPmJy ZWFrcG9pbnRfYXQ7CiAgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYiA9IGJsLT5vd25lcjsKICAKQEAg LTIzNiw3ICsyMzYsNyBAQCBJbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYnJlYWtwb2lu dC5jCiAgICAgIHsKICAgICAgICBpbnQgdmFsdWVfaXNfemVybyA9IDA7CiAgICAgICAgCi1AQCAt MzIxNSw2ICszMjMwLDEyIEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9BRERSIGJwX2FkZHIs IHAKK0BAIC0zMzgwLDYgKzMzOTUsMTIgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChDT1JFX0FERFIg YnBfYWRkciwgcAogIAkgICAgYnMtPnByaW50ID0gMDsKICAJICB9CiAgCWJzLT5jb21tYW5kcyA9 IGNvcHlfY29tbWFuZF9saW5lcyAoYnMtPmNvbW1hbmRzKTsKQEAgLTI0OSw3ICsyNDksNyBAQCBJ bmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvYnJlYWtwb2ludC5jCiAgICAgICAgfQogIAog ICAgICAvKiBQcmludCBub3RoaW5nIGZvciB0aGlzIGVudHJ5IGlmIHdlIGRvbnQgc3RvcCBvciBp ZiB3ZSBkb250IHByaW50LiAgKi8KLUBAIC01MTY0LDkgKzUxODUsOSBAQCBzZXRfbW9tZW50YXJ5 X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoCitAQCAtNTI3OCw5ICs1Mjk5LDkgQEAgc2V0X21v bWVudGFyeV9icmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaAogIHsKICAgIHN0cnVjdCBicmVha3Bv aW50ICpiOwogIApAQCAtMjYyLDEwICsyNjIsMTAgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2JyZWFrcG9pbnQuYwogIAogICAgYiA9IHNldF9yYXdfYnJlYWtwb2ludCAoZ2RiYXJj aCwgc2FsLCB0eXBlKTsKICAgIGItPmVuYWJsZV9zdGF0ZSA9IGJwX2VuYWJsZWQ7Ci1JbmRleDog Z2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvaW5saW5lLWZyYW1lLmMKK0luZGV4OiBnZGItNi44LjUw LjIwMDkwOTA5L2dkYi9pbmxpbmUtZnJhbWUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi02LjguNTAu MjAwOTA4MDMub3JpZy9nZGIvaW5saW5lLWZyYW1lLmMJMjAwOS0wNi0yOCAwMjoyMDoyMi4wMDAw MDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmxpbmUtZnJhbWUuYwky MDA5LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi02LjguNTAuMjAwOTA5 MDkub3JpZy9nZGIvaW5saW5lLWZyYW1lLmMJMjAwOS0wNi0yOCAwMjoyMDoyMi4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmxpbmUtZnJhbWUuYwkyMDA5LTA5 LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAogQEAgLTE5NSw2ICsxOTUsMTIgQEAgaW5saW5l X2ZyYW1lX3NuaWZmZXIgKGNvbnN0IHN0cnVjdCBmcmFtZQogICAgaWYgKGZyYW1lX2Jsb2NrID09 IE5VTEwpCiAgICAgIHJldHVybiAwOwpAQCAtMzQyLDEwICszNDIsMTAgQEAgSW5kZXg6IGdkYi02 LjguNTAuMjAwOTA4MDMvZ2RiL2lubGluZS1mcmFtZS5jCiAgLyogUmV0dXJuIHRoZSBudW1iZXIg b2YgaGlkZGVuIGZ1bmN0aW9ucyBpbmxpbmVkIGludG8gdGhlIGN1cnJlbnQKICAgICBmcmFtZS4g ICovCiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGVzdHN1aXRlL2dkYi5vcHQv aW5saW5lLW1hcmtlcnMuYworSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL3Rlc3RzdWl0 ZS9nZGIub3B0L2lubGluZS1tYXJrZXJzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIw MDkwODAzLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1tYXJrZXJzLmMJMjAwOS0w Ni0yOCAwMjoyMDoyNC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dk Yi90ZXN0c3VpdGUvZ2RiLm9wdC9pbmxpbmUtbWFya2Vycy5jCTIwMDktMDgtMDMgMTY6NTc6NDAu MDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi90ZXN0c3Vp dGUvZ2RiLm9wdC9pbmxpbmUtbWFya2Vycy5jCTIwMDktMDYtMjggMDI6MjA6MjQuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvaW5s aW5lLW1hcmtlcnMuYwkyMDA5LTA5LTA5IDE5OjIwOjAwLjAwMDAwMDAwMCArMDIwMAogQEAgLTE1 LDExICsxNSw2IEBACiAgCiAgZXh0ZXJuIGludCB4LCB5OwpAQCAtMzU4LDExICszNTgsMTEgQEAg SW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2lubGluZS1t YXJrZXJzLmMKICB2b2lkIG1hcmtlcih2b2lkKQogIHsKICAgIHggKz0geTsgLyogc2V0IGJyZWFr cG9pbnQgMiBoZXJlICovCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvZ2RidGhyZWFk LmgKK0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9nZGJ0aHJlYWQuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvZ2RidGhyZWFkLmgJMjAwOS0wOC0w MyAxNTo1NTo1My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9n ZGJ0aHJlYWQuaAkyMDA5LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIwMAotQEAgLTE4Nyw2 ICsxODcsMTIgQEAgc3RydWN0IHRocmVhZF9pbmZvCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5v cmlnL2dkYi9nZGJ0aHJlYWQuaAkyMDA5LTA5LTA5IDE5OjA1OjU2LjAwMDAwMDAwMCArMDIwMAor KysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2dkYnRocmVhZC5oCTIwMDktMDktMDkgMTk6MjA6 MDAuMDAwMDAwMDAwICswMjAwCitAQCAtMTkxLDYgKzE5MSwxMiBAQCBzdHJ1Y3QgdGhyZWFkX2lu Zm8KICAKICAgIC8qIFByaXZhdGUgZGF0YSB1c2VkIGJ5IHRoZSB0YXJnZXQgdmVjdG9yIGltcGxl bWVudGF0aW9uLiAgKi8KICAgIHN0cnVjdCBwcml2YXRlX3RocmVhZF9pbmZvICpwcml2YXRlOwpA QCAtMzc1LDExICszNzUsMTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2dkYnRo cmVhZC5oCiAgfTsKICAKICAvKiBDcmVhdGUgYW4gZW1wdHkgdGhyZWFkIGxpc3QsIG9yIGVtcHR5 IHRoZSBleGlzdGluZyBvbmUuICAqLwotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2lu ZmNtZC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvaW5mY21kLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL2luZmNtZC5jCTIwMDktMDctMDIg MjM6NTc6MjcuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvaW5m Y21kLmMJMjAwOS0wOC0wMyAxNzoxNzoyNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xNDA4LDExICsx NDA4LDExIEBAIGZpbmlzaF9jb21tYW5kX2NvbnRpbnVhdGlvbiAodm9pZCAqYXJnKQorLS0tIGdk Yi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvaW5mY21kLmMJMjAwOS0wOS0wOSAxOTowNTo1Ni4w MDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9pbmZjbWQuYwkyMDA5 LTA5LTA5IDE5OjIwOjMzLjAwMDAwMDAwMCArMDIwMAorQEAgLTE0MzQsMTEgKzE0MzQsMTEgQEAg ZmluaXNoX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lkICphcmcpCiAgICAgICAgc3RydWN0IHR5 cGUgKnZhbHVlX3R5cGU7CiAgCiAgICAgICAgdmFsdWVfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUg KFNZTUJPTF9UWVBFIChhLT5mdW5jdGlvbikpOwpAQCAtMzkzLDkgKzM5Myw5IEBAIEluZGV4OiBn ZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmZjbWQuYwogIAlwcmludF9yZXR1cm5fdmFsdWUgKFNZ TUJPTF9UWVBFIChhLT5mdW5jdGlvbiksIHZhbHVlX3R5cGUpOwogICAgICB9CiAgCi1AQCAtMTUx NCw2ICsxNTE0LDE2IEBAIGZpbmlzaF9mb3J3YXJkIChzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiwK LSAKLSAgIG9sZF9jaGFpbiA9IG1ha2VfY2xlYW51cF9kZWxldGVfYnJlYWtwb2ludCAoYnJlYWtw b2ludCk7CitAQCAtMTU0Niw2ICsxNTQ2LDE2IEBAIGZpbmlzaF9mb3J3YXJkIChzdHJ1Y3Qgc3lt Ym9sICpmdW5jdGlvbiwKKyAgIHRwLT5pbml0aWF0aW5nX2ZyYW1lID0gZ2V0X2ZyYW1lX2lkIChm cmFtZSk7CisgICBtYWtlX2NsZWFudXAgKGRlbGV0ZV9sb25nam1wX2JyZWFrcG9pbnRfY2xlYW51 cCwgJnRocmVhZCk7CiAgCiArICAvKiBXZSBzaG91bGQgX2Fsd2F5c18gc2V0IENVUlJFTlRfUENf SVNfTk9UQ1VSUkVOVCBoZXJlIHRvIGFsd2F5cyBzZWUgdGhlCiArICAgICBjYWxsaW5nIGxpbmUg d2l0aCB0aGUgbWVzc2FnZSBgVmFsdWUgcmV0dXJuZWQgaXMgLi4uJy4gIEN1cnJlbnRseSBpdCBp cwpAQCAtNDEwLDcgKzQxMCw3IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmZj bWQuYwogICAgdHAtPnByb2NlZWRfdG9fZmluaXNoID0gMTsgICAgLyogV2Ugd2FudCBzdG9wX3Jl Z2lzdGVycywgcGxlYXNlLi4uICAqLwogICAgcHJvY2VlZCAoKENPUkVfQUREUikgLTEsIFRBUkdF VF9TSUdOQUxfREVGQVVMVCwgMCk7CiAgCi1AQCAtMTUzNSw3ICsxNTQ1LDkgQEAgZmluaXNoX2Zv cndhcmQgKHN0cnVjdCBzeW1ib2wgKmZ1bmN0aW9uLAorQEAgLTE1NjcsNyArMTU3Nyw5IEBAIGZp bmlzaF9mb3J3YXJkIChzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiwKICBzdGF0aWMgdm9pZAogIGZp bmlzaF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICB7CkBAIC00MjEsNyArNDIx LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2luZmNtZC5jCiAgICBzdHJ1Y3Qg c3ltYm9sICpmdW5jdGlvbjsKICAKICAgIGludCBhc3luY19leGVjID0gMDsKLUBAIC0xNTY2LDQ1 ICsxNTc4LDYzIEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKK0BA IC0xNTk4LDQ1ICsxNjEwLDYzIEBAIGZpbmlzaF9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9t X3R0eSkKICAgIGlmICghdGFyZ2V0X2hhc19leGVjdXRpb24pCiAgICAgIGVycm9yIChfKCJUaGUg cHJvZ3JhbSBpcyBub3QgcnVubmluZy4iKSk7CiAgCkBAIC01MDIsNyArNTAyLDcgQEAgSW5kZXg6 IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2luZmNtZC5jCiAgCiAgICAvKiBQcmludCBpbmZvIG9u IHRoZSBzZWxlY3RlZCBmcmFtZSwgaW5jbHVkaW5nIGxldmVsIG51bWJlciBidXQgbm90CiAgICAg ICBzb3VyY2UuICAqLwotQEAgLTE2MTgsMTAgKzE2NDgsMTQgQEAgZmluaXNoX2NvbW1hbmQgKGNo YXIgKmFyZywgaW50IGZyb21fdHR5KQorQEAgLTE2NTAsMTAgKzE2ODAsMTQgQEAgZmluaXNoX2Nv bW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQogICAgICAgIHByaW50X3N0YWNrX2ZyYW1l IChnZXRfc2VsZWN0ZWRfZnJhbWUgKE5VTEwpLCAxLCBMT0NBVElPTik7CiAgICAgIH0KICAKQEAg LTUxOCwyMiArNTE4LDIyIEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmZjbWQu YwogIH0KICAMCiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvdGFyZ2V0LmMKK0lu ZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi90YXJnZXQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi02LjguNTAuMjAwOTA4MDMub3JpZy9nZGIvdGFyZ2V0LmMJMjAwOS0wOC0wMyAxNjowNDoxNS4w MDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAzL2dkYi90YXJnZXQuYwkyMDA5 LTA4LTAzIDE2OjU3OjQwLjAwMDAwMDAwMCArMDIwMAotQEAgLTIwNzksNiArMjA3OSw3IEBAIHRh cmdldF9yZXN1bWUgKHB0aWRfdCBwdGlkLCBpbnQgc3RlcCwgZW4KKy0tLSBnZGItNi44LjUwLjIw MDkwOTA5Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMDktMDktMDkgMTk6MDk6MzEuMDAwMDAwMDAwICsw MjAwCisrKysgZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvdGFyZ2V0LmMJMjAwOS0wOS0wOSAxOToy MTowMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0yMTgyLDYgKzIxODIsNyBAQCB0YXJnZXRfcmVzdW1l IChwdGlkX3QgcHRpZCwgaW50IHN0ZXAsIGVuCiAgewogICAgc3RydWN0IHRhcmdldF9vcHMgKnQ7 CiAgCiArICBjbGVhcl9pbmxpbmVfZnJhbWVfc3RhdGUgKHB0aWQpOwotICAgZGNhY2hlX2ludmFs aWRhdGUgKHRhcmdldF9kY2FjaGUpOworICAgdGFyZ2V0X2RjYWNoZV9pbnZhbGlkYXRlICgpOwog IAogICAgZm9yICh0ID0gY3VycmVudF90YXJnZXQuYmVuZWF0aDsgdCAhPSBOVUxMOyB0ID0gdC0+ YmVuZWF0aCkKLUluZGV4OiBnZGItNi44LjUwLjIwMDkwODAzL2dkYi9pbmxpbmUtZnJhbWUuaAor SW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2lubGluZS1mcmFtZS5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9pbmxpbmUtZnJhbWUuaAkyMDA5LTA2 LTI4IDAyOjIwOjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi02LjguNTAuMjAwOTA4MDMvZ2Ri L2lubGluZS1mcmFtZS5oCTIwMDktMDgtMDMgMTY6NTc6NDAuMDAwMDAwMDAwICswMjAwCistLS0g Z2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9pbmxpbmUtZnJhbWUuaAkyMDA5LTA2LTI4IDAy OjIwOjIyLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2lubGlu ZS1mcmFtZS5oCTIwMDktMDktMDkgMTk6MjA6MDAuMDAwMDAwMDAwICswMjAwCiBAQCAtNDMsNiAr NDMsMTAgQEAgdm9pZCBjbGVhcl9pbmxpbmVfZnJhbWVfc3RhdGUgKHB0aWRfdCBwdAogIAogIHZv aWQgc3RlcF9pbnRvX2lubGluZV9mcmFtZSAocHRpZF90IHB0aWQpOwpAQCAtNTQ1LDExICs1NDUs MTEgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL2lubGluZS1mcmFtZS5oCiAgLyog UmV0dXJuIHRoZSBudW1iZXIgb2YgaGlkZGVuIGZ1bmN0aW9ucyBpbmxpbmVkIGludG8gdGhlIGN1 cnJlbnQKICAgICBmcmFtZS4gICovCiAgCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIv ZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTYuOC41MC4yMDA5MDkwOS9nZGIvZHdhcmYycmVhZC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTYuOC41MC4yMDA5MDgwMy5vcmlnL2dkYi9kd2FyZjJyZWFk LmMJMjAwOS0wOC0wMyAxNjo1NjoxMC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNi44LjUwLjIw MDkwODAzL2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOC0wMyAxNjo1Nzo0MC4wMDAwMDAwMDAgKzAy MDAKLUBAIC00MTA3LDYgKzQxMDcsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzCistLS0gZ2RiLTYuOC41MC4yMDA5MDkwOS5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJ MjAwOS0wOS0wOSAxOToxOTo0Ni4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNi44LjUwLjIwMDkw OTA5L2dkYi9kd2FyZjJyZWFkLmMJMjAwOS0wOS0wOSAxOToyMDowMC4wMDAwMDAwMDAgKzAyMDAK K0BAIC00MTMwLDYgKzQxMzAsNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzCiAgICBzdHJ1Y3QgYmxvY2sgKmJsb2NrOwogICAgdW5zaWduZWQgZGllX2NoaWxkcmVu ID0gMDsKICAgIGludCBpbmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdfVEFHX2lubGluZWRf c3Vicm91dGluZSk7CkBAIC01NTcsNyArNTU3LDcgQEAgSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4 MDMvZ2RiL2R3YXJmMnJlYWQuYwogIAogICAgaWYgKGlubGluZWRfZnVuYykKICAgICAgewotQEAg LTQxNDgsNyArNDE0OSwxMCBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzCitAQCAtNDE3MSw3ICs0MTcyLDEwIEBAIHJlYWRfZnVuY19zY29wZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHMKICAgIGFkZF90b19jdV9mdW5jX2xpc3QgKG5hbWUsIGxvd3BjLCBoaWdocGMs IGN1KTsKICAKICAgIG5ldyA9IHB1c2hfY29udGV4dCAoMCwgbG93cGMpOwoKZGlmZiAtLWdpdCBh L2dkYi02LjguNTAuMjAwOTA4MTgtdXBzdHJlYW0ucGF0Y2ggYi9nZGItNi44LjUwLjIwMDkwODE4 LXVwc3RyZWFtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTk2NGVmLi4w MDAwMDAwCi0tLSBhL2dkYi02LjguNTAuMjAwOTA4MTgtdXBzdHJlYW0ucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMzcgKzAsMCBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRj aGVzLzIwMDktMDgvbXNnMDAzMTAuaHRtbAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1j dnMvMjAwOS0wOC9tc2cwMDA5Mi5odG1sCi0KLTIwMDktMDgtMTkgIFVscmljaCBXZWlnYW5kICA8 dXdlaWdhbmRAZGUuaWJtLmNvbT4KLQotCSogdmFsdWUuYyAoZW51bSBpbnRlcm5hbHZhcl9raW5k KTogUmVwbGFjZSBJTlRFUk5BTFZBUl9TQ0FMQVIgYnkKLQlJTlRFUk5BTFZBUl9JTlRFR0VSIGFu ZCBJTlRFUk5BTFZBUl9QT0lOVEVSLgotCSh1bmlvbiBpbnRlcm5hbHZhcl9kYXRhKTogUmVwbGFj ZSAic2NhbGFyIiBtZW1iZXIgYnkgImludGVnZXIiCi0JYW5kICJwb2ludGVyIi4KLQkodmFsdWVf b2ZfaW50ZXJuYWx2YXIpOiBIYW5kbGUgSU5URVJOQUxWQVJfSU5URUdFUiBhbmQKLQlJTlRFUk5B TFZBUl9QT0lOVEVSIGluc3RlYWQgb2YgSU5URVJOQUxWQVJfU0NBTEFSLgotCShnZXRfaW50ZXJu YWx2YXJfaW50ZWdlcik6IExpa2V3aXNlLgotCShzZXRfaW50ZXJuYWx2YXIpOiBMaWtld2lzZS4K LQkoc2V0X2ludGVybmFsdmFyX2ludGVnZXIpOiBMaWtld2lzZS4KLQkocHJlc2VydmVfb25lX2lu dGVybmFsdmFyKTogTGlrZXdpc2UuCi0JKHZhbHVlX2Zyb21fcG9pbnRlcik6IEhhbmRsZSB0eXBl ZGVmJ2QgcG9pbnRlciB0eXBlcy4KLQotMjAwOS0wOC0xOSAgRG91ZyBFdmFucyAgPGRqZUBnb29n bGUuY29tPgotCi0JKiBnZGIuYmFzZS9nZGJ2YXJzLmM6IE5ldyBmaWxlLgotCSogZ2RiLmJhc2Uv Z2RidmFycy5leHA6IFRlc3QgY29udmVuaWVuY2UgdmFycyB3aXRoIHByb2dyYW0gdmFyaWFibGVz LgotCi0tLS0gc3JjL2dkYi92YWx1ZS5jCTIwMDkvMDgvMTMgMTg6Mzk6MjAJMS45MgotKysrIHNy Yy9nZGIvdmFsdWUuYwkyMDA5LzA4LzE5IDEzOjAwOjI4CTEuOTMKLUBAIC05MjAsOCArOTIwLDEx IEBACi0gICAgICAgLyogVGhlIGludGVybmFsIHZhcmlhYmxlIGhvbGRzIGEgR0RCIGludGVybmFs IGNvbnZlbmllbmNlIGZ1bmN0aW9uLiAgKi8KLSAgICAgICBJTlRFUk5BTFZBUl9GVU5DVElPTiwK LSAKLS0gICAgICAvKiBUaGUgdmFyaWFibGUgaG9sZHMgYSBzaW1wbGUgc2NhbGFyIHZhbHVlLiAg Ki8KLS0gICAgICBJTlRFUk5BTFZBUl9TQ0FMQVIsCi0rICAgICAgLyogVGhlIHZhcmlhYmxlIGhv bGRzIGFuIGludGVnZXIgdmFsdWUuICAqLwotKyAgICAgIElOVEVSTkFMVkFSX0lOVEVHRVIsCi0r Ci0rICAgICAgLyogVGhlIHZhcmlhYmxlIGhvbGRzIGEgcG9pbnRlciB2YWx1ZS4gICovCi0rICAg ICAgSU5URVJOQUxWQVJfUE9JTlRFUiwKLSAKLSAgICAgICAvKiBUaGUgdmFyaWFibGUgaG9sZHMg YSBHREItcHJvdmlkZWQgc3RyaW5nLiAgKi8KLSAgICAgICBJTlRFUk5BTFZBUl9TVFJJTkcsCi1A QCAtOTQ0LDE5ICs5NDcsMjIgQEAKLSAJICBpbnQgY2Fub25pY2FsOwotIAl9IGZuOwotIAotLSAg ICAgIC8qIEEgc2NhbGFyIHZhbHVlIHVzZWQgd2l0aCBJTlRFUk5BTFZBUl9TQ0FMQVIuICAqLwot KyAgICAgIC8qIEFuIGludGVnZXIgdmFsdWUgdXNlZCB3aXRoIElOVEVSTkFMVkFSX0lOVEVHRVIu ICAqLwotICAgICAgIHN0cnVjdAotICAgICAgICAgewotIAkgIC8qIElmIHR5cGUgaXMgbm9uLU5V TEwsIGl0IHdpbGwgYmUgdXNlZCBhcyB0aGUgdHlwZSB0byBnZW5lcmF0ZQotIAkgICAgIGEgdmFs dWUgZm9yIHRoaXMgaW50ZXJuYWwgdmFyaWFibGUuICBJZiB0eXBlIGlzIE5VTEwsIGEgZGVmYXVs dAotIAkgICAgIGludGVnZXIgdHlwZSBmb3IgdGhlIGFyY2hpdGVjdHVyZSBpcyB1c2VkLiAgKi8K LSAJICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLS0JICB1bmlvbgotLQkgICAgewotLQkgICAgICBMT05H RVNUIGw7ICAgIC8qIFVzZWQgd2l0aCBUWVBFX0NPREVfSU5UIGFuZCBOVUxMIHR5cGVzLiAgKi8K LS0JICAgICAgQ09SRV9BRERSIGE7ICAvKiBVc2VkIHdpdGggVFlQRV9DT0RFX1BUUiB0eXBlcy4g ICovCi0tCSAgICB9IHZhbDsKLS0gICAgICAgIH0gc2NhbGFyOwotKwkgIExPTkdFU1QgdmFsOwot KyAgICAgICAgfSBpbnRlZ2VyOwotKwotKyAgICAgIC8qIEEgcG9pbnRlciB2YWx1ZSB1c2VkIHdp dGggSU5URVJOQUxWQVJfUE9JTlRFUi4gICovCi0rICAgICAgc3RydWN0Ci0rICAgICAgICB7Ci0r CSAgc3RydWN0IHR5cGUgKnR5cGU7Ci0rCSAgQ09SRV9BRERSIHZhbDsKLSsgICAgICAgIH0gcG9p bnRlcjsKLSAKLSAgICAgICAvKiBBIHN0cmluZyB2YWx1ZSB1c2VkIHdpdGggSU5URVJOQUxWQVJf U1RSSU5HLiAgKi8KLSAgICAgICBjaGFyICpzdHJpbmc7Ci1AQCAtMTA4MiwxNiArMTA4OCwxNiBA QAotICAgICAgIHZhbCA9IGFsbG9jYXRlX3ZhbHVlIChidWlsdGluX3R5cGUgKGdkYmFyY2gpLT5p bnRlcm5hbF9mbik7Ci0gICAgICAgYnJlYWs7Ci0gCi0tICAgIGNhc2UgSU5URVJOQUxWQVJfU0NB TEFSOgotLSAgICAgIGlmICghdmFyLT51LnNjYWxhci50eXBlKQotKyAgICBjYXNlIElOVEVSTkFM VkFSX0lOVEVHRVI6Ci0rICAgICAgaWYgKCF2YXItPnUuaW50ZWdlci50eXBlKQotIAl2YWwgPSB2 YWx1ZV9mcm9tX2xvbmdlc3QgKGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50LAot LQkJCQkgIHZhci0+dS5zY2FsYXIudmFsLmwpOwotLSAgICAgIGVsc2UgaWYgKFRZUEVfQ09ERSAo dmFyLT51LnNjYWxhci50eXBlKSA9PSBUWVBFX0NPREVfSU5UKQotLQl2YWwgPSB2YWx1ZV9mcm9t X2xvbmdlc3QgKHZhci0+dS5zY2FsYXIudHlwZSwgdmFyLT51LnNjYWxhci52YWwubCk7Ci0tICAg ICAgZWxzZSBpZiAoVFlQRV9DT0RFICh2YXItPnUuc2NhbGFyLnR5cGUpID09IFRZUEVfQ09ERV9Q VFIpCi0tCXZhbCA9IHZhbHVlX2Zyb21fcG9pbnRlciAodmFyLT51LnNjYWxhci50eXBlLCB2YXIt PnUuc2NhbGFyLnZhbC5hKTsKLSsJCQkJICB2YXItPnUuaW50ZWdlci52YWwpOwotICAgICAgIGVs c2UKLS0gICAgICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sICJiYWQgdHlw ZSIpOwotKwl2YWwgPSB2YWx1ZV9mcm9tX2xvbmdlc3QgKHZhci0+dS5pbnRlZ2VyLnR5cGUsIHZh ci0+dS5pbnRlZ2VyLnZhbCk7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNhc2UgSU5URVJOQUxW QVJfUE9JTlRFUjoKLSsgICAgICB2YWwgPSB2YWx1ZV9mcm9tX3BvaW50ZXIgKHZhci0+dS5wb2lu dGVyLnR5cGUsIHZhci0+dS5wb2ludGVyLnZhbCk7Ci0gICAgICAgYnJlYWs7Ci0gCi0gICAgIGNh c2UgSU5URVJOQUxWQVJfU1RSSU5HOgotQEAgLTExNDUsMTQgKzExNTEsOSBAQAotIHsKLSAgIHN3 aXRjaCAodmFyLT5raW5kKQotICAgICB7Ci0tICAgIGNhc2UgSU5URVJOQUxWQVJfU0NBTEFSOgot LSAgICAgIGlmICh2YXItPnUuc2NhbGFyLnR5cGUgPT0gTlVMTAotLQkgIHx8IFRZUEVfQ09ERSAo dmFyLT51LnNjYWxhci50eXBlKSA9PSBUWVBFX0NPREVfSU5UKQotLQl7Ci0tCSAgKnJlc3VsdCA9 IHZhci0+dS5zY2FsYXIudmFsLmw7Ci0tCSAgcmV0dXJuIDE7Ci0tCX0KLS0gICAgICAvKiBGYWxs IHRocm91Z2guICAqLwotKyAgICBjYXNlIElOVEVSTkFMVkFSX0lOVEVHRVI6Ci0rICAgICAgKnJl c3VsdCA9IHZhci0+dS5pbnRlZ2VyLnZhbDsKLSsgICAgICByZXR1cm4gMTsKLSAKLSAgICAgZGVm YXVsdDoKLSAgICAgICByZXR1cm4gMDsKLUBAIC0xMjI0LDE1ICsxMjI1LDE1IEBACi0gICAgICAg YnJlYWs7Ci0gCi0gICAgIGNhc2UgVFlQRV9DT0RFX0lOVDoKLS0gICAgICBuZXdfa2luZCA9IElO VEVSTkFMVkFSX1NDQUxBUjsKLS0gICAgICBuZXdfZGF0YS5zY2FsYXIudHlwZSA9IHZhbHVlX3R5 cGUgKHZhbCk7Ci0tICAgICAgbmV3X2RhdGEuc2NhbGFyLnZhbC5sID0gdmFsdWVfYXNfbG9uZyAo dmFsKTsKLSsgICAgICBuZXdfa2luZCA9IElOVEVSTkFMVkFSX0lOVEVHRVI7Ci0rICAgICAgbmV3 X2RhdGEuaW50ZWdlci50eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKLSsgICAgICBuZXdfZGF0YS5p bnRlZ2VyLnZhbCA9IHZhbHVlX2FzX2xvbmcgKHZhbCk7Ci0gICAgICAgYnJlYWs7Ci0gCi0gICAg IGNhc2UgVFlQRV9DT0RFX1BUUjoKLS0gICAgICBuZXdfa2luZCA9IElOVEVSTkFMVkFSX1NDQUxB UjsKLS0gICAgICBuZXdfZGF0YS5zY2FsYXIudHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7Ci0tICAg ICAgbmV3X2RhdGEuc2NhbGFyLnZhbC5hID0gdmFsdWVfYXNfYWRkcmVzcyAodmFsKTsKLSsgICAg ICBuZXdfa2luZCA9IElOVEVSTkFMVkFSX1BPSU5URVI7Ci0rICAgICAgbmV3X2RhdGEucG9pbnRl ci50eXBlID0gdmFsdWVfdHlwZSAodmFsKTsKLSsgICAgICBuZXdfZGF0YS5wb2ludGVyLnZhbCA9 IHZhbHVlX2FzX2FkZHJlc3MgKHZhbCk7Ci0gICAgICAgYnJlYWs7Ci0gCi0gICAgIGRlZmF1bHQ6 Ci1AQCAtMTI2OSw5ICsxMjcwLDkgQEAKLSAgIC8qIENsZWFuIHVwIG9sZCBjb250ZW50cy4gICov Ci0gICBjbGVhcl9pbnRlcm5hbHZhciAodmFyKTsKLSAKLS0gIHZhci0+a2luZCA9IElOVEVSTkFM VkFSX1NDQUxBUjsKLS0gIHZhci0+dS5zY2FsYXIudHlwZSA9IE5VTEw7Ci0tICB2YXItPnUuc2Nh bGFyLnZhbC5sID0gbDsKLSsgIHZhci0+a2luZCA9IElOVEVSTkFMVkFSX0lOVEVHRVI7Ci0rICB2 YXItPnUuaW50ZWdlci50eXBlID0gTlVMTDsKLSsgIHZhci0+dS5pbnRlZ2VyLnZhbCA9IGw7Ci0g fQotIAotIHZvaWQKLUBAIC0xNDI2LDEwICsxNDI3LDE2IEBACi0gewotICAgc3dpdGNoICh2YXIt PmtpbmQpCi0gICAgIHsKLS0gICAgY2FzZSBJTlRFUk5BTFZBUl9TQ0FMQVI6Ci0tICAgICAgaWYg KHZhci0+dS5zY2FsYXIudHlwZSAmJiBUWVBFX09CSkZJTEUgKHZhci0+dS5zY2FsYXIudHlwZSkg PT0gb2JqZmlsZSkKLS0JdmFyLT51LnNjYWxhci50eXBlCi0tCSAgPSBjb3B5X3R5cGVfcmVjdXJz aXZlIChvYmpmaWxlLCB2YXItPnUuc2NhbGFyLnR5cGUsIGNvcGllZF90eXBlcyk7Ci0rICAgIGNh c2UgSU5URVJOQUxWQVJfSU5URUdFUjoKLSsgICAgICBpZiAodmFyLT51LmludGVnZXIudHlwZSAm JiBUWVBFX09CSkZJTEUgKHZhci0+dS5pbnRlZ2VyLnR5cGUpID09IG9iamZpbGUpCi0rCXZhci0+ dS5pbnRlZ2VyLnR5cGUKLSsJICA9IGNvcHlfdHlwZV9yZWN1cnNpdmUgKG9iamZpbGUsIHZhci0+ dS5pbnRlZ2VyLnR5cGUsIGNvcGllZF90eXBlcyk7Ci0rICAgICAgYnJlYWs7Ci0rCi0rICAgIGNh c2UgSU5URVJOQUxWQVJfUE9JTlRFUjoKLSsgICAgICBpZiAoVFlQRV9PQkpGSUxFICh2YXItPnUu cG9pbnRlci50eXBlKSA9PSBvYmpmaWxlKQotKwl2YXItPnUucG9pbnRlci50eXBlCi0rCSAgPSBj b3B5X3R5cGVfcmVjdXJzaXZlIChvYmpmaWxlLCB2YXItPnUucG9pbnRlci50eXBlLCBjb3BpZWRf dHlwZXMpOwotICAgICAgIGJyZWFrOwotIAotICAgICBjYXNlIElOVEVSTkFMVkFSX1ZBTFVFOgot QEAgLTIxNjQsNyArMjE3MSw3IEBACi0gdmFsdWVfZnJvbV9wb2ludGVyIChzdHJ1Y3QgdHlwZSAq dHlwZSwgQ09SRV9BRERSIGFkZHIpCi0gewotICAgc3RydWN0IHZhbHVlICp2YWwgPSBhbGxvY2F0 ZV92YWx1ZSAodHlwZSk7Ci0tICBzdG9yZV90eXBlZF9hZGRyZXNzICh2YWx1ZV9jb250ZW50c19y YXcgKHZhbCksIHR5cGUsIGFkZHIpOwotKyAgc3RvcmVfdHlwZWRfYWRkcmVzcyAodmFsdWVfY29u dGVudHNfcmF3ICh2YWwpLCBjaGVja190eXBlZGVmICh0eXBlKSwgYWRkcik7Ci0gICByZXR1cm4g dmFsOwotIH0KLSAKLS0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nZGJ2YXJzLmMKLSsr KyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nZGJ2YXJzLmMJMjAwOS0wOC0xOSAxNToxMDo0 Ny4yNzA3ODMwMDAgKzAwMDAKLUBAIC0wLDAgKzEsMTYgQEAKLSsvKiBTaW1wbGUgcHJvZ3JhbSB0 byBoZWxwIGV4ZXJjaXNlIGdkYidzIGNvbnZlbmllbmNlIHZhcmlhYmxlcy4gICovCi0rCi0rdHlw ZWRlZiB2b2lkICpwdHI7Ci0rCi0rcHRyIHAgPSAmcDsKLSsKLStpbnQKLSttYWluICgpCi0rewot KyNpZmRlZiB1c2VzdHVicwotKyAgICBzZXRfZGVidWdfdHJhcHMgKCk7Ci0rICAgIGJyZWFrcG9p bnQgKCk7Ci0rI2VuZGlmCi0rCi0rICByZXR1cm4gMDsKLSt9Ci0tLS0gc3JjL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvZ2RidmFycy5leHAJMjAwOS8wMS8wMyAwNTo1ODowMwkxLjYKLSsrKyBzcmMv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9nZGJ2YXJzLmV4cAkyMDA5LzA4LzE5IDEzOjAwOjI5CTEu NwotQEAgLTIyLDYgKzIyLDE1IEBACi0gc2V0IHBybXNfaWQgMAotIHNldCBidWdfaWQgMAotIAot K3NldCB0ZXN0ZmlsZSAiZ2RidmFycyIKLStzZXQgc3JjZmlsZSAgJHt0ZXN0ZmlsZX0uYwotK3Nl dCBiaW5maWxlICAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9Ci0rCi0raWYgIHsgW2dk Yl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBl eGVjdXRhYmxlIHtkZWJ1Z31dICE9ICIiIH0gewotKyAgICB1bnRlc3RlZCBnZGJ2YXJzLmV4cAot KyAgICByZXR1cm4gLTEKLSt9Ci0rCi0gcHJvYyB0ZXN0X2NvbnZlbmllbmNlX3ZhcmlhYmxlcyB7 fSB7Ci0gICAgIGdsb2JhbCBnZGJfcHJvbXB0Ci0gCi1AQCAtMTAxLDEzICsxMTAsMjMgQEAKLSAJ IlVzZSB2YWx1ZS1oaXN0b3J5IGVsZW1lbnQgaW4gYXJpdGhtZXRpYyBleHByZXNzaW9uIgotIH0K LSAKLStwcm9jIHRlc3Rfd2l0aF9wcm9ncmFtIHt9IHsKLSsgICAgZ2xvYmFsIGhleAotKyAgICBn ZGJfdGVzdCAic2V0IFwkcHJvZ192YXIgPSBwIiAiIiBcCi0rCSJTZXQgYSBuZXcgY29udmVuaWVu Y2UgdmFyaWFibGUgdG8gYSBwcm9ncmFtIHZhcmlhYmxlIgotKyAgICBnZGJfdGVzdCAicHJpbnQg L3ggXCRwcm9nX3ZhciIgIiA9ICRoZXgiIFwKLSsJIlByaW50IGNvbnRlbnRzIG9mIG5ldyBjb252 ZW5pZW5jZSB2YXJpYWJsZSBvZiBwcm9ncmFtIHZhcmlhYmxlIgotK30KLSsKLSAjIFN0YXJ0IHdp dGggYSBmcmVzaCBnZGIuCi0gCi0gZ2RiX2V4aXQKLSBnZGJfc3RhcnQKLSBnZGJfcmVpbml0aWFs aXplX2RpciAkc3JjZGlyLyRzdWJkaXIKLStnZGJfbG9hZCAke2JpbmZpbGV9Ci0gCi0gc2VuZF9n ZGIgInNldCBwcmludCBzZXZlbmJpdC1zdHJpbmdzXG4iIDsgZ2RiX2V4cGVjdCAtcmUgIi4qJGdk Yl9wcm9tcHQgJCIKLSAKLSB0ZXN0X3ZhbHVlX2hpc3RvcnkKLSB0ZXN0X2NvbnZlbmllbmNlX3Zh cmlhYmxlcwotK3Rlc3Rfd2l0aF9wcm9ncmFtCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRj aCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXggZDMxODU1Yi4uMzFlMmQ0YiAxMDA2NDQKLS0tIGEv Z2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBo dHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3NvdXJj ZXdhcmUub3JnL2dkYi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBzaG90 OgotY29tbWl0IGEwODFkMmYxMjk0NWU5NDY4ZWRkNWY0MzQxZDNlOTQ1YmQwZmVmZTkKK2NvbW1p dCA5NDFlYjQ4N2E0MjkzM2U0NDJjYjRkMTEzNDRjZGE5NmVjYjhhMDRkCiAKIGJyYW5jaCBgYXJj aGVyJyAtIHRoZSBtZXJnZSBvZiBicmFuY2hlczoKIGFyY2hlci10cm9tZXktY2FsbC1mcmFtZS1j ZmEKQEAgLTE0LDEwICsxNCwxMiBAQCBhcmNoZXIta2VpdGhzLWV4cHItY3VtdWxhdGl2ZQogYXJj aGVyLXRyb21leS1weXRob24KIGFyY2hlci1qYW5rcmF0b2NodmlsLWZvcnRyYW4tbW9kdWxlCiBh cmNoZXItamFua3JhdG9jaHZpbC13YXRjaHBvaW50CithcmNoZXItamFua3JhdG9jaHZpbC1icF9s b2NhdGlvbi1hY2NlbAorYXJjaGVyLXBtdWxkb29uLW5leHQtb3Zlci10aHJvdwogCiAKIGRpZmYg LS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4KLWluZGV4IDljMmI5Yzcu LjAzMmIwY2YgMTAwNjQ0CitpbmRleCA3ZjJmZTU4Li5hYzNhNGEwIDEwMDY0NAogLS0tIGEvZ2Ri L01ha2VmaWxlLmluCiArKysgYi9nZGIvTWFrZWZpbGUuaW4KIEBAIC0xNjYsNiArMTY2LDEzIEBA IElOVExfQ0ZMQUdTID0gQElOQ0lOVExACkBAIC0zOCw1MCArNDAsNTAgQEAgaW5kZXggOWMyYjlj Ny4uMDMyYjBjZiAxMDA2NDQKICAjCiAgU1VCRElSX1BZVEhPTl9PQlMgPSBcCiAgCXB5dGhvbi5v IFwKLSsJcHl0aG9uLWJsb2NrLm8gXAotKwlweXRob24tYnJlYWtwb2ludC5vIFwKLSAJcHl0aG9u LWNtZC5vIFwKLSAJcHl0aG9uLWZyYW1lLm8gXAotIAlweXRob24tZnVuY3Rpb24ubyBcCi0rCXB5 dGhvbi1ob29rcy5vIFwKLSsJcHl0aG9uLWluZmVyaW9yLm8gXAotKwlweXRob24taW5mdGhyZWFk Lm8gXAotIAlweXRob24tb2JqZmlsZS5vIFwKLSsJcHl0aG9uLXBhcmFtLm8gXAotIAlweXRob24t cHJldHR5cHJpbnQubyBcCi0rCXB5dGhvbi1zeW1ib2wubyBcCi0rCXB5dGhvbi1zeW10YWIubyBc Ci0gCXB5dGhvbi10eXBlLm8gXAotIAlweXRob24tdXRpbHMubyBcCi0gCXB5dGhvbi12YWx1ZS5v CisrCXB5LWJsb2NrLm8gXAorKwlweS1icmVha3BvaW50Lm8gXAorIAlweS1jbWQubyBcCisgCXB5 LWZyYW1lLm8gXAorIAlweS1mdW5jdGlvbi5vIFwKKysJcHktaG9va3MubyBcCisrCXB5LWluZmVy aW9yLm8gXAorKwlweS1pbmZ0aHJlYWQubyBcCisgCXB5LW9iamZpbGUubyBcCisrCXB5LXBhcmFt Lm8gXAorIAlweS1wcmV0dHlwcmludC5vIFwKKysJcHktc3ltYm9sLm8gXAorKwlweS1zeW10YWIu byBcCisgCXB5LXR5cGUubyBcCisgCXB5LXV0aWxzLm8gXAorIAlweS12YWx1ZS5vCiAgU1VCRElS X1BZVEhPTl9TUkNTID0gXAogIAlweXRob24vcHl0aG9uLmMgXAotKwlweXRob24vcHl0aG9uLWJs b2NrLmMgXAotKwlweXRob24vcHl0aG9uLWJyZWFrcG9pbnQuYyBcCi0gCXB5dGhvbi9weXRob24t Y21kLmMgXAotIAlweXRob24vcHl0aG9uLWZyYW1lLmMgXAotIAlweXRob24vcHl0aG9uLWZ1bmN0 aW9uLmMgXAotKwlweXRob24vcHl0aG9uLWhvb2tzLmMgXAotKwlweXRob24vcHl0aG9uLWluZmVy aW9yLmMgXAotKwlweXRob24vcHl0aG9uLWluZnRocmVhZC5jIFwKLSAJcHl0aG9uL3B5dGhvbi1v YmpmaWxlLmMgXAotKwlweXRob24vcHl0aG9uLXBhcmFtLmMgXAotIAlweXRob24vcHl0aG9uLXBy ZXR0eXByaW50LmMgXAotKwlweXRob24vcHl0aG9uLXN5bWJvbC5jIFwKLSsJcHl0aG9uL3B5dGhv bi1zeW10YWIuYyBcCi0gCXB5dGhvbi9weXRob24tdHlwZS5jIFwKLSAJcHl0aG9uL3B5dGhvbi11 dGlscy5jIFwKLSAJcHl0aG9uL3B5dGhvbi12YWx1ZS5jCi1AQCAtNzQ1LDcgKzc2OCw3IEBAIGNv bmZpZy9yczYwMDAvbm0tcnM2MDAwLmggdG9wLmggYnNkLWt2bS5oIGdkYi1zdGFicy5oIHJlZ2dy b3Vwcy5oIFwKKysJcHl0aG9uL3B5LWJsb2NrLmMgXAorKwlweXRob24vcHktYnJlYWtwb2ludC5j IFwKKyAJcHl0aG9uL3B5LWNtZC5jIFwKKyAJcHl0aG9uL3B5LWZyYW1lLmMgXAorIAlweXRob24v cHktZnVuY3Rpb24uYyBcCisrCXB5dGhvbi9weS1ob29rcy5jIFwKKysJcHl0aG9uL3B5LWluZmVy aW9yLmMgXAorKwlweXRob24vcHktaW5mdGhyZWFkLmMgXAorIAlweXRob24vcHktb2JqZmlsZS5j IFwKKysJcHl0aG9uL3B5LXBhcmFtLmMgXAorIAlweXRob24vcHktcHJldHR5cHJpbnQuYyBcCisr CXB5dGhvbi9weS1zeW1ib2wuYyBcCisrCXB5dGhvbi9weS1zeW10YWIuYyBcCisgCXB5dGhvbi9w eS10eXBlLmMgXAorIAlweXRob24vcHktdXRpbHMuYyBcCisgCXB5dGhvbi9weS12YWx1ZS5jCitA QCAtNzQ2LDcgKzc2OSw3IEBAIGNvbmZpZy9yczYwMDAvbm0tcnM2MDAwLmggdG9wLmggYnNkLWt2 bS5oIGdkYi1zdGFicy5oIHJlZ2dyb3Vwcy5oIFwKICBhbm5vdGF0ZS5oIHNpbS1yZWduby5oIGRp Y3Rpb25hcnkuaCBkZnAuaCBtYWluLmggZnJhbWUtdW53aW5kLmgJXAogIHJlbW90ZS1maWxlaW8u aCBpMzg2LWxpbnV4LXRkZXAuaCB2YXgtdGRlcC5oIG9iamMtbGFuZy5oIFwKICBzZW50aW5lbC1m cmFtZS5oIGJjYWNoZS5oIHN5bWZpbGUuaCB3aW5kb3dzLXRkZXAuaCBsaW51eC10ZGVwLmggXAot LWdkYl91c2xlZXAuaAotK2dkYl91c2xlZXAuaCBweXRob24vcHl0aG9uLmggcHl0aG9uL3B5dGhv bi1pbnRlcm5hbC5oCistZ2RiX3VzbGVlcC5oIGppdC5oCisrZ2RiX3VzbGVlcC5oIGppdC5oIHB5 dGhvbi9weXRob24uaCBweXRob24vcHl0aG9uLWludGVybmFsLmgKICAKICAjIEhlYWRlciBmaWxl cyB0aGF0IGFscmVhZHkgaGF2ZSBzcmNkaXIgaW4gdGhlbSwgb3Igd2hpY2ggYXJlIGluIG9iamRp ci4KICAKLUBAIC04NjIsNyArODg1LDcgQEAgZ2VuZXJhdGVkX2ZpbGVzID0gY29uZmlnLmggb2Jz ZXJ2ZXIuaCBvYnNlcnZlci5pbmMgYWRhLWxleC5jIFwKK0BAIC04NjQsNyArODg3LDcgQEAgZ2Vu ZXJhdGVkX2ZpbGVzID0gY29uZmlnLmggb2JzZXJ2ZXIuaCBvYnNlcnZlci5pbmMgYWRhLWxleC5j IFwKICAJJChDT01QSUxFKSAkPAogIAkkKFBPU1RDT01QSUxFKQogIApAQCAtOTAsNyArOTIsNyBA QCBpbmRleCA5YzJiOWM3Li4wMzJiMGNmIDEwMDY0NAogIAlAJChNQUtFKSAkKEZMQUdTX1RPX1BB U1MpIERPPWFsbCAiRE9ESVJTPWBlY2hvICQoU1VCRElSUykgfCBzZWQgJ3MvdGVzdHN1aXRlLy8n YCIgc3ViZGlyX2RvCiAgLlBIT05ZOiBhbGwtdHVpCiAgYWxsLXR1aTogJChUVUkpJChFWEVFWFQp Ci1AQCAtMTIxOCw2ICsxMjQxLDEyIEBAIHN0YW1wLWg6ICQoc3JjZGlyKS9jb25maWcuaW4gY29u ZmlnLnN0YXR1cworQEAgLTEyMjEsNiArMTI0NCwxMiBAQCBzdGFtcC1oOiAkKHNyY2RpcikvY29u ZmlnLmluIGNvbmZpZy5zdGF0dXMKICAJICBDT05GSUdfTElOS1M9IFwKICAJICAkKFNIRUxMKSBj b25maWcuc3RhdHVzCiAgCkBAIC0xMDMsNjIgKzEwNSw2MiBAQCBpbmRleCA5YzJiOWM3Li4wMzJi MGNmIDEwMDY0NAogIGNvbmZpZy5zdGF0dXM6ICQoc3JjZGlyKS9jb25maWd1cmUgY29uZmlndXJl LnRndCBjb25maWd1cmUuaG9zdAogIAkkKFNIRUxMKSBjb25maWcuc3RhdHVzIC0tcmVjaGVjawog IAotQEAgLTE5MTcsNiArMTk0NiwxNCBAQCBweXRob24ubzogJChzcmNkaXIpL3B5dGhvbi9weXRo b24uYworQEAgLTE5MjAsNiArMTk0OSwxNCBAQCBweXRob24ubzogJChzcmNkaXIpL3B5dGhvbi9w eXRob24uYwogIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9w eXRob24uYwogIAkkKFBPU1RDT01QSUxFKQogIAotK3B5dGhvbi1ibG9jay5vOiAkKHNyY2Rpcikv cHl0aG9uL3B5dGhvbi1ibG9jay5jCi0rCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNy Y2RpcikvcHl0aG9uL3B5dGhvbi1ibG9jay5jCisrcHktYmxvY2subzogJChzcmNkaXIpL3B5dGhv bi9weS1ibG9jay5jCisrCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0 aG9uL3B5LWJsb2NrLmMKICsJJChQT1NUQ09NUElMRSkKICsKLStweXRob24tYnJlYWtwb2ludC5v OiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1icmVha3BvaW50LmMKLSsJJChDT01QSUxFKSAkKFBZ VEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHl0aG9uLWJyZWFrcG9pbnQuYworK3B5LWJy ZWFrcG9pbnQubzogJChzcmNkaXIpL3B5dGhvbi9weS1icmVha3BvaW50LmMKKysJJChDT01QSUxF KSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktYnJlYWtwb2ludC5jCiArCSQo UE9TVENPTVBJTEUpCiArCi0gcHl0aG9uLWNtZC5vOiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1j bWQuYwotIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weXRo b24tY21kLmMKKyBweS1jbWQubzogJChzcmNkaXIpL3B5dGhvbi9weS1jbWQuYworIAkkKENPTVBJ TEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weS1jbWQuYwogIAkkKFBPU1RD T01QSUxFKQotQEAgLTE5MjksMTQgKzE5NjYsMzggQEAgcHl0aG9uLWZ1bmN0aW9uLm86ICQoc3Jj ZGlyKS9weXRob24vcHl0aG9uLWZ1bmN0aW9uLmMKLSAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxB R1MpICQoc3JjZGlyKS9weXRob24vcHl0aG9uLWZ1bmN0aW9uLmMKK0BAIC0xOTMyLDE0ICsxOTY5 LDM4IEBAIHB5LWZ1bmN0aW9uLm86ICQoc3JjZGlyKS9weXRob24vcHktZnVuY3Rpb24uYworIAkk KENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weS1mdW5jdGlvbi5j CiAgCSQoUE9TVENPTVBJTEUpCiAgCi0rcHl0aG9uLWhvb2tzLm86ICQoc3JjZGlyKS9weXRob24v cHl0aG9uLWhvb2tzLmMKLSsJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9w eXRob24vcHl0aG9uLWhvb2tzLmMKKytweS1ob29rcy5vOiAkKHNyY2RpcikvcHl0aG9uL3B5LWhv b2tzLmMKKysJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHkt aG9va3MuYwogKwkkKFBPU1RDT01QSUxFKQogKwotK3B5dGhvbi1pbmZlcmlvci5vOiAkKHNyY2Rp cikvcHl0aG9uL3B5dGhvbi1pbmZlcmlvci5jCi0rCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdT KSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1pbmZlcmlvci5jCisrcHktaW5mZXJpb3IubzogJChz cmNkaXIpL3B5dGhvbi9weS1pbmZlcmlvci5jCisrCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdT KSAkKHNyY2RpcikvcHl0aG9uL3B5LWluZmVyaW9yLmMKICsJJChQT1NUQ09NUElMRSkKICsKLStw eXRob24taW5mdGhyZWFkLm86ICQoc3JjZGlyKS9weXRob24vcHl0aG9uLWluZnRocmVhZC5jCi0r CSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1pbmZ0 aHJlYWQuYworK3B5LWluZnRocmVhZC5vOiAkKHNyY2RpcikvcHl0aG9uL3B5LWluZnRocmVhZC5j CisrCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5LWluZnRo cmVhZC5jCiArCSQoUE9TVENPTVBJTEUpCiArCi0gcHl0aG9uLW9iamZpbGUubzogJChzcmNkaXIp L3B5dGhvbi9weXRob24tb2JqZmlsZS5jCi0gCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAk KHNyY2RpcikvcHl0aG9uL3B5dGhvbi1vYmpmaWxlLmMKKyBweS1vYmpmaWxlLm86ICQoc3JjZGly KS9weXRob24vcHktb2JqZmlsZS5jCisgCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNy Y2RpcikvcHl0aG9uL3B5LW9iamZpbGUuYwogIAkkKFBPU1RDT01QSUxFKQogIAotK3B5dGhvbi1w YXJhbS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1wYXJhbS5jCi0rCSQoQ09NUElMRSkgJChQ WVRIT05fQ0ZMQUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1wYXJhbS5jCisrcHktcGFyYW0u bzogJChzcmNkaXIpL3B5dGhvbi9weS1wYXJhbS5jCisrCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZM QUdTKSAkKHNyY2RpcikvcHl0aG9uL3B5LXBhcmFtLmMKICsJJChQT1NUQ09NUElMRSkKICsKLSBw eXRob24tcHJldHR5cHJpbnQubzogJChzcmNkaXIpL3B5dGhvbi9weXRob24tcHJldHR5cHJpbnQu YwotIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weXRob24t cHJldHR5cHJpbnQuYworIHB5LXByZXR0eXByaW50Lm86ICQoc3JjZGlyKS9weXRob24vcHktcHJl dHR5cHJpbnQuYworIAkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFHUykgJChzcmNkaXIpL3B5dGhv bi9weS1wcmV0dHlwcmludC5jCiAgCSQoUE9TVENPTVBJTEUpCiAgCi0rcHl0aG9uLXN5bWJvbC5v OiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi1zeW1ib2wuYwotKwkkKENPTVBJTEUpICQoUFlUSE9O X0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weXRob24tc3ltYm9sLmMKKytweS1zeW1ib2wubzog JChzcmNkaXIpL3B5dGhvbi9weS1zeW1ib2wuYworKwkkKENPTVBJTEUpICQoUFlUSE9OX0NGTEFH UykgJChzcmNkaXIpL3B5dGhvbi9weS1zeW1ib2wuYwogKwkkKFBPU1RDT01QSUxFKQogKwotK3B5 dGhvbi1zeW10YWIubzogJChzcmNkaXIpL3B5dGhvbi9weXRob24tc3ltdGFiLmMKLSsJJChDT01Q SUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHl0aG9uLXN5bXRhYi5jCisr cHktc3ltdGFiLm86ICQoc3JjZGlyKS9weXRob24vcHktc3ltdGFiLmMKKysJJChDT01QSUxFKSAk KFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktc3ltdGFiLmMKICsJJChQT1NUQ09N UElMRSkKICsKLSBweXRob24tdHlwZS5vOiAkKHNyY2RpcikvcHl0aG9uL3B5dGhvbi10eXBlLmMK LSAJJChDT01QSUxFKSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHl0aG9uLXR5 cGUuYworIHB5LXR5cGUubzogJChzcmNkaXIpL3B5dGhvbi9weS10eXBlLmMKKyAJJChDT01QSUxF KSAkKFBZVEhPTl9DRkxBR1MpICQoc3JjZGlyKS9weXRob24vcHktdHlwZS5jCiAgCSQoUE9TVENP TVBJTEUpCi1AQCAtMTk0OSw2ICsyMDEwLDM2IEBAIHB5dGhvbi12YWx1ZS5vOiAkKHNyY2Rpcikv cHl0aG9uL3B5dGhvbi12YWx1ZS5jCi0gCSQoQ09NUElMRSkgJChQWVRIT05fQ0ZMQUdTKSAkKHNy Y2RpcikvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCitAQCAtMTk1Miw2ICsyMDEzLDM2IEBAIHB5LXZh bHVlLm86ICQoc3JjZGlyKS9weXRob24vcHktdmFsdWUuYworIAkkKENPTVBJTEUpICQoUFlUSE9O X0NGTEFHUykgJChzcmNkaXIpL3B5dGhvbi9weS12YWx1ZS5jCiAgCSQoUE9TVENPTVBJTEUpCiAg CiArIyBBbGwgcHl0aG9uIGxpYnJhcnkgZmlsZXMsIHdpdGggdGhlICJweXRob24vbGliIiBzdHJp cHBlZCBvZmYuCkBAIC0xOTUsMTAgKzE5NywxMCBAQCBpbmRleCA5YzJiOWM3Li4wMzJiMGNmIDEw MDY0NAogICMgRGVwZW5kZW5jeSB0cmFja2luZy4gIE1vc3Qgb2YgdGhpcyBpcyBjb25kaXRpb25h bCBvbiBHTlUgTWFrZSBiZWluZwogICMgZm91bmQgYnkgY29uZmlndXJlOyBpZiBHTlUgTWFrZSBp cyBub3QgZm91bmQsIHdlIGZhbGwgYmFjayB0byBhCiBkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9n ZGIvTkVXUwotaW5kZXggMGI4ZTNhZi4uNDQ2MjQ2ZiAxMDA2NDQKK2luZGV4IDE0ZGE2YzguLjE5 NzlmNDIgMTAwNjQ0CiAtLS0gYS9nZGIvTkVXUwogKysrIGIvZ2RiL05FV1MKLUBAIC00MjUsNiAr NDI1LDEzIEBAIHg4Ni94ODZfNjQgRGFyd2luCQlpWzM0NTY3XTg2LSotZGFyd2luKgorQEAgLTQ0 NCw2ICs0NDQsMTMgQEAgeDg2L3g4Nl82NCBEYXJ3aW4JCWlbMzQ1NjddODYtKi1kYXJ3aW4qCiAg CiAgeDg2XzY0IE1pbkdXCQkJeDg2XzY0LSotbWluZ3cqCiAgCkBAIC0zODcsMTAgKzM4OSwxMCBA QCBpbmRleCA3ZDg0NjFjLi5hNmQzNWQ3IDEwMDY0NAogIAogICAgLyogT3ZlcnJpZGUgdGhlIEdO VS9MaW51eCBpbmZlcmlvciBzdGFydHVwIGhvb2suICAqLwogZGlmZiAtLWdpdCBhL2dkYi9ibG9j ay5jIGIvZ2RiL2Jsb2NrLmMKLWluZGV4IDE4ODllY2QuLjM3ZmEzNDIgMTAwNjQ0CitpbmRleCA5 N2VhNjdhLi5iMjBiZWViIDEwMDY0NAogLS0tIGEvZ2RiL2Jsb2NrLmMKICsrKyBiL2dkYi9ibG9j ay5jCi1AQCAtMjIzLDggKzIyMyw5IEBAIGJsb2NrX3NldF9zY29wZSAoc3RydWN0IGJsb2NrICpi bG9jaywgY29uc3QgY2hhciAqc2NvcGUsCitAQCAtMjI3LDggKzIyNyw5IEBAIGJsb2NrX3NldF9z Y29wZSAoc3RydWN0IGJsb2NrICpibG9jaywgY29uc3QgY2hhciAqc2NvcGUsCiAgICBCTE9DS19O QU1FU1BBQ0UgKGJsb2NrKS0+c2NvcGUgPSBzY29wZTsKICB9CiAgCkBAIC00MDIsNyArNDA0LDcg QEAgaW5kZXggMTg4OWVjZC4uMzdmYTM0MiAxMDA2NDQKICAKICBzdHJ1Y3QgdXNpbmdfZGlyZWN0 ICoKICBibG9ja191c2luZyAoY29uc3Qgc3RydWN0IGJsb2NrICpibG9jaykKLUBAIC0zMTQsNiAr MzE1LDI1IEBAIGFsbG9jYXRlX2Jsb2NrIChzdHJ1Y3Qgb2JzdGFjayAqb2JzdGFjaykKK0BAIC0z MTgsNiArMzE5LDI1IEBAIGFsbG9jYXRlX2Jsb2NrIChzdHJ1Y3Qgb2JzdGFjayAqb2JzdGFjaykK ICAgIEJMT0NLX1NVUEVSQkxPQ0sgKGJsKSA9IE5VTEw7CiAgICBCTE9DS19ESUNUIChibCkgPSBO VUxMOwogICAgQkxPQ0tfTkFNRVNQQUNFIChibCkgPSBOVUxMOwpAQCAtNDY0LDE4ICs0NjYsODMg QEAgaW5kZXggNTNlNzM3MS4uZDM3M2Y4YSAxMDA2NDQKICsKICAjZW5kaWYgLyogQkxPQ0tfSCAq LwogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5jCi1pbmRl eCBmMzk0MGUxLi4yMzQ5ZmJjIDEwMDY0NAoraW5kZXggOWY1MDg3Mi4uYTQyNTVkNyAxMDA2NDQK IC0tLSBhL2dkYi9icmVha3BvaW50LmMKICsrKyBiL2dkYi9icmVha3BvaW50LmMKLUBAIC01OSw2 ICs1OSw3IEBACi0gI2luY2x1ZGUgInRvcC5oIgorQEAgLTYwLDYgKzYwLDcgQEAKICAjaW5jbHVk ZSAid3JhcHBlci5oIgogICNpbmNsdWRlICJ2YWxwcmludC5oIgorICNpbmNsdWRlICJqaXQuaCIK ICsjaW5jbHVkZSAicGFyc2VyLWRlZnMuaCIKICAKICAvKiByZWFkbGluZSBpbmNsdWRlIGZpbGVz ICovCiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCi1AQCAtNTc4LDYgKzU3OSw1MyBA QCBnZXRfYnJlYWtwb2ludCAoaW50IG51bSkKK0BAIC0xMTEsOCArMTEyLDYgQEAgc3RydWN0IGJy ZWFrcG9pbnQgKnNldF9yYXdfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCisg CQkJCQkgICAgICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lLAorIAkJCQkJICAgICAgZW51bSBicHR5 cGUpOworIAorLXN0YXRpYyB2b2lkIGNoZWNrX2R1cGxpY2F0ZXMgKHN0cnVjdCBicmVha3BvaW50 ICopOworLQorIHN0YXRpYyB2b2lkIGJyZWFrcG9pbnRfYWRqdXN0bWVudF93YXJuaW5nIChDT1JF X0FERFIsIENPUkVfQUREUiwgaW50LCBpbnQpOworIAorIHN0YXRpYyBDT1JFX0FERFIgYWRqdXN0 X2JyZWFrcG9pbnRfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMzM0LDE0 ICszMzMsMTQgQEAgc3RhdGljIGludCBleGVjdXRpbmdfc3RhcnR1cDsKKyAJICAgICBCID8gKFRN UD1CLT5uZXh0LCAxKTogMDsJXAorIAkgICAgIEIgPSBUTVApCisgCistLyogU2ltaWxhciBpdGVy YXRvcnMgZm9yIHRoZSBsb3ctbGV2ZWwgYnJlYWtwb2ludHMuICAqLworLQorLSNkZWZpbmUgQUxM X0JQX0xPQ0FUSU9OUyhCKSAgZm9yIChCID0gYnBfbG9jYXRpb25fY2hhaW47IEI7IEIgPSBCLT5n bG9iYWxfbmV4dCkKKysvKiBTaW1pbGFyIGl0ZXJhdG9yIGZvciB0aGUgbG93LWxldmVsIGJyZWFr cG9pbnRzLiAgU0FGRSB2YXJpYW50IGlzIG5vdAorKyAgIHByb3ZpZGVkIHNvIHVwZGF0ZV9nbG9i YWxfbG9jYXRpb25fbGlzdCBtdXN0IG5vdCBiZSBjYWxsZWQgd2hpbGUgZXhlY3V0aW5nCisrICAg dGhlIGJsb2NrIG9mIEFMTF9CUF9MT0NBVElPTlMuICAqLworIAorLSNkZWZpbmUgQUxMX0JQX0xP Q0FUSU9OU19TQUZFKEIsVE1QKQlcCistCWZvciAoQiA9IGJwX2xvY2F0aW9uX2NoYWluOwlcCist CSAgICAgQiA/IChUTVA9Qi0+Z2xvYmFsX25leHQsIDEpOiAwOwlcCistCSAgICAgQiA9IFRNUCkK KysjZGVmaW5lIEFMTF9CUF9MT0NBVElPTlMoQixCUF9UTVApCQkJCQlcCisrCWZvciAoQlBfVE1Q ID0gYnBfbG9jYXRpb247CQkJCQlcCisrCSAgICAgQlBfVE1QIDwgYnBfbG9jYXRpb24gKyBicF9s b2NhdGlvbl9jb3VudCAmJiAoQiA9ICpCUF9UTVApOwlcCisrCSAgICAgQlBfVE1QKyspCisgCisg LyogSXRlcmF0b3IgZm9yIHRyYWNlcG9pbnRzIG9ubHkuICAqLworIAorQEAgLTM1MywxMCArMzUy LDMxIEBAIHN0YXRpYyBpbnQgZXhlY3V0aW5nX3N0YXJ0dXA7CisgCisgc3RydWN0IGJyZWFrcG9p bnQgKmJyZWFrcG9pbnRfY2hhaW47CisgCistc3RydWN0IGJwX2xvY2F0aW9uICpicF9sb2NhdGlv bl9jaGFpbjsKKysvKiBBcnJheSBpcyBzb3J0ZWQgYnkgYnBfbG9jYXRpb25fY29tcGFyZSAtIHBy aW1hcmlseSBieSB0aGUgQUREUkVTUy4gICovCisrCisrc3RhdGljIHN0cnVjdCBicF9sb2NhdGlv biAqKmJwX2xvY2F0aW9uOworKworKy8qIE51bWJlciBvZiBlbGVtZW50cyBvZiBCUF9MT0NBVElP Ti4gICovCisrCisrc3RhdGljIHVuc2lnbmVkIGJwX2xvY2F0aW9uX2NvdW50OworKworKy8qIE1h eGltdW0gYWxpZ25tZW50IG9mZnNldCBiZXR3ZWVuIGJwX3RhcmdldF9pbmZvLlBMQUNFRF9BRERS RVNTIGFuZCBBRERSRVNTCisrICAgZm9yIHRoZSBjdXJyZW50IGVsZW1lbnRzIG9mIEJQX0xPQ0FU SU9OIHdoaWNoIGdldCBhIHZhbGlkIHJlc3VsdCBmcm9tCisrICAgYnBfbG9jYXRpb25faGFzX3No YWRvdy4gIFlvdSBjYW4gdXNlIGl0IGZvciByb3VnaGx5IGxpbWl0aW5nIHRoZSBzdWJyYW5nZSBv ZgorKyAgIEJQX0xPQ0FUSU9OIHRvIHNjYW4gZm9yIHNoYWRvdyBieXRlcyBmb3IgYW4gYWRkcmVz cyB5b3UgbmVlZCB0byByZWFkLiAgKi8KKysKKytzdGF0aWMgQ09SRV9BRERSIGJwX2xvY2F0aW9u X3BsYWNlZF9hZGRyZXNzX2JlZm9yZV9hZGRyZXNzX21heDsKKysKKysvKiBNYXhpbXVtIG9mZnNl dCBwbHVzIGFsaWdubWVudCBiZXR3ZWVuCisrICAgYnBfdGFyZ2V0X2luZm8uUExBQ0VEX0FERFJF U1MgKyBicF90YXJnZXRfaW5mby5TSEFET1dfTEVOIGFuZCBBRERSRVNTIGZvcgorKyAgIHRoZSBj dXJyZW50IGVsZW1lbnRzIG9mIEJQX0xPQ0FUSU9OIHdoaWNoIGdldCBhIHZhbGlkIHJlc3VsdCBm cm9tCisrICAgYnBfbG9jYXRpb25faGFzX3NoYWRvdy4gIFlvdSBjYW4gdXNlIGl0IGZvciByb3Vn aGx5IGxpbWl0aW5nIHRoZSBzdWJyYW5nZSBvZgorKyAgIEJQX0xPQ0FUSU9OIHRvIHNjYW4gZm9y IHNoYWRvdyBieXRlcyBmb3IgYW4gYWRkcmVzcyB5b3UgbmVlZCB0byByZWFkLiAgKi8KKysKKytz dGF0aWMgQ09SRV9BRERSIGJwX2xvY2F0aW9uX3NoYWRvd19sZW5fYWZ0ZXJfYWRkcmVzc19tYXg7 CisgCisgLyogVGhlIGxvY2F0aW9ucyB0aGF0IG5vIGxvbmdlciBjb3JyZXNwb25kIHRvIGFueSBi cmVha3BvaW50LAorLSAgIHVubGlua2VkIGZyb20gYnBfbG9jYXRpb25fY2hhaW4sIGJ1dCBmb3Ig d2hpY2ggYSBoaXQKKysgICB1bmxpbmtlZCBmcm9tIGJwX2xvY2F0aW9uIGFycmF5LCBidXQgZm9y IHdoaWNoIGEgaGl0CisgICAgbWF5IHN0aWxsIGJlIHJlcG9ydGVkIGJ5IGEgdGFyZ2V0LiAgKi8K KyBWRUMoYnBfbG9jYXRpb25fcCkgKm1vcmlidW5kX2xvY2F0aW9ucyA9IE5VTEw7CisgCitAQCAt NTc5LDYgKzU5OSw1MyBAQCBnZXRfYnJlYWtwb2ludCAoaW50IG51bSkKICB9CiAgCiAgDApAQCAt NTI5LDcgKzU5Niw3IEBAIGluZGV4IGYzOTQwZTEuLjIzNDlmYmMgMTAwNjQ0CiAgLyogY29uZGl0 aW9uIE4gRVhQIC0tIHNldCBicmVhayBjb25kaXRpb24gb2YgYnJlYWtwb2ludCBOIHRvIEVYUC4g ICovCiAgCiAgc3RhdGljIHZvaWQKLUBAIC01OTgsNDIgKzY0Niw3IEBAIGNvbmRpdGlvbl9jb21t YW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKK0BAIC01OTksNDIgKzY2Niw3IEBAIGNvbmRp dGlvbl9jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAgIEFMTF9CUkVBS1BPSU5U UyAoYikKICAgICAgaWYgKGItPm51bWJlciA9PSBibnVtKQogICAgICAgIHsKQEAgLTU3Myw3ICs2 NDAsMjczIEBAIGluZGV4IGYzOTQwZTEuLjIzNDlmYmMgMTAwNjQ0CiAgCXJldHVybjsKICAgICAg ICB9CiAgCi1AQCAtMTY5MCw2ICsxNzAzLDcgQEAgZGV0YWNoX2JyZWFrcG9pbnRzIChpbnQgcGlk KQorQEAgLTczMiwzNSArNzY0LDg4IEBAIGNvbW1hbmRzX2Zyb21fY29udHJvbF9jb21tYW5kIChj aGFyICphcmcsIHN0cnVjdCBjb21tYW5kX2xpbmUgKmNtZCkKKyAgICAgICB9CisgICBlcnJvciAo XygiTm8gYnJlYWtwb2ludCBudW1iZXIgJWQuIiksIGJudW0pOworIH0KKy0MCisrCisrLyogUmV0 dXJuIG5vbi16ZXJvIGlmIEJMLT5UQVJHRVRfSU5GTyBjb250YWlucyB2YWxpZCBpbmZvcm1hdGlv bi4gICovCisrCisrc3RhdGljIGludAorK2JwX2xvY2F0aW9uX2hhc19zaGFkb3cgKHN0cnVjdCBi cF9sb2NhdGlvbiAqYmwpCisreworKyAgaWYgKGJsLT5sb2NfdHlwZSAhPSBicF9sb2Nfc29mdHdh cmVfYnJlYWtwb2ludCkKKysgICAgcmV0dXJuIDA7CisrICBpZiAoIWJsLT5pbnNlcnRlZCkKKysg ICAgcmV0dXJuIDA7CisrICBpZiAoYmwtPnRhcmdldF9pbmZvLnNoYWRvd19sZW4gPT0gMCkKKysg ICAgLyogYnAgaXNuJ3QgdmFsaWQsIG9yIGRvZXNuJ3Qgc2hhZG93IG1lbW9yeS4gICovCisrICAg IHJldHVybiAwOworKyAgcmV0dXJuIDE7CisrfQorKworIC8qIFVwZGF0ZSBCVUYsIHdoaWNoIGlz IExFTiBieXRlcyByZWFkIGZyb20gdGhlIHRhcmdldCBhZGRyZXNzIE1FTUFERFIsCistICAgYnkg cmVwbGFjaW5nIGFueSBtZW1vcnkgYnJlYWtwb2ludHMgd2l0aCB0aGVpciBzaGFkb3dlZCBjb250 ZW50cy4gICovCisrICAgYnkgcmVwbGFjaW5nIGFueSBtZW1vcnkgYnJlYWtwb2ludHMgd2l0aCB0 aGVpciBzaGFkb3dlZCBjb250ZW50cy4KKysKKysgICBUaGUgcmFuZ2Ugb2Ygc2hhZG93ZWQgYXJl YSBieSBlYWNoIGJwX2xvY2F0aW9uIGlzOgorKyAgICAgYi0+YWRkcmVzcyAtIGJwX2xvY2F0aW9u X3BsYWNlZF9hZGRyZXNzX2JlZm9yZV9hZGRyZXNzX21heAorKyAgICAgdXAgdG8gYi0+YWRkcmVz cyArIGJwX2xvY2F0aW9uX3NoYWRvd19sZW5fYWZ0ZXJfYWRkcmVzc19tYXgKKysgICBUaGUgcmFu Z2Ugd2Ugd2VyZSByZXF1ZXN0ZWQgdG8gcmVzb2x2ZSBzaGFkb3dzIGZvciBpczoKKysgICAgIG1l bWFkZHIgLi4uIG1lbWFkZHIgKyBsZQorKyAgIFRodXMgdGhlIHNhZmUgY3V0b2ZmIGJvdW5kYXJp ZXMgZm9yIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBhcmUKKysgICAgIG1lbWFkZHIgKyBsZW4g PD0gYi0+YWRkcmVzcyAtIGJwX2xvY2F0aW9uX3BsYWNlZF9hZGRyZXNzX2JlZm9yZV9hZGRyZXNz X21heAorKyAgIGFuZDoKKysgICAgIGItPmFkZHJlc3MgKyBicF9sb2NhdGlvbl9zaGFkb3dfbGVu X2FmdGVyX2FkZHJlc3NfbWF4IDw9IG1lbWFkZHIgICovCisgCisgdm9pZAorIGJyZWFrcG9pbnRf cmVzdG9yZV9zaGFkb3dzIChnZGJfYnl0ZSAqYnVmLCBVTE9OR0VTVCBtZW1hZGRyLCBMT05HRVNU IGxlbikKKyB7CistICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmI7CistICBDT1JFX0FERFIgYnBfYWRk ciA9IDA7CistICBpbnQgYnBfc2l6ZSA9IDA7CistICBpbnQgYnB0b2Zmc2V0ID0gMDsKKysgIC8q IExlZnQgYm91bmRhcnksIHJpZ2h0IGJvdW5kYXJ5IGFuZCBtZWRpYSBlbGVtZW50IG9mIG91ciBi aW5hcnkgc2VhcmNoLiAgKi8KKysgIHVuc2lnbmVkIGJjX2wsIGJjX3IsIGJjOworKworKyAgLyog RmluZCBCQ19MIHdoaWNoIGlzIGEgbGVmdG1vc3QgZWxlbWVudCB3aGljaCBtYXkgYWZmZWN0IEJV RiBjb250ZW50LiAgSXQgaXMKKysgICAgIHNhZmUgdG8gcmVwb3J0IGxvd2VyIHZhbHVlIGJ1dCBh IGZhaWx1cmUgdG8gcmVwb3J0IGhpZ2hlciBvbmUuICAqLworKworKyAgYmNfbCA9IDA7CisrICBi Y19yID0gYnBfbG9jYXRpb25fY291bnQ7CisrICB3aGlsZSAoYmNfbCArIDEgPCBiY19yKQorKyAg ICB7CisrICAgICAgc3RydWN0IGJwX2xvY2F0aW9uICpiOworIAorLSAgQUxMX0JQX0xPQ0FUSU9O UyAoYikKKysgICAgICBiYyA9IChiY19sICsgYmNfcikgLyAyOworKyAgICAgIGIgPSBicF9sb2Nh dGlvbltiY107CisrCisrICAgICAgaWYgKGItPmFkZHJlc3MgKyBicF9sb2NhdGlvbl9zaGFkb3df bGVuX2FmdGVyX2FkZHJlc3NfbWF4ID49IGItPmFkZHJlc3MKKysJICAmJiBiLT5hZGRyZXNzICsg YnBfbG9jYXRpb25fc2hhZG93X2xlbl9hZnRlcl9hZGRyZXNzX21heCA8PSBtZW1hZGRyKQorKwli Y19sID0gYmM7CisrICAgICAgZWxzZQorKwliY19yID0gYmM7CisrICAgIH0KKysKKysgIC8qIE5v dyBkbyBmdWxsIHByb2Nlc3Npbmcgb2YgdGhlIGZvdW5kIHJlbGV2YW50IHJhbmdlIG9mIGVsZW1l bnRzLiAgKi8KKysKKysgIGZvciAoYmMgPSBiY19sOyBiYyA8IGJwX2xvY2F0aW9uX2NvdW50OyBi YysrKQorICAgeworKyAgICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmIgPSBicF9sb2NhdGlvbltiY107 CisrICAgIENPUkVfQUREUiBicF9hZGRyID0gMDsKKysgICAgaW50IGJwX3NpemUgPSAwOworKyAg ICBpbnQgYnB0b2Zmc2V0ID0gMDsKKysKKyAgICAgaWYgKGItPm93bmVyLT50eXBlID09IGJwX25v bmUpCisgICAgICAgd2FybmluZyAoXygicmVhZGluZyB0aHJvdWdoIGFwcGFyZW50bHkgZGVsZXRl ZCBicmVha3BvaW50ICMlZD8iKSwKKyAgICAgICAgICAgICAgIGItPm93bmVyLT5udW1iZXIpOwor IAorLSAgICBpZiAoYi0+bG9jX3R5cGUgIT0gYnBfbG9jX3NvZnR3YXJlX2JyZWFrcG9pbnQpCist ICAgICAgY29udGludWU7CistICAgIGlmICghYi0+aW5zZXJ0ZWQpCisrICAgIC8qIFBlcmZvcm1h bmNlIG9wdGltaXphdGlvbjogYW55IGZ1dGhlciBlbGVtZW50IGNhbiBubyBsb25nZXIgYWZmZWN0 IEJVRgorKyAgICAgICBjb250ZW50LiAgKi8KKysKKysgICAgaWYgKGItPmFkZHJlc3MgPj0gYnBf bG9jYXRpb25fcGxhY2VkX2FkZHJlc3NfYmVmb3JlX2FkZHJlc3NfbWF4CisrICAgICAgICAmJiBt ZW1hZGRyICsgbGVuIDw9IGItPmFkZHJlc3MKKysJCQkgICAgLSBicF9sb2NhdGlvbl9wbGFjZWRf YWRkcmVzc19iZWZvcmVfYWRkcmVzc19tYXgpCisrICAgICAgYnJlYWs7CisrCisrICAgIGlmICgh YnBfbG9jYXRpb25faGFzX3NoYWRvdyAoYikpCisgICAgICAgY29udGludWU7CisrCisgICAgIC8q IEFkZHJlc3NlcyBhbmQgbGVuZ3RoIG9mIHRoZSBwYXJ0IG9mIHRoZSBicmVha3BvaW50IHRoYXQK KyAgICAgICAgd2UgbmVlZCB0byBjb3B5LiAgKi8KKyAgICAgYnBfYWRkciA9IGItPnRhcmdldF9p bmZvLnBsYWNlZF9hZGRyZXNzOworICAgICBicF9zaXplID0gYi0+dGFyZ2V0X2luZm8uc2hhZG93 X2xlbjsKKy0gICAgaWYgKGJwX3NpemUgPT0gMCkKKy0gICAgICAvKiBicCBpc24ndCB2YWxpZCwg b3IgZG9lc24ndCBzaGFkb3cgbWVtb3J5LiAgKi8KKy0gICAgICBjb250aW51ZTsKKyAKKyAgICAg aWYgKGJwX2FkZHIgKyBicF9zaXplIDw9IG1lbWFkZHIpCisgICAgICAgLyogVGhlIGJyZWFrcG9p bnQgaXMgZW50aXJlbHkgYmVmb3JlIHRoZSBjaHVuayBvZiBtZW1vcnkgd2UKK0BAIC05MDksNyAr OTk0LDcgQEAgdXBkYXRlX3dhdGNocG9pbnQgKHN0cnVjdCBicmVha3BvaW50ICpiLCBpbnQgcmVw YXJzZSkKKyAgIHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jOworICAgYnBzdGF0IGJzOworIAorLSAg LyogV2UgZG9uJ3QgZnJlZSBsb2NhdGlvbnMuICBUaGV5IGFyZSBzdG9yZWQgaW4gYnBfbG9jYXRp b25fY2hhaW4gYW5kCisrICAvKiBXZSBkb24ndCBmcmVlIGxvY2F0aW9ucy4gIFRoZXkgYXJlIHN0 b3JlZCBpbiBicF9sb2NhdGlvbiBhcnJheSBhbmQKKyAgICAgIHVwZGF0ZV9nbG9iYWxfbG9jYXRp b25zIHdpbGwgZXZlbnR1YWxseSBkZWxldGUgdGhlbSBhbmQgcmVtb3ZlCisgICAgICBicmVha3Bv aW50cyBpZiBuZWVkZWQuICAqLworICAgYi0+bG9jID0gTlVMTDsKK0BAIC0xMzQ0LDcgKzE0Mjks NyBAQCBzdGF0aWMgdm9pZAorIGluc2VydF9icmVha3BvaW50X2xvY2F0aW9ucyAodm9pZCkKKyB7 CisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0OworLSAgc3RydWN0IGJwX2xvY2F0aW9uICpiLCAq dGVtcDsKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgKipicF90bXA7CisgICBpbnQgZXJyb3Ig PSAwOworICAgaW50IHZhbCA9IDA7CisgICBpbnQgZGlzYWJsZWRfYnJlYWtzID0gMDsKK0BAIC0x MzU3LDcgKzE0NDIsNyBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCisgICAg ICB0aGVyZSB3YXMgYW4gZXJyb3IuICAqLworICAgZnByaW50Zl91bmZpbHRlcmVkICh0bXBfZXJy b3Jfc3RyZWFtLCAiV2FybmluZzpcbiIpOworIAkKKy0gIEFMTF9CUF9MT0NBVElPTlNfU0FGRSAo YiwgdGVtcCkKKysgIEFMTF9CUF9MT0NBVElPTlMgKGIsIGJwX3RtcCkKKyAgICAgeworICAgICAg IGlmICghc2hvdWxkX2JlX2luc2VydGVkIChiKSB8fCBiLT5pbnNlcnRlZCkKKyAJY29udGludWU7 CitAQCAtMTQzMSwxMCArMTUxNiwxMCBAQCBZb3UgbWF5IGhhdmUgcmVxdWVzdGVkIHRvbyBtYW55 IGhhcmR3YXJlIGJyZWFrcG9pbnRzL3dhdGNocG9pbnRzLlxuIik7CisgaW50CisgcmVtb3ZlX2Jy ZWFrcG9pbnRzICh2b2lkKQorIHsKKy0gIHN0cnVjdCBicF9sb2NhdGlvbiAqYjsKKysgIHN0cnVj dCBicF9sb2NhdGlvbiAqYiwgKipicF90bXA7CisgICBpbnQgdmFsID0gMDsKKyAKKy0gIEFMTF9C UF9MT0NBVElPTlMgKGIpCisrICBBTExfQlBfTE9DQVRJT05TIChiLCBicF90bXApCisgICB7Cisg ICAgIGlmIChiLT5pbnNlcnRlZCkKKyAgICAgICB2YWwgfD0gcmVtb3ZlX2JyZWFrcG9pbnQgKGIs IG1hcmtfdW5pbnNlcnRlZCk7CitAQCAtMTQ0NSwxMCArMTUzMCwxMCBAQCByZW1vdmVfYnJlYWtw b2ludHMgKHZvaWQpCisgaW50CisgcmVtb3ZlX2h3X3dhdGNocG9pbnRzICh2b2lkKQorIHsKKy0g IHN0cnVjdCBicF9sb2NhdGlvbiAqYjsKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgKipicF90 bXA7CisgICBpbnQgdmFsID0gMDsKKyAKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGIpCisrICBBTExf QlBfTE9DQVRJT05TIChiLCBicF90bXApCisgICB7CisgICAgIGlmIChiLT5pbnNlcnRlZCAmJiBi LT5sb2NfdHlwZSA9PSBicF9sb2NfaGFyZHdhcmVfd2F0Y2hwb2ludCkKKyAgICAgICB2YWwgfD0g cmVtb3ZlX2JyZWFrcG9pbnQgKGIsIG1hcmtfdW5pbnNlcnRlZCk7CitAQCAtMTQ1OSw3ICsxNTQ0 LDcgQEAgcmVtb3ZlX2h3X3dhdGNocG9pbnRzICh2b2lkKQorIGludAorIHJlYXR0YWNoX2JyZWFr cG9pbnRzIChpbnQgcGlkKQorIHsKKy0gIHN0cnVjdCBicF9sb2NhdGlvbiAqYjsKKysgIHN0cnVj dCBicF9sb2NhdGlvbiAqYiwgKipicF90bXA7CisgICBpbnQgdmFsOworICAgc3RydWN0IGNsZWFu dXAgKm9sZF9jaGFpbiA9IHNhdmVfaW5mZXJpb3JfcHRpZCAoKTsKKyAgIHN0cnVjdCB1aV9maWxl ICp0bXBfZXJyb3Jfc3RyZWFtID0gbWVtX2ZpbGVvcGVuICgpOworQEAgLTE0NjgsNyArMTU1Myw3 IEBAIHJlYXR0YWNoX2JyZWFrcG9pbnRzIChpbnQgcGlkKQorICAgbWFrZV9jbGVhbnVwX3VpX2Zp bGVfZGVsZXRlICh0bXBfZXJyb3Jfc3RyZWFtKTsKKyAKKyAgIGluZmVyaW9yX3B0aWQgPSBwaWRf dG9fcHRpZCAocGlkKTsKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGIpCisrICBBTExfQlBfTE9DQVRJ T05TIChiLCBicF90bXApCisgICB7CisgICAgIGlmIChiLT5pbnNlcnRlZCkKKyAgICAgICB7CitA QCAtMTU2NiwxMiArMTY1MSw0MiBAQCBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAo Y2hhciAqZnVuY19uYW1lKQorICAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0ICgxKTsKKyB9 CisgCisrLyogSW5zdGFsbCBhIG1hc3RlciBicmVha3BvaW50IG9uIHRoZSB1bndpbmRlcidzIGRl YnVnIGhvb2suICAqLworKworK3ZvaWQKKytjcmVhdGVfZXhjZXB0aW9uX21hc3Rlcl9icmVha3Bv aW50ICh2b2lkKQorK3sKKysgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOworKworKyAgQUxMX09C SkZJTEVTIChvYmpmaWxlKQorKyAgICB7CisrICAgICAgc3RydWN0IG1pbmltYWxfc3ltYm9sICpk ZWJ1Z19ob29rOworKworKyAgICAgIGRlYnVnX2hvb2sgPSBsb29rdXBfbWluaW1hbF9zeW1ib2xf dGV4dCAoIl9VbndpbmRfRGVidWdIb29rIiwgb2JqZmlsZSk7CisrICAgICAgaWYgKGRlYnVnX2hv b2sgIT0gTlVMTCkKKysJeworKwkgIENPUkVfQUREUiBwYzsKKysJICBzdHJ1Y3QgYnJlYWtwb2lu dCAqYjsKKysKKysJICBwYyA9IGZpbmRfZnVuY3Rpb25fc3RhcnRfcGMgKGdldF9vYmpmaWxlX2Fy Y2ggKG9iamZpbGUpLAorKwkJCQkgICAgICAgU1lNQk9MX1ZBTFVFX0FERFJFU1MgKGRlYnVnX2hv b2spLAorKwkJCQkgICAgICAgU1lNQk9MX09CSl9TRUNUSU9OIChkZWJ1Z19ob29rKSk7CisrCSAg YiA9IGNyZWF0ZV9pbnRlcm5hbF9icmVha3BvaW50IChnZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxl KSwKKysJCQkJCSAgcGMsIGJwX2V4Y2VwdGlvbl9tYXN0ZXIpOworKwkgIGItPmFkZHJfc3RyaW5n ID0geHN0cmR1cCAoIl9VbndpbmRfRGVidWdIb29rIik7CisrCSAgYi0+ZW5hYmxlX3N0YXRlID0g YnBfZGlzYWJsZWQ7CisrCX0KKysgICAgfQorKworKyAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9s aXN0ICgxKTsKKyt9CisrCisgdm9pZAorIHVwZGF0ZV9icmVha3BvaW50c19hZnRlcl9leGVjICh2 b2lkKQorIHsKKyAgIHN0cnVjdCBicmVha3BvaW50ICpiOworICAgc3RydWN0IGJyZWFrcG9pbnQg KnRlbXA7CistICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJwbG9jOworKyAgc3RydWN0IGJwX2xvY2F0 aW9uICpicGxvYywgKipicGxvY3BfdG1wOworIAorICAgLyogV2UncmUgYWJvdXQgdG8gZGVsZXRl IGJyZWFrcG9pbnRzIGZyb20gR0RCJ3MgbGlzdHMuICBJZiB0aGUKKyAgICAgIElOU0VSVEVEIGZs YWcgaXMgdHJ1ZSwgR0RCIHdpbGwgdHJ5IHRvIGxpZnQgdGhlIGJyZWFrcG9pbnRzIGJ5CitAQCAt MTU4MSw3ICsxNjk2LDcgQEAgdXBkYXRlX2JyZWFrcG9pbnRzX2FmdGVyX2V4ZWMgKHZvaWQpCisg ICAgICBicmVha3BvaW50cyBvdXQgYXMgc29vbiBhcyBpdCBkZXRlY3RzIGFuIGV4ZWMuICBXZSBk b24ndCBkbyB0aGF0CisgICAgICBoZXJlIGluc3RlYWQsIGJlY2F1c2UgdGhlcmUgbWF5IGJlIG90 aGVyIGF0dGVtcHRzIHRvIGRlbGV0ZQorICAgICAgYnJlYWtwb2ludHMgYWZ0ZXIgZGV0ZWN0aW5n IGFuIGV4ZWMgYW5kIGJlZm9yZSByZWFjaGluZyBoZXJlLiAgKi8KKy0gIEFMTF9CUF9MT0NBVElP TlMgKGJwbG9jKQorKyAgQUxMX0JQX0xPQ0FUSU9OUyAoYnBsb2MsIGJwbG9jcF90bXApCisgICAg IGdkYl9hc3NlcnQgKCFicGxvYy0+aW5zZXJ0ZWQpOworIAorICAgQUxMX0JSRUFLUE9JTlRTX1NB RkUgKGIsIHRlbXApCitAQCAtMTYwMyw3ICsxNzE4LDcgQEAgdXBkYXRlX2JyZWFrcG9pbnRzX2Fm dGVyX2V4ZWMgKHZvaWQpCisgICAgIC8qIFRocmVhZCBldmVudCBicmVha3BvaW50cyBtdXN0IGJl IHNldCBhbmV3IGFmdGVyIGFuIGV4ZWMoKSwKKyAgICAgICAgYXMgbXVzdCBvdmVybGF5IGV2ZW50 IGFuZCBsb25nam1wIG1hc3RlciBicmVha3BvaW50cy4gICovCisgICAgIGlmIChiLT50eXBlID09 IGJwX3RocmVhZF9ldmVudCB8fCBiLT50eXBlID09IGJwX292ZXJsYXlfZXZlbnQKKy0JfHwgYi0+ dHlwZSA9PSBicF9sb25nam1wX21hc3RlcikKKysJfHwgYi0+dHlwZSA9PSBicF9sb25nam1wX21h c3RlciB8fCBiLT50eXBlID09IGJwX2V4Y2VwdGlvbl9tYXN0ZXIpCisgICAgICAgeworIAlkZWxl dGVfYnJlYWtwb2ludCAoYik7CisgCWNvbnRpbnVlOworQEAgLTE2MTgsNyArMTczMyw4IEBAIHVw ZGF0ZV9icmVha3BvaW50c19hZnRlcl9leGVjICh2b2lkKQorIAorICAgICAvKiBMb25nam1wIGFu ZCBsb25nam1wLXJlc3VtZSBicmVha3BvaW50cyBhcmUgYWxzbyBtZWFuaW5nbGVzcworICAgICAg ICBhZnRlciBhbiBleGVjLiAgKi8KKy0gICAgaWYgKGItPnR5cGUgPT0gYnBfbG9uZ2ptcCB8fCBi LT50eXBlID09IGJwX2xvbmdqbXBfcmVzdW1lKQorKyAgICBpZiAoYi0+dHlwZSA9PSBicF9sb25n am1wIHx8IGItPnR5cGUgPT0gYnBfbG9uZ2ptcF9yZXN1bWUKKysJfHwgYi0+dHlwZSA9PSBicF9l eGNlcHRpb24gfHwgYi0+dHlwZSA9PSBicF9leGNlcHRpb25fcmVzdW1lKQorICAgICAgIHsKKyAJ ZGVsZXRlX2JyZWFrcG9pbnQgKGIpOworIAljb250aW51ZTsKK0BAIC0xNjc5LDEyICsxNzk1LDEz IEBAIHVwZGF0ZV9icmVha3BvaW50c19hZnRlcl9leGVjICh2b2lkKQorICAgY3JlYXRlX2xvbmdq bXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJfbG9uZ2ptcCIpOworICAgY3JlYXRlX2xvbmdqbXBfbWFz dGVyX2JyZWFrcG9pbnQgKCJzaWdsb25nam1wIik7CisgICBjcmVhdGVfbG9uZ2ptcF9tYXN0ZXJf YnJlYWtwb2ludCAoIl9zaWdsb25nam1wIik7CisrICBjcmVhdGVfZXhjZXB0aW9uX21hc3Rlcl9i cmVha3BvaW50ICgpOworIH0KKyAKKyBpbnQKKyBkZXRhY2hfYnJlYWtwb2ludHMgKGludCBwaWQp CisgeworLSAgc3RydWN0IGJwX2xvY2F0aW9uICpiOworKyAgc3RydWN0IGJwX2xvY2F0aW9uICpi LCAqKmJwX3RtcDsKKyAgIGludCB2YWwgPSAwOworICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFp biA9IHNhdmVfaW5mZXJpb3JfcHRpZCAoKTsKKyAKK0BAIC0xNjkzLDExICsxODEwLDEyIEBAIGRl dGFjaF9icmVha3BvaW50cyAoaW50IHBpZCkKKyAKKyAgIC8qIFNldCBpbmZlcmlvcl9wdGlkOyBy ZW1vdmVfYnJlYWtwb2ludCB1c2VzIHRoaXMgZ2xvYmFsLiAgKi8KKyAgIGluZmVyaW9yX3B0aWQg PSBwaWRfdG9fcHRpZCAocGlkKTsKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGIpCisrICBBTExfQlBf TE9DQVRJT05TIChiLCBicF90bXApCisgICB7CiAgICAgIGlmIChiLT5pbnNlcnRlZCkKICAgICAg ICB2YWwgfD0gcmVtb3ZlX2JyZWFrcG9pbnQgKGIsIG1hcmtfaW5zZXJ0ZWQpOwogICAgfQpAQCAt NTgxLDcgKzkxNCw3IEBAIGluZGV4IGYzOTQwZTEuLjIzNDlmYmMgMTAwNjQ0CiAgICBkb19jbGVh bnVwcyAob2xkX2NoYWluKTsKICAgIHJldHVybiB2YWw7CiAgfQotQEAgLTE3ODIsMTIgKzE3OTYs MTQgQEAgcmVtb3ZlX2JyZWFrcG9pbnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgaW5zZXJ0aW9u X3N0YXRlX3QgaXMpCitAQCAtMTc5MCwxMiArMTkwOCwxNCBAQCByZW1vdmVfYnJlYWtwb2ludCAo c3RydWN0IGJwX2xvY2F0aW9uICpiLCBpbnNlcnRpb25fc3RhdGVfdCBpcykKICAJcmV0dXJuIHZh bDsKICAgICAgICBiLT5pbnNlcnRlZCA9IChpcyA9PSBtYXJrX2luc2VydGVkKTsKICAgICAgfQpA QCAtNTk4LDcgKzkzMSwxMjAgQEAgaW5kZXggZjM5NDBlMS4uMjM0OWZiYyAxMDA2NDQKICAgICAg ICB2YWwgPSB0YXJnZXRfcmVtb3ZlX3dhdGNocG9pbnQgKGItPmFkZHJlc3MsIGItPmxlbmd0aCwg CiAgCQkJCSAgICAgIGItPndhdGNocG9pbnRfdHlwZSk7CiAgCi1AQCAtMjk2MSw4ICsyOTc3LDEy IEBAIGJwc3RhdF9jaGVja19sb2NhdGlvbiAoY29uc3Qgc3RydWN0IGJwX2xvY2F0aW9uICpibCwg Q09SRV9BRERSIGJwX2FkZHIpCitAQCAtMTgyNCw5ICsxOTQ0LDkgQEAgcmVtb3ZlX2JyZWFrcG9p bnQgKHN0cnVjdCBicF9sb2NhdGlvbiAqYiwgaW5zZXJ0aW9uX3N0YXRlX3QgaXMpCisgdm9pZAor IG1hcmtfYnJlYWtwb2ludHNfb3V0ICh2b2lkKQorIHsKKy0gIHN0cnVjdCBicF9sb2NhdGlvbiAq YnB0OworKyAgc3RydWN0IGJwX2xvY2F0aW9uICpicHQsICoqYnB0cF90bXA7CisgCistICBBTExf QlBfTE9DQVRJT05TIChicHQpCisrICBBTExfQlBfTE9DQVRJT05TIChicHQsIGJwdHBfdG1wKQor ICAgICBicHQtPmluc2VydGVkID0gMDsKKyB9CisgCitAQCAtMTg0Niw3ICsxOTY2LDcgQEAgdm9p ZAorIGJyZWFrcG9pbnRfaW5pdF9pbmZlcmlvciAoZW51bSBpbmZfY29udGV4dCBjb250ZXh0KQor IHsKKyAgIHN0cnVjdCBicmVha3BvaW50ICpiLCAqdGVtcDsKKy0gIHN0cnVjdCBicF9sb2NhdGlv biAqYnB0OworKyAgc3RydWN0IGJwX2xvY2F0aW9uICpicHQsICoqYnB0cF90bXA7CisgICBpbnQg aXg7CisgCisgICAvKiBJZiBicmVha3BvaW50IGxvY2F0aW9ucyBhcmUgc2hhcmVkIGFjcm9zcyBw cm9jZXNzZXMsIHRoZW4gdGhlcmUncworQEAgLTE4NTQsNyArMTk3NCw3IEBAIGJyZWFrcG9pbnRf aW5pdF9pbmZlcmlvciAoZW51bSBpbmZfY29udGV4dCBjb250ZXh0KQorICAgaWYgKGdkYmFyY2hf aGFzX2dsb2JhbF9icmVha3BvaW50cyAodGFyZ2V0X2dkYmFyY2gpKQorICAgICByZXR1cm47Cisg CistICBBTExfQlBfTE9DQVRJT05TIChicHQpCisrICBBTExfQlBfTE9DQVRJT05TIChicHQsIGJw dHBfdG1wKQorICAgICBpZiAoYnB0LT5vd25lci0+ZW5hYmxlX3N0YXRlICE9IGJwX3Blcm1hbmVu dCkKKyAgICAgICBicHQtPmluc2VydGVkID0gMDsKKyAKK0BAIC0xOTE1LDEwICsyMDM1LDEwIEBA IGJyZWFrcG9pbnRfaW5pdF9pbmZlcmlvciAoZW51bSBpbmZfY29udGV4dCBjb250ZXh0KQorIGVu dW0gYnJlYWtwb2ludF9oZXJlCisgYnJlYWtwb2ludF9oZXJlX3AgKENPUkVfQUREUiBwYykKKyB7 CistICBjb25zdCBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJwdDsKKysgIHN0cnVjdCBicF9sb2NhdGlv biAqYnB0LCAqKmJwdHBfdG1wOworICAgaW50IGFueV9icmVha3BvaW50X2hlcmUgPSAwOworIAor LSAgQUxMX0JQX0xPQ0FUSU9OUyAoYnB0KQorKyAgQUxMX0JQX0xPQ0FUSU9OUyAoYnB0LCBicHRw X3RtcCkKKyAgICAgeworICAgICAgIGlmIChicHQtPmxvY190eXBlICE9IGJwX2xvY19zb2Z0d2Fy ZV9icmVha3BvaW50CisgCSAgJiYgYnB0LT5sb2NfdHlwZSAhPSBicF9sb2NfaGFyZHdhcmVfYnJl YWtwb2ludCkKK0BAIC0xOTU4LDE2ICsyMDc4LDE2IEBAIG1vcmlidW5kX2JyZWFrcG9pbnRfaGVy ZV9wIChDT1JFX0FERFIgcGMpCisgfQorIAorIC8qIFJldHVybnMgbm9uLXplcm8gaWYgdGhlcmUn cyBhIGJyZWFrcG9pbnQgaW5zZXJ0ZWQgYXQgUEMsIHdoaWNoIGlzCistICAgaW5zZXJ0ZWQgdXNp bmcgcmVndWxhciBicmVha3BvaW50X2NoYWluL2JwX2xvY2F0aW9uX2NoYWluIG1lY2hhbmlzbS4K KysgICBpbnNlcnRlZCB1c2luZyByZWd1bGFyIGJyZWFrcG9pbnRfY2hhaW4gLyBicF9sb2NhdGlv biBhcnJheSBtZWNoYW5pc20uCisgICAgVGhpcyBkb2VzIG5vdCBjaGVjayBmb3Igc2luZ2xlLXN0 ZXAgYnJlYWtwb2ludHMsIHdoaWNoIGFyZQorICAgIGluc2VydGVkIGFuZCByZW1vdmVkIHVzaW5n IGRpcmVjdCB0YXJnZXQgbWFuaXB1bGF0aW9uLiAgKi8KKyAKKyBpbnQKKyByZWd1bGFyX2JyZWFr cG9pbnRfaW5zZXJ0ZWRfaGVyZV9wIChDT1JFX0FERFIgcGMpCisgeworLSAgY29uc3Qgc3RydWN0 IGJwX2xvY2F0aW9uICpicHQ7CisrICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJwdCwgKipicHRwX3Rt cDsKKyAKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGJwdCkKKysgIEFMTF9CUF9MT0NBVElPTlMgKGJw dCwgYnB0cF90bXApCisgICAgIHsKKyAgICAgICBpZiAoYnB0LT5sb2NfdHlwZSAhPSBicF9sb2Nf c29mdHdhcmVfYnJlYWtwb2ludAorIAkgICYmIGJwdC0+bG9jX3R5cGUgIT0gYnBfbG9jX2hhcmR3 YXJlX2JyZWFrcG9pbnQpCitAQCAtMjAwOCwxMCArMjEyOCwxMCBAQCBicmVha3BvaW50X2luc2Vy dGVkX2hlcmVfcCAoQ09SRV9BRERSIHBjKQorIGludAorIHNvZnR3YXJlX2JyZWFrcG9pbnRfaW5z ZXJ0ZWRfaGVyZV9wIChDT1JFX0FERFIgcGMpCisgeworLSAgY29uc3Qgc3RydWN0IGJwX2xvY2F0 aW9uICpicHQ7CisrICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmJwdCwgKipicHRwX3RtcDsKKyAgIGlu dCBhbnlfYnJlYWtwb2ludF9oZXJlID0gMDsKKyAKKy0gIEFMTF9CUF9MT0NBVElPTlMgKGJwdCkK KysgIEFMTF9CUF9MT0NBVElPTlMgKGJwdCwgYnB0cF90bXApCisgICAgIHsKKyAgICAgICBpZiAo YnB0LT5sb2NfdHlwZSAhPSBicF9sb2Nfc29mdHdhcmVfYnJlYWtwb2ludCkKKyAJY29udGludWU7 CitAQCAtMjA0MSwxMiArMjE2MSwxMiBAQCBzb2Z0d2FyZV9icmVha3BvaW50X2luc2VydGVkX2hl cmVfcCAoQ09SRV9BRERSIHBjKQorIGludAorIGJyZWFrcG9pbnRfdGhyZWFkX21hdGNoIChDT1JF X0FERFIgcGMsIHB0aWRfdCBwdGlkKQorIHsKKy0gIGNvbnN0IHN0cnVjdCBicF9sb2NhdGlvbiAq YnB0OworKyAgc3RydWN0IGJwX2xvY2F0aW9uICpicHQsICoqYnB0cF90bXA7CisgICAvKiBUaGUg dGhyZWFkIGFuZCB0YXNrIElEcyBhc3NvY2lhdGVkIHRvIFBUSUQsIGNvbXB1dGVkIGxhemlseS4g ICovCisgICBpbnQgdGhyZWFkID0gLTE7CisgICBpbnQgdGFzayA9IDA7CisgICAKKy0gIEFMTF9C UF9MT0NBVElPTlMgKGJwdCkKKysgIEFMTF9CUF9MT0NBVElPTlMgKGJwdCwgYnB0cF90bXApCisg ICAgIHsKKyAgICAgICBpZiAoYnB0LT5sb2NfdHlwZSAhPSBicF9sb2Nfc29mdHdhcmVfYnJlYWtw b2ludAorIAkgICYmIGJwdC0+bG9jX3R5cGUgIT0gYnBfbG9jX2hhcmR3YXJlX2JyZWFrcG9pbnQp CitAQCAtMjUwMCw2ICsyNjIwLDEyIEBAIHByaW50X2l0X3R5cGljYWwgKGJwc3RhdCBicykKKyAg ICAgICByZXN1bHQgPSBQUklOVF9OT1RISU5HOworICAgICAgIGJyZWFrOworIAorKyAgICBjYXNl IGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CisrICAgICAgLyogVGhlc2Ugc2hvdWxkIG5ldmVyIGJlIGVu YWJsZWQuICAqLworKyAgICAgIHByaW50Zl9maWx0ZXJlZCAoXygiRXhjZXB0aW9uIE1hc3RlciBC cmVha3BvaW50OiBnZGIgc2hvdWxkIG5vdCBzdG9wIVxuIikpOworKyAgICAgIHJlc3VsdCA9IFBS SU5UX05PVEhJTkc7CisrICAgICAgYnJlYWs7CisrCisgICAgIGNhc2UgYnBfd2F0Y2hwb2ludDoK KyAgICAgY2FzZSBicF9oYXJkd2FyZV93YXRjaHBvaW50OgorICAgICAgIGFubm90YXRlX3dhdGNo cG9pbnQgKGItPm51bWJlcik7CitAQCAtMjU4Nyw2ICsyNzEzLDggQEAgcHJpbnRfaXRfdHlwaWNh bCAoYnBzdGF0IGJzKQorICAgICBjYXNlIGJwX25vbmU6CisgICAgIGNhc2UgYnBfbG9uZ2ptcDoK KyAgICAgY2FzZSBicF9sb25nam1wX3Jlc3VtZToKKysgICAgY2FzZSBicF9leGNlcHRpb246Cisr ICAgIGNhc2UgYnBfZXhjZXB0aW9uX3Jlc3VtZToKKyAgICAgY2FzZSBicF9zdGVwX3Jlc3VtZToK KyAgICAgY2FzZSBicF93YXRjaHBvaW50X3Njb3BlOgorICAgICBjYXNlIGJwX2NhbGxfZHVtbXk6 CitAQCAtMjk3MCw4ICszMDk4LDEyIEBAIGJwc3RhdF9jaGVja19sb2NhdGlvbiAoY29uc3Qgc3Ry dWN0IGJwX2xvY2F0aW9uICpibCwgQ09SRV9BRERSIGJwX2FkZHIpCiAgCiAgLyogSWYgQlMgcmVm ZXJzIHRvIGEgd2F0Y2hwb2ludCwgZGV0ZXJtaW5lIGlmIHRoZSB3YXRjaGVkIHZhbHVlcwogICAg IGhhcyBhY3R1YWxseSBjaGFuZ2VkLCBhbmQgd2Ugc2hvdWxkIHN0b3AuICBJZiBub3QsIHNldCBC Uy0+c3RvcApAQCAtNjEzLDcgKzEwNTksNyBAQCBpbmRleCBmMzk0MGUxLi4yMzQ5ZmJjIDEwMDY0 NAogIGJwc3RhdF9jaGVja193YXRjaHBvaW50IChicHN0YXQgYnMpCiAgewogICAgY29uc3Qgc3Ry dWN0IGJwX2xvY2F0aW9uICpibCA9IGJzLT5icmVha3BvaW50X2F0OwotQEAgLTMwNTEsOCArMzA3 MSwxMCBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQorQEAgLTMwNjAsOCAr MzE5MiwxMCBAQCBicHN0YXRfY2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQogIAkgICAgIGFu eXRoaW5nIGZvciB0aGlzIHdhdGNocG9pbnQuICAqLwogIAkgIGJzLT5wcmludF9pdCA9IHByaW50 X2l0X25vb3A7CiAgCSAgYnMtPnN0b3AgPSAwOwpAQCAtNjI0LDE2ICsxMDcwLDMwIEBAIGluZGV4 IGYzOTQwZTEuLjIzNDlmYmMgMTAwNjQ0CiAgfQogIAogIAotQEAgLTMxNTYsNiArMzE3OCw4IEBA IGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9BRERSIGJwX2FkZHIsIHB0aWRfdCBwdGlkKQorQEAg LTMxNTQsMTcgKzMyODgsMTkgQEAgYnBzdGF0CisgYnBzdGF0X3N0b3Bfc3RhdHVzIChDT1JFX0FE RFIgYnBfYWRkciwgcHRpZF90IHB0aWQpCisgeworICAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBO VUxMOworLSAgY29uc3Qgc3RydWN0IGJwX2xvY2F0aW9uICpibDsKKysgIHN0cnVjdCBicF9sb2Nh dGlvbiAqYmwsICoqYmxwX3RtcDsKKyAgIHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jOworICAgLyog Um9vdCBvZiB0aGUgY2hhaW4gb2YgYnBzdGF0J3MgKi8KKyAgIHN0cnVjdCBicHN0YXRzIHJvb3Rf YnNbMV07CisgICAvKiBQb2ludGVyIHRvIHRoZSBsYXN0IHRoaW5nIGluIHRoZSBjaGFpbiBjdXJy ZW50bHkuICAqLworICAgYnBzdGF0IGJzID0gcm9vdF9iczsKKyAgIGludCBpeDsKKy0gIGludCBu ZWVkX3JlbW92ZV9pbnNlcnQ7CisrICBpbnQgbmVlZF9yZW1vdmVfaW5zZXJ0LCB1cGRhdGVfbG9j YXRpb25zID0gMDsKICAKLSAgIEFMTF9CUF9MT0NBVElPTlMgKGJsKQorLSAgQUxMX0JQX0xPQ0FU SU9OUyAoYmwpCisrICBBTExfQlBfTE9DQVRJT05TIChibCwgYmxwX3RtcCkKICAgIHsKICsgICAg YnBzdGF0IGJzX3ByZXYgPSBiczsKICsKICAgICAgYiA9IGJsLT5vd25lcjsKICAgICAgZ2RiX2Fz c2VydCAoYik7CiAgICAgIGlmICghYnJlYWtwb2ludF9lbmFibGVkIChiKSAmJiBiLT5lbmFibGVf c3RhdGUgIT0gYnBfcGVybWFuZW50KQotQEAgLTMxNzYsNiArMzIwMCw3IEBAIGJwc3RhdF9zdG9w X3N0YXR1cyAoQ09SRV9BRERSIGJwX2FkZHIsIHB0aWRfdCBwdGlkKQorQEAgLTMxODUsNiArMzMy MSw3IEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9BRERSIGJwX2FkZHIsIHB0aWRfdCBwdGlk KQogICAgICAvKiBDb21lIGhlcmUgaWYgaXQncyBhIHdhdGNocG9pbnQsIG9yIGlmIHRoZSBicmVh ayBhZGRyZXNzIG1hdGNoZXMgKi8KICAKICAgICAgYnMgPSBicHN0YXRfYWxsb2MgKGJsLCBicyk7 CS8qIEFsbG9jIGEgYnBzdGF0IHRvIGV4cGxhaW4gc3RvcCAqLwpAQCAtNjQxLDcgKzExMDEsNyBA QCBpbmRleCBmMzk0MGUxLi4yMzQ5ZmJjIDEwMDY0NAogIAogICAgICAvKiBBc3N1bWUgd2Ugc3Rv cC4gIFNob3VsZCB3ZSBmaW5kIHdhdGNocG9pbnQgdGhhdCBpcyBub3QgYWN0dWFsbHkKICAgICAg ICAgdHJpZ2dlcmVkLCBvciBpZiBjb25kaXRpb24gb2YgYnJlYWtwb2ludCBpcyBmYWxzZSwgd2Un bGwgcmVzZXQKLUBAIC0zMTgzLDkgKzMyMDgsMTggQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChDT1JF X0FERFIgYnBfYWRkciwgcHRpZF90IHB0aWQpCitAQCAtMzE5MiwxMiArMzMyOSwyMSBAQCBicHN0 YXRfc3RvcF9zdGF0dXMgKENPUkVfQUREUiBicF9hZGRyLCBwdGlkX3QgcHRpZCkKICAgICAgYnMt PnN0b3AgPSAxOwogICAgICBicy0+cHJpbnQgPSAxOwogIApAQCAtNjYyLDExMSArMTEyMiw4NDUg QEAgaW5kZXggZjM5NDBlMS4uMjM0OWZiYyAxMDA2NDQKICsgICAgICB9CiAgCiAgICAgIGlmIChi LT50eXBlID09IGJwX3RocmVhZF9ldmVudCB8fCBiLT50eXBlID09IGJwX292ZXJsYXlfZXZlbnQK LSAJfHwgYi0+dHlwZSA9PSBicF9sb25nam1wX21hc3RlcikKLUBAIC04ODQzLDYgKzg4NzcsMjIg QEAgYWxsX3RyYWNlcG9pbnRzICgpCi0gICByZXR1cm4gdHBfdmVjOwotIH0KKy0JfHwgYi0+dHlw ZSA9PSBicF9sb25nam1wX21hc3RlcikKKysJfHwgYi0+dHlwZSA9PSBicF9sb25nam1wX21hc3Rl ciB8fCBiLT50eXBlID09IGJwX2V4Y2VwdGlvbl9tYXN0ZXIpCisgICAgICAgLyogV2UgZG8gbm90 IHN0b3AgZm9yIHRoZXNlLiAgKi8KKyAgICAgICBicy0+c3RvcCA9IDA7CisgICAgIGVsc2UKK0BA IC0zMjA1LDE0ICszMzUxLDE1IEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoQ09SRV9BRERSIGJwX2Fk ZHIsIHB0aWRfdCBwdGlkKQorICAgCisgICAgIGlmIChicy0+c3RvcCkKKyAgICAgICB7CistCSsr KGItPmhpdF9jb3VudCk7CisrCWlmIChiLT5lbmFibGVfc3RhdGUgIT0gYnBfZGlzYWJsZWQpCisr CSAgKysoYi0+aGl0X2NvdW50KTsKICAKLSsvKiBDYWxsIHR5cGVfbWFya191c2VkIGZvciBhbnkg VFlQRXMgcmVmZXJlbmNlZCBmcm9tIHRoaXMgR0RCIHNvdXJjZSBmaWxlLiAgKi8KLSsKLStzdGF0 aWMgdm9pZAotK2JyZWFrcG9pbnRfdHlwZXNfbWFya191c2VkICh2b2lkKQotK3sKLSsgIHN0cnVj dCBicmVha3BvaW50ICpiOwotKwotKyAgQUxMX0JSRUFLUE9JTlRTIChiKQotKyAgICB7Ci0rICAg ICAgaWYgKGItPmV4cCkKLSsJZXhwX3R5cGVzX21hcmtfdXNlZCAoYi0+ZXhwKTsKLSsgICAgICBp ZiAoYi0+dmFsKQotKwl0eXBlX21hcmtfdXNlZCAodmFsdWVfdHlwZSAoYi0+dmFsKSk7Ci0rICAg IH0KLSt9CisgCS8qIFdlIHdpbGwgc3RvcCBoZXJlICovCisgCWlmIChiLT5kaXNwb3NpdGlvbiA9 PSBkaXNwX2Rpc2FibGUpCisgCSAgeworIAkgICAgaWYgKGItPmVuYWJsZV9zdGF0ZSAhPSBicF9w ZXJtYW5lbnQpCisgCSAgICAgIGItPmVuYWJsZV9zdGF0ZSA9IGJwX2Rpc2FibGVkOworLQkgICAg dXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0ICgwKTsKKysJICAgIHVwZGF0ZV9sb2NhdGlvbnMg PSAxOworIAkgIH0KKyAJaWYgKGItPnNpbGVudCkKKyAJICBicy0+cHJpbnQgPSAwOworQEAgLTMy MzIsNiArMzM3OSwxMCBAQCBicHN0YXRfc3RvcF9zdGF0dXMgKENPUkVfQUREUiBicF9hZGRyLCBw dGlkX3QgcHRpZCkKKyAgICAgICBicy0+cHJpbnRfaXQgPSBwcmludF9pdF9ub29wOworICAgfQor IAorKyAgLyogRGVsYXkgdGhpcyBjYWxsIHdoaWNoIHdvdWxkIGJyZWFrIHRoZSBBTExfQlBfTE9D QVRJT05TIGl0ZXJhdGlvbiBhYm92ZS4gICovCisrICBpZiAodXBkYXRlX2xvY2F0aW9ucykKKysg ICAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0ICgwKTsKICsKLSAMCi0gLyogVGhpcyBoZWxw IHN0cmluZyBpcyB1c2VkIGZvciB0aGUgYnJlYWssIGhicmVhaywgdGJyZWFrIGFuZCB0aGJyZWFr IGNvbW1hbmRzLgotICAgIEl0IGlzIGRlZmluZWQgYXMgYSBtYWNybyB0byBwcmV2ZW50IGR1cGxp Y2F0aW9uLgotQEAgLTkzNDUsNCArOTM5NSw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUs IGdkYiBiZWhhdmVzIGFzIGlmIGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKLSAgIGF1 dG9tYXRpY19oYXJkd2FyZV9icmVha3BvaW50cyA9IDE7CisgICBmb3IgKGl4ID0gMDsgVkVDX2l0 ZXJhdGUgKGJwX2xvY2F0aW9uX3AsIG1vcmlidW5kX2xvY2F0aW9ucywgaXgsIGxvYyk7ICsraXgp CisgICAgIHsKKyAgICAgICBpZiAobG9jLT5hZGRyZXNzID09IGJwX2FkZHIpCitAQCAtMzQwOSw2 ICszNTYwLDcgQEAgYnBzdGF0X3doYXQgKGJwc3RhdCBicykKKyAgIHN0cnVjdCBicHN0YXRfd2hh dCByZXR2YWw7CiAgCi0gICBvYnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJvY2VlZCAoYnJlYWtw b2ludF9hYm91dF90b19wcm9jZWVkKTsKLSsgIG9ic2VydmVyX2F0dGFjaF9tYXJrX3VzZWQgKGJy ZWFrcG9pbnRfdHlwZXNfbWFya191c2VkKTsKKyAgIHJldHZhbC5jYWxsX2R1bW15ID0gMDsKKysg IHJldHZhbC5pc19sb25nam1wID0gMDsKKyAgIGZvciAoOyBicyAhPSBOVUxMOyBicyA9IGJzLT5u ZXh0KQorICAgICB7CisgICAgICAgZW51bSBjbGFzcyBic19jbGFzcyA9IG5vX2VmZmVjdDsKK0BA IC0zNDU1LDEwICszNjA3LDE1IEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCisgCSAgICBic19j bGFzcyA9IG5vX2VmZmVjdDsKKyAJICBicmVhazsKKyAJY2FzZSBicF9sb25nam1wOgorKwljYXNl IGJwX2V4Y2VwdGlvbjoKKyAJICBic19jbGFzcyA9IGxvbmdfanVtcDsKKysJICByZXR2YWwuaXNf bG9uZ2ptcCA9IGJzLT5icmVha3BvaW50X2F0LT5vd25lci0+dHlwZSA9PSBicF9sb25nam1wOwor IAkgIGJyZWFrOworIAljYXNlIGJwX2xvbmdqbXBfcmVzdW1lOgorKwljYXNlIGJwX2V4Y2VwdGlv bl9yZXN1bWU6CisgCSAgYnNfY2xhc3MgPSBsb25nX3Jlc3VtZTsKKysJICByZXR2YWwuaXNfbG9u Z2ptcAorKwkgICAgPSBicy0+YnJlYWtwb2ludF9hdC0+b3duZXItPnR5cGUgPT0gYnBfbG9uZ2pt cF9yZXN1bWU7CisgCSAgYnJlYWs7CisgCWNhc2UgYnBfc3RlcF9yZXN1bWU6CisgCSAgaWYgKGJz LT5zdG9wKQorQEAgLTM0ODEsNiArMzYzOCw3IEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCisg CWNhc2UgYnBfdGhyZWFkX2V2ZW50OgorIAljYXNlIGJwX292ZXJsYXlfZXZlbnQ6CisgCWNhc2Ug YnBfbG9uZ2ptcF9tYXN0ZXI6CisrCWNhc2UgYnBfZXhjZXB0aW9uX21hc3RlcjoKKyAJICBic19j bGFzcyA9IGJwX25vc3RvcDsKKyAJICBicmVhazsKKyAJY2FzZSBicF9jYXRjaHBvaW50OgorQEAg LTM2MDIsNiArMzc2MCw4IEBAIHByaW50X29uZV9icmVha3BvaW50X2xvY2F0aW9uIChzdHJ1Y3Qg YnJlYWtwb2ludCAqYiwKKyAgICAge2JwX2FjY2Vzc193YXRjaHBvaW50LCAiYWNjIHdhdGNocG9p bnQifSwKKyAgICAge2JwX2xvbmdqbXAsICJsb25nam1wIn0sCisgICAgIHticF9sb25nam1wX3Jl c3VtZSwgImxvbmdqbXAgcmVzdW1lIn0sCisrICAgIHticF9leGNlcHRpb24sICJleGNlcHRpb24i fSwKKysgICAge2JwX2V4Y2VwdGlvbl9yZXN1bWUsICJleGNlcHRpb24gcmVzdW1lIn0sCisgICAg IHticF9zdGVwX3Jlc3VtZSwgInN0ZXAgcmVzdW1lIn0sCisgICAgIHticF93YXRjaHBvaW50X3Nj b3BlLCAid2F0Y2hwb2ludCBzY29wZSJ9LAorICAgICB7YnBfY2FsbF9kdW1teSwgImNhbGwgZHVt bXkifSwKK0BAIC0zNjA5LDYgKzM3NjksNyBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlv biAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCisgICAgIHticF90aHJlYWRfZXZlbnQsICJ0aHJlYWQg ZXZlbnRzIn0sCisgICAgIHticF9vdmVybGF5X2V2ZW50LCAib3ZlcmxheSBldmVudHMifSwKKyAg ICAge2JwX2xvbmdqbXBfbWFzdGVyLCAibG9uZ2ptcCBtYXN0ZXIifSwKKysgICAge2JwX2V4Y2Vw dGlvbl9tYXN0ZXIsICJleGNlcHRpb24gbWFzdGVyIn0sCisgICAgIHticF9jYXRjaHBvaW50LCAi Y2F0Y2hwb2ludCJ9LAorICAgICB7YnBfdHJhY2Vwb2ludCwgInRyYWNlcG9pbnQifSwKKyAgICAg e2JwX2ppdF9ldmVudCwgImppdCBldmVudHMifSwKK0BAIC0zNzMyLDYgKzM4OTMsOCBAQCBwcmlu dF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCisgICAgICAg Y2FzZSBicF9maW5pc2g6CisgICAgICAgY2FzZSBicF9sb25nam1wOgorICAgICAgIGNhc2UgYnBf bG9uZ2ptcF9yZXN1bWU6CisrICAgICAgY2FzZSBicF9leGNlcHRpb246CisrICAgICAgY2FzZSBi cF9leGNlcHRpb25fcmVzdW1lOgorICAgICAgIGNhc2UgYnBfc3RlcF9yZXN1bWU6CisgICAgICAg Y2FzZSBicF93YXRjaHBvaW50X3Njb3BlOgorICAgICAgIGNhc2UgYnBfY2FsbF9kdW1teToKK0BA IC0zNzM5LDYgKzM5MDIsNyBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3RydWN0 IGJyZWFrcG9pbnQgKmIsCisgICAgICAgY2FzZSBicF90aHJlYWRfZXZlbnQ6CisgICAgICAgY2Fz ZSBicF9vdmVybGF5X2V2ZW50OgorICAgICAgIGNhc2UgYnBfbG9uZ2ptcF9tYXN0ZXI6CisrICAg ICAgY2FzZSBicF9leGNlcHRpb25fbWFzdGVyOgorICAgICAgIGNhc2UgYnBfdHJhY2Vwb2ludDoK KyAgICAgICBjYXNlIGJwX2ppdF9ldmVudDoKKyAJaWYgKG9wdHMuYWRkcmVzc3ByaW50KQorQEAg LTQxOTQsOSArNDM1OCw4IEBAIHNldF9kZWZhdWx0X2JyZWFrcG9pbnQgKGludCB2YWxpZCwgQ09S RV9BRERSIGFkZHIsIHN0cnVjdCBzeW10YWIgKnN5bXRhYiwKKyAgICAob3IgdXNlIGl0IGZvciBh bnkgb3RoZXIgcHVycG9zZSBlaXRoZXIpLgorIAorICAgIE1vcmUgc3BlY2lmaWNhbGx5LCBlYWNo IG9mIHRoZSBmb2xsb3dpbmcgYnJlYWtwb2ludCB0eXBlcyB3aWxsIGFsd2F5cworLSAgIGhhdmUg YSB6ZXJvIHZhbHVlZCBhZGRyZXNzIGFuZCB3ZSBkb24ndCB3YW50IGNoZWNrX2R1cGxpY2F0ZXMo KSB0byBtYXJrCistICAgYnJlYWtwb2ludHMgb2YgYW55IG9mIHRoZXNlIHR5cGVzIHRvIGJlIGEg ZHVwbGljYXRlIG9mIGFuIGFjdHVhbAorLSAgIGJyZWFrcG9pbnQgYXQgYWRkcmVzcyB6ZXJvOgor KyAgIGhhdmUgYSB6ZXJvIHZhbHVlZCBhZGRyZXNzIGFuZCB3ZSBkb24ndCB3YW50IHRvIG1hcmsg YnJlYWtwb2ludHMgb2YgYW55IG9mCisrICAgdGhlc2UgdHlwZXMgdG8gYmUgYSBkdXBsaWNhdGUg b2YgYW4gYWN0dWFsIGJyZWFrcG9pbnQgYXQgYWRkcmVzcyB6ZXJvOgorIAorICAgICAgIGJwX3dh dGNocG9pbnQKKyAgICAgICBicF9oYXJkd2FyZV93YXRjaHBvaW50CitAQCAtNDIxNiw4OCArNDM3 OSw2IEBAIGJyZWFrcG9pbnRfYWRkcmVzc19pc19tZWFuaW5nZnVsIChzdHJ1Y3QgYnJlYWtwb2lu dCAqYnB0KQorIAkgICYmIHR5cGUgIT0gYnBfY2F0Y2hwb2ludCk7CiAgfQotZGlmZiAtLWdpdCBh L2dkYi9icmVha3BvaW50LmggYi9nZGIvYnJlYWtwb2ludC5oCi1pbmRleCBkOTNjNmI2Li5hNTU1 YzE2IDEwMDY0NAotLS0tIGEvZ2RiL2JyZWFrcG9pbnQuaAotKysrIGIvZ2RiL2JyZWFrcG9pbnQu aAotQEAgLTkxOCw2ICs5MTgsOSBAQCBleHRlcm4gdm9pZCBicmVha3BvaW50X3JldGlyZV9tb3Jp YnVuZCAodm9pZCk7Ci0gLyogVGVsbCBhIGJyZWFrcG9pbnQgdG8gYmUgcXVpZXQuICAqLwotIGV4 dGVybiB2b2lkIG1ha2VfYnJlYWtwb2ludF9zaWxlbnQgKHN0cnVjdCBicmVha3BvaW50ICopOwog IAotKy8qIFNldCBicmVhayBjb25kaXRpb24gb2YgYnJlYWtwb2ludCBCIHRvIEVYUC4gICovCi0r ZXh0ZXJuIHZvaWQgc2V0X2JyZWFrcG9pbnRfY29uZGl0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAq YiwgY2hhciAqZXhwLCBpbnQgZnJvbV90dHkpOwotKwotIC8qIFJldHVybiBhIHRyYWNlcG9pbnQg d2l0aCB0aGUgZ2l2ZW4gbnVtYmVyIGlmIGZvdW5kLiAgKi8KLSBleHRlcm4gc3RydWN0IGJyZWFr cG9pbnQgKmdldF90cmFjZXBvaW50IChpbnQgbnVtKTsKKy0vKiBSZXNjYW4gYnJlYWtwb2ludHMg YXQgdGhlIHNhbWUgYWRkcmVzcyBhbmQgc2VjdGlvbiBhcyBCUFQsCistICAgbWFya2luZyB0aGUg Zmlyc3Qgb25lIGFzICJmaXJzdCIgYW5kIGFueSBvdGhlcnMgYXMgImR1cGxpY2F0ZXMiLgorLSAg IFRoaXMgaXMgc28gdGhhdCB0aGUgYnB0IGluc3RydWN0aW9uIGlzIG9ubHkgaW5zZXJ0ZWQgb25j ZS4KKy0gICBJZiB3ZSBoYXZlIGEgcGVybWFuZW50IGJyZWFrcG9pbnQgYXQgdGhlIHNhbWUgcGxh Y2UgYXMgQlBULCBtYWtlCistICAgdGhhdCBvbmUgdGhlIG9mZmljaWFsIG9uZSwgYW5kIHRoZSBy ZXN0IGFzIGR1cGxpY2F0ZXMuICAqLworLQorLXN0YXRpYyB2b2lkCistY2hlY2tfZHVwbGljYXRl c19mb3IgKENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlY3Rpb24pCist eworLSAgc3RydWN0IGJwX2xvY2F0aW9uICpiOworLSAgaW50IGNvdW50ID0gMDsKKy0gIHN0cnVj dCBicF9sb2NhdGlvbiAqcGVybV9icCA9IDA7CistCistICBBTExfQlBfTE9DQVRJT05TIChiKQor LSAgICBpZiAoYi0+b3duZXItPmVuYWJsZV9zdGF0ZSAhPSBicF9kaXNhYmxlZAorLQkmJiBiLT5v d25lci0+ZW5hYmxlX3N0YXRlICE9IGJwX2NhbGxfZGlzYWJsZWQKKy0JJiYgYi0+b3duZXItPmVu YWJsZV9zdGF0ZSAhPSBicF9zdGFydHVwX2Rpc2FibGVkCistCSYmIGItPmVuYWJsZWQKKy0JJiYg IWItPnNobGliX2Rpc2FibGVkCistCSYmIGItPmFkZHJlc3MgPT0gYWRkcmVzcwkvKiBhZGRyZXNz IC8gb3ZlcmxheSBtYXRjaCAqLworLQkmJiAoIW92ZXJsYXlfZGVidWdnaW5nIHx8IGItPnNlY3Rp b24gPT0gc2VjdGlvbikKKy0JJiYgYnJlYWtwb2ludF9hZGRyZXNzX2lzX21lYW5pbmdmdWwgKGIt Pm93bmVyKSkKKy0gICAgeworLSAgICAgIC8qIEhhdmUgd2UgZm91bmQgYSBwZXJtYW5lbnQgYnJl YWtwb2ludD8gICovCistICAgICAgaWYgKGItPm93bmVyLT5lbmFibGVfc3RhdGUgPT0gYnBfcGVy bWFuZW50KQorLQl7CistCSAgcGVybV9icCA9IGI7CistCSAgYnJlYWs7CistCX0KKy0JCistICAg ICAgY291bnQrKzsKKy0gICAgICBiLT5kdXBsaWNhdGUgPSBjb3VudCA+IDE7CistICAgIH0KKy0K Ky0gIC8qIElmIHdlIGZvdW5kIGEgcGVybWFuZW50IGJyZWFrcG9pbnQgYXQgdGhpcyBhZGRyZXNz LCBnbyBvdmVyIHRoZQorLSAgICAgbGlzdCBhZ2FpbiBhbmQgZGVjbGFyZSBhbGwgdGhlIG90aGVy IGJyZWFrcG9pbnRzIHRoZXJlIChleGNlcHQKKy0gICAgIG90aGVyIHBlcm1hbmVudCBicmVha3Bv aW50cykgdG8gYmUgdGhlIGR1cGxpY2F0ZXMuICAqLworLSAgaWYgKHBlcm1fYnApCistICAgIHsK Ky0gICAgICBwZXJtX2JwLT5kdXBsaWNhdGUgPSAwOworLQorLSAgICAgIC8qIFBlcm1hbmVudCBi cmVha3BvaW50IHNob3VsZCBhbHdheXMgYmUgaW5zZXJ0ZWQuICAqLworLSAgICAgIGlmICghIHBl cm1fYnAtPmluc2VydGVkKQorLQlpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAor LQkJCV8oImFsbGVnZWRseSBwZXJtYW5lbnQgYnJlYWtwb2ludCBpcyBub3QgIgorLQkJCSJhY3R1 YWxseSBpbnNlcnRlZCIpKTsKKy0KKy0gICAgICBBTExfQlBfTE9DQVRJT05TIChiKQorLQlpZiAo YiAhPSBwZXJtX2JwKQorLQkgIHsKKy0JICAgIGlmIChiLT5vd25lci0+ZW5hYmxlX3N0YXRlICE9 IGJwX3Blcm1hbmVudAorLQkJJiYgYi0+b3duZXItPmVuYWJsZV9zdGF0ZSAhPSBicF9kaXNhYmxl ZAorLQkJJiYgYi0+b3duZXItPmVuYWJsZV9zdGF0ZSAhPSBicF9jYWxsX2Rpc2FibGVkCistCQkm JiBiLT5vd25lci0+ZW5hYmxlX3N0YXRlICE9IGJwX3N0YXJ0dXBfZGlzYWJsZWQKKy0JCSYmIGIt PmVuYWJsZWQgJiYgIWItPnNobGliX2Rpc2FibGVkCQkKKy0JCSYmIGItPmFkZHJlc3MgPT0gYWRk cmVzcwkvKiBhZGRyZXNzIC8gb3ZlcmxheSBtYXRjaCAqLworLQkJJiYgKCFvdmVybGF5X2RlYnVn Z2luZyB8fCBiLT5zZWN0aW9uID09IHNlY3Rpb24pCistCQkmJiBicmVha3BvaW50X2FkZHJlc3Nf aXNfbWVhbmluZ2Z1bCAoYi0+b3duZXIpKQorLQkgICAgICB7CistCQlpZiAoYi0+aW5zZXJ0ZWQp CistCQkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCistCQkJCSAgXygiYW5v dGhlciBicmVha3BvaW50IHdhcyBpbnNlcnRlZCBvbiB0b3Agb2YgIgorLQkJCQkgICJhIHBlcm1h bmVudCBicmVha3BvaW50IikpOworLQorLQkJYi0+ZHVwbGljYXRlID0gMTsKKy0JICAgICAgfQor LQkgIH0KKy0gICAgfQorLX0KKy0KKy1zdGF0aWMgdm9pZAorLWNoZWNrX2R1cGxpY2F0ZXMgKHN0 cnVjdCBicmVha3BvaW50ICpicHQpCisteworLSAgc3RydWN0IGJwX2xvY2F0aW9uICpibCA9IGJw dC0+bG9jOworLQorLSAgaWYgKCEgYnJlYWtwb2ludF9hZGRyZXNzX2lzX21lYW5pbmdmdWwgKGJw dCkpCistICAgIHJldHVybjsKKy0KKy0gIGZvciAoOyBibDsgYmwgPSBibC0+bmV4dCkKKy0gICAg Y2hlY2tfZHVwbGljYXRlc19mb3IgKGJsLT5hZGRyZXNzLCBibC0+c2VjdGlvbik7ICAgIAorLX0K Ky0KKyBzdGF0aWMgdm9pZAorIGJyZWFrcG9pbnRfYWRqdXN0bWVudF93YXJuaW5nIChDT1JFX0FE RFIgZnJvbV9hZGRyLCBDT1JFX0FERFIgdG9fYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IGJudW0sIGludCBoYXZlX2JudW0pCitAQCAtNDM3OSw2ICs0NDYwLDggQEAg YWxsb2NhdGVfYnBfbG9jYXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpicHQpCisgICAgIGNhc2Ug YnBfZmluaXNoOgorICAgICBjYXNlIGJwX2xvbmdqbXA6CisgICAgIGNhc2UgYnBfbG9uZ2ptcF9y ZXN1bWU6CisrICAgIGNhc2UgYnBfZXhjZXB0aW9uOgorKyAgICBjYXNlIGJwX2V4Y2VwdGlvbl9y ZXN1bWU6CisgICAgIGNhc2UgYnBfc3RlcF9yZXN1bWU6CisgICAgIGNhc2UgYnBfd2F0Y2hwb2lu dF9zY29wZToKKyAgICAgY2FzZSBicF9jYWxsX2R1bW15OgorQEAgLTQzODcsNiArNDQ3MCw3IEBA IGFsbG9jYXRlX2JwX2xvY2F0aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYnB0KQorICAgICBjYXNl IGJwX292ZXJsYXlfZXZlbnQ6CisgICAgIGNhc2UgYnBfaml0X2V2ZW50OgorICAgICBjYXNlIGJw X2xvbmdqbXBfbWFzdGVyOgorKyAgICBjYXNlIGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CisgICAgICAg bG9jLT5sb2NfdHlwZSA9IGJwX2xvY19zb2Z0d2FyZV9icmVha3BvaW50OworICAgICAgIGJyZWFr OworICAgICBjYXNlIGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQ6CitAQCAtNDU2NCw4ICs0NjQ4LDcg QEAgbWFrZV9icmVha3BvaW50X3Blcm1hbmVudCAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCisgfQog IAotZGlmZiAtLWdpdCBhL2dkYi9jLWV4cC55IGIvZ2RiL2MtZXhwLnkKLWluZGV4IGFhY2MxMTIu LmUyMDY5ODMgMTAwNjQ0Ci0tLS0gYS9nZGIvYy1leHAueQotKysrIGIvZ2RiL2MtZXhwLnkKLUBA IC0xMTcsNiArMTE3LDggQEAgc3RhdGljIGludCB5eWxleCAodm9pZCk7CisgLyogQ2FsbCB0aGlz IHJvdXRpbmUgd2hlbiBzdGVwcGluZyBhbmQgbmV4dGluZyB0byBlbmFibGUgYSBicmVha3BvaW50 CistICAgaWYgd2UgZG8gYSBsb25nam1wKCkgaW4gVEhSRUFELiAgV2hlbiB3ZSBoaXQgdGhhdCBi cmVha3BvaW50LCBjYWxsCistICAgc2V0X2xvbmdqbXBfcmVzdW1lX2JyZWFrcG9pbnQoKSB0byBm aWd1cmUgb3V0IHdoZXJlIHdlIGFyZSBnb2luZy4gKi8KKysgICBpZiB3ZSBkbyBhIGxvbmdqbXAo KSBvciAndGhyb3cnIGluIFRIUkVBRC4gICovCiAgCi0gdm9pZCB5eWVycm9yIChjaGFyICopOwor IHZvaWQKKyBzZXRfbG9uZ2ptcF9icmVha3BvaW50IChpbnQgdGhyZWFkKQorQEAgLTQ1NzcsMTAg KzQ2NjAsMTAgQEAgc2V0X2xvbmdqbXBfYnJlYWtwb2ludCAoaW50IHRocmVhZCkKKyAgICAgIGxv bmdqbXAgIm1hc3RlciIgYnJlYWtwb2ludHMuICBIZXJlLCB3ZSBzaW1wbHkgY3JlYXRlIG1vbWVu dGFyeQorICAgICAgY2xvbmVzIG9mIHRob3NlIGFuZCBlbmFibGUgdGhlbSBmb3IgdGhlIHJlcXVl c3RlZCB0aHJlYWQuICAqLworICAgQUxMX0JSRUFLUE9JTlRTX1NBRkUgKGIsIHRlbXApCistICAg IGlmIChiLT50eXBlID09IGJwX2xvbmdqbXBfbWFzdGVyKQorKyAgICBpZiAoYi0+dHlwZSA9PSBi cF9sb25nam1wX21hc3RlciB8fCBiLT50eXBlID09IGJwX2V4Y2VwdGlvbl9tYXN0ZXIpCisgICAg ICAgeworIAlzdHJ1Y3QgYnJlYWtwb2ludCAqY2xvbmUgPSBjbG9uZV9tb21lbnRhcnlfYnJlYWtw b2ludCAoYik7CistCWNsb25lLT50eXBlID0gYnBfbG9uZ2ptcDsKKysJY2xvbmUtPnR5cGUgPSBi LT50eXBlID09IGJwX2xvbmdqbXBfbWFzdGVyID8gYnBfbG9uZ2ptcCA6IGJwX2V4Y2VwdGlvbjsK KyAJY2xvbmUtPnRocmVhZCA9IHRocmVhZDsKKyAgICAgICB9CisgfQorQEAgLTQ1OTIsNyArNDY3 NSw3IEBAIGRlbGV0ZV9sb25nam1wX2JyZWFrcG9pbnQgKGludCB0aHJlYWQpCisgICBzdHJ1Y3Qg YnJlYWtwb2ludCAqYiwgKnRlbXA7CiAgCi0rLyogQ2xlYW51cCBmb3IgJ25vbmVtcHR5X3R5cGVs aXN0JyAqLwotK3N0YXRpYyBzdHJ1Y3QgY2xlYW51cCAqdHlwZWxpc3RfY2xlYW51cDsKLSAlfQor ICAgQUxMX0JSRUFLUE9JTlRTX1NBRkUgKGIsIHRlbXApCistICAgIGlmIChiLT50eXBlID09IGJw X2xvbmdqbXApCisrICAgIGlmIChiLT50eXBlID09IGJwX2xvbmdqbXAgfHwgYi0+dHlwZSA9PSBi cF9leGNlcHRpb24pCisgICAgICAgeworIAlpZiAoYi0+dGhyZWFkID09IHRocmVhZCkKKyAJICBk ZWxldGVfYnJlYWtwb2ludCAoYik7CitAQCAtNDcwNiw5ICs0Nzg5LDkgQEAgY3JlYXRlX3NvbGli X2V2ZW50X2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgYWRk cmVzcykKKyB2b2lkCisgZGlzYWJsZV9icmVha3BvaW50c19pbl9zaGxpYnMgKHZvaWQpCisgewor LSAgc3RydWN0IGJwX2xvY2F0aW9uICpsb2M7CisrICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmxvYywg Kipsb2NwX3RtcDsKICAKLSAvKiBBbHRob3VnaCB0aGUgeWFjYyAidmFsdWUiIG9mIGFuIGV4cHJl c3Npb24gaXMgbm90IHVzZWQsCi1AQCAtMTU3LDYgKzE1OSw3IEBAIHZvaWQgeXllcnJvciAoY2hh ciAqKTsKLSAlewotIC8qIFlZU1RZUEUgZ2V0cyBkZWZpbmVkIGJ5ICV1bmlvbiAqLwotIHN0YXRp YyBpbnQgcGFyc2VfbnVtYmVyIChjaGFyICosIGludCwgaW50LCBZWVNUWVBFICopOwotK3N0YXRp YyBzdHJ1Y3Qgc3Rva2VuIG9wZXJhdG9yX3N0b2tlbiAoY29uc3QgY2hhciAqKTsKLSAlfQorLSAg QUxMX0JQX0xPQ0FUSU9OUyAobG9jKQorKyAgQUxMX0JQX0xPQ0FUSU9OUyAobG9jLCBsb2NwX3Rt cCkKKyAgIHsKKyAgICAgc3RydWN0IGJyZWFrcG9pbnQgKmIgPSBsb2MtPm93bmVyOworICAgICAv KiBXZSBhcHBseSB0aGUgY2hlY2sgdG8gYWxsIGJyZWFrcG9pbnRzLCBpbmNsdWRpbmcgZGlzYWJs ZWQKK0BAIC00NzM4LDcgKzQ4MjEsNyBAQCBkaXNhYmxlX2JyZWFrcG9pbnRzX2luX3NobGlicyAo dm9pZCkKKyBzdGF0aWMgdm9pZAorIGRpc2FibGVfYnJlYWtwb2ludHNfaW5fdW5sb2FkZWRfc2hs aWIgKHN0cnVjdCBzb19saXN0ICpzb2xpYikKKyB7CistICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmxv YzsKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jLCAqKmxvY3BfdG1wOworICAgaW50IGRpc2Fi bGVkX3NobGliX2JyZWFrcyA9IDA7CiAgCi0gJXR5cGUgPHZvaWR2YWw+IGV4cCBleHAxIHR5cGVf ZXhwIHN0YXJ0IHZhcmlhYmxlIHF1YWxpZmllZF9uYW1lIGxjdXJseQotQEAgLTE5OSw5ICsyMDIs MTIgQEAgc3RhdGljIGludCBwYXJzZV9udW1iZXIgKGNoYXIgKiwgaW50LCBpbnQsIFlZU1RZUEUg Kik7CisgICAvKiBTdW5PUyBhLm91dCBzaGFyZWQgbGlicmFyaWVzIGFyZSBhbHdheXMgbWFwcGVk LCBzbyBkbyBub3QKK0BAIC00NzQ5LDcgKzQ4MzIsNyBAQCBkaXNhYmxlX2JyZWFrcG9pbnRzX2lu X3VubG9hZGVkX3NobGliIChzdHJ1Y3Qgc29fbGlzdCAqc29saWIpCisgICAgICAgJiYgYmZkX2dl dF9mbGF2b3VyIChleGVjX2JmZCkgPT0gYmZkX3RhcmdldF9hb3V0X2ZsYXZvdXIpCisgICAgIHJl dHVybjsKICAKLSAldG9rZW4gPHNzeW0+IE5BTUVfT1JfSU5UIAorLSAgQUxMX0JQX0xPQ0FUSU9O UyAobG9jKQorKyAgQUxMX0JQX0xPQ0FUSU9OUyAobG9jLCBsb2NwX3RtcCkKKyAgIHsKKyAgICAg c3RydWN0IGJyZWFrcG9pbnQgKmIgPSBsb2MtPm93bmVyOworICAgICBpZiAoKGxvYy0+bG9jX3R5 cGUgPT0gYnBfbG9jX2hhcmR3YXJlX2JyZWFrcG9pbnQKK0BAIC01MzU0LDYgKzU0MzcsOCBAQCBt ZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKKyAgICAgICBjYXNlIGJwX2ZpbmlzaDoKKyAg ICAgICBjYXNlIGJwX2xvbmdqbXA6CisgICAgICAgY2FzZSBicF9sb25nam1wX3Jlc3VtZToKKysg ICAgICBjYXNlIGJwX2V4Y2VwdGlvbjoKKysgICAgICBjYXNlIGJwX2V4Y2VwdGlvbl9yZXN1bWU6 CisgICAgICAgY2FzZSBicF9zdGVwX3Jlc3VtZToKKyAgICAgICBjYXNlIGJwX2NhbGxfZHVtbXk6 CisgICAgICAgY2FzZSBicF93YXRjaHBvaW50X3Njb3BlOgorQEAgLTUzNjIsNiArNTQ0Nyw3IEBA IG1lbnRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiKQorICAgICAgIGNhc2UgYnBfb3ZlcmxheV9l dmVudDoKKyAgICAgICBjYXNlIGJwX2ppdF9ldmVudDoKKyAgICAgICBjYXNlIGJwX2xvbmdqbXBf bWFzdGVyOgorKyAgICAgIGNhc2UgYnBfZXhjZXB0aW9uX21hc3RlcjoKKyAJYnJlYWs7CisgICAg ICAgfQogIAotKyV0b2tlbiBPUEVSQVRPUgotICV0b2tlbiBTVFJVQ1QgQ0xBU1MgVU5JT04gRU5V TSBTSVpFT0YgVU5TSUdORUQgQ09MT05DT0xPTgotICV0b2tlbiBURU1QTEFURQotICV0b2tlbiBF UlJPUgotKyV0b2tlbiBORVcgREVMRVRFCi0rJXR5cGUgPHN2YWw+IG9wZXJhdG9yCitAQCAtNjY2 NCw2ICs2NzUwLDcgQEAgc3RydWN0IHVudGlsX2JyZWFrX2NvbW1hbmRfY29udGludWF0aW9uX2Fy Z3MKKyB7CisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnJlYWtwb2ludDsKKyAgIHN0cnVjdCBicmVh a3BvaW50ICpicmVha3BvaW50MjsKKysgIGludCB0aHJlYWRfbnVtOworIH07CiAgCi0gLyogU3Bl Y2lhbCB0eXBlIGNhc2VzLCBwdXQgaW4gdG8gYWxsb3cgdGhlIHBhcnNlciB0byBkaXN0aW5ndWlz aCBkaWZmZXJlbnQKLSAgICBsZWdhbCBiYXNldHlwZXMuICAqLwotQEAgLTIzMiw3ICsyMzgsNyBA QCBzdGF0aWMgaW50IHBhcnNlX251bWJlciAoY2hhciAqLCBpbnQsIGludCwgWVlTVFlQRSAqKTsK LSAlbGVmdCAnKycgJy0nCi0gJWxlZnQgJyonICcvJyAnJScKLSAlcmlnaHQgVU5BUlkgSU5DUkVN RU5UIERFQ1JFTUVOVAotLSVyaWdodCBBUlJPVyAnLicgJ1snICcoJwotKyVyaWdodCBBUlJPVyBB UlJPV19TVEFSICcuJyBET1RfU1RBUiAnWycgJygnCi0gJXRva2VuIDxzc3ltPiBCTE9DS05BTUUg Ci0gJXRva2VuIDxidmFsPiBGSUxFTkFNRQotICV0eXBlIDxidmFsPiBibG9jawotQEAgLTMzMyw3 ICszMzksNyBAQCBleHAJOglleHAgQVJST1cgcXVhbGlmaWVkX25hbWUKLSAJCQkgIHdyaXRlX2V4 cF9lbHRfb3Bjb2RlIChTVFJVQ1RPUF9NUFRSKTsgfQotIAk7CisgLyogVGhpcyBmdW5jdGlvbiBp cyBjYWxsZWQgYnkgZmV0Y2hfaW5mZXJpb3JfZXZlbnQgdmlhIHRoZQorQEAgLTY2NzgsNiArNjc2 NSw3IEBAIHVudGlsX2JyZWFrX2NvbW1hbmRfY29udGludWF0aW9uICh2b2lkICphcmcpCisgICBk ZWxldGVfYnJlYWtwb2ludCAoYS0+YnJlYWtwb2ludCk7CisgICBpZiAoYS0+YnJlYWtwb2ludDIp CisgICAgIGRlbGV0ZV9icmVha3BvaW50IChhLT5icmVha3BvaW50Mik7CisrICBkZWxldGVfbG9u Z2ptcF9icmVha3BvaW50IChhLT50aHJlYWRfbnVtKTsKKyB9CiAgCi0tZXhwCToJZXhwIEFSUk9X ICcqJyBleHAKLStleHAJOglleHAgQVJST1dfU1RBUiBleHAKLSAJCQl7IHdyaXRlX2V4cF9lbHRf b3Bjb2RlIChTVFJVQ1RPUF9NUFRSKTsgfQotIAk7Cisgdm9pZAorQEAgLTY2ODksNiArNjc3Nyw4 IEBAIHVudGlsX2JyZWFrX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5LCBpbnQgYW55 d2hlcmUpCisgICBzdHJ1Y3QgYnJlYWtwb2ludCAqYnJlYWtwb2ludDsKKyAgIHN0cnVjdCBicmVh a3BvaW50ICpicmVha3BvaW50MiA9IE5VTEw7CisgICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NoYWlu OworKyAgaW50IHRocmVhZDsKKysgIHN0cnVjdCB0aHJlYWRfaW5mbyAqdHA7CiAgCi1AQCAtMzY4 LDcgKzM3NCw3IEBAIGV4cAk6CWV4cCAnLicgcXVhbGlmaWVkX25hbWUKLSAJCQkgIHdyaXRlX2V4 cF9lbHRfb3Bjb2RlIChTVFJVQ1RPUF9NRU1CRVIpOyB9Ci0gCTsKKyAgIGNsZWFyX3Byb2NlZWRf c3RhdHVzICgpOwogIAotLWV4cAk6CWV4cCAnLicgJyonIGV4cAotK2V4cAk6CWV4cCBET1RfU1RB UiBleHAKLSAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChTVFJVQ1RPUF9NRU1CRVIpOyB9Ci0g CTsKK0BAIC02NzI3LDYgKzY4MTcsOSBAQCB1bnRpbF9icmVha19jb21tYW5kIChjaGFyICphcmcs IGludCBmcm9tX3R0eSwgaW50IGFueXdoZXJlKQorIAorICAgb2xkX2NoYWluID0gbWFrZV9jbGVh bnVwX2RlbGV0ZV9icmVha3BvaW50IChicmVha3BvaW50KTsKKyAKKysgIHRwID0gaW5mZXJpb3Jf dGhyZWFkICgpOworKyAgdGhyZWFkID0gdHAtPm51bTsKKysKKyAgIC8qIEtlZXAgd2l0aGluIHRo ZSBjdXJyZW50IGZyYW1lLCBvciBpbiBmcmFtZXMgY2FsbGVkIGJ5IHRoZSBjdXJyZW50CisgICAg ICBvbmUuICAqLworIAorQEAgLTY3MzksNiArNjgzMiwxMCBAQCB1bnRpbF9icmVha19jb21tYW5k IChjaGFyICphcmcsIGludCBmcm9tX3R0eSwgaW50IGFueXdoZXJlKQorIAkJCQkJICAgICAgZnJh bWVfdW53aW5kX2NhbGxlcl9pZCAoZnJhbWUpLAorIAkJCQkJICAgICAgYnBfdW50aWwpOworICAg ICAgIG1ha2VfY2xlYW51cF9kZWxldGVfYnJlYWtwb2ludCAoYnJlYWtwb2ludDIpOworKworKyAg ICAgIHNldF9sb25nam1wX2JyZWFrcG9pbnQgKHRocmVhZCk7CisrICAgICAgdHAtPmluaXRpYXRp bmdfZnJhbWUgPSBmcmFtZV91bndpbmRfY2FsbGVyX2lkIChmcmFtZSk7CisrICAgICAgbWFrZV9j bGVhbnVwIChkZWxldGVfbG9uZ2ptcF9icmVha3BvaW50X2NsZWFudXAsICZ0aHJlYWQpOworICAg ICB9CisgCisgICBwcm9jZWVkICgtMSwgVEFSR0VUX1NJR05BTF9ERUZBVUxULCAwKTsKK0BAIC02 NzU1LDYgKzY4NTIsNyBAQCB1bnRpbF9icmVha19jb21tYW5kIChjaGFyICphcmcsIGludCBmcm9t X3R0eSwgaW50IGFueXdoZXJlKQorIAorICAgICAgIGFyZ3MtPmJyZWFrcG9pbnQgPSBicmVha3Bv aW50OworICAgICAgIGFyZ3MtPmJyZWFrcG9pbnQyID0gYnJlYWtwb2ludDI7CisrICAgICAgYXJn cy0+dGhyZWFkX251bSA9IHRocmVhZDsKKyAKKyAgICAgICBkaXNjYXJkX2NsZWFudXBzIChvbGRf Y2hhaW4pOworICAgICAgIGFkZF9jb250aW51YXRpb24gKGluZmVyaW9yX3RocmVhZCAoKSwKK0BA IC03MzU3LDYgKzc0NTUsODIgQEAgZG9fdmVjX2ZyZWUgKHZvaWQgKnApCisgICAgIFZFQ19mcmVl IChicF9sb2NhdGlvbl9wLCAqdmVjKTsKKyB9CisgCisrLyogQSBjb21wYXJpc29uIGZ1bmN0aW9u IGZvciBicF9sb2NhdGlvbiBBIGFuZCBCIGJlaW5nIGludGVyZmFjZWQgdG8gcXNvcnQuCisrICAg U29ydCBlbGVtZW50cyBwcmltYXJpbHkgYnkgdGhlaXIgQUREUkVTUyAobm8gbWF0dGVyIHdoYXQg ZG9lcworKyAgIGJyZWFrcG9pbnRfYWRkcmVzc19pc19tZWFuaW5nZnVsIHNheSBmb3IgaXRzIE9X TkVSKSwgc2Vjb25kYXJpbHkgYnkgb3JkZXJpbmcKKysgICBmaXJzdCBicF9wZXJtYW5lbnQgT1dO RVJlZCBlbGVtZW50cyBhbmQgdGVyY2lhcmlseSBqdXN0IGVuc3VyaW5nIHRoZSBhcnJheQorKyAg IGlzIHNvcnRlZCBzdGFibGUgd2F5IGRlc3BpdGUgcXNvcnQgYmVpbmcgYW4gaW5zdGFibGUgYWxn b3JpdGhtLiAgKi8KKysKKytzdGF0aWMgaW50CisrYnBfbG9jYXRpb25fY29tcGFyZSAoc3RydWN0 IGJwX2xvY2F0aW9uICphLCBzdHJ1Y3QgYnBfbG9jYXRpb24gKmIpCisreworKyAgaW50IGFfcGVy bSA9IGEtPm93bmVyLT5lbmFibGVfc3RhdGUgPT0gYnBfcGVybWFuZW50OworKyAgaW50IGJfcGVy bSA9IGItPm93bmVyLT5lbmFibGVfc3RhdGUgPT0gYnBfcGVybWFuZW50OworKworKyAgaWYgKGEt PmFkZHJlc3MgIT0gYi0+YWRkcmVzcykKKysgICAgcmV0dXJuIChhLT5hZGRyZXNzID4gYi0+YWRk cmVzcykgLSAoYS0+YWRkcmVzcyA8IGItPmFkZHJlc3MpOworKworKyAgLyogU29ydCBwZXJtYW5l bnQgYnJlYWtwb2ludHMgZmlyc3QuICAqLworKyAgaWYgKGFfcGVybSAhPSBiX3Blcm0pCisrICAg IHJldHVybiAoYV9wZXJtIDwgYl9wZXJtKSAtIChhX3Blcm0gPiBiX3Blcm0pOworKworKyAgLyog TWFrZSB0aGUgdXNlci12aXNpYmxlIG9yZGVyIHN0YWJsZSBhY3Jvc3MgR0RCIHJ1bnMuICBMb2Nh dGlvbnMgb2YgdGhlIHNhbWUKKysgICAgIGJyZWFrcG9pbnQgY2FuIGJlIHNvcnRlZCBpbiBhcmJp dHJhcnkgb3JkZXIuICAqLworKworKyAgaWYgKGEtPm93bmVyLT5udW1iZXIgIT0gYi0+b3duZXIt Pm51bWJlcikKKysgICAgcmV0dXJuIChhLT5vd25lci0+bnVtYmVyID4gYi0+b3duZXItPm51bWJl cikKKysgICAgICAgICAgIC0gKGEtPm93bmVyLT5udW1iZXIgPCBiLT5vd25lci0+bnVtYmVyKTsK KysKKysgIHJldHVybiAoYSA+IGIpIC0gKGEgPCBiKTsKKyt9CisrCisrLyogSW50ZXJmYWNlIGJw X2xvY2F0aW9uX2NvbXBhcmUgYXMgdGhlIENPTVBBUiBwYXJhbWV0ZXIgb2YgcXNvcnQgZnVuY3Rp b24uICAqLworKworK3N0YXRpYyBpbnQKKyticF9sb2NhdGlvbl9jb21wYXJlX2Zvcl9xc29ydCAo Y29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQgKmJwKQorK3sKKysgIHN0cnVjdCBicF9sb2NhdGlv biAqYSA9ICoodm9pZCAqKikgYXA7CisrICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmIgPSAqKHZvaWQg KiopIGJwOworKworKyAgcmV0dXJuIGJwX2xvY2F0aW9uX2NvbXBhcmUgKGEsIGIpOworK30KKysK KysvKiBTZXQgYnBfbG9jYXRpb25fcGxhY2VkX2FkZHJlc3NfYmVmb3JlX2FkZHJlc3NfbWF4IGFu ZAorKyAgIGJwX2xvY2F0aW9uX3NoYWRvd19sZW5fYWZ0ZXJfYWRkcmVzc19tYXggYWNjb3JkaW5n IHRvIHRoZSBjdXJyZW50IGNvbnRlbnQgb2YKKysgICB0aGUgYnBfbG9jYXRpb24gYXJyYXkuICAq LworKworK3N0YXRpYyB2b2lkCisrYnBfbG9jYXRpb25fdGFyZ2V0X2V4dGVuc2lvbnNfdXBkYXRl ICh2b2lkKQorK3sKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqYmwsICoqYmxwX3RtcDsKKysKKysg IGJwX2xvY2F0aW9uX3BsYWNlZF9hZGRyZXNzX2JlZm9yZV9hZGRyZXNzX21heCA9IDA7CisrICBi cF9sb2NhdGlvbl9zaGFkb3dfbGVuX2FmdGVyX2FkZHJlc3NfbWF4ID0gMDsKKysKKysgIEFMTF9C UF9MT0NBVElPTlMgKGJsLCBibHBfdG1wKQorKyAgICB7CisrICAgICAgQ09SRV9BRERSIHN0YXJ0 LCBlbmQsIGFkZHI7CisrCisrICAgICAgaWYgKCFicF9sb2NhdGlvbl9oYXNfc2hhZG93IChibCkp CisrCWNvbnRpbnVlOworKworKyAgICAgIHN0YXJ0ID0gYmwtPnRhcmdldF9pbmZvLnBsYWNlZF9h ZGRyZXNzOworKyAgICAgIGVuZCA9IHN0YXJ0ICsgYmwtPnRhcmdldF9pbmZvLnNoYWRvd19sZW47 CisrCisrICAgICAgZ2RiX2Fzc2VydCAoYmwtPmFkZHJlc3MgPj0gc3RhcnQpOworKyAgICAgIGFk ZHIgPSBibC0+YWRkcmVzcyAtIHN0YXJ0OworKyAgICAgIGlmIChhZGRyID4gYnBfbG9jYXRpb25f cGxhY2VkX2FkZHJlc3NfYmVmb3JlX2FkZHJlc3NfbWF4KQorKwlicF9sb2NhdGlvbl9wbGFjZWRf YWRkcmVzc19iZWZvcmVfYWRkcmVzc19tYXggPSBhZGRyOworKworKyAgICAgIC8qIFplcm8gU0hB RE9XX0xFTiB3b3VsZCBub3QgcGFzcyBicF9sb2NhdGlvbl9oYXNfc2hhZG93LiAgKi8KKysKKysg ICAgICBnZGJfYXNzZXJ0IChibC0+YWRkcmVzcyA8IGVuZCk7CisrICAgICAgYWRkciA9IGVuZCAt IGJsLT5hZGRyZXNzOworKyAgICAgIGlmIChhZGRyID4gYnBfbG9jYXRpb25fc2hhZG93X2xlbl9h ZnRlcl9hZGRyZXNzX21heCkKKysJYnBfbG9jYXRpb25fc2hhZG93X2xlbl9hZnRlcl9hZGRyZXNz X21heCA9IGFkZHI7CisrICAgIH0KKyt9CisrCisgLyogSWYgU0hPVUxEX0lOU0VSVCBpcyBmYWxz ZSwgZG8gbm90IGluc2VydCBhbnkgYnJlYWtwb2ludCBsb2NhdGlvbnMKKyAgICBpbnRvIHRoZSBp bmZlcmlvciwgb25seSByZW1vdmUgYWxyZWFkeS1pbnNlcnRlZCBsb2NhdGlvbnMgdGhhdCBubwor ICAgIGxvbmdlciBzaG91bGQgYmUgaW5zZXJ0ZWQuICBGdW5jdGlvbnMgdGhhdCBkZWxldGUgYSBi cmVha3BvaW50IG9yCitAQCAtNzM3Niw0OSArNzU1MCw2NiBAQCBzdGF0aWMgdm9pZAorIHVwZGF0 ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCisgeworICAgc3RydWN0 IGJyZWFrcG9pbnQgKmI7CistICBzdHJ1Y3QgYnBfbG9jYXRpb24gKipuZXh0ID0gJmJwX2xvY2F0 aW9uX2NoYWluOworLSAgc3RydWN0IGJwX2xvY2F0aW9uICpsb2M7CistICBzdHJ1Y3QgYnBfbG9j YXRpb24gKmxvYzI7CistICBWRUMoYnBfbG9jYXRpb25fcCkgKm9sZF9sb2NhdGlvbnMgPSBOVUxM OworLSAgaW50IHJldDsKKy0gIGludCBpeDsKKysgIHN0cnVjdCBicF9sb2NhdGlvbiAqKmxvY3As ICpsb2M7CisgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cHM7CisgCistICBjbGVhbnVwcyA9IG1h a2VfY2xlYW51cCAoZG9fdmVjX2ZyZWUsICZvbGRfbG9jYXRpb25zKTsKKy0gIC8qIFN0b3JlIG9s ZCBsb2NhdGlvbnMgZm9yIGZ1dHVyZSByZWZlcmVuY2UuICAqLworLSAgZm9yIChsb2MgPSBicF9s b2NhdGlvbl9jaGFpbjsgbG9jOyBsb2MgPSBsb2MtPmdsb2JhbF9uZXh0KQorLSAgICBWRUNfc2Fm ZV9wdXNoIChicF9sb2NhdGlvbl9wLCBvbGRfbG9jYXRpb25zLCBsb2MpOworKyAgLyogVGhlIGZp cnN0IGJwX2xvY2F0aW9uIGJlaW5nIHRoZSBvbmx5IG9uZSBub24tRFVQTElDQVRFIGZvciB0aGUg Y3VycmVudCBydW4KKysgICAgIG9mIHRoZSBzYW1lIEFERFJFU1MuICAqLworKyAgc3RydWN0IGJw X2xvY2F0aW9uICpsb2NfZmlyc3Q7CisrCisrICAvKiBTYXZlZCBmb3JtZXIgYnBfbG9jYXRpb24g YXJyYXkgd2hpY2ggd2UgY29tcGFyZSBhZ2FpbnN0IHRoZSBuZXdseSBidWlsdAorKyAgICAgYnBf bG9jYXRpb24gZnJvbSB0aGUgY3VycmVudCBzdGF0ZSBvZiBBTExfQlJFQUtQT0lOVFMuICAqLwor KyAgc3RydWN0IGJwX2xvY2F0aW9uICoqb2xkX2xvY2F0aW9uLCAqKm9sZF9sb2NwOworKyAgdW5z aWduZWQgb2xkX2xvY2F0aW9uX2NvdW50OworKworKyAgb2xkX2xvY2F0aW9uID0gYnBfbG9jYXRp b247CisrICBvbGRfbG9jYXRpb25fY291bnQgPSBicF9sb2NhdGlvbl9jb3VudDsKKysgIGJwX2xv Y2F0aW9uID0gTlVMTDsKKysgIGJwX2xvY2F0aW9uX2NvdW50ID0gMDsKKysgIGNsZWFudXBzID0g bWFrZV9jbGVhbnVwICh4ZnJlZSwgb2xkX2xvY2F0aW9uKTsKKyAKKy0gIGJwX2xvY2F0aW9uX2No YWluID0gTlVMTDsKKyAgIEFMTF9CUkVBS1BPSU5UUyAoYikKKy0gICAgeworLSAgICAgIGZvciAo bG9jID0gYi0+bG9jOyBsb2M7IGxvYyA9IGxvYy0+bmV4dCkKKy0JeworLQkgICpuZXh0ID0gbG9j OworLQkgIG5leHQgPSAmKGxvYy0+Z2xvYmFsX25leHQpOworLQkgICpuZXh0ID0gTlVMTDsKKy0J fQorLSAgICB9CisrICAgIGZvciAobG9jID0gYi0+bG9jOyBsb2M7IGxvYyA9IGxvYy0+bmV4dCkK KysgICAgICBicF9sb2NhdGlvbl9jb3VudCsrOworKworKyAgYnBfbG9jYXRpb24gPSB4bWFsbG9j IChzaXplb2YgKCpicF9sb2NhdGlvbikgKiBicF9sb2NhdGlvbl9jb3VudCk7CisrICBsb2NwID0g YnBfbG9jYXRpb247CisrICBBTExfQlJFQUtQT0lOVFMgKGIpCisrICAgIGZvciAobG9jID0gYi0+ bG9jOyBsb2M7IGxvYyA9IGxvYy0+bmV4dCkKKysgICAgICAqbG9jcCsrID0gbG9jOworKyAgcXNv cnQgKGJwX2xvY2F0aW9uLCBicF9sb2NhdGlvbl9jb3VudCwgc2l6ZW9mICgqYnBfbG9jYXRpb24p LAorKwkgYnBfbG9jYXRpb25fY29tcGFyZV9mb3JfcXNvcnQpOworKworKyAgYnBfbG9jYXRpb25f dGFyZ2V0X2V4dGVuc2lvbnNfdXBkYXRlICgpOworIAorICAgLyogSWRlbnRpZnkgYnBfbG9jYXRp b24gaW5zdGFuY2VzIHRoYXQgYXJlIG5vIGxvbmdlciBwcmVzZW50IGluIHRoZSBuZXcKKyAgICAg IGxpc3QsIGFuZCB0aGVyZWZvcmUgc2hvdWxkIGJlIGZyZWVkLiAgTm90ZSB0aGF0IGl0J3Mgbm90 IG5lY2Vzc2FyeSB0aGF0CisgICAgICB0aG9zZSBsb2NhdGlvbnMgc2hvdWxkIGJlIHJlbW92ZWQg ZnJvbSBpbmZlcmlvciAtLSBpZiB0aGVyZSdzIGFub3RoZXIKKyAgICAgIGxvY2F0aW9uIGF0IHRo ZSBzYW1lIGFkZHJlc3MgKHByZXZpb3VzbHkgbWFya2VkIGFzIGR1cGxpY2F0ZSksCistICAgICB3 ZSBkb24ndCBuZWVkIHRvIHJlbW92ZS9pbnNlcnQgdGhlIGxvY2F0aW9uLiAgKi8KKy0gIGZvciAo aXggPSAwOyBWRUNfaXRlcmF0ZShicF9sb2NhdGlvbl9wLCBvbGRfbG9jYXRpb25zLCBpeCwgbG9j KTsgKytpeCkKKysgICAgIHdlIGRvbid0IG5lZWQgdG8gcmVtb3ZlL2luc2VydCB0aGUgbG9jYXRp b24uCisrICAgICAKKysgICAgIExPQ1AgaXMga2VwdCBpbiBzeW5jIHdpdGggT0xEX0xPQ1AsIGVh Y2ggcG9pbnRpbmcgdG8gdGhlIGN1cnJlbnQgYW5kCisrICAgICBmb3JtZXIgYnBfbG9jYXRpb24g YXJyYXkgc3RhdGUgcmVzcGVjdGl2ZWx5LiAgKi8KKysKKysgIGxvY3AgPSBicF9sb2NhdGlvbjsK KysgIGZvciAob2xkX2xvY3AgPSBvbGRfbG9jYXRpb247IG9sZF9sb2NwIDwgb2xkX2xvY2F0aW9u ICsgb2xkX2xvY2F0aW9uX2NvdW50OworKyAgICAgICBvbGRfbG9jcCsrKQorICAgICB7CistICAg ICAgLyogVGVsbHMgaWYgJ2xvYycgaXMgZm91bmQgYW1vdW5nIHRoZSBuZXcgbG9jYXRpb25zLiAg SWYgbm90LCB3ZQorKyAgICAgIHN0cnVjdCBicF9sb2NhdGlvbiAqb2xkX2xvYyA9ICpvbGRfbG9j cDsKKysKKysgICAgICAvKiBUZWxscyBpZiAnb2xkX2xvYycgaXMgZm91bmQgYW1vdW5nIHRoZSBu ZXcgbG9jYXRpb25zLiAgSWYgbm90LCB3ZQorIAkgaGF2ZSB0byBmcmVlIGl0LiAgKi8KKy0gICAg ICBpbnQgZm91bmRfb2JqZWN0ID0gMDsKKysgICAgICBpbnQgZm91bmRfb2JqZWN0OworICAgICAg IC8qIFRlbGxzIGlmIHRoZSBsb2NhdGlvbiBzaG91bGQgcmVtYWluIGluc2VydGVkIGluIHRoZSB0 YXJnZXQuICAqLworICAgICAgIGludCBrZWVwX2luX3RhcmdldCA9IDA7CisgICAgICAgaW50IHJl bW92ZWQgPSAwOworLSAgICAgIGZvciAobG9jMiA9IGJwX2xvY2F0aW9uX2NoYWluOyBsb2MyOyBs b2MyID0gbG9jMi0+Z2xvYmFsX25leHQpCistCWlmIChsb2MyID09IGxvYykKKy0JICB7CistCSAg ICBmb3VuZF9vYmplY3QgPSAxOworLQkgICAgYnJlYWs7CistCSAgfQorKworKyAgICAgIC8qIFNr aXAgTE9DUCBlbnRyaWVzIHdoaWNoIHdpbGwgZGVmaW5pdGVseSBuZXZlciBiZSBuZWVkZWQuICBT dG9wIGVpdGhlcgorKwkgYXQgb3IgYmVpbmcgdGhlIG9uZSBtYXRjaGluZyBPTERfTE9DLiAgKi8K KysgICAgICB3aGlsZSAobG9jcCA8IGJwX2xvY2F0aW9uICsgYnBfbG9jYXRpb25fY291bnQKKysJ ICAgICAmJiBicF9sb2NhdGlvbl9jb21wYXJlICgqbG9jcCwgb2xkX2xvYykgPCAwKQorKwlsb2Nw Kys7CisrICAgICAgZm91bmRfb2JqZWN0ID0gbG9jcCA8IGJwX2xvY2F0aW9uICsgYnBfbG9jYXRp b25fY291bnQgJiYgKmxvY3AgPT0gb2xkX2xvYzsKKyAKKyAgICAgICAvKiBJZiB0aGlzIGxvY2F0 aW9uIGlzIG5vIGxvbmdlciBwcmVzZW50LCBhbmQgaW5zZXJ0ZWQsIGxvb2sgaWYgdGhlcmUncwor IAkgbWF5YmUgYSBuZXcgbG9jYXRpb24gYXQgdGhlIHNhbWUgYWRkcmVzcy4gIElmIHNvLCBtYXJr IHRoYXQgb25lIAorQEAgLTc0MjYsMTEgKzc2MTcsMTEgQEAgdXBkYXRlX2dsb2JhbF9sb2NhdGlv bl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkKKyAJIGRvbid0IGhhdmUgYSB0aW1lIHdpbmRvdyB3 aGVyZSBhIGJyZWFrcG9pbnQgYXQgY2VydGFpbiBsb2NhdGlvbiBpcyBub3QKKyAJIGluc2VydGVk LiAgKi8KKyAKKy0gICAgICBpZiAobG9jLT5pbnNlcnRlZCkKKysgICAgICBpZiAob2xkX2xvYy0+ aW5zZXJ0ZWQpCisgCXsKKyAJICAvKiBJZiB0aGUgbG9jYXRpb24gaXMgaW5zZXJ0ZWQgbm93LCB3 ZSBtaWdodCBoYXZlIHRvIHJlbW92ZSBpdC4gICovCisgCistCSAgaWYgKGZvdW5kX29iamVjdCAm JiBzaG91bGRfYmVfaW5zZXJ0ZWQgKGxvYykpCisrCSAgaWYgKGZvdW5kX29iamVjdCAmJiBzaG91 bGRfYmVfaW5zZXJ0ZWQgKG9sZF9sb2MpKQorIAkgICAgeworIAkgICAgICAvKiBUaGUgbG9jYXRp b24gaXMgc3RpbGwgcHJlc2VudCBpbiB0aGUgbG9jYXRpb24gbGlzdCwgYW5kIHN0aWxsCisgCQkg c2hvdWxkIGJlIGluc2VydGVkLiAgRG9uJ3QgZG8gYW55dGhpbmcuICAqLworQEAgLTc0NDEsMzcg Kzc2MzIsNDYgQEAgdXBkYXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2Vy dCkKKyAJICAgICAgLyogVGhlIGxvY2F0aW9uIGlzIGVpdGhlciBubyBsb25nZXIgcHJlc2VudCwg b3IgZ290IGRpc2FibGVkLgorIAkJIFNlZSBpZiB0aGVyZSdzIGFub3RoZXIgbG9jYXRpb24gYXQg dGhlIHNhbWUgYWRkcmVzcywgaW4gd2hpY2ggCisgCQkgY2FzZSB3ZSBkb24ndCBuZWVkIHRvIHJl bW92ZSB0aGlzIG9uZSBmcm9tIHRoZSB0YXJnZXQuICAqLworLQkgICAgICBpZiAoYnJlYWtwb2lu dF9hZGRyZXNzX2lzX21lYW5pbmdmdWwgKGxvYy0+b3duZXIpKQorLQkJZm9yIChsb2MyID0gYnBf bG9jYXRpb25fY2hhaW47IGxvYzI7IGxvYzIgPSBsb2MyLT5nbG9iYWxfbmV4dCkKKy0JCSAgewor LQkJICAgIC8qIEZvciB0aGUgc2FrZSBvZiBzaG91bGRfaW5zZXJ0X2xvY2F0aW9uLiAgVGhlCist CQkgICAgICAgY2FsbCB0byBjaGVja19kdXBsaWNhdGVzIHdpbGwgZml4IHVwIHRoaXMgbGF0ZXIu ICAqLworLQkJICAgIGxvYzItPmR1cGxpY2F0ZSA9IDA7CistCQkgICAgaWYgKHNob3VsZF9iZV9p bnNlcnRlZCAobG9jMikKKy0JCQkmJiBsb2MyICE9IGxvYyAmJiBsb2MyLT5hZGRyZXNzID09IGxv Yy0+YWRkcmVzcykKKy0JCSAgICAgIHsJCSAgCistCQkJbG9jMi0+aW5zZXJ0ZWQgPSAxOworLQkJ CWxvYzItPnRhcmdldF9pbmZvID0gbG9jLT50YXJnZXRfaW5mbzsKKy0JCQlrZWVwX2luX3Rhcmdl dCA9IDE7CistCQkJYnJlYWs7CistCQkgICAgICB9CistCQkgIH0KKysKKysJICAgICAgaWYgKGJy ZWFrcG9pbnRfYWRkcmVzc19pc19tZWFuaW5nZnVsIChvbGRfbG9jLT5vd25lcikpCisrCQl7Cisr CQkgIHN0cnVjdCBicF9sb2NhdGlvbiAqKmxvYzJwOworKworKwkJICBmb3IgKGxvYzJwID0gbG9j cDsKKysJCSAgICAgICBsb2MycCA8IGJwX2xvY2F0aW9uICsgYnBfbG9jYXRpb25fY291bnQKKysJ CSAgICAgICAmJiAoKmxvYzJwKS0+YWRkcmVzcyA9PSBvbGRfbG9jLT5hZGRyZXNzOworKwkJICAg ICAgIGxvYzJwKyspCisrCQkgICAgeworKwkJICAgICAgc3RydWN0IGJwX2xvY2F0aW9uICpsb2My ID0gKmxvYzJwOworKworKwkJICAgICAgLyogRm9yIHRoZSBzYWtlIG9mIHNob3VsZF9iZV9pbnNl cnRlZC4KKysJCQkgRHVwbGljYXRlcyBjaGVjayBiZWxvdyB3aWxsIGZpeCB1cCB0aGlzIGxhdGVy LiAgKi8KKysJCSAgICAgIGxvYzItPmR1cGxpY2F0ZSA9IDA7CisrCQkgICAgICBpZiAobG9jMiAh PSBvbGRfbG9jICYmIHNob3VsZF9iZV9pbnNlcnRlZCAobG9jMikpCisrCQkJewkJICAKKysJCQkg IGxvYzItPmluc2VydGVkID0gMTsKKysJCQkgIGxvYzItPnRhcmdldF9pbmZvID0gb2xkX2xvYy0+ dGFyZ2V0X2luZm87CisrCQkJICBrZWVwX2luX3RhcmdldCA9IDE7CisrCQkJICBicmVhazsKKysJ CQl9CisrCQkgICAgfQorKwkJfQorIAkgICAgfQorIAorIAkgIGlmICgha2VlcF9pbl90YXJnZXQp CisgCSAgICB7CistCSAgICAgIGlmIChyZW1vdmVfYnJlYWtwb2ludCAobG9jLCBtYXJrX3VuaW5z ZXJ0ZWQpKQorKwkgICAgICBpZiAocmVtb3ZlX2JyZWFrcG9pbnQgKG9sZF9sb2MsIG1hcmtfdW5p bnNlcnRlZCkpCisgCQl7CisgCQkgIC8qIFRoaXMgaXMganVzdCBhYm91dCBhbGwgd2UgY2FuIGRv LiAgV2UgY291bGQga2VlcCB0aGlzCisgCQkgICAgIGxvY2F0aW9uIG9uIHRoZSBnbG9iYWwgbGlz dCwgYW5kIHRyeSB0byByZW1vdmUgaXQgbmV4dAorIAkJICAgICB0aW1lLCBidXQgdGhlcmUncyBu byBwYXJ0aWN1bGFyIHJlYXNvbiB3aHkgd2Ugd2lsbAorIAkJICAgICBzdWNjZWVkIG5leHQgdGlt ZS4gIAorIAkJICAgICAKKy0JCSAgICAgTm90ZSB0aGF0IGF0IHRoaXMgcG9pbnQsIGxvYy0+b3du ZXIgaXMgc3RpbGwgdmFsaWQsCisrCQkgICAgIE5vdGUgdGhhdCBhdCB0aGlzIHBvaW50LCBvbGRf bG9jLT5vd25lciBpcyBzdGlsbCB2YWxpZCwKKyAJCSAgICAgYXMgZGVsZXRlX2JyZWFrcG9pbnQg ZnJlZXMgdGhlIGJyZWFrcG9pbnQgb25seQorIAkJICAgICBhZnRlciBjYWxsaW5nIHVzLiAgKi8K KyAJCSAgcHJpbnRmX2ZpbHRlcmVkIChfKCJ3YXJuaW5nOiBFcnJvciByZW1vdmluZyBicmVha3Bv aW50ICVkXG4iKSwgCistCQkJCSAgIGxvYy0+b3duZXItPm51bWJlcik7CisrCQkJCSAgIG9sZF9s b2MtPm93bmVyLT5udW1iZXIpOworIAkJfQorIAkgICAgICByZW1vdmVkID0gMTsKKyAJICAgIH0K K0BAIC03NDkzLDE5ICs3NjkzLDU5IEBAIHVwZGF0ZV9nbG9iYWxfbG9jYXRpb25fbGlzdCAoaW50 IHNob3VsZF9pbnNlcnQpCisgCQkgbG9uZ2VyIG5lZWQgdG8ga2VlcCB0aGlzIGJyZWFrcG9pbnQu ICBUaGlzIGlzIGp1c3QgYQorIAkJIGhldXJpc3RpYywgYnV0IGlmIGl0J3Mgd3JvbmcsIHdlJ2xs IHJlcG9ydCB1bmV4cGVjdGVkIFNJR1RSQVAsCisgCQkgd2hpY2ggaXMgdXNhYmlsaXR5IGlzc3Vl LCBidXQgbm90IGEgY29ycmVjdG5lc3MgcHJvYmxlbS4gICovCistCSAgICAgIGxvYy0+ZXZlbnRz X3RpbGxfcmV0aXJlbWVudCA9IDMgKiAodGhyZWFkX2NvdW50ICgpICsgMSk7CistCSAgICAgIGxv Yy0+b3duZXIgPSBOVUxMOworKwkgICAgICBvbGRfbG9jLT5ldmVudHNfdGlsbF9yZXRpcmVtZW50 ID0gMyAqICh0aHJlYWRfY291bnQgKCkgKyAxKTsKKysJICAgICAgb2xkX2xvYy0+b3duZXIgPSBO VUxMOworIAorLQkgICAgICBWRUNfc2FmZV9wdXNoIChicF9sb2NhdGlvbl9wLCBtb3JpYnVuZF9s b2NhdGlvbnMsIGxvYyk7CisrCSAgICAgIFZFQ19zYWZlX3B1c2ggKGJwX2xvY2F0aW9uX3AsIG1v cmlidW5kX2xvY2F0aW9ucywgb2xkX2xvYyk7CisgCSAgICB9CisgCSAgZWxzZQorLQkgICAgZnJl ZV9icF9sb2NhdGlvbiAobG9jKTsKKysJICAgIGZyZWVfYnBfbG9jYXRpb24gKG9sZF9sb2MpOwor IAl9CisgICAgIH0KKyAKKy0gIEFMTF9CUkVBS1BPSU5UUyAoYikKKysgIC8qIFJlc2NhbiBicmVh a3BvaW50cyBhdCB0aGUgc2FtZSBhZGRyZXNzIGFuZCBzZWN0aW9uLAorKyAgICAgbWFya2luZyB0 aGUgZmlyc3Qgb25lIGFzICJmaXJzdCIgYW5kIGFueSBvdGhlcnMgYXMgImR1cGxpY2F0ZXMiLgor KyAgICAgVGhpcyBpcyBzbyB0aGF0IHRoZSBicHQgaW5zdHJ1Y3Rpb24gaXMgb25seSBpbnNlcnRl ZCBvbmNlLgorKyAgICAgSWYgd2UgaGF2ZSBhIHBlcm1hbmVudCBicmVha3BvaW50IGF0IHRoZSBz YW1lIHBsYWNlIGFzIEJQVCwgbWFrZQorKyAgICAgdGhhdCBvbmUgdGhlIG9mZmljaWFsIG9uZSwg YW5kIHRoZSByZXN0IGFzIGR1cGxpY2F0ZXMuICBQZXJtYW5lbnQKKysgICAgIGJyZWFrcG9pbnRz IGFyZSBzb3J0ZWQgZmlyc3QgZm9yIHRoZSBzYW1lIGFkZHJlc3MuICAqLworKworKyAgbG9jX2Zp cnN0ID0gTlVMTDsKKysgIEFMTF9CUF9MT0NBVElPTlMgKGxvYywgbG9jcCkKKyAgICAgeworLSAg ICAgIGNoZWNrX2R1cGxpY2F0ZXMgKGIpOworKyAgICAgIHN0cnVjdCBicmVha3BvaW50ICpiID0g bG9jLT5vd25lcjsKKysKKysgICAgICBpZiAoYi0+ZW5hYmxlX3N0YXRlID09IGJwX2Rpc2FibGVk CisrCSAgfHwgYi0+ZW5hYmxlX3N0YXRlID09IGJwX2NhbGxfZGlzYWJsZWQKKysJICB8fCBiLT5l bmFibGVfc3RhdGUgPT0gYnBfc3RhcnR1cF9kaXNhYmxlZAorKwkgIHx8ICFsb2MtPmVuYWJsZWQK KysJICB8fCBsb2MtPnNobGliX2Rpc2FibGVkCisrCSAgfHwgIWJyZWFrcG9pbnRfYWRkcmVzc19p c19tZWFuaW5nZnVsIChiKSkKKysJY29udGludWU7CisrCisrICAgICAgLyogUGVybWFuZW50IGJy ZWFrcG9pbnQgc2hvdWxkIGFsd2F5cyBiZSBpbnNlcnRlZC4gICovCisrICAgICAgaWYgKGItPmVu YWJsZV9zdGF0ZSA9PSBicF9wZXJtYW5lbnQgJiYgISBsb2MtPmluc2VydGVkKQorKwlpbnRlcm5h bF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAorKwkJCV8oImFsbGVnZWRseSBwZXJtYW5lbnQg YnJlYWtwb2ludCBpcyBub3QgIgorKwkJCSJhY3R1YWxseSBpbnNlcnRlZCIpKTsKKysKKysgICAg ICBpZiAobG9jX2ZpcnN0ID09IE5VTEwKKysJICAvKiBhZGRyZXNzIC8gb3ZlcmxheSBtYXRjaCAq LworKwkgIHx8IGxvYy0+YWRkcmVzcyAhPSBsb2NfZmlyc3QtPmFkZHJlc3MKKysJICB8fCAob3Zl cmxheV9kZWJ1Z2dpbmcgJiYgbG9jLT5zZWN0aW9uICE9IGxvY19maXJzdC0+c2VjdGlvbikpCisr CXsKKysJICBsb2NfZmlyc3QgPSBsb2M7CisrCSAgbG9jLT5kdXBsaWNhdGUgPSAwOworKwkgIGNv bnRpbnVlOworKwl9CisrCisrICAgICAgbG9jLT5kdXBsaWNhdGUgPSAxOworKworKyAgICAgIGlm IChsb2NfZmlyc3QtPm93bmVyLT5lbmFibGVfc3RhdGUgPT0gYnBfcGVybWFuZW50ICYmIGxvYy0+ aW5zZXJ0ZWQKKysgICAgICAgICAgJiYgYi0+ZW5hYmxlX3N0YXRlICE9IGJwX3Blcm1hbmVudCkK KysJaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVfXywKKysJCQlfKCJhbm90aGVyIGJy ZWFrcG9pbnQgd2FzIGluc2VydGVkIG9uIHRvcCBvZiAiCisrCQkJImEgcGVybWFuZW50IGJyZWFr cG9pbnQiKSk7CisgICAgIH0KKyAKKyAgIGlmIChicmVha3BvaW50c19hbHdheXNfaW5zZXJ0ZWRf bW9kZSAoKSAmJiBzaG91bGRfaW5zZXJ0CitAQCAtNzY4MSw2ICs3OTIxLDcgQEAgZGVsZXRlX2Nv bW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQorIAkgICAgJiYgYi0+dHlwZSAhPSBicF90 aHJlYWRfZXZlbnQKKyAJICAgICYmIGItPnR5cGUgIT0gYnBfb3ZlcmxheV9ldmVudAorIAkgICAg JiYgYi0+dHlwZSAhPSBicF9sb25nam1wX21hc3RlcgorKwkgICAgJiYgYi0+dHlwZSAhPSBicF9l eGNlcHRpb25fbWFzdGVyCisgCSAgICAmJiBiLT5udW1iZXIgPj0gMCkKKyAJICB7CisgCSAgICBi cmVha3NfdG9fZGVsZXRlID0gMTsKK0BAIC03NzAwLDYgKzc5NDEsNyBAQCBkZWxldGVfY29tbWFu ZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCisgCQkmJiBiLT50eXBlICE9IGJwX2ppdF9ldmVu dAorIAkJJiYgYi0+dHlwZSAhPSBicF9vdmVybGF5X2V2ZW50CisgCQkmJiBiLT50eXBlICE9IGJw X2xvbmdqbXBfbWFzdGVyCisrCQkmJiBiLT50eXBlICE9IGJwX2V4Y2VwdGlvbl9tYXN0ZXIKKyAJ CSYmIGItPm51bWJlciA+PSAwKQorIAkgICAgICBkZWxldGVfYnJlYWtwb2ludCAoYik7CisgCSAg fQorQEAgLTgwMDIsNiArODI0NCw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmlu dCkKKyAJIHJlc2V0IGxhdGVyIGJ5IGJyZWFrcG9pbnRfcmVfc2V0LiAgKi8KKyAgICAgY2FzZSBi cF9vdmVybGF5X2V2ZW50OgorICAgICBjYXNlIGJwX2xvbmdqbXBfbWFzdGVyOgorKyAgICBjYXNl IGJwX2V4Y2VwdGlvbl9tYXN0ZXI6CisgICAgICAgZGVsZXRlX2JyZWFrcG9pbnQgKGIpOworICAg ICAgIGJyZWFrOworIAorQEAgLTgwMjUsNiArODI2OCw4IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29u ZSAodm9pZCAqYmludCkKKyAgICAgY2FzZSBicF9sb25nam1wOgorICAgICBjYXNlIGJwX2xvbmdq bXBfcmVzdW1lOgorICAgICBjYXNlIGJwX2ppdF9ldmVudDoKKysgICAgY2FzZSBicF9leGNlcHRp b246CisrICAgIGNhc2UgYnBfZXhjZXB0aW9uX3Jlc3VtZToKKyAgICAgICBicmVhazsKKyAgICAg fQorIAorQEAgLTgwNjAsNiArODMwNSw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0ICh2b2lkKQorICAg Y3JlYXRlX2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJfbG9uZ2ptcCIpOworICAgY3JlYXRl X2xvbmdqbXBfbWFzdGVyX2JyZWFrcG9pbnQgKCJzaWdsb25nam1wIik7CisgICBjcmVhdGVfbG9u Z2ptcF9tYXN0ZXJfYnJlYWtwb2ludCAoIl9zaWdsb25nam1wIik7CisrICBjcmVhdGVfZXhjZXB0 aW9uX21hc3Rlcl9icmVha3BvaW50ICgpOworIH0KKyAMCisgLyogUmVzZXQgdGhlIHRocmVhZCBu dW1iZXIgb2YgdGhpcyBicmVha3BvaW50OgorQEAgLTg4NzEsNiArOTExNywyMiBAQCBhbGxfdHJh Y2Vwb2ludHMgKCkKKyAgIHJldHVybiB0cF92ZWM7CisgfQorIAorKy8qIENhbGwgdHlwZV9tYXJr X3VzZWQgZm9yIGFueSBUWVBFcyByZWZlcmVuY2VkIGZyb20gdGhpcyBHREIgc291cmNlIGZpbGUu ICAqLworKworK3N0YXRpYyB2b2lkCisrYnJlYWtwb2ludF90eXBlc19tYXJrX3VzZWQgKHZvaWQp CisreworKyAgc3RydWN0IGJyZWFrcG9pbnQgKmI7CisrCisrICBBTExfQlJFQUtQT0lOVFMgKGIp CisrICAgIHsKKysgICAgICBpZiAoYi0+ZXhwKQorKwlleHBfdHlwZXNfbWFya191c2VkIChiLT5l eHApOworKyAgICAgIGlmIChiLT52YWwpCisrCXR5cGVfbWFya191c2VkICh2YWx1ZV90eXBlIChi LT52YWwpKTsKKysgICAgfQorK30KKysKKyAMCisgLyogVGhpcyBoZWxwIHN0cmluZyBpcyB1c2Vk IGZvciB0aGUgYnJlYWssIGhicmVhaywgdGJyZWFrIGFuZCB0aGJyZWFrIGNvbW1hbmRzLgorICAg IEl0IGlzIGRlZmluZWQgYXMgYSBtYWNybyB0byBwcmV2ZW50IGR1cGxpY2F0aW9uLgorQEAgLTkz NzMsNCArOTYzNSw1IEBAIGluZmVyaW9yIGluIGFsbC1zdG9wIG1vZGUsIGdkYiBiZWhhdmVzIGFz IGlmIGFsd2F5cy1pbnNlcnRlZCBtb2RlIGlzIG9mZi4iKSwKKyAgIGF1dG9tYXRpY19oYXJkd2Fy ZV9icmVha3BvaW50cyA9IDE7CisgCisgICBvYnNlcnZlcl9hdHRhY2hfYWJvdXRfdG9fcHJvY2Vl ZCAoYnJlYWtwb2ludF9hYm91dF90b19wcm9jZWVkKTsKKysgIG9ic2VydmVyX2F0dGFjaF9tYXJr X3VzZWQgKGJyZWFrcG9pbnRfdHlwZXNfbWFya191c2VkKTsKKyB9CitkaWZmIC0tZ2l0IGEvZ2Ri L2JyZWFrcG9pbnQuaCBiL2dkYi9icmVha3BvaW50LmgKK2luZGV4IDcwYjEzOTguLjBmMDViNWEg MTAwNjQ0CistLS0gYS9nZGIvYnJlYWtwb2ludC5oCisrKysgYi9nZGIvYnJlYWtwb2ludC5oCitA QCAtNTUsNiArNTUsMTMgQEAgZW51bSBicHR5cGUKKyAgICAgYnBfbG9uZ2ptcCwJCQkvKiBzZWNy ZXQgYnJlYWtwb2ludCB0byBmaW5kIGxvbmdqbXAoKSAqLworICAgICBicF9sb25nam1wX3Jlc3Vt ZSwJCS8qIHNlY3JldCBicmVha3BvaW50IHRvIGVzY2FwZSBsb25nam1wKCkgKi8KKyAKKysgICAg LyogQW4gaW50ZXJuYWwgYnJlYWtwb2ludCB0aGF0IGlzIGluc3RhbGxlZCBvbiB0aGUgdW53aW5k ZXIncworKyAgICAgICBkZWJ1ZyBob29rLiAgKi8KKysgICAgYnBfZXhjZXB0aW9uLAorKyAgICAv KiBBbiBpbnRlcm5hbCBicmVha3BvaW50IHRoYXQgaXMgc2V0IGF0IHRoZSBwb2ludCB3aGVyZSBh bgorKyAgICAgICBleGNlcHRpb24gd2lsbCBsYW5kLiAgKi8KKysgICAgYnBfZXhjZXB0aW9uX3Jl c3VtZSwKKysKKyAgICAgLyogVXNlZCBieSB3YWl0X2Zvcl9pbmZlcmlvciBmb3Igc3RlcHBpbmcg b3ZlciBzdWJyb3V0aW5lIGNhbGxzLCBmb3IKKyAgICAgICAgc3RlcHBpbmcgb3ZlciBzaWduYWwg aGFuZGxlcnMsIGFuZCBmb3Igc2tpcHBpbmcgcHJvbG9ndWVzLiAgKi8KKyAgICAgYnBfc3RlcF9y ZXN1bWUsCitAQCAtMTE3LDYgKzEyNCw5IEBAIGVudW0gYnB0eXBlCisgCisgICAgIGJwX2xvbmdq bXBfbWFzdGVyLAorIAorKyAgICAvKiBMaWtlIGJwX2xvbmdqbXBfbWFzdGVyLCBidXQgZm9yIGV4 Y2VwdGlvbnMuICAqLworKyAgICBicF9leGNlcHRpb25fbWFzdGVyLAorKworICAgICBicF9jYXRj aHBvaW50LAorIAorICAgICBicF90cmFjZXBvaW50LAorQEAgLTIyNywxMCArMjM3LDYgQEAgc3Ry dWN0IGJwX2xvY2F0aW9uCisgICAgICB0aGUgc2FtZSBwYXJlbnQgYnJlYWtwb2ludC4gICovCisg ICBzdHJ1Y3QgYnBfbG9jYXRpb24gKm5leHQ7CisgCistICAvKiBQb2ludGVyIHRvIHRoZSBuZXh0 IGJyZWFrcG9pbnQgbG9jYXRpb24sIGluIGEgZ2xvYmFsCistICAgICBsaXN0IG9mIGFsbCBicmVh a3BvaW50IGxvY2F0aW9ucy4gICovCistICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmdsb2JhbF9uZXh0 OworLSAKKyAgIC8qIFR5cGUgb2YgdGhpcyBicmVha3BvaW50IGxvY2F0aW9uLiAgKi8KKyAgIGVu dW0gYnBfbG9jX3R5cGUgbG9jX3R5cGU7CisgCitAQCAtNTczLDYgKzU3OSwxMCBAQCBzdHJ1Y3Qg YnBzdGF0X3doYXQKKyAgICAgICAgY29udGludWluZyBmcm9tIGEgY2FsbCBkdW1teSB3aXRob3V0 IHBvcHBpbmcgdGhlIGZyYW1lIGlzIG5vdCBhCisgICAgICAgIHVzZWZ1bCBvbmUpLiAgKi8KKyAg ICAgaW50IGNhbGxfZHVtbXk7CisrCisrICAgIC8qIFVzZWQgZm9yIEJQU1RBVF9XSEFUX1NFVF9M T05HSk1QX1JFU1VNRS4gIFRydWUgaWYgd2UgYXJlCisrICAgICAgIGhhbmRsaW5nIGEgbG9uZ2pt cCwgZmFsc2UgaWYgd2UgYXJlIGhhbmRsaW5nIGFuIGV4Y2VwdGlvbi4gICovCisrICAgIGludCBp c19sb25nam1wOworICAgfTsKKyAKKyAvKiBUaGUgcG9zc2libGUgcmV0dXJuIHZhbHVlcyBmb3Ig cHJpbnRfYnBzdGF0LCBwcmludF9pdF9ub3JtYWwsCitAQCAtOTI3LDYgKzkzNyw5IEBAIGV4dGVy biB2b2lkIGJyZWFrcG9pbnRfcmV0aXJlX21vcmlidW5kICh2b2lkKTsKKyAvKiBUZWxsIGEgYnJl YWtwb2ludCB0byBiZSBxdWlldC4gICovCisgZXh0ZXJuIHZvaWQgbWFrZV9icmVha3BvaW50X3Np bGVudCAoc3RydWN0IGJyZWFrcG9pbnQgKik7CisgCisrLyogU2V0IGJyZWFrIGNvbmRpdGlvbiBv ZiBicmVha3BvaW50IEIgdG8gRVhQLiAgKi8KKytleHRlcm4gdm9pZCBzZXRfYnJlYWtwb2ludF9j b25kaXRpb24gKHN0cnVjdCBicmVha3BvaW50ICpiLCBjaGFyICpleHAsIGludCBmcm9tX3R0eSk7 CisrCisgLyogUmV0dXJuIGEgdHJhY2Vwb2ludCB3aXRoIHRoZSBnaXZlbiBudW1iZXIgaWYgZm91 bmQuICAqLworIGV4dGVybiBzdHJ1Y3QgYnJlYWtwb2ludCAqZ2V0X3RyYWNlcG9pbnQgKGludCBu dW0pOworIAorZGlmZiAtLWdpdCBhL2dkYi9jLWV4cC55IGIvZ2RiL2MtZXhwLnkKK2luZGV4IGY4 ZTRmMTIuLjViNDdlMmUgMTAwNjQ0CistLS0gYS9nZGIvYy1leHAueQorKysrIGIvZ2RiL2MtZXhw LnkKK0BAIC0xMTcsNiArMTE3LDggQEAgc3RhdGljIGludCB5eWxleCAodm9pZCk7CisgCisgdm9p ZCB5eWVycm9yIChjaGFyICopOworIAorKy8qIENsZWFudXAgZm9yICdub25lbXB0eV90eXBlbGlz dCcgKi8KKytzdGF0aWMgc3RydWN0IGNsZWFudXAgKnR5cGVsaXN0X2NsZWFudXA7CisgJX0KKyAK KyAvKiBBbHRob3VnaCB0aGUgeWFjYyAidmFsdWUiIG9mIGFuIGV4cHJlc3Npb24gaXMgbm90IHVz ZWQsCitAQCAtMTU3LDYgKzE1OSw3IEBAIHZvaWQgeXllcnJvciAoY2hhciAqKTsKKyAleworIC8q IFlZU1RZUEUgZ2V0cyBkZWZpbmVkIGJ5ICV1bmlvbiAqLworIHN0YXRpYyBpbnQgcGFyc2VfbnVt YmVyIChjaGFyICosIGludCwgaW50LCBZWVNUWVBFICopOworK3N0YXRpYyBzdHJ1Y3Qgc3Rva2Vu IG9wZXJhdG9yX3N0b2tlbiAoY29uc3QgY2hhciAqKTsKKyAlfQorIAorICV0eXBlIDx2b2lkdmFs PiBleHAgZXhwMSB0eXBlX2V4cCBzdGFydCB2YXJpYWJsZSBxdWFsaWZpZWRfbmFtZSBsY3VybHkK K0BAIC0xOTksOSArMjAyLDEyIEBAIHN0YXRpYyBpbnQgcGFyc2VfbnVtYmVyIChjaGFyICosIGlu dCwgaW50LCBZWVNUWVBFICopOworIAorICV0b2tlbiA8c3N5bT4gTkFNRV9PUl9JTlQgCiAgCisr JXRva2VuIE9QRVJBVE9SCisgJXRva2VuIFNUUlVDVCBDTEFTUyBVTklPTiBFTlVNIFNJWkVPRiBV TlNJR05FRCBDT0xPTkNPTE9OCisgJXRva2VuIFRFTVBMQVRFCisgJXRva2VuIEVSUk9SCisrJXRv a2VuIE5FVyBERUxFVEUKKysldHlwZSA8c3ZhbD4gb3BlcmF0b3IKKyAKKyAvKiBTcGVjaWFsIHR5 cGUgY2FzZXMsIHB1dCBpbiB0byBhbGxvdyB0aGUgcGFyc2VyIHRvIGRpc3Rpbmd1aXNoIGRpZmZl cmVudAorICAgIGxlZ2FsIGJhc2V0eXBlcy4gICovCiBAQCAtNDAxLDYgKzQwNywzNiBAQCBhcmds aXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKICAJCQl7IGFyZ2xpc3Rf bGVuKys7IH0KICAJOwpAQCAtMTAxNywyNyArMjIxMSw3IEBAIGluZGV4IGFhY2MxMTIuLmUyMDY5 ODMgMTAwNjQ0CiAgLyogVGFrZSBjYXJlIG9mIHBhcnNpbmcgYSBudW1iZXIgKGFueXRoaW5nIHRo YXQgc3RhcnRzIHdpdGggYSBkaWdpdCkuCiAgICAgU2V0IHl5bHZhbCBhbmQgcmV0dXJuIHRoZSB0 b2tlbiB0eXBlOyB1cGRhdGUgbGV4cHRyLgogICAgIExFTiBpcyB0aGUgbnVtYmVyIG9mIGNoYXJh Y3RlcnMgaW4gaXQuICAqLwotQEAgLTE2NjQsNyArMTg0NSw4IEBAIHN0cnVjdCB0b2tlbgotIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgdG9rZW4gdG9rZW50YWIzW10gPQotICAgewotICAgICB7Ij4+PSIs IEFTU0lHTl9NT0RJRlksIEJJTk9QX1JTSCwgMH0sCi0tICAgIHsiPDw9IiwgQVNTSUdOX01PRElG WSwgQklOT1BfTFNILCAwfQotKyAgICB7Ijw8PSIsIEFTU0lHTl9NT0RJRlksIEJJTk9QX0xTSCwg MH0sCi0rICAgIHsiLT4qIiwgQVJST1dfU1RBUiwgQklOT1BfRU5ELCAxfQotICAgfTsKLSAKLSBz dGF0aWMgY29uc3Qgc3RydWN0IHRva2VuIHRva2VudGFiMltdID0KLUBAIC0xNjg4LDcgKzE4NzAs OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRva2VuIHRva2VudGFiMltdID0KLSAgICAgeyI9PSIs IEVRVUFMLCBCSU5PUF9FTkQsIDB9LAotICAgICB7IiE9IiwgTk9URVFVQUwsIEJJTk9QX0VORCwg MH0sCi0gICAgIHsiPD0iLCBMRVEsIEJJTk9QX0VORCwgMH0sCi0tICAgIHsiPj0iLCBHRVEsIEJJ Tk9QX0VORCwgMH0KLSsgICAgeyI+PSIsIEdFUSwgQklOT1BfRU5ELCAwfSwKLSsgICAgeyIuKiIs IERPVF9TVEFSLCBCSU5PUF9FTkQsIDB9Ci0gICB9OwotIAotIC8qIElkZW50aWZpZXItbGlrZSB0 b2tlbnMuICAqLwotQEAgLTE3MTAsNiArMTg5Myw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdG9r ZW4gaWRlbnRfdG9rZW5zW10gPQorQEAgLTE3MTQsNiArMTg5NSw5IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdG9rZW4gaWRlbnRfdG9rZW5zW10gPQogICAgICB7ImxvbmciLCBMT05HLCBPUF9OVUxM LCAwfSwKICAgICAgeyJ0cnVlIiwgVFJVRUtFWVdPUkQsIE9QX05VTEwsIDF9LAogICAgICB7Imlu dCIsIElOVF9LRVlXT1JELCBPUF9OVUxMLCAwfSwKQEAgLTEwNDcsNyArMjIyMSw3IEBAIGluZGV4 IGFhY2MxMTIuLmUyMDY5ODMgMTAwNjQ0CiAgCiAgICAgIHsiYW5kIiwgQU5EQU5ELCBCSU5PUF9F TkQsIDF9LAogICAgICB7ImFuZF9lcSIsIEFTU0lHTl9NT0RJRlksIEJJTk9QX0JJVFdJU0VfQU5E LCAxfSwKLUBAIC0xODE4LDYgKzIwMDQsMTMgQEAgc3RhdGljIGludCBsYXN0X3dhc19zdHJ1Y3Rv cDsKK0BAIC0xODIyLDYgKzIwMDYsMTMgQEAgc3RhdGljIGludCBsYXN0X3dhc19zdHJ1Y3RvcDsK ICBzdGF0aWMgaW50CiAgeXlsZXggKHZvaWQpCiAgewpAQCAtMTA2MSw3ICsyMjM1LDcgQEAgaW5k ZXggYWFjYzExMi4uZTIwNjk4MyAxMDA2NDQKICAgIGludCBjOwogICAgaW50IG5hbWVsZW47CiAg ICB1bnNpZ25lZCBpbnQgaTsKLUBAIC0xODI2LDkgKzIwMTksMTkgQEAgeXlsZXggKHZvaWQpCitA QCAtMTgzMCw5ICsyMDIxLDE5IEBAIHl5bGV4ICh2b2lkKQogICAgY2hhciAqY29weTsKICAKICAg IGxhc3Rfd2FzX3N0cnVjdG9wID0gMDsKQEAgLTEwODMsMTAgKzIyNTcsMTAgQEAgaW5kZXggYWFj YzExMi4uZTIwNjk4MyAxMDA2NDQKICAgIC8qIENoZWNrIGlmIHRoaXMgaXMgYSBtYWNybyBpbnZv Y2F0aW9uIHRoYXQgd2UgbmVlZCB0byBleHBhbmQuICAqLwogICAgaWYgKCEgc2Nhbm5pbmdfbWFj cm9fZXhwYW5zaW9uICgpKQogICAgICB7Ci1AQCAtMTg1NiwxMCArMjA1OSwxOSBAQCB5eWxleCAo dm9pZCkKLSAgIGZvciAoaSA9IDA7IGkgPCBzaXplb2YgdG9rZW50YWIyIC8gc2l6ZW9mIHRva2Vu dGFiMlswXTsgaSsrKQotICAgICBpZiAoc3RybmNtcCAodG9rc3RhcnQsIHRva2VudGFiMltpXS5v cGVyYXRvciwgMikgPT0gMCkKLSAgICAgICB7CitAQCAtMTg2OCwxMCArMjA2OSwxOSBAQCB5eWxl eCAodm9pZCkKKyAJICAgICYmIHBhcnNlX2xhbmd1YWdlLT5sYV9sYW5ndWFnZSAhPSBsYW5ndWFn ZV9jcGx1cykKKyAJICBicmVhazsKKyAKICsJaWYgKHRva2VudGFiMltpXS50b2tlbiA9PSBDT0xP TkNPTE9OKQogKwkgIHsKICsJICAgIG5hbWVfcHJlZml4X2xlbiArPSAyOwpAQCAtMTEwMyw3ICsy Mjc3LDcgQEAgaW5kZXggYWFjYzExMi4uZTIwNjk4MyAxMDA2NDQKICAJcmV0dXJuIHRva2VudGFi MltpXS50b2tlbjsKICAgICAgICB9CiAgCi1AQCAtMTg4OCw2ICsyMTAwLDggQEAgeXlsZXggKHZv aWQpCitAQCAtMTkwMCw2ICsyMTEwLDggQEAgeXlsZXggKHZvaWQpCiAgICAgICAgICByZXR1cm4g MDsKICAKICAgICAgY2FzZSAnICc6CkBAIC0xMTEyLDcgKzIyODYsNyBAQCBpbmRleCBhYWNjMTEy Li5lMjA2OTgzIDEwMDY0NAogICAgICBjYXNlICdcdCc6CiAgICAgIGNhc2UgJ1xuJzoKICAgICAg ICBsZXhwdHIrKzsKLUBAIC0yMDQ1LDExICsyMjU5LDEzIEBAIHl5bGV4ICh2b2lkKQorQEAgLTIw NTcsMTEgKzIyNjksMTMgQEAgeXlsZXggKHZvaWQpCiAgICAgIGVycm9yICgiSW52YWxpZCBjaGFy YWN0ZXIgJyVjJyBpbiBleHByZXNzaW9uLiIsIGMpOwogIAogICAgLyogSXQncyBhIG5hbWUuICBT ZWUgaG93IGxvbmcgaXQgaXMuICAqLwpAQCAtMTEyNiw3ICsyMzAwLDcgQEAgaW5kZXggYWFjYzEx Mi4uZTIwNjk4MyAxMDA2NDQKICAgICAgICAvKiBUZW1wbGF0ZSBwYXJhbWV0ZXIgbGlzdHMgYXJl IHBhcnQgb2YgdGhlIG5hbWUuCiAgCSBGSVhNRTogVGhpcyBtaXNoYW5kbGVzIGBwcmludCAkYTw0 JiYkYT4zJy4gICovCiAgCi1AQCAtMjExMywxNCArMjMyOSwyOSBAQCB5eWxleCAodm9pZCkKK0BA IC0yMTI1LDE0ICsyMzM5LDI5IEBAIHl5bGV4ICh2b2lkKQogICAgICAgY3VycmVudGx5IGFzIG5h bWVzIG9mIHR5cGVzOyBOQU1FIGZvciBvdGhlciBzeW1ib2xzLgogICAgICAgVGhlIGNhbGxlciBp cyBub3QgY29uc3RyYWluZWQgdG8gY2FyZSBhYm91dCB0aGUgZGlzdGluY3Rpb24uICAqLwogICAg ewpAQCAtMTE1Nyw3ICsyMzMxLDcgQEAgaW5kZXggYWFjYzExMi4uZTIwNjk4MyAxMDA2NDQKICAg ICAgLyogQ2FsbCBsb29rdXBfc3ltdGFiLCBub3QgbG9va3VwX3BhcnRpYWxfc3ltdGFiLCBpbiBj YXNlIHRoZXJlIGFyZQogICAgICAgICBubyBwc3ltdGFicyAoY29mZiwgeGNvZmYsIG9yIHNvbWUg ZnV0dXJlIGNoYW5nZSB0byBibG93IGF3YXkgdGhlCiAgICAgICAgIHBzeW10YWJzIG9uY2Ugb25j ZSBzeW1ib2xzIGFyZSByZWFkKS4gICovCi1AQCAtMjE3OSw2ICsyNDEwLDcgQEAgeXlsZXggKHZv aWQpCitAQCAtMjE5MSw2ICsyNDIwLDcgQEAgeXlsZXggKHZvaWQpCiAgICAgIHl5bHZhbC5zc3lt LmlzX2FfZmllbGRfb2ZfdGhpcyA9IGlzX2FfZmllbGRfb2ZfdGhpczsKICAgICAgaWYgKGluX3Bh cnNlX2ZpZWxkICYmICpsZXhwdHIgPT0gJ1wwJykKICAgICAgICBzYXdfbmFtZV9hdF9lb2YgPSAx OwpAQCAtMTQ2MCwxMCArMjYzNCwxMCBAQCBpbmRleCA4ODhmOGI0Li42NTQ5NGI4IDEwMDY0NAog ICAgZGVmYXVsdF9zeW1maWxlX29mZnNldHMsCS8qIHN5bV9vZmZzZXRzOiAgeGxhdGUgZXh0ZXJu YWwgdG8gaW50ZXJuYWwgZm9ybSAqLwogICAgZGVmYXVsdF9zeW1maWxlX3NlZ21lbnRzLAkvKiBz eW1fc2VnbWVudHM6IEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZyb20KIGRpZmYgLS1naXQgYS9n ZGIvY29uZmlnLmluIGIvZ2RiL2NvbmZpZy5pbgotaW5kZXggZjJkNTZhMC4uMDkwOWM4MCAxMDA2 NDQKK2luZGV4IDQ3MTY1MjQuLjA3NDVjNjUgMTAwNjQ0CiAtLS0gYS9nZGIvY29uZmlnLmluCiAr KysgYi9nZGIvY29uZmlnLmluCi1AQCAtNDMsMTEgKzQzLDEwIEBACitAQCAtNDYsMTEgKzQ2LDEw IEBACiAgICAgbGFuZ3VhZ2UgaXMgcmVxdWVzdGVkLiAqLwogICN1bmRlZiBFTkFCTEVfTkxTCiAg CkBAIC0xNDc3LDcgKzI2NTEsNyBAQCBpbmRleCBmMmQ1NmEwLi4wOTA5YzgwIDEwMDY0NAogICN1 bmRlZiBHREJfREFUQURJUl9SRUxPQ0FUQUJMRQogIAogIC8qIERlZmluZSB0byBiZSBhIHN0cmlu ZyBuYW1pbmcgdGhlIGRlZmF1bHQgaG9zdCBjaGFyYWN0ZXIgc2V0LiAqLwotQEAgLTY0MSw2ICs2 NDAsOSBAQAorQEAgLTY0Nyw2ICs2NDYsOSBAQAogICAgICdwdHJkaWZmX3QnLiAqLwogICN1bmRl ZiBQVFJESUZGX1RfU1VGRklYCiAgCkBAIC0xNzI5LDE5ICsyOTAzLDI3IEBAIGluZGV4IDAwMDAw MDAuLjQ5YWM0MjAKICsjZGVmaW5lIFRBUkdFVF9SRUdJT05fU0laRV9PS19GT1JfSFdfV0FUQ0hQ T0lOVChTSVpFKSAxCiArCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZSBiL2dkYi9jb25maWd1 cmUKLWluZGV4IDkzZjdmNGIuLmE2NTgwZTIgMTAwNzU1CitpbmRleCA5OWFjYzJmLi5hMmVhMWFl IDEwMDc1NQogLS0tIGEvZ2RiL2NvbmZpZ3VyZQogKysrIGIvZ2RiL2NvbmZpZ3VyZQotQEAgLTMx NCw3ICszMTQsNyBAQCBhY19zdWJkaXJzX2FsbD0iJGFjX3N1YmRpcnNfYWxsIGRvYyB0ZXN0c3Vp dGUiCi0gYWNfc3ViZGlyc19hbGw9IiRhY19zdWJkaXJzX2FsbCBnZGJ0ayIKLSBhY19zdWJkaXJz X2FsbD0iJGFjX3N1YmRpcnNfYWxsIG11bHRpLWljZSIKLSBhY19zdWJkaXJzX2FsbD0iJGFjX3N1 YmRpcnNfYWxsIGdkYnNlcnZlciIKLS1hY19zdWJzdF92YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRP UiBQQUNLQUdFX05BTUUgUEFDS0FHRV9UQVJOQU1FIFBBQ0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NU UklORyBQQUNLQUdFX0JVR1JFUE9SVCBleGVjX3ByZWZpeCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZSBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFy ZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIg aW5mb2RpciBtYW5kaXIgYnVpbGRfYWxpYXMgaG9zdF9hbGlhcyB0YXJnZXRfYWxpYXMgREVGUyBF Q0hPX0MgRUNIT19OIEVDSE9fVCBMSUJTIE1BSU5UQUlORVJfTU9ERV9UUlVFIE1BSU5UQUlORVJf TU9ERV9GQUxTRSBNQUlOVCBDQyBDRkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVF WFQgT0JKRVhUIENQUCBFR1JFUCBSQU5MSUIgYWNfY3RfUkFOTElCIGJ1aWxkIGJ1aWxkX2NwdSBi dWlsZF92ZW5kb3IgYnVpbGRfb3MgaG9zdCBob3N0X2NwdSBob3N0X3ZlbmRvciBob3N0X29zIHRh cmdldCB0YXJnZXRfY3B1IHRhcmdldF92ZW5kb3IgdGFyZ2V0X29zIGFtX19sZWFkaW5nX2RvdCBE RVBESVIgQ0NERVBNT0RFIE1BS0UgR01BS0VfVFJVRSBHTUFLRV9GQUxTRSBTRVRfTUFLRSBVU0Vf TkxTIExJQklOVEwgTElCSU5UTF9ERVAgSU5DSU5UTCBYR0VUVEVYVCBHTVNHRk1UIFBPU1VCIENB VEFMT0dTIERBVEFESVJOQU1FIElOU1RPQkpFWFQgR0VOQ0FUIENBVE9CSkVYVCBsb2NhbGVkaXIg R0xfQ09ORF9MSUJUT09MX1RSVUUgR0xfQ09ORF9MSUJUT09MX0ZBTFNFIEdOVUxJQl9NRU1NRU0g R05VTElCX01FTVBDUFkgR05VTElCX01FTVJDSFIgR05VTElCX1NUUENQWSBHTlVMSUJfU1RQTkNQ WSBHTlVMSUJfU1RSQ0hSTlVMIEdOVUxJQl9TVFJEVVAgR05VTElCX1NUUk5EVVAgR05VTElCX1NU Uk5MRU4gR05VTElCX1NUUlBCUksgR05VTElCX1NUUlNFUCBHTlVMSUJfU1RSU1RSIEdOVUxJQl9T VFJDQVNFU1RSIEdOVUxJQl9TVFJUT0tfUiBHTlVMSUJfTUJTTEVOIEdOVUxJQl9NQlNOTEVOIEdO VUxJQl9NQlNDSFIgR05VTElCX01CU1JDSFIgR05VTElCX01CU1NUUiBHTlVMSUJfTUJTQ0FTRUNN UCBHTlVMSUJfTUJTTkNBU0VDTVAgR05VTElCX01CU1BDQVNFQ01QIEdOVUxJQl9NQlNDQVNFU1RS IEdOVUxJQl9NQlNDU1BOIEdOVUxJQl9NQlNQQlJLIEdOVUxJQl9NQlNTUE4gR05VTElCX01CU1NF UCBHTlVMSUJfTUJTVE9LX1IgR05VTElCX1NUUkVSUk9SIEdOVUxJQl9TVFJTSUdOQUwgSEFWRV9E RUNMX01FTU1FTSBIQVZFX01FTVBDUFkgSEFWRV9ERUNMX01FTVJDSFIgSEFWRV9TVFBDUFkgSEFW RV9TVFBOQ1BZIEhBVkVfU1RSQ0hSTlVMIEhBVkVfREVDTF9TVFJEVVAgSEFWRV9TVFJORFVQIEhB VkVfREVDTF9TVFJORFVQIEhBVkVfREVDTF9TVFJOTEVOIEhBVkVfU1RSUEJSSyBIQVZFX1NUUlNF UCBIQVZFX1NUUkNBU0VTVFIgSEFWRV9ERUNMX1NUUlRPS19SIEhBVkVfREVDTF9TVFJFUlJPUiBI QVZFX0RFQ0xfU1RSU0lHTkFMIFJFUExBQ0VfU1RSRVJST1IgUkVQTEFDRV9TVFJTSUdOQUwgUkVQ TEFDRV9NRU1NRU0gUkVQTEFDRV9TVFJDQVNFU1RSIFJFUExBQ0VfU1RSU1RSIEhBVkVfTE9OR19M T05HX0lOVCBIQVZFX1VOU0lHTkVEX0xPTkdfTE9OR19JTlQgSEFWRV9JTlRUWVBFU19IIEhBVkVf U1lTX1RZUEVTX0ggSU5DTFVERV9ORVhUIE5FWFRfU1RESU5UX0ggSEFWRV9TVERJTlRfSCBIQVZF X1NZU19JTlRUWVBFU19IIEhBVkVfU1lTX0JJVFlQRVNfSCBCSVRTSVpFT0ZfUFRSRElGRl9UIEJJ VFNJWkVPRl9TSUdfQVRPTUlDX1QgQklUU0laRU9GX1NJWkVfVCBCSVRTSVpFT0ZfV0NIQVJfVCBC SVRTSVpFT0ZfV0lOVF9UIEhBVkVfU0lHTkVEX1NJR19BVE9NSUNfVCBIQVZFX1NJR05FRF9XQ0hB Ul9UIEhBVkVfU0lHTkVEX1dJTlRfVCBQVFJESUZGX1RfU1VGRklYIFNJR19BVE9NSUNfVF9TVUZG SVggU0laRV9UX1NVRkZJWCBXQ0hBUl9UX1NVRkZJWCBXSU5UX1RfU1VGRklYIFNURElOVF9IIE5F WFRfU1RSSU5HX0ggR05VTElCX1dDV0lEVEggSEFWRV9ERUNMX1dDV0lEVEggUkVQTEFDRV9XQ1dJ RFRIIFdDSEFSX0ggSEFWRV9XQ0hBUl9IIE5FWFRfV0NIQVJfSCBMSUJHTlVfTElCREVQUyBMSUJH TlVfTFRMSUJERVBTIEdOVUxJQl9TVERJTlRfSCBQQUNLQUdFIElOU1RBTExfUFJPR1JBTSBJTlNU QUxMX1NDUklQVCBJTlNUQUxMX0RBVEEgQ1lHUEFUSF9XIFZFUlNJT04gQUNMT0NBTCBBVVRPQ09O RiBBVVRPTUFLRSBBVVRPSEVBREVSIE1BS0VJTkZPIGluc3RhbGxfc2ggU1RSSVAgYWNfY3RfU1RS SVAgSU5TVEFMTF9TVFJJUF9QUk9HUkFNIG1rZGlyX3AgQVdLIEFNVEFSIGFtX190YXIgYW1fX3Vu dGFyIGFtX19pbmNsdWRlIGFtX19xdW90ZSBBTURFUF9UUlVFIEFNREVQX0ZBTFNFIEFNREVQQkFD S1NMQVNIIGFtX19mYXN0ZGVwQ0NfVFJVRSBhbV9fZmFzdGRlcENDX0ZBTFNFIERFQlVHRElSIEdE Ql9EQVRBRElSIHN1YmRpcnMgVEFSR0VUX09CUyBQS0dWRVJTSU9OIFJFUE9SVF9CVUdTX1RPIFJF UE9SVF9CVUdTX1RFWEkgTE5fUyBZQUNDIEFSIGFjX2N0X0FSIERMTFRPT0wgYWNfY3RfRExMVE9P TCBXSU5EUkVTIGFjX2N0X1dJTkRSRVMgTUlHIGFjX2N0X01JRyBSRUFETElORSBSRUFETElORV9E RVBTIFJFQURMSU5FX0NGTEFHUyBIQVZFX0xJQkVYUEFUIExJQkVYUEFUIExUTElCRVhQQVQgUFlU SE9OX0NGTEFHUyBBTExPQ0EgQ09ORklHX0xERkxBR1MgVEFSR0VUX1NZU1RFTV9ST09UIFRBUkdF VF9TWVNURU1fUk9PVF9ERUZJTkUgU1lTVEVNX0dEQklOSVQgV0FSTl9DRkxBR1MgV0VSUk9SX0NG TEFHUyBTRVJfSEFSRFdJUkUgV0lOMzJMSUJTIExJQkdVSSBHVUlfQ0ZMQUdTX1ggV0lOMzJMREFQ UCBUQ0xfVkVSU0lPTiBUQ0xfUEFUQ0hfTEVWRUwgVENMX0JJTl9ESVIgVENMX1NSQ19ESVIgVENM X0xJQl9GSUxFIFRDTF9MSUJfRkxBRyBUQ0xfTElCX1NQRUMgVENMX1NUVUJfTElCX0ZJTEUgVENM X1NUVUJfTElCX0ZMQUcgVENMX1NUVUJfTElCX1NQRUMgVENMX0lOQ0xVREUgVENMX0xJQlJBUlkg VENMX0RFUFMgVEtfVkVSU0lPTiBUS19CSU5fRElSIFRLX1NSQ19ESVIgVEtfTElCX0ZJTEUgVEtf TElCX0ZMQUcgVEtfTElCX1NQRUMgVEtfU1RVQl9MSUJfRklMRSBUS19TVFVCX0xJQl9GTEFHIFRL X1NUVUJfTElCX1NQRUMgVEtfSU5DTFVERSBUS19MSUJSQVJZIFRLX0RFUFMgVEtfWElOQ0xVREVT IFhfQ0ZMQUdTIFhfTERGTEFHUyBYX0xJQlMgR0RCVEtMSUJTIEdEQlRLX0NGTEFHUyBHREJUS19T UkNfRElSIFNJTSBTSU1fT0JTIEVOQUJMRV9DRkxBR1MgUFJPRklMRV9DRkxBR1MgQ09ORklHX09C UyBDT05GSUdfREVQUyBDT05GSUdfU1JDUyBDT05GSUdfQUxMIENPTkZJR19DTEVBTiBDT05GSUdf SU5TVEFMTCBDT05GSUdfVU5JTlNUQUxMIHRhcmdldF9zdWJkaXIgZnJhZ3MgR0RCX05NX0ZJTEUg ZGF0YXJvb3RkaXIgZG9jZGlyIGh0bWxkaXIgcGRmZGlyIExJQk9CSlMgTFRMSUJPQkpTIGdsX0xJ Qk9CSlMgZ2xfTFRMSUJPQkpTIGdsdGVzdHNfTElCT0JKUyBnbHRlc3RzX0xUTElCT0JKUycKLSth Y19zdWJzdF92YXJzPSdTSEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9U QVJOQU1FIFBBQ0tBR0VfVkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBl eGVjX3ByZWZpeCBwcmVmaXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBs aWJleGVjZGlyIGRhdGFkaXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGly IGxpYmRpciBpbmNsdWRlZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxp YXMgaG9zdF9hbGlhcyB0YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJT IE1BSU5UQUlORVJfTU9ERV9UUlVFIE1BSU5UQUlORVJfTU9ERV9GQUxTRSBNQUlOVCBDQyBDRkxB R1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIENQUCBFR1JFUCBSQU5M SUIgYWNfY3RfUkFOTElCIGJ1aWxkIGJ1aWxkX2NwdSBidWlsZF92ZW5kb3IgYnVpbGRfb3MgaG9z dCBob3N0X2NwdSBob3N0X3ZlbmRvciBob3N0X29zIHRhcmdldCB0YXJnZXRfY3B1IHRhcmdldF92 ZW5kb3IgdGFyZ2V0X29zIGFtX19sZWFkaW5nX2RvdCBERVBESVIgQ0NERVBNT0RFIE1BS0UgR01B S0VfVFJVRSBHTUFLRV9GQUxTRSBTRVRfTUFLRSBVU0VfTkxTIExJQklOVEwgTElCSU5UTF9ERVAg SU5DSU5UTCBYR0VUVEVYVCBHTVNHRk1UIFBPU1VCIENBVEFMT0dTIERBVEFESVJOQU1FIElOU1RP QkpFWFQgR0VOQ0FUIENBVE9CSkVYVCBsb2NhbGVkaXIgR0xfQ09ORF9MSUJUT09MX1RSVUUgR0xf Q09ORF9MSUJUT09MX0ZBTFNFIEdOVUxJQl9NRU1NRU0gR05VTElCX01FTVBDUFkgR05VTElCX01F TVJDSFIgR05VTElCX1NUUENQWSBHTlVMSUJfU1RQTkNQWSBHTlVMSUJfU1RSQ0hSTlVMIEdOVUxJ Ql9TVFJEVVAgR05VTElCX1NUUk5EVVAgR05VTElCX1NUUk5MRU4gR05VTElCX1NUUlBCUksgR05V TElCX1NUUlNFUCBHTlVMSUJfU1RSU1RSIEdOVUxJQl9TVFJDQVNFU1RSIEdOVUxJQl9TVFJUT0tf UiBHTlVMSUJfTUJTTEVOIEdOVUxJQl9NQlNOTEVOIEdOVUxJQl9NQlNDSFIgR05VTElCX01CU1JD SFIgR05VTElCX01CU1NUUiBHTlVMSUJfTUJTQ0FTRUNNUCBHTlVMSUJfTUJTTkNBU0VDTVAgR05V TElCX01CU1BDQVNFQ01QIEdOVUxJQl9NQlNDQVNFU1RSIEdOVUxJQl9NQlNDU1BOIEdOVUxJQl9N QlNQQlJLIEdOVUxJQl9NQlNTUE4gR05VTElCX01CU1NFUCBHTlVMSUJfTUJTVE9LX1IgR05VTElC X1NUUkVSUk9SIEdOVUxJQl9TVFJTSUdOQUwgSEFWRV9ERUNMX01FTU1FTSBIQVZFX01FTVBDUFkg SEFWRV9ERUNMX01FTVJDSFIgSEFWRV9TVFBDUFkgSEFWRV9TVFBOQ1BZIEhBVkVfU1RSQ0hSTlVM IEhBVkVfREVDTF9TVFJEVVAgSEFWRV9TVFJORFVQIEhBVkVfREVDTF9TVFJORFVQIEhBVkVfREVD TF9TVFJOTEVOIEhBVkVfU1RSUEJSSyBIQVZFX1NUUlNFUCBIQVZFX1NUUkNBU0VTVFIgSEFWRV9E RUNMX1NUUlRPS19SIEhBVkVfREVDTF9TVFJFUlJPUiBIQVZFX0RFQ0xfU1RSU0lHTkFMIFJFUExB Q0VfU1RSRVJST1IgUkVQTEFDRV9TVFJTSUdOQUwgUkVQTEFDRV9NRU1NRU0gUkVQTEFDRV9TVFJD QVNFU1RSIFJFUExBQ0VfU1RSU1RSIEhBVkVfTE9OR19MT05HX0lOVCBIQVZFX1VOU0lHTkVEX0xP TkdfTE9OR19JTlQgSEFWRV9JTlRUWVBFU19IIEhBVkVfU1lTX1RZUEVTX0ggSU5DTFVERV9ORVhU IE5FWFRfU1RESU5UX0ggSEFWRV9TVERJTlRfSCBIQVZFX1NZU19JTlRUWVBFU19IIEhBVkVfU1lT X0JJVFlQRVNfSCBCSVRTSVpFT0ZfUFRSRElGRl9UIEJJVFNJWkVPRl9TSUdfQVRPTUlDX1QgQklU U0laRU9GX1NJWkVfVCBCSVRTSVpFT0ZfV0NIQVJfVCBCSVRTSVpFT0ZfV0lOVF9UIEhBVkVfU0lH TkVEX1NJR19BVE9NSUNfVCBIQVZFX1NJR05FRF9XQ0hBUl9UIEhBVkVfU0lHTkVEX1dJTlRfVCBQ VFJESUZGX1RfU1VGRklYIFNJR19BVE9NSUNfVF9TVUZGSVggU0laRV9UX1NVRkZJWCBXQ0hBUl9U X1NVRkZJWCBXSU5UX1RfU1VGRklYIFNURElOVF9IIE5FWFRfU1RSSU5HX0ggR05VTElCX1dDV0lE VEggSEFWRV9ERUNMX1dDV0lEVEggUkVQTEFDRV9XQ1dJRFRIIFdDSEFSX0ggSEFWRV9XQ0hBUl9I IE5FWFRfV0NIQVJfSCBMSUJHTlVfTElCREVQUyBMSUJHTlVfTFRMSUJERVBTIEdOVUxJQl9TVERJ TlRfSCBQQUNLQUdFIElOU1RBTExfUFJPR1JBTSBJTlNUQUxMX1NDUklQVCBJTlNUQUxMX0RBVEEg Q1lHUEFUSF9XIFZFUlNJT04gQUNMT0NBTCBBVVRPQ09ORiBBVVRPTUFLRSBBVVRPSEVBREVSIE1B S0VJTkZPIGluc3RhbGxfc2ggU1RSSVAgYWNfY3RfU1RSSVAgSU5TVEFMTF9TVFJJUF9QUk9HUkFN IG1rZGlyX3AgQVdLIEFNVEFSIGFtX190YXIgYW1fX3VudGFyIGFtX19pbmNsdWRlIGFtX19xdW90 ZSBBTURFUF9UUlVFIEFNREVQX0ZBTFNFIEFNREVQQkFDS1NMQVNIIGFtX19mYXN0ZGVwQ0NfVFJV RSBhbV9fZmFzdGRlcENDX0ZBTFNFIERFQlVHRElSIEdEQl9EQVRBRElSIEdEQl9EQVRBRElSX1BB VEggcHl0aG9uZGlyIHN1YmRpcnMgVEFSR0VUX09CUyBQS0dWRVJTSU9OIFJFUE9SVF9CVUdTX1RP IFJFUE9SVF9CVUdTX1RFWEkgTE5fUyBZQUNDIEFSIGFjX2N0X0FSIERMTFRPT0wgYWNfY3RfRExM VE9PTCBXSU5EUkVTIGFjX2N0X1dJTkRSRVMgTUlHIGFjX2N0X01JRyBSRUFETElORSBSRUFETElO RV9ERVBTIFJFQURMSU5FX0NGTEFHUyBIQVZFX0xJQkVYUEFUIExJQkVYUEFUIExUTElCRVhQQVQg UFlUSE9OX0NGTEFHUyBBTExPQ0EgQ09ORklHX0xERkxBR1MgVEFSR0VUX1NZU1RFTV9ST09UIFRB UkdFVF9TWVNURU1fUk9PVF9ERUZJTkUgU1lTVEVNX0dEQklOSVQgV0FSTl9DRkxBR1MgV0VSUk9S X0NGTEFHUyBTRVJfSEFSRFdJUkUgV0lOMzJMSUJTIExJQkdVSSBHVUlfQ0ZMQUdTX1ggV0lOMzJM REFQUCBUQ0xfVkVSU0lPTiBUQ0xfUEFUQ0hfTEVWRUwgVENMX0JJTl9ESVIgVENMX1NSQ19ESVIg VENMX0xJQl9GSUxFIFRDTF9MSUJfRkxBRyBUQ0xfTElCX1NQRUMgVENMX1NUVUJfTElCX0ZJTEUg VENMX1NUVUJfTElCX0ZMQUcgVENMX1NUVUJfTElCX1NQRUMgVENMX0lOQ0xVREUgVENMX0xJQlJB UlkgVENMX0RFUFMgVEtfVkVSU0lPTiBUS19CSU5fRElSIFRLX1NSQ19ESVIgVEtfTElCX0ZJTEUg VEtfTElCX0ZMQUcgVEtfTElCX1NQRUMgVEtfU1RVQl9MSUJfRklMRSBUS19TVFVCX0xJQl9GTEFH IFRLX1NUVUJfTElCX1NQRUMgVEtfSU5DTFVERSBUS19MSUJSQVJZIFRLX0RFUFMgVEtfWElOQ0xV REVTIFhfQ0ZMQUdTIFhfTERGTEFHUyBYX0xJQlMgR0RCVEtMSUJTIEdEQlRLX0NGTEFHUyBHREJU S19TUkNfRElSIFNJTSBTSU1fT0JTIEVOQUJMRV9DRkxBR1MgUFJPRklMRV9DRkxBR1MgQ09ORklH X09CUyBDT05GSUdfREVQUyBDT05GSUdfU1JDUyBDT05GSUdfQUxMIENPTkZJR19DTEVBTiBDT05G SUdfSU5TVEFMTCBDT05GSUdfVU5JTlNUQUxMIHRhcmdldF9zdWJkaXIgZnJhZ3MgR0RCX05NX0ZJ TEUgZGF0YXJvb3RkaXIgZG9jZGlyIGh0bWxkaXIgcGRmZGlyIExJQk9CSlMgTFRMSUJPQkpTIGds X0xJQk9CSlMgZ2xfTFRMSUJPQkpTIGdsdGVzdHNfTElCT0JKUyBnbHRlc3RzX0xUTElCT0JKUycK LSBhY19zdWJzdF9maWxlcz0naG9zdF9tYWtlZmlsZV9mcmFnJwotIGFjX3B3ZD1gcHdkYAotIAot QEAgLTg5MSw2ICs4OTEsMTAgQEAgT3B0aW9uYWwgUGFja2FnZXM6CitAQCAtNjc2LDYgKzY3Niw4 IEBAIFJFUE9SVF9CVUdTX1RPCisgUEtHVkVSU0lPTgorIFRBUkdFVF9PQlMKKyBzdWJkaXJzCisr cHl0aG9uZGlyCisrR0RCX0RBVEFESVJfUEFUSAorIEdEQl9EQVRBRElSCisgREVCVUdESVIKKyBh bV9fZmFzdGRlcENDX0ZBTFNFCitAQCAtODgzLDYgKzg4NSw3IEBAIGVuYWJsZV9kZXBlbmRlbmN5 X3RyYWNraW5nCisgd2l0aF9zZXBhcmF0ZV9kZWJ1Z19kaXIKKyB3aXRoX2dkYl9kYXRhZGlyCisg d2l0aF9yZWxvY2F0ZWRfc291cmNlcworK3dpdGhfcHl0aG9uZGlyCisgZW5hYmxlX3RhcmdldHMK KyBlbmFibGVfNjRfYml0X2JmZAorIGVuYWJsZV9nZGJjbGkKK0BAIC0xNTgxLDYgKzE1ODQsMTAg QEAgT3B0aW9uYWwgUGFja2FnZXM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbREFUQURJ Ui9nZGJdCiAgICAtLXdpdGgtcmVsb2NhdGVkLXNvdXJjZXM9UEFUSAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXV0b21hdGljYWxseSByZWxvY2F0ZSB0aGlzIHBhdGggZm9yIHNvdXJjZSBm aWxlcwpAQCAtMTc1MiwyMCArMjkzNCwyMCBAQCBpbmRleCA5M2Y3ZjRiLi5hNjU4MGUyIDEwMDc1 NQogICAgLS13aXRoLWxpYnVud2luZCAgICAgICAgdXNlIGxpYnVud2luZCBmcmFtZSB1bndpbmRp bmcgc3VwcG9ydAogICAgLS13aXRoLWN1cnNlcyAgICAgICAgICAgdXNlIHRoZSBjdXJzZXMgbGli cmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBs aWJyYXJ5Ci1AQCAtNzIxOCw2ICs3MjIyLDc1IEBAIF9BQ0VPRgorQEAgLTY2MDIsNiArNjYwOSw3 MyBAQCBfQUNFT0YKKyBmaQogIAotIGZpOwogIAogKyMgR0RCJ3MgZGF0YWRpciByZWxvY2F0aW9u CiArCiArZ2RiZGF0YWRpcj0ke2RhdGFkaXJ9L2dkYgogKwogKwotKyMgQ2hlY2sgd2hldGhlciAt LXdpdGgtZ2RiLWRhdGFkaXIgb3IgLS13aXRob3V0LWdkYi1kYXRhZGlyIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke3dpdGhfZ2RiX2RhdGFkaXIrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHdpdGh2YWw9 IiR3aXRoX2dkYl9kYXRhZGlyIgotKyAgZ2RiZGF0YWRpcj0iJHt3aXRodmFsfSIKLStmaTsKKysj IENoZWNrIHdoZXRoZXIgLS13aXRoLWdkYi1kYXRhZGlyIHdhcyBnaXZlbi4KKytpZiB0ZXN0ICIk e3dpdGhfZ2RiX2RhdGFkaXIrc2V0fSIgPSBzZXQ7IHRoZW4gOgorKyAgd2l0aHZhbD0kd2l0aF9n ZGJfZGF0YWRpcjsgZ2RiZGF0YWRpcj0iJHt3aXRodmFsfSIKKytmaQorKwogKwogKwogKyAgdGVz dCAieCRwcmVmaXgiID0geE5PTkUgJiYgcHJlZml4PSIkYWNfZGVmYXVsdF9wcmVmaXgiCkBAIC0x NzkzLDkgKzI5NzUsNyBAQCBpbmRleCA5M2Y3ZjRiLi5hNjU4MGUyIDEwMDc1NQogKyAgIiR7dGVz dF9wcmVmaXh9InwiJHt0ZXN0X3ByZWZpeH0vIip8XAogKyAgJyR7ZXhlY19wcmVmaXh9J3wnJHtl eGVjX3ByZWZpeH0vJyopCiArCi0rY2F0ID4+Y29uZmRlZnMuaCA8PFxfQUNFT0YKLSsjZGVmaW5l IEdEQl9EQVRBRElSX1JFTE9DQVRBQkxFIDEKLStfQUNFT0YKKyskYXNfZWNobyAiI2RlZmluZSBH REJfREFUQURJUl9SRUxPQ0FUQUJMRSAxIiA+PmNvbmZkZWZzLmgKICsKICsgIDs7CiArZXNhYwpA QCAtMTgwMywxMyArMjk4MywxMyBAQCBpbmRleCA5M2Y3ZjRiLi5hNjU4MGUyIDEwMDc1NQogKwog KwogKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtcHl0aG9uZGlyIG9yIC0td2l0aG91dC1weXRo b25kaXIgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9weXRob25kaXIrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgIHdpdGh2YWw9IiR3aXRoX3B5dGhvbmRpciIKLSsgIHB5dGhvbmRpcj0iJHt3aXRo dmFsfSIKKysjIENoZWNrIHdoZXRoZXIgLS13aXRoLXB5dGhvbmRpciB3YXMgZ2l2ZW4uCisraWYg dGVzdCAiJHt3aXRoX3B5dGhvbmRpcitzZXR9IiA9IHNldDsgdGhlbiA6CisrICB3aXRodmFsPSR3 aXRoX3B5dGhvbmRpcjsgcHl0aG9uZGlyPSIke3dpdGh2YWx9IgogK2Vsc2UKICsgIHB5dGhvbmRp cj1ubwotK2ZpOworK2ZpCisrCiArCiArIyBJZiB0aGUgdXNlciBwYXNzZWQgaW4gYSBwYXRoLCBk ZWZpbmUgaXQuICBPdGhlcndpc2UsIGNvbXB1dGUgaXQgYXQKICsjIHJ1bnRpbWUgYmFzZWQgb24g dGhlIHBvc3NpYmx5LXJlbG9jYXRhYmxlIGRhdGFkaXIuCkBAIC0xODI4LDcgKzMwMDgsNyBAQCBp bmRleCA5M2Y3ZjRiLi5hNjU4MGUyIDEwMDc1NQogIAogIAogIHN1YmRpcnM9IiRzdWJkaXJzIGRv YyB0ZXN0c3VpdGUiCi1AQCAtMTE4MzcsNiArMTE5MTAsOCBAQCBfQUNFT0YKK0BAIC05MjgyLDYg KzkzNTYsOCBAQCAkYXNfZWNobyAiI2RlZmluZSBIQVZFX1BZVEhPTiAxIiA+PmNvbmZkZWZzLmgK ICAgIENPTkZJR19PQlM9IiRDT05GSUdfT0JTIFwkKFNVQkRJUl9QWVRIT05fT0JTKSIKICAgIENP TkZJR19ERVBTPSIkQ09ORklHX0RFUFMgXCQoU1VCRElSX1BZVEhPTl9ERVBTKSIKICAgIENPTkZJ R19TUkNTPSIkQ09ORklHX1NSQ1MgXCQoU1VCRElSX1BZVEhPTl9TUkNTKSIKQEAgLTE4MzcsMjAg KzMwMTcsMTEgQEAgaW5kZXggOTNmN2Y0Yi4uYTY1ODBlMiAxMDA3NTUKICAgIEVOQUJMRV9DRkxB R1M9IiRFTkFCTEVfQ0ZMQUdTIFwkKFNVQkRJUl9QWVRIT05fQ0ZMQUdTKSIKICAKICAgICMgRmxh Z3MgbmVlZGVkIHRvIGNvbXBpbGUgUHl0aG9uIGNvZGUgKHRha2VuIGZyb20gcHl0aG9uLWNvbmZp ZyAtLWNmbGFncykuCi1AQCAtMjIxNzQsNiArMjIyNDksOCBAQCBzLEBhbV9fZmFzdGRlcENDX1RS VUVALCRhbV9fZmFzdGRlcENDX1RSVUUsO3QgdAotIHMsQGFtX19mYXN0ZGVwQ0NfRkFMU0VALCRh bV9fZmFzdGRlcENDX0ZBTFNFLDt0IHQKLSBzLEBERUJVR0RJUkAsJERFQlVHRElSLDt0IHQKLSBz LEBHREJfREFUQURJUkAsJEdEQl9EQVRBRElSLDt0IHQKLStzLEBHREJfREFUQURJUl9QQVRIQCwk R0RCX0RBVEFESVJfUEFUSCw7dCB0Ci0rcyxAcHl0aG9uZGlyQCwkcHl0aG9uZGlyLDt0IHQKLSBz LEBzdWJkaXJzQCwkc3ViZGlycyw7dCB0Ci0gcyxAVEFSR0VUX09CU0AsJFRBUkdFVF9PQlMsO3Qg dAotIHMsQFBLR1ZFUlNJT05ALCRQS0dWRVJTSU9OLDt0IHQKIGRpZmYgLS1naXQgYS9nZGIvY29u ZmlndXJlLmFjIGIvZ2RiL2NvbmZpZ3VyZS5hYwotaW5kZXggNzdmODQzNi4uYmNhMzY4YyAxMDA2 NDQKK2luZGV4IGIzMWQ5YjcuLmExOTY5YmMgMTAwNjQ0CiAtLS0gYS9nZGIvY29uZmlndXJlLmFj CiArKysgYi9nZGIvY29uZmlndXJlLmFjCi1AQCAtMTA5LDYgKzEwOSw1MSBAQCBBU19IRUxQX1NU UklORyhbLS13aXRoLXJlbG9jYXRlZC1zb3VyY2VzPVBBVEhdLCBbYXV0b21hdGljYWxseSByZWxv Y2F0ZSB0aGlzIHBhdAorQEAgLTEwNyw2ICsxMDcsNTEgQEAgQVNfSEVMUF9TVFJJTkcoWy0td2l0 aC1yZWxvY2F0ZWQtc291cmNlcz1QQVRIXSwgW2F1dG9tYXRpY2FsbHkgcmVsb2NhdGUgdGhpcyBw YXQKICAgICAgICAgICAgICAgIFtSZWxvY2F0ZWQgZGlyZWN0b3J5IGZvciBzb3VyY2UgZmlsZXMu IF0pCiAgXSkKICAKQEAgLTE5MDIsNyArMzA3Myw3IEBAIGluZGV4IDc3Zjg0MzYuLmJjYTM2OGMg MTAwNjQ0CiAgQUNfQ09ORklHX1NVQkRJUlMoZG9jIHRlc3RzdWl0ZSkKICAKICAjIENoZWNrIHdo ZXRoZXIgdG8gc3VwcG9ydCBhbHRlcm5hdGl2ZSB0YXJnZXQgY29uZmlndXJhdGlvbnMKLUBAIC02 NjAsNiArNzA1LDggQEAgaWYgdGVzdCAiJHtoYXZlX2xpYnB5dGhvbn0iID0geWVzOyB0aGVuCitA QCAtNjU4LDYgKzcwMyw4IEBAIGlmIHRlc3QgIiR7aGF2ZV9saWJweXRob259IiA9IHllczsgdGhl bgogICAgQ09ORklHX09CUz0iJENPTkZJR19PQlMgXCQoU1VCRElSX1BZVEhPTl9PQlMpIgogICAg Q09ORklHX0RFUFM9IiRDT05GSUdfREVQUyBcJChTVUJESVJfUFlUSE9OX0RFUFMpIgogICAgQ09O RklHX1NSQ1M9IiRDT05GSUdfU1JDUyBcJChTVUJESVJfUFlUSE9OX1NSQ1MpIgpAQCAtMTkzNCw3 ICszMTA1LDcgQEAgaW5kZXggNjI4MDBiOC4uOTdkNTg3YiAxMDA2NDQKICAJCQl7ICQkID0gJDEu Y29tcDsKICAJCQkgIGlmICgkMikgJCQgPSBmaWxsX2NvbXAgKERFTUFOR0xFX0NPTVBPTkVOVF9M T0NBTF9OQU1FLCAkJCwgJDIpOyB9CiBkaWZmIC0tZ2l0IGEvZ2RiL2NwLW5hbWVzcGFjZS5jIGIv Z2RiL2NwLW5hbWVzcGFjZS5jCi1pbmRleCBkMmQ4ZjJlLi43NjcyYjJlIDEwMDY0NAoraW5kZXgg ZDJkOGYyZS4uYjk1MDE0NyAxMDA2NDQKIC0tLSBhL2dkYi9jcC1uYW1lc3BhY2UuYwogKysrIGIv Z2RiL2NwLW5hbWVzcGFjZS5jCiBAQCAtMzYsMTQgKzM2LDE3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNp bmdfZGlyZWN0ICpjcF9jb3B5X3VzaW5ncyAoc3RydWN0IHVzaW5nX2RpcmVjdCAqdXNpbmcsCkBA IC0yMTk0LDcgKzMzNjUsNyBAQCBpbmRleCBkMmQ4ZjJlLi43NjcyYjJlIDEwMDY0NAogKyAgc3Ry dWN0IHVzaW5nX2RpcmVjdCAqY3VycmVudDsKICsgIHN0cnVjdCBzeW1ib2wgKnN5bSA9IE5VTEw7 CiArICBpbnQgZGlyZWN0aXZlX21hdGNoOwotKyAgaW50IGN1cnJlbnRfbGluZSA9IGZpbmRfcGNf bGluZSAoZ2V0X2ZyYW1lX3BjIChnZXRfY3VycmVudF9mcmFtZSAoKSksIDApLmxpbmU7CisrICBp bnQgY3VycmVudF9saW5lID0gZmluZF9wY19saW5lIChnZXRfZnJhbWVfcGMgKGdldF9zZWxlY3Rl ZF9mcmFtZSAoTlVMTCkpLCAwKS5saW5lOwogIAogLSAgLyogRmlyc3QsIGdvIHRocm91Z2ggdGhl IHVzaW5nIGRpcmVjdGl2ZXMuICBJZiBhbnkgb2YgdGhlbSBhZGQgbmV3CiArICBpZighZGVjbGFy YXRpb25fb25seSkKQEAgLTI2MTYsMTAgKzM3ODcsMTAgQEAgaW5kZXggN2NiMDE2ZC4uYmI5ZTM1 YSAxMDA2NDQKICAgIGRlZmF1bHRfc3ltZmlsZV9vZmZzZXRzLCAvKiBzeW1fb2Zmc2V0czogcGFy c2UgdXNlcidzIG9mZnNldHMgdG8KICAJCQkgICAgICBpbnRlcm5hbCBmb3JtICovCiBkaWZmIC0t Z2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KLWluZGV4IDQw MTZhY2MuLjEwNDIzMDMgMTAwNjQ0CitpbmRleCA3YjI2Njc1Li4wZTBjMjg4IDEwMDY0NAogLS0t IGEvZ2RiL2RvYy9nZGIudGV4aW5mbwogKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotQEAgLTk1 OCw4ICs5NTgsMTAgQEAgQ29ubmVjdCB0byBwcm9jZXNzIElEIEB2YXJ7bnVtYmVyfSwgYXMgd2l0 aCB0aGUgQGNvZGV7YXR0YWNofSBjb21tYW5kLgorQEAgLTk1OSw4ICs5NTksMTAgQEAgQ29ubmVj dCB0byBwcm9jZXNzIElEIEB2YXJ7bnVtYmVyfSwgYXMgd2l0aCB0aGUgQGNvZGV7YXR0YWNofSBj b21tYW5kLgogIEBpdGVteCAteCBAdmFye2ZpbGV9CiAgQGNpbmRleCBAY29kZXstLWNvbW1hbmR9 CiAgQGNpbmRleCBAY29kZXsteH0KQEAgLTI2MzIsNyArMzgwMyw3IEBAIGluZGV4IDQwMTZhY2Mu LjEwNDIzMDMgMTAwNjQ0CiAgCiAgQGl0ZW0gLWV2YWwtY29tbWFuZCBAdmFye2NvbW1hbmR9CiAg QGl0ZW14IC1leCBAdmFye2NvbW1hbmR9Ci1AQCAtMTE1MSw2ICsxMTUzLDE2IEBAIGZvciByZW1v dGUgZGVidWdnaW5nLgorQEAgLTExNTIsNiArMTE1NCwxNiBAQCBmb3IgcmVtb3RlIGRlYnVnZ2lu Zy4KICBSdW4gdXNpbmcgQHZhcntkZXZpY2V9IGZvciB5b3VyIHByb2dyYW0ncyBzdGFuZGFyZCBp bnB1dCBhbmQgb3V0cHV0LgogIEBjIEZJWE1FOiBraW5nZG9uIHRoaW5rcyB0aGVyZSBpcyBtb3Jl IHRvIC10dHkuICBJbnZlc3RpZ2F0ZS4KICAKQEAgLTI2NDksNyArMzgyMCw3IEBAIGluZGV4IDQw MTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgQGMgcmVzb2x2ZSB0aGUgc2l0dWF0aW9uIG9mIHRoZXNl IGV2ZW50dWFsbHkKICBAaXRlbSAtdHVpCiAgQGNpbmRleCBAY29kZXstLXR1aX0KLUBAIC0xODQ2 NSw3ICsxODQ3Nyw3IEBAIGNvbW1hbmQ6CitAQCAtMTg1MTksNyArMTg1MzEsNyBAQCBjb21tYW5k OgogIEB0YWJsZSBAY29kZQogIEBraW5kZXggc291cmNlCiAgQGNpbmRleCBleGVjdXRlIGNvbW1h bmRzIGZyb20gYSBmaWxlCkBAIC0yNjU4LDcgKzM4MjksNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQy MzAzIDEwMDY0NAogIEV4ZWN1dGUgdGhlIGNvbW1hbmQgZmlsZSBAdmFye2ZpbGVuYW1lfS4KICBA ZW5kIHRhYmxlCiAgCi1AQCAtMTg0ODIsNiArMTg0OTQsMTEgQEAgSWYgQGNvZGV7LXZ9LCBmb3Ig dmVyYm9zZSBtb2RlLCBpcyBnaXZlbiB0aGVuIEB2YWx1ZXtHREJOfSBkaXNwbGF5cworQEAgLTE4 NTM2LDYgKzE4NTQ4LDExIEBAIElmIEBjb2Rley12fSwgZm9yIHZlcmJvc2UgbW9kZSwgaXMgZ2l2 ZW4gdGhlbiBAdmFsdWV7R0RCTn0gZGlzcGxheXMKICBlYWNoIGNvbW1hbmQgYXMgaXQgaXMgZXhl Y3V0ZWQuICBUaGUgb3B0aW9uIG11c3QgYmUgZ2l2ZW4gYmVmb3JlCiAgQHZhcntmaWxlbmFtZX0s IGFuZCBpcyBpbnRlcnByZXRlZCBhcyBwYXJ0IG9mIHRoZSBmaWxlbmFtZSBhbnl3aGVyZSBlbHNl LgogIApAQCAtMjY3MCw3ICszODQxLDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQK ICBDb21tYW5kcyB0aGF0IHdvdWxkIGFzayBmb3IgY29uZmlybWF0aW9uIGlmIHVzZWQgaW50ZXJh Y3RpdmVseSBwcm9jZWVkCiAgd2l0aG91dCBhc2tpbmcgd2hlbiB1c2VkIGluIGEgY29tbWFuZCBm aWxlLiAgTWFueSBAdmFsdWV7R0RCTn0gY29tbWFuZHMgdGhhdAogIG5vcm1hbGx5IHByaW50IG1l c3NhZ2VzIHRvIHNheSB3aGF0IHRoZXkgYXJlIGRvaW5nIG9taXQgdGhlIG1lc3NhZ2VzCi1AQCAt MTg3NDMsOCArMTg3NjAsNiBAQCBjb250YWluaW5nIEBjb2Rle2VuZH0uICBGb3IgZXhhbXBsZToK K0BAIC0xODc5Nyw4ICsxODgxNCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZvciBleGFt cGxlOgogIAogIEBzbWFsbGV4YW1wbGUKICAoQHZhbHVle0dEQlB9KSBweXRob24KQEAgLTI2Nzks NyArMzg1MCw3IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgPnByaW50IDIzCiAg PmVuZAogIDIzCi1AQCAtMTg3NTcsNiArMTg3NzIsMTQgQEAgaW4gYSBQeXRob24gc2NyaXB0LiAg VGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBAY29kZXttYWludCBzZXQKK0BAIC0xODgxMSw2 ICsxODgyNiwxNCBAQCBpbiBhIFB5dGhvbiBzY3JpcHQuICBUaGlzIGNhbiBiZSBjb250cm9sbGVk IHVzaW5nIEBjb2Rle21haW50IHNldAogIHB5dGhvbiBwcmludC1zdGFja306IGlmIEBjb2Rle29u fSwgdGhlIGRlZmF1bHQsIHRoZW4gUHl0aG9uIHN0YWNrCiAgcHJpbnRpbmcgaXMgZW5hYmxlZDsg aWYgQGNvZGV7b2ZmfSwgdGhlbiBQeXRob24gc3RhY2sgcHJpbnRpbmcgaXMKICBkaXNhYmxlZC4K QEAgLTI2OTQsNyArMzg2NSw3IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgQGVu ZCB0YWJsZQogIAogIEBub2RlIFB5dGhvbiBBUEkKLUBAIC0xODc2NCw2ICsxODc4NywxNCBAQCBk aXNhYmxlZC4KK0BAIC0xODgxOCw2ICsxODg0MSwxNCBAQCBkaXNhYmxlZC4KICBAY2luZGV4IHB5 dGhvbiBhcGkKICBAY2luZGV4IHByb2dyYW1taW5nIGluIHB5dGhvbgogIApAQCAtMjcwOSw3ICsz ODgwLDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBAY2luZGV4IHB5dGhvbiBz dGRvdXQKICBAY2luZGV4IHB5dGhvbiBwYWdpbmF0aW9uCiAgQXQgc3RhcnR1cCwgQHZhbHVle0dE Qk59IG92ZXJyaWRlcyBQeXRob24ncyBAY29kZXtzeXMuc3Rkb3V0fSBhbmQKLUBAIC0xODc3Niwx MyArMTg4MDcsMTcgQEAgc2l0dWF0aW9uLCBhIFB5dGhvbiBAY29kZXtLZXlib2FyZEludGVycnVw dH0gZXhjZXB0aW9uIGlzIHRocm93bi4KK0BAIC0xODgzMCwxMyArMTg4NjEsMTcgQEAgc2l0dWF0 aW9uLCBhIFB5dGhvbiBAY29kZXtLZXlib2FyZEludGVycnVwdH0gZXhjZXB0aW9uIGlzIHRocm93 bi4KICAqIEJhc2ljIFB5dGhvbjo6ICAgICAgICAgICAgICAgIEJhc2ljIFB5dGhvbiBGdW5jdGlv bnMuCiAgKiBFeGNlcHRpb24gSGFuZGxpbmc6OgogICogQXV0by1sb2FkaW5nOjogICAgICAgICAg ICAgICAgQXV0b21hdGljYWxseSBsb2FkaW5nIFB5dGhvbiBjb2RlLgpAQCAtMjcyOCw3ICszODk5 LDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICAqIEZyYW1lcyBJbiBQeXRob246 OiAgICAgICAgICAgIEFjZXNzaW5nIGluZmVyaW9yIHN0YWNrIGZyYW1lcyBmcm9tIFB5dGhvbi4K ICBAZW5kIG1lbnUKICAKLUBAIC0xODgwOSw2ICsxODg0NCwxMiBAQCBjb21tYW5kIGFzIGhhdmlu ZyBvcmlnaW5hdGVkIGZyb20gdGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4KK0BA IC0xODg2Myw2ICsxODg5OCwxMiBAQCBjb21tYW5kIGFzIGhhdmluZyBvcmlnaW5hdGVkIGZyb20g dGhlIHVzZXIgaW52b2tpbmcgaXQgaW50ZXJhY3RpdmVseS4KICBJdCBtdXN0IGJlIGEgYm9vbGVh biB2YWx1ZS4gIElmIG9taXR0ZWQsIGl0IGRlZmF1bHRzIHRvIEBjb2Rle0ZhbHNlfS4KICBAZW5k IGRlZnVuCiAgCkBAIC0yNzQxLDcgKzM5MTIsNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEw MDY0NAogIEBmaW5kZXggZ2RiLnBhcmFtZXRlcgogIEBkZWZ1biBwYXJhbWV0ZXIgcGFyYW1ldGVy CiAgUmV0dXJuIHRoZSB2YWx1ZSBvZiBhIEB2YWx1ZXtHREJOfSBwYXJhbWV0ZXIuICBAdmFye3Bh cmFtZXRlcn0gaXMgYQotQEAgLTE4ODI1LDYgKzE4ODY2LDcgQEAgYSBQeXRob24gdmFsdWUgb2Yg dGhlIGFwcHJvcHJpYXRlIHR5cGUsIGFuZCByZXR1cm5lZC4KK0BAIC0xODg3OSw2ICsxODkyMCw3 IEBAIGEgUHl0aG9uIHZhbHVlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBlLCBhbmQgcmV0dXJuZWQu CiAgQGRlZnVuIGhpc3RvcnkgbnVtYmVyCiAgUmV0dXJuIGEgdmFsdWUgZnJvbSBAdmFsdWV7R0RC Tn0ncyB2YWx1ZSBoaXN0b3J5IChAcHhyZWZ7VmFsdWUKICBIaXN0b3J5fSkuICBAdmFye251bWJl cn0gaW5kaWNhdGVzIHdoaWNoIGhpc3RvcnkgZWxlbWVudCB0byByZXR1cm4uCkBAIC0yNzQ5LDcg KzM5MjAsNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIElmIEB2YXJ7bnVtYmVy fSBpcyBuZWdhdGl2ZSwgdGhlbiBAdmFsdWV7R0RCTn0gd2lsbCB0YWtlIGl0cyBhYnNvbHV0ZSB2 YWx1ZQogIGFuZCBjb3VudCBiYWNrd2FyZCBmcm9tIHRoZSBsYXN0IGVsZW1lbnQgKGkuZS4sIHRo ZSBtb3N0IHJlY2VudCBlbGVtZW50KSB0bwogIGZpbmQgdGhlIHZhbHVlIHRvIHJldHVybi4gIElm IEB2YXJ7bnVtYmVyfSBpcyB6ZXJvLCB0aGVuIEB2YWx1ZXtHREJOfSB3aWxsCi1AQCAtMTg4MzYs NiArMTg4NzgsMjggQEAgSWYgbm8gZXhjZXB0aW9uIGlzIHJhaXNlZCwgdGhlIHJldHVybiB2YWx1 ZSBpcyBhbHdheXMgYW4gaW5zdGFuY2Ugb2YKK0BAIC0xODg5MCw2ICsxODkzMiwyOCBAQCBJZiBu byBleGNlcHRpb24gaXMgcmFpc2VkLCB0aGUgcmV0dXJuIHZhbHVlIGlzIGFsd2F5cyBhbiBpbnN0 YW5jZSBvZgogIEBjb2Rle2dkYi5WYWx1ZX0gKEBweHJlZntWYWx1ZXMgRnJvbSBJbmZlcmlvcn0p LgogIEBlbmQgZGVmdW4KICAKQEAgLTI3NzgsNyArMzk0OSw3IEBAIGluZGV4IDQwMTZhY2MuLjEw NDIzMDMgMTAwNjQ0CiAgQGZpbmRleCBnZGIud3JpdGUKICBAZGVmdW4gd3JpdGUgc3RyaW5nCiAg UHJpbnQgYSBzdHJpbmcgdG8gQHZhbHVle0dEQk59J3MgcGFnaW5hdGVkIHN0YW5kYXJkIG91dHB1 dCBzdHJlYW0uCi1AQCAtMTg4NTAsNiArMTg5MTQsMTEgQEAgRmx1c2ggQHZhbHVle0dEQk59J3Mg cGFnaW5hdGVkIHN0YW5kYXJkIG91dHB1dCBzdHJlYW0uICBGbHVzaGluZworQEAgLTE4OTA0LDYg KzE4OTY4LDExIEBAIEZsdXNoIEB2YWx1ZXtHREJOfSdzIHBhZ2luYXRlZCBzdGFuZGFyZCBvdXRw dXQgc3RyZWFtLiAgRmx1c2hpbmcKICBmdW5jdGlvbi4KICBAZW5kIGRlZnVuCiAgCkBAIC0yNzkw LDcgKzM5NjEsNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIEBub2RlIEV4Y2Vw dGlvbiBIYW5kbGluZwogIEBzdWJzdWJzZWN0aW9uIEV4Y2VwdGlvbiBIYW5kbGluZwogIEBjaW5k ZXggcHl0aG9uIGV4Y2VwdGlvbnMKLUBAIC0xODk4Niw2ICsxOTA1NSwxMyBAQCBUaGUgdHlwZSBv ZiB0aGlzIEBjb2Rle2dkYi5WYWx1ZX0uICBUaGUgdmFsdWUgb2YgdGhpcyBhdHRyaWJ1dGUgaXMg YQorQEAgLTE5MDQwLDYgKzE5MTA5LDEzIEBAIFRoZSB0eXBlIG9mIHRoaXMgQGNvZGV7Z2RiLlZh bHVlfS4gIFRoZSB2YWx1ZSBvZiB0aGlzIGF0dHJpYnV0ZSBpcyBhCiAgVGhlIGZvbGxvd2luZyBt ZXRob2RzIGFyZSBwcm92aWRlZDoKICAKICBAdGFibGUgQGNvZGUKQEAgLTI4MDQsNyArMzk3NSw3 IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgQGRlZm1ldGhvZCBWYWx1ZSBkZXJl ZmVyZW5jZQogIEZvciBwb2ludGVyIGRhdGEgdHlwZXMsIHRoaXMgbWV0aG9kIHJldHVybnMgYSBu ZXcgQGNvZGV7Z2RiLlZhbHVlfSBvYmplY3QKICB3aG9zZSBjb250ZW50cyBpcyB0aGUgb2JqZWN0 IHBvaW50ZWQgdG8gYnkgdGhlIHBvaW50ZXIuICBGb3IgZXhhbXBsZSwgaWYKLUBAIC0xOTA1Nyw2 ICsxOTEzMyw5IEBAIG1vZHVsZToKK0BAIC0xOTExMSw2ICsxOTE4Nyw5IEBAIG1vZHVsZToKICBU aGlzIGZ1bmN0aW9uIGxvb2tzIHVwIGEgdHlwZSBieSBuYW1lLiAgQHZhcntuYW1lfSBpcyB0aGUg bmFtZSBvZiB0aGUKICB0eXBlIHRvIGxvb2sgdXAuICBJdCBtdXN0IGJlIGEgc3RyaW5nLgogIApA QCAtMjgxNCw3ICszOTg1LDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBPcmRp bmFyaWx5LCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGFuIGluc3RhbmNlIG9mIEBjb2Rle2dk Yi5UeXBlfS4KICBJZiB0aGUgbmFtZWQgdHlwZSBjYW5ub3QgYmUgZm91bmQsIGl0IHdpbGwgdGhy b3cgYW4gZXhjZXB0aW9uLgogIEBlbmQgZGVmdW4KLUBAIC0xOTEwOSw2ICsxOTE4OCwxMiBAQCBU aGlzIGlzIEBjb2Rle1RydWV9IGlmIHRoZSBmaWVsZCBpcyBhcnRpZmljaWFsLCB1c3VhbGx5IG1l YW5pbmcgdGhhdAorQEAgLTE5MTYzLDYgKzE5MjQyLDEyIEBAIFRoaXMgaXMgQGNvZGV7VHJ1ZX0g aWYgdGhlIGZpZWxkIGlzIGFydGlmaWNpYWwsIHVzdWFsbHkgbWVhbmluZyB0aGF0CiAgaXQgd2Fz IHByb3ZpZGVkIGJ5IHRoZSBjb21waWxlciBhbmQgbm90IHRoZSB1c2VyLiAgVGhpcyBhdHRyaWJ1 dGUgaXMKICBhbHdheXMgcHJvdmlkZWQsIGFuZCBpcyBAY29kZXtGYWxzZX0gaWYgdGhlIGZpZWxk IGlzIG5vdCBhcnRpZmljaWFsLgogIApAQCAtMjgyNyw3ICszOTk4LDcgQEAgaW5kZXggNDAxNmFj Yy4uMTA0MjMwMyAxMDA2NDQKICBAaXRlbSBiaXRzaXplCiAgSWYgdGhlIGZpZWxkIGlzIHBhY2tl ZCwgb3IgaXMgYSBiaXRmaWVsZCwgdGhlbiB0aGlzIHdpbGwgaGF2ZSBhCiAgbm9uLXplcm8gdmFs dWUsIHdoaWNoIGlzIHRoZSBzaXplIG9mIHRoZSBmaWVsZCBpbiBiaXRzLiAgT3RoZXJ3aXNlLAot QEAgLTE5MTYxLDcgKzE5MjQ2LDcgQEAgSWYgdGhlIHR5cGUgZG9lcyBub3QgaGF2ZSBhIHRhcmdl dCwgdGhpcyBtZXRob2Qgd2lsbCB0aHJvdyBhbgorQEAgLTE5MjE1LDcgKzE5MzAwLDcgQEAgSWYg dGhlIHR5cGUgZG9lcyBub3QgaGF2ZSBhIHRhcmdldCwgdGhpcyBtZXRob2Qgd2lsbCB0aHJvdyBh bgogIGV4Y2VwdGlvbi4KICBAZW5kIGRlZm1ldGhvZAogIApAQCAtMjgzNiw3ICs0MDA3LDcgQEAg aW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBJZiB0aGlzIEBjb2Rle2dkYi5UeXBlfSBp cyBhbiBpbnN0YW50aWF0aW9uIG9mIGEgdGVtcGxhdGUsIHRoaXMgd2lsbAogIHJldHVybiBhIG5l dyBAY29kZXtnZGIuVHlwZX0gd2hpY2ggcmVwcmVzZW50cyB0aGUgdHlwZSBvZiB0aGUKICBAdmFy e259dGggdGVtcGxhdGUgYXJndW1lbnQuCi1AQCAtMTkxNjksNyArMTkyNTQsOCBAQCByZXR1cm4g YSBuZXcgQGNvZGV7Z2RiLlR5cGV9IHdoaWNoIHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlCitA QCAtMTkyMjMsNyArMTkzMDgsOCBAQCByZXR1cm4gYSBuZXcgQGNvZGV7Z2RiLlR5cGV9IHdoaWNo IHJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlCiAgSWYgdGhpcyBAY29kZXtnZGIuVHlwZX0gaXMg bm90IGEgdGVtcGxhdGUgdHlwZSwgdGhpcyB3aWxsIHRocm93IGFuCiAgZXhjZXB0aW9uLiAgT3Jk aW5hcmlseSwgb25seSBDQHR7Kyt9IGNvZGUgd2lsbCBoYXZlIHRlbXBsYXRlIHR5cGVzLgogIApA QCAtMjg0Niw3ICs0MDE3LDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBAZW5k IGRlZm1ldGhvZAogIEBlbmQgdGFibGUKICAKLUBAIC0xOTUyMyw2ICsxOTYwOSwxMjEgQEAgaW1w b3J0IGdkYi5saWJzdGRjeHgudjYKK0BAIC0xOTU3Nyw2ICsxOTY2MywxMjEgQEAgaW1wb3J0IGdk Yi5saWJzdGRjeHgudjYKICBnZGIubGlic3RkY3h4LnY2LnJlZ2lzdGVyX3ByaW50ZXJzIChnZGIu Y3VycmVudF9vYmpmaWxlICgpKQogIEBlbmQgc21hbGxleGFtcGxlCiAgCkBAIC0yOTY4LDcgKzQx MzksNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIEBub2RlIENvbW1hbmRzIElu IFB5dGhvbgogIEBzdWJzdWJzZWN0aW9uIENvbW1hbmRzIEluIFB5dGhvbgogIAotQEAgLTE5Nzc1 LDYgKzE5OTc2LDEzNSBAQCByZWdpc3RyYXRpb24gb2YgdGhlIGNvbW1hbmQgd2l0aCBAdmFsdWV7 R0RCTn0uICBEZXBlbmRpbmcgb24gaG93IHRoZQorQEAgLTE5ODI5LDYgKzIwMDMwLDEzNSBAQCBy ZWdpc3RyYXRpb24gb2YgdGhlIGNvbW1hbmQgd2l0aCBAdmFsdWV7R0RCTn0uICBEZXBlbmRpbmcg b24gaG93IHRoZQogIFB5dGhvbiBjb2RlIGlzIHJlYWQgaW50byBAdmFsdWV7R0RCTn0sIHlvdSBt YXkgbmVlZCB0byBpbXBvcnQgdGhlCiAgQGNvZGV7Z2RifSBtb2R1bGUgZXhwbGljaXRseS4KICAK QEAgLTMxMDQsNyArNDI3NSw3IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMgMTAwNjQ0CiAgQG5v ZGUgRnVuY3Rpb25zIEluIFB5dGhvbgogIEBzdWJzdWJzZWN0aW9uIFdyaXRpbmcgbmV3IGNvbnZl bmllbmNlIGZ1bmN0aW9ucwogIAotQEAgLTE5ODc5LDYgKzIwMjA5LDgyIEBAIHdoaWNoIGlzIHVz ZWQgdG8gZm9ybWF0IHRoZSB2YWx1ZS4gIEB4cmVme1ByZXR0eSBQcmludGluZ30sIGZvciBtb3Jl CitAQCAtMTk5MzMsNiArMjAyNjMsODIgQEAgd2hpY2ggaXMgdXNlZCB0byBmb3JtYXQgdGhlIHZh bHVlLiAgQHhyZWZ7UHJldHR5IFByaW50aW5nfSwgZm9yIG1vcmUKICBpbmZvcm1hdGlvbi4KICBA ZW5kIGRlZml2YXIKICAKQEAgLTMxODcsNyArNDM1OCw3IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIz MDMgMTAwNjQ0CiAgQG5vZGUgRnJhbWVzIEluIFB5dGhvbgogIEBzdWJzdWJzZWN0aW9uIEFjZXNz aW5nIGluZmVyaW9yIHN0YWNrIGZyYW1lcyBmcm9tIFB5dGhvbi4KICAKLUBAIC0xOTk0Myw2ICsy MDM0OSwxNCBAQCBmdW5jdGlvbiB0byBhIHN0cmluZy4KK0BAIC0xOTk5Nyw2ICsyMDQwMywxNCBA QCBmdW5jdGlvbiB0byBhIHN0cmluZy4KICBSZXR1cm5zIHRoZSBmcmFtZSdzIHJlc3VtZSBhZGRy ZXNzLgogIEBlbmQgZGVmbWV0aG9kCiAgCkBAIC0zMjAyLDcgKzQzNzMsNyBAQCBpbmRleCA0MDE2 YWNjLi4xMDQyMzAzIDEwMDY0NAogIEBkZWZtZXRob2QgRnJhbWUgb2xkZXIKICBSZXR1cm4gdGhl IGZyYW1lIHRoYXQgY2FsbGVkIHRoaXMgZnJhbWUuCiAgQGVuZCBkZWZtZXRob2QKLUBAIC0xOTk1 MSwxMCArMjAzNjUsMTggQEAgUmV0dXJuIHRoZSBmcmFtZSB0aGF0IGNhbGxlZCB0aGlzIGZyYW1l LgorQEAgLTIwMDA1LDEwICsyMDQxOSwxOCBAQCBSZXR1cm4gdGhlIGZyYW1lIHRoYXQgY2FsbGVk IHRoaXMgZnJhbWUuCiAgUmV0dXJuIHRoZSBmcmFtZSBjYWxsZWQgYnkgdGhpcyBmcmFtZS4KICBA ZW5kIGRlZm1ldGhvZAogIApAQCAtMzIyMSw3ICs0MzkyLDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0 MjMwMyAxMDA2NDQKICBAZW5kIHRhYmxlCiAgCiAgQG5vZGUgSW50ZXJwcmV0ZXJzCi1AQCAtMjMz MDYsNiArMjM3MjgsOCBAQCBhY2Nlc3MgdGhpcyBmdW5jdGlvbmFsaXR5OgorQEAgLTIzMzYwLDYg KzIzNzgyLDggQEAgYWNjZXNzIHRoaXMgZnVuY3Rpb25hbGl0eToKICBAaXRlbSBAc3Ryb25ne09w ZXJhdGlvbn0KICBAdGFiIEBzdHJvbmd7RGVzY3JpcHRpb259CiAgCkBAIC0zMjMwLDcgKzQ0MDEs NyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIEBpdGVtIEBjb2Rley12YXItY3Jl YXRlfQogIEB0YWIgY3JlYXRlIGEgdmFyaWFibGUgb2JqZWN0CiAgQGl0ZW0gQGNvZGV7LXZhci1k ZWxldGV9Ci1AQCAtMjMzMzQsNiArMjM3NTgsOCBAQCBhY2Nlc3MgdGhpcyBmdW5jdGlvbmFsaXR5 OgorQEAgLTIzMzg4LDYgKzIzODEyLDggQEAgYWNjZXNzIHRoaXMgZnVuY3Rpb25hbGl0eToKICBA dGFiIHVwZGF0ZSB0aGUgdmFyaWFibGUgYW5kIGl0cyBjaGlsZHJlbgogIEBpdGVtIEBjb2Rley12 YXItc2V0LWZyb3plbn0KICBAdGFiIHNldCBmcm96ZW5lc3MgYXR0cmlidXRlCkBAIC0zMjM5LDcg KzQ0MTAsNyBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogIEBlbmQgbXVsdGl0YWJs ZQogIAogIEluIHRoZSBuZXh0IHN1YnNlY3Rpb24gd2UgZGVzY3JpYmUgZWFjaCBvcGVyYXRpb24g aW4gZGV0YWlsIGFuZCBzdWdnZXN0Ci1AQCAtMjMzNDEsNiArMjM3NjcsMjMgQEAgaG93IGl0IGNh biBiZSB1c2VkLgorQEAgLTIzMzk1LDYgKzIzODIxLDIzIEBAIGhvdyBpdCBjYW4gYmUgdXNlZC4K ICAKICBAc3ViaGVhZGluZyBEZXNjcmlwdGlvbiBBbmQgVXNlIG9mIE9wZXJhdGlvbnMgb24gVmFy aWFibGUgT2JqZWN0cwogIApAQCAtMzI1MCwyMCArNDQyMSw5MiBAQCBpbmRleCA0MDE2YWNjLi4x MDQyMzAzIDEwMDY0NAogKy1lbmFibGUtcHJldHR5LXByaW50aW5nCiArQGVuZCBzbWFsbGV4YW1w bGUKICsKLStAdmFye0dEQk59IGFsbG93cyBQeXRob24tYmFzZWQgdmlzdWFsaXplcnMgdG8gYWZm ZWN0IHRoZSBvdXRwdXQgb2YgdGhlCisrQHZhbHVle0dEQk59IGFsbG93cyBQeXRob24tYmFzZWQg dmlzdWFsaXplcnMgdG8gYWZmZWN0IHRoZSBvdXRwdXQgb2YgdGhlCiArTUkgdmFyaWFibGUgb2Jq ZWN0IGNvbW1hbmRzLiAgSG93ZXZlciwgYmVjYXVzZSB0aGVyZSB3YXMgbm8gd2F5IHRvCiAraW1w bGVtZW50IHRoaXMgaW4gYSBmdWxseSBiYWNrd2FyZC1jb21wYXRpYmxlIHdheSwgYSBmcm9udCBl bmQgbXVzdAogK3JlcXVlc3QgdGhhdCB0aGlzIGZ1bmN0aW9uYWxpdHkgYmUgZW5hYmxlZC4KICsK ICtPbmNlIHNlbnQsIHRoaXMgY29tbWFuZCBjYW5ub3QgYmUgdW5kb25lLgogKwotK05vdGUgdGhh dCBpZiBQeXRob24gc3VwcG9ydCBoYXMgbm90IGJlZW4gY29tcGlsZWQgaW50byBAdmFye0dEQk59 LAorK05vdGUgdGhhdCBpZiBQeXRob24gc3VwcG9ydCBoYXMgbm90IGJlZW4gY29tcGlsZWQgaW50 byBAdmFsdWV7R0RCTn0sCiArdGhpcyBjb21tYW5kIHdpbGwgc3RpbGwgc3VjY2VlZC4KICsKICBA c3ViaGVhZGluZyBUaGUgQGNvZGV7LXZhci1jcmVhdGV9IENvbW1hbmQKICBAZmluZGV4IC12YXIt Y3JlYXRlCiAgCi1AQCAtMjM0NzMsNyArMjM5MTYsNyBAQCBSZXR1cm5zIHRoZSBudW1iZXIgb2Yg Y2hpbGRyZW4gb2YgYSB2YXJpYWJsZSBvYmplY3QgQHZhcntuYW1lfToKK0BAIC0yMzQzNCwxNSAr MjM4NzcsNTUgQEAgYmVnaW4gd2l0aCBhIEBzYW1weyp9KSwgb3Igb25lIG9mIHRoZSBmb2xsb3dp bmc6CisgQHNhbXB7JEB2YXJ7cmVnbmFtZX19IC0tLSBhIENQVSByZWdpc3RlciBuYW1lCisgQGVu ZCBpdGVtaXplCisgCisrQSB2YXJvYmoncyBjb250ZW50cyBtYXkgYmUgcHJvdmlkZWQgYnkgYSBQ eXRob24tYmFzZWQgcHJldHR5LXByaW50ZXIuICBJbiB0aGlzCisrY2FzZSB0aGUgdmFyb2JqIGlz IGtub3duIGFzIGEgQGRmbntkeW5hbWljIHZhcm9ian0uICBEeW5hbWljIHZhcm9ianMKKytoYXZl IHNsaWdodGx5IGRpZmZlcmVudCBzZW1hbnRpY3MgaW4gc29tZSBjYXNlcy4gIElmIHRoZQorK0Bj b2Rley1lbmFibGUtcHJldHR5LXByaW50aW5nfSBjb21tYW5kIGlzIG5vdCBzZW50LCB0aGVuIEB2 YWx1ZXtHREJOfQorK3dpbGwgbmV2ZXIgY3JlYXRlIGEgZHluYW1pYyB2YXJvYmouICBUaGlzIGVu c3VyZXMgYmFja3dhcmQKKytjb21wYXRpYmlsaXR5IGZvciBleGlzdGluZyBjbGllbnRzLgorKwor IEBzdWJzdWJoZWFkaW5nIFJlc3VsdAorIAorLVRoaXMgb3BlcmF0aW9uIHJldHVybnMgdGhlIG5h bWUsIG51bWJlciBvZiBjaGlsZHJlbiBhbmQgdGhlIHR5cGUgb2YgdGhlCistb2JqZWN0IGNyZWF0 ZWQuICBUeXBlIGlzIHJldHVybmVkIGFzIGEgc3RyaW5nIGFzIHRoZSBvbmVzIGdlbmVyYXRlZCBi eQorLXRoZSBAdmFsdWV7R0RCTn0gQ0xJLiAgSWYgYSBmaXhlZCB2YXJpYWJsZSBvYmplY3QgaXMg Ym91bmQgdG8gYQorLXNwZWNpZmljIHRocmVhZCwgdGhlIHRocmVhZCBpcyBpcyBhbHNvIHByaW50 ZWQ6CisrVGhpcyBvcGVyYXRpb24gcmV0dXJucyBhdHRyaWJ1dGVzIG9mIHRoZSBuZXdseS1jcmVh dGVkIHZhcm9iai4gIFRoZXNlCisraW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bzoKKysK KytAdGFibGUgQHNhbXAKKytAaXRlbSBuYW1lCisrVGhlIG5hbWUgb2YgdGhlIHZhcm9iai4KKysK KytAaXRlbSBudW1jaGlsZAorK1RoZSBudW1iZXIgb2YgY2hpbGRyZW4gb2YgdGhlIHZhcm9iai4g IFRoaXMgbnVtYmVyIGlzIG5vdCBuZWNlc3NhcmlseQorK3JlbGlhYmxlIGZvciBhIGR5bmFtaWMg dmFyb2JqLiAgSW5zdGVhZCwgeW91IG11c3QgZXhhbWluZSB0aGUKKytAc2FtcHtoYXNfbW9yZX0g YXR0cmlidXRlLgorKworK0BpdGVtIHZhbHVlCisrVGhlIHZhcm9iaidzIHNjYWxhciB2YWx1ZS4g IEZvciBhIHZhcm9iaiB3aG9zZSB0eXBlIGlzIHNvbWUgc29ydCBvZgorK2FnZ3JlZ2F0ZSAoZS5n LiwgYSBAY29kZXtzdHJ1Y3R9KSwgb3IgZm9yIGEgZHluYW1pYyB2YXJvYmosIHRoaXMgdmFsdWUK Kyt3aWxsIG5vdCBiZSBpbnRlcmVzdGluZy4KKysKKytAaXRlbSB0eXBlCisrVGhlIHZhcm9iaidz IHR5cGUuICBUaGlzIGlzIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0eXBlLCBhcwor K3dvdWxkIGJlIHByaW50ZWQgYnkgdGhlIEB2YWx1ZXtHREJOfSBDTEkuCisrCisrQGl0ZW0gdGhy ZWFkLWlkCisrSWYgYSBmaXhlZCB2YXJpYWJsZSBvYmplY3QgaXMgYm91bmQgdG8gYSBzcGVjaWZp YyB0aHJlYWQsIHRoZW4gdGhpcyBpcworK3RoZSB0aHJlYWQncyBpZGVudGlmaWVyLgorKworK0Bp dGVtIGhhc19tb3JlCisrRm9yIGEgZHluYW1pYyB2YXJvYmosIHRoaXMgaW5kaWNhdGVzIHdoZXRo ZXIgdGhlcmUgYXBwZWFyIHRvIGJlIGFueQorK2NoaWxkcmVuIGF2YWlsYWJsZS4gIEZvciBhIG5v bi1keW5hbWljIHZhcm9iaiwgdGhpcyB3aWxsIGJlIDAuCisrCisrQGl0ZW0gZHluYW1pYworK1Ro aXMgYXR0cmlidXRlIHdpbGwgYmUgcHJlc2VudCBhbmQgaGF2ZSB0aGUgdmFsdWUgQHNhbXB7MX0g aWYgdGhlCisrdmFyb2JqIGlzIGEgZHluYW1pYyB2YXJvYmouICBJZiB0aGUgdmFyb2JqIGlzIG5v dCBhIGR5bmFtaWMgdmFyb2JqLAorK3RoZW4gdGhpcyBhdHRyaWJ1dGUgd2lsbCBub3QgYmUgcHJl c2VudC4KKytAZW5kIHRhYmxlCisrCisrVHlwaWNhbCBvdXRwdXQgd2lsbCBsb29rIGxpa2UgdGhp czoKKyAKKyBAc21hbGxleGFtcGxlCistIG5hbWU9IkB2YXJ7bmFtZX0iLG51bWNoaWxkPSJAdmFy e059Iix0eXBlPSJAdmFye3R5cGV9Iix0aHJlYWQtaWQ9IkB2YXJ7TX0iCisrIG5hbWU9IkB2YXJ7 bmFtZX0iLG51bWNoaWxkPSJAdmFye059Iix0eXBlPSJAdmFye3R5cGV9Iix0aHJlYWQtaWQ9IkB2 YXJ7TX0iLAorKyAgaGFzX21vcmU9IkB2YXJ7aGFzX21vcmV9IgorIEBlbmQgc21hbGxleGFtcGxl CisgCisgCitAQCAtMjM1MjAsNiArMjQwMDMsMTAgQEAgUmV0dXJucyB0aGUgbnVtYmVyIG9mIGNo aWxkcmVuIG9mIGEgdmFyaWFibGUgb2JqZWN0IEB2YXJ7bmFtZX06CisgIG51bWNoaWxkPUB2YXJ7 bn0KKyBAZW5kIHNtYWxsZXhhbXBsZQorIAorK05vdGUgdGhhdCB0aGlzIG51bWJlciBpcyBub3Qg Y29tcGxldGVseSByZWxpYWJsZSBmb3IgYSBkeW5hbWljIHZhcm9iai4KKytJdCB3aWxsIHJldHVy biB0aGUgY3VycmVudCBudW1iZXIgb2YgY2hpbGRyZW4sIGJ1dCBtb3JlIGNoaWxkcmVuIG1heQor K2JlIGF2YWlsYWJsZS4KKysKKyAKKyBAc3ViaGVhZGluZyBUaGUgQGNvZGV7LXZhci1saXN0LWNo aWxkcmVufSBDb21tYW5kCisgQGZpbmRleCAtdmFyLWxpc3QtY2hpbGRyZW4KK0BAIC0yMzUyNyw3 ICsyNDAxNCw3IEBAIFJldHVybnMgdGhlIG51bWJlciBvZiBjaGlsZHJlbiBvZiBhIHZhcmlhYmxl IG9iamVjdCBAdmFye25hbWV9OgogIEBzdWJzdWJoZWFkaW5nIFN5bm9wc2lzCiAgCiAgQHNtYWxs ZXhhbXBsZQpAQCAtMzI3Miw3ICs0NTE1LDcgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2 NDQKICBAZW5kIHNtYWxsZXhhbXBsZQogIEBhbmNob3J7LXZhci1saXN0LWNoaWxkcmVufQogIAot QEAgLTIzNDg2LDYgKzIzOTI5LDEyIEBAIHZhbHVlczsgYW5kIGlmIGl0IGlzIDIgb3IgQGNvZGV7 LS1zaW1wbGUtdmFsdWVzfSBwcmludCB0aGUgbmFtZSBhbmQKK0BAIC0yMzU0MCw2ICsyNDAyNywy MiBAQCB2YWx1ZXM7IGFuZCBpZiBpdCBpcyAyIG9yIEBjb2Rley0tc2ltcGxlLXZhbHVlc30gcHJp bnQgdGhlIG5hbWUgYW5kCiAgdmFsdWUgZm9yIHNpbXBsZSBkYXRhIHR5cGVzIGFuZCBqdXN0IHRo ZSBuYW1lIGZvciBhcnJheXMsIHN0cnVjdHVyZXMKICBhbmQgdW5pb25zLgogIApAQCAtMzI4Miwx NiArNDUyNSw0NiBAQCBpbmRleCA0MDE2YWNjLi4xMDQyMzAzIDEwMDY0NAogK2F0IEB2YXJ7ZnJv bX0gKHplcm8tYmFzZWQpIGFuZCBlbmRpbmcganVzdCBiZWZvcmUgQHZhcnt0b30gd2lsbCBiZQog K3JlcG9ydGVkLgogKworK0lmIGEgY2hpbGQgcmFuZ2UgaXMgcmVxdWVzdGVkLCBpdCB3aWxsIG5v dCBhZmZlY3QgdGhlIHJhbmdlIG9mCisrY2hpbGRyZW4gcmVwb3J0ZWQgYnkgYSBmdXR1cmUgY2Fs bCB0byBAY29kZXstdmFyLXVwZGF0ZX0uICBGb3IgdGhpcywKKyt5b3UgbXVzdCBpbnN0ZWFkIHVz ZSBAY29kZXstdmFyLXNldC11cGRhdGUtcmFuZ2V9LiAgVGhlIGludGVudCBvZiB0aGlzCisrYXBw cm9hY2ggaXMgdG8gZW5hYmxlIGEgZnJvbnQgZW5kIHRvIGltcGxlbWVudCBhbnkgdXBkYXRlIGFw cHJvYWNoIGl0CisrbGlrZXM7IGZvciBleGFtcGxlLCBzY3JvbGxpbmcgYSB2aWV3IG1heSBjYXVz ZSB0aGUgZnJvbnQgZW5kIHRvCisrcmVxdWVzdCBtb3JlIGNoaWxkcmVuIHdpdGggQGNvZGV7LXZh ci1saXN0LWNoaWxkcmVufSwgYW5kIHRoZW4gdGhlCisrZnJvbnQgZW5kIGNvdWxkIGNhbGwgQGNv ZGV7LXZhci1zZXQtdXBkYXRlLXJhbmdlfSB3aXRoIGEgZGlmZmVyZW50CisrcmFuZ2UgdG8gZW5z dXJlIHRoYXQgZnV0dXJlIHVwZGF0ZXMgYXJlIHJlc3RyaWN0ZWQgdG8ganVzdCB0aGUgdmlzaWJs ZQorK2l0ZW1zLgorKwogIEZvciBlYWNoIGNoaWxkIHRoZSBmb2xsb3dpbmcgcmVzdWx0cyBhcmUg cmV0dXJuZWQ6CiAgCiAgQHRhYmxlIEB2YXIKLUBAIC0yMzUxOSw2ICsyMzk2OCwxNCBAQCBPdGhl cndpc2UgdGhpcyByZXN1bHQgaXMgbm90IHByZXNlbnQuCitAQCAtMjM1NTYsOCArMjQwNTksMTMg QEAgZGVzaWduYXRlIGFjY2VzcyBxdWFsaWZpZXJzLiAgRm9yIHRoZXNlIHBzZXVkbyBjaGlsZHJl biBAdmFye2V4cH0gaXMKKyBAc2FtcHtwdWJsaWN9LCBAc2FtcHtwcml2YXRlfSwgb3IgQHNhbXB7 cHJvdGVjdGVkfS4gIEluIHRoaXMgY2FzZSB0aGUKKyB0eXBlIGFuZCB2YWx1ZSBhcmUgbm90IHBy ZXNlbnQuCisgCisrRm9yIGEgZHluYW1pYyB2YXJvYmosIHRoaXMgdmFsdWUgY2Fubm90IHJlbGlh Ymx5IGJlIHVzZWQgdG8gZm9ybSBhbgorK2V4cHJlc3Npb24uICBBbHNvLCBhIGR5bmFtaWMgdmFy b2JqIHdpbGwgbm90IHJlcG9ydCB0aGUgYWNjZXNzCisrcXVhbGlmeWluZyBwc2V1ZG8tY2hpbGRy ZW4sIHJlZ2FyZGxlc3Mgb2YgdGhlIGxhbmd1YWdlLgorKworIEBpdGVtIG51bWNoaWxkCistTnVt YmVyIG9mIGNoaWxkcmVuIHRoaXMgY2hpbGQgaGFzLgorK051bWJlciBvZiBjaGlsZHJlbiB0aGlz IGNoaWxkIGhhcy4gIEZvciBhIGR5bmFtaWMgdmFyb2JqLCB0aGlzIHdpbGwgYmUKKyswLgorIAor IEBpdGVtIHR5cGUKKyBUaGUgdHlwZSBvZiB0aGUgY2hpbGQuCitAQCAtMjM1NzMsNiArMjQwODEs MTkgQEAgT3RoZXJ3aXNlIHRoaXMgcmVzdWx0IGlzIG5vdCBwcmVzZW50LgogIElmIHRoZSB2YXJp YWJsZSBvYmplY3QgaXMgZnJvemVuLCB0aGlzIHZhcmlhYmxlIHdpbGwgYmUgcHJlc2VudCB3aXRo IGEgdmFsdWUgb2YgMS4KICBAZW5kIHRhYmxlCiAgCiArVGhlIHJlc3VsdCBtYXkgaGF2ZSBpdHMg b3duIGF0dHJpYnV0ZXM6CiArCi0rQHRhYmxlIEB2YXIKKytAdGFibGUgQHNhbXAKKytAaXRlbSBk aXNwbGF5aGludAorK0EgZHluYW1pYyB2YXJvYmogY2FuIHN1cHBseSBhIGRpc3BsYXkgaGludCB0 byB0aGUgZnJvbnQgZW5kLiAgVGhlCisrY29tZXMgZGlyZWN0bHkgZnJvbSB0aGUgUHl0aG9uIHBy ZXR0eS1wcmludGVyIG9iamVjdCdzCisrQGNvZGV7ZGlzcGxheV9oaW50fSBtZXRob2QuICBAeHJl ZntQcmV0dHkgUHJpbnRpbmd9LgorKwogK0BpdGVtIGhhc19tb3JlCiArVGhpcyBpcyBhbiBpbnRl Z2VyIGF0dHJpYnV0ZSB3aGljaCBpcyBub256ZXJvIGlmIHRoZXJlIGFyZSBjaGlsZHJlbgogK3Jl bWFpbmluZyBhZnRlciB0aGUgZW5kIG9mIHRoZSBzZWxlY3RlZCByYW5nZS4KQEAgLTMzMDAsMTcg KzQ1NzMsODYgQEAgaW5kZXggNDAxNmFjYy4uMTA0MjMwMyAxMDA2NDQKICBAc3Vic3ViaGVhZGlu ZyBFeGFtcGxlCiAgCiAgQHNtYWxsZXhhbXBsZQotQEAgLTIzNzAwLDYgKzI0MTU3LDkgQEAgV2l0 aCB0aGUgQHNhbXB7Kn0gcGFyYW1ldGVyLCBpZiBhIHZhcmlhYmxlIG9iamVjdCBpcyBib3VuZCB0 byBhCitAQCAtMjM2NDksNiArMjQxNzAsOSBAQCByZXN1bHQgY2FuIGJlIHVzZWQgb25seSBmb3Ig VUkgcHJlc2VudGF0aW9uLiAgVHlwaWNhbCB1c2Ugb2YKKyB0aGUgQGNvZGV7LXZhci1pbmZvLXBh dGgtZXhwcmVzc2lvbn0gY29tbWFuZCBpcyBjcmVhdGluZyBhIAorIHdhdGNocG9pbnQgZnJvbSBh IHZhcmlhYmxlIG9iamVjdC4KKyAKKytUaGlzIGNvbW1hbmQgaXMgY3VycmVudGx5IG5vdCB2YWxp ZCBmb3IgY2hpbGRyZW4gb2YgYSBkeW5hbWljIHZhcm9iaiwKKythbmQgd2lsbCBnaXZlIGFuIGVy cm9yIHdoZW4gaW52b2tlZCBvbiBvbmUuCisrCisgRm9yIGV4YW1wbGUsIHN1cHBvc2UgQGNvZGV7 Q30gaXMgYSBDQHR7Kyt9IGNsYXNzLCBkZXJpdmVkIGZyb20gY2xhc3MKKyBAY29kZXtCYXNlfSwg YW5kIHRoYXQgdGhlIEBjb2Rle0Jhc2V9IGNsYXNzIGhhcyBhIG1lbWJlciBjYWxsZWQKKyBAY29k ZXttX3NpemV9LiAgQXNzdW1lIGEgdmFyaWFibGUgQGNvZGV7Y30gaXMgaGFzIHRoZSB0eXBlIG9m CitAQCAtMjM3NTQsNiArMjQyNzgsNjggQEAgV2l0aCB0aGUgQHNhbXB7Kn0gcGFyYW1ldGVyLCBp ZiBhIHZhcmlhYmxlIG9iamVjdCBpcyBib3VuZCB0byBhCiAgY3VycmVudGx5IHJ1bm5pbmcgdGhy ZWFkLCBpdCB3aWxsIG5vdCBiZSB1cGRhdGVkLCB3aXRob3V0IGFueQogIGRpYWdub3N0aWMuCiAg CiArSWYgQGNvZGV7LXZhci1zZXQtdXBkYXRlLXJhbmdlfSB3YXMgcHJldmlvdXNseSB1c2VkIG9u IGEgdmFyb2JqLCB0aGVuCiArb25seSB0aGUgc2VsZWN0ZWQgcmFuZ2Ugb2YgY2hpbGRyZW4gd2ls bCBiZSByZXBvcnRlZC4KICsKKytAY29kZXstdmFyLXVwZGF0ZX0gcmVwb3J0cyBhbGwgdGhlIGNo YW5nZWQgdmFyb2JqcyBpbiBhIHR1cGxlIG5hbWVkCisrQHNhbXB7Y2hhbmdlbGlzdH0uCisrCisr RWFjaCBpdGVtIGluIHRoZSBjaGFuZ2UgbGlzdCBpcyBpdHNlbGYgYSB0dXBsZSBob2xkaW5nOgor KworK0B0YWJsZSBAc2FtcAorK0BpdGVtIG5hbWUKKytUaGUgbmFtZSBvZiB0aGUgdmFyb2JqLgor KworK0BpdGVtIHZhbHVlCisrSWYgdmFsdWVzIHdlcmUgcmVxdWVzdGVkIGZvciB0aGlzIHVwZGF0 ZSwgdGhlbiB0aGlzIGZpZWxkIHdpbGwgYmUKKytwcmVzZW50IGFuZCB3aWxsIGhvbGQgdGhlIHZh bHVlIG9mIHRoZSB2YXJvYmouCisrCisrQGl0ZW0gaW5fc2NvcGUKKytUaGlzIGlzIGEgc3RyaW5n LCBlaXRoZXIgQHNhbXB7ZmFsc2V9IGlmIHRoZSB2YXJvYmogaXMgbm90IGluIHNjb3BlLAorK29y IEBzYW1we3RydWV9IGlmIGl0IGlzIGluIHNjb3BlLgorKworK0BpdGVtIHR5cGVfY2hhbmdlZAor K1RoaXMgaXMgb25seSBwcmVzZW50IGlmIHRoZSB2YXJvYmogaXMgc3RpbGwgdmFsaWQuICBJZiB0 aGUgdHlwZQorK2NoYW5nZWQsIHRoZW4gdGhpcyB3aWxsIGJlIHRoZSBzdHJpbmcgQHNhbXB7dHJ1 ZX07IG90aGVyd2lzZSBpdCB3aWxsCisrYmUgQHNhbXB7ZmFsc2V9LgorKworK0BpdGVtIG5ld190 eXBlCisrSWYgdGhlIHZhcm9iaidzIHR5cGUgY2hhbmdlZCwgdGhlbiB0aGlzIGZpZWxkIHdpbGwg YmUgcHJlc2VudCBhbmQgd2lsbAorK2hvbGQgdGhlIG5ldyB0eXBlLgorKworK0BpdGVtIG5ld19u dW1fY2hpbGRyZW4KKytGb3IgYSBkeW5hbWljIHZhcm9iaiwgaWYgdGhlIG51bWJlciBvZiBjaGls ZHJlbiBjaGFuZ2VkLCBvciBpZiB0aGUKKyt0eXBlIGNoYW5nZWQsIHRoaXMgd2lsbCBiZSB0aGUg bmV3IG51bWJlciBvZiBjaGlsZHJlbi4KKysKKytUaGUgQHNhbXB7bnVtY2hpbGR9IGZpZWxkIGlu IG90aGVyIHZhcm9iaiByZXNwb25zZXMgaXMgZ2VuZXJhbGx5IG5vdAorK3ZhbGlkIGZvciBhIGR5 bmFtaWMgdmFyb2JqIC0tIGl0IHdpbGwgc2hvdyB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHRoYXQK KytAdmFsdWV7R0RCTn0ga25vd3MgYWJvdXQsIGJ1dCBiZWNhdXNlIGR5bmFtaWMgdmFyb2JqcyBs YXppbHkKKytpbnN0YW50aWF0ZSB0aGVpciBjaGlsZHJlbiwgdGhpcyB3aWxsIG5vdCByZWZsZWN0 IHRoZSBudW1iZXIgb2YKKytjaGlsZHJlbiB3aGljaCBtYXkgYmUgYXZhaWxhYmxlLgorKworK1Ro ZSBAc2FtcHtuZXdfbnVtX2NoaWxkcmVufSBhdHRyaWJ1dGUgb25seSByZXBvcnRzIGNoYW5nZXMg dG8gdGhlCisrbnVtYmVyIG9mIGNoaWxkcmVuIGtub3duIGJ5IEB2YWx1ZXtHREJOfS4gIFRoaXMg aXMgdGhlIG9ubHkgd2F5IHRvCisrZGV0ZWN0IHdoZXRoZXIgYW4gdXBkYXRlIGhhcyByZW1vdmVk IGNoaWxkcmVuICh3aGljaCBuZWNlc3NhcmlseSBjYW4KKytvbmx5IGhhcHBlbiBhdCB0aGUgZW5k IG9mIHRoZSB1cGRhdGUgcmFuZ2UpLgorKworK0BpdGVtIGRpc3BsYXloaW50CisrVGhlIGRpc3Bs YXkgaGludCwgaWYgYW55LgorKworK0BpdGVtIGhhc19tb3JlCisrVGhpcyBpcyBhbiBpbnRlZ2Vy IHZhbHVlLCB3aGljaCB3aWxsIGJlIDEgaWYgdGhlcmUgYXJlIG1vcmUgY2hpbGRyZW4KKythdmFp bGFibGUgb3V0c2lkZSB0aGUgdmFyb2JqJ3MgdXBkYXRlIHJhbmdlLgorKworK0BpdGVtIGR5bmFt aWMKKytUaGlzIGF0dHJpYnV0ZSB3aWxsIGJlIHByZXNlbnQgYW5kIGhhdmUgdGhlIHZhbHVlIEBz YW1wezF9IGlmIHRoZQorK3Zhcm9iaiBpcyBhIGR5bmFtaWMgdmFyb2JqLiAgSWYgdGhlIHZhcm9i aiBpcyBub3QgYSBkeW5hbWljIHZhcm9iaiwKKyt0aGVuIHRoaXMgYXR0cmlidXRlIHdpbGwgbm90 IGJlIHByZXNlbnQuCisrCisrQGl0ZW0gbmV3X2NoaWxkcmVuCisrSWYgbmV3IGNoaWxkcmVuIHdl cmUgYWRkZWQgdG8gYSBkeW5hbWljIHZhcm9iaiB3aXRoaW4gdGhlIHNlbGVjdGVkCisrdXBkYXRl IHJhbmdlIChhcyBzZXQgYnkgQGNvZGV7LXZhci1zZXQtdXBkYXRlLXJhbmdlfSksIHRoZW4gdGhl eSB3aWxsCisrYmUgbGlzdGVkIGluIHRoaXMgYXR0cmlidXRlLgorK0BlbmQgdGFibGUKKysKICBA c3Vic3ViaGVhZGluZyBFeGFtcGxlCiAgCiAgQHNtYWxsZXhhbXBsZQotQEAgLTIzNzY3LDYgKzI0 MjI3LDMyIEBAIFVuZnJlZXppbmcgYSB2YXJpYWJsZSBkb2VzIG5vdCB1cGRhdGUgaXQsIG9ubHkg c3Vic2VxdWVudAorQEAgLTIzODIxLDYgKzI0NDA3LDMyIEBAIFVuZnJlZXppbmcgYSB2YXJpYWJs ZSBkb2VzIG5vdCB1cGRhdGUgaXQsIG9ubHkgc3Vic2VxdWVudAogIChnZGIpCiAgQGVuZCBzbWFs bGV4YW1wbGUKICAKQEAgLTMzNDQsNyArNDY4Niw3IEBAIGluZGV4IDQwMTZhY2MuLjEwNDIzMDMg MTAwNjQ0CiAgQGZpbmRleCAtdmFyLXNldC12aXN1YWxpemVyCiAgQGFuY2hvcnstdmFyLXNldC12 aXN1YWxpemVyfQogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiaW50LnRleGluZm8gYi9nZGIvZG9j L2dkYmludC50ZXhpbmZvCi1pbmRleCBiMWMwNDUyLi5kYTI0Yjk4IDEwMDY0NAoraW5kZXggZTcw NmNhYS4uNmIwNTVkMyAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2RiaW50LnRleGluZm8KICsrKyBi L2dkYi9kb2MvZ2RiaW50LnRleGluZm8KIEBAIC0yMTA2LDYgKzIxMDYsMTggQEAgdGltZSwgYW5k IHNvIHdlIGF0dGVtcHQgdG8gaGFuZGxlIHN5bWJvbHMgaW5jcmVtZW50YWxseS4gIEZvciBpbnN0 YW5jZSwKQEAgLTM0ODksNyArNDgzMSw3IEBAIGluZGV4IDQ5ODRmMzEuLmZjZjFiNWQgMTAwNjQ0 CiAgVGhpcyBvYnNlcnZlciBpcyB1c2VkIGZvciBpbnRlcm5hbCB0ZXN0aW5nLiAgRG8gbm90IHVz ZS4gIAogIFNlZSB0ZXN0c3VpdGUvZ2RiLmdkYi9vYnNlcnZlci5leHAuCiBkaWZmIC0tZ2l0IGEv Z2RiL2R3YXJmMi1mcmFtZS5jIGIvZ2RiL2R3YXJmMi1mcmFtZS5jCi1pbmRleCA0MjdmNThmLi5l NjZmMDA3IDEwMDY0NAoraW5kZXggZjljYTA2Ny4uOTc5YjY0OSAxMDA2NDQKIC0tLSBhL2dkYi9k d2FyZjItZnJhbWUuYwogKysrIGIvZ2RiL2R3YXJmMi1mcmFtZS5jCiBAQCAtMzgsNiArMzgsNyBA QApAQCAtMzUwMCwyOCArNDg0Miw3IEBAIGluZGV4IDQyN2Y1OGYuLmU2NmYwMDcgMTAwNjQ0CiAg CiAgc3RydWN0IGNvbXBfdW5pdDsKICAKLUBAIC0zMTAsNiArMzExLDEzIEBAIG5vX2dldF9mcmFt ZV9iYXNlICh2b2lkICpiYXRvbiwgZ2RiX2J5dGUgKipzdGFydCwgc2l6ZV90ICpsZW5ndGgpCi0g fQotIAotIHN0YXRpYyBDT1JFX0FERFIKLStub19nZXRfZnJhbWVfY2ZhICh2b2lkICpiYXRvbikK LSt7Ci0rICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAotKwkJICBfKCJTdXBw b3J0IGZvciBEV19PUF9jYWxsX2ZyYW1lX2NmYSBpcyB1bmltcGxlbWVudGVkIikpOwotK30KLSsK LStzdGF0aWMgQ09SRV9BRERSCi0gbm9fZ2V0X3Rsc19hZGRyZXNzICh2b2lkICpiYXRvbiwgQ09S RV9BRERSIG9mZnNldCkKLSB7Ci0gICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9f LAotQEAgLTM2MywxNCArMzcxLDIyIEBAIGV4ZWN1dGVfc3RhY2tfb3AgKGdkYl9ieXRlICpleHAs IFVMT05HRVNUIGxlbiwgaW50IGFkZHJfc2l6ZSwKLSAgIGN0eC0+cmVhZF9yZWcgPSByZWFkX3Jl ZzsKLSAgIGN0eC0+cmVhZF9tZW0gPSByZWFkX21lbTsKLSAgIGN0eC0+Z2V0X2ZyYW1lX2Jhc2Ug PSBub19nZXRfZnJhbWVfYmFzZTsKLSsgIGN0eC0+Z2V0X2ZyYW1lX2NmYSA9IG5vX2dldF9mcmFt ZV9jZmE7Ci0gICBjdHgtPmdldF90bHNfYWRkcmVzcyA9IG5vX2dldF90bHNfYWRkcmVzczsKLSAK LSAgIGR3YXJmX2V4cHJfcHVzaCAoY3R4LCBpbml0aWFsKTsKK0BAIC0zNzksOCArMzgwLDE1IEBA IGV4ZWN1dGVfc3RhY2tfb3AgKGdkYl9ieXRlICpleHAsIFVMT05HRVNUIGxlbiwgaW50IGFkZHJf c2l6ZSwKICAgIGR3YXJmX2V4cHJfZXZhbCAoY3R4LCBleHAsIGxlbik7CiAgICByZXN1bHQgPSBk d2FyZl9leHByX2ZldGNoIChjdHgsIDApOwogIApAQCAtMzUzOCwyNCArNDg1OSw3IEBAIGluZGV4 IDQyN2Y1OGYuLmU2NmYwMDcgMTAwNjQ0CiAgCiAgICBkb19jbGVhbnVwcyAob2xkX2NoYWluKTsK ICAKLUBAIC0xMjUwLDYgKzEyNjYsMTYgQEAgZHdhcmYyX2ZyYW1lX2Jhc2Vfc25pZmZlciAoc3Ry dWN0IGZyYW1lX2luZm8gKnRoaXNfZnJhbWUpCi0gCi0gICByZXR1cm4gTlVMTDsKLSB9Ci0rCi0r Q09SRV9BRERSCi0rZHdhcmYyX2ZyYW1lX2NmYSAoc3RydWN0IGZyYW1lX2luZm8gKnRoaXNfZnJh bWUpCi0rewotKyAgd2hpbGUgKGdldF9mcmFtZV90eXBlICh0aGlzX2ZyYW1lKSA9PSBJTkxJTkVf RlJBTUUpCi0rICAgIHRoaXNfZnJhbWUgPSBnZXRfcHJldl9mcmFtZSAodGhpc19mcmFtZSk7Ci0r ICBpZiAoISBmcmFtZV91bndpbmRlcl9pcyAodGhpc19mcmFtZSwgJmR3YXJmMl9mcmFtZV91bndp bmQpKQotKyAgICBlcnJvciAoXygiY2FuJ3QgY29tcHV0ZSBDRkEgZm9yIHRoaXMgZnJhbWUiKSk7 Ci0rICByZXR1cm4gZ2V0X2ZyYW1lX2Jhc2UgKHRoaXNfZnJhbWUpOwotK30KLSAMCi0gY29uc3Qg c3RydWN0IG9iamZpbGVfZGF0YSAqZHdhcmYyX2ZyYW1lX29iamZpbGVfZGF0YTsKLSAKLUBAIC0x NTM5LDYgKzE1NjUsMTQgQEAgZHdhcmYyX2ZyYW1lX2ZpbmRfZmRlIChDT1JFX0FERFIgKnBjKQor QEAgLTE1NjYsNiArMTU3NCwxNCBAQCBkd2FyZjJfZnJhbWVfZmluZF9mZGUgKENPUkVfQUREUiAq cGMpCiAgICAgICAgQ09SRV9BRERSIG9mZnNldDsKICAgICAgICBDT1JFX0FERFIgc2Vla19wYzsK ICAKQEAgLTM1NzAsMjEgKzQ4NzQsOCBAQCBpbmRleCA0MjdmNThmLi5lNjZmMDA3IDEwMDY0NAog ICAgICAgIGZkZV90YWJsZSA9IG9iamZpbGVfZGF0YSAob2JqZmlsZSwgZHdhcmYyX2ZyYW1lX29i amZpbGVfZGF0YSk7CiAgICAgICAgaWYgKGZkZV90YWJsZSA9PSBOVUxMKQogIAljb250aW51ZTsK LWRpZmYgLS1naXQgYS9nZGIvZHdhcmYyLWZyYW1lLmggYi9nZGIvZHdhcmYyLWZyYW1lLmgKLWlu ZGV4IGIyMDM2NjEuLmRkMDNkNTkgMTAwNjQ0Ci0tLS0gYS9nZGIvZHdhcmYyLWZyYW1lLmgKLSsr KyBiL2dkYi9kd2FyZjItZnJhbWUuaAotQEAgLTExOCw0ICsxMTgsOCBAQCBleHRlcm4gY29uc3Qg c3RydWN0IGZyYW1lX2Jhc2UgKgotIAotIHZvaWQgZHdhcmYyX2ZyYW1lX2J1aWxkX2luZm8gKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlKTsKLSAKLSsvKiBDb21wdXRlIHRoZSBEV0FSRiBDRkEgZm9y IGEgZnJhbWUuICAqLwotKwotK0NPUkVfQUREUiBkd2FyZjJfZnJhbWVfY2ZhIChzdHJ1Y3QgZnJh bWVfaW5mbyAqdGhpc19mcmFtZSk7Ci0rCi0gI2VuZGlmIC8qIGR3YXJmMi1mcmFtZS5oICovCiBk aWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmV4cHIuYyBiL2dkYi9kd2FyZjJleHByLmMKLWluZGV4IDI3 MjEwNjUuLjA2NDRiNDYgMTAwNjQ0CitpbmRleCA2NDAxZTcyLi4wNjQ0YjQ2IDEwMDY0NAogLS0t IGEvZ2RiL2R3YXJmMmV4cHIuYwogKysrIGIvZ2RiL2R3YXJmMmV4cHIuYwogQEAgLTEyNSw4ICsx MjUsNyBAQCBkd2FyZl9leHByX2ZldGNoIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgs IGludCBuKQpAQCAtMzcxMCwxOCArNTAwMSw3IEBAIGluZGV4IDI3MjEwNjUuLjA2NDRiNDYgMTAw NjQ0CiAgCSAgfQogIAkgIGJyZWFrOwogIAljYXNlIERXX09QX2R1cDoKLUBAIC03MTYsNiArNzU2 LDEwIEBAIGV4ZWN1dGVfc3RhY2tfb3AgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwK LSAJICB9Ci0gCSAgYnJlYWs7Ci0gCi0rCWNhc2UgRFdfT1BfY2FsbF9mcmFtZV9jZmE6Ci0rCSAg cmVzdWx0ID0gKGN0eC0+Z2V0X2ZyYW1lX2NmYSkgKGN0eC0+YmF0b24pOwotKwkgIGJyZWFrOwot KwotIAljYXNlIERXX09QX0dOVV9wdXNoX3Rsc19hZGRyZXNzOgotIAkgIC8qIFZhcmlhYmxlIGlz IGF0IGEgY29uc3RhbnQgb2Zmc2V0IGluIHRoZSB0aHJlYWQtbG9jYWwKLSAJICBzdG9yYWdlIGJs b2NrIGludG8gdGhlIG9iamZpbGUgZm9yIHRoZSBjdXJyZW50IHRocmVhZCBhbmQKLUBAIC03NTQs MTIgKzc5OCwxMyBAQCBleGVjdXRlX3N0YWNrX29wIChzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0 ICpjdHgsCitAQCAtNzU4LDEyICs3OTgsMTMgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3 YXJmX2V4cHJfY29udGV4dCAqY3R4LAogIAogICAgICAgICAgICAgIC8qIFJlY29yZCB0aGUgcGll Y2UuICAqLwogICAgICAgICAgICAgIG9wX3B0ciA9IHJlYWRfdWxlYjEyOCAob3BfcHRyLCBvcF9l bmQsICZzaXplKTsKQEAgLTM3NDAsNyArNTAyMCw3IEBAIGluZGV4IDI3MjEwNjUuLjA2NDRiNDYg MTAwNjQ0CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZ290byBub19wdXNoOwogIAotQEAgLTc3 MSw2ICs4MTYsMTMgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJmX2V4cHJfY29udGV4 dCAqY3R4LAorQEAgLTc3NSw2ICs4MTYsMTMgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3 YXJmX2V4cHJfY29udGV4dCAqY3R4LAogIAkgIGN0eC0+aW5pdGlhbGl6ZWQgPSAwOwogIAkgIGdv dG8gbm9fcHVzaDsKICAKQEAgLTM3NTUsNyArNTAzNSw3IEBAIGluZGV4IDI3MjEwNjUuLjA2NDRi NDYgMTAwNjQ0CiAgCSAgZXJyb3IgKF8oIlVuaGFuZGxlZCBkd2FyZiBleHByZXNzaW9uIG9wY29k ZSAweCV4IiksIG9wKTsKICAJfQogZGlmZiAtLWdpdCBhL2dkYi9kd2FyZjJleHByLmggYi9nZGIv ZHdhcmYyZXhwci5oCi1pbmRleCAyMzA2ZTQ5Li41OTdjMmRlIDEwMDY0NAoraW5kZXggNmIzYTA2 OC4uNTk3YzJkZSAxMDA2NDQKIC0tLSBhL2dkYi9kd2FyZjJleHByLmgKICsrKyBiL2dkYi9kd2Fy ZjJleHByLmgKIEBAIC0yMyw2ICsyMywxOSBAQApAQCAtMzc3OCwxNyArNTA1OCw3IEBAIGluZGV4 IDIzMDZlNDkuLjU5N2MyZGUgMTAwNjQ0CiAgLyogVGhlIGV4cHJlc3Npb24gZXZhbHVhdG9yIHdv cmtzIHdpdGggYSBkd2FyZl9leHByX2NvbnRleHQsIGRlc2NyaWJpbmcKICAgICBpdHMgY3VycmVu dCBzdGF0ZSBhbmQgaXRzIGNhbGxiYWNrcy4gICovCiAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4 dAotQEAgLTU1LDYgKzY4LDkgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dAotICAgICAgZXhw cmVzc2lvbiBldmFsdWF0aW9uIGlzIGNvbXBsZXRlLiAgKi8KLSAgIHZvaWQgKCpnZXRfZnJhbWVf YmFzZSkgKHZvaWQgKmJhdG9uLCBnZGJfYnl0ZSAqKnN0YXJ0LCBzaXplX3QgKmxlbmd0aCk7Ci0g Ci0rICAvKiBSZXR1cm4gdGhlIENGQSBmb3IgdGhlIGZyYW1lLiAgKi8KLSsgIENPUkVfQUREUiAo KmdldF9mcmFtZV9jZmEpICh2b2lkICpiYXRvbik7Ci0rCi0gICAvKiBSZXR1cm4gdGhlIHRocmVh ZC1sb2NhbCBzdG9yYWdlIGFkZHJlc3MgZm9yCi0gICAgICBEV19PUF9HTlVfcHVzaF90bHNfYWRk cmVzcy4gICovCi0gICBDT1JFX0FERFIgKCpnZXRfdGxzX2FkZHJlc3MpICh2b2lkICpiYXRvbiwg Q09SRV9BRERSIG9mZnNldCk7Ci1AQCAtNjcsMTkgKzgzLDIzIEBAIHN0cnVjdCBkd2FyZl9leHBy X2NvbnRleHQKK0BAIC03MCwxOSArODMsMjMgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dAog ICAgICAgVGhlIHJlc3VsdCBtdXN0IGJlIGxpdmUgdW50aWwgdGhlIGN1cnJlbnQgZXhwcmVzc2lv biBldmFsdWF0aW9uCiAgICAgICBpcyBjb21wbGV0ZS4gICovCiAgICB1bnNpZ25lZCBjaGFyICoo KmdldF9zdWJyKSAodm9pZCAqYmF0b24sIG9mZl90IG9mZnNldCwgc2l6ZV90ICpsZW5ndGgpOwpA QCAtMzgxNiw3ICs1MDg2LDcgQEAgaW5kZXggMjMwNmU0OS4uNTk3YzJkZSAxMDA2NDQKICAKICAg IC8qIEluaXRpYWxpemF0aW9uIHN0YXR1cyBvZiB2YXJpYWJsZTogTm9uLXplcm8gaWYgdmFyaWFi bGUgaGFzIGJlZW4KICAgICAgIGluaXRpYWxpemVkOyB6ZXJvIG90aGVyd2lzZS4gICovCi1AQCAt OTAsOSArMTEwLDkgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dAorQEAgLTkzLDkgKzExMCw5 IEBAIHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQKICAKICAgICAgIEVhY2ggdGltZSBEV19PUF9w aWVjZSBpcyBleGVjdXRlZCwgd2UgYWRkIGEgbmV3IGVsZW1lbnQgdG8gdGhlCiAgICAgICBlbmQg b2YgdGhpcyBhcnJheSwgcmVjb3JkaW5nIHRoZSBjdXJyZW50IHRvcCBvZiB0aGUgc3RhY2ssIHRo ZQpAQCAtMzgyOSw3ICs1MDk5LDcgQEAgaW5kZXggMjMwNmU0OS4uNTk3YzJkZSAxMDA2NDQKICAK ICAgICAgIFRoZSBEd2FyZiBzcGVjIGRvZXNuJ3Qgc2F5IHdoZXRoZXIgRFdfT1BfcGllY2UgcG9w cyB0aGUgdG9wIHZhbHVlCiAgICAgICBmcm9tIHRoZSBzdGFjay4gIFdlIGRvLCBlbnN1cmluZyB0 aGF0IGNsaWVudHMgb2YgdGhpcyBpbnRlcmZhY2UKLUBAIC0xMDMsMTIgKzEyMywxMSBAQCBzdHJ1 Y3QgZHdhcmZfZXhwcl9jb250ZXh0CitAQCAtMTA2LDEyICsxMjMsMTEgQEAgc3RydWN0IGR3YXJm X2V4cHJfY29udGV4dAogIAogICAgICAgSWYgYW4gZXhwcmVzc2lvbiBuZXZlciB1c2VzIERXX09Q X3BpZWNlLCBudW1fcGllY2VzIHdpbGwgYmUgemVyby4KICAgICAgIChJdCB3b3VsZCBiZSBuaWNl IHRvIHByZXNlbnQgdGhlc2UgY2FzZXMgYXMgZXhwcmVzc2lvbnMgeWllbGRpbmcKQEAgLTM4NDcs NyArNTExNyw3IEBAIGluZGV4IDIzMDZlNDkuLjU5N2MyZGUgMTAwNjQ0CiAgICBpbnQgbnVtX3Bp ZWNlczsKICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVjZXM7CiAgfTsKLUBAIC0xMTcs MTMgKzEzNiwyMiBAQCBzdHJ1Y3QgZHdhcmZfZXhwcl9jb250ZXh0CitAQCAtMTIwLDEzICsxMzYs MjIgQEAgc3RydWN0IGR3YXJmX2V4cHJfY29udGV4dAogIC8qIEEgcGllY2Ugb2YgYW4gb2JqZWN0 LCBhcyByZWNvcmRlZCBieSBEV19PUF9waWVjZS4gICovCiAgc3RydWN0IGR3YXJmX2V4cHJfcGll Y2UKICB7CkBAIC0zODc4LDE4ICs1MTQ4LDEwIEBAIGluZGV4IDIzMDZlNDkuLjU5N2MyZGUgMTAw NjQ0CiAgICAvKiBUaGUgbGVuZ3RoIG9mIHRoZSBwaWVjZSwgaW4gYnl0ZXMuICAqLwogICAgVUxP TkdFU1Qgc2l6ZTsKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYybG9jLmMgYi9nZGIvZHdhcmYybG9j LmMKLWluZGV4IDFkZjZhOWYuLjkzOWY3YTIgMTAwNjQ0CitpbmRleCBjM2Y2ZDQwLi5hZjgxNmY0 IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmxvYy5jCiArKysgYi9nZGIvZHdhcmYybG9jLmMKLUBA IC0zNiw2ICszNiw3IEBACi0gI2luY2x1ZGUgImR3YXJmMi5oIgotICNpbmNsdWRlICJkd2FyZjJl eHByLmgiCi0gI2luY2x1ZGUgImR3YXJmMmxvYy5oIgotKyNpbmNsdWRlICJkd2FyZjItZnJhbWUu aCIKLSAKLSAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotICNpbmNsdWRlICJnZGJfYXNzZXJ0Lmgi Ci1AQCAtMTE1LDYgKzExNiw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9uCitAQCAtMTE2LDYg KzExNiw5IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9uCiAgewogICAgc3RydWN0IGZyYW1lX2lu Zm8gKmZyYW1lOwogICAgc3RydWN0IG9iamZpbGUgKm9iamZpbGU7CkBAIC0zODk5LDcgKzUxNjEs NyBAQCBpbmRleCAxZGY2YTlmLi45MzlmN2EyIDEwMDY0NAogIH07CiAgCiAgLyogSGVscGVyIGZ1 bmN0aW9ucyBmb3IgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjLiAgKi8KLUBAIC0xNzYsMjIgKzE4 MCw0MCBAQCBkd2FyZl9leHByX2ZyYW1lX2Jhc2UgKHZvaWQgKmJhdG9uLCBnZGJfYnl0ZSAqKnN0 YXJ0LCBzaXplX3QgKiBsZW5ndGgpCitAQCAtMTc3LDIyICsxODAsMzMgQEAgZHdhcmZfZXhwcl9m cmFtZV9iYXNlICh2b2lkICpiYXRvbiwgZ2RiX2J5dGUgKipzdGFydCwgc2l6ZV90ICogbGVuZ3Ro KQogICAgICAgICpzdGFydCA9IGZpbmRfbG9jYXRpb25fZXhwcmVzc2lvbiAoc3ltYmF0b24sIGxl bmd0aCwKICAJCQkJCSBnZXRfZnJhbWVfYWRkcmVzc19pbl9ibG9jayAoZnJhbWUpKTsKICAgICAg fQpAQCAtMzkxOSw3ICs1MTgxLDcgQEAgaW5kZXggMWRmNmE5Zi4uOTM5ZjdhMiAxMDA2NDQKICsg ICAgICBnZGJfYXNzZXJ0IChzeW1iYXRvbiAhPSBOVUxMKTsKICsgICAgICAqc3RhcnQgPSBzeW1i YXRvbi0+ZGF0YTsKICsgICAgICAqbGVuZ3RoID0gc3ltYmF0b24tPnNpemU7Ci0gICAgIH0KKysg ICAgfQogKyAgZWxzZSBpZiAoU1lNQk9MX0NPTVBVVEVEX09QUyAoZnJhbWVmdW5jKSA9PSAmZHdh cmYyX21pc3NpbmdfZnVuY3MpCiArICAgIHsKICsgICAgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJf YmF0b24gKnN5bWJhdG9uOwpAQCAtMzkyOCw3ICs1MTkwLDcgQEAgaW5kZXggMWRmNmE5Zi4uOTM5 ZjdhMiAxMDA2NDQKICsgICAgICBnZGJfYXNzZXJ0IChzeW1iYXRvbiA9PSBOVUxMKTsKICsgICAg ICAqc3RhcnQgPSBOVUxMOwogKyAgICAgICpsZW5ndGggPSAwOwkvKiB1bnVzZWQgKi8KLSsgICAg fQorICAgICB9CiArICBlbHNlCiArICAgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5F X18sCiArCQkgICAgXygiVW5zdXBwb3J0ZWQgU1lNQk9MX0NPTVBVVEVEX09QUyAlcCBmb3IgXCIl c1wiIiksCkBAIC0zOTM5LDE3ICs1MjAxLDEwIEBAIGluZGV4IDFkZjZhOWYuLjkzOWY3YTIgMTAw NjQ0CiAgICAgIGVycm9yIChfKCJDb3VsZCBub3QgZmluZCB0aGUgZnJhbWUgYmFzZSBmb3IgXCIl c1wiLiIpLAogLQkgICBTWU1CT0xfTkFUVVJBTF9OQU1FIChmcmFtZWZ1bmMpKTsKICsJICAgU1lN Qk9MX1BSSU5UX05BTUUgKGZyYW1lZnVuYykpOwotK30KLSsKLStzdGF0aWMgQ09SRV9BRERSCi0r ZHdhcmZfZXhwcl9mcmFtZV9jZmEgKHZvaWQgKmJhdG9uKQotK3sKLSsgIHN0cnVjdCBkd2FyZl9l eHByX2JhdG9uICpkZWJhdG9uID0gKHN0cnVjdCBkd2FyZl9leHByX2JhdG9uICopIGJhdG9uOwot KyAgcmV0dXJuIGR3YXJmMl9mcmFtZV9jZmEgKGRlYmF0b24tPmZyYW1lKTsKICB9CiAgCi0gLyog VXNpbmcgdGhlIG9iamZpbGUgc3BlY2lmaWVkIGluIEJBVE9OLCBmaW5kIHRoZSBhZGRyZXNzIGZv ciB0aGUKLUBAIC0yMDQsNiArMjI2LDEyOSBAQCBkd2FyZl9leHByX3Rsc19hZGRyZXNzICh2b2lk ICpiYXRvbiwgQ09SRV9BRERSIG9mZnNldCkKKyAvKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGR3YXJm Ml9ldmFsdWF0ZV9sb2NfZGVzYy4gIENvbXB1dGVzIHRoZSBDRkEgZm9yCitAQCAtMjE1LDYgKzIy OSwxMjkgQEAgZHdhcmZfZXhwcl90bHNfYWRkcmVzcyAodm9pZCAqYmF0b24sIENPUkVfQUREUiBv ZmZzZXQpCiAgICByZXR1cm4gdGFyZ2V0X3RyYW5zbGF0ZV90bHNfYWRkcmVzcyAoZGViYXRvbi0+ b2JqZmlsZSwgb2Zmc2V0KTsKICB9CiAgCkBAIC00MDc2LDEwICs1MzMxLDUxIEBAIGluZGV4IDFk ZjZhOWYuLjkzOWY3YTIgMTAwNjQ0CiArICByZXR1cm4gcmV0dmFsOwogK30KICsKLSAvKiBFdmFs dWF0ZSBhIGxvY2F0aW9uIGRlc2NyaXB0aW9uLCBzdGFydGluZyBhdCBEQVRBIGFuZCB3aXRoIGxl bmd0aAotICAgIFNJWkUsIHRvIGZpbmQgdGhlIGN1cnJlbnQgbG9jYXRpb24gb2YgdmFyaWFibGUg VkFSIGluIHRoZSBjb250ZXh0Ci0gICAgb2YgRlJBTUUuICAqLwotQEAgLTIxMyw5ICszNTgsOCBA QCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2MgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lLAorIHN0cnVjdCBwaWVjZV9jbG9zdXJlCisgeworICAgLyogVGhlIG51 bWJlciBvZiBwaWVjZXMgdXNlZCB0byBkZXNjcmliZSB0aGlzIHZhcmlhYmxlLiAgKi8KK0BAIC0y NTksMTggKzM5NiwxOCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkg IG1lbXNldCAoY29udGVudHMgKyBvZmZzZXQsIDAsIHAtPnNpemUpOworIAkgIHNldF92YWx1ZV9v cHRpbWl6ZWRfb3V0ICh2LCAxKTsKKyAJfQorLSAgICAgIGVsc2UgaWYgKHAtPmluX3JlZykKKysg ICAgICBlbHNlIGlmIChwLT5sb2NhdGlvbiA9PSBEV0FSRl9WQUxVRV9SRUdJU1RFUikKKyAJewor IAkgIHN0cnVjdCBnZGJhcmNoICphcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKKyAJICBn ZGJfYnl0ZSByZWd2YWxbTUFYX1JFR0lTVEVSX1NJWkVdOworLQkgIGludCBnZGJfcmVnbnVtID0g Z2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAoYXJjaCwgcC0+dmFsdWUpOworKwkgIGludCBn ZGJfcmVnbnVtID0gZ2RiYXJjaF9kd2FyZjJfcmVnX3RvX3JlZ251bSAoYXJjaCwgcC0+di52YWx1 ZSk7CisgCisgCSAgZ2V0X2ZyYW1lX3JlZ2lzdGVyIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVndmFs KTsKKyAJICBtZW1jcHkgKGNvbnRlbnRzICsgb2Zmc2V0LCByZWd2YWwsIHAtPnNpemUpOworIAl9 CisgICAgICAgZWxzZQorIAl7CistCSAgcmVhZF9tZW1vcnkgKHAtPnZhbHVlLCBjb250ZW50cyAr IG9mZnNldCwgcC0+c2l6ZSk7CisrCSAgcmVhZF9tZW1vcnkgKHAtPnYudmFsdWUsIGNvbnRlbnRz ICsgb2Zmc2V0LCBwLT5zaXplKTsKKyAJfQorICAgICAgIG9mZnNldCArPSBwLT5zaXplOworICAg ICB9CitAQCAtMjk1LDE1ICs0MzIsMTUgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVj ZXM7IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMt PnBpZWNlc1tpXTsKKy0gICAgICBpZiAocC0+aW5fcmVnKQorKyAgICAgIGlmIChwLT5sb2NhdGlv biA9PSBEV0FSRl9WQUxVRV9SRUdJU1RFUikKKyAJeworIAkgIHN0cnVjdCBnZGJhcmNoICphcmNo ID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKKy0JICBpbnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hf ZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAtPnZhbHVlKTsKKysJICBpbnQgZ2RiX3JlZ251 bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAtPnYudmFsdWUpOworIAkg IHB1dF9mcmFtZV9yZWdpc3RlciAoZnJhbWUsIGdkYl9yZWdudW0sIGNvbnRlbnRzICsgb2Zmc2V0 KTsKKyAJfQorICAgICAgIGVsc2UKKyAJeworLQkgIHdyaXRlX21lbW9yeSAocC0+dmFsdWUsIGNv bnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKKysJICB3cml0ZV9tZW1vcnkgKHAtPnYudmFsdWUs IGNvbnRlbnRzICsgb2Zmc2V0LCBwLT5zaXplKTsKKyAJfQorICAgICAgIG9mZnNldCArPSBwLT5z aXplOworICAgICB9CitAQCAtMzQzLDkgKzQ4MCw4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVz YyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCiAgCQkJICBz dHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCiAgewogICAgc3RydWN0IHZhbHVlICpy ZXR2YWw7CkBAIC00MDkwLDcgKzUzODYsNyBAQCBpbmRleCAxZGY2YTlmLi45MzlmN2EyIDEwMDY0 NAogIAogICAgaWYgKHNpemUgPT0gMCkKICAgICAgewotQEAgLTIyNSwyMSArMzY5LDggQEAgZHdh cmYyX2V2YWx1YXRlX2xvY19kZXNjIChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBmcmFtZV9p bmZvICpmcmFtZSwKK0BAIC0zNTUsMjIgKzQ5MSw4IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVz YyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCiAgICAgICAg cmV0dXJuIHJldHZhbDsKICAgICAgfQogIApAQCAtNDEwNyw3MSArNTQwMywxNiBAQCBpbmRleCAx ZGY2YTlmLi45MzlmN2EyIDEwMDY0NAogLSAgY3R4LT5yZWFkX3JlZyA9IGR3YXJmX2V4cHJfcmVh ZF9yZWc7CiAtICBjdHgtPnJlYWRfbWVtID0gZHdhcmZfZXhwcl9yZWFkX21lbTsKIC0gIGN0eC0+ Z2V0X2ZyYW1lX2Jhc2UgPSBkd2FyZl9leHByX2ZyYW1lX2Jhc2U7CistICBjdHgtPmdldF9mcmFt ZV9jZmEgPSBkd2FyZl9leHByX2ZyYW1lX2NmYTsKIC0gIGN0eC0+Z2V0X3Rsc19hZGRyZXNzID0g ZHdhcmZfZXhwcl90bHNfYWRkcmVzczsKIC0KIC0gIGR3YXJmX2V4cHJfZXZhbCAoY3R4LCBkYXRh LCBzaXplKTsKICAgIGlmIChjdHgtPm51bV9waWVjZXMgPiAwKQogICAgICB7Ci0gICAgICAgaW50 IGk7Ci1AQCAtMjUxLDM2ICszODIsMTE1IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYyAoc3Ry dWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCi0gICAgICAgZm9yIChp ID0gMDsgaSA8IGN0eC0+bnVtX3BpZWNlczsgaSsrKQotIAl7Ci0gCSAgc3RydWN0IGR3YXJmX2V4 cHJfcGllY2UgKnAgPSAmY3R4LT5waWVjZXNbaV07Ci0tCSAgaWYgKHAtPmluX3JlZykKLS0JICAg IHsKLS0JICAgICAgc3RydWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUp OwotLQkgICAgICBiZmRfYnl0ZSByZWd2YWxbTUFYX1JFR0lTVEVSX1NJWkVdOwotLQkgICAgICBp bnQgZ2RiX3JlZ251bSA9IGdkYmFyY2hfZHdhcmYyX3JlZ190b19yZWdudW0gKGFyY2gsIHAtPnZh bHVlKTsKLS0JICAgICAgZ2V0X2ZyYW1lX3JlZ2lzdGVyIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVn dmFsKTsKLS0JICAgICAgbWVtY3B5IChjb250ZW50cyArIG9mZnNldCwgcmVndmFsLCBwLT5zaXpl KTsKLS0JICAgIH0KLS0JICBlbHNlIC8qIEluIG1lbW9yeT8gICovCi0rCSAgc3dpdGNoIChwLT5s b2NhdGlvbikKLSAJICAgIHsKLS0JICAgICAgcmVhZF9tZW1vcnkgKHAtPnZhbHVlLCBjb250ZW50 cyArIG9mZnNldCwgcC0+c2l6ZSk7Ci0rCSAgICBjYXNlIERXQVJGX1ZBTFVFX1JFR0lTVEVSOgot KwkgICAgICB7Ci0rCQlzdHJ1Y3QgZ2RiYXJjaCAqYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFt ZSk7Ci0rCQliZmRfYnl0ZSByZWd2YWxbTUFYX1JFR0lTVEVSX1NJWkVdOwotKwkJaW50IGdkYl9y ZWdudW0gPSBnZGJhcmNoX2R3YXJmMl9yZWdfdG9fcmVnbnVtIChhcmNoLAotKwkJCQkJCQkgICAg ICAgcC0+di52YWx1ZSk7Ci0rCQlnZXRfZnJhbWVfcmVnaXN0ZXIgKGZyYW1lLCBnZGJfcmVnbnVt LCByZWd2YWwpOwotKwkJbWVtY3B5IChjb250ZW50cyArIG9mZnNldCwgcmVndmFsLCBwLT5zaXpl KTsKLSsJICAgICAgfQotKwkgICAgICBicmVhazsKLSsKLSsJICAgIGNhc2UgRFdBUkZfVkFMVUVf TUVNT1JZOgotKwkgICAgICByZWFkX21lbW9yeSAocC0+di52YWx1ZSwgY29udGVudHMgKyBvZmZz ZXQsIHAtPnNpemUpOwotKwkgICAgICBicmVhazsKLSsKLSsJICAgIGNhc2UgRFdBUkZfVkFMVUVf U1RBQ0s6Ci0rCSAgICAgIHsKLSsJCWdkYl9ieXRlIGJ5dGVzW3NpemVvZiAoVUxPTkdFU1QpXTsK LSsJCXNpemVfdCBuOwotKwkJc3RvcmVfdW5zaWduZWRfaW50ZWdlciAoYnl0ZXMsIGN0eC0+YWRk cl9zaXplLAotKwkJCQkJZ2RiYXJjaF9ieXRlX29yZGVyIChjdHgtPmdkYmFyY2gpLAotKwkJCQkJ cC0+di52YWx1ZSk7Ci0rCQluID0gcC0+c2l6ZTsKLSsJCWlmIChuID4gY3R4LT5hZGRyX3NpemUp Ci0rCQkgIG4gPSBjdHgtPmFkZHJfc2l6ZTsKLSsJCW1lbWNweSAoY29udGVudHMgKyBvZmZzZXQs IGJ5dGVzLCBuKTsKLSsJICAgICAgfQotKwkgICAgICBicmVhazsKLSsKLSsJICAgIGNhc2UgRFdB UkZfVkFMVUVfTElURVJBTDoKLSsJICAgICAgewotKwkJc2l6ZV90IG4gPSBwLT5zaXplOwotKwkJ aWYgKG4gPiBwLT52LmxpdGVyYWwubGVuZ3RoKQotKwkJICBuID0gcC0+di5saXRlcmFsLmxlbmd0 aDsKLSsJCW1lbWNweSAoY29udGVudHMgKyBvZmZzZXQsIHAtPnYubGl0ZXJhbC5kYXRhLCBuKTsK LSsJICAgICAgfQotKwkgICAgICBicmVhazsKLSsKLSsJICAgIGRlZmF1bHQ6Ci0rCSAgICAgIGlu dGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sIF8oImludmFsaWQgbG9jYXRpb24gdHlw ZSIpKTsKLSAJICAgIH0KLSAJICBvZmZzZXQgKz0gcC0+c2l6ZTsKLSAJfQorICAgICAgIHN0cnVj dCBwaWVjZV9jbG9zdXJlICpjOworQEAgLTM4MiwyMiArNTA0LDcwIEBAIGR3YXJmMl9ldmFsdWF0 ZV9sb2NfZGVzYyAoc3RydWN0IHN5bWJvbCAqdmFyLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUs CisgCQkJCQljKTsKKyAgICAgICBWQUxVRV9GUkFNRV9JRCAocmV0dmFsKSA9IGZyYW1lX2lkOwog ICAgICB9CiAtICBlbHNlIGlmIChjdHgtPmluX3JlZykKIC0gICAgewpAQCAtNDE4Nyw2ICs1NDI4 LDcgQEAgaW5kZXggMWRmNmE5Zi4uOTM5ZjdhMiAxMDA2NDQKIC0gICAgICByZXR2YWwgPSBhbGxv Y2F0ZV92YWx1ZSAoU1lNQk9MX1RZUEUgKHZhcikpOwogLSAgICAgIFZBTFVFX0xWQUwgKHJldHZh bCkgPSBsdmFsX21lbW9yeTsKIC0gICAgICBzZXRfdmFsdWVfbGF6eSAocmV0dmFsLCAxKTsKKy0g ICAgICBzZXRfdmFsdWVfc3RhY2sgKHJldHZhbCwgMSk7CiAtICAgICAgc2V0X3ZhbHVlX2FkZHJl c3MgKHJldHZhbCwgYWRkcmVzcyk7CiArICAgICAgc3dpdGNoIChjdHgtPmxvY2F0aW9uKQogKwl7 CkBAIC00MjExLDYgKzU0NTMsNyBAQCBpbmRleCAxZGY2YTlmLi45MzlmN2EyIDEwMDY0NAogKwkg ICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKFNZTUJPTF9UWVBFICh2YXIpKTsKICsJICAgIFZB TFVFX0xWQUwgKHJldHZhbCkgPSBsdmFsX21lbW9yeTsKICsJICAgIHNldF92YWx1ZV9sYXp5IChy ZXR2YWwsIDEpOworKwkgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWwsIDEpOwogKwkgICAgc2V0 X3ZhbHVlX2FkZHJlc3MgKHJldHZhbCwgYWRkcmVzcyk7CiArCSAgfQogKwkgIGJyZWFrOwpAQCAt NDI1MiwyOCArNTQ5NSw3IEBAIGluZGV4IDFkZjZhOWYuLjkzOWY3YTIgMTAwNjQ0CiAgICAgIH0K ICAKICAgIHNldF92YWx1ZV9pbml0aWFsaXplZCAocmV0dmFsLCBjdHgtPmluaXRpYWxpemVkKTsK LUBAIC0zMzAsNiArNTQwLDE1IEBAIG5lZWRzX2ZyYW1lX2ZyYW1lX2Jhc2UgKHZvaWQgKmJhdG9u LCBnZGJfYnl0ZSAqKnN0YXJ0LCBzaXplX3QgKiBsZW5ndGgpCi0gICBuZl9iYXRvbi0+bmVlZHNf ZnJhbWUgPSAxOwotIH0KLSAKLSsvKiBDRkEgYWNjZXNzZXMgcmVxdWlyZSBhIGZyYW1lLiAgKi8K LStzdGF0aWMgQ09SRV9BRERSCi0rbmVlZHNfZnJhbWVfZnJhbWVfY2ZhICh2b2lkICpiYXRvbikK LSt7Ci0rICBzdHJ1Y3QgbmVlZHNfZnJhbWVfYmF0b24gKm5mX2JhdG9uID0gYmF0b247Ci0rICBu Zl9iYXRvbi0+bmVlZHNfZnJhbWUgPSAxOwotKyAgcmV0dXJuIDE7Ci0rfQotKwotIC8qIFRocmVh ZC1sb2NhbCBhY2Nlc3NlcyBkbyByZXF1aXJlIGEgZnJhbWUuICAqLwotIHN0YXRpYyBDT1JFX0FE RFIKLSBuZWVkc19mcmFtZV90bHNfYWRkcmVzcyAodm9pZCAqYmF0b24sIENPUkVfQUREUiBvZmZz ZXQpCi1AQCAtMzYyLDExICs1ODEsMTIgQEAgZHdhcmYyX2xvY19kZXNjX25lZWRzX2ZyYW1lIChn ZGJfYnl0ZSAqZGF0YSwgdW5zaWduZWQgc2hvcnQgc2l6ZSwKLSAgIGN0eC0+cmVhZF9yZWcgPSBu ZWVkc19mcmFtZV9yZWFkX3JlZzsKLSAgIGN0eC0+cmVhZF9tZW0gPSBuZWVkc19mcmFtZV9yZWFk X21lbTsKLSAgIGN0eC0+Z2V0X2ZyYW1lX2Jhc2UgPSBuZWVkc19mcmFtZV9mcmFtZV9iYXNlOwot KyAgY3R4LT5nZXRfZnJhbWVfY2ZhID0gbmVlZHNfZnJhbWVfZnJhbWVfY2ZhOwotICAgY3R4LT5n ZXRfdGxzX2FkZHJlc3MgPSBuZWVkc19mcmFtZV90bHNfYWRkcmVzczsKK0BAIC00OTQsNyArNjY0 LDcgQEAgZHdhcmYyX2xvY19kZXNjX25lZWRzX2ZyYW1lIChnZGJfYnl0ZSAqZGF0YSwgdW5zaWdu ZWQgc2hvcnQgc2l6ZSwKICAKICAgIGR3YXJmX2V4cHJfZXZhbCAoY3R4LCBkYXRhLCBzaXplKTsK ICAKQEAgLTQyODIsNyArNTUwNCw3IEBAIGluZGV4IDFkZjZhOWYuLjkzOWY3YTIgMTAwNjQ0CiAg CiAgICBpZiAoY3R4LT5udW1fcGllY2VzID4gMCkKICAgICAgewotQEAgLTM3NSw3ICs1OTUsNyBA QCBkd2FyZjJfbG9jX2Rlc2NfbmVlZHNfZnJhbWUgKGdkYl9ieXRlICpkYXRhLCB1bnNpZ25lZCBz aG9ydCBzaXplLAorQEAgLTUwMyw3ICs2NzMsNyBAQCBkd2FyZjJfbG9jX2Rlc2NfbmVlZHNfZnJh bWUgKGdkYl9ieXRlICpkYXRhLCB1bnNpZ25lZCBzaG9ydCBzaXplLAogICAgICAgIC8qIElmIHRo ZSBsb2NhdGlvbiBoYXMgc2V2ZXJhbCBwaWVjZXMsIGFuZCBhbnkgb2YgdGhlbSBhcmUgaW4KICAg ICAgICAgICByZWdpc3RlcnMsIHRoZW4gd2Ugd2lsbCBuZWVkIGEgZnJhbWUgdG8gZmV0Y2ggdGhl bSBmcm9tLiAgKi8KICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3R4LT5udW1fcGllY2VzOyBpKysp CkBAIC00MjkxLDcgKzU1MTMsNyBAQCBpbmRleCAxZGY2YTlmLi45MzlmN2EyIDEwMDY0NAogICAg ICAgICAgICBpbl9yZWcgPSAxOwogICAgICB9CiAgCi1AQCAtNjA3LDcgKzgyNyw3IEBAIHN0YXRp YyBpbnQKK0BAIC03MzUsNyArOTA1LDcgQEAgc3RhdGljIGludAogIGxvY2xpc3RfZGVzY3JpYmVf bG9jYXRpb24gKHN0cnVjdCBzeW1ib2wgKnN5bWJvbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkK ICB7CiAgICAvKiBGSVhNRTogQ291bGQgcHJpbnQgdGhlIGVudGlyZSBsaXN0IG9mIGxvY2F0aW9u cy4gICovCkBAIC00MzAwLDcgKzU1MjIsNyBAQCBpbmRleCAxZGY2YTlmLi45MzlmN2EyIDEwMDY0 NAogICAgcmV0dXJuIDE7CiAgfQogIAotQEAgLTYyMywxNiArODQzLDU2IEBAIGxvY2xpc3RfdHJh Y2Vwb2ludF92YXJfcmVmIChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLAorQEAgLTc1MSwxNiArOTIxLDU2IEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVm IChzdHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAogICAg ZGF0YSA9IGZpbmRfbG9jYXRpb25fZXhwcmVzc2lvbiAoZGxiYXRvbiwgJnNpemUsIGF4LT5zY29w ZSk7CiAgICBpZiAoZGF0YSA9PSBOVUxMKQpAQCAtNDM3NywyMCArNTU5OSwxMCBAQCBpbmRleCAw YmZjZmNhLi4wMTAxOGQ2IDEwMDY0NAogIAogICNlbmRpZiAvKiBkd2FyZjJsb2MuaCAqLwogZGlm ZiAtLWdpdCBhL2dkYi9kd2FyZjJyZWFkLmMgYi9nZGIvZHdhcmYycmVhZC5jCi1pbmRleCA0NDVi YWI4Li40MjAzOWVhIDEwMDY0NAoraW5kZXggN2YwNDQyNy4uMzE1MDRmZSAxMDA2NDQKIC0tLSBh L2dkYi9kd2FyZjJyZWFkLmMKICsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0xLDggKzEsNyBA QAotIC8qIERXQVJGIDIgZGVidWdnaW5nIGZvcm1hdCBzdXBwb3J0IGZvciBHREIuCi0gCi0gICAg Q29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAyLCAyMDAzLAotLSAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiwgMjAw NywgMjAwOCwgMjAwOQotLSAgICAgICAgICAgICAgICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCi0rICAgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLSAKLSAgICBBZGFwdGVkIGJ5IEdhcnkgRnVuY2sgKGdhcnlA aW50cmVwaWQuY29tKSwgSW50cmVwaWQgVGVjaG5vbG9neSwKLSAgICBJbmMuICB3aXRoIHN1cHBv cnQgZnJvbSBGbG9yaWRhIFN0YXRlIFVuaXZlcnNpdHkgKHVuZGVyIGNvbnRyYWN0Ci1AQCAtNDgs NiArNDcsMTIgQEAKK0BAIC00OCw2ICs0OCwxMiBAQAogICNpbmNsdWRlICJnZGJjbWQuaCIKICAj aW5jbHVkZSAiYmxvY2suaCIKICAjaW5jbHVkZSAiYWRkcm1hcC5oIgpAQCAtNDQwMyw3ICs1NjE1 LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAKICAjaW5jbHVkZSA8ZmNudGwu aD4KICAjaW5jbHVkZSAiZ2RiX3N0cmluZy5oIgotQEAgLTkzLDcgKzk4LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgcHVibmFtZXNfaGVhZGVyCitAQCAtOTMsNyArOTksNyBAQCB0eXBlZGVmIHN0cnVjdCBw dWJuYW1lc19oZWFkZXIKICBfUFVCTkFNRVNfSEVBREVSOwogICNkZWZpbmUgX0FDVFVBTF9QVUJO QU1FU19IRUFERVJfU0laRSAxMwogIApAQCAtNDQxMiw3ICs1NjI0LDcgQEAgaW5kZXggNDQ1YmFi OC4uNDIwMzllYSAxMDA2NDQKICAgICBCZWNhdXNlIG9mIGFsaWdubWVudCBjb25zdHJhaW50cywg dGhpcyBzdHJ1Y3R1cmUgaGFzIHBhZGRpbmcgYW5kIGNhbm5vdAogICAgIGJlIG1hcHBlZCBkaXJl Y3RseSBvbnRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIC5kZWJ1Z19pbmZvIHNlY3Rpb24uICAqLwog IHR5cGVkZWYgc3RydWN0IGFyYW5nZXNfaGVhZGVyCi1AQCAtMTUwLDcgKzE1NSwxMCBAQCBzdHJ1 Y3QgZHdhcmYyX3NlY3Rpb25faW5mbworQEAgLTE1MCw3ICsxNTYsMTAgQEAgc3RydWN0IGR3YXJm Ml9zZWN0aW9uX2luZm8KICAgIGFzZWN0aW9uICphc2VjdGlvbjsKICAgIGdkYl9ieXRlICpidWZm ZXI7CiAgICBiZmRfc2l6ZV90eXBlIHNpemU7CkBAIC00NDI0LDcgKzU2MzYsNyBAQCBpbmRleCA0 NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIH07CiAgCiAgc3RydWN0IGR3YXJmMl9wZXJfb2JqZmls ZQotQEAgLTMzNiw2ICszNDQsMTkgQEAgc3RydWN0IGR3YXJmMl9jdQorQEAgLTMzNiw2ICszNDUs MTkgQEAgc3RydWN0IGR3YXJmMl9jdQogIAogICAgLyogRmllbGQgYHJhbmdlc19vZmZzZXQnIGlz IGZpbGxlZCBpbjsgZmxhZyBhcyB0aGUgdmFsdWUgbWF5IGJlIHplcm8uICAqLwogICAgdW5zaWdu ZWQgaW50IGhhc19yYW5nZXNfb2Zmc2V0IDogMTsKQEAgLTQ0NDQsMTggKzU2NTYsNyBAQCBpbmRl eCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIH07CiAgCiAgLyogUGVyc2lzdGVudCBkYXRhIGhl bGQgZm9yIGEgY29tcGlsYXRpb24gdW5pdCwgZXZlbiB3aGVuIG5vdAotQEAgLTQ3NCw4ICs0OTUs OCBAQCBzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbwotICAgICAvKiBEV0FSRi0yIHRhZyBmb3IgdGhp cyBESUUuICAqLwotICAgICBFTlVNX0JJVEZJRUxEKGR3YXJmX3RhZykgdGFnIDogMTY7Ci0gCi0t ICAgIC8qIExhbmd1YWdlIGNvZGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRElFLiAgVGhpcyBpcyBv bmx5IHVzZWQKLS0gICAgICAgZm9yIHRoZSBjb21waWxhdGlvbiB1bml0IERJRS4gICovCi0rICAg LyogTGFuZ3VhZ2UgY29kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBESUUuICBUaGlzIGlzIG9ubHkg dXNlZAotKyAgICAgIGZvciB0aGUgY29tcGlsYXRpb24gdW5pdCBESUUuICAqLwotICAgICB1bnNp Z25lZCBpbnQgbGFuZ3VhZ2UgOiA4OwotIAotICAgICAvKiBBc3NvcnRlZCBmbGFncyBkZXNjcmli aW5nIHRoZSBkYXRhIGZvdW5kIGluIHRoaXMgRElFLiAgKi8KLUBAIC00OTUsOCArNTE2LDcgQEAg c3RydWN0IHBhcnRpYWxfZGllX2luZm8KK0BAIC00OTUsOCArNTE3LDcgQEAgc3RydWN0IHBhcnRp YWxfZGllX2luZm8KICAgICAgdW5zaWduZWQgaW50IGhhc19ieXRlX3NpemUgOiAxOwogIAogICAg ICAvKiBUaGUgbmFtZSBvZiB0aGlzIERJRS4gIE5vcm1hbGx5IHRoZSB2YWx1ZSBvZiBEV19BVF9u YW1lLCBidXQKQEAgLTQ0NjUsNyArNTY2Niw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAw NjQ0CiAgICAgIGNoYXIgKm5hbWU7CiAgICAgIGNoYXIgKmRpcm5hbWU7CiAgCi1AQCAtNjkxLDYg KzcxMSwxMSBAQCBzdHJ1Y3QgZmllbGRfaW5mbworQEAgLTY5MSw2ICs3MTIsMTEgQEAgc3RydWN0 IGZpZWxkX2luZm8KICAgICAgaW50IG5mbmZpZWxkczsKICAgIH07CiAgCkBAIC00NDc3LDcgKzU2 NzgsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIC8qIE9uZSBpdGVtIG9uIHRo ZSBxdWV1ZSBvZiBjb21waWxhdGlvbiB1bml0cyB0byByZWFkIGluIGZ1bGwgc3ltYm9scwogICAg IGZvci4gICovCiAgc3RydWN0IGR3YXJmMl9xdWV1ZV9pdGVtCi1AQCAtODAyLDcgKzgyNywxMCBA QCBzdGF0aWMgdm9pZCBzY2FuX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IHBhcnRpYWxfZGllX2lu Zm8gKiwKK0BAIC04MDIsNyArODI4LDEwIEBAIHN0YXRpYyB2b2lkIHNjYW5fcGFydGlhbF9zeW1i b2xzIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqLAogIHN0YXRpYyB2b2lkIGFkZF9wYXJ0aWFs X3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKiwKICAJCQkJc3RydWN0IGR3YXJmMl9j dSAqKTsKICAKQEAgLTQ0ODksNyArNTY5MCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAw NjQ0CiAgCiAgc3RhdGljIHZvaWQgYWRkX3BhcnRpYWxfbmFtZXNwYWNlIChzdHJ1Y3QgcGFydGlh bF9kaWVfaW5mbyAqcGRpLAogIAkJCQkgICBDT1JFX0FERFIgKmxvd3BjLCBDT1JFX0FERFIgKmhp Z2hwYywKLUBAIC04MjcsNiArODU1LDEwIEBAIHN0YXRpYyB2b2lkIGR3YXJmMl9wc3ltdGFiX3Rv X3N5bXRhYiAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOworQEAgLTgyNyw2ICs4NTYsMTAgQEAg c3RhdGljIHZvaWQgZHdhcmYyX3BzeW10YWJfdG9fc3ltdGFiIChzdHJ1Y3QgcGFydGlhbF9zeW10 YWIgKik7CiAgCiAgc3RhdGljIHZvaWQgcHN5bXRhYl90b19zeW10YWJfMSAoc3RydWN0IHBhcnRp YWxfc3ltdGFiICopOwogIApAQCAtNDUwMCw3ICs1NzAxLDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIw MzllYSAxMDA2NDQKICBzdGF0aWMgdm9pZCBkd2FyZjJfcmVhZF9hYmJyZXZzIChiZmQgKmFiZmQs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKICAKICBzdGF0aWMgdm9pZCBkd2FyZjJfZnJlZV9hYmJy ZXZfdGFibGUgKHZvaWQgKik7Ci1AQCAtOTQ3LDggKzk3OSwxMyBAQCBzdGF0aWMgc3RydWN0IHR5 cGUgKnRhZ190eXBlX3RvX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1 ICopOworQEAgLTk0Nyw4ICs5ODAsMTMgQEAgc3RhdGljIHN0cnVjdCB0eXBlICp0YWdfdHlwZV90 b190eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJmMl9jdSAqKTsKICAKICBzdGF0 aWMgc3RydWN0IHR5cGUgKnJlYWRfdHlwZV9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICopOwogIApAQCAtNDUxNCw3ICs1NzE1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIw MzllYSAxMDA2NDQKICBzdGF0aWMgY2hhciAqdHlwZW5hbWVfY29uY2F0IChzdHJ1Y3Qgb2JzdGFj ayAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnByZWZpeCwg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3VmZml4LAotQEAg LTk2Niw3ICsxMDAzLDggQEAgc3RhdGljIGludCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVk LCBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCitAQCAtOTY2LDcgKzEwMDQsOCBAQCBzdGF0aWMg aW50IGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQsIENPUkVfQUREUiAqLCBDT1JFX0FERFIg KiwKICAJCQkgICAgICAgc3RydWN0IGR3YXJmMl9jdSAqLCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIg Kik7CiAgCiAgc3RhdGljIGludCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZv ICosCkBAIC00NTI0LDcgKzU3MjUsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAog IAogIHN0YXRpYyB2b2lkIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAog IAkJCQkgQ09SRV9BRERSICosIENPUkVfQUREUiAqLAotQEAgLTk5MCwxNyArMTAyOCwyNSBAQCBz dGF0aWMgdm9pZCBkd2FyZjJfYXR0YWNoX2ZuX2ZpZWxkc190b190eXBlIChzdHJ1Y3QgZmllbGRf aW5mbyAqLAorQEAgLTk5MCwxNyArMTAyOSwyNSBAQCBzdGF0aWMgdm9pZCBkd2FyZjJfYXR0YWNo X2ZuX2ZpZWxkc190b190eXBlIChzdHJ1Y3QgZmllbGRfaW5mbyAqLAogIAogIHN0YXRpYyB2b2lk IHByb2Nlc3Nfc3RydWN0dXJlX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJm Ml9jdSAqKTsKICAKQEAgLTQ1NTMsNyArNTc1NCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEg MTAwNjQ0CiAgc3RhdGljIGNvbnN0IGNoYXIgKm5hbWVzcGFjZV9uYW1lIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwKICAJCQkJICAgaW50ICppc19hbm9ueW1vdXMsIHN0cnVjdCBkd2FyZjJfY3UgKik7 CiAgCi1AQCAtMTAzNiw2ICsxMDgyLDkgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc19kaWUgKHN0cnVj dCBkaWVfaW5mbyAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICopOworQEAgLTEwMzYsNiArMTA4Myw5IEBA IHN0YXRpYyB2b2lkIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IGR3YXJm Ml9jdSAqKTsKICAKICBzdGF0aWMgY2hhciAqZHdhcmYyX2xpbmthZ2VfbmFtZSAoc3RydWN0IGRp ZV9pbmZvICosIHN0cnVjdCBkd2FyZjJfY3UgKik7CiAgCkBAIC00NTYzLDEzICs1NzY0LDEyIEBA IGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgc3RhdGljIGNoYXIgKmR3YXJmMl9jYW5v bmljYWxpemVfbmFtZSAoY2hhciAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICosCiAgCQkJCSAgICAgICBz dHJ1Y3Qgb2JzdGFjayAqKTsKICAKLUBAIC0xMDc4LDcgKzExMjcsOCBAQCBzdGF0aWMgaW50IGlz X3JlZl9hdHRyIChzdHJ1Y3QgYXR0cmlidXRlICopOworQEAgLTEwNzgsNyArMTEyOCw3IEBAIHN0 YXRpYyBpbnQgaXNfcmVmX2F0dHIgKHN0cnVjdCBhdHRyaWJ1dGUgKik7CiAgCiAgc3RhdGljIHVu c2lnbmVkIGludCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICop OwogIAogLXN0YXRpYyBpbnQgZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChzdHJ1Y3Qg YXR0cmlidXRlICosIGludCk7Ci0rc3RhdGljIENPUkVfQUREUiBkd2FyZjJfZ2V0X2F0dHJfY29u c3RhbnRfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKiwgQ09SRV9BRERSLAotKwkJCQkJICAgc3Ry dWN0IGR3YXJmMl9jdSAqKTsKKytzdGF0aWMgQ09SRV9BRERSIGR3YXJmMl9nZXRfYXR0cl9jb25z dGFudF92YWx1ZSAoc3RydWN0IGF0dHJpYnV0ZSAqLCBDT1JFX0FERFIpOwogIAogIHN0YXRpYyBz dHJ1Y3QgZGllX2luZm8gKmZvbGxvd19kaWVfcmVmX29yX3NpZyAoc3RydWN0IGRpZV9pbmZvICos CiAgCQkJCQkgICAgICAgc3RydWN0IGF0dHJpYnV0ZSAqLApAQCAtNDkxMSwyMCArNjExMSw3IEBA IGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgfQogIAogIC8qIEZpbGwgaW4gU0VDVFAs IEJVRlAgYW5kIFNJWkVQIHdpdGggc2VjdGlvbiBpbmZvLCBnaXZlbiBPQkpGSUxFIGFuZAotQEAg LTE2NjYsMTEgKzE5MDksNyBAQCBkd2FyZjJfY3JlYXRlX2luY2x1ZGVfcHN5bXRhYiAoY2hhciAq bmFtZSwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICpwc3QsCi0gCi0gLyogUmVhZCB0aGUgTGluZSBO dW1iZXIgUHJvZ3JhbSBkYXRhIGFuZCBleHRyYWN0IHRoZSBsaXN0IG9mIGZpbGVzCi0gICAgaW5j bHVkZWQgYnkgdGhlIHNvdXJjZSBmaWxlIHJlcHJlc2VudGVkIGJ5IFBTVC4gIEJ1aWxkIGFuIGlu Y2x1ZGUKLS0gICBwYXJ0aWFsIHN5bXRhYiBmb3IgZWFjaCBvZiB0aGVzZSBpbmNsdWRlZCBmaWxl cy4KLS0gICAKLS0gICBUaGlzIHByb2NlZHVyZSBhc3N1bWVzIHRoYXQgdGhlcmUgKmlzKiBhIExp bmUgTnVtYmVyIFByb2dyYW0gaW4KLS0gICB0aGUgZ2l2ZW4gQ1UuICBDYWxsZXJzIHNob3VsZCBj aGVjayB0aGF0IFBESS0+SEFTX1NUTVRfTElTVCBpcyBzZXQKLS0gICBiZWZvcmUgY2FsbGluZyB0 aGlzIHByb2NlZHVyZS4gICovCi0rICAgcGFydGlhbCBzeW10YWIgZm9yIGVhY2ggb2YgdGhlc2Ug aW5jbHVkZWQgZmlsZXMuICAqLwotIAotIHN0YXRpYyB2b2lkCi0gZHdhcmYyX2J1aWxkX2luY2x1 ZGVfcHN5bXRhYnMgKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAotQEAgLTE4MTIsNiArMjA1MSwzNyBA QCBsb29rdXBfc2lnbmF0dXJlZF90eXBlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgVUxPTkdF U1Qgc2lnKQorQEAgLTE4MTIsNiArMjA1NSwzNyBAQCBsb29rdXBfc2lnbmF0dXJlZF90eXBlIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgVUxPTkdFU1Qgc2lnKQogICAgcmV0dXJuIGVudHJ5Owog IH0KICAKQEAgLTQ5NjIsMjcgKzYxNDksNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0 NAogIC8qIFN1YnJvdXRpbmUgb2YgcHJvY2Vzc190eXBlX2NvbXBfdW5pdCBhbmQgZHdhcmYyX2J1 aWxkX3BzeW10YWJzX2hhcmQKICAgICB0byBjb21iaW5lIHRoZSBjb21tb24gcGFydHMuCiAgICAg UHJvY2VzcyBhIGNvbXBpbGF0aW9uIHVuaXQgZm9yIGEgcHN5bXRhYi4KLUBAIC0xODc4LDcgKzIx NDgsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwKLSAgICAgfQotIAotICAgLyogU2V0IHRoZSBsYW5ndWFnZSB3ZSdyZSBkZWJ1Z2dpbmcuICAq LwotLSAgc2V0X2N1X2xhbmd1YWdlIChjb21wX3VuaXRfZGllLmxhbmd1YWdlLCAmY3UpOwotKyAg IHNldF9jdV9sYW5ndWFnZSAoY29tcF91bml0X2RpZS5sYW5ndWFnZSwgJmN1KTsKLSAKLSAgIC8q IEFsbG9jYXRlIGEgbmV3IHBhcnRpYWwgc3ltYm9sIHRhYmxlIHN0cnVjdHVyZS4gICovCi0gICBw c3QgPSBzdGFydF9wc3ltdGFiX2NvbW1vbiAob2JqZmlsZSwgb2JqZmlsZS0+c2VjdGlvbl9vZmZz ZXRzLAotQEAgLTE5MjksOCArMjE5OSw4IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXQgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLAotICAgICB9Ci0gICBlbHNlIGlmIChjb21wX3VuaXRfZGll Lmhhc19wY19pbmZvCi0gCSAgICYmIGNvbXBfdW5pdF9kaWUubG93cGMgPCBjb21wX3VuaXRfZGll LmhpZ2hwYykKLS0gICAgLyogU3RvcmUgdGhlIGNvbnRpZ3VvdXMgcmFuZ2UgaWYgaXQgaXMgbm90 IGVtcHR5OyBpdCBjYW4gYmUgZW1wdHkgZm9yCi0tICAgICAgIENVcyB3aXRoIG5vIGNvZGUuICAq LwotKyAgICAvKiBTdG9yZSB0aGUgY29udGlndW91cyByYW5nZTsgYERXX0FUX3JhbmdlcycgcmFu Z2UgaXMgc3RvcmVkIGFib3ZlLiAgVGhlCi0rICAgICAgIHJhbmdlIGNhbiBiZSBhbHNvIGVtcHR5 IGZvciBDVXMgd2l0aCBubyBjb2RlLiAgKi8KLSAgICAgYWRkcm1hcF9zZXRfZW1wdHkgKG9iamZp bGUtPnBzeW10YWJzX2FkZHJtYXAsCi0gCQkgICAgICAgY29tcF91bml0X2RpZS5sb3dwYyArIGJh c2VhZGRyLAotIAkJICAgICAgIGNvbXBfdW5pdF9kaWUuaGlnaHBjICsgYmFzZWFkZHIgLSAxLCBw c3QpOwotQEAgLTIzNjEsNyArMjYzMSw3IEBAIHBhcnRpYWxfZGllX3BhcmVudF9zY29wZSAoc3Ry dWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKK0BAIC0yMzYxLDcgKzI2MzUsNyBAQCBwYXJ0aWFs X2RpZV9wYXJlbnRfc2NvcGUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksCiAgCSBpZ25v cmluZyB0aGVtLiAgKi8KICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCiAg CQkgXygidW5oYW5kbGVkIGNvbnRhaW5pbmcgRElFIHRhZyAlZCBmb3IgRElFIGF0ICVkIiksCkBA IC00OTkxLDcgKzYxNTgsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgICAg IHBhcmVudC0+c2NvcGUgPSBncmFuZHBhcmVudF9zY29wZTsKICAgICAgfQogIAotQEAgLTIzNzYs MTIgKzI2NDYsMjIgQEAgcGFydGlhbF9kaWVfZnVsbF9uYW1lIChzdHJ1Y3QgcGFydGlhbF9kaWVf aW5mbyAqcGRpLAorQEAgLTIzNzYsMTIgKzI2NTAsMjIgQEAgcGFydGlhbF9kaWVfZnVsbF9uYW1l IChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGRpLAogIAkJICAgICAgIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogIHsKICAgIGNoYXIgKnBhcmVudF9zY29wZTsKQEAgLTUwMTgsNyArNjE4NSw3IEBA IGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAt MjM5NywxMiArMjY3Nyw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGll X2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjM5NywxMiArMjY4MSw5IEBA IGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCiAgCiAgICBiYXNlYWRkciA9IEFOT0ZGU0VUIChvYmpmaWxlLT5zZWN0 aW9uX29mZnNldHMsIFNFQ1RfT0ZGX1RFWFQgKG9iamZpbGUpKTsKICAKQEAgLTUwMzQsNyArNjIw MSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCiAgICBpZiAoYWN0dWFsX25h bWUgPT0gTlVMTCkKICAgICAgYWN0dWFsX25hbWUgPSBwZGktPm5hbWU7Ci1AQCAtMjQ5Myw2ICsy NzcwLDEyIEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBk aSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMjQ5Myw2ICsyNzc0LDEyIEBAIGFkZF9wYXJ0 aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgCQkJICAgJm9iamZpbGUtPmdsb2JhbF9wc3ltYm9scywKICAJCQkgICAwLCAoQ09S RV9BRERSKSAwLCBjdS0+bGFuZ3VhZ2UsIG9iamZpbGUpOwogICAgICAgIGJyZWFrOwpAQCAtNTA0 Nyw3ICs2MjE0LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICAgY2FzZSBE V19UQUdfY2xhc3NfdHlwZToKICAgICAgY2FzZSBEV19UQUdfaW50ZXJmYWNlX3R5cGU6CiAgICAg IGNhc2UgRFdfVEFHX3N0cnVjdHVyZV90eXBlOgotQEAgLTI1MzQsMjIgKzI4MTcsNiBAQCBhZGRf cGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQorQEAgLTI1MzQsMjIgKzI4MjEsNiBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0 cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAg IGJyZWFrOwogICAgICB9CiAgCkBAIC01MDcwLDcgKzYyMzcsNyBAQCBpbmRleCA0NDViYWI4Li40 MjAzOWVhIDEwMDY0NAogICAgaWYgKGJ1aWx0X2FjdHVhbF9uYW1lKQogICAgICB4ZnJlZSAoYWN0 dWFsX25hbWUpOwogIH0KLUBAIC0yNTU5LDkgKzI4MjYsOSBAQCBhZGRfcGFydGlhbF9zeW1ib2wg KHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwZGksIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAg LTI1NTksOSArMjgzMCw5IEBAIGFkZF9wYXJ0aWFsX3N5bWJvbCAoc3RydWN0IHBhcnRpYWxfZGll X2luZm8gKnBkaSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgbmFtZSBsaXN0ZWQgaW4gdGhl IGRpZS4gICovCiAgCiAgc3RhdGljIGludApAQCAtNTA4Miw3ICs2MjQ5LDcgQEAgaW5kZXggNDQ1 YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICAgewogICAgICBjYXNlIERXX1RBR19uYW1lc3BhY2U6 CiAgICAgIGNhc2UgRFdfVEFHX3R5cGVkZWY6Ci1AQCAtMjU3MSw3ICsyODM4LDIzIEBAIHBkaV9u ZWVkc19uYW1lc3BhY2UgKGVudW0gZHdhcmZfdGFnIHRhZykKK0BAIC0yNTcxLDcgKzI4NDIsMjMg QEAgcGRpX25lZWRzX25hbWVzcGFjZSAoZW51bSBkd2FyZl90YWcgdGFnKQogICAgICBjYXNlIERX X1RBR191bmlvbl90eXBlOgogICAgICBjYXNlIERXX1RBR19lbnVtZXJhdGlvbl90eXBlOgogICAg ICBjYXNlIERXX1RBR19lbnVtZXJhdG9yOgpAQCAtNTEwNiw3ICs2MjczLDcgQEAgaW5kZXggNDQ1 YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gMDsKICAg ICAgfQotQEAgLTI2MDQsMTIgKzI4ODcsMTIgQEAgc3RhdGljIHZvaWQKK0BAIC0yNjA0LDEyICsy ODkxLDEyIEBAIHN0YXRpYyB2b2lkCiAgYWRkX3BhcnRpYWxfbW9kdWxlIChzdHJ1Y3QgcGFydGlh bF9kaWVfaW5mbyAqcGRpLCBDT1JFX0FERFIgKmxvd3BjLAogIAkJICAgIENPUkVfQUREUiAqaGln aHBjLCBpbnQgbmVlZF9wYywgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewpAQCAtNTEyMyw3ICs2 MjkwLDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICB9CiAgCiAgLyogUmVhZCBh IHBhcnRpYWwgZGllIGNvcnJlc3BvbmRpbmcgdG8gYSBzdWJwcm9ncmFtIGFuZCBjcmVhdGUgYSBw YXJ0aWFsCi1AQCAtMjcwMCwyNyArMjk4Myw2IEBAIGd1ZXNzX3N0cnVjdHVyZV9uYW1lIChzdHJ1 Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3RydWN0X3BkaSwKK0BAIC0yNzAwLDI3ICsyOTg3LDYgQEAg Z3Vlc3Nfc3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpzdHJ1Y3RfcGRp LAogIAogICAgICAgIGlmIChyZWFsX3BkaS0+ZGllX3BhcmVudCAhPSBOVUxMKQogIAlyZXR1cm47 CkBAIC01MTUxLDU1ICs2MzE4LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAg ICAgfQogIH0KICAKLUBAIC0zMTcwLDcgKzM0MzIsNiBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0 IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCi0gICBDT1JFX0FERFIgbG93cGMs IGhpZ2hwYzsKLSAgIHN0cnVjdCBzeW10YWIgKnN5bXRhYjsKLSAgIHN0cnVjdCBjbGVhbnVwICpi YWNrX3RvOwotLSAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKLSAgIENPUkVfQUREUiBiYXNlYWRk cjsKLSAKLSAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUtPnNlY3Rpb25fb2Zmc2V0cywg U0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwotQEAgLTMxODAsMzAgKzM0NDEsNyBAQCBwcm9jZXNz X2Z1bGxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UpCi0gCi0g ICBjdS0+bGlzdF9pbl9zY29wZSA9ICZmaWxlX3N5bWJvbHM7Ci0gCi0tICAvKiBGaW5kIHRoZSBi YXNlIGFkZHJlc3Mgb2YgdGhlIGNvbXBpbGF0aW9uIHVuaXQgZm9yIHJhbmdlIGxpc3RzIGFuZAot LSAgICAgbG9jYXRpb24gbGlzdHMuICBJdCB3aWxsIG5vcm1hbGx5IGJlIHNwZWNpZmllZCBieSBE V19BVF9sb3dfcGMuCi0tICAgICBJbiBEV0FSRi0zIGRyYWZ0IDQsIHRoZSBiYXNlIGFkZHJlc3Mg Y291bGQgYmUgb3ZlcnJpZGRlbiBieQotLSAgICAgRFdfQVRfZW50cnlfcGMuICBJdCdzIGJlZW4g cmVtb3ZlZCwgYnV0IEdDQyBzdGlsbCB1c2VzIHRoaXMgZm9yCi0tICAgICBjb21waWxhdGlvbiB1 bml0cyB3aXRoIGRpc2NvbnRpbnVvdXMgcmFuZ2VzLiAgKi8KLS0KLS0gIGN1LT5iYXNlX2tub3du ID0gMDsKLS0gIGN1LT5iYXNlX2FkZHJlc3MgPSAwOwotLQotLSAgYXR0ciA9IGR3YXJmMl9hdHRy IChjdS0+ZGllcywgRFdfQVRfZW50cnlfcGMsIGN1KTsKLS0gIGlmIChhdHRyKQotLSAgICB7Ci0t ICAgICAgY3UtPmJhc2VfYWRkcmVzcyA9IERXX0FERFIgKGF0dHIpOwotLSAgICAgIGN1LT5iYXNl X2tub3duID0gMTsKLS0gICAgfQotLSAgZWxzZQotLSAgICB7Ci0tICAgICAgYXR0ciA9IGR3YXJm Ml9hdHRyIChjdS0+ZGllcywgRFdfQVRfbG93X3BjLCBjdSk7Ci0tICAgICAgaWYgKGF0dHIpCi0t CXsKLS0JICBjdS0+YmFzZV9hZGRyZXNzID0gRFdfQUREUiAoYXR0cik7Ci0tCSAgY3UtPmJhc2Vf a25vd24gPSAxOwotLQl9Ci0tICAgIH0KLSsgIGR3YXJmMl9maW5kX2Jhc2VfYWRkcmVzcyAoY3Ut PmRpZXMsIGN1KTsKLSAKLSAgIC8qIERvIGxpbmUgbnVtYmVyIGRlY29kaW5nIGluIHJlYWRfZmls ZV9zY29wZSAoKSAqLwotICAgcHJvY2Vzc19kaWUgKGN1LT5kaWVzLCBjdSk7Ci1AQCAtMzIzNCw2 ICszNDcyLDcgQEAgcHJvY2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3Vf ZGF0YSAqcGVyX2N1KQotIHN0YXRpYyB2b2lkCi0gcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSB7Ci0rCi0gICBzd2l0Y2ggKGRpZS0+dGFn KQotICAgICB7Ci0gICAgIGNhc2UgRFdfVEFHX3BhZGRpbmc6Ci1AQCAtMzI5Nyw2ICszNTM2LDE0 IEBAIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCitAQCAtMzI5Nyw2ICszNTYzLDE0IEBAIHByb2Nlc3NfZGllIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIGNhc2UgRFdfVEFHX2ltcG9ydGVkX2Rl Y2xhcmF0aW9uOgogICAgICBjYXNlIERXX1RBR19pbXBvcnRlZF9tb2R1bGU6CiAgICAgICAgcHJv Y2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8gPSAxOwpAQCAtNTIxNCw3ICs2MzMzLDcgQEAgaW5k ZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICAgICBpZiAoZGllLT5jaGlsZCAhPSBOVUxM ICYmIChkaWUtPnRhZyA9PSBEV19UQUdfaW1wb3J0ZWRfZGVjbGFyYXRpb24KICAJCQkJIHx8IGN1 LT5sYW5ndWFnZSAhPSBsYW5ndWFnZV9mb3J0cmFuKSkKICAJY29tcGxhaW50ICgmc3ltZmlsZV9j b21wbGFpbnRzLCBfKCJUYWcgJyVzJyBoYXMgdW5leHBlY3RlZCBjaGlsZHJlbiIpLAotQEAgLTMz MTIsNDIgKzM1NTksNjkgQEAgcHJvY2Vzc19kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zMzEyLDQxICszNTg2LDY4IEBAIHByb2Nlc3NfZGllIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgLyogUmV0dXJuIHRo ZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiBESUUsIGJhc2VkIG9uIGl0cyBEV19BVF9uYW1lLgog ICAgIElmIHNjb3BlIHF1YWxpZmllcnMgYXJlIGFwcHJvcHJpYXRlIHRoZXkgd2lsbCBiZSBhZGRl ZC4gIFRoZSByZXN1bHQKICAgICB3aWxsIGJlIGFsbG9jYXRlZCBvbiB0aGUgb2JqZmlsZV9vYnN0 YWNrLCBvciBOVUxMIGlmIHRoZSBESUUgZG9lcwpAQCAtNTI4OSw3ICs2NDA4LDYgQEAgaW5kZXgg NDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIHJldHVybiBuYW1lOwogIH0KICAKLS0vKiBSZWFk IHRoZSBpbXBvcnQgc3RhdGVtZW50IHNwZWNpZmllZCBieSB0aGUgZ2l2ZW4gZGllIGFuZCByZWNv cmQgaXQuICAqLwogKy8qIHJlYWQgdGhlIGdpdmVuIGRpZSdzIGRlY2xfbGluZSBudW1iZXIuIFJl dHVybiAtMSBpZiBpbiBjYXNlIG9mIGFuIGVycm9yICovCiArc3RhdGljIGNvbnN0IGludCBkd2Fy ZjJfcmVhZF9kZWNsX2xpbmUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSl7CiArICBzdHJ1Y3QgYXR0cmlidXRlICpsaW5lX2F0dHI7CkBAIC01MzAyLDExICs2NDIw LDEwIEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiArICByZXR1cm4gLTE7CiArfQog KwotKy8qIFJlYWQgdGhlIGltcG9ydCBzdGF0ZW1lbnQgc3BlY2lmaWVkIGJ5IHRoZSBnaXZlbiBk aWUgYW5kIHJlY29yZCBpdC4gICovIAorIC8qIFJlYWQgdGhlIGltcG9ydCBzdGF0ZW1lbnQgc3Bl Y2lmaWVkIGJ5IHRoZSBnaXZlbiBkaWUgYW5kIHJlY29yZCBpdC4gICovCiAgCiAgc3RhdGljIHZv aWQKLSByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSkKLUBAIC0zMzU2LDkgKzM2MzAsMTUgQEAgcmVhZF9pbXBvcnRfc3RhdGVt ZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMzM1 Niw5ICszNjU3LDE1IEBAIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGRpZV9pbmZvICppbXBvcnRlZF9k aWU7CiAgICBjb25zdCBjaGFyICppbXBvcnRlZF9uYW1lOwogICAgY29uc3QgY2hhciAqaW1wb3J0 ZWRfbmFtZV9wcmVmaXg7CkBAIC01MzI0LDcgKzY0NDEsNyBAQCBpbmRleCA0NDViYWI4Li40MjAz OWVhIDEwMDY0NAogICAgaW1wb3J0X2F0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9pbXBv cnQsIGN1KTsKICAgIGlmIChpbXBvcnRfYXR0ciA9PSBOVUxMKQogICAgICB7Ci1AQCAtMzQwNiwy OSArMzY4Niw0NSBAQCByZWFkX2ltcG9ydF9zdGF0ZW1lbnQgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNDA2LDE3ICszNzEzLDI3IEBAIHJlYWRfaW1w b3J0X3N0YXRlbWVudCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogICAgICAgIHJldHVybjsKICAgICAgfQogIApAQCAtNTM0MywxMiArNjQ2MCw4IEBAIGluZGV4 IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiArICAvKiBGaWd1cmUgb3V0IHdoZXJlIHRoZSBzdGF0 ZW1lbnQgaXMgYmVpbmcgaW1wb3J0ZWQgdG8gKi8KICAgIGltcG9ydF9wcmVmaXggPSBkZXRlcm1p bmVfcHJlZml4IChkaWUsIGN1KTsKICAKLS0gIC8qIEZpZ3VyZSBvdXQgd2hhdCB0aGUgc2NvcGUg b2YgdGhlIGltcG9ydGVkIGRpZSBpcyBhbmQgcHJlcGVuZCBpdAotLSAgICAgdG8gdGhlIG5hbWUg b2YgdGhlIGltcG9ydGVkIGRpZS4gICovCi0rICAvKgotKyAgIEZpZ3VyZSBvdXQgd2hhdCB0aGUg c2NvcGUgb2YgdGhlIGltcG9ydGVkIGRpZSBpcyBhbmQgcHJlcGVuZCBpdAotKyAgIHRvIHRoZSBu YW1lIG9mIHRoZSBpbXBvcnRlZCBkaWUKLSsgICAqLworICAgLyogRmlndXJlIG91dCB3aGF0IHRo ZSBzY29wZSBvZiB0aGUgaW1wb3J0ZWQgZGllIGlzIGFuZCBwcmVwZW5kIGl0CisgICAgICB0byB0 aGUgbmFtZSBvZiB0aGUgaW1wb3J0ZWQgZGllLiAgKi8KICAgIGltcG9ydGVkX25hbWVfcHJlZml4 ID0gZGV0ZXJtaW5lX3ByZWZpeCAoaW1wb3J0ZWRfZGllLCBjdSk7CiAtCiAtICBpZiAoc3RybGVu IChpbXBvcnRlZF9uYW1lX3ByZWZpeCkgPiAwKQpAQCAtNTM2MiwxMSArNjQ3NSw3IEBAIGluZGV4 IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgICAgICAgY2Fub25pY2FsX25hbWUgPSBhbGxvY2Eg KHN0cmxlbiAoaW1wb3J0ZWRfbmFtZV9wcmVmaXgpICsgMiArIHN0cmxlbiAoaW1wb3J0ZWRfbmFt ZSkgKyAxKTsKICAgICAgICBzdHJjcHkgKGNhbm9uaWNhbF9uYW1lLCBpbXBvcnRlZF9uYW1lX3By ZWZpeCk7CiAgICAgICAgc3RyY2F0IChjYW5vbmljYWxfbmFtZSwgIjo6Iik7Ci0gICAgICAgc3Ry Y2F0IChjYW5vbmljYWxfbmFtZSwgaW1wb3J0ZWRfbmFtZSk7Ci0tICAgIH0KLS0gIGVsc2UKLS0g ICAgewotKyAgICB9ZWxzZXsKK0BAIC0zNDI3LDggKzM3NDQsMTQgQEAgcmVhZF9pbXBvcnRfc3Rh dGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAg ICAgY2Fub25pY2FsX25hbWUgPSBhbGxvY2EgKHN0cmxlbiAoaW1wb3J0ZWRfbmFtZSkgKyAxKTsK ICAgICAgICBzdHJjcHkgKGNhbm9uaWNhbF9uYW1lLCBpbXBvcnRlZF9uYW1lKTsKICAgICAgfQpA QCAtNTM4MywxNiArNjQ5Miw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgfQog IAogIHN0YXRpYyB2b2lkCi1AQCAtMzY3Niw3ICszOTcyLDcgQEAgdW5zaWduZWRfaW50X2NvbXBh ciAoY29uc3Qgdm9pZCAqYXAsIGNvbnN0IHZvaWQgKmJwKQotIAotICAgcmV0dXJuIChhID4gYikg LSAoYiA+IGEpOwotIH0KLS0KLSsgIAotIC8qIERXX0FUX2Fic3RyYWN0X29yaWdpbiBpbmhlcml0 cyB3aG9sZSBESUVzIChub3QganVzdCB0aGVpciBhdHRyaWJ1dGVzKS4KLSAgICBJbmhlcml0IG9u bHkgdGhlIGNoaWxkcmVuIG9mIHRoZSBEV19BVF9hYnN0cmFjdF9vcmlnaW4gRElFIG5vdCBiZWlu ZyBhbHJlYWR5Ci0gICAgcmVmZXJlbmNlZCBieSBEV19BVF9hYnN0cmFjdF9vcmlnaW4gZnJvbSB0 aGUgY2hpbGRyZW4gb2YgdGhlIGN1cnJlbnQgRElFLiAgKi8KLUBAIC0zNjk3LDYgKzM5OTMsMTQg QEAgaW5oZXJpdF9hYnN0cmFjdF9kaWVzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtMzY5Nyw2ICs0MDIwLDE0IEBAIGluaGVyaXRfYWJzdHJhY3RfZGll cyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0cjsKICAKICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9h YnN0cmFjdF9vcmlnaW4sIGN1KTsKQEAgLTU0MDcsNyArNjUwNyw3IEBAIGluZGV4IDQ0NWJhYjgu LjQyMDM5ZWEgMTAwNjQ0CiAgICBpZiAoIWF0dHIpCiAgICAgIHJldHVybjsKICAKLUBAIC0zNzk1 LDYgKzQwOTksNyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zNzk1LDYgKzQxMjYsNyBAQCByZWFkX2Z1bmNfc2NvcGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIGNoYXIgKm5h bWU7CiAgICBDT1JFX0FERFIgYmFzZWFkZHI7CiAgICBzdHJ1Y3QgYmxvY2sgKmJsb2NrOwpAQCAt NTQxNSw3ICs2NTE1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIGludCBp bmxpbmVkX2Z1bmMgPSAoZGllLT50YWcgPT0gRFdfVEFHX2lubGluZWRfc3Vicm91dGluZSk7CiAg CiAgICBpZiAoaW5saW5lZF9mdW5jKQotQEAgLTM4MTMsMTMgKzQxMTgsMjMgQEAgcmVhZF9mdW5j X3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAt MzgxMywxMyArNDE0NSwyMyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZp bGUtPnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwogIApAQCAtNTQ0 Miw3ICs2NTQyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIGxvd3BjICs9 IGJhc2VhZGRyOwogICAgaGlnaHBjICs9IGJhc2VhZGRyOwogIAotQEAgLTM4NDYsMTQgKzQxNjEs MTkgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtMzg0NiwxNCArNDE4OCwxOSBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGN1LT5saXN0X2lu X3Njb3BlID0gJmxvY2FsX3N5bWJvbHM7CiAgCkBAIC01NDY5LDcgKzY1NjksNyBAQCBpbmRleCA0 NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgICB9CiAgCiAgICBpbmhlcml0X2Fic3RyYWN0X2Rp ZXMgKGRpZSwgY3UpOwotQEAgLTM4NjksNiArNDE4OSwxMyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zODY5LDYgKzQy MTYsMTMgQEAgcmVhZF9mdW5jX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCiAgCQkJZGV0ZXJtaW5lX3ByZWZpeCAoZGllLCBjdSksCiAgCQkJcHJvY2Vz c2luZ19oYXNfbmFtZXNwYWNlX2luZm8pOwogIApAQCAtNTQ4Myw3ICs2NTgzLDcgQEAgaW5kZXgg NDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIC8qIElmIHdlIGhhdmUgYWRkcmVzcyByYW5nZXMs IHJlY29yZCB0aGVtLiAgKi8KICAgIGR3YXJmMl9yZWNvcmRfYmxvY2tfcmFuZ2VzIChkaWUsIGJs b2NrLCBiYXNlYWRkciwgY3UpOwogICAgCi1AQCAtMzkwNSw3ICs0MjMyLDcgQEAgcmVhZF9sZXhp Y2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCitAQCAtMzkwNSw3ICs0MjU5LDcgQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgICBhcyBtdWx0aXBs ZSBsZXhpY2FsIGJsb2Nrcz8gIEhhbmRsaW5nIGNoaWxkcmVuIGluIGEgc2FuZSB3YXkgd291bGQK ICAgICAgIGJlIG5hc3R5LiAgTWlnaHQgYmUgZWFzaWVyIHRvIHByb3Blcmx5IGV4dGVuZCBnZW5l cmljIGJsb2NrcyB0byAKICAgICAgIGRlc2NyaWJlIHJhbmdlcy4gICovCkBAIC01NDkyLDcgKzY1 OTIsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgICByZXR1cm47CiAgICBs b3dwYyArPSBiYXNlYWRkcjsKICAgIGhpZ2hwYyArPSBiYXNlYWRkcjsKLUBAIC0zOTIyLDcgKzQy NDksNyBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0zOTIyLDcgKzQyNzYsNyBAQCByZWFkX2xleGljYWxf YmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK ICAgICAgfQogICAgbmV3ID0gcG9wX2NvbnRleHQgKCk7CiAgCkBAIC01NTAxLDcgKzY2MDEsNyBA QCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgICB7CiAgICAgICAgc3RydWN0IGJs b2NrICpibG9jawogICAgICAgICAgPSBmaW5pc2hfYmxvY2sgKDAsICZsb2NhbF9zeW1ib2xzLCBu ZXctPm9sZF9ibG9ja3MsIG5ldy0+c3RhcnRfYWRkciwKLUBAIC00MDc3LDcgKzQ0MDQsOCBAQCBk d2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9mZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJu LAorQEAgLTQwNzcsNyArNDQzMSw4IEBAIGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQgb2Zm c2V0LCBDT1JFX0FERFIgKmxvd19yZXR1cm4sCiAgICAgZGlzY29udGludW91cywgaS5lLiBkZXJp dmVkIGZyb20gRFdfQVRfcmFuZ2VzIGluZm9ybWF0aW9uLiAgKi8KICBzdGF0aWMgaW50CiAgZHdh cmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3Bj LApAQCAtNTUxMSw3ICs2NjExLDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICB7 CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogICAgQ09SRV9BRERSIGxvdyA9IDA7Ci1AQCAt NDEwNSw3ICs0NDMzLDcgQEAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBDT1JFX0FERFIgKmxvd3BjLAorQEAgLTQxMDUsNyArNDQ2MCw3IEBAIGR3YXJmMl9nZXRf cGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKICAJewog IAkgIC8qIFZhbHVlIG9mIHRoZSBEV19BVF9yYW5nZXMgYXR0cmlidXRlIGlzIHRoZSBvZmZzZXQg aW4gdGhlCiAgCSAgICAgLmRlYnVnX3JhbmdlcyBzZWN0aW9uLiAgKi8KQEAgLTU1MjAsNyArNjYy MCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCSAgICByZXR1cm4gMDsKICAJ ICAvKiBGb3VuZCBkaXNjb250aW51b3VzIHJhbmdlIG9mIGFkZHJlc3Nlcy4gICovCiAgCSAgcmV0 ID0gLTE7Ci1AQCAtNDE0NCw3ICs0NDcyLDcgQEAgZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2Jv dW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNDE0NCw3ICs0NDk5LDcgQEAgZHdhcmYy X2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICBDT1JF X0FERFIgbG93LCBoaWdoOwogICAgc3RydWN0IGRpZV9pbmZvICpjaGlsZCA9IGRpZS0+Y2hpbGQ7 CiAgCkBAIC01NTI5LDcgKzY2MjksNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAog ICAgICB7CiAgICAgICAgKmxvd3BjID0gbWluICgqbG93cGMsIGxvdyk7CiAgICAgICAgKmhpZ2hw YyA9IG1heCAoKmhpZ2hwYywgaGlnaCk7Ci1AQCAtNDE4MSw3ICs0NTA5LDcgQEAgZ2V0X3Njb3Bl X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNDE4MSw3ICs0NTM2LDcgQEAg Z2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgICBDT1JFX0FERFIg YmVzdF9oaWdoID0gKENPUkVfQUREUikgMDsKICAgIENPUkVfQUREUiBjdXJyZW50X2xvdywgY3Vy cmVudF9oaWdoOwogIApAQCAtNTUzOCw2NiArNjYzOCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5 ZWEgMTAwNjQ0CiAgICAgIHsKICAgICAgICBiZXN0X2xvdyA9IGN1cnJlbnRfbG93OwogICAgICAg IGJlc3RfaGlnaCA9IGN1cnJlbnRfaGlnaDsKLUBAIC00Mzg0LDIxICs0NzEyLDggQEAgZHdhcmYy X2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUs Ci0gICAgICAgLyogR2V0IGJpdCBvZmZzZXQgb2YgZmllbGQuICAqLwotICAgICAgIGF0dHIgPSBk d2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX21lbWJlcl9sb2NhdGlvbiwgY3UpOwotICAgICAg IGlmIChhdHRyKQotLQl7Ci0tICAgICAgICAgIGludCBieXRlX29mZnNldDsKLS0KLS0gICAgICAg ICAgaWYgKGF0dHJfZm9ybV9pc19zZWN0aW9uX29mZnNldCAoYXR0cikpCi0tICAgICAgICAgICAg ewotLSAgICAgICAgICAgICAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25fZXhwcl9jb21wbGFpbnQg KCk7Ci0tICAgICAgICAgICAgICBieXRlX29mZnNldCA9IDA7Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgICBlbHNlIGlmIChhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIpKQotLSAgICAgICAg ICAgIGJ5dGVfb2Zmc2V0ID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAw KTsKLS0gICAgICAgICAgZWxzZQotLSAgICAgICAgICAgIGJ5dGVfb2Zmc2V0ID0gZGVjb2RlX2xv Y2Rlc2MgKERXX0JMT0NLIChhdHRyKSwgY3UpOwotLQotLSAgICAgICAgICBTRVRfRklFTERfQklU UE9TICgqZnAsIGJ5dGVfb2Zmc2V0ICogYml0c19wZXJfYnl0ZSk7Ci0tCX0KLSsJU0VUX0ZJRUxE X0JJVFBPUyAoKmZwLCBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDAsIGN1 KQotKwkJCSAgICAgICAqIGJpdHNfcGVyX2J5dGUpOwotICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9iaXRfb2Zmc2V0LCBjdSk7Ci0gICAgICAgaWYgKGF0dHIpCi0gCXsKLUBA IC00NDc2LDcgKzQ3OTEsMTEgQEAgZHdhcmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2luZm8g KmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCi0gICAgICAgaWYgKGZpZWxkbmFtZSA9PSBOVUxM KQotIAlyZXR1cm47Ci0gCi0tICAgICAgLyogR2V0IHBoeXNpY2FsIG5hbWUuICAqLwotKyAgICAg IC8qIEdldCBwaHlzaWNhbCBuYW1lLiAgV2UgcHJlZmVyIHRoZSBsaW5rYWdlIG5hbWUgaWYgb25l IHdhcyBzcGVjaWZpZWQsCi0rCSBiZWNhdXNlIHRoaXMgbGV0cyBHREIgZmluZCBhIG5vbi1kZWJ1 Z2dpbmcgdmVyc2lvbiBvZiB0aGUgc3ltYm9sLgotKwkgT3RoZXJ3aXNlIGNvbnN0cnVjdCB0aGUg ZnVsbCBuYW1lIGZyb20gdHlwZSBpbmZvcm1hdGlvbi4gIElkZWFsbHksCi0rCSB3aGVuIEdEQiBz dXBwb3J0cyBjYW5vbmljYWxpemF0aW9uIG9mIEMrKyBzeW1ib2wgbmFtZXMsIHdlIHdpbGwgbm90 Ci0rCSBuZWVkIHRoZSBsaW5rYWdlIG5hbWUgZm9yIGFueXRoaW5nLiAgKi8KLSAgICAgICBwaHlz bmFtZSA9IGR3YXJmMl9saW5rYWdlX25hbWUgKGRpZSwgY3UpOwotIAotICAgICAgIC8qIFRoZSBu YW1lIGlzIGFscmVhZHkgYWxsb2NhdGVkIGFsb25nIHdpdGggdGhpcyBvYmpmaWxlLCBzbyB3ZSBk b24ndAotQEAgLTQ0OTAsNyArNDgwOSw3IEBAIGR3YXJmMl9hZGRfZmllbGQgKHN0cnVjdCBmaWVs ZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAotICAgICAgIC8qIEMrKyBiYXNlIGNs YXNzIGZpZWxkLiAgKi8KLSAgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZGF0 YV9tZW1iZXJfbG9jYXRpb24sIGN1KTsKLSAgICAgICBpZiAoYXR0cikKLS0JU0VUX0ZJRUxEX0JJ VFBPUyAoKmZwLCBkZWNvZGVfbG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBjdSkKLSsJU0VUX0ZJ RUxEX0JJVFBPUyAoKmZwLCBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDAs IGN1KQotIAkJCSAgICAgICAqIGJpdHNfcGVyX2J5dGUpOwotICAgICAgIEZJRUxEX0JJVFNJWkUg KCpmcCkgPSAwOwotICAgICAgIEZJRUxEX1RZUEUgKCpmcCkgPSBkaWVfdHlwZSAoZGllLCBjdSk7 Ci1AQCAtNDYwNyw3ICs0OTI2LDExIEBAIGR3YXJmMl9hZGRfbWVtYmVyX2ZuIChzdHJ1Y3QgZmll bGRfaW5mbyAqZmlwLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKLSAgIGlmIChmaWVsZG5hbWUgPT0g TlVMTCkKLSAgICAgcmV0dXJuOwotIAotLSAgLyogR2V0IHRoZSBtYW5nbGVkIG5hbWUuICAqLwot KyAgLyogR2V0IHBoeXNpY2FsIG5hbWUuICBXZSBwcmVmZXIgdGhlIGxpbmthZ2UgbmFtZSBpZiBv bmUgd2FzIHNwZWNpZmllZCwKLSsgICAgIGJlY2F1c2UgdGhpcyBsZXRzIEdEQiBmaW5kIGEgbm9u LWRlYnVnZ2luZyB2ZXJzaW9uIG9mIHRoZSBzeW1ib2wuCi0rICAgICBPdGhlcndpc2UgY29uc3Ry dWN0IHRoZSBmdWxsIG5hbWUgZnJvbSB0eXBlIGluZm9ybWF0aW9uLiAgSWRlYWxseSwKLSsgICAg IHdoZW4gR0RCIHN1cHBvcnRzIGNhbm9uaWNhbGl6YXRpb24gb2YgQysrIHN5bWJvbCBuYW1lcywg d2Ugd2lsbCBub3QKLSsgICAgIG5lZWQgdGhlIGxpbmthZ2UgbmFtZSBmb3IgYW55dGhpbmcuICAq LwotICAgcGh5c25hbWUgPSBkd2FyZjJfbGlua2FnZV9uYW1lIChkaWUsIGN1KTsKLSAKLSAgIC8q IExvb2sgdXAgbWVtYmVyIGZ1bmN0aW9uIG5hbWUgaW4gZmllbGRsaXN0LiAgKi8KLUBAIC00NjUy LDcgKzQ5NzUsNyBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8gKmZp cCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCitAQCAtNDY2Myw3ICs1MDE4LDcgQEAgZHdhcmYyX2Fk ZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvICpmaXAsIHN0cnVjdCBkaWVfaW5mbyAqZGll LAogICAgLyogVGhlIG5hbWUgaXMgYWxyZWFkeSBhbGxvY2F0ZWQgYWxvbmcgd2l0aCB0aGlzIG9i amZpbGUsIHNvIHdlIGRvbid0CiAgICAgICBuZWVkIHRvIGR1cGxpY2F0ZSBpdCBmb3IgdGhlIHR5 cGUuICAqLwogICAgZm5wLT5waHlzbmFtZSA9IHBoeXNuYW1lID8gcGh5c25hbWUgOiAiIjsKQEAg LTU2MDYsMzEgKzY2NDcsMzMgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIHRo aXNfdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwogICAgaWYgKHRoaXNfdHlwZSAmJiBU WVBFX0NPREUgKHRoaXNfdHlwZSkgPT0gVFlQRV9DT0RFX0ZVTkMpCiAgICAgIHsKLUBAIC00NzA5 LDIyICs1MDMyLDcgQEAgZHdhcmYyX2FkZF9tZW1iZXJfZm4gKHN0cnVjdCBmaWVsZF9pbmZvICpm aXAsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAotICAgLyogR2V0IGluZGV4IGluIHZpcnR1YWwgZnVu Y3Rpb24gdGFibGUgaWYgaXQgaXMgYSB2aXJ0dWFsIG1lbWJlciBmdW5jdGlvbi4gICovCi0gICBh dHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfdnRhYmxlX2VsZW1fbG9jYXRpb24sIGN1KTsK LSAgIGlmIChhdHRyKQotLSAgICB7Ci0tICAgICAgLyogU3VwcG9ydCB0aGUgLmRlYnVnX2xvYyBv ZmZzZXRzICovCi0tICAgICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCitAQCAtNDcy MywxOCArNTA3OCwxOCBAQCBkd2FyZjJfYWRkX21lbWJlcl9mbiAoc3RydWN0IGZpZWxkX2luZm8g KmZpcCwgc3RydWN0IGRpZV9pbmZvICpkaWUsCisgICAgIHsKKyAgICAgICAvKiBTdXBwb3J0IHRo ZSAuZGVidWdfbG9jIG9mZnNldHMgKi8KKyAgICAgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChh dHRyKSkKIC0gICAgICAgIHsKIC0gICAgICAgICAgZm5wLT52b2Zmc2V0ID0gZGVjb2RlX2xvY2Rl c2MgKERXX0JMT0NLIChhdHRyKSwgY3UpICsgMjsKIC0gICAgICAgIH0KLS0gICAgICBlbHNlIGlm IChhdHRyX2Zvcm1faXNfc2VjdGlvbl9vZmZzZXQgKGF0dHIpKQorKwl7CisrCSAgZm5wLT52b2Zm c2V0ID0gZGVjb2RlX2xvY2Rlc2MgKERXX0JMT0NLIChhdHRyKSwgY3UpICsgMjsKKysJfQorICAg ICAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19zZWN0aW9uX29mZnNldCAoYXR0cikpCiAtICAgICAg ICB7Ci0tCSAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25fZXhwcl9jb21wbGFpbnQgKCk7CisrCXsK KyAJICBkd2FyZjJfY29tcGxleF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoKTsKIC0gICAgICAg IH0KLS0gICAgICBlbHNlCisrCX0KKyAgICAgICBlbHNlCiAtICAgICAgICB7Ci0tCSAgZHdhcmYy X2ludmFsaWRfYXR0cmliX2NsYXNzX2NvbXBsYWludCAoIkRXX0FUX3Z0YWJsZV9lbGVtX2xvY2F0 aW9uIiwKLS0JCQkJCQkgZmllbGRuYW1lKTsKKysJeworIAkgIGR3YXJmMl9pbnZhbGlkX2F0dHJp Yl9jbGFzc19jb21wbGFpbnQgKCJEV19BVF92dGFibGVfZWxlbV9sb2NhdGlvbiIsCisgCQkJCQkJ IGZpZWxkbmFtZSk7CiAtICAgICAgICB9Ci0tICAgfQotKyAgICBmbnAtPnZvZmZzZXQgPSBkd2Fy ZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIC0yLCBjdSkgKyAyOworKwl9CisgICAg fQogIH0KICAKLSAvKiBDcmVhdGUgdGhlIHZlY3RvciBvZiBtZW1iZXIgZnVuY3Rpb24gZmllbGRz LCBhbmQgYXR0YWNoIGl0IHRvIHRoZSB0eXBlLiAgKi8KLUBAIC00ODM2LDcgKzUxNDQsNyBAQCBx dWlya19nY2NfbWVtYmVyX2Z1bmN0aW9uX3BvaW50ZXIgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC00ODQ3LDcgKzUyMDIsNyBAQCBxdWlya19nY2NfbWVt YmVyX2Z1bmN0aW9uX3BvaW50ZXIgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgICAgcmV0dXJuIE5VTEw7CiAgCiAgICBkb21haW5fdHlwZSA9IFRZUEVfVEFS R0VUX1RZUEUgKFRZUEVfRklFTERfVFlQRSAocGZuX3R5cGUsIDApKTsKQEAgLTU2MzksNyArNjY4 Miw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgICBzbWFzaF90b19tZXRob2Rf dHlwZSAodHlwZSwgZG9tYWluX3R5cGUsIFRZUEVfVEFSR0VUX1RZUEUgKHBmbl90eXBlKSwKICAJ CQlUWVBFX0ZJRUxEUyAocGZuX3R5cGUpLCBUWVBFX05GSUVMRFMgKHBmbl90eXBlKSwKICAJCQlU WVBFX1ZBUkFSR1MgKHBmbl90eXBlKSk7Ci1AQCAtNDg4OSw3ICs1MTk3LDcgQEAgcmVhZF9zdHJ1 Y3R1cmVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQor QEAgLTQ5MDAsNyArNTI1NSw3IEBAIHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICByZXR1cm4gc2V0X2RpZV90eXBl IChkaWUsIHR5cGUsIGN1KTsKICAgICAgfQogIApAQCAtNTY0OCw3ICs2NjkxLDcgQEAgaW5kZXgg NDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIElOSVRfQ1BMVVNfU1BFQ0lGSUMgKHR5cGUpOwog IAogICAgbmFtZSA9IGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKLUBAIC00ODk4LDE0ICs1MjA2LDE4 IEBAIHJlYWRfc3RydWN0dXJlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKK0BAIC00OTA5LDE0ICs1MjY0LDE4IEBAIHJlYWRfc3RydWN0dXJlX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICBpZiAo Y3UtPmxhbmd1YWdlID09IGxhbmd1YWdlX2NwbHVzCiAgCSAgfHwgY3UtPmxhbmd1YWdlID09IGxh bmd1YWdlX2phdmEpCiAgCXsKQEAgLTU2NzAsNyArNjcxMyw3IEBAIGluZGV4IDQ0NWJhYjguLjQy MDM5ZWEgMTAwNjQ0CiAgCX0KICAgICAgfQogIAotQEAgLTUxMTUsNyArNTQyNyw3IEBAIHJlYWRf ZW51bWVyYXRpb25fdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KQorQEAgLTUxMjYsNyArNTQ4NSw3IEBAIHJlYWRfZW51bWVyYXRpb25fdHlwZSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIHJldHVybiBzZXRf ZGllX3R5cGUgKGRpZSwgdHlwZSwgY3UpOwogICAgICB9CiAgCkBAIC01Njc5LDcgKzY3MjIsNyBA QCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIAogICAgVFlQRV9DT0RFICh0eXBlKSA9 IFRZUEVfQ09ERV9FTlVNOwogICAgbmFtZSA9IGR3YXJmMl9mdWxsX25hbWUgKGRpZSwgY3UpOwot QEAgLTUxNDMsNTEgKzU0NTUsNiBAQCByZWFkX2VudW1lcmF0aW9uX3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01MTU0LDUxICs1NTEzLDYgQEAg cmVhZF9lbnVtZXJhdGlvbl90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKICB9CiAg CkBAIC01NzMxLDcgKzY3NzQsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIC8q IEdpdmVuIGEgcG9pbnRlciB0byBhIGRpZSB3aGljaCBiZWdpbnMgYW4gZW51bWVyYXRpb24sIHBy b2Nlc3MgYWxsCiAgICAgdGhlIGRpZXMgdGhhdCBkZWZpbmUgdGhlIG1lbWJlcnMgb2YgdGhlIGVu dW1lcmF0aW9uLCBhbmQgY3JlYXRlIHRoZQogICAgIHN5bWJvbCBmb3IgdGhlIGVudW1lcmF0aW9u IHR5cGUuCi1AQCAtNTI2NSw2ICs1NTMyLDI5IEBAIHByb2Nlc3NfZW51bWVyYXRpb25fc2NvcGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01Mjc2LDYg KzU1OTAsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgbmV3X3N5bWJvbCAoZGllLCB0aGlzX3R5cGUs IGN1KTsKICB9CiAgCkBAIC01NzYxLDcgKzY4MDQsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVh IDEwMDY0NAogIC8qIEV4dHJhY3QgYWxsIGluZm9ybWF0aW9uIGZyb20gYSBEV19UQUdfYXJyYXlf dHlwZSBESUUgYW5kIHB1dCBpdCBpbgogICAgIHRoZSBESUUncyB0eXBlIGZpZWxkLiAgRm9yIG5v dywgdGhpcyBvbmx5IGhhbmRsZXMgb25lIGRpbWVuc2lvbmFsCiAgICAgYXJyYXlzLiAgKi8KLUBA IC01Mjc4LDcgKzU1NjgsNyBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01Mjg5LDcgKzU2MjYsNyBAQCByZWFkX2FycmF5 X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0 cnVjdCB0eXBlICplbGVtZW50X3R5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZTsKICAgIHN0 cnVjdCB0eXBlICoqcmFuZ2VfdHlwZXMgPSBOVUxMOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 cjsKQEAgLTU3NzAsNyArNjgxMyw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAg ICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsKICAgIGNoYXIgKm5hbWU7CiAgCi1AQCAtNTMyNSwx NiArNTYxNSwxMSBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01MzM2LDE2ICs1NjczLDExIEBAIHJlYWRfYXJyYXlfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgdHlwZSA9 IGVsZW1lbnRfdHlwZTsKICAKICAgIGlmIChyZWFkX2FycmF5X29yZGVyIChkaWUsIGN1KSA9PSBE V19PUkRfY29sX21ham9yKQpAQCAtNTc5Miw3ICs2ODM1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIw MzllYSAxMDA2NDQKICAKICAgIC8qIFVuZGVyc3RhbmQgRHdhcmYyIHN1cHBvcnQgZm9yIHZlY3Rv ciB0eXBlcyAobGlrZSB0aGV5IG9jY3VyIG9uCiAgICAgICB0aGUgUG93ZXJQQyB3LyBBbHRpVmVj KS4gIEdjYyBqdXN0IGFkZHMgYW5vdGhlciBhdHRyaWJ1dGUgdG8gdGhlCi1AQCAtNTQwMSw0OSAr NTY4Niw4MyBAQCByZWFkX3NldF90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCitAQCAtNTQxMiwxMiArNTc0NCwxNCBAQCByZWFkX3NldF90eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICByZXR1cm4gc2V0X2Rp ZV90eXBlIChkaWUsIHNldF90eXBlLCBjdSk7CiAgfQogIApAQCAtNTgwOSwyNiArNjg1MiwzMCBA QCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 cjsKICAgIHN0cnVjdCBzeW1ib2wgKnN5bTsKICAgIENPUkVfQUREUiBiYXNlID0gKENPUkVfQURE UikgMDsKLSAKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9sb2NhdGlvbiwgY3Up OwotICAgaWYgKGF0dHIpCi0tICAgIHsKLS0gICAgICAvKiBTdXBwb3J0IHRoZSAuZGVidWdfbG9j IG9mZnNldHMgKi8KLS0gICAgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKK0BAIC01 NDI3LDI1ICs1NzYxLDU1IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICAgIHsKKyAgICAgICAvKiBTdXBwb3J0IHRoZSAu ZGVidWdfbG9jIG9mZnNldHMgKi8KKyAgICAgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRy KSkKIC0gICAgICAgIHsKIC0gICAgICAgICAgYmFzZSA9IGRlY29kZV9sb2NkZXNjIChEV19CTE9D SyAoYXR0ciksIGN1KTsKIC0gICAgICAgIH0KLS0gICAgICBlbHNlIGlmIChhdHRyX2Zvcm1faXNf c2VjdGlvbl9vZmZzZXQgKGF0dHIpKQorKwl7CisrCSAgYmFzZSA9IGRlY29kZV9sb2NkZXNjIChE V19CTE9DSyAoYXR0ciksIGN1KTsKKysJfQorICAgICAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19z ZWN0aW9uX29mZnNldCAoYXR0cikpCiAtICAgICAgICB7Ci0tCSAgZHdhcmYyX2NvbXBsZXhfbG9j YXRpb25fZXhwcl9jb21wbGFpbnQgKCk7CisrCXsKKyAJICBkd2FyZjJfY29tcGxleF9sb2NhdGlv bl9leHByX2NvbXBsYWludCAoKTsKIC0gICAgICAgIH0KLS0gICAgICBlbHNlCisrCX0KKyAgICAg ICBlbHNlCiAtICAgICAgICB7Ci0tCSAgZHdhcmYyX2ludmFsaWRfYXR0cmliX2NsYXNzX2NvbXBs YWludCAoIkRXX0FUX2xvY2F0aW9uIiwKLS0JCQkJCQkgImNvbW1vbiBibG9jayBtZW1iZXIiKTsK KysJeworIAkgIGR3YXJmMl9pbnZhbGlkX2F0dHJpYl9jbGFzc19jb21wbGFpbnQgKCJEV19BVF9s b2NhdGlvbiIsCisgCQkJCQkJICJjb21tb24gYmxvY2sgbWVtYmVyIik7CiAtICAgICAgICB9Ci0t ICAgIH0KLSsgICAgYmFzZSA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwg MCwgY3UpOworKwl9CisgICAgIH0KICAgIGlmIChkaWUtPmNoaWxkICE9IE5VTEwpCiAgICAgIHsK ICsgICAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSA9IGN1LT5vYmpmaWxlOwpAQCAtNTg0Myw5 ICs2ODkwLDkgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICsgICAgICAvKiBBcnRp ZmljaWFsIHR5cGUgdG8gYmUgdXNlZCBvbmx5IGJ5IGBpbmZvIGNvbW1vbicuICAqLwogKyAgICAg IFRZUEVfTkFNRSAodHlwZSkgPSAiPGNvbW1vbj4iOwogKwotKyAgICAgIGNoaWxkX2RpZSA9IGRp ZS0+Y2hpbGQ7Ci0rICAgICAgd2hpbGUgKGNoaWxkX2RpZSAmJiBjaGlsZF9kaWUtPnRhZykKLSsJ eworICAgICAgIGNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7CisgICAgICAgd2hpbGUgKGNoaWxkX2Rp ZSAmJiBjaGlsZF9kaWUtPnRhZykKKyAJewogKwkgIFRZUEVfTkZJRUxEUyAodHlwZSkrKzsKICsJ ICBjaGlsZF9kaWUgPSBzaWJsaW5nX2RpZSAoY2hpbGRfZGllKTsKICsJfQpAQCAtNTg1Nyw5ICs2 OTA0LDkgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICsJCQkJICAgICAqIFRZUEVf TkZJRUxEUyAodHlwZSkpOwogKyAgICAgIAogKyAgICAgIGZpZWxkID0gVFlQRV9GSUVMRFMgKHR5 cGUpOwotICAgICAgIGNoaWxkX2RpZSA9IGRpZS0+Y2hpbGQ7Ci0gICAgICAgd2hpbGUgKGNoaWxk X2RpZSAmJiBjaGlsZF9kaWUtPnRhZykKLSAJeworKyAgICAgIGNoaWxkX2RpZSA9IGRpZS0+Y2hp bGQ7CisrICAgICAgd2hpbGUgKGNoaWxkX2RpZSAmJiBjaGlsZF9kaWUtPnRhZykKKysJewogKwkg IC8qIENyZWF0ZSB0aGUgc3ltYm9sIGluIHRoZSBEV19UQUdfY29tbW9uX2Jsb2NrIGJsb2NrIGlu IHRoZSBjdXJyZW50CiArCSAgICAgc3ltYm9sIHNjb3BlLiAgKi8KICAJICBzeW0gPSBuZXdfc3lt Ym9sIChjaGlsZF9kaWUsIE5VTEwsIGN1KTsKQEAgLTU4NjgsOSArNjkxNSw4IEBAIGluZGV4IDQ0 NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCSAgYXR0ciA9IGR3YXJmMl9hdHRyIChjaGlsZF9kaWUs IERXX0FUX2RhdGFfbWVtYmVyX2xvY2F0aW9uLCBjdSk7CiAgCSAgaWYgKGF0dHIpCiAgCSAgICB7 Ci0gCSAgICAgIFNZTUJPTF9WQUxVRV9BRERSRVNTIChzeW0pID0KLS0JCWJhc2UgKyBkZWNvZGVf bG9jZGVzYyAoRFdfQkxPQ0sgKGF0dHIpLCBjdSk7Ci0rCQliYXNlICsgZHdhcmYyX2dldF9hdHRy X2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLCBjdSk7CitAQCAtNTQ2Myw4ICs1ODI3LDI1IEBAIHJl YWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCisgCSAgICAgIFNZTUJPTF9WQUxVRV9BRERSRVNTIChzeW0pID0gYmFzZSArIGJ5dGVfb2Zm c2V0OwogIAkgICAgICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgJmdsb2JhbF9zeW1ib2xzKTsK ICAJICAgIH0KICsKQEAgLTU4OTUsNyArNjk0MSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEg MTAwNjQ0CiAgICAgIH0KICB9CiAgCi1AQCAtNTUxMSw3ICs1ODMwLDcgQEAgcmVhZF9uYW1lc3Bh Y2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC01NTMy LDcgKzU5MTMsNyBAQCByZWFkX25hbWVzcGFjZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGlmIChpc19hbm9ueW1vdXMpCiAgCXsKICAJICBjb25z dCBjaGFyICpwcmV2aW91c19wcmVmaXggPSBkZXRlcm1pbmVfcHJlZml4IChkaWUsIGN1KTsKQEAg LTU5MDQsNyArNjk1MCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCX0KICAg ICAgfQogIAotQEAgLTU1MjcsMjAgKzU4NDYsMTU1IEBAIHJlYWRfbmFtZXNwYWNlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTU0OCwyMCArNTkyOSwx NTUgQEAgcmVhZF9uYW1lc3BhY2UgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgICAgfQogIH0KICAKQEAgLTU5MjMsMTAgKzY5NjksOSBAQCBpbmRleCA0NDVi YWI4Li40MjAzOWVhIDEwMDY0NAogKyAgaWYgKHR5cGUpCiArICAgIG5ld19zeW1ib2wgKGRpZSwg dHlwZSwgY3UpOwogK30KLSAKLS0gIC8qIEZJWE1FOiBTdXBwb3J0IHRoZSBzZXBhcmF0ZSBGb3J0 cmFuIG1vZHVsZSBuYW1lc3BhY2VzLiAgKi8KKysKICsvKiBSZWFkIGEgRm9ydHJhbiBtb2R1bGUg YXMgdHlwZS4KLSAKKysKICsgICBNb2R1bGVzIHByZXNlbnQgb25seSBhcyBkZWNsYXJhdGlvbnMg LSBiZWluZyB1c2VkIG9ubHkgZm9yIERXX0FUX2ltcG9ydCBvZgogKyAgIERXX1RBR19pbXBvcnRl ZF9tb2R1bGUgLSBhcmUgaWdub3JlZCBoZXJlLiAgVGhleSBhcmUgcmVhZCBpbiBvbmx5IGluIGZv cm0gb2YKICsgICB0aGUgbW9kdWxlIG5hbWUgYnkgcmVhZF9mb3J0cmFuX2ltcG9ydGVkX21vZHVs ZS4gICovCkBAIC01OTUzLDkgKzY5OTgsMTAgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2 NDQKICsgIHR5cGUgPSBpbml0X3R5cGUgKFRZUEVfQ09ERV9NT0RVTEUsIDAsIDAsIG1vZHVsZV9u YW1lLCBvYmpmaWxlKTsKICsKICsgIC8qIENyZWF0ZSBhIGNvbnRleHQgZm9yIHJlYWRpbmcgdGhl IG1vZHVsZSB2YXJpYWJsZXMuICAqLwotKworIAorLSAgLyogRklYTUU6IFN1cHBvcnQgdGhlIHNl cGFyYXRlIEZvcnRyYW4gbW9kdWxlIG5hbWVzcGFjZXMuICAqLwogKyAgbmV3ID0gcHVzaF9jb250 ZXh0ICgwLCAwKTsKLSsKKyAKICsgIHNhdmVfZmlsZV9zeW1ib2xzID0gZmlsZV9zeW1ib2xzOwog KyAgZmlsZV9zeW1ib2xzID0gTlVMTDsKICsgIHNhdmVfZ2xvYmFsX3N5bWJvbHMgPSBnbG9iYWxf c3ltYm9sczsKQEAgLTYwNjMsNyArNzEwOSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAw NjQ0CiAgfQogIAogIC8qIFJldHVybiB0aGUgbmFtZSBvZiB0aGUgbmFtZXNwYWNlIHJlcHJlc2Vu dGVkIGJ5IERJRS4gIFNldAotQEAgLTU3MDUsMjkgKzYxNTksMTE0IEBAIHJlYWRfdGFnX3N0cmlu Z190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAt NTcyNiwyOSArNjI0MiwxMTMgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo ID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJh bmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAq YXR0cjsKQEAgLTYxNzgsOCArNzIyNCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0 CiArCSAgVFlQRV9EWU5BTUlDIChyYW5nZV90eXBlKSA9IDE7CiArCX0KICsgICAgICBlbHNlIGlm IChhdHRyICYmIGF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpCi0rCVRZUEVfSElHSF9CT1VO RCAocmFuZ2VfdHlwZSkgPSBkd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDAs Ci0rCQkJCQkJCQkgICAgICAgY3UpOworKwlUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0g ZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKICAgICAgICBlbHNlCiAt ICAgICAgICB7CiAtICAgICAgICAgIGxlbmd0aCA9IDE7CkBAIC02MTkyLDcgKzcyMzcsNyBAQCBp bmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgY2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3Ry aW5nX2NoYXJfdHlwZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFyY2gpOwogICAgdHlwZSA9IGNy ZWF0ZV9zdHJpbmdfdHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5nZV90eXBlKTsKICAKLUBAIC01 ODIyLDcgKzYzNjEsNiBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKgorQEAgLTU4NDMsNyArNjQ0Myw2 IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCiAgcmVhZF90eXBlZGVmIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3RydWN0IG9iamZpbGUgKm9iamZp bGUgPSBjdS0+b2JqZmlsZTsKQEAgLTYyMDAsNyArNzI0NSw3IEBAIGluZGV4IDQ0NWJhYjguLjQy MDM5ZWEgMTAwNjQ0CiAgICBjb25zdCBjaGFyICpuYW1lID0gTlVMTDsKICAgIHN0cnVjdCB0eXBl ICp0aGlzX3R5cGU7CiAgCi1AQCAtNTkzMCw4ICs2NDY4LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNTk1MSw4 ICs2NTUwLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgdHlwZSAqYmFzZV90eXBlOwogICAgc3RydWN0 IHR5cGUgKnJhbmdlX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAtNjIxMCw3 ICs3MjU1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgIGNoYXIgKm5hbWU7 CiAgICAKICAgIGJhc2VfdHlwZSA9IGRpZV90eXBlIChkaWUsIGN1KTsKLUBAIC01OTQ0LDQyICs2 NDgxLDkxIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTU5NjUsNDIgKzY1NjMsODkgQEAgcmVhZF9zdWJyYW5nZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkgICAg IDAsIE5VTEwsIGN1LT5vYmpmaWxlKTsKICAgICAgfQogIApAQCAtNjI0MCw3ICs3Mjg1LDcgQEAg aW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICsgIGVsc2UKICsgICAgewogKyAgICAgIGlm IChhdHRyICYmIGF0dHJfZm9ybV9pc19jb25zdGFudCAoYXR0cikpCi0rCWxvdyA9IGR3YXJmMl9n ZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCwgY3UpOworKwlsb3cgPSBkd2FyZjJfZ2V0 X2F0dHJfY29uc3RhbnRfdmFsdWUgKGF0dHIsIDApOwogKyAgICAgIGVsc2UKICsJewogKwkgIGlm IChjdS0+bGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbikKQEAgLTYzMDAsOCArNzM0NSw3IEBA IGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiArICBlbHNlCiArICAgIHsKICsgICAgICBp ZiAoYXR0ciAmJiBhdHRyX2Zvcm1faXNfY29uc3RhbnQgKGF0dHIpKQotKwlUWVBFX0hJR0hfQk9V TkQgKHJhbmdlX3R5cGUpID0gZHdhcmYyX2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAw LAotKwkJCQkJCQkJICAgICAgIGN1KTsKKysJVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9 IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMCk7CiAgICAgICAgZWxzZQog LSAgICAgICAgaGlnaCA9IGR3YXJmMl9nZXRfYXR0cl9jb25zdGFudF92YWx1ZSAoYXR0ciwgMSk7 CiArCXsKQEAgLTYzMjIsOCArNzM2Niw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0 CiArICAgIH0KICsgIGVsc2UgaWYgKGF0dHIgJiYgYXR0cl9mb3JtX2lzX2NvbnN0YW50IChhdHRy KSkKICsgICAgewotKyAgICAgIFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpID0gZHdhcmYy X2dldF9hdHRyX2NvbnN0YW50X3ZhbHVlIChhdHRyLCAwLAotKwkJCQkJCQkJICAgICAgY3UpOwor KyAgICAgIFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpID0gZHdhcmYyX2dldF9hdHRyX2Nv bnN0YW50X3ZhbHVlIChhdHRyLCAwKTsKICsgICAgICBpZiAoVFlQRV9CWVRFX1NUUklERSAocmFu Z2VfdHlwZSkgPT0gMCkKICsJY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAogKwkJICAg XygiRm91bmQgRFdfQVRfYnl0ZV9zdHJpZGUgd2l0aCB1bnN1cHBvcnRlZCB2YWx1ZSAwIikpOwpA QCAtNjMzMSw3ICs3Mzc0LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAKICAg IG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CiAgICBpZiAobmFtZSkKLUBAIC02NDUwLDYg KzcwMzYsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqYnVmZmVy LCBnZGJfYnl0ZSAqaW5mb19wdHIsCitAQCAtNjQ3MSw2ICs3MTE2LDcgQEAgbG9hZF9wYXJ0aWFs X2RpZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKmJ1ZmZlciwgZ2RiX2J5dGUgKmluZm9fcHRyLAog IAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19sZXhpY2FsX2Jsb2NrCiAgCSAgJiYgYWJicmV2 LT50YWcgIT0gRFdfVEFHX3ZhcmlhYmxlCiAgCSAgJiYgYWJicmV2LT50YWcgIT0gRFdfVEFHX25h bWVzcGFjZQpAQCAtNjMzOSw3ICs3MzgyLDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2 NDQKICAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfbWVtYmVyKQogIAl7CiAgCSAgLyogT3Ro ZXJ3aXNlIHdlIHNraXAgdG8gdGhlIG5leHQgc2libGluZywgaWYgYW55LiAgKi8KLUBAIC02Njcw LDkgKzcyNTcsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAq cGFydF9kaWUsCitAQCAtNjY5MSw5ICs3MzM3LDYgQEAgcmVhZF9wYXJ0aWFsX2RpZSAoc3RydWN0 IHBhcnRpYWxfZGllX2luZm8gKnBhcnRfZGllLAogIAkgIGlmIChwYXJ0X2RpZS0+ZGlybmFtZSA9 PSBOVUxMKQogIAkgICAgcGFydF9kaWUtPmRpcm5hbWUgPSBEV19TVFJJTkcgKCZhdHRyKTsKICAJ ICBicmVhazsKQEAgLTYzNDksMzYgKzczOTIsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEw MDY0NAogIAljYXNlIERXX0FUX2xvd19wYzoKICAJICBoYXNfbG93X3BjX2F0dHIgPSAxOwogIAkg IHBhcnRfZGllLT5sb3dwYyA9IERXX0FERFIgKCZhdHRyKTsKLUBAIC02NzQ0LDEwICs3MzI4LDEw IEBAIHJlYWRfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwK LSAJICBlbHNlCi0gCSAgICBwYXJ0X2RpZS0+c2libGluZyA9IGJ1ZmZlciArIGR3YXJmMl9nZXRf cmVmX2RpZV9vZmZzZXQgKCZhdHRyKTsKLSAJICBicmVhazsKLS0gICAgICAgIGNhc2UgRFdfQVRf c3RtdF9saXN0OgotLSAgICAgICAgICBwYXJ0X2RpZS0+aGFzX3N0bXRfbGlzdCA9IDE7Ci0tICAg ICAgICAgIHBhcnRfZGllLT5saW5lX29mZnNldCA9IERXX1VOU05EICgmYXR0cik7Ci0tICAgICAg ICAgIGJyZWFrOwotKwljYXNlIERXX0FUX3N0bXRfbGlzdDoKLSsJICBwYXJ0X2RpZS0+aGFzX3N0 bXRfbGlzdCA9IDE7Ci0rCSAgcGFydF9kaWUtPmxpbmVfb2Zmc2V0ID0gRFdfVU5TTkQgKCZhdHRy KTsKLSsJICBicmVhazsKLSAgICAgICAgIGNhc2UgRFdfQVRfYnl0ZV9zaXplOgotICAgICAgICAg ICBwYXJ0X2RpZS0+aGFzX2J5dGVfc2l6ZSA9IDE7Ci0gICAgICAgICAgIGJyZWFrOwotQEAgLTY3 ODksMTMgKzczNzMsNiBAQCByZWFkX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5m byAqcGFydF9kaWUsCi0gCSAgfHwgZHdhcmYyX3Blcl9vYmpmaWxlLT5oYXNfc2VjdGlvbl9hdF96 ZXJvKSkKLSAgICAgcGFydF9kaWUtPmhhc19wY19pbmZvID0gMTsKLSAKLS0gIGlmIChiYXNlX2Fk ZHJlc3NfdHlwZSAhPSBiYXNlX2FkZHJlc3Nfbm9uZSAmJiAhY3UtPmJhc2Vfa25vd24pCi0tICAg IHsKLS0gICAgICBnZGJfYXNzZXJ0IChwYXJ0X2RpZS0+dGFnID09IERXX1RBR19jb21waWxlX3Vu aXQpOwotLSAgICAgIGN1LT5iYXNlX2tub3duID0gMTsKLS0gICAgICBjdS0+YmFzZV9hZGRyZXNz ID0gYmFzZV9hZGRyZXNzOwotLSAgICB9Ci0tCi0gICByZXR1cm4gaW5mb19wdHI7Ci0gfQotIAot QEAgLTY5MDQsNyArNzQ4MSw4IEBAIGZpeHVwX3BhcnRpYWxfZGllIChzdHJ1Y3QgcGFydGlhbF9k aWVfaW5mbyAqcGFydF9kaWUsCitAQCAtNjkyNSw3ICs3NTY4LDggQEAgZml4dXBfcGFydGlhbF9k aWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpwYXJ0X2RpZSwKICAgIC8qIElmIHdlIGZvdW5k IGEgcmVmZXJlbmNlIGF0dHJpYnV0ZSBhbmQgdGhlIERJRSBoYXMgbm8gbmFtZSwgdHJ5CiAgICAg ICB0byBmaW5kIGEgbmFtZSBpbiB0aGUgcmVmZXJyZWQgdG8gRElFLiAgKi8KICAKQEAgLTYzODgs NyArNzQwMiw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgICAgIHsKICAgICAg ICBzdHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqc3BlY19kaWU7CiAgCi1AQCAtODI0NCwxMCArODgy MiwxMiBAQCB2YXJfZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1 Y3Qgc3ltYm9sICpzeW0sCitAQCAtODI2NSwxMCArODkwOSwxMiBAQCB2YXJfZGVjb2RlX2xvY2F0 aW9uIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgICAgICAo aS5lLiB3aGVuIHRoZSB2YWx1ZSBvZiBhIHJlZ2lzdGVyIG9yIG1lbW9yeSBsb2NhdGlvbiBpcwog ICAgICAgcmVmZXJlbmNlZCwgb3IgYSB0aHJlYWQtbG9jYWwgYmxvY2ssIGV0Yy4pLiAgVGhlbiBh Z2FpbiwgaXQgbWlnaHQKICAgICAgIG5vdCBiZSB3b3J0aHdoaWxlLiAgSSdtIGFzc3VtaW5nIHRo YXQgaXQgaXNuJ3QgdW5sZXNzIHBlcmZvcm1hbmNlCkBAIC02NDAzLDcgKzc0MTcsNyBAQCBpbmRl eCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIH0KICAKICAvKiBHaXZlbiBhIHBvaW50ZXIgdG8g YSBEV0FSRiBpbmZvcm1hdGlvbiBlbnRyeSwgZmlndXJlIG91dCBpZiB3ZSBuZWVkCi1AQCAtODI2 OSwyMSArODg0OSwzMCBAQCBuZXdfc3ltYm9sIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTgyOTAsMjEgKzg5MzYsMzAg QEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAKICAgIGJhc2VhZGRyID0gQU5PRkZTRVQgKG9iamZpbGUt PnNlY3Rpb25fb2Zmc2V0cywgU0VDVF9PRkZfVEVYVCAob2JqZmlsZSkpOwogIApAQCAtNjQ0MSw3 ICs3NDU1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAKICAgICAgICAvKiBE ZWZhdWx0IGFzc3VtcHRpb25zLgogICAgICAgICAgIFVzZSB0aGUgcGFzc2VkIHR5cGUgb3IgZGVj b2RlIGl0IGZyb20gdGhlIGRpZS4gICovCi1AQCAtODM4MSw5ICs4OTcwLDI4IEBAIG5ld19zeW1i b2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCitAQCAtODQwMiw5ICs5MDU3LDI4IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCSAg aWYgKGF0dHIpCiAgCSAgICB7CiAgCSAgICAgIHZhcl9kZWNvZGVfbG9jYXRpb24gKGF0dHIsIHN5 bSwgY3UpOwpAQCAtNjQ3MSw3ICs3NDg1LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2 NDQKICAJICAgICAgZWxzZQogIAkJYWRkX3N5bWJvbF90b19saXN0IChzeW0sIGN1LT5saXN0X2lu X3Njb3BlKTsKICAJICAgIH0KLUBAIC04NTEzLDcgKzkxMjEsNyBAQCBuZXdfc3ltYm9sIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQorQEAgLTg1MzQsNyArOTIwOCw3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCSAgYWRkX3N5bWJv bF90b19saXN0IChzeW0sIGN1LT5saXN0X2luX3Njb3BlKTsKICAJICBicmVhazsKICAJY2FzZSBE V19UQUdfZW51bWVyYXRvcjoKQEAgLTY0ODAsNyArNzQ5NCw3IEBAIGluZGV4IDQ0NWJhYjguLjQy MDM5ZWEgMTAwNjQ0CiAgCSAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2NvbnN0X3Zh bHVlLCBjdSk7CiAgCSAgaWYgKGF0dHIpCiAgCSAgICB7Ci1AQCAtODUzNyw2ICs5MTQ1LDE2IEBA IG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3Ry dWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtODU1OCw2ICs5MjMyLDE2IEBAIG5ld19zeW1ib2wgKHN0 cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCiAgCSAgU1lNQk9MX0NMQVNTIChzeW0pID0gTE9DX1RZUEVERUY7CiAgCSAgYWRkX3N5bWJv bF90b19saXN0IChzeW0sICZnbG9iYWxfc3ltYm9scyk7CiAgCSAgYnJlYWs7CkBAIC02NDk3LDcg Kzc1MTEsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogIAlkZWZhdWx0OgogIAkg IC8qIE5vdCBhIHRhZyB3ZSByZWNvZ25pemUuICBIb3BlZnVsbHkgd2UgYXJlbid0IHByb2Nlc3Np bmcKICAJICAgICB0cmFzaCBkYXRhLCBidXQgc2luY2Ugd2UgbXVzdCBzcGVjaWZpY2FsbHkgaWdu b3JlIHRoaW5ncwotQEAgLTg1NTAsOCArOTE2OCw3IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAt ODU3MSw4ICs5MjU1LDcgQEAgbmV3X3N5bWJvbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgICAgICAvKiBGb3IgdGhlIGJl bmVmaXQgb2Ygb2xkIHZlcnNpb25zIG9mIEdDQywgY2hlY2sgZm9yIGFub255bW91cwogIAkgbmFt ZXNwYWNlcyBiYXNlZCBvbiB0aGUgZGVtYW5nbGVkIG5hbWUuICAqLwogICAgICAgIGlmICghcHJv Y2Vzc2luZ19oYXNfbmFtZXNwYWNlX2luZm8KQEAgLTY1MDcsNyArNzUyMSw3IEBAIGluZGV4IDQ0 NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgCWNwX3NjYW5fZm9yX2Fub255bW91c19uYW1lc3BhY2Vz IChzeW0pOwogICAgICB9CiAgICByZXR1cm4gKHN5bSk7Ci1AQCAtODgwMiwxMiArOTQxOSwxOCBA QCByZWFkX3R5cGVfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAq Y3UpCitAQCAtODgyMywxMiArOTUwNiwxOCBAQCByZWFkX3R5cGVfZGllIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICAgIGNhc2UgRFdfVEFHX25hbWVzcGFj ZToKICAgICAgICB0aGlzX3R5cGUgPSByZWFkX25hbWVzcGFjZV90eXBlIChkaWUsIGN1KTsKICAg ICAgICBicmVhazsKQEAgLTY1MjYsNyArNzU0MCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEg MTAwNjQ0CiAgICByZXR1cm4gdGhpc190eXBlOwogIH0KICAKLUBAIC04ODg5LDEwICs5NTEyLDk3 IEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC04OTEwLDEwICs5NTk5LDk3IEBAIGRldGVybWluZV9wcmVmaXggKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAJICAgICBTbyBpdCBkb2Vz IG5vdCBuZWVkIGEgcHJlZml4LiAgKi8KICAJICByZXR1cm4gIiI7CiAgICAgICAgZGVmYXVsdDoK QEAgLTY2MjUsNyArNzYzOSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgLyog UmV0dXJuIGEgbmV3bHktYWxsb2NhdGVkIHN0cmluZyBmb3JtZWQgYnkgY29uY2F0ZW5hdGluZyBQ UkVGSVggYW5kCiAgICAgU1VGRklYIHdpdGggYXBwcm9wcmlhdGUgc2VwYXJhdG9yLiAgSWYgUFJF RklYIG9yIFNVRkZJWCBpcyBOVUxMIG9yIGVtcHR5LCB0aGVuCiAgICAgc2ltcGx5IGNvcHkgdGhl IFNVRkZJWCBvciBQUkVGSVgsIHJlc3BlY3RpdmVseS4gIElmIE9CUyBpcyBub24tbnVsbCwKLUBA IC04OTQ4LDE0ICs5NjU4LDEwOCBAQCBzdGF0aWMgY2hhciAqCitAQCAtODk2OSwxMSArOTc0NSwx MDUgQEAgc3RhdGljIGNoYXIgKgogIGR3YXJmMl9saW5rYWdlX25hbWUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICB7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICph dHRyOwpAQCAtNjY2MSwxMSArNzY3NSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0 CiArCSAgJiYgZGllLT50YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0pCiArCXsKICsJICBzdHJ1Y3Qg dHlwZSAqdHlwZSA9IHJlYWRfdHlwZV9kaWUgKGRpZSwgY3UpOwotIAotLSAgYXR0ciA9IGR3YXJm Ml9hdHRyIChkaWUsIERXX0FUX01JUFNfbGlua2FnZV9uYW1lLCBjdSk7Ci0tICBpZiAoYXR0ciAm JiBEV19TVFJJTkcgKGF0dHIpKQotLSAgICByZXR1cm4gRFdfU1RSSU5HIChhdHRyKTsKLS0gIHJl dHVybiBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CisrCiArCSAgY190eXBlX3ByaW50X2FyZ3MgKHR5 cGUsIGJ1ZiwgMCwgY3UtPmxhbmd1YWdlKTsKICsKICsJICBpZiAoY3UtPmxhbmd1YWdlID09IGxh bmd1YWdlX2phdmEpCkBAIC02NjgzLDcgKzc2OTMsMTEgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzll YSAxMDA2NDQKICsJCWZwdXRzX3VuZmlsdGVyZWQgKCIgY29uc3QiLCBidWYpOwogKwkgICAgfQog Kwl9Ci0rCisgCistICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfTUlQU19saW5rYWdl X25hbWUsIGN1KTsKKy0gIGlmIChhdHRyICYmIERXX1NUUklORyAoYXR0cikpCistICAgIHJldHVy biBEV19TVFJJTkcgKGF0dHIpOworLSAgcmV0dXJuIGR3YXJmMl9uYW1lIChkaWUsIGN1KTsKICsg ICAgICBuYW1lID0gdWlfZmlsZV9vYnNhdmVzdHJpbmcgKGJ1ZiwgJmN1LT5vYmpmaWxlLT5vYmpm aWxlX29ic3RhY2ssCiArCQkJCSAgICZsZW5ndGgpOwogKyAgICAgIHVpX2ZpbGVfZGVsZXRlIChi dWYpOwpAQCAtNjY5OSw5ICs3NzEzLDggQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQK ICsgICAgfQogKwogKyAgcmV0dXJuIG5hbWU7Ci0gfQotIAotLS8qIEdldCBuYW1lIG9mIGEgZGll LCByZXR1cm4gTlVMTCBpZiBub3QgZm91bmQuICAqLworK30KKysKICsvKiBSZXR1cm4gdGhlIGZ1 bGx5IHF1YWxpZmllZCAuc3ltdGFiIG5hbWUgZm9yIHN5bWJvbHMgY29udGFpbmVkIGluIEZvcnRy YW4KICsgICBtb2R1bGVzLiAgUmV0dXJuIERXQVJGMl9OQU1FIG90aGVyd2lzZS4gICovCiArCkBA IC02NzMzLDEzICs3NzQ2LDEwIEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiArICAg IH0KICsKICsgIHJldHVybiBuYW1lOwotK30KLSsKLSsvKiBDYW5vbmljYWxpemUgdGhlIG5hbWUg b2YgdGhlIGdpdmVuIERJRS4gICovCisgfQogIAotIHN0YXRpYyBjaGFyICoKLSBkd2FyZjJfY2Fu b25pY2FsaXplX25hbWUgKGNoYXIgKm5hbWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1LAotQEAgLTEw MTgxLDExICsxMDk4NSwxMiBAQCBkd2FyZjJfZ2V0X3JlZl9kaWVfb2Zmc2V0IChzdHJ1Y3QgYXR0 cmlidXRlICphdHRyKQorIC8qIEdldCBuYW1lIG9mIGEgZGllLCByZXR1cm4gTlVMTCBpZiBub3Qg Zm91bmQuICAqLworQEAgLTEwMjAyLDExICsxMTA3MiwxMSBAQCBkd2FyZjJfZ2V0X3JlZl9kaWVf b2Zmc2V0IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQogICAgcmV0dXJuIDA7CiAgfQogIApAQCAt Njc1MCwyMSArNzc2MCwxMSBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogLXN0YXRp YyBpbnQKIC1kd2FyZjJfZ2V0X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUg KmF0dHIsIGludCBkZWZhdWx0X3ZhbHVlKQogK3N0YXRpYyBDT1JFX0FERFIKLStkd2FyZjJfZ2V0 X2F0dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIENPUkVfQUREUiBk ZWZhdWx0X3ZhbHVlLAotKwkJCQlzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKytkd2FyZjJfZ2V0X2F0 dHJfY29uc3RhbnRfdmFsdWUgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIENPUkVfQUREUiBkZWZh dWx0X3ZhbHVlKQogIHsKICAgIGlmIChhdHRyLT5mb3JtID09IERXX0ZPUk1fc2RhdGEpCiAgICAg IHJldHVybiBEV19TTkQgKGF0dHIpOwotQEAgLTEwMTk1LDYgKzExMDAwLDggQEAgZHdhcmYyX2dl dF9hdHRyX2NvbnN0YW50X3ZhbHVlIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBpbnQgZGVmYXVs dF92YWx1ZSkKLSAgICAgICAgICAgIHx8IGF0dHItPmZvcm0gPT0gRFdfRk9STV9kYXRhNAotICAg ICAgICAgICAgfHwgYXR0ci0+Zm9ybSA9PSBEV19GT1JNX2RhdGE4KQotICAgICByZXR1cm4gRFdf VU5TTkQgKGF0dHIpOwotKyAgZWxzZSBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKLSsg ICAgcmV0dXJuIGRlY29kZV9sb2NkZXNjIChEV19CTE9DSyAoYXR0ciksIGN1KTsKLSAgIGVsc2UK LSAgICAgewotICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygiQXR0cmli dXRlIHZhbHVlIGlzIG5vdCBhIGNvbnN0YW50ICglcykiKSwKLUBAIC0xMDk5MCw4ICsxMTc5Nyw2 IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVk IGludCBvZmZzZXQsCitAQCAtMTEwMTEsOCArMTE4ODEsNiBAQCBkd2FyZl9kZWNvZGVfbWFjcm9z IChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogIHsKICAgIGdk Yl9ieXRlICptYWNfcHRyLCAqbWFjX2VuZDsKICAgIHN0cnVjdCBtYWNyb19zb3VyY2VfZmlsZSAq Y3VycmVudF9maWxlID0gMDsKQEAgLTY3NzMsNyArNzc3Myw3IEBAIGluZGV4IDQ0NWJhYjguLjQy MDM5ZWEgMTAwNjQ0CiAgCiAgICBpZiAoZHdhcmYyX3Blcl9vYmpmaWxlLT5tYWNpbmZvLmJ1ZmZl ciA9PSBOVUxMKQogICAgICB7Ci1AQCAtMTA5OTksMjkgKzExODA0LDE5IEBAIGR3YXJmX2RlY29k ZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCitA QCAtMTEwMjAsMjkgKzExODg4LDE5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgcmV0dXJuOwogICAgICB9 CiAgCkBAIC02ODA4LDcgKzc4MDgsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAog ICAgICAgICAgfQogIAogICAgICAgIG1hY2luZm9fdHlwZSA9IHJlYWRfMV9ieXRlIChhYmZkLCBt YWNfcHRyKTsKLUBAIC0xMTAzMiw5MiArMTE4MjcsNyBAQCBkd2FyZl9kZWNvZGVfbWFjcm9zIChz dHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTExMDUzLDky ICsxMTkxMSw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgs IHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgIC8qIEEgemVybyBtYWNpbmZvIHR5cGUg aW5kaWNhdGVzIHRoZSBlbmQgb2YgdGhlIG1hY3JvCiAgICAgICAgICAgICAgIGluZm9ybWF0aW9u LiAgKi8KICAgICAgICAgIGNhc2UgMDoKQEAgLTY5MDIsNyArNzkwMiw3IEBAIGluZGV4IDQ0NWJh YjguLjQyMDM5ZWEgMTAwNjQ0CiAgCiAgICAgICAgICBjYXNlIERXX01BQ0lORk9fZGVmaW5lOgog ICAgICAgICAgY2FzZSBEV19NQUNJTkZPX3VuZGVmOgotQEAgLTExMTMyLDMxICsxMTg0MiwxOSBA QCBkd2FyZl9kZWNvZGVfbWFjcm9zIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBp bnQgb2Zmc2V0LAorQEAgLTExMTUzLDMxICsxMTkyNiwxOSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9z IChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgICAgICAg ICAgIG1hY19wdHIgKz0gYnl0ZXNfcmVhZDsKICAKICAgICAgICAgICAgICBpZiAoISBjdXJyZW50 X2ZpbGUpCkBAIC02OTQ1LDcgKzc5NDUsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0 NAogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTExMTcwLDIyICsxMTg2 OCw5IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIHVuc2ln bmVkIGludCBvZmZzZXQsCitAQCAtMTExOTEsMjIgKzExOTUyLDkgQEAgZHdhcmZfZGVjb2RlX21h Y3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwKICAgICAg ICAgICAgICBmaWxlID0gcmVhZF91bnNpZ25lZF9sZWIxMjggKGFiZmQsIG1hY19wdHIsICZieXRl c19yZWFkKTsKICAgICAgICAgICAgICBtYWNfcHRyICs9IGJ5dGVzX3JlYWQ7CiAgCkBAIC02OTcx LDcgKzc5NzEsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgICAgICAgICB9 CiAgICAgICAgICAgIGJyZWFrOwogIAotQEAgLTExMjM5LDcgKzExOTI0LDcgQEAgZHdhcmZfZGVj b2RlX21hY3JvcyAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgdW5zaWduZWQgaW50IG9mZnNldCwK K0BAIC0xMTI2MCw3ICsxMjAwOCw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBsaW5l X2hlYWRlciAqbGgsIHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgICAgIH0KICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICB9CkBAIC02OTgwLDcgKzc5ODAsNyBAQCBpbmRleCA0NDViYWI4 Li40MjAzOWVhIDEwMDY0NAogIH0KICAKICAvKiBDaGVjayBpZiB0aGUgYXR0cmlidXRlJ3MgZm9y bSBpcyBhIERXX0ZPUk1fYmxvY2sqCi1AQCAtMTEyOTksNiArMTE5ODQsMzQgQEAgYXR0cl9mb3Jt X2lzX2NvbnN0YW50IChzdHJ1Y3QgYXR0cmlidXRlICphdHRyKQorQEAgLTExMzIwLDYgKzEyMDY4 LDM0IEBAIGF0dHJfZm9ybV9pc19jb25zdGFudCAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0cikKICAg ICAgfQogIH0KICAKQEAgLTcwMTUsNyArODAxNSw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEg MTAwNjQ0CiAgc3RhdGljIHZvaWQKICBkd2FyZjJfc3ltYm9sX21hcmtfY29tcHV0ZWQgKHN0cnVj dCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkgICAgIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQotQEAgLTExMzI4LDM1ICsxMjA0MSwyNSBAQCBkd2FyZjJfc3ltYm9sX21h cmtfY29tcHV0ZWQgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBzeW1ib2wgKnN5bSwK K0BAIC0xMTM0OSwzNSArMTIxMjUsMjUgQEAgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChz dHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3ltYm9sICpzeW0sCiAgICAgICAgU1lNQk9M X0NPTVBVVEVEX09QUyAoc3ltKSA9ICZkd2FyZjJfbG9jbGlzdF9mdW5jczsKICAgICAgICBTWU1C T0xfTE9DQVRJT05fQkFUT04gKHN5bSkgPSBiYXRvbjsKICAgICAgfQpAQCAtNzA2Niw3ICs4MDY2 LDcgQEAgaW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICAgICAgfQogIH0KICAKLUBAIC0x MTY0NCw2ICsxMjM0NywzMSBAQCBvZmZzZXRfYW5kX3R5cGVfZXEgKGNvbnN0IHZvaWQgKml0ZW1f bGhzLCBjb25zdCB2b2lkICppdGVtX3JocykKK0BAIC0xMTY2NSw2ICsxMjQzMSwzMSBAQCBvZmZz ZXRfYW5kX3R5cGVfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3Jo cykKICAgIHJldHVybiBvZnNfbGhzLT5vZmZzZXQgPT0gb2ZzX3Jocy0+b2Zmc2V0OwogIH0KICAK QEAgLTcwOTgsNyArODA5OCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgLyog U2V0IHRoZSB0eXBlIGFzc29jaWF0ZWQgd2l0aCBESUUgdG8gVFlQRS4gIFNhdmUgaXQgaW4gQ1Un cyBoYXNoCiAgICAgdGFibGUgaWYgbmVjZXNzYXJ5LiAgRm9yIGNvbnZlbmllbmNlLCByZXR1cm4g VFlQRS4gICovCiAgCi1AQCAtMTE2NTIsNiArMTIzODAsOCBAQCBzZXRfZGllX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtMTE2NzMsNiArMTI0NjQsOCBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgewogICAgc3Ry dWN0IGR3YXJmMl9vZmZzZXRfYW5kX3R5cGUgKipzbG90LCBvZnM7CiAgCkBAIC03MTA3LDcgKzgx MDcsNyBAQCBpbmRleCA0NDViYWI4Li40MjAzOWVhIDEwMDY0NAogICAgaWYgKGN1LT50eXBlX2hh c2ggPT0gTlVMTCkKICAgICAgewogICAgICAgIGdkYl9hc3NlcnQgKGN1LT5wZXJfY3UgIT0gTlVM TCk7Ci1AQCAtMTE3OTQsMjMgKzEyNTI0LDEzIEBAIHNob3dfZHdhcmYyX2NtZCAoY2hhciAqYXJn cywgaW50IGZyb21fdHR5KQorQEAgLTExODE1LDIzICsxMjYwOCwxMyBAQCBzaG93X2R3YXJmMl9j bWQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGNtZF9zaG93X2xpc3QgKHNob3dfZHdh cmYyX2NtZGxpc3QsIGZyb21fdHR5LCAiIik7CiAgfQogIApAQCAtNzEzNSw3ICs4MTM1LDcgQEAg aW5kZXggNDQ1YmFiOC4uNDIwMzllYSAxMDA2NDQKICB9CiAgCiAgLyogbXVubWFwIGRlYnVnIHNl Y3Rpb25zIGZvciBPQkpGSUxFLCBpZiBuZWNlc3NhcnkuICAqLwotQEAgLTExODE5LDE1ICsxMjUz OSwxNSBAQCBzdGF0aWMgdm9pZAorQEAgLTExODQwLDE1ICsxMjYyMywxNSBAQCBzdGF0aWMgdm9p ZAogIGR3YXJmMl9wZXJfb2JqZmlsZV9jbGVhbnVwIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwg dm9pZCAqZCkKICB7CiAgICBzdHJ1Y3QgZHdhcmYyX3Blcl9vYmpmaWxlICpkYXRhID0gZDsKQEAg LTcxNjAsNyArODE2MCw3IEBAIGluZGV4IDQ0NWJhYjguLjQyMDM5ZWEgMTAwNjQ0CiAgfQogIAog IHZvaWQgX2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpOwotQEAgLTExODM1LDYgKzEyNTU1 LDcgQEAgdm9pZCBfaW5pdGlhbGl6ZV9kd2FyZjJfcmVhZCAodm9pZCk7CitAQCAtMTE4NTYsNiAr MTI2MzksNyBAQCB2b2lkIF9pbml0aWFsaXplX2R3YXJmMl9yZWFkICh2b2lkKTsKICB2b2lkCiAg X2luaXRpYWxpemVfZHdhcmYyX3JlYWQgKHZvaWQpCiAgewpAQCAtODk5NSwxMCArOTk5NSwxMCBA QCBpbmRleCA4YzAyN2M5Li5kMjAxZjc2IDEwMDY0NAogICAgZWxzZQogICAgICB7CiBkaWZmIC0t Z2l0IGEvZ2RiL2ZyYW1lLmMgYi9nZGIvZnJhbWUuYwotaW5kZXggNjdlMDYwNy4uN2RjZjJjYiAx MDA2NDQKK2luZGV4IDljYTY5YmYuLjFiNGU2N2MgMTAwNjQ0CiAtLS0gYS9nZGIvZnJhbWUuYwog KysrIGIvZ2RiL2ZyYW1lLmMKLUBAIC0xMTA5LDYgKzExMDksMTQgQEAgaGFzX3N0YWNrX2ZyYW1l cyAodm9pZCkKK0BAIC0xMTU3LDYgKzExNTcsMTQgQEAgaGFzX3N0YWNrX2ZyYW1lcyAodm9pZCkK ICAgIGlmIChwdGlkX2VxdWFsIChpbmZlcmlvcl9wdGlkLCBudWxsX3B0aWQpKQogICAgICByZXR1 cm4gMDsKICAKQEAgLTkwMTMsMzkgKzEwMDEzLDYgQEAgaW5kZXggNjdlMDYwNy4uN2RjZjJjYiAx MDA2NDQKICAgIC8qIERvbid0IHRyeSB0byByZWFkIGZyb20gYSBkZWFkIHRocmVhZC4gICovCiAg ICBpZiAoaXNfZXhpdGVkIChpbmZlcmlvcl9wdGlkKSkKICAgICAgcmV0dXJuIDA7Ci1AQCAtMTg0 Myw2ICsxODUxLDE3IEBAIGdldF9mcmFtZV9hcmdzX2FkZHJlc3MgKHN0cnVjdCBmcmFtZV9pbmZv ICpmaSkKLSAgIHJldHVybiBmaS0+YmFzZS0+dGhpc19hcmdzIChmaSwgJmZpLT5iYXNlX2NhY2hl KTsKLSB9Ci0gCi0rLyogUmV0dXJuIHRydWUgaWYgdGhlIGZyYW1lIGJhc2UgZm9yIGZyYW1lIEZJ IGlzIEJBU0U7IGZhbHNlCi0rICAgb3RoZXJ3aXNlLiAgKi8KLSsKLStpbnQKLStmcmFtZV91bndp bmRlcl9pcyAoc3RydWN0IGZyYW1lX2luZm8gKmZpLCBjb25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5k ICp1bndpbmRlcikKLSt7Ci0rICBpZiAoZmktPnVud2luZCA9PSBOVUxMKQotKyAgICBmaS0+dW53 aW5kID0gZnJhbWVfdW53aW5kX2ZpbmRfYnlfZnJhbWUgKGZpLCAmZmktPnByb2xvZ3VlX2NhY2hl KTsKLSsgIHJldHVybiBmaS0+dW53aW5kID09IHVud2luZGVyOwotK30KLSsKLSAvKiBMZXZlbCBv ZiB0aGUgc2VsZWN0ZWQgZnJhbWU6IDAgZm9yIGlubmVybW9zdCwgMSBmb3IgaXRzIGNhbGxlciwg Li4uCi0gICAgb3IgLTEgZm9yIGEgTlVMTCBmcmFtZS4gICovCi0gCi1kaWZmIC0tZ2l0IGEvZ2Ri L2ZyYW1lLmggYi9nZGIvZnJhbWUuaAotaW5kZXggZmViZWY1Yy4uNjExYzZkMyAxMDA2NDQKLS0t LSBhL2dkYi9mcmFtZS5oCi0rKysgYi9nZGIvZnJhbWUuaAotQEAgLTY5Niw0ICs2OTYsMTAgQEAg ZXh0ZXJuIHN0cnVjdCBmcmFtZV9pbmZvICpkZXByZWNhdGVkX3NhZmVfZ2V0X3NlbGVjdGVkX2Zy YW1lICh2b2lkKTsKLSAKLSBleHRlcm4gc3RydWN0IGZyYW1lX2luZm8gKmNyZWF0ZV9uZXdfZnJh bWUgKENPUkVfQUREUiBiYXNlLCBDT1JFX0FERFIgcGMpOwotIAotKy8qIFJldHVybiB0cnVlIGlm IHRoZSBmcmFtZSB1bndpbmRlciBmb3IgZnJhbWUgRkkgaXMgVU5XSU5ERVI7IGZhbHNlCi0rICAg b3RoZXJ3aXNlLiAgKi8KLSsKLStleHRlcm4gaW50IGZyYW1lX3Vud2luZGVyX2lzIChzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZmksCi0rCQkJICAgICAgY29uc3Qgc3RydWN0IGZyYW1lX3Vud2luZCAqdW53 aW5kZXIpOwotKwotICNlbmRpZiAvKiAhZGVmaW5lZCAoRlJBTUVfSCkgICovCiBkaWZmIC0tZ2l0 IGEvZ2RiL2dkYmluaXQuaW4gYi9nZGIvZ2RiaW5pdC5pbgogaW5kZXggZmZiN2Y1My4uYTJlN2U5 NCAxMDA2NDQKIC0tLSBhL2dkYi9nZGJpbml0LmluCkBAIC05NDczLDEwICsxMDQ0MCwyMSBAQCBp bmRleCAwMDAwMDAwLi5iODIxM2Y1CiArICBOVUxMLAogK307CiBkaWZmIC0tZ2l0IGEvZ2RiL2dk YnRocmVhZC5oIGIvZ2RiL2dkYnRocmVhZC5oCi1pbmRleCA3OWQzM2ZlLi5hZWNkODIwIDEwMDY0 NAoraW5kZXggNzlkMzNmZS4uZDNiNGZhMSAxMDA2NDQKIC0tLSBhL2dkYi9nZGJ0aHJlYWQuaAog KysrIGIvZ2RiL2dkYnRocmVhZC5oCi1AQCAtMjQ5LDYgKzI0OSw5IEBAIGV4dGVybiBzdHJ1Y3Qg dGhyZWFkX2luZm8gKmFueV90aHJlYWRfb2ZfcHJvY2VzcyAoaW50IHBpZCk7CitAQCAtMTg1LDYg KzE4NSwxMCBAQCBzdHJ1Y3QgdGhyZWFkX2luZm8KKyAgIC8qIFRydWUgaWYgdGhpcyB0aHJlYWQg aGFzIGJlZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQgdG8gc3RvcC4gICovCisgICBpbnQgc3RvcF9y ZXF1ZXN0ZWQ7CisgCisrICAvKiBUaGUgaW5pdGlhdGluZyBmcmFtZSBvZiBhIG5leHRpbmcgb3Bl cmF0aW9uLCB1c2VkIGZvciBkZWNpZGluZworKyAgICAgd2hpY2ggZXhjZXB0aW9ucyB0byBpbnRl cmNlcHQuICAqLworKyAgc3RydWN0IGZyYW1lX2lkIGluaXRpYXRpbmdfZnJhbWU7CisrCisgICAv KiBQcml2YXRlIGRhdGEgdXNlZCBieSB0aGUgdGFyZ2V0IHZlY3RvciBpbXBsZW1lbnRhdGlvbi4g ICovCisgICBzdHJ1Y3QgcHJpdmF0ZV90aHJlYWRfaW5mbyAqcHJpdmF0ZTsKKyB9OworQEAgLTI0 OSw2ICsyNTMsOSBAQCBleHRlcm4gc3RydWN0IHRocmVhZF9pbmZvICphbnlfdGhyZWFkX29mX3By b2Nlc3MgKGludCBwaWQpOwogIC8qIENoYW5nZSB0aGUgcHRpZCBvZiB0aHJlYWQgT0xEX1BUSUQg dG8gTkVXX1BUSUQuICAqLwogIHZvaWQgdGhyZWFkX2NoYW5nZV9wdGlkIChwdGlkX3Qgb2xkX3B0 aWQsIHB0aWRfdCBuZXdfcHRpZCk7CiAgCkBAIC0xMDYwOSwyMSArMTE1ODcsNiBAQCBpbmRleCAw ZjlkNDRlLi5jOTEwZTg4IDEwMDY0NAogIAogICAgLyogV2UgZGlkbid0IGZpbmQgaXQ7IHByaW50 IHRoZSByYXcgZGF0YS4gICovCiAgICBpZiAodmJpdCkKLWRpZmYgLS1naXQgYS9nZGIvZ251bGli L01ha2VmaWxlLmluIGIvZ2RiL2dudWxpYi9NYWtlZmlsZS5pbgotaW5kZXggNWU1NTU3My4uNTQz OWFiYSAxMDA2NDQKLS0tLSBhL2dkYi9nbnVsaWIvTWFrZWZpbGUuaW4KLSsrKyBiL2dkYi9nbnVs aWIvTWFrZWZpbGUuaW4KLUBAIC0xLDggKzEsOCBAQAotICMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVk IGJ5IGF1dG9tYWtlIDEuOS42IGZyb20gTWFrZWZpbGUuYW0uCi0gIyBAY29uZmlndXJlX2lucHV0 QAotIAotLSMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5 LCAyMDAwLCAyMDAxLCAyMDAyLAotLSMgMjAwMywgMjAwNCwgMjAwNSAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcs IDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsCi0rIyAyMDA0LCAyMDA1LCAyMDA5 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotICMgVGhpcyBNYWtlZmlsZS5pbiBpcyBm cmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0gIyBnaXZlcyB1bmxp bWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotICMgd2l0aCBv ciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2Vy dmVkLgogZGlmZiAtLWdpdCBhL2dkYi9pMzg2LWxpbnV4LW5hdC5jIGIvZ2RiL2kzODYtbGludXgt bmF0LmMKIGluZGV4IDk5MWIyN2YuLjQxMWI0MWIgMTAwNjQ0CiAtLS0gYS9nZGIvaTM4Ni1saW51 eC1uYXQuYwpAQCAtMTA4NjYsMTEgKzExODI5LDE0MSBAQCBpbmRleCBmNDliOWY2Li5jZDMxOTU4 IDEwMDY0NAogICAgICBpbnQgZGVidWdfcmVnaXN0ZXJfbGVuZ3RoOwogICAgfTsKICAKK2RpZmYg LS1naXQgYS9nZGIvaW5mY21kLmMgYi9nZGIvaW5mY21kLmMKK2luZGV4IDllOTgyOTAuLmZhYjE4 OTIgMTAwNjQ0CistLS0gYS9nZGIvaW5mY21kLmMKKysrKyBiL2dkYi9pbmZjbWQuYworQEAgLTgw MSw3ICs4MDEsNyBAQCBuZXh0aV9jb21tYW5kIChjaGFyICpjb3VudF9zdHJpbmcsIGludCBmcm9t X3R0eSkKKyAgIHN0ZXBfMSAoMSwgMSwgY291bnRfc3RyaW5nKTsKKyB9CisgCistc3RhdGljIHZv aWQKKyt2b2lkCisgZGVsZXRlX2xvbmdqbXBfYnJlYWtwb2ludF9jbGVhbnVwICh2b2lkICphcmcp CisgeworICAgaW50IHRocmVhZCA9ICogKGludCAqKSBhcmc7CitAQCAtODQxLDEwICs4NDEsMTMg QEAgc3RlcF8xIChpbnQgc2tpcF9zdWJyb3V0aW5lcywgaW50IHNpbmdsZV9pbnN0LCBjaGFyICpj b3VudF9zdHJpbmcpCisgCisgICBpZiAoIXNpbmdsZV9pbnN0IHx8IHNraXBfc3Vicm91dGluZXMp CQkvKiBsZWF2ZSBzaSBjb21tYW5kIGFsb25lICovCisgICAgIHsKKysgICAgICBzdHJ1Y3QgdGhy ZWFkX2luZm8gKnRwID0gaW5mZXJpb3JfdGhyZWFkICgpOworKworICAgICAgIGlmIChpbl90aHJl YWRfbGlzdCAoaW5mZXJpb3JfcHRpZCkpCisgIAl0aHJlYWQgPSBwaWRfdG9fdGhyZWFkX2lkIChp bmZlcmlvcl9wdGlkKTsKKyAKKyAgICAgICBzZXRfbG9uZ2ptcF9icmVha3BvaW50ICh0aHJlYWQp OworKyAgICAgIHRwLT5pbml0aWF0aW5nX2ZyYW1lID0gZ2V0X2ZyYW1lX2lkIChnZXRfY3VycmVu dF9mcmFtZSAoKSk7CisgCisgICAgICAgbWFrZV9jbGVhbnVwIChkZWxldGVfbG9uZ2ptcF9icmVh a3BvaW50X2NsZWFudXAsICZ0aHJlYWQpOworICAgICB9CitAQCAtMTE5Myw2ICsxMTk2LDE1IEBA IHNpZ25hbF9jb21tYW5kIChjaGFyICpzaWdudW1fZXhwLCBpbnQgZnJvbV90dHkpCisgICBwcm9j ZWVkICgoQ09SRV9BRERSKSAtMSwgb3Vyc2lnLCAwKTsKKyB9CisgCisrLyogQSBjb250aW51YXRp b24gY2FsbGJhY2sgZm9yIHVudGlsX25leHRfY29tbWFuZC4gICovCisrCisrc3RhdGljIHZvaWQK Kyt1bnRpbF9uZXh0X2NvbnRpbnVhdGlvbiAodm9pZCAqYXJnKQorK3sKKysgIHN0cnVjdCB0aHJl YWRfaW5mbyAqdHAgPSBhcmc7CisrICBkZWxldGVfbG9uZ2ptcF9icmVha3BvaW50ICh0cC0+bnVt KTsKKyt9CisrCisgLyogUHJvY2VlZCB1bnRpbCB3ZSByZWFjaCBhIGRpZmZlcmVudCBzb3VyY2Ug bGluZSB3aXRoIHBjIGdyZWF0ZXIgdGhhbgorICAgIG91ciBjdXJyZW50IG9uZSBvciBleGl0IHRo ZSBmdW5jdGlvbi4gIFdlIHNraXAgY2FsbHMgaW4gYm90aCBjYXNlcy4KKyAKK0BAIC0xMjA5LDYg KzEyMjEsOCBAQCB1bnRpbF9uZXh0X2NvbW1hbmQgKGludCBmcm9tX3R0eSkKKyAgIHN0cnVjdCBz eW1ib2wgKmZ1bmM7CisgICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIHNhbDsKKyAgIHN0cnVjdCB0 aHJlYWRfaW5mbyAqdHAgPSBpbmZlcmlvcl90aHJlYWQgKCk7CisrICBpbnQgdGhyZWFkID0gdHAt Pm51bTsKKysgIHN0cnVjdCBjbGVhbnVwICpvbGRfY2hhaW47CisgCisgICBjbGVhcl9wcm9jZWVk X3N0YXR1cyAoKTsKKyAgIHNldF9zdGVwX2ZyYW1lICgpOworQEAgLTEyNDQsNyArMTI1OCwxOSBA QCB1bnRpbF9uZXh0X2NvbW1hbmQgKGludCBmcm9tX3R0eSkKKyAKKyAgIHRwLT5zdGVwX211bHRp ID0gMDsJCS8qIE9ubHkgb25lIGNhbGwgdG8gcHJvY2VlZCAqLworIAorKyAgc2V0X2xvbmdqbXBf YnJlYWtwb2ludCAodGhyZWFkKTsKKysgIHRwLT5pbml0aWF0aW5nX2ZyYW1lID0gZ2V0X2ZyYW1l X2lkIChmcmFtZSk7CisrICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXAgKGRlbGV0ZV9sb25nam1w X2JyZWFrcG9pbnRfY2xlYW51cCwgJnRocmVhZCk7CisrCisgICBwcm9jZWVkICgoQ09SRV9BRERS KSAtMSwgVEFSR0VUX1NJR05BTF9ERUZBVUxULCAxKTsKKysKKysgIGlmICh0YXJnZXRfY2FuX2Fz eW5jX3AgKCkgJiYgaXNfcnVubmluZyAoaW5mZXJpb3JfcHRpZCkpCisrICAgIHsKKysgICAgICBk aXNjYXJkX2NsZWFudXBzIChvbGRfY2hhaW4pOworKyAgICAgIGFkZF9jb250aW51YXRpb24gKHRw LCB1bnRpbF9uZXh0X2NvbnRpbnVhdGlvbiwgdHAsIE5VTEwpOworKyAgICB9CisrICBlbHNlCisr ICAgIGRvX2NsZWFudXBzIChvbGRfY2hhaW4pOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTE0 MjEsNiArMTQ0Nyw3IEBAIGZpbmlzaF9jb21tYW5kX2NvbnRpbnVhdGlvbiAodm9pZCAqYXJnKQor ICAgaWYgKGJzICE9IE5VTEwgJiYgdHAtPnByb2NlZWRfdG9fZmluaXNoKQorICAgICBvYnNlcnZl cl9ub3RpZnlfbm9ybWFsX3N0b3AgKGJzLCAxIC8qIHByaW50IGZyYW1lICovKTsKKyAgIGRlbGV0 ZV9icmVha3BvaW50IChhLT5icmVha3BvaW50KTsKKysgIGRlbGV0ZV9sb25nam1wX2JyZWFrcG9p bnQgKGluZmVyaW9yX3RocmVhZCAoKS0+bnVtKTsKKyB9CisgCisgc3RhdGljIHZvaWQKK0BAIC0x NTA0LDYgKzE1MzEsNyBAQCBmaW5pc2hfZm9yd2FyZCAoc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24s IHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKKyAgIHN0cnVjdCBicmVha3BvaW50ICpicmVha3Bv aW50OworICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKKyAgIHN0cnVjdCBmaW5pc2hfY29t bWFuZF9jb250aW51YXRpb25fYXJncyAqY2FyZ3M7CisrICBpbnQgdGhyZWFkID0gdHAtPm51bTsK KyAKKyAgIHNhbCA9IGZpbmRfcGNfbGluZSAoZ2V0X2ZyYW1lX3BjIChmcmFtZSksIDApOworICAg c2FsLnBjID0gZ2V0X2ZyYW1lX3BjIChmcmFtZSk7CitAQCAtMTUxNCw2ICsxNTQyLDEwIEBAIGZp bmlzaF9mb3J3YXJkIChzdHJ1Y3Qgc3ltYm9sICpmdW5jdGlvbiwgc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lKQorIAorICAgb2xkX2NoYWluID0gbWFrZV9jbGVhbnVwX2RlbGV0ZV9icmVha3BvaW50 IChicmVha3BvaW50KTsKKyAKKysgIHNldF9sb25nam1wX2JyZWFrcG9pbnQgKHRocmVhZCk7Cisr ICB0cC0+aW5pdGlhdGluZ19mcmFtZSA9IGdldF9mcmFtZV9pZCAoZnJhbWUpOworKyAgbWFrZV9j bGVhbnVwIChkZWxldGVfbG9uZ2ptcF9icmVha3BvaW50X2NsZWFudXAsICZ0aHJlYWQpOworKwor ICAgdHAtPnByb2NlZWRfdG9fZmluaXNoID0gMTsgICAgLyogV2Ugd2FudCBzdG9wX3JlZ2lzdGVy cywgcGxlYXNlLi4uICAqLworICAgcHJvY2VlZCAoKENPUkVfQUREUikgLTEsIFRBUkdFVF9TSUdO QUxfREVGQVVMVCwgMCk7CisgCitkaWZmIC0tZ2l0IGEvZ2RiL2luZmVyaW9yLmggYi9nZGIvaW5m ZXJpb3IuaAoraW5kZXggNzMxMmU1MS4uZDRlYWU4OCAxMDA2NDQKKy0tLSBhL2dkYi9pbmZlcmlv ci5oCisrKysgYi9nZGIvaW5mZXJpb3IuaAorQEAgLTI3Miw2ICsyNzIsOCBAQCBleHRlcm4gdm9p ZCBpbnRlcnJ1cHRfdGFyZ2V0X2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSk7Cisg CisgZXh0ZXJuIHZvaWQgaW50ZXJydXB0X3RhcmdldF8xIChpbnQgYWxsX3RocmVhZHMpOworIAor K2V4dGVybiB2b2lkIGRlbGV0ZV9sb25nam1wX2JyZWFrcG9pbnRfY2xlYW51cCAodm9pZCAqYXJn KTsKKysKKyBleHRlcm4gdm9pZCBkZXRhY2hfY29tbWFuZCAoY2hhciAqLCBpbnQpOworIAorIGV4 dGVybiB2b2lkIG5vdGljZV9uZXdfaW5mZXJpb3IgKHB0aWRfdCwgaW50LCBpbnQpOwogZGlmZiAt LWdpdCBhL2dkYi9pbmZydW4uYyBiL2dkYi9pbmZydW4uYwotaW5kZXggZTNlZGRjZS4uODkxN2Fj OSAxMDA2NDQKK2luZGV4IGM5MDc2MzUuLmJkYThkODQgMTAwNjQ0CiAtLS0gYS9nZGIvaW5mcnVu LmMKICsrKyBiL2dkYi9pbmZydW4uYwotQEAgLTI2MzAsNiArMjYzMCwxMCBAQCBoYW5kbGVfaW5m ZXJpb3JfZXZlbnQgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQorQEAgLTQ1 LDYgKzQ1LDggQEAKKyAjaW5jbHVkZSAibGFuZ3VhZ2UuaCIKKyAjaW5jbHVkZSAic29saWIuaCIK KyAjaW5jbHVkZSAibWFpbi5oIgorKyNpbmNsdWRlICJkaWN0aW9uYXJ5LmgiCisrI2luY2x1ZGUg ImJsb2NrLmgiCisgI2luY2x1ZGUgImdkYl9hc3NlcnQuaCIKKyAjaW5jbHVkZSAibWkvbWktY29t bW9uLmgiCisgI2luY2x1ZGUgImV2ZW50LXRvcC5oIgorQEAgLTE3ODIsNiArMTc4NCw4IEBAIHN0 YXRpYyB2b2lkIGluc2VydF9zdGVwX3Jlc3VtZV9icmVha3BvaW50X2F0X3NhbCAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsCisgCQkJCQkJICBzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lIHNyX3NhbCwK KyAJCQkJCQkgIHN0cnVjdCBmcmFtZV9pZCBzcl9pZCk7Cisgc3RhdGljIHZvaWQgaW5zZXJ0X2xv bmdqbXBfcmVzdW1lX2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoICosIENPUkVfQUREUik7Cisr c3RhdGljIHZvaWQgY2hlY2tfZXhjZXB0aW9uX3Jlc3VtZSAoc3RydWN0IGV4ZWN1dGlvbl9jb250 cm9sX3N0YXRlICosCisrCQkJCSAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqLCBzdHJ1Y3Qgc3ltYm9s ICopOworIAorIHN0YXRpYyB2b2lkIHN0b3Bfc3RlcHBpbmcgKHN0cnVjdCBleGVjdXRpb25fY29u dHJvbF9zdGF0ZSAqZWNzKTsKKyBzdGF0aWMgdm9pZCBwcmVwYXJlX3RvX3dhaXQgKHN0cnVjdCBl eGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKTsKK0BAIC0yNjMzLDYgKzI2MzcsMTAgQEAgaGFu ZGxlX2luZmVyaW9yX2V2ZW50IChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcykK ICAKICAgICAgICBzdG9wX3BjID0gcmVnY2FjaGVfcmVhZF9wYyAoZ2V0X3RocmVhZF9yZWdjYWNo ZSAoZWNzLT5wdGlkKSk7CiAgCkBAIC0xMDg4MSw3ICsxMTk3NCw3IEBAIGluZGV4IGUzZWRkY2Uu Ljg5MTdhYzkgMTAwNjQ0CiAgICAgICAgZWNzLT5ldmVudF90aHJlYWQtPnN0b3BfYnBzdGF0ID0g YnBzdGF0X3N0b3Bfc3RhdHVzIChzdG9wX3BjLCBlY3MtPnB0aWQpOwogIAogICAgICAgIGVjcy0+ cmFuZG9tX3NpZ25hbCA9ICFicHN0YXRfZXhwbGFpbnNfc2lnbmFsIChlY3MtPmV2ZW50X3RocmVh ZC0+c3RvcF9icHN0YXQpOwotQEAgLTI2NjcsNiArMjY3MSwxMCBAQCBoYW5kbGVfaW5mZXJpb3Jf ZXZlbnQgKHN0cnVjdCBleGVjdXRpb25fY29udHJvbF9zdGF0ZSAqZWNzKQorQEAgLTI2NzAsNiAr MjY3OCwxMCBAQCBoYW5kbGVfaW5mZXJpb3JfZXZlbnQgKHN0cnVjdCBleGVjdXRpb25fY29udHJv bF9zdGF0ZSAqZWNzKQogIAogICAgICAgIHN0b3BfcGMgPSByZWdjYWNoZV9yZWFkX3BjIChnZXRf dGhyZWFkX3JlZ2NhY2hlIChlY3MtPnB0aWQpKTsKICAKQEAgLTEwODkyLDEwICsxMTk4NSwyMTYg QEAgaW5kZXggZTNlZGRjZS4uODkxN2FjOSAxMDA2NDQKICAgICAgICAvKiBUaGlzIGNhdXNlcyB0 aGUgZXZlbnRwb2ludHMgYW5kIHN5bWJvbCB0YWJsZSB0byBiZSByZXNldC4KICAgICAgICAgICBN dXN0IGRvIHRoaXMgbm93LCBiZWZvcmUgdHJ5aW5nIHRvIGRldGVybWluZSB3aGV0aGVyIHRvCiAg ICAgICAgICAgc3RvcC4gICovCi1kaWZmIC0tZ2l0IGEvZ2RiL2p2LWxhbmcuYyBiL2dkYi9qdi1s YW5nLmMKLWluZGV4IDZiNjhlN2QuLjUwOTUxODAgMTAwNjQ0Ci0tLS0gYS9nZGIvanYtbGFuZy5j Ci0rKysgYi9nZGIvanYtbGFuZy5jCitAQCAtMzQxMSwyMyArMzQyMywzMyBAQCBwcm9jZXNzX2V2 ZW50X3N0b3BfdGVzdDoKKyAKKyAJZWNzLT5ldmVudF90aHJlYWQtPnN0ZXBwaW5nX292ZXJfYnJl YWtwb2ludCA9IDE7CisgCistCWlmICghZ2RiYXJjaF9nZXRfbG9uZ2ptcF90YXJnZXRfcCAoZ2Ri YXJjaCkKKy0JICAgIHx8ICFnZGJhcmNoX2dldF9sb25nam1wX3RhcmdldCAoZ2RiYXJjaCwgZnJh bWUsICZqbXBfYnVmX3BjKSkKKysJaWYgKHdoYXQuaXNfbG9uZ2ptcCkKKyAJICB7CistCSAgICBp ZiAoZGVidWdfaW5mcnVuKQorLQkgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2cs ICJcCisrCSAgICBpZiAoIWdkYmFyY2hfZ2V0X2xvbmdqbXBfdGFyZ2V0X3AgKGdkYmFyY2gpCisr CQl8fCAhZ2RiYXJjaF9nZXRfbG9uZ2ptcF90YXJnZXQgKGdkYmFyY2gsCisrCQkJCQkJZnJhbWUs ICZqbXBfYnVmX3BjKSkKKysJICAgICAgeworKwkJaWYgKGRlYnVnX2luZnJ1bikKKysJCSAgZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLCAiXAorIGluZnJ1bjogQlBTVEFUX1dIQVRfU0VU X0xPTkdKTVBfUkVTVU1FICghZ2RiYXJjaF9nZXRfbG9uZ2ptcF90YXJnZXQpXG4iKTsKKy0JICAg IGtlZXBfZ29pbmcgKGVjcyk7CistCSAgICByZXR1cm47CistCSAgfQorKwkJa2VlcF9nb2luZyAo ZWNzKTsKKysJCXJldHVybjsKKysJICAgICAgfQorIAorLQkvKiBXZSdyZSBnb2luZyB0byByZXBs YWNlIHRoZSBjdXJyZW50IHN0ZXAtcmVzdW1lIGJyZWFrcG9pbnQKKy0JICAgd2l0aCBhIGxvbmdq bXAtcmVzdW1lIGJyZWFrcG9pbnQuICAqLworLQlkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtwb2lu dCAoZWNzLT5ldmVudF90aHJlYWQpOworKwkgICAgLyogV2UncmUgZ29pbmcgdG8gcmVwbGFjZSB0 aGUgY3VycmVudCBzdGVwLXJlc3VtZSBicmVha3BvaW50CisrCSAgICAgICB3aXRoIGEgbG9uZ2pt cC1yZXN1bWUgYnJlYWtwb2ludC4gICovCisrCSAgICBkZWxldGVfc3RlcF9yZXN1bWVfYnJlYWtw b2ludCAoZWNzLT5ldmVudF90aHJlYWQpOworIAorLQkvKiBJbnNlcnQgYSBicmVha3BvaW50IGF0 IHJlc3VtZSBhZGRyZXNzLiAgKi8KKy0JaW5zZXJ0X2xvbmdqbXBfcmVzdW1lX2JyZWFrcG9pbnQg KGdkYmFyY2gsIGptcF9idWZfcGMpOworKwkgICAgLyogSW5zZXJ0IGEgYnJlYWtwb2ludCBhdCBy ZXN1bWUgYWRkcmVzcy4gICovCisrCSAgICBpbnNlcnRfbG9uZ2ptcF9yZXN1bWVfYnJlYWtwb2lu dCAoZ2RiYXJjaCwgam1wX2J1Zl9wYyk7CisrCSAgfQorKwllbHNlCisrCSAgeworKwkgICAgc3Ry dWN0IHN5bWJvbCAqZnVuYyA9IGdldF9mcmFtZV9mdW5jdGlvbiAoZnJhbWUpOworIAorKwkgICAg aWYgKGZ1bmMpCisrCSAgICAgIGNoZWNrX2V4Y2VwdGlvbl9yZXN1bWUgKGVjcywgZnJhbWUsIGZ1 bmMpOworKwkgIH0KKyAJa2VlcF9nb2luZyAoZWNzKTsKKyAJcmV0dXJuOworIAorQEAgLTM0Mzks NiArMzQ2MSw1MyBAQCBpbmZydW46IEJQU1RBVF9XSEFUX1NFVF9MT05HSk1QX1JFU1VNRSAoIWdk YmFyY2hfZ2V0X2xvbmdqbXBfdGFyZ2V0KVxuIik7CisgCWdkYl9hc3NlcnQgKGVjcy0+ZXZlbnRf dGhyZWFkLT5zdGVwX3Jlc3VtZV9icmVha3BvaW50ICE9IE5VTEwpOworIAlkZWxldGVfc3RlcF9y ZXN1bWVfYnJlYWtwb2ludCAoZWNzLT5ldmVudF90aHJlYWQpOworIAorKwlpZiAoIXdoYXQuaXNf bG9uZ2ptcCkKKysJICB7CisrCSAgICAvKiBUaGVyZSBhcmUgc2V2ZXJhbCBjYXNlcyB0byBjb25z aWRlci4KKysJICAgICAgIAorKwkgICAgICAgMS4gVGhlIGluaXRpYXRpbmcgZnJhbWUgbm8gbG9u Z2VyIGV4aXN0cy4gIEluIHRoaXMgY2FzZQorKwkgICAgICAgd2UgbXVzdCBzdG9wLCBiZWNhdXNl IHRoZSBleGNlcHRpb24gaGFzIGdvbmUgdG9vIGZhci4KKysJICAgICAgIAorKwkgICAgICAgMi4g VGhlIGluaXRpYXRpbmcgZnJhbWUgZXhpc3RzLCBhbmQgaXMgdGhlIHNhbWUgYXMgdGhlCisrCSAg ICAgICBjdXJyZW50IGZyYW1lLgorKwkgICAgICAgCisrCSAgICAgICAyLjEuIElmIHdlIGFyZSBz dGVwcGluZywgZGVmZXIgdG8gdGhlIHN0ZXBwaW5nIGxvZ2ljLgorKwkgICAgICAgCisrCSAgICAg ICAyLjIuIE90aGVyd2lzZSwgd2UgYXJlIG5vdCBzdGVwcGluZywgc28gd2UgYXJlIGRvaW5nIGEK KysJICAgICAgICJmaW5pc2giIGFuZCB3ZSBoYXZlIHJlYWNoZWQgdGhlIGNhbGxpbmcgZnJhbWUu ICBTbywKKysJICAgICAgIHN0b3AuCisrCSAgICAgICAKKysJICAgICAgIDMuIFRoZSBpbml0aWF0 aW5nIGZyYW1lIGV4aXN0cyBhbmQgaXMgZGlmZmVyZW50IGZyb20KKysJICAgICAgIHRoZSBjdXJy ZW50IGZyYW1lLiAgVGhpcyBtZWFucyB0aGUgZXhjZXB0aW9uIGhhcyBiZWVuCisrCSAgICAgICBj YXVnaHQgYmVuZWF0aCB0aGUgaW5pdGlhdGluZyBmcmFtZSwgc28ga2VlcCBnb2luZy4gICovCisr CSAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqaW5pdF9mcmFtZQorKwkgICAgICA9IGZyYW1lX2ZpbmRf YnlfaWQgKGVjcy0+ZXZlbnRfdGhyZWFkLT5pbml0aWF0aW5nX2ZyYW1lKTsKKysJICAgIGlmIChp bml0X2ZyYW1lKQorKwkgICAgICB7CisrCQlzdHJ1Y3QgZnJhbWVfaWQgY3VycmVudF9pZAorKwkJ ICA9IGdldF9mcmFtZV9pZCAoZ2V0X2N1cnJlbnRfZnJhbWUgKCkpOworKwkJaWYgKGZyYW1lX2lk X2VxIChjdXJyZW50X2lkLAorKwkJCQkgZWNzLT5ldmVudF90aHJlYWQtPmluaXRpYXRpbmdfZnJh bWUpKQorKwkJICB7CisrCQkgICAgaWYgKGVjcy0+ZXZlbnRfdGhyZWFkLT5zdGVwX3JhbmdlX3N0 YXJ0KQorKwkJICAgICAgeworKwkJCS8qIENhc2UgMi4xLiAgKi8KKysJCQlicmVhazsKKysJCSAg ICAgIH0KKysJCSAgICBlbHNlCisrCQkgICAgICB7CisrCQkJLyogQ2FzZSAyLjI6IGZhbGwgdGhy b3VnaC4gICovCisrCQkgICAgICB9CisrCQkgIH0KKysJCWVsc2UKKysJCSAgeworKwkJICAgIC8q IENhc2UgMy4gICovCisrCQkgICAga2VlcF9nb2luZyAoZWNzKTsKKysJCSAgICByZXR1cm47Cisr CQkgIH0KKysJICAgICAgfQorKwkgIH0KKysKKyAJZWNzLT5ldmVudF90aHJlYWQtPnN0b3Bfc3Rl cCA9IDE7CisgCXByaW50X3N0b3BfcmVhc29uIChFTkRfU1RFUFBJTkdfUkFOR0UsIDApOworIAlz dG9wX3N0ZXBwaW5nIChlY3MpOworQEAgLTQ0MzEsNiArNDUwMCw5NiBAQCBpbnNlcnRfbG9uZ2pt cF9yZXN1bWVfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQUREUiBw YykKKyAgICAgc2V0X21vbWVudGFyeV9icmVha3BvaW50X2F0X3BjIChnZGJhcmNoLCBwYywgYnBf bG9uZ2ptcF9yZXN1bWUpOworIH0KKyAKKysvKiBJbnNlcnQgYW4gZXhjZXB0aW9uIHJlc3VtZSBi cmVha3BvaW50LiAgVFAgaXMgdGhlIHRocmVhZCB0aHJvd2luZworKyAgIHRoZSBleGNlcHRpb24u ICBUaGUgYmxvY2sgQiBpcyB0aGUgYmxvY2sgb2YgdGhlIHVud2luZGVyIGRlYnVnIGhvb2sKKysg ICBmdW5jdGlvbi4gIEZSQU1FIGlzIHRoZSBmcmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBjYWxs IHRvIHRoaXMKKysgICBmdW5jdGlvbi4gIFNZTSBpcyB0aGUgc3ltYm9sIG9mIHRoZSBmdW5jdGlv biBhcmd1bWVudCBob2xkaW5nIHRoZQorKyAgIHRhcmdldCBQQyBvZiB0aGUgZXhjZXB0aW9uLiAg Ki8KKysKKytzdGF0aWMgdm9pZAorK2luc2VydF9leGNlcHRpb25fcmVzdW1lX2JyZWFrcG9pbnQg KHN0cnVjdCB0aHJlYWRfaW5mbyAqdHAsCisrCQkJCSAgICBzdHJ1Y3QgYmxvY2sgKmIsCisrCQkJ CSAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCisrCQkJCSAgICBzdHJ1Y3Qgc3ltYm9sICpz eW0pCisreworKyAgc3RydWN0IGdkYl9leGNlcHRpb24gZTsKKysKKysgIC8qIFdlIHdhbnQgdG8g aWdub3JlIGVycm9ycyBoZXJlLiAgKi8KKysgIFRSWV9DQVRDSCAoZSwgUkVUVVJOX01BU0tfQUxM KQorKyAgICB7CisrICAgICAgc3RydWN0IHN5bWJvbCAqdnN5bTsKKysgICAgICBzdHJ1Y3QgdmFs dWUgKnZhbHVlOworKyAgICAgIENPUkVfQUREUiBoYW5kbGVyOworKyAgICAgIHN0cnVjdCBicmVh a3BvaW50ICpicDsKKysKKysgICAgICB2c3ltID0gbG9va3VwX3N5bWJvbCAoU1lNQk9MX0xJTktB R0VfTkFNRSAoc3ltKSwgYiwgVkFSX0RPTUFJTiwgTlVMTCk7CisrICAgICAgdmFsdWUgPSByZWFk X3Zhcl92YWx1ZSAodnN5bSwgZnJhbWUpOworKyAgICAgIGhhbmRsZXIgPSB2YWx1ZV9hc19hZGRy ZXNzICh2YWx1ZSk7CisrCisrICAgICAgLyogV2UncmUgZ29pbmcgdG8gcmVwbGFjZSB0aGUgY3Vy cmVudCBzdGVwLXJlc3VtZSBicmVha3BvaW50CisrCSB3aXRoIGFuIGV4Y2VwdGlvbi1yZXN1bWUg YnJlYWtwb2ludC4gICovCisrICAgICAgZGVsZXRlX3N0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgKHRw KTsKKysKKysgICAgICBpZiAoZGVidWdfaW5mcnVuKQorKwlmcHJpbnRmX3VuZmlsdGVyZWQgKGdk Yl9zdGRsb2csCisrCQkJICAgICJpbmZydW46IGV4Y2VwdGlvbiByZXN1bWUgYXQgJWx4XG4iLAor KwkJCSAgICAodW5zaWduZWQgbG9uZykgaGFuZGxlcik7CisrCisrICAgICAgYnAgPSBzZXRfbW9t ZW50YXJ5X2JyZWFrcG9pbnRfYXRfcGMgKGdldF9mcmFtZV9hcmNoIChmcmFtZSksCisrCQkJCQkg ICBoYW5kbGVyLCBicF9leGNlcHRpb25fcmVzdW1lKTsKKysgICAgICBpbmZlcmlvcl90aHJlYWQg KCktPnN0ZXBfcmVzdW1lX2JyZWFrcG9pbnQgPSBicDsKKysgICAgfQorK30KKysKKysvKiBUaGlz IGlzIGNhbGxlZCB3aGVuIGFuIGV4Y2VwdGlvbiBoYXMgYmVlbiBpbnRlcmNlcHRlZC4gIENoZWNr IHRvCisrICAgc2VlIHdoZXRoZXIgdGhlIGV4Y2VwdGlvbidzIGRlc3RpbmF0aW9uIGlzIG9mIGlu dGVyZXN0LCBhbmQgaWYgc28sCisrICAgc2V0IGFuIGV4Y2VwdGlvbiByZXN1bWUgYnJlYWtwb2lu dCB0aGVyZS4gICovCisrCisrc3RhdGljIHZvaWQKKytjaGVja19leGNlcHRpb25fcmVzdW1lIChz dHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3RhdGUgKmVjcywKKysJCQlzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUsIHN0cnVjdCBzeW1ib2wgKmZ1bmMpCisreworKyAgc3RydWN0IGdkYl9leGNlcHRp b24gZTsKKysKKysgIFRSWV9DQVRDSCAoZSwgUkVUVVJOX01BU0tfQUxMKQorKyAgICB7CisrICAg ICAgc3RydWN0IGJsb2NrICpiOworKyAgICAgIHN0cnVjdCBkaWN0X2l0ZXJhdG9yIGl0ZXI7Cisr ICAgICAgc3RydWN0IHN5bWJvbCAqc3ltOworKyAgICAgIGludCBhcmdubyA9IDA7CisrCisrICAg ICAgLyogVGhlIGV4Y2VwdGlvbiBicmVha3BvaW50IGlzIGEgdGhyZWFkLXNwZWNpZmljIGJyZWFr cG9pbnQgb24KKysJIHRoZSB1bndpbmRlcidzIGRlYnVnIGhvb2ssIGRlY2xhcmVkIGFzOgorKwkg CisrCSB2b2lkIF9VbndpbmRfRGVidWdIb29rICh2b2lkICpjZmEsIHZvaWQgKmhhbmRsZXIpOwor KwkgCisrCSBUaGUgQ0ZBIGFyZ3VtZW50IGluZGljYXRlcyB0aGUgZnJhbWUgdG8gd2hpY2ggY29u dHJvbCBpcworKwkgYWJvdXQgdG8gYmUgdHJhbnNmZXJyZWQuICBIQU5ETEVSIGlzIHRoZSBkZXN0 aW5hdGlvbiBQQy4KKysJIAorKwkgV2UgaWdub3JlIHRoZSBDRkEgYW5kIHNldCBhIHRlbXBvcmFy eSBicmVha3BvaW50IGF0IEhBTkRMRVIuCisrCSBUaGlzIGlzIG5vdCBleHRyZW1lbHkgZWZmaWNp ZW50IGJ1dCBpdCBhdm9pZHMgaXNzdWVzIGluIGdkYgorKwkgd2l0aCBjb21wdXRpbmcgdGhlIERX QVJGIENGQSwgYW5kIGl0IGFsc28gd29ya3MgZXZlbiBpbiB3ZWlyZAorKwkgY2FzZXMgc3VjaCBh cyB0aHJvd2luZyBhbiBleGNlcHRpb24gZnJvbSBpbnNpZGUgYSBzaWduYWwKKysJIGhhbmRsZXIu ICAqLworKworKyAgICAgIGIgPSBTWU1CT0xfQkxPQ0tfVkFMVUUgKGZ1bmMpOworKyAgICAgIEFM TF9CTE9DS19TWU1CT0xTIChiLCBpdGVyLCBzeW0pCisrCXsKKysJICBpZiAoIVNZTUJPTF9JU19B UkdVTUVOVCAoc3ltKSkKKysJICAgIGNvbnRpbnVlOworKworKwkgIGlmIChhcmdubyA9PSAwKQor KwkgICAgKythcmdubzsKKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIGluc2VydF9leGNlcHRp b25fcmVzdW1lX2JyZWFrcG9pbnQgKGVjcy0+ZXZlbnRfdGhyZWFkLAorKwkJCQkJCSAgYiwgZnJh bWUsIHN5bSk7CisrCSAgICAgIGJyZWFrOworKwkgICAgfQorKwl9CisrICAgIH0KKyt9CisrCisg c3RhdGljIHZvaWQKKyBzdG9wX3N0ZXBwaW5nIChzdHJ1Y3QgZXhlY3V0aW9uX2NvbnRyb2xfc3Rh dGUgKmVjcykKKyB7CitAQCAtNDQ5OSw2ICs0NjU4LDggQEAga2VlcF9nb2luZyAoc3RydWN0IGV4 ZWN1dGlvbl9jb250cm9sX3N0YXRlICplY3MpCisgCSAgICB9CisgCSAgaWYgKGUucmVhc29uIDwg MCkKKyAJICAgIHsKKysJICAgICAgaWYgKGRlYnVnX2luZnJ1bikKKysJCWV4Y2VwdGlvbl9mcHJp bnRmIChnZGJfc3RkbG9nLCBlLCAiaW5mcnVuOiBleGNlcHRpb24gd2hpbGUgaW5zZXJ0aW5nIGJy ZWFrcG9pbnRzOiAiKTsKKyAJICAgICAgc3RvcF9zdGVwcGluZyAoZWNzKTsKKyAJICAgICAgcmV0 dXJuOworIAkgICAgfQorZGlmZiAtLWdpdCBhL2dkYi9qdi1sYW5nLmMgYi9nZGIvanYtbGFuZy5j CitpbmRleCA2YjY4ZTdkLi41MDk1MTgwIDEwMDY0NAorLS0tIGEvZ2RiL2p2LWxhbmcuYworKysr IGIvZ2RiL2p2LWxhbmcuYwogQEAgLTExMjEsNiArMTEyMSw3IEBAIGNvbnN0IHN0cnVjdCBleHBf ZGVzY3JpcHRvciBleHBfZGVzY3JpcHRvcl9qYXZhID0KICB7CiAgICBwcmludF9zdWJleHBfc3Rh bmRhcmQsCkBAIC0xMTIxNCw3ICsxMjUxMyw3IEBAIGluZGV4IDVmOWEwZmUuLjY2ZmEwNjcgMTAw NjQ0CiAgICBtYWNob19zeW1maWxlX29mZnNldHMsICAgICAgICAvKiBzeW1fb2Zmc2V0czogIHhs YXRlIGV4dGVybmFsIHRvIGludGVybmFsIGZvcm0gKi8KICAgIE5VTEwgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIG5leHQ6IHBvaW50ZXIgdG8gbmV4dCBzdHJ1Y3Qgc3ltX2ZucyAqLwogZGlm ZiAtLWdpdCBhL2dkYi9tYWluLmMgYi9nZGIvbWFpbi5jCi1pbmRleCA4YjY2Zjc4Li5kZGVhYjZm IDEwMDY0NAoraW5kZXggNTU0MTFhOC4uYWM5YTU0MCAxMDA2NDQKIC0tLSBhL2dkYi9tYWluLmMK ICsrKyBiL2dkYi9tYWluLmMKIEBAIC00MCw2ICs0MCw3IEBACkBAIC0xMTM5NSw3ICsxMjY5NCw3 IEBAIGluZGV4IGFhYzgyZTkuLjYyNjI5MmMgMTAwNjQ0CiAgICBUWVBFX0NQTFVTX1NQRUNJRklD ICh0KSA9IChzdHJ1Y3QgY3BsdXNfc3RydWN0X3R5cGUgKikgJmNwbHVzX3N0cnVjdF9kZWZhdWx0 OwogICAgcmV0dXJuIHQ7CiBkaWZmIC0tZ2l0IGEvZ2RiL21pL21pLWNtZC12YXIuYyBiL2dkYi9t aS9taS1jbWQtdmFyLmMKLWluZGV4IDBjZjAzZDkuLmU0Y2E2MjEgMTAwNjQ0CitpbmRleCAwY2Yw M2Q5Li45MzQ1OWRkIDEwMDY0NAogLS0tIGEvZ2RiL21pL21pLWNtZC12YXIuYwogKysrIGIvZ2Ri L21pL21pLWNtZC12YXIuYwogQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIHZvaWQgdmFyb2JqX3Vw ZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZhciwKQEAgLTExNDIyLDcgKzEyNzIxLDE3IEBAIGlu ZGV4IDBjZjAzZDkuLmU0Y2E2MjEgMTAwNjQ0CiAgCiAgICB0eXBlID0gdmFyb2JqX2dldF90eXBl ICh2YXIpOwogICAgaWYgKHR5cGUgIT0gTlVMTCkKLUBAIC0xMzgsNiArMTQyLDggQEAgbWlfY21k X3Zhcl9jcmVhdGUgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKK0BAIC03 NSw2ICs3OSw5IEBAIHByaW50X3Zhcm9iaiAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHByaW50 X3ZhbHVlcyBwcmludF92YWx1ZXMsCisgCisgICBpZiAodmFyb2JqX2dldF9mcm96ZW4gKHZhcikp CisgICAgIHVpX291dF9maWVsZF9pbnQgKHVpb3V0LCAiZnJvemVuIiwgMSk7CisrCisrICBpZiAo dmFyb2JqX3ByZXR0eV9wcmludGVkX3AgKHZhcikpCisrICAgIHVpX291dF9maWVsZF9pbnQgKHVp b3V0LCAiZHluYW1pYyIsIDEpOworIH0KKyAKKyAvKiBWQVJPQkogb3BlcmF0aW9ucyAqLworQEAg LTEzOCw2ICsxNDUsOCBAQCBtaV9jbWRfdmFyX2NyZWF0ZSAoY2hhciAqY29tbWFuZCwgY2hhciAq KmFyZ3YsIGludCBhcmdjKQogIAogICAgcHJpbnRfdmFyb2JqICh2YXIsIFBSSU5UX0FMTF9WQUxV RVMsIDAgLyogZG9uJ3QgcHJpbnQgZXhwcmVzc2lvbiAqLyk7CiAgCkBAIC0xMTQzMSw3ICsxMjc0 MCw3IEBAIGluZGV4IDBjZjAzZDkuLmU0Y2E2MjEgMTAwNjQ0CiAgICBkb19jbGVhbnVwcyAob2xk X2NsZWFudXBzKTsKICB9CiAgCi1AQCAtMjIzLDYgKzIyOSw3IEBAIG1pX2NtZF92YXJfc2V0X2Zv cm1hdCAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQorQEAgLTIyMyw2ICsy MzIsNyBAQCBtaV9jbWRfdmFyX3NldF9mb3JtYXQgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2 LCBpbnQgYXJnYykKICB7CiAgICBlbnVtIHZhcm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0Owog ICAgc3RydWN0IHZhcm9iaiAqdmFyOwpAQCAtMTE0MzksNyArMTI3NDgsNyBAQCBpbmRleCAwY2Yw M2Q5Li5lNGNhNjIxIDEwMDY0NAogIAogICAgaWYgKGFyZ2MgIT0gMikKICAgICAgZXJyb3IgKF8o Im1pX2NtZF92YXJfc2V0X2Zvcm1hdDogVXNhZ2U6IE5BTUUgRk9STUFULiIpKTsKLUBAIC0yMzks NyArMjQ2LDkgQEAgbWlfY21kX3Zhcl9zZXRfZm9ybWF0IChjaGFyICpjb21tYW5kLCBjaGFyICoq YXJndiwgaW50IGFyZ2MpCitAQCAtMjM5LDcgKzI0OSw5IEBAIG1pX2NtZF92YXJfc2V0X2Zvcm1h dCAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQogICAgdWlfb3V0X2ZpZWxk X3N0cmluZyAodWlvdXQsICJmb3JtYXQiLCB2YXJvYmpfZm9ybWF0X3N0cmluZ1soaW50KSBmb3Jt YXRdKTsKICAgCiAgICAvKiBSZXBvcnQgdGhlIHZhbHVlIGluIHRoZSBuZXcgZm9ybWF0ICovCkBA IC0xMTQ1MCw3ICsxMjc1OSw3IEBAIGluZGV4IDBjZjAzZDkuLmU0Y2E2MjEgMTAwNjQ0CiAgfQog IAogIHZvaWQKLUBAIC0zMzcsMTEgKzM0NiwxMiBAQCBNdXN0IGJlOiAwIG9yIFwiJXNcIiwgMSBv ciBcIiVzXCIsIDIgb3IgXCIlc1wiIiksCitAQCAtMzM3LDExICszNDksMTIgQEAgTXVzdCBiZTog MCBvciBcIiVzXCIsIDEgb3IgXCIlc1wiLCAyIG9yIFwiJXNcIiIpLAogIH0KICAKICAvKiBSZXR1 cm4gMSBpZiBnaXZlbiB0aGUgYXJndW1lbnQgUFJJTlRfVkFMVUVTIHdlIHNob3VsZCBkaXNwbGF5 CkBAIC0xMTQ2NSw3ICsxMjc3NCw3IEBAIGluZGV4IDBjZjAzZDkuLmU0Y2E2MjEgMTAwNjQ0CiAg CiAgICBpZiAocHJpbnRfdmFsdWVzID09IFBSSU5UX05PX1ZBTFVFUykKICAgICAgcmV0dXJuIDA7 Ci1AQCAtMzQ5LDYgKzM1OSwxMCBAQCBtaV9wcmludF92YWx1ZV9wIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzKQorQEAgLTM0OSw2ICszNjIsMTAgQEAg bWlfcHJpbnRfdmFsdWVfcCAoc3RydWN0IHR5cGUgKnR5cGUsIGVudW0gcHJpbnRfdmFsdWVzIHBy aW50X3ZhbHVlcykKICAgIGlmIChwcmludF92YWx1ZXMgPT0gUFJJTlRfQUxMX1ZBTFVFUykKICAg ICAgcmV0dXJuIDE7CiAgCkBAIC0xMTQ3Niw3ICsxMjc4NSw3IEBAIGluZGV4IDBjZjAzZDkuLmU0 Y2E2MjEgMTAwNjQ0CiAgICBpZiAodHlwZSA9PSBOVUxMKQogICAgICByZXR1cm4gMTsKICAgIGVs c2UKLUBAIC0zNjksMjQgKzM4MywzNSBAQCBtaV9jbWRfdmFyX2xpc3RfY2hpbGRyZW4gKGNoYXIg KmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKK0BAIC0zNjksMjQgKzM4NiwzNSBAQCBt aV9jbWRfdmFyX2xpc3RfY2hpbGRyZW4gKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQg YXJnYykKICAgIHN0cnVjdCB2YXJvYmogKnZhcjsgIAogICAgVkVDKHZhcm9ial9wKSAqY2hpbGRy ZW47CiAgICBzdHJ1Y3QgdmFyb2JqICpjaGlsZDsKQEAgLTExNTE5LDcgKzEyODI4LDcgQEAgaW5k ZXggMGNmMDNkOS4uZTRjYTYyMSAxMDA2NDQKICAgICAgcHJpbnRfdmFsdWVzID0gbWlfcGFyc2Vf dmFsdWVzX29wdGlvbiAoYXJndlswXSk7CiAgICBlbHNlCiAgICAgIHByaW50X3ZhbHVlcyA9IFBS SU5UX05PX1ZBTFVFUzsKLUBAIC0zOTgsMjEgKzQyMywyOCBAQCBtaV9jbWRfdmFyX2xpc3RfY2hp bGRyZW4gKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKK0BAIC0zOTgsMjEg KzQyNiwyOCBAQCBtaV9jbWRfdmFyX2xpc3RfY2hpbGRyZW4gKGNoYXIgKmNvbW1hbmQsIGNoYXIg Kiphcmd2LCBpbnQgYXJnYykKICAgICAgICB4ZnJlZSAoZGlzcGxheV9oaW50KTsKICAgICAgfQog IApAQCAtMTE1NjEsNyArMTI4NzAsNyBAQCBpbmRleCAwY2YwM2Q5Li5lNGNhNjIxIDEwMDY0NAog IH0KICAKICB2b2lkCi1AQCAtNTM4LDE2ICs1NzAsMjQgQEAgbWlfY21kX3Zhcl9ldmFsdWF0ZV9l eHByZXNzaW9uIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtNTM4 LDE2ICs1NzMsMjQgQEAgbWlfY21kX3Zhcl9ldmFsdWF0ZV9leHByZXNzaW9uIChjaGFyICpjb21t YW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICB2YXIgPSB2YXJvYmpfZ2V0X2hhbmRsZSAo YXJndltvcHRpbmRdKTsKICAgICAKICAgIGlmIChmb3JtYXRGb3VuZCkKQEAgLTExNTg5LDcgKzEy ODk4LDcgQEAgaW5kZXggMGNmMDNkOS4uZTRjYTYyMSAxMDA2NDQKICAKICAgIGlmIChhcmdjICE9 IDIpCiAgICAgIGVycm9yIChfKCJtaV9jbWRfdmFyX2Fzc2lnbjogVXNhZ2U6IE5BTUUgRVhQUkVT U0lPTi4iKSk7Ci1AQCAtNTYzLDcgKzYwMyw5IEBAIG1pX2NtZF92YXJfYXNzaWduIChjaGFyICpj b21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAtNTYzLDcgKzYwNiw5IEBAIG1pX2Nt ZF92YXJfYXNzaWduIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiAgICBp ZiAoIXZhcm9ial9zZXRfdmFsdWUgKHZhciwgZXhwcmVzc2lvbikpCiAgICAgIGVycm9yIChfKCJt aV9jbWRfdmFyX2Fzc2lnbjogQ291bGQgbm90IGFzc2lnbiBleHByZXNzaW9uIHRvIHZhcmlhYmxl IG9iamVjdCIpKTsKICAKQEAgLTExNjAwLDcgKzEyOTA5LDcgQEAgaW5kZXggMGNmMDNkOS4uZTRj YTYyMSAxMDA2NDQKICB9CiAgCiAgLyogVHlwZSB1c2VkIGZvciBwYXJhbWV0ZXJzIHBhc3Npbmcg dG8gbWlfY21kX3Zhcl91cGRhdGVfaXRlci4gICovCi1AQCAtNjQ0LDcgKzY4Niw2IEBAIG1pX2Nt ZF92YXJfdXBkYXRlIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCitAQCAt NjQ0LDcgKzY4OSw2IEBAIG1pX2NtZF92YXJfdXBkYXRlIChjaGFyICpjb21tYW5kLCBjaGFyICoq YXJndiwgaW50IGFyZ2MpCiAgICAgIH0KICAgIGVsc2UKICAgICAgewpAQCAtMTE2MDgsNyArMTI5 MTcsNyBAQCBpbmRleCAwY2YwM2Q5Li5lNGNhNjIxIDEwMDY0NAogICAgICAgIHN0cnVjdCB2YXJv YmogKnZhciA9IHZhcm9ial9nZXRfaGFuZGxlIChuYW1lKTsKICAKICAgICAgICB2YXJvYmpfdXBk YXRlX29uZSAodmFyLCBwcmludF92YWx1ZXMsIDEgLyogZXhwbGljaXQgKi8pOwotQEAgLTY3MCw2 ICs3MTEsNyBAQCB2YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHBy aW50X3ZhbHVlcyBwcmludF92YWx1ZXMsCitAQCAtNjcwLDYgKzcxNCw3IEBAIHZhcm9ial91cGRh dGVfb25lIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gcHJpbnRfdmFsdWVzIHByaW50X3ZhbHVl cywKICAgIGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCwgY2hh bmdlcywgaSwgcik7ICsraSkKICAgICAgewogICAgICAgIGNoYXIgKmRpc3BsYXlfaGludDsKQEAg LTExNjE2LDcgKzEyOTI1LDcgQEAgaW5kZXggMGNmMDNkOS4uZTRjYTYyMSAxMDA2NDQKICAKICAg ICAgICBpZiAobWlfdmVyc2lvbiAodWlvdXQpID4gMSkKICAgICAgICAgIGNsZWFudXAgPSBtYWtl X2NsZWFudXBfdWlfb3V0X3R1cGxlX2JlZ2luX2VuZCAodWlvdXQsIE5VTEwpOwotQEAgLTY3OCw4 ICs3MjAsMTIgQEAgdmFyb2JqX3VwZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBw cmludF92YWx1ZXMgcHJpbnRfdmFsdWVzLAorQEAgLTY3OCw4ICs3MjMsMTIgQEAgdmFyb2JqX3Vw ZGF0ZV9vbmUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFs dWVzLAogICAgICAgIHN3aXRjaCAoci0+c3RhdHVzKQogIAl7CiAgCWNhc2UgVkFST0JKX0lOX1ND T1BFOgpAQCAtMTE2MzEsNyArMTI5NDAsNyBAQCBpbmRleCAwY2YwM2Q5Li5lNGNhNjIxIDEwMDY0 NAogIAkgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiaW5fc2NvcGUiLCAidHJ1ZSIpOwog IAkgIGJyZWFrOwogICAgICAgICAgY2FzZSBWQVJPQkpfTk9UX0lOX1NDT1BFOgotQEAgLTY5OSwx MSArNzQ1LDExIEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0g cHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKK0BAIC02OTksMTEgKzc0OCwxMSBAQCB2YXJvYmpf dXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHByaW50X3ZhbHVlcyBwcmludF92 YWx1ZXMsCiAgCX0KICAKICAgICAgICBpZiAoci0+dHlwZV9jaGFuZ2VkKQpAQCAtMTE2NDgsNyAr MTI5NTcsNyBAQCBpbmRleCAwY2YwM2Q5Li5lNGNhNjIxIDEwMDY0NAogIAogICAgICAgIGRpc3Bs YXlfaGludCA9IHZhcm9ial9nZXRfZGlzcGxheV9oaW50ICh2YXIpOwogICAgICAgIGlmIChkaXNw bGF5X2hpbnQpCi1AQCAtNzEyLDI4ICs3NTgsNTYgQEAgdmFyb2JqX3VwZGF0ZV9vbmUgKHN0cnVj dCB2YXJvYmogKnZhciwgZW51bSBwcmludF92YWx1ZXMgcHJpbnRfdmFsdWVzLAorQEAgLTcxMiwy OCArNzYxLDU5IEBAIHZhcm9ial91cGRhdGVfb25lIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0g cHJpbnRfdmFsdWVzIHByaW50X3ZhbHVlcywKICAJICB4ZnJlZSAoZGlzcGxheV9oaW50KTsKICAJ fQogIApAQCAtMTE2NTgsMTggKzEyOTY3LDIxIEBAIGluZGV4IDBjZjAzZDkuLmU0Y2E2MjEgMTAw NjQ0CiAtCSAgc3RydWN0IHZhcm9iaiAqY2hpbGQ7CiAtCSAgc3RydWN0IGNsZWFudXAgKmNsZWFu dXAgPQogLQkgICAgbWFrZV9jbGVhbnVwX3VpX291dF9saXN0X2JlZ2luX2VuZCAodWlvdXQsICJj aGlsZHJlbiIpOworKyAgICAgIGlmICh2YXJvYmpfcHJldHR5X3ByaW50ZWRfcCAodmFyKSkKKysJ dWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJkeW5hbWljIiwgMSk7CisgCistCSAgVkVDICh2YXJv YmpfcCkqIGNoaWxkcmVuID0gdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHItPnZhcm9iaik7CiArICAg ICAgdmFyb2JqX2dldF9jaGlsZF9yYW5nZSAoci0+dmFyb2JqLCAmZnJvbSwgJnRvKTsKICsgICAg ICB1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgImhhc19tb3JlIiwKICsJCQl2YXJvYmpfaGFzX21v cmUgKHItPnZhcm9iaiwgdG8pKTsKICAKLS0JICBWRUMgKHZhcm9ial9wKSogY2hpbGRyZW4gPSB2 YXJvYmpfbGlzdF9jaGlsZHJlbiAoci0+dmFyb2JqKTsKKy0JICBmb3IgKGl4ID0gMDsgVkVDX2l0 ZXJhdGUgKHZhcm9ial9wLCBjaGlsZHJlbiwgaXgsIGNoaWxkKTsgKytpeCkKICsgICAgICBpZiAo ci0+bmV3KQogKwl7CiArCSAgaW50IGo7CiArCSAgdmFyb2JqX3AgY2hpbGQ7CiArCSAgc3RydWN0 IGNsZWFudXAgKmNsZWFudXA7Ci0gCi0tCSAgZm9yIChpeCA9IDA7IFZFQ19pdGVyYXRlICh2YXJv YmpfcCwgY2hpbGRyZW4sIGl4LCBjaGlsZCk7ICsraXgpCisrCiArCSAgY2xlYW51cCA9IG1ha2Vf Y2xlYW51cF91aV9vdXRfbGlzdF9iZWdpbl9lbmQgKHVpb3V0LCAibmV3X2NoaWxkcmVuIik7CiAr CSAgZm9yIChqID0gMDsgVkVDX2l0ZXJhdGUgKHZhcm9ial9wLCByLT5uZXcsIGosIGNoaWxkKTsg KytqKQogIAkgICAgewpAQCAtMTE3NDksMjggKzEzMDYxLDE4IEBAIGluZGV4IDg1YWQwYzQuLmRm YWI0MTEgMTAwNjQ0CiAgLyogRGVzY3JpcHRpb24gb2YgYSBzaW5nbGUgY29tbWFuZC4gKi8KICAK IGRpZmYgLS1naXQgYS9nZGIvbWkvbWktbWFpbi5jIGIvZ2RiL21pL21pLW1haW4uYwotaW5kZXgg NmFhMWQwOC4uNDQ4ZDEwYSAxMDA2NDQKK2luZGV4IDg1N2E1ZDUuLjYxODEwMDIgMTAwNjQ0CiAt LS0gYS9nZGIvbWkvbWktbWFpbi5jCiArKysgYi9nZGIvbWkvbWktbWFpbi5jCi1AQCAtMTEzMCw2 ICsxMTMwLDEwIEBAIG1pX2NtZF9saXN0X2ZlYXR1cmVzIChjaGFyICpjb21tYW5kLCBjaGFyICoq YXJndiwgaW50IGFyZ2MpCitAQCAtMTEzMCw3ICsxMTMwLDcgQEAgbWlfY21kX2xpc3RfZmVhdHVy ZXMgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKICAgICAgICB1aV9vdXRf ZmllbGRfc3RyaW5nICh1aW91dCwgTlVMTCwgImZyb3plbi12YXJvYmpzIik7CiAgICAgICAgdWlf b3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsIE5VTEwsICJwZW5kaW5nLWJyZWFrcG9pbnRzIik7CiAg ICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsIE5VTEwsICJ0aHJlYWQtaW5mbyIpOwor LSAgICAgIAogKwotKyNpZiBIQVZFX1BZVEhPTgotKyAgICAgIHVpX291dF9maWVsZF9zdHJpbmcg KHVpb3V0LCBOVUxMLCAicHl0aG9uIik7Ci0rI2VuZGlmCi0gICAgICAgCiAgI2lmIEhBVkVfUFlU SE9OCiAgICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsIE5VTEwsICJweXRob24iKTsK LUBAIC0xMzU0LDYgKzEzNTgsNyBAQCBtaV9jbWRfZXhlY3V0ZSAoc3RydWN0IG1pX3BhcnNlICpw YXJzZSkKLSAgIGludCBpOwotIAotICAgZnJlZV9hbGxfdmFsdWVzICgpOwotKyAgZnJlZV9hbGxf dHlwZXMgKCk7Ci0gICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwIChudWxsX2NsZWFudXAsIE5VTEwp OwotIAotICAgaWYgKHBhcnNlLT5mcmFtZSAhPSAtMSAmJiBwYXJzZS0+dGhyZWFkID09IC0xKQor ICNlbmRpZgogZGlmZiAtLWdpdCBhL2dkYi9taXBzcmVhZC5jIGIvZ2RiL21pcHNyZWFkLmMKIGlu ZGV4IGE4NDAwM2YuLjkyNGMxYzUgMTAwNjQ0CiAtLS0gYS9nZGIvbWlwc3JlYWQuYwpAQCAtMTE3 ODQsNyArMTMwODYsNyBAQCBpbmRleCBhODQwMDNmLi45MjRjMWM1IDEwMDY0NAogICAgZGVmYXVs dF9zeW1maWxlX29mZnNldHMsCS8qIHN5bV9vZmZzZXRzOiBkdW1teSBGSVhNRSB0aWwgaW1wbGVt IHN5bSByZWxvYyAqLwogICAgZGVmYXVsdF9zeW1maWxlX3NlZ21lbnRzLAkvKiBzeW1fc2VnbWVu dHM6IEdldCBzZWdtZW50IGluZm9ybWF0aW9uIGZyb20KIGRpZmYgLS1naXQgYS9nZGIvb2JqZmls ZXMuYyBiL2dkYi9vYmpmaWxlcy5jCi1pbmRleCA5MmRiNjVlLi40ZDM5MTEyIDEwMDY0NAoraW5k ZXggM2ZhNjhmNi4uMTBkMmJkMSAxMDA2NDQKIC0tLSBhL2dkYi9vYmpmaWxlcy5jCiArKysgYi9n ZGIvb2JqZmlsZXMuYwogQEAgLTUwLDcgKzUwLDYgQEAKQEAgLTExODEyLDkgKzEzMTE0LDkgQEAg aW5kZXggOTJkYjY1ZS4uNGQzOTExMiAxMDA2NDQKICAgIC8qIEJlZm9yZSB0aGUgc3ltYm9sIHRh YmxlIGNvZGUgd2FzIHJlZG9uZSB0byBtYWtlIGl0IGVhc2llciB0bwogICAgICAgc2VsZWN0aXZl bHkgbG9hZCBhbmQgcmVtb3ZlIGluZm9ybWF0aW9uIHBhcnRpY3VsYXIgdG8gYSBzcGVjaWZpYwog ICAgICAgbGlua2FnZSB1bml0LCBnZGIgdXNlZCB0byBkbyB0aGVzZSB0aGluZ3Mgd2hlbmV2ZXIg dGhlIG1vbm9saXRoaWMKLUBAIC03MTYsNiArNzE3LDIwIEBAIGhhdmVfcGFydGlhbF9zeW1ib2xz ICh2b2lkKQotIAlyZXR1cm4gMTsKLSAgICAgICB9CitAQCAtNzMwLDYgKzczMSwyMCBAQCBoYXZl X3BhcnRpYWxfc3ltYm9scyAodm9pZCkKKyAgICAgaWYgKG9iamZpbGVfaGFzX3BhcnRpYWxfc3lt Ym9scyAob2ZwKSkKKyAgICAgICByZXR1cm4gMTsKICAgIH0KICsKICsgIC8qIFRyeSBhZ2Fpbiwg YWZ0ZXIgcmVhZGluZyBwYXJ0aWFsIHN5bWJvbHMuICBXZSBkbyB0aGlzIGluIHR3bwpAQCAtMTE4 MzQsNyArMTMxMzYsNyBAQCBpbmRleCA5MmRiNjVlLi40ZDM5MTEyIDEwMDY0NAogIH0KICAKIGRp ZmYgLS1naXQgYS9nZGIvb2JqZmlsZXMuaCBiL2dkYi9vYmpmaWxlcy5oCi1pbmRleCBhZWNmOGQ4 Li45YTdkNjM1IDEwMDY0NAoraW5kZXggNmFiY2IwZi4uMjEzOTU5MCAxMDA2NDQKIC0tLSBhL2dk Yi9vYmpmaWxlcy5oCiArKysgYi9nZGIvb2JqZmlsZXMuaAogQEAgLTIxMiw2ICsyMTIsMTEgQEAg c3RydWN0IG9iamZpbGUKQEAgLTExODY1LDcgKzEzMTY3LDcgQEAgaW5kZXggYWVjZjhkOC4uOWE3 ZDYzNSAxMDA2NDQKICAvKiBUaGUgb2JqZWN0IGZpbGUgdGhhdCB0aGUgbWFpbiBzeW1ib2wgdGFi bGUgd2FzIGxvYWRlZCBmcm9tIChlLmcuIHRoZQogICAgIGFyZ3VtZW50IHRvIHRoZSAic3ltYm9s LWZpbGUiIG9yICJmaWxlIiBjb21tYW5kKS4gICovCiAgCi1AQCAtNTU0LDYgKzU2OCwxMyBAQCBl eHRlcm4gdm9pZCBnZGJfYmZkX3VucmVmIChzdHJ1Y3QgYmZkICphYmZkKTsKK0BAIC01NTksNiAr NTczLDEzIEBAIGV4dGVybiB2b2lkIGdkYl9iZmRfdW5yZWYgKHN0cnVjdCBiZmQgKmFiZmQpOwog ICAgQUxMX09CSkZJTEVTIChvYmpmaWxlKQkgXAogICAgICBBTExfT0JKRklMRV9QU1lNVEFCUyAo b2JqZmlsZSwgcCkKICAKQEAgLTEzMjEwLDExICsxNDUxMiwxMSBAQCBpbmRleCAwMDAwMDAwLi5k ZWJiM2JiCiArCXJldHVybiB3YW50ZWQgPT0gZm91bmQKICsKICtJblNjb3BlICgpCi1kaWZmIC0t Z2l0IGEvZ2RiL3B5dGhvbi9weXRob24tYmxvY2suYyBiL2dkYi9weXRob24vcHl0aG9uLWJsb2Nr LmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LWJsb2NrLmMgYi9nZGIvcHl0aG9uL3B5LWJs b2NrLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAwLi44MDE5ZTlkCiAtLS0g L2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1ibG9jay5jCisrKysgYi9nZGIvcHl0 aG9uL3B5LWJsb2NrLmMKIEBAIC0wLDAgKzEsMjY1IEBACiArLyogUHl0aG9uIGludGVyZmFjZSB0 byBibG9ja3MuCiArCkBAIC0xMzQ4MSwxMSArMTQ3ODMsMTEgQEAgaW5kZXggMDAwMDAwMC4uODAx OWU5ZAogKyAgYmxweV9ibG9ja19zeW1zX2l0ZXJuZXh0LAkgIC8qIHRwX2l0ZXJuZXh0ICovCiAr ICAwCQkJCSAgLyogdHBfbWV0aG9kcyAqLwogK307Ci1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9w eXRob24tYnJlYWtwb2ludC5jIGIvZ2RiL3B5dGhvbi9weXRob24tYnJlYWtwb2ludC5jCitkaWZm IC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS1icmVha3BvaW50LmMgYi9nZGIvcHl0aG9uL3B5LWJyZWFr cG9pbnQuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLmFmYTk1MjYKIC0t LSAvZGV2L251bGwKLSsrKyBiL2dkYi9weXRob24vcHl0aG9uLWJyZWFrcG9pbnQuYworKysrIGIv Z2RiL3B5dGhvbi9weS1icmVha3BvaW50LmMKIEBAIC0wLDAgKzEsNjY1IEBACiArLyogUHl0aG9u IGludGVyZmFjZSB0byBicmVha3BvaW50cwogKwpAQCAtMTQxNTIsMTAgKzE1NDU0LDEwIEBAIGlu ZGV4IDAwMDAwMDAuLmFmYTk1MjYKICsgIDAsCQkJCSAgLyogdHBfbWVtYmVycyAqLwogKyAgYnJl YWtwb2ludF9vYmplY3RfZ2V0c2V0CSAgLyogdHBfZ2V0c2V0ICovCiArfTsKLWRpZmYgLS1naXQg YS9nZGIvcHl0aG9uL3B5dGhvbi1jbWQuYyBiL2dkYi9weXRob24vcHl0aG9uLWNtZC5jCitkaWZm IC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS1jbWQuYyBiL2dkYi9weXRob24vcHktY21kLmMKIGluZGV4 IDUyOGFjYTYuLjA0YjNmZDEgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi1jbWQuYwot KysrIGIvZ2RiL3B5dGhvbi9weXRob24tY21kLmMKKy0tLSBhL2dkYi9weXRob24vcHktY21kLmMK KysrKyBiL2dkYi9weXRob24vcHktY21kLmMKIEBAIC00OSw4ICs0OSw3IEBAIHN0YXRpYyBzdHJ1 Y3QgY21kcHlfY29tcGxldGVyIGNvbXBsZXRlcnNbXSA9CiAgCiAgI2RlZmluZSBOX0NPTVBMRVRF UlMgKHNpemVvZiAoY29tcGxldGVycykgLyBzaXplb2YgKGNvbXBsZXRlcnNbMF0pKQpAQCAtMTQy MTcsMTAgKzE1NTE5LDEwIEBAIGluZGV4IDUyOGFjYTYuLjA0YjNmZDEgMTAwNjQ0CiAgICBpZiAo ISBjbWRfbmFtZSkKICAgICAgcmV0dXJuIC0xOwogIAotZGlmZiAtLWdpdCBhL2dkYi9weXRob24v cHl0aG9uLWZyYW1lLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi1mcmFtZS5jCitkaWZmIC0tZ2l0IGEv Z2RiL3B5dGhvbi9weS1mcmFtZS5jIGIvZ2RiL3B5dGhvbi9weS1mcmFtZS5jCiBpbmRleCAyNzk0 MTVjLi41ZDhjZTBhIDEwMDY0NAotLS0tIGEvZ2RiL3B5dGhvbi9weXRob24tZnJhbWUuYwotKysr IGIvZ2RiL3B5dGhvbi9weXRob24tZnJhbWUuYworLS0tIGEvZ2RiL3B5dGhvbi9weS1mcmFtZS5j CisrKysgYi9nZGIvcHl0aG9uL3B5LWZyYW1lLmMKIEBAIC0yMDIsMTAgKzIwMiw1OSBAQCBmcmFw eV9wYyAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogICAgcmV0dXJuIFB5TG9uZ19G cm9tVW5zaWduZWRMb25nTG9uZyAocGMpOwogIH0KQEAgLTE0NDA1LDExICsxNTcwNywxMSBAQCBp bmRleCAyNzk0MTVjLi41ZDhjZTBhIDEwMDY0NAogICAge05VTEx9ICAvKiBTZW50aW5lbCAqLwog IH07CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24taG9va3MuYyBiL2dkYi9weXRo b24vcHl0aG9uLWhvb2tzLmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LWhvb2tzLmMgYi9n ZGIvcHl0aG9uL3B5LWhvb2tzLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAw Li5hMzE0MGJjCiAtLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1ob29rcy5j CisrKysgYi9nZGIvcHl0aG9uL3B5LWhvb2tzLmMKIEBAIC0wLDAgKzEsNTAgQEAKICsvKiBOb3Rp ZmljYXRpb25zIGZyb20gZ2RiIHRvIFB5dGhvbgogKwpAQCAtMTQ0NjEsMTEgKzE1NzYzLDExIEBA IGluZGV4IDAwMDAwMDAuLmEzMTQwYmMKICsgIFB5X0RFQ1JFRiAoaG9va3MpOwogKyAgcmV0dXJu IHJlc3VsdDsKICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24taW5mZXJpb3IuYyBi L2dkYi9weXRob24vcHl0aG9uLWluZmVyaW9yLmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5 LWluZmVyaW9yLmMgYi9nZGIvcHl0aG9uL3B5LWluZmVyaW9yLmMKIG5ldyBmaWxlIG1vZGUgMTAw NjQ0CiBpbmRleCAwMDAwMDAwLi41ZTkwY2MyCiAtLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0 aG9uL3B5dGhvbi1pbmZlcmlvci5jCisrKysgYi9nZGIvcHl0aG9uL3B5LWluZmVyaW9yLmMKIEBA IC0wLDAgKzEsOTI2IEBACiArLyogUHl0aG9uIGludGVyZmFjZSB0byBpbmZlcmlvcnMuCiArCkBA IC0xNTM5MywxMSArMTY2OTUsMTEgQEAgaW5kZXggMDAwMDAwMC4uNWU5MGNjMgogKyAgMCwJCQkJ ICAvKiB0cF9hbGxvYyAqLwogKyAgUHlUeXBlX0dlbmVyaWNOZXcJCSAgLyogdHBfbmV3ICovCiAr fTsKLWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1pbmZ0aHJlYWQuYyBiL2dkYi9weXRo b24vcHl0aG9uLWluZnRocmVhZC5jCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weS1pbmZ0aHJl YWQuYyBiL2dkYi9weXRob24vcHktaW5mdGhyZWFkLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBp bmRleCAwMDAwMDAwLi4yMWU0ZWFiCiAtLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvcHl0aG9uL3B5 dGhvbi1pbmZ0aHJlYWQuYworKysrIGIvZ2RiL3B5dGhvbi9weS1pbmZ0aHJlYWQuYwogQEAgLTAs MCArMSwyODUgQEAKICsvKiBQeXRob24gaW50ZXJmYWNlIHRvIGluZmVyaW9yIHRocmVhZHMuCiAr CkBAIC0xNTY4NCwxNDkgKzE2OTg2LDExIEBAIGluZGV4IDAwMDAwMDAuLjIxZTRlYWIKICsgIDAs CQkJCSAgLyogdHBfaW5pdCAqLwogKyAgMAkJCQkgIC8qIHRwX2FsbG9jICovCiArfTsKLWRpZmYg LS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oIGIvZ2RiL3B5dGhvbi9weXRob24t aW50ZXJuYWwuaAotaW5kZXggNjdhNzhhZi4uNDc2NjJkOSAxMDA2NDQKLS0tLSBhL2dkYi9weXRo b24vcHl0aG9uLWludGVybmFsLmgKLSsrKyBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgK LUBAIC02MSwzMyArNjEsNzYgQEAgdHlwZWRlZiBpbnQgUHlfc3NpemVfdDsKLSAjZGVmaW5lIFB5 RXZhbF9SZWxlYXNlTG9jaygpIDAKLSAjZW5kaWYKLSAKLSsjaW5jbHVkZSAiY29tbWFuZC5oIgot KwotK3N0cnVjdCBibG9jazsKLStzdHJ1Y3Qgc3ltYm9sOwotK3N0cnVjdCBzeW10YWJfYW5kX2xp bmU7Ci0gc3RydWN0IHZhbHVlOwotIHN0cnVjdCBsYW5ndWFnZV9kZWZuOwotIAotIGV4dGVybiBQ eU9iamVjdCAqZ2RiX21vZHVsZTsKLStleHRlcm4gUHlUeXBlT2JqZWN0IGJsb2NrX29iamVjdF90 eXBlOwotIGV4dGVybiBQeVR5cGVPYmplY3QgdmFsdWVfb2JqZWN0X3R5cGU7Ci0rZXh0ZXJuIFB5 VHlwZU9iamVjdCBzeW1ib2xfb2JqZWN0X3R5cGU7Ci0rCi0rLyogVXNlZCBpbiBweXRob24taW5m ZXJpb3IuYy4gICovCi0rdHlwZWRlZiBzdHJ1Y3QKLSt7Ci0rICBQeU9iamVjdF9IRUFECi0rCi0r ICAvKiBUaGUgdGhyZWFkIHdlIHJlcHJlc2VudC4gICovCi0rICBzdHJ1Y3QgdGhyZWFkX2luZm8g KnRocmVhZDsKLSsKLSsgIC8qIFRoZSBJbmZlcmlvciBvYmplY3QgdG8gd2hpY2ggdGhpcyB0aHJl YWQgYmVsb25ncy4gICovCi0rICBQeU9iamVjdCAqaW5mX29iajsKLSt9IHRocmVhZF9vYmplY3Q7 Ci0gCi0gUHlPYmplY3QgKmdkYnB5X2hpc3RvcnkgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAq YXJncyk7Ci0rUHlPYmplY3QgKmdkYnB5X2JyZWFrcG9pbnRzIChQeU9iamVjdCAqLCBQeU9iamVj dCAqKTsKLSBQeU9iamVjdCAqZ2RicHlfZnJhbWVfc3RvcF9yZWFzb25fc3RyaW5nIChQeU9iamVj dCAqLCBQeU9iamVjdCAqKTsKLStQeU9iamVjdCAqZ2RicHlfbG9va3VwX3N5bWJvbCAoUHlPYmpl Y3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3cpOwotIFB5T2JqZWN0ICpnZGJw eV9zZWxlY3RlZF9mcmFtZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKTsKLStQeU9i amVjdCAqZ2RicHlfYmxvY2tfZm9yX3BjIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3Mp OwotIFB5T2JqZWN0ICpnZGJweV9sb29rdXBfdHlwZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICphcmdzLCBQeU9iamVjdCAqa3cpOwotK1B5T2JqZWN0ICpnZGJweV9pbmZlcmlvcnMgKFB5T2Jq ZWN0ICp1bnVzZWQsIFB5T2JqZWN0ICp1bnVzZWQyKTsKLStQeU9iamVjdCAqZ2RicHlfc2VsZWN0 ZWRfdGhyZWFkIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpOwotIAotK1B5T2JqZWN0 ICpzeW10YWJfYW5kX2xpbmVfdG9fc2FsX29iamVjdCAoc3RydWN0IHN5bXRhYl9hbmRfbGluZSBz YWwpOwotK1B5T2JqZWN0ICpzeW10YWJfdG9fc3ltdGFiX29iamVjdCAoc3RydWN0IHN5bXRhYiAq c3ltdGFiKTsKLStQeU9iamVjdCAqc3ltYm9sX3RvX3N5bWJvbF9vYmplY3QgKHN0cnVjdCBzeW1i b2wgKnN5bSk7Ci0rUHlPYmplY3QgKmJsb2NrX3RvX2Jsb2NrX29iamVjdCAoc3RydWN0IGJsb2Nr ICpibG9jayk7Ci0gUHlPYmplY3QgKnZhbHVlX3RvX3ZhbHVlX29iamVjdCAoc3RydWN0IHZhbHVl ICp2KTsKLSBQeU9iamVjdCAqdHlwZV90b190eXBlX29iamVjdCAoc3RydWN0IHR5cGUgKik7Ci0g UHlPYmplY3QgKm9iamZpbGVfdG9fb2JqZmlsZV9vYmplY3QgKHN0cnVjdCBvYmpmaWxlICopOwot K1B5T2JqZWN0ICpmcmFtZV9pbmZvX3RvX2ZyYW1lX29iamVjdCAoc3RydWN0IGZyYW1lX2luZm8g KmZyYW1lKTsKLSt0aHJlYWRfb2JqZWN0ICpjcmVhdGVfdGhyZWFkX29iamVjdCAoc3RydWN0IHRo cmVhZF9pbmZvICp0cCk7Ci0rdGhyZWFkX29iamVjdCAqZmluZF90aHJlYWRfb2JqZWN0IChwdGlk X3QgcHRpZCk7Ci0rUHlPYmplY3QgKmZpbmRfaW5mZXJpb3Jfb2JqZWN0IChpbnQgcGlkKTsKLSAK LSBQeU9iamVjdCAqb2JqZnB5X2dldF9wcmludGVycyAoUHlPYmplY3QgKiwgdm9pZCAqKTsKLSAK LStzdHJ1Y3QgYmxvY2sgKmJsb2NrX29iamVjdF90b19ibG9jayAoUHlPYmplY3QgKm9iaik7Ci0r c3RydWN0IHN5bWJvbCAqc3ltYm9sX29iamVjdF90b19zeW1ib2wgKFB5T2JqZWN0ICpvYmopOwot IHN0cnVjdCB2YWx1ZSAqdmFsdWVfb2JqZWN0X3RvX3ZhbHVlIChQeU9iamVjdCAqc2VsZik7Ci0g c3RydWN0IHZhbHVlICpjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqKTsK LSBzdHJ1Y3QgdHlwZSAqdHlwZV9vYmplY3RfdG9fdHlwZSAoUHlPYmplY3QgKm9iaik7Ci0gCi0r UHlPYmplY3QgKmdkYnB5X2dldF9ob29rX2Z1bmN0aW9uIChjb25zdCBjaGFyICopOwotKwotIHZv aWQgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQpOwotK3ZvaWQgZ2RicHlfaW5pdGlhbGl6 ZV9icmVha3BvaW50cyAodm9pZCk7Ci0gdm9pZCBnZGJweV9pbml0aWFsaXplX2ZyYW1lcyAodm9p ZCk7Ci0rdm9pZCBnZGJweV9pbml0aWFsaXplX3N5bXRhYnMgKHZvaWQpOwotIHZvaWQgZ2RicHlf aW5pdGlhbGl6ZV9jb21tYW5kcyAodm9pZCk7Ci0rdm9pZCBnZGJweV9pbml0aWFsaXplX3N5bWJv bHMgKHZvaWQpOwotIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV90eXBlcyAodm9pZCk7Ci0rdm9pZCBn ZGJweV9pbml0aWFsaXplX2Jsb2NrcyAodm9pZCk7Ci0gdm9pZCBnZGJweV9pbml0aWFsaXplX2Z1 bmN0aW9ucyAodm9pZCk7Ci0gdm9pZCBnZGJweV9pbml0aWFsaXplX29iamZpbGUgKHZvaWQpOwot K3ZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9wYXJhbWV0ZXJzICh2b2lkKTsKLSt2b2lkIGdkYnB5X2lu aXRpYWxpemVfdGhyZWFkICh2b2lkKTsKLSt2b2lkIGdkYnB5X2luaXRpYWxpemVfaW5mZXJpb3Ig KHZvaWQpOwotIAotIHN0cnVjdCBjbGVhbnVwICptYWtlX2NsZWFudXBfcHlfZGVjcmVmIChQeU9i amVjdCAqcHkpOwotIAotQEAgLTk3LDYgKzE0MCwxMiBAQCBzdHJ1Y3QgY2xlYW51cCAqZW5zdXJl X3B5dGhvbl9lbnYgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAotIGV4dGVybiBzdHJ1Y3QgZ2Ri YXJjaCAqcHl0aG9uX2dkYmFyY2g7Ci0gZXh0ZXJuIGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZu ICpweXRob25fbGFuZ3VhZ2U7Ci0gCi0rY2hhciAqZ2RicHlfcGFyc2VfY29tbWFuZF9uYW1lIChj aGFyICp0ZXh0LAotKwkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqKipiYXNlX2xpc3QsCi0r CQkJCXN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICoqc3RhcnRfbGlzdCk7Ci0rCi0rUHlPYmplY3Qg KmdkYnB5X3BhcmFtZXRlcl92YWx1ZSAoZW51bSB2YXJfdHlwZXMsIHZvaWQgKik7Ci0rCi0gLyog VXNlIHRoaXMgYWZ0ZXIgYSBUUllfRVhDRVBUIHRvIHRocm93IHRoZSBhcHByb3ByaWF0ZSBQeXRo b24KLSAgICBleGNlcHRpb24uICAqLwotICNkZWZpbmUgR0RCX1BZX0hBTkRMRV9FWENFUFRJT04o RXhjZXB0aW9uKQkJCQlcCi1AQCAtMTA3LDYgKzE1NiwxOSBAQCBleHRlcm4gY29uc3Qgc3RydWN0 IGxhbmd1YWdlX2RlZm4gKnB5dGhvbl9sYW5ndWFnZTsKLSAJCQkgICAgICIlcyIsIEV4Y2VwdGlv bi5tZXNzYWdlKTsJCQlcCi0gICAgIH0gd2hpbGUgKDApCi0gCi0rLyogVXNlIHRoaXMgYWZ0ZXIg YSBUUllfRVhDRVBUIHRvIHRocm93IHRoZSBhcHByb3ByaWF0ZSBQeXRob24KLSsgICBleGNlcHRp b24uICBUaGlzIG1hY3JvIGlzIGZvciB1c2UgaW5zaWRlIHNldHRlciBmdW5jdGlvbnMuICAqLwot KyNkZWZpbmUgR0RCX1BZX1NFVF9IQU5ETEVfRVhDRVBUSU9OKEV4Y2VwdGlvbikJCQkJXAotKyAg ICBkbyB7CQkJCQkJCQlcCi0rICAgICAgaWYgKEV4Y2VwdGlvbi5yZWFzb24gPCAwKQkJCQkJCVwK LSsgICAgICAgIHsJCQkJCQkJCVwKLSsJICBQeUVycl9Gb3JtYXQgKEV4Y2VwdGlvbi5yZWFzb24g PT0gUkVUVVJOX1FVSVQJCQlcCi0rCQkJPyBQeUV4Y19LZXlib2FyZEludGVycnVwdCA6IFB5RXhj X1J1bnRpbWVFcnJvciwgXAotKwkJCSIlcyIsIEV4Y2VwdGlvbi5tZXNzYWdlKTsJCQlcCi0rCSAg cmV0dXJuIC0xOwkJCQkJCQlcCi0rCX0JCQkJCQkJCVwKLSsgICAgfSB3aGlsZSAoMCkKLSsKLSAK LSB2b2lkIGdkYnB5X3ByaW50X3N0YWNrICh2b2lkKTsKLSAKLUBAIC0xMTgsMTcgKzE4MCwyMiBA QCBjaGFyICpweXRob25fc3RyaW5nX3RvX2hvc3Rfc3RyaW5nIChQeU9iamVjdCAqb2JqKTsKLSBQ eU9iamVjdCAqdGFyZ2V0X3N0cmluZ190b191bmljb2RlIChjb25zdCBnZGJfYnl0ZSAqc3RyLCBp bnQgbGVuZ3RoKTsKLSBpbnQgZ2RicHlfaXNfc3RyaW5nIChQeU9iamVjdCAqb2JqKTsKLSAKLStp bnQgZ2RicHlfaXNfdmFsdWVfb2JqZWN0IChQeU9iamVjdCAqb2JqKTsKLSsKLSAvKiBOb3RlIHRo YXQgdGhlc2UgYXJlIGRlY2xhcmVkIGhlcmUsIGFuZCBub3QgaW4gcHl0aG9uLmggd2l0aCB0aGUK LSAgICBvdGhlciBwcmV0dHktcHJpbnRlciBmdW5jdGlvbnMsIGJlY2F1c2UgdGhleSByZWZlciB0 byBQeU9iamVjdC4gICovCi0gUHlPYmplY3QgKmFwcGx5X3Zhcm9ial9wcmV0dHlfcHJpbnRlciAo UHlPYmplY3QgKnByaW50X29iaiwKLSAJCQkJICAgICAgIHN0cnVjdCB2YWx1ZSAqKnJlcGxhY2Vt ZW50KTsKLSBQeU9iamVjdCAqZ2RicHlfZ2V0X3Zhcm9ial9wcmV0dHlfcHJpbnRlciAoc3RydWN0 IHZhbHVlICp2YWx1ZSk7Ci0rUHlPYmplY3QgKmdkYnB5X2luc3RhbnRpYXRlX3ByaW50ZXIgKFB5 T2JqZWN0ICpjb25zLCBQeU9iamVjdCAqdmFsdWUpOwotIGNoYXIgKmdkYnB5X2dldF9kaXNwbGF5 X2hpbnQgKFB5T2JqZWN0ICpwcmludGVyKTsKLSBQeU9iamVjdCAqZ2RicHlfZGVmYXVsdF92aXN1 YWxpemVyIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpOwotIAotLWV4dGVybiBQeU9i amVjdCAqZ2RicHlfZG9jX2NzdDsKLSBleHRlcm4gUHlPYmplY3QgKmdkYnB5X2NoaWxkcmVuX2Nz dDsKLSBleHRlcm4gUHlPYmplY3QgKmdkYnB5X3RvX3N0cmluZ19jc3Q7Ci0gZXh0ZXJuIFB5T2Jq ZWN0ICpnZGJweV9kaXNwbGF5X2hpbnRfY3N0OwotK2V4dGVybiBQeU9iamVjdCAqZ2RicHlfZG9j X2NzdDsKLSsKLStpbnQgZ2V0X2FkZHJfZnJvbV9weXRob24gKFB5T2JqZWN0ICpvYmosIENPUkVf QUREUiAqYWRkcik7Ci0gCi0gI2VuZGlmIC8qIEdEQl9QWVRIT05fSU5URVJOQUxfSCAqLwotZGlm ZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLW1lbWJ1Zi5jIGIvZ2RiL3B5dGhvbi9weXRob24t bWVtYnVmLmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LW1lbWJ1Zi5jIGIvZ2RiL3B5dGhv bi9weS1tZW1idWYuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjdiYzI5 NGMKIC0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9weXRob24vcHl0aG9uLW1lbWJ1Zi5jCisrKysg Yi9nZGIvcHl0aG9uL3B5LW1lbWJ1Zi5jCiBAQCAtMCwwICsxLDI2OCBAQAogKy8qIFB5dGhvbiBp bnRlcmZhY2UgdG8gdGhlIGluZmVyaW9yIG1lbW9yeS4KICsKQEAgLTE2MDk2LDExICsxNzI2MCwx MSBAQCBpbmRleCAwMDAwMDAwLi43YmMyOTRjCiArICBQeV9JTkNSRUYgKCZtZW1idWZfb2JqZWN0 X3R5cGUpOwogKyAgUHlNb2R1bGVfQWRkT2JqZWN0IChnZGJfbW9kdWxlLCAiTWVtYnVmIiwgKFB5 T2JqZWN0ICopICZtZW1idWZfb2JqZWN0X3R5cGUpOwogK30KLWRpZmYgLS1naXQgYS9nZGIvcHl0 aG9uL3B5dGhvbi1wYXJhbS5jIGIvZ2RiL3B5dGhvbi9weXRob24tcGFyYW0uYworZGlmZiAtLWdp dCBhL2dkYi9weXRob24vcHktcGFyYW0uYyBiL2dkYi9weXRob24vcHktcGFyYW0uYwogbmV3IGZp bGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjFmNTkxYTgKIC0tLSAvZGV2L251bGwKLSsr KyBiL2dkYi9weXRob24vcHl0aG9uLXBhcmFtLmMKKysrKyBiL2dkYi9weXRob24vcHktcGFyYW0u YwogQEAgLTAsMCArMSw2MDYgQEAKICsvKiBnZGIgcGFyYW1ldGVycyBpbXBsZW1lbnRlZCBpbiBQ eXRob24KICsKQEAgLTE2NzA4LDEwICsxNzg3MiwxMCBAQCBpbmRleCAwMDAwMDAwLi4xZjU5MWE4 CiArICAwLAkJCQkgIC8qIHRwX2FsbG9jICovCiArICBQeVR5cGVfR2VuZXJpY05ldwkJICAvKiB0 cF9uZXcgKi8KICt9OwotZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLXByZXR0eXByaW50 LmMgYi9nZGIvcHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5jCitkaWZmIC0tZ2l0IGEvZ2RiL3B5 dGhvbi9weS1wcmV0dHlwcmludC5jIGIvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCiBpbmRl eCA1ZDY5NmM4Li5hNjM0OGJhIDEwMDY0NAotLS0tIGEvZ2RiL3B5dGhvbi9weXRob24tcHJldHR5 cHJpbnQuYwotKysrIGIvZ2RiL3B5dGhvbi9weXRob24tcHJldHR5cHJpbnQuYworLS0tIGEvZ2Ri L3B5dGhvbi9weS1wcmV0dHlwcmludC5jCisrKysgYi9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50 LmMKIEBAIC0xMjEsNiArMTIxLDcgQEAgZmluZF9wcmV0dHlfcHJpbnRlciAoUHlPYmplY3QgKnZh bHVlKQogICAgCiAgICByZXR1cm4gZnVuY3Rpb247CkBAIC0xNjc1NSwxMSArMTc5MTksMTEgQEAg aW5kZXggNWQ2OTZjOC4uYTYzNDhiYSAxMDA2NDQKICAgIHZhbF9vYmogPSB2YWx1ZV90b192YWx1 ZV9vYmplY3QgKHZhbHVlKTsKICAgIGlmICghIHZhbF9vYmopCiAgICAgIHJldHVybiBOVUxMOwot ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLXN5bWJvbC5jIGIvZ2RiL3B5dGhvbi9weXRo b24tc3ltYm9sLmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LXN5bWJvbC5jIGIvZ2RiL3B5 dGhvbi9weS1zeW1ib2wuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjAz ZDQzYzEKIC0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi9weXRob24vcHl0aG9uLXN5bWJvbC5jCisr KysgYi9nZGIvcHl0aG9uL3B5LXN5bWJvbC5jCiBAQCAtMCwwICsxLDMzNiBAQAogKy8qIFB5dGhv biBpbnRlcmZhY2UgdG8gc3ltYm9scy4KICsKQEAgLTE3MDk3LDExICsxODI2MSwxMSBAQCBpbmRl eCAwMDAwMDAwLi4wM2Q0M2MxCiArICAwLAkJCQkgIC8qIHRwX21lbWJlcnMgKi8KICsgIHN5bWJv bF9vYmplY3RfZ2V0c2V0CQkgIC8qIHRwX2dldHNldCAqLwogK307Ci1kaWZmIC0tZ2l0IGEvZ2Ri L3B5dGhvbi9weXRob24tc3ltdGFiLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi1zeW10YWIuYworZGlm ZiAtLWdpdCBhL2dkYi9weXRob24vcHktc3ltdGFiLmMgYi9nZGIvcHl0aG9uL3B5LXN5bXRhYi5j CiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uODMwZTU4NgogLS0tIC9kZXYv bnVsbAotKysrIGIvZ2RiL3B5dGhvbi9weXRob24tc3ltdGFiLmMKKysrKyBiL2dkYi9weXRob24v cHktc3ltdGFiLmMKIEBAIC0wLDAgKzEsMzIyIEBACiArLyogUHl0aG9uIGludGVyZmFjZSB0byBz eW1ib2wgdGFibGVzLgogKwpAQCAtMTc0MjUsMTAgKzE4NTg5LDEwIEBAIGluZGV4IDAwMDAwMDAu LjgzMGU1ODYKICsgIDAsCQkJCSAgLyogdHBfbWVtYmVycyAqLwogKyAgc2FsX29iamVjdF9nZXRz ZXQJCSAgLyogdHBfZ2V0c2V0ICovCiArfTsKLWRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhv bi10eXBlLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi10eXBlLmMKK2RpZmYgLS1naXQgYS9nZGIvcHl0 aG9uL3B5LXR5cGUuYyBiL2dkYi9weXRob24vcHktdHlwZS5jCiBpbmRleCBmMjMyNDhjLi5iNDFk ODY4IDEwMDY0NAotLS0tIGEvZ2RiL3B5dGhvbi9weXRob24tdHlwZS5jCi0rKysgYi9nZGIvcHl0 aG9uL3B5dGhvbi10eXBlLmMKKy0tLSBhL2dkYi9weXRob24vcHktdHlwZS5jCisrKysgYi9nZGIv cHl0aG9uL3B5LXR5cGUuYwogQEAgLTI3LDYgKzI3LDggQEAKICAjaW5jbHVkZSAiZGVtYW5nbGUu aCIKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKQEAgLTE3NzM0LDEwICsxODg5OCwxMCBAQCBpbmRl eCBmMjMyNDhjLi5iNDFkODY4IDEwMDY0NAogIH0KICAKICAMCi1kaWZmIC0tZ2l0IGEvZ2RiL3B5 dGhvbi9weXRob24tdXRpbHMuYyBiL2dkYi9weXRob24vcHl0aG9uLXV0aWxzLmMKK2RpZmYgLS1n aXQgYS9nZGIvcHl0aG9uL3B5LXV0aWxzLmMgYi9nZGIvcHl0aG9uL3B5LXV0aWxzLmMKIGluZGV4 IDQ5YzA0MzcuLjg0YTQ3NmUgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi11dGlscy5j Ci0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi11dGlscy5jCistLS0gYS9nZGIvcHl0aG9uL3B5LXV0 aWxzLmMKKysrKyBiL2dkYi9weXRob24vcHktdXRpbHMuYwogQEAgLTE5LDYgKzE5LDcgQEAKICAK ICAjaW5jbHVkZSAiZGVmcy5oIgpAQCAtMTc3OTUsMTAgKzE4OTU5LDEwIEBAIGluZGV4IDQ5YzA0 MzcuLjg0YTQ3NmUgMTAwNjQ0CiArCiArICByZXR1cm4gMTsKICt9Ci1kaWZmIC0tZ2l0IGEvZ2Ri L3B5dGhvbi9weXRob24tdmFsdWUuYyBiL2dkYi9weXRob24vcHl0aG9uLXZhbHVlLmMKLWluZGV4 IGM0MjE3ZDUuLmI5OTM1MTUgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi12YWx1ZS5j Ci0rKysgYi9nZGIvcHl0aG9uL3B5dGhvbi12YWx1ZS5jCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhv bi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCitpbmRleCAzZDg4YWEzLi5iOTkz NTE1IDEwMDY0NAorLS0tIGEvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCisrKysgYi9nZGIvcHl0aG9u L3B5LXZhbHVlLmMKIEBAIC0yNSw2ICsyNSw3IEBACiAgI2luY2x1ZGUgImxhbmd1YWdlLmgiCiAg I2luY2x1ZGUgImRmcC5oIgpAQCAtMTc4MTgsMzcgKzE4OTgyLDcgQEAgaW5kZXggYzQyMTdkNS4u Yjk5MzUxNSAxMDA2NDQKICAjZGVmaW5lIGJ1aWx0aW5fdHlwZV9weWJvb2wgXAogICAgbGFuZ3Vh Z2VfYm9vbF90eXBlIChweXRob25fbGFuZ3VhZ2UsIHB5dGhvbl9nZGJhcmNoKQogIAotQEAgLTY5 Myw3ICs2OTgsMTAgQEAgdmFscHlfcmljaGNvbXBhcmUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj dCAqb3RoZXIsIGludCBvcCkKLSAgICAgewotICAgICAgIHZhbHVlX290aGVyID0gY29udmVydF92 YWx1ZV9mcm9tX3B5dGhvbiAob3RoZXIpOwotICAgICAgIGlmICh2YWx1ZV9vdGhlciA9PSBOVUxM KQotLQlyZXR1cm4gTlVMTDsKLSsJewotKwkgIHJlc3VsdCA9IC0xOwotKwkgIGJyZWFrOwotKwl9 Ci0gCi0gICAgICAgc3dpdGNoIChvcCkgewotICAgICAgICAgY2FzZSBQeV9MVDoKLUBAIC03MjAs MTEgKzcyOCwxNiBAQCB2YWxweV9yaWNoY29tcGFyZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0 ICpvdGhlciwgaW50IG9wKQotIAkgIC8qIENhbid0IGhhcHBlbi4gICovCi0gCSAgUHlFcnJfU2V0 U3RyaW5nIChQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yLAotIAkJCSAgICJJbnZhbGlkIG9wZXJh dGlvbiBvbiBnZGIuVmFsdWUuIik7Ci0tCSAgcmV0dXJuIE5VTEw7Ci0rCSAgcmVzdWx0ID0gLTE7 Ci0rCSAgYnJlYWs7Ci0gICAgICAgfQotICAgICB9Ci0gICBHREJfUFlfSEFORExFX0VYQ0VQVElP TiAoZXhjZXB0KTsKLSAKLSsgIC8qIEluIHRoaXMgY2FzZSwgdGhlIFB5dGhvbiBleGNlcHRpb24g aGFzIGFscmVhZHkgYmVlbiBzZXQuICAqLwotKyAgaWYgKHJlc3VsdCA8IDApCi0rICAgIHJldHVy biBOVUxMOwotKwotICAgaWYgKHJlc3VsdCA9PSAxKQotICAgICBQeV9SRVRVUk5fVFJVRTsKLSAK LUBAIC04ODMsNyArODk2LDM0IEBAIGNvbnZlcnRfdmFsdWVfZnJvbV9weXRob24gKFB5T2JqZWN0 ICpvYmopCitAQCAtODkxLDcgKzg5NiwzNCBAQCBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChQ eU9iamVjdCAqb2JqKQogIAl7CiAgCSAgTE9OR0VTVCBsID0gUHlMb25nX0FzTG9uZ0xvbmcgKG9i aik7CiAgCkBAIC0xNzg4NCw3ICsxOTAxOCw3IEBAIGluZGV4IGM0MjE3ZDUuLmI5OTM1MTUgMTAw NjQ0CiAgCSAgICB2YWx1ZSA9IHZhbHVlX2Zyb21fbG9uZ2VzdCAoYnVpbHRpbl90eXBlX3B5bG9u ZywgbCk7CiAgCX0KICAgICAgICBlbHNlIGlmIChQeUZsb2F0X0NoZWNrIChvYmopKQotQEAgLTk0 Miw2ICs5ODIsMjUgQEAgZ2RicHlfaGlzdG9yeSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICph cmdzKQorQEAgLTk1MCw2ICs5ODIsMjUgQEAgZ2RicHlfaGlzdG9yeSAoUHlPYmplY3QgKnNlbGYs IFB5T2JqZWN0ICphcmdzKQogICAgcmV0dXJuIHZhbHVlX3RvX3ZhbHVlX29iamVjdCAocmVzX3Zh bCk7CiAgfQogIApAQCAtMTc5MTAsNyArMTkwNDQsNyBAQCBpbmRleCBjNDIxN2Q1Li5iOTkzNTE1 IDEwMDY0NAogIHZvaWQKICBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAodm9pZCkKICB7Ci1AQCAt OTUyLDYgKzEwMTEsOCBAQCBnZGJweV9pbml0aWFsaXplX3ZhbHVlcyAodm9pZCkKK0BAIC05NjAs NiArMTAxMSw4IEBAIGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKQogICAgUHlNb2R1bGVf QWRkT2JqZWN0IChnZGJfbW9kdWxlLCAiVmFsdWUiLCAoUHlPYmplY3QgKikgJnZhbHVlX29iamVj dF90eXBlKTsKICAKICAgIHZhbHVlc19pbl9weXRob24gPSBOVUxMOwpAQCAtMTc5MTksMTcgKzE5 MDUzLDE1NSBAQCBpbmRleCBjNDIxN2Q1Li5iOTkzNTE1IDEwMDY0NAogIH0KICAKICAMCi1kaWZm IC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRob24vcHl0aG9uLmMKLWluZGV4 IDI1NGJkMjguLjVhMmE5YWUgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi5jCi0rKysg Yi9nZGIvcHl0aG9uL3B5dGhvbi5jCi1AQCAtMjcsNiArMjcsNyBAQAotICNpbmNsdWRlICJvYnNl cnZlci5oIgotICNpbmNsdWRlICJ2YWx1ZS5oIgotICNpbmNsdWRlICJsYW5ndWFnZS5oIgotKyNp bmNsdWRlICJldmVudC1sb29wLmgiCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24taW50 ZXJuYWwuaCBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKK2luZGV4IDY3YTc4YWYuLjQ3 NjYyZDkgMTAwNjQ0CistLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCisrKysgYi9n ZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitAQCAtNjEsMzMgKzYxLDc2IEBAIHR5cGVkZWYg aW50IFB5X3NzaXplX3Q7CisgI2RlZmluZSBQeUV2YWxfUmVsZWFzZUxvY2soKSAwCisgI2VuZGlm CiAgCi0gI2luY2x1ZGUgPGN0eXBlLmg+CisrI2luY2x1ZGUgImNvbW1hbmQuaCIKKysKKytzdHJ1 Y3QgYmxvY2s7Cisrc3RydWN0IHN5bWJvbDsKKytzdHJ1Y3Qgc3ltdGFiX2FuZF9saW5lOworIHN0 cnVjdCB2YWx1ZTsKKyBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbjsKKyAKKyBleHRlcm4gUHlPYmplY3Qg KmdkYl9tb2R1bGU7CisrZXh0ZXJuIFB5VHlwZU9iamVjdCBibG9ja19vYmplY3RfdHlwZTsKKyBl eHRlcm4gUHlUeXBlT2JqZWN0IHZhbHVlX29iamVjdF90eXBlOworK2V4dGVybiBQeVR5cGVPYmpl Y3Qgc3ltYm9sX29iamVjdF90eXBlOworKworKy8qIFVzZWQgaW4gcHl0aG9uLWluZmVyaW9yLmMu ICAqLworK3R5cGVkZWYgc3RydWN0CisreworKyAgUHlPYmplY3RfSEVBRAorKworKyAgLyogVGhl IHRocmVhZCB3ZSByZXByZXNlbnQuICAqLworKyAgc3RydWN0IHRocmVhZF9pbmZvICp0aHJlYWQ7 CisrCisrICAvKiBUaGUgSW5mZXJpb3Igb2JqZWN0IHRvIHdoaWNoIHRoaXMgdGhyZWFkIGJlbG9u Z3MuICAqLworKyAgUHlPYmplY3QgKmluZl9vYmo7CisrfSB0aHJlYWRfb2JqZWN0OworIAorIFB5 T2JqZWN0ICpnZGJweV9oaXN0b3J5IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpOwor K1B5T2JqZWN0ICpnZGJweV9icmVha3BvaW50cyAoUHlPYmplY3QgKiwgUHlPYmplY3QgKik7Cisg UHlPYmplY3QgKmdkYnB5X2ZyYW1lX3N0b3BfcmVhc29uX3N0cmluZyAoUHlPYmplY3QgKiwgUHlP YmplY3QgKik7CisrUHlPYmplY3QgKmdkYnB5X2xvb2t1cF9zeW1ib2wgKFB5T2JqZWN0ICpzZWxm LCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KTsKKyBQeU9iamVjdCAqZ2RicHlfc2VsZWN0 ZWRfZnJhbWUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncyk7CisrUHlPYmplY3QgKmdk YnB5X2Jsb2NrX2Zvcl9wYyAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKTsKKyBQeU9i amVjdCAqZ2RicHlfbG9va3VwX3R5cGUgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywg UHlPYmplY3QgKmt3KTsKKytQeU9iamVjdCAqZ2RicHlfaW5mZXJpb3JzIChQeU9iamVjdCAqdW51 c2VkLCBQeU9iamVjdCAqdW51c2VkMik7CisrUHlPYmplY3QgKmdkYnB5X3NlbGVjdGVkX3RocmVh ZCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKTsKKyAKKytQeU9iamVjdCAqc3ltdGFi X2FuZF9saW5lX3RvX3NhbF9vYmplY3QgKHN0cnVjdCBzeW10YWJfYW5kX2xpbmUgc2FsKTsKKytQ eU9iamVjdCAqc3ltdGFiX3RvX3N5bXRhYl9vYmplY3QgKHN0cnVjdCBzeW10YWIgKnN5bXRhYik7 CisrUHlPYmplY3QgKnN5bWJvbF90b19zeW1ib2xfb2JqZWN0IChzdHJ1Y3Qgc3ltYm9sICpzeW0p OworK1B5T2JqZWN0ICpibG9ja190b19ibG9ja19vYmplY3QgKHN0cnVjdCBibG9jayAqYmxvY2sp OworIFB5T2JqZWN0ICp2YWx1ZV90b192YWx1ZV9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqdik7Cisg UHlPYmplY3QgKnR5cGVfdG9fdHlwZV9vYmplY3QgKHN0cnVjdCB0eXBlICopOworIFB5T2JqZWN0 ICpvYmpmaWxlX3RvX29iamZpbGVfb2JqZWN0IChzdHJ1Y3Qgb2JqZmlsZSAqKTsKKytQeU9iamVj dCAqZnJhbWVfaW5mb190b19mcmFtZV9vYmplY3QgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSk7 CisrdGhyZWFkX29iamVjdCAqY3JlYXRlX3RocmVhZF9vYmplY3QgKHN0cnVjdCB0aHJlYWRfaW5m byAqdHApOworK3RocmVhZF9vYmplY3QgKmZpbmRfdGhyZWFkX29iamVjdCAocHRpZF90IHB0aWQp OworK1B5T2JqZWN0ICpmaW5kX2luZmVyaW9yX29iamVjdCAoaW50IHBpZCk7CisgCisgUHlPYmpl Y3QgKm9iamZweV9nZXRfcHJpbnRlcnMgKFB5T2JqZWN0ICosIHZvaWQgKik7CisgCisrc3RydWN0 IGJsb2NrICpibG9ja19vYmplY3RfdG9fYmxvY2sgKFB5T2JqZWN0ICpvYmopOworK3N0cnVjdCBz eW1ib2wgKnN5bWJvbF9vYmplY3RfdG9fc3ltYm9sIChQeU9iamVjdCAqb2JqKTsKKyBzdHJ1Y3Qg dmFsdWUgKnZhbHVlX29iamVjdF90b192YWx1ZSAoUHlPYmplY3QgKnNlbGYpOworIHN0cnVjdCB2 YWx1ZSAqY29udmVydF92YWx1ZV9mcm9tX3B5dGhvbiAoUHlPYmplY3QgKm9iaik7Cisgc3RydWN0 IHR5cGUgKnR5cGVfb2JqZWN0X3RvX3R5cGUgKFB5T2JqZWN0ICpvYmopOworIAorK1B5T2JqZWN0 ICpnZGJweV9nZXRfaG9va19mdW5jdGlvbiAoY29uc3QgY2hhciAqKTsKKysKKyB2b2lkIGdkYnB5 X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKTsKKyt2b2lkIGdkYnB5X2luaXRpYWxpemVfYnJlYWtw b2ludHMgKHZvaWQpOworIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9mcmFtZXMgKHZvaWQpOworK3Zv aWQgZ2RicHlfaW5pdGlhbGl6ZV9zeW10YWJzICh2b2lkKTsKKyB2b2lkIGdkYnB5X2luaXRpYWxp emVfY29tbWFuZHMgKHZvaWQpOworK3ZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9zeW1ib2xzICh2b2lk KTsKKyB2b2lkIGdkYnB5X2luaXRpYWxpemVfdHlwZXMgKHZvaWQpOworK3ZvaWQgZ2RicHlfaW5p dGlhbGl6ZV9ibG9ja3MgKHZvaWQpOworIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9mdW5jdGlvbnMg KHZvaWQpOworIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9vYmpmaWxlICh2b2lkKTsKKyt2b2lkIGdk YnB5X2luaXRpYWxpemVfcGFyYW1ldGVycyAodm9pZCk7Cisrdm9pZCBnZGJweV9pbml0aWFsaXpl X3RocmVhZCAodm9pZCk7Cisrdm9pZCBnZGJweV9pbml0aWFsaXplX2luZmVyaW9yICh2b2lkKTsK KyAKKyBzdHJ1Y3QgY2xlYW51cCAqbWFrZV9jbGVhbnVwX3B5X2RlY3JlZiAoUHlPYmplY3QgKnB5 KTsKKyAKK0BAIC05Nyw2ICsxNDAsMTIgQEAgc3RydWN0IGNsZWFudXAgKmVuc3VyZV9weXRob25f ZW52IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKKyBleHRlcm4gc3RydWN0IGdkYmFyY2ggKnB5 dGhvbl9nZGJhcmNoOworIGV4dGVybiBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqcHl0aG9u X2xhbmd1YWdlOworIAorK2NoYXIgKmdkYnB5X3BhcnNlX2NvbW1hbmRfbmFtZSAoY2hhciAqdGV4 dCwKKysJCQkJc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKioqYmFzZV9saXN0LAorKwkJCQlzdHJ1 Y3QgY21kX2xpc3RfZWxlbWVudCAqKnN0YXJ0X2xpc3QpOworKworK1B5T2JqZWN0ICpnZGJweV9w YXJhbWV0ZXJfdmFsdWUgKGVudW0gdmFyX3R5cGVzLCB2b2lkICopOworKworIC8qIFVzZSB0aGlz IGFmdGVyIGEgVFJZX0VYQ0VQVCB0byB0aHJvdyB0aGUgYXBwcm9wcmlhdGUgUHl0aG9uCisgICAg ZXhjZXB0aW9uLiAgKi8KKyAjZGVmaW5lIEdEQl9QWV9IQU5ETEVfRVhDRVBUSU9OKEV4Y2VwdGlv bikJCQkJXAorQEAgLTEwNyw2ICsxNTYsMTkgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBsYW5ndWFn ZV9kZWZuICpweXRob25fbGFuZ3VhZ2U7CisgCQkJICAgICAiJXMiLCBFeGNlcHRpb24ubWVzc2Fn ZSk7CQkJXAorICAgICB9IHdoaWxlICgwKQorIAorKy8qIFVzZSB0aGlzIGFmdGVyIGEgVFJZX0VY Q0VQVCB0byB0aHJvdyB0aGUgYXBwcm9wcmlhdGUgUHl0aG9uCisrICAgZXhjZXB0aW9uLiAgVGhp cyBtYWNybyBpcyBmb3IgdXNlIGluc2lkZSBzZXR0ZXIgZnVuY3Rpb25zLiAgKi8KKysjZGVmaW5l IEdEQl9QWV9TRVRfSEFORExFX0VYQ0VQVElPTihFeGNlcHRpb24pCQkJCVwKKysgICAgZG8gewkJ CQkJCQkJXAorKyAgICAgIGlmIChFeGNlcHRpb24ucmVhc29uIDwgMCkJCQkJCQlcCisrICAgICAg ICB7CQkJCQkJCQlcCisrCSAgUHlFcnJfRm9ybWF0IChFeGNlcHRpb24ucmVhc29uID09IFJFVFVS Tl9RVUlUCQkJXAorKwkJCT8gUHlFeGNfS2V5Ym9hcmRJbnRlcnJ1cHQgOiBQeUV4Y19SdW50aW1l RXJyb3IsIFwKKysJCQkiJXMiLCBFeGNlcHRpb24ubWVzc2FnZSk7CQkJXAorKwkgIHJldHVybiAt MTsJCQkJCQkJXAorKwl9CQkJCQkJCQlcCisrICAgIH0gd2hpbGUgKDApCisrCisgCisgdm9pZCBn ZGJweV9wcmludF9zdGFjayAodm9pZCk7CisgCitAQCAtMTE4LDE3ICsxODAsMjIgQEAgY2hhciAq cHl0aG9uX3N0cmluZ190b19ob3N0X3N0cmluZyAoUHlPYmplY3QgKm9iaik7CisgUHlPYmplY3Qg KnRhcmdldF9zdHJpbmdfdG9fdW5pY29kZSAoY29uc3QgZ2RiX2J5dGUgKnN0ciwgaW50IGxlbmd0 aCk7CisgaW50IGdkYnB5X2lzX3N0cmluZyAoUHlPYmplY3QgKm9iaik7CisgCisraW50IGdkYnB5 X2lzX3ZhbHVlX29iamVjdCAoUHlPYmplY3QgKm9iaik7CisrCisgLyogTm90ZSB0aGF0IHRoZXNl IGFyZSBkZWNsYXJlZCBoZXJlLCBhbmQgbm90IGluIHB5dGhvbi5oIHdpdGggdGhlCisgICAgb3Ro ZXIgcHJldHR5LXByaW50ZXIgZnVuY3Rpb25zLCBiZWNhdXNlIHRoZXkgcmVmZXIgdG8gUHlPYmpl Y3QuICAqLworIFB5T2JqZWN0ICphcHBseV92YXJvYmpfcHJldHR5X3ByaW50ZXIgKFB5T2JqZWN0 ICpwcmludF9vYmosCisgCQkJCSAgICAgICBzdHJ1Y3QgdmFsdWUgKipyZXBsYWNlbWVudCk7Cisg UHlPYmplY3QgKmdkYnB5X2dldF92YXJvYmpfcHJldHR5X3ByaW50ZXIgKHN0cnVjdCB2YWx1ZSAq dmFsdWUpOworK1B5T2JqZWN0ICpnZGJweV9pbnN0YW50aWF0ZV9wcmludGVyIChQeU9iamVjdCAq Y29ucywgUHlPYmplY3QgKnZhbHVlKTsKKyBjaGFyICpnZGJweV9nZXRfZGlzcGxheV9oaW50IChQ eU9iamVjdCAqcHJpbnRlcik7CisgUHlPYmplY3QgKmdkYnB5X2RlZmF1bHRfdmlzdWFsaXplciAo UHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKTsKKyAKKy1leHRlcm4gUHlPYmplY3QgKmdk YnB5X2RvY19jc3Q7CisgZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV9jaGlsZHJlbl9jc3Q7CisgZXh0 ZXJuIFB5T2JqZWN0ICpnZGJweV90b19zdHJpbmdfY3N0OworIGV4dGVybiBQeU9iamVjdCAqZ2Ri cHlfZGlzcGxheV9oaW50X2NzdDsKKytleHRlcm4gUHlPYmplY3QgKmdkYnB5X2RvY19jc3Q7Cisr CisraW50IGdldF9hZGRyX2Zyb21fcHl0aG9uIChQeU9iamVjdCAqb2JqLCBDT1JFX0FERFIgKmFk ZHIpOworIAorICNlbmRpZiAvKiBHREJfUFlUSE9OX0lOVEVSTkFMX0ggKi8KK2RpZmYgLS1naXQg YS9nZGIvcHl0aG9uL3B5dGhvbi5jIGIvZ2RiL3B5dGhvbi9weXRob24uYworaW5kZXggMjU0YmQy OC4uNWEyYTlhZSAxMDA2NDQKKy0tLSBhL2dkYi9weXRob24vcHl0aG9uLmMKKysrKyBiL2dkYi9w eXRob24vcHl0aG9uLmMKK0BAIC0yNyw2ICsyNyw3IEBACisgI2luY2x1ZGUgIm9ic2VydmVyLmgi CisgI2luY2x1ZGUgInZhbHVlLmgiCisgI2luY2x1ZGUgImxhbmd1YWdlLmgiCisrI2luY2x1ZGUg ImV2ZW50LWxvb3AuaCIKKyAKKyAjaW5jbHVkZSA8Y3R5cGUuaD4KICAKIEBAIC00NSwxMSArNDYs MTggQEAgc3RhdGljIGludCBnZGJweV9hdXRvX2xvYWQgPSAxOwogICNpbmNsdWRlICJjbGkvY2xp LWRlY29kZS5oIgpAQCAtMTg1MzQsMTAgKzE5ODA2LDEwIEBAIGluZGV4IDZjZmFhODUuLjY4YWFk YzAgMTAwNjQ0CiAgCiAgZXh0ZXJuIGluaXRpYWxpemVfZmlsZV9mdHlwZSBfaW5pdGlhbGl6ZV9z dnI0X3NvbGliOyAvKiAtV21pc3NpbmctcHJvdG90eXBlcyAqLwogZGlmZiAtLWdpdCBhL2dkYi9z b2xpYi5jIGIvZ2RiL3NvbGliLmMKLWluZGV4IGFhZDJkNTkuLmRlZjAyZjggMTAwNjQ0CitpbmRl eCBjN2ZkMGZjLi42ZjMxODUyIDEwMDY0NAogLS0tIGEvZ2RiL3NvbGliLmMKICsrKyBiL2dkYi9z b2xpYi5jCi1AQCAtMTA2NiwxMyArMTA2NiwxMiBAQCBzaG93X2F1dG9fc29saWJfYWRkIChzdHJ1 Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAorQEAgLTExMjcsMTMgKzExMjcsMTIgQEAg c2hvd19hdXRvX3NvbGliX2FkZCAoc3RydWN0IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwK ICBzdHJ1Y3Qgc3ltYm9sICoKICBzb2xpYl9nbG9iYWxfbG9va3VwIChjb25zdCBzdHJ1Y3Qgb2Jq ZmlsZSAqb2JqZmlsZSwKICAJCSAgICAgY29uc3QgY2hhciAqbmFtZSwKQEAgLTE4Njc2LDEwICsx OTk0OCwxMCBAQCBpbmRleCAxYzM3ODAxLi41OTRlYjE2IDEwMDY0NAogIAkgIHByaW50X3Zhcmlh YmxlX2FuZF92YWx1ZSAoTlVMTCwgc3ltLCBmcmFtZSwgc3RyZWFtLCA0ICogbnVtX3RhYnMpOwog IAkgIGJyZWFrOwogZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxlLmMgYi9nZGIvc3ltZmlsZS5jCi1p bmRleCA1MTUxOTY2Li5hY2NhNTM3IDEwMDY0NAoraW5kZXggMmYzNDQxYy4uNzc2MDY2ZCAxMDA2 NDQKIC0tLSBhL2dkYi9zeW1maWxlLmMKICsrKyBiL2dkYi9zeW1maWxlLmMKLUBAIC05MjgsNiAr OTI4LDE3IEBAIG5ld19zeW1maWxlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBp bnQgYWRkX2ZsYWdzKQorQEAgLTkyMSw2ICs5MjEsMTcgQEAgbmV3X3N5bWZpbGVfb2JqZmlsZSAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCBhZGRfZmxhZ3MpCiAgICBjbGVhcl9jb21wbGFp bnRzICgmc3ltZmlsZV9jb21wbGFpbnRzLCAwLCBhZGRfZmxhZ3MgJiBTWU1GSUxFX1ZFUkJPU0Up OwogIH0KICAKQEAgLTE4Njk3LDcgKzE5OTY5LDcgQEAgaW5kZXggNTE1MTk2Ni4uYWNjYTUzNyAx MDA2NDQKICAvKiBQcm9jZXNzIGEgc3ltYm9sIGZpbGUsIGFzIGVpdGhlciB0aGUgbWFpbiBmaWxl IG9yIGFzIGEgZHluYW1pY2FsbHkKICAgICBsb2FkZWQgZmlsZS4KICAKLUBAIC05NjUsMTMgKzk3 NiwxNiBAQCBzeW1ib2xfZmlsZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzIChiZmQgKmFiZmQs CitAQCAtOTU4LDEzICs5NjksMTYgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zm c2V0cyAoYmZkICphYmZkLAogICAgLyogR2l2ZSB1c2VyIGEgY2hhbmNlIHRvIGJ1cnAgaWYgd2Un ZCBiZQogICAgICAgaW50ZXJhY3RpdmVseSB3aXBpbmcgb3V0IGFueSBleGlzdGluZyBzeW1ib2xz LiAgKi8KICAKQEAgLTE4NzE2LDE2ICsxOTk4OCwxNiBAQCBpbmRleCA1MTUxOTY2Li5hY2NhNTM3 IDEwMDY0NAogICAgZGlzY2FyZF9jbGVhbnVwcyAobXlfY2xlYW51cHMpOwogIAogICAgaWYgKGFk ZHJzKQotQEAgLTEwMDcsNiArMTAyMSw4IEBAIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29y X29mZnNldHMgKGJmZCAqYWJmZCwKK0BAIC05OTcsNiArMTAxMSw4IEBAIHN5bWJvbF9maWxlX2Fk ZF93aXRoX2FkZHJzX29yX29mZnNldHMgKGJmZCAqYWJmZCwKICAKICAgIGlmICgoZmxhZ3MgJiBP QkpGX1JFQUROT1cpIHx8IHJlYWRub3dfc3ltYm9sX2ZpbGVzKQogICAgICB7CiArICAgICAgcmVx dWlyZV9wYXJ0aWFsX3N5bWJvbHMgKG9iamZpbGUpOwogKwotICAgICAgIGlmICgoZnJvbV90dHkg fHwgaW5mb192ZXJib3NlKSAmJiBwcmludF9zeW1ib2xfbG9hZGluZykKKyAgICAgICBpZiAoZnJv bV90dHkgfHwgaW5mb192ZXJib3NlKQogIAl7CiAgCSAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oImV4 cGFuZGluZyB0byBmdWxsIHN5bWJvbHMuLi4iKSk7Ci1AQCAtMTAyNSw3ICsxMDQxLDcgQEAgc3lt Ym9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0cyAoYmZkICphYmZkLAorQEAgLTEwMTUs NyArMTAzMSw3IEBAIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMgKGJmZCAq YWJmZCwKICAgIC8qIElmIHRoZSBmaWxlIGhhcyBpdHMgb3duIHN5bWJvbCB0YWJsZXMgaXQgaGFz IG5vIHNlcGFyYXRlIGRlYnVnIGluZm8uCiAgICAgICBgLmR5bnN5bScvYC5zeW10YWInIGdvIHRv IE1TWU1CT0xTLCBgLmRlYnVnX2luZm8nIGdvZXMgdG8gU1lNVEFCUy9QU1lNVEFCUy4KICAgICAg IGAuZ251X2RlYnVnbGluaycgbWF5IG5vIGxvbmdlciBiZSBwcmVzZW50IHdpdGggYC5ub3RlLmdu dS5idWlsZC1pZCcuICAqLwpAQCAtMTg3MzQsMjEgKzIwMDA2LDIwIEBAIGluZGV4IDUxNTE5NjYu LmFjY2E1MzcgMTAwNjQ0CiAgICAgIGRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmls ZSAob2JqZmlsZSk7CiAgICBpZiAoZGVidWdmaWxlKQogICAgICB7Ci1AQCAtMTA0OSw4ICsxMDY1 LDExIEBAIHN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMgKGJmZCAqYWJmZCwK K0BAIC0xMDM5LDkgKzEwNTUsMTAgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zm c2V0cyAoYmZkICphYmZkLAogICAgICAgIHhmcmVlIChkZWJ1Z2ZpbGUpOwogICAgICB9CiAgCi0t ICBpZiAoIWhhdmVfcGFydGlhbF9zeW1ib2xzICgpICYmICFoYXZlX2Z1bGxfc3ltYm9scyAoKQot LSAgICAgICYmIHByaW50X3N5bWJvbF9sb2FkaW5nKQogKyAgLyogaGFzX2FueV9kZWJ1Z19zeW1i b2xzIGlzIG5vdCBmdWxseSBjb21wYXRpYmxlIHdpdGggdGhlIGZvcm1lciBjYWxscyB3aGljaAog KyAgICAgd291bGQganVzdCBiZSBuZWVkbGVzc2x5IGV4cGVuc2l2ZSBoZXJlLiAgKi8KLSsgIGlm ICgoZnJvbV90dHkgfHwgaW5mb192ZXJib3NlKSAmJiBwcmludF9zeW1ib2xfbG9hZGluZwotKyAg ICAgICYmIChhZGRfZmxhZ3MgJiBTWU1GSUxFX01BSU5MSU5FKQorICAgaWYgKChmcm9tX3R0eSB8 fCBpbmZvX3ZlcmJvc2UpCistICAgICAgJiYgIW9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyAo b2JqZmlsZSkKKy0gICAgICAmJiAhb2JqZmlsZV9oYXNfZnVsbF9zeW1ib2xzIChvYmpmaWxlKSkK ICsgICAgICAmJiAhaGFzX2FueV9kZWJ1Z19zeW1ib2xzIChvYmpmaWxlKSkKICAgICAgewogICAg ICAgIHdyYXBfaGVyZSAoIiIpOwotICAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCIobm8gZGVi dWdnaW5nIHN5bWJvbHMgZm91bmQpIikpOwotQEAgLTExNjYsNyArMTE4NSw5IEBAIHN5bWJvbF9m aWxlX2NsZWFyIChpbnQgZnJvbV90dHkpCisgICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIihu byBkZWJ1Z2dpbmcgc3ltYm9scyBmb3VuZCkuLi4iKSk7CitAQCAtMTE1MCw3ICsxMTY3LDkgQEAg c3ltYm9sX2ZpbGVfY2xlYXIgKGludCBmcm9tX3R0eSkKICAgICAgIGRlc2NyaXB0b3JzIGFzIHdl bGwuICAqLwogICAgbm9fc2hhcmVkX2xpYnJhcmllcyAoTlVMTCwgZnJvbV90dHkpOwogIApAQCAt MTg3NTksMTEgKzIwMDMwLDEyIEBAIGluZGV4IDUxNTE5NjYuLmFjY2E1MzcgMTAwNjQ0CiAgICBp ZiAoZnJvbV90dHkpCiAgICAgIHByaW50Zl91bmZpbHRlcmVkIChfKCJObyBzeW1ib2wgZmlsZSBu b3cuXG4iKSk7CiAgfQotQEAgLTI0MzYsMTMgKzI0NTcsMTUgQEAgcmVyZWFkX3N5bWJvbHMgKHZv aWQpCitAQCAtMjQyMiwxNCArMjQ0MSwxNSBAQCByZXJlYWRfc3ltYm9scyAodm9pZCkKICAJICAg ICAgICAgemVybyBpcyBPSyBzaW5jZSBkYnhyZWFkLmMgYWxzbyBkb2VzIHdoYXQgaXQgbmVlZHMg dG8gZG8gaWYKICAJICAgICAgICAgb2JqZmlsZS0+Z2xvYmFsX3BzeW1ib2xzLnNpemUgaXMgMC4g ICovCiAgCSAgICAgICgqb2JqZmlsZS0+c2YtPnN5bV9yZWFkKSAob2JqZmlsZSwgMCk7Ci0tCSAg ICAgIGlmICghaGF2ZV9wYXJ0aWFsX3N5bWJvbHMgKCkgJiYgIWhhdmVfZnVsbF9zeW1ib2xzICgp KQorLQkgICAgICBpZiAoIW9iamZpbGVfaGFzX3BhcnRpYWxfc3ltYm9scyAob2JqZmlsZSkKKy0J CSAgJiYgIW9iamZpbGVfaGFzX2Z1bGxfc3ltYm9scyAob2JqZmlsZSkpCiArCSAgICAgIGlmICgh aGFzX2FueV9kZWJ1Z19zeW1ib2xzIChvYmpmaWxlKSkKICAJCXsKICAJCSAgd3JhcF9oZXJlICgi Iik7CkBAIC0xODc3Niw3ICsyMDA0OCw3IEBAIGluZGV4IDUxNTE5NjYuLmFjY2E1MzcgMTAwNjQ0 CiAgCSAgICAgIC8qIFdlJ3JlIGRvbmUgcmVhZGluZyB0aGUgc3ltYm9sIGZpbGU7IGZpbmlzaCBv ZmYgY29tcGxhaW50cy4gICovCiAgCSAgICAgIGNsZWFyX2NvbXBsYWludHMgKCZzeW1maWxlX2Nv bXBsYWludHMsIDAsIDEpOwogIAotQEAgLTI3NDAsNyArMjc2Myw3IEBAIGFsbG9jYXRlX3N5bXRh YiAoY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTI3MjcsNyAr Mjc0Nyw3IEBAIGFsbG9jYXRlX3N5bXRhYiAoY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBvYmpmaWxl ICpvYmpmaWxlKQogIH0KICAKICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKgpAQCAtMTg3ODUsNyAr MjAwNTcsNyBAQCBpbmRleCA1MTUxOTY2Li5hY2NhNTM3IDEwMDY0NAogIHsKICAgIHN0cnVjdCBw YXJ0aWFsX3N5bXRhYiAqcHN5bXRhYjsKICAKLUBAIC0zMDU0LDcgKzMwNzcsOCBAQCBhZ2FpbjI6 CitAQCAtMzA0MSw3ICszMDYxLDggQEAgYWdhaW4yOgogIAogIHN0cnVjdCBwYXJ0aWFsX3N5bXRh YiAqCiAgc3RhcnRfcHN5bXRhYl9jb21tb24gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLApAQCAt MTg3OTYsNyArMjAwNjgsNyBAQCBpbmRleCA1MTUxOTY2Li5hY2NhNTM3IDEwMDY0NAogIAkJICAg ICAgc3RydWN0IHBhcnRpYWxfc3ltYm9sICoqc3RhdGljX3N5bXMpCiAgewogZGlmZiAtLWdpdCBh L2dkYi9zeW1maWxlLmggYi9nZGIvc3ltZmlsZS5oCi1pbmRleCBiYmEyNDJjLi41OGJkMmQ4IDEw MDY0NAoraW5kZXggOGM5MjQ5Yy4uYmY5ZDllNyAxMDA2NDQKIC0tLSBhL2dkYi9zeW1maWxlLmgK ICsrKyBiL2dkYi9zeW1maWxlLmgKIEBAIC0xNDAsNiArMTQwLDEyIEBAIHN0cnVjdCBzeW1fZm5z CkBAIC0xODgyMSw3ICsyMDA5Myw3IEBAIGluZGV4IGJiYTI0MmMuLjU4YmQyZDggMTAwNjQ0CiAg CQkJCQkJICAgIHN0cnVjdCBwYXJ0aWFsX3N5bWJvbCAqKiwKICAJCQkJCQkgICAgc3RydWN0IHBh cnRpYWxfc3ltYm9sICoqKTsKICAKLUBAIC0zMTYsNyArMzIyLDcgQEAgZXh0ZXJuIGludCBhdXRv X3NvbGliX2xpbWl0OworQEAgLTMwOSw3ICszMTUsNyBAQCBleHRlcm4gaW50IGF1dG9fc29saWJf bGltaXQ7CiAgCiAgZXh0ZXJuIHZvaWQgc2V0X2luaXRpYWxfbGFuZ3VhZ2UgKHZvaWQpOwogIApA QCAtMTg4MzAsNyArMjAxMDIsNyBAQCBpbmRleCBiYmEyNDJjLi41OGJkMmQ4IDEwMDY0NAogIAog IGV4dGVybiB2b2lkIGRpc2NhcmRfcHN5bXRhYiAoc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwog IAotQEAgLTM4NSw3ICszOTEsNyBAQCB2b2lkIGZyZWVfc3ltZmlsZV9zZWdtZW50X2RhdGEgKHN0 cnVjdCBzeW1maWxlX3NlZ21lbnRfZGF0YSAqZGF0YSk7CitAQCAtMzc4LDcgKzM4NCw3IEBAIHZv aWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0IHN5bWZpbGVfc2VnbWVudF9kYXRh ICpkYXRhKTsKICAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAogIGV4dGVybiBpbnQgZHdhcmYy X2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqKTsKQEAgLTE4ODYyLDcgKzIwMTM0LDcgQEAgaW5k ZXggZWIzNTM2OS4uZGZkOGM4YyAxMDA2NDQKICAJICB7CiAgCSAgICBwcmludGZfZmlsdGVyZWQg KCJHbG9iYWwgc3ltYm9sIGAiKTsKIGRpZmYgLS1naXQgYS9nZGIvc3ltdGFiLmMgYi9nZGIvc3lt dGFiLmMKLWluZGV4IGM4ODE1NmEuLjc1YjkwN2YgMTAwNjQ0CitpbmRleCA4ZDlkNzJjLi44MmUw MTYzIDEwMDY0NAogLS0tIGEvZ2RiL3N5bXRhYi5jCiArKysgYi9nZGIvc3ltdGFiLmMKIEBAIC00 Miw2ICs0Miw3IEBACkBAIC0xOTY5Niw3ICsyMDk2OCw3IEBAIGluZGV4IDc0MGQ0ZTAuLjQ2MWZm OTUgMTAwNjQ0CiAgCiAgZXh0ZXJuIHN0cnVjdCBzeW10YWJzX2FuZF9saW5lcwogZGlmZiAtLWdp dCBhL2dkYi90YXJnZXQuYyBiL2dkYi90YXJnZXQuYwotaW5kZXggN2VlNDQ0Zi4uNjMxZTVmOCAx MDA2NDQKK2luZGV4IGE2NjJlY2EuLjhlNmFmNDIgMTAwNjQ0CiAtLS0gYS9nZGIvdGFyZ2V0LmMK ICsrKyBiL2dkYi90YXJnZXQuYwogQEAgLTEyNCw2ICsxMjQsOCBAQCBzdGF0aWMgaW50IGRlYnVn X3RvX2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIsIGludCwgaW50KTsKQEAgLTE5NzA4LDcg KzIwOTgwLDcgQEAgaW5kZXggN2VlNDQ0Zi4uNjMxZTVmOCAxMDA2NDQKICBzdGF0aWMgaW50IGRl YnVnX3RvX3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAodm9pZCk7CiAgCiAgc3RhdGljIGludCBkZWJ1 Z190b19zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdldF9vcHMgKiwgQ09SRV9BRERS ICopOwotQEAgLTU4NCw2ICs1ODYsNyBAQCB1cGRhdGVfY3VycmVudF90YXJnZXQgKHZvaWQpCitA QCAtNjIyLDYgKzYyNCw3IEBAIHVwZGF0ZV9jdXJyZW50X3RhcmdldCAodm9pZCkKICAgICAgICBJ TkhFUklUICh0b19yZW1vdmVfaHdfYnJlYWtwb2ludCwgdCk7CiAgICAgICAgSU5IRVJJVCAodG9f aW5zZXJ0X3dhdGNocG9pbnQsIHQpOwogICAgICAgIElOSEVSSVQgKHRvX3JlbW92ZV93YXRjaHBv aW50LCB0KTsKQEAgLTE5NzE2LDcgKzIwOTg4LDcgQEAgaW5kZXggN2VlNDQ0Zi4uNjMxZTVmOCAx MDA2NDQKICAgICAgICBJTkhFUklUICh0b19zdG9wcGVkX2RhdGFfYWRkcmVzcywgdCk7CiAgICAg ICAgSU5IRVJJVCAodG9faGF2ZV9zdGVwcGFibGVfd2F0Y2hwb2ludCwgdCk7CiAgICAgICAgSU5I RVJJVCAodG9faGF2ZV9jb250aW51YWJsZV93YXRjaHBvaW50LCB0KTsKLUBAIC02OTQsNiArNjk3 LDkgQEAgdXBkYXRlX2N1cnJlbnRfdGFyZ2V0ICh2b2lkKQorQEAgLTczMiw2ICs3MzUsOSBAQCB1 cGRhdGVfY3VycmVudF90YXJnZXQgKHZvaWQpCiAgICBkZV9mYXVsdCAodG9fcmVtb3ZlX3dhdGNo cG9pbnQsCiAgCSAgICAoaW50ICgqKSAoQ09SRV9BRERSLCBpbnQsIGludCkpCiAgCSAgICByZXR1 cm5fbWludXNfb25lKTsKQEAgLTE5NzI2LDcgKzIwOTk4LDcgQEAgaW5kZXggN2VlNDQ0Zi4uNjMx ZTVmOCAxMDA2NDQKICAgIGRlX2ZhdWx0ICh0b19zdG9wcGVkX2J5X3dhdGNocG9pbnQsCiAgCSAg ICAoaW50ICgqKSAodm9pZCkpCiAgCSAgICByZXR1cm5femVybyk7Ci1AQCAtMzA5NSw2ICszMTAx LDE5IEBAIGRlYnVnX3RvX3JlbW92ZV93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxl biwgaW50IHR5cGUpCitAQCAtMzE2OCw2ICszMTc0LDE5IEBAIGRlYnVnX3RvX3JlbW92ZV93YXRj aHBvaW50IChDT1JFX0FERFIgYWRkciwgaW50IGxlbiwgaW50IHR5cGUpCiAgICByZXR1cm4gcmV0 dmFsOwogIH0KICAKQEAgLTE5NzQ2LDcgKzIxMDE4LDcgQEAgaW5kZXggN2VlNDQ0Zi4uNjMxZTVm OCAxMDA2NDQKICBzdGF0aWMgdm9pZAogIGRlYnVnX3RvX3Rlcm1pbmFsX2luaXQgKHZvaWQpCiAg ewotQEAgLTMzNDIsNiArMzM2MSw3IEBAIHNldHVwX3RhcmdldF9kZWJ1ZyAodm9pZCkKK0BAIC0z NDE1LDYgKzM0MzQsNyBAQCBzZXR1cF90YXJnZXRfZGVidWcgKHZvaWQpCiAgICBjdXJyZW50X3Rh cmdldC50b19yZW1vdmVfaHdfYnJlYWtwb2ludCA9IGRlYnVnX3RvX3JlbW92ZV9od19icmVha3Bv aW50OwogICAgY3VycmVudF90YXJnZXQudG9faW5zZXJ0X3dhdGNocG9pbnQgPSBkZWJ1Z190b19p bnNlcnRfd2F0Y2hwb2ludDsKICAgIGN1cnJlbnRfdGFyZ2V0LnRvX3JlbW92ZV93YXRjaHBvaW50 ID0gZGVidWdfdG9fcmVtb3ZlX3dhdGNocG9pbnQ7CkBAIC0xOTc1NSwxMCArMjEwMjcsMTAgQEAg aW5kZXggN2VlNDQ0Zi4uNjMxZTVmOCAxMDA2NDQKICAgIGN1cnJlbnRfdGFyZ2V0LnRvX3N0b3Bw ZWRfZGF0YV9hZGRyZXNzID0gZGVidWdfdG9fc3RvcHBlZF9kYXRhX2FkZHJlc3M7CiAgICBjdXJy ZW50X3RhcmdldC50b193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlID0gZGVidWdfdG9fd2F0 Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZTsKIGRpZmYgLS1naXQgYS9nZGIvdGFyZ2V0LmggYi9n ZGIvdGFyZ2V0LmgKLWluZGV4IDJjNzQzZTkuLmRiYmNlMTIgMTAwNjQ0CitpbmRleCBjMjEwZmVh Li4wNjVhN2VhIDEwMDY0NAogLS0tIGEvZ2RiL3RhcmdldC5oCiArKysgYi9nZGIvdGFyZ2V0LmgK LUBAIC0zNzYsNiArMzc2LDcgQEAgc3RydWN0IHRhcmdldF9vcHMKK0BAIC0zNzksNiArMzc5LDcg QEAgc3RydWN0IHRhcmdldF9vcHMKICAgICAgaW50ICgqdG9fcmVtb3ZlX2h3X2JyZWFrcG9pbnQp IChzdHJ1Y3QgZ2RiYXJjaCAqLCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8gKik7CiAgICAgIGludCAo KnRvX3JlbW92ZV93YXRjaHBvaW50KSAoQ09SRV9BRERSLCBpbnQsIGludCk7CiAgICAgIGludCAo KnRvX2luc2VydF93YXRjaHBvaW50KSAoQ09SRV9BRERSLCBpbnQsIGludCk7CkBAIC0xOTc2Niw3 ICsyMTAzOCw3IEBAIGluZGV4IDJjNzQzZTkuLmRiYmNlMTIgMTAwNjQ0CiAgICAgIGludCAoKnRv X3N0b3BwZWRfYnlfd2F0Y2hwb2ludCkgKHZvaWQpOwogICAgICBpbnQgdG9faGF2ZV9zdGVwcGFi bGVfd2F0Y2hwb2ludDsKICAgICAgaW50IHRvX2hhdmVfY29udGludWFibGVfd2F0Y2hwb2ludDsK LUBAIC0xMTIwLDYgKzExMjEsMTUgQEAgZXh0ZXJuIGNoYXIgKm5vcm1hbF9waWRfdG9fc3RyIChw dGlkX3QgcHRpZCk7CitAQCAtMTEyNiw2ICsxMTI3LDE1IEBAIGV4dGVybiBjaGFyICpub3JtYWxf cGlkX3RvX3N0ciAocHRpZF90IHB0aWQpOwogICNkZWZpbmUJdGFyZ2V0X3JlbW92ZV93YXRjaHBv aW50KGFkZHIsIGxlbiwgdHlwZSkJXAogICAgICAgKCpjdXJyZW50X3RhcmdldC50b19yZW1vdmVf d2F0Y2hwb2ludCkgKGFkZHIsIGxlbiwgdHlwZSkKICAKQEAgLTE5NzgyLDcgKzIxMDU0LDcgQEAg aW5kZXggMmM3NDNlOS4uZGJiY2UxMiAxMDA2NDQKICAjZGVmaW5lIHRhcmdldF9pbnNlcnRfaHdf YnJlYWtwb2ludChnZGJhcmNoLCBicF90Z3QpIFwKICAgICAgICgqY3VycmVudF90YXJnZXQudG9f aW5zZXJ0X2h3X2JyZWFrcG9pbnQpIChnZGJhcmNoLCBicF90Z3QpCiAgCi1AQCAtMTE1Nyw2ICsx MTY3LDIwIEBAIGV4dGVybiBpbnQgdGFyZ2V0X3NlYXJjaF9tZW1vcnkgKENPUkVfQUREUiBzdGFy dF9hZGRyLAorQEAgLTExNjMsNiArMTE3MywyMCBAQCBleHRlcm4gaW50IHRhcmdldF9zZWFyY2hf bWVtb3J5IChDT1JFX0FERFIgc3RhcnRfYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBVTE9OR0VTVCBwYXR0ZXJuX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBDT1JFX0FERFIgKmZvdW5kX2FkZHJwKTsKICAKQEAgLTE5ODAzLDcgKzIxMDc1LDcg QEAgaW5kZXggMmM3NDNlOS4uZGJiY2UxMiAxMDA2NDQKICAvKiBDb21tYW5kIGxvZ2dpbmcgZmFj aWxpdHkuICAqLwogIAogICNkZWZpbmUgdGFyZ2V0X2xvZ19jb21tYW5kKHApCQkJCQkJXAotQEAg LTEyNzYsNiArMTMwMCwxNCBAQCBleHRlcm4gc3RydWN0IHRhcmdldF9vcHMgKmZpbmRfdGFyZ2V0 X2JlbmVhdGggKHN0cnVjdCB0YXJnZXRfb3BzICopOworQEAgLTEyODIsNiArMTMwNiwxNCBAQCBl eHRlcm4gc3RydWN0IHRhcmdldF9vcHMgKmZpbmRfdGFyZ2V0X2JlbmVhdGggKHN0cnVjdCB0YXJn ZXRfb3BzICopOwogIAogIGV4dGVybiBjaGFyICp0YXJnZXRfZ2V0X29zZGF0YSAoY29uc3QgY2hh ciAqdHlwZSk7CiAgCkBAIC0yMDkzMCwyMTUgKzIyMjAyLDYgQEAgaW5kZXggNzUwZmQyMy4uZGZk YjkyOSAxMDA2NDQKICBnZGJfdGVzdCAic2V0IGlucHV0LXJhZGl4IDEiIFwKICAgICAgIk5vbnNl bnNlIGlucHV0IHJhZGl4IGBgZGVjaW1hbCAxJyc7IGlucHV0IHJhZGl4IHVuY2hhbmdlZFxcLiIg XAogICAgICAiUmVqZWN0IGlucHV0LXJhZGl4IDEiCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9zb2xpYi1vdmVybGFwLWxpYi5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9z b2xpYi1vdmVybGFwLWxpYi5jCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4u ZDRhZWMwZAotLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xp Yi1vdmVybGFwLWxpYi5jCi1AQCAtMCwwICsxLDI3IEBACi0rLyogQ29weXJpZ2h0IDIwMDkgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KLSsKLSsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKLSsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgICBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKwotKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rICAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCi0rCi0rICAgQ29udHJpYnV0ZWQgYnkgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0 b2NodmlsQHJlZGhhdC5jb20+LiAgKi8KLSsKLSt2b2lkCi0rbGlic3ltICh2b2lkKQotK3sKLSt9 Ci0rCi0rI2lmZGVmIFNZTUIKLSt2b2lkCi0rbGlic3ltYiAodm9pZCkKLSt7Ci0rfQotKyNlbmRp ZgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItb3ZlcmxhcC1tYWlu LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3NvbGliLW92ZXJsYXAtbWFpbi5jCi1uZXcgZmls ZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMWU5MWRkMgotLS0tIC9kZXYvbnVsbAotKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xpYi1vdmVybGFwLW1haW4uYwotQEAgLTAsMCAr MSwyNSBAQAotKy8qIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKLSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCi0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSsKLSsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKwotKyAgIENvbnRyaWJ1 dGVkIGJ5IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPi4gICovCi0r Ci0rI2luY2x1ZGUgPHVuaXN0ZC5oPgotKwotK2ludAotK21haW4gKHZvaWQpCi0rewotKyAgc2xl ZXAgKDYwKTsKLSsKLSsgIHJldHVybiAxOwotK30KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3NvbGliLW92ZXJsYXAuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zb2xp Yi1vdmVybGFwLmV4cAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmQ2NDRk OWIKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc29saWItb3Zl cmxhcC5leHAKLUBAIC0wLDAgKzEsMTM5IEBACi0rIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rIwot KyMgQ29udHJpYnV0ZWQgYnkgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+LgotKwotKyMgVGVzdCBHREIgY2FuIGNvcGUgd2l0aCB0d28gbGlicmFyaWVzIGxvYWRlZCB3 aXRoIG92ZXJsYXBwaW5nIFZNQSByYW5nZXMuCi0rIyBQcmVsaW5rIGxpYnJhcmllcyBmaXJzdCBz byB0aGV5IGNhbiBiZSBsb2FkZWQgYW5kIHRoZWlyIG5hdGl2ZSBhZGRyZXNzLgotKyMgSW4gc3Vj aCBjYXNlIGBzdHJ1Y3QgbGlua21hcCcubF9hZGRyIHdpbGwgYmUgemVyby4gIFByb3ZpZGUgZGlm ZmVyZW50Ci0rIyB1bnByZWxpbmtlZCBsaWJyYXJ5IGZpbGVzIG9uIHRoZSBkaXNrIHdoaWNoIGhh dmUgemVyby1iYXNlZCBWTUFzLiAgVGhlc2UKLSsjIGRpZmZlcmVudCBmaWxlcyBzaG91bGQgaGF2 ZSB0aGVpciAuZHluYW1pYyBzZWN0aW9uIGF0IGEgZGlmZmVyZW50IG9mZnNldCBpbgotKyMgcGFn ZSBzaXplIHNvIHRoYXQgd2UgZ2V0IGZvcgotKyMgICB3YXJuaW5nOiAuZHluYW1pYyBzZWN0aW9u IGZvciAiLi4uIiBpcyBub3QgYXQgdGhlIGV4cGVjdGVkIGFkZHJlc3MKLSsjIHRoZSByZWFzb24K LSsjICAgKHdyb25nIGxpYnJhcnkgb3IgdmVyc2lvbiBtaXNtYXRjaD8pCi0rIyBhbmQgbm90Ogot KyMgICBkaWZmZXJlbmNlIGFwcGVhcnMgdG8gYmUgY2F1c2VkIGJ5IHByZWxpbmssIGFkanVzdGlu ZyBleHBlY3RhdGlvbnMKLSsjIEluIHN1Y2ggY2FzZSBib3RoIGRpc2sgbGlicmFyaWVzIHdpbGwg YmUgbG9hZGVkIGF0IFZNQXMgc3RhcnRpbmcgYXQgemVyby4KLSsKLStpZiBbc2tpcF9zaGxpYl90 ZXN0c10gewotKyAgICByZXR1cm4gMAotK30KLSsKLSsjIEFyZSB3ZSBvbiBhIHRhcmdldCBib2Fy ZD8gIEl0IGlzIHJlcXVpcmVkIGZvciBhdHRhY2hpbmcgdG8gYSBwcm9jZXNzLgotK2lmIFtpc19y ZW1vdGUgdGFyZ2V0XSB7Ci0rICAgIHJldHVybiAwCi0rfQotKwotK2lmIFtnZXRfY29tcGlsZXJf aW5mbyBiaW5maWxlLXVudXNlZF0gewotKyAgICByZXR1cm4gLTE7Ci0rfQotKwotKyMgTGlicmFy eSBmaWxlLgotK3NldCBsaWJuYW1lICJzb2xpYi1vdmVybGFwLWxpYiIKLStzZXQgc3JjZmlsZV9s aWIgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke2xpYm5hbWV9LmMKLSsjIEJpbmFyeSBmaWxlLgotK3Nl dCB0ZXN0ZmlsZSAic29saWItb3ZlcmxhcC1tYWluIgotK3NldCBzcmNmaWxlICR7c3JjZGlyfS8k e3N1YmRpcn0vJHt0ZXN0ZmlsZX0uYwotKwotKyMgQmFzZSBhZGRyZXNzZXMgZm9yIGBwcmVsaW5r IC1yJyB3aGljaCBzaG91bGQgYmUgY29tcGF0aWJsZSB3aXRoIGJvdGggLW0zMiBhbmQKLSsjIC1t NjQgdGFyZ2V0cy4gIElmIGl0IGNsYXNoZXMgd2l0aCBzeXN0ZW0gcHJlbGlua2VkIGxpYnJhcmll cyBpdCB3b3VsZCBnaXZlCi0rIyBmYWxzZSBQQVNTLgotKyMgUHJlbGluayBmaXJzdCBsaWIxIGF0 IDB4NDAwMDAwMDAgYW5kIGxpYjIgYXQgMHg0MTAwMDAwMC4KLSsjIER1cmluZyBzZWNvbmQgcGFz cyB0cnkgbGliMSBhdCAweDUwMDAwMDAwIGFuZCBsaWIyIGF0IDB4NTEwMDAwMDAuCi0rZm9yZWFj aCBwcmVsaW5rX2xpYjEgezB4NDAwMDAwMDAgMHg1MDAwMDAwMH0gewotKyAgICBzZXQgcHJlbGlu a19saWIyIFtmb3JtYXQgIjB4JXgiIFtleHByICRwcmVsaW5rX2xpYjEgKyAweDAxMDAwMDAwXV0K LSsKLSsgICAgc2V0IG9sZF9wcmVmaXggJHBmX3ByZWZpeAotKyAgICBsYXBwZW5kIHBmX3ByZWZp eCAiJHByZWxpbmtfbGliMToiCi0rCi0rICAgICMgTGlicmFyeSBmaWxlLgotKyAgICBzZXQgYmlu ZmlsZV9saWIxICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtsaWJuYW1lfTEtJHtwcmVsaW5rX2xpYjF9 LnNvCi0rICAgIHNldCBiaW5maWxlX2xpYjIgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke2xpYm5hbWV9 Mi0ke3ByZWxpbmtfbGliMX0uc28KLSsgICAgc2V0IGxpYl9mbGFncyB7ZGVidWd9Ci0rICAgICMg QmluYXJ5IGZpbGUuCi0rICAgIHNldCBiaW5maWxlX2Jhc2UgJHt0ZXN0ZmlsZX0tJHtwcmVsaW5r X2xpYjF9Ci0rICAgIHNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHtiaW5maWxlX2Jh c2V9Ci0rICAgIHNldCBiaW5fZmxhZ3MgW2xpc3QgZGVidWcgc2hsaWI9JHtiaW5maWxlX2xpYjF9 IHNobGliPSR7YmluZmlsZV9saWIyfV0KLSsgICAgc2V0IGVzY2FwZWRiaW5maWxlICBbc3RyaW5n X3RvX3JlZ2V4cCAke2JpbmZpbGV9XQotKwotKyAgICBpZiB7IFtnZGJfY29tcGlsZV9zaGxpYiAk e3NyY2ZpbGVfbGlifSAke2JpbmZpbGVfbGliMX0gJGxpYl9mbGFnc10gIT0gIiIKLSsJIHx8IFtn ZGJfY29tcGlsZV9zaGxpYiAke3NyY2ZpbGVfbGlifSAke2JpbmZpbGVfbGliMn0gJGxpYl9mbGFn c10gIT0gIiIKLSsJIHx8IFtnZGJfY29tcGlsZSAke3NyY2ZpbGV9ICR7YmluZmlsZX0gZXhlY3V0 YWJsZSAkYmluX2ZsYWdzXSAhPSAiIiB9IHsKLSsJdW50ZXN0ZWQgIkNvdWxkIG5vdCBjb21waWxl ICR7YmluZmlsZV9saWIxfSwgJHtiaW5maWxlX2xpYjJ9IG9yICR7YmluZmlsZX0uIgotKwlyZXR1 cm4gLTEKLSsgICAgfQotKwotKyAgICBpZiB7W2NhdGNoICJzeXN0ZW0gXCJwcmVsaW5rIC1OIC1y ICR7cHJlbGlua19saWIxfSAke2JpbmZpbGVfbGliMX1cIiJdICE9IDAKLSsJfHwgW2NhdGNoICJz eXN0ZW0gXCJwcmVsaW5rIC1OIC1yICR7cHJlbGlua19saWIyfSAke2JpbmZpbGVfbGliMn1cIiJd ICE9IDB9IHsKLSsJIyBNYXliZSB3ZSBkb24ndCBoYXZlIHByZWxpbmsuCi0rCXVudGVzdGVkICJD b3VsZCBub3QgcHJlbGluayAke2JpbmZpbGVfbGliMX0gb3IgJHtiaW5maWxlX2xpYjJ9LiIKLSsJ cmV0dXJuIC0xCi0rICAgIH0KLSsKLSsgICAgIyBTdGFydCB0aGUgcHJvZ3JhbSBydW5uaW5nIGFu ZCB0aGVuIHdhaXQgZm9yIGEgYml0LCB0byBiZSBzdXJlCi0rICAgICMgdGhhdCBpdCBjYW4gYmUg YXR0YWNoZWQgdG8uCi0rCi0rICAgIHNldCB0ZXN0cGlkIFtldmFsIGV4ZWMgJGJpbmZpbGUgJl0K LSsgICAgc2xlZXAgMgotKyAgICBpZiB7IFtpc3RhcmdldCAiKi0qLWN5Z3dpbioiXSB9IHsKLSsJ IyB0ZXN0cGlkIGlzIHRoZSBDeWd3aW4gUElELCBHREIgdXNlcyB0aGUgV2luZG93cyBQSUQsIHdo aWNoIG1pZ2h0IGJlCi0rCSMgZGlmZmVyZW50IGR1ZSB0byB0aGUgd2F5IGZvcmsvZXhlYyB3b3Jr cy4KLSsJc2V0IHRlc3RwaWQgWyBleGVjIHBzIC1lIHwgZ2F3ayAieyBpZiAoXCQxID09ICR0ZXN0 cGlkKSBwcmludCBcJDQ7IH0iIF0KLSsgICAgfQotKwotKyAgICByZW1vdGVfZXhlYyBidWlsZCAi bXYgLWYgJHtiaW5maWxlX2xpYjF9ICR7YmluZmlsZV9saWIxfS1ydW5uaW5nIgotKyAgICByZW1v dGVfZXhlYyBidWlsZCAibXYgLWYgJHtiaW5maWxlX2xpYjJ9ICR7YmluZmlsZV9saWIyfS1ydW5u aW5nIgotKwotKyAgICAjIFByb3ZpZGUgYW5vdGhlciBleHBvcnRlZCBmdW5jdGlvbiBuYW1lIHRv IGNhdXNlIGRpZmZlcmVudCBzaXplcyBvZiBzZWN0aW9ucy4KLSsgICAgbGFwcGVuZCBsaWJfZmxh Z3MgYWRkaXRpb25hbF9mbGFncz0tRFNZTUIKLSsKLSsgICAgaWYgeyBbZ2RiX2NvbXBpbGVfc2hs aWIgJHtzcmNmaWxlX2xpYn0gJHtiaW5maWxlX2xpYjF9ICRsaWJfZmxhZ3NdICE9ICIiCi0rCSB8 fCBbZ2RiX2NvbXBpbGVfc2hsaWIgJHtzcmNmaWxlX2xpYn0gJHtiaW5maWxlX2xpYjJ9ICRsaWJf ZmxhZ3NdICE9ICIifSB7Ci0rCXVudGVzdGVkICJDb3VsZCBub3QgcmVjb21waWxlICR7YmluZmls ZV9saWIxfSBvciAke2JpbmZpbGVfbGliMn0uIgotKwlyZW1vdGVfZXhlYyBidWlsZCAia2lsbCAt OSAke3Rlc3RwaWR9IgotKwlyZXR1cm4gLTEKLSsgICAgfQotKwotKyAgICBjbGVhbl9yZXN0YXJ0 ICR7YmluZmlsZV9iYXNlfQotKyAgICAjIFRoaXMgdGVzdGNhc2UgY3VycmVudGx5IGRvZXMgbm90 IHN1cHBvcnQgcmVtb3RlIHRhcmdldHMuCi0rICAgICMgZ2RiX2xvYWRfc2hsaWJzICR7YmluZmls ZV9saWIxfSAke2JpbmZpbGVfbGliMn0KLSsKLSsgICAgIyBIZXJlIHdlIHNob3VsZCBnZXQ6Ci0r ICAgICMgd2FybmluZzogLmR5bmFtaWMgc2VjdGlvbiBmb3IgIi4uLi9zb2xpYi1vdmVybGFwLWxp YjEuc28iIGlzIG5vdCBhdCB0aGUgZXhwZWN0ZWQgYWRkcmVzcyAod3JvbmcgbGlicmFyeSBvciB2 ZXJzaW9uIG1pc21hdGNoPykKLSsgICAgIyB3YXJuaW5nOiAuZHluYW1pYyBzZWN0aW9uIGZvciAi Li4uL3NvbGliLW92ZXJsYXAtbGliMi5zbyIgaXMgbm90IGF0IHRoZSBleHBlY3RlZCBhZGRyZXNz ICh3cm9uZyBsaWJyYXJ5IG9yIHZlcnNpb24gbWlzbWF0Y2g/KQotKwotKyAgICBzZXQgdGVzdCBh dHRhY2gKLSsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImF0dGFjaCAkdGVzdHBpZCIgJHRlc3Qgewot KwktcmUgIkF0dGFjaGluZyB0byBwcm9ncmFtLipgPyRlc2NhcGVkYmluZmlsZSc/LCBwcm9jZXNz ICR0ZXN0cGlkLiokZ2RiX3Byb21wdCAkIiB7Ci0rCSAgICBwYXNzICR0ZXN0Ci0rCX0KLSsJLXJl ICJBdHRhY2hpbmcgdG8gcHJvZ3JhbS4qYD8kZXNjYXBlZGJpbmZpbGVcLmV4ZSc/LCBwcm9jZXNz ICR0ZXN0cGlkLipcW1N3aXRjaGluZyB0byB0aHJlYWQgJHRlc3RwaWRcLi4qXF0uKiRnZGJfcHJv bXB0ICQiIHsKLSsJICAgICMgUmVzcG9uc2UgZXhwZWN0ZWQgb24gQ3lnd2luCi0rCSAgICBwYXNz ICR0ZXN0Ci0rCX0KLSsgICAgfQotKwotKyAgICAjIERldGFjaCB0aGUgcHJvY2Vzcy4KLSsKLSsg ICAgZ2RiX3Rlc3QgImRldGFjaCIgIkRldGFjaGluZyBmcm9tIHByb2dyYW06IC4qJGVzY2FwZWRi aW5maWxlLCBwcm9jZXNzICR0ZXN0cGlkIgotKwotKyAgICAjIFdhaXQgYSBiaXQgZm9yIGdkYiB0 byBmaW5pc2ggZGV0YWNoaW5nCi0rCi0rICAgIHNsZWVwIDUKLSsKLSsgICAgcmVtb3RlX2V4ZWMg YnVpbGQgImtpbGwgLTkgJHt0ZXN0cGlkfSIKLSsKLSsgICAgc2V0IHBmX3ByZWZpeCAkb2xkX3By ZWZpeAotK30KIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZhbGdyaW5kLWF0 dGFjaC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YWxncmluZC1hdHRhY2guYwogbmV3IGZp bGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjg0YjU3ZGIKQEAgLTIxNjYzLDYgKzIyNzI2 LDE5IEBAIGluZGV4IGEyYmI3MzEuLmQ3NGQ2YzcgMTAwNjQ0CiArZ2RiX3Rlc3QgImNvbnRpbnVl IiBcCiArCSAiQ29udGludWluZ1xcLlxbIFxyXG5cXStCcmVha3BvaW50IFxbMC05XF0rLCAuKmJy ZWFrLWF0LWV4aXQuKiIgXAogKwkgImNvbnRpbnVlIHRvIGJyZWFrLWF0LWV4aXQgYWZ0ZXIgaGJy ZWFrIgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL01ha2VmaWxlLmluIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuY3AvTWFrZWZpbGUuaW4KK2luZGV4IDBhMDg3YzcuLmI0ODgwZjIgMTAw NjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9NYWtlZmlsZS5pbgorKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvTWFrZWZpbGUuaW4KK0BAIC00LDcgKzQsNyBAQCBzcmNkaXIgPSBAc3Jj ZGlyQAorIEVYRUNVVEFCTEVTID0gYW1iaWd1b3VzIGFubm90YTIgYW5vbi11bmlvbiBjcGx1c2Z1 bmNzIGN0dGlhZGQgXAorIAlkZXJpdmF0aW9uIGluaGVyaXQgbG9jYWwgbWVtYmVyLXB0ciBtZXRo b2QgbWlzYyBcCisgICAgICAgICBvdmVybG9hZCBvdmxkYnJlYWsgcmVmLXR5cCByZWYtdHlwMiB0 ZW1wbGF0ZXMgdXNlcmRlZiB2aXJ0ZnVuYyBuYW1lc3BhY2UgXAorLQlyZWYtdHlwZXMgcmVmLXBh cmFtcyBtZXRob2QyIHByOTU5NCBnZGIyNDk1CisrCXJlZi10eXBlcyByZWYtcGFyYW1zIG1ldGhv ZDIgcHI5NTk0IGdkYjI0OTUgZ2RiOTU5MworIAorIGFsbCBpbmZvIGluc3RhbGwtaW5mbyBkdmkg aW5zdGFsbCB1bmluc3RhbGwgaW5zdGFsbGNoZWNrIGNoZWNrOgorIAlAZWNobyAiTm90aGluZyB0 byBiZSBkb25lIGZvciAkQC4uLiIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9j cC1yZWxvY2F0ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9jcC1yZWxvY2F0ZS5leHAKIGlu ZGV4IDQwOTVjY2YuLjAzYzA3ZDUgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9j cC1yZWxvY2F0ZS5leHAKQEAgLTIyMDA1LDE3ICsyMzA4MSwzOTQgQEAgaW5kZXggM2MzMDJjMy4u Y2QwNDk2ZCAxMDA2NDQKICAJICJidCBmcm9tIEEiCiAgCiAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgIm5leHQgY2FsbGVyIGZ1bmMiICIuKmZ1bmMtbGluZS4qIgotZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL21lbWJlci1wdHIuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9t ZW1iZXItcHRyLmNjCi1pbmRleCAxZGZmNzBhLi42NDhiMmFmIDEwMDY0NAotLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvbWVtYmVyLXB0ci5jYwotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av bWVtYmVyLXB0ci5jYwotQEAgLTEzOCw2ICsxMzgsNyBAQCBjbGFzcyBEaWFtb25kIDogcHVibGlj IFBhZGRpbmcsIHB1YmxpYyBMZWZ0LCBwdWJsaWMgUmlnaHQKLSB7Ci0gcHVibGljOgotICAgdmly dHVhbCBpbnQgdmdldF9iYXNlICgpOwotKyAgaW50ICgqZnVuY19wdHIpIChpbnQpOwotIH07Ci0g CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5jYyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL2dkYjk1OTMuY2MKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwLi43ODNjOTYyCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9n ZGI5NTkzLmNjCitAQCAtMCwwICsxLDE4MCBAQAorKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCisrCisrICAgQ29weXJpZ2h0IDIwMDgsIDIwMDkgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisrICAgKi8KKysjaW5jbHVkZSA8aW9zdHJlYW0+CisrCisrdXNpbmcgbmFt ZXNwYWNlIHN0ZDsKKysKKytjbGFzcyBOZXh0T3ZlclRocm93RGVyaXZhdGVzCisreworKworK3B1 YmxpYzoKKysKKysKKysgIC8vIFNpbmdsZSB0aHJvdyBhbiBleGNlcHRpb24gaW4gdGhpcyBmdW5j dGlvbi4KKysgIHZvaWQgZnVuY3Rpb24xKCkgCisrICB7CisrICAgIHRocm93IDIwOworKyAgfQor KworKyAgLy8gVGhyb3cgYW4gZXhjZXB0aW9uIGluIGFub3RoZXIgZnVuY3Rpb24uCisrICB2b2lk IGZ1bmN0aW9uMigpIAorKyAgeworKyAgICBmdW5jdGlvbjEoKTsKKysgIH0KKysKKysgIC8vIFRo cm93IGFuIGV4Y2VwdGlvbiBpbiBhbm90aGVyIGZ1bmN0aW9uLCBidXQgaGFuZGxlIGl0CisrICAv LyBsb2NhbGx5LgorKyAgdm9pZCBmdW5jdGlvbjMgKCkgCisrICB7CisrICAgIHsKKysgICAgICB0 cnkKKysJeworKwkgIGZ1bmN0aW9uMSAoKTsKKysJfQorKyAgICAgIGNhdGNoICguLi4pIAorKwl7 CisrCSAgY291dCA8PCAiQ2F1Z2h0IGFuZCBoYW5kbGVkIGZ1bmN0aW9uMSBleGNlcHRpb24iIDw8 IGVuZGw7CisrCX0KKysgICAgfQorKyAgfQorKworKyAgdm9pZCByZXRocm93ICgpCisrICB7Cisr ICAgIHRyeQorKyAgICAgIHsKKysJZnVuY3Rpb24xICgpOworKyAgICAgIH0KKysgICAgY2F0Y2gg KC4uLikKKysgICAgICB7CisrCXRocm93OworKyAgICAgIH0KKysgIH0KKysKKysgIHZvaWQgZmlu aXNoICgpCisrICB7CisrICAgIC8vIFdlIHVzZSB0aGlzIHRvIHRlc3QgdGhhdCBhICJmaW5pc2gi IGhlcmUgZG9lcyBub3QgZW5kIHVwIGluCisrICAgIC8vIHRoaXMgZnJhbWUsIGJ1dCBpbiB0aGUg b25lIGFib3ZlLgorKyAgICB0cnkKKysgICAgICB7CisrCWZ1bmN0aW9uMSAoKTsKKysgICAgICB9 CisrICAgIGNhdGNoIChpbnQgeCkKKysgICAgICB7CisrICAgICAgfQorKyAgICBmdW5jdGlvbjEg KCk7CQkvLyBtYXJrZXIgZm9yIHVudGlsCisrICB9CisrCisrICB2b2lkIHVudGlsICgpCisrICB7 CisrICAgIGZ1bmN0aW9uMSAoKTsKKysgICAgZnVuY3Rpb24xICgpOwkJLy8gdW50aWwgaGVyZQor KyAgfQorKworK307CisrTmV4dE92ZXJUaHJvd0Rlcml2YXRlcyBuZXh0X2Nhc2VzOworKworKwor K2ludCBtYWluICgpIAorK3sgCisrICB0cnkKKysgICAgeworKyAgICAgIG5leHRfY2FzZXMuZnVu Y3Rpb24xICgpOworKyAgICB9CisrICBjYXRjaCAoLi4uKQorKyAgICB7CisrICAgICAgLy8gRGlz Y2FyZAorKyAgICB9CisrCisrICB0cnkKKysgICAgeworKyAgICAgIG5leHRfY2FzZXMuZnVuY3Rp b24yICgpOworKyAgICB9CisrICBjYXRjaCAoLi4uKQorKyAgICB7CisrICAgICAgLy8gRGlzY2Fy ZAorKyAgICB9CisrCisrICB0cnkKKysgICAgeworKyAgICAgIC8vIFRoaXMgaXMgZHVwbGljYXRl ZCBzbyB3ZSBjYW4gbmV4dCBvdmVyIG9uZSBidXQgc3RlcCBpbnRvCisrICAgICAgLy8gYW5vdGhl ci4KKysgICAgICBuZXh0X2Nhc2VzLmZ1bmN0aW9uMiAoKTsKKysgICAgfQorKyAgY2F0Y2ggKC4u LikKKysgICAgeworKyAgICAgIC8vIERpc2NhcmQKKysgICAgfQorKworKyAgbmV4dF9jYXNlcy5m dW5jdGlvbjMgKCk7CisrCisrICB0cnkKKysgICAgeworKyAgICAgIG5leHRfY2FzZXMucmV0aHJv dyAoKTsKKysgICAgfQorKyAgY2F0Y2ggKC4uLikKKysgICAgeworKyAgICAgIC8vIERpc2NhcmQK KysgICAgfQorKworKyAgdHJ5CisrICAgIHsKKysgICAgICAvLyBBbm90aGVyIGR1cGxpY2F0ZSBz byB3ZSBjYW4gdGVzdCAiZmluaXNoIi4KKysgICAgICBuZXh0X2Nhc2VzLmZ1bmN0aW9uMiAoKTsK KysgICAgfQorKyAgY2F0Y2ggKC4uLikKKysgICAgeworKyAgICAgIC8vIERpc2NhcmQKKysgICAg fQorKworKyAgLy8gQW5vdGhlciB0ZXN0IGZvciAiZmluaXNoIi4KKysgIHRyeQorKyAgICB7Cisr ICAgICAgbmV4dF9jYXNlcy5maW5pc2ggKCk7CisrICAgIH0KKysgIGNhdGNoICguLi4pCisrICAg IHsKKysgICAgfQorKworKyAgLy8gVGVzdCBvZiAidW50aWwiLgorKyAgdHJ5CisrICAgIHsKKysg ICAgICBuZXh0X2Nhc2VzLmZpbmlzaCAoKTsKKysgICAgfQorKyAgY2F0Y2ggKC4uLikKKysgICAg eworKyAgICB9CisrCisrICAvLyBUZXN0IG9mICJ1bnRpbCIgd2l0aCBhbiBhcmd1bWVudC4KKysg IHRyeQorKyAgICB7CisrICAgICAgbmV4dF9jYXNlcy51bnRpbCAoKTsKKysgICAgfQorKyAgY2F0 Y2ggKC4uLikKKysgICAgeworKyAgICB9CisrCisrICAvLyBUZXN0IG9mICJhZHZhbmNlIi4KKysg IHRyeQorKyAgICB7CisrICAgICAgbmV4dF9jYXNlcy51bnRpbCAoKTsKKysgICAgfQorKyAgY2F0 Y2ggKC4uLikKKysgICAgeworKyAgICB9CisrfQorKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmNwL2dkYjk1OTMuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvZ2RiOTU5My5leHAK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5lZTlhZWZmCistLS0gL2Rldi9u dWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9nZGI5NTkzLmV4cAorQEAgLTAsMCArMSwx ODUgQEAKKysjIENvcHlyaWdodCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKysKKytpZiAkdHJhY2Vs ZXZlbCB0aGVuIHsKKysgICAgc3RyYWNlICR0cmFjZWxldmVsCisrfQorKworK2lmIHsgW3NraXBf Y3BsdXNfdGVzdHNdIH0geyBjb250aW51ZSB9CisrCisrc2V0IHBybXNfaWQgOTU5MworK3NldCBi dWdfaWQgMAorKworK3NldCB0ZXN0ZmlsZSAiZ2RiOTU5MyIKKytzZXQgc3JjZmlsZSAke3Rlc3Rm aWxlfS5jYworK3NldCBiaW5maWxlICRvYmpkaXIvJHN1YmRpci8kdGVzdGZpbGUKKysKKysjIENy ZWF0ZSBhbmQgc291cmNlIHRoZSBmaWxlIHRoYXQgcHJvdmlkZXMgaW5mb3JtYXRpb24gYWJvdXQg dGhlIGNvbXBpbGVyCisrIyB1c2VkIHRvIGNvbXBpbGUgdGhlIHRlc3QgY2FzZS4KKytpZiBbZ2V0 X2NvbXBpbGVyX2luZm8gJHtiaW5maWxlfSAiYysrIl0geworKyAgICB1bnRlc3RlZCBnZGI5NTkz LmV4cAorKyAgICByZXR1cm4gLTEKKyt9CisrCisraWYgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGly fS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge2RlYnVnIGMr K31dICE9ICIiIH0geworKyAgICB1bnRlc3RlZCBnZGI5NTkzLmV4cAorKyAgICByZXR1cm4gLTEK Kyt9CisrCisrIyBTb21lIHRhcmdldHMgY2FuJ3QgZG8gZnVuY3Rpb24gY2FsbHMsIHNvIGRvbid0 IGV2ZW4gYm90aGVyIHdpdGggdGhpcworKyMgdGVzdC4KKytpZiBbdGFyZ2V0X2luZm8gZXhpc3Rz IGdkYixjYW5ub3RfY2FsbF9mdW5jdGlvbnNdIHsKKysgICAgc2V0dXBfeGZhaWwgIiotKi0qIiA5 NTkzCisrICAgIGZhaWwgIlRoaXMgdGFyZ2V0IGNhbiBub3QgY2FsbCBmdW5jdGlvbnMiCisrICAg IGNvbnRpbnVlCisrfQorKworK2dkYl9leGl0CisrZ2RiX3N0YXJ0CisrZ2RiX3JlaW5pdGlhbGl6 ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisrZ2RiX2xvYWQgJHtiaW5maWxlfQorKworK2lmICFbcnVu dG9fbWFpbl0gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIG1haW4iCisrICAg IGNvbnRpbnVlCisrfSAKKysKKysjIFNlZSB3aGV0aGVyIHdlIGhhdmUgdGhlIG5lZWRlZCB1bndp bmRlciBob29rcy4KKytzZXQgb2sgMQorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCBfVW53aW5k X0RlYnVnSG9vayIgImNoZWNrIGZvciB1bndpbmRlciBob29rIiB7CisrICAgIC1yZSAiPSAuKl9V bndpbmRfRGVidWdIb29rLipcclxuJGdkYl9wcm9tcHQgJCIgeworKwlwYXNzICJjaGVjayBmb3Ig dW53aW5kZXIgaG9vayIKKysgICAgfQorKyAgICAtcmUgIk5vIHN5bWJvbCAuKiBpbiBjdXJyZW50 IGNvbnRleHQuXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJIyBQYXNzIHRoZSB0ZXN0IHNvIHdlIGRv bid0IGdldCBib2d1cyBmYWlscyBpbiB0aGUgcmVzdWx0cy4KKysJcGFzcyAiY2hlY2sgZm9yIHVu d2luZGVyIGhvb2siCisrCXNldCBvayAwCisrICAgIH0KKyt9CisraWYgeyEkb2t9IHsKKysgICAg dW50ZXN0ZWQgZ2RiOTU5My5leHAKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgU2VlIGh0dHA6 Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9OTU5MworKworK2dkYl90 ZXN0ICJuZXh0IiBcCisrICAgICIuKmNhdGNoICguLi4pLioiIFwKKysgICAgIm5leHQgb3ZlciBh IHRocm93IDEiCisrCisrZ2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRfY2FzZXMuZnVuY3Rp b24yLioiIFwKKysgICJuZXh0IHBhc3QgY2F0Y2ggMSIKKysKKytnZGJfdGVzdCAibmV4dCIgXAor KyAgICAiLipjYXRjaCAoLi4uKS4qIiBcCisrICAgICJuZXh0IG92ZXIgYSB0aHJvdyAyIgorKwor K2dkYl90ZXN0ICJuZXh0IiBcCisrICAiLipuZXh0X2Nhc2VzLmZ1bmN0aW9uMi4qIiBcCisrICAi bmV4dCBwYXN0IGNhdGNoIDIiCisrCisrZ2RiX3Rlc3QgInN0ZXAiIFwKKysgICIuKmZ1bmN0aW9u MSgpLioiIFwKKysgICJzdGVwIGludG8gZnVuY3Rpb24yIDEiCisrCisrZ2RiX3Rlc3QgIm5leHQi IFwKKysgICAgIi4qY2F0Y2ggKC4uLikuKiIgXAorKyAgICAibmV4dCBvdmVyIGEgdGhyb3cgMyIK KysKKytnZGJfdGVzdCAibmV4dCIgXAorKyAgIi4qbmV4dF9jYXNlcy5mdW5jdGlvbjMuKiIgXAor KyAgIm5leHQgcGFzdCBjYXRjaCAzIgorKworK2dkYl90ZXN0ICJuZXh0IiBcCisrICAiLipuZXh0 X2Nhc2VzLnJldGhyb3cuKiIgXAorKyAgICAibmV4dCBvdmVyIGEgdGhyb3cgNCIKKysKKytnZGJf dGVzdCAibmV4dCIgXAorKyAgIi4qY2F0Y2ggKC4uLikuKiIgXAorKyAgIm5leHQgb3ZlciBhIHJl dGhyb3ciCisrCisrZ2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRfY2FzZXMuZnVuY3Rpb24y LioiIFwKKysgICJuZXh0IGFmdGVyIGEgcmV0aHJvdyIKKysKKytnZGJfdGVzdCAic3RlcCIgXAor KyAgIi4qZnVuY3Rpb24xKCkuKiIgXAorKyAgInN0ZXAgaW50byBmdW5jdGlvbjIgMiIKKysKKytn ZGJfdGVzdCAiZmluaXNoIiBcCisrICAiLipjYXRjaCAoLi4uKS4qIiBcCisrICAiZmluaXNoIDEi CisrCisrZ2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRfY2FzZXMuZmluaXNoICgpLioiIFwK KysgICJuZXh0IHBhc3QgY2F0Y2ggNCIKKysKKytnZGJfdGVzdCAic3RlcCIgXAorKyAgIi4qZnVu Y3Rpb24xICgpLioiIFwKKysgICJzdGVwIGludG8gZmluaXNoIG1ldGhvZCIKKysKKytnZGJfdGVz dCAiZmluaXNoIiBcCisrICAiLipjYXRjaCAoLi4uKS4qIiBcCisrICAiZmluaXNoIDIiCisrCisr Z2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRfY2FzZXMuZmluaXNoICgpLioiIFwKKysgICJu ZXh0IHBhc3QgY2F0Y2ggNSIKKysKKytnZGJfdGVzdCAic3RlcCIgXAorKyAgIi4qZnVuY3Rpb24x ICgpLioiIFwKKysgICJzdGVwIGludG8gZmluaXNoLCBmb3IgdW50aWwiCisrCisrZ2RiX3Rlc3Qg InVudGlsIiBcCisrICAiLipjYXRjaCAuaW50IHguKiIgXAorKyAgInVudGlsIHdpdGggbm8gYXJn dW1lbnQgMSIKKysKKytzZXQgbGluZSBbZ2RiX2dldF9saW5lX251bWJlciAibWFya2VyIGZvciB1 bnRpbCIgJHRlc3RmaWxlLmNjXQorKworK2dkYl90ZXN0ICJ1bnRpbCAkbGluZSIgXAorKyAgIi4q ZnVuY3Rpb24xICgpLioiIFwKKysgICJuZXh0IHBhc3QgY2F0Y2ggNiIKKysKKytnZGJfdGVzdCAi dW50aWwiIFwKKysgICIuKmNhdGNoICguLi4pLioiIFwKKysgICJ1bnRpbCB3aXRoIG5vIGFyZ3Vt ZW50IDIiCisrCisrc2V0IGxpbmUgW2dkYl9nZXRfbGluZV9udW1iZXIgInVudGlsIGhlcmUiICR0 ZXN0ZmlsZS5jY10KKysKKytnZGJfdGVzdCAibmV4dCIgXAorKyAgIi4qbmV4dF9jYXNlcy51bnRp bCAoKS4qIiBcCisrICAibmV4dCBwYXN0IGNhdGNoIDYiCisrCisrZ2RiX3Rlc3QgInN0ZXAiIFwK KysgICIuKmZ1bmN0aW9uMSAoKS4qIiBcCisrICAic3RlcCBpbnRvIHVudGlsIgorKworK2dkYl90 ZXN0ICJ1bnRpbCAkbGluZSIgXAorKyAgIi4qY2F0Y2ggKC4uLikuKiIgXAorKyAgInVudGlsLW92 ZXItdGhyb3ciCisrCisrZ2RiX3Rlc3QgIm5leHQiIFwKKysgICIuKm5leHRfY2FzZXMudW50aWwg KCkuKiIgXAorKyAgIm5leHQgcGFzdCBjYXRjaCA3IgorKworK2dkYl90ZXN0ICJzdGVwIiBcCisr ICAiLipmdW5jdGlvbjEgKCkuKiIgXAorKyAgInN0ZXAgaW50byB1bnRpbCwgZm9yIGFkdmFuY2Ui CisrCisrZ2RiX3Rlc3QgImFkdmFuY2UgJGxpbmUiIFwKKysgICIuKmNhdGNoICguLi4pLioiIFwK KysgICJhZHZhbmNlLW92ZXItdGhyb3ciCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Y3AvbWVtYmVyLXB0ci5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL21lbWJlci1wdHIuY2MKK2lu ZGV4IDFkZmY3MGEuLjY0OGIyYWYgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC9t ZW1iZXItcHRyLmNjCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9tZW1iZXItcHRyLmNjCitA QCAtMTM4LDYgKzEzOCw3IEBAIGNsYXNzIERpYW1vbmQgOiBwdWJsaWMgUGFkZGluZywgcHVibGlj IExlZnQsIHB1YmxpYyBSaWdodAorIHsKKyBwdWJsaWM6CisgICB2aXJ0dWFsIGludCB2Z2V0X2Jh c2UgKCk7CisrICBpbnQgKCpmdW5jX3B0cikgKGludCk7CisgfTsKKyAKICBpbnQgRGlhbW9uZDo6 dmdldF9iYXNlICgpCiBAQCAtMTQ1LDYgKzE0NiwxMiBAQCBpbnQgRGlhbW9uZDo6dmdldF9iYXNl ICgpCiAgICByZXR1cm4gdGhpcy0+TGVmdDo6eCArIDIwMDA7CkBAIC0yMjQ0MywxMCArMjM4OTYs MTAgQEAgaW5kZXggMDAwMDAwMC4uZTUwODEwMwogK2dkYl90ZXN0ICJwcmludCBhYmMiICI9IDMz IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1yZWN1cnNpdmUu Y2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2UtcmVjdXJzaXZlLmNjCiBuZXcgZmls ZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uODQ2MDVhNgoraW5kZXggMDAwMDAwMC4uNDZk NGMxOAogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNl LXJlY3Vyc2l2ZS5jYwotQEAgLTAsMCArMSwzMCBAQAorQEAgLTAsMCArMSw0NyBAQAogK25hbWVz cGFjZSBBewogKyAgaW50IGF4ID0gOTsKICt9CkBAIC0yMjQ1OSwxMiArMjM5MTIsMTQgQEAgaW5k ZXggMDAwMDAwMC4uODQ2MDVhNgogKyAgdXNpbmcgbmFtZXNwYWNlIEI7CiArfQogKworK3VzaW5n IG5hbWVzcGFjZSBDOworKwogKy8vLS0tLS0tLS0tLS0tLS0tCiArbmFtZXNwYWNlIER7CiArICB1 c2luZyBuYW1lc3BhY2UgRDsKICsgIGludCBkeCA9IDk5OwogK30KLSt1c2luZyBuYW1lc3BhY2Ug QzsKKyt1c2luZyBuYW1lc3BhY2UgRDsKICsKICsvLy0tLS0tLS0tLS0tLS0tLQogK25hbWVzcGFj ZXsKQEAgLTIyNDczLDE2ICsyMzkyOCwzMSBAQCBpbmRleCAwMDAwMDAwLi44NDYwNWE2CiArICB9 CiArfQogKworKy8vLS0tLS0tLS0tLS0tLS0tCisrbmFtZXNwYWNlIEV7CisrICBpbnQgZXggPSA5 OTk5OworK30KKysKKytuYW1lc3BhY2UgRnsKKysgIG5hbWVzcGFjZSBGRSA9IEU7CisrfQorKwor K25hbWVzcGFjZSBHeworKyAgbmFtZXNwYWNlIEdGID0gRjsKKyt9CisrCisrLy8tLS0tLS0tLS0t LS0tLS0tCiAraW50IG1haW4oKXsKICsgIHVzaW5nIG5hbWVzcGFjZSBEOwotKyAgcmV0dXJuIGF4 ICsgZHggKyB4eDsKKysgIG5hbWVzcGFjZSBHWCA9IEc7CisrICByZXR1cm4gYXggKyBkeCArIHh4 ICsgRzo6R0Y6OkZFOjpleDsKICt9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av bmFtZXNwYWNlLXJlY3Vyc2l2ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5jcC9uYW1lc3BhY2Ut cmVjdXJzaXZlLmV4cAogbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmViYzg5 OGYKK2luZGV4IDAwMDAwMDAuLjU1NDM3NTcKIC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi90ZXN0 c3VpdGUvZ2RiLmNwL25hbWVzcGFjZS1yZWN1cnNpdmUuZXhwCi1AQCAtMCwwICsxLDY2IEBACitA QCAtMCwwICsxLDc1IEBACiArIyBDb3B5cmlnaHQgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KICsKICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CkBAIC0yMjU0OSw2ICsyNDAxOSwxNSBAQCBpbmRl eCAwMDAwMDAwLi5lYmM4OThmCiArCiArZ2RiX3Rlc3QgInByaW50IHh4IiAiPSA5OTkiCiArCisr IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKysjIFRlc3QgcHJp bnRpbmcgdXNpbmcgcmVjdXJzaXZlIG5hbWVzcGFjZQorKyMgYWxpYXNlcy4KKysKKytzZXR1cF9r ZmFpbCAiZ2RiLzEwNTQxIiAiKi0qLSoiCisrZ2RiX3Rlc3QgInB0eXBlIEc6OkdGIiAiPSBuYW1l c3BhY2UgRiIKKysKKytzZXR1cF9rZmFpbCAiZ2RiLzEwNTQxIiAiKi0qLSoiCisrZ2RiX3Rlc3Qg InByaW50IEc6OkdGOjpGRTo6ZXgiICI9IDk5OTkiCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuY3AvbmFtZXNwYWNlLXN0cmVzcy5jYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVz cGFjZS1zdHJlc3MuY2MKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0CiBpbmRleCAwMDAwMDAwLi5mMzQw ODNlCkBAIC0yMjgzOCw3ICsyNDMxNyw3IEBAIGluZGV4IDQ3ODZmZDUuLjhmZjU2MjIgMTAwNjQ0 CiArICByZXR1cm4gbWFya2VyMSAoKTsKICB9CiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL25hbWVzcGFj ZS11c2luZy5leHAKLWluZGV4IGYyNDk3M2YuLmMwMTVlZjcgMTAwNjQ0CitpbmRleCBmMjQ5NzNm Li5mYzIzMTE1IDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVz aW5nLmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvbmFtZXNwYWNlLXVzaW5nLmV4cAog QEAgLTI4LDYgKzI4LDExIEBAIGlmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGly fS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGViCkBAIC0yMjg1Myw3ICsy NDMzMiw3IEBAIGluZGV4IGYyNDk3M2YuLmMwMTVlZjcgMTAwNjQ0CiAgIyBHZXQgdGhpbmdzIHN0 YXJ0ZWQuCiAgCiAgZ2RiX2V4aXQKLUBAIC00NiwxNSArNTEsNjEgQEAgaWYgIVtydW50b19tYWlu XSB0aGVuIHsKK0BAIC00Niw0MiArNTEsMTU1IEBAIGlmICFbcnVudG9fbWFpbl0gdGhlbiB7CiAg CiAgZ2RiX3Rlc3QgInByaW50IF9hIiAiPSAxIgogIApAQCAtMjI5MTUsNyArMjQzOTQsOSBAQCBp bmRleCBmMjQ5NzNmLi5jMDE1ZWY3IDEwMDY0NAogICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCiAgIyBUZXN0IHByaW50aW5nIG9mIG5hbWVzcGFjZSBhbGlhc2Vz CiAgCi1AQCAtNjQsMTYgKzExNSwzMiBAQCBpZiAhW3J1bnRvIG1hcmtlcjJdIHRoZW4geworLXNl dHVwX2tmYWlsICJnZGIvNzkzNSIgIiotKi0qIgorIGlmICFbcnVudG8gbWFya2VyMl0gdGhlbiB7 CisgICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgbWFya2VyMiIKICAgICAg Y29udGludWUKICB9CiAgCkBAIC0yMjk1Miw3ICsyNDQzMywxMCBAQCBpbmRleCBmMjQ5NzNmLi5j MDE1ZWY3IDEwMDY0NAogIAogICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiAgIyBUZXN0IHByaW50aW5nIG9mIGluZGl2aWR1YWxseSBpbXBvcnRlZCBlbGVtZW50 cwotQEAgLTg0LDQgKzE1MSw1NyBAQCBpZiAhW3J1bnRvIG1hcmtlcjRdIHRoZW4geworIAorLXNl dHVwX2tmYWlsICJnZGIvNzkzNiIgIiotKi0qIgorIGlmICFbcnVudG8gbWFya2VyNF0gdGhlbiB7 CisgICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgbWFya2VyNCIKICAgICAg Y29udGludWUKICB9CiAgCkBAIC0yMzI0NCw0NjMgKzI0NzI4LDg3IEBAIGluZGV4IDAwMDAwMDAu LjY5MjJlZWQKICsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAogKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgotKwotK2lmICR0cmFjZWxldmVsIHRoZW4gewotKyAgICBzdHJhY2UgJHRyYWNlbGV2 ZWwKLSt9Ci0rCi0rc2V0IHBybXNfaWQgMAotK3NldCBidWdfaWQgMAotKwotK3NldCB0ZXN0Zmls ZSBzaGFkb3dpbmcKLStzZXQgc3JjZmlsZSAke3Rlc3RmaWxlfS5jYwotK3NldCBiaW5maWxlICR7 b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0KLStpZiAgeyBbZ2RiX2NvbXBpbGUgIiR7c3Jj ZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge2RlYnVn IGMrK31dICE9ICIiIH0gewotKyAgICB1bnRlc3RlZCAiQ291bGRuJ3QgY29tcGlsZSB0ZXN0IHBy b2dyYW0iCi0rICAgIHJldHVybiAtMQotK30KLSsKLStpZiBbZ2V0X2NvbXBpbGVyX2luZm8gJHti aW5maWxlfV0gewotKyAgICByZXR1cm4gLTE7Ci0rfQotKwotKyMgR2V0IHRoaW5ncyBzdGFydGVk LgotKwotK2dkYl9leGl0Ci0rZ2RiX3N0YXJ0Ci0rZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rp ci8kc3ViZGlyCi0rZ2RiX2xvYWQgJHtiaW5maWxlfQotKwotK2lmICFbcnVudG9fbWFpbl0gdGhl biB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgbWFpbiIKLSsgICAg Y29udGludWUKLSt9Ci0rCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKLSsjIFRlc3QgcHJpbnRpbmcgb2YgY2xhc3MgdmFyaWFibGUgaXMgbm90IHNoYWRvd2Vk Ci0rIyBieSBnbG9iYWwgdmFyaWFibGUKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAibWFya2VyMSJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm1hcmtlcjEi Ci0rCi0rZ2RiX3Rlc3QgInByaW50IHgiICI9IDMzIiAiUHJpbnQgY2xhc3MgeCBzaGFkb3dpbmcg Z2xvYmFsIHgiCi0rCi0rCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKLSsjIFRlc3QgcHJpbnRpbmcgbG9jYWwgdmFyaWFibGUgaXMgbm90IHNoYWRvd2VkCi0r IyBieSBjbGFzcyB2YXJpYWJsZQotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJtYXJrZXIyIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAibWFya2VyMiIKLSsK LStnZGJfdGVzdCAicHJpbnQgeCIgIj0gNDQiICJQcmludCBsb2NhbCB4IHNoYWRvd2luZyBjbGFz cyB4IgotKwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0r IyBUZXN0IGlubmVyIHNjb3BlIHggaXMgcHJpbnRlZCBub3Qgb3V0ZXIgc2NvcGUKLSsKLStnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAibWFya2VyMyJdCi0rZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgIm1hcmtlcjMiCi0rCi0rZ2RiX3Rlc3QgInByaW50IHgiICI9IDU1IiAi UHJpbnQgaW5uZXIgc2NvcGUgeCIKLSsKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwotKyMgVGVzdCBwcmludGluZyBsb2NhbCB2YXJpYWJsZSBpcyBub3Qgc2hh ZG93ZWQKLSsjIGJ5IG5hbWVzcGFjZSB2YXJpYWJsZQotKwotK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJtYXJrZXI0Il0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAi bWFya2VyNCIKLSsKLStnZGJfdGVzdCAicHJpbnQgeCIgIj0gNTUiICJQcmludCBsb2NhbCB4IG5v dCBuYW1lc3BhY2UgeCIKLSsKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotKyMgVGVzdCBpbXBvcnRlZCBuYW1lc3BhY2UgZWxlbWVudCBpcyBwcmludGVkCi0r Ci0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIm1hcmtlcjUiXQotK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJtYXJrZXI1IgotKwotK2lmIFt0ZXN0X2NvbXBpbGVyX2lu Zm8gZ2NjLTQtMy0qXSB0aGVuIHsgc2V0dXBfeGZhaWwgKi0qLSogfQotKwotK2dkYl90ZXN0ICJw cmludCB4IiAiPSAxMSIgIlByaW50IGltcG9ydGVkIG5hbWVzcGFjZSB4IgotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9jYWxsZnJhbWVjZmEuUyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9jYWxsZnJhbWVjZmEuUwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAuLjZkMDQyMWEKLS0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9jYWxsZnJhbWVjZmEuUwotQEAgLTAsMCArMSwzMDkgQEAKLSsvKgotKyAgIENvcHlyaWdo dCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyAgIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyAgIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgICBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rICAg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgotKyAqLwotKwotKy8qIFRoaXMgd2FzIGNvbXBpbGVkIGZy b20gYSB0cml2aWFsIHByb2dyYW0ganVzdCB0byB0ZXN0IHRoZQotKyAgIERXX09QX2NhbGxfZnJh bWVfY2ZhIG9wZXJhdG9yOgotKwotKyAgICBpbnQgZnVuYyAoaW50IGFyZykgewotKyAgICAgIHJl dHVybiBhcmcgKyAyMzsKLSsgICAgfQotKwotKyAgICBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKSB7Ci0rICAgICAgZnVuYyAoNzcpOwotKyAgICB9Ci0rKi8KLSsKLSsJLmZpbGUJInEu YyIKLSsJLnNlY3Rpb24JLmRlYnVnX2FiYnJldiwiIixAcHJvZ2JpdHMKLSsuTGRlYnVnX2FiYnJl djA6Ci0rCS5zZWN0aW9uCS5kZWJ1Z19pbmZvLCIiLEBwcm9nYml0cwotKy5MZGVidWdfaW5mbzA6 Ci0rCS5zZWN0aW9uCS5kZWJ1Z19saW5lLCIiLEBwcm9nYml0cwotKy5MZGVidWdfbGluZTA6Ci0r CS50ZXh0Ci0rLkx0ZXh0MDoKLSsuZ2xvYmwgZnVuYwotKwkudHlwZQlmdW5jLCBAZnVuY3Rpb24K LStmdW5jOgotKy5MRkIwOgotKwkuZmlsZSAxICJxLmMiCi0rCS5sb2MgMSAyIDAKLSsJLmNmaV9z dGFydHByb2MKLSsJcHVzaGwJJWVicAotKwkuY2ZpX2RlZl9jZmFfb2Zmc2V0IDgKLSsJbW92bAkl ZXNwLCAlZWJwCi0rCS5jZmlfb2Zmc2V0IDUsIC04Ci0rCS5jZmlfZGVmX2NmYV9yZWdpc3RlciA1 Ci0rCS5sb2MgMSAzIDAKLSsJbW92bAk4KCVlYnApLCAlZWF4Ci0rCWFkZGwJJDIzLCAlZWF4Ci0r CS5sb2MgMSA0IDAKLSsJcG9wbAklZWJwCi0rCS5jZmlfcmVzdG9yZSA1Ci0rCS5jZmlfZGVmX2Nm YSA0LCA0Ci0rCXJldAotKwkuY2ZpX2VuZHByb2MKLSsuTEZFMDoKLSsJLnNpemUJZnVuYywgLi1m dW5jCi0rLmdsb2JsIF9zdGFydAotKwkudHlwZQlfc3RhcnQsIEBmdW5jdGlvbgotK19zdGFydDoK LSsuTEZCMToKLSsJLmxvYyAxIDYgMAotKwkuY2ZpX3N0YXJ0cHJvYwotKwlwdXNobAklZWJwCi0r CS5jZmlfZGVmX2NmYV9vZmZzZXQgOAotKwltb3ZsCSVlc3AsICVlYnAKLSsJLmNmaV9vZmZzZXQg NSwgLTgKLSsJLmNmaV9kZWZfY2ZhX3JlZ2lzdGVyIDUKLSsJc3VibAkkNCwgJWVzcAotKwkubG9j IDEgNyAwCi0rCW1vdmwJJDc3LCAoJWVzcCkKLSsJY2FsbAlmdW5jCi0rCS5sb2MgMSA4IDAKLSsJ bGVhdmUKLSsJLmNmaV9yZXN0b3JlIDUKLSsJLmNmaV9kZWZfY2ZhIDQsIDQKLSsJcmV0Ci0rCS5j ZmlfZW5kcHJvYwotKy5MRkUxOgotKwkuc2l6ZQlfc3RhcnQsIC4tX3N0YXJ0Ci0rLkxldGV4dDA6 Ci0rCS5zZWN0aW9uCS5kZWJ1Z19pbmZvCi0rCS5sb25nCTB4OWUKLSsJLnZhbHVlCTB4MwotKwku bG9uZwkuTGRlYnVnX2FiYnJldjAKLSsJLmJ5dGUJMHg0Ci0rCS51bGViMTI4IDB4MQotKwkubG9u ZwkuTEFTRjUKLSsJLmJ5dGUJMHgxCi0rCS5zdHJpbmcJInEuYyIKLSsJLmxvbmcJLkxBU0Y2Ci0r CS5sb25nCS5MdGV4dDAKLSsJLmxvbmcJLkxldGV4dDAKLSsJLmxvbmcJLkxkZWJ1Z19saW5lMAot KwkudWxlYjEyOCAweDIKLSsJLmJ5dGUJMHgxCi0rCS5sb25nCS5MQVNGMAotKwkuYnl0ZQkweDEK LSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4MQotKwkubG9uZwkweDRmCi0rCS5sb25nCS5MRkIwCi0r CS5sb25nCS5MRkUwCi0rCS5ieXRlCTB4MQotKwkuYnl0ZQkweDljCi0rCS5sb25nCTB4NGYKLSsJ LnVsZWIxMjggMHgzCi0rCS5zdHJpbmcJImFyZyIKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4MQot KwkubG9uZwkweDRmCi0rCS5ieXRlCTB4MgotKwkuYnl0ZQkweDkxCi0rCS5zbGViMTI4IDAKLSsJ LmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NAotKwkuYnl0ZQkweDQKLSsJLmJ5dGUJMHg1Ci0rCS5z dHJpbmcJImludCIKLSsJLnVsZWIxMjggMHgyCi0rCS5ieXRlCTB4MQotKwkubG9uZwkuTEFTRjEK LSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4NgotKwkuYnl0ZQkweDEKLSsJLmxvbmcJMHg0ZgotKwku bG9uZwkuTEZCMQotKwkubG9uZwkuTEZFMQotKwkuYnl0ZQkweDEKLSsJLmJ5dGUJMHg5YwotKwku bG9uZwkweDhlCi0rCS51bGViMTI4IDB4NQotKwkubG9uZwkuTEFTRjIKLSsJLmJ5dGUJMHgxCi0r CS5ieXRlCTB4NgotKwkubG9uZwkweDRmCi0rCS5ieXRlCTB4MgotKwkuYnl0ZQkweDkxCi0rCS5z bGViMTI4IDAKLSsJLnVsZWIxMjggMHg1Ci0rCS5sb25nCS5MQVNGMwotKwkuYnl0ZQkweDEKLSsJ LmJ5dGUJMHg2Ci0rCS5sb25nCTB4OGUKLSsJLmJ5dGUJMHgyCi0rCS5ieXRlCTB4OTEKLSsJLnNs ZWIxMjggNAotKwkuYnl0ZQkweDAKLSsJLnVsZWIxMjggMHg2Ci0rCS5ieXRlCTB4NAotKwkubG9u ZwkweDk0Ci0rCS51bGViMTI4IDB4NgotKwkuYnl0ZQkweDQKLSsJLmxvbmcJMHg5YQotKwkudWxl YjEyOCAweDcKLSsJLmJ5dGUJMHgxCi0rCS5ieXRlCTB4NgotKwkubG9uZwkuTEFTRjQKLSsJLmJ5 dGUJMHgwCi0rCS5zZWN0aW9uCS5kZWJ1Z19hYmJyZXYKLSsJLnVsZWIxMjggMHgxCi0rCS51bGVi MTI4IDB4MTEKLSsJLmJ5dGUJMHgxCi0rCS51bGViMTI4IDB4MjUKLSsJLnVsZWIxMjggMHhlCi0r CS51bGViMTI4IDB4MTMKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4MwotKwkudWxlYjEy OCAweDgKLSsJLnVsZWIxMjggMHgxYgotKwkudWxlYjEyOCAweGUKLSsJLnVsZWIxMjggMHgxMQot KwkudWxlYjEyOCAweDEKLSsJLnVsZWIxMjggMHgxMgotKwkudWxlYjEyOCAweDEKLSsJLnVsZWIx MjggMHgxMAotKwkudWxlYjEyOCAweDYKLSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4MAotKwkudWxl YjEyOCAweDIKLSsJLnVsZWIxMjggMHgyZQotKwkuYnl0ZQkweDEKLSsJLnVsZWIxMjggMHgzZgot KwkudWxlYjEyOCAweGMKLSsJLnVsZWIxMjggMHgzCi0rCS51bGViMTI4IDB4ZQotKwkudWxlYjEy OCAweDNhCi0rCS51bGViMTI4IDB4YgotKwkudWxlYjEyOCAweDNiCi0rCS51bGViMTI4IDB4Ygot KwkudWxlYjEyOCAweDI3Ci0rCS51bGViMTI4IDB4YwotKwkudWxlYjEyOCAweDQ5Ci0rCS51bGVi MTI4IDB4MTMKLSsJLnVsZWIxMjggMHgxMQotKwkudWxlYjEyOCAweDEKLSsJLnVsZWIxMjggMHgx MgotKwkudWxlYjEyOCAweDEKLSsJLnVsZWIxMjggMHg0MAotKwkudWxlYjEyOCAweGEKLSsJLnVs ZWIxMjggMHgxCi0rCS51bGViMTI4IDB4MTMKLSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4MAotKwku dWxlYjEyOCAweDMKLSsJLnVsZWIxMjggMHg1Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweDMK LSsJLnVsZWIxMjggMHg4Ci0rCS51bGViMTI4IDB4M2EKLSsJLnVsZWIxMjggMHhiCi0rCS51bGVi MTI4IDB4M2IKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4NDkKLSsJLnVsZWIxMjggMHgx MwotKwkudWxlYjEyOCAweDIKLSsJLnVsZWIxMjggMHhhCi0rCS5ieXRlCTB4MAotKwkuYnl0ZQkw eDAKLSsJLnVsZWIxMjggMHg0Ci0rCS51bGViMTI4IDB4MjQKLSsJLmJ5dGUJMHgwCi0rCS51bGVi MTI4IDB4YgotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHgzZQotKwkudWxlYjEyOCAweGIK LSsJLnVsZWIxMjggMHgzCi0rCS51bGViMTI4IDB4OAotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgw Ci0rCS51bGViMTI4IDB4NQotKwkudWxlYjEyOCAweDUKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4 IDB4MwotKwkudWxlYjEyOCAweGUKLSsJLnVsZWIxMjggMHgzYQotKwkudWxlYjEyOCAweGIKLSsJ LnVsZWIxMjggMHgzYgotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHg0OQotKwkudWxlYjEy OCAweDEzCi0rCS51bGViMTI4IDB4MgotKwkudWxlYjEyOCAweGEKLSsJLmJ5dGUJMHgwCi0rCS5i eXRlCTB4MAotKwkudWxlYjEyOCAweDYKLSsJLnVsZWIxMjggMHhmCi0rCS5ieXRlCTB4MAotKwku dWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4NDkKLSsJLnVsZWIxMjgg MHgxMwotKwkuYnl0ZQkweDAKLSsJLmJ5dGUJMHgwCi0rCS51bGViMTI4IDB4NwotKwkudWxlYjEy OCAweDI0Ci0rCS5ieXRlCTB4MAotKwkudWxlYjEyOCAweGIKLSsJLnVsZWIxMjggMHhiCi0rCS51 bGViMTI4IDB4M2UKLSsJLnVsZWIxMjggMHhiCi0rCS51bGViMTI4IDB4MwotKwkudWxlYjEyOCAw eGUKLSsJLmJ5dGUJMHgwCi0rCS5ieXRlCTB4MAotKwkuYnl0ZQkweDAKLSsJLnNlY3Rpb24JLmRl YnVnX3B1Ym5hbWVzLCIiLEBwcm9nYml0cwotKwkubG9uZwkweDIwCi0rCS52YWx1ZQkweDIKLSsJ LmxvbmcJLkxkZWJ1Z19pbmZvMAotKwkubG9uZwkweGEyCi0rCS5sb25nCTB4MjUKLSsJLnN0cmlu ZwkiZnVuYyIKLSsJLmxvbmcJMHg1NgotKwkuc3RyaW5nCSJtYWluIgotKwkubG9uZwkweDAKLSsJ LnNlY3Rpb24JLmRlYnVnX2FyYW5nZXMsIiIsQHByb2diaXRzCi0rCS5sb25nCTB4MWMKLSsJLnZh bHVlCTB4MgotKwkubG9uZwkuTGRlYnVnX2luZm8wCi0rCS5ieXRlCTB4NAotKwkuYnl0ZQkweDAK LSsJLnZhbHVlCTB4MAotKwkudmFsdWUJMHgwCi0rCS5sb25nCS5MdGV4dDAKLSsJLmxvbmcJLkxl dGV4dDAtLkx0ZXh0MAotKwkubG9uZwkweDAKLSsJLmxvbmcJMHgwCi0rCS5zZWN0aW9uCS5kZWJ1 Z19zdHIsIk1TIixAcHJvZ2JpdHMsMQotKy5MQVNGNToKLSsJLnN0cmluZwkiR05VIEMgNC41LjAg MjAwOTA4MTAgKGV4cGVyaW1lbnRhbCkgW3RydW5rIHJldmlzaW9uIDE1MDYzM10iCi0rLkxBU0Yy OgotKwkuc3RyaW5nCSJhcmdjIgotKy5MQVNGNjoKLSsJLnN0cmluZwkiL3RtcCIKLSsuTEFTRjA6 Ci0rCS5zdHJpbmcJImZ1bmMiCi0rLkxBU0YzOgotKwkuc3RyaW5nCSJhcmd2IgotKy5MQVNGMToK LSsJLnN0cmluZwkibWFpbiIKLSsuTEFTRjQ6Ci0rCS5zdHJpbmcJImNoYXIiCi0rCS5pZGVudAki R0NDOiAoR05VKSA0LjUuMCAyMDA5MDgxMCAoZXhwZXJpbWVudGFsKSBbdHJ1bmsgcmV2aXNpb24g MTUwNjMzXSIKLSsJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9jYWxsZnJhbWVjZmEuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2NhbGxmcmFtZWNmYS5leHAKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwLi4wMGQ2N2ZjCi0tLS0gL2Rldi9udWxsCi0rKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvY2FsbGZyYW1lY2ZhLmV4cAotQEAgLTAsMCArMSw1NSBAQAotKyMgQ29w eXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgotKwotKyMgVGVzdCBEV19PUF9jYWxsX2ZyYW1lX2NmYS4KLSsK LSsjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3aGljaCBzdXBwb3J0IERX QVJGLTIgYW5kIHVzZSBnYXMuCi0rIyBGb3Igbm93IHBpY2sgYSBzYW1wbGluZyBvZiBsaWtlbHkg dGFyZ2V0cy4KLStpZiB7IVtpc3RhcmdldCAqLSotbGludXgqXQotKyAgICAmJiAhW2lzdGFyZ2V0 ICotKi1nbnUqXQotKyAgICAmJiAhW2lzdGFyZ2V0ICotKi1lbGYqXQotKyAgICAmJiAhW2lzdGFy Z2V0ICotKi1vcGVuYnNkKl0KLSsgICAgJiYgIVtpc3RhcmdldCBhcm0tKi1lYWJpKl0KLSsgICAg JiYgIVtpc3RhcmdldCBwb3dlcnBjLSotZWFiaSpdfSB7Ci0rICAgIHJldHVybiAwICAKLSt9Ci0r IyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHg4NiB0YXJnZXRzLgotK2lmIHshW2lzdGFy Z2V0IGk/ODYtKl19IHsKLSsgICAgcmV0dXJuIDAgIAorKyMgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u CisrCisraWYgJHRyYWNlbGV2ZWwgdGhlbiB7CisrICAgIHN0cmFjZSAkdHJhY2VsZXZlbAogK30K ICsKLStzZXQgdGVzdGZpbGUgImNhbGxmcmFtZWNmYSIKLStzZXQgc3JjZmlsZSAke3Rlc3RmaWxl fS5TCi0rc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS54Cisrc2V0 IHBybXNfaWQgMAorK3NldCBidWdfaWQgMAogKwotK2lmICB7IFtnZGJfY29tcGlsZSAiJHtzcmNk aXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSBcCi0rICAg ICAgIFtsaXN0IHthZGRpdGlvbmFsX2ZsYWdzPS1ub3N0ZGxpYn1dXSAhPSAiIiB9IHsKKytzZXQg dGVzdGZpbGUgc2hhZG93aW5nCisrc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uY2MKKytzZXQgYmlu ZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CisraWYgIHsgW2dkYl9jb21waWxl ICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxl IHtkZWJ1ZyBjKyt9XSAhPSAiIiB9IHsKKysgICAgdW50ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUg dGVzdCBwcm9ncmFtIgogKyAgICByZXR1cm4gLTEKICt9CiArCisraWYgW2dldF9jb21waWxlcl9p bmZvICR7YmluZmlsZX1dIHsKKysgICAgcmV0dXJuIC0xOworK30KKysKKysjIEdldCB0aGluZ3Mg c3RhcnRlZC4KKysKICtnZGJfZXhpdAogK2dkYl9zdGFydAogK2dkYl9yZWluaXRpYWxpemVfZGly ICRzcmNkaXIvJHN1YmRpcgogK2dkYl9sb2FkICR7YmluZmlsZX0KICsKLStnZGJfdGVzdCAiYnJl YWsgKmZ1bmMiICJCcmVha3BvaW50IDEuKiIgInNldCBicmVha3BvaW50IGZvciBjYWxsLWZyYW1l LWNmYSIKLStnZGJfdGVzdCAicnVuIiAiIiAicnVuIGZvciBjYWxsLWZyYW1lLWNmYSIKLStnZGJf dGVzdCAiZGlzcGxheSBhcmciICJhcmcgPSA3NyIgInNldCBkaXNwbGF5IGZvciBjYWxsLWZyYW1l LWNmYSIKLSsKLSsjIFdlIGtub3cgaG93IG1hbnkgaW5zdHJ1Y3Rpb25zIGFyZSBpbiB0aGUgZnVu Y3Rpb24uICBOb3RlIHRoYXQgd2UKLSsjIGNhbid0IGhhbmRsZSB0aGUgInJldCIgaW5zdHJ1Y3Rp b24gZHVlIHRvIHRoZSBlcGlsb2d1ZSB1bndpbmRlci4KLStmb3Ige3NldCBpIDF9IHskaSA8IDV9 IHtpbmNyIGl9IHsKLSsgICAgZ2RiX3Rlc3QgInNpIiAiYXJnID0gNzciICJzdGVwICRpIGZvciBj YWxsLWZyYW1lLWNmYSIKKytpZiAhW3J1bnRvX21haW5dIHRoZW4geworKyAgICBwZXJyb3IgImNv dWxkbid0IHJ1biB0byBicmVha3BvaW50IG1haW4iCisrICAgIGNvbnRpbnVlCiArfQorKworKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisrIyBUZXN0IHByaW50 aW5nIG9mIGNsYXNzIHZhcmlhYmxlIGlzIG5vdCBzaGFkb3dlZAorKyMgYnkgZ2xvYmFsIHZhcmlh YmxlCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIm1hcmtlcjEiXQor K2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJtYXJrZXIxIgorKworK2dkYl90ZXN0ICJwcmlu dCB4IiAiPSAzMyIgIlByaW50IGNsYXNzIHggc2hhZG93aW5nIGdsb2JhbCB4IgorKworKworKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisrIyBUZXN0IHByaW50 aW5nIGxvY2FsIHZhcmlhYmxlIGlzIG5vdCBzaGFkb3dlZAorKyMgYnkgY2xhc3MgdmFyaWFibGUK KysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAibWFya2VyMiJdCisrZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm1hcmtlcjIiCisrCisrZ2RiX3Rlc3QgInByaW50IHgi ICI9IDQ0IiAiUHJpbnQgbG9jYWwgeCBzaGFkb3dpbmcgY2xhc3MgeCIKKysKKysjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworKyMgVGVzdCBpbm5lciBzY29wZSB4 IGlzIHByaW50ZWQgbm90IG91dGVyIHNjb3BlCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgIm1hcmtlcjMiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJtYXJr ZXIzIgorKworK2dkYl90ZXN0ICJwcmludCB4IiAiPSA1NSIgIlByaW50IGlubmVyIHNjb3BlIHgi CisrCisrIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKysjIFRl c3QgcHJpbnRpbmcgbG9jYWwgdmFyaWFibGUgaXMgbm90IHNoYWRvd2VkCisrIyBieSBuYW1lc3Bh Y2UgdmFyaWFibGUKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAibWFy a2VyNCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIm1hcmtlcjQiCisrCisrZ2RiX3Rl c3QgInByaW50IHgiICI9IDU1IiAiUHJpbnQgbG9jYWwgeCBub3QgbmFtZXNwYWNlIHgiCisrCisr IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKysjIFRlc3QgaW1w b3J0ZWQgbmFtZXNwYWNlIGVsZW1lbnQgaXMgcHJpbnRlZAorKworK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJtYXJrZXI1Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAibWFya2VyNSIKKysKKytpZiBbdGVzdF9jb21waWxlcl9pbmZvIGdjYy00LTMtKl0gdGhlbiB7 IHNldHVwX3hmYWlsICotKi0qIH0KKysKKytnZGJfdGVzdCAicHJpbnQgeCIgIj0gMTEiICJQcmlu dCBpbXBvcnRlZCBuYW1lc3BhY2UgeCIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWFyYW5nZXMuUyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYXJhbmdl cy5TCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uZDViOWNhNQpAQCAtMjUx MTMsNiArMjYyMjEsMTI4IEBAIGluZGV4IDQ5NWFlNDUuLmQwOGQ3YTQgMTAwNjQ0CiAgCSAgICAt cmUgIi4qdGltZV9hdF9zdGFydHVwID0gZ2V0X3J1bl90aW1lLiokZ2RiX3Byb21wdCAkIiB7CiAg CQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBnZXRfcnVuX3RpbWUgYW5kIGV2ZXJ5dGhpbmcg aXQgY2FsbHMiCiAgCQlzZXQgY29tbWFuZCAibmV4dCIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5qYXZhL2pucGUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuamF2YS9qbnBlLmV4cAor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjc0ZDRkNTgKKy0tLSAvZGV2L251 bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmphdmEvam5wZS5leHAKK0BAIC0wLDAgKzEsNzIg QEAKKysjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKwor KyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMK KysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxo dHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytpZiAkdHJhY2VsZXZlbCB0aGVuIHsK KysgIHN0cmFjZSAkdHJhY2VsZXZlbAorK30KKysKKytsb2FkX2xpYiAiamF2YS5leHAiCisrCisr c2V0IHRlc3RmaWxlICJqbnBlIgorK3NldCBzcmNmaWxlICR7c3JjZGlyfS8kc3ViZGlyLyR7dGVz dGZpbGV9LmphdmEKKytzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9 CisraWYgIHsgW2NvbXBpbGVfamF2YV9mcm9tX3NvdXJjZSAke3NyY2ZpbGV9ICR7YmluZmlsZX0g Ii1nIl0gIT0gIiIgfSB7CisrICAgIHVudGVzdGVkICJDb3VsZG4ndCBjb21waWxlICR7c3JjZmls ZX0iCisrICAgIHJldHVybiAtMQorK30KKysKKytzZXQgcHJtc19pZCAwCisrc2V0IGJ1Z19pZCAw CisrCisrIyBTdGFydCB3aXRoIGEgZnJlc2ggZ2RiLgorKworK2dkYl9leGl0CisrZ2RiX3N0YXJ0 CisrZ2RiX3JlaW5pdGlhbGl6ZV9kaXIgJHNyY2Rpci8kc3ViZGlyCisrZ2RiX2xvYWQgJHtiaW5m aWxlfQorKworK3NldCBsaW5lIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicmVhayBoZXJlIiAkdGVz dGZpbGUuamF2YV0KKytnZGJfdGVzdCAiYnJlYWsgJHRlc3RmaWxlLmphdmE6JGxpbmUiICIiCisr CisrZ2RiX3Rlc3QgInJ1biIgXAorKyAgIkN1cnJlbnQgbGFuZ3VhZ2UuKmphdmEiIFwKKysgICJy dW4gamF2YSBuZXh0LW92ZXItdGhyb3ciCisrCisrIyBTZWUgd2hldGhlciB3ZSBoYXZlIHRoZSBu ZWVkZWQgdW53aW5kZXIgaG9va3MuCisrc2V0IG9rIDEKKytnZGJfdGVzdF9tdWx0aXBsZSAicHJp bnQgX1Vud2luZF9EZWJ1Z0hvb2siICJjaGVjayBmb3IgdW53aW5kZXIgaG9vayBpbiBqYXZhIiB7 CisrICAgIC1yZSAiPSAuKl9VbndpbmRfRGVidWdIb29rLipcclxuJGdkYl9wcm9tcHQgJCIgewor KwlwYXNzICJjaGVjayBmb3IgdW53aW5kZXIgaG9vayBpbiBqYXZhIgorKyAgICB9CisrICAgIC1y ZSAiTm8gc3ltYm9sIC4qIGluIGN1cnJlbnQgY29udGV4dC5cclxuJGdkYl9wcm9tcHQgJCIgewor KwkjIFBhc3MgdGhlIHRlc3Qgc28gd2UgZG9uJ3QgZ2V0IGJvZ3VzIGZhaWxzIGluIHRoZSByZXN1 bHRzLgorKwlwYXNzICJjaGVjayBmb3IgdW53aW5kZXIgaG9vayBpbiBqYXZhIgorKwlzZXQgb2sg MAorKyAgICB9CisrfQorK2lmIHshJG9rfSB7CisrICAgIHVudGVzdGVkIGpucGUuZXhwCisrICAg IHJldHVybiAtMQorK30KKysKKytnZGJfdGVzdCAiaGFuZGxlIFNJR1NFR1Ygbm9zdG9wIG5vcHJp bnQiIFwKKysgICJTSUdTRUdWLipmYXVsdCIgXAorKyAgImRpc2FibGUgU0lHU0VHViBmb3IgbmV4 dC1vdmVyLU5QRSIKKysKKysjIFdlIHNvbWV0aW1lcyBzdG9wIGF0IGxpbmUgMzcsIG5vdCBsaW5l IDM1LiAgVGhpcyBzZWVtcyB0byBiZSBhIGdjagorKyMgb2RkaXR5IC0tIGFub3RoZXIgbmV4dCB3 aWxsIHNvbHZlIGl0LgorK2dkYl90ZXN0ICJuZXh0IiBcCisrICAiM1xbNTdcXS4qIiBcCisrICAi bmV4dCBvdmVyIE5QRSIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5qYXZhL2pucGUu amF2YSBiL2dkYi90ZXN0c3VpdGUvZ2RiLmphdmEvam5wZS5qYXZhCituZXcgZmlsZSBtb2RlIDEw MDY0NAoraW5kZXggMDAwMDAwMC4uZmZjYTNhYgorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuamF2YS9qbnBlLmphdmEKK0BAIC0wLDAgKzEsMzggQEAKKysvLyBUZXN0IG5l eHQtb3Zlci1OUEUuCisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBk ZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysgICAqLwor KworK3B1YmxpYyBjbGFzcyBqbnBlCisreworKyAgcHVibGljIHN0YXRpYyBTdHJpbmcgbnBlICgp CisrICB7CisrICAgIHJldHVybiAoKE9iamVjdCkgbnVsbCkudG9TdHJpbmcoKTsKKysgIH0KKysK KysgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKQorKyAgeworKyAgICB0 cnkKKysgICAgICB7CisrCVN5c3RlbS5vdXQucHJpbnRsbiAobnBlICgpKTsgLy8gYnJlYWsgaGVy ZQorKyAgICAgIH0KKysgICAgY2F0Y2ggKE51bGxQb2ludGVyRXhjZXB0aW9uIG4pCisrICAgICAg eworKwlTeXN0ZW0ub3V0LnByaW50bG4gKCJzdWNjZXNzIik7CisrICAgICAgfQorKyAgfQorK30K IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9nZGI3MDEuZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvZ2RiNzAxLmV4cAogaW5kZXggZDRhY2RjMi4uMjQ0YzczMSAxMDA2NDQKIC0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL2dkYjcwMS5leHAKQEAgLTI1NjY4LDEwICsyNjg5OCwx MCBAQCBpbmRleCAxNjFiMzRmLi4wZjliNGQ0IDEwMDY0NAogIAogIAogZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItY21kLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pMi12YXItY21kLmV4cAotaW5kZXggOTZkNDJhMS4uZTkwMGQxNCAxMDA2NDQKK2luZGV4IGRk YTc3YmIuLjBlOTE2MzQgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFy LWNtZC5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItY21kLmV4cAotQEAg LTE0Niw3ICsxNDYsNyBAQCBtaV9zdGVwX3RvICJkb19sb2NhbHNfdGVzdHMiICIiICJ2YXItY21k LmMiICRsaW5lX2RsdF9saW50ZWdlciAic3RlcCBhdCBkb19sb2NhbAorQEAgLTE1MSw3ICsxNTEs NyBAQCBtaV9zdGVwX3RvICJkb19sb2NhbHNfdGVzdHMiICIiICJ2YXItY21kLmMiICRsaW5lX2Rs dF9saW50ZWdlciAic3RlcCBhdCBkb19sb2NhbAogICMgVGVzdDogY192YXJpYWJsZS0yLjIKICAj IERlc2M6IGNoZWNrIHdoZXRoZXIgb25seSBsaW50ZWdlciBjaGFuZ2VkIHZhbHVlcwogIG1pX2dk Yl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCkBAIC0yNTY4MCw3ICsyNjkxMCw3IEBAIGluZGV4IDk2 ZDQyYTEuLmU5MDBkMTQgMTAwNjQ0CiAgCSJ1cGRhdGUgYWxsIHZhcnM6IGxpbnRlZ2VyIGNoYW5n ZWQiCiAgCiAgIyBTdGVwIG92ZXIgImxwaW50ZWdlciA9ICZsaW50ZWdlcjsiCi1AQCAtMTU1LDcg KzE1NSw3IEBAIG1pX3N0ZXBfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIgInZhci1jbWQuYyIgW2V4 cHIgJGxpbmVfZGx0X2xpbnRlZ2VyICsgMV0gInN0ZXAKK0BAIC0xNjAsNyArMTYwLDcgQEAgbWlf c3RlcF90byAiZG9fbG9jYWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiBbZXhwciAkbGluZV9kbHRf bGludGVnZXIgKyAxXSAic3RlcAogICMgVGVzdDogY192YXJpYWJsZS0yLjMKICAjIERlc2M6IGNo ZWNrIHdoZXRoZXIgb25seSBscGludGVnZXIgY2hhbmdlZAogIG1pX2dkYl90ZXN0ICItdmFyLXVw ZGF0ZSAqIiBcCkBAIC0yNTY4OSw3ICsyNjkxOSw3IEBAIGluZGV4IDk2ZDQyYTEuLmU5MDBkMTQg MTAwNjQ0CiAgCSJ1cGRhdGUgYWxsIHZhcnM6IGxwaW50ZWdlciBjaGFuZ2VkIgogIAogICMgU3Rl cCBvdmVyICJsY2hhcmFjdGVyID0gJ2EnOyIKLUBAIC0xNjQsNyArMTY0LDcgQEAgbWlfc3RlcF90 byAiZG9fbG9jYWxzX3Rlc3RzIiAiIiAidmFyLWNtZC5jIiBbZXhwciAkbGluZV9kbHRfbGludGVn ZXIgKyAyXSAic3RlcAorQEAgLTE2OSw3ICsxNjksNyBAQCBtaV9zdGVwX3RvICJkb19sb2NhbHNf dGVzdHMiICIiICJ2YXItY21kLmMiIFtleHByICRsaW5lX2RsdF9saW50ZWdlciArIDJdICJzdGVw CiAgIyBUZXN0OiBjX3ZhcmlhYmxlLTIuNAogICMgRGVzYzogY2hlY2sgd2hldGhlciBvbmx5IGxj aGFyYWN0ZXIgY2hhbmdlZAogIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCkBAIC0yNTY5 OCw3ICsyNjkyOCw3IEBAIGluZGV4IDk2ZDQyYTEuLmU5MDBkMTQgMTAwNjQ0CiAgCSJ1cGRhdGUg YWxsIHZhcnM6IGxjaGFyYWN0ZXIgY2hhbmdlZCIKICAKICAjIFN0ZXAgb3ZlciAibHBjaGFyYWN0 ZXIgPSAmbGNoYXJhY3RlcjsiCi1AQCAtMTczLDcgKzE3Myw3IEBAIG1pX3N0ZXBfdG8gImRvX2xv Y2Fsc190ZXN0cyIgIiIgInZhci1jbWQuYyIgW2V4cHIgJGxpbmVfZGx0X2xpbnRlZ2VyICsgM10g InN0ZXAKK0BAIC0xNzgsNyArMTc4LDcgQEAgbWlfc3RlcF90byAiZG9fbG9jYWxzX3Rlc3RzIiAi IiAidmFyLWNtZC5jIiBbZXhwciAkbGluZV9kbHRfbGludGVnZXIgKyAzXSAic3RlcAogICMgVGVz dDogY192YXJpYWJsZS0yLjUKICAjIERlc2M6IGNoZWNrIHdoZXRoZXIgb25seSBscGNoYXJhY3Rl ciBjaGFuZ2VkCiAgbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKQEAgLTI1NzA3LDcgKzI2 OTM3LDcgQEAgaW5kZXggOTZkNDJhMS4uZTkwMGQxNCAxMDA2NDQKICAJInVwZGF0ZSBhbGwgdmFy czogbHBjaGFyYWN0ZXIgY2hhbmdlZCIKICAKICAKLUBAIC0xOTUsNyArMTk1LDcgQEAgbWlfZXhl Y3V0ZV90byAiZXhlYy1zdGVwIDkiICJlbmQtc3RlcHBpbmctcmFuZ2UiICJkb19sb2NhbHNfdGVz dHMiICIiIFwKK0BAIC0yMDAsNyArMjAwLDcgQEAgbWlfZXhlY3V0ZV90byAiZXhlYy1zdGVwIDki ICJlbmQtc3RlcHBpbmctcmFuZ2UiICJkb19sb2NhbHNfdGVzdHMiICIiIFwKICAjIERlc2M6IGNo ZWNrIHdoZXRoZXIgbGxvbmcsIGxwbG9uZywgbGZsb2F0LCBscGZsb2F0LCBsZG91YmxlLCBscGRv dWJsZSwgbHNpbXBsZS5pbnRlZ2VyLAogICMgICAgICAgbHNpbXBsZS51bnNpZ25lZF9jaGFyYWN0 ZXIgbHNpbXBsZS5pbnRlZ2VyIGxzaW1wbGUuY2hhcmFjdGVyIGNoYW5nZWQKICBtaV9nZGJfdGVz dCAiLXZhci11cGRhdGUgKiIgXApAQCAtMjU3MTYsNyArMjY5NDYsNyBAQCBpbmRleCA5NmQ0MmEx Li5lOTAwZDE0IDEwMDY0NAogIAkidXBkYXRlIGFsbCB2YXJzOiBtYW55IGNoYW5nZWQiCiAgCiAg IyBTdGVwIG92ZXI6Ci1AQCAtMjEyLDcgKzIxMiw3IEBAIG1pX2V4ZWN1dGVfdG8gImV4ZWMtc3Rl cCA0IiAiZW5kLXN0ZXBwaW5nLXJhbmdlIiAiZG9fbG9jYWxzX3Rlc3RzIiAiIiBcCitAQCAtMjE3 LDcgKzIxNyw3IEBAIG1pX2V4ZWN1dGVfdG8gImV4ZWMtc3RlcCA0IiAiZW5kLXN0ZXBwaW5nLXJh bmdlIiAiZG9fbG9jYWxzX3Rlc3RzIiAiIiBcCiAgIyBUZXN0OiBjX3ZhcmlhYmxlLTIuNwogICMg RGVzYzogY2hlY2sgd2hldGhlciAobHNpbXBsZS5zaWduZWRfY2hhcmFjdGVyLCBsc2ltcGxlLmNo YXJfcHRyKSBscHNpbXBsZSwgZnVuYyBjaGFuZ2VkCiAgbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRl ICoiIFwKQEAgLTI1NzI1LDcgKzI2OTU1LDcgQEAgaW5kZXggOTZkNDJhMS4uZTkwMGQxNCAxMDA2 NDQKICAJInVwZGF0ZSBhbGwgdmFyczogZnVuYyBhbmQgbHBzaW1wbGUgY2hhbmdlZCIKICAKICAj IFN0ZXAgb3ZlcgotQEAgLTIzNCw3ICsyMzQsNyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAg OCIgImVuZC1zdGVwcGluZy1yYW5nZSIgImRvX2xvY2Fsc190ZXN0cyIgIiIgXAorQEAgLTIzOSw3 ICsyMzksNyBAQCBtaV9leGVjdXRlX3RvICJleGVjLXN0ZXAgOCIgImVuZC1zdGVwcGluZy1yYW5n ZSIgImRvX2xvY2Fsc190ZXN0cyIgIiIgXAogICMgTm90ZTogdGhpcyB0ZXN0IGFsc28gY2hlY2tz IHRoYXQgbHBzaW1wbGUtPmludGVnZXIgYW5kIGxzaW1wbGUuaW50ZWdlciBoYXZlCiAgIyAgICAg ICBjaGFuZ2VkICh0aGV5IGFyZSB0aGUgc2FtZSkKICBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUg KiIgXApAQCAtMjU3MzQsNyArMjY5NjQsNyBAQCBpbmRleCA5NmQ0MmExLi5lOTAwZDE0IDEwMDY0 NAogIAkidXBkYXRlIGFsbCB2YXJzOiBsc2ltcGxlIGFuZCBvdGhlcnMgY2hhbmdlZCIKICAKICAK LUBAIC0yNTcsNyArMjU3LDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItYXNzaWduIGxpbnRlZ2VyIDMz MzMiIFwKK0BAIC0yNjIsNyArMjYyLDcgQEAgbWlfZ2RiX3Rlc3QgIi12YXItYXNzaWduIGxpbnRl Z2VyIDMzMzMiIFwKICAjIGNoYW5nZS4KICBzZXQgbHBjaGFyX3VwZGF0ZSAiXHtuYW1lPVwibHBj aGFyYWN0ZXJcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiXH0sIgog IG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCkBAIC0yNTc0Myw3ICsyNjk3Myw3IEBAIGlu ZGV4IDk2ZDQyYTEuLmU5MDBkMTQgMTAwNjQ0CiAgCSJ1cGRhdGUgYWxsIHZhcnM6IGxpbnRlZ2Vy IGNoYW5nZWQgYWZ0ZXIgYXNzaWduIgogIAogIG1pX2dkYl90ZXN0ICItdmFyLWFzc2lnbiBsaW50 ZWdlciAzMzMzIiBcCi1AQCAtMjc3LDcgKzI3Nyw3IEBAIG1pX2dkYl90ZXN0ICItdmFyLWFzc2ln biBscGludGVnZXIgXCImbGludGVnZXIgKyAzXCIiIFwKK0BAIC0yODIsNyArMjgyLDcgQEAgbWlf Z2RiX3Rlc3QgIi12YXItYXNzaWduIGxwaW50ZWdlciBcIiZsaW50ZWdlciArIDNcIiIgXAogIAki YXNzaWduIHRvIGxwaW50ZWdlciIKICAKICBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXApA QCAtMjU3NTIsNyArMjY5ODIsNyBAQCBpbmRleCA5NmQ0MmExLi5lOTAwZDE0IDEwMDY0NAogIAki dXBkYXRlIGFsbCB2YXJzOiBscGludGVnZXIgY2hhbmdlZCBhZnRlciBhc3NpZ24iCiAgCiAgbWlf Z2RiX3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLUBAIC00MDIsNyArNDAyLDcgQEAgbWlfc3RlcF90 byAic3Vicm91dGluZTEiICJce25hbWU9XCJpXCIsdmFsdWU9XCIuKlwiXH0sXHtuYW1lPVwibFwi LHZhbHVlPVwiLipcIlwKK0BAIC00MDcsNyArNDA3LDcgQEAgbWlfc3RlcF90byAic3Vicm91dGlu ZTEiICJce25hbWU9XCJpXCIsdmFsdWU9XCIuKlwiXH0sXHtuYW1lPVwibFwiLHZhbHVlPVwiLipc IlwKICAjIFRlc3Q6IGNfdmFyaWFibGUtMi4xMwogICMgRGVzYzogY2hhbmdlIHN1YnJvdXRpbmUx IGxvY2FsIGkKICBtaV9nZGJfdGVzdCAiLXZhci11cGRhdGUgKiIgXApAQCAtMjU3NjEsNyArMjY5 OTEsNyBAQCBpbmRleCA5NmQ0MmExLi5lOTAwZDE0IDEwMDY0NAogIAkidXBkYXRlIGFsbCB2YXJz OiBpIGNoYW5nZWQiCiAgCiAgbWlfc3RlcF90byAic3Vicm91dGluZTEiICJce25hbWU9XCJpXCIs dmFsdWU9XCIuKlwiXH0sXHtuYW1lPVwibFwiLHZhbHVlPVwiLipcIlx9IiBcCi1AQCAtNDExLDcg KzQxMSw3IEBAIG1pX3N0ZXBfdG8gInN1YnJvdXRpbmUxIiAiXHtuYW1lPVwiaVwiLHZhbHVlPVwi LipcIlx9LFx7bmFtZT1cImxcIix2YWx1ZT1cIi4qXCJcCitAQCAtNDE2LDcgKzQxNiw3IEBAIG1p X3N0ZXBfdG8gInN1YnJvdXRpbmUxIiAiXHtuYW1lPVwiaVwiLHZhbHVlPVwiLipcIlx9LFx7bmFt ZT1cImxcIix2YWx1ZT1cIi4qXCJcCiAgIyBUZXN0OiBjX3ZhcmlhYmxlLTIuMTQKICAjIERlc2M6 IGNoYW5nZSBkb19sb2NhbHNfdGVzdHMgbG9jYWwgbGxvbmcKICBtaV9nZGJfdGVzdCAiLXZhci11 cGRhdGUgKiIgXApAQCAtMjU3NzAsNyArMjcwMDAsNyBAQCBpbmRleCA5NmQ0MmExLi5lOTAwZDE0 IDEwMDY0NAogIAkidXBkYXRlIGFsbCB2YXJzOiBsbG9uZyBjaGFuZ2VkIgogIAogIHNldCBsaW5l X2RsdF9jYWxsX3N1YnJvdXRpbmUxIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJzdWJyb3V0aW5lMSAo bGludGVnZXIsICZsbG9uZyk7Il0KLUBAIC00MjEsNyArNDIxLDcgQEAgbWlfbmV4dF90byAiZG9f bG9jYWxzX3Rlc3RzIiAiIgkidmFyLWNtZC5jIiBcCitAQCAtNDI2LDcgKzQyNiw3IEBAIG1pX25l eHRfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIJInZhci1jbWQuYyIgXAogICMgVGVzdDogY192YXJp YWJsZS0yLjE1CiAgIyBEZXNjOiBjaGVjayBmb3Igb3V0IG9mIHNjb3BlIHN1YnJvdXRpbmUxIGxv Y2FscwogIG1pX2dkYl90ZXN0ICItdmFyLXVwZGF0ZSAqIiBcCkBAIC0yNTc3OSw3ICsyNzAwOSw3 IEBAIGluZGV4IDk2ZDQyYTEuLmU5MDBkMTQgMTAwNjQ0CiAgCSJ1cGRhdGUgYWxsIHZhcnM6IGFs bCBub3cgb3V0IG9mIHNjb3BlIgogIAogICMgRG9uZSB3aXRoIGxvY2Fscy9nbG9iYWxzIHRlc3Rz LiBFcmFzZSBhbGwgdmFyaWFibGVzCi1AQCAtNTEzLDE0ICs1MTMsMTQgQEAgbWlfZ2RiX3Rlc3Qg Ii12YXItY3JlYXRlIHNlbGVjdGVkX2EgQCBhIiBcCitAQCAtNTE4LDE0ICs1MTgsMTQgQEAgbWlf Z2RiX3Rlc3QgIi12YXItY3JlYXRlIHNlbGVjdGVkX2EgQCBhIiBcCiAgbWlfY29udGludWVfdG8g aW5jcl9hCiAgCiAgbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlIHNlbGVjdGVkX2EiIFwKQEAgLTI2 MDAwLDIzICsyNzIzMCwxMCBAQCBpbmRleCAwMDAwMDAwLi5lNDhkNTIwCiArICBwcm9ncmFtIG1h aW4KICsgIGNhbGwgZiAoJ2ZvbycpCiArICBlbmQKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vTWFrZWZpbGUuaW4gYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vTWFrZWZp bGUuaW4KLWluZGV4IDc5YmU5ZTcuLmM0OWY3MTMgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vTWFrZWZpbGUuaW4KLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9N YWtlZmlsZS5pbgotQEAgLTEsNyArMSw3IEBACi0gVlBBVEggPSBAc3JjZGlyQAotIHNyY2RpciA9 IEBzcmNkaXJACi0gCi0tRVhFQ1VUQUJMRVMgPSBweXRob24tdmFsdWUKLStFWEVDVVRBQkxFUyA9 IHB5dGhvbi12YWx1ZSBweXRob24tcHJldHR5cHJpbnQgcHl0aG9uLXRlbXBsYXRlCi0gCi0gYWxs IGluZm8gaW5zdGFsbC1pbmZvIGR2aSBpbnN0YWxsIHVuaW5zdGFsbCBpbnN0YWxsY2hlY2sgY2hl Y2s6Ci0gCUBlY2hvICJOb3RoaW5nIHRvIGJlIGRvbmUgZm9yICRALi4uIgotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tY21kLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weXRob24tY21kLmV4cAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1jbWQuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWNtZC5leHAK IGluZGV4IGY2ZWY5MzguLjEwMzJhMmQgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHl0aG9uLWNtZC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRo b24tY21kLmV4cAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWNtZC5leHAKKysr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1jbWQuZXhwCiBAQCAtMjAsMzYgKzIwLDE1 IEBAIGlmICR0cmFjZWxldmVsIHRoZW4gewogICAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKICB9CkBA IC0yNjA1NywxMCArMjcyNzQsMTAgQEAgaW5kZXggZjZlZjkzOC4uMTAzMmEyZCAxMDA2NDQKICB9 CiAgCiAgIyBUZXN0IGEgc2ltcGxlIGNvbW1hbmQuCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5dGhvbi1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHl0aG9uLWZyYW1lLmV4cAotaW5kZXggODJiNTI2ZS4uODJhZTgxNCAxMDA2NDQKLS0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tZnJhbWUuZXhwCi0rKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHl0aG9uLWZyYW1lLmV4cAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt ZnJhbWUuZXhwCitpbmRleCBhNjdlYWEzLi41MzgwYzBmIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LWZyYW1lLmV4cAogQEAgLTIwLDQwICsyMCwyOCBAQCBpZiAkdHJhY2VsZXZlbCB0aGVu IHsKICAgICAgc3RyYWNlICR0cmFjZWxldmVsCiAgfQpAQCAtMjYwNzYsNyArMjcyOTMsNyBAQCBp bmRleCA4MmI1MjZlLi44MmFlODE0IDEwMDY0NAogKyAgcmV0dXJuIC0xCiArfQogKwotIHNldCB0 ZXN0ZmlsZSAicHl0aG9uLWZyYW1lIgorIHNldCB0ZXN0ZmlsZSAicHktZnJhbWUiCiAgc2V0IHNy Y2ZpbGUgJHt0ZXN0ZmlsZX0uYwogIHNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0 ZXN0ZmlsZX0KICsKQEAgLTI2MTQ3LDEwICsyNzM2NCwxMCBAQCBpbmRleCA4MmI1MjZlLi44MmFl ODE0IDEwMDY0NAogIGdkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZ2RiLnNlbGVj dGVkX2ZyYW1lICgpID09IGYxIiAiID0gVHJ1ZSIgInRlc3QgZ2RiLnNlbGVjdGVkX2ZyYW1lIgog KwogK2dkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAuYmxvY2sgKCkiICI8Z2Ri LkJsb2NrIG9iamVjdCBhdCAweFxbXFs6eGRpZ2l0OlxdXF0rPiIgInRlc3QgRnJhbWUuYmxvY2si Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1mdW5jdGlvbi5l eHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLWZ1bmN0aW9uLmV4cAorZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mdW5jdGlvbi5leHAgYi9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCiBpbmRleCA3ZmVjYTJiLi40YWU1MTlm IDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1mdW5jdGlvbi5l eHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tZnVuY3Rpb24uZXhwCist LS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCisrKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCiBAQCAtMjAsMzYgKzIwLDE1IEBA IGlmICR0cmFjZWxldmVsIHRoZW4gewogICAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKICB9CkBAIC0y NjE5MSwxMSArMjc0MDgsMTEgQEAgaW5kZXggN2ZlY2EyYi4uNGFlNTE5ZiAxMDA2NDQKICB9CiAg CiAgZ2RiX3B5X3Rlc3RfbXVsdGlwbGUgImlucHV0IGNvbnZlbmllbmNlIGZ1bmN0aW9uIiBcCi1k aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZlcmlvci5jIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZlcmlvci5jCitkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWluZmVyaW9yLmMgYi9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktaW5mZXJpb3IuYwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAw MDAuLjBiNDgyOTkKIC0tLSAvZGV2L251bGwKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weXRob24taW5mZXJpb3IuYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWlu ZmVyaW9yLmMKIEBAIC0wLDAgKzEsNDkgQEAKICsjaW5jbHVkZSA8c3RkaW8uaD4KICsjaW5jbHVk ZSA8c3RkbGliLmg+CkBAIC0yNjI0NiwxMSArMjc0NjMsMTEgQEAgaW5kZXggMDAwMDAwMC4uMGI0 ODI5OQogKwogKyAgcmV0dXJuIGYxICgxLCAyKTsKICt9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZlcmlvci5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHl0aG9uLWluZmVyaW9yLmV4cAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1pbmZlcmlvci5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktaW5m ZXJpb3IuZXhwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uZWE0MTNjNgor aW5kZXggMDAwMDAwMC4uNzE5YjE3OAogLS0tIC9kZXYvbnVsbAotKysrIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZlcmlvci5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1pbmZlcmlvci5leHAKIEBAIC0wLDAgKzEsMjAxIEBACiArIyBDb3B5cmlnaHQg KEMpIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0yNjI4NSw3ICsy NzUwMiw3IEBAIGluZGV4IDAwMDAwMDAuLmVhNDEzYzYKICsgIHJldHVybiAtMQogK30KICsKLStz ZXQgdGVzdGZpbGUgInB5dGhvbi1pbmZlcmlvciIKKytzZXQgdGVzdGZpbGUgInB5LWluZmVyaW9y IgogK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKICtzZXQgYmluZmlsZSAke29iamRpcn0vJHtz dWJkaXJ9LyR7dGVzdGZpbGV9CiArCkBAIC0yNjQ1MywxMSArMjc2NzAsMTEgQEAgaW5kZXggMDAw MDAwMC4uZWE0MTNjNgogKyAgICBnZGJfdGVzdCAicHkgcHJpbnQgZ2RiLmluZmVyaW9ycygpXFsw XF0uc2VhcmNoX21lbW9yeSAoc3RhcnRfYWRkciwgbGVuZ3RoLCAweGZkYjk3NTMxLCA0KSIgXAog KyAgICAgICIke29uZV9wYXR0ZXJuX2ZvdW5kfSIgImZpbmQgcGF0dGVybiBzdHJhZGRsaW5nIGNo dW5rIGJvdW5kYXJ5IgogK30KLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHl0aG9uLWluZnRocmVhZC5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZ0 aHJlYWQuYworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1pbmZ0aHJl YWQuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1pbmZ0aHJlYWQuYwogbmV3IGZpbGUg bW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjIyZWI5ZjIKIC0tLSAvZGV2L251bGwKLSsrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24taW5mdGhyZWFkLmMKKysrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1pbmZ0aHJlYWQuYwogQEAgLTAsMCArMSwxNCBAQAogK2lu dCBmMiAoaW50IGEpCiArewpAQCAtMjY0NzMsMTEgKzI3NjkwLDExIEBAIGluZGV4IDAwMDAwMDAu LjIyZWI5ZjIKICt7CiArICByZXR1cm4gZjEgKDEsIDIpOwogK30KLWRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLWluZnRocmVhZC5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHl0aG9uLWluZnRocmVhZC5leHAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktaW5mdGhyZWFkLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS1pbmZ0aHJlYWQuZXhwCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4u ZDQ0NDU1NAoraW5kZXggMDAwMDAwMC4uZTlkMThiNwogLS0tIC9kZXYvbnVsbAotKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1pbmZ0aHJlYWQuZXhwCisrKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktaW5mdGhyZWFkLmV4cAogQEAgLTAsMCArMSw1OCBAQAogKyMg Q29weXJpZ2h0IChDKSAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAt MjY1MTIsNyArMjc3MjksNyBAQCBpbmRleCAwMDAwMDAwLi5kNDQ0NTU0CiArICByZXR1cm4gLTEK ICt9CiArCi0rc2V0IHRlc3RmaWxlICJweXRob24taW5mdGhyZWFkIgorK3NldCB0ZXN0ZmlsZSAi cHktaW5mdGhyZWFkIgogK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9LmMKICtzZXQgYmluZmlsZSAk e29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CiArCkBAIC0yNjUzNywxMCArMjc3NTQsMTAg QEAgaW5kZXggMDAwMDAwMC4uZDQ0NDU1NAogK2dkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhv biB0MCA9IGdkYi5zZWxlY3RlZF90aHJlYWQgKCkiICJ0ZXN0IGdkYi5zZWxlY3RlZF90aHJlYWQi IDEKICtnZGJfdGVzdCAicHl0aG9uIHByaW50IHQwIiAiXFw8Z2RiLkluZmVyaW9yVGhyZWFkIG9i amVjdCBhdCAweFxbXFs6eGRpZ2l0OlxdXF0rPiIgInZlcmlmeSBJbmZlcmlvclRocmVhZCBvYmpl Y3QiCiArZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCB0MC5udW0iICIgPSBcWzAt OVxdKyIgInRlc3QgSW5mZXJpb3IubnVtIgotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weXRob24tbWkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1t aS5leHAKLWluZGV4IDMyNTg4MTAuLjc3OTE3NzUgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHl0aG9uLW1pLmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5dGhvbi1taS5leHAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt bWkuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LW1pLmV4cAoraW5kZXggZDNmNDRi Mi4uYWZkZThjNCAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1taS5l eHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1taS5leHAKIEBAIC00OCwyMyAr NDgsNTMgQEAgbWlfZ2RiX3Rlc3QgInB5dGhvbiBleGVjZmlsZSAoJyR7c3JjZGlyfS8ke3N1YmRp cn0vJHt0ZXN0ZmlsZX0ucHknKSIgIiIKICBtaV9jb250aW51ZV90b19saW5lIFtnZGJfZ2V0X2xp bmVfbnVtYmVyIHtNSSBicmVha3BvaW50IGhlcmV9ICR7dGVzdGZpbGV9LmNdIFwKICAgICJzdGVw IHRvIGJyZWFrcG9pbnQiCkBAIC0yNjU2Nyw3ICsyNzc4NCw3IEBAIGluZGV4IDMyNTg4MTAuLjc3 OTE3NzUgMTAwNjQ0CiArICAgICJhc3NpZ24gc3RyaW5nXzEgZnJvbSBzdHJpbmdfMiIKICsKICtt aV9nZGJfdGVzdCAiLXZhci11cGRhdGUgc3RyaW5nIiBcCi0rICAgICJcXF5kb25lLGNoYW5nZWxp c3Q9XFxcW3tuYW1lPVwic3RyaW5nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwi ZmFsc2VcIixoYXNfbW9yZT1cIjBcIn1cXFxdIiBcCisrICAgICJcXF5kb25lLGNoYW5nZWxpc3Q9 XFxcW3tuYW1lPVwic3RyaW5nXCIsaW5fc2NvcGU9XCJ0cnVlXCIsdHlwZV9jaGFuZ2VkPVwiZmFs c2VcIixkeW5hbWljPVwiMVwiLGhhc19tb3JlPVwiMFwifVxcXF0iIFwKICsgICAgInVwZGF0ZSBz dHJpbmcgdmFyb2JqIGFmdGVyIGFzc2lnbm1lbnQiCiArCiArbWlfY3JlYXRlX2R5bmFtaWNfdmFy b2JqIGNvbnRhaW5lciBjIFwKQEAgLTI2NTgyLDcgKzI3Nzk5LDcgQEAgaW5kZXggMzI1ODgxMC4u Nzc5MTc3NSAxMDA2NDQKIC0gICAgeyB7Y29udGFpbmVyLlxbMFxdfSB7XFswXF19IDAgaW50IH0K IC19ICJ2YXJvYmogdXBkYXRlIDEiCiArbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5l ciAidmFyb2JqIHVwZGF0ZSAxIiB7Ci0rICAgIHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2No aWxkcmVuIDEgaGFzX21vcmUgMAorKyAgICB0eXBlX2NoYW5nZWQgZmFsc2UgbmV3X251bV9jaGls ZHJlbiAxIGR5bmFtaWMgMSBoYXNfbW9yZSAwCiArfSB7CiArfSB7CiArICAgIHsgbmFtZSB7Y29u dGFpbmVyLlxbMFxdfSBleHAge1xbMFxdfSBudW1jaGlsZCAwIHR5cGUgaW50IHRocmVhZC1pZCAx IH0KQEAgLTI2NTk1LDcgKzI3ODEyLDcgQEAgaW5kZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2NDQK IC0gICAgeyB7Y29udGFpbmVyLlxbMVxdfSB7XFsxXF19IDAgaW50IH0KIC19ICJ2YXJvYmogdXBk YXRlIDIiCiArbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5lciAidmFyb2JqIHVwZGF0 ZSAyIiB7Ci0rICAgIHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDIgaGFzX21v cmUgMAorKyAgICB0eXBlX2NoYW5nZWQgZmFsc2UgbmV3X251bV9jaGlsZHJlbiAyIGR5bmFtaWMg MSBoYXNfbW9yZSAwCiArfSB7CiArfSB7CiArICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMVxdfSBl eHAge1xbMVxdfSBudW1jaGlsZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0KQEAgLTI2NjAzLDcg KzI3ODIwLDcgQEAgaW5kZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2NDQKICAKICBtaV9nZGJfdGVz dCAiLXZhci1zZXQtdmlzdWFsaXplciBjb250YWluZXIgTm9uZSIgXAogICAgIlxcXmRvbmUiIFwK LUBAIC03OCwxOSArMTA4LDg4IEBAIG1pX2dkYl90ZXN0ICItdmFyLXNldC12aXN1YWxpemVyIGNv bnRhaW5lciBnZGIuZGVmYXVsdF92aXN1YWxpemVyIiBcCitAQCAtNzgsMTkgKzEwOCwxMTEgQEAg bWlfZ2RiX3Rlc3QgIi12YXItc2V0LXZpc3VhbGl6ZXIgY29udGFpbmVyIGdkYi5kZWZhdWx0X3Zp c3VhbGl6ZXIiIFwKICAgICJcXF5kb25lIiBcCiAgICAiY2hvb3NlIGRlZmF1bHQgdmlzdWFsaXpl ciIKICAKQEAgLTI2NjEyLDcgKzI3ODI5LDcgQEAgaW5kZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2 NDQKIC0gICAgeyB7Y29udGFpbmVyLlxbMVxdfSB7XFsxXF19IDAgaW50IH0KIC19ICJ2YXJvYmog dXBkYXRlIGFmdGVyIGNob29zaW5nIGRlZmF1bHQiCiArbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWlj IGNvbnRhaW5lciAidmFyb2JqIHVwZGF0ZSBhZnRlciBjaG9vc2luZyBkZWZhdWx0IiB7Ci0rICAg IHR5cGVfY2hhbmdlZCBmYWxzZSBuZXdfbnVtX2NoaWxkcmVuIDIgaGFzX21vcmUgMAorKyAgICB0 eXBlX2NoYW5nZWQgZmFsc2UgbmV3X251bV9jaGlsZHJlbiAyIGR5bmFtaWMgMSBoYXNfbW9yZSAw CiArfSB7CiArfSB7CiArICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMFxdfSBleHAge1xbMFxdfSBu dW1jaGlsZCAwIHR5cGUgaW50IHRocmVhZC1pZCAxIH0KQEAgLTI2NjI2LDcgKzI3ODQzLDcgQEAg aW5kZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2NDQKIC1taV92YXJvYmpfdXBkYXRlX2R5bmFtaWMg Y29udGFpbmVyIHsKICttaV92YXJvYmpfdXBkYXRlX2R5bmFtaWMgY29udGFpbmVyIFwKICsgICJ2 YXJvYmogdXBkYXRlIGFmdGVyIGNob29zaW5nIHZpYSBleHByZXNzaW9uIiB7Ci0rICAgICAgdHlw ZV9jaGFuZ2VkIGZhbHNlIG5ld19udW1fY2hpbGRyZW4gMiBoYXNfbW9yZSAwCisrICAgICAgdHlw ZV9jaGFuZ2VkIGZhbHNlIG5ld19udW1fY2hpbGRyZW4gMiBkeW5hbWljIDEgaGFzX21vcmUgMAog KyAgfSB7CiArICB9IHsKICsgICAgICB7IG5hbWUge2NvbnRhaW5lci5cWzBcXX0gZXhwIHtcWzBc XX0gbnVtY2hpbGQgMCB0eXBlIGludCB0aHJlYWQtaWQgMSB9CkBAIC0yNjYzOCw5ICsyNzg1NSw4 IEBAIGluZGV4IDMyNTg4MTAuLjc3OTE3NzUgMTAwNjQ0CiArfSAibGlzdCB2YXJvYmogY2hpbGRy ZW4gYWZ0ZXIgc2VsZWN0aW5nIGNoaWxkIHJhbmdlIgogKwogK21pX2xpc3RfdmFyb2JqX2NoaWxk cmVuX3JhbmdlIGNvbnRhaW5lciAtMSAtMSAyIHsKLSAgICAgeyB7Y29udGFpbmVyLlxbMFxdfSB7 XFswXF19IDAgaW50IH0KLSAgICAgeyB7Y29udGFpbmVyLlxbMVxdfSB7XFsxXF19IDAgaW50IH0K LS19ICJ2YXJvYmogdXBkYXRlIGFmdGVyIGNob29zaW5nIHZpYSBleHByZXNzaW9uIgorKyAgICB7 IHtjb250YWluZXIuXFswXF19IHtcWzBcXX0gMCBpbnQgfQorKyAgICB7IHtjb250YWluZXIuXFsx XF19IHtcWzFcXX0gMCBpbnQgfQogK30gImxpc3QgdmFyb2JqIGNoaWxkcmVuIGFmdGVyIHJlc2V0 dGluZyBjaGlsZCByYW5nZSIKICsKICttaV9uZXh0ICJuZXh0IG92ZXIgdXBkYXRlIDMiCkBAIC0y NjY1MSwxMiArMjc4NjcsMTMgQEAgaW5kZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2NDQKICsKICsj IFRoaXMgc2hvdWxkIHRydW5jYXRlIHRoZSBsaXN0LgogK21pX2xpc3RfdmFyb2JqX2NoaWxkcmVu IGNvbnRhaW5lciB7Ci0rICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGludCB9Cisg ICAgIHsge2NvbnRhaW5lci5cWzBcXX0ge1xbMFxdfSAwIGludCB9CiArfSAibGlzdCBjaGlsZHJl biBhZnRlciBzZXR0aW5nIHVwZGF0ZSByYW5nZSIKICsKICsjIFRoaXMgc2hvdWxkIHJldHVybiBq dXN0IHRoZSBpdGVtcyBpbiBbMSwyKS4KICttaV9saXN0X3Zhcm9ial9jaGlsZHJlbl9yYW5nZSBj b250YWluZXIgMSAyIDIgewotKyAgICB7IHtjb250YWluZXIuXFsxXF19IHtcWzFcXX0gMCBpbnQg fQorICAgICB7IHtjb250YWluZXIuXFsxXF19IHtcWzFcXX0gMCBpbnQgfQorLX0gInZhcm9iaiB1 cGRhdGUgYWZ0ZXIgY2hvb3NpbmcgdmlhIGV4cHJlc3Npb24iCiArfSAibGlzdCBzZWxlY3RlZCBj aGlsZHJlbiBhZnRlciBzZXR0aW5nIHJhbmdlIgogKwogKyMgVGhpcyBzaG91bGQgbm90IGJlIGFm ZmVjdGVkIGJ5IHRoZSBwcmV2aW91cyBsaXN0LWNoaWxkcmVuIHJlcXVlc3QuCkBAIC0yNjY4Mywy NSArMjc5MDAsNDggQEAgaW5kZXggMzI1ODgxMC4uNzc5MTc3NSAxMDA2NDQKICsjIHNob3VsZCBu b3QgYWN0dWFsbHkgc2VlIHRoZW0uCiArbWlfdmFyb2JqX3VwZGF0ZV9keW5hbWljIGNvbnRhaW5l cjIgXAogKyAgICAidXBkYXRlIHZhcm9iaiAyLCBubyBjaGlsZHJlbiByZXF1ZXN0ZWQiIHsKLSsJ dHlwZV9jaGFuZ2VkIGZhbHNlIGhhc19tb3JlIDEKKysJdHlwZV9jaGFuZ2VkIGZhbHNlIGR5bmFt aWMgMSBoYXNfbW9yZSAxCiArICAgIH0ge30ge30KICsKICsjIFRoaXMgc2hvdWxkIG9ubHkgc2hv dyB0aGUgZmlyc3QgY2hpbGQsIGJlY2F1c2UgdGhlIHVwZGF0ZSByYW5nZSBoYXMKICsjIGJlZW4g c2V0LgogK21pX3Zhcm9ial91cGRhdGVfZHluYW1pYyBjb250YWluZXIgXAogKyAgInVwZGF0ZSBh ZnRlciBuZXh0IHdpdGggcmVzdHJpY3RlZCByYW5nZSIgewotKyAgICAgIHR5cGVfY2hhbmdlZCBm YWxzZSBuZXdfbnVtX2NoaWxkcmVuIDEgaGFzX21vcmUgMQorKyAgICAgIHR5cGVfY2hhbmdlZCBm YWxzZSBuZXdfbnVtX2NoaWxkcmVuIDEgZHluYW1pYyAxIGhhc19tb3JlIDEKICsgIH0gewotKyAg ICAgIHsgbmFtZSB7Y29udGFpbmVyLlxbMFxdfSBpbl9zY29wZSB0cnVlIHR5cGVfY2hhbmdlZCBm YWxzZSBoYXNfbW9yZSAwIH0KKysgICAgICB7IG5hbWUge2NvbnRhaW5lci5cWzBcXX0gaW5fc2Nv cGUgdHJ1ZSB0eXBlX2NoYW5nZWQgZmFsc2UgZHluYW1pYyAxIGhhc19tb3JlIDAgfQogKyAgfSB7 CiArICB9CisrCisrbWlfY29udGludWVfdG9fbGluZSBcCisrICAgIFtnZGJfZ2V0X2xpbmVfbnVt YmVyIHtNSSBvdXRlciBicmVha3BvaW50IGhlcmV9ICR7dGVzdGZpbGV9LmNdIFwKKysgICAgInN0 ZXAgdG8gb3V0ZXIgYnJlYWtwb2ludCIKKysKKyttaV9jcmVhdGVfZHluYW1pY192YXJvYmogb3V0 ZXIgb3V0ZXIgXAorKyAgImNyZWF0ZSBvdXRlciB2YXJvYmoiCisrCisrbWlfbGlzdF92YXJvYmpf Y2hpbGRyZW4gb3V0ZXIgeworKyAgeyBvdXRlci5zIHMgMiAic3RydWN0IHN1YnN0cnVjdCIgfQor KyAgeyBvdXRlci54IHggMCAiaW50IiB9CisrfSAibGlzdCBjaGlsZHJlbiBvZiBvdXRlciIKKysK KyttaV9saXN0X3Zhcm9ial9jaGlsZHJlbiBvdXRlci5zIHsKKysgIHsgb3V0ZXIucy5hIGEgMCBp bnQgfQorKyAgeyBvdXRlci5zLmIgYiAwIGludCB9CisrfSAibGlzdCBjaGlsZHJlbiBvZiBvdXRl ci5zIgorKworK21pX25leHQgIm5leHQgb3ZlciBvdXRlciB1cGRhdGUiCisrCisrbWlfZ2RiX3Rl c3QgIi12YXItdXBkYXRlIG91dGVyIiBcCisrICAiLmRvbmUsY2hhbmdlbGlzdD0ue25hbWU9XCJv dXRlci5zLmFcIixpbl9zY29wZT1cInRydWVcIix0eXBlX2NoYW5nZWQ9XCJmYWxzZVwiLGR5bmFt aWM9XCIxXCIsaGFzX21vcmU9XCIwXCJ9LiIgXAorKyAgInVwZGF0ZSBhZnRlciB1cGRhdGluZyBl bGVtZW50IG9mIG91dGVyIgogIAogIG1pX2NvbnRpbnVlX3RvX2xpbmUgXAogICAgICBbZ2RiX2dl dF9saW5lX251bWJlciB7QW5vdGhlciBNSSBicmVha3BvaW50fSAke3Rlc3RmaWxlfS5jXSBcCi1k aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5j IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5jCi1pbmRleCAz Y2FmYzQ4Li5hZGY2NmI1IDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 dGhvbi1wcmV0dHlwcmludC5jCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9u LXByZXR0eXByaW50LmMKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt cHJldHR5cHJpbnQuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5j CitpbmRleCAzY2FmYzQ4Li5iZjQxZWJjIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LXByZXR0eXByaW50LmMKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS1wcmV0dHlwcmludC5jCiBAQCAtMTUsNiArMTUsOCBAQAogICAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICAgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLwpAQCAtMjY3MTEsNyArMjc5NTEsMzcgQEAgaW5kZXggM2NhZmM0OC4uYWRm NjZiNSAxMDA2NDQKICBzdHJ1Y3QgcwogIHsKICAgIGludCBhOwotQEAgLTE0OCw2ICsxNTAsMTQg QEAgdm9pZCBkb19ub3RoaW5nKHZvaWQpCitAQCAtODAsNiArODIsMjkgQEAgY2xhc3MgRGVyaXZl ZCA6IHB1YmxpYyBWYmFzZTEsIHB1YmxpYyBWYmFzZTIsIHB1YmxpYyBWYmFzZTMKKyAKKyAjZW5k aWYKKyAKKytzdHJ1Y3Qgc3Vic3RydWN0IHsKKysgIGludCBhOworKyAgaW50IGI7CisrfTsKKysK KytzdHJ1Y3Qgb3V0ZXJzdHJ1Y3QgeworKyAgc3RydWN0IHN1YnN0cnVjdCBzOworKyAgaW50IHg7 CisrfTsKKysKKytzdHJ1Y3Qgb3V0ZXJzdHJ1Y3QKKytzdWJzdHJ1Y3RfdGVzdCAodm9pZCkKKyt7 CisrICBzdHJ1Y3Qgb3V0ZXJzdHJ1Y3Qgb3V0ZXI7CisrICBvdXRlci5zLmEgPSAwOworKyAgb3V0 ZXIucy5iID0gMDsKKysgIG91dGVyLnggPSAwOworKworKyAgb3V0ZXIucy5hID0gMzsJCS8qIE1J IG91dGVyIGJyZWFrcG9pbnQgaGVyZSAqLworKworKyAgcmV0dXJuIG91dGVyOyAgCisrfQorKwor IHR5cGVkZWYgc3RydWN0IHN0cmluZ19yZXByCisgeworICAgc3RydWN0IHdoeWJvdGhlcgorQEAg LTE0OCw2ICsxNzMsMTQgQEAgdm9pZCBkb19ub3RoaW5nKHZvaWQpCiAgICBjID0gMjM7CQkJLyog QW5vdGhlciBNSSBicmVha3BvaW50ICovCiAgfQogIApAQCAtMjY3MjYsNyArMjc5OTYsNyBAQCBp bmRleCAzY2FmYzQ4Li5hZGY2NmI1IDEwMDY0NAogIGludAogIG1haW4gKCkKICB7Ci1AQCAtMTU1 LDExICsxNjUsMTUgQEAgbWFpbiAoKQorQEAgLTE1NSwxMSArMTg4LDE1IEBAIG1haW4gKCkKICAg IHN0cnVjdCBzcyAgc3NhWzJdOwogICAgc3RyaW5nIHggPSBtYWtlX3N0cmluZyAoInRoaXMgaXMg eCIpOwogICAgenp6X3R5cGUgYyA9IG1ha2VfY29udGFpbmVyICgiY29udGFpbmVyIik7CkBAIC0y Njc0Miw3ICsyODAxMiw3IEBAIGluZGV4IDNjYWZjNDguLmFkZjY2YjUgMTAwNjQ0CiAgCiAgICBz dHJ1Y3QgbnMgIG5zOwogICAgbnMubnVsbF9zdHIgPSAiZW1iZWRkZWRcMG51bGxcMHN0cmluZyI7 Ci1AQCAtMTkzLDYgKzIwNywxMSBAQCBtYWluICgpCitAQCAtMTkzLDYgKzIzMCwxMyBAQCBtYWlu ICgpCiAgICBhZGRfaXRlbSAoJmMsIDcyKTsKICAKICAjaWZkZWYgTUkKQEAgLTI2NzUxLDEzICsy ODAyMSwxNSBAQCBpbmRleCAzY2FmYzQ4Li5hZGY2NmI1IDEwMDY0NAogKwogKyAgYWRkX2l0ZW0g KCZjMiwgMjIyMik7CiArICBhZGRfaXRlbSAoJmMyLCAzMzMzKTsKKysKKysgIHN1YnN0cnVjdF90 ZXN0ICgpOwogICAgZG9fbm90aGluZyAoKTsKICAjZW5kaWYKICAKLWRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLXByZXR0eXByaW50LmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weXRob24tcHJldHR5cHJpbnQuZXhwCi1pbmRleCAwMWQ0YTA2Li5iMmRj ODVkIDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlw cmludC5leHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tcHJldHR5cHJp bnQuZXhwCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXBy aW50LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAKK2lu ZGV4IGQyZGI1YmMuLjI4N2E1ZDMgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktcHJldHR5cHJpbnQuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt cHJldHR5cHJpbnQuZXhwCiBAQCAtMjcsMTIgKzI3LDkgQEAgc2V0IGJpbmZpbGUgJHtvYmpkaXJ9 LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQogICMgU3RhcnQgd2l0aCBhIGZyZXNoIGdkYi4KICBnZGJf ZXhpdApAQCAtMjY3ODMsMTAgKzI4MDU1LDEwIEBAIGluZGV4IDAxZDRhMDYuLmIyZGM4NWQgMTAw NjQ0CiAgICAgIGdkYl90ZXN0ICJjb250aW51ZSIgIlByb2dyYW0gZXhpdGVkIG5vcm1hbGx5XC4i CiAgfQogIAotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tcHJl dHR5cHJpbnQucHkgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLXByZXR0eXByaW50 LnB5Ci1pbmRleCBiZjAwOWExLi5jM2UwZGM0IDEwMDY0NAotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIucHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5weQotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5dGhvbi1wcmV0dHlwcmludC5weQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weSBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS1wcmV0dHlwcmludC5weQoraW5kZXggYmYwMDlhMS4uMmYwNzBkOCAxMDA2NDQKKy0tLSBhL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQorKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LnB5CiBAQCAtOTIsNiArOTIsMTMgQEAgY2xh c3MgcHBfdmJhc2UxOgogICAgICBkZWYgdG9fc3RyaW5nIChzZWxmKToKICAgICAgICAgIHJldHVy biAicHAgY2xhc3MgbmFtZTogIiArIHNlbGYudmFsLnR5cGUudGFnCkBAIC0yNjgwMSw3ICsyODA3 MywyNCBAQCBpbmRleCBiZjAwOWExLi5jM2UwZGM0IDEwMDY0NAogIGNsYXNzIHBwX25zOgogICAg ICAiUHJpbnQgYSBzdGQ6OmJhc2ljX3N0cmluZyBvZiBzb21lIGtpbmQiCiAgCi1AQCAtMTA5LDcg KzExNiw3IEBAIGRlZiBsb29rdXBfZnVuY3Rpb24gKHZhbCk6CitAQCAtMTA1LDExICsxMTIsMjQg QEAgY2xhc3MgcHBfbnM6CisgICAgIGRlZiBkaXNwbGF5X2hpbnQgKHNlbGYpOgorICAgICAgICAg cmV0dXJuICdzdHJpbmcnCisgCisrY2xhc3MgcHBfb3V0ZXI6CisrICAgICJQcmludCBzdHJ1Y3Qg b3V0ZXIiCisrCisrICAgIGRlZiBfX2luaXRfXyAoc2VsZiwgdmFsKToKKysgICAgICAgIHNlbGYu dmFsID0gdmFsCisrCisrICAgIGRlZiB0b19zdHJpbmcgKHNlbGYpOgorKyAgICAgICAgcmV0dXJu ICJ4ID0gJXMiICUgc2VsZi52YWxbJ3gnXQorKworKyAgICBkZWYgY2hpbGRyZW4gKHNlbGYpOgor KyAgICAgICAgeWllbGQgJ3MnLCBzZWxmLnZhbFsncyddCisrICAgICAgICB5aWVsZCAneCcsIHNl bGYudmFsWyd4J10KKysKKyBkZWYgbG9va3VwX2Z1bmN0aW9uICh2YWwpOgogICAgICAiTG9vay11 cCBhbmQgcmV0dXJuIGEgcHJldHR5LXByaW50ZXIgdGhhdCBjYW4gcHJpbnQgdmFsLiIKICAKICAg ICAgIyBHZXQgdGhlIHR5cGUuCkBAIC0yNjgxMCw3ICsyODA5OSw3IEBAIGluZGV4IGJmMDA5YTEu LmMzZTBkYzQgMTAwNjQ0CiAgCiAgICAgICMgSWYgaXQgcG9pbnRzIHRvIGEgcmVmZXJlbmNlLCBn ZXQgdGhlIHJlZmVyZW5jZS4KICAgICAgaWYgdHlwZS5jb2RlID09IGdkYi5UWVBFX0NPREVfUkVG OgotQEAgLTE0OCw2ICsxNTUsOSBAQCBkZWYgcmVnaXN0ZXJfcHJldHR5X3ByaW50ZXJzICgpOgor QEAgLTE0OCw2ICsxNjgsOSBAQCBkZWYgcmVnaXN0ZXJfcHJldHR5X3ByaW50ZXJzICgpOgogICAg ICAKICAgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15WaXJ0dWFsVGVzdCQn KV0gPSAgcHBfbXVsdGlwbGVfdmlydHVhbAogICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5j b21waWxlICgnXlZiYXNlMSQnKV0gPSAgcHBfdmJhc2UxCkBAIC0yNjgyMCwxMCArMjgxMDksMjEg QEAgaW5kZXggYmYwMDlhMS4uYzNlMGRjNCAxMDA2NDQKICAgICAgCiAgICAgICMgTm90ZSB0aGF0 IHdlIHB1cnBvc2VseSBvbWl0IHRoZSB0eXBlZGVmIG5hbWVzIGhlcmUuCiAgICAgICMgUHJpbnRl ciBsb29rdXAgaXMgYmFzZWQgb24gY2Fub25pY2FsIG5hbWUuCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi10ZW1wbGF0ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHl0aG9uLXRlbXBsYXRlLmV4cAotaW5kZXggMWFjZTVkNi4uYjgwZjU2ZSAxMDA2 NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weXRob24tdGVtcGxhdGUuZXhwCi0r KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLXRlbXBsYXRlLmV4cAorQEAgLTE2 MCw2ICsxODMsMTAgQEAgZGVmIHJlZ2lzdGVyX3ByZXR0eV9wcmludGVycyAoKToKKyAgICAgCisg ICAgIHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUgKCdec3RydWN0IG5zJCcpXSAgPSBw cF9ucworICAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlICgnXm5zJCcpXSAgPSBw cF9ucworKworKyAgICBwcmV0dHlfcHJpbnRlcnNfZGljdFtyZS5jb21waWxlICgnXnN0cnVjdCBv dXRlcnN0cnVjdCQnKV0gID0gcHBfb3V0ZXIKKysgICAgcHJldHR5X3ByaW50ZXJzX2RpY3RbcmUu Y29tcGlsZSAoJ15vdXRlcnN0cnVjdCQnKV0gID0gcHBfb3V0ZXIKKysKKyBwcmV0dHlfcHJpbnRl cnNfZGljdCA9IHt9CisgCisgcmVnaXN0ZXJfcHJldHR5X3ByaW50ZXJzICgpCitkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXRlbXBsYXRlLmV4cCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS10ZW1wbGF0ZS5leHAKK2luZGV4IGNlYTZhZTAuLmM5YTYzZDQgMTAw NjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdGVtcGxhdGUuZXhwCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdGVtcGxhdGUuZXhwCiBAQCAtMjAsNiArMjAs MTcgQEAgaWYgJHRyYWNlbGV2ZWwgdGhlbiB7CiAgICAgIHN0cmFjZSAkdHJhY2VsZXZlbAogIH0K QEAgLTI2ODM5LDcgKzI4MTM5LDcgQEAgaW5kZXggMWFjZTVkNi4uYjgwZjU2ZSAxMDA2NDQKICsg IHJldHVybiAtMQogK30KICsKLSBzZXQgdGVzdGZpbGUgInB5dGhvbi10ZW1wbGF0ZSIKKyBzZXQg dGVzdGZpbGUgInB5LXRlbXBsYXRlIgogIHNldCBzcmNmaWxlICR7dGVzdGZpbGV9LmNjCiAgc2V0 IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQogQEAgLTI5LDIwICs0MCw2 IEBAIGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIk e2JpbmZpbGV9IiBleGVjdXRhYmxlIFwKQEAgLTI2ODYzLDU1ICsyODE2MywxMSBAQCBpbmRleCAx YWNlNWQ2Li5iODBmNTZlIDEwMDY0NAogIHByb2MgdGVzdF90ZW1wbGF0ZV9hcmcge3R5cGV9IHsK ICAgICAgZ2xvYmFsIHRlc3RmaWxlIHNyY2RpciBzdWJkaXIgc3JjZmlsZSBiaW5maWxlCiAgICAg IGlmIHsgW2dkYl9jb21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0iICIke2Jp bmZpbGV9IiBcCi1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5dGhvbi12 YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9uLXZhbHVlLmV4cAotaW5k ZXggMTljYWJlYi4uY2NmNDM4ZiAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weXRob24tdmFsdWUuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHl0aG9u LXZhbHVlLmV4cAotQEAgLTIwLDQzICsyMCw2IEBAIGlmICR0cmFjZWxldmVsIHRoZW4gewotICAg ICBzdHJhY2UgJHRyYWNlbGV2ZWwKLSB9Ci0gCi0tc2V0IHRlc3RmaWxlICJweXRob24tdmFsdWUi Ci0tc2V0IHNyY2ZpbGUgJHt0ZXN0ZmlsZX0uYwotLXNldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1 YmRpcn0vJHt0ZXN0ZmlsZX0KLS1pZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGly fS8ke3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSB7ZGVidWd9XSAhPSAiIiB9IHsK LS0gICAgdW50ZXN0ZWQgIkNvdWxkbid0IGNvbXBpbGUgJHtzcmNmaWxlfSIKLS0gICAgcmV0dXJu IC0xCi0tfQotLQotLSMgVXNhZ2U6IGdkYl9weV90ZXN0X211bHRpcGxlIE5BTUUgSU5QVVQgUkVT VUxUIHtJTlBVVCBSRVNVTFR9Li4uCi0tIyBSdW4gYSB0ZXN0IG5hbWVkIE5BTUUsIGNvbnNpc3Rp bmcgb2YgbXVsdGlwbGUgbGluZXMgb2YgaW5wdXQuCi0tIyBBZnRlciBlYWNoIGlucHV0IGxpbmUg SU5QVVQsIHNlYXJjaCBmb3IgcmVzdWx0IGxpbmUgUkVTVUxULgotLSMgU3VjY2VlZCBpZiBhbGwg cmVzdWx0cyBhcmUgc2VlbjsgZmFpbCBvdGhlcndpc2UuCi0tcHJvYyBnZGJfcHlfdGVzdF9tdWx0 aXBsZSB7bmFtZSBhcmdzfSB7Ci0tICAgIGdsb2JhbCBnZGJfcHJvbXB0Ci0tICAgIGZvcmVhY2gg e2lucHV0IHJlc3VsdH0gJGFyZ3MgewotLQlpZiB7W2dkYl90ZXN0X211bHRpcGxlICRpbnB1dCAi JG5hbWUgLSAkaW5wdXQiIHsKLS0JICAgIC1yZSAiXFtcclxuXF0qKCRyZXN1bHQpXFtcclxuXF0r KCRnZGJfcHJvbXB0IHwgKj4pJCIgewotLQkJcGFzcyAiJG5hbWUgLSAkaW5wdXQiCi0tCSAgICB9 Ci0tCX1dfSB7Ci0tCSAgICByZXR1cm4gMQotLQl9Ci0tICAgIH0KLS0gICAgcmV0dXJuIDAKLS19 Ci0tCi0tIyBSdW4gYSBjb21tYW5kIGluIEdEQiwgYW5kIHJlcG9ydCBhIGZhaWx1cmUgaWYgYSBQ eXRob24gZXhjZXB0aW9uIGlzIHRocm93bi4KLS0jIElmIHJlcG9ydF9wYXNzIGlzIHRydWUsIHJl cG9ydCBhIHBhc3MgaWYgbm8gZXhjZXB0aW9uIGlzIHRocm93bi4KLS1wcm9jIGdkYl9weV90ZXN0 X3NpbGVudF9jbWQge2NtZCBuYW1lIHJlcG9ydF9wYXNzfSB7Ci0tICBnbG9iYWwgZ2RiX3Byb21w dAotLQotLSAgZ2RiX3Rlc3RfbXVsdGlwbGUgJGNtZCAkbmFtZSB7Ci0tICAgICAgLXJlICJUcmFj ZWJhY2suKiRnZGJfcHJvbXB0ICQiICB7IGZhaWwgJG5hbWUgfQotLSAgICAgIC1yZSAiJGdkYl9w cm9tcHQgJCIJICAgICAgeyBpZiAkcmVwb3J0X3Bhc3MgeyBwYXNzICRuYW1lIH0gfQotLSAgfQot LX0KLS0KLSBwcm9jIHRlc3RfdmFsdWVfY3JlYXRpb24ge30gewotICAgZ2xvYmFsIGdkYl9wcm9t cHQKLSAKLUBAIC0yOTIsMjEgKzI1NSwzNyBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgg e30geworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCitpbmRleCA5YjQxOTBkLi45 M2NkZGM3IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4 cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAorQEAgLTI5Miwy MSArMjkyLDM3IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7CiAgICAgICJwcmlu dCB2YWx1ZSdzIHR5cGUiCiAgfQogIApAQCAtMjY5NDIsNyArMjgxOTgsNyBAQCBpbmRleCAxOWNh YmViLi5jY2Y0MzhmIDEwMDY0NAogKyAgcmV0dXJuIC0xCiAgfQogIAotK3NldCB0ZXN0ZmlsZSAi cHl0aG9uLXZhbHVlIgorK3NldCB0ZXN0ZmlsZSAicHktdmFsdWUiCiArc2V0IHNyY2ZpbGUgJHt0 ZXN0ZmlsZX0uYwogK3NldCBiaW5maWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0K ICsKQEAgLTI2OTU2LDcgKzI4MjEyLDcgQEAgaW5kZXggMTljYWJlYi4uY2NmNDM4ZiAxMDA2NDQK ICB0ZXN0X3ZhbHVlX2NyZWF0aW9uCiAgdGVzdF92YWx1ZV9udW1lcmljX29wcwogIHRlc3RfdmFs dWVfYm9vbGVhbgotQEAgLTMyMiwzICszMDEsNCBAQCBpZiAhW3J1bnRvX21haW5dIHRoZW4gewor QEAgLTMyMiwzICszMzgsNCBAQCBpZiAhW3J1bnRvX21haW5dIHRoZW4gewogIAogIHRlc3RfdmFs dWVfaW5faW5mZXJpb3IKICB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoCkBAIC0yODMxOCwxNyArMjk1 NzQsMTcgQEAgaW5kZXggYTdhYzNjOC4uODE1YzgyZCAxMDA2NDQKICB9CiAgCiBkaWZmIC0tZ2l0 IGEvZ2RiL3RvcC5jIGIvZ2RiL3RvcC5jCi1pbmRleCBjYjUxZTA4Li5iMTI2YThhIDEwMDY0NAor aW5kZXggMWI0YWE5ZC4uM2NmZTU3ZSAxMDA2NDQKIC0tLSBhL2dkYi90b3AuYwogKysrIGIvZ2Ri L3RvcC5jCi1AQCAtMzc4LDYgKzM3OCw3IEBAIGV4ZWN1dGVfY29tbWFuZCAoY2hhciAqcCwgaW50 IGZyb21fdHR5KQotICAgICB9Ci0gICAKK0BAIC0zNDksNiArMzQ5LDcgQEAgdm9pZAorIHByZXBh cmVfZXhlY3V0ZV9jb21tYW5kICh2b2lkKQorIHsKICAgIGZyZWVfYWxsX3ZhbHVlcyAoKTsKICsg IGZyZWVfYWxsX3R5cGVzICgpOwogIAotICAgLyogRm9yY2UgY2xlYW51cCBvZiBhbnkgYWxsb2Nh IGFyZWFzIGlmIHVzaW5nIEMgYWxsb2NhIGluc3RlYWQgb2YKLSAgICAgIGEgYnVpbHRpbiBhbGxv Y2EuICAqLworICAgLyogV2l0aCBtdWx0aXBsZSB0aHJlYWRzIHJ1bm5pbmcgd2hpbGUgdGhlIG9u ZSB3ZSdyZSBleGFtaW5pbmcgaXMgc3RvcHBlZCwKKyAgICAgIHRoZSBkY2FjaGUgY2FuIGdldCBz dGFsZSB3aXRob3V0IHVzIGJlaW5nIGFibGUgdG8gZGV0ZWN0IGl0LgogZGlmZiAtLWdpdCBhL2dk Yi90eXBlcHJpbnQuYyBiL2dkYi90eXBlcHJpbnQuYwogaW5kZXggZjA5MDIzMS4uZmMxNWVjMSAx MDA2NDQKIC0tLSBhL2dkYi90eXBlcHJpbnQuYwpAQCAtMjg1OTAsNyArMjk4NDYsNyBAQCBpbmRl eCBhOWM4NzVkLi4xMmY2ZjA3IDEwMDY0NAogIH0KICAKIGRpZmYgLS1naXQgYS9nZGIvdmFsb3Bz LmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IDVlNWM0ZWQuLjdhZWRiZmQgMTAwNjQ0CitpbmRleCBi NjRjYjIxLi5iN2QzMWNjIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbG9wcy5jCiArKysgYi9nZGIvdmFs b3BzLmMKIEBAIC0zOCw2ICszOCw3IEBACkBAIC0yODY3MiwzNCArMjk5MjgsMzkgQEAgaW5kZXgg NWU1YzRlZC4uN2FlZGJmZCAxMDA2NDQKICsgIHJldHVybiAxOwogK30KICsKLSAvKiBSZXR1cm4g YSB2YWx1ZSB3aXRoIHR5cGUgVFlQRSBsb2NhdGVkIGF0IEFERFIuCisgLyogSGVscGVyIGZ1bmN0 aW9uIGZvciB2YWx1ZV9hdCwgdmFsdWVfYXRfbGF6eSwgYW5kIHZhbHVlX2F0X2xhenlfc3RhY2su ICAqLwogIAotICAgIENhbGwgdmFsdWVfYXQgb25seSBpZiB0aGUgZGF0YSBuZWVkcyB0byBiZSBm ZXRjaGVkIGltbWVkaWF0ZWx5OwotQEAgLTY1MiwxMSArNzA5LDE5IEBAIHZhbHVlX2ZldGNoX2xh enkgKHN0cnVjdCB2YWx1ZSAqdmFsKQorIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgorQEAgLTY1Niwx NSArNzEzLDIxIEBAIHZhbHVlX2ZldGNoX2xhenkgKHN0cnVjdCB2YWx1ZSAqdmFsKQogICAgICB9 CiAgICBlbHNlIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfbWVtb3J5KQogICAgICB7CiAt ICAgICAgQ09SRV9BRERSIGFkZHIgPSB2YWx1ZV9hZGRyZXNzICh2YWwpOwogLSAgICAgIGludCBs ZW5ndGggPSBUWVBFX0xFTkdUSCAoY2hlY2tfdHlwZWRlZiAodmFsdWVfZW5jbG9zaW5nX3R5cGUg KHZhbCkpKTsKICsgICAgICBDT1JFX0FERFIgYWRkciA9IHZhbHVlX3Jhd19hZGRyZXNzICh2YWwp OwotKworIAorLSAgICAgIGlmIChsZW5ndGgpCiArICAgICAgaWYgKG9iamVjdF9hZGRyZXNzX2dl dF9kYXRhICh2YWx1ZV90eXBlICh2YWwpLCAmYWRkcikpCi0rCXsKKyAJeworLQkgIGlmICh2YWx1 ZV9zdGFjayAodmFsKSkKKy0JICAgIHJlYWRfc3RhY2sgKGFkZHIsIHZhbHVlX2NvbnRlbnRzX2Fs bF9yYXcgKHZhbCksIGxlbmd0aCk7CistCSAgZWxzZQorLQkgICAgcmVhZF9tZW1vcnkgKGFkZHIs IHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcgKHZhbCksIGxlbmd0aCk7CiArCSAgc3RydWN0IHR5cGUg KnR5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsKTsKICsJICBpbnQgbGVuZ3RoID0gVFlQ RV9MRU5HVEggKGNoZWNrX3R5cGVkZWYgKHR5cGUpKTsKLSAKLS0gICAgICBpZiAobGVuZ3RoKQot LQlyZWFkX21lbW9yeSAoYWRkciwgdmFsdWVfY29udGVudHNfYWxsX3JhdyAodmFsKSwgbGVuZ3Ro KTsKKysKICsJICBpZiAobGVuZ3RoKQogKwkgICAgewogKwkgICAgICBhZGRyICs9IHZhbHVlX29m ZnNldCAodmFsKTsKLSsJICAgICAgcmVhZF9tZW1vcnkgKGFkZHIsIHZhbHVlX2NvbnRlbnRzX2Fs bF9yYXcgKHZhbCksIGxlbmd0aCk7CisrCSAgICAgIGlmICh2YWx1ZV9zdGFjayAodmFsKSkKKysJ CXJlYWRfc3RhY2sgKGFkZHIsIHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcgKHZhbCksIGxlbmd0aCk7 CisrCSAgICAgIGVsc2UKKysJCXJlYWRfbWVtb3J5IChhZGRyLCB2YWx1ZV9jb250ZW50c19hbGxf cmF3ICh2YWwpLCBsZW5ndGgpOwogKwkgICAgfQotKwl9CisgCX0KICAgICAgfQogICAgZWxzZSBp ZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX3JlZ2lzdGVyKQotICAgICB7Ci1AQCAtMTA2MSw3 ICsxMTI2LDE4IEBAIGFkZHJlc3Nfb2ZfdmFyaWFibGUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3Ry dWN0IGJsb2NrICpiKQorQEAgLTEwNzAsNyArMTEzMywxOCBAQCBhZGRyZXNzX29mX3ZhcmlhYmxl IChzdHJ1Y3Qgc3ltYm9sICp2YXIsIHN0cnVjdCBibG9jayAqYikKICAgIGlmICgoVkFMVUVfTFZB TCAodmFsKSA9PSBsdmFsX21lbW9yeSAmJiB2YWx1ZV9sYXp5ICh2YWwpKQogICAgICAgIHx8IFRZ UEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0ZVTkMpCiAgICAgIHsKQEAgLTI4NzE5LDcgKzI5 OTgwLDcgQEAgaW5kZXggNWU1YzRlZC4uN2FlZGJmZCAxMDA2NDQKICAgICAgICByZXR1cm4gdmFs dWVfZnJvbV9wb2ludGVyIChsb29rdXBfcG9pbnRlcl90eXBlICh0eXBlKSwgYWRkcik7CiAgICAg IH0KICAKLUBAIC0xMTY3LDYgKzEyNDMsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorQEAgLTExNzYsNiAr MTI1MCw3IEBAIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFs dWUgKmFyZzEpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlIChhcmcxKSk7CkBAIC0yODcyNyw3ICsyOTk4OCw3IEBAIGluZGV4IDVlNWM0ZWQuLjdh ZWRiZmQgMTAwNjQ0CiAgCiAgICAvKiBJZiB0aGUgdXNlciB0cmllcyB0byBkbyBzb21ldGhpbmcg cmVxdWlyaW5nIGEgcG9pbnRlciB3aXRoIGFuCiAgICAgICBhcnJheSB0aGF0IGhhcyBub3QgeWV0 IGJlZW4gcHVzaGVkIHRvIHRoZSB0YXJnZXQsIHRoZW4gdGhpcyB3b3VsZAotQEAgLTExNzYsOCAr MTI1MywxMiBAQCB2YWx1ZV9jb2VyY2VfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0x MTg1LDggKzEyNjAsMTIgQEAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyZzEp CiAgICBpZiAoVkFMVUVfTFZBTCAoYXJnMSkgIT0gbHZhbF9tZW1vcnkpCiAgICAgIGVycm9yIChf KCJBdHRlbXB0IHRvIHRha2UgYWRkcmVzcyBvZiB2YWx1ZSBub3QgbG9jYXRlZCBpbiBtZW1vcnku IikpOwogIApAQCAtMjg3NDEsNyArMzAwMDIsNyBAQCBpbmRleCA1ZTVjNGVkLi43YWVkYmZkIDEw MDY0NAogIH0KICAKICAvKiBHaXZlbiBhIHZhbHVlIHdoaWNoIGlzIGEgZnVuY3Rpb24sIHJldHVy biBhIHZhbHVlIHdoaWNoIGlzIGEgcG9pbnRlcgotQEAgLTIwNjAsMTIgKzIxNDEsMjUgQEAgZmlu ZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHR5cGUgKiphcmdfdHlwZXMsIGludCBuYXJncywKK0BA IC0yMDY5LDEyICsyMTQ4LDI1IEBAIGZpbmRfb3ZlcmxvYWRfbWF0Y2ggKHN0cnVjdCB0eXBlICoq YXJnX3R5cGVzLCBpbnQgbmFyZ3MsCiAgICBpZiAobWV0aG9kKQogICAgICB7CiAgICAgICAgZ2Ri X2Fzc2VydCAob2JqKTsKQEAgLTI4NzcyLDcgKzMwMDMzLDcgQEAgaW5kZXggNWU1YzRlZC4uN2Fl ZGJmZCAxMDA2NDQKICAKICAgICAgICBmbnNfcHRyID0gdmFsdWVfZmluZF9vbG9hZF9tZXRob2Rf bGlzdCAoJnRlbXAsIG5hbWUsIAogIAkJCQkJICAgICAgMCwgJm51bV9mbnMsIAotQEAgLTIwODUs MTYgKzIxNzksMjkgQEAgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHR5cGUgKiphcmdfdHlw ZXMsIGludCBuYXJncywKK0BAIC0yMDk0LDE2ICsyMTg2LDI5IEBAIGZpbmRfb3ZlcmxvYWRfbWF0 Y2ggKHN0cnVjdCB0eXBlICoqYXJnX3R5cGVzLCBpbnQgbmFyZ3MsCiAgICAgIH0KICAgIGVsc2UK ICAgICAgewpAQCAtMjg4MTAsNyArMzAwNzEsNyBAQCBpbmRleCA1ZTVjNGVkLi43YWVkYmZkIDEw MDY0NAogICAgICAgIGlmIChmdW5jX25hbWUgPT0gTlVMTCkKICAgICAgICAgIHsKICAJICAqc3lt cCA9IGZzeW07Ci1AQCAtMjUyNSw4ICsyNjMyLDggQEAgY2hlY2tfZmllbGQgKHN0cnVjdCB0eXBl ICp0eXBlLCBjb25zdCBjaGFyICpuYW1lKQorQEAgLTI1MzQsOCArMjYzOSw4IEBAIGNoZWNrX2Zp ZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSkKICAgICB0aGUgY29tbWVu dCBiZWZvcmUgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlLiAgKi8KICAKICBzdHJ1Y3Qg dmFsdWUgKgpAQCAtMjg4MjEsNyArMzAwODIsNyBAQCBpbmRleCA1ZTVjNGVkLi43YWVkYmZkIDEw MDY0NAogIAkJICAgICBlbnVtIG5vc2lkZSBub3NpZGUpCiAgewogICAgc3dpdGNoIChUWVBFX0NP REUgKGN1cnR5cGUpKQotQEAgLTI1MzQsNyArMjY0MSw3IEBAIHZhbHVlX2FnZ3JlZ2F0ZV9lbHQg KHN0cnVjdCB0eXBlICpjdXJ0eXBlLAorQEAgLTI1NDMsNyArMjY0OCw3IEBAIHZhbHVlX2FnZ3Jl Z2F0ZV9lbHQgKHN0cnVjdCB0eXBlICpjdXJ0eXBlLAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJV Q1Q6CiAgICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9OOgogICAgICAgIHJldHVybiB2YWx1ZV9zdHJ1 Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKGN1cnR5cGUsIDAsIGN1cnR5cGUsIApAQCAtMjg4MzAsNyAr MzAwOTEsNyBAQCBpbmRleCA1ZTVjNGVkLi43YWVkYmZkIDEwMDY0NAogIAkJCQkJICAgICB3YW50 X2FkZHJlc3MsIG5vc2lkZSk7CiAgICAgIGNhc2UgVFlQRV9DT0RFX05BTUVTUEFDRToKICAgICAg ICByZXR1cm4gdmFsdWVfbmFtZXNwYWNlX2VsdCAoY3VydHlwZSwgbmFtZSwgCi1AQCAtMjU0NSw2 ICsyNjUyLDU2IEBAIHZhbHVlX2FnZ3JlZ2F0ZV9lbHQgKHN0cnVjdCB0eXBlICpjdXJ0eXBlLAor QEAgLTI1NTQsNiArMjY1OSw1NiBAQCB2YWx1ZV9hZ2dyZWdhdGVfZWx0IChzdHJ1Y3QgdHlwZSAq Y3VydHlwZSwKICAgICAgfQogIH0KICAKQEAgLTI4ODg3LDcgKzMwMTQ4LDcgQEAgaW5kZXggNWU1 YzRlZC4uN2FlZGJmZCAxMDA2NDQKICAvKiBDKys6IEdpdmVuIGFuIGFnZ3JlZ2F0ZSB0eXBlIENV UlRZUEUsIGFuZCBhIG1lbWJlciBuYW1lIE5BTUUsCiAgICAgcmV0dXJuIHRoZSBhZGRyZXNzIG9m IHRoaXMgbWVtYmVyIGFzIGEgInBvaW50ZXIgdG8gbWVtYmVyIiB0eXBlLgogICAgIElmIElOVFlQ RSBpcyBub24tbnVsbCwgdGhlbiBpdCB3aWxsIGJlIHRoZSB0eXBlIG9mIHRoZSBtZW1iZXIgd2UK LUBAIC0yNjIyLDIzICsyNzc5LDQ2IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAo c3RydWN0IHR5cGUgKmRvbWFpbiwgaW50IG9mZnNldCwKK0BAIC0yNjMxLDIzICsyNzg2LDQ2IEBA IHZhbHVlX3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKmRvbWFpbiwgaW50 IG9mZnNldCwKICAJfQogICAgICAgIGlmICh0X2ZpZWxkX25hbWUgJiYgc3RyY21wICh0X2ZpZWxk X25hbWUsIG5hbWUpID09IDApCiAgCXsKQEAgLTI4OTQ0LDcgKzMwMjA1LDcgQEAgaW5kZXggNWU1 YzRlZC4uN2FlZGJmZCAxMDA2NDQKICAKICAJICBpZiAoVFlQRV9GTl9GSUVMRF9TVEFUSUNfUCAo ZiwgaikpCiAgCSAgICB7Ci1AQCAtMjc1Miw3ICsyOTMyLDcgQEAgdmFsdWVfbWF5YmVfbmFtZXNw YWNlX2VsdCAoY29uc3Qgc3RydWN0IHR5cGUgKmN1cnR5cGUsCitAQCAtMjc2MSw3ICsyOTM5LDcg QEAgdmFsdWVfbWF5YmVfbmFtZXNwYWNlX2VsdCAoY29uc3Qgc3RydWN0IHR5cGUgKmN1cnR5cGUs CiAgICBzdHJ1Y3Qgc3ltYm9sICpzeW07CiAgICBzdHJ1Y3QgdmFsdWUgKnJlc3VsdDsKICAKQEAg LTI4OTUzLDcgKzMwMjE0LDcgQEAgaW5kZXggNWU1YzRlZC4uN2FlZGJmZCAxMDA2NDQKICAJCQkJ ICAgIGdldF9zZWxlY3RlZF9ibG9jayAoMCksIAogIAkJCQkgICAgVkFSX0RPTUFJTik7CiAgCi1A QCAtMjg5Niw3ICszMDc2LDcgQEAgdmFsdWVfb2ZfbG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsIGlu dCBjb21wbGFpbikKK0BAIC0yOTA1LDcgKzMwODMsNyBAQCB2YWx1ZV9vZl9sb2NhbCAoY29uc3Qg Y2hhciAqbmFtZSwgaW50IGNvbXBsYWluKQogIAogICAgLyogQ2FsbGluZyBsb29rdXBfYmxvY2tf c3ltYm9sIGlzIG5lY2Vzc2FyeSB0byBnZXQgdGhlIExPQ19SRUdJU1RFUgogICAgICAgc3ltYm9s IGluc3RlYWQgb2YgdGhlIExPQ19BUkcgb25lIChpZiBib3RoIGV4aXN0KS4gICovCkBAIC0yODk2 Miw3ICszMDIyMyw3IEBAIGluZGV4IDVlNWM0ZWQuLjdhZWRiZmQgMTAwNjQ0CiAgICBpZiAoc3lt ID09IE5VTEwpCiAgICAgIHsKICAgICAgICBpZiAoY29tcGxhaW4pCi1AQCAtMjk1MCw4ICszMTMw LDYgQEAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50 IGxlbmd0aCkKK0BAIC0yOTU5LDggKzMxMzcsNiBAQCB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVl ICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoKQogICAgICAgIHx8IGxvd2JvdW5kICsg bGVuZ3RoIC0gMSA+IHVwcGVyYm91bmQpCiAgICAgIGVycm9yIChfKCJzbGljZSBvdXQgb2YgcmFu Z2UiKSk7CiAgCkBAIC0yOTAwMSw3ICszMDI2Miw3IEBAIGluZGV4IGNiYjVkOTQuLmY5NjM0ZWEg MTAwNjQ0CiAgCSAgKytyZXBzOwogIAkgICsrcmVwMTsKIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUu YyBiL2dkYi92YWx1ZS5jCi1pbmRleCA0OGZlZGZkLi41YzIwN2UzIDEwMDY0NAoraW5kZXggNTg5 ZTAzYi4uNjYwMTNiNyAxMDA2NDQKIC0tLSBhL2dkYi92YWx1ZS5jCiArKysgYi9nZGIvdmFsdWUu YwogQEAgLTM3LDggKzM3LDEwIEBACkBAIC0yOTAzMCw3ICszMDI5MSw3IEBAIGluZGV4IDQ4ZmVk ZmQuLjVjMjA3ZTMgMTAwNjQ0CiAgICAvKiBSZWdpc3RlciBudW1iZXIgaWYgdGhlIHZhbHVlIGlz IGZyb20gYSByZWdpc3Rlci4gICovCiAgICBzaG9ydCByZWdudW07CiAgCi1AQCAtMjU3LDcgKzI2 Nyw5IEBAIGFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTI2MSw3 ICsyNzEsOSBAQCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgIHZh bC0+bmV4dCA9IGFsbF92YWx1ZXM7CiAgICBhbGxfdmFsdWVzID0gdmFsOwogICAgdmFsLT50eXBl ID0gdHlwZTsKQEAgLTI5MDQwLDcgKzMwMzAxLDcgQEAgaW5kZXggNDhmZWRmZC4uNWMyMDdlMyAx MDA2NDQKICAgIFZBTFVFX0xWQUwgKHZhbCkgPSBub3RfbHZhbDsKICAgIHZhbC0+bG9jYXRpb24u YWRkcmVzcyA9IDA7CiAgICBWQUxVRV9GUkFNRV9JRCAodmFsKSA9IG51bGxfZnJhbWVfaWQ7Ci1A QCAtMzQyLDYgKzM1NCw4IEBAIHZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpCitAQCAt MzQ2LDYgKzM1OCw4IEBAIHZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpCiAgdm9pZAog IGRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCB0 eXBlICp0eXBlKQogIHsKQEAgLTI5MDQ5LDcgKzMwMzEwLDcgQEAgaW5kZXggNDhmZWRmZC4uNWMy MDdlMyAxMDA2NDQKICAgIHZhbHVlLT50eXBlID0gdHlwZTsKICB9CiAgCi1AQCAtNjA4LDYgKzYy Miw5IEBAIHZhbHVlX2ZyZWUgKHN0cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTYyNCw2ICs2MzgsOSBA QCB2YWx1ZV9mcmVlIChzdHJ1Y3QgdmFsdWUgKnZhbCkKICAgICAgICBpZiAodmFsLT5wYXJlbnQg IT0gTlVMTCkKICAJdmFsdWVfZnJlZSAodmFsLT5wYXJlbnQpOwogIApAQCAtMjkwNTksNyArMzAz MjAsNyBAQCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEwMDY0NAogICAgICAgIGlmIChWQUxVRV9M VkFMICh2YWwpID09IGx2YWxfY29tcHV0ZWQpCiAgCXsKICAJICBzdHJ1Y3QgbHZhbF9mdW5jcyAq ZnVuY3MgPSB2YWwtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzOwotQEAgLTcxMSw2ICs3MjgsOSBA QCB2YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKmFyZykKK0BAIC03MjgsNiArNzQ1LDkgQEAgdmFs dWVfY29weSAoc3RydWN0IHZhbHVlICphcmcpCiAgICAgIHZhbCA9IGFsbG9jYXRlX3ZhbHVlX2xh enkgKGVuY2xfdHlwZSk7CiAgICBlbHNlCiAgICAgIHZhbCA9IGFsbG9jYXRlX3ZhbHVlIChlbmNs X3R5cGUpOwpAQCAtMjkwNjksNyArMzAzMzAsNyBAQCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEw MDY0NAogICAgdmFsLT50eXBlID0gYXJnLT50eXBlOwogICAgVkFMVUVfTFZBTCAodmFsKSA9IFZB TFVFX0xWQUwgKGFyZyk7CiAgICB2YWwtPmxvY2F0aW9uID0gYXJnLT5sb2NhdGlvbjsKLUBAIC03 NDYsMTIgKzc2NiwxNSBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKmFyZykKK0BAIC03NjMs MTIgKzc4MywxNSBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKmFyZykKICB2b2lkCiAgc2V0 X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbHVlICpjb21wb25lbnQsIHN0cnVj dCB2YWx1ZSAqd2hvbGUpCiAgewpAQCAtMjkwODUsNyArMzAzNDYsNyBAQCBpbmRleCA0OGZlZGZk Li41YzIwN2UzIDEwMDY0NAogICAgaWYgKFZBTFVFX0xWQUwgKHdob2xlKSA9PSBsdmFsX2NvbXB1 dGVkKQogICAgICB7CiAgICAgICAgc3RydWN0IGx2YWxfZnVuY3MgKmZ1bmNzID0gd2hvbGUtPmxv Y2F0aW9uLmNvbXB1dGVkLmZ1bmNzOwotQEAgLTc1OSw2ICs3ODIsMTAgQEAgc2V0X3ZhbHVlX2Nv bXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbHVlICpjb21wb25lbnQsIHN0cnVjdCB2YWx1ZSAq d2hvbGUpCitAQCAtNzc2LDYgKzc5OSwxMCBAQCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9u IChzdHJ1Y3QgdmFsdWUgKmNvbXBvbmVudCwgc3RydWN0IHZhbHVlICp3aG9sZSkKICAgICAgICBp ZiAoZnVuY3MtPmNvcHlfY2xvc3VyZSkKICAgICAgICAgIGNvbXBvbmVudC0+bG9jYXRpb24uY29t cHV0ZWQuY2xvc3VyZSA9IGZ1bmNzLT5jb3B5X2Nsb3N1cmUgKHdob2xlKTsKICAgICAgfQpAQCAt MjkwOTYsNyArMzAzNTcsNyBAQCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEwMDY0NAogIH0KICAK ICAMCi1AQCAtODg5LDYgKzkxNiwyOSBAQCBzaG93X3ZhbHVlcyAoY2hhciAqbnVtX2V4cCwgaW50 IGZyb21fdHR5KQorQEAgLTkwNiw2ICs5MzMsMjkgQEAgc2hvd192YWx1ZXMgKGNoYXIgKm51bV9l eHAsIGludCBmcm9tX3R0eSkKICAgICAgICBudW1fZXhwWzFdID0gJ1wwJzsKICAgICAgfQogIH0K QEAgLTI5MTI2LDcgKzMwMzg3LDcgQEAgaW5kZXggNDhmZWRmZC4uNWMyMDdlMyAxMDA2NDQKICAM CiAgLyogSW50ZXJuYWwgdmFyaWFibGVzLiAgVGhlc2UgYXJlIHZhcmlhYmxlcyB3aXRoaW4gdGhl IGRlYnVnZ2VyCiAgICAgdGhhdCBob2xkIHZhbHVlcyBhc3NpZ25lZCBieSBkZWJ1Z2dlciBjb21t YW5kcy4KLUBAIC0xMzY0LDYgKzE0MTQsNDAgQEAgY2FsbF9pbnRlcm5hbF9mdW5jdGlvbiAoc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2gsCitAQCAtMTM4MSw2ICsxNDMxLDQwIEBAIGNhbGxfaW50ZXJu YWxfZnVuY3Rpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICAgcmV0dXJuICgqaWZuLT5o YW5kbGVyKSAoZ2RiYXJjaCwgbGFuZ3VhZ2UsIGlmbi0+Y29va2llLCBhcmdjLCBhcmd2KTsKICB9 CiAgCkBAIC0yOTE2Nyw3ICszMDQyOCw3IEBAIGluZGV4IDQ4ZmVkZmQuLjVjMjA3ZTMgMTAwNjQ0 CiAgLyogVGhlICdmdW5jdGlvbicgY29tbWFuZC4gIFRoaXMgZG9lcyBub3RoaW5nIC0tIGl0IGlz IGp1c3QgYQogICAgIHBsYWNlaG9sZGVyIHRvIGxldCAiaGVscCBmdW5jdGlvbiBOQU1FIiB3b3Jr LiAgVGhpcyBpcyBhbHNvIHVzZWQgYXMKICAgICB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIHN1 Yi1jb21tYW5kIHRoYXQgaXMgY3JlYXRlZCB3aGVuCi1AQCAtMTQxMSwxMSArMTQ5NSwxMCBAQCBw cmVzZXJ2ZV9vbmVfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLAorQEAgLTE0MjgsMTEgKzE1MTIsMTAgQEAgcHJlc2VydmVfb25lX3ZhbHVlIChzdHJ1 Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJCSAgICBodGFiX3Qg Y29waWVkX3R5cGVzKQogIHsKICAgIGlmIChUWVBFX09CSkZJTEUgKHZhbHVlLT50eXBlKSA9PSBv YmpmaWxlKQpAQCAtMjkxODEsNyArMzA0NDIsNyBAQCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEw MDY0NAogIAkJCQkJCSBjb3BpZWRfdHlwZXMpOwogIH0KICAKLUBAIC0xNDMwLDEzICsxNTEzLDEz IEBAIHByZXNlcnZlX29uZV9pbnRlcm5hbHZhciAoc3RydWN0IGludGVybmFsdmFyICp2YXIsIHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTE0NDcsMTMgKzE1MzAsMTMgQEAgcHJlc2VydmVf b25lX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgc3RydWN0IG9iamZpbGUg Km9iamZpbGUsCiAgICAgIGNhc2UgSU5URVJOQUxWQVJfSU5URUdFUjoKICAgICAgICBpZiAodmFy LT51LmludGVnZXIudHlwZSAmJiBUWVBFX09CSkZJTEUgKHZhci0+dS5pbnRlZ2VyLnR5cGUpID09 IG9iamZpbGUpCiAgCXZhci0+dS5pbnRlZ2VyLnR5cGUKQEAgLTI5MTk3LDcgKzMwNDU4LDcgQEAg aW5kZXggNDhmZWRmZC4uNWMyMDdlMyAxMDA2NDQKICAgICAgICBicmVhazsKICAKICAgICAgY2Fz ZSBJTlRFUk5BTFZBUl9WQUxVRToKLUBAIC0xODM4LDYgKzE5MjEsOCBAQCB2YWx1ZV9jaGFuZ2Vf ZW5jbG9zaW5nX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdHlwZSAqbmV3X2VuY2xf dHlwZSkKK0BAIC0xODU1LDYgKzE5MzgsOCBAQCB2YWx1ZV9jaGFuZ2VfZW5jbG9zaW5nX3R5cGUg KHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdHlwZSAqbmV3X2VuY2xfdHlwZSkKICAgICAgdmFs LT5jb250ZW50cyA9CiAgICAgICAgKGdkYl9ieXRlICopIHhyZWFsbG9jICh2YWwtPmNvbnRlbnRz LCBUWVBFX0xFTkdUSCAobmV3X2VuY2xfdHlwZSkpOwogIApAQCAtMjkyMDYsNyArMzA0NjcsNyBA QCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEwMDY0NAogICAgdmFsLT5lbmNsb3NpbmdfdHlwZSA9 IG5ld19lbmNsX3R5cGU7CiAgICByZXR1cm4gdmFsOwogIH0KLUBAIC0xOTAyLDYgKzE5ODcsOCBA QCB2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9mZnNldCwK K0BAIC0xOTE5LDYgKzIwMDQsOCBAQCB2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1 ZSAqYXJnMSwgaW50IG9mZnNldCwKICAJICBtZW1jcHkgKHZhbHVlX2NvbnRlbnRzX2FsbF9yYXcg KHYpLCB2YWx1ZV9jb250ZW50c19hbGxfcmF3IChhcmcxKSwKICAJCSAgVFlQRV9MRU5HVEggKHZh bHVlX2VuY2xvc2luZ190eXBlIChhcmcxKSkpOwogIAl9CkBAIC0yOTIxNSw3ICszMDQ3Niw3IEBA IGluZGV4IDQ4ZmVkZmQuLjVjMjA3ZTMgMTAwNjQ0CiAgICAgICAgdi0+dHlwZSA9IHR5cGU7CiAg ICAgICAgdi0+b2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChhcmcxKTsKICAgICAgICB2LT5lbWJlZGRl ZF9vZmZzZXQgPSAob2Zmc2V0ICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKQotQEAgLTIx NTIsNiArMjIzOSw0MiBAQCBwYWNrX2xvbmcgKGdkYl9ieXRlICpidWYsIHN0cnVjdCB0eXBlICp0 eXBlLCBMT05HRVNUIG51bSkKK0BAIC0yMTc3LDYgKzIyNjQsNDIgQEAgcGFja19sb25nIChnZGJf Ynl0ZSAqYnVmLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pCiAgfQogIAogIApAQCAt MjkyNTgsNyArMzA1MTksNyBAQCBpbmRleCA0OGZlZGZkLi41YzIwN2UzIDEwMDY0NAogIC8qIENv bnZlcnQgQyBudW1iZXJzIGludG8gbmV3bHkgYWxsb2NhdGVkIHZhbHVlcy4gICovCiAgCiAgc3Ry dWN0IHZhbHVlICoKLUBAIC0yMTY1LDYgKzIyODgsMTkgQEAgdmFsdWVfZnJvbV9sb25nZXN0IChz dHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pCitAQCAtMjE5MCw2ICsyMzEzLDE5IEBAIHZh bHVlX2Zyb21fbG9uZ2VzdCAoc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1QgbnVtKQogIH0KICAK ICAKQEAgLTI5Mjc4LDcgKzMwNTM5LDcgQEAgaW5kZXggNDhmZWRmZC4uNWMyMDdlMyAxMDA2NDQK ICAvKiBDcmVhdGUgYSB2YWx1ZSByZXByZXNlbnRpbmcgYSBwb2ludGVyIG9mIHR5cGUgVFlQRSB0 byB0aGUgYWRkcmVzcwogICAgIEFERFIuICAqLwogIHN0cnVjdCB2YWx1ZSAqCi1AQCAtMjMyMyw0 ICsyNDU5LDggQEAgVkFSSUFCTEUgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4iKSk7CitAQCAtMjM0 OCw0ICsyNDg0LDggQEAgVkFSSUFCTEUgaXMgYWxyZWFkeSBpbml0aWFsaXplZC4iKSk7CiAgICBh ZGRfcHJlZml4X2NtZCAoImZ1bmN0aW9uIiwgbm9fY2xhc3MsIGZ1bmN0aW9uX2NvbW1hbmQsIF8o IlwKICBQbGFjZWhvbGRlciBjb21tYW5kIGZvciBzaG93aW5nIGhlbHAgb24gY29udmVuaWVuY2Ug ZnVuY3Rpb25zLiIpLAogIAkJICAmZnVuY3Rpb25saXN0LCAiZnVuY3Rpb24gIiwgMCwgJmNtZGxp c3QpOwpAQCAtMjkyODgsMTAgKzMwNTQ5LDEwIEBAIGluZGV4IDQ4ZmVkZmQuLjVjMjA3ZTMgMTAw NjQ0CiArICBvYnNlcnZlcl9hdHRhY2hfbWFya191c2VkICh2YWx1ZV90eXBlc19tYXJrX3VzZWQp OwogIH0KIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5oCi1pbmRleCA2ZjZi NzU2Li5iOWNhNjUwIDEwMDY0NAoraW5kZXggNTFlNjk2MC4uNDhiMzBlNCAxMDA2NDQKIC0tLSBh L2dkYi92YWx1ZS5oCiArKysgYi9nZGIvdmFsdWUuaAotQEAgLTMzOSwxMSArMzM5LDE2IEBAIGV4 dGVybiBMT05HRVNUIHVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BA IC0zNDIsMTEgKzM0MiwxNiBAQCBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmllbGRfYXNfbG9uZyAo c3RydWN0IHR5cGUgKnR5cGUsCiAgZXh0ZXJuIHZvaWQgcGFja19sb25nIChnZGJfYnl0ZSAqYnVm LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pOwogIAogIGV4dGVybiBzdHJ1Y3QgdmFs dWUgKnZhbHVlX2Zyb21fbG9uZ2VzdCAoc3RydWN0IHR5cGUgKnR5cGUsIExPTkdFU1QgbnVtKTsK QEAgLTI5MzA4LDcgKzMwNTY5LDcgQEAgaW5kZXggNmY2Yjc1Ni4uYjljYTY1MCAxMDA2NDQKICBl eHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9hdCAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVfQURE UiBhZGRyKTsKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9hdF9sYXp5IChzdHJ1Y3QgdHlw ZSAqdHlwZSwgQ09SRV9BRERSIGFkZHIpOwogIAotQEAgLTQzMyw2ICs0MzgsNyBAQCBleHRlcm4g c3RydWN0IHZhbHVlICp2YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKiphcmdwLAorQEAg LTQzNiw2ICs0NDEsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9zdHJ1Y3RfZWx0IChz dHJ1Y3QgdmFsdWUgKiphcmdwLAogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2FnZ3Jl Z2F0ZV9lbHQgKHN0cnVjdCB0eXBlICpjdXJ0eXBlLAogIAkJCQkJICBjaGFyICpuYW1lLApAQCAt MjkzMTYsNyArMzA1NzcsNyBAQCBpbmRleCA2ZjZiNzU2Li5iOWNhNjUwIDEwMDY0NAogIAkJCQkJ ICBpbnQgd2FudF9hZGRyZXNzLAogIAkJCQkJICBlbnVtIG5vc2lkZSBub3NpZGUpOwogIAotQEAg LTY3OCw3ICs2ODQsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9hbGxvY2F0ZV9zcGFj ZV9pbl9pbmZlcmlvciAoaW50KTsKK0BAIC02ODEsNyArNjg3LDcgQEAgZXh0ZXJuIHN0cnVjdCB2 YWx1ZSAqdmFsdWVfYWxsb2NhdGVfc3BhY2VfaW5faW5mZXJpb3IgKGludCk7CiAgZXh0ZXJuIHN0 cnVjdCB2YWx1ZSAqdmFsdWVfb2ZfbG9jYWwgKGNvbnN0IGNoYXIgKm5hbWUsIGludCBjb21wbGFp bik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChz dHJ1Y3QgdmFsdWUgKmFycmF5LApAQCAtMjkzMjYsNyArMzA1ODcsNyBAQCBpbmRleCA2ZjZiNzU2 Li5iOWNhNjUwIDEwMDY0NAogIC8qIFVzZXIgZnVuY3Rpb24gaGFuZGxlci4gICovCiAgCiBkaWZm IC0tZ2l0IGEvZ2RiL3Zhcm9iai5jIGIvZ2RiL3Zhcm9iai5jCi1pbmRleCBmYmU4ZmY4Li40OTBj YTMzIDEwMDY0NAoraW5kZXggNjAzMDcxZi4uZjFjZTg5ZiAxMDA2NDQKIC0tLSBhL2dkYi92YXJv YmouYwogKysrIGIvZ2RiL3Zhcm9iai5jCiBAQCAtMjYsOSArMjYsMTIgQEAKQEAgLTI5NDE3LDcg KzMwNjc4LDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAgIHJldHVybiBlbnN1 cmVfcHl0aG9uX2VudiAodmFyLT5yb290LT5leHAtPmdkYmFyY2gsCiAgCQkJICAgIHZhci0+cm9v dC0+ZXhwLT5sYW5ndWFnZV9kZWZuKTsKICB9Ci1AQCAtNjE0LDkgKzY1MCw5IEBAIHZhcm9ial9j cmVhdGUgKGNoYXIgKm9iam5hbWUsCitAQCAtNjIxLDkgKzY1Nyw5IEBAIHZhcm9ial9jcmVhdGUg KGNoYXIgKm9iam5hbWUsCiAgCSAgZG9fY2xlYW51cHMgKG9sZF9jaGFpbik7CiAgCSAgcmV0dXJu IE5VTEw7CiAgCX0KQEAgLTI5NDI4LDcgKzMwNjg5LDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2Ez MyAxMDA2NDQKICAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jaGFpbik7CiAgICByZXR1cm4gdmFy OwogIH0KLUBAIC03MzEsMTUgKzc2Nyw4IEBAIGluc3RhbnRpYXRlX3ByZXR0eV9wcmludGVyIChQ eU9iamVjdCAqY29uc3RydWN0b3IsIHN0cnVjdCB2YWx1ZSAqdmFsdWUpCitAQCAtNzM4LDE1ICs3 NzQsOCBAQCBpbnN0YW50aWF0ZV9wcmV0dHlfcHJpbnRlciAoUHlPYmplY3QgKmNvbnN0cnVjdG9y LCBzdHJ1Y3QgdmFsdWUgKnZhbHVlKQogICNpZiBIQVZFX1BZVEhPTgogICAgUHlPYmplY3QgKnZh bF9vYmogPSBOVUxMOyAKICAgIFB5T2JqZWN0ICpwcmludGVyOwpAQCAtMjk0NDQsNyArMzA3MDUs NyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogICAgaWYgKCEgdmFsX29iaikKICAg ICAgcmV0dXJuIE5VTEw7CiAgCi1AQCAtNzkyLDcgKzgyMSwxMiBAQCB2YXJvYmpfZ2V0X2Rpc3Bs YXlfaGludCAoc3RydWN0IHZhcm9iaiAqdmFyKQorQEAgLTc5OSw3ICs4MjgsMTIgQEAgdmFyb2Jq X2dldF9kaXNwbGF5X2hpbnQgKHN0cnVjdCB2YXJvYmogKnZhcikKICAgIGNoYXIgKnJlc3VsdCA9 IE5VTEw7CiAgCiAgI2lmIEhBVkVfUFlUSE9OCkBAIC0yOTQ1OCw3ICszMDcxOSw3IEBAIGluZGV4 IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAgCiAgICBpZiAodmFyLT5wcmV0dHlfcHJpbnRlcikK ICAgICAgcmVzdWx0ID0gZ2RicHlfZ2V0X2Rpc3BsYXlfaGludCAodmFyLT5wcmV0dHlfcHJpbnRl cik7Ci1AQCAtODAzLDYgKzgzNywxNyBAQCB2YXJvYmpfZ2V0X2Rpc3BsYXlfaGludCAoc3RydWN0 IHZhcm9iaiAqdmFyKQorQEAgLTgxMCw2ICs4NDQsMTcgQEAgdmFyb2JqX2dldF9kaXNwbGF5X2hp bnQgKHN0cnVjdCB2YXJvYmogKnZhcikKICAgIHJldHVybiByZXN1bHQ7CiAgfQogIApAQCAtMjk0 NzYsNyArMzA3MzcsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogIC8qIElmIHRo ZSB2YXJpYWJsZSBvYmplY3QgaXMgYm91bmQgdG8gYSBzcGVjaWZpYyB0aHJlYWQsIHRoYXQKICAg ICBpcyBpdHMgZXZhbHVhdGlvbiBjYW4gYWx3YXlzIGJlIGRvbmUgaW4gY29udGV4dCBvZiBhIGZy YW1lCiAgICAgaW5zaWRlIHRoYXQgdGhyZWFkLCByZXR1cm5zIEdEQiBpZCBvZiB0aGUgdGhyZWFk IC0tIHdoaWNoCi1AQCAtODM1LDIyICs4ODAsOTAgQEAgdmFyb2JqX2dldF9mcm96ZW4gKHN0cnVj dCB2YXJvYmogKnZhcikKK0BAIC04NDIsMjIgKzg4Nyw5NCBAQCB2YXJvYmpfZ2V0X2Zyb3plbiAo c3RydWN0IHZhcm9iaiAqdmFyKQogICAgcmV0dXJuIHZhci0+ZnJvemVuOwogIH0KICAKQEAgLTI5 NTExLDYgKzMwNzcyLDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICtpbnN0YWxs X2R5bmFtaWNfY2hpbGQgKHN0cnVjdCB2YXJvYmogKnZhciwKICsJCSAgICAgICBWRUMgKHZhcm9i al9wKSAqKmNoYW5nZWQsCiArCQkgICAgICAgVkVDICh2YXJvYmpfcCkgKipuZXcsCisrCQkgICAg ICAgVkVDICh2YXJvYmpfcCkgKip1bmNoYW5nZWQsCiArCQkgICAgICAgaW50ICpjY2hhbmdlZCwK ICsJCSAgICAgICBpbnQgaW5kZXgsCiArCQkgICAgICAgY29uc3QgY2hhciAqbmFtZSwKQEAgLTI5 NTMyLDYgKzMwNzk0LDggQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICsJICBpZiAo Y2hhbmdlZCkKICsJICAgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial9wLCAqY2hhbmdlZCwgZXhpc3Rp bmcpOwogKwl9CisrICAgICAgZWxzZSBpZiAodW5jaGFuZ2VkKQorKwlWRUNfc2FmZV9wdXNoICh2 YXJvYmpfcCwgKnVuY2hhbmdlZCwgZXhpc3RpbmcpOwogKyAgICB9CiArfQogKwpAQCAtMjk1NTks NiArMzA4MjMsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogLQkJCQlpbnQgKmNj aGFuZ2VkKQogLQogKwkJCQlWRUMgKHZhcm9ial9wKSAqKm5ldywKKysJCQkJVkVDICh2YXJvYmpf cCkgKip1bmNoYW5nZWQsCiArCQkJCWludCAqY2NoYW5nZWQsCiArCQkJCWludCB1cGRhdGVfY2hp bGRyZW4sCiArCQkJCWludCB0bykKQEAgLTI5NTc1LDcgKzMwODQwLDcgQEAgaW5kZXggZmJlOGZm OC4uNDkwY2EzMyAxMDA2NDQKICAgIFB5T2JqZWN0ICpwcmludGVyID0gdmFyLT5wcmV0dHlfcHJp bnRlcjsKICAKICAgIGJhY2tfdG8gPSB2YXJvYmpfZW5zdXJlX3B5dGhvbl9lbnYgKHZhcik7Ci1A QCAtODYyLDg3ICs5NzUsMTAzIEBAIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAoc3Ry dWN0IHZhcm9iaiAqdmFyLAorQEAgLTg2OSw4NyArOTg2LDEwMyBAQCB1cGRhdGVfZHluYW1pY192 YXJvYmpfY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhciwKICAgICAgICByZXR1cm4gMDsKICAg ICAgfQogIApAQCAtMjk2ODAsNyArMzA5NDUsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEw MDY0NAogKwkgICAgZXJyb3IgKF8oIkludmFsaWQgaXRlbSBmcm9tIHRoZSBjaGlsZCBsaXN0Iikp OwogKwogKwkgIHYgPSBjb252ZXJ0X3ZhbHVlX2Zyb21fcHl0aG9uIChweV92KTsKLSsJICBpbnN0 YWxsX2R5bmFtaWNfY2hpbGQgKHZhciwgY2hhbmdlZCwgbmV3LAorKwkgIGluc3RhbGxfZHluYW1p Y19jaGlsZCAodmFyLCBjaGFuZ2VkLCBuZXcsIHVuY2hhbmdlZCwKICsJCQkJIGNjaGFuZ2VkLCBp LCBuYW1lLCB2KTsKICsJICBkb19jbGVhbnVwcyAoaW5uZXIpOwogIAl9CkBAIC0yOTczNiw3ICsz MTAwMSw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAgICByZXR1cm4gMTsKICAj ZWxzZQogICAgZ2RiX2Fzc2VydCAoMCAmJiAic2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBpZiBQeXRo b24gaXMgbm90IGVuYWJsZWQiKTsKLUBAIC05NTQsMjAgKzEwODMsMjYgQEAgdmFyb2JqX2dldF9u dW1fY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC05NjEsMjAgKzEwOTQsMjYgQEAg dmFyb2JqX2dldF9udW1fY2hpbGRyZW4gKHN0cnVjdCB2YXJvYmogKnZhcikKICB7CiAgICBpZiAo dmFyLT5udW1fY2hpbGRyZW4gPT0gLTEpCiAgICAgIHsKQEAgLTI5NzQ5LDcgKzMxMDE0LDcgQEAg aW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICsKICsJICAvKiBJZiB3ZSBoYXZlIGEgZHlu YW1pYyB2YXJvYmosIGRvbid0IHJlcG9ydCAtMSBjaGlsZHJlbi4KICsJICAgICBTbywgdHJ5IHRv IGZldGNoIHNvbWUgY2hpbGRyZW4gZmlyc3QuICAqLwotKwkgIHVwZGF0ZV9keW5hbWljX3Zhcm9i al9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCAmZHVtbXksIDAsIDApOworKwkgIHVwZGF0ZV9k eW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCBOVUxMLCAmZHVtbXksIDAs IDApOwogKwl9CiArICAgICAgZWxzZQogIAl2YXItPm51bV9jaGlsZHJlbiA9IG51bWJlcl9vZl9j aGlsZHJlbiAodmFyKTsKQEAgLTI5NzY4LDcgKzMxMDMzLDcgQEAgaW5kZXggZmJlOGZmOC4uNDkw Y2EzMyAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgdmFyb2JqICpjaGlsZDsKICAgIGNoYXIgKm5hbWU7 Ci1AQCAtOTc1LDEyICsxMTEwLDE2IEBAIHZhcm9ial9saXN0X2NoaWxkcmVuIChzdHJ1Y3QgdmFy b2JqICp2YXIpCitAQCAtOTgyLDEyICsxMTIxLDE2IEBAIHZhcm9ial9saXN0X2NoaWxkcmVuIChz dHJ1Y3QgdmFyb2JqICp2YXIpCiAgCiAgICB2YXItPmNoaWxkcmVuX3JlcXVlc3RlZCA9IDE7CiAg CkBAIC0yOTc4MCw3ICszMTA0NSw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAg CSB2YXJvYmogdHdpY2UgaXMgbm90IHNvbWV0aGluZyBhIHNhbmUgZnJvbnRlbmQgd291bGQgZG8u ICAqLwogLSAgICAgICYmIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxM LCBOVUxMLCAmY2hpbGRyZW5fY2hhbmdlZCkpCiAtICAgIHJldHVybiB2YXItPmNoaWxkcmVuOwot KyAgICAgIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodmFyLCBOVUxMLCBOVUxMLCAm Y2hpbGRyZW5fY2hhbmdlZCwKKysgICAgICB1cGRhdGVfZHluYW1pY192YXJvYmpfY2hpbGRyZW4g KHZhciwgTlVMTCwgTlVMTCwgTlVMTCwgJmNoaWxkcmVuX2NoYW5nZWQsCiArCQkJCSAgICAgIDAs ICp0byk7CiArICAgICAgcmVzdHJpY3RfcmFuZ2UgKHZhci0+Y2hpbGRyZW4sIGZyb20sIHRvKTsK ICsgICAgICByZXR1cm4gdmFyLT5jaGlsZHJlbjsKQEAgLTI5Nzg4LDcgKzMxMDUzLDcgQEAgaW5k ZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAKICAgIGlmICh2YXItPm51bV9jaGlsZHJlbiA9 PSAtMSkKICAgICAgdmFyLT5udW1fY2hpbGRyZW4gPSBudW1iZXJfb2ZfY2hpbGRyZW4gKHZhcik7 Ci1AQCAtMTAwNiwxMCArMTE0NSwxMCBAQCB2YXJvYmpfbGlzdF9jaGlsZHJlbiAoc3RydWN0IHZh cm9iaiAqdmFyKQorQEAgLTEwMTMsMTAgKzExNTYsMTAgQEAgdmFyb2JqX2xpc3RfY2hpbGRyZW4g KHN0cnVjdCB2YXJvYmogKnZhcikKICAJICBuYW1lID0gbmFtZV9vZl9jaGlsZCAodmFyLCBpKTsK ICAJICBleGlzdGluZyA9IGNyZWF0ZV9jaGlsZCAodmFyLCBpLCBuYW1lKTsKICAJICBWRUNfcmVw bGFjZSAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4sIGksIGV4aXN0aW5nKTsKQEAgLTI5ODAwLDcg KzMxMDY1LDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAgIHJldHVybiB2YXIt PmNoaWxkcmVuOwogIH0KICAKLUBAIC0xMDIwLDcgKzExNTksNiBAQCB2YXJvYmpfYWRkX2NoaWxk IChzdHJ1Y3QgdmFyb2JqICp2YXIsIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqdmFs dWUpCitAQCAtMTAyNyw3ICsxMTcwLDYgQEAgdmFyb2JqX2FkZF9jaGlsZCAoc3RydWN0IHZhcm9i aiAqdmFyLCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlKQogIAkJCQkJVkVD X2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pLCAKICAJCQkJCW5hbWUsIHZhbHVlKTsK ICAgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCB2KTsKQEAgLTI5ODA4 LDcgKzMxMDczLDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAgIHJldHVybiB2 OwogIH0KICAKLUBAIC0xMDgyLDYgKzEyMjAsMTIgQEAgdmFyb2JqX2dldF9hdHRyaWJ1dGVzIChz dHJ1Y3QgdmFyb2JqICp2YXIpCitAQCAtMTA4OSw2ICsxMjMxLDEyIEBAIHZhcm9ial9nZXRfYXR0 cmlidXRlcyAoc3RydWN0IHZhcm9iaiAqdmFyKQogICAgcmV0dXJuIGF0dHJpYnV0ZXM7CiAgfQog IApAQCAtMjk4MjEsNyArMzEwODYsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAog IGNoYXIgKgogIHZhcm9ial9nZXRfZm9ybWF0dGVkX3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIs CiAgCQkJICAgIGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9ybWF0cyBmb3JtYXQpCi1AQCAtMTE1OSw2 ICsxMzAzLDExNiBAQCB2YXJvYmpfc2V0X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGNoYXIg KmV4cHJlc3Npb24pCitAQCAtMTE2Niw2ICsxMzE0LDExNiBAQCB2YXJvYmpfc2V0X3ZhbHVlIChz dHJ1Y3QgdmFyb2JqICp2YXIsIGNoYXIgKmV4cHJlc3Npb24pCiAgICByZXR1cm4gMTsKICB9CiAg CkBAIC0yOTkzOCw3ICszMTIwMyw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAg LyogQXNzaWduIGEgbmV3IHZhbHVlIHRvIGEgdmFyaWFibGUgb2JqZWN0LiAgSWYgSU5JVElBTCBp cyBub24temVybywKICAgICB0aGlzIGlzIHRoZSBmaXJzdCBhc3NpZ25lbWVudCBhZnRlciB0aGUg dmFyaWFibGUgb2JqZWN0IHdhcyBqdXN0CiAgICAgY3JlYXRlZCwgb3IgY2hhbmdlZCB0eXBlLiAg SW4gdGhhdCBjYXNlLCBqdXN0IGFzc2lnbiB0aGUgdmFsdWUgCi1AQCAtMTE5OSwxMCArMTQ1Myw3 IEBAIGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHN0cnVjdCB2YWx1ZSAq dmFsdWUsIGludCBpbml0aWFsKQorQEAgLTEyMDYsMTAgKzE0NjQsNyBAQCBpbnN0YWxsX25ld192 YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlh bCkKICAgICAgIHRoYXQgaW4gQysrIGEgcmVmZXJlbmNlIGlzIG5vdCByZWJpbmRhYmxlLCBpdCBj YW5ub3QKICAgICAgIG1lYW5pbmdmdWxseSBjaGFuZ2UuICBTbywgZ2V0IGhvbGQgb2YgdGhlIHJl YWwgdmFsdWUuICAqLwogICAgaWYgKHZhbHVlKQpAQCAtMjk5NTAsNyArMzEyMTUsNyBAQCBpbmRl eCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogIAogICAgaWYgKHZhci0+dHlwZSAmJiBUWVBFX0NP REUgKHZhci0+dHlwZSkgPT0gVFlQRV9DT0RFX1VOSU9OKQogICAgICAvKiBGb3IgdW5pb25zLCB3 ZSBuZWVkIHRvIGZldGNoIHRoZSB2YWx1ZSBpbXBsaWNpdGx5IGJlY2F1c2UKLUBAIC0xMjQ5LDcg KzE1MDAsNyBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3Qg dmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkKK0BAIC0xMjU2LDcgKzE1MTEsNyBAQCBpbnN0YWxs X25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQg aW5pdGlhbCkKICAgICAgIHZhbHVlcy4gIERvbid0IGdldCBzdHJpbmcgcmVuZGVyaW5nIGlmIHRo ZSB2YWx1ZSBpcwogICAgICAgbGF6eSAtLSBpZiBpdCBpcywgdGhlIGNvZGUgYWJvdmUgaGFzIGRl Y2lkZWQgdGhhdCB0aGUgdmFsdWUKICAgICAgIHNob3VsZCBub3QgYmUgZmV0Y2hlZC4gICovCkBA IC0yOTk1OSw3ICszMTIyNCw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAgICAg IHByaW50X3ZhbHVlID0gdmFsdWVfZ2V0X3ByaW50X3ZhbHVlICh2YWx1ZSwgdmFyLT5mb3JtYXQs IHZhcik7CiAgCiAgICAvKiBJZiB0aGUgdHlwZSBpcyBjaGFuZ2VhYmxlLCBjb21wYXJlIHRoZSBv bGQgYW5kIHRoZSBuZXcgdmFsdWVzLgotQEAgLTEyNjUsNyArMTUxNiw3IEBAIGluc3RhbGxfbmV3 X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBpbml0 aWFsKQorQEAgLTEyNzIsNyArMTUyNyw3IEBAIGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFy b2JqICp2YXIsIHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBpbml0aWFsKQogIAl7CiAgCSAgY2hh bmdlZCA9IDE7CiAgCX0KQEAgLTI5OTY4LDcgKzMxMjMzLDcgQEAgaW5kZXggZmJlOGZmOC4uNDkw Y2EzMyAxMDA2NDQKICAJewogIAkgIC8qIFRyeSB0byBjb21wYXJlIHRoZSB2YWx1ZXMuICBUaGF0 IHJlcXVpcmVzIHRoYXQgYm90aAogIAkgICAgIHZhbHVlcyBhcmUgbm9uLWxhenkuICAqLwotQEAg LTEzMTAsNzQgKzE1NjEsNTMgQEAgaW5zdGFsbF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZh ciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IGluaXRpYWwpCitAQCAtMTMxNyw3NCArMTU3Miw1 MyBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUg KnZhbHVlLCBpbnQgaW5pdGlhbCkKICAgIGlmICh2YXItPnZhbHVlICE9IE5VTEwgJiYgdmFyLT52 YWx1ZSAhPSB2YWx1ZSkKICAgICAgdmFsdWVfZnJlZSAodmFyLT52YWx1ZSk7CiAgICB2YXItPnZh bHVlID0gdmFsdWU7CkBAIC0zMDA3NSw3ICszMTM0MCw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNh MzMgMTAwNjQ0CiAgfQogIAogIHZvaWQgCi1AQCAtMTM5NSwzMSArMTYyNSwxOSBAQCB2YXJvYmpf c2V0X3Zpc3VhbGl6ZXIgKHN0cnVjdCB2YXJvYmogKnZhciwgY29uc3QgY2hhciAqdmlzdWFsaXpl cikKK0BAIC0xNDAyLDMxICsxNjM2LDE5IEBAIHZhcm9ial9zZXRfdmlzdWFsaXplciAoc3RydWN0 IHZhcm9iaiAqdmFyLCBjb25zdCBjaGFyICp2aXN1YWxpemVyKQogICAgbWFrZV9jbGVhbnVwX3B5 X2RlY3JlZiAoZ2xvYmFscyk7CiAgCiAgICBjb25zdHJ1Y3RvciA9IFB5UnVuX1N0cmluZyAodmlz dWFsaXplciwgUHlfZXZhbF9pbnB1dCwgZ2xvYmFscywgZ2xvYmFscyk7CkBAIC0zMDExMyw3ICsz MTM3OCw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiAgCiAgICBkb19jbGVhbnVw cyAoYmFja190byk7CiAgI2Vsc2UKLUBAIC0xNTMwLDQ0ICsxNzQ4LDYzIEBAIFZFQyh2YXJvYmpf dXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91cGRhdGUgKHN0cnVjdCB2YXJvYmogKip2YXJwLCBpbnQg ZXhwbGljaXQpCitAQCAtMTUzNyw0NCArMTc1OSw3NCBAQCBWRUModmFyb2JqX3VwZGF0ZV9yZXN1 bHQpICp2YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoqdmFycCwgaW50IGV4cGxpY2l0KQog IAogICAgICAgIC8qIFdlIHByb2JhYmx5IHNob3VsZCBub3QgZ2V0IGNoaWxkcmVuIG9mIGEgdmFy b2JqIHRoYXQgaGFzIGEKICAJIHByZXR0eS1wcmludGVyLCBidXQgZm9yIHdoaWNoIC12YXItbGlz dC1jaGlsZHJlbiB3YXMgbmV2ZXIKQEAgLTMwMTIzLDcgKzMxMzg4LDcgQEAgaW5kZXggZmJlOGZm OC4uNDkwY2EzMyAxMDA2NDQKICAgICAgICBpZiAodi0+cHJldHR5X3ByaW50ZXIpCiAgCXsKIC0J ICBWRUMgKHZhcm9ial9wKSAqY2hhbmdlZCA9IDAsICpuZXdfYW5kX3VuY2hhbmdlZCA9IDA7Ci0r CSAgVkVDICh2YXJvYmpfcCkgKmNoYW5nZWQgPSAwLCAqbmV3ID0gMDsKKysJICBWRUMgKHZhcm9i al9wKSAqY2hhbmdlZCA9IDAsICpuZXcgPSAwLCAqdW5jaGFuZ2VkID0gMDsKICAJICBpbnQgaSwg Y2hpbGRyZW5fY2hhbmdlZDsKICAJICB2YXJvYmpfcCB0bXA7CiAgCkBAIC0zMDE0NSw3ICszMTQx MCw4IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAwNjQ0CiArCQkgaXQuICAqLwogKwkgICAg ICBpZiAoIXZhcm9ial9oYXNfbW9yZSAodiwgMCkpCiArCQl7Ci0rCQkgIHVwZGF0ZV9keW5hbWlj X3Zhcm9ial9jaGlsZHJlbiAodiwgTlVMTCwgTlVMTCwgJmR1bW15LCAwLCAwKTsKKysJCSAgdXBk YXRlX2R5bmFtaWNfdmFyb2JqX2NoaWxkcmVuICh2LCBOVUxMLCBOVUxMLCBOVUxMLAorKwkJCQkJ CSAgJmR1bW15LCAwLCAwKTsKICsJCSAgaWYgKHZhcm9ial9oYXNfbW9yZSAodiwgMCkpCiArCQkg ICAgci5jaGFuZ2VkID0gMTsKICsJCX0KQEAgLTMwMTYwLDcgKzMxNDI2LDcgQEAgaW5kZXggZmJl OGZmOC4uNDkwY2EzMyAxMDA2NDQKICAJICAgICBhIG5vbi1jb25mb3JtaW5nIHByZXR0eS1wcmlu dGVyLCBzbyB3ZSBza2lwIGl0LiAgKi8KIC0JICBpZiAodXBkYXRlX2R5bmFtaWNfdmFyb2JqX2No aWxkcmVuICh2LCAmY2hhbmdlZCwgJm5ld19hbmRfdW5jaGFuZ2VkLAogLQkJCQkJICAgICAgJmNo aWxkcmVuX2NoYW5nZWQpKQotKwkgIGlmICh1cGRhdGVfZHluYW1pY192YXJvYmpfY2hpbGRyZW4g KHYsICZjaGFuZ2VkLCAmbmV3LAorKwkgIGlmICh1cGRhdGVfZHluYW1pY192YXJvYmpfY2hpbGRy ZW4gKHYsICZjaGFuZ2VkLCAmbmV3LCAmdW5jaGFuZ2VkLAogKwkJCQkJICAgICAgJmNoaWxkcmVu X2NoYW5nZWQsIDEsIHYtPnRvKSkKICAJICAgIHsKIC0JICAgICAgaWYgKGNoaWxkcmVuX2NoYW5n ZWQpCkBAIC0zMDE4NSwxNyArMzE0NTEsMjcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2 NDQKICAJCSAgci52YWx1ZV9pbnN0YWxsZWQgPSAxOwogIAkJICBWRUNfc2FmZV9wdXNoICh2YXJv YmpfdXBkYXRlX3Jlc3VsdCwgc3RhY2ssICZyKTsKICAJCX0KKysJICAgICAgZm9yIChpID0gMDsg VkVDX2l0ZXJhdGUgKHZhcm9ial9wLCB1bmNoYW5nZWQsIGksIHRtcCk7ICsraSkKKysJICAgICAg CXsKKysJICAgICAgCSAgaWYgKCF0bXAtPmZyb3plbikKKysJICAgICAgCSAgICB7CisrCSAgICAg IAkgICAgICB2YXJvYmpfdXBkYXRlX3Jlc3VsdCByID0ge3RtcH07CisrCSAgICAgIAkgICAgICBy LnZhbHVlX2luc3RhbGxlZCA9IDE7CisrCSAgICAgIAkgICAgICBWRUNfc2FmZV9wdXNoICh2YXJv YmpfdXBkYXRlX3Jlc3VsdCwgc3RhY2ssICZyKTsKKysJICAgICAgCSAgICB9CisrCSAgICAgIAl9 CiAgCSAgICAgIGlmIChyLmNoYW5nZWQgfHwgci5jaGlsZHJlbl9jaGFuZ2VkKQogIAkJVkVDX3Nh ZmVfcHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHJlc3VsdCwgJnIpOwogKwotKwkgICAgICAv KiBGcmVlIENIQU5HRUQsIGJ1dCBub3QgTkVXLCBiZWNhdXNlIE5FVyBoYXMgYmVlbiBwdXQKLSsJ CSBpbnRvIHRoZSByZXN1bHQgdmVjdG9yLiAgKi8KKysJICAgICAgLyogRnJlZSBDSEFOR0VEIGFu ZCBVTkNIQU5HRUQsIGJ1dCBub3QgTkVXLCBiZWNhdXNlIE5FVworKwkJIGhhcyBiZWVuIHB1dCBp bnRvIHRoZSByZXN1bHQgdmVjdG9yLiAgKi8KICsJICAgICAgVkVDX2ZyZWUgKHZhcm9ial9wLCBj aGFuZ2VkKTsKKysJICAgICAgVkVDX2ZyZWUgKHZhcm9ial9wLCB1bmNoYW5nZWQpOwogKwogIAkg ICAgICBjb250aW51ZTsKICAJICAgIH0KICAJfQotQEAgLTE4NTUsNyArMjA5MiwxMiBAQCBuZXdf dmFyaWFibGUgKHZvaWQpCitAQCAtMTg2Miw3ICsyMTE0LDEyIEBAIG5ld192YXJpYWJsZSAodm9p ZCkKICAgIHZhci0+ZnJvemVuID0gMDsKICAgIHZhci0+bm90X2ZldGNoZWQgPSAwOwogICAgdmFy LT5jaGlsZHJlbl9yZXF1ZXN0ZWQgPSAwOwpAQCAtMzAyMDgsNyArMzE0ODQsNyBAQCBpbmRleCBm YmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogIAogICAgcmV0dXJuIHZhcjsKICB9Ci1AQCAtMTg4NSw3 ICsyMTI3LDEwIEBAIGZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC0xODky LDcgKzIxNDksMTAgQEAgZnJlZV92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyKQogICAgaWYg KHZhci0+cHJldHR5X3ByaW50ZXIpCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgY2xlYW51cCAqY2xl YW51cCA9IHZhcm9ial9lbnN1cmVfcHl0aG9uX2VudiAodmFyKTsKQEAgLTMwMjIwLDcgKzMxNDk2 LDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2EzMyAxMDA2NDQKICAgICAgICBkb19jbGVhbnVwcyAo Y2xlYW51cCk7CiAgICAgIH0KICAjZW5kaWYKLUBAIC0xOTE4LDYgKzIxNjMsMTggQEAgbWFrZV9j bGVhbnVwX2ZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikKK0BAIC0xOTI1LDYgKzIx ODUsMTggQEAgbWFrZV9jbGVhbnVwX2ZyZWVfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhcikK ICAgIHJldHVybiBtYWtlX2NsZWFudXAgKGRvX2ZyZWVfdmFyaWFibGVfY2xlYW51cCwgdmFyKTsK ICB9CiAgCkBAIC0zMDIzOSw3ICszMTUxNSw3IEBAIGluZGV4IGZiZThmZjguLjQ5MGNhMzMgMTAw NjQ0CiAgLyogVGhpcyByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJsZS4gSXQgYWxzbyBz a2lwcyBwYXN0IHR5cGVkZWZzCiAgICAgdG8gcmV0dXJuIHRoZSByZWFsIHR5cGUgb2YgdGhlIHZh cmlhYmxlLgogIAotQEAgLTIxMzIsNiArMjM4OSw4IEBAIHZhbHVlX29mX3Jvb3QgKHN0cnVjdCB2 YXJvYmogKip2YXJfaGFuZGxlLCBpbnQgKnR5cGVfY2hhbmdlZCkKK0BAIC0yMTM5LDYgKzI0MTEs OCBAQCB2YWx1ZV9vZl9yb290IChzdHJ1Y3QgdmFyb2JqICoqdmFyX2hhbmRsZSwgaW50ICp0eXBl X2NoYW5nZWQpCiAgICAgICAgZWxzZQogIAl7CiAgCSAgdG1wX3Zhci0+b2JqX25hbWUgPSB4c3Ry ZHVwICh2YXItPm9ial9uYW1lKTsKQEAgLTMwMjQ4LDcgKzMxNTI0LDcgQEAgaW5kZXggZmJlOGZm OC4uNDkwY2EzMyAxMDA2NDQKICAJICB2YXJvYmpfZGVsZXRlICh2YXIsIE5VTEwsIDApOwogIAog IAkgIGluc3RhbGxfdmFyaWFibGUgKHRtcF92YXIpOwotQEAgLTIxNjYsNyArMjQyNSwxMSBAQCBz dGF0aWMgY2hhciAqCitAQCAtMjE3Myw3ICsyNDQ3LDExIEBAIHN0YXRpYyBjaGFyICoKICBteV92 YWx1ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZhcm9ial9kaXNwbGF5 X2Zvcm1hdHMgZm9ybWF0KQogIHsKICAgIGlmICh2YXItPnJvb3QtPmlzX3ZhbGlkKQpAQCAtMzAy NjEsNyArMzE1MzcsNyBAQCBpbmRleCBmYmU4ZmY4Li40OTBjYTMzIDEwMDY0NAogICAgZWxzZQog ICAgICByZXR1cm4gTlVMTDsKICB9Ci1AQCAtMjE4OSw0MyArMjQ1Miw1MSBAQCB2YWx1ZV9nZXRf cHJpbnRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9y bWF0cyBmb3JtYXQsCitAQCAtMjE5Niw0MyArMjQ3NCw1MSBAQCB2YWx1ZV9nZXRfcHJpbnRfdmFs dWUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9ybWF0cyBmb3Jt YXQsCiAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvID0gdmFyb2JqX2Vuc3VyZV9weXRob25f ZW52ICh2YXIpOwogICAgICBQeU9iamVjdCAqdmFsdWVfZm9ybWF0dGVyID0gdmFyLT5wcmV0dHlf cHJpbnRlcjsKICAKQEAgLTMwMzQ0LDcgKzMxNjIwLDcgQEAgaW5kZXggZmJlOGZmOC4uNDkwY2Ez MyAxMDA2NDQKICAgICAgICB9CiAgICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKICAgIH0KLUBA IC0yOTU0LDEwICszMjI1LDcgQEAgY3BsdXNfZGVzY3JpYmVfY2hpbGQgKHN0cnVjdCB2YXJvYmog KnBhcmVudCwgaW50IGluZGV4LAorQEAgLTI5NjEsMTAgKzMyNDcsNyBAQCBjcGx1c19kZXNjcmli ZV9jaGlsZCAoc3RydWN0IHZhcm9iaiAqcGFyZW50LCBpbnQgaW5kZXgsCiAgCSAgICAqY25hbWUg PSB4c3RyZHVwIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGluZGV4KSk7CiAgCiAgCSAgaWYgKGN2 YWx1ZSAmJiB2YWx1ZSkKQEAgLTMwMzU2LDcgKzMxNjMyLDcgQEAgaW5kZXggZmJlOGZmOC4uNDkw Y2EzMyAxMDA2NDQKICAKICAJICBpZiAoY3R5cGUpCiAgCSAgICB7Ci1AQCAtMzE2Myw2ICszNDMx LDE5IEBAIGphdmFfdmFsdWVfb2ZfdmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSB2 YXJvYmpfZGlzcGxheV9mb3JtYXRzIGZvcm1hdCkKK0BAIC0zMTcwLDYgKzM0NTMsMTkgQEAgamF2 YV92YWx1ZV9vZl92YXJpYWJsZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHZhcm9ial9kaXNw bGF5X2Zvcm1hdHMgZm9ybWF0KQogICAgcmV0dXJuIGNwbHVzX3ZhbHVlX29mX3ZhcmlhYmxlICh2 YXIsIGZvcm1hdCk7CiAgfQogIApAQCAtMzAzNzYsNyArMzE2NTIsNyBAQCBpbmRleCBmYmU4ZmY4 Li40OTBjYTMzIDEwMDY0NAogIC8qIEl0ZXJhdGUgYWxsIHRoZSBleGlzdGluZyBfcm9vdF8gVkFS T0JKcyBhbmQgY2FsbCB0aGUgRlVOQyBjYWxsYmFjayBmb3IgdGhlbQogICAgIHdpdGggYW4gYXJi aXRyYXJ5IGNhbGxlciBzdXBwbGllZCBEQVRBIHBvaW50ZXIuICAqLwogIAotQEAgLTMxODAsNiAr MzQ2MSw0MyBAQCBhbGxfcm9vdF92YXJvYmpzICh2b2lkICgqZnVuYykgKHN0cnVjdCB2YXJvYmog KnZhciwgdm9pZCAqZGF0YSksIHZvaWQgKmRhdGEpCitAQCAtMzE4Nyw2ICszNDgzLDQzIEBAIGFs bF9yb290X3Zhcm9ianMgKHZvaWQgKCpmdW5jKSAoc3RydWN0IHZhcm9iaiAqdmFyLCB2b2lkICpk YXRhKSwgdm9pZCAqZGF0YSkKICAgICAgICAoKmZ1bmMpICh2YXJfcm9vdC0+cm9vdHZhciwgZGF0 YSk7CiAgICAgIH0KICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTIwMTI5LWRyb3ctYml0ZmllbGRz LnBhdGNoIGIvZ2RiLWJ6NTIwMTI5LWRyb3ctYml0ZmllbGRzLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA4MWVjZjFiLi4wMDAwMDAwCi0tLSBhL2dkYi1iejUyMDEyOS1kcm93 LWJpdGZpZWxkcy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI0NSArMCwwIEBACi1odHRwOi8v c291cmNld2FyZS5vcmcvbWwvZ2RiLWN2cy8yMDA5LTA3L21zZzAwMTQzLmh0bWwKLQotMjAwOS0w Ny0yMSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KLQkgICAgVmxh ZGltaXIgUHJ1cyA8dmxhZGltaXJAY29kZXNvdXJjZXJ5LmNvbT4KLQotCSogdmFsb3BzLmMgKHZh bHVlX2ZldGNoX2xhenkpOiBIYW5kbGUgYml0ZmllbGRzIGV4cGxpY2l0bHkuCi0JKHZhbHVlX2Fz c2lnbik6IFJlbW92ZSB1bm5lY2Vzc2FyeSBGSVhNRS4gIEhvbm9yIHRoZSBjb250YWluZXIKLQl0 eXBlIG9mIGJpdGZpZWxkcyBpZiBwb3NzaWJsZS4KLQkqIHZhbHVlLmMgKHN0cnVjdCB2YWx1ZSk6 IEFkZCBwYXJlbnQgZmllbGQuCi0JKHZhbHVlX3BhcmVudCk6IE5ldyBmdW5jdGlvbi4KLQkodmFs dWVfZnJlZSk6IEZyZWUgdGhlIHBhcmVudCBhbHNvLgotCSh2YWx1ZV9jb3B5KTogQ29weSB0aGUg cGFyZW50IGFsc28uCi0JKHZhbHVlX3ByaW1pdGl2ZV9maWVsZCk6IERvIG5vdCByZWFkIHRoZSBj b250ZW50cyBvZiBhIGxhenkKLQl2YWx1ZSB0byBjcmVhdGUgYSBjaGlsZCBiaXRmaWVsZCB2YWx1 ZS4gIFNldCBiaXRwb3MgYW5kIG9mZnNldAotCWFjY29yZGluZyB0byB0aGUgY29udGFpbmVyIHR5 cGUgaWYgcG9zc2libGUuCi0JKHVucGFja19iaXRzX2FzX2xvbmcpOiBSZW5hbWUgZnJvbSB1bnBh Y2tfZmllbGRfYXNfbG9uZy4gIFRha2UKLQlmaWVsZF90eXBlLCBiaXRwb3MsIGFuZCBiaXRzaXpl IGluc3RlYWQgb2YgdHlwZSBhbmQgZmllbGRuby4KLQkodW5wYWNrX2ZpZWxkX2FzX2xvbmcpOiBV c2UgdW5wYWNrX2JpdHNfYXNfbG9uZy4KLQkqIHZhbHVlLmggKHZhbHVlX3BhcmVudCwgdW5wYWNr X2JpdHNfYXNfbG9uZyk6IE5ldyBwcm90b3R5cGVzLgotCi1bIFJldmVydGVkLCBiYWNrcG9ydGVk IGZvciBGZWRvcmEuICBdCi0KLS0tLSAuL2dkYi92YWxvcHMuYwkyMDA5LTA4LTI4IDE5OjI3OjMw LjAwMDAwMDAwMCArMDIwMAotKysrIC4vZ2RiL3ZhbG9wcy5jCTIwMDktMDgtMjggMTk6Mjc6NTku MDAwMDAwMDAwICswMjAwCi1AQCAtNjg5LDI1ICs2ODksNyBAQCB2YWx1ZV9mZXRjaF9sYXp5IChz dHJ1Y3QgdmFsdWUgKnZhbCkKLSB7Ci0gICBnZGJfYXNzZXJ0ICh2YWx1ZV9sYXp5ICh2YWwpKTsK LSAgIGFsbG9jYXRlX3ZhbHVlX2NvbnRlbnRzICh2YWwpOwotLSAgaWYgKHZhbHVlX2JpdHNpemUg KHZhbCkpCi0tICAgIHsKLS0gICAgICAvKiBUbyByZWFkIGEgbGF6eSBiaXRmaWVsZCwgcmVhZCB0 aGUgZW50aXJlIGVuY2xvc2luZyB2YWx1ZS4gIFRoaXMKLS0JIHByZXZlbnRzIHJlYWRpbmcgdGhl IHNhbWUgYmxvY2sgb2YgKHBvc3NpYmx5IHZvbGF0aWxlKSBtZW1vcnkgb25jZQotLSAgICAgICAg IHBlciBiaXRmaWVsZC4gIEl0IHdvdWxkIGJlIGV2ZW4gYmV0dGVyIHRvIHJlYWQgb25seSB0aGUg Y29udGFpbmluZwotLSAgICAgICAgIHdvcmQsIGJ1dCB3ZSBoYXZlIG5vIHdheSB0byByZWNvcmQg dGhhdCBqdXN0IHNwZWNpZmljIGJpdHMgb2YgYQotLSAgICAgICAgIHZhbHVlIGhhdmUgYmVlbiBm ZXRjaGVkLiAgKi8KLS0gICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZh bHVlX3R5cGUgKHZhbCkpOwotLSAgICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2Ri YXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBlKSk7Ci0tICAgICAgc3RydWN0IHZh bHVlICpwYXJlbnQgPSB2YWx1ZV9wYXJlbnQgKHZhbCk7Ci0tICAgICAgTE9OR0VTVCBvZmZzZXQg PSB2YWx1ZV9vZmZzZXQgKHZhbCk7Ci0tICAgICAgTE9OR0VTVCBudW0gPSB1bnBhY2tfYml0c19h c19sb25nICh2YWx1ZV90eXBlICh2YWwpLAotLQkJCQkJIHZhbHVlX2NvbnRlbnRzIChwYXJlbnQp ICsgb2Zmc2V0LAotLQkJCQkJIHZhbHVlX2JpdHBvcyAodmFsKSwKLS0JCQkJCSB2YWx1ZV9iaXRz aXplICh2YWwpKTsKLS0gICAgICBpbnQgbGVuZ3RoID0gVFlQRV9MRU5HVEggKHR5cGUpOwotLSAg ICAgIHN0b3JlX3NpZ25lZF9pbnRlZ2VyICh2YWx1ZV9jb250ZW50c19yYXcgKHZhbCksIGxlbmd0 aCwgYnl0ZV9vcmRlciwgbnVtKTsKLS0gICAgfQotLSAgZWxzZSBpZiAoVkFMVUVfTFZBTCAodmFs KSA9PSBsdmFsX21lbW9yeSkKLSsgIGlmIChWQUxVRV9MVkFMICh2YWwpID09IGx2YWxfbWVtb3J5 KQotICAgICB7Ci0gICAgICAgQ09SRV9BRERSIGFkZHIgPSB2YWx1ZV9yYXdfYWRkcmVzcyAodmFs KTsKLSAKLUBAIC04ODMsMjAgKzg2NSwxMyBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1ZSAq dG92YWwsIHN0cnVjCi0gCi0gCWlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCi0gCSAgewotKwkg ICAgLyogV2UgYXNzdW1lIHRoYXQgdGhlIGFyZ3VtZW50IHRvIHJlYWRfbWVtb3J5IGlzIGluIHVu aXRzCi0rCSAgICAgICBvZiBob3N0IGNoYXJzLiAgRklYTUU6IElzIHRoYXQgY29ycmVjdD8gICov Ci0gCSAgICBjaGFuZ2VkX2xlbiA9ICh2YWx1ZV9iaXRwb3MgKHRvdmFsKQotIAkJCSAgICsgdmFs dWVfYml0c2l6ZSAodG92YWwpCi0gCQkJICAgKyBIT1NUX0NIQVJfQklUIC0gMSkKLSAJICAgICAg LyBIT1NUX0NIQVJfQklUOwotIAotLQkgICAgLyogSWYgd2UgY2FuIHJlYWQtbW9kaWZ5LXdyaXRl IGV4YWN0bHkgdGhlIHNpemUgb2YgdGhlCi0tCSAgICAgICBjb250YWluaW5nIHR5cGUgKGUuZy4g c2hvcnQgb3IgaW50KSB0aGVuIGRvIHNvLiAgVGhpcwotLQkgICAgICAgaXMgc2FmZXIgZm9yIHZv bGF0aWxlIGJpdGZpZWxkcyBtYXBwZWQgdG8gaGFyZHdhcmUKLS0JICAgICAgIHJlZ2lzdGVycy4g ICovCi0tCSAgICBpZiAoY2hhbmdlZF9sZW4gPCBUWVBFX0xFTkdUSCAodHlwZSkKLS0JCSYmIFRZ UEVfTEVOR1RIICh0eXBlKSA8PSAoaW50KSBzaXplb2YgKExPTkdFU1QpCi0tCQkmJiAoKExPTkdF U1QpIHZhbHVlX2FkZHJlc3MgKHRvdmFsKSAlIFRZUEVfTEVOR1RIICh0eXBlKSkgPT0gMCkKLS0J ICAgICAgY2hhbmdlZF9sZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7Ci0tCi0gCSAgICBpZiAoY2hh bmdlZF9sZW4gPiAoaW50KSBzaXplb2YgKExPTkdFU1QpKQotIAkgICAgICBlcnJvciAoXygiQ2Fu J3QgaGFuZGxlIGJpdGZpZWxkcyB3aGljaCBkb24ndCBmaXQgaW4gYSAlZCBiaXQgd29yZC4iKSwK LSAJCSAgICAgKGludCkgc2l6ZW9mIChMT05HRVNUKSAqIEhPU1RfQ0hBUl9CSVQpOwotLS0tIC4v Z2RiL3ZhbHVlLmMJMjAwOS0wOC0yOCAxOToyNzoyOS4wMDAwMDAwMDAgKzAyMDAKLSsrKyAuL2dk Yi92YWx1ZS5jCTIwMDktMDgtMjggMTk6Mjg6MzQuMDAwMDAwMDAwICswMjAwCi1AQCAtMTEwLDEx ICsxMTAsNiBAQCBzdHJ1Y3QgdmFsdWUKLSAgICAgIGdkYmFyY2hfYml0c19iaWdfZW5kaWFuPTEg dGFyZ2V0cywgaXQgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBNU0IuICovCi0gICBpbnQgYml0cG9z OwotIAotLSAgLyogT25seSB1c2VkIGZvciBiaXRmaWVsZHM7IHRoZSBjb250YWluaW5nIHZhbHVl LiAgVGhpcyBhbGxvd3MgYQotLSAgICAgc2luZ2xlIHJlYWQgZnJvbSB0aGUgdGFyZ2V0IHdoZW4g ZGlzcGxheWluZyBtdWx0aXBsZQotLSAgICAgYml0ZmllbGRzLiAgKi8KLS0gIHN0cnVjdCB2YWx1 ZSAqcGFyZW50OwotLQotICAgLyogRnJhbWUgcmVnaXN0ZXIgdmFsdWUgaXMgcmVsYXRpdmUgdG8u ICBUaGlzIHdpbGwgYmUgZGVzY3JpYmVkIGluCi0gICAgICB0aGUgbHZhbCBlbnVtIGFib3ZlIGFz ICJsdmFsX3JlZ2lzdGVyIi4gICovCi0gICBzdHJ1Y3QgZnJhbWVfaWQgZnJhbWVfaWQ7Ci1AQCAt MzkyLDEyICszODcsNiBAQCBzZXRfdmFsdWVfYml0c2l6ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwg Ci0gICB2YWx1ZS0+Yml0c2l6ZSA9IGJpdDsKLSB9Ci0gCi0tc3RydWN0IHZhbHVlICoKLS12YWx1 ZV9wYXJlbnQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpCi0tewotLSAgcmV0dXJuIHZhbHVlLT5wYXJl bnQ7Ci0tfQotLQotIGdkYl9ieXRlICoKLSB2YWx1ZV9jb250ZW50c19yYXcgKHN0cnVjdCB2YWx1 ZSAqdmFsdWUpCi0gewotQEAgLTYxNywxMSArNjA2LDYgQEAgdmFsdWVfZnJlZSAoc3RydWN0IHZh bHVlICp2YWwpCi0gICAgICAgaWYgKHZhbC0+cmVmZXJlbmNlX2NvdW50ID4gMCkKLSAJcmV0dXJu OwotIAotLSAgICAgIC8qIElmIHRoZXJlJ3MgYW4gYXNzb2NpYXRlZCBwYXJlbnQgdmFsdWUsIGRy b3Agb3VyIHJlZmVyZW5jZSB0bwotLQkgaXQuICAqLwotLSAgICAgIGlmICh2YWwtPnBhcmVudCAh PSBOVUxMKQotLQl2YWx1ZV9mcmVlICh2YWwtPnBhcmVudCk7Ci0tCi0gICAgICAgdHlwZV9kZWNy ZWYgKHZhbC0+dHlwZSk7Ci0gICAgICAgdHlwZV9kZWNyZWYgKHZhbC0+ZW5jbG9zaW5nX3R5cGUp OwotIAotQEAgLTc1MCw5ICs3MzQsNiBAQCB2YWx1ZV9jb3B5IChzdHJ1Y3QgdmFsdWUgKmFyZykK LSAJICAgICAgVFlQRV9MRU5HVEggKHZhbHVlX2VuY2xvc2luZ190eXBlIChhcmcpKSk7Ci0gCi0g ICAgIH0KLS0gIHZhbC0+cGFyZW50ID0gYXJnLT5wYXJlbnQ7Ci0tICBpZiAodmFsLT5wYXJlbnQp Ci0tICAgIHZhbHVlX2luY3JlZiAodmFsLT5wYXJlbnQpOwotICAgaWYgKFZBTFVFX0xWQUwgKHZh bCkgPT0gbHZhbF9jb21wdXRlZCkKLSAgICAgewotICAgICAgIHN0cnVjdCBsdmFsX2Z1bmNzICpm dW5jcyA9IHZhbC0+bG9jYXRpb24uY29tcHV0ZWQuZnVuY3M7Ci1AQCAtMTk0NiwyOCArMTkyNywx NSBAQCB2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnCi0gCi0gICBpZiAo VFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubykpCi0gICAgIHsKLS0gICAgICAv KiBDcmVhdGUgYSBuZXcgdmFsdWUgZm9yIHRoZSBiaXRmaWVsZCwgd2l0aCBiaXRwb3MgYW5kIGJp dHNpemUKLS0JIHNldC4gIElmIHBvc3NpYmxlLCBhcnJhbmdlIG9mZnNldCBhbmQgYml0cG9zIHNv IHRoYXQgd2UgY2FuCi0tCSBkbyBhIHNpbmdsZSBhbGlnbmVkIHJlYWQgb2YgdGhlIHNpemUgb2Yg dGhlIGNvbnRhaW5pbmcgdHlwZS4KLS0JIE90aGVyd2lzZSwgYWRqdXN0IG9mZnNldCB0byB0aGUg Ynl0ZSBjb250YWluaW5nIHRoZSBmaXJzdAotLQkgYml0LiAgQXNzdW1lIHRoYXQgdGhlIGFkZHJl c3MsIG9mZnNldCwgYW5kIGVtYmVkZGVkIG9mZnNldAotLQkgYXJlIHN1ZmZpY2llbnRseSBhbGln bmVkLiAgKi8KLS0gICAgICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKGFyZ190eXBl LCBmaWVsZG5vKTsKLS0gICAgICBpbnQgY29udGFpbmVyX2JpdHNpemUgPSBUWVBFX0xFTkdUSCAo dHlwZSkgKiA4OwotLQotLSAgICAgIHYgPSBhbGxvY2F0ZV92YWx1ZV9sYXp5ICh0eXBlKTsKLSsg ICAgICB2ID0gdmFsdWVfZnJvbV9sb25nZXN0ICh0eXBlLAotKwkJCSAgICAgIHVucGFja19maWVs ZF9hc19sb25nIChhcmdfdHlwZSwKLSsJCQkJCQkgICAgdmFsdWVfY29udGVudHMgKGFyZzEpCi0r CQkJCQkJICAgICsgb2Zmc2V0LAotKwkJCQkJCSAgICBmaWVsZG5vKSk7Ci0rICAgICAgdi0+Yml0 cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKGFyZ190eXBlLCBmaWVsZG5vKSAlIDg7Ci0gICAgICAg di0+Yml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAoYXJnX3R5cGUsIGZpZWxkbm8pOwotLSAg ICAgIGlmICgoYml0cG9zICUgY29udGFpbmVyX2JpdHNpemUpICsgdi0+Yml0c2l6ZSA8PSBjb250 YWluZXJfYml0c2l6ZQotLQkgICYmIFRZUEVfTEVOR1RIICh0eXBlKSA8PSAoaW50KSBzaXplb2Yg KExPTkdFU1QpKQotLQl2LT5iaXRwb3MgPSBiaXRwb3MgJSBjb250YWluZXJfYml0c2l6ZTsKLS0g ICAgICBlbHNlCi0tCXYtPmJpdHBvcyA9IGJpdHBvcyAlIDg7Ci0tICAgICAgdi0+b2Zmc2V0ID0g dmFsdWVfb2Zmc2V0IChhcmcxKSArIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkKLS0JKyAo Yml0cG9zIC0gdi0+Yml0cG9zKSAvIDg7Ci0tICAgICAgdi0+cGFyZW50ID0gYXJnMTsKLS0gICAg ICB2YWx1ZV9pbmNyZWYgKHYtPnBhcmVudCk7Ci0tICAgICAgaWYgKCF2YWx1ZV9sYXp5IChhcmcx KSkKLS0JdmFsdWVfZmV0Y2hfbGF6eSAodik7Ci0rICAgICAgdi0+b2Zmc2V0ID0gdmFsdWVfb2Zm c2V0IChhcmcxKSArIG9mZnNldAotKwkrIFRZUEVfRklFTERfQklUUE9TIChhcmdfdHlwZSwgZmll bGRubykgLyA4OwotICAgICB9Ci0gICBlbHNlIGlmIChmaWVsZG5vIDwgVFlQRV9OX0JBU0VDTEFT U0VTIChhcmdfdHlwZSkpCi0gICAgIHsKLUBAIC0yMDk0LDkgKzIwNjIsOCBAQCB2YWx1ZV9mbl9m aWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0Ci0gfQotIAotIAwKLS0vKiBVbnBhY2sgYSBi aXRmaWVsZCBvZiB0aGUgc3BlY2lmaWVkIEZJRUxEX1RZUEUsIGZyb20gdGhlIGFub255bW91cwot LSAgIG9iamVjdCBhdCBWQUxBRERSLiAgVGhlIGJpdGZpZWxkIHN0YXJ0cyBhdCBCSVRQT1MgYml0 cyBhbmQgY29udGFpbnMKLS0gICBCSVRTSVpFIGJpdHMuCi0rLyogVW5wYWNrIGEgZmllbGQgRklF TEROTyBvZiB0aGUgc3BlY2lmaWVkIFRZUEUsIGZyb20gdGhlIGFub255bW91cyBvYmplY3QgYXQK LSsgICBWQUxBRERSLgotIAotICAgIEV4dHJhY3RpbmcgYml0cyBkZXBlbmRzIG9uIGVuZGlhbm5l c3Mgb2YgdGhlIG1hY2hpbmUuICBDb21wdXRlIHRoZQotICAgIG51bWJlciBvZiBsZWFzdCBzaWdu aWZpY2FudCBiaXRzIHRvIGRpc2NhcmQuICBGb3IgYmlnIGVuZGlhbiBtYWNoaW5lcywKLUBAIC0y MTEwLDIxICsyMDc3LDI0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwg c3QKLSAgICBJZiB0aGUgZmllbGQgaXMgc2lnbmVkLCB3ZSBhbHNvIGRvIHNpZ24gZXh0ZW5zaW9u LiAqLwotIAotIExPTkdFU1QKLS11bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqZmll bGRfdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgICAgIGludCBiaXRwb3MsIGlu dCBiaXRzaXplKQotK3VucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBmaWVsZG5vKQotIHsKLS0gIGVudW0gYmZkX2VuZGlh biBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoIChmaWVsZF90 eXBlKSk7Ci0rICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRl ciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwotICAgVUxPTkdFU1QgdmFsOwotICAgVUxPTkdFU1Qg dmFsbWFzazsKLSsgIGludCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgZmllbGRu byk7Ci0rICBpbnQgYml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgZmllbGRubyk7 Ci0gICBpbnQgbHNiY291bnQ7Ci0rICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKLSAKLSAgIHZh bCA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciAodmFsYWRkciArIGJpdHBvcyAvIDgsCi0gCQkJ CSAgc2l6ZW9mICh2YWwpLCBieXRlX29yZGVyKTsKLSsgIGZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxE X1RZUEUgKHR5cGUsIGZpZWxkbm8pOwotICAgQ0hFQ0tfVFlQRURFRiAoZmllbGRfdHlwZSk7Ci0g Ci0gICAvKiBFeHRyYWN0IGJpdHMuICBTZWUgY29tbWVudCBhYm92ZS4gKi8KLSAKLS0gIGlmIChn ZGJhcmNoX2JpdHNfYmlnX2VuZGlhbiAoZ2V0X3R5cGVfYXJjaCAoZmllbGRfdHlwZSkpKQotKyAg aWYgKGdkYmFyY2hfYml0c19iaWdfZW5kaWFuIChnZXRfdHlwZV9hcmNoICh0eXBlKSkpCi0gICAg IGxzYmNvdW50ID0gKHNpemVvZiB2YWwgKiA4IC0gYml0cG9zICUgOCAtIGJpdHNpemUpOwotICAg ZWxzZQotICAgICBsc2Jjb3VudCA9IChiaXRwb3MgJSA4KTsKLUBAIC0yMTQ4LDE5ICsyMTE4LDYg QEAgdW5wYWNrX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUgKmZpZWxkXwotICAgcmV0dXJuICh2 YWwpOwotIH0KLSAKLS0vKiBVbnBhY2sgYSBmaWVsZCBGSUVMRE5PIG9mIHRoZSBzcGVjaWZpZWQg VFlQRSwgZnJvbSB0aGUgYW5vbnltb3VzIG9iamVjdCBhdAotLSAgIFZBTEFERFIuICBTZWUgdW5w YWNrX2JpdHNfYXNfbG9uZyBmb3IgbW9yZSBkZXRhaWxzLiAgKi8KLS0KLS1MT05HRVNUCi0tdW5w YWNrX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwgaW50IGZpZWxkbm8pCi0tewotLSAgaW50IGJpdHBvcyA9IFRZUEVfRklFTERfQklUUE9T ICh0eXBlLCBmaWVsZG5vKTsKLS0gIGludCBiaXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0 eXBlLCBmaWVsZG5vKTsKLS0gIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gVFlQRV9GSUVMRF9U WVBFICh0eXBlLCBmaWVsZG5vKTsKLS0KLS0gIHJldHVybiB1bnBhY2tfYml0c19hc19sb25nIChm aWVsZF90eXBlLCB2YWxhZGRyLCBiaXRwb3MsIGJpdHNpemUpOwotLX0KLS0KLSAvKiBNb2RpZnkg dGhlIHZhbHVlIG9mIGEgYml0ZmllbGQuICBBRERSIHBvaW50cyB0byBhIGJsb2NrIG9mIG1lbW9y eSBpbgotICAgIHRhcmdldCBieXRlIG9yZGVyOyB0aGUgYml0ZmllbGQgc3RhcnRzIGluIHRoZSBi eXRlIHBvaW50ZWQgdG8uICBGSUVMRFZBTAotICAgIGlzIHRoZSBkZXNpcmVkIHZhbHVlIG9mIHRo ZSBmaWVsZCwgaW4gaG9zdCBieXRlIG9yZGVyLiAgQklUUE9TIGFuZCBCSVRTSVpFCi0tLS0gLi9n ZGIvdmFsdWUuaAkyMDA5LTA4LTI4IDE5OjI3OjI5LjAwMDAwMDAwMCArMDIwMAotKysrIC4vZ2Ri L3ZhbHVlLmgJMjAwOS0wOC0yOCAxOToyNzo1OS4wMDAwMDAwMDAgKzAyMDAKLUBAIC03MSwxMiAr NzEsNiBAQCBleHRlcm4gdm9pZCBzZXRfdmFsdWVfYml0c2l6ZSAoc3RydWN0IHZhCi0gZXh0ZXJu IGludCB2YWx1ZV9iaXRwb3MgKHN0cnVjdCB2YWx1ZSAqKTsKLSBleHRlcm4gdm9pZCBzZXRfdmFs dWVfYml0cG9zIChzdHJ1Y3QgdmFsdWUgKiwgaW50IGJpdCk7Ci0gCi0tLyogT25seSB1c2VkIGZv ciBiaXRmaWVsZHM7IHRoZSBjb250YWluaW5nIHZhbHVlLiAgVGhpcyBhbGxvd3MgYQotLSAgIHNp bmdsZSByZWFkIGZyb20gdGhlIHRhcmdldCB3aGVuIGRpc3BsYXlpbmcgbXVsdGlwbGUKLS0gICBi aXRmaWVsZHMuICAqLwotLQotLXN0cnVjdCB2YWx1ZSAqdmFsdWVfcGFyZW50IChzdHJ1Y3QgdmFs dWUgKik7Ci0tCi0gLyogRGVzY3JpYmVzIG9mZnNldCBvZiBhIHZhbHVlIHdpdGhpbiBsdmFsIG9m IGEgc3RydWN0dXJlIGluIGJ5dGVzLgotICAgIElmIGx2YWwgPT0gbHZhbF9tZW1vcnksIHRoaXMg aXMgYW4gb2Zmc2V0IHRvIHRoZSBhZGRyZXNzLiAgSWYgbHZhbAotICAgID09IGx2YWxfcmVnaXN0 ZXIsIHRoaXMgaXMgYSBmdXJ0aGVyIG9mZnNldCBmcm9tIGxvY2F0aW9uLmFkZHJlc3MKLUBAIC0z MzAsOCArMzI0LDYgQEAgZXh0ZXJuIExPTkdFU1QgdW5wYWNrX2xvbmcgKHN0cnVjdCB0eXBlIAot IGV4dGVybiBET1VCTEVTVCB1bnBhY2tfZG91YmxlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3Qg Z2RiX2J5dGUgKnZhbGFkZHIsCi0gCQkJICAgICAgIGludCAqaW52cCk7Ci0gZXh0ZXJuIENPUkVf QUREUiB1bnBhY2tfcG9pbnRlciAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyKTsKLS1MT05HRVNUIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVs ZF90eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkgICAgIGludCBiaXRwb3MsIGlu dCBiaXRzaXplKTsKLSBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RydWN0 IHR5cGUgKnR5cGUsCi0gCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0gCQkJCSAg ICAgaW50IGZpZWxkbm8pOwoKZGlmZiAtLWdpdCBhL2dkYi1yZWFkbGluZS02LjAucGF0Y2ggYi9n ZGItcmVhZGxpbmUtNi4wLnBhdGNoCmluZGV4IDI2ZDk0MDUuLjJkMDA2MGIgMTAwNjQ0Ci0tLSBh L2dkYi1yZWFkbGluZS02LjAucGF0Y2gKKysrIGIvZ2RiLXJlYWRsaW5lLTYuMC5wYXRjaApAQCAt Nyw5ICs3LDExIEBAIGdkYi8KIAkqIGNvbmZpZy5pbjogUmVnZW5lcmF0ZS4KIAkqIGNvbmZpZ3Vy ZTogUmVnZW5lcmF0ZS4KIAotLS0tIGEvZ2RiL2NvbmZpZ3VyZS5hYwotKysrIGIvZ2RiL2NvbmZp Z3VyZS5hYwotQEAgLTUzNiw2ICs1MzYsMjEgQEAgaWYgdGVzdCAiJHdpdGhfc3lzdGVtX3JlYWRs aW5lIiA9IHllczsgdGhlbgorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2NvbmZpZ3Vy ZS5hYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvY29uZmln dXJlLmFjCTIwMDktMDktMDkgMjA6MTE6MDQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41 MC4yMDA5MDkwOS9nZGIvY29uZmlndXJlLmFjCTIwMDktMDktMDkgMjA6MTE6NTQuMDAwMDAwMDAw ICswMjAwCitAQCAtNzczLDYgKzc3MywyMSBAQCBpZiB0ZXN0ICIkd2l0aF9zeXN0ZW1fcmVhZGxp bmUiID0geWVzOyB0CiAgICBSRUFETElORT0tbHJlYWRsaW5lCiAgICBSRUFETElORV9ERVBTPQog ICAgUkVBRExJTkVfQ0ZMQUdTPQpAQCAtMzEsOSArMzMsMTEgQEAgZ2RiLwogIGVsc2UKICAgIFJF QURMSU5FPSckKFJFQURMSU5FX0RJUikvbGlicmVhZGxpbmUuYScKICAgIFJFQURMSU5FX0RFUFM9 JyQoUkVBRExJTkUpJwotLS0tIGEvZ2RiL2NvbmZpZy5pbgotKysrIGIvZ2RiL2NvbmZpZy5pbgot QEAgLTc5MCw2ICs3OTAsOSBAQAorSW5kZXg6IGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2NvbmZp Zy5pbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi02LjguNTAuMjAwOTA5MDkub3JpZy9nZGIvY29uZmln LmluCTIwMDktMDktMDkgMjA6MTE6MzMuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTYuOC41MC4y MDA5MDkwOS9nZGIvY29uZmlnLmluCTIwMDktMDktMDkgMjA6MTI6MDAuMDAwMDAwMDAwICswMjAw CitAQCAtODE1LDYgKzgxNSw5IEBACiAgLyogRGVmaW5lIHRvIGBpbnQnIGlmIDxzeXMvdHlwZXMu aD4gZG9lcyBub3QgZGVmaW5lLiAqLwogICN1bmRlZiBwaWRfdAogIApAQCAtNDMsOSArNDcsMTEg QEAgZ2RiLwogIC8qIERlZmluZSB0byB0aGUgZXF1aXZhbGVudCBvZiB0aGUgQzk5ICdyZXN0cmlj dCcga2V5d29yZCwgb3IgdG8KICAgICBub3RoaW5nIGlmIHRoaXMgaXMgbm90IHN1cHBvcnRlZC4g IERvIG5vdCBkZWZpbmUgaWYgcmVzdHJpY3QgaXMKICAgICBzdXBwb3J0ZWQgZGlyZWN0bHkuICAq LwotLS0tIGEvZ2RiL2NvbmZpZ3VyZQotKysrIGIvZ2RiL2NvbmZpZ3VyZQotQEAgLTEwNzYzLDYg KzEwNzYzLDY5IEBAIGlmIHRlc3QgIiR3aXRoX3N5c3RlbV9yZWFkbGluZSIgPSB5ZXM7IHRoZW4K K0luZGV4OiBnZGItNi44LjUwLjIwMDkwOTA5L2dkYi9jb25maWd1cmUKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNi44LjUwLjIwMDkwOTA5Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDA5LTA5LTA5IDIwOjEx OjA3LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi02LjguNTAuMjAwOTA5MDkvZ2RiL2NvbmZpZ3Vy ZQkyMDA5LTA5LTA5IDIwOjExOjU0LjAwMDAwMDAwMCArMDIwMAorQEAgLTkxOTcsNiArOTE5Nyw2 OSBAQCBpZiB0ZXN0ICIkd2l0aF9zeXN0ZW1fcmVhZGxpbmUiID0geWVzOyB0CiAgICBSRUFETElO RT0tbHJlYWRsaW5lCiAgICBSRUFETElORV9ERVBTPQogICAgUkVBRExJTkVfQ0ZMQUdTPQoKZGlm ZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggMGViYjJjZS4uYmNkN2IzMSAxMDA2 NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTEwLDExICsxMCwxMSBAQCBOYW1l OiBnZGIlez9fd2l0aF9kZWJ1ZzotZGVidWd9CiAjIFNldCB2ZXJzaW9uIHRvIGNvbnRlbnRzIG9m IGdkYi92ZXJzaW9uLmluLgogIyBOT1RFOiB0aGUgRlNGIGdkYiB2ZXJzaW9ucyBhcmUgbnVtYmVy ZWQgTi5NIGZvciBvZmZpY2lhbCByZWxlYXNlcywgbGlrZSA2LjMgCiAjIGFuZCwgc2luY2UgSmFu dWFyeSAyMDA1LCBYLlkuWi5kYXRlIGZvciBkYWlseSBzbmFwc2hvdHMsIGxpa2UgNi4zLjUwLjIw MDUwMTEyICMgKGRhaWx5IHNuYXBzaG90IGZyb20gbWFpbGluZSksIG9yIDYuMy4wLjIwMDQwMTEy IChoZWFkIG9mIHRoZSByZWxlYXNlIGJyYW5jaCkuCi1WZXJzaW9uOiA2LjguNTAuMjAwOTA4MTgK K1ZlcnNpb246IDYuOC41MC4yMDA5MDkxMAogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlu cyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0n IGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBj b21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDglez9fd2l0aF91cHN0cmVhbTou dXBzdHJlYW19JXs/ZGlzdH0KK1JlbGVhc2U6IDElez9fd2l0aF91cHN0cmVhbToudXBzdHJlYW19 JXs/ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJz CkBAIC0yMTgsOCArMjE4LDggQEAgUGF0Y2gyMjk6IGdkYi02LjMtYnoxNDA1MzItcHBjLXVud2lu ZGluZy10ZXN0LnBhdGNoCiAjIFRlc3RjYXNlIGZvciBleGVjKCkgZnJvbSB0aHJlYWRlZCBwcm9n cmFtIChCWiAyMDI2ODkpLgogUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0 aHJlYWQtdGVzdC5wYXRjaAogCi0jIEJhY2twb3J0ZWQgcG9zdCBnZGItNi44LjUwLjIwMDkwODE4 IHNuYXBzaG90IGZpeHVwcy4KLVBhdGNoMjMyOiBnZGItNi44LjUwLjIwMDkwODE4LXVwc3RyZWFt LnBhdGNoCisjIEJhY2twb3J0ZWQgcG9zdCBnZGItNi44LjUwLjIwMDkwOTEwIHNuYXBzaG90IGZp eHVwcy4KKyNQYXRjaDIzMjogZ2RiLTYuOC41MC4yMDA5MDkxMC11cHN0cmVhbS5wYXRjaAogCiAj IFRlc3RjYXNlIGZvciBQUEMgUG93ZXI2L0RGUCBpbnN0cnVjdGlvbnMgZGlzYXNzZW1ibHkgKEJa IDIzMDAwMCkuCiBQYXRjaDIzNDogZ2RiLTYuNi1iejIzMDAwMC1wb3dlcjYtZGlzYXNzZW1ibHkt dGVzdC5wYXRjaApAQCAtMzYzLDkgKzM2Myw2IEBAIFBhdGNoMzc1OiBnZGItcmVhZGxpbmUtNi4w LnBhdGNoCiAjIFRlbXBvcmFyaWx5IGRpc2FibGUgYXNzZXJ0aW9uIGNoZWNrcyBjcmFzaGluZyBp biBxc29ydF9jbXAgKEJaIDUxNTQzNCkuCiBQYXRjaDM3ODogZ2RiLWJ6NTE1NDM0LXFzb3J0X2Nt cC5wYXRjaAogCi0jIFJldmVydCBiaXRmaWVsZHMgcmVncmVzc2lvbiAoQlogNTIwMTI5KS4KLVBh dGNoMzgwOiBnZGItYno1MjAxMjktZHJvdy1iaXRmaWVsZHMucGF0Y2gKLQogQnVpbGRSZXF1aXJl czogbmN1cnNlcy1kZXZlbCB0ZXhpbmZvIGdldHRleHQgZmxleCBiaXNvbiBleHBhdC1kZXZlbAog UmVxdWlyZXM6IHJlYWRsaW5lCiBCdWlsZFJlcXVpcmVzOiByZWFkbGluZS1kZXZlbApAQCAtNDUw LDcgKzQ0Nyw3IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhw LmMgZ2RiL3AtZXhwLmMKIAogJWlmIDAleyE/X3dpdGhfdXBzdHJlYW06MX0KIAotJXBhdGNoMjMy IC1wMQorI3BhdGNoMjMyIC1wMQogJXBhdGNoMzQ5IC1wMQogJXBhdGNoMSAtcDEKICVwYXRjaDMg LXAxCkBAIC01NTUsNyArNTUyLDYgQEAgcm0gLWYgZ2RiL2p2LWV4cC5jIGdkYi9tMi1leHAuYyBn ZGIvb2JqYy1leHAuYyBnZGIvcC1leHAuYwogJXBhdGNoMzYwIC1wMQogJXBhdGNoMzc1IC1wMQog JXBhdGNoMzc4IC1wMQotJXBhdGNoMzgwIC1wMQogJXBhdGNoMTI0IC1wMQogCiBmaW5kIC1uYW1l ICIqLm9yaWciIHwgeGFyZ3Mgcm0gLWYKQEAgLTgyOSw2ICs4MjUsMTIgQEAgZmkKICVlbmRpZgog CiAlY2hhbmdlbG9nCisqIFRodSBTZXAgMTAgMjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4gLSA2LjguNTAuMjAwOTA5MTAtMQorLSBVcGdyYWRlIHRvIHRoZSBG U0YgR0RCIGdkYi02LjguNTAgc25hcHNob3Q6IDYuOC41MC4yMDA5MDkxMAorLSBhcmNoZXItamFu a3JhdG9jaHZpbC1mZWRvcmExMiBjb21taXQ6IDk0MWViNDg3YTQyOTMzZTQ0MmNiNGQxMTM0NGNk YTk2ZWNiOGEwNGQKKyAgLSBbbmV4dC1vdmVyLXRocm93XSBGaXggZXhjZXB0aW9ucyB0aHJvd24g ZHVyaW5nIG5leHQgKFRvbSBUcm9tZXkpLgorICAtIFticF9sb2NhdGlvbi1hY2NlbF0gRG8gbm90 IChtdWNoKSBzbG93IGRvd24gb24gNTAwKyBicmVha3BvaW50cyAobWUpLgorCiAqIFRodSBTZXAg IDMgMjAwOSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA2Ljgu NTAuMjAwOTA4MTgtOAogLSBhcmNoZXItamFua3JhdG9jaHZpbC1mZWRvcmExMiBjb21taXQ6IGEw ODFkMmYxMjk0NWU5NDY4ZWRkNWY0MzQxZDNlOTQ1YmQwZmVmZTkKICAgLSBbZXhwcl0gRml4IHRv byBzbG93IGxvb2t1cHMgaW4gbGFyZ2UgQysrIHByb2dyYW1zIChTYW1pIFdhZ2lhYWxsYSkuCgpk aWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggNmVmNmIxZS4uOTkxZGZiMCAxMDA2 NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi02M2Q4NDhjZmRkOWE0 M2E5YjJiNDEyYTIyMGQwMDM2NiAgZ2RiLTYuOC41MC4yMDA5MDgxOC50YXIuYnoyCis0NzZlMDA1 YjhiYjMzYzVjM2IzZjBiN2JkOTM5ODhiYyAgZ2RiLTYuOC41MC4yMDA5MDkxMC50YXIuYnoyCg==