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: Rebase to FSF GDB 7.11.50.20160716 (pre-7.12 trunk snapshot). Date: Thu, 23 Jul 2026 18:32:22 GMT Message-ID: <178483154297.1.1694005384027434488.rpms-gdb-7306e88eb46e@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 7306e88eb46e8ab011270f0f91ec226c5bf17363 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogNzMwNmU4OGViNDZlOGFiMDExMjcwZjBmOTFlYzIyNmM1 YmYxNzM2MwpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxNi0wNy0xN1QxNjozNTo0OSswMjowMApTdGF0cyAgOiArMzk2MC8tNDcw NSBpbiA0MCBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvZ2RiL2MvNzMwNmU4OGViNDZlOGFiMDExMjcwZjBmOTFlYzIyNmM1YmYxNzM2Mz9icmFuY2g9 Zml4LWR1cC1wYXRjaAoKTG9nOgpSZWJhc2UgdG8gRlNGIEdEQiA3LjExLjUwLjIwMTYwNzE2IChw cmUtNy4xMiB0cnVuayBzbmFwc2hvdCkuCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8u Z2l0aWdub3JlCmluZGV4IGRiYjE1Y2IuLjVhZjBmOWYgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUK KysrIGIvLmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5dGhv bi1yMjI1NTIxLnRhci54egotL2dkYi03LjExLjEudGFyLnh6CisvZ2RiLTcuMTEuNTAuMjAxNjA3 MTYudGFyLnh6CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2gg Yi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAppbmRleCA1ZWZjYzVhLi41NmNlN2Ri IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorKysgYi9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaApAQCAtMSwyNSArMSwxNiBAQAotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ldmVudC10b3AuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi9ldmVudC10b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYw MTA2Lm9yaWcvZ2RiL2V2ZW50LXRvcC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V2 ZW50LXRvcC5jCi1AQCAtMzcsNiArMzcsNyBAQAotICNpbmNsdWRlICJnZGJjbWQuaCIJCS8qIGZv ciBkb250X3JlcGVhdCgpICovCi0gI2luY2x1ZGUgImFubm90YXRlLmgiCi0gI2luY2x1ZGUgIm1h aW50LmgiCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAx Ni0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvZXZlbnQtdG9wLmMJMjAxNi0wNy0wMyAxNDozNzoxMi41NzIxMzA3MzQgKzAyMDAKK0BA IC00MCw2ICs0MCw3IEBACisgI2luY2x1ZGUgImJ1ZmZlci5oIgorICNpbmNsdWRlICJzZXItZXZl bnQuaCIKKyAjaW5jbHVkZSAiZ2RiX3NlbGVjdC5oIgogKyNpbmNsdWRlICJzeW1maWxlLmgiCiAg CiAgLyogcmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICovCiAgI2luY2x1ZGUgInJlYWRsaW5lL3Jl YWRsaW5lLmgiCi1AQCAtMTgwLDYgKzE4MSw4IEBAIHJsX2NhbGxiYWNrX3JlYWRfY2hhcl93cmFw cGVyIChnZGJfY2xpZW4KLSB2b2lkCi0gY2xpX2NvbW1hbmRfbG9vcCAodm9pZCAqZGF0YSkKLSB7 Ci0rICBkZWJ1Z19mbHVzaF9taXNzaW5nICgpOwotKwotICAgZGlzcGxheV9nZGJfcHJvbXB0ICgw KTsKLSAKLSAgIC8qIE5vdyBpdCdzIHRpbWUgdG8gc3RhcnQgdGhlIGV2ZW50IGxvb3AuICAqLwot QEAgLTI5OCw2ICszMDEsOCBAQCBkaXNwbGF5X2dkYl9wcm9tcHQgKGNvbnN0IGNoYXIgKm5ld19w cm9tCitAQCAtMzQ3LDYgKzM0OCw4IEBACiAgICAvKiBSZXNldCB0aGUgbmVzdGluZyBkZXB0aCB1 c2VkIHdoZW4gdHJhY2UtY29tbWFuZHMgaXMgc2V0LiAgKi8KICAgIHJlc2V0X2NvbW1hbmRfbmVz dF9kZXB0aCAoKTsKICAKQEAgLTI4LDExICsxOSwyMyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2V2ZW50LXRvcC5jCiAgICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXAgKGZyZWVf Y3VycmVudF9jb250ZW50cywgJmFjdHVhbF9nZGJfcHJvbXB0KTsKICAKICAgIC8qIERvIG5vdCBj YWxsIHRoZSBweXRob24gaG9vayBvbiBhbiBleHBsaWNpdCBwcm9tcHQgY2hhbmdlIGFzCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3N5bWZpbGUuaAorQEAgLTc5NCw3ICs3OTcsMTAg QEAKKyAgICAgICBjb21tYW5kX2hhbmRsZXIgKGNtZCk7CisgCisgICAgICAgaWYgKHVpLT5wcm9t cHRfc3RhdGUgIT0gUFJPTVBURUQpCistCWRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7CisrCXsKKysJ ICBkZWJ1Z19mbHVzaF9taXNzaW5nICgpOworKwkgIGRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7Cisr CX0KKyAgICAgfQorIH0KKyAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc3ltZmls ZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3ltZmls ZS5oCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3N5bWZpbGUuaAotQEAgLTU4Nyw2ICs1 ODcsOCBAQCB2b2lkIG1hcF9zeW1ib2xfZmlsZW5hbWVzIChzeW1ib2xfZmlsZW5hCistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTYtMDctMDMgMTQ6MzQ6MzIu MDMyNzUzNjY4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3N5bWZpbGUuaAky MDE2LTA3LTAzIDE0OjM3OjEyLjU3MzEzMDc0MiArMDIwMAorQEAgLTU5Miw2ICs1OTIsOCBAQAog IC8qIGJ1aWxkLWlkIHN1cHBvcnQuICAqLwogIGV4dGVybiBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpi dWlsZF9pZF9hZGRyX2dldCAoQ09SRV9BRERSIGFkZHIpOwogIGV4dGVybiB2b2lkIGRlYnVnX3By aW50X21pc3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwgY29uc3QgY2hhciAqZGVidWcpOwpAQCAt NDEsNDggKzQ0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3ltZmlsZS5o CiAgCiAgLyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAotQEAgLTE2NDIsNyArMTY0Miw3 IEBAIHByb2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKLSAJICAgIHdhcm5pbmcgIkNvdWxkbid0 IHNldCB0aGUgd2lkdGggdG8gMC4iCi0gCX0KLSAgICAgfQotLSAgICAjIFR1cm4gb2ZmIHRoZSBt aXNzaW5nIHdhcm5pbmdzIGFzIHRoZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhwZWN0IGl0LgotKyAg ICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIFJQTXMgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBk b2VzIG5vdCBleHBlY3QgaXQuCi0gICAgIHNlbmRfZ2RiICJzZXQgYnVpbGQtaWQtdmVyYm9zZSAw XG4iCi0gICAgIGdkYl9leHBlY3QgMTAgewotIAktcmUgIiRnZGJfcHJvbXB0ICQiIHsKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9s aWIvbWktc3VwcG9ydC5leHAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRl L2xpYi9taS1zdXBwb3J0LmV4cAotQEAgLTIwNCw3ICsyMDQsNyBAQCBwcm9jIGRlZmF1bHRfbWlf Z2RiX3N0YXJ0IHsgYXJncyB9IHsKLSAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lk dGggdG8gMC4iCi0gCX0KLSAgICAgfQotLSAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIHdhcm5p bmdzIGFzIHRoZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhwZWN0IGl0LgotKyAgICAjIFR1cm4gb2Zm IHRoZSBtaXNzaW5nIFJQTXMgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBl Y3QgaXQuCi0gICAgIHNlbmRfZ2RiICIxOTAtZ2RiLXNldCBidWlsZC1pZC12ZXJib3NlIDBcbiIK LSAgICAgZ2RiX2V4cGVjdCAxMCB7Ci0gCS1yZSAiLioxOTAtZ2RiLXNldCBidWlsZC1pZC12ZXJi b3NlIDBcclxuMTkwXFxcXmRvbmVcclxuJG1pX2dkYl9wcm9tcHQkIiB7Ci1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3R1aS90dWktaW50ZXJwLmMKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi90dWkvdHVpLWludGVycC5jCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3R1aS90dWktaW50ZXJwLmMKLUBAIC0zMSw2ICszMSw3IEBACi0gI2lu Y2x1ZGUgInR1aS90dWktaW8uaCIKLSAjaW5jbHVkZSAiaW5mcnVuLmgiCi0gI2luY2x1ZGUgIm9i c2VydmVyLmgiCi0rI2luY2x1ZGUgInN5bWZpbGUuaCIKLSAKLSBzdGF0aWMgc3RydWN0IHVpX291 dCAqdHVpX3VpX291dCAoc3RydWN0IGludGVycCAqc2VsZik7Ci0gCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2FjbG9jYWwubTQKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvYWNsb2NhbC5tNAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcv Z2RiL2FjbG9jYWwubTQKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYWNsb2NhbC5tNAor LS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2FjbG9jYWwubTQJMjAxNi0wNy0wMiAy Mzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYWNs b2NhbC5tNAkyMDE2LTA3LTAzIDE0OjM3OjEyLjU3NjEzMDc2OCArMDIwMAogQEAgLTExLDYgKzEx LDIyMSBAQAogICMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQQogICMgUEFSVElDVUxBUiBQVVJQT1NFLgpAQCAtMzA1LDEwICsyNzAs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hY2xvY2FsLm00CiAgIyBBTV9B VVhfRElSX0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSot IEF1dG9jb25mIC0qLQogIAogICMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvY29uZmlnLmluCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvbmZpZy5pbgog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZy5pbgot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWcuaW4KKy0tLSBnZGItNy4xMS41MC4y MDE2MDYzMC5vcmlnL2dkYi9jb25maWcuaW4JMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlnLmluCTIwMTYtMDctMDMg MTQ6Mzc6MTIuNTc2MTMwNzY4ICswMjAwCiBAQCAtMzMsNiArMzMsOSBAQAogIC8qIERlZmluZSB0 byBCRkQncyBkZWZhdWx0IHRhcmdldCB2ZWN0b3IuICovCiAgI3VuZGVmIERFRkFVTFRfQkZEX1ZF QwpAQCAtMzE5LDcgKzI4NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29u ZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgdHJhbnNsYXRpb24gb2YgcHJvZ3JhbSBtZXNzYWdl cyB0byB0aGUgdXNlcidzIG5hdGl2ZQogICAgIGxhbmd1YWdlIGlzIHJlcXVlc3RlZC4gKi8KICAj dW5kZWYgRU5BQkxFX05MUwotQEAgLTI1OCw2ICsyNjEsOSBAQAorQEAgLTI2MSw2ICsyNjQsOSBA QAogIC8qIERlZmluZSBpZiBQeXRob24gMi43IGlzIGJlaW5nIHVzZWQuICovCiAgI3VuZGVmIEhB VkVfTElCUFlUSE9OMl83CiAgCkBAIC0zMjksMTEgKzI5NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8bGlidW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVmIEhBVkVfTElCVU5X SU5EX0lBNjRfSAogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlndXJlCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY29uZmlndXJlCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQotQEAgLTcwNSw2ICs3MDUsMTEgQEAgUEtHVkVSU0lP TgorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA3LTAy IDIzOjQzOjI0LjA4NTIxNDE0NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9j b25maWd1cmUJMjAxNi0wNy0wMyAxNDozNzoxMi41ODExMzA4MTEgKzAyMDAKK0BAIC03MDUsNiAr NzA1LDExIEBACiAgSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VUCiAgVEFSR0VUX09CUwogIHN1YmRp cnMKQEAgLTM0NSw3ICszMTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2Nv bmZpZ3VyZQogIEdEQl9EQVRBRElSCiAgREVCVUdESVIKICBNQUtFSU5GT19FWFRSQV9GTEFHUwot QEAgLTgxMyw2ICs4MTgsNyBAQCB3aXRoX2dkYl9kYXRhZGlyCitAQCAtODE0LDYgKzgxOSw3IEBA CiAgd2l0aF9yZWxvY2F0ZWRfc291cmNlcwogIHdpdGhfYXV0b19sb2FkX2RpcgogIHdpdGhfYXV0 b19sb2FkX3NhZmVfcGF0aApAQCAtMzUzLDcgKzMxOCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvY29uZmlndXJlCiAgZW5hYmxlX3RhcmdldHMKICBlbmFibGVfNjRfYml0X2Jm ZAogIGVuYWJsZV9nZGJjbGkKLUBAIC04NjksNiArODc1LDExIEBAIENDQworQEAgLTg3MCw2ICs4 NzYsMTEgQEAKICBDUFAKICBNQUtFSU5GTwogIE1BS0VJTkZPRkxBR1MKQEAgLTM2NSw3ICszMzAs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQogIFlBQ0MKICBZ RkxBR1MKICBYTUtNRicKLUBAIC0xNTQwLDYgKzE1NTEsOCBAQCBPcHRpb25hbCBQYWNrYWdlczoK K0BAIC0xNTQxLDYgKzE1NTIsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWy0td2l0 aC1hdXRvLWxvYWQtZGlyXQogICAgLS13aXRob3V0LWF1dG8tbG9hZC1zYWZlLXBhdGgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRvIG5vdCByZXN0cmljdCBhdXRvLWxvYWRlZCBmaWxlcyBs b2NhdGlvbnMKQEAgLTM3NCw3ICszMzksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2NvbmZpZ3VyZQogICAgLS13aXRoLWxpYnVud2luZC1pYTY0ICAgdXNlIGxpYnVud2luZCBm cmFtZSB1bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0cwogICAgLS13aXRoLWN1cnNlcyAgICAgICAg ICAgdXNlIHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5Ci1AQCAtMTU5NSw2ICsxNjA4LDEzIEBAIFNvbWUg aW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorQEAgLTE1OTUsNiArMTYwOCwxMyBA QAogICAgTUFLRUlORk8gICAgUGFyZW50IGNvbmZpZ3VyZSBkZXRlY3RzIGlmIGl0IGlzIG9mIHN1 ZmZpY2llbnQgdmVyc2lvbi4KICAgIE1BS0VJTkZPRkxBR1MKICAgICAgICAgICAgICAgIFBhcmFt ZXRlcnMgZm9yIE1BS0VJTkZPLgpAQCAtMzg4LDcgKzM1Myw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCiAgICBZQUNDICAgICAgICBUaGUgYFlldCBBbm90aGVy IEMgQ29tcGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4gRGVmYXVsdHMgdG8KICAgICAgICAg ICAgICAgIHRoZSBmaXJzdCBwcm9ncmFtIGZvdW5kIG91dCBvZjogYGJpc29uIC15JywgYGJ5YWNj JywgYHlhY2MnLgogICAgWUZMQUdTICAgICAgVGhlIGxpc3Qgb2YgYXJndW1lbnRzIHRoYXQgd2ls bCBiZSBwYXNzZWQgYnkgZGVmYXVsdCB0byAkWUFDQy4KLUBAIC01NjU1LDYgKzU2NzUsNDk0IEBA IF9BQ0VPRgorQEAgLTU2MTMsNiArNTYzMyw0OTQgQEAKICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aCIgPiY1 CiAgJGFzX2VjaG8gIiR3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgiID4mNjsgfQogIApAQCAtODgz LDExICs4NDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUK ICAKICAKICBzdWJkaXJzPSIkc3ViZGlycyB0ZXN0c3VpdGUiCi1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9jb25maWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmln L2dkYi9jb25maWd1cmUuYWMKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJl LmFjCi1AQCAtMTc3LDYgKzE3NywxOTkgQEAgQUNfREVGSU5FX0RJUihBVVRPX0xPQURfU0FGRV9Q QVRILCBlc2NhcAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvbmZpZ3VyZS5h YwkyMDE2LTA3LTAyIDIzOjQzOjI0LjA4NTIxNDE0NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi9jb25maWd1cmUuYWMJMjAxNi0wNy0wMyAxNDozNzoxMi41ODIxMzA4MTkgKzAy MDAKK0BAIC0xNzcsNiArMTc3LDE5OSBAQAogIAkgICAgICBbRGlyZWN0b3JpZXMgc2FmZSB0byBo b2xkIGF1dG8tbG9hZGVkIGZpbGVzLl0pCiAgQUNfTVNHX1JFU1VMVChbJHdpdGhfYXV0b19sb2Fk X3NhZmVfcGF0aF0pCiAgCkBAIC0xMDg3LDExICsxMDUyLDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCiAgQUNfQ09ORklHX1NVQkRJUlModGVzdHN1aXRl KQogIAogICMgQ2hlY2sgd2hldGhlciB0byBzdXBwb3J0IGFsdGVybmF0aXZlIHRhcmdldCBjb25m aWd1cmF0aW9ucwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb3JlbG93LmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY29yZWxvdy5jCi0rKysgZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL2NvcmVsb3cuYwotQEAgLTMxMCw3ICszMTAsNyBAQCBidWlsZF9pZF9sb2Nh dGVfZXhlYyAoaW50IGZyb21fdHR5KQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2Ri L2NvcmVsb3cuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAyMjc1MzU4MiArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9jb3JlbG93LmMJMjAxNi0wNy0wMyAxNDozNzoxMi41ODIxMzA4 MTkgKzAyMDAKK0BAIC0zMTAsNyArMzEwLDcgQEAKICAgICAgICAgIHN5bWZpbGVfb2JqZmlsZS0+ ZmxhZ3MgfD0gT0JKRl9CVUlMRF9JRF9DT1JFX0xPQURFRDsKICAgICAgfQogICAgZWxzZQpAQCAt MTEwMCwxMCArMTA2NSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvcmVs b3cuYwogIAogICAgZG9fY2xlYW51cHMgKGJhY2tfdG8pOwogIAotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2J1aWxkLWlkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dk Yi9idWlsZC1pZC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlkLmMKKy0t LSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9idWlsZC1pZC5jCTIwMTYtMDctMDMgMTQ6 MzY6NTAuMTI0OTM4MTg3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxk LWlkLmMJMjAxNi0wNy0wMyAxNDo0MjoyNS4xNzE4MTIxMzQgKzAyMDAKIEBAIC0zNSw2ICszNSw3 IEBACiAgI2luY2x1ZGUgImVsZi9jb21tb24uaCIKICAjaW5jbHVkZSAiZWxmLWJmZC5oIgpAQCAt MTExMiw3ICsxMDc3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1p ZC5jCiAgCiAgI2RlZmluZSBCVUlMRF9JRF9WRVJCT1NFX05PTkUgMAogICNkZWZpbmUgQlVJTERf SURfVkVSQk9TRV9GSUxFTkFNRVMgMQotQEAgLTY2NSw4ICs2NjYsMzY2IEBAIGJ1aWxkX2lkX3Rv X2ZpbGVuYW1lIChjb25zdCBzdHJ1Y3QgYmZkX2IKK0BAIC02NjUsOCArNjY2LDM2NiBAQAogICAg cmV0dXJuIHJlc3VsdDsKICB9CiAgCkBAIC0xMjIxLDEzICsxMTg2LDEzIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvYnVpbGQtaWQuYwogKwkgICAgcmV0dXJuIDA7CiArCSAgfQog KwotKwlpZiAoISgoaGVhZGVyRm9ybWF0X3AgPSBkbHN5bSAoaCwgImhlYWRlckZvcm1hdCIpKQot KwkgICAgICAmJiAocnBtUmVhZENvbmZpZ0ZpbGVzX3AgPSBkbHN5bSAoaCwgInJwbVJlYWRDb25m aWdGaWxlcyIpKQotKwkgICAgICAmJiAocnBtZGJGcmVlSXRlcmF0b3JfcCA9IGRsc3ltIChoLCAi cnBtZGJGcmVlSXRlcmF0b3IiKSkKLSsJICAgICAgJiYgKHJwbWRiTmV4dEl0ZXJhdG9yX3AgPSBk bHN5bSAoaCwgInJwbWRiTmV4dEl0ZXJhdG9yIikpCi0rCSAgICAgICYmIChycG10c0NyZWF0ZV9w ID0gZGxzeW0gKGgsICJycG10c0NyZWF0ZSIpKQotKwkgICAgICAmJiAocnBtdHNGcmVlX3AgPSBk bHN5bSAoaCwgInJwbXRzRnJlZSIpKQotKwkgICAgICAmJiAocnBtdHNJbml0SXRlcmF0b3JfcCA9 IGRsc3ltIChoLCAicnBtdHNJbml0SXRlcmF0b3IiKSkpKQorKwlpZiAoISgoaGVhZGVyRm9ybWF0 X3AgPSAoY2hhciAqKCopIChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3QgKmVy cm1zZykpIGRsc3ltIChoLCAiaGVhZGVyRm9ybWF0IikpCisrCSAgICAgICYmIChycG1SZWFkQ29u ZmlnRmlsZXNfcCA9IChpbnQgKCopIChjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRh cmdldCkpIGRsc3ltIChoLCAicnBtUmVhZENvbmZpZ0ZpbGVzIikpCisrCSAgICAgICYmIChycG1k YkZyZWVJdGVyYXRvcl9wID0gKHJwbWRiTWF0Y2hJdGVyYXRvciAoKikgKHJwbWRiTWF0Y2hJdGVy YXRvciBtaSkpIGRsc3ltIChoLCAicnBtZGJGcmVlSXRlcmF0b3IiKSkKKysJICAgICAgJiYgKHJw bWRiTmV4dEl0ZXJhdG9yX3AgPSAoSGVhZGVyICgqKSAocnBtZGJNYXRjaEl0ZXJhdG9yIG1pKSkg ZGxzeW0gKGgsICJycG1kYk5leHRJdGVyYXRvciIpKQorKwkgICAgICAmJiAocnBtdHNDcmVhdGVf cCA9IChycG10cyAoKikgKHZvaWQpKSBkbHN5bSAoaCwgInJwbXRzQ3JlYXRlIikpCisrCSAgICAg ICYmIChycG10c0ZyZWVfcCA9IChycG10cyAoKikgKHJwbXRzIHRzKSkgZGxzeW0gKGgsICJycG10 c0ZyZWUiKSkKKysJICAgICAgJiYgKHJwbXRzSW5pdEl0ZXJhdG9yX3AgPSAocnBtZGJNYXRjaEl0 ZXJhdG9yICgqKSAoY29uc3QgcnBtdHMgdHMsIHJwbVRhZyBycG10YWcsIGNvbnN0IHZvaWQgKmtl eXAsIHNpemVfdCBrZXlsZW4pKSBkbHN5bSAoaCwgInJwbXRzSW5pdEl0ZXJhdG9yIikpKSkKICsJ ICB7CiArCSAgICB3YXJuaW5nIChfKCJPcGVuZWQgbGlicmFyeSBcIiVzXCIgaXMgaW5jb21wYXRp YmxlICglcyksICIKICsJCSAgICAgICJtaXNzaW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0aW9ucyB3 aWxsIG5vdCBiZSBkaXNwbGF5ZWQiKSwKQEAgLTEyODMsMTIgKzEyNDgsMTIgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiArCSAgaWYgKHMgPiBkZWJ1Z2luZm8g JiYgbWVtY21wIChzLCAiLnNyYy5ycG0iLCBzcmNycG1sZW4pID09IDApCiArCSAgICB7CiArCSAg ICAgIC8qIHMyID0gYC0le3JlbGVhc2V9LnNyYy5ycG0tZGVidWdpbmZvLiV7YXJjaH0nICovCi0r CSAgICAgIHMyID0gbWVtcmNociAoZGVidWdpbmZvLCAnLScsIHMgLSBkZWJ1Z2luZm8pOworKwkg ICAgICBzMiA9IChjaGFyICopIG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzIC0gZGVidWdpbmZv KTsKICsJICAgIH0KICsJICBpZiAoczIpCiArCSAgICB7CiArCSAgICAgIC8qIHMyID0gYC0le3Zl cnNpb259LSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KLSsJICAgICAg czIgPSBtZW1yY2hyIChkZWJ1Z2luZm8sICctJywgczIgLSBkZWJ1Z2luZm8pOworKwkgICAgICBz MiA9IChjaGFyICopIG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzMiAtIGRlYnVnaW5mbyk7CiAr CSAgICB9CiArCSAgaWYgKCFzMikKICsJICAgIHsKQEAgLTEzMTEsNyArMTI3Niw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYnVpbGQtaWQuYwogKwogKwkgIC8qIFJQTURCSV9Q QUNLQUdFUyByZXF1aXJlcyBrZXlsZW4gPT0gc2l6ZW9mIChpbnQpLiAgKi8KICsJICAvKiBSUE1E QklfTEFCRUwgaXMgYW4gaW50ZXJmYWNlIGZvciBOVlItYmFzZWQgZGJpRmluZEJ5TGFiZWwoKS4g ICovCi0rCSAgbWlfZGVidWdpbmZvID0gcnBtdHNJbml0SXRlcmF0b3JfcCAodHMsIFJQTURCSV9M QUJFTCwgZGVidWdpbmZvLCAwKTsKKysJICBtaV9kZWJ1Z2luZm8gPSBycG10c0luaXRJdGVyYXRv cl9wICh0cywgKHJwbVRhZykgUlBNREJJX0xBQkVMLCBkZWJ1Z2luZm8sIDApOwogKwkgIHhmcmVl IChkZWJ1Z2luZm8pOwogKwkgIGlmIChtaV9kZWJ1Z2luZm8pCiArCSAgICB7CkBAIC0xMzYyLDcg KzEzMjcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlkLmMKICsK ICsJICAgICAgKnNsb3QgPSBkZWJ1Z2luZm87CiArCi0rCSAgICAgIG1pc3NpbmdfcnBtID0geG1h bGxvYyAoc2l6ZW9mICgqbWlzc2luZ19ycG0pICsgc3RybGVuIChkZWJ1Z2luZm8pKTsKKysJICAg ICAgbWlzc2luZ19ycG0gPSAoc3RydWN0IG1pc3NpbmdfcnBtICopIHhtYWxsb2MgKHNpemVvZiAo Km1pc3NpbmdfcnBtKSArIHN0cmxlbiAoZGVidWdpbmZvKSk7CiArCSAgICAgIHN0cmNweSAobWlz c2luZ19ycG0tPnJwbSwgZGVidWdpbmZvKTsKICsJICAgICAgbWlzc2luZ19ycG0tPm5leHQgPSBt aXNzaW5nX3JwbV9saXN0OwogKwkgICAgICBtaXNzaW5nX3JwbV9saXN0ID0gbWlzc2luZ19ycG07 CkBAIC0xNDAwLDcgKzEzNjUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1 aWxkLWlkLmMKICsgIGlmIChtaXNzaW5nX3JwbV9saXN0X2VudHJpZXMgPT0gMCkKICsgICAgcmV0 dXJuOwogKwotKyAgYXJyYXkgPSB4bWFsbG9jIChzaXplb2YgKCphcnJheSkgKiBtaXNzaW5nX3Jw bV9saXN0X2VudHJpZXMpOworKyAgYXJyYXkgPSAoY2hhciAqKikgeG1hbGxvYyAoc2l6ZW9mICgq YXJyYXkpICogbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKTsKICsgIGNsZWFudXBzID0gbWFrZV9j bGVhbnVwICh4ZnJlZSwgYXJyYXkpOwogKwogKyAgYXJyYXlfaXRlciA9IGFycmF5OwpAQCAtMTQ4 MCw3ICsxNDQ1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5j CiAgICAgYXZvaWRhbmNlLiAgKi8KICAKICBzdHJ1Y3QgbWlzc2luZ19maWxlcGFpcgotQEAgLTcy MCwxMSArMTA3OSwxNyBAQCBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAodm9pZCkKK0BAIC03MjAs MTEgKzEwNzksMTcgQEAKICAgICAgICAvKiBBbGwgdGhlaXIgbWVtb3J5IGNhbWUganVzdCBmcm9t IG1pc3NpbmdfZmlsZXBhaXJfT0JTVEFDSy4gICovCiAgICAgICAgbWlzc2luZ19maWxlcGFpcl9o YXNoID0gTlVMTDsKICAgICAgfQpAQCAtMTQ5OCw3ICsxNDYzLDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgICBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAo KTsKICB9CiAgCi1AQCAtNzkxLDE0ICsxMTU2LDM5IEBAIGRlYnVnX3ByaW50X21pc3NpbmcgKGNv bnN0IGNoYXIgKmJpbmFyeSwKK0BAIC03OTEsMTQgKzExNTYsMzkgQEAKICAKICAgICpzbG90ID0g bWlzc2luZ19maWxlcGFpcjsKICAKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRl LnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAppbmRleCBiMjVhZDhlLi5mZjc3 Nzc1IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCisrKyBiL2dkYi02 LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL2NvcmVsb3cuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9jb3JlbG93LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dk Yi9jb3JlbG93LmMJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvY29yZWxvdy5jCTIwMTYtMDItMTUgMjM6MjY6NDYuNTE2MDk2 Mzk1ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvY29yZWxvdy5jCTIw MTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL2NvcmVsb3cuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAyMjc1MzU4MiArMDIwMAogQEAg LTQ1LDYgKzQ1LDEwIEBACiAgI2luY2x1ZGUgImdkYl9iZmQuaCIKICAjaW5jbHVkZSAiY29tcGxl dGVyLmgiCkBAIC05NCwxMSArOTQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9jb3JlbG93LmMKICsJCQkgICBOVUxMLCBOVUxMLCBOVUxMLAogKwkJCSAgICZzZXRsaXN0LCAm c2hvd2xpc3QpOwogIH0KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZG9jL2dkYi50 ZXhpbmZvCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2RvYy9nZGIudGV4aW5mbwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2RvYy9nZGIudGV4 aW5mbwkyMDE2LTAyLTE1IDIzOjI1OjM2LjQ1NTU5ODk1OCArMDEwMAotKysrIGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNi0wMi0xNSAyMzoyNjowNi4zNjI4MTEz MDIgKzAxMDAKLUBAIC0xODY4NCw2ICsxODY4NCwyNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUy OCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAx Ni0wNy0wMyAxNDozNDozMi4wMzA3NTM2NTEgKzAyMDAKK0BAIC0xODkxNiw2ICsxODkxNiwyNyBA QAogIAogIEBlbmQgdGFibGUKICAKQEAgLTEyNiwxMCArMTI2LDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGNpbmRleCBAY29kZXsuZ251X2Rl YnVnbGlua30gc2VjdGlvbnMKICBAY2luZGV4IGRlYnVnIGxpbmsgc2VjdGlvbnMKICBBIGRlYnVn IGxpbmsgaXMgYSBzcGVjaWFsIHNlY3Rpb24gb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSBuYW1lZAot SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9zb2xpYi1zdnI0LmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvc29saWItc3ZyNC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTYtMDItMTUgMjM6MjU6MDAu ODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3NvbGliLXN2cjQu YwkyMDE2LTAyLTE1IDIzOjI2OjQ2LjYxMzA5NzA4MyArMDEwMAorLS0tIGdkYi03LjExLjUwLjIw MTYwNjMwLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUy OCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9zb2xpYi1zdnI0LmMJMjAxNi0w Ny0wMyAxNDozNDozMi4wMzE3NTM2NTkgKzAyMDAKIEBAIC00NSw2ICs0NSw3IEBACiAgI2luY2x1 ZGUgImF1eHYuaCIKICAjaW5jbHVkZSAiZ2RiX2JmZC5oIgpAQCAtMTk0LDEwICsxOTQsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9zb2xpYi1zdnI0LmMKICAgICAgICB4ZnJl ZSAoYnVmZmVyKTsKICAKICAgICAgICAvKiBJZiB0aGlzIGVudHJ5IGhhcyBubyBuYW1lLCBvciBp dHMgbmFtZSBtYXRjaGVzIHRoZSBuYW1lCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L2VsZnJlYWQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9lbGZyZWFkLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9lbGZyZWFkLmMJMjAx Ni0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvZWxmcmVhZC5jCTIwMTYtMDItMTUgMjM6MjY6MDYuMzY0ODExMzE2ICswMTAwCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTYtMDctMDMgMTQ6MzM6 MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2VsZnJlYWQu YwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMTc1MzY1OSArMDIwMAogQEAgLTEyNTksOSArMTI1OSwx MCBAQAogIAkgICAmJiBvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09IE5VTEwKICAJ ICAgJiYgb2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxMKQpA QCAtMjI0LDExICsyMjQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9lbGZy ZWFkLmMKICAgICAgfQogIH0KICAKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvc3lt ZmlsZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3N5bWZpbGUuaAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE2LTAy LTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9zeW1maWxlLmgJMjAxNi0wMi0xNSAyMzoyNjo0Ni41MTYwOTYzOTUgKzAxMDAKLUBAIC01ODQs NiArNTg0LDEwIEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvc3ltZmlsZS5o CTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMjc1MzY2OCArMDIwMAor QEAgLTU4OSw2ICs1ODksMTAgQEAKICB2b2lkIG1hcF9zeW1ib2xfZmlsZW5hbWVzIChzeW1ib2xf ZmlsZW5hbWVfZnR5cGUgKmZ1biwgdm9pZCAqZGF0YSwKICAJCQkgICBpbnQgbmVlZF9mdWxsbmFt ZSk7CiAgCkBAIC0yMzksMTEgKzIzOSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3N5bWZpbGUuaAogIC8qIEZyb20gZHdhcmYycmVhZC5jICovCiAgCiAgLyogTmFtZXMgZm9y IGEgZHdhcmYyIGRlYnVnZ2luZyBzZWN0aW9uLiAgVGhlIGZpZWxkIE5PUk1BTCBpcyB0aGUgbm9y bWFsCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4 cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUv bGliL2dkYi5leHAJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDItMTUgMjM6 MjY6NDYuNTE2MDk2Mzk1ICswMTAwCi1AQCAtMTY0MCw2ICsxNjQwLDE2IEBACistLS0gZ2RiLTcu MTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDctMDMg MTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rl c3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMzc1MzY3NiArMDIwMAor QEAgLTE2NDEsNiArMTY0MSwxNiBAQAogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3 aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC0yNjAsMTEgKzI2MCwxMSBAQCBJbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogICAgICByZXR1cm4g MAogIH0KICAKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9t aS1zdXBwb3J0LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUv bGliL21pLXN1cHBvcnQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEu b3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE2LTAyLTE1IDIzOjI1OjAw Ljg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv bGliL21pLXN1cHBvcnQuZXhwCTIwMTYtMDItMTUgMjM6MjY6NDYuNTE2MDk2Mzk1ICswMTAwCi1A QCAtMjA0LDYgKzIwNCwxNiBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rl c3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1Mjgg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBw b3J0LmV4cAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzMzc1MzY3NiArMDIwMAorQEAgLTMwOSw2ICsz MDksMTYgQEAgcHJvYyBkZWZhdWx0X21pX2dkYl9zdGFydCB7IGFyZ3MgfSB7CiAgCSAgICB3YXJu aW5nICJDb3VsZG4ndCBzZXQgdGhlIHdpZHRoIHRvIDAuIgogIAl9CiAgICAgIH0KQEAgLTI3OSwx MiArMjc5LDEyIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xp Yi9taS1zdXBwb3J0LmV4cAogKwl9CiArICAgIH0KICAKLSAgICAgIyBDcmVhdGUgdGhlIG5ldyBQ VFkgZm9yIHRoZSBpbmZlcmlvciBwcm9jZXNzLgogICAgICBpZiB7ICRzZXBhcmF0ZV9pbmZlcmlv cl9wdHkgfSB7Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL29iamZpbGVzLmgKKyAJ bWlfY3JlYXRlX2luZmVyaW9yX3B0eQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9v YmpmaWxlcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIv b2JqZmlsZXMuaAkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi9vYmpmaWxlcy5oCTIwMTYtMDItMTUgMjM6MjY6MDYuMzY2ODEx MzMwICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvb2JqZmlsZXMuaAky MDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9vYmpmaWxlcy5oCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDM0NzUzNjg1ICswMjAwCiBA QCAtNDg5LDYgKzQ4OSwxMCBAQAogIAogICNkZWZpbmUgT0JKRl9OT1RfRklMRU5BTUUgKDEgPDwg NikKQEAgLTI5NiwxMCArMjk2LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv b2JqZmlsZXMuaAogIC8qIERlY2xhcmF0aW9ucyBmb3IgZnVuY3Rpb25zIGRlZmluZWQgaW4gb2Jq ZmlsZXMuYyAqLwogIAogIGV4dGVybiBzdHJ1Y3Qgb2JqZmlsZSAqYWxsb2NhdGVfb2JqZmlsZSAo YmZkICosIGNvbnN0IGNoYXIgKm5hbWUsIGludCk7Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j b3JlZmlsZS5leHAJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE2 LTAyLTE1IDIzOjI2OjU1LjE3ODE1Nzg5NiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMw Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNi0wNy0wMyAxNDoz MzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzNDc1MzY4NSAr MDIwMAogQEAgLTI5MywzICsyOTMsMzMgQEAKICAJcGFzcyAkdGVzdAogICAgICB9CkBAIC0zMzQs MTAgKzMzNCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9jb3JlZmlsZS5leHAKICsgICAgZ2RiX3Rlc3QgImluZm8gZmlsZXMiICJMb2NhbCBl eGVjIGZpbGU6XHJcblxbIFx0XF0qYFtzdHJpbmdfdG9fcmVnZXhwICRkZWJ1Z2Rpci8kYnVpbGRp ZF0nLCBmaWxlIHR5cGUgLioiCiArICAgIHBhc3MgJHdob2xldGVzdAogK30KLUluZGV4OiBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NjMwL2dkYi9idWlsZC1pZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEu b3JpZy9nZGIvYnVpbGQtaWQuYwkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAot KysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCTIwMTYtMDItMTUgMjM6MjY6 NDYuNTE2MDk2Mzk1ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvYnVp bGQtaWQuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5jCTIwMTYtMDctMDMgMTQ6MzY6NTAuMTI0OTM4MTg3 ICswMjAwCiBAQCAtMjYsMTEgKzI2LDY3IEBACiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCiAgI2lu Y2x1ZGUgImZpbGVuYW1lcy5oIgpAQCAtMzg1LDEwICszODUsMTAgQEAgSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArCSAgJiYgbWVtY21wICh4bnAtPm5hbWUsICJH TlUiLCBzaXplb2YgIkdOVSIpID09IDApCiArCXsKICsJICBzaXplX3Qgc2l6ZSA9IGRlc2NzejsK LSsJICBnZGJfYnl0ZSAqZGF0YSA9ICh2b2lkICopIGRlc2NkYXRhOworKwkgIGdkYl9ieXRlICpk YXRhID0gKGdkYl9ieXRlICopIGRlc2NkYXRhOwogKwkgIHN0cnVjdCBiZmRfYnVpbGRfaWQgKnJl dHZhbDsKICsKLSsJICByZXR2YWwgPSB4bWFsbG9jIChzaXplb2YgKnJldHZhbCAtIDEgKyBzaXpl KTsKKysJICByZXR2YWwgPSAoc3RydWN0IGJmZF9idWlsZF9pZCAqKSB4bWFsbG9jIChzaXplb2Yg KnJldHZhbCAtIDEgKyBzaXplKTsKICsJICByZXR2YWwtPnNpemUgPSBzaXplOwogKwkgIG1lbWNw eSAocmV0dmFsLT5kYXRhLCBkYXRhLCBzaXplKTsKICsKQEAgLTQyOSw3ICs0MjksNyBAQCBJbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKICsJZ2RiX2J5dGUgKmJ1ZjsK ICsJaW50IGVycjsKICsKLSsJYnVmID0geG1hbGxvYyAoaGRyLT5wX2ZpbGVzeik7CisrCWJ1ZiA9 IChnZGJfYnl0ZSAqKSB4bWFsbG9jIChoZHItPnBfZmlsZXN6KTsKICsJZXJyID0gdGFyZ2V0X3Jl YWRfbWVtb3J5IChsb2FkYmFzZSArIGlfcGhkcltpXS5wX3ZhZGRyLCBidWYsCiArCQkJCSAgaGRy LT5wX2ZpbGVzeik7CiArCWlmIChlcnIgPT0gMCkKQEAgLTYzMyw4ICs2MzMsOCBAQCBJbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKICsgIHhfcGhkcnNfc2l6ZSA9IChi ZmRfZ2V0X2FyY2hfc2l6ZSAodGVtcGwpID09IDY0ID8gc2l6ZW9mIChFbGY2NF9FeHRlcm5hbF9Q aGRyKQogKwkJCQkJCTogc2l6ZW9mIChFbGYzMl9FeHRlcm5hbF9QaGRyKSk7CiArCi0rICBpX3Bo ZHJzID0geG1hbGxvYyAoaV9laGRyLmVfcGhudW0gKiAoc2l6ZW9mICppX3BoZHJzICsgeF9waGRy c19zaXplKSk7Ci0rICB4X3BoZHJzX3B0ciA9ICh2b2lkICopICZpX3BoZHJzW2lfZWhkci5lX3Bo bnVtXTsKKysgIGlfcGhkcnMgPSAoRWxmX0ludGVybmFsX1BoZHIgKikgeG1hbGxvYyAoaV9laGRy LmVfcGhudW0gKiAoc2l6ZW9mICppX3BoZHJzICsgeF9waGRyc19zaXplKSk7CisrICB4X3BoZHJz X3B0ciA9IChnZGJfYnl0ZSAqKSAmaV9waGRyc1tpX2VoZHIuZV9waG51bV07CiArICBlcnIgPSB0 YXJnZXRfcmVhZF9tZW1vcnkgKGVoZHJfdm1hICsgaV9laGRyLmVfcGhvZmYsIChiZmRfYnl0ZSAq KSB4X3BoZHJzX3B0ciwKICsJCQkgICAgaV9laGRyLmVfcGhudW0gKiB4X3BoZHJzX3NpemUpOwog KyAgaWYgKGVycikKQEAgLTcwMCw3ICs3MDAsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL2J1aWxkLWlkLmMKICsgICAgewogKyAgICAgIHN0cnVjdCBidWlsZF9pZF9hZGRyX3Nl Y3QgKmNhbmRpZGF0ZTsKICsKLSsgICAgICBjYW5kaWRhdGUgPSB4bWFsbG9jIChzaXplb2YgKmNh bmRpZGF0ZSk7CisrICAgICAgY2FuZGlkYXRlID0gKHN0cnVjdCBidWlsZF9pZF9hZGRyX3NlY3Qg KikgeG1hbGxvYyAoc2l6ZW9mICpjYW5kaWRhdGUpOwogKyAgICAgIGNhbmRpZGF0ZS0+bmV4dCA9 IGJ1aWxkX2lkX2FkZHJfc2VjdDsKICsgICAgICBidWlsZF9pZF9hZGRyX3NlY3QgPSBjYW5kaWRh dGU7CiArICAgICAgY2FuZGlkYXRlLT5zZWN0ID0gc2VjdDsKQEAgLTgyNSw3ICs4MjUsNyBAQCBJ bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmMKIC0JICAgICAgICsgKHNp emVvZiAiLy5idWlsZC1pZC8iIC0gMSkgKyAxCiAtCSAgICAgICArIDIgKiBidWlsZF9pZF9sZW4g KyAoc2l6ZW9mICIuZGVidWciIC0gMSkgKyAxKTsKIC0gIGxpbmsgPSAoY2hhciAqKSBhbGxvY2Eg KGFsbG9jX2xlbik7Ci0rICBsaW5rID0geG1hbGxvYyAoc3RybGVuIChkZWJ1Z19maWxlX2RpcmVj dG9yeSkgKyAyICogYnVpbGRfaWRfbGVuICsgNTApOworKyAgbGluayA9IChjaGFyICopIHhtYWxs b2MgKHN0cmxlbiAoZGVidWdfZmlsZV9kaXJlY3RvcnkpICsgMiAqIGJ1aWxkX2lkX2xlbiArIDUw KTsKICAKICAgIC8qIEtlZXAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBzbyB0aGF0IERFQlVHX0ZJ TEVfRElSRUNUT1JZIGJlaW5nICIiIHdpbGwKICAgICAgIGNhdXNlICIvLmJ1aWxkLWlkLy4uLiIg bG9va3Vwcy4gICovCkBAIC05MzcsOCArOTM3LDggQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi9idWlsZC1pZC5jCiArCXsKICsJICBzaXplX3QgbGVuX29yaWcgPSBzdHJsZW4gKGxp bmtfYWxsKTsKICsKLSsJICBsaW5rX2FsbCA9IHhyZWFsbG9jIChsaW5rX2FsbCwKLSsJCQkgICAg ICAgbGVuX29yaWcgKyAxICsgc3RybGVuIChsaW5rMF9yZXNvbHZlZCkgKyAxKTsKKysJICBsaW5r X2FsbCA9IChjaGFyICopIHhyZWFsbG9jIChsaW5rX2FsbCwKKysJCQkJCWxlbl9vcmlnICsgMSAr IHN0cmxlbiAobGluazBfcmVzb2x2ZWQpICsgMSk7CiArCiArCSAgLyogVXNlIHdoaXRlc3BhY2Ug aW5zdGVhZCBvZiBESVJOQU1FX1NFUEFSQVRPUiB0byBiZSBjb21wYXRpYmxlIHdpdGgKICsJICAg ICBpdHMgcG9zc2libGUgdXNlIGFzIGFuIGFyZ3VtZW50IGZvciBpbnN0YWxsYXRpb24gY29tbWFu ZC4gICovCkBAIC0xMDk1LDkgKzEwOTUsOSBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL2J1aWxkLWlkLmMKICsgIGlmICgqc2xvdCAhPSBOVUxMKQogKyAgICByZXR1cm47CiArCi0r ICBtaXNzaW5nX2ZpbGVwYWlyID0gb2JzdGFja19hbGxvYyAoJm1pc3NpbmdfZmlsZXBhaXJfb2Jz dGFjaywKLSsJCQkJICAgICAgc2l6ZW9mICgqbWlzc2luZ19maWxlcGFpcikgLSAxCi0rCQkJCSAg ICAgICsgYmluYXJ5X2xlbjAgKyBkZWJ1Z19sZW4wKTsKKysgIG1pc3NpbmdfZmlsZXBhaXIgPSAo c3RydWN0IG1pc3NpbmdfZmlsZXBhaXIgKikgb2JzdGFja19hbGxvYyAoJm1pc3NpbmdfZmlsZXBh aXJfb2JzdGFjaywKKysJCQkJCQkJCXNpemVvZiAoKm1pc3NpbmdfZmlsZXBhaXIpIC0gMQorKwkJ CQkJCQkJKyBiaW5hcnlfbGVuMCArIGRlYnVnX2xlbjApOwogKyAgbWlzc2luZ19maWxlcGFpci0+ YmluYXJ5ID0gbWlzc2luZ19maWxlcGFpci0+ZGF0YTsKICsgIG1lbWNweSAobWlzc2luZ19maWxl cGFpci0+YmluYXJ5LCBiaW5hcnksIGJpbmFyeV9sZW4wKTsKICsgIGlmIChkZWJ1ZyAhPSBOVUxM KQpAQCAtMTE2NiwxMCArMTE2NiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L2J1aWxkLWlkLmMKICsKICsgIG9ic2VydmVyX2F0dGFjaF9leGVjdXRhYmxlX2NoYW5nZWQgKGRl YnVnX3ByaW50X2V4ZWN1dGFibGVfY2hhbmdlZCk7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi9idWlsZC1pZC5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1 aWxkLWlkLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9i dWlsZC1pZC5oCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL2J1aWxkLWlkLmgJMjAxNi0wMi0xNSAyMzoyNjowNi4zNjg4MTEz NDUgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9idWlsZC1pZC5oCTIw MTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL2J1aWxkLWlkLmgJMjAxNi0wNy0wMyAxNDozNDozMi4wMzU3NTM2OTQgKzAyMDAKIEBA IC0yMCw5ICsyMCwxMCBAQAogICNpZm5kZWYgQlVJTERfSURfSAogICNkZWZpbmUgQlVJTERfSURf SApAQCAtMTIwNCwxMSArMTIwNCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L2J1aWxkLWlkLmgKICsJCQkJCSAgICAgICBjaGFyICoqYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJu KTsKICAKICAjZW5kaWYgLyogQlVJTERfSURfSCAqLwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZHdh cmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIv ZHdhcmYycmVhZC5jCTIwMTYtMDItMTUgMjM6MjU6MzYuNDYxNTk5MDAxICswMTAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTAyLTE1IDIzOjI2OjA2LjM3 MzgxMTM4MCArMDEwMAotQEAgLTI1MTYsNyArMjUxNiw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAx NjA2MzAub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4 ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA3 LTAzIDE0OjM0OjMyLjA0MDc1MzczNiArMDIwMAorQEAgLTI1MzUsNyArMjUzNSw3IEBACiAgICAg IH0KICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCkBAIC0xMjE3LDExICsxMjE3LDExIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICBpZiAoZHd6 X2JmZCA9PSBOVUxMKQogICAgICBlcnJvciAoXygiY291bGQgbm90IGZpbmQgJy5nbnVfZGVidWdh bHRsaW5rJyBmaWxlIGZvciAlcyIpLAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9w eXRob24vcHktb2JqZmlsZS5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhv bi9weS1vYmpmaWxlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmln L2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICsw MTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMJMjAx Ni0wMi0xNSAyMzoyNjowNi4zNzM4MTEzODAgKzAxMDAKLUBAIC0xMzksNyArMTM5LDcgQEAKKy0t LSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTYt MDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAv Z2RiL3B5dGhvbi9weS1vYmpmaWxlLmMJMjAxNi0wNy0wMyAxNDozNDozMi4wNDA3NTM3MzYgKzAy MDAKK0BAIC0xMzYsNyArMTM2LDcgQEAKICAKICAgIFRSWQogICAgICB7CkBAIC0xMjMwLDcgKzEy MzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3B5dGhvbi9weS1vYmpmaWxl LmMKICAgICAgfQogICAgQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQogICAgICB7Ci1A QCAtNTQ4LDcgKzU0OCw3IEBACitAQCAtNTQ3LDcgKzU0Nyw3IEBACiAgICAgICAgLyogRG9uJ3Qg cmV0dXJuIHNlcGFyYXRlIGRlYnVnIGZpbGVzLiAgKi8KICAgICAgICBpZiAob2JqZmlsZS0+c2Vw YXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayAhPSBOVUxMKQogIAljb250aW51ZTsKQEAgLTEy MzksMTEgKzEyMzksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9weXRob24v cHktb2JqZmlsZS5jCiAgICAgICAgaWYgKG9iZmRfYnVpbGRfaWQgPT0gTlVMTCkKICAJY29udGlu dWU7CiAgICAgICAgaWYgKG9iamZweV9idWlsZF9pZF9tYXRjaGVzIChvYmZkX2J1aWxkX2lkLCBi dWlsZF9pZCkpCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvZmZyZWFkLmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29mZnJlYWQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2NvZmZyZWFkLmMJMjAxNi0wMi0xNSAyMzoy NTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29mZnJl YWQuYwkyMDE2LTAyLTE1IDIzOjI2OjA2LjM3NDgxMTM4NyArMDEwMAotQEAgLTczOSw3ICs3Mzks NyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvZmZyZWFkLmMJMjAxNi0w Ny0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvY29mZnJlYWQuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjA0MTc1Mzc0NSArMDIwMAorQEAgLTcz Nyw3ICs3MzcsNyBAQAogICAgICB7CiAgICAgICAgY2hhciAqZGVidWdmaWxlOwogIAoKZGlmZiAt LWdpdCBhL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5wYXRjaCBiL2dk Yi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5wYXRjaAppbmRleCBhMGM0NzJi Li40NGI4MzExIDEwMDY0NAotLS0gYS9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0 b3BwZWQucGF0Y2gKKysrIGIvZ2RiLTYuOC1hdHRhY2gtc2lnbmFsbGVkLWRldGFjaC1zdG9wcGVk LnBhdGNoCkBAIC0xLDcgKzEsOCBAQAotZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAx MDYtb3JpZy9nZGIvaW5mcnVuLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2luZnJ1bi5jCi0t LS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvaW5mcnVuLmMJMjAxNi0wMS0wOSAxNTow NTowNi4xMjc0ODE3NTggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaW5mcnVu LmMJMjAxNi0wMS0wOSAxNTowNToyNC4wNTQ1OTMwNDggKzAxMDAKLUBAIC02MjYsNiArNjI2LDEz IEBAIGhvbGRpbmcgdGhlIGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvaW5mcnVuLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9pbmZydW4uYwkyMDE2LTA3LTE2IDE0OjM3OjA5LjMxNzE3ODE1 MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pbmZydW4uYwkyMDE2LTA3LTE2 IDE0OjM3OjEwLjYzNjE4ODc2NSArMDIwMAorQEAgLTYyMCw2ICs2MjAsMTMgQEAKICAJCQkJdGFy Z2V0X3BpZF90b19zdHIgKHByb2Nlc3NfcHRpZCkpOwogIAkgICAgfQogIApAQCAtMTUsMTAgKzE2 LDExIEBAIGRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2luZnJ1 bi5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pCiAgCSAgdGFyZ2V0X2RldGFjaCAoTlVMTCwg MCk7CiAgCX0KICAKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2Ri L2xpbnV4LW5hdC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9saW51eC1uYXQuYwotLS0tIGdk Yi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDEtMDkgMTU6MDU6 MDYuMjI1NDgyMzY2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2xpbnV4LW5h dC5jCTIwMTYtMDEtMDkgMTU6MDU6MjQuMDUwNTkzMDIzICswMTAwCi1AQCAtMTk0LDYgKzE5NCwx MSBAQCBlbnVtIHRyaWJvb2wgaGF2ZV9wdHJhY2VfZ2V0cmVnc2V0ID0gVFJJCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xpbnV4LW5hdC5jCis9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozNzowOS4z MjAxNzgxNzQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGludXgtbmF0LmMJ MjAxNi0wNy0xNiAxNDozODowOS41NzQ2NjMwOTQgKzAyMDAKK0BAIC0xOTQsNiArMTk0LDExIEBA CiAgc3RhdGljIHN0cnVjdCB0YXJnZXRfb3BzICpsaW51eF9vcHM7CiAgc3RhdGljIHN0cnVjdCB0 YXJnZXRfb3BzIGxpbnV4X29wc19zYXZlZDsKICAKQEAgLTMwLDcgKzMyLDcgQEAgZGlmZiAtZHVw IC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2QKICAvKiBUaGUgbWV0aG9kIHRvIGNhbGwsIGlmIGFueSwgd2hlbiBhIG5l dyB0aHJlYWQgaXMgYXR0YWNoZWQuICAqLwogIHN0YXRpYyB2b2lkICgqbGludXhfbmF0X25ld190 aHJlYWQpIChzdHJ1Y3QgbHdwX2luZm8gKik7CiAgCi1AQCAtOTYxLDYgKzk2Niw5IEBAIGxpbnV4 X25hdF9wb3N0X2F0dGFjaF93YWl0IChwdGlkX3QgcHRpZCwKK0BAIC0xMDQ3LDYgKzEwNTIsOSBA QAogICAgICAgIGlmIChkZWJ1Z19saW51eF9uYXQpCiAgCWZwcmludGZfdW5maWx0ZXJlZCAoZ2Ri X3N0ZGxvZywKICAJCQkgICAgIkxOUEFXOiBBdHRhY2hpbmcgdG8gYSBzdG9wcGVkIHByb2Nlc3Nc biIpOwpAQCAtNDAsOCArNDIsOCBAQCBkaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEw Ni1vcmlnL2dkYi9saW51eC1uYXQuYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZAogIAogICAgICAg IC8qIFRoZSBwcm9jZXNzIGlzIGRlZmluaXRlbHkgc3RvcHBlZC4gIEl0IGlzIGluIGEgam9iIGNv bnRyb2wKICAJIHN0b3AsIHVubGVzcyB0aGUga2VybmVsIHByZWRhdGVzIHRoZSBUQVNLX1NUT1BQ RUQgLwotQEAgLTEzMDMsNiArMTMxMSwyNSBAQCBnZXRfcGVuZGluZ19zdGF0dXMgKHN0cnVjdCBs d3BfaW5mbyAqbHAsCi0gCQkJICAgIGdkYl9zaWduYWxfdG9fc3RyaW5nIChzaWdubykpOworQEAg LTE0MDQsNiArMTQxMiwyNSBAQAorICAgICAgIHJldHVybiBnZGJfc2lnbmFsX3RvX2hvc3QgKHNp Z25vKTsKICAgICAgfQogIAogKyNpZmRlZiBORUVEX0RFVEFDSF9TSUdTVE9QCkBAIC02NiwxOCAr NjgsMTggQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGlu dXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICAgIHJldHVybiAwOwogIH0KICAKLUBA IC0xNDE2LDYgKzE0NDMsMTAgQEAgbGludXhfbmF0X2RldGFjaCAoc3RydWN0IHRhcmdldF9vcHMg Km9wcwotICAgICB9Ci0gICBlbHNlCi0gICAgIGxpbnV4X29wcy0+dG9fZGV0YWNoIChvcHMsIGFy Z3MsIGZyb21fdHR5KTsKLSsjaWZkZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUAorQEAgLTE1NjIsNiAr MTU4OSwxMCBAQAorICAgICAgIGRldGFjaF9vbmVfbHdwIChtYWluX2x3cCwgJnNpZ25vKTsKKyAK KyAgICAgICBpbmZfcHRyYWNlX2RldGFjaF9zdWNjZXNzIChvcHMpOwogKwotKyAgcGlkX3dhc19z dG9wcGVkID0gMDsKKysjaWZkZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUAorKyAgICAgIHBpZF93YXNf c3RvcHBlZCA9IDA7CiArI2VuZGlmCisgICAgIH0KKyAgIGRlbGV0ZV9sd3AgKG1haW5fbHdwLT5w dGlkKTsKICB9Ci0gCi0gLyogUmVzdW1lIGV4ZWN1dGlvbiBvZiB0aGUgaW5mZXJpb3IgcHJvY2Vz cy4gIElmIFNURVAgaXMgbm9uemVybywKLUBAIC0xNjc0LDYgKzE3MDUsMTYgQEAgbGludXhfbmF0 X3Jlc3VtZSAoc3RydWN0IHRhcmdldF9vcHMgKm9wcworQEAgLTE4MjMsNiArMTg1NCwxNiBAQAog ICAgICAgIHJldHVybjsKICAgICAgfQogIApAQCAtOTQsNyArOTYsNyBAQCBkaWZmIC1kdXAgLXJ1 cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZAogICAgaWYgKHJlc3VtZV9tYW55KQogICAgICBpdGVyYXRlX292ZXJfbHdwcyAo cHRpZCwgbGludXhfbmF0X3Jlc3VtZV9jYWxsYmFjaywgbHApOwogIAotQEAgLTM2MTgsNiArMzY1 OSwxMCBAQCBsaW51eF9uYXRfbW91cm5faW5mZXJpb3IgKHN0cnVjdCB0YXJnZXRfCitAQCAtMzgx OSw2ICszODYwLDEwIEBACiAgCiAgICAvKiBMZXQgdGhlIGFyY2gtc3BlY2lmaWMgbmF0aXZlIGNv ZGUga25vdyB0aGlzIHByb2Nlc3MgaXMgZ29uZS4gICovCiAgICBsaW51eF9uYXRfZm9yZ2V0X3By b2Nlc3MgKHBpZCk7CkBAIC0xMDUsMTAgKzEwNywxMSBAQCBkaWZmIC1kdXAgLXJ1cCBnZGItNy4x MC41MC4yMDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZAogIH0KICAKICAvKiBDb252ZXJ0IGEgbmF0aXZlL2hvc3Qgc2lnaW5mbyBvYmplY3QsIGludG8v ZnJvbSB0aGUgc2lnaW5mbyBpbiB0aGUKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYw MTA2LW9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBl ZC5leHAKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTYtMDEtMDYgMDI6NDg6MzguMDAwMDAwMDAwICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9h dHRhY2gtc3RvcHBlZC5leHAJMjAxNi0wMS0wOSAxNTowNTo0OC45MTc3NDcxMDEgKzAxMDAKLUBA IC01Niw3ICs1Niw2NSBAQCBwcm9jIGNvcmVmdW5jIHsgdGhyZWFkdHlwZSB9IHsKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9w cGVkLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rl c3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNi0wNy0xNiAxNDozNzow OS4zMjExNzgxODIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRl L2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAkyMDE2LTA3LTE2IDE0OjM3OjEwLjY0MDE4 ODc5NyArMDIwMAorQEAgLTU2LDcgKzU2LDY1IEBACiAgICAgIGdkYl9yZWluaXRpYWxpemVfZGly ICRzcmNkaXIvJHN1YmRpcgogICAgICBnZGJfbG9hZCAke2JpbmZpbGV9CiAgCgpkaWZmIC0tZ2l0 IGEvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0cy5wYXRjaCBiL2dkYi02LjgtcXVpdC1uZXZlci1h Ym9ydHMucGF0Y2gKaW5kZXggNDdlMWM2NC4uNTVlNzE0ZSAxMDA2NDQKLS0tIGEvZ2RiLTYuOC1x dWl0LW5ldmVyLWFib3J0cy5wYXRjaAorKysgYi9nZGItNi44LXF1aXQtbmV2ZXItYWJvcnRzLnBh dGNoCkBAIC01LDM4ICs1LDQyIEBAIFNvbWUgb2YgdGhlIHRocmVhZHMgbWF5IG5vdCBiZSBwcm9w ZXJseSBQVFJBQ0VfREVUQUNIZWQgd2hpY2ggaHVydHMgaWYgdGhleQogc2hvdWxkIGhhdmUgYmVl biBkZXRhY2hlZCB3aXRoIFNJR1NUT1AgKGFzIHRoZXkgYXJlIGFjY2lkZW50YWxseSBsZWZ0IHJ1 bm5pbmcKIG9uIHRoZSBkZWJ1Z2dlciB0ZXJtaW5hdGlvbikuCiAKLWRpZmYgLWR1cCAtcnVwIGdk Yi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2RlZnMuaCBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvZGVmcy5oCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvZGVmcy5oCTIwMTYt MDEtMDkgMTU6MDY6NTcuNjU4MTcyODc1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2RlZnMuaAkyMDE2LTAxLTA5IDE1OjA3OjEyLjQzMTI2NDM3OCArMDEwMAotQEAgLTE0NSw2 ICsxNDUsOSBAQCBleHRlcm4gdm9pZCBzZXRfcXVpdF9mbGFnICh2b2lkKTsKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvZGVmcy5oCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAu MjAxNjA2MzAub3JpZy9nZGIvZGVmcy5oCTIwMTYtMDctMDMgMTY6NDA6NDMuNDIzMDc4OTI2ICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2RlZnMuaAkyMDE2LTA3LTAzIDE2OjQx OjA4LjU2ODI3MTc0MSArMDIwMAorQEAgLTE3NSw2ICsxNzUsMTAgQEAKICAvKiBGbGFnIHRoYXQg ZnVuY3Rpb24gcXVpdCBzaG91bGQgY2FsbCBxdWl0X2ZvcmNlLiAgKi8KICBleHRlcm4gdm9sYXRp bGUgaW50IHN5bmNfcXVpdF9mb3JjZV9ydW47CiAgCiArI2lmZGVmIE5FRURfREVUQUNIX1NJR1NU T1AKICtleHRlcm4gaW50IHF1aXRfZmxhZ19jbGVhbnVwOwogKyNlbmRpZgotIGV4dGVybiBpbnQg aW1tZWRpYXRlX3F1aXQ7Ci0gCisrCiAgZXh0ZXJuIHZvaWQgcXVpdCAodm9pZCk7Ci1kaWZmIC1k dXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9leHRlbnNpb24uYyBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvZXh0ZW5zaW9uLmMKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1v cmlnL2dkYi9leHRlbnNpb24uYwkyMDE2LTAxLTA2IDAyOjQ4OjM3LjAwMDAwMDAwMCArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9leHRlbnNpb24uYwkyMDE2LTAxLTA5IDE1OjA3 OjEyLjQzNDI2NDM5NiArMDEwMAotQEAgLTgzMyw2ICs4MzMsMTEgQEAgY2hlY2tfcXVpdF9mbGFn ICh2b2lkKQorIAorIC8qIEhlbHBlciBmb3IgdGhlIFFVSVQgbWFjcm8uICAqLworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi9leHRlbnNpb24uYworPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03 LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2V4dGVuc2lvbi5jCTIwMTYtMDctMDMgMTY6NDA6NDEu NzIzMDY1ODkwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2V4dGVuc2lvbi5j CTIwMTYtMDctMDMgMTY6NDE6NDQuODk2NTUwMzA5ICswMjAwCitAQCAtODMwLDYgKzgzMCwxMSBA QAogICAgaW50IGksIHJlc3VsdCA9IDA7CiAgICBjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1 YWdlX2RlZm4gKmV4dGxhbmc7CiAgCiArI2lmZGVmIE5FRURfREVUQUNIX1NJR1NUT1AKICsgIGlm IChxdWl0X2ZsYWdfY2xlYW51cCkKICsgICAgcmV0dXJuIDA7Ci0rCiArI2VuZGlmCisrCiAgICBB TExfRU5BQkxFRF9FWFRFTlNJT05fTEFOR1VBR0VTIChpLCBleHRsYW5nKQogICAgICB7CiAgICAg ICAgaWYgKGV4dGxhbmctPm9wcy0+Y2hlY2tfcXVpdF9mbGFnICE9IE5VTEwpCi1kaWZmIC1kdXAg LXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi90b3AuYyBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvdG9wLmMKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi90b3AuYwky MDE2LTAxLTA2IDAyOjQ4OjM4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi90b3AuYwkyMDE2LTAxLTA5IDE1OjA3OjEyLjQzMjI2NDM4NCArMDEwMAotQEAgLTE1 NTcsNyArMTU1NywxMyBAQCBxdWl0X2ZvcmNlIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3RvcC5jCis9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvdG9wLmMJMjAxNi0wNy0wMyAxNjo0MDo0MS43MjQw NjU4OTggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdG9wLmMJMjAxNi0wNy0w MyAxNjo0MDo0My40MjQwNzg5MzQgKzAyMDAKK0BAIC0xNjE3LDcgKzE2MTcsMTMgQEAKICAgIHF0 LmFyZ3MgPSBhcmdzOwogICAgcXQuZnJvbV90dHkgPSBmcm9tX3R0eTsKICAKQEAgLTUwLDIwICs1 NCwyMSBAQCBkaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi90b3Au YyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdG9wLgogIAogICAgLyogR2V0IG91dCBvZiB0Zmlu ZCBtb2RlLCBhbmQga2lsbCBvciBkZXRhY2ggYWxsIGluZmVyaW9ycy4gICovCiAgICBUUlkKLWRp ZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL3V0aWxzLmMgZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3V0aWxzLmMKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmln L2dkYi91dGlscy5jCTIwMTYtMDEtMDkgMTU6MDY6NTcuNjU0MTcyODUwICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3V0aWxzLmMJMjAxNi0wMS0wOSAxNTowNzoxMi40MzMyNjQz OTAgKzAxMDAKLUBAIC0xMjIsNiArMTIyLDEzIEBAIGludCBqb2JfY29udHJvbDsKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdXRpbHMuYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEx LjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3V0aWxzLmMJMjAxNi0wNy0wMyAxNjo0MDo0MS43MjUwNjU5 MDUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdXRpbHMuYwkyMDE2LTA3LTAz IDE2OjQxOjM4Ljk2MTUwNDc5OSArMDIwMAorQEAgLTEwOSw2ICsxMDksMTMgQEAKICAKLSBpbnQg aW1tZWRpYXRlX3F1aXQ7CisgaW50IGpvYl9jb250cm9sOwogIAogKyNpZmRlZiBORUVEX0RFVEFD SF9TSUdTVE9QCiArLyogTm9uemVybyBtZWFucyB3ZSBhcmUgYWxyZWFkeSBwcm9jZXNzaW5nIHRo ZSBxdWl0dGluZyBjbGVhbnVwcyBhbmQgd2Ugc2hvdWxkCiArICAgbm8gbG9uZ2VyIGdldCBhYm9y dGVkLiAgKi8KICsKICtpbnQgcXVpdF9mbGFnX2NsZWFudXA7Ci0rCiArI2VuZGlmCisrCiAgLyog Tm9uemVybyBtZWFucyB0aGF0IHN0cmluZ3Mgd2l0aCBjaGFyYWN0ZXIgdmFsdWVzID4weDdGIHNo b3VsZCBiZSBwcmludGVkCiAgICAgYXMgb2N0YWwgZXNjYXBlcy4gIFplcm8gbWVhbnMganVzdCBw cmludCB0aGUgdmFsdWUgKGUuZy4gaXQncyBhbgogICAgIGludGVybmF0aW9uYWwgY2hhcmFjdGVy LCBhbmQgdGhlIHRlcm1pbmFsIG9yIHdpbmRvdyBjYW4gY29wZS4pICAqLwoKZGlmZiAtLWdpdCBh L2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoIGIvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gK aW5kZXggZmE2MDM4MC4uN2Y3ZTE4NCAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci12bGEtdGVzdHMu cGF0Y2gKKysrIGIvZ2RiLWFyY2hlci12bGEtdGVzdHMucGF0Y2gKQEAgLTEsNyArMSw3IEBACi1J bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9h cnJheS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5h ZGEvcGFja2VkX2FycmF5LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjEx Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wMi0xNSAy MzozMzoyOS44MzA5NTk5NzIgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI4OTk5 OTg0NiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAxNi0wNy0xNiAwMzo0ODo1OS4wMDAwMDAwMDAgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2Vk X2FycmF5LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNjE3Mjg4OSArMDIwMAogQEAgLTU2LDUg KzU2LDExIEBACiAgICAgICAgICAjIGFyZS4gIE9ic2VydmVkIHdpdGggKEZTRiBHTlUgQWRhIDQu NS4zIDIwMTEwMTI0KS4KICAgICAgICAgIHhmYWlsICR0ZXN0CkBAIC0xNCwxMCArMTQsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRf YXJyYXkuZXhwCiArICAgIH0KICB9CiAgCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRl Zi1mb28uUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5TCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkwOTk5 ODUzICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJj aC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcg KzAyMDAKIEBAIC0wLDAgKzEsNDU1IEBACiArCS5maWxlCSJ4ODZfNjQtdmxhLXR5cGVkZWYuYyIK ICsJLnNlY3Rpb24JLmRlYnVnX2FiYnJldiwiIixAcHJvZ2JpdHMKQEAgLTQ3NCwxMCArNDc0LDEw IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4 Nl82NC12bGEtdHlwZWRlZi1mb28uUwogKwkuc3RyaW5nCSJHTlUgQyA0LjMuMiAyMDA4MTEwNSAo UmVkIEhhdCA0LjMuMi03KSIKICsJLmlkZW50CSJHQ0M6IChHTlUpIDQuMy4yIDIwMDgxMTA1IChS ZWQgSGF0IDQuMy4yLTcpIgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRz Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZf NjQtdmxhLXR5cGVkZWYuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5jCTIwMTYt MDItMTUgMjM6MzU6NTYuMjkwOTk5ODUzICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuYwkyMDE2LTA3LTE2IDE2 OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSw0NSBAQAogKy8qIFRoaXMgdGVzdGNh c2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC01MjQsMTAgKzUyNCwx MCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94 ODZfNjQtdmxhLXR5cGVkZWYuYwogK30KICsKICsjZW5kaWYKLUluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12 bGEtdHlwZWRlZi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4y OTA5OTk4NTMgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4 OTcgKzAyMDAKIEBAIC0wLDAgKzEsNjQgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtNTkzLDEwICs1OTMsMTAgQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVm LmV4cAogK2dkYl90ZXN0ICJ3aGF0aXMgYXJyYXkiICJ0eXBlID0gYXJyYXlfdCIgInNlY29uZDog d2hhdGlzIGFycmF5IgogKwogK2dkYl90ZXN0ICJwdHlwZSBhcnJheSIgInR5cGUgPSBjaGFyIFxc XFs3OFxcXF0iICJzZWNvbmQ6IHB0eXBlIGFycmF5IgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJh eWlkeC5jCTIwMTYtMDItMTUgMjM6MzM6MjkuODMwOTU5OTcyICswMTAwCi0rKysgZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDItMTUg MjM6MzU6NTYuMjkwOTk5ODUzICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMJMjAxNi0wNy0xNiAwMzo0ODo1OS4wMDAw MDAwMDAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2FycmF5aWR4LmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcgKzAyMDAKIEBAIC0x Nyw2ICsxNywxMyBAQAogIAogIGludCBhcnJheVtdID0gezEsIDIsIDMsIDR9OwpAQCAtNjExLDEw ICs2MTEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvYXJyYXlpZHguYwogIGludAogIG1haW4gKHZvaWQpCiAgewotSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDItMTUgMjM6MzM6MjkuODMwOTU5OTcyICswMTAw Ci0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlk eC5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTE5OTk4NjAgKzAxMDAKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYt MDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43 MzcxNzI4OTcgKzAyMDAKIEBAIC00OSw0ICs0OSwxMiBAQAogICAgICAgICAgICJcXHtcXFxbMFxc XF0gPSAxLCBcXFxbMVxcXF0gPSAyLCBcXFxbMlxcXF0gPSAzLCBcXFxbM1xcXF0gPSA0XFx9IiBc CiAgICAgICAgICAgIlByaW50IGFycmF5IHdpdGggYXJyYXktaW5kZXhlcyBvbiIKQEAgLTYyOSwx MCArNjI5LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2FycmF5aWR4LmV4cAogKwl1bnN1cHBvcnRlZCAiJHRlc3QgKG5vIEdDQykiCiArICAg IH0KICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRl cm5hbC12YXItZmllbGQtYWRkcmVzcy5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYwICsw MTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRl cm5hbC12YXItZmllbGQtYWRkcmVzcy5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICsw MjAwCiBAQCAtMCwwICsxLDIwIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwg dGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTY1NCwxMCArNjU0LDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1h ZGRyZXNzLmMKICtzdHJ1Y3QgewogKyAgaW50IGZpZWxkOwogK30gc3RhdGljc3RydWN0ID0geyAx IH07Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9p bnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4cAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50 ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYw ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9p bnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4 OTcgKzAyMDAKIEBAIC0wLDAgKzEsMjYgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtNjg1LDEwICs2ODUsMTAgQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxk LWFkZHJlc3MuZXgKICsKICtnZGJfdGVzdCB7c2V0ICR2YXJzdHJ1Y3QgPSBzdGF0aWNzdHJ1Y3R9 CiArZ2RiX3Rlc3Qge3AgJHZhcnN0cnVjdC5maWVsZH0gIiA9IDEiCi1JbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1m cmFtZS5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYwICswMTAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYwkyMDE2LTA3LTE2 IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwzMSBAQAogKy8qIFRoaXMgdGVz dGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03MjEsMTAgKzcy MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92bGEtZnJhbWUuYwogKyAgZiAocyk7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92bGEtZnJhbWUuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkxOTk5ODYwICswMTAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhw CTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDM4IEBACiAr IyBDb3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC03 NjQsMTAgKzc2NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS92bGEtZnJhbWUuZXhwCiArfQogKwogK2dkYl90ZXN0ICJidCBmdWxsIiAiXHJc biArcyA9IFwiWFxcXFwwMDBcIlxyXG4uKiIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93 LmMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTE5OTk4NjAgKzAxMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCTIwMTYtMDctMTYg MTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDMwIEBACiArLyogVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTc5OSwxMCArNzk5 LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3ZsYS1vdmVyZmxvdy5jCiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92bGEtb3ZlcmZsb3cuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkyOTk5ODY3ICswMTAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZs b3cuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsxLDEw OSBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAr CkBAIC05MTMsMTAgKzkxMywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuZXhwCiArZ2RiX3Rlc3QgImJ0IiAiaW4gXFte IFxdKmFib3J0IFxcKC4qIGluIG1haW4gXFwoLioiICJCYWNrdHJhY2UgYWZ0ZXIgYWJvcnQoKSIK ICsKICt2ZXJib3NlIC1sb2cgImtiX2ZvdW5kIGluIGJ0IGFmdGVyIGFib3J0KCkgPSBbZXhwciBb bWVtb3J5X3ZfcGFnZXNfZ2V0XSAqICRwYWdlc2l6ZSAvIDEwMjRdIgotSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuYwkyMDE2LTAyLTE1 IDIzOjM1OjU2LjI5Mjk5OTg2NyArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4OTcgKzAy MDAKIEBAIC0wLDAgKzEsNTUgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtOTczLDEwICs5NzMsMTAgQEAgSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMKICsgIGZvbyAoNzgpOwog KyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvdmxhLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mjk5OTg2 NyArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv dmxhLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSw2 MiBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAr CkBAIC0xMDQwLDEwICsxMDQwLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAKICtnZGJfdGVzdCAicCB0ZW1wMSIgIiA9ICcxJyA8 cmVwZWF0cyA3OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAxIgogK2dkYl90ZXN0ICJwIHRl bXAyIiAiID0gJzInIDxyZXBlYXRzIDc4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDIiCiAr Z2RiX3Rlc3QgInAgdGVtcDMiICIgPSAnMycgPHJlcGVhdHMgNDggdGltZXM+IiAic2Vjb25kOiBw cmludCB0ZW1wMyIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1s b2NsaXN0LlMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3Qu UwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSwyNDYgQEAK ICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpA QCAtMTI5MSwxMCArMTI5MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMKICsJLnN0cmluZwkJImNoYXIi CiArLkx1aW50X3N0cjoKICsJLnN0cmluZwkJInVuc2lnbmVkIGludCIKLUluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3Qu ZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5leHAJMjAxNi0wMi0xNSAy MzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCTIwMTYtMDctMTYgMTY6NTM6 MzMuNzM4MTcyOTA2ICswMjAwCiBAQCAtMCwwICsxLDY2IEBACiArIyBDb3B5cmlnaHQgMjAxMCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEzNjIsMTAgKzEzNjIsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt Ym91bmQtbG9jbGlzdC5leHAKICsKICsjIFRoZSByZWdpc3RlciBjb250YWlucyB1bnByZWRpY3Rh YmxlIHZhbHVlIC0gdGhlIGFycmF5IHNpemUuCiArZ2RiX3Rlc3QgInB0eXBlIHJlZ19zdHJpbmci IHt0eXBlID0gY2hhciBcWy0/WzAtOV0rXF19Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJpcHBlZC5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICswMTAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5jCTIw MTYtMDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCiBAQCAtMCwwICsxLDQyIEBACiArLyog VGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTE0 MDksMTAgKzE0MDksMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwogKyAgZnVuYzEgKDEsIDIpOwogKyAgcmV0dXJu IDA7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3RyaXBwZWQuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAkyMDE2 LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuZXhwCTIwMTYtMDctMTYgMTY6 NTM6MzMuNzM4MTcyOTA2ICswMjAwCiBAQCAtMCwwICsxLDc5IEBACiArIyBDb3B5cmlnaHQgMjAw NiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE0OTMsMTAgKzE0OTMsMTAg QEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9k dzItc3RyaXBwZWQuZXhwCiArZ2RiX3Rlc3QgInN0ZXAiIFwKICsgICAgICAgICAiZnVuYy4qIFxc KC4qXFwpIGF0IC4qIiBcCiArICAgICAgICAgInN0ZXAiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9j YXRpb24uUworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXIt ZGF0YS1sb2NhdGlvbi5TCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICswMTAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3Qt bWVtYmVyLWRhdGEtbG9jYXRpb24uUwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIw MAogQEAgLTAsMCArMSw4MyBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRo ZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xNTgxLDEwICsxNTgxLDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXIt ZGF0YS1sb2NhCiArCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9yICovCiArCS5ieXRlCQkw eDAJCQkvKiBUZXJtaW5hdG9yICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1z dHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9j YXRpb24uZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICswMTAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVy LWRhdGEtbG9jYXRpb24uZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2ICswMjAwCiBA QCAtMCwwICsxLDM3IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KICsKQEAgLTE2MjMsMTAgKzE2MjMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxv Y2EKICtjbGVhbl9yZXN0YXJ0ICRiaW5maWxlCiArCiArZ2RiX3Rlc3QgInB0eXBlIHN0cnVjdCBz b21lX3N0cnVjdCIgInR5cGUgPSBzdHJ1Y3Qgc29tZV9zdHJ1Y3Qge1xbXHJcbiBcdFxdKnZvaWQg ZmllbGQ7XFtcclxuIFx0XF0qfSIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuUworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlw ZS5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTM5OTk4NzQg KzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLXN1YnJhbmdlLW5vLXR5cGUuUwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIw MAogQEAgLTAsMCArMSwxMjEgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0 aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTc0OSwxMCArMTc0OSwxMCBAQCBJbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10 eXBlLlMKICsJLmJ5dGUJCTB4MAkJCS8qIFRlcm1pbmF0b3IgKi8KICsKICsJLmJ5dGUJCTB4MAkJ CS8qIFRlcm1pbmF0b3IgKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1uby10eXBl LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTM5OTk4 NzQgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM4MTcyOTA2 ICswMjAwCiBAQCAtMCwwICsxLDM5IEBACiArIyBDb3B5cmlnaHQgMjAxMiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE3OTMsMTAgKzE3OTMsMTAgQEAgSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8t dHlwZS5leHAKICsKICtnZGJfdGVzdCAicHR5cGUgbm90eXBlX3N0cmluZyIge3R5cGUgPSBjaGFy IFxbMTI5XF19CiArZ2RiX3Rlc3QgInAgbm90eXBlX3N0cmluZyIgIiA9ICd4JyA8cmVwZWF0cyAx MjkgdGltZXM+IgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4 cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NDk5OTg4MSArMDEwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmV4cAkyMDE2LTA3 LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgQ29weXJp Z2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xODQwLDEwICsx ODQwLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYnJl YWstaGVyZSIgIi4qYnJlYWstaGVyZS4qIgogK2dkYl90ZXN0ICJwIGM0MHB0KDEpIiAiID0gJzAt aGVsbG8uKiIKICtnZGJfdGVzdCAicCBjNDBwdCgyKSIgIiA9ICcxLWhlbGxvLioiCi1JbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJp ZGUuZjkwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9kd2FyZi1zdHJpZGUuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCTIwMTYtMDItMTUgMjM6MzU6 NTYuMjk0OTk5ODgxICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcy OTE0ICswMjAwCiBAQCAtMCwwICsxLDQwIEBACiArISBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xODg1LDEwICsxODg1LDEwIEBAIEluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlk ZS5mOTAKICsgIHByaW50ICosIGM0MHB0ICAhIGJyZWFrLWhlcmUKICsKICtlbmQgcHJvZ3JhbSBy ZXBybwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vZHluYW1pYy5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAkyMDE2LTAyLTE1IDIzOjM2OjM5 LjM1ODMwNTYzNSArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAxNi0wNy0xNiAxNzoxOToyNC4yNTUyMDIwMTMgKzAy MDAKIEBAIC0wLDAgKzEsMTUxIEBACiArIyBDb3B5cmlnaHQgMjAwNyBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KICsKQEAgLTE5MzUsNyArMTkzNSw3IEBAIEluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX2Jy ZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcngtaW5pdCJdCiArZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInZhcngtaW5pdCIKICtnZGJfdGVzdCAicCB2YXJ4IiAiXFwkXFswLTlc XSogPSA8bm90IGFsbG9jYXRlZD4iICJwIHZhcnggdW5hbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInB0 eXBlIHZhcngiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmFyeCB1bmFsbG9jYXRl ZCIKKytnZGJfdGVzdCAicHR5cGUgdmFyeCIge3R5cGUgPSByZWFsXChraW5kPTRcKSBcKDosOiw6 XCl9ICJwdHlwZSB2YXJ4IHVuYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIHZhcngoMSw1LDE3KSIg e25vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFwpfSAicCB2YXJ4 KDEsNSwxNykgdW5hbGxvY2F0ZWQiCiArZ2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcpPTEiIHtubyBz dWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0gInAgdmFyeCgxLDUs MTcpPTEgdW5hbGxvY2F0ZWQiCiArZ2RiX3Rlc3QgInB0eXBlIHZhcngoMSw1LDE3KSIge25vIHN1 Y2ggdmVjdG9yIGVsZW1lbnQgXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFwpfSAicHR5cGUgdmFyeCgx LDUsMTcpIHVuYWxsb2NhdGVkIgpAQCAtMTk1NCw3ICsxOTU0LDcgQEAgSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5leHAKICtnZGJf dGVzdCAicCB2YXJ4KDIsIDYsIDE4KSIgIlxcJFxbMC05XF0qID0gOCIKICtnZGJfdGVzdCAicCB2 YXJ4KDYsIDE1LCAyOCkiICJcXCRcWzAtOVxdKiA9IDkiCiArZ2RiX3Rlc3QgInAgdmFydiIgIlxc JFxbMC05XF0qID0gPG5vdCBhc3NvY2lhdGVkPiIgInAgdmFydiB1bmFzc29jaWF0ZWQiCi0rZ2Ri X3Rlc3QgInB0eXBlIHZhcnYiICJ0eXBlID0gPG5vdCBhc3NvY2lhdGVkPiIgInB0eXBlIHZhcnYg dW5hc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSB2YXJ2IiB7dHlwZSA9IHJlYWxcKGtpbmQ9 NFwpIFwoOiw6LDpcKX0gInB0eXBlIHZhcnYgdW5hc3NvY2lhdGVkIgogKwogK3NldCB0ZXN0ICJv dXRwdXQgdmFyeCIKICtnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdCAkdGVzdCB7CkBAIC0xOTgyLDcg KzE5ODIsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi9keW5hbWljLmV4cAogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJ2LWRl YXNzb2NpYXRlZCIKICsjIFRoZSBsYXR0ZXIgb25lIGlzIGZvciB0aGUgSW50ZWwgRm9ydHJhbiBD b21waWxlciAxMC4xLjAwOCBwb2ludGVyIHR5cGUuCiArZ2RiX3Rlc3QgInAgdmFydiIgIlxcJFxb MC05XF0qID0gKDxub3QgYXNzb2NpYXRlZD58LiooQ2Fubm90IGFjY2VzcyBpdHxVbmFibGUgdG8g YWNjZXNzIHRoZSBvYmplY3QpIGJlY2F1c2UgdGhlIG9iamVjdCBpcyBub3QgYXNzb2NpYXRlZC4p IiAicCB2YXJ2IGRlYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmFydiIgInR5cGUgPSAo PG5vdCBhc3NvY2lhdGVkPnwuKihDYW5ub3QgYWNjZXNzIGl0fFVuYWJsZSB0byBhY2Nlc3MgdGhl IG9iamVjdCkgYmVjYXVzZSB0aGUgb2JqZWN0IGlzIG5vdCBhc3NvY2lhdGVkLikiICJwdHlwZSB2 YXJ2IGRlYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmFydiIge3R5cGUgPSByZWFsXChr aW5kPTRcKSBcKDosOiw6XCl9ICJwdHlwZSB2YXJ2IGRlYXNzb2NpYXRlZCIKICtnZGJfdGVzdCAi cCBsIiAiXFwkXFswLTlcXSogPSBcXC5GQUxTRVxcLiIgInAgbCBpZiB2YXJ2IGRlYXNzb2NpYXRl ZCIKICtnZGJfdGVzdCAicCB2YXJ2KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwo dmVjdG9yIG5vdCBhc3NvY2lhdGVkXCl9CiArZ2RiX3Rlc3QgInB0eXBlIHZhcnYoMSw1LDE3KSIg e25vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXCh2ZWN0b3Igbm90IGFzc29jaWF0ZWRcKX0KQEAgLTE5 OTAsNyArMTk5MCw3IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9u dW1iZXIgInZhcngtZGVhbGxvY2F0ZWQiXQogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2 YXJ4LWRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwIHZhcngiICJcXCRcWzAtOVxdKiA9IDxub3Qg YWxsb2NhdGVkPiIgInAgdmFyeCBkZWFsbG9jYXRlZCIKLStnZGJfdGVzdCAicHR5cGUgdmFyeCIg InR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2YXJ4IGRlYWxsb2NhdGVkIgorK2dkYl90 ZXN0ICJwdHlwZSB2YXJ4IiB7dHlwZSA9IHJlYWxcKGtpbmQ9NFwpIFwoOiw6LDpcKX0gInB0eXBl IHZhcnggZGVhbGxvY2F0ZWQiCiArZ2RiX3Rlc3QgInAgbCIgIlxcJFxbMC05XF0qID0gXFwuRkFM U0VcXC4iICJwIGwgaWYgdmFyeCBkZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicCB2YXJ4KDEsNSwx NykiIHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0gInAg dmFyeCgxLDUsMTcpIGRlYWxsb2NhdGVkIgogK2dkYl90ZXN0ICJwdHlwZSB2YXJ4KDEsNSwxNyki IHtubyBzdWNoIHZlY3RvciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0gInB0eXBl IHZhcngoMSw1LDE3KSBkZWFsbG9jYXRlZCIKQEAgLTIwNDEsMTAgKzIwNDEsMTAgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5l eHAKICtnZGJfdGVzdCAicCB2YXJ0KDMsOCkiICJcXCRcWzAtOVxdKiA9IDkiCiArIyBtYXBzIHRv IGZvbzo6dmFyeSgxLDMpCiArZ2RiX3Rlc3QgInAgdmFydCgyLDkpIiAiXFwkXFswLTlcXSogPSAx MCIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2R5bmFtaWMuZjkwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9keW5hbWljLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAx LTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy5mOTAJMjAxNi0wMi0xNSAyMzozNTo1Ni4y OTQ5OTk4ODEgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMuZjkwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM5MTcyOTE0ICswMjAw CiBAQCAtMCwwICsxLDk4IEBACiArISBDb3B5cmlnaHQgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KICshCkBAIC0yMTQ0LDEwICsyMTQ0LDEwIEBAIEluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZjkwCiArICBpZiAo eCAoMSwgMSkgLm5lLiA4IC5vci4geCAoMiwgMikgLm5lLiA5IC5vci4geCAoMSwgMikgLm5lLiA0 KSBjYWxsIGFib3J0CiArICBpZiAoeCAoMywgMSkgLm5lLiAxMCkgY2FsbCBhYm9ydAogK2VuZAot SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3Ry aW5nLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3RyaW5nLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmV4cAkyMDE2LTAyLTE1IDIzOjM2OjM5LjM1OTMwNTY0 MiArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vc3RyaW5nLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAs MCArMSw1OSBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArCkBAIC0yMjA4LDEwICsyMjA4LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAKICtnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAidmFyLWZpbmlzaCIKICtnZGJfdGVzdCAicCBlIiAiXFwkXFswLTlcXSogPSAn ZSAgICciICJwIGUgcmUtc2V0IgogK2dkYl90ZXN0ICJwIGYiICJcXCRcWzAtOVxdKiA9IFxcKFxc KCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICdc XCkgXFwoICdmMiAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdm ICAgJ1xcKSBcXCggJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAg JywgJ2YgICAnXFwpIFxcKSIgInAgKmYgcmUtc2V0IgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAorSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5n LmY5MAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NTk5OTg4OCArMDEwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5MAkyMDE2LTA3LTE2 IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSwzNyBAQAogKyEgQ29weXJpZ2h0 IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMjI1MCwxMCArMjI1 MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9zdHJpbmcuZjkwCiArICBoID0gJ2gnCiArICBjYWxsIGZvbyAoZywgaCkKICtlbmQKLUlu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJh bmdlLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3VicmFuZ2UuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTU5 OTk4ODggKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3N1YnJhbmdlLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAog QEAgLTAsMCArMSw3MiBAQAogKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArCkBAIC0yMzI3LDEwICsyMzI3LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cAogK2dkYl91bmxv YWQKICtzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCiArZ2RiX3Rlc3Qg e3AgJGEgKDMsIDI6Mil9IHsgPSBcKDIzXCl9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFu Z2UuZjkwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAJMjAxNi0w Ny0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICshIENvcHly aWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTIzNjAsMTAg KzIzNjAsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vc3VicmFuZ2UuZjkwCiArICBwdHIgPT4gYQogKyAgd3JpdGUgKCosKikgYSAgICAg ICAgICAgICAgICAgISBicmVhay1zdGF0aWMKICtlbmQKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlw ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv bWkyLXZhci1zdGFsZS10eXBlLmMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTU5OTk4ODggKzAxMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0 YWxlLXR5cGUuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCAr MSwyNiBAQAogKy8qIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgogKwpAQCAtMjM5MSwxMCArMjM5MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMKICsKICsgIHJldHVybiAw OwogK30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aTItdmFyLXN0YWxlLXR5cGUuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5leHAJ MjAxNi0wMi0xNSAyMzozNTo1Ni4yOTU5OTk4ODggKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCTIwMTYtMDct MTYgMTY6NTM6MzMuNzM5MTcyOTE0ICswMjAwCiBAQCAtMCwwICsxLDU3IEBACiArIyBDb3B5cmln aHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0yNDUzLDEwICsy NDUzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5t aS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCiArbWlfY3JlYXRlX3Zhcm9iaiAidmxhIiAidmxhIiAi Y3JlYXRlIGxvY2FsIHZhcmlhYmxlIHZsYSIKICsKICttaV9nZGJfdGVzdCAiLXZhci11cGRhdGUg KiIgIlxcXmRvbmUsY2hhbmdlbGlzdD0uKiIgIi12YXItdXBkYXRlICoiCi1JbmRleDogZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIt ZnVuYy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCTIwMTYt MDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCTIwMTYtMDct MTYgMTY6NTM6MzMuNzM5MTcyOTE0ICswMjAwCiBAQCAtMCwwICsxLDIyIEBACiArLyogVGhpcyBm aWxlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjQ4MCwxMCArMjQ4 MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0 L2FycmF5LWZyb20tcmVnaXN0ZXItZnVuYy5jCiArewogKyAgcmV0dXJuIGFyclswXTsKICt9Ci1J bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZy b20tcmVnaXN0ZXIuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5jCTIwMTYtMDIt MTUgMjM6MzU6NTYuMjk2OTk5ODk1ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwkyMDE2LTA3LTE2IDE2OjUz OjMzLjc0MDE3MjkyMiArMDIwMAogQEAgLTAsMCArMSwyOCBAQAogKy8qIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTI1MTMsMTAgKzI1MTMsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1m cm9tLXJlZ2lzdGVyLmMKICsKICsgIHJldHVybiAwOwogK30KLUluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJv bS1yZWdpc3Rlci5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4y OTY5OTk4OTUgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5 MjIgKzAyMDAKIEBAIC0wLDAgKzEsMzMgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTI1NTEsMTAgKzI1NTEsMTAgQEAgSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lz dGVyLmV4cAogKyMgU2VlbiByZWdyZXNzaW9uOgogKyMgQWRkcmVzcyByZXF1ZXN0ZWQgZm9yIGlk ZW50aWZpZXIgImFyciIgd2hpY2ggaXMgaW4gcmVnaXN0ZXIgJHJkaQogK2dkYl90ZXN0ICJwIGFy clxbMFxdIiAiXFwkXFswLTlcXSsgPSA0MiIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5leHAJMjAx Ni0wMi0xNSAyMzozNjozOS4zNTkzMDU2NDIgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMz Ljc0MDE3MjkyMiArMDIwMAogQEAgLTAsMCArMSwxMDQgQEAKICsjIENvcHlyaWdodCAyMDA4LCAy MDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyMKQEAgLTI2NjAsMTAgKzI2NjAs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2Nh bC9hcnJheXMuZXhwCiArfQogK2dkYl90ZXN0ICJwcmludCBEeW5BcnJDaGFyIiAiLiogPSAnYWJj ZGVmZ2hpamtsbSciICJQcmludCBkeW5hbWljIGFycmF5IG9mIGNoYXIiCiArCi1JbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlz LnBhcwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBh c2NhbC9hcnJheXMucGFzCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk2OTk5ODk1ICswMTAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMJ MjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAyMDAKIEBAIC0wLDAgKzEsODIgQEAKICt7 CiArIENvcHlyaWdodCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpA QCAtMjc0NywxMCArMjc0NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKICsgIHMgOj0gJ3Rlc3QnIzAnc3RyaW5nJzsK ICsgIHdyaXRlbG4ocyk7IHsgc2V0IGJyZWFrcG9pbnQgMiBoZXJlIH0KICtlbmQuCi1JbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJ MjAxNi0wMi0xNSAyMzozNTo1NS4zMjY5OTMwMDggKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk3OTk5 OTAzICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGVzdHN1aXRlL2xp Yi9nZGIuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuMDYzMTY3MzE1ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTE2IDE2OjUz OjMzLjc0MTE3MjkzMCArMDIwMAogQEAgLTE3Myw2ICsxNzMsMTEgQEAKICAJICAgIHNlbmRfZ2Ri ICJ5XG4iCiAgCSAgICBleHBfY29udGludWUKQEAgLTI3NjMsMTAgKzI3NjMsMTAgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKICAJLXJlICJE aXNjYXJkIHN5bWJvbCB0YWJsZSBmcm9tIC4qeSBvciBuLiokIiB7CiAgCSAgICBzZW5kX2dkYiAi eVxuIgogIAkgICAgZXhwX2NvbnRpbnVlCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4y MDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAxNi0wMi0xNSAyMzoz MzoyOS44MzA5NTk5NzIgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk4OTk5OTEwICswMTAwCist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhw CTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjc0 MTE3MjkzMCArMDIwMAogQEAgLTM3LDYgKzM3LDkgQEAKICAgICAgZ2xvYmFsIHBhc2NhbF9jb21w aWxlcl9pc19mcGMKICAgICAgZ2xvYmFsIGdwY19jb21waWxlcgoKZGlmZiAtLWdpdCBhL2dkYi1h cmNoZXIucGF0Y2ggYi9nZGItYXJjaGVyLnBhdGNoCmluZGV4IDYxN2NjMGYuLjkwNGM2MDYgMTAw NjQ0Ci0tLSBhL2dkYi1hcmNoZXIucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci5wYXRjaApAQCAtMiw3 ICsyLDcgQEAgaHR0cDovL3NvdXJjZXdhcmUub3JnL2dkYi93aWtpL1Byb2plY3RBcmNoZXIKIGh0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9BcmNoZXJCcmFuY2hNYW5hZ2VtZW50CiAKIEdJ VCBzbmFwc2hvdDoKLWNvbW1pdCBmMGVlNzhjNWNjZWZlMzg4YTY0MjczMzUzZWNkNWM5OWRhZTYy NTU4Citjb21taXQgNWU4YzZlMzQ1ZDYzZTYxZDNjMzFlNjdhNTVkYjI1YTY4MjQ3ODdiMgogCiB0 cm9tZXkvcHl0aG9uCiAKQEAgLTE2LDEwICsxNiwxMCBAQCBpbmRleCAwMDAwMDAwLi4xNzNiOGVh CiArVGhpcyBicmFuY2ggb3JpZ2luYWxseSBoZWxkIHRoZSBQeXRob24gY29kZSBmb3IgZ2RiLiAg SXQgc3RpbGwgZXhpc3RzCiArYmVjYXVzZSBhIHNtYWxsIGFtb3VudCBvZiBjb2RlIGhlcmUgaGFz IG5vdCB5ZXQgYmVlbiBtZXJnZWQgdXBzdHJlYW0uCiBkaWZmIC0tZ2l0IGEvZ2RiL01ha2VmaWxl LmluIGIvZ2RiL01ha2VmaWxlLmluCi1pbmRleCA5NTEwNGVmLi5hOWIxOThhIDEwMDY0NAoraW5k ZXggMTZkNWYyNy4uNzM0NmQ0NiAxMDA2NDQKIC0tLSBhL2dkYi9NYWtlZmlsZS5pbgogKysrIGIv Z2RiL01ha2VmaWxlLmluCi1AQCAtMTUzNCw2ICsxNTM0LDEyIEBAIHN0YW1wLWg6ICQoc3JjZGly KS9jb25maWcuaW4gY29uZmlnLnN0YXR1cworQEAgLTE1NTMsNiArMTU1MywxMiBAQCBzdGFtcC1o OiAkKHNyY2RpcikvY29uZmlnLmluIGNvbmZpZy5zdGF0dXMKICAJICBDT05GSUdfTElOS1M9IFwK ICAJICAkKFNIRUxMKSBjb25maWcuc3RhdHVzCiAgCkBAIC0zMywxMCArMzMsMTAgQEAgaW5kZXgg OTUxMDRlZi4uYTliMTk4YSAxMDA2NDQKICAJJChTSEVMTCkgY29uZmlnLnN0YXR1cyAtLXJlY2hl Y2sKICAKIGRpZmYgLS1naXQgYS9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4gYi9nZGIv ZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KLWluZGV4IDMwY2ZkMTcuLmU5NzdiMzAgMTAwNjQ0 CitpbmRleCAwYmVjYTU1Li5mNDk5YjUzIDEwMDY0NAogLS0tIGEvZ2RiL2RhdGEtZGlyZWN0b3J5 L01ha2VmaWxlLmluCiArKysgYi9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KLUBAIC02 NSw3ICs2NSwxMCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAorQEAgLTY2LDcgKzY2LDEwIEBAIFBZ VEhPTl9GSUxFX0xJU1QgPSBcCiAgCWdkYi91bndpbmRlci5weSBcCiAgCWdkYi9wcm9tcHQucHkg XAogIAlnZGIveG1ldGhvZC5weSBcCkBAIC00Nyw4ICs0Nyw4IEBAIGluZGV4IDMwY2ZkMTcuLmU5 NzdiMzAgMTAwNjQ0CiAgCWdkYi9jb21tYW5kL3htZXRob2RzLnB5IFwKICAJZ2RiL2NvbW1hbmQv ZnJhbWVfZmlsdGVycy5weSBcCiAgCWdkYi9jb21tYW5kL3Vud2luZGVycy5weSBcCi1AQCAtNzYs NiArNzksOCBAQCBQWVRIT05fRklMRV9MSVNUID0gXAotIAlnZGIvZnVuY3Rpb24vX19pbml0X18u cHkgXAorQEAgLTc4LDYgKzgxLDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKKyAJZ2RiL2Z1bmN0 aW9uL2FzX3N0cmluZy5weSBcCiAgCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXAogIAlnZGIv ZnVuY3Rpb24vc3RyZm5zLnB5IFwKICsJZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weSBcCkBAIC01 Nyw3ICs1Nyw3IEBAIGluZGV4IDMwY2ZkMTcuLmU5NzdiMzAgMTAwNjQ0CiAgCWdkYi9wcmludGVy L2JvdW5kX3JlZ2lzdGVycy5weQogIAogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8g Yi9nZGIvZG9jL2dkYi50ZXhpbmZvCi1pbmRleCAxNjY1MzcyLi5jNGNhZmZjIDEwMDY0NAoraW5k ZXggYTA2ODYyMi4uNjRhYmFhNyAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8KICsr KyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KIEBAIC0xMjI1LDYgKzEyMjUsMTYgQEAgZm9yIHJlbW90 ZSBkZWJ1Z2dpbmcuCkBAIC03OCw3ICs3OCw3IEBAIGluZGV4IDE2NjUzNzIuLmM0Y2FmZmMgMTAw NjQ0CiAgQGl0ZW0gLXR1aQogIEBjaW5kZXggQGNvZGV7LS10dWl9CiBkaWZmIC0tZ2l0IGEvZ2Ri L2RvYy9weXRob24udGV4aSBiL2dkYi9kb2MvcHl0aG9uLnRleGkKLWluZGV4IDU3ZWMyMmUuLjEz YmViMDUgMTAwNjQ0CitpbmRleCA2NjIzZDhlLi5hNzFmNWUxIDEwMDY0NAogLS0tIGEvZ2RiL2Rv Yy9weXRob24udGV4aQogKysrIGIvZ2RiL2RvYy9weXRob24udGV4aQogQEAgLTg4LDggKzg4LDYg QEAgY29udGFpbmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CkBAIC0xMTEsNyArMTExLDcg QEAgaW5kZXggMDVhMzhiMi4uOTgwMWZkZiAxMDA2NDQKICAgIHNldCB2YXJpYWJsZSAkZ2RiX2lu aXRfZG9uZSA9IDEKICAKIGRpZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYwotaW5k ZXggYWVjZDYwYS4uZDBmNzgzNCAxMDA2NDQKK2luZGV4IDU0NzczNzkuLmI3ZTQxM2YgMTAwNjQ0 CiAtLS0gYS9nZGIvbWFpbi5jCiArKysgYi9nZGIvbWFpbi5jCiBAQCAtMzMsNiArMzMsNyBAQApA QCAtMTIyLDcgKzEyMiw3IEBAIGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CiAgI2luY2x1 ZGUgInNvdXJjZS5oIgogICNpbmNsdWRlICJjbGkvY2xpLWNtZHMuaCIKICAjaW5jbHVkZSAib2Jq ZmlsZXMuaCIKLUBAIC00NTMsNiArNDU0LDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK K0BAIC00NTksNiArNDYwLDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgIGNoYXIg KmNkYXJnID0gTlVMTDsKICAgIGNoYXIgKnR0eWFyZyA9IE5VTEw7CiAgCkBAIC0xOTAsNyArMTkw LDcgQEAgaW5kZXggYWVjZDYwYS4uZDBmNzgzNCAxMDA2NDQKICAgICAgewogICAgICAgIC8qIFRo ZSByZW1haW5pbmcgb3B0aW9ucyBhcmUgdGhlIGNvbW1hbmQtbGluZSBvcHRpb25zIGZvciB0aGUK ICAJIGluZmVyaW9yLiAgVGhlIGZpcnN0IG9uZSBpcyB0aGUgc3ltL2V4ZWMgZmlsZSwgYW5kIHRo ZSByZXN0Ci1AQCAtMTEzNyw3ICsxMTcxLDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK K0BAIC0xMTI3LDcgKzExNjEsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAogICAg LyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21tYW5kIGZpbGVzIGhh dmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC0yMDAsNyArMjAwLDcgQEAgaW5kZXggYWVjZDYw YS4uZDBmNzgzNCAxMDA2NDQKICAKICAgIGlmIChiYXRjaF9mbGFnKQogICAgICB7Ci1AQCAtMTE0 OCwxMyArMTE4MywyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTExMzgsMTMg KzExNzMsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgIC8qIFNob3cgdGltZSBh bmQvb3Igc3BhY2UgdXNhZ2UuICAqLwogICAgZG9fY2xlYW51cHMgKHByZV9zdGF0X2NoYWluKTsK ICAKQEAgLTIzMiw3ICsyMzIsNyBAQCBpbmRleCBhZWNkNjBhLi5kMGY3ODM0IDEwMDY0NAogICAg ICB9CiAgICAvKiBObyBleGl0IC0tIGV4aXQgaXMgdGhyb3VnaCBxdWl0X2NvbW1hbmQuICAqLwog IH0KLUBAIC0xMTg4LDYgKzEyMzUsMTIgQEAgcHJpbnRfZ2RiX2hlbHAgKHN0cnVjdCB1aV9maWxl ICpzdHJlYW0pCitAQCAtMTE4Nyw2ICsxMjM0LDEyIEBAIHByaW50X2dkYl9oZWxwIChzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtKQogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogIFRoaXMgaXMgdGhl IEdOVSBkZWJ1Z2dlci4gIFVzYWdlOlxuXG5cCiAgICAgIGdkYiBbb3B0aW9uc10gW2V4ZWN1dGFi bGUtZmlsZSBbY29yZS1maWxlIG9yIHByb2Nlc3MtaWRdXVxuXApAQCAtMjQ1LDcgKzI0NSw3IEBA IGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CiAgICAgIGdkYiBbb3B0aW9uc10gLS1hcmdz IGV4ZWN1dGFibGUtZmlsZSBbaW5mZXJpb3ItYXJndW1lbnRzIC4uLl1cblxuXAogICIpLCBzdHJl YW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAotQEAgLTEyMzIsNiArMTI4NSwxMyBAQCBP dXRwdXQgYW5kIHVzZXIgaW50ZXJmYWNlIGNvbnRyb2w6XG5cblwKK0BAIC0xMjMxLDYgKzEyODQs MTMgQEAgT3V0cHV0IGFuZCB1c2VyIGludGVyZmFjZSBjb250cm9sOlxuXG5cCiAgI2VuZGlmCiAg ICBmcHV0c191bmZpbHRlcmVkIChfKCJcCiAgICAtLWRieCAgICAgICAgICAgICAgREJYIGNvbXBh dGliaWxpdHkgbW9kZS5cblwKQEAgLTQ0MywxMCArNDQzLDEwIEBAIGluZGV4IDAwMDAwMDAuLjg3 NDI2ODAKICsKICtJblNjb3BlICgpCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBi L2dkYi9weXRob24vcHl0aG9uLmMKLWluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CitpbmRl eCAzYTI3MmE5Li5lN2U2MWNmIDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uYwogKysr IGIvZ2RiL3B5dGhvbi9weXRob24uYwotQEAgLTkzLDYgKzkzLDggQEAgY29uc3Qgc3RydWN0IGV4 dGVuc2lvbl9sYW5ndWFnZV9kZWZuIGV4dGVuc2lvbl9sYW5ndWFnZV9weXRob24gPQorQEAgLTk1 LDYgKzk1LDggQEAgY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuIGV4dGVuc2lv bl9sYW5ndWFnZV9weXRob24gPQogICNpbmNsdWRlICJsaW5lc3BlYy5oIgogICNpbmNsdWRlICJz b3VyY2UuaCIKICAjaW5jbHVkZSAidmVyc2lvbi5oIgpAQCAtNDU1LDcgKzQ1NSw3IEBAIGluZGV4 IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAgI2luY2x1ZGUgInRhcmdldC5oIgogICNpbmNsdWRl ICJnZGJ0aHJlYWQuaCIKICAjaW5jbHVkZSAiaW50ZXJwcy5oIgotQEAgLTEyNjIsNiArMTI2NCw4 MyBAQCBnZGJweV9wcmludF9zdGFjayAodm9pZCkKK0BAIC0xMjU0LDYgKzEyNTYsOTAgQEAgZ2Ri cHlfcHJpbnRfc3RhY2sgKHZvaWQpCiAgCiAgLyogUmV0dXJuIHRoZSBjdXJyZW50IFByb2dzcGFj ZS4KICAgICBUaGVyZSBhbHdheXMgaXMgb25lLiAgKi8KQEAgLTQ3Nyw3ICs0NzcsMTQgQEAgaW5k ZXggNGY4OGIwZS4uODcwYTFiYSAxMDA2NDQKICsgICAgcmV0dXJuIFB5RXJyX0Zvcm1hdCAoUHlF eGNfUnVudGltZUVycm9yLCBfKCJDYW5ub3QgaW52b2tlIENMSSBmcm9tIE1JLiIpKTsKICsKICsg IGluX2NsaSA9IDE7Ci0rICBjdXJyZW50X2ludGVycF9jb21tYW5kX2xvb3AgKCk7CisrICAvKiBT ZWUgY2FwdHVyZWRfY29tbWFuZF9sb29wLiAgKi8KKysKKysgIC8qIEdpdmUgdGhlIGludGVycHJl dGVyIGEgY2hhbmNlIHRvIHByaW50IGEgcHJvbXB0LiAgKi8KKysgIGludGVycF9wcmVfY29tbWFu ZF9sb29wICh0b3BfbGV2ZWxfaW50ZXJwcmV0ZXIgKCkpOworKworKyAgLyogTm93IGl0J3MgdGlt ZSB0byBzdGFydCB0aGUgZXZlbnQgbG9vcC4gICovCisrICBzdGFydF9ldmVudF9sb29wICgpOwor KwogKyAgaW5fY2xpID0gMDsKICsKICsgIFB5X1JFVFVSTl9OT05FOwpAQCAtNTAwLDcgKzUwNyw3 IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiArICBQeVN5c19TZXRBcmd2IChhcmdj IC0gMSwgYXJndiArIDEpOwogKyNlbHNlCiArICB7Ci0rICAgIHdjaGFyX3QgKip3YXJndiA9IGFs bG9jYSAoc2l6ZW9mICgqd2FyZ3YpICogKGFyZ2MgKyAxKSk7CisrICAgIHdjaGFyX3QgKip3YXJn diA9ICh3Y2hhcl90ICoqKSBhbGxvY2EgKHNpemVvZiAoKndhcmd2KSAqIChhcmdjICsgMSkpOwog KyAgICBpbnQgaTsKICsKICsgICAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykKQEAgLTUxNCw3 ICs1MjEsNyBAQCBpbmRleCA0Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAogKwkJICAgICBpLCBhcmd2 W2ldKTsKICsJICAgIGV4aXQgKDEpOwogKwkgIH0KLSsJd2FyZ3ZbaV0gPSBhbGxvY2EgKHNpemVv ZiAoKip3YXJndikgKiAobGVuICsgMSkpOworKwl3YXJndltpXSA9ICh3Y2hhcl90ICopIGFsbG9j YSAoc2l6ZW9mICgqKndhcmd2KSAqIChsZW4gKyAxKSk7CiArCWxlbjIgPSBtYnN0b3djcyAod2Fy Z3ZbaV0sIGFyZ3ZbaV0sIGxlbiArIDEpOwogKwlhc3NlcnQgKGxlbjIgPT0gbGVuKTsKICsgICAg ICB9CkBAIC01MzksNyArNTQ2LDcgQEAgaW5kZXggNGY4OGIwZS4uODcwYTFiYSAxMDA2NDQKICAK ICBzdGF0aWMgUHlPYmplY3QgKgogIGdkYnB5X2dldF9jdXJyZW50X3Byb2dzcGFjZSAoUHlPYmpl Y3QgKnVudXNlZDEsIFB5T2JqZWN0ICp1bnVzZWQyKQotQEAgLTE5ODIsNiArMjA2MSw4IEBAIFB5 TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQorQEAgLTE5NzIsNiArMjA1OCw4IEBAIFB5 TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQogIEV2YWx1YXRlIGNvbW1hbmQsIGEgc3Ry aW5nLCBhcyBhIGdkYiBDTEkgY29tbWFuZC4gIE9wdGlvbmFsbHkgcmV0dXJuc1xuXAogIGEgUHl0 aG9uIFN0cmluZyBjb250YWluaW5nIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgaWYgdG9fc3Ry aW5nIGlzXG5cCiAgc2V0IHRvIFRydWUuIiB9LApAQCAtNTQ5LDcgKzU1Niw3IEBAIGluZGV4IDRm ODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAgICAgICJSZXR1cm4gYSBnZGIgcGFyYW1ldGVyJ3MgdmFs dWUiIH0sCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uaCBiL2dkYi9weXRob24v cHl0aG9uLmgKLWluZGV4IGU2YmZjY2EuLjY4OGRhYTMgMTAwNjQ0CitpbmRleCBiODEwMTg3Li5h MzYyMGFiIDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uaAogKysrIGIvZ2RiL3B5dGhv bi9weXRob24uaAogQEAgLTI1LDQgKzI1LDYgQEAKQEAgLTU2MCw3ICs1NjcsNyBAQCBpbmRleCBl NmJmY2NhLi42ODhkYWEzIDEwMDY0NAogKwogICNlbmRpZiAvKiBHREJfUFlUSE9OX0ggKi8KIGRp ZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAotaW5kZXggOWYyNWE0OC4uODhiMDg0MiAxMDA2NDQK K2luZGV4IGFmMDAyNmMuLjZjOWJiYjIgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5n ZGIvc2VsZnRlc3QuZXhwCiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhw CiBAQCAtOTIsNiArOTIsMTAgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4dHMge30gewpAQCAtNTc1 LDcgKzU4Miw3IEBAIGluZGV4IDlmMjVhNDguLjg4YjA4NDIgMTAwNjQ0CiAgCQlzZXQgZGVzY3Jp cHRpb24gIm5leHQgb3ZlciBtYWtlX2NvbW1hbmRfc3RhdHNfY2xlYW51cCBhbmQgZXZlcnl0aGlu ZyBpdCBjYWxscyIKICAJCXNldCBjb21tYW5kICJuZXh0IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24v cHktZnJhbWUuZXhwCi1pbmRleCAzM2ZkYmU1Li4yNjRkMDBmIDEwMDY0NAoraW5kZXggYjVhNDY4 Mi4uZDU0NTFhNiAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFt ZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKIEBAIC05 NSw2ICs5NSw4IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSBmMC5y ZWFkX3ZhciAoJ2EnKSkiICIgPSAxIiAidGVzdCBGcmFtZS5yCkBAIC01ODgsMTAgKzU5NSwxMCBA QCBpbmRleCAzM2ZkYmU1Li4yNjRkMDBmIDEwMDY0NAogIGdkYl90ZXN0ICJweXRob24gcHJpbnQg KCdyZXN1bHQgPSAlcycgJSAoZ2RiLnNlbGVjdGVkX2ZyYW1lICgpLnJlYWRfcmVnaXN0ZXIgKCdz cCcpID09IGdkYi5wYXJzZV9hbmRfZXZhbCAoJ1wkc3AnKSkpIiBcCiAgICAiID0gVHJ1ZSIgXAog ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktdmFsdWUuZXhwCi1pbmRleCBiYWExN2I3Li40NWFkNjdl IDEwMDY0NAoraW5kZXggNTdhOWJhMS4uZDkwZDg1YSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9weS12YWx1ZS5leHAKLUBAIC0zODgsNiArMzg4LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRl cl9kZWF0aCB7fSB7CitAQCAtMzk3LDYgKzM5NywxNSBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJf ZGVhdGgge30gewogICAgICAicHJpbnQgdmFsdWUncyB0eXBlIgogIH0KICAKQEAgLTYwNyw3ICs2 MTQsNyBAQCBpbmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0NAogICMgUmVncmVzc2lvbiB0ZXN0 IGZvciBpbnZhbGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAogICMg dGhlIHR5cGUgb2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dp bmcgYQogICMgc3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotQEAgLTUxNyw2ICs1MjYs NyBAQCB0ZXN0X3ZhbHVlX2luX2luZmVyaW9yCitAQCAtNTI2LDYgKzUzNSw3IEBAIHRlc3RfdmFs dWVfaW5faW5mZXJpb3IKICB0ZXN0X2luZmVyaW9yX2Z1bmN0aW9uX2NhbGwKICB0ZXN0X2xhenlf c3RyaW5ncwogIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgKCmRpZmYgLS1naXQgYS9nZGItYmFyZS1E V19UQUdfbGV4aWNhbF9ibG9jay0xb2YyLnBhdGNoIGIvZ2RiLWJhcmUtRFdfVEFHX2xleGljYWxf YmxvY2stMW9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDNmYTViOC4u MDAwMDAwMAotLS0gYS9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0xb2YyLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMjM1ICswLDAgQEAKLUZyb20gM2EyYjQzNmFlOTk1OGExMDI5NTQ1 YzAzMjAxYjcyMjNmZjMzYzE1MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbiBL cmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAzMCBNYXkg MjAxNiAxNDoxMTo0MyArMDIwMAotU3ViamVjdDogW1BBVENIIDEvMl0gQ29kZSBjbGVhbnVwOiBk d2FyZjJfZ2V0X3BjX2JvdW5kczogLTEvMC8rMSAtPiBlbnVtCi0KLU1ha2UgdGhlIGNvZGUgKG1h eWJlKSBtb3JlIHJlYWRhYmxlICsgcHJpbWFyaWx5IHByZXBhcmUgaXQgZm9yIFtwYXRjaCAyLzJd Ci1lbnVtIGV4dGVuc2lvbi4KLQotVGhpcyBjaGFuZ2Ugc2hvdWxkIGhhdmUgbm8gY29kZSBjaGFu Z2UgaW1wYWN0LgotCi1nZGIvQ2hhbmdlTG9nCi0yMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlDb2RlIGNsZWFudXA6IGR3YXJmMl9nZXRf cGNfYm91bmRzOiAtMS8wLysxIC0+IGVudW0KLQkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3Vu ZHNfa2luZCkgTmV3LgotCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6IFVzZSBpdCBpbiB0aGUgZGVj bGFyYXRpb24uCi0JKHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyKTogQWRqdXN0IGNh bGxlci4gIFJlbmFtZSBoYXNfcGNfaW5mbwotCXRvIGN1X2JvdW5kc19raW5kLgotCShyZWFkX2Z1 bmNfc2NvcGUsIHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSwgcmVhZF9jYWxsX3NpdGVfc2NvcGUp OgotCUFkanVzdCBjYWxsZXJzLgotCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6IFVzZSBlbnVtIHBj X2JvdW5kc19raW5kIGluIHRoZSBkZWZpbml0aW9uLgotCShkd2FyZjJfZ2V0X3N1YnByb2dyYW1f cGNfYm91bmRzLCBnZXRfc2NvcGVfcGNfYm91bmRzKTogQWRqdXN0IGNhbGxlcnMuCi0tLS0KLSBn ZGIvQ2hhbmdlTG9nICAgIHwgMTIgKysrKysrKysrKwotIGdkYi9kd2FyZjJyZWFkLmMgfCA3MSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQot IDIgZmlsZXMgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCi0KLSMj IyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBiL2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsMTUgQEAK LSsyMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+ Ci0rCi0rCUNvZGUgY2xlYW51cDogZHdhcmYyX2dldF9wY19ib3VuZHM6IC0xLzAvKzEgLT4gZW51 bQotKwkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3VuZHNfa2luZCkgTmV3LgotKwkoZHdhcmYy X2dldF9wY19ib3VuZHMpOiBVc2UgaXQgaW4gdGhlIGRlY2xhcmF0aW9uLgotKwkocHJvY2Vzc19w c3ltdGFiX2NvbXBfdW5pdF9yZWFkZXIpOiBBZGp1c3QgY2FsbGVyLiAgUmVuYW1lIGhhc19wY19p bmZvCi0rCXRvIGN1X2JvdW5kc19raW5kLgotKwkocmVhZF9mdW5jX3Njb3BlLCByZWFkX2xleGlj YWxfYmxvY2tfc2NvcGUsIHJlYWRfY2FsbF9zaXRlX3Njb3BlKToKLSsJQWRqdXN0IGNhbGxlcnMu Ci0rCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6IFVzZSBlbnVtIHBjX2JvdW5kc19raW5kIGluIHRo ZSBkZWZpbml0aW9uLgotKwkoZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcywgZ2V0X3Nj b3BlX3BjX2JvdW5kcyk6IEFkanVzdCBjYWxsZXJzLgotKwotIDIwMTYtMDUtMjkgIEphbiBLcmF0 b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAKLSAJKiBORVdTIChRQ2F0Y2hT eXNjYWxscyk6IFJlbW92ZSB0aGUgcGFyYW1ldGVyLiAgSW5jbHVkZSAuLi4KLS0tLSBhL2dkYi9k d2FyZjJyZWFkLmMKLSsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0xNjA2LDkgKzE2MDYsMjUg QEAgc3RhdGljIHZvaWQgcmVhZF9jYWxsX3NpdGVfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7Ci0gc3RhdGljIGludCBkd2FyZjJfcmFuZ2VzX3JlYWQg KHVuc2lnbmVkLCBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCi0gCQkJICAgICAgIHN0cnVjdCBk d2FyZjJfY3UgKiwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwotIAotLXN0YXRpYyBpbnQgZHdh cmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAotLQkJCQkgQ09SRV9BRERSICos IENPUkVfQUREUiAqLCBzdHJ1Y3QgZHdhcmYyX2N1ICosCi0tCQkJCSBzdHJ1Y3QgcGFydGlhbF9z eW10YWIgKik7Ci0rLyogSG93IGR3YXJmMl9nZXRfcGNfYm91bmRzIGNvbnN0cnVjdGVkIGl0cyAq TE9XUEMgYW5kICpISUdIUEMgcmV0dXJuCi0rICAgdmFsdWVzLiAgKi8KLStlbnVtIHBjX2JvdW5k c19raW5kCi0rewotKyAgLyogTm8gdmFsaWQgY29tYmluYXRpb24gb2YgRFdfQVRfbG93X3BjLCBE V19BVF9oaWdoX3BjIG9yIERXX0FUX3JhbmdlcwotKyAgICAgd2FzIGZvdW5kLiAgKi8KLSsgIFBD X0JPVU5EU19OT1RfUFJFU0VOVCwKLSsKLSsgIC8qIERpc2NvbnRpZ3VvdXMgcmFuZ2Ugd2FzIGZv dW5kIC0gdGhhdCBpcyBEV19BVF9yYW5nZXMgd2FzIGZvdW5kLiAgKi8KLSsgIFBDX0JPVU5EU19S QU5HRVMsCi0rCi0rICAvKiBDb250aWd1b3VzIHJhbmdlIHdhcyBmb3VuZCAtIERXX0FUX2xvd19w YyBhbmQgRFdfQVRfaGlnaF9wYyB3ZXJlIGZvdW5kLiAgKi8KLSsgIFBDX0JPVU5EU19ISUdIX0xP VywKLSt9OwotKwotK3N0YXRpYyBlbnVtIHBjX2JvdW5kc19raW5kIGR3YXJmMl9nZXRfcGNfYm91 bmRzIChzdHJ1Y3QgZGllX2luZm8gKiwKLSsJCQkJCQkgQ09SRV9BRERSICosIENPUkVfQUREUiAq LAotKwkJCQkJCSBzdHJ1Y3QgZHdhcmYyX2N1ICosCi0rCQkJCQkJIHN0cnVjdCBwYXJ0aWFsX3N5 bXRhYiAqKTsKLSAKLSBzdGF0aWMgdm9pZCBnZXRfc2NvcGVfcGNfYm91bmRzIChzdHJ1Y3QgZGll X2luZm8gKiwKLSAJCQkJIENPUkVfQUREUiAqLCBDT1JFX0FERFIgKiwKLUBAIC01OTQ3LDcgKzU5 NjMsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29uc3Qgc3RydWN0IGRp ZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAgIENPUkVfQUREUiBiYXNlYWRkcjsKLSAgIENPUkVf QUREUiBiZXN0X2xvd3BjID0gMCwgYmVzdF9oaWdocGMgPSAwOwotICAgc3RydWN0IHBhcnRpYWxf c3ltdGFiICpwc3Q7Ci0tICBpbnQgaGFzX3BjX2luZm87Ci0rICBlbnVtIHBjX2JvdW5kc19raW5k IGN1X2JvdW5kc19raW5kOwotICAgY29uc3QgY2hhciAqZmlsZW5hbWU7Ci0gICBzdHJ1Y3QgcHJv Y2Vzc19wc3ltdGFiX2NvbXBfdW5pdF9kYXRhICppbmZvCi0gICAgID0gKHN0cnVjdCBwcm9jZXNz X3BzeW10YWJfY29tcF91bml0X2RhdGEgKikgZGF0YTsKLUBAIC01OTc3LDkgKzU5OTMsOSBAQCBw cm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJf c3BlY3MgKnJlYWRlciwKLSAKLSAgIC8qIFBvc3NpYmx5IHNldCB0aGUgZGVmYXVsdCB2YWx1ZXMg b2YgTE9XUEMgYW5kIEhJR0hQQyBmcm9tCi0gICAgICBgRFdfQVRfcmFuZ2VzJy4gICovCi0tICBo YXNfcGNfaW5mbyA9IGR3YXJmMl9nZXRfcGNfYm91bmRzIChjb21wX3VuaXRfZGllLCAmYmVzdF9s b3dwYywKLS0JCQkJICAgICAgJmJlc3RfaGlnaHBjLCBjdSwgcHN0KTsKLS0gIGlmIChoYXNfcGNf aW5mbyA9PSAxICYmIGJlc3RfbG93cGMgPCBiZXN0X2hpZ2hwYykKLSsgIGN1X2JvdW5kc19raW5k ID0gZHdhcmYyX2dldF9wY19ib3VuZHMgKGNvbXBfdW5pdF9kaWUsICZiZXN0X2xvd3BjLAotKwkJ CQkJICZiZXN0X2hpZ2hwYywgY3UsIHBzdCk7Ci0rICBpZiAoY3VfYm91bmRzX2tpbmQgPT0gUENf Qk9VTkRTX0hJR0hfTE9XICYmIGJlc3RfbG93cGMgPCBiZXN0X2hpZ2hwYykKLSAgICAgLyogU3Rv cmUgdGhlIGNvbnRpZ3VvdXMgcmFuZ2UgaWYgaXQgaXMgbm90IGVtcHR5OyBpdCBjYW4gYmUgZW1w dHkgZm9yCi0gICAgICAgIENVcyB3aXRoIG5vIGNvZGUuICAqLwotICAgICBhZGRybWFwX3NldF9l bXB0eSAob2JqZmlsZS0+cHN5bXRhYnNfYWRkcm1hcCwKLUBAIC02MDAzLDcgKzYwMTksNyBAQCBw cm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJf c3BlY3MgKnJlYWRlciwKLSAgICAgICBmaXJzdF9kaWUgPSBsb2FkX3BhcnRpYWxfZGllcyAocmVh ZGVyLCBpbmZvX3B0ciwgMSk7Ci0gCi0gICAgICAgc2Nhbl9wYXJ0aWFsX3N5bWJvbHMgKGZpcnN0 X2RpZSwgJmxvd3BjLCAmaGlnaHBjLAotLQkJCSAgICAhIGhhc19wY19pbmZvLCBjdSk7Ci0rCQkJ ICAgIGN1X2JvdW5kc19raW5kID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCwgY3UpOwotIAotICAg ICAgIC8qIElmIHdlIGRpZG4ndCBmaW5kIGEgbG93cGMsIHNldCBpdCB0byBoaWdocGMgdG8gYXZv aWQKLSAJIGNvbXBsYWludHMgZnJvbSBgbWFpbnQgY2hlY2snLgkgKi8KLUBAIC02MDEyLDcgKzYw MjgsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29uc3Qgc3RydWN0IGRp ZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAKLSAgICAgICAvKiBJZiB0aGUgY29tcGlsYXRpb24g dW5pdCBkaWRuJ3QgaGF2ZSBhbiBleHBsaWNpdCBhZGRyZXNzIHJhbmdlLAotIAkgdGhlbiB1c2Ug dGhlIGluZm9ybWF0aW9uIGV4dHJhY3RlZCBmcm9tIGl0cyBjaGlsZCBkaWVzLiAgKi8KLS0gICAg ICBpZiAoISBoYXNfcGNfaW5mbykKLSsgICAgICBpZiAoY3VfYm91bmRzX2tpbmQgPT0gUENfQk9V TkRTX05PVF9QUkVTRU5UKQotIAl7Ci0gCSAgYmVzdF9sb3dwYyA9IGxvd3BjOwotIAkgIGJlc3Rf aGlnaHBjID0gaGlnaHBjOwotQEAgLTExMzczLDcgKzExMzg5LDggQEAgcmVhZF9mdW5jX3Njb3Bl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0gICAgIH0KLSAK LSAgIC8qIElnbm9yZSBmdW5jdGlvbnMgd2l0aCBtaXNzaW5nIG9yIGludmFsaWQgbG93IGFuZCBo aWdoIHBjIGF0dHJpYnV0ZXMuICAqLwotLSAgaWYgKCFkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGll LCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKSkKLSsgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5k cyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKQotKyAgICAgID09IFBDX0JPVU5EU19O T1RfUFJFU0VOVCkKLSAgICAgewotICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19B VF9leHRlcm5hbCwgY3UpOwotICAgICAgIGlmICghYXR0ciB8fCAhRFdfVU5TTkQgKGF0dHIpKQot QEAgLTExNTM1LDcgKzExNTUyLDggQEAgcmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0gICAgICBhcyBtdWx0aXBsZSBs ZXhpY2FsIGJsb2Nrcz8gIEhhbmRsaW5nIGNoaWxkcmVuIGluIGEgc2FuZSB3YXkgd291bGQKLSAg ICAgIGJlIG5hc3R5LiAgTWlnaHQgYmUgZWFzaWVyIHRvIHByb3Blcmx5IGV4dGVuZCBnZW5lcmlj IGJsb2NrcyB0bwotICAgICAgZGVzY3JpYmUgcmFuZ2VzLiAgKi8KLS0gIGlmICghZHdhcmYyX2dl dF9wY19ib3VuZHMgKGRpZSwgJmxvd3BjLCAmaGlnaHBjLCBjdSwgTlVMTCkpCi0rICBpZiAoZHdh cmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvd3BjLCAmaGlnaHBjLCBjdSwgTlVMTCkKLSsgICAg ICA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0gICAgIHJldHVybjsKLSAgIGxvd3BjID0gZ2Ri YXJjaF9hZGp1c3RfZHdhcmYyX2FkZHIgKGdkYmFyY2gsIGxvd3BjICsgYmFzZWFkZHIpOwotICAg aGlnaHBjID0gZ2RiYXJjaF9hZGp1c3RfZHdhcmYyX2FkZHIgKGdkYmFyY2gsIGhpZ2hwYyArIGJh c2VhZGRyKTsKLUBAIC0xMTc0NSw3ICsxMTc2Myw4IEBAIHJlYWRfY2FsbF9zaXRlX3Njb3BlIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCi0gCSAgQ09SRV9BRERS IGxvd3BjOwotIAotIAkgIC8qIERXX0FUX2VudHJ5X3BjIHNob3VsZCBiZSBwcmVmZXJyZWQuICAq LwotLQkgIGlmICghZHdhcmYyX2dldF9wY19ib3VuZHMgKHRhcmdldF9kaWUsICZsb3dwYywgTlVM TCwgdGFyZ2V0X2N1LCBOVUxMKSkKLSsJICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKHRhcmdl dF9kaWUsICZsb3dwYywgTlVMTCwgdGFyZ2V0X2N1LCBOVUxMKQotKwkgICAgICA9PSBQQ19CT1VO RFNfTk9UX1BSRVNFTlQpCi0gCSAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCi0g CQkgICAgICAgXygiRFdfQVRfR05VX2NhbGxfc2l0ZV90YXJnZXQgdGFyZ2V0IERJRSBoYXMgaW52 YWxpZCAiCi0gCQkgICAgICAgICAibG93IHBjLCBmb3IgcmVmZXJlbmNpbmcgRElFIDB4JXggW2lu IG1vZHVsZSAlc10iKSwKLUBAIC0xMjAyMCwxMSArMTIwMzksMTEgQEAgZHdhcmYyX3Jhbmdlc19y ZWFkICh1bnNpZ25lZCBvZmZzZXQsIENPUkVfQUREUiAqbG93X3JldHVybiwKLSAgIHJldHVybiAx OwotIH0KLSAKLS0vKiBHZXQgbG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMgZnJvbSBhIGRpZS4g IFJldHVybiAxIGlmIHRoZSBhdHRyaWJ1dGVzCi0tICAgYXJlIHByZXNlbnQgYW5kIHZhbGlkLCBv dGhlcndpc2UsIHJldHVybiAwLiAgUmV0dXJuIC0xIGlmIHRoZSByYW5nZSBpcwotLSAgIGRpc2Nv bnRpbnVvdXMsIGkuZS4gZGVyaXZlZCBmcm9tIERXX0FUX3JhbmdlcyBpbmZvcm1hdGlvbi4gICov Ci0rLyogR2V0IGxvdyBhbmQgaGlnaCBwYyBhdHRyaWJ1dGVzIGZyb20gYSBkaWUuICBTZWUgZW51 bSBwY19ib3VuZHNfa2luZAotKyAgIGRlZmluaXRpb24gZm9yIHRoZSByZXR1cm4gdmFsdWUuICAq TE9XUEMgYW5kICpISUdIUEMgYXJlIHNldCBpZmYKLSsgICBQQ19CT1VORFNfTk9UX1BSRVNFTlQg aXMgbm90IHJldHVybmVkLiAgKi8KLSAKLS1zdGF0aWMgaW50Ci0rc3RhdGljIGVudW0gcGNfYm91 bmRzX2tpbmQKLSBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENP UkVfQUREUiAqbG93cGMsCi0gCQkgICAgICBDT1JFX0FERFIgKmhpZ2hwYywgc3RydWN0IGR3YXJm Ml9jdSAqY3UsCi0gCQkgICAgICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBzdCkKLUBAIC0xMjAz Myw3ICsxMjA1Miw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRp ZSwgQ09SRV9BRERSICpsb3dwYywKLSAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJfaGlnaDsKLSAg IENPUkVfQUREUiBsb3cgPSAwOwotICAgQ09SRV9BRERSIGhpZ2ggPSAwOwotLSAgaW50IHJldCA9 IDA7Ci0rICBlbnVtIHBjX2JvdW5kc19raW5kIHJldCA9IFBDX0JPVU5EU19OT1RfUFJFU0VOVDsK LSAKLSAgIGF0dHJfaGlnaCA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2hpZ2hfcGMsIGN1KTsK LSAgIGlmIChhdHRyX2hpZ2gpCi1AQCAtMTIwNDgsMTAgKzEyMDY3LDEwIEBAIGR3YXJmMl9nZXRf cGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAJfQot ICAgICAgIGVsc2UKLSAJLyogRm91bmQgaGlnaCB3L28gbG93IGF0dHJpYnV0ZS4gICovCi0tCXJl dHVybiAwOwotKwlyZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotIAotICAgICAgIC8qIEZv dW5kIGNvbnNlY3V0aXZlIHJhbmdlIG9mIGFkZHJlc3Nlcy4gICovCi0tICAgICAgcmV0ID0gMTsK LSsgICAgICByZXQgPSBQQ19CT1VORFNfSElHSF9MT1c7Ci0gICAgIH0KLSAgIGVsc2UKLSAgICAg ewotQEAgLTEyMDcwLDE1ICsxMjA4OSwxNSBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi0gCSAgLyogVmFsdWUgb2YgdGhlIERX X0FUX3JhbmdlcyBhdHRyaWJ1dGUgaXMgdGhlIG9mZnNldCBpbiB0aGUKLSAJICAgICAuZGVidWdf cmFuZ2VzIHNlY3Rpb24uICAqLwotIAkgIGlmICghZHdhcmYyX3Jhbmdlc19yZWFkIChyYW5nZXNf b2Zmc2V0LCAmbG93LCAmaGlnaCwgY3UsIHBzdCkpCi0tCSAgICByZXR1cm4gMDsKLSsJICAgIHJl dHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0gCSAgLyogRm91bmQgZGlzY29udGludW91cyBy YW5nZSBvZiBhZGRyZXNzZXMuICAqLwotLQkgIHJldCA9IC0xOwotKwkgIHJldCA9IFBDX0JPVU5E U19SQU5HRVM7Ci0gCX0KLSAgICAgfQotIAotICAgLyogcmVhZF9wYXJ0aWFsX2RpZSBoYXMgYWxz byB0aGUgc3RyaWN0IExPVyA8IEhJR0ggcmVxdWlyZW1lbnQuICAqLwotICAgaWYgKGhpZ2ggPD0g bG93KQotLSAgICByZXR1cm4gMDsKLSsgICAgcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VOVDsK LSAKLSAgIC8qIFdoZW4gdXNpbmcgdGhlIEdOVSBsaW5rZXIsIC5nbnUubGlua29uY2UuIHNlY3Rp b25zIGFyZSB1c2VkIHRvCi0gICAgICBlbGltaW5hdGUgZHVwbGljYXRlIGNvcGllcyBvZiBmdW5j dGlvbnMgYW5kIHZ0YWJsZXMgYW5kIHN1Y2guCi1AQCAtMTIwODksNyArMTIxMDgsNyBAQCBkd2Fy ZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMs Ci0gICAgICBJZiB0aGlzIGlzIGEgZGlzY2FyZGVkIGZ1bmN0aW9uLCBtYXJrIHRoZSBwYyBib3Vu ZHMgYXMgaW52YWxpZCwKLSAgICAgIHNvIHRoYXQgR0RCIHdpbGwgaWdub3JlIGl0LiAgKi8KLSAg IGlmIChsb3cgPT0gMCAmJiAhZHdhcmYyX3Blcl9vYmpmaWxlLT5oYXNfc2VjdGlvbl9hdF96ZXJv KQotLSAgICByZXR1cm4gMDsKLSsgICAgcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VOVDsKLSAK LSAgICpsb3dwYyA9IGxvdzsKLSAgIGlmIChoaWdocGMpCi1AQCAtMTIxMTAsNyArMTIxMjksOCBA QCBkd2FyZjJfZ2V0X3N1YnByb2dyYW1fcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwK LSAgIENPUkVfQUREUiBsb3csIGhpZ2g7Ci0gICBzdHJ1Y3QgZGllX2luZm8gKmNoaWxkID0gZGll LT5jaGlsZDsKLSAKLS0gIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93LCAmaGln aCwgY3UsIE5VTEwpKQotKyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3csICZo aWdoLCBjdSwgTlVMTCkKLSsgICAgICAhPSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0gICAgIHsK LSAgICAgICAqbG93cGMgPSBtaW4gKCpsb3dwYywgbG93KTsKLSAgICAgICAqaGlnaHBjID0gbWF4 ICgqaGlnaHBjLCBoaWdoKTsKLUBAIC0xMjE0Nyw3ICsxMjE2Nyw4IEBAIGdldF9zY29wZV9wY19i b3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAotICAgQ09SRV9BRERSIGJlc3RfaGlnaCA9IChD T1JFX0FERFIpIDA7Ci0gICBDT1JFX0FERFIgY3VycmVudF9sb3csIGN1cnJlbnRfaGlnaDsKLSAK LS0gIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmY3VycmVudF9sb3csICZjdXJyZW50 X2hpZ2gsIGN1LCBOVUxMKSkKLSsgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmY3Vy cmVudF9sb3csICZjdXJyZW50X2hpZ2gsIGN1LCBOVUxMKQotKyAgICAgICE9IFBDX0JPVU5EU19O T1RfUFJFU0VOVCkKLSAgICAgewotICAgICAgIGJlc3RfbG93ID0gY3VycmVudF9sb3c7Ci0gICAg ICAgYmVzdF9oaWdoID0gY3VycmVudF9oaWdoOwotLS0gCi0yLjUuNQotCgpkaWZmIC0tZ2l0IGEv Z2RiLWJhcmUtRFdfVEFHX2xleGljYWxfYmxvY2stMm9mMi5wYXRjaCBiL2dkYi1iYXJlLURXX1RB R19sZXhpY2FsX2Jsb2NrLTJvZjIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IGM4OGZkZjMuLjAwMDAwMDAKLS0tIGEvZ2RiLWJhcmUtRFdfVEFHX2xleGljYWxfYmxvY2stMm9m Mi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0MyArMCwwIEBACi1Gcm9tIGUzODU1OTNlZWY5 OGFjOTJiZTU3MTU5ZTE0MWY0YjgwNWRhZGJiYjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLURhdGU6IE1v biwgMzAgTWF5IDIwMTYgMTQ6MTQ6NDMgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSCAyLzJdIFBSIDE1 MjMxOiBpbXBvcnQgYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jawotCi1Mb2NhbCB2YXJpYWJsZXMg aW4gbGFtYmRhcyBhcmUgbm90IGFjY2Vzc2libGUKLWh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVn emlsbGEvc2hvd19idWcuY2dpP2lkPTE1MjMxCi0KLUdEQjogcmVhZF9sZXhpY2FsX2Jsb2NrX3Nj b3BlCi0gIC8qIElnbm9yZSBibG9ja3Mgd2l0aCBtaXNzaW5nIG9yIGludmFsaWQgbG93IGFuZCBo aWdoIHBjIGF0dHJpYnV0ZXMuICAqLwotWy4uLl0KLSAgaWYgKCFkd2FyZjJfZ2V0X3BjX2JvdW5k cyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKSkKLSAgICByZXR1cm47Ci0KLUJ1dCBz b21ldGltZXMgdGhlcmUgaXM6Ci0KLUZBSUw6IGdjYy01LjMuMS02LmZjMjMueDg2XzY0Ci0gPDI+ PDkyPjogQWJicmV2IE51bWJlcjogMTEgKERXX1RBR19sZXhpY2FsX2Jsb2NrKQotIDwzPjw5Yz46 IEFiYnJldiBOdW1iZXI6IDEzIChEV19UQUdfc3RydWN0dXJlX3R5cGUpCi0gICAgPDlkPiAgIERX X0FUX25hbWUgICAgICAgIDogKGluZGlyZWN0IHN0cmluZywgb2Zmc2V0OiAweDNjKTogPGxhbWJk YSgpPgotICAgIFsuLi5dCi0KLVdoZXJlIERXX1RBR19sZXhpY2FsX2Jsb2NrIGhhcyBubyBhdHRy aWJ1dGVzLiAgU3VjaCB3aG9sZSBzdWJ0cmVlIGlzIGN1cnJlbnRseQotZHJvcHBlZCBieSBHREIg d2hpbGUgSSB0aGluayBpdCBzaG91bGQganVzdCBpbXBvcnQgYWxsIGl0cyBjaGlsZHJlbiBESUVz LgotCi1JdCBldmVuIFhGQUlMLT5YUEFTU2VzIGdkYi5hZGEvb3V0X29mX2xpbmVfaW5faW5saW5l ZC5leHA6Ci0JY29tbWl0IDBmYTdmZTUwNmMyNDJiNDU5YzRjMDVkMzMxZTdjN2Q2NmZiNTIzOTAK LQlBdXRob3I6IEpvZWwgQnJvYmVja2VyIDxicm9iZWNrZXJAYWRhY29yZS5jb20+Ci0JICAgIG91 dCBvZiBsaW5lIGZ1bmN0aW9ucyBuZXN0ZWQgaW5zaWRlIGlubGluZSBmdW5jdGlvbnMuCi1TbyBJ IGhhdmUgcmVtb3ZlZCB0aGF0IHhmYWlsLgotCi1nZGIvQ2hhbmdlTG9nCi0yMDE2LTA1LTMwICBK YW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlQUiBjKysvMTUy MzEKLQkqIGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3VuZHNfa2luZCk6IEFkZCBQQ19CT1VORFNf SU5WQUxJRC4KLQkocHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5pdF9yZWFkZXIsIHJlYWRfZnVuY19z Y29wZSk6IEFkanVzdCBjYWxsZXJzLgotCShyZWFkX2xleGljYWxfYmxvY2tfc2NvcGUpOiBJbXBv cnQgRElFcyBmcm9tIGJhcmUgRFdfVEFHX2xleGljYWxfYmxvY2suCi0JKHJlYWRfY2FsbF9zaXRl X3Njb3BlKTogQWRqdXN0IGNhbGxlcnMuCi0JKGR3YXJmMl9nZXRfcGNfYm91bmRzKTogSW1wbGVt ZW50IHBjX2JvdW5kc19pbnZhbGlkLgotCShkd2FyZjJfZ2V0X3N1YnByb2dyYW1fcGNfYm91bmRz LCBnZXRfc2NvcGVfcGNfYm91bmRzKTogQWRqdXN0IGNhbGxlcnMuCi0KLWdkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nCi0yMDE2LTA1LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+Ci0KLQlQUiBjKysvMTUyMzEKLQkqIGdkYi5hZGEvb3V0X29mX2xpbmVfaW5faW5s aW5lZC5leHA6IFJlbW92ZSB4ZmFpbHMuCi0JKiBnZGIuZHdhcmYyL2R3Mi1sZXhpY2FsLWJsb2Nr LWJhcmUuZXhwOiBOZXcgZmlsZS4KLS0tLQotIGdkYi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKwotIGdkYi9kd2FyZjJyZWFkLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTMgKysrKysrKysrKy0tLS0tLQotIGdkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysKLSBn ZGIvdGVzdHN1aXRlL2dkYi5hZGEvb3V0X29mX2xpbmVfaW5faW5saW5lZC5leHAgICB8ICA2IC0t Ci0gLi4uL2dkYi5kd2FyZjIvZHcyLWxleGljYWwtYmxvY2stYmFyZS5leHAgICAgICAgICAgfCA3 MCArKysrKysrKysrKysrKysrKysrKysrCi0gNSBmaWxlcyBjaGFuZ2VkLCAxMjAgaW5zZXJ0aW9u cygrKSwgMjUgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItbGV4aWNhbC1ibG9jay1iYXJlLmV4cAotCi0jIyMgYS9nZGIvQ2hhbmdl TG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSw1ICsxLDE1IEBACi0gMjAxNi0wNS0zMCAg SmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotIAotKwlQUiBjKysv MTUyMzEKLSsJKiBkd2FyZjJyZWFkLmMgKGVudW0gcGNfYm91bmRzX2tpbmQpOiBBZGQgUENfQk9V TkRTX0lOVkFMSUQuCi0rCShwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciwgcmVhZF9m dW5jX3Njb3BlKTogQWRqdXN0IGNhbGxlcnMuCi0rCShyZWFkX2xleGljYWxfYmxvY2tfc2NvcGUp OiBJbXBvcnQgRElFcyBmcm9tIGJhcmUgRFdfVEFHX2xleGljYWxfYmxvY2suCi0rCShyZWFkX2Nh bGxfc2l0ZV9zY29wZSk6IEFkanVzdCBjYWxsZXJzLgotKwkoZHdhcmYyX2dldF9wY19ib3VuZHMp OiBJbXBsZW1lbnQgcGNfYm91bmRzX2ludmFsaWQuCi0rCShkd2FyZjJfZ2V0X3N1YnByb2dyYW1f cGNfYm91bmRzLCBnZXRfc2NvcGVfcGNfYm91bmRzKTogQWRqdXN0IGNhbGxlcnMuCi0rCi0rMjAx Ni0wNS0zMCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotKwot IAlDb2RlIGNsZWFudXA6IGR3YXJmMl9nZXRfcGNfYm91bmRzOiAtMS8wLysxIC0+IGVudW0KLSAJ KiBkd2FyZjJyZWFkLmMgKGVudW0gcGNfYm91bmRzX2tpbmQpIE5ldy4KLSAJKGR3YXJmMl9nZXRf cGNfYm91bmRzKTogVXNlIGl0IGluIHRoZSBkZWNsYXJhdGlvbi4KLS0tLSBhL2dkYi9kd2FyZjJy ZWFkLmMKLSsrKyBiL2dkYi9kd2FyZjJyZWFkLmMKLUBAIC0xNjA3LDEzICsxNjA3LDE2IEBAIHN0 YXRpYyBpbnQgZHdhcmYyX3Jhbmdlc19yZWFkICh1bnNpZ25lZCwgQ09SRV9BRERSICosIENPUkVf QUREUiAqLAotIAkJCSAgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICosIHN0cnVjdCBwYXJ0aWFsX3N5 bXRhYiAqKTsKLSAKLSAvKiBIb3cgZHdhcmYyX2dldF9wY19ib3VuZHMgY29uc3RydWN0ZWQgaXRz ICpMT1dQQyBhbmQgKkhJR0hQQyByZXR1cm4KLS0gICB2YWx1ZXMuICAqLwotKyAgIHZhbHVlcy4g IEtlZXAgdGhlIGl0ZW1zIG9yZGVyZWQgd2l0aCBpbmNyZWFzaW5nIGNvbnN0cmFpbnRzIGNvbXBs aWFuY2UuICAqLwotIGVudW0gcGNfYm91bmRzX2tpbmQKLSB7Ci0tICAvKiBObyB2YWxpZCBjb21i aW5hdGlvbiBvZiBEV19BVF9sb3dfcGMsIERXX0FUX2hpZ2hfcGMgb3IgRFdfQVRfcmFuZ2VzCi0t ICAgICB3YXMgZm91bmQuICAqLwotKyAgLyogTm8gYXR0cmlidXRlIERXX0FUX2xvd19wYywgRFdf QVRfaGlnaF9wYyBvciBEV19BVF9yYW5nZXMgd2FzIGZvdW5kLiAgKi8KLSAgIFBDX0JPVU5EU19O T1RfUFJFU0VOVCwKLSAKLSsgIC8qIFNvbWUgb2YgdGhlIGF0dHJpYnV0ZXMgRFdfQVRfbG93X3Bj LCBEV19BVF9oaWdoX3BjIG9yIERXX0FUX3JhbmdlcwotKyAgICAgd2VyZSBwcmVzZW50IGJ1dCB0 aGV5IGRvIG5vdCBmb3JtIGEgdmFsaWQgcmFuZ2Ugb2YgUEMgYWRkcmVzc2VzLiAgKi8KLSsgIFBD X0JPVU5EU19JTlZBTElELAotKwotICAgLyogRGlzY29udGlndW91cyByYW5nZSB3YXMgZm91bmQg LSB0aGF0IGlzIERXX0FUX3JhbmdlcyB3YXMgZm91bmQuICAqLwotICAgUENfQk9VTkRTX1JBTkdF UywKLSAKLUBAIC02MDE5LDcgKzYwMjIsNyBAQCBwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3Jl YWRlciAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3MgKnJlYWRlciwKLSAgICAgICBmaXJz dF9kaWUgPSBsb2FkX3BhcnRpYWxfZGllcyAocmVhZGVyLCBpbmZvX3B0ciwgMSk7Ci0gCi0gICAg ICAgc2Nhbl9wYXJ0aWFsX3N5bWJvbHMgKGZpcnN0X2RpZSwgJmxvd3BjLCAmaGlnaHBjLAotLQkJ CSAgICBjdV9ib3VuZHNfa2luZCA9PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQsIGN1KTsKLSsJCQkg ICAgY3VfYm91bmRzX2tpbmQgPD0gUENfQk9VTkRTX0lOVkFMSUQsIGN1KTsKLSAKLSAgICAgICAv KiBJZiB3ZSBkaWRuJ3QgZmluZCBhIGxvd3BjLCBzZXQgaXQgdG8gaGlnaHBjIHRvIGF2b2lkCi0g CSBjb21wbGFpbnRzIGZyb20gYG1haW50IGNoZWNrJy4JICovCi1AQCAtNjAyOCw3ICs2MDMxLDcg QEAgcHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5pdF9yZWFkZXIgKGNvbnN0IHN0cnVjdCBkaWVfcmVh ZGVyX3NwZWNzICpyZWFkZXIsCi0gCi0gICAgICAgLyogSWYgdGhlIGNvbXBpbGF0aW9uIHVuaXQg ZGlkbid0IGhhdmUgYW4gZXhwbGljaXQgYWRkcmVzcyByYW5nZSwKLSAJIHRoZW4gdXNlIHRoZSBp bmZvcm1hdGlvbiBleHRyYWN0ZWQgZnJvbSBpdHMgY2hpbGQgZGllcy4gICovCi0tICAgICAgaWYg KGN1X2JvdW5kc19raW5kID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSsgICAgICBpZiAoY3Vf Ym91bmRzX2tpbmQgPD0gUENfQk9VTkRTX0lOVkFMSUQpCi0gCXsKLSAJICBiZXN0X2xvd3BjID0g bG93cGM7Ci0gCSAgYmVzdF9oaWdocGMgPSBoaWdocGM7Ci1AQCAtMTEzOTAsNyArMTEzOTMsNyBA QCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKLSAKLSAgIC8qIElnbm9yZSBmdW5jdGlvbnMgd2l0aCBtaXNzaW5nIG9yIGludmFsaWQg bG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMuICAqLwotICAgaWYgKGR3YXJmMl9nZXRfcGNfYm91 bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpCi0tICAgICAgPT0gUENfQk9VTkRT X05PVF9QUkVTRU5UKQotKyAgICAgIDw9IFBDX0JPVU5EU19JTlZBTElEKQotICAgICB7Ci0gICAg ICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2V4dGVybmFsLCBjdSk7Ci0gICAgICAg aWYgKCFhdHRyIHx8ICFEV19VTlNORCAoYXR0cikpCi1AQCAtMTE1NTIsOSArMTE1NTUsMjAgQEAg cmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpCi0gICAgICBhcyBtdWx0aXBsZSBsZXhpY2FsIGJsb2Nrcz8gIEhhbmRsaW5n IGNoaWxkcmVuIGluIGEgc2FuZSB3YXkgd291bGQKLSAgICAgIGJlIG5hc3R5LiAgTWlnaHQgYmUg ZWFzaWVyIHRvIHByb3Blcmx5IGV4dGVuZCBnZW5lcmljIGJsb2NrcyB0bwotICAgICAgZGVzY3Jp YmUgcmFuZ2VzLiAgKi8KLS0gIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMs ICZoaWdocGMsIGN1LCBOVUxMKQotLSAgICAgID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLS0g ICAgcmV0dXJuOwotKyAgc3dpdGNoIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93cGMs ICZoaWdocGMsIGN1LCBOVUxMKSkKLSsgICAgewotKyAgICBjYXNlIFBDX0JPVU5EU19OT1RfUFJF U0VOVDoKLSsgICAgICAvKiBEV19UQUdfbGV4aWNhbF9ibG9jayBoYXMgbm8gYXR0cmlidXRlcywg cHJvY2VzcyBpdHMgY2hpbGRyZW4gYXMgaWYKLSsJIHRoZXJlIHdhcyBubyB3cmFwcGluZyBieSB0 aGF0IERXX1RBR19sZXhpY2FsX2Jsb2NrLgotKwkgR0NDIGRvZXMgbm8gbG9uZ2VyIHByb2R1Y2Vz IHN1Y2ggRFdBUkYgc2luY2UgR0NDIHIyMjQxNjEuICAqLwotKyAgICAgIGZvciAoY2hpbGRfZGll ID0gZGllLT5jaGlsZDsKLSsJICAgY2hpbGRfZGllICE9IE5VTEwgJiYgY2hpbGRfZGllLT50YWc7 Ci0rCSAgIGNoaWxkX2RpZSA9IHNpYmxpbmdfZGllIChjaGlsZF9kaWUpKQotKwlwcm9jZXNzX2Rp ZSAoY2hpbGRfZGllLCBjdSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICBjYXNlIFBDX0JPVU5EU19J TlZBTElEOgotKyAgICAgIHJldHVybjsKLSsgICAgfQotICAgbG93cGMgPSBnZGJhcmNoX2FkanVz dF9kd2FyZjJfYWRkciAoZ2RiYXJjaCwgbG93cGMgKyBiYXNlYWRkcik7Ci0gICBoaWdocGMgPSBn ZGJhcmNoX2FkanVzdF9kd2FyZjJfYWRkciAoZ2RiYXJjaCwgaGlnaHBjICsgYmFzZWFkZHIpOwot IAotQEAgLTExNzY0LDcgKzExNzc4LDcgQEAgcmVhZF9jYWxsX3NpdGVfc2NvcGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAKLSAJICAvKiBEV19BVF9lbnRy eV9wYyBzaG91bGQgYmUgcHJlZmVycmVkLiAgKi8KLSAJICBpZiAoZHdhcmYyX2dldF9wY19ib3Vu ZHMgKHRhcmdldF9kaWUsICZsb3dwYywgTlVMTCwgdGFyZ2V0X2N1LCBOVUxMKQotLQkgICAgICA9 PSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0rCSAgICAgIDw9IFBDX0JPVU5EU19JTlZBTElEKQot IAkgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAotIAkJICAgICAgIF8oIkRXX0FU X0dOVV9jYWxsX3NpdGVfdGFyZ2V0IHRhcmdldCBESUUgaGFzIGludmFsaWQgIgotIAkJICAgICAg ICAgImxvdyBwYywgZm9yIHJlZmVyZW5jaW5nIERJRSAweCV4IFtpbiBtb2R1bGUgJXNdIiksCi1A QCAtMTIwNDEsNyArMTIwNTUsNyBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkIG9mZnNl dCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAotIAotIC8qIEdldCBsb3cgYW5kIGhpZ2ggcGMgYXR0 cmlidXRlcyBmcm9tIGEgZGllLiAgU2VlIGVudW0gcGNfYm91bmRzX2tpbmQKLSAgICBkZWZpbml0 aW9uIGZvciB0aGUgcmV0dXJuIHZhbHVlLiAgKkxPV1BDIGFuZCAqSElHSFBDIGFyZSBzZXQgaWZm Ci0tICAgUENfQk9VTkRTX05PVF9QUkVTRU5UIGlzIG5vdCByZXR1cm5lZC4gICovCi0rICAgbmVp dGhlciBQQ19CT1VORFNfTk9UX1BSRVNFTlQgbm9yIFBDX0JPVU5EU19JTlZBTElEIGFyZSByZXR1 cm5lZC4gICovCi0gCi0gc3RhdGljIGVudW0gcGNfYm91bmRzX2tpbmQKLSBkd2FyZjJfZ2V0X3Bj X2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi1AQCAtMTIw NTIsNyArMTIwNjYsNyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpk aWUsIENPUkVfQUREUiAqbG93cGMsCi0gICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyX2hpZ2g7Ci0g ICBDT1JFX0FERFIgbG93ID0gMDsKLSAgIENPUkVfQUREUiBoaWdoID0gMDsKLS0gIGVudW0gcGNf Ym91bmRzX2tpbmQgcmV0ID0gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotKyAgZW51bSBwY19ib3Vu ZHNfa2luZCByZXQ7Ci0gCi0gICBhdHRyX2hpZ2ggPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9o aWdoX3BjLCBjdSk7Ci0gICBpZiAoYXR0cl9oaWdoKQotQEAgLTEyMDY3LDcgKzEyMDgxLDcgQEAg ZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxv d3BjLAotIAl9Ci0gICAgICAgZWxzZQotIAkvKiBGb3VuZCBoaWdoIHcvbyBsb3cgYXR0cmlidXRl LiAgKi8KLS0JcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJFU0VOVDsKLSsJcmV0dXJuIFBDX0JPVU5E U19JTlZBTElEOwotIAotICAgICAgIC8qIEZvdW5kIGNvbnNlY3V0aXZlIHJhbmdlIG9mIGFkZHJl c3Nlcy4gICovCi0gICAgICAgcmV0ID0gUENfQk9VTkRTX0hJR0hfTE9XOwotQEAgLTEyMDg5LDE1 ICsxMjEwMywxNyBAQCBkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUs IENPUkVfQUREUiAqbG93cGMsCi0gCSAgLyogVmFsdWUgb2YgdGhlIERXX0FUX3JhbmdlcyBhdHRy aWJ1dGUgaXMgdGhlIG9mZnNldCBpbiB0aGUKLSAJICAgICAuZGVidWdfcmFuZ2VzIHNlY3Rpb24u ICAqLwotIAkgIGlmICghZHdhcmYyX3Jhbmdlc19yZWFkIChyYW5nZXNfb2Zmc2V0LCAmbG93LCAm aGlnaCwgY3UsIHBzdCkpCi0tCSAgICByZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotKwkg ICAgcmV0dXJuIFBDX0JPVU5EU19JTlZBTElEOwotIAkgIC8qIEZvdW5kIGRpc2NvbnRpbnVvdXMg cmFuZ2Ugb2YgYWRkcmVzc2VzLiAgKi8KLSAJICByZXQgPSBQQ19CT1VORFNfUkFOR0VTOwotIAl9 Ci0rICAgICAgZWxzZQotKwlyZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotICAgICB9Ci0g Ci0gICAvKiByZWFkX3BhcnRpYWxfZGllIGhhcyBhbHNvIHRoZSBzdHJpY3QgTE9XIDwgSElHSCBy ZXF1aXJlbWVudC4gICovCi0gICBpZiAoaGlnaCA8PSBsb3cpCi0tICAgIHJldHVybiBQQ19CT1VO RFNfTk9UX1BSRVNFTlQ7Ci0rICAgIHJldHVybiBQQ19CT1VORFNfSU5WQUxJRDsKLSAKLSAgIC8q IFdoZW4gdXNpbmcgdGhlIEdOVSBsaW5rZXIsIC5nbnUubGlua29uY2UuIHNlY3Rpb25zIGFyZSB1 c2VkIHRvCi0gICAgICBlbGltaW5hdGUgZHVwbGljYXRlIGNvcGllcyBvZiBmdW5jdGlvbnMgYW5k IHZ0YWJsZXMgYW5kIHN1Y2guCi1AQCAtMTIxMDgsNyArMTIxMjQsNyBAQCBkd2FyZjJfZ2V0X3Bj X2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi0gICAgICBJ ZiB0aGlzIGlzIGEgZGlzY2FyZGVkIGZ1bmN0aW9uLCBtYXJrIHRoZSBwYyBib3VuZHMgYXMgaW52 YWxpZCwKLSAgICAgIHNvIHRoYXQgR0RCIHdpbGwgaWdub3JlIGl0LiAgKi8KLSAgIGlmIChsb3cg PT0gMCAmJiAhZHdhcmYyX3Blcl9vYmpmaWxlLT5oYXNfc2VjdGlvbl9hdF96ZXJvKQotLSAgICBy ZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotKyAgICByZXR1cm4gUENfQk9VTkRTX0lOVkFM SUQ7Ci0gCi0gICAqbG93cGMgPSBsb3c7Ci0gICBpZiAoaGlnaHBjKQotQEAgLTEyMTI5LDggKzEy MTQ1LDcgQEAgZHdhcmYyX2dldF9zdWJwcm9ncmFtX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZv ICpkaWUsCi0gICBDT1JFX0FERFIgbG93LCBoaWdoOwotICAgc3RydWN0IGRpZV9pbmZvICpjaGls ZCA9IGRpZS0+Y2hpbGQ7Ci0gCi0tICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxv dywgJmhpZ2gsIGN1LCBOVUxMKQotLSAgICAgICE9IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSsg IGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93LCAmaGlnaCwgY3UsIE5VTEwpID49 IFBDX0JPVU5EU19SQU5HRVMpCi0gICAgIHsKLSAgICAgICAqbG93cGMgPSBtaW4gKCpsb3dwYywg bG93KTsKLSAgICAgICAqaGlnaHBjID0gbWF4ICgqaGlnaHBjLCBoaWdoKTsKLUBAIC0xMjE2OCw3 ICsxMjE4Myw3IEBAIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAot ICAgQ09SRV9BRERSIGN1cnJlbnRfbG93LCBjdXJyZW50X2hpZ2g7Ci0gCi0gICBpZiAoZHdhcmYy X2dldF9wY19ib3VuZHMgKGRpZSwgJmN1cnJlbnRfbG93LCAmY3VycmVudF9oaWdoLCBjdSwgTlVM TCkKLS0gICAgICAhPSBQQ19CT1VORFNfTk9UX1BSRVNFTlQpCi0rICAgICAgPj0gUENfQk9VTkRT X1JBTkdFUykKLSAgICAgewotICAgICAgIGJlc3RfbG93ID0gY3VycmVudF9sb3c7Ci0gICAgICAg YmVzdF9oaWdoID0gY3VycmVudF9oaWdoOwotIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cK LSMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDkgQEAKLSsyMDE2LTA1 LTMwICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCi0rCVBS IGMrKy8xNTIzMQotKwkqIGdkYi5hZGEvb3V0X29mX2xpbmVfaW5faW5saW5lZC5leHA6IFJlbW92 ZSB4ZmFpbHMuCi0rCSogZ2RiLmR3YXJmMi9kdzItbGV4aWNhbC1ibG9jay1iYXJlLmV4cDogTmV3 IGZpbGUuCi0rCi0gMjAxNi0wNS0yNyAgUGVkcm8gQWx2ZXMgIDxwYWx2ZXNAcmVkaGF0LmNvbT4K LSAKLSAJKiBnZGIudGhyZWFkcy9hdHRhY2gtbWFueS1zaG9ydC1saXZlZC10aHJlYWRzLmV4cCAo YmFkX2RlamFnbnUpOgotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL291dF9vZl9saW5lX2lu X2lubGluZWQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvb3V0X29mX2xpbmVfaW5f aW5saW5lZC5leHAKLUBAIC0yMywyMCArMjMsMTQgQEAgaWYge1tnZGJfY29tcGlsZV9hZGEgIiR7 c3JjZmlsZX0iICIke2JpbmZpbGV9IiBleGVjdXRhYmxlIHtkZWJ1ZyBvcHRpbWl6ZT0tTzJ9XQot IAotIGNsZWFuX3Jlc3RhcnQgJHt0ZXN0ZmlsZX0KLSAKLS0jIEdDQyBjdXJyZW50bHkgaXMgbWlz c2luZyBhIERXX0FUX29yaWdpbiBhdHRyaWJ1dGUgaW4gb25lIG9mIHRoZQotLSMgbGV4aWNhbCBi bG9ja3MsIHByZXZlbnRpbmcgR0RCIGZyb20gY3JlYXRpbmcgYSBzeW1ib2wgZm9yIHRoZQotLSMg c3VicHJvZ3JhbSB3ZSB3YW50IHRvIGJyZWFrIG9uLgotLXNldHVwX3hmYWlsICIqLSotKiIKLSBn ZGJfdGVzdCAiYnJlYWsgZm9vX28yMjRfMDIxLmNoaWxkMS5jaGlsZDIiIFwKLSAgICAgICAgICAi QnJlYWtwb2ludCBcWzAtOVxdKyBhdC4qOiBmaWxlIC4qZm9vX28yMjRfMDIxLmFkYiwgbGluZSBc WzAtOVxdKy4iCi0gCi0gZ2RiX3J1bl9jbWQKLS1zZXR1cF94ZmFpbCAiKi0qLSoiCi0gZ2RiX3Rl c3QgIiIgXAotICAgICAgICAgICJCcmVha3BvaW50ICRkZWNpbWFsLCBmb29fbzIyNF8wMjFcXC5j aGlsZDFcXC5jaGlsZDIgXFwocz1cXC5cXC5cXC5cXCkuKiIKLSAKLSBzZXQgb3B0X2FkZHJfaW4g IigkaGV4IGluKT8iCi0tc2V0dXBfeGZhaWwgIiotKi0qIgotIGdkYl90ZXN0ICJidCIgXAotICAg ICBbbXVsdGlfbGluZSAiIzAgKyRvcHRfYWRkcl9pbiArZm9vX28yMjRfMDIxXFwuY2hpbGQxXFwu Y2hpbGQyIFxcKHM9XFwuXFwuXFwuXFwpLioiIFwKLSAgICAgICAgICAgICAgICAgIiMxICskb3B0 X2FkZHJfaW4gK2Zvb19vMjI0XzAyMVxcLmNoaWxkMSBcXChcXCkuKiIgXAotLS0tIC9kZXYvbnVs bAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1sZXhpY2FsLWJsb2NrLWJhcmUu ZXhwCi1AQCAtMCwwICsxLDcwIEBACi0rIyBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rbG9hZF9s aWIgZHdhcmYuZXhwCi0rCi0rIyBUaGlzIHRlc3QgY2FuIG9ubHkgYmUgcnVuIG9uIHRhcmdldHMg d2hpY2ggc3VwcG9ydCBEV0FSRi0yIGFuZCB1c2UgZ2FzLgotK2lmIHshW2R3YXJmMl9zdXBwb3J0 XX0gewotKyAgICByZXR1cm4gMAotK30KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSAuUyBtYWluLmMK LSsKLSsjIE1ha2Ugc29tZSBEV0FSRiBmb3IgdGhlIHRlc3QuCi0rc2V0IGFzbV9maWxlIFtzdGFu ZGFyZF9vdXRwdXRfZmlsZSAkc3JjZmlsZV0KLStEd2FyZjo6YXNzZW1ibGUgJGFzbV9maWxlIHsK LSsgICAgY3Uge30gewotKwljb21waWxlX3VuaXQgewotKwkgICAge2xvd19wYyBbZ2RiX3Rhcmdl dF9zeW1ib2wgbWFpbl0gRFdfRk9STV9hZGRyfQotKwkgICAge2hpZ2hfcGMgW2dkYl90YXJnZXRf c3ltYm9sIG1haW5dKzB4MTAwMDAgRFdfRk9STV9hZGRyfQotKwl9IHsKLSsJICAgIGRlY2xhcmVf bGFiZWxzIGludGVnZXJfbGFiZWwKLSsKLSsJICAgIGludGVnZXJfbGFiZWw6IERXX1RBR19iYXNl X3R5cGUgewotKwkJe0RXX0FUX2J5dGVfc2l6ZSA0IERXX0ZPUk1fc2RhdGF9Ci0rCQl7RFdfQVRf ZW5jb2RpbmcgIEBEV19BVEVfc2lnbmVkfQotKwkJe0RXX0FUX25hbWUgICAgICBpbnRlZ2VyfQot KwkgICAgfQotKwotKwkgICAgRFdfVEFHX3N1YnByb2dyYW0gewotKwkJe25hbWUgbWFpbn0KLSsJ CXtEV19BVF9leHRlcm5hbCAxIGZsYWd9Ci0rCQl7bG93X3BjIFtnZGJfdGFyZ2V0X3N5bWJvbCBt YWluXSBEV19GT1JNX2FkZHJ9Ci0rCQl7aGlnaF9wYyBbZ2RiX3RhcmdldF9zeW1ib2wgbWFpbl0r MHgxMDAwMCBEV19GT1JNX2FkZHJ9Ci0rCSAgICB9IHsKLSsJCURXX1RBR19sZXhpY2FsX2Jsb2Nr IHsKLSsJCX0gewotKwkJICAgIERXX1RBR192YXJpYWJsZSB7Ci0rCQkJe0RXX0FUX25hbWUgdGVz dHZhcn0KLSsJCQkgICAge0RXX0FUX3R5cGUgOiRpbnRlZ2VyX2xhYmVsfQotKwkJCSAgICB7RFdf QVRfZXh0ZXJuYWwgMSBmbGFnfQotKwkJCXtEV19BVF9sb2NhdGlvbiB7Ci0rCQkJICAgIERXX09Q X2FkZHIgW2dkYl90YXJnZXRfc3ltYm9sIG1haW5dCi0rCQkJfSBTUEVDSUFMX2V4cHJ9Ci0rCQkg ICAgfQotKwkJfQotKwkgICAgfQotKwl9Ci0rICAgIH0KLSt9Ci0rCi0raWYgeyBbcHJlcGFyZV9m b3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gXAotKwkJCSAgW2xpc3QgJHNy Y2ZpbGUyICRhc21fZmlsZV0ge25vZGVidWd9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwot K3J1bnRvX21haW4KLSsKLSsjIEZBSUxpbmcgR0RCIGRpZCBwcmludDogTm8gc3ltYm9sICJ0ZXN0 dmFyIiBpbiBjdXJyZW50IGNvbnRleHQuCi0rZ2RiX3Rlc3QgInAgdGVzdHZhciIgeyA9IC0/WzAt OV0rfQotLS0gCi0yLjUuNQotCgpkaWZmIC0tZ2l0IGEvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZv cmUtcnVuLnBhdGNoIGIvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNoCmluZGV4 IGI2NTdiZDUuLjhiN2IzZDAgMTAwNjQ0Ci0tLSBhL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3Jl LXJ1bi5wYXRjaAorKysgYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKQEAg LTEsNyArMSw3IEBACi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2 L2xpbnV4NjQubWgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlnL2kzODYv bGludXg2NC5taAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2Ri L2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxNi0wMi0xMSAyMDo1NjozMi40NzA2NzQ4NzcgKzAx MDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbGludXg2NC5taAky MDE2LTAyLTExIDIwOjU2OjUxLjE1ODc5NzcxMiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxNi0wNy0wMiAyMjo1OToxOC4y MTMyNDg3NTIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlnL2kzODYv bGludXg2NC5taAkyMDE2LTA3LTAyIDIyOjU5OjI1LjcxNjMxMzkxMSArMDIwMAogQEAgLTcsNyAr Nyw3IEBACiAgCWxpbnV4LXByb2Nmcy5vIGxpbnV4LXB0cmFjZS5vIGxpbnV4LWJ0cmFjZS5vIFwK ICAJbGludXgtd2FpdHBpZC5vIGxpbnV4LXBlcnNvbmFsaXR5Lm8geDg2LWxpbnV4Lm8gXApAQCAt MTEsMTAgKzExLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kz ODYvbGludXg2NC5taAogIE5BVF9DREVQUyA9ICQoc3JjZGlyKS9wcm9jLXNlcnZpY2UubGlzdAog IAogICMgVGhlIGR5bmFtaWNhbGx5IGxvYWRlZCBsaWJ0aHJlYWRfZGIgbmVlZHMgYWNjZXNzIHRv IHN5bWJvbHMgaW4gdGhlCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9p Mzg2L2xpbnV4Lm1oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvbmZpZy9pMzg2 L2xpbnV4Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIv Y29uZmlnL2kzODYvbGludXgubWgJMjAxNi0wMi0xMSAyMDo1NjoyNi45MjU2Mzg0MzAgKzAxMDAK LSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxNi0w Mi0xMSAyMDo1NjozMi40NzE2NzQ4ODQgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5v cmlnL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE2LTA3LTAyIDIyOjU5OjE4LjIxMzI0ODc1 MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWcvaTM4Ni9saW51eC5t aAkyMDE2LTA3LTAyIDIyOjU5OjI1LjcxNjMxMzkxMSArMDIwMAogQEAgLTEsNiArMSw2IEBACiAg IyBIb3N0OiBJbnRlbCAzODYgcnVubmluZyBHTlUvTGludXguCiAgCkBAIC0yMywxMCArMjMsMTAg QEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAog IE5BVERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKICAJeDg2LW5hdC5vIHg4 Ni1kcmVncy5vIGkzODYtbGludXgtbmF0Lm8geDg2LWxpbnV4LW5hdC5vIFwKICAJcHJvYy1zZXJ2 aWNlLm8gbGludXgtdGhyZWFkLWRiLm8gXAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9jb25maWcvaTM4Ni9ubS1saW51eC5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2NvbmZpZy9pMzg2L25tLWxpbnV4LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvY29uZmlnL2kzODYvbm0tbGludXguaAkyMDE2LTAyLTExIDIwOjU2OjMyLjQ3MTY3NDg4NCAr MDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5o CTIwMTYtMDctMDIgMjI6NTk6MjUuNzE2MzEzOTExICswMjAwCiBAQCAtMCwwICsxLDI4IEBACiAr LyogTmF0aXZlIHN1cHBvcnQgZm9yIEdOVS9MaW51eCBpMzg2LgogKwpAQCAtNTYsMTAgKzU2LDEw IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbm0tbGludXgu aAogKyNkZWZpbmUgdGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCh0eXBlLCBjbnQs IG90KSAxCiArCiArI2VuZGlmIC8qIE5NX0xJTlVYNjRfSCAqLwotSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvY29uZmlnL2kzODYvbm0tbGludXg2NC5oCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAkyMDE2LTAyLTExIDIw OjU2OjMyLjQ3MTY3NDg4NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25m aWcvaTM4Ni9ubS1saW51eDY0LmgJMjAxNi0wNy0wMiAyMjo1OToyNS43MTYzMTM5MTEgKzAyMDAK IEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUgc3VwcG9ydCBmb3IgR05VL0xpbnV4IGFtZDY0 LgogKwpAQCAtODksMTMgKzg5LDEzIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv Y29uZmlnL2kzODYvbm0tbGludXg2NC5oCiArI2RlZmluZSB0YXJnZXRfY2FuX3VzZV9oYXJkd2Fy ZV93YXRjaHBvaW50KHR5cGUsIGNudCwgb3QpIDEKICsKICsjZW5kaWYgLyogTk1fTElOVVg2NF9I ICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3RhcmdldC5oCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3RhcmdldC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu OTAuMjAxNjAyMTEub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNi0wMi0xMSAyMDo1NjoyNi45MjY2Mzg0 MzcgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGFyZ2V0LmgJMjAxNi0wMi0x MSAyMDo1NjozMi40NzI2NzQ4OTAgKzAxMDAKLUBAIC0xOTI0LDkgKzE5MjQsMTEgQEAKLSAgICBD TlQgaXMgdGhlIG51bWJlciBvZiBzdWNoIHdhdGNocG9pbnRzIHVzZWQgc28gZmFyLCBpbmNsdWRp bmcgdGhpcwotICAgIG9uZS4gIE9USEVSVFlQRSBpcyB3aG8ga25vd3Mgd2hhdC4uLiAgKi8KKy0t LSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90YXJnZXQuaAkyMDE2LTA3LTAyIDIyOjU5 OjE4LjIxNDI0ODc2MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90YXJnZXQu aAkyMDE2LTA3LTAyIDIyOjU5OjI1LjcxNzMxMzkxOSArMDIwMAorQEAgLTE5MjgsOSArMTkyOCwx MSBAQAorICAgIG9uZS4gIE9USEVSVFlQRSBpcyB0aGUgbnVtYmVyIG9mIHdhdGNocG9pbnRzIG9m IG90aGVyIHR5cGVzIHRoYW4KKyAgICB0aGlzIG9uZSB1c2VkIHNvIGZhci4gICovCiAgCiArI2lm bmRlZiB0YXJnZXRfY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50CiAgI2RlZmluZSB0YXJnZXRf Y2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50KFRZUEUsQ05ULE9USEVSVFlQRSkgXApAQCAtMTA1 LDEwICsxMDUsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90YXJnZXQuaAog IAogIC8qIFJldHVybnMgdGhlIG51bWJlciBvZiBkZWJ1ZyByZWdpc3RlcnMgbmVlZGVkIHRvIHdh dGNoIHRoZSBnaXZlbgogICAgIG1lbW9yeSByZWdpb24sIG9yIHplcm8gaWYgbm90IHN1cHBvcnRl ZC4gICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRj aHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCTIwMTYtMDItMTEgMjA6NTY6MzIuNDcyNjc0ODkwICsw MTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRj aHBvaW50LWh3LWJlZm9yZS1ydW4uZXhwCTIwMTYtMDctMDIgMjI6NTk6MjUuNzE3MzEzOTE5ICsw MjAwCiBAQCAtMCwwICsxLDQwIEBACiArIyBDb3B5cmlnaHQgMjAwOSwgMjAxMCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsKCmRpZmYgLS1naXQgYS9nZGItZHRzLXJoZWw2LXB5dGhv bi1jb21wYXQucGF0Y2ggYi9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2gKaW5kZXgg ODM4OGM4Ni4uY2JhMWE1YiAxMDA2NDQKLS0tIGEvZ2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0 LnBhdGNoCisrKyBiL2dkYi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaApAQCAtMSwxMCAr MSwxMCBAQAogaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMDIw MDA0CiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtl ZmlsZS5pbgorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kYXRhLWRpcmVjdG9yeS9N YWtlZmlsZS5pbgogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIv ZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNS0wNS0zMSAxODowNTo0My4wNDY3NDYzNTEg KzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmls ZS5pbgkyMDE1LTA1LTMxIDE4OjA1OjU4LjQ4Mzg0MTY1NSArMDIwMAotQEAgLTYwLDYgKzYwLDgg QEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dk Yi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE2LTA3LTAzIDE2OjMyOjEzLjc4ODE2NDA0 MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtl ZmlsZS5pbgkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2ODE5ODg1MCArMDIwMAorQEAgLTYxLDYgKzYx LDggQEAKICAJZ2RiL2ZyYW1lcy5weSBcCiAgCWdkYi9GcmFtZUl0ZXJhdG9yLnB5IFwKICAJZ2Ri L0ZyYW1lRGVjb3JhdG9yLnB5IFwKQEAgLTEzLDE4ICsxMywxOCBAQCBJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KICAJZ2RiL3R5cGVzLnB5 IFwKICAJZ2RiL3ByaW50aW5nLnB5IFwKICAJZ2RiL3Vud2luZGVyLnB5IFwKLUBAIC03Niw2ICs3 OCw3IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCitAQCAtNzcsNiArNzksNyBAQAogIAlnZGIvY29t bWFuZC9wcmV0dHlfcHJpbnRlcnMucHkgXAogIAlnZGIvY29tbWFuZC9wcm9tcHQucHkgXAogIAln ZGIvY29tbWFuZC9leHBsb3JlLnB5IFwKICsJZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5IFwKICAJ Z2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5IFwKKyAJZ2RiL2Z1bmN0aW9uL2FzX3N0cmluZy5weSBc CiAgCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXAotIAlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5 IFwKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdy YXBwZXIucHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIv RnJhbWVXcmFwcGVyLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9u L2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CTIwMTUtMDUtMzEgMTg6MDU6NTguNDg0ODQxNjYxICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3Jh cHBlci5weQkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2OTE5ODg1OSArMDIwMAogQEAgLTAsMCArMSwx MjIgQEAKICsjIFdyYXBwZXIgQVBJIGZvciBmcmFtZXMuCiArCkBAIC0xNDgsMTAgKzE0OCwxMCBA QCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFw cGVyLnB5CiArCiArICAgIGRlZiBfX2dldGF0dHJfXyAoc2VsZiwgbmFtZSk6CiArICAgICAgICBy ZXR1cm4gZ2V0YXR0ciAoc2VsZi5mcmFtZSwgbmFtZSkKLUluZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CTIwMTUtMDUtMzEg MTg6MDU6NTguNDg0ODQxNjYxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5 dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weQkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2OTE5ODg1OSAr MDIwMAogQEAgLTAsMCArMSw0MiBAQAogKyMgRmlsdGVyaW5nIGJhY2t0cmFjZS4KICsKQEAgLTE5 NSwxMCArMTk1LDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGli L2dkYi9iYWNrdHJhY2UucHkKICsgICAgICAgIHJldHVybiBpdGVyCiArICAgIHJldHVybiBvbGRf ZnJhbWVfZmlsdGVyIChpdGVyKQogKwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5 dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2Uu cHkJMjAxNS0wNS0zMSAxODowNTo1OC40ODQ4NDE2NjEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNi0wNy0w MyAxNjozMjoxNy44NjkxOTg4NTkgKzAyMDAKIEBAIC0wLDAgKzEsMTA2IEBACiArIyBOZXcgYmFj a3RyYWNlIGNvbW1hbmQuCiArCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVs LTFvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5wYXRjaAppbmRleCBi MWMxMzFkLi41Yjg0ODU3IDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9m Ni5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5wYXRjaApAQCAtMSw3 ICsxLDEwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9t c2cwMDg0My5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgMS82XSBmb3J0cmFuOiBhbGxvdyBtdWx0 aS1kaW1lbnNpb25hbCBzdWJhcnJheXMKK1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJh bjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3Vy Y2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSA5 OTM4MzQ0NjlmMWU2NGU1NDYxZTFlMWJlZjkxN2ZkMzg4ZmU0MjhlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBp bnRlbC5jb20+CitEYXRlOiBUaHUsIDEyIE5vdiAyMDE1IDE1OjQ1OjUyICswMTAwCitTdWJqZWN0 OiBbUEFUQ0ggMS82XSBmb3J0cmFuOiBhbGxvdyBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMK IAogQWRkIGFuIGFyZ3VtZW50IGNvdW50IGZvciBzdWJyYW5nZSBleHByZXNzaW9ucyBpbiBGb3J0 cmFuLgogQmFzZWQgb24gdGhlIGNvdW50ZWQgdmFsdWUgY2FsY3VsYXRlIGEgbmV3IGFycmF5IHdp dGggdGhlCkBAIC0zNiwxNyArMzksMTcgQEAgbmV3PiAkMyA9ICggKCAyMSwgMzEsIDQxKSAoIDIy LCAzMiwgNDIpICggMjMsIDMzLCA0MykgKQogCiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggV2Vp bm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KIC0tLQotIGdkYi9ldmFsLmMg ICB8IDMwOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQorIGdkYi9ldmFsLmMgICB8IDMxNCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogIGdkYi9mLWV4cC55ICB8ICAgMiAr Ci0gZ2RiL3ZhbG9wcy5jIHwgMTU3ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQorIGdk Yi92YWxvcHMuYyB8IDE1OSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KICBnZGIvdmFs dWUuaCAgfCAgIDIgKwotIDQgZmlsZXMgY2hhbmdlZCwgMzc1IGluc2VydGlvbnMoKyksIDk1IGRl bGV0aW9ucygtKQorIDQgZmlsZXMgY2hhbmdlZCwgMzgwIGluc2VydGlvbnMoKyksIDk3IGRlbGV0 aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDc4 YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CitpbmRleCBkZTFjNjYzLi4zNTgxNWE0IDEwMDY0NAogLS0t IGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwotQEAgLTM5OSwyOSArMzk5LDI1MyBAQCBp bml0X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCB2YWx1ZSAqZWxl bWVudCwKK0BAIC0zOTksMjkgKzM5OSwyNTQgQEAgaW5pdF9hcnJheV9lbGVtZW50IChzdHJ1Y3Qg dmFsdWUgKmFycmF5LCBzdHJ1Y3QgdmFsdWUgKmVsZW1lbnQsCiAgICByZXR1cm4gaW5kZXg7CiAg fQogIApAQCAtNjYsNDEgKzY5LDQ5IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAt ICBpbnQgcGMgPSAoKnBvcykgKyAxOwogKyAgaW50IGksIGRpbV9jb3VudCA9IDA7CiAgICBMT05H RVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKLSAgIHN0cnVjdCB0eXBlICpyYW5nZSA9IGNoZWNr X3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlwZSAoYXJyYXkpKSk7Ci0tICBlbnVt IGY5MF9yYW5nZV90eXBlIHJhbmdlX3R5cGUKLS0gICAgPSAoZW51bSBmOTBfcmFuZ2VfdHlwZSkg bG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKKy0gIHN0cnVjdCB0eXBl ICpyYW5nZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlwZSAoYXJy YXkpKSk7CistICBlbnVtIHJhbmdlX3R5cGUgcmFuZ2VfdHlwZQorLSAgICA9IChlbnVtIHJhbmdl X3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7CiAtIAogLSAg KnBvcyArPSAzOworLQorLSAgaWYgKHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQgfHwg cmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFVTFQpCistICAgIGxvd19ib3VuZCA9IFRZUEVf TE9XX0JPVU5EIChyYW5nZSk7CistICBlbHNlCistICAgIGxvd19ib3VuZCA9IHZhbHVlX2FzX2xv bmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CiArICBz dHJ1Y3QgdmFsdWUgKm5ld19hcnJheSA9IGFycmF5OwogKyAgc3RydWN0IHR5cGUgKmFycmF5X3R5 cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsKLSsgIHN0cnVjdCB0 eXBlICp0ZW1wX3R5cGU7CisrICBzdHJ1Y3QgdHlwZSAqZWx0X3R5cGU7CisrCisrICB0eXBlZGVm IHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UKKysgIHsKKysgICAgZW51bSByYW5nZV90eXBlIGY5MF9y YW5nZV90eXBlOworKyAgICBMT05HRVNUIGxvdywgaGlnaDsKKysgIH0gc3Vic2NyaXB0X3Jhbmdl OworKworKyAgdHlwZWRlZiBlbnVtIHN1YnNjcmlwdF9raW5kCisrICB7CisrICAgIFNVQlNDUklQ VF9SQU5HRSwgICAgLyogZS5nLiAiKGxvd2JvdW5kOmhpZ2hib3VuZCkiICAqLworKyAgICBTVUJT Q1JJUFRfSU5ERVggICAgLyogZS5nLiAiKGxpdGVyYWwpIiAgKi8KKysgIH0ga2luZDsKICsKICsg IC8qIExvY2FsIHN0cnVjdCB0byBob2xkIHVzZXIgZGF0YSBmb3IgRm9ydHJhbiBzdWJhcnJheSBk aW1lbnNpb25zLiAgKi8KICsgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUKICsgIHsKICsgICAgLyog Rm9yIGV2ZXJ5IGRpbWVuc2lvbiwgd2UgYXJlIGVpdGhlciB3b3JraW5nIG9uIGEgcmFuZ2Ugb3Ig YW4gaW5kZXgKICsgICAgICAgZXhwcmVzc2lvbiwgc28gd2Ugc3RvcmUgdGhpcyBpbmZvIHNlcGFy YXRlbHkgZm9yIGxhdGVyLiAgKi8KLSsgICAgZW51bQotKyAgICB7Ci0rICAgICAgU1VCU0NSSVBU X1JBTkdFLCAgICAvKiBlLmcuICIobG93Ym91bmQ6aGlnaGJvdW5kKSIgICovCi0rICAgICAgU1VC U0NSSVBUX0lOREVYICAgIC8qIGUuZy4gIihsaXRlcmFsKSIgICovCi0rICAgIH0ga2luZDsKKysg ICAgZW51bSBzdWJzY3JpcHRfa2luZCBraW5kOwogKwogKyAgICAvKiBXZSBhbHNvIHN0b3JlIGVp dGhlciB0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kIGluZm8sIG9yIHRoZSBpbmRleAogKyAgICAg ICBudW1iZXIuICBCZWZvcmUgZXZhbHVhdGlvbiBvZiB0aGUgaW5wdXQgdmFsdWVzLCB3ZSBkbyBu b3Qga25vdyBpZiB3ZSBhcmUKICsgICAgICAgYWN0dWFsbHkgd29ya2luZyBvbiBhIHJhbmdlIG9m IHJhbmdlcywgb3IgYW4gaW5kZXggaW4gYSByYW5nZS4gIFNvIGFzIGEKICsgICAgICAgZmlyc3Qg c3RlcCB3ZSBzdG9yZSBhbGwgaW5wdXQgaW4gYSB1bmlvbi4gIFRoZSBhcnJheSBjYWxjdWxhdGlv biBpdHNlbGYKICsgICAgICAgZGVhbHMgd2l0aCB0aGlzIGxhdGVyIG9uLiAgKi8KLSsgICAgdW5p b24KKysgICAgdW5pb24gZWxlbWVudF9yYW5nZQogKyAgICB7Ci0rICAgICAgc3RydWN0IHN1YnNj cmlwdF9yYW5nZQotKyAgICAgIHsKLSsgICAgICAgIGVudW0gZjkwX3JhbmdlX3R5cGUgZjkwX3Jh bmdlX3R5cGU7Ci0rICAgICAgICBMT05HRVNUIGxvdywgaGlnaDsKLSsgICAgICB9Ci0rICAgICAg cmFuZ2U7CisrICAgICAgc3Vic2NyaXB0X3JhbmdlIHJhbmdlOwogKyAgICAgIExPTkdFU1QgbnVt YmVyOwotKyAgICB9OworKyAgICB9IFU7CiArICB9ICpzdWJzY3JpcHRfYXJyYXk7CiArCiArICAv KiBDaGVjayBpZiB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBwcm92aWRlZCBieSB0aGUgdXNlciBt YXRjaGVzCkBAIC0xMDksNyArMTIwLDcgQEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2NDQK ICsgIGlmIChuYXJncyAhPSBjYWxjX2Y3N19hcnJheV9kaW1zICh2YWx1ZV90eXBlIChuZXdfYXJy YXkpKSkKICsgICAgZXJyb3IgKF8oIldyb25nIG51bWJlciBvZiBzdWJzY3JpcHRzIikpOwogKwot KyAgc3Vic2NyaXB0X2FycmF5ID0gYWxsb2NhIChzaXplb2YgKCpzdWJzY3JpcHRfYXJyYXkpICog bmFyZ3MpOworKyAgc3Vic2NyaXB0X2FycmF5ID0gKHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUqKSBh bGxvY2EgKHNpemVvZiAoKnN1YnNjcmlwdF9hcnJheSkgKiBuYXJncyk7CiArCiArICAvKiBQYXJz ZSB0aGUgdXNlciBpbnB1dCBpbnRvIHRoZSBTVUJTQ1JJUFRfQVJSQVkgdG8gc3RvcmUgaXQuICBX ZSBuZWVkCiArICAgICB0byBldmFsdWF0ZSBpdCBmaXJzdCwgYXMgdGhlIGlucHV0IGlzIGZyb20g bGVmdC10by1yaWdodC4gIFRoZQpAQCAtMTIyLDIyICsxMzMsMjIgQEAgaW5kZXggNzhhZDk0Ni4u YzlmMzI1ZiAxMDA2NDQKICsgICAgewogKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmlu ZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKICAKLS0gIGlmIChyYW5nZV90eXBlID09IExPV19C T1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQotLSAgICBs b3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2UpOworLSAgaWYgKHJhbmdlX3R5cGUgPT0g SElHSF9CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQor LSAgICBoaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChyYW5nZSk7CiAtICBlbHNlCi0tICAg IGxvd19ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBl eHAsIHBvcywgbm9zaWRlKSk7CistICAgIGhpZ2hfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFs dWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lkZSkpOwogKyAgICAgIC8qIFRo ZSB1c2VyIGlucHV0IGlzIGEgcmFuZ2UsIHdpdGggb3Igd2l0aG91dCBsb3dlciBhbmQgdXBwZXIg Ym91bmQuCiArCSBFLmcuOiAicCBhcnJ5KDI6NSkiLCAicCBhcnJ5KCA6NSkiLCAicCBhcnJ5KCA6 ICkiLCBldGMuICAqLwotKyAgICAgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX0Y5 MF9SQU5HRSkKKysgICAgICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9SQU5HRSkK ICsJewogKwkgIGludCBwYyA9ICgqcG9zKSArIDE7Ci0rCSAgc3RydWN0IHN1YnNjcmlwdF9yYW5n ZSAqcmFuZ2U7CisrCSAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZTsKICsKICsJICBpbmRleC0+a2lu ZCA9IFNVQlNDUklQVF9SQU5HRTsKLSsJICByYW5nZSA9ICZpbmRleC0+cmFuZ2U7CisrCSAgcmFu Z2UgPSAmaW5kZXgtPlUucmFuZ2U7CiArCiArCSAgKnBvcyArPSAzOwotKwkgIHJhbmdlLT5mOTBf cmFuZ2VfdHlwZSA9IGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7Cisr CSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkgbG9uZ2VzdF90b19p bnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKICsKICsJICAvKiBJZiBhIGxvd2VyIGJvdW5k IHdhcyBwcm92aWRlZCBieSB0aGUgdXNlciwgdGhlIGJpdCBoYXMgYmVlbgogKwkgICAgIHNldCBh bmQgd2UgY2FuIGFzc2lnbiB0aGUgdmFsdWUgZnJvbSB0aGUgZWx0IHN0YWNrLiAgU2FtZSBmb3IK QEAgLTE1NSwxNyArMTY2LDEzIEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiArICAg ICAgZWxzZQogKwl7CiArCSAgc3RydWN0IHZhbHVlICp2YWw7Ci0gCi0tICBpZiAocmFuZ2VfdHlw ZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQgfHwgcmFuZ2VfdHlwZSA9PSBCT1RIX0JPVU5EX0RFRkFV TFQpCi0tICAgIGhpZ2hfYm91bmQgPSBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlKTsKLS0gIGVsc2UK LS0gICAgaGlnaF9ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9U WVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CisrCiArCSAgaW5kZXgtPmtpbmQgPSBTVUJTQ1JJUFRf SU5ERVg7CiArCiArCSAgLyogRXZhbHVhdGUgZWFjaCBzdWJzY3JpcHQ7IGl0IG11c3QgYmUgYSBs ZWdhbCBpbnRlZ2VyIGluIEY3Ny4gIFRoaXMKICsJICAgICBlbnN1cmVzIHRoZSB2YWxpZGl0eSBv ZiB0aGUgcHJvdmlkZWQgaW5kZXguICAqLwogKwkgIHZhbCA9IGV2YWx1YXRlX3N1YmV4cF93aXRo X2NvZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKLSsJICBpbmRleC0+bnVtYmVyID0gdmFsdWVf YXNfbG9uZyAodmFsKTsKKysJICBpbmRleC0+VS5udW1iZXIgPSB2YWx1ZV9hc19sb25nICh2YWwp OwogKwl9CiArCiArICAgIH0KQEAgLTE4OCw3ICsxOTUsNyBAQCBpbmRleCA3OGFkOTQ2Li5jOWYz MjVmIDEwMDY0NAogKwkgICAgICAgdHJlYXQgYW55IHN1YnNlcXVlbnQgdXNlciBlbnRyeSBhcyBh IHJhbmdlLiAgV2Ugc2ltcGx5CiArCSAgICAgICBpbmNyZW1lbnQgRElNX0NPVU5UIHdoaWNoIHRl bGxzIHVzIGhvdyBtYW55IHRpbWVzIHdlIGFyZQogKwkgICAgICAgY2FsbGluZyBWQUxVRV9TTElD RV8xLiAgKi8KLSsJICAgIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UgKnJhbmdlID0gJmluZGV4LT5y YW5nZTsKKysJICAgIHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPlUucmFuZ2U7CiAr CiArCSAgICAvKiBJZiBubyBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIHdl IHRha2UgdGhlCiArCSAgICAgICBkZWZhdWx0IGJvdW5kYXJ5LiAgU2FtZSBmb3IgdGhlIGhpZ2gg Ym91bmQuICAqLwpAQCAtMjMyLDE5ICsyMzksMTkgQEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAx MDA2NDQKICsJICAgICAgIHRvIGdldCB0aGUgdmFsdWUgb2Zmc2V0IHJpZ2h0LiAgKi8KICsJICAg IGlmIChkaW1fY291bnQgPT0gMCkKICsJICAgICAgbmV3X2FycmF5Ci0rCSAgICAgICAgPSB2YWx1 ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKG5ld19hcnJheSwgaW5kZXgtPm51bWJlciwKKysJICAgICAg ICA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAobmV3X2FycmF5LCBpbmRleC0+VS5udW1iZXIs CiArCQkJCQkgICAgZjc3X2dldF9sb3dlcmJvdW5kICh2YWx1ZV90eXBlCiArCQkJCQkJCQkgIChu ZXdfYXJyYXkpKSk7CiArCSAgICBlbHNlCiArCSAgICAgIHsKICsJCS8qIENoZWNrIGZvciB2YWxp ZCBpbmRleCBpbnB1dC4gICovCi0rCQlpZiAoaW5kZXgtPm51bWJlciA8IFRZUEVfTE9XX0JPVU5E IChpbmRleF90eXBlKQotKwkJICAgIHx8IGluZGV4LT5udW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQg KGluZGV4X3R5cGUpKQorKwkJaWYgKGluZGV4LT5VLm51bWJlciA8IFRZUEVfTE9XX0JPVU5EIChp bmRleF90eXBlKQorKwkJICAgIHx8IGluZGV4LT5VLm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAo aW5kZXhfdHlwZSkpCiArCQkgIGVycm9yIChfKCJlcnJvciBubyBzdWNoIHZlY3RvciBlbGVtZW50 IikpOwogKwogKwkJZGltX2NvdW50Kys7CiArCQluZXdfYXJyYXkgPSB2YWx1ZV9zbGljZV8xIChu ZXdfYXJyYXksCi0rCQkJCQkgICBsb25nZXN0X3RvX2ludCAoaW5kZXgtPm51bWJlciksCisrCQkJ CQkgICBsb25nZXN0X3RvX2ludCAoaW5kZXgtPlUubnVtYmVyKSwKICsJCQkJCSAgIDEsIC8qIGxl bmd0aCBpcyAnMScgZWxlbWVudCAgKi8KICsJCQkJCSAgIGRpbV9jb3VudCk7CiArCSAgICAgIH0K QEAgLTI3MCwxMCArMjc3LDEwIEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiArICBp ZiAoZGltX2NvdW50ID4gMSkKICsgICAgewogKyAgICAgIHN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7 CisrCisrICAgICAgZWx0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh2YWx1ZV90eXBlIChuZXdf YXJyYXkpKTsKICAKIC0gIHJldHVybiB2YWx1ZV9zbGljZSAoYXJyYXksIGxvd19ib3VuZCwgaGln aF9ib3VuZCAtIGxvd19ib3VuZCArIDEpOwotKyAgICAgIHRlbXBfdHlwZSA9IFRZUEVfVEFSR0VU X1RZUEUgKHZhbHVlX3R5cGUgKG5ld19hcnJheSkpOwotKwogKyAgICAgIC8qIEV2ZXJ5IFNVQlND UklQVF9SQU5HRSBpbiB0aGUgdXNlciBpbnB1dCBzaWduaWZpZXMgYW4gYWN0dWFsIHJhbmdlIGlu CiArCSB0aGUgb3V0cHV0IGFycmF5LiAgU28gd2UgdHJhdmVyc2UgdGhlIFNVQlNDUklQVF9BUlJB WSBhZ2FpbiwgbG9va2luZwogKwkgZm9yIGEgcmFuZ2UgZW50cnkuICBXaGVuIHdlIGZpbmQgb25l LCB3ZSB1c2UgdGhlIHJhbmdlIGluZm8gdG8gY3JlYXRlCkBAIC0yODksMjYgKzI5NiwyNSBAQCBp bmRleCA3OGFkOTQ2Li5jOWYzMjVmIDEwMDY0NAogKwogKwkgICAgICByYW5nZV90eXBlCiArCQk9 IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwKLSsJCQkJICAgICB0ZW1wX3R5cGUsCi0r CQkJCSAgICAgMSwKLSsJCQkJICAgICBpbmRleC0+cmFuZ2UuaGlnaCAtIGluZGV4LT5yYW5nZS5s b3cgKyAxKTsKKysJCQkJCSAgICBlbHRfdHlwZSwKKysJCQkJCSAgICAxLAorKwkJCQkJICAgIGlu ZGV4LT5VLnJhbmdlLmhpZ2gKKysJCQkJCSAgICAgIC0gaW5kZXgtPlUucmFuZ2UubG93ICsgMSk7 CiArCiArCSAgICAgIGludGVyaW1fYXJyYXlfdHlwZSA9IGNyZWF0ZV9hcnJheV90eXBlIChOVUxM LAotKwkJCQkJCSAgICAgIHRlbXBfdHlwZSwKKysJCQkJCQkgICAgICBlbHRfdHlwZSwKICsJCQkJ CQkgICAgICByYW5nZV90eXBlKTsKICsKLSsJICAgICAgLyogRm9yIHNvbWUgcmVhc29uIHRoZSB0 eXBlIGNvZGUgb2YgdGhlIGNvbnRlbnRzIGlzIG1pc3NpbmcsIHNvCi0rCQkgcmVzZXQgaXQgZnJv bSB0aGUgb3JpZ2luYWwgYXJyYXkuICAqLwogKwkgICAgICBUWVBFX0NPREUgKGludGVyaW1fYXJy YXlfdHlwZSkKICsJCT0gVFlQRV9DT0RFICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsKICsKICsJ ICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVlIChpbnRlcmltX2FycmF5X3R5cGUpOwogKwotKwkgICAg ICB0ZW1wX3R5cGUgPSB2YWx1ZV90eXBlICh2KTsKKysJICAgICAgZWx0X3R5cGUgPSB2YWx1ZV90 eXBlICh2KTsKICsJICAgIH0KICsKICsJfQotKyAgICAgIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHYs IDAsIG5ld19hcnJheSwgMCwgVFlQRV9MRU5HVEggKHRlbXBfdHlwZSkpOworKyAgICAgIHZhbHVl X2NvbnRlbnRzX2NvcHkgKHYsIDAsIG5ld19hcnJheSwgMCwgVFlQRV9MRU5HVEggKGVsdF90eXBl KSk7CiArICAgICAgcmV0dXJuIHY7CiArICAgIH0KICsKQEAgLTMxNiwyNCArMzIyLDI0IEBAIGlu ZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAgfQogIAogIAotQEAgLTE4MTAsMTQgKzIwMzQs MTEgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUs CitAQCAtMTgxMCwxNCArMjAzNSwxMSBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVj dCB0eXBlICpleHBlY3RfdHlwZSwKICAgICAgICBzd2l0Y2ggKGNvZGUpCiAgCXsKICAJY2FzZSBU WVBFX0NPREVfQVJSQVk6Ci0tCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkw X1JBTkdFKQorLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQogLQkg ICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5vc2lkZSk7CiAt CSAgZWxzZQogLQkgICAgZ290byBtdWx0aV9mNzdfc3Vic2NyaXB0OwogKwkgIHJldHVybiB2YWx1 ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBuYXJncywgbm9zaWRlKTsKICAKICAJY2Fz ZSBUWVBFX0NPREVfU1RSSU5HOgotIAkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9Q X0Y5MF9SQU5HRSkKKyAJICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9SQU5HRSkK IC0JICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBub3NpZGUp OwogKwkgICAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIDEsIG5v c2lkZSk7CiAgCSAgZWxzZQogIAkgICAgewogIAkgICAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhw X3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwotQEAgLTIyMjIsNDkgKzI0NDMsNiBA QCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BA IC0yMjIyLDQ5ICsyNDQ0LDYgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlw ZSAqZXhwZWN0X3R5cGUsCiAgCX0KICAgICAgICByZXR1cm4gKGFyZzEpOwogIApAQCAtMzgzLDcg KzM4OSw3IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAgICAgIGNhc2UgQklOT1Bf TE9HSUNBTF9BTkQ6CiAgICAgICAgYXJnMSA9IGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBl eHAsIHBvcywgbm9zaWRlKTsKICAgICAgICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKLUBAIC0z MTIxLDYgKzMyOTksOSBAQCBjYWxjX2Y3N19hcnJheV9kaW1zIChzdHJ1Y3QgdHlwZSAqYXJyYXlf dHlwZSkKK0BAIC0zMTIyLDYgKzMzMDEsOSBAQCBjYWxjX2Y3N19hcnJheV9kaW1zIChzdHJ1Y3Qg dHlwZSAqYXJyYXlfdHlwZSkKICAgIGludCBuZGltZW4gPSAxOwogICAgc3RydWN0IHR5cGUgKnRt cF90eXBlOwogIApAQCAtMzk0LDEwICs0MDAsMTAgQEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAx MDA2NDQKICAgICAgZXJyb3IgKF8oIkNhbid0IGdldCBkaW1lbnNpb25zIGZvciBhIG5vbi1hcnJh eSB0eXBlIikpOwogIAogZGlmZiAtLWdpdCBhL2dkYi9mLWV4cC55IGIvZ2RiL2YtZXhwLnkKLWlu ZGV4IDRmYWFjMzIuLjkzNDNhYmIgMTAwNjQ0CitpbmRleCBlMzE0OGEzLi5kYzEzMWMxIDEwMDY0 NAogLS0tIGEvZ2RiL2YtZXhwLnkKICsrKyBiL2dkYi9mLWV4cC55Ci1AQCAtMzA4LDYgKzMwOCw4 IEBAIGFyZ2xpc3QgOglzdWJyYW5nZQorQEAgLTI1Myw2ICsyNTMsOCBAQCBhcmdsaXN0IDoJc3Vi cmFuZ2UKICAgICAKICBhcmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09N TUEKICAJCQl7IGFyZ2xpc3RfbGVuKys7IH0KQEAgLTQwNywxMCArNDEzLDEwIEBAIGluZGV4IDRm YWFjMzIuLjkzNDNhYmIgMTAwNjQ0CiAgCiAgLyogVGhlcmUgYXJlIGZvdXIgc29ydHMgb2Ygc3Vi cmFuZ2UgdHlwZXMgaW4gRjkwLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIv dmFsb3BzLmMKLWluZGV4IDVhMjQ0YTkuLjA5ZWE4NzcgMTAwNjQ0CitpbmRleCA3MWZiMWIzLi44 MTdhNGNmIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbG9wcy5jCiArKysgYi9nZGIvdmFsb3BzLmMKLUBA IC0zNzU5LDU2ICszNzU5LDE1MSBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0 IGxhbmd1YWdlX2RlZm4gKmxhbmcpCitAQCAtMzc2Niw1NiArMzc2NiwxNTMgQEAgdmFsdWVfb2Zf dGhpc19zaWxlbnQgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5nKQogIHN0cnVjdCB2 YWx1ZSAqCiAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwg aW50IGxlbmd0aCkKICB7CkBAIC00MjAsNyArNDI2LDkgQEAgaW5kZXggNWEyNDRhOS4uMDllYTg3 NyAxMDA2NDQKICsgIHJldHVybiB2YWx1ZV9zbGljZV8xIChhcnJheSwgbG93Ym91bmQsIGxlbmd0 aCwgMSk7CiArfQogKwotKy8qIENBTExfQ09VTlQgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgd2Ug YXJlIGNhbGxpbmcgdGhlIGZ1bmN0aW9uIG9uY2UsIGUuZy4KKysvKiBWQUxVRV9TTElDRV8xIGlz IGNhbGxlZCBmb3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8gY2FsY3VsYXRlIHRoZSBudW1iZXIK KysgICBvZiBlbGVtZW50cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbi4K KysgICBDQUxMX0NPVU5UIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBjYWxsaW5nIHRo ZSBmdW5jdGlvbiBvbmNlLCBlLmcuCiArICAgd2UgYXJlIHdvcmtpbmcgb24gdGhlIGN1cnJlbnQg ZGltZW5zaW9uIG9mIEFSUkFZLCBvciBpZiB3ZSBhcmUgY2FsbGluZwogKyAgIHRoZSBmdW5jdGlv biByZXBlYXRlZGx5LiAgSW4gdGhlIGxhdGVyIGNhc2Ugd2UgbmVlZCB0byB0YWtlIGVsZW1lbnRz CiArICAgZnJvbSB0aGUgVEFSR0VUX1RZUEUgb2YgQVJSQVkuCkBAIC01MTUsNyArNTIzLDcgQEAg aW5kZXggNWEyNDRhOS4uMDllYTg3NyAxMDA2NDQKICsgICAgICBkb25lIHdpdGggaXQuICAqLwog IAogKyAgc2xpY2VfcmFuZ2VfdHlwZSA9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwg VFlQRV9UQVJHRVRfVFlQRSAocmFuZ2VfdHlwZSksCi0rCQkJCQlhcnlfbG93X2JvdW5kLCBzbGlj ZV9yYW5nZV9zaXplKTsKKysJCQkJCSAgICAgICBhcnlfbG93X2JvdW5kLCBzbGljZV9yYW5nZV9z aXplKTsKICAgIHsKIC0gICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VU X1RZUEUgKGFycmF5X3R5cGUpOwogLSAgICBMT05HRVNUIG9mZnNldApAQCAtNTk0LDcgKzYwMiw3 IEBAIGluZGV4IDVhMjQ0YTkuLjA5ZWE4NzcgMTAwNjQ0CiAgCiAgLyogQ3JlYXRlIGEgdmFsdWUg Zm9yIGEgRk9SVFJBTiBjb21wbGV4IG51bWJlci4gIEN1cnJlbnRseSBtb3N0IG9mIHRoZQogZGlm ZiAtLWdpdCBhL2dkYi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKLWluZGV4IDJlYWM1ZWYuLjM0MDA0 NjAgMTAwNjQ0CitpbmRleCBmOGVjODU0Li45NTU4OGFmIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHVl LmgKICsrKyBiL2dkYi92YWx1ZS5oCiBAQCAtMTA1Niw2ICsxMDU2LDggQEAgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqdmFyeWluZ190b19zbGljZSAoc3RydWN0IHZhbHVlICopOwpAQCAtNjA3LDUgKzYx NSw1IEBAIGluZGV4IDJlYWM1ZWYuLjM0MDA0NjAgMTAwNjQ0CiAgCQkJCQkgICAgc3RydWN0IHR5 cGUgKik7CiAgCiAtLSAKLTIuNS4wCisyLjUuNQogCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4t c3RyaWRlLWludGVsLTJvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMm9mNi5w YXRjaAppbmRleCBiZjQ4MTQzLi5iNDEwMGZlIDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJp ZGUtaW50ZWwtMm9mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMm9mNi5w YXRjaApAQCAtMSwxMCArMSwxMyBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRj aGVzLzIwMTYtMDIvbXNnMDA4NDEuaHRtbAotU3ViamVjdDogW1BBVENIIHYyIDIvNl0gZm9ydHJh bjogY29tYmluZSBzdWJhcnJheSBhbmQgc3RyaW5nIGNvbXB1dGF0aW9uCitSRTogW3BpbmddIFtQ QVRDSCB2MiAwLzZdIGZvcnRyYW46IG11bHRpLWRpbWVuc2lvbmFsIHN1YmFycmF5cyB3aXRoIHN0 cmlkZXMKK2h0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wNy9tc2cw MDAwOS5odG1sCiAKK0Zyb20gNzMzYjNiNjBiZTVjOGQyM2ZhN2U0NzQ5OGQzNWU0NzAxNTI4ZjNh ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKIEZyb206IENocmlzdG9waCBXZWlubWFubiA8Y2hy aXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgorRGF0ZTogRnJpLCAxMyBOb3YgMjAxNSAwOTow MDozMyArMDEwMAorU3ViamVjdDogW1BBVENIIDIvNl0gZm9ydHJhbjogY29tYmluZSBzdWJhcnJh eSBhbmQgc3RyaW5nIGNvbXB1dGF0aW9uCiAKLVN0cmluZ3Mgb25seSBoYXZlIG9uZSBkaW1lbnNp b24sIGJ1dCB0aGUgZWxlbWVudCBjb21wdXRhdGlvbiBpcwotaWRlbnRpY2FsIHRvIHRoZSBzdWJh cnJheSBjb21wdXRhdGlvbiBmb3IgcmFuZ2VzIGFuZCBpbmRpY2VzLgorU3RyaW5ncyB0eXBlcyBh cmUgaGFuZGxlZCBsaWtlIGFycmF5IHR5cGVzIHdpdGggb25seSBvbmUgZGltZW5zaW9uLgorVGhl cmVmb3JlIHRoZSBzYW1lIGFsZ29yaXRobSB0byBjYWxjdWxhdGUgc3Vic2V0cyBpcyB1c2VkLgog CiAyMDEzLTExLTI2ICBDaHJpc3RvcGggV2Vpbm1hbm4gIDxjaHJpc3RvcGgudC53ZWlubWFubkBp bnRlbC5jb20+CiAKQEAgLTE5LDI3ICsyMiwyNyBAQCBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGgg V2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KICAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDkgZGVsZXRpb25zKC0pCiAKIGRpZmYgLS1naXQgYS9nZGIvZXZh bC5jIGIvZ2RiL2V2YWwuYwotaW5kZXggYzlmMzI1Zi4uMTY0ZDdhYiAxMDA2NDQKK2luZGV4IDM1 ODE1YTQuLjVjMjBmZWUgMTAwNjQ0CiAtLS0gYS9nZGIvZXZhbC5jCiArKysgYi9nZGIvZXZhbC5j Ci1AQCAtMjAzNCwxNiArMjAzNCw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTIwMzUsMTYgKzIwMzUsOCBAQCBldmFsdWF0ZV9zdWJl eHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAgICAgICBzd2l0Y2ggKGNv ZGUpCiAgCXsKICAJY2FzZSBUWVBFX0NPREVfQVJSQVk6CiAtCSAgcmV0dXJuIHZhbHVlX2Y5MF9z dWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwogLQogIAljYXNlIFRZUEVf Q09ERV9TVFJJTkc6Ci0tCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JB TkdFKQorLQkgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQogLQkgICAg cmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIDEsIG5vc2lkZSk7CiAt CSAgZWxzZQogLQkgICAgewogLQkgICAgICBhcmcyID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29l cmNpb24gKGV4cCwgcG9zLCBub3NpZGUpOwogLQkgICAgICByZXR1cm4gdmFsdWVfc3Vic2NyaXB0 IChhcmcxLCB2YWx1ZV9hc19sb25nIChhcmcyKSk7CiAtCSAgICB9Ci0rCSAgcmV0dXJuICB2YWx1 ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBuYXJncywgbm9zaWRlKTsKKysJICByZXR1 cm4gdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbmFyZ3MsIG5vc2lkZSk7CiAg CiAgCWNhc2UgVFlQRV9DT0RFX1BUUjoKICAJY2FzZSBUWVBFX0NPREVfRlVOQzoKIC0tIAotMi41 LjAKKzIuNS41CiAKCmRpZmYgLS1naXQgYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtM29mNi5w YXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCmluZGV4IDUwYTY1ODIu LjRlNGRlN2QgMTAwNjQ0Ci0tLSBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNo CisrKyBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCkBAIC0xLDcgKzEsMTAg QEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTAyL21zZzAwODQ1 Lmh0bWwKLVN1YmplY3Q6IFtQQVRDSCB2MiAzLzZdIGZvcnRyYW46IGNoYW5nZSBzdWJyYW5nZSBl bnVtIHRvIGJpdCBmaWVsZAorUkU6IFtwaW5nXSBbUEFUQ0ggdjIgMC82XSBmb3J0cmFuOiBtdWx0 aS1kaW1lbnNpb25hbCBzdWJhcnJheXMgd2l0aCBzdHJpZGVzCitodHRwczovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAwMDkuaHRtbAogCitGcm9tIDA1OGVkOWU1 NWRiNzIyNDRmZTFjNTM0NmExMWZhNjdlZmY2MWQzMTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CiBGcm9tOiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNv bT4KK0RhdGU6IE1vbiwgMjMgTm92IDIwMTUgMTA6MzE6NDQgKzAxMDAKK1N1YmplY3Q6IFtQQVRD SCAzLzZdIGZvcnRyYW46IGNoYW5nZSBzdWJyYW5nZSBlbnVtIHRvIGJpdCBmaWVsZAogCiBDaGFu Z2UgRm9ydHJhbiBzdWJyYW5nZSBlbnVtIGZvciBzdWJyYW5nZSBleHByZXNzaW9ucyB0bwogcmVw cmVzZW50IGEgYml0ZmllbGQgZm9yIGVhc2llciBtYW5pcHVsYXRpb24uICBDb25zZXF1ZW50bHkK QEAgLTEyLDMxICsxNSw0MSBAQCBiZWhhdmlvdXIgb2YgR0RCIGlzIHVuY2hhbmdlZC4KIAogCSog ZXZhbC5jICh2YWx1ZV9mOTBfc3ViYXJyYXkpOiBDaGFuZ2UgZXZhbHVhdGlvbiBvZiB0aGUKIAlz dWJhcnJheSBib3VuZGFyaWVzLiAgU2V0IGJvdW5kYXJpZXMgdG8gYmUgZWl0aGVyIHVzZXIKLQlw cm92aWRlZCAoYml0IGluIGY5MF9yYW5nZV90eXBlIHdhcyBzZXQpIG9yIHRha2UgdGhlCi0JZGVm YXVsdCB2YWx1ZSBpZiB0aGUgYm91bmRhcnkgd2FzIG5vdCBwcm92aWRlZCBieSB0aGUgdXNlci4K Kwlwcm92aWRlZCAoYml0IGluIHJhbmdlX3R5cGUgd2FzIHNldCksIG9yIHRha2UgdGhlIGRlZmF1 bHQKKwl2YWx1ZSBpZiB0aGUgYm91bmRhcnkgd2FzIG5vdCBwcm92aWRlZCBieSB0aGUgdXNlci4K KwkqIGV4cHByaW50LmMgKHByaW50X3N1YmV4cF9zdGFuZGFyZCk6IEFsdGVyIGJvdW5kYXJ5IGNv bS0KKwlwdXRhdGlvbnMgdG8gdXNlIHVwZGF0ZWQgcmFuZ2VfdHlwZSBlbnVtLgorCSogZXhwcHJp bnQuaCAoZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCk6IERpdG8uCisJKiBleHByZXNzaW9uLmgg KHJhbmdlX3R5cGUpOiBDaGFuZ2UgdGhlIGVudW0gdG8gdXNlIGJpdAorCXZhbHVlcyBmb3IgZWFj aCBib3VuZGFyeSwgaWYgc2V0IGJ5IHRoZSB1c2VyLgogCSogZi1leHAueSAoc3VicmFuZ2UpOiBD aGFuZ2UgcnVsZXMgZm9yIHN1YnJhbmdlIGV4cHJlc3Npb25zCiAJdG8gd3JpdGUgdGhlIHJlbGV2 YW50IGJpdCBzZXF1ZW5jZSBvbnRvIHRoZSBlbHQgc3RhY2suCi0JKiBmLWxhbmcuaCAoZjkwX3Jh bmdlX3R5cGUpOiBDaGFuZ2UgdGhlIGVudW0gdG8gdXNlIGJpdAotCXZhbHVlcyBmb3IgZWFjaCBi b3VuZGFyeSwgaWYgc2V0IGJ5IHRoZSB1c2VyLgotCSogcGFyc2UuYyAob3BlcmF0b3JfbGVuZ3Ro X3N0YW5kYXJkKTogSW4gY2FzZSBvZgotCU9QX0Y5MF9SQU5HRSBjaGFuZ2UgdGhlIGNhbGN1bGF0 aW9uIG9mIHRoZSBudW1iZXIgb2YKLQlhcmd1bWVudHMgb24gdGhlIGVsdCBzdGFjaywgZGVwZW5k aW5nIG9uIHRoZSBudW1iZXIgb2YKLQlib3VuZGFyaWVzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLgor CSogcGFyc2UuYyAob3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkKTogSW4gY2FzZSBvZiBPUF9SQU5H RQorCWNoYW5nZSB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIG51bWJlciBvZglhcmd1bWVudHMgb24g dGhlCisJZWx0IHN0YWNrLCBkZXBlbmRpbmcgb24gdGhlIG51bWJlciBvZiBib3VuZGFyaWVzIHBy b3ZpZGVkCisJYnkgdGhlIHVzZXIuCisJKiBydXN0LWV4cC55IChjb252ZXJ0X2FzdF90b19leHBy ZXNzaW9uKTogTW9kaWZ5IGNhbGN1bGEtCisJdGlvbiBvZiBzdWJzY3JpcHQgZWxlbWVudHMgdG8g dXNlIGFsdGVyZWQgcmFuZ2VfdHlwZS4KKwkqIHJ1c3QtbGFuZy5jIChydXN0X3JhbmdlKTogRGl0 by4KKwkqIHJ1c3QtbGFuZy5jIChydXN0X3N1YnNjcmlwdCk6IERpdG8uCiAKIAogU2lnbmVkLW9m Zi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+ CiAtLS0KLSBnZGIvZXZhbC5jICAgfCAxNCArKysrKystLS0tLS0tLQotIGdkYi9mLWV4cC55ICB8 IDExICsrKysrKy0tLS0tCi0gZ2RiL2YtbGFuZy5oIHwgIDYgKystLS0tCi0gZ2RiL3BhcnNlLmMg IHwgMjEgKysrKysrKystLS0tLS0tLS0tLS0tCi0gNCBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRp b25zKCspLCAzMCBkZWxldGlvbnMoLSkKKyBnZGIvZXZhbC5jICAgICAgIHwgMTQgKysrKysrLS0t LS0tLS0KKyBnZGIvZXhwcHJpbnQuYyAgIHwgMjAgKysrKysrKystLS0tLS0tLS0tLS0KKyBnZGIv ZXhwcmVzc2lvbi5oIHwgMTUgKysrKysrLS0tLS0tLS0tCisgZ2RiL2YtZXhwLnkgICAgICB8IDEx ICsrKysrKy0tLS0tCisgZ2RiL3BhcnNlLmMgICAgICB8IDIxICsrKysrKysrLS0tLS0tLS0tLS0t LQorIGdkYi9ydXN0LWV4cC55ICAgfCAxMiArKystLS0tLS0tLS0KKyBnZGIvcnVzdC1sYW5nLmMg IHwgMTcgKysrKysrKystLS0tLS0tLS0KKyA3IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMo KyksIDY1IGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFs LmMKLWluZGV4IDE2NGQ3YWIuLjliOGIwNTEgMTAwNjQ0CitpbmRleCA1YzIwZmVlLi40NGU4NjAw IDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwotQEAgLTQ4MCwxMiAr NDgwLDEyIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwKK0BAIC00ODIsMTIgKzQ4MiwxMiBAQCB2YWx1ZV9mOTBfc3ViYXJy YXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgCSAgLyog SWYgYSBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIHRoZSBiaXQgaGFzIGJl ZW4KICAJICAgICBzZXQgYW5kIHdlIGNhbiBhc3NpZ24gdGhlIHZhbHVlIGZyb20gdGhlIGVsdCBz dGFjay4gIFNhbWUgZm9yCiAgCSAgICAgdXBwZXIgYm91bmQuICAqLwpAQCAtNTMsNyArNjYsNyBA QCBpbmRleCAxNjRkN2FiLi45YjhiMDUxIDEwMDY0NAogIAkgICAgcmFuZ2UtPmhpZ2ggPSB2YWx1 ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLAogIAkJCQkJCQkgIHBv cywgbm9zaWRlKSk7CiAgCX0KLUBAIC01MjYsMTIgKzUyNiwxMCBAQCB2YWx1ZV9mOTBfc3ViYXJy YXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtNTI4 LDEyICs1MjgsMTAgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAogIAkgICAgLyogSWYgbm8gbG93ZXIgYm91bmQgd2Fz IHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB3ZSB0YWtlIHRoZQogIAkgICAgICAgZGVmYXVsdCBib3Vu ZGFyeS4gIFNhbWUgZm9yIHRoZSBoaWdoIGJvdW5kLiAgKi8KQEAgLTY4LDcwICs4MSwxMzUgQEAg aW5kZXggMTY0ZDdhYi4uOWI4YjA1MSAxMDA2NDQKICAJICAgICAgcmFuZ2UtPmhpZ2ggPSBUWVBF X0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpOwogIAogIAkgICAgLyogQm90aCB1c2VyIHByb3ZpZGVk IGxvdyBhbmQgaGlnaCBib3VuZCBoYXZlIHRvIGJlIGluc2lkZSB0aGUKK2RpZmYgLS1naXQgYS9n ZGIvZXhwcHJpbnQuYyBiL2dkYi9leHBwcmludC5jCitpbmRleCBjMzdlY2IwLi4yMTRkNThlIDEw MDY0NAorLS0tIGEvZ2RiL2V4cHByaW50LmMKKysrKyBiL2dkYi9leHBwcmludC5jCitAQCAtNTY4 LDEyICs1NjgsMTAgQEAgcHJpbnRfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLCBpbnQgKnBvcywKKyAJKnBvcyArPSAyOworIAorIAlmcHV0c19maWx0ZXJlZCAoIlJBTkdF KCIsIHN0cmVhbSk7CistCWlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVAorLQkg ICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlmICgocmFuZ2VfdHlw ZSAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQorIAkgIHByaW50 X3N1YmV4cCAoZXhwLCBwb3MsIHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7CisgCWZwdXRzX2Zp bHRlcmVkICgiLi4iLCBzdHJlYW0pOworLQlpZiAocmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVG QVVMVAorLQkgICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlmICgo cmFuZ2VfdHlwZSAmIFNVQkFSUkFZX0hJR0hfQk9VTkQpID09IFNVQkFSUkFZX0hJR0hfQk9VTkQp CisgCSAgcHJpbnRfc3ViZXhwIChleHAsIHBvcywgc3RyZWFtLCBQUkVDX0FCT1ZFX0NPTU1BKTsK KyAJZnB1dHNfZmlsdGVyZWQgKCIpIiwgc3RyZWFtKTsKKyAJcmV0dXJuOworQEAgLTEwNTUsMTYg KzEwNTMsMTYgQEAgZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwKKyAKKyAJc3dpdGNoIChyYW5nZV90eXBlKQorIAkgIHsKKy0JICBjYXNlIEJPVEhfQk9V TkRfREVGQVVMVDoKKysJICBjYXNlIFNVQkFSUkFZX05PTkVfQk9VTkQ6CisgCSAgICBmcHV0c19m aWx0ZXJlZCAoIlJhbmdlICcuLiciLCBzdHJlYW0pOworIAkgICAgYnJlYWs7CistCSAgY2FzZSBM T1dfQk9VTkRfREVGQVVMVDoKKysJICBjYXNlIFNVQkFSUkFZX0hJR0hfQk9VTkQ6CisgCSAgICBm cHV0c19maWx0ZXJlZCAoIlJhbmdlICcuLkVYUCciLCBzdHJlYW0pOworIAkgICAgYnJlYWs7Cist CSAgY2FzZSBISUdIX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJBWV9MT1dfQk9VTkQ6 CisgCSAgICBmcHV0c19maWx0ZXJlZCAoIlJhbmdlICdFWFAuLiciLCBzdHJlYW0pOworIAkgICAg YnJlYWs7CistCSAgY2FzZSBOT05FX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSAoU1VCQVJSQVlf TE9XX0JPVU5EIHwgU1VCQVJSQVlfSElHSF9CT1VORCk6CisgCSAgICBmcHV0c19maWx0ZXJlZCAo IlJhbmdlICdFWFAuLkVYUCciLCBzdHJlYW0pOworIAkgICAgYnJlYWs7CisgCSAgZGVmYXVsdDoK K0BAIC0xMDcyLDExICsxMDcwLDkgQEAgZHVtcF9zdWJleHBfYm9keV9zdGFuZGFyZCAoc3RydWN0 IGV4cHJlc3Npb24gKmV4cCwKKyAJICAgIGJyZWFrOworIAkgIH0KKyAKKy0JaWYgKHJhbmdlX3R5 cGUgPT0gSElHSF9CT1VORF9ERUZBVUxUCistCSAgICB8fCByYW5nZV90eXBlID09IE5PTkVfQk9V TkRfREVGQVVMVCkKKysJaWYgKChyYW5nZV90eXBlICYgU1VCQVJSQVlfTE9XX0JPVU5EKSA9PSBT VUJBUlJBWV9MT1dfQk9VTkQpCisgCSAgZWx0ID0gZHVtcF9zdWJleHAgKGV4cCwgc3RyZWFtLCBl bHQpOworLQlpZiAocmFuZ2VfdHlwZSA9PSBMT1dfQk9VTkRfREVGQVVMVAorLQkgICAgfHwgcmFu Z2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlmICgocmFuZ2VfdHlwZSAmIFNVQkFS UkFZX0hJR0hfQk9VTkQpID09IFNVQkFSUkFZX0hJR0hfQk9VTkQpCisgCSAgZWx0ID0gZHVtcF9z dWJleHAgKGV4cCwgc3RyZWFtLCBlbHQpOworICAgICAgIH0KKyAgICAgICBicmVhazsKK2RpZmYg LS1naXQgYS9nZGIvZXhwcmVzc2lvbi5oIGIvZ2RiL2V4cHJlc3Npb24uaAoraW5kZXggNDk1MmQ4 NC4uNWE2YjcyMCAxMDA2NDQKKy0tLSBhL2dkYi9leHByZXNzaW9uLmgKKysrKyBiL2dkYi9leHBy ZXNzaW9uLmgKK0BAIC0xNTIsMTcgKzE1MiwxNCBAQCBleHRlcm4gdm9pZCBkdW1wX3Jhd19leHBy ZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLAorIAkJCQkgc3RydWN0IHVpX2ZpbGUgKiwgY2hh ciAqKTsKKyBleHRlcm4gdm9pZCBkdW1wX3ByZWZpeF9leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVz c2lvbiAqLCBzdHJ1Y3QgdWlfZmlsZSAqKTsKKyAKKy0vKiBJbiBhbiBPUF9SQU5HRSBleHByZXNz aW9uLCBlaXRoZXIgYm91bmQgY291bGQgYmUgZW1wdHksIGluZGljYXRpbmcKKy0gICB0aGF0IGl0 cyB2YWx1ZSBpcyBieSBkZWZhdWx0IHRoYXQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYm91bmQgb2Yg dGhlCistICAgYXJyYXkgb3Igc3RyaW5nLiAgU28gd2UgaGF2ZSBmb3VyIHNvcnRzIG9mIHN1YnJh bmdlLiAgVGhpcworLSAgIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkgdGhpcy4gICov CistICAgCisrLyogSW4gYW4gT1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5kIGNhbiBi ZSBwcm92aWRlZCBieSB0aGUgdXNlciwgb3Igbm90LgorKyAgIFRoaXMgZW51bWVyYXRpb24gdHlw ZSBpcyB0byBpZGVudGlmeSB0aGlzLiAgKi8KKysKKyBlbnVtIHJhbmdlX3R5cGUKKyAgIHsKKy0g ICAgQk9USF9CT1VORF9ERUZBVUxULAkJLyogIig6KSIgICovCistICAgIExPV19CT1VORF9ERUZB VUxULAkJLyogIig6aGlnaCkiICAqLworLSAgICBISUdIX0JPVU5EX0RFRkFVTFQsCQkvKiAiKGxv dzopIiAgKi8KKy0gICAgTk9ORV9CT1VORF9ERUZBVUxUCQkvKiAiKGxvdzpoaWdoKSIgICovCisr ICAgIFNVQkFSUkFZX05PTkVfQk9VTkQgPSAweDAsCQkvKiAiKCA6ICkiICAqLworKyAgICBTVUJB UlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8KKysgICAgU1VCQVJSQVlfSElH SF9CT1VORCA9IDB4MgkJLyogIig6aGlnaCkiICAqLworICAgfTsKKyAKKyAjZW5kaWYgLyogIWRl ZmluZWQgKEVYUFJFU1NJT05fSCkgKi8KIGRpZmYgLS1naXQgYS9nZGIvZi1leHAueSBiL2dkYi9m LWV4cC55Ci1pbmRleCA5MzQzYWJiLi5iMTIwNmRlIDEwMDY0NAoraW5kZXggZGMxMzFjMS4uZTJj NTRiNiAxMDA2NDQKIC0tLSBhL2dkYi9mLWV4cC55CiArKysgYi9nZGIvZi1leHAueQotQEAgLTMx NSwyNiArMzE1LDI3IEBAIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAlcHJlYyBBQk9WRV9D T01NQQorQEAgLTI2MCwyNiArMjYwLDI3IEBAIGFyZ2xpc3QJOglhcmdsaXN0ICcsJyBleHAgICAl cHJlYyBBQk9WRV9DT01NQQogIC8qIFRoZXJlIGFyZSBmb3VyIHNvcnRzIG9mIHN1YnJhbmdlIHR5 cGVzIGluIEY5MC4gICovCiAgCiAgc3VicmFuZ2U6CWV4cCAnOicgZXhwCSVwcmVjIEFCT1ZFX0NP TU1BCi0tCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyAK Ky0JCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgCiAtCQkJICB3 cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgTk9ORV9CT1VORF9ERUZBVUxUKTsKLSsJCQl7 IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7CisrCQkJeyB3cml0 ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7CiArCQkJICB3cml0ZV9leHBfZWx0 X2xvbmdjc3QgKHBzdGF0ZSwKICsJCQkJCQkgU1VCQVJSQVlfTE9XX0JPVU5EIHwgU1VCQVJSQVlf SElHSF9CT1VORCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBf UkFOR0UpOyB9CisgCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7 IH0KICAJOwogIAogIHN1YnJhbmdlOglleHAgJzonCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3 cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworIAkJCXsgd3JpdGVf ZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogLQkJCSAgd3JpdGVfZXhwX2VsdF9s b25nY3N0IChwc3RhdGUsIEhJR0hfQk9VTkRfREVGQVVMVCk7CiArCQkJICB3cml0ZV9leHBfZWx0 X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTE9XX0JPVU5EKTsKLSAJCQkgIHdyaXRlX2V4cF9l bHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KKyAJCQkgIHdyaXRlX2V4cF9lbHRf b3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQogIAk7CiAgCiAgc3VicmFuZ2U6CSc6JyBleHAJ JXByZWMgQUJPVkVfQ09NTUEKLSAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9Q X0Y5MF9SQU5HRSk7CisgCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5H RSk7CiAtCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgTE9XX0JPVU5EX0RFRkFV TFQpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0hJR0hf Qk9VTkQpOwotIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdF KTsgfQorIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CiAg CTsKICAKICBzdWJyYW5nZToJJzonCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworIAkJCXsgd3JpdGVfZXhwX2VsdF9v cGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChw c3RhdGUsIEJPVEhfQk9VTkRfREVGQVVMVCk7CiArCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3Qg KHBzdGF0ZSwgMCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBf UkFOR0UpOyB9CisgCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7 IH0KICAJOwogIAotZGlmZiAtLWdpdCBhL2dkYi9mLWxhbmcuaCBiL2dkYi9mLWxhbmcuaAotaW5k ZXggZWVjYTEwNy4uNGQ1NmJmNyAxMDA2NDQKLS0tLSBhL2dkYi9mLWxhbmcuaAotKysrIGIvZ2Ri L2YtbGFuZy5oCi1AQCAtNDQsMTAgKzQ0LDggQEAgZXh0ZXJuIHZvaWQgZl92YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERSLAotICAgIAotIGVu dW0gZjkwX3JhbmdlX3R5cGUKLSAgIHsKLS0gICAgQk9USF9CT1VORF9ERUZBVUxULAkJLyogIig6 KSIgICovCi0tICAgIExPV19CT1VORF9ERUZBVUxULAkJLyogIig6aGlnaCkiICAqLwotLSAgICBI SUdIX0JPVU5EX0RFRkFVTFQsCQkvKiAiKGxvdzopIiAgKi8KLS0gICAgTk9ORV9CT1VORF9ERUZB VUxUCQkvKiAiKGxvdzpoaWdoKSIgICovCi0rICAgIFNVQkFSUkFZX0xPV19CT1VORCA9IDB4MSwJ CS8qICIobG93OikiICAqLwotKyAgICBTVUJBUlJBWV9ISUdIX0JPVU5EID0gMHgyCQkvKiAiKDpo aWdoKSIgICovCi0gICB9OwotIAotIC8qIEEgY29tbW9uIGJsb2NrLiAgKi8KIGRpZmYgLS1naXQg YS9nZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5jCi1pbmRleCA0MTkxZmM2Li5kNTAwMjc5IDEwMDY0 NAoraW5kZXggMmIwMDcwOC4uNmQ1NGE3NyAxMDA2NDQKIC0tLSBhL2dkYi9wYXJzZS5jCiArKysg Yi9nZGIvcGFyc2UuYwogQEAgLTEwMDYsMjIgKzEwMDYsMTcgQEAgb3BlcmF0b3JfbGVuZ3RoX3N0 YW5kYXJkIChjb25zdCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwciwgaW50IGVuZHBvcywKICAKLSAg ICAgY2FzZSBPUF9GOTBfUkFOR0U6CisgICAgIGNhc2UgT1BfUkFOR0U6CiAgICAgICAgb3BsZW4g PSAzOwogKyAgICAgIGFyZ3MgPSAwOwotICAgICAgIHJhbmdlX3R5cGUgPSAoZW51bSBmOTBfcmFu Z2VfdHlwZSkKKyAgICAgICByYW5nZV90eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkKICAJbG9uZ2Vz dF90b19pbnQgKGV4cHItPmVsdHNbZW5kcG9zIC0gMl0ubG9uZ2NvbnN0KTsKICAKIC0gICAgICBz d2l0Y2ggKHJhbmdlX3R5cGUpCkBAIC0xNTcsNiArMjM1LDEwNyBAQCBpbmRleCA0MTkxZmM2Li5k NTAwMjc5IDEwMDY0NAogIAogICAgICAgIGJyZWFrOwogIAorZGlmZiAtLWdpdCBhL2dkYi9ydXN0 LWV4cC55IGIvZ2RiL3J1c3QtZXhwLnkKK2luZGV4IGMxYTg2M2MuLjc2MDkyOWI1IDEwMDY0NAor LS0tIGEvZ2RiL3J1c3QtZXhwLnkKKysrKyBiL2dkYi9ydXN0LWV4cC55CitAQCAtMjQxOCwyMyAr MjQxOCwxNyBAQCBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChzdHJ1Y3QgcGFyc2VyX3N0YXRl ICpzdGF0ZSwKKyAKKyAgICAgY2FzZSBPUF9SQU5HRToKKyAgICAgICB7CistCWVudW0gcmFuZ2Vf dHlwZSBraW5kID0gQk9USF9CT1VORF9ERUZBVUxUOworKwllbnVtIHJhbmdlX3R5cGUga2luZCA9 IFNVQkFSUkFZX05PTkVfQk9VTkQ7CisgCisgCWlmIChvcGVyYXRpb24tPmxlZnQub3AgIT0gTlVM TCkKKyAJICB7CisgCSAgICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChzdGF0ZSwgb3BlcmF0 aW9uLT5sZWZ0Lm9wLCB0b3ApOworLQkgICAga2luZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKKysJ ICAgIGtpbmQgPSBTVUJBUlJBWV9MT1dfQk9VTkQ7CisgCSAgfQorIAlpZiAob3BlcmF0aW9uLT5y aWdodC5vcCAhPSBOVUxMKQorIAkgIHsKKyAJICAgIGNvbnZlcnRfYXN0X3RvX2V4cHJlc3Npb24g KHN0YXRlLCBvcGVyYXRpb24tPnJpZ2h0Lm9wLCB0b3ApOworLQkgICAgaWYgKGtpbmQgPT0gQk9U SF9CT1VORF9ERUZBVUxUKQorLQkgICAgICBraW5kID0gTE9XX0JPVU5EX0RFRkFVTFQ7CistCSAg ICBlbHNlCistCSAgICAgIHsKKy0JCWdkYl9hc3NlcnQgKGtpbmQgPT0gSElHSF9CT1VORF9ERUZB VUxUKTsKKy0JCWtpbmQgPSBOT05FX0JPVU5EX0RFRkFVTFQ7CistCSAgICAgIH0KKysJICAgIGtp bmQgPSAocmFuZ2VfdHlwZSkgKGtpbmQgfCBTVUJBUlJBWV9ISUdIX0JPVU5EKTsKKyAJICB9Cisg CXdyaXRlX2V4cF9lbHRfb3Bjb2RlIChzdGF0ZSwgT1BfUkFOR0UpOworIAl3cml0ZV9leHBfZWx0 X2xvbmdjc3QgKHN0YXRlLCBraW5kKTsKK2RpZmYgLS1naXQgYS9nZGIvcnVzdC1sYW5nLmMgYi9n ZGIvcnVzdC1sYW5nLmMKK2luZGV4IDVkZjk5Y2UuLjhkNTNlMzEgMTAwNjQ0CistLS0gYS9nZGIv cnVzdC1sYW5nLmMKKysrKyBiL2dkYi9ydXN0LWxhbmcuYworQEAgLTExODgsOSArMTE4OCw5IEBA IHJ1c3RfcmFuZ2UgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lk ZSBub3NpZGUpCisgICBraW5kID0gKGVudW0gcmFuZ2VfdHlwZSkgbG9uZ2VzdF90b19pbnQgKGV4 cC0+ZWx0c1sqcG9zICsgMV0ubG9uZ2NvbnN0KTsKKyAgICpwb3MgKz0gMzsKKyAKKy0gIGlmIChr aW5kID09IEhJR0hfQk9VTkRfREVGQVVMVCB8fCBraW5kID09IE5PTkVfQk9VTkRfREVGQVVMVCkK KysgIGlmICgoa2luZCAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5E KQorICAgICBsb3cgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lk ZSk7CistICBpZiAoa2luZCA9PSBMT1dfQk9VTkRfREVGQVVMVCB8fCBraW5kID09IE5PTkVfQk9V TkRfREVGQVVMVCkKKysgIGlmICgoa2luZCAmIFNVQkFSUkFZX0hJR0hfQk9VTkQpID09IFNVQkFS UkFZX0hJR0hfQk9VTkQpCisgICAgIGhpZ2ggPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwg ZXhwLCBwb3MsIG5vc2lkZSk7CisgCisgICBpZiAobm9zaWRlID09IEVWQUxfU0tJUCkKK0BAIC0x Mjc5LDcgKzEyNzksNyBAQCBydXN0X2NvbXB1dGVfcmFuZ2UgKHN0cnVjdCB0eXBlICp0eXBlLCBz dHJ1Y3QgdmFsdWUgKnJhbmdlLAorIAorICAgKmxvdyA9IDA7CisgICAqaGlnaCA9IDA7CistICAq a2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKKysgICpraW5kID0gU1VCQVJSQVlfTk9ORV9CT1VO RDsKKyAKKyAgIGlmIChUWVBFX05GSUVMRFMgKHR5cGUpID09IDApCisgICAgIHJldHVybjsKK0BA IC0xMjg3LDE1ICsxMjg3LDE0IEBAIHJ1c3RfY29tcHV0ZV9yYW5nZSAoc3RydWN0IHR5cGUgKnR5 cGUsIHN0cnVjdCB2YWx1ZSAqcmFuZ2UsCisgICBpID0gMDsKKyAgIGlmIChzdHJjbXAgKFRZUEVf RklFTERfTkFNRSAodHlwZSwgMCksICJzdGFydCIpID09IDApCisgICAgIHsKKy0gICAgICAqa2lu ZCA9IEhJR0hfQk9VTkRfREVGQVVMVDsKKysgICAgICAqa2luZCA9IFNVQkFSUkFZX0xPV19CT1VO RDsKKyAgICAgICAqbG93ID0gdmFsdWVfYXNfbG9uZyAodmFsdWVfZmllbGQgKHJhbmdlLCAwKSk7 CisgICAgICAgKytpOworICAgICB9CisgICBpZiAoVFlQRV9ORklFTERTICh0eXBlKSA+IGkKKyAg ICAgICAmJiBzdHJjbXAgKFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSksICJlbmQiKSA9PSAwKQor ICAgICB7CistICAgICAgKmtpbmQgPSAoKmtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUCistCSAg ICAgICA/IExPV19CT1VORF9ERUZBVUxUIDogTk9ORV9CT1VORF9ERUZBVUxUKTsKKysgICAgICAq a2luZCA9IChyYW5nZV90eXBlKSAoKmtpbmQgfCBTVUJBUlJBWV9ISUdIX0JPVU5EKTsKKyAgICAg ICAqaGlnaCA9IHZhbHVlX2FzX2xvbmcgKHZhbHVlX2ZpZWxkIChyYW5nZSwgaSkpOworICAgICB9 CisgfQorQEAgLTEzMTAsNyArMTMwOSw3IEBAIHJ1c3Rfc3Vic2NyaXB0IChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlLAorICAgc3RydWN0IHR5cGUg KnJoc3R5cGU7CisgICBMT05HRVNUIGxvdywgaGlnaF9ib3VuZDsKKyAgIC8qIEluaXRpYWxpemVk IHRvIGFwcGVhc2UgdGhlIGNvbXBpbGVyLiAgKi8KKy0gIGVudW0gcmFuZ2VfdHlwZSBraW5kID0g Qk9USF9CT1VORF9ERUZBVUxUOworKyAgZW51bSByYW5nZV90eXBlIGtpbmQgPSBTVUJBUlJBWV9O T05FX0JPVU5EOworICAgTE9OR0VTVCBoaWdoID0gMDsKKyAgIGludCB3YW50X3NsaWNlID0gMDsK KyAKK0BAIC0xMzY2LDcgKzEzNjUsNyBAQCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Np b24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9zaWRlIG5vc2lkZSwKKyAJZXJyb3IgKF8oIkNhbm5v dCBzdWJzY3JpcHQgbm9uLWFycmF5IHR5cGUiKSk7CisgCisgICAgICAgaWYgKHdhbnRfc2xpY2UK Ky0JICAmJiAoa2luZCA9PSBCT1RIX0JPVU5EX0RFRkFVTFQgfHwga2luZCA9PSBMT1dfQk9VTkRf REVGQVVMVCkpCisrCSAgJiYgKChraW5kICYgU1VCQVJSQVlfTE9XX0JPVU5EKSAhPSBTVUJBUlJB WV9MT1dfQk9VTkQpKQorIAlsb3cgPSBsb3dfYm91bmQ7CisgICAgICAgaWYgKGxvdyA8IDApCisg CWVycm9yIChfKCJJbmRleCBsZXNzIHRoYW4gemVybyIpKTsKK0BAIC0xMzg0LDcgKzEzODMsNyBA QCBydXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0g bm9zaWRlIG5vc2lkZSwKKyAJICBDT1JFX0FERFIgYWRkcjsKKyAJICBzdHJ1Y3QgdmFsdWUgKmFk ZHJ2YWwsICp0ZW07CisgCistCSAgaWYgKGtpbmQgPT0gQk9USF9CT1VORF9ERUZBVUxUIHx8IGtp bmQgPT0gSElHSF9CT1VORF9ERUZBVUxUKQorKwkgIGlmICgoa2luZCAmIFNVQkFSUkFZX0hJR0hf Qk9VTkQpICE9IFNVQkFSUkFZX0hJR0hfQk9VTkQpCisgCSAgICBoaWdoID0gaGlnaF9ib3VuZDsK KyAJICBpZiAoaGlnaCA8IDApCisgCSAgICBlcnJvciAoXygiSGlnaCBpbmRleCBsZXNzIHRoYW4g emVybyIpKTsKIC0tIAotMi41LjAKKzIuNS41CiAKCmRpZmYgLS1naXQgYS9nZGItZm9ydHJhbi1z dHJpZGUtaW50ZWwtNG9mNi5wYXRjaCBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC00b2Y2LnBh dGNoCmluZGV4IDY1NjNkNzEuLjBlMDk2ZTMgMTAwNjQ0Ci0tLSBhL2dkYi1mb3J0cmFuLXN0cmlk ZS1pbnRlbC00b2Y2LnBhdGNoCisrKyBiL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC00b2Y2LnBh dGNoCkBAIC0xLDcgKzEsMTAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hl cy8yMDE2LTAyL21zZzAwODQyLmh0bWwKLVN1YmplY3Q6IFtQQVRDSCB2MiA0LzZdIGZvcnRyYW46 IGVuYWJsZSBwYXJzaW5nIG9mIHN0cmlkZSBwYXJhbWV0ZXIgZm9yIHN1YnJhbmdlcworUkU6IFtw aW5nXSBbUEFUQ0ggdjIgMC82XSBmb3J0cmFuOiBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMg d2l0aCBzdHJpZGVzCitodHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYt MDcvbXNnMDAwMDkuaHRtbAogCitGcm9tIDMzOGU0Yzg2MGFkMjA1ODk2YjRhOTVjNzlmNTQ0NzBj NzllZWIzNDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBGcm9tOiBDaHJpc3RvcGggV2Vpbm1h bm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4KK0RhdGU6IFdlZCwgMSBKdW4gMjAx NiAxNToxMToyNCArMDIwMAorU3ViamVjdDogW1BBVENIIDQvNl0gZm9ydHJhbjogZW5hYmxlIHBh cnNpbmcgb2Ygc3RyaWRlIHBhcmFtZXRlciBmb3Igc3VicmFuZ2VzCiAKIEFsbG93IHRoZSB1c2Vy IHRvIHByb3ZpZGUgYSBzdHJpZGUgcGFyYW1ldGVyIGZvciBGb3J0cmFuCiBzdWJhcnJheXMuICBU aGUgc3RyaWRlIHBhcmFtZXRlciBjYW4gYmUgYW55IGludGVnZXIgZXhjZXB0CkBAIC0xMSwxMCAr MTQsMTAgQEAgc3ViYXJyYXlzLiAgVGhlIHN0cmlkZSBwYXJhbWV0ZXIgY2FuIGJlIGFueSBpbnRl Z2VyIGV4Y2VwdAogCiAJKiBldmFsLmMgKHZhbHVlX2Y5MF9zdWJhcnJheSk6IEFkZCBleHByZXNz aW9uIGV2YWx1YXRpb24KIAlmb3IgYSBzdHJpZGUgcGFyYW1ldGVyIGluIGEgRm9ydHJhbiByYW5n ZSBleHByZXNzaW9uLgorCSogZXhwcmVzc2lvbi5oIChyYW5nZV90eXBlKTogQWRkIGZpZWxkIHRv IGVudW0gdG8gc2hvdyB3aGVuCisJYSBzdHJpZGUgdmFsdWUgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1 c2VyLgogCSogZi1leHAueTogQWRkIHlhY2MgcnVsZXMgZm9yIHdyaXRpbmcgaW5mbyBvbiB0aGUg ZWx0IHN0YWNrCiAJd2hlbiB0aGUgdXNlciBwcm92aWRlZCBhIHN0cmlkZSBhcmd1bWVudC4KLQkq IGYtbGFuZy5oIChGOTBfUkFOR0UpOiBBZGQgZmllbGQgdG8gZW51bSB0byBzaG93IHdoZW4gYQot CXN0cmlkZSB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIuCiAJKiBwYXJzZS5jIChvcGVyYXRvcl9s ZW5ndGhfc3RhbmRhcmQpOiBDaGVjayBpZiBhIHN0cmlkZQogCXZhbHVlIHdhcyBwcm92aWRlZCwg YW5kIGluY3JlbWVudCBhcmd1bWVudCBjb3VudGVyCiAJYWNjb3JkaW5nbHkuCkBAIC0yMiwyNiAr MjUsMjcgQEAgc3ViYXJyYXlzLiAgVGhlIHN0cmlkZSBwYXJhbWV0ZXIgY2FuIGJlIGFueSBpbnRl Z2VyIGV4Y2VwdAogCiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9w aC50LndlaW5tYW5uQGludGVsLmNvbT4KIC0tLQotIGdkYi9ldmFsLmMgICB8IDEwICsrKysrKysr Ky0KLSBnZGIvZi1leHAueSAgfCAzMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0K LSBnZGIvZi1sYW5nLmggfCAgNSArKystLQotIGdkYi9wYXJzZS5jICB8ICAzICsrKwotIDQgZmls ZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKyBnZGIvZXZhbC5j ICAgICAgIHwgMTEgKysrKysrKysrKy0KKyBnZGIvZXhwcmVzc2lvbi5oIHwgIDcgKysrKystLQor IGdkYi9mLWV4cC55ICAgICAgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCisg Z2RiL3BhcnNlLmMgICAgICB8ICAzICsrKworIGdkYi92YWxvcHMuYyAgICAgfCAgNCArKy0tCisg NSBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogCiBkaWZm IC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDliOGIwNTEuLjMwOGFkYTMg MTAwNjQ0CitpbmRleCA0NGU4NjAwLi5iNWFhZjFjIDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwog KysrIGIvZ2RiL2V2YWwuYwotQEAgLTQzOCw3ICs0MzgsNyBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkg KHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gICAgICAgc3Ry dWN0IHN1YnNjcmlwdF9yYW5nZQotICAgICAgIHsKLSAgICAgICAgIGVudW0gZjkwX3JhbmdlX3R5 cGUgZjkwX3JhbmdlX3R5cGU7Ci0tICAgICAgICBMT05HRVNUIGxvdywgaGlnaDsKLSsgICAgICAg IExPTkdFU1QgbG93LCBoaWdoLCBzdHJpZGU7Ci0gICAgICAgfQotICAgICAgIHJhbmdlOwotICAg ICAgIExPTkdFU1QgbnVtYmVyOwotQEAgLTQ4OCw2ICs0ODgsMTQgQEAgdmFsdWVfZjkwX3N1YmFy cmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTQx OSw3ICs0MTksNyBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0 cnVjdCBleHByZXNzaW9uICpleHAsCisgICB0eXBlZGVmIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UK KyAgIHsKKyAgICAgZW51bSByYW5nZV90eXBlIGY5MF9yYW5nZV90eXBlOworLSAgICBMT05HRVNU IGxvdywgaGlnaDsKKysgICAgTE9OR0VTVCBsb3csIGhpZ2gsIHN0cmlkZTsKKyAgIH0gc3Vic2Ny aXB0X3JhbmdlOworIAorICAgdHlwZWRlZiBlbnVtIHN1YnNjcmlwdF9raW5kCitAQCAtNDkwLDYg KzQ5MCwxNSBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVj dCBleHByZXNzaW9uICpleHAsCiAgCSAgICAgID09IFNVQkFSUkFZX0hJR0hfQk9VTkQpCiAgCSAg ICByYW5nZS0+aGlnaCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBF LCBleHAsCiAgCQkJCQkJCSAgcG9zLCBub3NpZGUpKTsKQEAgLTQ5LDgyICs1Myw4MSBAQCBpbmRl eCA5YjhiMDUxLi4zMDhhZGEzIDEwMDY0NAogKwkgIC8qIEFzc2lnbiB0aGUgdXNlcidzIHN0cmlk ZSB2YWx1ZSBpZiBwcm92aWRlZC4gICovCiArCSAgaWYgKChyYW5nZS0+ZjkwX3JhbmdlX3R5cGUg JiBTVUJBUlJBWV9TVFJJREUpID09IFNVQkFSUkFZX1NUUklERSkKICsJICAgIHJhbmdlLT5zdHJp ZGUgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLAotKwkJ CQkJCQkgICAgcG9zLCBub3NpZGUpKTsKKysJCQkJCQkJICAgICBwb3MsIG5vc2lkZSkpOworKwog KwkgIC8qIEFzc2lnbiB0aGUgZGVmYXVsdCBzdHJpZGUgdmFsdWUgJzEnLiAgKi8KICsJICBlbHNl CiArCSAgICByYW5nZS0+c3RyaWRlID0gMTsKICAJfQogICAgICAgIC8qIFVzZXIgaW5wdXQgaXMg YW4gaW5kZXguICBFLmcuOiAicCBhcnJ5KDUpIi4gICovCiAgICAgICAgZWxzZQorZGlmZiAtLWdp dCBhL2dkYi9leHByZXNzaW9uLmggYi9nZGIvZXhwcmVzc2lvbi5oCitpbmRleCA1YTZiNzIwLi4z NGNhNTRiIDEwMDY0NAorLS0tIGEvZ2RiL2V4cHJlc3Npb24uaAorKysrIGIvZ2RiL2V4cHJlc3Np b24uaAorQEAgLTE1MywxMyArMTUzLDE2IEBAIGV4dGVybiB2b2lkIGR1bXBfcmF3X2V4cHJlc3Np b24gKHN0cnVjdCBleHByZXNzaW9uICosCisgZXh0ZXJuIHZvaWQgZHVtcF9wcmVmaXhfZXhwcmVz c2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7CisgCisgLyogSW4g YW4gT1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5kIGNhbiBiZSBwcm92aWRlZCBieSB0 aGUgdXNlciwgb3Igbm90LgorLSAgIFRoaXMgZW51bWVyYXRpb24gdHlwZSBpcyB0byBpZGVudGlm eSB0aGlzLiAgKi8KKysgICBJbiBhZGRpdGlvbiB0byB0aGlzLCB0aGUgdXNlciBjYW4gYWxzbyBz cGVjaWZ5IGEgc3RyaWRlIHZhbHVlIHRvIGluZGljYXRlZAorKyAgIG9ubHkgY2VydGFpbiBlbGVt ZW50cyBvZiB0aGUgYXJyYXkuICBUaGlzIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkK KysgICB0aGlzLiAgKi8KKyAKKyBlbnVtIHJhbmdlX3R5cGUKKyAgIHsKKyAgICAgU1VCQVJSQVlf Tk9ORV9CT1VORCA9IDB4MCwJCS8qICIoIDogKSIgICovCisgICAgIFNVQkFSUkFZX0xPV19CT1VO RCA9IDB4MSwJCS8qICIobG93OikiICAqLworLSAgICBTVUJBUlJBWV9ISUdIX0JPVU5EID0gMHgy CQkvKiAiKDpoaWdoKSIgICovCisrICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIsCQkvKiAi KDpoaWdoKSIgICovCisrICAgIFNVQkFSUkFZX1NUUklERSA9IDB4NAkJLyogIig6OnN0cmlkZSki ICAqLworICAgfTsKKyAKKyAjZW5kaWYgLyogIWRlZmluZWQgKEVYUFJFU1NJT05fSCkgKi8KIGRp ZmYgLS1naXQgYS9nZGIvZi1leHAueSBiL2dkYi9mLWV4cC55Ci1pbmRleCBiMTIwNmRlLi41MTUx ZmVlIDEwMDY0NAoraW5kZXggZTJjNTRiNi4uNzFmMTgyMyAxMDA2NDQKIC0tLSBhL2dkYi9mLWV4 cC55CiArKysgYi9nZGIvZi1leHAueQotQEAgLTMxNiw4ICszMTYsOCBAQCBhcmdsaXN0CToJYXJn bGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKLSAKLSBzdWJyYW5nZToJZXhwICc6JyBl eHAJJXByZWMgQUJPVkVfQ09NTUEKLSAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUs IE9QX0Y5MF9SQU5HRSk7Ci0tCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwKLS0J CQkJCQkgU1VCQVJSQVlfTE9XX0JPVU5EIHwgU1VCQVJSQVlfSElHSF9CT1VORCk7Ci0rCQkJICB3 cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTE9XX0JPVU5ECi0rCQkJCQkJ IHwgU1VCQVJSQVlfSElHSF9CT1VORCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0 YXRlLCBPUF9GOTBfUkFOR0UpOyB9Ci0gCTsKLSAKLUBAIC0zMzksNiArMzM5LDM1IEBAIHN1YnJh bmdlOgknOicJJXByZWMgQUJPVkVfQ09NTUEKLSAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChw c3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KLSAJOworQEAgLTI4MCw3ICsyODAsMzYgQEAgc3VicmFu Z2U6CSc6JyBleHAJJXByZWMgQUJPVkVfQ09NTUEKICAKKyBzdWJyYW5nZToJJzonCSVwcmVjIEFC T1ZFX0NPTU1BCisgCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7 CistCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgMCk7CisrCQkJICB3cml0ZV9l eHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTk9ORV9CT1VORCk7CisrCQkJICB3cml0 ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KKysJOworKwogKy8qIEVhY2gg c3VicmFuZ2UgdHlwZSBjYW4gaGF2ZSBhIHN0cmlkZSBhcmd1bWVudC4gICovCiArc3VicmFuZ2U6 CWV4cCAnOicgZXhwICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHdyaXRlX2V4cF9l bHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7CisrCQkJeyB3cml0ZV9leHBfZWx0X29w Y29kZSAocHN0YXRlLCBPUF9SQU5HRSk7CiArCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBz dGF0ZSwgU1VCQVJSQVlfTE9XX0JPVU5ECiArCQkJCQkJIHwgU1VCQVJSQVlfSElHSF9CT1VORAog KwkJCQkJCSB8IFNVQkFSUkFZX1NUUklERSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAo cHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0 YXRlLCBPUF9SQU5HRSk7IH0KICsJOwogKwogK3N1YnJhbmdlOglleHAgJzonICc6JyBleHAgJXBy ZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5 MF9SQU5HRSk7CisrCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7 CiArCQkJICB3cml0ZV9leHBfZWx0X2xvbmdjc3QgKHBzdGF0ZSwgU1VCQVJSQVlfTE9XX0JPVU5E CiArCQkJCQkJIHwgU1VCQVJSQVlfU1RSSURFKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2Rl IChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KKysJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChw c3RhdGUsIE9QX1JBTkdFKTsgfQogKwk7CiArCiArc3VicmFuZ2U6CSc6JyBleHAgJzonIGV4cCAl cHJlYyBBQk9WRV9DT01NQQotKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf RjkwX1JBTkdFKTsKKysJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdF KTsKICsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBTVUJBUlJBWV9ISUdIX0JP VU5ECiArCQkJCQkJIHwgU1VCQVJSQVlfU1RSSURFKTsKLSsJCQkgIHdyaXRlX2V4cF9lbHRfb3Bj b2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KKysJCQkgIHdyaXRlX2V4cF9lbHRfb3Bjb2Rl IChwc3RhdGUsIE9QX1JBTkdFKTsgfQogKwk7CiArCiArc3VicmFuZ2U6CSc6JyAnOicgZXhwICVw cmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9G OTBfUkFOR0UpOworKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0Up OwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX1NUUklERSk7 Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9Ci0r CTsKLSsKLSBjb21wbGV4bnVtOiAgICAgZXhwICcsJyBleHAgCi0gICAgICAgICAgICAgICAgIAl7 IH0gICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgOwotZGlmZiAtLWdpdCBhL2dk Yi9mLWxhbmcuaCBiL2dkYi9mLWxhbmcuaAotaW5kZXggNGQ1NmJmNy4uMGFkNTdhZiAxMDA2NDQK LS0tLSBhL2dkYi9mLWxhbmcuaAotKysrIGIvZ2RiL2YtbGFuZy5oCi1AQCAtNDQsOCArNDQsOSBA QCBleHRlcm4gdm9pZCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUg KiwgaW50LCBDT1JFX0FERFIsCi0gICAgCi0gZW51bSBmOTBfcmFuZ2VfdHlwZQotICAgewotLSAg ICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8KLS0gICAgU1VCQVJS QVlfSElHSF9CT1VORCA9IDB4MgkJLyogIig6aGlnaCkiICAqLwotKyAgICBTVUJBUlJBWV9MT1df Qk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiBvciAiKGxvdzo6KSIgKi8KLSsgICAgU1VCQVJSQVlf SElHSF9CT1VORCA9IDB4MiwJCS8qICIoOmhpZ2gpIiBvciAiKDpoaWdoOikiICAqLwotKyAgICBT VUJBUlJBWV9TVFJJREUgPSAweDQJCS8qICIoOjpzdHJpZGUpIiAgKi8KLSAgIH07CisgCQkJICB3 cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KKyAJOwogIAotIC8qIEEg Y29tbW9uIGJsb2NrLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvcGFyc2UuYyBiL2dkYi9wYXJzZS5j Ci1pbmRleCBkNTAwMjc5Li4wNzI0OGMzIDEwMDY0NAoraW5kZXggNmQ1NGE3Ny4uOTkyYWY4NyAx MDA2NDQKIC0tLSBhL2dkYi9wYXJzZS5jCiArKysgYi9nZGIvcGFyc2UuYwogQEAgLTEwMTgsNiAr MTAxOCw5IEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Np b24gKmV4cHIsIGludCBlbmRwb3MsCkBAIC0xMzcsNiArMTQwLDI4IEBAIGluZGV4IGQ1MDAyNzku LjA3MjQ4YzMgMTAwNjQ0CiAgICAgICAgYnJlYWs7CiAgCiAgICAgIGRlZmF1bHQ6CitkaWZmIC0t Z2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCitpbmRleCA4MTdhNGNmLi5mYmM3ZGNi IDEwMDY0NAorLS0tIGEvZ2RiL3ZhbG9wcy5jCisrKysgYi9nZGIvdmFsb3BzLmMKK0BAIC0zODM0 LDcgKzM4MzQsNyBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93 Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQorICAgaWYgKGNhbGxfY291bnQgPT0g MSkKKyAgICAgeworICAgICAgIHJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5 cGUpOworLSAgICAgIHNsaWNlX3JhbmdlX3NpemUgPSBlbGVtX2NvdW50OworKyAgICAgIHNsaWNl X3JhbmdlX3NpemUgPSBhcnlfbG93X2JvdW5kICsgZWxlbV9jb3VudCAtIDE7CisgCisgICAgICAg LyogQ2hlY2sgaWYgdGhlIGFycmF5IGJvdW5kcyBhcmUgdmFsaWQuICAqLworICAgICAgIGlmIChn ZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmYXJ5X2xvd19ib3VuZCwgJmFyeV9oaWdo X2JvdW5kKSA8IDApCitAQCAtMzg0Niw3ICszODQ2LDcgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0 IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkK KyAgIGVsc2UKKyAgICAgeworICAgICAgIHJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUgKFRZ UEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKKy0gICAgICBzbGljZV9yYW5nZV9zaXplID0g KGFyeV9sb3dfYm91bmQgKyByb3dfY291bnQgLSAxKSAqIChlbGVtX2NvdW50KTsKKysgICAgICBz bGljZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIChyb3dfY291bnQgKiBlbGVtX2NvdW50 KSAtIDE7CisgICAgICAgYXJ5X2xvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5EIChyYW5nZV90eXBl KTsKKyAgICAgfQorIAogLS0gCi0yLjUuMAorMi41LjUKIAoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0 cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTVv ZjYucGF0Y2gKaW5kZXggOWE3ZGJhMy4uMmI5YTY2MiAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRyYW4t c3RyaWRlLWludGVsLTVvZjYucGF0Y2gKKysrIGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTVv ZjYucGF0Y2gKQEAgLTEsOSArMSwxMiBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1w YXRjaGVzLzIwMTYtMDIvbXNnMDA4NDQuaHRtbAotU3ViamVjdDogW1BBVENIIHYyIDUvNl0gZm9y dHJhbjogY2FsY3VsYXRlIHN1YmFycmF5IHdpdGggc3RyaWRlIHZhbHVlcy4KK1JFOiBbcGluZ10g W1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGgg c3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21z ZzAwMDA5Lmh0bWwKIAorRnJvbSAxMTg5MDk4YzNjYWNjMmVlNjkwMjFkZTFhODNhZDMzMjg4MjFk NzU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxj aHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBXZWQsIDEgSnVuIDIwMTYgMTU6 MDQ6MDEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA1LzZdIGZvcnRyYW46IGNhbGN1bGF0ZSBlbGVt ZW50cyBvZiBhIHN1YmFycmF5IHVzaW5nIGEKKyBwcm92aWRlZCBzdHJpZGUgdmFsdWUKIAotQ2Fs Y3VsYXRlIGVsZW1lbnRzIG9mIGEgc3ViYXJyYXkgdXNpbmcgYSBwcm92aWRlZCBzdHJpZGUgdmFs dWUKIFRoZSBzdHJpZGUgdmFsdWUgY2FuIGJlIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgaW50ZWdl ciwgYnV0IG1heQogbm90IGJlIHplcm8uICBJZiBubyBzdHJpZGUgaXMgcHJvdmlkZWQsIHVzZSB0 aGUgZGVmYXVsdCB2YWx1ZQogMSB0byBwcmludCBhbGwgZWxlbWVudHMgaW5zaWRlIHRoZSByYW5n ZS4KQEAgLTMyLDQ0ICszNSwyNSBAQCAkMyA9ICgxLCAzLCA1LCA3LCA5KQogCiBTaWduZWQtb2Zm LWJ5OiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4K IC0tLQotIGdkYi9ldmFsLmMgICB8IDExMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQotIGdkYi92YWxvcHMuYyB8ICA4NyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCisgZ2RiL2V2YWwuYyAgIHwg MTAyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tCisgZ2RiL3ZhbG9wcy5jIHwgIDgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLQogIGdkYi92YWx1ZS5oICB8ICAgMiArLQotIDMgZmlsZXMgY2hh bmdlZCwgMTUyIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQorIDMgZmlsZXMgY2hhbmdl ZCwgMTQ1IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQogCiBkaWZmIC0tZ2l0IGEvZ2Ri L2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CitpbmRl eCBiNWFhZjFjLi4xZjI3YjZmIDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2 YWwuYwotQEAgLTQzNyw4ICs0MzcsOCBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1 ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gICAgIHsKLSAgICAgICBzdHJ1Y3Qg c3Vic2NyaXB0X3JhbmdlCi0gICAgICAgewotLSAgICAgICAgZW51bSBmOTBfcmFuZ2VfdHlwZSBm OTBfcmFuZ2VfdHlwZTsKLS0gICAgICAgIExPTkdFU1QgbG93LCBoaWdoLCBzdHJpZGU7Ci0rCWVu dW0gZjkwX3JhbmdlX3R5cGUgZjkwX3JhbmdlX3R5cGU7Ci0rCUxPTkdFU1QgbG93LCBoaWdoLCBz dHJpZGU7Ci0gICAgICAgfQotICAgICAgIHJhbmdlOwotICAgICAgIExPTkdFU1QgbnVtYmVyOwot QEAgLTQ3NSw3ICs0NzUsNyBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJy YXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCi0gCSAgcmFuZ2UgPSAmaW5kZXgtPnJhbmdlOwor QEAgLTQ3Nyw3ICs0NzcsNyBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJy YXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgCSAgcmFuZ2UgPSAmaW5kZXgtPlUucmFuZ2U7 CiAgCiAgCSAgKnBvcyArPSAzOwotLQkgIHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9IGxvbmdlc3Rf dG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7Ci0rCSAgcmFuZ2UtPmY5MF9yYW5nZV90 eXBlID0gZXhwLT5lbHRzW3BjXS5sb25nY29uc3Q7CistCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBl ID0gKGVudW0gcmFuZ2VfdHlwZSkgbG9uZ2VzdF90b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2Nv bnN0KTsKKysJICByYW5nZS0+ZjkwX3JhbmdlX3R5cGUgPSAoZW51bSByYW5nZV90eXBlKSBleHAt PmVsdHNbcGNdLmxvbmdjb25zdDsKICAKICAJICAvKiBJZiBhIGxvd2VyIGJvdW5kIHdhcyBwcm92 aWRlZCBieSB0aGUgdXNlciwgdGhlIGJpdCBoYXMgYmVlbgogIAkgICAgIHNldCBhbmQgd2UgY2Fu IGFzc2lnbiB0aGUgdmFsdWUgZnJvbSB0aGUgZWx0IHN0YWNrLiAgU2FtZSBmb3IKLUBAIC00ODQs NiArNDg0LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAotIAkgICAgICA9PSBTVUJBUlJBWV9MT1dfQk9VTkQpCi0gCSAg ICByYW5nZS0+bG93ID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUs IGV4cCwKLSAJCQkJCQkJIHBvcywgbm9zaWRlKSk7Ci0rCi0gCSAgaWYgKChyYW5nZS0+ZjkwX3Jh bmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKQotIAkgICAgICA9PSBTVUJBUlJBWV9ISUdI X0JPVU5EKQotIAkgICAgcmFuZ2UtPmhpZ2ggPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJl eHAgKE5VTExfVFlQRSwgZXhwLAotQEAgLTQ5Niw2ICs0OTcsMTAgQEAgdmFsdWVfZjkwX3N1YmFy cmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTQ5 OSw2ICs0OTksMTAgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBz dHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgIC8qIEFzc2lnbiB0aGUgZGVmYXVsdCBzdHJpZGUg dmFsdWUgJzEnLiAgKi8KICAJICBlbHNlCiAgCSAgICByYW5nZS0+c3RyaWRlID0gMTsKQEAgLTgw LDcgKzY0LDcgQEAgaW5kZXggMzA4YWRhMy4uZDAxYjU3OSAxMDA2NDQKICAJfQogICAgICAgIC8q IFVzZXIgaW5wdXQgaXMgYW4gaW5kZXguICBFLmcuOiAicCBhcnJ5KDUpIi4gICovCiAgICAgICAg ZWxzZQotQEAgLTUxMiwxMCArNTE3LDggQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFs dWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTUxNSwxMCArNTE5LDggQEAg dmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLAogIAogICAgICB9CiAgCkBAIC05Myw3ICs3Nyw3IEBAIGluZGV4IDMwOGFkYTMuLmQw MWI1NzkgMTAwNjQ0CiAgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7 CiAgICAgICAgc3RydWN0IHN1YnNjcmlwdF9zdG9yZSAqaW5kZXggPSAmc3Vic2NyaXB0X2FycmF5 W2ldOwotQEAgLTU0OCw2ICs1NTEsNDggQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFs dWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTU1MSw2ICs1NTMsNDggQEAg dmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLAogIAkJfHwgcmFuZ2UtPmhpZ2ggPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUp KQogIAkgICAgICBlcnJvciAoXygicHJvdmlkZWQgYm91bmQocykgb3V0c2lkZSBhcnJheSBib3Vu ZChzKSIpKTsKICAKQEAgLTExMyw3ICs5Nyw3IEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAw NjQ0CiArCiArCX0KICsKLSsgICAgICBhcnJheV90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJy YXlfdHlwZSk7CisrICAgICAgIGFycmF5X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90 eXBlKTsKICsgICAgfQogKwogKyAgLyogUmVzZXQgQVJSQVlfVFlQRSBiZWZvcmUgc2xpY2luZy4q LwpAQCAtMTM3LDEyICsxMjEsMTIgQEAgaW5kZXggMzA4YWRhMy4uZDAxYjU3OSAxMDA2NDQKICsJ ICAgICAgIHRyZWF0IGFueSBzdWJzZXF1ZW50IHVzZXIgZW50cnkgYXMgYSByYW5nZS4gIFdlIHNp bXBseQogKwkgICAgICAgaW5jcmVtZW50IERJTV9DT1VOVCB3aGljaCB0ZWxscyB1cyBob3cgbWFu eSB0aW1lcyB3ZSBhcmUKICsJICAgICAgIGNhbGxpbmcgVkFMVUVfU0xJQ0VfMS4gICovCi0rCSAg ICBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlICpyYW5nZSA9ICZpbmRleC0+cmFuZ2U7CisrCSAgICBz dWJzY3JpcHRfcmFuZ2UgKnJhbmdlID0gJmluZGV4LT5VLnJhbmdlOwogKwogIAkgICAgLyogRElN X0NPVU5UIGNvdW50cyBldmVyeSB1c2VyIGFyZ3VtZW50IHRoYXQgaXMgdHJlYXRlZCBhcyBhIHJh bmdlLgogIAkgICAgICAgVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGV4cHJlc3Npb25zIGxpa2UgJ3By aW50IGFycmF5KDcsIDg6OSkuCiAgCSAgICAgICBIZXJlIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBh IGxpdGVyYWwsIGJ1dCBtdXN0IGJlIHRyZWF0ZWQgYXMgYQotQEAgLTU1NSwxMCArNjAwLDkgQEAg dmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLAorQEAgLTU1OCwxMCArNjAyLDkgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3Qg dmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgICAgZGltX2NvdW50Kys7 CiAgCiAgCSAgICBuZXdfYXJyYXkKQEAgLTE1NiwxMyArMTQwLDcgQEAgaW5kZXggMzA4YWRhMy4u ZDAxYjU3OSAxMDA2NDQKICAJICB9CiAgCSAgYnJlYWs7CiAgCi1AQCAtNTcyLDI3ICs2MTYsMzgg QEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLAotIAkgICAgICAgdG8gZ2V0IHRoZSB2YWx1ZSBvZmZzZXQgcmlnaHQuICAqLwot IAkgICAgaWYgKGRpbV9jb3VudCA9PSAwKQotIAkgICAgICBuZXdfYXJyYXkKLS0JICAgICAgICA9 IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAobmV3X2FycmF5LCBpbmRleC0+bnVtYmVyLAotKwkJ PSB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKG5ld19hcnJheSwgaW5kZXgtPm51bWJlciwKLSAJ CQkJCSAgICBmNzdfZ2V0X2xvd2VyYm91bmQgKHZhbHVlX3R5cGUKK0BAIC01ODAsMjEgKzYyMywz MiBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHBy ZXNzaW9uICpleHAsCiAgCQkJCQkJCQkgIChuZXdfYXJyYXkpKSk7CiAgCSAgICBlbHNlCiAgCSAg ICAgIHsKQEAgLTE3NCwyMSArMTUyLDIxIEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0 CiArCQkgICBjYW5ub3QgZG8gdGhlIHJhbmdlIGNoZWNrcyBmb3IgdXMuIFNvIHdlIGhhdmUgdG8g bWFrZSBzdXJlCiArCQkgICBvdXJzZWx2ZXMgdGhhdCB0aGUgdXNlciBwcm92aWRlZCBpbmRleCBp cyBpbnNpZGUgdGhlCiArCQkgICBhcnJheSBib3VuZHMuICBUaHJvdyBhbiBlcnJvciBpZiBub3Qu ICAqLwotIAkJaWYgKGluZGV4LT5udW1iZXIgPCBUWVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSkK LS0JCSAgICB8fCBpbmRleC0+bnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkK KyAJCWlmIChpbmRleC0+VS5udW1iZXIgPCBUWVBFX0xPV19CT1VORCAoaW5kZXhfdHlwZSkKKy0J CSAgICB8fCBpbmRleC0+VS5udW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQog LQkJICBlcnJvciAoXygiZXJyb3Igbm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSsJCSAgICAm JiBpbmRleC0+bnVtYmVyIDwgVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKKysJCSAgICAm JiBpbmRleC0+VS5udW1iZXIgPiBUWVBFX0hJR0hfQk9VTkQgKGluZGV4X3R5cGUpKQogKwkJICBl cnJvciAoXygicHJvdmlkZWQgYm91bmQocykgb3V0c2lkZSBhcnJheSBib3VuZChzKSIpKTsKICsK LSsJCWlmIChpbmRleC0+bnVtYmVyID4gVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCi0rCQkg ICAgJiYgaW5kZXgtPm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCisrCQlp ZiAoaW5kZXgtPlUubnVtYmVyID4gVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCisrCQkgICAg JiYgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKICsJCSAg ZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91bmQocykiKSk7CiAg CiAtCQlkaW1fY291bnQrKzsKICAJCW5ld19hcnJheSA9IHZhbHVlX3NsaWNlXzEgKG5ld19hcnJh eSwKLS0JCQkJCSAgIGxvbmdlc3RfdG9faW50IChpbmRleC0+bnVtYmVyKSwKKy0JCQkJCSAgIGxv bmdlc3RfdG9faW50IChpbmRleC0+VS5udW1iZXIpLAogLQkJCQkJICAgMSwgLyogbGVuZ3RoIGlz ICcxJyBlbGVtZW50ICAqLwotKwkJCQkJICAgaW5kZXgtPm51bWJlciwKKysJCQkJCSAgIGluZGV4 LT5VLm51bWJlciwKICsJCQkJCSAgIDEsIC8qIENPVU5UIGlzICcxJyBlbGVtZW50ICAqLwogKwkJ CQkJICAgMSwgLyogU1RSSURFIHNldCB0byAnMScgICovCiAgCQkJCQkgICBkaW1fY291bnQpOwpA QCAtMTk3LDEzICsxNzUsMTEgQEAgaW5kZXggMzA4YWRhMy4uZDAxYjU3OSAxMDA2NDQKICAJICB9 CiAgCSAgYnJlYWs7CiAgCX0KLS0gICAgfQogKyAgICAgIGFycmF5X3R5cGUgPSBUWVBFX1RBUkdF VF9UWVBFIChhcnJheV90eXBlKTsKLSsgIH0KKyAgICAgfQogIAogICAgLyogV2l0aCBESU1fQ09V TlQgPiAxIHdlIGN1cnJlbnRseSBoYXZlIGEgb25lIGRpbWVuc2lvbmFsIGFycmF5LCBidXQgZXhw ZWN0Ci0gICAgICBhbiBhcnJheSBvZiBhcnJheXMsIGRlcGVuZGluZyBvbiBob3cgbWFueSByYW5n ZXMgaGF2ZSBiZWVuIHByb3ZpZGVkIGJ5Ci1AQCAtNjE3LDcgKzY3Miw5IEBAIHZhbHVlX2Y5MF9z dWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BA IC02MjAsNyArNjc0LDkgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5 LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgdGhlIG91dHB1dCBhcnJheS4gIFNvIHdlIHRy YXZlcnNlIHRoZSBTVUJTQ1JJUFRfQVJSQVkgYWdhaW4sIGxvb2tpbmcKICAJIGZvciBhIHJhbmdl IGVudHJ5LiAgV2hlbiB3ZSBmaW5kIG9uZSwgd2UgdXNlIHRoZSByYW5nZSBpbmZvIHRvIGNyZWF0 ZQogIAkgYW4gYWRkaXRpb25hbCByYW5nZV90eXBlIHRvIHNldCB0aGUgY29ycmVjdCBib3VuZHMg YW5kIGRpbWVuc2lvbnMgZm9yCkBAIC0yMTQsMzUgKzE5MCwzNSBAQCBpbmRleCAzMDhhZGEzLi5k MDFiNTc5IDEwMDY0NAogICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogIAl7CiAg CSAgc3RydWN0IHN1YnNjcmlwdF9zdG9yZSAqaW5kZXggPSAmc3Vic2NyaXB0X2FycmF5W2ldOwot QEAgLTYyNSwxMiArNjgyLDIwIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICph cnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICBpZiAoaW5kZXgtPmtpbmQgPT0gU1VC U0NSSVBUX1JBTkdFKQorQEAgLTYyOSwxMiArNjg1LDIwIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAo c3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJICAgIHsKICAJ ICAgICAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUsICppbnRlcmltX2FycmF5X3R5cGU7CisgCiAr CSAgICAgIGludCBuZXdfbGVuZ3RoOwogKwogKwkgICAgICAvKiBUaGUgbGVuZ3RoIG9mIGEgc3Vi LWRpbWVuc2lvbiB3aXRoIGFsbCBlbGVtZW50cyBiZXR3ZWVuIHRoZQogKwkJIGJvdW5kcyBwbHVz IHRoZSBzdGFydCBlbGVtZW50IGl0c2VsZi4gIEl0IG1heSBiZSBtb2RpZmllZCBieQogKwkJIGEg dXNlciBwcm92aWRlZCBzdHJpZGUgdmFsdWUuICAqLwotKwkgICAgICBuZXdfbGVuZ3RoID0gaW5k ZXgtPnJhbmdlLmhpZ2ggLSBpbmRleC0+cmFuZ2UubG93OworKwkgICAgICBuZXdfbGVuZ3RoID0g aW5kZXgtPlUucmFuZ2UuaGlnaCAtIGluZGV4LT5VLnJhbmdlLmxvdzsKKysKKysJICAgICAgbmV3 X2xlbmd0aCAvPSBpbmRleC0+VS5yYW5nZS5zdHJpZGU7CiArCi0rCSAgICAgIG5ld19sZW5ndGgg Lz0gaW5kZXgtPnJhbmdlLnN0cmlkZTsKLSAKICAJICAgICAgcmFuZ2VfdHlwZQogIAkJPSBjcmVh dGVfc3RhdGljX3JhbmdlX3R5cGUgKE5VTEwsCi0tCQkJCSAgICAgdGVtcF90eXBlLAotLQkJCQkg ICAgIDEsCi0tCQkJCSAgICAgaW5kZXgtPnJhbmdlLmhpZ2ggLSBpbmRleC0+cmFuZ2UubG93ICsg MSk7Ci0rCQkJCQkgICAgdGVtcF90eXBlLAotKwkJCQkJICAgIGluZGV4LT5yYW5nZS5sb3csCi0r CQkJCQkgICAgaW5kZXgtPnJhbmdlLmxvdyArIG5ld19sZW5ndGgpOworIAkJCQkJICAgIGVsdF90 eXBlLAorLQkJCQkJICAgIDEsCistCQkJCQkgICAgaW5kZXgtPlUucmFuZ2UuaGlnaAorLQkJCQkJ ICAgICAgLSBpbmRleC0+VS5yYW5nZS5sb3cgKyAxKTsKKysJCQkJCSAgICBpbmRleC0+VS5yYW5n ZS5sb3csCisrCQkJCQkgICAgaW5kZXgtPlUucmFuZ2UubG93ICsgbmV3X2xlbmd0aCk7CiAgCiAg CSAgICAgIGludGVyaW1fYXJyYXlfdHlwZSA9IGNyZWF0ZV9hcnJheV90eXBlIChOVUxMLAotIAkJ CQkJCSAgICAgIHRlbXBfdHlwZSwKKyAJCQkJCQkgICAgICBlbHRfdHlwZSwKIGRpZmYgLS1naXQg YS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IDA5ZWE4NzcuLjgzYzg0NjIgMTAw NjQ0CitpbmRleCBmYmM3ZGNiLi5kZWQ4ZWZjIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbG9wcy5jCiAr KysgYi9nZGIvdmFsb3BzLmMKLUBAIC0zNzU5LDEwICszNzU5LDEzIEBAIHZhbHVlX29mX3RoaXNf c2lsZW50IChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZykKK0BAIC0zNzY2LDEwICsz NzY2LDEzIEBAIHZhbHVlX29mX3RoaXNfc2lsZW50IChjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVm biAqbGFuZykKICBzdHJ1Y3QgdmFsdWUgKgogIHZhbHVlX3NsaWNlIChzdHJ1Y3QgdmFsdWUgKmFy cmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgpCiAgewpAQCAtMjU5LDggKzIzNSw4IEBAIGlu ZGV4IDA5ZWE4NzcuLjgzYzg0NjIgMTAwNjQ0CiArICByZXR1cm4gdmFsdWVfc2xpY2VfMSAoYXJy YXksIGxvd2JvdW5kLCBsZW5ndGgsIDEsIDEpOwogIH0KICAKLSAvKiBDQUxMX0NPVU5UIGlzIHVz ZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBjYWxsaW5nIHRoZSBmdW5jdGlvbiBvbmNlLCBlLmcu Ci1AQCAtMzc3Niw3ICszNzc5LDggQEAgdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXks IGludCBsb3dib3VuZCwgaW50IGxlbmd0aCkKKyAvKiBWQUxVRV9TTElDRV8xIGlzIGNhbGxlZCBm b3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8gY2FsY3VsYXRlIHRoZSBudW1iZXIKK0BAIC0zNzg1 LDcgKzM3ODgsOCBAQCB2YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2Jv dW5kLCBpbnQgbGVuZ3RoKQogICAgIHJhbmdlcyBpbiB0aGUgY2FsbGluZyBmdW5jdGlvbi4gICov CiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTI3MCw3ICsyNDYsNyBAQCBpbmRleCAwOWVhODc3Li44 M2M4NDYyIDEwMDY0NAogIHsKICAgIHN0cnVjdCB0eXBlICpzbGljZV9yYW5nZV90eXBlLCAqc2xp Y2VfdHlwZSwgKnJhbmdlX3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqYXJyYXlfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci1AQCAtMzc5OSwxNCArMzgwMywyNCBAQCB2 YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5n dGgsIGludCBjYWxsX2NvdW50KQorQEAgLTM4MDgsMTQgKzM4MTIsMjQgQEAgdmFsdWVfc2xpY2Vf MSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2Fs bF9jb3VudCkKICAgICAgIGF0dHJpYnV0ZXMgb2YgdGhlIHVuZGVybHlpbmcgdHlwZS4gICovCiAg ICBpZiAoY2FsbF9jb3VudCA+IDEpCiAgICAgIHsKQEAgLTI5NywyNSArMjczLDcgQEAgaW5kZXgg MDllYTg3Ny4uODNjODQ2MiAxMDA2NDQKICAgIGVsdF9zdHJpZGUgPSBUWVBFX0xFTkdUSCAoVFlQ RV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7CiAgCiAgICBlbHRfb2ZmcyAqPSBlbHRfc2l6ZTsK LUBAIC0zODI1LDcgKzM4MzksNyBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5 LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQotICAgaWYgKGNhbGxf Y291bnQgPT0gMSkKLSAgICAgewotICAgICAgIHJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUg KGFycmF5X3R5cGUpOwotLSAgICAgIHNsaWNlX3JhbmdlX3NpemUgPSBlbGVtX2NvdW50OwotKyAg ICAgIHNsaWNlX3JhbmdlX3NpemUgPSBhcnlfbG93X2JvdW5kICsgZWxlbV9jb3VudCAtIDE7Ci0g Ci0gICAgICAgLyogQ2hlY2sgaWYgdGhlIGFycmF5IGJvdW5kcyBhcmUgdmFsaWQuICAqLwotICAg ICAgIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmYXJ5X2xvd19ib3VuZCwg JmFyeV9oaWdoX2JvdW5kKSA8IDApCi1AQCAtMzgzNyw3ICszODUxLDcgQEAgdmFsdWVfc2xpY2Vf MSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2Fs bF9jb3VudCkKLSAgIGVsc2UKLSAgICAgewotICAgICAgIHJhbmdlX3R5cGUgPSBUWVBFX0lOREVY X1RZUEUgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLS0gICAgICBzbGljZV9yYW5n ZV9zaXplID0gKGFyeV9sb3dfYm91bmQgKyByb3dfY291bnQgLSAxKSAqIChlbGVtX2NvdW50KTsK LSsgICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCArIChyb3dfY291bnQgKiBl bGVtX2NvdW50KSAtIDE7Ci0gICAgICAgYXJ5X2xvd19ib3VuZCA9IFRZUEVfTE9XX0JPVU5EIChy YW5nZV90eXBlKTsKLSAgICAgfQotIAotQEAgLTM4NDksOCArMzg2Myw5IEBAIHZhbHVlX3NsaWNl XzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNh bGxfY291bnQpCitAQCAtMzg1OCw4ICszODcyLDkgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZh bHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKICAg IHsKICAgICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZTsKICAKQEAgLTMyNyw3ICsyODUsNyBA QCBpbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAogICAgICAgIHsKICAJZWxlbWVudF90eXBl ID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiAgCi1AQCAtMzg3MSwyOSArMzg4Niw1 MyBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGlu dCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQorQEAgLTM4ODAsMjkgKzM4OTUsNTMgQEAgdmFsdWVf c2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBp bnQgY2FsbF9jb3VudCkKICAJICB9CiAgCiAgICAgICAgfQpAQCAtMzU5LDggKzMxNyw4IEBAIGlu ZGV4IDA5ZWE4NzcuLjgzYzg0NjIgMTAwNjQ0CiAgCXNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlf dHlwZSAoTlVMTCwgZWxlbWVudF90eXBlLCBzbGljZV9yYW5nZV90eXBlKTsKICAKIC0JVFlQRV9D T0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlw ZSkpOwotKwkvKiBJZiB3ZSBoYXZlIGEgb25lIGRpbWVuc2lvbmFsIGFycmF5LCB3ZSBjb3B5IGl0 cyBUWVBFX0NPREUuICBGb3IgYQotKwkgICBtdWx0aSBkaW1lbnNpb25hbCBhcnJheSB3ZSBjb3B5 IHRoZSBlbWJlZGRlZCB0eXBlJ3MgVFlQRV9DT0RFLiAgKi8KKysJIC8qIElmIHdlIGhhdmUgYSBv bmUgZGltZW5zaW9uYWwgYXJyYXksIHdlIGNvcHkgaXRzIFRZUEVfQ09ERS4gIEZvciBhCisrCSAg ICBtdWx0aSBkaW1lbnNpb25hbCBhcnJheSB3ZSBjb3B5IHRoZSBlbWJlZGRlZCB0eXBlJ3MgVFlQ RV9DT0RFLiAgKi8KICsJaWYgKGNhbGxfY291bnQgPT0gMSkKICsJICBUWVBFX0NPREUgKHNsaWNl X3R5cGUpID0gVFlQRV9DT0RFIChhcnJheV90eXBlKTsKICsJZWxzZQpAQCAtMzk1LDcgKzM1Myw3 IEBAIGluZGV4IDA5ZWE4NzcuLjgzYzg0NjIgMTAwNjQ0CiAgICAgICAgfQogIAogZGlmZiAtLWdp dCBhL2dkYi92YWx1ZS5oIGIvZ2RiL3ZhbHVlLmgKLWluZGV4IDM0MDA0NjAuLmMxOGVmMmUgMTAw NjQ0CitpbmRleCA5NTU4OGFmLi5lNDE3NjM5IDEwMDY0NAogLS0tIGEvZ2RiL3ZhbHVlLmgKICsr KyBiL2dkYi92YWx1ZS5oCiBAQCAtMTA1Niw3ICsxMDU2LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqdmFyeWluZ190b19zbGljZSAoc3RydWN0IHZhbHVlICopOwpAQCAtNDA4LDUgKzM2Niw1IEBA IGluZGV4IDM0MDA0NjAuLmMxOGVmMmUgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFs dWVfbGl0ZXJhbF9jb21wbGV4IChzdHJ1Y3QgdmFsdWUgKiwgc3RydWN0IHZhbHVlICosCiAgCQkJ CQkgICAgc3RydWN0IHR5cGUgKik7CiAtLSAKLTIuNS4wCisyLjUuNQogCgpkaWZmIC0tZ2l0IGEv Z2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZvZjYtbm9rZmFpbC5wYXRjaCBiL2dkYi1mb3J0cmFu LXN0cmlkZS1pbnRlbC02b2Y2LW5va2ZhaWwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDViNjFkZTEuLjAwMDAwMDAKLS0tIGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZv ZjYtbm9rZmFpbC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS0tLSBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmV4cC1v cmlnCTIwMTYtMDEtMDggMjI6NDU6NDQuOTU2ODQyNTUzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAJMjAxNi0wMS0w OCAyMzoyNjowNS4wNzg1NTQ2MjkgKzAxMDAKLUBAIC0zOSwyNyArMzksMTYgQEAgZm9yZWFjaCB2 YXIge2EgYWxsb2MgcHRyfSB7Ci0gICAgIHNldCBvbGRfcHJlZml4ICRwZl9wcmVmaXgKLSAgICAg bGFwcGVuZCBwZl9wcmVmaXggIiR2YXI6IgotIAotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2 bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDIsIDI6MykiIHsgPSBc KDIyLCAzMlwpfQotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTki Ci0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDI6MywgMykiIHsgPSBcKDMyLCAzM1wpfQotLSAgICBz ZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJw ICR2YXIgKDEsIDI6KSIgeyA9IFwoMjEsIDMxXCl9Ci0tICAgIHNldHVwX2tmYWlsICIqLSotKiIg InZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInAgJHZhciAoMiwgOjIpIiB7ID0g XCgxMiwgMjJcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5 IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgzLCAyOjIpIiB7ID0gXCgyM1wpfQotLSAgICBzZXR1 cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwdHlw ZSAkdmFyICgzLCAyOjIpIiAiID0gJGludDQgXFwoMjoyXFwpIgotLSAgICBzZXR1cF9rZmFpbCAi Ki0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDQsIDop IiB7ID0gXCgxNCwgMjQsIDM0XCl9Ci0tICAgIHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jl c3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInAgJHZhciAoOiwgOikiIHsgPSBcKFwoICoxMSwg MTIsIDEzLCAxNFwpIFwoICoyMSwgMjIsIDIzLCAyNFwpIFwoICozMSwgMzIsIDMzLCAzNFwpICpc KX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBn ZGJfdGVzdCAicHR5cGUgJHZhciAoOiwgOikiICIgPSAkaW50NCBcXCg0LDNcXCkiCi0tICAgIHNl dHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInAg JHZhciAoOikiICJXcm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIKLS0gICAgc2V0dXBfa2ZhaWwg IiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICg6LCA6 LCA6KSIgIldyb25nIG51bWJlciBvZiBzdWJzY3JpcHRzIgotIAotICAgICBzZXQgcGZfcHJlZml4 ICRvbGRfcHJlZml4Ci1AQCAtNjgsNSArNTcsNCBAQCBmb3JlYWNoIHZhciB7YSBhbGxvYyBwdHJ9 IHsKLSBnZGJfdGVzdF9ub19vdXRwdXQge3NldCAkYT1hfQotIGRlbGV0ZV9icmVha3BvaW50cwot IGdkYl91bmxvYWQKLS1zZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0g Z2RiX3Rlc3Qge3AgJGEgKDMsIDI6Mil9IHsgPSBcKDIzXCl9CgpkaWZmIC0tZ2l0IGEvZ2RiLWZv cnRyYW4tc3RyaWRlLWludGVsLTZvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwt Nm9mNi5wYXRjaAppbmRleCA0N2ZhZWYyLi43NzdiYmM5IDEwMDY0NAotLS0gYS9nZGItZm9ydHJh bi1zdHJpZGUtaW50ZWwtNm9mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwt Nm9mNi5wYXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2Ri LXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0Ny5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgNi82XSBm b3J0cmFuOiB0ZXN0IGNhc2VzIGZvciBzdWJhcnJheSBzdHJpZGVzIGFuZCBzbGljZXMKK1JFOiBb cGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlz IHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2 LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSA5ODJkNTgyZWU3MzhjYmNmMjUyYmE4ZWFiNTlhOTUx NGVkZGE3NWI5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5t YW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBXZWQsIDQgRGVjIDIw MTMgMTE6NDc6MTUgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSCA2LzZdIGZvcnRyYW46IHRlc3QgY2Fz ZXMgZm9yIHN1YmFycmF5IHN0cmlkZXMgYW5kIHNsaWNlcwogCiBBZGQgdGVzdCBjYXNlcyBmb3Ig c3ViYXJyYXkgY3JlYXRpb24gd2l0aCByYW5nZSwgbGl0ZXJhbCBhbmQKIHN0cmlkZSB2YWx1ZSBw ZXJtdXRhdGlvbnMgZm9yIG9uZSwgdHdvLCBhbmQgdGhyZWUgZGltZW5zaW9uYWwKQEAgLTUxMSw1 ICs1MTQsNSBAQCBpbmRleCAwMDAwMDAwLi5mMjJmY2JlCiArICBjYWxsIHN1YgogK2VuZAogLS0g Ci0yLjUuMAorMi41LjUKIAoKZGlmZiAtLWdpdCBhL2dkYi1weXRob24tZ2lsLnBhdGNoIGIvZ2Ri LXB5dGhvbi1naWwucGF0Y2gKaW5kZXggMWUzYjBiOS4uNWNlMTNhOCAxMDA2NDQKLS0tIGEvZ2Ri LXB5dGhvbi1naWwucGF0Y2gKKysrIGIvZ2RiLXB5dGhvbi1naWwucGF0Y2gKQEAgLTEsOCArMSw4 IEBACi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL3B5dGhvbi50ZXhpCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2RvYy9weXRob24udGV4aQogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZG9jL3B5dGhvbi50ZXhpCTIwMTUtMDUt MzEgMTc6NTc6MTIuNDMxNTkzOTgzICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv ZG9jL3B5dGhvbi50ZXhpCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU0NjA3NzA4ICswMjAwCi1AQCAt MjI5LDYgKzIyOSwxNCBAQCByZXR1cm5lZCBhcyBhIHN0cmluZy4gIFRoZSBkZWZhdWx0IGlzIEBj CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZG9jL3B5dGhvbi50ZXhpCTIwMTYt MDctMDMgMTY6MzA6MzcuMDA5MzM4MzU4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAv Z2RiL2RvYy9weXRob24udGV4aQkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxMjM4Nzg2NyArMDIwMAor QEAgLTIyOSw2ICsyMjksMTQgQEAKICByZXR1cm4gdmFsdWUgaXMgQGNvZGV7Tm9uZX0uICBJZiBA dmFye3RvX3N0cmluZ30gaXMgQGNvZGV7VHJ1ZX0sIHRoZQogIEB2YWx1ZXtHREJOfSB2aXJ0dWFs IHRlcm1pbmFsIHdpbGwgYmUgdGVtcG9yYXJpbHkgc2V0IHRvIHVubGltaXRlZCB3aWR0aAogIGFu ZCBoZWlnaHQsIGFuZCBpdHMgcGFnaW5hdGlvbiB3aWxsIGJlIGRpc2FibGVkOyBAcHhyZWZ7U2Ny ZWVuIFNpemV9LgpAQCAtMTcsMTEgKzE3LDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9kb2MvcHl0aG9uLnRleGkKICBAZW5kIGRlZnVuCiAgCiAgQGZpbmRleCBnZGIuYnJlYWtw b2ludHMKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9uLWludGVy bmFsLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRl cm5hbC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9weXRo b24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0wNS0zMSAxNzo1NzoxMi40MzI1OTM5ODkgKzAyMDAK LSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAx NS0wNS0zMSAxNzo1NzoxNC42NTQ2MDc3MDggKzAyMDAKLUBAIC0xNDIsNiArMTQyLDggQEAgdHlw ZWRlZiBpbnQgUHlfc3NpemVfdDsKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9w eXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNi0wNy0wMyAxNjozMDozNy4wMTAzMzgzNjYgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5o CTIwMTYtMDctMDMgMTY6MzA6NDIuODEyMzg3ODY3ICswMjAwCitAQCAtMTQwLDYgKzE0MCw4IEBA CiAgI2RlZmluZSBQeUdJTFN0YXRlX1JlbGVhc2UoQVJHKSAoKHZvaWQpKEFSRykpCiAgI2RlZmlu ZSBQeUV2YWxfSW5pdFRocmVhZHMoKQogICNkZWZpbmUgUHlUaHJlYWRTdGF0ZV9Td2FwKEFSRykg KCh2b2lkKShBUkcpKQpAQCAtMzAsMTEgKzMwLDExIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKICAjZGVmaW5lIFB5RXZhbF9SZWxlYXNl TG9jaygpCiAgI2VuZGlmCiAgCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9u L3B5dGhvbi5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9weXRob24u YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvcHl0aG9uL3B5 dGhvbi5jCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU2NjA3NzIwICswMjAwCi0rKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi5jCTIwMTUtMDUtMzEgMTg6MDI6MDguODkxNDI0 MjI3ICswMjAwCi1AQCAtNjI3LDEzICs2MjcsMTggQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlP YmplY3QgKnNlbGYsIFB5TworLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3B5dGhv bi9weXRob24uYwkyMDE2LTA3LTAzIDE2OjMwOjM3LjAxMTMzODM3NSArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHl0aG9uLmMJMjAxNi0wNy0wMyAxNjozMToxNi4z MjQ2NzM3ODMgKzAyMDAKK0BAIC02MTksMTMgKzYxOSwxOCBAQAogIHsKICAgIGNvbnN0IGNoYXIg KmFyZzsKICAgIFB5T2JqZWN0ICpmcm9tX3R0eV9vYmogPSBOVUxMLCAqdG9fc3RyaW5nX29iaiA9 IE5VTEw7CkBAIC01Nyw3ICs1Nyw3IEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9w eXRob24vcHl0aG9uLmMKICAgICAgcmV0dXJuIE5VTEw7CiAgCiAgICBmcm9tX3R0eSA9IDA7Ci1A QCAtNjU0LDEyICs2NTksMjggQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYs IFB5TworQEAgLTY0Niw2ICs2NTEsMTUgQEAKICAgICAgICB0b19zdHJpbmcgPSBjbXA7CiAgICAg IH0KICAKQEAgLTczLDggKzczLDkgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5 dGhvbi9weXRob24uYwogICAgVFJZCiAgICAgIHsKICAgICAgICAvKiBDb3B5IHRoZSBhcmd1bWVu dCB0ZXh0IGluIGNhc2UgdGhlIGNvbW1hbmQgbW9kaWZpZXMgaXQuICAqLwotICAgICAgIGNoYXIg KmNvcHkgPSB4c3RyZHVwIChhcmcpOworQEAgLTY1Myw2ICs2NjcsMTMgQEAKICAgICAgICBzdHJ1 Y3QgY2xlYW51cCAqY2xlYW51cCA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGNvcHkpOworICAgICAg IHN0cnVjdCBpbnRlcnAgKmludGVycDsKICAKICsgICAgICAvKiBJbiB0aGUgY2FzZSBvZiBsb25n IHJ1bm5pbmcgR0RCIGNvbW1hbmRzLCBhbGxvdyB0aGUgdXNlciB0bwogKwkgcmVsZWFzZSB0aGUg UHl0aG9uIEdJTCBhY3F1aXJlZCBieSBQeXRob24uICBSZXN0b3JlIHRoZSBHSUwKQEAgLTgzLDEw ICs4NCwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi5j CiArICAgICAgaWYgKHJlbGVhc2VfZ2lsKQogKwlzdGF0ZSA9IFB5RXZhbF9TYXZlVGhyZWFkKCk7 CiArCi0gICAgICAgbWFrZV9jbGVhbnVwX3Jlc3RvcmVfaW50ZWdlciAoJmludGVycHJldGVyX2Fz eW5jKTsKLSAgICAgICBpbnRlcnByZXRlcl9hc3luYyA9IDA7CisgICAgICAgbWFrZV9jbGVhbnVw X3Jlc3RvcmVfaW50ZWdlciAoJmN1cnJlbnRfdWktPmFzeW5jKTsKKyAgICAgICBjdXJyZW50X3Vp LT5hc3luYyA9IDA7CiAgCi1AQCAtNjcyLDExICs2OTMsMjMgQEAgZXhlY3V0ZV9nZGJfY29tbWFu ZCAoUHlPYmplY3QgKnNlbGYsIFB5TworQEAgLTY3MSwxMSArNjkyLDIzIEBACiAgCSAgZXhlY3V0 ZV9jb21tYW5kIChjb3B5LCBmcm9tX3R0eSk7CiAgCX0KICAKQEAgLTExMSwxMCArMTEyLDEwIEBA IEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9uLmMKICAgICAgfQog ICAgRU5EX0NBVENICiAgCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAt LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQu YwkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NjYwNzcyMCArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5jCTIwMTYtMDct MDMgMTY6MzA6NDIuODEzMzg3ODc2ICswMjAwCiBAQCAtMCwwICsxLDEyIEBACiArI2luY2x1ZGUg PHN0ZGlvLmg+CiArCkBAIC0xMjgsMTAgKzEyOSwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuYwogKyAgICAgIHBy aW50ZiAoIlNsZWVwaW5nICVkXG4iLCBpKTsKICsgICAgfQogK30KLUluZGV4OiBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5leHAKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2ls LW10aHJlYWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU3NjA3 NzI2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxMzM4Nzg3NiArMDIw MAogQEAgLTAsMCArMSw2OSBAQAogKyMgQ29weXJpZ2h0IChDKSAyMDE0IEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjAyLDEwICsyMDMsMTAgQEAgSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAog Kwl9CiArICAgIH0KICt9Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVh ZC5weQkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NzYwNzcyNiArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5weQkyMDE2 LTA3LTAzIDE2OjMwOjQyLjgxNDM4Nzg4NCArMDIwMAogQEAgLTAsMCArMSwyMiBAQAogK2ltcG9y dCB0aHJlYWQKICtpbXBvcnQgdGltZQoKZGlmZiAtLWdpdCBhL2dkYi1yZWFkbGluZTYyLWFzay1t b3JlLXJoLnBhdGNoIGIvZ2RiLXJlYWRsaW5lNjItYXNrLW1vcmUtcmgucGF0Y2gKaW5kZXggYWU2 ODk0Ni4uNDYzZDlkMyAxMDA2NDQKLS0tIGEvZ2RiLXJlYWRsaW5lNjItYXNrLW1vcmUtcmgucGF0 Y2gKKysrIGIvZ2RiLXJlYWRsaW5lNjItYXNrLW1vcmUtcmgucGF0Y2gKQEAgLTEsMTcgKzEsMTgg QEAKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2V2ZW50LXRv cC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9ldmVudC10b3AuYwotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2LW9yaWcvZ2RiL2V2ZW50LXRvcC5jCTIwMTYtMDEtMDkgMTQ6NTE6MDIuMzI0MjQz NTA2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V2ZW50LXRvcC5jCTIwMTYt MDEtMDkgMTQ6NTE6MzMuMDI5NDM0MTIxICswMTAwCi1AQCAtMTAzMyw2ICsxMDMzLDEzIEBAIHNl dF9hc3luY19lZGl0aW5nX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGkKLSB2b2lkCi0gZ2RiX3NldHVw X3JlYWRsaW5lICh2b2lkKQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9ldmVudC10 b3AuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2V2ZW50 LXRvcC5jCTIwMTYtMDctMDMgMTY6MzI6MzYuMTA4MzQyMTU5ICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA2MzAvZ2RiL2V2ZW50LXRvcC5jCTIwMTYtMDctMDMgMTY6MzI6NTkuNzg3NTIzNzMz ICswMjAwCitAQCAtMTI1Miw2ICsxMjUyLDEzIEBACiAgeworICAgc3RydWN0IHVpICp1aSA9IGN1 cnJlbnRfdWk7CisgCiArI2lmZGVmIE5FRURfUkxfU1RBVEVfRkVET1JBX0dEQgogKyAgLyogNi4y IHJlZ3Jlc3Npb246IG5vIGxvbmdlZCBhc2tzIGZvciAtLW1vcmUtLQogKyAgICAgZ2RiLmJhc2Uv cmVhZGxpbmUtYXNrLmV4cAogKyAgICAgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3df YnVnLmNnaT9pZD03MDExMzEgICovCiArICBSTF9TRVRTVEFURSAoUkxfU1RBVEVfRkVET1JBX0dE Qik7Ci0rCiArI2VuZGlmCisrCiAgICAvKiBUaGlzIGZ1bmN0aW9uIGlzIGEgbm9vcCBmb3IgdGhl IHN5bmMgY2FzZS4gIFRoZSBhc3N1bXB0aW9uIGlzCiAgICAgICB0aGF0IHRoZSBzeW5jIHNldHVw IGlzIEFMTCBkb25lIGluIGdkYl9pbml0LCBhbmQgd2Ugd291bGQgb25seQogICAgICAgbWVzcyBp dCB1cCBoZXJlLiAgVGhlIHN5bmMgc3R1ZmYgc2hvdWxkIHJlYWxseSBnbyBhd2F5IG92ZXIKCmRp ZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoIGIvZ2RiLXJoYno3 OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAppbmRleCA2MDM3ZTBlLi5iMzdjNWI5IDEwMDY0NAot LS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKQEAgLTQ2MywxMSArNDYzLDExIEBAIENvbnRlbnQtVHlw ZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50 LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtbWFpbi5wYXRjaAogCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xNzUzNTE0 MTAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwkyMDE1LTEx LTAyIDIxOjIzOjEzLjE5NzM2NDcxNCArMDEwMAotQEAgLTc1LDcgKzc1LDcgQEAgc3RhdGljIHN0 cnVjdCB0eXBlICpkZXNjX2JvdW5kc190eXBlIChzdAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2FkYS1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNTM1MTAxMTcgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjUyNzUzMDAyOCArMDIwMAorQEAgLTc1LDcgKzc1LDcgQEAKICAKICBzdGF0aWMgc3RydWN0 IHZhbHVlICpkZXNjX2JvdW5kcyAoc3RydWN0IHZhbHVlICopOwogIApAQCAtNDc2LDcgKzQ3Niw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRp YyBpbnQgZmF0X3BudHJfYm91bmRzX2JpdHNpemUgKHN0cnVjdCB0eXBlICopOwogIAotQEAgLTgz LDEzICs4MywxMyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKmRlc2NfZGF0YV90YXJnZXRfdHlwCitA QCAtODMsMTMgKzgzLDEzIEBACiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqZGVzY19kYXRhIChz dHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC00OTIsNyArNDkyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIGludCBkZXNjX2JvdW5kX2JpdHNp emUgKHN0cnVjdCB0eXBlICosIGludCwgaW50KTsKICAKLUBAIC0xNzIsNyArMTcyLDcgQEAgc3Rh dGljIHN0cnVjdCB0eXBlICpzdGF0aWNfdW53cmFwX3R5cGUgKAorQEAgLTE3Miw3ICsxNzIsNyBA QAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnVud3JhcF92YWx1ZSAoc3RydWN0IHZhbHVlICop OwogIApAQCAtNTAxLDcgKzUwMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YWRhLWxhbmcuYwogIAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVjb2RlX2NvbnN0cmFpbmVkX3Bh Y2tlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKICAKLUBAIC0xODcsNyArMTg3LDggQEAg c3RhdGljIGludCBhZGFfaXNfdW5jb25zdHJhaW5lZF9wYWNrZWRfYQorQEAgLTE4Nyw3ICsxODcs OCBAQAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3N1YnNjcmlwdF9wYWNrZWQgKHN0cnVj dCB2YWx1ZSAqLCBpbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHZhbHVlICoqKTsKICAKQEAgLTUxMSw3ICs1MTEsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICBzdGF0aWMgc3RydWN0IHZhbHVl ICpjb2VyY2VfdW5zcGVjX3ZhbF90b190eXBlIChzdHJ1Y3QgdmFsdWUgKiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqKTsKLUBA IC0yMTUsMTQgKzIxNiwxNCBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICp2YWx1ZV92YWxfYXRyIChz dHJ1CitAQCAtMjE1LDE0ICsyMTYsMTQgQEAKICBzdGF0aWMgc3RydWN0IHN5bWJvbCAqc3RhbmRh cmRfbG9va3VwIChjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCBibG9jayAqLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9lbnVtKTsKICAKQEAgLTUzMCw3 ICs1MzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAK ICBzdGF0aWMgc3RydWN0IHZhbHVlICphZGFfdG9fZml4ZWRfdmFsdWVfY3JlYXRlIChzdHJ1Y3Qg dHlwZSAqLCBDT1JFX0FERFIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHZhbHVlICopOwotQEAgLTIzNiw3ICsyMzcsNyBAQCBzdGF0aWMg aW50IGFkYV9pc19kaXJlY3RfYXJyYXlfdHlwZSAoc3RyCitAQCAtMjM2LDcgKzIzNyw3IEBACiAg c3RhdGljIHZvaWQgYWRhX2xhbmd1YWdlX2FyY2hfaW5mbyAoc3RydWN0IGdkYmFyY2ggKiwKICAJ CQkJICAgIHN0cnVjdCBsYW5ndWFnZV9hcmNoX2luZm8gKik7CiAgCkBAIC01MzksNyArNTM5LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCQkJCQkgICAg IHN0cnVjdCB0eXBlICopOwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmFzc2lnbl9hZ2dyZWdh dGUgKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdmFsdWUgKiwgCi1AQCAtNzAwLDcgKzcwMSw3IEBA IGNvZXJjZV91bnNwZWNfdmFsX3RvX3R5cGUgKHN0cnVjdCB2YWx1ZQorQEAgLTcwMCw3ICs3MDEs NyBAQAogIH0KICAKICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgKgpAQCAtNTQ4LDcgKzU0OCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIHsKICAgIGlmICh2 YWxhZGRyID09IE5VTEwpCiAgICAgIHJldHVybiBOVUxMOwotQEAgLTcwOSw3ICs3MTAsNyBAQCBj b25kX29mZnNldF9ob3N0IChjb25zdCBnZGJfYnl0ZSAqdmFsYWRkCitAQCAtNzA5LDcgKzcxMCw3 IEBACiAgfQogIAogIHN0YXRpYyBDT1JFX0FERFIKQEAgLTU1Nyw3ICs1NTcsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICBpZiAoYWRkcmVzcyA9 PSAwKQogICAgICByZXR1cm4gMDsKLUBAIC0xNzE3LDcgKzE3MTgsNyBAQCBkZXNjX2JvdW5kcyAo c3RydWN0IHZhbHVlICphcnIpCitAQCAtMTc1Niw3ICsxNzU3LDcgQEAKICAvKiBJZiBUWVBFIGlz IHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZhdCBwb2ludGVyKSwgIHRoZSBiaXQK ICAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRkcmVzcyBvZiB0aGUg Ym91bmRzIGRhdGEuICAqLwogIApAQCAtNTY2LDcgKzU2Niw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIGZhdF9wbnRyX2JvdW5kc19iaXRwb3MgKHN0cnVj dCB0eXBlICp0eXBlKQogIHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNl X3R5cGUgKHR5cGUpLCAxKTsKLUBAIC0xNzgzLDcgKzE3ODQsNyBAQCBkZXNjX2RhdGEgKHN0cnVj dCB2YWx1ZSAqYXJyKQorQEAgLTE4MjIsNyArMTgyMyw3IEBACiAgLyogSWYgVFlQRSBpcyB0aGUg dHlwZSBvZiBhbiBhcnJheS1kZXNjcmlwdG9yIChmYXQgcG9pbnRlciksIHRoZSBiaXQKICAgICBw b3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRkcmVzcyBvZiB0aGUgZGF0YS4g ICovCiAgCkBAIC01NzUsNyArNTc1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9hZGEtbGFuZy5jCiAgZmF0X3BudHJfZGF0YV9iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlKQog IHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAw KTsKLUBAIC0xODE4LDcgKzE4MTksNyBAQCBkZXNjX29uZV9ib3VuZCAoc3RydWN0IHZhbHVlICpi b3VuZHMsIGluCitAQCAtMTg1Nyw3ICsxODU4LDcgQEAKICAgICBvZiB0aGUgSXRoIGxvd2VyIGJv dW5kIHN0b3JlZCBpbiBpdCwgaWYgV0hJQ0ggaXMgMCwgYW5kIHRoZSBJdGggdXBwZXIKICAgICBi b3VuZCwgaWYgV0hJQ0ggaXMgMS4gIFRoZSBmaXJzdCBib3VuZCBpcyBJPTEuICAqLwogIApAQCAt NTg0LDcgKzU4NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcu YwogIGRlc2NfYm91bmRfYml0cG9zIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGksIGludCB3aGlj aCkKICB7CiAgICByZXR1cm4gVFlQRV9GSUVMRF9CSVRQT1MgKGRlc2NfYmFzZV90eXBlICh0eXBl KSwgMiAqIGkgKyB3aGljaCAtIDIpOwotQEAgLTIwMDgsNyArMjAwOSw3IEBAIGFkYV90eXBlX29m X2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyciwgaW4KK0BAIC0yMDQ3LDcgKzIwNDgsNyBAQAogIAkg ICAgICAgICB6ZXJvLCBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSByZWNvbXB1dGVkLiAgKi8KICAJ ICAgICAgaWYgKGxvIDwgaGkpCiAgCQl7CkBAIC01OTMsNyArNTkzLDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCQkgICAgICAgIChoaSAtIGxvICsgMSkg KiBUWVBFX0ZJRUxEX0JJVFNJWkUgKGVsdF90eXBlLCAwKTsKICAKICAJCSAgVFlQRV9MRU5HVEgg KGFycmF5X3R5cGUpID0gKGFycmF5X2JpdHNpemUgKyA3KSAvIDg7Ci1AQCAtMjE2OCw3ICsyMTY5 LDcgQEAgZGVjb2RlX3BhY2tlZF9hcnJheV9iaXRzaXplIChzdHJ1Y3QgdHlwZQorQEAgLTIyMDcs NyArMjIwOCw3IEBACiAgICAgdGhlIGxlbmd0aCBpcyBhcmJpdHJhcnkuICAqLwogIAogIHN0YXRp YyBzdHJ1Y3QgdHlwZSAqCkBAIC02MDIsNyArNjAyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgewogICAgc3RydWN0IHR5cGUgKm5ld19lbHRfdHlwZTsK ICAgIHN0cnVjdCB0eXBlICpuZXdfdHlwZTsKLUBAIC0yMjIyLDcgKzIyMjMsNyBAQCBkZWNvZGVf Y29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUgKHN0CitAQCAtMjI2MSw3ICsyMjYyLDcgQEAK ICAgIGNoYXIgKm5hbWU7CiAgICBjb25zdCBjaGFyICp0YWlsOwogICAgc3RydWN0IHR5cGUgKnNo YWRvd190eXBlOwpAQCAtNjExLDcgKzYxMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYWRhLWxhbmcuYwogIAogICAgaWYgKCFyYXdfbmFtZSkKICAgICAgcmF3X25hbWUgPSBh ZGFfdHlwZV9uYW1lIChkZXNjX2Jhc2VfdHlwZSAodHlwZSkpOwotQEAgLTIyOTMsNyArMjI5NCw4 IEBAIGRlY29kZV9jb25zdHJhaW5lZF9wYWNrZWRfYXJyYXkgKHN0cnVjdAorQEAgLTIzMzIsNyAr MjMzMyw4IEBACiAgIAkgYXJyYXkgd2l0aCBubyB3cmFwcGVyLiAgSW4gb3JkZXIgdG8gaW50ZXJw cmV0IHRoZSB2YWx1ZSB0aHJvdWdoCiAgIAkgdGhlIChsZWZ0LWp1c3RpZmllZCkgcGFja2VkIGFy cmF5IHR5cGUgd2UganVzdCBidWlsdCwgd2UgbXVzdAogICAJIGZpcnN0IGxlZnQtanVzdGlmeSBp dC4gICovCkBAIC02MjEsNyArNjIxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9hZGEtbGFuZy5jCiAgICAgICAgVUxPTkdFU1QgbW9kOwogIAogICAgICAgIG1vZCA9IGFkYV9t b2R1bHVzICh2YWx1ZV90eXBlIChhcnIpKSAtIDE7Ci1AQCAtMjUyMSw3ICsyNTIzLDcgQEAgYWRh X3VucGFja19mcm9tX2NvbnRlbnRzIChjb25zdCBnZGJfYnl0ZQorQEAgLTI1NjAsNyArMjU2Miw3 IEBACiAgCiAgc3RydWN0IHZhbHVlICoKICBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwg KHN0cnVjdCB2YWx1ZSAqb2JqLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTYzMCw3ICs2 MzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIHN0 cnVjdCB2YWx1ZSAqdjsKLUBAIC0yNTk0LDcgKzI1OTYsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZl X3BhY2tlZF92YWwgKHN0cnVjdCB2CitAQCAtMjYzMyw3ICsyNjM1LDcgQEAKICAKICAgIGlmIChv YmogIT0gTlVMTCkKICAgICAgewpAQCAtNjM5LDcgKzYzOSw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogICAgICAgIHNldF92YWx1ZV9jb21wb25lbnRf bG9jYXRpb24gKHYsIG9iaik7CiAgICAgICAgc2V0X3ZhbHVlX2JpdHBvcyAodiwgYml0X29mZnNl dCArIHZhbHVlX2JpdHBvcyAob2JqKSk7Ci1AQCAtMjY0Miw3ICsyNjQ0LDcgQEAgYWRhX3ZhbHVl X3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgorQEAgLTI2ODEsNyArMjY4Myw3IEBACiAg ICAgbm90IG92ZXJsYXAuICAqLwogIHN0YXRpYyB2b2lkCiAgbW92ZV9iaXRzIChnZGJfYnl0ZSAq dGFyZ2V0LCBpbnQgdGFyZ19vZmZzZXQsIGNvbnN0IGdkYl9ieXRlICpzb3VyY2UsCkBAIC02NDgs NyArNjQ4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAg ewogICAgdW5zaWduZWQgaW50IGFjY3VtLCBtYXNrOwogICAgaW50IGFjY3VtX2JpdHMsIGNodW5r X3NpemU7Ci1AQCAtMjczMiw3ICsyNzM0LDcgQEAgYWRhX3ZhbHVlX2Fzc2lnbiAoc3RydWN0IHZh bHVlICp0b3ZhbCwgcworQEAgLTI3NzEsNyArMjc3Myw3IEBACiAgICAgIHsKICAgICAgICBpbnQg bGVuID0gKHZhbHVlX2JpdHBvcyAodG92YWwpCiAgCQkgKyBiaXRzICsgSE9TVF9DSEFSX0JJVCAt IDEpIC8gSE9TVF9DSEFSX0JJVDsKQEAgLTY1Nyw3ICs2NTcsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBnZGJfYnl0ZSAqYnVmZmVyID0gKGdk Yl9ieXRlICopIGFsbG9jYSAobGVuKTsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbDsKICAgICAg ICBDT1JFX0FERFIgdG9fYWRkciA9IHZhbHVlX2FkZHJlc3MgKHRvdmFsKTsKLUBAIC0yNzgzLDcg KzI3ODUsNyBAQCB2YWx1ZV9hc3NpZ25fdG9fY29tcG9uZW50IChzdHJ1Y3QgdmFsdWUKK0BAIC0y ODIyLDcgKzI4MjQsNyBAQAogICAgICAoTE9OR0VTVCkgICh2YWx1ZV9hZGRyZXNzIChjb21wb25l bnQpIC0gdmFsdWVfYWRkcmVzcyAoY29udGFpbmVyKSk7CiAgICBpbnQgYml0X29mZnNldF9pbl9j b250YWluZXIgPQogICAgICB2YWx1ZV9iaXRwb3MgKGNvbXBvbmVudCkgLSB2YWx1ZV9iaXRwb3Mg KGNvbnRhaW5lcik7CkBAIC02NjYsNyArNjY2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgICB2YWwgPSB2YWx1ZV9jYXN0ICh2YWx1ZV90eXBlIChj b21wb25lbnQpLCB2YWwpOwogIAotQEAgLTQzOTIsNyArNDM5NCw3IEBAIGVuc3VyZV9sdmFsIChz dHJ1Y3QgdmFsdWUgKnZhbCkKK0BAIC00NDgwLDcgKzQ0ODIsNyBAQAogICAgaWYgKFZBTFVFX0xW QUwgKHZhbCkgPT0gbm90X2x2YWwKICAgICAgICB8fCBWQUxVRV9MVkFMICh2YWwpID09IGx2YWxf aW50ZXJuYWx2YXIpCiAgICAgIHsKQEAgLTY3NSw3ICs2NzUsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBDT1JFX0FERFIgYWRkciA9 CiAgICAgICAgICB2YWx1ZV9hc19sb25nICh2YWx1ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlv ciAobGVuKSk7CiAgCi1AQCAtNDQ3Niw3ICs0NDc4LDcgQEAgc3RhdGljIENPUkVfQUREUgorQEAg LTQ1NjQsNyArNDU2Niw3IEBACiAgdmFsdWVfcG9pbnRlciAoc3RydWN0IHZhbHVlICp2YWx1ZSwg c3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRf dHlwZV9hcmNoICh0eXBlKTsKQEAgLTY4NCw3ICs2ODQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgIGdkYl9ieXRlICpidWYgPSAoZ2RiX2J5dGUgKikg YWxsb2NhIChsZW4pOwogICAgQ09SRV9BRERSIGFkZHI7CiAgCi1AQCAtNjcxMSw3ICs2NzEzLDcg QEAgdmFsdWVfdGFnX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHN0cgorQEAgLTY3OTksNyAr NjgwMSw3IEBACiAgCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNzKQogIHsKQEAgLTY5 Myw3ICs2OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMK ICAgIHN0cnVjdCB0eXBlICp0YWdfdHlwZTsKICAKICAgIGlmIChmaW5kX3N0cnVjdF9maWVsZCAo Il90YWciLCB0eXBlLCAwLCAmdGFnX3R5cGUsICZ0YWdfYnl0ZV9vZmZzZXQsCi1AQCAtNzE4MSw3 ICs3MTgzLDcgQEAgYWRhX2luX3ZhcmlhbnQgKExPTkdFU1QgdmFsLCBzdHJ1Y3QgdHlwZQorQEAg LTcyODAsNyArNzI4Miw3IEBACiAgICAgb25seSBpbiB0aGF0IGl0IGNhbiBoYW5kbGUgcGFja2Vk IHZhbHVlcyBvZiBhcmJpdHJhcnkgdHlwZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAq CkBAIC03MDIsNyArNzAyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEt bGFuZy5jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBl KQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwotQEAgLTcxOTMsNyArNzE5NSw3IEBAIGFkYV92 YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQorQEAgLTcyOTIsNyArNzI5NCw3IEBA CiAgCiAgICBpZiAoVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubykgIT0gMCkK ICAgICAgewpAQCAtNzExLDcgKzcxMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYWRhLWxhbmcuYwogICAgICAgIGludCBiaXRfc2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAo YXJnX3R5cGUsIGZpZWxkbm8pOwogIAogICAgICAgIHJldHVybiBhZGFfdmFsdWVfcHJpbWl0aXZl X3BhY2tlZF92YWwgKGFyZzEsIHZhbHVlX2NvbnRlbnRzIChhcmcxKSwKLUBAIC03MjIwLDkgKzcy MjIsOSBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUKK0BAIC03MzE5 LDkgKzczMjEsOSBAQAogICAgIFJldHVybnMgMSBpZiBmb3VuZCwgMCBvdGhlcndpc2UuICAqLwog IAogIHN0YXRpYyBpbnQKQEAgLTcyMyw3ICs3MjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAJCSAgIGludCAqaW5kZXhfcCkKICB7CiAgICBpbnQgaTsK LUBAIC03MjQwLDggKzcyNDIsOCBAQCBmaW5kX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFt ZSwgc3RyCitAQCAtNzMzOSw4ICs3MzQxLDggQEAKICAKICAgIGZvciAoaSA9IDA7IGkgPCBUWVBF X05GSUVMRFMgKHR5cGUpOyBpICs9IDEpCiAgICAgIHsKQEAgLTczNCw3ICs3MzQsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBjaGFy ICp0X2ZpZWxkX25hbWUgPSBUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpOwogIAogICAgICAgIGlm ICh0X2ZpZWxkX25hbWUgPT0gTlVMTCkKLUBAIC03MzExLDcgKzczMTMsNyBAQCBudW1fdmlzaWJs ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTc0MTAsNyArNzQxMiw3IEBACiAgICAg U2VhcmNoZXMgcmVjdXJzaXZlbHkgdGhyb3VnaCB3cmFwcGVyIGZpZWxkcyAoZS5nLiwgJ19wYXJl bnQnKS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03NDMsNyArNzQzLDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCB0eXBlICp0eXBlKQogIHsKICAgIGludCBpOwotQEAgLTczNDQs NyArNzM0Niw3IEBAIGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW0KK0BA IC03NDQzLDcgKzc0NDUsNyBAQAogICAgICAgICAgICBpbnQgajsKICAgICAgICAgICAgc3RydWN0 IHR5cGUgKmZpZWxkX3R5cGUgPSBhZGFfY2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0 eXBlLAogIAkJCQkJCQkJCWkpKTsKQEAgLTc1Miw3ICs3NTIsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8 IFRZUEVfTkZJRUxEUyAoZmllbGRfdHlwZSk7IGogKz0gMSkKICAgICAgICAgICAgICB7Ci1AQCAt NzM2Miw4ICs3MzY0LDggQEAgYWRhX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5h bQorQEAgLTc0NjEsOCArNzQ2Myw4IEBACiAgICByZXR1cm4gTlVMTDsKICB9CiAgCkBAIC03NjMs NyArNzYzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAg CiAgCiAgLyogUmV0dXJuIGZpZWxkICNJTkRFWCBpbiBBUkcsIHdoZXJlIHRoZSBpbmRleCBpcyB0 aGF0IHJldHVybmVkIGJ5Ci1AQCAtNzM3Miw3ICs3Mzc0LDcgQEAgc3RhdGljIHN0cnVjdCB2YWx1 ZSAqYWRhX2luZGV4X3N0cnVjdF9maQorQEAgLTc0NzEsNyArNzQ3Myw3IEBACiAgICogSWYgZm91 bmQsIHJldHVybiB2YWx1ZSwgZWxzZSByZXR1cm4gTlVMTC4gICovCiAgCiAgc3RhdGljIHN0cnVj dCB2YWx1ZSAqCkBAIC03NzIsNyArNzcyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9hZGEtbGFuZy5jCiAgCQkJc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIGFk YV9pbmRleF9zdHJ1Y3RfZmllbGRfMSAoJmluZGV4LCBhcmcsIG9mZnNldCwgdHlwZSk7Ci1AQCAt NzM4NCw3ICs3Mzg2LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1 YworQEAgLTc0ODMsNyArNzQ4NSw3IEBACiAgICogKklOREVYX1AuICAqLwogIAogIHN0YXRpYyBz dHJ1Y3QgdmFsdWUgKgpAQCAtNzgxLDcgKzc4MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYWRhLWxhbmcuYwogIAkJCSAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50 IGk7Ci1AQCAtNzQ3NCw3ICs3NDc2LDggQEAgYWRhX3ZhbHVlX3N0cnVjdF9lbHQgKHN0cnVjdCB2 YWx1ZSAqYXJnLAorQEAgLTc1NzMsNyArNzU3NSw4IEBACiAgICAgIHYgPSBhZGFfc2VhcmNoX3N0 cnVjdF9maWVsZCAobmFtZSwgYXJnLCAwLCB0KTsKICAgIGVsc2UKICAgICAgewpAQCAtNzkxLDcg Kzc5MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAg ICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlOwogICAgICAgIENPUkVfQUREUiBhZGRyZXNzOwog IAotQEAgLTc3OTEsOCArNzc5NCw4IEBAIGFkYV9jb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUgKnZh bDApCitAQCAtNzkwNCw4ICs3OTA3LDggQEAKICAvKiBSZXR1cm4gT0ZGIHJvdW5kZWQgdXB3YXJk IGlmIG5lY2Vzc2FyeSB0byBhIG11bHRpcGxlIG9mCiAgICAgQUxJR05NRU5UIChhIHBvd2VyIG9m IDIpLiAgKi8KICAKQEAgLTgwMiw3ICs4MDIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdubWVudCAtIDEpICYg fihhbGlnbm1lbnQgLSAxKTsKICB9Ci1AQCAtODE4NiwxMCArODE4OSw5IEBAIGFkYV90ZW1wbGF0 ZV90b19maXhlZF9yZWNvcmRfdHlwZV8xIChzdHIKK0BAIC04Mjk5LDEwICs4MzAyLDkgQEAKICAg IHN0cnVjdCB2YWx1ZSAqbWFyayA9IHZhbHVlX21hcmsgKCk7CiAgICBzdHJ1Y3QgdmFsdWUgKmR2 YWw7CiAgICBzdHJ1Y3QgdHlwZSAqcnR5cGU7CkBAIC04MTUsNyArODE1LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgICBpbnQgZjsKICAKICAgIC8qIENv bXB1dGUgdGhlIG51bWJlciBvZiBmaWVsZHMgaW4gdGhpcyByZWNvcmQgdHlwZSB0aGF0IGFyZSBn b2luZwotQEAgLTgyNjcsNyArODI2OSw3IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9yZWNvcmRf dHlwZV8xIChzdHIKK0BAIC04MzgwLDcgKzgzODIsNyBAQAogIAkgICAgIHRoYXQgZm9sbG93IHRo aXMgb25lLiAgKi8KICAJICBpZiAoYWRhX2lzX2FsaWduZXJfdHlwZSAoZmllbGRfdHlwZSkpCiAg CSAgICB7CkBAIC04MjQsNyArODI0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9hZGEtbGFuZy5jCiAgCiAgCSAgICAgIGZpZWxkX3ZhbGFkZHIgPSBjb25kX29mZnNldF9ob3N0 IChmaWVsZF92YWxhZGRyLCBmaWVsZF9vZmZzZXQpOwogIAkgICAgICBmaWVsZF9hZGRyZXNzID0g Y29uZF9vZmZzZXRfdGFyZ2V0IChmaWVsZF9hZGRyZXNzLCBmaWVsZF9vZmZzZXQpOwotQEAgLTg0 MDMsMTEgKzg0MDUsMTEgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0 cgorQEAgLTg1MTYsMTEgKzg1MTgsMTEgQEAKICAgIGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPD0g MCkKICAgICAgewogICAgICAgIGlmIChUWVBFX05BTUUgKHJ0eXBlKSkKQEAgLTg0MCw3ICs4NDAs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgfQog ICAgZWxzZQogICAgICB7Ci1AQCAtODg3NCw3ICs4ODc2LDggQEAgdG9fZml4ZWRfYXJyYXlfdHlw ZSAoc3RydWN0IHR5cGUgKnR5cGUwLAorQEAgLTg5ODcsNyArODk4OSw4IEBACiAgCSB0eXBlIHdh cyBhIHJlZ3VsYXIgKG5vbi1wYWNrZWQpIGFycmF5IHR5cGUuICBBcyBhIHJlc3VsdCwgdGhlCiAg CSBiaXRzaXplIG9mIHRoZSBhcnJheSBlbGVtZW50cyBuZWVkcyB0byBiZSBzZXQgYWdhaW4sIGFu ZCB0aGUgYXJyYXkKICAJIGxlbmd0aCBuZWVkcyB0byBiZSByZWNvbXB1dGVkIGJhc2VkIG9uIHRo YXQgYml0c2l6ZS4gICovCkBAIC04NTAsMTEgKzg1MCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBpbnQgZWx0X2JpdHNpemUgPSBUWVBFX0ZJ RUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKICAKICAgICAgICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHJl c3VsdCwgMCkgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUwLCAwKTsKLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9hZGEtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvYWRhLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE3NzM1MTQyMyArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMu MTk4MzY0NzIxICswMTAwCi1AQCAtMTY4LDcgKzE2OCw3IEBAIGV4dGVybiB2b2lkIGFkYV9wcmlu dF90eXBlIChzdHJ1Y3QgdHlwZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2Fk YS1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNTQ1MTAxMjUgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvYWRhLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyODUzMDAz NiArMDIwMAorQEAgLTE2OCw3ICsxNjgsNyBAQAogIGV4dGVybiB2b2lkIGFkYV9wcmludF90eXBl ZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAqbmV3X3N5bWJvbCwKICAJCQkg ICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgCkBAIC04NjMsNyArODYzLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCiAgCQkJICAgc3RydWN0IHVp X2ZpbGUgKiwgaW50LAogIAkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotQEAgLTE4Myw3ICsxODMsNyBAQCBleHRl cm4gdm9pZCBhZGFfZW1pdF9jaGFyIChpbnQsIHN0cnVjdCB0CitAQCAtMTgzLDcgKzE4Myw3IEBA CiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50Y2hhciAoaW50LCBzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3Qg dWlfZmlsZSAqKTsKICAKICBleHRlcm4gdm9pZCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxl ICosIHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosCkBAIC04NzIsNyArODcyLDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCiAgCQkJICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKICAKICBzdHJ1Y3QgdmFsdWUgKmFkYV9jb252 ZXJ0X2FjdHVhbCAoc3RydWN0IHZhbHVlICphY3R1YWwsCi1AQCAtMjU1LDcgKzI1NSw3IEBAIGV4 dGVybiBpbnQgYWRhX2lzX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnIKK0BAIC0yNTUsNyArMjU1LDcg QEAKICAKICBleHRlcm4gc3RydWN0IHZhbHVlICphZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92 YWwgKHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkJCSAgICAgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTg4 MSwxMSArODgxLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcu aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphZGFfY29lcmNlX3RvX3Np bXBsZV9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYWRhLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2FkYS10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE3NzM1MTQyMyArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNS0xMS0w MiAyMToyMzoxMy4xOTgzNjQ3MjEgKzAxMDAKLUBAIC04OTEsOCArODkxLDggQEAgYWRhX3ByaW50 X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NTUxMDEzMyAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKK0BAIC04OTEsOCArODkxLDggQEAKICAJICAg IGNvbnN0IGNoYXIgKm5hbWUgPSBhZGFfdHlwZV9uYW1lICh0eXBlKTsKICAKICAJICAgIGlmICgh YWRhX2lzX3JhbmdlX3R5cGVfbmFtZSAobmFtZSkpCkBAIC04OTYsNyArODk2LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50LmMKICAJICAgIGVsc2UKICAJ ICAgICAgewogIAkJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAicmFuZ2UgIik7Ci1AQCAtOTEz LDcgKzkxMyw4IEBAIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZTAsIGNvbnMKK0BA IC05MTMsNyArOTEzLDggQEAKICAJICB9CiAgCWJyZWFrOwogICAgICAgIGNhc2UgVFlQRV9DT0RF X0ZMVDoKQEAgLTkwNiwxMCArOTA2LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYWRhLXR5cGVwcmludC5jCiAgCWJyZWFrOwogICAgICAgIGNhc2UgVFlQRV9DT0RFX0VOVU06 CiAgCWlmIChzaG93IDwgMCkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXZh bHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXZhbHByaW50LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hZGEtdmFscHJp bnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE3OTM1MTQzNiArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjE5OTM2NDcy OCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FkYS12YWxwcmludC5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU2NTEwMTQxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2FkYS12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI4NTMwMDM2ICsw MjAwCiBAQCAtMzMsMTEgKzMzLDExIEBACiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCiAgCkBAIC05 MjQsNyArOTI0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJp bnQuYwogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqKTsKICAMCiAgCi1A QCAtMjc5LDcgKzI3OSw3IEBAIGFkYV9lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlw ZSwKK0BAIC0yNzksNyArMjc5LDcgQEAKICAgICBvZiBhIGNoYXJhY3Rlci4gICovCiAgCiAgc3Rh dGljIGludApAQCAtOTMzLDcgKzkzMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYWRhLXZhbHByaW50LmMKICAJIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyKQogIHsKICAg IGlmICh0eXBlX2xlbiA9PSAxKQotQEAgLTQ0MSwxMSArNDQxLDExIEBAIGFkYV9wcmludF9zY2Fs YXIgKHN0cnVjdCB0eXBlICp0eXBlLCBMT04KK0BAIC00NDEsMTEgKzQ0MSwxMSBAQAogIAogIHN0 YXRpYyB2b2lkCiAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBl ICplbHR0eXBlLCBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAtOTQ3LDcgKzk0Nyw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXZhbHByaW50LmMKICAgIHVuc2lnbmVk IGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CiAgICBpbnQgaW5fcXVvdGVzID0gMDsKICAgIGludCBu ZWVkX2NvbW1hID0gMDsKLUBAIC00NjAsOSArNDYwLDkgQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIHN0cnVjdAorQEAgLTQ2MCw5ICs0NjAsOSBAQAogICAgICB7CiAgICAgICAg LyogUG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCiAgICAgICAgICAg dG8gc2VlIHdoZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLwpAQCAtOTU5LDcgKzk1OSw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLXZhbHByaW50LmMKICAKICAgICAgICBR VUlUOwogIAotQEAgLTQ5Myw3ICs0OTMsOCBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgc3RydWN0CitAQCAtNDkzLDcgKzQ5Myw4IEBACiAgCSAgYWRhX2VtaXRfY2hhciAoY2hh cl9hdCAoc3RyaW5nLCBpLCB0eXBlX2xlbiwgYnl0ZV9vcmRlciksCiAgCQkJIGVsdHR5cGUsIHN0 cmVhbSwgJ1wnJywgdHlwZV9sZW4pOwogIAkgIGZwdXRzX2ZpbHRlcmVkICgiJyIsIHN0cmVhbSk7 CkBAIC05NjksNyArOTY5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEt dmFscHJpbnQuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRp b25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAxOwotQEAgLTUy MSw3ICs1MjIsNyBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CitA QCAtNTIxLDcgKzUyMiw3IEBACiAgCiAgdm9pZAogIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC05NzgsNyArOTc4LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkgICAgICBjb25zdCBj aGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkgICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7Ci1AQCAtNTMxLDEyICs1MzIsMTIgQEAg YWRhX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdAorQEAgLTUzMSwxMiArNTMy LDEyIEBACiAgCiAgc3RhdGljIGludAogIHByaW50X3ZhcmlhbnRfcGFydCAoc3RydWN0IHR5cGUg KnR5cGUsIGludCBmaWVsZF9udW0sCkBAIC05OTMsNyArOTkzLDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAgIGNvbnN0IHN0cnVjdCBsYW5n dWFnZV9kZWZuICpsYW5ndWFnZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdmFyX3R5cGUgPSBUWVBF X0ZJRUxEX1RZUEUgKHR5cGUsIGZpZWxkX251bSk7Ci1AQCAtNTcyLDExICs1NzMsMTEgQEAgcHJp bnRfdmFyaWFudF9wYXJ0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaQorQEAgLTU3MiwxMSArNTczLDEx IEBACiAgCiAgc3RhdGljIGludAogIHByaW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTAwNyw3ICsxMDA3LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJICAgIGNvbnN0IHN0 cnVjdCBsYW5ndWFnZV9kZWZuICpsYW5ndWFnZSkKICB7CiAgICBpbnQgaSwgbGVuOwotQEAgLTY0 Myw3ICs2NDQsNyBAQCBwcmludF9maWVsZF92YWx1ZXMgKHN0cnVjdCB0eXBlICp0eXBlLCBjCitA QCAtNjQzLDcgKzY0NCw3IEBACiAgCSAgICB9CiAgCSAgZWxzZQogIAkgICAgewpAQCAtMTAxNiw3 ICsxMDE2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQu YwogIAkgICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGkpOwog IAkgICAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogIAotQEAgLTY4OSw4ICs2 OTAsOCBAQCBhZGFfdmFsX3ByaW50X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNjg5 LDggKzY5MCw4IEBACiAgewogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNo X2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2ggKHR5cGUpKTsKICAgIHN0cnVjdCB0eXBlICplbHR0 eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CkBAIC0xMDI3LDcgKzEwMjcsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCiAgICAvKiBXZSBr bm93IHRoYXQgRUxUVFlQRSBjYW5ub3QgcG9zc2libHkgYmUgbnVsbCwgYmVjYXVzZSB3ZSBhc3N1 bWUKICAgICAgIHRoYXQgd2UncmUgY2FsbGVkIG9ubHkgd2hlbiBUWVBFIGlzIGEgc3RyaW5nLWxp a2UgdHlwZS4KLUBAIC03MDksNyArNzEwLDcgQEAgYWRhX3ZhbF9wcmludF9zdHJpbmcgKHN0cnVj dCB0eXBlICp0eXBlLAorQEAgLTcwOSw3ICs3MTAsNyBAQAogICAgICAgZWxlbWVudHMgdXAgdG8g aXQuICAqLwogICAgaWYgKG9wdGlvbnMtPnN0b3BfcHJpbnRfYXRfbnVsbCkKICAgICAgewpAQCAt MTAzNiw3ICsxMDM2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFs cHJpbnQuYwogIAogICAgICAgIC8qIExvb2sgZm9yIGEgTlVMTCBjaGFyLiAgKi8KICAgICAgICBm b3IgKHRlbXBfbGVuID0gMDsKLUBAIC0xMDc0LDcgKzEwNzUsNyBAQCBhZGFfdmFsX3ByaW50X3Jl ZiAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCitAQCAtMTA3NCw3ICsxMDc1LDcgQEAKICAKICBzdGF0 aWMgdm9pZAogIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLApAQCAtMTA0NSw3ICsxMDQ1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAogIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCQkg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMTE1Nyw3ICsx MTU4LDcgQEAgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29ucworQEAgLTEx NTcsNyArMTE1OCw3IEBACiAgCiAgdm9pZAogIGFkYV92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTEwNTQsMTEgKzEwNTQsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAkgICAgICAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCSAgICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hbm5vdGF0ZS5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hbm5vdGF0ZS5jCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMTc5MzUxNDM2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRl LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTkzNjQ3MjggKzAxMDAKLUBAIC01NDIsMjEgKzU0Miwy MSBAQCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvYW5ub3RhdGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1NzUxMDE0OSArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbm5vdGF0ZS5jCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTI4NTMwMDM2ICswMjAwCitAQCAtNTMzLDIxICs1MzMsMjEgQEAKICB9CiAgDAogIHZvaWQK QEAgLTEwODQsMTEgKzEwODQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h bm5vdGF0ZS5jCiAgfQogIAogIHZvaWQKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YW5ub3RhdGUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbm5vdGF0ZS5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYW5ub3RhdGUuaAky MDE1LTExLTAyIDIxOjIzOjExLjE3OTM1MTQzNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9hbm5vdGF0ZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMTk5MzY0NzI4ICswMTAwCi1A QCAtOTIsOCArOTIsOCBAQCBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9zb3VyY2VfZW5kICh2 CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYW5ub3RhdGUuaAkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA1NzUxMDE0OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9h bm5vdGF0ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI4NTMwMDM2ICswMjAwCitAQCAtOTIsOCAr OTIsOCBAQAogIGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX3doZXJlICh2b2lkKTsKICBleHRl cm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9lbmQgKHZvaWQpOwogIApAQCAtMTA5OSwxMSArMTA5OSwx MSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRlLmgKICBleHRlcm4g dm9pZCBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAodm9pZCk7CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVf ZWx0ICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9hcnJheV9zZWN0aW9uX2VuZCAodm9p ZCk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FybS1saW51eC1uYXQuYworSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hcm0tbGludXgtbmF0LmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNS0x MS0wMiAyMToyMzoxMS4xODAzNTE0NDMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAwMzY0NzM0ICswMTAwCi1A QCAtMTA5OSw3ICsxMDk5LDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9od19icmVha3BvaW50IChzdHJ1 Y3QgdAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FybS1saW51eC1uYXQuYwky MDE2LTA3LTE2IDE0OjMzOjQyLjA1NzUxMDE0OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjk1MzAwNDQgKzAy MDAKK0BAIC0xMDYzLDcgKzEwNjMsNyBAQAogICAgIEFERFI/ICAqLwogIHN0YXRpYyBpbnQKICBh cm1fbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAq c2VsZiwKQEAgLTExMTIsMTEgKzExMTIsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9hcm0tbGludXgtbmF0LmMKICB7CiAgICBjb25zdCBzdHJ1Y3QgYXJtX2xpbnV4X2h3YnBf Y2FwICpjYXAgPSBhcm1fbGludXhfZ2V0X2h3YnBfY2FwICgpOwogICAgQ09SRV9BRERSIG1heF93 cF9sZW5ndGgsIGFsaWduZWRfYWRkcjsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YXgtZ2RiLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2RiLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9heC1nZGIuYwkyMDE1LTEx LTAyIDIxOjIzOjExLjE4MjM1MTQ1NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9heC1nZGIuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwMTM2NDc0MSArMDEwMAotQEAgLTgzLDEy ICs4MywxMiBAQCBzdGF0aWMgdm9pZCBnZW5fdHJhY2VkX3BvcCAoc3RydWN0IGdkYmFyCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXgtZ2RiLmMJMjAxNi0wNy0xNiAxNDozMzo0 Mi4wNjA1MTAxNzMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXgtZ2RiLmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41Mjk1MzAwNDQgKzAyMDAKK0BAIC04MywxMiArODMsMTIgQEAK ICBzdGF0aWMgdm9pZCBnZW5fc2lnbl9leHRlbmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVj dCB0eXBlICopOwogIHN0YXRpYyB2b2lkIGdlbl9leHRlbmQgKHN0cnVjdCBhZ2VudF9leHByICos IHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2b2lkIGdlbl9mZXRjaCAoc3RydWN0IGFnZW50X2V4 cHIgKiwgc3RydWN0IHR5cGUgKik7CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgc3RhdGljIHZvaWQgZ2VuX3N5bV9vZmZzZXQg KHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCBzeW1ib2wgKik7CiAgc3RhdGljIHZvaWQgZ2Vu X3Zhcl9yZWYgKHN0cnVjdCBnZGJhcmNoICosIHN0cnVjdCBhZ2VudF9leHByICpheCwKICAJCQkg c3RydWN0IGF4c192YWx1ZSAqdmFsdWUsIHN0cnVjdCBzeW1ib2wgKnZhcik7Ci1AQCAtMTM2LDE1 ICsxMzYsMTYgQEAgc3RhdGljIHZvaWQgZ2VuX2RlcmVmIChzdHJ1Y3QgYWdlbnRfZXhwcgorQEAg LTEzNiwxNSArMTM2LDE2IEBACiAgc3RhdGljIHZvaWQgZ2VuX2FkZHJlc3Nfb2YgKHN0cnVjdCBh Z2VudF9leHByICosIHN0cnVjdCBheHNfdmFsdWUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2JpdGZp ZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAog IAkJCSAgICAgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLApAQCAtMTE1MSw3ICsxMTUxLDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIAkJCQkgICAgIHN0cnVj dCB0eXBlICp0eXBlKTsKICBzdGF0aWMgdm9pZCBnZW5fc3RydWN0X3JlZiAoc3RydWN0IGV4cHJl c3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSAgICBzdHJ1Y3QgYXhzX3Zh bHVlICp2YWx1ZSwKLUBAIC01MzksNyArNTQwLDcgQEAgZ2VuX2ZldGNoIChzdHJ1Y3QgYWdlbnRf ZXhwciAqYXgsIHN0cnVjdAorQEAgLTUzOCw3ICs1MzksNyBAQAogICAgIHJpZ2h0IHNoaWZ0IGl0 IGJ5IC1ESVNUQU5DRSBiaXRzIGlmIERJU1RBTkNFIDwgMC4gIFRoaXMgZ2VuZXJhdGVzCiAgICAg dW5zaWduZWQgKGxvZ2ljYWwpIHJpZ2h0IHNoaWZ0cy4gICovCiAgc3RhdGljIHZvaWQKQEAgLTEx NjAsNyArMTE2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMK ICB7CiAgICBpZiAoZGlzdGFuY2UgPiAwKQogICAgICB7Ci1AQCAtNTkzLDcgKzU5NCw3IEBAIGdl bl9mcmFtZV9sb2NhbHNfYWRkcmVzcyAoc3RydWN0IGdkYmFyY2gKK0BAIC01OTIsNyArNTkzLDcg QEAKICAgICBwcm9ncmFtbWluZyBpbiBNTCwgaXQgd291bGQgYmUgY2xlYXJlciB3aHkgdGhlc2Ug YXJlIHRoZSBzYW1lCiAgICAgdGhpbmcuICAqLwogIHN0YXRpYyB2b2lkCkBAIC0xMTY5LDcgKzEx NjksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgewogICAg LyogSXQgd291bGQgc3VmZmljZSB0byBzaW1wbHkgcHVzaCB0aGUgb2Zmc2V0IGFuZCBhZGQgaXQs IGJ1dCB0aGlzCiAgICAgICBtYWtlcyBpdCBlYXNpZXIgdG8gcmVhZCBwb3NpdGl2ZSBhbmQgbmVn YXRpdmUgb2Zmc2V0cyBpbiB0aGUKLUBAIC0xMjQ5LDcgKzEyNTAsNyBAQCBnZW5fYWRkcmVzc19v ZiAoc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzCitAQCAtMTI0OCw3ICsxMjQ5LDcgQEAKICBzdGF0 aWMgdm9pZAogIGdlbl9iaXRmaWVsZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIHN0cnVj dCBhZ2VudF9leHByICpheCwKICAJCSAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsIHN0cnVjdCB0 eXBlICp0eXBlLApAQCAtMTE3OCw3ICsxMTc4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9heC1nZGIuYwogIHsKICAgIC8qIE5vdGUgdGhhdCBvcHNbaV0gZmV0Y2hlcyA4IDw8 IGkgYml0cy4gICovCiAgICBzdGF0aWMgZW51bSBhZ2VudF9vcCBvcHNbXQotQEAgLTEyODQsMTMg KzEyODUsMTMgQEAgZ2VuX2JpdGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cAorQEAg LTEyODMsMTMgKzEyODQsMTMgQEAKICAKICAgIC8qIFRoZSBmaXJzdCBhbmQgb25lLWFmdGVyLWxh c3QgYml0cyBpbiB0aGUgZmllbGQsIGJ1dCByb3VuZGVkIGRvd24KICAgICAgIGFuZCB1cCB0byBi eXRlIGJvdW5kYXJpZXMuICAqLwpAQCAtMTE5Nyw3ICsxMTk3LDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIAogICAgLyogVGhlIGluZGV4IGluIG9wcyBvZiB0 aGUgb3Bjb2RlIHdlJ3JlIGNvbnNpZGVyaW5nLiAgKi8KICAgIGludCBvcDsKLUBAIC0xNDA5LDcg KzE0MTAsNyBAQCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCitAQCAt MTQwOCw3ICsxNDA5LDcgQEAKICBzdGF0aWMgdm9pZAogIGdlbl9wcmltaXRpdmVfZmllbGQgKHN0 cnVjdCBleHByZXNzaW9uICpleHAsCiAgCQkgICAgIHN0cnVjdCBhZ2VudF9leHByICpheCwgc3Ry dWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMjA2LDcgKzEyMDYsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgewogICAgLyogSXMgdGhpcyBhIGJpdGZpZWxk PyAgKi8KICAgIGlmIChUWVBFX0ZJRUxEX1BBQ0tFRCAodHlwZSwgZmllbGRubykpCi1AQCAtMTQz NCw3ICsxNDM1LDcgQEAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IGV4cHJlc3Npb24gKgor QEAgLTE0MzMsNyArMTQzNCw3IEBACiAgc3RhdGljIGludAogIGdlbl9zdHJ1Y3RfcmVmX3JlY3Vy c2l2ZSAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJ CSAgc3RydWN0IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMjE1LDExICsxMjE1LDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICB7CiAgICBpbnQgaSwgcnNsdDsK ICAgIGludCBuYmFzZXMgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOwotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZW5lcmFsLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYXgtZ2VuZXJhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEw Mjcub3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTgyMzUxNDU2ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdlbmVyYWwuYwkyMDE1LTExLTAy IDIxOjIzOjEzLjIwMTM2NDc0MSArMDEwMAotQEAgLTE5Miw3ICsxOTIsNyBAQCBheF96ZXJvX2V4 dCAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBuCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDYwNTEwMTczICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F4LWdlbmVyYWwuYwkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAorQEAgLTE5OSw3ICsxOTksNyBAQAogIAogIC8qIEFwcGVu ZCBhIHRyYWNlX3F1aWNrIGluc3RydWN0aW9uIHRvIEVYUFIsIHRvIHJlY29yZCBOIGJ5dGVzLiAg Ki8KICB2b2lkCkBAIC0xMjI4LDExICsxMjI4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYXgtZ2VuZXJhbC5jCiAgewogICAgLyogTiBtdXN0IGZpdCBpbiBhIGJ5dGUuICAq LwogICAgaWYgKG4gPCAwIHx8IG4gPiAyNTUpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2F4LmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXguaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2F4LmgJMjAxNS0xMS0wMiAyMToy MzoxMS4xODMzNTE0NjMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXguaAky MDE1LTExLTAyIDIxOjIzOjEzLjIwMTM2NDc0MSArMDEwMAotQEAgLTIwNyw3ICsyMDcsNyBAQCBl eHRlcm4gdm9pZCBheF9leHQgKHN0cnVjdCBhZ2VudF9leHByICpFCistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvYXguaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA2MDUxMDE3MyArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC5oCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTI5NTMwMDQ0ICswMjAwCitAQCAtMjEwLDcgKzIxMCw3IEBACiAgZXh0ZXJuIHZvaWQgYXhfemVy b19leHQgKHN0cnVjdCBhZ2VudF9leHByICpFWFBSLCBpbnQgTik7CiAgCiAgLyogQXBwZW5kIGEg dHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwpA QCAtMTI0MSwxMSArMTI0MSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4 LmgKICAKICAvKiBBcHBlbmQgYSBnb3RvIG9wIHRvIEVYUFIuICBPUCBpcyB0aGUgYWN0dWFsIG9w IChtdXN0IGJlIGFvcF9nb3RvIG9yCiAgICAgYW9wX2lmX2dvdG8pLiAgV2UgYXNzdW1lIHdlIGRv bid0IGtub3cgdGhlIHRhcmdldCBvZmZzZXQgeWV0LAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYnJl YWtwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv YnJlYWtwb2ludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTg4MzUxNDk2ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIw NTM2NDc2NyArMDEwMAotQEAgLTIyMTUsOSArMjIxNSw5IEBAIHNob3VsZF9iZV9pbnNlcnRlZCAo c3RydWN0IGJwX2xvY2F0aW9uICoKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9i cmVha3BvaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjc1MTAyMzAgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvYnJlYWtwb2ludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMx NTMwMDYwICswMjAwCitAQCAtMjI1MSw5ICsyMjUxLDkgQEAKICAJewogIAkgIGZwcmludGZfdW5m aWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICAJCQkgICAgICAiaW5mcnVuOiBzdGVwcGluZyBwYXN0IG5v bi1zdGVwcGFibGUgd2F0Y2hwb2ludC4gIgpAQCAtMTI1Nyw3ICsxMjU3LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50LmMKICAJfQogICAgICAgIHJldHVybiAw OwogICAgICB9Ci1AQCAtNzA1Myw3ICs3MDUzLDcgQEAgYnJlYWtwb2ludF9hZGRyZXNzX21hdGNo IChzdHJ1Y3QgYWRkcmVzcworQEAgLTcxODEsNyArNzE4MSw3IEBACiAgCiAgc3RhdGljIGludAog IGJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaF9yYW5nZSAoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmFz cGFjZTEsIENPUkVfQUREUiBhZGRyMSwKQEAgLTEyNjYsNyArMTI2Niw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5jCiAgCQkJCUNPUkVfQUREUiBhZGRyMikK ICB7CiAgICByZXR1cm4gKChnZGJhcmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9n ZGJhcmNoICgpKQotQEAgLTExMzg3LDcgKzExMzg3LDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRj aHBvaW50IChzdHJ1Y3QgdmFsdQorQEAgLTExNTM0LDcgKzExNTM0LDcgQEAKICAJCSAgICAgICYm IFRZUEVfQ09ERSAodnR5cGUpICE9IFRZUEVfQ09ERV9BUlJBWSkpCiAgCQl7CiAgCQkgIENPUkVf QUREUiB2YWRkciA9IHZhbHVlX2FkZHJlc3MgKHYpOwpAQCAtMTI3NSwxMSArMTI3NSwxMSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuYwogIAkJICBpbnQgbnVt X3JlZ3M7CiAgCiAgCQkgIGxlbiA9ICh0YXJnZXRfZXhhY3Rfd2F0Y2hwb2ludHMKLUluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5oCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2JyZWFrcG9pbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTExLTAyIDIxOjIzOjExLjE5MDM1MTUw OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3BvaW50LmgJMjAxNS0x MS0wMiAyMToyMzoxMy4yMDYzNjQ3NzMgKzAxMDAKLUBAIC0yMzcsNyArMjM3LDcgQEAgc3RydWN0 IGJwX3RhcmdldF9pbmZvCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYnJlYWtw b2ludC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDY4NTEwMjM4ICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2JyZWFrcG9pbnQuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2 OCArMDIwMAorQEAgLTIzNyw3ICsyMzcsNyBAQAogIAogICAgLyogSWYgdGhpcyBpcyBhIHJhbmdl ZCBicmVha3BvaW50LCB0aGVuIHRoaXMgZmllbGQgY29udGFpbnMgdGhlCiAgICAgICBsZW5ndGgg b2YgdGhlIHJhbmdlIHRoYXQgd2lsbCBiZSB3YXRjaGVkIGZvciBleGVjdXRpb24uICAqLwpAQCAt MTI4OCw3ICsxMjg4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9icmVha3Bv aW50LmgKICAKICAgIC8qIElmIHRoZSBicmVha3BvaW50IGxpdmVzIGluIG1lbW9yeSBhbmQgcmVh ZGluZyB0aGF0IG1lbW9yeSB3b3VsZAogICAgICAgZ2l2ZSBiYWNrIHRoZSBicmVha3BvaW50LCBp bnN0ZWFkIG9mIHRoZSBvcmlnaW5hbCBjb250ZW50cywgdGhlbgotQEAgLTQxMyw3ICs0MTMsNyBA QCBzdHJ1Y3QgYnBfbG9jYXRpb24KK0BAIC00MTMsNyArNDEzLDcgQEAKICAgIC8qIEZvciBoYXJk d2FyZSB3YXRjaHBvaW50cywgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSByZWdpb24gYmVpbmcKICAg ICAgIHdhdGNoZWQuICBGb3IgaGFyZHdhcmUgcmFuZ2VkIGJyZWFrcG9pbnRzLCB0aGUgc2l6ZSBv ZiB0aGUKICAgICAgIGJyZWFrcG9pbnQgcmFuZ2UuICAqLwpAQCAtMTI5NywxMSArMTI5NywxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuaAogIAogICAgLyog VHlwZSBvZiBoYXJkd2FyZSB3YXRjaHBvaW50LiAgKi8KICAgIGVudW0gdGFyZ2V0X2h3X2JwX3R5 cGUgd2F0Y2hwb2ludF90eXBlOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLWxh bmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLWxhbmcuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMTkwMzUxNTA5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Mt bGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA2MzY0NzczICswMTAwCi1AQCAtMTg3LDcgKzE4 Nyw3IEBAIGNfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsIHMKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA2 OTUxMDI0NiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLWxhbmcuYwkyMDE2 LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAorQEAgLTE4Niw3ICsxODYsNyBAQAogIAog IHZvaWQKICBjX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAq dHlwZSwgCkBAIC0xMzEwLDcgKzEzMTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2MtbGFuZy5jCiAgCSAgICBjb25zdCBjaGFyICp1c2VyX2VuY29kaW5nLCBpbnQgZm9yY2Vf ZWxsaXBzZXMsCiAgCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cykKICB7Ci1AQCAtNjc2LDcgKzY3Niw3IEBAIGV2YWx1YXRlX3N1YmV4cF9jIChzdHJ1Y3QgdHlw ZSAqZXhwZWN0X3QKK0BAIC02NzUsNyArNjc1LDcgQEAKICAJICB9CiAgCWVsc2UKICAJICB7CkBA IC0xMzE5LDcgKzEzMTksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFu Zy5jCiAgCiAgCSAgICAvKiBXcml0ZSB0aGUgdGVybWluYXRpbmcgY2hhcmFjdGVyLiAgKi8KICAJ ICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdUSCAodHlwZSk7ICsraSkKLUBAIC02ODUsNyAr Njg1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX2MgKHN0cnVjdCB0eXBlICpleHBlY3RfdAorQEAgLTY4 NCw3ICs2ODQsNyBAQAogIAkgICAgaWYgKHNhdGlzZnlfZXhwZWN0ZWQpCiAgCSAgICAgIHsKICAJ CUxPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOwpAQCAtMTMyOCwxMSArMTMyOCwxMSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5jCiAgCiAgCQlpZiAoZ2V0X2Rp c2NyZXRlX2JvdW5kcyAoVFlQRV9JTkRFWF9UWVBFIChleHBlY3RfdHlwZSksCiAgCQkJCQkgJmxv d19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYy1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYy1sYW5nLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jLWxhbmcuaAkyMDE1 LTExLTAyIDIxOjIzOjExLjE5MTM1MTUxNSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9jLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNjM2NDc3MyArMDEwMAotQEAgLTc0 LDcgKzc0LDcgQEAgZXh0ZXJuIHZvaWQgY19wcmludF90eXBlZGVmIChzdHJ1Y3QgdHlwZQorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMDY5NTEwMjQ2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFuZy5o CTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtNzcsNyArNzcsNyBAQAog IAkJCSAgICAgc3RydWN0IHVpX2ZpbGUgKik7CiAgCiAgZXh0ZXJuIHZvaWQgY192YWxfcHJpbnQg KHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosCkBAIC0xMzQxLDcgKzEzNDEsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9m aWxlICosIGludCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotQEAgLTk0LDcgKzk0LDcgQEAgZXh0ZXJuIHZvaWQg Y19wcmludGNoYXIgKGludCwgc3RydWN0IHR5cAorQEAgLTk3LDcgKzk3LDcgQEAKICBleHRlcm4g dm9pZCBjX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSwKICAJCQlzdHJ1Y3QgdHlw ZSAqZWx0dHlwZSwKICAJCQljb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAtMTM1MCwyOCArMTM1 MCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5oCiAgCQkJY29u c3QgY2hhciAqdXNlcl9lbmNvZGluZywKICAJCQlpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkJY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotQEAgLTEyMCwxNCArMTIw LDE0IEBAIGV4dGVybiB2b2lkIGNwX3ByaW50X2NsYXNzX21lbWJlciAoY29uc3QKLSAJCQkJICAg c3RydWN0IHVpX2ZpbGUgKiwgY2hhciAqKTsKLSAKLSBleHRlcm4gdm9pZCBjcF9wcmludF92YWx1 ZV9maWVsZHMgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCi0tCQkJCSAgIGNvbnN0IGdk Yl9ieXRlICosIGludCwgQ09SRV9BRERSLAotKwkJCQkgICBjb25zdCBnZGJfYnl0ZSAqLCBMT05H RVNULCBDT1JFX0FERFIsCi0gCQkJCSAgIHN0cnVjdCB1aV9maWxlICosIGludCwKLSAJCQkJICAg Y29uc3Qgc3RydWN0IHZhbHVlICosCi0gCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICosCi0gCQkJCSAgIHN0cnVjdCB0eXBlICoqLCBpbnQpOwotIAotIGV4dGVybiB2b2lk IGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlwZSAqLAotLQkJCQkJY29uc3Qg Z2RiX2J5dGUgKiwgaW50LCBDT1JFX0FERFIsCi0rCQkJCQljb25zdCBnZGJfYnl0ZSAqLCBMT05H RVNULCBDT1JFX0FERFIsCi0gCQkJCQlzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCi0gCQkJCQljb25z dCBzdHJ1Y3QgdmFsdWUgKiwKLSAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICosCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtdmFscHJpbnQuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToy MzoxMS4xOTEzNTE1MTUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxw cmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA3MzY0NzgwICswMTAwCi1AQCAtMjQyLDcgKzI0 Miw3IEBAIGNfdmFsX3ByaW50X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28KKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0 Mi4wNzA1MTAyNTQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYy12YWxwcmlu dC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtMjQ0LDcgKzI0NCw3 IEBACiAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpID4gMCAmJiBUWVBFX0xFTkdUSCAodW5yZXNv bHZlZF9lbHR0eXBlKSA+IDApCiAgICAgIHsKICAgICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGln aF9ib3VuZDsKQEAgLTEzODAsNyArMTM2Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYy12YWxwcmludC5jCiAgICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRf dHlwZV9hcmNoICh0eXBlKTsKICAgICAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICAgICAgdW5zaWduZWQgaW50IGkgPSAwOwkv KiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVkLiAgKi8KLUBAIC0zMTYsOCArMzE2LDggQEAg Y192YWxfcHJpbnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjbworQEAgLTMxOCw4ICszMTgs OCBAQAogIAkgIGlmIChjcF9pc192dGJsX3B0cl90eXBlIChlbHR0eXBlKSkKICAJICAgIHsKICAJ ICAgICAgaSA9IDE7CkBAIC0xMzkxLDcgKzEzNzQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2MtdmFscHJpbnQuYwogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIHsKLUBAIC0z OTQsNyArMzk0LDcgQEAgY192YWxfcHJpbnRfc3RydWN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgYwor QEAgLTM5Niw3ICszOTYsNyBAQAogIAkgLWZ2dGFibGVfdGh1bmtzLiAgKE90aGVyd2lzZSwgbG9v ayB1bmRlcgogIAkgVFlQRV9DT0RFX1BUUi4pICAqLwogICAgICAgIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlwZSk7CkBAIC0xNDAwLDcgKzEzODMsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtdmFscHJpbnQuYwogIAkJICAgICsgVFlQRV9G SUVMRF9CSVRQT1MgKHR5cGUsCiAgCQkJCQkgVlRCTF9GTkFERFJfT0ZGU0VUKSAvIDgpOwogICAg ICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBWVEJM X0ZOQUREUl9PRkZTRVQpOwotQEAgLTQ5Myw3ICs0OTMsNyBAQCBjX3ZhbF9wcmludF9tZW1iZXJw dHIgKHN0cnVjdCB0eXBlICp0eXBlCitAQCAtNDk1LDcgKzQ5NSw3IEBACiAgCiAgdm9pZAogIGNf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBA IC0xNDA5LDI5ICsxMzkyLDE4IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12 YWxwcmludC5jCiAgCSAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAg CSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUBAIC01NjUsNyArNTY1LDggQEAg Y192YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdAotIAkgICAgICAgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi0gewotICAgc3RydWN0IHR5cGUg KnR5cGUsICpyZWFsX3R5cGUsICp2YWxfdHlwZTsKLS0gIGludCBmdWxsLCB0b3AsIHVzaW5nX2Vu YzsKLSsgIGludCBmdWxsLCB1c2luZ19lbmM7Ci0rICBMT05HRVNUIHRvcDsKLSAgIHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9uczsKLSAKLSAgIG9wdHMuZGVyZWZfcmVm ID0gMTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtYWJpLmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtYWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE5MjM1 MTUyMiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuYwkyMDE1LTEx LTAyIDIxOjIzOjEzLjIwNzM2NDc4MCArMDEwMAotQEAgLTY0LDEyICs2NCwxMiBAQCBpc19vcGVy YXRvcl9uYW1lIChjb25zdCBjaGFyICpuYW1lKQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2NwLWFiaS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDcwNTEwMjU0ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NwLWFiaS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMy NTMwMDY4ICswMjAwCitAQCAtNjQsMTIgKzY0LDEyIEBACiAgICByZXR1cm4gKCpjdXJyZW50X2Nw X2FiaS5pc19vcGVyYXRvcl9uYW1lKSAobmFtZSk7CiAgfQogIAogLWludAogK0xPTkdFU1QKICBi YXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKLS0JCSAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJl c3MsCi0rCQkgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKKyAJ CSAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAogIAkJICBjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CiAtICBpbnQgcmVzID0gMDsKQEAgLTE0MzksNyArMTQx MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtYWJpLmMKICAKICAgIGdk Yl9hc3NlcnQgKGN1cnJlbnRfY3BfYWJpLmJhc2VjbGFzc19vZmZzZXQgIT0gTlVMTCk7CiAgCi1A QCAtOTYsNyArOTYsNyBAQCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50 CitAQCAtOTYsNyArOTYsNyBAQAogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVfdmlydHVhbF9mbl9m aWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsCiAgCQkJc3RydWN0IGZuX2ZpZWxkICpmLCBpbnQg aiwKQEAgLTE0NDgsMjAgKzE0MjAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9jcC1hYmkuYwogIHsKICAgIGlmICgoY3VycmVudF9jcF9hYmkudmlydHVhbF9mbl9maWVsZCkg PT0gTlVMTCkKICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtMTA2LDcgKzEwNiw3IEBAIHZhbHVlX3Zp cnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmEKLSAKLSBzdHJ1Y3QgdHlwZSAqCi0gdmFs dWVfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwKLS0JCSBpbnQgKnRvcCwg aW50ICp1c2luZ19lbmMpCi0rCQkgTE9OR0VTVCAqdG9wLCBpbnQgKnVzaW5nX2VuYykKLSB7Ci0g ICBzdHJ1Y3QgdHlwZSAqcmV0ID0gTlVMTDsKLSAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvY3AtYWJpLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtYWJpLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9jcC1hYmkuaAky MDE1LTExLTAyIDIxOjIzOjExLjE5MjM1MTUyMiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9jcC1hYmkuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwNzM2NDc4MCArMDEwMAotQEAg LTEwOCw3ICsxMDgsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2Zp CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvY3AtYWJpLmgJMjAxNi0wNy0xNiAx NDozMzo0Mi4wNzA1MTAyNTQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3At YWJpLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BAIC0xMDgsNyArMTA4 LDcgQEAKICAJCQkJCSAgICAgc3RydWN0IGZuX2ZpZWxkICpmLAogIAkJCQkJICAgICBpbnQgaiwK ICAJCQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xNDcwLDIyICsxNDMzLDEzIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY3AtYWJpLmgKICAKICAKICAvKiBUcnkgdG8g ZmluZCB0aGUgcnVuLXRpbWUgdHlwZSBvZiBWQUxVRSwgdXNpbmcgQysrIHJ1bi10aW1lIHR5cGUK LUBAIC0xMzUsNyArMTM1LDcgQEAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfdmlydHVhbF9m bl9maQotICAgIEZVTEwsIFRPUCwgYW5kIFVTSU5HX0VOQyBjYW4gZWFjaCBiZSB6ZXJvLCBpbiB3 aGljaCBjYXNlIHdlIGRvbid0Ci0gICAgcHJvdmlkZSB0aGUgY29ycmVzcG9uZGluZyBwaWVjZSBv ZiBpbmZvcm1hdGlvbi4gICovCi0gZXh0ZXJuIHN0cnVjdCB0eXBlICp2YWx1ZV9ydHRpX3R5cGUg KHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCAqZnVsbCwgaW50ICp0b3AsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCAqZnVsbCwgTE9OR0VTVCAqdG9wLAotIAkJCQkgICAgIGludCAqdXNpbmdfZW5j KTsKLSAKLSAvKiBDb21wdXRlIHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFzcyB3aGljaCBpcyB0 aGUgSU5ERVh0aCBiYXNlY2xhc3MKLUBAIC0xNDQsMTEgKzE0NCwxMSBAQCBleHRlcm4gc3RydWN0 IHR5cGUgKnZhbHVlX3J0dGlfdHlwZSAoc3RyCitAQCAtMTQ0LDExICsxNDQsMTEgQEAKICAgICBj b250ZW50cyBvZiBWQUwuICBUaGUgcmVzdWx0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFz cyB2YWx1ZQogICAgIHJlbGF0aXZlIHRvICh0aGUgYWRkcmVzcyBvZikoQVJHKSArIE9GRlNFVC4g ICovCiAgCiAtZXh0ZXJuIGludCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwK IC0JCQkgICAgIGludCBpbmRleCwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJICAgICBp bnQgZW1iZWRkZWRfb2Zmc2V0LAorLQkJCSAgICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCiAt CQkJICAgICBDT1JFX0FERFIgYWRkcmVzcywKIC0JCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsKTsKICtleHRlcm4gTE9OR0VTVCBiYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlw ZSwKQEAgLTE0OTYsNDggKzE0NTAsMjggQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9jcC1hYmkuaAogIAogIC8qIERlc2NyaWJlIHRoZSB0YXJnZXQgb2YgYSBwb2ludGVyIHRvIG1l dGhvZC4gIENPTlRFTlRTIGlzIHRoZSBieXRlCiAgICAgcGF0dGVybiByZXByZXNlbnRpbmcgdGhl IHBvaW50ZXIgdG8gbWV0aG9kLiAgVFlQRSBpcyB0aGUgcG9pbnRlciB0bwotQEAgLTIyNywxMiAr MjI3LDEzIEBAIHN0cnVjdCBjcF9hYmlfb3BzCitAQCAtMjI3LDEyICsyMjcsMTIgQEAKICAgIHN0 cnVjdCB2YWx1ZSAqKCp2aXJ0dWFsX2ZuX2ZpZWxkKSAoc3RydWN0IHZhbHVlICoqYXJnMXAsCiAg CQkJCSAgICAgc3RydWN0IGZuX2ZpZWxkICogZiwKICAJCQkJICAgICBpbnQgaiwgc3RydWN0IHR5 cGUgKiB0eXBlLAogLQkJCQkgICAgIGludCBvZmZzZXQpOwogKwkJCQkgICAgIExPTkdFU1Qgb2Zm c2V0KTsKICAgIHN0cnVjdCB0eXBlICooKnJ0dGlfdHlwZSkgKHN0cnVjdCB2YWx1ZSAqdiwgaW50 ICpmdWxsLAotLQkJCSAgICAgaW50ICp0b3AsIGludCAqdXNpbmdfZW5jKTsKKyAJCQkgICAgIExP TkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpOwogLSAgaW50ICgqYmFzZWNsYXNzX29mZnNldCkg KHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsCi0tCQkJICAgY29uc3QgYmZkX2J5dGUgKnZh bGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCistCQkJICAgY29uc3QgYmZkX2J5dGUgKnZhbGFk ZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAogLQkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7Ci0rCQkJICAgICBMT05HRVNUICp0b3AsIGludCAqdXNp bmdfZW5jKTsKICsgIExPTkdFU1QgKCpiYXNlY2xhc3Nfb2Zmc2V0KSAoc3RydWN0IHR5cGUgKnR5 cGUsIGludCBpbmRleCwKLSsJCQkgICAgICAgY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsCi0rCQkJ ICAgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCQkg ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOworKwkJCSAgICAgICBjb25zdCBiZmRfYnl0 ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisrCQkJICAgICAgIENPUkVfQURE UiBhZGRyZXNzLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCk7CiAgICB2b2lkICgqcHJpbnRfbWV0 aG9kX3B0cikgKGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKICAJCQkgICAgc3RydWN0IHR5cGUg KnR5cGUsCiAgCQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9jcC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2NwLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkzMzUxNTI5ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMDgzNjQ3ODcgKzAxMDAKLUBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyB2b2lk IGNwX3ByaW50X3N0YXRpY19maWVsZCAoc3RydWMKLSAJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKik7Ci0gCi0gc3RhdGljIHZvaWQgY3BfcHJpbnRfdmFsdWUgKHN0cnVj dCB0eXBlICosIHN0cnVjdCB0eXBlICosCi0tCQkJICAgIGNvbnN0IGdkYl9ieXRlICosIGludCwK LSsJCQkgICAgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VTVCwKLSAJCQkgICAgQ09SRV9BRERSLCBz dHJ1Y3QgdWlfZmlsZSAqLAotIAkJCSAgICBpbnQsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotIAkJ CSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAotQEAgLTE1NCw3ICsxNTQs NyBAQCBjcF9pc192dGJsX21lbWJlciAoc3RydWN0IHR5cGUgKnR5cGUpCi0gCi0gdm9pZAotIGNw X3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB0eXBlICpyZWFs X3R5cGUsCi0tCQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBvZmZzZXQsCi0r CQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1Qgb2Zmc2V0LAotIAkJICAg ICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJICAgICAg IGludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSAgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0zMzQsNyArMzM0LDcgQEAg Y3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNzE1 MTAyNjIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtdmFscHJpbnQuYwky MDE2LTA3LTE2IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAorQEAgLTMzNCw3ICszMzQsNyBAQAog IAkJfQogIAkgICAgICBlbHNlIGlmIChpID09IHZwdHJfZmllbGRubyAmJiB0eXBlID09IHZwdHJf YmFzZXR5cGUpCiAgCQl7CkBAIC0xNTQ2LDU3ICsxNDgwLDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvY3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdHlwZSAqaV90eXBlID0g VFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKTsKICAKICAJCSAgaWYgKHZhbHByaW50X2NoZWNrX3Zh bGlkaXR5IChzdHJlYW0sIGlfdHlwZSwgaV9vZmZzZXQsIHZhbCkpCi1AQCAtNDE3LDcgKzQxNyw3 IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKLSAKLSB2b2lkCi0g Y3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBlICp0eXBlLAotLQkJCSAgICBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IG9mZnNldCwKLSsJCQkgICAgY29uc3QgZ2RiX2J5 dGUgKnZhbGFkZHIsIExPTkdFU1Qgb2Zmc2V0LAotIAkJCSAgICBDT1JFX0FERFIgYWRkcmVzcywK LSAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkJICAgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTQzNCw3ICs0MzQsOCBAQCBjcF9wcmludF92YWx1 ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUKLSAJCQkJICAgICBUQVJHRVRfQ0hBUl9CSVQgKiBU WVBFX0xFTkdUSCAodHlwZSkpKQotICAgICB7Ci0gICAgICAgc3RydWN0IHZhbHVlICp2YWx1ZTsK LS0gICAgICBpbnQgZnVsbCwgdG9wLCB1c2luZ19lbmM7Ci0rICAgICAgaW50IGZ1bGwsIHVzaW5n X2VuYzsKLSsgICAgICBMT05HRVNUIHRvcDsKLSAKLSAgICAgICAvKiBVZ2gsIHdlIGhhdmUgdG8g Y29udmVydCBiYWNrIHRvIGEgdmFsdWUgaGVyZS4gICovCi0gICAgICAgdmFsdWUgPSB2YWx1ZV9m cm9tX2NvbnRlbnRzX2FuZF9hZGRyZXNzICh0eXBlLCB2YWxhZGRyICsgb2Zmc2V0LAotQEAgLTQ1 OSw3ICs0NjAsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUKLSAK LSBzdGF0aWMgdm9pZAotIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0 IHR5cGUgKnJlYWxfdHlwZSwKLS0JCWNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgb2Zmc2V0 LAotKwkJY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1Qgb2Zmc2V0LAotIAkJQ09SRV9B RERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQlpbnQgcmVjdXJzZSwgY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucywKLUBAIC00NjksNyArNDcwLDcgQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1YwotICAgICA9IChzdHJ1Y3QgdHlwZSAqKikgb2JzdGFja19uZXh0X2Zy ZWUgKCZkb250X3ByaW50X3ZiX29ic3RhY2spOwotICAgc3RydWN0IG9ic3RhY2sgdG1wX29ic3Rh Y2sgPSBkb250X3ByaW50X3ZiX29ic3RhY2s7Ci0gICBpbnQgaSwgbl9iYXNlY2xhc3NlcyA9IFRZ UEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci0tICBpbnQgdGhpc29mZnNldDsKLSsgIExPTkdFU1Qg dGhpc29mZnNldDsKLSAgIHN0cnVjdCB0eXBlICp0aGlzdHlwZTsKLSAKLSAgIGlmIChkb250X3By aW50X3ZiID09IDApCi1AQCAtNDgzLDcgKzQ4NCw3IEBAIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgc3RydWMKLSAKLSAgIGZvciAoaSA9IDA7IGkgPCBuX2Jhc2VjbGFzc2VzOyBp KyspCi0gICAgIHsKLS0gICAgICBpbnQgYm9mZnNldCA9IDA7Ci0rICAgICAgTE9OR0VTVCBib2Zm c2V0ID0gMDsKLSAgICAgICBpbnQgc2tpcCA9IDA7Ci0gICAgICAgc3RydWN0IHR5cGUgKmJhc2Vj bGFzcyA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpKSk7Ci0gICAgICAg Y29uc3QgY2hhciAqYmFzZW5hbWUgPSBUWVBFX05BTUUgKGJhc2VjbGFzcyk7Ci1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2QtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3Jp Zy9nZGIvZC1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTMzNTE1MjkgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZC1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDgz NjQ3ODcgKzAxMDAKLUBAIC04MSw3ICs4MSw3IEBAIGV4dGVybiBzdHJ1Y3QgYmxvY2tfc3ltYm9s IGRfbG9va3VwX25lc3QKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9kLWxhbmcu aAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MTUxMDI2MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9kLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3NiArMDIwMAor QEAgLTgxLDcgKzgxLDcgQEAKICAvKiBEZWZpbmVkIGluIGQtdmFscHJpbnQuYyAgKi8KICAKICBl eHRlcm4gdm9pZCBkX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRl ICp2YWxhZGRyLApAQCAtMTYwNSwyMCArMTQ5MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2QtbGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9kLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZC12YWxw cmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZC12 YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkzMzUxNTI5ICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwODM2 NDc4NyArMDEwMAotQEAgLTI5LDcgKzI5LDcgQEAKLSAKLSBzdGF0aWMgaW50Ci0gZHluYW1pY19h cnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0t CQkgICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCQkgICAgTE9O R0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotIAkJICAgIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsLAotIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQot QEAgLTczLDkgKzczLDkgQEAgZHluYW1pY19hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwZSwg YworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2QtdmFscHJpbnQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA3MTUxMDI2MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9kLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzM1MzAwNzYgKzAyMDAKK0BAIC03 Myw5ICs3Myw5IEBACiAgCiAgLyogSW1wbGVtZW50cyB0aGUgbGFfdmFsX3ByaW50IHJvdXRpbmUg Zm9yIGxhbmd1YWdlIEQuICAqLwogIHZvaWQKQEAgLTE2MzEsMTEgKzE1MTAsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kLXZhbHByaW50LmMKICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgaW50IHJldDsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZG91Ymxlc3QuYworSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9kb3VibGVzdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvZG91Ymxlc3QuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE5NDM1 MTUzNSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kb3VibGVzdC5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjA4MzY0Nzg3ICswMTAwCi1AQCAtNzY1LDcgKzc2NSw3IEBAIGZsb2F0 Zm9ybWF0X2Zyb21fZG91Ymxlc3QgKGNvbnN0IHN0cnVjdAorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNzI1MTAyNzAgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZG91Ymxlc3QuYwkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjUzMzUzMDA3NiArMDIwMAorQEAgLTc4NCw3ICs3ODQsNyBAQAogICAgIGJ1dCBub3Qg cGFzc2VkIG9uIGJ5IEdEQi4gIFRoaXMgc2hvdWxkIGJlIGZpeGVkLiAgKi8KICAKICBzdGF0aWMg Y29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoKQEAgLTE2NDQsNyArMTUyMyw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZG91Ymxlc3QuYwogIHsKICAgIGNvbnN0IHN0cnVjdCBm bG9hdGZvcm1hdCAqZm9ybWF0OwogIAotQEAgLTc5Myw4ICs3OTMsOCBAQCBmbG9hdGZvcm1hdF9m cm9tX2xlbmd0aCAoc3RydWN0IGdkYmFyY2gKK0BAIC04MTIsOCArODEyLDggQEAKICAgIGVsc2UK ICAgICAgZm9ybWF0ID0gTlVMTDsKICAgIGlmIChmb3JtYXQgPT0gTlVMTCkKQEAgLTE2NTUsMTEg KzE1MzQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kb3VibGVzdC5jCiAg ICByZXR1cm4gZm9ybWF0OwogIH0KICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv ZHdhcmYybG9jLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZHdhcmYybG9jLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kd2FyZjJsb2Mu YwkyMDE1LTExLTAyIDIxOjIzOjExLjE5NzM1MTU1NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9kd2FyZjJsb2MuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwOTM2NDc5MyArMDEw MAotQEAgLTE2MzIsMTkgKzE2MzIsMTkgQEAgaW5zZXJ0X2JpdHMgKHVuc2lnbmVkIGludCBkYXR1 bSwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA3NjUxMDMwMiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9kd2FyZjJsb2MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3NiArMDIwMAorQEAgLTE2 MzgsMTkgKzE2MzgsMTkgQEAKICAgICBCSVRTX0JJR19FTkRJQU4gaXMgdGFrZW4gZGlyZWN0bHkg ZnJvbSBnZGJhcmNoLiAgKi8KICAKICBzdGF0aWMgdm9pZApAQCAtMTY4NSw3ICsxNTY0LDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogIAogICAgZGVzdF9h dmFpbCA9IDggLSBkZXN0X29mZnNldF9iaXRzICUgODsKICAKLUBAIC0xNjgyLDEzICsxNjgyLDEz IEBAIHN0YXRpYyB2b2lkCitAQCAtMTY4OCwxMyArMTY4OCwxMyBAQAogIHJlYWRfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnYpCiAgewogICAgaW50IGk7CkBAIC0xNzAxLDcgKzE1ODAsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCiAgICBzaXplX3Qg YnVmZmVyX3NpemUgPSAwOwogICAgZ2RiX2J5dGUgKmJ1ZmZlciA9IE5VTEw7CiAgICBzdHJ1Y3Qg Y2xlYW51cCAqY2xlYW51cDsKLUBAIC0xNzE1LDggKzE3MTUsOCBAQCByZWFkX3BpZWNlZF92YWx1 ZSAoc3RydWN0IHZhbHVlICp2KQorQEAgLTE3MjEsOCArMTcyMSw4IEBACiAgICBmb3IgKGkgPSAw OyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKICAgICAgewogICAg ICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3MTIs NyArMTU5MSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMK ICAgICAgICBjb25zdCBnZGJfYnl0ZSAqaW50ZXJtZWRpYXRlX2J1ZmZlcjsKICAKICAgICAgICAv KiBDb21wdXRlIHNpemUsIHNvdXJjZSwgYW5kIGRlc3RpbmF0aW9uIG9mZnNldHMgZm9yIGNvcHlp bmcsIGluCi1AQCAtMTg1NiwxMyArMTg1NiwxMyBAQCBzdGF0aWMgdm9pZAorQEAgLTE4NjIsMTMg KzE4NjIsMTMgQEAKICB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0cnVj dCB2YWx1ZSAqZnJvbSkKICB7CiAgICBpbnQgaTsKQEAgLTE3MjgsNyArMTYwNyw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKICAgIHNpemVfdCBidWZmZXJf c2l6ZSA9IDA7CiAgICBnZGJfYnl0ZSAqYnVmZmVyID0gTlVMTDsKICAgIHN0cnVjdCBjbGVhbnVw ICpjbGVhbnVwOwotQEAgLTE4OTAsOCArMTg5MCw4IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3Ry dWN0IHZhbHVlICp0bywgc3QKK0BAIC0xODk2LDggKzE4OTYsOCBAQAogICAgZm9yIChpID0gMDsg aSA8IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAgICAgIHsKICAgICAg ICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzM5LDE4 ICsxNjE4LDE2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMK ICAgICAgICBpbnQgbmVlZF9iaXR3aXNlOwogICAgICAgIGNvbnN0IGdkYl9ieXRlICpzb3VyY2Vf YnVmZmVyOwogIAotQEAgLTIwMTAsOCArMjAxMCw4IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3Ry dWN0IHZhbHVlICp0bywgc3QKLSAgICBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KK0BAIC0yMDE3 LDcgKzIwMTcsNyBAQAogIAogIHN0YXRpYyBpbnQKLS1jaGVja19waWVjZWRfc3ludGhldGljX3Bv aW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBiaXRfb2Zmc2V0LAorIGNoZWNr X3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9O R0VTVCBiaXRfb2Zmc2V0LAogLQkJCQlpbnQgYml0X2xlbmd0aCkKLStjaGVja19waWVjZWRfc3lu dGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0X29m ZnNldCwKICsJCQkJTE9OR0VTVCBiaXRfbGVuZ3RoKQogIHsKICAgIHN0cnVjdCBwaWVjZV9jbG9z dXJlICpjCiAgICAgID0gKHN0cnVjdCBwaWVjZV9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Ns b3N1cmUgKHZhbHVlKTsKLUBAIC0yMDI0LDcgKzIwMjQsNyBAQCBjaGVja19waWVjZWRfc3ludGhl dGljX3BvaW50ZXIgKGNvbnN0IHN0CitAQCAtMjAzMCw3ICsyMDMwLDcgQEAKICAgIGZvciAoaSA9 IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQogICAgICB7CiAgICAg ICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTc1OSwy MCArMTYzNiwxOCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5j CiAgCiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjA2Niw5ICsyMDY2LDEw IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwKK0BAIC0yMTMyLDgg KzIxMzIsOCBAQAogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWU7CiAgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gYmF0b247Ci0tICBpbnQgaSwg Yml0X29mZnNldCwgYml0X2xlbmd0aDsKKy0gIGludCBpLCBiaXRfbGVuZ3RoOworLSAgTE9OR0VT VCBiaXRfb2Zmc2V0OwogKyAgaW50IGk7Ci0rICBMT05HRVNUIGJpdF9sZW5ndGg7CisrICBMT05H RVNUIGJpdF9sZW5ndGgsIGJpdF9vZmZzZXQ7CiAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAq cGllY2UgPSBOVUxMOwotLSAgTE9OR0VTVCBieXRlX29mZnNldDsKLSsgIExPTkdFU1QgYnl0ZV9v ZmZzZXQsIGJpdF9vZmZzZXQ7CisgICBMT05HRVNUIGJ5dGVfb2Zmc2V0OwogICAgZW51bSBiZmRf ZW5kaWFuIGJ5dGVfb3JkZXI7Ci0gCi0gICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSAodmFsdWUpKTsKLUBAIC0yMDgzLDcgKzIwODQsNyBAQCBpbmRpcmVjdF9waWVjZWRfdmFsdWUg KHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAtMjE1MCw3ICsyMTUwLDcgQEAKICAgIGZvciAoaSA9IDA7 IGkgPCBjLT5uX3BpZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQogICAgICB7CiAgICAgICAg c3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTc4MSw3ICsx NjU2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogIAog ICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTIzNjMsNyArMjM2NCw3IEBAIGR3 YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHkKK0BAIC0yNDQ0LDcgKzI0NDQs NyBAQAogIAkgICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwg MCk7CiAgCSAgICBnZGJfYnl0ZSAqY29udGVudHM7CiAgCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFs X2J5dGVzOwpAQCAtMTc5MCwxMSArMTY2NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgCSAgICBpZiAoYnl0ZV9vZmZzZXQgKyBUWVBFX0xFTkdU SCAodHlwZSkgPiBuKQogIAkgICAgICBpbnZhbGlkX3N5bnRoZXRpY19wb2ludGVyICgpOwotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvZHdhcmYycmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA0 MzUxNjAxICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMnJlYWQuYwky MDE1LTExLTAyIDIxOjIzOjEzLjIxNTM2NDgzMyArMDEwMAotQEAgLTE5MTcsMTIgKzE5MTcsMTIg QEAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25fZXhwcl9jb21wbGFpbnQgKAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4 MzUxMDM1OCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJyZWFkLmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41MzY1MzAxMDAgKzAyMDAKK0BAIC0xOTM1LDEyICsxOTM1LDEy IEBACiAgfQogIAogIHN0YXRpYyB2b2lkCkBAIC0xODExLDcgKzE2ODYsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMnJlYWQuYwogIH0KICAKICBzdGF0aWMgdm9pZAot QEAgLTEyNTU0LDggKzEyNTU0LDggQEAgZHdhcmYyX2FkZF9maWVsZCAoc3RydWN0IGZpZWxkX2lu Zm8gKmZpcAorQEAgLTEyNTczLDggKzEyNTczLDggQEAKICAJICAgICAgICAgb2JqZWN0LCBhbmQg dGhlbiBzdWJ0cmFjdCBvZmYgdGhlIG51bWJlciBvZiBiaXRzIG9mCiAgCSAgICAgICAgIHRoZSBm aWVsZCBpdHNlbGYuICBUaGUgcmVzdWx0IGlzIHRoZSBiaXQgb2Zmc2V0IG9mCiAgCSAgICAgICAg IHRoZSBMU0Igb2YgdGhlIGZpZWxkLiAgKi8KQEAgLTE4MjIsMTEgKzE2OTcsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJyZWFkLmMKICAKICAJICAgICAgYXR0ciA9 IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOwogIAkgICAgICBpZiAoYXR0 cikKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2V2YWwuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL2V2YWwuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIwNjM1MTYxNCArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ldmFsLmMJMjAxNS0xMS0wMiAyMToyMzox My4yMTYzNjQ4MzkgKzAxMDAKLUBAIC0zMTcsNyArMzE3LDggQEAgZXZhbHVhdGVfc3RydWN0X3R1 cGxlIChzdHJ1Y3QgdmFsdWUgKnN0cgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L2V2YWwuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4NjUxMDM4MyArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9ldmFsLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAxMDggKzAy MDAKK0BAIC0zMTcsNyArMzE3LDggQEAKICAgIHdoaWxlICgtLW5hcmdzID49IDApCiAgICAgIHsK ICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IE5VTEw7CkBAIC0xODM2LDcgKzE3MTEsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwogICAgICAgIGJmZF9ieXRlICph ZGRyOwogIAogICAgICAgIGZpZWxkbm8rKzsKLUBAIC0zNzgsNyArMzc5LDcgQEAgaW5pdF9hcnJh eV9lbGVtZW50IChzdHJ1Y3QgdmFsdWUgKmFycmF5LAorQEAgLTM3OCw3ICszNzksNyBAQAogIAkJ ICAgIGVudW0gbm9zaWRlIG5vc2lkZSwgTE9OR0VTVCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9i b3VuZCkKICB7CiAgICBMT05HRVNUIGluZGV4OwpAQCAtMTg0NSw3ICsxNzIwLDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ldmFsLmMKICAKICAgIGlmIChleHAtPmVsdHNbKnBv c10ub3Bjb2RlID09IEJJTk9QX0NPTU1BKQogICAgICB7Ci1AQCAtNTI2LDExICs1MjcsMTEgQEAg Ymlub3BfcHJvbW90ZSAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZgorQEAgLTgyMiwxMSArODIz LDExIEBACiAgICAgIC8qIEZJWE1FOiBBbHNvIG1peGVkIGludGVncmFsL2Jvb2xlYW5zLCB3aXRo IHJlc3VsdCBhbiBpbnRlZ2VyLiAgKi8KICAgICAgewogICAgICAgIGNvbnN0IHN0cnVjdCBidWls dGluX3R5cGUgKmJ1aWx0aW4gPSBidWlsdGluX3R5cGUgKGdkYmFyY2gpOwpAQCAtMTg2MCw3ICsx NzM1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ldmFsLmMKICAgICAgICBp bnQgdW5zaWduZWRfb3BlcmF0aW9uOwogIAogICAgICAgIC8qIERldGVybWluZSB0eXBlIGxlbmd0 aCBhbmQgc2lnbmVkbmVzcyBhZnRlciBwcm9tb3Rpb24gZm9yCi1AQCAtNzEyLDcgKzcxMyw3IEBA IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKK0BAIC0xMDA4LDcgKzEw MDksNyBAQAogICAgc3RydWN0IHZhbHVlICoqYXJndmVjOwogICAgaW50IGNvZGU7CiAgICBpbnQg aXg7CkBAIC0xODY5LDcgKzE3NDQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2V2YWwuYwogICAgc3RydWN0IHR5cGUgKiphcmdfdHlwZXM7CiAgICBpbnQgc2F2ZV9wb3MxOwog ICAgc3RydWN0IHN5bWJvbCAqZnVuY3Rpb24gPSBOVUxMOwotQEAgLTg5MSw3ICs4OTIsNyBAQCBl dmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtMTE4Nyw3ICsxMTg4 LDcgQEAKICAJICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSA9IFRZUEVfSU5ERVhfVFlQRSAodHlw ZSk7CiAgCSAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5 cGUpOwogIAkgIHN0cnVjdCB2YWx1ZSAqYXJyYXkgPSBhbGxvY2F0ZV92YWx1ZSAoZXhwZWN0X3R5 cGUpOwpAQCAtMTg3OCwyMSArMTc1MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2V2YWwuYwogIAkgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kLCBpbmRleDsKICAK ICAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd19ib3VuZCwgJmhp Z2hfYm91bmQpIDwgMCkKLUBAIC0xOTAwLDcgKzE5MDEsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgKHN0cnVjdCB0eXBlICplCi0gICAgICAgewotICAgICAgICAgc3RydWN0IHR5cGUgKnR5 cGUgPSB2YWx1ZV90eXBlIChhcmcxKTsKLSAgICAgICAgIHN0cnVjdCB0eXBlICpyZWFsX3R5cGU7 Ci0tICAgICAgICBpbnQgZnVsbCwgdG9wLCB1c2luZ19lbmM7Ci0rICAgICAgICBpbnQgZnVsbCwg dXNpbmdfZW5jOwotKwlMT05HRVNUIHRvcDsKLSAJc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg b3B0czsKLSAKLSAJZ2V0X3VzZXJfcHJpbnRfb3B0aW9ucyAoJm9wdHMpOwotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9mLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2YtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA2MzUxNjE0ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjE2MzY0 ODM5ICswMTAwCi1AQCAtMTAzLDcgKzEwMyw3IEBAIGZfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0 IHR5cGUgKnR5cGUsIHMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9mLWxhbmcu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4NzUxMDM5MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9mLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzNzUzMDEwOCArMDIwMAor QEAgLTEwMyw3ICsxMDMsNyBAQAogIAogIHN0YXRpYyB2b2lkCiAgZl9wcmludHN0ciAoc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICpzdHJp bmcsCkBAIC0xOTAxLDExICsxNzY2LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZi1sYW5nLmMKICAJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQogIHsKICAgIGNvbnN0IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBmX2dldF9lbmNvZGluZyAo dHlwZSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5oCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDcz NTE2MjAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgJMjAxNS0x MS0wMiAyMToyMzoxMy4yMTYzNjQ4MzkgKzAxMDAKLUBAIC0zMCw3ICszMCw3IEBAIGV4dGVybiB2 b2lkIGZfZXJyb3IgKGNoYXIgKik7CS8qIERlZmluZWQKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcx Ni5vcmlnL2dkYi9mLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4NzUxMDM5MSArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0 LjUzNzUzMDEwOCArMDIwMAorQEAgLTMwLDcgKzMwLDcgQEAKICBleHRlcm4gdm9pZCBmX3ByaW50 X3R5cGUgKHN0cnVjdCB0eXBlICosIGNvbnN0IGNoYXIgKiwgc3RydWN0IHVpX2ZpbGUgKiwgaW50 LAogIAkJCSAgaW50LCBjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zICopOwogIApAQCAt MTkxNCwxMSArMTc3OSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFu Zy5oCiAgCQkJIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVl ICosCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvZi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjcub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA3MzUxNjIw ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTEx LTAyIDIxOjI0OjM0LjEwODg5NzA5MCArMDEwMAotQEAgLTM4LDcgKzM4LDcgQEAgZXh0ZXJuIHZv aWQgX2luaXRpYWxpemVfZl92YWxwcmludCAodm9pZAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4NzUxMDM5MSArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLXZhbHByaW50LmMJMjAxNi0wNy0xNiAx NDozMzo0NC41Mzc1MzAxMDggKzAyMDAKK0BAIC0zOCw3ICszOCw3IEBACiAgc3RhdGljIHZvaWQg aW5mb19jb21tb25fY29tbWFuZCAoY2hhciAqLCBpbnQpOwogIHN0YXRpYyB2b2lkIGY3N19nZXRf ZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqKTsKICAKQEAgLTE5Mjcs NyArMTc5Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5j CiAgCiAgLyogQXJyYXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0byBiZSBhcHBsaWVkIHRvIGdldCBh IHJvdydzIGVsZW1lbnRzCiAgICAgZm9yIGEgZ2l2ZW4gYXJyYXkuICBBcnJheSBhbHNvIGhvbGRz IHRoZSBzaXplIG9mIGVhY2ggc3ViYXJyYXkuICAqLwotQEAgLTczLDggKzczLDggQEAgZjc3X2dl dF91cHBlcmJvdW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC03Myw4ICs3Myw4IEBACiAgc3Rh dGljIHZvaWQKICBmNzdfZ2V0X2R5bmFtaWNfbGVuZ3RoX29mX2FnZ3JlZ2F0ZSAoc3RydWN0IHR5 cGUgKnR5cGUpCiAgewpAQCAtMTkzOCw3ICsxODAzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICAKICAgIC8qIFJlY3Vyc2l2ZWx5IGdvIGFsbCB0aGUg d2F5IGRvd24gaW50byBhIHBvc3NpYmx5IG11bHRpLWRpbWVuc2lvbmFsCiAgICAgICBGNzcgYXJy YXkgYW5kIGdldCB0aGUgYm91bmRzLiAgRm9yIHNpbXBsZSBhcnJheXMsIHRoaXMgaXMgcHJldHR5 Ci1AQCAtMTA2LDcgKzEwNiw3IEBAIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRl IChzdHIKK0BAIC0xMDYsNyArMTA2LDcgQEAKICBzdGF0aWMgdm9pZAogIGY3N19wcmludF9hcnJh eV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2lvbnMsIHN0cnVjdCB0eXBlICp0eXBlLAogIAkJICAg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0xOTQ3LDcgKzE4MTIsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAkJICAgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJ CSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTExNSw3 ICsxMTUsNyBAQCBmNzdfcHJpbnRfYXJyYXlfMSAoaW50IG5zcywgaW50IG5kaW1lbnNpCitAQCAt MTE1LDcgKzExNSw3IEBACiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSA9IFRZUEVfSU5ERVhf VFlQRSAoY2hlY2tfdHlwZWRlZiAodHlwZSkpOwogICAgQ09SRV9BRERSIGFkZHIgPSBhZGRyZXNz ICsgZW1iZWRkZWRfb2Zmc2V0OwogICAgTE9OR0VTVCBsb3dlcmJvdW5kLCB1cHBlcmJvdW5kOwpA QCAtMTk1Niw3ICsxODIxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZh bHByaW50LmMKICAKICAgIGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dlcmJv dW5kLCAmdXBwZXJib3VuZCk7CiAgCi1AQCAtMTc4LDcgKzE3OCw3IEBAIGY3N19wcmludF9hcnJh eV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2kKK0BAIC0xNzIsNyArMTcyLDcgQEAKICAKICBzdGF0 aWMgdm9pZAogIGY3N19wcmludF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLApAQCAtMTk2NSw3ICsxODMwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICAJCSBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwKICAJCSBpbnQgcmVjdXJzZSwKICAJCSBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKLUBAIC0yMTUsOCArMjE1LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmljX3Zh bF9wcmludF9kZQorQEAgLTIxMSw4ICsyMTEsOSBAQAogICAgIGZ1bmN0aW9uOyB0aGV5IGFyZSBp ZGVudGljYWwuICAqLwogIAogIHZvaWQKQEAgLTE5NzcsMTEgKzE4NDIsMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICAJICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQogIHsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZmlu ZHZhci5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZpbmR2YXIuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2ZpbmR2YXIuYwkyMDE1LTEx LTAyIDIxOjIzOjExLjIwODM1MTYyNyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9maW5kdmFyLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMTczNjQ4NDYgKzAxMDAKLUBAIC04MDEs NyArODAxLDcgQEAgc3RydWN0IHZhbHVlICoKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9maW5kdmFyLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wODg1MTAzOTkgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZmluZHZhci5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM3 NTMwMTA4ICswMjAwCitAQCAtODAyLDcgKzgwMiw3IEBACiAgZGVmYXVsdF92YWx1ZV9mcm9tX3Jl Z2lzdGVyIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKnR5cGUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVnbnVtLCBzdHJ1Y3QgZnJhbWVfaWQgZnJh bWVfaWQpCiAgewpAQCAtMTk5MCwyMSArMTg1NSwxNiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2ZpbmR2YXIuYwogICAgc3RydWN0IHZhbHVlICp2YWx1ZSA9IGFsbG9jYXRlX3Zh bHVlICh0eXBlKTsKICAKICAgIFZBTFVFX0xWQUwgKHZhbHVlKSA9IGx2YWxfcmVnaXN0ZXI7Ci1A QCAtODM0LDEwICs4MzQsMTAgQEAgdm9pZAotIHJlYWRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdmFsdWUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSkKLSB7Ci0gICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci0tICBpbnQgb2Zm c2V0ID0gMDsKLS0gIGludCByZWdfb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWx1ZSk7Ci0rICBM T05HRVNUIG9mZnNldCA9IDA7Ci0rICBMT05HRVNUIHJlZ19vZmZzZXQgPSB2YWx1ZV9vZmZzZXQg KHZhbHVlKTsKK0BAIC04MzgsNyArODM4LDcgQEAKKyAgIExPTkdFU1Qgb2Zmc2V0ID0gMDsKKyAg IExPTkdFU1QgcmVnX29mZnNldCA9IHZhbHVlX29mZnNldCAodmFsdWUpOwogICAgaW50IHJlZ251 bSA9IFZBTFVFX1JFR05VTSAodmFsdWUpOwogLSAgaW50IGxlbiA9IHR5cGVfbGVuZ3RoX3VuaXRz IChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpKTsKICsgIExPTkdFU1QgbGVuID0g dHlwZV9sZW5ndGhfdW5pdHMgKGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVlKSkpOwog IAogICAgZ2RiX2Fzc2VydCAoVkFMVUVfTFZBTCAodmFsdWUpID09IGx2YWxfcmVnaXN0ZXIpOwog IAotQEAgLTg1Miw3ICs4NTIsNyBAQCByZWFkX2ZyYW1lX3JlZ2lzdGVyX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUKK0BAIC04NTMsNyArODUzLDcgQEAKICAgIHdoaWxlIChsZW4gPiAwKQogICAgICB7CiAg ICAgICAgc3RydWN0IHZhbHVlICpyZWd2YWwgPSBnZXRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKGZy YW1lLCByZWdudW0pOwpAQCAtMjAxMywxMSArMTg3MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2ZpbmR2YXIuYwogIAogICAgICAgIC8qIElmIHRoZSByZWdpc3RlciBsZW5n dGggaXMgbGFyZ2VyIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcwogICAgICAgICAgIHJlbWFpbmlu ZyB0byBjb3B5LCB0aGVuIG9ubHkgY29weSB0aGUgYXBwcm9wcmlhdGUgYnl0ZXMuICAqLwotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9mcmFtZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA4MzUxNjI3ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4y MTgzNjQ4NTIgKzAxMDAKLUBAIC0xMjcyLDcgKzEyNzIsNyBAQCBkZXByZWNhdGVkX2ZyYW1lX3Jl Z2lzdGVyX3JlYWQgKHN0cnVjdCBmCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv ZnJhbWUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA4OTUxMDQwNyArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9mcmFtZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM4NTMwMTE2ICsw MjAwCitAQCAtMTMyMCw3ICsxMzIwLDcgQEAKICAKICBpbnQKICBnZXRfZnJhbWVfcmVnaXN0ZXJf Ynl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKQEAgLTIwMjYsNyAr MTg4Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZnJhbWUuYwogIAkJCSAg aW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJj aCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7Ci1AQCAtMTMwMSw3ICsxMzAxLDcg QEAgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChzdHJ1Y3QgZnJhbWVfaQorQEAgLTEzNDksNyAr MTM0OSw3IEBACiAgICAgIH0KICAgIGlmIChsZW4gPiBtYXhzaXplKQogICAgICBlcnJvciAoXygi QmFkIGRlYnVnIGluZm9ybWF0aW9uIGRldGVjdGVkOiAiCkBAIC0yMDM1LDExICsxODk1LDExIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZnJhbWUuYwogIAogICAgLyogQ29weSB0 aGUgZGF0YS4gICovCiAgICB3aGlsZSAobGVuID4gMCkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZnJhbWUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mcmFtZS5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZnJhbWUuaAky MDE1LTExLTAyIDIxOjIzOjExLjIwOTM1MTYzNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9mcmFtZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjE4MzY0ODUyICswMTAwCi1AQCAt NTg1LDcgKzU4NSw3IEBAIGV4dGVybiB2b2lkIHB1dF9mcmFtZV9yZWdpc3RlciAoc3RydWN0IGYK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9mcmFtZS5oCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDkwNTEwNDE1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1l LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzg1MzAxMTYgKzAyMDAKK0BAIC01ODUsNyArNTg1LDcg QEAKICAgICBjb250ZW50cyBhcmUgb3B0aW1pemVkIG91dCBvciB1bmF2YWlsYWJsZSwgc2V0ICpP UFRJTUlaRURQLAogICAgICpVTkFWQUlMQUJMRVAgYWNjb3JkaW5nbHkuICAqLwogIGV4dGVybiBp bnQgZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIGlu dCByZWdudW0sCkBAIC0yMDQ4LDExICsxOTA4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvZnJhbWUuaAogIAkJCQkgICAgIGdkYl9ieXRlICpteWFkZHIsCiAgCQkJCSAgICAg aW50ICpvcHRpbWl6ZWRwLCBpbnQgKnVuYXZhaWxhYmxlcCk7CiAgCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL2dkYnR5cGVzLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTIzNTE2NTMgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIy MDM2NDg2NiArMDEwMAotQEAgLTI3MTksNyArMjcxOSw3IEBAIGFsbG9jYXRlX2duYXRfYXV4X3R5 cGUgKHN0cnVjdCB0eXBlICp0eXAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9n ZGJ0eXBlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDkyNTEwNDMxICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5cGVzLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAx MjQgKzAyMDAKK0BAIC0yNzIyLDcgKzI3MjIsNyBAQAogICAgIGxlYXN0IGFzIGxvbmcgYXMgT0JK RklMRS4gICovCiAgCiAgc3RydWN0IHR5cGUgKgpAQCAtMjA2MSw3ICsxOTIxLDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5jCiAgCSAgIGNvbnN0IGNoYXIgKm5h bWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwot QEAgLTI5NTksOCArMjk1OSw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJh c2UsIHMKK0BAIC0yOTYyLDggKzI5NjIsOCBAQAogIAogIHN0YXRpYyBpbnQKICBpc191bmlxdWVf YW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqYmFzZSwgc3RydWN0IHR5cGUgKmRjbGFzcywK QEAgLTIwNzIsNyArMTkzMiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2Ri dHlwZXMuYwogIAkJCSAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7 CiAgICBpbnQgaSwgY291bnQgPSAwOwotQEAgLTI5NzEsNyArMjk3MSw3IEBAIGlzX3VuaXF1ZV9h bmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0yOTc0LDcgKzI5NzQsNyBAQAogICAg Zm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoZGNsYXNzKSAmJiBjb3VudCA8IDI7 ICsraSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICppdGVyOwpAQCAtMjA4MSw3ICsxOTQx LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5jCiAgCiAgICAg ICAgaXRlciA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTIChkY2xhc3MsIGkpKTsKICAK LUBAIC0zMDEyLDcgKzMwMTIsNyBAQCBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3Qg dHlwZSAqCitAQCAtMzAxNSw3ICszMDE1LDcgQEAKICBpbnQKICBpc191bmlxdWVfYW5jZXN0b3Ig KHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CkBAIC0yMDkwLDcgKzE5 NTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmMKICAKICAg IHJldHVybiBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChiYXNlLCB2YWx1ZV90eXBlICh2YWwp LCAmb2Zmc2V0LAogIAkJCQkgICAgdmFsdWVfY29udGVudHNfZm9yX3ByaW50aW5nICh2YWwpLAot QEAgLTQyMDAsNyArNDIwMCw3IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0eXBlICp0 eXBlLAorQEAgLTQyMDMsNyArNDIwMyw3IEBACiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIHB1 dHNfZmlsdGVyZWQgKCJcbiIpOwpAQCAtMjA5OSw0MCArMTk1OSwyMCBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmMKICAgIGlmIChUWVBFX09CSkZJTEVfT1dORUQg KHR5cGUpKQogICAgICB7CiAgICAgICAgcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzLCAib2JqZmls ZSAiKTsKLUBAIC00MzI4LDggKzQzMjgsOCBAQCByZWN1cnNpdmVfZHVtcF90eXBlIChzdHJ1Y3Qg dHlwZSAqdHlwZSwKLSAJCQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERfRU5VTVZBTCAodHlw ZSwgaWR4KSkpOwotICAgICAgIGVsc2UKLSAJcHJpbnRmaV9maWx0ZXJlZCAoc3BhY2VzICsgMiwK LS0JCQkgICJbJWRdIGJpdHBvcyAlZCBiaXRzaXplICVkIHR5cGUgIiwKLS0JCQkgIGlkeCwgVFlQ RV9GSUVMRF9CSVRQT1MgKHR5cGUsIGlkeCksCi0rCQkJICAiWyVkXSBiaXRwb3MgJXMgYml0c2l6 ZSAlZCB0eXBlICIsCi0rCQkJICBpZHgsIHBsb25nZXN0IChUWVBFX0ZJRUxEX0JJVFBPUyAodHlw ZSwgaWR4KSksCi0gCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGlkeCkpOwotICAgICAg IGdkYl9wcmludF9ob3N0X2FkZHJlc3MgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaWR4KSwgZ2Ri X3N0ZG91dCk7Ci0gICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiIG5hbWUgJyVzJyAoIiwKLUBAIC00 NjcxLDcgKzQ2NzEsNyBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQorQEAg LTQ2NjMsNyArNDY2Myw3IEBACiAgCiAgc3RydWN0IHR5cGUgKgogIGFyY2hfdHlwZSAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsCi0tCSAgIGVudW0gdHlwZV9jb2RlIGNvZGUsIGludCBsZW5ndGgs IGNoYXIgKm5hbWUpCi0rCSAgIGVudW0gdHlwZV9jb2RlIGNvZGUsIExPTkdFU1QgbGVuZ3RoLCBj aGFyICpuYW1lKQorLQkgICBlbnVtIHR5cGVfY29kZSBjb2RlLCBpbnQgbGVuZ3RoLCBjb25zdCBj aGFyICpuYW1lKQorKwkgICBlbnVtIHR5cGVfY29kZSBjb2RlLCBMT05HRVNUIGxlbmd0aCwgY29u c3QgY2hhciAqbmFtZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9nZGJ0eXBlcy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIxMzM1MTY2MCArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5oCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjIwMzY0ODY2ICswMTAwCi1AQCAtNTEyLDcgKzUxMiw3IEBAIHVuaW9uIGZpZWxkX2xvY2F0 aW9uCi0gICAgICBnZGJhcmNoX2JpdHNfYmlnX2VuZGlhbj0wIHRhcmdldHMsIGl0IGlzIHRoZSBi aXQgb2Zmc2V0IHRvCi0gICAgICB0aGUgTFNCLiAgKi8KLSAKLS0gIGludCBiaXRwb3M7Ci0rICBM T05HRVNUIGJpdHBvczsKLSAKLSAgIC8qICogRW51bSB2YWx1ZS4gICovCi0gICBMT05HRVNUIGVu dW12YWw7Ci1AQCAtODIyLDcgKzgyMiw3IEBAIHN0cnVjdCB0eXBlCistLS0gZ2RiLTcuMTEuNTAu MjAxNjA3MTYub3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5MzUxMDQz OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5oCTIwMTYtMDct MTYgMTQ6MzM6NDQuNTM5NTMwMTI0ICswMjAwCitAQCAtODA2LDcgKzgwNiw3IEBACiAgICAgICB0 eXBlX2xlbmd0aF91bml0cyBmdW5jdGlvbiBzaG91bGQgYmUgdXNlZCBpbiBvcmRlciB0byBnZXQg dGhlIGxlbmd0aAogICAgICAgZXhwcmVzc2VkIGluIHRhcmdldCBhZGRyZXNzYWJsZSBtZW1vcnkg dW5pdHMuICAqLwogIApAQCAtMjE0MSw3ICsxOTgxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9nZGJ0eXBlcy5oCiAgCiAgICAvKiAqIENvcmUgdHlwZSwgc2hhcmVkIGJ5IGEg Z3JvdXAgb2YgcXVhbGlmaWVkIHR5cGVzLiAgKi8KICAKLUBAIC0xNzE3LDExICsxNzE3LDEyIEBA IGV4dGVybiB1bnNpZ25lZCBpbnQgdHlwZV9sZW5ndGhfdW5pdHMgKHMKK0BAIC0xNjc3LDExICsx Njc3LDExIEBACiAgCiAgLyogKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29uc3RydWN0IG9iamZpbGUt b3duZWQgdHlwZXMuICAqLwogIApAQCAtMjE1MCwxNyArMTk5MCwxNiBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmgKICAJCQkgICAgICAgc3RydWN0IG9iamZpbGUg Kik7CiAgCiAgLyogSGVscGVyIGZ1bmN0aW9ucyB0byBjb25zdHJ1Y3QgYXJjaGl0ZWN0dXJlLW93 bmVkIHR5cGVzLiAgKi8KLS1leHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfdHlwZSAoc3RydWN0IGdk YmFyY2ggKiwgZW51bSB0eXBlX2NvZGUsIGludCwgY2hhciAqKTsKKy1leHRlcm4gc3RydWN0IHR5 cGUgKmFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgZW51bSB0eXBlX2NvZGUsIGludCwKICtl eHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgZW51bSB0eXBl X2NvZGUsIExPTkdFU1QsCi0rCQkJICAgICAgIGNoYXIgKik7Ci0gZXh0ZXJuIHN0cnVjdCB0eXBl ICphcmNoX2ludGVnZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsIGNoYXIgKik7 Ci0gZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2NoYXJhY3Rlcl90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqLCBpbnQsIGludCwgY2hhciAqKTsKLSBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfYm9vbGVh bl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCi09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEu MjEzMzUxNjYwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12Mi1hYmku YwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMTM2NDg3MiArMDEwMAotQEAgLTgyLDcgKzgyLDcgQEAg Z251djJfaXNfb3BlcmF0b3JfbmFtZSAoY29uc3QgY2hhciAqbmFtZQorIAkJCSAgICAgICBjb25z dCBjaGFyICopOworIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9pbnRlZ2VyX3R5cGUgKHN0cnVj dCBnZGJhcmNoICosIGludCwgaW50LAorIAkJCQkgICAgICAgY29uc3QgY2hhciAqKTsKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ251LXYyLWFiaS5jCis9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ251LXYyLWFiaS5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDkzNTEwNDM5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12 Mi1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorQEAgLTgyLDcgKzgy LDcgQEAKICAgICBUWVBFIGlzIHRoZSB0eXBlIGluIHdoaWNoIEYgaXMgbG9jYXRlZC4gICovCiAg c3RhdGljIHN0cnVjdCB2YWx1ZSAqCiAgZ251djJfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZh bHVlICoqYXJnMXAsIHN0cnVjdCBmbl9maWVsZCAqIGYsIGludCBqLApAQCAtMjE2OSw0MCArMjAw OCwyNiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12Mi1hYmkuYwogIHsK ICAgIHN0cnVjdCB2YWx1ZSAqYXJnMSA9ICphcmcxcDsKICAgIHN0cnVjdCB0eXBlICp0eXBlMSA9 IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKLUBAIC0xODMsNyArMTgzLDggQEAg Z251djJfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYQotIAotIAotIHN0YXRpYyBz dHJ1Y3QgdHlwZSAqCi0tZ251djJfdmFsdWVfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGlu dCAqZnVsbCwgaW50ICp0b3AsIGludCAqdXNpbmdfZW5jKQotK2dudXYyX3ZhbHVlX3J0dGlfdHlw ZSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsIExPTkdFU1QgKnRvcCwKLSsJCSAgICAgICBp bnQgKnVzaW5nX2VuYykKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqa25vd25fdHlwZTsKLSAgIHN0cnVj dCB0eXBlICpydHRpX3R5cGU7Ci1AQCAtMzM4LDkgKzMzOSw5IEBAIHZiX21hdGNoIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgaW50IGluZGV4LAorQEAgLTMzOCw3ICszMzgsNyBAQAogICAgIHRhcmdldCku ICBUaGUgcmVzdWx0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIGJhc2VjbGFzcyB2YWx1ZSByZWxhdGl2 ZQogICAgIHRvICh0aGUgYWRkcmVzcyBvZikoQVJHKSArIE9GRlNFVC4gICovCiAgCiAtc3RhdGlj IGludAogK3N0YXRpYyBMT05HRVNUCiAgZ251djJfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5 cGUgKnR5cGUsIGludCBpbmRleCwKLS0JCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgaW50IGVt YmVkZGVkX29mZnNldCwKLSsJCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJl ZGRlZF9vZmZzZXQsCisgCQkJY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRk ZWRfb2Zmc2V0LAogIAkJCUNPUkVfQUREUiBhZGRyZXNzLCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCkKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGUgPSBUWVBFX0JBU0VDTEFTUyAodHlwZSwg aW5kZXgpOwotQEAgLTM1OCw4ICszNTksOCBAQCBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1 Y3QgdHlwZSAqdHlwCitAQCAtMzU4LDggKzM1OCw3IEBACiAgCSAgaWYgKHZiX21hdGNoICh0eXBl LCBpLCBiYXNldHlwZSkpCiAgCSAgICB7CiAgCSAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBl OwotLQkgICAgICBpbnQgZmllbGRfb2Zmc2V0OworLQkgICAgICBMT05HRVNUIGZpZWxkX29mZnNl dDsKIC0JICAgICAgaW50IGZpZWxkX2xlbmd0aDsKLSsJICAgICAgTE9OR0VTVCBmaWVsZF9vZmZz ZXQ7Ci0rCSAgICAgIExPTkdFU1QgZmllbGRfbGVuZ3RoOworKwkgICAgICBMT05HRVNUIGZpZWxk X29mZnNldCwgZmllbGRfbGVuZ3RoOwogIAkgICAgICBDT1JFX0FERFIgYWRkcjsKICAKICAJICAg ICAgZmllbGRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSkp OwotQEAgLTM4Myw3ICszODQsNyBAQCBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlw ZSAqdHlwCitAQCAtMzgzLDcgKzM4Miw3IEBACiAgCSAgLyogRG9uJ3QgZ28gdGhyb3VnaCBiYXNl Y2xhc3Nfb2Zmc2V0LCBhcyB0aGF0IHdyYXBzCiAgCSAgICAgZXhjZXB0aW9ucywgdGh1cywgaW5u ZXIgZXhjZXB0aW9ucyB3b3VsZCBiZSB3cmFwcGVkIG1vcmUKICAJICAgICB0aGFuIG9uY2UuICAq LwpAQCAtMjIxMSwxMSArMjAzNiwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2dudS12Mi1hYmkuYwogIAkgICAgZ251djJfYmFzZWNsYXNzX29mZnNldCAodHlwZSwgaSwgdmFs YWRkciwKICAJCQkJICAgIGVtYmVkZGVkX29mZnNldCwgYWRkcmVzcywgdmFsKTsKICAKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2dudS12My1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2dudS12My1hYmkuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNDM1 MTY2NyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMJMjAx NS0xMS0wMiAyMToyMzoxMy4yMjEzNjQ4NzIgKzAxMDAKLUBAIC0xMDgsNyArMTA4LDcgQEAgYnVp bGRfZ2RiX3Z0YWJsZV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqYQorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL2dudS12My1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NDUxMDQ0 NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nbnUtdjMtYWJpLmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC0xMDgsNyArMTA4LDcgQEAKICB7CiAg ICBzdHJ1Y3QgdHlwZSAqdDsKICAgIHN0cnVjdCBmaWVsZCAqZmllbGRfbGlzdCwgKmZpZWxkOwpA QCAtMjIyNCw3ICsyMDQ5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUt djMtYWJpLmMKICAKICAgIHN0cnVjdCB0eXBlICp2b2lkX3B0cl90eXBlCiAgICAgID0gYnVpbHRp bl90eXBlIChhcmNoKS0+YnVpbHRpbl9kYXRhX3B0cjsKLUBAIC0xODQsNyArMTg0LDcgQEAgdnRh YmxlX3B0cmRpZmZfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkYgorQEAgLTE4NCw3ICsxODQsNyBA QAogIC8qIFJldHVybiB0aGUgb2Zmc2V0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBpbWFnaW5hcnkg YHN0cnVjdAogICAgIGdkYl9nbnVfdjNfYWJpX3Z0YWJsZScgb2JqZWN0IHRvIHRoZSB2dGFibGUn cyAiYWRkcmVzcyBwb2ludCIKICAgICAoaS5lLiwgd2hlcmUgb2JqZWN0cycgdmlydHVhbCB0YWJs ZSBwb2ludGVycyBwb2ludCkuICAqLwpAQCAtMjIzMywxNiArMjA1OCw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiAgdnRhYmxlX2FkZHJlc3NfcG9pbnRf b2Zmc2V0IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdnRh YmxlX3R5cGUKLUBAIC0yODYsNyArMjg2LDcgQEAgZ251djNfZ2V0X3Z0YWJsZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyYwotIAotIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCi0gZ251djNfcnR0aV90eXBl IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLSAgICAgICAgICAgICAgICAgaW50ICpmdWxsX3AsIGlu dCAqdG9wX3AsIGludCAqdXNpbmdfZW5jX3ApCi0rICAgICAgICAgICAgICAgICBpbnQgKmZ1bGxf cCwgTE9OR0VTVCAqdG9wX3AsIGludCAqdXNpbmdfZW5jX3ApCi0gewotICAgc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2g7Ci0gICBzdHJ1Y3QgdHlwZSAqdmFsdWVzX3R5cGUgPSBjaGVja190eXBlZGVm ICh2YWx1ZV90eXBlICh2YWx1ZSkpOwotQEAgLTQxMSw3ICs0MTEsNyBAQCBnbnV2M19nZXRfdmly dHVhbF9mbiAoc3RydWN0IGdkYmFyY2ggKmdkCitAQCAtNDExLDcgKzQxMSw3IEBACiAgc3RhdGlj IHN0cnVjdCB2YWx1ZSAqCiAgZ251djNfdmlydHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoq dmFsdWVfcCwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZm5fZmllbGQgKmYsIGlu dCBqLApAQCAtMjI1MSwxOCArMjA2NywxNiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2dudS12My1hYmkuYwogIHsKICAgIHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKCp2YWx1ZV9wKSk7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaDsKLUBAIC00NDEsMTYgKzQ0MSwxNiBAQCBnbnV2M192aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1 Y3QgdmFsdWUgKip2CitAQCAtNDQxLDcgKzQ0MSw3IEBACiAgCiAgICAgLTEgaXMgcmV0dXJuZWQg b24gZXJyb3IuICAqLwogIAogLXN0YXRpYyBpbnQKICtzdGF0aWMgTE9OR0VTVAogIGdudXYzX2Jh c2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsCi0tCQkJY29uc3Qg YmZkX2J5dGUgKnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJY29uc3QgYmZkX2J5 dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAorIAkJCWNvbnN0IGJmZF9ieXRl ICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKICAJCQlDT1JFX0FERFIgYWRkcmVz cywgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpCi0gewotICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2g7CitAQCAtNDUwLDcgKzQ1MCw3IEBACiAgICBzdHJ1Y3QgdHlwZSAqcHRyX3R5cGU7CiAgICBz dHJ1Y3QgdmFsdWUgKnZ0YWJsZTsKICAgIHN0cnVjdCB2YWx1ZSAqdmJhc2VfYXJyYXk7CkBAIC0y MjcxLDcgKzIwODUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12My1h YmkuYwogIAogICAgLyogRGV0ZXJtaW5lIGFyY2hpdGVjdHVyZS4gICovCiAgICBnZGJhcmNoID0g Z2V0X3R5cGVfYXJjaCAodHlwZSk7Ci1AQCAtNDc0LDcgKzQ3NCw3IEBAIGdudXYzX2Jhc2VjbGFz c19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKK0BAIC00NzQsNyArNDc0LDcgQEAKICAgIGN1cl9i YXNlX29mZnNldCA9IGN1cl9iYXNlX29mZnNldCArIHZ0YWJsZV9hZGRyZXNzX3BvaW50X29mZnNl dCAoZ2RiYXJjaCk7CiAgICBpZiAoKC0gY3VyX2Jhc2Vfb2Zmc2V0KSAlIFRZUEVfTEVOR1RIIChw dHJfdHlwZSkgIT0gMCkKICAgICAgZXJyb3IgKF8oIk1pc2FsaWduZWQgdmJhc2Ugb2Zmc2V0LiIp KTsKQEAgLTIyODAsNyArMjA5NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Z251LXYzLWFiaS5jCiAgCiAgICB2dGFibGUgPSBnbnV2M19nZXRfdnRhYmxlIChnZGJhcmNoLCB0 eXBlLCBhZGRyZXNzICsgZW1iZWRkZWRfb2Zmc2V0KTsKICAgIGdkYl9hc3NlcnQgKHZ0YWJsZSAh PSBOVUxMKTsKLUBAIC01MTgsNyArNTE4LDcgQEAgZ251djNfZmluZF9tZXRob2RfaW4gKHN0cnVj dCB0eXBlICpkb21haQorQEAgLTUxOCw3ICs1MTgsNyBAQAogICAgICAgd2UncmUgb3V0IG9mIGx1 Y2suICAqLwogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoZG9tYWluKTsg aSsrKQogICAgICB7CkBAIC0yMjg5LDExICsyMTAzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiAgICAgICAgc3RydWN0IHR5cGUgKmJhc2V0eXBlOwog IAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAoZG9tYWluLCBpKSkKLUluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ28tbGFuZy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2dvLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIxNDM1MTY2NyArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nby1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzox My4yMjEzNjQ4NzIgKzAxMDAKLUBAIC04NSw3ICs4NSw3IEBAIGV4dGVybiB2b2lkIGdvX3ByaW50 X3R5cGUgKHN0cnVjdCB0eXBlICoKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9n by1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTQ1MTA0NDcgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvZ28tbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5NTMwMTI0 ICswMjAwCitAQCAtODUsNyArODUsNyBAQAogIC8qIERlZmluZWQgaW4gZ28tdmFscHJpbnQuYy4g ICovCiAgCiAgZXh0ZXJuIHZvaWQgZ29fdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yMzAyLDIwICsyMTE2LDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZ28tbGFuZy5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9nby12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2dvLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE0MzUxNjY3 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0x MS0wMiAyMToyMzoxMy4yMjIzNjQ4NzkgKzAxMDAKLUBAIC0zNyw3ICszNyw3IEBACi0gCi0gc3Rh dGljIHZvaWQKLSBwcmludF9nb19zdHJpbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKLS0JCSBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVz cywKLSsJCSBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQkg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkgY29uc3Qgc3RydWN0IHZh bHVlICp2YWwsCi0gCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp Ci1AQCAtODYsOSArODYsOSBAQCBwcmludF9nb19zdHJpbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZ28tdmFscHJpbnQuYwkyMDE2 LTA3LTE2IDE0OjMzOjQyLjA5NDUxMDQ0NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9nby12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM5NTMwMTI0ICswMjAwCitA QCAtODYsOSArODYsOSBAQAogIC8qIEltcGxlbWVudHMgdGhlIGxhX3ZhbF9wcmludCByb3V0aW5l IGZvciBsYW5ndWFnZSBHby4gICovCiAgCiAgdm9pZApAQCAtMjMyOCwxMSArMjEzMywxMSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dvLXZhbHByaW50LmMKICAJICAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgdHlwZSA9IGNo ZWNrX3R5cGVkZWYgKHR5cGUpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1s YW5nLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvanYtbGFuZy5jCTIwMTUtMTEt MDIgMjE6MjM6MTEuMjE1MzUxNjczICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2p2LWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMjM2NDg3OSArMDEwMAotQEAgLTQ0MCw3 ICs0NDAsNyBAQCBqYXZhX2xpbmtfY2xhc3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvanYtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMDk0NTEwNDQ3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2p2LWxhbmcu YwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAorQEAgLTQ0MCw3ICs0NDAsNyBA QAogICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsgaSA8IG5maWVsZHM7IGkr KykKICAgICAgewogICAgICAgIGludCBhY2NmbGFnczsKQEAgLTIzNDEsNyArMjE0Niw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5jCiAgCiAgICAgICAgaWYgKGZp ZWxkcyA9PSBOVUxMKQogIAl7Ci1AQCAtODkwLDcgKzg5MCw3IEBAIGphdmFfcHJpbnRjaGFyIChp bnQgYywgc3RydWN0IHR5cGUgKnR5cGUKK0BAIC04OTAsNyArODkwLDcgQEAKICBzdGF0aWMgdm9p ZAogIGphdmFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0 eXBlLAogIAkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTIzNTAsMTEgKzIxNTUs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmMKICAJICAgICAg IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIGNvbnN0 IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBqYXZhX2dldF9lbmNvZGluZyAodHlwZSk7Ci1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9qdi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9qdi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTUzNTE2NzMgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjIyMzY0ODc5ICswMTAwCi1AQCAtNDMsOCArNDMsOCBAQCBzdHJ1Y3QgYnVpbHRpbl9qYXZh X3R5cGUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9qdi1sYW5nLmgJMjAxNi0w Ny0xNiAxNDozMzo0Mi4wOTQ1MTA0NDcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvanYtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQwNTMwMTMyICswMjAwCitAQCAtNDMs OCArNDMsOCBAQAogIAogIGV4dGVybiBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9qYXZhX3R5cGUgKmJ1 aWx0aW5famF2YV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqKTsKICAKQEAgLTIzNjUsMjAgKzIxNzAs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi1sYW5nLmgKICAJCQkgICAg Y29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICopOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi12YWxwcmlu dC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2p2LXZhbHByaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9qdi12YWxwcmludC5jCTIw MTUtMTEtMDIgMjE6MjM6MTEuMjE1MzUxNjczICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjIzNjQ4NzkgKzAxMDAK LUBAIC0yNjYsNyArMjY2LDcgQEAgamF2YV92YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWws IHN0cgotIAotIHN0YXRpYyB2b2lkCi0gamF2YV9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkgaW50IG9mZnNldCwKLSsJ CQkgTE9OR0VTVCBvZmZzZXQsCi0gCQkJIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLAotIAkJCSBpbnQgcmVjdXJzZSwKLSAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICp2 YWwsCi1AQCAtNDU0LDcgKzQ1NCw3IEBAIGphdmFfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3Qg dHlwZSAqdHkKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9qdi12YWxwcmludC5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk1NTEwNDU1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2p2LXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAy MDAKK0BAIC00NTQsNyArNDU0LDcgQEAKICAKICB2b2lkCiAgamF2YV92YWxfcHJpbnQgKHN0cnVj dCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTIzODcsMTEgKzIxODMs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9qdi12YWxwcmludC5jCiAgCQlz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCWNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsLAogIAkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvbGFuZ3VhZ2UuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2xhbmd1YWdlLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTYzNTE2 ODAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuYwkyMDE1LTEx LTAyIDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAotQEAgLTczOSw3ICs3MzksNyBAQCB1bmtfbGFu Z19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3 MTYub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NTUxMDQ1NSArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9sYW5ndWFnZS5jCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTQwNTMwMTMyICswMjAwCitAQCAtNzY2LDcgKzc2Niw3IEBACiAgCiAgc3RhdGljIHZv aWQKICB1bmtfbGFuZ19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5 cGUgKnR5cGUsCkBAIC0yNDAwLDcgKzIxOTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2xhbmd1YWdlLmMKICAJCSAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2Vf ZWxsaXBzZXMsCiAgCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cykKICB7Ci1AQCAtNzU4LDcgKzc1OCw3IEBAIHVua19sYW5nX3ByaW50X3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlLAorQEAgLTc4NSw3ICs3ODUsNyBAQAogIAogIHN0YXRpYyB2b2lkCiAgdW5rX2xh bmdfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs CkBAIC0yNDA5LDExICsyMjA1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv bGFuZ3VhZ2UuYwogIAkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAog IAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9sYW5ndWFnZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9sYW5ndWFnZS5o CTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE2MzUxNjgwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjMzNjQ4ODUgKzAxMDAK LUBAIC0xODksNyArMTg5LDcgQEAgc3RydWN0IGxhbmd1YWdlX2RlZm4KKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9sYW5ndWFnZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk1NTEw NDU1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmgJMjAxNi0w Ny0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC0xOTYsNyArMTk2LDcgQEAKICAJCQkg IHN0cnVjdCB1aV9maWxlICogc3RyZWFtKTsKICAKICAgICAgdm9pZCAoKmxhX3ByaW50c3RyKSAo c3RydWN0IHVpX2ZpbGUgKiBzdHJlYW0sIHN0cnVjdCB0eXBlICplbHR0eXBlLApAQCAtMjQyMiw3 ICsyMjE4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5ndWFnZS5oCiAg CQkJIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkJIGNvbnN0 IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIAotQEAgLTIzMSw3ICsyMzEsNyBAQCBz dHJ1Y3QgbGFuZ3VhZ2VfZGVmbgorQEAgLTIzOCw3ICsyMzgsNyBAQAogIAogICAgICB2b2lkICgq bGFfdmFsX3ByaW50KSAoc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkJICBjb25zdCBnZGJfYnl0ZSAq Y29udGVudHMsCkBAIC0yNDMxLDExICsyMjI3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvbGFuZ3VhZ2UuaAogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvbTItbGFuZy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLWxh bmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL20yLWxh bmcuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNzM1MTY4NiArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9tMi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjMzNjQ4ODUgKzAx MDAKLUBAIC0xMDQsMTAgKzEwNCwxMCBAQCBtMl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tMi1sYW5nLmMJMjAx Ni0wNy0xNiAxNDozMzo0Mi4wOTY1MTA0NjMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvbTItbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQwNTMwMTMyICswMjAwCitAQCAt MTA0LDEwICsxMDQsMTAgQEAKICAKICBzdGF0aWMgdm9pZAogIG0yX3ByaW50c3RyIChzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmlu ZywKQEAgLTI0NDgsNyArMjI0NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv bTItbGFuZy5jCiAgICB1bnNpZ25lZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAgaW50IGlu X3F1b3RlcyA9IDA7CiAgICBpbnQgbmVlZF9jb21tYSA9IDA7Ci1AQCAtMTIyLDkgKzEyMiw5IEBA IG0yX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHIKK0BAIC0xMjIsOSArMTIy LDkgQEAKICAgICAgewogICAgICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgd2UgYXJl IGV4YW1pbmluZwogICAgICAgICAgIHRvIHNlZSB3aGV0aGVyIGl0IGlzIHJlcGVhdGVkLiAgKi8K QEAgLTI0NjAsNyArMjI1Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTIt bGFuZy5jCiAgCiAgICAgICAgUVVJVDsKICAKLUBAIC0xNTAsNyArMTUwLDcgQEAgbTJfcHJpbnRz dHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cgorQEAgLTE1MCw3ICsxNTAsNyBAQAogIAkg ICAgICBpbl9xdW90ZXMgPSAwOwogIAkgICAgfQogIAkgIG0yX3ByaW50Y2hhciAoc3RyaW5nW2ld LCB0eXBlLCBzdHJlYW0pOwpAQCAtMjQ2OSwxMSArMjI2NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuYwogIAkgIGkgPSByZXAxIC0gMTsKICAJICB0aGluZ3Nf cHJpbnRlZCArPSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhyZXNob2xkOwogIAkgIG5lZWRfY29t bWEgPSAxOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmgKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbTItbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEu MjE3MzUxNjg2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuaAky MDE1LTExLTAyIDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAotQEAgLTM0LDcgKzM0LDcgQEAgZXh0 ZXJuIHZvaWQgbTJfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cAorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmgJMjAxNi0wNy0xNiAx NDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC0zNCw3ICszNCw3IEBACiAgZXh0ZXJuIGludCBt Ml9pc19sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUpOwogIGV4dGVybiBpbnQgbTJfaXNfdW5i b3VuZGVkX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgCkBAIC0yNDgyLDExICsyMjc4LDEx IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5oCiAgCQkJICBzdHJ1 Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9tMi10eXBlcHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9tMi10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL20yLXR5cGVwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE3MzUxNjg2ICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXR5cGVwcmludC5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjI0MzY0ODkyICswMTAwCi1AQCAtMjM0LDkgKzIzNCwxMiBAQCBzdGF0aWMgdm9p ZCBtMl9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUsCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYu b3JpZy9nZGIvbTItdHlwZXByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTY1MTA0NjMgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItdHlwZXByaW50LmMJMjAxNi0wNy0x NiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKK0BAIC0yMzQsOSArMjM0LDEyIEBACiAgCSAgbTJf cHJpbnRfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKHR5cGUpLCBzdHJlYW0sIHNob3csIC0xLCAx KTsKICAJfQogICAgICAgIGVsc2UKQEAgLTI1MDIsMTEgKzIyOTgsMTEgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi10eXBlcHJpbnQuYwogICAgICB9CiAgICBmcHJpbnRmX2Zp bHRlcmVkIChzdHJlYW0sICJdIE9GICIpOwogICAgbTJfcHJpbnRfdHlwZSAoVFlQRV9UQVJHRVRf VFlQRSAodHlwZSksICIiLCBzdHJlYW0sIHNob3csIGxldmVsLCBmbGFncyk7Ci1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvbTItdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIw MTUxMDI3Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTczNTE2 ODYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItdmFscHJpbnQuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjIyNDM2NDg5MiArMDEwMAotQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGlj IGludCBwcmludF91bnBhY2tlZF9wb2ludGVyIChzdHJ1YworLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTY1MTA0NjMg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItdmFscHJpbnQuYwkyMDE2LTA3 LTE2IDE0OjM1OjE5LjgzMDI5NzAxMyArMDIwMAorQEAgLTM1LDcgKzM1LDcgQEAKICAJCQkJICAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgc3RhdGljIHZvaWQKICBtMl9wcmludF9hcnJheV9j b250ZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAt MjUxNSw3ICsyMzExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi12YWxw cmludC5jCiAgCQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMsCi1AQCAtNjcsNyArNjcsNyBAQCBnZXRfbG9uZ19zZXRfYm91bmRzIChz dHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC02Nyw3ICs2Nyw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBt Ml9wcmludF9sb25nX3NldCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLApAQCAtMjUyNCw3ICsyMzIwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9tMi12YWxwcmludC5jCiAgCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQogIHsKICAgIGlu dCBlbXB0eV9zZXQgICAgICAgID0gMTsKLUBAIC0xNTgsNyArMTU4LDcgQEAgbTJfcHJpbnRfbG9u Z19zZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBjbworQEAgLTE1OCw3ICsxNTgsNyBAQAogIAogIHN0 YXRpYyB2b2lkCiAgbTJfcHJpbnRfdW5ib3VuZGVkX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwg Y29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTMzLDcgKzIzMjksNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAJCQkgIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTI2Miw3ICsyNjIsNyBAQCBwcmludF92YXJpYWJsZV9h dF9hZGRyZXNzIChzdHJ1Y3QgdHlwZSAqCitAQCAtMjYwLDcgKzI2MCw3IEBACiAgCiAgc3RhdGlj IHZvaWQKICBtMl9wcmludF9hcnJheV9jb250ZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjU0MiwyNyArMjMzOCwyMyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0zMDgsMTQgKzMw OCwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCitAQCAtMzA4 LDEzICszMDgsMTMgQEAKICAgICBmdW5jdGlvbjsgdGhleSBhcmUgaWRlbnRpY2FsLiAgKi8KICAK ICB2b2lkCiAtbTJfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0tCSAgICAgIENPUkVfQUREUiBhZGRyZXNz LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSttMl92YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLSsJICAgICAgTE9OR0VT VCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkgICAgICBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKKyttMl92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisg CSAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVj dXJzZSwKICAJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJICAg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgc3Ry dWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKLS0gIHVuc2lnbmVk IGludCBpID0gMDsJLyogTnVtYmVyIG9mIGNoYXJhY3RlcnMgcHJpbnRlZC4gICovCiAtICB1bnNp Z25lZCBsZW47Ci0rICBVTE9OR0VTVCBpID0gMDsJLyogTnVtYmVyIG9mIGNoYXJhY3RlcnMgcHJp bnRlZC4gICovCiArICBVTE9OR0VTVCBsZW47CiAgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZTsKICAg IENPUkVfQUREUiBhZGRyOwogIAotQEAgLTM0MCw3ICszNDEsNyBAQCBtMl92YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnCitAQCAtMzM5LDcgKzMzOSw3IEBACiAgCSAgICAgICAg IGVsZW1lbnRzIHVwIHRvIGl0LiAgKi8KICAJICAgICAgaWYgKG9wdGlvbnMtPnN0b3BfcHJpbnRf YXRfbnVsbCkKICAJCXsKQEAgLTI1NzEsMTAgKzIzNjMsMTkgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9tMi12YWxwcmludC5jCiAgCiAgCQkgIC8qIExvb2sgZm9yIGEgTlVMTCBj aGFyLiAgKi8KICAJCSAgZm9yICh0ZW1wX2xlbiA9IDA7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL21lbXJhbmdlLmMKK0BAIC00MTUsNyArNDE1LDcgQEAKKyAJeworIAkgIHN0cnVj dCB0eXBlICpyYW5nZSA9IGVsdHR5cGU7CisgCSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91 bmQ7CistCSAgaW50IGk7CisrCSAgTE9OR0VTVCBpOworIAkgIGludCBuZWVkX2NvbW1hID0gMDsK KyAKKyAJICBmcHV0c19maWx0ZXJlZCAoInsiLCBzdHJlYW0pOworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9tZW1yYW5nZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjcub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxODM1MTY5MyAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tZW1yYW5nZS5jCTIwMTUtMTEtMDIg MjE6MjM6MTMuMjI0MzY0ODkyICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvbWVtcmFuZ2UuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9tZW1yYW5nZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQx NTMwMTQwICswMjAwCiBAQCAtMjEsOCArMjEsOCBAQAogICNpbmNsdWRlICJtZW1yYW5nZS5oIgog IApAQCAtMjU4NiwxMSArMjM4NywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L21lbXJhbmdlLmMKICB7CiAgICBVTE9OR0VTVCBoLCBsOwogIAotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9tZW1yYW5nZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L21lbXJhbmdlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9tZW1yYW5nZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE4MzUxNjkzICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21lbXJhbmdlLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjQz NjQ4OTIgKzAxMDAKLUBAIC0zMCw3ICszMCw3IEBAIHN0cnVjdCBtZW1fcmFuZ2UKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tZW1yYW5nZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIu MDk3NTEwNDcxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lbXJhbmdlLmgJ MjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKK0BAIC0zMCw3ICszMCw3IEBACiAg ICBDT1JFX0FERFIgc3RhcnQ7CiAgCiAgICAvKiBMZW5ndGggb2YgdGhlIHJhbmdlLiAgKi8KQEAg LTI1OTksNyArMjQwMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFu Z2UuaAogIH07CiAgCiAgdHlwZWRlZiBzdHJ1Y3QgbWVtX3JhbmdlIG1lbV9yYW5nZV9zOwotQEAg LTQwLDggKzQwLDggQEAgREVGX1ZFQ19PKG1lbV9yYW5nZV9zKTsKK0BAIC00MCw4ICs0MCw4IEBA CiAgLyogUmV0dXJucyB0cnVlIGlmIHRoZSByYW5nZXMgZGVmaW5lZCBieSBbc3RhcnQxLCBzdGFy dDErbGVuMSkgYW5kCiAgICAgW3N0YXJ0Miwgc3RhcnQyK2xlbjIpIG92ZXJsYXAuICAqLwogIApA QCAtMjYxMCwxMSArMjQxMSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21l bXJhbmdlLmgKICAKICAvKiBSZXR1cm5zIHRydWUgaWYgQUREUiBpcyBpbiBSQU5HRS4gICovCiAg Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21pcHMtbGludXgtbmF0LmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWlwcy1saW51eC1uYXQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNS0x MS0wMiAyMToyMzoxMS4yMTgzNTE2OTMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNTM2NDg5OSArMDEwMAot QEAgLTU4Nyw3ICs1ODcsNyBAQCBtaXBzX2xpbnV4X3N0b3BwZWRfZGF0YV9hZGRyZXNzIChzdHJ1 Y3QKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDk3NTEwNDcxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAy MDAKK0BAIC01ODcsNyArNTg3LDcgQEAKICAKICBzdGF0aWMgaW50CiAgbWlwc19saW51eF9yZWdp b25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjYy MywxMSArMjQyNCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21pcHMtbGlu dXgtbmF0LmMKICB7CiAgICBzdHJ1Y3QgcHRfd2F0Y2hfcmVncyBkdW1teV9yZWdzOwogICAgaW50 IGk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL29wZW5jbC1sYW5nLmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvb3BlbmNsLWxhbmcuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNS0xMS0wMiAy MToyMzoxMS4yMTkzNTE2OTkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvb3Bl bmNsLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNTM2NDg5OSArMDEwMAotQEAgLTc4LDEx ICs3OCwxMSBAQCBidWlsdGluX29wZW5jbF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE2LTA3LTE2IDE0 OjMzOjQyLjA5NzUxMDQ3MSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9vcGVu Y2wtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQxNTMwMTQwICswMjAwCitAQCAtNzgsMTEg Kzc4LDExIEBACiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoKICBsb29rdXBfb3BlbmNsX3ZlY3Rv cl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgZW51bSB0eXBlX2NvZGUgY29kZSwKQEAg LTI2NDEsMzcgKzI0NDIsMjkgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVu Y2wtbGFuZy5jCiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IE5VTEw7CiAgICBzdHJ1Y3QgdHlwZSAq KnR5cGVzID0gYnVpbHRpbl9vcGVuY2xfdHlwZSAoZ2RiYXJjaCk7CiAgCi1AQCAtMTcyLDkgKzE3 Miw5IEBAIGx2YWxfZnVuY19yZWFkIChzdHJ1Y3QgdmFsdWUgKnYpCi0gICBzdHJ1Y3QgbHZhbF9j bG9zdXJlICpjID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3Vy ZSAodik7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KHYpKTsKK0BAIC0xNzQsNyArMTc0LDcgQEAKICAgIHN0cnVjdCB0eXBlICplbHR5cGUgPSBUWVBF X1RBUkdFVF9UWVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSk7Ci0tICBp bnQgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKLS0gIGludCBlbHNpemUgPSBUWVBFX0xFTkdU SCAoZWx0eXBlKTsKKyAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKKyAgIExP TkdFU1QgZWxzaXplID0gVFlQRV9MRU5HVEggKGVsdHlwZSk7CiAtICBpbnQgbiwgaSwgaiA9IDA7 Ci0rICBMT05HRVNUIG9mZnNldCA9IHZhbHVlX29mZnNldCAodik7Ci0rICBMT05HRVNUIGVsc2l6 ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOwogKyAgTE9OR0VTVCBuLCBpLCBqID0gMDsKICAgIExP TkdFU1QgbG93YiA9IDA7CiAgICBMT05HRVNUIGhpZ2hiID0gMDsKICAKLUBAIC0yMDEsOSArMjAx LDkgQEAgbHZhbF9mdW5jX3dyaXRlIChzdHJ1Y3QgdmFsdWUgKnYsIHN0cnVjdAotICAgc3RydWN0 IGx2YWxfY2xvc3VyZSAqYyA9IChzdHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVk X2Nsb3N1cmUgKHYpOwotICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlICh2KSk7CitAQCAtMjAzLDcgKzIwMyw3IEBACiAgICBzdHJ1Y3QgdHlwZSAqZWx0eXBl ID0gVFlQRV9UQVJHRVRfVFlQRSAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYy0+dmFsKSkp OwotLSAgaW50IG9mZnNldCA9IHZhbHVlX29mZnNldCAodik7Ci0tICBpbnQgZWxzaXplID0gVFlQ RV9MRU5HVEggKGVsdHlwZSk7CisgICBMT05HRVNUIG9mZnNldCA9IHZhbHVlX29mZnNldCAodik7 CisgICBMT05HRVNUIGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOwogLSAgaW50IG4sIGks IGogPSAwOwotKyAgTE9OR0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOwotKyAgTE9OR0VT VCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBlKTsKICsgIExPTkdFU1QgbiwgaSwgaiA9IDA7 CiAgICBMT05HRVNUIGxvd2IgPSAwOwogICAgTE9OR0VTVCBoaWdoYiA9IDA7CiAgCi1AQCAtMjQz LDE3ICsyNDMsMTcgQEAgbHZhbF9mdW5jX3dyaXRlIChzdHJ1Y3QgdmFsdWUgKnYsIHN0cnVjdAor QEAgLTI0MywxNyArMjQzLDE3IEBACiAgCiAgc3RhdGljIGludAogIGx2YWxfZnVuY19jaGVja19z eW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3RydWN0IHZhbHVlICp2LAotLQkJCQkgICBpbnQgb2Zm c2V0LCBpbnQgbGVuZ3RoKQorLQkJCQkgICBMT05HRVNUIG9mZnNldCwgaW50IGxlbmd0aCkKICsJ CQkJICAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKQogIHsKICAgIHN0cnVjdCBsdmFs X2Nsb3N1cmUgKmMgPSAoc3RydWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9z dXJlICh2KTsKQEAgLTI2OTIsNyArMjQ4NSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvb3BlbmNsLWxhbmcuYwogIAogICAgaWYgKGVuZHJlc3QpCiAgICAgIGVuZCsrOwotQEAg LTI2Myw4ICsyNjMsOCBAQCBsdmFsX2Z1bmNfY2hlY2tfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0 CitAQCAtMjYzLDggKzI2Myw4IEBACiAgCiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsr KQogICAgICB7CkBAIC0yNzAzLDExICsyNDk2LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvb3BlbmNsLWxhbmcuYwogIAogICAgICAgIGlmICghdmFsdWVfYml0c19zeW50aGV0 aWNfcG9pbnRlciAoYy0+dmFsLAogIAkJCQkJIGMtPmluZGljZXNbaV0gKiBlbHNpemUgKyBjb21w X29mZnNldCwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9wLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIx OTM1MTY5OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjIyNTM2NDg5OSArMDEwMAotQEAgLTk1LDggKzk1LDggQEAgcGFzY2Fs X21haW5fbmFtZSAodm9pZCkKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9wLWxh bmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5ODUxMDQ3OSArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9wLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MjUzMDE0OCArMDIw MAorQEAgLTk1LDggKzk1LDggQEAKICAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRBUkdFVF9DSEFS X0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlzIGRvZXMgbm90IGhh cHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwogIGludApAQCAtMjcxOCw3ICsy NTExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuYwogIAkJICAg ICAgIHN0cnVjdCB0eXBlICoqY2hhcl90eXBlLAogIAkJICAgICAgIGNvbnN0IGNoYXIgKiphcnJh eW5hbWUpCiAgewotQEAgLTIxNiwxMiArMjE2LDEyIEBAIHBhc2NhbF9wcmludGNoYXIgKGludCBj LCBzdHJ1Y3QgdHlwZSAqdHkKK0BAIC0yMTYsMTIgKzIxNiwxMiBAQAogIAogIHZvaWQKICBwYXNj YWxfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLApA QCAtMjczMyw3ICsyNTI2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxh bmcuYwogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKICAgIGludCBpbl9xdW90 ZXMgPSAwOwogICAgaW50IG5lZWRfY29tbWEgPSAwOwotQEAgLTI0OSw5ICsyNDksOSBAQCBwYXNj YWxfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitAQCAtMjQ5LDkgKzI0OSw5IEBA CiAgICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyIHdlIGFyZSBleGFt aW5pbmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBpcyByZXBlYXRlZC4gICovCkBAIC0y NzQ1LDcgKzI1MzgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5j CiAgICAgICAgdW5zaWduZWQgbG9uZyBpbnQgY3VycmVudF9jaGFyOwogIAogICAgICAgIFFVSVQ7 Ci1AQCAtMjgzLDcgKzI4Myw3IEBAIHBhc2NhbF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwKK0BAIC0yODMsNyArMjgzLDcgQEAKICAJICAgICAgaW5fcXVvdGVzID0gMDsKICAJICAg IH0KICAJICBwYXNjYWxfcHJpbnRjaGFyIChjdXJyZW50X2NoYXIsIHR5cGUsIHN0cmVhbSk7CkBA IC0yNzU0LDExICsyNTQ3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1s YW5nLmMKICAJICBpID0gcmVwMSAtIDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+ cmVwZWF0X2NvdW50X3RocmVzaG9sZDsKICAJICBuZWVkX2NvbW1hID0gMTsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvcC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmln L2dkYi9wLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIxOTM1MTY5OSArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNjM2 NDkwNSArMDEwMAotQEAgLTM2LDcgKzM2LDcgQEAgZXh0ZXJuIHZvaWQgcGFzY2FsX3ByaW50X3R5 cGUgKHN0cnVjdCB0eQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3AtbGFuZy5o CTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk4NTEwNDc5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3AtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQyNTMwMTQ4ICswMjAwCitA QCAtMzYsNyArMzYsNyBAQAogIGV4dGVybiB2b2lkIHBhc2NhbF9wcmludF90eXBlZGVmIChzdHJ1 Y3QgdHlwZSAqLCBzdHJ1Y3Qgc3ltYm9sICosCiAgCQkJCSAgc3RydWN0IHVpX2ZpbGUgKik7CiAg CkBAIC0yNzY3LDcgKzI1NjAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3At bGFuZy5oCiAgCQkJICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJ ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKik7Ci1AQCAtNTAsMTMgKzUwLDEzIEBAIGV4dGVybiB2b2lkIHBhc2Nh bF90eXBlX3ByaW50X21ldGhvZF9hcmcKK0BAIC01MCwxMyArNTAsMTMgQEAKICAvKiBUaGVzZSBh cmUgaW4gcC1sYW5nLmM6ICovCiAgCiAgZXh0ZXJuIGludApAQCAtMjc4MywyMCArMjU3NiwxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5oCiAgCQkJICAgICBjb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKICAKICBleHRlcm4gc3RydWN0IHR5cGUg Kipjb25zdCAocGFzY2FsX2J1aWx0aW5fdHlwZXNbXSk7Ci1AQCAtNzIsNyArNzIsNyBAQCBleHRl cm4gdm9pZAotIAkJCQkgICAgY29uc3Qgc3RydWN0IHR5cGVfcHJpbnRfb3B0aW9ucyAqKTsKLSAK LSBleHRlcm4gdm9pZCBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5 cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwKLS0JCQkJCSAgICAgIGludCwKLSsJCQkJCSAgICAgIExP TkdFU1QsCi0gCQkJCQkgICAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICosCi0gCQkJCQkg ICAgICBpbnQsCi0gCQkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvcC12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyMDM1MTcwNiAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLXZhbHByaW50LmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMjYzNjQ5MDUgKzAxMDAKLUBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9wLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTg1MTA0NzkgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTQyNTMwMTQ4ICswMjAwCitAQCAtNTksNyArNTksNyBAQAogIAogIHZvaWQKICBwYXNj YWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIs CkBAIC0yODA1LDcgKzI1ODksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3At dmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJ CSAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCSAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1AQCAtNjgsOCArNjgsOCBAQCBwYXNjYWxf dmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uCitAQCAtNzAsOCArNzAsOCBAQAogICAg dW5zaWduZWQgbGVuOwogICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7CiAgICBzdHJ1 Y3QgdHlwZSAqZWx0dHlwZTsKQEAgLTI4MTYsNTIgKzI2MDAsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9wLXZhbHByaW50LmMKICAgIHN0cnVjdCB0eXBlICpjaGFyX3R5cGU7 CiAgICBDT1JFX0FERFIgYWRkcjsKICAgIGludCB3YW50X3NwYWNlID0gMDsKLUBAIC00NjcsNyAr NDY3LDcgQEAgc3RhdGljIHZvaWQgcGFzY2FsX29iamVjdF9wcmludF9zdGF0aWNfZgotIAkJCQkJ ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci0gCi0gc3RhdGljIHZv aWQgcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5 dGUgKiwKLS0JCQkJICAgICAgIGludCwKLSsJCQkJICAgICAgIExPTkdFU1QsCi0gCQkJCSAgICAg ICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICosIGludCwKLSAJCQkJICAgICAgIGNvbnN0IHN0 cnVjdCB2YWx1ZSAqLAotIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKiwKLUBAIC01MjYsNyArNTI2LDcgQEAgcGFzY2FsX29iamVjdF9pc192dGJsX21lbWJlciAo c3RydWN0IHR5cAotIAotIHZvaWQKLSBwYXNjYWxfb2JqZWN0X3ByaW50X3ZhbHVlX2ZpZWxkcyAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCQkgIGludCBv ZmZzZXQsCi0rCQkJCSAgTE9OR0VTVCBvZmZzZXQsCi0gCQkJCSAgQ09SRV9BRERSIGFkZHJlc3Ms IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkJCSAgaW50IHJlY3Vyc2UsCi0gCQkJCSAgY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNjk3LDcgKzY5Nyw3IEBAIHBhc2NhbF9vYmplY3Rf cHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QKLSAKLSBzdGF0aWMgdm9pZAotIHBhc2NhbF9vYmpl Y3RfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKLS0JCQkgICBpbnQgb2Zmc2V0LAotKwkJCSAgIExPTkdFU1Qgb2Zmc2V0LAotIAkJCSAgIENP UkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJCSAgIGludCByZWN1 cnNlLAotIAkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTcyMCwxMSArNzIwLDEx IEBAIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICoKLSAKLSAgIGZvciAo aSA9IDA7IGkgPCBuX2Jhc2VjbGFzc2VzOyBpKyspCi0gICAgIHsKLS0gICAgICBpbnQgYm9mZnNl dCA9IDA7Ci0rICAgICAgTE9OR0VTVCBib2Zmc2V0ID0gMDsKLSAgICAgICBzdHJ1Y3QgdHlwZSAq YmFzZWNsYXNzID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKHR5cGUsIGkpKTsKLSAg ICAgICBjb25zdCBjaGFyICpiYXNlbmFtZSA9IHR5cGVfbmFtZV9ub190YWcgKGJhc2VjbGFzcyk7 Ci0gICAgICAgY29uc3QgZ2RiX2J5dGUgKmJhc2VfdmFsYWRkciA9IE5VTEw7Ci0tICAgICAgaW50 IHRoaXNvZmZzZXQ7Ci0rICAgICAgTE9OR0VTVCB0aGlzb2Zmc2V0OwotICAgICAgIGludCBza2lw ID0gMDsKLSAKLSAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKHR5cGUsIGkpKQotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcGMtbGludXgtbmF0LmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvcHBjLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjIxMzUxNzEzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3BwYy1s aW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNzM2NDkxMiArMDEwMAotQEAgLTE0NDks NyArMTQ0OSw3IEBAIHBwY19saW51eF9jYW5fdXNlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjA5OTUxMDQ4NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9w cGMtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKK0BAIC0x NDQ5LDcgKzE0NDksNyBAQAogIAogIHN0YXRpYyBpbnQKICBwcGNfbGludXhfcmVnaW9uX29rX2Zv cl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTI4NzAsMTEgKzI2 MTMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcGMtbGludXgtbmF0LmMK ICB7CiAgICAvKiBIYW5kbGUgc3ViLTgtYnl0ZSBxdWFudGl0aWVzLiAgKi8KICAgIGlmIChsZW4g PD0gMCkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHJpbnRjbWQuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcmludGNtZC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE1LTExLTAyIDIxOjIzOjEx LjIyMTM1MTcxMyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmludGNtZC5j CTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI3MzY0OTEyICswMTAwCi1AQCAtMjc0LDcgKzI3NCw3IEBA IHByaW50X2Zvcm1hdHRlZCAoc3RydWN0IHZhbHVlICp2YWwsIGludAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTk1MTA0 ODcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHJpbnRjbWQuYwkyMDE2LTA3 LTE2IDE0OjMzOjQ0LjU0MzUzMDE1NiArMDIwMAorQEAgLTI3OSw3ICsyNzksNyBAQAogIAkJIHN0 cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190 eXBlZGVmICh2YWx1ZV90eXBlICh2YWwpKTsKQEAgLTI4ODMsNyArMjYyNiw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHJpbnRjbWQuYwogIAogICAgaWYgKFZBTFVFX0xWQUwg KHZhbCkgPT0gbHZhbF9tZW1vcnkpCiAgICAgIG5leHRfYWRkcmVzcyA9IHZhbHVlX2FkZHJlc3Mg KHZhbCkgKyBsZW47Ci1AQCAtMzUyLDcgKzM1Miw3IEBAIHByaW50X3NjYWxhcl9mb3JtYXR0ZWQg KGNvbnN0IGdkYl9ieXRlICoKK0BAIC0zNTcsNyArMzU3LDcgQEAKICB7CiAgICBzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwogICAgTE9OR0VTVCB2YWxfbG9u ZyA9IDA7CkBAIC0yODkyLDExICsyNjM1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvcHJpbnRjbWQuYwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNo X2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogIAogICAgLyogU3RyaW5nIHByaW50aW5nIHNob3VsZCBn byB0aHJvdWdoIHZhbF9wcmludF9zY2FsYXJfZm9ybWF0dGVkLiAgKi8KLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvcHJvY2ZzLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvcHJvY2ZzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dk Yi9wcm9jZnMuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyMzM1MTcyNiArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9wcm9jZnMuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyODM2NDkx OCArMDEwMAotQEAgLTQ4NjMsNyArNDg2Myw3IEBAIHByb2Nmc19yZW1vdmVfd2F0Y2hwb2ludCAo c3RydWN0IHRhcmdldF8KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9wcm9jZnMu YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwMDUxMDQ5NSArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9wcm9jZnMuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MzUzMDE1NiArMDIwMAor QEAgLTQ4NjMsNyArNDg2Myw3IEBACiAgCiAgc3RhdGljIGludAogIHByb2Nmc19yZWdpb25fb2tf Zm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjkwNSwyNCAr MjY0OCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Byb2Nmcy5jCiAgewog ICAgLyogVGhlIG1hbiBwYWdlIGZvciBwcm9jKDQpIG9uIFNvbGFyaXMgMi42IGFuZCB1cCBzYXlz IHRoYXQgdGhlCiAgICAgICBzeXN0ZW0gY2FuIHN1cHBvcnQgInRob3VzYW5kcyIgb2YgaGFyZHdh cmUgd2F0Y2hwb2ludHMsIGJ1dCBnaXZlcwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9weXRob24vcHktcHJldHR5cHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9yZWdjYWNoZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjMzNTE3MjYg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50 LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjkzNjQ5MjUgKzAxMDAKLUBAIC03MDMsNyArNzAzLDcg QEAgcHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdAotIGVudW0gZXh0X2xh bmdfcmMKLSBnZGJweV9hcHBseV92YWxfcHJldHR5X3ByaW50ZXIgKGNvbnN0IHN0cnVjdCBleHRl bnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywKLSAJCQkJc3RydWN0IHR5cGUgKnR5cGUsIGNv bnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCQlpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FE RFIgYWRkcmVzcywKLSsJCQkJTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRy ZXNzLAotIAkJCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCQkJY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5j Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcmVnY2FjaGUu YwkyMDE1LTExLTAyIDIxOjIzOjExLjIyNDM1MTczMiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9yZWdjYWNoZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI5MzY0OTI1ICswMTAw Ci1AQCAtOTU4LDcgKzk1OCw3IEBAIHR5cGVkZWYgdm9pZCAocmVnY2FjaGVfd3JpdGVfZnR5cGUp IChzdHIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTYt MDctMTYgMTQ6MzM6NDIuMTAxNTEwNTAzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3JlZ2NhY2hlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDQ1MzAxNjUgKzAyMDAKK0BAIC05 NjcsNyArOTY3LDcgQEAKICAKICBzdGF0aWMgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNo ZV94ZmVyX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0y OTMxLDcgKzI2NjEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hl LmMKICAJCSAgICBlbnVtIHJlZ2lzdGVyX3N0YXR1cyAoKnJlYWQpIChzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2hlLAogIAkJCQkJCSAgaW50IHJlZ251bSwKICAJCQkJCQkgIGdkYl9ieXRlICpidWYp LAotQEAgLTEwMDIsNyArMTAwMiw3IEBAIHJlZ2NhY2hlX3hmZXJfcGFydCAoc3RydWN0IHJlZ2Nh Y2hlICpyZWcKK0BAIC0xMDExLDcgKzEwMTEsNyBAQAogIAogIGVudW0gcmVnaXN0ZXJfc3RhdHVz CiAgcmVnY2FjaGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50 IHJlZ251bSwKQEAgLTI5NDAsNyArMjY3MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSBy ZWdjYWNoZS0+ZGVzY3I7CiAgCi1AQCAtMTAxMyw3ICsxMDEzLDcgQEAgcmVnY2FjaGVfcmF3X3Jl YWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlCitAQCAtMTAyMiw3ICsxMDIyLDcgQEAKICAKICB2b2lk CiAgcmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGlu dCByZWdudW0sCkBAIC0yOTQ5LDcgKzI2NzksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0g cmVnY2FjaGUtPmRlc2NyOwogIAotQEAgLTEwMjQsNyArMTAyNCw3IEBAIHJlZ2NhY2hlX3Jhd193 cml0ZV9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKK0BAIC0xMDMzLDcgKzEwMzMsNyBAQAogIAogIGVu dW0gcmVnaXN0ZXJfc3RhdHVzCiAgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJl Z2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5NTgsNyArMjY4OCw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdj YWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1AQCAtMTAzNSw3ICsxMDM1 LDcgQEAgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhYworQEAgLTEwNDQs NyArMTA0NCw3IEBACiAgCiAgdm9pZAogIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV9wYXJ0IChzdHJ1 Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk2NywxMSArMjY5NywxMSBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1 Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2FjaGUtPmRlc2NyOwogIAotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3JlZ2NhY2hlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9yZWdjYWNoZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjI0MzUxNzMyICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmgJMjAxNS0xMS0wMiAyMToy MzoxMy4yMzAzNjQ5MzEgKzAxMDAKLUBAIC05Miw5ICs5Miw5IEBAIGV4dGVybiB2b2lkIHJlZ2Nh Y2hlX3Jhd193cml0ZV91bnNpZ25lZAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L3JlZ2NhY2hlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDE1MTA1MDMgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0NDUz MDE2NSArMDIwMAorQEAgLTgwLDkgKzgwLDkgQEAKICAKICBleHRlcm4gZW51bSByZWdpc3Rlcl9z dGF0dXMKICAgIHJlZ2NhY2hlX3Jhd19yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2Fj aGUsIGludCByZWdudW0sCkBAIC0yOTgzLDcgKzI3MTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmgKICAKICB2b2lkIHJlZ2NhY2hlX2ludmFsaWRhdGUgKHN0 cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0pOwogIAotQEAgLTEzMSwxMCArMTMx LDExIEBAIGV4dGVybiB2b2lkIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91bnNpZ24KK0BAIC0xMTks MTAgKzExOSwxMSBAQAogICAgIHdyaXRlIHN0eWxlIG9wZXJhdGlvbnMuICAqLwogIAogIGVudW0g cmVnaXN0ZXJfc3RhdHVzIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgKHN0cnVjdCByZWdjYWNo ZSAqcmVnY2FjaGUsCkBAIC0yOTk4LDExICsyNzI4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvcmVnY2FjaGUuaAogIAogIC8qIFNwZWNpYWwgcm91dGluZXMgdG8gcmVhZC93 cml0ZSB0aGUgUEMuICAqLwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZW1v dGUuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZW1vdGUuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3JlbW90ZS5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjI3MzUxNzUyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Jl bW90ZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjMyMzY0OTQ1ICswMTAwCi1AQCAtOTE1Nyw3ICs5 MTU3LDcgQEAgaW50IHJlbW90ZV9od19icmVha3BvaW50X2xpbWl0ID0gLTE7CistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcmVtb3RlLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDQ1 MTA1MjcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVtb3RlLmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41NDU1MzAxNzIgKzAyMDAKK0BAIC05NDczLDcgKzk0NzMsNyBAQAogIAog IHN0YXRpYyBpbnQKICByZW1vdGVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3Qg dGFyZ2V0X29wcyAqc2VsZiwKQEAgLTMwMTEsMTEgKzI3NDEsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9yZW1vdGUuYwogIHsKICAgIGlmIChyZW1vdGVfaHdfd2F0Y2hwb2lu dF9sZW5ndGhfbGltaXQgPT0gMCkKICAgICAgcmV0dXJuIDA7Ci1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3NwdS1tdWx0aWFyY2guYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9zcHUtbXVsdGlhcmNoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjgzNTE3NTkg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjMzMzY0OTUxICswMTAwCi1AQCAtMTI3LDcgKzEyNyw3IEBAIHNwdV90 aHJlYWRfYXJjaGl0ZWN0dXJlIChzdHJ1Y3QgdGFyZ2V0X28KKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDU1MTA1 MzYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3B1LW11bHRpYXJjaC5jCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTQ1NTMwMTcyICswMjAwCitAQCAtMTI3LDcgKzEyNyw3IEBACiAg LyogT3ZlcnJpZGUgdGhlIHRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCByb3V0aW5lLiAg Ki8KICBzdGF0aWMgaW50CiAgc3B1X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0 IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0zMDI0LDExICsyNzU0LDExIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvc3B1LW11bHRpYXJjaC5jCiAgewogICAgc3RydWN0IHRhcmdldF9v cHMgKm9wc19iZW5lYXRoID0gZmluZF90YXJnZXRfYmVuZWF0aCAoc2VsZik7CiAgCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3N0YWNrLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvc3RhY2suYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3N0YWNrLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjkzNTE3NjUgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIzMzM2 NDk1MSArMDEwMAotQEAgLTE3Niw3ICsxNzYsNyBAQCBwcmludF9zdGFja19mcmFtZSAoc3RydWN0 IGZyYW1lX2luZm8gKmZyCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3RhY2su YwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwNjUxMDU0NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9zdGFjay5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ2NTMwMTgxICswMjAwCitA QCAtMTc2LDcgKzE3Niw3IEBACiAgICAgYXJndW1lbnQgKG5vdCBqdXN0IHRoZSBmaXJzdCBuYW1l bGVzcyBhcmd1bWVudCkuICAqLwogIAogIHN0YXRpYyB2b2lkCkBAIC0zMDM3LDcgKzI3NjcsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3N0YWNrLmMKICAJCQkgICBpbnQgZmly c3QsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwotQEAgLTUzOSw3ICs1MzksNyBAQCBwcmludF9m cmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCitAQCAtNTM3LDcgKzUzNyw3IEBACiAg ICAvKiBPZmZzZXQgb2YgbmV4dCBzdGFjayBhcmd1bWVudCBiZXlvbmQgdGhlIG9uZSB3ZSBoYXZl IHNlZW4gdGhhdCBpcwogICAgICAgYXQgdGhlIGhpZ2hlc3Qgb2Zmc2V0LCBvciAtMSBpZiB3ZSBo YXZlbid0IGNvbWUgdG8gYSBzdGFjawogICAgICAgYXJndW1lbnQgeWV0LiAgKi8KQEAgLTMwNDYs NyArMjc3Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwogICAg LyogTnVtYmVyIG9mIGludHMgb2YgYXJndW1lbnRzIHRoYXQgd2UgaGF2ZSBwcmludGVkIHNvIGZh ci4gICovCiAgICBpbnQgYXJnc19wcmludGVkID0gMDsKICAgIHN0cnVjdCBjbGVhbnVwICpvbGRf Y2hhaW47Ci1AQCAtNTczLDggKzU3Myw4IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1i b2wgKmZ1bmMsIHMKK0BAIC01NzEsOCArNTcxLDggQEAKICAJICAgIGNhc2UgTE9DX0FSRzoKICAJ ICAgIGNhc2UgTE9DX1JFRl9BUkc6CiAgCSAgICAgIHsKQEAgLTMwNTcsNyArMjc4Nyw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwogIAogIAkJLyogQ29tcHV0ZSBh ZGRyZXNzIG9mIG5leHQgYXJndW1lbnQgYnkgYWRkaW5nIHRoZSBzaXplIG9mCiAgCQkgICB0aGlz IGFyZ3VtZW50IGFuZCByb3VuZGluZyB0byBhbiBpbnQgYm91bmRhcnkuICAqLwotQEAgLTcwOSw3 ICs3MDksNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCitAQCAt NzA3LDcgKzcwNyw3IEBACiAgICAgICBlbm91Z2ggYWJvdXQgdGhlIHN0YWNrIHRvIGZpbmQgdGhl bS4gICovCiAgICBpZiAobnVtICE9IC0xKQogICAgICB7CkBAIC0zMDY2LDExICsyNzk2LDExIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwogIAogICAgICAgIGlmICho aWdoZXN0X29mZnNldCA9PSAtMSkKICAJc3RhcnQgPSBnZGJhcmNoX2ZyYW1lX2FyZ3Nfc2tpcCAo Z2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3N5bW1pc2MuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zeW1taXNjLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9zeW1taXNjLmMJMjAx NS0xMS0wMiAyMToyMzoxMS4yMjkzNTE3NjUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvc3ltbWlzYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM0MzY0OTU4ICswMTAwCi1AQCAt NTM0LDExICs1MzQsMTEgQEAgcHJpbnRfc3ltYm9sICh2b2lkICphcmdzKQorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3N5bW1pc2MuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwNzUx MDU1MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zeW1taXNjLmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41NDY1MzAxODEgKzAyMDAKK0BAIC01MzgsMTEgKzUzOCwxMSBAQAogIAog IAljYXNlIExPQ19DT05TVF9CWVRFUzoKICAJICB7CkBAIC0zMDg1LDExICsyODE1LDExIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3ltbWlzYy5jCiAgCSAgICBmb3IgKGkgPSAw OyBpIDwgVFlQRV9MRU5HVEggKHR5cGUpOyBpKyspCiAgCSAgICAgIGZwcmludGZfZmlsdGVyZWQg KG91dGZpbGUsICIgJTAyeCIsCiAgCQkJCSh1bnNpZ25lZCkgU1lNQk9MX1ZBTFVFX0JZVEVTIChz eW1ib2wpW2ldKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi90YXJnZXQuYwkyMDE1LTExLTAyIDIxOjIzOjEx LjIzMDM1MTc3MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQuYwky MDE1LTExLTAyIDIxOjIzOjEzLjIzNDM2NDk1OCArMDEwMAotQEAgLTU0LDcgKzU0LDcgQEAgc3Rh dGljIGludCBkZWZhdWx0X3dhdGNocG9pbnRfYWRkcl93aXRoaQorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTA4NTEwNTYwICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC5jCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTQ2NTMwMTgxICswMjAwCitAQCAtNTYsNyArNTYsNyBAQAogIAkJCQkJCSBDT1JFX0FE RFIsIENPUkVfQUREUiwgaW50KTsKICAKICBzdGF0aWMgaW50IGRlZmF1bHRfcmVnaW9uX29rX2Zv cl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqLApAQCAtMzA5OCw3ICsyODI4LDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQuYwogIAogIHN0YXRpYyB2 b2lkIGRlZmF1bHRfcmNtZCAoc3RydWN0IHRhcmdldF9vcHMgKiwgY29uc3QgY2hhciAqLCBzdHJ1 Y3QgdWlfZmlsZSAqKTsKICAKLUBAIC0zMTMyLDcgKzMxMzIsNyBAQCB0YXJnZXRfZmlsZWlvX3Jl YWRfc3RyYWxsb2MgKHN0cnVjdCBpbmZlCitAQCAtMzE5Niw3ICszMTk2LDcgQEAKICAKICBzdGF0 aWMgaW50CiAgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLApAQCAtMzEwNywxMSArMjgzNywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3RhcmdldC5jCiAgewogICAgcmV0dXJuIChsZW4gPD0gZ2RiYXJjaF9wdHJf Yml0ICh0YXJnZXRfZ2RiYXJjaCAoKSkgLyBUQVJHRVRfQ0hBUl9CSVQpOwogIH0KLUluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi90YXJnZXQuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIzMTM1MTc3OSArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIz NTM2NDk2NCArMDEwMAotQEAgLTU0OSw3ICs1NDksNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcworLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMTA5NTEwNTY4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC5o CTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ3NTMwMTg5ICswMjAwCitAQCAtNTUxLDcgKzU1MSw3IEBA CiAgICAgIC8qIERvY3VtZW50YXRpb24gb2YgdGhpcyByb3V0aW5lIGlzIHByb3ZpZGVkIHdpdGgg dGhlIGNvcnJlc3BvbmRpbmcKICAgICAgICAgdGFyZ2V0XyogbWFjcm8uICAqLwogICAgICBpbnQg KCp0b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLApA QCAtMzEyMCwxMSArMjg1MCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Rh cmdldC5oCiAgICAgICAgVEFSR0VUX0RFRkFVTFRfRlVOQyAoZGVmYXVsdF9yZWdpb25fb2tfZm9y X2h3X3dhdGNocG9pbnQpOwogIAogICAgICBpbnQgKCp0b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9j b25kaXRpb24pIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi90cmFjZXBvaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdHJh Y2Vwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv dHJhY2Vwb2ludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjMzMzUxNzkyICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIz NjM2NDk3MSArMDEwMAotQEAgLTkzMCwxMyArOTMwLDEzIEBAIGFkZF9yZWdpc3RlciAoc3RydWN0 IGNvbGxlY3Rpb25fbGlzdCAqY28KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90 cmFjZXBvaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMTI1MTA1OTIgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvdHJhY2Vwb2ludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ3 NTMwMTg5ICswMjAwCitAQCAtOTMwLDEzICs5MzAsMTMgQEAKICBzdGF0aWMgdm9pZAogIGFkZF9t ZW1yYW5nZSAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqbWVtcmFuZ2VzLCAKICAJICAgICAgaW50 IHR5cGUsIGJmZF9zaWduZWRfdm1hIGJhc2UsCkBAIC0zMTQwLDcgKzI4NzAsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogICAgICB9CiAgCiAgICAvKiB0 eXBlOiBtZW1yYW5nZV9hYnNvbHV0ZSA9PSBtZW1vcnksIG90aGVyIG4gPT0gYmFzZXJlZyAqLwot QEAgLTk2Niw3ICs5NjYsNyBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlz dCAqCitAQCAtOTY2LDcgKzk2Niw3IEBACiAgCQlDT1JFX0FERFIgc2NvcGUsCiAgCQlpbnQgdHJh Y2Vfc3RyaW5nKQogIHsKQEAgLTMxNDksNyArMjg3OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgICB1bnNpZ25lZCBpbnQgcmVnOwogICAgYmZkX3Np Z25lZF92bWEgb2Zmc2V0OwogICAgaW50IHRyZWF0X2FzX2V4cHIgPSAwOwotQEAgLTk5MCw4ICs5 OTAsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCitAQCAtOTkw LDggKzk5MCw4IEBACiAgCSAgY2hhciB0bXBbNDBdOwogIAogIAkgIHNwcmludGZfdm1hICh0bXAs IG9mZnNldCk7CkBAIC0zMTYwLDcgKzI4OTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3RyYWNlcG9pbnQuYwogIAkJCSAgIHRtcCAvKiBhZGRyZXNzICovKTsKICAJfQogICAg ICAgIC8qIEEgc3RydWN0IG1heSBiZSBhIEMrKyBjbGFzcyB3aXRoIHN0YXRpYyBmaWVsZHMsIGdv IHRvIGdlbmVyYWwKLUBAIC0xMDIzLDggKzEwMjMsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0 IGNvbGxlY3Rpb25fbGlzdCAqCitAQCAtMTAyMyw4ICsxMDIzLDggQEAKICAgICAgICBvZmZzZXQg PSBmcmFtZV9vZmZzZXQgKyBTWU1CT0xfVkFMVUUgKHN5bSk7CiAgICAgICAgaWYgKGluZm9fdmVy Ym9zZSkKICAJewpAQCAtMzE3MSw3ICsyOTAxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi90cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1hIChvZmZzZXQpOwogIAkgIHByaW50 Zl9maWx0ZXJlZCAoIiBmcm9tIGZyYW1lIHB0ciByZWcgJWRcbiIsIHJlZyk7CiAgCX0KLUBAIC0x MDM1LDggKzEwMzUsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAq CitAQCAtMTAzNSw4ICsxMDM1LDggQEAKICAgICAgICBvZmZzZXQgPSAwOwogICAgICAgIGlmIChp bmZvX3ZlcmJvc2UpCiAgCXsKQEAgLTMxODIsNyArMjkxMiw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgCSAgcHJpbnRmX3ZtYSAob2Zmc2V0KTsKICAJ ICBwcmludGZfZmlsdGVyZWQgKCIgZnJvbSByZWcgJWRcbiIsIHJlZyk7CiAgCX0KLUBAIC0xMDQ3 LDggKzEwNDcsOCBAQCBjb2xsZWN0X3N5bWJvbCAoc3RydWN0IGNvbGxlY3Rpb25fbGlzdCAqCitA QCAtMTA0Nyw4ICsxMDQ3LDggQEAKICAgICAgICBvZmZzZXQgPSBmcmFtZV9vZmZzZXQgKyBTWU1C T0xfVkFMVUUgKHN5bSk7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJewpAQCAtMzE5Myw3 ICsyOTIzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90cmFjZXBvaW50LmMK ICAJICBwcmludGZfdm1hIChvZmZzZXQpOwogIAkgIHByaW50Zl9maWx0ZXJlZCAoIiBmcm9tIGZy YW1lIHB0ciByZWcgJWRcbiIsIHJlZyk7CiAgCX0KLUBAIC0yNzA4LDcgKzI3MDgsOCBAQCBzY29w ZV9pbmZvIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCitAQCAtMjcwMyw3ICsyNzAzLDggQEAK ICAgIGNvbnN0IGNoYXIgKnN5bW5hbWU7CiAgICBjaGFyICpzYXZlX2FyZ3MgPSBhcmdzOwogICAg c3RydWN0IGJsb2NrX2l0ZXJhdG9yIGl0ZXI7CkBAIC0zMjAzLDcgKzI5MzMsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogICAgc3RydWN0IGdkYmFyY2gg KmdkYmFyY2g7CiAgICBpbnQgcmVnbm87CiAgICBzdHJ1Y3QgZXZlbnRfbG9jYXRpb24gKmxvY2F0 aW9uOwotQEAgLTI4NTIsOCArMjg1MywxMSBAQCBzY29wZV9pbmZvIChjaGFyICphcmdzLCBpbnQg ZnJvbV90dHkpCitAQCAtMjg0Nyw4ICsyODQ4LDExIEBACiAgCQl9CiAgCSAgICB9CiAgCSAgaWYg KFNZTUJPTF9UWVBFIChzeW0pKQpAQCAtMzIxNywyNCArMjk0NywxMSBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogIAl9CiAgICAgICAgaWYgKEJMT0NLX0ZV TkNUSU9OIChibG9jaykpCiAgCWJyZWFrOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi90eXBlcHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL3R5cGVwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjM0MzUxNzk4ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3R5cGVwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjM2MzY0OTcxICswMTAwCi1AQCAtNDA2LDcgKzQwNiw3IEBAIHdoYXRpc19leHAgKGNoYXIgKmV4 cCwgaW50IHNob3cpCi0gICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlID0gTlVMTDsKLSAgIHN0cnVj dCB0eXBlICp0eXBlOwotICAgaW50IGZ1bGwgPSAwOwotLSAgaW50IHRvcCA9IC0xOwotKyAgTE9O R0VTVCB0b3AgPSAtMTsKLSAgIGludCB1c2luZ19lbmMgPSAwOwotICAgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgb3B0czsKLSAgIHN0cnVjdCB0eXBlX3ByaW50X29wdGlvbnMgZmxhZ3MgPSBk ZWZhdWx0X3B0eXBlX2ZsYWdzOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxh cml0aC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbGFyaXRoLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjM0MzUxNzk4ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0wMiAyMToyMzo1OS44MjI2NzE0OTYgKzAxMDAKLUBAIC0x ODgsMTIgKzE4OCwxMiBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIExP CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdmFsYXJpdGguYwkyMDE2LTA3LTE2 IDE0OjMzOjQyLjExNDUxMDYwOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92 YWxhcml0aC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ4NTMwMTk3ICswMjAwCitAQCAtMTg4LDcg KzE4OCw3IEBACiAgICAgdG8gZG91YmxlcywgYnV0IG5vIGxvbmdlciBkb2VzLiAgKi8KICAKICBz dHJ1Y3QgdmFsdWUgKgpAQCAtMzI0MywxNCArMjk2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdmFsYXJpdGguYwogIHsKICAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKICAgIHN0cnVjdCB0eXBlICplbHRf dHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLS0g IHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0t ICB1bnNpZ25lZCBpbnQgZWx0X29mZnM7Ci0rICBVTE9OR0VTVCBlbHRfc2l6ZSA9IHR5cGVfbGVu Z3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0rICBVTE9OR0VTVCBlbHRfb2ZmczsKLSAgIExPTkdFU1Qg ZWx0X3N0cmlkZSA9IFRZUEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlw ZSkpOwotICAgc3RydWN0IHZhbHVlICp2OwotIAotQEAgLTY3OCw3ICs2NzgsNyBAQCB2YWx1ZV9j b25jYXQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgc3RydWN0CitAQCAtNjc0LDcgKzY3NCw3IEBACiAg ICBzdHJ1Y3QgdmFsdWUgKmludmFsMTsKICAgIHN0cnVjdCB2YWx1ZSAqaW52YWwyOwogICAgc3Ry dWN0IHZhbHVlICpvdXR2YWwgPSBOVUxMOwpAQCAtMzI1OSw3ICsyOTY5LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxhcml0aC5jCiAgICBpbnQgY291bnQsIGlkeDsKICAg IGNoYXIgKnB0cjsKICAgIGNoYXIgaW5jaGFyOwotQEAgLTE1MzEsNyArMTUzMSw3IEBAIHZhbHVl X2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAorQEAgLTE1MjcsNyArMTUyNyw3IEBA CiAgaW50CiAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKICB7CkBAIC0z MjY4LDcgKzI5NzgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRo LmMKICAgIGNvbnN0IGdkYl9ieXRlICpwOwogICAgc3RydWN0IHR5cGUgKnR5cGUxOwogIAotQEAg LTE1NjIsMTEgKzE1NjIsMTEgQEAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJn MSkKK0BAIC0xNTU4LDExICsxNTU4LDExIEBACiAgc3RhdGljIGludAogIHZhbHVlX3N0cmNtcCAo c3RydWN0IHZhbHVlICphcmcxLCBzdHJ1Y3QgdmFsdWUgKmFyZzIpCiAgewpAQCAtMzI4MywyMCAr Mjk5MywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMKICAK ICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKICAgICAgewotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi92YWxvcHMuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92 YWxvcHMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3Zh bG9wcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjQwMzUxODM4ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM4MzY0OTg0ICsw MTAwCi1AQCAtNTEsNyArNTEsNyBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICpzZWFyY2hfc3RydWN0 X2ZpZWxkCi0gCi0gc3RhdGljIHN0cnVjdCB2YWx1ZSAqc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNv bnN0IGNoYXIgKiwgc3RydWN0IHZhbHVlICoqLAotIAkJCQkJICAgc3RydWN0IHZhbHVlICoqLAot LQkJCQkJICAgaW50LCBpbnQgKiwgc3RydWN0IHR5cGUgKik7Ci0rCQkJCQkgICBMT05HRVNULCBp bnQgKiwgc3RydWN0IHR5cGUgKik7Ci0gCi0gc3RhdGljIGludCBmaW5kX29sb2FkX2NoYW1wX25h bWVzcGFjZSAoc3RydWN0IHZhbHVlICoqLCBpbnQsCi0gCQkJCSAgICAgICBjb25zdCBjaGFyICos IGNvbnN0IGNoYXIgKiwKLUBAIC03OSw3ICs3OSw3IEBAIG9sb2FkX2NsYXNzaWZpY2F0aW9uIGNs YXNzaWZ5X29sb2FkX21hdGMKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWxv cHMuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjExNzUxMDYzMiArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi92YWxvcHMuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0ODUzMDE5NyArMDIw MAorQEAgLTc5LDcgKzc5LDcgQEAKICAJCQkJCSAgIGludCwgaW50KTsKICAKICBzdGF0aWMgc3Ry dWN0IHZhbHVlICp2YWx1ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0eXBlICos CkBAIC0zMzA1LDE5ICszMDA2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92 YWxvcHMuYwogIAkJCQkJCSAgICAgY29uc3QgY2hhciAqLAogIAkJCQkJCSAgICAgc3RydWN0IHR5 cGUgKiwKICAJCQkJCQkgICAgIGludCwgZW51bSBub3NpZGUpOwotQEAgLTk2LDkgKzk2LDkgQEAg c3RhdGljIENPUkVfQUREUiBhbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcgotIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKmNhc3RfaW50b19jb21wbGV4IChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFsdWUgKik7 Ci0gCi0gc3RhdGljIHZvaWQgZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoqLCBjb25z dCBjaGFyICosCi0tCQkJICAgICAgaW50LCBzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgZm5fZmllbGQg KiosIGludCAqLAotKwkJCSAgICAgIExPTkdFU1QsIHN0cnVjdCB0eXBlICosIHN0cnVjdCBmbl9m aWVsZCAqKiwgaW50ICosCi0gCQkJICAgICAgVkVDICh4bWV0aG9kX3dvcmtlcl9wdHIpICoqLAot LQkJCSAgICAgIHN0cnVjdCB0eXBlICoqLCBpbnQgKik7Ci0rCQkJICAgICAgc3RydWN0IHR5cGUg KiosIExPTkdFU1QgKik7Ci0gCi0gdm9pZCBfaW5pdGlhbGl6ZV92YWxvcHMgKHZvaWQpOwotIAot QEAgLTE4Myw3ICsxODMsNyBAQCBmaW5kX2Z1bmN0aW9uX2luX2luZmVyaW9yIChjb25zdCBjaGFy ICpuCitAQCAtMTgzLDcgKzE4Myw3IEBACiAgICAgc3BhY2UuICAqLwogIAogIHN0cnVjdCB2YWx1 ZSAqCkBAIC0zMzI2LDE3ICszMDE1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi92YWxvcHMuYwogIHsKICAgIHN0cnVjdCBvYmpmaWxlICpvYmpmOwogICAgc3RydWN0IHZhbHVl ICp2YWwgPSBmaW5kX2Z1bmN0aW9uX2luX2luZmVyaW9yICgibWFsbG9jIiwgJm9iamYpOwotQEAg LTI1Niw3ICsyNTYsOCBAQCB2YWx1ZV9jYXN0X3N0cnVjdHMgKHN0cnVjdCB0eXBlICp0eXBlLCBz Ci0gICBpZiAoVFlQRV9OQU1FICh0MikgIT0gTlVMTCkKLSAgICAgewotICAgICAgIC8qIFRyeSBk b3duY2FzdGluZyB1c2luZyB0aGUgcnVuLXRpbWUgdHlwZSBvZiB0aGUgdmFsdWUuICAqLwotLSAg ICAgIGludCBmdWxsLCB0b3AsIHVzaW5nX2VuYzsKLSsgICAgICBpbnQgZnVsbCwgdXNpbmdfZW5j OwotKyAgICAgIExPTkdFU1QgdG9wOwotICAgICAgIHN0cnVjdCB0eXBlICpyZWFsX3R5cGU7Ci0g Ci0gICAgICAgcmVhbF90eXBlID0gdmFsdWVfcnR0aV90eXBlICh2MiwgJmZ1bGwsICZ0b3AsICZ1 c2luZ19lbmMpOwotQEAgLTM5NiwxMiArMzk3LDEyIEBAIHZhbHVlX2Nhc3QgKHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3QgdmEKK0BAIC0zOTcsMTIgKzM5NywxMiBAQAogICAgaWYgKGNvZGUxID09 IFRZUEVfQ09ERV9BUlJBWSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICplbGVtZW50X3R5 cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKQEAgLTMzNTEsNjQgKzMwMzAsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCSAgTE9OR0VTVCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQsIG5ld19sZW5ndGg7CiAgCiAgCSAgaWYgKGdldF9kaXNjcmV0ZV9ib3Vu ZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKSA8IDApCi1AQCAtNjM1LDcg KzYzNiw3IEBAIHZhbHVlX3JlaW50ZXJwcmV0X2Nhc3QgKHN0cnVjdCB0eXBlICp0eXAKLSBzdGF0 aWMgaW50Ci0gZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcmVkX3R5cGUs Ci0gCQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgICAgIGludCBlbWJlZGRl ZF9vZmZzZXQsCi0rCQkgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCSAgICAgIENP UkVfQUREUiBhZGRyZXNzLAotIAkJICAgICAgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkgICAgICBz dHJ1Y3QgdHlwZSAqc2VhcmNoX3R5cGUsCi1AQCAtNjQ3LDggKzY0OCw4IEBAIGR5bmFtaWNfY2Fz dF9jaGVja18xIChzdHJ1Y3QgdHlwZSAqZGVzaXIKLSAKLSAgIGZvciAoaSA9IDA7IGkgPCBUWVBF X05fQkFTRUNMQVNTRVMgKHNlYXJjaF90eXBlKSAmJiByZXN1bHRfY291bnQgPCAyOyArK2kpCi0g ICAgIHsKLS0gICAgICBpbnQgb2Zmc2V0ID0gYmFzZWNsYXNzX29mZnNldCAoc2VhcmNoX3R5cGUs IGksIHZhbGFkZHIsIGVtYmVkZGVkX29mZnNldCwKLS0JCQkJICAgICBhZGRyZXNzLCB2YWwpOwot KyAgICAgIExPTkdFU1Qgb2Zmc2V0ID0gYmFzZWNsYXNzX29mZnNldCAoc2VhcmNoX3R5cGUsIGks IHZhbGFkZHIsCi0rCQkJCQkgZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNzLCB2YWwpOwotIAotICAg ICAgIGlmIChjbGFzc190eXBlc19zYW1lX3AgKGRlc2lyZWRfdHlwZSwgVFlQRV9CQVNFQ0xBU1Mg KHNlYXJjaF90eXBlLCBpKSkpCi0gCXsKLUBAIC02ODIsNyArNjgzLDcgQEAgZHluYW1pY19jYXN0 X2NoZWNrXzEgKHN0cnVjdCB0eXBlICpkZXNpcgotIHN0YXRpYyBpbnQKLSBkeW5hbWljX2Nhc3Rf Y2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwKLSAJCSAgICAgIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLAotLQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCSAgICAgIExP TkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQkg ICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSAgICAgIHN0cnVjdCB0eXBlICpzZWFyY2hfdHlw ZSwKLUBAIC02OTIsNyArNjkzLDcgQEAgZHluYW1pY19jYXN0X2NoZWNrXzIgKHN0cnVjdCB0eXBl ICpkZXNpcgotIAotICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoc2VhcmNo X3R5cGUpICYmIHJlc3VsdF9jb3VudCA8IDI7ICsraSkKLSAgICAgewotLSAgICAgIGludCBvZmZz ZXQ7Ci0rICAgICAgTE9OR0VTVCBvZmZzZXQ7Ci0gCi0gICAgICAgaWYgKCEgQkFTRVRZUEVfVklB X1BVQkxJQyAoc2VhcmNoX3R5cGUsIGkpKQotIAljb250aW51ZTsKLUBAIC03MjMsNyArNzI0LDgg QEAgZHluYW1pY19jYXN0X2NoZWNrXzIgKHN0cnVjdCB0eXBlICpkZXNpcgotIHN0cnVjdCB2YWx1 ZSAqCi0gdmFsdWVfZHluYW1pY19jYXN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVl ICphcmcpCi0gewotLSAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOwotKyAgaW50IGZ1bGwsIHVz aW5nX2VuYzsKLSsgIExPTkdFU1QgdG9wOwotICAgc3RydWN0IHR5cGUgKnJlc29sdmVkX3R5cGUg PSBjaGVja190eXBlZGVmICh0eXBlKTsKLSAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNr X3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwotICAgc3RydWN0IHR5cGUgKmNsYXNzX3R5cGUs ICpydHRpX3R5cGU7Ci1AQCAtOTU0LDcgKzk1Niw3IEBAIHZhbHVlX2F0X2xhenkgKHN0cnVjdCB0 eXBlICp0eXBlLCBDT1JFX0EKLSB9Ci0gCi0gdm9pZAotLXJlYWRfdmFsdWVfbWVtb3J5IChzdHJ1 Y3QgdmFsdWUgKnZhbCwgaW50IGVtYmVkZGVkX29mZnNldCwKLStyZWFkX3ZhbHVlX21lbW9yeSAo c3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJICAgaW50IHN0 YWNrLCBDT1JFX0FERFIgbWVtYWRkciwKLSAJCSAgIGdkYl9ieXRlICpidWZmZXIsIHNpemVfdCBs ZW5ndGgpCi0gewotQEAgLTEwNTcsNyArMTA1OSw3IEBAIHZhbHVlX2Fzc2lnbiAoc3RydWN0IHZh bHVlICp0b3ZhbCwgc3RydWMKK0BAIC0xMDYzLDcgKzEwNjMsNyBAQAogICAgICAgIHsKICAJY29u c3QgZ2RiX2J5dGUgKmRlc3RfYnVmZmVyOwogIAlDT1JFX0FERFIgY2hhbmdlZF9hZGRyOwpAQCAt MzQxNywxMzQgKzMwMzksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9w cy5jCiAgICAgICAgICBnZGJfYnl0ZSBidWZmZXJbc2l6ZW9mIChMT05HRVNUKV07CiAgCiAgCWlm ICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCi1AQCAtMTEyNiw3ICsxMTI4LDcgQEAgdmFsdWVfYXNz aWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzdHJ1YwotIAlpZiAodmFsdWVfYml0c2l6ZSAodG92 YWwpKQotIAkgIHsKLSAJICAgIHN0cnVjdCB2YWx1ZSAqcGFyZW50ID0gdmFsdWVfcGFyZW50ICh0 b3ZhbCk7Ci0tCSAgICBpbnQgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChwYXJlbnQpICsgdmFsdWVf b2Zmc2V0ICh0b3ZhbCk7Ci0rCSAgICBMT05HRVNUIG9mZnNldCA9IHZhbHVlX29mZnNldCAocGFy ZW50KSArIHZhbHVlX29mZnNldCAodG92YWwpOwotIAkgICAgaW50IGNoYW5nZWRfbGVuOwotIAkg ICAgZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VTVCldOwotIAkgICAgaW50IG9wdGltLCB1 bmF2YWlsOwotQEAgLTE1OTAsNyArMTU5Miw3IEBAIHZhbHVlX2FycmF5IChpbnQgbG93Ym91bmQs IGludCBoaWdoYm91bmQKLSB7Ci0gICBpbnQgbmVsZW07Ci0gICBpbnQgaWR4OwotLSAgdW5zaWdu ZWQgaW50IHR5cGVsZW5ndGg7Ci0rICBVTE9OR0VTVCB0eXBlbGVuZ3RoOwotICAgc3RydWN0IHZh bHVlICp2YWw7Ci0gICBzdHJ1Y3QgdHlwZSAqYXJyYXl0eXBlOwotIAotQEAgLTE3NjYsNyArMTc2 OCw3IEBAIHR5cGVjbXAgKGludCBzdGF0aWNwLCBpbnQgdmFyYXJncywgaW50IG4KLSAKLSBzdGF0 aWMgdm9pZAotIHVwZGF0ZV9zZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUgKipyZXN1bHRfcHRy LCBzdHJ1Y3QgdmFsdWUgKnYsCi0tCQkgICAgICBpbnQgKmxhc3RfYm9mZnNldCwgaW50IGJvZmZz ZXQsCi0rCQkgICAgICBMT05HRVNUICpsYXN0X2JvZmZzZXQsIExPTkdFU1QgYm9mZnNldCwKLSAJ CSAgICAgIGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB0eXBlICp0eXBlKQotIHsKLSAgIGlmICh2 ICE9IE5VTEwpCi1AQCAtMTc5MCwxMCArMTc5MiwxMCBAQCB1cGRhdGVfc2VhcmNoX3Jlc3VsdCAo c3RydWN0IHZhbHVlICoqcmVzCi0gICAgbG9va3VwIGlzIGFtYmlndW91cy4gICovCi0gCi0gc3Rh dGljIHZvaWQKLS1kb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1 Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsCi0rZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29u c3QgY2hhciAqbmFtZSwgc3RydWN0IHZhbHVlICphcmcxLCBMT05HRVNUIG9mZnNldCwKLSAJCQlz dHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGxvb2tpbmdfZm9yX2Jhc2VjbGFzcywKLSAJCQlzdHJ1Y3Qg dmFsdWUgKipyZXN1bHRfcHRyLAotLQkJCWludCAqbGFzdF9ib2Zmc2V0LAotKwkJCUxPTkdFU1Qg Kmxhc3RfYm9mZnNldCwKLSAJCQlzdHJ1Y3QgdHlwZSAqb3V0ZXJtb3N0X3R5cGUpCi0gewotICAg aW50IGk7Ci1AQCAtMTg0MCw3ICsxODQyLDcgQEAgZG9fc2VhcmNoX3N0cnVjdF9maWVsZCAoY29u c3QgY2hhciAqbmFtZQotIAkJICAgPHZhcmlhbnQgZmllbGQ+LiAgKi8KLSAKLSAJCXN0cnVjdCB2 YWx1ZSAqdiA9IE5VTEw7Ci0tCQlpbnQgbmV3X29mZnNldCA9IG9mZnNldDsKLSsJCUxPTkdFU1Qg bmV3X29mZnNldCA9IG9mZnNldDsKLSAKLSAJCS8qIFRoaXMgaXMgcHJldHR5IGdyb3NzLiAgSW4g RysrLCB0aGUgb2Zmc2V0IGluIGFuCi0gCQkgICBhbm9ueW1vdXMgdW5pb24gaXMgcmVsYXRpdmUg dG8gdGhlIGJlZ2lubmluZyBvZiB0aGUKLUBAIC0xODc5LDcgKzE4ODEsNyBAQCBkb19zZWFyY2hf c3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lCi0gCQkJICAgICAmJiAoc3RyY21wX2l3IChu YW1lLCAKLSAJCQkJCSAgICBUWVBFX0JBU0VDTEFTU19OQU1FICh0eXBlLCAKLSAJCQkJCQkJCSBp KSkgPT0gMCkpOwotLSAgICAgIGludCBib2Zmc2V0ID0gdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChh cmcxKSArIG9mZnNldDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQgPSB2YWx1ZV9lbWJlZGRlZF9v ZmZzZXQgKGFyZzEpICsgb2Zmc2V0OwotIAotICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVB TCAodHlwZSwgaSkpCi0gCXsKLUBAIC0xOTU1LDcgKzE5NTcsNyBAQCBzZWFyY2hfc3RydWN0X2Zp ZWxkIChjb25zdCBjaGFyICpuYW1lLCBzCi0gCQkgICAgIHN0cnVjdCB0eXBlICp0eXBlLCBpbnQg bG9va2luZ19mb3JfYmFzZWNsYXNzKQotIHsKLSAgIHN0cnVjdCB2YWx1ZSAqcmVzdWx0ID0gTlVM TDsKLS0gIGludCBib2Zmc2V0ID0gMDsKLSsgIExPTkdFU1QgYm9mZnNldCA9IDA7Ci0gCi0gICBk b19zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcxLCAwLCB0eXBlLCBsb29raW5nX2Zvcl9i YXNlY2xhc3MsCi0gCQkJICAmcmVzdWx0LCAmYm9mZnNldCwgdHlwZSk7Ci1AQCAtMTk3Miw3ICsx OTc0LDcgQEAgc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgcwotIAotIHN0 YXRpYyBzdHJ1Y3QgdmFsdWUgKgotIHNlYXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFyICpu YW1lLCBzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKLS0JCSAgICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3Ms IGludCBvZmZzZXQsCi0rCQkgICAgICBzdHJ1Y3QgdmFsdWUgKiphcmdzLCBMT05HRVNUIG9mZnNl dCwKLSAJCSAgICAgIGludCAqc3RhdGljX21lbWZ1bmNwLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKLSB7 Ci0gICBpbnQgaTsKLUBAIC0yMDM2LDggKzIwMzgsOCBAQCBzZWFyY2hfc3RydWN0X21ldGhvZCAo Y29uc3QgY2hhciAqbmFtZSwKLSAKLSAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlw ZSkgLSAxOyBpID49IDA7IGktLSkKLSAgICAgewotLSAgICAgIGludCBiYXNlX29mZnNldDsKLS0g ICAgICBpbnQgdGhpc19vZmZzZXQ7Ci0rICAgICAgTE9OR0VTVCBiYXNlX29mZnNldDsKLSsgICAg ICBMT05HRVNUIHRoaXNfb2Zmc2V0OwotIAotICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVB TCAodHlwZSwgaSkpCi0gCXsKLUBAIC0yMjcyLDEwICsyMjc0LDEwIEBAIHZhbHVlX3N0cnVjdF9l bHRfYml0cG9zIChzdHJ1Y3QgdmFsdWUgKioKLSAKLSBzdGF0aWMgdm9pZAotIGZpbmRfbWV0aG9k X2xpc3QgKHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGNvbnN0IGNoYXIgKm1ldGhvZCwKLS0JCSAgaW50 IG9mZnNldCwgc3RydWN0IHR5cGUgKnR5cGUsCi0rCQkgIExPTkdFU1Qgb2Zmc2V0LCBzdHJ1Y3Qg dHlwZSAqdHlwZSwKLSAJCSAgc3RydWN0IGZuX2ZpZWxkICoqZm5fbGlzdCwgaW50ICpudW1fZm5z LAotIAkJICBWRUMgKHhtZXRob2Rfd29ya2VyX3B0cikgKip4bV93b3JrZXJfdmVjLAotLQkJICBz dHJ1Y3QgdHlwZSAqKmJhc2V0eXBlLCBpbnQgKmJvZmZzZXQpCi0rCQkgIHN0cnVjdCB0eXBlICoq YmFzZXR5cGUsIExPTkdFU1QgKmJvZmZzZXQpCi0gewotICAgaW50IGk7Ci0gICBzdHJ1Y3QgZm5f ZmllbGQgKmYgPSBOVUxMOwotQEAgLTIzMzIsNyArMjMzNCw3IEBAIGZpbmRfbWV0aG9kX2xpc3Qg KHN0cnVjdCB2YWx1ZSAqKmFyZ3AsIGMKLSAgICAgIGV4dGVuc2lvbiBtZXRob2RzLiAgKi8KLSAg IGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSkgLSAxOyBpID49IDA7IGktLSkKLSAg ICAgewotLSAgICAgIGludCBiYXNlX29mZnNldDsKLSsgICAgICBMT05HRVNUIGJhc2Vfb2Zmc2V0 OwotIAotICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCi0gCXsKLUBA IC0yMzc1LDcgKzIzNzcsNyBAQCB2YWx1ZV9maW5kX29sb2FkX21ldGhvZF9saXN0IChzdHJ1Y3Qg dmFsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCwgc3RydWN0IGZu X2ZpZWxkICoqZm5fbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm51 bV9mbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVDICh4bWV0aG9kX3dvcmtl cl9wdHIpICoqeG1fd29ya2VyX3ZlYywKLS0JCQkgICAgICBzdHJ1Y3QgdHlwZSAqKmJhc2V0eXBl LCBpbnQgKmJvZmZzZXQpCi0rCQkJICAgICAgc3RydWN0IHR5cGUgKipiYXNldHlwZSwgTE9OR0VT VCAqYm9mZnNldCkKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqdDsKLSAKLUBAIC0yNDg2LDcgKzI0ODgs NyBAQCBmaW5kX292ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdmFsdWUgKiphcmdzCi0gICAvKiBOdW1i ZXIgb2Ygb3ZlcmxvYWRlZCBpbnN0YW5jZXMgYmVpbmcgY29uc2lkZXJlZC4gICovCi0gICBpbnQg bnVtX2ZucyA9IDA7Ci0gICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGUgPSBOVUxMOwotLSAgaW50IGJv ZmZzZXQ7Ci0rICBMT05HRVNUIGJvZmZzZXQ7Ci0gCi0gICBzdHJ1Y3QgY2xlYW51cCAqYWxsX2Ns ZWFudXBzID0gbWFrZV9jbGVhbnVwIChudWxsX2NsZWFudXAsIE5VTEwpOwotIAotQEAgLTMzMDAs NyArMzMwMiw3IEBAIGNvbXBhcmVfcGFyYW1ldGVycyAoc3RydWN0IHR5cGUgKnQxLCBzdHIKK0BA IC0zMzI4LDcgKzMzMjgsNyBAQAogICAgIHRoZSBmb3JtICJET01BSU46Ok5BTUUiLiAgKi8KICAK ICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTM1NTMsNyArMzA0OCw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMKICAJCQkJc3RydWN0IHR5cGUgKmN1cnR5cGUs IGNvbnN0IGNoYXIgKm5hbWUsCiAgCQkJCXN0cnVjdCB0eXBlICppbnR5cGUsIAogIAkJCQlpbnQg d2FudF9hZGRyZXNzLAotQEAgLTMzMzQsNyArMzMzNiw3IEBAIHZhbHVlX3N0cnVjdF9lbHRfZm9y X3JlZmVyZW5jZSAoc3RydWN0IHQKK0BAIC0zMzYyLDcgKzMzNjIsNyBAQAogIAkgIGlmICh3YW50 X2FkZHJlc3MpCiAgCSAgICByZXR1cm4gdmFsdWVfZnJvbV9sb25nZXN0CiAgCSAgICAgIChsb29r dXBfbWVtYmVycHRyX3R5cGUgKFRZUEVfRklFTERfVFlQRSAodCwgaSksIGRvbWFpbiksCkBAIC0z NTYyLDcgKzMwNTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5j CiAgCSAgZWxzZSBpZiAobm9zaWRlICE9IEVWQUxfTk9STUFMKQogIAkgICAgcmV0dXJuIGFsbG9j YXRlX3ZhbHVlIChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpKTsKICAJICBlbHNlCi1AQCAtMzUwMiw3 ICszNTA0LDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1Y3QgdAorQEAg LTM1MzAsNyArMzUzMCw3IEBACiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHQpIC0g MTsgaSA+PSAwOyBpLS0pCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnY7CkBAIC0zNTcx LDE2ICszMDY2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxvcHMuYwog IAogICAgICAgIGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodCwgaSkpCiAgCWJhc2Vfb2Zmc2V0 ID0gMDsKLUBAIC0zNTgzLDcgKzM1ODUsNyBAQCB2YWx1ZV9tYXliZV9uYW1lc3BhY2VfZWx0IChj b25zdCBzdHJ1Y3QKLSAKLSBzdHJ1Y3QgdHlwZSAqCi0gdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBl IChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwgCi0tCQkJICBpbnQgKnRvcCwgaW50ICp1c2lu Z19lbmMpCi0rCQkJICBMT05HRVNUICp0b3AsIGludCAqdXNpbmdfZW5jKQotIHsKLSAgIHN0cnVj dCB2YWx1ZSAqdGFyZ2V0ID0gTlVMTDsKLSAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmVhbF90eXBl LCAqdGFyZ2V0X3R5cGU7Ci1AQCAtMzY1MSwxMiArMzY1MywxMiBAQCB2YWx1ZV9ydHRpX2luZGly ZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAqCitAQCAtMzY3OSw3ICszNjc5LDcgQEAKICBzdHJ1Y3Qg dmFsdWUgKgogIHZhbHVlX2Z1bGxfb2JqZWN0IChzdHJ1Y3QgdmFsdWUgKmFyZ3AsIAogIAkJICAg c3RydWN0IHR5cGUgKnJ0eXBlLCAKQEAgLTM1ODksMjYgKzMwNzUsMTEgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxvcHMuYwogIAkJICAgaW50IHh1c2luZ19lbmMpCiAgewog ICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKLSAgIGludCBmdWxsID0gMDsKLS0gIGludCB0b3Ag PSAtMTsKLSsgIExPTkdFU1QgdG9wID0gLTE7Ci0gICBpbnQgdXNpbmdfZW5jID0gMDsKLSAgIHN0 cnVjdCB2YWx1ZSAqbmV3X3ZhbDsKLSAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxwcmludC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFscHJpbnQuYwky MDE1LTExLTAyIDIxOjIzOjExLjI0MjM1MTg1MSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi92YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM5MzY0OTkxICswMTAwCi1A QCAtMjk5LDcgKzI5OSw3IEBAIHZhbF9wcmludF9zY2FsYXJfdHlwZV9wIChzdHJ1Y3QgdHlwZSAq dHkKLSBpbnQKLSB2YWxwcmludF9jaGVja192YWxpZGl0eSAoc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwKLSAJCQkgc3RydWN0IHR5cGUgKnR5cGUsCi0tCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsCi0r CQkJIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCkKLSB7Ci0gICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7Ci1AQCAtODM0LDcgKzgzNCw3 IEBAIGdlbmVyaWNfdmFsX3ByaW50X2NvbXBsZXggKHN0cnVjdCB0eXBlICoKKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE4 NTEwNjQwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHByaW50LmMJMjAx Ni0wNy0xNiAxNDozMzo0NC41NDk1MzAyMDUgKzAyMDAKK0BAIC05MDcsNyArOTA3LDcgQEAKICAK ICB2b2lkCiAgZ2VuZXJpY192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKQEAgLTM2MTcsMjUgKzMwODgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3ZhbHByaW50LmMKICAJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAogIAkJICAgY29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJ CSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTk2OSw3 ICs5NjksNyBAQCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCi0gICAg UkVDVVJTRS4gICovCi0gCi0gdm9pZAotLXZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNv bnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotK3ZhbF9wcmludCAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwKLSAJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLAotIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMTIyMSw3ICsxMjIx LDcgQEAgdmFsX3ByaW50X3R5cGVfY29kZV9mbGFncyAoc3RydWN0IHR5cGUgKgotIAotIHZvaWQK LSB2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoc3RydWN0IHR5cGUgKnR5cGUsCi0tCQkJICAg IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJCSAgICBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkJICAg IGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqb3B0aW9ucywKLSAJCQkgICAgaW50IHNpemUsCi1AQCAtMTc2Niw3ICsxNzY2 LDcgQEAgcHJpbnRfZGVjaW1hbF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKnN0cgorQEAgLTE4NDIs NyArMTg0Miw3IEBACiAgCiAgdm9pZAogIHByaW50X2hleF9jaGFycyAoc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0zNjQ0LDEzICszMDk3LDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiAgewogICAgY29uc3Qg Z2RiX2J5dGUgKnA7CiAgCi1AQCAtMTg4MywyMiArMTg4MywyMiBAQCBtYXliZV9wcmludF9hcnJh eV9pbmRleCAoc3RydWN0IHR5cGUgKmluCi0gCi0gdm9pZAotIHZhbF9wcmludF9hcnJheV9lbGVt ZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsCi0tCQkJICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwg aW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQkgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBMT05H RVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLAorQEAgLTE5NjQsMTcgKzE5NjQsMTcgQEAKICAJCQkgIGludCByZWN1cnNl LAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKQEAgLTM2NzMsNyArMzEyMCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuYwogICAgTE9OR0VTVCBsb3dfYm91bmQs IGhpZ2hfYm91bmQ7CiAgICBMT05HRVNUIGxvd19wb3MsIGhpZ2hfcG9zOwogIAotQEAgLTE5ODgs NyArMTk4OCw3IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnQKK0BA IC0yMDY0LDcgKzIwNjQsNyBAQAogIAkJICAgICBhZGRyZXNzLCBzdHJlYW0sIHJlY3Vyc2UgKyAx LCB2YWwsIG9wdGlvbnMsCiAgCQkgICAgIGN1cnJlbnRfbGFuZ3VhZ2UpOwogIAkgIGFubm90YXRl X2VsdF9yZXAgKHJlcHMpOwpAQCAtMzY4Miw3ICszMTI5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi92YWxwcmludC5jCiAgCSAgYW5ub3RhdGVfZWx0X3JlcF9lbmQgKCk7CiAg CiAgCSAgaSA9IHJlcDEgLSAxOwotQEAgLTI2NDQsNyArMjY0NCw3IEBAIHByaW50X2NvbnZlcnRl ZF9jaGFyc190b19vYnN0YWNrIChzdHJ1Y3QKK0BAIC0yNzIwLDcgKzI3MjAsNyBAQAogIAogIHZv aWQKICBnZW5lcmljX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlw ZSAqdHlwZSwgCkBAIC0zNjkxLDE2ICszMTM4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdmFscHJpbnQuYwogIAkJICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNl X2VsbGlwc2VzLAogIAkJICBpbnQgcXVvdGVfY2hhciwgaW50IGNfc3R5bGVfdGVybWluYXRvciwK ICAJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmgKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNDIzNTE4NTEgKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuaAkyMDE1LTExLTAyIDIx OjIzOjEzLjIzOTM2NDk5MSArMDEwMAotQEAgLTExNSwxMSArMTE1LDExIEBAIGV4dGVybiB2b2lk IG1heWJlX3ByaW50X2FycmF5X2luZGV4IChzdHIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKLSAJCQkJICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLSAKLS1leHRlcm4gdm9pZCB2YWxfcHJpbnRfYXJy YXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwKLStleHRl cm4gdm9pZCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICosIGNvbnN0IGdk Yl9ieXRlICosIExPTkdFU1QsCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdmFs cHJpbnQuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjExODUxMDY0MCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi92YWxwcmludC5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ5NTMwMjA1 ICswMjAwCitAQCAtMTE5LDcgKzExOSw3IEBACiAgCQkJCSAgICAgIENPUkVfQUREUiwgc3RydWN0 IHVpX2ZpbGUgKiwgaW50LAogIAkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkJ ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKiwKQEAgLTM3MDksMTYgKzMx NTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmgKICAKICBl eHRlcm4gdm9pZCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ludCAoc3RydWN0IHR5cGUgKiwgY29uc3Qg Z2RiX2J5dGUgKiwKICAJCQkJICAgICBzdHJ1Y3QgdWlfZmlsZSAqKTsKLUBAIC0xMjksNyArMTI5 LDcgQEAgZXh0ZXJuIHZvaWQgdmFsX3ByaW50X3R5cGVfY29kZV9mbGFncyAocwotIAkJCQkgICAg ICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci0gCi0gZXh0ZXJuIHZvaWQgdmFsX3ByaW50X3Nj YWxhcl9mb3JtYXR0ZWQgKHN0cnVjdCB0eXBlICosCi0tCQkJCQljb25zdCBnZGJfYnl0ZSAqLCBp bnQsCi0rCQkJCQljb25zdCBnZGJfYnl0ZSAqLCBMT05HRVNULAotIAkJCQkJY29uc3Qgc3RydWN0 IHZhbHVlICosCi0gCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAotIAkJ CQkJaW50LAotQEAgLTE0NSw3ICsxNDUsNyBAQCBleHRlcm4gdm9pZCBwcmludF9kZWNpbWFsX2No YXJzIChzdHJ1Y3QKK0BAIC0xNDEsNyArMTQxLDcgQEAKICAJCQkJIHVuc2lnbmVkIGludCwgZW51 bSBiZmRfZW5kaWFuKTsKICAKICBleHRlcm4gdm9pZCBwcmludF9oZXhfY2hhcnMgKHN0cnVjdCB1 aV9maWxlICosIGNvbnN0IGdkYl9ieXRlICosCkBAIC0zNzI3LDcgKzMxNjAsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmgKICAKICBleHRlcm4gdm9pZCBwcmlu dF9jaGFyX2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqLCBzdHJ1Y3QgdHlwZSAqLAogIAkJCSAgICAg IGNvbnN0IGdkYl9ieXRlICosIHVuc2lnbmVkIGludCwgZW51bSBiZmRfZW5kaWFuKTsKLUBAIC0x OTQsNyArMTk0LDcgQEAgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlY29yYXRpb25zCitAQCAt MTk0LDcgKzE5NCw3IEBACiAgCiAgCiAgZXh0ZXJuIHZvaWQgZ2VuZXJpY192YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM3MzYsNyArMzE2 OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuaAogIAkJCSAg ICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgICAgICAgY29u c3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCQkgICAgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMjA0LDcgKzIwNCw3IEBAIGV4dGVy biB2b2lkIGdlbmVyaWNfZW1pdF9jaGFyIChpbnQgYywgc3QKK0BAIC0yMDQsNyArMjA0LDcgQEAK ICAJCQkgICAgICAgaW50IHF1b3RlciwgY29uc3QgY2hhciAqZW5jb2RpbmcpOwogIAogIGV4dGVy biB2b2lkIGdlbmVyaWNfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0 eXBlICp0eXBlLCAKQEAgLTM3NDUsODMgKzMxNzgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi92YWxwcmludC5oCiAgCQkJICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGlu dCBmb3JjZV9lbGxpcHNlcywKICAJCQkgICAgICBpbnQgcXVvdGVfY2hhciwgaW50IGNfc3R5bGVf dGVybWluYXRvciwKICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsdWUuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNDgz NTE4OTAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuYwkyMDE1LTEx LTAyIDIxOjIzOjEzLjI0MTM2NTAwNCArMDEwMAotQEAgLTY2LDEwICs2NiwxMCBAQCBzdHJ1Y3Qg aW50ZXJuYWxfZnVuY3Rpb24KLSBzdHJ1Y3QgcmFuZ2UKLSB7Ci0gICAvKiBMb3dlc3Qgb2Zmc2V0 IGluIHRoZSByYW5nZS4gICovCi0tICBpbnQgb2Zmc2V0OwotKyAgTE9OR0VTVCBvZmZzZXQ7Ci0g Ci0gICAvKiBMZW5ndGggb2YgdGhlIHJhbmdlLiAgKi8KLS0gIGludCBsZW5ndGg7Ci0rICBMT05H RVNUIGxlbmd0aDsKLSB9OwotIAotIHR5cGVkZWYgc3RydWN0IHJhbmdlIHJhbmdlX3M7Ci1AQCAt ODAsOCArODAsOCBAQCBERUZfVkVDX08ocmFuZ2Vfcyk7Ci0gICAgW29mZnNldDIsIG9mZnNldDIr bGVuMikgb3ZlcmxhcC4gICovCi0gCi0gc3RhdGljIGludAotLXJhbmdlc19vdmVybGFwIChpbnQg b2Zmc2V0MSwgaW50IGxlbjEsCi0tCQlpbnQgb2Zmc2V0MiwgaW50IGxlbjIpCi0rcmFuZ2VzX292 ZXJsYXAgKExPTkdFU1Qgb2Zmc2V0MSwgTE9OR0VTVCBsZW4xLAotKwkJTE9OR0VTVCBvZmZzZXQy LCBMT05HRVNUIGxlbjIpCi0gewotICAgVUxPTkdFU1QgaCwgbDsKLSAKLUBAIC0xMDUsNyArMTA1 LDcgQEAgcmFuZ2VfbGVzc3RoYW4gKGNvbnN0IHJhbmdlX3MgKnIxLCBjb25zdAotICAgIE9GRlNF VCtMRU5HVEgpLiAgKi8KLSAKLSBzdGF0aWMgaW50Ci0tcmFuZ2VzX2NvbnRhaW4gKFZFQyhyYW5n ZV9zKSAqcmFuZ2VzLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK3Jhbmdlc19jb250YWluIChW RUMocmFuZ2VfcykgKnJhbmdlcywgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKQotIHsK LSAgIHJhbmdlX3Mgd2hhdDsKLSAgIGludCBpOwotQEAgLTI0MCw3ICsyNDAsNyBAQCBzdHJ1Y3Qg dmFsdWUKLSAgICAgIHRoZSBhZGRyZXNzLiAgSWYgbHZhbCA9PSBsdmFsX3JlZ2lzdGVyLCB0aGlz IGlzIGEgZnVydGhlciBvZmZzZXQgZnJvbQotICAgICAgbG9jYXRpb24uYWRkcmVzcyB3aXRoaW4g dGhlIHJlZ2lzdGVycyBzdHJ1Y3R1cmUuICBOb3RlIGFsc28gdGhlIG1lbWJlcgotICAgICAgZW1i ZWRkZWRfb2Zmc2V0IGJlbG93LiAgKi8KLS0gIGludCBvZmZzZXQ7Ci0rICBMT05HRVNUIG9mZnNl dDsKLSAKLSAgIC8qIE9ubHkgdXNlZCBmb3IgYml0ZmllbGRzOyBudW1iZXIgb2YgYml0cyBjb250 YWluZWQgaW4gdGhlbS4gICovCi0gICBpbnQgYml0c2l6ZTsKLUBAIC0zMTAsOCArMzEwLDggQEAg c3RydWN0IHZhbHVlCi0gICAgICBgdHlwZScsIGFuZCBgZW1iZWRkZWRfb2Zmc2V0JyBpcyB6ZXJv LCBzbyBldmVyeXRoaW5nIHdvcmtzCi0gICAgICBub3JtYWxseS4gICovCi0gICBzdHJ1Y3QgdHlw ZSAqZW5jbG9zaW5nX3R5cGU7Ci0tICBpbnQgZW1iZWRkZWRfb2Zmc2V0OwotLSAgaW50IHBvaW50 ZWRfdG9fb2Zmc2V0OwotKyAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQ7Ci0rICBMT05HRVNUIHBv aW50ZWRfdG9fb2Zmc2V0OwotIAotICAgLyogVmFsdWVzIGFyZSBzdG9yZWQgaW4gYSBjaGFpbiwg c28gdGhhdCB0aGV5IGNhbiBiZSBkZWxldGVkIGVhc2lseQotICAgICAgb3ZlciBjYWxscyB0byB0 aGUgaW5mZXJpb3IuICBWYWx1ZXMgYXNzaWduZWQgdG8gaW50ZXJuYWwKLUBAIC0zNTAsNyArMzUw LDcgQEAgZ2V0X3ZhbHVlX2FyY2ggKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdQotIH0KLSAKLSBp bnQKLS12YWx1ZV9iaXRzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50 IG9mZnNldCwgaW50IGxlbmd0aCkKLSt2YWx1ZV9iaXRzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0 IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIGdk Yl9hc3NlcnQgKCF2YWx1ZS0+bGF6eSk7Ci0gCi1AQCAtMzU4LDcgKzM1OCw4IEBAIHZhbHVlX2Jp dHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUKLSB9Ci0gCi0gaW50Ci0tdmFsdWVfYnl0 ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQg bGVuZ3RoKQotK3ZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1 ZSwgTE9OR0VTVCBvZmZzZXQsCi0rCQkgICAgICAgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgcmV0 dXJuIHZhbHVlX2JpdHNfYXZhaWxhYmxlICh2YWx1ZSwKLSAJCQkgICAgICAgb2Zmc2V0ICogVEFS R0VUX0NIQVJfQklULAotQEAgLTM2Niw3ICszNjcsOCBAQCB2YWx1ZV9ieXRlc19hdmFpbGFibGUg KGNvbnN0IHN0cnVjdCB2YWx1CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdmFs dWUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjExOTUxMDY0OCArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi92YWx1ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ5NTMwMjA1ICswMjAw CitAQCAtMzY2LDcgKzM2Niw4IEBACiAgfQogIAogIGludApAQCAtMzgzMSwzNiArMzE5Miw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuYwogIHsKICAgIGdkYl9hc3Nl cnQgKCF2YWx1ZS0+bGF6eSk7CiAgCi1AQCAtNDI4LDcgKzQzMCw4IEBAIHZhbHVlX2VudGlyZWx5 X29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWwKLSAgICBPRkZTRVQgYml0cywgYW5kIGV4dGVuZGlu ZyBmb3IgdGhlIG5leHQgTEVOR1RIIGJpdHMuICAqLwotIAotIHN0YXRpYyB2b2lkCi0taW5zZXJ0 X2ludG9fYml0X3JhbmdlX3ZlY3RvciAoVkVDKHJhbmdlX3MpICoqdmVjdG9ycCwgaW50IG9mZnNl dCwgaW50IGxlbmd0aCkKLStpbnNlcnRfaW50b19iaXRfcmFuZ2VfdmVjdG9yIChWRUMocmFuZ2Vf cykgKip2ZWN0b3JwLCBMT05HRVNUIG9mZnNldCwKLSsJCQkgICAgICBMT05HRVNUIGxlbmd0aCkK LSB7Ci0gICByYW5nZV9zIG5ld3I7Ci0gICBpbnQgaTsKLUBAIC01OTksNyArNjAyLDggQEAgbWFy a192YWx1ZV9iaXRzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsdQotIH0KLSAKLSB2b2lkCi0tbWFy a192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNl dCwgaW50IGxlbmd0aCkKLSttYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFs dWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwKLSsJCQkgICAgICBMT05HRVNUIGxlbmd0aCkKLSB7 Ci0gICBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUgKHZhbHVlLAotIAkJCSAgICAgICBvZmZz ZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAtNjEzLDcgKzYxNyw3IEBAIG1hcmtfdmFsdWVfYnl0 ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWwKLSAKLSBzdGF0aWMgaW50Ci0gZmluZF9maXJzdF9y YW5nZV9vdmVybGFwIChWRUMocmFuZ2VfcykgKnJhbmdlcywgaW50IHBvcywKLS0JCQkgIGludCBv ZmZzZXQsIGludCBsZW5ndGgpCi0rCQkJICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgp Ci0gewotICAgcmFuZ2VfcyAqcjsKLSAgIGludCBpOwotQEAgLTgwOSw5ICs4MTMsOSBAQCBmaW5k X2ZpcnN0X3JhbmdlX292ZXJsYXBfYW5kX21hdGNoIChzdHJ1CitAQCAtODEyLDkgKzgxMyw5IEBA CiAgICAgUmV0dXJuIHRydWUgaWYgdGhlIGF2YWlsYWJsZSBiaXRzIG1hdGNoLiAgKi8KICAKICBz dGF0aWMgaW50CkBAIC0zODczLDU5ICszMjA1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi92YWx1ZS5jCiAgewogICAgLyogRWFjaCBhcnJheSBlbGVtZW50IGNvcnJlc3BvbmRz IHRvIGEgcmFuZ2VzIHNvdXJjZSAodW5hdmFpbGFibGUsCiAgICAgICBvcHRpbWl6ZWQgb3V0KS4g ICcxJyBpcyBmb3IgVkFMMSwgJzInIGZvciBWQUwyLiAgKi8KLUBAIC04NzEsOSArODc1LDkgQEAg dmFsdWVfY29udGVudHNfYml0c19lcSAoY29uc3Qgc3RydWN0IHZhbAotIH0KLSAKLSBpbnQKLS12 YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBpbnQgb2Zmc2V0MSwK LS0JCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgaW50IG9mZnNldDIsCi0tCQkgICBpbnQg bGVuZ3RoKQotK3ZhbHVlX2NvbnRlbnRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIExP TkdFU1Qgb2Zmc2V0MSwKLSsJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMiwgTE9OR0VTVCBv ZmZzZXQyLAotKwkJICAgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgcmV0dXJuIHZhbHVlX2NvbnRl bnRzX2JpdHNfZXEgKHZhbDEsIG9mZnNldDEgKiBUQVJHRVRfQ0hBUl9CSVQsCi0gCQkJCSB2YWwy LCBvZmZzZXQyICogVEFSR0VUX0NIQVJfQklULAotQEAgLTEwMzcsMTMgKzEwNDEsMTMgQEAgZGVw cmVjYXRlZF9zZXRfdmFsdWVfdHlwZSAoc3RydWN0IHZhbHVlCi0gICB2YWx1ZS0+dHlwZSA9IHR5 cGU7Ci0gfQotIAotLWludAotK0xPTkdFU1QKLSB2YWx1ZV9vZmZzZXQgKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsdWUpCi0gewotICAgcmV0dXJuIHZhbHVlLT5vZmZzZXQ7Ci0gfQotIHZvaWQKLS1z ZXRfdmFsdWVfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0KQotK3NldF92 YWx1ZV9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1Qgb2Zmc2V0KQotIHsKLSAg IHZhbHVlLT5vZmZzZXQgPSBvZmZzZXQ7Ci0gfQotQEAgLTEyNTcsOCArMTI2MSw5IEBAIHZhbHVl X3Jhbmdlc19jb3B5X2FkanVzdGVkIChzdHJ1Y3QgdmFsdWUKLSAgICBEU1RfT0ZGU0VUK0xFTkdU SCkgcmFuZ2UgYXJlIHdob2xseSBhdmFpbGFibGUuICAqLwotIAotIHZvaWQKLS12YWx1ZV9jb250 ZW50c19jb3B5X3JhdyAoc3RydWN0IHZhbHVlICpkc3QsIGludCBkc3Rfb2Zmc2V0LAotLQkJCSBz dHJ1Y3QgdmFsdWUgKnNyYywgaW50IHNyY19vZmZzZXQsIGludCBsZW5ndGgpCi0rdmFsdWVfY29u dGVudHNfY29weV9yYXcgKHN0cnVjdCB2YWx1ZSAqZHN0LCBzc2l6ZV90IGRzdF9vZmZzZXQsCi0r CQkJIHN0cnVjdCB2YWx1ZSAqc3JjLCBzc2l6ZV90IHNyY19vZmZzZXQsCi0rCQkJIHNzaXplX3Qg bGVuZ3RoKQotIHsKLSAgIHJhbmdlX3MgKnI7Ci0gICBpbnQgc3JjX2JpdF9vZmZzZXQsIGRzdF9i aXRfb2Zmc2V0LCBiaXRfbGVuZ3RoOwotQEAgLTEzMDUsOCArMTMxMCw4IEBAIHZhbHVlX2NvbnRl bnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmQKLSAgICBEU1RfT0ZGU0VUK0xFTkdUSCkgcmFu Z2UgYXJlIHdob2xseSBhdmFpbGFibGUuICAqLwotIAotIHZvaWQKLS12YWx1ZV9jb250ZW50c19j b3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCi0tCQkgICAgIHN0cnVjdCB2 YWx1ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwgaW50IGxlbmd0aCkKLSt2YWx1ZV9jb250ZW50c19j b3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAotKwkJICAgICBzdHJ1 Y3QgdmFsdWUgKnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LCBzc2l6ZV90IGxlbmd0aCkKLSB7Ci0g ICBpZiAoc3JjLT5sYXp5KQotICAgICB2YWx1ZV9mZXRjaF9sYXp5IChzcmMpOwotQEAgLTEzNzAs NyArMTM3NSw4IEBAIHZhbHVlX29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUKK0BA IC0xNDU2LDcgKzE0NTcsOCBAQAogICAgIHRoZSBmb2xsb3dpbmcgTEVOR1RIIGJ5dGVzLiAgKi8K ICAKICB2b2lkCkBAIC0zOTM1LDE5OSArMzIxNSwyMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3ZhbHVlLmMKICB7CiAgICBtYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAo dmFsdWUsCiAgCQkJCSBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1AQCAtMTM4MCwxNCArMTM4 NiwxNSBAQCBtYXJrX3ZhbHVlX2J5dGVzX29wdGltaXplZF9vdXQgKHN0cnVjdCB2Ci0gLyogU2Vl IHZhbHVlLmguICAqLwotIAotIHZvaWQKLS1tYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAo c3RydWN0IHZhbHVlICp2YWx1ZSwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKLSttYXJrX3ZhbHVl X2JpdHNfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQs Ci0rCQkJICAgICAgIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIGluc2VydF9pbnRvX2JpdF9yYW5n ZV92ZWN0b3IgKCZ2YWx1ZS0+b3B0aW1pemVkX291dCwgb2Zmc2V0LCBsZW5ndGgpOwotIH0KLSAK LSBpbnQKLSB2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbHVlLAotLQkJCSAgICAgIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0rCQkJICAgICAgTE9O R0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIGlmICh2YWx1ZS0+bHZhbCAhPSBs dmFsX2NvbXB1dGVkCi0gICAgICAgfHwgIXZhbHVlLT5sb2NhdGlvbi5jb21wdXRlZC5mdW5jcy0+ Y2hlY2tfc3ludGhldGljX3BvaW50ZXIpCi1AQCAtMTM5NywyNiArMTQwNCwyNiBAQCB2YWx1ZV9i aXRzX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Ci0gCQkJCQkJCQkgIGxlbmd0aCk7Ci0g fQotIAotLWludAotK0xPTkdFU1QKLSB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1 ZSAqdmFsdWUpCi0gewotICAgcmV0dXJuIHZhbHVlLT5lbWJlZGRlZF9vZmZzZXQ7Ci0gfQotIAot IHZvaWQKLS1zZXRfdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBp bnQgdmFsKQotK3NldF92YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUs IExPTkdFU1QgdmFsKQotIHsKLSAgIHZhbHVlLT5lbWJlZGRlZF9vZmZzZXQgPSB2YWw7Ci0gfQot IAotLWludAotK0xPTkdFU1QKLSB2YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoc3RydWN0IHZhbHVl ICp2YWx1ZSkKLSB7Ci0gICByZXR1cm4gdmFsdWUtPnBvaW50ZWRfdG9fb2Zmc2V0OwotIH0KLSAK LSB2b2lkCi0tc2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVl LCBpbnQgdmFsKQotK3NldF92YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoc3RydWN0IHZhbHVlICp2 YWx1ZSwgTE9OR0VTVCB2YWwpCi0gewotICAgdmFsdWUtPnBvaW50ZWRfdG9fb2Zmc2V0ID0gdmFs OwotIH0KLUBAIC0yMjk1LDcgKzIzMDIsNyBAQCBnZXRfaW50ZXJuYWx2YXJfZnVuY3Rpb24gKHN0 cnVjdCBpbnRlcm5hCi0gfQotIAotIHZvaWQKLS1zZXRfaW50ZXJuYWx2YXJfY29tcG9uZW50IChz dHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgaW50IG9mZnNldCwgaW50IGJpdHBvcywKLStzZXRfaW50 ZXJuYWx2YXJfY29tcG9uZW50IChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgTE9OR0VTVCBvZmZz ZXQsIGludCBiaXRwb3MsCi0gCQkJICAgaW50IGJpdHNpemUsIHN0cnVjdCB2YWx1ZSAqbmV3dmFs KQotIHsKLSAgIGdkYl9ieXRlICphZGRyOwotQEAgLTMwMjAsNyArMzAyNyw3IEBAIHNldF92YWx1 ZV9lbmNsb3NpbmdfdHlwZSAoc3RydWN0IHZhbHVlICoKLSAgICBGSUVMRE5PIHNheXMgd2hpY2gg ZmllbGQuICAqLwotIAotIHN0cnVjdCB2YWx1ZSAqCi0tdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChz dHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBvZmZzZXQsCi0rdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChz dHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qgb2Zmc2V0LAotIAkJICAgICAgIGludCBmaWVsZG5v LCBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCi0gewotICAgc3RydWN0IHZhbHVlICp2OwotQEAgLTMw NzIsNyArMzA3OSw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcK LSAgICAgICAvKiBUaGlzIGZpZWxkIGlzIGFjdHVhbGx5IGEgYmFzZSBzdWJvYmplY3QsIHNvIHBy ZXNlcnZlIHRoZQotIAkgZW50aXJlIG9iamVjdCdzIGNvbnRlbnRzIGZvciBsYXRlciByZWZlcmVu Y2VzIHRvIHZpcnR1YWwKLSAJIGJhc2VzLCBldGMuICAqLwotLSAgICAgIGludCBib2Zmc2V0Owot KyAgICAgIExPTkdFU1QgYm9mZnNldDsKLSAKLSAgICAgICAvKiBMYXp5IHJlZ2lzdGVyIHZhbHVl cyB3aXRoIG9mZnNldHMgYXJlIG5vdCBzdXBwb3J0ZWQuICAqLwotICAgICAgIGlmIChWQUxVRV9M VkFMIChhcmcxKSA9PSBsdmFsX3JlZ2lzdGVyICYmIHZhbHVlX2xhenkgKGFyZzEpKQotQEAgLTMx NTksNyArMzE2Niw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBmaWUK LSBzdHJ1Y3QgdmFsdWUgKgotIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwg c3RydWN0IGZuX2ZpZWxkICpmLAotIAkJaW50IGosIHN0cnVjdCB0eXBlICp0eXBlLAotLQkJaW50 IG9mZnNldCkKLSsJCUxPTkdFU1Qgb2Zmc2V0KQotIHsKLSAgIHN0cnVjdCB2YWx1ZSAqdjsKLSAg IHN0cnVjdCB0eXBlICpmdHlwZSA9IFRZUEVfRk5fRklFTERfVFlQRSAoZiwgaik7Ci1AQCAtMzIy OSwxNCArMzIzNiwxNCBAQCB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0 Ci0gCi0gc3RhdGljIExPTkdFU1QKLSB1bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAq ZmllbGRfdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgICAgIGludCBiaXRwb3Ms IGludCBiaXRzaXplKQotKwkJICAgICBMT05HRVNUIGJpdHBvcywgaW50IGJpdHNpemUpCi0gewot ICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdldF90 eXBlX2FyY2ggKGZpZWxkX3R5cGUpKTsKLSAgIFVMT05HRVNUIHZhbDsKLSAgIFVMT05HRVNUIHZh bG1hc2s7Ci0gICBpbnQgbHNiY291bnQ7Ci0gICBpbnQgYnl0ZXNfcmVhZDsKLS0gIGludCByZWFk X29mZnNldDsKLSsgIExPTkdFU1QgcmVhZF9vZmZzZXQ7Ci0gCi0gICAvKiBSZWFkIHRoZSBtaW5p bXVtIG51bWJlciBvZiBieXRlcyByZXF1aXJlZDsgdGhlcmUgbWF5IG5vdCBiZQotICAgICAgZW5v dWdoIGJ5dGVzIHRvIHJlYWQgYW4gZW50aXJlIFVMT05HRVNULiAgKi8KLUBAIC0zMjg1LDcgKzMy OTIsNyBAQCB1bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqZmllbGRfCi0gCi0gaW50 Ci0gdW5wYWNrX3ZhbHVlX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkgICAgaW50IGVtYmVkZGVkX29mZnNldCwgaW50IGZpZWxk bm8sCi0rCQkJICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgZmllbGRubywKLSAJCQkg ICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgKnJlc3VsdCkKLSB7Ci0gICBpbnQg Yml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOwotQEAgLTMzMjksNyAr MzMzNiw3IEBAIHVucGFja19maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKLSB2b2lk Ci0gdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlc3RfdmFsLAotIAkJICAg ICAgIGludCBiaXRwb3MsIGludCBiaXRzaXplLAotLQkJICAgICAgIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJICAgICAgIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCSAgICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCkKLSB7Ci0gICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLUBAIC0zMzY3 LDcgKzMzNzQsNyBAQCB1bnBhY2tfdmFsdWVfYml0ZmllbGQgKHN0cnVjdCB2YWx1ZSAqZGVzCi0g c3RydWN0IHZhbHVlICoKLSB2YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUs IGludCBmaWVsZG5vLAotIAkJICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkgICAg ICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKLSsJCSAgICAg IExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKLSB7Ci0g ICBpbnQgYml0cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOwotICAgaW50 IGJpdHNpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOwotQEAgLTMzODgs MTIgKzMzOTUsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAot IAotIHZvaWQKLSBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0ZSAqYWRk ciwKLS0JICAgICAgTE9OR0VTVCBmaWVsZHZhbCwgaW50IGJpdHBvcywgaW50IGJpdHNpemUpCi0r CSAgICAgIExPTkdFU1QgZmllbGR2YWwsIExPTkdFU1QgYml0cG9zLCBpbnQgYml0c2l6ZSkKLSB7 Ci0gICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0 X3R5cGVfYXJjaCAodHlwZSkpOwotICAgVUxPTkdFU1Qgb3dvcmQ7Ci0gICBVTE9OR0VTVCBtYXNr ID0gKFVMT05HRVNUKSAtMSA+PiAoOCAqIHNpemVvZiAoVUxPTkdFU1QpIC0gYml0c2l6ZSk7Ci0t ICBpbnQgYnl0ZXNpemU7Ci0rICBMT05HRVNUIGJ5dGVzaXplOwotIAotICAgLyogTm9ybWFsaXpl IEJJVFBPUy4gICovCi0gICBhZGRyICs9IGJpdHBvcyAvIDg7Ci1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3ZhbHVlLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFs dWUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbHVl LmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTAzNTE5MDQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdmFsdWUuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MTM2NTAwNCArMDEwMAot QEAgLTEzNSw4ICsxMzUsOCBAQCBleHRlcm4gdm9pZCBzZXRfdmFsdWVfcGFyZW50IChzdHJ1Y3Qg dmFsCi0gICAgd2l0aGluIHRoZSByZWdpc3RlcnMgc3RydWN0dXJlLiAgTm90ZSBhbHNvIHRoZSBt ZW1iZXIKLSAgICBlbWJlZGRlZF9vZmZzZXQgYmVsb3cuICAqLwotIAotLWV4dGVybiBpbnQgdmFs dWVfb2Zmc2V0IChjb25zdCBzdHJ1Y3QgdmFsdWUgKik7Ci0tZXh0ZXJuIHZvaWQgc2V0X3ZhbHVl X29mZnNldCAoc3RydWN0IHZhbHVlICosIGludCBvZmZzZXQpOwotK2V4dGVybiBMT05HRVNUIHZh bHVlX29mZnNldCAoY29uc3Qgc3RydWN0IHZhbHVlICopOwotK2V4dGVybiB2b2lkIHNldF92YWx1 ZV9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqLCBMT05HRVNUIG9mZnNldCk7Ci0gCi0gLyogVGhlIGNv bW1lbnQgZnJvbSAic3RydWN0IHZhbHVlIiByZWFkczogYGBJcyBpdCBtb2RpZmlhYmxlPyAgT25s eQotICAgIHJlbGV2YW50IGlmIGx2YWwgIT0gbm90X2x2YWwuJycuICBTaG91bGRuJ3QgdGhlIHZh bHVlIGluc3RlYWQgYmUKLUBAIC0yMDUsMTAgKzIwNSwxMCBAQCBleHRlcm4gc3RydWN0IHR5cGUg KnZhbHVlX2FjdHVhbF90eXBlIChzCi0gCQkJCSAgICAgICBpbnQgcmVzb2x2ZV9zaW1wbGVfdHlw ZXMsCi0gCQkJCSAgICAgICBpbnQgKnJlYWxfdHlwZV9mb3VuZCk7Ci0gCi0tZXh0ZXJuIGludCB2 YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSk7Ci0tZXh0ZXJuIHZv aWQgc2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQg dmFsKTsKLS1leHRlcm4gaW50IHZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2 YWx1ZSk7Ci0tZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZh bHVlICp2YWx1ZSwgaW50IHZhbCk7Ci0rZXh0ZXJuIExPTkdFU1QgdmFsdWVfcG9pbnRlZF90b19v ZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOwotK2V4dGVybiB2b2lkIHNldF92YWx1ZV9wb2lu dGVkX3RvX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCB2YWwpOwotK2V4dGVy biBMT05HRVNUIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSk7Ci0r ZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1 ZSwgTE9OR0VTVCB2YWwpOwotIAotIC8qIEZvciBsdmFsX2NvbXB1dGVkIHZhbHVlcywgdGhpcyBz dHJ1Y3R1cmUgaG9sZHMgZnVuY3Rpb25zIHVzZWQgdG8KLSAgICByZXRyaWV2ZSBhbmQgc2V0IHRo ZSB2YWx1ZSAob3IgcG9ydGlvbnMgb2YgdGhlIHZhbHVlKS4KLUBAIC0yNDYsNyArMjQ2LDcgQEAg c3RydWN0IGx2YWxfZnVuY3MKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWx1 ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIwNTEwNjU2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3ZhbHVlLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NTA1MzAyMTMgKzAyMDAK K0BAIC0yNDYsNyArMjQ2LDcgQEAKICAgIC8qIElmIG5vbi1OVUxMLCB0aGlzIGlzIHVzZWQgdG8g ZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGluZGljYXRlZCBiaXRzCiAgICAgICBvZiBWQUxVRSBhcmUg YSBzeW50aGV0aWMgcG9pbnRlci4gICovCiAgICBpbnQgKCpjaGVja19zeW50aGV0aWNfcG9pbnRl cikgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJCSAgaW50IG9mZnNldCwgaW50IGxl bmd0aCk7CistCQkJCSAgTE9OR0VTVCBvZmZzZXQsIGludCBsZW5ndGgpOwogKwkJCQkgIExPTkdF U1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7CiAgCiAgICAvKiBSZXR1cm4gYSBkdXBsaWNhdGUg b2YgVkFMVUUncyBjbG9zdXJlLCBmb3IgdXNlIGluIGEgbmV3IHZhbHVlLgogICAgICAgVGhpcyBt YXkgc2ltcGx5IHJldHVybiB0aGUgc2FtZSBjbG9zdXJlLCBpZiBWQUxVRSdzIGlzCi1AQCAtMjgz LDcgKzI4Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX2NvbXB1dGVkX3YKLSAg ICBPdGhlcndpc2UsIHJldHVybiAxLiAgKi8KLSAKLSBleHRlcm4gaW50IHZhbHByaW50X2NoZWNr X3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKLS0J CQkJICAgIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJCSAgICBMT05HRVNUIGVtYmVkZGVkX29m ZnNldCwKLSAJCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKLSAKLSBleHRlcm4gc3Ry dWN0IHZhbHVlICphbGxvY2F0ZV9vcHRpbWl6ZWRfb3V0X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlw ZSk7Ci1AQCAtMzc3LDcgKzM3Nyw4IEBAIGV4dGVybiBpbnQgdmFsdWVfb3B0aW1pemVkX291dCAo c3RydWN0IHYKK0BAIC0zNzcsNyArMzc3LDggQEAKICAgICBvdGhlcndpc2UuICAqLwogIAogIGV4 dGVybiBpbnQgdmFsdWVfYml0c19hbnlfb3B0aW1pemVkX291dCAoY29uc3Qgc3RydWN0IHZhbHVl ICp2YWx1ZSwKQEAgLTQxMzcsNyArMzIzOCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdmFsdWUuaAogIAogIC8qIExpa2UgdmFsdWVfb3B0aW1pemVkX291dCwgYnV0IHJldHVy biB0cnVlIGlmZiB0aGUgd2hvbGUgdmFsdWUgaXMKICAgICBvcHRpbWl6ZWQgb3V0LiAgKi8KLUBA IC0zODcsMTMgKzM4OCwxMyBAQCBleHRlcm4gaW50IHZhbHVlX2VudGlyZWx5X29wdGltaXplZF9v dXQKK0BAIC0zODcsNyArMzg4LDcgQEAKICAgICBMRU5HVEggYnl0ZXMgYXMgb3B0aW1pemVkIG91 dC4gICovCiAgCiAgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9ieXRlc19vcHRpbWl6ZWRfb3V0IChz dHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtNDE0NiwxMjQgKzMyNDcsMTIgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAgCiAgLyogTWFyayBWQUxVRSdzIGNvbnRlbnQg Yml0cyBzdGFydGluZyBhdCBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IKICAgICBMRU5HVEggYml0 cyBhcyBvcHRpbWl6ZWQgb3V0LiAgKi8KLSAKLSBleHRlcm4gdm9pZCBtYXJrX3ZhbHVlX2JpdHNf b3B0aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1ZSwKLS0JCQkJCSAgIGludCBvZmZzZXQs IGludCBsZW5ndGgpOwotKwkJCQkJICAgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsK LSAKLSAvKiBTZXQgb3IgcmV0dXJuIGZpZWxkIGluZGljYXRpbmcgd2hldGhlciBhIHZhcmlhYmxl IGlzIGluaXRpYWxpemVkIG9yCi0gICAgbm90LCBiYXNlZCBvbiBkZWJ1Z2dpbmcgaW5mb3JtYXRp b24gc3VwcGxpZWQgYnkgdGhlIGNvbXBpbGVyLgotQEAgLTQ3Niw3ICs0NzcsNyBAQCBleHRlcm4g c3RydWN0IHZhbHVlICpjb2VyY2VfYXJyYXkgKHN0cnVjCi0gICAgZXh0ZW5kaW5nIGZvciBMRU5H VEggYml0cyBhcmUgYSBzeW50aGV0aWMgcG9pbnRlci4gICovCi0gCi0gZXh0ZXJuIGludCB2YWx1 ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJ CQkJIGludCBvZmZzZXQsIGludCBsZW5ndGgpOwotKwkJCQkJIExPTkdFU1Qgb2Zmc2V0LCBMT05H RVNUIGxlbmd0aCk7Ci0gCi0gLyogR2l2ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhl IGNvbnRlbnRzIGJ5dGVzIHN0YXJ0aW5nIGF0Ci0gICAgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9y IExFTkdUSCBieXRlcyBhcmUgYXZhaWxhYmxlLiAgVGhpcyByZXR1cm5zCi1AQCAtNDg0LDcgKzQ4 NSw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlcgotICAgIGJ5dGUg aXMgdW5hdmFpbGFibGUuICAqLwotIAotIGV4dGVybiBpbnQgdmFsdWVfYnl0ZXNfYXZhaWxhYmxl IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJCQkgIGludCBvZmZzZXQsIGludCBsZW5n dGgpOwotKwkJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7Ci0gCi0gLyogR2l2 ZW4gYSB2YWx1ZSwgZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNvbnRlbnRzIGJpdHMgc3RhcnRpbmcg YXQKLSAgICBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJpdHMgYXJlIGF2YWlsYWJs ZS4gIFRoaXMgcmV0dXJucwotQEAgLTQ5Miw3ICs0OTMsNyBAQCBleHRlcm4gaW50IHZhbHVlX2J5 dGVzX2F2YWlsYWJsZSAoY29uc3QKLSAgICBiaXQgaXMgdW5hdmFpbGFibGUuICAqLwotIAotIGV4 dGVybiBpbnQgdmFsdWVfYml0c19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUs Ci0tCQkJCSBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKLSsJCQkJIExPTkdFU1Qgb2Zmc2V0LCBM T05HRVNUIGxlbmd0aCk7Ci0gCi0gLyogTGlrZSB2YWx1ZV9ieXRlc19hdmFpbGFibGUsIGJ1dCBy ZXR1cm4gZmFsc2UgaWYgYW55IGJ5dGUgaW4gdGhlCi0gICAgd2hvbGUgb2JqZWN0IGlzIHVuYXZh aWxhYmxlLiAgKi8KLUBAIC01MDYsNyArNTA3LDcgQEAgZXh0ZXJuIGludCB2YWx1ZV9lbnRpcmVs eV91bmF2YWlsYWJsZSAocwotICAgIExFTkdUSCBieXRlcyBhcyB1bmF2YWlsYWJsZS4gICovCi0g Ci0gZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAoc3RydWN0IHZhbHVl ICp2YWx1ZSwKLS0JCQkJCSAgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0rCQkJCQkgIExPTkdF U1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCk7Ci0gCi0gLyogTWFyayBWQUxVRSdzIGNvbnRlbnQg Yml0cyBzdGFydGluZyBhdCBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IKLSAgICBMRU5HVEggYml0 cyBhcyB1bmF2YWlsYWJsZS4gICovCi1AQCAtNTY3LDkgKzU2OCw5IEBAIGV4dGVybiB2b2lkIG1h cmtfdmFsdWVfYml0c191bmF2YWlsYWJsZQotICAgIGFmdGVyIHRoZSBpbmZlcmlvciBpcyBnb25l LCBpdCB3b3JrcyB3aXRoIGNvbnN0IHZhbHVlcy4gIFRoZXJlZm9yZSwKLSAgICB0aGlzIHJvdXRp bmUgbXVzdCBub3QgYmUgY2FsbGVkIHdpdGggbGF6eSB2YWx1ZXMuICAqLwotIAotLWV4dGVybiBp bnQgdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgaW50IG9mZnNl dDEsCi0tCQkJICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBpbnQgb2Zmc2V0MiwKLS0J CQkgICAgICBpbnQgbGVuZ3RoKTsKLStleHRlcm4gaW50IHZhbHVlX2NvbnRlbnRzX2VxIChjb25z dCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIExPTkdFU1Qgb2Zmc2V0MSwKLSsJCQkgICAgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbDIsIExPTkdFU1Qgb2Zmc2V0MiwKLSsJCQkgICAgICBMT05HRVNUIGxl bmd0aCk7Ci0gCi0gLyogUmVhZCBMRU5HVEggYWRkcmVzc2FibGUgbWVtb3J5IHVuaXRzIHN0YXJ0 aW5nIGF0IE1FTUFERFIgaW50byBCVUZGRVIsCi0gICAgd2hpY2ggaXMgKG9yIHdpbGwgYmUgY29w aWVkIHRvKSBWQUwncyBjb250ZW50cyBidWZmZXIgb2Zmc2V0IGJ5Ci1AQCAtNTc4LDcgKzU3OSw3 IEBAIGV4dGVybiBpbnQgdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnUKLSAgICBtZW1vcnkg aXMgbGlrZXdpc2UgdW5hdmFpbGFibGUuICBTVEFDSyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgbWVt b3J5Ci0gICAgaXMga25vd24gdG8gYmUgc3RhY2sgbWVtb3J5LiAgKi8KLSAKLS1leHRlcm4gdm9p ZCByZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIGludCBlbWJlZGRlZF9vZmZz ZXQsCi0rZXh0ZXJuIHZvaWQgcmVhZF92YWx1ZV9tZW1vcnkgKHN0cnVjdCB2YWx1ZSAqdmFsLCBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkgICAgICAgaW50IHN0YWNrLCBDT1JFX0FERFIg bWVtYWRkciwKLSAJCQkgICAgICAgZ2RiX2J5dGUgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCk7Ci0g Ci1AQCAtNjE0LDE3ICs2MTUsMTggQEAgZXh0ZXJuIExPTkdFU1QgdW5wYWNrX2ZpZWxkX2FzX2xv bmcgKHN0cgotIAkJCQkgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotIAkJCQkgICAgIGlu dCBmaWVsZG5vKTsKLSBleHRlcm4gaW50IHVucGFja192YWx1ZV9maWVsZF9hc19sb25nIChzdHJ1 Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCWludCBlbWJlZGRl ZF9vZmZzZXQsIGludCBmaWVsZG5vLAotKwkJCQlMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgaW50 IGZpZWxkbm8sCi0gCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05HRVNUICpyZXN1bHQp OwotIAotIGV4dGVybiB2b2lkIHVucGFja192YWx1ZV9iaXRmaWVsZCAoc3RydWN0IHZhbHVlICpk ZXN0X3ZhbCwKLSAJCQkJICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCi0tCQkJCSAgIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJCQkgICBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKLSsJCQkJICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkJ CSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKTsKLSAKLSBleHRlcm4gc3RydWN0IHZhbHVlICp2 YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBmaWVsZG5vLAotIAkJ CQkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCQkgICBpbnQgZW1iZWRkZWRfb2Zm c2V0LAotKwkJCQkJICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkJCQkgICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCk7Ci0gCi0gZXh0ZXJuIHZvaWQgcGFja19sb25nIChnZGJfYnl0ZSAq YnVmLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBudW0pOwotQEAgLTY4MywxMiArNjg1LDEy IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmRlZmF1bHRfcmVhZF92YXJfdmEKLSAKLSBleHRlcm4g c3RydWN0IHZhbHVlICphbGxvY2F0ZV92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUpOwotIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3ZhbHVlX2xhenkgKHN0cnVjdCB0eXBlICp0eXBlKTsK LS1leHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgaW50 IGRzdF9vZmZzZXQsCi0tCQkJCSBzdHJ1Y3QgdmFsdWUgKnNyYywgaW50IHNyY19vZmZzZXQsCi0t CQkJCSBpbnQgbGVuZ3RoKTsKLS1leHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAo c3RydWN0IHZhbHVlICpkc3QsIGludCBkc3Rfb2Zmc2V0LAotLQkJCQkgICAgIHN0cnVjdCB2YWx1 ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwKLS0JCQkJICAgICBpbnQgbGVuZ3RoKTsKLStleHRlcm4g dm9pZCB2YWx1ZV9jb250ZW50c19jb3B5IChzdHJ1Y3QgdmFsdWUgKmRzdCwgc3NpemVfdCBkc3Rf b2Zmc2V0LAotKwkJCQkgc3RydWN0IHZhbHVlICpzcmMsIHNzaXplX3Qgc3JjX29mZnNldCwKLSsJ CQkJIHNzaXplX3QgbGVuZ3RoKTsKLStleHRlcm4gdm9pZCB2YWx1ZV9jb250ZW50c19jb3B5X3Jh dyAoc3RydWN0IHZhbHVlICpkc3QsIHNzaXplX3QgZHN0X29mZnNldCwKLSsJCQkJICAgICBzdHJ1 Y3QgdmFsdWUgKnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LAotKwkJCQkgICAgIHNzaXplX3QgbGVu Z3RoKTsKLSAKLSBleHRlcm4gc3RydWN0IHZhbHVlICphbGxvY2F0ZV9yZXBlYXRfdmFsdWUgKHN0 cnVjdCB0eXBlICp0eXBlLCBpbnQgY291bnQpOwotIAotQEAgLTc2NiwxNiArNzY4LDE2IEBAIGV4 dGVybiBpbnQgZmluZF9vdmVybG9hZF9tYXRjaCAoc3RydWN0IHYKLSAKLSBleHRlcm4gc3RydWN0 IHZhbHVlICp2YWx1ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcxLCBpbnQgZmllbGRubyk7Ci0g Ci0tZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKmFyZzEsIGludCBvZmZzZXQsCi0rZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfcHJpbWl0 aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qgb2Zmc2V0LAorQEAgLTc3MSwx MiArNzcyLDExIEBACiAgCQkJCQkgICAgaW50IGZpZWxkbm8sCiAgCQkJCQkgICAgc3RydWN0IHR5 cGUgKmFyZ190eXBlKTsKICAKLSAKLS1leHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX3J0dGlfaW5k aXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICosIGludCAqLCBpbnQgKiwKLStleHRlcm4gc3RydWN0 IHR5cGUgKnZhbHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVlICosIGludCAqLCBM T05HRVNUICosCistCisgZXh0ZXJuIHN0cnVjdCB0eXBlICp2YWx1ZV9ydHRpX2luZGlyZWN0X3R5 cGUgKHN0cnVjdCB2YWx1ZSAqLCBpbnQgKiwgTE9OR0VTVCAqLAogIAkJCQkJICAgICAgaW50ICop OwogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Z1bGxfb2JqZWN0IChzdHJ1Y3QgdmFs dWUgKiwgc3RydWN0IHR5cGUgKiwgaW50LApAQCAtNDI3Miw0NCArMzI2MSw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAogIAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUg KnZhbHVlX2Nhc3RfcG9pbnRlcnMgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2YWx1ZSAqLCBpbnQp OwogIAotQEAgLTg3MCw3ICs4NzIsNyBAQCBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2YXJfc3Ry aW5nIChzdHJ1Ci0gZXh0ZXJuIHZvaWQgY2xlYXJfaW50ZXJuYWx2YXIgKHN0cnVjdCBpbnRlcm5h bHZhciAqdmFyKTsKLSAKLSBleHRlcm4gdm9pZCBzZXRfaW50ZXJuYWx2YXJfY29tcG9uZW50IChz dHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwKLS0JCQkJICAgICAgIGludCBvZmZzZXQsCi0rCQkJCSAg ICAgICBMT05HRVNUIG9mZnNldCwKLSAJCQkJICAgICAgIGludCBiaXRwb3MsIGludCBiaXRzaXpl LAotIAkJCQkgICAgICAgc3RydWN0IHZhbHVlICpuZXd2YWx1ZSk7Ci0gCi1AQCAtOTUxLDcgKzk1 Myw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3hfdW5vcCAoc3RydWMKLSAJCQkJICAg ZW51bSBub3NpZGUgbm9zaWRlKTsKLSAKLSBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9mbl9m aWVsZCAoc3RydWN0IHZhbHVlICoqYXJnMXAsIHN0cnVjdCBmbl9maWVsZCAqZiwKLS0JCQkJICAg ICBpbnQgaiwgc3RydWN0IHR5cGUgKnR5cGUsIGludCBvZmZzZXQpOwotKwkJCQkgICAgIGludCBq LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgTE9OR0VTVCBvZmZzZXQpOwotIAotIGV4dGVybiBpbnQgYmlu b3BfdHlwZXNfdXNlcl9kZWZpbmVkX3AgKGVudW0gZXhwX29wY29kZSBvcCwKLSAJCQkJICAgICAg IHN0cnVjdCB0eXBlICp0eXBlMSwKLUBAIC05NzksNyArOTgxLDggQEAgZXh0ZXJuIHZvaWQgcmVs ZWFzZV92YWx1ZV9vcl9pbmNyZWYgKHN0cgotIGV4dGVybiBpbnQgcmVjb3JkX2xhdGVzdF92YWx1 ZSAoc3RydWN0IHZhbHVlICp2YWwpOwotIAotIGV4dGVybiB2b2lkIG1vZGlmeV9maWVsZCAoc3Ry dWN0IHR5cGUgKnR5cGUsIGdkYl9ieXRlICphZGRyLAotLQkJCSAgTE9OR0VTVCBmaWVsZHZhbCwg aW50IGJpdHBvcywgaW50IGJpdHNpemUpOwotKwkJCSAgTE9OR0VTVCBmaWVsZHZhbCwgTE9OR0VT VCBiaXRwb3MsCi0rCQkJICBpbnQgYml0c2l6ZSk7Ci0gCi0gZXh0ZXJuIHZvaWQgdHlwZV9wcmlu dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGNoYXIgKnZhcnN0cmluZywKLSAJCQlzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBpbnQgc2hvdyk7Ci1AQCAtMTAwOSw3ICsxMDEyLDcgQEAgZXh0ZXJu IHZvaWQgdmFsdWVfcHJpbnRfYXJyYXlfZWxlbWVudHMgKAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUg KnZhbHVlX3JlbGVhc2VfdG9fbWFyayAoc3RydWN0IHZhbHVlICptYXJrKTsKLSAKLSBleHRlcm4g dm9pZCB2YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKLS0JCSAgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJ CSAgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQkg ICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkgICAgICAgY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMTA2MiwxMCArMTA2NSwxMSBAQCBleHRlcm4gc3RydWN0 IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsCitAQCAtMTA2NSwxMCArMTA2NSwxMSBAQAogIGV4 dGVybiBzdHJ1Y3QgdmFsdWUgKmZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0IGNoYXIg KiwKICAJCQkJCQlzdHJ1Y3Qgb2JqZmlsZSAqKik7CiAgCkBAIC00MzIzLDExICszMjc1LDExIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuaAogIAogIC8qIFVzZXIgZnVu Y3Rpb24gaGFuZGxlci4gICovCiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Mz OTAtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvczM5MC1saW51 eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3Mz OTAtbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTAzNTE5MDQgKzAxMDAKLSsrKyBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvczM5MC1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIz OjEzLjI0MjM2NTAxMCArMDEwMAotQEAgLTYxMiw3ICs2MTIsNyBAQCBzMzkwX2Nhbl91c2VfaHdf YnJlYWtwb2ludCAoc3RydWN0IHRhcmdlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvczM5MC1saW51eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMDUxMDY1NiArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTYtMDctMTYg MTQ6MzM6NDQuNTUwNTMwMjEzICswMjAwCitAQCAtNjEyLDcgKzYxMiw3IEBACiAgCiAgc3RhdGlj IGludAogIHMzOTBfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29w cyAqc2VsZiwKQEAgLTQzMzYsMzcgKzMyODgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9zMzkwLWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJuIDE7CiAgfQotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9leHRlbnNpb24tcHJpdi5oCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZXh0ZW5zaW9uLXByaXYuaAkyMDE1LTExLTAy IDIxOjIzOjExLjI1MDM1MTkwNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9l eHRlbnNpb24tcHJpdi5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQyMzY1MDEwICswMTAwCi1AQCAt MTgxLDcgKzE4MSw3IEBAIHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2Vfb3BzCi0gICBlbnVtIGV4 dF9sYW5nX3JjICgqYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyKQotICAgICAoY29uc3Qgc3RydWN0 IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICosCi0gICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FE RFIgYWRkcmVzcywKLSsgICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRk cmVzcywKLSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotICAgICAg Y29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zLAotICAgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKTsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5o CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3B5dGhvbi9weXRob24t aW50ZXJuYWwuaAkyMDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkwNCArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNS0xMS0wMiAy MToyMzoxMy4yNDIzNjUwMTAgKzAxMDAKLUBAIC0zMTYsNyArMzE2LDcgQEAgZXh0ZXJuIGludCBn ZGJweV9hdXRvX2xvYWRfZW5hYmxlZCAoY29ucwotIGV4dGVybiBlbnVtIGV4dF9sYW5nX3JjIGdk YnB5X2FwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlcgotICAgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25f bGFuZ3VhZ2VfZGVmbiAqLAotICAgIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwKLS0gICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsg ICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gICAgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gICAgY29uc3Qgc3RydWN0IHZhbHVlICp2 YWwsCi0gICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwotPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwky MDE1LTExLTAyIDIxOjIzOjExLjI1MjM1MTkxNyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDMzNjUwMTcg KzAxMDAKLUBAIC03MzYsMTQgKzczNiwxNCBAQCBkZWJ1Z193YXRjaHBvaW50X2FkZHJfd2l0aGlu X3JhbmdlIChzdHJ1CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGFyZ2V0LWRl bGVnYXRlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIxNTEwNjY0ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0 LjU1MDUzMDIxMyArMDIwMAorQEAgLTczNiwxNCArNzM2LDE0IEBACiAgfQogIAogIHN0YXRpYyBp bnQKQEAgLTQzODMsNyArMzMwOSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dGFyZ2V0LWRlbGVnYXRlcy5jCiAgewogICAgaW50IHJlc3VsdDsKICAgIGZwcmludGZfdW5maWx0 ZXJlZCAoZ2RiX3N0ZGxvZywgIi0+ICVzLT50b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KC4uLilcbiIsIGRlYnVnX3RhcmdldC50b19zaG9ydG5hbWUpOwotQEAgLTc1Myw3ICs3NTMsNyBA QCBkZWJ1Z19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjCitAQCAtNzUzLDcgKzc1 Myw3IEBACiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsKICAgIHRhcmdl dF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzEpOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoIiwg IiwgZ2RiX3N0ZGxvZyk7CkBAIC00MzkyLDExICszMzE4LDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiAgICBmcHV0c191bmZpbHRlcmVkICgi KSA9ICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X2ludCAocmVzdWx0KTsK ICAgIGZwdXRzX3VuZmlsdGVyZWQgKCJcbiIsIGdkYl9zdGRsb2cpOwotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjUyMzUxOTE3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FhcmNo NjQtbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDMzNjUwMTcgKzAxMDAKLUBAIC03 MzYsNyArNzM2LDcgQEAgYWFyY2g2NF9saW51eF9yZW1vdmVfd2F0Y2hwb2ludCAoc3RydWN0Cist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE2 LTA3LTE2IDE0OjMzOjQyLjEyMjUxMDY3MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUxNTMwMjIxICsw MjAwCitAQCAtNzM2LDcgKzczNiw3IEBACiAgCiAgc3RhdGljIGludAogIGFhcmNoNjRfbGludXhf cmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAg LTQ0MDUsMTEgKzMzMzEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hYXJj aDY0LWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJuIGFhcmNoNjRfbGludXhfcmVnaW9uX29rX2Zv cl93YXRjaHBvaW50IChhZGRyLCBsZW4pOwogIH0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbmF0L3g4Ni1kcmVncy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL25h dC94ODYtZHJlZ3MuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcv Z2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1MjM1MTkxNyArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0xMS0wMiAy MToyMzoxMy4yNDQzNjUwMjQgKzAxMDAKLUBAIC0zODQsNyArMzg0LDcgQEAgeDg2X3JlbW92ZV9h bGlnbmVkX3dhdGNocG9pbnQgKHN0cnVjdCB4OAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMjUxMDY3MiArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNi0wNy0x NiAxNDozMzo0NC41NTE1MzAyMjEgKzAyMDAKK0BAIC0zODQsNyArMzg0LDcgQEAKICAKICBzdGF0 aWMgaW50CiAgeDg2X2hhbmRsZV9ub25hbGlnbmVkX3dhdGNocG9pbnQgKHN0cnVjdCB4ODZfZGVi dWdfcmVnX3N0YXRlICpzdGF0ZSwKQEAgLTQ0MTgsNyArMzM0NCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5jCiAgCQkJCSAgZW51bSB0YXJnZXRfaHdf YnBfdHlwZSB0eXBlKQogIHsKICAgIGludCByZXR2YWwgPSAwOwotQEAgLTU1Miw3ICs1NTIsNyBA QCB4ODZfZHJfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB4ODZfZGViCitAQCAtNTUyLDcgKzU1 Miw3IEBACiAgCiAgaW50CiAgeDg2X2RyX3JlZ2lvbl9va19mb3Jfd2F0Y2hwb2ludCAoc3RydWN0 IHg4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlLApAQCAtNDQyNywxMSArMzM1MywxMSBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL25hdC94ODYtZHJlZ3MuYwogIHsKICAgIGludCBu cmVnczsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvY29tcGlsZS9jb21waWxl LWMtc3VwcG9ydC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NvbXBpbGUvY29t cGlsZS1jLXN1cHBvcnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1 MzM1MTkyMyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jb21waWxlL2NvbXBp bGUtYy1zdXBwb3J0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDQzNjUwMjQgKzAxMDAKLUBAIC0y OTksMTEgKzI5OSwxMSBAQCBnZW5lcmF0ZV9yZWdpc3Rlcl9zdHJ1Y3QgKHN0cnVjdCB1aV9maWxl CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3Vw cG9ydC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjU1MTUzMDIyMSArMDIwMAorQEAgLTI5OSwxMSArMjk5LDExIEBACiAgCiAgCSAgICAg IGRlZmF1bHQ6CiAgCQlmcHJpbnRmX3VuZmlsdGVyZWQgKHN0cmVhbSwKQEAgLTQ0NDUsMTEgKzMz NzEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jb21waWxlL2NvbXBpbGUt Yy1zdXBwb3J0LmMKICAJICAgICAgfQogIAkgICAgZnB1dHNfdW5maWx0ZXJlZCAoIjtcbiIsIHN0 cmVhbSk7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL25hdC94ODYtZHJlZ3Mu aAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQveDg2LWRyZWdzLmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9uYXQveDg2LWRyZWdzLmgJ MjAxNS0xMS0wMiAyMToyMzoxMS4yNTMzNTE5MjMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQ0MzY1MDI0ICsw MTAwCi1AQCAtMTE2LDcgKzExNiw3IEBAIGV4dGVybiBpbnQgeDg2X2RyX3JlbW92ZV93YXRjaHBv aW50IChzdHIKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9uYXQveDg2LWRyZWdz LmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMjI1MTA2NzIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUxNTMwMjIx ICswMjAwCitAQCAtMTE2LDcgKzExNiw3IEBACiAgLyogUmV0dXJuIG5vbi16ZXJvIGlmIHdlIGNh biB3YXRjaCBhIG1lbW9yeSByZWdpb24gdGhhdCBzdGFydHMgYXQKICAgICBhZGRyZXNzIEFERFIg YW5kIHdob3NlIGxlbmd0aCBpcyBMRU4gYnl0ZXMuICAqLwogIGV4dGVybiBpbnQgeDg2X2RyX3Jl Z2lvbl9va19mb3Jfd2F0Y2hwb2ludCAoc3RydWN0IHg4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRl LApAQCAtNDQ1OCwxMSArMzM4NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L25hdC94ODYtZHJlZ3MuaAogIAogIC8qIElmIHRoZSBpbmZlcmlvciBoYXMgc29tZSBicmVhay93 YXRjaHBvaW50IHRoYXQgdHJpZ2dlcmVkLCBzZXQgdGhlCiAgICAgYWRkcmVzcyBhc3NvY2lhdGVk IHdpdGggdGhhdCBicmVhay93YXRjaHBvaW50IGFuZCByZXR1cm4gdHJ1ZS4KLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIveDg2LW5hdC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3g4Ni1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3g4Ni1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1MzM1MTkyMyArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi94ODYtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4y NDQzNjUwMjQgKzAxMDAKLUBAIC0xNzQsNyArMTc0LDcgQEAgeDg2X3JlbW92ZV93YXRjaHBvaW50 IChzdHJ1Y3QgdGFyZ2V0X29wcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3g4 Ni1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMzUxMDY4MCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi94ODYtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTE1MzAyMjEg KzAyMDAKK0BAIC0xNzQsNyArMTc0LDcgQEAKICAKICBzdGF0aWMgaW50CiAgeDg2X3JlZ2lvbl9v a19mb3Jfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC00NDcxLDI5ICsz Mzk3LDI1IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIveDg2LW5hdC5jCiAgewog ICAgc3RydWN0IHg4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0YXRlCiAgICAgID0geDg2X2RlYnVnX3Jl Z19zdGF0ZSAocHRpZF9nZXRfcGlkIChpbmZlcmlvcl9wdGlkKSk7Ci1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9ndWlsZS9ndWlsZS1pbnRlcm5hbC5oCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDQzNjUwMjQg KzAxMDAKLUBAIC02MDYsNyArNjA2LDcgQEAgZXh0ZXJuIHZvaWQgZ2Ric2NtX3ByZXNlcnZlX3Zh bHVlcwotIGV4dGVybiBlbnVtIGV4dF9sYW5nX3JjIGdkYnNjbV9hcHBseV92YWxfcHJldHR5X3By aW50ZXIKLSAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKiwKLSAgICBz dHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tICAgaW50IGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsIENPUkVfQUREUiBhZGRyZXNzLAotICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAotICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotICAgIGNvbnN0IHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9ndWlsZS9zY20tcHJldHR5LXByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvcnVzdC1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9ndWlsZS9zY20tcHJldHR5LXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTQz NTE5MzAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ3VpbGUvc2NtLXByZXR0 eS1wcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQ1MzY1MDMwICswMTAwCi1AQCAtOTU4LDcg Kzk1OCw3IEBAIHBwc2NtX3ByaW50X2NoaWxkcmVuIChTQ00gcHJpbnRlciwgZW51bQotIGVudW0g ZXh0X2xhbmdfcmMKLSBnZGJzY21fYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyIChjb25zdCBzdHJ1 Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gKmV4dGxhbmcsCi0gCQkJCSBzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCSBpbnQgZW1iZWRkZWRfb2Zmc2V0 LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCQkJIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBDT1JF X0FERFIgYWRkcmVzcywKLSAJCQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAotIAkJCQkgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkJCSBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9ydXN0LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEyMzUxMDY4MCArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ydXN0LWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0 LjU1MTUzMDIyMSArMDIwMAorQEAgLTQxMCw3ICs0MTAsNyBAQAorIAorIHN0YXRpYyB2b2lkCisg cnVzdF9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUs CistCSAgICAgICBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLCB1bnNpZ25lZCBpbnQgbGVuZ3RoLAor KwkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywgVUxPTkdFU1QgbGVuZ3RoLAorIAkgICAg ICAgY29uc3QgY2hhciAqdXNlcl9lbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAorIAkgICAg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCisgeworQEAgLTQ1 Niw3ICs0NTYsNyBAQAorIC8qIGxhX3ZhbF9wcmludCBpbXBsZW1lbnRhdGlvbiBmb3IgUnVzdC4g ICovCisgCisgc3RhdGljIHZvaWQKKy1ydXN0X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorK3J1c3RfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdF U1QgZW1iZWRkZWRfb2Zmc2V0LAorIAkJQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAorIAkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCisgCQlj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKCmRpZmYgLS1naXQgYS9n ZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9z LTIzb2YyNS5wYXRjaAppbmRleCAxZjZkMjM3Li44NTc2MGRiIDEwMDY0NAotLS0gYS9nZGItcmhi ejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0y M29mMjUucGF0Y2gKQEAgLTEzNywxMCArMTM3LDEwIEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBh dGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9u OiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtdGRlcC5wYXRjaAogCi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2FscGhhLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9hbHBoYS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEw Ni5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi41OTI4MTM5OTAgKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYWxwaGEtdGRlcC5jCTIwMTYtMDEtMDgg MTk6MTY6MjAuMzA4ODM0NzE3ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvYWxwaGEtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuMzkwNTAyNzE4ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FscGhhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3 LjUxMTUxOTc4OCArMDIwMAogQEAgLTI5OSwxNyArMjk5LDE3IEBACiAgewogICAgZW51bSBiZmRf ZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtMTgz LDExICsxODMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbHBoYS10ZGVw LmMKICAJICAgICAgbWVtY3B5IChhcmdfcmVnX2J1ZmZlciArIG9mZnNldCwgY29udGVudHMsIHRs ZW4pOwogIAkgICAgICBvZmZzZXQgKz0gdGxlbjsKICAJICAgICAgY29udGVudHMgKz0gdGxlbjsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FtZDY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2 LjU5NDgxNDAwMSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbWQ2NC10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMDk4MzQ3MjMgKzAxMDAKLUBAIC02OTksNyArNjk5LDcg QEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbWQ2NC10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0NS4zOTE1MDI3MjYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvYW1kNjQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTEyNTE5Nzk2ICswMjAwCitAQCAt NzI5LDcgKzcyOSw3IEBACiAgCQkgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRl ICp3cml0ZWJ1ZikKICB7CiAgICBlbnVtIGFtZDY0X3JlZ19jbGFzcyB0aGVjbGFzc1syXTsKQEAg LTE5Niw3ICsxOTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXRk ZXAuYwogICAgc3RhdGljIGludCBpbnRlZ2VyX3JlZ251bVtdID0geyBBTUQ2NF9SQVhfUkVHTlVN LCBBTUQ2NF9SRFhfUkVHTlVNIH07CiAgICBzdGF0aWMgaW50IHNzZV9yZWdudW1bXSA9IHsgQU1E NjRfWE1NMF9SRUdOVU0sIEFNRDY0X1hNTTFfUkVHTlVNIH07CiAgICBpbnQgaW50ZWdlcl9yZWcg PSAwOwotQEAgLTg1MCw4ICs4NTAsOCBAQAorQEAgLTg4MCw4ICs4ODAsOCBAQAogICAgfTsKICAg IHN0cnVjdCB2YWx1ZSAqKnN0YWNrX2FyZ3MgPSBYQUxMT0NBVkVDIChzdHJ1Y3QgdmFsdWUgKiwg bmFyZ3MpOwogICAgaW50IG51bV9zdGFja19hcmdzID0gMDsKQEAgLTIwNyw3ICsyMDcsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXRkZXAuYwogICAgaW50IGludGVn ZXJfcmVnID0gMDsKICAgIGludCBzc2VfcmVnID0gMDsKICAgIGludCBpOwotQEAgLTg2Myw3ICs4 NjMsNyBAQAorQEAgLTg5Myw3ICs4OTMsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IG5hcmdzOyBp KyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3Nb aV0pOwpAQCAtMjE2LDEwICsyMTYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9hbWQ2NC10ZGVwLmMKICAgICAgICBlbnVtIGFtZDY0X3JlZ19jbGFzcyB0aGVjbGFzc1syXTsK ICAgICAgICBpbnQgbmVlZGVkX2ludGVnZXJfcmVncyA9IDA7CiAgICAgICAgaW50IG5lZWRlZF9z c2VfcmVncyA9IDA7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXdpbmRv d3MtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FtZDY0LXdpbmRvd3Mt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvYW1k NjQtd2luZG93cy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi41OTU4MTQwMDYgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoyMC4zMTA4MzQ3MjggKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjM5MzUwMjc0MiAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwky MDE2LTA3LTE2IDE0OjM1OjQ3LjUxMjUxOTc5NiArMDIwMAogQEAgLTI4OCw3ICsyODgsNyBAQAog IAkJCSAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJ CQkgICAgZ2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKQEAgLTIy OSwxMSArMjI5LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtd2lu ZG93cy10ZGVwLmMKICAgIGludCByZWdudW0gPSAtMTsKICAKICAgIC8qIFNlZSBpZiBvdXIgdmFs dWUgaXMgcmV0dXJuZWQgdGhyb3VnaCBhIHJlZ2lzdGVyLiAgSWYgaXQgaXMsIHRoZW4KLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXJtLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9hcm0tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NjAxMDYub3JpZy9nZGIvYXJtLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYwMzgxNDA1MSAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5jCTIwMTYtMDEtMDgg MTk6MTc6MDUuNzM3MDg4MTA3ICswMTAwCi1AQCAtMzM0MCw3ICszMzQwLDcgQEAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hcm0tdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUu NDAwNTAyNzk4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNjozMC4zMjg4NjQzNzYgKzAyMDAKK0BAIC0zNDQzLDcgKzM0NDMsNyBA QAogICAgIGFycmF5KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQs IG1hdGNoaW5nIHRoZQogICAgIGdlbmVyaWMgQUFQQ1Mgc3VwcG9ydC4gICovCiAgCkBAIC0yNDIs NyArMjQyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5jCiAg YXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKHN0cnVjdCB0eXBlICp0LAogIAkJCSAgICBlbnVt IGFybV92ZnBfY3ByY19iYXNlX3R5cGUgKmJhc2VfdHlwZSkKICB7Ci1AQCAtMzQyMyw3ICszNDIz LDcgQEAKK0BAIC0zNTI2LDcgKzM1MjYsNyBAQAogIAkgIH0KICAJZWxzZQogIAkgIHsKQEAgLTI1 MSw3ICsyNTEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMK ICAJICAgIHVuc2lnbmVkIHVuaXRsZW47CiAgCiAgCSAgICBjb3VudCA9IGFybV92ZnBfY3ByY19z dWJfY2FuZGlkYXRlIChUWVBFX1RBUkdFVF9UWVBFICh0KSwKLUBAIC0zNDQ2LDEzICszNDQ2LDE1 IEBACitAQCAtMzU0OSwxMiArMzU0OSwxMiBAQAogIAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJV Q1Q6CiAgICAgICAgewpAQCAtMjYxLDE2ICsyNjEsMTIgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9hcm0tdGRlcC5jCiAgCWludCBpOwogIAlmb3IgKGkgPSAwOyBpIDwgVFlQRV9O RklFTERTICh0KTsgaSsrKQogIAkgIHsKLS0JICAgIGludCBzdWJfY291bnQgPSBhcm1fdmZwX2Nw cmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwKLS0JCQkJCQkJYmFzZV90 eXBlKTsKLSsJICAgIExPTkdFU1Qgc3ViX2NvdW50OwotKwotKwkgICAgc3ViX2NvdW50ID0gYXJt X3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfRklFTERfVFlQRSAodCwgaSksCi0rCQkJCQkJ ICAgIGJhc2VfdHlwZSk7Ci0gCSAgICBpZiAoc3ViX2NvdW50ID09IC0xKQotIAkgICAgICByZXR1 cm4gLTE7Ci0gCSAgICBjb3VudCArPSBzdWJfY291bnQ7Ci1AQCAtMzQ3MiwxMyArMzQ3NCwxNSBA QAorLQkgICAgaW50IHN1Yl9jb3VudCA9IDA7CisrCSAgICBMT05HRVNUIHN1Yl9jb3VudCA9IDA7 CisgCisgCSAgICBpZiAoIWZpZWxkX2lzX3N0YXRpYyAoJlRZUEVfRklFTEQgKHQsIGkpKSkKKyAJ ICAgICAgc3ViX2NvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVfRklFTERf VFlQRSAodCwgaSksCitAQCAtMzU3OCwxMyArMzU3OCwxNSBAQAogIAogICAgICBjYXNlIFRZUEVf Q09ERV9VTklPTjoKICAgICAgICB7CkBAIC0yODksNyArMjg1LDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5jCiAgCSAgICBpZiAoc3ViX2NvdW50ID09IC0xKQog IAkgICAgICByZXR1cm4gLTE7CiAgCSAgICBjb3VudCA9IChjb3VudCA+IHN1Yl9jb3VudCA/IGNv dW50IDogc3ViX2NvdW50KTsKLUBAIC0zNTE0LDcgKzM1MTgsNyBAQAorQEAgLTM2MjAsNyArMzYy Miw3IEBACiAgCQkJaW50ICpjb3VudCkKICB7CiAgICBlbnVtIGFybV92ZnBfY3ByY19iYXNlX3R5 cGUgYiA9IFZGUF9DUFJDX1VOS05PV047CkBAIC0yOTgsNyArMjk0LDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9hcm0tdGRlcC5jCiAgICBpZiAoYyA8PSAwIHx8IGMgPiA0KQog ICAgICByZXR1cm4gMDsKICAgICpiYXNlX3R5cGUgPSBiOwotQEAgLTM1OTUsNyArMzU5OSw3IEBA CitAQCAtMzcwMSw3ICszNzAzLDcgQEAKICAKICAgIGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwg bmFyZ3M7IGFyZ251bSsrKQogICAgICB7CkBAIC0zMDcsMTEgKzMwMywxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJn X3R5cGU7CiAgICAgICAgc3RydWN0IHR5cGUgKnRhcmdldF90eXBlOwogICAgICAgIGVudW0gdHlw ZV9jb2RlIHR5cGVjb2RlOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hdnItdGRl cC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F2ci10ZGVwLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTYtMDEt MDggMTk6MTY6MTYuNjA0ODE0MDU3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2F2ci10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMTQ4MzQ3NTAgKzAxMDAKLUBAIC0xMTk2 LDEzICsxMTk2LDEzIEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXZyLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwMTUwMjgwNiArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9hdnItdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE2NTE5ODI4ICsw MjAwCitAQCAtMTE5NSwxMyArMTE5NSwxMyBAQAogIAogIHN0cnVjdCBzdGFja19pdGVtCiAgewpA QCAtMzI3LDcgKzMyMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXZyLXRk ZXAuYwogIHsKICAgIHN0cnVjdCBzdGFja19pdGVtICpzaTsKICAgIHNpID0gWE5FVyAoc3RydWN0 IHN0YWNrX2l0ZW0pOwotQEAgLTEyOTEsMTIgKzEyOTEsMTIgQEAKK0BAIC0xMjg5LDEyICsxMjg5 LDEyIEBACiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewpAQCAtMzQx LDIyICszMzcsMjIgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hdnItdGRlcC5j CiAtICAgICAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICsgICAgICBzc2l6ZV90IGxl biA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICAKLSAgICAgICAvKiBDYWxjdWxhdGUgdGhlIHBvdGVu dGlhbCBsYXN0IHJlZ2lzdGVyIG5lZWRlZC4gICovCi0gICAgICAgbGFzdF9yZWdudW0gPSByZWdu dW0gLSAobGVuICsgKGxlbiAmIDEpKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv YmZpbi10ZGVwLmMKKyAgICAgICAvKiBDYWxjdWxhdGUgdGhlIHBvdGVudGlhbCBsYXN0IHJlZ2lz dGVyIG5lZWRlZC4KKyAgICAgICAgICBFLmcuIEZvciBsZW5ndGggMiwgcmVnaXN0ZXJzIHJlZ251 bSBhbmQgcmVnbnVtLTEgKHNheSAyNSBhbmQgMjQpCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2JmaW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvYmZpbi10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDU4MTQwNjIgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYmZpbi10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NjoyMC4zMTU4MzQ3NTYgKzAxMDAKLUBAIC01MDQsNyArNTA0LDcgQEAKLSAgIGdkYl9ieXRlIGJ1 Zls0XTsKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ1LjQwMTUwMjgwNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9iZmluLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxNjUxOTgyOCArMDIwMAorQEAg LTUwMiw3ICs1MDIsNyBAQAorICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNo X2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGk7CiAgICBsb25nIHJlZ19yMCwgcmVnX3Ix LCByZWdfcjI7CiAtICBpbnQgdG90YWxfbGVuID0gMDsKICsgIHNzaXplX3QgdG90YWxfbGVuID0g MDsKLSAgIGVudW0gYmZpbl9hYmkgYWJpID0gYmZpbl9hYmkgKGdkYmFyY2gpOwotICAgQ09SRV9B RERSIGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwogIAot QEAgLTUyOCw3ICs1MjgsNyBAQAorICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkK KyAgICAgeworQEAgLTUyNCw3ICs1MjQsNyBAQAogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUg KnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAoYXJnc1tpXSk7CiAgICAgICAgc3Ry dWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSk7CkBAIC0zNjUs MTAgKzM2MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2JmaW4tdGRlcC5j CiAgCiAgICAgICAgc3AgLT0gY29udGFpbmVyX2xlbjsKICAgICAgICB3cml0ZV9tZW1vcnkgKHNw LCB2YWx1ZV9jb250ZW50cyAoYXJnc1tpXSksIGNvbnRhaW5lcl9sZW4pOwotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9jcmlzLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9jcmlzLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2 Lm9yaWcvZ2RiL2NyaXMtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjA2ODE0MDY4ICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NyaXMtdGRlcC5jCTIwMTYtMDEtMDggMTk6 MTY6MjAuMzE2ODM0NzYyICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv Y3Jpcy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MDM1MDI4MjMgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvY3Jpcy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTc1 MTk4MzYgKzAyMDAKIEBAIC02NjMsMTMgKzY2MywxMyBAQAogIAogIHN0cnVjdCBzdGFja19pdGVt CkBAIC0zODUsNyArMzgxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jcmlz LXRkZXAuYwogIHsKICAgIHN0cnVjdCBzdGFja19pdGVtICpzaSA9IFhORVcgKHN0cnVjdCBzdGFj a19pdGVtKTsKICAgIHNpLT5kYXRhID0gKGdkYl9ieXRlICopIHhtYWxsb2MgKGxlbik7Ci1AQCAt ODQxLDEzICs4NDEsMTMgQEAKK0BAIC04MzMsMTMgKzgzMywxMyBAQAogIAogICAgZm9yIChhcmdu dW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKyspCiAgICAgIHsKQEAgLTQwMywxMSArMzk5 LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY3Jpcy10ZGVwLmMKICAgICAg ICAKICAgICAgICAvKiBIb3cgbWF5IHJlZ2lzdGVycyB3b3J0aCBvZiBzdG9yYWdlIGRvIHdlIG5l ZWQgZm9yIHRoaXMgYXJndW1lbnQ/ICAqLwogICAgICAgIHJlZ19kZW1hbmQgPSAobGVuIC8gNCkg KyAobGVuICUgNCAhPSAwID8gMSA6IDApOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9oODMwMC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaDgzMDAtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvaDgzMDAt dGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjA3ODE0MDczICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2g4MzAwLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxNjgzNDc2 MiArMDEwMAotQEAgLTYzOSw3ICs2MzksNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL2g4MzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwMzUwMjgyMyArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9oODMwMC10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0Ny41MTc1MTk4MzYgKzAyMDAKK0BAIC02MzcsNyArNjM3LDcgQEAKICAJCSAgICAgICBpbnQg c3RydWN0X3JldHVybiwgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKICAgIGVudW0gYmZkX2Vu ZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAgLTQxNiw3 ICs0MTIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4MzAwLXRkZXAuYwog ICAgaW50IHdvcmRzaXplID0gQklOV09SRCAoZ2RiYXJjaCk7CiAgICBpbnQgcmVnID0gRV9BUkcw X1JFR05VTTsKICAgIGludCBhcmd1bWVudDsKLUBAIC02NjYsMTEgKzY2NiwxMSBAQAorQEAgLTY2 NCwxMSArNjY0LDExIEBACiAgICAgIHsKICAgICAgICBzdHJ1Y3QgY2xlYW51cCAqYmFja190bzsK ICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUgKGFyZ3NbYXJndW1lbnRdKTsK QEAgLTQzMCw3ICs0MjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4MzAw LXRkZXAuYwogICAgICAgIGdkYl9ieXRlICpwYWRkZWQgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAo cGFkZGVkX2xlbik7CiAgICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIHBhZGRl ZCk7CiAgCi1AQCAtNjk5LDcgKzY5OSw3IEBACitAQCAtNjk3LDcgKzY5Nyw3IEBACiAgCSAgICAg IC8qIEhlYXZlbnMgdG8gQmV0c3kgLS0tIGl0J3MgcmVhbGx5IGdvaW5nIGluIHJlZ2lzdGVycyEK ICAJICAgICAgICAgTm90ZSB0aGF0IG9uIHRoZSBoOC8zMDBzLCB0aGVyZSBhcmUgZ2FwcyBiZXR3 ZWVuIHRoZQogIAkgICAgICAgICByZWdpc3RlcnMgaW4gdGhlIHJlZ2lzdGVyIGZpbGUuICAqLwpA QCAtNDM5LDExICs0MzUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9oODMw MC10ZGVwLmMKICAKICAJICAgICAgZm9yIChvZmZzZXQgPSAwOyBvZmZzZXQgPCBwYWRkZWRfbGVu OyBvZmZzZXQgKz0gd29yZHNpemUpCiAgCQl7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2hwcGEtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2hwcGEtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvaHBwYS10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDk4MTQwODUgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMTc4MzQ3Njcg KzAxMDAKLUBAIC05OTUsNyArOTk1LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9ocHBhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQwNTUwMjgzOSArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ocHBhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3 LjUxODUxOTg0NCArMDIwMAorQEAgLTk5MSw3ICs5OTEsNyBAQAogICAgICB7CiAgICAgICAgc3Ry dWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFs dWVfdHlwZSAoYXJnKTsKQEAgLTQ1Miw3ICs0NDgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2hwcGEtdGRlcC5jCiAgICAgICAgY29uc3QgYmZkX2J5dGUgKnZhbGJ1ZjsKICAg ICAgICBiZmRfYnl0ZSBmcHRyYnVmWzhdOwogICAgICAgIGludCByZWdudW07Ci1AQCAtMTE5MCw3 ICsxMTkwLDcgQEAKK0BAIC0xMTg2LDcgKzExODYsNyBAQAogIAkJICAgICBzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCSAgICAgZ2RiX2J5dGUgKnJlYWRi dWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKICB7CkBAIC00NjEsMTAgKzQ1NywxMCBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2hwcGEtdGRlcC5jCiAgICBpbnQgcmVnbnVt LCBvZmZzZXQ7CiAgCiAgICBpZiAobGVuID4gMTYpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2kzODYtZGFyd2luLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9pMzg2LWRhcndpbi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEw Ni5vcmlnL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDk4MTQw ODUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5j CTIwMTYtMDEtMDggMTk6MTY6MjAuMzE3ODM0NzY3ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDA1 NTAyODM5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtZGFyd2luLXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxODUxOTg0NCArMDIwMAogQEAgLTE2Myw3ICsxNjMs NyBAQAogIAogICAgZm9yICh3cml0ZV9wYXNzID0gMDsgd3JpdGVfcGFzcyA8IDI7IHdyaXRlX3Bh c3MrKykKQEAgLTQ3NCwxMSArNDcwLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCiAgICAgICAgaW50IG51bV9tMTI4ID0gMDsKICAKICAgICAg ICBpZiAoc3RydWN0X3JldHVybikKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4 Ni10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaTM4Ni10ZGVwLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9pMzg2LXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjE2LjYxNTgxNDExOCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9pMzg2LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxOTgzNDc3OCArMDEwMAot QEAgLTI2NjMsNyArMjY2Myw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv aTM4Ni10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MTA1MDI4NzkgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvaTM4Ni10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1 MTk4NjAgKzAyMDAKK0BAIC0yNjY0LDcgKzI2NjQsNyBAQAogICAgZ2RiX2J5dGUgYnVmWzRdOwog ICAgaW50IGk7CiAgICBpbnQgd3JpdGVfcGFzczsKQEAgLTQ4Nyw3ICs0ODMsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICAvKiBEZXRlcm1pbmUg dGhlIHRvdGFsIHNwYWNlIHJlcXVpcmVkIGZvciBhcmd1bWVudHMgYW5kIHN0cnVjdAogICAgICAg cmV0dXJuIGFkZHJlc3MgaW4gYSBmaXJzdCBwYXNzIChhbGxvd2luZyBmb3IgMTYtYnl0ZS1hbGln bmVkCi1AQCAtMjY3MSw3ICsyNjcxLDcgQEAKK0BAIC0yNjcyLDcgKzI2NzIsNyBAQAogIAogICAg Zm9yICh3cml0ZV9wYXNzID0gMDsgd3JpdGVfcGFzcyA8IDI7IHdyaXRlX3Bhc3MrKykKICAgICAg ewpAQCAtNDk2LDcgKzQ5Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4 Ni10ZGVwLmMKICAKICAgICAgICBpZiAoc3RydWN0X3JldHVybikKICAJewotQEAgLTI2ODgsNyAr MjY4OCw3IEBACitAQCAtMjY4OSw3ICsyNjg5LDcgQEAKICAKICAgICAgICBmb3IgKGkgPSAwOyBp IDwgbmFyZ3M7IGkrKykKICAJewpAQCAtNTA1LDcgKzUwMSw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAJICBpZiAod3JpdGVfcGFzcykKICAJICAg IHsKLUBAIC0yODk1LDcgKzI4OTUsNyBAQAorQEAgLTI4OTYsNyArMjg5Niw3IEBACiAgewogICAg c3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CiAgICBl bnVtIHR5cGVfY29kZSBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKQEAgLTUxNCw3ICs1MTAsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2kzODYtdGRlcC5jCiAgCiAgICBnZGJf YXNzZXJ0IChjb2RlID09IFRZUEVfQ09ERV9TVFJVQ1QKICAgICAgICAgICAgICAgIHx8IGNvZGUg PT0gVFlQRV9DT0RFX1VOSU9OCi1AQCAtMzY0MSw3ICszNjQxLDcgQEAKK0BAIC0zNzE4LDcgKzM3 MTgsNyBAQAogIGkzODZfY29udmVydF9yZWdpc3Rlcl9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwKICAJCQkgaW50IHJlZ251bSwgc3RydWN0IHR5cGUgKnR5cGUpCiAgewpAQCAtNTIzLDcgKzUx OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAg IC8qIFZhbHVlcyBtYXkgYmUgc3ByZWFkIGFjcm9zcyBtdWx0aXBsZSByZWdpc3RlcnMuICBNb3N0 IGRlYnVnZ2luZwogICAgICAgZm9ybWF0cyBhcmVuJ3QgZXhwcmVzc2l2ZSBlbm91Z2ggdG8gc3Bl Y2lmeSB0aGUgbG9jYXRpb25zLCBzbwotQEAgLTM2NzQsNyArMzY3NCw3IEBACitAQCAtMzc1MSw3 ICszNzUxLDcgQEAKICAJCQlpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFpbGFibGVwKQogIHsK ICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKQEAg LTUzMiw3ICs1MjgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2kzODYtdGRl cC5jCiAgCiAgICBpZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2RiYXJjaCwgcmVnbnVtKSkKICAgICAg cmV0dXJuIGkzODdfcmVnaXN0ZXJfdG9fdmFsdWUgKGZyYW1lLCByZWdudW0sIHR5cGUsIHRvLAot QEAgLTM3MTAsNyArMzcxMCw3IEBACitAQCAtMzc4Nyw3ICszNzg3LDcgQEAKICBpMzg2X3ZhbHVl X3RvX3JlZ2lzdGVyIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIGludCByZWdudW0sCiAgCQkJ c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICpmcm9tKQogIHsKQEAgLTU0MSwxMSAr NTM3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAK ICAgIGlmIChpMzg2X2ZwX3JlZ251bV9wIChnZXRfZnJhbWVfYXJjaCAoZnJhbWUpLCByZWdudW0p KQogICAgICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2lxMjAwMC10ZGVwLmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaXEyMDAwLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2lxMjAwMC10ZGVwLmMJMjAxNi0w MS0wOCAxOToxNjoxNi42MTY4MTQxMjQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyMDgzNDc4NCArMDEwMAotQEAg LTY1MSw4ICs2NTEsOSBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2lxMjAw MC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MTE1MDI4ODcgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMDUx OTg2MCArMDIwMAorQEAgLTY0Niw4ICs2NDYsOSBAQAogICAgY29uc3QgYmZkX2J5dGUgKnZhbDsK ICAgIGJmZF9ieXRlIGJ1Zls0XTsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwpAQCAtNTU3LDExICs1 NTMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pcTIwMDAtdGRlcC5jCiAg ICAvKiBVc2VkIHRvIGNvcHkgc3RydWN0IGFyZ3VtZW50cyBpbnRvIHRoZSBzdGFjay4gICovCiAg ICBDT1JFX0FERFIgc3RydWN0X3B0cjsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvbTMyci10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTMyci10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9tMzJyLXRk ZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYxNjgxNDEyNCArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9tMzJyLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyMDgzNDc4NCAr MDEwMAotQEAgLTY4Nyw3ICs2ODcsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL20zMnItdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDExNTAyODg3ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20zMnItdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcu NTIwNTE5ODYwICswMjAwCitAQCAtNjg1LDcgKzY4NSw3IEBACiAgICBDT1JFX0FERFIgcmVndmFs OwogICAgZ2RiX2J5dGUgKnZhbDsKICAgIGdkYl9ieXRlIHZhbGJ1ZltNQVhfUkVHSVNURVJfU0la RV07CkBAIC01NzAsMTAgKzU2NiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L20zMnItdGRlcC5jCiAgCiAgICAvKiBGaXJzdCBmb3JjZSBzcCB0byBhIDQtYnl0ZSBhbGlnbm1l bnQuICAqLwogICAgc3AgPSBzcCAmIH4zOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9tNjhrLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tNjhrLXRkZXAu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL202OGstdGRl cC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjE3ODE0MTI5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL202OGstdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzIwODM0Nzg0ICsw MTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTY4ay10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0NS40MTI1MDI4OTUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvbTY4ay10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAKIEBAIC0z ODIsNyArMzgyLDcgQEAKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJj aF90ZGVwIChnZGJhcmNoKTsKQEAgLTU5NiwxMCArNTkyLDEwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvbTY4ay10ZGVwLmMKICAKICAgICAgICAvKiBOb24tc2NhbGFycyBiaWdn ZXIgdGhhbiA0IGJ5dGVzIGFyZSBsZWZ0IGFsaWduZWQsIG90aGVycyBhcmUKICAJIHJpZ2h0IGFs aWduZWQuICAqLwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tODhrLXRkZXAuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tODhrLXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL204OGstdGRlcC5jCTIwMTYtMDEtMDgg MTk6MTY6MTYuNjE3ODE0MTI5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL204 OGstdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzIxODM0NzkwICswMTAwCistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTg4ay10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40 MTI1MDI4OTUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTg4ay10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0Ny41MjE1MTk4NjggKzAyMDAKIEBAIC0yNTcsMTMgKzI1NywxMyBA QAogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJl Z2NhY2hlKTsKQEAgLTYyNywxMCArNjIzLDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvbTg4ay10ZGVwLmMKICAKICAgICAgICBpZiAobTg4a19pbl9yZWdpc3Rlcl9wICh0eXBl KSkKICAJewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tZXAtdGRlcC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lcC10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9tZXAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6 MTYuNjE4ODE0MTM1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21lcC10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjE4MzQ3OTAgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9tZXAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDEzNTAyOTAz ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21lcC10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0Ny41MjE1MTk4NjggKzAyMDAKIEBAIC0yMjcyLDcgKzIyNzIsNyBAQAogIAogICAg Zm9yIChpID0gMDsgaSA8IGFyZ2M7IGkrKykKQEAgLTY0MCwxMCArNjM2LDEwIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWVwLXRkZXAuYwogIAogICAgICAgIGlmIChhcmdfbGVu ID4gTUVQX0dQUl9TSVpFKQogICAgICAgICAgewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9taXBzLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL21pcHMt dGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjI2ODE0MTc5ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI0ODM0ODA2 ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbWlwcy10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0NS40MjE1MDI5NjcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvbWlwcy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjM1MTk4ODQgKzAyMDAKIEBA IC00NTUsNyArNDU1LDcgQEAKICBtaXBzX3hmZXJfcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgIGludCByZWdfbnVtLCBp bnQgbGVuZ3RoLApAQCAtNjY0LDcgKzY2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvbWlwcy10ZGVwLmMKICAgIGlmIChtaXBzX2RlYnVnICYmIG91dCAhPSBOVUxMKQogICAg ICB7CiAgICAgICAgaW50IGk7Ci1AQCAtNDU1NCwxMyArNDU1NCwxMyBAQAorQEAgLTQ1MjksMTMg KzQ1MjksMTMgQEAKICAgICAgICBnZGJfYnl0ZSB2YWxidWZbTUFYX1JFR0lTVEVSX1NJWkVdOwog ICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwogICAgICAgIHN0cnVjdCB0 eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAtNjgx LDcgKzY3Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMK ICAKICAgICAgICAvKiBUaGUgRUFCSSBwYXNzZXMgc3RydWN0dXJlcyB0aGF0IGRvIG5vdCBmaXQg aW4gYSByZWdpc3RlciBieQogICAgICAgICAgIHJlZmVyZW5jZS4gICovCi1AQCAtNDgyOSw3ICs0 ODI5LDcgQEAKK0BAIC00ODA0LDcgKzQ4MDQsNyBAQAogIAogIHN0YXRpYyBpbnQKICBtaXBzX24z Mm42NF9mcF9hcmdfY2h1bmtfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB0eXBl ICphcmdfdHlwZSwKQEAgLTY5MCw3ICs2ODYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL21pcHMtdGRlcC5jCiAgewogICAgaW50IGk7CiAgCi1AQCAtNDg0NCw3ICs0ODQ0LDcg QEAKK0BAIC00ODE5LDcgKzQ4MTksNyBAQAogIAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTkZJ RUxEUyAoYXJnX3R5cGUpOyBpKyspCiAgICAgIHsKQEAgLTY5OSw3ICs2OTUsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgICAgICAgc3RydWN0IHR5cGUg KmZpZWxkX3R5cGU7CiAgCiAgICAgICAgLyogV2UncmUgb25seSBsb29raW5nIGF0IG5vcm1hbCBm aWVsZHMuICAqLwotQEAgLTQ4ODYsNyArNDg4Niw3IEBACitAQCAtNDg2MSw3ICs0ODYxLDcgQEAK ICAgIGludCBhcmdyZWc7CiAgICBpbnQgZmxvYXRfYXJncmVnOwogICAgaW50IGFyZ251bTsKQEAg LTcwOCw3ICs3MDQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRl cC5jCiAgICBpbnQgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29y ZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2Fk ZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKLUBAIC01MjM3LDExICs1 MjM3LDExIEBACitAQCAtNTIxMiwxMSArNTIxMiwxMSBAQAogIAkJCQk6IE1JUFNfVjBfUkVHTlVN KTsKICAJICAgZmllbGQgPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBmaWVsZCsrLCByZWdudW0gKz0g MikKICAJewpAQCAtNzI0LDcgKzcyMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvbWlwcy10ZGVwLmMKICAJICBpZiAoVFlQRV9MRU5HVEggKFRZUEVfRklFTERfVFlQRSAodHlw ZSwgZmllbGQpKSA9PSAxNikKICAJICAgIHsKICAJICAgICAgLyogQSAxNi1ieXRlIGxvbmcgZG91 YmxlIGZpZWxkIGdvZXMgaW4gdHdvIGNvbnNlY3V0aXZlCi1AQCAtNTI4Myw4ICs1MjgzLDggQEAK K0BAIC01MjU4LDggKzUyNTgsOCBAQAogIAkgIGlmIChvZmZzZXQgKyB4ZmVyID4gVFlQRV9MRU5H VEggKHR5cGUpKQogIAkgICAgeGZlciA9IFRZUEVfTEVOR1RIICh0eXBlKSAtIG9mZnNldDsKICAJ ICBpZiAobWlwc19kZWJ1ZykKQEAgLTczNSw3ICs3MzEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgCSAgbWlwc194ZmVyX3JlZ2lzdGVyIChnZGJhcmNo LCByZWdjYWNoZSwKICAJCQkgICAgICBnZGJhcmNoX251bV9yZWdzIChnZGJhcmNoKSArIHJlZ251 bSwKICAJCQkgICAgICB4ZmVyLCBCRkRfRU5ESUFOX1VOS05PV04sIHJlYWRidWYsIHdyaXRlYnVm LAotQEAgLTUzNDIsNyArNTM0Miw3IEBACitAQCAtNTMxNyw3ICs1MzE3LDcgQEAKICAgIGludCBh cmdyZWc7CiAgICBpbnQgZmxvYXRfYXJncmVnOwogICAgaW50IGFyZ251bTsKQEAgLTc0NCw3ICs3 NDAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgICBp bnQgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2Ri YXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5k X2Z1bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKLUBAIC01NDA2LDEzICs1NDA2LDEzIEBA CitAQCAtNTM4MSwxMyArNTM4MSwxMyBAQAogICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAg ICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5 cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC03NjEs NyArNzU3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwog IAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwogIAotQEAgLTU4NzAsOCArNTg3 MCw4IEBACitAQCAtNTg0Miw4ICs1ODQyLDggQEAKICAgIGludCBhcmdyZWc7CiAgICBpbnQgZmxv YXRfYXJncmVnOwogICAgaW50IGFyZ251bTsKQEAgLTc3Miw3ICs3NjgsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgZnVu Y19hZGRyID0gZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgCi1AQCAtNTkz MSwxMyArNTkzMSwxMyBAQAorQEAgLTU5MDMsMTMgKzU5MDMsMTMgQEAKICAgICAgICBjb25zdCBn ZGJfYnl0ZSAqdmFsOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwog ICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGFyZykpOwpAQCAtNzg5LDExICs3ODUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9taXBzLXRkZXAuYwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwog IAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tbjEwMzAwLXRkZXAuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tbjEwMzAwLXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTYtMDEtMDgg MTk6MTY6MTYuNjI3ODE0MTg1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21u MTAzMDAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI0ODM0ODA2ICswMTAwCi1AQCAtMTIy Nyw3ICsxMjI3LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tbjEwMzAw LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyMjUwMjk3NiArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNDUx OTg5MiArMDIwMAorQEAgLTEyMjUsNyArMTIyNSw3IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBjb25zdCBpbnQgcHVz aF9zaXplID0gcmVnaXN0ZXJfc2l6ZSAoZ2RiYXJjaCwgRV9QQ19SRUdOVU0pOwogICAgaW50IHJl Z3NfdXNlZDsKQEAgLTgwMiwxMSArNzk4LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvbW4xMDMwMC10ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQgPSAwOwogICAgaW50IGFy Z251bTsKICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL210LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tdC10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9tdC10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoxNi42Mjg4MTQxOTAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvbXQtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI0ODM0ODA2ICswMTAw Ci1AQCAtNzgxLDkgKzc4MSw5IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv bXQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDIzNTAyOTg0ICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL210LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNDUxOTg5 MiArMDIwMAorQEAgLTc4MCw5ICs3ODAsOSBAQAogICAgZ2RiX2J5dGUgYnVmW01UX01BWF9TVFJV Q1RfU0laRV07CiAgICBpbnQgYXJncmVnID0gTVRfMVNUX0FSR1JFRzsKICAgIGludCBzcGxpdF9w YXJhbV9sZW4gPSAwOwpAQCAtODE4LDEwICs4MTQsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9tdC10ZGVwLmMKICAgIGludCBpLCBqOwogIAogICAgLyogRmlyc3QgaGFuZGxl IGhvd2V2ZXIgbWFueSBhcmdzIHdlIGNhbiBmaXQgaW50byBNVF8xU1RfQVJHUkVHIHRocnUKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcHBjLXN5c3YtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3BwYy1zeXN2LXRkZXAuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjE2LjYyOTgxNDE5NiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9wcGMt c3lzdi10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjU4MzQ4MTIgKzAxMDAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0NS40MjQ1MDI5OTIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcHBjLXN5 c3YtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODkyICswMjAwCiBAQCAtNjYsNyAr NjYsNyBAQAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3Jk ZXIgKGdkYmFyY2gpOwogICAgaW50IG9wZW5jbF9hYmkgPSBwcGNfc3lzdl91c2Vfb3BlbmNsX2Fi aSAodmFsdWVfdHlwZSAoZnVuY3Rpb24pKTsKQEAgLTg2NiwxMCArODYyLDEwIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcHBjLXN5c3YtdGRlcC5jCiAgCiAgICAvKiBFbmZvcmNl IGFsaWdubWVudCBvZiBzdGFjayBsb2NhdGlvbiwgaWYgcmVxdWVzdGVkLiAgKi8KICAgIGlmIChh bGlnbiA+IHRkZXAtPndvcmRzaXplKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9y bDc4LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ybDc4LXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3JsNzgtdGRlcC5j CTIwMTYtMDEtMDggMTk6MTY6MTYuNjI5ODE0MTk2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3JsNzgtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI1ODM0ODEyICswMTAw CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcmw3OC10ZGVwLmMJMjAxNi0wNy0x NiAxNDozNTo0NS40MjQ1MDI5OTIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv cmw3OC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjU1MTk5MDAgKzAyMDAKIEBAIC0xMzM2 LDggKzEzMzYsOCBAQAogICAgZm9yIChpID0gbmFyZ3MgLSAxOyBpID49IDA7IGktLSkKICAgICAg ewpAQCAtODgxLDEwICs4NzcsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9y bDc4LXRkZXAuYwogIAogICAgICAgIHNwIC09IGNvbnRhaW5lcl9sZW47CiAgICAgICAgd3JpdGVf bWVtb3J5IChybDc4X21ha2VfZGF0YV9hZGRyZXNzIChzcCksCi1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NjAxMDYub3JpZy9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MzA4 MTQyMDIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcnM2MDAwLWFpeC10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjY4MzQ4MTcgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQy NTUwMzAwMCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yczYwMDAtYWl4LXRk ZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNTUxOTkwMCArMDIwMAogQEAgLTE4Niw5ICsxODYs OSBAQAogICAgc3RydWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJj aCk7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAo Z2RiYXJjaCk7CkBAIC04OTcsNyArODkzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9yczYwMDAtYWl4LXRkZXAuYwogICAgZ2RiX2J5dGUgdG1wX2J1ZmZlcls1MF07CiAgICBp bnQgZl9hcmdubyA9IDA7CQkvKiBjdXJyZW50IGZsb2F0aW5nIHBvaW50IGFyZ25vICovCiAgICBp bnQgd29yZHNpemUgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gpLT53b3Jkc2l6ZTsKLUBAIC0zMjEs NyArMzIxLDcgQEAKK0BAIC0zMTksNyArMzE5LDcgQEAKICAKICAgIGlmICgoYXJnbm8gPCBuYXJn cykgfHwgYXJnYnl0ZXMpCiAgICAgIHsKQEAgLTkwNiwxMSArOTAyLDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKICAKICAgICAgICBpZiAoYXJn Ynl0ZXMpCiAgCXsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvczM5MC1saW51eC10 ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvczM5MC1saW51eC10ZGVwLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9zMzkwLWxpbnV4 LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzMjgxNDIxMyArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMy ODgzNDgyOSArMDEwMAotQEAgLTI5ODEsNyArMjk4MSw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvczM5MC1saW51eC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40Mjc1 MDMwMTYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvczM5MC1saW51eC10ZGVw LmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjY1MTk5MDggKzAyMDAKK0BAIC0zMTI1LDcgKzMxMjUs NyBAQAogIC8qIERldGVybWluZSB3aGV0aGVyIE4gaXMgYSBwb3dlciBvZiB0d28uICAqLwogIAog IHN0YXRpYyBpbnQKQEAgLTkxOSw3ICs5MTUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL3MzOTAtbGludXgtdGRlcC5jCiAgewogICAgcmV0dXJuIG4gJiYgKChuICYgKG4gLSAx KSkgPT0gMCk7CiAgfQotQEAgLTMwMzgsNyArMzAzOCw3IEBACitAQCAtMzE4Miw3ICszMTgyLDcg QEAKICAJCSBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciwgaW50IGlzX3VubmFtZWQpCiAgewog ICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsK QEAgLTkyOCwxMCArOTI0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvczM5 MC1saW51eC10ZGVwLmMKICAgIGludCB3cml0ZV9tb2RlID0gYXMtPnJlZ2NhY2hlICE9IE5VTEw7 CiAgCiAgICBpZiAoczM5MF9mdW5jdGlvbl9hcmdfZmxvYXQgKHR5cGUpKQotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi9zY29yZS10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvc2NvcmUtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAx MDYub3JpZy9nZGIvc2NvcmUtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjMzODE0MjE4ICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Njb3JlLXRkZXAuYwkyMDE2LTAxLTA4 IDE5OjE2OjIwLjMyODgzNDgyOSArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL3Njb3JlLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyODUwMzAyNCArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zY29yZS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0 Ny41Mjc1MTk5MTYgKzAyMDAKIEBAIC01MTQsNyArNTE0LDcgQEAKICAgIGVudW0gYmZkX2VuZGlh biBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGludCBhcmdu dW07CkBAIC05NDEsMTAgKzkzNywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3Njb3JlLXRkZXAuYwogICAgQ09SRV9BRERSIHN0YWNrX29mZnNldCA9IDA7CiAgICBDT1JFX0FE RFIgYWRkciA9IDA7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NoLXRkZXAu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zaC10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9zaC10ZGVwLmMJMjAxNi0wMS0wOCAx OToxNjoxNi42MzU4MTQyMzAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2gt dGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI5ODM0ODM0ICswMTAwCistLS0gZ2RiLTcuMTEu NTAuMjAxNjA3MTYub3JpZy9nZGIvc2gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDI5NTAz MDMyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoLXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ3LjUyNzUxOTkxNiArMDIwMAogQEAgLTgwNSw3ICs4MDUsNyBAQAogIHN0YXRp YyBpbnQKICBzaF91c2Vfc3RydWN0X2NvbnZlbnRpb24gKGludCByZW5lc2FzX2FiaSwgc3RydWN0 IHR5cGUgKnR5cGUpCkBAIC05ODMsMjAgKzk3OSwyMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3NoLXRkZXAuYwogICAgaW50IHBhc3Nfb25fc3RhY2sgPSAwOwogICAgaW50IGxh c3RfcmVnX2FyZyA9IElOVF9NQVg7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3NoNjQtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoNjQtdGRlcC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc2g2NC10ZGVw LmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MzU4MTQyMzAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvc2g2NC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjk4MzQ4MzQgKzAx MDAKLUBAIC0xMDU2LDcgKzEwNTYsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL3NoNjQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDMwNTAzMDQwICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NoNjQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcu NTI4NTE5OTI1ICswMjAwCitAQCAtMTA2MCw3ICsxMDYwLDcgQEAKICAJCSAgICAgIENPUkVfQURE UiBzdHJ1Y3RfYWRkcikKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFy Y2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAtICBpbnQgc3RhY2tfb2Zmc2V0LCBzdGFja19hbGxv YzsKICsgIExPTkdFU1Qgc3RhY2tfb2Zmc2V0LCBzdGFja19hbGxvYzsKICAgIGludCBpbnRfYXJn cmVnOwotICAgaW50IGZsb2F0X2FyZ3JlZzsKLSAgIGludCBkb3VibGVfYXJncmVnOwotQEAgLTEw NjcsNyArMTA2Nyw3IEBACisgICBpbnQgZmxvYXRfYXJnX2luZGV4ID0gMDsKKyAgIGludCBkb3Vi bGVfYXJnX2luZGV4ID0gMDsKK0BAIC0xMDY5LDcgKzEwNjksNyBAQAogICAgQ09SRV9BRERSIHJl Z3ZhbDsKICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSB2YWxidWZbOF07CkBA IC0xMDA1LDEwICsxMDAxLDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2g2 NC10ZGVwLmMKICAgIGludCBhcmdyZWdfc2l6ZTsKICAgIGludCBmcF9hcmdzWzEyXTsKICAKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3BhcmMtdGRlcC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3NwYXJjLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYz NjgxNDIzNSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zcGFyYy10ZGVwLmMJ MjAxNi0wMS0wOCAxOToxNjoyMC4zMzA4MzQ4NDAgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9zcGFyYy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzE1MDMwNDgg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3BhcmMtdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDcuNTI4NTE5OTI1ICswMjAwCiBAQCAtNTI1LDcgKzUyNSw3IEBACiAgICBmb3Ig KGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewpAQCAtMTAxOCwxMCArMTAxNCwxMCBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwYXJjLXRkZXAuYwogIAogICAgICAgIGlm IChzcGFyY19zdHJ1Y3R1cmVfb3JfdW5pb25fcCAodHlwZSkKICAJICB8fCAoc3BhcmNfZmxvYXRp bmdfcCAodHlwZSkgJiYgbGVuID09IDE2KQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi9zcGFyYzY0LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYzY0 LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3Nw YXJjNjQtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjM3ODE0MjQxICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwYXJjNjQtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAu MzMwODM0ODQwICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3BhcmM2 NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzI1MDMwNTYgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjg1 MTk5MjUgKzAyMDAKIEBAIC02MzYsNyArNjM2LDggQEAKICAKICBzdGF0aWMgdm9pZApAQCAtMTA3 NywxMCArMTA3MywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwYXJjNjQt dGRlcC5jCiAgICAgICAgaW50IHJlZ251bSA9IC0xOwogICAgICAgIGdkYl9ieXRlIGJ1ZlsxNl07 CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwdS10ZGVwLmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3B1LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42 Mzg4MTQyNDYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3B1LXRkZXAuYwky MDE2LTAxLTA4IDE5OjE2OjIwLjMzMTgzNDg0NSArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYw NzE2Lm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MzM1MDMwNjQgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc3B1LXRkZXAuYwkyMDE2LTA3LTE2IDE0 OjM1OjQ3LjUyOTUxOTkzMiArMDIwMAogQEAgLTE0MjksNyArMTQyOSw3IEBACiAgICAgICAgc3Ry dWN0IHZhbHVlICphcmcgPSBhcmdzW2ldOwogICAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMDk5LDExICsxMDk1LDExIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3B1LXRkZXAuYwogIAkgIGludCBwcmVmZXJy ZWRfc2xvdDsKICAJICAKICAJICBpZiAoc3B1X3NjYWxhcl92YWx1ZV9wICh0eXBlKSkKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGljNngtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3RpYzZ4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2Lm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzOTgx NDI1MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWM2eC10ZGVwLmMJMjAx Ni0wMS0wOCAxOToxNjoyMC4zMzI4MzQ4NTEgKzAxMDAKLUBAIC04OTUsNyArODk1LDcgQEAKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90aWM2eC10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0NS40MzM1MDMwNjQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGlj NngtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI5NTE5OTMyICswMjAwCitAQCAtODkyLDcg Kzg5Miw3IEBACiAgICBpbnQgYXJncmVnID0gMDsKICAgIGludCBhcmdudW07CiAgICBpbnQgc3Rh Y2tfb2Zmc2V0ID0gNDsKQEAgLTExMTIsNyArMTEwOCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvdGljNngtdGRlcC5jCiAgICBDT1JFX0FERFIgZnVuY19hZGRyID0gZmluZF9m dW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9v cmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBzdHJ1Y3QgdHlwZSAqZnVu Y190eXBlID0gdmFsdWVfdHlwZSAoZnVuY3Rpb24pOwotQEAgLTkyOSw3ICs5MjksNyBAQAorQEAg LTkyNiw3ICs5MjYsNyBAQAogICAgLyogTm93IG1ha2Ugc3BhY2Ugb24gdGhlIHN0YWNrIGZvciB0 aGUgYXJncy4gICovCiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5hcmdzOyBhcmdudW0r KykKICAgICAgewpAQCAtMTEyMSw3ICsxMTE3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi90aWM2eC10ZGVwLmMKICAgICAgICBpZiAoYXJnbnVtID49IDEwIC0gYXJncmVnKQog IAlyZWZlcmVuY2VzX29mZnNldCArPSBsZW47CiAgICAgICAgc3RhY2tfb2Zmc2V0ICs9IGxlbjsK LUBAIC05NDgsNyArOTQ4LDcgQEAKK0BAIC05NDUsNyArOTQ1LDcgQEAKICAgICAgICBjb25zdCBn ZGJfYnl0ZSAqdmFsOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqYXJnID0gYXJnc1thcmdudW1dOwog ICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGFyZykpOwpAQCAtMTEzMCw3ICsxMTI2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi90aWM2eC10ZGVwLmMKICAgICAgICBlbnVtIHR5cGVfY29kZSB0eXBlY29kZSA9IFRZUEVf Q09ERSAoYXJnX3R5cGUpOwogIAogICAgICAgIHZhbCA9IHZhbHVlX2NvbnRlbnRzIChhcmcpOwot QEAgLTExMDgsNyArMTEwOCw4IEBACitAQCAtMTEwNSw3ICsxMTA1LDggQEAKICAJICAgIH0KICAJ ICBlbHNlCiAgCSAgICBpbnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLApAQCAtMTE0 MCwyMyArMTEzNiwyMyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpYzZ4LXRk ZXAuYwogIAogIAkgIGFkZHIgPSBzcCArIHN0YWNrX29mZnNldDsKICAJICB3cml0ZV9tZW1vcnkg KGFkZHIsIHZhbCwgbGVuKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGlsZWd4 LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90aWxlZ3gtdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdGlsZWd4LXRkZXAu YwkyMDE2LTAxLTA4IDE5OjE2OjE2LjY0MDgxNDI1NyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzMyODM0ODUxICsw MTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdGlsZWd4LXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ1LjQzNDUwMzA3MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTMwNTE5OTQxICswMjAwCiBA QCAtMjg4LDcgKzI4OCw3IEBACiAgICBDT1JFX0FERFIgc3RhY2tfZGVzdCA9IHNwOwogICAgaW50 IGFyZ3JlZyA9IFRJTEVHWF9SMF9SRUdOVU07CiAgICBpbnQgaSwgajsKLS0gIGludCB0eXBlbGVu LCBzbGFja2xlbiwgYWxpZ25sZW47Ci0rICBMT05HRVNUIHR5cGVsZW4sIHNsYWNrbGVuLCBhbGln bmxlbjsKKy0gIGludCB0eXBlbGVuLCBzbGFja2xlbjsKKysgIExPTkdFU1QgdHlwZWxlbiwgc2xh Y2tsZW47CiAgICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgZm91cl96ZXJvX3dvcmRzWzE2XSA9IHsg MCB9OwogIAogICAgLyogSWYgc3RydWN0X3JldHVybiBpcyAxLCB0aGVuIHRoZSBzdHJ1Y3QgcmV0 dXJuIGFkZHJlc3Mgd2lsbAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92ODUwLXRk ZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92ODUwLXRkZXAuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTYt MDEtMDggMTk6MTY6MTYuNjQwODE0MjU3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3Y4NTAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzMyODM0ODUxICswMTAwCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvdjg1MC10ZGVwLmMJMjAxNi0wNy0xNiAxNDoz NTo0NS40MzQ1MDMwNzIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdjg1MC10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKIEBAIC0xMDE5LDcgKzEw MTksNyBAQAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3Jk ZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ3JlZzsKQEAgLTExNzUsMTAgKzExNzEsMTAgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92ODUwLXRkZXAuYwogICAgICAgIGdkYl9ieXRl ICp2YWw7CiAgICAgICAgZ2RiX2J5dGUgdmFsYnVmW3Y4NTBfcmVnX3NpemVdOwogIAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YXgtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3ZheC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2 MDEwNi5vcmlnL2dkYi92YXgtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjQxODE0MjYzICsw MTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wMS0wOCAx OToxNjoyMC4zMzM4MzQ4NTYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi92YXgtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDM1NTAzMDgwICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1 MTk5NDEgKzAyMDAKIEBAIC0xMTEsNyArMTExLDcgQEAKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKICAgIGVudW0gYmZkX2VuZGlhbiBi eXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAgLTExOTcsMTAgKzEx OTMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YXgtdGRlcC5jCiAgCiAg ICAgICAgc3AgLT0gKGxlbiArIDMpICYgfjM7CiAgICAgICAgY291bnQgKz0gKGxlbiArIDMpIC8g NDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIveHN0b3JteTE2LXRkZXAuYworSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi94c3Rvcm15MTYtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIveHN0b3JteTE2LXRkZXAuYwkyMDE2 LTAxLTA4IDE5OjE2OjE2LjY0MTgxNDI2MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzMzODM0ODU2ICswMTAw CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIveHN0b3JteTE2LXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ1LjQzNTUwMzA4MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTMwNTE5OTQxICswMjAw CiBAQCAtMjMzLDggKzIzMyw5IEBACiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdk YmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBDT1JFX0FERFIgc3RhY2tfZGVzdCA9IHNw OwpAQCAtMTIxMywxMCArMTIwOSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3hzdG9ybXkxNi10ZGVwLmMKICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSBi dWZbeHN0b3JteTE2X3BjX3NpemVdOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk Yi94dGVuc2EtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3h0ZW5zYS10 ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi94dGVu c2EtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjQzODE0Mjc0ICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzQ4 MzQ4NjIgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi94dGVuc2EtdGRl cC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDM3NTAzMDk2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzE1MTk5NDkg KzAyMDAKIEBAIC0xNjM4LDggKzE2MzgsNyBAQAogIAogICAgICAgIGlmIChsZW4gPiAoY2FsbHNp emUgPiA4ID8gOCA6IDE2KSkKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjVv ZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTI1b2YyNS5wYXRjaAppbmRleCAyMGRi OTE1Li5lZjVlMDQ4IDEwMDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjVvZjI1LnBh dGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gKQEAgLTQ3LDExICs0 NywxMSBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Zjc3 LWJvdW5kcy5wYXRjaAogCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5o CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0xMS0wMiAyMToy NToxNC4yMzMxNjEwOTcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5n LmgJMjAxNS0xMS0wMiAyMToyNToyMi40MDQyMTQ4NjAgKzAxMDAKLUBAIC02Miw5ICs2Miw5IEBA IHN0cnVjdCBjb21tb25fYmxvY2sKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9m LWxhbmcuaAkyMDE2LTA3LTE2IDEwOjU2OjExLjY4Mjc2MjcyMiArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi9mLWxhbmcuaAkyMDE2LTA3LTE2IDEwOjU2OjE1LjU1NDc5MzcwNCAr MDIwMAorQEAgLTQ5LDkgKzQ5LDkgQEAKICAgIHN0cnVjdCBzeW1ib2wgKmNvbnRlbnRzWzFdOwog IH07CiAgCkBAIC02MywzOCArNjMsMzggQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9mLWxhbmcuaAogIAogIGV4dGVybiB2b2lkIGY3N19nZXRfZHluYW1pY19hcnJheV9sZW5ndGgg KHN0cnVjdCB0eXBlICopOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXR5 cGVwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2YtdHlwZXByaW50LmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mLXR5cGVwcmlu dC5jCTIwMTUtMTEtMDIgMjE6MjU6MTQuMjM0MTYxMTA0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyNToyMi40MDQyMTQ4NjAg KzAxMDAKLUBAIC0xNzEsNyArMTcxLDcgQEAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChz dHJ1Y3QgdHlwZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2YtdHlwZXByaW50 LmMJMjAxNi0wNy0xNiAxMDo1NjoxMS42ODI3NjI3MjIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU2OjQzLjc5NTAxOTY2MCAr MDIwMAorQEAgLTE0Nyw3ICsxNDcsNyBAQAogIAkJCSAgICAgaW50IHNob3csIGludCBwYXNzZWRf YV9wdHIsIGludCBkZW1hbmdsZWRfYXJncywKLSAJCQkgICAgIGludCBhcnJheXByaW50X3JlY3Vy c2VfbGV2ZWwpCisgCQkJICAgICBpbnQgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsLCBpbnQgcHJp bnRfcmFua19vbmx5KQogIHsKIC0gIGludCB1cHBlcl9ib3VuZCwgbG93ZXJfYm91bmQ7CiArICBM T05HRVNUIHVwcGVyX2JvdW5kLCBsb3dlcl9ib3VuZDsKICAKICAgIC8qIE5vIHN0YXRpYyB2YXJp YWJsZXMgYXJlIHBlcm1pdHRlZCBhcyBhbiBlcnJvciBjYWxsIG1heSBvY2N1ciBkdXJpbmcKICAg ICAgIGV4ZWN1dGlvbiBvZiB0aGlzIGZ1bmN0aW9uLiAgKi8KLUBAIC0yMDQsNyArMjA0LDcgQEAg Zl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQotIAotICAgICAgICAgICBs b3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7Ci0gICAgICAgICAgIGlmIChs b3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLwotLSAgICAgICAgICAgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5kKTsKLSsgICAgICAgICAg ICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlczoiLCBwbG9uZ2VzdCAobG93ZXJfYm91bmQp KTsKK0BAIC0xOTQsNyArMTk0LDcgQEAKKyAJeworIAkgIGxvd2VyX2JvdW5kID0gZjc3X2dldF9s b3dlcmJvdW5kICh0eXBlKTsKKyAJICBpZiAobG93ZXJfYm91bmQgIT0gMSkJLyogTm90IHRoZSBk ZWZhdWx0LiAgKi8KKy0JICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2Vy X2JvdW5kKTsKKysJICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVzOiIsIHBsb25nZXN0 IChsb3dlcl9ib3VuZCkpOwogIAotICAgICAgICAgICAvKiBNYWtlIHN1cmUgdGhhdCwgaWYgd2Ug aGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCi0gICAgICAgICAgICAgIHByaW50IG91dCBh IHdhcm5pbmcgYW5kIHByaW50IHRoZSB1cHBlcmJvdW5kIGFzICcqJy4gICovCi1AQCAtMjE0LDcg KzIxNCw3IEBAIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUKLSAgICAg ICAgICAgZWxzZQotICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgIHVwcGVyX2JvdW5kID0g Zjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKLS0gICAgICAgICAgICAgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJfYm91bmQpOwotKyAgICAgICAgICAgICAgZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiJXMiLCBwbG9uZ2VzdCAodXBwZXJfYm91bmQpKTsKLSAgICAgICAg ICAgICB9CisgCSAgLyogTWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhhdmUgYW4gYXNzdW1lZCBzaXpl IGFycmF5LCB3ZQorIAkgICAgIHByaW50IG91dCBhIHdhcm5pbmcgYW5kIHByaW50IHRoZSB1cHBl cmJvdW5kIGFzICcqJy4gICovCitAQCAtMjA0LDcgKzIwNCw3IEBACisgCSAgZWxzZQorIAkgICAg eworIAkgICAgICB1cHBlcl9ib3VuZCA9IGY3N19nZXRfdXBwZXJib3VuZCAodHlwZSk7CistCSAg ICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJfYm91bmQpOworKwkgICAg ICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlcyIsIHBsb25nZXN0ICh1cHBlcl9ib3VuZCkp OworIAkgICAgfQorIAl9CiAgCi0gICAgICAgICAgIGlmIChUWVBFX0NPREUgKFRZUEVfVEFSR0VU X1RZUEUgKHR5cGUpKSAhPSBUWVBFX0NPREVfQVJSQVkpCi1AQCAtMjgzLDcgKzI4Myw3IEBAIHZv aWQKK0BAIC0yNzYsNyArMjc2LDcgQEAKICBmX3R5cGVfcHJpbnRfYmFzZSAoc3RydWN0IHR5cGUg KnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBzaG93LAogIAkJICAgaW50IGxldmVs KQogIHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2YtdHlwZXByaW50LmMKICAgIGludCBpbmRleDsKICAKICAgIFFVSVQ7Ci1AQCAtMzY1LDcgKzM2 NSw3IEBAIGZfdHlwZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3QKK0BAIC0zNTgs NyArMzU4LDcgQEAKICAgICAgICBlbHNlCiAgCXsKICAJICB1cHBlcl9ib3VuZCA9IGY3N19nZXRf dXBwZXJib3VuZCAodHlwZSk7CkBAIC0xMTIsMTEgKzExMiwxMSBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2YtdHlwZXByaW50LmMKICAJfQogICAgICAgIGJyZWFrOwogIAotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvZi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjU6MTQuMjM0 MTYxMTA0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwky MDE1LTExLTAyIDIxOjI1OjIyLjQwNTIxNDg2NyArMDEwMAotQEAgLTQzLDcgKzQzLDcgQEAgTE9O R0VTVCBmNzdfYXJyYXlfb2Zmc2V0X3RibFtNQVhfRk9SVFJBTgorLS0tIGdkYi03LjExLjUwLjIw MTYwNjMwLm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU2OjExLjY4Mjc2Mjcy MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXZhbHByaW50LmMJMjAxNi0w Ny0xNiAxMDo1NjoxNS41NTQ3OTM3MDQgKzAyMDAKK0BAIC00Myw3ICs0Myw3IEBACiAgLyogQXJy YXkgd2hpY2ggaG9sZHMgb2Zmc2V0cyB0byBiZSBhcHBsaWVkIHRvIGdldCBhIHJvdydzIGVsZW1l bnRzCiAgICAgZm9yIGEgZ2l2ZW4gYXJyYXkuICBBcnJheSBhbHNvIGhvbGRzIHRoZSBzaXplIG9m IGVhY2ggc3ViYXJyYXkuICAqLwogIApAQCAtMTI1LDcgKzEyNSw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCiAgZjc3X2dldF9sb3dlcmJvdW5kIChzdHJ1 Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpZiAoVFlQRV9BUlJBWV9MT1dFUl9CT1VORF9JU19VTkRF RklORUQgKHR5cGUpKQotQEAgLTUyLDcgKzUyLDcgQEAgZjc3X2dldF9sb3dlcmJvdW5kIChzdHJ1 Y3QgdHlwZSAqdHlwZSkKK0BAIC01Miw3ICs1Miw3IEBACiAgICByZXR1cm4gVFlQRV9BUlJBWV9M T1dFUl9CT1VORF9WQUxVRSAodHlwZSk7CiAgfQogIAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtbGF6eXZh bHVlLnBhdGNoCmluZGV4IDMxOTc4ZWMuLjgwMjVlMmQgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxh enl2YWx1ZS5wYXRjaApAQCAtMSwxOSArMSw3IEBACi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL3ZhbHVlLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyMi5vcmln L2dkYi92YWx1ZS5jCTIwMTUtMTAtMjQgMjM6MTc6MDQuMDQyMTQzNjI4ICswMjAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3ZhbHVlLmMJMjAxNS0xMC0yNCAyMzoxNzoyNy42ODczMDA2 ODkgKzAyMDAKLUBAIC05MzQsNyArOTM0LDYgQEAgYWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0 IHR5cGUgKnR5cGUpCi0gICAgICBkZXNjcmlwdGlvbiBjb3JyZWN0bHkuICAqLwotICAgY2hlY2tf dHlwZWRlZiAodHlwZSk7Ci0gCi0tICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKFRZUEVf TEVOR1RIICh0eXBlKSk7Ci0gICB2YWwgPSBYQ05FVyAoc3RydWN0IHZhbHVlKTsKLSAgIHZhbC0+ Y29udGVudHMgPSBOVUxMOwotICAgdmFsLT5uZXh0ID0gYWxsX3ZhbHVlczsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRi aXQuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5leHAJMjAxNS0xMC0y NCAyMzoxNzowNC4wNDIxNDM2MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCTIwMTYtMDctMDMgMTU6 MDA6NTcuNjE3MzQ3ODUwICswMjAwCiBAQCAtMCwwICsxLDU5IEBACiArIyBUaGlzIHRlc3RjYXNl IGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtNDUsOCArMzMsOCBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0 LXR5cGVzLTY0Yml0LmV4cAogKwogKyMgVGVzdCA2NC1iaXQgZmlsZSBmaXJzdCBhcyBpdCBpcyBu b3QgY29tcGlsZWQgc28gaXRzIGNvbXBpbGF0aW9uIG5ldmVyIGZhaWxzLgogKwotK3NldCBmaWxl NjRiaXRiejJ1dSAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LTY0Yml0LmJ6Mi51dQot K3NldCBmaWxlNjRiaXQgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS02NGJpdAorK3Nl dCBmaWxlNjRiaXRiejJ1dSAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LmJ6Mi51dQor K3NldCBmaWxlNjRiaXQgJHtvYmpkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfQogKwogK2lmIHtb Y2F0Y2ggInN5c3RlbSBcInV1ZGVjb2RlIC1vIC0gJHtmaWxlNjRiaXRiejJ1dX0gfCBiemlwMiAt ZGMgPiR7ZmlsZTY0Yml0fVwiIl0gIT0gMH0gewogKyAgICB1bnRlc3RlZCAiZmFpbGVkIHV1ZGVj b2RlIG9yIGJ6aXAyIgpAQCAtNjAsNyArNDgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAogKwogK2Ns ZWFuX3Jlc3RhcnQgJHtmaWxlNjRiaXR9CiArCi0rI2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3Rpbmcg JHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9LTY0Yml0ICRzcmNmaWxlMiB7bm9kZWJ1Z31dIH0g eworKyNpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxl fSAkc3JjZmlsZTIge25vZGVidWd9XSB9IHsKICsjICAgIHJldHVybiAtMQogKyN9CiArCkBAIC03 NCwxMCArNjIsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5leHAKICt9CiArCiArdGVzdCAibmF0aXZlIgot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2Vz dC10eXBlcy02NGJpdC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYwkyMDE1 LTEwLTI0IDIzOjE3OjA0LjA0MjE0MzYyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5jCTIwMTYtMDctMDMg MTU6MDA6NTcuNjE4MzQ3ODU5ICswMjAwCiBAQCAtMCwwICsxLDI4IEBACiArLyogVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTEwNywxMCArOTUs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv bG9uZ2VzdC10eXBlcy02NGJpdC5jCiArewogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJp dC5TCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9s b25nZXN0LXR5cGVzLTY0Yml0LlMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuUwkyMDE1LTEwLTI0IDIzOjE3 OjA0LjA0MjE0MzYyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5TCTIwMTYtMDctMDMgMTU6MDA6NTcuNjE4 MzQ3ODU5ICswMjAwCiBAQCAtMCwwICsxLDI0OSBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFy dCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0zNjEsMTAgKzM0OSwxMCBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5 cGVzLTY0Yml0LlMKICsJLnN0cmluZwkiY2hhciIKICsJLmlkZW50CSJHQ0M6IChHTlUpIDQuNy4z IDIwMTIxMTA5IChwcmVyZWxlYXNlKSIKICsJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBw cm9nYml0cwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvbG9uZ2VzdC10eXBlcy02NGJpdC5iejIudXUKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYnoyLnV1CiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0 LXR5cGVzLTY0Yml0LmJ6Mi51dQkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0MjE0MzYyOCArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10 eXBlcy02NGJpdC5iejIudXUJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTgzNDc4NTkgKzAyMDAKIEBA IC0wLDAgKzEsNjcgQEAKICtiZWdpbiA3NTUgZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5i ejIKICtNMEVJSC4zJSE2MjkzNjwnTiNPSGAiRy9fX19fX19fX15fX19fX18/X1lfX19fX18vL103 U1FENSdeL18lCgpkaWZmIC0tZ2l0IGEvZ2RiLXRlc3RzdWl0ZS1weS11bndpbmQtbTMyLnBhdGNo IGIvZ2RiLXRlc3RzdWl0ZS1weS11bndpbmQtbTMyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjcxYTRhNzQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdGVzdHN1aXRl LXB5LXVud2luZC1tMzIucGF0Y2gKQEAgLTAsMCArMSw1NCBAQAoraHR0cDovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAxODAuaHRtbAorU3ViamVjdDogW3Rlc3Rz dWl0ZSBwYXRjaF0gU2tpcCBweS11bndpbmQuZXhwIG9uIHg4Nl82NCAtbTMyCisKKworLS12a29n cU9mMnNIVjdWblBkCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkK K0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZQorCitIaSwKKworKGdkYikgc291cmNlIC9ob21l L2prcmF0b2NoL3JlZGhhdC9nZGItY2xlYW4vZ2RiL3Rlc3RzdWl0ZS9vdXRwdXRzL2dkYi5weXRo b24vcHktdW53aW5kL3B5LXVud2luZC5weV5NCitQeXRob24gc2NyaXB0IGltcG9ydGVkXk0KK1B5 dGhvbiBFeGNlcHRpb24gPHR5cGUgJ2V4Y2VwdGlvbnMuVmFsdWVFcnJvcic+IEJhZCByZWdpc3Rl cjogXk0KKyhnZGIpIEZBSUw6IGdkYi5weXRob24vcHktdW53aW5kLmV4cDogaW1wb3J0IHB5dGhv biBzY3JpcHRzCisKK2NsYXNzIFRlc3RVbndpbmRlcihVbndpbmRlcik6CisgICAgQU1ENjRfUkJQ ID0gNgorICAgIEFNRDY0X1JTUCA9IDcKKyAgICBBTUQ2NF9SSVAgPSAxNgorCitUaGlzIHdhcyBh bHJlYWR5IGRpc2N1c3NlZCBoZXJlOgorCVJlOiBbdGVzdHN1aXRlIHBhdGNoXSBGaXggZ2RiLmJ0 cmFjZS90YWlsY2FsbC1vbmx5LmV4cCBlcnJvcnMgb24geDg2XzY0LW0zMgorCWh0dHBzOi8vc291 cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wNC9tc2cwMDIyMi5odG1sCisJTWVzc2Fn ZS1JRDogPDIwMTYwNDExMTk1NTM3LkdBMjIyOTlAaG9zdDEuamFua3JhdG9jaHZpbC5uZXQ+Citi dXQgbm8gR0RCIG1haW50YWluZXIgZ2F2ZSBhbiBhbnN3ZXIgaG93IHRvIHJ1biB0ZXN0c3VpdGUg aW4gY3Jvc3MtYXJjaCBtb2RlLgorCisKK0phbgorCistLXZrb2dxT2Yyc0hWN1ZuUGQKK0NvbnRl bnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlv bjogaW5saW5lOyBmaWxlbmFtZT0xCisKK2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCisyMDE2LTA3 LTE3ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CisKKwkqIGdk Yi5weXRob24vcHktdW53aW5kLmV4cDogVGVzdCBhbHNvICFbaXNfbHA2NF90YXJnZXRdLgorCitk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXVud2luZC5leHAgYi9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktdW53aW5kLmV4cAoraW5kZXggNTE3MmEwMy4uZTMxYTQ3 MiAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS11bndpbmQuZXhwCisr KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdW53aW5kLmV4cAorQEAgLTI4LDcgKzI4 LDcgQEAgaWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0Zmls ZX0gJHtzcmNmaWxlfV0gfSB7CisgaWYgeyBbc2tpcF9weXRob25fdGVzdHNdIH0geyBjb250aW51 ZSB9CisgCisgIyBUaGlzIHRlc3QgcnVucyBvbiBhIHNwZWNpZmljIHBsYXRmb3JtLgorLWlmIHsg ISBbaXN0YXJnZXQgeDg2XzY0LSpdfSB7IGNvbnRpbnVlIH0KKytpZiB7ICFbaXN0YXJnZXQgeDg2 XzY0LSotKiBdIHx8ICFbaXNfbHA2NF90YXJnZXRdIH0geyBjb250aW51ZSB9CisgCisgIyBUaGUg Zm9sbG93aW5nIHRlc3RzIHJlcXVpcmUgZXhlY3V0aW9uLgorIAorCistLXZrb2dxT2Yyc0hWN1Zu UGQtLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXRlc3RzdWl0ZS1zZWxmdGVzdC1jeHgucGF0Y2ggYi9n ZGItdGVzdHN1aXRlLXNlbGZ0ZXN0LWN4eC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi40YWIzZjNhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXRlc3RzdWl0ZS1zZWxm dGVzdC1jeHgucGF0Y2gKQEAgLTAsMCArMSw2NiBAQAoraHR0cDovL3NvdXJjZXdhcmUub3JnL21s L2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAxNzkuaHRtbAorU3ViamVjdDogW3Rlc3RzdWl0ZSBw YXRjaF0gRml4IGdkYi5nZGIvc2VsZnRlc3QuZXhwIGZvciBDKystTzItZy1idWlsdCBHREIKKwor CistLVpHaVMwUTVJV3BQdGZwcHYKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11 cy1hc2NpaQorQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lCisKK0hpLAorCit0ZXN0ZWQgb24g RmVkb3JhIDI0IHg4Nl82NCBhZnRlcjoKKwkuL2NvbmZpZ3VyZTsgbWFrZQorVGhhdCBpczogQ0ZM QUdTPSctZyAtTzInIENYWEZMQUdTPSctZyAtTzInCisKK09LIGZvciBjaGVjay1pbj8KKworCitK YW4KKworLS1aR2lTMFE1SVdwUHRmcHB2CitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9dXMtYXNjaWkKK0NvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9MQorCitn ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworMjAxNi0wNy0xNiAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgorCisJKiBnZGIuZ2RiL3NlbGZ0ZXN0LmV4cCAoZG9fc3Rl cHNfYW5kX25leHRzKTogQWRkICJuZXh0IG92ZXIgVFJZIiBhbmQKKwkic3RlcCBpbnRvIGNhcHR1 cmVkX21haW4gKGFyZ3MpIi4KKwkodGVzdF93aXRoX3NlbGYpOiBBZGQgImNhcHR1cmVkX21haW4g KGFyZ3MpOyIgY2FzZS4KKworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxm dGVzdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCitpbmRleCBhZjAw MjZjLi4yY2RkNWMxIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0 LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAorQEAgLTExNiw2 ICsxMTYsMTQgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4dHMge30geworIAkJc2V0IGRlc2NyaXB0 aW9uICJuZXh0IG92ZXIgbGltX2F0X3N0YXJ0IGluaXRpYWxpemF0aW9uIgorIAkJc2V0IGNvbW1h bmQgIm5leHQiCisgCSAgICB9CisrCSAgICAtcmUgIi4qVFJZLiokZ2RiX3Byb21wdCAkIiB7Cisr CQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBUUlkiCisrCQlzZXQgY29tbWFuZCAibmV4dCIK KysJICAgIH0KKysJICAgIC1yZSAiLipjYXB0dXJlZF9tYWluIFxcKGFyZ3NcXCk7LiokZ2RiX3By b21wdCAkIiB7CisrCQlzZXQgZGVzY3JpcHRpb24gInN0ZXAgaW50byBjYXB0dXJlZF9tYWluIChh cmdzKSIKKysJCXNldCBjb21tYW5kICJzdGVwIgorKwkgICAgfQorIAkgICAgLXJlICIuKmNvdW50 IC4gMHgzLiokZ2RiX3Byb21wdCAkIiB7CisgCQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBj b25kaXRpb25hbCBzdGFjayBhbGlnbm1lbnQgY29kZSAxIgorIAkJc2V0IGNvbW1hbmQgIm5leHQi CitAQCAtMzMwLDYgKzMzOCwxMyBAQCBwcm9jIHRlc3Rfd2l0aF9zZWxmIHsgZXhlY3V0YWJsZSB9 IHsKKyAJLXJlICJTdGFydGluZyBwcm9ncmFtLipCcmVha3BvaW50IFxbMC05XF0rLC4qY2FwdHVy ZWRfbWFpbiAuZGF0YS4qJGdkYl9wcm9tcHQgJCIgeworIAkgICAgeGZhaWwgIiRkZXNjcmlwdGlv biAobGluZSBudW1iZXJzIHNjcmFtYmxlZD8pIgorIAl9CisrCS1yZSAiY2FwdHVyZWRfbWFpbiBc XChhcmdzXFwpO1xyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBnZGJfdGVzdF9tdWx0aXBsZSAi c3RlcCIgIiRkZXNjcmlwdGlvbiIgeworKwkJLXJlICJjYXB0dXJlZF9tYWluIC5kYXRhLiogYXQg LiptYWluLmM6LiokZ2RiX3Byb21wdCAkIiB7CisrCQkgICAgcGFzcyAiJGRlc2NyaXB0aW9uIgor KwkJfQorKwkgICAgfQorKwl9CisgCS1yZSAidmZvcms6IE5vIG1vcmUgcHJvY2Vzc2VzLiokZ2Ri X3Byb21wdCAkIiB7CisgCSAgICBmYWlsICIkZGVzY3JpcHRpb24gKG91dCBvZiB2aXJ0dWFsIG1l bW9yeSkiCisgCSAgICBzZXQgdGltZW91dCAkb2xkdGltZW91dAorCistLVpHaVMwUTVJV3BQdGZw cHYtLQorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNoIGIvZ2Ri LXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAzYjhkNzdhLi4wMDAwMDAwCi0tLSBhL2dkYi12bGEtaW50ZWwtMDRvZjIzLWZpeC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLVJlOiBbUEFUQ0ggMDQvMjNdIHZsYTogbWFr ZSBkeW5hbWljIGZvcnRyYW4gYXJyYXlzIGZ1bmN0aW9uYWwuCi1odHRwczovL3NvdXJjZXdhcmUu b3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDYvbXNnMDA1NzAuaHRtbAotCi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE1MTAyNy5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMTEtMDMgMjA6NDE6NDguNTQzNTA0 OTk5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0x MS0wMyAyMDo0NjozNi45OTUyMzg4ODggKzAxMDAKLUBAIC0xOTMsMTAgKzE5MywxNyBAQCB2YWx1 ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKHN0cnVjdCB2YWx1ZSAqCi0gICBzdHJ1Y3QgdHlwZSAqYXJy YXlfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFycmF5KSk7Ci0gICBzdHJ1Y3Qg dHlwZSAqZWx0X3R5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90 eXBlKSk7Ci0gICB1bnNpZ25lZCBpbnQgZWx0X3NpemUgPSB0eXBlX2xlbmd0aF91bml0cyAoZWx0 X3R5cGUpOwotLSAgdW5zaWduZWQgaW50IGVsdF9vZmZzID0gbG9uZ2VzdF90b19pbnQgKGluZGV4 IC0gbG93ZXJib3VuZCk7Ci0rICB1bnNpZ25lZCBpbnQgZWx0X29mZnM7Ci0gICBMT05HRVNUIGVs dF9zdHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChUWVBFX0lOREVYX1RZUEUgKGFycmF5X3R5cGUp KTsKLSAgIHN0cnVjdCB2YWx1ZSAqdjsKLSAKLSsgIGlmIChUWVBFX05PVF9BU1NPQ0lBVEVEIChh cnJheV90eXBlKSkKLSsgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgKHZlY3Rv ciBub3QgYXNzb2NpYXRlZCkiKSk7Ci0rICBpZiAoVFlQRV9OT1RfQUxMT0NBVEVEIChhcnJheV90 eXBlKSkKLSsgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgKHZlY3RvciBub3Qg YWxsb2NhdGVkKSIpKTsKLSsKLSsgIGVsdF9vZmZzID0gbG9uZ2VzdF90b19pbnQgKGluZGV4IC0g bG93ZXJib3VuZCk7Ci0rCi0gICBpZiAoZWx0X3N0cmlkZSA+IDApCi0gICAgIGVsdF9vZmZzICo9 IGVsdF9zdHJpZGU7Ci0gICBlbHNlIGlmIChlbHRfc3RyaWRlIDwgMCkKLUBAIC0yMTAsMTQgKzIx Nyw3IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKLSAKLSAgIGlm IChpbmRleCA8IGxvd2VyYm91bmQgfHwgKCFUWVBFX0FSUkFZX1VQUEVSX0JPVU5EX0lTX1VOREVG SU5FRCAoYXJyYXlfdHlwZSkKLSAJCQkgICAgICYmIGVsdF9vZmZzID49IHR5cGVfbGVuZ3RoX3Vu aXRzIChhcnJheV90eXBlKSkpCi0tICAgIHsKLS0gICAgICBpZiAodHlwZV9ub3RfYXNzb2NpYXRl ZCAoYXJyYXlfdHlwZSkpCi0tICAgICAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVu dCAodmVjdG9yIG5vdCBhc3NvY2lhdGVkKSIpKTsKLS0gICAgICBlbHNlIGlmICh0eXBlX25vdF9h bGxvY2F0ZWQgKGFycmF5X3R5cGUpKQotLSAgICAgICAgZXJyb3IgKF8oIm5vIHN1Y2ggdmVjdG9y IGVsZW1lbnQgKHZlY3RvciBub3QgYWxsb2NhdGVkKSIpKTsKLS0gICAgICBlbHNlCi0tICAgICAg ICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLS0gICAgfQotKyAgICBlcnJv ciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCIpKTsKLSAKLSAgIGlmIChWQUxVRV9MVkFMIChh cnJheSkgPT0gbHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQotICAgICB2ID0gYWxs b2NhdGVfdmFsdWVfbGF6eSAoZWx0X3R5cGUpOwoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwt MW9mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtMW9mNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5iNTcyOTIyCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRl bC0xb2Y3LnBhdGNoCkBAIC0wLDAgKzEsMTgwIEBACitGcm9tIDI2ZTE1NmQ2MjIxMWNhODQ1OGZh YTMyNmYyMTk0MGU5ZmExOGM4ZmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCZXJu aGFyZCBIZWNrZWwgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CitEYXRlOiBUdWUsIDEyIEp1 bCAyMDE2IDA4OjE5OjM0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMS83XSBGb3J0cmFuOiBUZXN0 c3VpdGUsIGZpeCBkaWZmZXJlbmNlcyBpbiB0eXBlIG5hbWluZy4KKworQ29udGludWVkIG9uIDBj MTNmN2U1NTlhZmU1Zjk3M2E1OTMxMWIwZTQwMTI5NmM0OGQ5NmMKKyhmb3J0cmFuOiBUZXN0c3Vp dGUsIGZpeCBkaWZmZXJlbnQgdHlwZSBuYW1pbmcgYWNyb3NzIGNvbXBpbGVycykuCisKKzIwMTYt MDYtMDggIEJlcm5oYXJkIEhlY2tlbCAgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CisKK2dk Yi9UZXN0c3VpdGUvQ2hhbmdlbG9nOgorCSogZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cDogVXNl IHR5cGUgbmFtZXMgZGVmaW5lZCBpbiBsaWJmb3J0cmFuLgorCSogZ2RiLm1pL21pLXZhci1jaGls ZC1mLmV4cDogTGlrZXdpc2UuCisJKiBnZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwOiBMaWtld2lz ZS4KKworQ2hhbmdlLUlkOiBJN2VlOTQ1ODdhOTkyYWRkMjdmZWM3N2M3NzI2ZjlhNjljOGZkZjM3 MworLS0tCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwIHwgMTIgKysr KysrKystLS0tCisgZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwIHwgIDcg KysrLS0tLQorIGdkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cCB8IDE4ICsr KysrKysrKysrLS0tLS0tLQorIDMgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTUg ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS12YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAKK2lu ZGV4IDA5NDUxODEuLjI3NWY3MzggMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS12YWx1ZS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZh bHVlLmV4cAorQEAgLTE0LDYgKzE0LDcgQEAKKyAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorIAorIHN0YW5kYXJk X3Rlc3RmaWxlICJ2bGEuZjkwIgorK2xvYWRfbGliICJmb3J0cmFuLmV4cCIKKyAKKyBpZiB7IFtw cmVwYXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9 IFwKKyAgICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKK0BAIC0yNSwxMiArMjYsMTUgQEAgaWYg IVtydW50b19tYWluXSB7CisgICAgIHJldHVybiAtMQorIH0KKyAKKysjIERlcGVuZGluZyBvbiB0 aGUgY29tcGlsZXIgYmVpbmcgdXNlZCwgdGhlIHR5cGUgbmFtZXMgY2FuIGJlIHByaW50ZWQgZGlm ZmVyZW50bHkuCisrc2V0IHJlYWwgW2ZvcnRyYW5fcmVhbDRdCisrCisgIyBUcnkgdG8gYWNjZXNz IHZhbHVlcyBpbiBub24gYWxsb2NhdGVkIFZMQQorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xp bmVfbnVtYmVyICJ2bGExLWluaXQiXQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGEx LWluaXQiCisgZ2RiX3Rlc3QgInByaW50IHZsYTEiICIgPSA8bm90IGFsbG9jYXRlZD4iICJwcmlu dCBub24tYWxsb2NhdGVkIHZsYTEiCisgZ2RiX3Rlc3QgInByaW50ICZ2bGExIiBcCistICAiID0g XFxcKFBUUiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoPG5vdCBhbGxvY2F0ZWQ+ XFxcKVxcXClcXFwpICRoZXgiIFwKKysgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwgXFxc KDxub3QgYWxsb2NhdGVkPlxcXClcXFwpXFxcKSAkaGV4IiBcCisgICAicHJpbnQgbm9uLWFsbG9j YXRlZCAmdmxhMSIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSgxLDEsMSkiICJubyBzdWNoIHZlY3Rv ciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwKKyAgICJwcmludCBtZW1i ZXIgaW4gbm9uLWFsbG9jYXRlZCB2bGExICgxKSIKK0BAIC01MSw3ICs1NSw3IEBAIHdpdGhfdGlt ZW91dF9mYWN0b3IgMTUgeworIAkic3RlcCBvdmVyIHZhbHVlIGFzc2lnbm1lbnQgb2YgdmxhMSIK KyB9CisgZ2RiX3Rlc3QgInByaW50ICZ2bGExIiBcCistICAiID0gXFxcKFBUUiBUTyAtPiBcXFwo IHJlYWxcXFwoa2luZD00XFxcKSBcXFwoMTAsMTAsMTBcXFwpXFxcKVxcXCkgJGhleCIgXAorKyAg IiA9IFxcXChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwoMTAsMTAsMTBcXFwpXFxcKVxcXCkgJGhl eCIgXAorICAgInByaW50IGFsbG9jYXRlZCAmdmxhMSIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSgz LCA2LCA5KSIgIiA9IDEzMTEiICJwcmludCBhbGxvY2F0ZWQgdmxhMSgzLDYsOSkiCisgZ2RiX3Rl c3QgInByaW50IHZsYTEoMSwgMywgOCkiICIgPSAxMzExIiAicHJpbnQgYWxsb2NhdGVkIHZsYTEo MSwzLDgpIgorQEAgLTcxLDcgKzc1LDcgQEAgZ2RiX3Rlc3QgInByaW50IHZsYTEoOSwgOSwgOSki ICIgPSA5OTkiIFwKKyAjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGluIHVuZGVmaW5lZCBwb2ludGVy IHRvIFZMQSAoZGFuZ2xpbmcpCisgZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSA8bm90IGFzc29j aWF0ZWQ+IiAicHJpbnQgdW5kZWZpbmVkIHB2bGEiCisgZ2RiX3Rlc3QgInByaW50ICZwdmxhIiBc CistICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoPG5vdCBh c3NvY2lhdGVkPlxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAiID0gXFxcKFBUUiBUTyAtPiBcXFwo ICRyZWFsIFxcXCg8bm90IGFzc29jaWF0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKyAgICJwcmlu dCBub24tYXNzb2NpYXRlZCAmcHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4KSIg Im5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYXNzb2NpYXRlZFxcXCkiIFwK KyAgICJwcmludCB1bmRlZmluZWQgcHZsYSgxLDMsOCkiCitAQCAtODAsNyArODQsNyBAQCBnZGJf dGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4KSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZl Y3RvciBub3QgYXNzb2NpYXRlZAorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVy ICJwdmxhLWFzc29jaWF0ZWQiXQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJwdmxhLWFz c29jaWF0ZWQiCisgZ2RiX3Rlc3QgInByaW50ICZwdmxhIiBcCistICAiID0gXFxcKFBUUiBUTyAt PiBcXFwoIHJlYWxcXFwoa2luZD00XFxcKSBcXFwoMTAsMTAsMTBcXFwpXFxcKVxcXCkgJGhleCIg XAorKyAgIiA9IFxcXChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwoMTAsMTAsMTBcXFwpXFxcKVxc XCkgJGhleCIgXAorICAgInByaW50IGFzc29jaWF0ZWQgJnB2bGEiCisgZ2RiX3Rlc3QgInByaW50 IHB2bGEoMywgNiwgOSkiICIgPSA0MiIgInByaW50IGFzc29jaWF0ZWQgcHZsYSgzLDYsOSkiCisg Z2RiX3Rlc3QgInByaW50IHB2bGEoMSwgMywgOCkiICIgPSAxMDAxIiAicHJpbnQgYXNzb2NpYXRl ZCBwdmxhKDEsMyw4KSIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXIt Y2hpbGQtZi5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hpbGQtZi5leHAKK2lu ZGV4IGYzZWQ3YzIuLmJjNDRjNmIgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9t aS12YXItY2hpbGQtZi5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGls ZC1mLmV4cAorQEAgLTE3LDYgKzE3LDcgQEAKKyAKKyBsb2FkX2xpYiBtaS1zdXBwb3J0LmV4cAor IHNldCBNSUZMQUdTICItaT1taSIKKytsb2FkX2xpYiAiZm9ydHJhbi5leHAiCisgCisgaWYgeyBb c2tpcF9mb3J0cmFuX3Rlc3RzXSB9IHsgcmV0dXJuIC0xIH0KKyAKK0BAIC00MCwxMCArNDEsOCBA QCBtaV9ydW50byBNQUlOX18KKyBtaV9jcmVhdGVfdmFyb2JqICJhcnJheSIgImFycmF5IiAiY3Jl YXRlIGxvY2FsIHZhcmlhYmxlIGFycmF5IgorIAorIAorLSMgRGVwZW5kaW5nIG9uIHRoZSBjb21w aWxlciB2ZXJzaW9uIGJlaW5nIHVzZWQsIHRoZSBuYW1lIG9mIHRoZSA0LWJ5dGUgaW50ZWdlcgor LSMgYW5kIHJlYWwgdHlwZXMgY2FuIGJlIHByaW50ZWQgZGlmZmVyZW50bHkuICBGb3IgaW5zdGFu Y2UsIGdmb3J0cmFuLTQuMSB1c2VzCistIyAiaW50NCIgd2hlcmVhcyBnZm9ydHJhbi00LjMgdXNl cyAiaW50ZWdlcihraW5kPTQpIi4KKy1zZXQgaW50NCAiKGludDR8aW50ZWdlclxcKGtpbmQ9NFxc KSkiCisrIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIGJlaW5nIHVzZWQsIHRoZSB0eXBlIG5h bWVzIGNhbiBiZSBwcmludGVkIGRpZmZlcmVudGx5LgorK3NldCBpbnQ0IFtmb3J0cmFuX2ludDRd CisgCisgc2V0IGNoaWxkcmVuIFtsaXN0IFtsaXN0ICJhcnJheS4tMSIgIi0xIiAyICIkaW50NCBc XCgyXFwpIl0gXAorIAkJICBbbGlzdCAiYXJyYXkuMCIgIjAiIDIgIiRpbnQ0IFxcKDJcXCkiXSBc CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCitpbmRleCAzMzNiNzFhLi4x Nzc5ZWMwIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4u ZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKK0BAIC0x OCw2ICsxOCw3IEBACisgCisgbG9hZF9saWIgbWktc3VwcG9ydC5leHAKKyBzZXQgTUlGTEFHUyAi LWk9bWkiCisrbG9hZF9saWIgImZvcnRyYW4uZXhwIgorIAorIGdkYl9leGl0CisgaWYgW21pX2dk Yl9zdGFydF0geworQEAgLTMyLDYgKzMzLDkgQEAgaWYgeyBbZ2RiX2NvbXBpbGUgIiR7c3JjZGly fS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFibGUgXAorICAgICAg cmV0dXJuIC0xCisgfQorIAorKyMgRGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciBiZWluZyB1c2Vk LCB0aGUgdHlwZSBuYW1lcyBjYW4gYmUgcHJpbnRlZCBkaWZmZXJlbnRseS4KKytzZXQgcmVhbCBb Zm9ydHJhbl9yZWFsNF0KKysKKyBtaV9kZWxldGVfYnJlYWtwb2ludHMKKyBtaV9nZGJfcmVpbml0 aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKKyBtaV9nZGJfbG9hZCAke2JpbmZpbGV9CitAQCAt NTgsNyArNjIsNyBAQCBtaV9nZGJfdGVzdCAiNTAzLXZhci1ldmFsdWF0ZS1leHByZXNzaW9uIHZs YTFfbm90X2FsbG9jYXRlZCIgXAorICAgIjUwM1xcXmRvbmUsdmFsdWU9XCJcXFxbMFxcXF1cIiIg XAorICAgImV2YWwgdmFyaWFibGUgdmxhMV9ub3RfYWxsb2NhdGVkIgorIG1pX2xpc3RfYXJyYXlf dmFyb2JqX2NoaWxkcmVuX3dpdGhfaW5kZXggInZsYTFfbm90X2FsbG9jYXRlZCIgIjAiICIxIiBc CistICAgICJyZWFsXFxcKGtpbmQ9NFxcXCkiICJnZXQgY2hpbGRyZW4gb2YgdmxhMV9ub3RfYWxs b2NhdGVkIgorKyAgICAiJHJlYWwiICJnZXQgY2hpbGRyZW4gb2YgdmxhMV9ub3RfYWxsb2NhdGVk IgorIAorIAorIAorQEAgLTcxLDEwICs3NSwxMCBAQCBtaV9leHBlY3Rfc3RvcCAiYnJlYWtwb2lu dC1oaXQiICJ2bGEiICIiICIuKnZsYS5mOTAiICIkYnBfbGluZW5vIiBcCisgbWlfZ2RiX3Rlc3Qg IjUxMC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMSIgXAorICAgIjUxMFxcXmRvbmUsdmFs dWU9XCJcXCguKlxcKVwiIiAiZXZhbHVhdGUgYWxsb2NhdGVkIHZsYSIKKyAKKy1taV9jcmVhdGVf dmFyb2JqX2NoZWNrZWQgdmxhMV9hbGxvY2F0ZWQgdmxhMSAicmVhbFxcXChraW5kPTRcXFwpIFxc XCg1XFxcKSIgXAorK21pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCB2bGExX2FsbG9jYXRlZCB2bGEx ICIkcmVhbCBcXFwoNVxcXCkiIFwKKyAgICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgdmxhMV9hbGxv Y2F0ZWQiCisgbWlfZ2RiX3Rlc3QgIjUxMS12YXItaW5mby10eXBlIHZsYTFfYWxsb2NhdGVkIiBc CistICAiNTExXFxeZG9uZSx0eXBlPVwicmVhbFxcXChraW5kPTRcXFwpIFxcXCg1XFxcKVwiIiBc CisrICAiNTExXFxeZG9uZSx0eXBlPVwiJHJlYWwgXFxcKDVcXFwpXCIiIFwKKyAgICJpbmZvIHR5 cGUgdmFyaWFibGUgdmxhMV9hbGxvY2F0ZWQiCisgbWlfZ2RiX3Rlc3QgIjUxMi12YXItc2hvdy1m b3JtYXQgdmxhMV9hbGxvY2F0ZWQiIFwKKyAgICI1MTJcXF5kb25lLGZvcm1hdD1cIm5hdHVyYWxc IiIgXAorQEAgLTgzLDcgKzg3LDcgQEAgbWlfZ2RiX3Rlc3QgIjUxMy12YXItZXZhbHVhdGUtZXhw cmVzc2lvbiB2bGExX2FsbG9jYXRlZCIgXAorICAgIjUxM1xcXmRvbmUsdmFsdWU9XCJcXFxbNVxc XF1cIiIgXAorICAgImV2YWwgdmFyaWFibGUgdmxhMV9hbGxvY2F0ZWQiCisgbWlfbGlzdF9hcnJh eV92YXJvYmpfY2hpbGRyZW5fd2l0aF9pbmRleCAidmxhMV9hbGxvY2F0ZWQiICI1IiAiMSIgXAor LSAgICAicmVhbFxcXChraW5kPTRcXFwpIiAiZ2V0IGNoaWxkcmVuIG9mIHZsYTFfYWxsb2NhdGVk IgorKyAgICAiJHJlYWwiICJnZXQgY2hpbGRyZW4gb2YgdmxhMV9hbGxvY2F0ZWQiCisgCisgCisg c2V0IGJwX2xpbmVubyBbZ2RiX2dldF9saW5lX251bWJlciAidmxhMS1maWxsZWQiXQorQEAgLTE0 OCw3ICsxNTIsNyBAQCBnZGJfZXhwZWN0IHsKKyAJICAgICI1ODNcXF5kb25lLHZhbHVlPVwiXFxc WzBcXFxdXCIiIFwKKyAJICAgICJldmFsIHZhcmlhYmxlIHB2bGEyX25vdF9hc3NvY2lhdGVkIgor IAltaV9saXN0X2FycmF5X3Zhcm9ial9jaGlsZHJlbl93aXRoX2luZGV4ICJwdmxhMl9ub3RfYXNz b2NpYXRlZCIgIjAiICIxIiBcCistCSAgICAicmVhbFxcXChraW5kPTRcXFwpIiAiZ2V0IGNoaWxk cmVuIG9mIHB2bGEyX25vdF9hc3NvY2lhdGVkIgorKwkgICAgIiRyZWFsIiAiZ2V0IGNoaWxkcmVu IG9mIHB2bGEyX25vdF9hc3NvY2lhdGVkIgorICAgICB9CisgICAgIC1yZSAiNTgwXFxeZXJyb3Is bXNnPVwidmFsdWUgY29udGVudHMgdG9vIGxhcmdlIFxcKFxbMC05XF0rIGJ5dGVzXFwpLioke21p X2dkYl9wcm9tcHR9JCIgeworIAkjIFVuZGVmaW5lZCBiZWhhdmlvdXIgaW4gZ2ZvcnRyYW4uCitA QCAtMTczLDkgKzE3Nyw5IEBAIG1pX2dkYl90ZXN0ICI1OTAtZGF0YS1ldmFsdWF0ZS1leHByZXNz aW9uIHB2bGEyIiBcCisgICAiZXZhbHVhdGUgYXNzb2NpYXRlZCB2bGEiCisgCisgbWlfY3JlYXRl X3Zhcm9ial9jaGVja2VkIHB2bGEyX2Fzc29jaWF0ZWQgcHZsYTIgXAorLSAgInJlYWxcXFwoa2lu ZD00XFxcKSBcXFwoNSwyXFxcKSIgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSBwdmxhMl9hc3NvY2lh dGVkIgorKyAgIiRyZWFsIFxcXCg1LDJcXFwpIiAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHB2bGEy X2Fzc29jaWF0ZWQiCisgbWlfZ2RiX3Rlc3QgIjU5MS12YXItaW5mby10eXBlIHB2bGEyX2Fzc29j aWF0ZWQiIFwKKy0gICI1OTFcXF5kb25lLHR5cGU9XCJyZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDUs MlxcXClcIiIgXAorKyAgIjU5MVxcXmRvbmUsdHlwZT1cIiRyZWFsIFxcXCg1LDJcXFwpXCIiIFwK KyAgICJpbmZvIHR5cGUgdmFyaWFibGUgcHZsYTJfYXNzb2NpYXRlZCIKKyBtaV9nZGJfdGVzdCAi NTkyLXZhci1zaG93LWZvcm1hdCBwdmxhMl9hc3NvY2lhdGVkIiBcCisgICAiNTkyXFxeZG9uZSxm b3JtYXQ9XCJuYXR1cmFsXCIiIFwKKy0tIAorMi43LjQKKwoKZGlmZiAtLWdpdCBhL2dkYi12bGEt aW50ZWwtMm9mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtMm9mNy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWExNzdhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZs YS1pbnRlbC0yb2Y3LnBhdGNoCkBAIC0wLDAgKzEsNzUgQEAKK0Zyb20gYTg3OWIyNTAxZTYxZWUz ZDNlZmFkYmRiNmIzMzIxMmI1N2QzYTJlMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IEJlcm5oYXJkIEhlY2tlbCA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KK0RhdGU6IFR1ZSwg MTIgSnVsIDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzddIEZvcnRyYW46 IFJlc29sdmUgZHluYW1pYyBwcm9wZXJ0aWVzIG9mIHBvaW50ZXIgdHlwZXMuCisKK0luIEZvcnRy YW4gYSBwb2ludGVyIG1heSBoYXZlIGEgZHluYW1pYyBhc3NvY2lhdGVkIHByb3BlcnR5LgorCisy MDE2LTA3LTA4ICBCZXJuaGFyZCBIZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgor CitnZGIvQ2hhbmdlbG9nOgorCSogZ2RidHlwZXMuYyAocmVzb2x2ZV9keW5hbWljX3R5cGVzX2lu dGVybmFsKTogUmVzb2x2ZSBwb2ludGVyIHR5cGVzLgorCSAgKHJlc29sdmVfZHluYW1pY19wb2lu dGVyKTogTmV3LgorCitDaGFuZ2UtSWQ6IEllNGI5ZDYzOTdjZmEwODllZTJlMGRiMDJiZWIxODQx NWE3NTFjMWMwCistLS0KKyBnZGIvZ2RidHlwZXMuYyB8IDI5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKystCisgMSBmaWxlIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKKworZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKK2luZGV4 IGVjNWMxN2EuLmI1M2U2NDkgMTAwNjQ0CistLS0gYS9nZGIvZ2RidHlwZXMuYworKysrIGIvZ2Ri L2dkYnR5cGVzLmMKK0BAIC0xODA2LDcgKzE4MDYsOCBAQCBpc19keW5hbWljX3R5cGVfaW50ZXJu YWwgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgdG9wX2xldmVsKQorICAgdHlwZSA9IGNoZWNrX3R5 cGVkZWYgKHR5cGUpOworIAorICAgLyogV2Ugb25seSB3YW50IHRvIHJlY29nbml6ZSByZWZlcmVu Y2VzIGF0IHRoZSBvdXRlcm1vc3QgbGV2ZWwuICAqLworLSAgaWYgKHRvcF9sZXZlbCAmJiBUWVBF X0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9SRUYpCisrICBpZiAodG9wX2xldmVsICYmCisrICAg ICAgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1JFRiB8fCBUWVBFX0NPREUgKHR5cGUp ID09IFRZUEVfQ09ERV9QVFIpKQorICAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJH RVRfVFlQRSAodHlwZSkpOworIAorICAgLyogVHlwZXMgdGhhdCBoYXZlIGEgZHluYW1pYyBUWVBF X0RBVEFfTE9DQVRJT04gYXJlIGNvbnNpZGVyZWQKK0BAIC0yMTA1LDYgKzIxMDYsMjggQEAgcmVz b2x2ZV9keW5hbWljX3N0cnVjdCAoc3RydWN0IHR5cGUgKnR5cGUsCisgICByZXR1cm4gcmVzb2x2 ZWRfdHlwZTsKKyB9CisgCisrLyogV29ya2VyIGZvciBwb2ludGVyIHR5cGVzLiAgKi8KKysKKytz dGF0aWMgc3RydWN0IHR5cGUgKgorK3Jlc29sdmVfZHluYW1pY19wb2ludGVyIChzdHJ1Y3QgdHlw ZSAqdHlwZSwKKysJCQkgc3RydWN0IHByb3BlcnR5X2FkZHJfaW5mbyAqYWRkcl9zdGFjaykKKyt7 CisrICBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOworKyAgQ09SRV9BRERSIHZhbHVlOworKwor KyAgdHlwZSA9IGNvcHlfdHlwZSAodHlwZSk7CisrCisrICAvKiBSZXNvbHZlIGFzc29jaWF0ZWQg cHJvcGVydHkuICAqLworKyAgcHJvcCA9IFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBlKTsKKysg IGlmIChwcm9wICE9IE5VTEwgJiYgZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxM LCBhZGRyX3N0YWNrLCAmdmFsdWUpKQorKyAgICB7CisrICAgICAgVFlQRV9EWU5fUFJPUF9BRERS IChwcm9wKSA9IHZhbHVlOworKyAgICAgIFRZUEVfRFlOX1BST1BfS0lORCAocHJvcCkgPSBQUk9Q X0NPTlNUOworKyAgICB9CisrCisrICByZXR1cm4gdHlwZTsKKyt9CisrCisgLyogV29ya2VyIGZv ciByZXNvbHZlZF9keW5hbWljX3R5cGUuICAqLworIAorIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqCitA QCAtMjE1Myw2ICsyMTc2LDEwIEBAIHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1 Y3QgdHlwZSAqdHlwZSwKKyAJICAgIGJyZWFrOworIAkgIH0KKyAKKysgICAgICAgIGNhc2UgVFlQ RV9DT0RFX1BUUjoKKysgCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19wb2ludGVy ICh0eXBlLCBhZGRyX3N0YWNrKTsKKysgCSAgYnJlYWs7CisrCisgCWNhc2UgVFlQRV9DT0RFX0FS UkFZOgorIAkgIHJlc29sdmVkX3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHR5cGUsIGFk ZHJfc3RhY2spOworIAkgIGJyZWFrOworLS0gCisyLjcuNAorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZs YS1pbnRlbC0zb2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC0zb2Y3LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwOTU0MDQKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt dmxhLWludGVsLTNvZjcucGF0Y2gKQEAgLTAsMCArMSwxMTMgQEAKK0Zyb20gZDJmZDVmZWEyYzA2 MDUyYzUzZDk5YmZhMjVmZGFlZDljZjVkZDIxNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEJlcm5oYXJkIEhlY2tlbCA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KK0RhdGU6IFR1 ZSwgMTIgSnVsIDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzddIFR5cGVw cmludDogUmVzb2x2ZSBhbnkgZHluYW1pYyB0YXJnZXQgdHlwZSBvZiBhIHBvaW50ZXIuCisKK0Jl Zm9yZSBjb250aW51aW5nIHdpdGggbGFuZ3VhZ2Ugc3BlY2lmaWMgdHlwZSBwcmludGluZword2Ug aGF2ZSB0byByZXNvbHZlIHRoZSB0YXJnZXQgdHlwZSBvZiBhIHBvaW50ZXIKK2FzIHdlIG1pZ2h0 IHdhbm5hIHByaW50IG1vcmUgZGV0YWlscyBvZiB0aGUgdGFyZ2V0CitsaWtlIHRoZSBkaW1lbnNp b24gb2YgYW4gYXJyYXkuIFdlIGhhdmUgdG8gcmVzb2x2ZSBpdCBoZXJlCithcyB3ZSBkb24ndCBo YXZlIGFueSBhZGRyZXNzIGluZm9ybWF0aW9uIGxhdGVyIG9uLgorCisyMDE2LTA3LTA4ICBCZXJu aGFyZCBIZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorCitnZGIvQ2hhbmdlbG9n OgorCSogdHlwZXByaW50LmMgKHdoYXRpc19leHApOiBSZXNvbHZlIGR5bmFtaWMgdGFyZ2V0IHR5 cGUKKwkgIG9mIHBvaW50ZXJzLgorCitnZGIvVGVzdHN1aXRlL0NoYW5nZWxvZzoKKwkqIGdkYi5j cC92bGEtY3h4LmNjOiBBZGRlZCBwb2ludGVyIHRvIGR5bmFtaWMgdHlwZS4KKwkqIGdkYi5jcC92 bGEtY3h4LmV4cDogVGVzdCBwb2ludGVyIHRvIGR5bmFtaWMgdHlwZS4KKworQ2hhbmdlLUlkOiBJ ZGZmMGQ2ZGQwZWFiMzEyNWI0NWQ0NzBhMTJiNWU2NmIzOTJlNDJjMworLS0tCisgZ2RiL3Rlc3Rz dWl0ZS9nZGIuY3AvdmxhLWN4eC5jYyAgfCAgOSArKysrKysrKysKKyBnZGIvdGVzdHN1aXRlL2dk Yi5jcC92bGEtY3h4LmV4cCB8ICA1ICsrKysrCisgZ2RiL3R5cGVwcmludC5jICAgICAgICAgICAg ICAgICAgfCAxOSArKysrKysrKysrKysrKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNl cnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmNj IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYworaW5kZXggYTFmZDUxMC4uNWY4Zjhh YiAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguY2MKKysrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguY2MKK0BAIC0xNSw2ICsxNSwxMCBAQAorICAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworIAorK2V4dGVybiAiQyIgeworKyNpbmNsdWRl IDxzdGRkZWYuaD4KKyt9CisrCisgc3RydWN0IGNvbnRhaW5lcjsKKyAKKyBzdHJ1Y3QgZWxlbWVu dAorQEAgLTQwLDExICs0NCwxNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCisg ICB0eXBlZGVmIHR5cGVvZiAodmxhKSAmdmxhcmVmdHlwZWRlZjsKKyAgIHZsYXJlZnR5cGVkZWYg dmxhcmVmMiAodmxhKTsKKyAgIGNvbnRhaW5lciBjOworKyAgdHlwZW9mICh2bGEpICpwdHIgPSBO VUxMOworKworKyAgLy8gQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAorKyAgcHRyID0gJnZsYTsK KyAKKyAgIGZvciAoaW50IGkgPSAwOyBpIDwgejsgKytpKQorICAgICB2bGFbaV0gPSA1ICsgMiAq IGk7CisgCisgICAvLyB2bGFzX2ZpbGxlZAorICAgdmxhWzBdID0gMiAqIHZsYVswXTsKKysKKyAg IHJldHVybiB2bGFbMl07CisgfQorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3Zs YS1jeHguZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAKK2luZGV4IGY2MjI0 ZGMuLmJhYmRmYjcgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4 cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAKK0BAIC0yMyw2ICsyMywx MCBAQCBpZiAhW3J1bnRvX21haW5dIHsKKyAgICAgcmV0dXJuIC0xCisgfQorIAorK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50Il0K KytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIK KytnZGJfdGVzdCAicHR5cGUgcHRyIiAiaW50IFxcKFxcKlxcKVxcXFt2YXJpYWJsZSBsZW5ndGhc XFxdIiAicHR5cGUgcHRyLCBCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50IgorKworIGdkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGFzX2ZpbGxlZCJdCisgZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInZsYXNfZmlsbGVkIgorIAorQEAgLTMzLDMgKzM3LDQgQEAgZ2RiX3Rl c3QgInByaW50IHZsYXJlZiIgIiA9IFxcKGludCBcXCgmXFwpXFxcWzNcXFxdXFwpIEAkaGV4OiBc XHs1LCA3LCA5XFx9IgorICMgYnVnIGJlaW5nIHRlc3RlZCwgaXQncyBiZXR0ZXIgbm90IHRvIGRl cGVuZCBvbiB0aGUgZXhhY3Qgc3BlbGxpbmcuCisgZ2RiX3Rlc3QgInByaW50IHZsYXJlZjIiICIg PSBcXCguKlxcKSBAJGhleDogXFx7NSwgNywgOVxcfSIKKyBnZGJfdGVzdCAicHJpbnQgYyIgIiA9 IFxce2UgPSBcXHtjID0gQCRoZXhcXH1cXH0iCisrZ2RiX3Rlc3QgInB0eXBlIHB0ciIgImludCBc XChcXCpcXClcXFxbM1xcXF0iCitkaWZmIC0tZ2l0IGEvZ2RiL3R5cGVwcmludC5jIGIvZ2RiL3R5 cGVwcmludC5jCitpbmRleCBlNzc1MTNlLi5lM2Q4NGM3IDEwMDY0NAorLS0tIGEvZ2RiL3R5cGVw cmludC5jCisrKysgYi9nZGIvdHlwZXByaW50LmMKK0BAIC00ODUsNiArNDg1LDI1IEBAIHdoYXRp c19leHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCisgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiICov XG4iKTsgICAgCisgICAgIH0KKyAKKysgIC8qIFJlc29sdmUgYW55IGR5bmFtaWMgdGFyZ2V0IHR5 cGUsIGFzIHdlIG1pZ2h0IHByaW50CisrICAgICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0 IHRoZSB0YXJnZXQuCisrICAgICBGb3IgZXhhbXBsZSwgaW4gRm9ydHJhbiBhbmQgQyB3ZSBhcmUg cHJpbnRpbmcgdGhlIGRpbWVuc2lvbiBvZiB0aGUKKysgICAgIGR5bmFtaWMgYXJyYXkgdGhlIHBv aW50ZXIgaXMgcG9pbnRpbmcgdG8uICAqLworKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQ RV9DT0RFX1BUUgorKyAgICAgICYmIGlzX2R5bmFtaWNfdHlwZSAodHlwZSkgPT0gMSkKKysgICAg eworKyAgICAgIENPUkVfQUREUiBhZGRyOworKyAgICAgIGlmIChOVUxMICE9IFRZUEVfREFUQV9M T0NBVElPTiAoVFlQRV9UQVJHRVRfVFlQRSh0eXBlKSkpCisrCWFkZHIgPSB2YWx1ZV9hZGRyZXNz ICh2YWwpOworKyAgICAgIGVsc2UKKysJYWRkciA9IHZhbHVlX2FzX2FkZHJlc3MgKHZhbCk7Cisr CisrICAgICAgaWYgKGFkZHIgIT0gMAorKwkgICYmIHR5cGVfbm90X2Fzc29jaWF0ZWQgKHR5cGUp ID09IDApCisrCVRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpID0gcmVzb2x2ZV9keW5hbWljX3R5cGUg KFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLAorKwkJCQkJCQlOVUxMLCBhZGRyKTsKKysgICAgfQor KworICAgTEFfUFJJTlRfVFlQRSAodHlwZSwgIiIsIGdkYl9zdGRvdXQsIHNob3csIDAsICZmbGFn cyk7CisgICBwcmludGZfZmlsdGVyZWQgKCJcbiIpOworIAorLS0gCisyLjcuNAorCgpkaWZmIC0t Z2l0IGEvZ2RiLXZsYS1pbnRlbC00b2Y3LnBhdGNoIGIvZ2RiLXZsYS1pbnRlbC00b2Y3LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZGNhMzUKLS0tIC9kZXYvbnVs bAorKysgYi9nZGItdmxhLWludGVsLTRvZjcucGF0Y2gKQEAgLTAsMCArMSw1MDggQEAKK0Zyb20g ZjYzNzgyZDI1ZWJkNTkzYzRjNDY2OWQ0YzM5NGEyNzA2ZjE1ZTY2MCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IEJlcm5oYXJkIEhlY2tlbCA8YmVybmhhcmQuaGVja2VsQGludGVsLmNv bT4KK0RhdGU6IFR1ZSwgMTIgSnVsIDIwMTYgMDg6MTk6MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRD SCA0LzddIEZvcnRyYW46IFR5cGVwcmludCwgZml4IGRhbmdsaW5nIHR5cGVzLgorCitTaG93IHRo ZSB0eXBlIG9mIG5vdC1hbGxvY2F0ZWQgYW5kL29yIG5vdC1hc3NvY2lhdGVkIHR5cGVzCithcyB0 aGlzIGlzIGtub3duLiAgRm9yIGFycmF5IHR5cGVzIGFuZCBwb2ludGVyIHRvIGFycmF5IHR5cGVz Cit3ZSBhcmUgZ29pbmcgdG8gcHJpbnQgdGhlIG51bWJlciBvZiByYW5rcy4KKworMjAxNi0wNi0z MCAgQmVybmhhcmQgSGVja2VsICA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KKworZ2RiL0No YW5nZUxvZzoKKwkqIGYtdHlwZXByaW50LmMgKGZfcHJpbnRfdHlwZSk6IERvbid0IGJ5cGFzcyBk YW5nbGluZyB0eXBlcy4KKwkgIChmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXgpOiBBZGQgcHJp bnRfcmFuayBwYXJhbWV0ZXIuCisJICAoZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4KTogUHJp bnQgcmFua3Mgb2YgYXJyYXkgdHlwZXMKKwkgIGluIGNhc2UgdGhleSBkYW5nbGluZy4KKwkgIChm X3R5cGVfcHJpbnRfYmFzZSk6IEFkZCBwcmludF9yYW5rIHBhcmFtZXRlci4KKworZ2RiL1Rlc3Rz dWl0ZS9DaGFuZ2VMb2c6CisJKiBnZGIuZm9ydHJhbi9wb2ludGVycy5mOTA6IE5ldy4KKwkqIGdk Yi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwOiBOZXcuCisJKiBnZGIuZm9ydHJhbi92bGEtcHR5cGUu ZXhwOiBBZGFwdCBleHBlY3RlZCByZXN1bHRzLgorCSogZ2RiLmZvcnRyYW4vdmxhLXR5cGUuZXhw OiBMaWtld2lzZS4KKwkqIGdkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHA6IExpa2V3aXNlLgorCSog Z2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cDogTGlrZXdpc2UuCisKK0NoYW5nZS1JZDogSWI1NWYy OGI0MDkyY2Y4OGUzNDkxODQ0OWEyZWJiNmU1ZGFhZmU1MTIKKy0tLQorIGdkYi9mLXR5cGVwcmlu dC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgOTUgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MCAgIHwgIDgwICsr KysrKysrKysrKysrKysrKysrKysrKysKKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50 X3R5cGUuZXhwIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBnZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAgIHwgIDEyICsrLS0KKyBnZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cCAgIHwgICA3ICsrLQorIGdkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cCAgfCAgIDQgKy0KKyBnZGIvdGVzdHN1aXRlL2dkYi5t aS9taS12bGEtZm9ydHJhbi5leHAgIHwgICA5ICstLQorIDcgZmlsZXMgY2hhbmdlZCwgMjQ4IGlu c2VydGlvbnMoKyksIDU5IGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MAorIGNyZWF0ZSBtb2RlIDEwMDc1NSBnZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUuZXhwCisKK0luZGV4OiBnZGItNy4xMS41 MC4yMDE2MDYzMC9nZGIvZi10eXBlcHJpbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUw LjIwMTYwNjMwLm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNi0wNy0xNiAxMDo1NDo0OC43NDkw OTkxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZi10eXBlcHJpbnQuYwky MDE2LTA3LTE2IDEwOjU1OjU5Ljc2MzY2NzM1NSArMDIwMAorQEAgLTM3LDcgKzM3LDcgQEAKKyAj ZW5kaWYKKyAKKyBzdGF0aWMgdm9pZCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVj dCB0eXBlICosIHN0cnVjdCB1aV9maWxlICosIGludCwKKy0JCQkJCSBpbnQsIGludCwgaW50KTsK KysJCQkJCSBpbnQsIGludCwgaW50LCBpbnQpOworIAorIHZvaWQgZl90eXBlX3ByaW50X3ZhcnNw ZWNfcHJlZml4IChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdWlfZmlsZSAqLAorIAkJCQkgIGludCwg aW50KTsKK0BAIC01NCwxOCArNTQsNiBAQAorICAgZW51bSB0eXBlX2NvZGUgY29kZTsKKyAgIGlu dCBkZW1hbmdsZWRfYXJnczsKKyAKKy0gIGlmICh0eXBlX25vdF9hc3NvY2lhdGVkICh0eXBlKSkK Ky0gICAgeworLSAgICAgIHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3RyZWFtKTsKKy0gICAg ICByZXR1cm47CistICAgIH0KKy0KKy0gIGlmICh0eXBlX25vdF9hbGxvY2F0ZWQgKHR5cGUpKQor LSAgICB7CistICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7CistICAgICAg cmV0dXJuOworLSAgICB9CistCisgICBmX3R5cGVfcHJpbnRfYmFzZSAodHlwZSwgc3RyZWFtLCBz aG93LCBsZXZlbCk7CisgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKKyAgIGlmICgodmFyc3Ry aW5nICE9IE5VTEwgJiYgKnZhcnN0cmluZyAhPSAnXDAnKQorQEAgLTg3LDcgKzc1LDcgQEAKKyAg ICAgICAgICBzbyBkb24ndCBwcmludCBhbiBhZGRpdGlvbmFsIHBhaXIgb2YgKCkncy4gICovCisg CisgICAgICAgZGVtYW5nbGVkX2FyZ3MgPSB2YXJzdHJpbmdbc3RybGVuICh2YXJzdHJpbmcpIC0g MV0gPT0gJyknOyAKKy0gICAgICBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHR5cGUsIHN0 cmVhbSwgc2hvdywgMCwgZGVtYW5nbGVkX2FyZ3MsIDApOworKyAgICAgIGZfdHlwZV9wcmludF92 YXJzcGVjX3N1ZmZpeCAodHlwZSwgc3RyZWFtLCBzaG93LCAwLCBkZW1hbmdsZWRfYXJncywgMCwg MCk7CisgICAgfQorIH0KKyAKK0BAIC0xNTcsNyArMTQ1LDcgQEAKKyBzdGF0aWMgdm9pZAorIGZf dHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sCisgCQkJICAgICBpbnQgc2hvdywgaW50IHBhc3NlZF9hX3B0ciwgaW50IGRl bWFuZ2xlZF9hcmdzLAorLQkJCSAgICAgaW50IGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCkKKysJ CQkgICAgIGludCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwsIGludCBwcmludF9yYW5rX29ubHkp CisgeworICAgaW50IHVwcGVyX2JvdW5kLCBsb3dlcl9ib3VuZDsKKyAKK0BAIC0xODEsMzQgKzE2 OSw1MCBAQAorIAlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIoIik7CisgCisgICAgICAgaWYg KHR5cGVfbm90X2Fzc29jaWF0ZWQgKHR5cGUpKQorLSAgICAgICAgdmFsX3ByaW50X25vdF9hc3Nv Y2lhdGVkIChzdHJlYW0pOworKwlwcmludF9yYW5rX29ubHkgPSAxOworICAgICAgIGVsc2UgaWYg KHR5cGVfbm90X2FsbG9jYXRlZCAodHlwZSkpCistICAgICAgICB2YWxfcHJpbnRfbm90X2FsbG9j YXRlZCAoc3RyZWFtKTsKKysJcHJpbnRfcmFua19vbmx5ID0gMTsKKysgICAgICBlbHNlIGlmICgo VFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpCisrCQkmJiBQUk9QX0NPTlNUICE9IFRZUEVfRFlO X1BST1BfS0lORCAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpKSkKKysJICAgICAgfHwgKFRZ UEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpCisrCQkmJiBQUk9QX0NPTlNUICE9IFRZUEVfRFlOX1BS T1BfS0lORCAoVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkpKQorKwkgICAgICB8fCAoVFlQRV9E QVRBX0xPQ0FUSU9OICh0eXBlKQorKwkJICAmJiBQUk9QX0NPTlNUICE9IFRZUEVfRFlOX1BST1Bf S0lORCAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKSkpKQorKwkvKiBUaGlzIGNhc2UgZXhpc3Qg d2hlbiB3ZSBwdHlwZSBhIHR5cGVuYW1lIHdoaWNoIGhhcyB0aGUKKysJICAgZHluYW1pYyBwcm9w ZXJ0aWVzIGJ1dCBjYW5ub3QgYmUgcmVzb2x2ZWQgYXMgdGhlcmUgaXMKKysJICAgbm8gb2JqZWN0 LiAgKi8KKysJcHJpbnRfcmFua19vbmx5ID0gMTsKKysKKysgICAgICBpZiAoVFlQRV9DT0RFIChU WVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0gVFlQRV9DT0RFX0FSUkFZKQorKwlmX3R5cGVfcHJp bnRfdmFyc3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAsCisr CQkJCSAgICAgMCwgMCwgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsLAorKwkJCQkgICAgIHByaW50 X3Jhbmtfb25seSk7CisrCisrICAgICAgaWYgKHByaW50X3Jhbmtfb25seSA9PSAxKQorKwlmcHJp bnRmX2ZpbHRlcmVkIChzdHJlYW0sICI6Iik7CisgICAgICAgZWxzZQorLSAgICAgICAgeworLSAg ICAgICAgICBpZiAoVFlQRV9DT0RFIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0gVFlQRV9D T0RFX0FSUkFZKQorLSAgICAgICAgICAgIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwgMCwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMCwgMCwgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsKTsKKy0KKy0g ICAgICAgICAgbG93ZXJfYm91bmQgPSBmNzdfZ2V0X2xvd2VyYm91bmQgKHR5cGUpOworLSAgICAg ICAgICBpZiAobG93ZXJfYm91bmQgIT0gMSkJLyogTm90IHRoZSBkZWZhdWx0LiAgKi8KKy0gICAg ICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlZDoiLCBsb3dlcl9ib3VuZCk7Cist CistICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0LCBpZiB3ZSBoYXZlIGFuIGFzc3VtZWQgc2l6 ZSBhcnJheSwgd2UKKy0gICAgICAgICAgICAgcHJpbnQgb3V0IGEgd2FybmluZyBhbmQgcHJpbnQg dGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KKy0KKy0gICAgICAgICAgaWYgKFRZUEVfQVJSQVlf VVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEICh0eXBlKSkKKy0gICAgICAgICAgICBmcHJpbnRmX2Zp bHRlcmVkIChzdHJlYW0sICIqIik7CistICAgICAgICAgIGVsc2UKKy0gICAgICAgICAgICB7Cist ICAgICAgICAgICAgICB1cHBlcl9ib3VuZCA9IGY3N19nZXRfdXBwZXJib3VuZCAodHlwZSk7Cist ICAgICAgICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlZCIsIHVwcGVyX2JvdW5k KTsKKy0gICAgICAgICAgICB9CistCistICAgICAgICAgIGlmIChUWVBFX0NPREUgKFRZUEVfVEFS R0VUX1RZUEUgKHR5cGUpKSAhPSBUWVBFX0NPREVfQVJSQVkpCistICAgICAgICAgICAgZl90eXBl X3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFtLCAw LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBhcnJheXBy aW50X3JlY3Vyc2VfbGV2ZWwpOworLSAgICAgICAgfQorKwl7CisrCSAgbG93ZXJfYm91bmQgPSBm NzdfZ2V0X2xvd2VyYm91bmQgKHR5cGUpOworKwkgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkvKiBO b3QgdGhlIGRlZmF1bHQuICAqLworKwkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQ6 IiwgbG93ZXJfYm91bmQpOworKworKwkgIC8qIE1ha2Ugc3VyZSB0aGF0LCBpZiB3ZSBoYXZlIGFu IGFzc3VtZWQgc2l6ZSBhcnJheSwgd2UKKysJICAgICBwcmludCBvdXQgYSB3YXJuaW5nIGFuZCBw cmludCB0aGUgdXBwZXJib3VuZCBhcyAnKicuICAqLworKworKwkgIGlmIChUWVBFX0FSUkFZX1VQ UEVSX0JPVU5EX0lTX1VOREVGSU5FRCAodHlwZSkpCisrCSAgICBmcHJpbnRmX2ZpbHRlcmVkIChz dHJlYW0sICIqIik7CisrCSAgZWxzZQorKwkgICAgeworKwkgICAgICB1cHBlcl9ib3VuZCA9IGY3 N19nZXRfdXBwZXJib3VuZCAodHlwZSk7CisrCSAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIiVkIiwgdXBwZXJfYm91bmQpOworKwkgICAgfQorKwl9CisrCisrICAgICAgaWYgKFRZUEVf Q09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKKysJZl90 eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFt LCAwLAorKwkJCQkgICAgIDAsIDAsIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCwKKysJCQkJICAg ICBwcmludF9yYW5rX29ubHkpOworKworICAgICAgIGlmIChhcnJheXByaW50X3JlY3Vyc2VfbGV2 ZWwgPT0gMSkKKyAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIpOworICAgICAgIGVsc2UK K0BAIC0yMTksMTMgKzIyMywxNCBAQAorICAgICBjYXNlIFRZUEVfQ09ERV9QVFI6CisgICAgIGNh c2UgVFlQRV9DT0RFX1JFRjoKKyAgICAgICBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKFRZ UEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAsIDEsIDAsCistCQkJCSAgIGFycmF5cHJp bnRfcmVjdXJzZV9sZXZlbCk7CisrCQkJCSAgIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCwgMCk7 CisgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIpOworICAgICAgIGJyZWFrOwor IAorICAgICBjYXNlIFRZUEVfQ09ERV9GVU5DOgorICAgICAgIGZfdHlwZV9wcmludF92YXJzcGVj X3N1ZmZpeCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwgMCwKKy0JCQkJICAgcGFz c2VkX2FfcHRyLCAwLCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpOworKwkJCQkgICBwYXNzZWRf YV9wdHIsIDAsIGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCwKKysJCQkJICAgMCk7CisgICAgICAg aWYgKHBhc3NlZF9hX3B0cikKKyAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIpOworIAor QEAgLTM3Niw3ICszODEsNyBAQAorIAkgICAgICBmcHV0c19maWx0ZXJlZCAoIiA6OiAiLCBzdHJl YW0pOworIAkgICAgICBmcHV0c19maWx0ZXJlZCAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpbmRl eCksIHN0cmVhbSk7CisgCSAgICAgIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoVFlQRV9G SUVMRF9UWVBFICh0eXBlLCBpbmRleCksCistCQkJCQkgICBzdHJlYW0sIHNob3cgLSAxLCAwLCAw LCAwKTsKKysJCQkJCSAgIHN0cmVhbSwgc2hvdyAtIDEsIDAsIDAsIDAsIDApOworIAkgICAgICBm cHV0c19maWx0ZXJlZCAoIlxuIiwgc3RyZWFtKTsKKyAJICAgIH0KKyAJICBmcHJpbnRmaV9maWx0 ZXJlZCAobGV2ZWwsIHN0cmVhbSwgIkVuZCBUeXBlICIpOworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCis9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5m OTAJMjAxNi0wNy0xNiAxMDo1NTo0Mi4wNzk1MjU4NjAgKzAyMDAKK0BAIC0wLDAgKzEsODAgQEAK KyshIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyEKKysh IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisrISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyshIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEgTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyshCisr ISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrcHJvZ3JhbSBwb2ludGVycworKworKyAg dHlwZSA6OiB0d28KKysgICAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogaXZsYTEgKDopCisrICAg IGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGl2bGEyICg6LCA6KQorKyAgZW5kIHR5cGUgdHdvCisr CisrICBsb2dpY2FsLCB0YXJnZXQgOjogbG9ndgorKyAgY29tcGxleCwgdGFyZ2V0IDo6IGNvbXYK KysgIGNoYXJhY3RlciwgdGFyZ2V0IDo6IGNoYXJ2CisrICBjaGFyYWN0ZXIgKGxlbj0zKSwgdGFy Z2V0IDo6IGNoYXJhCisrICBpbnRlZ2VyLCB0YXJnZXQgOjogaW50dgorKyAgaW50ZWdlciwgdGFy Z2V0LCBkaW1lbnNpb24gKDEwLDIpIDo6IGludGEKKysgIHJlYWwsIHRhcmdldCAgICA6OiByZWFs dgorKyAgdHlwZSh0d28pLCB0YXJnZXQgIDo6IHR3b3YKKysKKysgIGxvZ2ljYWwsIHBvaW50ZXIg OjogbG9ncAorKyAgY29tcGxleCwgcG9pbnRlciA6OiBjb21wCisrICBjaGFyYWN0ZXIsIHBvaW50 ZXI6OiBjaGFycAorKyAgY2hhcmFjdGVyIChsZW49MyksIHBvaW50ZXI6OiBjaGFyYXAKKysgIGlu dGVnZXIsIHBvaW50ZXIgOjogaW50cAorKyAgaW50ZWdlciwgcG9pbnRlciwgZGltZW5zaW9uICg6 LDopIDo6IGludGFwCisrICByZWFsLCBwb2ludGVyIDo6IHJlYWxwCisrICB0eXBlKHR3byksIHBv aW50ZXIgOjogdHdvcAorKworKyAgbnVsbGlmeSAobG9ncCkKKysgIG51bGxpZnkgKGNvbXApCisr ICBudWxsaWZ5IChjaGFycCkKKysgIG51bGxpZnkgKGNoYXJhcCkKKysgIG51bGxpZnkgKGludHAp CisrICBudWxsaWZ5IChpbnRhcCkKKysgIG51bGxpZnkgKHJlYWxwKQorKyAgbnVsbGlmeSAodHdv cCkKKysKKysgIGxvZ3AgPT4gbG9ndiAgICAhIEJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQKKysg IGNvbXAgPT4gY29tdgorKyAgY2hhcnAgPT4gY2hhcnYKKysgIGNoYXJhcCA9PiBjaGFyYQorKyAg aW50cCA9PiBpbnR2CisrICBpbnRhcCA9PiBpbnRhCisrICByZWFscCA9PiByZWFsdgorKyAgdHdv cCA9PiB0d292CisrCisrICBsb2d2ID0gYXNzb2NpYXRlZChsb2dwKSAgICAgISBCZWZvcmUgdmFs dWUgYXNzaWdubWVudAorKyAgY29tdiA9IGNtcGx4KDEsMikKKysgIGNoYXJ2ID0gImEiCisrICBj aGFyYSA9ICJhYmMiCisrICBpbnR2ID0gMTAKKysgIGludGEoOiw6KSA9IDEKKysgIGludGEoMywx KSA9IDMKKysgIHJlYWx2ID0gMy4xNAorKworKyAgYWxsb2NhdGUgKHR3b3YlaXZsYTEoMykpCisr ICBhbGxvY2F0ZSAodHdvdiVpdmxhMigyLDIpKQorKyAgdHdvdiVpdmxhMSgxKSA9IDExCisrICB0 d292JWl2bGExKDIpID0gMTIKKysgIHR3b3YlaXZsYTEoMykgPSAxMworKyAgdHdvdiVpdmxhMigx LDEpID0gMjExCisrICB0d292JWl2bGEyKDIsMSkgPSAyMjEKKysgIHR3b3YlaXZsYTIoMSwyKSA9 IDIxMgorKyAgdHdvdiVpdmxhMigyLDIpID0gMjIyCisrCisrICBpbnR2ID0gaW50diArIDEgISBB ZnRlciB2YWx1ZSBhc3NpZ25tZW50CisrCisrZW5kIHByb2dyYW0gcG9pbnRlcnMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5cGUu ZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9wcmludF90eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA3OTUyNTg2MCArMDIwMAor QEAgLTAsMCArMSwxMDAgQEAKKysjIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4g IElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytzdGFuZGFy ZF90ZXN0ZmlsZSAicG9pbnRlcnMuZjkwIgorK2xvYWRfbGliIGZvcnRyYW4uZXhwCisrCisraWYg eyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNm aWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQor KworKworK2lmICFbcnVudG9fbWFpbl0geworKyAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0 byBtYWluIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBp bGVyIGJlaW5nIHVzZWQsIHRoZSB0eXBlIG5hbWVzIGNhbiBiZSBwcmludGVkIGRpZmZlcmVudGx5 LgorK3NldCBsb2dpY2FsIFtmb3J0cmFuX2xvZ2ljYWw0XQorK3NldCByZWFsIFtmb3J0cmFuX3Jl YWw0XQorK3NldCBpbnQgW2ZvcnRyYW5faW50NF0KKytzZXQgY29tcGxleCBbZm9ydHJhbl9jb21w bGV4NF0KKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQmVmb3JlIHBv aW50ZXIgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9yZSBw b2ludGVyIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInB0eXBlIGxvZ3AiICJ0eXBlID0gUFRSIFRP IC0+IFxcKCAkbG9naWNhbCBcXCkiICJwdHlwZSBsb2dwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJf dGVzdCAicHR5cGUgY29tcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRjb21wbGV4IFxcKSIgInB0 eXBlIGNvbXAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSBjaGFycCIgInR5cGUg PSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEgXFwpIiAicHR5cGUgY2hhcnAsIG5vdCBhc3Nv Y2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSBjaGFyYXAiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBj aGFyYWN0ZXJcXCozIFxcKSIgInB0eXBlIGNoYXJhcCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rl c3QgInB0eXBlIGludHAiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkaW50IFxcKSIgInB0eXBlIGlu dHAsIG5vdCBhc3NvY2lhdGVkIgorK3NldCB0ZXN0ICJwdHlwZSBpbnRhcCwgbm90IGFzc29jaWF0 ZWQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInB0eXBlIGludGFwIiAkdGVzdCB7CisrICAgIC1yZSAi dHlwZSA9IFBUUiBUTyAtPiBcXCggJGludCBcXCg6LDpcXClcXClcclxuJGdkYl9wcm9tcHQgJCIg eworKyAgICAgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1yZSAidHlwZSA9ICRpbnQgXFwo Oiw6XFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgICAgIHBhc3MgJHRlc3QKKysgICAgfQor K30KKytnZGJfdGVzdCAicHR5cGUgcmVhbHAiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkcmVhbCBc XCkiICJwdHlwZSByZWFscCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHR3b3Ai IFwKKysgICAgW211bHRpX2xpbmUgInR5cGUgPSBQVFIgVE8gLT4gXFwoIFR5cGUgdHdvIiBcCisr ICAgICAgICAgICAgICAgICIgICAgJGludCA6OiBpdmxhMVxcKDpcXCkiIFwKKysgICAgICAgICAg ICAgICAgIiAgICAkaW50IDo6IGl2bGEyXFwoOiw6XFwpIiBcCisrICAgICAgICAgICAgICAgICJF bmQgVHlwZSB0d28gXFwpIl0gXAorKyAgICAicHR5cGUgdHdvcCwgbm90IGFzc29jaWF0ZWQiCisr Z2RiX3Rlc3QgInB0eXBlIHR3byIgXAorKyAgICBbbXVsdGlfbGluZSAidHlwZSA9IFR5cGUgdHdv IiBcCisrICAgICAgICAgICAgICAgICIgICAgJGludCA6OiBpdmxhMVxcKDpcXCkiIFwKKysgICAg ICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGEyXFwoOiw6XFwpIiBcCisrICAgICAgICAgICAg ICAgICJFbmQgVHlwZSB0d28iXQorKworKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJCZWZvcmUgdmFsdWUgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgIkJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJwdHlwZSB0d29wIiBc CisrICAgIFttdWx0aV9saW5lICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBUeXBlIHR3byIgXAorKyAg ICAgICAgICAgICAgICAiICAgICRpbnQgOjogaXZsYTFcXCg6XFwpIiBcCisrICAgICAgICAgICAg ICAgICIgICAgJGludCA6OiBpdmxhMlxcKDosOlxcKSIgXAorKyAgICAgICAgICAgICAgICAiRW5k IFR5cGUgdHdvIFxcKSJdCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1i ZXIgIkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJBZnRlciB2YWx1ZSBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJwdHlwZSBsb2d2IiAidHlwZSA9 ICRsb2dpY2FsIgorK2dkYl90ZXN0ICJwdHlwZSBjb212IiAidHlwZSA9ICRjb21wbGV4IgorK2dk Yl90ZXN0ICJwdHlwZSBjaGFydiIgInR5cGUgPSBjaGFyYWN0ZXJcXCoxIgorK2dkYl90ZXN0ICJw dHlwZSBjaGFyYSIgInR5cGUgPSBjaGFyYWN0ZXJcXCozIgorK2dkYl90ZXN0ICJwdHlwZSBpbnR2 IiAidHlwZSA9ICRpbnQiCisrZ2RiX3Rlc3QgInB0eXBlIGludGEiICJ0eXBlID0gJGludCBcXCgx MCwyXFwpIgorK2dkYl90ZXN0ICJwdHlwZSByZWFsdiIgInR5cGUgPSAkcmVhbCIKKysKKysKKytn ZGJfdGVzdCAicHR5cGUgbG9ncCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRsb2dpY2FsIFxcKSIK KytnZGJfdGVzdCAicHR5cGUgY29tcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRjb21wbGV4IFxc KSIKKytnZGJfdGVzdCAicHR5cGUgY2hhcnAiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0 ZXJcXCoxIFxcKSIKKytnZGJfdGVzdCAicHR5cGUgY2hhcmFwIiAidHlwZSA9IFBUUiBUTyAtPiBc XCggY2hhcmFjdGVyXFwqMyBcXCkiCisrZ2RiX3Rlc3QgInB0eXBlIGludHAiICJ0eXBlID0gUFRS IFRPIC0+IFxcKCAkaW50IFxcKSIKKytzZXQgdGVzdCAicHR5cGUgaW50YXAiCisrZ2RiX3Rlc3Rf bXVsdGlwbGUgJHRlc3QgJHRlc3QgeworKyAgICAtcmUgInR5cGUgPSAkaW50IFxcKDEwLDJcXClc clxuJGdkYl9wcm9tcHQgJCIgeworKyAgICAgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1y ZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggJGludCBcXCgxMCwyXFwpXFwpXHJcbiRnZGJfcHJvbXB0 ICQiIHsKKysgICAgICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KKytnZGJfdGVzdCAicHR5cGUg cmVhbHAiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCAkcmVhbCBcXCkiCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1wdHlwZS5leHAJMjAxNi0wNy0xNiAxMDo1NDo0OC43NDkwOTkxNTAgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1w dHlwZS5leHAJMjAxNi0wNy0xNiAxMDo1NTo0Mi4wNzk1MjU4NjAgKzAyMDAKK0BAIC0zMiw5ICsz Miw5IEBACisgIyBDaGVjayB0aGUgcHR5cGUgb2YgdmFyaW91cyBWTEEgc3RhdGVzIGFuZCBwb2lu dGVyIHRvIFZMQSdzLgorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGEx LWluaXQiXQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2bGExLWluaXQiCistZ2RiX3Rl c3QgInB0eXBlIHZsYTEiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+IiAicHR5cGUgdmxhMSBub3Qg aW5pdGlhbGl6ZWQiCistZ2RiX3Rlc3QgInB0eXBlIHZsYTIiICJ0eXBlID0gPG5vdCBhbGxvY2F0 ZWQ+IiAicHR5cGUgdmxhMiBub3QgaW5pdGlhbGl6ZWQiCistZ2RiX3Rlc3QgInB0eXBlIHB2bGEi ICJ0eXBlID0gPG5vdCBhc3NvY2lhdGVkPiIgInB0eXBlIHB2bGEgbm90IGluaXRpYWxpemVkIgor K2dkYl90ZXN0ICJwdHlwZSB2bGExIiAidHlwZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAicHR5cGUg dmxhMSBub3QgaW5pdGlhbGl6ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZsYTIiICJ0eXBlID0gJHJl YWwgXFwoOiw6LDpcXCkiICJwdHlwZSB2bGEyIG5vdCBpbml0aWFsaXplZCIKKytnZGJfdGVzdCAi cHR5cGUgcHZsYSIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBlIHB2bGEgbm90IGlu aXRpYWxpemVkIgorIGdkYl90ZXN0ICJwdHlwZSB2bGExKDMsIDYsIDkpIiAibm8gc3VjaCB2ZWN0 b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcXFwpIiBcCisgICAicHR5cGUgdmxh MSgzLCA2LCA5KSBub3QgaW5pdGlhbGl6ZWQiCisgZ2RiX3Rlc3QgInB0eXBlIHZsYTIoNSwgNDUs IDIwKSIgXAorQEAgLTgxLDIwICs4MSwyMCBAQAorIAorIGdkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJwdmxhLWRlYXNzb2NpYXRlZCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgInB2bGEtZGVhc3NvY2lhdGVkIgorLWdkYl90ZXN0ICJwdHlwZSBwdmxhIiAidHlwZSA9 IDxub3QgYXNzb2NpYXRlZD4iICJwdHlwZSBwdmxhIGRlYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAi cHR5cGUgcHZsYSIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBlIHB2bGEgZGVhc3Nv Y2lhdGVkIgorIGdkYl90ZXN0ICJwdHlwZSBwdmxhKDUsIDQ1LCAyMCkiIFwKKyAgICJubyBzdWNo IHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFzc29jaWF0ZWRcXFwpIiBcCisgICAicHR5 cGUgcHZsYSg1LCA0NSwgMjApIG5vdCBhc3NvY2lhdGVkIgorIAorIGdkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWRlYWxsb2NhdGVkIl0KKyBnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAidmxhMS1kZWFsbG9jYXRlZCIKKy1nZGJfdGVzdCAicHR5cGUgdmxhMSIgInR5 cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2bGExIG5vdCBhbGxvY2F0ZWQiCisrZ2RiX3Rl c3QgInB0eXBlIHZsYTEiICJ0eXBlID0gJHJlYWwgXFwoOiw6LDpcXCkiICJwdHlwZSB2bGExIG5v dCBhbGxvY2F0ZWQiCisgZ2RiX3Rlc3QgInB0eXBlIHZsYTEoMywgNiwgOSkiICJubyBzdWNoIHZl Y3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwKKyAgICJwdHlwZSB2 bGExKDMsIDYsIDkpIG5vdCBhbGxvY2F0ZWQiCisgCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgInZsYTItZGVhbGxvY2F0ZWQiXQorIGdkYl9jb250aW51ZV90b19icmVha3Bv aW50ICJ2bGEyLWRlYWxsb2NhdGVkIgorLWdkYl90ZXN0ICJwdHlwZSB2bGEyIiAidHlwZSA9IDxu b3QgYWxsb2NhdGVkPiIgInB0eXBlIHZsYTIgbm90IGFsbG9jYXRlZCIKKytnZGJfdGVzdCAicHR5 cGUgdmxhMiIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBlIHZsYTIgbm90IGFsbG9j YXRlZCIKKyBnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiBcCisgICAibm8gc3VjaCB2 ZWN0b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcXFwpIiBcCisgICAicHR5cGUg dmxhMig1LCA0NSwgMjApIG5vdCBhbGxvY2F0ZWQiCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAKKz09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0t LSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXR5cGUuZXhwCTIwMTYtMDctMTYgMTA6NTQ6NDguNzQ5MDk5MTUwICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAJMjAx Ni0wNy0xNiAxMDo1NTo0Mi4wODA1MjU4NjggKzAyMDAKK0BAIC0xMzIsNyArMTMyLDEwIEBACisg ICAgICAgICAgICAgICAgICAgICAgIkVuZCBUeXBlIG9uZSIgXQorIAorICMgQ2hlY2sgYWxsb2Nh dGlvbiBzdGF0dXMgb2YgZHluYW1pYyBhcnJheSBhbmQgaXQncyBkeW5hbWljIG1lbWJlcnMKKy1n ZGJfdGVzdCAicHR5cGUgZml2ZWR5bmFyciIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iCisrZ2Ri X3Rlc3QgInB0eXBlIGZpdmVkeW5hcnIiIFwKKysgICAgICAgICBbbXVsdGlfbGluZSAidHlwZSA9 IFR5cGUgZml2ZSIgXAorKyAgICAgICAgICAgICAgICAgICAgICIgICAgVHlwZSBvbmUgOjogdG9u ZSIgXAorKyAgICAgICAgICAgICAgICAgICAgICJFbmQgVHlwZSBmaXZlIFxcKDpcXCkiIF0KKyBn ZGJfdGVzdCAibmV4dCIgIiIKKyBnZGJfdGVzdCAicHR5cGUgZml2ZWR5bmFycigyKSIgXAorICAg ICAgICAgIFttdWx0aV9saW5lICJ0eXBlID0gVHlwZSBmaXZlIiBcCitAQCAtMTQxLDcgKzE0NCw3 IEBACisgICAgICAgICAgInB0eXBlIGZpdmVkeW5hcnIoMiksIHRvbmUgaXMgbm90IGFsbG9jYXRl ZCIKKyBnZGJfdGVzdCAicHR5cGUgZml2ZWR5bmFycigyKSV0b25lIiBcCisgICAgICAgICAgW211 bHRpX2xpbmUgInR5cGUgPSBUeXBlIG9uZSIgXAorLSAgICAgICAgICAgICAgICAgICAgICIgICAg JGludCA6OiBpdmxhXFwoPG5vdCBhbGxvY2F0ZWQ+XFwpIiBcCisrICAgICAgICAgICAgICAgICAg ICAgIiAgICAkaW50IDo6IGl2bGFcXCg6LDosOlxcKSIgXAorICAgICAgICAgICAgICAgICAgICAg ICJFbmQgVHlwZSBvbmUiIF0gXAorICAgICAgICAgICJwdHlwZSBmaXZlZHluYXJyKDIpJXRvbmUs IG5vdCBhbGxvY2F0ZWQiCisgCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEu NTAuMjAxNjA2MzAub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAJ MjAxNi0wNy0xNiAxMDo1NDo0OC43NDkwOTkxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAJMjAxNi0wNy0xNiAx MDo1NTo0Mi4wODA1MjU4NjggKzAyMDAKK0BAIC0zNCw3ICszNCw3IEBACisgZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInZsYTEtaW5pdCIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSIgIiA9IDxu b3QgYWxsb2NhdGVkPiIgInByaW50IG5vbi1hbGxvY2F0ZWQgdmxhMSIKKyBnZGJfdGVzdCAicHJp bnQgJnZsYTEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwgXFxcKDxub3QgYWxs b2NhdGVkPlxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoICRy ZWFsIFxcXCg6LDosOlxcXClcXFwpXFxcKSAkaGV4IiBcCisgICAicHJpbnQgbm9uLWFsbG9jYXRl ZCAmdmxhMSIKKyBnZGJfdGVzdCAicHJpbnQgdmxhMSgxLDEsMSkiICJubyBzdWNoIHZlY3RvciBl bGVtZW50IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwKKyAgICJwcmludCBtZW1iZXIg aW4gbm9uLWFsbG9jYXRlZCB2bGExICgxKSIKK0BAIC03NSw3ICs3NSw3IEBACisgIyBUcnkgdG8g YWNjZXNzIHZhbHVlcyBpbiB1bmRlZmluZWQgcG9pbnRlciB0byBWTEEgKGRhbmdsaW5nKQorIGdk Yl90ZXN0ICJwcmludCBwdmxhIiAiID0gPG5vdCBhc3NvY2lhdGVkPiIgInByaW50IHVuZGVmaW5l ZCBwdmxhIgorIGdkYl90ZXN0ICJwcmludCAmcHZsYSIgXAorLSAgIiA9IFxcXChQVFIgVE8gLT4g XFxcKCAkcmVhbCBcXFwoPG5vdCBhc3NvY2lhdGVkPlxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAi ID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFsIFxcXCg6LDosOlxcXClcXFwpXFxcKSAkaGV4IiBc CisgICAicHJpbnQgbm9uLWFzc29jaWF0ZWQgJnB2bGEiCisgZ2RiX3Rlc3QgInByaW50IHB2bGEo MSwgMywgOCkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IFxcXCh2ZWN0b3Igbm90IGFzc29jaWF0 ZWRcXFwpIiBcCisgICAicHJpbnQgdW5kZWZpbmVkIHB2bGEoMSwzLDgpIgorSW5kZXg6IGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAor PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCTIwMTYtMDctMTYgMTA6NTQ6NDguNzQ5MDk5MTUwICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxh LWZvcnRyYW4uZXhwCTIwMTYtMDctMTYgMTA6NTU6NDIuMDgwNTI1ODY4ICswMjAwCitAQCAtMTcs NiArMTcsNyBAQAorICMgQXJyYXkgKFZMQSkuCisgCisgbG9hZF9saWIgbWktc3VwcG9ydC5leHAK Kytsb2FkX2xpYiBmb3J0cmFuLmV4cAorIHNldCBNSUZMQUdTICItaT1taSIKKyBsb2FkX2xpYiAi Zm9ydHJhbi5leHAiCisgCitAQCAtNTAsMTAgKzUxLDEwIEBACisgbWlfZ2RiX3Rlc3QgIjUwMC1k YXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMSIgXAorICAgIjUwMFxcXmRvbmUsdmFsdWU9XCI8 bm90IGFsbG9jYXRlZD5cIiIgImV2YWx1YXRlIG5vdCBhbGxvY2F0ZWQgdmxhIgorIAorLW1pX2Ny ZWF0ZV92YXJvYmpfY2hlY2tlZCB2bGExX25vdF9hbGxvY2F0ZWQgdmxhMSAiPG5vdCBhbGxvY2F0 ZWQ+IiBcCisrbWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHZsYTFfbm90X2FsbG9jYXRlZCB2bGEx ICIkcmVhbCBcXCg6XFwpIiBcCisgICAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHZsYTFfbm90X2Fs bG9jYXRlZCIKKyBtaV9nZGJfdGVzdCAiNTAxLXZhci1pbmZvLXR5cGUgdmxhMV9ub3RfYWxsb2Nh dGVkIiBcCistICAiNTAxXFxeZG9uZSx0eXBlPVwiPG5vdCBhbGxvY2F0ZWQ+XCIiIFwKKysgICI1 MDFcXF5kb25lLHR5cGU9XCIkcmVhbCBcXCg6XFwpXCIiIFwKKyAgICJpbmZvIHR5cGUgdmFyaWFi bGUgdmxhMV9ub3RfYWxsb2NhdGVkIgorIG1pX2dkYl90ZXN0ICI1MDItdmFyLXNob3ctZm9ybWF0 IHZsYTFfbm90X2FsbG9jYXRlZCIgXAorICAgIjUwMlxcXmRvbmUsZm9ybWF0PVwibmF0dXJhbFwi IiBcCitAQCAtMTQwLDEwICsxNDEsMTAgQEAKKyAgICAgLXJlICI1ODBcXF5kb25lLHZhbHVlPVwi PG5vdCBhc3NvY2lhdGVkPlwiLioke21pX2dkYl9wcm9tcHR9JCIgeworIAlwYXNzICR0ZXN0Cisg CistCW1pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCBwdmxhMl9ub3RfYXNzb2NpYXRlZCBwdmxhMiAi PG5vdCBhc3NvY2lhdGVkPiIgXAorKwltaV9jcmVhdGVfdmFyb2JqX2NoZWNrZWQgcHZsYTJfbm90 X2Fzc29jaWF0ZWQgcHZsYTIgIiRyZWFsIFxcKDosOlxcKSIgXAorIAkgICAgImNyZWF0ZSBsb2Nh bCB2YXJpYWJsZSBwdmxhMl9ub3RfYXNzb2NpYXRlZCIKKyAJbWlfZ2RiX3Rlc3QgIjU4MS12YXIt aW5mby10eXBlIHB2bGEyX25vdF9hc3NvY2lhdGVkIiBcCistCSAgICAiNTgxXFxeZG9uZSx0eXBl PVwiPG5vdCBhc3NvY2lhdGVkPlwiIiBcCisrCSAgICAiNTgxXFxeZG9uZSx0eXBlPVwiJHJlYWwg XFwoOiw6XFwpXCIiIFwKKyAJICAgICJpbmZvIHR5cGUgdmFyaWFibGUgcHZsYTJfbm90X2Fzc29j aWF0ZWQiCisgCW1pX2dkYl90ZXN0ICI1ODItdmFyLXNob3ctZm9ybWF0IHB2bGEyX25vdF9hc3Nv Y2lhdGVkIiBcCisgCSAgICAiNTgyXFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFsXCIiIFwKCmRpZmYg LS1naXQgYS9nZGItdmxhLWludGVsLTVvZjcucGF0Y2ggYi9nZGItdmxhLWludGVsLTVvZjcucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E0OWIzYwotLS0gL2Rldi9u dWxsCisrKyBiL2dkYi12bGEtaW50ZWwtNW9mNy5wYXRjaApAQCAtMCwwICsxLDM0OSBAQAorRnJv bSBiNmU2NjhjY2QzNTZlYTNlNzVkMzBmMjAzMTQzMzRiMTIwM2MyMmRlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwu Y29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BB VENIIDUvN10gUmVzb2x2ZSBkeW5hbWljIHRhcmdldCB0eXBlcyBvZiBwb2ludGVycy4KKworV2hl biBkZXJlZmVyZW5jaW5nIHBvaW50ZXJzIHRvIGR5bmFtaWMgdGFyZ2V0IHR5cGVzLAorcmVzb2x2 ZSB0aGUgdGFyZ2V0IHR5cGUuCisKKzIwMTYtMDYtMzAgIEJlcm5oYXJkIEhlY2tlbCAgPGJlcm5o YXJkLmhlY2tlbEBpbnRlbC5jb20+CisKK2dkYi9DaGFuZ2Vsb2c6CisJKiBORVdTOiBBZGRlZCBl bnRyeS4KKwkqIGMtdmFscHJpbnQuYyAoY19wcmludF92YWwpOiBSZXNvbHZlIGR5bmFtaWMgdGFy Z2V0IHR5cGVzLgorCSogdmFsb3BzLmMgKHZhbHVlX2luZCk6IFJlc29sdmUgZHluYW1pYyB0YXJn ZXQgdHlwZXMuCisJKiB2YWxwcmludC5jIChjaGVja19wcmludGFibGUpOiBEb24ndCBzaG9ydGN1 dCBub3QgYXNzb2NpYXRlZAorCSAgcG9pbnRlcnMuCisKK2dkYi9UZXN0c3VpdGUvQ2hhbmdlbG9n OgorCSogcG9pbnRlcnMuZjkwOiBBZGRlZCBwb2ludGVyIHRvIGR5bmFtaWMgdHlwZXMuCisJKiBn ZGIuZm9ydHJhbi9wb2ludGVycy5leHA6IE5ldy4KKworQ2hhbmdlLUlkOiBJOTk4ZDRkYTRhNWJh NDg5OWI4Y2IyMTE1NTc2ZjQ0ZWZhNzQxZTY5OAorLS0tCisgZ2RiL05FV1MgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKworIGdkYi9jLXZhbHByaW50LmMgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIyICsrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguZXhw ICAgICAgIHwgICA0ICsrCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAg fCAxMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9wb2ludGVycy5mOTAgfCAgMTcgKysrKysKKyBnZGIvdmFsb3BzLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxNiArKysrLQorIGdkYi92YWxwcmludC5jICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICA2IC0tCisgNyBmaWxlcyBjaGFuZ2VkLCAxODIgaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9wb2ludGVycy5leHAKKworZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05F V1MKK2luZGV4IDM4MjNmMjAuLjM3ZTRjYTcgMTAwNjQ0CistLS0gYS9nZGIvTkVXUworKysrIGIv Z2RiL05FV1MKK0BAIC0zLDYgKzMsOCBAQAorIAorICoqKiBDaGFuZ2VzIHNpbmNlIEdEQiA3LjEx CisgCisrKiBGb3J0cmFuOiBTdXBwb3J0IHBvaW50ZXJzIHRvIGR5bmFtaWMgdHlwZXMuCisrCisg KiBHREIgbm93IHN1cHBvcnRzIGEgbmVnYXRpdmUgcmVwZWF0IGNvdW50IGluIHRoZSAneCcgY29t bWFuZCB0byBleGFtaW5lCisgICBtZW1vcnkgYmFja3dhcmQgZnJvbSB0aGUgZ2l2ZW4gYWRkcmVz cy4gIEZvciBleGFtcGxlOgorIAorZGlmZiAtLWdpdCBhL2dkYi9jLXZhbHByaW50LmMgYi9nZGIv Yy12YWxwcmludC5jCitpbmRleCAyY2I0MThkLi4xMjAxNjNmIDEwMDY0NAorLS0tIGEvZ2RiL2Mt dmFscHJpbnQuYworKysrIGIvZ2RiL2MtdmFscHJpbnQuYworQEAgLTY0NSw2ICs2NDUsMjggQEAg Y192YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0s CisgICAgICAgZWxzZQorIAl7CisgCSAgLyogbm9ybWFsIGNhc2UgKi8KKysJICBpZiAoVFlQRV9D T0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSCisrCSAgICAgICYmIDEgPT0gaXNfZHluYW1pY190 eXBlICh0eXBlKSkKKysJICAgIHsKKysJICAgICAgQ09SRV9BRERSIGFkZHI7CisrCSAgICAgIGlm IChOVUxMICE9IFRZUEVfREFUQV9MT0NBVElPTiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKQor KwkJYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7CisrCSAgICAgIGVsc2UKKysJCWFkZHIgPSB2 YWx1ZV9hc19hZGRyZXNzICh2YWwpOworKworKwkgICAgICAvKiBXZSByZXNvbHZlIHRoZSB0YXJn ZXQtdHlwZSBvbmx5IHdoZW4gdGhlCisrCSAgICAgICAgIHBvaW50ZXIgaXMgYXNzb2NpYXRlZC4g ICovCisrCSAgICAgIGlmICgoYWRkciAhPSAwKQorKwkJICAmJiAoMCA9PSB0eXBlX25vdF9hc3Nv Y2lhdGVkICh0eXBlKSkpCisrCQkgIFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpID0KKysJCSAgICAg IHJlc29sdmVfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwKKysJCQkJCSAg ICBOVUxMLCBhZGRyKTsKKysJICAgIH0KKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIC8qIERv IG5vdGhpbmcuIFJlZmVyZW5jZXMgYXJlIGFscmVhZHkgcmVzb2x2ZWQgZnJvbSB0aGUgYmVnaW5u aW5nLAorKwkgICAgICAgICBvbmx5IHBvaW50ZXJzIGFyZSByZXNvbHZlZCB3aGVuIHdlIGFjdHVh bCBuZWVkIHRoZSB0YXJnZXQuICAqLworKwkgICAgfQorIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0 cmVhbSwgIigiKTsKKyAJICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFt LCAtMSk7CisgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSAiKTsKK2RpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNw L3ZsYS1jeHguZXhwCitpbmRleCBiYWJkZmI3Li41NDNkOWViIDEwMDY0NAorLS0tIGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3Zs YS1jeHguZXhwCitAQCAtMjYsNiArMjYsOCBAQCBpZiAhW3J1bnRvX21haW5dIHsKKyBnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCJd CisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQi CisgZ2RiX3Rlc3QgInB0eXBlIHB0ciIgImludCBcXChcXCpcXClcXFxbdmFyaWFibGUgbGVuZ3Ro XFxcXSIgInB0eXBlIHB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAi cHJpbnQgcHRyIiAiXFwoaW50IFxcKFxcKlxcKVxcXFt2YXJpYWJsZSBsZW5ndGhcXFxdXFwpIDB4 MCIgInByaW50IHB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAicHJp bnQgKnB0ciIgIkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwIiAicHJpbnQgKnB0 ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAidmxhc19maWxsZWQiXQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJ2bGFzX2ZpbGxlZCIKK0BAIC0zOCwzICs0MCw1IEBAIGdkYl90ZXN0ICJwcmludCB2bGFyZWYi ICIgPSBcXChpbnQgXFwoJlxcKVxcXFszXFxcXVxcKSBAJGhleDogXFx7NSwgNywgOVxcfSIKKyBn ZGJfdGVzdCAicHJpbnQgdmxhcmVmMiIgIiA9IFxcKC4qXFwpIEAkaGV4OiBcXHs1LCA3LCA5XFx9 IgorIGdkYl90ZXN0ICJwcmludCBjIiAiID0gXFx7ZSA9IFxce2MgPSBAJGhleFxcfVxcfSIKKyBn ZGJfdGVzdCAicHR5cGUgcHRyIiAiaW50IFxcKFxcKlxcKVxcXFszXFxcXSIKKytnZGJfdGVzdCAi cHJpbnQgcHRyIiAiXFwoaW50IFxcKFxcKlxcKVxcXFszXFxcXVxcKSAkaGV4IgorK2dkYl90ZXN0 ICJwcmludCAqcHRyIiAiID0gXFx7NSwgNywgOVxcfSIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v cG9pbnRlcnMuZXhwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYzE5ZDdl MAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVy cy5leHAKK0BAIC0wLDAgKzEsMTIzIEBACisrIyBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGlj ZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisr c3RhbmRhcmRfdGVzdGZpbGUgInBvaW50ZXJzLmY5MCIKKytsb2FkX2xpYiBmb3J0cmFuLmV4cAor KworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9 ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7CisrICAgIHJldHVybiAt MQorK30KKysKKytpZiAhW3J1bnRvX21haW5dIHsKKysgICAgdW50ZXN0ZWQgImNvdWxkIG5vdCBy dW4gdG8gbWFpbiIKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgRGVwZW5kaW5nIG9uIHRoZSBj b21waWxlciBiZWluZyB1c2VkLCB0aGUgdHlwZSBuYW1lcyBjYW4gYmUgcHJpbnRlZCBkaWZmZXJl bnRseS4KKytzZXQgbG9naWNhbCBbZm9ydHJhbl9sb2dpY2FsNF0KKytzZXQgcmVhbCBbZm9ydHJh bl9yZWFsNF0KKytzZXQgaW50IFtmb3J0cmFuX2ludDRdCisrc2V0IGNvbXBsZXggW2ZvcnRyYW5f Y29tcGxleDRdCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJl Zm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJC ZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJwcmludCBsb2dwIiAiPSBcXChQ VFIgVE8gLT4gXFwoICRsb2dpY2FsIFxcKVxcKSAweDAiICJwcmludCBsb2dwLCBub3QgYXNzb2Np YXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKmxvZ3AiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBh ZGRyZXNzIDB4MCIgInByaW50ICpsb2dwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJp bnQgY29tcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkY29tcGxleCBcXClcXCkgMHgwIiAicHJpbnQg Y29tcCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50ICpjb21wIiAiQ2Fubm90IGFj Y2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAqY29tcCwgbm90IGFzc29jaWF0ZWQi CisrZ2RiX3Rlc3QgInByaW50IGNoYXJwIiAiPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3Rlclxc KjEgXFwpXFwpIDB4MCIgInByaW50IGNoYXJwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAi cHJpbnQgKmNoYXJwIiAiQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmlu dCAqY2hhcnAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCBjaGFyYXAiICI9IFxc KFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXClcXCkgMHgwIiAicHJpbnQgY2hhcmFwLCBu b3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKmNoYXJhcCIgIkNhbm5vdCBhY2Nlc3Mg bWVtb3J5IGF0IGFkZHJlc3MgMHgwIiAicHJpbnQgKmNoYXJhcCwgbm90IGFzc29jaWF0ZWQiCisr Z2RiX3Rlc3QgInByaW50IGludHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBcXClcXCkgMHgw IiAicHJpbnQgaW50cCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50ICppbnRwIiAi Q2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAqaW50cCwgbm90IGFz c29jaWF0ZWQiCisrc2V0IHRlc3QgInByaW50IGludGFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJf dGVzdF9tdWx0aXBsZSAicHJpbnQgaW50YXAiICR0ZXN0IHsKKysgIC1yZSAiID0gXFwoUFRSIFRP IC0+IFxcKCAkaW50IFxcKDosOlxcKVxcKVxcKSA8bm90IGFzc29jaWF0ZWQ+XHJcbiRnZGJfcHJv bXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdAorKyAgfQorKyAgLXJlICIgPSA8bm90IGFzc29jaWF0 ZWQ+XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdAorKyAgfQorK30KKytnZGJf dGVzdCAicHJpbnQgcmVhbHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJHJlYWwgXFwpXFwpIDB4MCIg InByaW50IHJlYWxwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKnJlYWxwIiAi Q2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAqcmVhbHAsIG5vdCBh c3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCBcJG15X3ZhciA9IGludHAiICI9IFxcKFBUUiBU TyAtPiBcXCggJGludCBcXClcXCkgMHgwIgorKworKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJCZWZvcmUgdmFsdWUgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3Rv X2JyZWFrcG9pbnQgIkJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJwcmludCAq KHR3b3ApJWl2bGEyIiAiPSA8bm90IGFsbG9jYXRlZD4iCisrCisrCisrZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgIkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQiXQorK2dkYl9jb250 aW51ZV90b19icmVha3BvaW50ICJBZnRlciB2YWx1ZSBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJw cmludCBsb2dwIiAiPSBcXChQVFIgVE8gLT4gXFwoICRsb2dpY2FsIFxcKVxcKSAkaGV4XCggPC4q PlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKmxvZ3AiICI9IFxcLlRSVUVcXC4iCisrZ2RiX3Rlc3Qg InByaW50IGNvbXAiICI9IFxcKFBUUiBUTyAtPiBcXCggJGNvbXBsZXggXFwpXFwpICRoZXhcKCA8 Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqY29tcCIgIj0gXFwoMSwyXFwpIgorK2dkYl90ZXN0 ICJwcmludCBjaGFycCIgIj0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxIFxcKVxcKSAk aGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKmNoYXJwIiAiPSAnYSciCisrZ2RiX3Rl c3QgInByaW50IGNoYXJhcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxc KSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKmNoYXJhcCIgIj0gJ2FiYyciCisr Z2RiX3Rlc3QgInByaW50IGludHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBcXClcXCkgJGhl eFwoIDwuKj5cKT8iCisrZ2RiX3Rlc3QgInByaW50ICppbnRwIiAiPSAxMCIKKytzZXQgdGVzdF9u YW1lICJwcmludCBpbnRhcCwgYXNzb2NpYXRlZCIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQg aW50YXAiICR0ZXN0X25hbWUgeworKyAgLXJlICI9IFxcKFxcKCAxLCAxLCAzKCwgMSl7N31cXCkg XFwoIDEoLCAxKXs5fVxcKSBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0 X25hbWUKKysgIH0KKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoICRpbnQgXFwoMTAsMlxcKVxc KVxcKSAkaGV4XCggPC4qPlwpP1xyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIGdkYl90ZXN0ICJw cmludCAqaW50YXAiICI9IFxcKFxcKCAxLCAxLCAzKCwgMSl7N31cXCkgXFwoIDEoLCAxKXs5fVxc KSBcXCkiCisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorK30KKytzZXQgdGVzdF9uYW1lICJw cmludCBpbnR2bGFwLCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCBpbnR2 bGFwIiAkdGVzdF9uYW1lIHsKKysgIC1yZSAiPSBcXCgyLCAyLCAyLCA0KCwgMil7Nn1cXClcclxu JGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKysgIC1yZSAiPSBc XChQVFIgVE8gLT4gXFwoICRpbnQgXFwoMTBcXClcXClcXCkgJGhleFwoIDwuKj5cKT9cclxuJGdk Yl9wcm9tcHQgJCIgeworKyAgICBnZGJfdGVzdCAicHJpbnQgKmludHZsYXAiICI9IFxcKDIsIDIs IDIsIDQoLCAyKXs2fVxcKSIKKysgICAgcGFzcyAkdGVzdF9uYW1lCisrICB9CisrfQorK2dkYl90 ZXN0ICJwcmludCByZWFscCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkcmVhbCBcXClcXCkgJGhleFwo IDwuKj5cKT8iCisrZ2RiX3Rlc3QgInByaW50ICpyZWFscCIgIj0gM1xcLjE0MDAwXFxkKyIKKytn ZGJfdGVzdCAicHJpbnQgYXJyYXlPZlB0cigyKSVwIiAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUg dHdvIFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKihhcnJheU9mUHRy KDIpJXApIiAiPSBcXCggaXZsYTEgPSBcXCgxMSwgMTIsIDEzXFwpLCBpdmxhMiA9IFxcKFxcKCAy MTEsIDIyMVxcKSBcXCggMjEyLCAyMjJcXCkgXFwpIFxcKSIKKytzZXQgdGVzdF9uYW1lICJwcmlu dCBhcnJheU9mUHRyKDMpJXAiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3RfbmFtZSAkdGVzdF9u YW1lIHsKKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHdvIFxcKVxcKSA8bm90IGFz c29jaWF0ZWQ+XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdF9uYW1lCisrICB9 CisrICAtcmUgIj0gXFwoUFRSIFRPIC0+IFxcKCBUeXBlIHR3byBcXClcXCkgMHgwXHJcbiRnZGJf cHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdF9uYW1lCisrICB9CisrfQorK3NldCB0ZXN0X25h bWUgInByaW50ICooYXJyYXlPZlB0cigzKSVwKSwgYXNzb2NpYXRlZCIKKytnZGJfdGVzdF9tdWx0 aXBsZSAicHJpbnQgKihhcnJheU9mUHRyKDMpJXApIiAkdGVzdF9uYW1lIHsKKysgIC1yZSAiQ2Fu bm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDBcclxuJGdkYl9wcm9tcHQgJCIgeworKyAg ICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKysgIC1yZSAiQXR0ZW1wdCB0byB0YWtlIGNvbnRlbnRz IG9mIGEgbm90IGFzc29jaWF0ZWQgcG9pbnRlci5cclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBw YXNzICR0ZXN0X25hbWUKKysgIH0KKyt9CisrZ2RiX3Rlc3QgInByaW50ICooKGludGVnZXIqKSAm aW50YSArIDIpIiAiPSAzIiAicHJpbnQgdGVtcG9yYXJ5IHBvaW50ZXIsIGFycmF5IgorK2dkYl90 ZXN0ICJwcmludCAqKChpbnRlZ2VyKikgJmludHZsYSArIDMpIiAiPSA0IiAicHJpbnQgdGVtcG9y YXJ5IHBvaW50ZXIsIGFsbG9jYXRlZCB2bGEiCisrZ2RiX3Rlc3QgInByaW50IFwkcGMiICI9IFxc KFBUUiBUTyAtPiBcXCggdm9pZCBcXChcXClcXChcXClcXClcXCkgJGhleCA8cG9pbnRlcnNcXCtc XGQrPiIgIlByaW50IHByb2dyYW0gY291bnRlciIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9p bnRlcnMuZjkwCitpbmRleCA5ZWJiYWE5Li4wMDAxOTNjIDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vcG9pbnRlcnMuZjkwCitAQCAtMjAsMTQgKzIwLDIwIEBAIHByb2dyYW0gcG9pbnRlcnMK KyAgICAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogaXZsYTIgKDosIDopCisgICBlbmQgdHlwZSB0 d28KKyAKKysgIHR5cGUgOjogdHdvUHRyCisrICAgIHR5cGUgKHR3byksIHBvaW50ZXIgOjogcAor KyAgZW5kIHR5cGUgdHdvUHRyCisrCisgICBsb2dpY2FsLCB0YXJnZXQgOjogbG9ndgorICAgY29t cGxleCwgdGFyZ2V0IDo6IGNvbXYKKyAgIGNoYXJhY3RlciwgdGFyZ2V0IDo6IGNoYXJ2CisgICBj aGFyYWN0ZXIgKGxlbj0zKSwgdGFyZ2V0IDo6IGNoYXJhCisgICBpbnRlZ2VyLCB0YXJnZXQgOjog aW50dgorICAgaW50ZWdlciwgdGFyZ2V0LCBkaW1lbnNpb24gKDEwLDIpIDo6IGludGEKKysgIGlu dGVnZXIsIHRhcmdldCwgYWxsb2NhdGFibGUsIGRpbWVuc2lvbiAoOikgOjogaW50dmxhCisgICBy ZWFsLCB0YXJnZXQgICAgOjogcmVhbHYKKyAgIHR5cGUodHdvKSwgdGFyZ2V0ICA6OiB0d292Cisr ICB0eXBlKHR3b1B0cikgOjogYXJyYXlPZlB0ciAoMykKKyAKKyAgIGxvZ2ljYWwsIHBvaW50ZXIg OjogbG9ncAorICAgY29tcGxleCwgcG9pbnRlciA6OiBjb21wCitAQCAtMzUsNiArNDEsNyBAQCBw cm9ncmFtIHBvaW50ZXJzCisgICBjaGFyYWN0ZXIgKGxlbj0zKSwgcG9pbnRlcjo6IGNoYXJhcAor ICAgaW50ZWdlciwgcG9pbnRlciA6OiBpbnRwCisgICBpbnRlZ2VyLCBwb2ludGVyLCBkaW1lbnNp b24gKDosOikgOjogaW50YXAKKysgIGludGVnZXIsIHBvaW50ZXIsIGRpbWVuc2lvbiAoOikgOjog aW50dmxhcAorICAgcmVhbCwgcG9pbnRlciA6OiByZWFscAorICAgdHlwZSh0d28pLCBwb2ludGVy IDo6IHR3b3AKKyAKK0BAIC00NCw4ICs1MSwxMiBAQCBwcm9ncmFtIHBvaW50ZXJzCisgICBudWxs aWZ5IChjaGFyYXApCisgICBudWxsaWZ5IChpbnRwKQorICAgbnVsbGlmeSAoaW50YXApCisrICBu dWxsaWZ5IChpbnR2bGFwKQorICAgbnVsbGlmeSAocmVhbHApCisgICBudWxsaWZ5ICh0d29wKQor KyAgbnVsbGlmeSAoYXJyYXlPZlB0cigxKSVwKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigyKSVw KQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigzKSVwKQorIAorICAgbG9ncCA9PiBsb2d2ICAgICEg QmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAorICAgY29tcCA9PiBjb212CitAQCAtNTMsOCArNjQs MTAgQEAgcHJvZ3JhbSBwb2ludGVycworICAgY2hhcmFwID0+IGNoYXJhCisgICBpbnRwID0+IGlu dHYKKyAgIGludGFwID0+IGludGEKKysgIGludHZsYXAgPT4gaW50dmxhCisgICByZWFscCA9PiBy ZWFsdgorICAgdHdvcCA9PiB0d292CisrICBhcnJheU9mUHRyKDIpJXAgPT4gdHdvdgorIAorICAg bG9ndiA9IGFzc29jaWF0ZWQobG9ncCkgICAgICEgQmVmb3JlIHZhbHVlIGFzc2lnbm1lbnQKKyAg IGNvbXYgPSBjbXBseCgxLDIpCitAQCAtNjMsNiArNzYsMTAgQEAgcHJvZ3JhbSBwb2ludGVycwor ICAgaW50diA9IDEwCisgICBpbnRhKDosOikgPSAxCisgICBpbnRhKDMsMSkgPSAzCisrICBhbGxv Y2F0ZSAoaW50dmxhKDEwKSkKKysgIGludHZsYSg6KSA9IDIKKysgIGludHZsYSg0KSA9IDQKKysg IGludHZsYXAgPT4gaW50dmxhCisgICByZWFsdiA9IDMuMTQKKyAKKyAgIGFsbG9jYXRlICh0d292 JWl2bGExKDMpKQorZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMuYyBiL2dkYi92YWxvcHMuYworaW5k ZXggNDAzOTJlOC4uNmYzODU2MCAxMDA2NDQKKy0tLSBhL2dkYi92YWxvcHMuYworKysrIGIvZ2Ri L3ZhbG9wcy5jCitAQCAtMTU2Miw2ICsxNTYyLDE5IEBAIHZhbHVlX2luZCAoc3RydWN0IHZhbHVl ICphcmcxKQorICAgaWYgKFRZUEVfQ09ERSAoYmFzZV90eXBlKSA9PSBUWVBFX0NPREVfUFRSKQor ICAgICB7CisgICAgICAgc3RydWN0IHR5cGUgKmVuY190eXBlOworKyAgICAgIENPUkVfQUREUiBh ZGRyOworKworKyAgICAgIGlmICh0eXBlX25vdF9hc3NvY2lhdGVkIChiYXNlX3R5cGUpKQorKyAg ICAgICAgZXJyb3IgKF8oIkF0dGVtcHQgdG8gdGFrZSBjb250ZW50cyBvZiBhIG5vdCBhc3NvY2lh dGVkIHBvaW50ZXIuIikpOworKworKyAgICAgIGlmIChOVUxMICE9IFRZUEVfREFUQV9MT0NBVElP TiAoVFlQRV9UQVJHRVRfVFlQRSAoYmFzZV90eXBlKSkpCisrCWFkZHIgPSB2YWx1ZV9hZGRyZXNz IChhcmcxKTsKKysgICAgICBlbHNlCisrCWFkZHIgPSB2YWx1ZV9hc19hZGRyZXNzIChhcmcxKTsK KysKKysgICAgICBpZiAoYWRkciAhPSAwKQorKwlUWVBFX1RBUkdFVF9UWVBFIChiYXNlX3R5cGUp ID0KKysJICAgIHJlc29sdmVfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFIChiYXNlX3R5 cGUpLCBOVUxMLCBhZGRyKTsKKyAKKyAgICAgICAvKiBXZSBtYXkgYmUgcG9pbnRpbmcgdG8gc29t ZXRoaW5nIGVtYmVkZGVkIGluIGEgbGFyZ2VyIG9iamVjdC4KKyAgICAgICAgICBHZXQgdGhlIHJl YWwgdHlwZSBvZiB0aGUgZW5jbG9zaW5nIG9iamVjdC4gICovCitAQCAtMTU3Nyw4ICsxNTkwLDcg QEAgdmFsdWVfaW5kIChzdHJ1Y3QgdmFsdWUgKmFyZzEpCisgICAgICAgZWxzZQorIAkvKiBSZXRy aWV2ZSB0aGUgZW5jbG9zaW5nIG9iamVjdCBwb2ludGVkIHRvLiAgKi8KKyAJYXJnMiA9IHZhbHVl X2F0X2xhenkgKGVuY190eXBlLCAKKy0JCQkgICAgICAodmFsdWVfYXNfYWRkcmVzcyAoYXJnMSkK Ky0JCQkgICAgICAgLSB2YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoYXJnMSkpKTsKKysJCQkgICAg ICAoYWRkciAtIHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChhcmcxKSkpOworIAorICAgICAgIGVu Y190eXBlID0gdmFsdWVfdHlwZSAoYXJnMik7CisgICAgICAgcmV0dXJuIHJlYWRqdXN0X2luZGly ZWN0X3ZhbHVlX3R5cGUgKGFyZzIsIGVuY190eXBlLCBiYXNlX3R5cGUsIGFyZzEpOworZGlmZiAt LWdpdCBhL2dkYi92YWxwcmludC5jIGIvZ2RiL3ZhbHByaW50LmMKK2luZGV4IDY4OTZkYTIuLmY1 OTIyNzggMTAwNjQ0CistLS0gYS9nZGIvdmFscHJpbnQuYworKysrIGIvZ2RiL3ZhbHByaW50LmMK K0BAIC0xMTQxLDEyICsxMTQxLDYgQEAgdmFsdWVfY2hlY2tfcHJpbnRhYmxlIChzdHJ1Y3QgdmFs dWUgKnZhbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKKyAgICAgICByZXR1cm4gMDsKKyAgICAg fQorIAorLSAgaWYgKHR5cGVfbm90X2Fzc29jaWF0ZWQgKHZhbHVlX3R5cGUgKHZhbCkpKQorLSAg ICB7CistICAgICAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJlYW0pOworLSAgICAgIHJl dHVybiAwOworLSAgICB9CistCisgICBpZiAodHlwZV9ub3RfYWxsb2NhdGVkICh2YWx1ZV90eXBl ICh2YWwpKSkKKyAgICAgeworICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0p OworLS0gCisyLjcuNAorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC02b2Y3LnBhdGNoIGIv Z2RiLXZsYS1pbnRlbC02b2Y3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjQ1OTY4ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVsLTZvZjcucGF0Y2gK QEAgLTAsMCArMSwxMDIgQEAKK0Zyb20gODY2NTM0NGMxNGI5YWU4YjJlMGMzN2JhMDZkNjg4MWE1 NDZkMWEzNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJlcm5oYXJkIEhlY2tlbCA8 YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KK0RhdGU6IFR1ZSwgMTIgSnVsIDIwMTYgMDg6MTk6 MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA2LzddIEZvcnRyYW46IFRlc3RzdWl0ZSwgYWRkIGN5 Y2xpYyBwb2ludGVycy4KKworMjAxNi0wNS0yNSAgQmVybmhhcmQgSGVja2VsICA8YmVybmhhcmQu aGVja2VsQGludGVsLmNvbT4KKworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6CisJKiBwb2ludGVy cy5mOTA6IEFkZCBjeWxpYyBwb2ludGVycy4KKwkqIHBvaW50ZXJzLmV4cDogQWRkIHByaW50IG9m IGN5Y2xpYyBwb2ludGVycy4KKworQ2hhbmdlLUlkOiBJYzNiNjE4N2M1OTgwZmQ2YzM3ZTJlOTQ3 ODdmODMyMWU1YjdmMmQ3NQorLS0tCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVy cy5leHAgfCAyMCArKysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vcG9pbnRlcnMuZjkwIHwgMTIgKysrKysrKysrKysrCisgMiBmaWxlcyBjaGFuZ2VkLCAzMiBp bnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Bv aW50ZXJzLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZXhwCitpbmRl eCBjMTlkN2UwLi42N2NmOTk5IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9wb2ludGVycy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMu ZXhwCitAQCAtNTcsNiArNTcsMjQgQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50IGludGFwIiAk dGVzdCB7CisgZ2RiX3Rlc3QgInByaW50IHJlYWxwIiAiPSBcXChQVFIgVE8gLT4gXFwoICRyZWFs IFxcKVxcKSAweDAiICJwcmludCByZWFscCwgbm90IGFzc29jaWF0ZWQiCisgZ2RiX3Rlc3QgInBy aW50ICpyZWFscCIgIkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwIiAicHJpbnQg KnJlYWxwLCBub3QgYXNzb2NpYXRlZCIKKyBnZGJfdGVzdCAicHJpbnQgXCRteV92YXIgPSBpbnRw IiAiPSBcXChQVFIgVE8gLT4gXFwoICRpbnQgXFwpXFwpIDB4MCIKKytzZXQgdGVzdCAicHJpbnQg Y3ljbGljcDEsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCBjeWNs aWNwMSIgJHRlc3QgeworKyAgLXJlICI9IFxcKCBpID0gLT9cXGQrLCBwID0gMHgwIFxcKVxyXG4k Z2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3QKKysgIH0KKysgIC1yZSAiPSBcXCggaSA9 IC0/XFxkKywgcCA9IDxub3QgYXNzb2NpYXRlZD4gXFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysg ICAgcGFzcyAkdGVzdAorKyAgfQorK30KKytzZXQgdGVzdCAicHJpbnQgY3ljbGljcDElcCwgbm90 IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50IGN5Y2xpY3AxJXAiICR0ZXN0 IHsKKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHlwZXdpdGhwb2ludGVyIFxcKVxc KSAweDBcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0CisrICB9CisrICAtcmUg Ij0gXFwoUFRSIFRPIC0+IFxcKCBUeXBlIHR5cGV3aXRocG9pbnRlciBcXClcXCkgPG5vdCBhc3Nv Y2lhdGVkPlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3QKKysgIH0KKyt9Cisg CisgCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJlZm9yZSB2YWx1ZSBh c3NpZ25tZW50Il0KK0BAIC0xMTgsNiArMTM2LDggQEAgZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50 ICooYXJyYXlPZlB0cigzKSVwKSIgJHRlc3RfbmFtZSB7CisgICAgIHBhc3MgJHRlc3RfbmFtZQor ICAgfQorIH0KKytnZGJfdGVzdCAicHJpbnQgY3ljbGljcDEiICI9IFxcKCBpID0gMSwgcCA9ICRo ZXhcKCA8Lio+XCk/IFxcKSIKKytnZGJfdGVzdCAicHJpbnQgY3ljbGljcDElcCIgIj0gXFwoUFRS IFRPIC0+IFxcKCBUeXBlIHR5cGV3aXRocG9pbnRlciBcXClcXCkgJGhleFwoIDwuKj5cKT8iCisg Z2RiX3Rlc3QgInByaW50ICooKGludGVnZXIqKSAmaW50YSArIDIpIiAiPSAzIiAicHJpbnQgdGVt cG9yYXJ5IHBvaW50ZXIsIGFycmF5IgorIGdkYl90ZXN0ICJwcmludCAqKChpbnRlZ2VyKikgJmlu dHZsYSArIDMpIiAiPSA0IiAicHJpbnQgdGVtcG9yYXJ5IHBvaW50ZXIsIGFsbG9jYXRlZCB2bGEi CisgZ2RiX3Rlc3QgInByaW50IFwkcGMiICI9IFxcKFBUUiBUTyAtPiBcXCggdm9pZCBcXChcXClc XChcXClcXClcXCkgJGhleCA8cG9pbnRlcnNcXCtcXGQrPiIgIlByaW50IHByb2dyYW0gY291bnRl ciIKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MCBi L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCitpbmRleCAwMDAxOTNjLi42 MjQwYzg3IDEwMDY0NAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5m OTAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCitAQCAtMjAs NiArMjAsMTEgQEAgcHJvZ3JhbSBwb2ludGVycworICAgICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6 OiBpdmxhMiAoOiwgOikKKyAgIGVuZCB0eXBlIHR3bworIAorKyAgdHlwZSA6OiB0eXBlV2l0aFBv aW50ZXIKKysgICAgaW50ZWdlciBpCisrICAgIHR5cGUodHlwZVdpdGhQb2ludGVyKSwgcG9pbnRl cjo6IHAKKysgIGVuZCB0eXBlIHR5cGVXaXRoUG9pbnRlcgorKworICAgdHlwZSA6OiB0d29QdHIK KyAgICAgdHlwZSAodHdvKSwgcG9pbnRlciA6OiBwCisgICBlbmQgdHlwZSB0d29QdHIKK0BAIC0z NCw2ICszOSw3IEBAIHByb2dyYW0gcG9pbnRlcnMKKyAgIHJlYWwsIHRhcmdldCAgICA6OiByZWFs dgorICAgdHlwZSh0d28pLCB0YXJnZXQgIDo6IHR3b3YKKyAgIHR5cGUodHdvUHRyKSA6OiBhcnJh eU9mUHRyICgzKQorKyAgdHlwZSh0eXBlV2l0aFBvaW50ZXIpLCB0YXJnZXQ6OiBjeWNsaWNwMSxj eWNsaWNwMgorIAorICAgbG9naWNhbCwgcG9pbnRlciA6OiBsb2dwCisgICBjb21wbGV4LCBwb2lu dGVyIDo6IGNvbXAKK0BAIC01Nyw2ICs2Myw4IEBAIHByb2dyYW0gcG9pbnRlcnMKKyAgIG51bGxp ZnkgKGFycmF5T2ZQdHIoMSklcCkKKyAgIG51bGxpZnkgKGFycmF5T2ZQdHIoMiklcCkKKyAgIG51 bGxpZnkgKGFycmF5T2ZQdHIoMyklcCkKKysgIG51bGxpZnkgKGN5Y2xpY3AxJXApCisrICBudWxs aWZ5IChjeWNsaWNwMiVwKQorIAorICAgbG9ncCA9PiBsb2d2ICAgICEgQmVmb3JlIHBvaW50ZXIg YXNzaWdubWVudAorICAgY29tcCA9PiBjb212CitAQCAtNjgsNiArNzYsMTAgQEAgcHJvZ3JhbSBw b2ludGVycworICAgcmVhbHAgPT4gcmVhbHYKKyAgIHR3b3AgPT4gdHdvdgorICAgYXJyYXlPZlB0 cigyKSVwID0+IHR3b3YKKysgIGN5Y2xpY3AxJWkgPSAxCisrICBjeWNsaWNwMSVwID0+IGN5Y2xp Y3AyCisrICBjeWNsaWNwMiVpID0gMgorKyAgY3ljbGljcDIlcCA9PiBjeWNsaWNwMQorIAorICAg bG9ndiA9IGFzc29jaWF0ZWQobG9ncCkgICAgICEgQmVmb3JlIHZhbHVlIGFzc2lnbm1lbnQKKyAg IGNvbXYgPSBjbXBseCgxLDIpCistLSAKKzIuNy40CisKCmRpZmYgLS1naXQgYS9nZGItdmxhLWlu dGVsLTdvZjcucGF0Y2ggYi9nZGItdmxhLWludGVsLTdvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNzI2YzM0MQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEt aW50ZWwtN29mNy5wYXRjaApAQCAtMCwwICsxLDUxOCBAQAorRnJvbSAxZTViZDlhZWM5ZWUwMmMy Zjc3MWU0ZGM5OTc1NzBjODJkNzRiM2I4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog QmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAx MiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDcvN10gZm9ydF9keW5f YXJyYXk6IEZvcnRyYW4gZHluYW1pYyBzdHJpbmcgc3VwcG9ydAorCitUaGlzIHBhdGNoIGNoYW5n ZXMgdGhlIHNlbWFudGljIG9mIHRoZSBEd2FyZiBzdHJpbmcgbGVuZ3RoCithdHRyaWJ1dGUgdG8g cmVmbGVjdCB0aGUgc3RhbmRhcmQgYXMgd2VsbCBhcyBlbmFibGVzCitjb3JyZWN0IHN0cmluZyBs ZW5ndGggY2FsY3VsYXRpb24gb2YgZHluYW1pYyBzdHJpbmdzLiBBZGQKK3Rlc3RzIGZvciB2YXJv dXMgZHluYW1pYyBzdHJpbmcgZXZhbHVhdGlvbnMuCisKK09sZDoKKyhnZGIpIHAgbXlfZHluX3N0 cmluZworQ2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDYwNWZjMAorCitOZXc6Ciso Z2RiKSBwICpteV9keW5fc3RyaW5nCiskMSA9ICdmb28nCisKK2dkYi9DaGFuZ2xvZzoKKwkqIGR3 YXJmMnJlYWQuYyAocmVhZF90YWdfc3RyaW5nX3R5cGUpOiBjaGFuZ2VkCisJc2VtYW50aWMgb2Yg RFdfQVRfc3RyaW5nX2xlbmd0aCB0byBiZSBhYmxlIHRvCisJaGFuZGxlIER3YXJmIGJsb2NrcyBh cyB3ZWxsLiBTdXBwb3J0IGZvcgorCURXX0FUX2J5dGVfbGVuZ3RoIGFkZGVkIHRvIGdldCBjb3Jy ZWN0IGxlbmd0aAorCWlmIHNwZWNpZmllZCBpbiBjb21iaW5hdGlvbiB3aXRoCisJRFdfQVRfc3Ry aW5nX2xlbmd0aC4KKwkoYXR0cl90b19keW5hbWljX3Byb3ApOiBhZGRlZAorCWZ1bmN0aW9uYWxp dHkgdG8gYWRkIER3YXJmIG9wZXJhdG9ycyB0byBiYXRvbgorCWRhdGEgYXR0cmlidXRlLiBBZGRl ZCBwb3N0IHZhbHVlcyB0byBiYXRvbgorCWFzIHJlcXVpcmVkIGJ5IHRoZSBzdHJpbmcgZXZhbHVh dGlvbiBjYXNlLgorCShyZWFkX3N1YnJhbmdlX3R5cGUpOiBBZGFwdCBjYWxsZXIuCisJKHNldF9k aWVfdHlwZSk6IEFkYXB0IGNhbGxlci4KKwkoYWRkX3Bvc3RfdmFsdWVzX3RvX2JhdG9uKTogTmV3 IGZ1bmN0aW9uLgorICAgIAkqIGdkYnR5cGVzLmMgKHJlc29sdmVfZHluYW1pY190eXBlKTogQWRk CisgICAgCWNvbmRpdGlvbnMgdG8gc3VwcG9ydCBzdHJpbmcgdHlwZXMuCisgICAgCShyZXNvbHZl X2R5bmFtaWNfYXJyYXkpOiBBZGQgY29uZGl0aW9ucyBmb3IgZHluYW1pYworICAgIAlzdHJpbmdz IGFuZCBjcmVhdGUgYSBuZXcgc3RyaW5nIHR5cGUuCisgICAgCShpc19keW5hbWljX3R5cGUpOiBG b2xsb3cgcG9pbnRlciBpZiBhIHN0cmluZyB0eXBlCisgICAgCXdhcyBkZXRlY3RlZCwgYXMgRm9y dHJhbiBzdHJpbmdzIGFyZSByZXByZXNlbnRlZAorICAgIAlhcyBwb2ludGVycyB0byBzdHJpbmdz IGludGVybmFsbHkuCisKK2dkYi90ZXN0c3VpdGUvQ2hhbmdlbG9nOgorCSogdmxhLXN0cmluZ3Mu ZjkwOiBOZXcgZmlsZS4KKwkqIHZsYS1zdHJpbmdzLmV4cDogTmV3IGZpbGUuCisKK0NoYW5nZS1J ZDogSTdkN2Y0N2M3YTQ5MDBhN2ZkYjUxMTAyMDMyNDU1YjUzZDYwZTYwZDcKKy0tLQorIGdkYi9k d2FyZjJyZWFkLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTU4ICsrKysrKysrKysrKysr KysrKysrKysrKystLS0tLQorIGdkYi9nZGJ0eXBlcy5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDE1ICsrLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhw IHwgMTAzICsrKysrKysrKysrKysrKysrKysKKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1zdHJpbmdzLmY5MCB8ICAzOSArKysrKysrKworIDQgZmlsZXMgY2hhbmdlZCwgMjg1IGluc2Vy dGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAorCitkaWZmIC0tZ2l0IGEvZ2Ri L2R3YXJmMnJlYWQuYyBiL2dkYi9kd2FyZjJyZWFkLmMKK2luZGV4IDY2NThhMzguLjY3OGRhOGYg MTAwNjQ0CistLS0gYS9nZGIvZHdhcmYycmVhZC5jCisrKysgYi9nZGIvZHdhcmYycmVhZC5jCitA QCAtMTc2NCw3ICsxNzY0LDggQEAgc3RhdGljIHZvaWQgcmVhZF9zaWduYXR1cmVkX3R5cGUgKHN0 cnVjdCBzaWduYXR1cmVkX3R5cGUgKik7CisgCisgc3RhdGljIGludCBhdHRyX3RvX2R5bmFtaWNf cHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKKyAJCQkJIHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKKy0JCQkJIHN0cnVjdCBkeW5hbWljX3Byb3Ag KnByb3ApOworKwkJCQkgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwgY29uc3QgZ2RiX2J5dGUg KmFkZGl0aW9uYWxfZGF0YSwKKysJCQkJIGludCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7CisgCisg LyogbWVtb3J5IGFsbG9jYXRpb24gaW50ZXJmYWNlICovCisgCitAQCAtMTE0MzcsNyArMTE0Mzgs NyBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKKyAgICAgeworICAgICAgIG5ld29iai0+c3RhdGljX2xpbmsKKyAJPSBYT0JORVcg KCZvYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssIHN0cnVjdCBkeW5hbWljX3Byb3ApOworLSAgICAg IGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5r KTsKKysgICAgICBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgbmV3b2JqLT5z dGF0aWNfbGluaywgTlVMTCwgMCk7CisgICAgIH0KKyAKKyAgIGN1LT5saXN0X2luX3Njb3BlID0g JmxvY2FsX3N5bWJvbHM7CitAQCAtMTQ0OTUsMjkgKzE0NDk2LDk0IEBAIHJlYWRfdGFnX3N0cmlu Z190eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICBz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOworICAg c3RydWN0IHR5cGUgKnR5cGUsICpyYW5nZV90eXBlLCAqaW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsK KyAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7CistICB1bnNpZ25lZCBpbnQgbGVuZ3RoOworKyAg dW5zaWduZWQgaW50IGxlbmd0aCA9IFVJTlRfTUFYOworKworKyAgaW5kZXhfdHlwZSA9IG9iamZp bGVfdHlwZSAob2JqZmlsZSktPmJ1aWx0aW5faW50OworKyAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9z dGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwgaW5kZXhfdHlwZSwgMSwgbGVuZ3RoKTsKKyAKKysgIC8q IElmIERXX0FUX3N0cmluZ19sZW5ndGggaXMgZGVmaW5lZCwgdGhlIGxlbmd0aCBpcyBzdG9yZWQg aW4gbWVtb3J5LiAgKi8KKyAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9zdHJpbmdf bGVuZ3RoLCBjdSk7CisgICBpZiAoYXR0cikKKyAgICAgeworLSAgICAgIGxlbmd0aCA9IERXX1VO U05EIChhdHRyKTsKKysgICAgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKKysJewor KwkgIHN0cnVjdCBhdHRyaWJ1dGUgKmJ5dGVfc2l6ZSwgKmJpdF9zaXplOworKwkgIHN0cnVjdCBk eW5hbWljX3Byb3AgaGlnaDsKKysKKysJICBieXRlX3NpemUgPSBkd2FyZjJfYXR0ciAoZGllLCBE V19BVF9ieXRlX3NpemUsIGN1KTsKKysJICBiaXRfc2l6ZSA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2JpdF9zaXplLCBjdSk7CisrCisrCSAgLyogRFdfQVRfYnl0ZV9zaXplIHNob3VsZCBuZXZl ciBvY2N1ciBpbiBjb21iaW5hdGlvbiB3aXRoCisrCSAgICAgRFdfQVRfYml0X3NpemUuICAqLwor KwkgIGlmIChieXRlX3NpemUgIT0gTlVMTCAmJiBiaXRfc2l6ZSAhPSBOVUxMKQorKwkgICAgY29t cGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJICAgICAgIF8oIkRXX0FUX2J5dGVfc2l6 ZSBBTkQgIgorKwkJCSAiRFdfQVRfYml0X3NpemUgZm91bmQgdG9nZXRoZXIgYXQgdGhlIHNhbWUg dGltZS4iKSk7CisrCisrCSAgLyogSWYgRFdfQVRfc3RyaW5nX2xlbmd0aCBBTkQgRFdfQVRfYnl0 ZV9zaXplIGV4aXN0IHRvZ2V0aGVyLAorKwkgICAgIERXX0FUX2J5dGVfc2l6ZSBkZXNjcmliZXMg dGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHNob3VsZCBiZSByZWFkCisrCSAgICAgZnJvbSB0aGUg bGVuZ3RoIG1lbW9yeSBsb2NhdGlvbi4gICovCisrCSAgaWYgKGJ5dGVfc2l6ZSAhPSBOVUxMKQor KwkgICAgeworKwkgICAgICAvKiBCdWlsZCBuZXcgZHdhcmYyX2xvY2V4cHJfYmF0b24gc3RydWN0 dXJlIHdpdGggYWRkaXRpb25zIHRvIHRoZQorKwkJIGRhdGEgYXR0cmlidXRlLCB0byByZWZsZWN0 IERXQVJGIHNwZWNpYWxpdGllcyB0byBnZXQgYWRkcmVzcworKwkJIHNpemVzLiAgKi8KKysJICAg ICAgY29uc3QgZ2RiX2J5dGUgYXBwZW5kX29wc1tdID0KKysJCXsKKysJCS8qIERXX09QX2RlcmVm X3NpemU6IHNpemUgb2YgYW4gYWRkcmVzcyBvbiB0aGUgdGFyZ2V0IG1hY2hpbmUKKysJCSAgIChi eXRlcyksIHdoZXJlIHRoZSBzaXplIHdpbGwgYmUgc3BlY2lmaWVkIGJ5IHRoZSBuZXh0CisrCQkg ICBvcGVyYW5kLiAgKi8KKysJCURXX09QX2RlcmVmX3NpemUsCisrCQkvKiBPcGVyYW5kIGZvciBE V19PUF9kZXJlZl9zaXplLiAgKi8KKysJCURXX1VOU05EKGJ5dGVfc2l6ZSkgfTsKKysKKysJICAg ICAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gsIGFwcGVu ZF9vcHMsCisrCQkJCQkgQVJSQVlfU0laRShhcHBlbmRfb3BzKSkpCisrCQljb21wbGFpbnQgKCZz eW1maWxlX2NvbXBsYWludHMsCisrCQkJICAgXygiQ291bGQgbm90IHBhcnNlIERXX0FUX2J5dGVf c2l6ZSIpKTsKKysJICAgIH0KKysJICBlbHNlIGlmIChiaXRfc2l6ZSAhPSBOVUxMKQorKwkgICAg Y29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAorKwkJICAgICAgIF8oIkRXX0FUX3N0cmlu Z19sZW5ndGggQU5EICIKKysJCQkgIkRXX0FUX2JpdF9zaXplIGZvdW5kIGJ1dCBub3Qgc3VwcG9y dGVkIHlldC4iKSk7CisrCSAgLyogSWYgRFdfQVRfc3RyaW5nX2xlbmd0aCBXSVRIT1VUIERXX0FU X2J5dGVfc2l6ZSBleGlzdCwgdGhlIGRlZmF1bHQKKysJICAgICBpcyB0aGUgYWRkcmVzcyBzaXpl IG9mIHRoZSB0YXJnZXQgbWFjaGluZS4gICovCisrCSAgZWxzZQorKwkgICAgeworKwkgICAgICBj b25zdCBnZGJfYnl0ZSBhcHBlbmRfb3BzW10gPQorKwkJeyBEV19PUF9kZXJlZiB9OworKworKwkg ICAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgYXBw ZW5kX29wcywKKysJCQkJCSBBUlJBWV9TSVpFKGFwcGVuZF9vcHMpKSkKKysJCWNvbXBsYWludCAo JnN5bWZpbGVfY29tcGxhaW50cywKKysJCQkgICBfKCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfc3Ry aW5nX2xlbmd0aCIpKTsKKysJICAgIH0KKysKKysJICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5 cGUpLT5oaWdoID0gaGlnaDsKKysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIFRZUEVfSElHSF9C T1VORCAocmFuZ2VfdHlwZSkgPSBEV19VTlNORChhdHRyKTsKKysJICBUWVBFX0hJR0hfQk9VTkRf S0lORCAocmFuZ2VfdHlwZSkgPSBQUk9QX0NPTlNUOworKwl9CisgICAgIH0KKyAgIGVsc2UKKyAg ICAgeworLSAgICAgIC8qIENoZWNrIGZvciB0aGUgRFdfQVRfYnl0ZV9zaXplIGF0dHJpYnV0ZS4g ICovCisrICAgICAgLyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRlX3NpemUgYXR0cmlidXRlLCB3 aGljaCByZXByZXNlbnRzIHRoZSBsZW5ndGgKKysJIGluIHRoaXMgY2FzZS4gICovCisgICAgICAg YXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOworICAgICAgIGlm IChhdHRyKQorLSAgICAgICAgeworLSAgICAgICAgICBsZW5ndGggPSBEV19VTlNORCAoYXR0cik7 CistICAgICAgICB9CisrCXsKKysJICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gRFdf VU5TTkQoYXR0cik7CisrCSAgVFlQRV9ISUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5cGUpID0gUFJP UF9DT05TVDsKKysJfQorICAgICAgIGVsc2UKKy0gICAgICAgIHsKKy0gICAgICAgICAgbGVuZ3Ro ID0gMTsKKy0gICAgICAgIH0KKysJeworKwkgIFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkg PSAxOworKwkgIFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90eXBlKSA9IFBST1BfQ09OU1Q7 CisrCX0KKyAgICAgfQorIAorLSAgaW5kZXhfdHlwZSA9IG9iamZpbGVfdHlwZSAob2JqZmlsZSkt PmJ1aWx0aW5faW50OworLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAo TlVMTCwgaW5kZXhfdHlwZSwgMSwgbGVuZ3RoKTsKKyAgIGNoYXJfdHlwZSA9IGxhbmd1YWdlX3N0 cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBnZGJhcmNoKTsKKyAgIHR5cGUgPSBj cmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwgcmFuZ2VfdHlwZSk7CisgCitAQCAt MTQ4NDcsNyArMTQ5MTMsOCBAQCByZWFkX2Jhc2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUs IHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorIAorIHN0YXRpYyBpbnQKKyBhdHRyX3RvX2R5bmFtaWNf cHJvcCAoY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9pbmZvICpkaWUs CistCQkgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJv cCkKKysJCSAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3QgZHluYW1pY19wcm9wICpw cm9wLAorKwkJICAgICAgY29uc3QgZ2RiX2J5dGUgKmFkZGl0aW9uYWxfZGF0YSwgaW50IGFkZGl0 aW9uYWxfZGF0YV9zaXplKQorIHsKKyAgIHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24gKmJh dG9uOworICAgc3RydWN0IG9ic3RhY2sgKm9ic3RhY2sgPSAmY3UtPm9iamZpbGUtPm9iamZpbGVf b2JzdGFjazsKK0BAIC0xNDg1NywxNCArMTQ5MjQsMzMgQEAgYXR0cl90b19keW5hbWljX3Byb3Ag KGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAorIAor ICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCisgICAgIHsKKy0gICAgICBiYXRvbiA9 IFhPQk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7CisrICAgICAg YmF0b24gPSBYT0JORVcob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7Cisg ICAgICAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7CisgICAgICAgYmF0b24tPmxvY2V4 cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKKy0gICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdf QkxPQ0sgKGF0dHIpLT5zaXplOworLSAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9D SyAoYXR0ciktPmRhdGE7CisrCisrICAgICAgaWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYm IGFkZGl0aW9uYWxfZGF0YV9zaXplID4gMCkKKysJeworKwkgIGdkYl9ieXRlICpkYXRhOworKwor KwkgIGRhdGEgPSAoZ2RiX2J5dGUgKikgb2JzdGFja19hbGxvYygKKysJICAgICAgJmN1LT5vYmpm aWxlLT5vYmpmaWxlX29ic3RhY2ssCisrCSAgICAgIERXX0JMT0NLIChhdHRyKS0+c2l6ZSArIGFk ZGl0aW9uYWxfZGF0YV9zaXplKTsKKysJICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLIChhdHRyKS0+ ZGF0YSwgRFdfQkxPQ0sgKGF0dHIpLT5zaXplKTsKKysJICBtZW1jcHkgKGRhdGEgKyBEV19CTE9D SyAoYXR0ciktPnNpemUsIGFkZGl0aW9uYWxfZGF0YSwKKysJCSAgYWRkaXRpb25hbF9kYXRhX3Np emUpOworKworKwkgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOworKwkgIGJhdG9uLT5sb2Nl eHByLnNpemUgPSBEV19CTE9DSyAoYXR0ciktPnNpemUgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZTsK KysJfQorKyAgICAgIGVsc2UKKysJeworKwkgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9D SyAoYXR0ciktPmRhdGE7CisrCSAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRy KS0+c2l6ZTsKKysJfQorKworICAgICAgIHByb3AtPmRhdGEuYmF0b24gPSBiYXRvbjsKKyAgICAg ICBwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOworLSAgICAgIGdkYl9hc3NlcnQgKHByb3AtPmRh dGEuYmF0b24gIT0gTlVMTCk7CisrICAgICAgZ2RiX2Fzc2VydChwcm9wLT5kYXRhLmJhdG9uICE9 IE5VTEwpOworICAgICB9CisgICBlbHNlIGlmIChhdHRyX2Zvcm1faXNfcmVmIChhdHRyKSkKKyAg ICAgeworQEAgLTE0ODk3LDggKzE0OTgzLDI4IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25z dCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKyAJCWJhdG9u ID0gWE9CTkVXIChvYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uKTsKKyAJCWJh dG9uLT5yZWZlcmVuY2VkX3R5cGUgPSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0X2N1KTsK KyAJCWJhdG9uLT5sb2NleHByLnBlcl9jdSA9IGN1LT5wZXJfY3U7CistCQliYXRvbi0+bG9jZXhw ci5zaXplID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZTsKKy0JCWJhdG9uLT5sb2NleHBy LmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOworKworKwkJaWYgKGFkZGl0aW9u YWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXplID4gMCkKKysJCSAgeworKwkJ ICAgIGdkYl9ieXRlICpkYXRhOworKworKwkJICAgIGRhdGEgPSAoZ2RiX2J5dGUgKikgb2JzdGFj a19hbGxvYyAoJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCisrCQkJICAgIERXX0JMT0NL ICh0YXJnZXRfYXR0ciktPnNpemUgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7CisrCQkgICAgbWVt Y3B5IChkYXRhLCBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhLAorKwkJCSAgICBEV19CTE9D SyAodGFyZ2V0X2F0dHIpLT5zaXplKTsKKysJCSAgICBtZW1jcHkgKGRhdGEgKyBEV19CTE9DSyAo dGFyZ2V0X2F0dHIpLT5zaXplLAorKwkJCSAgICBhZGRpdGlvbmFsX2RhdGEsIGFkZGl0aW9uYWxf ZGF0YV9zaXplKTsKKysKKysJCSAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0gZGF0YTsKKysJCSAg ICBiYXRvbi0+bG9jZXhwci5zaXplID0gKERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUKKysJ CQkJCSAgICsgYWRkaXRpb25hbF9kYXRhX3NpemUpOworKwkJICB9CisrCQllbHNlCisrCQkgIHsK KysJCSAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+ZGF0 YTsKKysJCSAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+ c2l6ZTsKKysJCSAgfQorKworIAkJcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOworIAkJcHJvcC0+ a2luZCA9IFBST1BfTE9DRVhQUjsKKyAJCWdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0b24gIT0g TlVMTCk7CitAQCAtMTUwMDgsMTcgKzE1MTE0LDE3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorIAorICAgYXR0ciA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX2xvd2VyX2JvdW5kLCBjdSk7CisgICBpZiAoYXR0cikKKy0g ICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZsb3cpOworKyAgICBhdHRy X3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmxvdywgTlVMTCwgMCk7CisgICBlbHNl IGlmICghbG93X2RlZmF1bHRfaXNfdmFsaWQpCisgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29t cGxhaW50cywgXygiTWlzc2luZyBEV19BVF9sb3dlcl9ib3VuZCAiCisgCQkJCSAgICAgICItIERJ RSBhdCAweCV4IFtpbiBtb2R1bGUgJXNdIiksCisgCSAgICAgICBkaWUtPm9mZnNldC5zZWN0X29m Ziwgb2JqZmlsZV9uYW1lIChjdS0+b2JqZmlsZSkpOworIAorICAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX3VwcGVyX2JvdW5kLCBjdSk7CistICBpZiAoIWF0dHJfdG9fZHluYW1pY19w cm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCkpCisrICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9w IChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgTlVMTCwgMCkpCisgICAgIHsKKyAgICAgICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfY291bnQsIGN1KTsKKy0gICAgICBpZiAoYXR0cl90b19k eW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoKSkKKysgICAgICBpZiAoYXR0cl90b19k eW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBOVUxMLCAwKSkKKyAJeworIAkgIC8q IElmIGJvdW5kcyBhcmUgY29uc3RhbnQgZG8gdGhlIGZpbmFsIGNhbGN1bGF0aW9uIGhlcmUuICAq LworIAkgIGlmIChsb3cua2luZCA9PSBQUk9QX0NPTlNUICYmIGhpZ2gua2luZCA9PSBQUk9QX0NP TlNUKQorQEAgLTIyMzg5LDcgKzIyNDk1LDcgQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAgYXR0 ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2FsbG9jYXRlZCwgY3UpOworICAgaWYgKGF0dHJf Zm9ybV9pc19ibG9jayAoYXR0cikpCisgICAgIHsKKy0gICAgICBpZiAoYXR0cl90b19keW5hbWlj X3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKKysgICAgICBpZiAoYXR0cl90b19keW5hbWlj X3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAwKSkKKyAgICAgICAgIGFkZF9keW5f cHJvcCAoRFlOX1BST1BfQUxMT0NBVEVELCBwcm9wLCB0eXBlLCBvYmpmaWxlKTsKKyAgICAgfQor ICAgZWxzZSBpZiAoYXR0ciAhPSBOVUxMKQorQEAgLTIyNDA0LDcgKzIyNTEwLDcgQEAgc2V0X2Rp ZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KQorICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2Fzc29jaWF0 ZWQsIGN1KTsKKyAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQorICAgICB7CistICAg ICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCkpCisrICAg ICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwg MCkpCisgICAgICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0FTU09DSUFURUQsIHByb3AsIHR5 cGUsIG9iamZpbGUpOworICAgICB9CisgICBlbHNlIGlmIChhdHRyICE9IE5VTEwpCitAQCAtMjI0 MTcsNyArMjI1MjMsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCisgICAvKiBSZWFkIERXX0FU X2RhdGFfbG9jYXRpb24gYW5kIHNldCBpbiB0eXBlLiAgKi8KKyAgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9kYXRhX2xvY2F0aW9uLCBjdSk7CistICBpZiAoYXR0cl90b19keW5hbWlj X3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKKysgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJv cCAoYXR0ciwgZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQorICAgICBhZGRfZHluX3Byb3AgKERZ Tl9QUk9QX0RBVEFfTE9DQVRJT04sIHByb3AsIHR5cGUsIG9iamZpbGUpOworIAorICAgaWYgKGR3 YXJmMl9wZXJfb2JqZmlsZS0+ZGllX3R5cGVfaGFzaCA9PSBOVUxMKQorZGlmZiAtLWdpdCBhL2dk Yi9nZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKK2luZGV4IGI1M2U2NDkuLjBhYTkxMTMgMTAw NjQ0CistLS0gYS9nZGIvZ2RidHlwZXMuYworKysrIGIvZ2RiL2dkYnR5cGVzLmMKK0BAIC0xODQx LDYgKzE4NDEsNyBAQCBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBl LCBpbnQgdG9wX2xldmVsKQorICAgICAgIH0KKyAKKyAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6 CisrICAgIGNhc2UgVFlQRV9DT0RFX1NUUklORzoKKyAgICAgICB7CisgCWdkYl9hc3NlcnQgKFRZ UEVfTkZJRUxEUyAodHlwZSkgPT0gMSk7CisgCitAQCAtMTk0NSw3ICsxOTQ2LDggQEAgcmVzb2x2 ZV9keW5hbWljX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgIHN0cnVjdCB0eXBlICphcnlf ZGltOworICAgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKKyAKKy0gIGdkYl9hc3NlcnQgKFRZ UEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZKTsKKysgIGdkYl9hc3NlcnQgKFRZUEVf Q09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX0FSUkFZCisrCSAgICAgIHx8IFRZUEVfQ09ERSAodHlw ZSkgPT0gVFlQRV9DT0RFX1NUUklORyk7CisgCisgICB0eXBlID0gY29weV90eXBlICh0eXBlKTsK KyAKK0BAIC0xOTcwLDEzICsxOTcyLDE3IEBAIHJlc29sdmVfZHluYW1pY19hcnJheSAoc3RydWN0 IHR5cGUgKnR5cGUsCisgCisgICBhcnlfZGltID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRf VFlQRSAoZWx0X3R5cGUpKTsKKyAKKy0gIGlmIChhcnlfZGltICE9IE5VTEwgJiYgVFlQRV9DT0RF IChhcnlfZGltKSA9PSBUWVBFX0NPREVfQVJSQVkpCisrICBpZiAoYXJ5X2RpbSAhPSBOVUxMICYm IChUWVBFX0NPREUgKGFyeV9kaW0pID09IFRZUEVfQ09ERV9BUlJBWQorKyAgICAgIHx8IFRZUEVf Q09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX1NUUklORykpCisgICAgIGVsdF90eXBlID0gcmVz b2x2ZV9keW5hbWljX2FycmF5IChhcnlfZGltLCBhZGRyX3N0YWNrKTsKKyAgIGVsc2UKKyAgICAg ZWx0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKKyAKKy0gIHJldHVybiBjcmVhdGVf YXJyYXlfdHlwZV93aXRoX3N0cmlkZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5cGUsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVfRklFTERfQklUU0laRSAo dHlwZSwgMCkpOworKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RFX1NUUklORykK KysgICAgcmV0dXJuIGNyZWF0ZV9zdHJpbmdfdHlwZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdlX3R5 cGUpOworKyAgZWxzZQorKyAgICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUg KHR5cGUsIGVsdF90eXBlLCByYW5nZV90eXBlLAorKwkJCQkJICBUWVBFX0ZJRUxEX0JJVFNJWkUg KHR5cGUsIDApKTsKKyB9CisgCisgLyogUmVzb2x2ZSBkeW5hbWljIGJvdW5kcyBvZiBtZW1iZXJz IG9mIHRoZSB1bmlvbiBUWVBFIHRvIHN0YXRpYworQEAgLTIxODEsNiArMjE4Nyw3IEBAIHJlc29s dmVfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgCSAgYnJlYWs7 CisgCisgCWNhc2UgVFlQRV9DT0RFX0FSUkFZOgorKwljYXNlIFRZUEVfQ09ERV9TVFJJTkc6Cisg CSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJheSAodHlwZSwgYWRkcl9zdGFj ayk7CisgCSAgYnJlYWs7CisgCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaW5ncy5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdz LmV4cAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjQ4NGZkY2IKKy0tLSAv ZGV2L251bGwKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhw CitAQCAtMCwwICsxLDEwMyBAQAorKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5k YXJkX3Rlc3RmaWxlICIuZjkwIgorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0 ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0 fV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKysjIGNoZWNrIHRoYXQgYWxsIGZvcnRyYW4g c3RhbmRhcmQgZGF0YXR5cGVzIHdpbGwgYmUKKysjIGhhbmRsZWQgY29ycmVjdGx5IHdoZW4gdXNp bmcgYXMgVkxBJ3MKKysKKytpZiAhW3J1bnRvX21haW5dIHsKKysgICAgdW50ZXN0ZWQgImNvdWxk IG5vdCBydW4gdG8gbWFpbiIKKysgICAgcmV0dXJuIC0xCisrfQorKworK2dkYl9icmVha3BvaW50 IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMSJdCisrZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0xIgorK3NldCB0ZXN0ICJ3aGF0 aXMgdmFyX2NoYXIgZmlyc3QgdGltZSIKKytnZGJfdGVzdF9tdWx0aXBsZSAid2hhdGlzIHZhcl9j aGFyIiAkdGVzdCB7CisrICAgIC1yZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq MTAgXFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAg ICAtcmUgInR5cGUgPSBjaGFyYWN0ZXJcXCoxMFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBw YXNzICR0ZXN0CisrICAgIH0KKyt9Cisrc2V0IHRlc3QgInB0eXBlIHZhcl9jaGFyIGZpcnN0IHRp bWUiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInB0eXBlIHZhcl9jaGFyIiAkdGVzdCB7CisrICAgIC1y ZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpXHJcbiRnZGJfcHJvbXB0 ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgInR5cGUgPSBjaGFyYWN0 ZXJcXCoxMFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBwYXNzICR0ZXN0CisrICAgIH0KKyt9 CisrCisrCisrZ2RiX3Rlc3QgIm5leHQiICJcXGQrLip2YXJfY2hhciA9ICdmb28nLioiIFwKKysg ICJuZXh0IHRvIGFsbG9jYXRpb24gc3RhdHVzIG9mIHZhcl9jaGFyIgorK2dkYl90ZXN0ICJwcmlu dCBsIiAiID0gXFwuVFJVRVxcLiIgInByaW50IGFsbG9jYXRpb24gc3RhdHVzIGZpcnN0IHRpbWUi CisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWZp bGxlZC0xIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZmlsbGVkLTEi Cisrc2V0IHRlc3QgInByaW50IHZhcl9jaGFyLCB2YXJfY2hhci1maWxsZWQtMSIKKytnZGJfdGVz dF9tdWx0aXBsZSAicHJpbnQgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAgLXJlICI9IFxcKFBUUiBU TyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXClcXCkgJGhleFxyXG4kZ2RiX3Byb21wdCAkIiB7Cisr ICAgICAgICBnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiPSAnZm9vJyIgInByaW50ICp2YXJf Y2hhciwgdmFyX2NoYXItZmlsbGVkLTEiCisrCSAgICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAg LXJlICI9ICdmb28nXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAg fQorK30KKytzZXQgdGVzdCAicHR5cGUgdmFyX2NoYXIsIHZhcl9jaGFyLWZpbGxlZC0xIgorK2dk Yl90ZXN0X211bHRpcGxlICJwdHlwZSB2YXJfY2hhciIgJHRlc3QgeworKyAgICAtcmUgInR5cGUg PSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJ ICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgInR5cGUgPSBjaGFyYWN0ZXJcXCozXHJc biRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KKytnZGJfdGVz dCAicHJpbnQgdmFyX2NoYXIoMSkiICIgPSAxMDIgJ2YnIiAicHJpbnQgdmFyX2NoYXIoMSkiCisr Z2RiX3Rlc3QgInByaW50IHZhcl9jaGFyKDMpIiAiID0gMTExICdvJyIgInByaW50IHZhcl9jaGFy KDMpIgorKworKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hh ci1maWxsZWQtMiJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWZpbGxl ZC0yIgorK3NldCB0ZXN0ICJwcmludCB2YXJfY2hhciwgdmFyX2NoYXItZmlsbGVkLTIiCisrZ2Ri X3Rlc3RfbXVsdGlwbGUgInByaW50IHZhcl9jaGFyIiAkdGVzdCB7CisrICAgIC1yZSAiPSBcXChQ VFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpXFwpICRoZXhcclxuJGdkYl9wcm9tcHQgJCIg eworKyAgICAgICAgZ2RiX3Rlc3QgInByaW50ICp2YXJfY2hhciIgIj0gJ2Zvb2JhciciICJwcmlu dCAqdmFyX2NoYXIsIHZhcl9jaGFyLWZpbGxlZC0yIgorKwkgICAgcGFzcyAkdGVzdAorKyAgICB9 CisrICAgIC1yZSAiPSAnZm9vYmFyJ1xyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBwYXNzICR0 ZXN0CisrICAgIH0KKyt9Cisrc2V0IHRlc3QgInB0eXBlIHZhcl9jaGFyLCB2YXJfY2hhci1maWxs ZWQtMiIKKytnZGJfdGVzdF9tdWx0aXBsZSAicHR5cGUgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAg LXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKVxyXG4kZ2RiX3Byb21w dCAkIiB7CisrCSAgICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICJ0eXBlID0gY2hhcmFj dGVyXFwqNlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAgICBwYXNzICR0ZXN0CisrICAgIH0KKyt9 CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjNjMjI3MzUKKy0tLSAvZGV2L251bGwKKysrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCitAQCAtMCwwICsxLDM5IEBA CisrISBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyshCisr ISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyshIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrISAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyEgYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyshIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKyshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIQor KyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3Byb2dyYW0gdmxhX3N0cmluZ3MKKysg IGNoYXJhY3RlcihsZW49OiksIHRhcmdldCwgYWxsb2NhdGFibGUgICA6OiB2YXJfY2hhcgorKyAg Y2hhcmFjdGVyKGxlbj06KSwgcG9pbnRlciAgICAgICAgICAgICAgIDo6IHZhcl9jaGFyX3AKKysg IGxvZ2ljYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OiBsCisrCisrICBhbGxv Y2F0ZShjaGFyYWN0ZXIobGVuPTEwKSA6OiB2YXJfY2hhcikKKysgIGwgPSBhbGxvY2F0ZWQodmFy X2NoYXIpICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWFsbG9jYXRlZC0xCisrICB2YXJfY2hh ciA9ICdmb28nCisrICBkZWFsbG9jYXRlKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgICAgISB2 YXJfY2hhci1maWxsZWQtMQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAg ICAgICEgdmFyX2NoYXItZGVhbGxvY2F0ZWQKKysgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49NDIp IDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikKKysgIHZhcl9jaGFyID0g J2Zvb2JhcicKKysgIHZhcl9jaGFyID0gJycgICAgICAgICAgICAgICAgICAgICAgICAgICAhIHZh cl9jaGFyLWZpbGxlZC0yCisrICB2YXJfY2hhciA9ICdiYXInICAgICAgICAgICAgICAgICAgICAg ICAgISB2YXJfY2hhci1lbXB0eQorKyAgZGVhbGxvY2F0ZSh2YXJfY2hhcikKKysgIGFsbG9jYXRl KGNoYXJhY3RlcihsZW49MjEpIDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hh cikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxsb2NhdGVkLTMKKysgIHZhcl9jaGFyID0g J2pvaG5kb2UnCisrICB2YXJfY2hhcl9wID0+IHZhcl9jaGFyCisrICBsID0gYXNzb2NpYXRlZCh2 YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLWFzc29jaWF0ZWQKKysgIHZhcl9j aGFyX3AgPT4gbnVsbCgpCisrICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAg ICAgISB2YXJfY2hhcl9wLW5vdC1hc3NvY2lhdGVkCisrZW5kIHByb2dyYW0gdmxhX3N0cmluZ3MK Ky0tIAorMi43LjQKKwoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtbG9naWNhbC1ub3QucGF0 Y2ggYi9nZGItdmxhLWludGVsLWxvZ2ljYWwtbm90LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwYzUxYzg0Li4wMDAwMDAwCi0tLSBhL2dkYi12bGEtaW50ZWwtbG9naWNhbC1u b3QucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gLi9nZGIvdmFsdWUu Yy1vcmlnCTIwMTUtMDItMTEgMTU6MTc6NTguNDEzMjQxNzc5ICswMTAwCi0rKysgLi9nZGIvdmFs dWUuYwkyMDE1LTAyLTExIDE1OjE5OjQyLjA2ODcxNjk0OSArMDEwMAotQEAgLTMwNzQsNyArMzA3 NCw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKLSAJfQotIAot ICAgICAgIGlmICghVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQotLSAgICAgICAgICB8fCAhVFlQ RV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfQ09OU1QpCi0rICAgICAgICAgIHx8 IFRZUEVfREFUQV9MT0NBVElPTl9LSU5EICh0eXBlKSAhPSBQUk9QX0NPTlNUKQotIAl2LT5vZmZz ZXQgPSAodmFsdWVfb2Zmc2V0IChhcmcxKSArIG9mZnNldAotIAkJICAgICArIHZhbHVlX2VtYmVk ZGVkX29mZnNldCAoYXJnMSkpOwotICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC1z dHJpbmdidC1maXgucGF0Y2ggYi9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaAppbmRl eCBmNjE5N2YyLi4zMjE0ZGUyIDEwMDY0NAotLS0gYS9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZp eC5wYXRjaAorKysgYi9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaApAQCAtMzEsMjYg KzMxLDYgQEAgSmFuCiBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkK IENvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsgZmlsZW5hbWU9InZsYXN0cmluZ29ubHkucGF0 Y2giCiAKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5jCi09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDUt MzEgMTY6MTQ6MDQuMTY0NTMzODMzICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv Z2RidHlwZXMuYwkyMDE1LTA1LTMxIDE2OjE0OjA1Ljg0NDU0NTM0NCArMDIwMAotQEAgLTE4NTEs NiArMTg1MSw3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKLSAg ICAgICB9Ci0gCi0gICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOgotKyAgICBjYXNlIFRZUEVfQ09E RV9TVFJJTkc6Ci0gICAgICAgewotIAlnZGJfYXNzZXJ0IChUWVBFX05GSUVMRFMgKHR5cGUpID09 IDEpOwotIAotQEAgLTIxOTIsNiArMjE5Myw3IEBAIHJlc29sdmVfZHluYW1pY190eXBlX2ludGVy bmFsIChzdHJ1Y3QgdHkKLSAJICB9Ci0gCi0gCWNhc2UgVFlQRV9DT0RFX0FSUkFZOgotKwljYXNl IFRZUEVfQ09ERV9TVFJJTkc6Ci0gCSAgcmVzb2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19h cnJheSAodHlwZSwgYWRkcl9zdGFjayk7Ci0gCSAgYnJlYWs7Ci0gCiBJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUt c3R1Yi5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLXRlc3RzLnBhdGNoIGIv Z2RiLXZsYS1pbnRlbC10ZXN0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5mYzhhYjViCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC10ZXN0cy5wYXRj aApAQCAtMCwwICsxLDM3NyBAQAorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAJMjAxNi0wMS0wOCAx OToxNTo0NC45ODM2Mzc2ODAgKzAxMDAKK0BAIC0wLDAgKzEsNjEgQEAKKysjIENvcHlyaWdodCAy MDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysj IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4KKysKKytzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIKKysKKytpZiB7IFtwcmVw YXJlX2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwK KysgICAge2RlYnVnIGY5MCBxdWlldH1dIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisraWYg IVtydW50byBNQUlOX19dIHRoZW4geworKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVh a3BvaW50IE1BSU5fXyIKKysgICAgY29udGludWUKKyt9CisrCisrIyBDaGVjayBWTEEgcGFzc2Vk IHRvIGZpcnN0IEZvcnRyYW4gZnVuY3Rpb24uCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgImZ1bmMxLXZsYS1wYXNzZWQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJmdW5jMS12bGEtcGFzc2VkIgorK2dkYl90ZXN0ICJwcmludCB2bGEiICIgPSBcXCggKlxcKCAq MjIsICoyMiwgKjIyLFxbKCkyMiwgLlxdKlxcKSIgXAorKyAgInByaW50IHZsYSAoZnVuYzEpIgor K2dkYl90ZXN0ICJwdHlwZSB2bGEiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgx MCwxMFxcXCkiIFwKKysgICJwdHlwZSB2bGEgKGZ1bmMxKSIKKysKKytnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAiZnVuYzEtdmxhLW1vZGlmaWVkIl0KKytnZGJfY29udGludWVf dG9fYnJlYWtwb2ludCAiZnVuYzEtdmxhLW1vZGlmaWVkIgorK2dkYl90ZXN0ICJwcmludCB2bGEo NSw1KSIgIiA9IDU1IiAicHJpbnQgdmxhKDUsNSkgKGZ1bmMxKSIKKytnZGJfdGVzdCAicHJpbnQg dmxhKDcsNykiICIgPSA3NyIgInByaW50IHZsYSg1LDUpIChmdW5jMSkiCisrCisrIyBDaGVjayBp ZiB0aGUgdmFsdWVzIGFyZSBjb3JyZWN0IGFmdGVyIHJldHVybmluZyBmcm9tIGZ1bmMxCisrZ2Ri X2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMxLXJldHVybmVkIl0KKytnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzEtcmV0dXJuZWQiCisrZ2RiX3Rlc3QgInByaW50 IHJldCIgIiA9IC5UUlVFLiIgInByaW50IHJldCBhZnRlciBmdW5jMSByZXR1cm5lZCIKKysKKysj IENoZWNrIFZMQSBwYXNzZWQgdG8gc2Vjb25kIEZvcnRyYW4gZnVuY3Rpb24KKytnZGJfYnJlYWtw b2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzItdmxhLXBhc3NlZCJdCisrZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMyLXZsYS1wYXNzZWQiCisrZ2RiX3Rlc3QgInByaW50IHZs YSIgXAorKyAgIiA9IFxcXCg0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NFxc XCkiIFwKKysgICJwcmludCB2bGEgKGZ1bmMyKSIKKytnZGJfdGVzdCAicHR5cGUgdmxhIiAidHlw ZSA9IGludGVnZXJcXFwoa2luZD00XFxcKSBcXFwoMTBcXFwpIiBcCisrICAicHR5cGUgdmxhIChm dW5jMikiCisrCisrIyBDaGVjayBpZiB0aGUgcmV0dXJuZWQgVkxBIGhhcyB0aGUgY29ycmVjdCB2 YWx1ZXMgYW5kIHB0eXBlLgorK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJm dW5jMi1yZXR1cm5lZCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMyLXJldHVy bmVkIgorK2dkYl90ZXN0ICJwcmludCB2bGEzIiAiID0gXFxcKDEsIDIsIDQ0LCA0LCA0NCwgNDQs IDQ0LCA4LCA0NCwgNDRcXFwpIiBcCisrICAicHJpbnQgdmxhMyAoYWZ0ZXIgZnVuYzIpIgorK2dk Yl90ZXN0ICJwdHlwZSB2bGEzIiAidHlwZSA9IGludGVnZXJcXFwoa2luZD00XFxcKSBcXFwoMTBc XFwpIiBcCisrICAicHR5cGUgdmxhMyAoYWZ0ZXIgZnVuYzIpIgorSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisr KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVu Yy5mOTAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODM2Mzc2ODAgKzAxMDAKK0BAIC0wLDAgKzEsNzEg QEAKKyshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyEK KyshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisrISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyshIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysh CisrISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUg dG8gdGhlIEZyZWUgU29mdHdhcmUKKyshIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj ZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisrCisrbG9naWNhbCBm dW5jdGlvbiBmdW5jMSAodmxhKQorKyAgaW1wbGljaXQgbm9uZQorKyAgaW50ZWdlciwgYWxsb2Nh dGFibGUgOjogdmxhICg6LCA6KQorKyAgZnVuYzEgPSBhbGxvY2F0ZWQodmxhKQorKyAgdmxhKDUs NSkgPSA1NSAgICAgICAgICAgICAgICEgZnVuYzEtdmxhLXBhc3NlZAorKyAgdmxhKDcsNykgPSA3 NworKyAgcmV0dXJuICAgICAgICAgICAgICAgICAgICAgICEgZnVuYzEtdmxhLW1vZGlmaWVkCisr ZW5kIGZ1bmN0aW9uIGZ1bmMxCisrCisrZnVuY3Rpb24gZnVuYzIodmxhKQorKyAgaW1wbGljaXQg bm9uZQorKyAgaW50ZWdlciA6OiB2bGEgKDopCisrICBpbnRlZ2VyIDo6IGZ1bmMyKHNpemUodmxh KSkKKysgIGludGVnZXIgOjogaworKworKyAgdmxhKDEpID0gMSAgICAgICAgICAgICAgICAgICAg ISBmdW5jMi12bGEtcGFzc2VkCisrICB2bGEoMikgPSAyCisrICB2bGEoNCkgPSA0CisrICB2bGEo OCkgPSA4CisrCisrICBmdW5jMiA9IHZsYQorK2VuZCBmdW5jdGlvbiBmdW5jMgorKworK3Byb2dy YW0gdmxhX2Z1bmMKKysgIGltcGxpY2l0IG5vbmUKKysgIGludGVyZmFjZQorKyAgICBsb2dpY2Fs IGZ1bmN0aW9uIGZ1bmMxICh2bGEpCisrICAgICAgaW50ZWdlciA6OiB2bGEgKDosIDopCisrICAg IGVuZCBmdW5jdGlvbgorKyAgZW5kIGludGVyZmFjZQorKyAgaW50ZXJmYWNlCisrICAgIGZ1bmN0 aW9uIGZ1bmMyICh2bGEpCisrICAgICAgaW50ZWdlciA6OiB2bGEgKDopCisrICAgICAgaW50ZWdl ciBmdW5jMihzaXplKHZsYSkpCisrICAgIGVuZCBmdW5jdGlvbgorKyAgZW5kIGludGVyZmFjZQor KworKyAgbG9naWNhbCA6OiByZXQKKysgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZsYTEgKDos IDopCisrICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEyICg6KQorKyAgaW50ZWdlciwgYWxs b2NhdGFibGUgOjogdmxhMyAoOikKKysKKysgIHJldCA9IC5GQUxTRS4KKysKKysgIGFsbG9jYXRl ICh2bGExICgxMCwxMCkpCisrICB2bGExKDosOikgPSAyMgorKworKyAgYWxsb2NhdGUgKHZsYTIg KDEwKSkKKysgIHZsYTIoOikgPSA0NAorKworKyAgcmV0ID0gZnVuYzEodmxhMSkKKysgIHZsYTMg PSBmdW5jMih2bGEyKSAgICAgICAgICAhIGZ1bmMxLXJldHVybmVkCisrCisrICByZXQgPSAuVFJV RS4gICAgICAgICAgICAgICAgISBmdW5jMi1yZXR1cm5lZAorK2VuZCBwcm9ncmFtIHZsYV9mdW5j CitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtc3RyaWRlLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5leHAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2 ODYgKzAxMDAKK0BAIC0wLDAgKzEsNDQgQEAKKysjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisr IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBM aWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisr IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysK KytzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIKKysKKytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5n ICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKKysgICAge2RlYnVnIGY5 MCBxdWlldH1dIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisraWYgIVtydW50byBNQUlOX19d IHRoZW4geworKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IE1BSU5fXyIK KysgICAgY29udGludWUKKyt9CisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1i ZXIgInJlLXJldmVyc2UtZWxlbWVudHMiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJy ZS1yZXZlcnNlLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJwcmludCBwdmxhIiAiID0gXFxcKDEsIDIs IDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXFxcKSIgXAorKyAgInByaW50IHJlLXJldmVyc2UtZWxl bWVudHMiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSAxIiAicHJpbnQgZmlyc3QgcmUt cmV2ZXJzZS1lbGVtZW50IgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDEwKSIgIiA9IDEwIiAicHJp bnQgbGFzdCByZS1yZXZlcnNlLWVsZW1lbnQiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRf bGluZV9udW1iZXIgIm9kZC1lbGVtZW50cyJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg Im9kZC1lbGVtZW50cyIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCgxLCAzLCA1LCA3 LCA5XFxcKSIgInByaW50IG9kZC1lbGVtZW50cyIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIg IiA9IDEiICJwcmludCBmaXJzdCBvZGQtZWxlbWVudCIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSg1 KSIgIiA9IDkiICJwcmludCBsYXN0IG9kZC1lbGVtZW50IgorKworK2dkYl9icmVha3BvaW50IFtn ZGJfZ2V0X2xpbmVfbnVtYmVyICJzaW5nbGUtZWxlbWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgInNpbmdsZS1lbGVtZW50IgorK2dkYl90ZXN0ICJwcmludCBwdmxhIiAiID0gXFxc KDVcXFwpIiAicHJpbnQgc2luZ2xlLWVsZW1lbnQiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEoMSki ICIgPSA1IiAicHJpbnQgb25lIHNpbmdsZS1lbGVtZW50IgorSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysr KyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJp ZGUuZjkwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCitAQCAtMCwwICsxLDMw IEBACisrISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysh CisrISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyshIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisrISAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEKKyshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyEgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysh IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr IQorKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKyshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRl IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrISBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh Y2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorKworK3Byb2dyYW0g dmxhX3N0cmlkZQorKyAgaW50ZWdlciwgdGFyZ2V0LCBhbGxvY2F0YWJsZSA6OiB2bGEgKDopCisr ICBpbnRlZ2VyLCBwb2ludGVyIDo6IHB2bGEgKDopCisrCisrICBhbGxvY2F0ZSh2bGEoMTApKQor KyAgdmxhID0gKC8gKEksIEkgPSAxLDEwKSAvKQorKworKyAgcHZsYSA9PiB2bGEoMTA6MTotMSkK KysgIHB2bGEgPT4gcHZsYSgxMDoxOi0xKQorKyAgcHZsYSA9PiB2bGEoMToxMDoyKSAgICEgcmUt cmV2ZXJzZS1lbGVtZW50cworKyAgcHZsYSA9PiB2bGEoNTo0Oi0yKSAgICEgb2RkLWVsZW1lbnRz CisrCisrICBwdmxhID0+IG51bGwoKSAgICAgICAgISBzaW5nbGUtZWxlbWVudAorK2VuZCBwcm9n cmFtIHZsYV9zdHJpZGUKK0luZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzb2xkLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3NvbGQuZXhwCTIwMTYt MDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCitAQCAtMCwwICsxLDEwMSBAQAorKyMgQ29w eXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgorKworK2lm IHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3Jj ZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7CisrICAgIHJldHVybiAtMQorK30K KysKKysjIGNoZWNrIHRoYXQgYWxsIGZvcnRyYW4gc3RhbmRhcmQgZGF0YXR5cGVzIHdpbGwgYmUK KysjIGhhbmRsZWQgY29ycmVjdGx5IHdoZW4gdXNpbmcgYXMgVkxBJ3MKKysKKytpZiAhW3J1bnRv IE1BSU5fX10gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQg TUFJTl9fIgorKyAgICBjb250aW51ZQorK30KKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9s aW5lX251bWJlciAidmFyX2NoYXItYWxsb2NhdGVkLTEiXQorK2dkYl9jb250aW51ZV90b19icmVh a3BvaW50ICJ2YXJfY2hhci1hbGxvY2F0ZWQtMSIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIi IFwKKysgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKVxcKSAke2hleH0i IFwKKysgICJwcmludCB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgZmlyc3QgdGltZSIKKytnZGJf dGVzdCAid2hhdGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq MTAgXFwpIiBcCisrICAid2hhdGlzIHZhcl9jaGFyIGZpcnN0IHRpbWUiCisrZ2RiX3Rlc3QgInB0 eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpIiBc CisrICAicHR5cGUgdmFyX2NoYXIgZmlyc3QgdGltZSIKKytnZGJfdGVzdCAibmV4dCIgIlxcZCsu KnZhcl9jaGFyID0gJ2ZvbycuKiIgXAorKyAgIm5leHQgdG8gYWxsb2NhdGlvbiBzdGF0dXMgb2Yg dmFyX2NoYXIiCisrZ2RiX3Rlc3QgInByaW50IGwiICIgPSAuVFJVRS4iICJwcmludCBhbGxvY2F0 aW9uIHN0YXR1cyBmaXJzdCB0aW1lIgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJ2YXJfY2hhci1maWxsZWQtMSJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg InZhcl9jaGFyLWZpbGxlZC0xIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9 IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMyBcXClcXCkgJHtoZXh9IiBcCisrICAicHJp bnQgdmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCisrZ2RiX3Rlc3QgInByaW50ICp2 YXJfY2hhciIgIiA9ICdmb28nIiBcCisrICAicHJpbnQgKnZhcl9jaGFyIGFmdGVyIGZpbGxlZCBm aXJzdCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+ IFxcKCBjaGFyYWN0ZXJcXCozIFxcKSIgXAorKyAgIndoYXRpcyB2YXJfY2hhciBhZnRlciBmaWxs ZWQgZmlyc3QgdGltZSIKKytnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRP IC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFyIGFmdGVyIGZp bGxlZCBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhcigxKSIgIiA9IDEwMiAn ZiciICJwcmludCB2YXJfY2hhcigxKSIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIoMykiICIg PSAxMTEgJ28nIiAicHJpbnQgdmFyX2NoYXIoMykiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWZpbGxlZC0yIl0KKytnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAidmFyX2NoYXItZmlsbGVkLTIiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBc CisrICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKVxcKSAke2hleH0iIFwK KysgICJwcmludCB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgc2Vjb25kIHRpbWUiCisrZ2RiX3Rl c3QgInByaW50ICp2YXJfY2hhciIgIiA9ICdmb29iYXInIiBcCisrICAicHJpbnQgKnZhcl9jaGFy IGFmdGVyIGFsbG9jYXRlZCBzZWNvbmQgdGltZSIKKytnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFy IiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNiBcXCkiIFwKKysgICJ3aGF0aXMg dmFyX2NoYXIgc2Vjb25kIHRpbWUiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9 IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNiBcXCkiIFwKKysgICJwdHlwZSB2YXJfY2hhciBz ZWNvbmQgdGltZSIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFy X2NoYXItZW1wdHkiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1lbXB0 eSIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIiIFwKKysgICIgPSBcXChQVFIgVE8gLT4gXFwo IGNoYXJhY3RlclxcKjAgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZhcl9jaGFyIGFmdGVy IHNldCBlbXB0eSIKKytnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0gXCJcIiIgInByaW50 ICp2YXJfY2hhciBhZnRlciBzZXQgZW1wdHkiCisrZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIg InR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjAgXFwpIiBcCisrICAid2hhdGlzIHZh cl9jaGFyIGFmdGVyIHNldCBlbXB0eSIKKytnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBl ID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCowIFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFy IGFmdGVyIHNldCBlbXB0eSIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAidmFyX2NoYXItYWxsb2NhdGVkLTMiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2 YXJfY2hhci1hbGxvY2F0ZWQtMyIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIiIFwKKysgICIg PSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjIxIFxcKVxcKSAke2hleH0iIFwKKysgICJw cmludCB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgdGhpcmQgdGltZSIKKytnZGJfdGVzdCAid2hh dGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMjEgXFwpIiBc CisrICAid2hhdGlzIHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCB0aGlyZCB0aW1lIgorK2dkYl90 ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjIx IFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCB0aGlyZCB0aW1lIgor KworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhcl9wLWFzc29j aWF0ZWQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhcl9wLWFzc29jaWF0 ZWQiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyX3AiIFwKKysgICIgPSBcXChQVFIgVE8gLT4g XFwoIGNoYXJhY3RlclxcKjcgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZhcl9jaGFyX3Ag YWZ0ZXIgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyX3AiICIgPSAnam9o bmRvZSciIFwKKysgICJwcmludCAqdmFyX2NoYXJfIGFmdGVyIGFzc29jaWF0ZWQiCisrZ2RiX3Rl c3QgIndoYXRpcyB2YXJfY2hhcl9wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq NyBcXCkiIFwKKysgICJ3aGF0aXMgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lhdGVkIgorK2dkYl90 ZXN0ICJwdHlwZSB2YXJfY2hhcl9wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq NyBcXCkiIFwKKysgICJwdHlwZSB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCitJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5n c29sZC5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zdHJpbmdzb2xkLmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4 NiArMDEwMAorQEAgLTAsMCArMSw0MCBAQAorKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyshIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisr ISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBM aWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyshCisr ISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrISBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorKyEgRm91bmRhdGlv biwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEz MDcsIFVTQS4KKysKKytwcm9ncmFtIHZsYV9zdHJpbmdzCisrICBjaGFyYWN0ZXIobGVuPTopLCB0 YXJnZXQsIGFsbG9jYXRhYmxlICAgOjogdmFyX2NoYXIKKysgIGNoYXJhY3RlcihsZW49OiksIHBv aW50ZXIgICAgICAgICAgICAgICA6OiB2YXJfY2hhcl9wCisrICBsb2dpY2FsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOjogbAorKworKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj0x MCkgOjogdmFyX2NoYXIpCisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAg ICAgISB2YXJfY2hhci1hbGxvY2F0ZWQtMQorKyAgdmFyX2NoYXIgPSAnZm9vJworKyAgZGVhbGxv Y2F0ZSh2YXJfY2hhcikgICAgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZmlsbGVkLTEKKysg IGwgPSBhbGxvY2F0ZWQodmFyX2NoYXIpICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWRlYWxs b2NhdGVkCisrICBhbGxvY2F0ZShjaGFyYWN0ZXIobGVuPTQyKSA6OiB2YXJfY2hhcikKKysgIGwg PSBhbGxvY2F0ZWQodmFyX2NoYXIpCisrICB2YXJfY2hhciA9ICdmb29iYXInCisrICB2YXJfY2hh ciA9ICcnICAgICAgICAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1maWxsZWQtMgorKyAg dmFyX2NoYXIgPSAnYmFyJyAgICAgICAgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZW1wdHkK KysgIGRlYWxsb2NhdGUodmFyX2NoYXIpCisrICBhbGxvY2F0ZShjaGFyYWN0ZXIobGVuPTIxKSA6 OiB2YXJfY2hhcikKKysgIGwgPSBhbGxvY2F0ZWQodmFyX2NoYXIpICAgICAgICAgICAgICAgICAh IHZhcl9jaGFyLWFsbG9jYXRlZC0zCisrICB2YXJfY2hhciA9ICdqb2huZG9lJworKyAgdmFyX2No YXJfcCA9PiB2YXJfY2hhcgorKyAgbCA9IGFzc29jaWF0ZWQodmFyX2NoYXJfcCkgICAgICAgICAg ICAgICEgdmFyX2NoYXJfcC1hc3NvY2lhdGVkCisrICB2YXJfY2hhcl9wID0+IG51bGwoKQorKyAg bCA9IGFzc29jaWF0ZWQodmFyX2NoYXJfcCkgICAgICAgICAgICAgICEgdmFyX2NoYXJfcC1ub3Qt YXNzb2NpYXRlZAorK2VuZCBwcm9ncmFtIHZsYV9zdHJpbmdzCgpkaWZmIC0tZ2l0IGEvZ2RiLXZs YS1pbnRlbC5wYXRjaCBiL2dkYi12bGEtaW50ZWwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGVkZjZiMjMuLjAwMDAwMDAKLS0tIGEvZ2RiLXZsYS1pbnRlbC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDE0ODAgKzAsMCBAQAotW1BBVENIIDAwLzIzXSBGb3J0cmFuIGR5bmFt aWMgYXJyYXkgc3VwcG9ydAotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8y MDE0LTA2L21zZzAwMTA4Lmh0bWwKLWh0dHBzOi8vZ2l0aHViLmNvbS9pbnRlbC1nZGIvdmxhL3Ry ZWUvdmxhLWZvcnRyYW4KLQotR0lUIHNuYXBzaG90OgotY29tbWl0IDUxMWJmZjUyMDM3MmZmYzEw ZmEyZmY1NjljMTc2YmRmMWU2ZTQ3NWQKLQotCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2MtdmFscHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9y aWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA2NTU4MjM1OSArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jLXZhbHByaW50LmMJMjAxNi0wMS0wOCAxOTox NTo0NC45NzQ2Mzc2MzAgKzAxMDAKLUBAIC02NDIsNyArNjQyLDE2IEBACi0gCXsKLSAJICAvKiBu b3JtYWwgY2FzZSAqLwotIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKLS0JICB0 eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFtLCAtMSk7Ci0rCSAgaWYgKGlz X2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKQotKwkgICAgewotKwkgICAg ICBzdHJ1Y3QgdmFsdWUgKnY7Ci0rCi0rCSAgICAgIHYgPSB2YWx1ZV9pbmQgKHZhbCk7Ci0rCSAg ICAgIHYgPSB2YWx1ZV9hZGRyICh2KTsKLSsJICAgICAgdHlwZV9wcmludCAodmFsdWVfdHlwZSAo diksICIiLCBzdHJlYW0sIC0xKTsKLSsJICAgIH0KLSsJICBlbHNlCi0rCSAgICB0eXBlX3ByaW50 ICh2YWx1ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFtLCAtMSk7Ci0gCSAgZnByaW50Zl9maWx0ZXJl ZCAoc3RyZWFtLCAiKSAiKTsKLSAJfQotICAgICB9Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2R3YXJmMmxvYy5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvZHdhcmYybG9jLmgJMjAxNi0wMS0wOCAxOToxNTozNS4wNjY1ODIzNjUgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYybG9jLmgJMjAxNi0wMS0wOCAxOTox NTo0NC45NzQ2Mzc2MzAgKzAxMDAKLUBAIC0xMzgsNiArMTM4LDExIEBACi0gCQkJICAgICAgc3Ry dWN0IHByb3BlcnR5X2FkZHJfaW5mbyAqYWRkcl9zdGFjaywKLSAJCQkgICAgICBDT1JFX0FERFIg KnZhbHVlKTsKLSAKLSsvKiBDaGVja3MgaWYgYSBkd2FyZiBsb2NhdGlvbiBkZWZpbml0aW9uIGlz IHZhbGlkLgotKyAgIFJldHVybnMgMSBpZiB2YWxpZDsgMCBvdGhlcndpc2UuICAqLwotKwotK2V4 dGVybiBpbnQgZHdhcmYyX2FkZHJlc3NfZGF0YV92YWxpZCAoY29uc3Qgc3RydWN0IHR5cGUgKnR5 cGUpOwotKwotIC8qIEEgaGVscGVyIGZvciB0aGUgY29tcGlsZXIgaW50ZXJmYWNlIHRoYXQgY29t cGlsZXMgYSBzaW5nbGUgZHluYW1pYwotICAgIHByb3BlcnR5IHRvIEMgY29kZS4KLSAKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYycmVhZC5jCi09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDEtMDggMTk6 MTU6MzUuMDc4NTgyNDMyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2R3YXJm MnJlYWQuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MDYzNzY2MyArMDEwMAotQEAgLTE3NDUsNyAr MTc0NSw5IEBACi0gCi0gc3RhdGljIGludCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3Ry dWN0IGF0dHJpYnV0ZSAqYXR0ciwKLSAJCQkJIHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSwKLS0JCQkJIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3ApOwotKwkJCQkg c3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKLSsJCQkJIGNvbnN0IGdkYl9ieXRlICphZGRpdGlv bmFsX2RhdGEsCi0rCQkJCSBpbnQgYWRkaXRpb25hbF9kYXRhX3NpemUpOwotIAotIC8qIG1lbW9y eSBhbGxvY2F0aW9uIGludGVyZmFjZSAqLwotIAotQEAgLTExNDIwLDcgKzExNDIyLDcgQEAKLSAg ICAgewotICAgICAgIG5ld29iai0+c3RhdGljX2xpbmsKLSAJPSBYT0JORVcgKCZvYmpmaWxlLT5v YmpmaWxlX29ic3RhY2ssIHN0cnVjdCBkeW5hbWljX3Byb3ApOwotLSAgICAgIGF0dHJfdG9fZHlu YW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5rKTsKLSsgICAgICBh dHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgbmV3b2JqLT5zdGF0aWNfbGluaywg TlVMTCwgMCk7Ci0gICAgIH0KLSAKLSAgIGN1LT5saXN0X2luX3Njb3BlID0gJmxvY2FsX3N5bWJv bHM7Ci1AQCAtMTQ0NzEsMjkgKzE0NDczLDkyIEBACi0gICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOwotICAgc3RydWN0IHR5cGUgKnR5cGUsICpy YW5nZV90eXBlLCAqaW5kZXhfdHlwZSwgKmNoYXJfdHlwZTsKLSAgIHN0cnVjdCBhdHRyaWJ1dGUg KmF0dHI7Ci0tICB1bnNpZ25lZCBpbnQgbGVuZ3RoOwotKyAgdW5zaWduZWQgaW50IGxlbmd0aCA9 IFVJTlRfTUFYOwotIAotKyAgaW5kZXhfdHlwZSA9IG9iamZpbGVfdHlwZSAob2JqZmlsZSktPmJ1 aWx0aW5faW50OwotKyAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVM TCwgaW5kZXhfdHlwZSwgMSwgbGVuZ3RoKTsKLSsKLSsgIC8qIElmIERXX0FUX3N0cmluZ19sZW5n dGggaXMgZGVmaW5lZCwgdGhlIGxlbmd0aCBpcyBzdG9yZWQgYXQgc29tZSBsb2NhdGlvbgotKyAg ICogaW4gbWVtb3J5LiAqLwotICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3N0cmlu Z19sZW5ndGgsIGN1KTsKLSAgIGlmIChhdHRyKQotICAgICB7Ci0tICAgICAgbGVuZ3RoID0gRFdf VU5TTkQgKGF0dHIpOwotKyAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQotKyAg ICAgICAgewotKyAgICAgICAgICBzdHJ1Y3QgYXR0cmlidXRlICpieXRlX3NpemUsICpiaXRfc2l6 ZTsKLSsgICAgICAgICAgc3RydWN0IGR5bmFtaWNfcHJvcCBoaWdoOwotKwotKyAgICAgICAgICBi eXRlX3NpemUgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUsIGN1KTsKLSsgICAg ICAgICAgYml0X3NpemUgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9iaXRfc2l6ZSwgY3UpOwot KwotKyAgICAgICAgICAvKiBEV19BVF9ieXRlX3NpemUgc2hvdWxkIG5ldmVyIG9jY3VyIHRvZ2V0 aGVyIGluIGNvbWJpbmF0aW9uIHdpdGgKLSsgICAgICAgICAgICAgRFdfQVRfc3RyaW5nX2xlbmd0 aC4gICovCi0rICAgICAgICAgIGlmICgoYnl0ZV9zaXplID09IE5VTEwgJiYgYml0X3NpemUgIT0g TlVMTCkgfHwKLSsgICAgICAgICAgICAgICAgICAoYnl0ZV9zaXplICE9IE5VTEwgJiYgYml0X3Np emUgPT0gTlVMTCkpCi0rICAgICAgICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRz LCBfKCJEV19BVF9ieXRlX3NpemUgQU5EICIKLSsgICAgICAgICAgICAgICAgICAgICAgIkRXX0FU X2JpdF9zaXplIGZvdW5kIHRvZ2V0aGVyIGF0IHRoZSBzYW1lIHRpbWUuIikpOwotKwotKyAgICAg ICAgICAvKiBJZiBEV19BVF9zdHJpbmdfbGVuZ3RoIEFORCBEV19BVF9ieXRlX3NpemUgZXhpc3Qg dG9nZXRoZXIsIGl0Ci0rICAgICAgICAgICAgIGRlc2NyaWJlcyB0aGUgbnVtYmVyIG9mIGJ5dGVz IHRoYXQgc2hvdWxkIGJlIHJlYWQgZnJvbSB0aGUgbGVuZ3RoCi0rICAgICAgICAgICAgIG1lbW9y eSBsb2NhdGlvbi4gICovCi0rICAgICAgICAgIGlmIChieXRlX3NpemUgIT0gTlVMTCAmJiBiaXRf c2l6ZSA9PSBOVUxMKQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIC8qIEJ1aWxkIG5l dyBkd2FyZjJfbG9jZXhwcl9iYXRvbiBzdHJ1Y3R1cmUgd2l0aCBhZGRpdGlvbnMgdG8gdGhlCi0r ICAgICAgICAgICAgICAgICBkYXRhIGF0dHJpYnV0ZSwgdG8gcmVmbGVjdCBEV0FSRiBzcGVjaWFs aXRpZXMgdG8gZ2V0IGFkZHJlc3MKLSsgICAgICAgICAgICAgICAgIHNpemVzLiAgKi8KLSsgICAg ICAgICAgICAgIGNvbnN0IGdkYl9ieXRlIGFwcGVuZF9vcHNbXSA9IHsKLSsgICAgICAgICAgICAg ICAgLyogRFdfT1BfZGVyZWZfc2l6ZTogc2l6ZSBvZiBhbiBhZGRyZXNzIG9uIHRoZSB0YXJnZXQg bWFjaGluZQotKyAgICAgICAgICAgICAgICAgICAoYnl0ZXMpLCB3aGVyZSB0aGUgc2l6ZSB3aWxs IGJlIHNwZWNpZmllZCBieSB0aGUgbmV4dAotKyAgICAgICAgICAgICAgICAgICBvcGVyYW5kLiAg Ki8KLSsgICAgICAgICAgICAgICAgRFdfT1BfZGVyZWZfc2l6ZSwKLSsgICAgICAgICAgICAgICAg LyogT3BlcmFuZCBmb3IgRFdfT1BfZGVyZWZfc2l6ZS4gICovCi0rICAgICAgICAgICAgICAgIERX X1VOU05EIChieXRlX3NpemUpIH07Ci0rCi0rICAgICAgICAgICAgICBpZiAoIWF0dHJfdG9fZHlu YW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwKLSsgICAgICAgICAgICAgICAgICAgICAg YXBwZW5kX29wcywgQVJSQVlfU0laRSAoYXBwZW5kX29wcykpKQotKyAgICAgICAgICAgICAgICBj b21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAg XygiQ291bGQgbm90IHBhcnNlIERXX0FUX2J5dGVfc2l6ZSIpKTsKLSsgICAgICAgICAgICB9Ci0r ICAgICAgICAgIGVsc2UgaWYgKGJpdF9zaXplICE9IE5VTEwgJiYgYnl0ZV9zaXplID09IE5VTEwp Ci0rICAgICAgICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJEV19BVF9z dHJpbmdfbGVuZ3RoIEFORCAiCi0rICAgICAgICAgICAgICAgICAgICAgICJEV19BVF9iaXRfc2l6 ZSBmb3VuZCBidXQgbm90IHN1cHBvcnRlZCB5ZXQuIikpOwotKyAgICAgICAgICAvKiBJZiBEV19B VF9zdHJpbmdfbGVuZ3RoIFdJVEhPVVQgRFdfQVRfYnl0ZV9zaXplIGV4aXN0LCB0aGUgZGVmYXVs dAotKyAgICAgICAgICAgICBpcyB0aGUgYWRkcmVzcyBzaXplIG9mIHRoZSB0YXJnZXQgbWFjaGlu ZS4gICovCi0rICAgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICBj b25zdCBnZGJfYnl0ZSBhcHBlbmRfb3BzW10gPSB7IERXX09QX2RlcmVmIH07Ci0rCi0rICAgICAg ICAgICAgICBpZiAoIWF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwg YXBwZW5kX29wcywKLSsgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRSAoYXBwZW5kX29w cykpKQotKyAgICAgICAgICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgXygiQ291bGQgbm90IHBhcnNlIERXX0FUX3N0cmluZ19s ZW5ndGgiKSk7Ci0rICAgICAgICAgICAgfQotKwotKyAgICAgICAgICBUWVBFX1JBTkdFX0RBVEEg KHJhbmdlX3R5cGUpLT5oaWdoID0gaGlnaDsKLSsgICAgICAgIH0KLSsgICAgICBlbHNlCi0rICAg ICAgICB7Ci0rICAgICAgICAgIFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBEV19VTlNO RCAoYXR0cik7Ci0rICAgICAgICAgIFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90eXBlKSA9 IFBST1BfQ09OU1Q7Ci0rICAgICAgICB9Ci0gICAgIH0KLSAgIGVsc2UKLSAgICAgewotLSAgICAg IC8qIENoZWNrIGZvciB0aGUgRFdfQVRfYnl0ZV9zaXplIGF0dHJpYnV0ZS4gICovCi0rICAgICAg LyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRlX3NpemUgYXR0cmlidXRlLCB3aGljaCByZXByZXNl bnRzIHRoZSBsZW5ndGgKLSsgICAgICAgICBpbiB0aGlzIGNhc2UuICAqLwotICAgICAgIGF0dHIg PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUsIGN1KTsKLSAgICAgICBpZiAoYXR0 cikKLSAgICAgICAgIHsKLS0gICAgICAgICAgbGVuZ3RoID0gRFdfVU5TTkQgKGF0dHIpOwotKyAg ICAgICAgICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gRFdfVU5TTkQgKGF0dHIpOwot KyAgICAgICAgICBUWVBFX0hJR0hfQk9VTkRfS0lORCAocmFuZ2VfdHlwZSkgPSBQUk9QX0NPTlNU OwotICAgICAgICAgfQotICAgICAgIGVsc2UKLSAgICAgICAgIHsKLS0gICAgICAgICAgbGVuZ3Ro ID0gMTsKLSsgICAgICAgICAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IDE7Ci0rICAg ICAgICAgIFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90eXBlKSA9IFBST1BfQ09OU1Q7Ci0g ICAgICAgICB9Ci0gICAgIH0KLSAKLS0gIGluZGV4X3R5cGUgPSBvYmpmaWxlX3R5cGUgKG9iamZp bGUpLT5idWlsdGluX2ludDsKLS0gIHJhbmdlX3R5cGUgPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5 cGUgKE5VTEwsIGluZGV4X3R5cGUsIDEsIGxlbmd0aCk7Ci0gICBjaGFyX3R5cGUgPSBsYW5ndWFn ZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJjaCk7Ci0gICB0eXBl ID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5cGUsIHJhbmdlX3R5cGUpOwotIAot QEAgLTE0ODE2LDEzICsxNDg4MSwxNSBAQAotICAgcmV0dXJuIHNldF9kaWVfdHlwZSAoZGllLCB0 eXBlLCBjdSk7Ci0gfQotIAotKwotIC8qIFBhcnNlIGR3YXJmIGF0dHJpYnV0ZSBpZiBpdCdzIGEg YmxvY2ssIHJlZmVyZW5jZSBvciBjb25zdGFudCBhbmQgcHV0IHRoZQotICAgIHJlc3VsdGluZyB2 YWx1ZSBvZiB0aGUgYXR0cmlidXRlIGludG8gc3RydWN0IGJvdW5kX3Byb3AuCi0gICAgUmV0dXJu cyAxIGlmIEFUVFIgY291bGQgYmUgcmVzb2x2ZWQgaW50byBQUk9QLCAwIG90aGVyd2lzZS4gICov Ci0gCi0gc3RhdGljIGludAotIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0 cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKLS0JCSAgICAgIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1LCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wKQotKwkJICAgICAgc3RydWN0IGR3 YXJmMl9jdSAqY3UsIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCi0rCQkgICAgICBjb25zdCBn ZGJfYnl0ZSAqYWRkaXRpb25hbF9kYXRhLCBpbnQgYWRkaXRpb25hbF9kYXRhX3NpemUpCi0gewot ICAgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbiAqYmF0b247Ci0gICBzdHJ1Y3Qgb2JzdGFj ayAqb2JzdGFjayA9ICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrOwotQEAgLTE0ODM1LDgg KzE0OTAyLDI1IEBACi0gICAgICAgYmF0b24gPSBYT0JORVcgKG9ic3RhY2ssIHN0cnVjdCBkd2Fy ZjJfcHJvcGVydHlfYmF0b24pOwotICAgICAgIGJhdG9uLT5yZWZlcmVuY2VkX3R5cGUgPSBOVUxM OwotICAgICAgIGJhdG9uLT5sb2NleHByLnBlcl9jdSA9IGN1LT5wZXJfY3U7Ci0tICAgICAgYmF0 b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+c2l6ZTsKLS0gICAgICBiYXRvbi0+ bG9jZXhwci5kYXRhID0gRFdfQkxPQ0sgKGF0dHIpLT5kYXRhOwotKwotKyAgICAgIGlmIChhZGRp dGlvbmFsX2RhdGEgIT0gTlVMTCAmJiBhZGRpdGlvbmFsX2RhdGFfc2l6ZSA+IDApCi0rICAgICAg ICB7Ci0rICAgICAgICAgIGdkYl9ieXRlICpkYXRhOwotKwotKyAgICAgICAgICBkYXRhID0gb2Jz dGFja19hbGxvYyAoJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCi0rICAgICAgICAgICAg ICAgICAgRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgYWRkaXRpb25hbF9kYXRhX3NpemUpOwotKyAg ICAgICAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLIChhdHRyKS0+ZGF0YSwgRFdfQkxPQ0sgKGF0 dHIpLT5zaXplKTsKLSsgICAgICAgICAgbWVtY3B5IChkYXRhICsgRFdfQkxPQ0sgKGF0dHIpLT5z aXplLAotKyAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRh X3NpemUpOwotKwotKyAgICAgICAgICBiYXRvbi0+bG9jZXhwci5kYXRhID0gZGF0YTsKLSsgICAg ICAgICAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+c2l6ZSArIGFkZGl0 aW9uYWxfZGF0YV9zaXplOwotKyAgICAgICAgfQotKyAgICAgIGVsc2UKLSsgICAgICAgIHsKLSsg ICAgICAgICAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0YTsKLSsg ICAgICAgICAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLIChhdHRyKS0+c2l6ZTsKLSsg ICAgICAgIH0KLSAgICAgICBwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247Ci0gICAgICAgcHJvcC0+ a2luZCA9IFBST1BfTE9DRVhQUjsKLSAgICAgICBnZGJfYXNzZXJ0IChwcm9wLT5kYXRhLmJhdG9u ICE9IE5VTEwpOwotQEAgLTE0ODcyLDggKzE0OTU2LDI4IEBACi0gCQliYXRvbiA9IFhPQk5FVyAo b2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbik7Ci0gCQliYXRvbi0+cmVmZXJl bmNlZF90eXBlID0gZGllX3R5cGUgKHRhcmdldF9kaWUsIHRhcmdldF9jdSk7Ci0gCQliYXRvbi0+ bG9jZXhwci5wZXJfY3UgPSBjdS0+cGVyX2N1OwotLQkJYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERX X0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemU7Ci0tCQliYXRvbi0+bG9jZXhwci5kYXRhID0gRFdf QkxPQ0sgKHRhcmdldF9hdHRyKS0+ZGF0YTsKLSsKLSsJCWlmIChhZGRpdGlvbmFsX2RhdGEgIT0g TlVMTCAmJiBhZGRpdGlvbmFsX2RhdGFfc2l6ZSA+IDApCi0rCQkgIHsKLSsJCSAgICBnZGJfYnl0 ZSAqZGF0YTsKLSsKLSsJCSAgICBkYXRhID0gb2JzdGFja19hbGxvYyAoJmN1LT5vYmpmaWxlLT5v YmpmaWxlX29ic3RhY2ssCi0rCQkJICAgIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUgKyBh ZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rCQkgICAgbWVtY3B5IChkYXRhLCBEV19CTE9DSyAodGFy Z2V0X2F0dHIpLT5kYXRhLAotKwkJCSAgICBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplKTsK LSsJCSAgICBtZW1jcHkgKGRhdGEgKyBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplLAotKwkJ CSAgICBhZGRpdGlvbmFsX2RhdGEsIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKLSsKLSsJCSAgICBi YXRvbi0+bG9jZXhwci5kYXRhID0gZGF0YTsKLSsJCSAgICBiYXRvbi0+bG9jZXhwci5zaXplID0g KERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUKLSsJCQkJCSAgICsgYWRkaXRpb25hbF9kYXRh X3NpemUpOwotKwkJICB9Ci0rCQllbHNlCi0rCQkgIHsKLSsJCSAgICBiYXRvbi0+bG9jZXhwci5k YXRhID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+ZGF0YTsKLSsJCSAgICBiYXRvbi0+bG9jZXhw ci5zaXplID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZTsKLSsJCSAgfQotKwotIAkJcHJv cC0+ZGF0YS5iYXRvbiA9IGJhdG9uOwotIAkJcHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKLSAJ CWdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7Ci1AQCAtMTQ5MjcsNyArMTUw MzEsNyBAQAotICAgc3RydWN0IHR5cGUgKmJhc2VfdHlwZSwgKm9yaWdfYmFzZV90eXBlOwotICAg c3RydWN0IHR5cGUgKnJhbmdlX3R5cGU7Ci0gICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwotLSAg c3RydWN0IGR5bmFtaWNfcHJvcCBsb3csIGhpZ2g7Ci0rICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxv dywgaGlnaCwgc3RyaWRlOwotICAgaW50IGxvd19kZWZhdWx0X2lzX3ZhbGlkOwotICAgaW50IGhp Z2hfYm91bmRfaXNfY291bnQgPSAwOwotICAgY29uc3QgY2hhciAqbmFtZTsKLUBAIC0xNDk0Nyw3 ICsxNTA1MSw5IEBACi0gCi0gICBsb3cua2luZCA9IFBST1BfQ09OU1Q7Ci0gICBoaWdoLmtpbmQg PSBQUk9QX0NPTlNUOwotKyAgc3RyaWRlLmtpbmQgPSBQUk9QX0NPTlNUOwotICAgaGlnaC5kYXRh LmNvbnN0X3ZhbCA9IDA7Ci0rICBzdHJpZGUuZGF0YS5jb25zdF92YWwgPSAwOwotIAotICAgLyog U2V0IExPV19ERUZBVUxUX0lTX1ZBTElEIGlmIGN1cnJlbnQgbGFuZ3VhZ2UgYW5kIERXQVJGIHZl cnNpb24gYWxsb3cKLSAgICAgIG9taXR0aW5nIERXX0FUX2xvd2VyX2JvdW5kLiAgKi8KLUBAIC0x NDk4MCwxOSArMTUwODYsMjYgQEAKLSAgICAgICBicmVhazsKLSAgICAgfQotIAotKyAgYXR0ciA9 IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc3RyaWRlLCBjdSk7Ci0rICBpZiAoYXR0cikK LSsgICAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnN0cmlkZSwg TlVMTCwgMCkpCi0rICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIk1p c3NpbmcgRFdfQVRfYnl0ZV9zdHJpZGUgIgotKyAgICAgICAgICAgICAgICAgICItIERJRSBhdCAw eCV4IFtpbiBtb2R1bGUgJXNdIiksCi0rICAgICAgICAgICAgIGRpZS0+b2Zmc2V0LnNlY3Rfb2Zm LCBvYmpmaWxlX25hbWUgKGN1LT5vYmpmaWxlKSk7Ci0rCi0gICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfbG93ZXJfYm91bmQsIGN1KTsKLSAgIGlmIChhdHRyKQotLSAgICBhdHRyX3Rv X2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmxvdyk7Ci0rICAgIGF0dHJfdG9fZHluYW1p Y19wcm9wIChhdHRyLCBkaWUsIGN1LCAmbG93LCBOVUxMLCAwKTsKLSAgIGVsc2UgaWYgKCFsb3df ZGVmYXVsdF9pc192YWxpZCkKLSAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBf KCJNaXNzaW5nIERXX0FUX2xvd2VyX2JvdW5kICIKLSAJCQkJICAgICAgIi0gRElFIGF0IDB4JXgg W2luIG1vZHVsZSAlc10iKSwKLSAJICAgICAgIGRpZS0+b2Zmc2V0LnNlY3Rfb2ZmLCBvYmpmaWxl X25hbWUgKGN1LT5vYmpmaWxlKSk7Ci0gCi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdf QVRfdXBwZXJfYm91bmQsIGN1KTsKLS0gIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIs IGRpZSwgY3UsICZoaWdoKSkKLSsgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRp ZSwgY3UsICZoaWdoLCBOVUxMLCAwKSkKLSAgICAgewotICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0 ciAoZGllLCBEV19BVF9jb3VudCwgY3UpOwotLSAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJv cCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gpKQotKyAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJv cCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEwsIDApKQotIAl7Ci0gCSAgLyogSWYgYm91bmRz IGFyZSBjb25zdGFudCBkbyB0aGUgZmluYWwgY2FsY3VsYXRpb24gaGVyZS4gICovCi0gCSAgaWYg KGxvdy5raW5kID09IFBST1BfQ09OU1QgJiYgaGlnaC5raW5kID09IFBST1BfQ09OU1QpCi1AQCAt MTUwNTYsNyArMTUxNjksNyBAQAotICAgICAgICYmICFUWVBFX1VOU0lHTkVEIChiYXNlX3R5cGUp ICYmIChoaWdoLmRhdGEuY29uc3RfdmFsICYgbmVnYXRpdmVfbWFzaykpCi0gICAgIGhpZ2guZGF0 YS5jb25zdF92YWwgfD0gbmVnYXRpdmVfbWFzazsKLSAKLS0gIHJhbmdlX3R5cGUgPSBjcmVhdGVf cmFuZ2VfdHlwZSAoTlVMTCwgb3JpZ19iYXNlX3R5cGUsICZsb3csICZoaWdoKTsKLSsgIHJhbmdl X3R5cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAoTlVMTCwgb3JpZ19iYXNlX3R5cGUsICZsb3csICZo aWdoLCAmc3RyaWRlKTsKLSAKLSAgIGlmIChoaWdoX2JvdW5kX2lzX2NvdW50KQotICAgICBUWVBF X1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5mbGFnX3VwcGVyX2JvdW5kX2lzX2NvdW50ID0gMTsK LUBAIC0yMjM2MCw3ICsyMjQ3Myw3IEBACi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdf QVRfYWxsb2NhdGVkLCBjdSk7Ci0gICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2NrIChhdHRyKSkKLSAg ICAgewotLSAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnBy b3ApKQotKyAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnBy b3AsIE5VTEwsIDApKQotICAgICAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9BTExPQ0FURUQs IHByb3AsIHR5cGUsIG9iamZpbGUpOwotICAgICB9Ci0gICBlbHNlIGlmIChhdHRyICE9IE5VTEwp Ci1AQCAtMjIzNzUsNyArMjI0ODgsNyBAQAotICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERX X0FUX2Fzc29jaWF0ZWQsIGN1KTsKLSAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQot ICAgICB7Ci0tICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAm cHJvcCkpCi0rICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAm cHJvcCwgTlVMTCwgMCkpCi0gICAgICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0FTU09DSUFU RUQsIHByb3AsIHR5cGUsIG9iamZpbGUpOwotICAgICB9Ci0gICBlbHNlIGlmIChhdHRyICE9IE5V TEwpCi1AQCAtMjIzODgsNyArMjI1MDEsNyBAQAotIAotICAgLyogUmVhZCBEV19BVF9kYXRhX2xv Y2F0aW9uIGFuZCBzZXQgaW4gdHlwZS4gICovCi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwg RFdfQVRfZGF0YV9sb2NhdGlvbiwgY3UpOwotLSAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChh dHRyLCBkaWUsIGN1LCAmcHJvcCkpCi0rICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIs IGRpZSwgY3UsICZwcm9wLCBOVUxMLCAwKSkKLSAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9E QVRBX0xPQ0FUSU9OLCBwcm9wLCB0eXBlLCBvYmpmaWxlKTsKLSAKLSAgIGlmIChkd2FyZjJfcGVy X29iamZpbGUtPmRpZV90eXBlX2hhc2ggPT0gTlVMTCkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvZi10eXBlcHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYw MTA2Lm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNi0wMS0wOCAxOToxNTozNS4wODA1ODI0NDMg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTAx LTA4IDE5OjE1OjQ0Ljk4MDYzNzY2MyArMDEwMAotQEAgLTMxLDYgKzMxLDcgQEAKLSAjaW5jbHVk ZSAidGFyZ2V0LmgiCi0gI2luY2x1ZGUgImYtbGFuZy5oIgotICNpbmNsdWRlICJ0eXBlcHJpbnQu aCIKLSsjaW5jbHVkZSAidmFscHJpbnQuaCIKLSAKLSAjaWYgMAkJCQkvKiBDdXJyZW50bHkgdW51 c2VkLiAgKi8KLSBzdGF0aWMgdm9pZCBmX3R5cGVfcHJpbnRfYXJncyAoc3RydWN0IHR5cGUgKiwg c3RydWN0IHVpX2ZpbGUgKik7Ci1AQCAtNjQsNiArNjUsMTcgQEAKLSAgICAgewotICAgICAgIHZh bF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOwotICAgICAgIHJldHVybjsKLSsgICAgfQot KwotKyAgaWYgKFRZUEVfTk9UX0FTU09DSUFURUQgKHR5cGUpKQotKyAgICB7Ci0rICAgICAgdmFs X3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJlYW0pOwotKyAgICAgIHJldHVybjsKLSsgICAgfQot KyAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAodHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxfcHJp bnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKLSsgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLSAg IGZfdHlwZV9wcmludF9iYXNlICh0eXBlLCBzdHJlYW0sIHNob3csIGxldmVsKTsKLUluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZi12YWxwcmludC5jCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6 MzUuMDgxNTgyNDQ4ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2YtdmFscHJp bnQuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MTYzNzY2OSArMDEwMAotQEAgLTM2LDggKzM2LDYg QEAKLSAKLSBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lkKTsKLSBzdGF0 aWMgdm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7Ci0tc3RhdGljIHZvaWQg Zjc3X2NyZWF0ZV9hcnJheXByaW50X29mZnNldF90YmwgKHN0cnVjdCB0eXBlICosCi0tCQkJCQkg ICAgICBzdHJ1Y3QgdWlfZmlsZSAqKTsKLSBzdGF0aWMgdm9pZCBmNzdfZ2V0X2R5bmFtaWNfbGVu Z3RoX29mX2FnZ3JlZ2F0ZSAoc3RydWN0IHR5cGUgKik7Ci0gCi0gaW50IGY3N19hcnJheV9vZmZz ZXRfdGJsW01BWF9GT1JUUkFOX0RJTVMgKyAxXVsyXTsKLUBAIC00NSwxNSArNDMsNiBAQAotIC8q IEFycmF5IHdoaWNoIGhvbGRzIG9mZnNldHMgdG8gYmUgYXBwbGllZCB0byBnZXQgYSByb3cncyBl bGVtZW50cwotICAgIGZvciBhIGdpdmVuIGFycmF5LiAgQXJyYXkgYWxzbyBob2xkcyB0aGUgc2l6 ZSBvZiBlYWNoIHN1YmFycmF5LiAgKi8KLSAKLS0vKiBUaGUgZm9sbG93aW5nIG1hY3JvIGdpdmVz IHVzIHRoZSBzaXplIG9mIHRoZSBudGggZGltZW5zaW9uLCBXaGVyZSAKLS0gICBuIGlzIDEgYmFz ZWQuICAqLwotLQotLSNkZWZpbmUgRjc3X0RJTV9TSVpFKG4pIChmNzdfYXJyYXlfb2Zmc2V0X3Ri bFtuXVsxXSkKLS0KLS0vKiBUaGUgZm9sbG93aW5nIGdpdmVzIHVzIHRoZSBvZmZzZXQgZm9yIHJv dyBuIHdoZXJlIG4gaXMgMS1iYXNlZC4gICovCi0tCi0tI2RlZmluZSBGNzdfRElNX09GRlNFVChu KSAoZjc3X2FycmF5X29mZnNldF90Ymxbbl1bMF0pCi0tCi0gaW50Ci0gZjc3X2dldF9sb3dlcmJv dW5kIChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSB7Ci1AQCAtMTExLDQ3ICsxMDAsNiBAQAotICAgICAq IFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkpOwot IH0KLSAKLS0vKiBGdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIGFycmF5IG9mZnNldCxzaXplIHRh YmxlIGZvciB0aGUgYXJyYXkgCi0tICAgdHlwZSAidHlwZSIuICAqLwotLQotLXN0YXRpYyB2b2lk Ci0tZjc3X2NyZWF0ZV9hcnJheXByaW50X29mZnNldF90YmwgKHN0cnVjdCB0eXBlICp0eXBlLCBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQotLXsKLS0gIHN0cnVjdCB0eXBlICp0bXBfdHlwZTsKLS0g IGludCBlbHRsZW47Ci0tICBpbnQgbmRpbWVuID0gMTsKLS0gIGludCB1cHBlciwgbG93ZXI7Ci0t Ci0tICB0bXBfdHlwZSA9IHR5cGU7Ci0tCi0tICB3aGlsZSAoVFlQRV9DT0RFICh0bXBfdHlwZSkg PT0gVFlQRV9DT0RFX0FSUkFZKQotLSAgICB7Ci0tICAgICAgdXBwZXIgPSBmNzdfZ2V0X3VwcGVy Ym91bmQgKHRtcF90eXBlKTsKLS0gICAgICBsb3dlciA9IGY3N19nZXRfbG93ZXJib3VuZCAodG1w X3R5cGUpOwotLQotLSAgICAgIEY3N19ESU1fU0laRSAobmRpbWVuKSA9IHVwcGVyIC0gbG93ZXIg KyAxOwotLQotLSAgICAgIHRtcF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodG1wX3R5cGUpOwot LSAgICAgIG5kaW1lbisrOwotLSAgICB9Ci0tCi0tICAvKiBOb3cgd2UgbXVsdGlwbHkgZWx0bGVu IGJ5IGFsbCB0aGUgb2Zmc2V0cywgc28gdGhhdCBsYXRlciB3ZSAKLS0gICAgIGNhbiBwcmludCBv dXQgYXJyYXkgZWxlbWVudHMgY29ycmVjdGx5LiAgVXAgdGlsbCBub3cgd2UgCi0tICAgICBrbm93 IGFuIG9mZnNldCB0byBhcHBseSB0byBnZXQgdGhlIGl0ZW0gYnV0IHdlIGFsc28gCi0tICAgICBo YXZlIHRvIGtub3cgaG93IG11Y2ggdG8gYWRkIHRvIGdldCB0byB0aGUgbmV4dCBpdGVtLiAgKi8K LS0KLS0gIG5kaW1lbi0tOwotLSAgZWx0bGVuID0gVFlQRV9MRU5HVEggKHRtcF90eXBlKTsKLS0g IEY3N19ESU1fT0ZGU0VUIChuZGltZW4pID0gZWx0bGVuOwotLSAgd2hpbGUgKC0tbmRpbWVuID4g MCkKLS0gICAgewotLSAgICAgIGVsdGxlbiAqPSBGNzdfRElNX1NJWkUgKG5kaW1lbiArIDEpOwot LSAgICAgIEY3N19ESU1fT0ZGU0VUIChuZGltZW4pID0gZWx0bGVuOwotLSAgICB9Ci0tfQotLQot LQotLQotIC8qIEFjdHVhbCBmdW5jdGlvbiB3aGljaCBwcmludHMgb3V0IEY3NyBhcnJheXMsIFZh bGFkZHIgPT0gYWRkcmVzcyBpbiAKLSAgICB0aGUgc3VwZXJpb3IuICBBZGRyZXNzID09IHRoZSBh ZGRyZXNzIGluIHRoZSBpbmZlcmlvci4gICovCi0gCi1AQCAtMTY0LDQxICsxMTIsNjIgQEAKLSAJ CSAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotIAkJICAgaW50 ICplbHRzKQotIHsKLSsgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBF IChjaGVja190eXBlZGVmICh0eXBlKSk7Ci0rICBDT1JFX0FERFIgYWRkciA9IGFkZHJlc3MgKyBl bWJlZGRlZF9vZmZzZXQ7Ci0rICBMT05HRVNUIGxvd2VyYm91bmQsIHVwcGVyYm91bmQ7Ci0gICBp bnQgaTsKLSAKLSsgIGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dlcmJvdW5k LCAmdXBwZXJib3VuZCk7Ci0rCi0gICBpZiAobnNzICE9IG5kaW1lbnNpb25zKQotICAgICB7Ci0t ICAgICAgZm9yIChpID0gMDsKLS0JICAgKGkgPCBGNzdfRElNX1NJWkUgKG5zcykgJiYgKCplbHRz KSA8IG9wdGlvbnMtPnByaW50X21heCk7Ci0rICAgICAgc2l6ZV90IGRpbV9zaXplOwotKyAgICAg IHNpemVfdCBvZmZzID0gMDsKLSsgICAgICBMT05HRVNUIGJ5dGVfc3RyaWRlID0gYWJzIChUWVBF X0JZVEVfU1RSSURFIChyYW5nZV90eXBlKSk7Ci0rCi0rICAgICAgaWYgKGJ5dGVfc3RyaWRlKQot KyAgICAgICAgZGltX3NpemUgPSBieXRlX3N0cmlkZTsKLSsgICAgICBlbHNlCi0rICAgICAgICBk aW1fc2l6ZSA9IFRZUEVfTEVOR1RIIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSk7Ci0rCi0rICAg ICAgZm9yIChpID0gbG93ZXJib3VuZDsKLSsJICAgKGkgPCB1cHBlcmJvdW5kICsgMSAmJiAoKmVs dHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4KTsKLSAJICAgaSsrKQotIAl7Ci0rCSAgc3RydWN0IHZh bHVlICpzdWJhcnJheSA9IHZhbHVlX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MKLSsJICAgIChU WVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgdmFsdWVfY29udGVudHNfZm9yX3ByaW50aW5nX2NvbnN0 ICh2YWwpCi0rCSAgICAgKyBvZmZzLCBhZGRyICsgb2Zmcyk7Ci0rCi0gCSAgZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCAiKCAiKTsKLS0JICBmNzdfcHJpbnRfYXJyYXlfMSAobnNzICsgMSwgbmRp bWVuc2lvbnMsIFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLAotLQkJCSAgICAgdmFsYWRkciwKLS0J CQkgICAgIGVtYmVkZGVkX29mZnNldCArIGkgKiBGNzdfRElNX09GRlNFVCAobnNzKSwKLS0JCQkg ICAgIGFkZHJlc3MsCi0tCQkJICAgICBzdHJlYW0sIHJlY3Vyc2UsIHZhbCwgb3B0aW9ucywgZWx0 cyk7Ci0rCSAgZjc3X3ByaW50X2FycmF5XzEgKG5zcyArIDEsIG5kaW1lbnNpb25zLCB2YWx1ZV90 eXBlIChzdWJhcnJheSksCi0rCQkJICAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKHN1 YmFycmF5KSwKLSsJCQkgICAgIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3ViYXJyYXkpLAotKwkJ CSAgICAgdmFsdWVfYWRkcmVzcyAoc3ViYXJyYXkpLAotKwkJCSAgICAgc3RyZWFtLCByZWN1cnNl LCBzdWJhcnJheSwgb3B0aW9ucywgZWx0cyk7Ci0rCSAgb2ZmcyArPSBkaW1fc2l6ZTsKLSAJICBm cHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpICIpOwotIAl9Ci0tICAgICAgaWYgKCplbHRzID49 IG9wdGlvbnMtPnByaW50X21heCAmJiBpIDwgRjc3X0RJTV9TSVpFIChuc3MpKSAKLSsgICAgICBp ZiAoKmVsdHMgPj0gb3B0aW9ucy0+cHJpbnRfbWF4ICYmIGkgPCB1cHBlcmJvdW5kKQotIAlmcHJp bnRmX2ZpbHRlcmVkIChzdHJlYW0sICIuLi4iKTsKLSAgICAgfQotICAgZWxzZQotICAgICB7Ci0t ICAgICAgZm9yIChpID0gMDsgaSA8IEY3N19ESU1fU0laRSAobnNzKSAmJiAoKmVsdHMpIDwgb3B0 aW9ucy0+cHJpbnRfbWF4OwotKyAgICAgIGZvciAoaSA9IGxvd2VyYm91bmQ7IGkgPCB1cHBlcmJv dW5kICsgMSAmJiAoKmVsdHMpIDwgb3B0aW9ucy0+cHJpbnRfbWF4OwotIAkgICBpKyssICgqZWx0 cykrKykKLSAJewotLQkgIHZhbF9wcmludCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksCi0tCQkg ICAgIHZhbGFkZHIsCi0tCQkgICAgIGVtYmVkZGVkX29mZnNldCArIGkgKiBGNzdfRElNX09GRlNF VCAobmRpbWVuc2lvbnMpLAotLQkJICAgICBhZGRyZXNzLCBzdHJlYW0sIHJlY3Vyc2UsCi0tCQkg ICAgIHZhbCwgb3B0aW9ucywgY3VycmVudF9sYW5ndWFnZSk7Ci0rCSAgc3RydWN0IHZhbHVlICpl bHQgPSB2YWx1ZV9zdWJzY3JpcHQgKChzdHJ1Y3QgdmFsdWUgKil2YWwsIGkpOwotKwotKwkgIHZh bF9wcmludCAodmFsdWVfdHlwZSAoZWx0KSwKLSsJCSAgICAgdmFsdWVfY29udGVudHNfZm9yX3By aW50aW5nIChlbHQpLAotKwkJICAgICB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGVsdCksCi0rCQkg ICAgIHZhbHVlX2FkZHJlc3MgKGVsdCksIHN0cmVhbSwgcmVjdXJzZSwKLSsJCSAgICAgZWx0LCBv cHRpb25zLCBjdXJyZW50X2xhbmd1YWdlKTsKLSAKLS0JICBpZiAoaSAhPSAoRjc3X0RJTV9TSVpF IChuc3MpIC0gMSkpCi0rCSAgaWYgKGkgIT0gdXBwZXJib3VuZCkKLSAJICAgIGZwcmludGZfZmls dGVyZWQgKHN0cmVhbSwgIiwgIik7Ci0gCi0gCSAgaWYgKCgqZWx0cyA9PSBvcHRpb25zLT5wcmlu dF9tYXggLSAxKQotLQkgICAgICAmJiAoaSAhPSAoRjc3X0RJTV9TSVpFIChuc3MpIC0gMSkpKQot KwkgICAgICAmJiAoaSAhPSB1cHBlcmJvdW5kKSkKLSAJICAgIGZwcmludGZfZmlsdGVyZWQgKHN0 cmVhbSwgIi4uLiIpOwotIAl9Ci0gICAgIH0KLUBAIC0yMjUsMTIgKzE5NCw2IEBACi0gVHlwZSBu b2RlIGNvcnJ1cHQhIEY3NyBhcnJheXMgY2Fubm90IGhhdmUgJWQgc3Vic2NyaXB0cyAoJWQgTWF4 KSIpLAotIAkgICBuZGltZW5zaW9ucywgTUFYX0ZPUlRSQU5fRElNUyk7Ci0gCi0tICAvKiBTaW5j ZSBGNzcgYXJyYXlzIGFyZSBzdG9yZWQgY29sdW1uLW1ham9yLCB3ZSBzZXQgdXAgYW4gCi0tICAg ICBvZmZzZXQgdGFibGUgdG8gZ2V0IGF0IHRoZSB2YXJpb3VzIHJvdydzIGVsZW1lbnRzLiAgVGhl IAotLSAgICAgb2Zmc2V0IHRhYmxlIGNvbnRhaW5zIGVudHJpZXMgZm9yIGJvdGggb2Zmc2V0IGFu ZCBzdWJhcnJheSBzaXplLiAgKi8KLS0KLS0gIGY3N19jcmVhdGVfYXJyYXlwcmludF9vZmZzZXRf dGJsICh0eXBlLCBzdHJlYW0pOwotLQotICAgZjc3X3ByaW50X2FycmF5XzEgKDEsIG5kaW1lbnNp b25zLCB0eXBlLCB2YWxhZGRyLCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkgICAgIGFkZHJlc3MsIHN0 cmVhbSwgcmVjdXJzZSwgdmFsLCBvcHRpb25zLCAmZWx0cyk7Ci0gfQotQEAgLTM3NSwxMiArMzM4 LDE1IEBACi0gICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCAiKTsKLSAgICAgICBm b3IgKGluZGV4ID0gMDsgaW5kZXggPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpbmRleCsrKQotICAg ICAgICAgewotLSAgICAgICAgICBpbnQgb2Zmc2V0ID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUs IGluZGV4KSAvIDg7Ci0rCSAgc3RydWN0IHZhbHVlICpmaWVsZCA9IHZhbHVlX2ZpZWxkCi0rCSAg ICAoKHN0cnVjdCB2YWx1ZSAqKW9yaWdpbmFsX3ZhbHVlLCBpbmRleCk7Ci0rCi0rICAgICAgICAg IHZhbF9wcmludCAodmFsdWVfdHlwZSAoZmllbGQpLAotKwkJICAgICB2YWx1ZV9jb250ZW50c19m b3JfcHJpbnRpbmcgKGZpZWxkKSwKLSsJCSAgICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChmaWVs ZCksCi0rCQkgICAgIHZhbHVlX2FkZHJlc3MgKGZpZWxkKSwgc3RyZWFtLCByZWN1cnNlICsgMSwK LSsJCSAgICAgZmllbGQsIG9wdGlvbnMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwotIAotLSAgICAgICAg ICB2YWxfcHJpbnQgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaW5kZXgpLCB2YWxhZGRyLAotLQkJ ICAgICBlbWJlZGRlZF9vZmZzZXQgKyBvZmZzZXQsCi0tCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwg cmVjdXJzZSArIDEsCi0tCQkgICAgIG9yaWdpbmFsX3ZhbHVlLCBvcHRpb25zLCBjdXJyZW50X2xh bmd1YWdlKTsKLSAgICAgICAgICAgaWYgKGluZGV4ICE9IFRZUEVfTkZJRUxEUyAodHlwZSkgLSAx KQotICAgICAgICAgICAgIGZwdXRzX2ZpbHRlcmVkICgiLCAiLCBzdHJlYW0pOwotICAgICAgICAg fQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJ0eXBlcy5jCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE2LTAxLTA4 IDE5OjE1OjM1LjA4MzU4MjQ1OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9n ZGJ0eXBlcy5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTgyNjM3Njc0ICswMTAwCi1AQCAtODM2LDcg KzgzNiw4IEBACi0gc3RydWN0IHR5cGUgKgotIGNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlw ZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0eXBlICppbmRleF90eXBlLAotIAkJICAgY29uc3Qgc3Ry dWN0IGR5bmFtaWNfcHJvcCAqbG93X2JvdW5kLAotLQkJICAgY29uc3Qgc3RydWN0IGR5bmFtaWNf cHJvcCAqaGlnaF9ib3VuZCkKLSsJCSAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKmhpZ2hf Ym91bmQsCi0rCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpzdHJpZGUpCi0gewotICAg aWYgKHJlc3VsdF90eXBlID09IE5VTEwpCi0gICAgIHJlc3VsdF90eXBlID0gYWxsb2NfdHlwZV9j b3B5IChpbmRleF90eXBlKTsKLUBAIC04NTEsNiArODUyLDcgQEAKLSAgICAgVFlQRV9aQUxMT0Mg KHJlc3VsdF90eXBlLCBzaXplb2YgKHN0cnVjdCByYW5nZV9ib3VuZHMpKTsKLSAgIFRZUEVfUkFO R0VfREFUQSAocmVzdWx0X3R5cGUpLT5sb3cgPSAqbG93X2JvdW5kOwotICAgVFlQRV9SQU5HRV9E QVRBIChyZXN1bHRfdHlwZSktPmhpZ2ggPSAqaGlnaF9ib3VuZDsKLSsgIFRZUEVfUkFOR0VfREFU QSAocmVzdWx0X3R5cGUpLT5zdHJpZGUgPSAqc3RyaWRlOwotIAotICAgaWYgKGxvd19ib3VuZC0+ a2luZCA9PSBQUk9QX0NPTlNUICYmIGxvd19ib3VuZC0+ZGF0YS5jb25zdF92YWwgPj0gMCkKLSAg ICAgVFlQRV9VTlNJR05FRCAocmVzdWx0X3R5cGUpID0gMTsKLUBAIC04NzksNyArODgxLDcgQEAK LSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlwZSwgc3Ry dWN0IHR5cGUgKmluZGV4X3R5cGUsCi0gCQkJICBMT05HRVNUIGxvd19ib3VuZCwgTE9OR0VTVCBo aWdoX2JvdW5kKQotIHsKLS0gIHN0cnVjdCBkeW5hbWljX3Byb3AgbG93LCBoaWdoOwotKyAgc3Ry dWN0IGR5bmFtaWNfcHJvcCBsb3csIGhpZ2gsIHN0cmlkZTsKLSAKLSAgIGxvdy5raW5kID0gUFJP UF9DT05TVDsKLSAgIGxvdy5kYXRhLmNvbnN0X3ZhbCA9IGxvd19ib3VuZDsKLUBAIC04ODcsNyAr ODg5LDExIEBACi0gICBoaWdoLmtpbmQgPSBQUk9QX0NPTlNUOwotICAgaGlnaC5kYXRhLmNvbnN0 X3ZhbCA9IGhpZ2hfYm91bmQ7Ci0gCi0tICByZXN1bHRfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBl IChyZXN1bHRfdHlwZSwgaW5kZXhfdHlwZSwgJmxvdywgJmhpZ2gpOwotKyAgc3RyaWRlLmtpbmQg PSBQUk9QX0NPTlNUOwotKyAgc3RyaWRlLmRhdGEuY29uc3RfdmFsID0gMDsKLSsKLSsgIHJlc3Vs dF90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKHJlc3VsdF90eXBlLCBpbmRleF90eXBlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmxvdywgJmhpZ2gsICZzdHJpZGUpOwot IAotICAgcmV0dXJuIHJlc3VsdF90eXBlOwotIH0KLUBAIC0xMDg0LDE2ICsxMDkwLDIxIEBACi0g ICAgICAgJiYgKCF0eXBlX25vdF9hc3NvY2lhdGVkIChyZXN1bHRfdHlwZSkKLSAJICAmJiAhdHlw ZV9ub3RfYWxsb2NhdGVkIChyZXN1bHRfdHlwZSkpKQotICAgICB7Ci0tICAgICAgTE9OR0VTVCBs b3dfYm91bmQsIGhpZ2hfYm91bmQ7Ci0rICAgICAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91 bmQsIGJ5dGVfc3RyaWRlOwotIAotICAgICAgIGlmIChnZXRfZGlzY3JldGVfYm91bmRzIChyYW5n ZV90eXBlLCAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotIAlsb3dfYm91bmQgPSBoaWdo X2JvdW5kID0gMDsKLSAgICAgICBlbGVtZW50X3R5cGUgPSBjaGVja190eXBlZGVmIChlbGVtZW50 X3R5cGUpOwotKwotKyAgICAgIGJ5dGVfc3RyaWRlID0gYWJzIChUWVBFX0JZVEVfU1RSSURFIChy YW5nZV90eXBlKSk7Ci0rCi0gICAgICAgLyogQmUgY2FyZWZ1bCB3aGVuIHNldHRpbmcgdGhlIGFy cmF5IGxlbmd0aC4gIEFkYSBhcnJheXMgY2FuIGJlCi0gCSBlbXB0eSBhcnJheXMgd2l0aCB0aGUg aGlnaF9ib3VuZCBiZWluZyBzbWFsbGVyIHRoYW4gdGhlIGxvd19ib3VuZC4KLSAJIEluIHN1Y2gg Y2FzZXMsIHRoZSBhcnJheSBsZW5ndGggc2hvdWxkIGJlIHplcm8uICAqLwotICAgICAgIGlmICho aWdoX2JvdW5kIDwgbG93X2JvdW5kKQotIAlUWVBFX0xFTkdUSCAocmVzdWx0X3R5cGUpID0gMDsK LSsgICAgICBlbHNlIGlmIChieXRlX3N0cmlkZSA+IDApCi0rCVRZUEVfTEVOR1RIIChyZXN1bHRf dHlwZSkgPSBieXRlX3N0cmlkZSAqIChoaWdoX2JvdW5kIC0gbG93X2JvdW5kICsgMSk7Ci0gICAg ICAgZWxzZSBpZiAoYml0X3N0cmlkZSA+IDApCi0gCVRZUEVfTEVOR1RIIChyZXN1bHRfdHlwZSkg PQotIAkgIChiaXRfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKSArIDcpIC8g ODsKLUBAIC0xODA0LDEyICsxODE1LDMxIEBACi0gc3RhdGljIGludAotIGlzX2R5bmFtaWNfdHlw ZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCi0gewotKyAgaW50 IGluZGV4OwotKwotKyAgaWYgKCF0eXBlKQotKyAgICByZXR1cm4gMDsKLSsKLSAgIHR5cGUgPSBj aGVja190eXBlZGVmICh0eXBlKTsKLSAKLSAgIC8qIFdlIG9ubHkgd2FudCB0byByZWNvZ25pemUg cmVmZXJlbmNlcyBhdCB0aGUgb3V0ZXJtb3N0IGxldmVsLiAgKi8KLSAgIGlmICh0b3BfbGV2ZWwg JiYgVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUkVGKQotICAgICB0eXBlID0gY2hlY2tf dHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpOwotIAotKyAgaWYgKFRZUEVfQVNTT0NJ QVRFRF9QUk9QICh0eXBlKSkKLSsgICAgcmV0dXJuIDE7Ci0rCi0rICBpZiAoVFlQRV9BTExPQ0FU RURfUFJPUCAodHlwZSkpCi0rICAgIHJldHVybiAxOwotKwotKyAgLyogU2NhbiBmaWVsZCB0eXBl cyBpbiB0aGUgRm9ydHJhbiBjYXNlIGZvciBuZXN0ZWQgZHluYW1pYyB0eXBlcy4KLSsgICAgIFRo aXMgd2lsbCBiZSBkb25lIG9ubHkgZm9yIEZvcnRyYW4gYXMgaW4gdGhlIEMrKyBjYXNlIGFuIGVu ZGxlc3MgcmVjdXJzaW9uCi0rICAgICBjYW4gb2NjdXIgaW4gdGhlIGFyZWEgb2YgY2xhc3Nlcy4g ICovCi0rICBpZiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9y dHJhbikKLSsgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgVFlQRV9ORklFTERTICh0eXBlKTsg aW5kZXgrKykKLSsgICAgICBpZiAoaXNfZHluYW1pY190eXBlIChUWVBFX0ZJRUxEX1RZUEUgKHR5 cGUsIGluZGV4KSkpCi0rICAgICAgICByZXR1cm4gMTsKLSsKLSAgIC8qIFR5cGVzIHRoYXQgaGF2 ZSBhIGR5bmFtaWMgVFlQRV9EQVRBX0xPQ0FUSU9OIGFyZSBjb25zaWRlcmVkCi0gICAgICBkeW5h bWljLCBldmVuIGlmIHRoZSB0eXBlIGl0c2VsZiBpcyBzdGF0aWNhbGx5IGRlZmluZWQuCi0gICAg ICBGcm9tIGEgdXNlcidzIHBvaW50IG9mIHZpZXcsIHRoaXMgbWF5IGFwcGVhciBjb3VudGVyLWlu dHVpdGl2ZTsKLUBAIC0xODQ0LDExICsxODc0LDE5IEBACi0gICAgICAgewotIAlnZGJfYXNzZXJ0 IChUWVBFX05GSUVMRFMgKHR5cGUpID09IDEpOwotIAotLQkvKiBUaGUgYXJyYXkgaXMgZHluYW1p YyBpZiBlaXRoZXIgdGhlIGJvdW5kcyBhcmUgZHluYW1pYywKLS0JICAgb3IgdGhlIGVsZW1lbnRz IGl0IGNvbnRhaW5zIGhhdmUgYSBkeW5hbWljIGNvbnRlbnRzLiAgKi8KLSsJLyogVGhlIGFycmF5 IGlzIGR5bmFtaWMgaWYgZWl0aGVyCi0rICAgICAtIHRoZSBib3VuZHMgYXJlIGR5bmFtaWMsCi0r CSAgIC0gdGhlIGVsZW1lbnRzIGl0IGNvbnRhaW5zIGhhdmUgYSBkeW5hbWljIGNvbnRlbnRzCi0r ICAgICAtIGEgZGF0YV9sb2NhdG9uIGF0dHJpYnV0ZSB3YXMgZm91bmQuICAqLwotIAlpZiAoaXNf ZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX0lOREVYX1RZUEUgKHR5cGUpLCAwKSkKLSAJICBy ZXR1cm4gMTsKLS0JcmV0dXJuIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJHRVRf VFlQRSAodHlwZSksIDApOwotKwllbHNlIGlmIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpICE9 IE5VTEwKLSsJICAgICAgICAgJiYgKFRZUEVfREFUQV9MT0NBVElPTl9LSU5EICh0eXBlKSA9PSBQ Uk9QX0xPQ0VYUFIKLSsJICAgICAgICAgICAgIHx8IFRZUEVfREFUQV9MT0NBVElPTl9LSU5EICh0 eXBlKSA9PSBQUk9QX0xPQ0xJU1QpKQotKyAgICByZXR1cm4gMTsKLSsgIGVsc2UKLSsgICAgcmV0 dXJuIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIDAp OwotKwlicmVhazsKLSAgICAgICB9Ci0gCi0gICAgIGNhc2UgVFlQRV9DT0RFX1NUUlVDVDoKLUBA IC0xODYxLDYgKzE4OTksMTggQEAKLSAJICAgICAgJiYgaXNfZHluYW1pY190eXBlX2ludGVybmFs IChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpLCAwKSkKLSAJICAgIHJldHVybiAxOwotICAgICAg IH0KLSsgICAgY2FzZSBUWVBFX0NPREVfUFRSOgotKyAgICAgIHsKLSsgICAgICAgIGlmIChUWVBF X1RBUkdFVF9UWVBFICh0eXBlKQotKyAgICAgICAgICAgICYmIChUWVBFX0NPREUgKFRZUEVfVEFS R0VUX1RZUEUgKHR5cGUpKSA9PSBUWVBFX0NPREVfU1RSSU5HCi0rICAgICAgICAgICAgICAgIHx8 IFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpID09IFRZUEVfQ09ERV9BUlJBWSkp Ci0rICAgICAgICAgIHJldHVybiBpc19keW5hbWljX3R5cGUgKGNoZWNrX3R5cGVkZWYgKFRZUEVf VEFSR0VUX1RZUEUgKHR5cGUpKSk7Ci0rCi0rICAgICAgICByZXR1cm4gMDsKLSsgICAgICAgIGJy ZWFrOwotKyAgICAgIH0KLSsgICAgZGVmYXVsdDoKLSsgICAgICByZXR1cm4gMDsKLSAgICAgICBi cmVhazsKLSAgICAgfQotIAotQEAgLTE4OTAsNyArMTk0MCw4IEBACi0gICBzdHJ1Y3QgdHlwZSAq c3RhdGljX3JhbmdlX3R5cGUsICpzdGF0aWNfdGFyZ2V0X3R5cGU7Ci0gICBjb25zdCBzdHJ1Y3Qg ZHluYW1pY19wcm9wICpwcm9wOwotICAgY29uc3Qgc3RydWN0IGR3YXJmMl9sb2NleHByX2JhdG9u ICpiYXRvbjsKLS0gIHN0cnVjdCBkeW5hbWljX3Byb3AgbG93X2JvdW5kLCBoaWdoX2JvdW5kOwot KyAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIHN0cmlkZTsKLSsg IHN0cnVjdCB0eXBlICpyYW5nZV9jb3B5ID0gY29weV90eXBlIChkeW5fcmFuZ2VfdHlwZSk7Ci0g Ci0gICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKGR5bl9yYW5nZV90eXBlKSA9PSBUWVBFX0NPREVf UkFOR0UpOwotIAotQEAgLTE5MjIsMTIgKzE5NzMsMTkgQEAKLSAgICAgICBoaWdoX2JvdW5kLmRh dGEuY29uc3RfdmFsID0gMDsKLSAgICAgfQotIAotKyAgcHJvcCA9ICZUWVBFX1JBTkdFX0RBVEEg KGR5bl9yYW5nZV90eXBlKS0+c3RyaWRlOwotKyAgaWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0 eSAocHJvcCwgTlVMTCwgYWRkcl9zdGFjaywgJnZhbHVlKSkKLSsgICAgewotKyAgICAgIHN0cmlk ZS5raW5kID0gUFJPUF9DT05TVDsKLSsgICAgICBzdHJpZGUuZGF0YS5jb25zdF92YWwgPSB2YWx1 ZTsKLSsgICAgfQotKwotICAgc3RhdGljX3RhcmdldF90eXBlCi0tICAgID0gcmVzb2x2ZV9keW5h bWljX3R5cGVfaW50ZXJuYWwgKFRZUEVfVEFSR0VUX1RZUEUgKGR5bl9yYW5nZV90eXBlKSwKLSsg ICAgPSByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoVFlQRV9UQVJHRVRfVFlQRSAocmFu Z2VfY29weSksCi0gCQkJCSAgICAgYWRkcl9zdGFjaywgMCk7Ci0tICBzdGF0aWNfcmFuZ2VfdHlw ZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChjb3B5X3R5cGUgKGR5bl9yYW5nZV90eXBlKSwKLSsgIHN0 YXRpY19yYW5nZV90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKHJhbmdlX2NvcHksCi0gCQkJCQkg c3RhdGljX3RhcmdldF90eXBlLAotLQkJCQkJICZsb3dfYm91bmQsICZoaWdoX2JvdW5kKTsKLSsJ CQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCwgJnN0cmlkZSk7Ci0gICBUWVBFX1JBTkdFX0RB VEEgKHN0YXRpY19yYW5nZV90eXBlKS0+ZmxhZ19ib3VuZF9ldmFsdWF0ZWQgPSAxOwotICAgcmV0 dXJuIHN0YXRpY19yYW5nZV90eXBlOwotIH0KLUBAIC0xOTQ2LDcgKzIwMDQsOCBAQAotICAgc3Ry dWN0IHR5cGUgKmFyeV9kaW07Ci0gICBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wOwotIAotLSAg Z2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkpOwotKyAgZ2Ri X2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKLSsJICAgICAgfHwg VFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKTsKLSAKLSAgIHR5cGUgPSBjb3B5 X3R5cGUgKHR5cGUpOwotIAotQEAgLTE5NzEsMTMgKzIwMzAsMTggQEAKLSAKLSAgIGFyeV9kaW0g PSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChlbHRfdHlwZSkpOwotIAotLSAgaWYg KGFyeV9kaW0gIT0gTlVMTCAmJiBUWVBFX0NPREUgKGFyeV9kaW0pID09IFRZUEVfQ09ERV9BUlJB WSkKLSsgIGlmIChhcnlfZGltICE9IE5VTEwgJiYgKFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQ RV9DT0RFX0FSUkFZCi0rCQkJICB8fCBUWVBFX0NPREUgKGFyeV9kaW0pID09IFRZUEVfQ09ERV9T VFJJTkcpKQotICAgICBlbHRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJheSAoYXJ5X2RpbSwg YWRkcl9zdGFjayk7Ci0gICBlbHNlCi0gICAgIGVsdF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAo dHlwZSk7Ci0gCi0tICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKHR5cGUs IGVsdF90eXBlLCByYW5nZV90eXBlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIDApKTsKLSsgIGlmIChUWVBFX0NPREUg KHR5cGUpID09IFRZUEVfQ09ERV9TVFJJTkcKLSsgICAgICAmJiBUWVBFX0ZJRUxEX0JJVFNJWkUg KHR5cGUsIDApID09IDApCi0rICAgIHJldHVybiBjcmVhdGVfc3RyaW5nX3R5cGUgKHR5cGUsIGVs dF90eXBlLCByYW5nZV90eXBlKTsKLSsgIGVsc2UKLSsgICAgcmV0dXJuIGNyZWF0ZV9hcnJheV90 eXBlX3dpdGhfc3RyaWRlICh0eXBlLCBlbHRfdHlwZSwgcmFuZ2VfdHlwZSwKLSsJCQkJCSAgVFlQ RV9GSUVMRF9CSVRTSVpFICh0eXBlLCAwKSk7Ci0gfQotIAotIC8qIFJlc29sdmUgZHluYW1pYyBi b3VuZHMgb2YgbWVtYmVycyBvZiB0aGUgdW5pb24gVFlQRSB0byBzdGF0aWMKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvZ2RidHlwZXMuaAotPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNi0wMS0wOCAxOToxNTozNS4wODU1 ODI0NzEgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2RidHlwZXMuaAkyMDE2 LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAotQEAgLTU3Nyw2ICs1NzcsMTAgQEAKLSAK LSAgIHN0cnVjdCBkeW5hbWljX3Byb3AgaGlnaDsKLSAKLSsgIC8qICogU3RyaWRlIG9mIHJhbmdl LiAgKi8KLSsKLSsgIHN0cnVjdCBkeW5hbWljX3Byb3Agc3RyaWRlOwotKwotICAgLyogVHJ1ZSBp ZiBISUdIIHJhbmdlIGJvdW5kIGNvbnRhaW5zIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhl Ci0gICAgICBzdWJyYW5nZS4gVGhpcyBhZmZlY3RzIGhvdyB0aGUgZmluYWwgaGlnaHQgYm91bmQg aXMgY29tcHV0ZWQuICAqLwotIAotQEAgLTc0OSw2ICs3NTMsMTggQEAKLSAKLSAgIC8qICogQ29u dGFpbnMgYWxsIGR5bmFtaWMgdHlwZSBwcm9wZXJ0aWVzLiAgKi8KLSAgIHN0cnVjdCBkeW5hbWlj X3Byb3BfbGlzdCAqZHluX3Byb3BfbGlzdDsKLSsKLSsgIC8qIFN0cnVjdHVyZSBmb3IgRFdfQVRf YWxsb2NhdGVkLgotKyAgICAgVGhlIHByZXNlbmNlIG9mIHRoaXMgYXR0cmlidXRlIGluZGljYXRl cyB0aGF0IHRoZSBvYmplY3Qgb2YgdGhlIHR5cGUKLSsgICAgIGNhbiBiZSBhbGxvY2F0ZWQvZGVh bGxvY2F0ZWQuICBUaGUgdmFsdWUgY2FuIGJlIGEgZHdhcmYgZXhwcmVzc2lvbiwKLSsgICAgIHJl ZmVyZW5jZSwgb3IgYSBjb25zdGFudC4gICovCi0rICBzdHJ1Y3QgZHluYW1pY19wcm9wICphbGxv Y2F0ZWQ7Ci0rCi0rICAvKiBTdHJ1Y3R1cmUgZm9yIERXX0FUX2Fzc29jaWF0ZWQuCi0rICAgICBU aGUgcHJlc2VuY2Ugb2YgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVkIHRoYXQgdGhlIG9iamVjdCBv ZiB0aGUgdHlwZQotKyAgICAgY2FuIGJlIGFzc29jaWF0ZWQuICBUaGUgdmFsdWUgY2FuIGJlIGEg ZHdhcmYgZXhwcmVzc2lvbiwKLSsgICAgIHJlZmVyZW5jZSwgb3IgYSBjb25zdGFudC4gICovCi0r ICBzdHJ1Y3QgZHluYW1pY19wcm9wICphc3NvY2lhdGVkOwotIH07Ci0gCi0gLyogKiBBIGBgc3Ry dWN0IHR5cGUnJyBkZXNjcmliZXMgYSBwYXJ0aWN1bGFyIGluc3RhbmNlIG9mIGEgdHlwZSwgd2l0 aAotQEAgLTEyNTUsNiArMTI3MSwxNSBAQAotICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUp LT5oaWdoLmtpbmQKLSAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX0tJTkQocmFuZ2VfdHlwZSkgXAot ICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3cua2luZAotKyNkZWZpbmUgVFlQRV9C WVRFX1NUUklERShyYW5nZV90eXBlKSBcCi0rICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSkt PnN0cmlkZS5kYXRhLmNvbnN0X3ZhbAotKyNkZWZpbmUgVFlQRV9CWVRFX1NUUklERV9CTE9DSyhy YW5nZV90eXBlKSBcCi0rICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPnN0cmlkZS5kYXRh LmxvY2V4cHIKLSsjZGVmaW5lIFRZUEVfQllURV9TVFJJREVfTE9DTElTVChyYW5nZV90eXBlKSBc Ci0rICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPnN0cmlkZS5kYXRhLmxvY2xpc3QKLSsj ZGVmaW5lIFRZUEVfQllURV9TVFJJREVfS0lORChyYW5nZV90eXBlKSBcCi0rICBUWVBFX1JBTkdF X0RBVEEocmFuZ2VfdHlwZSktPnN0cmlkZS5raW5kCi0rCi0gCi0gLyogUHJvcGVydHkgYWNjZXNz b3JzIGZvciB0aGUgdHlwZSBkYXRhIGxvY2F0aW9uLiAgKi8KLSAjZGVmaW5lIFRZUEVfREFUQV9M T0NBVElPTih0aGlzdHlwZSkgXAotQEAgLTEyNjYsNiArMTI5MSwxOCBAQAotICNkZWZpbmUgVFlQ RV9EQVRBX0xPQ0FUSU9OX0tJTkQodGhpc3R5cGUpIFwKLSAgIFRZUEVfREFUQV9MT0NBVElPTiAo dGhpc3R5cGUpLT5raW5kCi0gCi0rLyogQWxsb2NhdGVkIHN0YXR1cyBvZiB0eXBlIG9iamVjdC4g IElmIHNldCB0byBub24temVybyBpdCBtZWFucyB0aGUgb2JqZWN0Ci0rICAgaXMgYWxsb2NhdGVk LiBBIHplcm8gdmFsdWUgbWVhbnMgaXQgaXMgbm90IGFsbG9jYXRlZC4gICovCi0rI2RlZmluZSBU WVBFX05PVF9BTExPQ0FURUQodCkgIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0KSBcCi0rICAmJiBU WVBFX0FMTE9DQVRFRF9QUk9QICh0KS0+a2luZCA9PSBQUk9QX0NPTlNUIFwKLSsgICYmICFUWVBF X0FMTE9DQVRFRF9QUk9QICh0KS0+ZGF0YS5jb25zdF92YWwpCi0rCi0rLyogQXNzb2NpYXRlZCBz dGF0dXMgb2YgdHlwZSBvYmplY3QuICBJZiBzZXQgdG8gbm9uLXplcm8gaXQgbWVhbnMgdGhlIG9i amVjdAotKyAgIGlzIGFzc29jaWF0ZWQuIEEgemVybyB2YWx1ZSBtZWFucyBpdCBpcyBub3QgYXNz b2NpYXRlZC4gICovCi0rI2RlZmluZSBUWVBFX05PVF9BU1NPQ0lBVEVEKHQpICAoVFlQRV9BU1NP Q0lBVEVEX1BST1AgKHQpIFwKLSsgICYmIFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0KS0+a2luZCA9 PSBQUk9QX0NPTlNUIFwKLSsgICYmICFUWVBFX0FTU09DSUFURURfUFJPUCAodCktPmRhdGEuY29u c3RfdmFsKQotKwotIC8qIFByb3BlcnR5IGFjY2Vzc29ycyBmb3IgdGhlIHR5cGUgYWxsb2NhdGVk L2Fzc29jaWF0ZWQuICAqLwotICNkZWZpbmUgVFlQRV9BTExPQ0FURURfUFJPUCh0aGlzdHlwZSkg XAotICAgZ2V0X2R5bl9wcm9wIChEWU5fUFJPUF9BTExPQ0FURUQsIHRoaXN0eXBlKQotQEAgLTEy ODksNiArMTMyNiw5IEBACi0gICAgVFlQRV9ISUdIX0JPVU5EX1VOREVGSU5FRChUWVBFX0lOREVY X1RZUEUoYXJyYXl0eXBlKSkKLSAjZGVmaW5lIFRZUEVfQVJSQVlfTE9XRVJfQk9VTkRfSVNfVU5E RUZJTkVEKGFycmF5dHlwZSkgXAotICAgIFRZUEVfTE9XX0JPVU5EX1VOREVGSU5FRChUWVBFX0lO REVYX1RZUEUoYXJyYXl0eXBlKSkKLSsjZGVmaW5lIFRZUEVfQVJSQVlfU1RSSURFX0lTX1VOREVG SU5FRChhcnJheXR5cGUpIFwKLSsgICAoVFlQRV9CWVRFX1NUUklERShUWVBFX0lOREVYX1RZUEUo YXJyYXl0eXBlKSkgPT0gMCkKLSsKLSAKLSAjZGVmaW5lIFRZUEVfQVJSQVlfVVBQRVJfQk9VTkRf VkFMVUUoYXJyYXl0eXBlKSBcCi0gICAgKFRZUEVfSElHSF9CT1VORChUWVBFX0lOREVYX1RZUEUo KGFycmF5dHlwZSkpKSkKLUBAIC0xNzc1LDYgKzE4MTUsNyBAQAotIAotIGV4dGVybiBzdHJ1Y3Qg dHlwZSAqY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCi0g CQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICosCi0rCQkJCSAgICAgICBjb25z dCBzdHJ1Y3QgZHluYW1pY19wcm9wICosCi0gCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHluYW1p Y19wcm9wICopOwotIAotIGV4dGVybiBzdHJ1Y3QgdHlwZSAqY3JlYXRlX2FycmF5X3R5cGUgKHN0 cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAv ZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAkyMDE2 LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAotQEAgLTAsMCArMSw2MSBAQAotKyMgQ29w eXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cu Z251Lm9yZy9saWNlbnNlcy8+LgotKwotK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgotKwotK2lm IHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3Jj ZmlsZX0gXAotKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30K LSsKLStpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3QgcnVu IHRvIGJyZWFrcG9pbnQgTUFJTl9fIgotKyAgICBjb250aW51ZQotK30KLSsKLSsjIENoZWNrIFZM QSBwYXNzZWQgdG8gZmlyc3QgRm9ydHJhbiBmdW5jdGlvbi4KLStnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAiZnVuYzEtdmxhLXBhc3NlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgImZ1bmMxLXZsYS1wYXNzZWQiCi0rZ2RiX3Rlc3QgInByaW50IHZsYSIgIiA9IFxc KCAqXFwoICoyMiwgKjIyLCAqMjIsXFsoKTIyLCAuXF0qXFwpIiBcCi0rICAicHJpbnQgdmxhIChm dW5jMSkiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxc XCkgXFxcKDEwLDEwXFxcKSIgXAotKyAgInB0eXBlIHZsYSAoZnVuYzEpIgotKwotK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMS12bGEtbW9kaWZpZWQiXQotK2dkYl9j b250aW51ZV90b19icmVha3BvaW50ICJmdW5jMS12bGEtbW9kaWZpZWQiCi0rZ2RiX3Rlc3QgInBy aW50IHZsYSg1LDUpIiAiID0gNTUiICJwcmludCB2bGEoNSw1KSAoZnVuYzEpIgotK2dkYl90ZXN0 ICJwcmludCB2bGEoNyw3KSIgIiA9IDc3IiAicHJpbnQgdmxhKDUsNSkgKGZ1bmMxKSIKLSsKLSsj IENoZWNrIGlmIHRoZSB2YWx1ZXMgYXJlIGNvcnJlY3QgYWZ0ZXIgcmV0dXJuaW5nIGZyb20gZnVu YzEKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzEtcmV0dXJuZWQi XQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMS1yZXR1cm5lZCIKLStnZGJfdGVz dCAicHJpbnQgcmV0IiAiID0gLlRSVUUuIiAicHJpbnQgcmV0IGFmdGVyIGZ1bmMxIHJldHVybmVk IgotKwotKyMgQ2hlY2sgVkxBIHBhc3NlZCB0byBzZWNvbmQgRm9ydHJhbiBmdW5jdGlvbgotK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMi12bGEtcGFzc2VkIl0KLStn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzItdmxhLXBhc3NlZCIKLStnZGJfdGVzdCAi cHJpbnQgdmxhIiBcCi0rICAiID0gXFxcKDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwg NDQsIDQ0XFxcKSIgXAotKyAgInByaW50IHZsYSAoZnVuYzIpIgotK2dkYl90ZXN0ICJwdHlwZSB2 bGEiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKLSsgICJwdHlw ZSB2bGEgKGZ1bmMyKSIKLSsKLSsjIENoZWNrIGlmIHRoZSByZXR1cm5lZCBWTEEgaGFzIHRoZSBj b3JyZWN0IHZhbHVlcyBhbmQgcHR5cGUuCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9u dW1iZXIgImZ1bmMyLXJldHVybmVkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVu YzItcmV0dXJuZWQiCi0rZ2RiX3Rlc3QgInByaW50IHZsYTMiICIgPSBcXFwoMSwgMiwgNDQsIDQs IDQ0LCA0NCwgNDQsIDgsIDQ0LCA0NFxcXCkiIFwKLSsgICJwcmludCB2bGEzIChhZnRlciBmdW5j MikiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYTMiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwp IFxcXCgxMFxcXCkiIFwKLSsgICJwdHlwZSB2bGEzIChhZnRlciBmdW5jMikiCi1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5mOTAK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1mdW5jLmY5MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAotQEAgLTAs MCArMSw3MSBAQAotKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyEg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCi0rISBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCi0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotKyEKLSshIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt cGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsKLSts b2dpY2FsIGZ1bmN0aW9uIGZ1bmMxICh2bGEpCi0rICBpbXBsaWNpdCBub25lCi0rICBpbnRlZ2Vy LCBhbGxvY2F0YWJsZSA6OiB2bGEgKDosIDopCi0rICBmdW5jMSA9IGFsbG9jYXRlZCh2bGEpCi0r ICB2bGEoNSw1KSA9IDU1ICAgICAgICAgICAgICAgISBmdW5jMS12bGEtcGFzc2VkCi0rICB2bGEo Nyw3KSA9IDc3Ci0rICByZXR1cm4gICAgICAgICAgICAgICAgICAgICAgISBmdW5jMS12bGEtbW9k aWZpZWQKLStlbmQgZnVuY3Rpb24gZnVuYzEKLSsKLStmdW5jdGlvbiBmdW5jMih2bGEpCi0rICBp bXBsaWNpdCBub25lCi0rICBpbnRlZ2VyIDo6IHZsYSAoOikKLSsgIGludGVnZXIgOjogZnVuYzIo c2l6ZSh2bGEpKQotKyAgaW50ZWdlciA6OiBrCi0rCi0rICB2bGEoMSkgPSAxICAgICAgICAgICAg ICAgICAgICAhIGZ1bmMyLXZsYS1wYXNzZWQKLSsgIHZsYSgyKSA9IDIKLSsgIHZsYSg0KSA9IDQK LSsgIHZsYSg4KSA9IDgKLSsKLSsgIGZ1bmMyID0gdmxhCi0rZW5kIGZ1bmN0aW9uIGZ1bmMyCi0r Ci0rcHJvZ3JhbSB2bGFfZnVuYwotKyAgaW1wbGljaXQgbm9uZQotKyAgaW50ZXJmYWNlCi0rICAg IGxvZ2ljYWwgZnVuY3Rpb24gZnVuYzEgKHZsYSkKLSsgICAgICBpbnRlZ2VyIDo6IHZsYSAoOiwg OikKLSsgICAgZW5kIGZ1bmN0aW9uCi0rICBlbmQgaW50ZXJmYWNlCi0rICBpbnRlcmZhY2UKLSsg ICAgZnVuY3Rpb24gZnVuYzIgKHZsYSkKLSsgICAgICBpbnRlZ2VyIDo6IHZsYSAoOikKLSsgICAg ICBpbnRlZ2VyIGZ1bmMyKHNpemUodmxhKSkKLSsgICAgZW5kIGZ1bmN0aW9uCi0rICBlbmQgaW50 ZXJmYWNlCi0rCi0rICBsb2dpY2FsIDo6IHJldAotKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjog dmxhMSAoOiwgOikKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IHZsYTIgKDopCi0rICBpbnRl Z2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEzICg6KQotKwotKyAgcmV0ID0gLkZBTFNFLgotKwotKyAg YWxsb2NhdGUgKHZsYTEgKDEwLDEwKSkKLSsgIHZsYTEoOiw6KSA9IDIyCi0rCi0rICBhbGxvY2F0 ZSAodmxhMiAoMTApKQotKyAgdmxhMig6KSA9IDQ0Ci0rCi0rICByZXQgPSBmdW5jMSh2bGExKQot KyAgdmxhMyA9IGZ1bmMyKHZsYTIpICAgICAgICAgICEgZnVuYzEtcmV0dXJuZWQKLSsKLSsgIHJl dCA9IC5UUlVFLiAgICAgICAgICAgICAgICAhIGZ1bmMyLXJldHVybmVkCi0rZW5kIHByb2dyYW0g dmxhX2Z1bmMKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3ZsYS1zdHJpZGUuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmV4cAkyMDE2LTAxLTA4IDE5OjE1OjQ0 Ljk4NDYzNzY4NiArMDEwMAotQEAgLTAsMCArMSw0NCBAQAotKyMgQ29weXJpZ2h0IDIwMTQgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCi0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKyMKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgotKwotK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgotKwotK2lmIHsgW3ByZXBhcmVfZm9y X3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAotKyAgICB7 ZGVidWcgZjkwIHF1aWV0fV0gfSB7Ci0rICAgIHJldHVybiAtMQotK30KLSsKLStpZiAhW3J1bnRv IE1BSU5fX10gdGhlbiB7Ci0rICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQg TUFJTl9fIgotKyAgICBjb250aW51ZQotK30KLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9s aW5lX251bWJlciAicmUtcmV2ZXJzZS1lbGVtZW50cyJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgInJlLXJldmVyc2UtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBc XFwoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBcXFwpIiBcCi0rICAicHJpbnQgcmUtcmV2 ZXJzZS1lbGVtZW50cyIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDEiICJwcmludCBm aXJzdCByZS1yZXZlcnNlLWVsZW1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoMTApIiAiID0g MTAiICJwcmludCBsYXN0IHJlLXJldmVyc2UtZWxlbWVudCIKLSsKLStnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAib2RkLWVsZW1lbnRzIl0KLStnZGJfY29udGludWVfdG9fYnJl YWtwb2ludCAib2RkLWVsZW1lbnRzIgotK2dkYl90ZXN0ICJwcmludCBwdmxhIiAiID0gXFxcKDEs IDMsIDUsIDcsIDlcXFwpIiAicHJpbnQgb2RkLWVsZW1lbnRzIgotK2dkYl90ZXN0ICJwcmludCBw dmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IG9kZC1lbGVtZW50IgotK2dkYl90ZXN0ICJwcmlu dCBwdmxhKDUpIiAiID0gOSIgInByaW50IGxhc3Qgb2RkLWVsZW1lbnQiCi0rCi0rZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInNpbmdsZS1lbGVtZW50Il0KLStnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAic2luZ2xlLWVsZW1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEi ICIgPSBcXFwoNVxcXCkiICJwcmludCBzaW5nbGUtZWxlbWVudCIKLStnZGJfdGVzdCAicHJpbnQg cHZsYSgxKSIgIiA9IDUiICJwcmludCBvbmUgc2luZ2xlLWVsZW1lbnQiCi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXN0cmlkZS5mOTAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAxMDAKLUBAIC0w LDAgKzEsMzAgQEAKLSshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz dHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyEgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSsh IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIQotKyEgVGhpcyBwcm9ncmFt IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rISBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5v dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSshIEZvdW5kYXRpb24sIEluYy4sIDU5IFRl bXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0rCi0r cHJvZ3JhbSB2bGFfc3RyaWRlCi0rICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9jYXRhYmxlIDo6IHZs YSAoOikKLSsgIGludGVnZXIsIHBvaW50ZXIgOjogcHZsYSAoOikKLSsKLSsgIGFsbG9jYXRlKHZs YSgxMCkpCi0rICB2bGEgPSAoLyAoSSwgSSA9IDEsMTApIC8pCi0rCi0rICBwdmxhID0+IHZsYSgx MDoxOi0xKQotKyAgcHZsYSA9PiBwdmxhKDEwOjE6LTEpCi0rICBwdmxhID0+IHZsYSgxOjEwOjIp ICAgISByZS1yZXZlcnNlLWVsZW1lbnRzCi0rICBwdmxhID0+IHZsYSg1OjQ6LTIpICAgISBvZGQt ZWxlbWVudHMKLSsKLSsgIHB2bGEgPT4gbnVsbCgpICAgICAgICAhIHNpbmdsZS1lbGVtZW50Ci0r ZW5kIHByb2dyYW0gdmxhX3N0cmlkZQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCi09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAJMjAx Ni0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAxMDAKLUBAIC0wLDAgKzEsMTAxIEBACi0rIyBD b3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rCi0r aWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtz cmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0r fQotKwotKyMgY2hlY2sgdGhhdCBhbGwgZm9ydHJhbiBzdGFuZGFyZCBkYXRhdHlwZXMgd2lsbCBi ZQotKyMgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiB1c2luZyBhcyBWTEEncwotKwotK2lmICFbcnVu dG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2lu dCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMSJdCi0rZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9jYXRlZC0xIgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hh ciIgXAotKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpXFwpICR7aGV4 fSIgXAotKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBmaXJzdCB0aW1lIgotK2dk Yl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJc XCoxMCBcXCkiIFwKLSsgICJ3aGF0aXMgdmFyX2NoYXIgZmlyc3QgdGltZSIKLStnZGJfdGVzdCAi cHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXCki IFwKLSsgICJwdHlwZSB2YXJfY2hhciBmaXJzdCB0aW1lIgotK2dkYl90ZXN0ICJuZXh0IiAiXFxk Ky4qdmFyX2NoYXIgPSAnZm9vJy4qIiBcCi0rICAibmV4dCB0byBhbGxvY2F0aW9uIHN0YXR1cyBv ZiB2YXJfY2hhciIKLStnZGJfdGVzdCAicHJpbnQgbCIgIiA9IC5UUlVFLiIgInByaW50IGFsbG9j YXRpb24gc3RhdHVzIGZpcnN0IHRpbWUiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgInZhcl9jaGFyLWZpbGxlZC0xIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAidmFyX2NoYXItZmlsbGVkLTEiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAi ID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxcKSAke2hleH0iIFwKLSsgICJw cmludCB2YXJfY2hhciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKLStnZGJfdGVzdCAicHJpbnQg KnZhcl9jaGFyIiAiID0gJ2ZvbyciIFwKLSsgICJwcmludCAqdmFyX2NoYXIgYWZ0ZXIgZmlsbGVk IGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8g LT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiBcCi0rICAid2hhdGlzIHZhcl9jaGFyIGFmdGVyIGZp bGxlZCBmaXJzdCB0aW1lIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIg VE8gLT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpIiBcCi0rICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIg ZmlsbGVkIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyKDEpIiAiID0gMTAy ICdmJyIgInByaW50IHZhcl9jaGFyKDEpIgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhcigzKSIg IiA9IDExMSAnbyciICJwcmludCB2YXJfY2hhcigzKSIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2Ri X2dldF9saW5lX251bWJlciAidmFyX2NoYXItZmlsbGVkLTIiXQotK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMiIKLStnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIi IFwKLSsgICIgPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpXFwpICR7aGV4fSIg XAotKyAgInByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBzZWNvbmQgdGltZSIKLStnZGJf dGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0gJ2Zvb2JhciciIFwKLSsgICJwcmludCAqdmFyX2No YXIgYWZ0ZXIgYWxsb2NhdGVkIHNlY29uZCB0aW1lIgotK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2No YXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKSIgXAotKyAgIndoYXRp cyB2YXJfY2hhciBzZWNvbmQgdGltZSIKLStnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBl ID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKSIgXAotKyAgInB0eXBlIHZhcl9jaGFy IHNlY29uZCB0aW1lIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2 YXJfY2hhci1lbXB0eSJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWVt cHR5IgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAotKyAgIiA9IFxcKFBUUiBUTyAtPiBc XCggY2hhcmFjdGVyXFwqMCBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQgdmFyX2NoYXIgYWZ0 ZXIgc2V0IGVtcHR5IgotK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICIgPSBcIlwiIiAicHJp bnQgKnZhcl9jaGFyIGFmdGVyIHNldCBlbXB0eSIKLStnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFy IiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXCkiIFwKLSsgICJ3aGF0aXMg dmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5IgotK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5 cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjAgXFwpIiBcCi0rICAicHR5cGUgdmFyX2No YXIgYWZ0ZXIgc2V0IGVtcHR5IgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJ2YXJfY2hhci1hbGxvY2F0ZWQtMyJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg InZhcl9jaGFyLWFsbG9jYXRlZC0zIgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAotKyAg IiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMjEgXFwpXFwpICR7aGV4fSIgXAotKyAg InByaW50IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCB0aGlyZCB0aW1lIgotK2dkYl90ZXN0ICJ3 aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXCki IFwKLSsgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRpbWUiCi0rZ2Ri X3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq MjEgXFwpIiBcCi0rICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRpbWUi Ci0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyX3AtYXNz b2NpYXRlZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyX3AtYXNzb2Np YXRlZCIKLStnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXJfcCIgXAotKyAgIiA9IFxcKFBUUiBUTyAt PiBcXCggY2hhcmFjdGVyXFwqNyBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQgdmFyX2NoYXJf cCBhZnRlciBhc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXJfcCIgIiA9ICdq b2huZG9lJyIgXAotKyAgInByaW50ICp2YXJfY2hhcl8gYWZ0ZXIgYXNzb2NpYXRlZCIKLStnZGJf dGVzdCAid2hhdGlzIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJc XCo3IFxcKSIgXAotKyAgIndoYXRpcyB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCi0rZ2Ri X3Rlc3QgInB0eXBlIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJc XCo3IFxcKSIgXAotKyAgInB0eXBlIHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJp bmdzLmY5MAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICsw MTAwCi1AQCAtMCwwICsxLDQwIEBACi0rISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyEgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSshIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu c2UsIG9yCi0rISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyEKLSshIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAotKyEgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKLSshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0rIQotKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSshIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rISBGb3VuZGF0aW9uLCBJ bmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg VVNBLgotKwotK3Byb2dyYW0gdmxhX3N0cmluZ3MKLSsgIGNoYXJhY3RlcihsZW49OiksIHRhcmdl dCwgYWxsb2NhdGFibGUgICA6OiB2YXJfY2hhcgotKyAgY2hhcmFjdGVyKGxlbj06KSwgcG9pbnRl ciAgICAgICAgICAgICAgIDo6IHZhcl9jaGFyX3AKLSsgIGxvZ2ljYWwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6OiBsCi0rCi0rICBhbGxvY2F0ZShjaGFyYWN0ZXIobGVuPTEwKSA6 OiB2YXJfY2hhcikKLSsgIGwgPSBhbGxvY2F0ZWQodmFyX2NoYXIpICAgICAgICAgICAgICAgICAh IHZhcl9jaGFyLWFsbG9jYXRlZC0xCi0rICB2YXJfY2hhciA9ICdmb28nCi0rICBkZWFsbG9jYXRl KHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1maWxsZWQtMQotKyAgbCA9 IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZGVhbGxvY2F0 ZWQKLSsgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49NDIpIDo6IHZhcl9jaGFyKQotKyAgbCA9IGFs bG9jYXRlZCh2YXJfY2hhcikKLSsgIHZhcl9jaGFyID0gJ2Zvb2JhcicKLSsgIHZhcl9jaGFyID0g JycgICAgICAgICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWZpbGxlZC0yCi0rICB2YXJf Y2hhciA9ICdiYXInICAgICAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1lbXB0eQotKyAg ZGVhbGxvY2F0ZSh2YXJfY2hhcikKLSsgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MjEpIDo6IHZh cl9jaGFyKQotKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFy X2NoYXItYWxsb2NhdGVkLTMKLSsgIHZhcl9jaGFyID0gJ2pvaG5kb2UnCi0rICB2YXJfY2hhcl9w ID0+IHZhcl9jaGFyCi0rICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAg ISB2YXJfY2hhcl9wLWFzc29jaWF0ZWQKLSsgIHZhcl9jaGFyX3AgPT4gbnVsbCgpCi0rICBsID0g YXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLW5vdC1hc3Nv Y2lhdGVkCi0rZW5kIHByb2dyYW0gdmxhX3N0cmluZ3MKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvdHlwZXByaW50LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEw Ni5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4NjU4MjQ3NiArMDEw MAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90eXBlcHJpbnQuYwkyMDE2LTAxLTA4IDE5 OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTQ2MCw2ICs0NjAsMTMgQEAKLSAKLSAgIHR5cGUg PSB2YWx1ZV90eXBlICh2YWwpOwotIAotKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9D T0RFX1BUUikKLSsgICAgaWYgKGlzX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSkpKQotKyAgICAgIHsKLSsJdmFsID0gdmFsdWVfYWRkciAodmFsdWVfaW5kICh2YWwpKTsKLSsJ dHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7Ci0rICAgICAgfQotKwotICAgZ2V0X3VzZXJfcHJpbnRf b3B0aW9ucyAoJm9wdHMpOwotICAgaWYgKG9wdHMub2JqZWN0cHJpbnQpCi0gICAgIHsKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFsYXJpdGguYwotPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNi0wMS0wOCAxOToxNToz NS4wODc1ODI0ODIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFsYXJpdGgu YwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NTYzNzY5MSArMDEwMAotQEAgLTE5Myw5ICsxOTMsMjEg QEAKLSAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSAoYXJyYXkpKTsKLSAgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZ UEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSAgIHVuc2lnbmVkIGludCBlbHRfc2l6ZSA9 IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0tICB1bnNpZ25lZCBpbnQgZWx0X29mZnMg PSBlbHRfc2l6ZSAqIGxvbmdlc3RfdG9faW50IChpbmRleCAtIGxvd2VyYm91bmQpOwotKyAgdW5z aWduZWQgaW50IGVsdF9vZmZzID0gbG9uZ2VzdF90b19pbnQgKGluZGV4IC0gbG93ZXJib3VuZCk7 Ci0rICBMT05HRVNUIGVsdF9zdHJpZGUgPSBUWVBFX0JZVEVfU1RSSURFIChUWVBFX0lOREVYX1RZ UEUgKGFycmF5X3R5cGUpKTsKLSAgIHN0cnVjdCB2YWx1ZSAqdjsKLSAKLSsgIGlmIChlbHRfc3Ry aWRlID4gMCkKLSsgICAgZWx0X29mZnMgKj0gZWx0X3N0cmlkZTsKLSsgIGVsc2UgaWYgKGVsdF9z dHJpZGUgPCAwKQotKyAgICB7Ci0rICAgICAgaW50IG9mZnMgPSAoZWx0X29mZnMgKyAxKSAqIGVs dF9zdHJpZGU7Ci0rCi0rICAgICAgZWx0X29mZnMgPSBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkg KyBvZmZzOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIGVsdF9vZmZzICo9IGVsdF9zaXplOwotKwot ICAgaWYgKGluZGV4IDwgbG93ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNf VU5ERUZJTkVEIChhcnJheV90eXBlKQotIAkJCSAgICAgJiYgZWx0X29mZnMgPj0gdHlwZV9sZW5n dGhfdW5pdHMgKGFycmF5X3R5cGUpKSkKLSAgICAgewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi92YWxwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvdmFscHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4ODU4MjQ4NyArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6 NDQuOTg2NjM3Njk3ICswMTAwCi1AQCAtMzE2LDYgKzMxNiwxOCBAQAotICAgICAgIHJldHVybiAw OwotICAgICB9Ci0gCi0rICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRFRCAodHlwZSkpCi0rICAgIHsK LSsgICAgICB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJu IDA7Ci0rICAgIH0KLSsKLSsgIGlmIChUWVBFX05PVF9BTExPQ0FURUQgKHR5cGUpKQotKyAgICB7 Ci0rICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJu IDA7Ci0rICAgIH0KLSsKLSAgIGlmIChUWVBFX0NPREUgKHR5cGUpICE9IFRZUEVfQ09ERV9VTklP TgotICAgICAgICYmIFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX1NUUlVDVAotICAgICAg ICYmIFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX0FSUkFZKQotQEAgLTEwMjUsMTIgKzEw MzcsMTYgQEAKLSB2YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQotIHsKLSsgIGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlOwotKwotICAg aWYgKHZhbCA9PSAwKQotICAgICB7Ci0gICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCBf KCI8YWRkcmVzcyBvZiB2YWx1ZSB1bmtub3duPiIpKTsKLSAgICAgICByZXR1cm4gMDsKLSAgICAg fQotIAotKyAgdHlwZSA9IHZhbHVlX3R5cGUgKHZhbCk7Ci0rCi0gICBpZiAodmFsdWVfZW50aXJl bHlfb3B0aW1pemVkX291dCAodmFsKSkKLSAgICAgewotICAgICAgIGlmIChvcHRpb25zLT5zdW1t YXJ5ICYmICF2YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAodmFsdWVfdHlwZSAodmFsKSkpCi1AQCAt MTA2Niw2ICsxMDgyLDE4IEBACi0gICAgIHsKLSAgICAgICB2YWxfcHJpbnRfbm90X2FsbG9jYXRl ZCAoc3RyZWFtKTsKLSAgICAgICByZXR1cm4gMDsKLSsgICAgfQotKwotKyAgaWYgKFRZUEVfTk9U X0FTU09DSUFURUQgKHR5cGUpKQotKyAgICB7Ci0rICAgICAgdmFsX3ByaW50X25vdF9hc3NvY2lh dGVkIChzdHJlYW0pOwotKyAgICAgIHJldHVybiAwOwotKyAgICB9Ci0rCi0rICBpZiAoVFlQRV9O T1RfQUxMT0NBVEVEICh0eXBlKSkKLSsgICAgewotKyAgICAgIHZhbF9wcmludF9ub3RfYWxsb2Nh dGVkIChzdHJlYW0pOwotKyAgICAgIHJldHVybiAwOwotICAgICB9Ci0gCi0gICByZXR1cm4gMTsK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFscHJpbnQuaAotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNi0wMS0wOCAx OToxNTozNS4wODg1ODI0ODcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdmFs cHJpbnQuaAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NjYzNzY5NyArMDEwMAotQEAgLTIzMiw0ICsy MzIsOCBAQAotIAkJCQkJc3RydWN0IGZvcm1hdF9kYXRhICpmbXRwKTsKLSBleHRlcm4gdm9pZCBw cmludF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwsIGNvbnN0IHN0cnVjdCBmb3JtYXRfZGF0YSAq Zm10cCk7Ci0gCi0rZXh0ZXJuIHZvaWQgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cnVjdCB1 aV9maWxlICpzdHJlYW0pOwotKwotK2V4dGVybiB2b2lkIHZhbF9wcmludF9ub3RfYXNzb2NpYXRl ZCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci0rCi0gI2VuZGlmCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3ZhbHVlLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2 MDEwNi5vcmlnL2dkYi92YWx1ZS5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDkwNTgyNDk5ICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZhbHVlLmMJMjAxNi0wMS0wOCAxOToxNTo0 NC45ODc2Mzc3MDIgKzAxMDAKLUBAIC00MCw2ICs0MCw3IEBACi0gI2luY2x1ZGUgInRyYWNlcG9p bnQuaCIKLSAjaW5jbHVkZSAiY3AtYWJpLmgiCi0gI2luY2x1ZGUgInVzZXItcmVncy5oIgotKyNp bmNsdWRlICJkd2FyZjJsb2MuaCIKLSAKLSAvKiBQcm90b3R5cGVzIGZvciBleHBvcnRlZCBmdW5j dGlvbnMuICAqLwotIAotQEAgLTE3ODgsNiArMTc4OSwyNSBAQAotICAgICAgIGlmIChmdW5jcy0+ Y29weV9jbG9zdXJlKQotICAgICAgICAgY29tcG9uZW50LT5sb2NhdGlvbi5jb21wdXRlZC5jbG9z dXJlID0gZnVuY3MtPmNvcHlfY2xvc3VyZSAod2hvbGUpOwotICAgICB9Ci0rCi0rICAvKiBGb3Ig ZHluYW1pYyB0eXBlcyBjb21wdXRlIHRoZSBhZGRyZXNzIG9mIHRoZSBjb21wb25lbnQgdmFsdWUg bG9jYXRpb24gaW4KLSsgICAgIHN1YiByYW5nZSB0eXBlcyBiYXNlZCBvbiB0aGUgbG9jYXRpb24g b2YgdGhlIHN1YiByYW5nZSB0eXBlLCBpZiBub3QgYmVpbmcKLSsgICAgIGFuIGludGVybmFsIEdE QiB2YXJpYWJsZSBvciBwYXJ0cyBvZiBpdC4gICovCi0rICBpZiAoVkFMVUVfTFZBTCAoY29tcG9u ZW50KSAhPSBsdmFsX2ludGVybmFsdmFyCi0rICAgICAgJiYgVkFMVUVfTFZBTCAoY29tcG9uZW50 KSAhPSBsdmFsX2ludGVybmFsdmFyX2NvbXBvbmVudCkKLSsgICAgewotKyAgICAgIENPUkVfQURE UiBhZGRyOwotKyAgICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAod2hvbGUpOwot KwotKyAgICAgIGFkZHIgPSB2YWx1ZV9yYXdfYWRkcmVzcyAoY29tcG9uZW50KTsKLSsKLSsgICAg ICBpZiAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQotKyAgICAgICAgICAmJiBUWVBFX0RBVEFf TE9DQVRJT05fS0lORCAodHlwZSkgPT0gUFJPUF9DT05TVCkKLSsgICAgICAgIHsKLSsgICAgICAg ICAgYWRkciA9IFRZUEVfREFUQV9MT0NBVElPTl9BRERSICh0eXBlKTsKLSsgICAgICAgICAgc2V0 X3ZhbHVlX2FkZHJlc3MgKGNvbXBvbmVudCwgYWRkcik7Ci0rICAgICAgICB9Ci0rICAgIH0KLSB9 Ci0gCi0gDAotQEAgLTMwOTUsMTMgKzMxMTUsMjIgQEAKLSAJdiA9IGFsbG9jYXRlX3ZhbHVlX2xh enkgKHR5cGUpOwotICAgICAgIGVsc2UKLSAJewotLQkgIHYgPSBhbGxvY2F0ZV92YWx1ZSAodHlw ZSk7Ci0tCSAgdmFsdWVfY29udGVudHNfY29weV9yYXcgKHYsIHZhbHVlX2VtYmVkZGVkX29mZnNl dCAodiksCi0tCQkJCSAgIGFyZzEsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkgKyBvZmZz ZXQsCi0tCQkJCSAgIHR5cGVfbGVuZ3RoX3VuaXRzICh0eXBlKSk7Ci0rCSAgaWYgKFRZUEVfREFU QV9MT0NBVElPTiAodHlwZSkKLSsJICAgICAgJiYgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5 cGUpID09IFBST1BfQ09OU1QpCi0rCSAgICB2ID0gdmFsdWVfYXRfbGF6eSAodHlwZSwgdmFsdWVf YWRkcmVzcyAoYXJnMSkgKyBvZmZzZXQpOwotKwkgIGVsc2UKLSsJICAgIHsKLSsJICAgICAgdiA9 IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKLSsJICAgICAgdmFsdWVfY29udGVudHNfY29weV9yYXcg KHYsIHZhbHVlX2VtYmVkZGVkX29mZnNldCAodiksCi0rCQkJCSAgICAgICBhcmcxLCB2YWx1ZV9l bWJlZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0LAotKwkJCQkgICAgICAgdHlwZV9sZW5ndGhf dW5pdHMgKHR5cGUpKTsKLSsJICAgIH0KLSAJfQotLSAgICAgIHYtPm9mZnNldCA9ICh2YWx1ZV9v ZmZzZXQgKGFyZzEpICsgb2Zmc2V0Ci0tCQkgICArIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJn MSkpOwotKwotKyAgICAgIGlmICghVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKQotKyAgICAgICAg ICB8fCAhVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfQ09OU1QpCi0rCXYt Pm9mZnNldCA9ICh2YWx1ZV9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0Ci0rCQkgICAgICsgdmFsdWVf ZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSk7Ci0gICAgIH0KLSAgIHNldF92YWx1ZV9jb21wb25lbnRf bG9jYXRpb24gKHYsIGFyZzEpOwotICAgVkFMVUVfUkVHTlVNICh2KSA9IFZBTFVFX1JFR05VTSAo YXJnMSk7Ci1AQCAtMzY4OSw3ICszNzE4LDggQEAKLSAJCQkgICAgICBzdHJ1Y3QgdmFsdWUgKm9y aWdpbmFsX3ZhbHVlKQotIHsKLSAgIC8qIFJlLWFkanVzdCB0eXBlLiAgKi8KLS0gIGRlcHJlY2F0 ZWRfc2V0X3ZhbHVlX3R5cGUgKHZhbHVlLCBUWVBFX1RBUkdFVF9UWVBFIChvcmlnaW5hbF90eXBl KSk7Ci0rICBpZiAoIWlzX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAob3JpZ2luYWxf dHlwZSkpKQotKyAgICBkZXByZWNhdGVkX3NldF92YWx1ZV90eXBlICh2YWx1ZSwgVFlQRV9UQVJH RVRfVFlQRSAob3JpZ2luYWxfdHlwZSkpOwotIAotICAgLyogQWRkIGVtYmVkZGluZyBpbmZvLiAg Ki8KLSAgIHNldF92YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsdWUsIGVuY190eXBlKTsKLUBAIC0z NzA2LDYgKzM3MzYsMTIgQEAKLSAgIHN0cnVjdCB2YWx1ZSAqcmV0dmFsOwotICAgc3RydWN0IHR5 cGUgKmVuY190eXBlOwotIAotKyAgaWYgKGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlICE9 IGxhbmd1YWdlX2ZvcnRyYW4KLSsgICAgICAmJiBUWVBFX0RBVEFfTE9DQVRJT04gKHZhbHVlX3R5 cGVfYXJnX3RtcCkgIT0gTlVMTAotKyAgICAgICYmIFRZUEVfREFUQV9MT0NBVElPTl9LSU5EICh2 YWx1ZV90eXBlX2FyZ190bXApID09IFBST1BfQ09OU1QpCi0rICAgIGFyZyA9IHZhbHVlX2F0X2xh enkgKHZhbHVlX3R5cGVfYXJnX3RtcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgVFlQRV9E QVRBX0xPQ0FUSU9OX0FERFIgKHZhbHVlX3R5cGVfYXJnX3RtcCkpOwotKwotICAgcmV0dmFsID0g Y29lcmNlX3JlZl9pZl9jb21wdXRlZCAoYXJnKTsKLSAgIGlmIChyZXR2YWwpCi0gICAgIHJldHVy biByZXR2YWw7Ci1AQCAtMzgzNCw4ICszODcwLDE0IEBACi0gICAgIH0KLSAgIGVsc2UgaWYgKFZB TFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCi0gICAgIHsKLS0gICAgICBDT1JFX0FERFIg YWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7Ci0gICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBj aGVja190eXBlZGVmICh2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodmFsKSk7Ci0rICAgICAgQ09SRV9B RERSIGFkZHI7Ci0rCi0rICAgICAgaWYgKFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkgIT0gTlVM TAotKwkgICYmIFRZUEVfREFUQV9MT0NBVElPTl9LSU5EICh0eXBlKSA9PSBQUk9QX0NPTlNUKQot KwlhZGRyID0gVFlQRV9EQVRBX0xPQ0FUSU9OX0FERFIgKHR5cGUpOwotKyAgICAgIGVsc2UKLSsJ YWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7Ci0gCi0gICAgICAgaWYgKFRZUEVfTEVOR1RIICh0 eXBlKSkKLSAJcmVhZF92YWx1ZV9tZW1vcnkgKHZhbCwgMCwgdmFsdWVfc3RhY2sgKHZhbCksCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2R3YXJmMmxvYy5jCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAxNi0wMS0wOCAx OToxNTozNS4wOTE1ODI1MDQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdh cmYybG9jLmMJMjAxNi0wMS0wOCAxOToxNTo0NC45ODg2Mzc3MDggKzAxMDAKLUBAIC0yMzY4LDYg KzIzNjgsMTEgQEAKLSAJICAgIGFkZHJlc3MgPSB2YWx1ZV9hc19hZGRyZXNzICh2YWx1ZV9mcm9t X3BvaW50ZXIgKHB0cl90eXBlLCBhZGRyZXNzKSk7Ci0gCi0gCSAgICBkb19jbGVhbnVwcyAodmFs dWVfY2hhaW4pOwotKwotKwkgICAgLyogU2VsZWN0IHJpZ2h0IGZyYW1lIHRvIGNvcnJlY3RseSBl dmFsdWF0ZSBWTEEncyBkdXJpbmcgYSBiYWNrdHJhY2UuICAqLwotKwkgICAgaWYgKGlzX2R5bmFt aWNfdHlwZSAodHlwZSkpCi0rCSAgICAgIHNlbGVjdF9mcmFtZSAoZnJhbWUpOwotKwotIAkgICAg cmV0dmFsID0gdmFsdWVfYXRfbGF6eSAodHlwZSwgYWRkcmVzcyArIGJ5dGVfb2Zmc2V0KTsKLSAJ ICAgIGlmIChpbl9zdGFja19tZW1vcnkpCi0gCSAgICAgIHNldF92YWx1ZV9zdGFjayAocmV0dmFs LCAxKTsKLUBAIC0yNjYwLDYgKzI2NjUsMTkgQEAKLSAJCQkgICAgIGRhdGEsIGRhdGEgKyBzaXpl LCBwZXJfY3UpOwotIH0KLSAKLSsvKiBTZWUgZHdhcmYybG9jLmguICAqLwotKwotK2ludAotK2R3 YXJmMl9hZGRyZXNzX2RhdGFfdmFsaWQgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQotK3sKLSsg IGlmIChUWVBFX05PVF9BU1NPQ0lBVEVEICh0eXBlKSkKLSsgICAgcmV0dXJuIDA7Ci0rCi0rICBp ZiAoVFlQRV9OT1RfQUxMT0NBVEVEICh0eXBlKSkKLSsgICAgcmV0dXJuIDA7Ci0rCi0rICByZXR1 cm4gMTsKLSt9Ci0gDAotIC8qIEhlbHBlciBmdW5jdGlvbnMgYW5kIGJhdG9uIGZvciBkd2FyZjJf bG9jX2Rlc2NfbmVlZHNfZnJhbWUuICAqLwotIAoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2Ri LnNwZWMKaW5kZXggMWRjZmMyMi4uNGNjMWZjZiAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIv Z2RiLnNwZWMKQEAgLTE5LDE1ICsxOSwxNSBAQCBTdW1tYXJ5OiBBIEdOVSBzb3VyY2UtbGV2ZWwg ZGVidWdnZXIgZm9yIEMsIEMrKywgRm9ydHJhbiwgR28gYW5kIG90aGVyIGxhbmd1YWdlcwogTmFt ZTogJXs/c2NsX3ByZWZpeH1nZGIKIAogIyBGcmVlemUgaXQgd2hlbiBHREIgZ2V0cyBicmFuY2hl ZAotJWdsb2JhbCBzbmFwc3JjICAgIDIwMTYwMjEwCislZ2xvYmFsIHNuYXBzcmMgICAgMjAxNjA3 MTYKICMgU2VlIHRpbWVzdGFtcCBvZiBzb3VyY2UgZ251bGliIGluc3RhbGxlZCBpbnRvIGdkYi9n bnVsaWIvIC4KICVnbG9iYWwgc25hcGdudWxpYiAyMDE1MDgyMgogJWdsb2JhbCB0YXJuYW1lIGdk Yi0le3ZlcnNpb259Ci1WZXJzaW9uOiA3LjExLjEKK1ZlcnNpb246IDcuMTEuNTAuJXtzbmFwc3Jj fQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVt YmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUn IHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGlu Zy4KLVJlbGVhc2U6IDc2JXs/ZGlzdH0KK1JlbGVhc2U6IDElez9kaXN0fQogCiBMaWNlbnNlOiBH UEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdp dGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9t YWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC01MTksMTIgKzUx OSwxNiBAQCBQYXRjaDEwNjA6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCiBQ YXRjaDEwNjE6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC00b2Y2LnBhdGNoCiBQYXRjaDEwNjI6 IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCiBQYXRjaDEwNjM6IGdkYi1mb3J0 cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNoCi1QYXRjaDg4ODogZ2RiLXZsYS1pbnRlbC5wYXRj aAotUGF0Y2g5ODM6IGdkYi12bGEtaW50ZWwtbG9naWNhbC1ub3QucGF0Y2gKK1BhdGNoMTEzMjog Z2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoCitQYXRjaDExMzM6IGdkYi12bGEtaW50ZWwtMm9mNy5w YXRjaAorUGF0Y2gxMTM0OiBnZGItdmxhLWludGVsLTNvZjcucGF0Y2gKK1BhdGNoMTEzNTogZ2Ri LXZsYS1pbnRlbC00b2Y3LnBhdGNoCitQYXRjaDExMzY6IGdkYi12bGEtaW50ZWwtNW9mNy5wYXRj aAorUGF0Y2gxMTM3OiBnZGItdmxhLWludGVsLTZvZjcucGF0Y2gKK1BhdGNoMTEzODogZ2RiLXZs YS1pbnRlbC03b2Y3LnBhdGNoCiBQYXRjaDg4OTogZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgu cGF0Y2gKLVBhdGNoOTEyOiBnZGItdmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2gKIFBhdGNoODg3 OiBnZGItYXJjaGVyLXZsYS10ZXN0cy5wYXRjaAotUGF0Y2gxMDY5OiBnZGItZm9ydHJhbi1zdHJp ZGUtaW50ZWwtNm9mNi1ub2tmYWlsLnBhdGNoCitQYXRjaDg4ODogZ2RiLXZsYS1pbnRlbC10ZXN0 cy5wYXRjaAogCiAjIENvbnRpbnVlIGJhY2t0cmFjZSBldmVuIGlmIGEgZnJhbWUgZmlsdGVyIHRo cm93cyBhbiBleGNlcHRpb24gKFBoaWwgTXVsZG9vbikuCiBQYXRjaDkxODogZ2RiLWJ0cm9idXN0 LnBhdGNoCkBAIC01NzAsOSArNTc0LDExIEBAIFBhdGNoMTEyMDogZ2RiLXRlc3RzdWl0ZS1kdzIt dW5kZWZpbmVkLXJldC1hZGRyLnBhdGNoCiAjIE5ldyB0ZXN0IGZvciBQeXRob24gIkNhbm5vdCBs b2NhdGUgb2JqZWN0IGZpbGUgZm9yIGJsb2NrIiAoZm9yIFJIIEJaIDEzMjU3OTUpLgogUGF0Y2gx MTIzOiBnZGItcmhiejEzMjU3OTUtZnJhbWVmaWx0ZXJzLXRlc3QucGF0Y2gKIAotIyBJbXBvcnQg YmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jayAoUkggQlogMTMyNTM5NikuCi1QYXRjaDExMjg6IGdk Yi1iYXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2gKLVBhdGNoMTEyOTogZ2RiLWJh cmUtRFdfVEFHX2xleGljYWxfYmxvY2stMm9mMi5wYXRjaAorIyBbdGVzdHN1aXRlXSBGaXggZ2Ri LmdkYi9zZWxmdGVzdC5leHAgZm9yIEMrKy1PMi1nLWJ1aWx0IEdEQi4KK1BhdGNoMTEzOTogZ2Ri LXRlc3RzdWl0ZS1zZWxmdGVzdC1jeHgucGF0Y2gKKworIyBbdGVzdHN1aXRlXSBTa2lwIHB5LXVu d2luZC5leHAgb24geDg2XzY0IC1tMzIuCitQYXRjaDExNDA6IGdkYi10ZXN0c3VpdGUtcHktdW53 aW5kLW0zMi5wYXRjaAogCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKICMgUkxf U1RBVEVfRkVET1JBX0dEQiB3b3VsZCBub3QgYmUgZm91bmQgZm9yOgpAQCAtNzcxLDEwICs3Nzcs MTQgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDEwNjEgLXAxCiAl cGF0Y2gxMDYyIC1wMQogJXBhdGNoMTA2MyAtcDEKLSVwYXRjaDg4OCAtcDEKLSVwYXRjaDk4MyAt cDEKKyVwYXRjaDExMzIgLXAxCislcGF0Y2gxMTMzIC1wMQorJXBhdGNoMTEzNCAtcDEKKyVwYXRj aDExMzUgLXAxCislcGF0Y2gxMTM2IC1wMQorJXBhdGNoMTEzNyAtcDEKKyVwYXRjaDExMzggLXAx CiAlcGF0Y2g4ODkgLXAxCi0lcGF0Y2g5MTIgLXAxCiAlcGF0Y2gxIC1wMQogCiAlcGF0Y2gxMDUg LXAxCkBAIC04NjgsNyArODc4LDcgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYK ICVwYXRjaDg1MiAtcDEKICVwYXRjaDg2MyAtcDEKICVwYXRjaDg4NyAtcDEKLSVwYXRjaDEwNjkg LXAxCislcGF0Y2g4ODggLXAxCiAlcGF0Y2g5MTggLXAxCiAlcGF0Y2g5MjUgLXAxCiAlcGF0Y2g5 MjcgLXAxCkBAIC04ODYsOCArODk2LDggQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0g LWYKICVwYXRjaDExMTggLXAxCiAlcGF0Y2gxMTIwIC1wMQogJXBhdGNoMTEyMyAtcDEKLSVwYXRj aDExMjggLXAxCi0lcGF0Y2gxMTI5IC1wMQorJXBhdGNoMTEzOSAtcDEKKyVwYXRjaDExNDAgLXAx CiAKICVwYXRjaDEwNzUgLXAxCiAlaWYgMCV7P3JoZWw6MX0gJiYgMCV7P3JoZWx9IDw9IDcKQEAg LTk2NSw2ICs5NzUsOCBAQCBDRkxBR1M9IiRDRkxBR1MgLURORUVEX1JMX1NUQVRFX0ZFRE9SQV9H REIiCiBDRkxBR1M9IiRDRkxBR1MgLURORUVEX0RFVEFDSF9TSUdTVE9QIgogJWVuZGlmCiAKK2V4 cG9ydCBDWFhGTEFHUz0iJENGTEFHUyIKKwogIyAtLWh0bWxkaXIgYW5kIC0tcGRmZGlyIGFyZSBu b3QgdXNlZCBhcyB0aGV5IGFyZSB1c2VkIGZyb20gJXtnZGJfYnVpbGR9LgogLi4vY29uZmlndXJl CQkJCQkJCVwKIAktLXByZWZpeD0le19wcmVmaXh9CQkJCQlcCkBAIC05NzUsNiArOTg3LDcgQEAg Q0ZMQUdTPSIkQ0ZMQUdTIC1ETkVFRF9ERVRBQ0hfU0lHU1RPUCIKIAktLXdpdGgtc3lzdGVtLWdk YmluaXQ9JXtfc3lzY29uZmRpcn0vZ2RiaW5pdAkJXAogCS0td2l0aC1nZGItZGF0YWRpcj0le19k YXRhZGlyfS9nZGIJCQlcCiAJLS1lbmFibGUtZ2RiLWJ1aWxkLXdhcm5pbmdzPSwtV25vLXVudXNl ZAkJXAorCS0tZW5hYmxlLWJ1aWxkLXdpdGgtY3h4CQkJCQlcCiAlaWZuYXJjaCAle2l4ODZ9IGFs cGhhIHBwYyBzMzkwIHMzOTB4IHg4Nl82NCBwcGM2NCBwcGM2NGxlIHNwYXJjIHNwYXJjdjkgc3Bh cmM2NCAle2FybX0gYWFyY2g2NAogCS0tZGlzYWJsZS13ZXJyb3IJCQkJCVwKICVlbHNlCkBAIC0x NDA3LDYgKzE0MjAsOSBAQCB0aGVuCiBmaQogCiAlY2hhbmdlbG9nCisqIFN1biBKdWwgMTcgMjAx NiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjExLjUwLjIw MTYwNzE2LTEuZmMyNQorLSBSZWJhc2UgdG8gRlNGIEdEQiA3LjExLjUwLjIwMTYwNzE2IChwcmUt Ny4xMiB0cnVuayBzbmFwc2hvdCkuCisKICogTW9uIEp1biAyNyAyMDE2IEphbiBLcmF0b2Nodmls IDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuMS03Ni5mYzI0CiAtIFRlc3QgJ2lu Zm8gdHlwZS1wcmludGVycycgUHl0aG9uIGVycm9yIChSSCBCWiAxMzUwNDM2KS4KIAoKZGlmZiAt LWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDI2NDc4ZWIuLjkxNjFlMDYgMTAwNjQ0Ci0t LSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKIDdhZDMyZDM4OTRhYWY5 MGQwMGE0MzQzYTczNWMzZTFjICBnZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMjI1NTIxLnRhci54 egotNWFhNzE1MjJlNDg4ZTM1ODI0MzkxNzk2N2RiODc0NzYgIGdkYi03LjExLjEudGFyLnh6Cis5 YmNlOTNhNTY3ZGIwZTcxMmFkYWU1MWMzNTE3MGQwNiAgZ2RiLTcuMTEuNTAuMjAxNjA3MTYudGFy Lnh6Cg==