From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 4/7] x86/hvm: Rename v->arch.hvm_vcpu to v->arch.hvm Date: Tue, 28 Aug 2018 18:39:03 +0100 Message-ID: <1535477946-17892-5-git-send-email-andrew.cooper3@citrix.com> References: <1535477946-17892-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: In-Reply-To: <1535477946-17892-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Kevin Tian , Tamas K Lengyel , Wei Liu , Jun Nakajima , Razvan Cojocaru , George Dunlap , Andrew Cooper , Tim Deegan , Julien Grall , Paul Durrant , Stefano Stabellini , Jan Beulich , Boris Ostrovsky , Brian Woods , Suravee Suthikulpanit , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIHRyYWlsaW5nIF92Y3B1IHN1ZmZpeCBpcyByZWR1bmRhbnQsIGJ1dCBhZGRzIHRvIGNvZGUg dm9sdW1lLiAgRHJvcCBpdC4KClJlZmxvdyBsaW5lcyBhcyBhcHByb3ByaWF0ZSwgYW5kIHN3aXRj aCB0byB1c2luZyB0aGUgbmV3IFhGUkVFL2V0YyB3cmFwcGVycwp3aGVyZSBhcHBsaWNhYmxlLgoK Tm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNl LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBSb2dlciBQYXUgTW9u bsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ0M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpD QzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDQzogUGF1bCBE dXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KQ0M6IFJhenZhbiBDb2pvY2FydSA8cmNv am9jYXJ1QGJpdGRlZmVuZGVyLmNvbT4KQ0M6IFRhbWFzIEsgTGVuZ3llbCA8dGFtYXNAdGtsZW5n eWVsLmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4K Q0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNDOiBKdW4gTmFrYWppbWEg PGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNDOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVs LmNvbT4KQ0M6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+CkND OiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQuY29tPgpD QzogQnJpYW4gV29vZHMgPGJyaWFuLndvb2RzQGFtZC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2Nw dS92cG11LmMgICAgICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYvY3B1aWQuYyAg ICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIHhlbi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAg ICAgICAgICAgICB8ICAgNCArLQogeGVuL2FyY2gveDg2L2RvbWN0bC5jICAgICAgICAgICAgICAg ICAgIHwgICA4ICstCiB4ZW4vYXJjaC94ODYvaHZtL2FzaWQuYyAgICAgICAgICAgICAgICAgfCAg IDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vZG0uYyAgICAgICAgICAgICAgICAgICB8ICAxMiArLS0K IHhlbi9hcmNoL3g4Ni9odm0vZG9tYWluLmMgICAgICAgICAgICAgICB8ICAzOCArKysrLS0tLQog eGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgICAgICAgICAgICAgIHwgIDI4ICsrKy0tLQogeGVu L2FyY2gveDg2L2h2bS9ocGV0LmMgICAgICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94 ODYvaHZtL2h2bS5jICAgICAgICAgICAgICAgICAgfCAxNjIgKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW8uYyAgICAgICAgICAgICAgICAgICB8ICAx MiArLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyAgICAgICAgICAgICAgICB8ICAgNCArLQog eGVuL2FyY2gveDg2L2h2bS9pcnEuYyAgICAgICAgICAgICAgICAgIHwgICA2ICstCiB4ZW4vYXJj aC94ODYvaHZtL210cnIuYyAgICAgICAgICAgICAgICAgfCAgMjIgKystLS0KIHhlbi9hcmNoL3g4 Ni9odm0vcG10aW1lci5jICAgICAgICAgICAgICB8ICAgMiArLQogeGVuL2FyY2gveDg2L2h2bS9z dm0vYXNpZC5jICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9uZXN0 ZWRzdm0uYyAgICAgICAgfCAgNDQgKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0u YyAgICAgICAgICAgICAgfCAgNjcgKysrKysrKy0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9zdm0v dm1jYi5jICAgICAgICAgICAgIHwgICA2ICstCiB4ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMg ICAgICAgICAgICAgfCAgNjQgKysrKysrLS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS92bXNpLmMg ICAgICAgICAgICAgICAgIHwgIDMwICsrKy0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgvaW50ci5j ICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jICAg ICAgICAgfCAgMTAgKy0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyAgICAgICAgICAgICB8 ICAgOCArLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgICAgICAgICAgICAgIHwgMTMwICsr KysrKysrKysrKy0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyAgICAg ICAgICAgICB8ICAzMiArKystLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZwdC5jICAgICAgICAgICAg ICAgICAgfCAgNzQgKysrKysrKy0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dh bGsuYyAgICAgICAgfCAgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgICAgICAgICAg ICAgICB8ICAgNCArLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jICAgICAgICAgIHwg IDEyICstLQogeGVuL2FyY2gveDg2L3RpbWUuYyAgICAgICAgICAgICAgICAgICAgIHwgICA2ICst CiB4ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMgICAgICAgfCAgIDggKy0KIHhlbi9h cmNoL3g4Ni94ODZfNjQvdHJhcHMuYyAgICAgICAgICAgICB8ICAgOCArLQogeGVuL2luY2x1ZGUv YXNtLXg4Ni9kb21haW4uaCAgICAgICAgICAgIHwgICA2ICstCiB4ZW4vaW5jbHVkZS9hc20teDg2 L2d1ZXN0X3B0LmggICAgICAgICAgfCAgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2 bS5oICAgICAgICAgICB8ICAyMCArKy0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9uZXN0ZWRo dm0uaCAgICAgfCAgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9uZXN0ZWRzdm0u aCB8ICAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdmNwdS5oICAgICAgICAgIHwgICA0 ICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bGFwaWMuaCAgICAgICAgfCAgIDYgKy0KIHhl bi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bXguaCAgICAgICB8ICAgMiArLQogNDEgZmlsZXMg Y2hhbmdlZCwgNDI4IGluc2VydGlvbnMoKyksIDQzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvY3B1L3ZwbXUuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jCmluZGV4 IGZhNjc2MmYuLjhhNGY3NTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jCisr KyBiL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jCkBAIC0zMDQsNyArMzA0LDcgQEAgdm9pZCB2cG11 X2RvX2ludGVycnVwdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgICAgICAg ICBodm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIoc2FtcGxlZCwgeDg2X3NlZ19zcywgJnNlZyk7CiAg ICAgICAgICAgICAgICAgci0+c3MgPSBzZWcuc2VsOwogICAgICAgICAgICAgICAgIHItPmNwbCA9 IHNlZy5kcGw7Ci0gICAgICAgICAgICAgICAgaWYgKCAhKHNhbXBsZWQtPmFyY2guaHZtX3ZjcHUu Z3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1BFKSApCisgICAgICAgICAgICAgICAgaWYgKCAhKHNhbXBs ZWQtPmFyY2guaHZtLmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9QRSkgKQogICAgICAgICAgICAgICAg ICAgICAqZmxhZ3MgfD0gUE1VX1NBTVBMRV9SRUFMOwogICAgICAgICAgICAgfQogICAgICAgICB9 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1aWQuYyBiL3hlbi9hcmNoL3g4Ni9jcHVpZC5j CmluZGV4IDI0MzY2ZWEuLjU5ZDMyOTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHVpZC5j CisrKyBiL3hlbi9hcmNoL3g4Ni9jcHVpZC5jCkBAIC04MjksNyArODI5LDcgQEAgdm9pZCBndWVz dF9jcHVpZChjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgbGVhZiwKICAgICAgICAgaWYg KCBpc19odm1fZG9tYWluKGQpICkKICAgICAgICAgewogICAgICAgICAgICAgLyogT1NYU0FWRSBj bGVhciBpbiBwb2xpY3kuICBGYXN0LWZvcndhcmQgQ1I0IGJhY2sgaW4uICovCi0gICAgICAgICAg ICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0gJiBYODZfQ1I0X09TWFNBVkUgKQor ICAgICAgICAgICAgaWYgKCB2LT5hcmNoLmh2bS5ndWVzdF9jcls0XSAmIFg4Nl9DUjRfT1NYU0FW RSApCiAgICAgICAgICAgICAgICAgcmVzLT5jIHw9IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9P U1hTQVZFKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIC8qIFBWIGRvbWFpbiAqLwpAQCAtOTYw LDcgKzk2MCw3IEBAIHZvaWQgZ3Vlc3RfY3B1aWQoY29uc3Qgc3RydWN0IHZjcHUgKnYsIHVpbnQz Ml90IGxlYWYsCiAgICAgICAgICAgICAvKiBPU1BLRSBjbGVhciBpbiBwb2xpY3kuICBGYXN0LWZv cndhcmQgQ1I0IGJhY2sgaW4uICovCiAgICAgICAgICAgICBpZiAoIChpc19wdl9kb21haW4oZCkK ICAgICAgICAgICAgICAgICAgID8gdi0+YXJjaC5wdi5jdHJscmVnWzRdCi0gICAgICAgICAgICAg ICAgICA6IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0pICYgWDg2X0NSNF9QS0UgKQorICAg ICAgICAgICAgICAgICAgOiB2LT5hcmNoLmh2bS5ndWVzdF9jcls0XSkgJiBYODZfQ1I0X1BLRSAp CiAgICAgICAgICAgICAgICAgcmVzLT5jIHw9IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9PU1BL RSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IDNkY2Q3ZjkuLmNjZGZl YzIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYv ZG9tYWluLmMKQEAgLTE2MTksNyArMTYxOSw3IEBAIHN0YXRpYyB2b2lkIF9fY29udGV4dF9zd2l0 Y2godm9pZCkKICAgICAgICAgICAgICAgICBCVUcoKTsKIAogICAgICAgICAgICAgaWYgKCBjcHVf aGFzX3hzYXZlcyAmJiBpc19odm1fdmNwdShuKSApCi0gICAgICAgICAgICAgICAgc2V0X21zcl94 c3Mobi0+YXJjaC5odm1fdmNwdS5tc3JfeHNzKTsKKyAgICAgICAgICAgICAgICBzZXRfbXNyX3hz cyhuLT5hcmNoLmh2bS5tc3JfeHNzKTsKICAgICAgICAgfQogICAgICAgICB2Y3B1X3Jlc3RvcmVf ZnB1X25vbmxhenkobiwgZmFsc2UpOwogICAgICAgICBuZC0+YXJjaC5jdHh0X3N3aXRjaC0+dG8o bik7CkBAIC0xNjkyLDcgKzE2OTIsNyBAQCB2b2lkIGNvbnRleHRfc3dpdGNoKHN0cnVjdCB2Y3B1 ICpwcmV2LCBzdHJ1Y3QgdmNwdSAqbmV4dCkKICAgICAgICAgbnAybV9zY2hlZHVsZShOUDJNX1ND SEVETEVfT1VUKTsKICAgICB9CiAKLSAgICBpZiAoIGlzX2h2bV9kb21haW4ocHJldmQpICYmICFs aXN0X2VtcHR5KCZwcmV2LT5hcmNoLmh2bV92Y3B1LnRtX2xpc3QpICkKKyAgICBpZiAoIGlzX2h2 bV9kb21haW4ocHJldmQpICYmICFsaXN0X2VtcHR5KCZwcmV2LT5hcmNoLmh2bS50bV9saXN0KSAp CiAgICAgICAgIHB0X3NhdmVfdGltZXIocHJldik7CiAKICAgICBsb2NhbF9pcnFfZGlzYWJsZSgp OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2RvbWN0 bC5jCmluZGV4IGYzMDY2MTQuLjc5Nzg0MWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21j dGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTE1ODUsMTAgKzE1ODUsMTAgQEAg dm9pZCBhcmNoX2dldF9pbmZvX2d1ZXN0KHN0cnVjdCB2Y3B1ICp2LCB2Y3B1X2d1ZXN0X2NvbnRl eHRfdSBjKQogICAgIHsKICAgICAgICAgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgc3JlZzsKIAot ICAgICAgICBjLm5hdC0+Y3RybHJlZ1swXSA9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMF07 Ci0gICAgICAgIGMubmF0LT5jdHJscmVnWzJdID0gdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclsy XTsKLSAgICAgICAgYy5uYXQtPmN0cmxyZWdbM10gPSB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2Ny WzNdOwotICAgICAgICBjLm5hdC0+Y3RybHJlZ1s0XSA9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3Rf Y3JbNF07CisgICAgICAgIGMubmF0LT5jdHJscmVnWzBdID0gdi0+YXJjaC5odm0uZ3Vlc3RfY3Jb MF07CisgICAgICAgIGMubmF0LT5jdHJscmVnWzJdID0gdi0+YXJjaC5odm0uZ3Vlc3RfY3JbMl07 CisgICAgICAgIGMubmF0LT5jdHJscmVnWzNdID0gdi0+YXJjaC5odm0uZ3Vlc3RfY3JbM107Cisg ICAgICAgIGMubmF0LT5jdHJscmVnWzRdID0gdi0+YXJjaC5odm0uZ3Vlc3RfY3JbNF07CiAgICAg ICAgIGh2bV9nZXRfc2VnbWVudF9yZWdpc3Rlcih2LCB4ODZfc2VnX2NzLCAmc3JlZyk7CiAgICAg ICAgIGMubmF0LT51c2VyX3JlZ3MuY3MgPSBzcmVnLnNlbDsKICAgICAgICAgaHZtX2dldF9zZWdt ZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfc3MsICZzcmVnKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vYXNpZC5jIGIveGVuL2FyY2gveDg2L2h2bS9hc2lkLmMKaW5kZXggYmVjYThlYy4u OWQzYzY3MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9hc2lkLmMKKysrIGIveGVuL2Fy Y2gveDg2L2h2bS9hc2lkLmMKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBodm1fYXNpZF9mbHVzaF92 Y3B1X2FzaWQoc3RydWN0IGh2bV92Y3B1X2FzaWQgKmFzaWQpCiAKIHZvaWQgaHZtX2FzaWRfZmx1 c2hfdmNwdShzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICBodm1fYXNpZF9mbHVzaF92Y3B1X2FzaWQo JnYtPmFyY2guaHZtX3ZjcHUubjFhc2lkKTsKKyAgICBodm1fYXNpZF9mbHVzaF92Y3B1X2FzaWQo JnYtPmFyY2guaHZtLm4xYXNpZCk7CiAgICAgaHZtX2FzaWRfZmx1c2hfdmNwdV9hc2lkKCZ2Y3B1 X25lc3RlZGh2bSh2KS5udl9uMmFzaWQpOwogfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aHZtL2RtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggNjc1NWYzZi4uODdkOTdkMCAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0v ZG0uYwpAQCAtMzE3LDE3ICszMTcsMTcgQEAgc3RhdGljIGludCBpbmplY3RfZXZlbnQoc3RydWN0 IGRvbWFpbiAqZCwKICAgICBpZiAoIGRhdGEtPnZjcHVpZCA+PSBkLT5tYXhfdmNwdXMgfHwgISh2 ID0gZC0+dmNwdVtkYXRhLT52Y3B1aWRdKSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0g ICAgaWYgKCBjbXB4Y2hnKCZ2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9ldmVudC52ZWN0b3IsCisg ICAgaWYgKCBjbXB4Y2hnKCZ2LT5hcmNoLmh2bS5pbmplY3RfZXZlbnQudmVjdG9yLAogICAgICAg ICAgICAgICAgICBIVk1fRVZFTlRfVkVDVE9SX1VOU0VULCBIVk1fRVZFTlRfVkVDVE9SX1VQREFU SU5HKSAhPQogICAgICAgICAgSFZNX0VWRU5UX1ZFQ1RPUl9VTlNFVCApCiAgICAgICAgIHJldHVy biAtRUJVU1k7CiAKLSAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9ldmVudC50eXBlID0gZGF0 YS0+dHlwZTsKLSAgICB2LT5hcmNoLmh2bV92Y3B1LmluamVjdF9ldmVudC5pbnNuX2xlbiA9IGRh dGEtPmluc25fbGVuOwotICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50LmVycm9yX2Nv ZGUgPSBkYXRhLT5lcnJvcl9jb2RlOwotICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50 LmNyMiA9IGRhdGEtPmNyMjsKKyAgICB2LT5hcmNoLmh2bS5pbmplY3RfZXZlbnQudHlwZSA9IGRh dGEtPnR5cGU7CisgICAgdi0+YXJjaC5odm0uaW5qZWN0X2V2ZW50Lmluc25fbGVuID0gZGF0YS0+ aW5zbl9sZW47CisgICAgdi0+YXJjaC5odm0uaW5qZWN0X2V2ZW50LmVycm9yX2NvZGUgPSBkYXRh LT5lcnJvcl9jb2RlOworICAgIHYtPmFyY2guaHZtLmluamVjdF9ldmVudC5jcjIgPSBkYXRhLT5j cjI7CiAgICAgc21wX3dtYigpOwotICAgIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2ZW50LnZl Y3RvciA9IGRhdGEtPnZlY3RvcjsKKyAgICB2LT5hcmNoLmh2bS5pbmplY3RfZXZlbnQudmVjdG9y ID0gZGF0YS0+dmVjdG9yOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvaHZtL2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2h2bS9kb21haW4uYwppbmRleCA4YTJj ODNlLi41ZDVhNzQ2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2RvbWFpbi5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vZG9tYWluLmMKQEAgLTIwNCwxMCArMjA0LDEwIEBAIGludCBhcmNo X3NldF9pbmZvX2h2bV9ndWVzdChzdHJ1Y3QgdmNwdSAqdiwgY29uc3QgdmNwdV9odm1fY29udGV4 dF90ICpjdHgpCiAgICAgICAgIHVyZWdzLT5yaXAgICAgPSByZWdzLT5laXA7CiAgICAgICAgIHVy ZWdzLT5yZmxhZ3MgPSByZWdzLT5lZmxhZ3M7CiAKLSAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5n dWVzdF9jclswXSA9IHJlZ3MtPmNyMDsKLSAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9j clszXSA9IHJlZ3MtPmNyMzsKLSAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0XSA9 IHJlZ3MtPmNyNDsKLSAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyICA9IHJlZ3Mt PmVmZXI7CisgICAgICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzBdID0gcmVncy0+Y3IwOworICAg ICAgICB2LT5hcmNoLmh2bS5ndWVzdF9jclszXSA9IHJlZ3MtPmNyMzsKKyAgICAgICAgdi0+YXJj aC5odm0uZ3Vlc3RfY3JbNF0gPSByZWdzLT5jcjQ7CisgICAgICAgIHYtPmFyY2guaHZtLmd1ZXN0 X2VmZXIgID0gcmVncy0+ZWZlcjsKICAgICB9CiAgICAgYnJlYWs7CiAKQEAgLTI1NSwxMCArMjU1 LDEwIEBAIGludCBhcmNoX3NldF9pbmZvX2h2bV9ndWVzdChzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qg dmNwdV9odm1fY29udGV4dF90ICpjdHgpCiAgICAgICAgIHVyZWdzLT5yaXAgICAgPSByZWdzLT5y aXA7CiAgICAgICAgIHVyZWdzLT5yZmxhZ3MgPSByZWdzLT5yZmxhZ3M7CiAKLSAgICAgICAgdi0+ YXJjaC5odm1fdmNwdS5ndWVzdF9jclswXSA9IHJlZ3MtPmNyMDsKLSAgICAgICAgdi0+YXJjaC5o dm1fdmNwdS5ndWVzdF9jclszXSA9IHJlZ3MtPmNyMzsKLSAgICAgICAgdi0+YXJjaC5odm1fdmNw dS5ndWVzdF9jcls0XSA9IHJlZ3MtPmNyNDsKLSAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5ndWVz dF9lZmVyICA9IHJlZ3MtPmVmZXI7CisgICAgICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzBdID0g cmVncy0+Y3IwOworICAgICAgICB2LT5hcmNoLmh2bS5ndWVzdF9jclszXSA9IHJlZ3MtPmNyMzsK KyAgICAgICAgdi0+YXJjaC5odm0uZ3Vlc3RfY3JbNF0gPSByZWdzLT5jcjQ7CisgICAgICAgIHYt PmFyY2guaHZtLmd1ZXN0X2VmZXIgID0gcmVncy0+ZWZlcjsKIAogI2RlZmluZSBTRUcobCwgYSkg KHN0cnVjdCBzZWdtZW50X3JlZ2lzdGVyKXsgMCwgeyBhIH0sIGwsIDAgfQogICAgICAgICBjcyA9 IFNFRyh+MHUsIDB4YTliKTsgLyogNjRiaXQgY29kZSBzZWdtZW50LiAqLwpAQCAtMjcwLDIxICsy NzAsMjEgQEAgaW50IGFyY2hfc2V0X2luZm9faHZtX2d1ZXN0KHN0cnVjdCB2Y3B1ICp2LCBjb25z dCB2Y3B1X2h2bV9jb250ZXh0X3QgKmN0eCkKIAogICAgIH0KIAotICAgIGlmICggdi0+YXJjaC5o dm1fdmNwdS5ndWVzdF9lZmVyICYgRUZFUl9MTUUgKQotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1 Lmd1ZXN0X2VmZXIgfD0gRUZFUl9MTUE7CisgICAgaWYgKCB2LT5hcmNoLmh2bS5ndWVzdF9lZmVy ICYgRUZFUl9MTUUgKQorICAgICAgICB2LT5hcmNoLmh2bS5ndWVzdF9lZmVyIHw9IEVGRVJfTE1B OwogCi0gICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzRdICYgfmh2bV9jcjRfZ3Vl c3RfdmFsaWRfYml0cyhkLCBmYWxzZSkgKQorICAgIGlmICggdi0+YXJjaC5odm0uZ3Vlc3RfY3Jb NF0gJiB+aHZtX2NyNF9ndWVzdF92YWxpZF9iaXRzKGQsIGZhbHNlKSApCiAgICAgewogICAgICAg ICBncHJpbnRrKFhFTkxPR19FUlIsICJCYWQgQ1I0IHZhbHVlOiAlIzAxNmx4XG4iLAotICAgICAg ICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0pOworICAgICAgICAgICAgICAg IHYtPmFyY2guaHZtLmd1ZXN0X2NyWzRdKTsKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAg fQogCi0gICAgZXJyc3RyID0gaHZtX2VmZXJfdmFsaWQodiwgdi0+YXJjaC5odm1fdmNwdS5ndWVz dF9lZmVyLCAtMSk7CisgICAgZXJyc3RyID0gaHZtX2VmZXJfdmFsaWQodiwgdi0+YXJjaC5odm0u Z3Vlc3RfZWZlciwgLTEpOwogICAgIGlmICggZXJyc3RyICkKICAgICB7CiAgICAgICAgIGdwcmlu dGsoWEVOTE9HX0VSUiwgIkJhZCBFRkVSIHZhbHVlICglIzAxNmx4KTogJXNcbiIsCi0gICAgICAg ICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIsIGVycnN0cik7CisgICAgICAgICAg ICAgICB2LT5hcmNoLmh2bS5ndWVzdF9lZmVyLCBlcnJzdHIpOwogICAgICAgICByZXR1cm4gLUVJ TlZBTDsKICAgICB9CiAKQEAgLTI5NywxMiArMjk3LDEyIEBAIGludCBhcmNoX3NldF9pbmZvX2h2 bV9ndWVzdChzdHJ1Y3QgdmNwdSAqdiwgY29uc3QgdmNwdV9odm1fY29udGV4dF90ICpjdHgpCiAg ICAgewogICAgICAgICAvKiBTaGFkb3ctbW9kZSBDUjMgY2hhbmdlLiBDaGVjayBQREJSIGFuZCB1 cGRhdGUgcmVmY291bnRzLiAqLwogICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gZ2V0 X3BhZ2VfZnJvbV9nZm4odi0+ZG9tYWluLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclszXSA+PiBQQUdFX1NISUZULAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdi0+YXJjaC5odm0uZ3Vlc3RfY3JbM10gPj4gUEFHRV9T SElGVCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIFAyTV9BTExPQyk7 CiAgICAgICAgIGlmICggIXBhZ2UgKQogICAgICAgICB7CiAgICAgICAgICAgICBncHJpbnRrKFhF TkxPR19FUlIsICJJbnZhbGlkIENSMzogJSNseFxuIiwKLSAgICAgICAgICAgICAgICAgICAgdi0+ YXJjaC5odm1fdmNwdS5ndWVzdF9jclszXSk7CisgICAgICAgICAgICAgICAgICAgIHYtPmFyY2gu aHZtLmd1ZXN0X2NyWzNdKTsKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9 CiAKQEAgLTMxNiw5ICszMTYsOSBAQCBpbnQgYXJjaF9zZXRfaW5mb19odm1fZ3Vlc3Qoc3RydWN0 IHZjcHUgKnYsIGNvbnN0IHZjcHVfaHZtX2NvbnRleHRfdCAqY3R4KQogICAgIGh2bV9zZXRfc2Vn bWVudF9yZWdpc3Rlcih2LCB4ODZfc2VnX3RyLCAmdHIpOwogCiAgICAgLyogU3luYyBBUCdzIFRT QyB3aXRoIEJTUCdzLiAqLwotICAgIHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVfdHNjX29mZnNldCA9 Ci0gICAgICAgIGQtPnZjcHVbMF0tPmFyY2guaHZtX3ZjcHUuY2FjaGVfdHNjX29mZnNldDsKLSAg ICBodm1fc2V0X3RzY19vZmZzZXQodiwgdi0+YXJjaC5odm1fdmNwdS5jYWNoZV90c2Nfb2Zmc2V0 LAorICAgIHYtPmFyY2guaHZtLmNhY2hlX3RzY19vZmZzZXQgPQorICAgICAgICBkLT52Y3B1WzBd LT5hcmNoLmh2bS5jYWNoZV90c2Nfb2Zmc2V0OworICAgIGh2bV9zZXRfdHNjX29mZnNldCh2LCB2 LT5hcmNoLmh2bS5jYWNoZV90c2Nfb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICBkLT5h cmNoLmh2bS5zeW5jX3RzYyk7CiAKICAgICBwYWdpbmdfdXBkYXRlX3BhZ2luZ19tb2Rlcyh2KTsK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L2h2 bS9lbXVsYXRlLmMKaW5kZXggMjBkMWQ1Yi4uZGJmOGI4MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKQEAgLTEy Myw3ICsxMjMsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfZG9faW8oCiB7CiAgICAgc3RydWN0IHZj cHUgKmN1cnIgPSBjdXJyZW50OwogICAgIHN0cnVjdCBkb21haW4gKmN1cnJkID0gY3Vyci0+ZG9t YWluOwotICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtX3ZjcHUu aHZtX2lvOworICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtLmh2 bV9pbzsKICAgICBpb3JlcV90IHAgPSB7CiAgICAgICAgIC50eXBlID0gaXNfbW1pbyA/IElPUkVR X1RZUEVfQ09QWSA6IElPUkVRX1RZUEVfUElPLAogICAgICAgICAuYWRkciA9IGFkZHIsCkBAIC00 MzcsNyArNDM3LDcgQEAgc3RhdGljIGludCBodm1lbXVsX2RvX2lvX2FkZHIoCiAgICAgQVNTRVJU KHJjICE9IFg4NkVNVUxfVU5JTVBMRU1FTlRFRCk7CiAKICAgICBpZiAoIHJjID09IFg4NkVNVUxf T0tBWSApCi0gICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuaHZtX2lvLm1taW9fcmV0cnkgPSAoY291 bnQgPCAqcmVwcyk7CisgICAgICAgIHYtPmFyY2guaHZtLmh2bV9pby5tbWlvX3JldHJ5ID0gKGNv dW50IDwgKnJlcHMpOwogCiAgICAgKnJlcHMgPSBjb3VudDsKIApAQCAtNzA2LDcgKzcwNiw3IEBA IHN0YXRpYyBpbnQgaHZtZW11bF9saW5lYXJfdG9fcGh5cygKICAgICAqcmVwcyA9IG1pbl90KHVu c2lnbmVkIGxvbmcsICpyZXBzLCA0MDk2KTsKIAogICAgIC8qIFdpdGggbm8gcGFnaW5nIGl0J3Mg ZWFzeTogbGluZWFyID09IHBoeXNpY2FsLiAqLwotICAgIGlmICggIShjdXJyLT5hcmNoLmh2bV92 Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9QRykgKQorICAgIGlmICggIShjdXJyLT5hcmNoLmh2 bS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfUEcpICkKICAgICB7CiAgICAgICAgICpwYWRkciA9IGFk ZHI7CiAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7CkBAIC05NzUsNyArOTc1LDcgQEAgc3Rh dGljIGludCBodm1lbXVsX2xpbmVhcl9tbWlvX2FjY2VzcygKICAgICB1bnNpZ25lZCBsb25nIGds YSwgdW5zaWduZWQgaW50IHNpemUsIHVpbnQ4X3QgZGlyLCB2b2lkICpidWZmZXIsCiAgICAgdWlu dDMyX3QgcGZlYywgc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQgKmh2bWVtdWxfY3R4dCwgYm9vbF90 IGtub3duX2dwZm4pCiB7Ci0gICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmY3VycmVudC0+ YXJjaC5odm1fdmNwdS5odm1faW87CisgICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmY3Vy cmVudC0+YXJjaC5odm0uaHZtX2lvOwogICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gZ2xhICYg flBBR0VfTUFTSzsKICAgICBzdHJ1Y3QgaHZtX21taW9fY2FjaGUgKmNhY2hlID0gaHZtZW11bF9m aW5kX21taW9fY2FjaGUodmlvLCBnbGEsIGRpcik7CiAgICAgdW5zaWduZWQgaW50IGNodW5rLCBi dWZmZXJfb2Zmc2V0ID0gMDsKQEAgLTEwNTMsNyArMTA1Myw3IEBAIHN0YXRpYyBpbnQgX19odm1l bXVsX3JlYWQoCiAgICAgcGFnZWZhdWx0X2luZm9fdCBwZmluZm87CiAgICAgdW5zaWduZWQgbG9u ZyBhZGRyLCByZXBzID0gMTsKICAgICB1aW50MzJfdCBwZmVjID0gUEZFQ19wYWdlX3ByZXNlbnQ7 Ci0gICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm1fdmNwdS5odm1f aW87CisgICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm0uaHZtX2lv OwogICAgIGludCByYzsKIAogICAgIGlmICggaXNfeDg2X3N5c3RlbV9zZWdtZW50KHNlZykgKQpA QCAtMTE3NCw3ICsxMTc0LDcgQEAgc3RhdGljIGludCBodm1lbXVsX3dyaXRlKAogICAgIHN0cnVj dCB2Y3B1ICpjdXJyID0gY3VycmVudDsKICAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHJlcHMgPSAx OwogICAgIHVpbnQzMl90IHBmZWMgPSBQRkVDX3BhZ2VfcHJlc2VudCB8IFBGRUNfd3JpdGVfYWNj ZXNzOwotICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtX3ZjcHUu aHZtX2lvOworICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtLmh2 bV9pbzsKICAgICBpbnQgcmM7CiAgICAgdm9pZCAqbWFwcGluZzsKIApAQCAtMTIxOCw3ICsxMjE4 LDcgQEAgc3RhdGljIGludCBodm1lbXVsX3JtdygKICAgICAgICAgY29udGFpbmVyX29mKGN0eHQs IHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0LCBjdHh0KTsKICAgICB1bnNpZ25lZCBsb25nIGFkZHIs IHJlcHMgPSAxOwogICAgIHVpbnQzMl90IHBmZWMgPSBQRkVDX3BhZ2VfcHJlc2VudCB8IFBGRUNf d3JpdGVfYWNjZXNzOwotICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnJlbnQtPmFy Y2guaHZtX3ZjcHUuaHZtX2lvOworICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnJl bnQtPmFyY2guaHZtLmh2bV9pbzsKICAgICBpbnQgcmM7CiAgICAgdm9pZCAqbWFwcGluZzsKIApA QCAtMTM3NSw3ICsxMzc1LDcgQEAgc3RhdGljIGludCBodm1lbXVsX2NtcHhjaGcoCiAgICAgc3Ry dWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwogICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgcmVwcyA9 IDE7CiAgICAgdWludDMyX3QgcGZlYyA9IFBGRUNfcGFnZV9wcmVzZW50IHwgUEZFQ193cml0ZV9h Y2Nlc3M7Ci0gICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm1fdmNw dS5odm1faW87CisgICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm0u aHZtX2lvOwogICAgIGludCByYzsKICAgICB2b2lkICptYXBwaW5nID0gTlVMTDsKIApAQCAtMTU5 Myw3ICsxNTkzLDcgQEAgc3RhdGljIGludCBodm1lbXVsX3JlcF9tb3ZzKAogewogICAgIHN0cnVj dCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0eHQgPQogICAgICAgICBjb250YWluZXJfb2Yo Y3R4dCwgc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQsIGN0eHQpOwotICAgIHN0cnVjdCBodm1fdmNw dV9pbyAqdmlvID0gJmN1cnJlbnQtPmFyY2guaHZtX3ZjcHUuaHZtX2lvOworICAgIHN0cnVjdCBo dm1fdmNwdV9pbyAqdmlvID0gJmN1cnJlbnQtPmFyY2guaHZtLmh2bV9pbzsKICAgICB1bnNpZ25l ZCBsb25nIHNhZGRyLCBkYWRkciwgYnl0ZXM7CiAgICAgcGFkZHJfdCBzZ3BhLCBkZ3BhOwogICAg IHVpbnQzMl90IHBmZWMgPSBQRkVDX3BhZ2VfcHJlc2VudDsKQEAgLTE3NDgsNyArMTc0OCw3IEBA IHN0YXRpYyBpbnQgaHZtZW11bF9yZXBfc3RvcygKIHsKICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVf Y3R4dCAqaHZtZW11bF9jdHh0ID0KICAgICAgICAgY29udGFpbmVyX29mKGN0eHQsIHN0cnVjdCBo dm1fZW11bGF0ZV9jdHh0LCBjdHh0KTsKLSAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKnZpbyA9ICZj dXJyZW50LT5hcmNoLmh2bV92Y3B1Lmh2bV9pbzsKKyAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKnZp byA9ICZjdXJyZW50LT5hcmNoLmh2bS5odm1faW87CiAgICAgdW5zaWduZWQgbG9uZyBhZGRyLCBi eXRlczsKICAgICBwYWRkcl90IGdwYTsKICAgICBwMm1fdHlwZV90IHAybXQ7CkBAIC0xOTMxLDcg KzE5MzEsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVhZF9jcigKICAgICBjYXNlIDI6CiAgICAg Y2FzZSAzOgogICAgIGNhc2UgNDoKLSAgICAgICAgKnZhbCA9IGN1cnJlbnQtPmFyY2guaHZtX3Zj cHUuZ3Vlc3RfY3JbcmVnXTsKKyAgICAgICAgKnZhbCA9IGN1cnJlbnQtPmFyY2guaHZtLmd1ZXN0 X2NyW3JlZ107CiAgICAgICAgIEhWTVRSQUNFX0xPTkdfMkQoQ1JfUkVBRCwgcmVnLCBUUkNfUEFS X0xPTkcoKnZhbCkpOwogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogICAgIGRlZmF1bHQ6 CkBAIC0xOTU2LDcgKzE5NTYsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfd3JpdGVfY3IoCiAgICAg ICAgIGJyZWFrOwogCiAgICAgY2FzZSAyOgotICAgICAgICBjdXJyZW50LT5hcmNoLmh2bV92Y3B1 Lmd1ZXN0X2NyWzJdID0gdmFsOworICAgICAgICBjdXJyZW50LT5hcmNoLmh2bS5ndWVzdF9jclsy XSA9IHZhbDsKICAgICAgICAgcmMgPSBYODZFTVVMX09LQVk7CiAgICAgICAgIGJyZWFrOwogCkBA IC0yMjgwLDcgKzIyODAsNyBAQCBzdGF0aWMgaW50IF9odm1fZW11bGF0ZV9vbmUoc3RydWN0IGh2 bV9lbXVsYXRlX2N0eHQgKmh2bWVtdWxfY3R4dCwKICAgICBjb25zdCBzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncyA9IGh2bWVtdWxfY3R4dC0+Y3R4dC5yZWdzOwogICAgIHN0cnVjdCB2Y3B1ICpj dXJyID0gY3VycmVudDsKICAgICB1aW50MzJfdCBuZXdfaW50cl9zaGFkb3c7Ci0gICAgc3RydWN0 IGh2bV92Y3B1X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm1fdmNwdS5odm1faW87CisgICAgc3Ry dWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm0uaHZtX2lvOwogICAgIGludCBy YzsKIAogICAgIGh2bV9lbXVsYXRlX2luaXRfcGVyX2luc24oaHZtZW11bF9jdHh0LCB2aW8tPm1t aW9faW5zbiwKQEAgLTI0MTAsNyArMjQxMCw3IEBAIHZvaWQgaHZtX2VtdWxhdGVfb25lX3ZtX2V2 ZW50KGVudW0gZW11bF9raW5kIGtpbmQsIHVuc2lnbmVkIGludCB0cmFwbnIsCiAgICAgICAgIGJy ZWFrOwogICAgIGNhc2UgRU1VTF9LSU5EX1NFVF9DT05URVhUX0lOU046IHsKICAgICAgICAgc3Ry dWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwotICAgICAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKnZp byA9ICZjdXJyLT5hcmNoLmh2bV92Y3B1Lmh2bV9pbzsKKyAgICAgICAgc3RydWN0IGh2bV92Y3B1 X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm0uaHZtX2lvOwogCiAgICAgICAgIEJVSUxEX0JVR19P TihzaXplb2YodmlvLT5tbWlvX2luc24pICE9CiAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yo Y3Vyci0+YXJjaC52bV9ldmVudC0+ZW11bC5pbnNuLmRhdGEpKTsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9odm0vaHBldC5jIGIveGVuL2FyY2gveDg2L2h2bS9ocGV0LmMKaW5kZXggODA5MDY5 OS4uY2JkMWVmYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9ocGV0LmMKKysrIGIveGVu L2FyY2gveDg2L2h2bS9ocGV0LmMKQEAgLTU4MSw3ICs1ODEsNyBAQCBzdGF0aWMgaW50IGhwZXRf c2F2ZShzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICAgICAg cmV0dXJuIDA7CiAKICAgICB3cml0ZV9sb2NrKCZocC0+bG9jayk7Ci0gICAgZ3Vlc3RfdGltZSA9 ICh2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X3RpbWUgPzogaHZtX2dldF9ndWVzdF90aW1lKHYpKSAv CisgICAgZ3Vlc3RfdGltZSA9ICh2LT5hcmNoLmh2bS5ndWVzdF90aW1lID86IGh2bV9nZXRfZ3Vl c3RfdGltZSh2KSkgLwogICAgICAgICAgICAgICAgICBTVElNRV9QRVJfSFBFVF9USUNLOwogCiAg ICAgLyogV3JpdGUgdGhlIHByb3BlciB2YWx1ZSBpbnRvIHRoZSBtYWluIGNvdW50ZXIgKi8KZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5j CmluZGV4IGY4OTUzMzkuLmFjMDY3YTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZt LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQg aHZtX3NldF9yZHRzY19leGl0aW5nKHN0cnVjdCBkb21haW4gKmQsIGJvb2xfdCBlbmFibGUpCiB2 b2lkIGh2bV9nZXRfZ3Vlc3RfcGF0KHN0cnVjdCB2Y3B1ICp2LCB1NjQgKmd1ZXN0X3BhdCkKIHsK ICAgICBpZiAoICFodm1fZnVuY3MuZ2V0X2d1ZXN0X3BhdCh2LCBndWVzdF9wYXQpICkKLSAgICAg ICAgKmd1ZXN0X3BhdCA9IHYtPmFyY2guaHZtX3ZjcHUucGF0X2NyOworICAgICAgICAqZ3Vlc3Rf cGF0ID0gdi0+YXJjaC5odm0ucGF0X2NyOwogfQogCiBpbnQgaHZtX3NldF9ndWVzdF9wYXQoc3Ry dWN0IHZjcHUgKnYsIHU2NCBndWVzdF9wYXQpCkBAIC0zMDMsNyArMzAzLDcgQEAgaW50IGh2bV9z ZXRfZ3Vlc3RfcGF0KHN0cnVjdCB2Y3B1ICp2LCB1NjQgZ3Vlc3RfcGF0KQogICAgICAgICB9CiAK ICAgICBpZiAoICFodm1fZnVuY3Muc2V0X2d1ZXN0X3BhdCh2LCBndWVzdF9wYXQpICkKLSAgICAg ICAgdi0+YXJjaC5odm1fdmNwdS5wYXRfY3IgPSBndWVzdF9wYXQ7CisgICAgICAgIHYtPmFyY2gu aHZtLnBhdF9jciA9IGd1ZXN0X3BhdDsKIAogICAgIHJldHVybiAxOwogfQpAQCAtNDE1LDI4ICs0 MTUsMjYgQEAgc3RhdGljIHZvaWQgaHZtX3NldF9ndWVzdF90c2NfZml4ZWQoc3RydWN0IHZjcHUg KnYsIHU2NCBndWVzdF90c2MsIHU2NCBhdF90c2MpCiAgICAgfQogCiAgICAgZGVsdGFfdHNjID0g Z3Vlc3RfdHNjIC0gdHNjOwotICAgIHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVfdHNjX29mZnNldCA9 IGRlbHRhX3RzYzsKKyAgICB2LT5hcmNoLmh2bS5jYWNoZV90c2Nfb2Zmc2V0ID0gZGVsdGFfdHNj OwogCi0gICAgaHZtX3NldF90c2Nfb2Zmc2V0KHYsIHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVfdHNj X29mZnNldCwgYXRfdHNjKTsKKyAgICBodm1fc2V0X3RzY19vZmZzZXQodiwgdi0+YXJjaC5odm0u Y2FjaGVfdHNjX29mZnNldCwgYXRfdHNjKTsKIH0KIAogI2RlZmluZSBodm1fc2V0X2d1ZXN0X3Rz Yyh2LCB0KSBodm1fc2V0X2d1ZXN0X3RzY19maXhlZCh2LCB0LCAwKQogCiBzdGF0aWMgdm9pZCBo dm1fc2V0X2d1ZXN0X3RzY19tc3Ioc3RydWN0IHZjcHUgKnYsIHU2NCBndWVzdF90c2MpCiB7Ci0g ICAgdWludDY0X3QgdHNjX29mZnNldCA9IHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVfdHNjX29mZnNl dDsKKyAgICB1aW50NjRfdCB0c2Nfb2Zmc2V0ID0gdi0+YXJjaC5odm0uY2FjaGVfdHNjX29mZnNl dDsKIAogICAgIGh2bV9zZXRfZ3Vlc3RfdHNjKHYsIGd1ZXN0X3RzYyk7Ci0gICAgdi0+YXJjaC5o dm1fdmNwdS5tc3JfdHNjX2FkanVzdCArPSB2LT5hcmNoLmh2bV92Y3B1LmNhY2hlX3RzY19vZmZz ZXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLSB0c2Nfb2Zmc2V0OworICAgIHYtPmFyY2gu aHZtLm1zcl90c2NfYWRqdXN0ICs9IHYtPmFyY2guaHZtLmNhY2hlX3RzY19vZmZzZXQgLSB0c2Nf b2Zmc2V0OwogfQogCiBzdGF0aWMgdm9pZCBodm1fc2V0X2d1ZXN0X3RzY19hZGp1c3Qoc3RydWN0 IHZjcHUgKnYsIHU2NCB0c2NfYWRqdXN0KQogewotICAgIHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVf dHNjX29mZnNldCArPSB0c2NfYWRqdXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLSB2 LT5hcmNoLmh2bV92Y3B1Lm1zcl90c2NfYWRqdXN0OwotICAgIGh2bV9zZXRfdHNjX29mZnNldCh2 LCB2LT5hcmNoLmh2bV92Y3B1LmNhY2hlX3RzY19vZmZzZXQsIDApOwotICAgIHYtPmFyY2guaHZt X3ZjcHUubXNyX3RzY19hZGp1c3QgPSB0c2NfYWRqdXN0OworICAgIHYtPmFyY2guaHZtLmNhY2hl X3RzY19vZmZzZXQgKz0gdHNjX2FkanVzdCAtIHYtPmFyY2guaHZtLm1zcl90c2NfYWRqdXN0Owor ICAgIGh2bV9zZXRfdHNjX29mZnNldCh2LCB2LT5hcmNoLmh2bS5jYWNoZV90c2Nfb2Zmc2V0LCAw KTsKKyAgICB2LT5hcmNoLmh2bS5tc3JfdHNjX2FkanVzdCA9IHRzY19hZGp1c3Q7CiB9CiAKIHU2 NCBodm1fZ2V0X2d1ZXN0X3RzY19maXhlZChzdHJ1Y3QgdmNwdSAqdiwgdWludDY0X3QgYXRfdHNj KQpAQCAtNDU1LDcgKzQ1Myw3IEBAIHU2NCBodm1fZ2V0X2d1ZXN0X3RzY19maXhlZChzdHJ1Y3Qg dmNwdSAqdiwgdWludDY0X3QgYXRfdHNjKQogICAgICAgICAgICAgdHNjID0gaHZtX3NjYWxlX3Rz Yyh2LT5kb21haW4sIHRzYyk7CiAgICAgfQogCi0gICAgcmV0dXJuIHRzYyArIHYtPmFyY2guaHZt X3ZjcHUuY2FjaGVfdHNjX29mZnNldDsKKyAgICByZXR1cm4gdHNjICsgdi0+YXJjaC5odm0uY2Fj aGVfdHNjX29mZnNldDsKIH0KIAogdm9pZCBodm1fbWlncmF0ZV90aW1lcnMoc3RydWN0IHZjcHUg KnYpCkBAIC01MDEsNyArNDk5LDcgQEAgdm9pZCBodm1fbWlncmF0ZV9waXJxcyhzdHJ1Y3QgdmNw dSAqdikKIAogc3RhdGljIGJvb2wgaHZtX2dldF9wZW5kaW5nX2V2ZW50KHN0cnVjdCB2Y3B1ICp2 LCBzdHJ1Y3QgeDg2X2V2ZW50ICppbmZvKQogewotICAgIGluZm8tPmNyMiA9IHYtPmFyY2guaHZt X3ZjcHUuZ3Vlc3RfY3JbMl07CisgICAgaW5mby0+Y3IyID0gdi0+YXJjaC5odm0uZ3Vlc3RfY3Jb Ml07CiAgICAgcmV0dXJuIGh2bV9mdW5jcy5nZXRfcGVuZGluZ19ldmVudCh2LCBpbmZvKTsKIH0K IApAQCAtNTE4LDE0ICs1MTYsMTQgQEAgdm9pZCBodm1fZG9fcmVzdW1lKHN0cnVjdCB2Y3B1ICp2 KQogICAgICAgICBodm1fdm1fZXZlbnRfZG9fcmVzdW1lKHYpOwogCiAgICAgLyogSW5qZWN0IHBl bmRpbmcgaHcvc3cgZXZlbnQgKi8KLSAgICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUuaW5qZWN0X2V2 ZW50LnZlY3RvciA+PSAwICkKKyAgICBpZiAoIHYtPmFyY2guaHZtLmluamVjdF9ldmVudC52ZWN0 b3IgPj0gMCApCiAgICAgewogICAgICAgICBzbXBfcm1iKCk7CiAKICAgICAgICAgaWYgKCAhaHZt X2V2ZW50X3BlbmRpbmcodikgKQotICAgICAgICAgICAgaHZtX2luamVjdF9ldmVudCgmdi0+YXJj aC5odm1fdmNwdS5pbmplY3RfZXZlbnQpOworICAgICAgICAgICAgaHZtX2luamVjdF9ldmVudCgm di0+YXJjaC5odm0uaW5qZWN0X2V2ZW50KTsKIAotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmlu amVjdF9ldmVudC52ZWN0b3IgPSBIVk1fRVZFTlRfVkVDVE9SX1VOU0VUOworICAgICAgICB2LT5h cmNoLmh2bS5pbmplY3RfZXZlbnQudmVjdG9yID0gSFZNX0VWRU5UX1ZFQ1RPUl9VTlNFVDsKICAg ICB9CiAKICAgICBpZiAoIHVubGlrZWx5KHYtPmFyY2gudm1fZXZlbnQpICYmIHYtPmFyY2gubW9u aXRvci5uZXh0X2ludGVycnVwdF9lbmFibGVkICkKQEAgLTc0MSw3ICs3MzksNyBAQCBzdGF0aWMg aW50IGh2bV9zYXZlX3RzY19hZGp1c3Qoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250 ZXh0X3QgKmgpCiAKICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCiAgICAgewotICAgICAgICBj dHh0LnRzY19hZGp1c3QgPSB2LT5hcmNoLmh2bV92Y3B1Lm1zcl90c2NfYWRqdXN0OworICAgICAg ICBjdHh0LnRzY19hZGp1c3QgPSB2LT5hcmNoLmh2bS5tc3JfdHNjX2FkanVzdDsKICAgICAgICAg ZXJyID0gaHZtX3NhdmVfZW50cnkoVFNDX0FESlVTVCwgdi0+dmNwdV9pZCwgaCwgJmN0eHQpOwog ICAgICAgICBpZiAoIGVyciApCiAgICAgICAgICAgICBicmVhazsKQEAgLTc2Niw3ICs3NjQsNyBA QCBzdGF0aWMgaW50IGh2bV9sb2FkX3RzY19hZGp1c3Qoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2Rv bWFpbl9jb250ZXh0X3QgKmgpCiAgICAgaWYgKCBodm1fbG9hZF9lbnRyeShUU0NfQURKVVNULCBo LCAmY3R4dCkgIT0gMCApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0gICAgdi0+YXJjaC5o dm1fdmNwdS5tc3JfdHNjX2FkanVzdCA9IGN0eHQudHNjX2FkanVzdDsKKyAgICB2LT5hcmNoLmh2 bS5tc3JfdHNjX2FkanVzdCA9IGN0eHQudHNjX2FkanVzdDsKICAgICByZXR1cm4gMDsKIH0KIApA QCAtMTA0NCw3ICsxMDQyLDcgQEAgc3RhdGljIGludCBodm1fbG9hZF9jcHVfY3R4dChzdHJ1Y3Qg ZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICBpZiAoIGh2bV9mdW5jcy50 c2Nfc2NhbGluZy5zZXR1cCApCiAgICAgICAgIGh2bV9mdW5jcy50c2Nfc2NhbGluZy5zZXR1cCh2 KTsKIAotICAgIHYtPmFyY2guaHZtX3ZjcHUubXNyX3RzY19hdXggPSBjdHh0Lm1zcl90c2NfYXV4 OworICAgIHYtPmFyY2guaHZtLm1zcl90c2NfYXV4ID0gY3R4dC5tc3JfdHNjX2F1eDsKIAogICAg IGh2bV9zZXRfZ3Vlc3RfdHNjX2ZpeGVkKHYsIGN0eHQudHNjLCBkLT5hcmNoLmh2bS5zeW5jX3Rz Yyk7CiAKQEAgLTE1MDEsOCArMTQ5OSw4IEBAIGludCBodm1fdmNwdV9pbml0aWFsaXNlKHN0cnVj dCB2Y3B1ICp2KQogCiAgICAgaHZtX2FzaWRfZmx1c2hfdmNwdSh2KTsKIAotICAgIHNwaW5fbG9j a19pbml0KCZ2LT5hcmNoLmh2bV92Y3B1LnRtX2xvY2spOwotICAgIElOSVRfTElTVF9IRUFEKCZ2 LT5hcmNoLmh2bV92Y3B1LnRtX2xpc3QpOworICAgIHNwaW5fbG9ja19pbml0KCZ2LT5hcmNoLmh2 bS50bV9sb2NrKTsKKyAgICBJTklUX0xJU1RfSEVBRCgmdi0+YXJjaC5odm0udG1fbGlzdCk7CiAK ICAgICByYyA9IGh2bV92Y3B1X2NhY2hlYXR0cl9pbml0KHYpOyAvKiB0ZWFyZG93bjogdmNwdV9j YWNoZWF0dHJfZGVzdHJveSAqLwogICAgIGlmICggcmMgIT0gMCApCkBAIC0xNTE3LDExICsxNTE1 LDExIEBAIGludCBodm1fdmNwdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICBn b3RvIGZhaWwzOwogCiAgICAgc29mdGlycV90YXNrbGV0X2luaXQoCi0gICAgICAgICZ2LT5hcmNo Lmh2bV92Y3B1LmFzc2VydF9ldnRjaG5faXJxX3Rhc2tsZXQsCisgICAgICAgICZ2LT5hcmNoLmh2 bS5hc3NlcnRfZXZ0Y2huX2lycV90YXNrbGV0LAogICAgICAgICAodm9pZCgqKSh1bnNpZ25lZCBs b25nKSlodm1fYXNzZXJ0X2V2dGNobl9pcnEsCiAgICAgICAgICh1bnNpZ25lZCBsb25nKXYpOwog Ci0gICAgdi0+YXJjaC5odm1fdmNwdS5pbmplY3RfZXZlbnQudmVjdG9yID0gSFZNX0VWRU5UX1ZF Q1RPUl9VTlNFVDsKKyAgICB2LT5hcmNoLmh2bS5pbmplY3RfZXZlbnQudmVjdG9yID0gSFZNX0VW RU5UX1ZFQ1RPUl9VTlNFVDsKIAogICAgIHJjID0gc2V0dXBfY29tcGF0X2FyZ194bGF0KHYpOyAv KiB0ZWFyZG93bjogZnJlZV9jb21wYXRfYXJnX3hsYXQoKSAqLwogICAgIGlmICggcmMgIT0gMCAp CkBAIC0xNTc0LDcgKzE1NzIsNyBAQCB2b2lkIGh2bV92Y3B1X2Rlc3Ryb3koc3RydWN0IHZjcHUg KnYpCiAKICAgICBmcmVlX2NvbXBhdF9hcmdfeGxhdCh2KTsKIAotICAgIHRhc2tsZXRfa2lsbCgm di0+YXJjaC5odm1fdmNwdS5hc3NlcnRfZXZ0Y2huX2lycV90YXNrbGV0KTsKKyAgICB0YXNrbGV0 X2tpbGwoJnYtPmFyY2guaHZtLmFzc2VydF9ldnRjaG5faXJxX3Rhc2tsZXQpOwogICAgIGh2bV9m dW5jcy52Y3B1X2Rlc3Ryb3kodik7CiAKICAgICB2bGFwaWNfZGVzdHJveSh2KTsKQEAgLTE5Njcs MTEgKzE5NjUsMTEgQEAgaW50IGh2bV9zZXRfZWZlcih1aW50NjRfdCB2YWx1ZSkKICAgICB7CiAg ICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HCiAgICAgICAgICAgICAgICAiJXB2OiBJbnZh bGlkIEVGRVIgdXBkYXRlOiAlIyJQUkl4NjQiIC0+ICUjIlBSSXg2NCIgLSAlc1xuIiwKLSAgICAg ICAgICAgICAgIHYsIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlciwgdmFsdWUsIGVycnN0cik7 CisgICAgICAgICAgICAgICB2LCB2LT5hcmNoLmh2bS5ndWVzdF9lZmVyLCB2YWx1ZSwgZXJyc3Ry KTsKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogICAgIH0KIAotICAgIGlmICgg KCh2YWx1ZSBeIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlcikgJiBFRkVSX0xNRSkgJiYKKyAg ICBpZiAoICgodmFsdWUgXiB2LT5hcmNoLmh2bS5ndWVzdF9lZmVyKSAmIEVGRVJfTE1FKSAmJgog ICAgICAgICAgaHZtX3BhZ2luZ19lbmFibGVkKHYpICkKICAgICB7CiAgICAgICAgIGdkcHJpbnRr KFhFTkxPR19XQVJOSU5HLApAQCAtMTk3OSw3ICsxOTc3LDcgQEAgaW50IGh2bV9zZXRfZWZlcih1 aW50NjRfdCB2YWx1ZSkKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwogICAgIH0K IAotICAgIGlmICggKHZhbHVlICYgRUZFUl9MTUUpICYmICEodi0+YXJjaC5odm1fdmNwdS5ndWVz dF9lZmVyICYgRUZFUl9MTUUpICkKKyAgICBpZiAoICh2YWx1ZSAmIEVGRVJfTE1FKSAmJiAhKHYt PmFyY2guaHZtLmd1ZXN0X2VmZXIgJiBFRkVSX0xNRSkgKQogICAgIHsKICAgICAgICAgc3RydWN0 IHNlZ21lbnRfcmVnaXN0ZXIgY3M7CiAKQEAgLTIwMDUsMTUgKzIwMDMsMTUgQEAgaW50IGh2bV9z ZXRfZWZlcih1aW50NjRfdCB2YWx1ZSkKIAogICAgIGlmICggbmVzdGVkaHZtX2VuYWJsZWQodi0+ ZG9tYWluKSAmJiBjcHVfaGFzX3N2bSAmJgogICAgICAgICgodmFsdWUgJiBFRkVSX1NWTUUpID09 IDAgKSAmJgotICAgICAgICgodmFsdWUgXiB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIpICYg RUZFUl9TVk1FKSApCisgICAgICAgKCh2YWx1ZSBeIHYtPmFyY2guaHZtLmd1ZXN0X2VmZXIpICYg RUZFUl9TVk1FKSApCiAgICAgewogICAgICAgICAvKiBDbGVhcmVkIEVGRVIuU1ZNRTogRmx1c2gg YWxsIG5lc3RlZHAybSB0YWJsZXMgKi8KICAgICAgICAgcDJtX2ZsdXNoX25lc3RlZHAybSh2LT5k b21haW4pOwogICAgICAgICBuZXN0ZWRodm1fdmNwdV9yZXNldCh2KTsKICAgICB9CiAKLSAgICB2 YWx1ZSB8PSB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIgJiBFRkVSX0xNQTsKLSAgICB2LT5h cmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIgPSB2YWx1ZTsKKyAgICB2YWx1ZSB8PSB2LT5hcmNoLmh2 bS5ndWVzdF9lZmVyICYgRUZFUl9MTUE7CisgICAgdi0+YXJjaC5odm0uZ3Vlc3RfZWZlciA9IHZh bHVlOwogICAgIGh2bV91cGRhdGVfZ3Vlc3RfZWZlcih2KTsKIAogICAgIHJldHVybiBYODZFTVVM X09LQVk7CkBAIC0yMDI5LDcgKzIwMjcsNyBAQCBzdGF0aWMgYm9vbF90IGRvbWFpbl9leGl0X3Vj X21vZGUoc3RydWN0IHZjcHUgKnYpCiAgICAgewogICAgICAgICBpZiAoICh2cyA9PSB2KSB8fCAh dnMtPmlzX2luaXRpYWxpc2VkICkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAo ICh2cy0+YXJjaC5odm1fdmNwdS5jYWNoZV9tb2RlID09IE5PX0ZJTExfQ0FDSEVfTU9ERSkgfHwK KyAgICAgICAgaWYgKCAodnMtPmFyY2guaHZtLmNhY2hlX21vZGUgPT0gTk9fRklMTF9DQUNIRV9N T0RFKSB8fAogICAgICAgICAgICAgIG10cnJfcGF0X25vdF9lcXVhbCh2cywgdikgKQogICAgICAg ICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMjA5Nyw3ICsyMDk1LDcgQEAgaW50IGh2bV9tb3Zf ZnJvbV9jcih1bnNpZ25lZCBpbnQgY3IsIHVuc2lnbmVkIGludCBncHIpCiAgICAgY2FzZSAyOgog ICAgIGNhc2UgMzoKICAgICBjYXNlIDQ6Ci0gICAgICAgIHZhbCA9IGN1cnItPmFyY2guaHZtX3Zj cHUuZ3Vlc3RfY3JbY3JdOworICAgICAgICB2YWwgPSBjdXJyLT5hcmNoLmh2bS5ndWVzdF9jcltj cl07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgODoKICAgICAgICAgdmFsID0gKHZsYXBpY19n ZXRfcmVnKHZjcHVfdmxhcGljKGN1cnIpLCBBUElDX1RBU0tQUkkpICYgMHhmMCkgPj4gNDsKQEAg LTIxMjQsNyArMjEyMiw3IEBAIHZvaWQgaHZtX3NoYWRvd19oYW5kbGVfY2Qoc3RydWN0IHZjcHUg KnYsIHVuc2lnbmVkIGxvbmcgdmFsdWUpCiAgICAgewogICAgICAgICAvKiBFbnRlcmluZyBubyBm aWxsIGNhY2hlIG1vZGUuICovCiAgICAgICAgIHNwaW5fbG9jaygmdi0+ZG9tYWluLT5hcmNoLmh2 bS51Y19sb2NrKTsKLSAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5jYWNoZV9tb2RlID0gTk9fRklM TF9DQUNIRV9NT0RFOworICAgICAgICB2LT5hcmNoLmh2bS5jYWNoZV9tb2RlID0gTk9fRklMTF9D QUNIRV9NT0RFOwogCiAgICAgICAgIGlmICggIXYtPmRvbWFpbi0+YXJjaC5odm0uaXNfaW5fdWNf bW9kZSApCiAgICAgICAgIHsKQEAgLTIxMzksMTEgKzIxMzcsMTEgQEAgdm9pZCBodm1fc2hhZG93 X2hhbmRsZV9jZChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyB2YWx1ZSkKICAgICAgICAg c3Bpbl91bmxvY2soJnYtPmRvbWFpbi0+YXJjaC5odm0udWNfbG9jayk7CiAgICAgfQogICAgIGVs c2UgaWYgKCAhKHZhbHVlICYgWDg2X0NSMF9DRCkgJiYKLSAgICAgICAgICAgICAgKHYtPmFyY2gu aHZtX3ZjcHUuY2FjaGVfbW9kZSA9PSBOT19GSUxMX0NBQ0hFX01PREUpICkKKyAgICAgICAgICAg ICAgKHYtPmFyY2guaHZtLmNhY2hlX21vZGUgPT0gTk9fRklMTF9DQUNIRV9NT0RFKSApCiAgICAg ewogICAgICAgICAvKiBFeGl0IGZyb20gbm8gZmlsbCBjYWNoZSBtb2RlLiAqLwogICAgICAgICBz cGluX2xvY2soJnYtPmRvbWFpbi0+YXJjaC5odm0udWNfbG9jayk7Ci0gICAgICAgIHYtPmFyY2gu aHZtX3ZjcHUuY2FjaGVfbW9kZSA9IE5PUk1BTF9DQUNIRV9NT0RFOworICAgICAgICB2LT5hcmNo Lmh2bS5jYWNoZV9tb2RlID0gTk9STUFMX0NBQ0hFX01PREU7CiAKICAgICAgICAgaWYgKCBkb21h aW5fZXhpdF91Y19tb2RlKHYpICkKICAgICAgICAgICAgIGh2bV9zZXRfdWNfbW9kZSh2LCAwKTsK QEAgLTIxNTQsNyArMjE1Miw3IEBAIHZvaWQgaHZtX3NoYWRvd19oYW5kbGVfY2Qoc3RydWN0IHZj cHUgKnYsIHVuc2lnbmVkIGxvbmcgdmFsdWUpCiAKIHN0YXRpYyB2b2lkIGh2bV91cGRhdGVfY3Io c3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjciwgdW5zaWduZWQgbG9uZyB2YWx1ZSkKIHsK LSAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyW2NyXSA9IHZhbHVlOworICAgIHYtPmFyY2gu aHZtLmd1ZXN0X2NyW2NyXSA9IHZhbHVlOwogICAgIG5lc3RlZGh2bV9zZXRfY3IodiwgY3IsIHZh bHVlKTsKICAgICBodm1fdXBkYXRlX2d1ZXN0X2NyKHYsIGNyKTsKIH0KQEAgLTIxNjMsNyArMjE2 MSw3IEBAIGludCBodm1fc2V0X2NyMCh1bnNpZ25lZCBsb25nIHZhbHVlLCBib29sX3QgbWF5X2Rl ZmVyKQogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKICAgICBzdHJ1Y3QgZG9tYWlu ICpkID0gdi0+ZG9tYWluOwotICAgIHVuc2lnbmVkIGxvbmcgZ2ZuLCBvbGRfdmFsdWUgPSB2LT5h cmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdOworICAgIHVuc2lnbmVkIGxvbmcgZ2ZuLCBvbGRfdmFs dWUgPSB2LT5hcmNoLmh2bS5ndWVzdF9jclswXTsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdl OwogCiAgICAgSFZNX0RCR19MT0coREJHX0xFVkVMX1ZNTVUsICJVcGRhdGUgQ1IwIHZhbHVlID0g JWx4IiwgdmFsdWUpOwpAQCAtMjIwMiwyOCArMjIwMCwyOCBAQCBpbnQgaHZtX3NldF9jcjAodW5z aWduZWQgbG9uZyB2YWx1ZSwgYm9vbF90IG1heV9kZWZlcikKIAogICAgIGlmICggKHZhbHVlICYg WDg2X0NSMF9QRykgJiYgIShvbGRfdmFsdWUgJiBYODZfQ1IwX1BHKSApCiAgICAgewotICAgICAg ICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlciAmIEVGRVJfTE1FICkKKyAgICAgICAg aWYgKCB2LT5hcmNoLmh2bS5ndWVzdF9lZmVyICYgRUZFUl9MTUUgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBpZiAoICEodi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0XSAmIFg4Nl9DUjRfUEFF KSAmJgorICAgICAgICAgICAgaWYgKCAhKHYtPmFyY2guaHZtLmd1ZXN0X2NyWzRdICYgWDg2X0NS NF9QQUUpICYmCiAgICAgICAgICAgICAgICAgICFuZXN0ZWRodm1fdm1zd2l0Y2hfaW5fcHJvZ3Jl c3ModikgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEhWTV9EQkdfTE9HKERCR19M RVZFTF8xLCAiRW5hYmxlIHBhZ2luZyBiZWZvcmUgUEFFIGVuYWJsZSIpOwogICAgICAgICAgICAg ICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg IEhWTV9EQkdfTE9HKERCR19MRVZFTF8xLCAiRW5hYmxpbmcgbG9uZyBtb2RlIik7Ci0gICAgICAg ICAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIgfD0gRUZFUl9MTUE7CisgICAgICAgICAg ICB2LT5hcmNoLmh2bS5ndWVzdF9lZmVyIHw9IEVGRVJfTE1BOwogICAgICAgICAgICAgaHZtX3Vw ZGF0ZV9ndWVzdF9lZmVyKHYpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCAhcGFnaW5nX21v ZGVfaGFwKGQpICkKICAgICAgICAgewogICAgICAgICAgICAgLyogVGhlIGd1ZXN0IENSMyBtdXN0 IGJlIHBvaW50aW5nIHRvIHRoZSBndWVzdCBwaHlzaWNhbC4gKi8KLSAgICAgICAgICAgIGdmbiA9 IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbM10+PlBBR0VfU0hJRlQ7CisgICAgICAgICAgICBn Zm4gPSB2LT5hcmNoLmh2bS5ndWVzdF9jclszXSA+PiBQQUdFX1NISUZUOwogICAgICAgICAgICAg cGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdmbiwgTlVMTCwgUDJNX0FMTE9DKTsKICAgICAg ICAgICAgIGlmICggIXBhZ2UgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGdkcHJp bnRrKFhFTkxPR19FUlIsICJJbnZhbGlkIENSMyB2YWx1ZSA9ICVseFxuIiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzNdKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICB2LT5hcmNoLmh2bS5ndWVzdF9jclszXSk7CiAgICAgICAgICAgICAgICAg ZG9tYWluX2NyYXNoKGQpOwogICAgICAgICAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExF QUJMRTsKICAgICAgICAgICAgIH0KQEAgLTIyMzIsNyArMjIzMCw3IEBAIGludCBodm1fc2V0X2Ny MCh1bnNpZ25lZCBsb25nIHZhbHVlLCBib29sX3QgbWF5X2RlZmVyKQogICAgICAgICAgICAgdi0+ YXJjaC5ndWVzdF90YWJsZSA9IHBhZ2V0YWJsZV9mcm9tX3BhZ2UocGFnZSk7CiAKICAgICAgICAg ICAgIEhWTV9EQkdfTE9HKERCR19MRVZFTF9WTU1VLCAiVXBkYXRlIENSMyB2YWx1ZSA9ICVseCwg bWZuID0gJWx4IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vl c3RfY3JbM10sIG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CisgICAgICAgICAgICAgICAgICAg ICAgICB2LT5hcmNoLmh2bS5ndWVzdF9jclszXSwgbWZuX3gocGFnZV90b19tZm4ocGFnZSkpKTsK ICAgICAgICAgfQogICAgIH0KICAgICBlbHNlIGlmICggISh2YWx1ZSAmIFg4Nl9DUjBfUEcpICYm IChvbGRfdmFsdWUgJiBYODZfQ1IwX1BHKSApCkBAIC0yMjQ3LDcgKzIyNDUsNyBAQCBpbnQgaHZt X3NldF9jcjAodW5zaWduZWQgbG9uZyB2YWx1ZSwgYm9vbF90IG1heV9kZWZlcikKICAgICAgICAg LyogV2hlbiBDUjAuUEcgaXMgY2xlYXJlZCwgTE1BIGlzIGNsZWFyZWQgaW1tZWRpYXRlbHkuICov CiAgICAgICAgIGlmICggaHZtX2xvbmdfbW9kZV9hY3RpdmUodikgKQogICAgICAgICB7Ci0gICAg ICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIgJj0gfkVGRVJfTE1BOworICAgICAg ICAgICAgdi0+YXJjaC5odm0uZ3Vlc3RfZWZlciAmPSB+RUZFUl9MTUE7CiAgICAgICAgICAgICBo dm1fdXBkYXRlX2d1ZXN0X2VmZXIodik7CiAgICAgICAgIH0KIApAQCAtMjI4MSw3ICsyMjc5LDcg QEAgaW50IGh2bV9zZXRfY3IzKHVuc2lnbmVkIGxvbmcgdmFsdWUsIGJvb2xfdCBtYXlfZGVmZXIp CiB7CiAgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50OwogICAgIHN0cnVjdCBwYWdlX2luZm8g KnBhZ2U7Ci0gICAgdW5zaWduZWQgbG9uZyBvbGQgPSB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2Ny WzNdOworICAgIHVuc2lnbmVkIGxvbmcgb2xkID0gdi0+YXJjaC5odm0uZ3Vlc3RfY3JbM107CiAg ICAgYm9vbCBub2ZsdXNoID0gZmFsc2U7CiAKICAgICBpZiAoIG1heV9kZWZlciAmJiB1bmxpa2Vs eSh2LT5kb21haW4tPmFyY2gubW9uaXRvci53cml0ZV9jdHJscmVnX2VuYWJsZWQgJgpAQCAtMjMw Niw3ICsyMzA0LDcgQEAgaW50IGh2bV9zZXRfY3IzKHVuc2lnbmVkIGxvbmcgdmFsdWUsIGJvb2xf dCBtYXlfZGVmZXIpCiAgICAgfQogCiAgICAgaWYgKCBodm1fcGFnaW5nX2VuYWJsZWQodikgJiYg IXBhZ2luZ19tb2RlX2hhcCh2LT5kb21haW4pICYmCi0gICAgICAgICAodmFsdWUgIT0gdi0+YXJj aC5odm1fdmNwdS5ndWVzdF9jclszXSkgKQorICAgICAgICAgKHZhbHVlICE9IHYtPmFyY2guaHZt Lmd1ZXN0X2NyWzNdKSApCiAgICAgewogICAgICAgICAvKiBTaGFkb3ctbW9kZSBDUjMgY2hhbmdl LiBDaGVjayBQREJSIGFuZCB1cGRhdGUgcmVmY291bnRzLiAqLwogICAgICAgICBIVk1fREJHX0xP RyhEQkdfTEVWRUxfVk1NVSwgIkNSMyB2YWx1ZSA9ICVseCIsIHZhbHVlKTsKQEAgLTIzMjEsNyAr MjMxOSw3IEBAIGludCBodm1fc2V0X2NyMyh1bnNpZ25lZCBsb25nIHZhbHVlLCBib29sX3QgbWF5 X2RlZmVyKQogICAgICAgICBIVk1fREJHX0xPRyhEQkdfTEVWRUxfVk1NVSwgIlVwZGF0ZSBDUjMg dmFsdWUgPSAlbHgiLCB2YWx1ZSk7CiAgICAgfQogCi0gICAgdi0+YXJjaC5odm1fdmNwdS5ndWVz dF9jclszXSA9IHZhbHVlOworICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzNdID0gdmFsdWU7CiAg ICAgcGFnaW5nX3VwZGF0ZV9jcjModiwgbm9mbHVzaCk7CiAgICAgcmV0dXJuIFg4NkVNVUxfT0tB WTsKIApAQCAtMjM1NCwxMSArMjM1MiwxMSBAQCBpbnQgaHZtX3NldF9jcjQodW5zaWduZWQgbG9u ZyB2YWx1ZSwgYm9vbF90IG1heV9kZWZlcikKICAgICAgICAgfQogICAgIH0KIAotICAgIG9sZF9j ciA9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF07CisgICAgb2xkX2NyID0gdi0+YXJjaC5o dm0uZ3Vlc3RfY3JbNF07CiAKICAgICBpZiAoICh2YWx1ZSAmIFg4Nl9DUjRfUENJREUpICYmICEo b2xkX2NyICYgWDg2X0NSNF9QQ0lERSkgJiYKICAgICAgICAgICghaHZtX2xvbmdfbW9kZV9hY3Rp dmUodikgfHwKLSAgICAgICAgICAodi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclszXSAmIDB4ZmZm KSkgKQorICAgICAgICAgICh2LT5hcmNoLmh2bS5ndWVzdF9jclszXSAmIDB4ZmZmKSkgKQogICAg IHsKICAgICAgICAgSFZNX0RCR19MT0coREJHX0xFVkVMXzEsICJHdWVzdCBhdHRlbXB0cyB0byBj aGFuZ2UgQ1I0LlBDSURFIGZyb20gIgogICAgICAgICAgICAgICAgICAgICAiMCB0byAxIHdoaWxl IGVpdGhlciBFRkVSLkxNQT0wIG9yIENSM1sxMTowXSE9MDAwSCIpOwpAQCAtMjQ0MSw3ICsyNDM5 LDcgQEAgYm9vbF90IGh2bV92aXJ0dWFsX3RvX2xpbmVhcl9hZGRyKAogICAgICAqLwogICAgIEFT U0VSVChzZWcgPCB4ODZfc2VnX25vbmUpOwogCi0gICAgaWYgKCAhKGN1cnItPmFyY2guaHZtX3Zj cHUuZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1BFKSB8fAorICAgIGlmICggIShjdXJyLT5hcmNoLmh2 bS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfUEUpIHx8CiAgICAgICAgICAoZ3Vlc3RfY3B1X3VzZXJf cmVncygpLT5lZmxhZ3MgJiBYODZfRUZMQUdTX1ZNKSApCiAgICAgewogICAgICAgICAvKgpAQCAt MzA1MCw3ICszMDQ4LDcgQEAgdm9pZCBodm1fdGFza19zd2l0Y2goCiAgICAgdHIudHlwZSA9IDB4 YjsgLyogYnVzeSAzMi1iaXQgdHNzICovCiAgICAgaHZtX3NldF9zZWdtZW50X3JlZ2lzdGVyKHYs IHg4Nl9zZWdfdHIsICZ0cik7CiAKLSAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdIHw9 IFg4Nl9DUjBfVFM7CisgICAgdi0+YXJjaC5odm0uZ3Vlc3RfY3JbMF0gfD0gWDg2X0NSMF9UUzsK ICAgICBodm1fdXBkYXRlX2d1ZXN0X2NyKHYsIDApOwogCiAgICAgaWYgKCAodGFza3N3aXRjaF9y ZWFzb24gPT0gVFNXX2lyZXQgfHwKQEAgLTMzOTIsOCArMzM5MCw4IEBAIGludCBodm1fbXNyX3Jl YWRfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90ICptc3JfY29udGVudCkKICAg ICB1aW50NjRfdCAqdmFyX3JhbmdlX2Jhc2UsICpmaXhlZF9yYW5nZV9iYXNlOwogICAgIGludCBy ZXQ7CiAKLSAgICB2YXJfcmFuZ2VfYmFzZSA9ICh1aW50NjRfdCAqKXYtPmFyY2guaHZtX3ZjcHUu bXRyci52YXJfcmFuZ2VzOwotICAgIGZpeGVkX3JhbmdlX2Jhc2UgPSAodWludDY0X3QgKil2LT5h cmNoLmh2bV92Y3B1Lm10cnIuZml4ZWRfcmFuZ2VzOworICAgIHZhcl9yYW5nZV9iYXNlID0gKHVp bnQ2NF90ICopdi0+YXJjaC5odm0ubXRyci52YXJfcmFuZ2VzOworICAgIGZpeGVkX3JhbmdlX2Jh c2UgPSAodWludDY0X3QgKil2LT5hcmNoLmh2bS5tdHJyLmZpeGVkX3JhbmdlczsKIAogICAgIGlm ICggKHJldCA9IGd1ZXN0X3JkbXNyKHYsIG1zciwgbXNyX2NvbnRlbnQpKSAhPSBYODZFTVVMX1VO SEFORExFQUJMRSApCiAgICAgICAgIHJldHVybiByZXQ7CkBAIC0zNDA1LDcgKzM0MDMsNyBAQCBp bnQgaHZtX21zcl9yZWFkX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNy X2NvbnRlbnQpCiAgICAgICAgIHVuc2lnbmVkIGludCBpbmRleDsKIAogICAgIGNhc2UgTVNSX0VG RVI6Ci0gICAgICAgICptc3JfY29udGVudCA9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlcjsK KyAgICAgICAgKm1zcl9jb250ZW50ID0gdi0+YXJjaC5odm0uZ3Vlc3RfZWZlcjsKICAgICAgICAg YnJlYWs7CiAKICAgICBjYXNlIE1TUl9JQTMyX1RTQzoKQEAgLTM0MTMsNyArMzQxMSw3IEBAIGlu dCBodm1fbXNyX3JlYWRfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90ICptc3Jf Y29udGVudCkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE1TUl9JQTMyX1RTQ19BREpVU1Q6 Ci0gICAgICAgICptc3JfY29udGVudCA9IHYtPmFyY2guaHZtX3ZjcHUubXNyX3RzY19hZGp1c3Q7 CisgICAgICAgICptc3JfY29udGVudCA9IHYtPmFyY2guaHZtLm1zcl90c2NfYWRqdXN0OwogICAg ICAgICBicmVhazsKIAogICAgIGNhc2UgTVNSX1RTQ19BVVg6CkBAIC0zNDQwLDE0ICszNDM4LDE0 IEBAIGludCBodm1fbXNyX3JlYWRfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90 ICptc3JfY29udGVudCkKICAgICBjYXNlIE1TUl9NVFJSY2FwOgogICAgICAgICBpZiAoICFkLT5h cmNoLmNwdWlkLT5iYXNpYy5tdHJyICkKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7Ci0gICAg ICAgICptc3JfY29udGVudCA9IHYtPmFyY2guaHZtX3ZjcHUubXRyci5tdHJyX2NhcDsKKyAgICAg ICAgKm1zcl9jb250ZW50ID0gdi0+YXJjaC5odm0ubXRyci5tdHJyX2NhcDsKICAgICAgICAgYnJl YWs7CiAgICAgY2FzZSBNU1JfTVRSUmRlZlR5cGU6CiAgICAgICAgIGlmICggIWQtPmFyY2guY3B1 aWQtPmJhc2ljLm10cnIgKQogICAgICAgICAgICAgZ290byBncF9mYXVsdDsKLSAgICAgICAgKm1z cl9jb250ZW50ID0gdi0+YXJjaC5odm1fdmNwdS5tdHJyLmRlZl90eXBlIHwKLSAgICAgICAgICAg ICAgICAgICAgICAgTUFTS19JTlNSKHYtPmFyY2guaHZtX3ZjcHUubXRyci5lbmFibGVkLCBNVFJS ZGVmVHlwZV9FKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgIE1BU0tfSU5TUih2LT5hcmNoLmh2 bV92Y3B1Lm10cnIuZml4ZWRfZW5hYmxlZCwKKyAgICAgICAgKm1zcl9jb250ZW50ID0gdi0+YXJj aC5odm0ubXRyci5kZWZfdHlwZSB8CisgICAgICAgICAgICAgICAgICAgICAgIE1BU0tfSU5TUih2 LT5hcmNoLmh2bS5tdHJyLmVuYWJsZWQsIE1UUlJkZWZUeXBlX0UpIHwKKyAgICAgICAgICAgICAg ICAgICAgICAgTUFTS19JTlNSKHYtPmFyY2guaHZtLm10cnIuZml4ZWRfZW5hYmxlZCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UUlJkZWZUeXBlX0ZFKTsKICAgICAgICAgYnJl YWs7CiAgICAgY2FzZSBNU1JfTVRSUmZpeDY0S18wMDAwMDoKQEAgLTM0NzMsNyArMzQ3MSw3IEBA IGludCBodm1fbXNyX3JlYWRfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90ICpt c3JfY29udGVudCkKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7CiAgICAgICAgIGluZGV4ID0g bXNyIC0gTVNSX0lBMzJfTVRSUl9QSFlTQkFTRSgwKTsKICAgICAgICAgaWYgKCAoaW5kZXggLyAy KSA+PQotICAgICAgICAgICAgIE1BU0tfRVhUUih2LT5hcmNoLmh2bV92Y3B1Lm10cnIubXRycl9j YXAsIE1UUlJjYXBfVkNOVCkgKQorICAgICAgICAgICAgIE1BU0tfRVhUUih2LT5hcmNoLmh2bS5t dHJyLm10cnJfY2FwLCBNVFJSY2FwX1ZDTlQpICkKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7 CiAgICAgICAgICptc3JfY29udGVudCA9IHZhcl9yYW5nZV9iYXNlW2luZGV4XTsKICAgICAgICAg YnJlYWs7CkBAIC0zNDgxLDcgKzM0NzksNyBAQCBpbnQgaHZtX21zcl9yZWFkX2ludGVyY2VwdCh1 bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpCiAgICAgY2FzZSBNU1JfSUEz Ml9YU1M6CiAgICAgICAgIGlmICggIWQtPmFyY2guY3B1aWQtPnhzdGF0ZS54c2F2ZXMgKQogICAg ICAgICAgICAgZ290byBncF9mYXVsdDsKLSAgICAgICAgKm1zcl9jb250ZW50ID0gdi0+YXJjaC5o dm1fdmNwdS5tc3JfeHNzOworICAgICAgICAqbXNyX2NvbnRlbnQgPSB2LT5hcmNoLmh2bS5tc3Jf eHNzOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgTVNSX0lBMzJfQk5EQ0ZHUzoKQEAgLTM1 NzMsNyArMzU3MSw3IEBAIGludCBodm1fbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQg bXNyLCB1aW50NjRfdCBtc3JfY29udGVudCwKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE1T Ul9UU0NfQVVYOgotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lm1zcl90c2NfYXV4ID0gKHVpbnQz Ml90KW1zcl9jb250ZW50OworICAgICAgICB2LT5hcmNoLmh2bS5tc3JfdHNjX2F1eCA9ICh1aW50 MzJfdCltc3JfY29udGVudDsKICAgICAgICAgaWYgKCBjcHVfaGFzX3JkdHNjcAogICAgICAgICAg ICAgICYmICh2LT5kb21haW4tPmFyY2gudHNjX21vZGUgIT0gVFNDX01PREVfUFZSRFRTQ1ApICkK ICAgICAgICAgICAgIHdybXNyX3RzY19hdXgobXNyX2NvbnRlbnQpOwpAQCAtMzYwNCwxNCArMzYw MiwxNCBAQCBpbnQgaHZtX21zcl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWlu dDY0X3QgbXNyX2NvbnRlbnQsCiAgICAgY2FzZSBNU1JfTVRSUmRlZlR5cGU6CiAgICAgICAgIGlm ICggIWQtPmFyY2guY3B1aWQtPmJhc2ljLm10cnIgKQogICAgICAgICAgICAgZ290byBncF9mYXVs dDsKLSAgICAgICAgaWYgKCAhbXRycl9kZWZfdHlwZV9tc3Jfc2V0KHYtPmRvbWFpbiwgJnYtPmFy Y2guaHZtX3ZjcHUubXRyciwKKyAgICAgICAgaWYgKCAhbXRycl9kZWZfdHlwZV9tc3Jfc2V0KHYt PmRvbWFpbiwgJnYtPmFyY2guaHZtLm10cnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtc3JfY29udGVudCkgKQogICAgICAgICAgICBnb3RvIGdwX2ZhdWx0OwogICAgICAg ICBicmVhazsKICAgICBjYXNlIE1TUl9NVFJSZml4NjRLXzAwMDAwOgogICAgICAgICBpZiAoICFk LT5hcmNoLmNwdWlkLT5iYXNpYy5tdHJyICkKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7Ci0g ICAgICAgIGlmICggIW10cnJfZml4X3JhbmdlX21zcl9zZXQodi0+ZG9tYWluLCAmdi0+YXJjaC5o dm1fdmNwdS5tdHJyLCAwLAorICAgICAgICBpZiAoICFtdHJyX2ZpeF9yYW5nZV9tc3Jfc2V0KHYt PmRvbWFpbiwgJnYtPmFyY2guaHZtLm10cnIsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbXNyX2NvbnRlbnQpICkKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7CiAg ICAgICAgIGJyZWFrOwpAQCAtMzYyMCw3ICszNjE4LDcgQEAgaW50IGh2bV9tc3Jfd3JpdGVfaW50 ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1zcl9jb250ZW50LAogICAgICAgICBp ZiAoICFkLT5hcmNoLmNwdWlkLT5iYXNpYy5tdHJyICkKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1 bHQ7CiAgICAgICAgIGluZGV4ID0gbXNyIC0gTVNSX01UUlJmaXgxNktfODAwMDAgKyAxOwotICAg ICAgICBpZiAoICFtdHJyX2ZpeF9yYW5nZV9tc3Jfc2V0KHYtPmRvbWFpbiwgJnYtPmFyY2guaHZt X3ZjcHUubXRyciwKKyAgICAgICAgaWYgKCAhbXRycl9maXhfcmFuZ2VfbXNyX3NldCh2LT5kb21h aW4sICZ2LT5hcmNoLmh2bS5tdHJyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluZGV4LCBtc3JfY29udGVudCkgKQogICAgICAgICAgICAgZ290byBncF9mYXVsdDsKICAg ICAgICAgYnJlYWs7CkBAIC0zNjI4LDcgKzM2MjYsNyBAQCBpbnQgaHZtX21zcl93cml0ZV9pbnRl cmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgbXNyX2NvbnRlbnQsCiAgICAgICAgIGlm ICggIWQtPmFyY2guY3B1aWQtPmJhc2ljLm10cnIgKQogICAgICAgICAgICAgZ290byBncF9mYXVs dDsKICAgICAgICAgaW5kZXggPSBtc3IgLSBNU1JfTVRSUmZpeDRLX0MwMDAwICsgMzsKLSAgICAg ICAgaWYgKCAhbXRycl9maXhfcmFuZ2VfbXNyX3NldCh2LT5kb21haW4sICZ2LT5hcmNoLmh2bV92 Y3B1Lm10cnIsCisgICAgICAgIGlmICggIW10cnJfZml4X3JhbmdlX21zcl9zZXQodi0+ZG9tYWlu LCAmdi0+YXJjaC5odm0ubXRyciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbmRleCwgbXNyX2NvbnRlbnQpICkKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7CiAgICAg ICAgIGJyZWFrOwpAQCAtMzYzNyw4ICszNjM1LDggQEAgaW50IGh2bV9tc3Jfd3JpdGVfaW50ZXJj ZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1zcl9jb250ZW50LAogICAgICAgICAgICAg Z290byBncF9mYXVsdDsKICAgICAgICAgaW5kZXggPSBtc3IgLSBNU1JfSUEzMl9NVFJSX1BIWVNC QVNFKDApOwogICAgICAgICBpZiAoICgoaW5kZXggLyAyKSA+PQotICAgICAgICAgICAgICBNQVNL X0VYVFIodi0+YXJjaC5odm1fdmNwdS5tdHJyLm10cnJfY2FwLCBNVFJSY2FwX1ZDTlQpKSB8fAot ICAgICAgICAgICAgICFtdHJyX3Zhcl9yYW5nZV9tc3Jfc2V0KHYtPmRvbWFpbiwgJnYtPmFyY2gu aHZtX3ZjcHUubXRyciwKKyAgICAgICAgICAgICAgTUFTS19FWFRSKHYtPmFyY2guaHZtLm10cnIu bXRycl9jYXAsIE1UUlJjYXBfVkNOVCkpIHx8CisgICAgICAgICAgICAgIW10cnJfdmFyX3Jhbmdl X21zcl9zZXQodi0+ZG9tYWluLCAmdi0+YXJjaC5odm0ubXRyciwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtc3IsIG1zcl9jb250ZW50KSApCiAgICAgICAgICAgICBnb3Rv IGdwX2ZhdWx0OwogICAgICAgICBicmVhazsKQEAgLTM2NDcsNyArMzY0NSw3IEBAIGludCBodm1f bXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVu dCwKICAgICAgICAgLyogTm8gWFNTIGZlYXR1cmVzIGN1cnJlbnRseSBzdXBwb3J0ZWQgZm9yIGd1 ZXN0cy4gKi8KICAgICAgICAgaWYgKCAhZC0+YXJjaC5jcHVpZC0+eHN0YXRlLnhzYXZlcyB8fCBt c3JfY29udGVudCAhPSAwICkKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7Ci0gICAgICAgIHYt PmFyY2guaHZtX3ZjcHUubXNyX3hzcyA9IG1zcl9jb250ZW50OworICAgICAgICB2LT5hcmNoLmh2 bS5tc3JfeHNzID0gbXNyX2NvbnRlbnQ7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBNU1Jf SUEzMl9CTkRDRkdTOgpAQCAtMzg3Miw3ICszODcwLDcgQEAgdm9pZCBodm1fdmNwdV9yZXNldF9z dGF0ZShzdHJ1Y3QgdmNwdSAqdiwgdWludDE2X3QgY3MsIHVpbnQxNl90IGlwKQogCiAgICAgaWYg KCAhcGFnaW5nX21vZGVfaGFwKGQpICkKICAgICB7Ci0gICAgICAgIGlmICggdi0+YXJjaC5odm1f dmNwdS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfUEcgKQorICAgICAgICBpZiAoIHYtPmFyY2guaHZt Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9QRyApCiAgICAgICAgICAgICBwdXRfcGFnZShwYWdldGFi bGVfZ2V0X3BhZ2Uodi0+YXJjaC5ndWVzdF90YWJsZSkpOwogICAgICAgICB2LT5hcmNoLmd1ZXN0 X3RhYmxlID0gcGFnZXRhYmxlX251bGwoKTsKICAgICB9CkBAIC0zODg4LDE5ICszODg2LDE5IEBA IHZvaWQgaHZtX3ZjcHVfcmVzZXRfc3RhdGUoc3RydWN0IHZjcHUgKnYsIHVpbnQxNl90IGNzLCB1 aW50MTZfdCBpcCkKICAgICB2LT5hcmNoLnVzZXJfcmVncy5yaXAgPSBpcDsKICAgICBtZW1zZXQo JnYtPmFyY2guZGVidWdyZWcsIDAsIHNpemVvZih2LT5hcmNoLmRlYnVncmVnKSk7CiAKLSAgICB2 LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdID0gWDg2X0NSMF9FVDsKKyAgICB2LT5hcmNoLmh2 bS5ndWVzdF9jclswXSA9IFg4Nl9DUjBfRVQ7CiAgICAgaHZtX3VwZGF0ZV9ndWVzdF9jcih2LCAw KTsKIAotICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMl0gPSAwOworICAgIHYtPmFyY2gu aHZtLmd1ZXN0X2NyWzJdID0gMDsKICAgICBodm1fdXBkYXRlX2d1ZXN0X2NyKHYsIDIpOwogCi0g ICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclszXSA9IDA7CisgICAgdi0+YXJjaC5odm0uZ3Vl c3RfY3JbM10gPSAwOwogICAgIGh2bV91cGRhdGVfZ3Vlc3RfY3IodiwgMyk7CiAKLSAgICB2LT5h cmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzRdID0gMDsKKyAgICB2LT5hcmNoLmh2bS5ndWVzdF9jcls0 XSA9IDA7CiAgICAgaHZtX3VwZGF0ZV9ndWVzdF9jcih2LCA0KTsKIAotICAgIHYtPmFyY2guaHZt X3ZjcHUuZ3Vlc3RfZWZlciA9IDA7CisgICAgdi0+YXJjaC5odm0uZ3Vlc3RfZWZlciA9IDA7CiAg ICAgaHZtX3VwZGF0ZV9ndWVzdF9lZmVyKHYpOwogCiAgICAgcmVnLnNlbCA9IGNzOwpAQCAtMzkz MiwxMiArMzkzMCwxMiBAQCB2b2lkIGh2bV92Y3B1X3Jlc2V0X3N0YXRlKHN0cnVjdCB2Y3B1ICp2 LCB1aW50MTZfdCBjcywgdWludDE2X3QgaXApCiAgICAgICAgIGh2bV9mdW5jcy50c2Nfc2NhbGlu Zy5zZXR1cCh2KTsKIAogICAgIC8qIFN5bmMgQVAncyBUU0Mgd2l0aCBCU1Ancy4gKi8KLSAgICB2 LT5hcmNoLmh2bV92Y3B1LmNhY2hlX3RzY19vZmZzZXQgPQotICAgICAgICB2LT5kb21haW4tPnZj cHVbMF0tPmFyY2guaHZtX3ZjcHUuY2FjaGVfdHNjX29mZnNldDsKLSAgICBodm1fc2V0X3RzY19v ZmZzZXQodiwgdi0+YXJjaC5odm1fdmNwdS5jYWNoZV90c2Nfb2Zmc2V0LAorICAgIHYtPmFyY2gu aHZtLmNhY2hlX3RzY19vZmZzZXQgPQorICAgICAgICB2LT5kb21haW4tPnZjcHVbMF0tPmFyY2gu aHZtLmNhY2hlX3RzY19vZmZzZXQ7CisgICAgaHZtX3NldF90c2Nfb2Zmc2V0KHYsIHYtPmFyY2gu aHZtLmNhY2hlX3RzY19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgIGQtPmFyY2guaHZt LnN5bmNfdHNjKTsKIAotICAgIHYtPmFyY2guaHZtX3ZjcHUubXNyX3RzY19hZGp1c3QgPSAwOwor ICAgIHYtPmFyY2guaHZtLm1zcl90c2NfYWRqdXN0ID0gMDsKIAogICAgIHBhZ2luZ191cGRhdGVf cGFnaW5nX21vZGVzKHYpOwogCkBAIC00MDU5LDcgKzQwNTcsNyBAQCBzdGF0aWMgaW50IGh2bW9w X3NldF9ldnRjaG5fdXBjYWxsX3ZlY3RvcigKIAogICAgIHByaW50ayhYRU5MT0dfR19JTkZPICIl cHY6IHVwY2FsbCB2ZWN0b3IgJTAyeFxuIiwgdiwgb3AudmVjdG9yKTsKIAotICAgIHYtPmFyY2gu aHZtX3ZjcHUuZXZ0Y2huX3VwY2FsbF92ZWN0b3IgPSBvcC52ZWN0b3I7CisgICAgdi0+YXJjaC5o dm0uZXZ0Y2huX3VwY2FsbF92ZWN0b3IgPSBvcC52ZWN0b3I7CiAgICAgaHZtX2Fzc2VydF9ldnRj aG5faXJxKHYpOwogICAgIHJldHVybiAwOwogfQpAQCAtNDk3Niw3ICs0OTc0LDcgQEAgaW50IGh2 bV9kZWJ1Z19vcChzdHJ1Y3QgdmNwdSAqdiwgaW50MzJfdCBvcCkKICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgIHJjID0gMDsKICAgICAgICAgICAgIHZjcHVfcGF1c2Uodik7Ci0g ICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LnNpbmdsZV9zdGVwID0KKyAgICAgICAgICAgIHYt PmFyY2guaHZtLnNpbmdsZV9zdGVwID0KICAgICAgICAgICAgICAgICAob3AgPT0gWEVOX0RPTUNU TF9ERUJVR19PUF9TSU5HTEVfU1RFUF9PTik7CiAgICAgICAgICAgICB2Y3B1X3VucGF1c2Uodik7 IC8qIGd1ZXN0IHdpbGwgbGF0Y2ggbmV3IHN0YXRlICovCiAgICAgICAgICAgICBicmVhazsKQEAg LTQ5OTUsNyArNDk5Myw3IEBAIHZvaWQgaHZtX3RvZ2dsZV9zaW5nbGVzdGVwKHN0cnVjdCB2Y3B1 ICp2KQogICAgIGlmICggIWh2bV9pc19zaW5nbGVzdGVwX3N1cHBvcnRlZCgpICkKICAgICAgICAg cmV0dXJuOwogCi0gICAgdi0+YXJjaC5odm1fdmNwdS5zaW5nbGVfc3RlcCA9ICF2LT5hcmNoLmh2 bV92Y3B1LnNpbmdsZV9zdGVwOworICAgIHYtPmFyY2guaHZtLnNpbmdsZV9zdGVwID0gIXYtPmFy Y2guaHZtLnNpbmdsZV9zdGVwOwogfQogCiB2b2lkIGh2bV9kb21haW5fc29mdF9yZXNldChzdHJ1 Y3QgZG9tYWluICpkKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9pby5jIGIveGVuL2Fy Y2gveDg2L2h2bS9pby5jCmluZGV4IGYxZWE3ZDcuLjQ3ZDZjODUgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9odm0vaW8uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2lvLmMKQEAgLTgyLDcgKzgy LDcgQEAgYm9vbCBodm1fZW11bGF0ZV9vbmVfaW5zbihodm1fZW11bGF0ZV92YWxpZGF0ZV90ICp2 YWxpZGF0ZSwgY29uc3QgY2hhciAqZGVzY3IpCiB7CiAgICAgc3RydWN0IGh2bV9lbXVsYXRlX2N0 eHQgY3R4dDsKICAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7Ci0gICAgc3RydWN0IGh2 bV92Y3B1X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm1fdmNwdS5odm1faW87CisgICAgc3RydWN0 IGh2bV92Y3B1X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm0uaHZtX2lvOwogICAgIGludCByYzsK IAogICAgIGh2bV9lbXVsYXRlX2luaXRfb25jZSgmY3R4dCwgdmFsaWRhdGUsIGd1ZXN0X2NwdV91 c2VyX3JlZ3MoKSk7CkBAIC0xMTgsNyArMTE4LDcgQEAgYm9vbCBodm1fZW11bGF0ZV9vbmVfaW5z bihodm1fZW11bGF0ZV92YWxpZGF0ZV90ICp2YWxpZGF0ZSwgY29uc3QgY2hhciAqZGVzY3IpCiBi b29sIGhhbmRsZV9tbWlvX3dpdGhfdHJhbnNsYXRpb24odW5zaWduZWQgbG9uZyBnbGEsIHVuc2ln bmVkIGxvbmcgZ3BmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg bnBmZWMgYWNjZXNzKQogewotICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnJlbnQt PmFyY2guaHZtX3ZjcHUuaHZtX2lvOworICAgIHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1 cnJlbnQtPmFyY2guaHZtLmh2bV9pbzsKIAogICAgIHZpby0+bW1pb19hY2Nlc3MgPSBhY2Nlc3Mu Z2xhX3ZhbGlkICYmCiAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzcy5raW5kID09IG5wZmVj X2tpbmRfd2l0aF9nbGEKQEAgLTEzMSw3ICsxMzEsNyBAQCBib29sIGhhbmRsZV9tbWlvX3dpdGhf dHJhbnNsYXRpb24odW5zaWduZWQgbG9uZyBnbGEsIHVuc2lnbmVkIGxvbmcgZ3BmbiwKIGJvb2wg aGFuZGxlX3Bpbyh1aW50MTZfdCBwb3J0LCB1bnNpZ25lZCBpbnQgc2l6ZSwgaW50IGRpcikKIHsK ICAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7Ci0gICAgc3RydWN0IGh2bV92Y3B1X2lv ICp2aW8gPSAmY3Vyci0+YXJjaC5odm1fdmNwdS5odm1faW87CisgICAgc3RydWN0IGh2bV92Y3B1 X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm0uaHZtX2lvOwogICAgIHVuc2lnbmVkIGxvbmcgZGF0 YTsKICAgICBpbnQgcmM7CiAKQEAgLTE4MCw3ICsxODAsNyBAQCBzdGF0aWMgYm9vbF90IGcybV9w b3J0aW9fYWNjZXB0KGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxlciwKIHsKICAg ICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CiAgICAgY29uc3Qgc3RydWN0IGh2bV9kb21h aW4gKmh2bSA9ICZjdXJyLT5kb21haW4tPmFyY2guaHZtOwotICAgIHN0cnVjdCBodm1fdmNwdV9p byAqdmlvID0gJmN1cnItPmFyY2guaHZtX3ZjcHUuaHZtX2lvOworICAgIHN0cnVjdCBodm1fdmNw dV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtLmh2bV9pbzsKICAgICBzdHJ1Y3QgZzJtX2lvcG9y dCAqZzJtX2lvcG9ydDsKICAgICB1bnNpZ25lZCBpbnQgc3RhcnQsIGVuZDsKIApAQCAtMjAxLDcg KzIwMSw3IEBAIHN0YXRpYyBib29sX3QgZzJtX3BvcnRpb19hY2NlcHQoY29uc3Qgc3RydWN0IGh2 bV9pb19oYW5kbGVyICpoYW5kbGVyLAogc3RhdGljIGludCBnMm1fcG9ydGlvX3JlYWQoY29uc3Qg c3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDY0X3QgYWRkciwgdWludDMyX3Qgc2l6ZSwgdWludDY0X3QgKmRhdGEpCiB7Ci0gICAg c3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmY3VycmVudC0+YXJjaC5odm1fdmNwdS5odm1faW87 CisgICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmY3VycmVudC0+YXJjaC5odm0uaHZtX2lv OwogICAgIGNvbnN0IHN0cnVjdCBnMm1faW9wb3J0ICpnMm1faW9wb3J0ID0gdmlvLT5nMm1faW9w b3J0OwogICAgIHVuc2lnbmVkIGludCBtcG9ydCA9IChhZGRyIC0gZzJtX2lvcG9ydC0+Z3BvcnQp ICsgZzJtX2lvcG9ydC0+bXBvcnQ7CiAKQEAgLTIyNiw3ICsyMjYsNyBAQCBzdGF0aWMgaW50IGcy bV9wb3J0aW9fcmVhZChjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsCiBzdGF0 aWMgaW50IGcybV9wb3J0aW9fd3JpdGUoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5k bGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90 IHNpemUsIHVpbnQ2NF90IGRhdGEpCiB7Ci0gICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAm Y3VycmVudC0+YXJjaC5odm1fdmNwdS5odm1faW87CisgICAgc3RydWN0IGh2bV92Y3B1X2lvICp2 aW8gPSAmY3VycmVudC0+YXJjaC5odm0uaHZtX2lvOwogICAgIGNvbnN0IHN0cnVjdCBnMm1faW9w b3J0ICpnMm1faW9wb3J0ID0gdmlvLT5nMm1faW9wb3J0OwogICAgIHVuc2lnbmVkIGludCBtcG9y dCA9IChhZGRyIC0gZzJtX2lvcG9ydC0+Z3BvcnQpICsgZzJtX2lvcG9ydC0+bXBvcnQ7CiAKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9y ZXEuYwppbmRleCA4ZDYwYjAyLi4xMzhlZDY5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZt L2lvcmVxLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCkBAIC0xMTAsNyArMTEwLDcg QEAgYm9vbCBodm1faW9fcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdikKIHN0YXRpYyB2b2lkIGh2bV9p b19hc3Npc3Qoc3RydWN0IGh2bV9pb3JlcV92Y3B1ICpzdiwgdWludDY0X3QgZGF0YSkKIHsKICAg ICBzdHJ1Y3QgdmNwdSAqdiA9IHN2LT52Y3B1OwotICAgIGlvcmVxX3QgKmlvcmVxID0gJnYtPmFy Y2guaHZtX3ZjcHUuaHZtX2lvLmlvX3JlcTsKKyAgICBpb3JlcV90ICppb3JlcSA9ICZ2LT5hcmNo Lmh2bS5odm1faW8uaW9fcmVxOwogCiAgICAgaWYgKCBodm1faW9yZXFfbmVlZHNfY29tcGxldGlv bihpb3JlcSkgKQogICAgIHsKQEAgLTE4NCw3ICsxODQsNyBAQCBzdGF0aWMgYm9vbCBodm1fd2Fp dF9mb3JfaW8oc3RydWN0IGh2bV9pb3JlcV92Y3B1ICpzdiwgaW9yZXFfdCAqcCkKIGJvb2wgaGFu ZGxlX2h2bV9pb19jb21wbGV0aW9uKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIHN0cnVjdCBkb21h aW4gKmQgPSB2LT5kb21haW47Ci0gICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmdi0+YXJj aC5odm1fdmNwdS5odm1faW87CisgICAgc3RydWN0IGh2bV92Y3B1X2lvICp2aW8gPSAmdi0+YXJj aC5odm0uaHZtX2lvOwogICAgIHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzOwogICAgIGVudW0g aHZtX2lvX2NvbXBsZXRpb24gaW9fY29tcGxldGlvbjsKICAgICB1bnNpZ25lZCBpbnQgaWQ7CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lycS5jIGIveGVuL2FyY2gveDg2L2h2bS9pcnEu YwppbmRleCAxZGVkMmMyLi5mZTJjMmZhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2ly cS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaXJxLmMKQEAgLTMwNiwxMyArMzA2LDEzIEBAIHZv aWQgaHZtX2Fzc2VydF9ldnRjaG5faXJxKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIGlmICggdW5s aWtlbHkoaW5faXJxKCkgfHwgIWxvY2FsX2lycV9pc19lbmFibGVkKCkpICkKICAgICB7Ci0gICAg ICAgIHRhc2tsZXRfc2NoZWR1bGUoJnYtPmFyY2guaHZtX3ZjcHUuYXNzZXJ0X2V2dGNobl9pcnFf dGFza2xldCk7CisgICAgICAgIHRhc2tsZXRfc2NoZWR1bGUoJnYtPmFyY2guaHZtLmFzc2VydF9l dnRjaG5faXJxX3Rhc2tsZXQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCB2 LT5hcmNoLmh2bV92Y3B1LmV2dGNobl91cGNhbGxfdmVjdG9yICE9IDAgKQorICAgIGlmICggdi0+ YXJjaC5odm0uZXZ0Y2huX3VwY2FsbF92ZWN0b3IgIT0gMCApCiAgICAgewotICAgICAgICB1aW50 OF90IHZlY3RvciA9IHYtPmFyY2guaHZtX3ZjcHUuZXZ0Y2huX3VwY2FsbF92ZWN0b3I7CisgICAg ICAgIHVpbnQ4X3QgdmVjdG9yID0gdi0+YXJjaC5odm0uZXZ0Y2huX3VwY2FsbF92ZWN0b3I7CiAK ICAgICAgICAgdmxhcGljX3NldF9pcnEodmNwdV92bGFwaWModiksIHZlY3RvciwgMCk7CiAgICAg fQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9tdHJyLmMgYi94ZW4vYXJjaC94ODYvaHZt L210cnIuYwppbmRleCA4YTc3MmJjLi5kZTFiNWM0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv aHZtL210cnIuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL210cnIuYwpAQCAtMTIyLDcgKzEyMiw3 IEBAIHVpbnQ4X3QgcGF0X3R5cGVfMl9wdGVfZmxhZ3ModWludDhfdCBwYXRfdHlwZSkKIAogaW50 IGh2bV92Y3B1X2NhY2hlYXR0cl9pbml0KHN0cnVjdCB2Y3B1ICp2KQogewotICAgIHN0cnVjdCBt dHJyX3N0YXRlICptID0gJnYtPmFyY2guaHZtX3ZjcHUubXRycjsKKyAgICBzdHJ1Y3QgbXRycl9z dGF0ZSAqbSA9ICZ2LT5hcmNoLmh2bS5tdHJyOwogICAgIHVuc2lnbmVkIGludCBudW1fdmFyX3Jh bmdlcyA9CiAgICAgICAgIGlzX2hhcmR3YXJlX2RvbWFpbih2LT5kb21haW4pID8gTUFTS19FWFRS KG10cnJfc3RhdGUubXRycl9jYXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE1UUlJjYXBfVkNOVCkKQEAgLTE0NCw3ICsxNDQsNyBAQCBpbnQgaHZt X3ZjcHVfY2FjaGVhdHRyX2luaXQoc3RydWN0IHZjcHUgKnYpCiAKICAgICBtLT5tdHJyX2NhcCA9 ICgxdSA8PCAxMCkgfCAoMXUgPDwgOCkgfCBudW1fdmFyX3JhbmdlczsKIAotICAgIHYtPmFyY2gu aHZtX3ZjcHUucGF0X2NyID0KKyAgICB2LT5hcmNoLmh2bS5wYXRfY3IgPQogICAgICAgICAoKHVp bnQ2NF90KVBBVF9UWVBFX1dSQkFDSykgfCAgICAgICAgICAgICAgIC8qIFBBVDA6IFdCICovCiAg ICAgICAgICgodWludDY0X3QpUEFUX1RZUEVfV1JUSFJPVUdIIDw8IDgpIHwgICAgICAgLyogUEFU MTogV1QgKi8KICAgICAgICAgKCh1aW50NjRfdClQQVRfVFlQRV9VQ19NSU5VUyA8PCAxNikgfCAg ICAgICAvKiBQQVQyOiBVQy0gKi8KQEAgLTE4NSw3ICsxODUsNyBAQCBpbnQgaHZtX3ZjcHVfY2Fj aGVhdHRyX2luaXQoc3RydWN0IHZjcHUgKnYpCiAKIHZvaWQgaHZtX3ZjcHVfY2FjaGVhdHRyX2Rl c3Ryb3koc3RydWN0IHZjcHUgKnYpCiB7Ci0gICAgeGZyZWUodi0+YXJjaC5odm1fdmNwdS5tdHJy LnZhcl9yYW5nZXMpOworICAgIHhmcmVlKHYtPmFyY2guaHZtLm10cnIudmFyX3Jhbmdlcyk7CiB9 CiAKIC8qCkBAIC0zNDMsOCArMzQzLDggQEAgdWludDMyX3QgZ2V0X3BhdF9mbGFncyhzdHJ1Y3Qg dmNwdSAqdiwKICAgICB1aW50OF90IGd1ZXN0X2VmZl9tbV90eXBlOwogICAgIHVpbnQ4X3Qgc2hh ZG93X210cnJfdHlwZTsKICAgICB1aW50OF90IHBhdF9lbnRyeV92YWx1ZTsKLSAgICB1aW50NjRf dCBwYXQgPSB2LT5hcmNoLmh2bV92Y3B1LnBhdF9jcjsKLSAgICBzdHJ1Y3QgbXRycl9zdGF0ZSAq ZyA9ICZ2LT5hcmNoLmh2bV92Y3B1Lm10cnI7CisgICAgdWludDY0X3QgcGF0ID0gdi0+YXJjaC5o dm0ucGF0X2NyOworICAgIHN0cnVjdCBtdHJyX3N0YXRlICpnID0gJnYtPmFyY2guaHZtLm10cnI7 CiAKICAgICAvKiAxLiBHZXQgdGhlIGVmZmVjdGl2ZSBtZW1vcnkgdHlwZSBvZiBndWVzdCBwaHlz aWNhbCBhZGRyZXNzLAogICAgICAqIHdpdGggdGhlIHBhaXIgb2YgZ3Vlc3QgTVRSUiBhbmQgUEFU CkBAIC00OTQsOCArNDk0LDggQEAgYm9vbF90IG10cnJfdmFyX3JhbmdlX21zcl9zZXQoCiAKIGJv b2wgbXRycl9wYXRfbm90X2VxdWFsKGNvbnN0IHN0cnVjdCB2Y3B1ICp2ZCwgY29uc3Qgc3RydWN0 IHZjcHUgKnZzKQogewotICAgIGNvbnN0IHN0cnVjdCBtdHJyX3N0YXRlICptZCA9ICZ2ZC0+YXJj aC5odm1fdmNwdS5tdHJyOwotICAgIGNvbnN0IHN0cnVjdCBtdHJyX3N0YXRlICptcyA9ICZ2cy0+ YXJjaC5odm1fdmNwdS5tdHJyOworICAgIGNvbnN0IHN0cnVjdCBtdHJyX3N0YXRlICptZCA9ICZ2 ZC0+YXJjaC5odm0ubXRycjsKKyAgICBjb25zdCBzdHJ1Y3QgbXRycl9zdGF0ZSAqbXMgPSAmdnMt PmFyY2guaHZtLm10cnI7CiAKICAgICBpZiAoIG1kLT5lbmFibGVkICE9IG1zLT5lbmFibGVkICkK ICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC01MjUsNyArNTI1LDcgQEAgYm9vbCBtdHJyX3BhdF9u b3RfZXF1YWwoY29uc3Qgc3RydWN0IHZjcHUgKnZkLCBjb25zdCBzdHJ1Y3QgdmNwdSAqdnMpCiAg ICAgfQogCiAgICAgLyogVGVzdCBQQVQuICovCi0gICAgcmV0dXJuIHZkLT5hcmNoLmh2bV92Y3B1 LnBhdF9jciAhPSB2cy0+YXJjaC5odm1fdmNwdS5wYXRfY3I7CisgICAgcmV0dXJuIHZkLT5hcmNo Lmh2bS5wYXRfY3IgIT0gdnMtPmFyY2guaHZtLnBhdF9jcjsKIH0KIAogc3RydWN0IGh2bV9tZW1f cGlubmVkX2NhY2hlYXR0cl9yYW5nZSB7CkBAIC02OTcsNyArNjk3LDcgQEAgc3RhdGljIGludCBo dm1fc2F2ZV9tdHJyX21zcihzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAq aCkKICAgICAvKiBzYXZlIG10cnImcGF0ICovCiAgICAgZm9yX2VhY2hfdmNwdShkLCB2KQogICAg IHsKLSAgICAgICAgY29uc3Qgc3RydWN0IG10cnJfc3RhdGUgKm10cnJfc3RhdGUgPSAmdi0+YXJj aC5odm1fdmNwdS5tdHJyOworICAgICAgICBjb25zdCBzdHJ1Y3QgbXRycl9zdGF0ZSAqbXRycl9z dGF0ZSA9ICZ2LT5hcmNoLmh2bS5tdHJyOwogICAgICAgICBzdHJ1Y3QgaHZtX2h3X210cnIgaHdf bXRyciA9IHsKICAgICAgICAgICAgIC5tc3JfbXRycl9kZWZfdHlwZSA9IG10cnJfc3RhdGUtPmRl Zl90eXBlIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BU0tfSU5TUihtdHJy X3N0YXRlLT5maXhlZF9lbmFibGVkLApAQCAtNzY0LDcgKzc2NCw3IEBAIHN0YXRpYyBpbnQgaHZt X2xvYWRfbXRycl9tc3Ioc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgp CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAotICAgIG10cnJfc3RhdGUgPSAmdi0+ YXJjaC5odm1fdmNwdS5tdHJyOworICAgIG10cnJfc3RhdGUgPSAmdi0+YXJjaC5odm0ubXRycjsK IAogICAgIGh2bV9zZXRfZ3Vlc3RfcGF0KHYsIGh3X210cnIubXNyX3BhdF9jcik7CiAKQEAgLTg1 OCw3ICs4NTgsNyBAQCBpbnQgZXB0ZV9nZXRfZW50cnlfZW10KHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGdt dHJyX210eXBlID0gaXNfaHZtX2RvbWFpbihkKSAmJiB2ID8KLSAgICAgICAgICAgICAgICAgIGdl dF9tdHJyX3R5cGUoJnYtPmFyY2guaHZtX3ZjcHUubXRyciwKKyAgICAgICAgICAgICAgICAgIGdl dF9tdHJyX3R5cGUoJnYtPmFyY2guaHZtLm10cnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdmbiA8PCBQQUdFX1NISUZULCBvcmRlcikgOgogICAgICAgICAgICAgICAgICAgTVRS Ul9UWVBFX1dSQkFDSzsKICAgICBobXRycl9tdHlwZSA9IGdldF9tdHJyX3R5cGUoJm10cnJfc3Rh dGUsIG1mbl94KG1mbikgPDwgUEFHRV9TSElGVCwgb3JkZXIpOwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L2h2bS9wbXRpbWVyLmMgYi94ZW4vYXJjaC94ODYvaHZtL3BtdGltZXIuYwppbmRleCA3 NWI5NDA4Li44NTQyYTMyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3BtdGltZXIuYwor KysgYi94ZW4vYXJjaC94ODYvaHZtL3BtdGltZXIuYwpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRp YyBpbnQgYWNwaV9zYXZlKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpo KQogICAgICAqIFVwZGF0ZSB0aGUgY291bnRlciB0byB0aGUgZ3Vlc3QncyBjdXJyZW50IHRpbWUu ICBNYWtlIHN1cmUgaXQgb25seQogICAgICAqIGdvZXMgZm9yd2FyZHMuCiAgICAgICovCi0gICAg eCA9ICgoKHMtPnZjcHUtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfdGltZSA/OiBodm1fZ2V0X2d1ZXN0 X3RpbWUocy0+dmNwdSkpIC0KKyAgICB4ID0gKCgocy0+dmNwdS0+YXJjaC5odm0uZ3Vlc3RfdGlt ZSA/OiBodm1fZ2V0X2d1ZXN0X3RpbWUocy0+dmNwdSkpIC0KICAgICAgICAgICBzLT5sYXN0X2d0 aW1lKSAqIHMtPnNjYWxlKSA+PiAzMjsKICAgICBpZiAoIHggPCAxVUw8PDMxICkKICAgICAgICAg YWNwaS0+dG1yX3ZhbCArPSB4OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vYXNp ZC5jIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vYXNpZC5jCmluZGV4IDQ4NjFkYWEuLjdjYzU0ZGEg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL2FzaWQuYworKysgYi94ZW4vYXJjaC94 ODYvaHZtL3N2bS9hc2lkLmMKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBzdm1fYXNpZF9oYW5kbGVf dm1ydW4odm9pZCkKICAgICBzdHJ1Y3Qgdm1jYl9zdHJ1Y3QgKnZtY2IgPSBjdXJyLT5hcmNoLmh2 bV9zdm0udm1jYjsKICAgICBzdHJ1Y3QgaHZtX3ZjcHVfYXNpZCAqcF9hc2lkID0KICAgICAgICAg bmVzdGVkaHZtX3ZjcHVfaW5fZ3Vlc3Rtb2RlKGN1cnIpCi0gICAgICAgID8gJnZjcHVfbmVzdGVk aHZtKGN1cnIpLm52X24yYXNpZCA6ICZjdXJyLT5hcmNoLmh2bV92Y3B1Lm4xYXNpZDsKKyAgICAg ICAgPyAmdmNwdV9uZXN0ZWRodm0oY3VycikubnZfbjJhc2lkIDogJmN1cnItPmFyY2guaHZtLm4x YXNpZDsKICAgICBib29sX3QgbmVlZF9mbHVzaCA9IGh2bV9hc2lkX2hhbmRsZV92bWVudGVyKHBf YXNpZCk7CiAKICAgICAvKiBBU0lEIDAgaW5kaWNhdGVzIHRoYXQgQVNJRHMgYXJlIGRpc2FibGVk LiAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vbmVzdGVkc3ZtLmMgYi94ZW4v YXJjaC94ODYvaHZtL3N2bS9uZXN0ZWRzdm0uYwppbmRleCA2NDU3NTMyLi5hMWY4NDBlIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9uZXN0ZWRzdm0uYworKysgYi94ZW4vYXJjaC94 ODYvaHZtL3N2bS9uZXN0ZWRzdm0uYwpAQCAtMjQzLDEwICsyNDMsMTAgQEAgc3RhdGljIGludCBu c3ZtX3ZjcHVfaG9zdHNhdmUoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBpbnN0X2xlbikK IAogICAgIC8qIFNhdmUgc2hhZG93ZWQgdmFsdWVzLiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgbDEg Z3Vlc3QKICAgICAgKiBjYW5ub3Qgb3ZlcnJpZGUgdGhlbSB0byBicmVhayBvdXQuICovCi0gICAg bjF2bWNiLT5fZWZlciA9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlcjsKLSAgICBuMXZtY2It Pl9jcjAgPSB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdOwotICAgIG4xdm1jYi0+X2NyMiA9 IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMl07Ci0gICAgbjF2bWNiLT5fY3I0ID0gdi0+YXJj aC5odm1fdmNwdS5ndWVzdF9jcls0XTsKKyAgICBuMXZtY2ItPl9lZmVyID0gdi0+YXJjaC5odm0u Z3Vlc3RfZWZlcjsKKyAgICBuMXZtY2ItPl9jcjAgPSB2LT5hcmNoLmh2bS5ndWVzdF9jclswXTsK KyAgICBuMXZtY2ItPl9jcjIgPSB2LT5hcmNoLmh2bS5ndWVzdF9jclsyXTsKKyAgICBuMXZtY2It Pl9jcjQgPSB2LT5hcmNoLmh2bS5ndWVzdF9jcls0XTsKIAogICAgIC8qIFJlbWVtYmVyIHRoZSBo b3N0IGludGVycnVwdCBmbGFnICovCiAgICAgc3ZtLT5uc19ob3N0ZmxhZ3MuZmllbGRzLnJmbGFn c2lmID0KQEAgLTI3Niw3ICsyNzYsNyBAQCBzdGF0aWMgaW50IG5zdm1fdmNwdV9ob3N0cmVzdG9y ZShzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgdi0+YXJj aC5odm1fc3ZtLnZtY2JfcGEgPSBudi0+bnZfbjF2bWN4X3BhOwogCiAgICAgLyogRUZFUiAqLwot ICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlciA9IG4xdm1jYi0+X2VmZXI7CisgICAgdi0+ YXJjaC5odm0uZ3Vlc3RfZWZlciA9IG4xdm1jYi0+X2VmZXI7CiAgICAgcmMgPSBodm1fc2V0X2Vm ZXIobjF2bWNiLT5fZWZlcik7CiAgICAgaWYgKCByYyA9PSBYODZFTVVMX0VYQ0VQVElPTiApCiAg ICAgICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZ3BfZmF1bHQsIDApOwpAQCAtMjg0 LDcgKzI4NCw3IEBAIHN0YXRpYyBpbnQgbnN2bV92Y3B1X2hvc3RyZXN0b3JlKHN0cnVjdCB2Y3B1 ICp2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgICAgZ2RwcmludGsoWEVOTE9H X0VSUiwgImh2bV9zZXRfZWZlciBmYWlsZWQsIHJjOiAldVxuIiwgcmMpOwogCiAgICAgLyogQ1I0 ICovCi0gICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0XSA9IG4xdm1jYi0+X2NyNDsKKyAg ICB2LT5hcmNoLmh2bS5ndWVzdF9jcls0XSA9IG4xdm1jYi0+X2NyNDsKICAgICByYyA9IGh2bV9z ZXRfY3I0KG4xdm1jYi0+X2NyNCwgMSk7CiAgICAgaWYgKCByYyA9PSBYODZFTVVMX0VYQ0VQVElP TiApCiAgICAgICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZ3BfZmF1bHQsIDApOwpA QCAtMjkzLDI4ICsyOTMsMjggQEAgc3RhdGljIGludCBuc3ZtX3ZjcHVfaG9zdHJlc3RvcmUoc3Ry dWN0IHZjcHUgKnYsIHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgLyogQ1IwICov CiAgICAgbmVzdGVkc3ZtX2ZwdV92bWV4aXQobjF2bWNiLCBuMnZtY2IsCi0gICAgICAgIHN2bS0+ bnNfY3IwLCB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdKTsKLSAgICB2LT5hcmNoLmh2bV92 Y3B1Lmd1ZXN0X2NyWzBdID0gbjF2bWNiLT5fY3IwIHwgWDg2X0NSMF9QRTsKKyAgICAgICAgc3Zt LT5uc19jcjAsIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzBdKTsKKyAgICB2LT5hcmNoLmh2bS5ndWVz dF9jclswXSA9IG4xdm1jYi0+X2NyMCB8IFg4Nl9DUjBfUEU7CiAgICAgbjF2bWNiLT5yZmxhZ3Mg Jj0gflg4Nl9FRkxBR1NfVk07CiAgICAgcmMgPSBodm1fc2V0X2NyMChuMXZtY2ItPl9jcjAgfCBY ODZfQ1IwX1BFLCAxKTsKICAgICBpZiAoIHJjID09IFg4NkVNVUxfRVhDRVBUSU9OICkKICAgICAg ICAgaHZtX2luamVjdF9od19leGNlcHRpb24oVFJBUF9ncF9mYXVsdCwgMCk7CiAgICAgaWYgKHJj ICE9IFg4NkVNVUxfT0tBWSkKICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgImh2bV9zZXRf Y3IwIGZhaWxlZCwgcmM6ICV1XG4iLCByYyk7Ci0gICAgc3ZtLT5uc19jcjAgPSB2LT5hcmNoLmh2 bV92Y3B1Lmd1ZXN0X2NyWzBdOworICAgIHN2bS0+bnNfY3IwID0gdi0+YXJjaC5odm0uZ3Vlc3Rf Y3JbMF07CiAKICAgICAvKiBDUjIgKi8KLSAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzJd ID0gbjF2bWNiLT5fY3IyOworICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzJdID0gbjF2bWNiLT5f Y3IyOwogICAgIGh2bV91cGRhdGVfZ3Vlc3RfY3IodiwgMik7CiAKICAgICAvKiBDUjMgKi8KICAg ICAvKiBOZXN0ZWQgcGFnaW5nIG1vZGUgKi8KICAgICBpZiAobmVzdGVkaHZtX3BhZ2luZ19tb2Rl X2hhcCh2KSkgewogICAgICAgICAvKiBob3N0IG5lc3RlZCBwYWdpbmcgKyBndWVzdCBuZXN0ZWQg cGFnaW5nLiAqLwotICAgICAgICAvKiBodm1fc2V0X2NyMygpIGJlbG93IHNldHMgdi0+YXJjaC5o dm1fdmNwdS5ndWVzdF9jclszXSBmb3IgdXMuICovCisgICAgICAgIC8qIGh2bV9zZXRfY3IzKCkg YmVsb3cgc2V0cyB2LT5hcmNoLmh2bS5ndWVzdF9jclszXSBmb3IgdXMuICovCiAgICAgfSBlbHNl IGlmIChwYWdpbmdfbW9kZV9oYXAodi0+ZG9tYWluKSkgewogICAgICAgICAvKiBob3N0IG5lc3Rl ZCBwYWdpbmcgKyBndWVzdCBzaGFkb3cgcGFnaW5nLiAqLwotICAgICAgICAvKiBodm1fc2V0X2Ny MygpIGJlbG93IHNldHMgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclszXSBmb3IgdXMuICovCisg ICAgICAgIC8qIGh2bV9zZXRfY3IzKCkgYmVsb3cgc2V0cyB2LT5hcmNoLmh2bS5ndWVzdF9jclsz XSBmb3IgdXMuICovCiAgICAgfSBlbHNlIHsKICAgICAgICAgLyogaG9zdCBzaGFkb3cgcGFnaW5n ICsgZ3Vlc3Qgc2hhZG93IHBhZ2luZy4gKi8KIApAQCAtMzIyLDcgKzMyMiw3IEBAIHN0YXRpYyBp bnQgbnN2bV92Y3B1X2hvc3RyZXN0b3JlKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgY3B1X3VzZXJf cmVncyAqcmVncykKICAgICAgICAgaWYgKCFwYWdldGFibGVfaXNfbnVsbCh2LT5hcmNoLmd1ZXN0 X3RhYmxlKSkKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2V0YWJsZV9nZXRfcGFnZSh2LT5hcmNo Lmd1ZXN0X3RhYmxlKSk7CiAgICAgICAgIHYtPmFyY2guZ3Vlc3RfdGFibGUgPSBwYWdldGFibGVf bnVsbCgpOwotICAgICAgICAvKiBodm1fc2V0X2NyMygpIGJlbG93IHNldHMgdi0+YXJjaC5odm1f dmNwdS5ndWVzdF9jclszXSBmb3IgdXMuICovCisgICAgICAgIC8qIGh2bV9zZXRfY3IzKCkgYmVs b3cgc2V0cyB2LT5hcmNoLmh2bS5ndWVzdF9jclszXSBmb3IgdXMuICovCiAgICAgfQogICAgIHJj ID0gaHZtX3NldF9jcjMobjF2bWNiLT5fY3IzLCAxKTsKICAgICBpZiAoIHJjID09IFg4NkVNVUxf RVhDRVBUSU9OICkKQEAgLTU0OSw3ICs1NDksNyBAQCBzdGF0aWMgaW50IG5zdm1fdm1jYl9wcmVw YXJlNHZtcnVuKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAg ICB9CiAKICAgICAvKiBFRkVSICovCi0gICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyID0g bnNfdm1jYi0+X2VmZXI7CisgICAgdi0+YXJjaC5odm0uZ3Vlc3RfZWZlciA9IG5zX3ZtY2ItPl9l ZmVyOwogICAgIHJjID0gaHZtX3NldF9lZmVyKG5zX3ZtY2ItPl9lZmVyKTsKICAgICBpZiAoIHJj ID09IFg4NkVNVUxfRVhDRVBUSU9OICkKICAgICAgICAgaHZtX2luamVjdF9od19leGNlcHRpb24o VFJBUF9ncF9mYXVsdCwgMCk7CkBAIC01NTcsNyArNTU3LDcgQEAgc3RhdGljIGludCBuc3ZtX3Zt Y2JfcHJlcGFyZTR2bXJ1bihzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MpCiAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJodm1fc2V0X2VmZXIgZmFpbGVkLCBy YzogJXVcbiIsIHJjKTsKIAogICAgIC8qIENSNCAqLwotICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vl c3RfY3JbNF0gPSBuc192bWNiLT5fY3I0OworICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzRdID0g bnNfdm1jYi0+X2NyNDsKICAgICByYyA9IGh2bV9zZXRfY3I0KG5zX3ZtY2ItPl9jcjQsIDEpOwog ICAgIGlmICggcmMgPT0gWDg2RU1VTF9FWENFUFRJT04gKQogICAgICAgICBodm1faW5qZWN0X2h3 X2V4Y2VwdGlvbihUUkFQX2dwX2ZhdWx0LCAwKTsKQEAgLTU2NSw5ICs1NjUsOSBAQCBzdGF0aWMg aW50IG5zdm1fdm1jYl9wcmVwYXJlNHZtcnVuKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncykKICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgImh2bV9zZXRfY3I0 IGZhaWxlZCwgcmM6ICV1XG4iLCByYyk7CiAKICAgICAvKiBDUjAgKi8KLSAgICBzdm0tPm5zX2Ny MCA9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMF07CisgICAgc3ZtLT5uc19jcjAgPSB2LT5h cmNoLmh2bS5ndWVzdF9jclswXTsKICAgICBjcjAgPSBuZXN0ZWRzdm1fZnB1X3ZtZW50cnkoc3Zt LT5uc19jcjAsIG5zX3ZtY2IsIG4xdm1jYiwgbjJ2bWNiKTsKLSAgICB2LT5hcmNoLmh2bV92Y3B1 Lmd1ZXN0X2NyWzBdID0gbnNfdm1jYi0+X2NyMDsKKyAgICB2LT5hcmNoLmh2bS5ndWVzdF9jclsw XSA9IG5zX3ZtY2ItPl9jcjA7CiAgICAgcmMgPSBodm1fc2V0X2NyMChjcjAsIDEpOwogICAgIGlm ICggcmMgPT0gWDg2RU1VTF9FWENFUFRJT04gKQogICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2Vw dGlvbihUUkFQX2dwX2ZhdWx0LCAwKTsKQEAgLTU3NSw3ICs1NzUsNyBAQCBzdGF0aWMgaW50IG5z dm1fdm1jYl9wcmVwYXJlNHZtcnVuKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgImh2bV9zZXRfY3IwIGZhaWxl ZCwgcmM6ICV1XG4iLCByYyk7CiAKICAgICAvKiBDUjIgKi8KLSAgICB2LT5hcmNoLmh2bV92Y3B1 Lmd1ZXN0X2NyWzJdID0gbnNfdm1jYi0+X2NyMjsKKyAgICB2LT5hcmNoLmh2bS5ndWVzdF9jclsy XSA9IG5zX3ZtY2ItPl9jcjI7CiAgICAgaHZtX3VwZGF0ZV9ndWVzdF9jcih2LCAyKTsKIAogICAg IC8qIE5lc3RlZCBwYWdpbmcgbW9kZSAqLwpAQCAtNTg1LDcgKzU4NSw3IEBAIHN0YXRpYyBpbnQg bnN2bV92bWNiX3ByZXBhcmU0dm1ydW4oc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzKQogCiAgICAgICAgIG5lc3RlZHN2bV92bWNiX3NldF9uZXN0ZWRwMm0odiwgbnNf dm1jYiwgbjJ2bWNiKTsKIAotICAgICAgICAvKiBodm1fc2V0X2NyMygpIGJlbG93IHNldHMgdi0+ YXJjaC5odm1fdmNwdS5ndWVzdF9jclszXSBmb3IgdXMuICovCisgICAgICAgIC8qIGh2bV9zZXRf Y3IzKCkgYmVsb3cgc2V0cyB2LT5hcmNoLmh2bS5ndWVzdF9jclszXSBmb3IgdXMuICovCiAgICAg ICAgIHJjID0gaHZtX3NldF9jcjMobnNfdm1jYi0+X2NyMywgMSk7CiAgICAgICAgIGlmICggcmMg PT0gWDg2RU1VTF9FWENFUFRJT04gKQogICAgICAgICAgICAgaHZtX2luamVjdF9od19leGNlcHRp b24oVFJBUF9ncF9mYXVsdCwgMCk7CkBAIC01OTksNyArNTk5LDcgQEAgc3RhdGljIGludCBuc3Zt X3ZtY2JfcHJlcGFyZTR2bXJ1bihzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGNwdV91c2VyX3JlZ3Mg KnJlZ3MpCiAgICAgICAgIC8qIFdoZW4gbDEgZ3Vlc3QgZG9lcyBzaGFkb3cgcGFnaW5nCiAgICAg ICAgICAqIHdlIGFzc3VtZSBpdCBpbnRlcmNlcHRzIHBhZ2UgZmF1bHRzLgogICAgICAgICAgKi8K LSAgICAgICAgLyogaHZtX3NldF9jcjMoKSBiZWxvdyBzZXRzIHYtPmFyY2guaHZtX3ZjcHUuZ3Vl c3RfY3JbM10gZm9yIHVzLiAqLworICAgICAgICAvKiBodm1fc2V0X2NyMygpIGJlbG93IHNldHMg di0+YXJjaC5odm0uZ3Vlc3RfY3JbM10gZm9yIHVzLiAqLwogICAgICAgICByYyA9IGh2bV9zZXRf Y3IzKG5zX3ZtY2ItPl9jcjMsIDEpOwogICAgICAgICBpZiAoIHJjID09IFg4NkVNVUxfRVhDRVBU SU9OICkKICAgICAgICAgICAgIGh2bV9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZ3BfZmF1bHQs IDApOwpAQCAtMTI1OSw3ICsxMjU5LDcgQEAgZW51bSBodm1faW50YmxrIG5zdm1faW50cl9ibG9j a2VkKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAgKiBEZWxheSB0aGUgaW5qZWN0aW9uIGJlY2F1 c2UgdGhpcyB3b3VsZCByZXN1bHQgaW4gZGVsaXZlcmluZwogICAgICAgICAgKiBhbiBpbnRlcnJ1 cHQgKndpdGhpbiogdGhlIGV4ZWN1dGlvbiBvZiBhbiBpbnN0cnVjdGlvbi4KICAgICAgICAgICov Ci0gICAgICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS5odm1faW8uaW9fcmVxLnN0YXRlICE9IFNU QVRFX0lPUkVRX05PTkUgKQorICAgICAgICBpZiAoIHYtPmFyY2guaHZtLmh2bV9pby5pb19yZXEu c3RhdGUgIT0gU1RBVEVfSU9SRVFfTk9ORSApCiAgICAgICAgICAgICByZXR1cm4gaHZtX2ludGJs a19zaGFkb3c7CiAKICAgICAgICAgaWYgKCAhbnYtPm52X3ZtZXhpdF9wZW5kaW5nICYmIG4ydm1j Yi0+ZXhpdGludGluZm8uYnl0ZXMgIT0gMCApIHsKQEAgLTE2ODEsNyArMTY4MSw3IEBAIHZvaWQg c3ZtX25lc3RlZF9mZWF0dXJlc19vbl9lZmVyX3VwZGF0ZShzdHJ1Y3QgdmNwdSAqdikKICAgICAg KiBOZWVkIHN0YXRlIGZvciB0cmFuc2ZlcmluZyB0aGUgbmVzdGVkIGdpZiBzdGF0dXMgc28gb25s eSB3cml0ZSBvbgogICAgICAqIHRoZSBodm1fdmNwdSBFRkVSLlNWTUUgY2hhbmdpbmcuCiAgICAg ICovCi0gICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIgJiBFRkVSX1NWTUUgKQor ICAgIGlmICggdi0+YXJjaC5odm0uZ3Vlc3RfZWZlciAmIEVGRVJfU1ZNRSApCiAgICAgewogICAg ICAgICBpZiAoICF2bWNiLT52aXJ0X2V4dC5maWVsZHMudmxvYWRzYXZlX2VuYWJsZSAmJgogICAg ICAgICAgICAgIHBhZ2luZ19tb2RlX2hhcCh2LT5kb21haW4pICYmCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL3N2bS9zdm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCmluZGV4 IDJkNTIyNDcuLjkyYjI5YjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCkBAIC0xOTEsMTMgKzE5MSwxMyBAQCBz dGF0aWMgdm9pZCBzdm1fc2V0X2ljZWJwX2ludGVyY2VwdGlvbihzdHJ1Y3QgZG9tYWluICpkLCBi b29sIGVuYWJsZSkKIHN0YXRpYyB2b2lkIHN2bV9zYXZlX2RyKHN0cnVjdCB2Y3B1ICp2KQogewog ICAgIHN0cnVjdCB2bWNiX3N0cnVjdCAqdm1jYiA9IHYtPmFyY2guaHZtX3N2bS52bWNiOwotICAg IHVuc2lnbmVkIGludCBmbGFnX2RyX2RpcnR5ID0gdi0+YXJjaC5odm1fdmNwdS5mbGFnX2RyX2Rp cnR5OworICAgIHVuc2lnbmVkIGludCBmbGFnX2RyX2RpcnR5ID0gdi0+YXJjaC5odm0uZmxhZ19k cl9kaXJ0eTsKIAogICAgIGlmICggIWZsYWdfZHJfZGlydHkgKQogICAgICAgICByZXR1cm47CiAK ICAgICAvKiBDbGVhciB0aGUgRFIgZGlydHkgZmxhZyBhbmQgcmUtZW5hYmxlIGludGVyY2VwdHMg Zm9yIERSIGFjY2Vzc2VzLiAqLwotICAgIHYtPmFyY2guaHZtX3ZjcHUuZmxhZ19kcl9kaXJ0eSA9 IDA7CisgICAgdi0+YXJjaC5odm0uZmxhZ19kcl9kaXJ0eSA9IDA7CiAgICAgdm1jYl9zZXRfZHJf aW50ZXJjZXB0cyh2bWNiLCB+MHUpOwogCiAgICAgaWYgKCB2LT5kb21haW4tPmFyY2guY3B1aWQt PmV4dGQuZGJleHQgKQpAQCAtMjIzLDEwICsyMjMsMTAgQEAgc3RhdGljIHZvaWQgc3ZtX3NhdmVf ZHIoc3RydWN0IHZjcHUgKnYpCiAKIHN0YXRpYyB2b2lkIF9fcmVzdG9yZV9kZWJ1Z19yZWdpc3Rl cnMoc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNiLCBzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICBpZiAo IHYtPmFyY2guaHZtX3ZjcHUuZmxhZ19kcl9kaXJ0eSApCisgICAgaWYgKCB2LT5hcmNoLmh2bS5m bGFnX2RyX2RpcnR5ICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdi0+YXJjaC5odm1fdmNwdS5m bGFnX2RyX2RpcnR5ID0gMTsKKyAgICB2LT5hcmNoLmh2bS5mbGFnX2RyX2RpcnR5ID0gMTsKICAg ICB2bWNiX3NldF9kcl9pbnRlcmNlcHRzKHZtY2IsIDApOwogCiAgICAgQVNTRVJUKHYgPT0gY3Vy cmVudCk7CkBAIC0yNjksMTAgKzI2OSwxMCBAQCBzdGF0aWMgaW50IHN2bV92bWNiX3NhdmUoc3Ry dWN0IHZjcHUgKnYsIHN0cnVjdCBodm1faHdfY3B1ICpjKQogewogICAgIHN0cnVjdCB2bWNiX3N0 cnVjdCAqdm1jYiA9IHYtPmFyY2guaHZtX3N2bS52bWNiOwogCi0gICAgYy0+Y3IwID0gdi0+YXJj aC5odm1fdmNwdS5ndWVzdF9jclswXTsKLSAgICBjLT5jcjIgPSB2LT5hcmNoLmh2bV92Y3B1Lmd1 ZXN0X2NyWzJdOwotICAgIGMtPmNyMyA9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbM107Ci0g ICAgYy0+Y3I0ID0gdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0XTsKKyAgICBjLT5jcjAgPSB2 LT5hcmNoLmh2bS5ndWVzdF9jclswXTsKKyAgICBjLT5jcjIgPSB2LT5hcmNoLmh2bS5ndWVzdF9j clsyXTsKKyAgICBjLT5jcjMgPSB2LT5hcmNoLmh2bS5ndWVzdF9jclszXTsKKyAgICBjLT5jcjQg PSB2LT5hcmNoLmh2bS5ndWVzdF9jcls0XTsKIAogICAgIGMtPnN5c2VudGVyX2NzID0gdi0+YXJj aC5odm1fc3ZtLmd1ZXN0X3N5c2VudGVyX2NzOwogICAgIGMtPnN5c2VudGVyX2VzcCA9IHYtPmFy Y2guaHZtX3N2bS5ndWVzdF9zeXNlbnRlcl9lc3A7CkBAIC0zMzAsMTcgKzMzMCwxNyBAQCBzdGF0 aWMgaW50IHN2bV92bWNiX3Jlc3RvcmUoc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBodm1faHdfY3B1 ICpjKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCB2LT5hcmNoLmh2 bV92Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9QRyApCisgICAgICAgIGlmICggdi0+YXJjaC5o dm0uZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1BHICkKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2V0 YWJsZV9nZXRfcGFnZSh2LT5hcmNoLmd1ZXN0X3RhYmxlKSk7CiAKICAgICAgICAgdi0+YXJjaC5n dWVzdF90YWJsZSA9CiAgICAgICAgICAgICBwYWdlID8gcGFnZXRhYmxlX2Zyb21fcGFnZShwYWdl KSA6IHBhZ2V0YWJsZV9udWxsKCk7CiAgICAgfQogCi0gICAgdi0+YXJjaC5odm1fdmNwdS5ndWVz dF9jclswXSA9IGMtPmNyMCB8IFg4Nl9DUjBfRVQ7Ci0gICAgdi0+YXJjaC5odm1fdmNwdS5ndWVz dF9jclsyXSA9IGMtPmNyMjsKLSAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzNdID0gYy0+ Y3IzOwotICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0gPSBjLT5jcjQ7CisgICAgdi0+ YXJjaC5odm0uZ3Vlc3RfY3JbMF0gPSBjLT5jcjAgfCBYODZfQ1IwX0VUOworICAgIHYtPmFyY2gu aHZtLmd1ZXN0X2NyWzJdID0gYy0+Y3IyOworICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzNdID0g Yy0+Y3IzOworICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzRdID0gYy0+Y3I0OwogICAgIHN2bV91 cGRhdGVfZ3Vlc3RfY3IodiwgMCwgMCk7CiAgICAgc3ZtX3VwZGF0ZV9ndWVzdF9jcih2LCAyLCAw KTsKICAgICBzdm1fdXBkYXRlX2d1ZXN0X2NyKHYsIDQsIDApOwpAQCAtMzg0LDcgKzM4NCw3IEBA IHN0YXRpYyB2b2lkIHN2bV9zYXZlX2NwdV9zdGF0ZShzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGh2 bV9od19jcHUgKmRhdGEpCiAgICAgZGF0YS0+bXNyX3N0YXIgICAgICAgICA9IHZtY2ItPnN0YXI7 CiAgICAgZGF0YS0+bXNyX2NzdGFyICAgICAgICA9IHZtY2ItPmNzdGFyOwogICAgIGRhdGEtPm1z cl9zeXNjYWxsX21hc2sgPSB2bWNiLT5zZm1hc2s7Ci0gICAgZGF0YS0+bXNyX2VmZXIgICAgICAg ICA9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlcjsKKyAgICBkYXRhLT5tc3JfZWZlciAgICAg ICAgID0gdi0+YXJjaC5odm0uZ3Vlc3RfZWZlcjsKICAgICBkYXRhLT5tc3JfZmxhZ3MgICAgICAg ID0gMDsKIH0KIApAQCAtMzk4LDcgKzM5OCw3IEBAIHN0YXRpYyB2b2lkIHN2bV9sb2FkX2NwdV9z dGF0ZShzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGh2bV9od19jcHUgKmRhdGEpCiAgICAgdm1jYi0+ c3RhciAgICAgICA9IGRhdGEtPm1zcl9zdGFyOwogICAgIHZtY2ItPmNzdGFyICAgICAgPSBkYXRh LT5tc3JfY3N0YXI7CiAgICAgdm1jYi0+c2ZtYXNrICAgICA9IGRhdGEtPm1zcl9zeXNjYWxsX21h c2s7Ci0gICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyID0gZGF0YS0+bXNyX2VmZXI7Cisg ICAgdi0+YXJjaC5odm0uZ3Vlc3RfZWZlciA9IGRhdGEtPm1zcl9lZmVyOwogICAgIHN2bV91cGRh dGVfZ3Vlc3RfZWZlcih2KTsKIH0KIApAQCAtNTA5LDcgKzUwOSw3IEBAIHN0YXRpYyB2b2lkIHN2 bV9mcHVfbGVhdmUoc3RydWN0IHZjcHUgKnYpCiAgICAgICogdGhlbiB0aGlzIGlzIG5vdCBuZWNl c3Nhcnk6IG5vIEZQVSBhY3Rpdml0eSBjYW4gb2NjdXIgdW50aWwgdGhlIGd1ZXN0IAogICAgICAq IGNsZWFycyBDUjAuVFMsIGFuZCB3ZSB3aWxsIGluaXRpYWxpc2UgdGhlIEZQVSB3aGVuIHRoYXQg aGFwcGVucy4KICAgICAgKi8KLSAgICBpZiAoICEodi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclsw XSAmIFg4Nl9DUjBfVFMpICkKKyAgICBpZiAoICEodi0+YXJjaC5odm0uZ3Vlc3RfY3JbMF0gJiBY ODZfQ1IwX1RTKSApCiAgICAgewogICAgICAgICB2bWNiX3NldF9leGNlcHRpb25faW50ZXJjZXB0 cygKICAgICAgICAgICAgIG4xdm1jYiwKQEAgLTU1MCw3ICs1NTAsNyBAQCBzdGF0aWMgaW50IHN2 bV9ndWVzdF94ODZfbW9kZShzdHJ1Y3QgdmNwdSAqdikKIHsKICAgICBzdHJ1Y3Qgdm1jYl9zdHJ1 Y3QgKnZtY2IgPSB2LT5hcmNoLmh2bV9zdm0udm1jYjsKIAotICAgIGlmICggdW5saWtlbHkoISh2 LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9QRSkpICkKKyAgICBpZiAoIHVu bGlrZWx5KCEodi0+YXJjaC5odm0uZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1BFKSkgKQogICAgICAg ICByZXR1cm4gMDsKICAgICBpZiAoIHVubGlrZWx5KGd1ZXN0X2NwdV91c2VyX3JlZ3MoKS0+ZWZs YWdzICYgWDg2X0VGTEFHU19WTSkgKQogICAgICAgICByZXR1cm4gMTsKQEAgLTU2OSw3ICs1Njks NyBAQCB2b2lkIHN2bV91cGRhdGVfZ3Vlc3RfY3Ioc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGlu dCBjciwgdW5zaWduZWQgaW50IGZsYWdzKQogICAgIGNhc2UgMDogewogICAgICAgICB1bnNpZ25l ZCBsb25nIGh3X2NyMF9tYXNrID0gMDsKIAotICAgICAgICBpZiAoICEodi0+YXJjaC5odm1fdmNw dS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfVFMpICkKKyAgICAgICAgaWYgKCAhKHYtPmFyY2guaHZt Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9UUykgKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo IHYgIT0gY3VycmVudCApCiAgICAgICAgICAgICB7CkBAIC01OTAsMTcgKzU5MCwxNyBAQCB2b2lk IHN2bV91cGRhdGVfZ3Vlc3RfY3Ioc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjciwgdW5z aWduZWQgaW50IGZsYWdzKQogICAgICAgICAgICAgICAgdm1jYl9zZXRfY3JfaW50ZXJjZXB0cyh2 bWNiLCBpbnRlcmNlcHRzIHwgQ1JfSU5URVJDRVBUX0NSM19XUklURSk7CiAgICAgICAgIH0KIAot ICAgICAgICB2YWx1ZSA9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMF0gfCBod19jcjBfbWFz azsKKyAgICAgICAgdmFsdWUgPSB2LT5hcmNoLmh2bS5ndWVzdF9jclswXSB8IGh3X2NyMF9tYXNr OwogICAgICAgICBpZiAoICFwYWdpbmdfbW9kZV9oYXAodi0+ZG9tYWluKSApCiAgICAgICAgICAg ICB2YWx1ZSB8PSBYODZfQ1IwX1BHIHwgWDg2X0NSMF9XUDsKICAgICAgICAgdm1jYl9zZXRfY3Iw KHZtY2IsIHZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgMjoKLSAgICAg ICAgdm1jYl9zZXRfY3IyKHZtY2IsIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMl0pOworICAg ICAgICB2bWNiX3NldF9jcjIodm1jYiwgdi0+YXJjaC5odm0uZ3Vlc3RfY3JbMl0pOwogICAgICAg ICBicmVhazsKICAgICBjYXNlIDM6Ci0gICAgICAgIHZtY2Jfc2V0X2NyMyh2bWNiLCB2LT5hcmNo Lmh2bV92Y3B1Lmh3X2NyWzNdKTsKKyAgICAgICAgdm1jYl9zZXRfY3IzKHZtY2IsIHYtPmFyY2gu aHZtLmh3X2NyWzNdKTsKICAgICAgICAgaWYgKCAhbmVzdGVkaHZtX2VuYWJsZWQodi0+ZG9tYWlu KSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggIShmbGFncyAmIEhWTV9VUERBVEVfR1VF U1RfQ1IzX05PRkxVU0gpICkKQEAgLTYxMSwxMyArNjExLDEzIEBAIHZvaWQgc3ZtX3VwZGF0ZV9n dWVzdF9jcihzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGNyLCB1bnNpZ25lZCBpbnQgZmxh Z3MpCiAgICAgICAgIGVsc2UgaWYgKCAhKGZsYWdzICYgSFZNX1VQREFURV9HVUVTVF9DUjNfTk9G TFVTSCkgKQogICAgICAgICAgICAgaHZtX2FzaWRfZmx1c2hfdmNwdV9hc2lkKAogICAgICAgICAg ICAgICAgIG5lc3RlZGh2bV92Y3B1X2luX2d1ZXN0bW9kZSh2KQotICAgICAgICAgICAgICAgID8g JnZjcHVfbmVzdGVkaHZtKHYpLm52X24yYXNpZCA6ICZ2LT5hcmNoLmh2bV92Y3B1Lm4xYXNpZCk7 CisgICAgICAgICAgICAgICAgPyAmdmNwdV9uZXN0ZWRodm0odikubnZfbjJhc2lkIDogJnYtPmFy Y2guaHZtLm4xYXNpZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgNDoKICAgICAgICAgdmFs dWUgPSBIVk1fQ1I0X0hPU1RfTUFTSzsKICAgICAgICAgaWYgKCBwYWdpbmdfbW9kZV9oYXAodi0+ ZG9tYWluKSApCiAgICAgICAgICAgICB2YWx1ZSAmPSB+WDg2X0NSNF9QQUU7Ci0gICAgICAgIHZh bHVlIHw9IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF07CisgICAgICAgIHZhbHVlIHw9IHYt PmFyY2guaHZtLmd1ZXN0X2NyWzRdOwogCiAgICAgICAgIGlmICggIWh2bV9wYWdpbmdfZW5hYmxl ZCh2KSApCiAgICAgICAgIHsKQEAgLTY0NiwxNiArNjQ2LDE2IEBAIHZvaWQgc3ZtX3VwZGF0ZV9n dWVzdF9jcihzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGNyLCB1bnNpZ25lZCBpbnQgZmxh Z3MpCiBzdGF0aWMgdm9pZCBzdm1fdXBkYXRlX2d1ZXN0X2VmZXIoc3RydWN0IHZjcHUgKnYpCiB7 CiAgICAgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNiID0gdi0+YXJjaC5odm1fc3ZtLnZtY2I7Ci0g ICAgYm9vbF90IGxtYSA9ICEhKHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlciAmIEVGRVJfTE1B KTsKKyAgICBib29sX3QgbG1hID0gISEodi0+YXJjaC5odm0uZ3Vlc3RfZWZlciAmIEVGRVJfTE1B KTsKICAgICB1aW50NjRfdCBuZXdfZWZlcjsKIAotICAgIG5ld19lZmVyID0gKHYtPmFyY2guaHZt X3ZjcHUuZ3Vlc3RfZWZlciB8IEVGRVJfU1ZNRSkgJiB+RUZFUl9MTUU7CisgICAgbmV3X2VmZXIg PSAodi0+YXJjaC5odm0uZ3Vlc3RfZWZlciB8IEVGRVJfU1ZNRSkgJiB+RUZFUl9MTUU7CiAgICAg aWYgKCBsbWEgKQogICAgICAgICBuZXdfZWZlciB8PSBFRkVSX0xNRTsKICAgICB2bWNiX3NldF9l ZmVyKHZtY2IsIG5ld19lZmVyKTsKIAogICAgIEFTU0VSVChuZXN0ZWRodm1fZW5hYmxlZCh2LT5k b21haW4pIHx8Ci0gICAgICAgICAgICEodi0+YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyICYgRUZF Ul9TVk1FKSk7CisgICAgICAgICAgICEodi0+YXJjaC5odm0uZ3Vlc3RfZWZlciAmIEVGRVJfU1ZN RSkpOwogCiAgICAgaWYgKCBuZXN0ZWRodm1fZW5hYmxlZCh2LT5kb21haW4pICkKICAgICAgICAg c3ZtX25lc3RlZF9mZWF0dXJlc19vbl9lZmVyX3VwZGF0ZSh2KTsKQEAgLTExNDAsMTEgKzExNDAs MTEgQEAgc3RhdGljIHZvaWQgbm9yZXR1cm4gc3ZtX2RvX3Jlc3VtZShzdHJ1Y3QgdmNwdSAqdikK ICAgICAgICAgdmNwdV9ndWVzdG1vZGUgPSAxOwogCiAgICAgaWYgKCAhdmNwdV9ndWVzdG1vZGUg JiYKLSAgICAgICAgdW5saWtlbHkodi0+YXJjaC5odm1fdmNwdS5kZWJ1Z19zdGF0ZV9sYXRjaCAh PSBkZWJ1Z19zdGF0ZSkgKQorICAgICAgICB1bmxpa2VseSh2LT5hcmNoLmh2bS5kZWJ1Z19zdGF0 ZV9sYXRjaCAhPSBkZWJ1Z19zdGF0ZSkgKQogICAgIHsKICAgICAgICAgdWludDMyX3QgaW50ZXJj ZXB0cyA9IHZtY2JfZ2V0X2V4Y2VwdGlvbl9pbnRlcmNlcHRzKHZtY2IpOwogCi0gICAgICAgIHYt PmFyY2guaHZtX3ZjcHUuZGVidWdfc3RhdGVfbGF0Y2ggPSBkZWJ1Z19zdGF0ZTsKKyAgICAgICAg di0+YXJjaC5odm0uZGVidWdfc3RhdGVfbGF0Y2ggPSBkZWJ1Z19zdGF0ZTsKICAgICAgICAgdm1j Yl9zZXRfZXhjZXB0aW9uX2ludGVyY2VwdHMoCiAgICAgICAgICAgICB2bWNiLCBkZWJ1Z19zdGF0 ZSA/IChpbnRlcmNlcHRzIHwgKDFVIDw8IFRSQVBfaW50MykpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA6IChpbnRlcmNlcHRzICYgfigxVSA8PCBUUkFQX2ludDMpKSk7CkBAIC0xNDU4 LDcgKzE0NTgsNyBAQCBzdGF0aWMgdm9pZCBzdm1faW5qZWN0X2V2ZW50KGNvbnN0IHN0cnVjdCB4 ODZfZXZlbnQgKmV2ZW50KQogCiAgICAgY2FzZSBUUkFQX3BhZ2VfZmF1bHQ6CiAgICAgICAgIEFT U0VSVChfZXZlbnQudHlwZSA9PSBYODZfRVZFTlRUWVBFX0hXX0VYQ0VQVElPTik7Ci0gICAgICAg IGN1cnItPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMl0gPSBfZXZlbnQuY3IyOworICAgICAgICBj dXJyLT5hcmNoLmh2bS5ndWVzdF9jclsyXSA9IF9ldmVudC5jcjI7CiAgICAgICAgIHZtY2Jfc2V0 X2NyMih2bWNiLCBfZXZlbnQuY3IyKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMTgwMCwx NCArMTgwMCwxNCBAQCBzdGF0aWMgdm9pZCBzdm1fZnB1X2RpcnR5X2ludGVyY2VwdCh2b2lkKQog ICAgIGlmICggdm1jYiAhPSBuMXZtY2IgKQogICAgIHsKICAgICAgICAvKiBDaGVjayBpZiBsMSBn dWVzdCBtdXN0IG1ha2UgRlBVIHJlYWR5IGZvciB0aGUgbDIgZ3Vlc3QgKi8KLSAgICAgICBpZiAo IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1RTICkKKyAgICAgICBpZiAo IHYtPmFyY2guaHZtLmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9UUyApCiAgICAgICAgICAgIGh2bV9p bmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfbm9fZGV2aWNlLCBYODZfRVZFTlRfTk9fRUMpOwogICAg ICAgIGVsc2UKICAgICAgICAgICAgdm1jYl9zZXRfY3IwKG4xdm1jYiwgdm1jYl9nZXRfY3IwKG4x dm1jYikgJiB+WDg2X0NSMF9UUyk7CiAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICgg ISh2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9UUykgKQorICAgIGlmICgg ISh2LT5hcmNoLmh2bS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfVFMpICkKICAgICAgICAgdm1jYl9z ZXRfY3IwKHZtY2IsIHZtY2JfZ2V0X2NyMCh2bWNiKSAmIH5YODZfQ1IwX1RTKTsKIH0KIApAQCAt MjQ5Miw3ICsyNDkyLDcgQEAgc3RhdGljIHZvaWQgc3ZtX2ludmxwZ2FfaW50ZXJjZXB0KAogewog ICAgIHN2bV9pbnZscGdhKHZhZGRyLAogICAgICAgICAgICAgICAgIChhc2lkID09IDApCi0gICAg ICAgICAgICAgICAgPyB2LT5hcmNoLmh2bV92Y3B1Lm4xYXNpZC5hc2lkCisgICAgICAgICAgICAg ICAgPyB2LT5hcmNoLmh2bS5uMWFzaWQuYXNpZAogICAgICAgICAgICAgICAgIDogdmNwdV9uZXN0 ZWRodm0odikubnZfbjJhc2lkLmFzaWQpOwogfQogCkBAIC0yNjA5LDggKzI2MDksNyBAQCB2b2lk IHN2bV92bWV4aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICBodm1f aW52YWxpZGF0ZV9yZWdzX2ZpZWxkcyhyZWdzKTsKIAogICAgIGlmICggcGFnaW5nX21vZGVfaGFw KHYtPmRvbWFpbikgKQotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzNdID0gdi0+ YXJjaC5odm1fdmNwdS5od19jclszXSA9Ci0gICAgICAgICAgICB2bWNiX2dldF9jcjModm1jYik7 CisgICAgICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzNdID0gdi0+YXJjaC5odm0uaHdfY3JbM10g PSB2bWNiX2dldF9jcjModm1jYik7CiAKICAgICBpZiAoIG5lc3RlZGh2bV9lbmFibGVkKHYtPmRv bWFpbikgJiYgbmVzdGVkaHZtX3ZjcHVfaW5fZ3Vlc3Rtb2RlKHYpICkKICAgICAgICAgdmNwdV9n dWVzdG1vZGUgPSAxOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vdm1jYi5jIGIv eGVuL2FyY2gveDg2L2h2bS9zdm0vdm1jYi5jCmluZGV4IGQzMWZjZmEuLjM3NzZjNTMgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3ZtY2IuYworKysgYi94ZW4vYXJjaC94ODYvaHZt L3N2bS92bWNiLmMKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgaW50IGNvbnN0cnVjdF92bWNi KHN0cnVjdCB2Y3B1ICp2KQogICAgIH0KIAogICAgIC8qIEd1ZXN0IEVGRVIuICovCi0gICAgdi0+ YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyID0gMDsKKyAgICB2LT5hcmNoLmh2bS5ndWVzdF9lZmVy ID0gMDsKICAgICBodm1fdXBkYXRlX2d1ZXN0X2VmZXIodik7CiAKICAgICAvKiBHdWVzdCBzZWdt ZW50IGxpbWl0cy4gKi8KQEAgLTE3MSwxMCArMTcxLDEwIEBAIHN0YXRpYyBpbnQgY29uc3RydWN0 X3ZtY2Ioc3RydWN0IHZjcHUgKnYpCiAgICAgdm1jYi0+dHIuYmFzZSA9IDA7CiAgICAgdm1jYi0+ dHIubGltaXQgPSAweGZmOwogCi0gICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclswXSA9IFg4 Nl9DUjBfUEUgfCBYODZfQ1IwX0VUOworICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzBdID0gWDg2 X0NSMF9QRSB8IFg4Nl9DUjBfRVQ7CiAgICAgaHZtX3VwZGF0ZV9ndWVzdF9jcih2LCAwKTsKIAot ICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0gPSAwOworICAgIHYtPmFyY2guaHZtLmd1 ZXN0X2NyWzRdID0gMDsKICAgICBodm1fdXBkYXRlX2d1ZXN0X2NyKHYsIDQpOwogCiAgICAgcGFn aW5nX3VwZGF0ZV9wYWdpbmdfbW9kZXModik7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZt L3ZpcmlkaWFuLmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMKaW5kZXggNWRkYjQxYi4u ZTg0YzRmNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi5jCisrKyBiL3hl bi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwpAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyB2b2lk IGR1bXBfdnBfYXNzaXN0KGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQogewogICAgIGNvbnN0IHVuaW9u IHZpcmlkaWFuX3ZwX2Fzc2lzdCAqdmE7CiAKLSAgICB2YSA9ICZ2LT5hcmNoLmh2bV92Y3B1LnZp cmlkaWFuLnZwX2Fzc2lzdC5tc3I7CisgICAgdmEgPSAmdi0+YXJjaC5odm0udmlyaWRpYW4udnBf YXNzaXN0Lm1zcjsKIAogICAgIHByaW50ayhYRU5MT0dfR19JTkZPICIlcHY6IFZJUklESUFOIFZQ X0FTU0lTVF9QQUdFOiBlbmFibGVkOiAleCBwZm46ICVseFxuIiwKICAgICAgICAgICAgdiwgdmEt PmZpZWxkcy5lbmFibGVkLCAodW5zaWduZWQgbG9uZyl2YS0+ZmllbGRzLnBmbik7CkBAIC0zODAs MTEgKzM4MCwxMSBAQCBzdGF0aWMgdm9pZCBlbmFibGVfaHlwZXJjYWxsX3BhZ2Uoc3RydWN0IGRv bWFpbiAqZCkKIHN0YXRpYyB2b2lkIGluaXRpYWxpemVfdnBfYXNzaXN0KHN0cnVjdCB2Y3B1ICp2 KQogewogICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47Ci0gICAgdW5zaWduZWQgbG9u ZyBnbWZuID0gdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QubXNyLmZpZWxkcy5w Zm47CisgICAgdW5zaWduZWQgbG9uZyBnbWZuID0gdi0+YXJjaC5odm0udmlyaWRpYW4udnBfYXNz aXN0Lm1zci5maWVsZHMucGZuOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBnZXRfcGFn ZV9mcm9tX2dmbihkLCBnbWZuLCBOVUxMLCBQMk1fQUxMT0MpOwogICAgIHZvaWQgKnZhOwogCi0g ICAgQVNTRVJUKCF2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC52YSk7CisgICAg QVNTRVJUKCF2LT5hcmNoLmh2bS52aXJpZGlhbi52cF9hc3Npc3QudmEpOwogCiAgICAgLyoKICAg ICAgKiBTZWUgc2VjdGlvbiA3LjguNyBvZiB0aGUgc3BlY2lmaWNhdGlvbiBmb3IgZGV0YWlscyBv ZiB0aGlzCkBAIC00MDksNyArNDA5LDcgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZV92cF9hc3Np c3Qoc3RydWN0IHZjcHUgKnYpCiAKICAgICBjbGVhcl9wYWdlKHZhKTsKIAotICAgIHYtPmFyY2gu aHZtX3ZjcHUudmlyaWRpYW4udnBfYXNzaXN0LnZhID0gdmE7CisgICAgdi0+YXJjaC5odm0udmly aWRpYW4udnBfYXNzaXN0LnZhID0gdmE7CiAgICAgcmV0dXJuOwogCiAgZmFpbDoKQEAgLTQxOSwx MyArNDE5LDEzIEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVfdnBfYXNzaXN0KHN0cnVjdCB2Y3B1 ICp2KQogCiBzdGF0aWMgdm9pZCB0ZWFyZG93bl92cF9hc3Npc3Qoc3RydWN0IHZjcHUgKnYpCiB7 Ci0gICAgdm9pZCAqdmEgPSB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC52YTsK KyAgICB2b2lkICp2YSA9IHYtPmFyY2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC52YTsKICAgICBz dHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwogCiAgICAgaWYgKCAhdmEgKQogICAgICAgICByZXR1cm47 CiAKLSAgICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC52YSA9IE5VTEw7Cisg ICAgdi0+YXJjaC5odm0udmlyaWRpYW4udnBfYXNzaXN0LnZhID0gTlVMTDsKIAogICAgIHBhZ2Ug PSBtZm5fdG9fcGFnZShkb21haW5fcGFnZV9tYXBfdG9fbWZuKHZhKSk7CiAKQEAgLTQzNSw3ICs0 MzUsNyBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl92cF9hc3Npc3Qoc3RydWN0IHZjcHUgKnYpCiAK IHZvaWQgdmlyaWRpYW5fYXBpY19hc3Npc3Rfc2V0KHN0cnVjdCB2Y3B1ICp2KQogewotICAgIHVp bnQzMl90ICp2YSA9IHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4udnBfYXNzaXN0LnZhOworICAg IHVpbnQzMl90ICp2YSA9IHYtPmFyY2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC52YTsKIAogICAg IGlmICggIXZhICkKICAgICAgICAgcmV0dXJuOwpAQCAtNDQ1LDI1ICs0NDUsMjUgQEAgdm9pZCB2 aXJpZGlhbl9hcGljX2Fzc2lzdF9zZXQoc3RydWN0IHZjcHUgKnYpCiAgICAgICogd3JvbmcgYW5k IHRoZSBWTSB3aWxsIG1vc3QgbGlrZWx5IGhhbmcgc28gZm9yY2UgYSBjcmFzaCBub3cKICAgICAg KiB0byBtYWtlIHRoZSBwcm9ibGVtIGNsZWFyLgogICAgICAqLwotICAgIGlmICggdi0+YXJjaC5o dm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QucGVuZGluZyApCisgICAgaWYgKCB2LT5hcmNoLmh2 bS52aXJpZGlhbi52cF9hc3Npc3QucGVuZGluZyApCiAgICAgICAgIGRvbWFpbl9jcmFzaCh2LT5k b21haW4pOwogCi0gICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QucGVuZGlu ZyA9IHRydWU7CisgICAgdi0+YXJjaC5odm0udmlyaWRpYW4udnBfYXNzaXN0LnBlbmRpbmcgPSB0 cnVlOwogICAgICp2YSB8PSAxdTsKIH0KIAogYm9vbCB2aXJpZGlhbl9hcGljX2Fzc2lzdF9jb21w bGV0ZWQoc3RydWN0IHZjcHUgKnYpCiB7Ci0gICAgdWludDMyX3QgKnZhID0gdi0+YXJjaC5odm1f dmNwdS52aXJpZGlhbi52cF9hc3Npc3QudmE7CisgICAgdWludDMyX3QgKnZhID0gdi0+YXJjaC5o dm0udmlyaWRpYW4udnBfYXNzaXN0LnZhOwogCiAgICAgaWYgKCAhdmEgKQogICAgICAgICByZXR1 cm4gZmFsc2U7CiAKLSAgICBpZiAoIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4udnBfYXNzaXN0 LnBlbmRpbmcgJiYKKyAgICBpZiAoIHYtPmFyY2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC5wZW5k aW5nICYmCiAgICAgICAgICAhKCp2YSAmIDF1KSApCiAgICAgewogICAgICAgICAvKiBBbiBFT0kg aGFzIGJlZW4gYXZvaWRlZCAqLwotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZw X2Fzc2lzdC5wZW5kaW5nID0gZmFsc2U7CisgICAgICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLnZw X2Fzc2lzdC5wZW5kaW5nID0gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApA QCAtNDcyLDEzICs0NzIsMTMgQEAgYm9vbCB2aXJpZGlhbl9hcGljX2Fzc2lzdF9jb21wbGV0ZWQo c3RydWN0IHZjcHUgKnYpCiAKIHZvaWQgdmlyaWRpYW5fYXBpY19hc3Npc3RfY2xlYXIoc3RydWN0 IHZjcHUgKnYpCiB7Ci0gICAgdWludDMyX3QgKnZhID0gdi0+YXJjaC5odm1fdmNwdS52aXJpZGlh bi52cF9hc3Npc3QudmE7CisgICAgdWludDMyX3QgKnZhID0gdi0+YXJjaC5odm0udmlyaWRpYW4u dnBfYXNzaXN0LnZhOwogCiAgICAgaWYgKCAhdmEgKQogICAgICAgICByZXR1cm47CiAKICAgICAq dmEgJj0gfjF1OwotICAgIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4udnBfYXNzaXN0LnBlbmRp bmcgPSBmYWxzZTsKKyAgICB2LT5hcmNoLmh2bS52aXJpZGlhbi52cF9hc3Npc3QucGVuZGluZyA9 IGZhbHNlOwogfQogCiBzdGF0aWMgdm9pZCB1cGRhdGVfcmVmZXJlbmNlX3RzYyhzdHJ1Y3QgZG9t YWluICpkLCBib29sX3QgaW5pdGlhbGl6ZSkKQEAgLTYwNyw5ICs2MDcsOSBAQCBpbnQgd3Jtc3Jf dmlyaWRpYW5fcmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2NF90IHZhbCkKICAgICBjYXNlIEhWX1g2 NF9NU1JfVlBfQVNTSVNUX1BBR0U6CiAgICAgICAgIHBlcmZjX2luY3IobXNodl93cm1zcl9hcGlj X21zcik7CiAgICAgICAgIHRlYXJkb3duX3ZwX2Fzc2lzdCh2KTsgLyogcmVsZWFzZSBhbnkgcHJl dmlvdXMgbWFwcGluZyAqLwotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fz c2lzdC5tc3IucmF3ID0gdmFsOworICAgICAgICB2LT5hcmNoLmh2bS52aXJpZGlhbi52cF9hc3Np c3QubXNyLnJhdyA9IHZhbDsKICAgICAgICAgZHVtcF92cF9hc3Npc3Qodik7Ci0gICAgICAgIGlm ICggdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QubXNyLmZpZWxkcy5lbmFibGVk ICkKKyAgICAgICAgaWYgKCB2LT5hcmNoLmh2bS52aXJpZGlhbi52cF9hc3Npc3QubXNyLmZpZWxk cy5lbmFibGVkICkKICAgICAgICAgICAgIGluaXRpYWxpemVfdnBfYXNzaXN0KHYpOwogICAgICAg ICBicmVhazsKIApAQCAtNjMwLDEwICs2MzAsMTAgQEAgaW50IHdybXNyX3ZpcmlkaWFuX3JlZ3Mo dWludDMyX3QgaWR4LCB1aW50NjRfdCB2YWwpCiAgICAgY2FzZSBIVl9YNjRfTVNSX0NSQVNIX1Az OgogICAgIGNhc2UgSFZfWDY0X01TUl9DUkFTSF9QNDoKICAgICAgICAgQlVJTERfQlVHX09OKEhW X1g2NF9NU1JfQ1JBU0hfUDQgLSBIVl9YNjRfTVNSX0NSQVNIX1AwID49Ci0gICAgICAgICAgICAg ICAgICAgICBBUlJBWV9TSVpFKHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4uY3Jhc2hfcGFyYW0p KTsKKyAgICAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUodi0+YXJjaC5odm0udmlyaWRpYW4u Y3Jhc2hfcGFyYW0pKTsKIAogICAgICAgICBpZHggLT0gSFZfWDY0X01TUl9DUkFTSF9QMDsKLSAg ICAgICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5jcmFzaF9wYXJhbVtpZHhdID0gdmFsOwor ICAgICAgICB2LT5hcmNoLmh2bS52aXJpZGlhbi5jcmFzaF9wYXJhbVtpZHhdID0gdmFsOwogICAg ICAgICBicmVhazsKIAogICAgIGNhc2UgSFZfWDY0X01TUl9DUkFTSF9DVEw6CkBAIC02NDYsMTEg KzY0NiwxMSBAQCBpbnQgd3Jtc3JfdmlyaWRpYW5fcmVncyh1aW50MzJfdCBpZHgsIHVpbnQ2NF90 IHZhbCkKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGdwcmludGsoWEVOTE9HX1dBUk5J TkcsICJWSVJJRElBTiBDUkFTSDogJWx4ICVseCAlbHggJWx4ICVseFxuIiwKLSAgICAgICAgICAg ICAgICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmNyYXNoX3BhcmFtWzBdLAotICAgICAgICAg ICAgICAgIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4uY3Jhc2hfcGFyYW1bMV0sCi0gICAgICAg ICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi5jcmFzaF9wYXJhbVsyXSwKLSAgICAg ICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmNyYXNoX3BhcmFtWzNdLAotICAg ICAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUudmlyaWRpYW4uY3Jhc2hfcGFyYW1bNF0pOwor ICAgICAgICAgICAgICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLmNyYXNoX3BhcmFtWzBdLAorICAg ICAgICAgICAgICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLmNyYXNoX3BhcmFtWzFdLAorICAgICAg ICAgICAgICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLmNyYXNoX3BhcmFtWzJdLAorICAgICAgICAg ICAgICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLmNyYXNoX3BhcmFtWzNdLAorICAgICAgICAgICAg ICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLmNyYXNoX3BhcmFtWzRdKTsKICAgICAgICAgYnJlYWs7 CiAgICAgfQogCkBAIC03NTIsNyArNzUyLDcgQEAgaW50IHJkbXNyX3ZpcmlkaWFuX3JlZ3ModWlu dDMyX3QgaWR4LCB1aW50NjRfdCAqdmFsKQogCiAgICAgY2FzZSBIVl9YNjRfTVNSX1ZQX0FTU0lT VF9QQUdFOgogICAgICAgICBwZXJmY19pbmNyKG1zaHZfcmRtc3JfYXBpY19tc3IpOwotICAgICAg ICAqdmFsID0gdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QubXNyLnJhdzsKKyAg ICAgICAgKnZhbCA9IHYtPmFyY2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC5tc3IucmF3OwogICAg ICAgICBicmVhazsKIAogICAgIGNhc2UgSFZfWDY0X01TUl9SRUZFUkVOQ0VfVFNDOgpAQCAtNzg3 LDEwICs3ODcsMTAgQEAgaW50IHJkbXNyX3ZpcmlkaWFuX3JlZ3ModWludDMyX3QgaWR4LCB1aW50 NjRfdCAqdmFsKQogICAgIGNhc2UgSFZfWDY0X01TUl9DUkFTSF9QMzoKICAgICBjYXNlIEhWX1g2 NF9NU1JfQ1JBU0hfUDQ6CiAgICAgICAgIEJVSUxEX0JVR19PTihIVl9YNjRfTVNSX0NSQVNIX1A0 IC0gSFZfWDY0X01TUl9DUkFTSF9QMCA+PQotICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0la RSh2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLmNyYXNoX3BhcmFtKSk7CisgICAgICAgICAgICAg ICAgICAgICBBUlJBWV9TSVpFKHYtPmFyY2guaHZtLnZpcmlkaWFuLmNyYXNoX3BhcmFtKSk7CiAK ICAgICAgICAgaWR4IC09IEhWX1g2NF9NU1JfQ1JBU0hfUDA7Ci0gICAgICAgICp2YWwgPSB2LT5h cmNoLmh2bV92Y3B1LnZpcmlkaWFuLmNyYXNoX3BhcmFtW2lkeF07CisgICAgICAgICp2YWwgPSB2 LT5hcmNoLmh2bS52aXJpZGlhbi5jcmFzaF9wYXJhbVtpZHhdOwogICAgICAgICBicmVhazsKIAog ICAgIGNhc2UgSFZfWDY0X01TUl9DUkFTSF9DVEw6CkBAIC0xMDM1LDggKzEwMzUsOCBAQCBzdGF0 aWMgaW50IHZpcmlkaWFuX3NhdmVfdmNwdV9jdHh0KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21h aW5fY29udGV4dF90ICpoKQogCiAgICAgZm9yX2VhY2hfdmNwdSggZCwgdiApIHsKICAgICAgICAg c3RydWN0IGh2bV92aXJpZGlhbl92Y3B1X2NvbnRleHQgY3R4dCA9IHsKLSAgICAgICAgICAgIC52 cF9hc3Npc3RfbXNyID0gdi0+YXJjaC5odm1fdmNwdS52aXJpZGlhbi52cF9hc3Npc3QubXNyLnJh dywKLSAgICAgICAgICAgIC52cF9hc3Npc3RfcGVuZGluZyA9IHYtPmFyY2guaHZtX3ZjcHUudmly aWRpYW4udnBfYXNzaXN0LnBlbmRpbmcsCisgICAgICAgICAgICAudnBfYXNzaXN0X21zciA9IHYt PmFyY2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC5tc3IucmF3LAorICAgICAgICAgICAgLnZwX2Fz c2lzdF9wZW5kaW5nID0gdi0+YXJjaC5odm0udmlyaWRpYW4udnBfYXNzaXN0LnBlbmRpbmcsCiAg ICAgICAgIH07CiAKICAgICAgICAgaWYgKCBodm1fc2F2ZV9lbnRyeShWSVJJRElBTl9WQ1BVLCB2 LT52Y3B1X2lkLCBoLCAmY3R4dCkgIT0gMCApCkBAIC0xMDY1LDEyICsxMDY1LDEyIEBAIHN0YXRp YyBpbnQgdmlyaWRpYW5fbG9hZF92Y3B1X2N0eHQoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFp bl9jb250ZXh0X3QgKmgpCiAgICAgaWYgKCBtZW1jbXAoJmN0eHQuX3BhZCwgemVyb19wYWdlLCBz aXplb2YoY3R4dC5fcGFkKSkgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIHYtPmFy Y2guaHZtX3ZjcHUudmlyaWRpYW4udnBfYXNzaXN0Lm1zci5yYXcgPSBjdHh0LnZwX2Fzc2lzdF9t c3I7Ci0gICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC5tc3IuZmll bGRzLmVuYWJsZWQgJiYKLSAgICAgICAgICF2LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fz c2lzdC52YSApCisgICAgdi0+YXJjaC5odm0udmlyaWRpYW4udnBfYXNzaXN0Lm1zci5yYXcgPSBj dHh0LnZwX2Fzc2lzdF9tc3I7CisgICAgaWYgKCB2LT5hcmNoLmh2bS52aXJpZGlhbi52cF9hc3Np c3QubXNyLmZpZWxkcy5lbmFibGVkICYmCisgICAgICAgICAhdi0+YXJjaC5odm0udmlyaWRpYW4u dnBfYXNzaXN0LnZhICkKICAgICAgICAgaW5pdGlhbGl6ZV92cF9hc3Npc3Qodik7CiAKLSAgICB2 LT5hcmNoLmh2bV92Y3B1LnZpcmlkaWFuLnZwX2Fzc2lzdC5wZW5kaW5nID0gISFjdHh0LnZwX2Fz c2lzdF9wZW5kaW5nOworICAgIHYtPmFyY2guaHZtLnZpcmlkaWFuLnZwX2Fzc2lzdC5wZW5kaW5n ID0gISFjdHh0LnZwX2Fzc2lzdF9wZW5kaW5nOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm1zaS5jCmlu ZGV4IGNjYmYxODEuLjBjNWQwY2IgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm1zaS5j CisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm1zaS5jCkBAIC0zMTEsNyArMzExLDcgQEAgc3RhdGlj IGludCBtc2l4dGJsX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHJlc3Ms CiAgICAgaWYgKCAhKHZhbCAmIFBDSV9NU0lYX1ZFQ1RPUl9CSVRNQVNLKSAmJgogICAgICAgICAg dGVzdF9hbmRfY2xlYXJfYml0KG5yX2VudHJ5LCAmZW50cnktPnRhYmxlX2ZsYWdzKSApCiAgICAg ewotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmh2bV9pby5tc2l4X3VubWFza19hZGRyZXNzID0g YWRkcmVzczsKKyAgICAgICAgdi0+YXJjaC5odm0uaHZtX2lvLm1zaXhfdW5tYXNrX2FkZHJlc3Mg PSBhZGRyZXNzOwogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKQEAgLTM4Myw4ICszODMsOCBA QCBzdGF0aWMgYm9vbF90IG1zaXh0YmxfcmFuZ2UoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVy ICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgUENJX01TSVhfRU5UUllfVkVDVE9SX0NUUkxf T0ZGU0VUKSAmJgogICAgICAgICAgICAgICAgICAhKGRhdGEgJiBQQ0lfTVNJWF9WRUNUT1JfQklU TUFTSykgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGN1cnItPmFyY2guaHZtX3Zj cHUuaHZtX2lvLm1zaXhfc25vb3BfYWRkcmVzcyA9IGFkZHI7Ci0gICAgICAgICAgICAgICAgY3Vy ci0+YXJjaC5odm1fdmNwdS5odm1faW8ubXNpeF9zbm9vcF9ncGEgPSAwOworICAgICAgICAgICAg ICAgIGN1cnItPmFyY2guaHZtLmh2bV9pby5tc2l4X3Nub29wX2FkZHJlc3MgPSBhZGRyOworICAg ICAgICAgICAgICAgIGN1cnItPmFyY2guaHZtLmh2bV9pby5tc2l4X3Nub29wX2dwYSA9IDA7CiAg ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIChzaXplID09IDQgfHwg c2l6ZSA9PSA4KSAmJgpAQCAtNDAxLDkgKzQwMSw5IEBAIHN0YXRpYyBib29sX3QgbXNpeHRibF9y YW5nZShjb25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsCiAgICAgICAgICAgICBC VUlMRF9CVUdfT04oKFBDSV9NU0lYX0VOVFJZX1ZFQ1RPUl9DVFJMX09GRlNFVCArIDQpICYKICAg ICAgICAgICAgICAgICAgICAgICAgICAoUENJX01TSVhfRU5UUllfU0laRSAtIDEpKTsKIAotICAg ICAgICAgICAgY3Vyci0+YXJjaC5odm1fdmNwdS5odm1faW8ubXNpeF9zbm9vcF9hZGRyZXNzID0K KyAgICAgICAgICAgIGN1cnItPmFyY2guaHZtLmh2bV9pby5tc2l4X3Nub29wX2FkZHJlc3MgPQog ICAgICAgICAgICAgICAgIGFkZHIgKyBzaXplICogci0+Y291bnQgLSA0OwotICAgICAgICAgICAg Y3Vyci0+YXJjaC5odm1fdmNwdS5odm1faW8ubXNpeF9zbm9vcF9ncGEgPQorICAgICAgICAgICAg Y3Vyci0+YXJjaC5odm0uaHZtX2lvLm1zaXhfc25vb3BfZ3BhID0KICAgICAgICAgICAgICAgICBy LT5kYXRhICsgc2l6ZSAqIHItPmNvdW50IC0gNDsKICAgICAgICAgfQogICAgIH0KQEAgLTUwNiwx MyArNTA2LDEzIEBAIGludCBtc2l4dGJsX3B0X3JlZ2lzdGVyKHN0cnVjdCBkb21haW4gKmQsIHN0 cnVjdCBwaXJxICpwaXJxLCB1aW50NjRfdCBndGFibGUpCiAgICAgICAgIGZvcl9lYWNoX3ZjcHUg KCBkLCB2ICkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCAodi0+cGF1c2VfZmxhZ3MgJiBW UEZfYmxvY2tlZF9pbl94ZW4pICYmCi0gICAgICAgICAgICAgICAgICF2LT5hcmNoLmh2bV92Y3B1 Lmh2bV9pby5tc2l4X3Nub29wX2dwYSAmJgotICAgICAgICAgICAgICAgICB2LT5hcmNoLmh2bV92 Y3B1Lmh2bV9pby5tc2l4X3Nub29wX2FkZHJlc3MgPT0KKyAgICAgICAgICAgICAgICAgIXYtPmFy Y2guaHZtLmh2bV9pby5tc2l4X3Nub29wX2dwYSAmJgorICAgICAgICAgICAgICAgICB2LT5hcmNo Lmh2bS5odm1faW8ubXNpeF9zbm9vcF9hZGRyZXNzID09CiAgICAgICAgICAgICAgICAgIChndGFi bGUgKyBtc2lfZGVzYy0+bXNpX2F0dHJpYi5lbnRyeV9uciAqCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQQ0lfTVNJWF9FTlRSWV9TSVpFICsKICAgICAgICAgICAgICAgICAgIFBDSV9NU0lY X0VOVFJZX1ZFQ1RPUl9DVFJMX09GRlNFVCkgKQotICAgICAgICAgICAgICAgIHYtPmFyY2guaHZt X3ZjcHUuaHZtX2lvLm1zaXhfdW5tYXNrX2FkZHJlc3MgPQotICAgICAgICAgICAgICAgICAgICB2 LT5hcmNoLmh2bV92Y3B1Lmh2bV9pby5tc2l4X3Nub29wX2FkZHJlc3M7CisgICAgICAgICAgICAg ICAgdi0+YXJjaC5odm0uaHZtX2lvLm1zaXhfdW5tYXNrX2FkZHJlc3MgPQorICAgICAgICAgICAg ICAgICAgICB2LT5hcmNoLmh2bS5odm1faW8ubXNpeF9zbm9vcF9hZGRyZXNzOwogICAgICAgICB9 CiAgICAgfQogCkBAIC01OTIsMTMgKzU5MiwxMyBAQCB2b2lkIG1zaXh0YmxfcHRfY2xlYW51cChz dHJ1Y3QgZG9tYWluICpkKQogCiB2b2lkIG1zaXhfd3JpdGVfY29tcGxldGlvbihzdHJ1Y3QgdmNw dSAqdikKIHsKLSAgICB1bnNpZ25lZCBsb25nIGN0cmxfYWRkcmVzcyA9IHYtPmFyY2guaHZtX3Zj cHUuaHZtX2lvLm1zaXhfdW5tYXNrX2FkZHJlc3M7Ci0gICAgdW5zaWduZWQgbG9uZyBzbm9vcF9h ZGRyID0gdi0+YXJjaC5odm1fdmNwdS5odm1faW8ubXNpeF9zbm9vcF9hZGRyZXNzOworICAgIHVu c2lnbmVkIGxvbmcgY3RybF9hZGRyZXNzID0gdi0+YXJjaC5odm0uaHZtX2lvLm1zaXhfdW5tYXNr X2FkZHJlc3M7CisgICAgdW5zaWduZWQgbG9uZyBzbm9vcF9hZGRyID0gdi0+YXJjaC5odm0uaHZt X2lvLm1zaXhfc25vb3BfYWRkcmVzczsKIAotICAgIHYtPmFyY2guaHZtX3ZjcHUuaHZtX2lvLm1z aXhfc25vb3BfYWRkcmVzcyA9IDA7CisgICAgdi0+YXJjaC5odm0uaHZtX2lvLm1zaXhfc25vb3Bf YWRkcmVzcyA9IDA7CiAKICAgICBpZiAoICFjdHJsX2FkZHJlc3MgJiYgc25vb3BfYWRkciAmJgot ICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5odm1faW8ubXNpeF9zbm9vcF9ncGEgKQorICAgICAg ICAgdi0+YXJjaC5odm0uaHZtX2lvLm1zaXhfc25vb3BfZ3BhICkKICAgICB7CiAgICAgICAgIGNv bnN0IHN0cnVjdCBtc2lfZGVzYyAqZGVzYzsKICAgICAgICAgdWludDMyX3QgZGF0YTsKQEAgLTYx MCw3ICs2MTAsNyBAQCB2b2lkIG1zaXhfd3JpdGVfY29tcGxldGlvbihzdHJ1Y3QgdmNwdSAqdikK IAogICAgICAgICBpZiAoIGRlc2MgJiYKICAgICAgICAgICAgICBodm1fY29weV9mcm9tX2d1ZXN0 X3BoeXMoJmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPmFy Y2guaHZtX3ZjcHUuaHZtX2lvLm1zaXhfc25vb3BfZ3BhLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2LT5hcmNoLmh2bS5odm1faW8ubXNpeF9zbm9vcF9ncGEsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihkYXRhKSkgPT0gSFZNVFJB TlNfb2theSAmJgogICAgICAgICAgICAgICEoZGF0YSAmIFBDSV9NU0lYX1ZFQ1RPUl9CSVRNQVNL KSApCiAgICAgICAgICAgICBjdHJsX2FkZHJlc3MgPSBzbm9vcF9hZGRyOwpAQCAtNjE5LDcgKzYx OSw3IEBAIHZvaWQgbXNpeF93cml0ZV9jb21wbGV0aW9uKHN0cnVjdCB2Y3B1ICp2KQogICAgIGlm ICggIWN0cmxfYWRkcmVzcyApCiAgICAgICAgIHJldHVybjsKIAotICAgIHYtPmFyY2guaHZtX3Zj cHUuaHZtX2lvLm1zaXhfdW5tYXNrX2FkZHJlc3MgPSAwOworICAgIHYtPmFyY2guaHZtLmh2bV9p by5tc2l4X3VubWFza19hZGRyZXNzID0gMDsKICAgICBpZiAoIG1zaXh0Ymxfd3JpdGUodiwgY3Ry bF9hZGRyZXNzLCA0LCAwKSAhPSBYODZFTVVMX09LQVkgKQogICAgICAgICBnZHByaW50ayhYRU5M T0dfV0FSTklORywgIk1TSS1YIHdyaXRlIGNvbXBsZXRpb24gZmFpbHVyZVxuIik7CiB9CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC9pbnRyLmMgYi94ZW4vYXJjaC94ODYvaHZtL3Zt eC9pbnRyLmMKaW5kZXggZWI5YjI4OC4uODg5MDY3YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2h2bS92bXgvaW50ci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L2ludHIuYwpAQCAtMjMy LDcgKzIzMiw3IEBAIHZvaWQgdm14X2ludHJfYXNzaXN0KHZvaWQpCiAgICAgaW50IHB0X3ZlY3Rv cjsKIAogICAgIC8qIEJsb2NrIGV2ZW50IGluamVjdGlvbiB3aGVuIHNpbmdsZSBzdGVwIHdpdGgg TVRGLiAqLwotICAgIGlmICggdW5saWtlbHkodi0+YXJjaC5odm1fdmNwdS5zaW5nbGVfc3RlcCkg KQorICAgIGlmICggdW5saWtlbHkodi0+YXJjaC5odm0uc2luZ2xlX3N0ZXApICkKICAgICB7CiAg ICAgICAgIHYtPmFyY2guaHZtX3ZteC5leGVjX2NvbnRyb2wgfD0gQ1BVX0JBU0VEX01PTklUT1Jf VFJBUF9GTEFHOwogICAgICAgICB2bXhfdXBkYXRlX2NwdV9leGVjX2NvbnRyb2wodik7CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jIGIveGVuL2FyY2gveDg2L2h2 bS92bXgvcmVhbG1vZGUuYwppbmRleCBiMjBkOGM0Li4wMzJhNjgxIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvaHZtL3ZteC9yZWFsbW9kZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Jl YWxtb2RlLmMKQEAgLTk2LDcgKzk2LDcgQEAgc3RhdGljIHZvaWQgcmVhbG1vZGVfZGVsaXZlcl9l eGNlcHRpb24oCiB2b2lkIHZteF9yZWFsbW9kZV9lbXVsYXRlX29uZShzdHJ1Y3QgaHZtX2VtdWxh dGVfY3R4dCAqaHZtZW11bF9jdHh0KQogewogICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVu dDsKLSAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKnZpbyA9ICZjdXJyLT5hcmNoLmh2bV92Y3B1Lmh2 bV9pbzsKKyAgICBzdHJ1Y3QgaHZtX3ZjcHVfaW8gKnZpbyA9ICZjdXJyLT5hcmNoLmh2bS5odm1f aW87CiAgICAgaW50IHJjOwogCiAgICAgcGVyZmNfaW5jcihyZWFsbW9kZV9lbXVsYXRpb25zKTsK QEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIHZteF9yZWFsbW9kZV9lbXVsYXRlX29uZShzdHJ1Y3Qg aHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0KQogICAgIGlmICggcmMgPT0gWDg2RU1VTF9V TlJFQ09HTklaRUQgKQogICAgIHsKICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIlVucmVj b2duaXplZCBpbnNuLlxuIik7Ci0gICAgICAgIGlmICggY3Vyci0+YXJjaC5odm1fdmNwdS5ndWVz dF9jclswXSAmIFg4Nl9DUjBfUEUgKQorICAgICAgICBpZiAoIGN1cnItPmFyY2guaHZtLmd1ZXN0 X2NyWzBdICYgWDg2X0NSMF9QRSApCiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAKICAgICAgICAg cmVhbG1vZGVfZGVsaXZlcl9leGNlcHRpb24oVFJBUF9pbnZhbGlkX29wLCAwLCBodm1lbXVsX2N0 eHQpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIHZvaWQgdm14X3JlYWxtb2RlX2VtdWxhdGVfb25lKHN0 cnVjdCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0eHQpCiAgICAgICAgIHsKICAgICAgICAg ICAgIGRvbWFpbl9wYXVzZV9mb3JfZGVidWdnZXIoKTsKICAgICAgICAgfQotICAgICAgICBlbHNl IGlmICggY3Vyci0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfUEUgKQorICAg ICAgICBlbHNlIGlmICggY3Vyci0+YXJjaC5odm0uZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1BFICkK ICAgICAgICAgewogICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwgIkV4Y2VwdGlvbiAl MDJ4IGluIHByb3RlY3RlZCBtb2RlLlxuIiwKICAgICAgICAgICAgICAgICAgICAgIGh2bWVtdWxf Y3R4dC0+Y3R4dC5ldmVudC52ZWN0b3IpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgdm14X3Jl YWxtb2RlKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIHN0cnVjdCB2Y3B1ICpjdXJy ID0gY3VycmVudDsKICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCBodm1lbXVsX2N0eHQ7CiAg ICAgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgKnNyZWc7Ci0gICAgc3RydWN0IGh2bV92Y3B1X2lv ICp2aW8gPSAmY3Vyci0+YXJjaC5odm1fdmNwdS5odm1faW87CisgICAgc3RydWN0IGh2bV92Y3B1 X2lvICp2aW8gPSAmY3Vyci0+YXJjaC5odm0uaHZtX2lvOwogICAgIHVuc2lnbmVkIGxvbmcgaW50 cl9pbmZvOwogICAgIHVuc2lnbmVkIGludCBlbXVsYXRpb25zID0gMDsKIApAQCAtMTY4LDcgKzE2 OCw3IEBAIHZvaWQgdm14X3JlYWxtb2RlKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAg IGh2bV9lbXVsYXRlX2luaXRfb25jZSgmaHZtZW11bF9jdHh0LCBOVUxMLCByZWdzKTsKIAogICAg IC8qIE9ubHkgZGVsaXZlciBpbnRlcnJ1cHRzIGludG8gZW11bGF0ZWQgcmVhbCBtb2RlLiAqLwot ICAgIGlmICggIShjdXJyLT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9QRSkg JiYKKyAgICBpZiAoICEoY3Vyci0+YXJjaC5odm0uZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1BFKSAm JgogICAgICAgICAgKGludHJfaW5mbyAmIElOVFJfSU5GT19WQUxJRF9NQVNLKSApCiAgICAgewog ICAgICAgICByZWFsbW9kZV9kZWxpdmVyX2V4Y2VwdGlvbigodWludDhfdClpbnRyX2luZm8sIDAs ICZodm1lbXVsX2N0eHQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5j IGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jCmluZGV4IGYzMDg1MGMuLjVlNGE2YjEgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYworKysgYi94ZW4vYXJjaC94ODYv aHZtL3ZteC92bWNzLmMKQEAgLTEyMzMsMTAgKzEyMzMsMTAgQEAgc3RhdGljIGludCBjb25zdHJ1 Y3Rfdm1jcyhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgICAgICAgfCAodi0+YXJjaC5mdWxseV9l YWdlcl9mcHUgPyAwIDogKDFVIDw8IFRSQVBfbm9fZGV2aWNlKSk7CiAgICAgdm14X3VwZGF0ZV9l eGNlcHRpb25fYml0bWFwKHYpOwogCi0gICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclswXSA9 IFg4Nl9DUjBfUEUgfCBYODZfQ1IwX0VUOworICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzBdID0g WDg2X0NSMF9QRSB8IFg4Nl9DUjBfRVQ7CiAgICAgaHZtX3VwZGF0ZV9ndWVzdF9jcih2LCAwKTsK IAotICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0gPSAwOworICAgIHYtPmFyY2guaHZt Lmd1ZXN0X2NyWzRdID0gMDsKICAgICBodm1fdXBkYXRlX2d1ZXN0X2NyKHYsIDQpOwogCiAgICAg aWYgKCBjcHVfaGFzX3ZteF90cHJfc2hhZG93ICkKQEAgLTE4MzgsOSArMTgzOCw5IEBAIHZvaWQg dm14X2RvX3Jlc3VtZShzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgICAgICAgICAgIHx8IHYtPmRv bWFpbi0+YXJjaC5tb25pdG9yLnNvZnR3YXJlX2JyZWFrcG9pbnRfZW5hYmxlZAogICAgICAgICAg ICAgICAgICAgfHwgdi0+ZG9tYWluLT5hcmNoLm1vbml0b3Iuc2luZ2xlc3RlcF9lbmFibGVkOwog Ci0gICAgaWYgKCB1bmxpa2VseSh2LT5hcmNoLmh2bV92Y3B1LmRlYnVnX3N0YXRlX2xhdGNoICE9 IGRlYnVnX3N0YXRlKSApCisgICAgaWYgKCB1bmxpa2VseSh2LT5hcmNoLmh2bS5kZWJ1Z19zdGF0 ZV9sYXRjaCAhPSBkZWJ1Z19zdGF0ZSkgKQogICAgIHsKLSAgICAgICAgdi0+YXJjaC5odm1fdmNw dS5kZWJ1Z19zdGF0ZV9sYXRjaCA9IGRlYnVnX3N0YXRlOworICAgICAgICB2LT5hcmNoLmh2bS5k ZWJ1Z19zdGF0ZV9sYXRjaCA9IGRlYnVnX3N0YXRlOwogICAgICAgICB2bXhfdXBkYXRlX2RlYnVn X3N0YXRlKHYpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14 LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwppbmRleCBjY2ZiYWNiLi40YWJkMzI3IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94ODYv aHZtL3ZteC92bXguYwpAQCAtNTgxLDcgKzU4MSw3IEBAIGludCB2bXhfZ3Vlc3RfeDg2X21vZGUo c3RydWN0IHZjcHUgKnYpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBjc19hcl9ieXRlczsKIAotICAg IGlmICggdW5saWtlbHkoISh2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9Q RSkpICkKKyAgICBpZiAoIHVubGlrZWx5KCEodi0+YXJjaC5odm0uZ3Vlc3RfY3JbMF0gJiBYODZf Q1IwX1BFKSkgKQogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoIHVubGlrZWx5KGd1ZXN0X2Nw dV91c2VyX3JlZ3MoKS0+ZWZsYWdzICYgWDg2X0VGTEFHU19WTSkgKQogICAgICAgICByZXR1cm4g MTsKQEAgLTU5NCwxMSArNTk0LDExIEBAIGludCB2bXhfZ3Vlc3RfeDg2X21vZGUoc3RydWN0IHZj cHUgKnYpCiAKIHN0YXRpYyB2b2lkIHZteF9zYXZlX2RyKHN0cnVjdCB2Y3B1ICp2KQogewotICAg IGlmICggIXYtPmFyY2guaHZtX3ZjcHUuZmxhZ19kcl9kaXJ0eSApCisgICAgaWYgKCAhdi0+YXJj aC5odm0uZmxhZ19kcl9kaXJ0eSApCiAgICAgICAgIHJldHVybjsKIAogICAgIC8qIENsZWFyIHRo ZSBEUiBkaXJ0eSBmbGFnIGFuZCByZS1lbmFibGUgaW50ZXJjZXB0cyBmb3IgRFIgYWNjZXNzZXMu ICovCi0gICAgdi0+YXJjaC5odm1fdmNwdS5mbGFnX2RyX2RpcnR5ID0gMDsKKyAgICB2LT5hcmNo Lmh2bS5mbGFnX2RyX2RpcnR5ID0gMDsKICAgICB2LT5hcmNoLmh2bV92bXguZXhlY19jb250cm9s IHw9IENQVV9CQVNFRF9NT1ZfRFJfRVhJVElORzsKICAgICB2bXhfdXBkYXRlX2NwdV9leGVjX2Nv bnRyb2wodik7CiAKQEAgLTYxMywxMCArNjEzLDEwIEBAIHN0YXRpYyB2b2lkIHZteF9zYXZlX2Ry KHN0cnVjdCB2Y3B1ICp2KQogCiBzdGF0aWMgdm9pZCBfX3Jlc3RvcmVfZGVidWdfcmVnaXN0ZXJz KHN0cnVjdCB2Y3B1ICp2KQogewotICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS5mbGFnX2RyX2Rp cnR5ICkKKyAgICBpZiAoIHYtPmFyY2guaHZtLmZsYWdfZHJfZGlydHkgKQogICAgICAgICByZXR1 cm47CiAKLSAgICB2LT5hcmNoLmh2bV92Y3B1LmZsYWdfZHJfZGlydHkgPSAxOworICAgIHYtPmFy Y2guaHZtLmZsYWdfZHJfZGlydHkgPSAxOwogCiAgICAgd3JpdGVfZGVidWdyZWcoMCwgdi0+YXJj aC5kZWJ1Z3JlZ1swXSk7CiAgICAgd3JpdGVfZGVidWdyZWcoMSwgdi0+YXJjaC5kZWJ1Z3JlZ1sx XSk7CkBAIC02NDUsMTIgKzY0NSwxMiBAQCBzdGF0aWMgdm9pZCB2bXhfdm1jc19zYXZlKHN0cnVj dCB2Y3B1ICp2LCBzdHJ1Y3QgaHZtX2h3X2NwdSAqYykKIAogICAgIHZteF92bWNzX2VudGVyKHYp OwogCi0gICAgYy0+Y3IwID0gdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclswXTsKLSAgICBjLT5j cjIgPSB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzJdOwotICAgIGMtPmNyMyA9IHYtPmFyY2gu aHZtX3ZjcHUuZ3Vlc3RfY3JbM107Ci0gICAgYy0+Y3I0ID0gdi0+YXJjaC5odm1fdmNwdS5ndWVz dF9jcls0XTsKKyAgICBjLT5jcjAgPSB2LT5hcmNoLmh2bS5ndWVzdF9jclswXTsKKyAgICBjLT5j cjIgPSB2LT5hcmNoLmh2bS5ndWVzdF9jclsyXTsKKyAgICBjLT5jcjMgPSB2LT5hcmNoLmh2bS5n dWVzdF9jclszXTsKKyAgICBjLT5jcjQgPSB2LT5hcmNoLmh2bS5ndWVzdF9jcls0XTsKIAotICAg IGMtPm1zcl9lZmVyID0gdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyOworICAgIGMtPm1zcl9l ZmVyID0gdi0+YXJjaC5odm0uZ3Vlc3RfZWZlcjsKIAogICAgIF9fdm1yZWFkKEdVRVNUX1NZU0VO VEVSX0NTLCAmYy0+c3lzZW50ZXJfY3MpOwogICAgIF9fdm1yZWFkKEdVRVNUX1NZU0VOVEVSX0VT UCwgJmMtPnN5c2VudGVyX2VzcCk7CkBAIC02OTYsOCArNjk2LDggQEAgc3RhdGljIGludCB2bXhf cmVzdG9yZV9jcjBfY3IzKAogICAgICAgICAgICAgcGFnZSA/IHBhZ2V0YWJsZV9mcm9tX3BhZ2Uo cGFnZSkgOiBwYWdldGFibGVfbnVsbCgpOwogICAgIH0KIAotICAgIHYtPmFyY2guaHZtX3ZjcHUu Z3Vlc3RfY3JbMF0gPSBjcjAgfCBYODZfQ1IwX0VUOwotICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vl c3RfY3JbM10gPSBjcjM7CisgICAgdi0+YXJjaC5odm0uZ3Vlc3RfY3JbMF0gPSBjcjAgfCBYODZf Q1IwX0VUOworICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzNdID0gY3IzOwogCiAgICAgcmV0dXJu IDA7CiB9CkBAIC03MzEsMTMgKzczMSwxMyBAQCBzdGF0aWMgaW50IHZteF92bWNzX3Jlc3RvcmUo c3RydWN0IHZjcHUgKnYsIHN0cnVjdCBodm1faHdfY3B1ICpjKQogCiAgICAgdm14X3ZtY3NfZW50 ZXIodik7CiAKLSAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzJdID0gYy0+Y3IyOwotICAg IHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0gPSBjLT5jcjQ7CisgICAgdi0+YXJjaC5odm0u Z3Vlc3RfY3JbMl0gPSBjLT5jcjI7CisgICAgdi0+YXJjaC5odm0uZ3Vlc3RfY3JbNF0gPSBjLT5j cjQ7CiAgICAgdm14X3VwZGF0ZV9ndWVzdF9jcih2LCAwLCAwKTsKICAgICB2bXhfdXBkYXRlX2d1 ZXN0X2NyKHYsIDIsIDApOwogICAgIHZteF91cGRhdGVfZ3Vlc3RfY3IodiwgNCwgMCk7CiAKLSAg ICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIgPSBjLT5tc3JfZWZlcjsKKyAgICB2LT5hcmNo Lmh2bS5ndWVzdF9lZmVyID0gYy0+bXNyX2VmZXI7CiAgICAgdm14X3VwZGF0ZV9ndWVzdF9lZmVy KHYpOwogCiAgICAgX192bXdyaXRlKEdVRVNUX1NZU0VOVEVSX0NTLCBjLT5zeXNlbnRlcl9jcyk7 CkBAIC04MjcsNyArODI3LDcgQEAgc3RhdGljIHZvaWQgdm14X3NhdmVfbXNyKHN0cnVjdCB2Y3B1 ICp2LCBzdHJ1Y3QgaHZtX21zciAqY3R4dCkKIAogICAgIGlmICggY3B1X2hhc194c2F2ZXMgJiYg Y3B1X2hhc192bXhfeHNhdmVzICkKICAgICB7Ci0gICAgICAgIGN0eHQtPm1zcltjdHh0LT5jb3Vu dF0udmFsID0gdi0+YXJjaC5odm1fdmNwdS5tc3JfeHNzOworICAgICAgICBjdHh0LT5tc3JbY3R4 dC0+Y291bnRdLnZhbCA9IHYtPmFyY2guaHZtLm1zcl94c3M7CiAgICAgICAgIGlmICggY3R4dC0+ bXNyW2N0eHQtPmNvdW50XS52YWwgKQogICAgICAgICAgICAgY3R4dC0+bXNyW2N0eHQtPmNvdW50 KytdLmluZGV4ID0gTVNSX0lBMzJfWFNTOwogICAgIH0KQEAgLTg1NCw3ICs4NTQsNyBAQCBzdGF0 aWMgaW50IHZteF9sb2FkX21zcihzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGh2bV9tc3IgKmN0eHQp CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBNU1JfSUEzMl9YU1M6CiAgICAgICAg ICAgICBpZiAoIGNwdV9oYXNfeHNhdmVzICYmIGNwdV9oYXNfdm14X3hzYXZlcyApCi0gICAgICAg ICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5tc3JfeHNzID0gY3R4dC0+bXNyW2ldLnZhbDsKKyAg ICAgICAgICAgICAgICB2LT5hcmNoLmh2bS5tc3JfeHNzID0gY3R4dC0+bXNyW2ldLnZhbDsKICAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBlcnIgPSAtRU5YSU87CiAgICAgICAgICAg ICBicmVhazsKQEAgLTg5NywxMCArODk3LDEwIEBAIHN0YXRpYyB2b2lkIHZteF9mcHVfbGVhdmUo c3RydWN0IHZjcHUgKnYpCiAgICAgICogdGhlbiB0aGlzIGlzIG5vdCBuZWNlc3Nhcnk6IG5vIEZQ VSBhY3Rpdml0eSBjYW4gb2NjdXIgdW50aWwgdGhlIGd1ZXN0CiAgICAgICogY2xlYXJzIENSMC5U UywgYW5kIHdlIHdpbGwgaW5pdGlhbGlzZSB0aGUgRlBVIHdoZW4gdGhhdCBoYXBwZW5zLgogICAg ICAqLwotICAgIGlmICggISh2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9U UykgKQorICAgIGlmICggISh2LT5hcmNoLmh2bS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfVFMpICkK ICAgICB7Ci0gICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuaHdfY3JbMF0gfD0gWDg2X0NSMF9UUzsK LSAgICAgICAgX192bXdyaXRlKEdVRVNUX0NSMCwgdi0+YXJjaC5odm1fdmNwdS5od19jclswXSk7 CisgICAgICAgIHYtPmFyY2guaHZtLmh3X2NyWzBdIHw9IFg4Nl9DUjBfVFM7CisgICAgICAgIF9f dm13cml0ZShHVUVTVF9DUjAsIHYtPmFyY2guaHZtLmh3X2NyWzBdKTsKICAgICAgICAgdi0+YXJj aC5odm1fdm14LmV4Y2VwdGlvbl9iaXRtYXAgfD0gKDF1IDw8IFRSQVBfbm9fZGV2aWNlKTsKICAg ICAgICAgdm14X3VwZGF0ZV9leGNlcHRpb25fYml0bWFwKHYpOwogICAgIH0KQEAgLTExOTIsNyAr MTE5Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIHZteF9nZXRfc2hhZG93X2dzX2Jhc2Uoc3Ry dWN0IHZjcHUgKnYpCiBzdGF0aWMgaW50IHZteF9zZXRfZ3Vlc3RfcGF0KHN0cnVjdCB2Y3B1ICp2 LCB1NjQgZ3BhdCkKIHsKICAgICBpZiAoICFwYWdpbmdfbW9kZV9oYXAodi0+ZG9tYWluKSB8fAot ICAgICAgICAgdW5saWtlbHkodi0+YXJjaC5odm1fdmNwdS5jYWNoZV9tb2RlID09IE5PX0ZJTExf Q0FDSEVfTU9ERSkgKQorICAgICAgICAgdW5saWtlbHkodi0+YXJjaC5odm0uY2FjaGVfbW9kZSA9 PSBOT19GSUxMX0NBQ0hFX01PREUpICkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICB2bXhfdm1j c19lbnRlcih2KTsKQEAgLTEyMDQsNyArMTIwNCw3IEBAIHN0YXRpYyBpbnQgdm14X3NldF9ndWVz dF9wYXQoc3RydWN0IHZjcHUgKnYsIHU2NCBncGF0KQogc3RhdGljIGludCB2bXhfZ2V0X2d1ZXN0 X3BhdChzdHJ1Y3QgdmNwdSAqdiwgdTY0ICpncGF0KQogewogICAgIGlmICggIXBhZ2luZ19tb2Rl X2hhcCh2LT5kb21haW4pIHx8Ci0gICAgICAgICB1bmxpa2VseSh2LT5hcmNoLmh2bV92Y3B1LmNh Y2hlX21vZGUgPT0gTk9fRklMTF9DQUNIRV9NT0RFKSApCisgICAgICAgICB1bmxpa2VseSh2LT5h cmNoLmh2bS5jYWNoZV9tb2RlID09IE5PX0ZJTExfQ0FDSEVfTU9ERSkgKQogICAgICAgICByZXR1 cm4gMDsKIAogICAgIHZteF92bWNzX2VudGVyKHYpOwpAQCAtMTI0OCw3ICsxMjQ4LDcgQEAgc3Rh dGljIHZvaWQgdm14X2hhbmRsZV9jZChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyB2YWx1 ZSkKICAgICB9CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAgdTY0ICpwYXQgPSAmdi0+YXJjaC5o dm1fdmNwdS5wYXRfY3I7CisgICAgICAgIHU2NCAqcGF0ID0gJnYtPmFyY2guaHZtLnBhdF9jcjsK IAogICAgICAgICBpZiAoIHZhbHVlICYgWDg2X0NSMF9DRCApCiAgICAgICAgIHsKQEAgLTEyNzIs MTEgKzEyNzIsMTEgQEAgc3RhdGljIHZvaWQgdm14X2hhbmRsZV9jZChzdHJ1Y3QgdmNwdSAqdiwg dW5zaWduZWQgbG9uZyB2YWx1ZSkKIAogICAgICAgICAgICAgd2JpbnZkKCk7ICAgICAgICAgICAg ICAgLyogZmx1c2ggcG9zc2libHkgcG9sbHV0ZWQgY2FjaGUgKi8KICAgICAgICAgICAgIGh2bV9h c2lkX2ZsdXNoX3ZjcHUodik7IC8qIGludmFsaWRhdGUgbWVtb3J5IHR5cGUgY2FjaGVkIGluIFRM QiAqLwotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5jYWNoZV9tb2RlID0gTk9fRklMTF9D QUNIRV9NT0RFOworICAgICAgICAgICAgdi0+YXJjaC5odm0uY2FjaGVfbW9kZSA9IE5PX0ZJTExf Q0FDSEVfTU9ERTsKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgIHsKLSAgICAgICAg ICAgIHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVfbW9kZSA9IE5PUk1BTF9DQUNIRV9NT0RFOworICAg ICAgICAgICAgdi0+YXJjaC5odm0uY2FjaGVfbW9kZSA9IE5PUk1BTF9DQUNIRV9NT0RFOwogICAg ICAgICAgICAgdm14X3NldF9ndWVzdF9wYXQodiwgKnBhdCk7CiAgICAgICAgICAgICBpZiAoICFp b21tdV9lbmFibGVkIHx8IGlvbW11X3Nub29wICkKICAgICAgICAgICAgICAgICB2bXhfY2xlYXJf bXNyX2ludGVyY2VwdCh2LCBNU1JfSUEzMl9DUl9QQVQsIFZNWF9NU1JfUlcpOwpAQCAtMTM2OSwx NCArMTM2OSwxNCBAQCBzdGF0aWMgdm9pZCB2bXhfc2V0X2ludGVycnVwdF9zaGFkb3coc3RydWN0 IHZjcHUgKnYsIHVuc2lnbmVkIGludCBpbnRyX3NoYWRvdykKIAogc3RhdGljIHZvaWQgdm14X2xv YWRfcGRwdHJzKHN0cnVjdCB2Y3B1ICp2KQogewotICAgIHVuc2lnbmVkIGxvbmcgY3IzID0gdi0+ YXJjaC5odm1fdmNwdS5ndWVzdF9jclszXTsKKyAgICB1bnNpZ25lZCBsb25nIGNyMyA9IHYtPmFy Y2guaHZtLmd1ZXN0X2NyWzNdOwogICAgIHVpbnQ2NF90ICpndWVzdF9wZHB0ZXM7CiAgICAgc3Ry dWN0IHBhZ2VfaW5mbyAqcGFnZTsKICAgICBwMm1fdHlwZV90IHAybXQ7CiAgICAgY2hhciAqcDsK IAogICAgIC8qIEVQVCBuZWVkcyB0byBsb2FkIFBEUFRSUyBpbnRvIFZNQ1MgZm9yIFBBRS4gKi8K LSAgICBpZiAoICFodm1fcGFlX2VuYWJsZWQodikgfHwgKHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3Rf ZWZlciAmIEVGRVJfTE1BKSApCisgICAgaWYgKCAhaHZtX3BhZV9lbmFibGVkKHYpIHx8ICh2LT5h cmNoLmh2bS5ndWVzdF9lZmVyICYgRUZFUl9MTUEpICkKICAgICAgICAgcmV0dXJuOwogCiAgICAg aWYgKCAoY3IzICYgMHgxZlVMKSAmJiAhaHZtX3BjaWRfZW5hYmxlZCh2KSApCkBAIC0xNDMwLDcg KzE0MzAsNyBAQCBzdGF0aWMgdm9pZCB2bXhfdXBkYXRlX2hvc3RfY3IzKHN0cnVjdCB2Y3B1ICp2 KQogCiB2b2lkIHZteF91cGRhdGVfZGVidWdfc3RhdGUoc3RydWN0IHZjcHUgKnYpCiB7Ci0gICAg aWYgKCB2LT5hcmNoLmh2bV92Y3B1LmRlYnVnX3N0YXRlX2xhdGNoICkKKyAgICBpZiAoIHYtPmFy Y2guaHZtLmRlYnVnX3N0YXRlX2xhdGNoICkKICAgICAgICAgdi0+YXJjaC5odm1fdm14LmV4Y2Vw dGlvbl9iaXRtYXAgfD0gMVUgPDwgVFJBUF9pbnQzOwogICAgIGVsc2UKICAgICAgICAgdi0+YXJj aC5odm1fdm14LmV4Y2VwdGlvbl9iaXRtYXAgJj0gfigxVSA8PCBUUkFQX2ludDMpOwpAQCAtMTQ3 OSwyMiArMTQ3OSwyMiBAQCBzdGF0aWMgdm9pZCB2bXhfdXBkYXRlX2d1ZXN0X2NyKHN0cnVjdCB2 Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3IsCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoICFuZXN0 ZWRodm1fdmNwdV9pbl9ndWVzdG1vZGUodikgKQotICAgICAgICAgICAgX192bXdyaXRlKENSMF9S RUFEX1NIQURPVywgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclswXSk7CisgICAgICAgICAgICBf X3Ztd3JpdGUoQ1IwX1JFQURfU0hBRE9XLCB2LT5hcmNoLmh2bS5ndWVzdF9jclswXSk7CiAgICAg ICAgIGVsc2UKICAgICAgICAgICAgIG52bXhfc2V0X2NyX3JlYWRfc2hhZG93KHYsIDApOwogCi0g ICAgICAgIGlmICggISh2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9UUykg KQorICAgICAgICBpZiAoICEodi0+YXJjaC5odm0uZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1RTKSAp CiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggdiAhPSBjdXJyZW50ICkKICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICBpZiAoICF2LT5hcmNoLmZ1bGx5X2VhZ2VyX2ZwdSApCiAgICAg ICAgICAgICAgICAgICAgIGh3X2NyMF9tYXNrIHw9IFg4Nl9DUjBfVFM7CiAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICBlbHNlIGlmICggdi0+YXJjaC5odm1fdmNwdS5od19jclswXSAmIFg4Nl9D UjBfVFMgKQorICAgICAgICAgICAgZWxzZSBpZiAoIHYtPmFyY2guaHZtLmh3X2NyWzBdICYgWDg2 X0NSMF9UUyApCiAgICAgICAgICAgICAgICAgdm14X2ZwdV9lbnRlcih2KTsKICAgICAgICAgfQog Ci0gICAgICAgIHJlYWxtb2RlID0gISh2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2 X0NSMF9QRSk7CisgICAgICAgIHJlYWxtb2RlID0gISh2LT5hcmNoLmh2bS5ndWVzdF9jclswXSAm IFg4Nl9DUjBfUEUpOwogCiAgICAgICAgIGlmICggIXZteF91bnJlc3RyaWN0ZWRfZ3Vlc3Qodikg JiYKICAgICAgICAgICAgICAocmVhbG1vZGUgIT0gdi0+YXJjaC5odm1fdm14LnZteF9yZWFsbW9k ZSkgKQpAQCAtMTUyNywyNCArMTUyNywyNCBAQCBzdGF0aWMgdm9pZCB2bXhfdXBkYXRlX2d1ZXN0 X2NyKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3IsCiAgICAgICAgICAgICB2bXhfdXBk YXRlX2V4Y2VwdGlvbl9iaXRtYXAodik7CiAgICAgICAgIH0KIAotICAgICAgICB2LT5hcmNoLmh2 bV92Y3B1Lmh3X2NyWzBdID0KLSAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3Jb MF0gfCBod19jcjBfbWFzazsKLSAgICAgICAgX192bXdyaXRlKEdVRVNUX0NSMCwgdi0+YXJjaC5o dm1fdmNwdS5od19jclswXSk7CisgICAgICAgIHYtPmFyY2guaHZtLmh3X2NyWzBdID0KKyAgICAg ICAgICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzBdIHwgaHdfY3IwX21hc2s7CisgICAgICAgIF9f dm13cml0ZShHVUVTVF9DUjAsIHYtPmFyY2guaHZtLmh3X2NyWzBdKTsKICAgICB9CiAgICAgICAg IC8qIEZhbGx0aHJvdWdoOiBDaGFuZ2luZyBDUjAgY2FuIGNoYW5nZSBzb21lIGJpdHMgaW4gcmVh bCBDUjQuICovCiAgICAgY2FzZSA0OgotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmh3X2NyWzRd ID0gSFZNX0NSNF9IT1NUX01BU0s7CisgICAgICAgIHYtPmFyY2guaHZtLmh3X2NyWzRdID0gSFZN X0NSNF9IT1NUX01BU0s7CiAgICAgICAgIGlmICggcGFnaW5nX21vZGVfaGFwKHYtPmRvbWFpbikg KQotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5od19jcls0XSAmPSB+WDg2X0NSNF9QQUU7 CisgICAgICAgICAgICB2LT5hcmNoLmh2bS5od19jcls0XSAmPSB+WDg2X0NSNF9QQUU7CiAKICAg ICAgICAgaWYgKCAhbmVzdGVkaHZtX3ZjcHVfaW5fZ3Vlc3Rtb2RlKHYpICkKLSAgICAgICAgICAg IF9fdm13cml0ZShDUjRfUkVBRF9TSEFET1csIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0p OworICAgICAgICAgICAgX192bXdyaXRlKENSNF9SRUFEX1NIQURPVywgdi0+YXJjaC5odm0uZ3Vl c3RfY3JbNF0pOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBudm14X3NldF9jcl9yZWFkX3No YWRvdyh2LCA0KTsKIAotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmh3X2NyWzRdIHw9IHYtPmFy Y2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF07CisgICAgICAgIHYtPmFyY2guaHZtLmh3X2NyWzRdIHw9 IHYtPmFyY2guaHZtLmd1ZXN0X2NyWzRdOwogICAgICAgICBpZiAoIHYtPmFyY2guaHZtX3ZteC52 bXhfcmVhbG1vZGUgKQotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5od19jcls0XSB8PSBY ODZfQ1I0X1ZNRTsKKyAgICAgICAgICAgIHYtPmFyY2guaHZtLmh3X2NyWzRdIHw9IFg4Nl9DUjRf Vk1FOwogCiAgICAgICAgIGlmICggIWh2bV9wYWdpbmdfZW5hYmxlZCh2KSApCiAgICAgICAgIHsK QEAgLTE1NjQsOCArMTU2NCw4IEBAIHN0YXRpYyB2b2lkIHZteF91cGRhdGVfZ3Vlc3RfY3Ioc3Ry dWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjciwKICAgICAgICAgICAgICAgICAgKiBIVk1fUEFS QU1fSURFTlRfUFQgd2hpY2ggaXMgYSAzMmJpdCBwYWdldGFibGUgdXNpbmcgNE0KICAgICAgICAg ICAgICAgICAgKiBzdXBlcnBhZ2VzLiAgT3ZlcnJpZGUgdGhlIGd1ZXN0cyBwYWdpbmcgc2V0dGlu Z3MgdG8gbWF0Y2guCiAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgdi0+YXJj aC5odm1fdmNwdS5od19jcls0XSB8PSBYODZfQ1I0X1BTRTsKLSAgICAgICAgICAgICAgICB2LT5h cmNoLmh2bV92Y3B1Lmh3X2NyWzRdICY9IH5YODZfQ1I0X1BBRTsKKyAgICAgICAgICAgICAgICB2 LT5hcmNoLmh2bS5od19jcls0XSB8PSBYODZfQ1I0X1BTRTsKKyAgICAgICAgICAgICAgICB2LT5h cmNoLmh2bS5od19jcls0XSAmPSB+WDg2X0NSNF9QQUU7CiAgICAgICAgICAgICB9CiAKICAgICAg ICAgICAgIC8qCkBAIC0xNTc2LDEwICsxNTc2LDEwIEBAIHN0YXRpYyB2b2lkIHZteF91cGRhdGVf Z3Vlc3RfY3Ioc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjciwKICAgICAgICAgICAgICAq IGVmZmVjdCBpZiBwYWdpbmcgd2FzIGFjdHVhbGx5IGRpc2FibGVkLCBzbyBoaWRlIHRoZW0gYmVo aW5kIHRoZQogICAgICAgICAgICAgICogYmFjayBvZiB0aGUgZ3Vlc3QuCiAgICAgICAgICAgICAg Ki8KLSAgICAgICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuaHdfY3JbNF0gJj0gfihYODZfQ1I0X1NN RVAgfCBYODZfQ1I0X1NNQVApOworICAgICAgICAgICAgdi0+YXJjaC5odm0uaHdfY3JbNF0gJj0g fihYODZfQ1I0X1NNRVAgfCBYODZfQ1I0X1NNQVApOwogICAgICAgICB9CiAKLSAgICAgICAgX192 bXdyaXRlKEdVRVNUX0NSNCwgdi0+YXJjaC5odm1fdmNwdS5od19jcls0XSk7CisgICAgICAgIF9f dm13cml0ZShHVUVTVF9DUjQsIHYtPmFyY2guaHZtLmh3X2NyWzRdKTsKIAogICAgICAgICAvKgog ICAgICAgICAgKiBTaGFkb3cgcGF0aCBoYXMgbm90IGJlZW4gb3B0aW1pemVkIGJlY2F1c2UgaXQg cmVxdWlyZXMKQEAgLTE2MjUsMTIgKzE2MjUsMTIgQEAgc3RhdGljIHZvaWQgdm14X3VwZGF0ZV9n dWVzdF9jcihzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGNyLAogICAgICAgICBpZiAoIHBh Z2luZ19tb2RlX2hhcCh2LT5kb21haW4pICkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCAh aHZtX3BhZ2luZ19lbmFibGVkKHYpICYmICF2bXhfdW5yZXN0cmljdGVkX2d1ZXN0KHYpICkKLSAg ICAgICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmh3X2NyWzNdID0KKyAgICAgICAgICAgICAg ICB2LT5hcmNoLmh2bS5od19jclszXSA9CiAgICAgICAgICAgICAgICAgICAgIHYtPmRvbWFpbi0+ YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9JREVOVF9QVF07CiAgICAgICAgICAgICB2bXhfbG9h ZF9wZHB0cnModik7CiAgICAgICAgIH0KIAotICAgICAgICBfX3Ztd3JpdGUoR1VFU1RfQ1IzLCB2 LT5hcmNoLmh2bV92Y3B1Lmh3X2NyWzNdKTsKKyAgICAgICAgX192bXdyaXRlKEdVRVNUX0NSMywg di0+YXJjaC5odm0uaHdfY3JbM10pOwogCiAgICAgICAgIGlmICggIShmbGFncyAmIEhWTV9VUERB VEVfR1VFU1RfQ1IzX05PRkxVU0gpICkKICAgICAgICAgICAgIGh2bV9hc2lkX2ZsdXNoX3ZjcHUo dik7CkBAIC0xNjQ1LDcgKzE2NDUsNyBAQCBzdGF0aWMgdm9pZCB2bXhfdXBkYXRlX2d1ZXN0X2Ny KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3IsCiAKIHN0YXRpYyB2b2lkIHZteF91cGRh dGVfZ3Vlc3RfZWZlcihzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICB1bnNpZ25lZCBsb25nIGVudHJ5 X2N0bHMsIGd1ZXN0X2VmZXIgPSB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIsCisgICAgdW5z aWduZWQgbG9uZyBlbnRyeV9jdGxzLCBndWVzdF9lZmVyID0gdi0+YXJjaC5odm0uZ3Vlc3RfZWZl ciwKICAgICAgICAgeGVuX2VmZXIgPSByZWFkX2VmZXIoKTsKIAogICAgIGlmICggcGFnaW5nX21v ZGVfc2hhZG93KHYtPmRvbWFpbikgKQpAQCAtMTcxNCw3ICsxNzE0LDcgQEAgc3RhdGljIHZvaWQg dm14X3VwZGF0ZV9ndWVzdF9lZmVyKHN0cnVjdCB2Y3B1ICp2KQogICAgICAqIElmIHRoZSBndWVz dHMgdmlydHVhbGlzZWQgdmlldyBvZiBNU1JfRUZFUiBtYXRjaGVzIHRoZSB2YWx1ZSBsb2FkZWQK ICAgICAgKiBpbnRvIGhhcmR3YXJlLCBjbGVhciB0aGUgcmVhZCBpbnRlcmNlcHQgdG8gYXZvaWQg dW5uZWNlc3NhcnkgVk1FeGl0cy4KICAgICAgKi8KLSAgICBpZiAoIGd1ZXN0X2VmZXIgPT0gdi0+ YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyICkKKyAgICBpZiAoIGd1ZXN0X2VmZXIgPT0gdi0+YXJj aC5odm0uZ3Vlc3RfZWZlciApCiAgICAgICAgIHZteF9jbGVhcl9tc3JfaW50ZXJjZXB0KHYsIE1T Ul9FRkVSLCBWTVhfTVNSX1IpOwogICAgIGVsc2UKICAgICAgICAgdm14X3NldF9tc3JfaW50ZXJj ZXB0KHYsIE1TUl9FRkVSLCBWTVhfTVNSX1IpOwpAQCAtMTg2Myw3ICsxODYzLDcgQEAgc3RhdGlj IHZvaWQgdm14X2luamVjdF9ldmVudChjb25zdCBzdHJ1Y3QgeDg2X2V2ZW50ICpldmVudCkKIAog ICAgIGNhc2UgVFJBUF9wYWdlX2ZhdWx0OgogICAgICAgICBBU1NFUlQoX2V2ZW50LnR5cGUgPT0g WDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT04pOwotICAgICAgICBjdXJyLT5hcmNoLmh2bV92Y3B1 Lmd1ZXN0X2NyWzJdID0gX2V2ZW50LmNyMjsKKyAgICAgICAgY3Vyci0+YXJjaC5odm0uZ3Vlc3Rf Y3JbMl0gPSBfZXZlbnQuY3IyOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTE5MDEsNyAr MTkwMSw3IEBAIHN0YXRpYyB2b2lkIHZteF9pbmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4Nl9l dmVudCAqZXZlbnQpCiAgICAgaWYgKCAoX2V2ZW50LnZlY3RvciA9PSBUUkFQX3BhZ2VfZmF1bHQp ICYmCiAgICAgICAgICAoX2V2ZW50LnR5cGUgPT0gWDg2X0VWRU5UVFlQRV9IV19FWENFUFRJT04p ICkKICAgICAgICAgSFZNVFJBQ0VfTE9OR18yRChQRl9JTkpFQ1QsIF9ldmVudC5lcnJvcl9jb2Rl LAotICAgICAgICAgICAgICAgICAgICAgICAgIFRSQ19QQVJfTE9ORyhjdXJyLT5hcmNoLmh2bV92 Y3B1Lmd1ZXN0X2NyWzJdKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgVFJDX1BBUl9MT05H KGN1cnItPmFyY2guaHZtLmd1ZXN0X2NyWzJdKSk7CiAgICAgZWxzZQogICAgICAgICBIVk1UUkFD RV8yRChJTkpfRVhDLCBfZXZlbnQudmVjdG9yLCBfZXZlbnQuZXJyb3JfY29kZSk7CiB9CkBAIC0y NTQ5LDEwICsyNTQ5LDEwIEBAIHN0YXRpYyB2b2lkIHZteF9mcHVfZGlydHlfaW50ZXJjZXB0KHZv aWQpCiAgICAgdm14X2ZwdV9lbnRlcihjdXJyKTsKIAogICAgIC8qIERpc2FibGUgVFMgaW4gZ3Vl c3QgQ1IwIHVubGVzcyB0aGUgZ3Vlc3Qgd2FudHMgdGhlIGV4Y2VwdGlvbiB0b28uICovCi0gICAg aWYgKCAhKGN1cnItPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1RTKSApCisg ICAgaWYgKCAhKGN1cnItPmFyY2guaHZtLmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9UUykgKQogICAg IHsKLSAgICAgICAgY3Vyci0+YXJjaC5odm1fdmNwdS5od19jclswXSAmPSB+WDg2X0NSMF9UUzsK LSAgICAgICAgX192bXdyaXRlKEdVRVNUX0NSMCwgY3Vyci0+YXJjaC5odm1fdmNwdS5od19jclsw XSk7CisgICAgICAgIGN1cnItPmFyY2guaHZtLmh3X2NyWzBdICY9IH5YODZfQ1IwX1RTOworICAg ICAgICBfX3Ztd3JpdGUoR1VFU1RfQ1IwLCBjdXJyLT5hcmNoLmh2bS5od19jclswXSk7CiAgICAg fQogfQogCkBAIC0yNTg2LDcgKzI1ODYsNyBAQCBzdGF0aWMgdm9pZCB2bXhfZHJfYWNjZXNzKHVu c2lnbmVkIGxvbmcgZXhpdF9xdWFsaWZpY2F0aW9uLAogCiAgICAgSFZNVFJBQ0VfMEQoRFJfV1JJ VEUpOwogCi0gICAgaWYgKCAhdi0+YXJjaC5odm1fdmNwdS5mbGFnX2RyX2RpcnR5ICkKKyAgICBp ZiAoICF2LT5hcmNoLmh2bS5mbGFnX2RyX2RpcnR5ICkKICAgICAgICAgX19yZXN0b3JlX2RlYnVn X3JlZ2lzdGVycyh2KTsKIAogICAgIC8qIEFsbG93IGd1ZXN0IGRpcmVjdCBhY2Nlc3MgdG8gRFIg cmVnaXN0ZXJzICovCkBAIC0yNjMzLDcgKzI2MzMsNyBAQCBzdGF0aWMgaW50IHZteF9jcl9hY2Nl c3MoY3JfYWNjZXNzX3F1YWxfdCBxdWFsKQogCiAgICAgY2FzZSBWTVhfQ1JfQUNDRVNTX1RZUEVf Q0xUUzoKICAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgb2xkID0gY3Vyci0+YXJjaC5odm1f dmNwdS5ndWVzdF9jclswXTsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBvbGQgPSBjdXJyLT5hcmNo Lmh2bS5ndWVzdF9jclswXTsKICAgICAgICAgdW5zaWduZWQgbG9uZyB2YWx1ZSA9IG9sZCAmIH5Y ODZfQ1IwX1RTOwogCiAgICAgICAgIC8qCkBAIC0yNjQyLDcgKzI2NDIsNyBAQCBzdGF0aWMgaW50 IHZteF9jcl9hY2Nlc3MoY3JfYWNjZXNzX3F1YWxfdCBxdWFsKQogICAgICAgICAgKiByZXR1cm4g dmFsdWUgaXMgaWdub3JlZCBmb3Igbm93LgogICAgICAgICAgKi8KICAgICAgICAgaHZtX21vbml0 b3JfY3JYKENSMCwgdmFsdWUsIG9sZCk7Ci0gICAgICAgIGN1cnItPmFyY2guaHZtX3ZjcHUuZ3Vl c3RfY3JbMF0gPSB2YWx1ZTsKKyAgICAgICAgY3Vyci0+YXJjaC5odm0uZ3Vlc3RfY3JbMF0gPSB2 YWx1ZTsKICAgICAgICAgdm14X3VwZGF0ZV9ndWVzdF9jcihjdXJyLCAwLCAwKTsKICAgICAgICAg SFZNVFJBQ0VfMEQoQ0xUUyk7CiAgICAgICAgIGJyZWFrOwpAQCAtMjY1MCw3ICsyNjUwLDcgQEAg c3RhdGljIGludCB2bXhfY3JfYWNjZXNzKGNyX2FjY2Vzc19xdWFsX3QgcXVhbCkKIAogICAgIGNh c2UgVk1YX0NSX0FDQ0VTU19UWVBFX0xNU1c6CiAgICAgewotICAgICAgICB1bnNpZ25lZCBsb25n IHZhbHVlID0gY3Vyci0+YXJjaC5odm1fdmNwdS5ndWVzdF9jclswXTsKKyAgICAgICAgdW5zaWdu ZWQgbG9uZyB2YWx1ZSA9IGN1cnItPmFyY2guaHZtLmd1ZXN0X2NyWzBdOwogICAgICAgICBpbnQg cmM7CiAKICAgICAgICAgLyogTE1TVyBjYW4gKDEpIHNldCBQRTsgKDIpIHNldCBvciBjbGVhciBN UCwgRU0sIGFuZCBUUy4gKi8KQEAgLTM2MTcsMTQgKzM2MTcsMTQgQEAgdm9pZCB2bXhfdm1leGl0 X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgICAqIFhlbiBhbGxv d3MgdGhlIGd1ZXN0IHRvIG1vZGlmeSBzb21lIENSNCBiaXRzIGRpcmVjdGx5LCB1cGRhdGUgY2Fj aGVkCiAgICAgICAgICAqIHZhbHVlcyB0byBtYXRjaC4KICAgICAgICAgICovCi0gICAgICAgIF9f dm1yZWFkKEdVRVNUX0NSNCwgJnYtPmFyY2guaHZtX3ZjcHUuaHdfY3JbNF0pOwotICAgICAgICB2 LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzRdICY9IHYtPmFyY2guaHZtX3ZteC5jcjRfaG9zdF9t YXNrOwotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzRdIHw9IHYtPmFyY2guaHZt X3ZjcHUuaHdfY3JbNF0gJgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH52LT5hcmNoLmh2bV92bXguY3I0X2hvc3RfbWFzazsKKyAgICAgICAgX192bXJlYWQoR1VFU1Rf Q1I0LCAmdi0+YXJjaC5odm0uaHdfY3JbNF0pOworICAgICAgICB2LT5hcmNoLmh2bS5ndWVzdF9j cls0XSAmPSB2LT5hcmNoLmh2bV92bXguY3I0X2hvc3RfbWFzazsKKyAgICAgICAgdi0+YXJjaC5o dm0uZ3Vlc3RfY3JbNF0gfD0gKHYtPmFyY2guaHZtLmh3X2NyWzRdICYKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH52LT5hcmNoLmh2bV92bXguY3I0X2hvc3RfbWFzayk7CiAK LSAgICAgICAgX192bXJlYWQoR1VFU1RfQ1IzLCAmdi0+YXJjaC5odm1fdmNwdS5od19jclszXSk7 CisgICAgICAgIF9fdm1yZWFkKEdVRVNUX0NSMywgJnYtPmFyY2guaHZtLmh3X2NyWzNdKTsKICAg ICAgICAgaWYgKCB2bXhfdW5yZXN0cmljdGVkX2d1ZXN0KHYpIHx8IGh2bV9wYWdpbmdfZW5hYmxl ZCh2KSApCi0gICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzNdID0gdi0+YXJj aC5odm1fdmNwdS5od19jclszXTsKKyAgICAgICAgICAgIHYtPmFyY2guaHZtLmd1ZXN0X2NyWzNd ID0gdi0+YXJjaC5odm0uaHdfY3JbM107CiAgICAgfQogCiAgICAgX192bXJlYWQoVk1fRVhJVF9S RUFTT04sICZleGl0X3JlYXNvbik7CkBAIC00MTY3LDcgKzQxNjcsNyBAQCB2b2lkIHZteF92bWV4 aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICBjYXNlIEVYSVRfUkVB U09OX01PTklUT1JfVFJBUF9GTEFHOgogICAgICAgICB2LT5hcmNoLmh2bV92bXguZXhlY19jb250 cm9sICY9IH5DUFVfQkFTRURfTU9OSVRPUl9UUkFQX0ZMQUc7CiAgICAgICAgIHZteF91cGRhdGVf Y3B1X2V4ZWNfY29udHJvbCh2KTsKLSAgICAgICAgaWYgKCB2LT5hcmNoLmh2bV92Y3B1LnNpbmds ZV9zdGVwICkKKyAgICAgICAgaWYgKCB2LT5hcmNoLmh2bS5zaW5nbGVfc3RlcCApCiAgICAgICAg IHsKICAgICAgICAgICAgIGh2bV9tb25pdG9yX2RlYnVnKHJlZ3MtPnJpcCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEhWTV9NT05JVE9SX1NJTkdMRVNURVBfQlJFQUtQT0lOVCwKQEAg LTQzMzgsNyArNDMzOCw3IEBAIGJvb2wgdm14X3ZtZW50ZXJfaGVscGVyKGNvbnN0IHN0cnVjdCBj cHVfdXNlcl9yZWdzICpyZWdzKQogICAgIGlmICggbmVzdGVkaHZtX3ZjcHVfaW5fZ3Vlc3Rtb2Rl KGN1cnIpICkKICAgICAgICAgcF9hc2lkID0gJnZjcHVfbmVzdGVkaHZtKGN1cnIpLm52X24yYXNp ZDsKICAgICBlbHNlCi0gICAgICAgIHBfYXNpZCA9ICZjdXJyLT5hcmNoLmh2bV92Y3B1Lm4xYXNp ZDsKKyAgICAgICAgcF9hc2lkID0gJmN1cnItPmFyY2guaHZtLm4xYXNpZDsKIAogICAgIG9sZF9h c2lkID0gcF9hc2lkLT5hc2lkOwogICAgIG5lZWRfZmx1c2ggPSBodm1fYXNpZF9oYW5kbGVfdm1l bnRlcihwX2FzaWQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jIGIv eGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCmluZGV4IGI3ZDlhMWEuLjVjZGVhNDcgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZt L3ZteC92dm14LmMKQEAgLTM4Myw4ICszODMsOCBAQCBzdGF0aWMgaW50IHZteF9pbnN0X2NoZWNr X3ByaXZpbGVnZShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgaW50IHZteG9wX2NoZWNrKQog CiAgICAgaWYgKCB2bXhvcF9jaGVjayApCiAgICAgewotICAgICAgICBpZiAoICEodi0+YXJjaC5o dm1fdmNwdS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfUEUpIHx8Ci0gICAgICAgICAgICAgISh2LT5h cmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzRdICYgWDg2X0NSNF9WTVhFKSApCisgICAgICAgIGlmICgg ISh2LT5hcmNoLmh2bS5ndWVzdF9jclswXSAmIFg4Nl9DUjBfUEUpIHx8CisgICAgICAgICAgICAg ISh2LT5hcmNoLmh2bS5ndWVzdF9jcls0XSAmIFg4Nl9DUjRfVk1YRSkgKQogICAgICAgICAgICAg Z290byBpbnZhbGlkX29wOwogICAgIH0KICAgICBlbHNlIGlmICggIW52bXhfdmNwdV9pbl92bXgo dikgKQpAQCAtMTA4Miw3ICsxMDgyLDcgQEAgc3RhdGljIHZvaWQgbG9hZF9zaGFkb3dfZ3Vlc3Rf c3RhdGUoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgICAgICBodm1faW5qZWN0X2h3X2V4Y2VwdGlv bihUUkFQX2dwX2ZhdWx0LCAwKTsKICAgICB9CiAKLSAgICBodm1fc2V0X3RzY19vZmZzZXQodiwg di0+YXJjaC5odm1fdmNwdS5jYWNoZV90c2Nfb2Zmc2V0LCAwKTsKKyAgICBodm1fc2V0X3RzY19v ZmZzZXQodiwgdi0+YXJjaC5odm0uY2FjaGVfdHNjX29mZnNldCwgMCk7CiAKICAgICB2dm1jc190 b19zaGFkb3dfYnVsayh2LCBBUlJBWV9TSVpFKHZtZW50cnlfZmllbGRzKSwgdm1lbnRyeV9maWVs ZHMpOwogCkBAIC0xMTcwLDcgKzExNzAsNyBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFsX3ZtZW50cnko c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICogaHZtX3NldF9lZmVyIHdvbid0IHdv cmsgaWYgQ1IwLlBHID0gMSwgc28gd2UgY2hhbmdlIHRoZSB2YWx1ZQogICAgICAqIGRpcmVjdGx5 IHRvIG1ha2UgaHZtX2xvbmdfbW9kZV9hY3RpdmUodikgd29yayBpbiBMMi4KICAgICAgKiBBbiBh ZGRpdGlvbmFsIHVwZGF0ZV9wYWdpbmdfbW9kZXMgaXMgYWxzbyBuZWVkZWQgaWYKLSAgICAgKiB0 aGVyZSBpcyAzMi82NCBzd2l0Y2guIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlciBkb2Vzbid0 CisgICAgICogdGhlcmUgaXMgMzIvNjQgc3dpdGNoLiB2LT5hcmNoLmh2bS5ndWVzdF9lZmVyIGRv ZXNuJ3QKICAgICAgKiBuZWVkIHRvIGJlIHNhdmVkLCBzaW5jZSBpdHMgdmFsdWUgb24gdm1leGl0 IGlzIGRldGVybWluZWQgYnkKICAgICAgKiBMMSBleGl0X2NvbnRyb2xzCiAgICAgICovCkBAIC0x MTc4LDkgKzExNzgsOSBAQCBzdGF0aWMgdm9pZCB2aXJ0dWFsX3ZtZW50cnkoc3RydWN0IGNwdV91 c2VyX3JlZ3MgKnJlZ3MpCiAgICAgbG1fbDIgPSAhIShnZXRfdnZtY3ModiwgVk1fRU5UUllfQ09O VFJPTFMpICYgVk1fRU5UUllfSUEzMkVfTU9ERSk7CiAKICAgICBpZiAoIGxtX2wyICkKLSAgICAg ICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyIHw9IEVGRVJfTE1BIHwgRUZFUl9MTUU7Cisg ICAgICAgIHYtPmFyY2guaHZtLmd1ZXN0X2VmZXIgfD0gRUZFUl9MTUEgfCBFRkVSX0xNRTsKICAg ICBlbHNlCi0gICAgICAgIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfZWZlciAmPSB+KEVGRVJfTE1B IHwgRUZFUl9MTUUpOworICAgICAgICB2LT5hcmNoLmh2bS5ndWVzdF9lZmVyICY9IH4oRUZFUl9M TUEgfCBFRkVSX0xNRSk7CiAKICAgICBsb2FkX3NoYWRvd19jb250cm9sKHYpOwogICAgIGxvYWRf c2hhZG93X2d1ZXN0X3N0YXRlKHYpOwpAQCAtMTE4OSw3ICsxMTg5LDcgQEAgc3RhdGljIHZvaWQg dmlydHVhbF92bWVudHJ5KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgICAgICBwYWdp bmdfdXBkYXRlX3BhZ2luZ19tb2Rlcyh2KTsKIAogICAgIGlmICggbnZteF9lcHRfZW5hYmxlZCh2 KSAmJiBodm1fcGFlX2VuYWJsZWQodikgJiYKLSAgICAgICAgICEodi0+YXJjaC5odm1fdmNwdS5n dWVzdF9lZmVyICYgRUZFUl9MTUEpICkKKyAgICAgICAgICEodi0+YXJjaC5odm0uZ3Vlc3RfZWZl ciAmIEVGRVJfTE1BKSApCiAgICAgICAgIHZ2bWNzX3RvX3NoYWRvd19idWxrKHYsIEFSUkFZX1NJ WkUoZ3BkcHRlX2ZpZWxkcyksIGdwZHB0ZV9maWVsZHMpOwogCiAgICAgcmVncy0+cmlwID0gZ2V0 X3Z2bWNzKHYsIEdVRVNUX1JJUCk7CkBAIC0xMjM2LDcgKzEyMzYsNyBAQCBzdGF0aWMgdm9pZCBz eW5jX3Z2bWNzX2d1ZXN0X3N0YXRlKHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgY3B1X3VzZXJfcmVn cyAqcmVncykKIAogICAgIGlmICggdi0+YXJjaC5odm1fdm14LmNyNF9ob3N0X21hc2sgIT0gfjBV TCApCiAgICAgICAgIC8qIE9ubHkgbmVlZCB0byB1cGRhdGUgbmVzdGVkIEdVRVNUX0NSNCBpZiBu b3QgYWxsIGJpdHMgYXJlIHRyYXBwZWQuICovCi0gICAgICAgIHNldF92dm1jcyh2LCBHVUVTVF9D UjQsIHYtPmFyY2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0pOworICAgICAgICBzZXRfdnZtY3Modiwg R1VFU1RfQ1I0LCB2LT5hcmNoLmh2bS5ndWVzdF9jcls0XSk7CiB9CiAKIHN0YXRpYyB2b2lkIHN5 bmNfdnZtY3Nfcm8oc3RydWN0IHZjcHUgKnYpCkBAIC0xMjg4LDcgKzEyODgsNyBAQCBzdGF0aWMg dm9pZCBsb2FkX3Z2bWNzX2hvc3Rfc3RhdGUoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgICAgICBo dm1faW5qZWN0X2h3X2V4Y2VwdGlvbihUUkFQX2dwX2ZhdWx0LCAwKTsKICAgICB9CiAKLSAgICBo dm1fc2V0X3RzY19vZmZzZXQodiwgdi0+YXJjaC5odm1fdmNwdS5jYWNoZV90c2Nfb2Zmc2V0LCAw KTsKKyAgICBodm1fc2V0X3RzY19vZmZzZXQodiwgdi0+YXJjaC5odm0uY2FjaGVfdHNjX29mZnNl dCwgMCk7CiAKICAgICBzZXRfdnZtY3ModiwgVk1fRU5UUllfSU5UUl9JTkZPLCAwKTsKIH0KQEAg LTEzNjksNyArMTM2OSw3IEBAIHN0YXRpYyB2b2lkIHZpcnR1YWxfdm1leGl0KHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzKQogICAgIHN5bmNfZXhjZXB0aW9uX3N0YXRlKHYpOwogCiAgICAgaWYg KCBudm14X2VwdF9lbmFibGVkKHYpICYmIGh2bV9wYWVfZW5hYmxlZCh2KSAmJgotICAgICAgICAg ISh2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIgJiBFRkVSX0xNQSkgKQorICAgICAgICAgISh2 LT5hcmNoLmh2bS5ndWVzdF9lZmVyICYgRUZFUl9MTUEpICkKICAgICAgICAgc2hhZG93X3RvX3Z2 bWNzX2J1bGsodiwgQVJSQVlfU0laRShncGRwdGVfZmllbGRzKSwgZ3BkcHRlX2ZpZWxkcyk7CiAK ICAgICAvKiBUaGlzIHdpbGwgY2xlYXIgY3VycmVudCBwQ1BVIGJpdCBpbiBwMm0tPmRpcnR5X2Nw dW1hc2sgKi8KQEAgLTEzODUsOSArMTM4NSw5IEBAIHN0YXRpYyB2b2lkIHZpcnR1YWxfdm1leGl0 KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIGxtX2wxID0gISEoZ2V0X3Z2bWNzKHYs IFZNX0VYSVRfQ09OVFJPTFMpICYgVk1fRVhJVF9JQTMyRV9NT0RFKTsKIAogICAgIGlmICggbG1f bDEgKQotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIgfD0gRUZFUl9MTUEgfCBF RkVSX0xNRTsKKyAgICAgICAgdi0+YXJjaC5odm0uZ3Vlc3RfZWZlciB8PSBFRkVSX0xNQSB8IEVG RVJfTE1FOwogICAgIGVsc2UKLSAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVyICY9 IH4oRUZFUl9MTUEgfCBFRkVSX0xNRSk7CisgICAgICAgIHYtPmFyY2guaHZtLmd1ZXN0X2VmZXIg Jj0gfihFRkVSX0xNQSB8IEVGRVJfTE1FKTsKIAogICAgIHZteF91cGRhdGVfY3B1X2V4ZWNfY29u dHJvbCh2KTsKICAgICB2bXhfdXBkYXRlX3NlY29uZGFyeV9leGVjX2NvbnRyb2wodik7CkBAIC0y NDM4LDcgKzI0MzgsNyBAQCBpbnQgbnZteF9uMl92bWV4aXRfaGFuZGxlcihzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqcmVncywKICAgICBjYXNlIEVYSVRfUkVBU09OX0RSX0FDQ0VTUzoKICAgICAgICAg Y3RybCA9IF9fbjJfZXhlY19jb250cm9sKHYpOwogICAgICAgICBpZiAoIChjdHJsICYgQ1BVX0JB U0VEX01PVl9EUl9FWElUSU5HKSAmJgotICAgICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5mbGFn X2RyX2RpcnR5ICkKKyAgICAgICAgICAgIHYtPmFyY2guaHZtLmZsYWdfZHJfZGlydHkgKQogICAg ICAgICAgICAgbnZjcHUtPm52X3ZtZXhpdF9wZW5kaW5nID0gMTsKICAgICAgICAgYnJlYWs7CiAg ICAgY2FzZSBFWElUX1JFQVNPTl9JTlZMUEc6CkBAIC0yNjIwLDEzICsyNjIwLDEzIEBAIHZvaWQg bnZteF9zZXRfY3JfcmVhZF9zaGFkb3coc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjcikK ICAgICAgICAgICogaGFyZHdhcmUuIEl0IGNvbnNpc3RzIG9mIHRoZSBMMi1vd25lZCBiaXRzIGZy b20gdGhlIG5ldwogICAgICAgICAgKiB2YWx1ZSBjb21iaW5lZCB3aXRoIHRoZSBMMS1vd25lZCBi aXRzIGZyb20gTDEncyBndWVzdCBjci4KICAgICAgICAgICovCi0gICAgICAgIHYtPmFyY2guaHZt X3ZjcHUuZ3Vlc3RfY3JbY3JdICY9IH52aXJ0dWFsX2NyX21hc2s7Ci0gICAgICAgIHYtPmFyY2gu aHZtX3ZjcHUuZ3Vlc3RfY3JbY3JdIHw9IHZpcnR1YWxfY3JfbWFzayAmCisgICAgICAgIHYtPmFy Y2guaHZtLmd1ZXN0X2NyW2NyXSAmPSB+dmlydHVhbF9jcl9tYXNrOworICAgICAgICB2LT5hcmNo Lmh2bS5ndWVzdF9jcltjcl0gfD0gdmlydHVhbF9jcl9tYXNrICYKICAgICAgICAgICAgIGdldF92 dm1jcyh2LCBjcl9maWVsZCk7CiAgICAgfQogCiAgICAgLyogbnZjcHUuZ3Vlc3RfY3IgaXMgd2hh dCBMMiB3cml0ZSB0byBjciBhY3R1YWxseS4gKi8KLSAgICBfX3Ztd3JpdGUocmVhZF9zaGFkb3df ZmllbGQsIHYtPmFyY2guaHZtX3ZjcHUubnZjcHUuZ3Vlc3RfY3JbY3JdKTsKKyAgICBfX3Ztd3Jp dGUocmVhZF9zaGFkb3dfZmllbGQsIHYtPmFyY2guaHZtLm52Y3B1Lmd1ZXN0X2NyW2NyXSk7CiB9 CiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZwdC5jIGIveGVuL2FyY2gveDg2 L2h2bS92cHQuYwppbmRleCA3YjU3MDE3Li5lY2QyNWQ3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL3ZwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdnB0LmMKQEAgLTU1LDcgKzU1LDcg QEAgdWludDY0X3QgaHZtX2dldF9ndWVzdF90aW1lX2ZpeGVkKGNvbnN0IHN0cnVjdCB2Y3B1ICp2 LCB1aW50NjRfdCBhdF90c2MpCiAgICAgfQogICAgIHNwaW5fdW5sb2NrKCZwbC0+cGxfdGltZV9s b2NrKTsKIAotICAgIHJldHVybiBub3cgKyB2LT5hcmNoLmh2bV92Y3B1LnN0aW1lX29mZnNldDsK KyAgICByZXR1cm4gbm93ICsgdi0+YXJjaC5odm0uc3RpbWVfb2Zmc2V0OwogfQogCiB2b2lkIGh2 bV9zZXRfZ3Vlc3RfdGltZShzdHJ1Y3QgdmNwdSAqdiwgdTY0IGd1ZXN0X3RpbWUpCkBAIC02NCw5 ICs2NCw5IEBAIHZvaWQgaHZtX3NldF9ndWVzdF90aW1lKHN0cnVjdCB2Y3B1ICp2LCB1NjQgZ3Vl c3RfdGltZSkKIAogICAgIGlmICggb2Zmc2V0ICkKICAgICB7Ci0gICAgICAgIHYtPmFyY2guaHZt X3ZjcHUuc3RpbWVfb2Zmc2V0ICs9IG9mZnNldDsKKyAgICAgICAgdi0+YXJjaC5odm0uc3RpbWVf b2Zmc2V0ICs9IG9mZnNldDsKICAgICAgICAgLyoKLSAgICAgICAgICogSWYgaHZtX3ZjcHUuc3Rp bWVfb2Zmc2V0IGlzIHVwZGF0ZWQgbWFrZSBzdXJlIHRvCisgICAgICAgICAqIElmIGh2bS5zdGlt ZV9vZmZzZXQgaXMgdXBkYXRlZCBtYWtlIHN1cmUgdG8KICAgICAgICAgICogYWxzbyB1cGRhdGUg dmNwdSB0aW1lLCBzaW5jZSB0aGlzIHZhbHVlIGlzIHVzZWQgdG8KICAgICAgICAgICogY2FsY3Vs YXRlIHRoZSBUU0MuCiAgICAgICAgICAqLwpAQCAtMTU5LDE2ICsxNTksMTYgQEAgc3RhdGljIHZv aWQgcHRfbG9jayhzdHJ1Y3QgcGVyaW9kaWNfdGltZSAqcHQpCiAgICAgZm9yICggOyA7ICkKICAg ICB7CiAgICAgICAgIHYgPSBwdC0+dmNwdTsKLSAgICAgICAgc3Bpbl9sb2NrKCZ2LT5hcmNoLmh2 bV92Y3B1LnRtX2xvY2spOworICAgICAgICBzcGluX2xvY2soJnYtPmFyY2guaHZtLnRtX2xvY2sp OwogICAgICAgICBpZiAoIGxpa2VseShwdC0+dmNwdSA9PSB2KSApCiAgICAgICAgICAgICBicmVh azsKLSAgICAgICAgc3Bpbl91bmxvY2soJnYtPmFyY2guaHZtX3ZjcHUudG1fbG9jayk7CisgICAg ICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLmh2bS50bV9sb2NrKTsKICAgICB9CiB9CiAKIHN0YXRp YyB2b2lkIHB0X3VubG9jayhzdHJ1Y3QgcGVyaW9kaWNfdGltZSAqcHQpCiB7Ci0gICAgc3Bpbl91 bmxvY2soJnB0LT52Y3B1LT5hcmNoLmh2bV92Y3B1LnRtX2xvY2spOworICAgIHNwaW5fdW5sb2Nr KCZwdC0+dmNwdS0+YXJjaC5odm0udG1fbG9jayk7CiB9CiAKIHN0YXRpYyB2b2lkIHB0X3Byb2Nl c3NfbWlzc2VkX3RpY2tzKHN0cnVjdCBwZXJpb2RpY190aW1lICpwdCkKQEAgLTE5NSw3ICsxOTUs NyBAQCBzdGF0aWMgdm9pZCBwdF9mcmVlemVfdGltZShzdHJ1Y3QgdmNwdSAqdikKICAgICBpZiAo ICFtb2RlX2lzKHYtPmRvbWFpbiwgZGVsYXlfZm9yX21pc3NlZF90aWNrcykgKQogICAgICAgICBy ZXR1cm47CiAKLSAgICB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X3RpbWUgPSBodm1fZ2V0X2d1ZXN0 X3RpbWUodik7CisgICAgdi0+YXJjaC5odm0uZ3Vlc3RfdGltZSA9IGh2bV9nZXRfZ3Vlc3RfdGlt ZSh2KTsKIH0KIAogc3RhdGljIHZvaWQgcHRfdGhhd190aW1lKHN0cnVjdCB2Y3B1ICp2KQpAQCAt MjAzLDIyICsyMDMsMjIgQEAgc3RhdGljIHZvaWQgcHRfdGhhd190aW1lKHN0cnVjdCB2Y3B1ICp2 KQogICAgIGlmICggIW1vZGVfaXModi0+ZG9tYWluLCBkZWxheV9mb3JfbWlzc2VkX3RpY2tzKSAp CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICggdi0+YXJjaC5odm1fdmNwdS5ndWVzdF90aW1l ID09IDAgKQorICAgIGlmICggdi0+YXJjaC5odm0uZ3Vlc3RfdGltZSA9PSAwICkKICAgICAgICAg cmV0dXJuOwogCi0gICAgaHZtX3NldF9ndWVzdF90aW1lKHYsIHYtPmFyY2guaHZtX3ZjcHUuZ3Vl c3RfdGltZSk7Ci0gICAgdi0+YXJjaC5odm1fdmNwdS5ndWVzdF90aW1lID0gMDsKKyAgICBodm1f c2V0X2d1ZXN0X3RpbWUodiwgdi0+YXJjaC5odm0uZ3Vlc3RfdGltZSk7CisgICAgdi0+YXJjaC5o dm0uZ3Vlc3RfdGltZSA9IDA7CiB9CiAKIHZvaWQgcHRfc2F2ZV90aW1lcihzdHJ1Y3QgdmNwdSAq dikKIHsKLSAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJnYtPmFyY2guaHZtX3ZjcHUudG1f bGlzdDsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJnYtPmFyY2guaHZtLnRtX2xpc3Q7 CiAgICAgc3RydWN0IHBlcmlvZGljX3RpbWUgKnB0OwogCiAgICAgaWYgKCB2LT5wYXVzZV9mbGFn cyAmIFZQRl9ibG9ja2VkICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3Bpbl9sb2NrKCZ2LT5h cmNoLmh2bV92Y3B1LnRtX2xvY2spOworICAgIHNwaW5fbG9jaygmdi0+YXJjaC5odm0udG1fbG9j ayk7CiAKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcHQsIGhlYWQsIGxpc3QgKQogICAgICAg ICBpZiAoICFwdC0+ZG9fbm90X2ZyZWV6ZSApCkBAIC0yMjYsMTUgKzIyNiwxNSBAQCB2b2lkIHB0 X3NhdmVfdGltZXIoc3RydWN0IHZjcHUgKnYpCiAKICAgICBwdF9mcmVlemVfdGltZSh2KTsKIAot ICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLmh2bV92Y3B1LnRtX2xvY2spOworICAgIHNwaW5fdW5s b2NrKCZ2LT5hcmNoLmh2bS50bV9sb2NrKTsKIH0KIAogdm9pZCBwdF9yZXN0b3JlX3RpbWVyKHN0 cnVjdCB2Y3B1ICp2KQogewotICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQgPSAmdi0+YXJjaC5o dm1fdmNwdS50bV9saXN0OworICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQgPSAmdi0+YXJjaC5o dm0udG1fbGlzdDsKICAgICBzdHJ1Y3QgcGVyaW9kaWNfdGltZSAqcHQ7CiAKLSAgICBzcGluX2xv Y2soJnYtPmFyY2guaHZtX3ZjcHUudG1fbG9jayk7CisgICAgc3Bpbl9sb2NrKCZ2LT5hcmNoLmh2 bS50bV9sb2NrKTsKIAogICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBwdCwgaGVhZCwgbGlzdCAp CiAgICAgewpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgcHRfcmVzdG9yZV90aW1lcihzdHJ1Y3Qg dmNwdSAqdikKIAogICAgIHB0X3RoYXdfdGltZSh2KTsKIAotICAgIHNwaW5fdW5sb2NrKCZ2LT5h cmNoLmh2bV92Y3B1LnRtX2xvY2spOworICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLmh2bS50bV9s b2NrKTsKIH0KIAogc3RhdGljIHZvaWQgcHRfdGltZXJfZm4odm9pZCAqZGF0YSkKQEAgLTMwMiwx MyArMzAyLDEzIEBAIHN0YXRpYyB2b2lkIHB0X2lycV9maXJlZChzdHJ1Y3QgdmNwdSAqdiwgc3Ry dWN0IHBlcmlvZGljX3RpbWUgKnB0KQogCiBpbnQgcHRfdXBkYXRlX2lycShzdHJ1Y3QgdmNwdSAq dikKIHsKLSAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJnYtPmFyY2guaHZtX3ZjcHUudG1f bGlzdDsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJnYtPmFyY2guaHZtLnRtX2xpc3Q7 CiAgICAgc3RydWN0IHBlcmlvZGljX3RpbWUgKnB0LCAqdGVtcCwgKmVhcmxpZXN0X3B0OwogICAg IHVpbnQ2NF90IG1heF9sYWc7CiAgICAgaW50IGlycSwgcHRfdmVjdG9yID0gLTE7CiAgICAgYm9v bCBsZXZlbDsKIAotICAgIHNwaW5fbG9jaygmdi0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsKKyAg ICBzcGluX2xvY2soJnYtPmFyY2guaHZtLnRtX2xvY2spOwogCiAgICAgZWFybGllc3RfcHQgPSBO VUxMOwogICAgIG1heF9sYWcgPSAtMVVMTDsKQEAgLTMzOCw3ICszMzgsNyBAQCBpbnQgcHRfdXBk YXRlX2lycShzdHJ1Y3QgdmNwdSAqdikKIAogICAgIGlmICggZWFybGllc3RfcHQgPT0gTlVMTCAp CiAgICAgewotICAgICAgICBzcGluX3VubG9jaygmdi0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsK KyAgICAgICAgc3Bpbl91bmxvY2soJnYtPmFyY2guaHZtLnRtX2xvY2spOwogICAgICAgICByZXR1 cm4gLTE7CiAgICAgfQogCkBAIC0zNDYsNyArMzQ2LDcgQEAgaW50IHB0X3VwZGF0ZV9pcnEoc3Ry dWN0IHZjcHUgKnYpCiAgICAgaXJxID0gZWFybGllc3RfcHQtPmlycTsKICAgICBsZXZlbCA9IGVh cmxpZXN0X3B0LT5sZXZlbDsKIAotICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLmh2bV92Y3B1LnRt X2xvY2spOworICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLmh2bS50bV9sb2NrKTsKIAogICAgIHN3 aXRjaCAoIGVhcmxpZXN0X3B0LT5zb3VyY2UgKQogICAgIHsKQEAgLTM5Myw5ICszOTMsOSBAQCBp bnQgcHRfdXBkYXRlX2lycShzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgICAgICAgICB0aW1lX2Ni ICpjYiA9IE5VTEw7CiAgICAgICAgICAgICAgICAgdm9pZCAqY2JfcHJpdjsKIAotICAgICAgICAg ICAgICAgIHNwaW5fbG9jaygmdi0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsKKyAgICAgICAgICAg ICAgICBzcGluX2xvY2soJnYtPmFyY2guaHZtLnRtX2xvY2spOwogICAgICAgICAgICAgICAgIC8q IE1ha2Ugc3VyZSB0aGUgdGltZXIgaXMgc3RpbGwgb24gdGhlIGxpc3QuICovCi0gICAgICAgICAg ICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIHB0LCAmdi0+YXJjaC5odm1fdmNwdS50bV9saXN0 LCBsaXN0ICkKKyAgICAgICAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcHQsICZ2LT5h cmNoLmh2bS50bV9saXN0LCBsaXN0ICkKICAgICAgICAgICAgICAgICAgICAgaWYgKCBwdCA9PSBl YXJsaWVzdF9wdCApCiAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAg ICAgIHB0X2lycV9maXJlZCh2LCBwdCk7CkBAIC00MDMsNyArNDAzLDcgQEAgaW50IHB0X3VwZGF0 ZV9pcnEoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgICAgICAgICAgICAgICAgICBjYl9wcml2ID0g cHQtPnByaXY7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLmh2bV92Y3B1LnRt X2xvY2spOworICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLmh2bS50bV9sb2Nr KTsKIAogICAgICAgICAgICAgICAgIGlmICggY2IgIT0gTlVMTCApCiAgICAgICAgICAgICAgICAg ICAgIGNiKHYsIGNiX3ByaXYpOwpAQCAtNDE4LDcgKzQxOCw3IEBAIGludCBwdF91cGRhdGVfaXJx KHN0cnVjdCB2Y3B1ICp2KQogc3RhdGljIHN0cnVjdCBwZXJpb2RpY190aW1lICppc19wdF9pcnEo CiAgICAgc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBodm1faW50YWNrIGludGFjaykKIHsKLSAgICBz dHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJnYtPmFyY2guaHZtX3ZjcHUudG1fbGlzdDsKKyAgICBz dHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJnYtPmFyY2guaHZtLnRtX2xpc3Q7CiAgICAgc3RydWN0 IHBlcmlvZGljX3RpbWUgKnB0OwogCiAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIHB0LCBoZWFk LCBsaXN0ICkKQEAgLTQ0MCwxMiArNDQwLDEyIEBAIHZvaWQgcHRfaW50cl9wb3N0KHN0cnVjdCB2 Y3B1ICp2LCBzdHJ1Y3QgaHZtX2ludGFjayBpbnRhY2spCiAgICAgaWYgKCBpbnRhY2suc291cmNl ID09IGh2bV9pbnRzcmNfdmVjdG9yICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3Bpbl9sb2Nr KCZ2LT5hcmNoLmh2bV92Y3B1LnRtX2xvY2spOworICAgIHNwaW5fbG9jaygmdi0+YXJjaC5odm0u dG1fbG9jayk7CiAKICAgICBwdCA9IGlzX3B0X2lycSh2LCBpbnRhY2spOwogICAgIGlmICggcHQg PT0gTlVMTCApCiAgICAgewotICAgICAgICBzcGluX3VubG9jaygmdi0+YXJjaC5odm1fdmNwdS50 bV9sb2NrKTsKKyAgICAgICAgc3Bpbl91bmxvY2soJnYtPmFyY2guaHZtLnRtX2xvY2spOwogICAg ICAgICByZXR1cm47CiAgICAgfQogCkBAIC00NTQsNyArNDU0LDcgQEAgdm9pZCBwdF9pbnRyX3Bv c3Qoc3RydWN0IHZjcHUgKnYsIHN0cnVjdCBodm1faW50YWNrIGludGFjaykKICAgICBjYiA9IHB0 LT5jYjsKICAgICBjYl9wcml2ID0gcHQtPnByaXY7CiAKLSAgICBzcGluX3VubG9jaygmdi0+YXJj aC5odm1fdmNwdS50bV9sb2NrKTsKKyAgICBzcGluX3VubG9jaygmdi0+YXJjaC5odm0udG1fbG9j ayk7CiAKICAgICBpZiAoIGNiICE9IE5VTEwgKQogICAgICAgICBjYih2LCBjYl9wcml2KTsKQEAg LTQ2MiwxNSArNDYyLDE1IEBAIHZvaWQgcHRfaW50cl9wb3N0KHN0cnVjdCB2Y3B1ICp2LCBzdHJ1 Y3QgaHZtX2ludGFjayBpbnRhY2spCiAKIHZvaWQgcHRfbWlncmF0ZShzdHJ1Y3QgdmNwdSAqdikK IHsKLSAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJnYtPmFyY2guaHZtX3ZjcHUudG1fbGlz dDsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJnYtPmFyY2guaHZtLnRtX2xpc3Q7CiAg ICAgc3RydWN0IHBlcmlvZGljX3RpbWUgKnB0OwogCi0gICAgc3Bpbl9sb2NrKCZ2LT5hcmNoLmh2 bV92Y3B1LnRtX2xvY2spOworICAgIHNwaW5fbG9jaygmdi0+YXJjaC5odm0udG1fbG9jayk7CiAK ICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcHQsIGhlYWQsIGxpc3QgKQogICAgICAgICBtaWdy YXRlX3RpbWVyKCZwdC0+dGltZXIsIHYtPnByb2Nlc3Nvcik7CiAKLSAgICBzcGluX3VubG9jaygm di0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsKKyAgICBzcGluX3VubG9jaygmdi0+YXJjaC5odm0u dG1fbG9jayk7CiB9CiAKIHZvaWQgY3JlYXRlX3BlcmlvZGljX3RpbWUoCkBAIC00ODksNyArNDg5 LDcgQEAgdm9pZCBjcmVhdGVfcGVyaW9kaWNfdGltZSgKIAogICAgIGRlc3Ryb3lfcGVyaW9kaWNf dGltZShwdCk7CiAKLSAgICBzcGluX2xvY2soJnYtPmFyY2guaHZtX3ZjcHUudG1fbG9jayk7Cisg ICAgc3Bpbl9sb2NrKCZ2LT5hcmNoLmh2bS50bV9sb2NrKTsKIAogICAgIHB0LT5wZW5kaW5nX2lu dHJfbnIgPSAwOwogICAgIHB0LT5kb19ub3RfZnJlZXplID0gMDsKQEAgLTUzNCwxMiArNTM0LDEy IEBAIHZvaWQgY3JlYXRlX3BlcmlvZGljX3RpbWUoCiAgICAgcHQtPnByaXYgPSBkYXRhOwogCiAg ICAgcHQtPm9uX2xpc3QgPSAxOwotICAgIGxpc3RfYWRkKCZwdC0+bGlzdCwgJnYtPmFyY2guaHZt X3ZjcHUudG1fbGlzdCk7CisgICAgbGlzdF9hZGQoJnB0LT5saXN0LCAmdi0+YXJjaC5odm0udG1f bGlzdCk7CiAKICAgICBpbml0X3RpbWVyKCZwdC0+dGltZXIsIHB0X3RpbWVyX2ZuLCBwdCwgdi0+ cHJvY2Vzc29yKTsKICAgICBzZXRfdGltZXIoJnB0LT50aW1lciwgcHQtPnNjaGVkdWxlZCk7CiAK LSAgICBzcGluX3VubG9jaygmdi0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsKKyAgICBzcGluX3Vu bG9jaygmdi0+YXJjaC5odm0udG1fbG9jayk7CiB9CiAKIHZvaWQgZGVzdHJveV9wZXJpb2RpY190 aW1lKHN0cnVjdCBwZXJpb2RpY190aW1lICpwdCkKQEAgLTU3OCwxNiArNTc4LDE2IEBAIHN0YXRp YyB2b2lkIHB0X2FkanVzdF92Y3B1KHN0cnVjdCBwZXJpb2RpY190aW1lICpwdCwgc3RydWN0IHZj cHUgKnYpCiAgICAgcHQtPm9uX2xpc3QgPSAwOwogICAgIHB0X3VubG9jayhwdCk7CiAKLSAgICBz cGluX2xvY2soJnYtPmFyY2guaHZtX3ZjcHUudG1fbG9jayk7CisgICAgc3Bpbl9sb2NrKCZ2LT5h cmNoLmh2bS50bV9sb2NrKTsKICAgICBwdC0+dmNwdSA9IHY7CiAgICAgaWYgKCBvbl9saXN0ICkK ICAgICB7CiAgICAgICAgIHB0LT5vbl9saXN0ID0gMTsKLSAgICAgICAgbGlzdF9hZGQoJnB0LT5s aXN0LCAmdi0+YXJjaC5odm1fdmNwdS50bV9saXN0KTsKKyAgICAgICAgbGlzdF9hZGQoJnB0LT5s aXN0LCAmdi0+YXJjaC5odm0udG1fbGlzdCk7CiAKICAgICAgICAgbWlncmF0ZV90aW1lcigmcHQt PnRpbWVyLCB2LT5wcm9jZXNzb3IpOwogICAgIH0KLSAgICBzcGluX3VubG9jaygmdi0+YXJjaC5o dm1fdmNwdS50bV9sb2NrKTsKKyAgICBzcGluX3VubG9jaygmdi0+YXJjaC5odm0udG1fbG9jayk7 CiB9CiAKIHZvaWQgcHRfYWRqdXN0X2dsb2JhbF92Y3B1X3RhcmdldChzdHJ1Y3QgdmNwdSAqdikK QEAgLTYyNyw3ICs2MjcsNyBAQCBzdGF0aWMgdm9pZCBwdF9yZXN1bWUoc3RydWN0IHBlcmlvZGlj X3RpbWUgKnB0KQogICAgIGlmICggcHQtPnBlbmRpbmdfaW50cl9uciAmJiAhcHQtPm9uX2xpc3Qg KQogICAgIHsKICAgICAgICAgcHQtPm9uX2xpc3QgPSAxOwotICAgICAgICBsaXN0X2FkZCgmcHQt Pmxpc3QsICZwdC0+dmNwdS0+YXJjaC5odm1fdmNwdS50bV9saXN0KTsKKyAgICAgICAgbGlzdF9h ZGQoJnB0LT5saXN0LCAmcHQtPnZjcHUtPmFyY2guaHZtLnRtX2xpc3QpOwogICAgICAgICB2Y3B1 X2tpY2socHQtPnZjcHUpOwogICAgIH0KICAgICBwdF91bmxvY2socHQpOwpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L21tL2hhcC9ndWVzdF93YWxrLmMgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2d1 ZXN0X3dhbGsuYwppbmRleCBjYjNmOWNlLi4zYjhlZTJlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvbW0vaGFwL2d1ZXN0X3dhbGsuYworKysgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2d1ZXN0X3dh bGsuYwpAQCAtNDIsNyArNDIsNyBAQCBhc20oIi5maWxlIFwiIiBfX09CSkVDVF9GSUxFX18gIlwi Iik7CiB1bnNpZ25lZCBsb25nIGhhcF9ndmFfdG9fZ2ZuKEdVRVNUX1BBR0lOR19MRVZFTFMpKAog ICAgIHN0cnVjdCB2Y3B1ICp2LCBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25n IGd2YSwgdWludDMyX3QgKnBmZWMpCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBjcjMgPSB2LT5hcmNo Lmh2bV92Y3B1Lmd1ZXN0X2NyWzNdOworICAgIHVuc2lnbmVkIGxvbmcgY3IzID0gdi0+YXJjaC5o dm0uZ3Vlc3RfY3JbM107CiAgICAgcmV0dXJuIGhhcF9wMm1fZ2FfdG9fZ2ZuKEdVRVNUX1BBR0lO R19MRVZFTFMpKHYsIHAybSwgY3IzLCBndmEsIHBmZWMsIE5VTEwpOwogfQogCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwpp bmRleCBmZTEwZTlkLi42MDMxMzYxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFwL2hh cC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKQEAgLTY2NCw3ICs2NjQsNyBAQCBz dGF0aWMgYm9vbF90IGhhcF9pbnZscGcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgdmEp CiAKIHN0YXRpYyB2b2lkIGhhcF91cGRhdGVfY3IzKHN0cnVjdCB2Y3B1ICp2LCBpbnQgZG9fbG9j a2luZywgYm9vbCBub2ZsdXNoKQogewotICAgIHYtPmFyY2guaHZtX3ZjcHUuaHdfY3JbM10gPSB2 LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzNdOworICAgIHYtPmFyY2guaHZtLmh3X2NyWzNdID0g di0+YXJjaC5odm0uZ3Vlc3RfY3JbM107CiAgICAgaHZtX3VwZGF0ZV9ndWVzdF9jcjModiwgbm9m bHVzaCk7CiB9CiAKQEAgLTY4MCw3ICs2ODAsNyBAQCBoYXBfcGFnaW5nX2dldF9tb2RlKHN0cnVj dCB2Y3B1ICp2KQogc3RhdGljIHZvaWQgaGFwX3VwZGF0ZV9wYWdpbmdfbW9kZXMoc3RydWN0IHZj cHUgKnYpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKLSAgICB1bnNpZ25l ZCBsb25nIGNyM19nZm4gPSB2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzNdID4+IFBBR0VfU0hJ RlQ7CisgICAgdW5zaWduZWQgbG9uZyBjcjNfZ2ZuID0gdi0+YXJjaC5odm0uZ3Vlc3RfY3JbM10g Pj4gUEFHRV9TSElGVDsKICAgICBwMm1fdHlwZV90IHQ7CiAKICAgICAvKiBXZSBob2xkIG9udG8g dGhlIGNyMyBhcyBpdCBtYXkgYmUgbW9kaWZpZWQgbGF0ZXIsIGFuZApkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0 aS5jCmluZGV4IDYyODE5ZWIuLjJkYWM4ZDEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9z aGFkb3cvbXVsdGkuYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMKQEAgLTQw NzAsNyArNDA3MCw3IEBAIHNoX3VwZGF0ZV9jcjMoc3RydWN0IHZjcHUgKnYsIGludCBkb19sb2Nr aW5nLCBib29sIG5vZmx1c2gpCiAKICAgICAgQVNTRVJUKHNoYWRvd19tb2RlX2V4dGVybmFsKGQp KTsKICAgICAgLyogRmluZCB3aGVyZSBpbiB0aGUgcGFnZSB0aGUgbDMgdGFibGUgaXMgKi8KLSAg ICAgZ3Vlc3RfaWR4ID0gZ3Vlc3RfaW5kZXgoKHZvaWQgKil2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0 X2NyWzNdKTsKKyAgICAgZ3Vlc3RfaWR4ID0gZ3Vlc3RfaW5kZXgoKHZvaWQgKil2LT5hcmNoLmh2 bS5ndWVzdF9jclszXSk7CiAKICAgICAgLy8gSWdub3JlIHRoZSBsb3cgMiBiaXRzIG9mIGd1ZXN0 X2lkeCAtLSB0aGV5IGFyZSByZWFsbHkganVzdAogICAgICAvLyBjYWNoZSBjb250cm9sLgpAQCAt NDIwOCwxOSArNDIwOCwxNyBAQCBzaF91cGRhdGVfY3IzKHN0cnVjdCB2Y3B1ICp2LCBpbnQgZG9f bG9ja2luZywgYm9vbCBub2ZsdXNoKQogCiAKICAgICAvLy8KLSAgICAvLy8gdi0+YXJjaC5odm1f dmNwdS5od19jclszXQorICAgIC8vLyB2LT5hcmNoLmh2bS5od19jclszXQogICAgIC8vLwogICAg IGlmICggc2hhZG93X21vZGVfZXh0ZXJuYWwoZCkgKQogICAgIHsKICAgICAgICAgQVNTRVJUKGlz X2h2bV9kb21haW4oZCkpOwogI2lmIFNIQURPV19QQUdJTkdfTEVWRUxTID09IDMKICAgICAgICAg LyogMi1vbi0zIG9yIDMtb24tMzogVXNlIHRoZSBQQUUgc2hhZG93IGwzIHRhYmxlIHdlIGp1c3Qg ZmFicmljYXRlZCAqLwotICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmh3X2NyWzNdID0KLSAgICAg ICAgICAgIHZpcnRfdG9fbWFkZHIoJnYtPmFyY2gucGFnaW5nLnNoYWRvdy5sM3RhYmxlKTsKKyAg ICAgICAgdi0+YXJjaC5odm0uaHdfY3JbM10gPSB2aXJ0X3RvX21hZGRyKCZ2LT5hcmNoLnBhZ2lu Zy5zaGFkb3cubDN0YWJsZSk7CiAjZWxzZQogICAgICAgICAvKiA0LW9uLTQ6IEp1c3QgdXNlIHRo ZSBzaGFkb3cgdG9wLWxldmVsIGRpcmVjdGx5ICovCi0gICAgICAgIHYtPmFyY2guaHZtX3ZjcHUu aHdfY3JbM10gPQotICAgICAgICAgICAgcGFnZXRhYmxlX2dldF9wYWRkcih2LT5hcmNoLnNoYWRv d190YWJsZVswXSk7CisgICAgICAgIHYtPmFyY2guaHZtLmh3X2NyWzNdID0gcGFnZXRhYmxlX2dl dF9wYWRkcih2LT5hcmNoLnNoYWRvd190YWJsZVswXSk7CiAjZW5kaWYKICAgICAgICAgaHZtX3Vw ZGF0ZV9ndWVzdF9jcjModiwgbm9mbHVzaCk7CiAgICAgfQpAQCAtNDU0Myw3ICs0NTQxLDcgQEAg c3RhdGljIHZvaWQgc2hfcGFnZXRhYmxlX2R5aW5nKHN0cnVjdCB2Y3B1ICp2LCBwYWRkcl90IGdw YSkKICAgICB1bnNpZ25lZCBsb25nIGwzZ2ZuOwogICAgIG1mbl90IGwzbWZuOwogCi0gICAgZ2Ny MyA9ICh2LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzNdKTsKKyAgICBnY3IzID0gdi0+YXJjaC5o dm0uZ3Vlc3RfY3JbM107CiAgICAgLyogZmFzdCBwYXRoOiB0aGUgcGFnZXRhYmxlIGJlbG9uZ3Mg dG8gdGhlIGN1cnJlbnQgY29udGV4dCAqLwogICAgIGlmICggZ2NyMyA9PSBncGEgKQogICAgICAg ICBmYXN0X3BhdGggPSAxOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RpbWUuYyBiL3hlbi9h cmNoL3g4Ni90aW1lLmMKaW5kZXggNTkyMmZiZi4uZTk2NGU2MCAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3RpbWUuYworKysgYi94ZW4vYXJjaC94ODYvdGltZS5jCkBAIC0xMDQxLDcgKzEwNDEs NyBAQCBzdGF0aWMgdm9pZCBfX3VwZGF0ZV92Y3B1X3N5c3RlbV90aW1lKHN0cnVjdCB2Y3B1ICp2 LCBpbnQgZm9yY2UpCiAgICAgICAgIHsKICAgICAgICAgICAgIHN0cnVjdCBwbF90aW1lICpwbCA9 IHYtPmRvbWFpbi0+YXJjaC5odm0ucGxfdGltZTsKIAotICAgICAgICAgICAgc3RpbWUgKz0gcGwt PnN0aW1lX29mZnNldCArIHYtPmFyY2guaHZtX3ZjcHUuc3RpbWVfb2Zmc2V0OworICAgICAgICAg ICAgc3RpbWUgKz0gcGwtPnN0aW1lX29mZnNldCArIHYtPmFyY2guaHZtLnN0aW1lX29mZnNldDsK ICAgICAgICAgICAgIGlmICggc3RpbWUgPj0gMCApCiAgICAgICAgICAgICAgICAgdHNjX3N0YW1w ID0gZ3RpbWVfdG9fZ3RzYyhkLCBzdGltZSk7CiAgICAgICAgICAgICBlbHNlCkBAIC0xMDgxLDcg KzEwODEsNyBAQCBzdGF0aWMgdm9pZCBfX3VwZGF0ZV92Y3B1X3N5c3RlbV90aW1lKHN0cnVjdCB2 Y3B1ICp2LCBpbnQgZm9yY2UpCiAgICAgICAgIF91LmZsYWdzIHw9IFhFTl9QVkNMT0NLX1RTQ19T VEFCTEVfQklUOwogCiAgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICkKLSAgICAgICAgX3UudHNj X3RpbWVzdGFtcCArPSB2LT5hcmNoLmh2bV92Y3B1LmNhY2hlX3RzY19vZmZzZXQ7CisgICAgICAg IF91LnRzY190aW1lc3RhbXAgKz0gdi0+YXJjaC5odm0uY2FjaGVfdHNjX29mZnNldDsKIAogICAg IC8qIERvbid0IGJvdGhlciB1bmxlc3MgdGltZXN0YW1wIHJlY29yZCBoYXMgY2hhbmdlZCBvciB3 ZSBhcmUgZm9yY2VkLiAqLwogICAgIF91LnZlcnNpb24gPSB1LT52ZXJzaW9uOyAvKiBtYWtlIHZl cnNpb25zIG1hdGNoIGZvciBtZW1jbXAgdGVzdCAqLwpAQCAtMjE5OSw3ICsyMTk5LDcgQEAgdm9p ZCB0c2Nfc2V0X2luZm8oc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAqLwogICAgICAg ICAgICAgZC0+YXJjaC5odm0uc3luY190c2MgPSByZHRzYygpOwogICAgICAgICAgICAgaHZtX3Nl dF90c2Nfb2Zmc2V0KGQtPnZjcHVbMF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZC0+dmNwdVswXS0+YXJjaC5odm1fdmNwdS5jYWNoZV90c2Nfb2Zmc2V0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGQtPnZjcHVbMF0tPmFyY2guaHZtLmNhY2hlX3RzY19vZmZzZXQs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC5odm0uc3luY190c2MpOwog ICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zm c2V0cy5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCmluZGV4IDI2NTI0YzQu LjU1NTgwNGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwor KysgYi94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKQEAgLTk1LDEyICs5NSwxMiBA QCB2b2lkIF9fZHVtbXlfXyh2b2lkKQogICAgIE9GRlNFVChWQ1BVX3ZteF9yZWFsbW9kZSwgc3Ry dWN0IHZjcHUsIGFyY2guaHZtX3ZteC52bXhfcmVhbG1vZGUpOwogICAgIE9GRlNFVChWQ1BVX3Zt eF9lbXVsYXRlLCBzdHJ1Y3QgdmNwdSwgYXJjaC5odm1fdm14LnZteF9lbXVsYXRlKTsKICAgICBP RkZTRVQoVkNQVV92bTg2X3NlZ19tYXNrLCBzdHJ1Y3QgdmNwdSwgYXJjaC5odm1fdm14LnZtODZf c2VnbWVudF9tYXNrKTsKLSAgICBPRkZTRVQoVkNQVV9odm1fZ3Vlc3RfY3IyLCBzdHJ1Y3QgdmNw dSwgYXJjaC5odm1fdmNwdS5ndWVzdF9jclsyXSk7CisgICAgT0ZGU0VUKFZDUFVfaHZtX2d1ZXN0 X2NyMiwgc3RydWN0IHZjcHUsIGFyY2guaHZtLmd1ZXN0X2NyWzJdKTsKICAgICBCTEFOSygpOwog Ci0gICAgT0ZGU0VUKFZDUFVfbmh2bV9ndWVzdG1vZGUsIHN0cnVjdCB2Y3B1LCBhcmNoLmh2bV92 Y3B1Lm52Y3B1Lm52X2d1ZXN0bW9kZSk7Ci0gICAgT0ZGU0VUKFZDUFVfbmh2bV9wMm0sIHN0cnVj dCB2Y3B1LCBhcmNoLmh2bV92Y3B1Lm52Y3B1Lm52X3AybSk7Ci0gICAgT0ZGU0VUKFZDUFVfbnN2 bV9oYXBfZW5hYmxlZCwgc3RydWN0IHZjcHUsIGFyY2guaHZtX3ZjcHUubnZjcHUudS5uc3ZtLm5z X2hhcF9lbmFibGVkKTsKKyAgICBPRkZTRVQoVkNQVV9uaHZtX2d1ZXN0bW9kZSwgc3RydWN0IHZj cHUsIGFyY2guaHZtLm52Y3B1Lm52X2d1ZXN0bW9kZSk7CisgICAgT0ZGU0VUKFZDUFVfbmh2bV9w Mm0sIHN0cnVjdCB2Y3B1LCBhcmNoLmh2bS5udmNwdS5udl9wMm0pOworICAgIE9GRlNFVChWQ1BV X25zdm1faGFwX2VuYWJsZWQsIHN0cnVjdCB2Y3B1LCBhcmNoLmh2bS5udmNwdS51Lm5zdm0ubnNf aGFwX2VuYWJsZWQpOwogICAgIEJMQU5LKCk7CiAKICAgICBPRkZTRVQoRE9NQUlOX2lzXzMyYml0 X3B2LCBzdHJ1Y3QgZG9tYWluLCBhcmNoLmlzXzMyYml0X3B2KTsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni94ODZfNjQvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYwppbmRl eCA2MDZiMWIwLi5jNDIzYmMwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBz LmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC90cmFwcy5jCkBAIC0xMDQsMTAgKzEwNCwxMCBA QCB2b2lkIHNob3dfcmVnaXN0ZXJzKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQog ICAgIHsKICAgICAgICAgc3RydWN0IHNlZ21lbnRfcmVnaXN0ZXIgc3JlZzsKICAgICAgICAgY29u dGV4dCA9IENUWFRfaHZtX2d1ZXN0OwotICAgICAgICBmYXVsdF9jcnNbMF0gPSB2LT5hcmNoLmh2 bV92Y3B1Lmd1ZXN0X2NyWzBdOwotICAgICAgICBmYXVsdF9jcnNbMl0gPSB2LT5hcmNoLmh2bV92 Y3B1Lmd1ZXN0X2NyWzJdOwotICAgICAgICBmYXVsdF9jcnNbM10gPSB2LT5hcmNoLmh2bV92Y3B1 Lmd1ZXN0X2NyWzNdOwotICAgICAgICBmYXVsdF9jcnNbNF0gPSB2LT5hcmNoLmh2bV92Y3B1Lmd1 ZXN0X2NyWzRdOworICAgICAgICBmYXVsdF9jcnNbMF0gPSB2LT5hcmNoLmh2bS5ndWVzdF9jclsw XTsKKyAgICAgICAgZmF1bHRfY3JzWzJdID0gdi0+YXJjaC5odm0uZ3Vlc3RfY3JbMl07CisgICAg ICAgIGZhdWx0X2Nyc1szXSA9IHYtPmFyY2guaHZtLmd1ZXN0X2NyWzNdOworICAgICAgICBmYXVs dF9jcnNbNF0gPSB2LT5hcmNoLmh2bS5ndWVzdF9jcls0XTsKICAgICAgICAgaHZtX2dldF9zZWdt ZW50X3JlZ2lzdGVyKHYsIHg4Nl9zZWdfY3MsICZzcmVnKTsKICAgICAgICAgZmF1bHRfcmVncy5j cyA9IHNyZWcuc2VsOwogICAgICAgICBodm1fZ2V0X3NlZ21lbnRfcmVnaXN0ZXIodiwgeDg2X3Nl Z19kcywgJnNyZWcpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCBi L3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKaW5kZXggNDcyMmMyZC4uMGVhMzc0MiAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9h c20teDg2L2RvbWFpbi5oCkBAIC01NDEsNyArNTQxLDcgQEAgc3RydWN0IGFyY2hfdmNwdQogICAg IC8qIFZpcnR1YWwgTWFjaGluZSBFeHRlbnNpb25zICovCiAgICAgdW5pb24gewogICAgICAgICBz dHJ1Y3QgcHZfdmNwdSBwdjsKLSAgICAgICAgc3RydWN0IGh2bV92Y3B1IGh2bV92Y3B1OworICAg ICAgICBzdHJ1Y3QgaHZtX3ZjcHUgaHZtOwogICAgIH07CiAKICAgICBwYWdldGFibGVfdCBndWVz dF90YWJsZV91c2VyOyAgICAgICAvKiAoTUZOKSB4ODYvNjQgdXNlci1zcGFjZSBwYWdldGFibGUg Ki8KQEAgLTYwNSw4ICs2MDUsOCBAQCB2b2lkIHVwZGF0ZV9ndWVzdF9tZW1vcnlfcG9saWN5KHN0 cnVjdCB2Y3B1ICp2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZ3Vl c3RfbWVtb3J5X3BvbGljeSAqcG9saWN5KTsKIAogLyogU2hvcnRoYW5kcyB0byBpbXByb3ZlIGNv ZGUgbGVnaWJpbGl0eS4gKi8KLSNkZWZpbmUgaHZtX3ZteCAgICAgICAgIGh2bV92Y3B1LnUudm14 Ci0jZGVmaW5lIGh2bV9zdm0gICAgICAgICBodm1fdmNwdS51LnN2bQorI2RlZmluZSBodm1fdm14 ICAgICAgICAgaHZtLnUudm14CisjZGVmaW5lIGh2bV9zdm0gICAgICAgICBodm0udS5zdm0KIAog Ym9vbCB1cGRhdGVfcnVuc3RhdGVfYXJlYShzdHJ1Y3QgdmNwdSAqKTsKIGJvb2wgdXBkYXRlX3Nl Y29uZGFyeV9zeXN0ZW1fdGltZShzdHJ1Y3QgdmNwdSAqLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9ndWVzdF9wdC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ndWVzdF9wdC5oCmlu ZGV4IDA4MDMxYzguLjg2ODRiODMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZ3Vl c3RfcHQuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2d1ZXN0X3B0LmgKQEAgLTIxNSw3ICsy MTUsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZ3Vlc3RfY2FuX3VzZV9sMl9zdXBlcnBhZ2VzKGNv bnN0IHN0cnVjdCB2Y3B1ICp2KQogICAgIHJldHVybiAoaXNfcHZfdmNwdSh2KSB8fAogICAgICAg ICAgICAgR1VFU1RfUEFHSU5HX0xFVkVMUyAhPSAyIHx8CiAgICAgICAgICAgICAhaHZtX3BhZ2lu Z19lbmFibGVkKHYpIHx8Ci0gICAgICAgICAgICAodi0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0 XSAmIFg4Nl9DUjRfUFNFKSk7CisgICAgICAgICAgICAodi0+YXJjaC5odm0uZ3Vlc3RfY3JbNF0g JiBYODZfQ1I0X1BTRSkpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZ3Vlc3RfY2FuX3VzZV9s M19zdXBlcnBhZ2VzKGNvbnN0IHN0cnVjdCBkb21haW4gKmQpCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9odm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCmlu ZGV4IGFjMGYwMzUuLjEzMmU2MmIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L2h2bS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCkBAIC0yODUsMjcgKzI4 NSwyNyBAQCB2b2lkIHZtc2lfZGVsaXZlcl9waXJxKHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0 cnVjdCBodm1fcGlycV9kcGNpICopOwogaW50IGh2bV9naXJxX2Rlc3RfMl92Y3B1X2lkKHN0cnVj dCBkb21haW4gKmQsIHVpbnQ4X3QgZGVzdCwgdWludDhfdCBkZXN0X21vZGUpOwogCiAjZGVmaW5l IGh2bV9wYWdpbmdfZW5hYmxlZCh2KSBcCi0gICAgKCEhKCh2KS0+YXJjaC5odm1fdmNwdS5ndWVz dF9jclswXSAmIFg4Nl9DUjBfUEcpKQorICAgICghISgodiktPmFyY2guaHZtLmd1ZXN0X2NyWzBd ICYgWDg2X0NSMF9QRykpCiAjZGVmaW5lIGh2bV93cF9lbmFibGVkKHYpIFwKLSAgICAoISEoKHYp LT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzBdICYgWDg2X0NSMF9XUCkpCisgICAgKCEhKCh2KS0+ YXJjaC5odm0uZ3Vlc3RfY3JbMF0gJiBYODZfQ1IwX1dQKSkKICNkZWZpbmUgaHZtX3BjaWRfZW5h YmxlZCh2KSBcCi0gICAgKCEhKCh2KS0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0XSAmIFg4Nl9D UjRfUENJREUpKQorICAgICghISgodiktPmFyY2guaHZtLmd1ZXN0X2NyWzRdICYgWDg2X0NSNF9Q Q0lERSkpCiAjZGVmaW5lIGh2bV9wYWVfZW5hYmxlZCh2KSBcCi0gICAgKGh2bV9wYWdpbmdfZW5h YmxlZCh2KSAmJiAoKHYpLT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2NyWzRdICYgWDg2X0NSNF9QQUUp KQorICAgIChodm1fcGFnaW5nX2VuYWJsZWQodikgJiYgKCh2KS0+YXJjaC5odm0uZ3Vlc3RfY3Jb NF0gJiBYODZfQ1I0X1BBRSkpCiAjZGVmaW5lIGh2bV9zbWVwX2VuYWJsZWQodikgXAotICAgICho dm1fcGFnaW5nX2VuYWJsZWQodikgJiYgKCh2KS0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0XSAm IFg4Nl9DUjRfU01FUCkpCisgICAgKGh2bV9wYWdpbmdfZW5hYmxlZCh2KSAmJiAoKHYpLT5hcmNo Lmh2bS5ndWVzdF9jcls0XSAmIFg4Nl9DUjRfU01FUCkpCiAjZGVmaW5lIGh2bV9zbWFwX2VuYWJs ZWQodikgXAotICAgIChodm1fcGFnaW5nX2VuYWJsZWQodikgJiYgKCh2KS0+YXJjaC5odm1fdmNw dS5ndWVzdF9jcls0XSAmIFg4Nl9DUjRfU01BUCkpCisgICAgKGh2bV9wYWdpbmdfZW5hYmxlZCh2 KSAmJiAoKHYpLT5hcmNoLmh2bS5ndWVzdF9jcls0XSAmIFg4Nl9DUjRfU01BUCkpCiAjZGVmaW5l IGh2bV9ueF9lbmFibGVkKHYpIFwKLSAgICAoKHYpLT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIg JiBFRkVSX05YKQorICAgICgodiktPmFyY2guaHZtLmd1ZXN0X2VmZXIgJiBFRkVSX05YKQogI2Rl ZmluZSBodm1fcGt1X2VuYWJsZWQodikgXAotICAgIChodm1fcGFnaW5nX2VuYWJsZWQodikgJiYg KCh2KS0+YXJjaC5odm1fdmNwdS5ndWVzdF9jcls0XSAmIFg4Nl9DUjRfUEtFKSkKKyAgICAoaHZt X3BhZ2luZ19lbmFibGVkKHYpICYmICgodiktPmFyY2guaHZtLmd1ZXN0X2NyWzRdICYgWDg2X0NS NF9QS0UpKQogCiAvKiBDYW4gd2UgdXNlIHN1cGVycGFnZXMgaW4gdGhlIEhBUCBwMm0gdGFibGU/ ICovCiAjZGVmaW5lIGhhcF9oYXNfMWdiICghIShodm1fZnVuY3MuaGFwX2NhcGFiaWxpdGllcyAm IEhWTV9IQVBfU1VQRVJQQUdFXzFHQikpCiAjZGVmaW5lIGhhcF9oYXNfMm1iICghIShodm1fZnVu Y3MuaGFwX2NhcGFiaWxpdGllcyAmIEhWTV9IQVBfU1VQRVJQQUdFXzJNQikpCiAKLSNkZWZpbmUg aHZtX2xvbmdfbW9kZV9hY3RpdmUodikgKCEhKCh2KS0+YXJjaC5odm1fdmNwdS5ndWVzdF9lZmVy ICYgRUZFUl9MTUEpKQorI2RlZmluZSBodm1fbG9uZ19tb2RlX2FjdGl2ZSh2KSAoISEoKHYpLT5h cmNoLmh2bS5ndWVzdF9lZmVyICYgRUZFUl9MTUEpKQogCiBlbnVtIGh2bV9pbnRibGsKIGh2bV9p bnRlcnJ1cHRfYmxvY2tlZChzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGh2bV9pbnRhY2sgaW50YWNr KTsKQEAgLTU0OCw3ICs1NDgsNyBAQCBpbnQgaHZtX2hhcF9uZXN0ZWRfcGFnZV9mYXVsdChwYWRk cl90IGdwYSwgdW5zaWduZWQgbG9uZyBnbGEsCiAjZGVmaW5lIGh2bV9tc3JfdHNjX2F1eCh2KSAo eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHN0 cnVjdCBkb21haW4gKl9fZCA9ICh2KS0+ZG9tYWluOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICAoX19kLT5hcmNoLnRzY19tb2RlID09IFRTQ19NT0RFX1BWUkRU U0NQKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgID8gKHUzMilfX2Qt PmFyY2guaW5jYXJuYXRpb24gOiAodTMyKSh2KS0+YXJjaC5odm1fdmNwdS5tc3JfdHNjX2F1eDsg XAorICAgICAgICA/ICh1MzIpX19kLT5hcmNoLmluY2FybmF0aW9uIDogKHUzMikodiktPmFyY2gu aHZtLm1zcl90c2NfYXV4OyAgICAgIFwKIH0pCiAKIGludCBodm1feDJhcGljX21zcl9yZWFkKHN0 cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpOwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vbmVzdGVkaHZtLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9uZXN0ZWRodm0uaAppbmRleCA0YTA0MWUyLi45ZDFjMjc0IDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9uZXN0ZWRodm0uaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9uZXN0ZWRodm0uaApAQCAtODksNyArODksNyBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgbmVzdGVkaHZtX3NldF9jcihzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGNy LAogewogICAgIGlmICggIW5lc3RlZGh2bV92bXN3aXRjaF9pbl9wcm9ncmVzcyh2KSAmJgogICAg ICAgICAgbmVzdGVkaHZtX3ZjcHVfaW5fZ3Vlc3Rtb2RlKHYpICkKLSAgICAgICAgdi0+YXJjaC5o dm1fdmNwdS5udmNwdS5ndWVzdF9jcltjcl0gPSB2YWx1ZTsKKyAgICAgICAgdi0+YXJjaC5odm0u bnZjcHUuZ3Vlc3RfY3JbY3JdID0gdmFsdWU7CiB9CiAKICNlbmRpZiAvKiBfSFZNX05FU1RFREhW TV9IICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vbmVzdGVkc3Zt LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vbmVzdGVkc3ZtLmgKaW5kZXggYWJjZjJl Ny4uMzFmYjRiZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL25lc3Rl ZHN2bS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9uZXN0ZWRzdm0uaApAQCAt OTQsNyArOTQsNyBAQCBzdHJ1Y3QgbmVzdGVkc3ZtIHsKIAogLyogVHJ1ZSB3aGVuIGwxIGd1ZXN0 IGVuYWJsZWQgU1ZNIGluIEVGRVIgKi8KICNkZWZpbmUgbnN2bV9lZmVyX3N2bV9lbmFibGVkKHYp IFwKLSAgICAoISEoKHYpLT5hcmNoLmh2bV92Y3B1Lmd1ZXN0X2VmZXIgJiBFRkVSX1NWTUUpKQor ICAgICghISgodiktPmFyY2guaHZtLmd1ZXN0X2VmZXIgJiBFRkVSX1NWTUUpKQogCiBpbnQgbmVz dGVkc3ZtX3ZtY2JfbWFwKHN0cnVjdCB2Y3B1ICp2LCB1aW50NjRfdCB2bWNiYWRkcik7CiB2b2lk IG5lc3RlZHN2bV92bWV4aXRfZGVmZXIoc3RydWN0IHZjcHUgKnYsCmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS92Y3B1LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92Y3B1 LmgKaW5kZXggODZiNGVlMi4uNTRlYTA0NCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vdmNwdS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZjcHUuaApAQCAtMTM1 LDE0ICsxMzUsMTQgQEAgc3RydWN0IG5lc3RlZHZjcHUgewogICAgIHVuc2lnbmVkIGxvbmcgICAg ICAgZ3Vlc3RfY3JbNV07CiB9OwogCi0jZGVmaW5lIHZjcHVfbmVzdGVkaHZtKHYpICgodiktPmFy Y2guaHZtX3ZjcHUubnZjcHUpCisjZGVmaW5lIHZjcHVfbmVzdGVkaHZtKHYpICgodiktPmFyY2gu aHZtLm52Y3B1KQogCiBzdHJ1Y3QgYWx0cDJtdmNwdSB7CiAgICAgdWludDE2X3QgICAgcDJtaWR4 OyAgICAgICAgIC8qIGFsdGVybmF0ZSBwMm0gaW5kZXggKi8KICAgICBnZm5fdCAgICAgICB2ZWlu Zm9fZ2ZuOyAgICAgLyogI1ZFIGluZm9ybWF0aW9uIHBhZ2UgZ2ZuICovCiB9OwogCi0jZGVmaW5l IHZjcHVfYWx0cDJtKHYpICgodiktPmFyY2guaHZtX3ZjcHUuYXZjcHUpCisjZGVmaW5lIHZjcHVf YWx0cDJtKHYpICgodiktPmFyY2guaHZtLmF2Y3B1KQogCiBzdHJ1Y3QgaHZtX3ZjcHUgewogICAg IC8qIEd1ZXN0IGNvbnRyb2wtcmVnaXN0ZXIgYW5kIEVGRVIgdmFsdWVzLCBqdXN0IGFzIHRoZSBn dWVzdCBzZWVzIHRoZW0uICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92 bGFwaWMuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZsYXBpYy5oCmluZGV4IDIxMmMzNmIu LjhkYmVjOTAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZsYXBpYy5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZsYXBpYy5oCkBAIC0yNSwxMCArMjUsMTAgQEAK ICNpbmNsdWRlIDxwdWJsaWMvaHZtL2lvcmVxLmg+CiAjaW5jbHVkZSA8YXNtL2h2bS92cHQuaD4K IAotI2RlZmluZSB2Y3B1X3ZsYXBpYyh4KSAgICgmKHgpLT5hcmNoLmh2bV92Y3B1LnZsYXBpYykK LSNkZWZpbmUgdmxhcGljX3ZjcHUoeCkgICAoY29udGFpbmVyX29mKCh4KSwgc3RydWN0IHZjcHUs IGFyY2guaHZtX3ZjcHUudmxhcGljKSkKKyNkZWZpbmUgdmNwdV92bGFwaWMoeCkgICAoJih4KS0+ YXJjaC5odm0udmxhcGljKQorI2RlZmluZSB2bGFwaWNfdmNwdSh4KSAgIChjb250YWluZXJfb2Yo KHgpLCBzdHJ1Y3QgdmNwdSwgYXJjaC5odm0udmxhcGljKSkKICNkZWZpbmUgY29uc3RfdmxhcGlj X3ZjcHUoeCkgKGNvbnRhaW5lcl9vZigoeCksIGNvbnN0IHN0cnVjdCB2Y3B1LCBcCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcmNoLmh2bV92Y3B1LnZsYXBpYykpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhcmNoLmh2bS52bGFwaWMpKQogI2RlZmluZSB2bGFwaWNfZG9t YWluKHgpICh2bGFwaWNfdmNwdSh4KS0+ZG9tYWluKQogCiAjZGVmaW5lIF9WTEFQSUNfSUQodmxh cGljLCBpZCkgKHZsYXBpY194MmFwaWNfbW9kZSh2bGFwaWMpIFwKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL3ZteC92bXguaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3Zt eC92bXguaAppbmRleCA4OTYxOWU0Li4yM2RlODY5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2h2bS92bXgvdm14LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdm14L3Zt eC5oCkBAIC01NTIsNyArNTUyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHZwaWRfc3luY192Y3B1 X2d2YShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBndmEpCiAgICAgICAgIHR5cGUgPSBJ TlZWUElEX0FMTF9DT05URVhUOwogCiBleGVjdXRlX2ludnZwaWQ6Ci0gICAgX19pbnZ2cGlkKHR5 cGUsIHYtPmFyY2guaHZtX3ZjcHUubjFhc2lkLmFzaWQsICh1NjQpZ3ZhKTsKKyAgICBfX2ludnZw aWQodHlwZSwgdi0+YXJjaC5odm0ubjFhc2lkLmFzaWQsICh1NjQpZ3ZhKTsKIH0KIAogc3RhdGlj IGlubGluZSB2b2lkIHZwaWRfc3luY19hbGwodm9pZCkKLS0gCjIuMS40CgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0 Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==