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: Merge commit '3f32311b4a6fe79de1a3da7bca5c08613eb3734e' Date: Thu, 23 Jul 2026 18:32:28 GMT Message-ID: <178483154863.1.15537404740673192586.rpms-gdb-a5a9adcd40e3@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: a5a9adcd40e34226d3129c5177f8fe8292d704f6 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogYTVhOWFkY2Q0MGUzNDIyNmQzMTI5YzUxNzdmOGZlODI5 MmQ3MDRmNgpBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxNi0wOC0yM1QyMDo1NDoxNSswMjowMApTdGF0cyAgOiArNDEwOS8tNDg2 NyBpbiA0MSBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvZ2RiL2MvYTVhOWFkY2Q0MGUzNDIyNmQzMTI5YzUxNzdmOGZlODI5MmQ3MDRmNj9icmFuY2g9 Zml4LWR1cC1wYXRjaAoKTG9nOgpNZXJnZSBjb21taXQgJzNmMzIzMTFiNGE2ZmU3OWRlMWEzZGE3 YmNhNWMwODYxM2ViMzczNGUnCgotLS0KZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdu b3JlCmluZGV4IGRiYjE1Y2IuLjJjNDYwMGYgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIv LmdpdGlnbm9yZQpAQCAtMSwyICsxLDIgQEAKIC9nZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMjI1 NTIxLnRhci54egotL2dkYi03LjExLjEudGFyLnh6CisvZ2RiLTcuMTEuOTAuMjAxNjA4MDcudGFy Lnh6CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1ycG0ucGF0Y2ggYi9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAppbmRleCA1ZWZjYzVhLi41NmNlN2RiIDEwMDY0 NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXJwbS5wYXRjaAorKysgYi9nZGItNi42LWJ1 aWxkaWQtbG9jYXRlLXJwbS5wYXRjaApAQCAtMSwyNSArMSwxNiBAQAotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9ldmVudC10b3AuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9ldmVudC10b3AuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9y aWcvZ2RiL2V2ZW50LXRvcC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2V2ZW50LXRv cC5jCi1AQCAtMzcsNiArMzcsNyBAQAotICNpbmNsdWRlICJnZGJjbWQuaCIJCS8qIGZvciBkb250 X3JlcGVhdCgpICovCi0gI2luY2x1ZGUgImFubm90YXRlLmgiCi0gI2luY2x1ZGUgIm1haW50Lmgi CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZXZlbnQtdG9wLmMJMjAxNi0wNy0w MiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIv ZXZlbnQtdG9wLmMJMjAxNi0wNy0wMyAxNDozNzoxMi41NzIxMzA3MzQgKzAyMDAKK0BAIC00MCw2 ICs0MCw3IEBACisgI2luY2x1ZGUgImJ1ZmZlci5oIgorICNpbmNsdWRlICJzZXItZXZlbnQuaCIK KyAjaW5jbHVkZSAiZ2RiX3NlbGVjdC5oIgogKyNpbmNsdWRlICJzeW1maWxlLmgiCiAgCiAgLyog cmVhZGxpbmUgaW5jbHVkZSBmaWxlcy4gICovCiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5l LmgiCi1AQCAtMTgwLDYgKzE4MSw4IEBAIHJsX2NhbGxiYWNrX3JlYWRfY2hhcl93cmFwcGVyIChn ZGJfY2xpZW4KLSB2b2lkCi0gY2xpX2NvbW1hbmRfbG9vcCAodm9pZCAqZGF0YSkKLSB7Ci0rICBk ZWJ1Z19mbHVzaF9taXNzaW5nICgpOwotKwotICAgZGlzcGxheV9nZGJfcHJvbXB0ICgwKTsKLSAK LSAgIC8qIE5vdyBpdCdzIHRpbWUgdG8gc3RhcnQgdGhlIGV2ZW50IGxvb3AuICAqLwotQEAgLTI5 OCw2ICszMDEsOCBAQCBkaXNwbGF5X2dkYl9wcm9tcHQgKGNvbnN0IGNoYXIgKm5ld19wcm9tCitA QCAtMzQ3LDYgKzM0OCw4IEBACiAgICAvKiBSZXNldCB0aGUgbmVzdGluZyBkZXB0aCB1c2VkIHdo ZW4gdHJhY2UtY29tbWFuZHMgaXMgc2V0LiAgKi8KICAgIHJlc2V0X2NvbW1hbmRfbmVzdF9kZXB0 aCAoKTsKICAKQEAgLTI4LDExICsxOSwyMyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2V2ZW50LXRvcC5jCiAgICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFudXAgKGZyZWVfY3VycmVu dF9jb250ZW50cywgJmFjdHVhbF9nZGJfcHJvbXB0KTsKICAKICAgIC8qIERvIG5vdCBjYWxsIHRo ZSBweXRob24gaG9vayBvbiBhbiBleHBsaWNpdCBwcm9tcHQgY2hhbmdlIGFzCi1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3N5bWZpbGUuaAorQEAgLTc5NCw3ICs3OTcsMTAgQEAKKyAg ICAgICBjb21tYW5kX2hhbmRsZXIgKGNtZCk7CisgCisgICAgICAgaWYgKHVpLT5wcm9tcHRfc3Rh dGUgIT0gUFJPTVBURUQpCistCWRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7CisrCXsKKysJICBkZWJ1 Z19mbHVzaF9taXNzaW5nICgpOworKwkgIGRpc3BsYXlfZ2RiX3Byb21wdCAoMCk7CisrCX0KKyAg ICAgfQorIH0KKyAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc3ltZmlsZS5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3ltZmlsZS5oCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3N5bWZpbGUuaAotQEAgLTU4Nyw2ICs1ODcsOCBA QCB2b2lkIG1hcF9zeW1ib2xfZmlsZW5hbWVzIChzeW1ib2xfZmlsZW5hCistLS0gZ2RiLTcuMTEu NTAuMjAxNjA2MzAub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDMyNzUz NjY4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3 LTAzIDE0OjM3OjEyLjU3MzEzMDc0MiArMDIwMAorQEAgLTU5Miw2ICs1OTIsOCBAQAogIC8qIGJ1 aWxkLWlkIHN1cHBvcnQuICAqLwogIGV4dGVybiBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpidWlsZF9p ZF9hZGRyX2dldCAoQ09SRV9BRERSIGFkZHIpOwogIGV4dGVybiB2b2lkIGRlYnVnX3ByaW50X21p c3NpbmcgKGNvbnN0IGNoYXIgKmJpbmFyeSwgY29uc3QgY2hhciAqZGVidWcpOwpAQCAtNDEsNDgg KzQ0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3ltZmlsZS5oCiAgCiAg LyogRnJvbSBkd2FyZjJyZWFkLmMgKi8KICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NjAxMDYub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAotQEAgLTE2NDIsNyArMTY0Miw3IEBAIHBy b2MgZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKLSAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0 aGUgd2lkdGggdG8gMC4iCi0gCX0KLSAgICAgfQotLSAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5n IHdhcm5pbmdzIGFzIHRoZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhwZWN0IGl0LgotKyAgICAjIFR1 cm4gb2ZmIHRoZSBtaXNzaW5nIFJQTXMgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5v dCBleHBlY3QgaXQuCi0gICAgIHNlbmRfZ2RiICJzZXQgYnVpbGQtaWQtdmVyYm9zZSAwXG4iCi0g ICAgIGdkYl9leHBlY3QgMTAgewotIAktcmUgIiRnZGJfcHJvbXB0ICQiIHsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWkt c3VwcG9ydC5leHAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2xpYi9t aS1zdXBwb3J0LmV4cAotQEAgLTIwNCw3ICsyMDQsNyBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0 YXJ0IHsgYXJncyB9IHsKLSAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8g MC4iCi0gCX0KLSAgICAgfQotLSAgICAjIFR1cm4gb2ZmIHRoZSBtaXNzaW5nIHdhcm5pbmdzIGFz IHRoZSB0ZXN0c3VpdGUgZG9lcyBub3QgZXhwZWN0IGl0LgotKyAgICAjIFR1cm4gb2ZmIHRoZSBt aXNzaW5nIFJQTXMgd2FybmluZ3MgYXMgdGhlIHRlc3RzdWl0ZSBkb2VzIG5vdCBleHBlY3QgaXQu Ci0gICAgIHNlbmRfZ2RiICIxOTAtZ2RiLXNldCBidWlsZC1pZC12ZXJib3NlIDBcbiIKLSAgICAg Z2RiX2V4cGVjdCAxMCB7Ci0gCS1yZSAiLioxOTAtZ2RiLXNldCBidWlsZC1pZC12ZXJib3NlIDBc clxuMTkwXFxcXmRvbmVcclxuJG1pX2dkYl9wcm9tcHQkIiB7Ci1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3R1aS90dWktaW50ZXJwLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE2MDEwNi5vcmlnL2dkYi90dWkvdHVpLWludGVycC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3R1aS90dWktaW50ZXJwLmMKLUBAIC0zMSw2ICszMSw3IEBACi0gI2luY2x1ZGUg InR1aS90dWktaW8uaCIKLSAjaW5jbHVkZSAiaW5mcnVuLmgiCi0gI2luY2x1ZGUgIm9ic2VydmVy LmgiCi0rI2luY2x1ZGUgInN5bWZpbGUuaCIKLSAKLSBzdGF0aWMgc3RydWN0IHVpX291dCAqdHVp X3VpX291dCAoc3RydWN0IGludGVycCAqc2VsZik7Ci0gCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2FjbG9jYWwubTQKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYWNs b2NhbC5tNAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2Fj bG9jYWwubTQKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYWNsb2NhbC5tNAorLS0tIGdk Yi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2FjbG9jYWwubTQJMjAxNi0wNy0wMiAyMzo0Mzoy NC4wODUyMTQxNDQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYWNsb2NhbC5t NAkyMDE2LTA3LTAzIDE0OjM3OjEyLjU3NjEzMDc2OCArMDIwMAogQEAgLTExLDYgKzExLDIyMSBA QAogICMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQQogICMgUEFSVElDVUxBUiBQVVJQT1NFLgpAQCAtMzA1LDEwICsyNzAsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hY2xvY2FsLm00CiAgIyBBTV9BVVhfRElS X0VYUEFORCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9j b25mIC0qLQogIAogICMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29u ZmlnLmluCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvbmZpZy5pbgogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZy5pbgotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWcuaW4KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYz MC5vcmlnL2dkYi9jb25maWcuaW4JMjAxNi0wNy0wMiAyMzo0MzoyNC4wODUyMTQxNDQgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlnLmluCTIwMTYtMDctMDMgMTQ6Mzc6 MTIuNTc2MTMwNzY4ICswMjAwCiBAQCAtMzMsNiArMzMsOSBAQAogIC8qIERlZmluZSB0byBCRkQn cyBkZWZhdWx0IHRhcmdldCB2ZWN0b3IuICovCiAgI3VuZGVmIERFRkFVTFRfQkZEX1ZFQwpAQCAt MzE5LDcgKzI4NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlnLmlu CiAgLyogRGVmaW5lIHRvIDEgaWYgdHJhbnNsYXRpb24gb2YgcHJvZ3JhbSBtZXNzYWdlcyB0byB0 aGUgdXNlcidzIG5hdGl2ZQogICAgIGxhbmd1YWdlIGlzIHJlcXVlc3RlZC4gKi8KICAjdW5kZWYg RU5BQkxFX05MUwotQEAgLTI1OCw2ICsyNjEsOSBAQAorQEAgLTI2MSw2ICsyNjQsOSBAQAogIC8q IERlZmluZSBpZiBQeXRob24gMi43IGlzIGJlaW5nIHVzZWQuICovCiAgI3VuZGVmIEhBVkVfTElC UFlUSE9OMl83CiAgCkBAIC0zMjksMTEgKzI5NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGli dW53aW5kLWlhNjQuaD4gaGVhZGVyIGZpbGUuICovCiAgI3VuZGVmIEhBVkVfTElCVU5XSU5EX0lB NjRfSAogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY29uZmlndXJlCi0rKysgZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL2NvbmZpZ3VyZQotQEAgLTcwNSw2ICs3MDUsMTEgQEAgUEtHVkVSU0lPTgorLS0t IGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA3LTAyIDIzOjQz OjI0LjA4NTIxNDE0NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25maWd1 cmUJMjAxNi0wNy0wMyAxNDozNzoxMi41ODExMzA4MTEgKzAyMDAKK0BAIC03MDUsNiArNzA1LDEx IEBACiAgSEFWRV9OQVRJVkVfR0NPUkVfVEFSR0VUCiAgVEFSR0VUX09CUwogIHN1YmRpcnMKQEAg LTM0NSw3ICszMTAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3Vy ZQogIEdEQl9EQVRBRElSCiAgREVCVUdESVIKICBNQUtFSU5GT19FWFRSQV9GTEFHUwotQEAgLTgx Myw2ICs4MTgsNyBAQCB3aXRoX2dkYl9kYXRhZGlyCitAQCAtODE0LDYgKzgxOSw3IEBACiAgd2l0 aF9yZWxvY2F0ZWRfc291cmNlcwogIHdpdGhfYXV0b19sb2FkX2RpcgogIHdpdGhfYXV0b19sb2Fk X3NhZmVfcGF0aApAQCAtMzUzLDcgKzMxOCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvY29uZmlndXJlCiAgZW5hYmxlX3RhcmdldHMKICBlbmFibGVfNjRfYml0X2JmZAogIGVu YWJsZV9nZGJjbGkKLUBAIC04NjksNiArODc1LDExIEBAIENDQworQEAgLTg3MCw2ICs4NzYsMTEg QEAKICBDUFAKICBNQUtFSU5GTwogIE1BS0VJTkZPRkxBR1MKQEAgLTM2NSw3ICszMzAsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZ3VyZQogIFlBQ0MKICBZRkxBR1MK ICBYTUtNRicKLUBAIC0xNTQwLDYgKzE1NTEsOCBAQCBPcHRpb25hbCBQYWNrYWdlczoKK0BAIC0x NTQxLDYgKzE1NTIsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgWy0td2l0aC1hdXRv LWxvYWQtZGlyXQogICAgLS13aXRob3V0LWF1dG8tbG9hZC1zYWZlLXBhdGgKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvIG5vdCByZXN0cmljdCBhdXRvLWxvYWRlZCBmaWxlcyBsb2NhdGlv bnMKQEAgLTM3NCw3ICszMzksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2Nv bmZpZ3VyZQogICAgLS13aXRoLWxpYnVud2luZC1pYTY0ICAgdXNlIGxpYnVud2luZCBmcmFtZSB1 bndpbmRpbmcgZm9yIGlhNjQgdGFyZ2V0cwogICAgLS13aXRoLWN1cnNlcyAgICAgICAgICAgdXNl IHRoZSBjdXJzZXMgbGlicmFyeSBpbnN0ZWFkIG9mIHRoZSB0ZXJtY2FwCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJyYXJ5Ci1AQCAtMTU5NSw2ICsxNjA4LDEzIEBAIFNvbWUgaW5mbHVl bnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgorQEAgLTE1OTUsNiArMTYwOCwxMyBAQAogICAg TUFLRUlORk8gICAgUGFyZW50IGNvbmZpZ3VyZSBkZXRlY3RzIGlmIGl0IGlzIG9mIHN1ZmZpY2ll bnQgdmVyc2lvbi4KICAgIE1BS0VJTkZPRkxBR1MKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMg Zm9yIE1BS0VJTkZPLgpAQCAtMzg4LDcgKzM1Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvY29uZmlndXJlCiAgICBZQUNDICAgICAgICBUaGUgYFlldCBBbm90aGVyIEMgQ29t cGlsZXInIGltcGxlbWVudGF0aW9uIHRvIHVzZS4gRGVmYXVsdHMgdG8KICAgICAgICAgICAgICAg IHRoZSBmaXJzdCBwcm9ncmFtIGZvdW5kIG91dCBvZjogYGJpc29uIC15JywgYGJ5YWNjJywgYHlh Y2MnLgogICAgWUZMQUdTICAgICAgVGhlIGxpc3Qgb2YgYXJndW1lbnRzIHRoYXQgd2lsbCBiZSBw YXNzZWQgYnkgZGVmYXVsdCB0byAkWUFDQy4KLUBAIC01NjU1LDYgKzU2NzUsNDk0IEBAIF9BQ0VP RgorQEAgLTU2MTMsNiArNTYzMyw0OTQgQEAKICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhfYXV0b19sb2FkX3NhZmVfcGF0aCIgPiY1CiAgJGFz X2VjaG8gIiR3aXRoX2F1dG9fbG9hZF9zYWZlX3BhdGgiID4mNjsgfQogIApAQCAtODgzLDExICs4 NDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUKICAKICAK ICBzdWJkaXJzPSIkc3ViZGlycyB0ZXN0c3VpdGUiCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2NvbmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb25m aWd1cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9j b25maWd1cmUuYWMKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCi1A QCAtMTc3LDYgKzE3NywxOTkgQEAgQUNfREVGSU5FX0RJUihBVVRPX0xPQURfU0FGRV9QQVRILCBl c2NhcAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE2 LTA3LTAyIDIzOjQzOjI0LjA4NTIxNDE0NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMw L2dkYi9jb25maWd1cmUuYWMJMjAxNi0wNy0wMyAxNDozNzoxMi41ODIxMzA4MTkgKzAyMDAKK0BA IC0xNzcsNiArMTc3LDE5OSBAQAogIAkgICAgICBbRGlyZWN0b3JpZXMgc2FmZSB0byBob2xkIGF1 dG8tbG9hZGVkIGZpbGVzLl0pCiAgQUNfTVNHX1JFU1VMVChbJHdpdGhfYXV0b19sb2FkX3NhZmVf cGF0aF0pCiAgCkBAIC0xMDg3LDExICsxMDUyLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvY29uZmlndXJlLmFjCiAgQUNfQ09ORklHX1NVQkRJUlModGVzdHN1aXRlKQogIAog ICMgQ2hlY2sgd2hldGhlciB0byBzdXBwb3J0IGFsdGVybmF0aXZlIHRhcmdldCBjb25maWd1cmF0 aW9ucwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb3JlbG93LmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY29yZWxvdy5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL2NvcmVsb3cuYwotQEAgLTMxMCw3ICszMTAsNyBAQCBidWlsZF9pZF9sb2NhdGVfZXhl YyAoaW50IGZyb21fdHR5KQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvcmVs b3cuYwkyMDE2LTA3LTAzIDE0OjM0OjMyLjAyMjc1MzU4MiArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9jb3JlbG93LmMJMjAxNi0wNy0wMyAxNDozNzoxMi41ODIxMzA4MTkgKzAy MDAKK0BAIC0zMTAsNyArMzEwLDcgQEAKICAgICAgICAgIHN5bWZpbGVfb2JqZmlsZS0+ZmxhZ3Mg fD0gT0JKRl9CVUlMRF9JRF9DT1JFX0xPQURFRDsKICAgICAgfQogICAgZWxzZQpAQCAtMTEwMCwx MCArMTA2NSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvcmVsb3cuYwog IAogICAgZG9fY2xlYW51cHMgKGJhY2tfdG8pOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9idWlsZC1pZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxk LWlkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9idWls ZC1pZC5jCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlkLmMKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9idWlsZC1pZC5jCTIwMTYtMDctMDMgMTQ6MzY6NTAu MTI0OTM4MTg3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2J1aWxkLWlkLmMJ MjAxNi0wNy0wMyAxNDo0MjoyNS4xNzE4MTIxMzQgKzAyMDAKIEBAIC0zNSw2ICszNSw3IEBACiAg I2luY2x1ZGUgImVsZi9jb21tb24uaCIKICAjaW5jbHVkZSAiZWxmLWJmZC5oIgpAQCAtMTExMiw3 ICsxMDc3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAg CiAgI2RlZmluZSBCVUlMRF9JRF9WRVJCT1NFX05PTkUgMAogICNkZWZpbmUgQlVJTERfSURfVkVS Qk9TRV9GSUxFTkFNRVMgMQotQEAgLTY2NSw4ICs2NjYsMzY2IEBAIGJ1aWxkX2lkX3RvX2ZpbGVu YW1lIChjb25zdCBzdHJ1Y3QgYmZkX2IKK0BAIC02NjUsOCArNjY2LDM2NiBAQAogICAgcmV0dXJu IHJlc3VsdDsKICB9CiAgCkBAIC0xMjIxLDEzICsxMTg2LDEzIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvYnVpbGQtaWQuYwogKwkgICAgcmV0dXJuIDA7CiArCSAgfQogKwotKwlp ZiAoISgoaGVhZGVyRm9ybWF0X3AgPSBkbHN5bSAoaCwgImhlYWRlckZvcm1hdCIpKQotKwkgICAg ICAmJiAocnBtUmVhZENvbmZpZ0ZpbGVzX3AgPSBkbHN5bSAoaCwgInJwbVJlYWRDb25maWdGaWxl cyIpKQotKwkgICAgICAmJiAocnBtZGJGcmVlSXRlcmF0b3JfcCA9IGRsc3ltIChoLCAicnBtZGJG cmVlSXRlcmF0b3IiKSkKLSsJICAgICAgJiYgKHJwbWRiTmV4dEl0ZXJhdG9yX3AgPSBkbHN5bSAo aCwgInJwbWRiTmV4dEl0ZXJhdG9yIikpCi0rCSAgICAgICYmIChycG10c0NyZWF0ZV9wID0gZGxz eW0gKGgsICJycG10c0NyZWF0ZSIpKQotKwkgICAgICAmJiAocnBtdHNGcmVlX3AgPSBkbHN5bSAo aCwgInJwbXRzRnJlZSIpKQotKwkgICAgICAmJiAocnBtdHNJbml0SXRlcmF0b3JfcCA9IGRsc3lt IChoLCAicnBtdHNJbml0SXRlcmF0b3IiKSkpKQorKwlpZiAoISgoaGVhZGVyRm9ybWF0X3AgPSAo Y2hhciAqKCopIChIZWFkZXIgaCwgY29uc3QgY2hhciAqIGZtdCwgZXJybXNnX3QgKmVycm1zZykp IGRsc3ltIChoLCAiaGVhZGVyRm9ybWF0IikpCisrCSAgICAgICYmIChycG1SZWFkQ29uZmlnRmls ZXNfcCA9IChpbnQgKCopIChjb25zdCBjaGFyICogZmlsZSwgY29uc3QgY2hhciAqIHRhcmdldCkp IGRsc3ltIChoLCAicnBtUmVhZENvbmZpZ0ZpbGVzIikpCisrCSAgICAgICYmIChycG1kYkZyZWVJ dGVyYXRvcl9wID0gKHJwbWRiTWF0Y2hJdGVyYXRvciAoKikgKHJwbWRiTWF0Y2hJdGVyYXRvciBt aSkpIGRsc3ltIChoLCAicnBtZGJGcmVlSXRlcmF0b3IiKSkKKysJICAgICAgJiYgKHJwbWRiTmV4 dEl0ZXJhdG9yX3AgPSAoSGVhZGVyICgqKSAocnBtZGJNYXRjaEl0ZXJhdG9yIG1pKSkgZGxzeW0g KGgsICJycG1kYk5leHRJdGVyYXRvciIpKQorKwkgICAgICAmJiAocnBtdHNDcmVhdGVfcCA9IChy cG10cyAoKikgKHZvaWQpKSBkbHN5bSAoaCwgInJwbXRzQ3JlYXRlIikpCisrCSAgICAgICYmIChy cG10c0ZyZWVfcCA9IChycG10cyAoKikgKHJwbXRzIHRzKSkgZGxzeW0gKGgsICJycG10c0ZyZWUi KSkKKysJICAgICAgJiYgKHJwbXRzSW5pdEl0ZXJhdG9yX3AgPSAocnBtZGJNYXRjaEl0ZXJhdG9y ICgqKSAoY29uc3QgcnBtdHMgdHMsIHJwbVRhZyBycG10YWcsIGNvbnN0IHZvaWQgKmtleXAsIHNp emVfdCBrZXlsZW4pKSBkbHN5bSAoaCwgInJwbXRzSW5pdEl0ZXJhdG9yIikpKSkKICsJICB7CiAr CSAgICB3YXJuaW5nIChfKCJPcGVuZWQgbGlicmFyeSBcIiVzXCIgaXMgaW5jb21wYXRpYmxlICgl cyksICIKICsJCSAgICAgICJtaXNzaW5nIGRlYnVnaW5mb3Mgbm90aWZpY2F0aW9ucyB3aWxsIG5v dCBiZSBkaXNwbGF5ZWQiKSwKQEAgLTEyODMsMTIgKzEyNDgsMTIgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiArCSAgaWYgKHMgPiBkZWJ1Z2luZm8gJiYgbWVt Y21wIChzLCAiLnNyYy5ycG0iLCBzcmNycG1sZW4pID09IDApCiArCSAgICB7CiArCSAgICAgIC8q IHMyID0gYC0le3JlbGVhc2V9LnNyYy5ycG0tZGVidWdpbmZvLiV7YXJjaH0nICovCi0rCSAgICAg IHMyID0gbWVtcmNociAoZGVidWdpbmZvLCAnLScsIHMgLSBkZWJ1Z2luZm8pOworKwkgICAgICBz MiA9IChjaGFyICopIG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzIC0gZGVidWdpbmZvKTsKICsJ ICAgIH0KICsJICBpZiAoczIpCiArCSAgICB7CiArCSAgICAgIC8qIHMyID0gYC0le3ZlcnNpb259 LSV7cmVsZWFzZX0uc3JjLnJwbS1kZWJ1Z2luZm8uJXthcmNofScgKi8KLSsJICAgICAgczIgPSBt ZW1yY2hyIChkZWJ1Z2luZm8sICctJywgczIgLSBkZWJ1Z2luZm8pOworKwkgICAgICBzMiA9IChj aGFyICopIG1lbXJjaHIgKGRlYnVnaW5mbywgJy0nLCBzMiAtIGRlYnVnaW5mbyk7CiArCSAgICB9 CiArCSAgaWYgKCFzMikKICsJICAgIHsKQEAgLTEzMTEsNyArMTI3Niw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvYnVpbGQtaWQuYwogKwogKwkgIC8qIFJQTURCSV9QQUNLQUdF UyByZXF1aXJlcyBrZXlsZW4gPT0gc2l6ZW9mIChpbnQpLiAgKi8KICsJICAvKiBSUE1EQklfTEFC RUwgaXMgYW4gaW50ZXJmYWNlIGZvciBOVlItYmFzZWQgZGJpRmluZEJ5TGFiZWwoKS4gICovCi0r CSAgbWlfZGVidWdpbmZvID0gcnBtdHNJbml0SXRlcmF0b3JfcCAodHMsIFJQTURCSV9MQUJFTCwg ZGVidWdpbmZvLCAwKTsKKysJICBtaV9kZWJ1Z2luZm8gPSBycG10c0luaXRJdGVyYXRvcl9wICh0 cywgKHJwbVRhZykgUlBNREJJX0xBQkVMLCBkZWJ1Z2luZm8sIDApOwogKwkgIHhmcmVlIChkZWJ1 Z2luZm8pOwogKwkgIGlmIChtaV9kZWJ1Z2luZm8pCiArCSAgICB7CkBAIC0xMzYyLDcgKzEzMjcs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlkLmMKICsKICsJICAg ICAgKnNsb3QgPSBkZWJ1Z2luZm87CiArCi0rCSAgICAgIG1pc3NpbmdfcnBtID0geG1hbGxvYyAo c2l6ZW9mICgqbWlzc2luZ19ycG0pICsgc3RybGVuIChkZWJ1Z2luZm8pKTsKKysJICAgICAgbWlz c2luZ19ycG0gPSAoc3RydWN0IG1pc3NpbmdfcnBtICopIHhtYWxsb2MgKHNpemVvZiAoKm1pc3Np bmdfcnBtKSArIHN0cmxlbiAoZGVidWdpbmZvKSk7CiArCSAgICAgIHN0cmNweSAobWlzc2luZ19y cG0tPnJwbSwgZGVidWdpbmZvKTsKICsJICAgICAgbWlzc2luZ19ycG0tPm5leHQgPSBtaXNzaW5n X3JwbV9saXN0OwogKwkgICAgICBtaXNzaW5nX3JwbV9saXN0ID0gbWlzc2luZ19ycG07CkBAIC0x NDAwLDcgKzEzNjUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2J1aWxkLWlk LmMKICsgIGlmIChtaXNzaW5nX3JwbV9saXN0X2VudHJpZXMgPT0gMCkKICsgICAgcmV0dXJuOwog KwotKyAgYXJyYXkgPSB4bWFsbG9jIChzaXplb2YgKCphcnJheSkgKiBtaXNzaW5nX3JwbV9saXN0 X2VudHJpZXMpOworKyAgYXJyYXkgPSAoY2hhciAqKikgeG1hbGxvYyAoc2l6ZW9mICgqYXJyYXkp ICogbWlzc2luZ19ycG1fbGlzdF9lbnRyaWVzKTsKICsgIGNsZWFudXBzID0gbWFrZV9jbGVhbnVw ICh4ZnJlZSwgYXJyYXkpOwogKwogKyAgYXJyYXlfaXRlciA9IGFycmF5OwpAQCAtMTQ4MCw3ICsx NDQ1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgICAg YXZvaWRhbmNlLiAgKi8KICAKICBzdHJ1Y3QgbWlzc2luZ19maWxlcGFpcgotQEAgLTcyMCwxMSAr MTA3OSwxNyBAQCBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAodm9pZCkKK0BAIC03MjAsMTEgKzEw NzksMTcgQEAKICAgICAgICAvKiBBbGwgdGhlaXIgbWVtb3J5IGNhbWUganVzdCBmcm9tIG1pc3Np bmdfZmlsZXBhaXJfT0JTVEFDSy4gICovCiAgICAgICAgbWlzc2luZ19maWxlcGFpcl9oYXNoID0g TlVMTDsKICAgICAgfQpAQCAtMTQ5OCw3ICsxNDYzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9idWlsZC1pZC5jCiAgICBtaXNzaW5nX2ZpbGVwYWlyX2NoYW5nZSAoKTsKICB9 CiAgCi1AQCAtNzkxLDE0ICsxMTU2LDM5IEBAIGRlYnVnX3ByaW50X21pc3NpbmcgKGNvbnN0IGNo YXIgKmJpbmFyeSwKK0BAIC03OTEsMTQgKzExNTYsMzkgQEAKICAKICAgICpzbG90ID0gbWlzc2lu Z19maWxlcGFpcjsKICAKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLXNvbGli LW1pc3NpbmctaWRzLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5n LWlkcy5wYXRjaAppbmRleCBhODk4OTNjLi5mNGRjY2M5IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1 aWxkaWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRp ZC1sb2NhdGUtc29saWItbWlzc2luZy1pZHMucGF0Y2gKQEAgLTEsMyArMSw2IEBACitnZGIgcmV0 dXJucyBhbiBpbmNvcnJlY3QgYmFjayB0cmFjZSB3aGVuIGFwcGx5aW5nIGEgZGVidWdpbmZvCito dHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTEzMzk4NjIKKwogSW5k ZXg6IGdkYi03LjkuOTAuMjAxNTA3MDkvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IGdkYi03LjkuOTAuMjAxNTA3MDkub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTUtMDctMDkgMTg6 MTg6NTQuNTI2NDE3NzY2ICswMjAwCkBAIC01NywzICs2MCwxNjMgQEAgSW5kZXg6IGdkYi03Ljku OTAuMjAxNTA3MDkvZ2RiL3NvbGliLXN2cjQuYwogIAogIAkgICAgeGZyZWUgKGJ1aWxkX2lkX2Zp bGVuYW1lKTsKICAJICAgIHhmcmVlIChidWlsZF9pZCk7CistLS0gL2Rldi9udWxsCTIwMTYtMDct MDIgMjA6Mjk6MDEuNjc5NDA0OTQzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MjEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9nY29yZS1idWlsZGlkLWV4ZWMtYnV0LW5vdC1zb2xpYi5leHAJ MjAxNi0wNy0zMSAyMzowNDo0OS4wNjI3NTM3MjIgKzAyMDAKK0BAIC0wLDAgKzEsMTA1IEBACisr IyBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRo aXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor KyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDov L3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisraWYge1tza2lwX3NobGliX3Rlc3RzXX0gewor KyAgICByZXR1cm4gMAorK30KKysKKytzZXQgdGVzdGZpbGUgImdjb3JlLWJ1aWxkaWQtZXhlYy1i dXQtbm90LXNvbGliIgorK3NldCBzcmNtYWluZmlsZSAke3Rlc3RmaWxlfS1tYWluLmMKKytzZXQg c3JjbGliZmlsZSAke3Rlc3RmaWxlfS1saWIuYworK3NldCBsaWJmaWxlIFtzdGFuZGFyZF9vdXRw dXRfZmlsZSAke3Rlc3RmaWxlfS1saWIuc29dCisrc2V0IG9iamZpbGUgW3N0YW5kYXJkX291dHB1 dF9maWxlICR7dGVzdGZpbGV9LW1haW4ub10KKytzZXQgZXhlY3V0YWJsZSAke3Rlc3RmaWxlfS1t YWluCisrc2V0IGJpbmZpbGUgW3N0YW5kYXJkX291dHB1dF9maWxlICR7ZXhlY3V0YWJsZX1dCisr c2V0IGdjb3JlZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHtleGVjdXRhYmxlfS5nY29yZV0K KytzZXQgb3V0ZGlyIFtmaWxlIGRpcm5hbWUgJGJpbmZpbGVdCisrCisraWYgeyBbZ2RiX2NvbXBp bGVfc2hsaWIgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2xpYmZpbGV9ICR7bGliZmlsZX0gImRl YnVnIGFkZGl0aW9uYWxfZmxhZ3M9LVdsLC0tYnVpbGQtaWQiXSAhPSAiIgorKyAgICAgfHwgW2dk Yl9jb21waWxlICR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNtYWluZmlsZX0gJHtvYmpmaWxlfSBv YmplY3Qge2RlYnVnfV0gIT0gIiIgfSB7CisrICAgICB1bnN1cHBvcnRlZCAiLVdsLC0tYnVpbGQt aWQgY29tcGlsYXRpb24gZmFpbGVkIgorKyAgICAgcmV0dXJuIC0xCisrfQorK3NldCBvcHRzIFts aXN0IGRlYnVnIHNobGliPSR7bGliZmlsZX0gImFkZGl0aW9uYWxfZmxhZ3M9LVdsLC0tYnVpbGQt aWQiXQorK2lmIHsgW2dkYl9jb21waWxlICR7b2JqZmlsZX0gJHtiaW5maWxlfSBleGVjdXRhYmxl ICRvcHRzXSAhPSAiIiB9IHsKKysgICAgIHVuc3VwcG9ydGVkICItV2wsLS1idWlsZC1pZCBjb21w aWxhdGlvbiBmYWlsZWQiCisrICAgICByZXR1cm4gLTEKKyt9CisrCisrY2xlYW5fcmVzdGFydCAk ZXhlY3V0YWJsZQorK2dkYl9sb2FkX3NobGliICRsaWJmaWxlCisrCisrIyBEb2VzIHRoaXMgZ2Ri IHN1cHBvcnQgZ2NvcmU/Cisrc2V0IHRlc3QgImhlbHAgZ2NvcmUiCisrZ2RiX3Rlc3RfbXVsdGlw bGUgJHRlc3QgJHRlc3QgeworKyAgICAtcmUgIlVuZGVmaW5lZCBjb21tYW5kOiAuZ2NvcmUuKlxy XG4kZ2RiX3Byb21wdCAkIiB7CisrCSMgZ2NvcmUgY29tbWFuZCBub3Qgc3VwcG9ydGVkIC0tIG5v dGhpbmcgdG8gdGVzdCBoZXJlLgorKwl1bnN1cHBvcnRlZCAiZ2RiIGRvZXMgbm90IHN1cHBvcnQg Z2NvcmUgb24gdGhpcyB0YXJnZXQiCisrCXJldHVybiAtMTsKKysgICAgfQorKyAgICAtcmUgIlNh dmUgYSBjb3JlIGZpbGUgLipcclxuJGdkYl9wcm9tcHQgJCIgeworKwlwYXNzICR0ZXN0CisrICAg IH0KKyt9CisrCisraWYgeyAhW3J1bnRvIGxpYl0gfSB0aGVuIHsKKysgICAgcmV0dXJuIC0xCisr fQorKworK3NldCBlc2NhcGVkZmlsZW5hbWUgW3N0cmluZ190b19yZWdleHAgJHtnY29yZWZpbGV9 XQorKworK3NldCB0ZXN0ICJzYXZlIGEgY29yZWZpbGUiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgImdj b3JlICR7Z2NvcmVmaWxlfSIgJHRlc3QgeworKyAgICAtcmUgIlNhdmVkIGNvcmVmaWxlICR7ZXNj YXBlZGZpbGVuYW1lfVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCXBhc3MgJHRlc3QKKysgICAgfQor KyAgICAtcmUgIkNhbid0IGNyZWF0ZSBhIGNvcmVmaWxlXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJ dW5zdXBwb3J0ZWQgJHRlc3QKKysJcmV0dXJuIC0xCisrICAgIH0KKyt9CisrCisrIyBOb3cgcmVz dGFydCBnZGIgYW5kIGxvYWQgdGhlIGNvcmVmaWxlLgorKworK2NsZWFuX3Jlc3RhcnQgJGV4ZWN1 dGFibGUKKytnZGJfbG9hZF9zaGxpYiAkbGliZmlsZQorKworK3NldCBidWlsZGlkIFtidWlsZF9p ZF9kZWJ1Z19maWxlbmFtZV9nZXQgJGxpYmZpbGVdCisrCisrcmVnc3ViIHtcLmRlYnVnJH0gJGJ1 aWxkaWQge30gYnVpbGRpZAorKworK3NldCBkZWJ1Z2RpciBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUg JHt0ZXN0ZmlsZX0tZGVidWdkaXJdCisrZmlsZSBkZWxldGUgLWZvcmNlIC0tICRkZWJ1Z2Rpcgor KworK2ZpbGUgbWtkaXIgJGRlYnVnZGlyL1tmaWxlIGRpcm5hbWUgJGxpYmZpbGVdCisrZmlsZSBj b3B5ICRsaWJmaWxlICRkZWJ1Z2Rpci8ke2xpYmZpbGV9CisrCisrZmlsZSBta2RpciAkZGVidWdk aXIvW2ZpbGUgZGlybmFtZSAkYnVpbGRpZF0KKytmaWxlIGNvcHkgJGxpYmZpbGUgJGRlYnVnZGly LyR7YnVpbGRpZH0KKysKKytyZW1vdGVfZXhlYyBidWlsZCAibG4gLXMgL2xpYiAgICAgICAke2Rl YnVnZGlyfS8iCisrcmVtb3RlX2V4ZWMgYnVpbGQgImxuIC1zIC9saWI2NCAgICAgJHtkZWJ1Z2Rp cn0vIgorKyMgL3VzciBpcyBub3QgbmVlZGVkLCBhbGwgdGhlIGxpYnMgYXJlIGluIC9saWI2NDog bGlibS5zby42IGxpYmMuc28uNiBsZC1saW51eC14ODYtNjQuc28uMgorKworK2dkYl90ZXN0ICJz ZXQgc29saWItYWJzb2x1dGUtcHJlZml4ICRkZWJ1Z2RpciIKKysKKytnZGJfdGVzdF9ub19vdXRw dXQgInNldCBkZWJ1Zy1maWxlLWRpcmVjdG9yeSAkZGVidWdkaXIiICJzZXQgZGVidWctZmlsZS1k aXJlY3RvcnkiCisrCisrZ2RiX3Rlc3QgImNvcmUgJHtnY29yZWZpbGV9IiAiQ29yZSB3YXMgZ2Vu ZXJhdGVkIGJ5IC4qIiAicmUtbG9hZCBnZW5lcmF0ZWQgY29yZWZpbGUiCisrCisrZ2RiX3Rlc3Qg ImZyYW1lIiAiIzAgXFteXHJcblxdKiBsaWIgLioiICJsaWJyYXJ5IGdvdCBsb2FkZWQiCisrCisr Z2RiX3Rlc3QgImJ0IgorK2dkYl90ZXN0ICJpbmZvIHNoYXJlZCIKKy0tLSAvZGV2L251bGwJMjAx Ni0wNy0wMiAyMDoyOTowMS42Nzk0MDQ5NDMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcy MS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2djb3JlLWJ1aWxkaWQtZXhlYy1idXQtbm90LXNvbGli LW1haW4uYwkyMDE2LTA3LTI4IDIxOjA2OjQwLjk3Nzc4NjkyMiArMDIwMAorQEAgLTAsMCArMSwy NSBAQAorKy8qIENvcHlyaWdodCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor KworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAg IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrZXh0ZXJuIHZvaWQgbGliICh2b2lkKTsKKysKKytp bnQKKyttYWluICh2b2lkKQorK3sKKysgIGxpYiAoKTsKKysgIHJldHVybiAwOworK30KKy0tLSAv ZGV2L251bGwJMjAxNi0wNy0wMiAyMDoyOTowMS42Nzk0MDQ5NDMgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcyMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2djb3JlLWJ1aWxkaWQtZXhlYy1i dXQtbm90LXNvbGliLWxpYi5jCTIwMTYtMDctMjggMjE6MDY6NDAuOTc3Nzg2OTIyICswMjAwCitA QCAtMCwwICsxLDIxIEBACisrLyogQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCisrCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorKworKyAgIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5CisrICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAgIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQorKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKyt2b2lkCisrbGliICh2b2lkKQor K3sKKyt9CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaCBiL2dkYi02 LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKaW5kZXggYjI1YWQ4ZS4uZmY3Nzc3NSAxMDA2NDQKLS0t IGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAorKysgYi9nZGItNi42LWJ1aWxkaWQtbG9j YXRlLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9jb3JlbG93LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvY29yZWxvdy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvY29yZWxvdy5jCTIw MTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL2NvcmVsb3cuYwkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAorLS0t IGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDE2LTA3LTAzIDE0OjMz OjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9jb3JlbG93 LmMJMjAxNi0wNy0wMyAxNDozNDozMi4wMjI3NTM1ODIgKzAyMDAKIEBAIC00NSw2ICs0NSwxMCBA QAogICNpbmNsdWRlICJnZGJfYmZkLmgiCiAgI2luY2x1ZGUgImNvbXBsZXRlci5oIgpAQCAtOTQs MTEgKzk0LDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29yZWxvdy5jCiAr CQkJICAgTlVMTCwgTlVMTCwgTlVMTCwKICsJCQkgICAmc2V0bGlzdCwgJnNob3dsaXN0KTsKICB9 Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2RvYy9nZGIudGV4aW5mbworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNi0wMi0x NSAyMzoyNTozNi40NTU1OTg5NTggKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv ZG9jL2dkYi50ZXhpbmZvCTIwMTYtMDItMTUgMjM6MjY6MDYuMzYyODExMzAyICswMTAwCi1AQCAt MTg2ODQsNiArMTg2ODQsMjcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9k b2MvZ2RiLnRleGluZm8JMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTYtMDctMDMgMTQ6MzQ6 MzIuMDMwNzUzNjUxICswMjAwCitAQCAtMTg5MTYsNiArMTg5MTYsMjcgQEAKICAKICBAZW5kIHRh YmxlCiAgCkBAIC0xMjYsMTAgKzEyNiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL2RvYy9nZGIudGV4aW5mbwogIEBjaW5kZXggQGNvZGV7LmdudV9kZWJ1Z2xpbmt9IHNlY3Rp b25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5rIHNlY3Rpb25zCiAgQSBkZWJ1ZyBsaW5rIGlzIGEgc3Bl Y2lhbCBzZWN0aW9uIG9mIHRoZSBleGVjdXRhYmxlIGZpbGUgbmFtZWQKLUluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvc29saWItc3ZyNC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjEx Lm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEw MAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9zb2xpYi1zdnI0LmMJMjAxNi0wMi0xNSAy MzoyNjo0Ni42MTMwOTcwODMgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dk Yi9zb2xpYi1zdnI0LmMJMjAxNi0wNy0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvc29saWItc3ZyNC5jCTIwMTYtMDctMDMgMTQ6MzQ6MzIu MDMxNzUzNjU5ICswMjAwCiBAQCAtNDUsNiArNDUsNyBAQAogICNpbmNsdWRlICJhdXh2LmgiCiAg I2luY2x1ZGUgImdkYl9iZmQuaCIKQEAgLTE5NCwxMCArMTk0LDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvc29saWItc3ZyNC5jCiAgICAgICAgeGZyZWUgKGJ1ZmZlcik7CiAg CiAgICAgICAgLyogSWYgdGhpcyBlbnRyeSBoYXMgbm8gbmFtZSwgb3IgaXRzIG5hbWUgbWF0Y2hl cyB0aGUgbmFtZQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9lbGZyZWFkLmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZWxmcmVhZC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTYtMDItMTUgMjM6MjU6 MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2VsZnJlYWQu YwkyMDE2LTAyLTE1IDIzOjI2OjA2LjM2NDgxMTMxNiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIw MTYwNjMwLm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9lbGZyZWFkLmMJMjAxNi0wNy0wMyAx NDozNDozMi4wMzE3NTM2NTkgKzAyMDAKIEBAIC0xMjU5LDkgKzEyNTksMTAgQEAKICAJICAgJiYg b2JqZmlsZS0+c2VwYXJhdGVfZGVidWdfb2JqZmlsZSA9PSBOVUxMCiAgCSAgICYmIG9iamZpbGUt PnNlcGFyYXRlX2RlYnVnX29iamZpbGVfYmFja2xpbmsgPT0gTlVMTCkKQEAgLTIyNCwxMSArMjI0 LDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZWxmcmVhZC5jCiAgICAgIH0K ICB9CiAgCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3N5bWZpbGUuaAorSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9zeW1maWxlLmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9zeW1maWxlLmgJMjAxNi0wMi0xNSAyMzoyNTowMC44 NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvc3ltZmlsZS5oCTIw MTYtMDItMTUgMjM6MjY6NDYuNTE2MDk2Mzk1ICswMTAwCi1AQCAtNTg0LDYgKzU4NCwxMCBAQAor LS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE2LTA3LTAzIDE0 OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9zeW1m aWxlLmgJMjAxNi0wNy0wMyAxNDozNDozMi4wMzI3NTM2NjggKzAyMDAKK0BAIC01ODksNiArNTg5 LDEwIEBACiAgdm9pZCBtYXBfc3ltYm9sX2ZpbGVuYW1lcyAoc3ltYm9sX2ZpbGVuYW1lX2Z0eXBl ICpmdW4sIHZvaWQgKmRhdGEsCiAgCQkJICAgaW50IG5lZWRfZnVsbG5hbWUpOwogIApAQCAtMjM5 LDExICsyMzksMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9zeW1maWxlLmgK ICAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAogIC8qIE5hbWVzIGZvciBhIGR3YXJmMiBkZWJ1 Z2dpbmcgc2VjdGlvbi4gIFRoZSBmaWVsZCBOT1JNQUwgaXMgdGhlIG5vcm1hbAotSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIw MTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5 NSArMDEwMAotQEAgLTE2NDAsNiArMTY0MCwxNiBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMw Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIw NTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvbGliL2dk Yi5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4wMzM3NTM2NzYgKzAyMDAKK0BAIC0xNjQxLDYgKzE2 NDEsMTYgQEAKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGggdG8gMC4iCiAg CX0KICAgICAgfQpAQCAtMjYwLDExICsyNjAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKICAgICAgcmV0dXJuIDAKICB9CiAgCi1JbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0 LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAx MDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0 LmV4cAkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5NSArMDEwMAotQEAgLTIwNCw2ICsyMDQs MTYgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvbGliL21p LXN1cHBvcnQuZXhwCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAxNi0w Ny0wMyAxNDozNDozMi4wMzM3NTM2NzYgKzAyMDAKK0BAIC0zMDksNiArMzA5LDE2IEBAIHByb2Mg ZGVmYXVsdF9taV9nZGJfc3RhcnQgeyBhcmdzIH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qg c2V0IHRoZSB3aWR0aCB0byAwLiIKICAJfQogICAgICB9CkBAIC0yNzksMTIgKzI3OSwxMiBAQCBJ bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5l eHAKICsJfQogKyAgICB9CiAgCi0gICAgICMgQ3JlYXRlIHRoZSBuZXcgUFRZIGZvciB0aGUgaW5m ZXJpb3IgcHJvY2Vzcy4KICAgICAgaWYgeyAkc2VwYXJhdGVfaW5mZXJpb3JfcHR5IH0gewotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9vYmpmaWxlcy5oCisgCW1pX2NyZWF0ZV9pbmZl cmlvcl9wdHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvb2JqZmlsZXMuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL29iamZpbGVzLmgJMjAx Ni0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvb2JqZmlsZXMuaAkyMDE2LTAyLTE1IDIzOjI2OjA2LjM2NjgxMTMzMCArMDEwMAorLS0t IGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxNi0wNy0wMyAxNDoz MzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvb2JqZmls ZXMuaAkyMDE2LTA3LTAzIDE0OjM0OjMyLjAzNDc1MzY4NSArMDIwMAogQEAgLTQ4OSw2ICs0ODks MTAgQEAKICAKICAjZGVmaW5lIE9CSkZfTk9UX0ZJTEVOQU1FICgxIDw8IDYpCkBAIC0yOTYsMTAg KzI5NiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL29iamZpbGVzLmgKICAv KiBEZWNsYXJhdGlvbnMgZm9yIGZ1bmN0aW9ucyBkZWZpbmVkIGluIG9iamZpbGVzLmMgKi8KICAK ICBleHRlcm4gc3RydWN0IG9iamZpbGUgKmFsbG9jYXRlX29iamZpbGUgKGJmZCAqLCBjb25zdCBj aGFyICpuYW1lLCBpbnQpOwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIw MTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIxICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxNi0wMi0xNSAyMzoyNjo1 NS4xNzgxNTc4OTYgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTYtMDctMDMgMTQ6MzM6MjguMTMwMjA1NTI4 ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j b3JlZmlsZS5leHAJMjAxNi0wNy0wMyAxNDozNDozMi4wMzQ3NTM2ODUgKzAyMDAKIEBAIC0yOTMs MyArMjkzLDMzIEBACiAgCXBhc3MgJHRlc3QKICAgICAgfQpAQCAtMzM0LDEwICszMzQsMTAgQEAg SW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZp bGUuZXhwCiArICAgIGdkYl90ZXN0ICJpbmZvIGZpbGVzIiAiTG9jYWwgZXhlYyBmaWxlOlxyXG5c WyBcdFxdKmBbc3RyaW5nX3RvX3JlZ2V4cCAkZGVidWdkaXIvJGJ1aWxkaWRdJywgZmlsZSB0eXBl IC4qIgogKyAgICBwYXNzICR3aG9sZXRlc3QKICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL2J1aWxkLWlkLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvYnVpbGQt aWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2J1aWxk LWlkLmMJMjAxNi0wMi0xNSAyMzoyNTowMC44NTkzNDYyMjEgKzAxMDAKLSsrKyBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvYnVpbGQtaWQuYwkyMDE2LTAyLTE1IDIzOjI2OjQ2LjUxNjA5NjM5NSAr MDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNi0w Ny0wMyAxNDozMzoyOC4xMzAyMDU1MjggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvYnVpbGQtaWQuYwkyMDE2LTA3LTAzIDE0OjM2OjUwLjEyNDkzODE4NyArMDIwMAogQEAgLTI2 LDExICsyNiw2NyBAQAogICNpbmNsdWRlICJvYmpmaWxlcy5oIgogICNpbmNsdWRlICJmaWxlbmFt ZXMuaCIKQEAgLTM4NSwxMCArMzg1LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvYnVpbGQtaWQuYwogKwkgICYmIG1lbWNtcCAoeG5wLT5uYW1lLCAiR05VIiwgc2l6ZW9mICJH TlUiKSA9PSAwKQogKwl7CiArCSAgc2l6ZV90IHNpemUgPSBkZXNjc3o7Ci0rCSAgZ2RiX2J5dGUg KmRhdGEgPSAodm9pZCAqKSBkZXNjZGF0YTsKKysJICBnZGJfYnl0ZSAqZGF0YSA9IChnZGJfYnl0 ZSAqKSBkZXNjZGF0YTsKICsJICBzdHJ1Y3QgYmZkX2J1aWxkX2lkICpyZXR2YWw7CiArCi0rCSAg cmV0dmFsID0geG1hbGxvYyAoc2l6ZW9mICpyZXR2YWwgLSAxICsgc2l6ZSk7CisrCSAgcmV0dmFs ID0gKHN0cnVjdCBiZmRfYnVpbGRfaWQgKikgeG1hbGxvYyAoc2l6ZW9mICpyZXR2YWwgLSAxICsg c2l6ZSk7CiArCSAgcmV0dmFsLT5zaXplID0gc2l6ZTsKICsJICBtZW1jcHkgKHJldHZhbC0+ZGF0 YSwgZGF0YSwgc2l6ZSk7CiArCkBAIC00MjksNyArNDI5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiArCWdkYl9ieXRlICpidWY7CiArCWludCBlcnI7CiAr Ci0rCWJ1ZiA9IHhtYWxsb2MgKGhkci0+cF9maWxlc3opOworKwlidWYgPSAoZ2RiX2J5dGUgKikg eG1hbGxvYyAoaGRyLT5wX2ZpbGVzeik7CiArCWVyciA9IHRhcmdldF9yZWFkX21lbW9yeSAobG9h ZGJhc2UgKyBpX3BoZHJbaV0ucF92YWRkciwgYnVmLAogKwkJCQkgIGhkci0+cF9maWxlc3opOwog KwlpZiAoZXJyID09IDApCkBAIC02MzMsOCArNjMzLDggQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi9idWlsZC1pZC5jCiArICB4X3BoZHJzX3NpemUgPSAoYmZkX2dldF9hcmNoX3Np emUgKHRlbXBsKSA9PSA2NCA/IHNpemVvZiAoRWxmNjRfRXh0ZXJuYWxfUGhkcikKICsJCQkJCQk6 IHNpemVvZiAoRWxmMzJfRXh0ZXJuYWxfUGhkcikpOwogKwotKyAgaV9waGRycyA9IHhtYWxsb2Mg KGlfZWhkci5lX3BobnVtICogKHNpemVvZiAqaV9waGRycyArIHhfcGhkcnNfc2l6ZSkpOwotKyAg eF9waGRyc19wdHIgPSAodm9pZCAqKSAmaV9waGRyc1tpX2VoZHIuZV9waG51bV07CisrICBpX3Bo ZHJzID0gKEVsZl9JbnRlcm5hbF9QaGRyICopIHhtYWxsb2MgKGlfZWhkci5lX3BobnVtICogKHNp emVvZiAqaV9waGRycyArIHhfcGhkcnNfc2l6ZSkpOworKyAgeF9waGRyc19wdHIgPSAoZ2RiX2J5 dGUgKikgJmlfcGhkcnNbaV9laGRyLmVfcGhudW1dOwogKyAgZXJyID0gdGFyZ2V0X3JlYWRfbWVt b3J5IChlaGRyX3ZtYSArIGlfZWhkci5lX3Bob2ZmLCAoYmZkX2J5dGUgKikgeF9waGRyc19wdHIs CiArCQkJICAgIGlfZWhkci5lX3BobnVtICogeF9waGRyc19zaXplKTsKICsgIGlmIChlcnIpCkBA IC03MDAsNyArNzAwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1p ZC5jCiArICAgIHsKICsgICAgICBzdHJ1Y3QgYnVpbGRfaWRfYWRkcl9zZWN0ICpjYW5kaWRhdGU7 CiArCi0rICAgICAgY2FuZGlkYXRlID0geG1hbGxvYyAoc2l6ZW9mICpjYW5kaWRhdGUpOworKyAg ICAgIGNhbmRpZGF0ZSA9IChzdHJ1Y3QgYnVpbGRfaWRfYWRkcl9zZWN0ICopIHhtYWxsb2MgKHNp emVvZiAqY2FuZGlkYXRlKTsKICsgICAgICBjYW5kaWRhdGUtPm5leHQgPSBidWlsZF9pZF9hZGRy X3NlY3Q7CiArICAgICAgYnVpbGRfaWRfYWRkcl9zZWN0ID0gY2FuZGlkYXRlOwogKyAgICAgIGNh bmRpZGF0ZS0+c2VjdCA9IHNlY3Q7CkBAIC04MjUsNyArODI1LDcgQEAgSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiAtCSAgICAgICArIChzaXplb2YgIi8uYnVpbGQt aWQvIiAtIDEpICsgMQogLQkgICAgICAgKyAyICogYnVpbGRfaWRfbGVuICsgKHNpemVvZiAiLmRl YnVnIiAtIDEpICsgMSk7CiAtICBsaW5rID0gKGNoYXIgKikgYWxsb2NhIChhbGxvY19sZW4pOwot KyAgbGluayA9IHhtYWxsb2MgKHN0cmxlbiAoZGVidWdfZmlsZV9kaXJlY3RvcnkpICsgMiAqIGJ1 aWxkX2lkX2xlbiArIDUwKTsKKysgIGxpbmsgPSAoY2hhciAqKSB4bWFsbG9jIChzdHJsZW4gKGRl YnVnX2ZpbGVfZGlyZWN0b3J5KSArIDIgKiBidWlsZF9pZF9sZW4gKyA1MCk7CiAgCiAgICAvKiBL ZWVwIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgc28gdGhhdCBERUJVR19GSUxFX0RJUkVDVE9SWSBi ZWluZyAiIiB3aWxsCiAgICAgICBjYXVzZSAiLy5idWlsZC1pZC8uLi4iIGxvb2t1cHMuICAqLwpA QCAtOTM3LDggKzkzNyw4IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVpbGQt aWQuYwogKwl7CiArCSAgc2l6ZV90IGxlbl9vcmlnID0gc3RybGVuIChsaW5rX2FsbCk7CiArCi0r CSAgbGlua19hbGwgPSB4cmVhbGxvYyAobGlua19hbGwsCi0rCQkJICAgICAgIGxlbl9vcmlnICsg MSArIHN0cmxlbiAobGluazBfcmVzb2x2ZWQpICsgMSk7CisrCSAgbGlua19hbGwgPSAoY2hhciAq KSB4cmVhbGxvYyAobGlua19hbGwsCisrCQkJCQlsZW5fb3JpZyArIDEgKyBzdHJsZW4gKGxpbmsw X3Jlc29sdmVkKSArIDEpOwogKwogKwkgIC8qIFVzZSB3aGl0ZXNwYWNlIGluc3RlYWQgb2YgRElS TkFNRV9TRVBBUkFUT1IgdG8gYmUgY29tcGF0aWJsZSB3aXRoCiArCSAgICAgaXRzIHBvc3NpYmxl IHVzZSBhcyBhbiBhcmd1bWVudCBmb3IgaW5zdGFsbGF0aW9uIGNvbW1hbmQuICAqLwpAQCAtMTA5 NSw5ICsxMDk1LDkgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5j CiArICBpZiAoKnNsb3QgIT0gTlVMTCkKICsgICAgcmV0dXJuOwogKwotKyAgbWlzc2luZ19maWxl cGFpciA9IG9ic3RhY2tfYWxsb2MgKCZtaXNzaW5nX2ZpbGVwYWlyX29ic3RhY2ssCi0rCQkJCSAg ICAgIHNpemVvZiAoKm1pc3NpbmdfZmlsZXBhaXIpIC0gMQotKwkJCQkgICAgICArIGJpbmFyeV9s ZW4wICsgZGVidWdfbGVuMCk7CisrICBtaXNzaW5nX2ZpbGVwYWlyID0gKHN0cnVjdCBtaXNzaW5n X2ZpbGVwYWlyICopIG9ic3RhY2tfYWxsb2MgKCZtaXNzaW5nX2ZpbGVwYWlyX29ic3RhY2ssCisr CQkJCQkJCQlzaXplb2YgKCptaXNzaW5nX2ZpbGVwYWlyKSAtIDEKKysJCQkJCQkJCSsgYmluYXJ5 X2xlbjAgKyBkZWJ1Z19sZW4wKTsKICsgIG1pc3NpbmdfZmlsZXBhaXItPmJpbmFyeSA9IG1pc3Np bmdfZmlsZXBhaXItPmRhdGE7CiArICBtZW1jcHkgKG1pc3NpbmdfZmlsZXBhaXItPmJpbmFyeSwg YmluYXJ5LCBiaW5hcnlfbGVuMCk7CiArICBpZiAoZGVidWcgIT0gTlVMTCkKQEAgLTExNjYsMTAg KzExNjYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5jCiAr CiArICBvYnNlcnZlcl9hdHRhY2hfZXhlY3V0YWJsZV9jaGFuZ2VkIChkZWJ1Z19wcmludF9leGVj dXRhYmxlX2NoYW5nZWQpOwogK30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYnVp bGQtaWQuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1pZC5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE2 LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi9idWlsZC1pZC5oCTIwMTYtMDItMTUgMjM6MjY6MDYuMzY4ODExMzQ1ICswMTAwCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE2LTA3LTAzIDE0OjMz OjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9idWlsZC1p ZC5oCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDM1NzUzNjk0ICswMjAwCiBAQCAtMjAsOSArMjAsMTAg QEAKICAjaWZuZGVmIEJVSUxEX0lEX0gKICAjZGVmaW5lIEJVSUxEX0lEX0gKQEAgLTEyMDQsMTEg KzEyMDQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9idWlsZC1pZC5oCiAr CQkJCQkgICAgICAgY2hhciAqKmJ1aWxkX2lkX2ZpbGVuYW1lX3JldHVybik7CiAgCiAgI2VuZGlm IC8qIEJVSUxEX0lEX0ggKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZHdhcmYy cmVhZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2R3YXJmMnJlYWQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwky MDE2LTAyLTE1IDIzOjI1OjM2LjQ2MTU5OTAwMSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0wMi0xNSAyMzoyNjowNi4zNzM4MTEzODAgKzAxMDAK LUBAIC0yNTE2LDcgKzI1MTYsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2Ri L2R3YXJmMnJlYWQuYwkyMDE2LTA3LTAzIDE0OjMzOjI4LjEzMDIwNTUyOCArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0wNy0wMyAxNDozNDozMi4w NDA3NTM3MzYgKzAyMDAKK0BAIC0yNTM1LDcgKzI1MzUsNyBAQAogICAgICB9CiAgCiAgICBpZiAo ZHd6X2JmZCA9PSBOVUxMKQpAQCAtMTIxNywxMSArMTIxNywxMSBAQCBJbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL2R3YXJmMnJlYWQuYwogIAogICAgaWYgKGR3el9iZmQgPT0gTlVMTCkK ICAgICAgZXJyb3IgKF8oImNvdWxkIG5vdCBmaW5kICcuZ251X2RlYnVnYWx0bGluaycgZmlsZSBm b3IgJXMiKSwKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvcHl0aG9uL3B5LW9iamZp bGUuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHktb2JqZmlsZS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvcHl0aG9uL3B5 LW9iamZpbGUuYwkyMDE2LTAyLTE1IDIzOjI1OjAwLjg1OTM0NjIyMSArMDEwMAotKysrIGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTYtMDItMTUgMjM6MjY6 MDYuMzczODExMzgwICswMTAwCi1AQCAtMTM5LDcgKzEzOSw3IEBACistLS0gZ2RiLTcuMTEuNTAu MjAxNjA2MzAub3JpZy9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwkyMDE2LTA3LTAzIDE0OjMzOjI4 LjEzMDIwNTUyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9weXRob24vcHkt b2JqZmlsZS5jCTIwMTYtMDctMDMgMTQ6MzQ6MzIuMDQwNzUzNzM2ICswMjAwCitAQCAtMTM2LDcg KzEzNiw3IEBACiAgCiAgICBUUlkKICAgICAgewpAQCAtMTIzMCw3ICsxMjMwLDcgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9weXRob24vcHktb2JqZmlsZS5jCiAgICAgIH0KICAg IENBVENIIChleGNlcHQsIFJFVFVSTl9NQVNLX0FMTCkKICAgICAgewotQEAgLTU0OCw3ICs1NDgs NyBAQAorQEAgLTU0Nyw3ICs1NDcsNyBAQAogICAgICAgIC8qIERvbid0IHJldHVybiBzZXBhcmF0 ZSBkZWJ1ZyBmaWxlcy4gICovCiAgICAgICAgaWYgKG9iamZpbGUtPnNlcGFyYXRlX2RlYnVnX29i amZpbGVfYmFja2xpbmsgIT0gTlVMTCkKICAJY29udGludWU7CkBAIC0xMjM5LDExICsxMjM5LDEx IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYwog ICAgICAgIGlmIChvYmZkX2J1aWxkX2lkID09IE5VTEwpCiAgCWNvbnRpbnVlOwogICAgICAgIGlm IChvYmpmcHlfYnVpbGRfaWRfbWF0Y2hlcyAob2JmZF9idWlsZF9pZCwgYnVpbGRfaWQpKQotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb2ZmcmVhZC5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA2MzAvZ2RiL2NvZmZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4y MDE2MDIxMS5vcmlnL2dkYi9jb2ZmcmVhZC5jCTIwMTYtMDItMTUgMjM6MjU6MDAuODU5MzQ2MjIx ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvZmZyZWFkLmMJMjAxNi0wMi0x NSAyMzoyNjowNi4zNzQ4MTEzODcgKzAxMDAKLUBAIC03MzksNyArNzM5LDcgQEAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9jb2ZmcmVhZC5jCTIwMTYtMDctMDMgMTQ6MzM6Mjgu MTMwMjA1NTI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2NvZmZyZWFkLmMJ MjAxNi0wNy0wMyAxNDozNDozMi4wNDE3NTM3NDUgKzAyMDAKK0BAIC03MzcsNyArNzM3LDcgQEAK ICAgICAgewogICAgICAgIGNoYXIgKmRlYnVnZmlsZTsKICAKCmRpZmYgLS1naXQgYS9nZGItNi44 LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2ggYi9nZGItNi44LWF0dGFjaC1z aWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2gKaW5kZXggYTBjNDcyYi4uNDRiODMxMSAxMDA2 NDQKLS0tIGEvZ2RiLTYuOC1hdHRhY2gtc2lnbmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoCisr KyBiL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5wYXRjaApAQCAtMSw3 ICsxLDggQEAKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2lu ZnJ1bi5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pbmZydW4uYwotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2LW9yaWcvZ2RiL2luZnJ1bi5jCTIwMTYtMDEtMDkgMTU6MDU6MDYuMTI3NDgxNzU4 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2luZnJ1bi5jCTIwMTYtMDEtMDkg MTU6MDU6MjQuMDU0NTkzMDQ4ICswMTAwCi1AQCAtNjI2LDYgKzYyNiwxMyBAQCBob2xkaW5nIHRo ZSBjaGlsZCBzdG9wcGVkLiAgVHJ5IFwic2V0IGRlCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL2luZnJ1bi5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvaW5mcnVuLmMJMjAxNi0wNy0xNiAxNDozNzowOS4zMTcxNzgxNTAgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaW5mcnVuLmMJMjAxNi0wNy0xNiAxNDozNzoxMC42MzYx ODg3NjUgKzAyMDAKK0BAIC02MjAsNiArNjIwLDEzIEBACiAgCQkJCXRhcmdldF9waWRfdG9fc3Ry IChwcm9jZXNzX3B0aWQpKTsKICAJICAgIH0KICAKQEAgLTE1LDEwICsxNiwxMSBAQCBkaWZmIC1k dXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9pbmZydW4uYyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvaQogIAkgIHRhcmdldF9kZXRhY2ggKE5VTEwsIDApOwogIAl9CiAgCi1k aWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYyBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbGludXgtbmF0LmMKLS0tLSBnZGItNy4xMC41MC4yMDE2 MDEwNi1vcmlnL2dkYi9saW51eC1uYXQuYwkyMDE2LTAxLTA5IDE1OjA1OjA2LjIyNTQ4MjM2NiAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9saW51eC1uYXQuYwkyMDE2LTAxLTA5 IDE1OjA1OjI0LjA1MDU5MzAyMyArMDEwMAotQEAgLTE5NCw2ICsxOTQsMTEgQEAgZW51bSB0cmli b29sIGhhdmVfcHRyYWNlX2dldHJlZ3NldCA9IFRSSQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9saW51eC1uYXQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6Mzc6MDkuMzIwMTc4MTc0ICswMjAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6 Mzg6MDkuNTc0NjYzMDk0ICswMjAwCitAQCAtMTk0LDYgKzE5NCwxMSBAQAogIHN0YXRpYyBzdHJ1 Y3QgdGFyZ2V0X29wcyAqbGludXhfb3BzOwogIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyBsaW51 eF9vcHNfc2F2ZWQ7CiAgCkBAIC0zMCw3ICszMiw3IEBAIGRpZmYgLWR1cCAtcnVwIGdkYi03LjEw LjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2xpbnV4LW5hdC5jIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dk CiAgLyogVGhlIG1ldGhvZCB0byBjYWxsLCBpZiBhbnksIHdoZW4gYSBuZXcgdGhyZWFkIGlzIGF0 dGFjaGVkLiAgKi8KICBzdGF0aWMgdm9pZCAoKmxpbnV4X25hdF9uZXdfdGhyZWFkKSAoc3RydWN0 IGx3cF9pbmZvICopOwogIAotQEAgLTk2MSw2ICs5NjYsOSBAQCBsaW51eF9uYXRfcG9zdF9hdHRh Y2hfd2FpdCAocHRpZF90IHB0aWQsCitAQCAtMTA0Nyw2ICsxMDUyLDkgQEAKICAgICAgICBpZiAo ZGVidWdfbGludXhfbmF0KQogIAlmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAgCQkJ ICAgICJMTlBBVzogQXR0YWNoaW5nIHRvIGEgc3RvcHBlZCBwcm9jZXNzXG4iKTsKQEAgLTQwLDgg KzQyLDggQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvbGlu dXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICAKICAgICAgICAvKiBUaGUgcHJvY2Vz cyBpcyBkZWZpbml0ZWx5IHN0b3BwZWQuICBJdCBpcyBpbiBhIGpvYiBjb250cm9sCiAgCSBzdG9w LCB1bmxlc3MgdGhlIGtlcm5lbCBwcmVkYXRlcyB0aGUgVEFTS19TVE9QUEVEIC8KLUBAIC0xMzAz LDYgKzEzMTEsMjUgQEAgZ2V0X3BlbmRpbmdfc3RhdHVzIChzdHJ1Y3QgbHdwX2luZm8gKmxwLAot IAkJCSAgICBnZGJfc2lnbmFsX3RvX3N0cmluZyAoc2lnbm8pKTsKK0BAIC0xNDA0LDYgKzE0MTIs MjUgQEAKKyAgICAgICByZXR1cm4gZ2RiX3NpZ25hbF90b19ob3N0IChzaWdubyk7CiAgICAgIH0K ICAKICsjaWZkZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUApAQCAtNjYsMTggKzY4LDE4IEBAIGRpZmYg LWR1cCAtcnVwIGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2xpbnV4LW5hdC5jIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkCiAgICByZXR1cm4gMDsKICB9CiAgCi1AQCAtMTQxNiw2ICsxNDQz LDEwIEBAIGxpbnV4X25hdF9kZXRhY2ggKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKLSAgICAgfQot ICAgZWxzZQotICAgICBsaW51eF9vcHMtPnRvX2RldGFjaCAob3BzLCBhcmdzLCBmcm9tX3R0eSk7 Ci0rI2lmZGVmIE5FRURfREVUQUNIX1NJR1NUT1AKK0BAIC0xNTYyLDYgKzE1ODksMTAgQEAKKyAg ICAgICBkZXRhY2hfb25lX2x3cCAobWFpbl9sd3AsICZzaWdubyk7CisgCisgICAgICAgaW5mX3B0 cmFjZV9kZXRhY2hfc3VjY2VzcyAob3BzKTsKICsKLSsgIHBpZF93YXNfc3RvcHBlZCA9IDA7Cisr I2lmZGVmIE5FRURfREVUQUNIX1NJR1NUT1AKKysgICAgICBwaWRfd2FzX3N0b3BwZWQgPSAwOwog KyNlbmRpZgorICAgICB9CisgICBkZWxldGVfbHdwIChtYWluX2x3cC0+cHRpZCk7CiAgfQotIAot IC8qIFJlc3VtZSBleGVjdXRpb24gb2YgdGhlIGluZmVyaW9yIHByb2Nlc3MuICBJZiBTVEVQIGlz IG5vbnplcm8sCi1AQCAtMTY3NCw2ICsxNzA1LDE2IEBAIGxpbnV4X25hdF9yZXN1bWUgKHN0cnVj dCB0YXJnZXRfb3BzICpvcHMKK0BAIC0xODIzLDYgKzE4NTQsMTYgQEAKICAgICAgICByZXR1cm47 CiAgICAgIH0KICAKQEAgLTk0LDcgKzk2LDcgQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAu MjAxNjAxMDYtb3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICAg IGlmIChyZXN1bWVfbWFueSkKICAgICAgaXRlcmF0ZV9vdmVyX2x3cHMgKHB0aWQsIGxpbnV4X25h dF9yZXN1bWVfY2FsbGJhY2ssIGxwKTsKICAKLUBAIC0zNjE4LDYgKzM2NTksMTAgQEAgbGludXhf bmF0X21vdXJuX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0XworQEAgLTM4MTksNiArMzg2MCwxMCBA QAogIAogICAgLyogTGV0IHRoZSBhcmNoLXNwZWNpZmljIG5hdGl2ZSBjb2RlIGtub3cgdGhpcyBw cm9jZXNzIGlzIGdvbmUuICAqLwogICAgbGludXhfbmF0X2ZvcmdldF9wcm9jZXNzIChwaWQpOwpA QCAtMTA1LDEwICsxMDcsMTEgQEAgZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYt b3JpZy9nZGIvbGludXgtbmF0LmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2QKICB9CiAgCiAgLyog Q29udmVydCBhIG5hdGl2ZS9ob3N0IHNpZ2luZm8gb2JqZWN0LCBpbnRvL2Zyb20gdGhlIHNpZ2lu Zm8gaW4gdGhlCi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi90 ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCi0tLS0gZ2Ri LTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1z dG9wcGVkLmV4cAkyMDE2LTAxLTA2IDAyOjQ4OjM4LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvYXR0YWNoLXN0b3BwZWQu ZXhwCTIwMTYtMDEtMDkgMTU6MDU6NDguOTE3NzQ3MTAxICswMTAwCi1AQCAtNTYsNyArNTYsNjUg QEAgcHJvYyBjb3JlZnVuYyB7IHRocmVhZHR5cGUgfSB7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTYtMDctMTYgMTQ6Mzc6MDkuMzIxMTc4MTgyICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9h dHRhY2gtc3RvcHBlZC5leHAJMjAxNi0wNy0xNiAxNDozNzoxMC42NDAxODg3OTcgKzAyMDAKK0BA IC01Niw3ICs1Niw2NSBAQAogICAgICBnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJk aXIKICAgICAgZ2RiX2xvYWQgJHtiaW5maWxlfQogIAoKZGlmZiAtLWdpdCBhL2dkYi02LjgtcXVp dC1uZXZlci1hYm9ydHMucGF0Y2ggYi9nZGItNi44LXF1aXQtbmV2ZXItYWJvcnRzLnBhdGNoCmlu ZGV4IDQ3ZTFjNjQuLjU1ZTcxNGUgMTAwNjQ0Ci0tLSBhL2dkYi02LjgtcXVpdC1uZXZlci1hYm9y dHMucGF0Y2gKKysrIGIvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0cy5wYXRjaApAQCAtNSwzOCAr NSw0MiBAQCBTb21lIG9mIHRoZSB0aHJlYWRzIG1heSBub3QgYmUgcHJvcGVybHkgUFRSQUNFX0RF VEFDSGVkIHdoaWNoIGh1cnRzIGlmIHRoZXkKIHNob3VsZCBoYXZlIGJlZW4gZGV0YWNoZWQgd2l0 aCBTSUdTVE9QIChhcyB0aGV5IGFyZSBhY2NpZGVudGFsbHkgbGVmdCBydW5uaW5nCiBvbiB0aGUg ZGVidWdnZXIgdGVybWluYXRpb24pLgogCi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41MC4yMDE2 MDEwNi1vcmlnL2dkYi9kZWZzLmggZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2RlZnMuaAotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2LW9yaWcvZ2RiL2RlZnMuaAkyMDE2LTAxLTA5IDE1OjA2OjU3 LjY1ODE3Mjg3NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9kZWZzLmgJMjAx Ni0wMS0wOSAxNTowNzoxMi40MzEyNjQzNzggKzAxMDAKLUBAIC0xNDUsNiArMTQ1LDkgQEAgZXh0 ZXJuIHZvaWQgc2V0X3F1aXRfZmxhZyAodm9pZCk7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL2RlZnMuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcv Z2RiL2RlZnMuaAkyMDE2LTA3LTAzIDE2OjQwOjQzLjQyMzA3ODkyNiArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNjMwL2dkYi9kZWZzLmgJMjAxNi0wNy0wMyAxNjo0MTowOC41NjgyNzE3NDEg KzAyMDAKK0BAIC0xNzUsNiArMTc1LDEwIEBACiAgLyogRmxhZyB0aGF0IGZ1bmN0aW9uIHF1aXQg c2hvdWxkIGNhbGwgcXVpdF9mb3JjZS4gICovCiAgZXh0ZXJuIHZvbGF0aWxlIGludCBzeW5jX3F1 aXRfZm9yY2VfcnVuOwogIAogKyNpZmRlZiBORUVEX0RFVEFDSF9TSUdTVE9QCiArZXh0ZXJuIGlu dCBxdWl0X2ZsYWdfY2xlYW51cDsKICsjZW5kaWYKLSBleHRlcm4gaW50IGltbWVkaWF0ZV9xdWl0 OwotIAorKwogIGV4dGVybiB2b2lkIHF1aXQgKHZvaWQpOwotZGlmZiAtZHVwIC1ydXAgZ2RiLTcu MTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvZXh0ZW5zaW9uLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2V4dGVuc2lvbi5jCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvZXh0ZW5z aW9uLmMJMjAxNi0wMS0wNiAwMjo0ODozNy4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvZXh0ZW5zaW9uLmMJMjAxNi0wMS0wOSAxNTowNzoxMi40MzQyNjQzOTYg KzAxMDAKLUBAIC04MzMsNiArODMzLDExIEBAIGNoZWNrX3F1aXRfZmxhZyAodm9pZCkKKyAKKyAv KiBIZWxwZXIgZm9yIHRoZSBRVUlUIG1hY3JvLiAgKi8KK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDYzMC9nZGIvZXh0ZW5zaW9uLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYz MC5vcmlnL2dkYi9leHRlbnNpb24uYwkyMDE2LTA3LTAzIDE2OjQwOjQxLjcyMzA2NTg5MCArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9leHRlbnNpb24uYwkyMDE2LTA3LTAzIDE2 OjQxOjQ0Ljg5NjU1MDMwOSArMDIwMAorQEAgLTgzMCw2ICs4MzAsMTEgQEAKICAgIGludCBpLCBy ZXN1bHQgPSAwOwogICAgY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICpleHRs YW5nOwogIAogKyNpZmRlZiBORUVEX0RFVEFDSF9TSUdTVE9QCiArICBpZiAocXVpdF9mbGFnX2Ns ZWFudXApCiArICAgIHJldHVybiAwOwotKwogKyNlbmRpZgorKwogICAgQUxMX0VOQUJMRURfRVhU RU5TSU9OX0xBTkdVQUdFUyAoaSwgZXh0bGFuZykKICAgICAgewogICAgICAgIGlmIChleHRsYW5n LT5vcHMtPmNoZWNrX3F1aXRfZmxhZyAhPSBOVUxMKQotZGlmZiAtZHVwIC1ydXAgZ2RiLTcuMTAu NTAuMjAxNjAxMDYtb3JpZy9nZGIvdG9wLmMgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RvcC5j Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdG9wLmMJMjAxNi0wMS0wNiAwMjo0 ODozOC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdG9wLmMJ MjAxNi0wMS0wOSAxNTowNzoxMi40MzIyNjQzODQgKzAxMDAKLUBAIC0xNTU3LDcgKzE1NTcsMTMg QEAgcXVpdF9mb3JjZSAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQorSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi90b3AuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUwLjIwMTYw NjMwLm9yaWcvZ2RiL3RvcC5jCTIwMTYtMDctMDMgMTY6NDA6NDEuNzI0MDY1ODk4ICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3RvcC5jCTIwMTYtMDctMDMgMTY6NDA6NDMuNDI0 MDc4OTM0ICswMjAwCitAQCAtMTYxNyw3ICsxNjE3LDEzIEBACiAgICBxdC5hcmdzID0gYXJnczsK ICAgIHF0LmZyb21fdHR5ID0gZnJvbV90dHk7CiAgCkBAIC01MCwyMCArNTQsMjEgQEAgZGlmZiAt ZHVwIC1ydXAgZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdG9wLmMgZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3RvcC4KICAKICAgIC8qIEdldCBvdXQgb2YgdGZpbmQgbW9kZSwgYW5kIGtp bGwgb3IgZGV0YWNoIGFsbCBpbmZlcmlvcnMuICAqLwogICAgVFJZCi1kaWZmIC1kdXAgLXJ1cCBn ZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi91dGlscy5jIGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi91dGlscy5jCi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYtb3JpZy9nZGIvdXRpbHMuYwky MDE2LTAxLTA5IDE1OjA2OjU3LjY1NDE3Mjg1MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi91dGlscy5jCTIwMTYtMDEtMDkgMTU6MDc6MTIuNDMzMjY0MzkwICswMTAwCi1AQCAt MTIyLDYgKzEyMiwxMyBAQCBpbnQgam9iX2NvbnRyb2w7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3V0aWxzLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5v cmlnL2dkYi91dGlscy5jCTIwMTYtMDctMDMgMTY6NDA6NDEuNzI1MDY1OTA1ICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3V0aWxzLmMJMjAxNi0wNy0wMyAxNjo0MTozOC45NjE1 MDQ3OTkgKzAyMDAKK0BAIC0xMDksNiArMTA5LDEzIEBACiAgCi0gaW50IGltbWVkaWF0ZV9xdWl0 OworIGludCBqb2JfY29udHJvbDsKICAKICsjaWZkZWYgTkVFRF9ERVRBQ0hfU0lHU1RPUAogKy8q IE5vbnplcm8gbWVhbnMgd2UgYXJlIGFscmVhZHkgcHJvY2Vzc2luZyB0aGUgcXVpdHRpbmcgY2xl YW51cHMgYW5kIHdlIHNob3VsZAogKyAgIG5vIGxvbmdlciBnZXQgYWJvcnRlZC4gICovCiArCiAr aW50IHF1aXRfZmxhZ19jbGVhbnVwOwotKwogKyNlbmRpZgorKwogIC8qIE5vbnplcm8gbWVhbnMg dGhhdCBzdHJpbmdzIHdpdGggY2hhcmFjdGVyIHZhbHVlcyA+MHg3RiBzaG91bGQgYmUgcHJpbnRl ZAogICAgIGFzIG9jdGFsIGVzY2FwZXMuICBaZXJvIG1lYW5zIGp1c3QgcHJpbnQgdGhlIHZhbHVl IChlLmcuIGl0J3MgYW4KICAgICBpbnRlcm5hdGlvbmFsIGNoYXJhY3RlciwgYW5kIHRoZSB0ZXJt aW5hbCBvciB3aW5kb3cgY2FuIGNvcGUuKSAgKi8KCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLXZs YS10ZXN0cy5wYXRjaCBiL2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCmluZGV4IGZhNjAzODAu LjdmN2UxODQgMTAwNjQ0Ci0tLSBhL2dkYi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCisrKyBiL2dk Yi1hcmNoZXItdmxhLXRlc3RzLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJh eS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0 c3VpdGUvZ2RiLmFkYS9wYWNrZWRfYXJyYXkuZXhwCTIwMTYtMDItMTUgMjM6MzM6MjkuODMwOTU5 OTcyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRh L3BhY2tlZF9hcnJheS5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yODk5OTk4NDYgKzAxMDAKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9wYWNrZWRf YXJyYXkuZXhwCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAJMjAx Ni0wNy0xNiAxNjo1MzozMy43MzYxNzI4ODkgKzAyMDAKIEBAIC01Niw1ICs1NiwxMSBAQAogICAg ICAgICAgIyBhcmUuICBPYnNlcnZlZCB3aXRoIChGU0YgR05VIEFkYSA0LjUuMyAyMDExMDEyNCku CiAgICAgICAgICB4ZmFpbCAkdGVzdApAQCAtMTQsMTAgKzE0LDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cAogKyAg ICB9CiAgfQogIAotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLWZvby5TCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYtZm9vLlMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12 bGEtdHlwZWRlZi1mb28uUwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MDk5OTg1MyArMDEwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10 eXBlZGVmLWZvby5TCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCww ICsxLDQ1NSBAQAogKwkuZmlsZQkieDg2XzY0LXZsYS10eXBlZGVmLmMiCiArCS5zZWN0aW9uCS5k ZWJ1Z19hYmJyZXYsIiIsQHByb2diaXRzCkBAIC00NzQsMTAgKzQ3NCwxMCBAQCBJbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVk ZWYtZm9vLlMKICsJLnN0cmluZwkiR05VIEMgNC4zLjIgMjAwODExMDUgKFJlZCBIYXQgNC4zLjIt NykiCiArCS5pZGVudAkiR0NDOiAoR05VKSA0LjMuMiAyMDA4MTEwNSAoUmVkIEhhdCA0LjMuMi03 KSIKICsJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLEBwcm9nYml0cwotSW5kZXg6IGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVm LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4 Nl82NC12bGEtdHlwZWRlZi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuYwkyMDE2LTAyLTE1IDIzOjM1OjU2 LjI5MDk5OTg1MyArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmFyY2gveDg2XzY0LXZsYS10eXBlZGVmLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzcxNzI4 OTcgKzAyMDAKIEBAIC0wLDAgKzEsNDUgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtNTI0LDEwICs1MjQsMTAgQEAgSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gveDg2XzY0LXZsYS10eXBl ZGVmLmMKICt9CiArCiArI2VuZGlmCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhwCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXR5cGVkZWYuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94 ODZfNjQtdmxhLXR5cGVkZWYuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkwOTk5ODUzICswMTAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQt dmxhLXR5cGVkZWYuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAt MCwwICsxLDY0IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsKQEAgLTU5MywxMCArNTkzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtdHlwZWRlZi5leHAKICtnZGJfdGVz dCAid2hhdGlzIGFycmF5IiAidHlwZSA9IGFycmF5X3QiICJzZWNvbmQ6IHdoYXRpcyBhcnJheSIK ICsKICtnZGJfdGVzdCAicHR5cGUgYXJyYXkiICJ0eXBlID0gY2hhciBcXFxbNzhcXFxdIiAic2Vj b25kOiBwdHlwZSBhcnJheSIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45 MC4yMDE2MDIxMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwkyMDE2LTAy LTE1IDIzOjMzOjI5LjgzMDk1OTk3MiArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MDk5 OTg1MyArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9hcnJheWlkeC5jCTIwMTYtMDctMTYgMDM6NDg6NTkuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlkeC5j CTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMTcsNiArMTcsMTMgQEAK ICAKICBpbnQgYXJyYXlbXSA9IHsxLCAyLCAzLCA0fTsKQEAgLTYxMSwxMCArNjExLDEwIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4 LmMKICBpbnQKICBtYWluICh2b2lkKQogIHsKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5 aWR4LmV4cAkyMDE2LTAyLTE1IDIzOjMzOjI5LjgzMDk1OTk3MiArMDEwMAotKysrIGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDIt MTUgMjM6MzU6NTYuMjkxOTk5ODYwICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2FycmF5aWR4LmV4cAkyMDE2LTA3LTE2IDAzOjQ4OjU5 LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvYXJyYXlpZHguZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAw CiBAQCAtNDksNCArNDksMTIgQEAKICAgICAgICAgICAiXFx7XFxcWzBcXFxdID0gMSwgXFxcWzFc XFxdID0gMiwgXFxcWzJcXFxdID0gMywgXFxcWzNcXFxdID0gNFxcfSIgXAogICAgICAgICAgICJQ cmludCBhcnJheSB3aXRoIGFycmF5LWluZGV4ZXMgb24iCkBAIC02MjksMTAgKzYyOSwxMCBAQCBJ bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9hcnJheWlk eC5leHAKICsJdW5zdXBwb3J0ZWQgIiR0ZXN0IChubyBHQ0MpIgogKyAgICB9CiArfQotSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFy LWZpZWxkLWFkZHJlc3MuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxkLWFkZHJlc3MuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxk LWFkZHJlc3MuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZpZWxk LWFkZHJlc3MuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCAr MSwyMCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdn ZXIuCiArCkBAIC02NTQsMTAgKzY1NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5jCiArc3Ry dWN0IHsKICsgIGludCBmaWVsZDsKICt9IHN0YXRpY3N0cnVjdCA9IHsgMSB9OwotSW5kZXg6IGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZp ZWxkLWFkZHJlc3MuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYmFzZS9pbnRlcm5hbC12YXItZmllbGQtYWRkcmVzcy5leHAKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVs ZC1hZGRyZXNzLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvaW50ZXJuYWwtdmFyLWZp ZWxkLWFkZHJlc3MuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAt MCwwICsxLDI2IEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsKQEAgLTY4NSwxMCArNjg1LDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ludGVybmFsLXZhci1maWVsZC1hZGRyZXNzLmV4CiAr CiArZ2RiX3Rlc3Qge3NldCAkdmFyc3RydWN0ID0gc3RhdGljc3RydWN0fQogK2dkYl90ZXN0IHtw ICR2YXJzdHJ1Y3QuZmllbGR9ICIgPSAxIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1mcmFtZS5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu MTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtZnJhbWUuYwkyMDE2LTAy LTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43Mzcx NzI4OTcgKzAyMDAKIEBAIC0wLDAgKzEsMzEgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQg b2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtNzIxLDEwICs3MjEsMTAgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmMK ICsgIGYgKHMpOwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAorSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4 cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5MTk5OTg2MCArMDEwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLWZyYW1lLmV4cAkyMDE2LTA3LTE2IDE2 OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwzOCBAQAogKyMgQ29weXJpZ2h0IDIw MTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtNzY0LDEwICs3NjQsMTAg QEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvdmxh LWZyYW1lLmV4cAogK30KICsKICtnZGJfdGVzdCAiYnQgZnVsbCIgIlxyXG4gK3MgPSBcIlhcXFxc MDAwXCJcclxuLioiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS92bGEtb3ZlcmZsb3cuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS1vdmVyZmxvdy5jCTIwMTYtMDItMTUg MjM6MzU6NTYuMjkxOTk5ODYwICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjczNzE3 Mjg5NyArMDIwMAogQEAgLTAsMCArMSwzMCBAQAogKy8qIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBv ZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC03OTksMTAgKzc5OSwxMCBAQCBJbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEtb3ZlcmZsb3cu YwogKwogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93 LmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mjk5OTg2NyArMDEwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLW92ZXJmbG93LmV4cAkyMDE2LTA3 LTE2IDE2OjUzOjMzLjczNzE3Mjg5NyArMDIwMAogQEAgLTAsMCArMSwxMDkgQEAKICsjIENvcHly aWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtOTEzLDEwICs5 MTMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvdmxhLW92ZXJmbG93LmV4cAogK2dkYl90ZXN0ICJidCIgImluIFxbXiBcXSphYm9ydCBcXCgu KiBpbiBtYWluIFxcKC4qIiAiQmFja3RyYWNlIGFmdGVyIGFib3J0KCkiCiArCiArdmVyYm9zZSAt bG9nICJrYl9mb3VuZCBpbiBidCBhZnRlciBhYm9ydCgpID0gW2V4cHIgW21lbW9yeV92X3BhZ2Vz X2dldF0gKiAkcGFnZXNpemUgLyAxMDI0XSIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92bGEuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmxhLmMJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTI5 OTk4NjcgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3ZsYS5jCTIwMTYtMDctMTYgMTY6NTM6MzMuNzM3MTcyODk3ICswMjAwCiBAQCAtMCwwICsx LDU1IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTk3MywxMCArOTczLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5jCiArICBmb28gKDc4KTsKICsgIHJldHVybiAwOwog K30KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zs YS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3ZsYS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3ZsYS5leHAJMjAxNi0wMi0xNSAyMzozNTo1Ni4yOTI5OTk4NjcgKzAxMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3ZsYS5leHAJMjAxNi0w Ny0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEsNjIgQEAKICsjIENvcHly aWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTA0MCwxMCAr MTA0MCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS92bGEuZXhwCiArZ2RiX3Rlc3QgInAgdGVtcDEiICIgPSAnMScgPHJlcGVhdHMgNzggdGlt ZXM+IiAic2Vjb25kOiBwcmludCB0ZW1wMSIKICtnZGJfdGVzdCAicCB0ZW1wMiIgIiA9ICcyJyA8 cmVwZWF0cyA3OCB0aW1lcz4iICJzZWNvbmQ6IHByaW50IHRlbXAyIgogK2dkYl90ZXN0ICJwIHRl bXAzIiAiID0gJzMnIDxyZXBlYXRzIDQ4IHRpbWVzPiIgInNlY29uZDogcHJpbnQgdGVtcDMiCi1J bmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1i b3VuZC1sb2NsaXN0LlMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuUwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCTIwMTYt MDItMTUgMjM6MzU6NTYuMjkyOTk5ODY3ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LlMJMjAxNi0wNy0xNiAx Njo1MzozMy43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEsMjQ2IEBACiArLyogVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTEyOTEsMTAgKzEy OTEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItYm91bmQtbG9jbGlzdC5TCiArCS5zdHJpbmcJCSJjaGFyIgogKy5MdWludF9zdHI6 CiArCS5zdHJpbmcJCSJ1bnNpZ25lZCBpbnQiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAorSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItYm91bmQtbG9j bGlzdC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3QuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkyOTk5 ODY3ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1ib3VuZC1sb2NsaXN0LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiAr MDIwMAogQEAgLTAsMCArMSw2NiBAQAogKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xMzYyLDEwICsxMzYyLDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWJvdW5kLWxvY2xpc3Qu ZXhwCiArCiArIyBUaGUgcmVnaXN0ZXIgY29udGFpbnMgdW5wcmVkaWN0YWJsZSB2YWx1ZSAtIHRo ZSBhcnJheSBzaXplLgogK2dkYl90ZXN0ICJwdHlwZSByZWdfc3RyaW5nIiB7dHlwZSA9IGNoYXIg XFstP1swLTldK1xdfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9k ZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwkyMDE2 LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RyaXBwZWQuYwkyMDE2LTA3LTE2IDE2OjUz OjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSw0MiBAQAogKy8qIFRoaXMgdGVzdGNhc2Ug aXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC0xNDA5LDEwICsxNDA5LDEw IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv ZHcyLXN0cmlwcGVkLmMKICsgIGZ1bmMxICgxLCAyKTsKICsgIHJldHVybiAwOwogK30KLUluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlw cGVkLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3RyaXBwZWQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEt MDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJpcHBlZC5leHAJMjAxNi0wMi0xNSAyMzozNTo1 Ni4yOTM5OTk4NzQgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3Mjkw NiArMDIwMAogQEAgLTAsMCArMSw3OSBAQAogKyMgQ29weXJpZ2h0IDIwMDYgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNDkzLDEwICsxNDkzLDEwIEBAIEluZGV4OiBnZGIt Ny4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cmlwcGVkLmV4 cAogK2dkYl90ZXN0ICJzdGVwIiBcCiArICAgICAgICAgImZ1bmMuKiBcXCguKlxcKSBhdCAuKiIg XAogKyAgICAgICAgICJzdGVwIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLlMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVj dC1tZW1iZXItZGF0YS1sb2NhdGlvbi5TCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYXRpb24u UwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxv Y2F0aW9uLlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEs ODMgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RCLCB0aGUgR05VIGRlYnVnZ2Vy LgogKwpAQCAtMTU4MSwxMCArMTU4MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdHJ1Y3QtbWVtYmVyLWRhdGEtbG9jYQogKwog KwkuYnl0ZQkJMHgwCQkJLyogVGVybWluYXRvciAqLwogKwkuYnl0ZQkJMHgwCQkJLyogVGVybWlu YXRvciAqLwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3 YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAorSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1k YXRhLWxvY2F0aW9uLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0 c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9uLmV4cAkyMDE2 LTAyLTE1IDIzOjM1OjU2LjI5Mzk5OTg3NCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3RydWN0LW1lbWJlci1kYXRhLWxvY2F0aW9u LmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAsMCArMSwzNyBA QAogKyMgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBA IC0xNjIzLDEwICsxNjIzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVz dHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN0cnVjdC1tZW1iZXItZGF0YS1sb2NhCiArY2xlYW5fcmVz dGFydCAkYmluZmlsZQogKwogK2dkYl90ZXN0ICJwdHlwZSBzdHJ1Y3Qgc29tZV9zdHJ1Y3QiICJ0 eXBlID0gc3RydWN0IHNvbWVfc3RydWN0IHtcW1xyXG4gXHRcXSp2b2lkIGZpZWxkO1xbXHJcbiBc dFxdKn0iCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdh cmYyL2R3Mi1zdWJyYW5nZS1uby10eXBlLlMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuUwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFu Z2Utbm8tdHlwZS5TCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICswMTAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5nZS1u by10eXBlLlMJMjAxNi0wNy0xNiAxNjo1MzozMy43MzgxNzI5MDYgKzAyMDAKIEBAIC0wLDAgKzEs MTIxIEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dl ci4KICsKQEAgLTE3NDksMTAgKzE3NDksMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5TCiArCS5ieXRl CQkweDAJCQkvKiBUZXJtaW5hdG9yICovCiArCiArCS5ieXRlCQkweDAJCQkvKiBUZXJtaW5hdG9y ICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1zdWJyYW5nZS1uby10eXBlLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzItc3VicmFuZ2Utbm8tdHlwZS5leHAKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJh bmdlLW5vLXR5cGUuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjkzOTk5ODc0ICswMTAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1zdWJyYW5n ZS1uby10eXBlLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczODE3MjkwNiArMDIwMAogQEAgLTAs MCArMSwzOSBAQAogKyMgQ29weXJpZ2h0IDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArCkBAIC0xNzkzLDEwICsxNzkzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLXN1YnJhbmdlLW5vLXR5cGUuZXhwCiArCiAr Z2RiX3Rlc3QgInB0eXBlIG5vdHlwZV9zdHJpbmciIHt0eXBlID0gY2hhciBcWzEyOVxdfQogK2dk Yl90ZXN0ICJwIG5vdHlwZV9zdHJpbmciICIgPSAneCcgPHJlcGVhdHMgMTI5IHRpbWVzPiIKLUlu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJm LXN0cmlkZS5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIx MS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAJMjAxNi0wMi0xNSAy MzozNTo1Ni4yOTQ5OTk4ODEgKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL2R3YXJmLXN0cmlkZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43 MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsNDIgQEAKICsjIENvcHlyaWdodCAyMDA5IEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTg0MCwxMCArMTg0MCwxMCBAQCBJbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1z dHJpZGUuZXhwCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImJyZWFrLWhlcmUiICIuKmJy ZWFrLWhlcmUuKiIKICtnZGJfdGVzdCAicCBjNDBwdCgxKSIgIiA9ICcwLWhlbGxvLioiCiArZ2Ri X3Rlc3QgInAgYzQwcHQoMikiICIgPSAnMS1oZWxsby4qIgotSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAorSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHdhcmYtc3Ry aWRlLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAw MDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vZHdhcmYtc3RyaWRlLmY5MAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5NDk5OTg4MSAr MDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v ZHdhcmYtc3RyaWRlLmY5MAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAg LTAsMCArMSw0MCBAQAogKyEgQ29weXJpZ2h0IDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArIQpAQCAtMTg4NSwxMCArMTg4NSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9kd2FyZi1zdHJpZGUuZjkwCiArICBwcmlu dCAqLCBjNDBwdCAgISBicmVhay1oZXJlCiArCiArZW5kIHByb2dyYW0gcmVwcm8KLUluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhw CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9k eW5hbWljLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAw LjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vZHluYW1pYy5leHAJMjAxNi0wMi0xNSAyMzozNjozOS4zNTgzMDU2MzUgKzAx MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5 bmFtaWMuZXhwCTIwMTYtMDctMTYgMTc6MTk6MjQuMjU1MjAyMDEzICswMjAwCiBAQCAtMCwwICsx LDE1MSBAQAogKyMgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CiArCkBAIC0xOTM1LDcgKzE5MzUsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmV4cAogK2dkYl9icmVha3BvaW50IFtnZGJf Z2V0X2xpbmVfbnVtYmVyICJ2YXJ4LWluaXQiXQogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJ2YXJ4LWluaXQiCiArZ2RiX3Rlc3QgInAgdmFyeCIgIlxcJFxbMC05XF0qID0gPG5vdCBhbGxv Y2F0ZWQ+IiAicCB2YXJ4IHVuYWxsb2NhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJ4IiAidHlw ZSA9IDxub3QgYWxsb2NhdGVkPiIgInB0eXBlIHZhcnggdW5hbGxvY2F0ZWQiCisrZ2RiX3Rlc3Qg InB0eXBlIHZhcngiIHt0eXBlID0gcmVhbFwoa2luZD00XCkgXCg6LDosOlwpfSAicHR5cGUgdmFy eCB1bmFsbG9jYXRlZCIKICtnZGJfdGVzdCAicCB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3Rv ciBlbGVtZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0gInAgdmFyeCgxLDUsMTcpIHVuYWxs b2NhdGVkIgogK2dkYl90ZXN0ICJwIHZhcngoMSw1LDE3KT0xIiB7bm8gc3VjaCB2ZWN0b3IgZWxl bWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KT0xIHVuYWxsb2Nh dGVkIgogK2dkYl90ZXN0ICJwdHlwZSB2YXJ4KDEsNSwxNykiIHtubyBzdWNoIHZlY3RvciBlbGVt ZW50IFwodmVjdG9yIG5vdCBhbGxvY2F0ZWRcKX0gInB0eXBlIHZhcngoMSw1LDE3KSB1bmFsbG9j YXRlZCIKQEAgLTE5NTQsNyArMTk1NCw3IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX3Rlc3QgInAgdmFyeCgy LCA2LCAxOCkiICJcXCRcWzAtOVxdKiA9IDgiCiArZ2RiX3Rlc3QgInAgdmFyeCg2LCAxNSwgMjgp IiAiXFwkXFswLTlcXSogPSA5IgogK2dkYl90ZXN0ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9IDxu b3QgYXNzb2NpYXRlZD4iICJwIHZhcnYgdW5hc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJwdHlwZSB2 YXJ2IiAidHlwZSA9IDxub3QgYXNzb2NpYXRlZD4iICJwdHlwZSB2YXJ2IHVuYXNzb2NpYXRlZCIK KytnZGJfdGVzdCAicHR5cGUgdmFydiIge3R5cGUgPSByZWFsXChraW5kPTRcKSBcKDosOiw6XCl9 ICJwdHlwZSB2YXJ2IHVuYXNzb2NpYXRlZCIKICsKICtzZXQgdGVzdCAib3V0cHV0IHZhcngiCiAr Z2RiX3Rlc3RfbXVsdGlwbGUgJHRlc3QgJHRlc3QgewpAQCAtMTk4Miw3ICsxOTgyLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1p Yy5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFydi1kZWFzc29jaWF0ZWQiCiAr IyBUaGUgbGF0dGVyIG9uZSBpcyBmb3IgdGhlIEludGVsIEZvcnRyYW4gQ29tcGlsZXIgMTAuMS4w MDggcG9pbnRlciB0eXBlLgogK2dkYl90ZXN0ICJwIHZhcnYiICJcXCRcWzAtOVxdKiA9ICg8bm90 IGFzc29jaWF0ZWQ+fC4qKENhbm5vdCBhY2Nlc3MgaXR8VW5hYmxlIHRvIGFjY2VzcyB0aGUgb2Jq ZWN0KSBiZWNhdXNlIHRoZSBvYmplY3QgaXMgbm90IGFzc29jaWF0ZWQuKSIgInAgdmFydiBkZWFz c29jaWF0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcnYiICJ0eXBlID0gKDxub3QgYXNzb2NpYXRl ZD58LiooQ2Fubm90IGFjY2VzcyBpdHxVbmFibGUgdG8gYWNjZXNzIHRoZSBvYmplY3QpIGJlY2F1 c2UgdGhlIG9iamVjdCBpcyBub3QgYXNzb2NpYXRlZC4pIiAicHR5cGUgdmFydiBkZWFzc29jaWF0 ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZhcnYiIHt0eXBlID0gcmVhbFwoa2luZD00XCkgXCg6LDos OlwpfSAicHR5cGUgdmFydiBkZWFzc29jaWF0ZWQiCiArZ2RiX3Rlc3QgInAgbCIgIlxcJFxbMC05 XF0qID0gXFwuRkFMU0VcXC4iICJwIGwgaWYgdmFydiBkZWFzc29jaWF0ZWQiCiArZ2RiX3Rlc3Qg InAgdmFydigxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYXNz b2NpYXRlZFwpfQogK2dkYl90ZXN0ICJwdHlwZSB2YXJ2KDEsNSwxNykiIHtubyBzdWNoIHZlY3Rv ciBlbGVtZW50IFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkXCl9CkBAIC0xOTkwLDcgKzE5OTAsNyBA QCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9k eW5hbWljLmV4cAogK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJ4LWRl YWxsb2NhdGVkIl0KICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyeC1kZWFsbG9jYXRl ZCIKICtnZGJfdGVzdCAicCB2YXJ4IiAiXFwkXFswLTlcXSogPSA8bm90IGFsbG9jYXRlZD4iICJw IHZhcnggZGVhbGxvY2F0ZWQiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcngiICJ0eXBlID0gPG5vdCBh bGxvY2F0ZWQ+IiAicHR5cGUgdmFyeCBkZWFsbG9jYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmFy eCIge3R5cGUgPSByZWFsXChraW5kPTRcKSBcKDosOiw6XCl9ICJwdHlwZSB2YXJ4IGRlYWxsb2Nh dGVkIgogK2dkYl90ZXN0ICJwIGwiICJcXCRcWzAtOVxdKiA9IFxcLkZBTFNFXFwuIiAicCBsIGlm IHZhcnggZGVhbGxvY2F0ZWQiCiArZ2RiX3Rlc3QgInAgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2 ZWN0b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwIHZhcngoMSw1LDE3KSBk ZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHR5cGUgdmFyeCgxLDUsMTcpIiB7bm8gc3VjaCB2ZWN0 b3IgZWxlbWVudCBcKHZlY3RvciBub3QgYWxsb2NhdGVkXCl9ICJwdHlwZSB2YXJ4KDEsNSwxNykg ZGVhbGxvY2F0ZWQiCkBAIC0yMDQxLDEwICsyMDQxLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMuZXhwCiArZ2RiX3Rlc3Qg InAgdmFydCgzLDgpIiAiXFwkXFswLTlcXSogPSA5IgogKyMgbWFwcyB0byBmb286OnZhcnkoMSwz KQogK2dkYl90ZXN0ICJwIHZhcnQoMiw5KSIgIlxcJFxbMC05XF0qID0gMTAiCi1JbmRleDogZ2Ri LTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHlu YW1pYy5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL2R5bmFtaWMuZjkwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk0OTk5ODgxICswMTAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5h bWljLmY5MAkyMDE2LTA3LTE2IDE2OjUzOjMzLjczOTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw5 OCBAQAogKyEgQ29weXJpZ2h0IDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAr IQpAQCAtMjE0NCwxMCArMjE0NCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLmY5MAogKyAgaWYgKHggKDEsIDEpIC5uZS4g OCAub3IuIHggKDIsIDIpIC5uZS4gOSAub3IuIHggKDEsIDIpIC5uZS4gNCkgY2FsbCBhYm9ydAog KyAgaWYgKHggKDMsIDEpIC5uZS4gMTApIGNhbGwgYWJvcnQKICtlbmQKLUluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5l eHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3N0cmluZy5leHAJMjAxNi0wMi0xNSAyMzozNjozOS4zNTkzMDU2NDIgKzAxMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5leHAJ MjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsNTkgQEAKICsj IENvcHlyaWdodCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMjIw OCwxMCArMjIwOCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9zdHJpbmcuZXhwCiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZh ci1maW5pc2giCiArZ2RiX3Rlc3QgInAgZSIgIlxcJFxbMC05XF0qID0gJ2UgICAnIiAicCBlIHJl LXNldCIKICtnZGJfdGVzdCAicCBmIiAiXFwkXFswLTlcXSogPSBcXChcXCggJ2YgICAnLCAnZiAg ICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnXFwpIFxcKCAnZjIgICcs ICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICdcXCkgXFwoICdm ICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJywgJ2YgICAnLCAnZiAgICcsICdmICAgJ1xcKSBc XCkiICJwICpmIHJlLXNldCIKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAJMjAxNi0wMi0x NSAyMzozNTo1Ni4yOTU5OTk4ODggKzAxMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N0cmluZy5mOTAJMjAxNi0wNy0xNiAxNjo1MzozMy43Mzkx NzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsMzcgQEAKICshIENvcHlyaWdodCAyMDA4IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTIyNTAsMTAgKzIyNTAsMTAgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3RyaW5nLmY5 MAogKyAgaCA9ICdoJwogKyAgY2FsbCBmb28gKGcsIGgpCiArZW5kCi1JbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdl LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3VicmFuZ2UuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5n ZS5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsNzIg QEAKICsjIENvcHlyaWdodCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpA QCAtMjMyNywxMCArMjMyNywxMCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAKICtnZGJfdW5sb2FkCiArc2V0dXBfa2Zh aWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgogK2dkYl90ZXN0IHtwICRhICgzLCAyOjIp fSB7ID0gXCgyM1wpfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5mOTAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJhbmdlLmY5MAkyMDE2LTAy LTE1IDIzOjM1OjU2LjI5NTk5OTg4OCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vc3VicmFuZ2UuZjkwCTIwMTYtMDctMTYgMTY6NTM6MzMu NzM5MTcyOTE0ICswMjAwCiBAQCAtMCwwICsxLDI4IEBACiArISBDb3B5cmlnaHQgMjAxMSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMzYwLDEwICsyMzYwLDEwIEBAIElu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3N1YnJh bmdlLmY5MAogKyAgcHRyID0+IGEKICsgIHdyaXRlICgqLCopIGEgICAgICAgICAgICAgICAgICEg YnJlYWstc3RhdGljCiArZW5kCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysr IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItc3RhbGUt dHlwZS5jCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmMJMjAx Ni0wNy0xNiAxNjo1MzozMy43MzkxNzI5MTQgKzAyMDAKIEBAIC0wLDAgKzEsMjYgQEAKICsvKiBD b3B5cmlnaHQgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIzOTEs MTAgKzIzOTEsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUv Z2RiLm1pL21pMi12YXItc3RhbGUtdHlwZS5jCiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10 eXBlLmV4cAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm1p L21pMi12YXItc3RhbGUtdHlwZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvdGVzdHN1aXRlL2dkYi5taS9taTItdmFyLXN0YWxlLXR5cGUuZXhwCTIwMTYtMDItMTUgMjM6 MzU6NTYuMjk1OTk5ODg4ICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3Rz dWl0ZS9nZGIubWkvbWkyLXZhci1zdGFsZS10eXBlLmV4cAkyMDE2LTA3LTE2IDE2OjUzOjMzLjcz OTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSw1NyBAQAogKyMgQ29weXJpZ2h0IDIwMTEgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIwpAQCAtMjQ1MywxMCArMjQ1MywxMCBAQCBJbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkyLXZhci1zdGFs ZS10eXBlLmV4cAogK21pX2NyZWF0ZV92YXJvYmogInZsYSIgInZsYSIgImNyZWF0ZSBsb2NhbCB2 YXJpYWJsZSB2bGEiCiArCiArbWlfZ2RiX3Rlc3QgIi12YXItdXBkYXRlICoiICJcXF5kb25lLGNo YW5nZWxpc3Q9LioiICItdmFyLXVwZGF0ZSAqIgotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJl Z2lzdGVyLWZ1bmMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3Vp dGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwkyMDE2LTAyLTE1IDIzOjM1OjU2 LjI5NTk5OTg4OCArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUv Z2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLWZ1bmMuYwkyMDE2LTA3LTE2IDE2OjUzOjMzLjcz OTE3MjkxNCArMDIwMAogQEAgLTAsMCArMSwyMiBAQAogKy8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTI0ODAsMTAgKzI0ODAsMTAgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJl Z2lzdGVyLWZ1bmMuYwogK3sKICsgIHJldHVybiBhcnJbMF07CiArfQotSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXkt ZnJvbS1yZWdpc3Rlci5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuYwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5 Njk5OTg5NSArMDEwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2Ri Lm9wdC9hcnJheS1mcm9tLXJlZ2lzdGVyLmMJMjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIg KzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIGZpbGUgaXMgcGFydCBvZiBHREIsIHRo ZSBHTlUgZGVidWdnZXIuCiArCkBAIC0yNTEzLDEwICsyNTEzLDEwIEBAIEluZGV4OiBnZGItNy4x MC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5j CiArCiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rl c3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhwCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZyb20tcmVnaXN0ZXIuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2Fy cmF5LWZyb20tcmVnaXN0ZXIuZXhwCTIwMTYtMDItMTUgMjM6MzU6NTYuMjk2OTk5ODk1ICswMTAw CisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIub3B0L2FycmF5LWZy b20tcmVnaXN0ZXIuZXhwCTIwMTYtMDctMTYgMTY6NTM6MzMuNzQwMTcyOTIyICswMjAwCiBAQCAt MCwwICsxLDMzIEBACiArIyBDb3B5cmlnaHQgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICsjCkBAIC0yNTUxLDEwICsyNTUxLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5vcHQvYXJyYXktZnJvbS1yZWdpc3Rlci5leHAKICsjIFNl ZW4gcmVncmVzc2lvbjoKICsjIEFkZHJlc3MgcmVxdWVzdGVkIGZvciBpZGVudGlmaWVyICJhcnIi IHdoaWNoIGlzIGluIHJlZ2lzdGVyICRyZGkKICtnZGJfdGVzdCAicCBhcnJcWzBcXSIgIlxcJFxb MC05XF0rID0gNDIiCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9n ZGIucGFzY2FsL2FycmF5cy5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVz dHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMuZXhwCTIwMTYtMDItMTUgMjM6MzY6 MzkuMzU5MzA1NjQyICswMTAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0 ZS9nZGIucGFzY2FsL2FycmF5cy5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDAxNzI5MjIgKzAy MDAKIEBAIC0wLDAgKzEsMTA0IEBACiArIyBDb3B5cmlnaHQgMjAwOCwgMjAwOSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCkBAIC0yNjYwLDEwICsyNjYwLDEwIEBAIEluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLmV4cAog K30KICtnZGJfdGVzdCAicHJpbnQgRHluQXJyQ2hhciIgIi4qID0gJ2FiY2RlZmdoaWprbG0nIiAi UHJpbnQgZHluYW1pYyBhcnJheSBvZiBjaGFyIgogKwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYw MjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL3Rlc3RzdWl0ZS9nZGIucGFzY2FsL2FycmF5cy5wYXMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5wYXNjYWwvYXJyYXlzLnBh cwkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Njk5OTg5NSArMDEwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi90ZXN0c3VpdGUvZ2RiLnBhc2NhbC9hcnJheXMucGFzCTIwMTYtMDctMTYgMTY6 NTM6MzMuNzQwMTcyOTIyICswMjAwCiBAQCAtMCwwICsxLDgyIEBACiArewogKyBDb3B5cmlnaHQg MjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KQEAgLTI3NDcsMTAgKzI3 NDcsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvZ2RiLnBh c2NhbC9hcnJheXMucGFzCiArICBzIDo9ICd0ZXN0JyMwJ3N0cmluZyc7CiArICB3cml0ZWxuKHMp OyB7IHNldCBicmVha3BvaW50IDIgaGVyZSB9CiArZW5kLgotSW5kZXg6IGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu OTAuMjAxNjAyMTEub3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTYtMDItMTUgMjM6 MzU6NTUuMzI2OTkzMDA4ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3Rz dWl0ZS9saWIvZ2RiLmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5Nzk5OTkwMyArMDEwMAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDE2 LTA3LTE2IDE2OjUzOjMzLjA2MzE2NzMxNSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDExNzI5MzAg KzAyMDAKIEBAIC0xNzMsNiArMTczLDExIEBACiAgCSAgICBzZW5kX2dkYiAieVxuIgogIAkgICAg ZXhwX2NvbnRpbnVlCkBAIC0yNzYzLDEwICsyNzYzLDEwIEBAIEluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgCS1yZSAiRGlzY2FyZCBzeW1ib2wg dGFibGUgZnJvbSAuKnkgb3Igbi4qJCIgewogIAkgICAgc2VuZF9nZGIgInlcbiIKICAJICAgIGV4 cF9jb250aW51ZQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90ZXN0c3VpdGUvbGli L3Bhc2NhbC5leHAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGVzdHN1aXRlL2xp Yi9wYXNjYWwuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9n ZGIvdGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCTIwMTYtMDItMTUgMjM6MzM6MjkuODMwOTU5OTcy ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2Fs LmV4cAkyMDE2LTAyLTE1IDIzOjM1OjU2LjI5ODk5OTkxMCArMDEwMAorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cAkyMDE2LTA3LTE2IDAz OjQ4OjU5LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90ZXN0 c3VpdGUvbGliL3Bhc2NhbC5leHAJMjAxNi0wNy0xNiAxNjo1MzozMy43NDExNzI5MzAgKzAyMDAK IEBAIC0zNyw2ICszNyw5IEBACiAgICAgIGdsb2JhbCBwYXNjYWxfY29tcGlsZXJfaXNfZnBjCiAg ICAgIGdsb2JhbCBncGNfY29tcGlsZXIKCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLnBhdGNoIGIv Z2RiLWFyY2hlci5wYXRjaAppbmRleCA2MTdjYzBmLi44ZDkyNjVmIDEwMDY0NAotLS0gYS9nZGIt YXJjaGVyLnBhdGNoCisrKyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTIsNyArMiw3IEBAIGh0dHA6 Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lraS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2Fy ZS5vcmcvZ2RiL3dpa2kvQXJjaGVyQnJhbmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1j b21taXQgZjBlZTc4YzVjY2VmZTM4OGE2NDI3MzM1M2VjZDVjOTlkYWU2MjU1OAorY29tbWl0IGNm ZWU2NGVlODY5YTZhNmU0YWIwYjY0YWYxNDlkNGNmNTk1MTdkODAKIAogdHJvbWV5L3B5dGhvbgog CkBAIC0xNiwxMCArMTYsMTAgQEAgaW5kZXggMDAwMDAwMC4uMTczYjhlYQogK1RoaXMgYnJhbmNo IG9yaWdpbmFsbHkgaGVsZCB0aGUgUHl0aG9uIGNvZGUgZm9yIGdkYi4gIEl0IHN0aWxsIGV4aXN0 cwogK2JlY2F1c2UgYSBzbWFsbCBhbW91bnQgb2YgY29kZSBoZXJlIGhhcyBub3QgeWV0IGJlZW4g bWVyZ2VkIHVwc3RyZWFtLgogZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtl ZmlsZS5pbgotaW5kZXggOTUxMDRlZi4uYTliMTk4YSAxMDA2NDQKK2luZGV4IDVhZjYxMDMuLjlj NjljYjAgMTAwNjQ0CiAtLS0gYS9nZGIvTWFrZWZpbGUuaW4KICsrKyBiL2dkYi9NYWtlZmlsZS5p bgotQEAgLTE1MzQsNiArMTUzNCwxMiBAQCBzdGFtcC1oOiAkKHNyY2RpcikvY29uZmlnLmluIGNv bmZpZy5zdGF0dXMKK0BAIC0xNTUzLDYgKzE1NTMsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2Nv bmZpZy5pbiBjb25maWcuc3RhdHVzCiAgCSAgQ09ORklHX0xJTktTPSBcCiAgCSAgJChTSEVMTCkg Y29uZmlnLnN0YXR1cwogIApAQCAtMzMsMTAgKzMzLDEwIEBAIGluZGV4IDk1MTA0ZWYuLmE5YjE5 OGEgMTAwNjQ0CiAgCSQoU0hFTEwpIGNvbmZpZy5zdGF0dXMgLS1yZWNoZWNrCiAgCiBkaWZmIC0t Z2l0IGEvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluIGIvZ2RiL2RhdGEtZGlyZWN0b3J5 L01ha2VmaWxlLmluCi1pbmRleCAzMGNmZDE3Li5lOTc3YjMwIDEwMDY0NAoraW5kZXggM2YyMzUx Ni4uYjVkNjM5MCAxMDA2NDQKIC0tLSBhL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgog KysrIGIvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCi1AQCAtNjUsNyArNjUsMTAgQEAg UFlUSE9OX0ZJTEVfTElTVCA9IFwKK0BAIC02Niw3ICs2NiwxMCBAQCBQWVRIT05fRklMRV9MSVNU ID0gXAogIAlnZGIvdW53aW5kZXIucHkgXAogIAlnZGIvcHJvbXB0LnB5IFwKICAJZ2RiL3htZXRo b2QucHkgXApAQCAtNDcsOCArNDcsOCBAQCBpbmRleCAzMGNmZDE3Li5lOTc3YjMwIDEwMDY0NAog IAlnZGIvY29tbWFuZC94bWV0aG9kcy5weSBcCiAgCWdkYi9jb21tYW5kL2ZyYW1lX2ZpbHRlcnMu cHkgXAogIAlnZGIvY29tbWFuZC91bndpbmRlcnMucHkgXAotQEAgLTc2LDYgKzc5LDggQEAgUFlU SE9OX0ZJTEVfTElTVCA9IFwKLSAJZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5IFwKK0BAIC03OCw2 ICs4MSw4IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCisgCWdkYi9mdW5jdGlvbi9hc19zdHJpbmcu cHkgXAogIAlnZGIvZnVuY3Rpb24vY2FsbGVyX2lzLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL3N0cmZu cy5weSBcCiArCWdkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkgXApAQCAtNTcsNyArNTcsNyBAQCBp bmRleCAzMGNmZDE3Li5lOTc3YjMwIDEwMDY0NAogIAlnZGIvcHJpbnRlci9ib3VuZF9yZWdpc3Rl cnMucHkKICAKIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIu dGV4aW5mbwotaW5kZXggMTY2NTM3Mi4uYzRjYWZmYyAxMDA2NDQKK2luZGV4IGY1ZGRlNjEuLjFk OTJiZDYgMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dk Yi50ZXhpbmZvCiBAQCAtMTIyNSw2ICsxMjI1LDE2IEBAIGZvciByZW1vdGUgZGVidWdnaW5nLgpA QCAtNzgsNyArNzgsNyBAQCBpbmRleCAxNjY1MzcyLi5jNGNhZmZjIDEwMDY0NAogIEBpdGVtIC10 dWkKICBAY2luZGV4IEBjb2Rley0tdHVpfQogZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRl eGkgYi9nZGIvZG9jL3B5dGhvbi50ZXhpCi1pbmRleCA1N2VjMjJlLi4xM2JlYjA1IDEwMDY0NAor aW5kZXggYTE3ZTM3ZC4uYzU2MDY4YiAxMDA2NDQKIC0tLSBhL2dkYi9kb2MvcHl0aG9uLnRleGkK ICsrKyBiL2dkYi9kb2MvcHl0aG9uLnRleGkKIEBAIC04OCw4ICs4OCw2IEBAIGNvbnRhaW5pbmcg QGNvZGV7ZW5kfS4gIEZvciBleGFtcGxlOgpAQCAtMTExLDcgKzExMSw3IEBAIGluZGV4IDA1YTM4 YjIuLjk4MDFmZGYgMTAwNjQ0CiAgICBzZXQgdmFyaWFibGUgJGdkYl9pbml0X2RvbmUgPSAxCiAg CiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKLWluZGV4IGFlY2Q2MGEuLmQw Zjc4MzQgMTAwNjQ0CitpbmRleCA1NDc3Mzc5Li5iN2U0MTNmIDEwMDY0NAogLS0tIGEvZ2RiL21h aW4uYwogKysrIGIvZ2RiL21haW4uYwogQEAgLTMzLDYgKzMzLDcgQEAKQEAgLTEyMiw3ICsxMjIs NyBAQCBpbmRleCBhZWNkNjBhLi5kMGY3ODM0IDEwMDY0NAogICNpbmNsdWRlICJzb3VyY2UuaCIK ICAjaW5jbHVkZSAiY2xpL2NsaS1jbWRzLmgiCiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCi1AQCAt NDUzLDYgKzQ1NCw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtNDU5LDYgKzQ2 MCw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICBjaGFyICpjZGFyZyA9IE5VTEw7 CiAgICBjaGFyICp0dHlhcmcgPSBOVUxMOwogIApAQCAtMTkwLDcgKzE5MCw3IEBAIGluZGV4IGFl Y2Q2MGEuLmQwZjc4MzQgMTAwNjQ0CiAgICAgIHsKICAgICAgICAvKiBUaGUgcmVtYWluaW5nIG9w dGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyBmb3IgdGhlCiAgCSBpbmZlcmlvci4g IFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9leGVjIGZpbGUsIGFuZCB0aGUgcmVzdAotQEAgLTEx MzcsNyArMTE3MSw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtMTEyNyw3ICsx MTYxLDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAKICAgIC8qIFJlYWQgaW4gdGhl IG9sZCBoaXN0b3J5IGFmdGVyIGFsbCB0aGUgY29tbWFuZCBmaWxlcyBoYXZlIGJlZW4KICAgICAg IHJlYWQuICAqLwpAQCAtMjAwLDcgKzIwMCw3IEBAIGluZGV4IGFlY2Q2MGEuLmQwZjc4MzQgMTAw NjQ0CiAgCiAgICBpZiAoYmF0Y2hfZmxhZykKICAgICAgewotQEAgLTExNDgsMTMgKzExODMsMjUg QEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC0xMTM4LDEzICsxMTczLDI1IEBAIGNh cHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICAvKiBTaG93IHRpbWUgYW5kL29yIHNwYWNlIHVz YWdlLiAgKi8KICAgIGRvX2NsZWFudXBzIChwcmVfc3RhdF9jaGFpbik7CiAgCkBAIC0yMzIsNyAr MjMyLDcgQEAgaW5kZXggYWVjZDYwYS4uZDBmNzgzNCAxMDA2NDQKICAgICAgfQogICAgLyogTm8g ZXhpdCAtLSBleGl0IGlzIHRocm91Z2ggcXVpdF9jb21tYW5kLiAgKi8KICB9Ci1AQCAtMTE4OCw2 ICsxMjM1LDEyIEBAIHByaW50X2dkYl9oZWxwIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQorQEAg LTExODcsNiArMTIzNCwxMiBAQCBwcmludF9nZGJfaGVscCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSkKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICBUaGlzIGlzIHRoZSBHTlUgZGVidWdnZXIu ICBVc2FnZTpcblxuXAogICAgICBnZGIgW29wdGlvbnNdIFtleGVjdXRhYmxlLWZpbGUgW2NvcmUt ZmlsZSBvciBwcm9jZXNzLWlkXV1cblwKQEAgLTI0NSw3ICsyNDUsNyBAQCBpbmRleCBhZWNkNjBh Li5kMGY3ODM0IDEwMDY0NAogICAgICBnZGIgW29wdGlvbnNdIC0tYXJncyBleGVjdXRhYmxlLWZp bGUgW2luZmVyaW9yLWFyZ3VtZW50cyAuLi5dXG5cblwKICAiKSwgc3RyZWFtKTsKICAgIGZwdXRz X3VuZmlsdGVyZWQgKF8oIlwKLUBAIC0xMjMyLDYgKzEyODUsMTMgQEAgT3V0cHV0IGFuZCB1c2Vy IGludGVyZmFjZSBjb250cm9sOlxuXG5cCitAQCAtMTIzMSw2ICsxMjg0LDEzIEBAIE91dHB1dCBh bmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpcblxuXAogICNlbmRpZgogICAgZnB1dHNfdW5maWx0 ZXJlZCAoXygiXAogICAgLS1kYnggICAgICAgICAgICAgIERCWCBjb21wYXRpYmlsaXR5IG1vZGUu XG5cCkBAIC00NDMsMTAgKzQ0MywxMCBAQCBpbmRleCAwMDAwMDAwLi44NzQyNjgwCiArCiArSW5T Y29wZSAoKQogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLmMgYi9nZGIvcHl0aG9uL3B5 dGhvbi5jCi1pbmRleCA0Zjg4YjBlLi44NzBhMWJhIDEwMDY0NAoraW5kZXggNjIxZTIwMS4uNzAz YTFhMCAxMDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLmMKICsrKyBiL2dkYi9weXRob24v cHl0aG9uLmMKLUBAIC05Myw2ICs5Myw4IEBAIGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3Vh Z2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2VfcHl0aG9uID0KK0BAIC05NSw2ICs5NSw4IEBAIGNv bnN0IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiBleHRlbnNpb25fbGFuZ3VhZ2VfcHl0 aG9uID0KICAjaW5jbHVkZSAibGluZXNwZWMuaCIKICAjaW5jbHVkZSAic291cmNlLmgiCiAgI2lu Y2x1ZGUgInZlcnNpb24uaCIKQEAgLTQ1NSw3ICs0NTUsNyBAQCBpbmRleCA0Zjg4YjBlLi44NzBh MWJhIDEwMDY0NAogICNpbmNsdWRlICJ0YXJnZXQuaCIKICAjaW5jbHVkZSAiZ2RidGhyZWFkLmgi CiAgI2luY2x1ZGUgImludGVycHMuaCIKLUBAIC0xMjYyLDYgKzEyNjQsODMgQEAgZ2RicHlfcHJp bnRfc3RhY2sgKHZvaWQpCitAQCAtMTI2Myw2ICsxMjY1LDkyIEBAIGdkYnB5X3ByaW50X3N0YWNr ICh2b2lkKQogIAogIC8qIFJldHVybiB0aGUgY3VycmVudCBQcm9nc3BhY2UuCiAgICAgVGhlcmUg YWx3YXlzIGlzIG9uZS4gICovCkBAIC00NzcsNyArNDc3LDE0IEBAIGluZGV4IDRmODhiMGUuLjg3 MGExYmEgMTAwNjQ0CiArICAgIHJldHVybiBQeUVycl9Gb3JtYXQgKFB5RXhjX1J1bnRpbWVFcnJv ciwgXygiQ2Fubm90IGludm9rZSBDTEkgZnJvbSBNSS4iKSk7CiArCiArICBpbl9jbGkgPSAxOwot KyAgY3VycmVudF9pbnRlcnBfY29tbWFuZF9sb29wICgpOworKyAgLyogU2VlIGNhcHR1cmVkX2Nv bW1hbmRfbG9vcC4gICovCisrCisrICAvKiBHaXZlIHRoZSBpbnRlcnByZXRlciBhIGNoYW5jZSB0 byBwcmludCBhIHByb21wdC4gICovCisrICBpbnRlcnBfcHJlX2NvbW1hbmRfbG9vcCAodG9wX2xl dmVsX2ludGVycHJldGVyICgpKTsKKysKKysgIC8qIE5vdyBpdCdzIHRpbWUgdG8gc3RhcnQgdGhl IGV2ZW50IGxvb3AuICAqLworKyAgc3RhcnRfZXZlbnRfbG9vcCAoKTsKKysKICsgIGluX2NsaSA9 IDA7CiArCiArICBQeV9SRVRVUk5fTk9ORTsKQEAgLTUwMCwxMyArNTA3LDE1IEBAIGluZGV4IDRm ODhiMGUuLjg3MGExYmEgMTAwNjQ0CiArICBQeVN5c19TZXRBcmd2IChhcmdjIC0gMSwgYXJndiAr IDEpOwogKyNlbHNlCiArICB7Ci0rICAgIHdjaGFyX3QgKip3YXJndiA9IGFsbG9jYSAoc2l6ZW9m ICgqd2FyZ3YpICogKGFyZ2MgKyAxKSk7CisrICAgIHdjaGFyX3QgKip3YXJndiA9ICh3Y2hhcl90 ICoqKSBhbGxvY2EgKHNpemVvZiAoKndhcmd2KSAqIChhcmdjICsgMSkpOwogKyAgICBpbnQgaTsK ICsKICsgICAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykKICsgICAgICB7CiArCXNpemVfdCBs ZW4gPSBtYnN0b3djcyAoTlVMTCwgYXJndltpXSwgMCk7Ci0rCXNpemVfdCBsZW4yOworKwkvKiBQ eXRob24tcmVsYXRlZCBHREIgc291cmNlcyBhcmUgYnVpbHQgd2l0aCAtRE5ERUJVRworKwkgICBo dHRwczovL3NvdXJjZXdhcmUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yMDQ0NSAqLwor KwlzaXplX3QgbGVuMiBBVFRSSUJVVEVfVU5VU0VEOwogKwogKwlpZiAobGVuID09IChzaXplX3Qp IC0xKQogKwkgIHsKQEAgLTUxNCw3ICs1MjMsNyBAQCBpbmRleCA0Zjg4YjBlLi44NzBhMWJhIDEw MDY0NAogKwkJICAgICBpLCBhcmd2W2ldKTsKICsJICAgIGV4aXQgKDEpOwogKwkgIH0KLSsJd2Fy Z3ZbaV0gPSBhbGxvY2EgKHNpemVvZiAoKip3YXJndikgKiAobGVuICsgMSkpOworKwl3YXJndltp XSA9ICh3Y2hhcl90ICopIGFsbG9jYSAoc2l6ZW9mICgqKndhcmd2KSAqIChsZW4gKyAxKSk7CiAr CWxlbjIgPSBtYnN0b3djcyAod2FyZ3ZbaV0sIGFyZ3ZbaV0sIGxlbiArIDEpOwogKwlhc3NlcnQg KGxlbjIgPT0gbGVuKTsKICsgICAgICB9CkBAIC01MzksNyArNTQ4LDcgQEAgaW5kZXggNGY4OGIw ZS4uODcwYTFiYSAxMDA2NDQKICAKICBzdGF0aWMgUHlPYmplY3QgKgogIGdkYnB5X2dldF9jdXJy ZW50X3Byb2dzcGFjZSAoUHlPYmplY3QgKnVudXNlZDEsIFB5T2JqZWN0ICp1bnVzZWQyKQotQEAg LTE5ODIsNiArMjA2MSw4IEBAIFB5TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQorQEAg LTE5ODEsNiArMjA2OSw4IEBAIFB5TWV0aG9kRGVmIHB5dGhvbl9HZGJNZXRob2RzW10gPQogIEV2 YWx1YXRlIGNvbW1hbmQsIGEgc3RyaW5nLCBhcyBhIGdkYiBDTEkgY29tbWFuZC4gIE9wdGlvbmFs bHkgcmV0dXJuc1xuXAogIGEgUHl0aG9uIFN0cmluZyBjb250YWluaW5nIHRoZSBvdXRwdXQgb2Yg dGhlIGNvbW1hbmQgaWYgdG9fc3RyaW5nIGlzXG5cCiAgc2V0IHRvIFRydWUuIiB9LApAQCAtNTQ5 LDcgKzU1OCw3IEBAIGluZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAgICAgICJSZXR1cm4g YSBnZGIgcGFyYW1ldGVyJ3MgdmFsdWUiIH0sCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9w eXRob24uaCBiL2dkYi9weXRob24vcHl0aG9uLmgKLWluZGV4IGU2YmZjY2EuLjY4OGRhYTMgMTAw NjQ0CitpbmRleCBiODEwMTg3Li5hMzYyMGFiIDEwMDY0NAogLS0tIGEvZ2RiL3B5dGhvbi9weXRo b24uaAogKysrIGIvZ2RiL3B5dGhvbi9weXRob24uaAogQEAgLTI1LDQgKzI1LDYgQEAKQEAgLTU2 MCwxMCArNTY5LDEwIEBAIGluZGV4IGU2YmZjY2EuLjY4OGRhYTMgMTAwNjQ0CiArCiAgI2VuZGlm IC8qIEdEQl9QWVRIT05fSCAqLwogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9z ZWxmdGVzdC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCi1pbmRleCA5 ZjI1YTQ4Li44OGIwODQyIDEwMDY0NAoraW5kZXggMmZkZDllMy4uMzkxOTAwZCAxMDA2NDQKIC0t LSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKICsrKyBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKLUBAIC05Miw2ICs5MiwxMCBAQCBwcm9jIGRvX3N0ZXBz X2FuZF9uZXh0cyB7fSB7CitAQCAtODcsNiArODcsMTAgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4 dHMge30gewogIAkJc2V0IGRlc2NyaXB0aW9uICJzdGVwIG92ZXIgY21kYXJnX3ZlYyBpbml0aWFs aXphdGlvbiIKICAJCXNldCBjb21tYW5kICJzdGVwIgogIAkgICAgfQpAQCAtNTc1LDcgKzU4NCw3 IEBAIGluZGV4IDlmMjVhNDguLjg4YjA4NDIgMTAwNjQ0CiAgCQlzZXQgZGVzY3JpcHRpb24gIm5l eHQgb3ZlciBtYWtlX2NvbW1hbmRfc3RhdHNfY2xlYW51cCBhbmQgZXZlcnl0aGluZyBpdCBjYWxs cyIKICAJCXNldCBjb21tYW5kICJuZXh0IgogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1mcmFtZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUu ZXhwCi1pbmRleCAzM2ZkYmU1Li4yNjRkMDBmIDEwMDY0NAoraW5kZXggYjVhNDY4Mi4uZDU0NTFh NiAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKICsr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKIEBAIC05NSw2ICs5NSw4 IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQgPSAlcycgJSBmMC5yZWFkX3ZhciAo J2EnKSkiICIgPSAxIiAidGVzdCBGcmFtZS5yCkBAIC01ODgsMTAgKzU5NywxMCBAQCBpbmRleCAz M2ZkYmU1Li4yNjRkMDBmIDEwMDY0NAogIGdkYl90ZXN0ICJweXRob24gcHJpbnQgKCdyZXN1bHQg PSAlcycgJSAoZ2RiLnNlbGVjdGVkX2ZyYW1lICgpLnJlYWRfcmVnaXN0ZXIgKCdzcCcpID09IGdk Yi5wYXJzZV9hbmRfZXZhbCAoJ1wkc3AnKSkpIiBcCiAgICAiID0gVHJ1ZSIgXAogZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktdmFsdWUuZXhwCi1pbmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0NAor aW5kZXggNTdhOWJhMS4uZDkwZDg1YSAxMDA2NDQKIC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS12YWx1ZS5leHAKICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1 ZS5leHAKLUBAIC0zODgsNiArMzg4LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7 fSB7CitAQCAtMzk3LDYgKzM5NywxNSBAQCBwcm9jIHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgge30g ewogICAgICAicHJpbnQgdmFsdWUncyB0eXBlIgogIH0KICAKQEAgLTYwNyw3ICs2MTYsNyBAQCBp bmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0NAogICMgUmVncmVzc2lvbiB0ZXN0IGZvciBpbnZh bGlkIHN1YnNjcmlwdCBvcGVyYXRpb25zLiAgVGhlIGJ1ZyB3YXMgdGhhdAogICMgdGhlIHR5cGUg b2YgdGhlIHZhbHVlIHdhcyBub3QgYmVpbmcgY2hlY2tlZCBiZWZvcmUgYWxsb3dpbmcgYQogICMg c3Vic2NyaXB0IG9wZXJhdGlvbiB0byBwcm9jZWVkLgotQEAgLTUxNyw2ICs1MjYsNyBAQCB0ZXN0 X3ZhbHVlX2luX2luZmVyaW9yCitAQCAtNTI2LDYgKzUzNSw3IEBAIHRlc3RfdmFsdWVfaW5faW5m ZXJpb3IKICB0ZXN0X2luZmVyaW9yX2Z1bmN0aW9uX2NhbGwKICB0ZXN0X2xhenlfc3RyaW5ncwog IHRlc3RfdmFsdWVfYWZ0ZXJfZGVhdGgKCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVh c29ucy01b2Y1LnBhdGNoIGIvZ2RiLWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAppbmRl eCA0OGQ3YWI0Li5mYjdkYjI1IDEwMDY0NAotLS0gYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01 b2Y1LnBhdGNoCisrKyBiL2dkYi1hdHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKQEAgLTM3 LDEzICszNywxMyBAQCBnZGIvZ2Ric2VydmVyLwogCShsaW51eF9jcmVhdGVfaW5mZXJpb3IsIGxp bnV4X3RyYWNlZm9ya19jaGlsZCk6IENhbGwgaXQgaW5zdGVhZCBvZgogCWRpcmVjdCBwdHJhY2Uu CiAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCitJ bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2Uu YwkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4MDcwNzk0NCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNi0wMS0wOCAxOToxNjowMi42NTQ3MzYy NDYgKzAxMDAKLUBAIC0yNCw2ICsyNCwxMCBAQAotICNpbmNsdWRlICJnZGJfd2FpdC5oIgorLS0t IGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE2LTA4 LTA3IDIxOjE5OjI5Ljk0NzgzMzAxNyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi9uYXQvbGludXgtcHRyYWNlLmMJMjAxNi0wOC0wNyAyMToxOTozNy42NTA5MDQxNDIgKzAyMDAK K0BAIC0yNSw2ICsyNSwxMCBAQAogICNpbmNsdWRlICJnZGJfcHRyYWNlLmgiCisgI2luY2x1ZGUg ImdyZWdzZXQuaCIKICAKICsjaWZkZWYgSEFWRV9TRUxJTlVYX1NFTElOVVhfSAogKyMgaW5jbHVk ZSA8c2VsaW51eC9zZWxpbnV4Lmg+CkBAIC01Miw3ICs1Miw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCiAgLyogU3RvcmVzIHRoZSBwdHJhY2Ug b3B0aW9ucyBzdXBwb3J0ZWQgYnkgdGhlIHJ1bm5pbmcga2VybmVsLgogICAgIEEgdmFsdWUgb2Yg LTEgbWVhbnMgd2UgZGlkIG5vdCBjaGVjayBmb3IgZmVhdHVyZXMgeWV0LiAgQSB2YWx1ZQogICAg IG9mIDAgbWVhbnMgdGhlcmUgYXJlIG5vIHN1cHBvcnRlZCBmZWF0dXJlcy4gICovCi1AQCAtNDgs NiArNTIsOCBAQAorQEAgLTQ5LDYgKzUzLDggQEAKICAgICAgYnVmZmVyX3htbF9wcmludGYgKGJ1 ZmZlciwgXygicHJvY2VzcyAlZCBpcyBhIHpvbWJpZSAiCiAgCQkJCSAiLSB0aGUgcHJvY2VzcyBo YXMgYWxyZWFkeSB0ZXJtaW5hdGVkIiksCiAgCQkgICAgICAgKGludCkgcGlkKTsKQEAgLTYxLDcg KzYxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNl LmMKICB9CiAgCiAgLyogU2VlIGxpbnV4LXB0cmFjZS5oLiAgKi8KLUBAIC01OTQsNiArNjAwLDIy IEBACitAQCAtNTkyLDYgKzU5OCwyMiBAQAogICAgbGludXhfcHRyYWNlX3Rlc3RfcmV0X3RvX254 ICgpOwogIH0KICAKQEAgLTg0LDExICs4NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAx MDYvZ2RiL25hdC9saW51eC1wdHJhY2UuYwogIC8qIEV4dHJhY3QgZXh0ZW5kZWQgcHRyYWNlIGV2 ZW50IGZyb20gd2FpdCBzdGF0dXMuICAqLwogIAogIGludAotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNlLmgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NjAxMDYub3JpZy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCTIwMTYtMDEtMDggMTk6MTU6NTcuNTgx NzA3OTUwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL25hdC9saW51eC1wdHJh Y2UuaAkyMDE2LTAxLTA4IDE5OjE2OjAyLjY1NTczNjI1MSArMDEwMAotQEAgLTE2NCw2ICsxNjQs NyBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2Uu aAkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0NzgzMzAxNyArMDIwMAorKysrIGdkYi03LjExLjkwLjIw MTYwODA3L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNi0wOC0wNyAyMToxOTozNy42NTA5MDQx NDIgKzAyMDAKK0BAIC0xODUsNiArMTg1LDcgQEAKICBleHRlcm4gY2hhciAqbGludXhfcHRyYWNl X2F0dGFjaF9mYWlsX3JlYXNvbl9zdHJpbmcgKHB0aWRfdCBwdGlkLCBpbnQgZXJyKTsKICAKICBl eHRlcm4gdm9pZCBsaW51eF9wdHJhY2VfaW5pdF93YXJuaW5ncyAodm9pZCk7CkBAIC05NiwxMSAr OTYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9uYXQvbGludXgtcHRyYWNl LmgKICBleHRlcm4gdm9pZCBsaW51eF9jaGVja19wdHJhY2VfZmVhdHVyZXMgKHZvaWQpOwogIGV4 dGVybiB2b2lkIGxpbnV4X2VuYWJsZV9ldmVudF9yZXBvcnRpbmcgKHBpZF90IHBpZCwgaW50IGF0 dGFjaGVkKTsKICBleHRlcm4gdm9pZCBsaW51eF9kaXNhYmxlX2V2ZW50X3JlcG9ydGluZyAocGlk X3QgcGlkKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlLmFjCitJ bmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE2LTAxLTA4 IDE5OjE1OjU3LjU4MjcwNzk1NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9j b25maWd1cmUuYWMJMjAxNi0wMS0wOCAxOToxNjowMi42NTY3MzYyNTcgKzAxMDAKLUBAIC0yMDc3 LDYgKzIwNzcsMTAgQEAKKy0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9jb25maWd1 cmUuYWMJMjAxNi0wOC0wNyAyMToxOToyOS45NDc4MzMwMTcgKzAyMDAKKysrKyBnZGItNy4xMS45 MC4yMDE2MDgwNy9nZGIvY29uZmlndXJlLmFjCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjUwOTA0MTQy ICswMjAwCitAQCAtMjEwOCw2ICsyMTA4LDEwIEBACiAgZXNhYwogIEFDX0RFRklORV9VTlFVT1RF RChHREJJTklULCIkZ2RiaW5pdCIsW1RoZSAuZ2RiaW5pdCBmaWxlbmFtZS5dKQogIApAQCAtMTEx LDExICsxMTEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUu YWMKICBkbmwgSGFuZGxlIG9wdGlvbmFsIGZlYXR1cmVzIHRoYXQgY2FuIGJlIGVuYWJsZWQuCiAg CiAgIyBTdXBwb3J0IGZvciAtLXdpdGgtc3lzcm9vdCBpcyBhIGNvcHkgb2YgR0RCX0FDX1dJVEhf RElSLAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJl LmFjCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUu YWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9nZGJzZXJ2 ZXIvY29uZmlndXJlLmFjCTIwMTYtMDEtMDggMTk6MTU6NTcuNTgyNzA3OTU1ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUuYWMJMjAxNi0wMS0w OCAxOToxNjowMi42NTY3MzYyNTcgKzAxMDAKLUBAIC01MjQsNiArNTI0LDEwIEBACistLS0gZ2Ri LTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE2LTA4 LTA3IDIxOjE5OjI5Ljk0ODgzMzAyNyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjUxOTA0MTUxICsw MjAwCitAQCAtNDU4LDYgKzQ1OCwxMCBAQAogICAgIGZpCiAgZmkKICAKQEAgLTEyNiwxMSArMTI2 LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2NvbmZpZ3Vy ZS5hYwogIEFDX1NVQlNUKEdEQlNFUlZFUl9ERVBGSUxFUykKICBBQ19TVUJTVChHREJTRVJWRVJf TElCUykKICBBQ19TVUJTVChzcnZfeG1sYnVpbHRpbikKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4 MDcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2Lm9yaWcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE2LTAxLTA4IDE5OjE1 OjU3LjU4NTcwNzk3MiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2 ZXIvbGludXgtbG93LmMJMjAxNi0wMS0wOCAxOToxNjowMi42NTg3MzYyNjggKzAxMDAKLUBAIC04 NTMsNiArODUzLDI5IEBACistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvZ2Ric2Vy dmVyL2xpbnV4LWxvdy5jCTIwMTYtMDgtMDcgMjE6MTk6MjkuOTQ5ODMzMDM2ICswMjAwCisrKysg Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE2LTA4LTA3 IDIxOjE5OjM3LjY1MjkwNDE2MSArMDIwMAorQEAgLTkzMyw2ICs5MzMsMjkgQEAKICAgIHJldHVy biBsd3A7CiAgfQogIApAQCAtMTYwLDcgKzE2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiAgLyogU3RhcnQgYW4gaW5mZXJpb3IgcHJv Y2VzcyBhbmQgcmV0dXJucyBpdHMgcGlkLgogICAgIEFMTEFSR1MgaXMgYSB2ZWN0b3Igb2YgcHJv Z3JhbS1uYW1lIGFuZCBhcmdzLiAqLwogIAotQEAgLTg3Niw3ICs4OTksNyBAQAorQEAgLTk1Niw3 ICs5NzksNyBAQAogICAgaWYgKHBpZCA9PSAwKQogICAgICB7CiAgICAgICAgY2xvc2VfbW9zdF9m ZHMgKCk7CkBAIC0xNjksMTAgKzE2OSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwogIAogICAgICAgIHNldHBnaWQgKDAsIDApOwogIAot SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pbmYtcHRyYWNlLmMKK0luZGV4OiBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvaW5mLXB0cmFjZS5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvaW5mLXB0cmFjZS5jCTIwMTYtMDEtMDggMTk6MTU6NTcu NTg2NzA3OTc3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2luZi1wdHJhY2Uu YwkyMDE2LTAxLTA4IDE5OjE2OjAyLjY1OTczNjI3NCArMDEwMAorLS0tIGdkYi03LjExLjkwLjIw MTYwODA3Lm9yaWcvZ2RiL2luZi1wdHJhY2UuYwkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk0OTgzMzAz NiArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9pbmYtcHRyYWNlLmMJMjAxNi0w OC0wNyAyMToxOTozNy42NTM5MDQxNzAgKzAyMDAKIEBAIC03OSw3ICs3OSwxNSBAQAogIGluZl9w dHJhY2VfbWUgKHZvaWQpCiAgewpAQCAtMTg5LDExICsxODksMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9pbmYtcHRyYWNlLmMKICB9CiAgCiAgLyogU3RhcnQgYSBuZXcgaW5m ZXJpb3IgVW5peCBjaGlsZCBwcm9jZXNzLiAgRVhFQ19GSUxFIGlzIHRoZSBmaWxlIHRvCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2xpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTEu OTAuMjAxNjA4MDcvZ2RiL2xpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNjAxMDYub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNi0wMS0wOCAxOToxNTo1Ny41ODc3MDc5 ODMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbGludXgtbmF0LmMJMjAxNi0w MS0wOCAxOToxNjowMi42NjA3MzYyNzkgKzAxMDAKLUBAIC0xMDE2LDYgKzEwMTYsNyBAQAorLS0t IGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTYtMDgtMDcgMjE6 MTk6MjkuOTUwODMzMDQ1ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2xpbnV4 LW5hdC5jCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjU0OTA0MTc5ICswMjAwCitAQCAtMTEwMiw2ICsx MTAyLDcgQEAKICB7CiAgICBzdHJ1Y3QgY2xlYW51cCAqcmVzdG9yZV9wZXJzb25hbGl0eQogICAg ICA9IG1heWJlX2Rpc2FibGVfYWRkcmVzc19zcGFjZV9yYW5kb21pemF0aW9uIChkaXNhYmxlX3Jh bmRvbWl6YXRpb24pOwpAQCAtMjAxLDcgKzIwMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvbGludXgtbmF0LmMKICAKICAgIC8qIFRoZSBmb3JrX2NoaWxkIG1lY2hhbmlzbSBp cyBzeW5jaHJvbm91cyBhbmQgY2FsbHMgdGFyZ2V0X3dhaXQsIHNvCiAgICAgICB3ZSBoYXZlIHRv IG1hc2sgdGhlIGFzeW5jIG1vZGUuICAqLwotQEAgLTEwMjMsNyArMTAyNCwyOCBAQAorQEAgLTEx MDksNyArMTExMCwyOCBAQAogICAgLyogTWFrZSBzdXJlIHdlIHJlcG9ydCBhbGwgc2lnbmFscyBk dXJpbmcgc3RhcnR1cC4gICovCiAgICBsaW51eF9uYXRfcGFzc19zaWduYWxzIChvcHMsIDAsIE5V TEwpOwogIApAQCAtMjMxLDExICsyMzEsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9saW51eC1uYXQuYwogIAogICAgZG9fY2xlYW51cHMgKHJlc3RvcmVfcGVyc29uYWxpdHkp OwogIH0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlnLmluCitJbmRleDog Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZy5pbgkyMDE2LTAxLTA4IDE5OjE1OjU3LjU4 ODcwNzk4OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWcuaW4JMjAx Ni0wMS0wOCAxOToxNjowMi42NjA3MzYyNzkgKzAxMDAKLUBAIC0yNjQsNiArMjY0LDkgQEAKKy0t LSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9jb25maWcuaW4JMjAxNi0wOC0wNyAyMTox OToyOS45NTA4MzMwNDUgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmln LmluCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjU0OTA0MTc5ICswMjAwCitAQCAtMjY3LDYgKzI2Nyw5 IEBACiAgLyogRGVmaW5lIGlmIGxpYnJwbSBsaWJyYXJ5IGlzIGJlaW5nIHVzZWQuICovCiAgI3Vu ZGVmIEhBVkVfTElCUlBNCiAgCkBAIC0yNDUsNyArMjQ1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUg PGxpYnVud2luZC1pYTY0Lmg+IGhlYWRlciBmaWxlLiAqLwogICN1bmRlZiBIQVZFX0xJQlVOV0lO RF9JQTY0X0gKICAKLUBAIC0zOTYsNiArMzk5LDkgQEAKK0BAIC0zOTksNiArNDAyLDkgQEAKICAv KiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNjbV9uZXdfc21vYicgZnVuY3Rpb24uICov CiAgI3VuZGVmIEhBVkVfU0NNX05FV19TTU9CCiAgCkBAIC0yNTUsMTEgKzI1NSwxMSBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSBgc2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TRVRM T0NBTEUKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvY29uZmlndXJlCitJbmRl eDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTAxLTA4IDE5OjE1OjU3 LjU5MzcwODAxNyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUJ MjAxNi0wMS0wOCAxOToxNjowMi42NjU3MzYzMDcgKzAxMDAKLUBAIC0xNDY1Myw2ICsxNDY1Myw2 NCBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE2LTA4 LTA3IDIxOjE5OjI5Ljk1MzgzMzA3MyArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dk Yi9jb25maWd1cmUJMjAxNi0wOC0wNyAyMToxOTozNy42NTg5MDQyMTYgKzAyMDAKK0BAIC0xNDY0 Miw2ICsxNDY0Miw2NCBAQAogIF9BQ0VPRgogIAogIApAQCAtMzI0LDExICszMjQsMTEgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jb25maWd1cmUKICAKICAjIFN1cHBvcnQgZm9y IC0td2l0aC1zeXNyb290IGlzIGEgY29weSBvZiBHREJfQUNfV0lUSF9ESVIsCiAgIyBleGNlcHQg dGhhdCB0aGUgYXJndW1lbnQgdG8gLS13aXRoLXN5c3Jvb3QgaXMgb3B0aW9uYWwuCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4KK0luZGV4OiBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNi0w MS0wOCAxOToxNTo1Ny41OTU3MDgwMjggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE2LTAxLTA4IDE5OjE2OjAyLjY2NTczNjMwNyArMDEw MAotQEAgLTExNyw2ICsxMTcsOSBAQAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2Ri L2dkYnNlcnZlci9jb25maWcuaW4JMjAxNi0wOC0wNyAyMToxOToyOS45NTQ4MzMwODIgKzAyMDAK KysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgkyMDE2LTA4 LTA3IDIxOjE5OjM3LjY1ODkwNDIxNiArMDIwMAorQEAgLTEyMCw2ICsxMjAsOSBAQAogIC8qIERl ZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWNoZWNrJyBsaWJyYXJ5ICgtbG1jaGVjaykuICov CiAgI3VuZGVmIEhBVkVfTElCTUNIRUNLCiAgCkBAIC0zMzgsNyArMzM4LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIGlm IHRoZSB0YXJnZXQgc3VwcG9ydHMgYnJhbmNoIHRyYWNpbmcuICovCiAgI3VuZGVmIEhBVkVfTElO VVhfQlRSQUNFCiAgCi1AQCAtMTkzLDYgKzE5Niw5IEBACitAQCAtMTk2LDYgKzE5OSw5IEBACiAg LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwd3JpdGUnIGZ1bmN0aW9uLiAqLwogICN1 bmRlZiBIQVZFX1BXUklURQogIApAQCAtMzQ4LDExICszNDgsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYg eW91IGhhdmUgdGhlIGBzZXRucycgZnVuY3Rpb24uICovCiAgI3VuZGVmIEhBVkVfU0VUTlMKICAK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQorSW5k ZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3Vy ZQkyMDE2LTAxLTA4IDE5OjE1OjU3LjU5NzcwODAzOSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCTIwMTYtMDEtMDggMTk6MTY6MDIuNjY3NzM2 MzE4ICswMTAwCi1AQCAtNzMxMSw2ICs3MzExLDY0IEBACistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4 MDcub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE2LTA4LTA3IDIxOjE5OjI5Ljk1NTgz MzA5MSArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9nZGJzZXJ2ZXIvY29uZmln dXJlCTIwMTYtMDgtMDcgMjE6MTk6MzcuNjYwOTA0MjM1ICswMjAwCitAQCAtNzUzMCw2ICs3NTMw LDY0IEBACiAgICAgZmkKICBmaQogIAoKZGlmZiAtLWdpdCBhL2dkYi1iYXJlLURXX1RBR19sZXhp Y2FsX2Jsb2NrLTFvZjIucGF0Y2ggYi9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0xb2Yy LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2ZhNWI4Li4wMDAwMDAwCi0t LSBhL2dkYi1iYXJlLURXX1RBR19sZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwyMzUgKzAsMCBAQAotRnJvbSAzYTJiNDM2YWU5OTU4YTEwMjk1NDVjMDMyMDFiNzIy M2ZmMzNjMTUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFuIEtyYXRvY2h2aWwg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDMwIE1heSAyMDE2IDE0OjEx OjQzICswMjAwCi1TdWJqZWN0OiBbUEFUQ0ggMS8yXSBDb2RlIGNsZWFudXA6IGR3YXJmMl9nZXRf cGNfYm91bmRzOiAtMS8wLysxIC0+IGVudW0KLQotTWFrZSB0aGUgY29kZSAobWF5YmUpIG1vcmUg cmVhZGFibGUgKyBwcmltYXJpbHkgcHJlcGFyZSBpdCBmb3IgW3BhdGNoIDIvMl0KLWVudW0gZXh0 ZW5zaW9uLgotCi1UaGlzIGNoYW5nZSBzaG91bGQgaGF2ZSBubyBjb2RlIGNoYW5nZSBpbXBhY3Qu Ci0KLWdkYi9DaGFuZ2VMb2cKLTIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KLQotCUNvZGUgY2xlYW51cDogZHdhcmYyX2dldF9wY19ib3VuZHM6 IC0xLzAvKzEgLT4gZW51bQotCSogZHdhcmYycmVhZC5jIChlbnVtIHBjX2JvdW5kc19raW5kKSBO ZXcuCi0JKGR3YXJmMl9nZXRfcGNfYm91bmRzKTogVXNlIGl0IGluIHRoZSBkZWNsYXJhdGlvbi4K LQkocHJvY2Vzc19wc3ltdGFiX2NvbXBfdW5pdF9yZWFkZXIpOiBBZGp1c3QgY2FsbGVyLiAgUmVu YW1lIGhhc19wY19pbmZvCi0JdG8gY3VfYm91bmRzX2tpbmQuCi0JKHJlYWRfZnVuY19zY29wZSwg cmVhZF9sZXhpY2FsX2Jsb2NrX3Njb3BlLCByZWFkX2NhbGxfc2l0ZV9zY29wZSk6Ci0JQWRqdXN0 IGNhbGxlcnMuCi0JKGR3YXJmMl9nZXRfcGNfYm91bmRzKTogVXNlIGVudW0gcGNfYm91bmRzX2tp bmQgaW4gdGhlIGRlZmluaXRpb24uCi0JKGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMs IGdldF9zY29wZV9wY19ib3VuZHMpOiBBZGp1c3QgY2FsbGVycy4KLS0tLQotIGdkYi9DaGFuZ2VM b2cgICAgfCAxMiArKysrKysrKysrCi0gZ2RiL2R3YXJmMnJlYWQuYyB8IDcxICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBj aGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKLQotIyMjIGEvZ2RiL0No YW5nZUxvZwotIyMjIGIvZ2RiL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxNSBAQAotKzIwMTYtMDUt MzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJQ29k ZSBjbGVhbnVwOiBkd2FyZjJfZ2V0X3BjX2JvdW5kczogLTEvMC8rMSAtPiBlbnVtCi0rCSogZHdh cmYycmVhZC5jIChlbnVtIHBjX2JvdW5kc19raW5kKSBOZXcuCi0rCShkd2FyZjJfZ2V0X3BjX2Jv dW5kcyk6IFVzZSBpdCBpbiB0aGUgZGVjbGFyYXRpb24uCi0rCShwcm9jZXNzX3BzeW10YWJfY29t cF91bml0X3JlYWRlcik6IEFkanVzdCBjYWxsZXIuICBSZW5hbWUgaGFzX3BjX2luZm8KLSsJdG8g Y3VfYm91bmRzX2tpbmQuCi0rCShyZWFkX2Z1bmNfc2NvcGUsIHJlYWRfbGV4aWNhbF9ibG9ja19z Y29wZSwgcmVhZF9jYWxsX3NpdGVfc2NvcGUpOgotKwlBZGp1c3QgY2FsbGVycy4KLSsJKGR3YXJm Ml9nZXRfcGNfYm91bmRzKTogVXNlIGVudW0gcGNfYm91bmRzX2tpbmQgaW4gdGhlIGRlZmluaXRp b24uCi0rCShkd2FyZjJfZ2V0X3N1YnByb2dyYW1fcGNfYm91bmRzLCBnZXRfc2NvcGVfcGNfYm91 bmRzKTogQWRqdXN0IGNhbGxlcnMuCi0rCi0gMjAxNi0wNS0yOSAgSmFuIEtyYXRvY2h2aWwgIDxq YW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotIAotIAkqIE5FV1MgKFFDYXRjaFN5c2NhbGxzKTog UmVtb3ZlIHRoZSBwYXJhbWV0ZXIuICBJbmNsdWRlIC4uLgotLS0tIGEvZ2RiL2R3YXJmMnJlYWQu YwotKysrIGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTE2MDYsOSArMTYwNiwyNSBAQCBzdGF0aWMg dm9pZCByZWFkX2NhbGxfc2l0ZV9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBk d2FyZjJfY3UgKmN1KTsKLSBzdGF0aWMgaW50IGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQs IENPUkVfQUREUiAqLCBDT1JFX0FERFIgKiwKLSAJCQkgICAgICAgc3RydWN0IGR3YXJmMl9jdSAq LCBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKik7Ci0gCi0tc3RhdGljIGludCBkd2FyZjJfZ2V0X3Bj X2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICosCi0tCQkJCSBDT1JFX0FERFIgKiwgQ09SRV9BRERS ICosIHN0cnVjdCBkd2FyZjJfY3UgKiwKLS0JCQkJIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqKTsK LSsvKiBIb3cgZHdhcmYyX2dldF9wY19ib3VuZHMgY29uc3RydWN0ZWQgaXRzICpMT1dQQyBhbmQg KkhJR0hQQyByZXR1cm4KLSsgICB2YWx1ZXMuICAqLwotK2VudW0gcGNfYm91bmRzX2tpbmQKLSt7 Ci0rICAvKiBObyB2YWxpZCBjb21iaW5hdGlvbiBvZiBEV19BVF9sb3dfcGMsIERXX0FUX2hpZ2hf cGMgb3IgRFdfQVRfcmFuZ2VzCi0rICAgICB3YXMgZm91bmQuICAqLwotKyAgUENfQk9VTkRTX05P VF9QUkVTRU5ULAotKwotKyAgLyogRGlzY29udGlndW91cyByYW5nZSB3YXMgZm91bmQgLSB0aGF0 IGlzIERXX0FUX3JhbmdlcyB3YXMgZm91bmQuICAqLwotKyAgUENfQk9VTkRTX1JBTkdFUywKLSsK LSsgIC8qIENvbnRpZ3VvdXMgcmFuZ2Ugd2FzIGZvdW5kIC0gRFdfQVRfbG93X3BjIGFuZCBEV19B VF9oaWdoX3BjIHdlcmUgZm91bmQuICAqLwotKyAgUENfQk9VTkRTX0hJR0hfTE9XLAotK307Ci0r Ci0rc3RhdGljIGVudW0gcGNfYm91bmRzX2tpbmQgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVj dCBkaWVfaW5mbyAqLAotKwkJCQkJCSBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCi0rCQkJCQkJ IHN0cnVjdCBkd2FyZjJfY3UgKiwKLSsJCQkJCQkgc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwot IAotIHN0YXRpYyB2b2lkIGdldF9zY29wZV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqLAot IAkJCQkgQ09SRV9BRERSICosIENPUkVfQUREUiAqLAotQEAgLTU5NDcsNyArNTk2Myw3IEBAIHBy b2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9z cGVjcyAqcmVhZGVyLAotICAgQ09SRV9BRERSIGJhc2VhZGRyOwotICAgQ09SRV9BRERSIGJlc3Rf bG93cGMgPSAwLCBiZXN0X2hpZ2hwYyA9IDA7Ci0gICBzdHJ1Y3QgcGFydGlhbF9zeW10YWIgKnBz dDsKLS0gIGludCBoYXNfcGNfaW5mbzsKLSsgIGVudW0gcGNfYm91bmRzX2tpbmQgY3VfYm91bmRz X2tpbmQ7Ci0gICBjb25zdCBjaGFyICpmaWxlbmFtZTsKLSAgIHN0cnVjdCBwcm9jZXNzX3BzeW10 YWJfY29tcF91bml0X2RhdGEgKmluZm8KLSAgICAgPSAoc3RydWN0IHByb2Nlc3NfcHN5bXRhYl9j b21wX3VuaXRfZGF0YSAqKSBkYXRhOwotQEAgLTU5NzcsOSArNTk5Myw5IEBAIHByb2Nlc3NfcHN5 bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVh ZGVyLAotIAotICAgLyogUG9zc2libHkgc2V0IHRoZSBkZWZhdWx0IHZhbHVlcyBvZiBMT1dQQyBh bmQgSElHSFBDIGZyb20KLSAgICAgIGBEV19BVF9yYW5nZXMnLiAgKi8KLS0gIGhhc19wY19pbmZv ID0gZHdhcmYyX2dldF9wY19ib3VuZHMgKGNvbXBfdW5pdF9kaWUsICZiZXN0X2xvd3BjLAotLQkJ CQkgICAgICAmYmVzdF9oaWdocGMsIGN1LCBwc3QpOwotLSAgaWYgKGhhc19wY19pbmZvID09IDEg JiYgYmVzdF9sb3dwYyA8IGJlc3RfaGlnaHBjKQotKyAgY3VfYm91bmRzX2tpbmQgPSBkd2FyZjJf Z2V0X3BjX2JvdW5kcyAoY29tcF91bml0X2RpZSwgJmJlc3RfbG93cGMsCi0rCQkJCQkgJmJlc3Rf aGlnaHBjLCBjdSwgcHN0KTsKLSsgIGlmIChjdV9ib3VuZHNfa2luZCA9PSBQQ19CT1VORFNfSElH SF9MT1cgJiYgYmVzdF9sb3dwYyA8IGJlc3RfaGlnaHBjKQotICAgICAvKiBTdG9yZSB0aGUgY29u dGlndW91cyByYW5nZSBpZiBpdCBpcyBub3QgZW1wdHk7IGl0IGNhbiBiZSBlbXB0eSBmb3IKLSAg ICAgICAgQ1VzIHdpdGggbm8gY29kZS4gICovCi0gICAgIGFkZHJtYXBfc2V0X2VtcHR5IChvYmpm aWxlLT5wc3ltdGFic19hZGRybWFwLAotQEAgLTYwMDMsNyArNjAxOSw3IEBAIHByb2Nlc3NfcHN5 bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVh ZGVyLAotICAgICAgIGZpcnN0X2RpZSA9IGxvYWRfcGFydGlhbF9kaWVzIChyZWFkZXIsIGluZm9f cHRyLCAxKTsKLSAKLSAgICAgICBzY2FuX3BhcnRpYWxfc3ltYm9scyAoZmlyc3RfZGllLCAmbG93 cGMsICZoaWdocGMsCi0tCQkJICAgICEgaGFzX3BjX2luZm8sIGN1KTsKLSsJCQkgICAgY3VfYm91 bmRzX2tpbmQgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5ULCBjdSk7Ci0gCi0gICAgICAgLyogSWYg d2UgZGlkbid0IGZpbmQgYSBsb3dwYywgc2V0IGl0IHRvIGhpZ2hwYyB0byBhdm9pZAotIAkgY29t cGxhaW50cyBmcm9tIGBtYWludCBjaGVjaycuCSAqLwotQEAgLTYwMTIsNyArNjAyOCw3IEBAIHBy b2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9z cGVjcyAqcmVhZGVyLAotIAotICAgICAgIC8qIElmIHRoZSBjb21waWxhdGlvbiB1bml0IGRpZG4n dCBoYXZlIGFuIGV4cGxpY2l0IGFkZHJlc3MgcmFuZ2UsCi0gCSB0aGVuIHVzZSB0aGUgaW5mb3Jt YXRpb24gZXh0cmFjdGVkIGZyb20gaXRzIGNoaWxkIGRpZXMuICAqLwotLSAgICAgIGlmICghIGhh c19wY19pbmZvKQotKyAgICAgIGlmIChjdV9ib3VuZHNfa2luZCA9PSBQQ19CT1VORFNfTk9UX1BS RVNFTlQpCi0gCXsKLSAJICBiZXN0X2xvd3BjID0gbG93cGM7Ci0gCSAgYmVzdF9oaWdocGMgPSBo aWdocGM7Ci1AQCAtMTEzNzMsNyArMTEzODksOCBAQCByZWFkX2Z1bmNfc2NvcGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAgICAgfQotIAotICAgLyogSWdu b3JlIGZ1bmN0aW9ucyB3aXRoIG1pc3Npbmcgb3IgaW52YWxpZCBsb3cgYW5kIGhpZ2ggcGMgYXR0 cmlidXRlcy4gICovCi0tICBpZiAoIWR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywg JmhpZ2hwYywgY3UsIE5VTEwpKQotKyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZs b3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpCi0rICAgICAgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5U KQotICAgICB7Ci0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2V4dGVybmFs LCBjdSk7Ci0gICAgICAgaWYgKCFhdHRyIHx8ICFEV19VTlNORCAoYXR0cikpCi1AQCAtMTE1MzUs NyArMTE1NTIsOCBAQCByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAgICAgIGFzIG11bHRpcGxlIGxleGljYWwgYmxv Y2tzPyAgSGFuZGxpbmcgY2hpbGRyZW4gaW4gYSBzYW5lIHdheSB3b3VsZAotICAgICAgYmUgbmFz dHkuICBNaWdodCBiZSBlYXNpZXIgdG8gcHJvcGVybHkgZXh0ZW5kIGdlbmVyaWMgYmxvY2tzIHRv Ci0gICAgICBkZXNjcmliZSByYW5nZXMuICAqLwotLSAgaWYgKCFkd2FyZjJfZ2V0X3BjX2JvdW5k cyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKSkKLSsgIGlmIChkd2FyZjJfZ2V0X3Bj X2JvdW5kcyAoZGllLCAmbG93cGMsICZoaWdocGMsIGN1LCBOVUxMKQotKyAgICAgID09IFBDX0JP VU5EU19OT1RfUFJFU0VOVCkKLSAgICAgcmV0dXJuOwotICAgbG93cGMgPSBnZGJhcmNoX2FkanVz dF9kd2FyZjJfYWRkciAoZ2RiYXJjaCwgbG93cGMgKyBiYXNlYWRkcik7Ci0gICBoaWdocGMgPSBn ZGJhcmNoX2FkanVzdF9kd2FyZjJfYWRkciAoZ2RiYXJjaCwgaGlnaHBjICsgYmFzZWFkZHIpOwot QEAgLTExNzQ1LDcgKzExNzYzLDggQEAgcmVhZF9jYWxsX3NpdGVfc2NvcGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKLSAJICBDT1JFX0FERFIgbG93cGM7Ci0g Ci0gCSAgLyogRFdfQVRfZW50cnlfcGMgc2hvdWxkIGJlIHByZWZlcnJlZC4gICovCi0tCSAgaWYg KCFkd2FyZjJfZ2V0X3BjX2JvdW5kcyAodGFyZ2V0X2RpZSwgJmxvd3BjLCBOVUxMLCB0YXJnZXRf Y3UsIE5VTEwpKQotKwkgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAodGFyZ2V0X2RpZSwgJmxv d3BjLCBOVUxMLCB0YXJnZXRfY3UsIE5VTEwpCi0rCSAgICAgID09IFBDX0JPVU5EU19OT1RfUFJF U0VOVCkKLSAJICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSAJCSAgICAgICBf KCJEV19BVF9HTlVfY2FsbF9zaXRlX3RhcmdldCB0YXJnZXQgRElFIGhhcyBpbnZhbGlkICIKLSAJ CSAgICAgICAgICJsb3cgcGMsIGZvciByZWZlcmVuY2luZyBESUUgMHgleCBbaW4gbW9kdWxlICVz XSIpLAotQEAgLTEyMDIwLDExICsxMjAzOSwxMSBAQCBkd2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2ln bmVkIG9mZnNldCwgQ09SRV9BRERSICpsb3dfcmV0dXJuLAotICAgcmV0dXJuIDE7Ci0gfQotIAot LS8qIEdldCBsb3cgYW5kIGhpZ2ggcGMgYXR0cmlidXRlcyBmcm9tIGEgZGllLiAgUmV0dXJuIDEg aWYgdGhlIGF0dHJpYnV0ZXMKLS0gICBhcmUgcHJlc2VudCBhbmQgdmFsaWQsIG90aGVyd2lzZSwg cmV0dXJuIDAuICBSZXR1cm4gLTEgaWYgdGhlIHJhbmdlIGlzCi0tICAgZGlzY29udGludW91cywg aS5lLiBkZXJpdmVkIGZyb20gRFdfQVRfcmFuZ2VzIGluZm9ybWF0aW9uLiAgKi8KLSsvKiBHZXQg bG93IGFuZCBoaWdoIHBjIGF0dHJpYnV0ZXMgZnJvbSBhIGRpZS4gIFNlZSBlbnVtIHBjX2JvdW5k c19raW5kCi0rICAgZGVmaW5pdGlvbiBmb3IgdGhlIHJldHVybiB2YWx1ZS4gICpMT1dQQyBhbmQg KkhJR0hQQyBhcmUgc2V0IGlmZgotKyAgIFBDX0JPVU5EU19OT1RfUFJFU0VOVCBpcyBub3QgcmV0 dXJuZWQuICAqLwotIAotLXN0YXRpYyBpbnQKLStzdGF0aWMgZW51bSBwY19ib3VuZHNfa2luZAot IGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICps b3dwYywKLSAJCSAgICAgIENPUkVfQUREUiAqaGlnaHBjLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwK LSAJCSAgICAgIHN0cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN0KQotQEAgLTEyMDMzLDcgKzEyMDUy LDcgQEAgZHdhcmYyX2dldF9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FE RFIgKmxvd3BjLAotICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cl9oaWdoOwotICAgQ09SRV9BRERS IGxvdyA9IDA7Ci0gICBDT1JFX0FERFIgaGlnaCA9IDA7Ci0tICBpbnQgcmV0ID0gMDsKLSsgIGVu dW0gcGNfYm91bmRzX2tpbmQgcmV0ID0gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotIAotICAgYXR0 cl9oaWdoID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfaGlnaF9wYywgY3UpOwotICAgaWYgKGF0 dHJfaGlnaCkKLUBAIC0xMjA0OCwxMCArMTIwNjcsMTAgQEAgZHdhcmYyX2dldF9wY19ib3VuZHMg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBDT1JFX0FERFIgKmxvd3BjLAotIAl9Ci0gICAgICAgZWxz ZQotIAkvKiBGb3VuZCBoaWdoIHcvbyBsb3cgYXR0cmlidXRlLiAgKi8KLS0JcmV0dXJuIDA7Ci0r CXJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0gCi0gICAgICAgLyogRm91bmQgY29uc2Vj dXRpdmUgcmFuZ2Ugb2YgYWRkcmVzc2VzLiAgKi8KLS0gICAgICByZXQgPSAxOwotKyAgICAgIHJl dCA9IFBDX0JPVU5EU19ISUdIX0xPVzsKLSAgICAgfQotICAgZWxzZQotICAgICB7Ci1AQCAtMTIw NzAsMTUgKzEyMDg5LDE1IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAJICAvKiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2Vz IGF0dHJpYnV0ZSBpcyB0aGUgb2Zmc2V0IGluIHRoZQotIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2Vj dGlvbi4gICovCi0gCSAgaWYgKCFkd2FyZjJfcmFuZ2VzX3JlYWQgKHJhbmdlc19vZmZzZXQsICZs b3csICZoaWdoLCBjdSwgcHN0KSkKLS0JICAgIHJldHVybiAwOwotKwkgICAgcmV0dXJuIFBDX0JP VU5EU19OT1RfUFJFU0VOVDsKLSAJICAvKiBGb3VuZCBkaXNjb250aW51b3VzIHJhbmdlIG9mIGFk ZHJlc3Nlcy4gICovCi0tCSAgcmV0ID0gLTE7Ci0rCSAgcmV0ID0gUENfQk9VTkRTX1JBTkdFUzsK LSAJfQotICAgICB9Ci0gCi0gICAvKiByZWFkX3BhcnRpYWxfZGllIGhhcyBhbHNvIHRoZSBzdHJp Y3QgTE9XIDwgSElHSCByZXF1aXJlbWVudC4gICovCi0gICBpZiAoaGlnaCA8PSBsb3cpCi0tICAg IHJldHVybiAwOwotKyAgICByZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotIAotICAgLyog V2hlbiB1c2luZyB0aGUgR05VIGxpbmtlciwgLmdudS5saW5rb25jZS4gc2VjdGlvbnMgYXJlIHVz ZWQgdG8KLSAgICAgIGVsaW1pbmF0ZSBkdXBsaWNhdGUgY29waWVzIG9mIGZ1bmN0aW9ucyBhbmQg dnRhYmxlcyBhbmQgc3VjaC4KLUBAIC0xMjA4OSw3ICsxMjEwOCw3IEBAIGR3YXJmMl9nZXRfcGNf Ym91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAgICAgIElm IHRoaXMgaXMgYSBkaXNjYXJkZWQgZnVuY3Rpb24sIG1hcmsgdGhlIHBjIGJvdW5kcyBhcyBpbnZh bGlkLAotICAgICAgc28gdGhhdCBHREIgd2lsbCBpZ25vcmUgaXQuICAqLwotICAgaWYgKGxvdyA9 PSAwICYmICFkd2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3plcm8pCi0tICAgIHJl dHVybiAwOwotKyAgICByZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotIAotICAgKmxvd3Bj ID0gbG93OwotICAgaWYgKGhpZ2hwYykKLUBAIC0xMjExMCw3ICsxMjEyOSw4IEBAIGR3YXJmMl9n ZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLAotICAgQ09SRV9B RERSIGxvdywgaGlnaDsKLSAgIHN0cnVjdCBkaWVfaW5mbyAqY2hpbGQgPSBkaWUtPmNoaWxkOwot IAotLSAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3csICZoaWdoLCBjdSwgTlVM TCkpCi0rICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwgJmxvdywgJmhpZ2gsIGN1LCBO VUxMKQotKyAgICAgICE9IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSAgICAgewotICAgICAgICps b3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwotICAgICAgICpoaWdocGMgPSBtYXggKCpoaWdocGMs IGhpZ2gpOwotQEAgLTEyMTQ3LDcgKzEyMTY3LDggQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3Ry dWN0IGRpZV9pbmZvICpkaWUsCi0gICBDT1JFX0FERFIgYmVzdF9oaWdoID0gKENPUkVfQUREUikg MDsKLSAgIENPUkVfQUREUiBjdXJyZW50X2xvdywgY3VycmVudF9oaWdoOwotIAotLSAgaWYgKGR3 YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZjdXJyZW50X2xvdywgJmN1cnJlbnRfaGlnaCwgY3Us IE5VTEwpKQotKyAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZjdXJyZW50X2xvdywg JmN1cnJlbnRfaGlnaCwgY3UsIE5VTEwpCi0rICAgICAgIT0gUENfQk9VTkRTX05PVF9QUkVTRU5U KQotICAgICB7Ci0gICAgICAgYmVzdF9sb3cgPSBjdXJyZW50X2xvdzsKLSAgICAgICBiZXN0X2hp Z2ggPSBjdXJyZW50X2hpZ2g7Ci0tLSAKLTIuNS41Ci0KCmRpZmYgLS1naXQgYS9nZGItYmFyZS1E V19UQUdfbGV4aWNhbF9ibG9jay0yb2YyLnBhdGNoIGIvZ2RiLWJhcmUtRFdfVEFHX2xleGljYWxf YmxvY2stMm9mMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg4ZmRmMy4u MDAwMDAwMAotLS0gYS9nZGItYmFyZS1EV19UQUdfbGV4aWNhbF9ibG9jay0yb2YyLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMzQzICswLDAgQEAKLUZyb20gZTM4NTU5M2VlZjk4YWM5MmJlNTcx NTllMTQxZjRiODA1ZGFkYmJiMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbiBL cmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAzMCBNYXkg MjAxNiAxNDoxNDo0MyArMDIwMAotU3ViamVjdDogW1BBVENIIDIvMl0gUFIgMTUyMzE6IGltcG9y dCBiYXJlIERXX1RBR19sZXhpY2FsX2Jsb2NrCi0KLUxvY2FsIHZhcmlhYmxlcyBpbiBsYW1iZGFz IGFyZSBub3QgYWNjZXNzaWJsZQotaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93 X2J1Zy5jZ2k/aWQ9MTUyMzEKLQotR0RCOiByZWFkX2xleGljYWxfYmxvY2tfc2NvcGUKLSAgLyog SWdub3JlIGJsb2NrcyB3aXRoIG1pc3Npbmcgb3IgaW52YWxpZCBsb3cgYW5kIGhpZ2ggcGMgYXR0 cmlidXRlcy4gICovCi1bLi4uXQotICBpZiAoIWR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZs b3dwYywgJmhpZ2hwYywgY3UsIE5VTEwpKQotICAgIHJldHVybjsKLQotQnV0IHNvbWV0aW1lcyB0 aGVyZSBpczoKLQotRkFJTDogZ2NjLTUuMy4xLTYuZmMyMy54ODZfNjQKLSA8Mj48OTI+OiBBYmJy ZXYgTnVtYmVyOiAxMSAoRFdfVEFHX2xleGljYWxfYmxvY2spCi0gPDM+PDljPjogQWJicmV2IE51 bWJlcjogMTMgKERXX1RBR19zdHJ1Y3R1cmVfdHlwZSkKLSAgICA8OWQ+ICAgRFdfQVRfbmFtZSAg ICAgICAgOiAoaW5kaXJlY3Qgc3RyaW5nLCBvZmZzZXQ6IDB4M2MpOiA8bGFtYmRhKCk+Ci0gICAg Wy4uLl0KLQotV2hlcmUgRFdfVEFHX2xleGljYWxfYmxvY2sgaGFzIG5vIGF0dHJpYnV0ZXMuICBT dWNoIHdob2xlIHN1YnRyZWUgaXMgY3VycmVudGx5Ci1kcm9wcGVkIGJ5IEdEQiB3aGlsZSBJIHRo aW5rIGl0IHNob3VsZCBqdXN0IGltcG9ydCBhbGwgaXRzIGNoaWxkcmVuIERJRXMuCi0KLUl0IGV2 ZW4gWEZBSUwtPlhQQVNTZXMgZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cDoKLQlj b21taXQgMGZhN2ZlNTA2YzI0MmI0NTljNGMwNWQzMzFlN2M3ZDY2ZmI1MjM5MAotCUF1dGhvcjog Sm9lbCBCcm9iZWNrZXIgPGJyb2JlY2tlckBhZGFjb3JlLmNvbT4KLQkgICAgb3V0IG9mIGxpbmUg ZnVuY3Rpb25zIG5lc3RlZCBpbnNpZGUgaW5saW5lIGZ1bmN0aW9ucy4KLVNvIEkgaGF2ZSByZW1v dmVkIHRoYXQgeGZhaWwuCi0KLWdkYi9DaGFuZ2VMb2cKLTIwMTYtMDUtMzAgIEphbiBLcmF0b2No dmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCVBSIGMrKy8xNTIzMQotCSogZHdh cmYycmVhZC5jIChlbnVtIHBjX2JvdW5kc19raW5kKTogQWRkIFBDX0JPVU5EU19JTlZBTElELgot CShwcm9jZXNzX3BzeW10YWJfY29tcF91bml0X3JlYWRlciwgcmVhZF9mdW5jX3Njb3BlKTogQWRq dXN0IGNhbGxlcnMuCi0JKHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSk6IEltcG9ydCBESUVzIGZy b20gYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jay4KLQkocmVhZF9jYWxsX3NpdGVfc2NvcGUpOiBB ZGp1c3QgY2FsbGVycy4KLQkoZHdhcmYyX2dldF9wY19ib3VuZHMpOiBJbXBsZW1lbnQgcGNfYm91 bmRzX2ludmFsaWQuCi0JKGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMsIGdldF9zY29w ZV9wY19ib3VuZHMpOiBBZGp1c3QgY2FsbGVycy4KLQotZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cK LTIwMTYtMDUtMzAgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4K LQotCVBSIGMrKy8xNTIzMQotCSogZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cDog UmVtb3ZlIHhmYWlscy4KLQkqIGdkYi5kd2FyZjIvZHcyLWxleGljYWwtYmxvY2stYmFyZS5leHA6 IE5ldyBmaWxlLgotLS0tCi0gZ2RiL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMCArKysrCi0gZ2RiL2R3YXJmMnJlYWQuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCA1MyArKysrKysrKysrLS0tLS0tCi0gZ2RiL3Rlc3RzdWl0ZS9D aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwotIGdkYi90ZXN0c3Vp dGUvZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cCAgIHwgIDYgLS0KLSAuLi4vZ2Ri LmR3YXJmMi9kdzItbGV4aWNhbC1ibG9jay1iYXJlLmV4cCAgICAgICAgICB8IDcwICsrKysrKysr KysrKysrKysrKysrKysKLSA1IGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCspLCAyNSBk ZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2R3Mi1sZXhpY2FsLWJsb2NrLWJhcmUuZXhwCi0KLSMjIyBhL2dkYi9DaGFuZ2VMb2cKLSMjIyBi L2dkYi9DaGFuZ2VMb2cKLSMjIC0xLDUgKzEsMTUgQEAKLSAyMDE2LTA1LTMwICBKYW4gS3JhdG9j aHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0gCi0rCVBSIGMrKy8xNTIzMQotKwkq IGR3YXJmMnJlYWQuYyAoZW51bSBwY19ib3VuZHNfa2luZCk6IEFkZCBQQ19CT1VORFNfSU5WQUxJ RC4KLSsJKHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyLCByZWFkX2Z1bmNfc2NvcGUp OiBBZGp1c3QgY2FsbGVycy4KLSsJKHJlYWRfbGV4aWNhbF9ibG9ja19zY29wZSk6IEltcG9ydCBE SUVzIGZyb20gYmFyZSBEV19UQUdfbGV4aWNhbF9ibG9jay4KLSsJKHJlYWRfY2FsbF9zaXRlX3Nj b3BlKTogQWRqdXN0IGNhbGxlcnMuCi0rCShkd2FyZjJfZ2V0X3BjX2JvdW5kcyk6IEltcGxlbWVu dCBwY19ib3VuZHNfaW52YWxpZC4KLSsJKGR3YXJmMl9nZXRfc3VicHJvZ3JhbV9wY19ib3VuZHMs IGdldF9zY29wZV9wY19ib3VuZHMpOiBBZGp1c3QgY2FsbGVycy4KLSsKLSsyMDE2LTA1LTMwICBK YW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0rCi0gCUNvZGUgY2xl YW51cDogZHdhcmYyX2dldF9wY19ib3VuZHM6IC0xLzAvKzEgLT4gZW51bQotIAkqIGR3YXJmMnJl YWQuYyAoZW51bSBwY19ib3VuZHNfa2luZCkgTmV3LgotIAkoZHdhcmYyX2dldF9wY19ib3VuZHMp OiBVc2UgaXQgaW4gdGhlIGRlY2xhcmF0aW9uLgotLS0tIGEvZ2RiL2R3YXJmMnJlYWQuYwotKysr IGIvZ2RiL2R3YXJmMnJlYWQuYwotQEAgLTE2MDcsMTMgKzE2MDcsMTYgQEAgc3RhdGljIGludCBk d2FyZjJfcmFuZ2VzX3JlYWQgKHVuc2lnbmVkLCBDT1JFX0FERFIgKiwgQ09SRV9BRERSICosCi0g CQkJICAgICAgIHN0cnVjdCBkd2FyZjJfY3UgKiwgc3RydWN0IHBhcnRpYWxfc3ltdGFiICopOwot IAotIC8qIEhvdyBkd2FyZjJfZ2V0X3BjX2JvdW5kcyBjb25zdHJ1Y3RlZCBpdHMgKkxPV1BDIGFu ZCAqSElHSFBDIHJldHVybgotLSAgIHZhbHVlcy4gICovCi0rICAgdmFsdWVzLiAgS2VlcCB0aGUg aXRlbXMgb3JkZXJlZCB3aXRoIGluY3JlYXNpbmcgY29uc3RyYWludHMgY29tcGxpYW5jZS4gICov Ci0gZW51bSBwY19ib3VuZHNfa2luZAotIHsKLS0gIC8qIE5vIHZhbGlkIGNvbWJpbmF0aW9uIG9m IERXX0FUX2xvd19wYywgRFdfQVRfaGlnaF9wYyBvciBEV19BVF9yYW5nZXMKLS0gICAgIHdhcyBm b3VuZC4gICovCi0rICAvKiBObyBhdHRyaWJ1dGUgRFdfQVRfbG93X3BjLCBEV19BVF9oaWdoX3Bj IG9yIERXX0FUX3JhbmdlcyB3YXMgZm91bmQuICAqLwotICAgUENfQk9VTkRTX05PVF9QUkVTRU5U LAotIAotKyAgLyogU29tZSBvZiB0aGUgYXR0cmlidXRlcyBEV19BVF9sb3dfcGMsIERXX0FUX2hp Z2hfcGMgb3IgRFdfQVRfcmFuZ2VzCi0rICAgICB3ZXJlIHByZXNlbnQgYnV0IHRoZXkgZG8gbm90 IGZvcm0gYSB2YWxpZCByYW5nZSBvZiBQQyBhZGRyZXNzZXMuICAqLwotKyAgUENfQk9VTkRTX0lO VkFMSUQsCi0rCi0gICAvKiBEaXNjb250aWd1b3VzIHJhbmdlIHdhcyBmb3VuZCAtIHRoYXQgaXMg RFdfQVRfcmFuZ2VzIHdhcyBmb3VuZC4gICovCi0gICBQQ19CT1VORFNfUkFOR0VTLAotIAotQEAg LTYwMTksNyArNjAyMiw3IEBAIHByb2Nlc3NfcHN5bXRhYl9jb21wX3VuaXRfcmVhZGVyIChjb25z dCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAotICAgICAgIGZpcnN0X2RpZSA9IGxv YWRfcGFydGlhbF9kaWVzIChyZWFkZXIsIGluZm9fcHRyLCAxKTsKLSAKLSAgICAgICBzY2FuX3Bh cnRpYWxfc3ltYm9scyAoZmlyc3RfZGllLCAmbG93cGMsICZoaWdocGMsCi0tCQkJICAgIGN1X2Jv dW5kc19raW5kID09IFBDX0JPVU5EU19OT1RfUFJFU0VOVCwgY3UpOwotKwkJCSAgICBjdV9ib3Vu ZHNfa2luZCA8PSBQQ19CT1VORFNfSU5WQUxJRCwgY3UpOwotIAotICAgICAgIC8qIElmIHdlIGRp ZG4ndCBmaW5kIGEgbG93cGMsIHNldCBpdCB0byBoaWdocGMgdG8gYXZvaWQKLSAJIGNvbXBsYWlu dHMgZnJvbSBgbWFpbnQgY2hlY2snLgkgKi8KLUBAIC02MDI4LDcgKzYwMzEsNyBAQCBwcm9jZXNz X3BzeW10YWJfY29tcF91bml0X3JlYWRlciAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3Mg KnJlYWRlciwKLSAKLSAgICAgICAvKiBJZiB0aGUgY29tcGlsYXRpb24gdW5pdCBkaWRuJ3QgaGF2 ZSBhbiBleHBsaWNpdCBhZGRyZXNzIHJhbmdlLAotIAkgdGhlbiB1c2UgdGhlIGluZm9ybWF0aW9u IGV4dHJhY3RlZCBmcm9tIGl0cyBjaGlsZCBkaWVzLiAgKi8KLS0gICAgICBpZiAoY3VfYm91bmRz X2tpbmQgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotKyAgICAgIGlmIChjdV9ib3VuZHNfa2lu ZCA8PSBQQ19CT1VORFNfSU5WQUxJRCkKLSAJewotIAkgIGJlc3RfbG93cGMgPSBsb3dwYzsKLSAJ ICBiZXN0X2hpZ2hwYyA9IGhpZ2hwYzsKLUBAIC0xMTM5MCw3ICsxMTM5Myw3IEBAIHJlYWRfZnVu Y19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotIAot ICAgLyogSWdub3JlIGZ1bmN0aW9ucyB3aXRoIG1pc3Npbmcgb3IgaW52YWxpZCBsb3cgYW5kIGhp Z2ggcGMgYXR0cmlidXRlcy4gICovCi0gICBpZiAoZHdhcmYyX2dldF9wY19ib3VuZHMgKGRpZSwg Jmxvd3BjLCAmaGlnaHBjLCBjdSwgTlVMTCkKLS0gICAgICA9PSBQQ19CT1VORFNfTk9UX1BSRVNF TlQpCi0rICAgICAgPD0gUENfQk9VTkRTX0lOVkFMSUQpCi0gICAgIHsKLSAgICAgICBhdHRyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZXh0ZXJuYWwsIGN1KTsKLSAgICAgICBpZiAoIWF0dHIg fHwgIURXX1VOU05EIChhdHRyKSkKLUBAIC0xMTU1Miw5ICsxMTU1NSwyMCBAQCByZWFkX2xleGlj YWxfYmxvY2tfc2NvcGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKLSAgICAgIGFzIG11bHRpcGxlIGxleGljYWwgYmxvY2tzPyAgSGFuZGxpbmcgY2hpbGRyZW4g aW4gYSBzYW5lIHdheSB3b3VsZAotICAgICAgYmUgbmFzdHkuICBNaWdodCBiZSBlYXNpZXIgdG8g cHJvcGVybHkgZXh0ZW5kIGdlbmVyaWMgYmxvY2tzIHRvCi0gICAgICBkZXNjcmliZSByYW5nZXMu ICAqLwotLSAgaWYgKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywg Y3UsIE5VTEwpCi0tICAgICAgPT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotLSAgICByZXR1cm47 Ci0rICBzd2l0Y2ggKGR3YXJmMl9nZXRfcGNfYm91bmRzIChkaWUsICZsb3dwYywgJmhpZ2hwYywg Y3UsIE5VTEwpKQotKyAgICB7Ci0rICAgIGNhc2UgUENfQk9VTkRTX05PVF9QUkVTRU5UOgotKyAg ICAgIC8qIERXX1RBR19sZXhpY2FsX2Jsb2NrIGhhcyBubyBhdHRyaWJ1dGVzLCBwcm9jZXNzIGl0 cyBjaGlsZHJlbiBhcyBpZgotKwkgdGhlcmUgd2FzIG5vIHdyYXBwaW5nIGJ5IHRoYXQgRFdfVEFH X2xleGljYWxfYmxvY2suCi0rCSBHQ0MgZG9lcyBubyBsb25nZXIgcHJvZHVjZXMgc3VjaCBEV0FS RiBzaW5jZSBHQ0MgcjIyNDE2MS4gICovCi0rICAgICAgZm9yIChjaGlsZF9kaWUgPSBkaWUtPmNo aWxkOwotKwkgICBjaGlsZF9kaWUgIT0gTlVMTCAmJiBjaGlsZF9kaWUtPnRhZzsKLSsJICAgY2hp bGRfZGllID0gc2libGluZ19kaWUgKGNoaWxkX2RpZSkpCi0rCXByb2Nlc3NfZGllIChjaGlsZF9k aWUsIGN1KTsKLSsgICAgICByZXR1cm47Ci0rICAgIGNhc2UgUENfQk9VTkRTX0lOVkFMSUQ6Ci0r ICAgICAgcmV0dXJuOwotKyAgICB9Ci0gICBsb3dwYyA9IGdkYmFyY2hfYWRqdXN0X2R3YXJmMl9h ZGRyIChnZGJhcmNoLCBsb3dwYyArIGJhc2VhZGRyKTsKLSAgIGhpZ2hwYyA9IGdkYmFyY2hfYWRq dXN0X2R3YXJmMl9hZGRyIChnZGJhcmNoLCBoaWdocGMgKyBiYXNlYWRkcik7Ci0gCi1AQCAtMTE3 NjQsNyArMTE3NzgsNyBAQCByZWFkX2NhbGxfc2l0ZV9zY29wZSAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQotIAotIAkgIC8qIERXX0FUX2VudHJ5X3BjIHNob3Vs ZCBiZSBwcmVmZXJyZWQuICAqLwotIAkgIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAodGFyZ2V0 X2RpZSwgJmxvd3BjLCBOVUxMLCB0YXJnZXRfY3UsIE5VTEwpCi0tCSAgICAgID09IFBDX0JPVU5E U19OT1RfUFJFU0VOVCkKLSsJICAgICAgPD0gUENfQk9VTkRTX0lOVkFMSUQpCi0gCSAgICBjb21w bGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsCi0gCQkgICAgICAgXygiRFdfQVRfR05VX2NhbGxf c2l0ZV90YXJnZXQgdGFyZ2V0IERJRSBoYXMgaW52YWxpZCAiCi0gCQkgICAgICAgICAibG93IHBj LCBmb3IgcmVmZXJlbmNpbmcgRElFIDB4JXggW2luIG1vZHVsZSAlc10iKSwKLUBAIC0xMjA0MSw3 ICsxMjA1NSw3IEBAIGR3YXJmMl9yYW5nZXNfcmVhZCAodW5zaWduZWQgb2Zmc2V0LCBDT1JFX0FE RFIgKmxvd19yZXR1cm4sCi0gCi0gLyogR2V0IGxvdyBhbmQgaGlnaCBwYyBhdHRyaWJ1dGVzIGZy b20gYSBkaWUuICBTZWUgZW51bSBwY19ib3VuZHNfa2luZAotICAgIGRlZmluaXRpb24gZm9yIHRo ZSByZXR1cm4gdmFsdWUuICAqTE9XUEMgYW5kICpISUdIUEMgYXJlIHNldCBpZmYKLS0gICBQQ19C T1VORFNfTk9UX1BSRVNFTlQgaXMgbm90IHJldHVybmVkLiAgKi8KLSsgICBuZWl0aGVyIFBDX0JP VU5EU19OT1RfUFJFU0VOVCBub3IgUENfQk9VTkRTX0lOVkFMSUQgYXJlIHJldHVybmVkLiAgKi8K LSAKLSBzdGF0aWMgZW51bSBwY19ib3VuZHNfa2luZAotIGR3YXJmMl9nZXRfcGNfYm91bmRzIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLUBAIC0xMjA1Miw3ICsxMjA2 Niw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9B RERSICpsb3dwYywKLSAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHJfaGlnaDsKLSAgIENPUkVfQURE UiBsb3cgPSAwOwotICAgQ09SRV9BRERSIGhpZ2ggPSAwOwotLSAgZW51bSBwY19ib3VuZHNfa2lu ZCByZXQgPSBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0rICBlbnVtIHBjX2JvdW5kc19raW5kIHJl dDsKLSAKLSAgIGF0dHJfaGlnaCA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2hpZ2hfcGMsIGN1 KTsKLSAgIGlmIChhdHRyX2hpZ2gpCi1AQCAtMTIwNjcsNyArMTIwODEsNyBAQCBkd2FyZjJfZ2V0 X3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIENPUkVfQUREUiAqbG93cGMsCi0gCX0K LSAgICAgICBlbHNlCi0gCS8qIEZvdW5kIGhpZ2ggdy9vIGxvdyBhdHRyaWJ1dGUuICAqLwotLQly ZXR1cm4gUENfQk9VTkRTX05PVF9QUkVTRU5UOwotKwlyZXR1cm4gUENfQk9VTkRTX0lOVkFMSUQ7 Ci0gCi0gICAgICAgLyogRm91bmQgY29uc2VjdXRpdmUgcmFuZ2Ugb2YgYWRkcmVzc2VzLiAgKi8K LSAgICAgICByZXQgPSBQQ19CT1VORFNfSElHSF9MT1c7Ci1AQCAtMTIwODksMTUgKzEyMTAzLDE3 IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERS ICpsb3dwYywKLSAJICAvKiBWYWx1ZSBvZiB0aGUgRFdfQVRfcmFuZ2VzIGF0dHJpYnV0ZSBpcyB0 aGUgb2Zmc2V0IGluIHRoZQotIAkgICAgIC5kZWJ1Z19yYW5nZXMgc2VjdGlvbi4gICovCi0gCSAg aWYgKCFkd2FyZjJfcmFuZ2VzX3JlYWQgKHJhbmdlc19vZmZzZXQsICZsb3csICZoaWdoLCBjdSwg cHN0KSkKLS0JICAgIHJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0rCSAgICByZXR1cm4g UENfQk9VTkRTX0lOVkFMSUQ7Ci0gCSAgLyogRm91bmQgZGlzY29udGludW91cyByYW5nZSBvZiBh ZGRyZXNzZXMuICAqLwotIAkgIHJldCA9IFBDX0JPVU5EU19SQU5HRVM7Ci0gCX0KLSsgICAgICBl bHNlCi0rCXJldHVybiBQQ19CT1VORFNfTk9UX1BSRVNFTlQ7Ci0gICAgIH0KLSAKLSAgIC8qIHJl YWRfcGFydGlhbF9kaWUgaGFzIGFsc28gdGhlIHN0cmljdCBMT1cgPCBISUdIIHJlcXVpcmVtZW50 LiAgKi8KLSAgIGlmIChoaWdoIDw9IGxvdykKLS0gICAgcmV0dXJuIFBDX0JPVU5EU19OT1RfUFJF U0VOVDsKLSsgICAgcmV0dXJuIFBDX0JPVU5EU19JTlZBTElEOwotIAotICAgLyogV2hlbiB1c2lu ZyB0aGUgR05VIGxpbmtlciwgLmdudS5saW5rb25jZS4gc2VjdGlvbnMgYXJlIHVzZWQgdG8KLSAg ICAgIGVsaW1pbmF0ZSBkdXBsaWNhdGUgY29waWVzIG9mIGZ1bmN0aW9ucyBhbmQgdnRhYmxlcyBh bmQgc3VjaC4KLUBAIC0xMjEwOCw3ICsxMjEyNCw3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgQ09SRV9BRERSICpsb3dwYywKLSAgICAgIElmIHRoaXMgaXMg YSBkaXNjYXJkZWQgZnVuY3Rpb24sIG1hcmsgdGhlIHBjIGJvdW5kcyBhcyBpbnZhbGlkLAotICAg ICAgc28gdGhhdCBHREIgd2lsbCBpZ25vcmUgaXQuICAqLwotICAgaWYgKGxvdyA9PSAwICYmICFk d2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0aW9uX2F0X3plcm8pCi0tICAgIHJldHVybiBQQ19C T1VORFNfTk9UX1BSRVNFTlQ7Ci0rICAgIHJldHVybiBQQ19CT1VORFNfSU5WQUxJRDsKLSAKLSAg ICpsb3dwYyA9IGxvdzsKLSAgIGlmIChoaWdocGMpCi1AQCAtMTIxMjksOCArMTIxNDUsNyBAQCBk d2FyZjJfZ2V0X3N1YnByb2dyYW1fcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwKLSAg IENPUkVfQUREUiBsb3csIGhpZ2g7Ci0gICBzdHJ1Y3QgZGllX2luZm8gKmNoaWxkID0gZGllLT5j aGlsZDsKLSAKLS0gIGlmIChkd2FyZjJfZ2V0X3BjX2JvdW5kcyAoZGllLCAmbG93LCAmaGlnaCwg Y3UsIE5VTEwpCi0tICAgICAgIT0gUENfQk9VTkRTX05PVF9QUkVTRU5UKQotKyAgaWYgKGR3YXJm Ml9nZXRfcGNfYm91bmRzIChkaWUsICZsb3csICZoaWdoLCBjdSwgTlVMTCkgPj0gUENfQk9VTkRT X1JBTkdFUykKLSAgICAgewotICAgICAgICpsb3dwYyA9IG1pbiAoKmxvd3BjLCBsb3cpOwotICAg ICAgICpoaWdocGMgPSBtYXggKCpoaWdocGMsIGhpZ2gpOwotQEAgLTEyMTY4LDcgKzEyMTgzLDcg QEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsCi0gICBDT1JFX0FE RFIgY3VycmVudF9sb3csIGN1cnJlbnRfaGlnaDsKLSAKLSAgIGlmIChkd2FyZjJfZ2V0X3BjX2Jv dW5kcyAoZGllLCAmY3VycmVudF9sb3csICZjdXJyZW50X2hpZ2gsIGN1LCBOVUxMKQotLSAgICAg ICE9IFBDX0JPVU5EU19OT1RfUFJFU0VOVCkKLSsgICAgICA+PSBQQ19CT1VORFNfUkFOR0VTKQot ICAgICB7Ci0gICAgICAgYmVzdF9sb3cgPSBjdXJyZW50X2xvdzsKLSAgICAgICBiZXN0X2hpZ2gg PSBjdXJyZW50X2hpZ2g7Ci0jIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZwotIyMjIGIvZ2Ri L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKLSMjIC0xLDMgKzEsOSBAQAotKzIwMTYtMDUtMzAgIEphbiBL cmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSsKLSsJUFIgYysrLzE1MjMx Ci0rCSogZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4cDogUmVtb3ZlIHhmYWlscy4K LSsJKiBnZGIuZHdhcmYyL2R3Mi1sZXhpY2FsLWJsb2NrLWJhcmUuZXhwOiBOZXcgZmlsZS4KLSsK LSAyMDE2LTA1LTI3ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29tPgotIAotIAkqIGdk Yi50aHJlYWRzL2F0dGFjaC1tYW55LXNob3J0LWxpdmVkLXRocmVhZHMuZXhwIChiYWRfZGVqYWdu dSk6Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvb3V0X29mX2xpbmVfaW5faW5saW5lZC5l eHAKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFkYS9vdXRfb2ZfbGluZV9pbl9pbmxpbmVkLmV4 cAotQEAgLTIzLDIwICsyMywxNCBAQCBpZiB7W2dkYl9jb21waWxlX2FkYSAiJHtzcmNmaWxlfSIg IiR7YmluZmlsZX0iIGV4ZWN1dGFibGUge2RlYnVnIG9wdGltaXplPS1PMn1dCi0gCi0gY2xlYW5f cmVzdGFydCAke3Rlc3RmaWxlfQotIAotLSMgR0NDIGN1cnJlbnRseSBpcyBtaXNzaW5nIGEgRFdf QVRfb3JpZ2luIGF0dHJpYnV0ZSBpbiBvbmUgb2YgdGhlCi0tIyBsZXhpY2FsIGJsb2NrcywgcHJl dmVudGluZyBHREIgZnJvbSBjcmVhdGluZyBhIHN5bWJvbCBmb3IgdGhlCi0tIyBzdWJwcm9ncmFt IHdlIHdhbnQgdG8gYnJlYWsgb24uCi0tc2V0dXBfeGZhaWwgIiotKi0qIgotIGdkYl90ZXN0ICJi cmVhayBmb29fbzIyNF8wMjEuY2hpbGQxLmNoaWxkMiIgXAotICAgICAgICAgICJCcmVha3BvaW50 IFxbMC05XF0rIGF0Lio6IGZpbGUgLipmb29fbzIyNF8wMjEuYWRiLCBsaW5lIFxbMC05XF0rLiIK LSAKLSBnZGJfcnVuX2NtZAotLXNldHVwX3hmYWlsICIqLSotKiIKLSBnZGJfdGVzdCAiIiBcCi0g ICAgICAgICAgIkJyZWFrcG9pbnQgJGRlY2ltYWwsIGZvb19vMjI0XzAyMVxcLmNoaWxkMVxcLmNo aWxkMiBcXChzPVxcLlxcLlxcLlxcKS4qIgotIAotIHNldCBvcHRfYWRkcl9pbiAiKCRoZXggaW4p PyIKLS1zZXR1cF94ZmFpbCAiKi0qLSoiCi0gZ2RiX3Rlc3QgImJ0IiBcCi0gICAgIFttdWx0aV9s aW5lICIjMCArJG9wdF9hZGRyX2luICtmb29fbzIyNF8wMjFcXC5jaGlsZDFcXC5jaGlsZDIgXFwo cz1cXC5cXC5cXC5cXCkuKiIgXAotICAgICAgICAgICAgICAgICAiIzEgKyRvcHRfYWRkcl9pbiAr Zm9vX28yMjRfMDIxXFwuY2hpbGQxIFxcKFxcKS4qIiBcCi0tLS0gL2Rldi9udWxsCi0rKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWxleGljYWwtYmxvY2stYmFyZS5leHAKLUBAIC0w LDAgKzEsNzAgQEAKLSsjIENvcHlyaWdodCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KLStsb2FkX2xpYiBkd2FyZi5l eHAKLSsKLSsjIFRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gb24gdGFyZ2V0cyB3aGljaCBzdXBw b3J0IERXQVJGLTIgYW5kIHVzZSBnYXMuCi0raWYgeyFbZHdhcmYyX3N1cHBvcnRdfSB7Ci0rICAg IHJldHVybiAwCi0rfQotKwotK3N0YW5kYXJkX3Rlc3RmaWxlIC5TIG1haW4uYwotKwotKyMgTWFr ZSBzb21lIERXQVJGIGZvciB0aGUgdGVzdC4KLStzZXQgYXNtX2ZpbGUgW3N0YW5kYXJkX291dHB1 dF9maWxlICRzcmNmaWxlXQotK0R3YXJmOjphc3NlbWJsZSAkYXNtX2ZpbGUgewotKyAgICBjdSB7 fSB7Ci0rCWNvbXBpbGVfdW5pdCB7Ci0rCSAgICB7bG93X3BjIFtnZGJfdGFyZ2V0X3N5bWJvbCBt YWluXSBEV19GT1JNX2FkZHJ9Ci0rCSAgICB7aGlnaF9wYyBbZ2RiX3RhcmdldF9zeW1ib2wgbWFp bl0rMHgxMDAwMCBEV19GT1JNX2FkZHJ9Ci0rCX0gewotKwkgICAgZGVjbGFyZV9sYWJlbHMgaW50 ZWdlcl9sYWJlbAotKwotKwkgICAgaW50ZWdlcl9sYWJlbDogRFdfVEFHX2Jhc2VfdHlwZSB7Ci0r CQl7RFdfQVRfYnl0ZV9zaXplIDQgRFdfRk9STV9zZGF0YX0KLSsJCXtEV19BVF9lbmNvZGluZyAg QERXX0FURV9zaWduZWR9Ci0rCQl7RFdfQVRfbmFtZSAgICAgIGludGVnZXJ9Ci0rCSAgICB9Ci0r Ci0rCSAgICBEV19UQUdfc3VicHJvZ3JhbSB7Ci0rCQl7bmFtZSBtYWlufQotKwkJe0RXX0FUX2V4 dGVybmFsIDEgZmxhZ30KLSsJCXtsb3dfcGMgW2dkYl90YXJnZXRfc3ltYm9sIG1haW5dIERXX0ZP Uk1fYWRkcn0KLSsJCXtoaWdoX3BjIFtnZGJfdGFyZ2V0X3N5bWJvbCBtYWluXSsweDEwMDAwIERX X0ZPUk1fYWRkcn0KLSsJICAgIH0gewotKwkJRFdfVEFHX2xleGljYWxfYmxvY2sgewotKwkJfSB7 Ci0rCQkgICAgRFdfVEFHX3ZhcmlhYmxlIHsKLSsJCQl7RFdfQVRfbmFtZSB0ZXN0dmFyfQotKwkJ CSAgICB7RFdfQVRfdHlwZSA6JGludGVnZXJfbGFiZWx9Ci0rCQkJICAgIHtEV19BVF9leHRlcm5h bCAxIGZsYWd9Ci0rCQkJe0RXX0FUX2xvY2F0aW9uIHsKLSsJCQkgICAgRFdfT1BfYWRkciBbZ2Ri X3RhcmdldF9zeW1ib2wgbWFpbl0KLSsJCQl9IFNQRUNJQUxfZXhwcn0KLSsJCSAgICB9Ci0rCQl9 Ci0rCSAgICB9Ci0rCX0KLSsgICAgfQotK30KLSsKLStpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5n ICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSBcCi0rCQkJICBbbGlzdCAkc3JjZmlsZTIgJGFz bV9maWxlXSB7bm9kZWJ1Z31dIH0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rcnVudG9fbWFp bgotKwotKyMgRkFJTGluZyBHREIgZGlkIHByaW50OiBObyBzeW1ib2wgInRlc3R2YXIiIGluIGN1 cnJlbnQgY29udGV4dC4KLStnZGJfdGVzdCAicCB0ZXN0dmFyIiB7ID0gLT9bMC05XSt9Ci0tLSAK LTIuNS41Ci0KCmRpZmYgLS1naXQgYS9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0 Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gKaW5kZXggYjY1N2JkNS4u YmEwNjIyYSAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1iZWZvcmUtcnVuLnBhdGNo CisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRjaApAQCAtMSw3ICsxLDcg QEAKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbGludXg2NC5t aAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvY29uZmlnL2kz ODYvbGludXg2NC5taAkyMDE2LTAyLTExIDIwOjU2OjMyLjQ3MDY3NDg3NyArMDEwMAotKysrIGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTYtMDItMTEg MjA6NTY6NTEuMTU4Nzk3NzEyICswMTAwCistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9n ZGIvY29uZmlnL2kzODYvbGludXg2NC5taAkyMDE2LTA4LTA3IDIyOjI3OjEzLjg4OTI4NTI3NCAr MDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1o CTIwMTYtMDgtMDcgMjI6Mjk6MjAuNDUxMzExMTI0ICswMjAwCiBAQCAtNyw3ICs3LDcgQEAKICAJ bGludXgtcHJvY2ZzLm8gbGludXgtcHRyYWNlLm8gbGludXgtYnRyYWNlLm8gXAogIAlsaW51eC13 YWl0cGlkLm8gbGludXgtcGVyc29uYWxpdHkubyB4ODYtbGludXgubyBcCkBAIC0xMSwxMCArMTEs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9saW51eDY0 Lm1oCiAgTkFUX0NERVBTID0gJChzcmNkaXIpL3Byb2Mtc2VydmljZS5saXN0CiAgCiAgIyBUaGUg ZHluYW1pY2FsbHkgbG9hZGVkIGxpYnRocmVhZF9kYiBuZWVkcyBhY2Nlc3MgdG8gc3ltYm9scyBp biB0aGUKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY29uZmlnL2kzODYvbGludXgu bWgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlnL2kzODYvbGludXgubWgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9jb25maWcvaTM4 Ni9saW51eC5taAkyMDE2LTAyLTExIDIwOjU2OjI2LjkyNTYzODQzMCArMDEwMAotKysrIGdkYi03 LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE2LTAyLTExIDIwOjU2 OjMyLjQ3MTY3NDg4NCArMDEwMAorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2Nv bmZpZy9pMzg2L2xpbnV4Lm1oCTIwMTYtMDgtMDcgMjI6Mjc6MTMuODg5Mjg1Mjc0ICswMjAwCisr KysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCTIwMTYtMDgt MDcgMjI6Mjk6MjAuNDUxMzExMTI0ICswMjAwCiBAQCAtMSw2ICsxLDYgQEAKICAjIEhvc3Q6IElu dGVsIDM4NiBydW5uaW5nIEdOVS9MaW51eC4KICAKQEAgLTIzLDEwICsyMywxMCBAQCBJbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCiAgTkFUREVQRklM RVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAogIAl4ODYtbmF0Lm8geDg2LWRyZWdzLm8g aTM4Ni1saW51eC1uYXQubyB4ODYtbGludXgtbmF0Lm8gXAogIAlwcm9jLXNlcnZpY2UubyBsaW51 eC10aHJlYWQtZGIubyBcCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NvbmZpZy9p Mzg2L25tLWxpbnV4LmgKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvY29uZmlnL2kz ODYvbm0tbGludXguaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcv aTM4Ni9ubS1saW51eC5oCTIwMTYtMDItMTEgMjA6NTY6MzIuNDcxNjc0ODg0ICswMTAwCisrKysg Z2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4LmgJMjAxNi0wOC0w NyAyMjoyOToyMC40NTEzMTExMjQgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBOYXRpdmUg c3VwcG9ydCBmb3IgR05VL0xpbnV4IGkzODYuCiArCkBAIC01NiwxMCArNTYsMTAgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4Ni9ubS1saW51eC5oCiArI2RlZmlu ZSB0YXJnZXRfY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50KHR5cGUsIGNudCwgb3QpIDEKICsK ICsjZW5kaWYgLyogTk1fTElOVVg2NF9IICovCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3 L2dkYi9jb25maWcvaTM4Ni9ubS1saW51eDY0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2 MDIxMS9nZGIvY29uZmlnL2kzODYvbm0tbGludXg2NC5oCTIwMTYtMDItMTEgMjA6NTY6MzIuNDcx Njc0ODg0ICswMTAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL2NvbmZpZy9pMzg2L25t LWxpbnV4NjQuaAkyMDE2LTA4LTA3IDIyOjI5OjIwLjQ1MTMxMTEyNCArMDIwMAogQEAgLTAsMCAr MSwyOCBAQAogKy8qIE5hdGl2ZSBzdXBwb3J0IGZvciBHTlUvTGludXggYW1kNjQuCiArCkBAIC04 OSwxMyArODksMTMgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9jb25maWcvaTM4 Ni9ubS1saW51eDY0LmgKICsjZGVmaW5lIHRhcmdldF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9p bnQodHlwZSwgY250LCBvdCkgMQogKwogKyNlbmRpZiAvKiBOTV9MSU5VWDY0X0ggKi8KLUluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGFyZ2V0LmgKK0luZGV4OiBnZGItNy4xMS45MC4y MDE2MDgwNy9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIx MS5vcmlnL2dkYi90YXJnZXQuaAkyMDE2LTAyLTExIDIwOjU2OjI2LjkyNjYzODQzNyArMDEwMAot KysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi90YXJnZXQuaAkyMDE2LTAyLTExIDIwOjU2OjMy LjQ3MjY3NDg5MCArMDEwMAotQEAgLTE5MjQsOSArMTkyNCwxMSBAQAotICAgIENOVCBpcyB0aGUg bnVtYmVyIG9mIHN1Y2ggd2F0Y2hwb2ludHMgdXNlZCBzbyBmYXIsIGluY2x1ZGluZyB0aGlzCi0g ICAgb25lLiAgT1RIRVJUWVBFIGlzIHdobyBrbm93cyB3aGF0Li4uICAqLworLS0tIGdkYi03LjEx LjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3RhcmdldC5oCTIwMTYtMDgtMDcgMjI6Mjc6MTMuODg5Mjg1 Mjc0ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3RhcmdldC5oCTIwMTYtMDgt MDcgMjI6Mjk6MjAuNDUyMzExMTMyICswMjAwCitAQCAtMTkzOSw5ICsxOTM5LDExIEBACisgICAg b25lLiAgT1RIRVJUWVBFIGlzIHRoZSBudW1iZXIgb2Ygd2F0Y2hwb2ludHMgb2Ygb3RoZXIgdHlw ZXMgdGhhbgorICAgIHRoaXMgb25lIHVzZWQgc28gZmFyLiAgKi8KICAKICsjaWZuZGVmIHRhcmdl dF9jYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQKICAjZGVmaW5lIHRhcmdldF9jYW5fdXNlX2hh cmR3YXJlX3dhdGNocG9pbnQoVFlQRSxDTlQsT1RIRVJUWVBFKSBcCkBAIC0xMDUsMTAgKzEwNSwx MCBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3RhcmdldC5oCiAgCiAgLyogUmV0 dXJucyB0aGUgbnVtYmVyIG9mIGRlYnVnIHJlZ2lzdGVycyBuZWVkZWQgdG8gd2F0Y2ggdGhlIGdp dmVuCiAgICAgbWVtb3J5IHJlZ2lvbiwgb3IgemVybyBpZiBub3Qgc3VwcG9ydGVkLiAgKi8KLUlu ZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9p bnQtaHctYmVmb3JlLXJ1bi5leHAKK0luZGV4OiBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHct YmVmb3JlLXJ1bi5leHAJMjAxNi0wMi0xMSAyMDo1NjozMi40NzI2NzQ4OTAgKzAxMDAKKysrKyBn ZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3dhdGNocG9pbnQtaHct YmVmb3JlLXJ1bi5leHAJMjAxNi0wOC0wNyAyMjoyOToyMC40NTIzMTExMzIgKzAyMDAKIEBAIC0w LDAgKzEsNDAgQEAKICsjIENvcHlyaWdodCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgogKwpAQCAtMTUwLDMgKzE1MCwxNiBAQCBJbmRleDogZ2RiLTcuMTAuOTAuMjAx NjAyMTEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9yZS1ydW4uZXhw CiArZ2RiX3Rlc3QgIiIgIm1haW4gLiogYXQgLioiICJzdGFydCIKICsKICtnZGJfdGVzdCAiY29u dGludWUiICJDb250aW51aW5nLlxyXG5cclxuSGFyZHdhcmUgcmVhZCB3YXRjaHBvaW50IFxbMC05 XF0rOiB3YXRjaGVlXHJcblxyXG5WYWx1ZSA9IDBcclxuLioiCitJbmRleDogZ2RiLTcuMTEuOTAu MjAxNjA4MDcvZ2RiL2JyZWFrcG9pbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIw MTYwODA3Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE2LTA4LTA3IDIyOjMzOjM4LjgzNTQwNTQ1 OCArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9icmVha3BvaW50LmMJMjAxNi0w OC0wNyAyMjozNDo0NS4wMjM5NDE5NTAgKzAyMDAKK0BAIC0xNDk1Myw3ICsxNDk1Myw3IEBACisg CisgICBpZiAoYnB0LT50eXBlID09IGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQpCisgICAgIHsKKy0g ICAgICBpbnQgaTsKKysgICAgICBpbnQgaSBBVFRSSUJVVEVfVU5VU0VEOworICAgICAgIGkgPSBo d19icmVha3BvaW50X3VzZWRfY291bnQgKCk7CisgICAgICAgdGFyZ2V0X3Jlc291cmNlc19vayA9 IAorIAl0YXJnZXRfY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChicF9oYXJkd2FyZV9icmVh a3BvaW50LCAKCmRpZmYgLS1naXQgYS9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2gg Yi9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2gKaW5kZXggODM4OGM4Ni4uY2JhMWE1 YiAxMDA2NDQKLS0tIGEvZ2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBhdGNoCisrKyBiL2dk Yi1kdHMtcmhlbDYtcHl0aG9uLWNvbXBhdC5wYXRjaApAQCAtMSwxMCArMSwxMCBAQAogaHR0cHM6 Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0xMDIwMDA0CiAKLUluZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZGF0YS1kaXJlY3Rvcnkv TWFrZWZpbGUuaW4JMjAxNS0wNS0zMSAxODowNTo0My4wNDY3NDYzNTEgKzAyMDAKLSsrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE1LTA1LTMx IDE4OjA1OjU4LjQ4Mzg0MTY1NSArMDIwMAotQEAgLTYwLDYgKzYwLDggQEAgUFlUSE9OX0ZJTEVf TElTVCA9IFwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi9kYXRhLWRpcmVjdG9y eS9NYWtlZmlsZS5pbgkyMDE2LTA3LTAzIDE2OjMyOjEzLjc4ODE2NDA0MSArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNjMwL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgkyMDE2LTA3 LTAzIDE2OjMyOjE3Ljg2ODE5ODg1MCArMDIwMAorQEAgLTYxLDYgKzYxLDggQEAKICAJZ2RiL2Zy YW1lcy5weSBcCiAgCWdkYi9GcmFtZUl0ZXJhdG9yLnB5IFwKICAJZ2RiL0ZyYW1lRGVjb3JhdG9y LnB5IFwKQEAgLTEzLDE4ICsxMywxOCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv ZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KICAJZ2RiL3R5cGVzLnB5IFwKICAJZ2RiL3ByaW50 aW5nLnB5IFwKICAJZ2RiL3Vud2luZGVyLnB5IFwKLUBAIC03Niw2ICs3OCw3IEBAIFBZVEhPTl9G SUxFX0xJU1QgPSBcCitAQCAtNzcsNiArNzksNyBAQAogIAlnZGIvY29tbWFuZC9wcmV0dHlfcHJp bnRlcnMucHkgXAogIAlnZGIvY29tbWFuZC9wcm9tcHQucHkgXAogIAlnZGIvY29tbWFuZC9leHBs b3JlLnB5IFwKICsJZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL19f aW5pdF9fLnB5IFwKKyAJZ2RiL2Z1bmN0aW9uL2FzX3N0cmluZy5weSBcCiAgCWdkYi9mdW5jdGlv bi9jYWxsZXJfaXMucHkgXAotIAlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5IFwKLUluZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5 CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVX cmFwcGVyLnB5CTIwMTUtMDUtMzEgMTg6MDU6NTguNDg0ODQxNjYxICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQkyMDE2LTA3 LTAzIDE2OjMyOjE3Ljg2OTE5ODg1OSArMDIwMAogQEAgLTAsMCArMSwxMjIgQEAKICsjIFdyYXBw ZXIgQVBJIGZvciBmcmFtZXMuCiArCkBAIC0xNDgsMTAgKzE0OCwxMCBAQCBJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CiArCiArICAg IGRlZiBfX2dldGF0dHJfXyAoc2VsZiwgbmFtZSk6CiArICAgICAgICByZXR1cm4gZ2V0YXR0ciAo c2VsZi5mcmFtZSwgbmFtZSkKLUluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24v bGliL2dkYi9iYWNrdHJhY2UucHkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0 aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CTIwMTUtMDUtMzEgMTg6MDU6NTguNDg0ODQx NjYxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhvbi9saWIvZ2RiL2Jh Y2t0cmFjZS5weQkyMDE2LTA3LTAzIDE2OjMyOjE3Ljg2OTE5ODg1OSArMDIwMAogQEAgLTAsMCAr MSw0MiBAQAogKyMgRmlsdGVyaW5nIGJhY2t0cmFjZS4KICsKQEAgLTE5NSwxMCArMTk1LDEwIEBA IEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2Uu cHkKICsgICAgICAgIHJldHVybiBpdGVyCiArICAgIHJldHVybiBvbGRfZnJhbWVfZmlsdGVyIChp dGVyKQogKwotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9saWIvZ2RiL2Nv bW1hbmQvYmFja3RyYWNlLnB5CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3B5dGhv bi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNS0wNS0zMSAx ODowNTo1OC40ODQ4NDE2NjEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0 aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkJMjAxNi0wNy0wMyAxNjozMjoxNy44Njkx OTg4NTkgKzAyMDAKIEBAIC0wLDAgKzEsMTA2IEBACiArIyBOZXcgYmFja3RyYWNlIGNvbW1hbmQu CiArCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTFvZjYucGF0Y2ggYi9n ZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5wYXRjaAppbmRleCBiMWMxMzFkLi4yMTAxY2Rk IDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5wYXRjaAorKysgYi9n ZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtMW9mNi5wYXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRw Oi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0My5odG1sCi1T dWJqZWN0OiBbUEFUQ0ggdjIgMS82XSBmb3J0cmFuOiBhbGxvdyBtdWx0aS1kaW1lbnNpb25hbCBz dWJhcnJheXMKK1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5z aW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9n ZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSA5OTM4MzQ0NjlmMWU2NGU1 NDYxZTFlMWJlZjkxN2ZkMzg4ZmU0MjhlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTog Q2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRl OiBUaHUsIDEyIE5vdiAyMDE1IDE1OjQ1OjUyICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMS82XSBm b3J0cmFuOiBhbGxvdyBtdWx0aS1kaW1lbnNpb25hbCBzdWJhcnJheXMKIAogQWRkIGFuIGFyZ3Vt ZW50IGNvdW50IGZvciBzdWJyYW5nZSBleHByZXNzaW9ucyBpbiBGb3J0cmFuLgogQmFzZWQgb24g dGhlIGNvdW50ZWQgdmFsdWUgY2FsY3VsYXRlIGEgbmV3IGFycmF5IHdpdGggdGhlCkBAIC0zNiwx NyArMzksMTcgQEAgbmV3PiAkMyA9ICggKCAyMSwgMzEsIDQxKSAoIDIyLCAzMiwgNDIpICggMjMs IDMzLCA0MykgKQogCiBTaWduZWQtb2ZmLWJ5OiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9w aC50LndlaW5tYW5uQGludGVsLmNvbT4KIC0tLQotIGdkYi9ldmFsLmMgICB8IDMwOSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIGdk Yi9ldmFsLmMgICB8IDMxNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLQogIGdkYi9mLWV4cC55ICB8ICAgMiArCi0gZ2RiL3ZhbG9wcy5j IHwgMTU3ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQorIGdkYi92YWxvcHMuYyB8IDE1 OSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KICBnZGIvdmFsdWUuaCAgfCAgIDIgKwot IDQgZmlsZXMgY2hhbmdlZCwgMzc1IGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQorIDQg ZmlsZXMgY2hhbmdlZCwgMzgwIGluc2VydGlvbnMoKyksIDk3IGRlbGV0aW9ucygtKQogCi1kaWZm IC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYg MTAwNjQ0Ci0tLS0gYS9nZGIvZXZhbC5jCi0rKysgYi9nZGIvZXZhbC5jCi1AQCAtMzk5LDI5ICsz OTksMjUzIEBAIGluaXRfYXJyYXlfZWxlbWVudCAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0 IHZhbHVlICplbGVtZW50LAorSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9ldmFsLmMK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9ldmFsLmMJMjAx Ni0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgw Ny9nZGIvZXZhbC5jCTIwMTYtMDgtMDcgMjI6MDg6MjEuNzA4Njg4MjU5ICswMjAwCitAQCAtMzk5 LDI5ICszOTksMjU0IEBACiAgICByZXR1cm4gaW5kZXg7CiAgfQogIApAQCAtNjYsNDEgKzY5LDQ0 IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiAtICBpbnQgcGMgPSAoKnBvcykgKyAx OwogKyAgaW50IGksIGRpbV9jb3VudCA9IDA7CiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9i b3VuZDsKLSAgIHN0cnVjdCB0eXBlICpyYW5nZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfSU5ERVhf VFlQRSAodmFsdWVfdHlwZSAoYXJyYXkpKSk7Ci0tICBlbnVtIGY5MF9yYW5nZV90eXBlIHJhbmdl X3R5cGUKLS0gICAgPSAoZW51bSBmOTBfcmFuZ2VfdHlwZSkgbG9uZ2VzdF90b19pbnQgKGV4cC0+ ZWx0c1twY10ubG9uZ2NvbnN0KTsKKy0gIHN0cnVjdCB0eXBlICpyYW5nZSA9IGNoZWNrX3R5cGVk ZWYgKFRZUEVfSU5ERVhfVFlQRSAodmFsdWVfdHlwZSAoYXJyYXkpKSk7CistICBlbnVtIHJhbmdl X3R5cGUgcmFuZ2VfdHlwZQorLSAgICA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdlc3RfdG9faW50 IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7CiAtIAogLSAgKnBvcyArPSAzOwogKyAgc3RydWN0 IHZhbHVlICpuZXdfYXJyYXkgPSBhcnJheTsKICsgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAobmV3X2FycmF5KSk7Ci0rICBzdHJ1Y3QgdHlwZSAq dGVtcF90eXBlOworKyAgc3RydWN0IHR5cGUgKmVsdF90eXBlOworKworKyAgdHlwZWRlZiBzdHJ1 Y3Qgc3Vic2NyaXB0X3JhbmdlCisrICB7CisrICAgIGVudW0gcmFuZ2VfdHlwZSBmOTBfcmFuZ2Vf dHlwZTsKKysgICAgTE9OR0VTVCBsb3csIGhpZ2g7CisrICB9IHN1YnNjcmlwdF9yYW5nZTsKKysK KysgIHR5cGVkZWYgZW51bSBzdWJzY3JpcHRfa2luZAorKyAgeworKyAgICBTVUJTQ1JJUFRfUkFO R0UsICAgIC8qIGUuZy4gIihsb3dib3VuZDpoaWdoYm91bmQpIiAgKi8KKysgICAgU1VCU0NSSVBU X0lOREVYICAgIC8qIGUuZy4gIihsaXRlcmFsKSIgICovCisrICB9IGtpbmQ7CiArCiArICAvKiBM b2NhbCBzdHJ1Y3QgdG8gaG9sZCB1c2VyIGRhdGEgZm9yIEZvcnRyYW4gc3ViYXJyYXkgZGltZW5z aW9ucy4gICovCiArICBzdHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlCiArICB7CiArICAgIC8qIEZvciBl dmVyeSBkaW1lbnNpb24sIHdlIGFyZSBlaXRoZXIgd29ya2luZyBvbiBhIHJhbmdlIG9yIGFuIGlu ZGV4CiArICAgICAgIGV4cHJlc3Npb24sIHNvIHdlIHN0b3JlIHRoaXMgaW5mbyBzZXBhcmF0ZWx5 IGZvciBsYXRlci4gICovCi0rICAgIGVudW0KLSsgICAgewotKyAgICAgIFNVQlNDUklQVF9SQU5H RSwgICAgLyogZS5nLiAiKGxvd2JvdW5kOmhpZ2hib3VuZCkiICAqLwotKyAgICAgIFNVQlNDUklQ VF9JTkRFWCAgICAvKiBlLmcuICIobGl0ZXJhbCkiICAqLwotKyAgICB9IGtpbmQ7CisrICAgIGVu dW0gc3Vic2NyaXB0X2tpbmQga2luZDsKICsKICsgICAgLyogV2UgYWxzbyBzdG9yZSBlaXRoZXIg dGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZCBpbmZvLCBvciB0aGUgaW5kZXgKICsgICAgICAgbnVt YmVyLiAgQmVmb3JlIGV2YWx1YXRpb24gb2YgdGhlIGlucHV0IHZhbHVlcywgd2UgZG8gbm90IGtu b3cgaWYgd2UgYXJlCiArICAgICAgIGFjdHVhbGx5IHdvcmtpbmcgb24gYSByYW5nZSBvZiByYW5n ZXMsIG9yIGFuIGluZGV4IGluIGEgcmFuZ2UuICBTbyBhcyBhCiArICAgICAgIGZpcnN0IHN0ZXAg d2Ugc3RvcmUgYWxsIGlucHV0IGluIGEgdW5pb24uICBUaGUgYXJyYXkgY2FsY3VsYXRpb24gaXRz ZWxmCiArICAgICAgIGRlYWxzIHdpdGggdGhpcyBsYXRlciBvbi4gICovCi0rICAgIHVuaW9uCisr ICAgIHVuaW9uIGVsZW1lbnRfcmFuZ2UKICsgICAgewotKyAgICAgIHN0cnVjdCBzdWJzY3JpcHRf cmFuZ2UKLSsgICAgICB7Ci0rICAgICAgICBlbnVtIGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90 eXBlOwotKyAgICAgICAgTE9OR0VTVCBsb3csIGhpZ2g7Ci0rICAgICAgfQotKyAgICAgIHJhbmdl OworKyAgICAgIHN1YnNjcmlwdF9yYW5nZSByYW5nZTsKICsgICAgICBMT05HRVNUIG51bWJlcjsK LSsgICAgfTsKKysgICAgfSBVOwogKyAgfSAqc3Vic2NyaXB0X2FycmF5OwogKwogKyAgLyogQ2hl Y2sgaWYgdGhlIG51bWJlciBvZiBhcmd1bWVudHMgcHJvdmlkZWQgYnkgdGhlIHVzZXIgbWF0Y2hl cwpAQCAtMTA5LDcgKzExNSw3IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiArICBp ZiAobmFyZ3MgIT0gY2FsY19mNzdfYXJyYXlfZGltcyAodmFsdWVfdHlwZSAobmV3X2FycmF5KSkp CiArICAgIGVycm9yIChfKCJXcm9uZyBudW1iZXIgb2Ygc3Vic2NyaXB0cyIpKTsKICsKLSsgIHN1 YnNjcmlwdF9hcnJheSA9IGFsbG9jYSAoc2l6ZW9mICgqc3Vic2NyaXB0X2FycmF5KSAqIG5hcmdz KTsKKysgIHN1YnNjcmlwdF9hcnJheSA9IChzdHJ1Y3Qgc3Vic2NyaXB0X3N0b3JlKikgYWxsb2Nh IChzaXplb2YgKCpzdWJzY3JpcHRfYXJyYXkpICogbmFyZ3MpOwogKwogKyAgLyogUGFyc2UgdGhl IHVzZXIgaW5wdXQgaW50byB0aGUgU1VCU0NSSVBUX0FSUkFZIHRvIHN0b3JlIGl0LiAgV2UgbmVl ZAogKyAgICAgdG8gZXZhbHVhdGUgaXQgZmlyc3QsIGFzIHRoZSBpbnB1dCBpcyBmcm9tIGxlZnQt dG8tcmlnaHQuICBUaGUKQEAgLTEyOCwxNiArMTM0LDIwIEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMy NWYgMTAwNjQ0CiAtICAgIGxvd19ib3VuZCA9IHZhbHVlX2FzX2xvbmcgKGV2YWx1YXRlX3N1YmV4 cCAoTlVMTF9UWVBFLCBleHAsIHBvcywgbm9zaWRlKSk7CiArICAgICAgLyogVGhlIHVzZXIgaW5w dXQgaXMgYSByYW5nZSwgd2l0aCBvciB3aXRob3V0IGxvd2VyIGFuZCB1cHBlciBib3VuZC4KICsJ IEUuZy46ICJwIGFycnkoMjo1KSIsICJwIGFycnkoIDo1KSIsICJwIGFycnkoIDogKSIsIGV0Yy4g ICovCi0rICAgICAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JBTkdFKQor KyAgICAgIGlmIChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQogKwl7CiArCSAg aW50IHBjID0gKCpwb3MpICsgMTsKLSsJICBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlICpyYW5nZTsK LSsKKysJICBzdWJzY3JpcHRfcmFuZ2UgKnJhbmdlOworIAorLSAgaWYgKHJhbmdlX3R5cGUgPT0g SElHSF9CT1VORF9ERUZBVUxUIHx8IHJhbmdlX3R5cGUgPT0gQk9USF9CT1VORF9ERUZBVUxUKQor LSAgICBoaWdoX2JvdW5kID0gVFlQRV9ISUdIX0JPVU5EIChyYW5nZSk7CistICBlbHNlCistICAg IGhpZ2hfYm91bmQgPSB2YWx1ZV9hc19sb25nIChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwg ZXhwLCBwb3MsIG5vc2lkZSkpOwogKwkgIGluZGV4LT5raW5kID0gU1VCU0NSSVBUX1JBTkdFOwot KwkgIHJhbmdlID0gJmluZGV4LT5yYW5nZTsKKysJICByYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsK ICsKICsJICAqcG9zICs9IDM7Ci0rCSAgcmFuZ2UtPmY5MF9yYW5nZV90eXBlID0gbG9uZ2VzdF90 b19pbnQgKGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0KTsKKysJICByYW5nZS0+ZjkwX3JhbmdlX3R5 cGUgPSAoZW51bSByYW5nZV90eXBlKSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25n Y29uc3QpOwogKwogKwkgIC8qIElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1 c2VyLCB0aGUgYml0IGhhcyBiZWVuCiArCSAgICAgc2V0IGFuZCB3ZSBjYW4gYXNzaWduIHRoZSB2 YWx1ZSBmcm9tIHRoZSBlbHQgc3RhY2suICBTYW1lIGZvcgpAQCAtMTU1LDE3ICsxNjUsMTMgQEAg aW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2NDQKICsgICAgICBlbHNlCiArCXsKICsJICBzdHJ1 Y3QgdmFsdWUgKnZhbDsKLSAKLS0gIGlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVM VCB8fCByYW5nZV90eXBlID09IEJPVEhfQk9VTkRfREVGQVVMVCkKLS0gICAgaGlnaF9ib3VuZCA9 IFRZUEVfSElHSF9CT1VORCAocmFuZ2UpOwotLSAgZWxzZQotLSAgICBoaWdoX2JvdW5kID0gdmFs dWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUp KTsKKysKICsJICBpbmRleC0+a2luZCA9IFNVQlNDUklQVF9JTkRFWDsKICsKICsJICAvKiBFdmFs dWF0ZSBlYWNoIHN1YnNjcmlwdDsgaXQgbXVzdCBiZSBhIGxlZ2FsIGludGVnZXIgaW4gRjc3LiAg VGhpcwogKwkgICAgIGVuc3VyZXMgdGhlIHZhbGlkaXR5IG9mIHRoZSBwcm92aWRlZCBpbmRleC4g ICovCiArCSAgdmFsID0gZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKGV4cCwgcG9zLCBu b3NpZGUpOwotKwkgIGluZGV4LT5udW1iZXIgPSB2YWx1ZV9hc19sb25nICh2YWwpOworKwkgIGlu ZGV4LT5VLm51bWJlciA9IHZhbHVlX2FzX2xvbmcgKHZhbCk7CiArCX0KICsKICsgICAgfQpAQCAt MTg4LDcgKzE5NCw3IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiArCSAgICAgICB0 cmVhdCBhbnkgc3Vic2VxdWVudCB1c2VyIGVudHJ5IGFzIGEgcmFuZ2UuICBXZSBzaW1wbHkKICsJ ICAgICAgIGluY3JlbWVudCBESU1fQ09VTlQgd2hpY2ggdGVsbHMgdXMgaG93IG1hbnkgdGltZXMg d2UgYXJlCiArCSAgICAgICBjYWxsaW5nIFZBTFVFX1NMSUNFXzEuICAqLwotKwkgICAgc3RydWN0 IHN1YnNjcmlwdF9yYW5nZSAqcmFuZ2UgPSAmaW5kZXgtPnJhbmdlOworKwkgICAgc3Vic2NyaXB0 X3JhbmdlICpyYW5nZSA9ICZpbmRleC0+VS5yYW5nZTsKICsKICsJICAgIC8qIElmIG5vIGxvd2Vy IGJvdW5kIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlciwgd2UgdGFrZSB0aGUKICsJICAgICAgIGRl ZmF1bHQgYm91bmRhcnkuICBTYW1lIGZvciB0aGUgaGlnaCBib3VuZC4gICovCkBAIC0yMzIsMTkg KzIzOCwxOSBAQCBpbmRleCA3OGFkOTQ2Li5jOWYzMjVmIDEwMDY0NAogKwkgICAgICAgdG8gZ2V0 IHRoZSB2YWx1ZSBvZmZzZXQgcmlnaHQuICAqLwogKwkgICAgaWYgKGRpbV9jb3VudCA9PSAwKQog KwkgICAgICBuZXdfYXJyYXkKLSsJICAgICAgICA9IHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAo bmV3X2FycmF5LCBpbmRleC0+bnVtYmVyLAorKwkgICAgICAgID0gdmFsdWVfc3Vic2NyaXB0ZWRf cnZhbHVlIChuZXdfYXJyYXksIGluZGV4LT5VLm51bWJlciwKICsJCQkJCSAgICBmNzdfZ2V0X2xv d2VyYm91bmQgKHZhbHVlX3R5cGUKICsJCQkJCQkJCSAgKG5ld19hcnJheSkpKTsKICsJICAgIGVs c2UKICsJICAgICAgewogKwkJLyogQ2hlY2sgZm9yIHZhbGlkIGluZGV4IGlucHV0LiAgKi8KLSsJ CWlmIChpbmRleC0+bnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCi0rCQkgICAg fHwgaW5kZXgtPm51bWJlciA+IFRZUEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCisrCQlpZiAo aW5kZXgtPlUubnVtYmVyIDwgVFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCisrCQkgICAgfHwg aW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKICsJCSAgZXJy b3IgKF8oImVycm9yIG5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQiKSk7CiArCiArCQlkaW1fY291bnQr KzsKICsJCW5ld19hcnJheSA9IHZhbHVlX3NsaWNlXzEgKG5ld19hcnJheSwKLSsJCQkJCSAgIGxv bmdlc3RfdG9faW50IChpbmRleC0+bnVtYmVyKSwKKysJCQkJCSAgIGxvbmdlc3RfdG9faW50IChp bmRleC0+VS5udW1iZXIpLAogKwkJCQkJICAgMSwgLyogbGVuZ3RoIGlzICcxJyBlbGVtZW50ICAq LwogKwkJCQkJICAgZGltX2NvdW50KTsKICsJICAgICAgfQpAQCAtMjcwLDkgKzI3Niw4IEBAIGlu ZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAwNjQ0CiArICBpZiAoZGltX2NvdW50ID4gMSkKICsgICAg ewogKyAgICAgIHN0cnVjdCB2YWx1ZSAqdiA9IE5VTEw7Ci0gCi0tICByZXR1cm4gdmFsdWVfc2xp Y2UgKGFycmF5LCBsb3dfYm91bmQsIGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSsgICAg ICB0ZW1wX3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh2YWx1ZV90eXBlIChuZXdfYXJyYXkpKTsK KysKKysgICAgICBlbHRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHZhbHVlX3R5cGUgKG5ld19h cnJheSkpOwogKwogKyAgICAgIC8qIEV2ZXJ5IFNVQlNDUklQVF9SQU5HRSBpbiB0aGUgdXNlciBp bnB1dCBzaWduaWZpZXMgYW4gYWN0dWFsIHJhbmdlIGluCiArCSB0aGUgb3V0cHV0IGFycmF5LiAg U28gd2UgdHJhdmVyc2UgdGhlIFNVQlNDUklQVF9BUlJBWSBhZ2FpbiwgbG9va2luZwpAQCAtMjg5 LDI2ICsyOTQsMjYgQEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2NDQKICsKICsJICAgICAg cmFuZ2VfdHlwZQogKwkJPSBjcmVhdGVfc3RhdGljX3JhbmdlX3R5cGUgKE5VTEwsCi0rCQkJCSAg ICAgdGVtcF90eXBlLAotKwkJCQkgICAgIDEsCi0rCQkJCSAgICAgaW5kZXgtPnJhbmdlLmhpZ2gg LSBpbmRleC0+cmFuZ2UubG93ICsgMSk7CisrCQkJCQkgICAgZWx0X3R5cGUsCisrCQkJCQkgICAg MSwKKysJCQkJCSAgICBpbmRleC0+VS5yYW5nZS5oaWdoCisrCQkJCQkgICAgICAtIGluZGV4LT5V LnJhbmdlLmxvdyArIDEpOwogKwogKwkgICAgICBpbnRlcmltX2FycmF5X3R5cGUgPSBjcmVhdGVf YXJyYXlfdHlwZSAoTlVMTCwKLSsJCQkJCQkgICAgICB0ZW1wX3R5cGUsCisrCQkJCQkJICAgICAg ZWx0X3R5cGUsCiArCQkJCQkJICAgICAgcmFuZ2VfdHlwZSk7CiArCi0rCSAgICAgIC8qIEZvciBz b21lIHJlYXNvbiB0aGUgdHlwZSBjb2RlIG9mIHRoZSBjb250ZW50cyBpcyBtaXNzaW5nLCBzbwot KwkJIHJlc2V0IGl0IGZyb20gdGhlIG9yaWdpbmFsIGFycmF5LiAgKi8KICsJICAgICAgVFlQRV9D T0RFIChpbnRlcmltX2FycmF5X3R5cGUpCiArCQk9IFRZUEVfQ09ERSAodmFsdWVfdHlwZSAobmV3 X2FycmF5KSk7Ci0rCisgCistICByZXR1cm4gdmFsdWVfc2xpY2UgKGFycmF5LCBsb3dfYm91bmQs IGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKICsJICAgICAgdiA9IGFsbG9jYXRlX3ZhbHVl IChpbnRlcmltX2FycmF5X3R5cGUpOwogKwotKwkgICAgICB0ZW1wX3R5cGUgPSB2YWx1ZV90eXBl ICh2KTsKKysJICAgICAgZWx0X3R5cGUgPSB2YWx1ZV90eXBlICh2KTsKICsJICAgIH0KICsKICsJ fQotKyAgICAgIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIDAsIG5ld19hcnJheSwgMCwgVFlQRV9M RU5HVEggKHRlbXBfdHlwZSkpOworKyAgICAgIHZhbHVlX2NvbnRlbnRzX2NvcHkgKHYsIDAsIG5l d19hcnJheSwgMCwgVFlQRV9MRU5HVEggKGVsdF90eXBlKSk7CiArICAgICAgcmV0dXJuIHY7CiAr ICAgIH0KICsKQEAgLTMxNiwyNCArMzIxLDI0IEBAIGluZGV4IDc4YWQ5NDYuLmM5ZjMyNWYgMTAw NjQ0CiAgfQogIAogIAotQEAgLTE4MTAsMTQgKzIwMzQsMTEgQEAgZXZhbHVhdGVfc3ViZXhwX3N0 YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCitAQCAtMTgxMCwxNCArMjAzNSwxMSBA QAogICAgICAgIHN3aXRjaCAoY29kZSkKICAJewogIAljYXNlIFRZUEVfQ09ERV9BUlJBWToKLS0J ICBpZiAoZXhwLT5lbHRzWypwb3NdLm9wY29kZSA9PSBPUF9GOTBfUkFOR0UpCistCSAgaWYgKGV4 cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfUkFOR0UpCiAtCSAgICByZXR1cm4gdmFsdWVfZjkw X3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgbm9zaWRlKTsKIC0JICBlbHNlCiAtCSAgICBnb3Rv IG11bHRpX2Y3N19zdWJzY3JpcHQ7CiArCSAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJn MSwgZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwogIAogIAljYXNlIFRZUEVfQ09ERV9TVFJJTkc6 Ci0gCSAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gT1BfRjkwX1JBTkdFKQorIAkgIGlm IChleHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IE9QX1JBTkdFKQogLQkgICAgcmV0dXJuIHZhbHVl X2Y5MF9zdWJhcnJheSAoYXJnMSwgZXhwLCBwb3MsIG5vc2lkZSk7CiArCSAgICByZXR1cm4gdmFs dWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBvcywgMSwgbm9zaWRlKTsKICAJICBlbHNlCiAg CSAgICB7CiAgCSAgICAgIGFyZzIgPSBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoZXhw LCBwb3MsIG5vc2lkZSk7Ci1AQCAtMjIyMiw0OSArMjQ0Myw2IEBAIGV2YWx1YXRlX3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTIyMjMsNDkgKzI0NDUsNiBA QAogIAl9CiAgICAgICAgcmV0dXJuIChhcmcxKTsKICAKQEAgLTM4Myw3ICszODgsNyBAQCBpbmRl eCA3OGFkOTQ2Li5jOWYzMjVmIDEwMDY0NAogICAgICBjYXNlIEJJTk9QX0xPR0lDQUxfQU5EOgog ICAgICAgIGFyZzEgPSBldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLCBwb3MsIG5vc2lk ZSk7CiAgICAgICAgaWYgKG5vc2lkZSA9PSBFVkFMX1NLSVApCi1AQCAtMzEyMSw2ICszMjk5LDkg QEAgY2FsY19mNzdfYXJyYXlfZGltcyAoc3RydWN0IHR5cGUgKmFycmF5X3R5cGUpCitAQCAtMzEy Myw2ICszMzAyLDkgQEAKICAgIGludCBuZGltZW4gPSAxOwogICAgc3RydWN0IHR5cGUgKnRtcF90 eXBlOwogIApAQCAtMzkzLDExICszOTgsMTEgQEAgaW5kZXggNzhhZDk0Ni4uYzlmMzI1ZiAxMDA2 NDQKICAgIGlmICgoVFlQRV9DT0RFIChhcnJheV90eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpKQog ICAgICBlcnJvciAoXygiQ2FuJ3QgZ2V0IGRpbWVuc2lvbnMgZm9yIGEgbm9uLWFycmF5IHR5cGUi KSk7CiAgCi1kaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggNGZh YWMzMi4uOTM0M2FiYiAxMDA2NDQKLS0tLSBhL2dkYi9mLWV4cC55Ci0rKysgYi9nZGIvZi1leHAu eQotQEAgLTMwOCw2ICszMDgsOCBAQCBhcmdsaXN0IDoJc3VicmFuZ2UKK0luZGV4OiBnZGItNy4x MS45MC4yMDE2MDgwNy9nZGIvZi1leHAueQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkwLjIw MTYwODA3Lm9yaWcvZ2RiL2YtZXhwLnkJMjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkgKzAy MDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvZi1leHAueQkyMDE2LTA4LTA3IDIyOjA4 OjIxLjcwOTY4ODI2OCArMDIwMAorQEAgLTI1Myw2ICsyNTMsOCBAQAogICAgIAogIGFyZ2xpc3QJ OglhcmdsaXN0ICcsJyBleHAgICAlcHJlYyBBQk9WRV9DT01NQQogIAkJCXsgYXJnbGlzdF9sZW4r KzsgfQpAQCAtNDA2LDExICs0MTEsMTEgQEAgaW5kZXggNGZhYWMzMi4uOTM0M2FiYiAxMDA2NDQK ICAJOwogIAogIC8qIFRoZXJlIGFyZSBmb3VyIHNvcnRzIG9mIHN1YnJhbmdlIHR5cGVzIGluIEY5 MC4gICovCi1kaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5jCi1pbmRleCA1 YTI0NGE5Li4wOWVhODc3IDEwMDY0NAotLS0tIGEvZ2RiL3ZhbG9wcy5jCi0rKysgYi9nZGIvdmFs b3BzLmMKLUBAIC0zNzU5LDU2ICszNzU5LDE1MSBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29u c3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4 MDcvZ2RiL3ZhbG9wcy5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3Jp Zy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkgKzAyMDAKKysrKyBn ZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0wNyAyMjoxMzoyMi4wODMz NDA3NTAgKzAyMDAKK0BAIC0zNzc1LDU2ICszNzc1LDE1NCBAQAogIHN0cnVjdCB2YWx1ZSAqCiAg dmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0 aCkKICB7CkBAIC00MjAsNyArNDI1LDkgQEAgaW5kZXggNWEyNDRhOS4uMDllYTg3NyAxMDA2NDQK ICsgIHJldHVybiB2YWx1ZV9zbGljZV8xIChhcnJheSwgbG93Ym91bmQsIGxlbmd0aCwgMSk7CiAr fQogKwotKy8qIENBTExfQ09VTlQgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgd2UgYXJlIGNhbGxp bmcgdGhlIGZ1bmN0aW9uIG9uY2UsIGUuZy4KKysvKiBWQUxVRV9TTElDRV8xIGlzIGNhbGxlZCBm b3IgZWFjaCBhcnJheSBkaW1lbnNpb24gdG8gY2FsY3VsYXRlIHRoZSBudW1iZXIKKysgICBvZiBl bGVtZW50cyBhcyBkZWZpbmVkIGJ5IHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbi4KKysgICBDQUxM X0NPVU5UIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIGlmIHdlIGFyZSBjYWxsaW5nIHRoZSBmdW5jdGlv biBvbmNlLCBlLmcuCiArICAgd2UgYXJlIHdvcmtpbmcgb24gdGhlIGN1cnJlbnQgZGltZW5zaW9u IG9mIEFSUkFZLCBvciBpZiB3ZSBhcmUgY2FsbGluZwogKyAgIHRoZSBmdW5jdGlvbiByZXBlYXRl ZGx5LiAgSW4gdGhlIGxhdGVyIGNhc2Ugd2UgbmVlZCB0byB0YWtlIGVsZW1lbnRzCiArICAgZnJv bSB0aGUgVEFSR0VUX1RZUEUgb2YgQVJSQVkuCkBAIC00NDAsNyArNDQ3LDggQEAgaW5kZXggNWEy NDRhOS4uMDllYTg3NyAxMDA2NDQKICsgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hlY2tf dHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKICsgIHN0cnVjdCB0eXBlICplbHRfdHlwZSA9 IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKICsgIHVuc2ln bmVkIGludCBlbHRfc2l6ZSwgZWx0X29mZnM7Ci0rICBMT05HRVNUIGVsdF9zdHJpZGUsIGFyeV9o aWdoX2JvdW5kLCBhcnlfbG93X2JvdW5kOworKyAgLyogQVRUUklCVVRFX1VOVVNFRDogVkxBIGJ1 ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA4L21zZzAwMDk5 Lmh0bWwgKi8KKysgIExPTkdFU1QgZWx0X3N0cmlkZSBBVFRSSUJVVEVfVU5VU0VELCBhcnlfaGln aF9ib3VuZCwgYXJ5X2xvd19ib3VuZDsKICsgIHN0cnVjdCB2YWx1ZSAqdjsKICsgIGludCBzbGlj ZV9yYW5nZV9zaXplLCBpID0gMCwgcm93X2NvdW50ID0gMSwgZWxlbV9jb3VudCA9IDE7CiAgCkBA IC00NTQsNiArNDYyLDEwIEBAIGluZGV4IDVhMjQ0YTkuLjA5ZWE4NzcgMTAwNjQ0CiAtICByYW5n ZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKTsKIC0gIGlmIChnZXRfZGlzY3Jl dGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93ZXJib3VuZCwgJnVwcGVyYm91bmQpIDwgMCkKIC0g ICAgZXJyb3IgKF8oInNsaWNlIGZyb20gYmFkIGFycmF5IG9yIGJpdHN0cmluZyIpKTsKKy0KKy0g IGlmIChsb3dib3VuZCA8IGxvd2VyYm91bmQgfHwgbGVuZ3RoIDwgMAorLSAgICAgIHx8IGxvd2Jv dW5kICsgbGVuZ3RoIC0gMSA+IHVwcGVyYm91bmQpCistICAgIGVycm9yIChfKCJzbGljZSBvdXQg b2YgcmFuZ2UiKSk7CiArICBhcnlfbG93X2JvdW5kID0gVFlQRV9MT1dfQk9VTkQgKFRZUEVfSU5E RVhfVFlQRSAoYXJyYXlfdHlwZSkpOwogKyAgYXJ5X2hpZ2hfYm91bmQgPSBUWVBFX0hJR0hfQk9V TkQgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwogKwpAQCAtNDc5LDEwICs0OTEsNyBA QCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAogKwkmJiAoIVRZUEVfQVJSQVlfVVBQRVJf Qk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90eXBlKQogKwkgICAgICAmJiBlbHRfb2ZmcyA+PSBU WVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkpKQogKyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3Ig ZWxlbWVudCIpKTsKLSAKLS0gIGlmIChsb3dib3VuZCA8IGxvd2VyYm91bmQgfHwgbGVuZ3RoIDwg MAotLSAgICAgIHx8IGxvd2JvdW5kICsgbGVuZ3RoIC0gMSA+IHVwcGVyYm91bmQpCi0tICAgIGVy cm9yIChfKCJzbGljZSBvdXQgb2YgcmFuZ2UiKSk7CisrCiArICAvKiBDQUxMX0NPVU5UIGlzIDEg d2hlbiB3ZSBhcmUgZGVhbGluZyBlaXRoZXIgd2l0aCB0aGUgaGlnaGVzdCBkaW1lbnNpb24KICsg ICAgIG9mIHRoZSBhcnJheSwgb3IgYSBvbmUgZGltZW5zaW9uYWwgYXJyYXkuICBTZXQgUkFOR0Vf VFlQRSBhY2NvcmRpbmdseS4KICsgICAgIEluIGJvdGggY2FzZXMgd2UgY2FsY3VsYXRlIGhvdyBt YW55IHJvd3MvZWxlbWVudHMgd2lsbCBiZSBpbiB0aGUgb3V0cHV0CkBAIC01MTUsMTEgKzUyNCwx NiBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEwMDY0NAogKyAgICAgIGRvbmUgd2l0aCBpdC4g ICovCiAgCiArICBzbGljZV9yYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChO VUxMLCBUWVBFX1RBUkdFVF9UWVBFIChyYW5nZV90eXBlKSwKLSsJCQkJCWFyeV9sb3dfYm91bmQs IHNsaWNlX3JhbmdlX3NpemUpOworKwkJCQkJICAgICAgIGFyeV9sb3dfYm91bmQsIHNsaWNlX3Jh bmdlX3NpemUpOwogICAgewogLSAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9U QVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiAtICAgIExPTkdFU1Qgb2Zmc2V0CiAtICAgICAgPSAo bG93Ym91bmQgLSBsb3dlcmJvdW5kKSAqIFRZUEVfTEVOR1RIIChjaGVja190eXBlZGVmIChlbGVt ZW50X3R5cGUpKTsKKy0KKy0gICAgc2xpY2VfdHlwZSA9IGNyZWF0ZV9hcnJheV90eXBlICgoc3Ry dWN0IHR5cGUgKikgTlVMTCwKKy0JCQkJICAgIGVsZW1lbnRfdHlwZSwKKy0JCQkJICAgIHNsaWNl X3JhbmdlX3R5cGUpOworLSAgICBUWVBFX0NPREUgKHNsaWNlX3R5cGUpID0gVFlQRV9DT0RFIChh cnJheV90eXBlKTsKICsgICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZTsKICsKICsgICAgLyog V2hlbiBDQUxMX0NPVU5UIGVxdWFscyAxIHdlIGNhbiB1c2UgdGhlIGxlZ2FjeSBjb2RlIGZvciBz dWJhcnJheXMuICAqLwpAQCAtNTI3LDEwICs1NDEsOCBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3 IDEwMDY0NAogKyAgICAgIHsKICsJZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJy YXlfdHlwZSk7CiAgCi0tICAgIHNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoKHN0cnVj dCB0eXBlICopIE5VTEwsCi0tCQkJCSAgICBlbGVtZW50X3R5cGUsCi0tCQkJCSAgICBzbGljZV9y YW5nZV90eXBlKTsKLS0gICAgVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJy YXlfdHlwZSk7CistICAgIGlmIChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYg dmFsdWVfbGF6eSAoYXJyYXkpKQorLSAgICAgIHNsaWNlID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAo c2xpY2VfdHlwZSk7CiArCXNsaWNlX3R5cGUgPSBjcmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwgZWxl bWVudF90eXBlLCBzbGljZV9yYW5nZV90eXBlKTsKICsKICsJVFlQRV9DT0RFIChzbGljZV90eXBl KSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlwZSk7CkBAIC01NDYsOSArNTU4LDcgQEAgaW5kZXggNWEy NDRhOS4uMDllYTg3NyAxMDA2NDQKICsJCQkJIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJyYXkp ICsgZWx0X29mZnMsCiArCQkJCSBlbHRfc2l6ZSAqIGxvbmdlc3RfdG9faW50IChsZW5ndGgpKTsK ICsJICB9Ci0gCi0tICAgIGlmIChWQUxVRV9MVkFMIChhcnJheSkgPT0gbHZhbF9tZW1vcnkgJiYg dmFsdWVfbGF6eSAoYXJyYXkpKQotLSAgICAgIHNsaWNlID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAo c2xpY2VfdHlwZSk7CisrCiArICAgICAgfQogKyAgICAvKiBXaGVuIENBTExfQ09VTlQgaXMgbGFy Z2VyIHRoYW4gMSB3ZSBhcmUgd29ya2luZyBvbiBhIHJhbmdlIG9mIHJhbmdlcy4KICsgICAgICAg U28gd2UgY29weSB0aGUgcmVsZXZhbnQgZWxlbWVudHMgaW50byB0aGUgbmV3IGFycmF5IHdlIHJl dHVybi4gICovCkBAIC01OTMsMTEgKzYwMywxMSBAQCBpbmRleCA1YTI0NGE5Li4wOWVhODc3IDEw MDY0NAogIH0KICAKICAvKiBDcmVhdGUgYSB2YWx1ZSBmb3IgYSBGT1JUUkFOIGNvbXBsZXggbnVt YmVyLiAgQ3VycmVudGx5IG1vc3Qgb2YgdGhlCi1kaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmggYi9n ZGIvdmFsdWUuaAotaW5kZXggMmVhYzVlZi4uMzQwMDQ2MCAxMDA2NDQKLS0tLSBhL2dkYi92YWx1 ZS5oCi0rKysgYi9nZGIvdmFsdWUuaAotQEAgLTEwNTYsNiArMTA1Niw4IEBAIGV4dGVybiBzdHJ1 Y3QgdmFsdWUgKnZhcnlpbmdfdG9fc2xpY2UgKHN0cnVjdCB2YWx1ZSAqKTsKK0luZGV4OiBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvdmFsdWUuaAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjkw LjIwMTYwODA3Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxNi0wOC0wNyAyMjowNjo0NS4yNjY4MzY2MTkg KzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIvdmFsdWUuaAkyMDE2LTA4LTA3IDIy OjA4OjIxLjcxMDY4ODI3NiArMDIwMAorQEAgLTEwNjQsNiArMTA2NCw4IEBACiAgCiAgZXh0ZXJu IHN0cnVjdCB2YWx1ZSAqdmFsdWVfc2xpY2UgKHN0cnVjdCB2YWx1ZSAqLCBpbnQsIGludCk7CiAg CkBAIC02MDYsNiArNjE2LDMgQEAgaW5kZXggMmVhYzVlZi4uMzQwMDQ2MCAxMDA2NDQKICBleHRl cm4gc3RydWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsZXggKHN0cnVjdCB2YWx1ZSAqLCBz dHJ1Y3QgdmFsdWUgKiwKICAJCQkJCSAgICBzdHJ1Y3QgdHlwZSAqKTsKICAKLS0tIAotMi41LjAK LQoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0yb2Y2LnBhdGNoIGIvZ2Ri LWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYucGF0Y2gKaW5kZXggYmY0ODE0My4uYjQxMDBmZSAx MDA2NDQKLS0tIGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYucGF0Y2gKKysrIGIvZ2Ri LWZvcnRyYW4tc3RyaWRlLWludGVsLTJvZjYucGF0Y2gKQEAgLTEsMTAgKzEsMTMgQEAKLWh0dHA6 Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTAyL21zZzAwODQxLmh0bWwKLVN1 YmplY3Q6IFtQQVRDSCB2MiAyLzZdIGZvcnRyYW46IGNvbWJpbmUgc3ViYXJyYXkgYW5kIHN0cmlu ZyBjb21wdXRhdGlvbgorUkU6IFtwaW5nXSBbUEFUQ0ggdjIgMC82XSBmb3J0cmFuOiBtdWx0aS1k aW1lbnNpb25hbCBzdWJhcnJheXMgd2l0aCBzdHJpZGVzCitodHRwczovL3NvdXJjZXdhcmUub3Jn L21sL2dkYi1wYXRjaGVzLzIwMTYtMDcvbXNnMDAwMDkuaHRtbAogCitGcm9tIDczM2IzYjYwYmU1 YzhkMjNmYTdlNDc0OThkMzVlNDcwMTUyOGYzYWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCiBG cm9tOiBDaHJpc3RvcGggV2Vpbm1hbm4gPGNocmlzdG9waC50LndlaW5tYW5uQGludGVsLmNvbT4K K0RhdGU6IEZyaSwgMTMgTm92IDIwMTUgMDk6MDA6MzMgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAy LzZdIGZvcnRyYW46IGNvbWJpbmUgc3ViYXJyYXkgYW5kIHN0cmluZyBjb21wdXRhdGlvbgogCi1T dHJpbmdzIG9ubHkgaGF2ZSBvbmUgZGltZW5zaW9uLCBidXQgdGhlIGVsZW1lbnQgY29tcHV0YXRp b24gaXMKLWlkZW50aWNhbCB0byB0aGUgc3ViYXJyYXkgY29tcHV0YXRpb24gZm9yIHJhbmdlcyBh bmQgaW5kaWNlcy4KK1N0cmluZ3MgdHlwZXMgYXJlIGhhbmRsZWQgbGlrZSBhcnJheSB0eXBlcyB3 aXRoIG9ubHkgb25lIGRpbWVuc2lvbi4KK1RoZXJlZm9yZSB0aGUgc2FtZSBhbGdvcml0aG0gdG8g Y2FsY3VsYXRlIHN1YnNldHMgaXMgdXNlZC4KIAogMjAxMy0xMS0yNiAgQ2hyaXN0b3BoIFdlaW5t YW5uICA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgogCkBAIC0xOSwyNyArMjIsMjcg QEAgU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFu bkBpbnRlbC5jb20+CiAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA5IGRlbGV0aW9u cygtKQogCiBkaWZmIC0tZ2l0IGEvZ2RiL2V2YWwuYyBiL2dkYi9ldmFsLmMKLWluZGV4IGM5ZjMy NWYuLjE2NGQ3YWIgMTAwNjQ0CitpbmRleCAzNTgxNWE0Li41YzIwZmVlIDEwMDY0NAogLS0tIGEv Z2RiL2V2YWwuYwogKysrIGIvZ2RiL2V2YWwuYwotQEAgLTIwMzQsMTYgKzIwMzQsOCBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yMDM1 LDE2ICsyMDM1LDggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhw ZWN0X3R5cGUsCiAgICAgICAgc3dpdGNoIChjb2RlKQogIAl7CiAgCWNhc2UgVFlQRV9DT0RFX0FS UkFZOgogLQkgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFyZzEsIGV4cCwgcG9zLCBuYXJn cywgbm9zaWRlKTsKIC0KICAJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotLQkgIGlmIChleHAtPmVs dHNbKnBvc10ub3Bjb2RlID09IE9QX0Y5MF9SQU5HRSkKKy0JICBpZiAoZXhwLT5lbHRzWypwb3Nd Lm9wY29kZSA9PSBPUF9SQU5HRSkKIC0JICAgIHJldHVybiB2YWx1ZV9mOTBfc3ViYXJyYXkgKGFy ZzEsIGV4cCwgcG9zLCAxLCBub3NpZGUpOwogLQkgIGVsc2UKIC0JICAgIHsKIC0JICAgICAgYXJn MiA9IGV2YWx1YXRlX3N1YmV4cF93aXRoX2NvZXJjaW9uIChleHAsIHBvcywgbm9zaWRlKTsKIC0J ICAgICAgcmV0dXJuIHZhbHVlX3N1YnNjcmlwdCAoYXJnMSwgdmFsdWVfYXNfbG9uZyAoYXJnMikp OwogLQkgICAgfQotKwkgIHJldHVybiAgdmFsdWVfZjkwX3N1YmFycmF5IChhcmcxLCBleHAsIHBv cywgbmFyZ3MsIG5vc2lkZSk7CisrCSAgcmV0dXJuIHZhbHVlX2Y5MF9zdWJhcnJheSAoYXJnMSwg ZXhwLCBwb3MsIG5hcmdzLCBub3NpZGUpOwogIAogIAljYXNlIFRZUEVfQ09ERV9QVFI6CiAgCWNh c2UgVFlQRV9DT0RFX0ZVTkM6CiAtLSAKLTIuNS4wCisyLjUuNQogCgpkaWZmIC0tZ2l0IGEvZ2Ri LWZvcnRyYW4tc3RyaWRlLWludGVsLTNvZjYucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50 ZWwtM29mNi5wYXRjaAppbmRleCA1MGE2NTgyLi40ZTRkZTdkIDEwMDY0NAotLS0gYS9nZGItZm9y dHJhbi1zdHJpZGUtaW50ZWwtM29mNi5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50 ZWwtM29mNi5wYXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwv Z2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0NS5odG1sCi1TdWJqZWN0OiBbUEFUQ0ggdjIgMy82 XSBmb3J0cmFuOiBjaGFuZ2Ugc3VicmFuZ2UgZW51bSB0byBiaXQgZmllbGQKK1JFOiBbcGluZ10g W1BBVENIIHYyIDAvNl0gZm9ydHJhbjogbXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGgg c3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21z ZzAwMDA5Lmh0bWwKIAorRnJvbSAwNThlZDllNTVkYjcyMjQ0ZmUxYzUzNDZhMTFmYTY3ZWZmNjFk MzE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxj aHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CitEYXRlOiBNb24sIDIzIE5vdiAyMDE1IDEw OjMxOjQ0ICswMTAwCitTdWJqZWN0OiBbUEFUQ0ggMy82XSBmb3J0cmFuOiBjaGFuZ2Ugc3VicmFu Z2UgZW51bSB0byBiaXQgZmllbGQKIAogQ2hhbmdlIEZvcnRyYW4gc3VicmFuZ2UgZW51bSBmb3Ig c3VicmFuZ2UgZXhwcmVzc2lvbnMgdG8KIHJlcHJlc2VudCBhIGJpdGZpZWxkIGZvciBlYXNpZXIg bWFuaXB1bGF0aW9uLiAgQ29uc2VxdWVudGx5CkBAIC0xMiwzMSArMTUsNDEgQEAgYmVoYXZpb3Vy IG9mIEdEQiBpcyB1bmNoYW5nZWQuCiAKIAkqIGV2YWwuYyAodmFsdWVfZjkwX3N1YmFycmF5KTog Q2hhbmdlIGV2YWx1YXRpb24gb2YgdGhlCiAJc3ViYXJyYXkgYm91bmRhcmllcy4gIFNldCBib3Vu ZGFyaWVzIHRvIGJlIGVpdGhlciB1c2VyCi0JcHJvdmlkZWQgKGJpdCBpbiBmOTBfcmFuZ2VfdHlw ZSB3YXMgc2V0KSBvciB0YWtlIHRoZQotCWRlZmF1bHQgdmFsdWUgaWYgdGhlIGJvdW5kYXJ5IHdh cyBub3QgcHJvdmlkZWQgYnkgdGhlIHVzZXIuCisJcHJvdmlkZWQgKGJpdCBpbiByYW5nZV90eXBl IHdhcyBzZXQpLCBvciB0YWtlIHRoZSBkZWZhdWx0CisJdmFsdWUgaWYgdGhlIGJvdW5kYXJ5IHdh cyBub3QgcHJvdmlkZWQgYnkgdGhlIHVzZXIuCisJKiBleHBwcmludC5jIChwcmludF9zdWJleHBf c3RhbmRhcmQpOiBBbHRlciBib3VuZGFyeSBjb20tCisJcHV0YXRpb25zIHRvIHVzZSB1cGRhdGVk IHJhbmdlX3R5cGUgZW51bS4KKwkqIGV4cHByaW50LmggKGR1bXBfc3ViZXhwX2JvZHlfc3RhbmRh cmQpOiBEaXRvLgorCSogZXhwcmVzc2lvbi5oIChyYW5nZV90eXBlKTogQ2hhbmdlIHRoZSBlbnVt IHRvIHVzZSBiaXQKKwl2YWx1ZXMgZm9yIGVhY2ggYm91bmRhcnksIGlmIHNldCBieSB0aGUgdXNl ci4KIAkqIGYtZXhwLnkgKHN1YnJhbmdlKTogQ2hhbmdlIHJ1bGVzIGZvciBzdWJyYW5nZSBleHBy ZXNzaW9ucwogCXRvIHdyaXRlIHRoZSByZWxldmFudCBiaXQgc2VxdWVuY2Ugb250byB0aGUgZWx0 IHN0YWNrLgotCSogZi1sYW5nLmggKGY5MF9yYW5nZV90eXBlKTogQ2hhbmdlIHRoZSBlbnVtIHRv IHVzZSBiaXQKLQl2YWx1ZXMgZm9yIGVhY2ggYm91bmRhcnksIGlmIHNldCBieSB0aGUgdXNlci4K LQkqIHBhcnNlLmMgKG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCk6IEluIGNhc2Ugb2YKLQlPUF9G OTBfUkFOR0UgY2hhbmdlIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgbnVtYmVyIG9mCi0JYXJndW1l bnRzIG9uIHRoZSBlbHQgc3RhY2ssIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mCi0JYm91bmRh cmllcyBwcm92aWRlZCBieSB0aGUgdXNlci4KKwkqIHBhcnNlLmMgKG9wZXJhdG9yX2xlbmd0aF9z dGFuZGFyZCk6IEluIGNhc2Ugb2YgT1BfUkFOR0UKKwljaGFuZ2UgdGhlIGNhbGN1bGF0aW9uIG9m IHRoZSBudW1iZXIgb2YJYXJndW1lbnRzIG9uIHRoZQorCWVsdCBzdGFjaywgZGVwZW5kaW5nIG9u IHRoZSBudW1iZXIgb2YgYm91bmRhcmllcyBwcm92aWRlZAorCWJ5IHRoZSB1c2VyLgorCSogcnVz dC1leHAueSAoY29udmVydF9hc3RfdG9fZXhwcmVzc2lvbik6IE1vZGlmeSBjYWxjdWxhLQorCXRp b24gb2Ygc3Vic2NyaXB0IGVsZW1lbnRzIHRvIHVzZSBhbHRlcmVkIHJhbmdlX3R5cGUuCisJKiBy dXN0LWxhbmcuYyAocnVzdF9yYW5nZSk6IERpdG8uCisJKiBydXN0LWxhbmcuYyAocnVzdF9zdWJz Y3JpcHQpOiBEaXRvLgogCiAKIFNpZ25lZC1vZmYtYnk6IENocmlzdG9waCBXZWlubWFubiA8Y2hy aXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29tPgogLS0tCi0gZ2RiL2V2YWwuYyAgIHwgMTQgKysr KysrLS0tLS0tLS0KLSBnZGIvZi1leHAueSAgfCAxMSArKysrKystLS0tLQotIGdkYi9mLWxhbmcu aCB8ICA2ICsrLS0tLQotIGdkYi9wYXJzZS5jICB8IDIxICsrKysrKysrLS0tLS0tLS0tLS0tLQot IDQgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCisgZ2Ri L2V2YWwuYyAgICAgICB8IDE0ICsrKysrKy0tLS0tLS0tCisgZ2RiL2V4cHByaW50LmMgICB8IDIw ICsrKysrKysrLS0tLS0tLS0tLS0tCisgZ2RiL2V4cHJlc3Npb24uaCB8IDE1ICsrKysrKy0tLS0t LS0tLQorIGdkYi9mLWV4cC55ICAgICAgfCAxMSArKysrKystLS0tLQorIGdkYi9wYXJzZS5jICAg ICAgfCAyMSArKysrKysrKy0tLS0tLS0tLS0tLS0KKyBnZGIvcnVzdC1leHAueSAgIHwgMTIgKysr LS0tLS0tLS0tCisgZ2RiL3J1c3QtbGFuZy5jICB8IDE3ICsrKysrKysrLS0tLS0tLS0tCisgNyBm aWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKIAogZGlmZiAt LWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRleCAxNjRkN2FiLi45YjhiMDUxIDEw MDY0NAoraW5kZXggNWMyMGZlZS4uNDRlODYwMCAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMKICsr KyBiL2dkYi9ldmFsLmMKLUBAIC00ODAsMTIgKzQ4MCwxMiBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkg KHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtNDgyLDEy ICs0ODIsMTIgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgIC8qIElmIGEgbG93ZXIgYm91bmQgd2FzIHByb3ZpZGVk IGJ5IHRoZSB1c2VyLCB0aGUgYml0IGhhcyBiZWVuCiAgCSAgICAgc2V0IGFuZCB3ZSBjYW4gYXNz aWduIHRoZSB2YWx1ZSBmcm9tIHRoZSBlbHQgc3RhY2suICBTYW1lIGZvcgogIAkgICAgIHVwcGVy IGJvdW5kLiAgKi8KQEAgLTUzLDcgKzY2LDcgQEAgaW5kZXggMTY0ZDdhYi4uOWI4YjA1MSAxMDA2 NDQKICAJICAgIHJhbmdlLT5oaWdoID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChO VUxMX1RZUEUsIGV4cCwKICAJCQkJCQkJICBwb3MsIG5vc2lkZSkpOwogIAl9Ci1AQCAtNTI2LDEy ICs1MjYsMTAgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTUyOCwxMiArNTI4LDEwIEBAIHZhbHVlX2Y5MF9zdWJh cnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAKICAJ ICAgIC8qIElmIG5vIGxvd2VyIGJvdW5kIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlciwgd2UgdGFr ZSB0aGUKICAJICAgICAgIGRlZmF1bHQgYm91bmRhcnkuICBTYW1lIGZvciB0aGUgaGlnaCBib3Vu ZC4gICovCkBAIC02OCw3MCArODEsMTM1IEBAIGluZGV4IDE2NGQ3YWIuLjliOGIwNTEgMTAwNjQ0 CiAgCSAgICAgIHJhbmdlLT5oaWdoID0gVFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKTsKICAK ICAJICAgIC8qIEJvdGggdXNlciBwcm92aWRlZCBsb3cgYW5kIGhpZ2ggYm91bmQgaGF2ZSB0byBi ZSBpbnNpZGUgdGhlCitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHByaW50LmMgYi9nZGIvZXhwcHJpbnQu YworaW5kZXggYzM3ZWNiMC4uMjE0ZDU4ZSAxMDA2NDQKKy0tLSBhL2dkYi9leHBwcmludC5jCisr KysgYi9nZGIvZXhwcHJpbnQuYworQEAgLTU2OCwxMiArNTY4LDEwIEBAIHByaW50X3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsCisgCSpwb3MgKz0gMjsK KyAKKyAJZnB1dHNfZmlsdGVyZWQgKCJSQU5HRSgiLCBzdHJlYW0pOworLQlpZiAocmFuZ2VfdHlw ZSA9PSBISUdIX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VO RF9ERUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9MT1dfQk9VTkQpID09IFNV QkFSUkFZX0xPV19CT1VORCkKKyAJICBwcmludF9zdWJleHAgKGV4cCwgcG9zLCBzdHJlYW0sIFBS RUNfQUJPVkVfQ09NTUEpOworIAlmcHV0c19maWx0ZXJlZCAoIi4uIiwgc3RyZWFtKTsKKy0JaWYg KHJhbmdlX3R5cGUgPT0gTE9XX0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0g Tk9ORV9CT1VORF9ERUZBVUxUKQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JP VU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorIAkgIHByaW50X3N1YmV4cCAoZXhwLCBwb3Ms IHN0cmVhbSwgUFJFQ19BQk9WRV9DT01NQSk7CisgCWZwdXRzX2ZpbHRlcmVkICgiKSIsIHN0cmVh bSk7CisgCXJldHVybjsKK0BAIC0xMDU1LDE2ICsxMDUzLDE2IEBAIGR1bXBfc3ViZXhwX2JvZHlf c3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgCisgCXN3aXRjaCAocmFuZ2VfdHlw ZSkKKyAJICB7CistCSAgY2FzZSBCT1RIX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBTVUJBUlJB WV9OT05FX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi4nIiwgc3RyZWFt KTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgTE9XX0JPVU5EX0RFRkFVTFQ6CisrCSAgY2FzZSBT VUJBUlJBWV9ISUdIX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnLi5FWFAn Iiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgSElHSF9CT1VORF9ERUZBVUxUOgor KwkgIGNhc2UgU1VCQVJSQVlfTE9XX0JPVU5EOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5n ZSAnRVhQLi4nIiwgc3RyZWFtKTsKKyAJICAgIGJyZWFrOworLQkgIGNhc2UgTk9ORV9CT1VORF9E RUZBVUxUOgorKwkgIGNhc2UgKFNVQkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9V TkQpOgorIAkgICAgZnB1dHNfZmlsdGVyZWQgKCJSYW5nZSAnRVhQLi5FWFAnIiwgc3RyZWFtKTsK KyAJICAgIGJyZWFrOworIAkgIGRlZmF1bHQ6CitAQCAtMTA3MiwxMSArMTA3MCw5IEBAIGR1bXBf c3ViZXhwX2JvZHlfc3RhbmRhcmQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsCisgCSAgICBicmVh azsKKyAJICB9CisgCistCWlmIChyYW5nZV90eXBlID09IEhJR0hfQk9VTkRfREVGQVVMVAorLQkg ICAgfHwgcmFuZ2VfdHlwZSA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrCWlmICgocmFuZ2VfdHlw ZSAmIFNVQkFSUkFZX0xPV19CT1VORCkgPT0gU1VCQVJSQVlfTE9XX0JPVU5EKQorIAkgIGVsdCA9 IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKKy0JaWYgKHJhbmdlX3R5cGUgPT0gTE9X X0JPVU5EX0RFRkFVTFQKKy0JICAgIHx8IHJhbmdlX3R5cGUgPT0gTk9ORV9CT1VORF9ERUZBVUxU KQorKwlpZiAoKHJhbmdlX3R5cGUgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9I SUdIX0JPVU5EKQorIAkgIGVsdCA9IGR1bXBfc3ViZXhwIChleHAsIHN0cmVhbSwgZWx0KTsKKyAg ICAgICB9CisgICAgICAgYnJlYWs7CitkaWZmIC0tZ2l0IGEvZ2RiL2V4cHJlc3Npb24uaCBiL2dk Yi9leHByZXNzaW9uLmgKK2luZGV4IDQ5NTJkODQuLjVhNmI3MjAgMTAwNjQ0CistLS0gYS9nZGIv ZXhwcmVzc2lvbi5oCisrKysgYi9nZGIvZXhwcmVzc2lvbi5oCitAQCAtMTUyLDE3ICsxNTIsMTQg QEAgZXh0ZXJuIHZvaWQgZHVtcF9yYXdfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwK KyAJCQkJIHN0cnVjdCB1aV9maWxlICosIGNoYXIgKik7CisgZXh0ZXJuIHZvaWQgZHVtcF9wcmVm aXhfZXhwcmVzc2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKiwgc3RydWN0IHVpX2ZpbGUgKik7Cisg CistLyogSW4gYW4gT1BfUkFOR0UgZXhwcmVzc2lvbiwgZWl0aGVyIGJvdW5kIGNvdWxkIGJlIGVt cHR5LCBpbmRpY2F0aW5nCistICAgdGhhdCBpdHMgdmFsdWUgaXMgYnkgZGVmYXVsdCB0aGF0IG9m IHRoZSBjb3JyZXNwb25kaW5nIGJvdW5kIG9mIHRoZQorLSAgIGFycmF5IG9yIHN0cmluZy4gIFNv IHdlIGhhdmUgZm91ciBzb3J0cyBvZiBzdWJyYW5nZS4gIFRoaXMKKy0gICBlbnVtZXJhdGlvbiB0 eXBlIGlzIHRvIGlkZW50aWZ5IHRoaXMuICAqLworLSAgIAorKy8qIEluIGFuIE9QX1JBTkdFIGV4 cHJlc3Npb24sIGVpdGhlciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIG9yIG5v dC4KKysgICBUaGlzIGVudW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkgdGhpcy4gICovCisr CisgZW51bSByYW5nZV90eXBlCisgICB7CistICAgIEJPVEhfQk9VTkRfREVGQVVMVCwJCS8qICIo OikiICAqLworLSAgICBMT1dfQk9VTkRfREVGQVVMVCwJCS8qICIoOmhpZ2gpIiAgKi8KKy0gICAg SElHSF9CT1VORF9ERUZBVUxULAkJLyogIihsb3c6KSIgICovCistICAgIE5PTkVfQk9VTkRfREVG QVVMVAkJLyogIihsb3c6aGlnaCkiICAqLworKyAgICBTVUJBUlJBWV9OT05FX0JPVU5EID0gMHgw LAkJLyogIiggOiApIiAgKi8KKysgICAgU1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyogIihs b3c6KSIgICovCisrICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIJCS8qICIoOmhpZ2gpIiAg Ki8KKyAgIH07CisgCisgI2VuZGlmIC8qICFkZWZpbmVkIChFWFBSRVNTSU9OX0gpICovCiBkaWZm IC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQotaW5kZXggOTM0M2FiYi4uYjEyMDZk ZSAxMDA2NDQKK2luZGV4IGRjMTMxYzEuLmUyYzU0YjYgMTAwNjQ0CiAtLS0gYS9nZGIvZi1leHAu eQogKysrIGIvZ2RiL2YtZXhwLnkKLUBAIC0zMTUsMjYgKzMxNSwyNyBAQCBhcmdsaXN0CToJYXJn bGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKK0BAIC0yNjAsMjYgKzI2MCwyNyBAQCBh cmdsaXN0CToJYXJnbGlzdCAnLCcgZXhwICAgJXByZWMgQUJPVkVfQ09NTUEKICAvKiBUaGVyZSBh cmUgZm91ciBzb3J0cyBvZiBzdWJyYW5nZSB0eXBlcyBpbiBGOTAuICAqLwogIAogIHN1YnJhbmdl OglleHAgJzonIGV4cAklcHJlYyBBQk9WRV9DT01NQQotLQkJCXsgd3JpdGVfZXhwX2VsdF9vcGNv ZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgCistCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAo cHN0YXRlLCBPUF9SQU5HRSk7IAogLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUs IE5PTkVfQk9VTkRfREVGQVVMVCk7Ci0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRl LCBPUF9GOTBfUkFOR0UpOworKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf UkFOR0UpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsCiArCQkJCQkJIFNV QkFSUkFZX0xPV19CT1VORCB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotIAkJCSAgd3JpdGVfZXhw X2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQorIAkJCSAgd3JpdGVfZXhwX2Vs dF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CiAgCTsKICAKICBzdWJyYW5nZToJZXhwICc6 JwklcHJlYyBBQk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwg T1BfRjkwX1JBTkdFKTsKKyAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JB TkdFKTsKIC0JCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBISUdIX0JPVU5EX0RF RkFVTFQpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xP V19CT1VORCk7Ci0gCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFO R0UpOyB9CisgCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0K ICAJOwogIAogIHN1YnJhbmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3cml0 ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworIAkJCXsgd3JpdGVfZXhw X2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25n Y3N0IChwc3RhdGUsIExPV19CT1VORF9ERUZBVUxUKTsKICsJCQkgIHdyaXRlX2V4cF9lbHRfbG9u Z2NzdCAocHN0YXRlLCBTVUJBUlJBWV9ISUdIX0JPVU5EKTsKLSAJCQkgIHdyaXRlX2V4cF9lbHRf b3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7IH0KKyAJCQkgIHdyaXRlX2V4cF9lbHRfb3Bj b2RlIChwc3RhdGUsIE9QX1JBTkdFKTsgfQogIAk7CiAgCiAgc3VicmFuZ2U6CSc6JwklcHJlYyBB Qk9WRV9DT01NQQotIAkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JB TkdFKTsKKyAJCQl7IHdyaXRlX2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKIC0J CQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2NzdCAocHN0YXRlLCBCT1RIX0JPVU5EX0RFRkFVTFQpOwog KwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIDApOwotIAkJCSAgd3JpdGVfZXhw X2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQorIAkJCSAgd3JpdGVfZXhwX2Vs dF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CiAgCTsKICAKLWRpZmYgLS1naXQgYS9nZGIv Zi1sYW5nLmggYi9nZGIvZi1sYW5nLmgKLWluZGV4IGVlY2ExMDcuLjRkNTZiZjcgMTAwNjQ0Ci0t LS0gYS9nZGIvZi1sYW5nLmgKLSsrKyBiL2dkYi9mLWxhbmcuaAotQEAgLTQ0LDEwICs0NCw4IEBA IGV4dGVybiB2b2lkIGZfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAq LCBpbnQsIENPUkVfQUREUiwKLSAgICAKLSBlbnVtIGY5MF9yYW5nZV90eXBlCi0gICB7Ci0tICAg IEJPVEhfQk9VTkRfREVGQVVMVCwJCS8qICIoOikiICAqLwotLSAgICBMT1dfQk9VTkRfREVGQVVM VCwJCS8qICIoOmhpZ2gpIiAgKi8KLS0gICAgSElHSF9CT1VORF9ERUZBVUxULAkJLyogIihsb3c6 KSIgICovCi0tICAgIE5PTkVfQk9VTkRfREVGQVVMVAkJLyogIihsb3c6aGlnaCkiICAqLwotKyAg ICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8KLSsgICAgU1VCQVJS QVlfSElHSF9CT1VORCA9IDB4MgkJLyogIig6aGlnaCkiICAqLwotICAgfTsKLSAKLSAvKiBBIGNv bW1vbiBibG9jay4gICovCiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwot aW5kZXggNDE5MWZjNi4uZDUwMDI3OSAxMDA2NDQKK2luZGV4IDJiMDA3MDguLjZkNTRhNzcgMTAw NjQ0CiAtLS0gYS9nZGIvcGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMKIEBAIC0xMDA2LDIyICsx MDA2LDE3IEBAIG9wZXJhdG9yX2xlbmd0aF9zdGFuZGFyZCAoY29uc3Qgc3RydWN0IGV4cHJlc3Np b24gKmV4cHIsIGludCBlbmRwb3MsCiAgCi0gICAgIGNhc2UgT1BfRjkwX1JBTkdFOgorICAgICBj YXNlIE9QX1JBTkdFOgogICAgICAgIG9wbGVuID0gMzsKICsgICAgICBhcmdzID0gMDsKLSAgICAg ICByYW5nZV90eXBlID0gKGVudW0gZjkwX3JhbmdlX3R5cGUpCisgICAgICAgcmFuZ2VfdHlwZSA9 IChlbnVtIHJhbmdlX3R5cGUpCiAgCWxvbmdlc3RfdG9faW50IChleHByLT5lbHRzW2VuZHBvcyAt IDJdLmxvbmdjb25zdCk7CiAgCiAtICAgICAgc3dpdGNoIChyYW5nZV90eXBlKQpAQCAtMTU3LDYg KzIzNSwxMDcgQEAgaW5kZXggNDE5MWZjNi4uZDUwMDI3OSAxMDA2NDQKICAKICAgICAgICBicmVh azsKICAKK2RpZmYgLS1naXQgYS9nZGIvcnVzdC1leHAueSBiL2dkYi9ydXN0LWV4cC55CitpbmRl eCBjMWE4NjNjLi43NjA5MjliNSAxMDA2NDQKKy0tLSBhL2dkYi9ydXN0LWV4cC55CisrKysgYi9n ZGIvcnVzdC1leHAueQorQEAgLTI0MTgsMjMgKzI0MTgsMTcgQEAgY29udmVydF9hc3RfdG9fZXhw cmVzc2lvbiAoc3RydWN0IHBhcnNlcl9zdGF0ZSAqc3RhdGUsCisgCisgICAgIGNhc2UgT1BfUkFO R0U6CisgICAgICAgeworLQllbnVtIHJhbmdlX3R5cGUga2luZCA9IEJPVEhfQk9VTkRfREVGQVVM VDsKKysJZW51bSByYW5nZV90eXBlIGtpbmQgPSBTVUJBUlJBWV9OT05FX0JPVU5EOworIAorIAlp ZiAob3BlcmF0aW9uLT5sZWZ0Lm9wICE9IE5VTEwpCisgCSAgeworIAkgICAgY29udmVydF9hc3Rf dG9fZXhwcmVzc2lvbiAoc3RhdGUsIG9wZXJhdGlvbi0+bGVmdC5vcCwgdG9wKTsKKy0JICAgIGtp bmQgPSBISUdIX0JPVU5EX0RFRkFVTFQ7CisrCSAgICBraW5kID0gU1VCQVJSQVlfTE9XX0JPVU5E OworIAkgIH0KKyAJaWYgKG9wZXJhdGlvbi0+cmlnaHQub3AgIT0gTlVMTCkKKyAJICB7CisgCSAg ICBjb252ZXJ0X2FzdF90b19leHByZXNzaW9uIChzdGF0ZSwgb3BlcmF0aW9uLT5yaWdodC5vcCwg dG9wKTsKKy0JICAgIGlmIChraW5kID09IEJPVEhfQk9VTkRfREVGQVVMVCkKKy0JICAgICAga2lu ZCA9IExPV19CT1VORF9ERUZBVUxUOworLQkgICAgZWxzZQorLQkgICAgICB7CistCQlnZGJfYXNz ZXJ0IChraW5kID09IEhJR0hfQk9VTkRfREVGQVVMVCk7CistCQlraW5kID0gTk9ORV9CT1VORF9E RUZBVUxUOworLQkgICAgICB9CisrCSAgICBraW5kID0gKHJhbmdlX3R5cGUpIChraW5kIHwgU1VC QVJSQVlfSElHSF9CT1VORCk7CisgCSAgfQorIAl3cml0ZV9leHBfZWx0X29wY29kZSAoc3RhdGUs IE9QX1JBTkdFKTsKKyAJd3JpdGVfZXhwX2VsdF9sb25nY3N0IChzdGF0ZSwga2luZCk7CitkaWZm IC0tZ2l0IGEvZ2RiL3J1c3QtbGFuZy5jIGIvZ2RiL3J1c3QtbGFuZy5jCitpbmRleCA1ZGY5OWNl Li44ZDUzZTMxIDEwMDY0NAorLS0tIGEvZ2RiL3J1c3QtbGFuZy5jCisrKysgYi9nZGIvcnVzdC1s YW5nLmMKK0BAIC0xMTg4LDkgKzExODgsOSBAQCBydXN0X3JhbmdlIChzdHJ1Y3QgZXhwcmVzc2lv biAqZXhwLCBpbnQgKnBvcywgZW51bSBub3NpZGUgbm9zaWRlKQorICAga2luZCA9IChlbnVtIHJh bmdlX3R5cGUpIGxvbmdlc3RfdG9faW50IChleHAtPmVsdHNbKnBvcyArIDFdLmxvbmdjb25zdCk7 CisgICAqcG9zICs9IDM7CisgCistICBpZiAoa2luZCA9PSBISUdIX0JPVU5EX0RFRkFVTFQgfHwg a2luZCA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrICBpZiAoKGtpbmQgJiBTVUJBUlJBWV9MT1df Qk9VTkQpID09IFNVQkFSUkFZX0xPV19CT1VORCkKKyAgICAgbG93ID0gZXZhbHVhdGVfc3ViZXhw IChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOworLSAgaWYgKGtpbmQgPT0gTE9XX0JPVU5E X0RFRkFVTFQgfHwga2luZCA9PSBOT05FX0JPVU5EX0RFRkFVTFQpCisrICBpZiAoKGtpbmQgJiBT VUJBUlJBWV9ISUdIX0JPVU5EKSA9PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQorICAgICBoaWdoID0g ZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOworIAorICAgaWYg KG5vc2lkZSA9PSBFVkFMX1NLSVApCitAQCAtMTI3OSw3ICsxMjc5LDcgQEAgcnVzdF9jb21wdXRl X3JhbmdlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHZhbHVlICpyYW5nZSwKKyAKKyAgICps b3cgPSAwOworICAgKmhpZ2ggPSAwOworLSAgKmtpbmQgPSBCT1RIX0JPVU5EX0RFRkFVTFQ7Cisr ICAqa2luZCA9IFNVQkFSUkFZX05PTkVfQk9VTkQ7CisgCisgICBpZiAoVFlQRV9ORklFTERTICh0 eXBlKSA9PSAwKQorICAgICByZXR1cm47CitAQCAtMTI4NywxNSArMTI4NywxNCBAQCBydXN0X2Nv bXB1dGVfcmFuZ2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKnJhbmdlLAorICAg aSA9IDA7CisgICBpZiAoc3RyY21wIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIDApLCAic3RhcnQi KSA9PSAwKQorICAgICB7CistICAgICAgKmtpbmQgPSBISUdIX0JPVU5EX0RFRkFVTFQ7CisrICAg ICAgKmtpbmQgPSBTVUJBUlJBWV9MT1dfQk9VTkQ7CisgICAgICAgKmxvdyA9IHZhbHVlX2FzX2xv bmcgKHZhbHVlX2ZpZWxkIChyYW5nZSwgMCkpOworICAgICAgICsraTsKKyAgICAgfQorICAgaWYg KFRZUEVfTkZJRUxEUyAodHlwZSkgPiBpCisgICAgICAgJiYgc3RyY21wIChUWVBFX0ZJRUxEX05B TUUgKHR5cGUsIGkpLCAiZW5kIikgPT0gMCkKKyAgICAgeworLSAgICAgICpraW5kID0gKCpraW5k ID09IEJPVEhfQk9VTkRfREVGQVVMVAorLQkgICAgICAgPyBMT1dfQk9VTkRfREVGQVVMVCA6IE5P TkVfQk9VTkRfREVGQVVMVCk7CisrICAgICAgKmtpbmQgPSAocmFuZ2VfdHlwZSkgKCpraW5kIHwg U1VCQVJSQVlfSElHSF9CT1VORCk7CisgICAgICAgKmhpZ2ggPSB2YWx1ZV9hc19sb25nICh2YWx1 ZV9maWVsZCAocmFuZ2UsIGkpKTsKKyAgICAgfQorIH0KK0BAIC0xMzEwLDcgKzEzMDksNyBAQCBy dXN0X3N1YnNjcmlwdCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50ICpwb3MsIGVudW0gbm9z aWRlIG5vc2lkZSwKKyAgIHN0cnVjdCB0eXBlICpyaHN0eXBlOworICAgTE9OR0VTVCBsb3csIGhp Z2hfYm91bmQ7CisgICAvKiBJbml0aWFsaXplZCB0byBhcHBlYXNlIHRoZSBjb21waWxlci4gICov CistICBlbnVtIHJhbmdlX3R5cGUga2luZCA9IEJPVEhfQk9VTkRfREVGQVVMVDsKKysgIGVudW0g cmFuZ2VfdHlwZSBraW5kID0gU1VCQVJSQVlfTk9ORV9CT1VORDsKKyAgIExPTkdFU1QgaGlnaCA9 IDA7CisgICBpbnQgd2FudF9zbGljZSA9IDA7CisgCitAQCAtMTM2Niw3ICsxMzY1LDcgQEAgcnVz dF9zdWJzY3JpcHQgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lk ZSBub3NpZGUsCisgCWVycm9yIChfKCJDYW5ub3Qgc3Vic2NyaXB0IG5vbi1hcnJheSB0eXBlIikp OworIAorICAgICAgIGlmICh3YW50X3NsaWNlCistCSAgJiYgKGtpbmQgPT0gQk9USF9CT1VORF9E RUZBVUxUIHx8IGtpbmQgPT0gTE9XX0JPVU5EX0RFRkFVTFQpKQorKwkgICYmICgoa2luZCAmIFNV QkFSUkFZX0xPV19CT1VORCkgIT0gU1VCQVJSQVlfTE9XX0JPVU5EKSkKKyAJbG93ID0gbG93X2Jv dW5kOworICAgICAgIGlmIChsb3cgPCAwKQorIAllcnJvciAoXygiSW5kZXggbGVzcyB0aGFuIHpl cm8iKSk7CitAQCAtMTM4NCw3ICsxMzgzLDcgQEAgcnVzdF9zdWJzY3JpcHQgKHN0cnVjdCBleHBy ZXNzaW9uICpleHAsIGludCAqcG9zLCBlbnVtIG5vc2lkZSBub3NpZGUsCisgCSAgQ09SRV9BRERS IGFkZHI7CisgCSAgc3RydWN0IHZhbHVlICphZGRydmFsLCAqdGVtOworIAorLQkgIGlmIChraW5k ID09IEJPVEhfQk9VTkRfREVGQVVMVCB8fCBraW5kID09IEhJR0hfQk9VTkRfREVGQVVMVCkKKysJ ICBpZiAoKGtpbmQgJiBTVUJBUlJBWV9ISUdIX0JPVU5EKSAhPSBTVUJBUlJBWV9ISUdIX0JPVU5E KQorIAkgICAgaGlnaCA9IGhpZ2hfYm91bmQ7CisgCSAgaWYgKGhpZ2ggPCAwKQorIAkgICAgZXJy b3IgKF8oIkhpZ2ggaW5kZXggbGVzcyB0aGFuIHplcm8iKSk7CiAtLSAKLTIuNS4wCisyLjUuNQog CgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTRvZjYucGF0Y2ggYi9nZGIt Zm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaAppbmRleCA2NTYzZDcxLi4wZTA5NmUzIDEw MDY0NAotLS0gYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaAorKysgYi9nZGIt Zm9ydHJhbi1zdHJpZGUtaW50ZWwtNG9mNi5wYXRjaApAQCAtMSw3ICsxLDEwIEBACi1odHRwOi8v c291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wMi9tc2cwMDg0Mi5odG1sCi1TdWJq ZWN0OiBbUEFUQ0ggdjIgNC82XSBmb3J0cmFuOiBlbmFibGUgcGFyc2luZyBvZiBzdHJpZGUgcGFy YW1ldGVyIGZvciBzdWJyYW5nZXMKK1JFOiBbcGluZ10gW1BBVENIIHYyIDAvNl0gZm9ydHJhbjog bXVsdGktZGltZW5zaW9uYWwgc3ViYXJyYXlzIHdpdGggc3RyaWRlcworaHR0cHM6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTA3L21zZzAwMDA5Lmh0bWwKIAorRnJvbSAzMzhl NGM4NjBhZDIwNTg5NmI0YTk1Yzc5ZjU0NDcwYzc5ZWViMzQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQogRnJvbTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRl bC5jb20+CitEYXRlOiBXZWQsIDEgSnVuIDIwMTYgMTU6MTE6MjQgKzAyMDAKK1N1YmplY3Q6IFtQ QVRDSCA0LzZdIGZvcnRyYW46IGVuYWJsZSBwYXJzaW5nIG9mIHN0cmlkZSBwYXJhbWV0ZXIgZm9y IHN1YnJhbmdlcwogCiBBbGxvdyB0aGUgdXNlciB0byBwcm92aWRlIGEgc3RyaWRlIHBhcmFtZXRl ciBmb3IgRm9ydHJhbgogc3ViYXJyYXlzLiAgVGhlIHN0cmlkZSBwYXJhbWV0ZXIgY2FuIGJlIGFu eSBpbnRlZ2VyIGV4Y2VwdApAQCAtMTEsMTAgKzE0LDEwIEBAIHN1YmFycmF5cy4gIFRoZSBzdHJp ZGUgcGFyYW1ldGVyIGNhbiBiZSBhbnkgaW50ZWdlciBleGNlcHQKIAogCSogZXZhbC5jICh2YWx1 ZV9mOTBfc3ViYXJyYXkpOiBBZGQgZXhwcmVzc2lvbiBldmFsdWF0aW9uCiAJZm9yIGEgc3RyaWRl IHBhcmFtZXRlciBpbiBhIEZvcnRyYW4gcmFuZ2UgZXhwcmVzc2lvbi4KKwkqIGV4cHJlc3Npb24u aCAocmFuZ2VfdHlwZSk6IEFkZCBmaWVsZCB0byBlbnVtIHRvIHNob3cgd2hlbgorCWEgc3RyaWRl IHZhbHVlIHdhcyBwcm92aWRlZCBieSB0aGUgdXNlci4KIAkqIGYtZXhwLnk6IEFkZCB5YWNjIHJ1 bGVzIGZvciB3cml0aW5nIGluZm8gb24gdGhlIGVsdCBzdGFjawogCXdoZW4gdGhlIHVzZXIgcHJv dmlkZWQgYSBzdHJpZGUgYXJndW1lbnQuCi0JKiBmLWxhbmcuaCAoRjkwX1JBTkdFKTogQWRkIGZp ZWxkIHRvIGVudW0gdG8gc2hvdyB3aGVuIGEKLQlzdHJpZGUgd2FzIHByb3ZpZGVkIGJ5IHRoZSB1 c2VyLgogCSogcGFyc2UuYyAob3BlcmF0b3JfbGVuZ3RoX3N0YW5kYXJkKTogQ2hlY2sgaWYgYSBz dHJpZGUKIAl2YWx1ZSB3YXMgcHJvdmlkZWQsIGFuZCBpbmNyZW1lbnQgYXJndW1lbnQgY291bnRl cgogCWFjY29yZGluZ2x5LgpAQCAtMjIsMjYgKzI1LDI3IEBAIHN1YmFycmF5cy4gIFRoZSBzdHJp ZGUgcGFyYW1ldGVyIGNhbiBiZSBhbnkgaW50ZWdlciBleGNlcHQKIAogU2lnbmVkLW9mZi1ieTog Q2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJpc3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CiAtLS0K LSBnZGIvZXZhbC5jICAgfCAxMCArKysrKysrKystCi0gZ2RiL2YtZXhwLnkgIHwgMzMgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tCi0gZ2RiL2YtbGFuZy5oIHwgIDUgKysrLS0KLSBn ZGIvcGFyc2UuYyAgfCAgMyArKysKLSA0IGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyks IDUgZGVsZXRpb25zKC0pCisgZ2RiL2V2YWwuYyAgICAgICB8IDExICsrKysrKysrKystCisgZ2Ri L2V4cHJlc3Npb24uaCB8ICA3ICsrKysrLS0KKyBnZGIvZi1leHAueSAgICAgIHwgMzEgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLQorIGdkYi9wYXJzZS5jICAgICAgfCAgMyArKysKKyBn ZGIvdmFsb3BzLmMgICAgIHwgIDQgKystLQorIDUgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZh bC5jCi1pbmRleCA5YjhiMDUxLi4zMDhhZGEzIDEwMDY0NAoraW5kZXggNDRlODYwMC4uYjVhYWYx YyAxMDA2NDQKIC0tLSBhL2dkYi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMKLUBAIC00MzgsNyAr NDM4LDcgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLAotICAgICAgIHN0cnVjdCBzdWJzY3JpcHRfcmFuZ2UKLSAgICAgICB7 Ci0gICAgICAgICBlbnVtIGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90eXBlOwotLSAgICAgICAg TE9OR0VTVCBsb3csIGhpZ2g7Ci0rICAgICAgICBMT05HRVNUIGxvdywgaGlnaCwgc3RyaWRlOwot ICAgICAgIH0KLSAgICAgICByYW5nZTsKLSAgICAgICBMT05HRVNUIG51bWJlcjsKLUBAIC00ODgs NiArNDg4LDE0IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC00MTksNyArNDE5LDcgQEAgdmFsdWVfZjkwX3N1YmFy cmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorICAgdHlw ZWRlZiBzdHJ1Y3Qgc3Vic2NyaXB0X3JhbmdlCisgICB7CisgICAgIGVudW0gcmFuZ2VfdHlwZSBm OTBfcmFuZ2VfdHlwZTsKKy0gICAgTE9OR0VTVCBsb3csIGhpZ2g7CisrICAgIExPTkdFU1QgbG93 LCBoaWdoLCBzdHJpZGU7CisgICB9IHN1YnNjcmlwdF9yYW5nZTsKKyAKKyAgIHR5cGVkZWYgZW51 bSBzdWJzY3JpcHRfa2luZAorQEAgLTQ5MCw2ICs0OTAsMTUgQEAgdmFsdWVfZjkwX3N1YmFycmF5 IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkgICAgICA9 PSBTVUJBUlJBWV9ISUdIX0JPVU5EKQogIAkgICAgcmFuZ2UtPmhpZ2ggPSB2YWx1ZV9hc19sb25n IChldmFsdWF0ZV9zdWJleHAgKE5VTExfVFlQRSwgZXhwLAogIAkJCQkJCQkgIHBvcywgbm9zaWRl KSk7CkBAIC00OSw4MiArNTMsODEgQEAgaW5kZXggOWI4YjA1MS4uMzA4YWRhMyAxMDA2NDQKICsJ ICAvKiBBc3NpZ24gdGhlIHVzZXIncyBzdHJpZGUgdmFsdWUgaWYgcHJvdmlkZWQuICAqLwogKwkg IGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlICYgU1VCQVJSQVlfU1RSSURFKSA9PSBTVUJBUlJB WV9TVFJJREUpCiArCSAgICByYW5nZS0+c3RyaWRlID0gdmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVf c3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKLSsJCQkJCQkJICAgIHBvcywgbm9zaWRlKSk7CisrCQkJ CQkJCSAgICAgcG9zLCBub3NpZGUpKTsKKysKICsJICAvKiBBc3NpZ24gdGhlIGRlZmF1bHQgc3Ry aWRlIHZhbHVlICcxJy4gICovCiArCSAgZWxzZQogKwkgICAgcmFuZ2UtPnN0cmlkZSA9IDE7CiAg CX0KICAgICAgICAvKiBVc2VyIGlucHV0IGlzIGFuIGluZGV4LiAgRS5nLjogInAgYXJyeSg1KSIu ICAqLwogICAgICAgIGVsc2UKK2RpZmYgLS1naXQgYS9nZGIvZXhwcmVzc2lvbi5oIGIvZ2RiL2V4 cHJlc3Npb24uaAoraW5kZXggNWE2YjcyMC4uMzRjYTU0YiAxMDA2NDQKKy0tLSBhL2dkYi9leHBy ZXNzaW9uLmgKKysrKyBiL2dkYi9leHByZXNzaW9uLmgKK0BAIC0xNTMsMTMgKzE1MywxNiBAQCBl eHRlcm4gdm9pZCBkdW1wX3Jhd19leHByZXNzaW9uIChzdHJ1Y3QgZXhwcmVzc2lvbiAqLAorIGV4 dGVybiB2b2lkIGR1bXBfcHJlZml4X2V4cHJlc3Npb24gKHN0cnVjdCBleHByZXNzaW9uICosIHN0 cnVjdCB1aV9maWxlICopOworIAorIC8qIEluIGFuIE9QX1JBTkdFIGV4cHJlc3Npb24sIGVpdGhl ciBib3VuZCBjYW4gYmUgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIG9yIG5vdC4KKy0gICBUaGlzIGVu dW1lcmF0aW9uIHR5cGUgaXMgdG8gaWRlbnRpZnkgdGhpcy4gICovCisrICAgSW4gYWRkaXRpb24g dG8gdGhpcywgdGhlIHVzZXIgY2FuIGFsc28gc3BlY2lmeSBhIHN0cmlkZSB2YWx1ZSB0byBpbmRp Y2F0ZWQKKysgICBvbmx5IGNlcnRhaW4gZWxlbWVudHMgb2YgdGhlIGFycmF5LiAgVGhpcyBlbnVt ZXJhdGlvbiB0eXBlIGlzIHRvIGlkZW50aWZ5CisrICAgdGhpcy4gICovCisgCisgZW51bSByYW5n ZV90eXBlCisgICB7CisgICAgIFNVQkFSUkFZX05PTkVfQk9VTkQgPSAweDAsCQkvKiAiKCA6ICki ICAqLworICAgICBTVUJBUlJBWV9MT1dfQk9VTkQgPSAweDEsCQkvKiAiKGxvdzopIiAgKi8KKy0g ICAgU1VCQVJSQVlfSElHSF9CT1VORCA9IDB4MgkJLyogIig6aGlnaCkiICAqLworKyAgICBTVUJB UlJBWV9ISUdIX0JPVU5EID0gMHgyLAkJLyogIig6aGlnaCkiICAqLworKyAgICBTVUJBUlJBWV9T VFJJREUgPSAweDQJCS8qICIoOjpzdHJpZGUpIiAgKi8KKyAgIH07CisgCisgI2VuZGlmIC8qICFk ZWZpbmVkIChFWFBSRVNTSU9OX0gpICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIv Zi1leHAueQotaW5kZXggYjEyMDZkZS4uNTE1MWZlZSAxMDA2NDQKK2luZGV4IGUyYzU0YjYuLjcx ZjE4MjMgMTAwNjQ0CiAtLS0gYS9nZGIvZi1leHAueQogKysrIGIvZ2RiL2YtZXhwLnkKLUBAIC0z MTYsOCArMzE2LDggQEAgYXJnbGlzdAk6CWFyZ2xpc3QgJywnIGV4cCAgICVwcmVjIEFCT1ZFX0NP TU1BCi0gCi0gc3VicmFuZ2U6CWV4cCAnOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1BCi0gCQkJeyB3 cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOwotLQkJCSAgd3JpdGVf ZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsCi0tCQkJCQkJIFNVQkFSUkFZX0xPV19CT1VORCB8IFNV QkFSUkFZX0hJR0hfQk9VTkQpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUs IFNVQkFSUkFZX0xPV19CT1VORAotKwkJCQkJCSB8IFNVQkFSUkFZX0hJR0hfQk9VTkQpOwotIAkJ CSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQotIAk7Ci0g Ci1AQCAtMzM5LDYgKzMzOSwzNSBAQCBzdWJyYW5nZToJJzonCSVwcmVjIEFCT1ZFX0NPTU1BCi0g CQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9Ci0gCTsK K0BAIC0yODAsNyArMjgwLDM2IEBAIHN1YnJhbmdlOgknOicgZXhwCSVwcmVjIEFCT1ZFX0NPTU1B CiAgCisgc3VicmFuZ2U6CSc6JwklcHJlYyBBQk9WRV9DT01NQQorIAkJCXsgd3JpdGVfZXhwX2Vs dF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOworLQkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0 IChwc3RhdGUsIDApOworKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFS UkFZX05PTkVfQk9VTkQpOworKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1Bf UkFOR0UpOyB9CisrCTsKKysKICsvKiBFYWNoIHN1YnJhbmdlIHR5cGUgY2FuIGhhdmUgYSBzdHJp ZGUgYXJndW1lbnQuICAqLwogK3N1YnJhbmdlOglleHAgJzonIGV4cCAnOicgZXhwICVwcmVjIEFC T1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFO R0UpOworKwkJCXsgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogKwkJ CSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORAogKwkJ CQkJCSB8IFNVQkFSUkFZX0hJR0hfQk9VTkQKICsJCQkJCQkgfCBTVUJBUlJBWV9TVFJJREUpOwot KwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQorKwkJ CSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOyB9CiArCTsKICsKICtz dWJyYW5nZToJZXhwICc6JyAnOicgZXhwICVwcmVjIEFCT1ZFX0NPTU1BCi0rCQkJeyB3cml0ZV9l eHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOworKwkJCXsgd3JpdGVfZXhwX2Vs dF9vcGNvZGUgKHBzdGF0ZSwgT1BfUkFOR0UpOwogKwkJCSAgd3JpdGVfZXhwX2VsdF9sb25nY3N0 IChwc3RhdGUsIFNVQkFSUkFZX0xPV19CT1VORAogKwkJCQkJCSB8IFNVQkFSUkFZX1NUUklERSk7 Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9Cisr CQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KICsJOwogKwog K3N1YnJhbmdlOgknOicgZXhwICc6JyBleHAgJXByZWMgQUJPVkVfQ09NTUEKLSsJCQl7IHdyaXRl X2V4cF9lbHRfb3Bjb2RlIChwc3RhdGUsIE9QX0Y5MF9SQU5HRSk7CisrCQkJeyB3cml0ZV9leHBf ZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7CiArCQkJICB3cml0ZV9leHBfZWx0X2xvbmdj c3QgKHBzdGF0ZSwgU1VCQVJSQVlfSElHSF9CT1VORAogKwkJCQkJCSB8IFNVQkFSUkFZX1NUUklE RSk7Ci0rCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9GOTBfUkFOR0UpOyB9 CisrCQkJICB3cml0ZV9leHBfZWx0X29wY29kZSAocHN0YXRlLCBPUF9SQU5HRSk7IH0KICsJOwog KwogK3N1YnJhbmdlOgknOicgJzonIGV4cCAlcHJlYyBBQk9WRV9DT01NQQotKwkJCXsgd3JpdGVf ZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsKKysJCQl7IHdyaXRlX2V4cF9l bHRfb3Bjb2RlIChwc3RhdGUsIE9QX1JBTkdFKTsKICsJCQkgIHdyaXRlX2V4cF9lbHRfbG9uZ2Nz dCAocHN0YXRlLCBTVUJBUlJBWV9TVFJJREUpOwotKwkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUg KHBzdGF0ZSwgT1BfRjkwX1JBTkdFKTsgfQotKwk7Ci0rCi0gY29tcGxleG51bTogICAgIGV4cCAn LCcgZXhwIAotICAgICAgICAgICAgICAgICAJeyB9ICAgICAgICAgICAgICAgICAgICAgICAgICAK LSAgICAgICAgIDsKLWRpZmYgLS1naXQgYS9nZGIvZi1sYW5nLmggYi9nZGIvZi1sYW5nLmgKLWlu ZGV4IDRkNTZiZjcuLjBhZDU3YWYgMTAwNjQ0Ci0tLS0gYS9nZGIvZi1sYW5nLmgKLSsrKyBiL2dk Yi9mLWxhbmcuaAotQEAgLTQ0LDggKzQ0LDkgQEAgZXh0ZXJuIHZvaWQgZl92YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICosIGNvbnN0IGdkYl9ieXRlICosIGludCwgQ09SRV9BRERSLAotICAgIAotIGVu dW0gZjkwX3JhbmdlX3R5cGUKLSAgIHsKLS0gICAgU1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJ LyogIihsb3c6KSIgICovCi0tICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIJCS8qICIoOmhp Z2gpIiAgKi8KLSsgICAgU1VCQVJSQVlfTE9XX0JPVU5EID0gMHgxLAkJLyogIihsb3c6KSIgb3Ig Iihsb3c6OikiICovCi0rICAgIFNVQkFSUkFZX0hJR0hfQk9VTkQgPSAweDIsCQkvKiAiKDpoaWdo KSIgb3IgIig6aGlnaDopIiAgKi8KLSsgICAgU1VCQVJSQVlfU1RSSURFID0gMHg0CQkvKiAiKDo6 c3RyaWRlKSIgICovCi0gICB9OworIAkJCSAgd3JpdGVfZXhwX2VsdF9vcGNvZGUgKHBzdGF0ZSwg T1BfUkFOR0UpOyB9CisgCTsKICAKLSAvKiBBIGNvbW1vbiBibG9jay4gICovCiBkaWZmIC0tZ2l0 IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFyc2UuYwotaW5kZXggZDUwMDI3OS4uMDcyNDhjMyAxMDA2 NDQKK2luZGV4IDZkNTRhNzcuLjk5MmFmODcgMTAwNjQ0CiAtLS0gYS9nZGIvcGFyc2UuYwogKysr IGIvZ2RiL3BhcnNlLmMKIEBAIC0xMDE4LDYgKzEwMTgsOSBAQCBvcGVyYXRvcl9sZW5ndGhfc3Rh bmRhcmQgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uICpleHByLCBpbnQgZW5kcG9zLApAQCAtMTM3 LDYgKzE0MCwyOCBAQCBpbmRleCBkNTAwMjc5Li4wNzI0OGMzIDEwMDY0NAogICAgICAgIGJyZWFr OwogIAogICAgICBkZWZhdWx0OgorZGlmZiAtLWdpdCBhL2dkYi92YWxvcHMuYyBiL2dkYi92YWxv cHMuYworaW5kZXggODE3YTRjZi4uZmJjN2RjYiAxMDA2NDQKKy0tLSBhL2dkYi92YWxvcHMuYwor KysrIGIvZ2RiL3ZhbG9wcy5jCitAQCAtMzgzNCw3ICszODM0LDcgQEAgdmFsdWVfc2xpY2VfMSAo c3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9j b3VudCkKKyAgIGlmIChjYWxsX2NvdW50ID09IDEpCisgICAgIHsKKyAgICAgICByYW5nZV90eXBl ID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKTsKKy0gICAgICBzbGljZV9yYW5nZV9zaXpl ID0gZWxlbV9jb3VudDsKKysgICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5X2xvd19ib3VuZCAr IGVsZW1fY291bnQgLSAxOworIAorICAgICAgIC8qIENoZWNrIGlmIHRoZSBhcnJheSBib3VuZHMg YXJlIHZhbGlkLiAgKi8KKyAgICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlw ZSwgJmFyeV9sb3dfYm91bmQsICZhcnlfaGlnaF9ib3VuZCkgPCAwKQorQEAgLTM4NDYsNyArMzg0 Niw3IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwg aW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCisgICBlbHNlCisgICAgIHsKKyAgICAgICByYW5n ZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJheV90eXBlKSk7 CistICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IChhcnlfbG93X2JvdW5kICsgcm93X2NvdW50IC0g MSkgKiAoZWxlbV9jb3VudCk7CisrICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IGFyeV9sb3dfYm91 bmQgKyAocm93X2NvdW50ICogZWxlbV9jb3VudCkgLSAxOworICAgICAgIGFyeV9sb3dfYm91bmQg PSBUWVBFX0xPV19CT1VORCAocmFuZ2VfdHlwZSk7CisgICAgIH0KKyAKIC0tIAotMi41LjAKKzIu NS41CiAKCmRpZmYgLS1naXQgYS9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNW9mNi5wYXRjaCBi L2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCmluZGV4IDlhN2RiYTMuLjJiOWE2 NjIgMTAwNjQ0Ci0tLSBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCisrKyBi L2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC01b2Y2LnBhdGNoCkBAIC0xLDkgKzEsMTIgQEAKLWh0 dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDE2LTAyL21zZzAwODQ0Lmh0bWwK LVN1YmplY3Q6IFtQQVRDSCB2MiA1LzZdIGZvcnRyYW46IGNhbGN1bGF0ZSBzdWJhcnJheSB3aXRo IHN0cmlkZSB2YWx1ZXMuCitSRTogW3BpbmddIFtQQVRDSCB2MiAwLzZdIGZvcnRyYW46IG11bHRp LWRpbWVuc2lvbmFsIHN1YmFycmF5cyB3aXRoIHN0cmlkZXMKK2h0dHBzOi8vc291cmNld2FyZS5v cmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wNy9tc2cwMDAwOS5odG1sCiAKK0Zyb20gMTE4OTA5OGMz Y2FjYzJlZTY5MDIxZGUxYTgzYWQzMzI4ODIxZDc1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK IEZyb206IENocmlzdG9waCBXZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50ZWwuY29t PgorRGF0ZTogV2VkLCAxIEp1biAyMDE2IDE1OjA0OjAxICswMjAwCitTdWJqZWN0OiBbUEFUQ0gg NS82XSBmb3J0cmFuOiBjYWxjdWxhdGUgZWxlbWVudHMgb2YgYSBzdWJhcnJheSB1c2luZyBhCisg cHJvdmlkZWQgc3RyaWRlIHZhbHVlCiAKLUNhbGN1bGF0ZSBlbGVtZW50cyBvZiBhIHN1YmFycmF5 IHVzaW5nIGEgcHJvdmlkZWQgc3RyaWRlIHZhbHVlCiBUaGUgc3RyaWRlIHZhbHVlIGNhbiBiZSBh IHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGludGVnZXIsIGJ1dCBtYXkKIG5vdCBiZSB6ZXJvLiAgSWYg bm8gc3RyaWRlIGlzIHByb3ZpZGVkLCB1c2UgdGhlIGRlZmF1bHQgdmFsdWUKIDEgdG8gcHJpbnQg YWxsIGVsZW1lbnRzIGluc2lkZSB0aGUgcmFuZ2UuCkBAIC0zMiw0NCArMzUsMjUgQEAgJDMgPSAo MSwgMywgNSwgNywgOSkKIAogU2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIFdlaW5tYW5uIDxjaHJp c3RvcGgudC53ZWlubWFubkBpbnRlbC5jb20+CiAtLS0KLSBnZGIvZXZhbC5jICAgfCAxMTEgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0K LSBnZGIvdmFsb3BzLmMgfCAgODcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLQorIGdkYi9ldmFsLmMgICB8IDEwMiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQorIGdkYi92YWxvcHMuYyB8ICA4MyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KICBnZGIvdmFs dWUuaCAgfCAgIDIgKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCspLCA0OCBk ZWxldGlvbnMoLSkKKyAzIGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCspLCA0MiBkZWxl dGlvbnMoLSkKIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCi1pbmRleCAz MDhhZGEzLi5kMDFiNTc5IDEwMDY0NAoraW5kZXggYjVhYWYxYy4uMWYyN2I2ZiAxMDA2NDQKIC0t LSBhL2dkYi9ldmFsLmMKICsrKyBiL2dkYi9ldmFsLmMKLUBAIC00MzcsOCArNDM3LDggQEAgdmFs dWVfZjkwX3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAq ZXhwLAotICAgICB7Ci0gICAgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZQotICAgICAgIHsKLS0g ICAgICAgIGVudW0gZjkwX3JhbmdlX3R5cGUgZjkwX3JhbmdlX3R5cGU7Ci0tICAgICAgICBMT05H RVNUIGxvdywgaGlnaCwgc3RyaWRlOwotKwllbnVtIGY5MF9yYW5nZV90eXBlIGY5MF9yYW5nZV90 eXBlOwotKwlMT05HRVNUIGxvdywgaGlnaCwgc3RyaWRlOwotICAgICAgIH0KLSAgICAgICByYW5n ZTsKLSAgICAgICBMT05HRVNUIG51bWJlcjsKLUBAIC00NzUsNyArNDc1LDcgQEAgdmFsdWVfZjkw X3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAot IAkgIHJhbmdlID0gJmluZGV4LT5yYW5nZTsKK0BAIC00NzcsNyArNDc3LDcgQEAgdmFsdWVfZjkw X3N1YmFycmF5IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAor IAkgIHJhbmdlID0gJmluZGV4LT5VLnJhbmdlOwogIAogIAkgICpwb3MgKz0gMzsKLS0JICByYW5n ZS0+ZjkwX3JhbmdlX3R5cGUgPSBsb25nZXN0X3RvX2ludCAoZXhwLT5lbHRzW3BjXS5sb25nY29u c3QpOwotKwkgIHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9IGV4cC0+ZWx0c1twY10ubG9uZ2NvbnN0 OworLQkgIHJhbmdlLT5mOTBfcmFuZ2VfdHlwZSA9IChlbnVtIHJhbmdlX3R5cGUpIGxvbmdlc3Rf dG9faW50IChleHAtPmVsdHNbcGNdLmxvbmdjb25zdCk7CisrCSAgcmFuZ2UtPmY5MF9yYW5nZV90 eXBlID0gKGVudW0gcmFuZ2VfdHlwZSkgZXhwLT5lbHRzW3BjXS5sb25nY29uc3Q7CiAgCiAgCSAg LyogSWYgYSBsb3dlciBib3VuZCB3YXMgcHJvdmlkZWQgYnkgdGhlIHVzZXIsIHRoZSBiaXQgaGFz IGJlZW4KICAJICAgICBzZXQgYW5kIHdlIGNhbiBhc3NpZ24gdGhlIHZhbHVlIGZyb20gdGhlIGVs dCBzdGFjay4gIFNhbWUgZm9yCi1AQCAtNDg0LDYgKzQ4NCw3IEBAIHZhbHVlX2Y5MF9zdWJhcnJh eSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICAgICAg PT0gU1VCQVJSQVlfTE9XX0JPVU5EKQotIAkgICAgcmFuZ2UtPmxvdyA9IHZhbHVlX2FzX2xvbmcg KGV2YWx1YXRlX3N1YmV4cCAoTlVMTF9UWVBFLCBleHAsCi0gCQkJCQkJCSBwb3MsIG5vc2lkZSkp OwotKwotIAkgIGlmICgocmFuZ2UtPmY5MF9yYW5nZV90eXBlICYgU1VCQVJSQVlfSElHSF9CT1VO RCkKLSAJICAgICAgPT0gU1VCQVJSQVlfSElHSF9CT1VORCkKLSAJICAgIHJhbmdlLT5oaWdoID0g dmFsdWVfYXNfbG9uZyAoZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwKLUBAIC00OTYs NiArNDk3LDEwIEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC00OTksNiArNDk5LDEwIEBAIHZhbHVlX2Y5MF9zdWJh cnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJICAv KiBBc3NpZ24gdGhlIGRlZmF1bHQgc3RyaWRlIHZhbHVlICcxJy4gICovCiAgCSAgZWxzZQogIAkg ICAgcmFuZ2UtPnN0cmlkZSA9IDE7CkBAIC04MCw3ICs2NCw3IEBAIGluZGV4IDMwOGFkYTMuLmQw MWI1NzkgMTAwNjQ0CiAgCX0KICAgICAgICAvKiBVc2VyIGlucHV0IGlzIGFuIGluZGV4LiAgRS5n LjogInAgYXJyeSg1KSIuICAqLwogICAgICAgIGVsc2UKLUBAIC01MTIsMTAgKzUxNyw4IEBAIHZh bHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24g KmV4cCwKK0BAIC01MTUsMTAgKzUxOSw4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZh bHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAKICAgICAgfQogIApAQCAtOTMs NyArNzcsNyBAQCBpbmRleCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAogICAgZm9yIChpID0gbmFy Z3MgLSAxOyBpID49IDA7IGktLSkKICAgICAgewogICAgICAgIHN0cnVjdCBzdWJzY3JpcHRfc3Rv cmUgKmluZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKLUBAIC01NDgsNiArNTUxLDQ4IEBAIHZh bHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24g KmV4cCwKK0BAIC01NTEsNiArNTUzLDQ4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZh bHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJCXx8IHJhbmdlLT5oaWdoID4g VFlQRV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKICAJICAgICAgZXJyb3IgKF8oInByb3ZpZGVk IGJvdW5kKHMpIG91dHNpZGUgYXJyYXkgYm91bmQocykiKSk7CiAgCkBAIC0xMTMsNyArOTcsNyBA QCBpbmRleCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAogKwogKwl9CiArCi0rICAgICAgYXJyYXlf dHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpOworKyAgICAgICBhcnJheV90eXBl ID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7CiArICAgIH0KICsKICsgIC8qIFJlc2V0 IEFSUkFZX1RZUEUgYmVmb3JlIHNsaWNpbmcuKi8KQEAgLTEzNywxMiArMTIxLDEyIEBAIGluZGV4 IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiArCSAgICAgICB0cmVhdCBhbnkgc3Vic2VxdWVudCB1 c2VyIGVudHJ5IGFzIGEgcmFuZ2UuICBXZSBzaW1wbHkKICsJICAgICAgIGluY3JlbWVudCBESU1f Q09VTlQgd2hpY2ggdGVsbHMgdXMgaG93IG1hbnkgdGltZXMgd2UgYXJlCiArCSAgICAgICBjYWxs aW5nIFZBTFVFX1NMSUNFXzEuICAqLwotKwkgICAgc3RydWN0IHN1YnNjcmlwdF9yYW5nZSAqcmFu Z2UgPSAmaW5kZXgtPnJhbmdlOworKwkgICAgc3Vic2NyaXB0X3JhbmdlICpyYW5nZSA9ICZpbmRl eC0+VS5yYW5nZTsKICsKICAJICAgIC8qIERJTV9DT1VOVCBjb3VudHMgZXZlcnkgdXNlciBhcmd1 bWVudCB0aGF0IGlzIHRyZWF0ZWQgYXMgYSByYW5nZS4KICAJICAgICAgIFRoaXMgaXMgbmVjZXNz YXJ5IGZvciBleHByZXNzaW9ucyBsaWtlICdwcmludCBhcnJheSg3LCA4OjkpLgogIAkgICAgICAg SGVyZSB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBsaXRlcmFsLCBidXQgbXVzdCBiZSB0cmVhdGVk IGFzIGEKLUBAIC01NTUsMTAgKzYwMCw5IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZh bHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKK0BAIC01NTgsMTAgKzYwMiw5IEBA IHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Np b24gKmV4cCwKICAJICAgIGRpbV9jb3VudCsrOwogIAogIAkgICAgbmV3X2FycmF5CkBAIC0xNTYs MTMgKzE0MCw3IEBAIGluZGV4IDMwOGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAgCSAgfQogIAkgIGJy ZWFrOwogIAotQEAgLTU3MiwyNyArNjE2LDM4IEBAIHZhbHVlX2Y5MF9zdWJhcnJheSAoc3RydWN0 IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKLSAJICAgICAgIHRvIGdldCB0 aGUgdmFsdWUgb2Zmc2V0IHJpZ2h0LiAgKi8KLSAJICAgIGlmIChkaW1fY291bnQgPT0gMCkKLSAJ ICAgICAgbmV3X2FycmF5Ci0tCSAgICAgICAgPSB2YWx1ZV9zdWJzY3JpcHRlZF9ydmFsdWUgKG5l d19hcnJheSwgaW5kZXgtPm51bWJlciwKLSsJCT0gdmFsdWVfc3Vic2NyaXB0ZWRfcnZhbHVlIChu ZXdfYXJyYXksIGluZGV4LT5udW1iZXIsCi0gCQkJCQkgICAgZjc3X2dldF9sb3dlcmJvdW5kICh2 YWx1ZV90eXBlCitAQCAtNTgwLDIxICs2MjMsMzIgQEAgdmFsdWVfZjkwX3N1YmFycmF5IChzdHJ1 Y3QgdmFsdWUgKmFycmF5LCBzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAkJCQkJCQkJICAobmV3 X2FycmF5KSkpOwogIAkgICAgZWxzZQogIAkgICAgICB7CkBAIC0xNzQsMjEgKzE1MiwyMSBAQCBp bmRleCAzMDhhZGEzLi5kMDFiNTc5IDEwMDY0NAogKwkJICAgY2Fubm90IGRvIHRoZSByYW5nZSBj aGVja3MgZm9yIHVzLiBTbyB3ZSBoYXZlIHRvIG1ha2Ugc3VyZQogKwkJICAgb3Vyc2VsdmVzIHRo YXQgdGhlIHVzZXIgcHJvdmlkZWQgaW5kZXggaXMgaW5zaWRlIHRoZQogKwkJICAgYXJyYXkgYm91 bmRzLiAgVGhyb3cgYW4gZXJyb3IgaWYgbm90LiAgKi8KLSAJCWlmIChpbmRleC0+bnVtYmVyIDwg VFlQRV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCi0tCQkgICAgfHwgaW5kZXgtPm51bWJlciA+IFRZ UEVfSElHSF9CT1VORCAoaW5kZXhfdHlwZSkpCisgCQlpZiAoaW5kZXgtPlUubnVtYmVyIDwgVFlQ RV9MT1dfQk9VTkQgKGluZGV4X3R5cGUpCistCQkgICAgfHwgaW5kZXgtPlUubnVtYmVyID4gVFlQ RV9ISUdIX0JPVU5EIChpbmRleF90eXBlKSkKIC0JCSAgZXJyb3IgKF8oImVycm9yIG5vIHN1Y2gg dmVjdG9yIGVsZW1lbnQiKSk7Ci0rCQkgICAgJiYgaW5kZXgtPm51bWJlciA8IFRZUEVfSElHSF9C T1VORCAoaW5kZXhfdHlwZSkpCisrCQkgICAgJiYgaW5kZXgtPlUubnVtYmVyID4gVFlQRV9ISUdI X0JPVU5EIChpbmRleF90eXBlKSkKICsJCSAgZXJyb3IgKF8oInByb3ZpZGVkIGJvdW5kKHMpIG91 dHNpZGUgYXJyYXkgYm91bmQocykiKSk7CiArCi0rCQlpZiAoaW5kZXgtPm51bWJlciA+IFRZUEVf TE9XX0JPVU5EIChpbmRleF90eXBlKQotKwkJICAgICYmIGluZGV4LT5udW1iZXIgPiBUWVBFX0hJ R0hfQk9VTkQgKGluZGV4X3R5cGUpKQorKwkJaWYgKGluZGV4LT5VLm51bWJlciA+IFRZUEVfTE9X X0JPVU5EIChpbmRleF90eXBlKQorKwkJICAgICYmIGluZGV4LT5VLm51bWJlciA+IFRZUEVfSElH SF9CT1VORCAoaW5kZXhfdHlwZSkpCiArCQkgIGVycm9yIChfKCJwcm92aWRlZCBib3VuZChzKSBv dXRzaWRlIGFycmF5IGJvdW5kKHMpIikpOwogIAogLQkJZGltX2NvdW50Kys7CiAgCQluZXdfYXJy YXkgPSB2YWx1ZV9zbGljZV8xIChuZXdfYXJyYXksCi0tCQkJCQkgICBsb25nZXN0X3RvX2ludCAo aW5kZXgtPm51bWJlciksCistCQkJCQkgICBsb25nZXN0X3RvX2ludCAoaW5kZXgtPlUubnVtYmVy KSwKIC0JCQkJCSAgIDEsIC8qIGxlbmd0aCBpcyAnMScgZWxlbWVudCAgKi8KLSsJCQkJCSAgIGlu ZGV4LT5udW1iZXIsCisrCQkJCQkgICBpbmRleC0+VS5udW1iZXIsCiArCQkJCQkgICAxLCAvKiBD T1VOVCBpcyAnMScgZWxlbWVudCAgKi8KICsJCQkJCSAgIDEsIC8qIFNUUklERSBzZXQgdG8gJzEn ICAqLwogIAkJCQkJICAgZGltX2NvdW50KTsKQEAgLTE5NywxMyArMTc1LDExIEBAIGluZGV4IDMw OGFkYTMuLmQwMWI1NzkgMTAwNjQ0CiAgCSAgfQogIAkgIGJyZWFrOwogIAl9Ci0tICAgIH0KICsg ICAgICBhcnJheV90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSk7Ci0rICB9Cisg ICAgIH0KICAKICAgIC8qIFdpdGggRElNX0NPVU5UID4gMSB3ZSBjdXJyZW50bHkgaGF2ZSBhIG9u ZSBkaW1lbnNpb25hbCBhcnJheSwgYnV0IGV4cGVjdAotICAgICAgYW4gYXJyYXkgb2YgYXJyYXlz LCBkZXBlbmRpbmcgb24gaG93IG1hbnkgcmFuZ2VzIGhhdmUgYmVlbiBwcm92aWRlZCBieQotQEAg LTYxNyw3ICs2NzIsOSBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXks IHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtNjIwLDcgKzY3NCw5IEBAIHZhbHVlX2Y5MF9z dWJhcnJheSAoc3RydWN0IHZhbHVlICphcnJheSwgc3RydWN0IGV4cHJlc3Npb24gKmV4cCwKICAJ IHRoZSBvdXRwdXQgYXJyYXkuICBTbyB3ZSB0cmF2ZXJzZSB0aGUgU1VCU0NSSVBUX0FSUkFZIGFn YWluLCBsb29raW5nCiAgCSBmb3IgYSByYW5nZSBlbnRyeS4gIFdoZW4gd2UgZmluZCBvbmUsIHdl IHVzZSB0aGUgcmFuZ2UgaW5mbyB0byBjcmVhdGUKICAJIGFuIGFkZGl0aW9uYWwgcmFuZ2VfdHlw ZSB0byBzZXQgdGhlIGNvcnJlY3QgYm91bmRzIGFuZCBkaW1lbnNpb25zIGZvcgpAQCAtMjE0LDM1 ICsxOTAsMzUgQEAgaW5kZXggMzA4YWRhMy4uZDAxYjU3OSAxMDA2NDQKICAgICAgICBmb3IgKGkg PSAwOyBpIDwgbmFyZ3M7IGkrKykKICAJewogIAkgIHN0cnVjdCBzdWJzY3JpcHRfc3RvcmUgKmlu ZGV4ID0gJnN1YnNjcmlwdF9hcnJheVtpXTsKLUBAIC02MjUsMTIgKzY4MiwyMCBAQCB2YWx1ZV9m OTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBleHByZXNzaW9uICpleHAs Ci0gCSAgaWYgKGluZGV4LT5raW5kID09IFNVQlNDUklQVF9SQU5HRSkKK0BAIC02MjksMTIgKzY4 NSwyMCBAQCB2YWx1ZV9mOTBfc3ViYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIHN0cnVjdCBl eHByZXNzaW9uICpleHAsCiAgCSAgICB7CiAgCSAgICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBl LCAqaW50ZXJpbV9hcnJheV90eXBlOworIAogKwkgICAgICBpbnQgbmV3X2xlbmd0aDsKICsKICsJ ICAgICAgLyogVGhlIGxlbmd0aCBvZiBhIHN1Yi1kaW1lbnNpb24gd2l0aCBhbGwgZWxlbWVudHMg YmV0d2VlbiB0aGUKICsJCSBib3VuZHMgcGx1cyB0aGUgc3RhcnQgZWxlbWVudCBpdHNlbGYuICBJ dCBtYXkgYmUgbW9kaWZpZWQgYnkKICsJCSBhIHVzZXIgcHJvdmlkZWQgc3RyaWRlIHZhbHVlLiAg Ki8KLSsJICAgICAgbmV3X2xlbmd0aCA9IGluZGV4LT5yYW5nZS5oaWdoIC0gaW5kZXgtPnJhbmdl LmxvdzsKKysJICAgICAgbmV3X2xlbmd0aCA9IGluZGV4LT5VLnJhbmdlLmhpZ2ggLSBpbmRleC0+ VS5yYW5nZS5sb3c7CisrCisrCSAgICAgIG5ld19sZW5ndGggLz0gaW5kZXgtPlUucmFuZ2Uuc3Ry aWRlOwogKwotKwkgICAgICBuZXdfbGVuZ3RoIC89IGluZGV4LT5yYW5nZS5zdHJpZGU7Ci0gCiAg CSAgICAgIHJhbmdlX3R5cGUKICAJCT0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLAot LQkJCQkgICAgIHRlbXBfdHlwZSwKLS0JCQkJICAgICAxLAotLQkJCQkgICAgIGluZGV4LT5yYW5n ZS5oaWdoIC0gaW5kZXgtPnJhbmdlLmxvdyArIDEpOwotKwkJCQkJICAgIHRlbXBfdHlwZSwKLSsJ CQkJCSAgICBpbmRleC0+cmFuZ2UubG93LAotKwkJCQkJICAgIGluZGV4LT5yYW5nZS5sb3cgKyBu ZXdfbGVuZ3RoKTsKKyAJCQkJCSAgICBlbHRfdHlwZSwKKy0JCQkJCSAgICAxLAorLQkJCQkJICAg IGluZGV4LT5VLnJhbmdlLmhpZ2gKKy0JCQkJCSAgICAgIC0gaW5kZXgtPlUucmFuZ2UubG93ICsg MSk7CisrCQkJCQkgICAgaW5kZXgtPlUucmFuZ2UubG93LAorKwkJCQkJICAgIGluZGV4LT5VLnJh bmdlLmxvdyArIG5ld19sZW5ndGgpOwogIAogIAkgICAgICBpbnRlcmltX2FycmF5X3R5cGUgPSBj cmVhdGVfYXJyYXlfdHlwZSAoTlVMTCwKLSAJCQkJCQkgICAgICB0ZW1wX3R5cGUsCisgCQkJCQkJ ICAgICAgZWx0X3R5cGUsCiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbG9wcy5jIGIvZ2RiL3ZhbG9wcy5j Ci1pbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAoraW5kZXggZmJjN2RjYi4uZGVkOGVmYyAx MDA2NDQKIC0tLSBhL2dkYi92YWxvcHMuYwogKysrIGIvZ2RiL3ZhbG9wcy5jCi1AQCAtMzc1OSwx MCArMzc1OSwxMyBAQCB2YWx1ZV9vZl90aGlzX3NpbGVudCAoY29uc3Qgc3RydWN0IGxhbmd1YWdl X2RlZm4gKmxhbmcpCitAQCAtMzc2NiwxMCArMzc2NiwxMyBAQCB2YWx1ZV9vZl90aGlzX3NpbGVu dCAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmcpCiAgc3RydWN0IHZhbHVlICoKICB2 YWx1ZV9zbGljZSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3Ro KQogIHsKQEAgLTI1OSw4ICsyMzUsOCBAQCBpbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAog KyAgcmV0dXJuIHZhbHVlX3NsaWNlXzEgKGFycmF5LCBsb3dib3VuZCwgbGVuZ3RoLCAxLCAxKTsK ICB9CiAgCi0gLyogQ0FMTF9DT1VOVCBpcyB1c2VkIHRvIGRldGVybWluZSBpZiB3ZSBhcmUgY2Fs bGluZyB0aGUgZnVuY3Rpb24gb25jZSwgZS5nLgotQEAgLTM3NzYsNyArMzc3OSw4IEBAIHZhbHVl X3NsaWNlIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQgbG93Ym91bmQsIGludCBsZW5ndGgpCisg LyogVkFMVUVfU0xJQ0VfMSBpcyBjYWxsZWQgZm9yIGVhY2ggYXJyYXkgZGltZW5zaW9uIHRvIGNh bGN1bGF0ZSB0aGUgbnVtYmVyCitAQCAtMzc4NSw3ICszNzg4LDggQEAgdmFsdWVfc2xpY2UgKHN0 cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50IGxlbmd0aCkKICAgICByYW5nZXMg aW4gdGhlIGNhbGxpbmcgZnVuY3Rpb24uICAqLwogIAogIHN0cnVjdCB2YWx1ZSAqCkBAIC0yNzAs NyArMjQ2LDcgQEAgaW5kZXggMDllYTg3Ny4uODNjODQ2MiAxMDA2NDQKICB7CiAgICBzdHJ1Y3Qg dHlwZSAqc2xpY2VfcmFuZ2VfdHlwZSwgKnNsaWNlX3R5cGUsICpyYW5nZV90eXBlOwogICAgc3Ry dWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkp OwotQEAgLTM3OTksMTQgKzM4MDMsMjQgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZhbHVlICph cnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKK0BAIC0zODA4 LDE0ICszODEyLDI0IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBs b3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCiAgICAgICBhdHRyaWJ1dGVzIG9m IHRoZSB1bmRlcmx5aW5nIHR5cGUuICAqLwogICAgaWYgKGNhbGxfY291bnQgPiAxKQogICAgICB7 CkBAIC0yOTcsMjUgKzI3Myw3IEBAIGluZGV4IDA5ZWE4NzcuLjgzYzg0NjIgMTAwNjQ0CiAgICBl bHRfc3RyaWRlID0gVFlQRV9MRU5HVEggKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwog IAogICAgZWx0X29mZnMgKj0gZWx0X3NpemU7Ci1AQCAtMzgyNSw3ICszODM5LDcgQEAgdmFsdWVf c2xpY2VfMSAoc3RydWN0IHZhbHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBp bnQgY2FsbF9jb3VudCkKLSAgIGlmIChjYWxsX2NvdW50ID09IDEpCi0gICAgIHsKLSAgICAgICBy YW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKTsKLS0gICAgICBzbGljZV9y YW5nZV9zaXplID0gZWxlbV9jb3VudDsKLSsgICAgICBzbGljZV9yYW5nZV9zaXplID0gYXJ5X2xv d19ib3VuZCArIGVsZW1fY291bnQgLSAxOwotIAotICAgICAgIC8qIENoZWNrIGlmIHRoZSBhcnJh eSBib3VuZHMgYXJlIHZhbGlkLiAgKi8KLSAgICAgICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAo cmFuZ2VfdHlwZSwgJmFyeV9sb3dfYm91bmQsICZhcnlfaGlnaF9ib3VuZCkgPCAwKQotQEAgLTM4 MzcsNyArMzg1MSw3IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBs b3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCi0gICBlbHNlCi0gICAgIHsKLSAg ICAgICByYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChUWVBFX1RBUkdFVF9UWVBFIChhcnJh eV90eXBlKSk7Ci0tICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IChhcnlfbG93X2JvdW5kICsgcm93 X2NvdW50IC0gMSkgKiAoZWxlbV9jb3VudCk7Ci0rICAgICAgc2xpY2VfcmFuZ2Vfc2l6ZSA9IGFy eV9sb3dfYm91bmQgKyAocm93X2NvdW50ICogZWxlbV9jb3VudCkgLSAxOwotICAgICAgIGFyeV9s b3dfYm91bmQgPSBUWVBFX0xPV19CT1VORCAocmFuZ2VfdHlwZSk7Ci0gICAgIH0KLSAKLUBAIC0z ODQ5LDggKzM4NjMsOSBAQCB2YWx1ZV9zbGljZV8xIChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBpbnQg bG93Ym91bmQsIGludCBsZW5ndGgsIGludCBjYWxsX2NvdW50KQorQEAgLTM4NTgsOCArMzg3Miw5 IEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXksIGludCBsb3dib3VuZCwgaW50 IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCiAgICB7CiAgICAgIHN0cnVjdCB0eXBlICplbGVtZW50 X3R5cGU7CiAgCkBAIC0zMjcsNyArMjg1LDcgQEAgaW5kZXggMDllYTg3Ny4uODNjODQ2MiAxMDA2 NDQKICAgICAgICB7CiAgCWVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5 cGUpOwogIAotQEAgLTM4NzEsMjkgKzM4ODYsNTMgQEAgdmFsdWVfc2xpY2VfMSAoc3RydWN0IHZh bHVlICphcnJheSwgaW50IGxvd2JvdW5kLCBpbnQgbGVuZ3RoLCBpbnQgY2FsbF9jb3VudCkKK0BA IC0zODgwLDI5ICszODk1LDUzIEBAIHZhbHVlX3NsaWNlXzEgKHN0cnVjdCB2YWx1ZSAqYXJyYXks IGludCBsb3dib3VuZCwgaW50IGxlbmd0aCwgaW50IGNhbGxfY291bnQpCiAgCSAgfQogIAogICAg ICAgIH0KQEAgLTM1OSw4ICszMTcsOCBAQCBpbmRleCAwOWVhODc3Li44M2M4NDYyIDEwMDY0NAog IAlzbGljZV90eXBlID0gY3JlYXRlX2FycmF5X3R5cGUgKE5VTEwsIGVsZW1lbnRfdHlwZSwgc2xp Y2VfcmFuZ2VfdHlwZSk7CiAgCiAtCVRZUEVfQ09ERSAoc2xpY2VfdHlwZSkgPSBUWVBFX0NPREUg KFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSsJLyogSWYgd2UgaGF2ZSBhIG9uZSBk aW1lbnNpb25hbCBhcnJheSwgd2UgY29weSBpdHMgVFlQRV9DT0RFLiAgRm9yIGEKLSsJICAgbXVs dGkgZGltZW5zaW9uYWwgYXJyYXkgd2UgY29weSB0aGUgZW1iZWRkZWQgdHlwZSdzIFRZUEVfQ09E RS4gICovCisrCSAvKiBJZiB3ZSBoYXZlIGEgb25lIGRpbWVuc2lvbmFsIGFycmF5LCB3ZSBjb3B5 IGl0cyBUWVBFX0NPREUuICBGb3IgYQorKwkgICAgbXVsdGkgZGltZW5zaW9uYWwgYXJyYXkgd2Ug Y29weSB0aGUgZW1iZWRkZWQgdHlwZSdzIFRZUEVfQ09ERS4gICovCiArCWlmIChjYWxsX2NvdW50 ID09IDEpCiArCSAgVFlQRV9DT0RFIChzbGljZV90eXBlKSA9IFRZUEVfQ09ERSAoYXJyYXlfdHlw ZSk7CiArCWVsc2UKQEAgLTM5NSw3ICszNTMsNyBAQCBpbmRleCAwOWVhODc3Li44M2M4NDYyIDEw MDY0NAogICAgICAgIH0KICAKIGRpZmYgLS1naXQgYS9nZGIvdmFsdWUuaCBiL2dkYi92YWx1ZS5o Ci1pbmRleCAzNDAwNDYwLi5jMThlZjJlIDEwMDY0NAoraW5kZXggOTU1ODhhZi4uZTQxNzYzOSAx MDA2NDQKIC0tLSBhL2dkYi92YWx1ZS5oCiArKysgYi9nZGIvdmFsdWUuaAogQEAgLTEwNTYsNyAr MTA1Niw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhcnlpbmdfdG9fc2xpY2UgKHN0cnVjdCB2 YWx1ZSAqKTsKQEAgLTQwOCw1ICszNjYsNSBAQCBpbmRleCAzNDAwNDYwLi5jMThlZjJlIDEwMDY0 NAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2xpdGVyYWxfY29tcGxleCAoc3RydWN0IHZh bHVlICosIHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkJICAgIHN0cnVjdCB0eXBlICopOwogLS0gCi0y LjUuMAorMi41LjUKIAoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2 LW5va2ZhaWwucGF0Y2ggYi9nZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNm9mNi1ub2tmYWlsLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjYxZGUxLi4wMDAwMDAwCi0tLSBh L2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LW5va2ZhaWwucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwzNiArMCwwIEBACi0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9zdWJyYW5nZS5leHAtb3JpZwkyMDE2LTAxLTA4IDIyOjQ1OjQ0Ljk1Njg0 MjU1MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vc3VicmFuZ2UuZXhwCTIwMTYtMDEtMDggMjM6MjY6MDUuMDc4NTU0NjI5ICswMTAwCi1A QCAtMzksMjcgKzM5LDE2IEBAIGZvcmVhY2ggdmFyIHthIGFsbG9jIHB0cn0gewotICAgICBzZXQg b2xkX3ByZWZpeCAkcGZfcHJlZml4Ci0gICAgIGxhcHBlbmQgcGZfcHJlZml4ICIkdmFyOiIKLSAK LS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJf dGVzdCAicCAkdmFyICgyLCAyOjMpIiB7ID0gXCgyMiwgMzJcKX0KLS0gICAgc2V0dXBfa2ZhaWwg IiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgyOjMs IDMpIiB7ID0gXCgzMiwgMzNcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVz c2lvbi85OTk5IgotICAgICBnZGJfdGVzdCAicCAkdmFyICgxLCAyOikiIHsgPSBcKDIxLCAzMVwp fQotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdk Yl90ZXN0ICJwICR2YXIgKDIsIDoyKSIgeyA9IFwoMTIsIDIyXCl9Ci0tICAgIHNldHVwX2tmYWls ICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInAgJHZhciAoMywg MjoyKSIgeyA9IFwoMjNcKX0KLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lv bi85OTk5IgotICAgICBnZGJfdGVzdCAicHR5cGUgJHZhciAoMywgMjoyKSIgIiA9ICRpbnQ0IFxc KDI6MlxcKSIKLS0gICAgc2V0dXBfa2ZhaWwgIiotKi0qIiAidmxhcmVncmVzc2lvbi85OTk5Igot ICAgICBnZGJfdGVzdCAicCAkdmFyICg0LCA6KSIgeyA9IFwoMTQsIDI0LCAzNFwpfQotLSAgICBz ZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNzaW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJw ICR2YXIgKDosIDopIiB7ID0gXChcKCAqMTEsIDEyLCAxMywgMTRcKSBcKCAqMjEsIDIyLCAyMywg MjRcKSBcKCAqMzEsIDMyLCAzMywgMzRcKSAqXCl9Ci0tICAgIHNldHVwX2tmYWlsICIqLSotKiIg InZsYXJlZ3Jlc3Npb24vOTk5OSIKLSAgICAgZ2RiX3Rlc3QgInB0eXBlICR2YXIgKDosIDopIiAi ID0gJGludDQgXFwoNCwzXFwpIgotLSAgICBzZXR1cF9rZmFpbCAiKi0qLSoiICJ2bGFyZWdyZXNz aW9uLzk5OTkiCi0gICAgIGdkYl90ZXN0ICJwICR2YXIgKDopIiAiV3JvbmcgbnVtYmVyIG9mIHN1 YnNjcmlwdHMiCi0tICAgIHNldHVwX2tmYWlsICIqLSotKiIgInZsYXJlZ3Jlc3Npb24vOTk5OSIK LSAgICAgZ2RiX3Rlc3QgInAgJHZhciAoOiwgOiwgOikiICJXcm9uZyBudW1iZXIgb2Ygc3Vic2Ny aXB0cyIKLSAKLSAgICAgc2V0IHBmX3ByZWZpeCAkb2xkX3ByZWZpeAotQEAgLTY4LDUgKzU3LDQg QEAgZm9yZWFjaCB2YXIge2EgYWxsb2MgcHRyfSB7Ci0gZ2RiX3Rlc3Rfbm9fb3V0cHV0IHtzZXQg JGE9YX0KLSBkZWxldGVfYnJlYWtwb2ludHMKLSBnZGJfdW5sb2FkCi0tc2V0dXBfa2ZhaWwgIiot Ki0qIiAidmxhcmVncmVzc2lvbi85OTk5IgotIGdkYl90ZXN0IHtwICRhICgzLCAyOjIpfSB7ID0g XCgyM1wpfQoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC02b2Y2LnBhdGNo IGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZvZjYucGF0Y2gKaW5kZXggNDdmYWVmMi4uNzc3 YmJjOSAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZvZjYucGF0Y2gKKysr IGIvZ2RiLWZvcnRyYW4tc3RyaWRlLWludGVsLTZvZjYucGF0Y2gKQEAgLTEsNyArMSwxMCBAQAot aHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTYtMDIvbXNnMDA4NDcuaHRt bAotU3ViamVjdDogW1BBVENIIHYyIDYvNl0gZm9ydHJhbjogdGVzdCBjYXNlcyBmb3Igc3ViYXJy YXkgc3RyaWRlcyBhbmQgc2xpY2VzCitSRTogW3BpbmddIFtQQVRDSCB2MiAwLzZdIGZvcnRyYW46 IG11bHRpLWRpbWVuc2lvbmFsIHN1YmFycmF5cyB3aXRoIHN0cmlkZXMKK2h0dHBzOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNi0wNy9tc2cwMDAwOS5odG1sCiAKK0Zyb20gOTgy ZDU4MmVlNzM4Y2JjZjI1MmJhOGVhYjU5YTk1MTRlZGRhNzViOSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKIEZyb206IENocmlzdG9waCBXZWlubWFubiA8Y2hyaXN0b3BoLnQud2Vpbm1hbm5AaW50 ZWwuY29tPgorRGF0ZTogV2VkLCA0IERlYyAyMDEzIDExOjQ3OjE1ICswMDAwCitTdWJqZWN0OiBb UEFUQ0ggNi82XSBmb3J0cmFuOiB0ZXN0IGNhc2VzIGZvciBzdWJhcnJheSBzdHJpZGVzIGFuZCBz bGljZXMKIAogQWRkIHRlc3QgY2FzZXMgZm9yIHN1YmFycmF5IGNyZWF0aW9uIHdpdGggcmFuZ2Us IGxpdGVyYWwgYW5kCiBzdHJpZGUgdmFsdWUgcGVybXV0YXRpb25zIGZvciBvbmUsIHR3bywgYW5k IHRocmVlIGRpbWVuc2lvbmFsCkBAIC01MTEsNSArNTE0LDUgQEAgaW5kZXggMDAwMDAwMC4uZjIy ZmNiZQogKyAgY2FsbCBzdWIKICtlbmQKIC0tIAotMi41LjAKKzIuNS41CiAKCmRpZmYgLS1naXQg YS9nZGItcHl0aG9uLWdpbC5wYXRjaCBiL2dkYi1weXRob24tZ2lsLnBhdGNoCmluZGV4IDFlM2Iw YjkuLjVjZTEzYTggMTAwNjQ0Ci0tLSBhL2dkYi1weXRob24tZ2lsLnBhdGNoCisrKyBiL2dkYi1w eXRob24tZ2lsLnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2RvYy9weXRob24udGV4aQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9k b2MvcHl0aG9uLnRleGkKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL2RvYy9weXRob24udGV4aQkyMDE1LTA1LTMxIDE3OjU3OjEyLjQzMTU5Mzk4MyArMDIwMAot KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RvYy9weXRob24udGV4aQkyMDE1LTA1LTMxIDE3 OjU3OjE0LjY1NDYwNzcwOCArMDIwMAotQEAgLTIyOSw2ICsyMjksMTQgQEAgcmV0dXJuZWQgYXMg YSBzdHJpbmcuICBUaGUgZGVmYXVsdCBpcyBAYworLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9y aWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE2LTA3LTAzIDE2OjMwOjM3LjAwOTMzODM1OCArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9kb2MvcHl0aG9uLnRleGkJMjAxNi0wNy0w MyAxNjozMDo0Mi44MTIzODc4NjcgKzAyMDAKK0BAIC0yMjksNiArMjI5LDE0IEBACiAgcmV0dXJu IHZhbHVlIGlzIEBjb2Rle05vbmV9LiAgSWYgQHZhcnt0b19zdHJpbmd9IGlzIEBjb2Rle1RydWV9 LCB0aGUKICBAdmFsdWV7R0RCTn0gdmlydHVhbCB0ZXJtaW5hbCB3aWxsIGJlIHRlbXBvcmFyaWx5 IHNldCB0byB1bmxpbWl0ZWQgd2lkdGgKICBhbmQgaGVpZ2h0LCBhbmQgaXRzIHBhZ2luYXRpb24g d2lsbCBiZSBkaXNhYmxlZDsgQHB4cmVme1NjcmVlbiBTaXplfS4KQEAgLTE3LDExICsxNywxMSBA QCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL3B5dGhvbi50ZXhpCiAgQGVuZCBk ZWZ1bgogIAogIEBmaW5kZXggZ2RiLmJyZWFrcG9pbnRzCi1JbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA2MzAvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMDUt MzEgMTc6NTc6MTIuNDMyNTkzOTg5ICswMjAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv cHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU0NjA3NzA4ICsw MjAwCi1AQCAtMTQyLDYgKzE0Miw4IEBAIHR5cGVkZWYgaW50IFB5X3NzaXplX3Q7CistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTYt MDctMDMgMTY6MzA6MzcuMDEwMzM4MzY2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAv Z2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxMjM4Nzg2 NyArMDIwMAorQEAgLTE0MCw2ICsxNDAsOCBAQAogICNkZWZpbmUgUHlHSUxTdGF0ZV9SZWxlYXNl KEFSRykgKCh2b2lkKShBUkcpKQogICNkZWZpbmUgUHlFdmFsX0luaXRUaHJlYWRzKCkKICAjZGVm aW5lIFB5VGhyZWFkU3RhdGVfU3dhcChBUkcpICgodm9pZCkoQVJHKSkKQEAgLTMwLDExICszMCwx MSBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5h bC5oCiAgI2RlZmluZSBQeUV2YWxfUmVsZWFzZUxvY2soKQogICNlbmRpZgogIAotSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24uYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNjMwL2dkYi9weXRob24vcHl0aG9uLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45LjUw LjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1 NjYwNzcyMCArMDIwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24u YwkyMDE1LTA1LTMxIDE4OjAyOjA4Ljg5MTQyNDIyNyArMDIwMAotQEAgLTYyNywxMyArNjI3LDE4 IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8KKy0tLSBnZGItNy4x MS41MC4yMDE2MDYzMC5vcmlnL2dkYi9weXRob24vcHl0aG9uLmMJMjAxNi0wNy0wMyAxNjozMDoz Ny4wMTEzMzgzNzUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvcHl0aG9uL3B5 dGhvbi5jCTIwMTYtMDctMDMgMTY6MzE6MTYuMzI0NjczNzgzICswMjAwCitAQCAtNjE5LDEzICs2 MTksMTggQEAKICB7CiAgICBjb25zdCBjaGFyICphcmc7CiAgICBQeU9iamVjdCAqZnJvbV90dHlf b2JqID0gTlVMTCwgKnRvX3N0cmluZ19vYmogPSBOVUxMOwpAQCAtNTcsNyArNTcsNyBAQCBJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgICAgIHJldHVybiBO VUxMOwogIAogICAgZnJvbV90dHkgPSAwOwotQEAgLTY1NCwxMiArNjU5LDI4IEBAIGV4ZWN1dGVf Z2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8KK0BAIC02NDYsNiArNjUxLDE1IEBACiAg ICAgICAgdG9fc3RyaW5nID0gY21wOwogICAgICB9CiAgCkBAIC03Myw4ICs3Myw5IEBAIEluZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9uLmMKICAgIFRSWQogICAgICB7 CiAgICAgICAgLyogQ29weSB0aGUgYXJndW1lbnQgdGV4dCBpbiBjYXNlIHRoZSBjb21tYW5kIG1v ZGlmaWVzIGl0LiAgKi8KLSAgICAgICBjaGFyICpjb3B5ID0geHN0cmR1cCAoYXJnKTsKK0BAIC02 NTMsNiArNjY3LDEzIEBACiAgICAgICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXAgPSBtYWtlX2Ns ZWFudXAgKHhmcmVlLCBjb3B5KTsKKyAgICAgICBzdHJ1Y3QgaW50ZXJwICppbnRlcnA7CiAgCiAr ICAgICAgLyogSW4gdGhlIGNhc2Ugb2YgbG9uZyBydW5uaW5nIEdEQiBjb21tYW5kcywgYWxsb3cg dGhlIHVzZXIgdG8KICsJIHJlbGVhc2UgdGhlIFB5dGhvbiBHSUwgYWNxdWlyZWQgYnkgUHl0aG9u LiAgUmVzdG9yZSB0aGUgR0lMCkBAIC04MywxMCArODQsMTAgQEAgSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24uYwogKyAgICAgIGlmIChyZWxlYXNlX2dpbCkKICsJ c3RhdGUgPSBQeUV2YWxfU2F2ZVRocmVhZCgpOwogKwotICAgICAgIG1ha2VfY2xlYW51cF9yZXN0 b3JlX2ludGVnZXIgKCZpbnRlcnByZXRlcl9hc3luYyk7Ci0gICAgICAgaW50ZXJwcmV0ZXJfYXN5 bmMgPSAwOworICAgICAgIG1ha2VfY2xlYW51cF9yZXN0b3JlX2ludGVnZXIgKCZjdXJyZW50X3Vp LT5hc3luYyk7CisgICAgICAgY3VycmVudF91aS0+YXN5bmMgPSAwOwogIAotQEAgLTY3MiwxMSAr NjkzLDIzIEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8KK0BAIC02 NzEsMTEgKzY5MiwyMyBAQAogIAkgIGV4ZWN1dGVfY29tbWFuZCAoY29weSwgZnJvbV90dHkpOwog IAl9CiAgCkBAIC0xMTEsMTAgKzExMiwxMCBAQCBJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvcHl0aG9uL3B5dGhvbi5jCiAgICAgIH0KICAgIEVORF9DQVRDSAogIAotSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt Z2lsLW10aHJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0 ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMJMjAxNS0wNS0zMSAxNzo1NzoxNC42NTY2MDc3 MjAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktZ2lsLW10aHJlYWQuYwkyMDE2LTA3LTAzIDE2OjMwOjQyLjgxMzM4Nzg3NiArMDIwMAog QEAgLTAsMCArMSwxMiBAQAogKyNpbmNsdWRlIDxzdGRpby5oPgogKwpAQCAtMTI4LDEwICsxMjks MTAgQEAgSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LWdpbC1tdGhyZWFkLmMKICsgICAgICBwcmludGYgKCJTbGVlcGluZyAlZFxuIiwgaSk7CiAr ICAgIH0KICt9Ci1JbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktZ2lsLW10aHJlYWQuZXhwCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0t IC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4 cAkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NzYwNzcyNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5leHAJMjAxNi0w Ny0wMyAxNjozMDo0Mi44MTMzODc4NzYgKzAyMDAKIEBAIC0wLDAgKzEsNjkgQEAKICsjIENvcHly aWdodCAoQykgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIwMiwx MCArMjAzLDEwIEBAIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1naWwtbXRocmVhZC5leHAKICsJfQogKyAgICB9CiArfQotSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5 CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LWdpbC1tdGhyZWFkLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQucHkJMjAxNS0wNS0zMSAxNzo1NzoxNC42NTc2 MDc3MjYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktZ2lsLW10aHJlYWQucHkJMjAxNi0wNy0wMyAxNjozMDo0Mi44MTQzODc4ODQgKzAy MDAKIEBAIC0wLDAgKzEsMjIgQEAKICtpbXBvcnQgdGhyZWFkCiAraW1wb3J0IHRpbWUKCmRpZmYg LS1naXQgYS9nZGItcmVhZGxpbmU2Mi1hc2stbW9yZS1yaC5wYXRjaCBiL2dkYi1yZWFkbGluZTYy LWFzay1tb3JlLXJoLnBhdGNoCmluZGV4IGFlNjg5NDYuLjQ2M2Q5ZDMgMTAwNjQ0Ci0tLSBhL2dk Yi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCisrKyBiL2dkYi1yZWFkbGluZTYyLWFzay1t b3JlLXJoLnBhdGNoCkBAIC0xLDE3ICsxLDE4IEBACi1kaWZmIC1kdXAgLXJ1cCBnZGItNy4xMC41 MC4yMDE2MDEwNi1vcmlnL2dkYi9ldmVudC10b3AuYyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv ZXZlbnQtdG9wLmMKLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi1vcmlnL2dkYi9ldmVudC10b3Au YwkyMDE2LTAxLTA5IDE0OjUxOjAyLjMyNDI0MzUwNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9ldmVudC10b3AuYwkyMDE2LTAxLTA5IDE0OjUxOjMzLjAyOTQzNDEyMSArMDEw MAotQEAgLTEwMzMsNiArMTAzMywxMyBAQCBzZXRfYXN5bmNfZWRpdGluZ19jb21tYW5kIChjaGFy ICphcmdzLCBpCi0gdm9pZAotIGdkYl9zZXR1cF9yZWFkbGluZSAodm9pZCkKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvZXZlbnQtdG9wLmMKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4x MS41MC4yMDE2MDYzMC5vcmlnL2dkYi9ldmVudC10b3AuYwkyMDE2LTA3LTAzIDE2OjMyOjM2LjEw ODM0MjE1OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9ldmVudC10b3AuYwky MDE2LTA3LTAzIDE2OjMyOjU5Ljc4NzUyMzczMyArMDIwMAorQEAgLTEyNTIsNiArMTI1MiwxMyBA QAogIHsKKyAgIHN0cnVjdCB1aSAqdWkgPSBjdXJyZW50X3VpOworIAogKyNpZmRlZiBORUVEX1JM X1NUQVRFX0ZFRE9SQV9HREIKICsgIC8qIDYuMiByZWdyZXNzaW9uOiBubyBsb25nZWQgYXNrcyBm b3IgLS1tb3JlLS0KICsgICAgIGdkYi5iYXNlL3JlYWRsaW5lLWFzay5leHAKICsgICAgIGh0dHBz Oi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NzAxMTMxICAqLwogKyAgUkxf U0VUU1RBVEUgKFJMX1NUQVRFX0ZFRE9SQV9HREIpOwotKwogKyNlbmRpZgorKwogICAgLyogVGhp cyBmdW5jdGlvbiBpcyBhIG5vb3AgZm9yIHRoZSBzeW5jIGNhc2UuICBUaGUgYXNzdW1wdGlvbiBp cwogICAgICAgdGhhdCB0aGUgc3luYyBzZXR1cCBpcyBBTEwgZG9uZSBpbiBnZGJfaW5pdCwgYW5k IHdlIHdvdWxkIG9ubHkKICAgICAgIG1lc3MgaXQgdXAgaGVyZS4gIFRoZSBzeW5jIHN0dWZmIHNo b3VsZCByZWFsbHkgZ28gYXdheSBvdmVyCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxMzYzNjM1LWFh cmNoNjQtYXJtdjgxODIucGF0Y2ggYi9nZGItcmhiejEzNjM2MzUtYWFyY2g2NC1hcm12ODE4Mi5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGVlYTU2NS4uMDAwMDAwMAotLS0g YS9nZGItcmhiejEzNjM2MzUtYWFyY2g2NC1hcm12ODE4Mi5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDc0ICswLDAgQEAKLWNvbW1pdCA0OWVjZWYyYTdkYTJlZTlkZjRhZTY3NWY5OWI3MDUxOGZi ZjFiYjIzCi1BdXRob3I6IEFuZHJldyBQaW5za2kgPGFwaW5za2lAY2F2aXVtLmNvbT4KLURhdGU6 ICAgU2F0IEp1bCAyMyAwOTo1Njo0NCAyMDE2IC0wNzAwCi0KLSAgICBGaXggQVJNdjguMS92OC4y IGZvciBodyB3YXRjaHBvaW50IGFuZCBicmVha3BvaW50Ci0gICAgCi0gICAgVGhlIHByb2JsZW0g aGVyZSBpcyBBUk12OC4xIChhbmQgQVJNdjguMikgZGVmaW5lIGEKLSAgICBkaWZmZXJlbnQgZGVi dWcgdmVyc2lvbiB0aGFuIEFSTXY4ICg3IGFuZCA4IHJlc3BlY3RpdmVseSkuCi0gICAgVGhpcyBm aXhlcyBodyB3YXRjaHBvaW50cyBhbmQgYnJlYWtwb2ludHMgYnkgY2hlY2tpbmcKLSAgICBmb3Ig dGhvc2UgZGVidWcgdmVyc2lvbnMgdG9vLgotICAgIAotICAgIENvbW1pdHRlZCBhcyBvYnZpb3Vz IGFmdGVyIGEgdGVzdCBvbiBhYXJjaDY0LWxpbnV4LWdudQotICAgIChvbiBhIFRodW5kZXJYIG1h Y2hpbmUgd2hpY2ggaGFzIEFSTXY4LjEgc3VwcG9ydCBlbmFibGVkKS4KLSAgICAKLSAgICBDaGFu Z2VMb2c6Ci0gICAgCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuYwotICAgIAkoYWFyY2g2 NF9saW51eF9nZXRfZGVidWdfcmVnX2NhcGFjaXR5KTogSGFuZGxlCi0gICAgCUFSTXY4LjEgYW5k IEFSTXY4LjIgZGVidWcgdmVyc2lvbnMuCi0gICAgCSogbmF0L2FhcmNoNjQtbGludXgtaHctcG9p bnQuaAotICAgIAkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzEpOiBOZXcgZGVmaW5lLgotICAgIAko QUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzIpOiBOZXcgZGVmaW5lLgotICAgIAotICAgIFNpZ25lZC1v ZmYtYnk6IEFuZHJldyBQaW5za2kgPGFwaW5za2lAY2F2aXVtLmNvbT4KLQotIyMjIGEvZ2RiL0No YW5nZUxvZwotIyMjIGIvZ2RiL0NoYW5nZUxvZwotIyMgLTEsMyArMSwxMiBAQAotKzIwMTYtMDct MjMgIEFuZHJldyBQaW5za2kgIDxhcGluc2tpQGNhdml1bS5jb20+Ci0rCi0rCSogbmF0L2FhcmNo NjQtbGludXgtaHctcG9pbnQuYwotKwkoYWFyY2g2NF9saW51eF9nZXRfZGVidWdfcmVnX2NhcGFj aXR5KTogSGFuZGxlCi0rCUFSTXY4LjEgYW5kIEFSTXY4LjIgZGVidWcgdmVyc2lvbnMuCi0rCSog bmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQuaAotKwkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzEp OiBOZXcgZGVmaW5lLgotKwkoQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzIpOiBOZXcgZGVmaW5lLgot KwotIDIwMTYtMDYtMzAgINCg0YPRgdC70LDQvSDQmNC20LHRg9C70LDRgtC+0LIgIDxscm4xOTg2 QGdtYWlsLmNvbT4KLSAKLSAJUFIgZ2RiLzE0NTI5Ci0tLS0gYS9nZGIvbmF0L2FhcmNoNjQtbGlu dXgtaHctcG9pbnQuYwotKysrIGIvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmMKLUBA IC02MzAsNyArNjMwLDkgQEAgYWFyY2g2NF9saW51eF9nZXRfZGVidWdfcmVnX2NhcGFjaXR5IChp bnQgdGlkKQotIAotICAgLyogR2V0IGhhcmR3YXJlIHdhdGNocG9pbnQgcmVnaXN0ZXIgaW5mby4g ICovCi0gICBpZiAocHRyYWNlIChQVFJBQ0VfR0VUUkVHU0VULCB0aWQsIE5UX0FSTV9IV19XQVRD SCwgJmlvdikgPT0gMAotLSAgICAgICYmIEFBUkNINjRfREVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5k YmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4KQotKyAgICAgICYmIChBQVJDSDY0X0RF QlVHX0FSQ0ggKGRyZWdfc3RhdGUuZGJnX2luZm8pID09IEFBUkNINjRfREVCVUdfQVJDSF9WOAot KwkgIHx8IEFBUkNINjRfREVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2 NF9ERUJVR19BUkNIX1Y4XzEKLSsJICB8fCBBQVJDSDY0X0RFQlVHX0FSQ0ggKGRyZWdfc3RhdGUu ZGJnX2luZm8pID09IEFBUkNINjRfREVCVUdfQVJDSF9WOF8yKSkKLSAgICAgewotICAgICAgIGFh cmNoNjRfbnVtX3dwX3JlZ3MgPSBBQVJDSDY0X0RFQlVHX05VTV9TTE9UUyAoZHJlZ19zdGF0ZS5k YmdfaW5mbyk7Ci0gICAgICAgaWYgKGFhcmNoNjRfbnVtX3dwX3JlZ3MgPiBBQVJDSDY0X0hXUF9N QVhfTlVNKQotQEAgLTY1MCw3ICs2NTIsOSBAQCBhYXJjaDY0X2xpbnV4X2dldF9kZWJ1Z19yZWdf Y2FwYWNpdHkgKGludCB0aWQpCi0gCi0gICAvKiBHZXQgaGFyZHdhcmUgYnJlYWtwb2ludCByZWdp c3RlciBpbmZvLiAgKi8KLSAgIGlmIChwdHJhY2UgKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgTlRf QVJNX0hXX0JSRUFLLCAmaW92KSA9PSAwCi0tICAgICAgJiYgQUFSQ0g2NF9ERUJVR19BUkNIIChk cmVnX3N0YXRlLmRiZ19pbmZvKSA9PSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjgpCi0rICAgICAgJiYg KEFBUkNINjRfREVCVUdfQVJDSCAoZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJV R19BUkNIX1Y4Ci0rCSAgfHwgQUFSQ0g2NF9ERUJVR19BUkNIIChkcmVnX3N0YXRlLmRiZ19pbmZv KSA9PSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjhfMQotKwkgIHx8IEFBUkNINjRfREVCVUdfQVJDSCAo ZHJlZ19zdGF0ZS5kYmdfaW5mbykgPT0gQUFSQ0g2NF9ERUJVR19BUkNIX1Y4XzIpKQotICAgICB7 Ci0gICAgICAgYWFyY2g2NF9udW1fYnBfcmVncyA9IEFBUkNINjRfREVCVUdfTlVNX1NMT1RTIChk cmVnX3N0YXRlLmRiZ19pbmZvKTsKLSAgICAgICBpZiAoYWFyY2g2NF9udW1fYnBfcmVncyA+IEFB UkNINjRfSEJQX01BWF9OVU0pCi0tLS0gYS9nZGIvbmF0L2FhcmNoNjQtbGludXgtaHctcG9pbnQu aAotKysrIGIvZ2RiL25hdC9hYXJjaDY0LWxpbnV4LWh3LXBvaW50LmgKLUBAIC02OCw2ICs2OCw4 IEBACi0gCi0gLyogTWFjcm8gZm9yIHRoZSBleHBlY3RlZCB2ZXJzaW9uIG9mIHRoZSBBUk12OC1B IGRlYnVnIGFyY2hpdGVjdHVyZS4gICovCi0gI2RlZmluZSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjgg MHg2Ci0rI2RlZmluZSBBQVJDSDY0X0RFQlVHX0FSQ0hfVjhfMSAweDcKLSsjZGVmaW5lIEFBUkNI NjRfREVCVUdfQVJDSF9WOF8yIDB4OAotIAotIC8qIHB0cmFjZSBleHBlY3RzIGNvbnRyb2wgcmVn aXN0ZXJzIHRvIGJlIGZvcm1hdHRlZCBhcyBmb2xsb3dzOgotIAoKZGlmZiAtLWdpdCBhL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBv ZjI1LnBhdGNoCmluZGV4IDYwMzdlMGUuLmIzN2M1YjkgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1 NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2Yy NS5wYXRjaApAQCAtNDYzLDExICs0NjMsMTEgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gK IENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0 dGFjaG1lbnQ7IGZpbGVuYW1lPWJpdHBvcy1tYWluLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9hZGEtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvYWRhLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE3NTM1MTQxMCArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMTk3 MzY0NzE0ICswMTAwCi1AQCAtNzUsNyArNzUsNyBAQCBzdGF0aWMgc3RydWN0IHR5cGUgKmRlc2Nf Ym91bmRzX3R5cGUgKHN0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLWxh bmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA1MzUxMDExNyArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9hZGEtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI3NTMwMDI4ICsw MjAwCitAQCAtNzUsNyArNzUsNyBAQAogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmRlc2NfYm91 bmRzIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC00NzYsNyArNDc2LDcgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAgc3RhdGljIGludCBmYXRfcG50cl9i b3VuZHNfYml0c2l6ZSAoc3RydWN0IHR5cGUgKik7CiAgCi1AQCAtODMsMTMgKzgzLDEzIEBAIHN0 YXRpYyBzdHJ1Y3QgdHlwZSAqZGVzY19kYXRhX3RhcmdldF90eXAKK0BAIC04MywxMyArODMsMTMg QEAKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpkZXNjX2RhdGEgKHN0cnVjdCB2YWx1ZSAqKTsK ICAKQEAgLTQ5Miw3ICs0OTIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fk YS1sYW5nLmMKICAKICBzdGF0aWMgaW50IGRlc2NfYm91bmRfYml0c2l6ZSAoc3RydWN0IHR5cGUg KiwgaW50LCBpbnQpOwogIAotQEAgLTE3Miw3ICsxNzIsNyBAQCBzdGF0aWMgc3RydWN0IHR5cGUg KnN0YXRpY191bndyYXBfdHlwZSAoCitAQCAtMTcyLDcgKzE3Miw3IEBACiAgCiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqdW53cmFwX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKik7CiAgCkBAIC01MDEsNyAr NTAxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgCiAg c3RhdGljIHN0cnVjdCB0eXBlICpkZWNvZGVfY29uc3RyYWluZWRfcGFja2VkX2FycmF5X3R5cGUg KHN0cnVjdCB0eXBlICopOwogIAotQEAgLTE4Nyw3ICsxODcsOCBAQCBzdGF0aWMgaW50IGFkYV9p c191bmNvbnN0cmFpbmVkX3BhY2tlZF9hCitAQCAtMTg3LDcgKzE4Nyw4IEBACiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqdmFsdWVfc3Vic2NyaXB0X3BhY2tlZCAoc3RydWN0IHZhbHVlICosIGludCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmFs dWUgKiopOwogIApAQCAtNTExLDcgKzUxMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKmNvZXJjZV91bnNwZWNf dmFsX3RvX3R5cGUgKHN0cnVjdCB2YWx1ZSAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICopOwotQEAgLTIxNSwxNCArMjE2LDE0 IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZhbF9hdHIgKHN0cnUKK0BAIC0yMTUsMTQg KzIxNiwxNCBAQAogIHN0YXRpYyBzdHJ1Y3Qgc3ltYm9sICpzdGFuZGFyZF9sb29rdXAgKGNvbnN0 IGNoYXIgKiwgY29uc3Qgc3RydWN0IGJsb2NrICosCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZG9tYWluX2VudW0pOwogIApAQCAtNTMwLDcgKzUzMCw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogIAogIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKmFkYV90b19maXhlZF92YWx1ZV9jcmVhdGUgKHN0cnVjdCB0eXBlICosIENPUkVfQURE UiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdmFsdWUgKik7Ci1AQCAtMjM2LDcgKzIzNyw3IEBAIHN0YXRpYyBpbnQgYWRhX2lzX2RpcmVj dF9hcnJheV90eXBlIChzdHIKK0BAIC0yMzYsNyArMjM3LDcgQEAKICBzdGF0aWMgdm9pZCBhZGFf bGFuZ3VhZ2VfYXJjaF9pbmZvIChzdHJ1Y3QgZ2RiYXJjaCAqLAogIAkJCQkgICAgc3RydWN0IGxh bmd1YWdlX2FyY2hfaW5mbyAqKTsKICAKQEAgLTUzOSw3ICs1MzksNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAJCQkJCSAgICAgc3RydWN0IHR5cGUgKik7 CiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqYXNzaWduX2FnZ3JlZ2F0ZSAoc3RydWN0IHZhbHVl ICosIHN0cnVjdCB2YWx1ZSAqLCAKLUBAIC03MDAsNyArNzAxLDcgQEAgY29lcmNlX3Vuc3BlY192 YWxfdG9fdHlwZSAoc3RydWN0IHZhbHVlCitAQCAtNzAwLDcgKzcwMSw3IEBACiAgfQogIAogIHN0 YXRpYyBjb25zdCBnZGJfYnl0ZSAqCkBAIC01NDgsNyArNTQ4LDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgewogICAgaWYgKHZhbGFkZHIgPT0gTlVMTCkK ICAgICAgcmV0dXJuIE5VTEw7Ci1AQCAtNzA5LDcgKzcxMCw3IEBAIGNvbmRfb2Zmc2V0X2hvc3Qg KGNvbnN0IGdkYl9ieXRlICp2YWxhZGQKK0BAIC03MDksNyArNzEwLDcgQEAKICB9CiAgCiAgc3Rh dGljIENPUkVfQUREUgpAQCAtNTU3LDcgKzU1Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvYWRhLWxhbmcuYwogIHsKICAgIGlmIChhZGRyZXNzID09IDApCiAgICAgIHJldHVy biAwOwotQEAgLTE3MTcsNyArMTcxOCw3IEBAIGRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKmFy cikKK0BAIC0xNzU2LDcgKzE3NTcsNyBAQAogIC8qIElmIFRZUEUgaXMgdGhlIHR5cGUgb2YgYW4g YXJyYXktZGVzY3JpcHRvciAoZmF0IHBvaW50ZXIpLCAgdGhlIGJpdAogICAgIHBvc2l0aW9uIG9m IHRoZSBmaWVsZCBjb250YWluaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBib3VuZHMgZGF0YS4gICov CiAgCkBAIC01NjYsNyArNTY2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtbGFuZy5jCiAgZmF0X3BudHJfYm91bmRzX2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAg ewogICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDEp OwotQEAgLTE3ODMsNyArMTc4NCw3IEBAIGRlc2NfZGF0YSAoc3RydWN0IHZhbHVlICphcnIpCitA QCAtMTgyMiw3ICsxODIzLDcgQEAKICAvKiBJZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5 LWRlc2NyaXB0b3IgKGZhdCBwb2ludGVyKSwgdGhlIGJpdAogICAgIHBvc2l0aW9uIG9mIHRoZSBm aWVsZCBjb250YWluaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBkYXRhLiAgKi8KICAKQEAgLTU3NSw3 ICs1NzUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICBm YXRfcG50cl9kYXRhX2JpdHBvcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIFRZ UEVfRklFTERfQklUUE9TIChkZXNjX2Jhc2VfdHlwZSAodHlwZSksIDApOwotQEAgLTE4MTgsNyAr MTgxOSw3IEBAIGRlc2Nfb25lX2JvdW5kIChzdHJ1Y3QgdmFsdWUgKmJvdW5kcywgaW4KK0BAIC0x ODU3LDcgKzE4NTgsNyBAQAogICAgIG9mIHRoZSBJdGggbG93ZXIgYm91bmQgc3RvcmVkIGluIGl0 LCBpZiBXSElDSCBpcyAwLCBhbmQgdGhlIEl0aCB1cHBlcgogICAgIGJvdW5kLCBpZiBXSElDSCBp cyAxLiAgVGhlIGZpcnN0IGJvdW5kIGlzIEk9MS4gICovCiAgCkBAIC01ODQsNyArNTg0LDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgZGVzY19ib3VuZF9i aXRwb3MgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaSwgaW50IHdoaWNoKQogIHsKICAgIHJldHVy biBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVzY19iYXNlX3R5cGUgKHR5cGUpLCAyICogaSArIHdoaWNo IC0gMik7Ci1AQCAtMjAwOCw3ICsyMDA5LDcgQEAgYWRhX3R5cGVfb2ZfYXJyYXkgKHN0cnVjdCB2 YWx1ZSAqYXJyLCBpbgorQEAgLTIwNDcsNyArMjA0OCw3IEBACiAgCSAgICAgICAgIHplcm8sIGFu ZCBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlY29tcHV0ZWQuICAqLwogIAkgICAgICBpZiAobG8gPCBo aSkKICAJCXsKQEAgLTU5Myw3ICs1OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2FkYS1sYW5nLmMKICAJCSAgICAgICAgKGhpIC0gbG8gKyAxKSAqIFRZUEVfRklFTERfQklU U0laRSAoZWx0X3R5cGUsIDApOwogIAogIAkJICBUWVBFX0xFTkdUSCAoYXJyYXlfdHlwZSkgPSAo YXJyYXlfYml0c2l6ZSArIDcpIC8gODsKLUBAIC0yMTY4LDcgKzIxNjksNyBAQCBkZWNvZGVfcGFj a2VkX2FycmF5X2JpdHNpemUgKHN0cnVjdCB0eXBlCitAQCAtMjIwNyw3ICsyMjA4LDcgQEAKICAg ICB0aGUgbGVuZ3RoIGlzIGFyYml0cmFyeS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoK QEAgLTYwMiw3ICs2MDIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1s YW5nLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAqbmV3X2VsdF90eXBlOwogICAgc3RydWN0IHR5cGUg Km5ld190eXBlOwotQEAgLTIyMjIsNyArMjIyMyw3IEBAIGRlY29kZV9jb25zdHJhaW5lZF9wYWNr ZWRfYXJyYXlfdHlwZSAoc3QKK0BAIC0yMjYxLDcgKzIyNjIsNyBAQAogICAgY2hhciAqbmFtZTsK ICAgIGNvbnN0IGNoYXIgKnRhaWw7CiAgICBzdHJ1Y3QgdHlwZSAqc2hhZG93X3R5cGU7CkBAIC02 MTEsNyArNjExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5j CiAgCiAgICBpZiAoIXJhd19uYW1lKQogICAgICByYXdfbmFtZSA9IGFkYV90eXBlX25hbWUgKGRl c2NfYmFzZV90eXBlICh0eXBlKSk7Ci1AQCAtMjI5Myw3ICsyMjk0LDggQEAgZGVjb2RlX2NvbnN0 cmFpbmVkX3BhY2tlZF9hcnJheSAoc3RydWN0CitAQCAtMjMzMiw3ICsyMzMzLDggQEAKICAgCSBh cnJheSB3aXRoIG5vIHdyYXBwZXIuICBJbiBvcmRlciB0byBpbnRlcnByZXQgdGhlIHZhbHVlIHRo cm91Z2gKICAgCSB0aGUgKGxlZnQtanVzdGlmaWVkKSBwYWNrZWQgYXJyYXkgdHlwZSB3ZSBqdXN0 IGJ1aWx0LCB3ZSBtdXN0CiAgIAkgZmlyc3QgbGVmdC1qdXN0aWZ5IGl0LiAgKi8KQEAgLTYyMSw3 ICs2MjEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAg ICAgICBVTE9OR0VTVCBtb2Q7CiAgCiAgICAgICAgbW9kID0gYWRhX21vZHVsdXMgKHZhbHVlX3R5 cGUgKGFycikpIC0gMTsKLUBAIC0yNTIxLDcgKzI1MjMsNyBAQCBhZGFfdW5wYWNrX2Zyb21fY29u dGVudHMgKGNvbnN0IGdkYl9ieXRlCitAQCAtMjU2MCw3ICsyNTYyLDcgQEAKICAKICBzdHJ1Y3Qg dmFsdWUgKgogIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHZhbHVlICpv YmosIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNjMwLDcgKzYzMCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgc3RydWN0IHZhbHVlICp2Owot QEAgLTI1OTQsNyArMjU5Niw3IEBAIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3Ry dWN0IHYKK0BAIC0yNjMzLDcgKzI2MzUsNyBAQAogIAogICAgaWYgKG9iaiAhPSBOVUxMKQogICAg ICB7CkBAIC02MzksNyArNjM5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9h ZGEtbGFuZy5jCiAgCiAgICAgICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwgb2Jq KTsKICAgICAgICBzZXRfdmFsdWVfYml0cG9zICh2LCBiaXRfb2Zmc2V0ICsgdmFsdWVfYml0cG9z IChvYmopKTsKLUBAIC0yNjQyLDcgKzI2NDQsNyBAQCBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tl ZF92YWwgKHN0cnVjdCB2CitAQCAtMjY4MSw3ICsyNjgzLDcgQEAKICAgICBub3Qgb3ZlcmxhcC4g ICovCiAgc3RhdGljIHZvaWQKICBtb3ZlX2JpdHMgKGdkYl9ieXRlICp0YXJnZXQsIGludCB0YXJn X29mZnNldCwgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZSwKQEAgLTY0OCw3ICs2NDgsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICB1bnNpZ25lZCBp bnQgYWNjdW0sIG1hc2s7CiAgICBpbnQgYWNjdW1fYml0cywgY2h1bmtfc2l6ZTsKLUBAIC0yNzMy LDcgKzI3MzQsNyBAQCBhZGFfdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzCitA QCAtMjc3MSw3ICsyNzczLDcgQEAKICAgICAgewogICAgICAgIGludCBsZW4gPSAodmFsdWVfYml0 cG9zICh0b3ZhbCkKICAJCSArIGJpdHMgKyBIT1NUX0NIQVJfQklUIC0gMSkgLyBIT1NUX0NIQVJf QklUOwpAQCAtNjU3LDcgKzY1Nyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YWRhLWxhbmcuYwogICAgICAgIGdkYl9ieXRlICpidWZmZXIgPSAoZ2RiX2J5dGUgKikgYWxsb2Nh IChsZW4pOwogICAgICAgIHN0cnVjdCB2YWx1ZSAqdmFsOwogICAgICAgIENPUkVfQUREUiB0b19h ZGRyID0gdmFsdWVfYWRkcmVzcyAodG92YWwpOwotQEAgLTI3ODMsNyArMjc4NSw3IEBAIHZhbHVl X2Fzc2lnbl90b19jb21wb25lbnQgKHN0cnVjdCB2YWx1ZQorQEAgLTI4MjIsNyArMjgyNCw3IEBA CiAgICAgIChMT05HRVNUKSAgKHZhbHVlX2FkZHJlc3MgKGNvbXBvbmVudCkgLSB2YWx1ZV9hZGRy ZXNzIChjb250YWluZXIpKTsKICAgIGludCBiaXRfb2Zmc2V0X2luX2NvbnRhaW5lciA9CiAgICAg IHZhbHVlX2JpdHBvcyAoY29tcG9uZW50KSAtIHZhbHVlX2JpdHBvcyAoY29udGFpbmVyKTsKQEAg LTY2Niw3ICs2NjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5n LmMKICAKICAgIHZhbCA9IHZhbHVlX2Nhc3QgKHZhbHVlX3R5cGUgKGNvbXBvbmVudCksIHZhbCk7 CiAgCi1AQCAtNDM5Miw3ICs0Mzk0LDcgQEAgZW5zdXJlX2x2YWwgKHN0cnVjdCB2YWx1ZSAqdmFs KQorQEAgLTQ0ODAsNyArNDQ4Miw3IEBACiAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBub3Rf bHZhbAogICAgICAgIHx8IFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9pbnRlcm5hbHZhcikKICAg ICAgewpAQCAtNjc1LDcgKzY3NSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YWRhLWxhbmcuYwogICAgICAgIGNvbnN0IENPUkVfQUREUiBhZGRyID0KICAgICAgICAgIHZhbHVl X2FzX2xvbmcgKHZhbHVlX2FsbG9jYXRlX3NwYWNlX2luX2luZmVyaW9yIChsZW4pKTsKICAKLUBA IC00NDc2LDcgKzQ0NzgsNyBAQCBzdGF0aWMgQ09SRV9BRERSCitAQCAtNDU2NCw3ICs0NTY2LDcg QEAKICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAqdHlw ZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUp OwpAQCAtNjg0LDcgKzY4NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRh LWxhbmcuYwogICAgZ2RiX2J5dGUgKmJ1ZiA9IChnZGJfYnl0ZSAqKSBhbGxvY2EgKGxlbik7CiAg ICBDT1JFX0FERFIgYWRkcjsKICAKLUBAIC02NzExLDcgKzY3MTMsNyBAQCB2YWx1ZV90YWdfZnJv bV9jb250ZW50c19hbmRfYWRkcmVzcyAoc3RyCitAQCAtNjc5OSw3ICs2ODAxLDcgQEAKICAJCQkJ ICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJlc3MpCiAgewpAQCAtNjkzLDcgKzY5Myw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgc3RydWN0IHR5cGUg KnRhZ190eXBlOwogIAogICAgaWYgKGZpbmRfc3RydWN0X2ZpZWxkICgiX3RhZyIsIHR5cGUsIDAs ICZ0YWdfdHlwZSwgJnRhZ19ieXRlX29mZnNldCwKLUBAIC03MTgxLDcgKzcxODMsNyBAQCBhZGFf aW5fdmFyaWFudCAoTE9OR0VTVCB2YWwsIHN0cnVjdCB0eXBlCitAQCAtNzI4MCw3ICs3MjgyLDcg QEAKICAgICBvbmx5IGluIHRoYXQgaXQgY2FuIGhhbmRsZSBwYWNrZWQgdmFsdWVzIG9mIGFyYml0 cmFyeSB0eXBlLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTcwMiw3ICs3MDIs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCiAgewogICAgc3RydWN0 IHR5cGUgKnR5cGU7Ci1AQCAtNzE5Myw3ICs3MTk1LDcgQEAgYWRhX3ZhbHVlX3ByaW1pdGl2ZV9m aWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNzI5Miw3ICs3Mjk0LDcgQEAKICAKICAgIGlmIChUWVBF X0ZJRUxEX0JJVFNJWkUgKGFyZ190eXBlLCBmaWVsZG5vKSAhPSAwKQogICAgICB7CkBAIC03MTEs NyArNzExLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAg ICAgICAgaW50IGJpdF9zaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRu byk7CiAgCiAgICAgICAgcmV0dXJuIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJn MSwgdmFsdWVfY29udGVudHMgKGFyZzEpLAotQEAgLTcyMjAsOSArNzIyMiw5IEBAIGFkYV92YWx1 ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQorQEAgLTczMTksOSArNzMyMSw5IEBACiAg ICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIG90aGVyd2lzZS4gICovCiAgCiAgc3RhdGljIGludApA QCAtNzIzLDcgKzcyMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxh bmcuYwogIAkJICAgaW50ICppbmRleF9wKQogIHsKICAgIGludCBpOwotQEAgLTcyNDAsOCArNzI0 Miw4IEBAIGZpbmRfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzdHIKK0BAIC03MzM5 LDggKzczNDEsOCBAQAogIAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTkZJRUxEUyAodHlwZSk7 IGkgKz0gMSkKICAgICAgewpAQCAtNzM0LDcgKzczNCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICAgIGNvbnN0IGNoYXIgKnRfZmllbGRfbmFtZSA9 IFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSk7CiAgCiAgICAgICAgaWYgKHRfZmllbGRfbmFtZSA9 PSBOVUxMKQotQEAgLTczMTEsNyArNzMxMyw3IEBAIG51bV92aXNpYmxlX2ZpZWxkcyAoc3RydWN0 IHR5cGUgKnR5cGUpCitAQCAtNzQxMCw3ICs3NDEyLDcgQEAKICAgICBTZWFyY2hlcyByZWN1cnNp dmVseSB0aHJvdWdoIHdyYXBwZXIgZmllbGRzIChlLmcuLCAnX3BhcmVudCcpLiAgKi8KICAKICBz dGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc0Myw3ICs3NDMsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzM0NCw3ICs3MzQ2LDcgQEAgYWRh X3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbQorQEAgLTc0NDMsNyArNzQ0NSw3 IEBACiAgICAgICAgICAgIGludCBqOwogICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlw ZSA9IGFkYV9jaGVja190eXBlZGVmIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsCiAgCQkJCQkJCQkJ aSkpOwpAQCAtNzUyLDcgKzc1Miw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv YWRhLWxhbmcuYwogIAogICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgVFlQRV9ORklFTERTIChm aWVsZF90eXBlKTsgaiArPSAxKQogICAgICAgICAgICAgIHsKLUBAIC03MzYyLDggKzczNjQsOCBA QCBhZGFfc2VhcmNoX3N0cnVjdF9maWVsZCAoY29uc3QgY2hhciAqbmFtCitAQCAtNzQ2MSw4ICs3 NDYzLDggQEAKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTc2Myw3ICs3NjMsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAKICAKICAvKiBSZXR1cm4g ZmllbGQgI0lOREVYIGluIEFSRywgd2hlcmUgdGhlIGluZGV4IGlzIHRoYXQgcmV0dXJuZWQgYnkK LUBAIC03MzcyLDcgKzczNzQsNyBAQCBzdGF0aWMgc3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3Ry dWN0X2ZpCitAQCAtNzQ3MSw3ICs3NDczLDcgQEAKICAgKiBJZiBmb3VuZCwgcmV0dXJuIHZhbHVl LCBlbHNlIHJldHVybiBOVUxMLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc3 Miw3ICs3NzIsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMK ICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4gYWRhX2luZGV4X3N0cnVjdF9m aWVsZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBAIC03Mzg0LDcgKzczODYsNyBA QCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVjCitAQCAtNzQ4Myw3ICs3 NDg1LDcgQEAKICAgKiAqSU5ERVhfUC4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBA IC03ODEsNyArNzgxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFu Zy5jCiAgCQkJICBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICBpbnQgaTsKLUBAIC03NDc0LDcg Kzc0NzYsOCBAQCBhZGFfdmFsdWVfc3RydWN0X2VsdCAoc3RydWN0IHZhbHVlICphcmcsCitAQCAt NzU3Myw3ICs3NTc1LDggQEAKICAgICAgdiA9IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1l LCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAgICB7CkBAIC03OTEsNyArNzkxLDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5jCiAgICAgICAgc3RydWN0IHR5cGUg KmZpZWxkX3R5cGU7CiAgICAgICAgQ09SRV9BRERSIGFkZHJlc3M7CiAgCi1AQCAtNzc5MSw4ICs3 Nzk0LDggQEAgYWRhX2NvZXJjZV9yZWYgKHN0cnVjdCB2YWx1ZSAqdmFsMCkKK0BAIC03OTA0LDgg Kzc5MDcsOCBAQAogIC8qIFJldHVybiBPRkYgcm91bmRlZCB1cHdhcmQgaWYgbmVjZXNzYXJ5IHRv IGEgbXVsdGlwbGUgb2YKICAgICBBTElHTk1FTlQgKGEgcG93ZXIgb2YgMikuICAqLwogIApAQCAt ODAyLDcgKzgwMiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcu YwogIHsKICAgIHJldHVybiAob2ZmICsgYWxpZ25tZW50IC0gMSkgJiB+KGFsaWdubWVudCAtIDEp OwogIH0KLUBAIC04MTg2LDEwICs4MTg5LDkgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29y ZF90eXBlXzEgKHN0cgorQEAgLTgyOTksMTAgKzgzMDIsOSBAQAogICAgc3RydWN0IHZhbHVlICpt YXJrID0gdmFsdWVfbWFyayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVjdCB0 eXBlICpydHlwZTsKQEAgLTgxNSw3ICs4MTUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2FkYS1sYW5nLmMKICAgIGludCBmOwogIAogICAgLyogQ29tcHV0ZSB0aGUgbnVtYmVy IG9mIGZpZWxkcyBpbiB0aGlzIHJlY29yZCB0eXBlIHRoYXQgYXJlIGdvaW5nCi1AQCAtODI2Nyw3 ICs4MjY5LDcgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgorQEAg LTgzODAsNyArODM4Miw3IEBACiAgCSAgICAgdGhhdCBmb2xsb3cgdGhpcyBvbmUuICAqLwogIAkg IGlmIChhZGFfaXNfYWxpZ25lcl90eXBlIChmaWVsZF90eXBlKSkKICAJICAgIHsKQEAgLTgyNCw3 ICs4MjQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmMKICAK ICAJICAgICAgZmllbGRfdmFsYWRkciA9IGNvbmRfb2Zmc2V0X2hvc3QgKGZpZWxkX3ZhbGFkZHIs IGZpZWxkX29mZnNldCk7CiAgCSAgICAgIGZpZWxkX2FkZHJlc3MgPSBjb25kX29mZnNldF90YXJn ZXQgKGZpZWxkX2FkZHJlc3MsIGZpZWxkX29mZnNldCk7Ci1AQCAtODQwMywxMSArODQwNSwxMSBA QCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAtODUxNiwxMSAr ODUxOCwxMSBAQAogICAgaWYgKFRZUEVfTEVOR1RIICh0eXBlKSA8PSAwKQogICAgICB7CiAgICAg ICAgaWYgKFRZUEVfTkFNRSAocnR5cGUpKQpAQCAtODQwLDcgKzg0MCw3IEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYWRhLWxhbmcuYwogICAgICB9CiAgICBlbHNlCiAgICAgIHsK LUBAIC04ODc0LDcgKzg4NzYsOCBAQCB0b19maXhlZF9hcnJheV90eXBlIChzdHJ1Y3QgdHlwZSAq dHlwZTAsCitAQCAtODk4Nyw3ICs4OTg5LDggQEAKICAJIHR5cGUgd2FzIGEgcmVndWxhciAobm9u LXBhY2tlZCkgYXJyYXkgdHlwZS4gIEFzIGEgcmVzdWx0LCB0aGUKICAJIGJpdHNpemUgb2YgdGhl IGFycmF5IGVsZW1lbnRzIG5lZWRzIHRvIGJlIHNldCBhZ2FpbiwgYW5kIHRoZSBhcnJheQogIAkg bGVuZ3RoIG5lZWRzIHRvIGJlIHJlY29tcHV0ZWQgYmFzZWQgb24gdGhhdCBiaXRzaXplLiAgKi8K QEAgLTg1MCwxMSArODUwLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWRh LWxhbmcuYwogICAgICAgIGludCBlbHRfYml0c2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlw ZTAsIDApOwogIAogICAgICAgIFRZUEVfRklFTERfQklUU0laRSAocmVzdWx0LCAwKSA9IFRZUEVf RklFTERfQklUU0laRSAodHlwZTAsIDApOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9hZGEtbGFuZy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS1sYW5nLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hZGEtbGFuZy5o CTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc3MzUxNDIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FkYS1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTgzNjQ3MjEgKzAxMDAK LUBAIC0xNjgsNyArMTY4LDcgQEAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0 eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA1NDUxMDEyNSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9hZGEtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI4NTMwMDM2ICswMjAwCitAQCAtMTY4 LDcgKzE2OCw3IEBACiAgZXh0ZXJuIHZvaWQgYWRhX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBl ICp0eXBlLCBzdHJ1Y3Qgc3ltYm9sICpuZXdfc3ltYm9sLAogIAkJCSAgICAgICBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtKTsKICAKQEAgLTg2Myw3ICs4NjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmgKICAJCQkgICBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAg CQkJICAgY29uc3Qgc3RydWN0IHZhbHVlICosCiAgCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKik7Ci1AQCAtMTgzLDcgKzE4Myw3IEBAIGV4dGVybiB2b2lkIGFkYV9lbWl0 X2NoYXIgKGludCwgc3RydWN0IHQKK0BAIC0xODMsNyArMTgzLDcgQEAKICBleHRlcm4gdm9pZCBh ZGFfcHJpbnRjaGFyIChpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICopOwogIAog IGV4dGVybiB2b2lkIGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKiwgc3RydWN0IHR5cGUg KiwgY29uc3QgZ2RiX2J5dGUgKiwKQEAgLTg3Miw3ICs4NzIsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS1sYW5nLmgKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICopOwogIAogIHN0cnVjdCB2YWx1ZSAqYWRhX2NvbnZlcnRfYWN0dWFsIChzdHJ1 Y3QgdmFsdWUgKmFjdHVhbCwKLUBAIC0yNTUsNyArMjU1LDcgQEAgZXh0ZXJuIGludCBhZGFfaXNf Y29uc3RyYWluZWRfcGFja2VkX2FycgorQEAgLTI1NSw3ICsyNTUsNyBAQAogIAogIGV4dGVybiBz dHJ1Y3QgdmFsdWUgKmFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoc3RydWN0IHZhbHVl ICosCiAgCQkJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqLApAQCAtODgxLDExICs4ODEsMTEgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtbGFuZy5oCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqKTsK ICAKICBleHRlcm4gc3RydWN0IHR5cGUgKmFkYV9jb2VyY2VfdG9fc2ltcGxlX2FycmF5X3R5cGUg KHN0cnVjdCB0eXBlICopOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlw ZXByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXR5cGVwcmludC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvYWRhLXR5cGVw cmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTc3MzUxNDIzICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjE5ODM2 NDcyMSArMDEwMAotQEAgLTg5MSw4ICs4OTEsOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5 cGUgKnR5cGUwLCBjb25zCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLXR5 cGVwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU1NTEwMTMzICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUy ODUzMDAzNiArMDIwMAorQEAgLTg5MSw4ICs4OTEsOCBAQAogIAkgICAgY29uc3QgY2hhciAqbmFt ZSA9IGFkYV90eXBlX25hbWUgKHR5cGUpOwogIAogIAkgICAgaWYgKCFhZGFfaXNfcmFuZ2VfdHlw ZV9uYW1lIChuYW1lKSkKQEAgLTg5Niw3ICs4OTYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FkYS10eXBlcHJpbnQuYwogIAkgICAgZWxzZQogIAkgICAgICB7CiAgCQlmcHJp bnRmX2ZpbHRlcmVkIChzdHJlYW0sICJyYW5nZSAiKTsKLUBAIC05MTMsNyArOTEzLDggQEAgYWRh X3ByaW50X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwgY29ucworQEAgLTkxMyw3ICs5MTMsOCBA QAogIAkgIH0KICAJYnJlYWs7CiAgICAgICAgY2FzZSBUWVBFX0NPREVfRkxUOgpAQCAtOTA2LDEw ICs5MDYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdHlwZXByaW50 LmMKICAJYnJlYWs7CiAgICAgICAgY2FzZSBUWVBFX0NPREVfRU5VTToKICAJaWYgKHNob3cgPCAw KQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hZGEtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMTc5MzUxNDM2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fk YS12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMTk5MzY0NzI4ICswMTAwCistLS0gZ2Ri LTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYWRhLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDoz Mzo0Mi4wNTY1MTAxNDEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWRhLXZh bHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKIEBAIC0zMywxMSAr MzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICAKQEAgLTkyNCw3ICs5MjQsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkJICAgICAg IGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9kZWZuICopOwogIAwKICAKLUBAIC0yNzksNyArMjc5LDcg QEAgYWRhX2VtaXRfY2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTI3OSw3ICsy NzksNyBAQAogICAgIG9mIGEgY2hhcmFjdGVyLiAgKi8KICAKICBzdGF0aWMgaW50CkBAIC05MzMs NyArOTMzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQu YwogIAkgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIpCiAgewogICAgaWYgKHR5cGVfbGVuID09 IDEpCi1AQCAtNDQxLDExICs0NDEsMTEgQEAgYWRhX3ByaW50X3NjYWxhciAoc3RydWN0IHR5cGUg KnR5cGUsIExPTgorQEAgLTQ0MSwxMSArNDQxLDExIEBACiAgCiAgc3RhdGljIHZvaWQKICBwcmlu dHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKmVsdHR5cGUsIGNvbnN0 IGdkYl9ieXRlICpzdHJpbmcsCkBAIC05NDcsNyArOTQ3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmlu dGVkID0gMDsKICAgIGludCBpbl9xdW90ZXMgPSAwOwogICAgaW50IG5lZWRfY29tbWEgPSAwOwot QEAgLTQ2MCw5ICs0NjAsOSBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3Ry dWN0CitAQCAtNDYwLDkgKzQ2MCw5IEBACiAgICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0 aGUgY2hhcmFjdGVyIHdlIGFyZSBleGFtaW5pbmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBp dCBpcyByZXBlYXRlZC4gICovCkBAIC05NTksNyArOTU5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9hZGEtdmFscHJpbnQuYwogIAogICAgICAgIFFVSVQ7CiAgCi1AQCAtNDkz LDcgKzQ5Myw4IEBAIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKK0BA IC00OTMsNyArNDkzLDggQEAKICAJICBhZGFfZW1pdF9jaGFyIChjaGFyX2F0IChzdHJpbmcsIGks IHR5cGVfbGVuLCBieXRlX29yZGVyKSwKICAJCQkgZWx0dHlwZSwgc3RyZWFtLCAnXCcnLCB0eXBl X2xlbik7CiAgCSAgZnB1dHNfZmlsdGVyZWQgKCInIiwgc3RyZWFtKTsKQEAgLTk2OSw3ICs5Njks NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAg aSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3Vu dF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1AQCAtNTIxLDcgKzUyMiw3IEBAIHBy aW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QKK0BAIC01MjEsNyArNTIyLDcg QEAKICAKICB2b2lkCiAgYWRhX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwKQEAgLTk3OCw3ICs5NzgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBp bnQgZm9yY2VfZWxsaXBzZXMsCiAgCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRp b25zICpvcHRpb25zKQogIHsKLUBAIC01MzEsMTIgKzUzMiwxMiBAQCBhZGFfcHJpbnRzdHIgKHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0CitAQCAtNTMxLDEyICs1MzIsMTIgQEAKICAKICBzdGF0 aWMgaW50CiAgcHJpbnRfdmFyaWFudF9wYXJ0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxk X251bSwKQEAgLTk5Myw3ICs5OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FkYS12YWxwcmludC5jCiAgCQkgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1 YWdlKQogIHsKICAgIHN0cnVjdCB0eXBlICp2YXJfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlw ZSwgZmllbGRfbnVtKTsKLUBAIC01NzIsMTEgKzU3MywxMSBAQCBwcmludF92YXJpYW50X3BhcnQg KHN0cnVjdCB0eXBlICp0eXBlLCBpCitAQCAtNTcyLDExICs1NzMsMTEgQEAKICAKICBzdGF0aWMg aW50CiAgcHJpbnRfZmllbGRfdmFsdWVzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5 dGUgKnZhbGFkZHIsCkBAIC0xMDA3LDcgKzEwMDcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCQkgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2Rl Zm4gKmxhbmd1YWdlKQogIHsKICAgIGludCBpLCBsZW47Ci1AQCAtNjQzLDcgKzY0NCw3IEBAIHBy aW50X2ZpZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5cGUsIGMKK0BAIC02NDMsNyArNjQ0LDcg QEAKICAJICAgIH0KICAJICBlbHNlCiAgCSAgICB7CkBAIC0xMDE2LDcgKzEwMTYsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgICAgIGludCBi aXRfc2l6ZSA9IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgaSk7CiAgCSAgICAgIHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7CiAgCi1AQCAtNjg5LDggKzY5MCw4IEBAIGFkYV92YWxf cHJpbnRfc3RyaW5nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKK0BAIC02ODksOCArNjkwLDggQEAKICB7 CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0 X3R5cGVfYXJjaCAodHlwZSkpOwogICAgc3RydWN0IHR5cGUgKmVsdHR5cGUgPSBUWVBFX1RBUkdF VF9UWVBFICh0eXBlKTsKQEAgLTEwMjcsNyArMTAyNyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYWRhLXZhbHByaW50LmMKICAKICAgIC8qIFdlIGtub3cgdGhhdCBFTFRUWVBF IGNhbm5vdCBwb3NzaWJseSBiZSBudWxsLCBiZWNhdXNlIHdlIGFzc3VtZQogICAgICAgdGhhdCB3 ZSdyZSBjYWxsZWQgb25seSB3aGVuIFRZUEUgaXMgYSBzdHJpbmctbGlrZSB0eXBlLgotQEAgLTcw OSw3ICs3MTAsNyBAQCBhZGFfdmFsX3ByaW50X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsCitA QCAtNzA5LDcgKzcxMCw3IEBACiAgICAgICBlbGVtZW50cyB1cCB0byBpdC4gICovCiAgICBpZiAo b3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxsKQogICAgICB7CkBAIC0xMDM2LDcgKzEwMzYsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCiAgICAg ICAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogICAgICAgIGZvciAodGVtcF9sZW4gPSAw OwotQEAgLTEwNzQsNyArMTA3NSw3IEBAIGFkYV92YWxfcHJpbnRfcmVmIChzdHJ1Y3QgdHlwZSAq dHlwZSwgY28KK0BAIC0xMDc0LDcgKzEwNzUsNyBAQAogIAogIHN0YXRpYyB2b2lkCiAgYWRhX3Zh bF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBA IC0xMDQ1LDcgKzEwNDUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FkYS12 YWxwcmludC5jCiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkg Y29uc3Qgc3RydWN0IHZhbHVlICpvcmlnaW5hbF92YWx1ZSwKICAJCSBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0xMTU3LDcgKzExNTgsNyBAQCBhZGFfdmFs X3ByaW50XzEgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zCitAQCAtMTE1Nyw3ICsxMTU4LDcgQEAK ICAKICB2b2lkCiAgYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLApAQCAtMTA1NCwxMSArMTA1NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkg ICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRlLmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvYW5ub3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xNzkzNTE0MzYgKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYW5ub3RhdGUuYwkyMDE1LTExLTAyIDIx OjIzOjEzLjE5OTM2NDcyOCArMDEwMAotQEAgLTU0MiwyMSArNTQyLDIxIEBAIGFubm90YXRlX2Zy YW1lX2VuZCAodm9pZCkKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbm5vdGF0 ZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU3NTEwMTQ5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2Fubm90YXRlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAy MDAKK0BAIC01MzMsMjEgKzUzMywyMSBAQAogIH0KICAMCiAgdm9pZApAQCAtMTA4NCwxMSArMTA4 NCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRlLmMKICB9CiAg CiAgdm9pZAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hbm5vdGF0ZS5oCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMTc5MzUxNDM2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2Fubm90YXRl LmgJMjAxNS0xMS0wMiAyMToyMzoxMy4xOTkzNjQ3MjggKzAxMDAKLUBAIC05Miw4ICs5Miw4IEBA IGV4dGVybiB2b2lkIGFubm90YXRlX2ZyYW1lX3NvdXJjZV9lbmQgKHYKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDU3NTEw MTQ5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fubm90YXRlLmgJMjAxNi0w Ny0xNiAxNDozMzo0NC41Mjg1MzAwMzYgKzAyMDAKK0BAIC05Miw4ICs5Miw4IEBACiAgZXh0ZXJu IHZvaWQgYW5ub3RhdGVfZnJhbWVfd2hlcmUgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRl X2ZyYW1lX2VuZCAodm9pZCk7CiAgCkBAIC0xMDk5LDExICsxMDk5LDExIEBAIEluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYW5ub3RhdGUuaAogIGV4dGVybiB2b2lkIGFubm90YXRlX2Vs dF9yZXBfZW5kICh2b2lkKTsKICBleHRlcm4gdm9pZCBhbm5vdGF0ZV9lbHQgKHZvaWQpOwogIGV4 dGVybiB2b2lkIGFubm90YXRlX2FycmF5X3NlY3Rpb25fZW5kICh2b2lkKTsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYXJtLWxpbnV4LW5hdC5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2FybS1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTUxMDI3Lm9yaWcvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE4 MDM1MTQ0MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9hcm0tbGludXgtbmF0 LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMDAzNjQ3MzQgKzAxMDAKLUBAIC0xMDk5LDcgKzEwOTks NyBAQCBhcm1fbGludXhfcmVtb3ZlX2h3X2JyZWFrcG9pbnQgKHN0cnVjdCB0CistLS0gZ2RiLTcu MTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6 NDIuMDU3NTEwMTQ5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FybS1saW51 eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUyOTUzMDA0NCArMDIwMAorQEAgLTEwNjMsNyAr MTA2Myw3IEBACiAgICAgQUREUj8gICovCiAgc3RhdGljIGludAogIGFybV9saW51eF9yZWdpb25f b2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMTExMiwx MSArMTExMiwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FybS1saW51eC1u YXQuYwogIHsKICAgIGNvbnN0IHN0cnVjdCBhcm1fbGludXhfaHdicF9jYXAgKmNhcCA9IGFybV9s aW51eF9nZXRfaHdicF9jYXAgKCk7CiAgICBDT1JFX0FERFIgbWF4X3dwX2xlbmd0aCwgYWxpZ25l ZF9hZGRyOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZGIuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2F4LWdkYi5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTgy MzUxNDU2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjAxMzY0NzQxICswMTAwCi1AQCAtODMsMTIgKzgzLDEyIEBAIHN0YXRp YyB2b2lkIGdlbl90cmFjZWRfcG9wIChzdHJ1Y3QgZ2RiYXIKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9heC1nZGIuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA2MDUxMDE3MyArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZGIuYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjUyOTUzMDA0NCArMDIwMAorQEAgLTgzLDEyICs4MywxMiBAQAogIHN0YXRpYyB2b2lkIGdl bl9zaWduX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7CiAgc3Rh dGljIHZvaWQgZ2VuX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5cGUgKik7 CiAgc3RhdGljIHZvaWQgZ2VuX2ZldGNoIChzdHJ1Y3QgYWdlbnRfZXhwciAqLCBzdHJ1Y3QgdHlw ZSAqKTsKQEAgLTExMzEsNyArMTEzMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYXgtZ2RiLmMKICBzdGF0aWMgdm9pZCBnZW5fc3ltX29mZnNldCAoc3RydWN0IGFnZW50X2V4 cHIgKiwgc3RydWN0IHN5bWJvbCAqKTsKICBzdGF0aWMgdm9pZCBnZW5fdmFyX3JlZiAoc3RydWN0 IGdkYmFyY2ggKiwgc3RydWN0IGFnZW50X2V4cHIgKmF4LAogIAkJCSBzdHJ1Y3QgYXhzX3ZhbHVl ICp2YWx1ZSwgc3RydWN0IHN5bWJvbCAqdmFyKTsKLUBAIC0xMzYsMTUgKzEzNiwxNiBAQCBzdGF0 aWMgdm9pZCBnZW5fZGVyZWYgKHN0cnVjdCBhZ2VudF9leHByCitAQCAtMTM2LDE1ICsxMzYsMTYg QEAKICBzdGF0aWMgdm9pZCBnZW5fYWRkcmVzc19vZiAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3Ry dWN0IGF4c192YWx1ZSAqKTsKICBzdGF0aWMgdm9pZCBnZW5fYml0ZmllbGRfcmVmIChzdHJ1Y3Qg ZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICAgICAgc3RydWN0 IGF4c192YWx1ZSAqdmFsdWUsCkBAIC0xMTUxLDcgKzExNTEsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5jCiAgCQkJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUpOwog IHN0YXRpYyB2b2lkIGdlbl9zdHJ1Y3RfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1 Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICAgIHN0cnVjdCBheHNfdmFsdWUgKnZhbHVlLAotQEAg LTUzOSw3ICs1NDAsNyBAQCBnZW5fZmV0Y2ggKHN0cnVjdCBhZ2VudF9leHByICpheCwgc3RydWN0 CitAQCAtNTM4LDcgKzUzOSw3IEBACiAgICAgcmlnaHQgc2hpZnQgaXQgYnkgLURJU1RBTkNFIGJp dHMgaWYgRElTVEFOQ0UgPCAwLiAgVGhpcyBnZW5lcmF0ZXMKICAgICB1bnNpZ25lZCAobG9naWNh bCkgcmlnaHQgc2hpZnRzLiAgKi8KICBzdGF0aWMgdm9pZApAQCAtMTE2MCw3ICsxMTYwLDcgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZGIuYwogIHsKICAgIGlmIChkaXN0 YW5jZSA+IDApCiAgICAgIHsKLUBAIC01OTMsNyArNTk0LDcgQEAgZ2VuX2ZyYW1lX2xvY2Fsc19h ZGRyZXNzIChzdHJ1Y3QgZ2RiYXJjaAorQEAgLTU5Miw3ICs1OTMsNyBAQAogICAgIHByb2dyYW1t aW5nIGluIE1MLCBpdCB3b3VsZCBiZSBjbGVhcmVyIHdoeSB0aGVzZSBhcmUgdGhlIHNhbWUKICAg ICB0aGluZy4gICovCiAgc3RhdGljIHZvaWQKQEAgLTExNjksNyArMTE2OSw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJdCB3b3VsZCBzdWZm aWNlIHRvIHNpbXBseSBwdXNoIHRoZSBvZmZzZXQgYW5kIGFkZCBpdCwgYnV0IHRoaXMKICAgICAg IG1ha2VzIGl0IGVhc2llciB0byByZWFkIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBvZmZzZXRzIGlu IHRoZQotQEAgLTEyNDksNyArMTI1MCw3IEBAIGdlbl9hZGRyZXNzX29mIChzdHJ1Y3QgYWdlbnRf ZXhwciAqYXgsIHMKK0BAIC0xMjQ4LDcgKzEyNDksNyBAQAogIHN0YXRpYyB2b2lkCiAgZ2VuX2Jp dGZpZWxkX3JlZiAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgc3RydWN0IGFnZW50X2V4cHIgKmF4 LAogIAkJICBzdHJ1Y3QgYXhzX3ZhbHVlICp2YWx1ZSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0x MTc4LDcgKzExNzgsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2F4LWdkYi5j CiAgewogICAgLyogTm90ZSB0aGF0IG9wc1tpXSBmZXRjaGVzIDggPDwgaSBiaXRzLiAgKi8KICAg IHN0YXRpYyBlbnVtIGFnZW50X29wIG9wc1tdCi1AQCAtMTI4NCwxMyArMTI4NSwxMyBAQCBnZW5f Yml0ZmllbGRfcmVmIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwCitAQCAtMTI4MywxMyArMTI4NCwx MyBAQAogIAogICAgLyogVGhlIGZpcnN0IGFuZCBvbmUtYWZ0ZXItbGFzdCBiaXRzIGluIHRoZSBm aWVsZCwgYnV0IHJvdW5kZWQgZG93bgogICAgICAgYW5kIHVwIHRvIGJ5dGUgYm91bmRhcmllcy4g ICovCkBAIC0xMTk3LDcgKzExOTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2F4LWdkYi5jCiAgCiAgICAvKiBUaGUgaW5kZXggaW4gb3BzIG9mIHRoZSBvcGNvZGUgd2UncmUg Y29uc2lkZXJpbmcuICAqLwogICAgaW50IG9wOwotQEAgLTE0MDksNyArMTQxMCw3IEBAIGdlbl9i aXRmaWVsZF9yZWYgKHN0cnVjdCBleHByZXNzaW9uICpleHAKK0BAIC0xNDA4LDcgKzE0MDksNyBA QAogIHN0YXRpYyB2b2lkCiAgZ2VuX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwKICAJCSAgICAgc3RydWN0IGFnZW50X2V4cHIgKmF4LCBzdHJ1Y3QgYXhzX3ZhbHVlICp2 YWx1ZSwKQEAgLTEyMDYsNyArMTIwNiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvYXgtZ2RiLmMKICB7CiAgICAvKiBJcyB0aGlzIGEgYml0ZmllbGQ/ICAqLwogICAgaWYgKFRZ UEVfRklFTERfUEFDS0VEICh0eXBlLCBmaWVsZG5vKSkKLUBAIC0xNDM0LDcgKzE0MzUsNyBAQCBn ZW5fcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgZXhwcmVzc2lvbiAqCitAQCAtMTQzMyw3ICsxNDM0 LDcgQEAKICBzdGF0aWMgaW50CiAgZ2VuX3N0cnVjdF9yZWZfcmVjdXJzaXZlIChzdHJ1Y3QgZXhw cmVzc2lvbiAqZXhwLCBzdHJ1Y3QgYWdlbnRfZXhwciAqYXgsCiAgCQkJICBzdHJ1Y3QgYXhzX3Zh bHVlICp2YWx1ZSwKQEAgLTEyMTUsMTEgKzEyMTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9heC1nZGIuYwogIHsKICAgIGludCBpLCByc2x0OwogICAgaW50IG5iYXNlcyA9 IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2F4LWdlbmVyYWwuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC1nZW5l cmFsLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9heC1n ZW5lcmFsLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xODIzNTE0NTYgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjAxMzY0 NzQxICswMTAwCi1AQCAtMTkyLDcgKzE5Miw3IEBAIGF4X3plcm9fZXh0IChzdHJ1Y3QgYWdlbnRf ZXhwciAqeCwgaW50IG4KKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9heC1nZW5l cmFsLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjA1MTAxNzMgKzAyMDAKKysrKyBnZGItNy4xMS41 MC4yMDE2MDcxNi9nZGIvYXgtZ2VuZXJhbC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTI5NTMwMDQ0 ICswMjAwCitAQCAtMTk5LDcgKzE5OSw3IEBACiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sg aW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwogIHZvaWQKQEAgLTEy MjgsMTEgKzEyMjgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC1nZW5l cmFsLmMKICB7CiAgICAvKiBOIG11c3QgZml0IGluIGEgYnl0ZS4gICovCiAgICBpZiAobiA8IDAg fHwgbiA+IDI1NSkKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXguaAorSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9heC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvYXguaAkyMDE1LTExLTAyIDIxOjIzOjExLjE4MzM1MTQ2MyAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9heC5oCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjAxMzY0NzQxICswMTAwCi1AQCAtMjA3LDcgKzIwNyw3IEBAIGV4dGVybiB2b2lkIGF4X2V4 dCAoc3RydWN0IGFnZW50X2V4cHIgKkUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi9heC5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDYwNTEwMTczICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2F4LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mjk1MzAwNDQgKzAyMDAK K0BAIC0yMTAsNyArMjEwLDcgQEAKICBleHRlcm4gdm9pZCBheF96ZXJvX2V4dCAoc3RydWN0IGFn ZW50X2V4cHIgKkVYUFIsIGludCBOKTsKICAKICAvKiBBcHBlbmQgYSB0cmFjZV9xdWljayBpbnN0 cnVjdGlvbiB0byBFWFBSLCB0byByZWNvcmQgTiBieXRlcy4gICovCkBAIC0xMjQxLDExICsxMjQx LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYXguaAogIAogIC8qIEFwcGVu ZCBhIGdvdG8gb3AgdG8gRVhQUi4gIE9QIGlzIHRoZSBhY3R1YWwgb3AgKG11c3QgYmUgYW9wX2dv dG8gb3IKICAgICBhb3BfaWZfZ290bykuICBXZSBhc3N1bWUgd2UgZG9uJ3Qga25vdyB0aGUgdGFy Z2V0IG9mZnNldCB5ZXQsCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9p bnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9icmVha3BvaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9icmVha3BvaW50LmMJMjAx NS0xMS0wMiAyMToyMzoxMS4xODgzNTE0OTYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvYnJlYWtwb2ludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA1MzY0NzY3ICswMTAwCi1A QCAtMjIxNSw5ICsyMjE1LDkgQEAgc2hvdWxkX2JlX2luc2VydGVkIChzdHJ1Y3QgYnBfbG9jYXRp b24gKgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE2 LTA3LTE2IDE0OjMzOjQyLjA2NzUxMDIzMCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9icmVha3BvaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzE1MzAwNjAgKzAyMDAKK0BA IC0yMjUxLDkgKzIyNTEsOSBAQAogIAl7CiAgCSAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3Rk bG9nLAogIAkJCSAgICAgICJpbmZydW46IHN0ZXBwaW5nIHBhc3Qgbm9uLXN0ZXBwYWJsZSB3YXRj aHBvaW50LiAiCkBAIC0xMjU3LDcgKzEyNTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2JyZWFrcG9pbnQuYwogIAl9CiAgICAgICAgcmV0dXJuIDA7CiAgICAgIH0KLUBAIC03 MDUzLDcgKzcwNTMsNyBAQCBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2ggKHN0cnVjdCBhZGRyZXNz CitAQCAtNzE4MSw3ICs3MTgxLDcgQEAKICAKICBzdGF0aWMgaW50CiAgYnJlYWtwb2ludF9hZGRy ZXNzX21hdGNoX3JhbmdlIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqYXNwYWNlMSwgQ09SRV9BRERS IGFkZHIxLApAQCAtMTI2Niw3ICsxMjY2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9icmVha3BvaW50LmMKICAJCQkJQ09SRV9BRERSIGFkZHIyKQogIHsKICAgIHJldHVybiAo KGdkYmFyY2hfaGFzX2dsb2JhbF9icmVha3BvaW50cyAodGFyZ2V0X2dkYmFyY2ggKCkpCi1AQCAt MTEzODcsNyArMTEzODcsNyBAQCBjYW5fdXNlX2hhcmR3YXJlX3dhdGNocG9pbnQgKHN0cnVjdCB2 YWx1CitAQCAtMTE1MzQsNyArMTE1MzQsNyBAQAogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2dHlw ZSkgIT0gVFlQRV9DT0RFX0FSUkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0gdmFs dWVfYWRkcmVzcyAodik7CkBAIC0xMjc1LDExICsxMjc1LDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5jCiAgCQkgIGludCBudW1fcmVnczsKICAKICAJCSAg bGVuID0gKHRhcmdldF9leGFjdF93YXRjaHBvaW50cwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9icmVha3BvaW50LmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYnJl YWtwb2ludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv YnJlYWtwb2ludC5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkwMzUxNTA5ICswMTAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIw NjM2NDc3MyArMDEwMAotQEAgLTIzNyw3ICsyMzcsNyBAQCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8K Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9icmVha3BvaW50LmgJMjAxNi0wNy0x NiAxNDozMzo0Mi4wNjg1MTAyMzggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv YnJlYWtwb2ludC5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtMjM3 LDcgKzIzNyw3IEBACiAgCiAgICAvKiBJZiB0aGlzIGlzIGEgcmFuZ2VkIGJyZWFrcG9pbnQsIHRo ZW4gdGhpcyBmaWVsZCBjb250YWlucyB0aGUKICAgICAgIGxlbmd0aCBvZiB0aGUgcmFuZ2UgdGhh dCB3aWxsIGJlIHdhdGNoZWQgZm9yIGV4ZWN1dGlvbi4gICovCkBAIC0xMjg4LDcgKzEyODgsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2JyZWFrcG9pbnQuaAogIAogICAgLyog SWYgdGhlIGJyZWFrcG9pbnQgbGl2ZXMgaW4gbWVtb3J5IGFuZCByZWFkaW5nIHRoYXQgbWVtb3J5 IHdvdWxkCiAgICAgICBnaXZlIGJhY2sgdGhlIGJyZWFrcG9pbnQsIGluc3RlYWQgb2YgdGhlIG9y aWdpbmFsIGNvbnRlbnRzLCB0aGVuCi1AQCAtNDEzLDcgKzQxMyw3IEBAIHN0cnVjdCBicF9sb2Nh dGlvbgorQEAgLTQxMyw3ICs0MTMsNyBAQAogICAgLyogRm9yIGhhcmR3YXJlIHdhdGNocG9pbnRz LCB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHJlZ2lvbiBiZWluZwogICAgICAgd2F0Y2hlZC4gIEZv ciBoYXJkd2FyZSByYW5nZWQgYnJlYWtwb2ludHMsIHRoZSBzaXplIG9mIHRoZQogICAgICAgYnJl YWtwb2ludCByYW5nZS4gICovCkBAIC0xMjk3LDExICsxMjk3LDExIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvYnJlYWtwb2ludC5oCiAgCiAgICAvKiBUeXBlIG9mIGhhcmR3YXJl IHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB3YXRjaHBvaW50X3R5 cGU7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTAzNTE1 MDkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMDYzNjQ3NzMgKzAxMDAKLUBAIC0xODcsNyArMTg3LDcgQEAgY19wcmludGNo YXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgcworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2MtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDY5NTEwMjQ2ICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2MtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQu NTMyNTMwMDY4ICswMjAwCitAQCAtMTg2LDcgKzE4Niw3IEBACiAgCiAgdm9pZAogIGNfcHJpbnRz dHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTEzMTAs NyArMTMxMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMKICAJ ICAgIGNvbnN0IGNoYXIgKnVzZXJfZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJICAg IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUBAIC02NzYs NyArNjc2LDcgQEAgZXZhbHVhdGVfc3ViZXhwX2MgKHN0cnVjdCB0eXBlICpleHBlY3RfdAorQEAg LTY3NSw3ICs2NzUsNyBAQAogIAkgIH0KICAJZWxzZQogIAkgIHsKQEAgLTEzMTksNyArMTMxOSw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMKICAKICAJICAgIC8q IFdyaXRlIHRoZSB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIuICAqLwogIAkgICAgZm9yIChpID0gMDsg aSA8IFRZUEVfTEVOR1RIICh0eXBlKTsgKytpKQotQEAgLTY4NSw3ICs2ODUsNyBAQCBldmFsdWF0 ZV9zdWJleHBfYyAoc3RydWN0IHR5cGUgKmV4cGVjdF90CitAQCAtNjg0LDcgKzY4NCw3IEBACiAg CSAgICBpZiAoc2F0aXNmeV9leHBlY3RlZCkKICAJICAgICAgewogIAkJTE9OR0VTVCBsb3dfYm91 bmQsIGhpZ2hfYm91bmQ7CkBAIC0xMzI4LDExICsxMzI4LDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmMKICAKICAJCWlmIChnZXRfZGlzY3JldGVfYm91bmRzIChU WVBFX0lOREVYX1RZUEUgKGV4cGVjdF90eXBlKSwKICAJCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9i b3VuZCkgPCAwKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLWxhbmcuaAorSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLWxhbmcuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEu MTkxMzUxNTE1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2MtbGFuZy5oCTIw MTUtMTEtMDIgMjE6MjM6MTMuMjA2MzY0NzczICswMTAwCi1AQCAtNzQsNyArNzQsNyBAQCBleHRl cm4gdm9pZCBjX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvYy1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wNjk1MTAyNDYgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYy1sYW5nLmgJMjAxNi0wNy0xNiAxNDoz Mzo0NC41MzI1MzAwNjggKzAyMDAKK0BAIC03Nyw3ICs3Nyw3IEBACiAgCQkJICAgICBzdHJ1Y3Qg dWlfZmlsZSAqKTsKICAKICBleHRlcm4gdm9pZCBjX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKiwg Y29uc3QgZ2RiX2J5dGUgKiwKQEAgLTEzNDEsNyArMTM0MSw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJ CSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKik7Ci1AQCAtOTQsNyArOTQsNyBAQCBleHRlcm4gdm9pZCBjX3ByaW50Y2hhciAoaW50 LCBzdHJ1Y3QgdHlwCitAQCAtOTcsNyArOTcsNyBAQAogIGV4dGVybiB2b2lkIGNfcHJpbnRzdHIg KHN0cnVjdCB1aV9maWxlICogc3RyZWFtLAogIAkJCXN0cnVjdCB0eXBlICplbHR0eXBlLAogIAkJ CWNvbnN0IGdkYl9ieXRlICpzdHJpbmcsCkBAIC0xMzUwLDI4ICsxMzUwLDExIEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy1sYW5nLmgKICAJCQljb25zdCBjaGFyICp1c2VyX2Vu Y29kaW5nLAogIAkJCWludCBmb3JjZV9lbGxpcHNlcywKICAJCQljb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1AQCAtMTIwLDE0ICsxMjAsMTQgQEAgZXh0ZXJuIHZv aWQgY3BfcHJpbnRfY2xhc3NfbWVtYmVyIChjb25zdAotIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAq LCBjaGFyICopOwotIAotIGV4dGVybiB2b2lkIGNwX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0 IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLS0JCQkJICAgY29uc3QgZ2RiX2J5dGUgKiwgaW50LCBD T1JFX0FERFIsCi0rCQkJCSAgIGNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwK LSAJCQkJICAgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCQkgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKiwKLSAJCQkJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKiwKLSAJCQkJ ICAgc3RydWN0IHR5cGUgKiosIGludCk7Ci0gCi0gZXh0ZXJuIHZvaWQgY3BfcHJpbnRfdmFsdWVf ZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBlICosCi0tCQkJCQljb25zdCBnZGJfYnl0ZSAqLCBpbnQs IENPUkVfQUREUiwKLSsJCQkJCWNvbnN0IGdkYl9ieXRlICosIExPTkdFU1QsIENPUkVfQUREUiwK LSAJCQkJCXN0cnVjdCB1aV9maWxlICosIGludCwKLSAJCQkJCWNvbnN0IHN0cnVjdCB2YWx1ZSAq LAotIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKiwKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2MtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjE5MTM1MTUxNSAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHByaW50LmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMDczNjQ3ODAgKzAxMDAKLUBAIC0yNDIsNyArMjQyLDcgQEAgY192YWxfcHJp bnRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjbworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MDUxMDI1NCArMDIw MAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jLXZhbHByaW50LmMJMjAxNi0wNy0xNiAx NDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BAIC0yNDQsNyArMjQ0LDcgQEAKICAgIGlmIChUWVBF X0xFTkdUSCAodHlwZSkgPiAwICYmIFRZUEVfTEVOR1RIICh1bnJlc29sdmVkX2VsdHR5cGUpID4g MCkKICAgICAgewogICAgICAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOwpAQCAtMTM4 MCw3ICsxMzYzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHByaW50 LmMKICAgICAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUp OwogICAgICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVy IChnZGJhcmNoKTsKICAgICAgICB1bnNpZ25lZCBpbnQgaSA9IDA7CS8qIE51bWJlciBvZiBjaGFy YWN0ZXJzIHByaW50ZWQuICAqLwotQEAgLTMxNiw4ICszMTYsOCBAQCBjX3ZhbF9wcmludF9hcnJh eSAoc3RydWN0IHR5cGUgKnR5cGUsIGNvCitAQCAtMzE4LDggKzMxOCw4IEBACiAgCSAgaWYgKGNw X2lzX3Z0YmxfcHRyX3R5cGUgKGVsdHR5cGUpKQogIAkgICAgewogIAkgICAgICBpID0gMTsKQEAg LTEzOTEsNyArMTM3NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYy12YWxw cmludC5jCiAgCSAgICB9CiAgCSAgZWxzZQogIAkgICAgewotQEAgLTM5NCw3ICszOTQsNyBAQCBj X3ZhbF9wcmludF9zdHJ1Y3QgKHN0cnVjdCB0eXBlICp0eXBlLCBjCitAQCAtMzk2LDcgKzM5Niw3 IEBACiAgCSAtZnZ0YWJsZV90aHVua3MuICAoT3RoZXJ3aXNlLCBsb29rIHVuZGVyCiAgCSBUWVBF X0NPREVfUFRSLikgICovCiAgICAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlw ZV9hcmNoICh0eXBlKTsKQEAgLTE0MDAsNyArMTM4Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvYy12YWxwcmludC5jCiAgCQkgICAgKyBUWVBFX0ZJRUxEX0JJVFBPUyAodHlw ZSwKICAJCQkJCSBWVEJMX0ZOQUREUl9PRkZTRVQpIC8gOCk7CiAgICAgICAgc3RydWN0IHR5cGUg KmZpZWxkX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIFZUQkxfRk5BRERSX09GRlNFVCk7 Ci1AQCAtNDkzLDcgKzQ5Myw3IEBAIGNfdmFsX3ByaW50X21lbWJlcnB0ciAoc3RydWN0IHR5cGUg KnR5cGUKK0BAIC00OTUsNyArNDk1LDcgQEAKICAKICB2b2lkCiAgY192YWxfcHJpbnQgKHN0cnVj dCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTE0MDksMjkgKzEzOTIs MTggQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jLXZhbHByaW50LmMKICAJICAg ICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKQotQEAgLTU2NSw3ICs1NjUsOCBAQCBjX3ZhbHVlX3ByaW50IChz dHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0Ci0gCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJp bnRfb3B0aW9ucyAqb3B0aW9ucykKLSB7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJlYWxfdHlw ZSwgKnZhbF90eXBlOwotLSAgaW50IGZ1bGwsIHRvcCwgdXNpbmdfZW5jOwotKyAgaW50IGZ1bGws IHVzaW5nX2VuYzsKLSsgIExPTkdFU1QgdG9wOwotICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgb3B0cyA9ICpvcHRpb25zOwotIAotICAgb3B0cy5kZXJlZl9yZWYgPSAxOwotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9jcC1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL2NwLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTkyMzUxNTIyICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA3 MzY0NzgwICswMTAwCi1AQCAtNjQsMTIgKzY0LDEyIEBAIGlzX29wZXJhdG9yX25hbWUgKGNvbnN0 IGNoYXIgKm5hbWUpCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvY3AtYWJpLmMJ MjAxNi0wNy0xNiAxNDozMzo0Mi4wNzA1MTAyNTQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvY3AtYWJpLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41MzI1MzAwNjggKzAyMDAKK0BA IC02NCwxMiArNjQsMTIgQEAKICAgIHJldHVybiAoKmN1cnJlbnRfY3BfYWJpLmlzX29wZXJhdG9y X25hbWUpIChuYW1lKTsKICB9CiAgCiAtaW50CiArTE9OR0VTVAogIGJhc2VjbGFzc19vZmZzZXQg KHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgaW5kZXgsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAot LQkJICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCSAgTE9OR0VT VCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAorIAkJICBMT05HRVNUIGVtYmVk ZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCiAgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsKQogIHsKIC0gIGludCByZXMgPSAwOwpAQCAtMTQzOSw3ICsxNDExLDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuYwogIAogICAgZ2RiX2Fzc2VydCAoY3VycmVu dF9jcF9hYmkuYmFzZWNsYXNzX29mZnNldCAhPSBOVUxMKTsKICAKLUBAIC05Niw3ICs5Niw3IEBA IGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQKK0BAIC05Niw3ICs5Niw3 IEBACiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKiphcmcxcCwKICAJCQlzdHJ1Y3QgZm5fZmllbGQgKmYsIGludCBqLApAQCAtMTQ0OCwyMCAr MTQyMCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5jCiAgewog ICAgaWYgKChjdXJyZW50X2NwX2FiaS52aXJ0dWFsX2ZuX2ZpZWxkKSA9PSBOVUxMKQogICAgICBy ZXR1cm4gTlVMTDsKLUBAIC0xMDYsNyArMTA2LDcgQEAgdmFsdWVfdmlydHVhbF9mbl9maWVsZCAo c3RydWN0IHZhbHVlICoqYQotIAotIHN0cnVjdCB0eXBlICoKLSB2YWx1ZV9ydHRpX3R5cGUgKHN0 cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLAotLQkJIGludCAqdG9wLCBpbnQgKnVzaW5nX2VuYykK LSsJCSBMT05HRVNUICp0b3AsIGludCAqdXNpbmdfZW5jKQotIHsKLSAgIHN0cnVjdCB0eXBlICpy ZXQgPSBOVUxMOwotIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jcC1hYmkuaAor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcC1hYmkuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2NwLWFiaS5oCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMTkyMzUxNTIyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5o CTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA3MzY0NzgwICswMTAwCi1AQCAtMTA4LDcgKzEwOCw3IEBA IGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX3ZpcnR1YWxfZm5fZmkKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9jcC1hYmkuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MDUxMDI1 NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcC1hYmkuaAkyMDE2LTA3LTE2 IDE0OjMzOjQ0LjUzMjUzMDA2OCArMDIwMAorQEAgLTEwOCw3ICsxMDgsNyBAQAogIAkJCQkJICAg ICBzdHJ1Y3QgZm5fZmllbGQgKmYsCiAgCQkJCQkgICAgIGludCBqLAogIAkJCQkJICAgICBzdHJ1 Y3QgdHlwZSAqdHlwZSwKQEAgLTE0NzAsMjIgKzE0MzMsMTMgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9jcC1hYmkuaAogIAogIAogIC8qIFRyeSB0byBmaW5kIHRoZSBydW4tdGlt ZSB0eXBlIG9mIFZBTFVFLCB1c2luZyBDKysgcnVuLXRpbWUgdHlwZQotQEAgLTEzNSw3ICsxMzUs NyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFsX2ZuX2ZpCi0gICAgRlVMTCwg VE9QLCBhbmQgVVNJTkdfRU5DIGNhbiBlYWNoIGJlIHplcm8sIGluIHdoaWNoIGNhc2Ugd2UgZG9u J3QKLSAgICBwcm92aWRlIHRoZSBjb3JyZXNwb25kaW5nIHBpZWNlIG9mIGluZm9ybWF0aW9uLiAg Ki8KLSBleHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVlICp2 YWx1ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpmdWxsLCBp bnQgKnRvcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpmdWxs LCBMT05HRVNUICp0b3AsCi0gCQkJCSAgICAgaW50ICp1c2luZ19lbmMpOwotIAotIC8qIENvbXB1 dGUgdGhlIG9mZnNldCBvZiB0aGUgYmFzZWNsYXNzIHdoaWNoIGlzIHRoZSBJTkRFWHRoIGJhc2Vj bGFzcwotQEAgLTE0NCwxMSArMTQ0LDExIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0 aV90eXBlIChzdHIKK0BAIC0xNDQsMTEgKzE0NCwxMSBAQAogICAgIGNvbnRlbnRzIG9mIFZBTC4g IFRoZSByZXN1bHQgaXMgdGhlIG9mZnNldCBvZiB0aGUgYmFzZWNsYXNzIHZhbHVlCiAgICAgcmVs YXRpdmUgdG8gKHRoZSBhZGRyZXNzIG9mKShBUkcpICsgT0ZGU0VULiAgKi8KICAKIC1leHRlcm4g aW50IGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLAogLQkJCSAgICAgaW50IGlu ZGV4LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkgICAgIGludCBlbWJlZGRlZF9vZmZz ZXQsCistCQkJICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKIC0JCQkgICAgIENPUkVfQURE UiBhZGRyZXNzLAogLQkJCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwogK2V4dGVybiBM T05HRVNUIGJhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTQ5Niw0OCAr MTQ1MCwyOCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NwLWFiaS5oCiAgCiAg LyogRGVzY3JpYmUgdGhlIHRhcmdldCBvZiBhIHBvaW50ZXIgdG8gbWV0aG9kLiAgQ09OVEVOVFMg aXMgdGhlIGJ5dGUKICAgICBwYXR0ZXJuIHJlcHJlc2VudGluZyB0aGUgcG9pbnRlciB0byBtZXRo b2QuICBUWVBFIGlzIHRoZSBwb2ludGVyIHRvCi1AQCAtMjI3LDEyICsyMjcsMTMgQEAgc3RydWN0 IGNwX2FiaV9vcHMKK0BAIC0yMjcsMTIgKzIyNywxMiBAQAogICAgc3RydWN0IHZhbHVlICooKnZp cnR1YWxfZm5fZmllbGQpIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwKICAJCQkJICAgICBzdHJ1Y3Qg Zm5fZmllbGQgKiBmLAogIAkJCQkgICAgIGludCBqLCBzdHJ1Y3QgdHlwZSAqIHR5cGUsCiAtCQkJ CSAgICAgaW50IG9mZnNldCk7CiArCQkJCSAgICAgTE9OR0VTVCBvZmZzZXQpOwogICAgc3RydWN0 IHR5cGUgKigqcnR0aV90eXBlKSAoc3RydWN0IHZhbHVlICp2LCBpbnQgKmZ1bGwsCi0tCQkJICAg ICBpbnQgKnRvcCwgaW50ICp1c2luZ19lbmMpOworIAkJCSAgICAgTE9OR0VTVCAqdG9wLCBpbnQg KnVzaW5nX2VuYyk7CiAtICBpbnQgKCpiYXNlY2xhc3Nfb2Zmc2V0KSAoc3RydWN0IHR5cGUgKnR5 cGUsIGludCBpbmRleCwKLS0JCQkgICBjb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgaW50IGVtYmVk ZGVkX29mZnNldCwKKy0JCQkgICBjb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJl ZGRlZF9vZmZzZXQsCiAtCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsKTsKLSsJCQkgICAgIExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpOwogKyAgTE9O R0VTVCAoKmJhc2VjbGFzc19vZmZzZXQpIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGluZGV4LAot KwkJCSAgICAgICBjb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwKLSsJCQkgICAgICAgTE9OR0VTVCBl bWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJCSAgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCk7CisrCQkJICAgICAgIGNvbnN0IGJmZF9ieXRlICp2YWxhZGRyLCBMT05H RVNUIGVtYmVkZGVkX29mZnNldCwKKysJCQkgICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsKTsKICAgIHZvaWQgKCpwcmludF9tZXRob2RfcHRyKSAoY29uc3Qg Z2RiX2J5dGUgKmNvbnRlbnRzLAogIAkJCSAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgICAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2NwLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY3AtdmFscHJp bnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2NwLXZh bHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4xOTMzNTE1MjkgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvY3AtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIwODM2 NDc4NyArMDEwMAotQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIHZvaWQgY3BfcHJpbnRfc3RhdGlj X2ZpZWxkIChzdHJ1YwotIAkJCQkgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq KTsKLSAKLSBzdGF0aWMgdm9pZCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0 IHR5cGUgKiwKLS0JCQkgICAgY29uc3QgZ2RiX2J5dGUgKiwgaW50LAotKwkJCSAgICBjb25zdCBn ZGJfYnl0ZSAqLCBMT05HRVNULAotIAkJCSAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICos Ci0gCQkJICAgIGludCwgY29uc3Qgc3RydWN0IHZhbHVlICosCi0gCQkJICAgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICosCi1AQCAtMTU0LDcgKzE1NCw3IEBAIGNwX2lzX3Z0Ymxf bWVtYmVyIChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSAKLSB2b2lkCi0gY3BfcHJpbnRfdmFsdWVfZmll bGRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHR5cGUgKnJlYWxfdHlwZSwKLS0JCSAgICAg ICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IG9mZnNldCwKLSsJCSAgICAgICBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBvZmZzZXQsCi0gCQkgICAgICAgQ09SRV9BRERSIGFk ZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkgICAgICAgaW50IHJlY3Vyc2UsIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zLAotQEAgLTMzNCw3ICszMzQsNyBAQCBjcF9wcmludF92YWx1ZV9m aWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvY3AtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MTUxMDI2MiArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9jcC12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6 NDQuNTMyNTMwMDY4ICswMjAwCitAQCAtMzM0LDcgKzMzNCw3IEBACiAgCQl9CiAgCSAgICAgIGVs c2UgaWYgKGkgPT0gdnB0cl9maWVsZG5vICYmIHR5cGUgPT0gdnB0cl9iYXNldHlwZSkKICAJCXsK QEAgLTE1NDYsNTcgKzE0ODAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9j cC12YWxwcmludC5jCiAgCQkgIHN0cnVjdCB0eXBlICppX3R5cGUgPSBUWVBFX0ZJRUxEX1RZUEUg KHR5cGUsIGkpOwogIAogIAkJICBpZiAodmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cmVhbSwg aV90eXBlLCBpX29mZnNldCwgdmFsKSkKLUBAIC00MTcsNyArNDE3LDcgQEAgY3BfcHJpbnRfdmFs dWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQotIAotIHZvaWQKLSBjcF9wcmludF92YWx1ZV9m aWVsZHNfcnR0aSAoc3RydWN0IHR5cGUgKnR5cGUsCi0tCQkJICAgIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLCBpbnQgb2Zmc2V0LAotKwkJCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9O R0VTVCBvZmZzZXQsCi0gCQkJICAgIENPUkVfQUREUiBhZGRyZXNzLAotIAkJCSAgICBzdHJ1Y3Qg dWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVl ICp2YWwsCi1AQCAtNDM0LDcgKzQzNCw4IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChz dHJ1Y3QgdHlwZQotIAkJCQkgICAgIFRBUkdFVF9DSEFSX0JJVCAqIFRZUEVfTEVOR1RIICh0eXBl KSkpCi0gICAgIHsKLSAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlOwotLSAgICAgIGludCBmdWxs LCB0b3AsIHVzaW5nX2VuYzsKLSsgICAgICBpbnQgZnVsbCwgdXNpbmdfZW5jOwotKyAgICAgIExP TkdFU1QgdG9wOwotIAotICAgICAgIC8qIFVnaCwgd2UgaGF2ZSB0byBjb252ZXJ0IGJhY2sgdG8g YSB2YWx1ZSBoZXJlLiAgKi8KLSAgICAgICB2YWx1ZSA9IHZhbHVlX2Zyb21fY29udGVudHNfYW5k X2FkZHJlc3MgKHR5cGUsIHZhbGFkZHIgKyBvZmZzZXQsCi1AQCAtNDU5LDcgKzQ2MCw3IEBAIGNw X3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlwZQotIAotIHN0YXRpYyB2b2lkCi0g Y3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBl LAotLQkJY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBvZmZzZXQsCi0rCQljb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwgTE9OR0VTVCBvZmZzZXQsCi0gCQlDT1JFX0FERFIgYWRkcmVzcywgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwKLSAJCWludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKLSAJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAg LTQ2OSw3ICs0NzAsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVj Ci0gICAgID0gKHN0cnVjdCB0eXBlICoqKSBvYnN0YWNrX25leHRfZnJlZSAoJmRvbnRfcHJpbnRf dmJfb2JzdGFjayk7Ci0gICBzdHJ1Y3Qgb2JzdGFjayB0bXBfb2JzdGFjayA9IGRvbnRfcHJpbnRf dmJfb2JzdGFjazsKLSAgIGludCBpLCBuX2Jhc2VjbGFzc2VzID0gVFlQRV9OX0JBU0VDTEFTU0VT ICh0eXBlKTsKLS0gIGludCB0aGlzb2Zmc2V0OwotKyAgTE9OR0VTVCB0aGlzb2Zmc2V0OwotICAg c3RydWN0IHR5cGUgKnRoaXN0eXBlOwotIAotICAgaWYgKGRvbnRfcHJpbnRfdmIgPT0gMCkKLUBA IC00ODMsNyArNDg0LDcgQEAgY3BfcHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1 YwotIAotICAgZm9yIChpID0gMDsgaSA8IG5fYmFzZWNsYXNzZXM7IGkrKykKLSAgICAgewotLSAg ICAgIGludCBib2Zmc2V0ID0gMDsKLSsgICAgICBMT05HRVNUIGJvZmZzZXQgPSAwOwotICAgICAg IGludCBza2lwID0gMDsKLSAgICAgICBzdHJ1Y3QgdHlwZSAqYmFzZWNsYXNzID0gY2hlY2tfdHlw ZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKHR5cGUsIGkpKTsKLSAgICAgICBjb25zdCBjaGFyICpiYXNl bmFtZSA9IFRZUEVfTkFNRSAoYmFzZWNsYXNzKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZC1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZC1sYW5nLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kLWxhbmcuaAky MDE1LTExLTAyIDIxOjIzOjExLjE5MzM1MTUyOSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9kLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIwODM2NDc4NyArMDEwMAotQEAg LTgxLDcgKzgxLDcgQEAgZXh0ZXJuIHN0cnVjdCBibG9ja19zeW1ib2wgZF9sb29rdXBfbmVzdAor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDcxNTEwMjYyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2QtbGFu Zy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMzNTMwMDc2ICswMjAwCitAQCAtODEsNyArODEsNyBA QAogIC8qIERlZmluZWQgaW4gZC12YWxwcmludC5jICAqLwogIAogIGV4dGVybiB2b2lkIGRfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0x NjA1LDIwICsxNDkzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZC1sYW5n LmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0 IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2QtdmFscHJpbnQu YworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kLXZhbHByaW50LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9kLXZhbHByaW50LmMJMjAxNS0x MS0wMiAyMToyMzoxMS4xOTMzNTE1MjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZC12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA4MzY0Nzg3ICswMTAwCi1AQCAt MjksNyArMjksNyBAQAotIAotIHN0YXRpYyBpbnQKLSBkeW5hbWljX2FycmF5X3R5cGUgKHN0cnVj dCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgICBpbnQgZW1iZWRk ZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSsJCSAgICBMT05HRVNUIGVtYmVkZGVkX29m ZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwg aW50IHJlY3Vyc2UsCi0gCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gCQkgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1AQCAtNzMsOSArNzMsOSBA QCBkeW5hbWljX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLCBjCistLS0gZ2RiLTcuMTEu NTAuMjAxNjA3MTYub3JpZy9nZGIvZC12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDcx NTEwMjYyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2QtdmFscHJpbnQuYwky MDE2LTA3LTE2IDE0OjMzOjQ0LjUzMzUzMDA3NiArMDIwMAorQEAgLTczLDkgKzczLDkgQEAKICAK ICAvKiBJbXBsZW1lbnRzIHRoZSBsYV92YWxfcHJpbnQgcm91dGluZSBmb3IgbGFuZ3VhZ2UgRC4g ICovCiAgdm9pZApAQCAtMTYzMSwxMSArMTUxMCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2QtdmFscHJpbnQuYwogICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBpbnQgcmV0OwotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9kb3VibGVzdC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYv Z2RiL2RvdWJsZXN0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmln L2dkYi9kb3VibGVzdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMTk0MzUxNTM1ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2RvdWJsZXN0LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4y MDgzNjQ3ODcgKzAxMDAKLUBAIC03NjUsNyArNzY1LDcgQEAgZmxvYXRmb3JtYXRfZnJvbV9kb3Vi bGVzdCAoY29uc3Qgc3RydWN0CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZG91 Ymxlc3QuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA3MjUxMDI3MCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9kb3VibGVzdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTMzNTMwMDc2 ICswMjAwCitAQCAtNzg0LDcgKzc4NCw3IEBACiAgICAgYnV0IG5vdCBwYXNzZWQgb24gYnkgR0RC LiAgVGhpcyBzaG91bGQgYmUgZml4ZWQuICAqLwogIAogIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxv YXRmb3JtYXQgKgpAQCAtMTY0NCw3ICsxNTIzLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9kb3VibGVzdC5jCiAgewogICAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICpmb3Jt YXQ7CiAgCi1AQCAtNzkzLDggKzc5Myw4IEBAIGZsb2F0Zm9ybWF0X2Zyb21fbGVuZ3RoIChzdHJ1 Y3QgZ2RiYXJjaAorQEAgLTgxMiw4ICs4MTIsOCBAQAogICAgZWxzZQogICAgICBmb3JtYXQgPSBO VUxMOwogICAgaWYgKGZvcm1hdCA9PSBOVUxMKQpAQCAtMTY1NSwxMSArMTUzNCwxMSBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2RvdWJsZXN0LmMKICAgIHJldHVybiBmb3JtYXQ7 CiAgfQogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYworSW5k ZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9kd2FyZjJsb2MuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMTk3MzUxNTU1ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJm MmxvYy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjA5MzY0NzkzICswMTAwCi1AQCAtMTYzMiwxOSAr MTYzMiwxOSBAQCBpbnNlcnRfYml0cyAodW5zaWduZWQgaW50IGRhdHVtLAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDc2 NTEwMzAyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2R3YXJmMmxvYy5jCTIw MTYtMDctMTYgMTQ6MzM6NDQuNTMzNTMwMDc2ICswMjAwCitAQCAtMTYzOCwxOSArMTYzOCwxOSBA QAogICAgIEJJVFNfQklHX0VORElBTiBpcyB0YWtlbiBkaXJlY3RseSBmcm9tIGdkYmFyY2guICAq LwogIAogIHN0YXRpYyB2b2lkCkBAIC0xNjg1LDcgKzE1NjQsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgICBkZXN0X2F2YWlsID0gOCAtIGRlc3Rf b2Zmc2V0X2JpdHMgJSA4OwogIAotQEAgLTE2ODIsMTMgKzE2ODIsMTMgQEAgc3RhdGljIHZvaWQK K0BAIC0xNjg4LDEzICsxNjg4LDEzIEBACiAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1 ZSAqdikKICB7CiAgICBpbnQgaTsKQEAgLTE3MDEsNyArMTU4MCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKICAgIHNpemVfdCBidWZmZXJfc2l6ZSA9IDA7 CiAgICBnZGJfYnl0ZSAqYnVmZmVyID0gTlVMTDsKICAgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVw OwotQEAgLTE3MTUsOCArMTcxNSw4IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnYpCitAQCAtMTcyMSw4ICsxNzIxLDggQEAKICAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNl cyAmJiBvZmZzZXQgPCB0eXBlX2xlbjsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IGR3YXJm X2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTcxMiw3ICsxNTkxLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGNvbnN0IGdk Yl9ieXRlICppbnRlcm1lZGlhdGVfYnVmZmVyOwogIAogICAgICAgIC8qIENvbXB1dGUgc2l6ZSwg c291cmNlLCBhbmQgZGVzdGluYXRpb24gb2Zmc2V0cyBmb3IgY29weWluZywgaW4KLUBAIC0xODU2 LDEzICsxODU2LDEzIEBAIHN0YXRpYyB2b2lkCitAQCAtMTg2MiwxMyArMTg2MiwxMyBAQAogIHdy aXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQog IHsKICAgIGludCBpOwpAQCAtMTcyOCw3ICsxNjA3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogICAgc2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKICAgIGdk Yl9ieXRlICpidWZmZXIgPSBOVUxMOwogICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7Ci1AQCAt MTg5MCw4ICsxODkwLDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBz dAorQEAgLTE4OTYsOCArMTg5Niw4IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMg JiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKICAgICAgewogICAgICAgIHN0cnVjdCBkd2FyZl9l eHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKQEAgLTE3MzksMTggKzE2MTgsMTYgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9kd2FyZjJsb2MuYwogICAgICAgIGludCBuZWVk X2JpdHdpc2U7CiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZV9idWZmZXI7CiAgCi1AQCAt MjAxMCw4ICsyMDEwLDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBz dAotICAgIGEgc3ludGhldGljIHBvaW50ZXIuICAqLworQEAgLTIwMTcsNyArMjAxNyw3IEBACiAg CiAgc3RhdGljIGludAotLWNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWx1ZSwgaW50IGJpdF9vZmZzZXQsCisgY2hlY2tfcGllY2VkX3N5bnRoZXRp Y19wb2ludGVyIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIGJpdF9vZmZzZXQs CiAtCQkJCWludCBiaXRfbGVuZ3RoKQotK2NoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAo Y29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBiaXRfb2Zmc2V0LAogKwkJCQlMT05H RVNUIGJpdF9sZW5ndGgpCiAgewogICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKICAgICAgPSAo c3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodmFsdWUpOwot QEAgLTIwMjQsNyArMjAyNCw3IEBAIGNoZWNrX3BpZWNlZF9zeW50aGV0aWNfcG9pbnRlciAoY29u c3Qgc3QKK0BAIC0yMDMwLDcgKzIwMzAsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGll Y2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZf ZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzU5LDIwICsxNjM2LDE4IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9jLmMKICAKICAgICAgICBpZiAo Yml0X29mZnNldCA+IDApCiAgCXsKLUBAIC0yMDY2LDkgKzIwNjYsMTAgQEAgaW5kaXJlY3RfcGll Y2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbAorQEAgLTIxMzIsOCArMjEzMiw4IEBACiAgICBz dHJ1Y3QgdHlwZSAqdHlwZTsKICAgIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZTsKICAgIHN0cnVj dCBkd2FyZjJfbG9jZXhwcl9iYXRvbiBiYXRvbjsKLS0gIGludCBpLCBiaXRfb2Zmc2V0LCBiaXRf bGVuZ3RoOworLSAgaW50IGksIGJpdF9sZW5ndGg7CistICBMT05HRVNUIGJpdF9vZmZzZXQ7CiAr ICBpbnQgaTsKLSsgIExPTkdFU1QgYml0X2xlbmd0aDsKKysgIExPTkdFU1QgYml0X2xlbmd0aCwg Yml0X29mZnNldDsKICAgIHN0cnVjdCBkd2FyZl9leHByX3BpZWNlICpwaWVjZSA9IE5VTEw7Ci0t ICBMT05HRVNUIGJ5dGVfb2Zmc2V0OwotKyAgTE9OR0VTVCBieXRlX29mZnNldCwgYml0X29mZnNl dDsKKyAgIExPTkdFU1QgYnl0ZV9vZmZzZXQ7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRl cjsKLSAKLSAgIHR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICh2YWx1ZSkpOwotQEAg LTIwODMsNyArMjA4NCw3IEBAIGluZGlyZWN0X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2 YWwKK0BAIC0yMTUwLDcgKzIxNTAsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2Vz ICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhw cl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzgxLDcgKzE2NTYsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgICAgICAgaWYgKGJpdF9v ZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjM2Myw3ICsyMzY0LDcgQEAgZHdhcmYyX2V2YWx1YXRlX2xv Y19kZXNjX2Z1bGwgKHN0cnVjdCB0eQorQEAgLTI0NDQsNyArMjQ0NCw3IEBACiAgCSAgICBzdHJ1 Y3QgdmFsdWUgKnZhbHVlID0gZHdhcmZfZXhwcl9mZXRjaCAoY3R4LCAwKTsKICAJICAgIGdkYl9i eXRlICpjb250ZW50czsKICAJICAgIGNvbnN0IGdkYl9ieXRlICp2YWxfYnl0ZXM7CkBAIC0xNzkw LDExICsxNjY1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYybG9j LmMKICAKICAJICAgIGlmIChieXRlX29mZnNldCArIFRZUEVfTEVOR1RIICh0eXBlKSA+IG4pCiAg CSAgICAgIGludmFsaWRfc3ludGhldGljX3BvaW50ZXIgKCk7Ci1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmln L2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDQzNTE2MDEgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjE1MzY0ODMzICswMTAwCi1AQCAtMTkxNywxMiArMTkxNywxMiBAQCBkd2FyZjJfY29tcGxl eF9sb2NhdGlvbl9leHByX2NvbXBsYWludCAoCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvZHdhcmYycmVhZC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDgzNTEwMzU4ICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2R3YXJmMnJlYWQuYwkyMDE2LTA3LTE2IDE0OjMz OjQ0LjUzNjUzMDEwMCArMDIwMAorQEAgLTE5MzUsMTIgKzE5MzUsMTIgQEAKICB9CiAgCiAgc3Rh dGljIHZvaWQKQEAgLTE4MTEsNyArMTY4Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZHdhcmYycmVhZC5jCiAgfQogIAogIHN0YXRpYyB2b2lkCi1AQCAtMTI1NTQsOCArMTI1 NTQsOCBAQCBkd2FyZjJfYWRkX2ZpZWxkIChzdHJ1Y3QgZmllbGRfaW5mbyAqZmlwCitAQCAtMTI1 NzMsOCArMTI1NzMsOCBAQAogIAkgICAgICAgICBvYmplY3QsIGFuZCB0aGVuIHN1YnRyYWN0IG9m ZiB0aGUgbnVtYmVyIG9mIGJpdHMgb2YKICAJICAgICAgICAgdGhlIGZpZWxkIGl0c2VsZi4gIFRo ZSByZXN1bHQgaXMgdGhlIGJpdCBvZmZzZXQgb2YKICAJICAgICAgICAgdGhlIExTQiBvZiB0aGUg ZmllbGQuICAqLwpAQCAtMTgyMiwxMSArMTY5NywxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2R3YXJmMnJlYWQuYwogIAogIAkgICAgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRp ZSwgRFdfQVRfYnl0ZV9zaXplLCBjdSk7CiAgCSAgICAgIGlmIChhdHRyKQotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9ldmFsLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvZXZhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv ZXZhbC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA2MzUxNjE0ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIxNjM2NDgzOSArMDEw MAotQEAgLTMxNyw3ICszMTcsOCBAQCBldmFsdWF0ZV9zdHJ1Y3RfdHVwbGUgKHN0cnVjdCB2YWx1 ZSAqc3RyCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZXZhbC5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDg2NTEwMzgzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2V2YWwuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzNzUzMDEwOCArMDIwMAorQEAgLTMxNyw3ICsz MTcsOCBAQAogICAgd2hpbGUgKC0tbmFyZ3MgPj0gMCkKICAgICAgewogICAgICAgIHN0cnVjdCB2 YWx1ZSAqdmFsID0gTlVMTDsKQEAgLTE4MzYsNyArMTcxMSw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZXZhbC5jCiAgICAgICAgYmZkX2J5dGUgKmFkZHI7CiAgCiAgICAgICAg ZmllbGRubysrOwotQEAgLTM3OCw3ICszNzksNyBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVj dCB2YWx1ZSAqYXJyYXksCitAQCAtMzc4LDcgKzM3OSw3IEBACiAgCQkgICAgZW51bSBub3NpZGUg bm9zaWRlLCBMT05HRVNUIGxvd19ib3VuZCwgTE9OR0VTVCBoaWdoX2JvdW5kKQogIHsKICAgIExP TkdFU1QgaW5kZXg7CkBAIC0xODQ1LDcgKzE3MjAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2V2YWwuYwogIAogICAgaWYgKGV4cC0+ZWx0c1sqcG9zXS5vcGNvZGUgPT0gQklO T1BfQ09NTUEpCiAgICAgIHsKLUBAIC01MjYsMTEgKzUyNywxMSBAQCBiaW5vcF9wcm9tb3RlIChj b25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmCitAQCAtODIyLDExICs4MjMsMTEgQEAKICAgICAgLyog RklYTUU6IEFsc28gbWl4ZWQgaW50ZWdyYWwvYm9vbGVhbnMsIHdpdGggcmVzdWx0IGFuIGludGVn ZXIuICAqLwogICAgICB7CiAgICAgICAgY29uc3Qgc3RydWN0IGJ1aWx0aW5fdHlwZSAqYnVpbHRp biA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CkBAIC0xODYwLDcgKzE3MzUsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V2YWwuYwogICAgICAgIGludCB1bnNpZ25lZF9vcGVy YXRpb247CiAgCiAgICAgICAgLyogRGV0ZXJtaW5lIHR5cGUgbGVuZ3RoIGFuZCBzaWduZWRuZXNz IGFmdGVyIHByb21vdGlvbiBmb3IKLUBAIC03MTIsNyArNzEzLDcgQEAgZXZhbHVhdGVfc3ViZXhw X3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQorQEAgLTEwMDgsNyArMTAwOSw3IEBACiAgICBzdHJ1 Y3QgdmFsdWUgKiphcmd2ZWM7CiAgICBpbnQgY29kZTsKICAgIGludCBpeDsKQEAgLTE4NjksNyAr MTc0NCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCiAgICBzdHJ1 Y3QgdHlwZSAqKmFyZ190eXBlczsKICAgIGludCBzYXZlX3BvczE7CiAgICBzdHJ1Y3Qgc3ltYm9s ICpmdW5jdGlvbiA9IE5VTEw7Ci1AQCAtODkxLDcgKzg5Miw3IEBAIGV2YWx1YXRlX3N1YmV4cF9z dGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKK0BAIC0xMTg3LDcgKzExODgsNyBAQAogIAkgIHN0cnVj dCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFICh0eXBlKTsKICAJICBzdHJ1Y3Qg dHlwZSAqZWxlbWVudF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0 IHZhbHVlICphcnJheSA9IGFsbG9jYXRlX3ZhbHVlIChleHBlY3RfdHlwZSk7CkBAIC0xODc4LDIx ICsxNzUzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZXZhbC5jCiAgCSAg TE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIGluZGV4OwogIAogIAkgIGlmIChnZXRfZGlz Y3JldGVfYm91bmRzIChyYW5nZV90eXBlLCAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQot QEAgLTE5MDAsNyArMTkwMSw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5 cGUgKmUKLSAgICAgICB7Ci0gICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IHZhbHVlX3R5cGUg KGFyZzEpOwotICAgICAgICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKLS0gICAgICAgIGludCBm dWxsLCB0b3AsIHVzaW5nX2VuYzsKLSsgICAgICAgIGludCBmdWxsLCB1c2luZ19lbmM7Ci0rCUxP TkdFU1QgdG9wOwotIAlzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwotIAotIAlnZXRf dXNlcl9wcmludF9vcHRpb25zICgmb3B0cyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2YtbGFuZy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFuZy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZi1sYW5nLmMJMjAx NS0xMS0wMiAyMToyMzoxMS4yMDYzNTE2MTQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMTYzNjQ4MzkgKzAxMDAKLUBAIC0x MDMsNyArMTAzLDcgQEAgZl9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgcwor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMDg3NTEwMzkxICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2YtbGFu Zy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM3NTMwMTA4ICswMjAwCitAQCAtMTAzLDcgKzEwMyw3 IEBACiAgCiAgc3RhdGljIHZvaWQKICBmX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTE5MDEsMTEg KzE3NjYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuYwogIAkg ICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgY29u c3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGZfZ2V0X2VuY29kaW5nICh0eXBlKTsKLUluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvZi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIwNzM1MTYyMCArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIx NjM2NDgzOSArMDEwMAotQEAgLTMwLDcgKzMwLDcgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hh ciAqKTsJLyogRGVmaW5lZAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2YtbGFu Zy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg3NTEwMzkxICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2YtbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTM3NTMwMTA4ICswMjAw CitAQCAtMzAsNyArMzAsNyBAQAogIGV4dGVybiB2b2lkIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5 cGUgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBpbnQsIGNv bnN0IHN0cnVjdCB0eXBlX3ByaW50X29wdGlvbnMgKik7CiAgCkBAIC0xOTE0LDExICsxNzc5LDEx IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgKICAJCQkgc3RydWN0 IHVpX2ZpbGUgKiwgaW50LAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29uc3Qg c3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9mLXZh bHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9m LXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDczNTE2MjAgKzAxMDAKLSsrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjQ6MzQuMTA4 ODk3MDkwICswMTAwCi1AQCAtMzgsNyArMzgsNyBAQCBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9m X3ZhbHByaW50ICh2b2lkCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvZi12YWxw cmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDg3NTEwMzkxICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzNzUzMDEw OCArMDIwMAorQEAgLTM4LDcgKzM4LDcgQEAKICBzdGF0aWMgdm9pZCBpbmZvX2NvbW1vbl9jb21t YW5kIChjaGFyICosIGludCk7CiAgc3RhdGljIHZvaWQgZjc3X2dldF9keW5hbWljX2xlbmd0aF9v Zl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBlICopOwogIApAQCAtMTkyNyw3ICsxNzkyLDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLXZhbHByaW50LmMKICAKICAvKiBBcnJheSB3 aGljaCBob2xkcyBvZmZzZXRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IGEgcm93J3MgZWxlbWVudHMK ICAgICBmb3IgYSBnaXZlbiBhcnJheS4gIEFycmF5IGFsc28gaG9sZHMgdGhlIHNpemUgb2YgZWFj aCBzdWJhcnJheS4gICovCi1AQCAtNzMsOCArNzMsOCBAQCBmNzdfZ2V0X3VwcGVyYm91bmQgKHN0 cnVjdCB0eXBlICp0eXBlKQorQEAgLTczLDggKzczLDggQEAKICBzdGF0aWMgdm9pZAogIGY3N19n ZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CkBA IC0xOTM4LDcgKzE4MDMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFs cHJpbnQuYwogIAogICAgLyogUmVjdXJzaXZlbHkgZ28gYWxsIHRoZSB3YXkgZG93biBpbnRvIGEg cG9zc2libHkgbXVsdGktZGltZW5zaW9uYWwKICAgICAgIEY3NyBhcnJheSBhbmQgZ2V0IHRoZSBi b3VuZHMuICBGb3Igc2ltcGxlIGFycmF5cywgdGhpcyBpcyBwcmV0dHkKLUBAIC0xMDYsNyArMTA2 LDcgQEAgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cgorQEAgLTEwNiw3 ICsxMDYsNyBAQAogIHN0YXRpYyB2b2lkCiAgZjc3X3ByaW50X2FycmF5XzEgKGludCBuc3MsIGlu dCBuZGltZW5zaW9ucywgc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkgICBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwKQEAgLTE5NDcsNyArMTgxMiw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvZi12YWxwcmludC5jCiAgCQkgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVj dXJzZSwKICAJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMTE1LDcgKzExNSw3IEBAIGY3N19w cmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2kKK0BAIC0xMTUsNyArMTE1LDcgQEAK ICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlID0gVFlQRV9JTkRFWF9UWVBFIChjaGVja190eXBl ZGVmICh0eXBlKSk7CiAgICBDT1JFX0FERFIgYWRkciA9IGFkZHJlc3MgKyBlbWJlZGRlZF9vZmZz ZXQ7CiAgICBMT05HRVNUIGxvd2VyYm91bmQsIHVwcGVyYm91bmQ7CkBAIC0xOTU2LDcgKzE4MjEs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYwogIAogICAg Z2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd2VyYm91bmQsICZ1cHBlcmJvdW5k KTsKICAKLUBAIC0xNzgsNyArMTc4LDcgQEAgZjc3X3ByaW50X2FycmF5XzEgKGludCBuc3MsIGlu dCBuZGltZW5zaQorQEAgLTE3Miw3ICsxNzIsNyBAQAogIAogIHN0YXRpYyB2b2lkCiAgZjc3X3By aW50X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBA IC0xOTY1LDcgKzE4MzAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdmFs cHJpbnQuYwogIAkJIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAog IAkJIGludCByZWN1cnNlLAogIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTIxNSw4 ICsyMTUsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCitAQCAt MjExLDggKzIxMSw5IEBACiAgICAgZnVuY3Rpb247IHRoZXkgYXJlIGlkZW50aWNhbC4gICovCiAg CiAgdm9pZApAQCAtMTk3NywxMSArMTg0MiwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2YtdmFscHJpbnQuYwogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxf dmFsdWUsCiAgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CiAgewotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9maW5kdmFyLmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZmluZHZhci5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZmluZHZhci5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjA4 MzUxNjI3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZpbmR2YXIuYwkyMDE1 LTExLTAyIDIxOjIzOjEzLjIxNzM2NDg0NiArMDEwMAotQEAgLTgwMSw3ICs4MDEsNyBAQCBzdHJ1 Y3QgdmFsdWUgKgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2ZpbmR2YXIuYwky MDE2LTA3LTE2IDE0OjMzOjQyLjA4ODUxMDM5OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9maW5kdmFyLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzc1MzAxMDggKzAyMDAKK0BA IC04MDIsNyArODAyLDcgQEAKICBkZWZhdWx0X3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCByZWdudW0sIHN0cnVjdCBmcmFtZV9pZCBmcmFtZV9pZCkKICB7CkBAIC0x OTkwLDIxICsxODU1LDE2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZmluZHZh ci5jCiAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwogIAog ICAgVkFMVUVfTFZBTCAodmFsdWUpID0gbHZhbF9yZWdpc3RlcjsKLUBAIC04MzQsMTAgKzgzNCwx MCBAQCB2b2lkCi0gcmVhZF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1 ZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lKQotIHsKLSAgIHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLS0gIGludCBvZmZzZXQgPSAwOwotLSAgaW50 IHJlZ19vZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHZhbHVlKTsKLSsgIExPTkdFU1Qgb2Zmc2V0ID0g MDsKLSsgIExPTkdFU1QgcmVnX29mZnNldCA9IHZhbHVlX29mZnNldCAodmFsdWUpOworQEAgLTgz OCw3ICs4MzgsNyBAQAorICAgTE9OR0VTVCBvZmZzZXQgPSAwOworICAgTE9OR0VTVCByZWdfb2Zm c2V0ID0gdmFsdWVfb2Zmc2V0ICh2YWx1ZSk7CiAgICBpbnQgcmVnbnVtID0gVkFMVUVfUkVHTlVN ICh2YWx1ZSk7CiAtICBpbnQgbGVuID0gdHlwZV9sZW5ndGhfdW5pdHMgKGNoZWNrX3R5cGVkZWYg KHZhbHVlX3R5cGUgKHZhbHVlKSkpOwogKyAgTE9OR0VTVCBsZW4gPSB0eXBlX2xlbmd0aF91bml0 cyAoY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodmFsdWUpKSk7CiAgCiAgICBnZGJfYXNzZXJ0 IChWQUxVRV9MVkFMICh2YWx1ZSkgPT0gbHZhbF9yZWdpc3Rlcik7CiAgCi1AQCAtODUyLDcgKzg1 Miw3IEBAIHJlYWRfZnJhbWVfcmVnaXN0ZXJfdmFsdWUgKHN0cnVjdCB2YWx1ZQorQEAgLTg1Myw3 ICs4NTMsNyBAQAogICAgd2hpbGUgKGxlbiA+IDApCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFs dWUgKnJlZ3ZhbCA9IGdldF9mcmFtZV9yZWdpc3Rlcl92YWx1ZSAoZnJhbWUsIHJlZ251bSk7CkBA IC0yMDEzLDExICsxODczLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZmlu ZHZhci5jCiAgCiAgICAgICAgLyogSWYgdGhlIHJlZ2lzdGVyIGxlbmd0aCBpcyBsYXJnZXIgdGhh biB0aGUgbnVtYmVyIG9mIGJ5dGVzCiAgICAgICAgICAgcmVtYWluaW5nIHRvIGNvcHksIHRoZW4g b25seSBjb3B5IHRoZSBhcHByb3ByaWF0ZSBieXRlcy4gICovCi1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2ZyYW1lLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJh bWUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2ZyYW1l LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMDgzNTE2MjcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvZnJhbWUuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIxODM2NDg1MiArMDEwMAot QEAgLTEyNzIsNyArMTI3Miw3IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAoc3Ry dWN0IGYKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9mcmFtZS5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMDg5NTEwNDA3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L2ZyYW1lLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzg1MzAxMTYgKzAyMDAKK0BAIC0xMzIwLDcg KzEzMjAsNyBAQAogIAogIGludAogIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZy YW1lX2luZm8gKmZyYW1lLCBpbnQgcmVnbnVtLApAQCAtMjAyNiw3ICsxODg2LDcgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5jCiAgCQkJICBpbnQgKm9wdGltaXplZHAs IGludCAqdW5hdmFpbGFibGVwKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0 X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLUBAIC0xMzAxLDcgKzEzMDEsNyBAQCBnZXRfZnJhbWVfcmVn aXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pCitAQCAtMTM0OSw3ICsxMzQ5LDcgQEAKICAgICAg fQogICAgaWYgKGxlbiA+IG1heHNpemUpCiAgICAgIGVycm9yIChfKCJCYWQgZGVidWcgaW5mb3Jt YXRpb24gZGV0ZWN0ZWQ6ICIKQEAgLTIwMzUsMTEgKzE4OTUsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5jCiAgCiAgICAvKiBDb3B5IHRoZSBkYXRhLiAgKi8KICAg IHdoaWxlIChsZW4gPiAwKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5o CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2ZyYW1lLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9mcmFtZS5oCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMjA5MzUxNjM0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2ZyYW1lLmgJ MjAxNS0xMS0wMiAyMToyMzoxMy4yMTgzNjQ4NTIgKzAxMDAKLUBAIC01ODUsNyArNTg1LDcgQEAg ZXh0ZXJuIHZvaWQgcHV0X2ZyYW1lX3JlZ2lzdGVyIChzdHJ1Y3QgZgorLS0tIGdkYi03LjExLjUw LjIwMTYwNzE2Lm9yaWcvZ2RiL2ZyYW1lLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTA1MTA0MTUg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZnJhbWUuaAkyMDE2LTA3LTE2IDE0 OjMzOjQ0LjUzODUzMDExNiArMDIwMAorQEAgLTU4NSw3ICs1ODUsNyBAQAogICAgIGNvbnRlbnRz IGFyZSBvcHRpbWl6ZWQgb3V0IG9yIHVuYXZhaWxhYmxlLCBzZXQgKk9QVElNSVpFRFAsCiAgICAg KlVOQVZBSUxBQkxFUCBhY2NvcmRpbmdseS4gICovCiAgZXh0ZXJuIGludCBnZXRfZnJhbWVfcmVn aXN0ZXJfYnl0ZXMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKQEAgLTIw NDgsMTEgKzE5MDgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mcmFtZS5o CiAgCQkJCSAgICAgZ2RiX2J5dGUgKm15YWRkciwKICAJCQkJICAgICBpbnQgKm9wdGltaXplZHAs IGludCAqdW5hdmFpbGFibGVwKTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Z2RidHlwZXMuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9nZGJ0eXBlcy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ2RidHlwZXMuYwky MDE1LTExLTAyIDIxOjIzOjExLjIxMjM1MTY1MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIwMzY0ODY2ICswMTAwCi1A QCAtMjcxOSw3ICsyNzE5LDcgQEAgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUg KnR5cAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNi0w Ny0xNiAxNDozMzo0Mi4wOTI1MTA0MzEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvZ2RidHlwZXMuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUzOTUzMDEyNCArMDIwMAorQEAgLTI3 MjIsNyArMjcyMiw3IEBACiAgICAgbGVhc3QgYXMgbG9uZyBhcyBPQkpGSUxFLiAgKi8KICAKICBz dHJ1Y3QgdHlwZSAqCkBAIC0yMDYxLDcgKzE5MjEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL2dkYnR5cGVzLmMKICAJICAgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IG9iamZp bGUgKm9iamZpbGUpCiAgewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtMjk1OSw4ICsyOTU5 LDggQEAgaXNfcHVibGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgcworQEAgLTI5NjIs OCArMjk2Miw4IEBACiAgCiAgc3RhdGljIGludAogIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIg KHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLApAQCAtMjA3Miw3ICsxOTMy LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nZGJ0eXBlcy5jCiAgCQkJICAg Q09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAgIGludCBpLCBjb3Vu dCA9IDA7Ci1AQCAtMjk3MSw3ICsyOTcxLDcgQEAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAo c3RydWN0IHR5cGUgKgorQEAgLTI5NzQsNyArMjk3NCw3IEBACiAgICBmb3IgKGkgPSAwOyBpIDwg VFlQRV9OX0JBU0VDTEFTU0VTIChkY2xhc3MpICYmIGNvdW50IDwgMjsgKytpKQogICAgICB7CiAg ICAgICAgc3RydWN0IHR5cGUgKml0ZXI7CkBAIC0yMDgxLDcgKzE5NDEsNyBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmMKICAKICAgICAgICBpdGVyID0gY2hlY2tf dHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1MgKGRjbGFzcywgaSkpOwogIAotQEAgLTMwMTIsNyArMzAx Miw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0zMDE1 LDcgKzMwMTUsNyBAQAogIGludAogIGlzX3VuaXF1ZV9hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJh c2UsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKQEAgLTIwOTAsNyArMTk1MCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ2RidHlwZXMuYwogIAogICAgcmV0dXJuIGlzX3VuaXF1 ZV9hbmNlc3Rvcl93b3JrZXIgKGJhc2UsIHZhbHVlX3R5cGUgKHZhbCksICZvZmZzZXQsCiAgCQkJ CSAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKHZhbCksCi1AQCAtNDIwMCw3ICs0MjAw LDcgQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNDIwMyw3 ICs0MjAzLDcgQEAKICAgICAgICBicmVhazsKICAgICAgfQogICAgcHV0c19maWx0ZXJlZCAoIlxu Iik7CkBAIC0yMDk5LDQwICsxOTU5LDIwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZ2RidHlwZXMuYwogICAgaWYgKFRZUEVfT0JKRklMRV9PV05FRCAodHlwZSkpCiAgICAgIHsK ICAgICAgICBwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMsICJvYmpmaWxlICIpOwotQEAgLTQzMjgs OCArNDMyOCw4IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0eXBlICp0eXBlLAotIAkJ CSAgaWR4LCBwbG9uZ2VzdCAoVFlQRV9GSUVMRF9FTlVNVkFMICh0eXBlLCBpZHgpKSk7Ci0gICAg ICAgZWxzZQotIAlwcmludGZpX2ZpbHRlcmVkIChzcGFjZXMgKyAyLAotLQkJCSAgIlslZF0gYml0 cG9zICVkIGJpdHNpemUgJWQgdHlwZSAiLAotLQkJCSAgaWR4LCBUWVBFX0ZJRUxEX0JJVFBPUyAo dHlwZSwgaWR4KSwKLSsJCQkgICJbJWRdIGJpdHBvcyAlcyBiaXRzaXplICVkIHR5cGUgIiwKLSsJ CQkgIGlkeCwgcGxvbmdlc3QgKFRZUEVfRklFTERfQklUUE9TICh0eXBlLCBpZHgpKSwKLSAJCQkg IFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgaWR4KSk7Ci0gICAgICAgZ2RiX3ByaW50X2hvc3Rf YWRkcmVzcyAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpZHgpLCBnZGJfc3Rkb3V0KTsKLSAgICAg ICBwcmludGZfZmlsdGVyZWQgKCIgbmFtZSAnJXMnICgiLAotQEAgLTQ2NzEsNyArNDY3MSw3IEBA IGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCitAQCAtNDY2Myw3ICs0NjYzLDcg QEAKICAKICBzdHJ1Y3QgdHlwZSAqCiAgYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwKLS0JICAgZW51bSB0eXBlX2NvZGUgY29kZSwgaW50IGxlbmd0aCwgY2hhciAqbmFtZSkKLSsJ ICAgZW51bSB0eXBlX2NvZGUgY29kZSwgTE9OR0VTVCBsZW5ndGgsIGNoYXIgKm5hbWUpCistCSAg IGVudW0gdHlwZV9jb2RlIGNvZGUsIGludCBsZW5ndGgsIGNvbnN0IGNoYXIgKm5hbWUpCisrCSAg IGVudW0gdHlwZV9jb2RlIGNvZGUsIExPTkdFU1QgbGVuZ3RoLCBjb25zdCBjaGFyICpuYW1lKQog IHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9nZGJ0eXBlcy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5cGVz LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9nZGJ0eXBl cy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjEzMzUxNjYwICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjAzNjQ4NjYgKzAx MDAKLUBAIC01MTIsNyArNTEyLDcgQEAgdW5pb24gZmllbGRfbG9jYXRpb24KLSAgICAgIGdkYmFy Y2hfYml0c19iaWdfZW5kaWFuPTAgdGFyZ2V0cywgaXQgaXMgdGhlIGJpdCBvZmZzZXQgdG8KLSAg ICAgIHRoZSBMU0IuICAqLwotIAotLSAgaW50IGJpdHBvczsKLSsgIExPTkdFU1QgYml0cG9zOwot IAotICAgLyogKiBFbnVtIHZhbHVlLiAgKi8KLSAgIExPTkdFU1QgZW51bXZhbDsKLUBAIC04MjIs NyArODIyLDcgQEAgc3RydWN0IHR5cGUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dk Yi9nZGJ0eXBlcy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDkzNTEwNDM5ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dkYnR5cGVzLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1 MzAxMjQgKzAyMDAKK0BAIC04MDYsNyArODA2LDcgQEAKICAgICAgIHR5cGVfbGVuZ3RoX3VuaXRz IGZ1bmN0aW9uIHNob3VsZCBiZSB1c2VkIGluIG9yZGVyIHRvIGdldCB0aGUgbGVuZ3RoCiAgICAg ICBleHByZXNzZWQgaW4gdGFyZ2V0IGFkZHJlc3NhYmxlIG1lbW9yeSB1bml0cy4gICovCiAgCkBA IC0yMTQxLDcgKzE5ODEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dkYnR5 cGVzLmgKICAKICAgIC8qICogQ29yZSB0eXBlLCBzaGFyZWQgYnkgYSBncm91cCBvZiBxdWFsaWZp ZWQgdHlwZXMuICAqLwogIAotQEAgLTE3MTcsMTEgKzE3MTcsMTIgQEAgZXh0ZXJuIHVuc2lnbmVk IGludCB0eXBlX2xlbmd0aF91bml0cyAocworQEAgLTE2NzcsMTEgKzE2NzcsMTEgQEAKICAKICAv KiAqIEhlbHBlciBmdW5jdGlvbiB0byBjb25zdHJ1Y3Qgb2JqZmlsZS1vd25lZCB0eXBlcy4gICov CiAgCkBAIC0yMTUwLDE3ICsxOTkwLDE2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvZ2RidHlwZXMuaAogIAkJCSAgICAgICBzdHJ1Y3Qgb2JqZmlsZSAqKTsKICAKICAvKiBIZWxw ZXIgZnVuY3Rpb25zIHRvIGNvbnN0cnVjdCBhcmNoaXRlY3R1cmUtb3duZWQgdHlwZXMuICAqLwot LWV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5 cGVfY29kZSwgaW50LCBjaGFyICopOworLWV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVfY29kZSwgaW50LAogK2V4dGVybiBzdHJ1Y3QgdHlw ZSAqYXJjaF90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBlbnVtIHR5cGVfY29kZSwgTE9OR0VTVCwK LSsJCQkgICAgICAgY2hhciAqKTsKLSBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfaW50ZWdlcl90 eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKLSBleHRlcm4gc3RydWN0 IHR5cGUgKmFyY2hfY2hhcmFjdGVyX3R5cGUgKHN0cnVjdCBnZGJhcmNoICosIGludCwgaW50LCBj aGFyICopOwotIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYXJjaF9ib29sZWFuX3R5cGUgKHN0cnVjdCBn ZGJhcmNoICosIGludCwgaW50LCBjaGFyICopOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9nbnUtdjItYWJpLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5v cmlnL2dkYi9nbnUtdjItYWJpLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTMzNTE2NjAgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMTEtMDIgMjE6 MjM6MTMuMjIxMzY0ODcyICswMTAwCi1AQCAtODIsNyArODIsNyBAQCBnbnV2Ml9pc19vcGVyYXRv cl9uYW1lIChjb25zdCBjaGFyICpuYW1lCisgCQkJICAgICAgIGNvbnN0IGNoYXIgKik7CisgZXh0 ZXJuIHN0cnVjdCB0eXBlICphcmNoX2ludGVnZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50 LCBpbnQsCisgCQkJCSAgICAgICBjb25zdCBjaGFyICopOworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9nbnUtdjItYWJpLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9nbnUtdjItYWJpLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTM1MTA0Mzkg KzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ251LXYyLWFiaS5jCTIwMTYtMDct MTYgMTQ6MzM6NDQuNTM5NTMwMTI0ICswMjAwCitAQCAtODIsNyArODIsNyBAQAogICAgIFRZUEUg aXMgdGhlIHR5cGUgaW4gd2hpY2ggRiBpcyBsb2NhdGVkLiAgKi8KICBzdGF0aWMgc3RydWN0IHZh bHVlICoKICBnbnV2Ml92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3Ry dWN0IGZuX2ZpZWxkICogZiwgaW50IGosCkBAIC0yMTY5LDQwICsyMDA4LDI2IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCiAgewogICAgc3RydWN0IHZhbHVl ICphcmcxID0gKmFyZzFwOwogICAgc3RydWN0IHR5cGUgKnR5cGUxID0gY2hlY2tfdHlwZWRlZiAo dmFsdWVfdHlwZSAoYXJnMSkpOwotQEAgLTE4Myw3ICsxODMsOCBAQCBnbnV2Ml92aXJ0dWFsX2Zu X2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphCi0gCi0gCi0gc3RhdGljIHN0cnVjdCB0eXBlICoKLS1n bnV2Ml92YWx1ZV9ydHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAqdiwgaW50ICpmdWxsLCBpbnQgKnRv cCwgaW50ICp1c2luZ19lbmMpCi0rZ251djJfdmFsdWVfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUg KnYsIGludCAqZnVsbCwgTE9OR0VTVCAqdG9wLAotKwkJICAgICAgIGludCAqdXNpbmdfZW5jKQot IHsKLSAgIHN0cnVjdCB0eXBlICprbm93bl90eXBlOwotICAgc3RydWN0IHR5cGUgKnJ0dGlfdHlw ZTsKLUBAIC0zMzgsOSArMzM5LDkgQEAgdmJfbWF0Y2ggKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQg aW5kZXgsCitAQCAtMzM4LDcgKzMzOCw3IEBACiAgICAgdGFyZ2V0KS4gIFRoZSByZXN1bHQgaXMg dGhlIG9mZnNldCBvZiB0aGUgYmFzZWNsYXNzIHZhbHVlIHJlbGF0aXZlCiAgICAgdG8gKHRoZSBh ZGRyZXNzIG9mKShBUkcpICsgT0ZGU0VULiAgKi8KICAKIC1zdGF0aWMgaW50CiArc3RhdGljIExP TkdFU1QKICBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGlu ZGV4LAotLQkJCWNvbnN0IGJmZF9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAot KwkJCWNvbnN0IGJmZF9ieXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJ CQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCiAgCQkJ Q09SRV9BRERSIGFkZHJlc3MsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIHN0cnVj dCB0eXBlICpiYXNldHlwZSA9IFRZUEVfQkFTRUNMQVNTICh0eXBlLCBpbmRleCk7Ci1AQCAtMzU4 LDggKzM1OSw4IEBAIGdudXYyX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKK0BA IC0zNTgsOCArMzU4LDcgQEAKICAJICBpZiAodmJfbWF0Y2ggKHR5cGUsIGksIGJhc2V0eXBlKSkK ICAJICAgIHsKICAJICAgICAgc3RydWN0IHR5cGUgKmZpZWxkX3R5cGU7Ci0tCSAgICAgIGludCBm aWVsZF9vZmZzZXQ7CistCSAgICAgIExPTkdFU1QgZmllbGRfb2Zmc2V0OwogLQkgICAgICBpbnQg ZmllbGRfbGVuZ3RoOwotKwkgICAgICBMT05HRVNUIGZpZWxkX29mZnNldDsKLSsJICAgICAgTE9O R0VTVCBmaWVsZF9sZW5ndGg7CisrCSAgICAgIExPTkdFU1QgZmllbGRfb2Zmc2V0LCBmaWVsZF9s ZW5ndGg7CiAgCSAgICAgIENPUkVfQUREUiBhZGRyOwogIAogIAkgICAgICBmaWVsZF90eXBlID0g Y2hlY2tfdHlwZWRlZiAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpKSk7Ci1AQCAtMzgzLDcgKzM4 NCw3IEBAIGdudXYyX2Jhc2VjbGFzc19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXAKK0BAIC0zODMs NyArMzgyLDcgQEAKICAJICAvKiBEb24ndCBnbyB0aHJvdWdoIGJhc2VjbGFzc19vZmZzZXQsIGFz IHRoYXQgd3JhcHMKICAJICAgICBleGNlcHRpb25zLCB0aHVzLCBpbm5lciBleGNlcHRpb25zIHdv dWxkIGJlIHdyYXBwZWQgbW9yZQogIAkgICAgIHRoYW4gb25jZS4gICovCkBAIC0yMjExLDExICsy MDM2LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYyLWFiaS5jCiAg CSAgICBnbnV2Ml9iYXNlY2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAg ZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv Z251LXYzLWFiaS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvZ251LXYzLWFiaS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE0MzUxNjY3ICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12My1hYmkuYwkyMDE1LTExLTAyIDIxOjIzOjEz LjIyMTM2NDg3MiArMDEwMAotQEAgLTEwOCw3ICsxMDgsNyBAQCBidWlsZF9nZGJfdnRhYmxlX3R5 cGUgKHN0cnVjdCBnZGJhcmNoICphCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv Z251LXYzLWFiaS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk0NTEwNDQ3ICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dudS12My1hYmkuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjUz OTUzMDEyNCArMDIwMAorQEAgLTEwOCw3ICsxMDgsNyBAQAogIHsKICAgIHN0cnVjdCB0eXBlICp0 OwogICAgc3RydWN0IGZpZWxkICpmaWVsZF9saXN0LCAqZmllbGQ7CkBAIC0yMjI0LDcgKzIwNDks NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2dudS12My1hYmkuYwogIAogICAg c3RydWN0IHR5cGUgKnZvaWRfcHRyX3R5cGUKICAgICAgPSBidWlsdGluX3R5cGUgKGFyY2gpLT5i dWlsdGluX2RhdGFfcHRyOwotQEAgLTE4NCw3ICsxODQsNyBAQCB2dGFibGVfcHRyZGlmZl90eXBl IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCitAQCAtMTg0LDcgKzE4NCw3IEBACiAgLyogUmV0dXJuIHRo ZSBvZmZzZXQgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGltYWdpbmFyeSBgc3RydWN0CiAgICAgZ2Ri X2dudV92M19hYmlfdnRhYmxlJyBvYmplY3QgdG8gdGhlIHZ0YWJsZSdzICJhZGRyZXNzIHBvaW50 IgogICAgIChpLmUuLCB3aGVyZSBvYmplY3RzJyB2aXJ0dWFsIHRhYmxlIHBvaW50ZXJzIHBvaW50 KS4gICovCkBAIC0yMjMzLDE2ICsyMDU4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9nbnUtdjMtYWJpLmMKICB2dGFibGVfYWRkcmVzc19wb2ludF9vZmZzZXQgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoKQogIHsKICAgIHN0cnVjdCB0eXBlICp2dGFibGVfdHlwZQotQEAgLTI4 Niw3ICsyODYsNyBAQCBnbnV2M19nZXRfdnRhYmxlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCi0g Ci0gc3RhdGljIHN0cnVjdCB0eXBlICoKLSBnbnV2M19ydHRpX3R5cGUgKHN0cnVjdCB2YWx1ZSAq dmFsdWUsCi0tICAgICAgICAgICAgICAgICBpbnQgKmZ1bGxfcCwgaW50ICp0b3BfcCwgaW50ICp1 c2luZ19lbmNfcCkKLSsgICAgICAgICAgICAgICAgIGludCAqZnVsbF9wLCBMT05HRVNUICp0b3Bf cCwgaW50ICp1c2luZ19lbmNfcCkKLSB7Ci0gICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKLSAg IHN0cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZh bHVlKSk7Ci1AQCAtNDExLDcgKzQxMSw3IEBAIGdudXYzX2dldF92aXJ0dWFsX2ZuIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2QKK0BAIC00MTEsNyArNDExLDcgQEAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoK ICBnbnV2M192aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKip2YWx1ZV9wLAogICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmbl9maWVsZCAqZiwgaW50IGosCkBAIC0yMjUxLDE4 ICsyMDY3LDE2IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5j CiAgewogICAgc3RydWN0IHR5cGUgKnZhbHVlc190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAoKnZhbHVlX3ApKTsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoOwotQEAgLTQ0MSwx NiArNDQxLDE2IEBAIGdudXYzX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKnYKK0BA IC00NDEsNyArNDQxLDcgQEAKICAKICAgICAtMSBpcyByZXR1cm5lZCBvbiBlcnJvci4gICovCiAg CiAtc3RhdGljIGludAogK3N0YXRpYyBMT05HRVNUCiAgZ251djNfYmFzZWNsYXNzX29mZnNldCAo c3RydWN0IHR5cGUgKnR5cGUsIGludCBpbmRleCwKLS0JCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRk ciwgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQljb25zdCBiZmRfYnl0ZSAqdmFsYWRkciwgTE9O R0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgCQkJY29uc3QgYmZkX2J5dGUgKnZhbGFkZHIsIExPTkdF U1QgZW1iZWRkZWRfb2Zmc2V0LAogIAkJCUNPUkVfQUREUiBhZGRyZXNzLCBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCkKLSB7Ci0gICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKK0BAIC00NTAsNyAr NDUwLDcgQEAKICAgIHN0cnVjdCB0eXBlICpwdHJfdHlwZTsKICAgIHN0cnVjdCB2YWx1ZSAqdnRh YmxlOwogICAgc3RydWN0IHZhbHVlICp2YmFzZV9hcnJheTsKQEAgLTIyNzEsNyArMjA4NSw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ251LXYzLWFiaS5jCiAgCiAgICAvKiBE ZXRlcm1pbmUgYXJjaGl0ZWN0dXJlLiAgKi8KICAgIGdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0 eXBlKTsKLUBAIC00NzQsNyArNDc0LDcgQEAgZ251djNfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0 IHR5cGUgKnR5cAorQEAgLTQ3NCw3ICs0NzQsNyBAQAogICAgY3VyX2Jhc2Vfb2Zmc2V0ID0gY3Vy X2Jhc2Vfb2Zmc2V0ICsgdnRhYmxlX2FkZHJlc3NfcG9pbnRfb2Zmc2V0IChnZGJhcmNoKTsKICAg IGlmICgoLSBjdXJfYmFzZV9vZmZzZXQpICUgVFlQRV9MRU5HVEggKHB0cl90eXBlKSAhPSAwKQog ICAgICBlcnJvciAoXygiTWlzYWxpZ25lZCB2YmFzZSBvZmZzZXQuIikpOwpAQCAtMjI4MCw3ICsy MDk0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUtdjMtYWJpLmMKICAK ICAgIHZ0YWJsZSA9IGdudXYzX2dldF92dGFibGUgKGdkYmFyY2gsIHR5cGUsIGFkZHJlc3MgKyBl bWJlZGRlZF9vZmZzZXQpOwogICAgZ2RiX2Fzc2VydCAodnRhYmxlICE9IE5VTEwpOwotQEAgLTUx OCw3ICs1MTgsNyBAQCBnbnV2M19maW5kX21ldGhvZF9pbiAoc3RydWN0IHR5cGUgKmRvbWFpCitA QCAtNTE4LDcgKzUxOCw3IEBACiAgICAgICB3ZSdyZSBvdXQgb2YgbHVjay4gICovCiAgICBmb3Ig KGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkb21haW4pOyBpKyspCiAgICAgIHsKQEAg LTIyODksMTEgKzIxMDMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9nbnUt djMtYWJpLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGU7CiAgCiAgICAgICAgaWYgKEJB U0VUWVBFX1ZJQV9WSVJUVUFMIChkb21haW4sIGkpKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9nby1sYW5nLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ28tbGFu Zy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvZ28tbGFu Zy5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE0MzUxNjY3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2dvLWxhbmcuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMTM2NDg3MiArMDEw MAotQEAgLTg1LDcgKzg1LDcgQEAgZXh0ZXJuIHZvaWQgZ29fcHJpbnRfdHlwZSAoc3RydWN0IHR5 cGUgKgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE2LTA3 LTE2IDE0OjMzOjQyLjA5NDUxMDQ0NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9nby1sYW5nLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC04NSw3 ICs4NSw3IEBACiAgLyogRGVmaW5lZCBpbiBnby12YWxwcmludC5jLiAgKi8KICAKICBleHRlcm4g dm9pZCBnb192YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKQEAgLTIzMDIsMjAgKzIxMTYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9nby1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNl LAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL2dvLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvZ28tdmFs cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2dv LXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTQzNTE2NjcgKzAxMDAKLSsrKyBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvZ28tdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIy MjM2NDg3OSArMDEwMAotQEAgLTM3LDcgKzM3LDcgQEAKLSAKLSBzdGF0aWMgdm9pZAotIHByaW50 X2dvX3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAot LQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJIExPTkdFU1Qg ZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSAJCSBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSBj b25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUBAIC04Niw5ICs4Niw5 IEBAIHByaW50X2dvX3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnMKKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIu MDk0NTEwNDQ3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2dvLXZhbHByaW50 LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41Mzk1MzAxMjQgKzAyMDAKK0BAIC04Niw5ICs4Niw5IEBA CiAgLyogSW1wbGVtZW50cyB0aGUgbGFfdmFsX3ByaW50IHJvdXRpbmUgZm9yIGxhbmd1YWdlIEdv LiAgKi8KICAKICB2b2lkCkBAIC0yMzI4LDExICsyMTMzLDExIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvZ28tdmFscHJpbnQuYwogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlw ZSk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9qdi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE1MTAyNy5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTUz NTE2NzMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtbGFuZy5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjIyMzY0ODc5ICswMTAwCi1AQCAtNDQwLDcgKzQ0MCw3IEBAIGphdmFf bGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTQ1MTA0NDcgKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtbGFuZy5jCTIwMTYtMDctMTYgMTQ6 MzM6NDQuNTQwNTMwMTMyICswMjAwCitAQCAtNDQwLDcgKzQ0MCw3IEBACiAgICBmb3IgKGkgPSBU WVBFX05fQkFTRUNMQVNTRVMgKHR5cGUpOyBpIDwgbmZpZWxkczsgaSsrKQogICAgICB7CiAgICAg ICAgaW50IGFjY2ZsYWdzOwpAQCAtMjM0MSw3ICsyMTQ2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9qdi1sYW5nLmMKICAKICAgICAgICBpZiAoZmllbGRzID09IE5VTEwpCiAg CXsKLUBAIC04OTAsNyArODkwLDcgQEAgamF2YV9wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlw ZSAqdHlwZQorQEAgLTg5MCw3ICs4OTAsNyBAQAogIHN0YXRpYyB2b2lkCiAgamF2YV9wcmludHN0 ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCiAgCSAgICAgICBj b25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAtMjM1MCwxMSArMjE1NSwxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcuYwogIAkgICAgICAgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNv ZGluZyA9IGphdmFfZ2V0X2VuY29kaW5nICh0eXBlKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvanYtbGFuZy5oCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2p2LWxh bmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2p2LWxh bmcuaAkyMDE1LTExLTAyIDIxOjIzOjExLjIxNTM1MTY3MyArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9qdi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjIzNjQ4NzkgKzAx MDAKLUBAIC00Myw4ICs0Myw4IEBAIHN0cnVjdCBidWlsdGluX2phdmFfdHlwZQorLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5 NDUxMDQ0NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9qdi1sYW5nLmgJMjAx Ni0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC00Myw4ICs0Myw4IEBACiAgCiAg ZXh0ZXJuIGNvbnN0IHN0cnVjdCBidWlsdGluX2phdmFfdHlwZSAqYnVpbHRpbl9qYXZhX3R5cGUg KHN0cnVjdCBnZGJhcmNoICopOwogIApAQCAtMjM2NSwyMCArMjE3MCwxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LWxhbmcuaAogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKiwKICAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7CiAgCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LXZhbHByaW50LmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvanYtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyMzox MS4yMTUzNTE2NzMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvanYtdmFscHJp bnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMjM2NDg3OSArMDEwMAotQEAgLTI2Niw3ICsyNjYs NyBAQCBqYXZhX3ZhbHVlX3ByaW50IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RyCi0gCi0gc3RhdGlj IHZvaWQKLSBqYXZhX3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCSBpbnQgb2Zmc2V0LAotKwkJCSBMT05HRVNUIG9mZnNl dCwKLSAJCQkgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkJ IGludCByZWN1cnNlLAotIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLUBAIC00NTQsNyAr NDU0LDcgQEAgamF2YV9wcmludF92YWx1ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eQorLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2p2LXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDoz Mzo0Mi4wOTU1MTA0NTUgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvanYtdmFs cHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEzMiArMDIwMAorQEAgLTQ1NCw3ICs0 NTQsNyBAQAogIAogIHZvaWQKICBqYXZhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNv bnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjM4NywxMSArMjE4MywxMSBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2p2LXZhbHByaW50LmMKICAJCXN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAogIAkJY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQljb25z dCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2UuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9sYW5ndWFnZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9n ZGIvbGFuZ3VhZ2UuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNjM1MTY4MCArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5ndWFnZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjIz MzY0ODg1ICswMTAwCi1AQCAtNzM5LDcgKzczOSw3IEBAIHVua19sYW5nX3ByaW50Y2hhciAoaW50 IGMsIHN0cnVjdCB0eXBlICoKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9sYW5n dWFnZS5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk1NTEwNDU1ICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL2xhbmd1YWdlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIg KzAyMDAKK0BAIC03NjYsNyArNzY2LDcgQEAKICAKICBzdGF0aWMgdm9pZAogIHVua19sYW5nX3By aW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTI0 MDAsNyArMjE5Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3VhZ2Uu YwogIAkJICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCSAg IGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKLUBAIC03NTgs NyArNzU4LDcgQEAgdW5rX2xhbmdfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAt Nzg1LDcgKzc4NSw3IEBACiAgCiAgc3RhdGljIHZvaWQKICB1bmtfbGFuZ192YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI0MDksMTEgKzIy MDUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5ndWFnZS5jCiAgCQkg ICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICAgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwsCiAgCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmgKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0xMS0wMiAyMToy MzoxMS4yMTYzNTE2ODAgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbGFuZ3Vh Z2UuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAotQEAgLTE4OSw3ICsxODks NyBAQCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcv Z2RiL2xhbmd1YWdlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTU1MTA0NTUgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbGFuZ3VhZ2UuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0 MDUzMDEzMiArMDIwMAorQEAgLTE5Niw3ICsxOTYsNyBAQAogIAkJCSAgc3RydWN0IHVpX2ZpbGUg KiBzdHJlYW0pOwogIAogICAgICB2b2lkICgqbGFfcHJpbnRzdHIpIChzdHJ1Y3QgdWlfZmlsZSAq IHN0cmVhbSwgc3RydWN0IHR5cGUgKmVsdHR5cGUsCkBAIC0yNDIyLDcgKzIyMTgsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2xhbmd1YWdlLmgKICAJCQkgY29uc3QgY2hhciAq ZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3By aW50X29wdGlvbnMgKik7CiAgCi1AQCAtMjMxLDcgKzIzMSw3IEBAIHN0cnVjdCBsYW5ndWFnZV9k ZWZuCitAQCAtMjM4LDcgKzIzOCw3IEBACiAgCiAgICAgIHZvaWQgKCpsYV92YWxfcHJpbnQpIChz dHJ1Y3QgdHlwZSAqdHlwZSwKICAJCQkgIGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKQEAgLTI0 MzEsMTEgKzIyMjcsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9sYW5ndWFn ZS5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5n LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbTItbGFuZy5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbTItbGFuZy5jCTIwMTUtMTEtMDIg MjE6MjM6MTEuMjE3MzUxNjg2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20y LWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyMzM2NDg4NSArMDEwMAotQEAgLTEwNCwxMCAr MTA0LDEwIEBAIG0yX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLAorLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL20yLWxhbmcuYwkyMDE2LTA3LTE2IDE0OjMzOjQy LjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi1sYW5nLmMJ MjAxNi0wNy0xNiAxNDozMzo0NC41NDA1MzAxMzIgKzAyMDAKK0BAIC0xMDQsMTAgKzEwNCwxMCBA QAogIAogIHN0YXRpYyB2b2lkCiAgbTJfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0s IHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqc3RyaW5nLApAQCAtMjQ0OCw3ICsy MjQ0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmMKICAgIHVu c2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CiAgICBpbnQgaW5fcXVvdGVzID0gMDsKICAg IGludCBuZWVkX2NvbW1hID0gMDsKLUBAIC0xMjIsOSArMTIyLDkgQEAgbTJfcHJpbnRzdHIgKHN0 cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cgorQEAgLTEyMiw5ICsxMjIsOSBAQAogICAgICB7CiAg ICAgICAgLyogUG9zaXRpb24gb2YgdGhlIGNoYXJhY3RlciB3ZSBhcmUgZXhhbWluaW5nCiAgICAg ICAgICAgdG8gc2VlIHdoZXRoZXIgaXQgaXMgcmVwZWF0ZWQuICAqLwpAQCAtMjQ2MCw3ICsyMjU2 LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmMKICAKICAgICAg ICBRVUlUOwogIAotQEAgLTE1MCw3ICsxNTAsNyBAQCBtMl9wcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3RyCitAQCAtMTUwLDcgKzE1MCw3IEBACiAgCSAgICAgIGluX3F1b3RlcyA9 IDA7CiAgCSAgICB9CiAgCSAgbTJfcHJpbnRjaGFyIChzdHJpbmdbaV0sIHR5cGUsIHN0cmVhbSk7 CkBAIC0yNDY5LDExICsyMjY1LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv bTItbGFuZy5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlv bnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9tMi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9tMi1sYW5nLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTczNTE2ODYgKzAxMDAK LSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbTItbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjIzMzY0ODg1ICswMTAwCi1AQCAtMzQsNyArMzQsNyBAQCBleHRlcm4gdm9pZCBtMl9wcmlu dF90eXBlZGVmIChzdHJ1Y3QgdHlwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv bTItbGFuZy5oCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL20yLWxhbmcuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MDUzMDEz MiArMDIwMAorQEAgLTM0LDcgKzM0LDcgQEAKICBleHRlcm4gaW50IG0yX2lzX2xvbmdfc2V0IChz dHJ1Y3QgdHlwZSAqdHlwZSk7CiAgZXh0ZXJuIGludCBtMl9pc191bmJvdW5kZWRfYXJyYXkgKHN0 cnVjdCB0eXBlICp0eXBlKTsKICAKQEAgLTI0ODIsMTEgKzIyNzgsMTEgQEAgSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICosIGlu dCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXR5 cGVwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL20yLXR5cGVwcmludC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbTItdHlwZXBy aW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMTczNTE2ODYgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjQzNjQ4 OTIgKzAxMDAKLUBAIC0yMzQsOSArMjM0LDEyIEBAIHN0YXRpYyB2b2lkIG0yX2FycmF5IChzdHJ1 Y3QgdHlwZSAqdHlwZSwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tMi10eXBl cHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9tMi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MTUz MDE0MCArMDIwMAorQEAgLTIzNCw5ICsyMzQsMTIgQEAKICAJICBtMl9wcmludF9ib3VuZHMgKFRZ UEVfSU5ERVhfVFlQRSAodHlwZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CiAgICAgICAg ZWxzZQpAQCAtMjUwMiwxMSArMjI5OCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL20yLXR5cGVwcmludC5jCiAgICAgIH0KICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwg Il0gT0YgIik7CiAgICBtMl9wcmludF90eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgIiIs IHN0cmVhbSwgc2hvdywgbGV2ZWwsIGZsYWdzKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbTItdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12 YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIv bTItdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxNzM1MTY4NiArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tMi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjI0MzY0ODkyICswMTAwCi1AQCAtMzUsNyArMzUsNyBAQCBzdGF0aWMgaW50IHByaW50X3VucGFj a2VkX3BvaW50ZXIgKHN0cnVjCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTIt dmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5NjUxMDQ2MyArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9tMi12YWxwcmludC5jCTIwMTYtMDctMTYgMTQ6MzU6MTkuODMw Mjk3MDEzICswMjAwCitAQCAtMzUsNyArMzUsNyBAQAogIAkJCQkgICBzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtKTsKICBzdGF0aWMgdm9pZAogIG0yX3ByaW50X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTE1LDcgKzIzMTEsNyBA QCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMKICAJCQkgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1 ZSAqdmFsLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywK LUBAIC02Nyw3ICs2Nyw3IEBAIGdldF9sb25nX3NldF9ib3VuZHMgKHN0cnVjdCB0eXBlICp0eXBl LAorQEAgLTY3LDcgKzY3LDcgQEAKICAKICBzdGF0aWMgdm9pZAogIG0yX3ByaW50X2xvbmdfc2V0 IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC0yNTI0LDcg KzIzMjAsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20yLXZhbHByaW50LmMK ICAJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgewogICAgaW50IGVtcHR5X3NldCAgICAg ICAgPSAxOwotQEAgLTE1OCw3ICsxNTgsNyBAQCBtMl9wcmludF9sb25nX3NldCAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvCitAQCAtMTU4LDcgKzE1OCw3IEBACiAgCiAgc3RhdGljIHZvaWQKICBtMl9w cmludF91bmJvdW5kZWRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAq dmFsYWRkciwKQEAgLTI1MzMsNyArMjMyOSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbTItdmFscHJpbnQuYwogIAkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykK ICB7Ci1AQCAtMjYyLDcgKzI2Miw3IEBAIHByaW50X3ZhcmlhYmxlX2F0X2FkZHJlc3MgKHN0cnVj dCB0eXBlICoKK0BAIC0yNjAsNyArMjYwLDcgQEAKICAKICBzdGF0aWMgdm9pZAogIG0yX3ByaW50 X2FycmF5X2NvbnRlbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsCkBAIC0yNTQyLDI3ICsyMzM4LDIzIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvbTItdmFscHJpbnQuYwogIAkJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJz ZSwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotQEAgLTMwOCwxNCArMzA4LDE1IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKK0BAIC0zMDgsMTMgKzMwOCwxMyBAQAog ICAgIGZ1bmN0aW9uOyB0aGV5IGFyZSBpZGVudGljYWwuICAqLwogIAogIHZvaWQKIC1tMl92YWxf cHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgaW50IGVt YmVkZGVkX29mZnNldCwKLS0JICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0sIGludCByZWN1cnNlLAotK20yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotKwkgICAgICBMT05HRVNUIGVtYmVkZGVkX29mZnNl dCwgQ09SRV9BRERSIGFkZHJlc3MsCi0rCSAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGlu dCByZWN1cnNlLAorK20yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKKyAJICAgICAgQ09SRV9BRERS IGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkgICAgICBj b25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkgICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCA9IGdldF90eXBlX2FyY2ggKHR5cGUpOwotLSAgdW5zaWduZWQgaW50IGkgPSAwOwkvKiBO dW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVkLiAgKi8KIC0gIHVuc2lnbmVkIGxlbjsKLSsgIFVM T05HRVNUIGkgPSAwOwkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBwcmludGVkLiAgKi8KICsgIFVM T05HRVNUIGxlbjsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlOwogICAgQ09SRV9BRERSIGFkZHI7 CiAgCi1AQCAtMzQwLDcgKzM0MSw3IEBAIG0yX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGcKK0BAIC0zMzksNyArMzM5LDcgQEAKICAJICAgICAgICAgZWxlbWVudHMgdXAgdG8g aXQuICAqLwogIAkgICAgICBpZiAob3B0aW9ucy0+c3RvcF9wcmludF9hdF9udWxsKQogIAkJewpA QCAtMjU3MSwxMCArMjM2MywxOSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL20y LXZhbHByaW50LmMKICAKICAJCSAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogIAkJICBm b3IgKHRlbXBfbGVuID0gMDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFu Z2UuYworQEAgLTQxNSw3ICs0MTUsNyBAQAorIAl7CisgCSAgc3RydWN0IHR5cGUgKnJhbmdlID0g ZWx0dHlwZTsKKyAJICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKKy0JICBpbnQgaTsK KysJICBMT05HRVNUIGk7CisgCSAgaW50IG5lZWRfY29tbWEgPSAwOworIAorIAkgIGZwdXRzX2Zp bHRlcmVkICgieyIsIHN0cmVhbSk7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21l bXJhbmdlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9t ZW1yYW5nZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE4MzUxNjkzICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL21lbXJhbmdlLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjQzNjQ4 OTIgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tZW1yYW5nZS5jCTIw MTYtMDctMTYgMTQ6MzM6NDIuMDk2NTEwNDYzICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3 MTYvZ2RiL21lbXJhbmdlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKIEBA IC0yMSw4ICsyMSw4IEBACiAgI2luY2x1ZGUgIm1lbXJhbmdlLmgiCiAgCkBAIC0yNTg2LDExICsy Mzg3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuYwogIHsK ICAgIFVMT05HRVNUIGgsIGw7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL21l bXJhbmdlLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVtcmFuZ2UuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAx NS0xMS0wMiAyMToyMzoxMS4yMTgzNTE2OTMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvbWVtcmFuZ2UuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNDM2NDg5MiArMDEwMAotQEAg LTMwLDcgKzMwLDcgQEAgc3RydWN0IG1lbV9yYW5nZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4wOTc1MTA0NzEgKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWVtcmFuZ2UuaAkyMDE2LTA3LTE2IDE0OjMz OjQ0LjU0MTUzMDE0MCArMDIwMAorQEAgLTMwLDcgKzMwLDcgQEAKICAgIENPUkVfQUREUiBzdGFy dDsKICAKICAgIC8qIExlbmd0aCBvZiB0aGUgcmFuZ2UuICAqLwpAQCAtMjU5OSw3ICsyNDAwLDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9tZW1yYW5nZS5oCiAgfTsKICAKICB0 eXBlZGVmIHN0cnVjdCBtZW1fcmFuZ2UgbWVtX3JhbmdlX3M7Ci1AQCAtNDAsOCArNDAsOCBAQCBE RUZfVkVDX08obWVtX3JhbmdlX3MpOworQEAgLTQwLDggKzQwLDggQEAKICAvKiBSZXR1cm5zIHRy dWUgaWYgdGhlIHJhbmdlcyBkZWZpbmVkIGJ5IFtzdGFydDEsIHN0YXJ0MStsZW4xKSBhbmQKICAg ICBbc3RhcnQyLCBzdGFydDIrbGVuMikgb3ZlcmxhcC4gICovCiAgCkBAIC0yNjEwLDExICsyNDEx LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWVtcmFuZ2UuaAogIAogIC8q IFJldHVybnMgdHJ1ZSBpZiBBRERSIGlzIGluIFJBTkdFLiAgKi8KICAKLUluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvbWlwcy1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9taXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNTEwMjcub3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIx ODM1MTY5MyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9taXBzLWxpbnV4LW5h dC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI1MzY0ODk5ICswMTAwCi1AQCAtNTg3LDcgKzU4Nyw3 IEBAIG1pcHNfbGludXhfc3RvcHBlZF9kYXRhX2FkZHJlc3MgKHN0cnVjdAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0 Mi4wOTc1MTA0NzEgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbWlwcy1saW51 eC1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0MTUzMDE0MCArMDIwMAorQEAgLTU4Nyw3ICs1 ODcsNyBAQAogIAogIHN0YXRpYyBpbnQKICBtaXBzX2xpbnV4X3JlZ2lvbl9va19mb3JfaHdfd2F0 Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0yNjIzLDExICsyNDI0LDExIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbWlwcy1saW51eC1uYXQuYwogIHsKICAg IHN0cnVjdCBwdF93YXRjaF9yZWdzIGR1bW15X3JlZ3M7CiAgICBpbnQgaTsKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE1MTAyNy9nZGIvb3BlbmNsLWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9vcGVuY2wtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NTEwMjcub3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIxOTM1MTY5 OSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wtbGFuZy5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjI1MzY0ODk5ICswMTAwCi1AQCAtNzgsMTEgKzc4LDExIEBAIGJ1aWx0 aW5fb3BlbmNsX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGIKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi9vcGVuY2wtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk3NTEwNDcx ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41NDE1MzAxNDAgKzAyMDAKK0BAIC03OCwxMSArNzgsMTEgQEAKICAKICBz dGF0aWMgc3RydWN0IHR5cGUgKgogIGxvb2t1cF9vcGVuY2xfdmVjdG9yX3R5cGUgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLCBlbnVtIHR5cGVfY29kZSBjb2RlLApAQCAtMjY0MSwzNyArMjQ0Miwy OSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL29wZW5jbC1sYW5nLmMKICAgIHN0 cnVjdCB0eXBlICp0eXBlID0gTlVMTDsKICAgIHN0cnVjdCB0eXBlICoqdHlwZXMgPSBidWlsdGlu X29wZW5jbF90eXBlIChnZGJhcmNoKTsKICAKLUBAIC0xNzIsOSArMTcyLDkgQEAgbHZhbF9mdW5j X3JlYWQgKHN0cnVjdCB2YWx1ZSAqdikKLSAgIHN0cnVjdCBsdmFsX2Nsb3N1cmUgKmMgPSAoc3Ry dWN0IGx2YWxfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2KTsKLSAgIHN0cnVj dCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAodikpOworQEAgLTE3NCw3 ICsxNzQsNyBAQAogICAgc3RydWN0IHR5cGUgKmVsdHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKGNo ZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGMtPnZhbCkpKTsKLS0gIGludCBvZmZzZXQgPSB2YWx1 ZV9vZmZzZXQgKHYpOwotLSAgaW50IGVsc2l6ZSA9IFRZUEVfTEVOR1RIIChlbHR5cGUpOworICAg TE9OR0VTVCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHYpOworICAgTE9OR0VTVCBlbHNpemUgPSBU WVBFX0xFTkdUSCAoZWx0eXBlKTsKIC0gIGludCBuLCBpLCBqID0gMDsKLSsgIExPTkdFU1Qgb2Zm c2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKLSsgIExPTkdFU1QgZWxzaXplID0gVFlQRV9MRU5HVEgg KGVsdHlwZSk7CiArICBMT05HRVNUIG4sIGksIGogPSAwOwogICAgTE9OR0VTVCBsb3diID0gMDsK ICAgIExPTkdFU1QgaGlnaGIgPSAwOwogIAotQEAgLTIwMSw5ICsyMDEsOSBAQCBsdmFsX2Z1bmNf d3JpdGUgKHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0Ci0gICBzdHJ1Y3QgbHZhbF9jbG9zdXJlICpj ID0gKHN0cnVjdCBsdmFsX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7Ci0g ICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHYpKTsKK0BA IC0yMDMsNyArMjAzLDcgQEAKICAgIHN0cnVjdCB0eXBlICplbHR5cGUgPSBUWVBFX1RBUkdFVF9U WVBFIChjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChjLT52YWwpKSk7Ci0tICBpbnQgb2Zmc2V0 ID0gdmFsdWVfb2Zmc2V0ICh2KTsKLS0gIGludCBlbHNpemUgPSBUWVBFX0xFTkdUSCAoZWx0eXBl KTsKKyAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0ICh2KTsKKyAgIExPTkdFU1QgZWxz aXplID0gVFlQRV9MRU5HVEggKGVsdHlwZSk7CiAtICBpbnQgbiwgaSwgaiA9IDA7Ci0rICBMT05H RVNUIG9mZnNldCA9IHZhbHVlX29mZnNldCAodik7Ci0rICBMT05HRVNUIGVsc2l6ZSA9IFRZUEVf TEVOR1RIIChlbHR5cGUpOwogKyAgTE9OR0VTVCBuLCBpLCBqID0gMDsKICAgIExPTkdFU1QgbG93 YiA9IDA7CiAgICBMT05HRVNUIGhpZ2hiID0gMDsKICAKLUBAIC0yNDMsMTcgKzI0MywxNyBAQCBs dmFsX2Z1bmNfd3JpdGUgKHN0cnVjdCB2YWx1ZSAqdiwgc3RydWN0CitAQCAtMjQzLDE3ICsyNDMs MTcgQEAKICAKICBzdGF0aWMgaW50CiAgbHZhbF9mdW5jX2NoZWNrX3N5bnRoZXRpY19wb2ludGVy IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnYsCi0tCQkJCSAgIGludCBvZmZzZXQsIGludCBsZW5ndGgp CistCQkJCSAgIExPTkdFU1Qgb2Zmc2V0LCBpbnQgbGVuZ3RoKQogKwkJCQkgICBMT05HRVNUIG9m ZnNldCwgTE9OR0VTVCBsZW5ndGgpCiAgewogICAgc3RydWN0IGx2YWxfY2xvc3VyZSAqYyA9IChz dHJ1Y3QgbHZhbF9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHYpOwpAQCAtMjY5 Miw3ICsyNDg1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wtbGFu Zy5jCiAgCiAgICBpZiAoZW5kcmVzdCkKICAgICAgZW5kKys7Ci1AQCAtMjYzLDggKzI2Myw4IEBA IGx2YWxfZnVuY19jaGVja19zeW50aGV0aWNfcG9pbnRlciAoY29uc3QKK0BAIC0yNjMsOCArMjYz LDggQEAKICAKICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspCiAgICAgIHsKQEAgLTI3 MDMsMTEgKzI0OTYsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9vcGVuY2wt bGFuZy5jCiAgCiAgICAgICAgaWYgKCF2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyIChjLT52 YWwsCiAgCQkJCQkgYy0+aW5kaWNlc1tpXSAqIGVsc2l6ZSArIGNvbXBfb2Zmc2V0LAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi9wLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3 Lm9yaWcvZ2RiL3AtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjE5MzUxNjk5ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMu MjI1MzY0ODk5ICswMTAwCi1AQCAtOTUsOCArOTUsOCBAQCBwYXNjYWxfbWFpbl9uYW1lICh2b2lk KQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3AtbGFuZy5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMDk4NTEwNDc5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3At bGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQyNTMwMTQ4ICswMjAwCitAQCAtOTUsOCArOTUs OCBAQAogICAgIGFyZSBub3QgbXVsdGlwbGUgb2YgVEFSR0VUX0NIQVJfQklUIHRoZW4gdGhlIHJl c3VsdHMgYXJlIHdyb25nCiAgICAgYnV0IHRoaXMgZG9lcyBub3QgaGFwcGVuIGZvciBGcmVlIFBh c2NhbCBub3IgZm9yIEdQQy4gICovCiAgaW50CkBAIC0yNzE4LDcgKzI1MTEsNyBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5jCiAgCQkgICAgICAgc3RydWN0IHR5cGUg KipjaGFyX3R5cGUsCiAgCQkgICAgICAgY29uc3QgY2hhciAqKmFycmF5bmFtZSkKICB7Ci1AQCAt MjE2LDEyICsyMTYsMTIgQEAgcGFzY2FsX3ByaW50Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0 eQorQEAgLTIxNiwxMiArMjE2LDEyIEBACiAgCiAgdm9pZAogIHBhc2NhbF9wcmludHN0ciAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0yNzMzLDcgKzI1MjYs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3AtbGFuZy5jCiAgICB1bnNpZ25l ZCBpbnQgdGhpbmdzX3ByaW50ZWQgPSAwOwogICAgaW50IGluX3F1b3RlcyA9IDA7CiAgICBpbnQg bmVlZF9jb21tYSA9IDA7Ci1AQCAtMjQ5LDkgKzI0OSw5IEBAIHBhc2NhbF9wcmludHN0ciAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwKK0BAIC0yNDksOSArMjQ5LDkgQEAKICAgICAgewogICAgICAg IC8qIFBvc2l0aW9uIG9mIHRoZSBjaGFyYWN0ZXIgd2UgYXJlIGV4YW1pbmluZwogICAgICAgICAg IHRvIHNlZSB3aGV0aGVyIGl0IGlzIHJlcGVhdGVkLiAgKi8KQEAgLTI3NDUsNyArMjUzOCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmMKICAgICAgICB1bnNpZ25l ZCBsb25nIGludCBjdXJyZW50X2NoYXI7CiAgCiAgICAgICAgUVVJVDsKLUBAIC0yODMsNyArMjgz LDcgQEAgcGFzY2FsX3ByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAorQEAgLTI4Myw3 ICsyODMsNyBAQAogIAkgICAgICBpbl9xdW90ZXMgPSAwOwogIAkgICAgfQogIAkgIHBhc2NhbF9w cmludGNoYXIgKGN1cnJlbnRfY2hhciwgdHlwZSwgc3RyZWFtKTsKQEAgLTI3NTQsMTEgKzI1NDcs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wLWxhbmcuYwogIAkgIGkgPSBy ZXAxIC0gMTsKICAJICB0aGluZ3NfcHJpbnRlZCArPSBvcHRpb25zLT5yZXBlYXRfY291bnRfdGhy ZXNob2xkOwogIAkgIG5lZWRfY29tbWEgPSAxOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9wLWxhbmcuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wLWxhbmcuaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3AtbGFuZy5oCTIw MTUtMTEtMDIgMjE6MjM6MTEuMjE5MzUxNjk5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3AtbGFuZy5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI2MzY0OTA1ICswMTAwCi1AQCAt MzYsNyArMzYsNyBAQCBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlwZSAoc3RydWN0IHR5Cist LS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcC1sYW5nLmgJMjAxNi0wNy0xNiAxNDoz Mzo0Mi4wOTg1MTA0NzkgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC1sYW5n LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDggKzAyMDAKK0BAIC0zNiw3ICszNiw3IEBA CiAgZXh0ZXJuIHZvaWQgcGFzY2FsX3ByaW50X3R5cGVkZWYgKHN0cnVjdCB0eXBlICosIHN0cnVj dCBzeW1ib2wgKiwKICAJCQkJICBzdHJ1Y3QgdWlfZmlsZSAqKTsKICAKQEAgLTI3NjcsNyArMjU2 MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmgKICAJCQkgICAg ICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKiwKICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq KTsKLUBAIC01MCwxMyArNTAsMTMgQEAgZXh0ZXJuIHZvaWQgcGFzY2FsX3R5cGVfcHJpbnRfbWV0 aG9kX2FyZworQEAgLTUwLDEzICs1MCwxMyBAQAogIC8qIFRoZXNlIGFyZSBpbiBwLWxhbmcuYzog Ki8KICAKICBleHRlcm4gaW50CkBAIC0yNzgzLDIwICsyNTc2LDExIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvcC1sYW5nLmgKICAJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICopOwogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqKmNvbnN0IChwYXNjYWxf YnVpbHRpbl90eXBlc1tdKTsKLUBAIC03Miw3ICs3Miw3IEBAIGV4dGVybiB2b2lkCi0gCQkJCSAg ICBjb25zdCBzdHJ1Y3QgdHlwZV9wcmludF9vcHRpb25zICopOwotIAotIGV4dGVybiB2b2lkIHBh c2NhbF9vYmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJf Ynl0ZSAqLAotLQkJCQkJICAgICAgaW50LAotKwkJCQkJICAgICAgTE9OR0VTVCwKLSAJCQkJCSAg ICAgIENPUkVfQUREUiwgc3RydWN0IHVpX2ZpbGUgKiwKLSAJCQkJCSAgICAgIGludCwKLSAJCQkJ CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi9wLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcC12YWxw cmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcC12 YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjIwMzUxNzA2ICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3AtdmFscHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjIyNjM2 NDkwNSArMDEwMAotQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnZW5lcmlj X3ZhbF9wcmludF9kZQorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3AtdmFscHJp bnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5ODUxMDQ3OSArMDIwMAorKysrIGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi9wLXZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDI1MzAxNDgg KzAyMDAKK0BAIC01OSw3ICs1OSw3IEBACiAgCiAgdm9pZAogIHBhc2NhbF92YWxfcHJpbnQgKHN0 cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTI4MDUsNyArMjU4 OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcC12YWxwcmludC5jCiAgCQkg IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucykKLUBAIC02OCw4ICs2OCw4IEBAIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVj dCB0eXBlICp0eXBlLCBjb24KK0BAIC03MCw4ICs3MCw4IEBACiAgICB1bnNpZ25lZCBsZW47CiAg ICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKICAgIHN0cnVjdCB0eXBlICplbHR0eXBl OwpAQCAtMjgxNiw1MiArMjYwMCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3AtdmFscHJpbnQuYwogICAgc3RydWN0IHR5cGUgKmNoYXJfdHlwZTsKICAgIENPUkVfQUREUiBh ZGRyOwogICAgaW50IHdhbnRfc3BhY2UgPSAwOwotQEAgLTQ2Nyw3ICs0NjcsNyBAQCBzdGF0aWMg dm9pZCBwYXNjYWxfb2JqZWN0X3ByaW50X3N0YXRpY19mCi0gCQkJCQkgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKLSAKLSBzdGF0aWMgdm9pZCBwYXNjYWxfb2JqZWN0 X3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAotLQkJCQkgICAg ICAgaW50LAotKwkJCQkgICAgICAgTE9OR0VTVCwKLSAJCQkJICAgICAgIENPUkVfQUREUiwgc3Ry dWN0IHVpX2ZpbGUgKiwgaW50LAotIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlICosCi0g CQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLAotQEAgLTUyNiw3 ICs1MjYsNyBAQCBwYXNjYWxfb2JqZWN0X2lzX3Z0YmxfbWVtYmVyIChzdHJ1Y3QgdHlwCi0gCi0g dm9pZAotIHBhc2NhbF9vYmplY3RfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0tCQkJCSAgaW50IG9mZnNldCwKLSsJCQkJICBM T05HRVNUIG9mZnNldCwKLSAJCQkJICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwKLSAJCQkJICBpbnQgcmVjdXJzZSwKLSAJCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKLUBAIC02OTcsNyArNjk3LDcgQEAgcGFzY2FsX29iamVjdF9wcmludF92YWx1ZV9maWVs ZHMgKHN0cnVjdAotIAotIHN0YXRpYyB2b2lkCi0gcGFzY2FsX29iamVjdF9wcmludF92YWx1ZSAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJCSAgIGludCBv ZmZzZXQsCi0rCQkJICAgTE9OR0VTVCBvZmZzZXQsCi0gCQkJICAgQ09SRV9BRERSIGFkZHJlc3Ms IHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCi0gCQkJICAgaW50IHJlY3Vyc2UsCi0gCQkJICAgY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCi1AQCAtNzIwLDExICs3MjAsMTEgQEAgcGFzY2FsX29iamVj dF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKgotIAotICAgZm9yIChpID0gMDsgaSA8IG5fYmFz ZWNsYXNzZXM7IGkrKykKLSAgICAgewotLSAgICAgIGludCBib2Zmc2V0ID0gMDsKLSsgICAgICBM T05HRVNUIGJvZmZzZXQgPSAwOwotICAgICAgIHN0cnVjdCB0eXBlICpiYXNlY2xhc3MgPSBjaGVj a190eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAodHlwZSwgaSkpOwotICAgICAgIGNvbnN0IGNoYXIg KmJhc2VuYW1lID0gdHlwZV9uYW1lX25vX3RhZyAoYmFzZWNsYXNzKTsKLSAgICAgICBjb25zdCBn ZGJfYnl0ZSAqYmFzZV92YWxhZGRyID0gTlVMTDsKLS0gICAgICBpbnQgdGhpc29mZnNldDsKLSsg ICAgICBMT05HRVNUIHRoaXNvZmZzZXQ7Ci0gICAgICAgaW50IHNraXAgPSAwOwotIAotICAgICAg IGlmIChCQVNFVFlQRV9WSUFfVklSVFVBTCAodHlwZSwgaSkpCi1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL3BwYy1saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9wcGMtbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjEzNTE3MTMg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUt MTEtMDIgMjE6MjM6MTMuMjI3MzY0OTEyICswMTAwCi1AQCAtMTQ0OSw3ICsxNDQ5LDcgQEAgcHBj X2xpbnV4X2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoc3RydWN0CistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMDk5NTEw NDg3ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3BwYy1saW51eC1uYXQuYwky MDE2LTA3LTE2IDE0OjMzOjQ0LjU0MjUzMDE0OCArMDIwMAorQEAgLTE0NDksNyArMTQ0OSw3IEBA CiAgCiAgc3RhdGljIGludAogIHBwY19saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMjg3MCwxMSArMjYxMywxMSBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3BwYy1saW51eC1uYXQuYwogIHsKICAgIC8qIEhhbmRs ZSBzdWItOC1ieXRlIHF1YW50aXRpZXMuICAqLwogICAgaWYgKGxlbiA8PSAwKQotSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmludGNtZC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3ByaW50Y21kLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAy Ny5vcmlnL2dkYi9wcmludGNtZC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjIxMzUxNzEzICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ByaW50Y21kLmMJMjAxNS0xMS0wMiAyMToy MzoxMy4yMjczNjQ5MTIgKzAxMDAKLUBAIC0yNzQsNyArMjc0LDcgQEAgcHJpbnRfZm9ybWF0dGVk IChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9n ZGIvcHJpbnRjbWQuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjA5OTUxMDQ4NyArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcmludGNtZC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQz NTMwMTU2ICswMjAwCitAQCAtMjc5LDcgKzI3OSw3IEBACiAgCQkgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5 cGUgKHZhbCkpOwpAQCAtMjg4Myw3ICsyNjI2LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9wcmludGNtZC5jCiAgCiAgICBpZiAoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21l bW9yeSkKICAgICAgbmV4dF9hZGRyZXNzID0gdmFsdWVfYWRkcmVzcyAodmFsKSArIGxlbjsKLUBA IC0zNTIsNyArMzUyLDcgQEAgcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoY29uc3QgZ2RiX2J5dGUg KgorQEAgLTM1Nyw3ICszNTcsNyBAQAogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0g Z2V0X3R5cGVfYXJjaCAodHlwZSk7CiAgICBMT05HRVNUIHZhbF9sb25nID0gMDsKQEAgLTI4OTIs MTEgKzI2MzUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9wcmludGNtZC5j CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2Ri YXJjaCk7CiAgCiAgICAvKiBTdHJpbmcgcHJpbnRpbmcgc2hvdWxkIGdvIHRocm91Z2ggdmFsX3By aW50X3NjYWxhcl9mb3JtYXR0ZWQuICAqLwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9wcm9jZnMuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcm9jZnMuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjIzMzUxNzI2ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3Byb2Nmcy5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjI4MzY0OTE4ICswMTAwCi1AQCAtNDg2 Myw3ICs0ODYzLDcgQEAgcHJvY2ZzX3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0Xwor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMTAwNTEwNDk1ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Byb2Nm cy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQzNTMwMTU2ICswMjAwCitAQCAtNDg2Myw3ICs0ODYz LDcgQEAKICAKICBzdGF0aWMgaW50CiAgcHJvY2ZzX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2lu dCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0yOTA1LDI0ICsyNjQ4LDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcHJvY2ZzLmMKICB7CiAgICAvKiBUaGUgbWFuIHBh Z2UgZm9yIHByb2MoNCkgb24gU29sYXJpcyAyLjYgYW5kIHVwIHNheXMgdGhhdCB0aGUKICAgICAg IHN5c3RlbSBjYW4gc3VwcG9ydCAidGhvdXNhbmRzIiBvZiBoYXJkd2FyZSB3YXRjaHBvaW50cywg YnV0IGdpdmVzCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3B5dGhvbi9weS1wcmV0 dHlwcmludC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlZ2NhY2hlLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9weXRob24vcHktcHJl dHR5cHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyMzM1MTcyNiArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTExLTAyIDIx OjIzOjEzLjIyOTM2NDkyNSArMDEwMAotQEAgLTcwMyw3ICs3MDMsNyBAQCBwcmludF9jaGlsZHJl biAoUHlPYmplY3QgKnByaW50ZXIsIGNvbnN0Ci0gZW51bSBleHRfbGFuZ19yYwotIGdkYnB5X2Fw cGx5X3ZhbF9wcmV0dHlfcHJpbnRlciAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9k ZWZuICpleHRsYW5nLAotIAkJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsCi0tCQkJCWludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJ CQlMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCi0gCQkJCXN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAotIAkJCQljb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKLSAJCQkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1J bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2NhY2hlLmMKLT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTUtMTEtMDIgMjE6 MjM6MTEuMjI0MzUxNzMyICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlZ2Nh Y2hlLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMjkzNjQ5MjUgKzAxMDAKLUBAIC05NTgsNyArOTU4 LDcgQEAgdHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0cgorLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3JlZ2NhY2hlLmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4x MDE1MTA1MDMgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2FjaGUuYwky MDE2LTA3LTE2IDE0OjMzOjQ0LjU0NDUzMDE2NSArMDIwMAorQEAgLTk2Nyw3ICs5NjcsNyBAQAog IAogIHN0YXRpYyBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hlX3hmZXJfcGFydCAoc3Ry dWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5MzEsNyArMjY2MSw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwogIAkJICAgIGVudW0g cmVnaXN0ZXJfc3RhdHVzICgqcmVhZCkgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsCiAgCQkJ CQkJICBpbnQgcmVnbnVtLAogIAkJCQkJCSAgZ2RiX2J5dGUgKmJ1ZiksCi1AQCAtMTAwMiw3ICsx MDAyLDcgQEAgcmVnY2FjaGVfeGZlcl9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZworQEAgLTEw MTEsNyArMTAxMSw3IEBACiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMKICByZWdjYWNoZV9yYXdf cmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLApAQCAtMjk0 MCw3ICsyNjcwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdjYWNoZS5j CiAgewogICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsK ICAKLUBAIC0xMDEzLDcgKzEwMTMsNyBAQCByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3Qg cmVnY2FjaGUKK0BAIC0xMDIyLDcgKzEwMjIsNyBAQAogIAogIHZvaWQKICByZWdjYWNoZV9yYXdf d3JpdGVfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwKQEAgLTI5 NDksNyArMjY3OSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUu YwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7 CiAgCi1AQCAtMTAyNCw3ICsxMDI0LDcgQEAgcmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQgKHN0cnVj dCByZWdjYWNoZQorQEAgLTEwMzMsNyArMTAzMyw3IEBACiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0 dXMKICByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hl LCBpbnQgcmVnbnVtLApAQCAtMjk1OCw3ICsyNjg4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIw MTUxMDI3L2dkYi9yZWdjYWNoZS5jCiAgewogICAgc3RydWN0IHJlZ2NhY2hlX2Rlc2NyICpkZXNj ciA9IHJlZ2NhY2hlLT5kZXNjcjsKICAKLUBAIC0xMDM1LDcgKzEwMzUsNyBAQCByZWdjYWNoZV9j b29rZWRfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjCitAQCAtMTA0NCw3ICsxMDQ0LDcgQEAKICAK ICB2b2lkCiAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVn Y2FjaGUsIGludCByZWdudW0sCkBAIC0yOTY3LDExICsyNjk3LDExIEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNj ciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3JlZ2NhY2hlLmgKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcmVnY2Fj aGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3JlZ2Nh Y2hlLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjQzNTE3MzIgKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyNy9nZGIvcmVnY2FjaGUuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjIzMDM2NDkzMSAr MDEwMAotQEAgLTkyLDkgKzkyLDkgQEAgZXh0ZXJuIHZvaWQgcmVnY2FjaGVfcmF3X3dyaXRlX3Vu c2lnbmVkCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE2 LTA3LTE2IDE0OjMzOjQyLjEwMTUxMDUwMyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9yZWdjYWNoZS5oCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ0NTMwMTY1ICswMjAwCitAQCAt ODAsOSArODAsOSBAQAogIAogIGV4dGVybiBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogICAgcmVnY2Fj aGVfcmF3X3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSwK QEAgLTI5ODMsNyArMjcxMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVn Y2FjaGUuaAogIAogIHZvaWQgcmVnY2FjaGVfaW52YWxpZGF0ZSAoc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwgaW50IHJlZ251bSk7CiAgCi1AQCAtMTMxLDEwICsxMzEsMTEgQEAgZXh0ZXJuIHZv aWQgcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vuc2lnbgorQEAgLTExOSwxMCArMTE5LDExIEBACiAg ICAgd3JpdGUgc3R5bGUgb3BlcmF0aW9ucy4gICovCiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMg cmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKQEAg LTI5OTgsMTEgKzI3MjgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9yZWdj YWNoZS5oCiAgCiAgLyogU3BlY2lhbCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICov CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JlbW90ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvcmVtb3RlLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yMjczNTE3 NTIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvcmVtb3RlLmMJMjAxNS0xMS0w MiAyMToyMzoxMy4yMzIzNjQ5NDUgKzAxMDAKLUBAIC05MTU3LDcgKzkxNTcsNyBAQCBpbnQgcmVt b3RlX2h3X2JyZWFrcG9pbnRfbGltaXQgPSAtMTsKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9yZW1vdGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwNDUxMDUyNyArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9yZW1vdGUuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0 NTUzMDE3MiArMDIwMAorQEAgLTk0NzMsNyArOTQ3Myw3IEBACiAgCiAgc3RhdGljIGludAogIHJl bW90ZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxm LApAQCAtMzAxMSwxMSArMjc0MSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L3JlbW90ZS5jCiAgewogICAgaWYgKHJlbW90ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9 PSAwKQogICAgICByZXR1cm4gMDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3B1 LW11bHRpYXJjaC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NwdS1tdWx0aWFy Y2guYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3NwdS1t dWx0aWFyY2guYwkyMDE1LTExLTAyIDIxOjIzOjExLjIyODM1MTc1OSArMDEwMAotKysrIGdkYi03 LjEwLjUwLjIwMTUxMDI3L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4y MzMzNjQ5NTEgKzAxMDAKLUBAIC0xMjcsNyArMTI3LDcgQEAgc3B1X3RocmVhZF9hcmNoaXRlY3R1 cmUgKHN0cnVjdCB0YXJnZXRfbworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Nw dS1tdWx0aWFyY2guYwkyMDE2LTA3LTE2IDE0OjMzOjQyLjEwNTUxMDUzNiArMDIwMAorKysrIGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNi0wNy0xNiAxNDozMzo0 NC41NDU1MzAxNzIgKzAyMDAKK0BAIC0xMjcsNyArMTI3LDcgQEAKICAvKiBPdmVycmlkZSB0aGUg dG9fcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IHJvdXRpbmUuICAqLwogIHN0YXRpYyBpbnQK ICBzcHVfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2Vs ZiwKQEAgLTMwMjQsMTEgKzI3NTQsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9zcHUtbXVsdGlhcmNoLmMKICB7CiAgICBzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzX2JlbmVhdGgg PSBmaW5kX3RhcmdldF9iZW5lYXRoIChzZWxmKTsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvc3RhY2suYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zdGFjay5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvc3RhY2suYwky MDE1LTExLTAyIDIxOjIzOjExLjIyOTM1MTc2NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9zdGFjay5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjMzMzY0OTUxICswMTAwCi1AQCAt MTc2LDcgKzE3Niw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zdGFjay5jCTIwMTYtMDctMTYgMTQ6 MzM6NDIuMTA2NTEwNTQ0ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N0YWNr LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDY1MzAxODEgKzAyMDAKK0BAIC0xNzYsNyArMTc2LDcg QEAKICAgICBhcmd1bWVudCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVsZXNzIGFyZ3VtZW50KS4g ICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTMwMzcsNyArMjc2Nyw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE1MTAyNy9nZGIvc3RhY2suYwogIAkJCSAgIGludCBmaXJzdCwgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9mcmFtZV9h cmNoIChmcmFtZSk7Ci1AQCAtNTM5LDcgKzUzOSw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVj dCBzeW1ib2wgKmZ1bmMsIHMKK0BAIC01MzcsNyArNTM3LDcgQEAKICAgIC8qIE9mZnNldCBvZiBu ZXh0IHN0YWNrIGFyZ3VtZW50IGJleW9uZCB0aGUgb25lIHdlIGhhdmUgc2VlbiB0aGF0IGlzCiAg ICAgICBhdCB0aGUgaGlnaGVzdCBvZmZzZXQsIG9yIC0xIGlmIHdlIGhhdmVuJ3QgY29tZSB0byBh IHN0YWNrCiAgICAgICBhcmd1bWVudCB5ZXQuICAqLwpAQCAtMzA0Niw3ICsyNzc2LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCiAgICAvKiBOdW1iZXIgb2YgaW50 cyBvZiBhcmd1bWVudHMgdGhhdCB3ZSBoYXZlIHByaW50ZWQgc28gZmFyLiAgKi8KICAgIGludCBh cmdzX3ByaW50ZWQgPSAwOwogICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKLUBAIC01NzMs OCArNTczLDggQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworQEAg LTU3MSw4ICs1NzEsOCBAQAogIAkgICAgY2FzZSBMT0NfQVJHOgogIAkgICAgY2FzZSBMT0NfUkVG X0FSRzoKICAJICAgICAgewpAQCAtMzA1Nyw3ICsyNzg3LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9zdGFjay5jCiAgCiAgCQkvKiBDb21wdXRlIGFkZHJlc3Mgb2YgbmV4dCBh cmd1bWVudCBieSBhZGRpbmcgdGhlIHNpemUgb2YKICAJCSAgIHRoaXMgYXJndW1lbnQgYW5kIHJv dW5kaW5nIHRvIGFuIGludCBib3VuZGFyeS4gICovCi1AQCAtNzA5LDcgKzcwOSw3IEBAIHByaW50 X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wgKmZ1bmMsIHMKK0BAIC03MDcsNyArNzA3LDcgQEAK ICAgICAgIGVub3VnaCBhYm91dCB0aGUgc3RhY2sgdG8gZmluZCB0aGVtLiAgKi8KICAgIGlmIChu dW0gIT0gLTEpCiAgICAgIHsKQEAgLTMwNjYsMTEgKzI3OTYsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9zdGFjay5jCiAgCiAgICAgICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09 IC0xKQogIAlzdGFydCA9IGdkYmFyY2hfZnJhbWVfYXJnc19za2lwIChnZXRfZnJhbWVfYXJjaCAo ZnJhbWUpKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvc3ltbWlzYy5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N5bW1pc2MuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3N5bW1pc2MuYwkyMDE1LTExLTAyIDIxOjIzOjEx LjIyOTM1MTc2NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9zeW1taXNjLmMJ MjAxNS0xMS0wMiAyMToyMzoxMy4yMzQzNjQ5NTggKzAxMDAKLUBAIC01MzQsMTEgKzUzNCwxMSBA QCBwcmludF9zeW1ib2wgKHZvaWQgKmFyZ3MpCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3Jp Zy9nZGIvc3ltbWlzYy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTA3NTEwNTUyICswMjAwCisrKysg Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3N5bW1pc2MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU0 NjUzMDE4MSArMDIwMAorQEAgLTUzOCwxMSArNTM4LDExIEBACiAgCiAgCWNhc2UgTE9DX0NPTlNU X0JZVEVTOgogIAkgIHsKQEAgLTMwODUsMTEgKzI4MTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTUxMDI3L2dkYi9zeW1taXNjLmMKICAJICAgIGZvciAoaSA9IDA7IGkgPCBUWVBFX0xFTkdU SCAodHlwZSk7IGkrKykKICAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAob3V0ZmlsZSwgIiAlMDJ4 IiwKICAJCQkJKHVuc2lnbmVkKSBTWU1CT0xfVkFMVUVfQllURVMgKHN5bWJvbClbaV0pOwotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQuYworSW5kZXg6IGdkYi03LjExLjUw LjIwMTYwNzE2L2dkYi90YXJnZXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL3RhcmdldC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjMwMzUxNzcyICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5jCTIwMTUtMTEtMDIgMjE6MjM6 MTMuMjM0MzY0OTU4ICswMTAwCi1AQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgaW50IGRlZmF1bHRf d2F0Y2hwb2ludF9hZGRyX3dpdGhpCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIv dGFyZ2V0LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDg1MTA1NjAgKzAyMDAKKysrKyBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDY1MzAxODEg KzAyMDAKK0BAIC01Niw3ICs1Niw3IEBACiAgCQkJCQkJIENPUkVfQUREUiwgQ09SRV9BRERSLCBp bnQpOwogIAogIHN0YXRpYyBpbnQgZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQg KHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0zMDk4LDcgKzI4MjgsNyBAQCBJbmRleDogZ2RiLTcu MTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC5jCiAgCiAgc3RhdGljIHZvaWQgZGVmYXVsdF9yY21k IChzdHJ1Y3QgdGFyZ2V0X29wcyAqLCBjb25zdCBjaGFyICosIHN0cnVjdCB1aV9maWxlICopOwog IAotQEAgLTMxMzIsNyArMzEzMiw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxvYyAoc3Ry dWN0IGluZmUKK0BAIC0zMTk2LDcgKzMxOTYsNyBAQAogIAogIHN0YXRpYyBpbnQKICBkZWZhdWx0 X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBA IC0zMTA3LDExICsyODM3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFy Z2V0LmMKICB7CiAgICByZXR1cm4gKGxlbiA8PSBnZGJhcmNoX3B0cl9iaXQgKHRhcmdldF9nZGJh cmNoICgpKSAvIFRBUkdFVF9DSEFSX0JJVCk7CiAgfQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi90YXJnZXQuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90YXJnZXQu aAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3RhcmdldC5o CTIwMTUtMTEtMDIgMjE6MjM6MTEuMjMxMzUxNzc5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3RhcmdldC5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM1MzY0OTY0ICswMTAwCi1A QCAtNTQ5LDcgKzU0OSw3IEBAIHN0cnVjdCB0YXJnZXRfb3BzCistLS0gZ2RiLTcuMTEuNTAuMjAx NjA3MTYub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMDk1MTA1NjggKzAy MDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LmgJMjAxNi0wNy0xNiAxNDoz Mzo0NC41NDc1MzAxODkgKzAyMDAKK0BAIC01NTEsNyArNTUxLDcgQEAKICAgICAgLyogRG9jdW1l bnRhdGlvbiBvZiB0aGlzIHJvdXRpbmUgaXMgcHJvdmlkZWQgd2l0aCB0aGUgY29ycmVzcG9uZGlu ZwogICAgICAgICB0YXJnZXRfKiBtYWNyby4gICovCiAgICAgIGludCAoKnRvX3JlZ2lvbl9va19m b3JfaHdfd2F0Y2hwb2ludCkgKHN0cnVjdCB0YXJnZXRfb3BzICosCkBAIC0zMTIwLDExICsyODUw LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdGFyZ2V0LmgKICAgICAgICBU QVJHRVRfREVGQVVMVF9GVU5DIChkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCk7 CiAgCiAgICAgIGludCAoKnRvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbikgKHN0cnVj dCB0YXJnZXRfb3BzICosCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9p bnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90cmFjZXBvaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAx NS0xMS0wMiAyMToyMzoxMS4yMzMzNTE3OTIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdHJhY2Vwb2ludC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM2MzY0OTcxICswMTAwCi1A QCAtOTMwLDEzICs5MzAsMTMgQEAgYWRkX3JlZ2lzdGVyIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0 ICpjbworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3RyYWNlcG9pbnQuYwkyMDE2 LTA3LTE2IDE0OjMzOjQyLjExMjUxMDU5MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi90cmFjZXBvaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDc1MzAxODkgKzAyMDAKK0BA IC05MzAsMTMgKzkzMCwxMyBAQAogIHN0YXRpYyB2b2lkCiAgYWRkX21lbXJhbmdlIChzdHJ1Y3Qg Y29sbGVjdGlvbl9saXN0ICptZW1yYW5nZXMsIAogIAkgICAgICBpbnQgdHlwZSwgYmZkX3NpZ25l ZF92bWEgYmFzZSwKQEAgLTMxNDAsNyArMjg3MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgICAgIH0KICAKICAgIC8qIHR5cGU6IG1lbXJhbmdlX2Fi c29sdXRlID09IG1lbW9yeSwgb3RoZXIgbiA9PSBiYXNlcmVnICovCi1AQCAtOTY2LDcgKzk2Niw3 IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC05NjYsNyAr OTY2LDcgQEAKICAJCUNPUkVfQUREUiBzY29wZSwKICAJCWludCB0cmFjZV9zdHJpbmcpCiAgewpA QCAtMzE0OSw3ICsyODc5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90cmFj ZXBvaW50LmMKICAgIHVuc2lnbmVkIGludCByZWc7CiAgICBiZmRfc2lnbmVkX3ZtYSBvZmZzZXQ7 CiAgICBpbnQgdHJlYXRfYXNfZXhwciA9IDA7Ci1AQCAtOTkwLDggKzk5MCw4IEBAIGNvbGxlY3Rf c3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC05OTAsOCArOTkwLDggQEAKICAJ ICBjaGFyIHRtcFs0MF07CiAgCiAgCSAgc3ByaW50Zl92bWEgKHRtcCwgb2Zmc2V0KTsKQEAgLTMx NjAsNyArMjg5MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdHJhY2Vwb2lu dC5jCiAgCQkJICAgdG1wIC8qIGFkZHJlc3MgKi8pOwogIAl9CiAgICAgICAgLyogQSBzdHJ1Y3Qg bWF5IGJlIGEgQysrIGNsYXNzIHdpdGggc3RhdGljIGZpZWxkcywgZ28gdG8gZ2VuZXJhbAotQEAg LTEwMjMsOCArMTAyMyw4IEBAIGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0 ICoKK0BAIC0xMDIzLDggKzEwMjMsOCBAQAogICAgICAgIG9mZnNldCA9IGZyYW1lX29mZnNldCAr IFNZTUJPTF9WQUxVRSAoc3ltKTsKICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0z MTcxLDcgKzI5MDEsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9p bnQuYwogIAkgIHByaW50Zl92bWEgKG9mZnNldCk7CiAgCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZy b20gZnJhbWUgcHRyIHJlZyAlZFxuIiwgcmVnKTsKICAJfQotQEAgLTEwMzUsOCArMTAzNSw4IEBA IGNvbGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDM1LDggKzEw MzUsOCBAQAogICAgICAgIG9mZnNldCA9IDA7CiAgICAgICAgaWYgKGluZm9fdmVyYm9zZSkKICAJ ewpAQCAtMzE4Miw3ICsyOTEyLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90 cmFjZXBvaW50LmMKICAJICBwcmludGZfdm1hIChvZmZzZXQpOwogIAkgIHByaW50Zl9maWx0ZXJl ZCAoIiBmcm9tIHJlZyAlZFxuIiwgcmVnKTsKICAJfQotQEAgLTEwNDcsOCArMTA0Nyw4IEBAIGNv bGxlY3Rfc3ltYm9sIChzdHJ1Y3QgY29sbGVjdGlvbl9saXN0ICoKK0BAIC0xMDQ3LDggKzEwNDcs OCBAQAogICAgICAgIG9mZnNldCA9IGZyYW1lX29mZnNldCArIFNZTUJPTF9WQUxVRSAoc3ltKTsK ICAgICAgICBpZiAoaW5mb192ZXJib3NlKQogIAl7CkBAIC0zMTkzLDcgKzI5MjMsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RyYWNlcG9pbnQuYwogIAkgIHByaW50Zl92bWEg KG9mZnNldCk7CiAgCSAgcHJpbnRmX2ZpbHRlcmVkICgiIGZyb20gZnJhbWUgcHRyIHJlZyAlZFxu IiwgcmVnKTsKICAJfQotQEAgLTI3MDgsNyArMjcwOCw4IEBAIHNjb3BlX2luZm8gKGNoYXIgKmFy Z3MsIGludCBmcm9tX3R0eSkKK0BAIC0yNzAzLDcgKzI3MDMsOCBAQAogICAgY29uc3QgY2hhciAq c3ltbmFtZTsKICAgIGNoYXIgKnNhdmVfYXJncyA9IGFyZ3M7CiAgICBzdHJ1Y3QgYmxvY2tfaXRl cmF0b3IgaXRlcjsKQEAgLTMyMDMsNyArMjkzMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdHJhY2Vwb2ludC5jCiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKICAgIGlu dCByZWdubzsKICAgIHN0cnVjdCBldmVudF9sb2NhdGlvbiAqbG9jYXRpb247Ci1AQCAtMjg1Miw4 ICsyODUzLDExIEBAIHNjb3BlX2luZm8gKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKK0BAIC0y ODQ3LDggKzI4NDgsMTEgQEAKICAJCX0KICAJICAgIH0KICAJICBpZiAoU1lNQk9MX1RZUEUgKHN5 bSkpCkBAIC0zMjE3LDI0ICsyOTQ3LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9n ZGIvdHJhY2Vwb2ludC5jCiAgCX0KICAgICAgICBpZiAoQkxPQ0tfRlVOQ1RJT04gKGJsb2NrKSkK ICAJYnJlYWs7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3R5cGVwcmludC5jCi09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdHlwZXByaW50LmMJ MjAxNS0xMS0wMiAyMToyMzoxMS4yMzQzNTE3OTggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdHlwZXByaW50LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzYzNjQ5NzEgKzAxMDAK LUBAIC00MDYsNyArNDA2LDcgQEAgd2hhdGlzX2V4cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKLSAg IHN0cnVjdCB0eXBlICpyZWFsX3R5cGUgPSBOVUxMOwotICAgc3RydWN0IHR5cGUgKnR5cGU7Ci0g ICBpbnQgZnVsbCA9IDA7Ci0tICBpbnQgdG9wID0gLTE7Ci0rICBMT05HRVNUIHRvcCA9IC0xOwot ICAgaW50IHVzaW5nX2VuYyA9IDA7Ci0gICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRz OwotICAgc3RydWN0IHR5cGVfcHJpbnRfb3B0aW9ucyBmbGFncyA9IGRlZmF1bHRfcHR5cGVfZmxh Z3M7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbGFyaXRoLmMKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFsYXJpdGguYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0wMiAyMToyMzoxMS4y MzQzNTE3OTggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwky MDE1LTExLTAyIDIxOjIzOjU5LjgyMjY3MTQ5NiArMDEwMAotQEAgLTE4OCwxMiArMTg4LDEyIEBA IHZhbHVlX3N1YnNjcmlwdCAoc3RydWN0IHZhbHVlICphcnJheSwgTE8KKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTE0NTEw NjA4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbGFyaXRoLmMJMjAxNi0w Ny0xNiAxNDozMzo0NC41NDg1MzAxOTcgKzAyMDAKK0BAIC0xODgsNyArMTg4LDcgQEAKICAgICB0 byBkb3VibGVzLCBidXQgbm8gbG9uZ2VyIGRvZXMuICAqLwogIAogIHN0cnVjdCB2YWx1ZSAqCkBA IC0zMjQzLDE0ICsyOTYwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxh cml0aC5jCiAgewogICAgc3RydWN0IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2 YWx1ZV90eXBlIChhcnJheSkpOwogICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlw ZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAoYXJyYXlfdHlwZSkpOwotLSAgdW5zaWduZWQgaW50IGVs dF9zaXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90eXBlKTsKLS0gIHVuc2lnbmVkIGludCBl bHRfb2ZmczsKLSsgIFVMT05HRVNUIGVsdF9zaXplID0gdHlwZV9sZW5ndGhfdW5pdHMgKGVsdF90 eXBlKTsKLSsgIFVMT05HRVNUIGVsdF9vZmZzOwotICAgTE9OR0VTVCBlbHRfc3RyaWRlID0gVFlQ RV9CWVRFX1NUUklERSAoVFlQRV9JTkRFWF9UWVBFIChhcnJheV90eXBlKSk7Ci0gICBzdHJ1Y3Qg dmFsdWUgKnY7Ci0gCi1AQCAtNjc4LDcgKzY3OCw3IEBAIHZhbHVlX2NvbmNhdCAoc3RydWN0IHZh bHVlICphcmcxLCBzdHJ1Y3QKK0BAIC02NzQsNyArNjc0LDcgQEAKICAgIHN0cnVjdCB2YWx1ZSAq aW52YWwxOwogICAgc3RydWN0IHZhbHVlICppbnZhbDI7CiAgICBzdHJ1Y3QgdmFsdWUgKm91dHZh bCA9IE5VTEw7CkBAIC0zMjU5LDcgKzI5NjksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL3ZhbGFyaXRoLmMKICAgIGludCBjb3VudCwgaWR4OwogICAgY2hhciAqcHRyOwogICAg Y2hhciBpbmNoYXI7Ci1AQCAtMTUzMSw3ICsxNTMxLDcgQEAgdmFsdWVfYmlub3AgKHN0cnVjdCB2 YWx1ZSAqYXJnMSwgc3RydWN0CitAQCAtMTUyNyw3ICsxNTI3LDcgQEAKICBpbnQKICB2YWx1ZV9s b2dpY2FsX25vdCAoc3RydWN0IHZhbHVlICphcmcxKQogIHsKQEAgLTMyNjgsNyArMjk3OCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwogICAgY29uc3QgZ2Ri X2J5dGUgKnA7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTE7CiAgCi1AQCAtMTU2MiwxMSArMTU2Miwx MSBAQCB2YWx1ZV9sb2dpY2FsX25vdCAoc3RydWN0IHZhbHVlICphcmcxKQorQEAgLTE1NTgsMTEg KzE1NTgsMTEgQEAKICBzdGF0aWMgaW50CiAgdmFsdWVfc3RyY21wIChzdHJ1Y3QgdmFsdWUgKmFy ZzEsIHN0cnVjdCB2YWx1ZSAqYXJnMikKICB7CkBAIC0zMjgzLDIwICsyOTkzLDExIEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwogIAogICAgZm9yIChpID0gMDsg aSA8IGxlbjsgaSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Zh bG9wcy5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbG9wcy5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0xMS0w MiAyMToyMzoxMS4yNDAzNTE4MzggKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv dmFsb3BzLmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzgzNjQ5ODQgKzAxMDAKLUBAIC01MSw3ICs1 MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnNlYXJjaF9zdHJ1Y3RfZmllbGQKLSAKLSBzdGF0 aWMgc3RydWN0IHZhbHVlICpzZWFyY2hfc3RydWN0X21ldGhvZCAoY29uc3QgY2hhciAqLCBzdHJ1 Y3QgdmFsdWUgKiosCi0gCQkJCQkgICBzdHJ1Y3QgdmFsdWUgKiosCi0tCQkJCQkgICBpbnQsIGlu dCAqLCBzdHJ1Y3QgdHlwZSAqKTsKLSsJCQkJCSAgIExPTkdFU1QsIGludCAqLCBzdHJ1Y3QgdHlw ZSAqKTsKLSAKLSBzdGF0aWMgaW50IGZpbmRfb2xvYWRfY2hhbXBfbmFtZXNwYWNlIChzdHJ1Y3Qg dmFsdWUgKiosIGludCwKLSAJCQkJICAgICAgIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLAot QEAgLTc5LDcgKzc5LDcgQEAgb2xvYWRfY2xhc3NpZmljYXRpb24gY2xhc3NpZnlfb2xvYWRfbWF0 YworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMTE3NTEwNjMyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Zh bG9wcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTQ4NTMwMTk3ICswMjAwCitAQCAtNzksNyArNzks NyBAQAogIAkJCQkJICAgaW50LCBpbnQpOwogIAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKnZhbHVl X3N0cnVjdF9lbHRfZm9yX3JlZmVyZW5jZSAoc3RydWN0IHR5cGUgKiwKQEAgLTMzMDUsMTkgKzMw MDYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCQkJCQkJ ICAgICBjb25zdCBjaGFyICosCiAgCQkJCQkJICAgICBzdHJ1Y3QgdHlwZSAqLAogIAkJCQkJCSAg ICAgaW50LCBlbnVtIG5vc2lkZSk7Ci1AQCAtOTYsOSArOTYsOSBAQCBzdGF0aWMgQ09SRV9BRERS IGFsbG9jYXRlX3NwYWNlX2luX2luZmVyCi0gc3RhdGljIHN0cnVjdCB2YWx1ZSAqY2FzdF9pbnRv X2NvbXBsZXggKHN0cnVjdCB0eXBlICosIHN0cnVjdCB2YWx1ZSAqKTsKLSAKLSBzdGF0aWMgdm9p ZCBmaW5kX21ldGhvZF9saXN0IChzdHJ1Y3QgdmFsdWUgKiosIGNvbnN0IGNoYXIgKiwKLS0JCQkg ICAgICBpbnQsIHN0cnVjdCB0eXBlICosIHN0cnVjdCBmbl9maWVsZCAqKiwgaW50ICosCi0rCQkJ ICAgICAgTE9OR0VTVCwgc3RydWN0IHR5cGUgKiwgc3RydWN0IGZuX2ZpZWxkICoqLCBpbnQgKiwK LSAJCQkgICAgICBWRUMgKHhtZXRob2Rfd29ya2VyX3B0cikgKiosCi0tCQkJICAgICAgc3RydWN0 IHR5cGUgKiosIGludCAqKTsKLSsJCQkgICAgICBzdHJ1Y3QgdHlwZSAqKiwgTE9OR0VTVCAqKTsK LSAKLSB2b2lkIF9pbml0aWFsaXplX3ZhbG9wcyAodm9pZCk7Ci0gCi1AQCAtMTgzLDcgKzE4Myw3 IEBAIGZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0IGNoYXIgKm4KK0BAIC0xODMsNyAr MTgzLDcgQEAKICAgICBzcGFjZS4gICovCiAgCiAgc3RydWN0IHZhbHVlICoKQEAgLTMzMjYsMTcg KzMwMTUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgewog ICAgc3RydWN0IG9iamZpbGUgKm9iamY7CiAgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9IGZpbmRfZnVu Y3Rpb25faW5faW5mZXJpb3IgKCJtYWxsb2MiLCAmb2JqZik7Ci1AQCAtMjU2LDcgKzI1Niw4IEBA IHZhbHVlX2Nhc3Rfc3RydWN0cyAoc3RydWN0IHR5cGUgKnR5cGUsIHMKLSAgIGlmIChUWVBFX05B TUUgKHQyKSAhPSBOVUxMKQotICAgICB7Ci0gICAgICAgLyogVHJ5IGRvd25jYXN0aW5nIHVzaW5n IHRoZSBydW4tdGltZSB0eXBlIG9mIHRoZSB2YWx1ZS4gICovCi0tICAgICAgaW50IGZ1bGwsIHRv cCwgdXNpbmdfZW5jOwotKyAgICAgIGludCBmdWxsLCB1c2luZ19lbmM7Ci0rICAgICAgTE9OR0VT VCB0b3A7Ci0gICAgICAgc3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKLSAKLSAgICAgICByZWFsX3R5 cGUgPSB2YWx1ZV9ydHRpX3R5cGUgKHYyLCAmZnVsbCwgJnRvcCwgJnVzaW5nX2VuYyk7Ci1AQCAt Mzk2LDEyICszOTcsMTIgQEAgdmFsdWVfY2FzdCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB2 YQorQEAgLTM5NywxMiArMzk3LDEyIEBACiAgICBpZiAoY29kZTEgPT0gVFlQRV9DT0RFX0FSUkFZ KQogICAgICB7CiAgICAgICAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVfVEFSR0VU X1RZUEUgKHR5cGUpOwpAQCAtMzM1MSw2NCArMzAzMCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdmFsb3BzLmMKICAJICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwg bmV3X2xlbmd0aDsKICAKICAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwg Jmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUBAIC02MzUsNyArNjM2LDcgQEAgdmFsdWVf cmVpbnRlcnByZXRfY2FzdCAoc3RydWN0IHR5cGUgKnR5cAotIHN0YXRpYyBpbnQKLSBkeW5hbWlj X2Nhc3RfY2hlY2tfMSAoc3RydWN0IHR5cGUgKmRlc2lyZWRfdHlwZSwKLSAJCSAgICAgIGNvbnN0 IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICAgICAgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCSAg ICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJICAgICAgQ09SRV9BRERSIGFkZHJlc3Ms Ci0gCQkgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCSAgICAgIHN0cnVjdCB0eXBlICpzZWFy Y2hfdHlwZSwKLUBAIC02NDcsOCArNjQ4LDggQEAgZHluYW1pY19jYXN0X2NoZWNrXzEgKHN0cnVj dCB0eXBlICpkZXNpcgotIAotICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAo c2VhcmNoX3R5cGUpICYmIHJlc3VsdF9jb3VudCA8IDI7ICsraSkKLSAgICAgewotLSAgICAgIGlu dCBvZmZzZXQgPSBiYXNlY2xhc3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwgZW1i ZWRkZWRfb2Zmc2V0LAotLQkJCQkgICAgIGFkZHJlc3MsIHZhbCk7Ci0rICAgICAgTE9OR0VTVCBv ZmZzZXQgPSBiYXNlY2xhc3Nfb2Zmc2V0IChzZWFyY2hfdHlwZSwgaSwgdmFsYWRkciwKLSsJCQkJ CSBlbWJlZGRlZF9vZmZzZXQsIGFkZHJlc3MsIHZhbCk7Ci0gCi0gICAgICAgaWYgKGNsYXNzX3R5 cGVzX3NhbWVfcCAoZGVzaXJlZF90eXBlLCBUWVBFX0JBU0VDTEFTUyAoc2VhcmNoX3R5cGUsIGkp KSkKLSAJewotQEAgLTY4Miw3ICs2ODMsNyBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMSAoc3RydWN0 IHR5cGUgKmRlc2lyCi0gc3RhdGljIGludAotIGR5bmFtaWNfY2FzdF9jaGVja18yIChzdHJ1Y3Qg dHlwZSAqZGVzaXJlZF90eXBlLAotIAkJICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0t CQkgICAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LAotKwkJICAgICAgTE9OR0VTVCBlbWJlZGRlZF9v ZmZzZXQsCi0gCQkgICAgICBDT1JFX0FERFIgYWRkcmVzcywKLSAJCSAgICAgIHN0cnVjdCB2YWx1 ZSAqdmFsLAotIAkJICAgICAgc3RydWN0IHR5cGUgKnNlYXJjaF90eXBlLAotQEAgLTY5Miw3ICs2 OTMsNyBAQCBkeW5hbWljX2Nhc3RfY2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyCi0gCi0gICBm b3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChzZWFyY2hfdHlwZSkgJiYgcmVzdWx0 X2NvdW50IDwgMjsgKytpKQotICAgICB7Ci0tICAgICAgaW50IG9mZnNldDsKLSsgICAgICBMT05H RVNUIG9mZnNldDsKLSAKLSAgICAgICBpZiAoISBCQVNFVFlQRV9WSUFfUFVCTElDIChzZWFyY2hf dHlwZSwgaSkpCi0gCWNvbnRpbnVlOwotQEAgLTcyMyw3ICs3MjQsOCBAQCBkeW5hbWljX2Nhc3Rf Y2hlY2tfMiAoc3RydWN0IHR5cGUgKmRlc2lyCi0gc3RydWN0IHZhbHVlICoKLSB2YWx1ZV9keW5h bWljX2Nhc3QgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdmFsdWUgKmFyZykKLSB7Ci0tICBp bnQgZnVsbCwgdG9wLCB1c2luZ19lbmM7Ci0rICBpbnQgZnVsbCwgdXNpbmdfZW5jOwotKyAgTE9O R0VTVCB0b3A7Ci0gICBzdHJ1Y3QgdHlwZSAqcmVzb2x2ZWRfdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHR5cGUpOwotICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVf dHlwZSAoYXJnKSk7Ci0gICBzdHJ1Y3QgdHlwZSAqY2xhc3NfdHlwZSwgKnJ0dGlfdHlwZTsKLUBA IC05NTQsNyArOTU2LDcgQEAgdmFsdWVfYXRfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUsIENPUkVf QQotIH0KLSAKLSB2b2lkCi0tcmVhZF92YWx1ZV9tZW1vcnkgKHN0cnVjdCB2YWx1ZSAqdmFsLCBp bnQgZW1iZWRkZWRfb2Zmc2V0LAotK3JlYWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZh bCwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCi0gCQkgICBpbnQgc3RhY2ssIENPUkVfQUREUiBt ZW1hZGRyLAotIAkJICAgZ2RiX2J5dGUgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCkKLSB7Ci1AQCAt MTA1Nyw3ICsxMDU5LDcgQEAgdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzdHJ1 YworQEAgLTEwNjMsNyArMTA2Myw3IEBACiAgICAgICAgewogIAljb25zdCBnZGJfYnl0ZSAqZGVz dF9idWZmZXI7CiAgCUNPUkVfQUREUiBjaGFuZ2VkX2FkZHI7CkBAIC0zNDE3LDEzNCArMzAzOSw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMKICAgICAgICAgIGdk Yl9ieXRlIGJ1ZmZlcltzaXplb2YgKExPTkdFU1QpXTsKICAKICAJaWYgKHZhbHVlX2JpdHNpemUg KHRvdmFsKSkKLUBAIC0xMTI2LDcgKzExMjgsNyBAQCB2YWx1ZV9hc3NpZ24gKHN0cnVjdCB2YWx1 ZSAqdG92YWwsIHN0cnVjCi0gCWlmICh2YWx1ZV9iaXRzaXplICh0b3ZhbCkpCi0gCSAgewotIAkg ICAgc3RydWN0IHZhbHVlICpwYXJlbnQgPSB2YWx1ZV9wYXJlbnQgKHRvdmFsKTsKLS0JICAgIGlu dCBvZmZzZXQgPSB2YWx1ZV9vZmZzZXQgKHBhcmVudCkgKyB2YWx1ZV9vZmZzZXQgKHRvdmFsKTsK LSsJICAgIExPTkdFU1Qgb2Zmc2V0ID0gdmFsdWVfb2Zmc2V0IChwYXJlbnQpICsgdmFsdWVfb2Zm c2V0ICh0b3ZhbCk7Ci0gCSAgICBpbnQgY2hhbmdlZF9sZW47Ci0gCSAgICBnZGJfYnl0ZSBidWZm ZXJbc2l6ZW9mIChMT05HRVNUKV07Ci0gCSAgICBpbnQgb3B0aW0sIHVuYXZhaWw7Ci1AQCAtMTU5 MCw3ICsxNTkyLDcgQEAgdmFsdWVfYXJyYXkgKGludCBsb3dib3VuZCwgaW50IGhpZ2hib3VuZAot IHsKLSAgIGludCBuZWxlbTsKLSAgIGludCBpZHg7Ci0tICB1bnNpZ25lZCBpbnQgdHlwZWxlbmd0 aDsKLSsgIFVMT05HRVNUIHR5cGVsZW5ndGg7Ci0gICBzdHJ1Y3QgdmFsdWUgKnZhbDsKLSAgIHN0 cnVjdCB0eXBlICphcnJheXR5cGU7Ci0gCi1AQCAtMTc2Niw3ICsxNzY4LDcgQEAgdHlwZWNtcCAo aW50IHN0YXRpY3AsIGludCB2YXJhcmdzLCBpbnQgbgotIAotIHN0YXRpYyB2b2lkCi0gdXBkYXRl X3NlYXJjaF9yZXN1bHQgKHN0cnVjdCB2YWx1ZSAqKnJlc3VsdF9wdHIsIHN0cnVjdCB2YWx1ZSAq diwKLS0JCSAgICAgIGludCAqbGFzdF9ib2Zmc2V0LCBpbnQgYm9mZnNldCwKLSsJCSAgICAgIExP TkdFU1QgKmxhc3RfYm9mZnNldCwgTE9OR0VTVCBib2Zmc2V0LAotIAkJICAgICAgY29uc3QgY2hh ciAqbmFtZSwgc3RydWN0IHR5cGUgKnR5cGUpCi0gewotICAgaWYgKHYgIT0gTlVMTCkKLUBAIC0x NzkwLDEwICsxNzkyLDEwIEBAIHVwZGF0ZV9zZWFyY2hfcmVzdWx0IChzdHJ1Y3QgdmFsdWUgKipy ZXMKLSAgICBsb29rdXAgaXMgYW1iaWd1b3VzLiAgKi8KLSAKLSBzdGF0aWMgdm9pZAotLWRvX3Nl YXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1ZSAqYXJnMSwg aW50IG9mZnNldCwKLStkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBz dHJ1Y3QgdmFsdWUgKmFyZzEsIExPTkdFU1Qgb2Zmc2V0LAotIAkJCXN0cnVjdCB0eXBlICp0eXBl LCBpbnQgbG9va2luZ19mb3JfYmFzZWNsYXNzLAotIAkJCXN0cnVjdCB2YWx1ZSAqKnJlc3VsdF9w dHIsCi0tCQkJaW50ICpsYXN0X2JvZmZzZXQsCi0rCQkJTE9OR0VTVCAqbGFzdF9ib2Zmc2V0LAot IAkJCXN0cnVjdCB0eXBlICpvdXRlcm1vc3RfdHlwZSkKLSB7Ci0gICBpbnQgaTsKLUBAIC0xODQw LDcgKzE4NDIsNyBAQCBkb19zZWFyY2hfc3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lCi0g CQkgICA8dmFyaWFudCBmaWVsZD4uICAqLwotIAotIAkJc3RydWN0IHZhbHVlICp2ID0gTlVMTDsK LS0JCWludCBuZXdfb2Zmc2V0ID0gb2Zmc2V0OwotKwkJTE9OR0VTVCBuZXdfb2Zmc2V0ID0gb2Zm c2V0OwotIAotIAkJLyogVGhpcyBpcyBwcmV0dHkgZ3Jvc3MuICBJbiBHKyssIHRoZSBvZmZzZXQg aW4gYW4KLSAJCSAgIGFub255bW91cyB1bmlvbiBpcyByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5n IG9mIHRoZQotQEAgLTE4NzksNyArMTg4MSw3IEBAIGRvX3NlYXJjaF9zdHJ1Y3RfZmllbGQgKGNv bnN0IGNoYXIgKm5hbWUKLSAJCQkgICAgICYmIChzdHJjbXBfaXcgKG5hbWUsIAotIAkJCQkJICAg IFRZUEVfQkFTRUNMQVNTX05BTUUgKHR5cGUsIAotIAkJCQkJCQkJIGkpKSA9PSAwKSk7Ci0tICAg ICAgaW50IGJvZmZzZXQgPSB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGFyZzEpICsgb2Zmc2V0Owot KyAgICAgIExPTkdFU1QgYm9mZnNldCA9IHZhbHVlX2VtYmVkZGVkX29mZnNldCAoYXJnMSkgKyBv ZmZzZXQ7Ci0gCi0gICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKLSAJ ewotQEAgLTE5NTUsNyArMTk1Nyw3IEBAIHNlYXJjaF9zdHJ1Y3RfZmllbGQgKGNvbnN0IGNoYXIg Km5hbWUsIHMKLSAJCSAgICAgc3RydWN0IHR5cGUgKnR5cGUsIGludCBsb29raW5nX2Zvcl9iYXNl Y2xhc3MpCi0gewotICAgc3RydWN0IHZhbHVlICpyZXN1bHQgPSBOVUxMOwotLSAgaW50IGJvZmZz ZXQgPSAwOwotKyAgTE9OR0VTVCBib2Zmc2V0ID0gMDsKLSAKLSAgIGRvX3NlYXJjaF9zdHJ1Y3Rf ZmllbGQgKG5hbWUsIGFyZzEsIDAsIHR5cGUsIGxvb2tpbmdfZm9yX2Jhc2VjbGFzcywKLSAJCQkg ICZyZXN1bHQsICZib2Zmc2V0LCB0eXBlKTsKLUBAIC0xOTcyLDcgKzE5NzQsNyBAQCBzZWFyY2hf c3RydWN0X2ZpZWxkIChjb25zdCBjaGFyICpuYW1lLCBzCi0gCi0gc3RhdGljIHN0cnVjdCB2YWx1 ZSAqCi0gc2VhcmNoX3N0cnVjdF9tZXRob2QgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCB2YWx1 ZSAqKmFyZzFwLAotLQkJICAgICAgc3RydWN0IHZhbHVlICoqYXJncywgaW50IG9mZnNldCwKLSsJ CSAgICAgIHN0cnVjdCB2YWx1ZSAqKmFyZ3MsIExPTkdFU1Qgb2Zmc2V0LAotIAkJICAgICAgaW50 ICpzdGF0aWNfbWVtZnVuY3AsIHN0cnVjdCB0eXBlICp0eXBlKQotIHsKLSAgIGludCBpOwotQEAg LTIwMzYsOCArMjAzOCw4IEBAIHNlYXJjaF9zdHJ1Y3RfbWV0aG9kIChjb25zdCBjaGFyICpuYW1l LAotIAotICAgZm9yIChpID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKSAtIDE7IGkgPj0gMDsg aS0tKQotICAgICB7Ci0tICAgICAgaW50IGJhc2Vfb2Zmc2V0OwotLSAgICAgIGludCB0aGlzX29m ZnNldDsKLSsgICAgICBMT05HRVNUIGJhc2Vfb2Zmc2V0OwotKyAgICAgIExPTkdFU1QgdGhpc19v ZmZzZXQ7Ci0gCi0gICAgICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKLSAJ ewotQEAgLTIyNzIsMTAgKzIyNzQsMTAgQEAgdmFsdWVfc3RydWN0X2VsdF9iaXRwb3MgKHN0cnVj dCB2YWx1ZSAqKgotIAotIHN0YXRpYyB2b2lkCi0gZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZh bHVlICoqYXJncCwgY29uc3QgY2hhciAqbWV0aG9kLAotLQkJICBpbnQgb2Zmc2V0LCBzdHJ1Y3Qg dHlwZSAqdHlwZSwKLSsJCSAgTE9OR0VTVCBvZmZzZXQsIHN0cnVjdCB0eXBlICp0eXBlLAotIAkJ ICBzdHJ1Y3QgZm5fZmllbGQgKipmbl9saXN0LCBpbnQgKm51bV9mbnMsCi0gCQkgIFZFQyAoeG1l dGhvZF93b3JrZXJfcHRyKSAqKnhtX3dvcmtlcl92ZWMsCi0tCQkgIHN0cnVjdCB0eXBlICoqYmFz ZXR5cGUsIGludCAqYm9mZnNldCkKLSsJCSAgc3RydWN0IHR5cGUgKipiYXNldHlwZSwgTE9OR0VT VCAqYm9mZnNldCkKLSB7Ci0gICBpbnQgaTsKLSAgIHN0cnVjdCBmbl9maWVsZCAqZiA9IE5VTEw7 Ci1AQCAtMjMzMiw3ICsyMzM0LDcgQEAgZmluZF9tZXRob2RfbGlzdCAoc3RydWN0IHZhbHVlICoq YXJncCwgYwotICAgICAgZXh0ZW5zaW9uIG1ldGhvZHMuICAqLwotICAgZm9yIChpID0gVFlQRV9O X0JBU0VDTEFTU0VTICh0eXBlKSAtIDE7IGkgPj0gMDsgaS0tKQotICAgICB7Ci0tICAgICAgaW50 IGJhc2Vfb2Zmc2V0OwotKyAgICAgIExPTkdFU1QgYmFzZV9vZmZzZXQ7Ci0gCi0gICAgICAgaWYg KEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0eXBlLCBpKSkKLSAJewotQEAgLTIzNzUsNyArMjM3Nyw3 IEBAIHZhbHVlX2ZpbmRfb2xvYWRfbWV0aG9kX2xpc3QgKHN0cnVjdCB2YWwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgb2Zmc2V0LCBzdHJ1Y3QgZm5fZmllbGQgKipmbl9saXN0 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqbnVtX2ZucywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBWRUMgKHhtZXRob2Rfd29ya2VyX3B0cikgKip4bV93b3Jr ZXJfdmVjLAotLQkJCSAgICAgIHN0cnVjdCB0eXBlICoqYmFzZXR5cGUsIGludCAqYm9mZnNldCkK LSsJCQkgICAgICBzdHJ1Y3QgdHlwZSAqKmJhc2V0eXBlLCBMT05HRVNUICpib2Zmc2V0KQotIHsK LSAgIHN0cnVjdCB0eXBlICp0OwotIAotQEAgLTI0ODYsNyArMjQ4OCw3IEBAIGZpbmRfb3Zlcmxv YWRfbWF0Y2ggKHN0cnVjdCB2YWx1ZSAqKmFyZ3MKLSAgIC8qIE51bWJlciBvZiBvdmVybG9hZGVk IGluc3RhbmNlcyBiZWluZyBjb25zaWRlcmVkLiAgKi8KLSAgIGludCBudW1fZm5zID0gMDsKLSAg IHN0cnVjdCB0eXBlICpiYXNldHlwZSA9IE5VTEw7Ci0tICBpbnQgYm9mZnNldDsKLSsgIExPTkdF U1QgYm9mZnNldDsKLSAKLSAgIHN0cnVjdCBjbGVhbnVwICphbGxfY2xlYW51cHMgPSBtYWtlX2Ns ZWFudXAgKG51bGxfY2xlYW51cCwgTlVMTCk7Ci0gCi1AQCAtMzMwMCw3ICszMzAyLDcgQEAgY29t cGFyZV9wYXJhbWV0ZXJzIChzdHJ1Y3QgdHlwZSAqdDEsIHN0cgorQEAgLTMzMjgsNyArMzMyOCw3 IEBACiAgICAgdGhlIGZvcm0gIkRPTUFJTjo6TkFNRSIuICAqLwogIAogIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKgpAQCAtMzU1Myw3ICszMDQ4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi92YWxvcHMuYwogIAkJCQlzdHJ1Y3QgdHlwZSAqY3VydHlwZSwgY29uc3QgY2hhciAqbmFt ZSwKICAJCQkJc3RydWN0IHR5cGUgKmludHlwZSwgCiAgCQkJCWludCB3YW50X2FkZHJlc3MsCi1A QCAtMzMzNCw3ICszMzM2LDcgQEAgdmFsdWVfc3RydWN0X2VsdF9mb3JfcmVmZXJlbmNlIChzdHJ1 Y3QgdAorQEAgLTMzNjIsNyArMzM2Miw3IEBACiAgCSAgaWYgKHdhbnRfYWRkcmVzcykKICAJICAg IHJldHVybiB2YWx1ZV9mcm9tX2xvbmdlc3QKICAJICAgICAgKGxvb2t1cF9tZW1iZXJwdHJfdHlw ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwgZG9tYWluKSwKQEAgLTM1NjIsNyArMzA1Nyw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsb3BzLmMKICAJICBlbHNlIGlmIChu b3NpZGUgIT0gRVZBTF9OT1JNQUwpCiAgCSAgICByZXR1cm4gYWxsb2NhdGVfdmFsdWUgKFRZUEVf RklFTERfVFlQRSAodCwgaSkpOwogIAkgIGVsc2UKLUBAIC0zNTAyLDcgKzM1MDQsNyBAQCB2YWx1 ZV9zdHJ1Y3RfZWx0X2Zvcl9yZWZlcmVuY2UgKHN0cnVjdCB0CitAQCAtMzUzMCw3ICszNTMwLDcg QEAKICAgIGZvciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodCkgLSAxOyBpID49IDA7IGktLSkK ICAgICAgewogICAgICAgIHN0cnVjdCB2YWx1ZSAqdjsKQEAgLTM1NzEsMTYgKzMwNjYsNyBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbG9wcy5jCiAgCiAgICAgICAgaWYgKEJB U0VUWVBFX1ZJQV9WSVJUVUFMICh0LCBpKSkKICAJYmFzZV9vZmZzZXQgPSAwOwotQEAgLTM1ODMs NyArMzU4NSw3IEBAIHZhbHVlX21heWJlX25hbWVzcGFjZV9lbHQgKGNvbnN0IHN0cnVjdAotIAot IHN0cnVjdCB0eXBlICoKLSB2YWx1ZV9ydHRpX2luZGlyZWN0X3R5cGUgKHN0cnVjdCB2YWx1ZSAq diwgaW50ICpmdWxsLCAKLS0JCQkgIGludCAqdG9wLCBpbnQgKnVzaW5nX2VuYykKLSsJCQkgIExP TkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpCi0gewotICAgc3RydWN0IHZhbHVlICp0YXJnZXQg PSBOVUxMOwotICAgc3RydWN0IHR5cGUgKnR5cGUsICpyZWFsX3R5cGUsICp0YXJnZXRfdHlwZTsK LUBAIC0zNjUxLDEyICszNjUzLDEyIEBAIHZhbHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0 IHZhbHVlICoKK0BAIC0zNjc5LDcgKzM2NzksNyBAQAogIHN0cnVjdCB2YWx1ZSAqCiAgdmFsdWVf ZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkgICBzdHJ1Y3QgdHlwZSAqcnR5 cGUsIApAQCAtMzU4OSwyNiArMzA3NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3ZhbG9wcy5jCiAgCQkgICBpbnQgeHVzaW5nX2VuYykKICB7CiAgICBzdHJ1Y3QgdHlwZSAq cmVhbF90eXBlOwotICAgaW50IGZ1bGwgPSAwOwotLSAgaW50IHRvcCA9IC0xOwotKyAgTE9OR0VT VCB0b3AgPSAtMTsKLSAgIGludCB1c2luZ19lbmMgPSAwOwotICAgc3RydWN0IHZhbHVlICpuZXdf dmFsOwotIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3ZhbHByaW50LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE1MTAyNy5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMjQyMzUxODUxICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50 LmMJMjAxNS0xMS0wMiAyMToyMzoxMy4yMzkzNjQ5OTEgKzAxMDAKLUBAIC0yOTksNyArMjk5LDcg QEAgdmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eQotIGludAotIHZhbHBy aW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJCSBzdHJ1Y3Qg dHlwZSAqdHlwZSwKLS0JCQkgaW50IGVtYmVkZGVkX29mZnNldCwKLSsJCQkgTE9OR0VTVCBlbWJl ZGRlZF9vZmZzZXQsCi0gCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIHR5cGUg PSBjaGVja190eXBlZGVmICh0eXBlKTsKLUBAIC04MzQsNyArODM0LDcgQEAgZ2VuZXJpY192YWxf cHJpbnRfY29tcGxleCAoc3RydWN0IHR5cGUgKgorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9y aWcvZ2RiL3ZhbHByaW50LmMJMjAxNi0wNy0xNiAxNDozMzo0Mi4xMTg1MTA2NDAgKzAyMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFscHJpbnQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0 LjU0OTUzMDIwNSArMDIwMAorQEAgLTkwNyw3ICs5MDcsNyBAQAogIAogIHZvaWQKICBnZW5lcmlj X3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApA QCAtMzYxNywyNSArMzA4OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFs cHJpbnQuYwogIAkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3ZhbHVlLAogIAkJICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtOTY5LDcgKzk2OSw3IEBAIGdlbmVy aWNfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28KLSAgICBSRUNVUlNFLiAgKi8KLSAK LSB2b2lkCi0tdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkg ICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2Us Ci0gCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotIAkgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUBAIC0xMjIxLDcgKzEyMjEsNyBAQCB2YWxfcHJpbnRf dHlwZV9jb2RlX2ZsYWdzIChzdHJ1Y3QgdHlwZSAqCi0gCi0gdm9pZAotIHZhbF9wcmludF9zY2Fs YXJfZm9ybWF0dGVkIChzdHJ1Y3QgdHlwZSAqdHlwZSwKLS0JCQkgICAgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJICAgIGNvbnN0IGdkYl9ieXRlICp2 YWxhZGRyLCBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkgICAgY29uc3Qgc3RydWN0IHZh bHVlICp2YWwsCi0gCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zLAotIAkJCSAgICBpbnQgc2l6ZSwKLUBAIC0xNzY2LDcgKzE3NjYsNyBAQCBwcmludF9kZWNp bWFsX2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyCitAQCAtMTg0Miw3ICsxODQyLDcgQEAKICAK ICB2b2lkCiAgcHJpbnRfaGV4X2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBjb25zdCBn ZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTM2NDQsMTMgKzMwOTcsNyBAQCBJbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjcvZ2RiL3ZhbHByaW50LmMKICB7CiAgICBjb25zdCBnZGJfYnl0ZSAqcDsKICAK LUBAIC0xODgzLDIyICsxODgzLDIyIEBAIG1heWJlX3ByaW50X2FycmF5X2luZGV4IChzdHJ1Y3Qg dHlwZSAqaW4KLSAKLSB2b2lkCi0gdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlw ZSAqdHlwZSwKLS0JCQkgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRfb2Zm c2V0LAotKwkJCSAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1QgZW1iZWRkZWRfb2Zm c2V0LAotIAkJCSAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sCitA QCAtMTk2NCwxNyArMTk2NCwxNyBAQAogIAkJCSAgaW50IHJlY3Vyc2UsCiAgCQkJICBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zLApAQCAtMzY3Myw3ICszMTIwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi92YWxwcmludC5jCiAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZDsKICAg IExPTkdFU1QgbG93X3BvcywgaGlnaF9wb3M7CiAgCi1AQCAtMTk4OCw3ICsxOTg4LDcgQEAgdmFs X3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdAorQEAgLTIwNjQsNyArMjA2NCw3 IEBACiAgCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSArIDEsIHZhbCwgb3B0aW9ucywK ICAJCSAgICAgY3VycmVudF9sYW5ndWFnZSk7CiAgCSAgYW5ub3RhdGVfZWx0X3JlcCAocmVwcyk7 CkBAIC0zNjgyLDcgKzMxMjksNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3Zh bHByaW50LmMKICAJICBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAoKTsKICAKICAJICBpID0gcmVwMSAt IDE7Ci1AQCAtMjY0NCw3ICsyNjQ0LDcgQEAgcHJpbnRfY29udmVydGVkX2NoYXJzX3RvX29ic3Rh Y2sgKHN0cnVjdAorQEAgLTI3MjAsNyArMjcyMCw3IEBACiAgCiAgdm9pZAogIGdlbmVyaWNfcHJp bnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLCAKQEAgLTM2 OTEsMTYgKzMxMzgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmlu dC5jCiAgCQkgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkg IGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdmFscHJpbnQuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWxw cmludC5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFs cHJpbnQuaAkyMDE1LTExLTAyIDIxOjIzOjExLjI0MjM1MTg1MSArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjM5MzY0OTkx ICswMTAwCi1AQCAtMTE1LDExICsxMTUsMTEgQEAgZXh0ZXJuIHZvaWQgbWF5YmVfcHJpbnRfYXJy YXlfaW5kZXggKHN0cgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgdWlfZmlsZSAqc3RyZWFtLAotIAkJCQkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICopOwotIAotLWV4dGVybiB2b2lkIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3Ry dWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgaW50LAotK2V4dGVybiB2b2lkIHZhbF9wcmlu dF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKiwgY29uc3QgZ2RiX2J5dGUgKiwgTE9OR0VT VCwKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWxwcmludC5oCTIwMTYtMDct MTYgMTQ6MzM6NDIuMTE4NTEwNjQwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3ZhbHByaW50LmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NDk1MzAyMDUgKzAyMDAKK0BAIC0xMTks NyArMTE5LDcgQEAKICAJCQkJICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQs CiAgCQkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkgICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqLApAQCAtMzcwOSwxNiArMzE1MSw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFscHJpbnQuaAogIAogIGV4dGVybiB2b2lkIHZhbF9w cmludF90eXBlX2NvZGVfaW50IChzdHJ1Y3QgdHlwZSAqLCBjb25zdCBnZGJfYnl0ZSAqLAogIAkJ CQkgICAgIHN0cnVjdCB1aV9maWxlICopOwotQEAgLTEyOSw3ICsxMjksNyBAQCBleHRlcm4gdm9p ZCB2YWxfcHJpbnRfdHlwZV9jb2RlX2ZsYWdzIChzCi0gCQkJCSAgICAgICBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtKTsKLSAKLSBleHRlcm4gdm9pZCB2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAo c3RydWN0IHR5cGUgKiwKLS0JCQkJCWNvbnN0IGdkYl9ieXRlICosIGludCwKLSsJCQkJCWNvbnN0 IGdkYl9ieXRlICosIExPTkdFU1QsCi0gCQkJCQljb25zdCBzdHJ1Y3QgdmFsdWUgKiwKLSAJCQkJ CWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICosCi0gCQkJCQlpbnQsCi1AQCAtMTQ1 LDcgKzE0NSw3IEBAIGV4dGVybiB2b2lkIHByaW50X2RlY2ltYWxfY2hhcnMgKHN0cnVjdAorQEAg LTE0MSw3ICsxNDEsNyBAQAogIAkJCQkgdW5zaWduZWQgaW50LCBlbnVtIGJmZF9lbmRpYW4pOwog IAogIGV4dGVybiB2b2lkIHByaW50X2hleF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKiwgY29uc3Qg Z2RiX2J5dGUgKiwKQEAgLTM3MjcsNyArMzE2MCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1 MTAyNy9nZGIvdmFscHJpbnQuaAogIAogIGV4dGVybiB2b2lkIHByaW50X2NoYXJfY2hhcnMgKHN0 cnVjdCB1aV9maWxlICosIHN0cnVjdCB0eXBlICosCiAgCQkJICAgICAgY29uc3QgZ2RiX2J5dGUg KiwgdW5zaWduZWQgaW50LCBlbnVtIGJmZF9lbmRpYW4pOwotQEAgLTE5NCw3ICsxOTQsNyBAQCBz dHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGVjb3JhdGlvbnMKK0BAIC0xOTQsNyArMTk0LDcgQEAK ICAKICAKICBleHRlcm4gdm9pZCBnZW5lcmljX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUs IGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMzczNiw3ICszMTY5LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWxwcmludC5oCiAgCQkJICAgICAgIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUg Km9yaWdpbmFsX3ZhbHVlLAogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucywKLUBAIC0yMDQsNyArMjA0LDcgQEAgZXh0ZXJuIHZvaWQgZ2VuZXJpY19l bWl0X2NoYXIgKGludCBjLCBzdAorQEAgLTIwNCw3ICsyMDQsNyBAQAogIAkJCSAgICAgICBpbnQg cXVvdGVyLCBjb25zdCBjaGFyICplbmNvZGluZyk7CiAgCiAgZXh0ZXJuIHZvaWQgZ2VuZXJpY19w cmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIApAQCAt Mzc0NSw4MyArMzE3OCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHBy aW50LmgKICAJCQkgICAgICBjb25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2Vz LAogIAkJCSAgICAgIGludCBxdW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJ CSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNzE2L2dkYi92YWx1ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcu b3JpZy9nZGIvdmFsdWUuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI0ODM1MTg5MCArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQx MzY1MDA0ICswMTAwCi1AQCAtNjYsMTAgKzY2LDEwIEBAIHN0cnVjdCBpbnRlcm5hbF9mdW5jdGlv bgotIHN0cnVjdCByYW5nZQotIHsKLSAgIC8qIExvd2VzdCBvZmZzZXQgaW4gdGhlIHJhbmdlLiAg Ki8KLS0gIGludCBvZmZzZXQ7Ci0rICBMT05HRVNUIG9mZnNldDsKLSAKLSAgIC8qIExlbmd0aCBv ZiB0aGUgcmFuZ2UuICAqLwotLSAgaW50IGxlbmd0aDsKLSsgIExPTkdFU1QgbGVuZ3RoOwotIH07 Ci0gCi0gdHlwZWRlZiBzdHJ1Y3QgcmFuZ2UgcmFuZ2VfczsKLUBAIC04MCw4ICs4MCw4IEBAIERF Rl9WRUNfTyhyYW5nZV9zKTsKLSAgICBbb2Zmc2V0Miwgb2Zmc2V0MitsZW4yKSBvdmVybGFwLiAg Ki8KLSAKLSBzdGF0aWMgaW50Ci0tcmFuZ2VzX292ZXJsYXAgKGludCBvZmZzZXQxLCBpbnQgbGVu MSwKLS0JCWludCBvZmZzZXQyLCBpbnQgbGVuMikKLStyYW5nZXNfb3ZlcmxhcCAoTE9OR0VTVCBv ZmZzZXQxLCBMT05HRVNUIGxlbjEsCi0rCQlMT05HRVNUIG9mZnNldDIsIExPTkdFU1QgbGVuMikK LSB7Ci0gICBVTE9OR0VTVCBoLCBsOwotIAotQEAgLTEwNSw3ICsxMDUsNyBAQCByYW5nZV9sZXNz dGhhbiAoY29uc3QgcmFuZ2VfcyAqcjEsIGNvbnN0Ci0gICAgT0ZGU0VUK0xFTkdUSCkuICAqLwot IAotIHN0YXRpYyBpbnQKLS1yYW5nZXNfY29udGFpbiAoVkVDKHJhbmdlX3MpICpyYW5nZXMsIGlu dCBvZmZzZXQsIGludCBsZW5ndGgpCi0rcmFuZ2VzX2NvbnRhaW4gKFZFQyhyYW5nZV9zKSAqcmFu Z2VzLCBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgcmFuZ2VfcyB3aGF0 OwotICAgaW50IGk7Ci1AQCAtMjQwLDcgKzI0MCw3IEBAIHN0cnVjdCB2YWx1ZQotICAgICAgdGhl IGFkZHJlc3MuICBJZiBsdmFsID09IGx2YWxfcmVnaXN0ZXIsIHRoaXMgaXMgYSBmdXJ0aGVyIG9m ZnNldCBmcm9tCi0gICAgICBsb2NhdGlvbi5hZGRyZXNzIHdpdGhpbiB0aGUgcmVnaXN0ZXJzIHN0 cnVjdHVyZS4gIE5vdGUgYWxzbyB0aGUgbWVtYmVyCi0gICAgICBlbWJlZGRlZF9vZmZzZXQgYmVs b3cuICAqLwotLSAgaW50IG9mZnNldDsKLSsgIExPTkdFU1Qgb2Zmc2V0OwotIAotICAgLyogT25s eSB1c2VkIGZvciBiaXRmaWVsZHM7IG51bWJlciBvZiBiaXRzIGNvbnRhaW5lZCBpbiB0aGVtLiAg Ki8KLSAgIGludCBiaXRzaXplOwotQEAgLTMxMCw4ICszMTAsOCBAQCBzdHJ1Y3QgdmFsdWUKLSAg ICAgIGB0eXBlJywgYW5kIGBlbWJlZGRlZF9vZmZzZXQnIGlzIHplcm8sIHNvIGV2ZXJ5dGhpbmcg d29ya3MKLSAgICAgIG5vcm1hbGx5LiAgKi8KLSAgIHN0cnVjdCB0eXBlICplbmNsb3NpbmdfdHlw ZTsKLS0gIGludCBlbWJlZGRlZF9vZmZzZXQ7Ci0tICBpbnQgcG9pbnRlZF90b19vZmZzZXQ7Ci0r ICBMT05HRVNUIGVtYmVkZGVkX29mZnNldDsKLSsgIExPTkdFU1QgcG9pbnRlZF90b19vZmZzZXQ7 Ci0gCi0gICAvKiBWYWx1ZXMgYXJlIHN0b3JlZCBpbiBhIGNoYWluLCBzbyB0aGF0IHRoZXkgY2Fu IGJlIGRlbGV0ZWQgZWFzaWx5Ci0gICAgICBvdmVyIGNhbGxzIHRvIHRoZSBpbmZlcmlvci4gIFZh bHVlcyBhc3NpZ25lZCB0byBpbnRlcm5hbAotQEAgLTM1MCw3ICszNTAsNyBAQCBnZXRfdmFsdWVf YXJjaCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1Ci0gfQotIAotIGludAotLXZhbHVlX2JpdHNf YXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVu Z3RoKQotK3ZhbHVlX2JpdHNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBM T05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpCi0gewotICAgZ2RiX2Fzc2VydCAoIXZhbHVl LT5sYXp5KTsKLSAKLUBAIC0zNTgsNyArMzU4LDggQEAgdmFsdWVfYml0c19hdmFpbGFibGUgKGNv bnN0IHN0cnVjdCB2YWx1ZQotIH0KLSAKLSBpbnQKLS12YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBvZmZzZXQsIGludCBsZW5ndGgpCi0rdmFsdWVf Ynl0ZXNfYXZhaWxhYmxlIChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9mZnNl dCwKLSsJCSAgICAgICBMT05HRVNUIGxlbmd0aCkKLSB7Ci0gICByZXR1cm4gdmFsdWVfYml0c19h dmFpbGFibGUgKHZhbHVlLAotIAkJCSAgICAgICBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1A QCAtMzY2LDcgKzM2Nyw4IEBAIHZhbHVlX2J5dGVzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZh bHUKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi92YWx1ZS5jCTIwMTYtMDctMTYg MTQ6MzM6NDIuMTE5NTEwNjQ4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Zh bHVlLmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NDk1MzAyMDUgKzAyMDAKK0BAIC0zNjYsNyArMzY2 LDggQEAKICB9CiAgCiAgaW50CkBAIC0zODMxLDM2ICszMTkyLDcgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5jCiAgewogICAgZ2RiX2Fzc2VydCAoIXZhbHVlLT5sYXp5 KTsKICAKLUBAIC00MjgsNyArNDMwLDggQEAgdmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dCAo c3RydWN0IHZhbAotICAgIE9GRlNFVCBiaXRzLCBhbmQgZXh0ZW5kaW5nIGZvciB0aGUgbmV4dCBM RU5HVEggYml0cy4gICovCi0gCi0gc3RhdGljIHZvaWQKLS1pbnNlcnRfaW50b19iaXRfcmFuZ2Vf dmVjdG9yIChWRUMocmFuZ2VfcykgKip2ZWN0b3JwLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQot K2luc2VydF9pbnRvX2JpdF9yYW5nZV92ZWN0b3IgKFZFQyhyYW5nZV9zKSAqKnZlY3RvcnAsIExP TkdFU1Qgb2Zmc2V0LAotKwkJCSAgICAgIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIHJhbmdlX3Mg bmV3cjsKLSAgIGludCBpOwotQEAgLTU5OSw3ICs2MDIsOCBAQCBtYXJrX3ZhbHVlX2JpdHNfdW5h dmFpbGFibGUgKHN0cnVjdCB2YWx1Ci0gfQotIAotIHZvaWQKLS1tYXJrX3ZhbHVlX2J5dGVzX3Vu YXZhaWxhYmxlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQot K21hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdF U1Qgb2Zmc2V0LAotKwkJCSAgICAgIExPTkdFU1QgbGVuZ3RoKQotIHsKLSAgIG1hcmtfdmFsdWVf Yml0c191bmF2YWlsYWJsZSAodmFsdWUsCi0gCQkJICAgICAgIG9mZnNldCAqIFRBUkdFVF9DSEFS X0JJVCwKLUBAIC02MTMsNyArNjE3LDcgQEAgbWFya192YWx1ZV9ieXRlc191bmF2YWlsYWJsZSAo c3RydWN0IHZhbAotIAotIHN0YXRpYyBpbnQKLSBmaW5kX2ZpcnN0X3JhbmdlX292ZXJsYXAgKFZF QyhyYW5nZV9zKSAqcmFuZ2VzLCBpbnQgcG9zLAotLQkJCSAgaW50IG9mZnNldCwgaW50IGxlbmd0 aCkKLSsJCQkgIExPTkdFU1Qgb2Zmc2V0LCBMT05HRVNUIGxlbmd0aCkKLSB7Ci0gICByYW5nZV9z ICpyOwotICAgaW50IGk7Ci1AQCAtODA5LDkgKzgxMyw5IEBAIGZpbmRfZmlyc3RfcmFuZ2Vfb3Zl cmxhcF9hbmRfbWF0Y2ggKHN0cnUKK0BAIC04MTIsOSArODEzLDkgQEAKICAgICBSZXR1cm4gdHJ1 ZSBpZiB0aGUgYXZhaWxhYmxlIGJpdHMgbWF0Y2guICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTM4 NzMsNTkgKzMyMDUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3ZhbHVlLmMK ICB7CiAgICAvKiBFYWNoIGFycmF5IGVsZW1lbnQgY29ycmVzcG9uZHMgdG8gYSByYW5nZXMgc291 cmNlICh1bmF2YWlsYWJsZSwKICAgICAgIG9wdGltaXplZCBvdXQpLiAgJzEnIGlzIGZvciBWQUwx LCAnMicgZm9yIFZBTDIuICAqLwotQEAgLTg3MSw5ICs4NzUsOSBAQCB2YWx1ZV9jb250ZW50c19i aXRzX2VxIChjb25zdCBzdHJ1Y3QgdmFsCi0gfQotIAotIGludAotLXZhbHVlX2NvbnRlbnRzX2Vx IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDEsIGludCBvZmZzZXQxLAotLQkJICAgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwyLCBpbnQgb2Zmc2V0MiwKLS0JCSAgIGludCBsZW5ndGgpCi0rdmFsdWVf Y29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsMSwgTE9OR0VTVCBvZmZzZXQxLAot KwkJICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwyLCBMT05HRVNUIG9mZnNldDIsCi0rCQkgICBM T05HRVNUIGxlbmd0aCkKLSB7Ci0gICByZXR1cm4gdmFsdWVfY29udGVudHNfYml0c19lcSAodmFs MSwgb2Zmc2V0MSAqIFRBUkdFVF9DSEFSX0JJVCwKLSAJCQkJIHZhbDIsIG9mZnNldDIgKiBUQVJH RVRfQ0hBUl9CSVQsCi1AQCAtMTAzNywxMyArMTA0MSwxMyBAQCBkZXByZWNhdGVkX3NldF92YWx1 ZV90eXBlIChzdHJ1Y3QgdmFsdWUKLSAgIHZhbHVlLT50eXBlID0gdHlwZTsKLSB9Ci0gCi0taW50 Ci0rTE9OR0VTVAotIHZhbHVlX29mZnNldCAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSkKLSB7 Ci0gICByZXR1cm4gdmFsdWUtPm9mZnNldDsKLSB9Ci0gdm9pZAotLXNldF92YWx1ZV9vZmZzZXQg KHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBvZmZzZXQpCi0rc2V0X3ZhbHVlX29mZnNldCAoc3Ry dWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCBvZmZzZXQpCi0gewotICAgdmFsdWUtPm9mZnNldCA9 IG9mZnNldDsKLSB9Ci1AQCAtMTI1Nyw4ICsxMjYxLDkgQEAgdmFsdWVfcmFuZ2VzX2NvcHlfYWRq dXN0ZWQgKHN0cnVjdCB2YWx1ZQotICAgIERTVF9PRkZTRVQrTEVOR1RIKSByYW5nZSBhcmUgd2hv bGx5IGF2YWlsYWJsZS4gICovCi0gCi0gdm9pZAotLXZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChz dHJ1Y3QgdmFsdWUgKmRzdCwgaW50IGRzdF9vZmZzZXQsCi0tCQkJIHN0cnVjdCB2YWx1ZSAqc3Jj LCBpbnQgc3JjX29mZnNldCwgaW50IGxlbmd0aCkKLSt2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAo c3RydWN0IHZhbHVlICpkc3QsIHNzaXplX3QgZHN0X29mZnNldCwKLSsJCQkgc3RydWN0IHZhbHVl ICpzcmMsIHNzaXplX3Qgc3JjX29mZnNldCwKLSsJCQkgc3NpemVfdCBsZW5ndGgpCi0gewotICAg cmFuZ2VfcyAqcjsKLSAgIGludCBzcmNfYml0X29mZnNldCwgZHN0X2JpdF9vZmZzZXQsIGJpdF9s ZW5ndGg7Ci1AQCAtMTMwNSw4ICsxMzEwLDggQEAgdmFsdWVfY29udGVudHNfY29weV9yYXcgKHN0 cnVjdCB2YWx1ZSAqZAotICAgIERTVF9PRkZTRVQrTEVOR1RIKSByYW5nZSBhcmUgd2hvbGx5IGF2 YWlsYWJsZS4gICovCi0gCi0gdm9pZAotLXZhbHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1 ZSAqZHN0LCBpbnQgZHN0X29mZnNldCwKLS0JCSAgICAgc3RydWN0IHZhbHVlICpzcmMsIGludCBz cmNfb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK3ZhbHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1 ZSAqZHN0LCBzc2l6ZV90IGRzdF9vZmZzZXQsCi0rCQkgICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBz c2l6ZV90IHNyY19vZmZzZXQsIHNzaXplX3QgbGVuZ3RoKQotIHsKLSAgIGlmIChzcmMtPmxhenkp Ci0gICAgIHZhbHVlX2ZldGNoX2xhenkgKHNyYyk7Ci1AQCAtMTM3MCw3ICsxMzc1LDggQEAgdmFs dWVfb3B0aW1pemVkX291dCAoc3RydWN0IHZhbHVlICp2YWx1ZQorQEAgLTE0NTYsNyArMTQ1Nyw4 IEBACiAgICAgdGhlIGZvbGxvd2luZyBMRU5HVEggYnl0ZXMuICAqLwogIAogIHZvaWQKQEAgLTM5 MzUsMTk5ICszMjE1LDIwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsdWUu YwogIHsKICAgIG1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0ICh2YWx1ZSwKICAJCQkJIG9m ZnNldCAqIFRBUkdFVF9DSEFSX0JJVCwKLUBAIC0xMzgwLDE0ICsxMzg2LDE1IEBAIG1hcmtfdmFs dWVfYnl0ZXNfb3B0aW1pemVkX291dCAoc3RydWN0IHYKLSAvKiBTZWUgdmFsdWUuaC4gICovCi0g Ci0gdm9pZAotLW1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdmFsdWUgKnZh bHVlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotK21hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRf b3V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIG9mZnNldCwKLSsJCQkgICAgICAgTE9O R0VTVCBsZW5ndGgpCi0gewotICAgaW5zZXJ0X2ludG9fYml0X3JhbmdlX3ZlY3RvciAoJnZhbHVl LT5vcHRpbWl6ZWRfb3V0LCBvZmZzZXQsIGxlbmd0aCk7Ci0gfQotIAotIGludAotIHZhbHVlX2Jp dHNfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJICAg ICAgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKLSsJCQkgICAgICBMT05HRVNUIG9mZnNldCwgTE9O R0VTVCBsZW5ndGgpCi0gewotICAgaWYgKHZhbHVlLT5sdmFsICE9IGx2YWxfY29tcHV0ZWQKLSAg ICAgICB8fCAhdmFsdWUtPmxvY2F0aW9uLmNvbXB1dGVkLmZ1bmNzLT5jaGVja19zeW50aGV0aWNf cG9pbnRlcikKLUBAIC0xMzk3LDI2ICsxNDA0LDI2IEBAIHZhbHVlX2JpdHNfc3ludGhldGljX3Bv aW50ZXIgKGNvbnN0IHN0cnUKLSAJCQkJCQkJCSAgbGVuZ3RoKTsKLSB9Ci0gCi0taW50Ci0rTE9O R0VTVAotIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSkKLSB7Ci0g ICByZXR1cm4gdmFsdWUtPmVtYmVkZGVkX29mZnNldDsKLSB9Ci0gCi0gdm9pZAotLXNldF92YWx1 ZV9lbWJlZGRlZF9vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCi0rc2V0X3Zh bHVlX2VtYmVkZGVkX29mZnNldCAoc3RydWN0IHZhbHVlICp2YWx1ZSwgTE9OR0VTVCB2YWwpCi0g ewotICAgdmFsdWUtPmVtYmVkZGVkX29mZnNldCA9IHZhbDsKLSB9Ci0gCi0taW50Ci0rTE9OR0VT VAotIHZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQotIHsKLSAg IHJldHVybiB2YWx1ZS0+cG9pbnRlZF90b19vZmZzZXQ7Ci0gfQotIAotIHZvaWQKLS1zZXRfdmFs dWVfcG9pbnRlZF90b19vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpCi0rc2V0 X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZh bCkKLSB7Ci0gICB2YWx1ZS0+cG9pbnRlZF90b19vZmZzZXQgPSB2YWw7Ci0gfQotQEAgLTIyOTUs NyArMjMwMiw3IEBAIGdldF9pbnRlcm5hbHZhcl9mdW5jdGlvbiAoc3RydWN0IGludGVybmEKLSB9 Ci0gCi0gdm9pZAotLXNldF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZh ciAqdmFyLCBpbnQgb2Zmc2V0LCBpbnQgYml0cG9zLAotK3NldF9pbnRlcm5hbHZhcl9jb21wb25l bnQgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBMT05HRVNUIG9mZnNldCwgaW50IGJpdHBvcywK LSAJCQkgICBpbnQgYml0c2l6ZSwgc3RydWN0IHZhbHVlICpuZXd2YWwpCi0gewotICAgZ2RiX2J5 dGUgKmFkZHI7Ci1AQCAtMzAyMCw3ICszMDI3LDcgQEAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBl IChzdHJ1Y3QgdmFsdWUgKgotICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVsZC4gICovCi0gCi0g c3RydWN0IHZhbHVlICoKLS12YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJn MSwgaW50IG9mZnNldCwKLSt2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJn MSwgTE9OR0VTVCBvZmZzZXQsCi0gCQkgICAgICAgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBlICph cmdfdHlwZSkKLSB7Ci0gICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMzA3Miw3ICszMDc5LDcgQEAg dmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZwotICAgICAgIC8qIFRoaXMg ZmllbGQgaXMgYWN0dWFsbHkgYSBiYXNlIHN1Ym9iamVjdCwgc28gcHJlc2VydmUgdGhlCi0gCSBl bnRpcmUgb2JqZWN0J3MgY29udGVudHMgZm9yIGxhdGVyIHJlZmVyZW5jZXMgdG8gdmlydHVhbAot IAkgYmFzZXMsIGV0Yy4gICovCi0tICAgICAgaW50IGJvZmZzZXQ7Ci0rICAgICAgTE9OR0VTVCBi b2Zmc2V0OwotIAotICAgICAgIC8qIExhenkgcmVnaXN0ZXIgdmFsdWVzIHdpdGggb2Zmc2V0cyBh cmUgbm90IHN1cHBvcnRlZC4gICovCi0gICAgICAgaWYgKFZBTFVFX0xWQUwgKGFyZzEpID09IGx2 YWxfcmVnaXN0ZXIgJiYgdmFsdWVfbGF6eSAoYXJnMSkpCi1AQCAtMzE1OSw3ICszMTY2LDcgQEAg dmFsdWVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IGZpZQotIHN0cnVjdCB2YWx1ZSAq Ci0gdmFsdWVfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLCBzdHJ1Y3QgZm5fZmllbGQg KmYsCi0gCQlpbnQgaiwgc3RydWN0IHR5cGUgKnR5cGUsCi0tCQlpbnQgb2Zmc2V0KQotKwkJTE9O R0VTVCBvZmZzZXQpCi0gewotICAgc3RydWN0IHZhbHVlICp2OwotICAgc3RydWN0IHR5cGUgKmZ0 eXBlID0gVFlQRV9GTl9GSUVMRF9UWVBFIChmLCBqKTsKLUBAIC0zMjI5LDE0ICszMjM2LDE0IEBA IHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKLSAKLSBzdGF0aWMgTE9O R0VTVAotIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBlLCBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUpCi0r CQkgICAgIExPTkdFU1QgYml0cG9zLCBpbnQgYml0c2l6ZSkKLSB7Ci0gICBlbnVtIGJmZF9lbmRp YW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2V0X3R5cGVfYXJjaCAoZmllbGRf dHlwZSkpOwotICAgVUxPTkdFU1QgdmFsOwotICAgVUxPTkdFU1QgdmFsbWFzazsKLSAgIGludCBs c2Jjb3VudDsKLSAgIGludCBieXRlc19yZWFkOwotLSAgaW50IHJlYWRfb2Zmc2V0OwotKyAgTE9O R0VTVCByZWFkX29mZnNldDsKLSAKLSAgIC8qIFJlYWQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIGJ5 dGVzIHJlcXVpcmVkOyB0aGVyZSBtYXkgbm90IGJlCi0gICAgICBlbm91Z2ggYnl0ZXMgdG8gcmVh ZCBhbiBlbnRpcmUgVUxPTkdFU1QuICAqLwotQEAgLTMyODUsNyArMzI5Miw3IEBAIHVucGFja19i aXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF8KLSAKLSBpbnQKLSB1bnBhY2tfdmFsdWVf ZmllbGRfYXNfbG9uZyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LAotLQkJCSAgICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgZmllbGRubywKLSsJCQkgICAgTE9O R0VTVCBlbWJlZGRlZF9vZmZzZXQsIGludCBmaWVsZG5vLAotIAkJCSAgICBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwgTE9OR0VTVCAqcmVzdWx0KQotIHsKLSAgIGludCBiaXRwb3MgPSBUWVBFX0ZJ RUxEX0JJVFBPUyAodHlwZSwgZmllbGRubyk7Ci1AQCAtMzMyOSw3ICszMzM2LDcgQEAgdW5wYWNr X2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLAotIHZvaWQKLSB1bnBhY2tfdmFsdWVf Yml0ZmllbGQgKHN0cnVjdCB2YWx1ZSAqZGVzdF92YWwsCi0gCQkgICAgICAgaW50IGJpdHBvcywg aW50IGJpdHNpemUsCi0tCQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIGludCBlbWJl ZGRlZF9vZmZzZXQsCi0rCQkgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsIExPTkdFU1Qg ZW1iZWRkZWRfb2Zmc2V0LAotIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsK LSAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyOwotQEAgLTMzNjcsNyArMzM3NCw3IEBAIHVu cGFja192YWx1ZV9iaXRmaWVsZCAoc3RydWN0IHZhbHVlICpkZXMKLSBzdHJ1Y3QgdmFsdWUgKgot IHZhbHVlX2ZpZWxkX2JpdGZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkbm8sCi0g CQkgICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCSAgICAgIGludCBlbWJlZGRlZF9v ZmZzZXQsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotKwkJICAgICAgTE9OR0VTVCBlbWJlZGRl ZF9vZmZzZXQsIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsKQotIHsKLSAgIGludCBiaXRwb3MgPSBU WVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgZmllbGRubyk7Ci0gICBpbnQgYml0c2l6ZSA9IFRZUEVf RklFTERfQklUU0laRSAodHlwZSwgZmllbGRubyk7Ci1AQCAtMzM4OCwxMiArMzM5NSwxMiBAQCB2 YWx1ZV9maWVsZF9iaXRmaWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsCi0gCi0gdm9pZAotIG1vZGlm eV9maWVsZCAoc3RydWN0IHR5cGUgKnR5cGUsIGdkYl9ieXRlICphZGRyLAotLQkgICAgICBMT05H RVNUIGZpZWxkdmFsLCBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSkKLSsJICAgICAgTE9OR0VTVCBm aWVsZHZhbCwgTE9OR0VTVCBiaXRwb3MsIGludCBiaXRzaXplKQotIHsKLSAgIGVudW0gYmZkX2Vu ZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh0eXBl KSk7Ci0gICBVTE9OR0VTVCBvd29yZDsKLSAgIFVMT05HRVNUIG1hc2sgPSAoVUxPTkdFU1QpIC0x ID4+ICg4ICogc2l6ZW9mIChVTE9OR0VTVCkgLSBiaXRzaXplKTsKLS0gIGludCBieXRlc2l6ZTsK LSsgIExPTkdFU1QgYnl0ZXNpemU7Ci0gCi0gICAvKiBOb3JtYWxpemUgQklUUE9TLiAgKi8KLSAg IGFkZHIgKz0gYml0cG9zIC8gODsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFs dWUuaAorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92YWx1ZS5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvdmFsdWUuaAkyMDE1LTExLTAyIDIx OjIzOjExLjI1MDM1MTkwNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1 ZS5oCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQxMzY1MDA0ICswMTAwCi1AQCAtMTM1LDggKzEzNSw4 IEBAIGV4dGVybiB2b2lkIHNldF92YWx1ZV9wYXJlbnQgKHN0cnVjdCB2YWwKLSAgICB3aXRoaW4g dGhlIHJlZ2lzdGVycyBzdHJ1Y3R1cmUuICBOb3RlIGFsc28gdGhlIG1lbWJlcgotICAgIGVtYmVk ZGVkX29mZnNldCBiZWxvdy4gICovCi0gCi0tZXh0ZXJuIGludCB2YWx1ZV9vZmZzZXQgKGNvbnN0 IHN0cnVjdCB2YWx1ZSAqKTsKLS1leHRlcm4gdm9pZCBzZXRfdmFsdWVfb2Zmc2V0IChzdHJ1Y3Qg dmFsdWUgKiwgaW50IG9mZnNldCk7Ci0rZXh0ZXJuIExPTkdFU1QgdmFsdWVfb2Zmc2V0IChjb25z dCBzdHJ1Y3QgdmFsdWUgKik7Ci0rZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX29mZnNldCAoc3RydWN0 IHZhbHVlICosIExPTkdFU1Qgb2Zmc2V0KTsKLSAKLSAvKiBUaGUgY29tbWVudCBmcm9tICJzdHJ1 Y3QgdmFsdWUiIHJlYWRzOiBgYElzIGl0IG1vZGlmaWFibGU/ICBPbmx5Ci0gICAgcmVsZXZhbnQg aWYgbHZhbCAhPSBub3RfbHZhbC4nJy4gIFNob3VsZG4ndCB0aGUgdmFsdWUgaW5zdGVhZCBiZQot QEAgLTIwNSwxMCArMjA1LDEwIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfYWN0dWFsX3R5 cGUgKHMKLSAJCQkJICAgICAgIGludCByZXNvbHZlX3NpbXBsZV90eXBlcywKLSAJCQkJICAgICAg IGludCAqcmVhbF90eXBlX2ZvdW5kKTsKLSAKLS1leHRlcm4gaW50IHZhbHVlX3BvaW50ZWRfdG9f b2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKLS1leHRlcm4gdm9pZCBzZXRfdmFsdWVfcG9p bnRlZF90b19vZmZzZXQgKHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCB2YWwpOwotLWV4dGVybiBp bnQgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKLS1leHRlcm4g dm9pZCBzZXRfdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQg dmFsKTsKLStleHRlcm4gTE9OR0VTVCB2YWx1ZV9wb2ludGVkX3RvX29mZnNldCAoc3RydWN0IHZh bHVlICp2YWx1ZSk7Ci0rZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX3BvaW50ZWRfdG9fb2Zmc2V0IChz dHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZhbCk7Ci0rZXh0ZXJuIExPTkdFU1QgdmFsdWVf ZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlKTsKLStleHRlcm4gdm9pZCBzZXRf dmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBMT05HRVNUIHZhbCk7 Ci0gCi0gLyogRm9yIGx2YWxfY29tcHV0ZWQgdmFsdWVzLCB0aGlzIHN0cnVjdHVyZSBob2xkcyBm dW5jdGlvbnMgdXNlZCB0bwotICAgIHJldHJpZXZlIGFuZCBzZXQgdGhlIHZhbHVlIChvciBwb3J0 aW9ucyBvZiB0aGUgdmFsdWUpLgotQEAgLTI0Niw3ICsyNDYsNyBAQCBzdHJ1Y3QgbHZhbF9mdW5j cworLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZhbHVlLmgJMjAxNi0wNy0xNiAx NDozMzo0Mi4xMjA1MTA2NTYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmFs dWUuaAkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MDUzMDIxMyArMDIwMAorQEAgLTI0Niw3ICsyNDYs NyBAQAogICAgLyogSWYgbm9uLU5VTEwsIHRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhl ciB0aGUgaW5kaWNhdGVkIGJpdHMKICAgICAgIG9mIFZBTFVFIGFyZSBhIHN5bnRoZXRpYyBwb2lu dGVyLiAgKi8KICAgIGludCAoKmNoZWNrX3N5bnRoZXRpY19wb2ludGVyKSAoY29uc3Qgc3RydWN0 IHZhbHVlICp2YWx1ZSwKLS0JCQkJICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKKy0JCQkJICBM T05HRVNUIG9mZnNldCwgaW50IGxlbmd0aCk7CiArCQkJCSAgTE9OR0VTVCBvZmZzZXQsIExPTkdF U1QgbGVuZ3RoKTsKICAKICAgIC8qIFJldHVybiBhIGR1cGxpY2F0ZSBvZiBWQUxVRSdzIGNsb3N1 cmUsIGZvciB1c2UgaW4gYSBuZXcgdmFsdWUuCiAgICAgICBUaGlzIG1heSBzaW1wbHkgcmV0dXJu IHRoZSBzYW1lIGNsb3N1cmUsIGlmIFZBTFVFJ3MgaXMKLUBAIC0yODMsNyArMjgzLDcgQEAgZXh0 ZXJuIHN0cnVjdCB2YWx1ZSAqYWxsb2NhdGVfY29tcHV0ZWRfdgotICAgIE90aGVyd2lzZSwgcmV0 dXJuIDEuICAqLwotIAotIGV4dGVybiBpbnQgdmFscHJpbnRfY2hlY2tfdmFsaWRpdHkgKHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLAotLQkJCQkgICAgaW50IGVtYmVk ZGVkX29mZnNldCwKLSsJCQkJICAgIExPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LAotIAkJCQkgICAg Y29uc3Qgc3RydWN0IHZhbHVlICp2YWwpOwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFsbG9j YXRlX29wdGltaXplZF9vdXRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlKTsKLUBAIC0zNzcsNyAr Mzc3LDggQEAgZXh0ZXJuIGludCB2YWx1ZV9vcHRpbWl6ZWRfb3V0IChzdHJ1Y3QgdgorQEAgLTM3 Nyw3ICszNzcsOCBAQAogICAgIG90aGVyd2lzZS4gICovCiAgCiAgZXh0ZXJuIGludCB2YWx1ZV9i aXRzX2FueV9vcHRpbWl6ZWRfb3V0IChjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLApAQCAtNDEz Nyw3ICszMjM4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAg CiAgLyogTGlrZSB2YWx1ZV9vcHRpbWl6ZWRfb3V0LCBidXQgcmV0dXJuIHRydWUgaWZmIHRoZSB3 aG9sZSB2YWx1ZSBpcwogICAgIG9wdGltaXplZCBvdXQuICAqLwotQEAgLTM4NywxMyArMzg4LDEz IEBAIGV4dGVybiBpbnQgdmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dAorQEAgLTM4Nyw3ICsz ODgsNyBAQAogICAgIExFTkdUSCBieXRlcyBhcyBvcHRpbWl6ZWQgb3V0LiAgKi8KICAKICBleHRl cm4gdm9pZCBtYXJrX3ZhbHVlX2J5dGVzX29wdGltaXplZF9vdXQgKHN0cnVjdCB2YWx1ZSAqdmFs dWUsCkBAIC00MTQ2LDEyNCArMzI0NywxMiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3ZhbHVlLmgKICAKICAvKiBNYXJrIFZBTFVFJ3MgY29udGVudCBiaXRzIHN0YXJ0aW5nIGF0 IE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvcgogICAgIExFTkdUSCBiaXRzIGFzIG9wdGltaXplZCBv dXQuICAqLwotIAotIGV4dGVybiB2b2lkIG1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0IChz dHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJCQkJICAgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0r CQkJCQkgICBMT05HRVNUIG9mZnNldCwgTE9OR0VTVCBsZW5ndGgpOwotIAotIC8qIFNldCBvciBy ZXR1cm4gZmllbGQgaW5kaWNhdGluZyB3aGV0aGVyIGEgdmFyaWFibGUgaXMgaW5pdGlhbGl6ZWQg b3IKLSAgICBub3QsIGJhc2VkIG9uIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBzdXBwbGllZCBieSB0 aGUgY29tcGlsZXIuCi1AQCAtNDc2LDcgKzQ3Nyw3IEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmNv ZXJjZV9hcnJheSAoc3RydWMKLSAgICBleHRlbmRpbmcgZm9yIExFTkdUSCBiaXRzIGFyZSBhIHN5 bnRoZXRpYyBwb2ludGVyLiAgKi8KLSAKLSBleHRlcm4gaW50IHZhbHVlX2JpdHNfc3ludGhldGlj X3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsCi0tCQkJCQkgaW50IG9mZnNldCwg aW50IGxlbmd0aCk7Ci0rCQkJCQkgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAK LSAvKiBHaXZlbiBhIHZhbHVlLCBkZXRlcm1pbmUgd2hldGhlciB0aGUgY29udGVudHMgYnl0ZXMg c3RhcnRpbmcgYXQKLSAgICBPRkZTRVQgYW5kIGV4dGVuZGluZyBmb3IgTEVOR1RIIGJ5dGVzIGFy ZSBhdmFpbGFibGUuICBUaGlzIHJldHVybnMKLUBAIC00ODQsNyArNDg1LDcgQEAgZXh0ZXJuIGlu dCB2YWx1ZV9iaXRzX3N5bnRoZXRpY19wb2ludGVyCi0gICAgYnl0ZSBpcyB1bmF2YWlsYWJsZS4g ICovCi0gCi0gZXh0ZXJuIGludCB2YWx1ZV9ieXRlc19hdmFpbGFibGUgKGNvbnN0IHN0cnVjdCB2 YWx1ZSAqdmFsdWUsCi0tCQkJCSAgaW50IG9mZnNldCwgaW50IGxlbmd0aCk7Ci0rCQkJCSAgTE9O R0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBHaXZlbiBhIHZhbHVlLCBkZXRl cm1pbmUgd2hldGhlciB0aGUgY29udGVudHMgYml0cyBzdGFydGluZyBhdAotICAgIE9GRlNFVCBh bmQgZXh0ZW5kaW5nIGZvciBMRU5HVEggYml0cyBhcmUgYXZhaWxhYmxlLiAgVGhpcyByZXR1cm5z Ci1AQCAtNDkyLDcgKzQ5Myw3IEBAIGV4dGVybiBpbnQgdmFsdWVfYnl0ZXNfYXZhaWxhYmxlIChj b25zdAotICAgIGJpdCBpcyB1bmF2YWlsYWJsZS4gICovCi0gCi0gZXh0ZXJuIGludCB2YWx1ZV9i aXRzX2F2YWlsYWJsZSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWx1ZSwKLS0JCQkJIGludCBvZmZz ZXQsIGludCBsZW5ndGgpOwotKwkJCQkgTE9OR0VTVCBvZmZzZXQsIExPTkdFU1QgbGVuZ3RoKTsK LSAKLSAvKiBMaWtlIHZhbHVlX2J5dGVzX2F2YWlsYWJsZSwgYnV0IHJldHVybiBmYWxzZSBpZiBh bnkgYnl0ZSBpbiB0aGUKLSAgICB3aG9sZSBvYmplY3QgaXMgdW5hdmFpbGFibGUuICAqLwotQEAg LTUwNiw3ICs1MDcsNyBAQCBleHRlcm4gaW50IHZhbHVlX2VudGlyZWx5X3VuYXZhaWxhYmxlIChz Ci0gICAgTEVOR1RIIGJ5dGVzIGFzIHVuYXZhaWxhYmxlLiAgKi8KLSAKLSBleHRlcm4gdm9pZCBt YXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLAotLQkJCQkJ ICBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKLSsJCQkJCSAgTE9OR0VTVCBvZmZzZXQsIExPTkdF U1QgbGVuZ3RoKTsKLSAKLSAvKiBNYXJrIFZBTFVFJ3MgY29udGVudCBiaXRzIHN0YXJ0aW5nIGF0 IE9GRlNFVCBhbmQgZXh0ZW5kaW5nIGZvcgotICAgIExFTkdUSCBiaXRzIGFzIHVuYXZhaWxhYmxl LiAgKi8KLUBAIC01NjcsOSArNTY4LDkgQEAgZXh0ZXJuIHZvaWQgbWFya192YWx1ZV9iaXRzX3Vu YXZhaWxhYmxlCi0gICAgYWZ0ZXIgdGhlIGluZmVyaW9yIGlzIGdvbmUsIGl0IHdvcmtzIHdpdGgg Y29uc3QgdmFsdWVzLiAgVGhlcmVmb3JlLAotICAgIHRoaXMgcm91dGluZSBtdXN0IG5vdCBiZSBj YWxsZWQgd2l0aCBsYXp5IHZhbHVlcy4gICovCi0gCi0tZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50 c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBpbnQgb2Zmc2V0MSwKLS0JCQkgICAgICBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbDIsIGludCBvZmZzZXQyLAotLQkJCSAgICAgIGludCBsZW5n dGgpOwotK2V4dGVybiBpbnQgdmFsdWVfY29udGVudHNfZXEgKGNvbnN0IHN0cnVjdCB2YWx1ZSAq dmFsMSwgTE9OR0VTVCBvZmZzZXQxLAotKwkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs MiwgTE9OR0VTVCBvZmZzZXQyLAotKwkJCSAgICAgIExPTkdFU1QgbGVuZ3RoKTsKLSAKLSAvKiBS ZWFkIExFTkdUSCBhZGRyZXNzYWJsZSBtZW1vcnkgdW5pdHMgc3RhcnRpbmcgYXQgTUVNQUREUiBp bnRvIEJVRkZFUiwKLSAgICB3aGljaCBpcyAob3Igd2lsbCBiZSBjb3BpZWQgdG8pIFZBTCdzIGNv bnRlbnRzIGJ1ZmZlciBvZmZzZXQgYnkKLUBAIC01NzgsNyArNTc5LDcgQEAgZXh0ZXJuIGludCB2 YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydQotICAgIG1lbW9yeSBpcyBsaWtld2lzZSB1bmF2 YWlsYWJsZS4gIFNUQUNLIGluZGljYXRlcyB3aGV0aGVyIHRoZSBtZW1vcnkKLSAgICBpcyBrbm93 biB0byBiZSBzdGFjayBtZW1vcnkuICAqLwotIAotLWV4dGVybiB2b2lkIHJlYWRfdmFsdWVfbWVt b3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50IGVtYmVkZGVkX29mZnNldCwKLStleHRlcm4gdm9p ZCByZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgZW1iZWRkZWRf b2Zmc2V0LAotIAkJCSAgICAgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1hZGRyLAotIAkJCSAg ICAgICBnZGJfYnl0ZSAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoKTsKLSAKLUBAIC02MTQsMTcgKzYx NSwxOCBAQCBleHRlcm4gTE9OR0VTVCB1bnBhY2tfZmllbGRfYXNfbG9uZyAoc3RyCi0gCQkJCSAg ICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCi0gCQkJCSAgICAgaW50IGZpZWxkbm8pOwotIGV4 dGVybiBpbnQgdW5wYWNrX3ZhbHVlX2ZpZWxkX2FzX2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0JCQkJaW50IGVtYmVkZGVkX29mZnNldCwgaW50IGZp ZWxkbm8sCi0rCQkJCUxPTkdFU1QgZW1iZWRkZWRfb2Zmc2V0LCBpbnQgZmllbGRubywKLSAJCQkJ Y29uc3Qgc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgKnJlc3VsdCk7Ci0gCi0gZXh0ZXJuIHZv aWQgdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlc3RfdmFsLAotIAkJCQkg ICBpbnQgYml0cG9zLCBpbnQgYml0c2l6ZSwKLS0JCQkJICAgY29uc3QgZ2RiX2J5dGUgKnZhbGFk ZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJCSAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LAotKwkJCQkgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkJICAgY29uc3Qgc3RydWN0 IHZhbHVlICp2YWwpOwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZpZWxkX2JpdGZp ZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwgaW50IGZpZWxkbm8sCi0gCQkJCQkgICBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKLS0JCQkJCSAgIGludCBlbWJlZGRlZF9vZmZzZXQsCi0rCQkJCQkgICBM T05HRVNUIGVtYmVkZGVkX29mZnNldCwKLSAJCQkJCSAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs KTsKLSAKLSBleHRlcm4gdm9pZCBwYWNrX2xvbmcgKGdkYl9ieXRlICpidWYsIHN0cnVjdCB0eXBl ICp0eXBlLCBMT05HRVNUIG51bSk7Ci1AQCAtNjgzLDEyICs2ODUsMTIgQEAgZXh0ZXJuIHN0cnVj dCB2YWx1ZSAqZGVmYXVsdF9yZWFkX3Zhcl92YQotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmFs bG9jYXRlX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlwZSk7Ci0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAq YWxsb2NhdGVfdmFsdWVfbGF6eSAoc3RydWN0IHR5cGUgKnR5cGUpOwotLWV4dGVybiB2b2lkIHZh bHVlX2NvbnRlbnRzX2NvcHkgKHN0cnVjdCB2YWx1ZSAqZHN0LCBpbnQgZHN0X29mZnNldCwKLS0J CQkJIHN0cnVjdCB2YWx1ZSAqc3JjLCBpbnQgc3JjX29mZnNldCwKLS0JCQkJIGludCBsZW5ndGgp OwotLWV4dGVybiB2b2lkIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUgKmRz dCwgaW50IGRzdF9vZmZzZXQsCi0tCQkJCSAgICAgc3RydWN0IHZhbHVlICpzcmMsIGludCBzcmNf b2Zmc2V0LAotLQkJCQkgICAgIGludCBsZW5ndGgpOwotK2V4dGVybiB2b2lkIHZhbHVlX2NvbnRl bnRzX2NvcHkgKHN0cnVjdCB2YWx1ZSAqZHN0LCBzc2l6ZV90IGRzdF9vZmZzZXQsCi0rCQkJCSBz dHJ1Y3QgdmFsdWUgKnNyYywgc3NpemVfdCBzcmNfb2Zmc2V0LAotKwkJCQkgc3NpemVfdCBsZW5n dGgpOwotK2V4dGVybiB2b2lkIHZhbHVlX2NvbnRlbnRzX2NvcHlfcmF3IChzdHJ1Y3QgdmFsdWUg KmRzdCwgc3NpemVfdCBkc3Rfb2Zmc2V0LAotKwkJCQkgICAgIHN0cnVjdCB2YWx1ZSAqc3JjLCBz c2l6ZV90IHNyY19vZmZzZXQsCi0rCQkJCSAgICAgc3NpemVfdCBsZW5ndGgpOwotIAotIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKmFsbG9jYXRlX3JlcGVhdF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUs IGludCBjb3VudCk7Ci0gCi1AQCAtNzY2LDE2ICs3NjgsMTYgQEAgZXh0ZXJuIGludCBmaW5kX292 ZXJsb2FkX21hdGNoIChzdHJ1Y3QgdgotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2Zp ZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGludCBmaWVsZG5vKTsKLSAKLS1leHRlcm4gc3RydWN0 IHZhbHVlICp2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZSAqYXJnMSwgaW50IG9m ZnNldCwKLStleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVj dCB2YWx1ZSAqYXJnMSwgTE9OR0VTVCBvZmZzZXQsCitAQCAtNzcxLDEyICs3NzIsMTEgQEAKICAJ CQkJCSAgICBpbnQgZmllbGRubywKICAJCQkJCSAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpOwog IAotIAotLWV4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1 Y3QgdmFsdWUgKiwgaW50ICosIGludCAqLAotK2V4dGVybiBzdHJ1Y3QgdHlwZSAqdmFsdWVfcnR0 aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKiwgaW50ICosIExPTkdFU1QgKiwKKy0KKyBl eHRlcm4gc3RydWN0IHR5cGUgKnZhbHVlX3J0dGlfaW5kaXJlY3RfdHlwZSAoc3RydWN0IHZhbHVl ICosIGludCAqLCBMT05HRVNUICosCiAgCQkJCQkgICAgICBpbnQgKik7CiAgCiAgZXh0ZXJuIHN0 cnVjdCB2YWx1ZSAqdmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqLCBzdHJ1Y3QgdHlw ZSAqLCBpbnQsCkBAIC00MjcyLDQ0ICszMjYxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi92YWx1ZS5oCiAgCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfY2FzdF9wb2lu dGVycyAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHZhbHVlICosIGludCk7CiAgCi1AQCAtODcwLDcg Kzg3Miw3IEBAIGV4dGVybiB2b2lkIHNldF9pbnRlcm5hbHZhcl9zdHJpbmcgKHN0cnUKLSBleHRl cm4gdm9pZCBjbGVhcl9pbnRlcm5hbHZhciAoc3RydWN0IGludGVybmFsdmFyICp2YXIpOwotIAot IGV4dGVybiB2b2lkIHNldF9pbnRlcm5hbHZhcl9jb21wb25lbnQgKHN0cnVjdCBpbnRlcm5hbHZh ciAqdmFyLAotLQkJCQkgICAgICAgaW50IG9mZnNldCwKLSsJCQkJICAgICAgIExPTkdFU1Qgb2Zm c2V0LAotIAkJCQkgICAgICAgaW50IGJpdHBvcywgaW50IGJpdHNpemUsCi0gCQkJCSAgICAgICBz dHJ1Y3QgdmFsdWUgKm5ld3ZhbHVlKTsKLSAKLUBAIC05NTEsNyArOTUzLDcgQEAgZXh0ZXJuIHN0 cnVjdCB2YWx1ZSAqdmFsdWVfeF91bm9wIChzdHJ1YwotIAkJCQkgICBlbnVtIG5vc2lkZSBub3Np ZGUpOwotIAotIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFs dWUgKiphcmcxcCwgc3RydWN0IGZuX2ZpZWxkICpmLAotLQkJCQkgICAgIGludCBqLCBzdHJ1Y3Qg dHlwZSAqdHlwZSwgaW50IG9mZnNldCk7Ci0rCQkJCSAgICAgaW50IGosIHN0cnVjdCB0eXBlICp0 eXBlLCBMT05HRVNUIG9mZnNldCk7Ci0gCi0gZXh0ZXJuIGludCBiaW5vcF90eXBlc191c2VyX2Rl ZmluZWRfcCAoZW51bSBleHBfb3Bjb2RlIG9wLAotIAkJCQkgICAgICAgc3RydWN0IHR5cGUgKnR5 cGUxLAotQEAgLTk3OSw3ICs5ODEsOCBAQCBleHRlcm4gdm9pZCByZWxlYXNlX3ZhbHVlX29yX2lu Y3JlZiAoc3RyCi0gZXh0ZXJuIGludCByZWNvcmRfbGF0ZXN0X3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnZhbCk7Ci0gCi0gZXh0ZXJuIHZvaWQgbW9kaWZ5X2ZpZWxkIChzdHJ1Y3QgdHlwZSAqdHlwZSwg Z2RiX2J5dGUgKmFkZHIsCi0tCQkJICBMT05HRVNUIGZpZWxkdmFsLCBpbnQgYml0cG9zLCBpbnQg Yml0c2l6ZSk7Ci0rCQkJICBMT05HRVNUIGZpZWxkdmFsLCBMT05HRVNUIGJpdHBvcywKLSsJCQkg IGludCBiaXRzaXplKTsKLSAKLSBleHRlcm4gdm9pZCB0eXBlX3ByaW50IChzdHJ1Y3QgdHlwZSAq dHlwZSwgY29uc3QgY2hhciAqdmFyc3RyaW5nLAotIAkJCXN0cnVjdCB1aV9maWxlICpzdHJlYW0s IGludCBzaG93KTsKLUBAIC0xMDA5LDcgKzEwMTIsNyBAQCBleHRlcm4gdm9pZCB2YWx1ZV9wcmlu dF9hcnJheV9lbGVtZW50cyAoCi0gZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqdmFsdWVfcmVsZWFzZV90 b19tYXJrIChzdHJ1Y3QgdmFsdWUgKm1hcmspOwotIAotIGV4dGVybiB2b2lkIHZhbF9wcmludCAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLQkJICAgICAgIGlu dCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKwkJICAgICAgIExPTkdFU1Qg ZW1iZWRkZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSAJCSAgICAgICBzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKLSAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUg KnZhbCwKLSAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9u cywKLUBAIC0xMDYyLDEwICsxMDY1LDExIEBAIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKnZhbHVlX2xp dGVyYWxfY29tcGwKK0BAIC0xMDY1LDEwICsxMDY1LDExIEBACiAgZXh0ZXJuIHN0cnVjdCB2YWx1 ZSAqZmluZF9mdW5jdGlvbl9pbl9pbmZlcmlvciAoY29uc3QgY2hhciAqLAogIAkJCQkJCXN0cnVj dCBvYmpmaWxlICoqKTsKICAKQEAgLTQzMjMsMTEgKzMyNzUsMTEgQEAgSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi92YWx1ZS5oCiAgCiAgLyogVXNlciBmdW5jdGlvbiBoYW5kbGVyLiAg Ki8KICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvczM5MC1saW51eC1uYXQuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LW5hdC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvczM5MC1saW51eC1uYXQuYwky MDE1LTExLTAyIDIxOjIzOjExLjI1MDM1MTkwNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUx MDI3L2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMTEtMDIgMjE6MjM6MTMuMjQyMzY1MDEwICsw MTAwCi1AQCAtNjEyLDcgKzYxMiw3IEBAIHMzOTBfY2FuX3VzZV9od19icmVha3BvaW50IChzdHJ1 Y3QgdGFyZ2UKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zMzkwLWxpbnV4LW5h dC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIwNTEwNjU2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3MzOTAtbGludXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTA1MzAy MTMgKzAyMDAKK0BAIC02MTIsNyArNjEyLDcgQEAKICAKICBzdGF0aWMgaW50CiAgczM5MF9yZWdp b25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtNDMz NiwzNyArMzI4OCwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3MzOTAtbGlu dXgtbmF0LmMKICB7CiAgICByZXR1cm4gMTsKICB9Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEw MjcvZ2RiL2V4dGVuc2lvbi1wcml2LmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1 MTAyNy5vcmlnL2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUwMzUx OTA0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2V4dGVuc2lvbi1wcml2LmgJ MjAxNS0xMS0wMiAyMToyMzoxMy4yNDIzNjUwMTAgKzAxMDAKLUBAIC0xODEsNyArMTgxLDcgQEAg c3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9vcHMKLSAgIGVudW0gZXh0X2xhbmdfcmMgKCphcHBs eV92YWxfcHJldHR5X3ByaW50ZXIpCi0gICAgIChjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1 YWdlX2RlZm4gKiwKLSAgICAgIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKLS0gICAgIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKyAg ICAgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotICAgICAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gICAgICBjb25zdCBzdHJ1Y3QgdmFs dWUgKnZhbCwgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi0gICAg ICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFuZ3VhZ2UpOwotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTUxMDI3L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDcxNi9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUt MTEtMDIgMjE6MjM6MTEuMjUwMzUxOTA0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcv Z2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MjM2NTAx MCArMDEwMAotQEAgLTMxNiw3ICszMTYsNyBAQCBleHRlcm4gaW50IGdkYnB5X2F1dG9fbG9hZF9l bmFibGVkIChjb25zCi0gZXh0ZXJuIGVudW0gZXh0X2xhbmdfcmMgZ2RicHlfYXBwbHlfdmFsX3By ZXR0eV9wcmludGVyCi0gICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICos Ci0gICAgc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotLSAgIGlu dCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAotKyAgIExPTkdFU1QgZW1iZWRk ZWRfb2Zmc2V0LCBDT1JFX0FERFIgYWRkcmVzcywKLSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFt LCBpbnQgcmVjdXJzZSwKLSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKLSAgICBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucywKLUluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNTEwMjcub3JpZy9nZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTUtMTEtMDIgMjE6MjM6 MTEuMjUyMzUxOTE3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL3RhcmdldC1k ZWxlZ2F0ZXMuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0MzM2NTAxNyArMDEwMAotQEAgLTczNiwx NCArNzM2LDE0IEBAIGRlYnVnX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFuZ2UgKHN0cnUKKy0t LSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNi0w Ny0xNiAxNDozMzo0Mi4xMjE1MTA2NjQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUwNTMwMjEzICswMjAw CitAQCAtNzM2LDE0ICs3MzYsMTQgQEAKICB9CiAgCiAgc3RhdGljIGludApAQCAtNDM4Myw3ICsz MzA5LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90YXJnZXQtZGVsZWdhdGVz LmMKICB7CiAgICBpbnQgcmVzdWx0OwogICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9n LCAiLT4gJXMtPnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoLi4uKVxuIiwgZGVidWdf dGFyZ2V0LnRvX3Nob3J0bmFtZSk7Ci1AQCAtNzUzLDcgKzc1Myw3IEBAIGRlYnVnX3JlZ2lvbl9v a19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWMKK0BAIC03NTMsNyArNzUzLDcgQEAKICAgIGZwdXRz X3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X0NP UkVfQUREUiAoYXJnMSk7CiAgICBmcHV0c191bmZpbHRlcmVkICgiLCAiLCBnZGJfc3RkbG9nKTsK QEAgLTQzOTIsMTEgKzMzMTgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi90 YXJnZXQtZGVsZWdhdGVzLmMKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIpID0gIiwgZ2RiX3N0ZGxv Zyk7CiAgICB0YXJnZXRfZGVidWdfcHJpbnRfaW50IChyZXN1bHQpOwogICAgZnB1dHNfdW5maWx0 ZXJlZCAoIlxuIiwgZ2RiX3N0ZGxvZyk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2Ri L2FhcmNoNjQtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYWFy Y2g2NC1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMJMjAxNS0xMS0wMiAyMToyMzoxMS4yNTIzNTE5MTcg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwky MDE1LTExLTAyIDIxOjIzOjEzLjI0MzM2NTAxNyArMDEwMAotQEAgLTczNiw3ICs3MzYsNyBAQCBh YXJjaDY0X2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QKKy0tLSBnZGItNy4xMS41MC4y MDE2MDcxNi5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTYtMDctMTYgMTQ6MzM6NDIu MTIyNTEwNjcyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FhcmNoNjQtbGlu dXgtbmF0LmMJMjAxNi0wNy0xNiAxNDozMzo0NC41NTE1MzAyMjEgKzAyMDAKK0BAIC03MzYsNyAr NzM2LDcgQEAKICAKICBzdGF0aWMgaW50CiAgYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX2h3 X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtNDQwNSwxMSArMzMzMSwx MSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMK ICB7CiAgICByZXR1cm4gYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX3dhdGNocG9pbnQgKGFk ZHIsIGxlbik7CiAgfQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2LWRy ZWdzLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvbmF0L3g4Ni1kcmVncy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvbmF0L3g4Ni1kcmVn cy5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUyMzUxOTE3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAy NCArMDEwMAotQEAgLTM4NCw3ICszODQsNyBAQCB4ODZfcmVtb3ZlX2FsaWduZWRfd2F0Y2hwb2lu dCAoc3RydWN0IHg4CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbmF0L3g4Ni1k cmVncy5jCTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIyNTEwNjcyICswMjAwCisrKysgZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MTUz MDIyMSArMDIwMAorQEAgLTM4NCw3ICszODQsNyBAQAogIAogIHN0YXRpYyBpbnQKICB4ODZfaGFu ZGxlX25vbmFsaWduZWRfd2F0Y2hwb2ludCAoc3RydWN0IHg4Nl9kZWJ1Z19yZWdfc3RhdGUgKnN0 YXRlLApAQCAtNDQxOCw3ICszMzQ0LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9uYXQveDg2LWRyZWdzLmMKICAJCQkJICBlbnVtIHRhcmdldF9od19icF90eXBlIHR5cGUpCiAg ewogICAgaW50IHJldHZhbCA9IDA7Ci1AQCAtNTUyLDcgKzU1Miw3IEBAIHg4Nl9kcl9yZW1vdmVf d2F0Y2hwb2ludCAoc3RydWN0IHg4Nl9kZWIKK0BAIC01NTIsNyArNTUyLDcgQEAKICAKICBpbnQK ICB4ODZfZHJfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19z dGF0ZSAqc3RhdGUsCkBAIC00NDI3LDExICszMzUzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5jCiAgewogICAgaW50IG5yZWdzOwogIAotSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIvY29tcGlsZS9j b21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwky MDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTI5OSwxMSArMjk5LDExIEBA IGdlbmVyYXRlX3JlZ2lzdGVyX3N0cnVjdCAoc3RydWN0IHVpX2ZpbGUKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMJMjAxNi0wNy0x NiAxNDozMzo0Mi4xMjI1MTA2NzIgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv Y29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUxNTMwMjIx ICswMjAwCitAQCAtMjk5LDExICsyOTksMTEgQEAKICAKICAJICAgICAgZGVmYXVsdDoKICAJCWZw cmludGZfdW5maWx0ZXJlZCAoc3RyZWFtLApAQCAtNDQ0NSwxMSArMzM3MSwxMSBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwogIAkg ICAgICB9CiAgCSAgICBmcHV0c191bmZpbHRlcmVkICgiO1xuIiwgc3RyZWFtKTsKICAKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5oCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL25hdC94ODYtZHJlZ3MuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE1LTExLTAyIDIxOjIz OjExLjI1MzM1MTkyMyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9uYXQveDg2 LWRyZWdzLmgJMjAxNS0xMS0wMiAyMToyMzoxMy4yNDQzNjUwMjQgKzAxMDAKLUBAIC0xMTYsNyAr MTE2LDcgQEAgZXh0ZXJuIGludCB4ODZfZHJfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cgorLS0tIGdk Yi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE2LTA3LTE2IDE0 OjMzOjQyLjEyMjUxMDY3MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9uYXQv eDg2LWRyZWdzLmgJMjAxNi0wNy0xNiAxNDozMzo0NC41NTE1MzAyMjEgKzAyMDAKK0BAIC0xMTYs NyArMTE2LDcgQEAKICAvKiBSZXR1cm4gbm9uLXplcm8gaWYgd2UgY2FuIHdhdGNoIGEgbWVtb3J5 IHJlZ2lvbiB0aGF0IHN0YXJ0cyBhdAogICAgIGFkZHJlc3MgQUREUiBhbmQgd2hvc2UgbGVuZ3Ro IGlzIExFTiBieXRlcy4gICovCiAgZXh0ZXJuIGludCB4ODZfZHJfcmVnaW9uX29rX2Zvcl93YXRj aHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUsCkBAIC00NDU4LDExICsz Mzg0LDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvbmF0L3g4Ni1kcmVncy5o CiAgCiAgLyogSWYgdGhlIGluZmVyaW9yIGhhcyBzb21lIGJyZWFrL3dhdGNocG9pbnQgdGhhdCB0 cmlnZ2VyZWQsIHNldCB0aGUKICAgICBhZGRyZXNzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGJyZWFr L3dhdGNocG9pbnQgYW5kIHJldHVybiB0cnVlLgotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3 L2dkYi94ODYtbmF0LmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveDg2LW5hdC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNTEwMjcub3JpZy9nZGIveDg2LW5hdC5j CTIwMTUtMTEtMDIgMjE6MjM6MTEuMjUzMzUxOTIzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAx NTEwMjcvZ2RiL3g4Ni1uYXQuYwkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAot QEAgLTE3NCw3ICsxNzQsNyBAQCB4ODZfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRf b3BzCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIveDg2LW5hdC5jCTIwMTYtMDct MTYgMTQ6MzM6NDIuMTIzNTEwNjgwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L3g4Ni1uYXQuYwkyMDE2LTA3LTE2IDE0OjMzOjQ0LjU1MTUzMDIyMSArMDIwMAorQEAgLTE3NCw3 ICsxNzQsNyBAQAogIAogIHN0YXRpYyBpbnQKICB4ODZfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50 IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTQ0NzEsMjkgKzMzOTcsMjUgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi94ODYtbmF0LmMKICB7CiAgICBzdHJ1Y3QgeDg2X2Rl YnVnX3JlZ19zdGF0ZSAqc3RhdGUKICAgICAgPSB4ODZfZGVidWdfcmVnX3N0YXRlIChwdGlkX2dl dF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Z3VpbGUvZ3VpbGUtaW50ZXJuYWwuaAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUx MDI3Lm9yaWcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0xMS0wMiAyMToyMzoxMS4y NTMzNTE5MjMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZ3VpbGUvZ3VpbGUt aW50ZXJuYWwuaAkyMDE1LTExLTAyIDIxOjIzOjEzLjI0NDM2NTAyNCArMDEwMAotQEAgLTYwNiw3 ICs2MDYsNyBAQCBleHRlcm4gdm9pZCBnZGJzY21fcHJlc2VydmVfdmFsdWVzCi0gZXh0ZXJuIGVu dW0gZXh0X2xhbmdfcmMgZ2Ric2NtX2FwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlcgotICAgKGNvbnN0 IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqLAotICAgIHN0cnVjdCB0eXBlICp0eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKLS0gICBpbnQgZW1iZWRkZWRfb2Zmc2V0LCBDT1JF X0FERFIgYWRkcmVzcywKLSsgICBMT05HRVNUIGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFk ZHJlc3MsCi0gICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gICAgY29u c3Qgc3RydWN0IHZhbHVlICp2YWwsCi0gICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMsCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2d1aWxlL3NjbS1w cmV0dHktcHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ydXN0LWxhbmcu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2d1aWxlL3Nj bS1wcmV0dHktcHJpbnQuYwkyMDE1LTExLTAyIDIxOjIzOjExLjI1NDM1MTkzMCArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9ndWlsZS9zY20tcHJldHR5LXByaW50LmMJMjAxNS0x MS0wMiAyMToyMzoxMy4yNDUzNjUwMzAgKzAxMDAKLUBAIC05NTgsNyArOTU4LDcgQEAgcHBzY21f cHJpbnRfY2hpbGRyZW4gKFNDTSBwcmludGVyLCBlbnVtCi0gZW51bSBleHRfbGFuZ19yYwotIGdk YnNjbV9hcHBseV92YWxfcHJldHR5X3ByaW50ZXIgKGNvbnN0IHN0cnVjdCBleHRlbnNpb25fbGFu Z3VhZ2VfZGVmbiAqZXh0bGFuZywKLSAJCQkJIHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJf Ynl0ZSAqdmFsYWRkciwKLS0JCQkJIGludCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRy ZXNzLAotKwkJCQkgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsIENPUkVfQUREUiBhZGRyZXNzLAot IAkJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCi0gCQkJCSBjb25zdCBz dHJ1Y3QgdmFsdWUgKnZhbCwKLSAJCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zLAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3J1c3QtbGFuZy5j CTIwMTYtMDctMTYgMTQ6MzM6NDIuMTIzNTEwNjgwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3J1c3QtbGFuZy5jCTIwMTYtMDctMTYgMTQ6MzM6NDQuNTUxNTMwMjIxICswMjAw CitAQCAtNDEwLDcgKzQxMCw3IEBACisgCisgc3RhdGljIHZvaWQKKyBydXN0X3ByaW50c3RyIChz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0JICAgICAgIGNvbnN0 IGdkYl9ieXRlICpzdHJpbmcsIHVuc2lnbmVkIGludCBsZW5ndGgsCisrCSAgICAgICBjb25zdCBn ZGJfYnl0ZSAqc3RyaW5nLCBVTE9OR0VTVCBsZW5ndGgsCisgCSAgICAgICBjb25zdCBjaGFyICp1 c2VyX2VuY29kaW5nLCBpbnQgZm9yY2VfZWxsaXBzZXMsCisgCSAgICAgICBjb25zdCBzdHJ1Y3Qg dmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKKyB7CitAQCAtNDU2LDcgKzQ1Niw3IEBACisg LyogbGFfdmFsX3ByaW50IGltcGxlbWVudGF0aW9uIGZvciBSdXN0LiAgKi8KKyAKKyBzdGF0aWMg dm9pZAorLXJ1c3RfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUg KnZhbGFkZHIsIGludCBlbWJlZGRlZF9vZmZzZXQsCisrcnVzdF92YWxfcHJpbnQgKHN0cnVjdCB0 eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsCisgCQlDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCisgCQljb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKKyAJCWNvbnN0IHN0cnVjdCB2YWx1 ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0yM29mMjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCmlu ZGV4IDFmNmQyMzcuLjg1NzYwZGIgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0y M29mMjUucGF0Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2YyNS5wYXRjaApAQCAt MTM3LDEwICsxMzcsMTAgQEAgQ29udGVudC1UeXBlOiB0ZXh0L3gtcGF0Y2gKIENvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDdiaXQKIENvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZp bGVuYW1lPWJpdHBvcy10ZGVwLnBhdGNoCiAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvYWxwaGEtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2FscGhhLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2FscGhh LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjU5MjgxMzk5MCArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9hbHBoYS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMDg4MzQ3 MTcgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0NS4zOTA1MDI3MTggKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvYWxwaGEtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTExNTE5Nzg4ICswMjAw CiBAQCAtMjk5LDE3ICsyOTksMTcgQEAKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRl ciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC0xODMsMTEgKzE4MywxMSBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FscGhhLXRkZXAuYwogIAkgICAgICBtZW1j cHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0LCBjb250ZW50cywgdGxlbik7CiAgCSAgICAgIG9m ZnNldCArPSB0bGVuOwogIAkgICAgICBjb250ZW50cyArPSB0bGVuOwotSW5kZXg6IGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9hbWQ2NC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvYW1kNjQtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNTk0ODE0MDAxICswMTAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjIwLjMwOTgzNDcyMyArMDEwMAotQEAgLTY5OSw3ICs2OTksNyBAQAorLS0tIGdkYi03LjEx LjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjM5 MTUwMjcyNiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9hbWQ2NC10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0Ny41MTI1MTk3OTYgKzAyMDAKK0BAIC03MjksNyArNzI5LDcgQEAK ICAJCSAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQogIHsK ICAgIGVudW0gYW1kNjRfcmVnX2NsYXNzIHRoZWNsYXNzWzJdOwpAQCAtMTk2LDcgKzE5Niw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtdGRlcC5jCiAgICBzdGF0aWMg aW50IGludGVnZXJfcmVnbnVtW10gPSB7IEFNRDY0X1JBWF9SRUdOVU0sIEFNRDY0X1JEWF9SRUdO VU0gfTsKICAgIHN0YXRpYyBpbnQgc3NlX3JlZ251bVtdID0geyBBTUQ2NF9YTU0wX1JFR05VTSwg QU1ENjRfWE1NMV9SRUdOVU0gfTsKICAgIGludCBpbnRlZ2VyX3JlZyA9IDA7Ci1AQCAtODUwLDgg Kzg1MCw4IEBACitAQCAtODgwLDggKzg4MCw4IEBACiAgICB9OwogICAgc3RydWN0IHZhbHVlICoq c3RhY2tfYXJncyA9IFhBTExPQ0FWRUMgKHN0cnVjdCB2YWx1ZSAqLCBuYXJncyk7CiAgICBpbnQg bnVtX3N0YWNrX2FyZ3MgPSAwOwpAQCAtMjA3LDcgKzIwNyw3IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvYW1kNjQtdGRlcC5jCiAgICBpbnQgaW50ZWdlcl9yZWcgPSAwOwogICAg aW50IHNzZV9yZWcgPSAwOwogICAgaW50IGk7Ci1AQCAtODYzLDcgKzg2Myw3IEBACitAQCAtODkz LDcgKzg5Myw3IEBACiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewogICAg ICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1tpXSk7CkBAIC0yMTYsMTAg KzIxNiwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FtZDY0LXRkZXAuYwog ICAgICAgIGVudW0gYW1kNjRfcmVnX2NsYXNzIHRoZWNsYXNzWzJdOwogICAgICAgIGludCBuZWVk ZWRfaW50ZWdlcl9yZWdzID0gMDsKICAgICAgICBpbnQgbmVlZGVkX3NzZV9yZWdzID0gMDsKLUlu ZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAu YwkyMDE2LTAxLTA4IDE5OjE2OjE2LjU5NTgxNDAwNiArMDEwMAotKysrIGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxMDgz NDcyOCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2FtZDY0LXdpbmRv d3MtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuMzkzNTAyNzQyICswMjAwCisrKysgZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6 NDcuNTEyNTE5Nzk2ICswMjAwCiBAQCAtMjg4LDcgKzI4OCw3IEBACiAgCQkJICAgIHN0cnVjdCB0 eXBlICp0eXBlLCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJCSAgICBnZGJfYnl0ZSAq cmVhZGJ1ZiwgY29uc3QgZ2RiX2J5dGUgKndyaXRlYnVmKQpAQCAtMjI5LDExICsyMjksMTEgQEAg SW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAuYwogICAg aW50IHJlZ251bSA9IC0xOwogIAogICAgLyogU2VlIGlmIG91ciB2YWx1ZSBpcyByZXR1cm5lZCB0 aHJvdWdoIGEgcmVnaXN0ZXIuICBJZiBpdCBpcywgdGhlbgotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9hcm0tdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2Fy bS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9h cm0tdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjAzODE0MDUxICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNzowNS43MzcwODgx MDcgKzAxMDAKLUBAIC0zMzQwLDcgKzMzNDAsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL2FybS10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MDA1MDI3OTggKzAyMDAK KysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYXJtLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM2 OjMwLjMyODg2NDM3NiArMDIwMAorQEAgLTM0NDMsNyArMzQ0Myw3IEBACiAgICAgYXJyYXkpLiAg VmVjdG9yIHR5cGVzIGFyZSBub3QgY3VycmVudGx5IHN1cHBvcnRlZCwgbWF0Y2hpbmcgdGhlCiAg ICAgZ2VuZXJpYyBBQVBDUyBzdXBwb3J0LiAgKi8KICAKQEAgLTI0Miw3ICsyNDIsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10ZGVwLmMKICBhcm1fdmZwX2NwcmNfc3Vi X2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUgKnQsCiAgCQkJICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jh c2VfdHlwZSAqYmFzZV90eXBlKQogIHsKLUBAIC0zNDIzLDcgKzM0MjMsNyBAQAorQEAgLTM1MjYs NyArMzUyNiw3IEBACiAgCSAgfQogIAllbHNlCiAgCSAgewpAQCAtMjUxLDcgKzI1MSw3IEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXJtLXRkZXAuYwogIAkgICAgdW5zaWduZWQg dW5pdGxlbjsKICAKICAJICAgIGNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZ UEVfVEFSR0VUX1RZUEUgKHQpLAotQEAgLTM0NDYsMTMgKzM0NDYsMTUgQEAKK0BAIC0zNTQ5LDEy ICszNTQ5LDEyIEBACiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX1NUUlVDVDoKICAgICAgICB7CkBA IC0yNjEsMTYgKzI2MSwxMiBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2FybS10 ZGVwLmMKICAJaW50IGk7CiAgCWZvciAoaSA9IDA7IGkgPCBUWVBFX05GSUVMRFMgKHQpOyBpKysp CiAgCSAgewotLQkgICAgaW50IHN1Yl9jb3VudCA9IGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRl IChUWVBFX0ZJRUxEX1RZUEUgKHQsIGkpLAotLQkJCQkJCQliYXNlX3R5cGUpOwotKwkgICAgTE9O R0VTVCBzdWJfY291bnQ7Ci0rCi0rCSAgICBzdWJfY291bnQgPSBhcm1fdmZwX2NwcmNfc3ViX2Nh bmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwKLSsJCQkJCQkgICAgYmFzZV90eXBlKTsK LSAJICAgIGlmIChzdWJfY291bnQgPT0gLTEpCi0gCSAgICAgIHJldHVybiAtMTsKLSAJICAgIGNv dW50ICs9IHN1Yl9jb3VudDsKLUBAIC0zNDcyLDEzICszNDc0LDE1IEBACistCSAgICBpbnQgc3Vi X2NvdW50ID0gMDsKKysJICAgIExPTkdFU1Qgc3ViX2NvdW50ID0gMDsKKyAKKyAJICAgIGlmICgh ZmllbGRfaXNfc3RhdGljICgmVFlQRV9GSUVMRCAodCwgaSkpKQorIAkgICAgICBzdWJfY291bnQg PSBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoVFlQRV9GSUVMRF9UWVBFICh0LCBpKSwKK0BA IC0zNTc4LDEzICszNTc4LDE1IEBACiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX1VOSU9OOgogICAg ICAgIHsKQEAgLTI4OSw3ICsyODUsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJfY291bnQgPT0gLTEpCiAgCSAgICAgIHJldHVybiAt MTsKICAJICAgIGNvdW50ID0gKGNvdW50ID4gc3ViX2NvdW50ID8gY291bnQgOiBzdWJfY291bnQp OwotQEAgLTM1MTQsNyArMzUxOCw3IEBACitAQCAtMzYyMCw3ICszNjIyLDcgQEAKICAJCQlpbnQg KmNvdW50KQogIHsKICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSBiID0gVkZQX0NQUkNf VU5LTk9XTjsKQEAgLTI5OCw3ICsyOTQsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2FybS10ZGVwLmMKICAgIGlmIChjIDw9IDAgfHwgYyA+IDQpCiAgICAgIHJldHVybiAwOwog ICAgKmJhc2VfdHlwZSA9IGI7Ci1AQCAtMzU5NSw3ICszNTk5LDcgQEAKK0BAIC0zNzAxLDcgKzM3 MDMsNyBAQAogIAogICAgZm9yIChhcmdudW0gPSAwOyBhcmdudW0gPCBuYXJnczsgYXJnbnVtKysp CiAgICAgIHsKQEAgLTMwNywxMSArMzAzLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvYXJtLXRkZXAuYwogICAgICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZTsKICAgICAgICBz dHJ1Y3QgdHlwZSAqdGFyZ2V0X3R5cGU7CiAgICAgICAgZW51bSB0eXBlX2NvZGUgdHlwZWNvZGU7 Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2F2ci10ZGVwLmMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvYXZyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2F2ci10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDQ4 MTQwNTcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYXZyLXRkZXAuYwkyMDE2 LTAxLTA4IDE5OjE2OjIwLjMxNDgzNDc1MCArMDEwMAotQEAgLTExOTYsMTMgKzExOTYsMTMgQEAK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTYtMDctMTYg MTQ6MzU6NDUuNDAxNTAyODA2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2F2 ci10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MTY1MTk4MjggKzAyMDAKK0BAIC0xMTk1LDEz ICsxMTk1LDEzIEBACiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KICB7CkBAIC0zMjcsNyArMzIzLDcg QEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9hdnItdGRlcC5jCiAgewogICAgc3Ry dWN0IHN0YWNrX2l0ZW0gKnNpOwogICAgc2kgPSBYTkVXIChzdHJ1Y3Qgc3RhY2tfaXRlbSk7Ci1A QCAtMTI5MSwxMiArMTI5MSwxMiBAQAorQEAgLTEyODksMTIgKzEyODksMTIgQEAKICAKICAgIGZv ciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQogICAgICB7CkBAIC0zNDEsMjIgKzMzNywyMiBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2F2ci10ZGVwLmMKIC0gICAgICBpbnQgbGVu ID0gVFlQRV9MRU5HVEggKHR5cGUpOwogKyAgICAgIHNzaXplX3QgbGVuID0gVFlQRV9MRU5HVEgg KHR5cGUpOwogIAotICAgICAgIC8qIENhbGN1bGF0ZSB0aGUgcG90ZW50aWFsIGxhc3QgcmVnaXN0 ZXIgbmVlZGVkLiAgKi8KLSAgICAgICBsYXN0X3JlZ251bSA9IHJlZ251bSAtIChsZW4gKyAobGVu ICYgMSkpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9iZmluLXRkZXAuYworICAg ICAgIC8qIENhbGN1bGF0ZSB0aGUgcG90ZW50aWFsIGxhc3QgcmVnaXN0ZXIgbmVlZGVkLgorICAg ICAgICAgIEUuZy4gRm9yIGxlbmd0aCAyLCByZWdpc3RlcnMgcmVnbnVtIGFuZCByZWdudW0tMSAo c2F5IDI1IGFuZCAyNCkKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvYmZpbi10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9iZmluLXRk ZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYwNTgxNDA2MiArMDEwMAotKysrIGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9iZmluLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxNTgzNDc1NiAr MDEwMAotQEAgLTUwNCw3ICs1MDQsNyBAQAotICAgZ2RiX2J5dGUgYnVmWzRdOworLS0tIGdkYi03 LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2JmaW4tdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUu NDAxNTAyODA2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2JmaW4tdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE2NTE5ODI4ICswMjAwCitAQCAtNTAyLDcgKzUwMiw3IEBA CisgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2Ri YXJjaCk7CiAgICBpbnQgaTsKICAgIGxvbmcgcmVnX3IwLCByZWdfcjEsIHJlZ19yMjsKIC0gIGlu dCB0b3RhbF9sZW4gPSAwOwogKyAgc3NpemVfdCB0b3RhbF9sZW4gPSAwOwotICAgZW51bSBiZmlu X2FiaSBhYmkgPSBiZmluX2FiaSAoZ2RiYXJjaCk7Ci0gICBDT1JFX0FERFIgZnVuY19hZGRyID0g ZmluZF9mdW5jdGlvbl9hZGRyIChmdW5jdGlvbiwgTlVMTCk7CiAgCi1AQCAtNTI4LDcgKzUyOCw3 IEBACisgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQorICAgICB7CitAQCAtNTI0 LDcgKzUyNCw3IEBACiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdmFsdWVfdHlwZSA9IHZh bHVlX2VuY2xvc2luZ190eXBlIChhcmdzW2ldKTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5 cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlKTsKQEAgLTM2NSwxMCArMzYxLDEwIEBAIElu ZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYmZpbi10ZGVwLmMKICAKICAgICAgICBzcCAt PSBjb250YWluZXJfbGVuOwogICAgICAgIHdyaXRlX21lbW9yeSAoc3AsIHZhbHVlX2NvbnRlbnRz IChhcmdzW2ldKSwgY29udGFpbmVyX2xlbik7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL2NyaXMtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2NyaXMtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvY3Jpcy10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MDY4MTQwNjggKzAxMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvY3Jpcy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMTY4MzQ3NjIg KzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9jcmlzLXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ1LjQwMzUwMjgyMyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9jcmlzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxNzUxOTgzNiArMDIwMAogQEAg LTY2MywxMyArNjYzLDEzIEBACiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KQEAgLTM4NSw3ICszODEs NyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2NyaXMtdGRlcC5jCiAgewogICAg c3RydWN0IHN0YWNrX2l0ZW0gKnNpID0gWE5FVyAoc3RydWN0IHN0YWNrX2l0ZW0pOwogICAgc2kt PmRhdGEgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAobGVuKTsKLUBAIC04NDEsMTMgKzg0MSwxMyBA QAorQEAgLTgzMywxMyArODMzLDEzIEBACiAgCiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8 IG5hcmdzOyBhcmdudW0rKykKICAgICAgewpAQCAtNDAzLDExICszOTksMTEgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9jcmlzLXRkZXAuYwogICAgICAgIAogICAgICAgIC8qIEhv dyBtYXkgcmVnaXN0ZXJzIHdvcnRoIG9mIHN0b3JhZ2UgZG8gd2UgbmVlZCBmb3IgdGhpcyBhcmd1 bWVudD8gICovCiAgICAgICAgcmVnX2RlbWFuZCA9IChsZW4gLyA0KSArIChsZW4gJSA0ICE9IDAg PyAxIDogMCk7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4MzAwLXRkZXAuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9oODMwMC10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9oODMwMC10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoxNi42MDc4MTQwNzMgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv aDgzMDAtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzE2ODM0NzYyICswMTAwCi1AQCAtNjM5 LDcgKzYzOSw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvaDgzMDAtdGRl cC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDAzNTAyODIzICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL2g4MzAwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUxNzUxOTgzNiAr MDIwMAorQEAgLTYzNyw3ICs2MzcsNyBAQAogIAkJICAgICAgIGludCBzdHJ1Y3RfcmV0dXJuLCBD T1JFX0FERFIgc3RydWN0X2FkZHIpCiAgewogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIg PSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtNDE2LDcgKzQxMiw3IEBAIEluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaDgzMDAtdGRlcC5jCiAgICBpbnQgd29yZHNpemUg PSBCSU5XT1JEIChnZGJhcmNoKTsKICAgIGludCByZWcgPSBFX0FSRzBfUkVHTlVNOwogICAgaW50 IGFyZ3VtZW50OwotQEAgLTY2NiwxMSArNjY2LDExIEBACitAQCAtNjY0LDExICs2NjQsMTEgQEAK ICAgICAgewogICAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogICAgICAgIHN0cnVjdCB0 eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnc1thcmd1bWVudF0pOwpAQCAtNDMwLDcgKzQyNiw3 IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaDgzMDAtdGRlcC5jCiAgICAgICAg Z2RiX2J5dGUgKnBhZGRlZCA9IChnZGJfYnl0ZSAqKSB4bWFsbG9jIChwYWRkZWRfbGVuKTsKICAg ICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgcGFkZGVkKTsKICAKLUBAIC02OTks NyArNjk5LDcgQEAKK0BAIC02OTcsNyArNjk3LDcgQEAKICAJICAgICAgLyogSGVhdmVucyB0byBC ZXRzeSAtLS0gaXQncyByZWFsbHkgZ29pbmcgaW4gcmVnaXN0ZXJzIQogIAkgICAgICAgICBOb3Rl IHRoYXQgb24gdGhlIGg4LzMwMHMsIHRoZXJlIGFyZSBnYXBzIGJldHdlZW4gdGhlCiAgCSAgICAg ICAgIHJlZ2lzdGVycyBpbiB0aGUgcmVnaXN0ZXIgZmlsZS4gICovCkBAIC00MzksMTEgKzQzNSwx MSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2g4MzAwLXRkZXAuYwogIAogIAkg ICAgICBmb3IgKG9mZnNldCA9IDA7IG9mZnNldCA8IHBhZGRlZF9sZW47IG9mZnNldCArPSB3b3Jk c2l6ZSkKICAJCXsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaHBwYS10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9ocHBhLXRkZXAuYwkyMDE2LTAxLTA4 IDE5OjE2OjE2LjYwOTgxNDA4NSArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9o cHBhLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMxNzgzNDc2NyArMDEwMAotQEAgLTk5NSw3 ICs5OTUsNyBAQAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL2hwcGEtdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDUuNDA1NTAyODM5ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL2hwcGEtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTE4NTE5ODQ0ICswMjAw CitAQCAtOTkxLDcgKzk5MSw3IEBACiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9 IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmcpOwpA QCAtNDUyLDcgKzQ0OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaHBwYS10 ZGVwLmMKICAgICAgICBjb25zdCBiZmRfYnl0ZSAqdmFsYnVmOwogICAgICAgIGJmZF9ieXRlIGZw dHJidWZbOF07CiAgICAgICAgaW50IHJlZ251bTsKLUBAIC0xMTkwLDcgKzExOTAsNyBAQAorQEAg LTExODYsNyArMTE4Niw3IEBACiAgCQkgICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgcmVn Y2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2RiX2J5 dGUgKndyaXRlYnVmKQogIHsKQEAgLTQ2MSwxMCArNDU3LDEwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvaHBwYS10ZGVwLmMKICAgIGludCByZWdudW0sIG9mZnNldDsKICAKICAg IGlmIChsZW4gPiAxNikKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni1kYXJ3 aW4tdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL2kzODYtZGFyd2luLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2kzODYt ZGFyd2luLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYwOTgxNDA4NSArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NjoyMC4zMTc4MzQ3NjcgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9p Mzg2LWRhcndpbi10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MDU1MDI4MzkgKzAyMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTYtMDctMTYg MTQ6MzU6NDcuNTE4NTE5ODQ0ICswMjAwCiBAQCAtMTYzLDcgKzE2Myw3IEBACiAgCiAgICBmb3Ig KHdyaXRlX3Bhc3MgPSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQpAQCAtNDc0LDEx ICs0NzAsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LWRhcndpbi10 ZGVwLmMKICAgICAgICBpbnQgbnVtX20xMjggPSAwOwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0 dXJuKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYworSW5kZXg6 IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9pMzg2LXRkZXAuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL2kzODYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6 MTYuNjE1ODE0MTE4ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2kzODYtdGRl cC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzE5ODM0Nzc4ICswMTAwCi1AQCAtMjY2Myw3ICsyNjYz LDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9pMzg2LXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ1LjQxMDUwMjg3OSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2 L2dkYi9pMzg2LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMDUxOTg2MCArMDIwMAorQEAg LTI2NjQsNyArMjY2NCw3IEBACiAgICBnZGJfYnl0ZSBidWZbNF07CiAgICBpbnQgaTsKICAgIGlu dCB3cml0ZV9wYXNzOwpAQCAtNDg3LDcgKzQ4Myw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIC8qIERldGVybWluZSB0aGUgdG90YWwgc3BhY2Ug cmVxdWlyZWQgZm9yIGFyZ3VtZW50cyBhbmQgc3RydWN0CiAgICAgICByZXR1cm4gYWRkcmVzcyBp biBhIGZpcnN0IHBhc3MgKGFsbG93aW5nIGZvciAxNi1ieXRlLWFsaWduZWQKLUBAIC0yNjcxLDcg KzI2NzEsNyBAQAorQEAgLTI2NzIsNyArMjY3Miw3IEBACiAgCiAgICBmb3IgKHdyaXRlX3Bhc3Mg PSAwOyB3cml0ZV9wYXNzIDwgMjsgd3JpdGVfcGFzcysrKQogICAgICB7CkBAIC00OTYsNyArNDky LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogICAg ICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQogIAl7Ci1AQCAtMjY4OCw3ICsyNjg4LDcgQEAKK0BAIC0y Njg5LDcgKzI2ODksNyBAQAogIAogICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYXJnczsgaSsrKQog IAl7CkBAIC01MDUsNyArNTAxLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9p Mzg2LXRkZXAuYwogIAogIAkgIGlmICh3cml0ZV9wYXNzKQogIAkgICAgewotQEAgLTI4OTUsNyAr Mjg5NSw3IEBACitAQCAtMjg5Niw3ICsyODk2LDcgQEAKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaF90 ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gdHlwZV9jb2RlIGNv ZGUgPSBUWVBFX0NPREUgKHR5cGUpOwpAQCAtNTE0LDcgKzUxMCw3IEBAIEluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGdkYl9hc3NlcnQgKGNvZGUgPT0g VFlQRV9DT0RFX1NUUlVDVAogICAgICAgICAgICAgICAgfHwgY29kZSA9PSBUWVBFX0NPREVfVU5J T04KLUBAIC0zNjQxLDcgKzM2NDEsNyBAQAorQEAgLTM3MTgsNyArMzcxOCw3IEBACiAgaTM4Nl9j b252ZXJ0X3JlZ2lzdGVyX3AgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCSBpbnQgcmVn bnVtLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CkBAIC01MjMsNyArNTE5LDcgQEAgSW5kZXg6IGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgLyogVmFsdWVzIG1heSBi ZSBzcHJlYWQgYWNyb3NzIG11bHRpcGxlIHJlZ2lzdGVycy4gIE1vc3QgZGVidWdnaW5nCiAgICAg ICBmb3JtYXRzIGFyZW4ndCBleHByZXNzaXZlIGVub3VnaCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlv bnMsIHNvCi1AQCAtMzY3NCw3ICszNjc0LDcgQEAKK0BAIC0zNzUxLDcgKzM3NTEsNyBAQAogIAkJ CWludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWlsYWJsZXApCiAgewogICAgc3RydWN0IGdkYmFy Y2ggKmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOwpAQCAtNTMyLDcgKzUyOCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGlmIChp Mzg2X2ZwX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQogICAgICByZXR1cm4gaTM4N19yZWdp c3Rlcl90b192YWx1ZSAoZnJhbWUsIHJlZ251bSwgdHlwZSwgdG8sCi1AQCAtMzcxMCw3ICszNzEw LDcgQEAKK0BAIC0zNzg3LDcgKzM3ODcsNyBAQAogIGkzODZfdmFsdWVfdG9fcmVnaXN0ZXIgKHN0 cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251bSwKICAJCQlzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29uc3QgZ2RiX2J5dGUgKmZyb20pCiAgewpAQCAtNTQxLDExICs1MzcsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pMzg2LXRkZXAuYwogIAogICAgaWYgKGkzODZfZnBf cmVnbnVtX3AgKGdldF9mcmFtZV9hcmNoIChmcmFtZSksIHJlZ251bSkpCiAgICAgIHsKLUluZGV4 OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvaXEyMDAwLXRkZXAuYworSW5kZXg6IGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9pcTIwMDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYx NjgxNDEyNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9pcTIwMDAtdGRlcC5j CTIwMTYtMDEtMDggMTk6MTY6MjAuMzIwODM0Nzg0ICswMTAwCi1AQCAtNjUxLDggKzY1MSw5IEBA CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvaXEyMDAwLXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ1LjQxMTUwMjg4NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9pcTIwMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTIwNTE5ODYwICswMjAwCitAQCAt NjQ2LDggKzY0Niw5IEBACiAgICBjb25zdCBiZmRfYnl0ZSAqdmFsOwogICAgYmZkX2J5dGUgYnVm WzRdOwogICAgc3RydWN0IHR5cGUgKnR5cGU7CkBAIC01NTcsMTEgKzU1MywxMSBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2lxMjAwMC10ZGVwLmMKICAgIC8qIFVzZWQgdG8gY29w eSBzdHJ1Y3QgYXJndW1lbnRzIGludG8gdGhlIHN0YWNrLiAgKi8KICAgIENPUkVfQUREUiBzdHJ1 Y3RfcHRyOwogIAotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tMzJyLXRkZXAuYwor SW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tMzJyLXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL20zMnItdGRlcC5jCTIwMTYtMDEtMDgg MTk6MTY6MTYuNjE2ODE0MTI0ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL20z MnItdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzIwODM0Nzg0ICswMTAwCi1AQCAtNjg3LDcg KzY4Nyw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvbTMyci10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0NS40MTE1MDI4ODcgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvbTMyci10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MjA1MTk4NjAgKzAyMDAK K0BAIC02ODUsNyArNjg1LDcgQEAKICAgIENPUkVfQUREUiByZWd2YWw7CiAgICBnZGJfYnl0ZSAq dmFsOwogICAgZ2RiX2J5dGUgdmFsYnVmW01BWF9SRUdJU1RFUl9TSVpFXTsKQEAgLTU3MCwxMCAr NTY2LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTMyci10ZGVwLmMKICAK ICAgIC8qIEZpcnN0IGZvcmNlIHNwIHRvIGEgNC1ieXRlIGFsaWdubWVudC4gICovCiAgICBzcCA9 IHNwICYgfjM7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL202OGstdGRlcC5jCitJ bmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL202OGstdGRlcC5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbTY4ay10ZGVwLmMJMjAxNi0wMS0wOCAx OToxNjoxNi42MTc4MTQxMjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTY4 ay10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjA4MzQ3ODQgKzAxMDAKKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQx MjUwMjg5NSArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tNjhrLXRkZXAuYwky MDE2LTA3LTE2IDE0OjM1OjQ3LjUyMDUxOTg2MCArMDIwMAogQEAgLTM4Miw3ICszODIsNyBAQAog IHsKICAgIHN0cnVjdCBnZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXAgKGdkYmFyY2gp OwpAQCAtNTk2LDEwICs1OTIsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9t NjhrLXRkZXAuYwogIAogICAgICAgIC8qIE5vbi1zY2FsYXJzIGJpZ2dlciB0aGFuIDQgYnl0ZXMg YXJlIGxlZnQgYWxpZ25lZCwgb3RoZXJzIGFyZQogIAkgcmlnaHQgYWxpZ25lZC4gICovCi1JbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL204OGstdGRlcC5jCitJbmRleDogZ2RiLTcuMTEu NTAuMjAxNjA3MTYvZ2RiL204OGstdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAu MjAxNjAxMDYub3JpZy9nZGIvbTg4ay10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MTc4MTQx MjkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbTg4ay10ZGVwLmMJMjAxNi0w MS0wOCAxOToxNjoyMC4zMjE4MzQ3OTAgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5v cmlnL2dkYi9tODhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQxMjUwMjg5NSArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9tODhrLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1 OjQ3LjUyMTUxOTg2OCArMDIwMAogQEAgLTI1NywxMyArMjU3LDEzIEBACiAgewogICAgc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJjaCAocmVnY2FjaGUpOwpAQCAtNjI3 LDEwICs2MjMsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tODhrLXRkZXAu YwogIAogICAgICAgIGlmIChtODhrX2luX3JlZ2lzdGVyX3AgKHR5cGUpKQogIAl7Ci1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21lcC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4y MDE2MDcxNi9nZGIvbWVwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYw MTA2Lm9yaWcvZ2RiL21lcC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MTg4MTQxMzUgKzAx MDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWVwLXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjIwLjMyMTgzNDc5MCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L21lcC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40MTM1MDI5MDMgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDcxNi9nZGIvbWVwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMTUx OTg2OCArMDIwMAogQEAgLTIyNzIsNyArMjI3Miw3IEBACiAgCiAgICBmb3IgKGkgPSAwOyBpIDwg YXJnYzsgaSsrKQpAQCAtNjQwLDEwICs2MzYsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9tZXAtdGRlcC5jCiAgCiAgICAgICAgaWYgKGFyZ19sZW4gPiBNRVBfR1BSX1NJWkUp CiAgICAgICAgICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL21pcHMtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvbWlwcy10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoxNi42MjY4MTQxNzkgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIv bWlwcy10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjQ4MzQ4MDYgKzAxMDAKKy0tLSBnZGIt Ny4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9taXBzLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1 LjQyMTUwMjk2NyArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9taXBzLXRkZXAu YwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyMzUxOTg4NCArMDIwMAogQEAgLTQ1NSw3ICs0NTUsNyBA QAogIG1pcHNfeGZlcl9yZWdpc3RlciAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaGUsCiAgCQkgICAgaW50IHJlZ19udW0sIGludCBsZW5ndGgsCkBAIC02 NjQsNyArNjYwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAu YwogICAgaWYgKG1pcHNfZGVidWcgJiYgb3V0ICE9IE5VTEwpCiAgICAgIHsKICAgICAgICBpbnQg aTsKLUBAIC00NTU0LDEzICs0NTU0LDEzIEBACitAQCAtNDUyOSwxMyArNDUyOSwxMyBAQAogICAg ICAgIGdkYl9ieXRlIHZhbGJ1ZltNQVhfUkVHSVNURVJfU0laRV07CiAgICAgICAgc3RydWN0IHZh bHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5cGUgKmFyZ190eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC02ODEsNyArNjc3LDcgQEAgSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwogIAogICAgICAgIC8qIFRo ZSBFQUJJIHBhc3NlcyBzdHJ1Y3R1cmVzIHRoYXQgZG8gbm90IGZpdCBpbiBhIHJlZ2lzdGVyIGJ5 CiAgICAgICAgICAgcmVmZXJlbmNlLiAgKi8KLUBAIC00ODI5LDcgKzQ4MjksNyBAQAorQEAgLTQ4 MDQsNyArNDgwNCw3IEBACiAgCiAgc3RhdGljIGludAogIG1pcHNfbjMybjY0X2ZwX2FyZ19jaHVu a19wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwgc3RydWN0IHR5cGUgKmFyZ190eXBlLApAQCAt NjkwLDcgKzY4Niw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVw LmMKICB7CiAgICBpbnQgaTsKICAKLUBAIC00ODQ0LDcgKzQ4NDQsNyBAQAorQEAgLTQ4MTksNyAr NDgxOSw3IEBACiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9ORklFTERTIChhcmdfdHlwZSk7 IGkrKykKICAgICAgewpAQCAtNjk5LDcgKzY5NSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAK ICAgICAgICAvKiBXZSdyZSBvbmx5IGxvb2tpbmcgYXQgbm9ybWFsIGZpZWxkcy4gICovCi1AQCAt NDg4Niw3ICs0ODg2LDcgQEAKK0BAIC00ODYxLDcgKzQ4NjEsNyBAQAogICAgaW50IGFyZ3JlZzsK ICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNzA4LDcgKzcwNCw3IEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgIGludCBzdGFj a19vZmZzZXQgPSAwOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rp b25fYWRkciAoZnVuY3Rpb24sIE5VTEwpOwotQEAgLTUyMzcsMTEgKzUyMzcsMTEgQEAKK0BAIC01 MjEyLDExICs1MjEyLDExIEBACiAgCQkJCTogTUlQU19WMF9SRUdOVU0pOwogIAkgICBmaWVsZCA8 IFRZUEVfTkZJRUxEUyAodHlwZSk7IGZpZWxkKyssIHJlZ251bSArPSAyKQogIAl7CkBAIC03MjQs NyArNzIwLDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9taXBzLXRkZXAuYwog IAkgIGlmIChUWVBFX0xFTkdUSCAoVFlQRV9GSUVMRF9UWVBFICh0eXBlLCBmaWVsZCkpID09IDE2 KQogIAkgICAgewogIAkgICAgICAvKiBBIDE2LWJ5dGUgbG9uZyBkb3VibGUgZmllbGQgZ29lcyBp biB0d28gY29uc2VjdXRpdmUKLUBAIC01MjgzLDggKzUyODMsOCBAQAorQEAgLTUyNTgsOCArNTI1 OCw4IEBACiAgCSAgaWYgKG9mZnNldCArIHhmZXIgPiBUWVBFX0xFTkdUSCAodHlwZSkpCiAgCSAg ICB4ZmVyID0gVFlQRV9MRU5HVEggKHR5cGUpIC0gb2Zmc2V0OwogIAkgIGlmIChtaXBzX2RlYnVn KQpAQCAtNzM1LDcgKzczMSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlw cy10ZGVwLmMKICAJICBtaXBzX3hmZXJfcmVnaXN0ZXIgKGdkYmFyY2gsIHJlZ2NhY2hlLAogIAkJ CSAgICAgIGdkYmFyY2hfbnVtX3JlZ3MgKGdkYmFyY2gpICsgcmVnbnVtLAogIAkJCSAgICAgIHhm ZXIsIEJGRF9FTkRJQU5fVU5LTk9XTiwgcmVhZGJ1Ziwgd3JpdGVidWYsCi1AQCAtNTM0Miw3ICs1 MzQyLDcgQEAKK0BAIC01MzE3LDcgKzUzMTcsNyBAQAogICAgaW50IGFyZ3JlZzsKICAgIGludCBm bG9hdF9hcmdyZWc7CiAgICBpbnQgYXJnbnVtOwpAQCAtNzQ0LDcgKzc0MCw3IEBAIEluZGV4OiBn ZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbWlwcy10ZGVwLmMKICAgIGludCBzdGFja19vZmZzZXQg PSAwOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIg KGdkYmFyY2gpOwogICAgQ09SRV9BRERSIGZ1bmNfYWRkciA9IGZpbmRfZnVuY3Rpb25fYWRkciAo ZnVuY3Rpb24sIE5VTEwpOwotQEAgLTU0MDYsMTMgKzU0MDYsMTMgQEAKK0BAIC01MzgxLDEzICs1 MzgxLDEzIEBACiAgICAgICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBzdHJ1Y3QgdmFs dWUgKmFyZyA9IGFyZ3NbYXJnbnVtXTsKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUgPSBj aGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcpKTsKQEAgLTc2MSw3ICs3NTcsNyBAQCBJbmRl eDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5jCiAgCiAgICAgICAgdmFsID0g dmFsdWVfY29udGVudHMgKGFyZyk7CiAgCi1AQCAtNTg3MCw4ICs1ODcwLDggQEAKK0BAIC01ODQy LDggKzU4NDIsOCBAQAogICAgaW50IGFyZ3JlZzsKICAgIGludCBmbG9hdF9hcmdyZWc7CiAgICBp bnQgYXJnbnVtOwpAQCAtNzcyLDcgKzc2OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvbWlwcy10ZGVwLmMKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1 bmN0aW9uX2FkZHIgKGZ1bmN0aW9uLCBOVUxMKTsKICAKLUBAIC01OTMxLDEzICs1OTMxLDEzIEBA CitAQCAtNTkwMywxMyArNTkwMywxMyBAQAogICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAg ICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5 cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC03ODks MTEgKzc4NSwxMSBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL21pcHMtdGRlcC5j CiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7CiAgCi1JbmRleDogZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL21uMTAzMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL21uMTAzMDAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NjAxMDYub3JpZy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42Mjc4MTQx ODUgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbW4xMDMwMC10ZGVwLmMJMjAx Ni0wMS0wOCAxOToxNjoyMC4zMjQ4MzQ4MDYgKzAxMDAKLUBAIC0xMjI3LDcgKzEyMjcsNyBAQAor LS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL21uMTAzMDAtdGRlcC5jCTIwMTYtMDct MTYgMTQ6MzU6NDUuNDIyNTAyOTc2ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2Ri L21uMTAzMDAtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODkyICswMjAwCitAQCAt MTIyNSw3ICsxMjI1LDcgQEAKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJj aF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAgIGNvbnN0IGludCBwdXNoX3NpemUgPSByZWdpc3Rl cl9zaXplIChnZGJhcmNoLCBFX1BDX1JFR05VTSk7CiAgICBpbnQgcmVnc191c2VkOwpAQCAtODAy LDExICs3OTgsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tbjEwMzAwLXRk ZXAuYwogICAgaW50IHN0YWNrX29mZnNldCA9IDA7CiAgICBpbnQgYXJnbnVtOwogICAgY29uc3Qg Z2RiX2J5dGUgKnZhbDsKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvbXQtdGRlcC5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL210LXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL210LXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjE2LjYyODgxNDE5MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9tdC10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjQ4MzQ4MDYgKzAxMDAKLUBAIC03ODEsOSArNzgx LDkgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9tdC10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0NS40MjM1MDI5ODQgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvbXQtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI0NTE5ODkyICswMjAwCitAQCAtNzgw LDkgKzc4MCw5IEBACiAgICBnZGJfYnl0ZSBidWZbTVRfTUFYX1NUUlVDVF9TSVpFXTsKICAgIGlu dCBhcmdyZWcgPSBNVF8xU1RfQVJHUkVHOwogICAgaW50IHNwbGl0X3BhcmFtX2xlbiA9IDA7CkBA IC04MTgsMTAgKzgxNCwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL210LXRk ZXAuYwogICAgaW50IGksIGo7CiAgCiAgICAvKiBGaXJzdCBoYW5kbGUgaG93ZXZlciBtYW55IGFy Z3Mgd2UgY2FuIGZpdCBpbnRvIE1UXzFTVF9BUkdSRUcgdGhydQotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9wcGMtc3lzdi10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvcHBjLXN5c3YtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAx MDYub3JpZy9nZGIvcHBjLXN5c3YtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjI5ODE0MTk2 ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE2 LTAxLTA4IDE5OjE2OjIwLjMyNTgzNDgxMiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2 Lm9yaWcvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyNDUwMjk5MiAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0Ny41MjQ1MTk4OTIgKzAyMDAKIEBAIC02Niw3ICs2Niw3IEBACiAgICBlbnVt IGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAg ICBpbnQgb3BlbmNsX2FiaSA9IHBwY19zeXN2X3VzZV9vcGVuY2xfYWJpICh2YWx1ZV90eXBlIChm dW5jdGlvbikpOwpAQCAtODY2LDEwICs4NjIsMTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9wcGMtc3lzdi10ZGVwLmMKICAKICAgIC8qIEVuZm9yY2UgYWxpZ25tZW50IG9mIHN0 YWNrIGxvY2F0aW9uLCBpZiByZXF1ZXN0ZWQuICAqLwogICAgaWYgKGFsaWduID4gdGRlcC0+d29y ZHNpemUpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JsNzgtdGRlcC5jCitJbmRl eDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JsNzgtdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvcmw3OC10ZGVwLmMJMjAxNi0wMS0wOCAxOTox NjoxNi42Mjk4MTQxOTYgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcmw3OC10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMjU4MzQ4MTIgKzAxMDAKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi9ybDc4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyNDUw Mjk5MiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9ybDc4LXRkZXAuYwkyMDE2 LTA3LTE2IDE0OjM1OjQ3LjUyNTUxOTkwMCArMDIwMAogQEAgLTEzMzYsOCArMTMzNiw4IEBACiAg ICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7CkBAIC04ODEsMTAgKzg3 NywxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JsNzgtdGRlcC5jCiAgCiAg ICAgICAgc3AgLT0gY29udGFpbmVyX2xlbjsKICAgICAgICB3cml0ZV9tZW1vcnkgKHJsNzhfbWFr ZV9kYXRhX2FkZHJlc3MgKHNwKSwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvcnM2 MDAwLWFpeC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvcnM2MDAwLWFp eC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9y czYwMDAtYWl4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzMDgxNDIwMiArMDEwMAotKysr IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9yczYwMDAtYWl4LXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjIwLjMyNjgzNDgxNyArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2Ri L3JzNjAwMC1haXgtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUuNDI1NTAzMDAwICswMjAwCisr KysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTYtMDctMTYg MTQ6MzU6NDcuNTI1NTE5OTAwICswMjAwCiBAQCAtMTg2LDkgKzE4Niw5IEBACiAgICBzdHJ1Y3Qg Z2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKICAgIGVudW0gYmZk X2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAgLTg5 Nyw3ICs4OTMsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3JzNjAwMC1haXgt dGRlcC5jCiAgICBnZGJfYnl0ZSB0bXBfYnVmZmVyWzUwXTsKICAgIGludCBmX2FyZ25vID0gMDsJ CS8qIGN1cnJlbnQgZmxvYXRpbmcgcG9pbnQgYXJnbm8gKi8KICAgIGludCB3b3Jkc2l6ZSA9IGdk YmFyY2hfdGRlcCAoZ2RiYXJjaCktPndvcmRzaXplOwotQEAgLTMyMSw3ICszMjEsNyBAQAorQEAg LTMxOSw3ICszMTksNyBAQAogIAogICAgaWYgKChhcmdubyA8IG5hcmdzKSB8fCBhcmdieXRlcykK ICAgICAgewpAQCAtOTA2LDExICs5MDIsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi9yczYwMDAtYWl4LXRkZXAuYwogIAogICAgICAgIGlmIChhcmdieXRlcykKICAJewotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYworSW5kZXg6IGdk Yi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTYtMDEt MDggMTk6MTY6MTYuNjMyODE0MjEzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3MzOTAtbGludXgtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI4ODM0ODI5ICswMTAwCi1A QCAtMjk4MSw3ICsyOTgxLDcgQEAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9z MzkwLWxpbnV4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQyNzUwMzAxNiArMDIwMAorKysr IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE2LTA3LTE2IDE0 OjM1OjQ3LjUyNjUxOTkwOCArMDIwMAorQEAgLTMxMjUsNyArMzEyNSw3IEBACiAgLyogRGV0ZXJt aW5lIHdoZXRoZXIgTiBpcyBhIHBvd2VyIG9mIHR3by4gICovCiAgCiAgc3RhdGljIGludApAQCAt OTE5LDcgKzkxNSw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvczM5MC1saW51 eC10ZGVwLmMKICB7CiAgICByZXR1cm4gbiAmJiAoKG4gJiAobiAtIDEpKSA9PSAwKTsKICB9Ci1A QCAtMzAzOCw3ICszMDM4LDcgQEAKK0BAIC0zMTgyLDcgKzMxODIsNyBAQAogIAkJIGVudW0gYmZk X2VuZGlhbiBieXRlX29yZGVyLCBpbnQgaXNfdW5uYW1lZCkKICB7CiAgICBzdHJ1Y3QgdHlwZSAq dHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKGFyZykpOwpAQCAtOTI4LDEwICs5MjQs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwog ICAgaW50IHdyaXRlX21vZGUgPSBhcy0+cmVnY2FjaGUgIT0gTlVMTDsKICAKICAgIGlmIChzMzkw X2Z1bmN0aW9uX2FyZ19mbG9hdCAodHlwZSkpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYv Z2RiL3Njb3JlLXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi9zY29yZS10 ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9zY29y ZS10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42MzM4MTQyMTggKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvc2NvcmUtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MjAuMzI4ODM0 ODI5ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc2NvcmUtdGRlcC5j CTIwMTYtMDctMTYgMTQ6MzU6NDUuNDI4NTAzMDI0ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAx NjA3MTYvZ2RiL3Njb3JlLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyNzUxOTkxNiArMDIw MAogQEAgLTUxNCw3ICs1MTQsNyBAQAogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBn ZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ251bTsKQEAgLTk0MSwxMCAr OTM3LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2NvcmUtdGRlcC5jCiAg ICBDT1JFX0FERFIgc3RhY2tfb2Zmc2V0ID0gMDsKICAgIENPUkVfQUREUiBhZGRyID0gMDsKICAK LUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2gtdGRlcC5jCitJbmRleDogZ2RiLTcu MTEuNTAuMjAxNjA3MTYvZ2RiL3NoLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUw LjIwMTYwMTA2Lm9yaWcvZ2RiL3NoLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzNTgxNDIz MCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zaC10ZGVwLmMJMjAxNi0wMS0w OCAxOToxNjoyMC4zMjk4MzQ4MzQgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmln L2dkYi9zaC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0NS40Mjk1MDMwMzIgKzAyMDAKKysrKyBn ZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI3 NTE5OTE2ICswMjAwCiBAQCAtODA1LDcgKzgwNSw3IEBACiAgc3RhdGljIGludAogIHNoX3VzZV9z dHJ1Y3RfY29udmVudGlvbiAoaW50IHJlbmVzYXNfYWJpLCBzdHJ1Y3QgdHlwZSAqdHlwZSkKQEAg LTk4MywyMCArOTc5LDIwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2gtdGRl cC5jCiAgICBpbnQgcGFzc19vbl9zdGFjayA9IDA7CiAgICBpbnQgbGFzdF9yZWdfYXJnID0gSU5U X01BWDsKICAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc2g2NC10ZGVwLmMKK0lu ZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvc2g2NC10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9zaDY0LXRkZXAuYwkyMDE2LTAxLTA4IDE5 OjE2OjE2LjYzNTgxNDIzMCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zaDY0 LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMyOTgzNDgzNCArMDEwMAotQEAgLTEwNTYsNyAr MTA1Niw3IEBACistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc2g2NC10ZGVwLmMJ MjAxNi0wNy0xNiAxNDozNTo0NS40MzA1MDMwNDAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2 MDcxNi9nZGIvc2g2NC10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjg1MTk5MjUgKzAyMDAK K0BAIC0xMDYwLDcgKzEwNjAsNyBAQAogIAkJICAgICAgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQog IHsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChn ZGJhcmNoKTsKIC0gIGludCBzdGFja19vZmZzZXQsIHN0YWNrX2FsbG9jOwogKyAgTE9OR0VTVCBz dGFja19vZmZzZXQsIHN0YWNrX2FsbG9jOwogICAgaW50IGludF9hcmdyZWc7Ci0gICBpbnQgZmxv YXRfYXJncmVnOwotICAgaW50IGRvdWJsZV9hcmdyZWc7Ci1AQCAtMTA2Nyw3ICsxMDY3LDcgQEAK KyAgIGludCBmbG9hdF9hcmdfaW5kZXggPSAwOworICAgaW50IGRvdWJsZV9hcmdfaW5kZXggPSAw OworQEAgLTEwNjksNyArMTA2OSw3IEBACiAgICBDT1JFX0FERFIgcmVndmFsOwogICAgY29uc3Qg Z2RiX2J5dGUgKnZhbDsKICAgIGdkYl9ieXRlIHZhbGJ1Zls4XTsKQEAgLTEwMDUsMTAgKzEwMDEs MTAgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zaDY0LXRkZXAuYwogICAgaW50 IGFyZ3JlZ19zaXplOwogICAgaW50IGZwX2FyZ3NbMTJdOwogIAotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9zcGFyYy10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9n ZGIvc3BhcmMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3Jp Zy9nZGIvc3BhcmMtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjM2ODE0MjM1ICswMTAwCi0r KysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwYXJjLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2 OjIwLjMzMDgzNDg0MCArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3Nw YXJjLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMTUwMzA0OCArMDIwMAorKysrIGdkYi03 LjExLjUwLjIwMTYwNzE2L2dkYi9zcGFyYy10ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41Mjg1 MTk5MjUgKzAyMDAKIEBAIC01MjUsNyArNTI1LDcgQEAKICAgIGZvciAoaSA9IDA7IGkgPCBuYXJn czsgaSsrKQogICAgICB7CkBAIC0xMDE4LDEwICsxMDE0LDEwIEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvc3BhcmMtdGRlcC5jCiAgCiAgICAgICAgaWYgKHNwYXJjX3N0cnVjdHVy ZV9vcl91bmlvbl9wICh0eXBlKQogIAkgIHx8IChzcGFyY19mbG9hdGluZ19wICh0eXBlKSAmJiBs ZW4gPT0gMTYpCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3NwYXJjNjQtdGRlcC5j CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3NwYXJjNjQtdGRlcC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAx Ni0wMS0wOCAxOToxNjoxNi42Mzc4MTQyNDEgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzA4MzQ4NDAgKzAxMDAK Ky0tLSBnZGItNy4xMS41MC4yMDE2MDcxNi5vcmlnL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE2LTA3 LTE2IDE0OjM1OjQ1LjQzMjUwMzA1NiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dk Yi9zcGFyYzY0LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUyODUxOTkyNSArMDIwMAogQEAg LTYzNiw3ICs2MzYsOCBAQAogIAogIHN0YXRpYyB2b2lkCkBAIC0xMDc3LDEwICsxMDczLDEwIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvc3BhcmM2NC10ZGVwLmMKICAgICAgICBp bnQgcmVnbnVtID0gLTE7CiAgICAgICAgZ2RiX2J5dGUgYnVmWzE2XTsKICAKLUluZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvc3B1LXRkZXAuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYw NzE2L2dkYi9zcHUtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvc3B1LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjE2LjYzODgxNDI0NiArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9zcHUtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6 MjAuMzMxODM0ODQ1ICswMTAwCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA3MTYub3JpZy9nZGIvc3B1 LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMzUwMzA2NCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNzE2L2dkYi9zcHUtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDcuNTI5NTE5OTMy ICswMjAwCiBAQCAtMTQyOSw3ICsxNDI5LDcgQEAKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9 IGFyZ3NbaV07CiAgICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1 ZV90eXBlIChhcmcpKTsKQEAgLTEwOTksMTEgKzEwOTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9zcHUtdGRlcC5jCiAgCSAgaW50IHByZWZlcnJlZF9zbG90OwogIAkgIAog IAkgIGlmIChzcHVfc2NhbGFyX3ZhbHVlX3AgKHR5cGUpKQotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi90aWM2eC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIv dGljNngtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9n ZGIvdGljNngtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYuNjM5ODE0MjUyICswMTAwCi0rKysg Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIw LjMzMjgzNDg1MSArMDEwMAotQEAgLTg5NSw3ICs4OTUsNyBAQAorLS0tIGdkYi03LjExLjUwLjIw MTYwNzE2Lm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzMzUwMzA2 NCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi90aWM2eC10ZGVwLmMJMjAxNi0w Ny0xNiAxNDozNTo0Ny41Mjk1MTk5MzIgKzAyMDAKK0BAIC04OTIsNyArODkyLDcgQEAKICAgIGlu dCBhcmdyZWcgPSAwOwogICAgaW50IGFyZ251bTsKICAgIGludCBzdGFja19vZmZzZXQgPSA0OwpA QCAtMTExMiw3ICsxMTA4LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWM2 eC10ZGVwLmMKICAgIENPUkVfQUREUiBmdW5jX2FkZHIgPSBmaW5kX2Z1bmN0aW9uX2FkZHIgKGZ1 bmN0aW9uLCBOVUxMKTsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9i eXRlX29yZGVyIChnZGJhcmNoKTsKICAgIHN0cnVjdCB0eXBlICpmdW5jX3R5cGUgPSB2YWx1ZV90 eXBlIChmdW5jdGlvbik7Ci1AQCAtOTI5LDcgKzkyOSw3IEBACitAQCAtOTI2LDcgKzkyNiw3IEBA CiAgICAvKiBOb3cgbWFrZSBzcGFjZSBvbiB0aGUgc3RhY2sgZm9yIHRoZSBhcmdzLiAgKi8KICAg IGZvciAoYXJnbnVtID0gMDsgYXJnbnVtIDwgbmFyZ3M7IGFyZ251bSsrKQogICAgICB7CkBAIC0x MTIxLDcgKzExMTcsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpYzZ4LXRk ZXAuYwogICAgICAgIGlmIChhcmdudW0gPj0gMTAgLSBhcmdyZWcpCiAgCXJlZmVyZW5jZXNfb2Zm c2V0ICs9IGxlbjsKICAgICAgICBzdGFja19vZmZzZXQgKz0gbGVuOwotQEAgLTk0OCw3ICs5NDgs NyBAQAorQEAgLTk0NSw3ICs5NDUsNyBAQAogICAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWw7CiAg ICAgICAgc3RydWN0IHZhbHVlICphcmcgPSBhcmdzW2FyZ251bV07CiAgICAgICAgc3RydWN0IHR5 cGUgKmFyZ190eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CkBAIC0xMTMw LDcgKzExMjYsNyBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpYzZ4LXRkZXAu YwogICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlID0gVFlQRV9DT0RFIChhcmdfdHlwZSk7 CiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7Ci1AQCAtMTEwOCw3ICsxMTA4 LDggQEAKK0BAIC0xMTA1LDcgKzExMDUsOCBAQAogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIGlu dGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCkBAIC0xMTQwLDIzICsxMTM2LDIzIEBA IEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGljNngtdGRlcC5jCiAgCiAgCSAgYWRk ciA9IHNwICsgc3RhY2tfb2Zmc2V0OwogIAkgIHdyaXRlX21lbW9yeSAoYWRkciwgdmFsLCBsZW4p OwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90aWxlZ3gtdGRlcC5jCitJbmRleDog Z2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpbGVneC10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDEtMDggMTk6 MTY6MTYuNjQwODE0MjU3ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3RpbGVn eC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzI4MzQ4NTEgKzAxMDAKKy0tLSBnZGItNy4x MS41MC4yMDE2MDcxNi5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUu NDM0NTAzMDcyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3RpbGVneC10ZGVw LmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKIEBAIC0yODgsNyArMjg4LDcg QEAKICAgIENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CiAgICBpbnQgYXJncmVnID0gVElMRUdY X1IwX1JFR05VTTsKICAgIGludCBpLCBqOwotLSAgaW50IHR5cGVsZW4sIHNsYWNrbGVuLCBhbGln bmxlbjsKLSsgIExPTkdFU1QgdHlwZWxlbiwgc2xhY2tsZW4sIGFsaWdubGVuOworLSAgaW50IHR5 cGVsZW4sIHNsYWNrbGVuOworKyAgTE9OR0VTVCB0eXBlbGVuLCBzbGFja2xlbjsKICAgIHN0YXRp YyBjb25zdCBnZGJfYnl0ZSBmb3VyX3plcm9fd29yZHNbMTZdID0geyAwIH07CiAgCiAgICAvKiBJ ZiBzdHJ1Y3RfcmV0dXJuIGlzIDEsIHRoZW4gdGhlIHN0cnVjdCByZXR1cm4gYWRkcmVzcyB3aWxs Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Y4NTAtdGRlcC5jCitJbmRleDogZ2Ri LTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3Y4NTAtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu MTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvdjg1MC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42 NDA4MTQyNTcgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdjg1MC10ZGVwLmMJ MjAxNi0wMS0wOCAxOToxNjoyMC4zMzI4MzQ4NTEgKzAxMDAKKy0tLSBnZGItNy4xMS41MC4yMDE2 MDcxNi5vcmlnL2dkYi92ODUwLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ1LjQzNDUwMzA3MiAr MDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNzE2L2dkYi92ODUwLXRkZXAuYwkyMDE2LTA3LTE2 IDE0OjM1OjQ3LjUzMDUxOTk0MSArMDIwMAogQEAgLTEwMTksNyArMTAxOSw3IEBACiAgICBlbnVt IGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAg ICBpbnQgYXJncmVnOwpAQCAtMTE3NSwxMCArMTE3MSwxMCBAQCBJbmRleDogZ2RiLTcuMTAuNTAu MjAxNjAxMDYvZ2RiL3Y4NTAtdGRlcC5jCiAgICAgICAgZ2RiX2J5dGUgKnZhbDsKICAgICAgICBn ZGJfYnl0ZSB2YWxidWZbdjg1MF9yZWdfc2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAx NjAxMDYvZ2RiL3ZheC10ZGVwLmMKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIvdmF4 LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3Zh eC10ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoxNi42NDE4MTQyNjMgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvdmF4LXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzMzgzNDg1 NiArMDEwMAorLS0tIGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAx Ni0wNy0xNiAxNDozNTo0NS40MzU1MDMwODAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcx Ni9nZGIvdmF4LXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUzMDUxOTk0MSArMDIwMAogQEAg LTExMSw3ICsxMTEsNyBAQAogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2Fj aGVfYXJjaCAocmVnY2FjaGUpOwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJh cmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwpAQCAtMTE5NywxMCArMTE5MywxMCBAQCBJbmRleDog Z2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZheC10ZGVwLmMKICAKICAgICAgICBzcCAtPSAobGVu ICsgMykgJiB+MzsKICAgICAgICBjb3VudCArPSAobGVuICsgMykgLyA0OwotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi94c3Rvcm15MTYtdGRlcC5jCitJbmRleDogZ2RiLTcuMTEuNTAu MjAxNjA3MTYvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE2MDEwNi5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDEtMDggMTk6MTY6MTYu NjQxODE0MjYzICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3hzdG9ybXkxNi10 ZGVwLmMJMjAxNi0wMS0wOCAxOToxNjoyMC4zMzM4MzQ4NTYgKzAxMDAKKy0tLSBnZGItNy4xMS41 MC4yMDE2MDcxNi5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTYtMDctMTYgMTQ6MzU6NDUu NDM1NTAzMDgwICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA3MTYvZ2RiL3hzdG9ybXkxNi10 ZGVwLmMJMjAxNi0wNy0xNiAxNDozNTo0Ny41MzA1MTk5NDEgKzAyMDAKIEBAIC0yMzMsOCArMjMz LDkgQEAKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVy IChnZGJhcmNoKTsKICAgIENPUkVfQUREUiBzdGFja19kZXN0ID0gc3A7CkBAIC0xMjEzLDEwICsx MjA5LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIveHN0b3JteTE2LXRkZXAu YwogICAgY29uc3QgZ2RiX2J5dGUgKnZhbDsKICAgIGdkYl9ieXRlIGJ1Zlt4c3Rvcm15MTZfcGNf c2l6ZV07CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3h0ZW5zYS10ZGVwLmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRlbnNhLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0w MS0wOCAxOToxNjoxNi42NDM4MTQyNzQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIveHRlbnNhLXRkZXAuYwkyMDE2LTAxLTA4IDE5OjE2OjIwLjMzNDgzNDg2MiArMDEwMAorLS0t IGdkYi03LjExLjUwLjIwMTYwNzE2Lm9yaWcvZ2RiL3h0ZW5zYS10ZGVwLmMJMjAxNi0wNy0xNiAx NDozNTo0NS40Mzc1MDMwOTYgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDcxNi9nZGIveHRl bnNhLXRkZXAuYwkyMDE2LTA3LTE2IDE0OjM1OjQ3LjUzMTUxOTk0OSArMDIwMAogQEAgLTE2Mzgs OCArMTYzOCw3IEBACiAgCiAgICAgICAgaWYgKGxlbiA+IChjYWxsc2l6ZSA+IDggPyA4IDogMTYp KQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2ggYi9nZGIt cmhiejc5NTQyNC1iaXRwb3MtMjVvZjI1LnBhdGNoCmluZGV4IDIwZGI5MTUuLmVmNWUwNDggMTAw NjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yNW9mMjUucGF0Y2gKKysrIGIvZ2RiLXJo Yno3OTU0MjQtYml0cG9zLTI1b2YyNS5wYXRjaApAQCAtNDcsMTEgKzQ3LDExIEBAIENvbnRlbnQt VHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250 ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1mNzctYm91bmRzLnBhdGNoCiAK LUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGItNy4x MS41MC4yMDE2MDYzMC9nZGIvZi1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE1MTAyNy5vcmlnL2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIxOjI1OjE0LjIzMzE2MTA5NyAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDI3L2dkYi9mLWxhbmcuaAkyMDE1LTExLTAyIDIx OjI1OjIyLjQwNDIxNDg2MCArMDEwMAotQEAgLTYyLDkgKzYyLDkgQEAgc3RydWN0IGNvbW1vbl9i bG9jaworLS0tIGdkYi03LjExLjUwLjIwMTYwNjMwLm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTYtMDct MTYgMTA6NTY6MTEuNjgyNzYyNzIyICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2Ri L2YtbGFuZy5oCTIwMTYtMDctMTYgMTA6NTY6MTUuNTU0NzkzNzA0ICswMjAwCitAQCAtNDksOSAr NDksOSBAQAogICAgc3RydWN0IHN5bWJvbCAqY29udGVudHNbMV07CiAgfTsKICAKQEAgLTYzLDM4 ICs2MywzOCBAQCBJbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtbGFuZy5oCiAgCiAg ZXh0ZXJuIHZvaWQgZjc3X2dldF9keW5hbWljX2FycmF5X2xlbmd0aCAoc3RydWN0IHR5cGUgKik7 CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjcvZ2RiL2YtdHlwZXByaW50LmMKK0luZGV4 OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvZi10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9yaWcvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0xMS0wMiAy MToyNToxNC4yMzQxNjExMDQgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi10 eXBlcHJpbnQuYwkyMDE1LTExLTAyIDIxOjI1OjIyLjQwNDIxNDg2MCArMDEwMAotQEAgLTE3MSw3 ICsxNzEsNyBAQCBmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCistLS0g Z2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDEw OjU2OjExLjY4Mjc2MjcyMiArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXR5 cGVwcmludC5jCTIwMTYtMDctMTYgMTA6NTY6NDMuNzk1MDE5NjYwICswMjAwCitAQCAtMTQ3LDcg KzE0Nyw3IEBACiAgCQkJICAgICBpbnQgc2hvdywgaW50IHBhc3NlZF9hX3B0ciwgaW50IGRlbWFu Z2xlZF9hcmdzLAotIAkJCSAgICAgaW50IGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCkKKyAJCQkg ICAgIGludCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwsIGludCBwcmludF9yYW5rX29ubHkpCiAg ewogLSAgaW50IHVwcGVyX2JvdW5kLCBsb3dlcl9ib3VuZDsKICsgIExPTkdFU1QgdXBwZXJfYm91 bmQsIGxvd2VyX2JvdW5kOwogIAogICAgLyogTm8gc3RhdGljIHZhcmlhYmxlcyBhcmUgcGVybWl0 dGVkIGFzIGFuIGVycm9yIGNhbGwgbWF5IG9jY3VyIGR1cmluZwogICAgICAgZXhlY3V0aW9uIG9m IHRoaXMgZnVuY3Rpb24uICAqLwotQEAgLTIwNCw3ICsyMDQsNyBAQCBmX3R5cGVfcHJpbnRfdmFy c3BlY19zdWZmaXggKHN0cnVjdCB0eXBlCi0gCi0gICAgICAgICAgIGxvd2VyX2JvdW5kID0gZjc3 X2dldF9sb3dlcmJvdW5kICh0eXBlKTsKLSAgICAgICAgICAgaWYgKGxvd2VyX2JvdW5kICE9IDEp CS8qIE5vdCB0aGUgZGVmYXVsdC4gICovCi0tICAgICAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAo c3RyZWFtLCAiJWQ6IiwgbG93ZXJfYm91bmQpOwotKyAgICAgICAgICAgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIiVzOiIsIHBsb25nZXN0IChsb3dlcl9ib3VuZCkpOworQEAgLTE5NCw3ICsx OTQsNyBAQAorIAl7CisgCSAgbG93ZXJfYm91bmQgPSBmNzdfZ2V0X2xvd2VyYm91bmQgKHR5cGUp OworIAkgIGlmIChsb3dlcl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLworLQkg ICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQ6IiwgbG93ZXJfYm91bmQpOworKwkgICAg ZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJXM6IiwgcGxvbmdlc3QgKGxvd2VyX2JvdW5kKSk7 CiAgCi0gICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0LCBpZiB3ZSBoYXZlIGFuIGFzc3VtZWQg c2l6ZSBhcnJheSwgd2UKLSAgICAgICAgICAgICAgcHJpbnQgb3V0IGEgd2FybmluZyBhbmQgcHJp bnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAgKi8KLUBAIC0yMTQsNyArMjE0LDcgQEAgZl90eXBl X3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZQotICAgICAgICAgICBlbHNlCi0gICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgdXBwZXJfYm91bmQgPSBmNzdfZ2V0X3VwcGVyYm91 bmQgKHR5cGUpOwotLSAgICAgICAgICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQi LCB1cHBlcl9ib3VuZCk7Ci0rICAgICAgICAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0s ICIlcyIsIHBsb25nZXN0ICh1cHBlcl9ib3VuZCkpOwotICAgICAgICAgICAgIH0KKyAJICAvKiBN YWtlIHN1cmUgdGhhdCwgaWYgd2UgaGF2ZSBhbiBhc3N1bWVkIHNpemUgYXJyYXksIHdlCisgCSAg ICAgcHJpbnQgb3V0IGEgd2FybmluZyBhbmQgcHJpbnQgdGhlIHVwcGVyYm91bmQgYXMgJyonLiAg Ki8KK0BAIC0yMDQsNyArMjA0LDcgQEAKKyAJICBlbHNlCisgCSAgICB7CisgCSAgICAgIHVwcGVy X2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKKy0JICAgICAgZnByaW50Zl9maWx0 ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBlcl9ib3VuZCk7CisrCSAgICAgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIiVzIiwgcGxvbmdlc3QgKHVwcGVyX2JvdW5kKSk7CisgCSAgICB9CisgCX0K ICAKLSAgICAgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpICE9 IFRZUEVfQ09ERV9BUlJBWSkKLUBAIC0yODMsNyArMjgzLDcgQEAgdm9pZAorQEAgLTI3Niw3ICsy NzYsNyBAQAogIGZfdHlwZV9wcmludF9iYXNlIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IHNob3csCiAgCQkgICBpbnQgbGV2ZWwpCiAgewpAQCAtMTAzLDcg KzEwMyw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi10eXBlcHJpbnQuYwog ICAgaW50IGluZGV4OwogIAogICAgUVVJVDsKLUBAIC0zNjUsNyArMzY1LDcgQEAgZl90eXBlX3By aW50X2Jhc2UgKHN0cnVjdCB0eXBlICp0eXBlLCBzdAorQEAgLTM1OCw3ICszNTgsNyBAQAogICAg ICAgIGVsc2UKICAJewogIAkgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBl KTsKQEAgLTExMiwxMSArMTEyLDExIEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIv Zi10eXBlcHJpbnQuYwogIAl9CiAgICAgICAgYnJlYWs7CiAgCi1JbmRleDogZ2RiLTcuMTAuNTAu MjAxNTEwMjcvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE1MTAyNy5vcmln L2dkYi9mLXZhbHByaW50LmMJMjAxNS0xMS0wMiAyMToyNToxNC4yMzQxNjExMDQgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvZi12YWxwcmludC5jCTIwMTUtMTEtMDIgMjE6MjU6 MjIuNDA1MjE0ODY3ICswMTAwCi1AQCAtNDMsNyArNDMsNyBAQCBMT05HRVNUIGY3N19hcnJheV9v ZmZzZXRfdGJsW01BWF9GT1JUUkFOCistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIv Zi12YWxwcmludC5jCTIwMTYtMDctMTYgMTA6NTY6MTEuNjgyNzYyNzIyICswMjAwCisrKysgZ2Ri LTcuMTEuNTAuMjAxNjA2MzAvZ2RiL2YtdmFscHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU2OjE1LjU1 NDc5MzcwNCArMDIwMAorQEAgLTQzLDcgKzQzLDcgQEAKICAvKiBBcnJheSB3aGljaCBob2xkcyBv ZmZzZXRzIHRvIGJlIGFwcGxpZWQgdG8gZ2V0IGEgcm93J3MgZWxlbWVudHMKICAgICBmb3IgYSBn aXZlbiBhcnJheS4gIEFycmF5IGFsc28gaG9sZHMgdGhlIHNpemUgb2YgZWFjaCBzdWJhcnJheS4g ICovCiAgCkBAIC0xMjUsNyArMTI1LDcgQEAgSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDI3L2dk Yi9mLXZhbHByaW50LmMKICBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQog IHsKICAgIGlmIChUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX0lTX1VOREVGSU5FRCAodHlwZSkpCi1A QCAtNTIsNyArNTIsNyBAQCBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0eXBlICp0eXBlKQor QEAgLTUyLDcgKzUyLDcgQEAKICAgIHJldHVybiBUWVBFX0FSUkFZX0xPV0VSX0JPVU5EX1ZBTFVF ICh0eXBlKTsKICB9CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2 YWx1ZS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy1sYXp5dmFsdWUucGF0Y2gKaW5kZXgg MzE5NzhlYy4uODAyNWUyZCAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLWxhenl2 YWx1ZS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtbGF6eXZhbHVlLnBhdGNoCkBA IC0xLDE5ICsxLDcgQEAKLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdmFsdWUuYwot PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDIyLm9yaWcvZ2RiL3ZhbHVlLmMJMjAx NS0xMC0yNCAyMzoxNzowNC4wNDIxNDM2MjggKzAyMDAKLSsrKyBnZGItNy4xMC41MC4yMDE1MTAy Mi9nZGIvdmFsdWUuYwkyMDE1LTEwLTI0IDIzOjE3OjI3LjY4NzMwMDY4OSArMDIwMAotQEAgLTkz NCw3ICs5MzQsNiBAQCBhbGxvY2F0ZV92YWx1ZV9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSkKLSAg ICAgIGRlc2NyaXB0aW9uIGNvcnJlY3RseS4gICovCi0gICBjaGVja190eXBlZGVmICh0eXBlKTsK LSAKLS0gIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAoVFlQRV9MRU5HVEggKHR5cGUpKTsK LSAgIHZhbCA9IFhDTkVXIChzdHJ1Y3QgdmFsdWUpOwotICAgdmFsLT5jb250ZW50cyA9IE5VTEw7 Ci0gICB2YWwtPm5leHQgPSBhbGxfdmFsdWVzOwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTUxMDIy L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5leHAKK0luZGV4OiBn ZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMt NjRiaXQuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmV4cAkyMDE1LTEwLTI0IDIzOjE3OjA0LjA0MjE0 MzYyOCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvbG9uZ2VzdC10eXBlcy02NGJpdC5leHAJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTczNDc4NTAg KzAyMDAKIEBAIC0wLDAgKzEsNTkgQEAKICsjIFRoaXMgdGVzdGNhc2UgaXMgcGFydCBvZiBHREIs IHRoZSBHTlUgZGVidWdnZXIuCiArCkBAIC00NSw4ICszMyw4IEBAIEluZGV4OiBnZGItNy4xMC41 MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhw CiArCiArIyBUZXN0IDY0LWJpdCBmaWxlIGZpcnN0IGFzIGl0IGlzIG5vdCBjb21waWxlZCBzbyBp dHMgY29tcGlsYXRpb24gbmV2ZXIgZmFpbHMuCiArCi0rc2V0IGZpbGU2NGJpdGJ6MnV1ICR7c3Jj ZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0tNjRiaXQuYnoyLnV1Ci0rc2V0IGZpbGU2NGJpdCAk e29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LTY0Yml0Cisrc2V0IGZpbGU2NGJpdGJ6MnV1 ICR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0uYnoyLnV1Cisrc2V0IGZpbGU2NGJpdCAk e29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9CiArCiAraWYge1tjYXRjaCAic3lzdGVtIFwi dXVkZWNvZGUgLW8gLSAke2ZpbGU2NGJpdGJ6MnV1fSB8IGJ6aXAyIC1kYyA+JHtmaWxlNjRiaXR9 XCIiXSAhPSAwfSB7CiArICAgIHVudGVzdGVkICJmYWlsZWQgdXVkZWNvZGUgb3IgYnppcDIiCkBA IC02MCw3ICs0OCw3IEBAIEluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuZXhwCiArCiArY2xlYW5fcmVzdGFydCAke2Zp bGU2NGJpdH0KICsKLSsjaWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAg JHt0ZXN0ZmlsZX0tNjRiaXQgJHNyY2ZpbGUyIHtub2RlYnVnfV0gfSB7CisrI2lmIHsgW3ByZXBh cmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICRzcmNmaWxlMiB7bm9k ZWJ1Z31dIH0gewogKyMgICAgcmV0dXJuIC0xCiArI30KICsKQEAgLTc0LDEwICs2MiwxMCBAQCBJ bmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0 LXR5cGVzLTY0Yml0LmV4cAogK30KICsKICt0ZXN0ICJuYXRpdmUiCi1JbmRleDogZ2RiLTcuMTAu NTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMK K0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdl c3QtdHlwZXMtNjRiaXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0 c3VpdGUvZ2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5jCTIwMTUtMTAtMjQgMjM6MTc6MDQu MDQyMTQzNjI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmMJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTgzNDc4 NTkgKzAyMDAKIEBAIC0wLDAgKzEsMjggQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMTA3LDEwICs5NSwxMCBAQCBJbmRleDogZ2Ri LTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0 Yml0LmMKICt7CiArICByZXR1cm4gMDsKICt9Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNTEwMjIv Z2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LlMKK0luZGV4OiBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRi aXQuUwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAw MDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTUxMDIyL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2UvbG9uZ2VzdC10eXBlcy02NGJpdC5TCTIwMTUtMTAtMjQgMjM6MTc6MDQuMDQyMTQzNjI4ICsw MjAwCisrKysgZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25n ZXN0LXR5cGVzLTY0Yml0LlMJMjAxNi0wNy0wMyAxNTowMDo1Ny42MTgzNDc4NTkgKzAyMDAKIEBA IC0wLDAgKzEsMjQ5IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdO VSBkZWJ1Z2dlci4KICsKQEAgLTM2MSwxMCArMzQ5LDEwIEBAIEluZGV4OiBnZGItNy4xMC41MC4y MDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuUwogKwku c3RyaW5nCSJjaGFyIgogKwkuaWRlbnQJIkdDQzogKEdOVSkgNC43LjMgMjAxMjExMDkgKHByZXJl bGVhc2UpIgogKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCi1JbmRleDog Z2RiLTcuMTAuNTAuMjAxNTEwMjIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVz LTY0Yml0LmJ6Mi51dQorSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvbG9uZ2VzdC10eXBlcy02NGJpdC5iejIudXUKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41 MC4yMDE1MTAyMi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2xvbmdlc3QtdHlwZXMtNjRiaXQuYnoy LnV1CTIwMTUtMTAtMjQgMjM6MTc6MDQuMDQyMTQzNjI4ICswMjAwCisrKysgZ2RiLTcuMTEuNTAu MjAxNjA2MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6Mi51 dQkyMDE2LTA3LTAzIDE1OjAwOjU3LjYxODM0Nzg1OSArMDIwMAogQEAgLTAsMCArMSw2NyBAQAog K2JlZ2luIDc1NSBnZGIuYmFzZS9sb25nZXN0LXR5cGVzLTY0Yml0LmJ6MgogK00wRUlILjMlITYy OTM2PCdOI09IYCJHL19fX19fX19fXl9fX19fXz9fWV9fX19fXy8vXTdTUUQ1J14vXyUKCmRpZmYg LS1naXQgYS9nZGItdmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2ggYi9nZGItdmxhLWludGVsLTA0 b2YyMy1maXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiOGQ3N2EuLjAw MDAwMDAKLS0tIGEvZ2RiLXZsYS1pbnRlbC0wNG9mMjMtZml4LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsNDIgKzAsMCBAQAotUmU6IFtQQVRDSCAwNC8yM10gdmxhOiBtYWtlIGR5bmFtaWMgZm9y dHJhbiBhcnJheXMgZnVuY3Rpb25hbC4KLWh0dHBzOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBh dGNoZXMvMjAxNC0wNi9tc2cwMDU3MC5odG1sCi0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE1MTAy Ny9nZGIvdmFsYXJpdGguYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTUxMDI3Lm9y aWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0xMS0wMyAyMDo0MTo0OC41NDM1MDQ5OTkgKzAxMDAKLSsr KyBnZGItNy4xMC41MC4yMDE1MTAyNy9nZGIvdmFsYXJpdGguYwkyMDE1LTExLTAzIDIwOjQ2OjM2 Ljk5NTIzODg4OCArMDEwMAotQEAgLTE5MywxMCArMTkzLDE3IEBAIHZhbHVlX3N1YnNjcmlwdGVk X3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKLSAgIHN0cnVjdCB0eXBlICphcnJheV90eXBlID0gY2hl Y2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKLSAgIHN0cnVjdCB0eXBlICplbHRfdHlw ZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGFycmF5X3R5cGUpKTsKLSAgIHVu c2lnbmVkIGludCBlbHRfc2l6ZSA9IHR5cGVfbGVuZ3RoX3VuaXRzIChlbHRfdHlwZSk7Ci0tICB1 bnNpZ25lZCBpbnQgZWx0X29mZnMgPSBsb25nZXN0X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5k KTsKLSsgIHVuc2lnbmVkIGludCBlbHRfb2ZmczsKLSAgIExPTkdFU1QgZWx0X3N0cmlkZSA9IFRZ UEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlwZSkpOwotICAgc3RydWN0 IHZhbHVlICp2OwotIAotKyAgaWYgKFRZUEVfTk9UX0FTU09DSUFURUQgKGFycmF5X3R5cGUpKQot KyAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhc3NvY2lh dGVkKSIpKTsKLSsgIGlmIChUWVBFX05PVF9BTExPQ0FURUQgKGFycmF5X3R5cGUpKQotKyAgICBl cnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVjdG9yIG5vdCBhbGxvY2F0ZWQpIikp OwotKwotKyAgZWx0X29mZnMgPSBsb25nZXN0X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsK LSsKLSAgIGlmIChlbHRfc3RyaWRlID4gMCkKLSAgICAgZWx0X29mZnMgKj0gZWx0X3N0cmlkZTsK LSAgIGVsc2UgaWYgKGVsdF9zdHJpZGUgPCAwKQotQEAgLTIxMCwxNCArMjE3LDcgQEAgdmFsdWVf c3Vic2NyaXB0ZWRfcnZhbHVlIChzdHJ1Y3QgdmFsdWUgKgotIAotICAgaWYgKGluZGV4IDwgbG93 ZXJib3VuZCB8fCAoIVRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNfVU5ERUZJTkVEIChhcnJheV90 eXBlKQotIAkJCSAgICAgJiYgZWx0X29mZnMgPj0gdHlwZV9sZW5ndGhfdW5pdHMgKGFycmF5X3R5 cGUpKSkKLS0gICAgewotLSAgICAgIGlmICh0eXBlX25vdF9hc3NvY2lhdGVkIChhcnJheV90eXBl KSkKLS0gICAgICAgIGVycm9yIChfKCJubyBzdWNoIHZlY3RvciBlbGVtZW50ICh2ZWN0b3Igbm90 IGFzc29jaWF0ZWQpIikpOwotLSAgICAgIGVsc2UgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAoYXJy YXlfdHlwZSkpCi0tICAgICAgICBlcnJvciAoXygibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCAodmVj dG9yIG5vdCBhbGxvY2F0ZWQpIikpOwotLSAgICAgIGVsc2UKLS0gICAgICAgIGVycm9yIChfKCJu byBzdWNoIHZlY3RvciBlbGVtZW50IikpOwotLSAgICB9Ci0rICAgIGVycm9yIChfKCJubyBzdWNo IHZlY3RvciBlbGVtZW50IikpOwotIAotICAgaWYgKFZBTFVFX0xWQUwgKGFycmF5KSA9PSBsdmFs X21lbW9yeSAmJiB2YWx1ZV9sYXp5IChhcnJheSkpCi0gICAgIHYgPSBhbGxvY2F0ZV92YWx1ZV9s YXp5IChlbHRfdHlwZSk7CgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoIGIv Z2RiLXZsYS1pbnRlbC0xb2Y3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmI1NzI5MjIKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVsLTFvZjcucGF0Y2gK QEAgLTAsMCArMSwxODAgQEAKK0Zyb20gMjZlMTU2ZDYyMjExY2E4NDU4ZmFhMzI2ZjIxOTQwZTlm YTE4YzhmZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEJlcm5oYXJkIEhlY2tlbCA8 YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KK0RhdGU6IFR1ZSwgMTIgSnVsIDIwMTYgMDg6MTk6 MzQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAxLzddIEZvcnRyYW46IFRlc3RzdWl0ZSwgZml4IGRp ZmZlcmVuY2VzIGluIHR5cGUgbmFtaW5nLgorCitDb250aW51ZWQgb24gMGMxM2Y3ZTU1OWFmZTVm OTczYTU5MzExYjBlNDAxMjk2YzQ4ZDk2YworKGZvcnRyYW46IFRlc3RzdWl0ZSwgZml4IGRpZmZl cmVudCB0eXBlIG5hbWluZyBhY3Jvc3MgY29tcGlsZXJzKS4KKworMjAxNi0wNi0wOCAgQmVybmhh cmQgSGVja2VsICA8YmVybmhhcmQuaGVja2VsQGludGVsLmNvbT4KKworZ2RiL1Rlc3RzdWl0ZS9D aGFuZ2Vsb2c6CisJKiBnZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwOiBVc2UgdHlwZSBuYW1lcyBk ZWZpbmVkIGluIGxpYmZvcnRyYW4uCisJKiBnZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwOiBMaWtl d2lzZS4KKwkqIGdkYi5taS9taS12bGEtZm9ydHJhbi5leHA6IExpa2V3aXNlLgorCitDaGFuZ2Ut SWQ6IEk3ZWU5NDU4N2E5OTJhZGQyN2ZlYzc3Yzc3MjZmOWE2OWM4ZmRmMzczCistLS0KKyBnZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS5leHAgfCAxMiArKysrKysrKy0tLS0KKyBn ZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY2hpbGQtZi5leHAgfCAgNyArKystLS0tCisgZ2Ri L3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwIHwgMTggKysrKysrKysrKystLS0t LS0tCisgMyBmaWxlcyBjaGFuZ2VkLCAyMiBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cCBi L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAoraW5kZXggMDk0NTE4MS4u Mjc1ZjczOCAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVl LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUuZXhwCitAQCAt MTQsNiArMTQsNyBAQAorICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgCisgc3RhbmRhcmRfdGVzdGZpbGUgInZs YS5mOTAiCisrbG9hZF9saWIgImZvcnRyYW4uZXhwIgorIAorIGlmIHsgW3ByZXBhcmVfZm9yX3Rl c3RpbmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorICAgICAge2Rl YnVnIGY5MCBxdWlldH1dIH0geworQEAgLTI1LDEyICsyNiwxNSBAQCBpZiAhW3J1bnRvX21haW5d IHsKKyAgICAgcmV0dXJuIC0xCisgfQorIAorKyMgRGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciBi ZWluZyB1c2VkLCB0aGUgdHlwZSBuYW1lcyBjYW4gYmUgcHJpbnRlZCBkaWZmZXJlbnRseS4KKytz ZXQgcmVhbCBbZm9ydHJhbl9yZWFsNF0KKysKKyAjIFRyeSB0byBhY2Nlc3MgdmFsdWVzIGluIG5v biBhbGxvY2F0ZWQgVkxBCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZs YTEtaW5pdCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtaW5pdCIKKyBnZGJf dGVzdCAicHJpbnQgdmxhMSIgIiA9IDxub3QgYWxsb2NhdGVkPiIgInByaW50IG5vbi1hbGxvY2F0 ZWQgdmxhMSIKKyBnZGJfdGVzdCAicHJpbnQgJnZsYTEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+ IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxcXCg8bm90IGFsbG9jYXRlZD5cXFwpXFxcKVxcXCkg JGhleCIgXAorKyAgIiA9IFxcXChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwoPG5vdCBhbGxvY2F0 ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKyAgICJwcmludCBub24tYWxsb2NhdGVkICZ2bGExIgor IGdkYl90ZXN0ICJwcmludCB2bGExKDEsMSwxKSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxc KHZlY3RvciBub3QgYWxsb2NhdGVkXFxcKSIgXAorICAgInByaW50IG1lbWJlciBpbiBub24tYWxs b2NhdGVkIHZsYTEgKDEpIgorQEAgLTUxLDcgKzU1LDcgQEAgd2l0aF90aW1lb3V0X2ZhY3RvciAx NSB7CisgCSJzdGVwIG92ZXIgdmFsdWUgYXNzaWdubWVudCBvZiB2bGExIgorIH0KKyBnZGJfdGVz dCAicHJpbnQgJnZsYTEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5k PTRcXFwpIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAiID0gXFxcKFBUUiBU TyAtPiBcXFwoICRyZWFsIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisgICAicHJp bnQgYWxsb2NhdGVkICZ2bGExIgorIGdkYl90ZXN0ICJwcmludCB2bGExKDMsIDYsIDkpIiAiID0g MTMxMSIgInByaW50IGFsbG9jYXRlZCB2bGExKDMsNiw5KSIKKyBnZGJfdGVzdCAicHJpbnQgdmxh MSgxLCAzLCA4KSIgIiA9IDEzMTEiICJwcmludCBhbGxvY2F0ZWQgdmxhMSgxLDMsOCkiCitAQCAt NzEsNyArNzUsNyBAQCBnZGJfdGVzdCAicHJpbnQgdmxhMSg5LCA5LCA5KSIgIiA9IDk5OSIgXAor ICMgVHJ5IHRvIGFjY2VzcyB2YWx1ZXMgaW4gdW5kZWZpbmVkIHBvaW50ZXIgdG8gVkxBIChkYW5n bGluZykKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IDxub3QgYXNzb2NpYXRlZD4iICJwcmlu dCB1bmRlZmluZWQgcHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgJnB2bGEiIFwKKy0gICIgPSBcXFwo UFRSIFRPIC0+IFxcXCggcmVhbFxcXChraW5kPTRcXFwpIFxcXCg8bm90IGFzc29jaWF0ZWQ+XFxc KVxcXClcXFwpICRoZXgiIFwKKysgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwgXFxcKDxu b3QgYXNzb2NpYXRlZD5cXFwpXFxcKVxcXCkgJGhleCIgXAorICAgInByaW50IG5vbi1hc3NvY2lh dGVkICZwdmxhIgorIGdkYl90ZXN0ICJwcmludCBwdmxhKDEsIDMsIDgpIiAibm8gc3VjaCB2ZWN0 b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBhc3NvY2lhdGVkXFxcKSIgXAorICAgInByaW50IHVu ZGVmaW5lZCBwdmxhKDEsMyw4KSIKK0BAIC04MCw3ICs4NCw3IEBAIGdkYl90ZXN0ICJwcmludCBw dmxhKDEsIDMsIDgpIiAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBcXFwodmVjdG9yIG5vdCBhc3Nv Y2lhdGVkCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2Np YXRlZCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKKyBn ZGJfdGVzdCAicHJpbnQgJnB2bGEiIFwKKy0gICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggcmVhbFxc XChraW5kPTRcXFwpIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisrICAiID0gXFxc KFBUUiBUTyAtPiBcXFwoICRyZWFsIFxcXCgxMCwxMCwxMFxcXClcXFwpXFxcKSAkaGV4IiBcCisg ICAicHJpbnQgYXNzb2NpYXRlZCAmcHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSgzLCA2LCA5 KSIgIiA9IDQyIiAicHJpbnQgYXNzb2NpYXRlZCBwdmxhKDMsNiw5KSIKKyBnZGJfdGVzdCAicHJp bnQgcHZsYSgxLCAzLCA4KSIgIiA9IDEwMDEiICJwcmludCBhc3NvY2lhdGVkIHB2bGEoMSwzLDgp IgorZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cCBi L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1mLmV4cAoraW5kZXggZjNlZDdjMi4u YmM0NGM2YiAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZhci1jaGlsZC1m LmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFyLWNoaWxkLWYuZXhwCitAQCAt MTcsNiArMTcsNyBAQAorIAorIGxvYWRfbGliIG1pLXN1cHBvcnQuZXhwCisgc2V0IE1JRkxBR1Mg Ii1pPW1pIgorK2xvYWRfbGliICJmb3J0cmFuLmV4cCIKKyAKKyBpZiB7IFtza2lwX2ZvcnRyYW5f dGVzdHNdIH0geyByZXR1cm4gLTEgfQorIAorQEAgLTQwLDEwICs0MSw4IEBAIG1pX3J1bnRvIE1B SU5fXworIG1pX2NyZWF0ZV92YXJvYmogImFycmF5IiAiYXJyYXkiICJjcmVhdGUgbG9jYWwgdmFy aWFibGUgYXJyYXkiCisgCisgCistIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIHZlcnNpb24g YmVpbmcgdXNlZCwgdGhlIG5hbWUgb2YgdGhlIDQtYnl0ZSBpbnRlZ2VyCistIyBhbmQgcmVhbCB0 eXBlcyBjYW4gYmUgcHJpbnRlZCBkaWZmZXJlbnRseS4gIEZvciBpbnN0YW5jZSwgZ2ZvcnRyYW4t NC4xIHVzZXMKKy0jICJpbnQ0IiB3aGVyZWFzIGdmb3J0cmFuLTQuMyB1c2VzICJpbnRlZ2VyKGtp bmQ9NCkiLgorLXNldCBpbnQ0ICIoaW50NHxpbnRlZ2VyXFwoa2luZD00XFwpKSIKKysjIERlcGVu ZGluZyBvbiB0aGUgY29tcGlsZXIgYmVpbmcgdXNlZCwgdGhlIHR5cGUgbmFtZXMgY2FuIGJlIHBy aW50ZWQgZGlmZmVyZW50bHkuCisrc2V0IGludDQgW2ZvcnRyYW5faW50NF0KKyAKKyBzZXQgY2hp bGRyZW4gW2xpc3QgW2xpc3QgImFycmF5Li0xIiAiLTEiIDIgIiRpbnQ0IFxcKDJcXCkiXSBcCisg CQkgIFtsaXN0ICJhcnJheS4wIiAiMCIgMiAiJGludDQgXFwoMlxcKSJdIFwKK2RpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAgYi9nZGIvdGVzdHN1aXRl L2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKK2luZGV4IDMzM2I3MWEuLjE3NzllYzAgMTAwNjQ0 CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKKysrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAorQEAgLTE4LDYgKzE4LDcgQEAK KyAKKyBsb2FkX2xpYiBtaS1zdXBwb3J0LmV4cAorIHNldCBNSUZMQUdTICItaT1taSIKKytsb2Fk X2xpYiAiZm9ydHJhbi5leHAiCisgCisgZ2RiX2V4aXQKKyBpZiBbbWlfZ2RiX3N0YXJ0XSB7CitA QCAtMzIsNiArMzMsOSBAQCBpZiB7IFtnZGJfY29tcGlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8k e3NyY2ZpbGV9IiAiJHtiaW5maWxlfSIgZXhlY3V0YWJsZSBcCisgICAgICByZXR1cm4gLTEKKyB9 CisgCisrIyBEZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVyIGJlaW5nIHVzZWQsIHRoZSB0eXBlIG5h bWVzIGNhbiBiZSBwcmludGVkIGRpZmZlcmVudGx5LgorK3NldCByZWFsIFtmb3J0cmFuX3JlYWw0 XQorKworIG1pX2RlbGV0ZV9icmVha3BvaW50cworIG1pX2dkYl9yZWluaXRpYWxpemVfZGlyICRz cmNkaXIvJHN1YmRpcgorIG1pX2dkYl9sb2FkICR7YmluZmlsZX0KK0BAIC01OCw3ICs2Miw3IEBA IG1pX2dkYl90ZXN0ICI1MDMtdmFyLWV2YWx1YXRlLWV4cHJlc3Npb24gdmxhMV9ub3RfYWxsb2Nh dGVkIiBcCisgICAiNTAzXFxeZG9uZSx2YWx1ZT1cIlxcXFswXFxcXVwiIiBcCisgICAiZXZhbCB2 YXJpYWJsZSB2bGExX25vdF9hbGxvY2F0ZWQiCisgbWlfbGlzdF9hcnJheV92YXJvYmpfY2hpbGRy ZW5fd2l0aF9pbmRleCAidmxhMV9ub3RfYWxsb2NhdGVkIiAiMCIgIjEiIFwKKy0gICAgInJlYWxc XFwoa2luZD00XFxcKSIgImdldCBjaGlsZHJlbiBvZiB2bGExX25vdF9hbGxvY2F0ZWQiCisrICAg ICIkcmVhbCIgImdldCBjaGlsZHJlbiBvZiB2bGExX25vdF9hbGxvY2F0ZWQiCisgCisgCisgCitA QCAtNzEsMTAgKzc1LDEwIEBAIG1pX2V4cGVjdF9zdG9wICJicmVha3BvaW50LWhpdCIgInZsYSIg IiIgIi4qdmxhLmY5MCIgIiRicF9saW5lbm8iIFwKKyBtaV9nZGJfdGVzdCAiNTEwLWRhdGEtZXZh bHVhdGUtZXhwcmVzc2lvbiB2bGExIiBcCisgICAiNTEwXFxeZG9uZSx2YWx1ZT1cIlxcKC4qXFwp XCIiICJldmFsdWF0ZSBhbGxvY2F0ZWQgdmxhIgorIAorLW1pX2NyZWF0ZV92YXJvYmpfY2hlY2tl ZCB2bGExX2FsbG9jYXRlZCB2bGExICJyZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDVcXFwpIiBcCisr bWlfY3JlYXRlX3Zhcm9ial9jaGVja2VkIHZsYTFfYWxsb2NhdGVkIHZsYTEgIiRyZWFsIFxcXCg1 XFxcKSIgXAorICAgImNyZWF0ZSBsb2NhbCB2YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIKKyBtaV9n ZGJfdGVzdCAiNTExLXZhci1pbmZvLXR5cGUgdmxhMV9hbGxvY2F0ZWQiIFwKKy0gICI1MTFcXF5k b25lLHR5cGU9XCJyZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDVcXFwpXCIiIFwKKysgICI1MTFcXF5k b25lLHR5cGU9XCIkcmVhbCBcXFwoNVxcXClcIiIgXAorICAgImluZm8gdHlwZSB2YXJpYWJsZSB2 bGExX2FsbG9jYXRlZCIKKyBtaV9nZGJfdGVzdCAiNTEyLXZhci1zaG93LWZvcm1hdCB2bGExX2Fs bG9jYXRlZCIgXAorICAgIjUxMlxcXmRvbmUsZm9ybWF0PVwibmF0dXJhbFwiIiBcCitAQCAtODMs NyArODcsNyBAQCBtaV9nZGJfdGVzdCAiNTEzLXZhci1ldmFsdWF0ZS1leHByZXNzaW9uIHZsYTFf YWxsb2NhdGVkIiBcCisgICAiNTEzXFxeZG9uZSx2YWx1ZT1cIlxcXFs1XFxcXVwiIiBcCisgICAi ZXZhbCB2YXJpYWJsZSB2bGExX2FsbG9jYXRlZCIKKyBtaV9saXN0X2FycmF5X3Zhcm9ial9jaGls ZHJlbl93aXRoX2luZGV4ICJ2bGExX2FsbG9jYXRlZCIgIjUiICIxIiBcCistICAgICJyZWFsXFxc KGtpbmQ9NFxcXCkiICJnZXQgY2hpbGRyZW4gb2YgdmxhMV9hbGxvY2F0ZWQiCisrICAgICIkcmVh bCIgImdldCBjaGlsZHJlbiBvZiB2bGExX2FsbG9jYXRlZCIKKyAKKyAKKyBzZXQgYnBfbGluZW5v IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2bGExLWZpbGxlZCJdCitAQCAtMTQ4LDcgKzE1Miw3IEBA IGdkYl9leHBlY3QgeworIAkgICAgIjU4M1xcXmRvbmUsdmFsdWU9XCJcXFxbMFxcXF1cIiIgXAor IAkgICAgImV2YWwgdmFyaWFibGUgcHZsYTJfbm90X2Fzc29jaWF0ZWQiCisgCW1pX2xpc3RfYXJy YXlfdmFyb2JqX2NoaWxkcmVuX3dpdGhfaW5kZXggInB2bGEyX25vdF9hc3NvY2lhdGVkIiAiMCIg IjEiIFwKKy0JICAgICJyZWFsXFxcKGtpbmQ9NFxcXCkiICJnZXQgY2hpbGRyZW4gb2YgcHZsYTJf bm90X2Fzc29jaWF0ZWQiCisrCSAgICAiJHJlYWwiICJnZXQgY2hpbGRyZW4gb2YgcHZsYTJfbm90 X2Fzc29jaWF0ZWQiCisgICAgIH0KKyAgICAgLXJlICI1ODBcXF5lcnJvcixtc2c9XCJ2YWx1ZSBj b250ZW50cyB0b28gbGFyZ2UgXFwoXFswLTlcXSsgYnl0ZXNcXCkuKiR7bWlfZ2RiX3Byb21wdH0k IiB7CisgCSMgVW5kZWZpbmVkIGJlaGF2aW91ciBpbiBnZm9ydHJhbi4KK0BAIC0xNzMsOSArMTc3 LDkgQEAgbWlfZ2RiX3Rlc3QgIjU5MC1kYXRhLWV2YWx1YXRlLWV4cHJlc3Npb24gcHZsYTIiIFwK KyAgICJldmFsdWF0ZSBhc3NvY2lhdGVkIHZsYSIKKyAKKyBtaV9jcmVhdGVfdmFyb2JqX2NoZWNr ZWQgcHZsYTJfYXNzb2NpYXRlZCBwdmxhMiBcCistICAicmVhbFxcXChraW5kPTRcXFwpIFxcXCg1 LDJcXFwpIiAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHB2bGEyX2Fzc29jaWF0ZWQiCisrICAiJHJl YWwgXFxcKDUsMlxcXCkiICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgcHZsYTJfYXNzb2NpYXRlZCIK KyBtaV9nZGJfdGVzdCAiNTkxLXZhci1pbmZvLXR5cGUgcHZsYTJfYXNzb2NpYXRlZCIgXAorLSAg IjU5MVxcXmRvbmUsdHlwZT1cInJlYWxcXFwoa2luZD00XFxcKSBcXFwoNSwyXFxcKVwiIiBcCisr ICAiNTkxXFxeZG9uZSx0eXBlPVwiJHJlYWwgXFxcKDUsMlxcXClcIiIgXAorICAgImluZm8gdHlw ZSB2YXJpYWJsZSBwdmxhMl9hc3NvY2lhdGVkIgorIG1pX2dkYl90ZXN0ICI1OTItdmFyLXNob3ct Zm9ybWF0IHB2bGEyX2Fzc29jaWF0ZWQiIFwKKyAgICI1OTJcXF5kb25lLGZvcm1hdD1cIm5hdHVy YWxcIiIgXAorLS0gCisyLjcuNAorCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC0yb2Y3LnBh dGNoIGIvZ2RiLXZsYS1pbnRlbC0yb2Y3LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjYxYTE3N2EKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVsLTJvZjcu cGF0Y2gKQEAgLTAsMCArMSw3NSBAQAorRnJvbSBhODc5YjI1MDFlNjFlZTNkM2VmYWRiZGI2YjMz MjEyYjU3ZDNhMmUxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVj a2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAw ODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDIvN10gRm9ydHJhbjogUmVzb2x2ZSBkeW5h bWljIHByb3BlcnRpZXMgb2YgcG9pbnRlciB0eXBlcy4KKworSW4gRm9ydHJhbiBhIHBvaW50ZXIg bWF5IGhhdmUgYSBkeW5hbWljIGFzc29jaWF0ZWQgcHJvcGVydHkuCisKKzIwMTYtMDctMDggIEJl cm5oYXJkIEhlY2tlbCAgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CisKK2dkYi9DaGFuZ2Vs b2c6CisJKiBnZGJ0eXBlcy5jIChyZXNvbHZlX2R5bmFtaWNfdHlwZXNfaW50ZXJuYWwpOiBSZXNv bHZlIHBvaW50ZXIgdHlwZXMuCisJICAocmVzb2x2ZV9keW5hbWljX3BvaW50ZXIpOiBOZXcuCisK K0NoYW5nZS1JZDogSWU0YjlkNjM5N2NmYTA4OWVlMmUwZGIwMmJlYjE4NDE1YTc1MWMxYzAKKy0t LQorIGdkYi9nZGJ0eXBlcy5jIHwgMjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KKyAx IGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0t Z2l0IGEvZ2RiL2dkYnR5cGVzLmMgYi9nZGIvZ2RidHlwZXMuYworaW5kZXggZWM1YzE3YS4uYjUz ZTY0OSAxMDA2NDQKKy0tLSBhL2dkYi9nZGJ0eXBlcy5jCisrKysgYi9nZGIvZ2RidHlwZXMuYwor QEAgLTE4MDYsNyArMTgwNiw4IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5 cGUgKnR5cGUsIGludCB0b3BfbGV2ZWwpCisgICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodHlwZSk7 CisgCisgICAvKiBXZSBvbmx5IHdhbnQgdG8gcmVjb2duaXplIHJlZmVyZW5jZXMgYXQgdGhlIG91 dGVybW9zdCBsZXZlbC4gICovCistICBpZiAodG9wX2xldmVsICYmIFRZUEVfQ09ERSAodHlwZSkg PT0gVFlQRV9DT0RFX1JFRikKKysgIGlmICh0b3BfbGV2ZWwgJiYKKysgICAgICAoVFlQRV9DT0RF ICh0eXBlKSA9PSBUWVBFX0NPREVfUkVGIHx8IFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RF X1BUUikpCisgICAgIHR5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBl KSk7CisgCisgICAvKiBUeXBlcyB0aGF0IGhhdmUgYSBkeW5hbWljIFRZUEVfREFUQV9MT0NBVElP TiBhcmUgY29uc2lkZXJlZAorQEAgLTIxMDUsNiArMjEwNiwyOCBAQCByZXNvbHZlX2R5bmFtaWNf c3RydWN0IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKyAgIHJldHVybiByZXNvbHZlZF90eXBlOworIH0K KyAKKysvKiBXb3JrZXIgZm9yIHBvaW50ZXIgdHlwZXMuICAqLworKworK3N0YXRpYyBzdHJ1Y3Qg dHlwZSAqCisrcmVzb2x2ZV9keW5hbWljX3BvaW50ZXIgKHN0cnVjdCB0eXBlICp0eXBlLAorKwkJ CSBzdHJ1Y3QgcHJvcGVydHlfYWRkcl9pbmZvICphZGRyX3N0YWNrKQorK3sKKysgIHN0cnVjdCBk eW5hbWljX3Byb3AgKnByb3A7CisrICBDT1JFX0FERFIgdmFsdWU7CisrCisrICB0eXBlID0gY29w eV90eXBlICh0eXBlKTsKKysKKysgIC8qIFJlc29sdmUgYXNzb2NpYXRlZCBwcm9wZXJ0eS4gICov CisrICBwcm9wID0gVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5cGUpOworKyAgaWYgKHByb3AgIT0g TlVMTCAmJiBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKHByb3AsIE5VTEwsIGFkZHJfc3RhY2ss ICZ2YWx1ZSkpCisrICAgIHsKKysgICAgICBUWVBFX0RZTl9QUk9QX0FERFIgKHByb3ApID0gdmFs dWU7CisrICAgICAgVFlQRV9EWU5fUFJPUF9LSU5EIChwcm9wKSA9IFBST1BfQ09OU1Q7CisrICAg IH0KKysKKysgIHJldHVybiB0eXBlOworK30KKysKKyAvKiBXb3JrZXIgZm9yIHJlc29sdmVkX2R5 bmFtaWNfdHlwZS4gICovCisgCisgc3RhdGljIHN0cnVjdCB0eXBlICoKK0BAIC0yMTUzLDYgKzIx NzYsMTAgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBl LAorIAkgICAgYnJlYWs7CisgCSAgfQorIAorKyAgICAgICAgY2FzZSBUWVBFX0NPREVfUFRSOgor KyAJICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX3BvaW50ZXIgKHR5cGUsIGFkZHJf c3RhY2spOworKyAJICBicmVhazsKKysKKyAJY2FzZSBUWVBFX0NPREVfQVJSQVk6CisgCSAgcmVz b2x2ZWRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJheSAodHlwZSwgYWRkcl9zdGFjayk7Cisg CSAgYnJlYWs7CistLSAKKzIuNy40CisKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTNvZjcu cGF0Y2ggYi9nZGItdmxhLWludGVsLTNvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uODA5NTQwNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtM29m Ny5wYXRjaApAQCAtMCwwICsxLDExMyBAQAorRnJvbSBkMmZkNWZlYTJjMDYwNTJjNTNkOTliZmEy NWZkYWVkOWNmNWRkMjE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQg SGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAx NiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDMvN10gVHlwZXByaW50OiBSZXNvbHZl IGFueSBkeW5hbWljIHRhcmdldCB0eXBlIG9mIGEgcG9pbnRlci4KKworQmVmb3JlIGNvbnRpbnVp bmcgd2l0aCBsYW5ndWFnZSBzcGVjaWZpYyB0eXBlIHByaW50aW5nCit3ZSBoYXZlIHRvIHJlc29s dmUgdGhlIHRhcmdldCB0eXBlIG9mIGEgcG9pbnRlcgorYXMgd2UgbWlnaHQgd2FubmEgcHJpbnQg bW9yZSBkZXRhaWxzIG9mIHRoZSB0YXJnZXQKK2xpa2UgdGhlIGRpbWVuc2lvbiBvZiBhbiBhcnJh eS4gV2UgaGF2ZSB0byByZXNvbHZlIGl0IGhlcmUKK2FzIHdlIGRvbid0IGhhdmUgYW55IGFkZHJl c3MgaW5mb3JtYXRpb24gbGF0ZXIgb24uCisKKzIwMTYtMDctMDggIEJlcm5oYXJkIEhlY2tlbCAg PGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CisKK2dkYi9DaGFuZ2Vsb2c6CisJKiB0eXBlcHJp bnQuYyAod2hhdGlzX2V4cCk6IFJlc29sdmUgZHluYW1pYyB0YXJnZXQgdHlwZQorCSAgb2YgcG9p bnRlcnMuCisKK2dkYi9UZXN0c3VpdGUvQ2hhbmdlbG9nOgorCSogZ2RiLmNwL3ZsYS1jeHguY2M6 IEFkZGVkIHBvaW50ZXIgdG8gZHluYW1pYyB0eXBlLgorCSogZ2RiLmNwL3ZsYS1jeHguZXhwOiBU ZXN0IHBvaW50ZXIgdG8gZHluYW1pYyB0eXBlLgorCitDaGFuZ2UtSWQ6IElkZmYwZDZkZDBlYWIz MTI1YjQ1ZDQ3MGExMmI1ZTY2YjM5MmU0MmMzCistLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5jcC92 bGEtY3h4LmNjICB8ICA5ICsrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHgu ZXhwIHwgIDUgKysrKysKKyBnZGIvdHlwZXByaW50LmMgICAgICAgICAgICAgICAgICB8IDE5ICsr KysrKysrKysrKysrKysrKysKKyAzIGZpbGVzIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKykKKwor ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguY2MgYi9nZGIvdGVzdHN1 aXRlL2dkYi5jcC92bGEtY3h4LmNjCitpbmRleCBhMWZkNTEwLi41ZjhmOGFiIDEwMDY0NAorLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5jYworKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuY3AvdmxhLWN4eC5jYworQEAgLTE1LDYgKzE1LDEwIEBACisgICAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCisgCisrZXh0ZXJuICJDIiB7CisrI2luY2x1ZGUgPHN0ZGRlZi5oPgor K30KKysKKyBzdHJ1Y3QgY29udGFpbmVyOworIAorIHN0cnVjdCBlbGVtZW50CitAQCAtNDAsMTEg KzQ0LDE2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKyAgIHR5cGVkZWYgdHlw ZW9mICh2bGEpICZ2bGFyZWZ0eXBlZGVmOworICAgdmxhcmVmdHlwZWRlZiB2bGFyZWYyICh2bGEp OworICAgY29udGFpbmVyIGM7CisrICB0eXBlb2YgKHZsYSkgKnB0ciA9IE5VTEw7CisrCisrICAv LyBCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50CisrICBwdHIgPSAmdmxhOworIAorICAgZm9yIChp bnQgaSA9IDA7IGkgPCB6OyArK2kpCisgICAgIHZsYVtpXSA9IDUgKyAyICogaTsKKyAKKyAgIC8v IHZsYXNfZmlsbGVkCisgICB2bGFbMF0gPSAyICogdmxhWzBdOworKworICAgcmV0dXJuIHZsYVsy XTsKKyB9CitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAgYi9n ZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAoraW5kZXggZjYyMjRkYy4uYmFiZGZiNyAx MDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmNwL3ZsYS1jeHguZXhwCisrKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAorQEAgLTIzLDYgKzIzLDEwIEBAIGlmICFbcnVu dG9fbWFpbl0geworICAgICByZXR1cm4gLTEKKyB9CisgCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiXQorK2dkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50IgorK2dkYl90ZXN0ICJw dHlwZSBwdHIiICJpbnQgXFwoXFwqXFwpXFxcW3ZhcmlhYmxlIGxlbmd0aFxcXF0iICJwdHlwZSBw dHIsIEJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiCisrCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgInZsYXNfZmlsbGVkIl0KKyBnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAidmxhc19maWxsZWQiCisgCitAQCAtMzMsMyArMzcsNCBAQCBnZGJfdGVzdCAicHJpbnQgdmxh cmVmIiAiID0gXFwoaW50IFxcKCZcXClcXFxbM1xcXF1cXCkgQCRoZXg6IFxcezUsIDcsIDlcXH0i CisgIyBidWcgYmVpbmcgdGVzdGVkLCBpdCdzIGJldHRlciBub3QgdG8gZGVwZW5kIG9uIHRoZSBl eGFjdCBzcGVsbGluZy4KKyBnZGJfdGVzdCAicHJpbnQgdmxhcmVmMiIgIiA9IFxcKC4qXFwpIEAk aGV4OiBcXHs1LCA3LCA5XFx9IgorIGdkYl90ZXN0ICJwcmludCBjIiAiID0gXFx7ZSA9IFxce2Mg PSBAJGhleFxcfVxcfSIKKytnZGJfdGVzdCAicHR5cGUgcHRyIiAiaW50IFxcKFxcKlxcKVxcXFsz XFxcXSIKK2RpZmYgLS1naXQgYS9nZGIvdHlwZXByaW50LmMgYi9nZGIvdHlwZXByaW50LmMKK2lu ZGV4IGU3NzUxM2UuLmUzZDg0YzcgMTAwNjQ0CistLS0gYS9nZGIvdHlwZXByaW50LmMKKysrKyBi L2dkYi90eXBlcHJpbnQuYworQEAgLTQ4NSw2ICs0ODUsMjUgQEAgd2hhdGlzX2V4cCAoY2hhciAq ZXhwLCBpbnQgc2hvdykKKyAgICAgICBwcmludGZfZmlsdGVyZWQgKCIgKi9cbiIpOyAgICAKKyAg ICAgfQorIAorKyAgLyogUmVzb2x2ZSBhbnkgZHluYW1pYyB0YXJnZXQgdHlwZSwgYXMgd2UgbWln aHQgcHJpbnQKKysgICAgIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhcmdldC4K KysgICAgIEZvciBleGFtcGxlLCBpbiBGb3J0cmFuIGFuZCBDIHdlIGFyZSBwcmludGluZyB0aGUg ZGltZW5zaW9uIG9mIHRoZQorKyAgICAgZHluYW1pYyBhcnJheSB0aGUgcG9pbnRlciBpcyBwb2lu dGluZyB0by4gICovCisrICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSCisr ICAgICAgJiYgaXNfZHluYW1pY190eXBlICh0eXBlKSA9PSAxKQorKyAgICB7CisrICAgICAgQ09S RV9BRERSIGFkZHI7CisrICAgICAgaWYgKE5VTEwgIT0gVFlQRV9EQVRBX0xPQ0FUSU9OIChUWVBF X1RBUkdFVF9UWVBFKHR5cGUpKSkKKysJYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7CisrICAg ICAgZWxzZQorKwlhZGRyID0gdmFsdWVfYXNfYWRkcmVzcyAodmFsKTsKKysKKysgICAgICBpZiAo YWRkciAhPSAwCisrCSAgJiYgdHlwZV9ub3RfYXNzb2NpYXRlZCAodHlwZSkgPT0gMCkKKysJVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSkgPSByZXNvbHZlX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRf VFlQRSAodHlwZSksCisrCQkJCQkJCU5VTEwsIGFkZHIpOworKyAgICB9CisrCisgICBMQV9QUklO VF9UWVBFICh0eXBlLCAiIiwgZ2RiX3N0ZG91dCwgc2hvdywgMCwgJmZsYWdzKTsKKyAgIHByaW50 Zl9maWx0ZXJlZCAoIlxuIik7CisgCistLSAKKzIuNy40CisKCmRpZmYgLS1naXQgYS9nZGItdmxh LWludGVsLTRvZjcucGF0Y2ggYi9nZGItdmxhLWludGVsLTRvZjcucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjJkY2EzNQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi12 bGEtaW50ZWwtNG9mNy5wYXRjaApAQCAtMCwwICsxLDUwOCBAQAorRnJvbSBmNjM3ODJkMjVlYmQ1 OTNjNGM0NjY5ZDRjMzk0YTI3MDZmMTVlNjYwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorRGF0ZTogVHVl LCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3ViamVjdDogW1BBVENIIDQvN10gRm9ydHJh bjogVHlwZXByaW50LCBmaXggZGFuZ2xpbmcgdHlwZXMuCisKK1Nob3cgdGhlIHR5cGUgb2Ygbm90 LWFsbG9jYXRlZCBhbmQvb3Igbm90LWFzc29jaWF0ZWQgdHlwZXMKK2FzIHRoaXMgaXMga25vd24u ICBGb3IgYXJyYXkgdHlwZXMgYW5kIHBvaW50ZXIgdG8gYXJyYXkgdHlwZXMKK3dlIGFyZSBnb2lu ZyB0byBwcmludCB0aGUgbnVtYmVyIG9mIHJhbmtzLgorCisyMDE2LTA2LTMwICBCZXJuaGFyZCBI ZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwuY29tPgorCitnZGIvQ2hhbmdlTG9nOgorCSog Zi10eXBlcHJpbnQuYyAoZl9wcmludF90eXBlKTogRG9uJ3QgYnlwYXNzIGRhbmdsaW5nIHR5cGVz LgorCSAgKGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCk6IEFkZCBwcmludF9yYW5rIHBhcmFt ZXRlci4KKwkgIChmX3R5cGVfcHJpbnRfdmFyc3BlY19zdWZmaXgpOiBQcmludCByYW5rcyBvZiBh cnJheSB0eXBlcworCSAgaW4gY2FzZSB0aGV5IGRhbmdsaW5nLgorCSAgKGZfdHlwZV9wcmludF9i YXNlKTogQWRkIHByaW50X3JhbmsgcGFyYW1ldGVyLgorCitnZGIvVGVzdHN1aXRlL0NoYW5nZUxv ZzoKKwkqIGdkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MDogTmV3LgorCSogZ2RiLmZvcnRyYW4vcHJp bnRfdHlwZS5leHA6IE5ldy4KKwkqIGdkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHA6IEFkYXB0IGV4 cGVjdGVkIHJlc3VsdHMuCisJKiBnZGIuZm9ydHJhbi92bGEtdHlwZS5leHA6IExpa2V3aXNlLgor CSogZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cDogTGlrZXdpc2UuCisJKiBnZGIubWkvbWktdmxh LWZvcnRyYW4uZXhwOiBMaWtld2lzZS4KKworQ2hhbmdlLUlkOiBJYjU1ZjI4YjQwOTJjZjg4ZTM0 OTE4NDQ5YTJlYmI2ZTVkYWFmZTUxMgorLS0tCisgZ2RiL2YtdHlwZXByaW50LmMgICAgICAgICAg ICAgICAgICAgICAgICB8ICA5NSArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQorIGdkYi90 ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwICAgfCAgODAgKysrKysrKysrKysrKysr KysrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHAgfCAx MDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLXB0eXBlLmV4cCAgfCAgMTIgKystLQorIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXR5cGUuZXhwICAgfCAgIDcgKystCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtdmFsdWUuZXhwICB8ICAgNCArLQorIGdkYi90ZXN0c3VpdGUvZ2RiLm1pL21pLXZsYS1mb3J0 cmFuLmV4cCAgfCAgIDkgKy0tCisgNyBmaWxlcyBjaGFuZ2VkLCAyNDggaW5zZXJ0aW9ucygrKSwg NTkgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vcG9pbnRlcnMuZjkwCisgY3JlYXRlIG1vZGUgMTAwNzU1IGdkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vcHJpbnRfdHlwZS5leHAKKworSW5kZXg6IGdkYi03LjExLjUwLjIwMTYwNjMwL2dk Yi9mLXR5cGVwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3Jp Zy9nZGIvZi10eXBlcHJpbnQuYwkyMDE2LTA3LTE2IDEwOjU0OjQ4Ljc0OTA5OTE1MCArMDIwMAor KysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi9mLXR5cGVwcmludC5jCTIwMTYtMDctMTYgMTA6 NTU6NTkuNzYzNjY3MzU1ICswMjAwCitAQCAtMzcsNyArMzcsNyBAQAorICNlbmRpZgorIAorIHN0 YXRpYyB2b2lkIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoc3RydWN0IHR5cGUgKiwgc3Ry dWN0IHVpX2ZpbGUgKiwgaW50LAorLQkJCQkJIGludCwgaW50LCBpbnQpOworKwkJCQkJIGludCwg aW50LCBpbnQsIGludCk7CisgCisgdm9pZCBmX3R5cGVfcHJpbnRfdmFyc3BlY19wcmVmaXggKHN0 cnVjdCB0eXBlICosIHN0cnVjdCB1aV9maWxlICosCisgCQkJCSAgaW50LCBpbnQpOworQEAgLTU0 LDE4ICs1NCw2IEBACisgICBlbnVtIHR5cGVfY29kZSBjb2RlOworICAgaW50IGRlbWFuZ2xlZF9h cmdzOworIAorLSAgaWYgKHR5cGVfbm90X2Fzc29jaWF0ZWQgKHR5cGUpKQorLSAgICB7CistICAg ICAgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJlYW0pOworLSAgICAgIHJldHVybjsKKy0g ICAgfQorLQorLSAgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAodHlwZSkpCistICAgIHsKKy0gICAg ICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKKy0gICAgICByZXR1cm47CistICAg IH0KKy0KKyAgIGZfdHlwZV9wcmludF9iYXNlICh0eXBlLCBzdHJlYW0sIHNob3csIGxldmVsKTsK KyAgIGNvZGUgPSBUWVBFX0NPREUgKHR5cGUpOworICAgaWYgKCh2YXJzdHJpbmcgIT0gTlVMTCAm JiAqdmFyc3RyaW5nICE9ICdcMCcpCitAQCAtODcsNyArNzUsNyBAQAorICAgICAgICAgIHNvIGRv bid0IHByaW50IGFuIGFkZGl0aW9uYWwgcGFpciBvZiAoKSdzLiAgKi8KKyAKKyAgICAgICBkZW1h bmdsZWRfYXJncyA9IHZhcnN0cmluZ1tzdHJsZW4gKHZhcnN0cmluZykgLSAxXSA9PSAnKSc7IAor LSAgICAgIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAodHlwZSwgc3RyZWFtLCBzaG93LCAw LCBkZW1hbmdsZWRfYXJncywgMCk7CisrICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4 ICh0eXBlLCBzdHJlYW0sIHNob3csIDAsIGRlbWFuZ2xlZF9hcmdzLCAwLCAwKTsKKyAgICB9Cisg fQorIAorQEAgLTE1Nyw3ICsxNDUsNyBAQAorIHN0YXRpYyB2b2lkCisgZl90eXBlX3ByaW50X3Zh cnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwK KyAJCQkgICAgIGludCBzaG93LCBpbnQgcGFzc2VkX2FfcHRyLCBpbnQgZGVtYW5nbGVkX2FyZ3Ms CistCQkJICAgICBpbnQgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsKQorKwkJCSAgICAgaW50IGFy cmF5cHJpbnRfcmVjdXJzZV9sZXZlbCwgaW50IHByaW50X3Jhbmtfb25seSkKKyB7CisgICBpbnQg dXBwZXJfYm91bmQsIGxvd2VyX2JvdW5kOworIAorQEAgLTE4MSwzNCArMTY5LDUwIEBACisgCWZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIigiKTsKKyAKKyAgICAgICBpZiAodHlwZV9ub3RfYXNz b2NpYXRlZCAodHlwZSkpCistICAgICAgICB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVh bSk7CisrCXByaW50X3Jhbmtfb25seSA9IDE7CisgICAgICAgZWxzZSBpZiAodHlwZV9ub3RfYWxs b2NhdGVkICh0eXBlKSkKKy0gICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0p OworKwlwcmludF9yYW5rX29ubHkgPSAxOworKyAgICAgIGVsc2UgaWYgKChUWVBFX0FTU09DSUFU RURfUFJPUCAodHlwZSkKKysJCSYmIFBST1BfQ09OU1QgIT0gVFlQRV9EWU5fUFJPUF9LSU5EIChU WVBFX0FTU09DSUFURURfUFJPUCAodHlwZSkpKQorKwkgICAgICB8fCAoVFlQRV9BTExPQ0FURURf UFJPUCAodHlwZSkKKysJCSYmIFBST1BfQ09OU1QgIT0gVFlQRV9EWU5fUFJPUF9LSU5EIChUWVBF X0FMTE9DQVRFRF9QUk9QICh0eXBlKSkpCisrCSAgICAgIHx8IChUWVBFX0RBVEFfTE9DQVRJT04g KHR5cGUpCisrCQkgICYmIFBST1BfQ09OU1QgIT0gVFlQRV9EWU5fUFJPUF9LSU5EIChUWVBFX0RB VEFfTE9DQVRJT04gKHR5cGUpKSkpCisrCS8qIFRoaXMgY2FzZSBleGlzdCB3aGVuIHdlIHB0eXBl IGEgdHlwZW5hbWUgd2hpY2ggaGFzIHRoZQorKwkgICBkeW5hbWljIHByb3BlcnRpZXMgYnV0IGNh bm5vdCBiZSByZXNvbHZlZCBhcyB0aGVyZSBpcworKwkgICBubyBvYmplY3QuICAqLworKwlwcmlu dF9yYW5rX29ubHkgPSAxOworKworKyAgICAgIGlmIChUWVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZ UEUgKHR5cGUpKSA9PSBUWVBFX0NPREVfQVJSQVkpCisrCWZfdHlwZV9wcmludF92YXJzcGVjX3N1 ZmZpeCAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwgMCwKKysJCQkJICAgICAwLCAw LCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwsCisrCQkJCSAgICAgcHJpbnRfcmFua19vbmx5KTsK KysKKysgICAgICBpZiAocHJpbnRfcmFua19vbmx5ID09IDEpCisrCWZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgIjoiKTsKKyAgICAgICBlbHNlCistICAgICAgICB7CistICAgICAgICAgIGlmIChU WVBFX0NPREUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSA9PSBUWVBFX0NPREVfQVJSQVkpCist ICAgICAgICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX1RBUkdFVF9UWVBF ICh0eXBlKSwgc3RyZWFtLCAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwLCAwLCBhcnJheXByaW50X3JlY3Vyc2VfbGV2ZWwpOworLQorLSAgICAgICAgICBsb3dl cl9ib3VuZCA9IGY3N19nZXRfbG93ZXJib3VuZCAodHlwZSk7CistICAgICAgICAgIGlmIChsb3dl cl9ib3VuZCAhPSAxKQkvKiBOb3QgdGhlIGRlZmF1bHQuICAqLworLSAgICAgICAgICAgIGZwcmlu dGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkOiIsIGxvd2VyX2JvdW5kKTsKKy0KKy0gICAgICAgICAg LyogTWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhhdmUgYW4gYXNzdW1lZCBzaXplIGFycmF5LCB3ZQor LSAgICAgICAgICAgICBwcmludCBvdXQgYSB3YXJuaW5nIGFuZCBwcmludCB0aGUgdXBwZXJib3Vu ZCBhcyAnKicuICAqLworLQorLSAgICAgICAgICBpZiAoVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9J U19VTkRFRklORUQgKHR5cGUpKQorLSAgICAgICAgICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVh bSwgIioiKTsKKy0gICAgICAgICAgZWxzZQorLSAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAg IHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJvdW5kICh0eXBlKTsKKy0gICAgICAgICAgICAg IGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiVkIiwgdXBwZXJfYm91bmQpOworLSAgICAgICAg ICAgIH0KKy0KKy0gICAgICAgICAgaWYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSkpICE9IFRZUEVfQ09ERV9BUlJBWSkKKy0gICAgICAgICAgICBmX3R5cGVfcHJpbnRfdmFyc3Bl Y19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIGFycmF5cHJpbnRfcmVjdXJzZV9s ZXZlbCk7CistICAgICAgICB9CisrCXsKKysJICBsb3dlcl9ib3VuZCA9IGY3N19nZXRfbG93ZXJi b3VuZCAodHlwZSk7CisrCSAgaWYgKGxvd2VyX2JvdW5kICE9IDEpCS8qIE5vdCB0aGUgZGVmYXVs dC4gICovCisrCSAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIlZDoiLCBsb3dlcl9ib3Vu ZCk7CisrCisrCSAgLyogTWFrZSBzdXJlIHRoYXQsIGlmIHdlIGhhdmUgYW4gYXNzdW1lZCBzaXpl IGFycmF5LCB3ZQorKwkgICAgIHByaW50IG91dCBhIHdhcm5pbmcgYW5kIHByaW50IHRoZSB1cHBl cmJvdW5kIGFzICcqJy4gICovCisrCisrCSAgaWYgKFRZUEVfQVJSQVlfVVBQRVJfQk9VTkRfSVNf VU5ERUZJTkVEICh0eXBlKSkKKysJICAgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIioiKTsK KysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIHVwcGVyX2JvdW5kID0gZjc3X2dldF91cHBlcmJv dW5kICh0eXBlKTsKKysJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiJWQiLCB1cHBl cl9ib3VuZCk7CisrCSAgICB9CisrCX0KKysKKysgICAgICBpZiAoVFlQRV9DT0RFIChUWVBFX1RB UkdFVF9UWVBFICh0eXBlKSkgIT0gVFlQRV9DT0RFX0FSUkFZKQorKwlmX3R5cGVfcHJpbnRfdmFy c3BlY19zdWZmaXggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBzdHJlYW0sIDAsCisrCQkJCSAg ICAgMCwgMCwgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsLAorKwkJCQkgICAgIHByaW50X3Jhbmtf b25seSk7CisrCisgICAgICAgaWYgKGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCA9PSAxKQorIAlm cHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpIik7CisgICAgICAgZWxzZQorQEAgLTIxOSwxMyAr MjIzLDE0IEBACisgICAgIGNhc2UgVFlQRV9DT0RFX1BUUjoKKyAgICAgY2FzZSBUWVBFX0NPREVf UkVGOgorICAgICAgIGZfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoVFlQRV9UQVJHRVRfVFlQ RSAodHlwZSksIHN0cmVhbSwgMCwgMSwgMCwKKy0JCQkJICAgYXJyYXlwcmludF9yZWN1cnNlX2xl dmVsKTsKKysJCQkJICAgYXJyYXlwcmludF9yZWN1cnNlX2xldmVsLCAwKTsKKyAgICAgICBmcHJp bnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpIik7CisgICAgICAgYnJlYWs7CisgCisgICAgIGNhc2Ug VFlQRV9DT0RFX0ZVTkM6CisgICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBF X1RBUkdFVF9UWVBFICh0eXBlKSwgc3RyZWFtLCAwLAorLQkJCQkgICBwYXNzZWRfYV9wdHIsIDAs IGFycmF5cHJpbnRfcmVjdXJzZV9sZXZlbCk7CisrCQkJCSAgIHBhc3NlZF9hX3B0ciwgMCwgYXJy YXlwcmludF9yZWN1cnNlX2xldmVsLAorKwkJCQkgICAwKTsKKyAgICAgICBpZiAocGFzc2VkX2Ff cHRyKQorIAlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIpIik7CisgCitAQCAtMzc2LDcgKzM4 MSw3IEBACisgCSAgICAgIGZwdXRzX2ZpbHRlcmVkICgiIDo6ICIsIHN0cmVhbSk7CisgCSAgICAg IGZwdXRzX2ZpbHRlcmVkIChUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGluZGV4KSwgc3RyZWFtKTsK KyAJICAgICAgZl90eXBlX3ByaW50X3ZhcnNwZWNfc3VmZml4IChUWVBFX0ZJRUxEX1RZUEUgKHR5 cGUsIGluZGV4KSwKKy0JCQkJCSAgIHN0cmVhbSwgc2hvdyAtIDEsIDAsIDAsIDApOworKwkJCQkJ ICAgc3RyZWFtLCBzaG93IC0gMSwgMCwgMCwgMCwgMCk7CisgCSAgICAgIGZwdXRzX2ZpbHRlcmVk ICgiXG4iLCBzdHJlYW0pOworIAkgICAgfQorIAkgIGZwcmludGZpX2ZpbHRlcmVkIChsZXZlbCwg c3RyZWFtLCAiRW5kIFR5cGUgIik7CitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2MzAvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAKKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251 bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMS41MC4y MDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MAkyMDE2LTA3LTE2 IDEwOjU1OjQyLjA3OTUyNTg2MCArMDIwMAorQEAgLTAsMCArMSw4MCBAQAorKyEgQ29weXJpZ2h0 IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr ISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKysKKytwcm9ncmFtIHBvaW50ZXJzCisrCisrICB0eXBlIDo6IHR3bwor KyAgICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiBpdmxhMSAoOikKKysgICAgaW50ZWdlciwgYWxs b2NhdGFibGUgOjogaXZsYTIgKDosIDopCisrICBlbmQgdHlwZSB0d28KKysKKysgIGxvZ2ljYWws IHRhcmdldCA6OiBsb2d2CisrICBjb21wbGV4LCB0YXJnZXQgOjogY29tdgorKyAgY2hhcmFjdGVy LCB0YXJnZXQgOjogY2hhcnYKKysgIGNoYXJhY3RlciAobGVuPTMpLCB0YXJnZXQgOjogY2hhcmEK KysgIGludGVnZXIsIHRhcmdldCA6OiBpbnR2CisrICBpbnRlZ2VyLCB0YXJnZXQsIGRpbWVuc2lv biAoMTAsMikgOjogaW50YQorKyAgcmVhbCwgdGFyZ2V0ICAgIDo6IHJlYWx2CisrICB0eXBlKHR3 byksIHRhcmdldCAgOjogdHdvdgorKworKyAgbG9naWNhbCwgcG9pbnRlciA6OiBsb2dwCisrICBj b21wbGV4LCBwb2ludGVyIDo6IGNvbXAKKysgIGNoYXJhY3RlciwgcG9pbnRlcjo6IGNoYXJwCisr ICBjaGFyYWN0ZXIgKGxlbj0zKSwgcG9pbnRlcjo6IGNoYXJhcAorKyAgaW50ZWdlciwgcG9pbnRl ciA6OiBpbnRwCisrICBpbnRlZ2VyLCBwb2ludGVyLCBkaW1lbnNpb24gKDosOikgOjogaW50YXAK KysgIHJlYWwsIHBvaW50ZXIgOjogcmVhbHAKKysgIHR5cGUodHdvKSwgcG9pbnRlciA6OiB0d29w CisrCisrICBudWxsaWZ5IChsb2dwKQorKyAgbnVsbGlmeSAoY29tcCkKKysgIG51bGxpZnkgKGNo YXJwKQorKyAgbnVsbGlmeSAoY2hhcmFwKQorKyAgbnVsbGlmeSAoaW50cCkKKysgIG51bGxpZnkg KGludGFwKQorKyAgbnVsbGlmeSAocmVhbHApCisrICBudWxsaWZ5ICh0d29wKQorKworKyAgbG9n cCA9PiBsb2d2ICAgICEgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAorKyAgY29tcCA9PiBjb212 CisrICBjaGFycCA9PiBjaGFydgorKyAgY2hhcmFwID0+IGNoYXJhCisrICBpbnRwID0+IGludHYK KysgIGludGFwID0+IGludGEKKysgIHJlYWxwID0+IHJlYWx2CisrICB0d29wID0+IHR3b3YKKysK KysgIGxvZ3YgPSBhc3NvY2lhdGVkKGxvZ3ApICAgICAhIEJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50 CisrICBjb212ID0gY21wbHgoMSwyKQorKyAgY2hhcnYgPSAiYSIKKysgIGNoYXJhID0gImFiYyIK KysgIGludHYgPSAxMAorKyAgaW50YSg6LDopID0gMQorKyAgaW50YSgzLDEpID0gMworKyAgcmVh bHYgPSAzLjE0CisrCisrICBhbGxvY2F0ZSAodHdvdiVpdmxhMSgzKSkKKysgIGFsbG9jYXRlICh0 d292JWl2bGEyKDIsMikpCisrICB0d292JWl2bGExKDEpID0gMTEKKysgIHR3b3YlaXZsYTEoMikg PSAxMgorKyAgdHdvdiVpdmxhMSgzKSA9IDEzCisrICB0d292JWl2bGEyKDEsMSkgPSAyMTEKKysg IHR3b3YlaXZsYTIoMiwxKSA9IDIyMQorKyAgdHdvdiVpdmxhMigxLDIpID0gMjEyCisrICB0d292 JWl2bGEyKDIsMikgPSAyMjIKKysKKysgIGludHYgPSBpbnR2ICsgMSAhIEFmdGVyIHZhbHVlIGFz c2lnbm1lbnQKKysKKytlbmQgcHJvZ3JhbSBwb2ludGVycworSW5kZXg6IGdkYi03LjExLjUwLjIw MTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcHJpbnRfdHlwZS5leHAKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysr KyBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ByaW50X3R5 cGUuZXhwCTIwMTYtMDctMTYgMTA6NTU6NDIuMDc5NTI1ODYwICswMjAwCitAQCAtMCwwICsxLDEw MCBAQAorKyMgQ29weXJpZ2h0IDIwMTYgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisr CisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysj IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisr IworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rlc3RmaWxlICJw b2ludGVycy5mOTAiCisrbG9hZF9saWIgZm9ydHJhbi5leHAKKysKKytpZiB7IFtwcmVwYXJlX2Zv cl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKKysgICAg e2RlYnVnIGY5MCBxdWlldH1dIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisrCisraWYgIVty dW50b19tYWluXSB7CisrICAgIHVudGVzdGVkICJjb3VsZCBub3QgcnVuIHRvIG1haW4iCisrICAg IHJldHVybiAtMQorK30KKysKKysjIERlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIgYmVpbmcgdXNl ZCwgdGhlIHR5cGUgbmFtZXMgY2FuIGJlIHByaW50ZWQgZGlmZmVyZW50bHkuCisrc2V0IGxvZ2lj YWwgW2ZvcnRyYW5fbG9naWNhbDRdCisrc2V0IHJlYWwgW2ZvcnRyYW5fcmVhbDRdCisrc2V0IGlu dCBbZm9ydHJhbl9pbnQ0XQorK3NldCBjb21wbGV4IFtmb3J0cmFuX2NvbXBsZXg0XQorKworK2dk Yl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJCZWZvcmUgcG9pbnRlciBhc3NpZ25t ZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3JlIHBvaW50ZXIgYXNzaWdu bWVudCIKKytnZGJfdGVzdCAicHR5cGUgbG9ncCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRsb2dp Y2FsIFxcKSIgInB0eXBlIGxvZ3AsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSBj b21wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggJGNvbXBsZXggXFwpIiAicHR5cGUgY29tcCwgbm90 IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIGNoYXJwIiAidHlwZSA9IFBUUiBUTyAtPiBc XCggY2hhcmFjdGVyXFwqMSBcXCkiICJwdHlwZSBjaGFycCwgbm90IGFzc29jaWF0ZWQiCisrZ2Ri X3Rlc3QgInB0eXBlIGNoYXJhcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjMg XFwpIiAicHR5cGUgY2hhcmFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgaW50 cCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRpbnQgXFwpIiAicHR5cGUgaW50cCwgbm90IGFzc29j aWF0ZWQiCisrc2V0IHRlc3QgInB0eXBlIGludGFwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVz dF9tdWx0aXBsZSAicHR5cGUgaW50YXAiICR0ZXN0IHsKKysgICAgLXJlICJ0eXBlID0gUFRSIFRP IC0+IFxcKCAkaW50IFxcKDosOlxcKVxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgICAgICBw YXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICJ0eXBlID0gJGludCBcXCg6LDpcXClcclxuJGdk Yl9wcm9tcHQgJCIgeworKyAgICAgICAgcGFzcyAkdGVzdAorKyAgICB9CisrfQorK2dkYl90ZXN0 ICJwdHlwZSByZWFscCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRyZWFsIFxcKSIgInB0eXBlIHJl YWxwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdHdvcCIgXAorKyAgICBbbXVs dGlfbGluZSAidHlwZSA9IFBUUiBUTyAtPiBcXCggVHlwZSB0d28iIFwKKysgICAgICAgICAgICAg ICAgIiAgICAkaW50IDo6IGl2bGExXFwoOlxcKSIgXAorKyAgICAgICAgICAgICAgICAiICAgICRp bnQgOjogaXZsYTJcXCg6LDpcXCkiIFwKKysgICAgICAgICAgICAgICAgIkVuZCBUeXBlIHR3byBc XCkiXSBcCisrICAgICJwdHlwZSB0d29wLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHR5 cGUgdHdvIiBcCisrICAgIFttdWx0aV9saW5lICJ0eXBlID0gVHlwZSB0d28iIFwKKysgICAgICAg ICAgICAgICAgIiAgICAkaW50IDo6IGl2bGExXFwoOlxcKSIgXAorKyAgICAgICAgICAgICAgICAi ICAgICRpbnQgOjogaXZsYTJcXCg6LDpcXCkiIFwKKysgICAgICAgICAgICAgICAgIkVuZCBUeXBl IHR3byJdCisrCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJlZm9y ZSB2YWx1ZSBhc3NpZ25tZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3Jl IHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInB0eXBlIHR3b3AiIFwKKysgICAgW211bHRp X2xpbmUgInR5cGUgPSBQVFIgVE8gLT4gXFwoIFR5cGUgdHdvIiBcCisrICAgICAgICAgICAgICAg ICIgICAgJGludCA6OiBpdmxhMVxcKDpcXCkiIFwKKysgICAgICAgICAgICAgICAgIiAgICAkaW50 IDo6IGl2bGEyXFwoOiw6XFwpIiBcCisrICAgICAgICAgICAgICAgICJFbmQgVHlwZSB0d28gXFwp Il0KKysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQWZ0ZXIgdmFs dWUgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkFmdGVyIHZhbHVl IGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInB0eXBlIGxvZ3YiICJ0eXBlID0gJGxvZ2ljYWwiCisr Z2RiX3Rlc3QgInB0eXBlIGNvbXYiICJ0eXBlID0gJGNvbXBsZXgiCisrZ2RiX3Rlc3QgInB0eXBl IGNoYXJ2IiAidHlwZSA9IGNoYXJhY3RlclxcKjEiCisrZ2RiX3Rlc3QgInB0eXBlIGNoYXJhIiAi dHlwZSA9IGNoYXJhY3RlclxcKjMiCisrZ2RiX3Rlc3QgInB0eXBlIGludHYiICJ0eXBlID0gJGlu dCIKKytnZGJfdGVzdCAicHR5cGUgaW50YSIgInR5cGUgPSAkaW50IFxcKDEwLDJcXCkiCisrZ2Ri X3Rlc3QgInB0eXBlIHJlYWx2IiAidHlwZSA9ICRyZWFsIgorKworKworK2dkYl90ZXN0ICJwdHlw ZSBsb2dwIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggJGxvZ2ljYWwgXFwpIgorK2dkYl90ZXN0ICJw dHlwZSBjb21wIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggJGNvbXBsZXggXFwpIgorK2dkYl90ZXN0 ICJwdHlwZSBjaGFycCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEgXFwpIgor K2dkYl90ZXN0ICJwdHlwZSBjaGFyYXAiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJc XCozIFxcKSIKKytnZGJfdGVzdCAicHR5cGUgaW50cCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoICRp bnQgXFwpIgorK3NldCB0ZXN0ICJwdHlwZSBpbnRhcCIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVz dCAkdGVzdCB7CisrICAgIC1yZSAidHlwZSA9ICRpbnQgXFwoMTAsMlxcKVxyXG4kZ2RiX3Byb21w dCAkIiB7CisrICAgICAgICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICJ0eXBlID0gUFRS IFRPIC0+IFxcKCAkaW50IFxcKDEwLDJcXClcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICAg ICAgcGFzcyAkdGVzdAorKyAgICB9CisrfQorK2dkYl90ZXN0ICJwdHlwZSByZWFscCIgInR5cGUg PSBQVFIgVE8gLT4gXFwoICRyZWFsIFxcKSIKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBn ZGItNy4xMS41MC4yMDE2MDYzMC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0 eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU0OjQ4Ljc0OTA5OTE1MCArMDIwMAorKysrIGdkYi03LjEx LjUwLjIwMTYwNjMwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBlLmV4cAkyMDE2 LTA3LTE2IDEwOjU1OjQyLjA3OTUyNTg2MCArMDIwMAorQEAgLTMyLDkgKzMyLDkgQEAKKyAjIENo ZWNrIHRoZSBwdHlwZSBvZiB2YXJpb3VzIFZMQSBzdGF0ZXMgYW5kIHBvaW50ZXIgdG8gVkxBJ3Mu CisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZsYTEtaW5pdCJdCisgZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTEtaW5pdCIKKy1nZGJfdGVzdCAicHR5cGUgdmxh MSIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2bGExIG5vdCBpbml0aWFsaXplZCIK Ky1nZGJfdGVzdCAicHR5cGUgdmxhMiIgInR5cGUgPSA8bm90IGFsbG9jYXRlZD4iICJwdHlwZSB2 bGEyIG5vdCBpbml0aWFsaXplZCIKKy1nZGJfdGVzdCAicHR5cGUgcHZsYSIgInR5cGUgPSA8bm90 IGFzc29jaWF0ZWQ+IiAicHR5cGUgcHZsYSBub3QgaW5pdGlhbGl6ZWQiCisrZ2RiX3Rlc3QgInB0 eXBlIHZsYTEiICJ0eXBlID0gJHJlYWwgXFwoOiw6LDpcXCkiICJwdHlwZSB2bGExIG5vdCBpbml0 aWFsaXplZCIKKytnZGJfdGVzdCAicHR5cGUgdmxhMiIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxc KSIgInB0eXBlIHZsYTIgbm90IGluaXRpYWxpemVkIgorK2dkYl90ZXN0ICJwdHlwZSBwdmxhIiAi dHlwZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAicHR5cGUgcHZsYSBub3QgaW5pdGlhbGl6ZWQiCisg Z2RiX3Rlc3QgInB0eXBlIHZsYTEoMywgNiwgOSkiICJubyBzdWNoIHZlY3RvciBlbGVtZW50IFxc XCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwKKyAgICJwdHlwZSB2bGExKDMsIDYsIDkpIG5v dCBpbml0aWFsaXplZCIKKyBnZGJfdGVzdCAicHR5cGUgdmxhMig1LCA0NSwgMjApIiBcCitAQCAt ODEsMjAgKzgxLDIwIEBACisgCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg InB2bGEtZGVhc3NvY2lhdGVkIl0KKyBnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicHZsYS1k ZWFzc29jaWF0ZWQiCistZ2RiX3Rlc3QgInB0eXBlIHB2bGEiICJ0eXBlID0gPG5vdCBhc3NvY2lh dGVkPiIgInB0eXBlIHB2bGEgZGVhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSBwdmxhIiAi dHlwZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAicHR5cGUgcHZsYSBkZWFzc29jaWF0ZWQiCisgZ2Ri X3Rlc3QgInB0eXBlIHB2bGEoNSwgNDUsIDIwKSIgXAorICAgIm5vIHN1Y2ggdmVjdG9yIGVsZW1l bnQgXFxcKHZlY3RvciBub3QgYXNzb2NpYXRlZFxcXCkiIFwKKyAgICJwdHlwZSBwdmxhKDUsIDQ1 LCAyMCkgbm90IGFzc29jaWF0ZWQiCisgCisgZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9u dW1iZXIgInZsYTEtZGVhbGxvY2F0ZWQiXQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2 bGExLWRlYWxsb2NhdGVkIgorLWdkYl90ZXN0ICJwdHlwZSB2bGExIiAidHlwZSA9IDxub3QgYWxs b2NhdGVkPiIgInB0eXBlIHZsYTEgbm90IGFsbG9jYXRlZCIKKytnZGJfdGVzdCAicHR5cGUgdmxh MSIgInR5cGUgPSAkcmVhbCBcXCg6LDosOlxcKSIgInB0eXBlIHZsYTEgbm90IGFsbG9jYXRlZCIK KyBnZGJfdGVzdCAicHR5cGUgdmxhMSgzLCA2LCA5KSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQg XFxcKHZlY3RvciBub3QgYWxsb2NhdGVkXFxcKSIgXAorICAgInB0eXBlIHZsYTEoMywgNiwgOSkg bm90IGFsbG9jYXRlZCIKKyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAi dmxhMi1kZWFsbG9jYXRlZCJdCisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZsYTItZGVh bGxvY2F0ZWQiCistZ2RiX3Rlc3QgInB0eXBlIHZsYTIiICJ0eXBlID0gPG5vdCBhbGxvY2F0ZWQ+ IiAicHR5cGUgdmxhMiBub3QgYWxsb2NhdGVkIgorK2dkYl90ZXN0ICJwdHlwZSB2bGEyIiAidHlw ZSA9ICRyZWFsIFxcKDosOiw6XFwpIiAicHR5cGUgdmxhMiBub3QgYWxsb2NhdGVkIgorIGdkYl90 ZXN0ICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkiIFwKKyAgICJubyBzdWNoIHZlY3RvciBlbGVtZW50 IFxcXCh2ZWN0b3Igbm90IGFsbG9jYXRlZFxcXCkiIFwKKyAgICJwdHlwZSB2bGEyKDUsIDQ1LCAy MCkgbm90IGFsbG9jYXRlZCIKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjExLjUw LjIwMTYwNjMwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdHlwZS5leHAJMjAx Ni0wNy0xNiAxMDo1NDo0OC43NDkwOTkxNTAgKzAyMDAKKysrKyBnZGItNy4xMS41MC4yMDE2MDYz MC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS10eXBlLmV4cAkyMDE2LTA3LTE2IDEwOjU1 OjQyLjA4MDUyNTg2OCArMDIwMAorQEAgLTEzMiw3ICsxMzIsMTAgQEAKKyAgICAgICAgICAgICAg ICAgICAgICAiRW5kIFR5cGUgb25lIiBdCisgCisgIyBDaGVjayBhbGxvY2F0aW9uIHN0YXR1cyBv ZiBkeW5hbWljIGFycmF5IGFuZCBpdCdzIGR5bmFtaWMgbWVtYmVycworLWdkYl90ZXN0ICJwdHlw ZSBmaXZlZHluYXJyIiAidHlwZSA9IDxub3QgYWxsb2NhdGVkPiIKKytnZGJfdGVzdCAicHR5cGUg Zml2ZWR5bmFyciIgXAorKyAgICAgICAgIFttdWx0aV9saW5lICJ0eXBlID0gVHlwZSBmaXZlIiBc CisrICAgICAgICAgICAgICAgICAgICAgIiAgICBUeXBlIG9uZSA6OiB0b25lIiBcCisrICAgICAg ICAgICAgICAgICAgICAgIkVuZCBUeXBlIGZpdmUgXFwoOlxcKSIgXQorIGdkYl90ZXN0ICJuZXh0 IiAiIgorIGdkYl90ZXN0ICJwdHlwZSBmaXZlZHluYXJyKDIpIiBcCisgICAgICAgICAgW211bHRp X2xpbmUgInR5cGUgPSBUeXBlIGZpdmUiIFwKK0BAIC0xNDEsNyArMTQ0LDcgQEAKKyAgICAgICAg ICAicHR5cGUgZml2ZWR5bmFycigyKSwgdG9uZSBpcyBub3QgYWxsb2NhdGVkIgorIGdkYl90ZXN0 ICJwdHlwZSBmaXZlZHluYXJyKDIpJXRvbmUiIFwKKyAgICAgICAgICBbbXVsdGlfbGluZSAidHlw ZSA9IFR5cGUgb25lIiBcCistICAgICAgICAgICAgICAgICAgICAgIiAgICAkaW50IDo6IGl2bGFc XCg8bm90IGFsbG9jYXRlZD5cXCkiIFwKKysgICAgICAgICAgICAgICAgICAgICAiICAgICRpbnQg OjogaXZsYVxcKDosOiw6XFwpIiBcCisgICAgICAgICAgICAgICAgICAgICAgIkVuZCBUeXBlIG9u ZSIgXSBcCisgICAgICAgICAgInB0eXBlIGZpdmVkeW5hcnIoMikldG9uZSwgbm90IGFsbG9jYXRl ZCIKKyAKK0luZGV4OiBnZGItNy4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS12YWx1ZS5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy4xMS41MC4yMDE2MDYzMC5v cmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAkyMDE2LTA3LTE2IDEw OjU0OjQ4Ljc0OTA5OTE1MCArMDIwMAorKysrIGdkYi03LjExLjUwLjIwMTYwNjMwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAkyMDE2LTA3LTE2IDEwOjU1OjQyLjA4MDUy NTg2OCArMDIwMAorQEAgLTM0LDcgKzM0LDcgQEAKKyBnZGJfY29udGludWVfdG9fYnJlYWtwb2lu dCAidmxhMS1pbml0IgorIGdkYl90ZXN0ICJwcmludCB2bGExIiAiID0gPG5vdCBhbGxvY2F0ZWQ+ IiAicHJpbnQgbm9uLWFsbG9jYXRlZCB2bGExIgorIGdkYl90ZXN0ICJwcmludCAmdmxhMSIgXAor LSAgIiA9IFxcXChQVFIgVE8gLT4gXFxcKCAkcmVhbCBcXFwoPG5vdCBhbGxvY2F0ZWQ+XFxcKVxc XClcXFwpICRoZXgiIFwKKysgICIgPSBcXFwoUFRSIFRPIC0+IFxcXCggJHJlYWwgXFxcKDosOiw6 XFxcKVxcXClcXFwpICRoZXgiIFwKKyAgICJwcmludCBub24tYWxsb2NhdGVkICZ2bGExIgorIGdk Yl90ZXN0ICJwcmludCB2bGExKDEsMSwxKSIgIm5vIHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZl Y3RvciBub3QgYWxsb2NhdGVkXFxcKSIgXAorICAgInByaW50IG1lbWJlciBpbiBub24tYWxsb2Nh dGVkIHZsYTEgKDEpIgorQEAgLTc1LDcgKzc1LDcgQEAKKyAjIFRyeSB0byBhY2Nlc3MgdmFsdWVz IGluIHVuZGVmaW5lZCBwb2ludGVyIHRvIFZMQSAoZGFuZ2xpbmcpCisgZ2RiX3Rlc3QgInByaW50 IHB2bGEiICIgPSA8bm90IGFzc29jaWF0ZWQ+IiAicHJpbnQgdW5kZWZpbmVkIHB2bGEiCisgZ2Ri X3Rlc3QgInByaW50ICZwdmxhIiBcCistICAiID0gXFxcKFBUUiBUTyAtPiBcXFwoICRyZWFsIFxc XCg8bm90IGFzc29jaWF0ZWQ+XFxcKVxcXClcXFwpICRoZXgiIFwKKysgICIgPSBcXFwoUFRSIFRP IC0+IFxcXCggJHJlYWwgXFxcKDosOiw6XFxcKVxcXClcXFwpICRoZXgiIFwKKyAgICJwcmludCBu b24tYXNzb2NpYXRlZCAmcHZsYSIKKyBnZGJfdGVzdCAicHJpbnQgcHZsYSgxLCAzLCA4KSIgIm5v IHN1Y2ggdmVjdG9yIGVsZW1lbnQgXFxcKHZlY3RvciBub3QgYXNzb2NpYXRlZFxcXCkiIFwKKyAg ICJwcmludCB1bmRlZmluZWQgcHZsYSgxLDMsOCkiCitJbmRleDogZ2RiLTcuMTEuNTAuMjAxNjA2 MzAvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCis9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cist LS0gZ2RiLTcuMTEuNTAuMjAxNjA2MzAub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEt Zm9ydHJhbi5leHAJMjAxNi0wNy0xNiAxMDo1NDo0OC43NDkwOTkxNTAgKzAyMDAKKysrKyBnZGIt Ny4xMS41MC4yMDE2MDYzMC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAJ MjAxNi0wNy0xNiAxMDo1NTo0Mi4wODA1MjU4NjggKzAyMDAKK0BAIC0xNyw2ICsxNyw3IEBACisg IyBBcnJheSAoVkxBKS4KKyAKKyBsb2FkX2xpYiBtaS1zdXBwb3J0LmV4cAorK2xvYWRfbGliIGZv cnRyYW4uZXhwCisgc2V0IE1JRkxBR1MgIi1pPW1pIgorIGxvYWRfbGliICJmb3J0cmFuLmV4cCIK KyAKK0BAIC01MCwxMCArNTEsMTAgQEAKKyBtaV9nZGJfdGVzdCAiNTAwLWRhdGEtZXZhbHVhdGUt ZXhwcmVzc2lvbiB2bGExIiBcCisgICAiNTAwXFxeZG9uZSx2YWx1ZT1cIjxub3QgYWxsb2NhdGVk PlwiIiAiZXZhbHVhdGUgbm90IGFsbG9jYXRlZCB2bGEiCisgCistbWlfY3JlYXRlX3Zhcm9ial9j aGVja2VkIHZsYTFfbm90X2FsbG9jYXRlZCB2bGExICI8bm90IGFsbG9jYXRlZD4iIFwKKyttaV9j cmVhdGVfdmFyb2JqX2NoZWNrZWQgdmxhMV9ub3RfYWxsb2NhdGVkIHZsYTEgIiRyZWFsIFxcKDpc XCkiIFwKKyAgICJjcmVhdGUgbG9jYWwgdmFyaWFibGUgdmxhMV9ub3RfYWxsb2NhdGVkIgorIG1p X2dkYl90ZXN0ICI1MDEtdmFyLWluZm8tdHlwZSB2bGExX25vdF9hbGxvY2F0ZWQiIFwKKy0gICI1 MDFcXF5kb25lLHR5cGU9XCI8bm90IGFsbG9jYXRlZD5cIiIgXAorKyAgIjUwMVxcXmRvbmUsdHlw ZT1cIiRyZWFsIFxcKDpcXClcIiIgXAorICAgImluZm8gdHlwZSB2YXJpYWJsZSB2bGExX25vdF9h bGxvY2F0ZWQiCisgbWlfZ2RiX3Rlc3QgIjUwMi12YXItc2hvdy1mb3JtYXQgdmxhMV9ub3RfYWxs b2NhdGVkIiBcCisgICAiNTAyXFxeZG9uZSxmb3JtYXQ9XCJuYXR1cmFsXCIiIFwKK0BAIC0xNDAs MTAgKzE0MSwxMCBAQAorICAgICAtcmUgIjU4MFxcXmRvbmUsdmFsdWU9XCI8bm90IGFzc29jaWF0 ZWQ+XCIuKiR7bWlfZ2RiX3Byb21wdH0kIiB7CisgCXBhc3MgJHRlc3QKKyAKKy0JbWlfY3JlYXRl X3Zhcm9ial9jaGVja2VkIHB2bGEyX25vdF9hc3NvY2lhdGVkIHB2bGEyICI8bm90IGFzc29jaWF0 ZWQ+IiBcCisrCW1pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCBwdmxhMl9ub3RfYXNzb2NpYXRlZCBw dmxhMiAiJHJlYWwgXFwoOiw6XFwpIiBcCisgCSAgICAiY3JlYXRlIGxvY2FsIHZhcmlhYmxlIHB2 bGEyX25vdF9hc3NvY2lhdGVkIgorIAltaV9nZGJfdGVzdCAiNTgxLXZhci1pbmZvLXR5cGUgcHZs YTJfbm90X2Fzc29jaWF0ZWQiIFwKKy0JICAgICI1ODFcXF5kb25lLHR5cGU9XCI8bm90IGFzc29j aWF0ZWQ+XCIiIFwKKysJICAgICI1ODFcXF5kb25lLHR5cGU9XCIkcmVhbCBcXCg6LDpcXClcIiIg XAorIAkgICAgImluZm8gdHlwZSB2YXJpYWJsZSBwdmxhMl9ub3RfYXNzb2NpYXRlZCIKKyAJbWlf Z2RiX3Rlc3QgIjU4Mi12YXItc2hvdy1mb3JtYXQgcHZsYTJfbm90X2Fzc29jaWF0ZWQiIFwKKyAJ ICAgICI1ODJcXF5kb25lLGZvcm1hdD1cIm5hdHVyYWxcIiIgXAoKZGlmZiAtLWdpdCBhL2dkYi12 bGEtaW50ZWwtNW9mNy5wYXRjaCBiL2dkYi12bGEtaW50ZWwtNW9mNy5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OGNmYzU3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Ri LXZsYS1pbnRlbC01b2Y3LnBhdGNoCkBAIC0wLDAgKzEsMzQ1IEBACitGcm9tIGI2ZTY2OGNjZDM1 NmVhM2U3NWQzMGYyMDMxNDMzNGIxMjAzYzIyZGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBCZXJuaGFyZCBIZWNrZWwgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CitEYXRlOiBU dWUsIDEyIEp1bCAyMDE2IDA4OjE5OjM0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNS83XSBSZXNv bHZlIGR5bmFtaWMgdGFyZ2V0IHR5cGVzIG9mIHBvaW50ZXJzLgorCitXaGVuIGRlcmVmZXJlbmNp bmcgcG9pbnRlcnMgdG8gZHluYW1pYyB0YXJnZXQgdHlwZXMsCityZXNvbHZlIHRoZSB0YXJnZXQg dHlwZS4KKworMjAxNi0wNi0zMCAgQmVybmhhcmQgSGVja2VsICA8YmVybmhhcmQuaGVja2VsQGlu dGVsLmNvbT4KKworZ2RiL0NoYW5nZWxvZzoKKwkqIE5FV1M6IEFkZGVkIGVudHJ5LgorCSogYy12 YWxwcmludC5jIChjX3ByaW50X3ZhbCk6IFJlc29sdmUgZHluYW1pYyB0YXJnZXQgdHlwZXMuCisJ KiB2YWxvcHMuYyAodmFsdWVfaW5kKTogUmVzb2x2ZSBkeW5hbWljIHRhcmdldCB0eXBlcy4KKwkq IHZhbHByaW50LmMgKGNoZWNrX3ByaW50YWJsZSk6IERvbid0IHNob3J0Y3V0IG5vdCBhc3NvY2lh dGVkCisJICBwb2ludGVycy4KKworZ2RiL1Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6CisJKiBwb2ludGVy cy5mOTA6IEFkZGVkIHBvaW50ZXIgdG8gZHluYW1pYyB0eXBlcy4KKwkqIGdkYi5mb3J0cmFuL3Bv aW50ZXJzLmV4cDogTmV3LgorCitDaGFuZ2UtSWQ6IEk5OThkNGRhNGE1YmE0ODk5YjhjYjIxMTU1 NzZmNDRlZmE3NDFlNjk4CistLS0KKyBnZGIvTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMiArCisgZ2RiL2MtdmFscHJpbnQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAg MjIgKysrKysrCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuY3AvdmxhLWN4eC5leHAgICAgICAgfCAgIDQg KysKKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cCB8IDEyMyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Bv aW50ZXJzLmY5MCB8ICAxNyArKysrKworIGdkYi92YWxvcHMuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDE2ICsrKystCisgZ2RiL3ZhbHByaW50LmMgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDYgLS0KKyA3IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRpb25zKCspLCA4IGRlbGV0 aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Bv aW50ZXJzLmV4cAorCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL05FV1MKKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKy0tLSBnZGItNy4xMS45MC4yMDE2MDgwNy5vcmlnL2dkYi9ORVdTCTIwMTYtMDgtMDcg MjE6MTg6NDQuMDMyNDA5MDY1ICswMjAwCisrKysgZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL05F V1MJMjAxNi0wOC0wNyAyMToxOToxNy4xNzg3MTUxMTYgKzAyMDAKK0BAIC0xLDYgKzEsOCBAQAor IAkJV2hhdCBoYXMgY2hhbmdlZCBpbiBHREI/CisgCSAgICAgKE9yZ2FuaXplZCByZWxlYXNlIGJ5 IHJlbGVhc2UpCisgCisrKiBGb3J0cmFuOiBTdXBwb3J0IHBvaW50ZXJzIHRvIGR5bmFtaWMgdHlw ZXMuCisrCisgKioqIENoYW5nZXMgaW4gR0RCIDcuMTIKKyAKKyAqIEdEQiBhbmQgR0RCc2VydmVy IG5vdyBidWlsZCB3aXRoIGEgQysrIGNvbXBpbGVyIGJ5IGRlZmF1bHQuCitJbmRleDogZ2RiLTcu MTEuOTAuMjAxNjA4MDcvZ2RiL2MtdmFscHJpbnQuYworPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjEx LjkwLjIwMTYwODA3Lm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTA4LTA3IDIxOjE4OjQ0LjAz MjQwOTA2NSArMDIwMAorKysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi9jLXZhbHByaW50LmMJ MjAxNi0wOC0wNyAyMToxODo1MS4wODc0NzQyMDcgKzAyMDAKK0BAIC02NDUsNiArNjQ1LDI4IEBA CisgICAgICAgZWxzZQorIAl7CisgCSAgLyogbm9ybWFsIGNhc2UgKi8KKysJICBpZiAoVFlQRV9D T0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSCisrCSAgICAgICYmIDEgPT0gaXNfZHluYW1pY190 eXBlICh0eXBlKSkKKysJICAgIHsKKysJICAgICAgQ09SRV9BRERSIGFkZHI7CisrCSAgICAgIGlm IChOVUxMICE9IFRZUEVfREFUQV9MT0NBVElPTiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKQor KwkJYWRkciA9IHZhbHVlX2FkZHJlc3MgKHZhbCk7CisrCSAgICAgIGVsc2UKKysJCWFkZHIgPSB2 YWx1ZV9hc19hZGRyZXNzICh2YWwpOworKworKwkgICAgICAvKiBXZSByZXNvbHZlIHRoZSB0YXJn ZXQtdHlwZSBvbmx5IHdoZW4gdGhlCisrCSAgICAgICAgIHBvaW50ZXIgaXMgYXNzb2NpYXRlZC4g ICovCisrCSAgICAgIGlmICgoYWRkciAhPSAwKQorKwkJICAmJiAoMCA9PSB0eXBlX25vdF9hc3Nv Y2lhdGVkICh0eXBlKSkpCisrCQkgIFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpID0KKysJCSAgICAg IHJlc29sdmVfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwKKysJCQkJCSAg ICBOVUxMLCBhZGRyKTsKKysJICAgIH0KKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIC8qIERv IG5vdGhpbmcuIFJlZmVyZW5jZXMgYXJlIGFscmVhZHkgcmVzb2x2ZWQgZnJvbSB0aGUgYmVnaW5u aW5nLAorKwkgICAgICAgICBvbmx5IHBvaW50ZXJzIGFyZSByZXNvbHZlZCB3aGVuIHdlIGFjdHVh bCBuZWVkIHRoZSB0YXJnZXQuICAqLworKwkgICAgfQorIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0 cmVhbSwgIigiKTsKKyAJICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2YWwpLCAiIiwgc3RyZWFt LCAtMSk7CisgCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSAiKTsKK0luZGV4OiBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAorPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorLS0tIGdkYi03LjExLjkwLjIwMTYwODA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuY3Av dmxhLWN4eC5leHAJMjAxNi0wOC0wNyAyMToxODo0NC4wMzM0MDkwNzQgKzAyMDAKKysrKyBnZGIt Ny4xMS45MC4yMDE2MDgwNy9nZGIvdGVzdHN1aXRlL2dkYi5jcC92bGEtY3h4LmV4cAkyMDE2LTA4 LTA3IDIxOjE4OjUxLjA4ODQ3NDIxNiArMDIwMAorQEAgLTI2LDYgKzI2LDggQEAKKyBnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCJd CisgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQi CisgZ2RiX3Rlc3QgInB0eXBlIHB0ciIgImludCBcXChcXCpcXClcXFxbdmFyaWFibGUgbGVuZ3Ro XFxcXSIgInB0eXBlIHB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAi cHJpbnQgcHRyIiAiXFwoaW50IFxcKFxcKlxcKVxcXFt2YXJpYWJsZSBsZW5ndGhcXFxdXFwpIDB4 MCIgInByaW50IHB0ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKytnZGJfdGVzdCAicHJp bnQgKnB0ciIgIkNhbm5vdCBhY2Nlc3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwIiAicHJpbnQgKnB0 ciwgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCIKKyAKKyBnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAidmxhc19maWxsZWQiXQorIGdkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJ2bGFzX2ZpbGxlZCIKK0BAIC0zOCwzICs0MCw1IEBACisgZ2RiX3Rlc3QgInByaW50IHZsYXJl ZjIiICIgPSBcXCguKlxcKSBAJGhleDogXFx7NSwgNywgOVxcfSIKKyBnZGJfdGVzdCAicHJpbnQg YyIgIiA9IFxce2UgPSBcXHtjID0gQCRoZXhcXH1cXH0iCisgZ2RiX3Rlc3QgInB0eXBlIHB0ciIg ImludCBcXChcXCpcXClcXFxbM1xcXF0iCisrZ2RiX3Rlc3QgInByaW50IHB0ciIgIlxcKGludCBc XChcXCpcXClcXFxbM1xcXF1cXCkgJGhleCIKKytnZGJfdGVzdCAicHJpbnQgKnB0ciIgIiA9IFxc ezUsIDcsIDlcXH0iCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi9wb2ludGVycy5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cAkyMDE2LTA4LTA3IDIxOjE4OjUx LjA4ODQ3NDIxNiArMDIwMAorQEAgLTAsMCArMSwxMjMgQEAKKysjIENvcHlyaWdodCAyMDE2IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNl aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKysKKytzdGFuZGFyZF90ZXN0ZmlsZSAicG9pbnRlcnMuZjkwIgorK2xvYWRfbGliIGZv cnRyYW4uZXhwCisrCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAg JHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysg ICAgcmV0dXJuIC0xCisrfQorKworK2lmICFbcnVudG9fbWFpbl0geworKyAgICB1bnRlc3RlZCAi Y291bGQgbm90IHJ1biB0byBtYWluIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisrIyBEZXBlbmRp bmcgb24gdGhlIGNvbXBpbGVyIGJlaW5nIHVzZWQsIHRoZSB0eXBlIG5hbWVzIGNhbiBiZSBwcmlu dGVkIGRpZmZlcmVudGx5LgorK3NldCBsb2dpY2FsIFtmb3J0cmFuX2xvZ2ljYWw0XQorK3NldCBy ZWFsIFtmb3J0cmFuX3JlYWw0XQorK3NldCBpbnQgW2ZvcnRyYW5faW50NF0KKytzZXQgY29tcGxl eCBbZm9ydHJhbl9jb21wbGV4NF0KKysKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5l X251bWJlciAiQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudCJdCisrZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgIkJlZm9yZSBwb2ludGVyIGFzc2lnbm1lbnQiCisrZ2RiX3Rlc3QgInByaW50IGxv Z3AiICI9IFxcKFBUUiBUTyAtPiBcXCggJGxvZ2ljYWwgXFwpXFwpIDB4MCIgInByaW50IGxvZ3As IG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqbG9ncCIgIkNhbm5vdCBhY2Nlc3Mg bWVtb3J5IGF0IGFkZHJlc3MgMHgwIiAicHJpbnQgKmxvZ3AsIG5vdCBhc3NvY2lhdGVkIgorK2dk Yl90ZXN0ICJwcmludCBjb21wIiAiPSBcXChQVFIgVE8gLT4gXFwoICRjb21wbGV4IFxcKVxcKSAw eDAiICJwcmludCBjb21wLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgKmNvbXAi ICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpjb21wLCBub3Qg YXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgY2hhcnAiICI9IFxcKFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqMSBcXClcXCkgMHgwIiAicHJpbnQgY2hhcnAsIG5vdCBhc3NvY2lhdGVkIgor K2dkYl90ZXN0ICJwcmludCAqY2hhcnAiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNz IDB4MCIgInByaW50ICpjaGFycCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50IGNo YXJhcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxcKSAweDAiICJwcmlu dCBjaGFyYXAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmludCAqY2hhcmFwIiAiQ2Fu bm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAqY2hhcmFwLCBub3QgYXNz b2NpYXRlZCIKKytnZGJfdGVzdCAicHJpbnQgaW50cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkaW50 IFxcKVxcKSAweDAiICJwcmludCBpbnRwLCBub3QgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAicHJp bnQgKmludHAiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpp bnRwLCBub3QgYXNzb2NpYXRlZCIKKytzZXQgdGVzdCAicHJpbnQgaW50YXAsIG5vdCBhc3NvY2lh dGVkIgorK2dkYl90ZXN0X211bHRpcGxlICJwcmludCBpbnRhcCIgJHRlc3QgeworKyAgLXJlICIg PSBcXChQVFIgVE8gLT4gXFwoICRpbnQgXFwoOiw6XFwpXFwpXFwpIDxub3QgYXNzb2NpYXRlZD5c clxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0CisrICB9CisrICAtcmUgIiA9IDxu b3QgYXNzb2NpYXRlZD5cclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0CisrICB9 CisrfQorK2dkYl90ZXN0ICJwcmludCByZWFscCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkcmVhbCBc XClcXCkgMHgwIiAicHJpbnQgcmVhbHAsIG5vdCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0ICJwcmlu dCAqcmVhbHAiICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MCIgInByaW50ICpy ZWFscCwgbm90IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInByaW50IFwkbXlfdmFyID0gaW50cCIg Ij0gXFwoUFRSIFRPIC0+IFxcKCAkaW50IFxcKVxcKSAweDAiCisrCisrCisrZ2RiX2JyZWFrcG9p bnQgW2dkYl9nZXRfbGluZV9udW1iZXIgIkJlZm9yZSB2YWx1ZSBhc3NpZ25tZW50Il0KKytnZGJf Y29udGludWVfdG9fYnJlYWtwb2ludCAiQmVmb3JlIHZhbHVlIGFzc2lnbm1lbnQiCisrZ2RiX3Rl c3QgInByaW50ICoodHdvcCklaXZsYTIiICI9IDxub3QgYWxsb2NhdGVkPiIKKysKKysKKytnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQWZ0ZXIgdmFsdWUgYXNzaWdubWVudCJd CisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgIkFmdGVyIHZhbHVlIGFzc2lnbm1lbnQiCisr Z2RiX3Rlc3QgInByaW50IGxvZ3AiICI9IFxcKFBUUiBUTyAtPiBcXCggJGxvZ2ljYWwgXFwpXFwp ICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqbG9ncCIgIj0gXFwuVFJVRVxcLiIK KytnZGJfdGVzdCAicHJpbnQgY29tcCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkY29tcGxleCBcXClc XCkgJGhleFwoIDwuKj5cKT8iCisrZ2RiX3Rlc3QgInByaW50ICpjb21wIiAiPSBcXCgxLDJcXCki CisrZ2RiX3Rlc3QgInByaW50IGNoYXJwIiAiPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3Rlclxc KjEgXFwpXFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqY2hhcnAiICI9ICdh JyIKKytnZGJfdGVzdCAicHJpbnQgY2hhcmFwIiAiPSBcXChQVFIgVE8gLT4gXFwoIGNoYXJhY3Rl clxcKjMgXFwpXFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAqY2hhcmFwIiAi PSAnYWJjJyIKKytnZGJfdGVzdCAicHJpbnQgaW50cCIgIj0gXFwoUFRSIFRPIC0+IFxcKCAkaW50 IFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKmludHAiICI9IDEwIgor K3NldCB0ZXN0X25hbWUgInByaW50IGludGFwLCBhc3NvY2lhdGVkIgorK2dkYl90ZXN0X211bHRp cGxlICJwcmludCBpbnRhcCIgJHRlc3RfbmFtZSB7CisrICAtcmUgIj0gXFwoXFwoIDEsIDEsIDMo LCAxKXs3fVxcKSBcXCggMSgsIDEpezl9XFwpIFxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAg IHBhc3MgJHRlc3RfbmFtZQorKyAgfQorKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBc XCgxMCwyXFwpXFwpXFwpICRoZXhcKCA8Lio+XCk/XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAg Z2RiX3Rlc3QgInByaW50ICppbnRhcCIgIj0gXFwoXFwoIDEsIDEsIDMoLCAxKXs3fVxcKSBcXCgg MSgsIDEpezl9XFwpIFxcKSIKKysgICAgcGFzcyAkdGVzdF9uYW1lCisrICB9CisrfQorK3NldCB0 ZXN0X25hbWUgInByaW50IGludHZsYXAsIGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUg InByaW50IGludHZsYXAiICR0ZXN0X25hbWUgeworKyAgLXJlICI9IFxcKDIsIDIsIDIsIDQoLCAy KXs2fVxcKVxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQor KyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggJGludCBcXCgxMFxcKVxcKVxcKSAkaGV4XCggPC4q PlwpP1xyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgIGdkYl90ZXN0ICJwcmludCAqaW50dmxhcCIg Ij0gXFwoMiwgMiwgMiwgNCgsIDIpezZ9XFwpIgorKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0K Kyt9CisrZ2RiX3Rlc3QgInByaW50IHJlYWxwIiAiPSBcXChQVFIgVE8gLT4gXFwoICRyZWFsIFxc KVxcKSAkaGV4XCggPC4qPlwpPyIKKytnZGJfdGVzdCAicHJpbnQgKnJlYWxwIiAiPSAzXFwuMTQw MDBcXGQrIgorK2dkYl90ZXN0ICJwcmludCBhcnJheU9mUHRyKDIpJXAiICI9IFxcKFBUUiBUTyAt PiBcXCggVHlwZSB0d28gXFwpXFwpICRoZXhcKCA8Lio+XCk/IgorK2dkYl90ZXN0ICJwcmludCAq KGFycmF5T2ZQdHIoMiklcCkiICI9IFxcKCBpdmxhMSA9IFxcKDExLCAxMiwgMTNcXCksIGl2bGEy ID0gXFwoXFwoIDIxMSwgMjIxXFwpIFxcKCAyMTIsIDIyMlxcKSBcXCkgXFwpIgorK3NldCB0ZXN0 X25hbWUgInByaW50IGFycmF5T2ZQdHIoMyklcCIKKytnZGJfdGVzdF9tdWx0aXBsZSAkdGVzdF9u YW1lICR0ZXN0X25hbWUgeworKyAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0d28gXFwp XFwpIDxub3QgYXNzb2NpYXRlZD5cclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0 X25hbWUKKysgIH0KKysgIC1yZSAiPSBcXChQVFIgVE8gLT4gXFwoIFR5cGUgdHdvIFxcKVxcKSAw eDBcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0X25hbWUKKysgIH0KKyt9Cisr c2V0IHRlc3RfbmFtZSAicHJpbnQgKihhcnJheU9mUHRyKDMpJXApLCBhc3NvY2lhdGVkIgorK2dk Yl90ZXN0X211bHRpcGxlICJwcmludCAqKGFycmF5T2ZQdHIoMyklcCkiICR0ZXN0X25hbWUgewor KyAgLXJlICJDYW5ub3QgYWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4MFxyXG4kZ2RiX3Byb21w dCAkIiB7CisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorKyAgLXJlICJBdHRlbXB0IHRvIHRh a2UgY29udGVudHMgb2YgYSBub3QgYXNzb2NpYXRlZCBwb2ludGVyLlxyXG4kZ2RiX3Byb21wdCAk IiB7CisrICAgIHBhc3MgJHRlc3RfbmFtZQorKyAgfQorK30KKytnZGJfdGVzdCAicHJpbnQgKigo aW50ZWdlciopICZpbnRhICsgMikiICI9IDMiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYXJy YXkiCisrZ2RiX3Rlc3QgInByaW50ICooKGludGVnZXIqKSAmaW50dmxhICsgMykiICI9IDQiICJw cmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYWxsb2NhdGVkIHZsYSIKKytnZGJfdGVzdCAicHJpbnQg XCRwYyIgIj0gXFwoUFRSIFRPIC0+IFxcKCB2b2lkIFxcKFxcKVxcKFxcKVxcKVxcKSAkaGV4IDxw b2ludGVyc1xcK1xcZCs+IiAiUHJpbnQgcHJvZ3JhbSBjb3VudGVyIgorSW5kZXg6IGdkYi03LjEx LjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwCis9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5m b3J0cmFuL3BvaW50ZXJzLmY5MAkyMDE2LTA4LTA3IDIxOjE4OjQ0LjAzMzQwOTA3NCArMDIwMAor KysrIGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRl cnMuZjkwCTIwMTYtMDgtMDcgMjE6MTg6NTEuMDg4NDc0MjE2ICswMjAwCitAQCAtMjAsMTQgKzIw LDIwIEBACisgICAgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGl2bGEyICg6LCA6KQorICAgZW5k IHR5cGUgdHdvCisgCisrICB0eXBlIDo6IHR3b1B0cgorKyAgICB0eXBlICh0d28pLCBwb2ludGVy IDo6IHAKKysgIGVuZCB0eXBlIHR3b1B0cgorKworICAgbG9naWNhbCwgdGFyZ2V0IDo6IGxvZ3YK KyAgIGNvbXBsZXgsIHRhcmdldCA6OiBjb212CisgICBjaGFyYWN0ZXIsIHRhcmdldCA6OiBjaGFy dgorICAgY2hhcmFjdGVyIChsZW49MyksIHRhcmdldCA6OiBjaGFyYQorICAgaW50ZWdlciwgdGFy Z2V0IDo6IGludHYKKyAgIGludGVnZXIsIHRhcmdldCwgZGltZW5zaW9uICgxMCwyKSA6OiBpbnRh CisrICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9jYXRhYmxlLCBkaW1lbnNpb24gKDopIDo6IGludHZs YQorICAgcmVhbCwgdGFyZ2V0ICAgIDo6IHJlYWx2CisgICB0eXBlKHR3byksIHRhcmdldCAgOjog dHdvdgorKyAgdHlwZSh0d29QdHIpIDo6IGFycmF5T2ZQdHIgKDMpCisgCisgICBsb2dpY2FsLCBw b2ludGVyIDo6IGxvZ3AKKyAgIGNvbXBsZXgsIHBvaW50ZXIgOjogY29tcAorQEAgLTM1LDYgKzQx LDcgQEAKKyAgIGNoYXJhY3RlciAobGVuPTMpLCBwb2ludGVyOjogY2hhcmFwCisgICBpbnRlZ2Vy LCBwb2ludGVyIDo6IGludHAKKyAgIGludGVnZXIsIHBvaW50ZXIsIGRpbWVuc2lvbiAoOiw6KSA6 OiBpbnRhcAorKyAgaW50ZWdlciwgcG9pbnRlciwgZGltZW5zaW9uICg6KSA6OiBpbnR2bGFwCisg ICByZWFsLCBwb2ludGVyIDo6IHJlYWxwCisgICB0eXBlKHR3byksIHBvaW50ZXIgOjogdHdvcAor IAorQEAgLTQ0LDggKzUxLDEyIEBACisgICBudWxsaWZ5IChjaGFyYXApCisgICBudWxsaWZ5IChp bnRwKQorICAgbnVsbGlmeSAoaW50YXApCisrICBudWxsaWZ5IChpbnR2bGFwKQorICAgbnVsbGlm eSAocmVhbHApCisgICBudWxsaWZ5ICh0d29wKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigxKSVw KQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigyKSVwKQorKyAgbnVsbGlmeSAoYXJyYXlPZlB0cigz KSVwKQorIAorICAgbG9ncCA9PiBsb2d2ICAgICEgQmVmb3JlIHBvaW50ZXIgYXNzaWdubWVudAor ICAgY29tcCA9PiBjb212CitAQCAtNTMsOCArNjQsMTAgQEAKKyAgIGNoYXJhcCA9PiBjaGFyYQor ICAgaW50cCA9PiBpbnR2CisgICBpbnRhcCA9PiBpbnRhCisrICBpbnR2bGFwID0+IGludHZsYQor ICAgcmVhbHAgPT4gcmVhbHYKKyAgIHR3b3AgPT4gdHdvdgorKyAgYXJyYXlPZlB0cigyKSVwID0+ IHR3b3YKKyAKKyAgIGxvZ3YgPSBhc3NvY2lhdGVkKGxvZ3ApICAgICAhIEJlZm9yZSB2YWx1ZSBh c3NpZ25tZW50CisgICBjb212ID0gY21wbHgoMSwyKQorQEAgLTYzLDYgKzc2LDEwIEBACisgICBp bnR2ID0gMTAKKyAgIGludGEoOiw6KSA9IDEKKyAgIGludGEoMywxKSA9IDMKKysgIGFsbG9jYXRl IChpbnR2bGEoMTApKQorKyAgaW50dmxhKDopID0gMgorKyAgaW50dmxhKDQpID0gNAorKyAgaW50 dmxhcCA9PiBpbnR2bGEKKyAgIHJlYWx2ID0gMy4xNAorIAorICAgYWxsb2NhdGUgKHR3b3YlaXZs YTEoMykpCitJbmRleDogZ2RiLTcuMTEuOTAuMjAxNjA4MDcvZ2RiL3ZhbG9wcy5jCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIvdmFsb3BzLmMJMjAxNi0wOC0w NyAyMToxODo0NC4wMzU0MDkwOTMgKzAyMDAKKysrKyBnZGItNy4xMS45MC4yMDE2MDgwNy9nZGIv dmFsb3BzLmMJMjAxNi0wOC0wNyAyMToxODo1MS4wODk0NzQyMjUgKzAyMDAKK0BAIC0xNTYyLDYg KzE1NjIsMTkgQEAKKyAgIGlmIChUWVBFX0NPREUgKGJhc2VfdHlwZSkgPT0gVFlQRV9DT0RFX1BU UikKKyAgICAgeworICAgICAgIHN0cnVjdCB0eXBlICplbmNfdHlwZTsKKysgICAgICBDT1JFX0FE RFIgYWRkcjsKKysKKysgICAgICBpZiAodHlwZV9ub3RfYXNzb2NpYXRlZCAoYmFzZV90eXBlKSkK KysgICAgICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHRha2UgY29udGVudHMgb2YgYSBub3QgYXNz b2NpYXRlZCBwb2ludGVyLiIpKTsKKysKKysgICAgICBpZiAoTlVMTCAhPSBUWVBFX0RBVEFfTE9D QVRJT04gKFRZUEVfVEFSR0VUX1RZUEUgKGJhc2VfdHlwZSkpKQorKwlhZGRyID0gdmFsdWVfYWRk cmVzcyAoYXJnMSk7CisrICAgICAgZWxzZQorKwlhZGRyID0gdmFsdWVfYXNfYWRkcmVzcyAoYXJn MSk7CisrCisrICAgICAgaWYgKGFkZHIgIT0gMCkKKysJVFlQRV9UQVJHRVRfVFlQRSAoYmFzZV90 eXBlKSA9CisrCSAgICByZXNvbHZlX2R5bmFtaWNfdHlwZSAoVFlQRV9UQVJHRVRfVFlQRSAoYmFz ZV90eXBlKSwgTlVMTCwgYWRkcik7CisgCisgICAgICAgLyogV2UgbWF5IGJlIHBvaW50aW5nIHRv IHNvbWV0aGluZyBlbWJlZGRlZCBpbiBhIGxhcmdlciBvYmplY3QuCisgICAgICAgICAgR2V0IHRo ZSByZWFsIHR5cGUgb2YgdGhlIGVuY2xvc2luZyBvYmplY3QuICAqLworQEAgLTE1NzcsOCArMTU5 MCw3IEBACisgICAgICAgZWxzZQorIAkvKiBSZXRyaWV2ZSB0aGUgZW5jbG9zaW5nIG9iamVjdCBw b2ludGVkIHRvLiAgKi8KKyAJYXJnMiA9IHZhbHVlX2F0X2xhenkgKGVuY190eXBlLCAKKy0JCQkg ICAgICAodmFsdWVfYXNfYWRkcmVzcyAoYXJnMSkKKy0JCQkgICAgICAgLSB2YWx1ZV9wb2ludGVk X3RvX29mZnNldCAoYXJnMSkpKTsKKysJCQkgICAgICAoYWRkciAtIHZhbHVlX3BvaW50ZWRfdG9f b2Zmc2V0IChhcmcxKSkpOworIAorICAgICAgIGVuY190eXBlID0gdmFsdWVfdHlwZSAoYXJnMik7 CisgICAgICAgcmV0dXJuIHJlYWRqdXN0X2luZGlyZWN0X3ZhbHVlX3R5cGUgKGFyZzIsIGVuY190 eXBlLCBiYXNlX3R5cGUsIGFyZzEpOworSW5kZXg6IGdkYi03LjExLjkwLjIwMTYwODA3L2dkYi92 YWxwcmludC5jCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CistLS0gZ2RiLTcuMTEuOTAuMjAxNjA4MDcub3JpZy9nZGIv dmFscHJpbnQuYwkyMDE2LTA4LTA3IDA0OjAwOjAxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03 LjExLjkwLjIwMTYwODA3L2dkYi92YWxwcmludC5jCTIwMTYtMDgtMDcgMjE6MTg6NTEuMDkwNDc0 MjM1ICswMjAwCitAQCAtMTE0MSwxMiArMTE0MSw2IEBACisgICAgICAgcmV0dXJuIDA7CisgICAg IH0KKyAKKy0gIGlmICh0eXBlX25vdF9hc3NvY2lhdGVkICh2YWx1ZV90eXBlICh2YWwpKSkKKy0g ICAgeworLSAgICAgIHZhbF9wcmludF9ub3RfYXNzb2NpYXRlZCAoc3RyZWFtKTsKKy0gICAgICBy ZXR1cm4gMDsKKy0gICAgfQorLQorICAgaWYgKHR5cGVfbm90X2FsbG9jYXRlZCAodmFsdWVfdHlw ZSAodmFsKSkpCisgICAgIHsKKyAgICAgICB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFt KTsKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLTZvZjcucGF0Y2ggYi9nZGItdmxhLWludGVs LTZvZjcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDU5NjhlOQot LS0gL2Rldi9udWxsCisrKyBiL2dkYi12bGEtaW50ZWwtNm9mNy5wYXRjaApAQCAtMCwwICsxLDEw MiBAQAorRnJvbSA4NjY1MzQ0YzE0YjlhZThiMmUwYzM3YmEwNmQ2ODgxYTU0NmQxYTM3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQmVybmhhcmQgSGVja2VsIDxiZXJuaGFyZC5oZWNr ZWxAaW50ZWwuY29tPgorRGF0ZTogVHVlLCAxMiBKdWwgMjAxNiAwODoxOTozNCArMDIwMAorU3Vi amVjdDogW1BBVENIIDYvN10gRm9ydHJhbjogVGVzdHN1aXRlLCBhZGQgY3ljbGljIHBvaW50ZXJz LgorCisyMDE2LTA1LTI1ICBCZXJuaGFyZCBIZWNrZWwgIDxiZXJuaGFyZC5oZWNrZWxAaW50ZWwu Y29tPgorCitnZGIvdGVzdHN1aXRlL0NoYW5nZWxvZzoKKwkqIHBvaW50ZXJzLmY5MDogQWRkIGN5 bGljIHBvaW50ZXJzLgorCSogcG9pbnRlcnMuZXhwOiBBZGQgcHJpbnQgb2YgY3ljbGljIHBvaW50 ZXJzLgorCitDaGFuZ2UtSWQ6IEljM2I2MTg3YzU5ODBmZDZjMzdlMmU5NDc4N2Y4MzIxZTViN2Yy ZDc1CistLS0KKyBnZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4cCB8IDIwICsr KysrKysrKysrKysrKysrKysrCisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5m OTAgfCAxMiArKysrKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKykK KworZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKK2luZGV4IGMxOWQ3ZTAuLjY3 Y2Y5OTkgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmV4 cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5leHAKK0BAIC01Nyw2 ICs1NywyNCBAQCBnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgaW50YXAiICR0ZXN0IHsKKyBnZGJf dGVzdCAicHJpbnQgcmVhbHAiICI9IFxcKFBUUiBUTyAtPiBcXCggJHJlYWwgXFwpXFwpIDB4MCIg InByaW50IHJlYWxwLCBub3QgYXNzb2NpYXRlZCIKKyBnZGJfdGVzdCAicHJpbnQgKnJlYWxwIiAi Q2Fubm90IGFjY2VzcyBtZW1vcnkgYXQgYWRkcmVzcyAweDAiICJwcmludCAqcmVhbHAsIG5vdCBh c3NvY2lhdGVkIgorIGdkYl90ZXN0ICJwcmludCBcJG15X3ZhciA9IGludHAiICI9IFxcKFBUUiBU TyAtPiBcXCggJGludCBcXClcXCkgMHgwIgorK3NldCB0ZXN0ICJwcmludCBjeWNsaWNwMSwgbm90 IGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3RfbXVsdGlwbGUgInByaW50IGN5Y2xpY3AxIiAkdGVzdCB7 CisrICAtcmUgIj0gXFwoIGkgPSAtP1xcZCssIHAgPSAweDAgXFwpXHJcbiRnZGJfcHJvbXB0ICQi IHsKKysgICAgcGFzcyAkdGVzdAorKyAgfQorKyAgLXJlICI9IFxcKCBpID0gLT9cXGQrLCBwID0g PG5vdCBhc3NvY2lhdGVkPiBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKyAgICBwYXNzICR0ZXN0 CisrICB9CisrfQorK3NldCB0ZXN0ICJwcmludCBjeWNsaWNwMSVwLCBub3QgYXNzb2NpYXRlZCIK KytnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgY3ljbGljcDElcCIgJHRlc3QgeworKyAgLXJlICI9 IFxcKFBUUiBUTyAtPiBcXCggVHlwZSB0eXBld2l0aHBvaW50ZXIgXFwpXFwpIDB4MFxyXG4kZ2Ri X3Byb21wdCAkIiB7CisrICAgIHBhc3MgJHRlc3QKKysgIH0KKysgIC1yZSAiPSBcXChQVFIgVE8g LT4gXFwoIFR5cGUgdHlwZXdpdGhwb2ludGVyIFxcKVxcKSA8bm90IGFzc29jaWF0ZWQ+XHJcbiRn ZGJfcHJvbXB0ICQiIHsKKysgICAgcGFzcyAkdGVzdAorKyAgfQorK30KKyAKKyAKKyBnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiQmVmb3JlIHZhbHVlIGFzc2lnbm1lbnQiXQor QEAgLTExOCw2ICsxMzYsOCBAQCBnZGJfdGVzdF9tdWx0aXBsZSAicHJpbnQgKihhcnJheU9mUHRy KDMpJXApIiAkdGVzdF9uYW1lIHsKKyAgICAgcGFzcyAkdGVzdF9uYW1lCisgICB9CisgfQorK2dk Yl90ZXN0ICJwcmludCBjeWNsaWNwMSIgIj0gXFwoIGkgPSAxLCBwID0gJGhleFwoIDwuKj5cKT8g XFwpIgorK2dkYl90ZXN0ICJwcmludCBjeWNsaWNwMSVwIiAiPSBcXChQVFIgVE8gLT4gXFwoIFR5 cGUgdHlwZXdpdGhwb2ludGVyIFxcKVxcKSAkaGV4XCggPC4qPlwpPyIKKyBnZGJfdGVzdCAicHJp bnQgKigoaW50ZWdlciopICZpbnRhICsgMikiICI9IDMiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRl ciwgYXJyYXkiCisgZ2RiX3Rlc3QgInByaW50ICooKGludGVnZXIqKSAmaW50dmxhICsgMykiICI9 IDQiICJwcmludCB0ZW1wb3JhcnkgcG9pbnRlciwgYWxsb2NhdGVkIHZsYSIKKyBnZGJfdGVzdCAi cHJpbnQgXCRwYyIgIj0gXFwoUFRSIFRPIC0+IFxcKCB2b2lkIFxcKFxcKVxcKFxcKVxcKVxcKSAk aGV4IDxwb2ludGVyc1xcK1xcZCs+IiAiUHJpbnQgcHJvZ3JhbSBjb3VudGVyIgorZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vcG9pbnRlcnMuZjkwIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAKK2luZGV4IDAwMDE5M2MuLjYyNDBjODcgMTAwNjQ0 CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3BvaW50ZXJzLmY5MAorKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9wb2ludGVycy5mOTAKK0BAIC0yMCw2ICsyMCwxMSBAQCBw cm9ncmFtIHBvaW50ZXJzCisgICAgIGludGVnZXIsIGFsbG9jYXRhYmxlIDo6IGl2bGEyICg6LCA6 KQorICAgZW5kIHR5cGUgdHdvCisgCisrICB0eXBlIDo6IHR5cGVXaXRoUG9pbnRlcgorKyAgICBp bnRlZ2VyIGkKKysgICAgdHlwZSh0eXBlV2l0aFBvaW50ZXIpLCBwb2ludGVyOjogcAorKyAgZW5k IHR5cGUgdHlwZVdpdGhQb2ludGVyCisrCisgICB0eXBlIDo6IHR3b1B0cgorICAgICB0eXBlICh0 d28pLCBwb2ludGVyIDo6IHAKKyAgIGVuZCB0eXBlIHR3b1B0cgorQEAgLTM0LDYgKzM5LDcgQEAg cHJvZ3JhbSBwb2ludGVycworICAgcmVhbCwgdGFyZ2V0ICAgIDo6IHJlYWx2CisgICB0eXBlKHR3 byksIHRhcmdldCAgOjogdHdvdgorICAgdHlwZSh0d29QdHIpIDo6IGFycmF5T2ZQdHIgKDMpCisr ICB0eXBlKHR5cGVXaXRoUG9pbnRlciksIHRhcmdldDo6IGN5Y2xpY3AxLGN5Y2xpY3AyCisgCisg ICBsb2dpY2FsLCBwb2ludGVyIDo6IGxvZ3AKKyAgIGNvbXBsZXgsIHBvaW50ZXIgOjogY29tcAor QEAgLTU3LDYgKzYzLDggQEAgcHJvZ3JhbSBwb2ludGVycworICAgbnVsbGlmeSAoYXJyYXlPZlB0 cigxKSVwKQorICAgbnVsbGlmeSAoYXJyYXlPZlB0cigyKSVwKQorICAgbnVsbGlmeSAoYXJyYXlP ZlB0cigzKSVwKQorKyAgbnVsbGlmeSAoY3ljbGljcDElcCkKKysgIG51bGxpZnkgKGN5Y2xpY3Ay JXApCisgCisgICBsb2dwID0+IGxvZ3YgICAgISBCZWZvcmUgcG9pbnRlciBhc3NpZ25tZW50Cisg ICBjb21wID0+IGNvbXYKK0BAIC02OCw2ICs3NiwxMCBAQCBwcm9ncmFtIHBvaW50ZXJzCisgICBy ZWFscCA9PiByZWFsdgorICAgdHdvcCA9PiB0d292CisgICBhcnJheU9mUHRyKDIpJXAgPT4gdHdv dgorKyAgY3ljbGljcDElaSA9IDEKKysgIGN5Y2xpY3AxJXAgPT4gY3ljbGljcDIKKysgIGN5Y2xp Y3AyJWkgPSAyCisrICBjeWNsaWNwMiVwID0+IGN5Y2xpY3AxCisgCisgICBsb2d2ID0gYXNzb2Np YXRlZChsb2dwKSAgICAgISBCZWZvcmUgdmFsdWUgYXNzaWdubWVudAorICAgY29tdiA9IGNtcGx4 KDEsMikKKy0tIAorMi43LjQKKwoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtN29mNy5wYXRj aCBiL2dkYi12bGEtaW50ZWwtN29mNy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi43MjZjMzQxCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXZsYS1pbnRlbC03b2Y3LnBh dGNoCkBAIC0wLDAgKzEsNTE4IEBACitGcm9tIDFlNWJkOWFlYzllZTAyYzJmNzcxZTRkYzk5NzU3 MGM4MmQ3NGIzYjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBCZXJuaGFyZCBIZWNr ZWwgPGJlcm5oYXJkLmhlY2tlbEBpbnRlbC5jb20+CitEYXRlOiBUdWUsIDEyIEp1bCAyMDE2IDA4 OjE5OjM0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggNy83XSBmb3J0X2R5bl9hcnJheTogRm9ydHJh biBkeW5hbWljIHN0cmluZyBzdXBwb3J0CisKK1RoaXMgcGF0Y2ggY2hhbmdlcyB0aGUgc2VtYW50 aWMgb2YgdGhlIER3YXJmIHN0cmluZyBsZW5ndGgKK2F0dHJpYnV0ZSB0byByZWZsZWN0IHRoZSBz dGFuZGFyZCBhcyB3ZWxsIGFzIGVuYWJsZXMKK2NvcnJlY3Qgc3RyaW5nIGxlbmd0aCBjYWxjdWxh dGlvbiBvZiBkeW5hbWljIHN0cmluZ3MuIEFkZAordGVzdHMgZm9yIHZhcm91cyBkeW5hbWljIHN0 cmluZyBldmFsdWF0aW9ucy4KKworT2xkOgorKGdkYikgcCBteV9keW5fc3RyaW5nCitDYW5ub3Qg YWNjZXNzIG1lbW9yeSBhdCBhZGRyZXNzIDB4NjA1ZmMwCisKK05ldzoKKyhnZGIpIHAgKm15X2R5 bl9zdHJpbmcKKyQxID0gJ2ZvbycKKworZ2RiL0NoYW5nbG9nOgorCSogZHdhcmYycmVhZC5jIChy ZWFkX3RhZ19zdHJpbmdfdHlwZSk6IGNoYW5nZWQKKwlzZW1hbnRpYyBvZiBEV19BVF9zdHJpbmdf bGVuZ3RoIHRvIGJlIGFibGUgdG8KKwloYW5kbGUgRHdhcmYgYmxvY2tzIGFzIHdlbGwuIFN1cHBv cnQgZm9yCisJRFdfQVRfYnl0ZV9sZW5ndGggYWRkZWQgdG8gZ2V0IGNvcnJlY3QgbGVuZ3RoCisJ aWYgc3BlY2lmaWVkIGluIGNvbWJpbmF0aW9uIHdpdGgKKwlEV19BVF9zdHJpbmdfbGVuZ3RoLgor CShhdHRyX3RvX2R5bmFtaWNfcHJvcCk6IGFkZGVkCisJZnVuY3Rpb25hbGl0eSB0byBhZGQgRHdh cmYgb3BlcmF0b3JzIHRvIGJhdG9uCisJZGF0YSBhdHRyaWJ1dGUuIEFkZGVkIHBvc3QgdmFsdWVz IHRvIGJhdG9uCisJYXMgcmVxdWlyZWQgYnkgdGhlIHN0cmluZyBldmFsdWF0aW9uIGNhc2UuCisJ KHJlYWRfc3VicmFuZ2VfdHlwZSk6IEFkYXB0IGNhbGxlci4KKwkoc2V0X2RpZV90eXBlKTogQWRh cHQgY2FsbGVyLgorCShhZGRfcG9zdF92YWx1ZXNfdG9fYmF0b24pOiBOZXcgZnVuY3Rpb24uCisg ICAgCSogZ2RidHlwZXMuYyAocmVzb2x2ZV9keW5hbWljX3R5cGUpOiBBZGQKKyAgICAJY29uZGl0 aW9ucyB0byBzdXBwb3J0IHN0cmluZyB0eXBlcy4KKyAgICAJKHJlc29sdmVfZHluYW1pY19hcnJh eSk6IEFkZCBjb25kaXRpb25zIGZvciBkeW5hbWljCisgICAgCXN0cmluZ3MgYW5kIGNyZWF0ZSBh IG5ldyBzdHJpbmcgdHlwZS4KKyAgICAJKGlzX2R5bmFtaWNfdHlwZSk6IEZvbGxvdyBwb2ludGVy IGlmIGEgc3RyaW5nIHR5cGUKKyAgICAJd2FzIGRldGVjdGVkLCBhcyBGb3J0cmFuIHN0cmluZ3Mg YXJlIHJlcHJlc2VudGVkCisgICAgCWFzIHBvaW50ZXJzIHRvIHN0cmluZ3MgaW50ZXJuYWxseS4K KworZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2Vsb2c6CisJKiB2bGEtc3RyaW5ncy5mOTA6IE5ldyBmaWxl LgorCSogdmxhLXN0cmluZ3MuZXhwOiBOZXcgZmlsZS4KKworQ2hhbmdlLUlkOiBJN2Q3ZjQ3Yzdh NDkwMGE3ZmRiNTExMDIwMzI0NTViNTNkNjBlNjBkNworLS0tCisgZ2RiL2R3YXJmMnJlYWQuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxNTggKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tCisgZ2RiL2dkYnR5cGVzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKyst CisgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAgfCAxMDMgKysrKysr KysrKysrKysrKysrKworIGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkw IHwgIDM5ICsrKysrKysrCisgNCBmaWxlcyBjaGFuZ2VkLCAyODUgaW5zZXJ0aW9ucygrKSwgMzAg ZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLXN0cmluZ3MuZXhwCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCisKK2RpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5j IGIvZ2RiL2R3YXJmMnJlYWQuYworaW5kZXggNjY1OGEzOC4uNjc4ZGE4ZiAxMDA2NDQKKy0tLSBh L2dkYi9kd2FyZjJyZWFkLmMKKysrKyBiL2dkYi9kd2FyZjJyZWFkLmMKK0BAIC0xNzY0LDcgKzE3 NjQsOCBAQCBzdGF0aWMgdm9pZCByZWFkX3NpZ25hdHVyZWRfdHlwZSAoc3RydWN0IHNpZ25hdHVy ZWRfdHlwZSAqKTsKKyAKKyBzdGF0aWMgaW50IGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBz dHJ1Y3QgYXR0cmlidXRlICphdHRyLAorIAkJCQkgc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1LAorLQkJCQkgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCk7CisrCQkJ CSBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wLCBjb25zdCBnZGJfYnl0ZSAqYWRkaXRpb25hbF9k YXRhLAorKwkJCQkgaW50IGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKyAKKyAvKiBtZW1vcnkgYWxs b2NhdGlvbiBpbnRlcmZhY2UgKi8KKyAKK0BAIC0xMTQzNyw3ICsxMTQzOCw3IEBAIHJlYWRfZnVu Y19zY29wZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorICAg ICB7CisgICAgICAgbmV3b2JqLT5zdGF0aWNfbGluaworIAk9IFhPQk5FVyAoJm9iamZpbGUtPm9i amZpbGVfb2JzdGFjaywgc3RydWN0IGR5bmFtaWNfcHJvcCk7CistICAgICAgYXR0cl90b19keW5h bWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsIG5ld29iai0+c3RhdGljX2xpbmspOworKyAgICAgIGF0 dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5rLCBO VUxMLCAwKTsKKyAgICAgfQorIAorICAgY3UtPmxpc3RfaW5fc2NvcGUgPSAmbG9jYWxfc3ltYm9s czsKK0BAIC0xNDQ5NSwyOSArMTQ0OTYsOTQgQEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAgIHN0cnVjdCBnZGJhcmNo ICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7CisgICBzdHJ1Y3QgdHlwZSAq dHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90eXBlLCAqY2hhcl90eXBlOworICAgc3RydWN0IGF0 dHJpYnV0ZSAqYXR0cjsKKy0gIHVuc2lnbmVkIGludCBsZW5ndGg7CisrICB1bnNpZ25lZCBpbnQg bGVuZ3RoID0gVUlOVF9NQVg7CisrCisrICBpbmRleF90eXBlID0gb2JqZmlsZV90eXBlIChvYmpm aWxlKS0+YnVpbHRpbl9pbnQ7CisrICByYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90 eXBlIChOVUxMLCBpbmRleF90eXBlLCAxLCBsZW5ndGgpOworIAorKyAgLyogSWYgRFdfQVRfc3Ry aW5nX2xlbmd0aCBpcyBkZWZpbmVkLCB0aGUgbGVuZ3RoIGlzIHN0b3JlZCBpbiBtZW1vcnkuICAq LworICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX3N0cmluZ19sZW5ndGgsIGN1KTsK KyAgIGlmIChhdHRyKQorICAgICB7CistICAgICAgbGVuZ3RoID0gRFdfVU5TTkQgKGF0dHIpOwor KyAgICAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQorKwl7CisrCSAgc3RydWN0IGF0 dHJpYnV0ZSAqYnl0ZV9zaXplLCAqYml0X3NpemU7CisrCSAgc3RydWN0IGR5bmFtaWNfcHJvcCBo aWdoOworKworKwkgIGJ5dGVfc2l6ZSA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6 ZSwgY3UpOworKwkgIGJpdF9zaXplID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYml0X3NpemUs IGN1KTsKKysKKysJICAvKiBEV19BVF9ieXRlX3NpemUgc2hvdWxkIG5ldmVyIG9jY3VyIGluIGNv bWJpbmF0aW9uIHdpdGgKKysJICAgICBEV19BVF9iaXRfc2l6ZS4gICovCisrCSAgaWYgKGJ5dGVf c2l6ZSAhPSBOVUxMICYmIGJpdF9zaXplICE9IE5VTEwpCisrCSAgICBjb21wbGFpbnQgKCZzeW1m aWxlX2NvbXBsYWludHMsCisrCQkgICAgICAgXygiRFdfQVRfYnl0ZV9zaXplIEFORCAiCisrCQkJ ICJEV19BVF9iaXRfc2l6ZSBmb3VuZCB0b2dldGhlciBhdCB0aGUgc2FtZSB0aW1lLiIpKTsKKysK KysJICAvKiBJZiBEV19BVF9zdHJpbmdfbGVuZ3RoIEFORCBEV19BVF9ieXRlX3NpemUgZXhpc3Qg dG9nZXRoZXIsCisrCSAgICAgRFdfQVRfYnl0ZV9zaXplIGRlc2NyaWJlcyB0aGUgbnVtYmVyIG9m IGJ5dGVzIHRoYXQgc2hvdWxkIGJlIHJlYWQKKysJICAgICBmcm9tIHRoZSBsZW5ndGggbWVtb3J5 IGxvY2F0aW9uLiAgKi8KKysJICBpZiAoYnl0ZV9zaXplICE9IE5VTEwpCisrCSAgICB7CisrCSAg ICAgIC8qIEJ1aWxkIG5ldyBkd2FyZjJfbG9jZXhwcl9iYXRvbiBzdHJ1Y3R1cmUgd2l0aCBhZGRp dGlvbnMgdG8gdGhlCisrCQkgZGF0YSBhdHRyaWJ1dGUsIHRvIHJlZmxlY3QgRFdBUkYgc3BlY2lh bGl0aWVzIHRvIGdldCBhZGRyZXNzCisrCQkgc2l6ZXMuICAqLworKwkgICAgICBjb25zdCBnZGJf Ynl0ZSBhcHBlbmRfb3BzW10gPQorKwkJeworKwkJLyogRFdfT1BfZGVyZWZfc2l6ZTogc2l6ZSBv ZiBhbiBhZGRyZXNzIG9uIHRoZSB0YXJnZXQgbWFjaGluZQorKwkJICAgKGJ5dGVzKSwgd2hlcmUg dGhlIHNpemUgd2lsbCBiZSBzcGVjaWZpZWQgYnkgdGhlIG5leHQKKysJCSAgIG9wZXJhbmQuICAq LworKwkJRFdfT1BfZGVyZWZfc2l6ZSwKKysJCS8qIE9wZXJhbmQgZm9yIERXX09QX2RlcmVmX3Np emUuICAqLworKwkJRFdfVU5TTkQoYnl0ZV9zaXplKSB9OworKworKwkgICAgICBpZiAoIWF0dHJf dG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmaGlnaCwgYXBwZW5kX29wcywKKysJCQkJ CSBBUlJBWV9TSVpFKGFwcGVuZF9vcHMpKSkKKysJCWNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxh aW50cywKKysJCQkgICBfKCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfYnl0ZV9zaXplIikpOworKwkg ICAgfQorKwkgIGVsc2UgaWYgKGJpdF9zaXplICE9IE5VTEwpCisrCSAgICBjb21wbGFpbnQgKCZz eW1maWxlX2NvbXBsYWludHMsCisrCQkgICAgICAgXygiRFdfQVRfc3RyaW5nX2xlbmd0aCBBTkQg IgorKwkJCSAiRFdfQVRfYml0X3NpemUgZm91bmQgYnV0IG5vdCBzdXBwb3J0ZWQgeWV0LiIpKTsK KysJICAvKiBJZiBEV19BVF9zdHJpbmdfbGVuZ3RoIFdJVEhPVVQgRFdfQVRfYnl0ZV9zaXplIGV4 aXN0LCB0aGUgZGVmYXVsdAorKwkgICAgIGlzIHRoZSBhZGRyZXNzIHNpemUgb2YgdGhlIHRhcmdl dCBtYWNoaW5lLiAgKi8KKysJICBlbHNlCisrCSAgICB7CisrCSAgICAgIGNvbnN0IGdkYl9ieXRl IGFwcGVuZF9vcHNbXSA9CisrCQl7IERXX09QX2RlcmVmIH07CisrCisrCSAgICAgIGlmICghYXR0 cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBhcHBlbmRfb3BzLAorKwkJ CQkJIEFSUkFZX1NJWkUoYXBwZW5kX29wcykpKQorKwkJY29tcGxhaW50ICgmc3ltZmlsZV9jb21w bGFpbnRzLAorKwkJCSAgIF8oIkNvdWxkIG5vdCBwYXJzZSBEV19BVF9zdHJpbmdfbGVuZ3RoIikp OworKwkgICAgfQorKworKwkgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSktPmhpZ2ggPSBo aWdoOworKwl9CisrICAgICAgZWxzZQorKwl7CisrCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90 eXBlKSA9IERXX1VOU05EKGF0dHIpOworKwkgIFRZUEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90 eXBlKSA9IFBST1BfQ09OU1Q7CisrCX0KKyAgICAgfQorICAgZWxzZQorICAgICB7CistICAgICAg LyogQ2hlY2sgZm9yIHRoZSBEV19BVF9ieXRlX3NpemUgYXR0cmlidXRlLiAgKi8KKysgICAgICAv KiBDaGVjayBmb3IgdGhlIERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1dGUsIHdoaWNoIHJlcHJlc2Vu dHMgdGhlIGxlbmd0aAorKwkgaW4gdGhpcyBjYXNlLiAgKi8KKyAgICAgICBhdHRyID0gZHdhcmYy X2F0dHIgKGRpZSwgRFdfQVRfYnl0ZV9zaXplLCBjdSk7CisgICAgICAgaWYgKGF0dHIpCistICAg ICAgICB7CistICAgICAgICAgIGxlbmd0aCA9IERXX1VOU05EIChhdHRyKTsKKy0gICAgICAgIH0K KysJeworKwkgIFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBEV19VTlNORChhdHRyKTsK KysJICBUWVBFX0hJR0hfQk9VTkRfS0lORCAocmFuZ2VfdHlwZSkgPSBQUk9QX0NPTlNUOworKwl9 CisgICAgICAgZWxzZQorLSAgICAgICAgeworLSAgICAgICAgICBsZW5ndGggPSAxOworLSAgICAg ICAgfQorKwl7CisrCSAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IDE7CisrCSAgVFlQ RV9ISUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5cGUpID0gUFJPUF9DT05TVDsKKysJfQorICAgICB9 CisgCistICBpbmRleF90eXBlID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7 CistICByYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLCBpbmRleF90 eXBlLCAxLCBsZW5ndGgpOworICAgY2hhcl90eXBlID0gbGFuZ3VhZ2Vfc3RyaW5nX2NoYXJfdHlw ZSAoY3UtPmxhbmd1YWdlX2RlZm4sIGdkYmFyY2gpOworICAgdHlwZSA9IGNyZWF0ZV9zdHJpbmdf dHlwZSAoTlVMTCwgY2hhcl90eXBlLCByYW5nZV90eXBlKTsKKyAKK0BAIC0xNDg0Nyw3ICsxNDkx Myw4IEBAIHJlYWRfYmFzZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCisgCisgc3RhdGljIGludAorIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBz dHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwKKy0JCSAgICAgIHN0 cnVjdCBkd2FyZjJfY3UgKmN1LCBzdHJ1Y3QgZHluYW1pY19wcm9wICpwcm9wKQorKwkJICAgICAg c3RydWN0IGR3YXJmMl9jdSAqY3UsIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3AsCisrCQkgICAg ICBjb25zdCBnZGJfYnl0ZSAqYWRkaXRpb25hbF9kYXRhLCBpbnQgYWRkaXRpb25hbF9kYXRhX3Np emUpCisgeworICAgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9iYXRvbiAqYmF0b247CisgICBzdHJ1 Y3Qgb2JzdGFjayAqb2JzdGFjayA9ICZjdS0+b2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrOworQEAg LTE0ODU3LDE0ICsxNDkyNCwzMyBAQCBhdHRyX3RvX2R5bmFtaWNfcHJvcCAoY29uc3Qgc3RydWN0 IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IGRpZV9pbmZvICpkaWUsCisgCisgICBpZiAoYXR0cl9m b3JtX2lzX2Jsb2NrIChhdHRyKSkKKyAgICAgeworLSAgICAgIGJhdG9uID0gWE9CTkVXIChvYnN0 YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uKTsKKysgICAgICBiYXRvbiA9IFhPQk5F VyhvYnN0YWNrLCBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uKTsKKyAgICAgICBiYXRvbi0+ cmVmZXJlbmNlZF90eXBlID0gTlVMTDsKKyAgICAgICBiYXRvbi0+bG9jZXhwci5wZXJfY3UgPSBj dS0+cGVyX2N1OworLSAgICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAoYXR0cikt PnNpemU7CistICAgICAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0 YTsKKysKKysgICAgICBpZiAoYWRkaXRpb25hbF9kYXRhICE9IE5VTEwgJiYgYWRkaXRpb25hbF9k YXRhX3NpemUgPiAwKQorKwl7CisrCSAgZ2RiX2J5dGUgKmRhdGE7CisrCisrCSAgZGF0YSA9IChn ZGJfYnl0ZSAqKSBvYnN0YWNrX2FsbG9jKAorKwkgICAgICAmY3UtPm9iamZpbGUtPm9iamZpbGVf b2JzdGFjaywKKysJICAgICAgRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgYWRkaXRpb25hbF9kYXRh X3NpemUpOworKwkgIG1lbWNweSAoZGF0YSwgRFdfQkxPQ0sgKGF0dHIpLT5kYXRhLCBEV19CTE9D SyAoYXR0ciktPnNpemUpOworKwkgIG1lbWNweSAoZGF0YSArIERXX0JMT0NLIChhdHRyKS0+c2l6 ZSwgYWRkaXRpb25hbF9kYXRhLAorKwkJICBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7CisrCisrCSAg YmF0b24tPmxvY2V4cHIuZGF0YSA9IGRhdGE7CisrCSAgYmF0b24tPmxvY2V4cHIuc2l6ZSA9IERX X0JMT0NLIChhdHRyKS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplOworKwl9CisrICAgICAg ZWxzZQorKwl7CisrCSAgYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLIChhdHRyKS0+ZGF0 YTsKKysJICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOworKwl9 CisrCisgICAgICAgcHJvcC0+ZGF0YS5iYXRvbiA9IGJhdG9uOworICAgICAgIHByb3AtPmtpbmQg PSBQUk9QX0xPQ0VYUFI7CistICAgICAgZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBO VUxMKTsKKysgICAgICBnZGJfYXNzZXJ0KHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7CisgICAg IH0KKyAgIGVsc2UgaWYgKGF0dHJfZm9ybV9pc19yZWYgKGF0dHIpKQorICAgICB7CitAQCAtMTQ4 OTcsOCArMTQ5ODMsMjggQEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHIsIHN0cnVjdCBkaWVfaW5mbyAqZGllLAorIAkJYmF0b24gPSBYT0JORVcgKG9i c3RhY2ssIHN0cnVjdCBkd2FyZjJfcHJvcGVydHlfYmF0b24pOworIAkJYmF0b24tPnJlZmVyZW5j ZWRfdHlwZSA9IGRpZV90eXBlICh0YXJnZXRfZGllLCB0YXJnZXRfY3UpOworIAkJYmF0b24tPmxv Y2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKKy0JCWJhdG9uLT5sb2NleHByLnNpemUgPSBEV19C TE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOworLQkJYmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JM T0NLICh0YXJnZXRfYXR0ciktPmRhdGE7CisrCisrCQlpZiAoYWRkaXRpb25hbF9kYXRhICE9IE5V TEwgJiYgYWRkaXRpb25hbF9kYXRhX3NpemUgPiAwKQorKwkJICB7CisrCQkgICAgZ2RiX2J5dGUg KmRhdGE7CisrCisrCQkgICAgZGF0YSA9IChnZGJfYnl0ZSAqKSBvYnN0YWNrX2FsbG9jICgmY3Ut Pm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKKysJCQkgICAgRFdfQkxPQ0sgKHRhcmdldF9hdHRy KS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKKysJCSAgICBtZW1jcHkgKGRhdGEsIERX X0JMT0NLICh0YXJnZXRfYXR0ciktPmRhdGEsCisrCQkJICAgIERXX0JMT0NLICh0YXJnZXRfYXR0 ciktPnNpemUpOworKwkJICAgIG1lbWNweSAoZGF0YSArIERXX0JMT0NLICh0YXJnZXRfYXR0cikt PnNpemUsCisrCQkJICAgIGFkZGl0aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX3NpemUpOwor KworKwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOworKwkJICAgIGJhdG9uLT5sb2Nl eHByLnNpemUgPSAoRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZQorKwkJCQkJICAgKyBhZGRp dGlvbmFsX2RhdGFfc2l6ZSk7CisrCQkgIH0KKysJCWVsc2UKKysJCSAgeworKwkJICAgIGJhdG9u LT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOworKwkJICAgIGJh dG9uLT5sb2NleHByLnNpemUgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOworKwkJICB9 CisrCisgCQlwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247CisgCQlwcm9wLT5raW5kID0gUFJPUF9M T0NFWFBSOworIAkJZ2RiX2Fzc2VydCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKK0BAIC0x NTAwOCwxNyArMTUxMTQsMTcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRp ZSwgRFdfQVRfbG93ZXJfYm91bmQsIGN1KTsKKyAgIGlmIChhdHRyKQorLSAgICBhdHRyX3RvX2R5 bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmxvdyk7CisrICAgIGF0dHJfdG9fZHluYW1pY19w cm9wIChhdHRyLCBkaWUsIGN1LCAmbG93LCBOVUxMLCAwKTsKKyAgIGVsc2UgaWYgKCFsb3dfZGVm YXVsdF9pc192YWxpZCkKKyAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLCBfKCJN aXNzaW5nIERXX0FUX2xvd2VyX2JvdW5kICIKKyAJCQkJICAgICAgIi0gRElFIGF0IDB4JXggW2lu IG1vZHVsZSAlc10iKSwKKyAJICAgICAgIGRpZS0+b2Zmc2V0LnNlY3Rfb2ZmLCBvYmpmaWxlX25h bWUgKGN1LT5vYmpmaWxlKSk7CisgCisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRf dXBwZXJfYm91bmQsIGN1KTsKKy0gIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRp ZSwgY3UsICZoaWdoKSkKKysgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwg Y3UsICZoaWdoLCBOVUxMLCAwKSkKKyAgICAgeworICAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAo ZGllLCBEV19BVF9jb3VudCwgY3UpOworLSAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAo YXR0ciwgZGllLCBjdSwgJmhpZ2gpKQorKyAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAo YXR0ciwgZGllLCBjdSwgJmhpZ2gsIE5VTEwsIDApKQorIAl7CisgCSAgLyogSWYgYm91bmRzIGFy ZSBjb25zdGFudCBkbyB0aGUgZmluYWwgY2FsY3VsYXRpb24gaGVyZS4gICovCisgCSAgaWYgKGxv dy5raW5kID09IFBST1BfQ09OU1QgJiYgaGlnaC5raW5kID09IFBST1BfQ09OU1QpCitAQCAtMjIz ODksNyArMjI0OTUsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCisgICBhdHRyID0gZHdhcmYyX2F0 dHIgKGRpZSwgRFdfQVRfYWxsb2NhdGVkLCBjdSk7CisgICBpZiAoYXR0cl9mb3JtX2lzX2Jsb2Nr IChhdHRyKSkKKyAgICAgeworLSAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwg ZGllLCBjdSwgJnByb3ApKQorKyAgICAgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwg ZGllLCBjdSwgJnByb3AsIE5VTEwsIDApKQorICAgICAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJP UF9BTExPQ0FURUQsIHByb3AsIHR5cGUsIG9iamZpbGUpOworICAgICB9CisgICBlbHNlIGlmIChh dHRyICE9IE5VTEwpCitAQCAtMjI0MDQsNyArMjI1MTAsNyBAQCBzZXRfZGllX3R5cGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CisgICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYXNzb2NpYXRlZCwgY3UpOworICAg aWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCisgICAgIHsKKy0gICAgICBpZiAoYXR0cl90 b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKKysgICAgICBpZiAoYXR0cl90 b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAwKSkKKyAgICAgICAg IGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7 CisgICAgIH0KKyAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKK0BAIC0yMjQxNyw3ICsyMjUyMyw3 IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBl LCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKKyAKKyAgIC8qIFJlYWQgRFdfQVRfZGF0YV9sb2NhdGlv biBhbmQgc2V0IGluIHR5cGUuICAqLworICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X2RhdGFfbG9jYXRpb24sIGN1KTsKKy0gIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwg ZGllLCBjdSwgJnByb3ApKQorKyAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUs IGN1LCAmcHJvcCwgTlVMTCwgMCkpCisgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfREFUQV9M T0NBVElPTiwgcHJvcCwgdHlwZSwgb2JqZmlsZSk7CisgCisgICBpZiAoZHdhcmYyX3Blcl9vYmpm aWxlLT5kaWVfdHlwZV9oYXNoID09IE5VTEwpCitkaWZmIC0tZ2l0IGEvZ2RiL2dkYnR5cGVzLmMg Yi9nZGIvZ2RidHlwZXMuYworaW5kZXggYjUzZTY0OS4uMGFhOTExMyAxMDA2NDQKKy0tLSBhL2dk Yi9nZGJ0eXBlcy5jCisrKysgYi9nZGIvZ2RidHlwZXMuYworQEAgLTE4NDEsNiArMTg0MSw3IEBA IGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCB0b3BfbGV2 ZWwpCisgICAgICAgfQorIAorICAgICBjYXNlIFRZUEVfQ09ERV9BUlJBWToKKysgICAgY2FzZSBU WVBFX0NPREVfU1RSSU5HOgorICAgICAgIHsKKyAJZ2RiX2Fzc2VydCAoVFlQRV9ORklFTERTICh0 eXBlKSA9PSAxKTsKKyAKK0BAIC0xOTQ1LDcgKzE5NDYsOCBAQCByZXNvbHZlX2R5bmFtaWNfYXJy YXkgKHN0cnVjdCB0eXBlICp0eXBlLAorICAgc3RydWN0IHR5cGUgKmFyeV9kaW07CisgICBzdHJ1 Y3QgZHluYW1pY19wcm9wICpwcm9wOworIAorLSAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBl KSA9PSBUWVBFX0NPREVfQVJSQVkpOworKyAgZ2RiX2Fzc2VydCAoVFlQRV9DT0RFICh0eXBlKSA9 PSBUWVBFX0NPREVfQVJSQVkKKysJICAgICAgfHwgVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NP REVfU1RSSU5HKTsKKyAKKyAgIHR5cGUgPSBjb3B5X3R5cGUgKHR5cGUpOworIAorQEAgLTE5NzAs MTMgKzE5NzIsMTcgQEAgcmVzb2x2ZV9keW5hbWljX2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwK KyAKKyAgIGFyeV9kaW0gPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChlbHRfdHlw ZSkpOworIAorLSAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiBUWVBFX0NPREUgKGFyeV9kaW0pID09 IFRZUEVfQ09ERV9BUlJBWSkKKysgIGlmIChhcnlfZGltICE9IE5VTEwgJiYgKFRZUEVfQ09ERSAo YXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZCisrICAgICAgfHwgVFlQRV9DT0RFIChhcnlfZGlt KSA9PSBUWVBFX0NPREVfU1RSSU5HKSkKKyAgICAgZWx0X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNf YXJyYXkgKGFyeV9kaW0sIGFkZHJfc3RhY2spOworICAgZWxzZQorICAgICBlbHRfdHlwZSA9IFRZ UEVfVEFSR0VUX1RZUEUgKHR5cGUpOworIAorLSAgcmV0dXJuIGNyZWF0ZV9hcnJheV90eXBlX3dp dGhfc3RyaWRlICh0eXBlLCBlbHRfdHlwZSwgcmFuZ2VfdHlwZSwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCAwKSk7Cisr ICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfU1RSSU5HKQorKyAgICByZXR1cm4g Y3JlYXRlX3N0cmluZ190eXBlICh0eXBlLCBlbHRfdHlwZSwgcmFuZ2VfdHlwZSk7CisrICBlbHNl CisrICAgIHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZSAodHlwZSwgZWx0X3R5 cGUsIHJhbmdlX3R5cGUsCisrCQkJCQkgIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkpOwor IH0KKyAKKyAvKiBSZXNvbHZlIGR5bmFtaWMgYm91bmRzIG9mIG1lbWJlcnMgb2YgdGhlIHVuaW9u IFRZUEUgdG8gc3RhdGljCitAQCAtMjE4MSw2ICsyMTg3LDcgQEAgcmVzb2x2ZV9keW5hbWljX3R5 cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0eXBlLAorICAJICBicmVhazsKKyAKKyAJY2FzZSBU WVBFX0NPREVfQVJSQVk6CisrCWNhc2UgVFlQRV9DT0RFX1NUUklORzoKKyAJICByZXNvbHZlZF90 eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5ICh0eXBlLCBhZGRyX3N0YWNrKTsKKyAJICBicmVh azsKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdz LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCituZXcgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uNDg0ZmRjYgorLS0tIC9kZXYvbnVsbAorKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKK0BAIC0wLDAgKzEs MTAzIEBACisrIyBDb3B5cmlnaHQgMjAxNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZpbGUg Ii5mOTAiCisrCisraWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0 ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisrICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysgICAg cmV0dXJuIC0xCisrfQorKworKyMgY2hlY2sgdGhhdCBhbGwgZm9ydHJhbiBzdGFuZGFyZCBkYXRh dHlwZXMgd2lsbCBiZQorKyMgaGFuZGxlZCBjb3JyZWN0bHkgd2hlbiB1c2luZyBhcyBWTEEncwor KworK2lmICFbcnVudG9fbWFpbl0geworKyAgICB1bnRlc3RlZCAiY291bGQgbm90IHJ1biB0byBt YWluIgorKyAgICByZXR1cm4gLTEKKyt9CisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGlu ZV9udW1iZXIgInZhcl9jaGFyLWFsbG9jYXRlZC0xIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAidmFyX2NoYXItYWxsb2NhdGVkLTEiCisrc2V0IHRlc3QgIndoYXRpcyB2YXJfY2hhciBm aXJzdCB0aW1lIgorK2dkYl90ZXN0X211bHRpcGxlICJ3aGF0aXMgdmFyX2NoYXIiICR0ZXN0IHsK KysgICAgLXJlICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXClcclxuJGdk Yl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1yZSAidHlwZSA9 IGNoYXJhY3RlclxcKjEwXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysg ICAgfQorK30KKytzZXQgdGVzdCAicHR5cGUgdmFyX2NoYXIgZmlyc3QgdGltZSIKKytnZGJfdGVz dF9tdWx0aXBsZSAicHR5cGUgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAgLXJlICJ0eXBlID0gUFRS IFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAg cGFzcyAkdGVzdAorKyAgICB9CisrICAgIC1yZSAidHlwZSA9IGNoYXJhY3RlclxcKjEwXHJcbiRn ZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KKysKKysKKytnZGJf dGVzdCAibmV4dCIgIlxcZCsuKnZhcl9jaGFyID0gJ2ZvbycuKiIgXAorKyAgIm5leHQgdG8gYWxs b2NhdGlvbiBzdGF0dXMgb2YgdmFyX2NoYXIiCisrZ2RiX3Rlc3QgInByaW50IGwiICIgPSBcXC5U UlVFXFwuIiAicHJpbnQgYWxsb2NhdGlvbiBzdGF0dXMgZmlyc3QgdGltZSIKKysKKysKKytnZGJf YnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXItZmlsbGVkLTEiXQorK2dk Yl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1maWxsZWQtMSIKKytzZXQgdGVzdCAi cHJpbnQgdmFyX2NoYXIsIHZhcl9jaGFyLWZpbGxlZC0xIgorK2dkYl90ZXN0X211bHRpcGxlICJw cmludCB2YXJfY2hhciIgJHRlc3QgeworKyAgICAtcmUgIj0gXFwoUFRSIFRPIC0+IFxcKCBjaGFy YWN0ZXJcXCozIFxcKVxcKSAkaGV4XHJcbiRnZGJfcHJvbXB0ICQiIHsKKysgICAgICAgIGdkYl90 ZXN0ICJwcmludCAqdmFyX2NoYXIiICI9ICdmb28nIiAicHJpbnQgKnZhcl9jaGFyLCB2YXJfY2hh ci1maWxsZWQtMSIKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgIj0gJ2Zvbydc clxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrfQorK3NldCB0 ZXN0ICJwdHlwZSB2YXJfY2hhciwgdmFyX2NoYXItZmlsbGVkLTEiCisrZ2RiX3Rlc3RfbXVsdGlw bGUgInB0eXBlIHZhcl9jaGFyIiAkdGVzdCB7CisrICAgIC1yZSAidHlwZSA9IFBUUiBUTyAtPiBc XCggY2hhcmFjdGVyXFwqMyBcXClcclxuJGdkYl9wcm9tcHQgJCIgeworKwkgICAgcGFzcyAkdGVz dAorKyAgICB9CisrICAgIC1yZSAidHlwZSA9IGNoYXJhY3RlclxcKjNcclxuJGdkYl9wcm9tcHQg JCIgeworKwkgICAgcGFzcyAkdGVzdAorKyAgICB9CisrfQorK2dkYl90ZXN0ICJwcmludCB2YXJf Y2hhcigxKSIgIiA9IDEwMiAnZiciICJwcmludCB2YXJfY2hhcigxKSIKKytnZGJfdGVzdCAicHJp bnQgdmFyX2NoYXIoMykiICIgPSAxMTEgJ28nIiAicHJpbnQgdmFyX2NoYXIoMykiCisrCisrCisr Z2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWZpbGxlZC0yIl0K KytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZmlsbGVkLTIiCisrc2V0IHRl c3QgInByaW50IHZhcl9jaGFyLCB2YXJfY2hhci1maWxsZWQtMiIKKytnZGJfdGVzdF9tdWx0aXBs ZSAicHJpbnQgdmFyX2NoYXIiICR0ZXN0IHsKKysgICAgLXJlICI9IFxcKFBUUiBUTyAtPiBcXCgg Y2hhcmFjdGVyXFwqNiBcXClcXCkgJGhleFxyXG4kZ2RiX3Byb21wdCAkIiB7CisrICAgICAgICBn ZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiPSAnZm9vYmFyJyIgInByaW50ICp2YXJfY2hhciwg dmFyX2NoYXItZmlsbGVkLTIiCisrCSAgICBwYXNzICR0ZXN0CisrICAgIH0KKysgICAgLXJlICI9 ICdmb29iYXInXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQor K30KKytzZXQgdGVzdCAicHR5cGUgdmFyX2NoYXIsIHZhcl9jaGFyLWZpbGxlZC0yIgorK2dkYl90 ZXN0X211bHRpcGxlICJwdHlwZSB2YXJfY2hhciIgJHRlc3QgeworKyAgICAtcmUgInR5cGUgPSBQ VFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpXHJcbiRnZGJfcHJvbXB0ICQiIHsKKysJICAg IHBhc3MgJHRlc3QKKysgICAgfQorKyAgICAtcmUgInR5cGUgPSBjaGFyYWN0ZXJcXCo2XHJcbiRn ZGJfcHJvbXB0ICQiIHsKKysJICAgIHBhc3MgJHRlc3QKKysgICAgfQorK30KK2RpZmYgLS1naXQg YS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MCBiL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5k ZXggMDAwMDAwMC4uM2MyMjczNQorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAKK0BAIC0wLDAgKzEsMzkgQEAKKyshIENvcHlyaWdo dCAyMDE2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyEKKyshIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisrISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyshIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyEgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyshCisrISBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor KyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisrCisrcHJvZ3JhbSB2bGFfc3RyaW5ncworKyAgY2hhcmFjdGVyKGxl bj06KSwgdGFyZ2V0LCBhbGxvY2F0YWJsZSAgIDo6IHZhcl9jaGFyCisrICBjaGFyYWN0ZXIobGVu PTopLCBwb2ludGVyICAgICAgICAgICAgICAgOjogdmFyX2NoYXJfcAorKyAgbG9naWNhbCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6IGwKKysKKysgIGFsbG9jYXRlKGNoYXJhY3Rl cihsZW49MTApIDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAg ICAgICAgICAgICEgdmFyX2NoYXItYWxsb2NhdGVkLTEKKysgIHZhcl9jaGFyID0gJ2ZvbycKKysg IGRlYWxsb2NhdGUodmFyX2NoYXIpICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWZpbGxl ZC0xCisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgISB2YXJfY2hh ci1kZWFsbG9jYXRlZAorKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj00MikgOjogdmFyX2NoYXIp CisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKQorKyAgdmFyX2NoYXIgPSAnZm9vYmFyJworKyAg dmFyX2NoYXIgPSAnJyAgICAgICAgICAgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZmlsbGVk LTIKKysgIHZhcl9jaGFyID0gJ2JhcicgICAgICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFy LWVtcHR5CisrICBkZWFsbG9jYXRlKHZhcl9jaGFyKQorKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxl bj0yMSkgOjogdmFyX2NoYXIpCisrICBsID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAg ICAgICAgISB2YXJfY2hhci1hbGxvY2F0ZWQtMworKyAgdmFyX2NoYXIgPSAnam9obmRvZScKKysg IHZhcl9jaGFyX3AgPT4gdmFyX2NoYXIKKysgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAg ICAgICAgICAgICAhIHZhcl9jaGFyX3AtYXNzb2NpYXRlZAorKyAgdmFyX2NoYXJfcCA9PiBudWxs KCkKKysgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFy X3Atbm90LWFzc29jaWF0ZWQKKytlbmQgcHJvZ3JhbSB2bGFfc3RyaW5ncworLS0gCisyLjcuNAor CgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC1sb2dpY2FsLW5vdC5wYXRjaCBiL2dkYi12bGEt aW50ZWwtbG9naWNhbC1ub3QucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBj NTFjODQuLjAwMDAwMDAKLS0tIGEvZ2RiLXZsYS1pbnRlbC1sb2dpY2FsLW5vdC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLS0tLSAuL2dkYi92YWx1ZS5jLW9yaWcJMjAxNS0w Mi0xMSAxNToxNzo1OC40MTMyNDE3NzkgKzAxMDAKLSsrKyAuL2dkYi92YWx1ZS5jCTIwMTUtMDIt MTEgMTU6MTk6NDIuMDY4NzE2OTQ5ICswMTAwCi1AQCAtMzA3NCw3ICszMDc0LDcgQEAgdmFsdWVf cHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZwotIAl9Ci0gCi0gICAgICAgaWYgKCFU WVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0tICAgICAgICAgIHx8ICFUWVBFX0RBVEFfTE9DQVRJ T05fS0lORCAodHlwZSkgPT0gUFJPUF9DT05TVCkKLSsgICAgICAgICAgfHwgVFlQRV9EQVRBX0xP Q0FUSU9OX0tJTkQgKHR5cGUpICE9IFBST1BfQ09OU1QpCi0gCXYtPm9mZnNldCA9ICh2YWx1ZV9v ZmZzZXQgKGFyZzEpICsgb2Zmc2V0Ci0gCQkgICAgICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChh cmcxKSk7Ci0gICAgIH0KCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5w YXRjaCBiL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoCmluZGV4IGY2MTk3ZjIuLjMy MTRkZTIgMTAwNjQ0Ci0tLSBhL2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoCisrKyBi L2dkYi12bGEtaW50ZWwtc3RyaW5nYnQtZml4LnBhdGNoCkBAIC0zMSwyNiArMzEsNiBAQCBKYW4K IENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQogQ29udGVudC1EaXNw b3NpdGlvbjogaW5saW5lOyBmaWxlbmFtZT0idmxhc3RyaW5nb25seS5wYXRjaCIKIAotSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmMKLT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wNS0zMSAxNjoxNDowNC4x NjQ1MzM4MzMgKzAyMDAKLSsrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5jCTIw MTUtMDUtMzEgMTY6MTQ6MDUuODQ0NTQ1MzQ0ICswMjAwCi1AQCAtMTg1MSw2ICsxODUxLDcgQEAg aXNfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHlwZSAqdAotICAgICAgIH0KLSAKLSAg ICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0rICAgIGNhc2UgVFlQRV9DT0RFX1NUUklORzoKLSAg ICAgICB7Ci0gCWdkYl9hc3NlcnQgKFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMSk7Ci0gCi1AQCAt MjE5Miw2ICsyMTkzLDcgQEAgcmVzb2x2ZV9keW5hbWljX3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0 eQotIAkgIH0KLSAKLSAJY2FzZSBUWVBFX0NPREVfQVJSQVk6Ci0rCWNhc2UgVFlQRV9DT0RFX1NU UklORzoKLSAJICByZXNvbHZlZF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5ICh0eXBlLCBh ZGRyX3N0YWNrKTsKLSAJICBicmVhazsKLSAKIEluZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5MAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAoKZGlmZiAtLWdpdCBhL2dkYi12bGEtaW50ZWwtdGVzdHMucGF0Y2ggYi9nZGItdmxhLWludGVs LXRlc3RzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjOGFiNWIK LS0tIC9kZXYvbnVsbAorKysgYi9nZGItdmxhLWludGVsLXRlc3RzLnBhdGNoCkBAIC0wLDAgKzEs Mzc3IEBACitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi92bGEtZnVuYy5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAw MDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4MzYz NzY4MCArMDEwMAorQEAgLTAsMCArMSw2MSBAQAorKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhl IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkK KysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhl IExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMK KysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgor KworK3N0YW5kYXJkX3Rlc3RmaWxlICIuZjkwIgorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3Rp bmcgJHt0ZXN0ZmlsZX0uZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcg ZjkwIHF1aWV0fV0gfSB7CisrICAgIHJldHVybiAtMQorK30KKysKKytpZiAhW3J1bnRvIE1BSU5f X10gdGhlbiB7CisrICAgIHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9f IgorKyAgICBjb250aW51ZQorK30KKysKKysjIENoZWNrIFZMQSBwYXNzZWQgdG8gZmlyc3QgRm9y dHJhbiBmdW5jdGlvbi4KKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVu YzEtdmxhLXBhc3NlZCJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMxLXZsYS1w YXNzZWQiCisrZ2RiX3Rlc3QgInByaW50IHZsYSIgIiA9IFxcKCAqXFwoICoyMiwgKjIyLCAqMjIs XFsoKTIyLCAuXF0qXFwpIiBcCisrICAicHJpbnQgdmxhIChmdW5jMSkiCisrZ2RiX3Rlc3QgInB0 eXBlIHZsYSIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEwLDEwXFxcKSIgXAor KyAgInB0eXBlIHZsYSAoZnVuYzEpIgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJmdW5jMS12bGEtbW9kaWZpZWQiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJmdW5jMS12bGEtbW9kaWZpZWQiCisrZ2RiX3Rlc3QgInByaW50IHZsYSg1LDUpIiAiID0gNTUi ICJwcmludCB2bGEoNSw1KSAoZnVuYzEpIgorK2dkYl90ZXN0ICJwcmludCB2bGEoNyw3KSIgIiA9 IDc3IiAicHJpbnQgdmxhKDUsNSkgKGZ1bmMxKSIKKysKKysjIENoZWNrIGlmIHRoZSB2YWx1ZXMg YXJlIGNvcnJlY3QgYWZ0ZXIgcmV0dXJuaW5nIGZyb20gZnVuYzEKKytnZGJfYnJlYWtwb2ludCBb Z2RiX2dldF9saW5lX251bWJlciAiZnVuYzEtcmV0dXJuZWQiXQorK2dkYl9jb250aW51ZV90b19i cmVha3BvaW50ICJmdW5jMS1yZXR1cm5lZCIKKytnZGJfdGVzdCAicHJpbnQgcmV0IiAiID0gLlRS VUUuIiAicHJpbnQgcmV0IGFmdGVyIGZ1bmMxIHJldHVybmVkIgorKworKyMgQ2hlY2sgVkxBIHBh c3NlZCB0byBzZWNvbmQgRm9ydHJhbiBmdW5jdGlvbgorK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0 X2xpbmVfbnVtYmVyICJmdW5jMi12bGEtcGFzc2VkIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtw b2ludCAiZnVuYzItdmxhLXBhc3NlZCIKKytnZGJfdGVzdCAicHJpbnQgdmxhIiBcCisrICAiID0g XFxcKDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0XFxcKSIgXAorKyAgInBy aW50IHZsYSAoZnVuYzIpIgorK2dkYl90ZXN0ICJwdHlwZSB2bGEiICJ0eXBlID0gaW50ZWdlclxc XChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKKysgICJwdHlwZSB2bGEgKGZ1bmMyKSIKKysKKysj IENoZWNrIGlmIHRoZSByZXR1cm5lZCBWTEEgaGFzIHRoZSBjb3JyZWN0IHZhbHVlcyBhbmQgcHR5 cGUuCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMyLXJldHVybmVk Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVuYzItcmV0dXJuZWQiCisrZ2RiX3Rl c3QgInByaW50IHZsYTMiICIgPSBcXFwoMSwgMiwgNDQsIDQsIDQ0LCA0NCwgNDQsIDgsIDQ0LCA0 NFxcXCkiIFwKKysgICJwcmludCB2bGEzIChhZnRlciBmdW5jMikiCisrZ2RiX3Rlc3QgInB0eXBl IHZsYTMiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKKysgICJw dHlwZSB2bGEzIChhZnRlciBmdW5jMikiCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5mOTAKKz09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy4xMC41 MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAkyMDE2LTAx LTA4IDE5OjE1OjQ0Ljk4MzYzNzY4MCArMDEwMAorQEAgLTAsMCArMSw3MSBAQAorKyEgQ29weXJp Z2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrIQorKyEgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKyshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CisrISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo ZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorKyEgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyc2lvbi4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyshIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrISBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrISBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyEKKyshIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisrISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT b2Z0d2FyZQorKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMw LCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKysKKytsb2dpY2FsIGZ1bmN0aW9uIGZ1bmMx ICh2bGEpCisrICBpbXBsaWNpdCBub25lCisrICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGEg KDosIDopCisrICBmdW5jMSA9IGFsbG9jYXRlZCh2bGEpCisrICB2bGEoNSw1KSA9IDU1ICAgICAg ICAgICAgICAgISBmdW5jMS12bGEtcGFzc2VkCisrICB2bGEoNyw3KSA9IDc3CisrICByZXR1cm4g ICAgICAgICAgICAgICAgICAgICAgISBmdW5jMS12bGEtbW9kaWZpZWQKKytlbmQgZnVuY3Rpb24g ZnVuYzEKKysKKytmdW5jdGlvbiBmdW5jMih2bGEpCisrICBpbXBsaWNpdCBub25lCisrICBpbnRl Z2VyIDo6IHZsYSAoOikKKysgIGludGVnZXIgOjogZnVuYzIoc2l6ZSh2bGEpKQorKyAgaW50ZWdl ciA6OiBrCisrCisrICB2bGEoMSkgPSAxICAgICAgICAgICAgICAgICAgICAhIGZ1bmMyLXZsYS1w YXNzZWQKKysgIHZsYSgyKSA9IDIKKysgIHZsYSg0KSA9IDQKKysgIHZsYSg4KSA9IDgKKysKKysg IGZ1bmMyID0gdmxhCisrZW5kIGZ1bmN0aW9uIGZ1bmMyCisrCisrcHJvZ3JhbSB2bGFfZnVuYwor KyAgaW1wbGljaXQgbm9uZQorKyAgaW50ZXJmYWNlCisrICAgIGxvZ2ljYWwgZnVuY3Rpb24gZnVu YzEgKHZsYSkKKysgICAgICBpbnRlZ2VyIDo6IHZsYSAoOiwgOikKKysgICAgZW5kIGZ1bmN0aW9u CisrICBlbmQgaW50ZXJmYWNlCisrICBpbnRlcmZhY2UKKysgICAgZnVuY3Rpb24gZnVuYzIgKHZs YSkKKysgICAgICBpbnRlZ2VyIDo6IHZsYSAoOikKKysgICAgICBpbnRlZ2VyIGZ1bmMyKHNpemUo dmxhKSkKKysgICAgZW5kIGZ1bmN0aW9uCisrICBlbmQgaW50ZXJmYWNlCisrCisrICBsb2dpY2Fs IDo6IHJldAorKyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmxhMSAoOiwgOikKKysgIGludGVn ZXIsIGFsbG9jYXRhYmxlIDo6IHZsYTIgKDopCisrICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2 bGEzICg6KQorKworKyAgcmV0ID0gLkZBTFNFLgorKworKyAgYWxsb2NhdGUgKHZsYTEgKDEwLDEw KSkKKysgIHZsYTEoOiw6KSA9IDIyCisrCisrICBhbGxvY2F0ZSAodmxhMiAoMTApKQorKyAgdmxh Mig6KSA9IDQ0CisrCisrICByZXQgPSBmdW5jMSh2bGExKQorKyAgdmxhMyA9IGZ1bmMyKHZsYTIp ICAgICAgICAgICEgZnVuYzEtcmV0dXJuZWQKKysKKysgIHJldCA9IC5UUlVFLiAgICAgICAgICAg ICAgICAhIGZ1bmMyLXJldHVybmVkCisrZW5kIHByb2dyYW0gdmxhX2Z1bmMKK0luZGV4OiBnZGIt Ny4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhw Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtc3RyaWRlLmV4cAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAorQEAg LTAsMCArMSw0NCBAQAorKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisr IyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK3N0YW5kYXJkX3Rl c3RmaWxlICIuZjkwIgorKworK2lmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgJHt0ZXN0ZmlsZX0u ZXhwICR7dGVzdGZpbGV9ICR7c3JjZmlsZX0gXAorKyAgICB7ZGVidWcgZjkwIHF1aWV0fV0gfSB7 CisrICAgIHJldHVybiAtMQorK30KKysKKytpZiAhW3J1bnRvIE1BSU5fX10gdGhlbiB7CisrICAg IHBlcnJvciAiY291bGRuJ3QgcnVuIHRvIGJyZWFrcG9pbnQgTUFJTl9fIgorKyAgICBjb250aW51 ZQorK30KKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAicmUtcmV2ZXJz ZS1lbGVtZW50cyJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInJlLXJldmVyc2UtZWxl bWVudHMiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMiwgMywgNCwgNSwgNiwg NywgOCwgOSwgMTBcXFwpIiBcCisrICAicHJpbnQgcmUtcmV2ZXJzZS1lbGVtZW50cyIKKytnZGJf dGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDEiICJwcmludCBmaXJzdCByZS1yZXZlcnNlLWVsZW1l bnQiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEoMTApIiAiID0gMTAiICJwcmludCBsYXN0IHJlLXJl dmVyc2UtZWxlbWVudCIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAi b2RkLWVsZW1lbnRzIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAib2RkLWVsZW1lbnRz IgorK2dkYl90ZXN0ICJwcmludCBwdmxhIiAiID0gXFxcKDEsIDMsIDUsIDcsIDlcXFwpIiAicHJp bnQgb2RkLWVsZW1lbnRzIgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50 IGZpcnN0IG9kZC1lbGVtZW50IgorK2dkYl90ZXN0ICJwcmludCBwdmxhKDUpIiAiID0gOSIgInBy aW50IGxhc3Qgb2RkLWVsZW1lbnQiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9u dW1iZXIgInNpbmdsZS1lbGVtZW50Il0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAic2lu Z2xlLWVsZW1lbnQiCisrZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoNVxcXCkiICJwcmlu dCBzaW5nbGUtZWxlbWVudCIKKytnZGJfdGVzdCAicHJpbnQgcHZsYSgxKSIgIiA9IDUiICJwcmlu dCBvbmUgc2luZ2xlLWVsZW1lbnQiCitJbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5MAorPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIC9kZXYv bnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAorKysrIGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAxNi0w MS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAxMDAKK0BAIC0wLDAgKzEsMzAgQEAKKyshIENvcHly aWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyEKKyshIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisrISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyEgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyshIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrIQorKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrISBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyEgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyEgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyshCisrISBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg U29mdHdhcmUKKyshIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz MCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisrCisrcHJvZ3JhbSB2bGFfc3RyaWRlCisr ICBpbnRlZ2VyLCB0YXJnZXQsIGFsbG9jYXRhYmxlIDo6IHZsYSAoOikKKysgIGludGVnZXIsIHBv aW50ZXIgOjogcHZsYSAoOikKKysKKysgIGFsbG9jYXRlKHZsYSgxMCkpCisrICB2bGEgPSAoLyAo SSwgSSA9IDEsMTApIC8pCisrCisrICBwdmxhID0+IHZsYSgxMDoxOi0xKQorKyAgcHZsYSA9PiBw dmxhKDEwOjE6LTEpCisrICBwdmxhID0+IHZsYSgxOjEwOjIpICAgISByZS1yZXZlcnNlLWVsZW1l bnRzCisrICBwdmxhID0+IHZsYSg1OjQ6LTIpICAgISBvZGQtZWxlbWVudHMKKysKKysgIHB2bGEg PT4gbnVsbCgpICAgICAgICAhIHNpbmdsZS1lbGVtZW50CisrZW5kIHByb2dyYW0gdmxhX3N0cmlk ZQorSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXN0cmluZ3NvbGQuZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEg MDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCisrKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5nc29sZC5leHAJMjAxNi0wMS0wOCAxOToxNTo0 NC45ODQ2Mzc2ODYgKzAxMDAKK0BAIC0wLDAgKzEsMTAxIEBACisrIyBDb3B5cmlnaHQgMjAxNCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisrCisrc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCisrCisraWYgeyBbcHJlcGFyZV9m b3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCisrICAg IHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKKysgICAgcmV0dXJuIC0xCisrfQorKworKyMgY2hlY2sg dGhhdCBhbGwgZm9ydHJhbiBzdGFuZGFyZCBkYXRhdHlwZXMgd2lsbCBiZQorKyMgaGFuZGxlZCBj b3JyZWN0bHkgd2hlbiB1c2luZyBhcyBWTEEncworKworK2lmICFbcnVudG8gTUFJTl9fXSB0aGVu IHsKKysgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCisrICAg IGNvbnRpbnVlCisrfQorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2 YXJfY2hhci1hbGxvY2F0ZWQtMSJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9j aGFyLWFsbG9jYXRlZC0xIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9IFxc KFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50 IHZhcl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0aXMg dmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXCkiIFwKKysg ICJ3aGF0aXMgdmFyX2NoYXIgZmlyc3QgdGltZSIKKytnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIi ICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXCkiIFwKKysgICJwdHlwZSB2 YXJfY2hhciBmaXJzdCB0aW1lIgorK2dkYl90ZXN0ICJuZXh0IiAiXFxkKy4qdmFyX2NoYXIgPSAn Zm9vJy4qIiBcCisrICAibmV4dCB0byBhbGxvY2F0aW9uIHN0YXR1cyBvZiB2YXJfY2hhciIKKytn ZGJfdGVzdCAicHJpbnQgbCIgIiA9IC5UUlVFLiIgInByaW50IGFsbG9jYXRpb24gc3RhdHVzIGZp cnN0IHRpbWUiCisrCisrZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9j aGFyLWZpbGxlZC0xIl0KKytnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZmls bGVkLTEiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCisrICAiID0gXFwoUFRSIFRPIC0+ IFxcKCBjaGFyYWN0ZXJcXCozIFxcKVxcKSAke2hleH0iIFwKKysgICJwcmludCB2YXJfY2hhciBh ZnRlciBmaWxsZWQgZmlyc3QgdGltZSIKKytnZGJfdGVzdCAicHJpbnQgKnZhcl9jaGFyIiAiID0g J2ZvbyciIFwKKysgICJwcmludCAqdmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRpbWUiCisr Z2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3Rl clxcKjMgXFwpIiBcCisrICAid2hhdGlzIHZhcl9jaGFyIGFmdGVyIGZpbGxlZCBmaXJzdCB0aW1l IgorK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJh Y3RlclxcKjMgXFwpIiBcCisrICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRp bWUiCisrZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyKDEpIiAiID0gMTAyICdmJyIgInByaW50IHZh cl9jaGFyKDEpIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhcigzKSIgIiA9IDExMSAnbyciICJw cmludCB2YXJfY2hhcigzKSIKKysKKytnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJl ciAidmFyX2NoYXItZmlsbGVkLTIiXQorK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJf Y2hhci1maWxsZWQtMiIKKytnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIiIFwKKysgICIgPSBcXChQ VFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZh cl9jaGFyIGFmdGVyIGFsbG9jYXRlZCBzZWNvbmQgdGltZSIKKytnZGJfdGVzdCAicHJpbnQgKnZh cl9jaGFyIiAiID0gJ2Zvb2JhciciIFwKKysgICJwcmludCAqdmFyX2NoYXIgYWZ0ZXIgYWxsb2Nh dGVkIHNlY29uZCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRS IFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo2IFxcKSIgXAorKyAgIndoYXRpcyB2YXJfY2hhciBzZWNv bmQgdGltZSIKKytnZGJfdGVzdCAicHR5cGUgdmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxc KCBjaGFyYWN0ZXJcXCo2IFxcKSIgXAorKyAgInB0eXBlIHZhcl9jaGFyIHNlY29uZCB0aW1lIgor KworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1lbXB0eSJd CisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWVtcHR5IgorK2dkYl90ZXN0 ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwq MCBcXClcXCkgJHtoZXh9IiBcCisrICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVtcHR5Igor K2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICIgPSBcIlwiIiAicHJpbnQgKnZhcl9jaGFyIGFm dGVyIHNldCBlbXB0eSIKKytnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBU TyAtPiBcXCggY2hhcmFjdGVyXFwqMCBcXCkiIFwKKysgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIg c2V0IGVtcHR5IgorK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4g XFwoIGNoYXJhY3RlclxcKjAgXFwpIiBcCisrICAicHR5cGUgdmFyX2NoYXIgYWZ0ZXIgc2V0IGVt cHR5IgorKworK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YXJfY2hhci1h bGxvY2F0ZWQtMyJdCisrZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyLWFsbG9j YXRlZC0zIgorK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAorKyAgIiA9IFxcKFBUUiBUTyAt PiBcXCggY2hhcmFjdGVyXFwqMjEgXFwpXFwpICR7aGV4fSIgXAorKyAgInByaW50IHZhcl9jaGFy IGFmdGVyIGFsbG9jYXRlZCB0aGlyZCB0aW1lIgorK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIi ICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXCkiIFwKKysgICJ3aGF0aXMg dmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRpbWUiCisrZ2RiX3Rlc3QgInB0eXBlIHZh cl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMjEgXFwpIiBcCisrICAi cHR5cGUgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRpbWUiCisrCisrZ2RiX2JyZWFr cG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyX3AtYXNzb2NpYXRlZCJdCisrZ2Ri X2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZhcl9jaGFyX3AtYXNzb2NpYXRlZCIKKytnZGJfdGVz dCAicHJpbnQgdmFyX2NoYXJfcCIgXAorKyAgIiA9IFxcKFBUUiBUTyAtPiBcXCggY2hhcmFjdGVy XFwqNyBcXClcXCkgJHtoZXh9IiBcCisrICAicHJpbnQgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lh dGVkIgorK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXJfcCIgIiA9ICdqb2huZG9lJyIgXAorKyAg InByaW50ICp2YXJfY2hhcl8gYWZ0ZXIgYXNzb2NpYXRlZCIKKytnZGJfdGVzdCAid2hhdGlzIHZh cl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAorKyAg IndoYXRpcyB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0ZWQiCisrZ2RiX3Rlc3QgInB0eXBlIHZh cl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCo3IFxcKSIgXAorKyAg InB0eXBlIHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKK0luZGV4OiBnZGItNy4xMC41MC4y MDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzb2xkLmY5MAorPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAw MAorKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxh LXN0cmluZ3NvbGQuZjkwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICswMTAwCitAQCAt MCwwICsxLDQwIEBACisrISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKyshCisrISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyshIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisr ISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyEKKyshIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyEg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKyshIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisrIQorKyEgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBu b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisrISBGb3VuZGF0aW9uLCBJbmMuLCA1OSBU ZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorKwor K3Byb2dyYW0gdmxhX3N0cmluZ3MKKysgIGNoYXJhY3RlcihsZW49OiksIHRhcmdldCwgYWxsb2Nh dGFibGUgICA6OiB2YXJfY2hhcgorKyAgY2hhcmFjdGVyKGxlbj06KSwgcG9pbnRlciAgICAgICAg ICAgICAgIDo6IHZhcl9jaGFyX3AKKysgIGxvZ2ljYWwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6OiBsCisrCisrICBhbGxvY2F0ZShjaGFyYWN0ZXIobGVuPTEwKSA6OiB2YXJfY2hh cikKKysgIGwgPSBhbGxvY2F0ZWQodmFyX2NoYXIpICAgICAgICAgICAgICAgICAhIHZhcl9jaGFy LWFsbG9jYXRlZC0xCisrICB2YXJfY2hhciA9ICdmb28nCisrICBkZWFsbG9jYXRlKHZhcl9jaGFy KSAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1maWxsZWQtMQorKyAgbCA9IGFsbG9jYXRl ZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZGVhbGxvY2F0ZWQKKysgIGFs bG9jYXRlKGNoYXJhY3RlcihsZW49NDIpIDo6IHZhcl9jaGFyKQorKyAgbCA9IGFsbG9jYXRlZCh2 YXJfY2hhcikKKysgIHZhcl9jaGFyID0gJ2Zvb2JhcicKKysgIHZhcl9jaGFyID0gJycgICAgICAg ICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWZpbGxlZC0yCisrICB2YXJfY2hhciA9ICdi YXInICAgICAgICAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1lbXB0eQorKyAgZGVhbGxvY2F0 ZSh2YXJfY2hhcikKKysgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MjEpIDo6IHZhcl9jaGFyKQor KyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxs b2NhdGVkLTMKKysgIHZhcl9jaGFyID0gJ2pvaG5kb2UnCisrICB2YXJfY2hhcl9wID0+IHZhcl9j aGFyCisrICBsID0gYXNzb2NpYXRlZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hh cl9wLWFzc29jaWF0ZWQKKysgIHZhcl9jaGFyX3AgPT4gbnVsbCgpCisrICBsID0gYXNzb2NpYXRl ZCh2YXJfY2hhcl9wKSAgICAgICAgICAgICAgISB2YXJfY2hhcl9wLW5vdC1hc3NvY2lhdGVkCisr ZW5kIHByb2dyYW0gdmxhX3N0cmluZ3MKCmRpZmYgLS1naXQgYS9nZGItdmxhLWludGVsLnBhdGNo IGIvZ2RiLXZsYS1pbnRlbC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRm NmIyMy4uMDAwMDAwMAotLS0gYS9nZGItdmxhLWludGVsLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTQ4MCArMCwwIEBACi1bUEFUQ0ggMDAvMjNdIEZvcnRyYW4gZHluYW1pYyBhcnJheSBzdXBw b3J0Ci1odHRwczovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTQtMDYvbXNnMDAx MDguaHRtbAotaHR0cHM6Ly9naXRodWIuY29tL2ludGVsLWdkYi92bGEvdHJlZS92bGEtZm9ydHJh bgotCi1HSVQgc25hcHNob3Q6Ci1jb21taXQgNTExYmZmNTIwMzcyZmZjMTBmYTJmZjU2OWMxNzZi ZGYxZTZlNDc1ZAotCi0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvYy12YWxwcmlu dC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIvYy12YWxw cmludC5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDY1NTgyMzU5ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL2MtdmFscHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk3NDYzNzYz MCArMDEwMAotQEAgLTY0Miw3ICs2NDIsMTYgQEAKLSAJewotIAkgIC8qIG5vcm1hbCBjYXNlICov Ci0gCSAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKCIpOwotLQkgIHR5cGVfcHJpbnQgKHZh bHVlX3R5cGUgKHZhbCksICIiLCBzdHJlYW0sIC0xKTsKLSsJICBpZiAoaXNfZHluYW1pY190eXBl IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkpCi0rCSAgICB7Ci0rCSAgICAgIHN0cnVjdCB2YWx1 ZSAqdjsKLSsKLSsJICAgICAgdiA9IHZhbHVlX2luZCAodmFsKTsKLSsJICAgICAgdiA9IHZhbHVl X2FkZHIgKHYpOwotKwkgICAgICB0eXBlX3ByaW50ICh2YWx1ZV90eXBlICh2KSwgIiIsIHN0cmVh bSwgLTEpOwotKwkgICAgfQotKwkgIGVsc2UKLSsJICAgIHR5cGVfcHJpbnQgKHZhbHVlX3R5cGUg KHZhbCksICIiLCBzdHJlYW0sIC0xKTsKLSAJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIp ICIpOwotIAl9Ci0gICAgIH0KLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYy bG9jLmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi9kd2Fy ZjJsb2MuaAkyMDE2LTAxLTA4IDE5OjE1OjM1LjA2NjU4MjM2NSArMDEwMAotKysrIGdkYi03LjEw LjUwLjIwMTYwMTA2L2dkYi9kd2FyZjJsb2MuaAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk3NDYzNzYz MCArMDEwMAotQEAgLTEzOCw2ICsxMzgsMTEgQEAKLSAJCQkgICAgICBzdHJ1Y3QgcHJvcGVydHlf YWRkcl9pbmZvICphZGRyX3N0YWNrLAotIAkJCSAgICAgIENPUkVfQUREUiAqdmFsdWUpOwotIAot Ky8qIENoZWNrcyBpZiBhIGR3YXJmIGxvY2F0aW9uIGRlZmluaXRpb24gaXMgdmFsaWQuCi0rICAg UmV0dXJucyAxIGlmIHZhbGlkOyAwIG90aGVyd2lzZS4gICovCi0rCi0rZXh0ZXJuIGludCBkd2Fy ZjJfYWRkcmVzc19kYXRhX3ZhbGlkIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSk7Ci0rCi0gLyog QSBoZWxwZXIgZm9yIHRoZSBjb21waWxlciBpbnRlcmZhY2UgdGhhdCBjb21waWxlcyBhIHNpbmds ZSBkeW5hbWljCi0gICAgcHJvcGVydHkgdG8gQyBjb2RlLgotIAotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi9kd2FyZjJyZWFkLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4y MDE2MDEwNi5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxNi0wMS0wOCAxOToxNTozNS4wNzg1ODI0 MzIgKzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZHdhcmYycmVhZC5jCTIwMTYt MDEtMDggMTk6MTU6NDQuOTgwNjM3NjYzICswMTAwCi1AQCAtMTc0NSw3ICsxNzQ1LDkgQEAKLSAK LSBzdGF0aWMgaW50IGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmlidXRl ICphdHRyLAotIAkJCQkgc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 LAotLQkJCQkgc3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCk7Ci0rCQkJCSBzdHJ1Y3QgZHluYW1p Y19wcm9wICpwcm9wLAotKwkJCQkgY29uc3QgZ2RiX2J5dGUgKmFkZGl0aW9uYWxfZGF0YSwKLSsJ CQkJIGludCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0gCi0gLyogbWVtb3J5IGFsbG9jYXRpb24g aW50ZXJmYWNlICovCi0gCi1AQCAtMTE0MjAsNyArMTE0MjIsNyBAQAotICAgICB7Ci0gICAgICAg bmV3b2JqLT5zdGF0aWNfbGluawotIAk9IFhPQk5FVyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFj aywgc3RydWN0IGR5bmFtaWNfcHJvcCk7Ci0tICAgICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0 dHIsIGRpZSwgY3UsIG5ld29iai0+c3RhdGljX2xpbmspOwotKyAgICAgIGF0dHJfdG9fZHluYW1p Y19wcm9wIChhdHRyLCBkaWUsIGN1LCBuZXdvYmotPnN0YXRpY19saW5rLCBOVUxMLCAwKTsKLSAg ICAgfQotIAotICAgY3UtPmxpc3RfaW5fc2NvcGUgPSAmbG9jYWxfc3ltYm9sczsKLUBAIC0xNDQ3 MSwyOSArMTQ0NzMsOTIgQEAKLSAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZp bGVfYXJjaCAob2JqZmlsZSk7Ci0gICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICpp bmRleF90eXBlLCAqY2hhcl90eXBlOwotICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKLS0gIHVu c2lnbmVkIGludCBsZW5ndGg7Ci0rICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0gVUlOVF9NQVg7Ci0g Ci0rICBpbmRleF90eXBlID0gb2JqZmlsZV90eXBlIChvYmpmaWxlKS0+YnVpbHRpbl9pbnQ7Ci0r ICByYW5nZV90eXBlID0gY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChOVUxMLCBpbmRleF90eXBl LCAxLCBsZW5ndGgpOwotKwotKyAgLyogSWYgRFdfQVRfc3RyaW5nX2xlbmd0aCBpcyBkZWZpbmVk LCB0aGUgbGVuZ3RoIGlzIHN0b3JlZCBhdCBzb21lIGxvY2F0aW9uCi0rICAgKiBpbiBtZW1vcnku ICovCi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfc3RyaW5nX2xlbmd0aCwgY3Up OwotICAgaWYgKGF0dHIpCi0gICAgIHsKLS0gICAgICBsZW5ndGggPSBEV19VTlNORCAoYXR0cik7 Ci0rICAgICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCi0rICAgICAgICB7Ci0rICAg ICAgICAgIHN0cnVjdCBhdHRyaWJ1dGUgKmJ5dGVfc2l6ZSwgKmJpdF9zaXplOwotKyAgICAgICAg ICBzdHJ1Y3QgZHluYW1pY19wcm9wIGhpZ2g7Ci0rCi0rICAgICAgICAgIGJ5dGVfc2l6ZSA9IGR3 YXJmMl9hdHRyIChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOwotKyAgICAgICAgICBiaXRfc2l6 ZSA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX2JpdF9zaXplLCBjdSk7Ci0rCi0rICAgICAgICAg IC8qIERXX0FUX2J5dGVfc2l6ZSBzaG91bGQgbmV2ZXIgb2NjdXIgdG9nZXRoZXIgaW4gY29tYmlu YXRpb24gd2l0aAotKyAgICAgICAgICAgICBEV19BVF9zdHJpbmdfbGVuZ3RoLiAgKi8KLSsgICAg ICAgICAgaWYgKChieXRlX3NpemUgPT0gTlVMTCAmJiBiaXRfc2l6ZSAhPSBOVUxMKSB8fAotKyAg ICAgICAgICAgICAgICAgIChieXRlX3NpemUgIT0gTlVMTCAmJiBiaXRfc2l6ZSA9PSBOVUxMKSkK LSsgICAgICAgICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIkRXX0FUX2J5 dGVfc2l6ZSBBTkQgIgotKyAgICAgICAgICAgICAgICAgICAgICAiRFdfQVRfYml0X3NpemUgZm91 bmQgdG9nZXRoZXIgYXQgdGhlIHNhbWUgdGltZS4iKSk7Ci0rCi0rICAgICAgICAgIC8qIElmIERX X0FUX3N0cmluZ19sZW5ndGggQU5EIERXX0FUX2J5dGVfc2l6ZSBleGlzdCB0b2dldGhlciwgaXQK LSsgICAgICAgICAgICAgZGVzY3JpYmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCBzaG91bGQg YmUgcmVhZCBmcm9tIHRoZSBsZW5ndGgKLSsgICAgICAgICAgICAgbWVtb3J5IGxvY2F0aW9uLiAg Ki8KLSsgICAgICAgICAgaWYgKGJ5dGVfc2l6ZSAhPSBOVUxMICYmIGJpdF9zaXplID09IE5VTEwp Ci0rICAgICAgICAgICAgewotKyAgICAgICAgICAgICAgLyogQnVpbGQgbmV3IGR3YXJmMl9sb2Nl eHByX2JhdG9uIHN0cnVjdHVyZSB3aXRoIGFkZGl0aW9ucyB0byB0aGUKLSsgICAgICAgICAgICAg ICAgIGRhdGEgYXR0cmlidXRlLCB0byByZWZsZWN0IERXQVJGIHNwZWNpYWxpdGllcyB0byBnZXQg YWRkcmVzcwotKyAgICAgICAgICAgICAgICAgc2l6ZXMuICAqLwotKyAgICAgICAgICAgICAgY29u c3QgZ2RiX2J5dGUgYXBwZW5kX29wc1tdID0gewotKyAgICAgICAgICAgICAgICAvKiBEV19PUF9k ZXJlZl9zaXplOiBzaXplIG9mIGFuIGFkZHJlc3Mgb24gdGhlIHRhcmdldCBtYWNoaW5lCi0rICAg ICAgICAgICAgICAgICAgIChieXRlcyksIHdoZXJlIHRoZSBzaXplIHdpbGwgYmUgc3BlY2lmaWVk IGJ5IHRoZSBuZXh0Ci0rICAgICAgICAgICAgICAgICAgIG9wZXJhbmQuICAqLwotKyAgICAgICAg ICAgICAgICBEV19PUF9kZXJlZl9zaXplLAotKyAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIGZv ciBEV19PUF9kZXJlZl9zaXplLiAgKi8KLSsgICAgICAgICAgICAgICAgRFdfVU5TTkQgKGJ5dGVf c2l6ZSkgfTsKLSsKLSsgICAgICAgICAgICAgIGlmICghYXR0cl90b19keW5hbWljX3Byb3AgKGF0 dHIsIGRpZSwgY3UsICZoaWdoLAotKyAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRfb3BzLCBB UlJBWV9TSVpFIChhcHBlbmRfb3BzKSkpCi0rICAgICAgICAgICAgICAgIGNvbXBsYWludCAoJnN5 bWZpbGVfY29tcGxhaW50cywKLSsgICAgICAgICAgICAgICAgICAgICAgICBfKCJDb3VsZCBub3Qg cGFyc2UgRFdfQVRfYnl0ZV9zaXplIikpOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgZWxz ZSBpZiAoYml0X3NpemUgIT0gTlVMTCAmJiBieXRlX3NpemUgPT0gTlVMTCkKLSsgICAgICAgICAg ICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIkRXX0FUX3N0cmluZ19sZW5ndGgg QU5EICIKLSsgICAgICAgICAgICAgICAgICAgICAgIkRXX0FUX2JpdF9zaXplIGZvdW5kIGJ1dCBu b3Qgc3VwcG9ydGVkIHlldC4iKSk7Ci0rICAgICAgICAgIC8qIElmIERXX0FUX3N0cmluZ19sZW5n dGggV0lUSE9VVCBEV19BVF9ieXRlX3NpemUgZXhpc3QsIHRoZSBkZWZhdWx0Ci0rICAgICAgICAg ICAgIGlzIHRoZSBhZGRyZXNzIHNpemUgb2YgdGhlIHRhcmdldCBtYWNoaW5lLiAgKi8KLSsgICAg ICAgICAgZWxzZQotKyAgICAgICAgICAgIHsKLSsgICAgICAgICAgICAgIGNvbnN0IGdkYl9ieXRl IGFwcGVuZF9vcHNbXSA9IHsgRFdfT1BfZGVyZWYgfTsKLSsKLSsgICAgICAgICAgICAgIGlmICgh YXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZoaWdoLCBhcHBlbmRfb3BzLAot KyAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9TSVpFIChhcHBlbmRfb3BzKSkpCi0rICAgICAg ICAgICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLSsgICAgICAgICAgICAg ICAgICAgICAgICBfKCJDb3VsZCBub3QgcGFyc2UgRFdfQVRfc3RyaW5nX2xlbmd0aCIpKTsKLSsg ICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgIFRZUEVfUkFOR0VfREFUQSAocmFuZ2VfdHlwZSkt PmhpZ2ggPSBoaWdoOwotKyAgICAgICAgfQotKyAgICAgIGVsc2UKLSsgICAgICAgIHsKLSsgICAg ICAgICAgVFlQRV9ISUdIX0JPVU5EIChyYW5nZV90eXBlKSA9IERXX1VOU05EIChhdHRyKTsKLSsg ICAgICAgICAgVFlQRV9ISUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5cGUpID0gUFJPUF9DT05TVDsK LSsgICAgICAgIH0KLSAgICAgfQotICAgZWxzZQotICAgICB7Ci0tICAgICAgLyogQ2hlY2sgZm9y IHRoZSBEV19BVF9ieXRlX3NpemUgYXR0cmlidXRlLiAgKi8KLSsgICAgICAvKiBDaGVjayBmb3Ig dGhlIERXX0FUX2J5dGVfc2l6ZSBhdHRyaWJ1dGUsIHdoaWNoIHJlcHJlc2VudHMgdGhlIGxlbmd0 aAotKyAgICAgICAgIGluIHRoaXMgY2FzZS4gICovCi0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRy IChkaWUsIERXX0FUX2J5dGVfc2l6ZSwgY3UpOwotICAgICAgIGlmIChhdHRyKQotICAgICAgICAg ewotLSAgICAgICAgICBsZW5ndGggPSBEV19VTlNORCAoYXR0cik7Ci0rICAgICAgICAgIFRZUEVf SElHSF9CT1VORCAocmFuZ2VfdHlwZSkgPSBEV19VTlNORCAoYXR0cik7Ci0rICAgICAgICAgIFRZ UEVfSElHSF9CT1VORF9LSU5EIChyYW5nZV90eXBlKSA9IFBST1BfQ09OU1Q7Ci0gICAgICAgICB9 Ci0gICAgICAgZWxzZQotICAgICAgICAgewotLSAgICAgICAgICBsZW5ndGggPSAxOwotKyAgICAg ICAgICBUWVBFX0hJR0hfQk9VTkQgKHJhbmdlX3R5cGUpID0gMTsKLSsgICAgICAgICAgVFlQRV9I SUdIX0JPVU5EX0tJTkQgKHJhbmdlX3R5cGUpID0gUFJPUF9DT05TVDsKLSAgICAgICAgIH0KLSAg ICAgfQotIAotLSAgaW5kZXhfdHlwZSA9IG9iamZpbGVfdHlwZSAob2JqZmlsZSktPmJ1aWx0aW5f aW50OwotLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoTlVMTCwgaW5k ZXhfdHlwZSwgMSwgbGVuZ3RoKTsKLSAgIGNoYXJfdHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFy X3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBnZGJhcmNoKTsKLSAgIHR5cGUgPSBjcmVhdGVfc3Ry aW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwgcmFuZ2VfdHlwZSk7Ci0gCi1AQCAtMTQ4MTYsMTMg KzE0ODgxLDE1IEBACi0gICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHR5cGUsIGN1KTsKLSB9 Ci0gCi0rCi0gLyogUGFyc2UgZHdhcmYgYXR0cmlidXRlIGlmIGl0J3MgYSBibG9jaywgcmVmZXJl bmNlIG9yIGNvbnN0YW50IGFuZCBwdXQgdGhlCi0gICAgcmVzdWx0aW5nIHZhbHVlIG9mIHRoZSBh dHRyaWJ1dGUgaW50byBzdHJ1Y3QgYm91bmRfcHJvcC4KLSAgICBSZXR1cm5zIDEgaWYgQVRUUiBj b3VsZCBiZSByZXNvbHZlZCBpbnRvIFBST1AsIDAgb3RoZXJ3aXNlLiAgKi8KLSAKLSBzdGF0aWMg aW50Ci0gYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIs IHN0cnVjdCBkaWVfaW5mbyAqZGllLAotLQkJICAgICAgc3RydWN0IGR3YXJmMl9jdSAqY3UsIHN0 cnVjdCBkeW5hbWljX3Byb3AgKnByb3ApCi0rCQkgICAgICBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwg c3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcCwKLSsJCSAgICAgIGNvbnN0IGdkYl9ieXRlICphZGRp dGlvbmFsX2RhdGEsIGludCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSkKLSB7Ci0gICBzdHJ1Y3QgZHdh cmYyX3Byb3BlcnR5X2JhdG9uICpiYXRvbjsKLSAgIHN0cnVjdCBvYnN0YWNrICpvYnN0YWNrID0g JmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2s7Ci1AQCAtMTQ4MzUsOCArMTQ5MDIsMjUgQEAK LSAgICAgICBiYXRvbiA9IFhPQk5FVyAob2JzdGFjaywgc3RydWN0IGR3YXJmMl9wcm9wZXJ0eV9i YXRvbik7Ci0gICAgICAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7Ci0gICAgICAgYmF0 b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKLS0gICAgICBiYXRvbi0+bG9jZXhwci5z aXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOwotLSAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEg PSBEV19CTE9DSyAoYXR0ciktPmRhdGE7Ci0rCi0rICAgICAgaWYgKGFkZGl0aW9uYWxfZGF0YSAh PSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXplID4gMCkKLSsgICAgICAgIHsKLSsgICAgICAg ICAgZ2RiX2J5dGUgKmRhdGE7Ci0rCi0rICAgICAgICAgIGRhdGEgPSBvYnN0YWNrX2FsbG9jICgm Y3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLSsgICAgICAgICAgICAgICAgICBEV19CTE9D SyAoYXR0ciktPnNpemUgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rICAgICAgICAgIG1lbWNw eSAoZGF0YSwgRFdfQkxPQ0sgKGF0dHIpLT5kYXRhLCBEV19CTE9DSyAoYXR0ciktPnNpemUpOwot KyAgICAgICAgICBtZW1jcHkgKGRhdGEgKyBEV19CTE9DSyAoYXR0ciktPnNpemUsCi0rICAgICAg ICAgICAgICAgICAgYWRkaXRpb25hbF9kYXRhLCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rCi0r ICAgICAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOwotKyAgICAgICAgICBiYXRvbi0+ bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplICsgYWRkaXRpb25hbF9kYXRhX3Np emU7Ci0rICAgICAgICB9Ci0rICAgICAgZWxzZQotKyAgICAgICAgewotKyAgICAgICAgICBiYXRv bi0+bG9jZXhwci5kYXRhID0gRFdfQkxPQ0sgKGF0dHIpLT5kYXRhOwotKyAgICAgICAgICBiYXRv bi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKGF0dHIpLT5zaXplOwotKyAgICAgICAgfQotICAg ICAgIHByb3AtPmRhdGEuYmF0b24gPSBiYXRvbjsKLSAgICAgICBwcm9wLT5raW5kID0gUFJPUF9M T0NFWFBSOwotICAgICAgIGdkYl9hc3NlcnQgKHByb3AtPmRhdGEuYmF0b24gIT0gTlVMTCk7Ci1A QCAtMTQ4NzIsOCArMTQ5NTYsMjggQEAKLSAJCWJhdG9uID0gWE9CTkVXIChvYnN0YWNrLCBzdHJ1 Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uKTsKLSAJCWJhdG9uLT5yZWZlcmVuY2VkX3R5cGUgPSBk aWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0X2N1KTsKLSAJCWJhdG9uLT5sb2NleHByLnBlcl9j dSA9IGN1LT5wZXJfY3U7Ci0tCQliYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKHRhcmdl dF9hdHRyKS0+c2l6ZTsKLS0JCWJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0 X2F0dHIpLT5kYXRhOwotKwotKwkJaWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0 aW9uYWxfZGF0YV9zaXplID4gMCkKLSsJCSAgewotKwkJICAgIGdkYl9ieXRlICpkYXRhOwotKwot KwkJICAgIGRhdGEgPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFj aywKLSsJCQkgICAgRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZSArIGFkZGl0aW9uYWxfZGF0 YV9zaXplKTsKLSsJCSAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPmRh dGEsCi0rCQkJICAgIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUpOwotKwkJICAgIG1lbWNw eSAoZGF0YSArIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUsCi0rCQkJICAgIGFkZGl0aW9u YWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX3NpemUpOwotKwotKwkJICAgIGJhdG9uLT5sb2NleHBy LmRhdGEgPSBkYXRhOwotKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSAoRFdfQkxPQ0sgKHRh cmdldF9hdHRyKS0+c2l6ZQotKwkJCQkJICAgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rCQkg IH0KLSsJCWVsc2UKLSsJCSAgewotKwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9D SyAodGFyZ2V0X2F0dHIpLT5kYXRhOwotKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBEV19C TE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOwotKwkJICB9Ci0rCi0gCQlwcm9wLT5kYXRhLmJhdG9u ID0gYmF0b247Ci0gCQlwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOwotIAkJZ2RiX2Fzc2VydCAo cHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKLUBAIC0xNDkyNyw3ICsxNTAzMSw3IEBACi0gICBz dHJ1Y3QgdHlwZSAqYmFzZV90eXBlLCAqb3JpZ19iYXNlX3R5cGU7Ci0gICBzdHJ1Y3QgdHlwZSAq cmFuZ2VfdHlwZTsKLSAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7Ci0tICBzdHJ1Y3QgZHluYW1p Y19wcm9wIGxvdywgaGlnaDsKLSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgbG93LCBoaWdoLCBzdHJp ZGU7Ci0gICBpbnQgbG93X2RlZmF1bHRfaXNfdmFsaWQ7Ci0gICBpbnQgaGlnaF9ib3VuZF9pc19j b3VudCA9IDA7Ci0gICBjb25zdCBjaGFyICpuYW1lOwotQEAgLTE0OTQ3LDcgKzE1MDUxLDkgQEAK LSAKLSAgIGxvdy5raW5kID0gUFJPUF9DT05TVDsKLSAgIGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7 Ci0rICBzdHJpZGUua2luZCA9IFBST1BfQ09OU1Q7Ci0gICBoaWdoLmRhdGEuY29uc3RfdmFsID0g MDsKLSsgIHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IDA7Ci0gCi0gICAvKiBTZXQgTE9XX0RFRkFV TFRfSVNfVkFMSUQgaWYgY3VycmVudCBsYW5ndWFnZSBhbmQgRFdBUkYgdmVyc2lvbiBhbGxvdwot ICAgICAgb21pdHRpbmcgRFdfQVRfbG93ZXJfYm91bmQuICAqLwotQEAgLTE0OTgwLDE5ICsxNTA4 NiwyNiBAQAotICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi0rICBhdHRyID0gZHdhcmYyX2F0dHIg KGRpZSwgRFdfQVRfYnl0ZV9zdHJpZGUsIGN1KTsKLSsgIGlmIChhdHRyKQotKyAgICBpZiAoIWF0 dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmc3RyaWRlLCBOVUxMLCAwKSkKLSsg ICAgICAgIGNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywgXygiTWlzc2luZyBEV19BVF9i eXRlX3N0cmlkZSAiCi0rICAgICAgICAgICAgICAgICAgIi0gRElFIGF0IDB4JXggW2luIG1vZHVs ZSAlc10iKSwKLSsgICAgICAgICAgICAgZGllLT5vZmZzZXQuc2VjdF9vZmYsIG9iamZpbGVfbmFt ZSAoY3UtPm9iamZpbGUpKTsKLSsKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9s b3dlcl9ib3VuZCwgY3UpOwotICAgaWYgKGF0dHIpCi0tICAgIGF0dHJfdG9fZHluYW1pY19wcm9w IChhdHRyLCBkaWUsIGN1LCAmbG93KTsKLSsgICAgYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIs IGRpZSwgY3UsICZsb3csIE5VTEwsIDApOwotICAgZWxzZSBpZiAoIWxvd19kZWZhdWx0X2lzX3Zh bGlkKQotICAgICBjb21wbGFpbnQgKCZzeW1maWxlX2NvbXBsYWludHMsIF8oIk1pc3NpbmcgRFdf QVRfbG93ZXJfYm91bmQgIgotIAkJCQkgICAgICAiLSBESUUgYXQgMHgleCBbaW4gbW9kdWxlICVz XSIpLAotIAkgICAgICAgZGllLT5vZmZzZXQuc2VjdF9vZmYsIG9iamZpbGVfbmFtZSAoY3UtPm9i amZpbGUpKTsKLSAKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF91cHBlcl9ib3Vu ZCwgY3UpOwotLSAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhp Z2gpKQotKyAgaWYgKCFhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJmhpZ2gs IE5VTEwsIDApKQotICAgICB7Ci0gICAgICAgYXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FU X2NvdW50LCBjdSk7Ci0tICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUs IGN1LCAmaGlnaCkpCi0rICAgICAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUs IGN1LCAmaGlnaCwgTlVMTCwgMCkpCi0gCXsKLSAJICAvKiBJZiBib3VuZHMgYXJlIGNvbnN0YW50 IGRvIHRoZSBmaW5hbCBjYWxjdWxhdGlvbiBoZXJlLiAgKi8KLSAJICBpZiAobG93LmtpbmQgPT0g UFJPUF9DT05TVCAmJiBoaWdoLmtpbmQgPT0gUFJPUF9DT05TVCkKLUBAIC0xNTA1Niw3ICsxNTE2 OSw3IEBACi0gICAgICAgJiYgIVRZUEVfVU5TSUdORUQgKGJhc2VfdHlwZSkgJiYgKGhpZ2guZGF0 YS5jb25zdF92YWwgJiBuZWdhdGl2ZV9tYXNrKSkKLSAgICAgaGlnaC5kYXRhLmNvbnN0X3ZhbCB8 PSBuZWdhdGl2ZV9tYXNrOwotIAotLSAgcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChO VUxMLCBvcmlnX2Jhc2VfdHlwZSwgJmxvdywgJmhpZ2gpOwotKyAgcmFuZ2VfdHlwZSA9IGNyZWF0 ZV9yYW5nZV90eXBlIChOVUxMLCBvcmlnX2Jhc2VfdHlwZSwgJmxvdywgJmhpZ2gsICZzdHJpZGUp OwotIAotICAgaWYgKGhpZ2hfYm91bmRfaXNfY291bnQpCi0gICAgIFRZUEVfUkFOR0VfREFUQSAo cmFuZ2VfdHlwZSktPmZsYWdfdXBwZXJfYm91bmRfaXNfY291bnQgPSAxOwotQEAgLTIyMzYwLDcg KzIyNDczLDcgQEAKLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9hbGxvY2F0ZWQs IGN1KTsKLSAgIGlmIChhdHRyX2Zvcm1faXNfYmxvY2sgKGF0dHIpKQotICAgICB7Ci0tICAgICAg aWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCkpCi0rICAgICAg aWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkp Ci0gICAgICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0FMTE9DQVRFRCwgcHJvcCwgdHlwZSwg b2JqZmlsZSk7Ci0gICAgIH0KLSAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjM3NSw3 ICsyMjQ4OCw3IEBACi0gICBhdHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfYXNzb2NpYXRl ZCwgY3UpOwotICAgaWYgKGF0dHJfZm9ybV9pc19ibG9jayAoYXR0cikpCi0gICAgIHsKLS0gICAg ICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wKSkKLSsgICAg ICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAw KSkKLSAgICAgICAgIGFkZF9keW5fcHJvcCAoRFlOX1BST1BfQVNTT0NJQVRFRCwgcHJvcCwgdHlw ZSwgb2JqZmlsZSk7Ci0gICAgIH0KLSAgIGVsc2UgaWYgKGF0dHIgIT0gTlVMTCkKLUBAIC0yMjM4 OCw3ICsyMjUwMSw3IEBACi0gCi0gICAvKiBSZWFkIERXX0FUX2RhdGFfbG9jYXRpb24gYW5kIHNl dCBpbiB0eXBlLiAgKi8KLSAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9kYXRhX2xv Y2F0aW9uLCBjdSk7Ci0tICBpZiAoYXR0cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3Us ICZwcm9wKSkKLSsgIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJvcCAoYXR0ciwgZGllLCBjdSwgJnBy b3AsIE5VTEwsIDApKQotICAgICBhZGRfZHluX3Byb3AgKERZTl9QUk9QX0RBVEFfTE9DQVRJT04s IHByb3AsIHR5cGUsIG9iamZpbGUpOwotIAotICAgaWYgKGR3YXJmMl9wZXJfb2JqZmlsZS0+ZGll X3R5cGVfaGFzaCA9PSBOVUxMKQotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9mLXR5 cGVwcmludC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYub3JpZy9nZGIv Zi10eXBlcHJpbnQuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4MDU4MjQ0MyArMDEwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi9mLXR5cGVwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6NDQu OTgwNjM3NjYzICswMTAwCi1AQCAtMzEsNiArMzEsNyBAQAotICNpbmNsdWRlICJ0YXJnZXQuaCIK LSAjaW5jbHVkZSAiZi1sYW5nLmgiCi0gI2luY2x1ZGUgInR5cGVwcmludC5oIgotKyNpbmNsdWRl ICJ2YWxwcmludC5oIgotIAotICNpZiAwCQkJCS8qIEN1cnJlbnRseSB1bnVzZWQuICAqLwotIHN0 YXRpYyB2b2lkIGZfdHlwZV9wcmludF9hcmdzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdWlfZmls ZSAqKTsKLUBAIC02NCw2ICs2NSwxNyBAQAotICAgICB7Ci0gICAgICAgdmFsX3ByaW50X25vdF9h bGxvY2F0ZWQgKHN0cmVhbSk7Ci0gICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICBpZiAoVFlQ RV9OT1RfQVNTT0NJQVRFRCAodHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxfcHJpbnRfbm90X2Fz c29jaWF0ZWQgKHN0cmVhbSk7Ci0rICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICBpZiAoVFlQRV9O T1RfQUxMT0NBVEVEICh0eXBlKSkKLSsgICAgewotKyAgICAgIHZhbF9wcmludF9ub3RfYWxsb2Nh dGVkIChzdHJlYW0pOwotKyAgICAgIHJldHVybjsKLSAgICAgfQotIAotICAgZl90eXBlX3ByaW50 X2Jhc2UgKHR5cGUsIHN0cmVhbSwgc2hvdywgbGV2ZWwpOwotSW5kZXg6IGdkYi03LjEwLjUwLjIw MTYwMTA2L2dkYi9mLXZhbHByaW50LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2 MDEwNi5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxNi0wMS0wOCAxOToxNTozNS4wODE1ODI0NDgg KzAxMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvZi12YWxwcmludC5jCTIwMTYtMDEt MDggMTk6MTU6NDQuOTgxNjM3NjY5ICswMTAwCi1AQCAtMzYsOCArMzYsNiBAQAotIAotIGV4dGVy biB2b2lkIF9pbml0aWFsaXplX2ZfdmFscHJpbnQgKHZvaWQpOwotIHN0YXRpYyB2b2lkIGluZm9f Y29tbW9uX2NvbW1hbmQgKGNoYXIgKiwgaW50KTsKLS1zdGF0aWMgdm9pZCBmNzdfY3JlYXRlX2Fy cmF5cHJpbnRfb2Zmc2V0X3RibCAoc3RydWN0IHR5cGUgKiwKLS0JCQkJCSAgICAgIHN0cnVjdCB1 aV9maWxlICopOwotIHN0YXRpYyB2b2lkIGY3N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVn YXRlIChzdHJ1Y3QgdHlwZSAqKTsKLSAKLSBpbnQgZjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZP UlRSQU5fRElNUyArIDFdWzJdOwotQEAgLTQ1LDE1ICs0Myw2IEBACi0gLyogQXJyYXkgd2hpY2gg aG9sZHMgb2Zmc2V0cyB0byBiZSBhcHBsaWVkIHRvIGdldCBhIHJvdydzIGVsZW1lbnRzCi0gICAg Zm9yIGEgZ2l2ZW4gYXJyYXkuICBBcnJheSBhbHNvIGhvbGRzIHRoZSBzaXplIG9mIGVhY2ggc3Vi YXJyYXkuICAqLwotIAotLS8qIFRoZSBmb2xsb3dpbmcgbWFjcm8gZ2l2ZXMgdXMgdGhlIHNpemUg b2YgdGhlIG50aCBkaW1lbnNpb24sIFdoZXJlIAotLSAgIG4gaXMgMSBiYXNlZC4gICovCi0tCi0t I2RlZmluZSBGNzdfRElNX1NJWkUobikgKGY3N19hcnJheV9vZmZzZXRfdGJsW25dWzFdKQotLQot LS8qIFRoZSBmb2xsb3dpbmcgZ2l2ZXMgdXMgdGhlIG9mZnNldCBmb3Igcm93IG4gd2hlcmUgbiBp cyAxLWJhc2VkLiAgKi8KLS0KLS0jZGVmaW5lIEY3N19ESU1fT0ZGU0VUKG4pIChmNzdfYXJyYXlf b2Zmc2V0X3RibFtuXVswXSkKLS0KLSBpbnQKLSBmNzdfZ2V0X2xvd2VyYm91bmQgKHN0cnVjdCB0 eXBlICp0eXBlKQotIHsKLUBAIC0xMTEsNDcgKzEwMCw2IEBACi0gICAgICogVFlQRV9MRU5HVEgg KGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKSk7Ci0gfQotIAotLS8qIEZ1 bmN0aW9uIHRoYXQgc2V0cyB1cCB0aGUgYXJyYXkgb2Zmc2V0LHNpemUgdGFibGUgZm9yIHRoZSBh cnJheSAKLS0gICB0eXBlICJ0eXBlIi4gICovCi0tCi0tc3RhdGljIHZvaWQKLS1mNzdfY3JlYXRl X2FycmF5cHJpbnRfb2Zmc2V0X3RibCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxl ICpzdHJlYW0pCi0tewotLSAgc3RydWN0IHR5cGUgKnRtcF90eXBlOwotLSAgaW50IGVsdGxlbjsK LS0gIGludCBuZGltZW4gPSAxOwotLSAgaW50IHVwcGVyLCBsb3dlcjsKLS0KLS0gIHRtcF90eXBl ID0gdHlwZTsKLS0KLS0gIHdoaWxlIChUWVBFX0NPREUgKHRtcF90eXBlKSA9PSBUWVBFX0NPREVf QVJSQVkpCi0tICAgIHsKLS0gICAgICB1cHBlciA9IGY3N19nZXRfdXBwZXJib3VuZCAodG1wX3R5 cGUpOwotLSAgICAgIGxvd2VyID0gZjc3X2dldF9sb3dlcmJvdW5kICh0bXBfdHlwZSk7Ci0tCi0t ICAgICAgRjc3X0RJTV9TSVpFIChuZGltZW4pID0gdXBwZXIgLSBsb3dlciArIDE7Ci0tCi0tICAg ICAgdG1wX3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0bXBfdHlwZSk7Ci0tICAgICAgbmRpbWVu Kys7Ci0tICAgIH0KLS0KLS0gIC8qIE5vdyB3ZSBtdWx0aXBseSBlbHRsZW4gYnkgYWxsIHRoZSBv ZmZzZXRzLCBzbyB0aGF0IGxhdGVyIHdlIAotLSAgICAgY2FuIHByaW50IG91dCBhcnJheSBlbGVt ZW50cyBjb3JyZWN0bHkuICBVcCB0aWxsIG5vdyB3ZSAKLS0gICAgIGtub3cgYW4gb2Zmc2V0IHRv IGFwcGx5IHRvIGdldCB0aGUgaXRlbSBidXQgd2UgYWxzbyAKLS0gICAgIGhhdmUgdG8ga25vdyBo b3cgbXVjaCB0byBhZGQgdG8gZ2V0IHRvIHRoZSBuZXh0IGl0ZW0uICAqLwotLQotLSAgbmRpbWVu LS07Ci0tICBlbHRsZW4gPSBUWVBFX0xFTkdUSCAodG1wX3R5cGUpOwotLSAgRjc3X0RJTV9PRkZT RVQgKG5kaW1lbikgPSBlbHRsZW47Ci0tICB3aGlsZSAoLS1uZGltZW4gPiAwKQotLSAgICB7Ci0t ICAgICAgZWx0bGVuICo9IEY3N19ESU1fU0laRSAobmRpbWVuICsgMSk7Ci0tICAgICAgRjc3X0RJ TV9PRkZTRVQgKG5kaW1lbikgPSBlbHRsZW47Ci0tICAgIH0KLS19Ci0tCi0tCi0tCi0gLyogQWN0 dWFsIGZ1bmN0aW9uIHdoaWNoIHByaW50cyBvdXQgRjc3IGFycmF5cywgVmFsYWRkciA9PSBhZGRy ZXNzIGluIAotICAgIHRoZSBzdXBlcmlvci4gIEFkZHJlc3MgPT0gdGhlIGFkZHJlc3MgaW4gdGhl IGluZmVyaW9yLiAgKi8KLSAKLUBAIC0xNjQsNDEgKzExMiw2MiBAQAotIAkJICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi0gCQkgICBpbnQgKmVsdHMpCi0gewot KyAgc3RydWN0IHR5cGUgKnJhbmdlX3R5cGUgPSBUWVBFX0lOREVYX1RZUEUgKGNoZWNrX3R5cGVk ZWYgKHR5cGUpKTsKLSsgIENPUkVfQUREUiBhZGRyID0gYWRkcmVzcyArIGVtYmVkZGVkX29mZnNl dDsKLSsgIExPTkdFU1QgbG93ZXJib3VuZCwgdXBwZXJib3VuZDsKLSAgIGludCBpOwotIAotKyAg Z2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd2VyYm91bmQsICZ1cHBlcmJvdW5k KTsKLSsKLSAgIGlmIChuc3MgIT0gbmRpbWVuc2lvbnMpCi0gICAgIHsKLS0gICAgICBmb3IgKGkg PSAwOwotLQkgICAoaSA8IEY3N19ESU1fU0laRSAobnNzKSAmJiAoKmVsdHMpIDwgb3B0aW9ucy0+ cHJpbnRfbWF4KTsKLSsgICAgICBzaXplX3QgZGltX3NpemU7Ci0rICAgICAgc2l6ZV90IG9mZnMg PSAwOwotKyAgICAgIExPTkdFU1QgYnl0ZV9zdHJpZGUgPSBhYnMgKFRZUEVfQllURV9TVFJJREUg KHJhbmdlX3R5cGUpKTsKLSsKLSsgICAgICBpZiAoYnl0ZV9zdHJpZGUpCi0rICAgICAgICBkaW1f c2l6ZSA9IGJ5dGVfc3RyaWRlOwotKyAgICAgIGVsc2UKLSsgICAgICAgIGRpbV9zaXplID0gVFlQ RV9MRU5HVEggKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKTsKLSsKLSsgICAgICBmb3IgKGkgPSBs b3dlcmJvdW5kOwotKwkgICAoaSA8IHVwcGVyYm91bmQgKyAxICYmICgqZWx0cykgPCBvcHRpb25z LT5wcmludF9tYXgpOwotIAkgICBpKyspCi0gCXsKLSsJICBzdHJ1Y3QgdmFsdWUgKnN1YmFycmF5 ID0gdmFsdWVfZnJvbV9jb250ZW50c19hbmRfYWRkcmVzcwotKwkgICAgKFRZUEVfVEFSR0VUX1RZ UEUgKHR5cGUpLCB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmdfY29uc3QgKHZhbCkKLSsJICAg ICArIG9mZnMsIGFkZHIgKyBvZmZzKTsKLSsKLSAJICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0s ICIoICIpOwotLQkgIGY3N19wcmludF9hcnJheV8xIChuc3MgKyAxLCBuZGltZW5zaW9ucywgVFlQ RV9UQVJHRVRfVFlQRSAodHlwZSksCi0tCQkJICAgICB2YWxhZGRyLAotLQkJCSAgICAgZW1iZWRk ZWRfb2Zmc2V0ICsgaSAqIEY3N19ESU1fT0ZGU0VUIChuc3MpLAotLQkJCSAgICAgYWRkcmVzcywK LS0JCQkgICAgIHN0cmVhbSwgcmVjdXJzZSwgdmFsLCBvcHRpb25zLCBlbHRzKTsKLSsJICBmNzdf cHJpbnRfYXJyYXlfMSAobnNzICsgMSwgbmRpbWVuc2lvbnMsIHZhbHVlX3R5cGUgKHN1YmFycmF5 KSwKLSsJCQkgICAgIHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAoc3ViYXJyYXkpLAotKwkJ CSAgICAgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChzdWJhcnJheSksCi0rCQkJICAgICB2YWx1ZV9h ZGRyZXNzIChzdWJhcnJheSksCi0rCQkJICAgICBzdHJlYW0sIHJlY3Vyc2UsIHN1YmFycmF5LCBv cHRpb25zLCBlbHRzKTsKLSsJICBvZmZzICs9IGRpbV9zaXplOwotIAkgIGZwcmludGZfZmlsdGVy ZWQgKHN0cmVhbSwgIikgIik7Ci0gCX0KLS0gICAgICBpZiAoKmVsdHMgPj0gb3B0aW9ucy0+cHJp bnRfbWF4ICYmIGkgPCBGNzdfRElNX1NJWkUgKG5zcykpIAotKyAgICAgIGlmICgqZWx0cyA+PSBv cHRpb25zLT5wcmludF9tYXggJiYgaSA8IHVwcGVyYm91bmQpCi0gCWZwcmludGZfZmlsdGVyZWQg KHN0cmVhbSwgIi4uLiIpOwotICAgICB9Ci0gICBlbHNlCi0gICAgIHsKLS0gICAgICBmb3IgKGkg PSAwOyBpIDwgRjc3X0RJTV9TSVpFIChuc3MpICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9t YXg7Ci0rICAgICAgZm9yIChpID0gbG93ZXJib3VuZDsgaSA8IHVwcGVyYm91bmQgKyAxICYmICgq ZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXg7Ci0gCSAgIGkrKywgKCplbHRzKSsrKQotIAl7Ci0t CSAgdmFsX3ByaW50IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwKLS0JCSAgICAgdmFsYWRkciwK LS0JCSAgICAgZW1iZWRkZWRfb2Zmc2V0ICsgaSAqIEY3N19ESU1fT0ZGU0VUIChuZGltZW5zaW9u cyksCi0tCQkgICAgIGFkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSwKLS0JCSAgICAgdmFsLCBvcHRp b25zLCBjdXJyZW50X2xhbmd1YWdlKTsKLSsJICBzdHJ1Y3QgdmFsdWUgKmVsdCA9IHZhbHVlX3N1 YnNjcmlwdCAoKHN0cnVjdCB2YWx1ZSAqKXZhbCwgaSk7Ci0rCi0rCSAgdmFsX3ByaW50ICh2YWx1 ZV90eXBlIChlbHQpLAotKwkJICAgICB2YWx1ZV9jb250ZW50c19mb3JfcHJpbnRpbmcgKGVsdCks Ci0rCQkgICAgIHZhbHVlX2VtYmVkZGVkX29mZnNldCAoZWx0KSwKLSsJCSAgICAgdmFsdWVfYWRk cmVzcyAoZWx0KSwgc3RyZWFtLCByZWN1cnNlLAotKwkJICAgICBlbHQsIG9wdGlvbnMsIGN1cnJl bnRfbGFuZ3VhZ2UpOwotIAotLQkgIGlmIChpICE9IChGNzdfRElNX1NJWkUgKG5zcykgLSAxKSkK LSsJICBpZiAoaSAhPSB1cHBlcmJvdW5kKQotIAkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFt LCAiLCAiKTsKLSAKLSAJICBpZiAoKCplbHRzID09IG9wdGlvbnMtPnByaW50X21heCAtIDEpCi0t CSAgICAgICYmIChpICE9IChGNzdfRElNX1NJWkUgKG5zcykgLSAxKSkpCi0rCSAgICAgICYmIChp ICE9IHVwcGVyYm91bmQpKQotIAkgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLi4uIik7 Ci0gCX0KLSAgICAgfQotQEAgLTIyNSwxMiArMTk0LDYgQEAKLSBUeXBlIG5vZGUgY29ycnVwdCEg Rjc3IGFycmF5cyBjYW5ub3QgaGF2ZSAlZCBzdWJzY3JpcHRzICglZCBNYXgpIiksCi0gCSAgIG5k aW1lbnNpb25zLCBNQVhfRk9SVFJBTl9ESU1TKTsKLSAKLS0gIC8qIFNpbmNlIEY3NyBhcnJheXMg YXJlIHN0b3JlZCBjb2x1bW4tbWFqb3IsIHdlIHNldCB1cCBhbiAKLS0gICAgIG9mZnNldCB0YWJs ZSB0byBnZXQgYXQgdGhlIHZhcmlvdXMgcm93J3MgZWxlbWVudHMuICBUaGUgCi0tICAgICBvZmZz ZXQgdGFibGUgY29udGFpbnMgZW50cmllcyBmb3IgYm90aCBvZmZzZXQgYW5kIHN1YmFycmF5IHNp emUuICAqLwotLQotLSAgZjc3X2NyZWF0ZV9hcnJheXByaW50X29mZnNldF90YmwgKHR5cGUsIHN0 cmVhbSk7Ci0tCi0gICBmNzdfcHJpbnRfYXJyYXlfMSAoMSwgbmRpbWVuc2lvbnMsIHR5cGUsIHZh bGFkZHIsIGVtYmVkZGVkX29mZnNldCwKLSAJCSAgICAgYWRkcmVzcywgc3RyZWFtLCByZWN1cnNl LCB2YWwsIG9wdGlvbnMsICZlbHRzKTsKLSB9Ci1AQCAtMzc1LDEyICszMzgsMTUgQEAKLSAgICAg ICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sICIoICIpOwotICAgICAgIGZvciAoaW5kZXggPSAw OyBpbmRleCA8IFRZUEVfTkZJRUxEUyAodHlwZSk7IGluZGV4KyspCi0gICAgICAgICB7Ci0tICAg ICAgICAgIGludCBvZmZzZXQgPSBUWVBFX0ZJRUxEX0JJVFBPUyAodHlwZSwgaW5kZXgpIC8gODsK LSsJICBzdHJ1Y3QgdmFsdWUgKmZpZWxkID0gdmFsdWVfZmllbGQKLSsJICAgICgoc3RydWN0IHZh bHVlICopb3JpZ2luYWxfdmFsdWUsIGluZGV4KTsKLSsKLSsgICAgICAgICAgdmFsX3ByaW50ICh2 YWx1ZV90eXBlIChmaWVsZCksCi0rCQkgICAgIHZhbHVlX2NvbnRlbnRzX2Zvcl9wcmludGluZyAo ZmllbGQpLAotKwkJICAgICB2YWx1ZV9lbWJlZGRlZF9vZmZzZXQgKGZpZWxkKSwKLSsJCSAgICAg dmFsdWVfYWRkcmVzcyAoZmllbGQpLCBzdHJlYW0sIHJlY3Vyc2UgKyAxLAotKwkJICAgICBmaWVs ZCwgb3B0aW9ucywgY3VycmVudF9sYW5ndWFnZSk7Ci0gCi0tICAgICAgICAgIHZhbF9wcmludCAo VFlQRV9GSUVMRF9UWVBFICh0eXBlLCBpbmRleCksIHZhbGFkZHIsCi0tCQkgICAgIGVtYmVkZGVk X29mZnNldCArIG9mZnNldCwKLS0JCSAgICAgYWRkcmVzcywgc3RyZWFtLCByZWN1cnNlICsgMSwK LS0JCSAgICAgb3JpZ2luYWxfdmFsdWUsIG9wdGlvbnMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwotICAg ICAgICAgICBpZiAoaW5kZXggIT0gVFlQRV9ORklFTERTICh0eXBlKSAtIDEpCi0gICAgICAgICAg ICAgZnB1dHNfZmlsdGVyZWQgKCIsICIsIHN0cmVhbSk7Ci0gICAgICAgICB9Ci1JbmRleDogZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnR5cGVzLmMKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x MC41MC4yMDE2MDEwNi5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDgz NTgyNDU5ICswMTAwCi0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL2dkYnR5cGVzLmMJMjAx Ni0wMS0wOCAxOToxNTo0NC45ODI2Mzc2NzQgKzAxMDAKLUBAIC04MzYsNyArODM2LDggQEAKLSBz dHJ1Y3QgdHlwZSAqCi0gY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpyZXN1bHRfdHlw ZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCi0gCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19w cm9wICpsb3dfYm91bmQsCi0tCQkgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICpoaWdoX2Jv dW5kKQotKwkJICAgY29uc3Qgc3RydWN0IGR5bmFtaWNfcHJvcCAqaGlnaF9ib3VuZCwKLSsJCSAg IGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKnN0cmlkZSkKLSB7Ci0gICBpZiAocmVzdWx0X3R5 cGUgPT0gTlVMTCkKLSAgICAgcmVzdWx0X3R5cGUgPSBhbGxvY190eXBlX2NvcHkgKGluZGV4X3R5 cGUpOwotQEAgLTg1MSw2ICs4NTIsNyBAQAotICAgICBUWVBFX1pBTExPQyAocmVzdWx0X3R5cGUs IHNpemVvZiAoc3RydWN0IHJhbmdlX2JvdW5kcykpOwotICAgVFlQRV9SQU5HRV9EQVRBIChyZXN1 bHRfdHlwZSktPmxvdyA9ICpsb3dfYm91bmQ7Ci0gICBUWVBFX1JBTkdFX0RBVEEgKHJlc3VsdF90 eXBlKS0+aGlnaCA9ICpoaWdoX2JvdW5kOwotKyAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlw ZSktPnN0cmlkZSA9ICpzdHJpZGU7Ci0gCi0gICBpZiAobG93X2JvdW5kLT5raW5kID09IFBST1Bf Q09OU1QgJiYgbG93X2JvdW5kLT5kYXRhLmNvbnN0X3ZhbCA+PSAwKQotICAgICBUWVBFX1VOU0lH TkVEIChyZXN1bHRfdHlwZSkgPSAxOwotQEAgLTg3OSw3ICs4ODEsNyBAQAotIGNyZWF0ZV9zdGF0 aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3VsdF90eXBlLCBzdHJ1Y3QgdHlwZSAqaW5k ZXhfdHlwZSwKLSAJCQkgIExPTkdFU1QgbG93X2JvdW5kLCBMT05HRVNUIGhpZ2hfYm91bmQpCi0g ewotLSAgc3RydWN0IGR5bmFtaWNfcHJvcCBsb3csIGhpZ2g7Ci0rICBzdHJ1Y3QgZHluYW1pY19w cm9wIGxvdywgaGlnaCwgc3RyaWRlOwotIAotICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwotICAg bG93LmRhdGEuY29uc3RfdmFsID0gbG93X2JvdW5kOwotQEAgLTg4Nyw3ICs4ODksMTEgQEAKLSAg IGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7Ci0gICBoaWdoLmRhdGEuY29uc3RfdmFsID0gaGlnaF9i b3VuZDsKLSAKLS0gIHJlc3VsdF90eXBlID0gY3JlYXRlX3JhbmdlX3R5cGUgKHJlc3VsdF90eXBl LCBpbmRleF90eXBlLCAmbG93LCAmaGlnaCk7Ci0rICBzdHJpZGUua2luZCA9IFBST1BfQ09OU1Q7 Ci0rICBzdHJpZGUuZGF0YS5jb25zdF92YWwgPSAwOwotKwotKyAgcmVzdWx0X3R5cGUgPSBjcmVh dGVfcmFuZ2VfdHlwZSAocmVzdWx0X3R5cGUsIGluZGV4X3R5cGUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmbG93LCAmaGlnaCwgJnN0cmlkZSk7Ci0gCi0gICByZXR1cm4g cmVzdWx0X3R5cGU7Ci0gfQotQEAgLTEwODQsMTYgKzEwOTAsMjEgQEAKLSAgICAgICAmJiAoIXR5 cGVfbm90X2Fzc29jaWF0ZWQgKHJlc3VsdF90eXBlKQotIAkgICYmICF0eXBlX25vdF9hbGxvY2F0 ZWQgKHJlc3VsdF90eXBlKSkpCi0gICAgIHsKLS0gICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGln aF9ib3VuZDsKLSsgICAgICBMT05HRVNUIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgYnl0ZV9zdHJp ZGU7Ci0gCi0gICAgICAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3df Ym91bmQsICZoaWdoX2JvdW5kKSA8IDApCi0gCWxvd19ib3VuZCA9IGhpZ2hfYm91bmQgPSAwOwot ICAgICAgIGVsZW1lbnRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKGVsZW1lbnRfdHlwZSk7Ci0rCi0r ICAgICAgYnl0ZV9zdHJpZGUgPSBhYnMgKFRZUEVfQllURV9TVFJJREUgKHJhbmdlX3R5cGUpKTsK LSsKLSAgICAgICAvKiBCZSBjYXJlZnVsIHdoZW4gc2V0dGluZyB0aGUgYXJyYXkgbGVuZ3RoLiAg QWRhIGFycmF5cyBjYW4gYmUKLSAJIGVtcHR5IGFycmF5cyB3aXRoIHRoZSBoaWdoX2JvdW5kIGJl aW5nIHNtYWxsZXIgdGhhbiB0aGUgbG93X2JvdW5kLgotIAkgSW4gc3VjaCBjYXNlcywgdGhlIGFy cmF5IGxlbmd0aCBzaG91bGQgYmUgemVyby4gICovCi0gICAgICAgaWYgKGhpZ2hfYm91bmQgPCBs b3dfYm91bmQpCi0gCVRZUEVfTEVOR1RIIChyZXN1bHRfdHlwZSkgPSAwOwotKyAgICAgIGVsc2Ug aWYgKGJ5dGVfc3RyaWRlID4gMCkKLSsJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9IGJ5dGVf c3RyaWRlICogKGhpZ2hfYm91bmQgLSBsb3dfYm91bmQgKyAxKTsKLSAgICAgICBlbHNlIGlmIChi aXRfc3RyaWRlID4gMCkKLSAJVFlQRV9MRU5HVEggKHJlc3VsdF90eXBlKSA9Ci0gCSAgKGJpdF9z dHJpZGUgKiAoaGlnaF9ib3VuZCAtIGxvd19ib3VuZCArIDEpICsgNykgLyA4OwotQEAgLTE4MDQs MTIgKzE4MTUsMzEgQEAKLSBzdGF0aWMgaW50Ci0gaXNfZHluYW1pY190eXBlX2ludGVybmFsIChz dHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHRvcF9sZXZlbCkKLSB7Ci0rICBpbnQgaW5kZXg7Ci0rCi0r ICBpZiAoIXR5cGUpCi0rICAgIHJldHVybiAwOwotKwotICAgdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHR5cGUpOwotIAotICAgLyogV2Ugb25seSB3YW50IHRvIHJlY29nbml6ZSByZWZlcmVuY2VzIGF0 IHRoZSBvdXRlcm1vc3QgbGV2ZWwuICAqLwotICAgaWYgKHRvcF9sZXZlbCAmJiBUWVBFX0NPREUg KHR5cGUpID09IFRZUEVfQ09ERV9SRUYpCi0gICAgIHR5cGUgPSBjaGVja190eXBlZGVmIChUWVBF X1RBUkdFVF9UWVBFICh0eXBlKSk7Ci0gCi0rICBpZiAoVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHR5 cGUpKQotKyAgICByZXR1cm4gMTsKLSsKLSsgIGlmIChUWVBFX0FMTE9DQVRFRF9QUk9QICh0eXBl KSkKLSsgICAgcmV0dXJuIDE7Ci0rCi0rICAvKiBTY2FuIGZpZWxkIHR5cGVzIGluIHRoZSBGb3J0 cmFuIGNhc2UgZm9yIG5lc3RlZCBkeW5hbWljIHR5cGVzLgotKyAgICAgVGhpcyB3aWxsIGJlIGRv bmUgb25seSBmb3IgRm9ydHJhbiBhcyBpbiB0aGUgQysrIGNhc2UgYW4gZW5kbGVzcyByZWN1cnNp b24KLSsgICAgIGNhbiBvY2N1ciBpbiB0aGUgYXJlYSBvZiBjbGFzc2VzLiAgKi8KLSsgIGlmIChj dXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZSA9PSBsYW5ndWFnZV9mb3J0cmFuKQotKyAgICBm b3IgKGluZGV4ID0gMDsgaW5kZXggPCBUWVBFX05GSUVMRFMgKHR5cGUpOyBpbmRleCsrKQotKyAg ICAgIGlmIChpc19keW5hbWljX3R5cGUgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaW5kZXgpKSkK LSsgICAgICAgIHJldHVybiAxOwotKwotICAgLyogVHlwZXMgdGhhdCBoYXZlIGEgZHluYW1pYyBU WVBFX0RBVEFfTE9DQVRJT04gYXJlIGNvbnNpZGVyZWQKLSAgICAgIGR5bmFtaWMsIGV2ZW4gaWYg dGhlIHR5cGUgaXRzZWxmIGlzIHN0YXRpY2FsbHkgZGVmaW5lZC4KLSAgICAgIEZyb20gYSB1c2Vy J3MgcG9pbnQgb2YgdmlldywgdGhpcyBtYXkgYXBwZWFyIGNvdW50ZXItaW50dWl0aXZlOwotQEAg LTE4NDQsMTEgKzE4NzQsMTkgQEAKLSAgICAgICB7Ci0gCWdkYl9hc3NlcnQgKFRZUEVfTkZJRUxE UyAodHlwZSkgPT0gMSk7Ci0gCi0tCS8qIFRoZSBhcnJheSBpcyBkeW5hbWljIGlmIGVpdGhlciB0 aGUgYm91bmRzIGFyZSBkeW5hbWljLAotLQkgICBvciB0aGUgZWxlbWVudHMgaXQgY29udGFpbnMg aGF2ZSBhIGR5bmFtaWMgY29udGVudHMuICAqLwotKwkvKiBUaGUgYXJyYXkgaXMgZHluYW1pYyBp ZiBlaXRoZXIKLSsgICAgIC0gdGhlIGJvdW5kcyBhcmUgZHluYW1pYywKLSsJICAgLSB0aGUgZWxl bWVudHMgaXQgY29udGFpbnMgaGF2ZSBhIGR5bmFtaWMgY29udGVudHMKLSsgICAgIC0gYSBkYXRh X2xvY2F0b24gYXR0cmlidXRlIHdhcyBmb3VuZC4gICovCi0gCWlmIChpc19keW5hbWljX3R5cGVf aW50ZXJuYWwgKFRZUEVfSU5ERVhfVFlQRSAodHlwZSksIDApKQotIAkgIHJldHVybiAxOwotLQly ZXR1cm4gaXNfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwg MCk7Ci0rCWVsc2UgaWYgKFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkgIT0gTlVMTAotKwkgICAg ICAgICAmJiAoVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfTE9DRVhQUgot KwkgICAgICAgICAgICAgfHwgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1Bf TE9DTElTVCkpCi0rICAgIHJldHVybiAxOwotKyAgZWxzZQotKyAgICByZXR1cm4gaXNfZHluYW1p Y190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSwgMCk7Ci0rCWJyZWFrOwot ICAgICAgIH0KLSAKLSAgICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgotQEAgLTE4NjEsNiArMTg5 OSwxOCBAQAotIAkgICAgICAmJiBpc19keW5hbWljX3R5cGVfaW50ZXJuYWwgKFRZUEVfRklFTERf VFlQRSAodHlwZSwgaSksIDApKQotIAkgICAgcmV0dXJuIDE7Ci0gICAgICAgfQotKyAgICBjYXNl IFRZUEVfQ09ERV9QVFI6Ci0rICAgICAgewotKyAgICAgICAgaWYgKFRZUEVfVEFSR0VUX1RZUEUg KHR5cGUpCi0rICAgICAgICAgICAgJiYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlw ZSkpID09IFRZUEVfQ09ERV9TVFJJTkcKLSsgICAgICAgICAgICAgICAgfHwgVFlQRV9DT0RFIChU WVBFX1RBUkdFVF9UWVBFICh0eXBlKSkgPT0gVFlQRV9DT0RFX0FSUkFZKSkKLSsgICAgICAgICAg cmV0dXJuIGlzX2R5bmFtaWNfdHlwZSAoY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAo dHlwZSkpKTsKLSsKLSsgICAgICAgIHJldHVybiAwOwotKyAgICAgICAgYnJlYWs7Ci0rICAgICAg fQotKyAgICBkZWZhdWx0OgotKyAgICAgIHJldHVybiAwOwotICAgICAgIGJyZWFrOwotICAgICB9 Ci0gCi1AQCAtMTg5MCw3ICsxOTQwLDggQEAKLSAgIHN0cnVjdCB0eXBlICpzdGF0aWNfcmFuZ2Vf dHlwZSwgKnN0YXRpY190YXJnZXRfdHlwZTsKLSAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3Ag KnByb3A7Ci0gICBjb25zdCBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gKmJhdG9uOwotLSAg c3RydWN0IGR5bmFtaWNfcHJvcCBsb3dfYm91bmQsIGhpZ2hfYm91bmQ7Ci0rICBzdHJ1Y3QgZHlu YW1pY19wcm9wIGxvd19ib3VuZCwgaGlnaF9ib3VuZCwgc3RyaWRlOwotKyAgc3RydWN0IHR5cGUg KnJhbmdlX2NvcHkgPSBjb3B5X3R5cGUgKGR5bl9yYW5nZV90eXBlKTsKLSAKLSAgIGdkYl9hc3Nl cnQgKFRZUEVfQ09ERSAoZHluX3JhbmdlX3R5cGUpID09IFRZUEVfQ09ERV9SQU5HRSk7Ci0gCi1A QCAtMTkyMiwxMiArMTk3MywxOSBAQAotICAgICAgIGhpZ2hfYm91bmQuZGF0YS5jb25zdF92YWwg PSAwOwotICAgICB9Ci0gCi0rICBwcm9wID0gJlRZUEVfUkFOR0VfREFUQSAoZHluX3JhbmdlX3R5 cGUpLT5zdHJpZGU7Ci0rICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBOVUxM LCBhZGRyX3N0YWNrLCAmdmFsdWUpKQotKyAgICB7Ci0rICAgICAgc3RyaWRlLmtpbmQgPSBQUk9Q X0NPTlNUOwotKyAgICAgIHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IHZhbHVlOwotKyAgICB9Ci0r Ci0gICBzdGF0aWNfdGFyZ2V0X3R5cGUKLS0gICAgPSByZXNvbHZlX2R5bmFtaWNfdHlwZV9pbnRl cm5hbCAoVFlQRV9UQVJHRVRfVFlQRSAoZHluX3JhbmdlX3R5cGUpLAotKyAgICA9IHJlc29sdmVf ZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9UWVBFIChyYW5nZV9jb3B5KSwKLSAJ CQkJICAgICBhZGRyX3N0YWNrLCAwKTsKLS0gIHN0YXRpY19yYW5nZV90eXBlID0gY3JlYXRlX3Jh bmdlX3R5cGUgKGNvcHlfdHlwZSAoZHluX3JhbmdlX3R5cGUpLAotKyAgc3RhdGljX3JhbmdlX3R5 cGUgPSBjcmVhdGVfcmFuZ2VfdHlwZSAocmFuZ2VfY29weSwKLSAJCQkJCSBzdGF0aWNfdGFyZ2V0 X3R5cGUsCi0tCQkJCQkgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpOwotKwkJCQkJICZsb3dfYm91 bmQsICZoaWdoX2JvdW5kLCAmc3RyaWRlKTsKLSAgIFRZUEVfUkFOR0VfREFUQSAoc3RhdGljX3Jh bmdlX3R5cGUpLT5mbGFnX2JvdW5kX2V2YWx1YXRlZCA9IDE7Ci0gICByZXR1cm4gc3RhdGljX3Jh bmdlX3R5cGU7Ci0gfQotQEAgLTE5NDYsNyArMjAwNCw4IEBACi0gICBzdHJ1Y3QgdHlwZSAqYXJ5 X2RpbTsKLSAgIHN0cnVjdCBkeW5hbWljX3Byb3AgKnByb3A7Ci0gCi0tICBnZGJfYXNzZXJ0IChU WVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9BUlJBWSk7Ci0rICBnZGJfYXNzZXJ0IChUWVBF X0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9BUlJBWQotKwkgICAgICB8fCBUWVBFX0NPREUgKHR5 cGUpID09IFRZUEVfQ09ERV9TVFJJTkcpOwotIAotICAgdHlwZSA9IGNvcHlfdHlwZSAodHlwZSk7 Ci0gCi1AQCAtMTk3MSwxMyArMjAzMCwxOCBAQAotIAotICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVk ZWYgKFRZUEVfVEFSR0VUX1RZUEUgKGVsdF90eXBlKSk7Ci0gCi0tICBpZiAoYXJ5X2RpbSAhPSBO VUxMICYmIFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX0FSUkFZKQotKyAgaWYgKGFy eV9kaW0gIT0gTlVMTCAmJiAoVFlQRV9DT0RFIChhcnlfZGltKSA9PSBUWVBFX0NPREVfQVJSQVkK LSsJCQkgIHx8IFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RFX1NUUklORykpCi0gICAg IGVsdF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5IChhcnlfZGltLCBhZGRyX3N0YWNrKTsK LSAgIGVsc2UKLSAgICAgZWx0X3R5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKLSAKLS0g IHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZV93aXRoX3N0cmlkZSAodHlwZSwgZWx0X3R5cGUsIHJh bmdlX3R5cGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRZUEVf RklFTERfQklUU0laRSAodHlwZSwgMCkpOwotKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQ RV9DT0RFX1NUUklORwotKyAgICAgICYmIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkgPT0g MCkKLSsgICAgcmV0dXJuIGNyZWF0ZV9zdHJpbmdfdHlwZSAodHlwZSwgZWx0X3R5cGUsIHJhbmdl X3R5cGUpOwotKyAgZWxzZQotKyAgICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJp ZGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90eXBlLAotKwkJCQkJICBUWVBFX0ZJRUxEX0JJVFNJ WkUgKHR5cGUsIDApKTsKLSB9Ci0gCi0gLyogUmVzb2x2ZSBkeW5hbWljIGJvdW5kcyBvZiBtZW1i ZXJzIG9mIHRoZSB1bmlvbiBUWVBFIHRvIHN0YXRpYwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYw MTA2L2dkYi9nZGJ0eXBlcy5oCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAxNjAxMDYu b3JpZy9nZGIvZ2RidHlwZXMuaAkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4NTU4MjQ3MSArMDEwMAot KysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9nZGJ0eXBlcy5oCTIwMTYtMDEtMDggMTk6MTU6 NDQuOTgzNjM3NjgwICswMTAwCi1AQCAtNTc3LDYgKzU3NywxMCBAQAotIAotICAgc3RydWN0IGR5 bmFtaWNfcHJvcCBoaWdoOwotIAotKyAgLyogKiBTdHJpZGUgb2YgcmFuZ2UuICAqLwotKwotKyAg c3RydWN0IGR5bmFtaWNfcHJvcCBzdHJpZGU7Ci0rCi0gICAvKiBUcnVlIGlmIEhJR0ggcmFuZ2Ug Ym91bmQgY29udGFpbnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUKLSAgICAgIHN1YnJh bmdlLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBmaW5hbCBoaWdodCBib3VuZCBpcyBjb21wdXRlZC4g ICovCi0gCi1AQCAtNzQ5LDYgKzc1MywxOCBAQAotIAotICAgLyogKiBDb250YWlucyBhbGwgZHlu YW1pYyB0eXBlIHByb3BlcnRpZXMuICAqLwotICAgc3RydWN0IGR5bmFtaWNfcHJvcF9saXN0ICpk eW5fcHJvcF9saXN0OwotKwotKyAgLyogU3RydWN0dXJlIGZvciBEV19BVF9hbGxvY2F0ZWQuCi0r ICAgICBUaGUgcHJlc2VuY2Ugb2YgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVzIHRoYXQgdGhlIG9i amVjdCBvZiB0aGUgdHlwZQotKyAgICAgY2FuIGJlIGFsbG9jYXRlZC9kZWFsbG9jYXRlZC4gIFRo ZSB2YWx1ZSBjYW4gYmUgYSBkd2FyZiBleHByZXNzaW9uLAotKyAgICAgcmVmZXJlbmNlLCBvciBh IGNvbnN0YW50LiAgKi8KLSsgIHN0cnVjdCBkeW5hbWljX3Byb3AgKmFsbG9jYXRlZDsKLSsKLSsg IC8qIFN0cnVjdHVyZSBmb3IgRFdfQVRfYXNzb2NpYXRlZC4KLSsgICAgIFRoZSBwcmVzZW5jZSBv ZiB0aGlzIGF0dHJpYnV0ZSBpbmRpY2F0ZWQgdGhhdCB0aGUgb2JqZWN0IG9mIHRoZSB0eXBlCi0r ICAgICBjYW4gYmUgYXNzb2NpYXRlZC4gIFRoZSB2YWx1ZSBjYW4gYmUgYSBkd2FyZiBleHByZXNz aW9uLAotKyAgICAgcmVmZXJlbmNlLCBvciBhIGNvbnN0YW50LiAgKi8KLSsgIHN0cnVjdCBkeW5h bWljX3Byb3AgKmFzc29jaWF0ZWQ7Ci0gfTsKLSAKLSAvKiAqIEEgYGBzdHJ1Y3QgdHlwZScnIGRl c2NyaWJlcyBhIHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgYSB0eXBlLCB3aXRoCi1AQCAtMTI1NSw2 ICsxMjcxLDE1IEBACi0gICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlwZSktPmhpZ2gua2luZAot ICNkZWZpbmUgVFlQRV9MT1dfQk9VTkRfS0lORChyYW5nZV90eXBlKSBcCi0gICBUWVBFX1JBTkdF X0RBVEEocmFuZ2VfdHlwZSktPmxvdy5raW5kCi0rI2RlZmluZSBUWVBFX0JZVEVfU1RSSURFKHJh bmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmRhdGEu Y29uc3RfdmFsCi0rI2RlZmluZSBUWVBFX0JZVEVfU1RSSURFX0JMT0NLKHJhbmdlX3R5cGUpIFwK LSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmRhdGEubG9jZXhwcgotKyNk ZWZpbmUgVFlQRV9CWVRFX1NUUklERV9MT0NMSVNUKHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFO R0VfREFUQShyYW5nZV90eXBlKS0+c3RyaWRlLmRhdGEubG9jbGlzdAotKyNkZWZpbmUgVFlQRV9C WVRFX1NUUklERV9LSU5EKHJhbmdlX3R5cGUpIFwKLSsgIFRZUEVfUkFOR0VfREFUQShyYW5nZV90 eXBlKS0+c3RyaWRlLmtpbmQKLSsKLSAKLSAvKiBQcm9wZXJ0eSBhY2Nlc3NvcnMgZm9yIHRoZSB0 eXBlIGRhdGEgbG9jYXRpb24uICAqLwotICNkZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OKHRoaXN0 eXBlKSBcCi1AQCAtMTI2Niw2ICsxMjkxLDE4IEBACi0gI2RlZmluZSBUWVBFX0RBVEFfTE9DQVRJ T05fS0lORCh0aGlzdHlwZSkgXAotICAgVFlQRV9EQVRBX0xPQ0FUSU9OICh0aGlzdHlwZSktPmtp bmQKLSAKLSsvKiBBbGxvY2F0ZWQgc3RhdHVzIG9mIHR5cGUgb2JqZWN0LiAgSWYgc2V0IHRvIG5v bi16ZXJvIGl0IG1lYW5zIHRoZSBvYmplY3QKLSsgICBpcyBhbGxvY2F0ZWQuIEEgemVybyB2YWx1 ZSBtZWFucyBpdCBpcyBub3QgYWxsb2NhdGVkLiAgKi8KLSsjZGVmaW5lIFRZUEVfTk9UX0FMTE9D QVRFRCh0KSAgKFRZUEVfQUxMT0NBVEVEX1BST1AgKHQpIFwKLSsgICYmIFRZUEVfQUxMT0NBVEVE X1BST1AgKHQpLT5raW5kID09IFBST1BfQ09OU1QgXAotKyAgJiYgIVRZUEVfQUxMT0NBVEVEX1BS T1AgKHQpLT5kYXRhLmNvbnN0X3ZhbCkKLSsKLSsvKiBBc3NvY2lhdGVkIHN0YXR1cyBvZiB0eXBl IG9iamVjdC4gIElmIHNldCB0byBub24temVybyBpdCBtZWFucyB0aGUgb2JqZWN0Ci0rICAgaXMg YXNzb2NpYXRlZC4gQSB6ZXJvIHZhbHVlIG1lYW5zIGl0IGlzIG5vdCBhc3NvY2lhdGVkLiAgKi8K LSsjZGVmaW5lIFRZUEVfTk9UX0FTU09DSUFURUQodCkgIChUWVBFX0FTU09DSUFURURfUFJPUCAo dCkgXAotKyAgJiYgVFlQRV9BU1NPQ0lBVEVEX1BST1AgKHQpLT5raW5kID09IFBST1BfQ09OU1Qg XAotKyAgJiYgIVRZUEVfQVNTT0NJQVRFRF9QUk9QICh0KS0+ZGF0YS5jb25zdF92YWwpCi0rCi0g LyogUHJvcGVydHkgYWNjZXNzb3JzIGZvciB0aGUgdHlwZSBhbGxvY2F0ZWQvYXNzb2NpYXRlZC4g ICovCi0gI2RlZmluZSBUWVBFX0FMTE9DQVRFRF9QUk9QKHRoaXN0eXBlKSBcCi0gICBnZXRfZHlu X3Byb3AgKERZTl9QUk9QX0FMTE9DQVRFRCwgdGhpc3R5cGUpCi1AQCAtMTI4OSw2ICsxMzI2LDkg QEAKLSAgICBUWVBFX0hJR0hfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5 cGUpKQotICNkZWZpbmUgVFlQRV9BUlJBWV9MT1dFUl9CT1VORF9JU19VTkRFRklORUQoYXJyYXl0 eXBlKSBcCi0gICAgVFlQRV9MT1dfQk9VTkRfVU5ERUZJTkVEKFRZUEVfSU5ERVhfVFlQRShhcnJh eXR5cGUpKQotKyNkZWZpbmUgVFlQRV9BUlJBWV9TVFJJREVfSVNfVU5ERUZJTkVEKGFycmF5dHlw ZSkgXAotKyAgIChUWVBFX0JZVEVfU1RSSURFKFRZUEVfSU5ERVhfVFlQRShhcnJheXR5cGUpKSA9 PSAwKQotKwotIAotICNkZWZpbmUgVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9WQUxVRShhcnJheXR5 cGUpIFwKLSAgICAoVFlQRV9ISUdIX0JPVU5EKFRZUEVfSU5ERVhfVFlQRSgoYXJyYXl0eXBlKSkp KQotQEAgLTE3NzUsNiArMTgxNSw3IEBACi0gCi0gZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVf cmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKLSAJCQkJICAgICAgIGNv bnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKiwKLSsJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5h bWljX3Byb3AgKiwKLSAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkeW5hbWljX3Byb3AgKik7Ci0g Ci0gZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwg c3RydWN0IHR5cGUgKiwKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCTIwMTYtMDEtMDggMTk6MTU6 NDQuOTgzNjM3NjgwICswMTAwCi1AQCAtMCwwICsxLDYxIEBACi0rIyBDb3B5cmlnaHQgMjAxNCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQotKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgTGljZW5zZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp b24uCi0rIwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCi0rCi0rc3RhbmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9m b3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAg IHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVu dG8gTUFJTl9fXSB0aGVuIHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2lu dCBNQUlOX18iCi0rICAgIGNvbnRpbnVlCi0rfQotKwotKyMgQ2hlY2sgVkxBIHBhc3NlZCB0byBm aXJzdCBGb3J0cmFuIGZ1bmN0aW9uLgotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJmdW5jMS12bGEtcGFzc2VkIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiZnVu YzEtdmxhLXBhc3NlZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhIiAiID0gXFwoICpcXCggKjIyLCAq MjIsICoyMixcWygpMjIsIC5cXSpcXCkiIFwKLSsgICJwcmludCB2bGEgKGZ1bmMxKSIKLStnZGJf dGVzdCAicHR5cGUgdmxhIiAidHlwZSA9IGludGVnZXJcXFwoa2luZD00XFxcKSBcXFwoMTAsMTBc XFwpIiBcCi0rICAicHR5cGUgdmxhIChmdW5jMSkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgImZ1bmMxLXZsYS1tb2RpZmllZCJdCi0rZ2RiX2NvbnRpbnVlX3RvX2Jy ZWFrcG9pbnQgImZ1bmMxLXZsYS1tb2RpZmllZCIKLStnZGJfdGVzdCAicHJpbnQgdmxhKDUsNSki ICIgPSA1NSIgInByaW50IHZsYSg1LDUpIChmdW5jMSkiCi0rZ2RiX3Rlc3QgInByaW50IHZsYSg3 LDcpIiAiID0gNzciICJwcmludCB2bGEoNSw1KSAoZnVuYzEpIgotKwotKyMgQ2hlY2sgaWYgdGhl IHZhbHVlcyBhcmUgY29ycmVjdCBhZnRlciByZXR1cm5pbmcgZnJvbSBmdW5jMQotK2dkYl9icmVh a3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJmdW5jMS1yZXR1cm5lZCJdCi0rZ2RiX2NvbnRp bnVlX3RvX2JyZWFrcG9pbnQgImZ1bmMxLXJldHVybmVkIgotK2dkYl90ZXN0ICJwcmludCByZXQi ICIgPSAuVFJVRS4iICJwcmludCByZXQgYWZ0ZXIgZnVuYzEgcmV0dXJuZWQiCi0rCi0rIyBDaGVj ayBWTEEgcGFzc2VkIHRvIHNlY29uZCBGb3J0cmFuIGZ1bmN0aW9uCi0rZ2RiX2JyZWFrcG9pbnQg W2dkYl9nZXRfbGluZV9udW1iZXIgImZ1bmMyLXZsYS1wYXNzZWQiXQotK2dkYl9jb250aW51ZV90 b19icmVha3BvaW50ICJmdW5jMi12bGEtcGFzc2VkIgotK2dkYl90ZXN0ICJwcmludCB2bGEiIFwK LSsgICIgPSBcXFwoNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDRcXFwpIiBc Ci0rICAicHJpbnQgdmxhIChmdW5jMikiCi0rZ2RiX3Rlc3QgInB0eXBlIHZsYSIgInR5cGUgPSBp bnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEwXFxcKSIgXAotKyAgInB0eXBlIHZsYSAoZnVuYzIp IgotKwotKyMgQ2hlY2sgaWYgdGhlIHJldHVybmVkIFZMQSBoYXMgdGhlIGNvcnJlY3QgdmFsdWVz IGFuZCBwdHlwZS4KLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAiZnVuYzIt cmV0dXJuZWQiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJmdW5jMi1yZXR1cm5lZCIK LStnZGJfdGVzdCAicHJpbnQgdmxhMyIgIiA9IFxcXCgxLCAyLCA0NCwgNCwgNDQsIDQ0LCA0NCwg OCwgNDQsIDQ0XFxcKSIgXAotKyAgInByaW50IHZsYTMgKGFmdGVyIGZ1bmMyKSIKLStnZGJfdGVz dCAicHR5cGUgdmxhMyIgInR5cGUgPSBpbnRlZ2VyXFxcKGtpbmQ9NFxcXCkgXFxcKDEwXFxcKSIg XAotKyAgInB0eXBlIHZsYTMgKGFmdGVyIGZ1bmMyKSIKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2 MDEwNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdk Yi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkw CTIwMTYtMDEtMDggMTk6MTU6NDQuOTgzNjM3NjgwICswMTAwCi1AQCAtMCwwICsxLDcxIEBACi0r ISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSshCi0rISBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQotKyEgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSshIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCi0rISAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyEgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSshIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK LSshIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIQotKyEg WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UKLSshIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCi0rISBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBT dWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKwotK2xvZ2ljYWwgZnVuY3Rp b24gZnVuYzEgKHZsYSkKLSsgIGltcGxpY2l0IG5vbmUKLSsgIGludGVnZXIsIGFsbG9jYXRhYmxl IDo6IHZsYSAoOiwgOikKLSsgIGZ1bmMxID0gYWxsb2NhdGVkKHZsYSkKLSsgIHZsYSg1LDUpID0g NTUgICAgICAgICAgICAgICAhIGZ1bmMxLXZsYS1wYXNzZWQKLSsgIHZsYSg3LDcpID0gNzcKLSsg IHJldHVybiAgICAgICAgICAgICAgICAgICAgICAhIGZ1bmMxLXZsYS1tb2RpZmllZAotK2VuZCBm dW5jdGlvbiBmdW5jMQotKwotK2Z1bmN0aW9uIGZ1bmMyKHZsYSkKLSsgIGltcGxpY2l0IG5vbmUK LSsgIGludGVnZXIgOjogdmxhICg6KQotKyAgaW50ZWdlciA6OiBmdW5jMihzaXplKHZsYSkpCi0r ICBpbnRlZ2VyIDo6IGsKLSsKLSsgIHZsYSgxKSA9IDEgICAgICAgICAgICAgICAgICAgICEgZnVu YzItdmxhLXBhc3NlZAotKyAgdmxhKDIpID0gMgotKyAgdmxhKDQpID0gNAotKyAgdmxhKDgpID0g OAotKwotKyAgZnVuYzIgPSB2bGEKLStlbmQgZnVuY3Rpb24gZnVuYzIKLSsKLStwcm9ncmFtIHZs YV9mdW5jCi0rICBpbXBsaWNpdCBub25lCi0rICBpbnRlcmZhY2UKLSsgICAgbG9naWNhbCBmdW5j dGlvbiBmdW5jMSAodmxhKQotKyAgICAgIGludGVnZXIgOjogdmxhICg6LCA6KQotKyAgICBlbmQg ZnVuY3Rpb24KLSsgIGVuZCBpbnRlcmZhY2UKLSsgIGludGVyZmFjZQotKyAgICBmdW5jdGlvbiBm dW5jMiAodmxhKQotKyAgICAgIGludGVnZXIgOjogdmxhICg6KQotKyAgICAgIGludGVnZXIgZnVu YzIoc2l6ZSh2bGEpKQotKyAgICBlbmQgZnVuY3Rpb24KLSsgIGVuZCBpbnRlcmZhY2UKLSsKLSsg IGxvZ2ljYWwgOjogcmV0Ci0rICBpbnRlZ2VyLCBhbGxvY2F0YWJsZSA6OiB2bGExICg6LCA6KQot KyAgaW50ZWdlciwgYWxsb2NhdGFibGUgOjogdmxhMiAoOikKLSsgIGludGVnZXIsIGFsbG9jYXRh YmxlIDo6IHZsYTMgKDopCi0rCi0rICByZXQgPSAuRkFMU0UuCi0rCi0rICBhbGxvY2F0ZSAodmxh MSAoMTAsMTApKQotKyAgdmxhMSg6LDopID0gMjIKLSsKLSsgIGFsbG9jYXRlICh2bGEyICgxMCkp Ci0rICB2bGEyKDopID0gNDQKLSsKLSsgIHJldCA9IGZ1bmMxKHZsYTEpCi0rICB2bGEzID0gZnVu YzIodmxhMikgICAgICAgICAgISBmdW5jMS1yZXR1cm5lZAotKwotKyAgcmV0ID0gLlRSVUUuICAg ICAgICAgICAgICAgICEgZnVuYzItcmV0dXJuZWQKLStlbmQgcHJvZ3JhbSB2bGFfZnVuYwotSW5k ZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0 cmlkZS5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3Njg2ICsw MTAwCi1AQCAtMCwwICsxLDQ0IEBACi0rIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyMgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5z ZSwgb3IKLSsjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIwotKyMgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rc3Rh bmRhcmRfdGVzdGZpbGUgIi5mOTAiCi0rCi0raWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rl c3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtzcmNmaWxlfSBcCi0rICAgIHtkZWJ1ZyBmOTAgcXVp ZXR9XSB9IHsKLSsgICAgcmV0dXJuIC0xCi0rfQotKwotK2lmICFbcnVudG8gTUFJTl9fXSB0aGVu IHsKLSsgICAgcGVycm9yICJjb3VsZG4ndCBydW4gdG8gYnJlYWtwb2ludCBNQUlOX18iCi0rICAg IGNvbnRpbnVlCi0rfQotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJy ZS1yZXZlcnNlLWVsZW1lbnRzIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAicmUtcmV2 ZXJzZS1lbGVtZW50cyIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCgxLCAyLCAzLCA0 LCA1LCA2LCA3LCA4LCA5LCAxMFxcXCkiIFwKLSsgICJwcmludCByZS1yZXZlcnNlLWVsZW1lbnRz IgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gMSIgInByaW50IGZpcnN0IHJlLXJldmVy c2UtZWxlbWVudCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSgxMCkiICIgPSAxMCIgInByaW50IGxh c3QgcmUtcmV2ZXJzZS1lbGVtZW50IgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVf bnVtYmVyICJvZGQtZWxlbWVudHMiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJvZGQt ZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEiICIgPSBcXFwoMSwgMywgNSwgNywgOVxc XCkiICJwcmludCBvZGQtZWxlbWVudHMiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoMSkiICIgPSAx IiAicHJpbnQgZmlyc3Qgb2RkLWVsZW1lbnQiCi0rZ2RiX3Rlc3QgInByaW50IHB2bGEoNSkiICIg PSA5IiAicHJpbnQgbGFzdCBvZGQtZWxlbWVudCIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dl dF9saW5lX251bWJlciAic2luZ2xlLWVsZW1lbnQiXQotK2dkYl9jb250aW51ZV90b19icmVha3Bv aW50ICJzaW5nbGUtZWxlbWVudCIKLStnZGJfdGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCg1XFxc KSIgInByaW50IHNpbmdsZS1lbGVtZW50IgotK2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0g NSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVudCIKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEw Ni9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZjkwCi09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2Ri LTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5 MAkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTAsMCArMSwzMCBAQAot KyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIQotKyEg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKLSshIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rISB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyEgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSshCi0rISBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSshIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rISBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Ci0rISBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyEKLSsh IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCi0rISBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0 aGUgRnJlZSBTb2Z0d2FyZQotKyEgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0g U3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsKLStwcm9ncmFtIHZsYV9z dHJpZGUKLSsgIGludGVnZXIsIHRhcmdldCwgYWxsb2NhdGFibGUgOjogdmxhICg6KQotKyAgaW50 ZWdlciwgcG9pbnRlciA6OiBwdmxhICg6KQotKwotKyAgYWxsb2NhdGUodmxhKDEwKSkKLSsgIHZs YSA9ICgvIChJLCBJID0gMSwxMCkgLykKLSsKLSsgIHB2bGEgPT4gdmxhKDEwOjE6LTEpCi0rICBw dmxhID0+IHB2bGEoMTA6MTotMSkKLSsgIHB2bGEgPT4gdmxhKDE6MTA6MikgICAhIHJlLXJldmVy c2UtZWxlbWVudHMKLSsgIHB2bGEgPT4gdmxhKDU6NDotMikgICAhIG9kZC1lbGVtZW50cwotKwot KyAgcHZsYSA9PiBudWxsKCkgICAgICAgICEgc2luZ2xlLWVsZW1lbnQKLStlbmQgcHJvZ3JhbSB2 bGFfc3RyaWRlCi1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtc3RyaW5ncy5leHAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE2LTAxLTA4IDE5OjE1 OjQ0Ljk4NDYzNzY4NiArMDEwMAotQEAgLTAsMCArMSwxMDEgQEAKLSsjIENvcHlyaWdodCAyMDE0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KLSsKLStzdGFuZGFyZF90ZXN0ZmlsZSAiLmY5MCIKLSsKLStpZiB7IFtwcmVwYXJl X2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSAke3NyY2ZpbGV9IFwKLSsg ICAge2RlYnVnIGY5MCBxdWlldH1dIH0gewotKyAgICByZXR1cm4gLTEKLSt9Ci0rCi0rIyBjaGVj ayB0aGF0IGFsbCBmb3J0cmFuIHN0YW5kYXJkIGRhdGF0eXBlcyB3aWxsIGJlCi0rIyBoYW5kbGVk IGNvcnJlY3RseSB3aGVuIHVzaW5nIGFzIFZMQSdzCi0rCi0raWYgIVtydW50byBNQUlOX19dIHRo ZW4gewotKyAgICBwZXJyb3IgImNvdWxkbid0IHJ1biB0byBicmVha3BvaW50IE1BSU5fXyIKLSsg ICAgY29udGludWUKLSt9Ci0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIg InZhcl9jaGFyLWFsbG9jYXRlZC0xIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFy X2NoYXItYWxsb2NhdGVkLTEiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAiID0g XFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJp bnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgIndoYXRp cyB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIgXAot KyAgIndoYXRpcyB2YXJfY2hhciBmaXJzdCB0aW1lIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hh ciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjEwIFxcKSIgXAotKyAgInB0eXBl IHZhcl9jaGFyIGZpcnN0IHRpbWUiCi0rZ2RiX3Rlc3QgIm5leHQiICJcXGQrLip2YXJfY2hhciA9 ICdmb28nLioiIFwKLSsgICJuZXh0IHRvIGFsbG9jYXRpb24gc3RhdHVzIG9mIHZhcl9jaGFyIgot K2dkYl90ZXN0ICJwcmludCBsIiAiID0gLlRSVUUuIiAicHJpbnQgYWxsb2NhdGlvbiBzdGF0dXMg Zmlyc3QgdGltZSIKLSsKLStnZGJfYnJlYWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFy X2NoYXItZmlsbGVkLTEiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJ2YXJfY2hhci1m aWxsZWQtMSIKLStnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIiIFwKLSsgICIgPSBcXChQVFIgVE8g LT4gXFwoIGNoYXJhY3RlclxcKjMgXFwpXFwpICR7aGV4fSIgXAotKyAgInByaW50IHZhcl9jaGFy IGFmdGVyIGZpbGxlZCBmaXJzdCB0aW1lIgotK2dkYl90ZXN0ICJwcmludCAqdmFyX2NoYXIiICIg PSAnZm9vJyIgXAotKyAgInByaW50ICp2YXJfY2hhciBhZnRlciBmaWxsZWQgZmlyc3QgdGltZSIK LStnZGJfdGVzdCAid2hhdGlzIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFj dGVyXFwqMyBcXCkiIFwKLSsgICJ3aGF0aXMgdmFyX2NoYXIgYWZ0ZXIgZmlsbGVkIGZpcnN0IHRp bWUiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hh cmFjdGVyXFwqMyBcXCkiIFwKLSsgICJwdHlwZSB2YXJfY2hhciBhZnRlciBmaWxsZWQgZmlyc3Qg dGltZSIKLStnZGJfdGVzdCAicHJpbnQgdmFyX2NoYXIoMSkiICIgPSAxMDIgJ2YnIiAicHJpbnQg dmFyX2NoYXIoMSkiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyKDMpIiAiID0gMTExICdvJyIg InByaW50IHZhcl9jaGFyKDMpIgotKwotK2dkYl9icmVha3BvaW50IFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJ2YXJfY2hhci1maWxsZWQtMiJdCi0rZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInZh cl9jaGFyLWZpbGxlZC0yIgotK2dkYl90ZXN0ICJwcmludCB2YXJfY2hhciIgXAotKyAgIiA9IFxc KFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqNiBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQg dmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIHNlY29uZCB0aW1lIgotK2dkYl90ZXN0ICJwcmludCAq dmFyX2NoYXIiICIgPSAnZm9vYmFyJyIgXAotKyAgInByaW50ICp2YXJfY2hhciBhZnRlciBhbGxv Y2F0ZWQgc2Vjb25kIHRpbWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hhciIgInR5cGUgPSBQ VFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjYgXFwpIiBcCi0rICAid2hhdGlzIHZhcl9jaGFyIHNl Y29uZCB0aW1lIgotK2dkYl90ZXN0ICJwdHlwZSB2YXJfY2hhciIgInR5cGUgPSBQVFIgVE8gLT4g XFwoIGNoYXJhY3RlclxcKjYgXFwpIiBcCi0rICAicHR5cGUgdmFyX2NoYXIgc2Vjb25kIHRpbWUi Ci0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFyLWVtcHR5 Il0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItZW1wdHkiCi0rZ2RiX3Rl c3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJc XCowIFxcKVxcKSAke2hleH0iIFwKLSsgICJwcmludCB2YXJfY2hhciBhZnRlciBzZXQgZW1wdHki Ci0rZ2RiX3Rlc3QgInByaW50ICp2YXJfY2hhciIgIiA9IFwiXCIiICJwcmludCAqdmFyX2NoYXIg YWZ0ZXIgc2V0IGVtcHR5IgotK2dkYl90ZXN0ICJ3aGF0aXMgdmFyX2NoYXIiICJ0eXBlID0gUFRS IFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCowIFxcKSIgXAotKyAgIndoYXRpcyB2YXJfY2hhciBhZnRl ciBzZXQgZW1wdHkiCi0rZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAt PiBcXCggY2hhcmFjdGVyXFwqMCBcXCkiIFwKLSsgICJwdHlwZSB2YXJfY2hhciBhZnRlciBzZXQg ZW1wdHkiCi0rCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInZhcl9jaGFy LWFsbG9jYXRlZC0zIl0KLStnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXItYWxs b2NhdGVkLTMiCi0rZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCi0rICAiID0gXFwoUFRSIFRP IC0+IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXClcXCkgJHtoZXh9IiBcCi0rICAicHJpbnQgdmFyX2No YXIgYWZ0ZXIgYWxsb2NhdGVkIHRoaXJkIHRpbWUiCi0rZ2RiX3Rlc3QgIndoYXRpcyB2YXJfY2hh ciIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjIxIFxcKSIgXAotKyAgIndoYXRp cyB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgdGhpcmQgdGltZSIKLStnZGJfdGVzdCAicHR5cGUg dmFyX2NoYXIiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoyMSBcXCkiIFwKLSsg ICJwdHlwZSB2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgdGhpcmQgdGltZSIKLSsKLStnZGJfYnJl YWtwb2ludCBbZ2RiX2dldF9saW5lX251bWJlciAidmFyX2NoYXJfcC1hc3NvY2lhdGVkIl0KLStn ZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmFyX2NoYXJfcC1hc3NvY2lhdGVkIgotK2dkYl90 ZXN0ICJwcmludCB2YXJfY2hhcl9wIiBcCi0rICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0 ZXJcXCo3IFxcKVxcKSAke2hleH0iIFwKLSsgICJwcmludCB2YXJfY2hhcl9wIGFmdGVyIGFzc29j aWF0ZWQiCi0rZ2RiX3Rlc3QgInByaW50ICp2YXJfY2hhcl9wIiAiID0gJ2pvaG5kb2UnIiBcCi0r ICAicHJpbnQgKnZhcl9jaGFyXyBhZnRlciBhc3NvY2lhdGVkIgotK2dkYl90ZXN0ICJ3aGF0aXMg dmFyX2NoYXJfcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjcgXFwpIiBcCi0r ICAid2hhdGlzIHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRlZCIKLStnZGJfdGVzdCAicHR5cGUg dmFyX2NoYXJfcCIgInR5cGUgPSBQVFIgVE8gLT4gXFwoIGNoYXJhY3RlclxcKjcgXFwpIiBcCi0r ICAicHR5cGUgdmFyX2NoYXJfcCBhZnRlciBhc3NvY2lhdGVkIgotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCi09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAw Ci0rKysgZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEt c3RyaW5ncy5mOTAJMjAxNi0wMS0wOCAxOToxNTo0NC45ODQ2Mzc2ODYgKzAxMDAKLUBAIC0wLDAg KzEsNDAgQEAKLSshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgotKyEKLSshIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotKyEgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKLSshIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rIQotKyEgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rISBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgotKyEgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQotKyEgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KLSshCi0rISBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQotKyEgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwg d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSshIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs ZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0rCi0rcHJv Z3JhbSB2bGFfc3RyaW5ncwotKyAgY2hhcmFjdGVyKGxlbj06KSwgdGFyZ2V0LCBhbGxvY2F0YWJs ZSAgIDo6IHZhcl9jaGFyCi0rICBjaGFyYWN0ZXIobGVuPTopLCBwb2ludGVyICAgICAgICAgICAg ICAgOjogdmFyX2NoYXJfcAotKyAgbG9naWNhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDo6IGwKLSsKLSsgIGFsbG9jYXRlKGNoYXJhY3RlcihsZW49MTApIDo6IHZhcl9jaGFyKQot KyAgbCA9IGFsbG9jYXRlZCh2YXJfY2hhcikgICAgICAgICAgICAgICAgICEgdmFyX2NoYXItYWxs b2NhdGVkLTEKLSsgIHZhcl9jaGFyID0gJ2ZvbycKLSsgIGRlYWxsb2NhdGUodmFyX2NoYXIpICAg ICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWZpbGxlZC0xCi0rICBsID0gYWxsb2NhdGVkKHZh cl9jaGFyKSAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1kZWFsbG9jYXRlZAotKyAgYWxsb2Nh dGUoY2hhcmFjdGVyKGxlbj00MikgOjogdmFyX2NoYXIpCi0rICBsID0gYWxsb2NhdGVkKHZhcl9j aGFyKQotKyAgdmFyX2NoYXIgPSAnZm9vYmFyJwotKyAgdmFyX2NoYXIgPSAnJyAgICAgICAgICAg ICAgICAgICAgICAgICAgICEgdmFyX2NoYXItZmlsbGVkLTIKLSsgIHZhcl9jaGFyID0gJ2Jhcicg ICAgICAgICAgICAgICAgICAgICAgICAhIHZhcl9jaGFyLWVtcHR5Ci0rICBkZWFsbG9jYXRlKHZh cl9jaGFyKQotKyAgYWxsb2NhdGUoY2hhcmFjdGVyKGxlbj0yMSkgOjogdmFyX2NoYXIpCi0rICBs ID0gYWxsb2NhdGVkKHZhcl9jaGFyKSAgICAgICAgICAgICAgICAgISB2YXJfY2hhci1hbGxvY2F0 ZWQtMwotKyAgdmFyX2NoYXIgPSAnam9obmRvZScKLSsgIHZhcl9jaGFyX3AgPT4gdmFyX2NoYXIK LSsgIGwgPSBhc3NvY2lhdGVkKHZhcl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3At YXNzb2NpYXRlZAotKyAgdmFyX2NoYXJfcCA9PiBudWxsKCkKLSsgIGwgPSBhc3NvY2lhdGVkKHZh cl9jaGFyX3ApICAgICAgICAgICAgICAhIHZhcl9jaGFyX3Atbm90LWFzc29jaWF0ZWQKLStlbmQg cHJvZ3JhbSB2bGFfc3RyaW5ncwotSW5kZXg6IGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi90eXBl cHJpbnQuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2RiL3R5 cGVwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDg2NTgyNDc2ICswMTAwCi0rKysgZ2RiLTcu MTAuNTAuMjAxNjAxMDYvZ2RiL3R5cGVwcmludC5jCTIwMTYtMDEtMDggMTk6MTU6NDQuOTg0NjM3 Njg2ICswMTAwCi1AQCAtNDYwLDYgKzQ2MCwxMyBAQAotIAotICAgdHlwZSA9IHZhbHVlX3R5cGUg KHZhbCk7Ci0gCi0rICBpZiAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUFRSKQotKyAg ICBpZiAoaXNfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkpCi0rICAgICAg ewotKwl2YWwgPSB2YWx1ZV9hZGRyICh2YWx1ZV9pbmQgKHZhbCkpOwotKwl0eXBlID0gdmFsdWVf dHlwZSAodmFsKTsKLSsgICAgICB9Ci0rCi0gICBnZXRfdXNlcl9wcmludF9vcHRpb25zICgmb3B0 cyk7Ci0gICBpZiAob3B0cy5vYmplY3RwcmludCkKLSAgICAgewotSW5kZXg6IGdkYi03LjEwLjUw LjIwMTYwMTA2L2dkYi92YWxhcml0aC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuNTAuMjAx NjAxMDYub3JpZy9nZGIvdmFsYXJpdGguYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4NzU4MjQ4MiAr MDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxhcml0aC5jCTIwMTYtMDEtMDgg MTk6MTU6NDQuOTg1NjM3NjkxICswMTAwCi1AQCAtMTkzLDkgKzE5MywyMSBAQAotICAgc3RydWN0 IHR5cGUgKmFycmF5X3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcnJheSkpOwot ICAgc3RydWN0IHR5cGUgKmVsdF90eXBlID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQ RSAoYXJyYXlfdHlwZSkpOwotICAgdW5zaWduZWQgaW50IGVsdF9zaXplID0gdHlwZV9sZW5ndGhf dW5pdHMgKGVsdF90eXBlKTsKLS0gIHVuc2lnbmVkIGludCBlbHRfb2ZmcyA9IGVsdF9zaXplICog bG9uZ2VzdF90b19pbnQgKGluZGV4IC0gbG93ZXJib3VuZCk7Ci0rICB1bnNpZ25lZCBpbnQgZWx0 X29mZnMgPSBsb25nZXN0X3RvX2ludCAoaW5kZXggLSBsb3dlcmJvdW5kKTsKLSsgIExPTkdFU1Qg ZWx0X3N0cmlkZSA9IFRZUEVfQllURV9TVFJJREUgKFRZUEVfSU5ERVhfVFlQRSAoYXJyYXlfdHlw ZSkpOwotICAgc3RydWN0IHZhbHVlICp2OwotIAotKyAgaWYgKGVsdF9zdHJpZGUgPiAwKQotKyAg ICBlbHRfb2ZmcyAqPSBlbHRfc3RyaWRlOwotKyAgZWxzZSBpZiAoZWx0X3N0cmlkZSA8IDApCi0r ICAgIHsKLSsgICAgICBpbnQgb2ZmcyA9IChlbHRfb2ZmcyArIDEpICogZWx0X3N0cmlkZTsKLSsK LSsgICAgICBlbHRfb2ZmcyA9IFRZUEVfTEVOR1RIIChhcnJheV90eXBlKSArIG9mZnM7Ci0rICAg IH0KLSsgIGVsc2UKLSsgICAgZWx0X29mZnMgKj0gZWx0X3NpemU7Ci0rCi0gICBpZiAoaW5kZXgg PCBsb3dlcmJvdW5kIHx8ICghVFlQRV9BUlJBWV9VUFBFUl9CT1VORF9JU19VTkRFRklORUQgKGFy cmF5X3R5cGUpCi0gCQkJICAgICAmJiBlbHRfb2ZmcyA+PSB0eXBlX2xlbmd0aF91bml0cyAoYXJy YXlfdHlwZSkpKQotICAgICB7Ci1JbmRleDogZ2RiLTcuMTAuNTAuMjAxNjAxMDYvZ2RiL3ZhbHBy aW50LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41MC4yMDE2MDEwNi5vcmlnL2dkYi92YWxw cmludC5jCTIwMTYtMDEtMDggMTk6MTU6MzUuMDg4NTgyNDg3ICswMTAwCi0rKysgZ2RiLTcuMTAu NTAuMjAxNjAxMDYvZ2RiL3ZhbHByaW50LmMJMjAxNi0wMS0wOCAxOToxNTo0NC45ODY2Mzc2OTcg KzAxMDAKLUBAIC0zMTYsNiArMzE2LDE4IEBACi0gICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAK LSsgIGlmIChUWVBFX05PVF9BU1NPQ0lBVEVEICh0eXBlKSkKLSsgICAgewotKyAgICAgIHZhbF9w cmludF9ub3RfYXNzb2NpYXRlZCAoc3RyZWFtKTsKLSsgICAgICByZXR1cm4gMDsKLSsgICAgfQot KwotKyAgaWYgKFRZUEVfTk9UX0FMTE9DQVRFRCAodHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxf cHJpbnRfbm90X2FsbG9jYXRlZCAoc3RyZWFtKTsKLSsgICAgICByZXR1cm4gMDsKLSsgICAgfQot KwotICAgaWYgKFRZUEVfQ09ERSAodHlwZSkgIT0gVFlQRV9DT0RFX1VOSU9OCi0gICAgICAgJiYg VFlQRV9DT0RFICh0eXBlKSAhPSBUWVBFX0NPREVfU1RSVUNUCi0gICAgICAgJiYgVFlQRV9DT0RF ICh0eXBlKSAhPSBUWVBFX0NPREVfQVJSQVkpCi1AQCAtMTAyNSwxMiArMTAzNywxNiBAQAotIHZh bHVlX2NoZWNrX3ByaW50YWJsZSAoc3RydWN0IHZhbHVlICp2YWwsIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sCi0gCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMpCi0gewotKyAgY29uc3Qgc3RydWN0IHR5cGUgKnR5cGU7Ci0rCi0gICBpZiAodmFsID09IDAp Ci0gICAgIHsKLSAgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIF8oIjxhZGRyZXNzIG9m IHZhbHVlIHVua25vd24+IikpOwotICAgICAgIHJldHVybiAwOwotICAgICB9Ci0gCi0rICB0eXBl ID0gdmFsdWVfdHlwZSAodmFsKTsKLSsKLSAgIGlmICh2YWx1ZV9lbnRpcmVseV9vcHRpbWl6ZWRf b3V0ICh2YWwpKQotICAgICB7Ci0gICAgICAgaWYgKG9wdGlvbnMtPnN1bW1hcnkgJiYgIXZhbF9w cmludF9zY2FsYXJfdHlwZV9wICh2YWx1ZV90eXBlICh2YWwpKSkKLUBAIC0xMDY2LDYgKzEwODIs MTggQEAKLSAgICAgewotICAgICAgIHZhbF9wcmludF9ub3RfYWxsb2NhdGVkIChzdHJlYW0pOwot ICAgICAgIHJldHVybiAwOwotKyAgICB9Ci0rCi0rICBpZiAoVFlQRV9OT1RfQVNTT0NJQVRFRCAo dHlwZSkpCi0rICAgIHsKLSsgICAgICB2YWxfcHJpbnRfbm90X2Fzc29jaWF0ZWQgKHN0cmVhbSk7 Ci0rICAgICAgcmV0dXJuIDA7Ci0rICAgIH0KLSsKLSsgIGlmIChUWVBFX05PVF9BTExPQ0FURUQg KHR5cGUpKQotKyAgICB7Ci0rICAgICAgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cmVhbSk7 Ci0rICAgICAgcmV0dXJuIDA7Ci0gICAgIH0KLSAKLSAgIHJldHVybiAxOwotSW5kZXg6IGdkYi03 LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxwcmludC5oCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAu NTAuMjAxNjAxMDYub3JpZy9nZGIvdmFscHJpbnQuaAkyMDE2LTAxLTA4IDE5OjE1OjM1LjA4ODU4 MjQ4NyArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi92YWxwcmludC5oCTIwMTYt MDEtMDggMTk6MTU6NDQuOTg2NjM3Njk3ICswMTAwCi1AQCAtMjMyLDQgKzIzMiw4IEBACi0gCQkJ CQlzdHJ1Y3QgZm9ybWF0X2RhdGEgKmZtdHApOwotIGV4dGVybiB2b2lkIHByaW50X3ZhbHVlIChz dHJ1Y3QgdmFsdWUgKnZhbCwgY29uc3Qgc3RydWN0IGZvcm1hdF9kYXRhICpmbXRwKTsKLSAKLStl eHRlcm4gdm9pZCB2YWxfcHJpbnRfbm90X2FsbG9jYXRlZCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSk7Ci0rCi0rZXh0ZXJuIHZvaWQgdmFsX3ByaW50X25vdF9hc3NvY2lhdGVkIChzdHJ1Y3QgdWlf ZmlsZSAqc3RyZWFtKTsKLSsKLSAjZW5kaWYKLUluZGV4OiBnZGItNy4xMC41MC4yMDE2MDEwNi9n ZGIvdmFsdWUuYwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEwLjUwLjIwMTYwMTA2Lm9yaWcvZ2Ri L3ZhbHVlLmMJMjAxNi0wMS0wOCAxOToxNTozNS4wOTA1ODI0OTkgKzAxMDAKLSsrKyBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvdmFsdWUuYwkyMDE2LTAxLTA4IDE5OjE1OjQ0Ljk4NzYzNzcwMiAr MDEwMAotQEAgLTQwLDYgKzQwLDcgQEAKLSAjaW5jbHVkZSAidHJhY2Vwb2ludC5oIgotICNpbmNs dWRlICJjcC1hYmkuaCIKLSAjaW5jbHVkZSAidXNlci1yZWdzLmgiCi0rI2luY2x1ZGUgImR3YXJm MmxvYy5oIgotIAotIC8qIFByb3RvdHlwZXMgZm9yIGV4cG9ydGVkIGZ1bmN0aW9ucy4gICovCi0g Ci1AQCAtMTc4OCw2ICsxNzg5LDI1IEBACi0gICAgICAgaWYgKGZ1bmNzLT5jb3B5X2Nsb3N1cmUp Ci0gICAgICAgICBjb21wb25lbnQtPmxvY2F0aW9uLmNvbXB1dGVkLmNsb3N1cmUgPSBmdW5jcy0+ Y29weV9jbG9zdXJlICh3aG9sZSk7Ci0gICAgIH0KLSsKLSsgIC8qIEZvciBkeW5hbWljIHR5cGVz IGNvbXB1dGUgdGhlIGFkZHJlc3Mgb2YgdGhlIGNvbXBvbmVudCB2YWx1ZSBsb2NhdGlvbiBpbgot KyAgICAgc3ViIHJhbmdlIHR5cGVzIGJhc2VkIG9uIHRoZSBsb2NhdGlvbiBvZiB0aGUgc3ViIHJh bmdlIHR5cGUsIGlmIG5vdCBiZWluZwotKyAgICAgYW4gaW50ZXJuYWwgR0RCIHZhcmlhYmxlIG9y IHBhcnRzIG9mIGl0LiAgKi8KLSsgIGlmIChWQUxVRV9MVkFMIChjb21wb25lbnQpICE9IGx2YWxf aW50ZXJuYWx2YXIKLSsgICAgICAmJiBWQUxVRV9MVkFMIChjb21wb25lbnQpICE9IGx2YWxfaW50 ZXJuYWx2YXJfY29tcG9uZW50KQotKyAgICB7Ci0rICAgICAgQ09SRV9BRERSIGFkZHI7Ci0rICAg ICAgc3RydWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlICh3aG9sZSk7Ci0rCi0rICAgICAgYWRk ciA9IHZhbHVlX3Jhd19hZGRyZXNzIChjb21wb25lbnQpOwotKwotKyAgICAgIGlmIChUWVBFX0RB VEFfTE9DQVRJT04gKHR5cGUpCi0rICAgICAgICAgICYmIFRZUEVfREFUQV9MT0NBVElPTl9LSU5E ICh0eXBlKSA9PSBQUk9QX0NPTlNUKQotKyAgICAgICAgewotKyAgICAgICAgICBhZGRyID0gVFlQ RV9EQVRBX0xPQ0FUSU9OX0FERFIgKHR5cGUpOwotKyAgICAgICAgICBzZXRfdmFsdWVfYWRkcmVz cyAoY29tcG9uZW50LCBhZGRyKTsKLSsgICAgICAgIH0KLSsgICAgfQotIH0KLSAKLSAMCi1AQCAt MzA5NSwxMyArMzExNSwyMiBAQAotIAl2ID0gYWxsb2NhdGVfdmFsdWVfbGF6eSAodHlwZSk7Ci0g ICAgICAgZWxzZQotIAl7Ci0tCSAgdiA9IGFsbG9jYXRlX3ZhbHVlICh0eXBlKTsKLS0JICB2YWx1 ZV9jb250ZW50c19jb3B5X3JhdyAodiwgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0ICh2KSwKLS0JCQkJ ICAgYXJnMSwgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSArIG9mZnNldCwKLS0JCQkJICAg dHlwZV9sZW5ndGhfdW5pdHMgKHR5cGUpKTsKLSsJICBpZiAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0 eXBlKQotKwkgICAgICAmJiBUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAodHlwZSkgPT0gUFJPUF9D T05TVCkKLSsJICAgIHYgPSB2YWx1ZV9hdF9sYXp5ICh0eXBlLCB2YWx1ZV9hZGRyZXNzIChhcmcx KSArIG9mZnNldCk7Ci0rCSAgZWxzZQotKwkgICAgewotKwkgICAgICB2ID0gYWxsb2NhdGVfdmFs dWUgKHR5cGUpOwotKwkgICAgICB2YWx1ZV9jb250ZW50c19jb3B5X3JhdyAodiwgdmFsdWVfZW1i ZWRkZWRfb2Zmc2V0ICh2KSwKLSsJCQkJICAgICAgIGFyZzEsIHZhbHVlX2VtYmVkZGVkX29mZnNl dCAoYXJnMSkgKyBvZmZzZXQsCi0rCQkJCSAgICAgICB0eXBlX2xlbmd0aF91bml0cyAodHlwZSkp OwotKwkgICAgfQotIAl9Ci0tICAgICAgdi0+b2Zmc2V0ID0gKHZhbHVlX29mZnNldCAoYXJnMSkg KyBvZmZzZXQKLS0JCSAgICsgdmFsdWVfZW1iZWRkZWRfb2Zmc2V0IChhcmcxKSk7Ci0rCi0rICAg ICAgaWYgKCFUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpCi0rICAgICAgICAgIHx8ICFUWVBFX0RB VEFfTE9DQVRJT05fS0lORCAodHlwZSkgPT0gUFJPUF9DT05TVCkKLSsJdi0+b2Zmc2V0ID0gKHZh bHVlX29mZnNldCAoYXJnMSkgKyBvZmZzZXQKLSsJCSAgICAgKyB2YWx1ZV9lbWJlZGRlZF9vZmZz ZXQgKGFyZzEpKTsKLSAgICAgfQotICAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwg YXJnMSk7Ci0gICBWQUxVRV9SRUdOVU0gKHYpID0gVkFMVUVfUkVHTlVNIChhcmcxKTsKLUBAIC0z Njg5LDcgKzM3MTgsOCBAQAotIAkJCSAgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUp Ci0gewotICAgLyogUmUtYWRqdXN0IHR5cGUuICAqLwotLSAgZGVwcmVjYXRlZF9zZXRfdmFsdWVf dHlwZSAodmFsdWUsIFRZUEVfVEFSR0VUX1RZUEUgKG9yaWdpbmFsX3R5cGUpKTsKLSsgIGlmICgh aXNfZHluYW1pY190eXBlIChUWVBFX1RBUkdFVF9UWVBFIChvcmlnaW5hbF90eXBlKSkpCi0rICAg IGRlcHJlY2F0ZWRfc2V0X3ZhbHVlX3R5cGUgKHZhbHVlLCBUWVBFX1RBUkdFVF9UWVBFIChvcmln aW5hbF90eXBlKSk7Ci0gCi0gICAvKiBBZGQgZW1iZWRkaW5nIGluZm8uICAqLwotICAgc2V0X3Zh bHVlX2VuY2xvc2luZ190eXBlICh2YWx1ZSwgZW5jX3R5cGUpOwotQEAgLTM3MDYsNiArMzczNiwx MiBAQAotICAgc3RydWN0IHZhbHVlICpyZXR2YWw7Ci0gICBzdHJ1Y3QgdHlwZSAqZW5jX3R5cGU7 Ci0gCi0rICBpZiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgIT0gbGFuZ3VhZ2VfZm9y dHJhbgotKyAgICAgICYmIFRZUEVfREFUQV9MT0NBVElPTiAodmFsdWVfdHlwZV9hcmdfdG1wKSAh PSBOVUxMCi0rICAgICAgJiYgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHZhbHVlX3R5cGVfYXJn X3RtcCkgPT0gUFJPUF9DT05TVCkKLSsgICAgYXJnID0gdmFsdWVfYXRfbGF6eSAodmFsdWVfdHlw ZV9hcmdfdG1wLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBUWVBFX0RBVEFfTE9DQVRJT05f QUREUiAodmFsdWVfdHlwZV9hcmdfdG1wKSk7Ci0rCi0gICByZXR2YWwgPSBjb2VyY2VfcmVmX2lm X2NvbXB1dGVkIChhcmcpOwotICAgaWYgKHJldHZhbCkKLSAgICAgcmV0dXJuIHJldHZhbDsKLUBA IC0zODM0LDggKzM4NzAsMTQgQEAKLSAgICAgfQotICAgZWxzZSBpZiAoVkFMVUVfTFZBTCAodmFs KSA9PSBsdmFsX21lbW9yeSkKLSAgICAgewotLSAgICAgIENPUkVfQUREUiBhZGRyID0gdmFsdWVf YWRkcmVzcyAodmFsKTsKLSAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYg KHZhbHVlX2VuY2xvc2luZ190eXBlICh2YWwpKTsKLSsgICAgICBDT1JFX0FERFIgYWRkcjsKLSsK LSsgICAgICBpZiAoVFlQRV9EQVRBX0xPQ0FUSU9OICh0eXBlKSAhPSBOVUxMCi0rCSAgJiYgVFlQ RV9EQVRBX0xPQ0FUSU9OX0tJTkQgKHR5cGUpID09IFBST1BfQ09OU1QpCi0rCWFkZHIgPSBUWVBF X0RBVEFfTE9DQVRJT05fQUREUiAodHlwZSk7Ci0rICAgICAgZWxzZQotKwlhZGRyID0gdmFsdWVf YWRkcmVzcyAodmFsKTsKLSAKLSAgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpKQotIAlyZWFk X3ZhbHVlX21lbW9yeSAodmFsLCAwLCB2YWx1ZV9zdGFjayAodmFsKSwKLUluZGV4OiBnZGItNy4x MC41MC4yMDE2MDEwNi9nZGIvZHdhcmYybG9jLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC41 MC4yMDE2MDEwNi5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE2LTAxLTA4IDE5OjE1OjM1LjA5MTU4 MjUwNCArMDEwMAotKysrIGdkYi03LjEwLjUwLjIwMTYwMTA2L2dkYi9kd2FyZjJsb2MuYwkyMDE2 LTAxLTA4IDE5OjE1OjQ0Ljk4ODYzNzcwOCArMDEwMAotQEAgLTIzNjgsNiArMjM2OCwxMSBAQAot IAkgICAgYWRkcmVzcyA9IHZhbHVlX2FzX2FkZHJlc3MgKHZhbHVlX2Zyb21fcG9pbnRlciAocHRy X3R5cGUsIGFkZHJlc3MpKTsKLSAKLSAJICAgIGRvX2NsZWFudXBzICh2YWx1ZV9jaGFpbik7Ci0r Ci0rCSAgICAvKiBTZWxlY3QgcmlnaHQgZnJhbWUgdG8gY29ycmVjdGx5IGV2YWx1YXRlIFZMQSdz IGR1cmluZyBhIGJhY2t0cmFjZS4gICovCi0rCSAgICBpZiAoaXNfZHluYW1pY190eXBlICh0eXBl KSkKLSsJICAgICAgc2VsZWN0X2ZyYW1lIChmcmFtZSk7Ci0rCi0gCSAgICByZXR2YWwgPSB2YWx1 ZV9hdF9sYXp5ICh0eXBlLCBhZGRyZXNzICsgYnl0ZV9vZmZzZXQpOwotIAkgICAgaWYgKGluX3N0 YWNrX21lbW9yeSkKLSAJICAgICAgc2V0X3ZhbHVlX3N0YWNrIChyZXR2YWwsIDEpOwotQEAgLTI2 NjAsNiArMjY2NSwxOSBAQAotIAkJCSAgICAgZGF0YSwgZGF0YSArIHNpemUsIHBlcl9jdSk7Ci0g fQotIAotKy8qIFNlZSBkd2FyZjJsb2MuaC4gICovCi0rCi0raW50Ci0rZHdhcmYyX2FkZHJlc3Nf ZGF0YV92YWxpZCAoY29uc3Qgc3RydWN0IHR5cGUgKnR5cGUpCi0rewotKyAgaWYgKFRZUEVfTk9U X0FTU09DSUFURUQgKHR5cGUpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIGlmIChUWVBFX05PVF9B TExPQ0FURUQgKHR5cGUpKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIHJldHVybiAxOwotK30KLSAM Ci0gLyogSGVscGVyIGZ1bmN0aW9ucyBhbmQgYmF0b24gZm9yIGR3YXJmMl9sb2NfZGVzY19uZWVk c19mcmFtZS4gICovCi0gCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCAz ZjY4ZTUxLi4xNTUwNmJmIDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAt MTksMTUgKzE5LDE1IEBAIFN1bW1hcnk6IEEgR05VIHNvdXJjZS1sZXZlbCBkZWJ1Z2dlciBmb3Ig QywgQysrLCBGb3J0cmFuLCBHbyBhbmQgb3RoZXIgbGFuZ3VhZ2VzCiBOYW1lOiAlez9zY2xfcHJl Zml4fWdkYgogCiAjIEZyZWV6ZSBpdCB3aGVuIEdEQiBnZXRzIGJyYW5jaGVkCi0lZ2xvYmFsIHNu YXBzcmMgICAgMjAxNjAyMTAKKyVnbG9iYWwgc25hcHNyYyAgICAyMDE2MDgwMQogIyBTZWUgdGlt ZXN0YW1wIG9mIHNvdXJjZSBnbnVsaWIgaW5zdGFsbGVkIGludG8gZ2RiL2dudWxpYi8gLgogJWds b2JhbCBzbmFwZ251bGliIDIwMTUwODIyCiAlZ2xvYmFsIHRhcm5hbWUgZ2RiLSV7dmVyc2lvbn0K LVZlcnNpb246IDcuMTEuMQorVmVyc2lvbjogNy4xMS45MC4yMDE2MDgwNwogCiAjIFRoZSByZWxl YXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQgbnVtYmVyLCBzdGFydCBpdCBh dCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5hbWUnIHRvIHN0YXkgZnVsbHkg cnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVzdGluZy4KLVJlbGVhc2U6IDc3 JXs/ZGlzdH0KK1JlbGVhc2U6IDUlez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYz KyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBh bmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluIGFuZCBHRkRMCiBH cm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC0yNzUsNiArMjc1LDggQEAgUGF0Y2gyNzE6 IGdkYi02LjUtYnoyNDM4NDUtc3RhbGUtdGVzdGluZy16b21iaWUtdGVzdC5wYXRjaAogIz1wdXNo CiBQYXRjaDI3NDogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAogIyBGaXggbG9hZGluZyBv ZiBjb3JlIGZpbGVzIHdpdGhvdXQgYnVpbGQtaWRzIGJ1dCB3aXRoIGJ1aWxkLWlkcyBpbiBleGVj dXRhYmxlcy4KKyMgTG9hZCBzdHJpY3RseSBidWlsZC1pZC1jaGVja2VkIGNvcmUgZmlsZXMgb25s eSBpZiBubyBleGVjdXRhYmxlIGlzIHNwZWNpZmllZAorIyAoSmFuIEtyYXRvY2h2aWwsIFJIIEJa IDEzMzk4NjIpLgogIz1wdXNoCiBQYXRjaDY1OTogZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xp Yi1taXNzaW5nLWlkcy5wYXRjaAogIz1wdXNoCkBAIC01MTksMTIgKzUyMSwxNiBAQCBQYXRjaDEw NjA6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRlbC0zb2Y2LnBhdGNoCiBQYXRjaDEwNjE6IGdkYi1m b3J0cmFuLXN0cmlkZS1pbnRlbC00b2Y2LnBhdGNoCiBQYXRjaDEwNjI6IGdkYi1mb3J0cmFuLXN0 cmlkZS1pbnRlbC01b2Y2LnBhdGNoCiBQYXRjaDEwNjM6IGdkYi1mb3J0cmFuLXN0cmlkZS1pbnRl bC02b2Y2LnBhdGNoCi1QYXRjaDg4ODogZ2RiLXZsYS1pbnRlbC5wYXRjaAotUGF0Y2g5ODM6IGdk Yi12bGEtaW50ZWwtbG9naWNhbC1ub3QucGF0Y2gKK1BhdGNoMTEzMjogZ2RiLXZsYS1pbnRlbC0x b2Y3LnBhdGNoCitQYXRjaDExMzM6IGdkYi12bGEtaW50ZWwtMm9mNy5wYXRjaAorUGF0Y2gxMTM0 OiBnZGItdmxhLWludGVsLTNvZjcucGF0Y2gKK1BhdGNoMTEzNTogZ2RiLXZsYS1pbnRlbC00b2Y3 LnBhdGNoCitQYXRjaDExMzY6IGdkYi12bGEtaW50ZWwtNW9mNy5wYXRjaAorUGF0Y2gxMTM3OiBn ZGItdmxhLWludGVsLTZvZjcucGF0Y2gKK1BhdGNoMTEzODogZ2RiLXZsYS1pbnRlbC03b2Y3LnBh dGNoCiBQYXRjaDg4OTogZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2gKLVBhdGNoOTEy OiBnZGItdmxhLWludGVsLTA0b2YyMy1maXgucGF0Y2gKIFBhdGNoODg3OiBnZGItYXJjaGVyLXZs YS10ZXN0cy5wYXRjaAotUGF0Y2gxMDY5OiBnZGItZm9ydHJhbi1zdHJpZGUtaW50ZWwtNm9mNi1u b2tmYWlsLnBhdGNoCitQYXRjaDg4ODogZ2RiLXZsYS1pbnRlbC10ZXN0cy5wYXRjaAogCiAjIENv bnRpbnVlIGJhY2t0cmFjZSBldmVuIGlmIGEgZnJhbWUgZmlsdGVyIHRocm93cyBhbiBleGNlcHRp b24gKFBoaWwgTXVsZG9vbikuCiBQYXRjaDkxODogZ2RiLWJ0cm9idXN0LnBhdGNoCkBAIC01NzAs MTQgKzU3Niw2IEBAIFBhdGNoMTEyMDogZ2RiLXRlc3RzdWl0ZS1kdzItdW5kZWZpbmVkLXJldC1h ZGRyLnBhdGNoCiAjIE5ldyB0ZXN0IGZvciBQeXRob24gIkNhbm5vdCBsb2NhdGUgb2JqZWN0IGZp bGUgZm9yIGJsb2NrIiAoZm9yIFJIIEJaIDEzMjU3OTUpLgogUGF0Y2gxMTIzOiBnZGItcmhiejEz MjU3OTUtZnJhbWVmaWx0ZXJzLXRlc3QucGF0Y2gKIAotIyBJbXBvcnQgYmFyZSBEV19UQUdfbGV4 aWNhbF9ibG9jayAoUkggQlogMTMyNTM5NikuCi1QYXRjaDExMjg6IGdkYi1iYXJlLURXX1RBR19s ZXhpY2FsX2Jsb2NrLTFvZjIucGF0Y2gKLVBhdGNoMTEyOTogZ2RiLWJhcmUtRFdfVEFHX2xleGlj YWxfYmxvY2stMm9mMi5wYXRjaAotCi0jIFthYXJjaDY0XSBGaXggQVJNdjguMS92OC4yIGZvciBo dyB3YXRjaHBvaW50IGFuZCBicmVha3BvaW50Ci0jIChBbmRyZXcgUGluc2tpLCBSSCBCWiAxMzYz NjM1KS4KLVBhdGNoMTE0MTogZ2RiLXJoYnoxMzYzNjM1LWFhcmNoNjQtYXJtdjgxODIucGF0Y2gK LQogJWlmIDAleyE/cmhlbDoxfSB8fCAwJXs/cmhlbH0gPiA2CiAjIFJMX1NUQVRFX0ZFRE9SQV9H REIgd291bGQgbm90IGJlIGZvdW5kIGZvcjoKICMgUGF0Y2g2NDI6IGdkYi1yZWFkbGluZTYyLWFz ay1tb3JlLXJoLnBhdGNoCkBAIC03NzUsMTAgKzc3MywxNCBAQCBmaW5kIC1uYW1lICIqLmluZm8q Inx4YXJncyBybSAtZgogJXBhdGNoMTA2MSAtcDEKICVwYXRjaDEwNjIgLXAxCiAlcGF0Y2gxMDYz IC1wMQotJXBhdGNoODg4IC1wMQotJXBhdGNoOTgzIC1wMQorJXBhdGNoMTEzMiAtcDEKKyVwYXRj aDExMzMgLXAxCislcGF0Y2gxMTM0IC1wMQorJXBhdGNoMTEzNSAtcDEKKyVwYXRjaDExMzYgLXAx CislcGF0Y2gxMTM3IC1wMQorJXBhdGNoMTEzOCAtcDEKICVwYXRjaDg4OSAtcDEKLSVwYXRjaDkx MiAtcDEKICVwYXRjaDEgLXAxCiAKICVwYXRjaDEwNSAtcDEKQEAgLTg3Miw3ICs4NzQsNyBAQCBm aW5kIC1uYW1lICIqLmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoODUyIC1wMQogJXBhdGNoODYz IC1wMQogJXBhdGNoODg3IC1wMQotJXBhdGNoMTA2OSAtcDEKKyVwYXRjaDg4OCAtcDEKICVwYXRj aDkxOCAtcDEKICVwYXRjaDkyNSAtcDEKICVwYXRjaDkyNyAtcDEKQEAgLTg4Miw2ICs4ODQsMTYg QEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDEwNTYgLXAxCiAlcGF0 Y2gxMDczIC1wMQogJXBhdGNoODQ4IC1wMQorJWlmIDAleyE/ZWw2OjF9Citmb3IgaSBpbiBcCisg IGdkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkgXAorICBnZGIvcHl0aG9uL2xpYi9n ZGIvYmFja3RyYWNlLnB5IFwKKyAgZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNl LnB5IFwKKyAgO2RvCisgIHRlc3QgLWUgJGkKKyAgOiA+JGkKK2RvbmUKKyVlbmRpZgogJXBhdGNo ODMzIC1wMQogJXBhdGNoNjQyIC1wMQogJXBhdGNoMzM3IC1wMQpAQCAtODkwLDkgKzkwMiw2IEBA IGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0Y2gxMTE4IC1wMQogJXBhdGNo MTEyMCAtcDEKICVwYXRjaDExMjMgLXAxCi0lcGF0Y2gxMTI4IC1wMQotJXBhdGNoMTEyOSAtcDEK LSVwYXRjaDExNDEgLXAxCiAKICVwYXRjaDEwNzUgLXAxCiAlaWYgMCV7P3JoZWw6MX0gJiYgMCV7 P3JoZWx9IDw9IDcKQEAgLTk3MCw2ICs5NzksOCBAQCBDRkxBR1M9IiRDRkxBR1MgLURORUVEX1JM X1NUQVRFX0ZFRE9SQV9HREIiCiBDRkxBR1M9IiRDRkxBR1MgLURORUVEX0RFVEFDSF9TSUdTVE9Q IgogJWVuZGlmCiAKK2V4cG9ydCBDWFhGTEFHUz0iJENGTEFHUyIKKwogIyAtLWh0bWxkaXIgYW5k IC0tcGRmZGlyIGFyZSBub3QgdXNlZCBhcyB0aGV5IGFyZSB1c2VkIGZyb20gJXtnZGJfYnVpbGR9 LgogLi4vY29uZmlndXJlCQkJCQkJCVwKIAktLXByZWZpeD0le19wcmVmaXh9CQkJCQlcCkBAIC05 ODAsNiArOTkxLDcgQEAgQ0ZMQUdTPSIkQ0ZMQUdTIC1ETkVFRF9ERVRBQ0hfU0lHU1RPUCIKIAkt LXdpdGgtc3lzdGVtLWdkYmluaXQ9JXtfc3lzY29uZmRpcn0vZ2RiaW5pdAkJXAogCS0td2l0aC1n ZGItZGF0YWRpcj0le19kYXRhZGlyfS9nZGIJCQlcCiAJLS1lbmFibGUtZ2RiLWJ1aWxkLXdhcm5p bmdzPSwtV25vLXVudXNlZAkJXAorCS0tZW5hYmxlLWJ1aWxkLXdpdGgtY3h4CQkJCQlcCiAlaWZu YXJjaCAle2l4ODZ9IGFscGhhIHBwYyBzMzkwIHMzOTB4IHg4Nl82NCBwcGM2NCBwcGM2NGxlIHNw YXJjIHNwYXJjdjkgc3BhcmM2NCAle2FybX0gYWFyY2g2NAogCS0tZGlzYWJsZS13ZXJyb3IJCQkJ CVwKICVlbHNlCkBAIC0xNDEyLDkgKzE0MjQsMjEgQEAgdGhlbgogZmkKIAogJWNoYW5nZWxvZwot KiBXZWQgQXVnICAzIDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5j b20+IC0gNy4xMS4xLTc3LmZjMjQKLS0gW2FhcmNoNjRdIEZpeCBBUk12OC4xL3Y4LjIgZm9yIGh3 IHdhdGNocG9pbnQgYW5kIGJyZWFrcG9pbnQKLSAgKEFuZHJldyBQaW5za2ksIFJIIEJaIDEzNjM2 MzUpLgorKiBTdW4gQXVnICA3IDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+IC0gNy4xMS45MC4yMDE2MDgwNy01LmZjMjUKKy0gUmViYXNlIHRvIEZTRiBHREIg Ny4xMS45MC4yMDE2MDgwNyAocHJlLTcuMTIgYnJhbmNoIHNuYXBzaG90KS4KKworKiBTdW4gSnVs IDMxIDIwMTYgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4x MS41MC4yMDE2MDcyMS00LmZjMjUKKy0gVGVzdGNhc2UgZm9yOiBMb2FkIHN0cmljdGx5IGJ1aWxk LWlkLWNoZWNrZWQgY29yZSBmaWxlcyBvbmx5IGlmIG5vIGV4ZWN1dGFibGUKKyAgaXMgc3BlY2lm aWVkIChKYW4gS3JhdG9jaHZpbCwgUkggQlogMTMzOTg2MikuCisKKyogVGh1IEp1bCAyOCAyMDE2 IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcuMTEuNTAuMjAx NjA3MjEtMy5mYzI1CistIERvIG5vdCBhcHBseSBSSEVMLTYgcGF0Y2hlcyBvbiBub24tUkhFTC02 IGV2ZW4gZm9yIHRlc3RzdWl0ZS4KKworKiBUaHUgSnVsIDIxIDIwMTYgSmFuIEtyYXRvY2h2aWwg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy4xMS41MC4yMDE2MDcyMS0yLmZjMjUKKy0g UmViYXNlIHRvIEZTRiBHREIgNy4xMS41MC4yMDE2MDcyMSAocHJlLTcuMTIgdHJ1bmsgc25hcHNo b3QpLgorCisqIFN1biBKdWwgMTcgMjAxNiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxA cmVkaGF0LmNvbT4gLSA3LjExLjUwLjIwMTYwNzE2LTEuZmMyNQorLSBSZWJhc2UgdG8gRlNGIEdE QiA3LjExLjUwLjIwMTYwNzE2IChwcmUtNy4xMiB0cnVuayBzbmFwc2hvdCkuCiAKICogTW9uIEp1 biAyNyAyMDE2IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPiAtIDcu MTEuMS03Ni5mYzI0CiAtIFRlc3QgJ2luZm8gdHlwZS1wcmludGVycycgUHl0aG9uIGVycm9yIChS SCBCWiAxMzUwNDM2KS4KCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCAyNjQ3 OGViLi5iMzBkYzdjIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEsMiAr MSwyIEBACiA3YWQzMmQzODk0YWFmOTBkMDBhNDM0M2E3MzVjM2UxYyAgZ2RiLWxpYnN0ZGMrKy12 My1weXRob24tcjIyNTUyMS50YXIueHoKLTVhYTcxNTIyZTQ4OGUzNTgyNDM5MTc5NjdkYjg3NDc2 ICBnZGItNy4xMS4xLnRhci54egorMmU1MmRkOGI2M2ViMGE0NTlmZWJiZWUwMTIyMWZiMTAgIGdk Yi03LjExLjkwLjIwMTYwODA3LnRhci54ego=