From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] RFC x86/emul: Drop segment_attributes_t Date: Wed, 7 Jun 2017 14:04:30 +0100 Message-ID: <1496840670-10261-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIGFtb3VudCBvZiBuYW1lc3BhY2UgcmVzb2x1dGlvbiBpcyB1bm5lY2Vzc3JpbHkgbGFyZ2Us IGFzIGFsbCBjb2RlIGRlYWxzIGluCnRlcm1zIG9mIHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyLiAg VGhpcyByZW1vdmVzIHRoZSAuZmllbGRzIHBhcnQgb2YgYWxsCnJlZmVyZW5jZXMsIGFuZCBhbHRl cnMgLmJ5dGVzIGZvciAucmF3LgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuICBGb3Igc29tZSByZWFz b24gSSBjYW4ndCBpZGVudGlmeSwgdGhlIGNoYW5nZXMgdG8Ke3JtLHZtODZ9X3tjcyxkc31fYXR0 ciBjYXVzZXMgR0NDIHRvIGVuY29kZSB0aGUgdmFsdWVzIGFzIGltbWVkYXRlIG9wZXJhbmRzCnJh dGhlciB0aGFuIHZhcmlhYmxlcyBpbiAucm9kYXRhLiAgQXMgYSByZXN1bHQsCnZteF97Z2V0LHNl dH1fc2VnbWVudF9yZWdpc3RlcigpIGFyZSBzaG9ydGVyLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8 SkJldWxpY2hAc3VzZS5jb20+CgpSRkMsIGJlY2F1c2UgSSdkIGFsc28gbGlrZSB0byBmbG9hdCB0 aGUgaWRlYSBvZiBtYWtpbmcgdGhpcyBhZGp1c3RtZW50IGFzIHdlbGw6CgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmggYi94ZW4vYXJjaC94ODYveDg2 X2VtdWxhdGUveDg2X2VtdWxhdGUuaAppbmRleCAzMzU1YzAxLi41M2E1NDgwIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaAorKysgYi94ZW4vYXJjaC94 ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaApAQCAtOTAsNyArOTAsNyBAQCBzdHJ1Y3QgeDg2 X2V2ZW50IHsKIHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyIHsKICAgICAgdWludDE2X3QgICBzZWw7 CiAgICAgICAgICAgdW5pb24gewotICAgICAgICB1aW50MTZfdCByYXc7CisgICAgICAgIHVpbnQx Nl90IGF0dHI7CiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAgICB1aW50MTZfdCB0eXBlOjQ7 ICAgIC8qIDA7ICBCaXQgNDAtNDMgKi8KICAgICAgICAgICAgIHVpbnQxNl90IHM6ICAgMTsgICAg LyogNDsgIEJpdCA0NCAqLwpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0cnVjdCBzZWdtZW50X3JlZ2lz dGVyIHsKICAgICAgICAgICAgIHVpbnQxNl90IGc6ICAgMTsgICAgLyogMTE7IEJpdCA1NSAqLwog ICAgICAgICAgICAgdWludDE2X3QgcGFkOiA0OwogICAgICAgICB9OwotICAgIH0gYXR0cjsKKyAg ICB9OwogICAgIHVpbnQzMl90ICAgbGltaXQ7CiAgICAgdWludDY0X3QgICBiYXNlOwogfTsKCndo aWNoIHdvdWxkIHR1cm4gLmF0dHIucmF3IGludG8ganVzdCAuYXR0ciwgYW5kIHJlbW92ZSAuYXR0 ciBmb3IgYWNjZXNzZXMgaW50bwp0aGUgYml0ZmllbGQuCgpGdXJ0aGVybW9yZSwgaW4gYSBmb2xs b3dpbmcgcGF0Y2gsIEkgaW50ZW5kIHRvIG1ha2UgYSBzaW1pbGFyIGFkanVzdG1lbnQgYXMKaHR0 cDovL3hlbmJpdHMueGVuLm9yZy9naXR3ZWIvP3A9eHRmLmdpdDthPWNvbW1pdGRpZmY7aD1mMDk5 MjExZjJlYmRhZGY2MWFlNjQxNjU1OTIyMGQ2OWI3ODhjZDJiCnRvIGV4cG9zZSB0aGUgaW50ZXJu YWwgY29kZS9kYXRhIGZpZWxkIG5hbWVzLiAgVGhpcyB3aWxsIHNpbXBsaWZ5IGEgbG90IG9mCmNv ZGUgd2hpY2ggY3VycmVudGx5IHVzZXMgb3BlbmNvZGVkIG51bWJlcnMgYWdhaW5zdCB0aGUgdHlw ZSBmaWVsZC4KClRob3VnaHRzPwotLS0KIHRvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxh dG9yL2Z1enotZW11bC5jIHwgIDEwICstCiB0b29scy90ZXN0cy94ODZfZW11bGF0b3IvdGVzdF94 ODZfZW11bGF0b3IuYyAgICB8ICAgMiArLQogeGVuL2FyY2gveDg2L2NwdS92cG11LmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vZG9tYWluLmMgICAg ICAgICAgICAgICAgICAgICAgIHwgIDQyICsrKy0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0 ZS5jICAgICAgICAgICAgICAgICAgICAgIHwgIDIwICstLQogeGVuL2FyY2gveDg2L2h2bS9odm0u YyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNTQgKysrKysrKysrKysrLS0tLS0tLS0tLS0t CiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyAgICAgICAgICAgICAgICAgICAgICB8ICAxMCAr LQogeGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtZGVidWcuYyAgICAgICAgICAgICAgICAgfCAgIDYg Ky0KIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL3ZtY2IuYyAgICAgICAgICAgICAgICAgICAgIHwgIDE2 ICstLQogeGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYyAgICAgICAgICAgICAgICAgfCAg MTAgKy0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAgICAgICAgICAgICAgICAgICAgIHwg IDMyICsrLS0tCiB4ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jICAgICAgICAgICAgICAg ICB8ICAgNiArLQogeGVuL2FyY2gveDg2L3RyYXBzLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDAgKysrLS0tCiB4ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMiArLQogeGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMg ICAgICAgICAgfCAgNTQgKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2Vt dWxhdGUuaCAgICAgICAgICB8ICAzNSArKystLS0KIDE2IGZpbGVzIGNoYW5nZWQsIDIxNyBpbnNl cnRpb25zKCspLCAyMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZnV6ei94ODZf aW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMgYi90b29scy9mdXp6L3g4Nl9pbnN0cnVj dGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYwppbmRleCBhYWRiYjQwLi5jODA1MDFmIDEwMDY0NAot LS0gYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYworKysg Yi90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYwpAQCAtNTgz LDcgKzU4Myw3IEBAIHN0YXRpYyBib29sIGluX2xvbmdtb2RlKHN0cnVjdCB4ODZfZW11bGF0ZV9j dHh0ICpjdHh0KQogICAgIGNvbnN0IHN0cnVjdCBmdXp6X3N0YXRlICpzID0gY3R4dC0+ZGF0YTsK ICAgICBjb25zdCBzdHJ1Y3QgZnV6el9jb3JwdXMgKmMgPSBzLT5jb3JwdXM7CiAKLSAgICByZXR1 cm4gbG9uZ19tb2RlX2FjdGl2ZShjdHh0KSAmJiBjLT5zZWdtZW50c1t4ODZfc2VnX2NzXS5hdHRy LmZpZWxkcy5sOworICAgIHJldHVybiBsb25nX21vZGVfYWN0aXZlKGN0eHQpICYmIGMtPnNlZ21l bnRzW3g4Nl9zZWdfY3NdLmF0dHIubDsKIH0KIAogc3RhdGljIHZvaWQgc2V0X3NpemVzKHN0cnVj dCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQpAQCAtNTk3LDggKzU5Nyw4IEBAIHN0YXRpYyB2b2lk IHNldF9zaXplcyhzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKICAgICAgICAgY3R4dC0+ YWRkcl9zaXplID0gY3R4dC0+c3Bfc2l6ZSA9IDY0OwogICAgIGVsc2UKICAgICB7Ci0gICAgICAg IGN0eHQtPmFkZHJfc2l6ZSA9IGMtPnNlZ21lbnRzW3g4Nl9zZWdfY3NdLmF0dHIuZmllbGRzLmRi ID8gMzIgOiAxNjsKLSAgICAgICAgY3R4dC0+c3Bfc2l6ZSAgID0gYy0+c2VnbWVudHNbeDg2X3Nl Z19zc10uYXR0ci5maWVsZHMuZGIgPyAzMiA6IDE2OworICAgICAgICBjdHh0LT5hZGRyX3NpemUg PSBjLT5zZWdtZW50c1t4ODZfc2VnX2NzXS5hdHRyLmRiID8gMzIgOiAxNjsKKyAgICAgICAgY3R4 dC0+c3Bfc2l6ZSAgID0gYy0+c2VnbWVudHNbeDg2X3NlZ19zc10uYXR0ci5kYiA/IDMyIDogMTY7 CiAgICAgfQogfQogCkBAIC03NDEsOCArNzQxLDggQEAgc3RhdGljIHZvaWQgc2FuaXRpemVfaW5w dXQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiAgICAgLyogRUZMQUdTLlZNIGltcGxp ZXMgMTYtYml0IG1vZGUgKi8KICAgICBpZiAoIHJlZ3MtPnJmbGFncyAmIFg4Nl9FRkxBR1NfVk0g KQogICAgIHsKLSAgICAgICAgYy0+c2VnbWVudHNbeDg2X3NlZ19jc10uYXR0ci5maWVsZHMuZGIg PSAwOwotICAgICAgICBjLT5zZWdtZW50c1t4ODZfc2VnX3NzXS5hdHRyLmZpZWxkcy5kYiA9IDA7 CisgICAgICAgIGMtPnNlZ21lbnRzW3g4Nl9zZWdfY3NdLmF0dHIuZGIgPSAwOworICAgICAgICBj LT5zZWdtZW50c1t4ODZfc2VnX3NzXS5hdHRyLmRiID0gMDsKICAgICB9CiB9CiAKZGlmZiAtLWdp dCBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jIGIvdG9vbHMv dGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKaW5kZXggMTk5MmMzZi4uZjQy YjEyOCAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxh dG9yLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMK QEAgLTI2NCw3ICsyNjQsNyBAQCBzdGF0aWMgaW50IHJlYWRfc2VnbWVudCgKICAgICBpZiAoICFp c194ODZfdXNlcl9zZWdtZW50KHNlZykgKQogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRM RUFCTEU7CiAgICAgbWVtc2V0KHJlZywgMCwgc2l6ZW9mKCpyZWcpKTsKLSAgICByZWctPmF0dHIu ZmllbGRzLnAgPSAxOworICAgIHJlZy0+YXR0ci5wID0gMTsKICAgICByZXR1cm4gWDg2RU1VTF9P S0FZOwogfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L3ZwbXUuYyBiL3hlbi9hcmNo L3g4Ni9jcHUvdnBtdS5jCmluZGV4IDIxMzgzZDMuLmYxNWJmMTEgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9jcHUvdnBtdS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jCkBAIC0zMDQs NyArMzA0LDcgQEAgdm9pZCB2cG11X2RvX2ludGVycnVwdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAq cmVncykKICAgICAgICAgICAgICAgICByLT5jcyA9IHNlZy5zZWw7CiAgICAgICAgICAgICAgICAg aHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHNhbXBsZWQsIHg4Nl9zZWdfc3MsICZzZWcpOwogICAg ICAgICAgICAgICAgIHItPnNzID0gc2VnLnNlbDsKLSAgICAgICAgICAgICAgICByLT5jcGwgPSBz ZWcuYXR0ci5maWVsZHMuZHBsOworICAgICAgICAgICAgICAgIHItPmNwbCA9IHNlZy5hdHRyLmRw bDsKICAgICAgICAgICAgICAgICBpZiAoICEoc2FtcGxlZC0+YXJjaC5odm1fdmNwdS5ndWVzdF9j clswXSAmIFg4Nl9DUjBfUEUpICkKICAgICAgICAgICAgICAgICAgICAgKmZsYWdzIHw9IFBNVV9T QU1QTEVfUkVBTDsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0v ZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RvbWFpbi5jCmluZGV4IGRjYTdhMDAuLjQ0MTAz ZjQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZG9tYWluLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS9kb21haW4uYwpAQCAtMjcsMTMgKzI3LDEzIEBACiBzdGF0aWMgaW50IGNoZWNrX3Nl Z21lbnQoc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgKnJlZywgZW51bSB4ODZfc2VnbWVudCBzZWcp CiB7CiAKLSAgICBpZiAoIHJlZy0+YXR0ci5maWVsZHMucGFkICE9IDAgKQorICAgIGlmICggcmVn LT5hdHRyLnBhZCAhPSAwICkKICAgICB7CiAgICAgICAgIGdwcmludGsoWEVOTE9HX0VSUiwgIlNl Z21lbnQgYXR0cmlidXRlIGJpdHMgMTItMTUgYXJlIG5vdCB6ZXJvXG4iKTsKICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CiAgICAgfQogCi0gICAgaWYgKCByZWctPmF0dHIuYnl0ZXMgPT0gMCApCisg ICAgaWYgKCByZWctPmF0dHIucmF3ID09IDAgKQogICAgIHsKICAgICAgICAgaWYgKCBzZWcgIT0g eDg2X3NlZ19kcyAmJiBzZWcgIT0geDg2X3NlZ19lcyApCiAgICAgICAgIHsKQEAgLTQ1LDQ2ICs0 NSw0NiBAQCBzdGF0aWMgaW50IGNoZWNrX3NlZ21lbnQoc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIg KnJlZywgZW51bSB4ODZfc2VnbWVudCBzZWcpCiAKICAgICBpZiAoIHNlZyA9PSB4ODZfc2VnX3Ry ICkKICAgICB7Ci0gICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy5zICkKKyAgICAgICAgaWYg KCByZWctPmF0dHIucyApCiAgICAgICAgIHsKICAgICAgICAgICAgIGdwcmludGsoWEVOTE9HX0VS UiwgIkNvZGUgb3IgZGF0YSBzZWdtZW50IHByb3ZpZGVkIGZvciBUUlxuIik7CiAgICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQogCi0gICAgICAgIGlmICggcmVnLT5hdHRyLmZp ZWxkcy50eXBlICE9IFNZU19ERVNDX3Rzc19idXN5ICkKKyAgICAgICAgaWYgKCByZWctPmF0dHIu dHlwZSAhPSBTWVNfREVTQ190c3NfYnVzeSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGdwcmlu dGsoWEVOTE9HX0VSUiwgIk5vbi0zMi1iaXQtVFNTIHNlZ21lbnQgcHJvdmlkZWQgZm9yIFRSXG4i KTsKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9CiAgICAgfQotICAgIGVs c2UgaWYgKCAhcmVnLT5hdHRyLmZpZWxkcy5zICkKKyAgICBlbHNlIGlmICggIXJlZy0+YXR0ci5z ICkKICAgICB7CiAgICAgICAgIGdwcmludGsoWEVOTE9HX0VSUiwKICAgICAgICAgICAgICAgICAi U3lzdGVtIHNlZ21lbnQgcHJvdmlkZWQgZm9yIGEgY29kZSBvciBkYXRhIHNlZ21lbnRcbiIpOwog ICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICB9CiAKLSAgICBpZiAoICFyZWctPmF0dHIuZmll bGRzLnAgKQorICAgIGlmICggIXJlZy0+YXR0ci5wICkKICAgICB7CiAgICAgICAgIGdwcmludGso WEVOTE9HX0VSUiwgIk5vbi1wcmVzZW50IHNlZ21lbnQgcHJvdmlkZWRcbiIpOwogICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKICAgICB9CiAKLSAgICBpZiAoIHNlZyA9PSB4ODZfc2VnX2NzICYmICEo cmVnLT5hdHRyLmZpZWxkcy50eXBlICYgMHg4KSApCisgICAgaWYgKCBzZWcgPT0geDg2X3NlZ19j cyAmJiAhKHJlZy0+YXR0ci50eXBlICYgMHg4KSApCiAgICAgewogICAgICAgICBncHJpbnRrKFhF TkxPR19FUlIsICJOb24tY29kZSBzZWdtZW50IHByb3ZpZGVkIGZvciBDU1xuIik7CiAgICAgICAg IHJldHVybiAtRUlOVkFMOwogICAgIH0KIAogICAgIGlmICggc2VnID09IHg4Nl9zZWdfc3MgJiYK LSAgICAgICAgICgocmVnLT5hdHRyLmZpZWxkcy50eXBlICYgMHg4KSB8fCAhKHJlZy0+YXR0ci5m aWVsZHMudHlwZSAmIDB4MikpICkKKyAgICAgICAgICgocmVnLT5hdHRyLnR5cGUgJiAweDgpIHx8 ICEocmVnLT5hdHRyLnR5cGUgJiAweDIpKSApCiAgICAgewogICAgICAgICBncHJpbnRrKFhFTkxP R19FUlIsICJOb24td3JpdGVhYmxlIHNlZ21lbnQgcHJvdmlkZWQgZm9yIFNTXG4iKTsKICAgICAg ICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQogCi0gICAgaWYgKCByZWctPmF0dHIuZmllbGRzLnMg JiYgc2VnICE9IHg4Nl9zZWdfc3MgJiYgc2VnICE9IHg4Nl9zZWdfY3MgJiYKLSAgICAgICAgIChy ZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweDgpICYmICEocmVnLT5hdHRyLmZpZWxkcy50eXBlICYg MHgyKSApCisgICAgaWYgKCByZWctPmF0dHIucyAmJiBzZWcgIT0geDg2X3NlZ19zcyAmJiBzZWcg IT0geDg2X3NlZ19jcyAmJgorICAgICAgICAgKHJlZy0+YXR0ci50eXBlICYgMHg4KSAmJiAhKHJl Zy0+YXR0ci50eXBlICYgMHgyKSApCiAgICAgewogICAgICAgICBncHJpbnRrKFhFTkxPR19FUlIs ICJOb24tcmVhZGFibGUgc2VnbWVudCBwcm92aWRlZCBmb3IgRFMgb3IgRVNcbiIpOwogICAgICAg ICByZXR1cm4gLUVJTlZBTDsKQEAgLTEyMywxMCArMTIzLDEwIEBAIGludCBhcmNoX3NldF9pbmZv X2h2bV9ndWVzdChzdHJ1Y3QgdmNwdSAqdiwgY29uc3QgdmNwdV9odm1fY29udGV4dF90ICpjdHgp CiAjZGVmaW5lIFNFRyhzLCByKSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAogICAgIHMgPSAoc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIp eyAuYmFzZSA9IChyKS0+cyAjIyBfYmFzZSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLmxpbWl0ID0gKHIpLT5zICMjIF9saW1pdCwgICAgICAg ICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hdHRyLmJ5dGVz ID0gKHIpLT5zICMjIF9hciB9OyAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAuYXR0ci5yYXcgPSAociktPnMgIyMgX2FyIH07ICAgICAgICAgICAgIFwKICAg ICAvKiBTZXQgYWNjZXNzZWQgLyBidXN5IGJpdCBmb3IgcHJlc2VudCBzZWdtZW50cy4gKi8gICAg ICAgICAgICAgICAgICAgICBcCi0gICAgaWYgKCBzLmF0dHIuZmllbGRzLnAgKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBzLmF0dHIu ZmllbGRzLnR5cGUgfD0gKHg4Nl9zZWdfIyNzICE9IHg4Nl9zZWdfdHIgPyAxIDogMik7ICAgICAg ICAgIFwKKyAgICBpZiAoIHMuYXR0ci5wICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHMuYXR0ci50eXBlIHw9ICh4ODZf c2VnXyMjcyAhPSB4ODZfc2VnX3RyID8gMSA6IDIpOyAgICAgICAgICAgICAgICAgXAogICAgIGNo ZWNrX3NlZ21lbnQoJnMsIHg4Nl9zZWdfICMjIHMpOyB9KQogCiAgICAgICAgIHJjID0gU0VHKGNz LCByZWdzKTsKQEAgLTE0MSw3ICsxNDEsNyBAQCBpbnQgYXJjaF9zZXRfaW5mb19odm1fZ3Vlc3Qo c3RydWN0IHZjcHUgKnYsIGNvbnN0IHZjcHVfaHZtX2NvbnRleHRfdCAqY3R4KQogCiAgICAgICAg IC8qIEJhc2ljIHNhbml0eSBjaGVja3MuICovCiAgICAgICAgIGxpbWl0ID0gY3MubGltaXQ7Ci0g ICAgICAgIGlmICggY3MuYXR0ci5maWVsZHMuZyApCisgICAgICAgIGlmICggY3MuYXR0ci5nICkK ICAgICAgICAgICAgIGxpbWl0ID0gKGxpbWl0IDw8IDEyKSB8IDB4ZmZmOwogICAgICAgICBpZiAo IHJlZ3MtPmVpcCA+IGxpbWl0ICkKICAgICAgICAgewpAQCAtMTUwLDI0ICsxNTAsMjQgQEAgaW50 IGFyY2hfc2V0X2luZm9faHZtX2d1ZXN0KHN0cnVjdCB2Y3B1ICp2LCBjb25zdCB2Y3B1X2h2bV9j b250ZXh0X3QgKmN0eCkKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9CiAK LSAgICAgICAgaWYgKCBzcy5hdHRyLmZpZWxkcy5kcGwgIT0gY3MuYXR0ci5maWVsZHMuZHBsICkK KyAgICAgICAgaWYgKCBzcy5hdHRyLmRwbCAhPSBjcy5hdHRyLmRwbCApCiAgICAgICAgIHsKICAg ICAgICAgICAgIGdwcmludGsoWEVOTE9HX0VSUiwgIlNTLkRQTCAoJXUpIGlzIGRpZmZlcmVudCB0 aGFuIENTLkRQTCAoJXUpXG4iLAotICAgICAgICAgICAgICAgICAgICBzcy5hdHRyLmZpZWxkcy5k cGwsIGNzLmF0dHIuZmllbGRzLmRwbCk7CisgICAgICAgICAgICAgICAgICAgIHNzLmF0dHIuZHBs LCBjcy5hdHRyLmRwbCk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQog Ci0gICAgICAgIGlmICggZHMuYXR0ci5maWVsZHMucCAmJiBkcy5hdHRyLmZpZWxkcy5kcGwgPiBj cy5hdHRyLmZpZWxkcy5kcGwgKQorICAgICAgICBpZiAoIGRzLmF0dHIucCAmJiBkcy5hdHRyLmRw bCA+IGNzLmF0dHIuZHBsICkKICAgICAgICAgewogICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0df RVJSLCAiRFMuRFBMICgldSkgaXMgZ3JlYXRlciB0aGFuIENTLkRQTCAoJXUpXG4iLAotICAgICAg ICAgICAgICAgICAgICBkcy5hdHRyLmZpZWxkcy5kcGwsIGNzLmF0dHIuZmllbGRzLmRwbCk7Cisg ICAgICAgICAgICAgICAgICAgIGRzLmF0dHIuZHBsLCBjcy5hdHRyLmRwbCk7CiAgICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAgfQogCi0gICAgICAgIGlmICggZXMuYXR0ci5maWVs ZHMucCAmJiBlcy5hdHRyLmZpZWxkcy5kcGwgPiBjcy5hdHRyLmZpZWxkcy5kcGwgKQorICAgICAg ICBpZiAoIGVzLmF0dHIucCAmJiBlcy5hdHRyLmRwbCA+IGNzLmF0dHIuZHBsICkKICAgICAgICAg ewogICAgICAgICAgICAgZ3ByaW50ayhYRU5MT0dfRVJSLCAiRVMuRFBMICgldSkgaXMgZ3JlYXRl ciB0aGFuIENTLkRQTCAoJXUpXG4iLAotICAgICAgICAgICAgICAgICAgICBlcy5hdHRyLmZpZWxk cy5kcGwsIGNzLmF0dHIuZmllbGRzLmRwbCk7CisgICAgICAgICAgICAgICAgICAgIGVzLmF0dHIu ZHBsLCBjcy5hdHRyLmRwbCk7CiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKICAgICAgICAg fQogCkBAIC0yNDUsNyArMjQ1LDcgQEAgaW50IGFyY2hfc2V0X2luZm9faHZtX2d1ZXN0KHN0cnVj dCB2Y3B1ICp2LCBjb25zdCB2Y3B1X2h2bV9jb250ZXh0X3QgKmN0eCkKICAgICAgICAgdi0+YXJj aC5odm1fdmNwdS5ndWVzdF9jcls0XSA9IHJlZ3MtPmNyNDsKICAgICAgICAgdi0+YXJjaC5odm1f dmNwdS5ndWVzdF9lZmVyICA9IHJlZ3MtPmVmZXI7CiAKLSNkZWZpbmUgU0VHKGwsIGEpIChzdHJ1 Y3Qgc2VnbWVudF9yZWdpc3Rlcil7IC5saW1pdCA9IChsKSwgLmF0dHIuYnl0ZXMgPSAoYSkgfQor I2RlZmluZSBTRUcobCwgYSkgKHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyKXsgLmxpbWl0ID0gKGwp LCAuYXR0ci5yYXcgPSAoYSkgfQogICAgICAgICBjcyA9IFNFRyh+MHUsIDB4YTliKTsgLyogNjRi aXQgY29kZSBzZWdtZW50LiAqLwogICAgICAgICBkcyA9IHNzID0gZXMgPSBTRUcofjB1LCAweGM5 Myk7CiAgICAgICAgIHRyID0gU0VHKDB4NjcsIDB4OGIpOyAvKiA2NGJpdCBUU1MgKGJ1c3kpLiAq LwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYv aHZtL2VtdWxhdGUuYwppbmRleCAxMWU0YWJhLi4xZWY4N2ZlIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvaHZtL2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwpAQCAt ODczLDcgKzg3Myw3IEBAIHN0YXRpYyBpbnQgX19odm1lbXVsX3JlYWQoCiAKICAgICBpZiAoIGlz X3g4Nl9zeXN0ZW1fc2VnbWVudChzZWcpICkKICAgICAgICAgcGZlYyB8PSBQRkVDX2ltcGxpY2l0 OwotICAgIGVsc2UgaWYgKCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5m aWVsZHMuZHBsID09IDMgKQorICAgIGVsc2UgaWYgKCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2 X3NlZ19zc10uYXR0ci5kcGwgPT0gMyApCiAgICAgICAgIHBmZWMgfD0gUEZFQ191c2VyX21vZGU7 CiAKICAgICByYyA9IGh2bWVtdWxfdmlydHVhbF90b19saW5lYXIoCkBAIC05ODQsNyArOTg0LDcg QEAgc3RhdGljIGludCBodm1lbXVsX3dyaXRlKAogCiAgICAgaWYgKCBpc194ODZfc3lzdGVtX3Nl Z21lbnQoc2VnKSApCiAgICAgICAgIHBmZWMgfD0gUEZFQ19pbXBsaWNpdDsKLSAgICBlbHNlIGlm ICggaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRwbCA9PSAz ICkKKyAgICBlbHNlIGlmICggaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdfc3NdLmF0dHIu ZHBsID09IDMgKQogICAgICAgICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwogCiAgICAgcmMgPSBo dm1lbXVsX3ZpcnR1YWxfdG9fbGluZWFyKApAQCAtMTE2MSw3ICsxMTYxLDcgQEAgc3RhdGljIGlu dCBodm1lbXVsX3JlcF9pbnMoCiAgICAgaWYgKCByYyAhPSBYODZFTVVMX09LQVkgKQogICAgICAg ICByZXR1cm4gcmM7CiAKLSAgICBpZiAoIGh2bWVtdWxfY3R4dC0+c2VnX3JlZ1t4ODZfc2VnX3Nz XS5hdHRyLmZpZWxkcy5kcGwgPT0gMyApCisgICAgaWYgKCBodm1lbXVsX2N0eHQtPnNlZ19yZWdb eDg2X3NlZ19zc10uYXR0ci5kcGwgPT0gMyApCiAgICAgICAgIHBmZWMgfD0gUEZFQ191c2VyX21v ZGU7CiAKICAgICByYyA9IGh2bWVtdWxfbGluZWFyX3RvX3BoeXMoCkBAIC0xMjMwLDcgKzEyMzAs NyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVwX291dHMoCiAgICAgaWYgKCByYyAhPSBYODZFTVVM X09LQVkgKQogICAgICAgICByZXR1cm4gcmM7CiAKLSAgICBpZiAoIGh2bWVtdWxfY3R4dC0+c2Vn X3JlZ1t4ODZfc2VnX3NzXS5hdHRyLmZpZWxkcy5kcGwgPT0gMyApCisgICAgaWYgKCBodm1lbXVs X2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5kcGwgPT0gMyApCiAgICAgICAgIHBmZWMg fD0gUEZFQ191c2VyX21vZGU7CiAKICAgICByYyA9IGh2bWVtdWxfbGluZWFyX3RvX3BoeXMoCkBA IC0xMjc3LDcgKzEyNzcsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVwX21vdnMoCiAgICAgaWYg KCByYyAhPSBYODZFTVVMX09LQVkgKQogICAgICAgICByZXR1cm4gcmM7CiAKLSAgICBpZiAoIGh2 bWVtdWxfY3R4dC0+c2VnX3JlZ1t4ODZfc2VnX3NzXS5hdHRyLmZpZWxkcy5kcGwgPT0gMyApCisg ICAgaWYgKCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5kcGwgPT0gMyAp CiAgICAgICAgIHBmZWMgfD0gUEZFQ191c2VyX21vZGU7CiAKICAgICBpZiAoIHZpby0+bW1pb19h Y2Nlc3MucmVhZF9hY2Nlc3MgJiYKQEAgLTE0MzUsNyArMTQzNSw3IEBAIHN0YXRpYyBpbnQgaHZt ZW11bF9yZXBfc3RvcygKICAgICB7CiAgICAgICAgIHVpbnQzMl90IHBmZWMgPSBQRkVDX3BhZ2Vf cHJlc2VudCB8IFBGRUNfd3JpdGVfYWNjZXNzOwogCi0gICAgICAgIGlmICggaHZtZW11bF9jdHh0 LT5zZWdfcmVnW3g4Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRwbCA9PSAzICkKKyAgICAgICAgaWYg KCBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5kcGwgPT0gMyApCiAgICAg ICAgICAgICBwZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwogCiAgICAgICAgIHJjID0gaHZtZW11bF9s aW5lYXJfdG9fcGh5cyhhZGRyLCAmZ3BhLCBieXRlc19wZXJfcmVwLCByZXBzLCBwZmVjLApAQCAt MjEzMywxNyArMjEzMywxNyBAQCB2b2lkIGh2bV9lbXVsYXRlX2luaXRfcGVyX2luc24oCiAgICAg aHZtZW11bF9jdHh0LT5jdHh0LmxtYSA9IGh2bV9sb25nX21vZGVfYWN0aXZlKGN1cnIpOwogCiAg ICAgaWYgKCBodm1lbXVsX2N0eHQtPmN0eHQubG1hICYmCi0gICAgICAgICBodm1lbXVsX2N0eHQt PnNlZ19yZWdbeDg2X3NlZ19jc10uYXR0ci5maWVsZHMubCApCisgICAgICAgICBodm1lbXVsX2N0 eHQtPnNlZ19yZWdbeDg2X3NlZ19jc10uYXR0ci5sICkKICAgICAgICAgaHZtZW11bF9jdHh0LT5j dHh0LmFkZHJfc2l6ZSA9IGh2bWVtdWxfY3R4dC0+Y3R4dC5zcF9zaXplID0gNjQ7CiAgICAgZWxz ZQogICAgIHsKICAgICAgICAgaHZtZW11bF9jdHh0LT5jdHh0LmFkZHJfc2l6ZSA9Ci0gICAgICAg ICAgICBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19jc10uYXR0ci5maWVsZHMuZGIgPyAz MiA6IDE2OworICAgICAgICAgICAgaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdfY3NdLmF0 dHIuZGIgPyAzMiA6IDE2OwogICAgICAgICBodm1lbXVsX2N0eHQtPmN0eHQuc3Bfc2l6ZSA9Ci0g ICAgICAgICAgICBodm1lbXVsX2N0eHQtPnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5maWVsZHMu ZGIgPyAzMiA6IDE2OworICAgICAgICAgICAgaHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdf c3NdLmF0dHIuZGIgPyAzMiA6IDE2OwogICAgIH0KIAotICAgIGlmICggaHZtZW11bF9jdHh0LT5z ZWdfcmVnW3g4Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRwbCA9PSAzICkKKyAgICBpZiAoIGh2bWVt dWxfY3R4dC0+c2VnX3JlZ1t4ODZfc2VnX3NzXS5hdHRyLmRwbCA9PSAzICkKICAgICAgICAgcGZl YyB8PSBQRkVDX3VzZXJfbW9kZTsKIAogICAgIGh2bWVtdWxfY3R4dC0+aW5zbl9idWZfZWlwID0g aHZtZW11bF9jdHh0LT5jdHh0LnJlZ3MtPnJpcDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o dm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDcwZGRjODEuLjg4OWFhYWEg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS9odm0uYwpAQCAtNzc0LDQ5ICs3NzQsNDkgQEAgc3RhdGljIGludCBodm1fc2F2ZV9jcHVfY3R4 dChzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICAgICAgY3R4 dC5jc19zZWwgPSBzZWcuc2VsOwogICAgICAgICBjdHh0LmNzX2xpbWl0ID0gc2VnLmxpbWl0Owog ICAgICAgICBjdHh0LmNzX2Jhc2UgPSBzZWcuYmFzZTsKLSAgICAgICAgY3R4dC5jc19hcmJ5dGVz ID0gc2VnLmF0dHIuYnl0ZXM7CisgICAgICAgIGN0eHQuY3NfYXJieXRlcyA9IHNlZy5hdHRyLnJh dzsKIAogICAgICAgICBodm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19kcywgJnNl Zyk7CiAgICAgICAgIGN0eHQuZHNfc2VsID0gc2VnLnNlbDsKICAgICAgICAgY3R4dC5kc19saW1p dCA9IHNlZy5saW1pdDsKICAgICAgICAgY3R4dC5kc19iYXNlID0gc2VnLmJhc2U7Ci0gICAgICAg IGN0eHQuZHNfYXJieXRlcyA9IHNlZy5hdHRyLmJ5dGVzOworICAgICAgICBjdHh0LmRzX2FyYnl0 ZXMgPSBzZWcuYXR0ci5yYXc7CiAKICAgICAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHYs IHg4Nl9zZWdfZXMsICZzZWcpOwogICAgICAgICBjdHh0LmVzX3NlbCA9IHNlZy5zZWw7CiAgICAg ICAgIGN0eHQuZXNfbGltaXQgPSBzZWcubGltaXQ7CiAgICAgICAgIGN0eHQuZXNfYmFzZSA9IHNl Zy5iYXNlOwotICAgICAgICBjdHh0LmVzX2FyYnl0ZXMgPSBzZWcuYXR0ci5ieXRlczsKKyAgICAg ICAgY3R4dC5lc19hcmJ5dGVzID0gc2VnLmF0dHIucmF3OwogCiAgICAgICAgIGh2bV9nZXRfc2Vn bWVudF9yZWdpc3Rlcih2LCB4ODZfc2VnX3NzLCAmc2VnKTsKICAgICAgICAgY3R4dC5zc19zZWwg PSBzZWcuc2VsOwogICAgICAgICBjdHh0LnNzX2xpbWl0ID0gc2VnLmxpbWl0OwogICAgICAgICBj dHh0LnNzX2Jhc2UgPSBzZWcuYmFzZTsKLSAgICAgICAgY3R4dC5zc19hcmJ5dGVzID0gc2VnLmF0 dHIuYnl0ZXM7CisgICAgICAgIGN0eHQuc3NfYXJieXRlcyA9IHNlZy5hdHRyLnJhdzsKIAogICAg ICAgICBodm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19mcywgJnNlZyk7CiAgICAg ICAgIGN0eHQuZnNfc2VsID0gc2VnLnNlbDsKICAgICAgICAgY3R4dC5mc19saW1pdCA9IHNlZy5s aW1pdDsKICAgICAgICAgY3R4dC5mc19iYXNlID0gc2VnLmJhc2U7Ci0gICAgICAgIGN0eHQuZnNf YXJieXRlcyA9IHNlZy5hdHRyLmJ5dGVzOworICAgICAgICBjdHh0LmZzX2FyYnl0ZXMgPSBzZWcu YXR0ci5yYXc7CiAKICAgICAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdf Z3MsICZzZWcpOwogICAgICAgICBjdHh0LmdzX3NlbCA9IHNlZy5zZWw7CiAgICAgICAgIGN0eHQu Z3NfbGltaXQgPSBzZWcubGltaXQ7CiAgICAgICAgIGN0eHQuZ3NfYmFzZSA9IHNlZy5iYXNlOwot ICAgICAgICBjdHh0LmdzX2FyYnl0ZXMgPSBzZWcuYXR0ci5ieXRlczsKKyAgICAgICAgY3R4dC5n c19hcmJ5dGVzID0gc2VnLmF0dHIucmF3OwogCiAgICAgICAgIGh2bV9nZXRfc2VnbWVudF9yZWdp c3Rlcih2LCB4ODZfc2VnX3RyLCAmc2VnKTsKICAgICAgICAgY3R4dC50cl9zZWwgPSBzZWcuc2Vs OwogICAgICAgICBjdHh0LnRyX2xpbWl0ID0gc2VnLmxpbWl0OwogICAgICAgICBjdHh0LnRyX2Jh c2UgPSBzZWcuYmFzZTsKLSAgICAgICAgY3R4dC50cl9hcmJ5dGVzID0gc2VnLmF0dHIuYnl0ZXM7 CisgICAgICAgIGN0eHQudHJfYXJieXRlcyA9IHNlZy5hdHRyLnJhdzsKIAogICAgICAgICBodm1f Z2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19sZHRyLCAmc2VnKTsKICAgICAgICAgY3R4 dC5sZHRyX3NlbCA9IHNlZy5zZWw7CiAgICAgICAgIGN0eHQubGR0cl9saW1pdCA9IHNlZy5saW1p dDsKICAgICAgICAgY3R4dC5sZHRyX2Jhc2UgPSBzZWcuYmFzZTsKLSAgICAgICAgY3R4dC5sZHRy X2FyYnl0ZXMgPSBzZWcuYXR0ci5ieXRlczsKKyAgICAgICAgY3R4dC5sZHRyX2FyYnl0ZXMgPSBz ZWcuYXR0ci5yYXc7CiAKICAgICAgICAgaWYgKCB2LT5mcHVfaW5pdGlhbGlzZWQgKQogICAgICAg ICB7CkBAIC0xMDI4LDQ5ICsxMDI4LDQ5IEBAIHN0YXRpYyBpbnQgaHZtX2xvYWRfY3B1X2N0eHQo c3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCiAgICAgc2VnLnNlbCA9 IGN0eHQuY3Nfc2VsOwogICAgIHNlZy5saW1pdCA9IGN0eHQuY3NfbGltaXQ7CiAgICAgc2VnLmJh c2UgPSBjdHh0LmNzX2Jhc2U7Ci0gICAgc2VnLmF0dHIuYnl0ZXMgPSBjdHh0LmNzX2FyYnl0ZXM7 CisgICAgc2VnLmF0dHIucmF3ID0gY3R4dC5jc19hcmJ5dGVzOwogICAgIGh2bV9zZXRfc2VnbWVu dF9yZWdpc3Rlcih2LCB4ODZfc2VnX2NzLCAmc2VnKTsKIAogICAgIHNlZy5zZWwgPSBjdHh0LmRz X3NlbDsKICAgICBzZWcubGltaXQgPSBjdHh0LmRzX2xpbWl0OwogICAgIHNlZy5iYXNlID0gY3R4 dC5kc19iYXNlOwotICAgIHNlZy5hdHRyLmJ5dGVzID0gY3R4dC5kc19hcmJ5dGVzOworICAgIHNl Zy5hdHRyLnJhdyA9IGN0eHQuZHNfYXJieXRlczsKICAgICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0 ZXIodiwgeDg2X3NlZ19kcywgJnNlZyk7CiAKICAgICBzZWcuc2VsID0gY3R4dC5lc19zZWw7CiAg ICAgc2VnLmxpbWl0ID0gY3R4dC5lc19saW1pdDsKICAgICBzZWcuYmFzZSA9IGN0eHQuZXNfYmFz ZTsKLSAgICBzZWcuYXR0ci5ieXRlcyA9IGN0eHQuZXNfYXJieXRlczsKKyAgICBzZWcuYXR0ci5y YXcgPSBjdHh0LmVzX2FyYnl0ZXM7CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4 Nl9zZWdfZXMsICZzZWcpOwogCiAgICAgc2VnLnNlbCA9IGN0eHQuc3Nfc2VsOwogICAgIHNlZy5s aW1pdCA9IGN0eHQuc3NfbGltaXQ7CiAgICAgc2VnLmJhc2UgPSBjdHh0LnNzX2Jhc2U7Ci0gICAg c2VnLmF0dHIuYnl0ZXMgPSBjdHh0LnNzX2FyYnl0ZXM7CisgICAgc2VnLmF0dHIucmF3ID0gY3R4 dC5zc19hcmJ5dGVzOwogICAgIGh2bV9zZXRfc2VnbWVudF9yZWdpc3Rlcih2LCB4ODZfc2VnX3Nz LCAmc2VnKTsKIAogICAgIHNlZy5zZWwgPSBjdHh0LmZzX3NlbDsKICAgICBzZWcubGltaXQgPSBj dHh0LmZzX2xpbWl0OwogICAgIHNlZy5iYXNlID0gY3R4dC5mc19iYXNlOwotICAgIHNlZy5hdHRy LmJ5dGVzID0gY3R4dC5mc19hcmJ5dGVzOworICAgIHNlZy5hdHRyLnJhdyA9IGN0eHQuZnNfYXJi eXRlczsKICAgICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19mcywgJnNlZyk7 CiAKICAgICBzZWcuc2VsID0gY3R4dC5nc19zZWw7CiAgICAgc2VnLmxpbWl0ID0gY3R4dC5nc19s aW1pdDsKICAgICBzZWcuYmFzZSA9IGN0eHQuZ3NfYmFzZTsKLSAgICBzZWcuYXR0ci5ieXRlcyA9 IGN0eHQuZ3NfYXJieXRlczsKKyAgICBzZWcuYXR0ci5yYXcgPSBjdHh0LmdzX2FyYnl0ZXM7CiAg ICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZ3MsICZzZWcpOwogCiAgICAg c2VnLnNlbCA9IGN0eHQudHJfc2VsOwogICAgIHNlZy5saW1pdCA9IGN0eHQudHJfbGltaXQ7CiAg ICAgc2VnLmJhc2UgPSBjdHh0LnRyX2Jhc2U7Ci0gICAgc2VnLmF0dHIuYnl0ZXMgPSBjdHh0LnRy X2FyYnl0ZXM7CisgICAgc2VnLmF0dHIucmF3ID0gY3R4dC50cl9hcmJ5dGVzOwogICAgIGh2bV9z ZXRfc2VnbWVudF9yZWdpc3Rlcih2LCB4ODZfc2VnX3RyLCAmc2VnKTsKIAogICAgIHNlZy5zZWwg PSBjdHh0LmxkdHJfc2VsOwogICAgIHNlZy5saW1pdCA9IGN0eHQubGR0cl9saW1pdDsKICAgICBz ZWcuYmFzZSA9IGN0eHQubGR0cl9iYXNlOwotICAgIHNlZy5hdHRyLmJ5dGVzID0gY3R4dC5sZHRy X2FyYnl0ZXM7CisgICAgc2VnLmF0dHIucmF3ID0gY3R4dC5sZHRyX2FyYnl0ZXM7CiAgICAgaHZt X3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfbGR0ciwgJnNlZyk7CiAKICAgICAvKiBD b3ZlciB4c2F2ZS1hYnNlbnQgc2F2ZSBmaWxlIHJlc3RvcmF0aW9uIG9uIHhzYXZlLWNhcGFibGUg aG9zdC4gKi8KQEAgLTE5MzYsOSArMTkzNiw5IEBAIGludCBodm1fc2V0X2VmZXIodWludDY0X3Qg dmFsdWUpCiAgICAgICAgICAqIFdoZW4gTE1FIGJlY29tZXMgc2V0LCBjbG9iYmVyICVjcy5MIHRv IGtlZXAgdGhlIGd1ZXN0IGZpcm1seSBpbgogICAgICAgICAgKiBjb21wYXRpYmlsaXR5IG1vZGUg dW50aWwgaXQgcmVsb2FkcyAlY3MgaXRzZWxmLgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKCBj cy5hdHRyLmZpZWxkcy5sICkKKyAgICAgICAgaWYgKCBjcy5hdHRyLmwgKQogICAgICAgICB7Ci0g ICAgICAgICAgICBjcy5hdHRyLmZpZWxkcy5sID0gMDsKKyAgICAgICAgICAgIGNzLmF0dHIubCA9 IDA7CiAgICAgICAgICAgICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19jcywg JmNzKTsKICAgICAgICAgfQogICAgIH0KQEAgLTIzNzksMTQgKzIzNzksMTQgQEAgYm9vbF90IGh2 bV92aXJ0dWFsX3RvX2xpbmVhcl9hZGRyKAogICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgfQog ICAgIGVsc2UgaWYgKCBodm1fbG9uZ19tb2RlX2FjdGl2ZShjdXJyKSAmJgotICAgICAgICAgICAg ICAoaXNfeDg2X3N5c3RlbV9zZWdtZW50KHNlZykgfHwgYWN0aXZlX2NzLT5hdHRyLmZpZWxkcy5s KSApCisgICAgICAgICAgICAgIChpc194ODZfc3lzdGVtX3NlZ21lbnQoc2VnKSB8fCBhY3RpdmVf Y3MtPmF0dHIubCkgKQogICAgIHsKICAgICAgICAgLyoKICAgICAgICAgICogVXNlciBzZWdtZW50 cyBhcmUgYWx3YXlzIHRyZWF0ZWQgYXMgcHJlc2VudC4gIFN5c3RlbSBzZWdtZW50IG1heQogICAg ICAgICAgKiBub3QgYmUsIGFuZCBhbHNvIGluY3VyIGxpbWl0IGNoZWNrcy4KICAgICAgICAgICov CiAgICAgICAgIGlmICggaXNfeDg2X3N5c3RlbV9zZWdtZW50KHNlZykgJiYKLSAgICAgICAgICAg ICAoIXJlZy0+YXR0ci5maWVsZHMucCB8fCAob2Zmc2V0ICsgYnl0ZXMgLSAhIWJ5dGVzKSA+IHJl Zy0+bGltaXQpICkKKyAgICAgICAgICAgICAoIXJlZy0+YXR0ci5wIHx8IChvZmZzZXQgKyBieXRl cyAtICEhYnl0ZXMpID4gcmVnLT5saW1pdCkgKQogICAgICAgICAgICAgZ290byBvdXQ7CiAKICAg ICAgICAgLyoKQEAgLTI0MTQsMjAgKzI0MTQsMjAgQEAgYm9vbF90IGh2bV92aXJ0dWFsX3RvX2xp bmVhcl9hZGRyKAogICAgICAgICBhZGRyID0gKHVpbnQzMl90KShhZGRyICsgcmVnLT5iYXNlKTsK IAogICAgICAgICAvKiBTZWdtZW50IG5vdCB2YWxpZCBmb3IgdXNlIChjb29rZWQgbWVhbmluZyBv ZiAucCk/ICovCi0gICAgICAgIGlmICggIXJlZy0+YXR0ci5maWVsZHMucCApCisgICAgICAgIGlm ICggIXJlZy0+YXR0ci5wICkKICAgICAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgICAgIC8qIFJl YWQvd3JpdGUgcmVzdHJpY3Rpb25zIG9ubHkgZXhpc3QgZm9yIHVzZXIgc2VnbWVudHMuICovCi0g ICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy5zICkKKyAgICAgICAgaWYgKCByZWctPmF0dHIu cyApCiAgICAgICAgIHsKICAgICAgICAgICAgIHN3aXRjaCAoIGFjY2Vzc190eXBlICkKICAgICAg ICAgICAgIHsKICAgICAgICAgICAgIGNhc2UgaHZtX2FjY2Vzc19yZWFkOgotICAgICAgICAgICAg ICAgIGlmICggKHJlZy0+YXR0ci5maWVsZHMudHlwZSAmIDB4YSkgPT0gMHg4ICkKKyAgICAgICAg ICAgICAgICBpZiAoIChyZWctPmF0dHIudHlwZSAmIDB4YSkgPT0gMHg4ICkKICAgICAgICAgICAg ICAgICAgICAgZ290byBvdXQ7IC8qIGV4ZWN1dGUtb25seSBjb2RlIHNlZ21lbnQgKi8KICAgICAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgaHZtX2FjY2Vzc193cml0ZToKLSAg ICAgICAgICAgICAgICBpZiAoIChyZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweGEpICE9IDB4MiAp CisgICAgICAgICAgICAgICAgaWYgKCAocmVnLT5hdHRyLnR5cGUgJiAweGEpICE9IDB4MiApCiAg ICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0OyAvKiBub3QgYSB3cml0YWJsZSBkYXRhIHNlZ21l bnQgKi8KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC0y NDM4LDEwICsyNDM4LDEwIEBAIGJvb2xfdCBodm1fdmlydHVhbF90b19saW5lYXJfYWRkcigKICAg ICAgICAgbGFzdF9ieXRlID0gKHVpbnQzMl90KW9mZnNldCArIGJ5dGVzIC0gISFieXRlczsKIAog ICAgICAgICAvKiBJcyB0aGlzIGEgZ3Jvd3MtZG93biBkYXRhIHNlZ21lbnQ/IFNwZWNpYWwgbGlt aXQgY2hlY2sgaWYgc28uICovCi0gICAgICAgIGlmICggcmVnLT5hdHRyLmZpZWxkcy5zICYmIChy ZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweGMpID09IDB4NCApCisgICAgICAgIGlmICggcmVnLT5h dHRyLnMgJiYgKHJlZy0+YXR0ci50eXBlICYgMHhjKSA9PSAweDQgKQogICAgICAgICB7CiAgICAg ICAgICAgICAvKiBJcyB1cHBlciBsaW1pdCAweEZGRkYgb3IgMHhGRkZGRkZGRj8gKi8KLSAgICAg ICAgICAgIGlmICggIXJlZy0+YXR0ci5maWVsZHMuZGIgKQorICAgICAgICAgICAgaWYgKCAhcmVn LT5hdHRyLmRiICkKICAgICAgICAgICAgICAgICBsYXN0X2J5dGUgPSAodWludDE2X3QpbGFzdF9i eXRlOwogCiAgICAgICAgICAgICAvKiBDaGVjayBmaXJzdCBieXRlIGFuZCBsYXN0IGJ5dGUgYWdh aW5zdCByZXNwZWN0aXZlIGJvdW5kcy4gKi8KQEAgLTI2MzcsNyArMjYzNyw3IEBAIHN0YXRpYyBp bnQgaHZtX2xvYWRfc2VnbWVudF9zZWxlY3RvcigKICAgICAgICAgc2Vnci5zZWwgPSBzZWw7CiAg ICAgICAgIHNlZ3IuYmFzZSA9ICh1aW50MzJfdClzZWwgPDwgNDsKICAgICAgICAgc2Vnci5saW1p dCA9IDB4ZmZmZnU7Ci0gICAgICAgIHNlZ3IuYXR0ci5ieXRlcyA9IDB4ZjM7CisgICAgICAgIHNl Z3IuYXR0ci5yYXcgPSAweGYzOwogICAgICAgICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwg c2VnLCAmc2Vncik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTI2NjEsNyArMjY2MSw3 IEBAIHN0YXRpYyBpbnQgaHZtX2xvYWRfc2VnbWVudF9zZWxlY3RvcigKICAgICAgICAgdiwgKHNl bCAmIDQpID8geDg2X3NlZ19sZHRyIDogeDg2X3NlZ19nZHRyLCAmZGVzY3RhYik7CiAKICAgICAv KiBTZWdtZW50IG5vdCB2YWxpZCBmb3IgdXNlIChjb29rZWQgbWVhbmluZyBvZiAucCk/ICovCi0g ICAgaWYgKCAhZGVzY3RhYi5hdHRyLmZpZWxkcy5wICkKKyAgICBpZiAoICFkZXNjdGFiLmF0dHIu cCApCiAgICAgICAgIGdvdG8gZmFpbDsKIAogICAgIC8qIENoZWNrIGFnYWluc3QgZGVzY3JpcHRv ciB0YWJsZSBsaW1pdC4gKi8KQEAgLTI3MzksMTAgKzI3MzksMTAgQEAgc3RhdGljIGludCBodm1f bG9hZF9zZWdtZW50X3NlbGVjdG9yKAogICAgIHNlZ3IuYmFzZSA9ICgoKGRlc2MuYiA8PCAgMCkg JiAweGZmMDAwMDAwdSkgfAogICAgICAgICAgICAgICAgICAoKGRlc2MuYiA8PCAxNikgJiAweDAw ZmYwMDAwdSkgfAogICAgICAgICAgICAgICAgICAoKGRlc2MuYSA+PiAxNikgJiAweDAwMDBmZmZm dSkpOwotICAgIHNlZ3IuYXR0ci5ieXRlcyA9ICgoKGRlc2MuYiA+PiAgOCkgJiAweDAwZmZ1KSB8 Ci0gICAgICAgICAgICAgICAgICAgICAgICgoZGVzYy5iID4+IDEyKSAmIDB4MGYwMHUpKTsKKyAg ICBzZWdyLmF0dHIucmF3ID0gKCgoZGVzYy5iID4+ICA4KSAmIDB4MDBmZnUpIHwKKyAgICAgICAg ICAgICAgICAgICAgICgoZGVzYy5iID4+IDEyKSAmIDB4MGYwMHUpKTsKICAgICBzZWdyLmxpbWl0 ID0gKGRlc2MuYiAmIDB4MDAwZjAwMDB1KSB8IChkZXNjLmEgJiAweDAwMDBmZmZmdSk7Ci0gICAg aWYgKCBzZWdyLmF0dHIuZmllbGRzLmcgKQorICAgIGlmICggc2Vnci5hdHRyLmcgKQogICAgICAg ICBzZWdyLmxpbWl0ID0gKHNlZ3IubGltaXQgPDwgMTIpIHwgMHhmZmZ1OwogICAgIHNlZ3Iuc2Vs ID0gc2VsOwogICAgIGh2bV9zZXRfc2VnbWVudF9yZWdpc3Rlcih2LCBzZWcsICZzZWdyKTsKQEAg LTI4NDAsMTMgKzI4NDAsMTMgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAgICAgdHIuYmFzZSA9 ICgoKHRzc19kZXNjLmIgPDwgIDApICYgMHhmZjAwMDAwMHUpIHwKICAgICAgICAgICAgICAgICgo dHNzX2Rlc2MuYiA8PCAxNikgJiAweDAwZmYwMDAwdSkgfAogICAgICAgICAgICAgICAgKCh0c3Nf ZGVzYy5hID4+IDE2KSAmIDB4MDAwMGZmZmZ1KSk7Ci0gICAgdHIuYXR0ci5ieXRlcyA9ICgoKHRz c19kZXNjLmIgPj4gIDgpICYgMHgwMGZmdSkgfAotICAgICAgICAgICAgICAgICAgICAgKCh0c3Nf ZGVzYy5iID4+IDEyKSAmIDB4MGYwMHUpKTsKKyAgICB0ci5hdHRyLnJhdyA9ICgoKHRzc19kZXNj LmIgPj4gIDgpICYgMHgwMGZmdSkgfAorICAgICAgICAgICAgICAgICAgICgodHNzX2Rlc2MuYiA+ PiAxMikgJiAweDBmMDB1KSk7CiAgICAgdHIubGltaXQgPSAodHNzX2Rlc2MuYiAmIDB4MDAwZjAw MDB1KSB8ICh0c3NfZGVzYy5hICYgMHgwMDAwZmZmZnUpOwotICAgIGlmICggdHIuYXR0ci5maWVs ZHMuZyApCisgICAgaWYgKCB0ci5hdHRyLmcgKQogICAgICAgICB0ci5saW1pdCA9ICh0ci5saW1p dCA8PCAxMikgfCAweGZmZnU7CiAKLSAgICBpZiAoIHRyLmF0dHIuZmllbGRzLnR5cGUgIT0gKCh0 YXNrc3dpdGNoX3JlYXNvbiA9PSBUU1dfaXJldCkgPyAweGIgOiAweDkpICkKKyAgICBpZiAoIHRy LmF0dHIudHlwZSAhPSAoKHRhc2tzd2l0Y2hfcmVhc29uID09IFRTV19pcmV0KSA/IDB4YiA6IDB4 OSkgKQogICAgIHsKICAgICAgICAgaHZtX2luamVjdF9od19leGNlcHRpb24oCiAgICAgICAgICAg ICAodGFza3N3aXRjaF9yZWFzb24gPT0gVFNXX2lyZXQpID8gVFJBUF9pbnZhbGlkX3RzcyA6IFRS QVBfZ3BfZmF1bHQsCkBAIC0yODU0LDcgKzI4NTQsNyBAQCB2b2lkIGh2bV90YXNrX3N3aXRjaCgK ICAgICAgICAgZ290byBvdXQ7CiAgICAgfQogCi0gICAgaWYgKCAhdHIuYXR0ci5maWVsZHMucCAp CisgICAgaWYgKCAhdHIuYXR0ci5wICkKICAgICB7CiAgICAgICAgIGh2bV9pbmplY3RfaHdfZXhj ZXB0aW9uKFRSQVBfbm9fc2VnbWVudCwgdHNzX3NlbCAmIDB4ZmZmOCk7CiAgICAgICAgIGdvdG8g b3V0OwpAQCAtMjk3Miw3ICsyOTcyLDcgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAgICAgICAg ICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICB0ci5hdHRyLmZpZWxkcy50eXBlID0gMHhiOyAv KiBidXN5IDMyLWJpdCB0c3MgKi8KKyAgICB0ci5hdHRyLnR5cGUgPSBTWVNfREVTQ190c3NfYnVz eTsKICAgICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ190ciwgJnRyKTsKIAog ICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMF0gfD0gWDg2X0NSMF9UUzsKQEAgLTI5OTIs OSArMjk5Miw5IEBAIHZvaWQgaHZtX3Rhc2tfc3dpdGNoKAogICAgICAgICB1bnNpZ25lZCBpbnQg b3Bzeiwgc3A7CiAKICAgICAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdf Y3MsICZjcyk7Ci0gICAgICAgIG9wc3ogPSBjcy5hdHRyLmZpZWxkcy5kYiA/IDQgOiAyOworICAg ICAgICBvcHN6ID0gY3MuYXR0ci5kYiA/IDQgOiAyOwogICAgICAgICBodm1fZ2V0X3NlZ21lbnRf cmVnaXN0ZXIodiwgeDg2X3NlZ19zcywgJnNlZ3IpOwotICAgICAgICBpZiAoIHNlZ3IuYXR0ci5m aWVsZHMuZGIgKQorICAgICAgICBpZiAoIHNlZ3IuYXR0ci5kYiApCiAgICAgICAgICAgICBzcCA9 IHJlZ3MtPmVzcCAtPSBvcHN6OwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzcCA9IHJlZ3Mt PnNwIC09IG9wc3o7CkBAIC0zNjE0LDcgKzM2MTQsNyBAQCB2b2lkIGh2bV91ZF9pbnRlcmNlcHQo c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgaWYgKCBvcHRfaHZtX2ZlcCApCiAgICAg ewogICAgICAgICBjb25zdCBzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlciAqY3MgPSAmY3R4dC5zZWdf cmVnW3g4Nl9zZWdfY3NdOwotICAgICAgICB1aW50MzJfdCB3YWxrID0gKGN0eHQuc2VnX3JlZ1t4 ODZfc2VnX3NzXS5hdHRyLmZpZWxkcy5kcGwgPT0gMykKKyAgICAgICAgdWludDMyX3Qgd2FsayA9 IChjdHh0LnNlZ19yZWdbeDg2X3NlZ19zc10uYXR0ci5kcGwgPT0gMykKICAgICAgICAgICAgID8g UEZFQ191c2VyX21vZGUgOiAwOwogICAgICAgICB1bnNpZ25lZCBsb25nIGFkZHI7CiAgICAgICAg IGNoYXIgc2lnWzVdOyAvKiB1ZDI7IC5hc2NpaSAieGVuIiAqLwpAQCAtMzYzMCw3ICszNjMwLDcg QEAgdm9pZCBodm1fdWRfaW50ZXJjZXB0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAg ICAgICAgICAgcmVncy0+ZWZsYWdzICY9IH5YODZfRUZMQUdTX1JGOwogCiAgICAgICAgICAgICAv KiBaZXJvIHRoZSB1cHBlciAzMiBiaXRzIG9mICVyaXAgaWYgbm90IGluIDY0Yml0IG1vZGUuICov Ci0gICAgICAgICAgICBpZiAoICEoaHZtX2xvbmdfbW9kZV9hY3RpdmUoY3VyKSAmJiBjcy0+YXR0 ci5maWVsZHMubCkgKQorICAgICAgICAgICAgaWYgKCAhKGh2bV9sb25nX21vZGVfYWN0aXZlKGN1 cikgJiYgY3MtPmF0dHIubCkgKQogICAgICAgICAgICAgICAgIHJlZ3MtPnJpcCA9IHJlZ3MtPmVp cDsKIAogICAgICAgICAgICAgYWRkX3RhaW50KFRBSU5UX0hWTV9GRVApOwpAQCAtMzc4MiwyNSAr Mzc4MiwyNSBAQCB2b2lkIGh2bV92Y3B1X3Jlc2V0X3N0YXRlKHN0cnVjdCB2Y3B1ICp2LCB1aW50 MTZfdCBjcywgdWludDE2X3QgaXApCiAgICAgcmVnLnNlbCA9IGNzOwogICAgIHJlZy5iYXNlID0g KHVpbnQzMl90KXJlZy5zZWwgPDwgNDsKICAgICByZWcubGltaXQgPSAweGZmZmY7Ci0gICAgcmVn LmF0dHIuYnl0ZXMgPSAweDA5YjsKKyAgICByZWcuYXR0ci5yYXcgPSAweDA5YjsKICAgICBodm1f c2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3NlZ19jcywgJnJlZyk7CiAKICAgICByZWcuc2Vs ID0gcmVnLmJhc2UgPSAwOwogICAgIHJlZy5saW1pdCA9IDB4ZmZmZjsKLSAgICByZWcuYXR0ci5i eXRlcyA9IDB4MDkzOworICAgIHJlZy5hdHRyLnJhdyA9IDB4MDkzOwogICAgIGh2bV9zZXRfc2Vn bWVudF9yZWdpc3Rlcih2LCB4ODZfc2VnX2RzLCAmcmVnKTsKICAgICBodm1fc2V0X3NlZ21lbnRf cmVnaXN0ZXIodiwgeDg2X3NlZ19lcywgJnJlZyk7CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lz dGVyKHYsIHg4Nl9zZWdfZnMsICZyZWcpOwogICAgIGh2bV9zZXRfc2VnbWVudF9yZWdpc3Rlcih2 LCB4ODZfc2VnX2dzLCAmcmVnKTsKICAgICBodm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2 X3NlZ19zcywgJnJlZyk7CiAKLSAgICByZWcuYXR0ci5ieXRlcyA9IDB4ODI7IC8qIExEVCAqLwor ICAgIHJlZy5hdHRyLnJhdyA9IDB4ODI7IC8qIExEVCAqLwogICAgIGh2bV9zZXRfc2VnbWVudF9y ZWdpc3Rlcih2LCB4ODZfc2VnX2xkdHIsICZyZWcpOwogCi0gICAgcmVnLmF0dHIuYnl0ZXMgPSAw eDhiOyAvKiAzMi1iaXQgVFNTIChidXN5KSAqLworICAgIHJlZy5hdHRyLnJhdyA9IDB4OGI7IC8q IDMyLWJpdCBUU1MgKGJ1c3kpICovCiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4 Nl9zZWdfdHIsICZyZWcpOwogCi0gICAgcmVnLmF0dHIuYnl0ZXMgPSAwOworICAgIHJlZy5hdHRy LnJhdyA9IDA7CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfZ2R0ciwg JnJlZyk7CiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfaWR0ciwgJnJl Zyk7CiAKQEAgLTQ3MzYsOCArNDczNiw4IEBAIHZvaWQgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVy KHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICB7CiAgICAgY2FzZSB4 ODZfc2VnX3NzOgogICAgICAgICAvKiBTVk0gbWF5IHJldGFpbiAlc3MuREIgd2hlbiAlc3MgaXMg bG9hZGVkIHdpdGggYSBOVUxMIHNlbGVjdG9yLiAqLwotICAgICAgICBpZiAoICFyZWctPmF0dHIu ZmllbGRzLnAgKQotICAgICAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy5kYiA9IDA7CisgICAgICAg IGlmICggIXJlZy0+YXR0ci5wICkKKyAgICAgICAgICAgIHJlZy0+YXR0ci5kYiA9IDA7CiAgICAg ICAgIGJyZWFrOwogCiAgICAgY2FzZSB4ODZfc2VnX3RyOgpAQCAtNDc0NSwxNCArNDc0NSwxNCBA QCB2b2lkIGh2bV9nZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZf c2VnbWVudCBzZWcsCiAgICAgICAgICAqIFNWTSBkb2Vzbid0IHRyYWNrICV0ci5CLiBBcmNoaXRl Y3R1cmFsbHksIGEgbG9hZGVkIFRTUyBzZWdtZW50IHdpbGwKICAgICAgICAgICogYWx3YXlzIGJl IGJ1c3kuCiAgICAgICAgICAqLwotICAgICAgICByZWctPmF0dHIuZmllbGRzLnR5cGUgfD0gMHgy OworICAgICAgICByZWctPmF0dHIudHlwZSB8PSAweDI7CiAKICAgICAgICAgLyoKICAgICAgICAg ICogJWNzIGFuZCAldHIgYXJlIHVuY29uZGl0aW9uYWxseSBwcmVzZW50LiAgU1ZNIGlnbm9yZXMg dGhlc2UgcHJlc2VudAogICAgICAgICAgKiBiaXRzIGFuZCB3aWxsIGhhcHBpbHkgcnVuIHdpdGhv dXQgdGhlbSBzZXQuCiAgICAgICAgICAqLwogICAgIGNhc2UgeDg2X3NlZ19jczoKLSAgICAgICAg cmVnLT5hdHRyLmZpZWxkcy5wID0gMTsKKyAgICAgICAgcmVnLT5hdHRyLnAgPSAxOwogICAgICAg ICBicmVhazsKIAogICAgIGNhc2UgeDg2X3NlZ19nZHRyOgpAQCAtNDc2MSwyMSArNDc2MSwyMSBA QCB2b2lkIGh2bV9nZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZf c2VnbWVudCBzZWcsCiAgICAgICAgICAqIFRyZWF0IEdEVFIvSURUUiBhcyBiZWluZyBwcmVzZW50 IHN5c3RlbSBzZWdtZW50cy4gIFRoaXMgYXZvaWRzIHRoZW0KICAgICAgICAgICogbmVlZGluZyBz cGVjaWFsIGNhc2luZyBmb3Igc2VnbWVudGF0aW9uIGNoZWNrcy4KICAgICAgICAgICovCi0gICAg ICAgIHJlZy0+YXR0ci5ieXRlcyA9IDB4ODA7CisgICAgICAgIHJlZy0+YXR0ci5yYXcgPSAweDgw OwogICAgICAgICBicmVhazsKIAogICAgIGRlZmF1bHQ6IC8qIEF2b2lkIHRyaWdnZXJpbmcgLVdl cnJvcj1zd2l0Y2ggKi8KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgaWYgKCByZWctPmF0 dHIuZmllbGRzLnAgKQorICAgIGlmICggcmVnLT5hdHRyLnAgKQogICAgIHsKICAgICAgICAgLyoK ICAgICAgICAgICogRm9yIHNlZ21lbnRzIHdoaWNoIGFyZSBwcmVzZW50L3VzYWJsZSwgY29vayB0 aGUgc3lzdGVtIGZsYWcuICBTVk0KICAgICAgICAgICogaWdub3JlcyB0aGUgUyBiaXQgb24gYWxs IHNlZ21lbnRzIGFuZCB3aWxsIGhhcHBpbHkgcnVuIHdpdGggdGhlbSBpbgogICAgICAgICAgKiBh bnkgc3RhdGUuCiAgICAgICAgICAqLwotICAgICAgICByZWctPmF0dHIuZmllbGRzLnMgPSBpc194 ODZfdXNlcl9zZWdtZW50KHNlZyk7CisgICAgICAgIHJlZy0+YXR0ci5zID0gaXNfeDg2X3VzZXJf c2VnbWVudChzZWcpOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIFNWTSBkaXNjYXJkcyAlY3Mu RyBvbiAjVk1FWElULiAgT3RoZXIgdXNlciBzZWdtZW50cyBkbyBoYXZlIC5HCkBAIC00Nzg1LDE0 ICs0Nzg1LDE0IEBAIHZvaWQgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHN0cnVjdCB2Y3B1ICp2 LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICAgICAgICoKICAgICAgICAgICogVW5jb25kaXRp b25hbGx5IHJlY2FsY3VsYXRlIEcuCiAgICAgICAgICAqLwotICAgICAgICByZWctPmF0dHIuZmll bGRzLmcgPSAhIShyZWctPmxpbWl0ID4+IDIwKTsKKyAgICAgICAgcmVnLT5hdHRyLmcgPSAhIShy ZWctPmxpbWl0ID4+IDIwKTsKIAogICAgICAgICAvKgogICAgICAgICAgKiBTVk0gZG9lc24ndCB0 cmFjayB0aGUgQWNjZXNzZWQgZmxhZy4gIEl0IHdpbGwgYWx3YXlzIGJlIHNldCBmb3IKICAgICAg ICAgICogdXNhYmxlIHVzZXIgc2VnbWVudHMgbG9hZGVkIGludG8gdGhlIGRlc2NyaXB0b3IgY2Fj aGUuCiAgICAgICAgICAqLwogICAgICAgICBpZiAoIGlzX3g4Nl91c2VyX3NlZ21lbnQoc2VnKSAp Ci0gICAgICAgICAgICByZWctPmF0dHIuZmllbGRzLnR5cGUgfD0gMHgxOworICAgICAgICAgICAg cmVnLT5hdHRyLnR5cGUgfD0gMHgxOwogICAgIH0KIH0KIApAQCAtNDgwMCwyNSArNDgwMCwyNSBA QCB2b2lkIGh2bV9zZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZf c2VnbWVudCBzZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2VnbWVu dF9yZWdpc3RlciAqcmVnKQogewogICAgIC8qIFNldCBHIHRvIG1hdGNoIHRoZSBsaW1pdCBmaWVs ZC4gIFZULXggY2FyZXMsIHdoaWxlIFNWTSBkb2Vzbid0LiAqLwotICAgIGlmICggcmVnLT5hdHRy LmZpZWxkcy5wICkKLSAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy5nID0gISEocmVnLT5saW1pdCA+ PiAyMCk7CisgICAgaWYgKCByZWctPmF0dHIucCApCisgICAgICAgIHJlZy0+YXR0ci5nID0gISEo cmVnLT5saW1pdCA+PiAyMCk7CiAKICAgICBzd2l0Y2ggKCBzZWcgKQogICAgIHsKICAgICBjYXNl IHg4Nl9zZWdfY3M6Ci0gICAgICAgIEFTU0VSVChyZWctPmF0dHIuZmllbGRzLnApOyAgICAgICAg ICAgICAgICAgIC8qIFVzYWJsZS4gKi8KLSAgICAgICAgQVNTRVJUKHJlZy0+YXR0ci5maWVsZHMu cyk7ICAgICAgICAgICAgICAgICAgLyogVXNlciBzZWdtZW50LiAqLwotICAgICAgICBBU1NFUlQo cmVnLT5hdHRyLmZpZWxkcy50eXBlICYgMHgxKTsgICAgICAgICAvKiBBY2Nlc3NlZC4gKi8KKyAg ICAgICAgQVNTRVJUKHJlZy0+YXR0ci5wKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVXNh YmxlLiAqLworICAgICAgICBBU1NFUlQocmVnLT5hdHRyLnMpOyAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBVc2VyIHNlZ21lbnQuICovCisgICAgICAgIEFTU0VSVChyZWctPmF0dHIudHlwZSAm IDB4MSk7ICAgICAgICAgICAgICAgIC8qIEFjY2Vzc2VkLiAqLwogICAgICAgICBBU1NFUlQoKHJl Zy0+YmFzZSA+PiAzMikgPT0gMCk7ICAgICAgICAgICAgICAvKiBVcHBlciBiaXRzIGNsZWFyLiAq LwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgeDg2X3NlZ19zczoKLSAgICAgICAgaWYgKCBy ZWctPmF0dHIuZmllbGRzLnAgKQorICAgICAgICBpZiAoIHJlZy0+YXR0ci5wICkKICAgICAgICAg ewotICAgICAgICAgICAgQVNTRVJUKHJlZy0+YXR0ci5maWVsZHMucyk7ICAgICAgICAgICAgICAv KiBVc2VyIHNlZ21lbnQuICovCi0gICAgICAgICAgICBBU1NFUlQoIShyZWctPmF0dHIuZmllbGRz LnR5cGUgJiAweDgpKTsgIC8qIERhdGEgc2VnbWVudC4gKi8KLSAgICAgICAgICAgIEFTU0VSVChy ZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweDIpOyAgICAgLyogV3JpdGVhYmxlLiAqLwotICAgICAg ICAgICAgQVNTRVJUKHJlZy0+YXR0ci5maWVsZHMudHlwZSAmIDB4MSk7ICAgICAvKiBBY2Nlc3Nl ZC4gKi8KKyAgICAgICAgICAgIEFTU0VSVChyZWctPmF0dHIucyk7ICAgICAgICAgICAgICAgICAg ICAgLyogVXNlciBzZWdtZW50LiAqLworICAgICAgICAgICAgQVNTRVJUKCEocmVnLT5hdHRyLnR5 cGUgJiAweDgpKTsgICAgICAgICAvKiBEYXRhIHNlZ21lbnQuICovCisgICAgICAgICAgICBBU1NF UlQocmVnLT5hdHRyLnR5cGUgJiAweDIpOyAgICAgICAgICAgIC8qIFdyaXRlYWJsZS4gKi8KKyAg ICAgICAgICAgIEFTU0VSVChyZWctPmF0dHIudHlwZSAmIDB4MSk7ICAgICAgICAgICAgLyogQWNj ZXNzZWQuICovCiAgICAgICAgICAgICBBU1NFUlQoKHJlZy0+YmFzZSA+PiAzMikgPT0gMCk7ICAg ICAgICAgIC8qIFVwcGVyIGJpdHMgY2xlYXIuICovCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7 CkBAIC00ODI3LDE0ICs0ODI3LDE0IEBAIHZvaWQgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHN0 cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywKICAgICBjYXNlIHg4Nl9zZWdfZXM6 CiAgICAgY2FzZSB4ODZfc2VnX2ZzOgogICAgIGNhc2UgeDg2X3NlZ19nczoKLSAgICAgICAgaWYg KCByZWctPmF0dHIuZmllbGRzLnAgKQorICAgICAgICBpZiAoIHJlZy0+YXR0ci5wICkKICAgICAg ICAgewotICAgICAgICAgICAgQVNTRVJUKHJlZy0+YXR0ci5maWVsZHMucyk7ICAgICAgICAgICAg ICAvKiBVc2VyIHNlZ21lbnQuICovCisgICAgICAgICAgICBBU1NFUlQocmVnLT5hdHRyLnMpOyAg ICAgICAgICAgICAgICAgICAgIC8qIFVzZXIgc2VnbWVudC4gKi8KIAotICAgICAgICAgICAgaWYg KCByZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweDggKQotICAgICAgICAgICAgICAgIEFTU0VSVChy ZWctPmF0dHIuZmllbGRzLnR5cGUgJiAweDIpOyAvKiBSZWFkYWJsZS4gKi8KKyAgICAgICAgICAg IGlmICggcmVnLT5hdHRyLnR5cGUgJiAweDggKQorICAgICAgICAgICAgICAgIEFTU0VSVChyZWct PmF0dHIudHlwZSAmIDB4Mik7ICAgICAgICAvKiBSZWFkYWJsZS4gKi8KIAotICAgICAgICAgICAg QVNTRVJUKHJlZy0+YXR0ci5maWVsZHMudHlwZSAmIDB4MSk7ICAgICAvKiBBY2Nlc3NlZC4gKi8K KyAgICAgICAgICAgIEFTU0VSVChyZWctPmF0dHIudHlwZSAmIDB4MSk7ICAgICAgICAgICAgLyog QWNjZXNzZWQuICovCiAKICAgICAgICAgICAgIGlmICggc2VnID09IHg4Nl9zZWdfZnMgfHwgc2Vn ID09IHg4Nl9zZWdfZ3MgKQogICAgICAgICAgICAgICAgIEFTU0VSVChpc19jYW5vbmljYWxfYWRk cmVzcyhyZWctPmJhc2UpKTsKQEAgLTQ4NDQsMjMgKzQ4NDQsMjMgQEAgdm9pZCBodm1fc2V0X3Nl Z21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYsIGVudW0geDg2X3NlZ21lbnQgc2VnLAogICAg ICAgICBicmVhazsKIAogICAgIGNhc2UgeDg2X3NlZ190cjoKLSAgICAgICAgQVNTRVJUKHJlZy0+ YXR0ci5maWVsZHMucCk7ICAgICAgICAgICAgICAgICAgLyogVXNhYmxlLiAqLwotICAgICAgICBB U1NFUlQoIXJlZy0+YXR0ci5maWVsZHMucyk7ICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gc2Vn bWVudC4gKi8KKyAgICAgICAgQVNTRVJUKHJlZy0+YXR0ci5wKTsgICAgICAgICAgICAgICAgICAg ICAgICAgLyogVXNhYmxlLiAqLworICAgICAgICBBU1NFUlQoIXJlZy0+YXR0ci5zKTsgICAgICAg ICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gc2VnbWVudC4gKi8KICAgICAgICAgQVNTRVJUKCEo cmVnLT5zZWwgJiAweDQpKTsgICAgICAgICAgICAgICAgICAgLyogIVRJLiAqLwotICAgICAgICBp ZiAoIHJlZy0+YXR0ci5maWVsZHMudHlwZSA9PSBTWVNfREVTQ190c3NfYnVzeSApCisgICAgICAg IGlmICggcmVnLT5hdHRyLnR5cGUgPT0gU1lTX0RFU0NfdHNzX2J1c3kgKQogICAgICAgICAgICAg QVNTRVJUKGlzX2Nhbm9uaWNhbF9hZGRyZXNzKHJlZy0+YmFzZSkpOwotICAgICAgICBlbHNlIGlm ICggcmVnLT5hdHRyLmZpZWxkcy50eXBlID09IFNZU19ERVNDX3RzczE2X2J1c3kgKQorICAgICAg ICBlbHNlIGlmICggcmVnLT5hdHRyLnR5cGUgPT0gU1lTX0RFU0NfdHNzMTZfYnVzeSApCiAgICAg ICAgICAgICBBU1NFUlQoKHJlZy0+YmFzZSA+PiAzMikgPT0gMCk7CiAgICAgICAgIGVsc2UKICAg ICAgICAgICAgIEFTU0VSVCghIiV0ciB0eXBlY2hlY2sgZmFpbHVyZSIpOwogICAgICAgICBicmVh azsKIAogICAgIGNhc2UgeDg2X3NlZ19sZHRyOgotICAgICAgICBpZiAoIHJlZy0+YXR0ci5maWVs ZHMucCApCisgICAgICAgIGlmICggcmVnLT5hdHRyLnAgKQogICAgICAgICB7Ci0gICAgICAgICAg ICBBU1NFUlQoIXJlZy0+YXR0ci5maWVsZHMucyk7ICAgICAgICAgICAgIC8qIFN5c3RlbSBzZWdt ZW50LiAqLworICAgICAgICAgICAgQVNTRVJUKCFyZWctPmF0dHIucyk7ICAgICAgICAgICAgICAg ICAgICAvKiBTeXN0ZW0gc2VnbWVudC4gKi8KICAgICAgICAgICAgIEFTU0VSVCghKHJlZy0+c2Vs ICYgMHg0KSk7ICAgICAgICAgICAgICAgLyogIVRJLiAqLwotICAgICAgICAgICAgQVNTRVJUKHJl Zy0+YXR0ci5maWVsZHMudHlwZSA9PSBTWVNfREVTQ19sZHQpOworICAgICAgICAgICAgQVNTRVJU KHJlZy0+YXR0ci50eXBlID09IFNZU19ERVNDX2xkdCk7CiAgICAgICAgICAgICBBU1NFUlQoaXNf Y2Fub25pY2FsX2FkZHJlc3MocmVnLT5iYXNlKSk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyBiL3hlbi9hcmNoL3g4Ni9o dm0vc3ZtL3N2bS5jCmluZGV4IDE3OGFkYzUuLmMzMTI4MjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9odm0vc3ZtL3N2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCkBAIC01 MjYsOSArNTI2LDkgQEAgc3RhdGljIGludCBzdm1fZ3Vlc3RfeDg2X21vZGUoc3RydWN0IHZjcHUg KnYpCiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICggdW5saWtlbHkoZ3Vlc3RfY3B1X3VzZXJf cmVncygpLT5lZmxhZ3MgJiBYODZfRUZMQUdTX1ZNKSApCiAgICAgICAgIHJldHVybiAxOwotICAg IGlmICggaHZtX2xvbmdfbW9kZV9hY3RpdmUodikgJiYgbGlrZWx5KHZtY2ItPmNzLmF0dHIuZmll bGRzLmwpICkKKyAgICBpZiAoIGh2bV9sb25nX21vZGVfYWN0aXZlKHYpICYmIGxpa2VseSh2bWNi LT5jcy5hdHRyLmwpICkKICAgICAgICAgcmV0dXJuIDg7Ci0gICAgcmV0dXJuIChsaWtlbHkodm1j Yi0+Y3MuYXR0ci5maWVsZHMuZGIpID8gNCA6IDIpOworICAgIHJldHVybiBsaWtlbHkodm1jYi0+ Y3MuYXR0ci5kYikgPyA0IDogMjsKIH0KIAogdm9pZCBzdm1fdXBkYXRlX2d1ZXN0X2NyKHN0cnVj dCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3IpCkBAIC02NTMsNyArNjUzLDcgQEAgc3RhdGljIHZv aWQgc3ZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdt ZW50IHNlZywKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSB4ODZfc2VnX3NzOgogICAgICAgICAq cmVnID0gdm1jYi0+c3M7Ci0gICAgICAgIHJlZy0+YXR0ci5maWVsZHMuZHBsID0gdm1jYi0+X2Nw bDsKKyAgICAgICAgcmVnLT5hdHRyLmRwbCA9IHZtY2ItPl9jcGw7CiAgICAgICAgIGJyZWFrOwog ICAgIGNhc2UgeDg2X3NlZ190cjoKICAgICAgICAgc3ZtX3N5bmNfdm1jYih2KTsKQEAgLTcyNiw3 ICs3MjYsNyBAQCBzdGF0aWMgdm9pZCBzdm1fc2V0X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0IHZj cHUgKnYsIGVudW0geDg2X3NlZ21lbnQgc2VnLAogICAgICAgICBicmVhazsKICAgICBjYXNlIHg4 Nl9zZWdfc3M6CiAgICAgICAgIHZtY2ItPnNzID0gKnJlZzsKLSAgICAgICAgdm1jYi0+X2NwbCA9 IHZtY2ItPnNzLmF0dHIuZmllbGRzLmRwbDsKKyAgICAgICAgdm1jYi0+X2NwbCA9IHZtY2ItPnNz LmF0dHIuZHBsOwogICAgICAgICBicmVhazsKICAgICBjYXNlIHg4Nl9zZWdfdHI6CiAgICAgICAg IHZtY2ItPnRyID0gKnJlZzsKQEAgLTE0NDIsNyArMTQ0Miw3IEBAIHN0YXRpYyB2b2lkIHN2bV9p bmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpCiAgICAgICogSWYgaW5q ZWN0aW5nIGFuIGV2ZW50IG91dHNpZGUgb2YgNjRiaXQgbW9kZSwgemVybyB0aGUgdXBwZXIgYml0 cyBvZiB0aGUKICAgICAgKiAlZWlwIGFuZCBuZXh0cmlwIGFmdGVyIHRoZSBhZGp1c3RtZW50cyBh Ym92ZS4KICAgICAgKi8KLSAgICBpZiAoICEoKHZtY2ItPl9lZmVyICYgRUZFUl9MTUEpICYmIHZt Y2ItPmNzLmF0dHIuZmllbGRzLmwpICkKKyAgICBpZiAoICEoKHZtY2ItPl9lZmVyICYgRUZFUl9M TUEpICYmIHZtY2ItPmNzLmF0dHIubCkgKQogICAgIHsKICAgICAgICAgcmVncy0+cmlwID0gcmVn cy0+ZWlwOwogICAgICAgICB2bWNiLT5uZXh0cmlwID0gKHVpbnQzMl90KXZtY2ItPm5leHRyaXA7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm1kZWJ1Zy5jIGIveGVuL2FyY2gv eDg2L2h2bS9zdm0vc3ZtZGVidWcuYwppbmRleCAwYTY0ZTkyLi4wNDliMDM4IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm1kZWJ1Zy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v c3ZtL3N2bWRlYnVnLmMKQEAgLTIzLDcgKzIzLDcgQEAKIHN0YXRpYyB2b2lkIHN2bV9kdW1wX3Nl bChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBzdm1fc2VnbWVudF9yZWdpc3Rlcl90ICpzKQogewog ICAgIHByaW50aygiJXM6ICUwNHggJTA0eCAlMDh4ICUwMTYiUFJJeDY0IlxuIiwKLSAgICAgICAg ICAgbmFtZSwgcy0+c2VsLCBzLT5hdHRyLmJ5dGVzLCBzLT5saW1pdCwgcy0+YmFzZSk7CisgICAg ICAgICAgIG5hbWUsIHMtPnNlbCwgcy0+YXR0ci5yYXcsIHMtPmxpbWl0LCBzLT5iYXNlKTsKIH0K IAogLyogVGhpcyBmdW5jdGlvbiBjYW4gZGlyZWN0bHkgYWNjZXNzIGZpZWxkcyB3aGljaCBhcmUg Y292ZXJlZCBieSBjbGVhbiBiaXRzLiAqLwpAQCAtMTYzLDggKzE2Myw4IEBAIHN2bV92bWNiX2lz dmFsaWQoY29uc3QgY2hhciAqZnJvbSwgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNiLAogICAgIGlm ICgodm1jYi0+X2VmZXIgJiBFRkVSX0xNRSkgIT0gMAogICAgICAgICAmJiAodm1jYi0+X2NyMCAm IFg4Nl9DUjBfUEcpICE9IDAKICAgICAgICAgJiYgKHZtY2ItPl9jcjQgJiBYODZfQ1I0X1BBRSkg IT0gMAotICAgICAgICAmJiAodm1jYi0+Y3MuYXR0ci5maWVsZHMubCAhPSAwKQotICAgICAgICAm JiAodm1jYi0+Y3MuYXR0ci5maWVsZHMuZGIgIT0gMCkpCisgICAgICAgICYmICh2bWNiLT5jcy5h dHRyLmwgIT0gMCkKKyAgICAgICAgJiYgKHZtY2ItPmNzLmF0dHIuZGIgIT0gMCkpCiAgICAgewog ICAgICAgICBQUklOVEYoIkVGRVJfTE1FLCBDUjAuUEcsIENSNC5QQUUsIENTLkwgYW5kIENTLkQg YXJlIGFsbCBub24temVyby5cbiIpOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9o dm0vc3ZtL3ZtY2IuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3ZtY2IuYwppbmRleCA5NmFiZjhk Li5lOTI1ZWM3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS92bWNiLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS9zdm0vdm1jYi5jCkBAIC0xNTgsMTIgKzE1OCwxMiBAQCBzdGF0aWMg aW50IGNvbnN0cnVjdF92bWNiKHN0cnVjdCB2Y3B1ICp2KQogICAgIHZtY2ItPmdzLmJhc2UgPSAw OwogCiAgICAgLyogR3Vlc3Qgc2VnbWVudCBBUiBieXRlcy4gKi8KLSAgICB2bWNiLT5lcy5hdHRy LmJ5dGVzID0gMHhjOTM7IC8qIHJlYWQvd3JpdGUsIGFjY2Vzc2VkICovCi0gICAgdm1jYi0+c3Mu YXR0ci5ieXRlcyA9IDB4YzkzOwotICAgIHZtY2ItPmRzLmF0dHIuYnl0ZXMgPSAweGM5MzsKLSAg ICB2bWNiLT5mcy5hdHRyLmJ5dGVzID0gMHhjOTM7Ci0gICAgdm1jYi0+Z3MuYXR0ci5ieXRlcyA9 IDB4YzkzOwotICAgIHZtY2ItPmNzLmF0dHIuYnl0ZXMgPSAweGM5YjsgLyogZXhlYy9yZWFkLCBh Y2Nlc3NlZCAqLworICAgIHZtY2ItPmVzLmF0dHIucmF3ID0gMHhjOTM7IC8qIHJlYWQvd3JpdGUs IGFjY2Vzc2VkICovCisgICAgdm1jYi0+c3MuYXR0ci5yYXcgPSAweGM5MzsKKyAgICB2bWNiLT5k cy5hdHRyLnJhdyA9IDB4YzkzOworICAgIHZtY2ItPmZzLmF0dHIucmF3ID0gMHhjOTM7CisgICAg dm1jYi0+Z3MuYXR0ci5yYXcgPSAweGM5MzsKKyAgICB2bWNiLT5jcy5hdHRyLnJhdyA9IDB4Yzli OyAvKiBleGVjL3JlYWQsIGFjY2Vzc2VkICovCiAKICAgICAvKiBHdWVzdCBJRFQuICovCiAgICAg dm1jYi0+aWR0ci5iYXNlID0gMDsKQEAgLTE3NywxMCArMTc3LDEwIEBAIHN0YXRpYyBpbnQgY29u c3RydWN0X3ZtY2Ioc3RydWN0IHZjcHUgKnYpCiAgICAgdm1jYi0+bGR0ci5zZWwgPSAwOwogICAg IHZtY2ItPmxkdHIuYmFzZSA9IDA7CiAgICAgdm1jYi0+bGR0ci5saW1pdCA9IDA7Ci0gICAgdm1j Yi0+bGR0ci5hdHRyLmJ5dGVzID0gMDsKKyAgICB2bWNiLT5sZHRyLmF0dHIucmF3ID0gMDsKIAog ICAgIC8qIEd1ZXN0IFRTUy4gKi8KLSAgICB2bWNiLT50ci5hdHRyLmJ5dGVzID0gMHgwOGI7IC8q IDMyLWJpdCBUU1MgKGJ1c3kpICovCisgICAgdm1jYi0+dHIuYXR0ci5yYXcgPSAweDA4YjsgLyog MzItYml0IFRTUyAoYnVzeSkgKi8KICAgICB2bWNiLT50ci5iYXNlID0gMDsKICAgICB2bWNiLT50 ci5saW1pdCA9IDB4ZmY7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxt b2RlLmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jCmluZGV4IDE5OTZiMWYuLjE3 NTQwZTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3JlYWxtb2RlLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS92bXgvcmVhbG1vZGUuYwpAQCAtNzAsNyArNzAsNyBAQCBzdGF0aWMg dm9pZCByZWFsbW9kZV9kZWxpdmVyX2V4Y2VwdGlvbigKICAgICBmcmFtZVsyXSA9IHJlZ3MtPmZs YWdzICYgflg4Nl9FRkxBR1NfUkY7CiAKICAgICAvKiBXZSBjYW4ndCB0ZXN0IGh2bWVtdWxfY3R4 dC0+Y3R4dC5zcF9zaXplOiBpdCBtYXkgbm90IGJlIGluaXRpYWxpc2VkLiAqLwotICAgIGlmICgg aHZtZW11bF9jdHh0LT5zZWdfcmVnW3g4Nl9zZWdfc3NdLmF0dHIuZmllbGRzLmRiICkKKyAgICBp ZiAoIGh2bWVtdWxfY3R4dC0+c2VnX3JlZ1t4ODZfc2VnX3NzXS5hdHRyLmRiICkKICAgICAgICAg cHN0ayA9IHJlZ3MtPmVzcCAtPSA2OwogICAgIGVsc2UKICAgICAgICAgcHN0ayA9IHJlZ3MtPnNw IC09IDY7CkBAIC0yMDcsMTMgKzIwNywxMyBAQCB2b2lkIHZteF9yZWFsbW9kZShzdHJ1Y3QgY3B1 X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICogRFMsIEVTLCBGUyBhbmQgR1MgdGhlIG1vc3Qg dW5pbnZhc2l2ZSB0cmljayBpcyB0byBzZXQgRFBMID09IFJQTC4KICAgICAgICAgICovCiAgICAg ICAgIHNyZWcgPSBodm1lbXVsX2dldF9zZWdfcmVnKHg4Nl9zZWdfZHMsICZodm1lbXVsX2N0eHQp OwotICAgICAgICBzcmVnLT5hdHRyLmZpZWxkcy5kcGwgPSBzcmVnLT5zZWwgJiAzOworICAgICAg ICBzcmVnLT5hdHRyLmRwbCA9IHNyZWctPnNlbCAmIDM7CiAgICAgICAgIHNyZWcgPSBodm1lbXVs X2dldF9zZWdfcmVnKHg4Nl9zZWdfZXMsICZodm1lbXVsX2N0eHQpOwotICAgICAgICBzcmVnLT5h dHRyLmZpZWxkcy5kcGwgPSBzcmVnLT5zZWwgJiAzOworICAgICAgICBzcmVnLT5hdHRyLmRwbCA9 IHNyZWctPnNlbCAmIDM7CiAgICAgICAgIHNyZWcgPSBodm1lbXVsX2dldF9zZWdfcmVnKHg4Nl9z ZWdfZnMsICZodm1lbXVsX2N0eHQpOwotICAgICAgICBzcmVnLT5hdHRyLmZpZWxkcy5kcGwgPSBz cmVnLT5zZWwgJiAzOworICAgICAgICBzcmVnLT5hdHRyLmRwbCA9IHNyZWctPnNlbCAmIDM7CiAg ICAgICAgIHNyZWcgPSBodm1lbXVsX2dldF9zZWdfcmVnKHg4Nl9zZWdfZ3MsICZodm1lbXVsX2N0 eHQpOwotICAgICAgICBzcmVnLT5hdHRyLmZpZWxkcy5kcGwgPSBzcmVnLT5zZWwgJiAzOworICAg ICAgICBzcmVnLT5hdHRyLmRwbCA9IHNyZWctPnNlbCAmIDM7CiAgICAgICAgIGh2bWVtdWxfY3R4 dC5zZWdfcmVnX2RpcnR5IHw9CiAgICAgICAgICAgICAoMXVsIDw8IHg4Nl9zZWdfZHMpIHwgKDF1 bCA8PCB4ODZfc2VnX2VzKSB8CiAgICAgICAgICAgICAoMXVsIDw8IHg4Nl9zZWdfZnMpIHwgKDF1 bCA8PCB4ODZfc2VnX2dzKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5j IGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKaW5kZXggYzUzYjI0OS4uM2Q1ZjQ4YSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS92bXgvdm14LmMKQEAgLTEwNzQsMTggKzEwNzQsMTggQEAgc3RhdGljIHVuc2lnbmVkIGludCBf dm14X2dldF9jcGwoc3RydWN0IHZjcHUgKnYpCiAgKiB0aGluZ3MuICBXZSBzdG9yZSB0aGUgcmlu Zy0zIHZlcnNpb24gaW4gdGhlIFZNQ1MgdG8gYXZvaWQgbG90cyBvZgogICogc2h1ZmZsaW5nIG9u IHZtZW50ZXIgYW5kIHZtZXhpdCwgYW5kIHRyYW5zbGF0ZSBpbiB0aGVzZSBhY2Nlc3NvcnMuICov CiAKLSNkZWZpbmUgcm1fY3NfYXR0ciAoKCh1bmlvbiBzZWdtZW50X2F0dHJpYnV0ZXMpIHsgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgLmZpZWxkcyA9IHsgLnR5cGUgPSAweGIsIC5z ID0gMSwgLmRwbCA9IDAsIC5wID0gMSwgLmF2bCA9IDAsICAgIFwKLSAgICAgICAgICAgICAgICAg ICAgLmwgPSAwLCAuZGIgPSAwLCAuZyA9IDAsIC5wYWQgPSAwIH0gfSkuYnl0ZXMpCi0jZGVmaW5l IHJtX2RzX2F0dHIgKCgodW5pb24gc2VnbWVudF9hdHRyaWJ1dGVzKSB7ICAgICAgICAgICAgICAg ICAgICAgICBcCi0gICAgICAgIC5maWVsZHMgPSB7IC50eXBlID0gMHgzLCAucyA9IDEsIC5kcGwg PSAwLCAucCA9IDEsIC5hdmwgPSAwLCAgICBcCi0gICAgICAgICAgICAgICAgICAgIC5sID0gMCwg LmRiID0gMCwgLmcgPSAwLCAucGFkID0gMCB9IH0pLmJ5dGVzKQotI2RlZmluZSB2bTg2X2RzX2F0 dHIgKCgodW5pb24gc2VnbWVudF9hdHRyaWJ1dGVzKSB7ICAgICAgICAgICAgICAgICAgICAgXAot ICAgICAgICAuZmllbGRzID0geyAudHlwZSA9IDB4MywgLnMgPSAxLCAuZHBsID0gMywgLnAgPSAx LCAuYXZsID0gMCwgICAgXAotICAgICAgICAgICAgICAgICAgICAubCA9IDAsIC5kYiA9IDAsIC5n ID0gMCwgLnBhZCA9IDAgfSB9KS5ieXRlcykKLSNkZWZpbmUgdm04Nl90cl9hdHRyICgoKHVuaW9u IHNlZ21lbnRfYXR0cmlidXRlcykgeyAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgLmZp ZWxkcyA9IHsgLnR5cGUgPSAweGIsIC5zID0gMCwgLmRwbCA9IDAsIC5wID0gMSwgLmF2bCA9IDAs ICAgIFwKLSAgICAgICAgICAgICAgICAgICAgLmwgPSAwLCAuZGIgPSAwLCAuZyA9IDAsIC5wYWQg PSAwIH0gfSkuYnl0ZXMpCisjZGVmaW5lIHJtX2NzX2F0dHIgKCgoc3RydWN0IHNlZ21lbnRfcmVn aXN0ZXIpIHsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC5hdHRyID0geyAudHlw ZSA9IDB4YiwgLnMgPSAxLCAuZHBsID0gMCwgLnAgPSAxLCAuYXZsID0gMCwgICAgICBcCisgICAg ICAgICAgICAgICAgICAgIC5sID0gMCwgLmRiID0gMCwgLmcgPSAwLCAucGFkID0gMCB9IH0pLmF0 dHIucmF3KQorI2RlZmluZSBybV9kc19hdHRyICgoKHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyKSB7 ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAuYXR0ciA9IHsgLnR5cGUgPSAweDMs IC5zID0gMSwgLmRwbCA9IDAsIC5wID0gMSwgLmF2bCA9IDAsICAgICAgXAorICAgICAgICAgICAg ICAgICAgLmwgPSAwLCAuZGIgPSAwLCAuZyA9IDAsIC5wYWQgPSAwIH0gfSkuYXR0ci5yYXcpCisj ZGVmaW5lIHZtODZfZHNfYXR0ciAoKChzdHJ1Y3Qgc2VnbWVudF9yZWdpc3RlcikgeyAgICAgICAg ICAgICAgICAgICAgICBcCisgICAgICAgIC5hdHRyID0geyAudHlwZSA9IDB4MywgLnMgPSAxLCAu ZHBsID0gMywgLnAgPSAxLCAuYXZsID0gMCwgICAgICBcCisgICAgICAgICAgICAgICAgICAubCA9 IDAsIC5kYiA9IDAsIC5nID0gMCwgLnBhZCA9IDAgfSB9KS5hdHRyLnJhdykKKyNkZWZpbmUgdm04 Nl90cl9hdHRyICgoKHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyKSB7ICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgLmF0dHIgPSB7IC50eXBlID0gMHhiLCAucyA9IDAsIC5kcGwgPSAwLCAu cCA9IDEsIC5hdmwgPSAwLCAgICAgIFwKKyAgICAgICAgICAgICAgICAgIC5sID0gMCwgLmRiID0g MCwgLmcgPSAwLCAucGFkID0gMCB9IH0pLmF0dHIucmF3KQogCiBzdGF0aWMgdm9pZCB2bXhfZ2V0 X3NlZ21lbnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYsIGVudW0geDg2X3NlZ21lbnQgc2VnLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZWdtZW50X3JlZ2lz dGVyICpyZWcpCkBAIC0xMTU2LDcgKzExNTYsNyBAQCBzdGF0aWMgdm9pZCB2bXhfZ2V0X3NlZ21l bnRfcmVnaXN0ZXIoc3RydWN0IHZjcHUgKnYsIGVudW0geDg2X3NlZ21lbnQgc2VnLAogICAgICAq IEZvbGQgVlQteCByZXByZXNlbnRhdGlvbiBpbnRvIFhlbidzIHJlcHJlc2VudGF0aW9uLiAgVGhl IFByZXNlbnQgYml0IGlzCiAgICAgICogdW5jb25kaXRpb25hbGx5IHNldCB0byB0aGUgaW52ZXJz ZSBvZiB1bnVzYWJsZS4KICAgICAgKi8KLSAgICByZWctPmF0dHIuYnl0ZXMgPQorICAgIHJlZy0+ YXR0ci5yYXcgPQogICAgICAgICAoIShhdHRyICYgKDF1IDw8IDE2KSkgPDwgNykgfCAoYXR0ciAm IDB4N2YpIHwgKChhdHRyID4+IDQpICYgMHhmMDApOwogCiAgICAgLyogQWRqdXN0IGZvciB2aXJ0 dWFsIDgwODYgbW9kZSAqLwpAQCAtMTE3NSw3ICsxMTc1LDcgQEAgc3RhdGljIHZvaWQgdm14X2dl dF9zZWdtZW50X3JlZ2lzdGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywK ICAgICAgICAgICAgICAqIGJ1dCBmb3IgU1Mgd2UgYXNzdW1lIGl0IGhhczogdGhlIFVidW50dSBn cmFwaGljYWwgYm9vdGxvYWRlcgogICAgICAgICAgICAgICogZG9lcyB0aGlzIGFuZCBnZXRzIGJh ZGx5IGNvbmZ1c2VkIGlmIHdlIGxlYXZlIHRoZSBvbGQgU1MgaW4gCiAgICAgICAgICAgICAgKiBw bGFjZS4gKi8KLSAgICAgICAgICAgIHJlZy0+YXR0ci5ieXRlcyA9IChzZWcgPT0geDg2X3NlZ19j cyA/IHJtX2NzX2F0dHIgOiBybV9kc19hdHRyKTsKKyAgICAgICAgICAgIHJlZy0+YXR0ci5yYXcg PSAoc2VnID09IHg4Nl9zZWdfY3MgPyBybV9jc19hdHRyIDogcm1fZHNfYXR0cik7CiAgICAgICAg ICAgICAqc3JlZyA9ICpyZWc7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSAKQEAgLTExOTUsNyAr MTE5NSw3IEBAIHN0YXRpYyB2b2lkIHZteF9zZXRfc2VnbWVudF9yZWdpc3RlcihzdHJ1Y3QgdmNw dSAqdiwgZW51bSB4ODZfc2VnbWVudCBzZWcsCiAgICAgdWludDY0X3QgYmFzZTsKIAogICAgIHNl bCA9IHJlZy0+c2VsOwotICAgIGF0dHIgPSByZWctPmF0dHIuYnl0ZXM7CisgICAgYXR0ciA9IHJl Zy0+YXR0ci5yYXc7CiAgICAgbGltaXQgPSByZWctPmxpbWl0OwogICAgIGJhc2UgPSByZWctPmJh c2U7CiAKQEAgLTEyMzQsNyArMTIzNCw3IEBAIHN0YXRpYyB2b2lkIHZteF9zZXRfc2VnbWVudF9y ZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZfc2VnbWVudCBzZWcsCiAgICAgICAgICAg ICAgKiBidXQgb3RoZXJ3aXNlIHdlIGhhdmUgdG8gZW11bGF0ZSBpZiAqYW55KiBzZWdtZW50IGhh c24ndAogICAgICAgICAgICAgICogYmVlbiByZWxvYWRlZC4gKi8KICAgICAgICAgICAgIGlmICgg YmFzZSA8IDB4MTAwMDAwICYmICEoYmFzZSAmIDB4ZikgJiYgbGltaXQgPj0gMHhmZmZmCi0gICAg ICAgICAgICAgICAgICYmIHJlZy0+YXR0ci5maWVsZHMucCApCisgICAgICAgICAgICAgICAgICYm IHJlZy0+YXR0ci5wICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBzZWwgPSBiYXNl ID4+IDQ7CiAgICAgICAgICAgICAgICAgYXR0ciA9IHZtODZfZHNfYXR0cjsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93 L2NvbW1vbi5jCmluZGV4IGQ0MzIxOTguLmExNjY5OTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9zaGFkb3cvY29tbW9uLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24u YwpAQCAtMzMyLDEzICszMzIsMTMgQEAgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyAqc2hh ZG93X2luaXRfZW11bGF0aW9uKAogICAgIGNyZWcgPSBodm1fZ2V0X3NlZ19yZWcoeDg2X3NlZ19j cywgc2hfY3R4dCk7CiAKICAgICAvKiBXb3JrIG91dCB0aGUgZW11bGF0aW9uIG1vZGUuICovCi0g ICAgaWYgKCBzaF9jdHh0LT5jdHh0LmxtYSAmJiBjcmVnLT5hdHRyLmZpZWxkcy5sICkKKyAgICBp ZiAoIHNoX2N0eHQtPmN0eHQubG1hICYmIGNyZWctPmF0dHIubCApCiAgICAgICAgIHNoX2N0eHQt PmN0eHQuYWRkcl9zaXplID0gc2hfY3R4dC0+Y3R4dC5zcF9zaXplID0gNjQ7CiAgICAgZWxzZQog ICAgIHsKICAgICAgICAgc3JlZyA9IGh2bV9nZXRfc2VnX3JlZyh4ODZfc2VnX3NzLCBzaF9jdHh0 KTsKLSAgICAgICAgc2hfY3R4dC0+Y3R4dC5hZGRyX3NpemUgPSBjcmVnLT5hdHRyLmZpZWxkcy5k YiA/IDMyIDogMTY7Ci0gICAgICAgIHNoX2N0eHQtPmN0eHQuc3Bfc2l6ZSAgID0gc3JlZy0+YXR0 ci5maWVsZHMuZGIgPyAzMiA6IDE2OworICAgICAgICBzaF9jdHh0LT5jdHh0LmFkZHJfc2l6ZSA9 IGNyZWctPmF0dHIuZGIgPyAzMiA6IDE2OworICAgICAgICBzaF9jdHh0LT5jdHh0LnNwX3NpemUg ICA9IHNyZWctPmF0dHIuZGIgPyAzMiA6IDE2OwogICAgIH0KIAogICAgIC8qIEF0dGVtcHQgdG8g cHJlZmV0Y2ggd2hvbGUgaW5zdHJ1Y3Rpb24uICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv dHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDUyZTc0MGYuLmU0YzdjNmEgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5j CkBAIC0xODQ1LDcgKzE4NDUsNyBAQCBzdGF0aWMgaW50IHByaXZfb3BfcmVhZF9zZWdtZW50KGVu dW0geDg2X3NlZ21lbnQgc2VnLAogICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVB QkxFOwogCiAgICAgICAgIHJlZy0+bGltaXQgPSBsaW1pdDsKLSAgICAgICAgcmVnLT5hdHRyLmJ5 dGVzID0gYXIgPj4gODsKKyAgICAgICAgcmVnLT5hdHRyLnJhdyA9IGFyID4+IDg7CiAgICAgfQog ICAgIGVsc2UKICAgICB7CkBAIC0xODY2LDE5ICsxODY2LDE5IEBAIHN0YXRpYyBpbnQgcHJpdl9v cF9yZWFkX3NlZ21lbnQoZW51bSB4ODZfc2VnbWVudCBzZWcsCiAKICAgICAgICAgcmVnLT5saW1p dCA9IH4wVTsKIAotICAgICAgICByZWctPmF0dHIuYnl0ZXMgPSAwOwotICAgICAgICByZWctPmF0 dHIuZmllbGRzLnR5cGUgPSBfU0VHTUVOVF9XUiA+PiA4OworICAgICAgICByZWctPmF0dHIucmF3 ID0gMDsKKyAgICAgICAgcmVnLT5hdHRyLnR5cGUgPSBfU0VHTUVOVF9XUiA+PiA4OwogICAgICAg ICBpZiAoIHNlZyA9PSB4ODZfc2VnX2NzICkKICAgICAgICAgewotICAgICAgICAgICAgcmVnLT5h dHRyLmZpZWxkcy50eXBlIHw9IF9TRUdNRU5UX0NPREUgPj4gODsKLSAgICAgICAgICAgIHJlZy0+ YXR0ci5maWVsZHMubCA9IDE7CisgICAgICAgICAgICByZWctPmF0dHIudHlwZSB8PSBfU0VHTUVO VF9DT0RFID4+IDg7CisgICAgICAgICAgICByZWctPmF0dHIubCA9IDE7CiAgICAgICAgIH0KICAg ICAgICAgZWxzZQotICAgICAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy5kYiA9IDE7Ci0gICAgICAg IHJlZy0+YXR0ci5maWVsZHMucyAgID0gMTsKLSAgICAgICAgcmVnLT5hdHRyLmZpZWxkcy5kcGwg PSAzOwotICAgICAgICByZWctPmF0dHIuZmllbGRzLnAgICA9IDE7Ci0gICAgICAgIHJlZy0+YXR0 ci5maWVsZHMuZyAgID0gMTsKKyAgICAgICAgICAgIHJlZy0+YXR0ci5kYiA9IDE7CisgICAgICAg IHJlZy0+YXR0ci5zICAgPSAxOworICAgICAgICByZWctPmF0dHIuZHBsID0gMzsKKyAgICAgICAg cmVnLT5hdHRyLnAgICA9IDE7CisgICAgICAgIHJlZy0+YXR0ci5nICAgPSAxOwogICAgIH0KIAog ICAgIC8qCkBAIC0xODg3LDkgKzE4ODcsOSBAQCBzdGF0aWMgaW50IHByaXZfb3BfcmVhZF9zZWdt ZW50KGVudW0geDg2X3NlZ21lbnQgc2VnLAogICAgICAqLwogICAgIGlmICggKHNlZyA9PSB4ODZf c2VnX3NzIHx8CiAgICAgICAgICAgKHNlZyA9PSB4ODZfc2VnX2NzICYmCi0gICAgICAgICAgICEo cmVnLT5hdHRyLmZpZWxkcy50eXBlICYgKF9TRUdNRU5UX0VDID4+IDgpKSkpICYmCisgICAgICAg ICAgICEocmVnLT5hdHRyLnR5cGUgJiAoX1NFR01FTlRfRUMgPj4gOCkpKSkgJiYKICAgICAgICAg IGd1ZXN0X2tlcm5lbF9tb2RlKGN1cnJlbnQsIGN0eHQtPnJlZ3MpICkKLSAgICAgICAgcmVnLT5h dHRyLmZpZWxkcy5kcGwgPSAwOworICAgICAgICByZWctPmF0dHIuZHBsID0gMDsKIAogICAgIHJl dHVybiBYODZFTVVMX09LQVk7CiB9CkBAIC0yMjYwLDExICsyMjYwLDExIEBAIHN0YXRpYyBpbnQg cHJpdl9vcF9yZXBfaW5zKHVpbnQxNl90IHBvcnQsCiAgICAgaWYgKCByYyAhPSBYODZFTVVMX09L QVkgKQogICAgICAgICByZXR1cm4gcmM7CiAKLSAgICBpZiAoICFzcmVnLmF0dHIuZmllbGRzLnAg KQorICAgIGlmICggIXNyZWcuYXR0ci5wICkKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5E TEVBQkxFOwotICAgIGlmICggIXNyZWcuYXR0ci5maWVsZHMucyB8fAotICAgICAgICAgKHNyZWcu YXR0ci5maWVsZHMudHlwZSAmIChfU0VHTUVOVF9DT0RFID4+IDgpKSB8fAotICAgICAgICAgIShz cmVnLmF0dHIuZmllbGRzLnR5cGUgJiAoX1NFR01FTlRfV1IgPj4gOCkpICkKKyAgICBpZiAoICFz cmVnLmF0dHIucyB8fAorICAgICAgICAgKHNyZWcuYXR0ci50eXBlICYgKF9TRUdNRU5UX0NPREUg Pj4gOCkpIHx8CisgICAgICAgICAhKHNyZWcuYXR0ci50eXBlICYgKF9TRUdNRU5UX1dSID4+IDgp KSApCiAgICAgewogICAgICAgICB4ODZfZW11bF9od19leGNlcHRpb24oVFJBUF9ncF9mYXVsdCwg MCwgY3R4dCk7CiAgICAgICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKQEAgLTIzMjUsMTEg KzIzMjUsMTEgQEAgc3RhdGljIGludCBwcml2X29wX3JlcF9vdXRzKGVudW0geDg2X3NlZ21lbnQg c2VnLCB1bnNpZ25lZCBsb25nIG9mZnNldCwKICAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSAp CiAgICAgICAgIHJldHVybiByYzsKIAotICAgIGlmICggIXNyZWcuYXR0ci5maWVsZHMucCApCisg ICAgaWYgKCAhc3JlZy5hdHRyLnAgKQogICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFC TEU7Ci0gICAgaWYgKCAhc3JlZy5hdHRyLmZpZWxkcy5zIHx8Ci0gICAgICAgICAoKHNyZWcuYXR0 ci5maWVsZHMudHlwZSAmIChfU0VHTUVOVF9DT0RFID4+IDgpKSAmJgotICAgICAgICAgICEoc3Jl Zy5hdHRyLmZpZWxkcy50eXBlICYgKF9TRUdNRU5UX1dSID4+IDgpKSkgKQorICAgIGlmICggIXNy ZWcuYXR0ci5zIHx8CisgICAgICAgICAoKHNyZWcuYXR0ci50eXBlICYgKF9TRUdNRU5UX0NPREUg Pj4gOCkpICYmCisgICAgICAgICAgIShzcmVnLmF0dHIudHlwZSAmIChfU0VHTUVOVF9XUiA+PiA4 KSkpICkKICAgICB7CiAgICAgICAgIHg4Nl9lbXVsX2h3X2V4Y2VwdGlvbihzZWcgIT0geDg2X3Nl Z19zcyA/IFRSQVBfZ3BfZmF1bHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogVFJBUF9zdGFja19lcnJvciwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni92bV9ldmVudC5jIGIveGVuL2FyY2gveDg2L3ZtX2V2ZW50LmMKaW5kZXggYTZlYTQyYy4uYTY2 ZmM5YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3ZtX2V2ZW50LmMKKysrIGIveGVuL2FyY2gv eDg2L3ZtX2V2ZW50LmMKQEAgLTE3Niw3ICsxNzYsNyBAQCB2b2lkIHZtX2V2ZW50X2ZpbGxfcmVn cyh2bV9ldmVudF9yZXF1ZXN0X3QgKnJlcSkKICAgICByZXEtPmRhdGEucmVncy54ODYuZ3NfYmFz ZSA9IHNlZy5iYXNlOwogCiAgICAgaHZtX2dldF9zZWdtZW50X3JlZ2lzdGVyKGN1cnIsIHg4Nl9z ZWdfY3MsICZzZWcpOwotICAgIHJlcS0+ZGF0YS5yZWdzLng4Ni5jc19hcmJ5dGVzID0gc2VnLmF0 dHIuYnl0ZXM7CisgICAgcmVxLT5kYXRhLnJlZ3MueDg2LmNzX2FyYnl0ZXMgPSBzZWcuYXR0ci5y YXc7CiB9CiAKIHZvaWQgdm1fZXZlbnRfZW11bGF0ZV9jaGVjayhzdHJ1Y3QgdmNwdSAqdiwgdm1f ZXZlbnRfcmVzcG9uc2VfdCAqcnNwKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl9lbXVs YXRlL3g4Nl9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUu YwppbmRleCA4YTMwNzE1Li4zYzA4YWM3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2X2Vt dWxhdGUveDg2X2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2Vt dWxhdGUuYwpAQCAtOTczLDcgKzk3Myw3IEBAIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgQVNT RVJUKCFjdHh0LT5sbWEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKChpcCkgPiAoY3MpLT5saW1pdCwg RVhDX0dQLCAwKTsgICAgICAgICAgIFwKICAgICB9IGVsc2UgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgZ2VuZXJh dGVfZXhjZXB0aW9uX2lmKGN0eHQtPmxtYSAmJiAoY3MpLT5hdHRyLmZpZWxkcy5sICAgICAgICAg IFwKKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKGN0eHQtPmxtYSAmJiAoY3MpLT5hdHRy LmwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gIWlz X2Nhbm9uaWNhbF9hZGRyZXNzKGlwKSAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogKGlwKSA+IChjcyktPmxpbWl0LCBFWENfR1AsIDApOyAgICAgICAgIFwK IH0pCkBAIC0xNDE0LDcgKzE0MTQsNyBAQCBnZXRfY3BsKAogICAgICAgICAgb3BzLT5yZWFkX3Nl Z21lbnQoeDg2X3NlZ19zcywgJnJlZywgY3R4dCkgKQogICAgICAgICByZXR1cm4gLTE7CiAKLSAg ICByZXR1cm4gcmVnLmF0dHIuZmllbGRzLmRwbDsKKyAgICByZXR1cm4gcmVnLmF0dHIuZHBsOwog fQogCiBzdGF0aWMgaW50CkBAIC0xNDcwLDcgKzE0NzAsNyBAQCBzdGF0aWMgaW50IGlvcG9ydF9h Y2Nlc3NfY2hlY2soCiAgICAgICAgIHJldHVybiByYyA9PSBYODZFTVVMX0RPTkUgPyBYODZFTVVM X09LQVkgOiByYzsKIAogICAgIC8qIEVuc3VyZSB0aGUgVFNTIGhhcyBhbiBpby1iaXRtYXAtb2Zm c2V0IGZpZWxkLiAqLwotICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih0ci5hdHRyLmZpZWxkcy50 eXBlICE9IDB4YiwgRVhDX0dQLCAwKTsKKyAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYodHIuYXR0 ci50eXBlICE9IDB4YiwgRVhDX0dQLCAwKTsKIAogICAgIHN3aXRjaCAoIHJjID0gcmVhZF91bG9u Zyh4ODZfc2VnX3RyLCAweDY2LCAmaW9ibXAsIDIsIGN0eHQsIG9wcykgKQogICAgIHsKQEAgLTE2 OTMsMTIgKzE2OTMsMTIgQEAgcHJvdG1vZGVfbG9hZF9zZWcoCiAgICAgICAgICAgICAgb3BzLT5y ZWFkX3NlZ21lbnQoc2VnLCBzcmVnLCBjdHh0KSAhPSBYODZFTVVMX09LQVkgKQogICAgICAgICAg ICAgbWVtc2V0KHNyZWcsIDAsIHNpemVvZigqc3JlZykpOwogICAgICAgICBlbHNlCi0gICAgICAg ICAgICBzcmVnLT5hdHRyLmJ5dGVzID0gMDsKKyAgICAgICAgICAgIHNyZWctPmF0dHIucmF3ID0g MDsKICAgICAgICAgc3JlZy0+c2VsID0gc2VsOwogCiAgICAgICAgIC8qIFNpbmNlIENQTCA9PSBT Uy5EUEwsIHdlIG5lZWQgdG8gcHV0IGJhY2sgRFBMLiAqLwogICAgICAgICBpZiAoIHNlZyA9PSB4 ODZfc2VnX3NzICkKLSAgICAgICAgICAgIHNyZWctPmF0dHIuZmllbGRzLmRwbCA9IHNlbDsKKyAg ICAgICAgICAgIHNyZWctPmF0dHIuZHBsID0gc2VsOwogCiAgICAgICAgIHJldHVybiBYODZFTVVM X09LQVk7CiAgICAgfQpAQCAtMTg3MywxMCArMTg3MywxMCBAQCBwcm90bW9kZV9sb2FkX3NlZygK ICAgICAgICAgICAgICAgICAgICgoZGVzYy5iIDw8ICAwKSAmIDB4ZmYwMDAwMDB1KSB8CiAgICAg ICAgICAgICAgICAgICAoKGRlc2MuYiA8PCAxNikgJiAweDAwZmYwMDAwdSkgfAogICAgICAgICAg ICAgICAgICAgKChkZXNjLmEgPj4gMTYpICYgMHgwMDAwZmZmZnUpKTsKLSAgICBzcmVnLT5hdHRy LmJ5dGVzID0gKCgoZGVzYy5iID4+ICA4KSAmIDB4MDBmZnUpIHwKLSAgICAgICAgICAgICAgICAg ICAgICAgICgoZGVzYy5iID4+IDEyKSAmIDB4MGYwMHUpKTsKKyAgICBzcmVnLT5hdHRyLnJhdyA9 ICgoKGRlc2MuYiA+PiAgOCkgJiAweDAwZmZ1KSB8CisgICAgICAgICAgICAgICAgICAgICAgKChk ZXNjLmIgPj4gMTIpICYgMHgwZjAwdSkpOwogICAgIHNyZWctPmxpbWl0ID0gKGRlc2MuYiAmIDB4 MDAwZjAwMDB1KSB8IChkZXNjLmEgJiAweDAwMDBmZmZmdSk7Ci0gICAgaWYgKCBzcmVnLT5hdHRy LmZpZWxkcy5nICkKKyAgICBpZiAoIHNyZWctPmF0dHIuZyApCiAgICAgICAgIHNyZWctPmxpbWl0 ID0gKHNyZWctPmxpbWl0IDw8IDEyKSB8IDB4ZmZmdTsKICAgICBzcmVnLT5zZWwgPSBzZWw7CiAg ICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKQEAgLTQ5NjMsOSArNDk2Myw5IEBAIHg4Nl9lbXVsYXRl KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3JlZywgY3R4 dCwgb3BzKSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBjYXNlIFg4NkVNVUxfT0tBWToK LSAgICAgICAgICAgICAgICBpZiAoIHNyZWcuYXR0ci5maWVsZHMucyAmJgotICAgICAgICAgICAg ICAgICAgICAgKChtb2RybV9yZWcgJiAxKSA/ICgoc3JlZy5hdHRyLmZpZWxkcy50eXBlICYgMHhh KSA9PSAweDIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogKChzcmVn LmF0dHIuZmllbGRzLnR5cGUgJiAweGEpICE9IDB4OCkpICkKKyAgICAgICAgICAgICAgICBpZiAo IHNyZWcuYXR0ci5zICYmCisgICAgICAgICAgICAgICAgICAgICAoKG1vZHJtX3JlZyAmIDEpID8g KChzcmVnLmF0dHIudHlwZSAmIDB4YSkgPT0gMHgyKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6ICgoc3JlZy5hdHRyLnR5cGUgJiAweGEpICE9IDB4OCkpICkKICAgICAg ICAgICAgICAgICAgICAgX3JlZ3MuZWZsYWdzIHw9IFg4Nl9FRkxBR1NfWkY7CiAgICAgICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFg4NkVNVUxfRVhDRVBUSU9OOgpAQCAtNTE4 OCw5ICs1MTg4LDkgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3R4dCwgb3BzKSApCiAgICAgICAgIHsKICAgICAgICAgY2FzZSBYODZFTVVM X09LQVk6Ci0gICAgICAgICAgICBpZiAoICFzcmVnLmF0dHIuZmllbGRzLnMgKQorICAgICAgICAg ICAgaWYgKCAhc3JlZy5hdHRyLnMgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHN3 aXRjaCAoIHNyZWcuYXR0ci5maWVsZHMudHlwZSApCisgICAgICAgICAgICAgICAgc3dpdGNoICgg c3JlZy5hdHRyLnR5cGUgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBjYXNl IDB4MDE6IC8qIGF2YWlsYWJsZSAxNi1iaXQgVFNTICovCiAgICAgICAgICAgICAgICAgY2FzZSAw eDAzOiAvKiBidXN5IDE2LWJpdCBUU1MgKi8KQEAgLTUyMjIsMTAgKzUyMjIsMTAgQEAgeDg2X2Vt dWxhdGUoCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBpZiAoIF9yZWdz LmVmbGFncyAmIFg4Nl9FRkxBR1NfWkYgKQotICAgICAgICAgICAgZHN0LnZhbCA9ICgoc3JlZy5h dHRyLmJ5dGVzICYgMHhmZikgPDwgOCkgfAotICAgICAgICAgICAgICAgICAgICAgICgoc3JlZy5s aW1pdCA+PiAoc3JlZy5hdHRyLmZpZWxkcy5nID8gMTIgOiAwKSkgJgorICAgICAgICAgICAgZHN0 LnZhbCA9ICgoc3JlZy5hdHRyLnJhdyAmIDB4ZmYpIDw8IDgpIHwKKyAgICAgICAgICAgICAgICAg ICAgICAoKHNyZWcubGltaXQgPj4gKHNyZWcuYXR0ci5nID8gMTIgOiAwKSkgJgogICAgICAgICAg ICAgICAgICAgICAgICAweGYwMDAwKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgKChzcmVnLmF0 dHIuYnl0ZXMgJiAweGYwMCkgPDwgMTIpOworICAgICAgICAgICAgICAgICAgICAgICgoc3JlZy5h dHRyLnJhdyAmIDB4ZjAwKSA8PCAxMik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRzdC50 eXBlID0gT1BfTk9ORTsKICAgICAgICAgYnJlYWs7CkBAIC01MjM3LDkgKzUyMzcsOSBAQCB4ODZf ZW11bGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHh0LCBv cHMpICkKICAgICAgICAgewogICAgICAgICBjYXNlIFg4NkVNVUxfT0tBWToKLSAgICAgICAgICAg IGlmICggIXNyZWcuYXR0ci5maWVsZHMucyApCisgICAgICAgICAgICBpZiAoICFzcmVnLmF0dHIu cyApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc3dpdGNoICggc3JlZy5hdHRyLmZp ZWxkcy50eXBlICkKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKCBzcmVnLmF0dHIudHlwZSApCiAg ICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGNhc2UgMHgwMTogLyogYXZhaWxhYmxl IDE2LWJpdCBUU1MgKi8KICAgICAgICAgICAgICAgICBjYXNlIDB4MDM6IC8qIGJ1c3kgMTYtYml0 IFRTUyAqLwpAQCAtNTI5MCwxMiArNTI5MCwxMiBAQCB4ODZfZW11bGF0ZSgKIAogICAgICAgICBj cy5iYXNlID0gc3JlZy5iYXNlID0gMDsgLyogZmxhdCBzZWdtZW50ICovCiAgICAgICAgIGNzLmxp bWl0ID0gc3JlZy5saW1pdCA9IH4wdTsgIC8qIDRHQiBsaW1pdCAqLwotICAgICAgICBzcmVnLmF0 dHIuYnl0ZXMgPSAweGM5MzsgLyogRytEQitQK1MrRGF0YSAqLworICAgICAgICBzcmVnLmF0dHIu cmF3ID0gMHhjOTM7IC8qIEcrREIrUCtTK0RhdGEgKi8KIAogI2lmZGVmIF9feDg2XzY0X18KICAg ICAgICAgaWYgKCBjdHh0LT5sbWEgKQogICAgICAgICB7Ci0gICAgICAgICAgICBjcy5hdHRyLmJ5 dGVzID0gMHhhOWI7IC8qIEwrREIrUCtTK0NvZGUgKi8KKyAgICAgICAgICAgIGNzLmF0dHIucmF3 ID0gMHhhOWI7IC8qIEwrREIrUCtTK0NvZGUgKi8KIAogICAgICAgICAgICAgX3JlZ3MucmN4ID0g X3JlZ3MucmlwOwogICAgICAgICAgICAgX3JlZ3MucjExID0gX3JlZ3MuZWZsYWdzICYgflg4Nl9F RkxBR1NfUkY7CkBAIC01MzEzLDcgKzUzMTMsNyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZWxz ZQogI2VuZGlmCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNzLmF0dHIuYnl0ZXMgPSAweGM5Yjsg LyogRytEQitQK1MrQ29kZSAqLworICAgICAgICAgICAgY3MuYXR0ci5yYXcgPSAweGM5YjsgLyog RytEQitQK1MrQ29kZSAqLwogCiAgICAgICAgICAgICBfcmVncy5yKGN4KSA9IF9yZWdzLmVpcDsK ICAgICAgICAgICAgIF9yZWdzLmVpcCA9IG1zcl92YWw7CkBAIC01NzQ3LDEzICs1NzQ3LDEzIEBA IHg4Nl9lbXVsYXRlKAogICAgICAgICBjcy5zZWwgPSBtc3JfdmFsICYgfjM7IC8qIFNFTEVDVE9S X1JQTF9NQVNLICovCiAgICAgICAgIGNzLmJhc2UgPSAwOyAgIC8qIGZsYXQgc2VnbWVudCAqLwog ICAgICAgICBjcy5saW1pdCA9IH4wdTsgIC8qIDRHQiBsaW1pdCAqLwotICAgICAgICBjcy5hdHRy LmJ5dGVzID0gY3R4dC0+bG1hID8gMHhhOWIgIC8qIEcrTCtQK1MrQ29kZSAqLwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogMHhjOWI7IC8qIEcrREIrUCtTK0NvZGUgKi8KKyAg ICAgICAgY3MuYXR0ci5yYXcgPSBjdHh0LT5sbWEgPyAweGE5YiAgLyogRytMK1ArUytDb2RlICov CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMHhjOWI7IC8qIEcrREIrUCtTK0Nv ZGUgKi8KIAogICAgICAgICBzcmVnLnNlbCA9IGNzLnNlbCArIDg7CiAgICAgICAgIHNyZWcuYmFz ZSA9IDA7ICAgLyogZmxhdCBzZWdtZW50ICovCiAgICAgICAgIHNyZWcubGltaXQgPSB+MHU7ICAv KiA0R0IgbGltaXQgKi8KLSAgICAgICAgc3JlZy5hdHRyLmJ5dGVzID0gMHhjOTM7IC8qIEcrREIr UCtTK0RhdGEgKi8KKyAgICAgICAgc3JlZy5hdHRyLnJhdyA9IDB4YzkzOyAvKiBHK0RCK1ArUytE YXRhICovCiAKICAgICAgICAgZmFpbF9pZihvcHMtPndyaXRlX3NlZ21lbnQgPT0gTlVMTCk7CiAg ICAgICAgIGlmICggKHJjID0gb3BzLT53cml0ZV9zZWdtZW50KHg4Nl9zZWdfY3MsICZjcywgY3R4 dCkpICE9IDAgfHwKQEAgLTU3OTMsMTMgKzU3OTMsMTMgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAg ICAgICAgICAgIChvcF9ieXRlcyA9PSA4ID8gMzIgOiAxNik7CiAgICAgICAgIGNzLmJhc2UgPSAw OyAgIC8qIGZsYXQgc2VnbWVudCAqLwogICAgICAgICBjcy5saW1pdCA9IH4wdTsgIC8qIDRHQiBs aW1pdCAqLwotICAgICAgICBjcy5hdHRyLmJ5dGVzID0gb3BfYnl0ZXMgPT0gOCA/IDB4YWZiICAv KiBMK0RCK1ArRFBMMytTK0NvZGUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiAweGNmYjsgLyogRytEQitQK0RQTDMrUytDb2RlICovCisgICAgICAgIGNzLmF0dHIu cmF3ID0gb3BfYnl0ZXMgPT0gOCA/IDB4YWZiICAvKiBMK0RCK1ArRFBMMytTK0NvZGUgKi8KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMHhjZmI7IC8qIEcrREIrUCtEUEwz K1MrQ29kZSAqLwogCiAgICAgICAgIHNyZWcuc2VsID0gY3Muc2VsICsgODsKICAgICAgICAgc3Jl Zy5iYXNlID0gMDsgICAvKiBmbGF0IHNlZ21lbnQgKi8KICAgICAgICAgc3JlZy5saW1pdCA9IH4w dTsgIC8qIDRHQiBsaW1pdCAqLwotICAgICAgICBzcmVnLmF0dHIuYnl0ZXMgPSAweGNmMzsgLyog RytEQitQK0RQTDMrUytEYXRhICovCisgICAgICAgIHNyZWcuYXR0ci5yYXcgPSAweGNmMzsgLyog RytEQitQK0RQTDMrUytEYXRhICovCiAKICAgICAgICAgZmFpbF9pZihvcHMtPndyaXRlX3NlZ21l bnQgPT0gTlVMTCk7CiAgICAgICAgIGlmICggKHJjID0gb3BzLT53cml0ZV9zZWdtZW50KHg4Nl9z ZWdfY3MsICZjcywgY3R4dCkpICE9IDAgfHwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZf ZW11bGF0ZS94ODZfZW11bGF0ZS5oIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVs YXRlLmgKaW5kZXggZTVlYzhhNi4uMzM1NWMwMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4 Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmgKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4 Nl9lbXVsYXRlLmgKQEAgLTgzLDMzICs4MywyNiBAQCBzdHJ1Y3QgeDg2X2V2ZW50IHsKICAgICB1 bnNpZ25lZCBsb25nIGNyMjsgICAgICAgICAgLyogT25seSBmb3IgVFJBUF9wYWdlX2ZhdWx0IGgv dyBleGNlcHRpb24gKi8KIH07CiAKLS8qIAotICogQXR0cmlidXRlIGZvciBzZWdtZW50IHNlbGVj dG9yLiBUaGlzIGlzIGEgY29weSBvZiBiaXQgNDA6NDcgJiA1Mjo1NSBvZiB0aGUKLSAqIHNlZ21l bnQgZGVzY3JpcHRvci4gSXQgaGFwcGVucyB0byBtYXRjaCB0aGUgZm9ybWF0IG9mIGFuIEFNRCBT Vk0gVk1DQi4KLSAqLwotdHlwZWRlZiB1bmlvbiBzZWdtZW50X2F0dHJpYnV0ZXMgewotICAgIHVp bnQxNl90IGJ5dGVzOwotICAgIHN0cnVjdAotICAgIHsKLSAgICAgICAgdWludDE2X3QgdHlwZTo0 OyAgICAvKiAwOyAgQml0IDQwLTQzICovCi0gICAgICAgIHVpbnQxNl90IHM6ICAgMTsgICAgLyog NDsgIEJpdCA0NCAqLwotICAgICAgICB1aW50MTZfdCBkcGw6IDI7ICAgIC8qIDU7ICBCaXQgNDUt NDYgKi8KLSAgICAgICAgdWludDE2X3QgcDogICAxOyAgICAvKiA3OyAgQml0IDQ3ICovCi0gICAg ICAgIHVpbnQxNl90IGF2bDogMTsgICAgLyogODsgIEJpdCA1MiAqLwotICAgICAgICB1aW50MTZf dCBsOiAgIDE7ICAgIC8qIDk7ICBCaXQgNTMgKi8KLSAgICAgICAgdWludDE2X3QgZGI6ICAxOyAg ICAvKiAxMDsgQml0IDU0ICovCi0gICAgICAgIHVpbnQxNl90IGc6ICAgMTsgICAgLyogMTE7IEJp dCA1NSAqLwotICAgICAgICB1aW50MTZfdCBwYWQ6IDQ7Ci0gICAgfSBmaWVsZHM7Ci19IHNlZ21l bnRfYXR0cmlidXRlc190OwotCiAvKgogICogRnVsbCBzdGF0ZSBvZiBhIHNlZ21lbnQgcmVnaXN0 ZXIgKHZpc2libGUgYW5kIGhpZGRlbiBwb3J0aW9ucykuCiAgKiBBZ2FpbiwgdGhpcyBoYXBwZW5z IHRvIG1hdGNoIHRoZSBmb3JtYXQgb2YgYW4gQU1EIFNWTSBWTUNCLgogICovCiBzdHJ1Y3Qgc2Vn bWVudF9yZWdpc3RlciB7CiAgICAgdWludDE2X3QgICBzZWw7Ci0gICAgc2VnbWVudF9hdHRyaWJ1 dGVzX3QgYXR0cjsKKyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQxNl90IHJhdzsKKyAgICAgICAg c3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQxNl90IHR5cGU6NDsgICAgLyogMDsgIEJpdCA0MC00 MyAqLworICAgICAgICAgICAgdWludDE2X3QgczogICAxOyAgICAvKiA0OyAgQml0IDQ0ICovCisg ICAgICAgICAgICB1aW50MTZfdCBkcGw6IDI7ICAgIC8qIDU7ICBCaXQgNDUtNDYgKi8KKyAgICAg ICAgICAgIHVpbnQxNl90IHA6ICAgMTsgICAgLyogNzsgIEJpdCA0NyAqLworICAgICAgICAgICAg dWludDE2X3QgYXZsOiAxOyAgICAvKiA4OyAgQml0IDUyICovCisgICAgICAgICAgICB1aW50MTZf dCBsOiAgIDE7ICAgIC8qIDk7ICBCaXQgNTMgKi8KKyAgICAgICAgICAgIHVpbnQxNl90IGRiOiAg MTsgICAgLyogMTA7IEJpdCA1NCAqLworICAgICAgICAgICAgdWludDE2X3QgZzogICAxOyAgICAv KiAxMTsgQml0IDU1ICovCisgICAgICAgICAgICB1aW50MTZfdCBwYWQ6IDQ7CisgICAgICAgIH07 CisgICAgfSBhdHRyOwogICAgIHVpbnQzMl90ICAgbGltaXQ7CiAgICAgdWludDY0X3QgICBiYXNl OwogfTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==