From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/7] x86/pv: Rename v->arch.pv_vcpu to v->arch.pv Date: Tue, 28 Aug 2018 18:39:01 +0100 Message-ID: <1535477946-17892-3-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: Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIHRyYWlsaW5nIF92Y3B1IHN1ZmZpeCBpcyByZWR1bmRhbnQsIGJ1dCBhZGRzIHRvIGNvZGUg dm9sdW1lLiAgRHJvcCBpdC4KClJlZmxvdyBsaW5lcyBhcyBhcHByb3ByaWF0ZSwgYW5kIHN3aXRj aCB0byB1c2luZyB0aGUgbmV3IFhGUkVFL2V0YyB3cmFwcGVycwp3aGVyZSBhcHBsaWNhYmxlLgoK Tm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNl LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNDOiBSb2dlciBQYXUgTW9u bsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvY3B1L2FtZC5jICAg ICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMgICAgICAgICAgICB8 ICAyICstCiB4ZW4vYXJjaC94ODYvY3B1aWQuYyAgICAgICAgICAgICAgICB8ICA2ICstLQogeGVu L2FyY2gveDg2L2RvbWFpbi5jICAgICAgICAgICAgICAgfCA4OCArKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyAgICAgICAgICB8 ICA2ICstLQogeGVuL2FyY2gveDg2L2RvbWN0bC5jICAgICAgICAgICAgICAgfCA3NiArKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2kzODcuYyAgICAgICAgICAg ICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgICAgfCAxMCAr Ky0tLQogeGVuL2FyY2gveDg2L3BoeXNkZXYuYyAgICAgICAgICAgICAgfCAgOSArKy0tCiB4ZW4v YXJjaC94ODYvcHYvY2FsbGJhY2suYyAgICAgICAgICB8IDQyICsrKysrKysrKy0tLS0tLS0tLQog eGVuL2FyY2gveDg2L3B2L2Rlc2NyaXB0b3ItdGFibGVzLmMgfCAxOCArKysrLS0tLQogeGVuL2Fy Y2gveDg2L3B2L2RvbTBfYnVpbGQuYyAgICAgICAgfCAgNCArLQogeGVuL2FyY2gveDg2L3B2L2Rv bWFpbi5jICAgICAgICAgICAgfCAzMCArKysrKystLS0tLS0tCiB4ZW4vYXJjaC94ODYvcHYvZW11 bC1nYXRlLW9wLmMgICAgICB8ICA0ICstCiB4ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMg ICAgICB8IDQyICsrKysrKysrKy0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3B2L2lyZXQuYyAgICAg ICAgICAgICAgfCAxMCArKy0tLQogeGVuL2FyY2gveDg2L3B2L21pc2MtaHlwZXJjYWxscy5jICAg fCAgNCArLQogeGVuL2FyY2gveDg2L3B2L21tLmMgICAgICAgICAgICAgICAgfCAxMCArKy0tLQog eGVuL2FyY2gveDg2L3B2L3RyYXBzLmMgICAgICAgICAgICAgfCAxMCArKy0tLQogeGVuL2FyY2gv eDg2L3RpbWUuYyAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L3RyYXBzLmMg ICAgICAgICAgICAgICAgfCAyNCArKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1v ZmZzZXRzLmMgICB8IDI4ICsrKysrKy0tLS0tLQogeGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5T ICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jICAgICAgICAgICAgfCAx MCArKy0tLQogeGVuL2FyY2gveDg2L3g4Nl82NC90cmFwcy5jICAgICAgICAgfCAxMCArKy0tLQog eGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlLmMgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUv YXNtLXg4Ni9kb21haW4uaCAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9sZHQu aCAgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi90cmFwcy5oICAgICAg fCAgMiArLQogMjkgZmlsZXMgY2hhbmdlZCwgMjI3IGluc2VydGlvbnMoKyksIDIzMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2FtZC5jIGIveGVuL2FyY2gveDg2 L2NwdS9hbWQuYwppbmRleCBlMGVlMTE0Li5jMzk0YzFjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvY3B1L2FtZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKQEAgLTIyMCw3ICsyMjAs NyBAQCBzdGF0aWMgdm9pZCBhbWRfY3R4dF9zd2l0Y2hfbWFza2luZyhjb25zdCBzdHJ1Y3QgdmNw dSAqbmV4dCkKIAkJICoga2VybmVsLgogCQkgKi8KIAkJaWYgKG5leHQgJiYgaXNfcHZfdmNwdShu ZXh0KSAmJiAhaXNfaWRsZV92Y3B1KG5leHQpICYmCi0JCSAgICAhKG5leHQtPmFyY2gucHZfdmNw dS5jdHJscmVnWzRdICYgWDg2X0NSNF9PU1hTQVZFKSkKKwkJICAgICEobmV4dC0+YXJjaC5wdi5j dHJscmVnWzRdICYgWDg2X0NSNF9PU1hTQVZFKSkKIAkJCXZhbCAmPSB+KCh1aW50NjRfdCljcHVm ZWF0X21hc2soWDg2X0ZFQVRVUkVfT1NYU0FWRSkgPDwgMzIpOwogCiAJCWlmICh1bmxpa2VseSh0 aGVzZV9tYXNrcy0+XzFjZCAhPSB2YWwpKSB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1 L2ludGVsLmMgYi94ZW4vYXJjaC94ODYvY3B1L2ludGVsLmMKaW5kZXggOGMzNzVjOC4uNjVmYTNk NiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9pbnRlbC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9jcHUvaW50ZWwuYwpAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2N0eHRf c3dpdGNoX21hc2tpbmcoY29uc3Qgc3RydWN0IHZjcHUgKm5leHQpCiAJCSAqIGtlcm5lbC4KIAkJ ICovCiAJCWlmIChuZXh0ICYmIGlzX3B2X3ZjcHUobmV4dCkgJiYgIWlzX2lkbGVfdmNwdShuZXh0 KSAmJgotCQkgICAgIShuZXh0LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1s0XSAmIFg4Nl9DUjRfT1NY U0FWRSkpCisJCSAgICAhKG5leHQtPmFyY2gucHYuY3RybHJlZ1s0XSAmIFg4Nl9DUjRfT1NYU0FW RSkpCiAJCQl2YWwgJj0gfih1aW50NjRfdCljcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfT1NYU0FW RSk7CiAKIAkJaWYgKHVubGlrZWx5KHRoZXNlX21hc2tzLT5fMWNkICE9IHZhbCkpIHsKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHVpZC5jIGIveGVuL2FyY2gveDg2L2NwdWlkLmMKaW5kZXgg ODg2OTRlZC4uMjQzNjZlYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdWlkLmMKKysrIGIv eGVuL2FyY2gveDg2L2NwdWlkLmMKQEAgLTg0MSw3ICs4NDEsNyBAQCB2b2lkIGd1ZXN0X2NwdWlk KGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBsZWFmLAogICAgICAgICAgICAgICoKICAg ICAgICAgICAgICAqIEFyY2hpdGVjdHVyYWxseSwgdGhlIGNvcnJlY3QgY29kZSBoZXJlIGlzIHNp bXBseToKICAgICAgICAgICAgICAqCi0gICAgICAgICAgICAgKiAgIGlmICggdi0+YXJjaC5wdl92 Y3B1LmN0cmxyZWdbNF0gJiBYODZfQ1I0X09TWFNBVkUgKQorICAgICAgICAgICAgICogICBpZiAo IHYtPmFyY2gucHYuY3RybHJlZ1s0XSAmIFg4Nl9DUjRfT1NYU0FWRSApCiAgICAgICAgICAgICAg KiAgICAgICBjIHw9IGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9PU1hTQVZFKTsKICAgICAgICAg ICAgICAqCiAgICAgICAgICAgICAgKiBIb3dldmVyIGJlY2F1c2Ugb2YgYnVncyBpbiBYZW4gKGJl Zm9yZSBjL3MgYmQxOTA4MGIsIE5vdiAyMDEwLApAQCAtODg3LDcgKzg4Nyw3IEBAIHZvaWQgZ3Vl c3RfY3B1aWQoY29uc3Qgc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IGxlYWYsCiAgICAgICAgICAg ICAgKiAgICAjVUQgb3IgI0dQIGlzIGN1cnJlbnRseSBiZWluZyBzZXJ2aWNlZC4KICAgICAgICAg ICAgICAqLwogICAgICAgICAgICAgLyogT1NYU0FWRSBjbGVhciBpbiBwb2xpY3kuICBGYXN0LWZv cndhcmQgQ1I0IGJhY2sgaW4uICovCi0gICAgICAgICAgICBpZiAoICh2LT5hcmNoLnB2X3ZjcHUu Y3RybHJlZ1s0XSAmIFg4Nl9DUjRfT1NYU0FWRSkgfHwKKyAgICAgICAgICAgIGlmICggKHYtPmFy Y2gucHYuY3RybHJlZ1s0XSAmIFg4Nl9DUjRfT1NYU0FWRSkgfHwKICAgICAgICAgICAgICAgICAg KHJlZ3MtPmVudHJ5X3ZlY3RvciA9PSBUUkFQX2ludmFsaWRfb3AgJiYKICAgICAgICAgICAgICAg ICAgIGd1ZXN0X2tlcm5lbF9tb2RlKHYsIHJlZ3MpICYmCiAgICAgICAgICAgICAgICAgICAocmVh ZF9jcjQoKSAmIFg4Nl9DUjRfT1NYU0FWRSkpICkKQEAgLTk1OSw3ICs5NTksNyBAQCB2b2lkIGd1 ZXN0X2NwdWlkKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBsZWFmLAogICAgICAgICBj YXNlIDA6CiAgICAgICAgICAgICAvKiBPU1BLRSBjbGVhciBpbiBwb2xpY3kuICBGYXN0LWZvcndh cmQgQ1I0IGJhY2sgaW4uICovCiAgICAgICAgICAgICBpZiAoIChpc19wdl9kb21haW4oZCkKLSAg ICAgICAgICAgICAgICAgID8gdi0+YXJjaC5wdl92Y3B1LmN0cmxyZWdbNF0KKyAgICAgICAgICAg ICAgICAgID8gdi0+YXJjaC5wdi5jdHJscmVnWzRdCiAgICAgICAgICAgICAgICAgICA6IHYtPmFy Y2guaHZtX3ZjcHUuZ3Vlc3RfY3JbNF0pICYgWDg2X0NSNF9QS0UgKQogICAgICAgICAgICAgICAg IHJlcy0+YyB8PSBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfT1NQS0UpOwogICAgICAgICAgICAg YnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYv ZG9tYWluLmMKaW5kZXggOGM3ZGRmNS4uNGNkY2Q1ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtODQ5LDcgKzg0OSw3IEBA IGludCBhcmNoX3NldF9pbmZvX2d1ZXN0KAogICAgIHsKICAgICAgICAgbWVtY3B5KCZ2LT5hcmNo LnVzZXJfcmVncywgJmMubmF0LT51c2VyX3JlZ3MsIHNpemVvZihjLm5hdC0+dXNlcl9yZWdzKSk7 CiAgICAgICAgIGlmICggaXNfcHZfZG9tYWluKGQpICkKLSAgICAgICAgICAgIG1lbWNweSh2LT5h cmNoLnB2X3ZjcHUudHJhcF9jdHh0LCBjLm5hdC0+dHJhcF9jdHh0LAorICAgICAgICAgICAgbWVt Y3B5KHYtPmFyY2gucHYudHJhcF9jdHh0LCBjLm5hdC0+dHJhcF9jdHh0LAogICAgICAgICAgICAg ICAgICAgIHNpemVvZihjLm5hdC0+dHJhcF9jdHh0KSk7CiAgICAgfQogICAgIGVsc2UKQEAgLTg1 OCw3ICs4NTgsNyBAQCBpbnQgYXJjaF9zZXRfaW5mb19ndWVzdCgKICAgICAgICAgaWYgKCBpc19w dl9kb21haW4oZCkgKQogICAgICAgICB7CiAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEFS UkFZX1NJWkUoYy5jbXAtPnRyYXBfY3R4dCk7ICsraSApCi0gICAgICAgICAgICAgICAgWExBVF90 cmFwX2luZm8odi0+YXJjaC5wdl92Y3B1LnRyYXBfY3R4dCArIGksCisgICAgICAgICAgICAgICAg WExBVF90cmFwX2luZm8odi0+YXJjaC5wdi50cmFwX2N0eHQgKyBpLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGMuY21wLT50cmFwX2N0eHQgKyBpKTsKICAgICAgICAgfQogICAgIH0K QEAgLTg3Myw3ICs4NzMsNyBAQCBpbnQgYXJjaF9zZXRfaW5mb19ndWVzdCgKICAgICB9CiAKICAg ICAvKiBJT1BMIHByaXZpbGVnZXMgYXJlIHZpcnR1YWxpc2VkLiAqLwotICAgIHYtPmFyY2gucHZf dmNwdS5pb3BsID0gdi0+YXJjaC51c2VyX3JlZ3MuZWZsYWdzICYgWDg2X0VGTEFHU19JT1BMOwor ICAgIHYtPmFyY2gucHYuaW9wbCA9IHYtPmFyY2gudXNlcl9yZWdzLmVmbGFncyAmIFg4Nl9FRkxB R1NfSU9QTDsKICAgICB2LT5hcmNoLnVzZXJfcmVncy5lZmxhZ3MgJj0gflg4Nl9FRkxBR1NfSU9Q TDsKIAogICAgIC8qIEVuc3VyZSByZWFsIGhhcmR3YXJlIGludGVycnVwdHMgYXJlIGVuYWJsZWQu ICovCkBAIC04ODQsOCArODg0LDggQEAgaW50IGFyY2hfc2V0X2luZm9fZ3Vlc3QoCiAgICAgICAg IGlmICggIWNvbXBhdCAmJiAhKGZsYWdzICYgVkdDRl9pbl9rZXJuZWwpICYmICFjLm5hdC0+Y3Ry bHJlZ1sxXSApCiAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgICAgICB2LT5hcmNo LnB2X3ZjcHUubGR0X2Jhc2UgPSBjKGxkdF9iYXNlKTsKLSAgICAgICAgdi0+YXJjaC5wdl92Y3B1 LmxkdF9lbnRzID0gYyhsZHRfZW50cyk7CisgICAgICAgIHYtPmFyY2gucHYubGR0X2Jhc2UgPSBj KGxkdF9iYXNlKTsKKyAgICAgICAgdi0+YXJjaC5wdi5sZHRfZW50cyA9IGMobGR0X2VudHMpOwog ICAgIH0KICAgICBlbHNlCiAgICAgewpAQCAtOTEwLDQ3ICs5MTAsNDcgQEAgaW50IGFyY2hfc2V0 X2luZm9fZ3Vlc3QoCiAgICAgICAgICAgICBmYWlsID0gY29tcGF0X3Bmbl90b19jcjMocGZuKSAh PSBjLmNtcC0+Y3RybHJlZ1szXTsKICAgICAgICAgfQogCi0gICAgICAgIGZvciAoIGkgPSAwOyBp IDwgQVJSQVlfU0laRSh2LT5hcmNoLnB2X3ZjcHUuZ2R0X2ZyYW1lcyk7ICsraSApCi0gICAgICAg ICAgICBmYWlsIHw9IHYtPmFyY2gucHZfdmNwdS5nZHRfZnJhbWVzW2ldICE9IGMoZ2R0X2ZyYW1l c1tpXSk7Ci0gICAgICAgIGZhaWwgfD0gdi0+YXJjaC5wdl92Y3B1LmdkdF9lbnRzICE9IGMoZ2R0 X2VudHMpOworICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUodi0+YXJjaC5wdi5n ZHRfZnJhbWVzKTsgKytpICkKKyAgICAgICAgICAgIGZhaWwgfD0gdi0+YXJjaC5wdi5nZHRfZnJh bWVzW2ldICE9IGMoZ2R0X2ZyYW1lc1tpXSk7CisgICAgICAgIGZhaWwgfD0gdi0+YXJjaC5wdi5n ZHRfZW50cyAhPSBjKGdkdF9lbnRzKTsKIAotICAgICAgICBmYWlsIHw9IHYtPmFyY2gucHZfdmNw dS5sZHRfYmFzZSAhPSBjKGxkdF9iYXNlKTsKLSAgICAgICAgZmFpbCB8PSB2LT5hcmNoLnB2X3Zj cHUubGR0X2VudHMgIT0gYyhsZHRfZW50cyk7CisgICAgICAgIGZhaWwgfD0gdi0+YXJjaC5wdi5s ZHRfYmFzZSAhPSBjKGxkdF9iYXNlKTsKKyAgICAgICAgZmFpbCB8PSB2LT5hcmNoLnB2LmxkdF9l bnRzICE9IGMobGR0X2VudHMpOwogCiAgICAgICAgIGlmICggZmFpbCApCiAgICAgICAgICAgIHJl dHVybiAtRU9QTk9UU1VQUDsKICAgICB9CiAKLSAgICB2LT5hcmNoLnB2X3ZjcHUua2VybmVsX3Nz ID0gYyhrZXJuZWxfc3MpOwotICAgIHYtPmFyY2gucHZfdmNwdS5rZXJuZWxfc3AgPSBjKGtlcm5l bF9zcCk7Ci0gICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHYtPmFyY2gucHZfdmNwdS5j dHJscmVnKTsgKytpICkKLSAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmN0cmxyZWdbaV0gPSBjKGN0 cmxyZWdbaV0pOworICAgIHYtPmFyY2gucHYua2VybmVsX3NzID0gYyhrZXJuZWxfc3MpOworICAg IHYtPmFyY2gucHYua2VybmVsX3NwID0gYyhrZXJuZWxfc3ApOworICAgIGZvciAoIGkgPSAwOyBp IDwgQVJSQVlfU0laRSh2LT5hcmNoLnB2LmN0cmxyZWcpOyArK2kgKQorICAgICAgICB2LT5hcmNo LnB2LmN0cmxyZWdbaV0gPSBjKGN0cmxyZWdbaV0pOwogCi0gICAgdi0+YXJjaC5wdl92Y3B1LmV2 ZW50X2NhbGxiYWNrX2VpcCA9IGMoZXZlbnRfY2FsbGJhY2tfZWlwKTsKLSAgICB2LT5hcmNoLnB2 X3ZjcHUuZmFpbHNhZmVfY2FsbGJhY2tfZWlwID0gYyhmYWlsc2FmZV9jYWxsYmFja19laXApOwor ICAgIHYtPmFyY2gucHYuZXZlbnRfY2FsbGJhY2tfZWlwID0gYyhldmVudF9jYWxsYmFja19laXAp OworICAgIHYtPmFyY2gucHYuZmFpbHNhZmVfY2FsbGJhY2tfZWlwID0gYyhmYWlsc2FmZV9jYWxs YmFja19laXApOwogICAgIGlmICggIWNvbXBhdCApCiAgICAgewotICAgICAgICB2LT5hcmNoLnB2 X3ZjcHUuc3lzY2FsbF9jYWxsYmFja19laXAgPSBjLm5hdC0+c3lzY2FsbF9jYWxsYmFja19laXA7 CisgICAgICAgIHYtPmFyY2gucHYuc3lzY2FsbF9jYWxsYmFja19laXAgPSBjLm5hdC0+c3lzY2Fs bF9jYWxsYmFja19laXA7CiAgICAgICAgIC8qIG5vbi1udWwgc2VsZWN0b3Iga2lsbHMgZnNfYmFz ZSAqLwotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZnNfYmFzZSA9CisgICAgICAgIHYtPmFyY2gu cHYuZnNfYmFzZSA9CiAgICAgICAgICAgICAhKHYtPmFyY2gudXNlcl9yZWdzLmZzICYgfjMpID8g Yy5uYXQtPmZzX2Jhc2UgOiAwOwotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZ3NfYmFzZV9rZXJu ZWwgPSBjLm5hdC0+Z3NfYmFzZV9rZXJuZWw7CisgICAgICAgIHYtPmFyY2gucHYuZ3NfYmFzZV9r ZXJuZWwgPSBjLm5hdC0+Z3NfYmFzZV9rZXJuZWw7CiAgICAgICAgIC8qIG5vbi1udWwgc2VsZWN0 b3Iga2lsbHMgZ3NfYmFzZV91c2VyICovCi0gICAgICAgIHYtPmFyY2gucHZfdmNwdS5nc19iYXNl X3VzZXIgPQorICAgICAgICB2LT5hcmNoLnB2LmdzX2Jhc2VfdXNlciA9CiAgICAgICAgICAgICAh KHYtPmFyY2gudXNlcl9yZWdzLmdzICYgfjMpID8gYy5uYXQtPmdzX2Jhc2VfdXNlciA6IDA7CiAg ICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHYtPmFyY2gucHZfdmNwdS5ldmVudF9jYWxs YmFja19jcyA9IGMoZXZlbnRfY2FsbGJhY2tfY3MpOwotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUu ZmFpbHNhZmVfY2FsbGJhY2tfY3MgPSBjKGZhaWxzYWZlX2NhbGxiYWNrX2NzKTsKKyAgICAgICAg di0+YXJjaC5wdi5ldmVudF9jYWxsYmFja19jcyA9IGMoZXZlbnRfY2FsbGJhY2tfY3MpOworICAg ICAgICB2LT5hcmNoLnB2LmZhaWxzYWZlX2NhbGxiYWNrX2NzID0gYyhmYWlsc2FmZV9jYWxsYmFj a19jcyk7CiAgICAgfQogCiAgICAgLyogT25seSBDUjAuVFMgaXMgbW9kaWZpYWJsZSBieSBndWVz dCBvciBhZG1pbi4gKi8KLSAgICB2LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1swXSAmPSBYODZfQ1Iw X1RTOwotICAgIHYtPmFyY2gucHZfdmNwdS5jdHJscmVnWzBdIHw9IHJlYWRfY3IwKCkgJiB+WDg2 X0NSMF9UUzsKKyAgICB2LT5hcmNoLnB2LmN0cmxyZWdbMF0gJj0gWDg2X0NSMF9UUzsKKyAgICB2 LT5hcmNoLnB2LmN0cmxyZWdbMF0gfD0gcmVhZF9jcjAoKSAmIH5YODZfQ1IwX1RTOwogCi0gICAg Y3I0ID0gdi0+YXJjaC5wdl92Y3B1LmN0cmxyZWdbNF07Ci0gICAgdi0+YXJjaC5wdl92Y3B1LmN0 cmxyZWdbNF0gPSBjcjQgPyBwdl9ndWVzdF9jcjRfZml4dXAodiwgY3I0KSA6CisgICAgY3I0ID0g di0+YXJjaC5wdi5jdHJscmVnWzRdOworICAgIHYtPmFyY2gucHYuY3RybHJlZ1s0XSA9IGNyNCA/ IHB2X2d1ZXN0X2NyNF9maXh1cCh2LCBjcjQpIDoKICAgICAgICAgcmVhbF9jcjRfdG9fcHZfZ3Vl c3RfY3I0KG1tdV9jcjRfZmVhdHVyZXMpOwogCiAgICAgbWVtc2V0KHYtPmFyY2guZGVidWdyZWcs IDAsIHNpemVvZih2LT5hcmNoLmRlYnVncmVnKSk7CkBAIC0xMDEyLDEwICsxMDEyLDEwIEBAIGlu dCBhcmNoX3NldF9pbmZvX2d1ZXN0KAogICAgICAgICByYyA9IChpbnQpcHZfc2V0X2dkdCh2LCBj Lm5hdC0+Z2R0X2ZyYW1lcywgYy5uYXQtPmdkdF9lbnRzKTsKICAgICBlbHNlCiAgICAgewotICAg ICAgICB1bnNpZ25lZCBsb25nIGdkdF9mcmFtZXNbQVJSQVlfU0laRSh2LT5hcmNoLnB2X3ZjcHUu Z2R0X2ZyYW1lcyldOworICAgICAgICB1bnNpZ25lZCBsb25nIGdkdF9mcmFtZXNbQVJSQVlfU0la RSh2LT5hcmNoLnB2LmdkdF9mcmFtZXMpXTsKICAgICAgICAgdW5zaWduZWQgaW50IG5yX2ZyYW1l cyA9IERJVl9ST1VORF9VUChjLmNtcC0+Z2R0X2VudHMsIDUxMik7CiAKLSAgICAgICAgaWYgKCBu cl9mcmFtZXMgPiBBUlJBWV9TSVpFKHYtPmFyY2gucHZfdmNwdS5nZHRfZnJhbWVzKSApCisgICAg ICAgIGlmICggbnJfZnJhbWVzID4gQVJSQVlfU0laRSh2LT5hcmNoLnB2LmdkdF9mcmFtZXMpICkK ICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwg bnJfZnJhbWVzOyArK2kgKQpAQCAtMTMxOSwyMCArMTMxOSwyMCBAQCBzdGF0aWMgdm9pZCBsb2Fk X3NlZ21lbnRzKHN0cnVjdCB2Y3B1ICpuKQogICAgIGlmICggIWlzX3B2XzMyYml0X3ZjcHUobikg KQogICAgIHsKICAgICAgICAgLyogVGhpcyBjYW4gb25seSBiZSBub24temVybyBpZiBzZWxlY3Rv ciBpcyBOVUxMLiAqLwotICAgICAgICBpZiAoIG4tPmFyY2gucHZfdmNwdS5mc19iYXNlIHwgKGRp cnR5X3NlZ21lbnRfbWFzayAmIERJUlRZX0ZTX0JBU0UpICkKLSAgICAgICAgICAgIHdyZnNiYXNl KG4tPmFyY2gucHZfdmNwdS5mc19iYXNlKTsKKyAgICAgICAgaWYgKCBuLT5hcmNoLnB2LmZzX2Jh c2UgfCAoZGlydHlfc2VnbWVudF9tYXNrICYgRElSVFlfRlNfQkFTRSkgKQorICAgICAgICAgICAg d3Jmc2Jhc2Uobi0+YXJjaC5wdi5mc19iYXNlKTsKIAogICAgICAgICAvKgogICAgICAgICAgKiBN b3N0IGtlcm5lbHMgaGF2ZSBub24temVybyBHUyBiYXNlLCBzbyBkb24ndCBib3RoZXIgdGVzdGlu Zy4KICAgICAgICAgICogKEZvciBvbGQgQU1EIGhhcmR3YXJlIHRoaXMgaXMgYWxzbyBhIHNlcmlh bGlzaW5nIGluc3RydWN0aW9uLAogICAgICAgICAgKiBhdm9pZGluZyBlcnJhdHVtICM4OC4pCiAg ICAgICAgICAqLwotICAgICAgICB3cmdzc2hhZG93KG4tPmFyY2gucHZfdmNwdS5nc19iYXNlX2tl cm5lbCk7CisgICAgICAgIHdyZ3NzaGFkb3cobi0+YXJjaC5wdi5nc19iYXNlX2tlcm5lbCk7CiAK ICAgICAgICAgLyogVGhpcyBjYW4gb25seSBiZSBub24temVybyBpZiBzZWxlY3RvciBpcyBOVUxM LiAqLwotICAgICAgICBpZiAoIG4tPmFyY2gucHZfdmNwdS5nc19iYXNlX3VzZXIgfAorICAgICAg ICBpZiAoIG4tPmFyY2gucHYuZ3NfYmFzZV91c2VyIHwKICAgICAgICAgICAgICAoZGlydHlfc2Vn bWVudF9tYXNrICYgRElSVFlfR1NfQkFTRSkgKQotICAgICAgICAgICAgd3Jnc2Jhc2Uobi0+YXJj aC5wdl92Y3B1LmdzX2Jhc2VfdXNlcik7CisgICAgICAgICAgICB3cmdzYmFzZShuLT5hcmNoLnB2 LmdzX2Jhc2VfdXNlcik7CiAKICAgICAgICAgLyogSWYgaW4ga2VybmVsIG1vZGUgdGhlbiBzd2l0 Y2ggdGhlIEdTIGJhc2VzIGFyb3VuZC4gKi8KICAgICAgICAgaWYgKCAobi0+YXJjaC5mbGFncyAm IFRGX2tlcm5lbF9tb2RlKSApCkBAIC0xMzQxLDcgKzEzNDEsNyBAQCBzdGF0aWMgdm9pZCBsb2Fk X3NlZ21lbnRzKHN0cnVjdCB2Y3B1ICpuKQogCiAgICAgaWYgKCB1bmxpa2VseSghYWxsX3NlZ3Nf b2theSkgKQogICAgIHsKLSAgICAgICAgc3RydWN0IHB2X3ZjcHUgKnB2ID0gJm4tPmFyY2gucHZf dmNwdTsKKyAgICAgICAgc3RydWN0IHB2X3ZjcHUgKnB2ID0gJm4tPmFyY2gucHY7CiAgICAgICAg IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzID0gZ3Vlc3RfY3B1X3VzZXJfcmVncygpOwogICAg ICAgICB1bnNpZ25lZCBsb25nICpyc3AgPQogICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcgKiko KChuLT5hcmNoLmZsYWdzICYgVEZfa2VybmVsX21vZGUpCkBAIC0xMzUyLDcgKzEzNTIsNyBAQCBz dGF0aWMgdm9pZCBsb2FkX3NlZ21lbnRzKHN0cnVjdCB2Y3B1ICpuKQogICAgICAgICByZmxhZ3Mg ID0gcmVncy0+cmZsYWdzICYgfihYODZfRUZMQUdTX0lGfFg4Nl9FRkxBR1NfSU9QTCk7CiAgICAg ICAgIHJmbGFncyB8PSAhdmNwdV9pbmZvKG4sIGV2dGNobl91cGNhbGxfbWFzaykgPDwgOTsKICAg ICAgICAgaWYgKCBWTV9BU1NJU1Qobi0+ZG9tYWluLCBhcmNoaXRlY3R1cmFsX2lvcGwpICkKLSAg ICAgICAgICAgIHJmbGFncyB8PSBuLT5hcmNoLnB2X3ZjcHUuaW9wbDsKKyAgICAgICAgICAgIHJm bGFncyB8PSBuLT5hcmNoLnB2LmlvcGw7CiAKICAgICAgICAgaWYgKCBpc19wdl8zMmJpdF92Y3B1 KG4pICkKICAgICAgICAgewpAQCAtMTQ1MCwxMSArMTQ1MCwxMSBAQCBzdGF0aWMgdm9pZCBzYXZl X3NlZ21lbnRzKHN0cnVjdCB2Y3B1ICp2KQogCiAgICAgaWYgKCBjcHVfaGFzX2ZzZ3NiYXNlICYm ICFpc19wdl8zMmJpdF92Y3B1KHYpICkKICAgICB7Ci0gICAgICAgIHYtPmFyY2gucHZfdmNwdS5m c19iYXNlID0gX19yZGZzYmFzZSgpOworICAgICAgICB2LT5hcmNoLnB2LmZzX2Jhc2UgPSBfX3Jk ZnNiYXNlKCk7CiAgICAgICAgIGlmICggdi0+YXJjaC5mbGFncyAmIFRGX2tlcm5lbF9tb2RlICkK LSAgICAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5nc19iYXNlX2tlcm5lbCA9IF9fcmRnc2Jhc2Uo KTsKKyAgICAgICAgICAgIHYtPmFyY2gucHYuZ3NfYmFzZV9rZXJuZWwgPSBfX3JkZ3NiYXNlKCk7 CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5nc19iYXNlX3VzZXIg PSBfX3JkZ3NiYXNlKCk7CisgICAgICAgICAgICB2LT5hcmNoLnB2LmdzX2Jhc2VfdXNlciA9IF9f cmRnc2Jhc2UoKTsKICAgICB9CiAKICAgICBpZiAoIHJlZ3MtPmRzICkKQEAgLTE0NjgsOSArMTQ2 OCw5IEBAIHN0YXRpYyB2b2lkIHNhdmVfc2VnbWVudHMoc3RydWN0IHZjcHUgKnYpCiAgICAgICAg IGRpcnR5X3NlZ21lbnRfbWFzayB8PSBESVJUWV9GUzsKICAgICAgICAgLyogbm9uLW51bCBzZWxl Y3RvciBraWxscyBmc19iYXNlICovCiAgICAgICAgIGlmICggcmVncy0+ZnMgJiB+MyApCi0gICAg ICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZnNfYmFzZSA9IDA7CisgICAgICAgICAgICB2LT5hcmNo LnB2LmZzX2Jhc2UgPSAwOwogICAgIH0KLSAgICBpZiAoIHYtPmFyY2gucHZfdmNwdS5mc19iYXNl ICkKKyAgICBpZiAoIHYtPmFyY2gucHYuZnNfYmFzZSApCiAgICAgICAgIGRpcnR5X3NlZ21lbnRf bWFzayB8PSBESVJUWV9GU19CQVNFOwogCiAgICAgaWYgKCByZWdzLT5ncyB8fCBpc19wdl8zMmJp dF92Y3B1KHYpICkKQEAgLTE0NzgsMTAgKzE0NzgsMTAgQEAgc3RhdGljIHZvaWQgc2F2ZV9zZWdt ZW50cyhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgZGlydHlfc2VnbWVudF9tYXNrIHw9IERJUlRZ X0dTOwogICAgICAgICAvKiBub24tbnVsIHNlbGVjdG9yIGtpbGxzIGdzX2Jhc2VfdXNlciAqLwog ICAgICAgICBpZiAoIHJlZ3MtPmdzICYgfjMgKQotICAgICAgICAgICAgdi0+YXJjaC5wdl92Y3B1 LmdzX2Jhc2VfdXNlciA9IDA7CisgICAgICAgICAgICB2LT5hcmNoLnB2LmdzX2Jhc2VfdXNlciA9 IDA7CiAgICAgfQotICAgIGlmICggdi0+YXJjaC5mbGFncyAmIFRGX2tlcm5lbF9tb2RlID8gdi0+ YXJjaC5wdl92Y3B1LmdzX2Jhc2Vfa2VybmVsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiB2LT5hcmNoLnB2X3ZjcHUuZ3NfYmFzZV91c2VyICkKKyAgICBpZiAoIHYt PmFyY2guZmxhZ3MgJiBURl9rZXJuZWxfbW9kZSA/IHYtPmFyY2gucHYuZ3NfYmFzZV9rZXJuZWwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHYtPmFyY2gucHYuZ3Nf YmFzZV91c2VyICkKICAgICAgICAgZGlydHlfc2VnbWVudF9tYXNrIHw9IERJUlRZX0dTX0JBU0U7 CiAKICAgICB0aGlzX2NwdShkaXJ0eV9zZWdtZW50X21hc2spID0gZGlydHlfc2VnbWVudF9tYXNr OwpAQCAtMTU3MSw3ICsxNTcxLDcgQEAgc3RhdGljIHZvaWQgX3VwZGF0ZV9ydW5zdGF0ZV9hcmVh KHN0cnVjdCB2Y3B1ICp2KQogewogICAgIGlmICggIXVwZGF0ZV9ydW5zdGF0ZV9hcmVhKHYpICYm IGlzX3B2X3ZjcHUodikgJiYKICAgICAgICAgICEodi0+YXJjaC5mbGFncyAmIFRGX2tlcm5lbF9t b2RlKSApCi0gICAgICAgIHYtPmFyY2gucHZfdmNwdS5uZWVkX3VwZGF0ZV9ydW5zdGF0ZV9hcmVh ID0gMTsKKyAgICAgICAgdi0+YXJjaC5wdi5uZWVkX3VwZGF0ZV9ydW5zdGF0ZV9hcmVhID0gMTsK IH0KIAogc3RhdGljIGlubGluZSBib29sIG5lZWRfZnVsbF9nZHQoY29uc3Qgc3RydWN0IGRvbWFp biAqZCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jIGIveGVuL2FyY2gv eDg2L2RvbWFpbl9wYWdlLmMKaW5kZXggMTViYTZmNS4uNWMzMGM2MiAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2RvbWFpbl9wYWdlLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMK QEAgLTg2LDcgKzg2LDcgQEAgdm9pZCAqbWFwX2RvbWFpbl9wYWdlKG1mbl90IG1mbikKICAgICAg ICAgcmV0dXJuIG1mbl90b192aXJ0KG1mbl94KG1mbikpOwogCiAgICAgZGNhY2hlID0gJnYtPmRv bWFpbi0+YXJjaC5wdi5tYXBjYWNoZTsKLSAgICB2Y2FjaGUgPSAmdi0+YXJjaC5wdl92Y3B1Lm1h cGNhY2hlOworICAgIHZjYWNoZSA9ICZ2LT5hcmNoLnB2Lm1hcGNhY2hlOwogICAgIGlmICggIWRj YWNoZS0+aW51c2UgKQogICAgICAgICByZXR1cm4gbWZuX3RvX3ZpcnQobWZuX3gobWZuKSk7CiAK QEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIHVubWFwX2RvbWFpbl9wYWdlKGNvbnN0IHZvaWQgKnB0 cikKIAogICAgIGlkeCA9IFBGTl9ET1dOKHZhIC0gTUFQQ0FDSEVfVklSVF9TVEFSVCk7CiAgICAg bWZuID0gbDFlX2dldF9wZm4oTUFQQ0FDSEVfTDFFTlQoaWR4KSk7Ci0gICAgaGFzaGVudCA9ICZ2 LT5hcmNoLnB2X3ZjcHUubWFwY2FjaGUuaGFzaFtNQVBIQVNIX0hBU0hGTihtZm4pXTsKKyAgICBo YXNoZW50ID0gJnYtPmFyY2gucHYubWFwY2FjaGUuaGFzaFtNQVBIQVNIX0hBU0hGTihtZm4pXTsK IAogICAgIGxvY2FsX2lycV9zYXZlKGZsYWdzKTsKIApAQCAtMjkzLDcgKzI5Myw3IEBAIGludCBt YXBjYWNoZV92Y3B1X2luaXQoc3RydWN0IHZjcHUgKnYpCiAgICAgQlVJTERfQlVHX09OKE1BUEhB U0hFTlRfTk9USU5VU0UgPCBNQVBDQUNIRV9FTlRSSUVTKTsKICAgICBmb3IgKCBpID0gMDsgaSA8 IE1BUEhBU0hfRU5UUklFUzsgaSsrICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCB2Y3B1X21hcGhh c2hfZW50cnkgKmhhc2hlbnQgPSAmdi0+YXJjaC5wdl92Y3B1Lm1hcGNhY2hlLmhhc2hbaV07Cisg ICAgICAgIHN0cnVjdCB2Y3B1X21hcGhhc2hfZW50cnkgKmhhc2hlbnQgPSAmdi0+YXJjaC5wdi5t YXBjYWNoZS5oYXNoW2ldOwogCiAgICAgICAgIGhhc2hlbnQtPm1mbiA9IH4wVUw7IC8qIG5ldmVy IHZhbGlkIHRvIG1hcCAqLwogICAgICAgICBoYXNoZW50LT5pZHggPSBNQVBIQVNIRU5UX05PVElO VVNFOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2Rv bWN0bC5jCmluZGV4IGUyN2U5NzEuLmZkYmNjZTAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9k b21jdGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTg1NiwxNyArODU2LDE3IEBA IGxvbmcgYXJjaF9kb19kb21jdGwoCiAgICAgICAgICAgICBpZiAoIGlzX3B2X2RvbWFpbihkKSAp CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgZXZjLT5zeXNlbnRlcl9jYWxsYmFja19j cyAgICAgID0KLSAgICAgICAgICAgICAgICAgICAgdi0+YXJjaC5wdl92Y3B1LnN5c2VudGVyX2Nh bGxiYWNrX2NzOworICAgICAgICAgICAgICAgICAgICB2LT5hcmNoLnB2LnN5c2VudGVyX2NhbGxi YWNrX2NzOwogICAgICAgICAgICAgICAgIGV2Yy0+c3lzZW50ZXJfY2FsbGJhY2tfZWlwICAgICA9 Ci0gICAgICAgICAgICAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNlbnRlcl9jYWxsYmFja19l aXA7CisgICAgICAgICAgICAgICAgICAgIHYtPmFyY2gucHYuc3lzZW50ZXJfY2FsbGJhY2tfZWlw OwogICAgICAgICAgICAgICAgIGV2Yy0+c3lzZW50ZXJfZGlzYWJsZXNfZXZlbnRzICA9Ci0gICAg ICAgICAgICAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNlbnRlcl9kaXNhYmxlc19ldmVudHM7 CisgICAgICAgICAgICAgICAgICAgIHYtPmFyY2gucHYuc3lzZW50ZXJfZGlzYWJsZXNfZXZlbnRz OwogICAgICAgICAgICAgICAgIGV2Yy0+c3lzY2FsbDMyX2NhbGxiYWNrX2NzICAgICA9Ci0gICAg ICAgICAgICAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNjYWxsMzJfY2FsbGJhY2tfY3M7Cisg ICAgICAgICAgICAgICAgICAgIHYtPmFyY2gucHYuc3lzY2FsbDMyX2NhbGxiYWNrX2NzOwogICAg ICAgICAgICAgICAgIGV2Yy0+c3lzY2FsbDMyX2NhbGxiYWNrX2VpcCAgICA9Ci0gICAgICAgICAg ICAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNjYWxsMzJfY2FsbGJhY2tfZWlwOworICAgICAg ICAgICAgICAgICAgICB2LT5hcmNoLnB2LnN5c2NhbGwzMl9jYWxsYmFja19laXA7CiAgICAgICAg ICAgICAgICAgZXZjLT5zeXNjYWxsMzJfZGlzYWJsZXNfZXZlbnRzID0KLSAgICAgICAgICAgICAg ICAgICAgdi0+YXJjaC5wdl92Y3B1LnN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHM7CisgICAgICAg ICAgICAgICAgICAgIHYtPmFyY2gucHYuc3lzY2FsbDMyX2Rpc2FibGVzX2V2ZW50czsKICAgICAg ICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKQEAgLTkwMCwxOCArOTAw LDE4IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICAgICAgICAgIGRvbWFpbl9wYXVzZShkKTsKICAgICAgICAgICAgICAgICBmaXh1cF9n dWVzdF9jb2RlX3NlbGVjdG9yKGQsIGV2Yy0+c3lzZW50ZXJfY2FsbGJhY2tfY3MpOwotICAgICAg ICAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5zeXNlbnRlcl9jYWxsYmFja19jcyAgICAgID0KKyAg ICAgICAgICAgICAgICB2LT5hcmNoLnB2LnN5c2VudGVyX2NhbGxiYWNrX2NzID0KICAgICAgICAg ICAgICAgICAgICAgZXZjLT5zeXNlbnRlcl9jYWxsYmFja19jczsKLSAgICAgICAgICAgICAgICB2 LT5hcmNoLnB2X3ZjcHUuc3lzZW50ZXJfY2FsbGJhY2tfZWlwICAgICA9CisgICAgICAgICAgICAg ICAgdi0+YXJjaC5wdi5zeXNlbnRlcl9jYWxsYmFja19laXAgPQogICAgICAgICAgICAgICAgICAg ICBldmMtPnN5c2VudGVyX2NhbGxiYWNrX2VpcDsKLSAgICAgICAgICAgICAgICB2LT5hcmNoLnB2 X3ZjcHUuc3lzZW50ZXJfZGlzYWJsZXNfZXZlbnRzICA9CisgICAgICAgICAgICAgICAgdi0+YXJj aC5wdi5zeXNlbnRlcl9kaXNhYmxlc19ldmVudHMgPQogICAgICAgICAgICAgICAgICAgICBldmMt PnN5c2VudGVyX2Rpc2FibGVzX2V2ZW50czsKICAgICAgICAgICAgICAgICBmaXh1cF9ndWVzdF9j b2RlX3NlbGVjdG9yKGQsIGV2Yy0+c3lzY2FsbDMyX2NhbGxiYWNrX2NzKTsKLSAgICAgICAgICAg ICAgICB2LT5hcmNoLnB2X3ZjcHUuc3lzY2FsbDMyX2NhbGxiYWNrX2NzICAgICA9CisgICAgICAg ICAgICAgICAgdi0+YXJjaC5wdi5zeXNjYWxsMzJfY2FsbGJhY2tfY3MgPQogICAgICAgICAgICAg ICAgICAgICBldmMtPnN5c2NhbGwzMl9jYWxsYmFja19jczsKLSAgICAgICAgICAgICAgICB2LT5h cmNoLnB2X3ZjcHUuc3lzY2FsbDMyX2NhbGxiYWNrX2VpcCAgICA9CisgICAgICAgICAgICAgICAg di0+YXJjaC5wdi5zeXNjYWxsMzJfY2FsbGJhY2tfZWlwID0KICAgICAgICAgICAgICAgICAgICAg ZXZjLT5zeXNjYWxsMzJfY2FsbGJhY2tfZWlwOwotICAgICAgICAgICAgICAgIHYtPmFyY2gucHZf dmNwdS5zeXNjYWxsMzJfZGlzYWJsZXNfZXZlbnRzID0KKyAgICAgICAgICAgICAgICB2LT5hcmNo LnB2LnN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHMgPQogICAgICAgICAgICAgICAgICAgICBldmMt PnN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHM7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBl bHNlIGlmICggKGV2Yy0+c3lzZW50ZXJfY2FsbGJhY2tfY3MgJiB+MykgfHwKQEAgLTEzMzAsMTIg KzEzMzAsMTIgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKIAogICAgICAgICAgICAgICAgIGlmICgg Ym9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0RCRVhUKSApCiAgICAgICAgICAgICAgICAgewotICAg ICAgICAgICAgICAgICAgICBpZiAoIHYtPmFyY2gucHZfdmNwdS5kcl9tYXNrWzBdICkKKyAgICAg ICAgICAgICAgICAgICAgaWYgKCB2LT5hcmNoLnB2LmRyX21hc2tbMF0gKQogICAgICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGkgPCB2bXNycy0+bXNyX2Nv dW50ICYmICFyZXQgKQogICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1zci5pbmRleCA9IE1TUl9BTUQ2NF9EUjBfQUREUkVTU19NQVNLOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1zci52YWx1ZSA9IHYtPmFyY2gucHZfdmNwdS5kcl9t YXNrWzBdOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zci52YWx1ZSA9IHYtPmFyY2gu cHYuZHJfbWFza1swXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGNvcHlfdG9f Z3Vlc3Rfb2Zmc2V0KHZtc3JzLT5tc3JzLCBpLCAmbXNyLCAxKSApCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB9 CkBAIC0xMzQ0LDEyICsxMzQ0LDEyIEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCiAKICAgICAgICAg ICAgICAgICAgICAgZm9yICggaiA9IDA7IGogPCAzOyArK2ogKQogICAgICAgICAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoICF2LT5hcmNoLnB2X3ZjcHUuZHJfbWFz a1sxICsgal0gKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhdi0+YXJjaC5wdi5kcl9t YXNrWzEgKyBqXSApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg ICAgICAgICAgICAgICAgICAgICBpZiAoIGkgPCB2bXNycy0+bXNyX2NvdW50ICYmICFyZXQgKQog ICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1z ci5pbmRleCA9IE1TUl9BTUQ2NF9EUjFfQUREUkVTU19NQVNLICsgajsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtc3IudmFsdWUgPSB2LT5hcmNoLnB2X3ZjcHUuZHJfbWFza1sxICsgal07 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNyLnZhbHVlID0gdi0+YXJjaC5wdi5kcl9t YXNrWzEgKyBqXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vl c3Rfb2Zmc2V0KHZtc3JzLT5tc3JzLCBpLCAmbXNyLCAxKSApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CkBA IC0xMzk0LDcgKzEzOTQsNyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAogICAgICAgICAgICAgICAg ICAgICBpZiAoICFib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfREJFWFQpIHx8CiAgICAgICAgICAg ICAgICAgICAgICAgICAgKG1zci52YWx1ZSA+PiAzMikgKQogICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5kcl9tYXNrWzBd ID0gbXNyLnZhbHVlOworICAgICAgICAgICAgICAgICAgICB2LT5hcmNoLnB2LmRyX21hc2tbMF0g PSBtc3IudmFsdWU7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAg ICAgICAgY2FzZSBNU1JfQU1ENjRfRFIxX0FERFJFU1NfTUFTSyAuLi4KQEAgLTE0MDMsNyArMTQw Myw3IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1z ci52YWx1ZSA+PiAzMikgKQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICAgICAgICAgIG1zci5pbmRleCAtPSBNU1JfQU1ENjRfRFIxX0FERFJFU1NfTUFTSyAtIDE7 Ci0gICAgICAgICAgICAgICAgICAgIHYtPmFyY2gucHZfdmNwdS5kcl9tYXNrW21zci5pbmRleF0g PSBtc3IudmFsdWU7CisgICAgICAgICAgICAgICAgICAgIHYtPmFyY2gucHYuZHJfbWFza1ttc3Iu aW5kZXhdID0gbXNyLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0xNTY0LDcgKzE1NjQsNyBA QCB2b2lkIGFyY2hfZ2V0X2luZm9fZ3Vlc3Qoc3RydWN0IHZjcHUgKnYsIHZjcHVfZ3Vlc3RfY29u dGV4dF91IGMpCiAgICAgewogICAgICAgICBtZW1jcHkoJmMubmF0LT51c2VyX3JlZ3MsICZ2LT5h cmNoLnVzZXJfcmVncywgc2l6ZW9mKGMubmF0LT51c2VyX3JlZ3MpKTsKICAgICAgICAgaWYgKCBp c19wdl9kb21haW4oZCkgKQotICAgICAgICAgICAgbWVtY3B5KGMubmF0LT50cmFwX2N0eHQsIHYt PmFyY2gucHZfdmNwdS50cmFwX2N0eHQsCisgICAgICAgICAgICBtZW1jcHkoYy5uYXQtPnRyYXBf Y3R4dCwgdi0+YXJjaC5wdi50cmFwX2N0eHQsCiAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGMu bmF0LT50cmFwX2N0eHQpKTsKICAgICB9CiAgICAgZWxzZQpAQCAtMTU3NCw3ICsxNTc0LDcgQEAg dm9pZCBhcmNoX2dldF9pbmZvX2d1ZXN0KHN0cnVjdCB2Y3B1ICp2LCB2Y3B1X2d1ZXN0X2NvbnRl eHRfdSBjKQogICAgICAgICB7CiAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJ WkUoYy5jbXAtPnRyYXBfY3R4dCk7ICsraSApCiAgICAgICAgICAgICAgICAgWExBVF90cmFwX2lu Zm8oYy5jbXAtPnRyYXBfY3R4dCArIGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg di0+YXJjaC5wdl92Y3B1LnRyYXBfY3R4dCArIGkpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHYtPmFyY2gucHYudHJhcF9jdHh0ICsgaSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAg LTE2MTUsMzcgKzE2MTUsMzcgQEAgdm9pZCBhcmNoX2dldF9pbmZvX2d1ZXN0KHN0cnVjdCB2Y3B1 ICp2LCB2Y3B1X2d1ZXN0X2NvbnRleHRfdSBjKQogICAgIH0KICAgICBlbHNlCiAgICAgewotICAg ICAgICBjKGxkdF9iYXNlID0gdi0+YXJjaC5wdl92Y3B1LmxkdF9iYXNlKTsKLSAgICAgICAgYyhs ZHRfZW50cyA9IHYtPmFyY2gucHZfdmNwdS5sZHRfZW50cyk7Ci0gICAgICAgIGZvciAoIGkgPSAw OyBpIDwgQVJSQVlfU0laRSh2LT5hcmNoLnB2X3ZjcHUuZ2R0X2ZyYW1lcyk7ICsraSApCi0gICAg ICAgICAgICBjKGdkdF9mcmFtZXNbaV0gPSB2LT5hcmNoLnB2X3ZjcHUuZ2R0X2ZyYW1lc1tpXSk7 CisgICAgICAgIGMobGR0X2Jhc2UgPSB2LT5hcmNoLnB2LmxkdF9iYXNlKTsKKyAgICAgICAgYyhs ZHRfZW50cyA9IHYtPmFyY2gucHYubGR0X2VudHMpOworICAgICAgICBmb3IgKCBpID0gMDsgaSA8 IEFSUkFZX1NJWkUodi0+YXJjaC5wdi5nZHRfZnJhbWVzKTsgKytpICkKKyAgICAgICAgICAgIGMo Z2R0X2ZyYW1lc1tpXSA9IHYtPmFyY2gucHYuZ2R0X2ZyYW1lc1tpXSk7CiAgICAgICAgIEJVSUxE X0JVR19PTihBUlJBWV9TSVpFKGMubmF0LT5nZHRfZnJhbWVzKSAhPQogICAgICAgICAgICAgICAg ICAgICAgQVJSQVlfU0laRShjLmNtcC0+Z2R0X2ZyYW1lcykpOwogICAgICAgICBmb3IgKCA7IGkg PCBBUlJBWV9TSVpFKGMubmF0LT5nZHRfZnJhbWVzKTsgKytpICkKICAgICAgICAgICAgIGMoZ2R0 X2ZyYW1lc1tpXSA9IDApOwotICAgICAgICBjKGdkdF9lbnRzID0gdi0+YXJjaC5wdl92Y3B1Lmdk dF9lbnRzKTsKLSAgICAgICAgYyhrZXJuZWxfc3MgPSB2LT5hcmNoLnB2X3ZjcHUua2VybmVsX3Nz KTsKLSAgICAgICAgYyhrZXJuZWxfc3AgPSB2LT5hcmNoLnB2X3ZjcHUua2VybmVsX3NwKTsKLSAg ICAgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHYtPmFyY2gucHZfdmNwdS5jdHJscmVn KTsgKytpICkKLSAgICAgICAgICAgIGMoY3RybHJlZ1tpXSA9IHYtPmFyY2gucHZfdmNwdS5jdHJs cmVnW2ldKTsKLSAgICAgICAgYyhldmVudF9jYWxsYmFja19laXAgPSB2LT5hcmNoLnB2X3ZjcHUu ZXZlbnRfY2FsbGJhY2tfZWlwKTsKLSAgICAgICAgYyhmYWlsc2FmZV9jYWxsYmFja19laXAgPSB2 LT5hcmNoLnB2X3ZjcHUuZmFpbHNhZmVfY2FsbGJhY2tfZWlwKTsKKyAgICAgICAgYyhnZHRfZW50 cyA9IHYtPmFyY2gucHYuZ2R0X2VudHMpOworICAgICAgICBjKGtlcm5lbF9zcyA9IHYtPmFyY2gu cHYua2VybmVsX3NzKTsKKyAgICAgICAgYyhrZXJuZWxfc3AgPSB2LT5hcmNoLnB2Lmtlcm5lbF9z cCk7CisgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgQVJSQVlfU0laRSh2LT5hcmNoLnB2LmN0cmxy ZWcpOyArK2kgKQorICAgICAgICAgICAgYyhjdHJscmVnW2ldID0gdi0+YXJjaC5wdi5jdHJscmVn W2ldKTsKKyAgICAgICAgYyhldmVudF9jYWxsYmFja19laXAgPSB2LT5hcmNoLnB2LmV2ZW50X2Nh bGxiYWNrX2VpcCk7CisgICAgICAgIGMoZmFpbHNhZmVfY2FsbGJhY2tfZWlwID0gdi0+YXJjaC5w di5mYWlsc2FmZV9jYWxsYmFja19laXApOwogICAgICAgICBpZiAoICFjb21wYXQgKQogICAgICAg ICB7Ci0gICAgICAgICAgICBjLm5hdC0+c3lzY2FsbF9jYWxsYmFja19laXAgPSB2LT5hcmNoLnB2 X3ZjcHUuc3lzY2FsbF9jYWxsYmFja19laXA7Ci0gICAgICAgICAgICBjLm5hdC0+ZnNfYmFzZSA9 IHYtPmFyY2gucHZfdmNwdS5mc19iYXNlOwotICAgICAgICAgICAgYy5uYXQtPmdzX2Jhc2Vfa2Vy bmVsID0gdi0+YXJjaC5wdl92Y3B1LmdzX2Jhc2Vfa2VybmVsOwotICAgICAgICAgICAgYy5uYXQt PmdzX2Jhc2VfdXNlciA9IHYtPmFyY2gucHZfdmNwdS5nc19iYXNlX3VzZXI7CisgICAgICAgICAg ICBjLm5hdC0+c3lzY2FsbF9jYWxsYmFja19laXAgPSB2LT5hcmNoLnB2LnN5c2NhbGxfY2FsbGJh Y2tfZWlwOworICAgICAgICAgICAgYy5uYXQtPmZzX2Jhc2UgPSB2LT5hcmNoLnB2LmZzX2Jhc2U7 CisgICAgICAgICAgICBjLm5hdC0+Z3NfYmFzZV9rZXJuZWwgPSB2LT5hcmNoLnB2LmdzX2Jhc2Vf a2VybmVsOworICAgICAgICAgICAgYy5uYXQtPmdzX2Jhc2VfdXNlciA9IHYtPmFyY2gucHYuZ3Nf YmFzZV91c2VyOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewotICAgICAgICAg ICAgYyhldmVudF9jYWxsYmFja19jcyA9IHYtPmFyY2gucHZfdmNwdS5ldmVudF9jYWxsYmFja19j cyk7Ci0gICAgICAgICAgICBjKGZhaWxzYWZlX2NhbGxiYWNrX2NzID0gdi0+YXJjaC5wdl92Y3B1 LmZhaWxzYWZlX2NhbGxiYWNrX2NzKTsKKyAgICAgICAgICAgIGMoZXZlbnRfY2FsbGJhY2tfY3Mg PSB2LT5hcmNoLnB2LmV2ZW50X2NhbGxiYWNrX2NzKTsKKyAgICAgICAgICAgIGMoZmFpbHNhZmVf Y2FsbGJhY2tfY3MgPSB2LT5hcmNoLnB2LmZhaWxzYWZlX2NhbGxiYWNrX2NzKTsKICAgICAgICAg fQogCiAgICAgICAgIC8qIElPUEwgcHJpdmlsZWdlcyBhcmUgdmlydHVhbGlzZWQ6IG1lcmdlIGJh Y2sgaW50byByZXR1cm5lZCBlZmxhZ3MuICovCiAgICAgICAgIEJVR19PTigoYyh1c2VyX3JlZ3Mu ZWZsYWdzKSAmIFg4Nl9FRkxBR1NfSU9QTCkgIT0gMCk7Ci0gICAgICAgIGModXNlcl9yZWdzLmVm bGFncyB8PSB2LT5hcmNoLnB2X3ZjcHUuaW9wbCk7CisgICAgICAgIGModXNlcl9yZWdzLmVmbGFn cyB8PSB2LT5hcmNoLnB2LmlvcGwpOwogCiAgICAgICAgIGlmICggIWNvbXBhdCApCiAgICAgICAg IHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pMzg3LmMgYi94ZW4vYXJjaC94ODYvaTM4Ny5j CmluZGV4IDAwY2Y2YmQuLjg4MTc4NDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pMzg3LmMK KysrIGIveGVuL2FyY2gveDg2L2kzODcuYwpAQCAtMjMzLDcgKzIzMyw3IEBAIHZvaWQgdmNwdV9y ZXN0b3JlX2ZwdV9ub25sYXp5KHN0cnVjdCB2Y3B1ICp2LCBib29sIG5lZWRfc3R0cykKICAgICAg ICAgdi0+ZnB1X2RpcnRpZWQgPSAxOwogCiAgICAgICAgIC8qIFhlbiBkb2Vzbid0IG5lZWQgVFMg c2V0LCBidXQgdGhlIGd1ZXN0IG1pZ2h0LiAqLwotICAgICAgICBuZWVkX3N0dHMgPSBpc19wdl92 Y3B1KHYpICYmICh2LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1swXSAmIFg4Nl9DUjBfVFMpOworICAg ICAgICBuZWVkX3N0dHMgPSBpc19wdl92Y3B1KHYpICYmICh2LT5hcmNoLnB2LmN0cmxyZWdbMF0g JiBYODZfQ1IwX1RTKTsKICAgICB9CiAgICAgZWxzZQogICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5kZXggMjZjNDU1MS4uNmE4ODJlNyAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVuL2FyY2gveDg2L21tLmMKQEAg LTUxMCw3ICs1MTAsNyBAQCB1bnNpZ25lZCBsb25nIHB2X2d1ZXN0X2NyNF90b19yZWFsX2NyNChj b25zdCBzdHJ1Y3QgdmNwdSAqdikKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9t YWluOwogICAgIHVuc2lnbmVkIGxvbmcgY3I0OwogCi0gICAgY3I0ID0gdi0+YXJjaC5wdl92Y3B1 LmN0cmxyZWdbNF0gJiB+WDg2X0NSNF9ERTsKKyAgICBjcjQgPSB2LT5hcmNoLnB2LmN0cmxyZWdb NF0gJiB+WDg2X0NSNF9ERTsKICAgICBjcjQgfD0gbW11X2NyNF9mZWF0dXJlcyAmIChYODZfQ1I0 X1BTRSB8IFg4Nl9DUjRfU01FUCB8IFg4Nl9DUjRfU01BUCB8CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWDg2X0NSNF9PU1hTQVZFIHwgWDg2X0NSNF9GU0dTQkFTRSk7CiAKQEAgLTM0 NjgsMTQgKzM0NjgsMTQgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICAgICAgICAg ICAgICAgIkJhZCBhcmdzIHRvIFNFVF9MRFQ6IHB0cj0lbHgsIGVudHM9JXhcbiIsIHB0ciwgZW50 cyk7CiAgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAgICAgICAgICAgfQotICAgICAg ICAgICAgZWxzZSBpZiAoIChjdXJyLT5hcmNoLnB2X3ZjcHUubGR0X2VudHMgIT0gZW50cykgfHwK LSAgICAgICAgICAgICAgICAgICAgICAoY3Vyci0+YXJjaC5wdl92Y3B1LmxkdF9iYXNlICE9IHB0 cikgKQorICAgICAgICAgICAgZWxzZSBpZiAoIChjdXJyLT5hcmNoLnB2LmxkdF9lbnRzICE9IGVu dHMpIHx8CisgICAgICAgICAgICAgICAgICAgICAgKGN1cnItPmFyY2gucHYubGR0X2Jhc2UgIT0g cHRyKSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKCBwdl9kZXN0cm95X2xk dChjdXJyKSApCiAgICAgICAgICAgICAgICAgICAgIGZsdXNoX3RsYl9sb2NhbCgpOwogCi0gICAg ICAgICAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1LmxkdF9iYXNlID0gcHRyOwotICAgICAgICAg ICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5sZHRfZW50cyA9IGVudHM7CisgICAgICAgICAgICAg ICAgY3Vyci0+YXJjaC5wdi5sZHRfYmFzZSA9IHB0cjsKKyAgICAgICAgICAgICAgICBjdXJyLT5h cmNoLnB2LmxkdF9lbnRzID0gZW50czsKICAgICAgICAgICAgICAgICBsb2FkX0xEVChjdXJyKTsK ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3BoeXNkZXYuYyBiL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMKaW5kZXggYjg3ZWM5MC4uNDUy NDgyMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3BoeXNkZXYuYworKysgYi94ZW4vYXJjaC94 ODYvcGh5c2Rldi5jCkBAIC00MTIsNyArNDEyLDcgQEAgcmV0X3QgZG9fcGh5c2Rldl9vcChpbnQg Y21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgaWYgKCBzZXRf aW9wbC5pb3BsID4gMyApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgcmV0ID0gMDsKLSAg ICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1LmlvcGwgPSBNQVNLX0lOU1Ioc2V0X2lvcGwuaW9wbCwg WDg2X0VGTEFHU19JT1BMKTsKKyAgICAgICAgY3Vyci0+YXJjaC5wdi5pb3BsID0gTUFTS19JTlNS KHNldF9pb3BsLmlvcGwsIFg4Nl9FRkxBR1NfSU9QTCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0K IApAQCAtNDI5LDEyICs0MjksMTEgQEAgcmV0X3QgZG9fcGh5c2Rldl9vcChpbnQgY21kLCBYRU5f R1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICByZXQgPSAwOwogI2lmbmRlZiBDT01QQVQKLSAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1Lmlv Ym1wID0gc2V0X2lvYml0bWFwLmJpdG1hcDsKKyAgICAgICAgY3Vyci0+YXJjaC5wdi5pb2JtcCA9 IHNldF9pb2JpdG1hcC5iaXRtYXA7CiAjZWxzZQotICAgICAgICBndWVzdF9mcm9tX2NvbXBhdF9o YW5kbGUoY3Vyci0+YXJjaC5wdl92Y3B1LmlvYm1wLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2V0X2lvYml0bWFwLmJpdG1hcCk7CisgICAgICAgIGd1ZXN0X2Zyb21fY29tcGF0 X2hhbmRsZShjdXJyLT5hcmNoLnB2LmlvYm1wLCBzZXRfaW9iaXRtYXAuYml0bWFwKTsKICNlbmRp ZgotICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuaW9ibXBfbGltaXQgPSBzZXRfaW9iaXRtYXAu bnJfcG9ydHM7CisgICAgICAgIGN1cnItPmFyY2gucHYuaW9ibXBfbGltaXQgPSBzZXRfaW9iaXRt YXAubnJfcG9ydHM7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3B2L2NhbGxiYWNrLmMgYi94ZW4vYXJjaC94ODYvcHYvY2FsbGJhY2suYwppbmRleCAz OTQ3MjZhLi4xNDMzMjMwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvY2FsbGJhY2suYwor KysgYi94ZW4vYXJjaC94ODYvcHYvY2FsbGJhY2suYwpAQCAtMzUsNyArMzUsNyBAQCBzdGF0aWMg aW50IHJlZ2lzdGVyX2d1ZXN0X25taV9jYWxsYmFjayh1bnNpZ25lZCBsb25nIGFkZHJlc3MpCiB7 CiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwogICAgIHN0cnVjdCBkb21haW4gKmQg PSBjdXJyLT5kb21haW47Ci0gICAgc3RydWN0IHRyYXBfaW5mbyAqdCA9ICZjdXJyLT5hcmNoLnB2 X3ZjcHUudHJhcF9jdHh0W1RSQVBfbm1pXTsKKyAgICBzdHJ1Y3QgdHJhcF9pbmZvICp0ID0gJmN1 cnItPmFyY2gucHYudHJhcF9jdHh0W1RSQVBfbm1pXTsKIAogICAgIGlmICggIWlzX2Nhbm9uaWNh bF9hZGRyZXNzKGFkZHJlc3MpICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC02MCw3ICs2 MCw3IEBAIHN0YXRpYyBpbnQgcmVnaXN0ZXJfZ3Vlc3Rfbm1pX2NhbGxiYWNrKHVuc2lnbmVkIGxv bmcgYWRkcmVzcykKIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfZ3Vlc3Rfbm1pX2NhbGxiYWNrKHZv aWQpCiB7CiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwotICAgIHN0cnVjdCB0cmFw X2luZm8gKnQgPSAmY3Vyci0+YXJjaC5wdl92Y3B1LnRyYXBfY3R4dFtUUkFQX25taV07CisgICAg c3RydWN0IHRyYXBfaW5mbyAqdCA9ICZjdXJyLT5hcmNoLnB2LnRyYXBfY3R4dFtUUkFQX25taV07 CiAKICAgICBtZW1zZXQodCwgMCwgc2l6ZW9mKCp0KSk7CiB9CkBAIC03NiwxMSArNzYsMTEgQEAg c3RhdGljIGxvbmcgcmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soc3RydWN0IGNhbGxiYWNrX3JlZ2lz dGVyICpyZWcpCiAgICAgc3dpdGNoICggcmVnLT50eXBlICkKICAgICB7CiAgICAgY2FzZSBDQUxM QkFDS1RZUEVfZXZlbnQ6Ci0gICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5ldmVudF9jYWxsYmFj a19laXAgICAgPSByZWctPmFkZHJlc3M7CisgICAgICAgIGN1cnItPmFyY2gucHYuZXZlbnRfY2Fs bGJhY2tfZWlwICAgID0gcmVnLT5hZGRyZXNzOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug Q0FMTEJBQ0tUWVBFX2ZhaWxzYWZlOgotICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuZmFpbHNh ZmVfY2FsbGJhY2tfZWlwID0gcmVnLT5hZGRyZXNzOworICAgICAgICBjdXJyLT5hcmNoLnB2LmZh aWxzYWZlX2NhbGxiYWNrX2VpcCA9IHJlZy0+YWRkcmVzczsKICAgICAgICAgaWYgKCByZWctPmZs YWdzICYgQ0FMTEJBQ0tGX21hc2tfZXZlbnRzICkKICAgICAgICAgICAgIGN1cnItPmFyY2gudmdj X2ZsYWdzIHw9IFZHQ0ZfZmFpbHNhZmVfZGlzYWJsZXNfZXZlbnRzOwogICAgICAgICBlbHNlCkBA IC04OCw3ICs4OCw3IEBAIHN0YXRpYyBsb25nIHJlZ2lzdGVyX2d1ZXN0X2NhbGxiYWNrKHN0cnVj dCBjYWxsYmFja19yZWdpc3RlciAqcmVnKQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ0FM TEJBQ0tUWVBFX3N5c2NhbGw6Ci0gICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5zeXNjYWxsX2Nh bGxiYWNrX2VpcCAgPSByZWctPmFkZHJlc3M7CisgICAgICAgIGN1cnItPmFyY2gucHYuc3lzY2Fs bF9jYWxsYmFja19laXAgID0gcmVnLT5hZGRyZXNzOwogICAgICAgICBpZiAoIHJlZy0+ZmxhZ3Mg JiBDQUxMQkFDS0ZfbWFza19ldmVudHMgKQogICAgICAgICAgICAgY3Vyci0+YXJjaC52Z2NfZmxh Z3MgfD0gVkdDRl9zeXNjYWxsX2Rpc2FibGVzX2V2ZW50czsKICAgICAgICAgZWxzZQpAQCAtOTYs MTQgKzk2LDE0IEBAIHN0YXRpYyBsb25nIHJlZ2lzdGVyX2d1ZXN0X2NhbGxiYWNrKHN0cnVjdCBj YWxsYmFja19yZWdpc3RlciAqcmVnKQogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ0FMTEJB Q0tUWVBFX3N5c2NhbGwzMjoKLSAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1LnN5c2NhbGwzMl9j YWxsYmFja19laXAgPSByZWctPmFkZHJlc3M7Ci0gICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5z eXNjYWxsMzJfZGlzYWJsZXNfZXZlbnRzID0KKyAgICAgICAgY3Vyci0+YXJjaC5wdi5zeXNjYWxs MzJfY2FsbGJhY2tfZWlwID0gcmVnLT5hZGRyZXNzOworICAgICAgICBjdXJyLT5hcmNoLnB2LnN5 c2NhbGwzMl9kaXNhYmxlc19ldmVudHMgPQogICAgICAgICAgICAgISEocmVnLT5mbGFncyAmIENB TExCQUNLRl9tYXNrX2V2ZW50cyk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDQUxMQkFD S1RZUEVfc3lzZW50ZXI6Ci0gICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5zeXNlbnRlcl9jYWxs YmFja19laXAgPSByZWctPmFkZHJlc3M7Ci0gICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5zeXNl bnRlcl9kaXNhYmxlc19ldmVudHMgPQorICAgICAgICBjdXJyLT5hcmNoLnB2LnN5c2VudGVyX2Nh bGxiYWNrX2VpcCA9IHJlZy0+YWRkcmVzczsKKyAgICAgICAgY3Vyci0+YXJjaC5wdi5zeXNlbnRl cl9kaXNhYmxlc19ldmVudHMgPQogICAgICAgICAgICAgISEocmVnLT5mbGFncyAmIENBTExCQUNL Rl9tYXNrX2V2ZW50cyk7CiAgICAgICAgIGJyZWFrOwogCkBAIC0yMTgsMTMgKzIxOCwxMyBAQCBz dGF0aWMgbG9uZyBjb21wYXRfcmVnaXN0ZXJfZ3Vlc3RfY2FsbGJhY2soc3RydWN0IGNvbXBhdF9j YWxsYmFja19yZWdpc3RlciAqcmVnKQogICAgIHN3aXRjaCAoIHJlZy0+dHlwZSApCiAgICAgewog ICAgIGNhc2UgQ0FMTEJBQ0tUWVBFX2V2ZW50OgotICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUu ZXZlbnRfY2FsbGJhY2tfY3MgICAgID0gcmVnLT5hZGRyZXNzLmNzOwotICAgICAgICBjdXJyLT5h cmNoLnB2X3ZjcHUuZXZlbnRfY2FsbGJhY2tfZWlwICAgID0gcmVnLT5hZGRyZXNzLmVpcDsKKyAg ICAgICAgY3Vyci0+YXJjaC5wdi5ldmVudF9jYWxsYmFja19jcyAgICAgPSByZWctPmFkZHJlc3Mu Y3M7CisgICAgICAgIGN1cnItPmFyY2gucHYuZXZlbnRfY2FsbGJhY2tfZWlwICAgID0gcmVnLT5h ZGRyZXNzLmVpcDsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENBTExCQUNLVFlQRV9mYWls c2FmZToKLSAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1LmZhaWxzYWZlX2NhbGxiYWNrX2NzICA9 IHJlZy0+YWRkcmVzcy5jczsKLSAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1LmZhaWxzYWZlX2Nh bGxiYWNrX2VpcCA9IHJlZy0+YWRkcmVzcy5laXA7CisgICAgICAgIGN1cnItPmFyY2gucHYuZmFp bHNhZmVfY2FsbGJhY2tfY3MgID0gcmVnLT5hZGRyZXNzLmNzOworICAgICAgICBjdXJyLT5hcmNo LnB2LmZhaWxzYWZlX2NhbGxiYWNrX2VpcCA9IHJlZy0+YWRkcmVzcy5laXA7CiAgICAgICAgIGlm ICggcmVnLT5mbGFncyAmIENBTExCQUNLRl9tYXNrX2V2ZW50cyApCiAgICAgICAgICAgICBjdXJy LT5hcmNoLnZnY19mbGFncyB8PSBWR0NGX2ZhaWxzYWZlX2Rpc2FibGVzX2V2ZW50czsKICAgICAg ICAgZWxzZQpAQCAtMjMyLDE2ICsyMzIsMTYgQEAgc3RhdGljIGxvbmcgY29tcGF0X3JlZ2lzdGVy X2d1ZXN0X2NhbGxiYWNrKHN0cnVjdCBjb21wYXRfY2FsbGJhY2tfcmVnaXN0ZXIgKnJlZykKICAg ICAgICAgYnJlYWs7CiAKICAgICBjYXNlIENBTExCQUNLVFlQRV9zeXNjYWxsMzI6Ci0gICAgICAg IGN1cnItPmFyY2gucHZfdmNwdS5zeXNjYWxsMzJfY2FsbGJhY2tfY3MgICAgID0gcmVnLT5hZGRy ZXNzLmNzOwotICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuc3lzY2FsbDMyX2NhbGxiYWNrX2Vp cCAgICA9IHJlZy0+YWRkcmVzcy5laXA7Ci0gICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5zeXNj YWxsMzJfZGlzYWJsZXNfZXZlbnRzID0KKyAgICAgICAgY3Vyci0+YXJjaC5wdi5zeXNjYWxsMzJf Y2FsbGJhY2tfY3MgICAgID0gcmVnLT5hZGRyZXNzLmNzOworICAgICAgICBjdXJyLT5hcmNoLnB2 LnN5c2NhbGwzMl9jYWxsYmFja19laXAgICAgPSByZWctPmFkZHJlc3MuZWlwOworICAgICAgICBj dXJyLT5hcmNoLnB2LnN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHMgPQogICAgICAgICAgICAgKHJl Zy0+ZmxhZ3MgJiBDQUxMQkFDS0ZfbWFza19ldmVudHMpICE9IDA7CiAgICAgICAgIGJyZWFrOwog CiAgICAgY2FzZSBDQUxMQkFDS1RZUEVfc3lzZW50ZXI6Ci0gICAgICAgIGN1cnItPmFyY2gucHZf dmNwdS5zeXNlbnRlcl9jYWxsYmFja19jcyAgICAgPSByZWctPmFkZHJlc3MuY3M7Ci0gICAgICAg IGN1cnItPmFyY2gucHZfdmNwdS5zeXNlbnRlcl9jYWxsYmFja19laXAgICAgPSByZWctPmFkZHJl c3MuZWlwOwotICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuc3lzZW50ZXJfZGlzYWJsZXNfZXZl bnRzID0KKyAgICAgICAgY3Vyci0+YXJjaC5wdi5zeXNlbnRlcl9jYWxsYmFja19jcyAgICAgPSBy ZWctPmFkZHJlc3MuY3M7CisgICAgICAgIGN1cnItPmFyY2gucHYuc3lzZW50ZXJfY2FsbGJhY2tf ZWlwICAgID0gcmVnLT5hZGRyZXNzLmVpcDsKKyAgICAgICAgY3Vyci0+YXJjaC5wdi5zeXNlbnRl cl9kaXNhYmxlc19ldmVudHMgPQogICAgICAgICAgICAgKHJlZy0+ZmxhZ3MgJiBDQUxMQkFDS0Zf bWFza19ldmVudHMpICE9IDA7CiAgICAgICAgIGJyZWFrOwogCkBAIC0zNTIsNyArMzUyLDcgQEAg bG9uZyBkb19zZXRfdHJhcF90YWJsZShYRU5fR1VFU1RfSEFORExFX1BBUkFNKGNvbnN0X3RyYXBf aW5mb190KSB0cmFwcykKIHsKICAgICBzdHJ1Y3QgdHJhcF9pbmZvIGN1cjsKICAgICBzdHJ1Y3Qg dmNwdSAqY3VyciA9IGN1cnJlbnQ7Ci0gICAgc3RydWN0IHRyYXBfaW5mbyAqZHN0ID0gY3Vyci0+ YXJjaC5wdl92Y3B1LnRyYXBfY3R4dDsKKyAgICBzdHJ1Y3QgdHJhcF9pbmZvICpkc3QgPSBjdXJy LT5hcmNoLnB2LnRyYXBfY3R4dDsKICAgICBsb25nIHJjID0gMDsKIAogICAgIC8qIElmIG5vIHRh YmxlIGlzIHByZXNlbnRlZCB0aGVuIGNsZWFyIHRoZSBlbnRpcmUgdmlydHVhbCBJRFQuICovCkBA IC0zOTcsNyArMzk3LDcgQEAgaW50IGNvbXBhdF9zZXRfdHJhcF90YWJsZShYRU5fR1VFU1RfSEFO RExFKHRyYXBfaW5mb19jb21wYXRfdCkgdHJhcHMpCiB7CiAgICAgc3RydWN0IHZjcHUgKmN1cnIg PSBjdXJyZW50OwogICAgIHN0cnVjdCBjb21wYXRfdHJhcF9pbmZvIGN1cjsKLSAgICBzdHJ1Y3Qg dHJhcF9pbmZvICpkc3QgPSBjdXJyLT5hcmNoLnB2X3ZjcHUudHJhcF9jdHh0OworICAgIHN0cnVj dCB0cmFwX2luZm8gKmRzdCA9IGN1cnItPmFyY2gucHYudHJhcF9jdHh0OwogICAgIGxvbmcgcmMg PSAwOwogCiAgICAgLyogSWYgbm8gdGFibGUgaXMgcHJlc2VudGVkIHRoZW4gY2xlYXIgdGhlIGVu dGlyZSB2aXJ0dWFsIElEVC4gKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9kZXNjcmlw dG9yLXRhYmxlcy5jIGIveGVuL2FyY2gveDg2L3B2L2Rlc2NyaXB0b3ItdGFibGVzLmMKaW5kZXgg NzFiZjkyNy4uOWI4NGNiZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2Rlc2NyaXB0b3It dGFibGVzLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2Rlc2NyaXB0b3ItdGFibGVzLmMKQEAgLTM3 LDkgKzM3LDkgQEAgYm9vbCBwdl9kZXN0cm95X2xkdChzdHJ1Y3QgdmNwdSAqdikKIAogICAgIEFT U0VSVCghaW5faXJxKCkpOwogCi0gICAgc3Bpbl9sb2NrKCZ2LT5hcmNoLnB2X3ZjcHUuc2hhZG93 X2xkdF9sb2NrKTsKKyAgICBzcGluX2xvY2soJnYtPmFyY2gucHYuc2hhZG93X2xkdF9sb2NrKTsK IAotICAgIGlmICggdi0+YXJjaC5wdl92Y3B1LnNoYWRvd19sZHRfbWFwY250ID09IDAgKQorICAg IGlmICggdi0+YXJjaC5wdi5zaGFkb3dfbGR0X21hcGNudCA9PSAwICkKICAgICAgICAgZ290byBv dXQ7CiAKICAgICBwbDFlID0gcHZfbGR0X3B0ZXModik7CkBAIC01OCwxMSArNTgsMTEgQEAgYm9v bCBwdl9kZXN0cm95X2xkdChzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgcHV0X3BhZ2VfYW5kX3R5 cGUocGFnZSk7CiAgICAgfQogCi0gICAgQVNTRVJUKHYtPmFyY2gucHZfdmNwdS5zaGFkb3dfbGR0 X21hcGNudCA9PSBtYXBwaW5nc19kcm9wcGVkKTsKLSAgICB2LT5hcmNoLnB2X3ZjcHUuc2hhZG93 X2xkdF9tYXBjbnQgPSAwOworICAgIEFTU0VSVCh2LT5hcmNoLnB2LnNoYWRvd19sZHRfbWFwY250 ID09IG1hcHBpbmdzX2Ryb3BwZWQpOworICAgIHYtPmFyY2gucHYuc2hhZG93X2xkdF9tYXBjbnQg PSAwOwogCiAgb3V0OgotICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLnB2X3ZjcHUuc2hhZG93X2xk dF9sb2NrKTsKKyAgICBzcGluX3VubG9jaygmdi0+YXJjaC5wdi5zaGFkb3dfbGR0X2xvY2spOwog CiAgICAgcmV0dXJuIG1hcHBpbmdzX2Ryb3BwZWQ7CiB9CkBAIC03NCw3ICs3NCw3IEBAIHZvaWQg cHZfZGVzdHJveV9nZHQoc3RydWN0IHZjcHUgKnYpCiAgICAgbDFfcGdlbnRyeV90IHplcm9fbDFl ID0gbDFlX2Zyb21fbWZuKHplcm9fbWZuLCBfX1BBR0VfSFlQRVJWSVNPUl9STyk7CiAgICAgdW5z aWduZWQgaW50IGk7CiAKLSAgICB2LT5hcmNoLnB2X3ZjcHUuZ2R0X2VudHMgPSAwOworICAgIHYt PmFyY2gucHYuZ2R0X2VudHMgPSAwOwogICAgIGZvciAoIGkgPSAwOyBpIDwgRklSU1RfUkVTRVJW RURfR0RUX1BBR0U7IGkrKyApCiAgICAgewogICAgICAgICBtZm5fdCBtZm4gPSBsMWVfZ2V0X21m bihwbDFlW2ldKTsKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBwdl9kZXN0cm95X2dkdChzdHJ1Y3Qg dmNwdSAqdikKICAgICAgICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKG1mbl90b19wYWdlKG1mbikp OwogCiAgICAgICAgIGwxZV93cml0ZSgmcGwxZVtpXSwgemVyb19sMWUpOwotICAgICAgICB2LT5h cmNoLnB2X3ZjcHUuZ2R0X2ZyYW1lc1tpXSA9IDA7CisgICAgICAgIHYtPmFyY2gucHYuZ2R0X2Zy YW1lc1tpXSA9IDA7CiAgICAgfQogfQogCkBAIC0xMTcsMTEgKzExNywxMSBAQCBsb25nIHB2X3Nl dF9nZHQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgKmZyYW1lcywgdW5zaWduZWQgaW50 IGVudHJpZXMpCiAgICAgcHZfZGVzdHJveV9nZHQodik7CiAKICAgICAvKiBJbnN0YWxsIHRoZSBu ZXcgR0RULiAqLwotICAgIHYtPmFyY2gucHZfdmNwdS5nZHRfZW50cyA9IGVudHJpZXM7CisgICAg di0+YXJjaC5wdi5nZHRfZW50cyA9IGVudHJpZXM7CiAgICAgcGwxZSA9IHB2X2dkdF9wdGVzKHYp OwogICAgIGZvciAoIGkgPSAwOyBpIDwgbnJfZnJhbWVzOyBpKysgKQogICAgIHsKLSAgICAgICAg di0+YXJjaC5wdl92Y3B1LmdkdF9mcmFtZXNbaV0gPSBmcmFtZXNbaV07CisgICAgICAgIHYtPmFy Y2gucHYuZ2R0X2ZyYW1lc1tpXSA9IGZyYW1lc1tpXTsKICAgICAgICAgbDFlX3dyaXRlKCZwbDFl W2ldLCBsMWVfZnJvbV9wZm4oZnJhbWVzW2ldLCBfX1BBR0VfSFlQRVJWSVNPUl9SVykpOwogICAg IH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYyBiL3hlbi9hcmNo L3g4Ni9wdi9kb20wX2J1aWxkLmMKaW5kZXggMDc4Mjg4Yi4uOTZmZjBlZSAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9i dWlsZC5jCkBAIC01ODksOCArNTg5LDggQEAgaW50IF9faW5pdCBkb20wX2NvbnN0cnVjdF9wdihz dHJ1Y3QgZG9tYWluICpkLAogCiAgICAgaWYgKCBpc19wdl8zMmJpdF9kb21haW4oZCkgKQogICAg IHsKLSAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmZhaWxzYWZlX2NhbGxiYWNrX2NzID0gRkxBVF9D T01QQVRfS0VSTkVMX0NTOwotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZXZlbnRfY2FsbGJhY2tf Y3MgICAgPSBGTEFUX0NPTVBBVF9LRVJORUxfQ1M7CisgICAgICAgIHYtPmFyY2gucHYuZmFpbHNh ZmVfY2FsbGJhY2tfY3MgPSBGTEFUX0NPTVBBVF9LRVJORUxfQ1M7CisgICAgICAgIHYtPmFyY2gu cHYuZXZlbnRfY2FsbGJhY2tfY3MgICAgPSBGTEFUX0NPTVBBVF9LRVJORUxfQ1M7CiAgICAgfQog CiAgICAgLyogV0FSTklORzogVGhlIG5ldyBkb21haW4gbXVzdCBoYXZlIGl0cyAncHJvY2Vzc29y JyBmaWVsZCBmaWxsZWQgaW4hICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZG9tYWlu LmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMKaW5kZXggNDU0ZDU4MC4uZDUyZTY0MCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9k b21haW4uYwpAQCAtMTYxLDggKzE2MSw3IEBAIHZvaWQgcHZfdmNwdV9kZXN0cm95KHN0cnVjdCB2 Y3B1ICp2KQogICAgIH0KIAogICAgIHB2X2Rlc3Ryb3lfZ2R0X2xkdF9sMXRhYih2KTsKLSAgICB4 ZnJlZSh2LT5hcmNoLnB2X3ZjcHUudHJhcF9jdHh0KTsKLSAgICB2LT5hcmNoLnB2X3ZjcHUudHJh cF9jdHh0ID0gTlVMTDsKKyAgICBYRlJFRSh2LT5hcmNoLnB2LnRyYXBfY3R4dCk7CiB9CiAKIGlu dCBwdl92Y3B1X2luaXRpYWxpc2Uoc3RydWN0IHZjcHUgKnYpCkBAIC0xNzIsMTcgKzE3MSwxNiBA QCBpbnQgcHZfdmNwdV9pbml0aWFsaXNlKHN0cnVjdCB2Y3B1ICp2KQogCiAgICAgQVNTRVJUKCFp c19pZGxlX2RvbWFpbihkKSk7CiAKLSAgICBzcGluX2xvY2tfaW5pdCgmdi0+YXJjaC5wdl92Y3B1 LnNoYWRvd19sZHRfbG9jayk7CisgICAgc3Bpbl9sb2NrX2luaXQoJnYtPmFyY2gucHYuc2hhZG93 X2xkdF9sb2NrKTsKIAogICAgIHJjID0gcHZfY3JlYXRlX2dkdF9sZHRfbDF0YWIodik7CiAgICAg aWYgKCByYyApCiAgICAgICAgIHJldHVybiByYzsKIAotICAgIEJVSUxEX0JVR19PTihOUl9WRUNU T1JTICogc2l6ZW9mKCp2LT5hcmNoLnB2X3ZjcHUudHJhcF9jdHh0KSA+CisgICAgQlVJTERfQlVH X09OKE5SX1ZFQ1RPUlMgKiBzaXplb2YoKnYtPmFyY2gucHYudHJhcF9jdHh0KSA+CiAgICAgICAg ICAgICAgICAgIFBBR0VfU0laRSk7Ci0gICAgdi0+YXJjaC5wdl92Y3B1LnRyYXBfY3R4dCA9IHh6 YWxsb2NfYXJyYXkoc3RydWN0IHRyYXBfaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOUl9WRUNUT1JTKTsKLSAgICBpZiAoICF2LT5hcmNoLnB2X3Zj cHUudHJhcF9jdHh0ICkKKyAgICB2LT5hcmNoLnB2LnRyYXBfY3R4dCA9IHh6YWxsb2NfYXJyYXko c3RydWN0IHRyYXBfaW5mbywgTlJfVkVDVE9SUyk7CisgICAgaWYgKCAhdi0+YXJjaC5wdi50cmFw X2N0eHQgKQogICAgIHsKICAgICAgICAgcmMgPSAtRU5PTUVNOwogICAgICAgICBnb3RvIGRvbmU7 CkBAIC0xOTEsNyArMTg5LDcgQEAgaW50IHB2X3ZjcHVfaW5pdGlhbGlzZShzdHJ1Y3QgdmNwdSAq dikKICAgICAvKiBQViBndWVzdHMgYnkgZGVmYXVsdCBoYXZlIGEgMTAwSHogdGlja2VyLiAqLwog ICAgIHYtPnBlcmlvZGljX3BlcmlvZCA9IE1JTExJU0VDUygxMCk7CiAKLSAgICB2LT5hcmNoLnB2 X3ZjcHUuY3RybHJlZ1s0XSA9IHJlYWxfY3I0X3RvX3B2X2d1ZXN0X2NyNChtbXVfY3I0X2ZlYXR1 cmVzKTsKKyAgICB2LT5hcmNoLnB2LmN0cmxyZWdbNF0gPSByZWFsX2NyNF90b19wdl9ndWVzdF9j cjQobW11X2NyNF9mZWF0dXJlcyk7CiAKICAgICBpZiAoIGlzX3B2XzMyYml0X2RvbWFpbihkKSAp CiAgICAgewpAQCAtMzA4LDE0ICszMDYsMTIgQEAgc3RhdGljIHZvaWQgX3RvZ2dsZV9ndWVzdF9w dChzdHJ1Y3QgdmNwdSAqdikKICAgICBpZiAoICEodi0+YXJjaC5mbGFncyAmIFRGX2tlcm5lbF9t b2RlKSApCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICggdi0+YXJjaC5wdl92Y3B1Lm5lZWRf dXBkYXRlX3J1bnN0YXRlX2FyZWEgJiYKLSAgICAgICAgIHVwZGF0ZV9ydW5zdGF0ZV9hcmVhKHYp ICkKLSAgICAgICAgdi0+YXJjaC5wdl92Y3B1Lm5lZWRfdXBkYXRlX3J1bnN0YXRlX2FyZWEgPSAw OworICAgIGlmICggdi0+YXJjaC5wdi5uZWVkX3VwZGF0ZV9ydW5zdGF0ZV9hcmVhICYmIHVwZGF0 ZV9ydW5zdGF0ZV9hcmVhKHYpICkKKyAgICAgICAgdi0+YXJjaC5wdi5uZWVkX3VwZGF0ZV9ydW5z dGF0ZV9hcmVhID0gMDsKIAotICAgIGlmICggdi0+YXJjaC5wdl92Y3B1LnBlbmRpbmdfc3lzdGVt X3RpbWUudmVyc2lvbiAmJgotICAgICAgICAgdXBkYXRlX3NlY29uZGFyeV9zeXN0ZW1fdGltZSh2 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdi0+YXJjaC5wdl92Y3B1 LnBlbmRpbmdfc3lzdGVtX3RpbWUpICkKLSAgICAgICAgdi0+YXJjaC5wdl92Y3B1LnBlbmRpbmdf c3lzdGVtX3RpbWUudmVyc2lvbiA9IDA7CisgICAgaWYgKCB2LT5hcmNoLnB2LnBlbmRpbmdfc3lz dGVtX3RpbWUudmVyc2lvbiAmJgorICAgICAgICAgdXBkYXRlX3NlY29uZGFyeV9zeXN0ZW1fdGlt ZSh2LCAmdi0+YXJjaC5wdi5wZW5kaW5nX3N5c3RlbV90aW1lKSApCisgICAgICAgIHYtPmFyY2gu cHYucGVuZGluZ19zeXN0ZW1fdGltZS52ZXJzaW9uID0gMDsKIH0KIAogdm9pZCB0b2dnbGVfZ3Vl c3RfbW9kZShzdHJ1Y3QgdmNwdSAqdikKQEAgLTMyNSw5ICszMjEsOSBAQCB2b2lkIHRvZ2dsZV9n dWVzdF9tb2RlKHN0cnVjdCB2Y3B1ICp2KQogICAgIGlmICggY3B1X2hhc19mc2dzYmFzZSApCiAg ICAgewogICAgICAgICBpZiAoIHYtPmFyY2guZmxhZ3MgJiBURl9rZXJuZWxfbW9kZSApCi0gICAg ICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZ3NfYmFzZV9rZXJuZWwgPSBfX3JkZ3NiYXNlKCk7Cisg ICAgICAgICAgICB2LT5hcmNoLnB2LmdzX2Jhc2Vfa2VybmVsID0gX19yZGdzYmFzZSgpOwogICAg ICAgICBlbHNlCi0gICAgICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZ3NfYmFzZV91c2VyID0gX19y ZGdzYmFzZSgpOworICAgICAgICAgICAgdi0+YXJjaC5wdi5nc19iYXNlX3VzZXIgPSBfX3JkZ3Ni YXNlKCk7CiAgICAgfQogICAgIGFzbSB2b2xhdGlsZSAoICJzd2FwZ3MiICk7CiAKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLWdhdGUtb3AuYyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVs LWdhdGUtb3AuYwppbmRleCA4MTBjNGY3Li5kMWM4YWE2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvcHYvZW11bC1nYXRlLW9wLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2VtdWwtZ2F0ZS1vcC5j CkBAIC0zMjQsOCArMzI0LDggQEAgdm9pZCBwdl9lbXVsYXRlX2dhdGVfb3Aoc3RydWN0IGNwdV91 c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgICAgICAgICAgcHZfaW5qZWN0X2h3X2V4Y2VwdGlvbihU UkFQX2dwX2ZhdWx0LCByZWdzLT5lcnJvcl9jb2RlKTsKICAgICAgICAgICAgICAgICByZXR1cm47 CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlc3AgPSB2LT5hcmNoLnB2X3ZjcHUua2VybmVs X3NwOwotICAgICAgICAgICAgc3MgPSB2LT5hcmNoLnB2X3ZjcHUua2VybmVsX3NzOworICAgICAg ICAgICAgZXNwID0gdi0+YXJjaC5wdi5rZXJuZWxfc3A7CisgICAgICAgICAgICBzcyA9IHYtPmFy Y2gucHYua2VybmVsX3NzOwogICAgICAgICAgICAgaWYgKCAoc3MgJiAzKSAhPSAoc2VsICYgMykg fHwKICAgICAgICAgICAgICAgICAgIXB2X2VtdWxfcmVhZF9kZXNjcmlwdG9yKHNzLCB2LCAmYmFz ZSwgJmxpbWl0LCAmYXIsIDApIHx8CiAgICAgICAgICAgICAgICAgICgoYXIgPj4gMTMpICYgMykg IT0gKHNlbCAmIDMpIHx8CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9w LmMgYi94ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKaW5kZXggODRmMjJhZS4uNjRhZDI4 ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jCisrKyBiL3hlbi9h cmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYwpAQCAtMTExLDkgKzExMSw5IEBAIHN0YXRpYyBib29s IGlvcGxfb2soY29uc3Qgc3RydWN0IHZjcHUgKnYsIGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogICAgIHVuc2lnbmVkIGludCBjcGwgPSBndWVzdF9rZXJuZWxfbW9kZSh2LCByZWdz KSA/CiAgICAgICAgIChWTV9BU1NJU1Qodi0+ZG9tYWluLCBhcmNoaXRlY3R1cmFsX2lvcGwpID8g MCA6IDEpIDogMzsKIAotICAgIEFTU0VSVCgodi0+YXJjaC5wdl92Y3B1LmlvcGwgJiB+WDg2X0VG TEFHU19JT1BMKSA9PSAwKTsKKyAgICBBU1NFUlQoKHYtPmFyY2gucHYuaW9wbCAmIH5YODZfRUZM QUdTX0lPUEwpID09IDApOwogCi0gICAgcmV0dXJuIElPUEwoY3BsKSA8PSB2LT5hcmNoLnB2X3Zj cHUuaW9wbDsKKyAgICByZXR1cm4gSU9QTChjcGwpIDw9IHYtPmFyY2gucHYuaW9wbDsKIH0KIAog LyogSGFzIHRoZSBndWVzdCByZXF1ZXN0ZWQgc3VmZmljaWVudCBwZXJtaXNzaW9uIGZvciB0aGlz IEkvTyBhY2Nlc3M/ICovCkBAIC0xMjYsNyArMTI2LDcgQEAgc3RhdGljIGJvb2wgZ3Vlc3RfaW9f b2theSh1bnNpZ25lZCBpbnQgcG9ydCwgdW5zaWduZWQgaW50IGJ5dGVzLAogICAgIGlmICggaW9w bF9vayh2LCByZWdzKSApCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCAocG9ydCAr IGJ5dGVzKSA8PSB2LT5hcmNoLnB2X3ZjcHUuaW9ibXBfbGltaXQgKQorICAgIGlmICggKHBvcnQg KyBieXRlcykgPD0gdi0+YXJjaC5wdi5pb2JtcF9saW1pdCApCiAgICAgewogICAgICAgICB1bmlv biB7IHVpbnQ4X3QgYnl0ZXNbMl07IHVpbnQxNl90IG1hc2s7IH0geDsKIApAQCAtMTM3LDcgKzEz Nyw3IEBAIHN0YXRpYyBib29sIGd1ZXN0X2lvX29rYXkodW5zaWduZWQgaW50IHBvcnQsIHVuc2ln bmVkIGludCBieXRlcywKICAgICAgICAgaWYgKCB1c2VyX21vZGUgKQogICAgICAgICAgICAgdG9n Z2xlX2d1ZXN0X3B0KHYpOwogCi0gICAgICAgIHN3aXRjaCAoIF9fY29weV9mcm9tX2d1ZXN0X29m ZnNldCh4LmJ5dGVzLCB2LT5hcmNoLnB2X3ZjcHUuaW9ibXAsCisgICAgICAgIHN3aXRjaCAoIF9f Y29weV9mcm9tX2d1ZXN0X29mZnNldCh4LmJ5dGVzLCB2LT5hcmNoLnB2LmlvYm1wLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD4+MywgMikgKQogICAgICAg ICB7CiAgICAgICAgIGRlZmF1bHQ6IHguYnl0ZXNbMF0gPSB+MDsKQEAgLTI4Nyw3ICsyODcsNyBA QCBzdGF0aWMgdW5zaWduZWQgaW50IGNoZWNrX2d1ZXN0X2lvX2JyZWFrcG9pbnQoc3RydWN0IHZj cHUgKnYsCiAgICAgdW5zaWduZWQgbG9uZyBzdGFydDsKIAogICAgIGlmICggISh2LT5hcmNoLmRl YnVncmVnWzVdKSB8fAotICAgICAgICAgISh2LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1s0XSAmIFg4 Nl9DUjRfREUpICkKKyAgICAgICAgICEodi0+YXJjaC5wdi5jdHJscmVnWzRdICYgWDg2X0NSNF9E RSkgKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgNDsgaSsrICkK QEAgLTcwMSwxMiArNzAxLDEyIEBAIHN0YXRpYyBpbnQgcmVhZF9jcih1bnNpZ25lZCBpbnQgcmVn LCB1bnNpZ25lZCBsb25nICp2YWwsCiAgICAgc3dpdGNoICggcmVnICkKICAgICB7CiAgICAgY2Fz ZSAwOiAvKiBSZWFkIENSMCAqLwotICAgICAgICAqdmFsID0gKHJlYWRfY3IwKCkgJiB+WDg2X0NS MF9UUykgfCBjdXJyLT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1swXTsKKyAgICAgICAgKnZhbCA9IChy ZWFkX2NyMCgpICYgflg4Nl9DUjBfVFMpIHwgY3Vyci0+YXJjaC5wdi5jdHJscmVnWzBdOwogICAg ICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogCiAgICAgY2FzZSAyOiAvKiBSZWFkIENSMiAqLwog ICAgIGNhc2UgNDogLyogUmVhZCBDUjQgKi8KLSAgICAgICAgKnZhbCA9IGN1cnItPmFyY2gucHZf dmNwdS5jdHJscmVnW3JlZ107CisgICAgICAgICp2YWwgPSBjdXJyLT5hcmNoLnB2LmN0cmxyZWdb cmVnXTsKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIAogICAgIGNhc2UgMzogLyogUmVh ZCBDUjMgKi8KQEAgLTc1NSw3ICs3NTUsNyBAQCBzdGF0aWMgaW50IHdyaXRlX2NyKHVuc2lnbmVk IGludCByZWcsIHVuc2lnbmVkIGxvbmcgdmFsLAogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZ OwogCiAgICAgY2FzZSAyOiAvKiBXcml0ZSBDUjIgKi8KLSAgICAgICAgY3Vyci0+YXJjaC5wdl92 Y3B1LmN0cmxyZWdbMl0gPSB2YWw7CisgICAgICAgIGN1cnItPmFyY2gucHYuY3RybHJlZ1syXSA9 IHZhbDsKICAgICAgICAgYXJjaF9zZXRfY3IyKGN1cnIsIHZhbCk7CiAgICAgICAgIHJldHVybiBY ODZFTVVMX09LQVk7CiAKQEAgLTc4NSw3ICs3ODUsNyBAQCBzdGF0aWMgaW50IHdyaXRlX2NyKHVu c2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcgdmFsLAogICAgIH0KIAogICAgIGNhc2UgNDog LyogV3JpdGUgQ1I0ICovCi0gICAgICAgIGN1cnItPmFyY2gucHZfdmNwdS5jdHJscmVnWzRdID0g cHZfZ3Vlc3RfY3I0X2ZpeHVwKGN1cnIsIHZhbCk7CisgICAgICAgIGN1cnItPmFyY2gucHYuY3Ry bHJlZ1s0XSA9IHB2X2d1ZXN0X2NyNF9maXh1cChjdXJyLCB2YWwpOwogICAgICAgICB3cml0ZV9j cjQocHZfZ3Vlc3RfY3I0X3RvX3JlYWxfY3I0KGN1cnIpKTsKICAgICAgICAgY3R4dF9zd2l0Y2hf bGV2ZWxsaW5nKGN1cnIpOwogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwpAQCAtODM0LDIw ICs4MzQsMjAgQEAgc3RhdGljIGludCByZWFkX21zcih1bnNpZ25lZCBpbnQgcmVnLCB1aW50NjRf dCAqdmFsLAogICAgIGNhc2UgTVNSX0ZTX0JBU0U6CiAgICAgICAgIGlmICggaXNfcHZfMzJiaXRf ZG9tYWluKGN1cnJkKSApCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgKnZhbCA9IGNwdV9o YXNfZnNnc2Jhc2UgPyBfX3JkZnNiYXNlKCkgOiBjdXJyLT5hcmNoLnB2X3ZjcHUuZnNfYmFzZTsK KyAgICAgICAgKnZhbCA9IGNwdV9oYXNfZnNnc2Jhc2UgPyBfX3JkZnNiYXNlKCkgOiBjdXJyLT5h cmNoLnB2LmZzX2Jhc2U7CiAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7CiAKICAgICBjYXNl IE1TUl9HU19CQVNFOgogICAgICAgICBpZiAoIGlzX3B2XzMyYml0X2RvbWFpbihjdXJyZCkgKQog ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICp2YWwgPSBjcHVfaGFzX2ZzZ3NiYXNlID8gX19y ZGdzYmFzZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3Vyci0+YXJjaC5w dl92Y3B1LmdzX2Jhc2Vfa2VybmVsOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 IGN1cnItPmFyY2gucHYuZ3NfYmFzZV9rZXJuZWw7CiAgICAgICAgIHJldHVybiBYODZFTVVMX09L QVk7CiAKICAgICBjYXNlIE1TUl9TSEFET1dfR1NfQkFTRToKICAgICAgICAgaWYgKCBpc19wdl8z MmJpdF9kb21haW4oY3VycmQpICkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAqdmFsID0g Y3Vyci0+YXJjaC5wdl92Y3B1LmdzX2Jhc2VfdXNlcjsKKyAgICAgICAgKnZhbCA9IGN1cnItPmFy Y2gucHYuZ3NfYmFzZV91c2VyOwogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogCiAgICAg LyoKQEAgLTkxOCwxMyArOTE4LDEzIEBAIHN0YXRpYyBpbnQgcmVhZF9tc3IodW5zaWduZWQgaW50 IHJlZywgdWludDY0X3QgKnZhbCwKICAgICBjYXNlIE1TUl9BTUQ2NF9EUjBfQUREUkVTU19NQVNL OgogICAgICAgICBpZiAoICFib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfREJFWFQpICkKICAgICAg ICAgICAgIGJyZWFrOwotICAgICAgICAqdmFsID0gY3Vyci0+YXJjaC5wdl92Y3B1LmRyX21hc2tb MF07CisgICAgICAgICp2YWwgPSBjdXJyLT5hcmNoLnB2LmRyX21hc2tbMF07CiAgICAgICAgIHJl dHVybiBYODZFTVVMX09LQVk7CiAKICAgICBjYXNlIE1TUl9BTUQ2NF9EUjFfQUREUkVTU19NQVNL IC4uLiBNU1JfQU1ENjRfRFIzX0FERFJFU1NfTUFTSzoKICAgICAgICAgaWYgKCAhYm9vdF9jcHVf aGFzKFg4Nl9GRUFUVVJFX0RCRVhUKSApCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgKnZh bCA9IGN1cnItPmFyY2gucHZfdmNwdS5kcl9tYXNrW3JlZyAtIE1TUl9BTUQ2NF9EUjFfQUREUkVT U19NQVNLICsgMV07CisgICAgICAgICp2YWwgPSBjdXJyLT5hcmNoLnB2LmRyX21hc2tbcmVnIC0g TVNSX0FNRDY0X0RSMV9BRERSRVNTX01BU0sgKyAxXTsKICAgICAgICAgcmV0dXJuIFg4NkVNVUxf T0tBWTsKIAogICAgIGNhc2UgTVNSX0lBMzJfUEVSRl9DQVBBQklMSVRJRVM6CkBAIC05OTYsMjEg Kzk5NiwyMSBAQCBzdGF0aWMgaW50IHdyaXRlX21zcih1bnNpZ25lZCBpbnQgcmVnLCB1aW50NjRf dCB2YWwsCiAgICAgICAgIGlmICggaXNfcHZfMzJiaXRfZG9tYWluKGN1cnJkKSB8fCAhaXNfY2Fu b25pY2FsX2FkZHJlc3ModmFsKSApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgd3Jmc2Jh c2UodmFsKTsKLSAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1LmZzX2Jhc2UgPSB2YWw7CisgICAg ICAgIGN1cnItPmFyY2gucHYuZnNfYmFzZSA9IHZhbDsKICAgICAgICAgcmV0dXJuIFg4NkVNVUxf T0tBWTsKIAogICAgIGNhc2UgTVNSX0dTX0JBU0U6CiAgICAgICAgIGlmICggaXNfcHZfMzJiaXRf ZG9tYWluKGN1cnJkKSB8fCAhaXNfY2Fub25pY2FsX2FkZHJlc3ModmFsKSApCiAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgd3Jnc2Jhc2UodmFsKTsKLSAgICAgICAgY3Vyci0+YXJjaC5wdl92 Y3B1LmdzX2Jhc2Vfa2VybmVsID0gdmFsOworICAgICAgICBjdXJyLT5hcmNoLnB2LmdzX2Jhc2Vf a2VybmVsID0gdmFsOwogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogCiAgICAgY2FzZSBN U1JfU0hBRE9XX0dTX0JBU0U6CiAgICAgICAgIGlmICggaXNfcHZfMzJiaXRfZG9tYWluKGN1cnJk KSB8fCAhaXNfY2Fub25pY2FsX2FkZHJlc3ModmFsKSApCiAgICAgICAgICAgICBicmVhazsKICAg ICAgICAgd3Jnc3NoYWRvdyh2YWwpOwotICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuZ3NfYmFz ZV91c2VyID0gdmFsOworICAgICAgICBjdXJyLT5hcmNoLnB2LmdzX2Jhc2VfdXNlciA9IHZhbDsK ICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIAogICAgIGNhc2UgTVNSX0s3X0ZJRF9WSURf U1RBVFVTOgpAQCAtMTExNSw3ICsxMTE1LDcgQEAgc3RhdGljIGludCB3cml0ZV9tc3IodW5zaWdu ZWQgaW50IHJlZywgdWludDY0X3QgdmFsLAogICAgIGNhc2UgTVNSX0FNRDY0X0RSMF9BRERSRVNT X01BU0s6CiAgICAgICAgIGlmICggIWJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9EQkVYVCkgfHwg KHZhbCA+PiAzMikgKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGN1cnItPmFyY2gucHZf dmNwdS5kcl9tYXNrWzBdID0gdmFsOworICAgICAgICBjdXJyLT5hcmNoLnB2LmRyX21hc2tbMF0g PSB2YWw7CiAgICAgICAgIGlmICggY3Vyci0+YXJjaC5kZWJ1Z3JlZ1s3XSAmIERSN19BQ1RJVkVf TUFTSyApCiAgICAgICAgICAgICB3cm1zcmwoTVNSX0FNRDY0X0RSMF9BRERSRVNTX01BU0ssIHZh bCk7CiAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7CkBAIC0xMTIzLDcgKzExMjMsNyBAQCBz dGF0aWMgaW50IHdyaXRlX21zcih1bnNpZ25lZCBpbnQgcmVnLCB1aW50NjRfdCB2YWwsCiAgICAg Y2FzZSBNU1JfQU1ENjRfRFIxX0FERFJFU1NfTUFTSyAuLi4gTVNSX0FNRDY0X0RSM19BRERSRVNT X01BU0s6CiAgICAgICAgIGlmICggIWJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9EQkVYVCkgfHwg KHZhbCA+PiAzMikgKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGN1cnItPmFyY2gucHZf dmNwdS5kcl9tYXNrW3JlZyAtIE1TUl9BTUQ2NF9EUjFfQUREUkVTU19NQVNLICsgMV0gPSB2YWw7 CisgICAgICAgIGN1cnItPmFyY2gucHYuZHJfbWFza1tyZWcgLSBNU1JfQU1ENjRfRFIxX0FERFJF U1NfTUFTSyArIDFdID0gdmFsOwogICAgICAgICBpZiAoIGN1cnItPmFyY2guZGVidWdyZWdbN10g JiBEUjdfQUNUSVZFX01BU0sgKQogICAgICAgICAgICAgd3Jtc3JsKHJlZywgdmFsKTsKICAgICAg ICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKQEAgLTEzMjcsNyArMTMyNyw3IEBAIGludCBwdl9lbXVs YXRlX3ByaXZpbGVnZWRfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgZWxzZQog ICAgICAgICByZWdzLT5lZmxhZ3MgfD0gWDg2X0VGTEFHU19JRjsKICAgICBBU1NFUlQoIShyZWdz LT5lZmxhZ3MgJiBYODZfRUZMQUdTX0lPUEwpKTsKLSAgICByZWdzLT5lZmxhZ3MgfD0gY3Vyci0+ YXJjaC5wdl92Y3B1LmlvcGw7CisgICAgcmVncy0+ZWZsYWdzIHw9IGN1cnItPmFyY2gucHYuaW9w bDsKICAgICBlZmxhZ3MgPSByZWdzLT5lZmxhZ3M7CiAKICAgICBjdHh0LmN0eHQuYWRkcl9zaXpl ID0gYXIgJiBfU0VHTUVOVF9MID8gNjQgOiBhciAmIF9TRUdNRU5UX0RCID8gMzIgOiAxNjsKQEAg LTEzNjksNyArMTM2OSw3IEBAIGludCBwdl9lbXVsYXRlX3ByaXZpbGVnZWRfb3Aoc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICAgIGlmICggY3R4dC5icG1hdGNoICkKICAgICAgICAg ewogICAgICAgICAgICAgY3Vyci0+YXJjaC5kZWJ1Z3JlZ1s2XSB8PSBjdHh0LmJwbWF0Y2ggfCBE Ul9TVEFUVVNfUkVTRVJWRURfT05FOwotICAgICAgICAgICAgaWYgKCAhKGN1cnItPmFyY2gucHZf dmNwdS50cmFwX2JvdW5jZS5mbGFncyAmIFRCRl9FWENFUFRJT04pICkKKyAgICAgICAgICAgIGlm ICggIShjdXJyLT5hcmNoLnB2LnRyYXBfYm91bmNlLmZsYWdzICYgVEJGX0VYQ0VQVElPTikgKQog ICAgICAgICAgICAgICAgIHB2X2luamVjdF9od19leGNlcHRpb24oVFJBUF9kZWJ1ZywgWDg2X0VW RU5UX05PX0VDKTsKICAgICAgICAgfQogICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9pcmV0LmMgYi94ZW4vYXJjaC94ODYvcHYvaXJldC5jCmlu ZGV4IGNhNDMzYTYuLmMzNTlhMWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9pcmV0LmMK KysrIGIveGVuL2FyY2gveDg2L3B2L2lyZXQuYwpAQCAtNTEsNyArNTEsNyBAQCB1bnNpZ25lZCBs b25nIGRvX2lyZXQodm9pZCkKICAgICB9CiAKICAgICBpZiAoIFZNX0FTU0lTVCh2LT5kb21haW4s IGFyY2hpdGVjdHVyYWxfaW9wbCkgKQotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuaW9wbCA9IGly ZXRfc2F2ZWQucmZsYWdzICYgWDg2X0VGTEFHU19JT1BMOworICAgICAgICB2LT5hcmNoLnB2Lmlv cGwgPSBpcmV0X3NhdmVkLnJmbGFncyAmIFg4Nl9FRkxBR1NfSU9QTDsKIAogICAgIHJlZ3MtPnJp cCAgICA9IGlyZXRfc2F2ZWQucmlwOwogICAgIHJlZ3MtPmNzICAgICA9IGlyZXRfc2F2ZWQuY3Mg fCAzOyAvKiBmb3JjZSBndWVzdCBwcml2aWxlZ2UgKi8KQEAgLTExNSw3ICsxMTUsNyBAQCB1bnNp Z25lZCBpbnQgY29tcGF0X2lyZXQodm9pZCkKICAgICB9CiAKICAgICBpZiAoIFZNX0FTU0lTVCh2 LT5kb21haW4sIGFyY2hpdGVjdHVyYWxfaW9wbCkgKQotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUu aW9wbCA9IGVmbGFncyAmIFg4Nl9FRkxBR1NfSU9QTDsKKyAgICAgICAgdi0+YXJjaC5wdi5pb3Bs ID0gZWZsYWdzICYgWDg2X0VGTEFHU19JT1BMOwogCiAgICAgcmVncy0+ZWZsYWdzID0gKGVmbGFn cyAmIH5YODZfRUZMQUdTX0lPUEwpIHwgWDg2X0VGTEFHU19JRjsKIApAQCAtMTMwLDcgKzEzMCw3 IEBAIHVuc2lnbmVkIGludCBjb21wYXRfaXJldCh2b2lkKQogICAgICAgICAgKiBtb2RlIGZyYW1l cykuCiAgICAgICAgICAqLwogICAgICAgICBjb25zdCBzdHJ1Y3QgdHJhcF9pbmZvICp0aTsKLSAg ICAgICAgdTMyIHgsIGtzcCA9IHYtPmFyY2gucHZfdmNwdS5rZXJuZWxfc3AgLSA0MDsKKyAgICAg ICAgdTMyIHgsIGtzcCA9IHYtPmFyY2gucHYua2VybmVsX3NwIC0gNDA7CiAgICAgICAgIHVuc2ln bmVkIGludCBpOwogICAgICAgICBpbnQgcmMgPSAwOwogCkBAIC0xNTgsOSArMTU4LDkgQEAgdW5z aWduZWQgaW50IGNvbXBhdF9pcmV0KHZvaWQpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg ICAgfQogICAgICAgICByZWdzLT5lc3AgPSBrc3A7Ci0gICAgICAgIHJlZ3MtPnNzID0gdi0+YXJj aC5wdl92Y3B1Lmtlcm5lbF9zczsKKyAgICAgICAgcmVncy0+c3MgPSB2LT5hcmNoLnB2Lmtlcm5l bF9zczsKIAotICAgICAgICB0aSA9ICZ2LT5hcmNoLnB2X3ZjcHUudHJhcF9jdHh0W1RSQVBfZ3Bf ZmF1bHRdOworICAgICAgICB0aSA9ICZ2LT5hcmNoLnB2LnRyYXBfY3R4dFtUUkFQX2dwX2ZhdWx0 XTsKICAgICAgICAgaWYgKCBUSV9HRVRfSUYodGkpICkKICAgICAgICAgICAgIGVmbGFncyAmPSB+ WDg2X0VGTEFHU19JRjsKICAgICAgICAgcmVncy0+ZWZsYWdzICY9IH4oWDg2X0VGTEFHU19WTXxY ODZfRUZMQUdTX1JGfApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L21pc2MtaHlwZXJjYWxs cy5jIGIveGVuL2FyY2gveDg2L3B2L21pc2MtaHlwZXJjYWxscy5jCmluZGV4IDE2MTliZTcuLjlm NjFmM2QgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9taXNjLWh5cGVyY2FsbHMuYworKysg Yi94ZW4vYXJjaC94ODYvcHYvbWlzYy1oeXBlcmNhbGxzLmMKQEAgLTQyLDEyICs0MiwxMiBAQCBs b25nIGRvX2ZwdV90YXNrc3dpdGNoKGludCBzZXQpCiAKICAgICBpZiAoIHNldCApCiAgICAgewot ICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1swXSB8PSBYODZfQ1IwX1RTOworICAgICAg ICB2LT5hcmNoLnB2LmN0cmxyZWdbMF0gfD0gWDg2X0NSMF9UUzsKICAgICAgICAgc3R0cygpOwog ICAgIH0KICAgICBlbHNlCiAgICAgewotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1sw XSAmPSB+WDg2X0NSMF9UUzsKKyAgICAgICAgdi0+YXJjaC5wdi5jdHJscmVnWzBdICY9IH5YODZf Q1IwX1RTOwogICAgICAgICBpZiAoIHYtPmZwdV9kaXJ0aWVkICkKICAgICAgICAgICAgIGNsdHMo KTsKICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvbW0uYyBiL3hlbi9hcmNoL3g4 Ni9wdi9tbS5jCmluZGV4IGI0NmZkOTQuLmU5MTU2ZWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9wdi9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9tbS5jCkBAIC04Nyw3ICs4Nyw3IEBAIGJv b2wgcHZfbWFwX2xkdF9zaGFkb3dfcGFnZSh1bnNpZ25lZCBpbnQgb2Zmc2V0KQogICAgIHN0cnVj dCBkb21haW4gKmN1cnJkID0gY3Vyci0+ZG9tYWluOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBh Z2U7CiAgICAgbDFfcGdlbnRyeV90IGdsMWUsICpwbDFlOwotICAgIHVuc2lnbmVkIGxvbmcgbGlu ZWFyID0gY3Vyci0+YXJjaC5wdl92Y3B1LmxkdF9iYXNlICsgb2Zmc2V0OworICAgIHVuc2lnbmVk IGxvbmcgbGluZWFyID0gY3Vyci0+YXJjaC5wdi5sZHRfYmFzZSArIG9mZnNldDsKIAogICAgIEJV R19PTih1bmxpa2VseShpbl9pcnEoKSkpOwogCkBAIC05Nyw3ICs5Nyw3IEBAIGJvb2wgcHZfbWFw X2xkdF9zaGFkb3dfcGFnZSh1bnNpZ25lZCBpbnQgb2Zmc2V0KQogICAgICAqIGN1cnJlbnQgdmNw dSwgYW5kIHZjcHVfcmVzZXQoKSB3aWxsIGJsb2NrIHVudGlsIHRoaXMgdmNwdSBoYXMgYmVlbgog ICAgICAqIGRlc2NoZWR1bGVkIGJlZm9yZSBjb250aW51aW5nLgogICAgICAqLwotICAgIEFTU0VS VCgob2Zmc2V0ID4+IDMpIDw9IGN1cnItPmFyY2gucHZfdmNwdS5sZHRfZW50cyk7CisgICAgQVNT RVJUKChvZmZzZXQgPj4gMykgPD0gY3Vyci0+YXJjaC5wdi5sZHRfZW50cyk7CiAKICAgICBpZiAo IGlzX3B2XzMyYml0X2RvbWFpbihjdXJyZCkgKQogICAgICAgICBsaW5lYXIgPSAodWludDMyX3Qp bGluZWFyOwpAQCAtMTE5LDEwICsxMTksMTAgQEAgYm9vbCBwdl9tYXBfbGR0X3NoYWRvd19wYWdl KHVuc2lnbmVkIGludCBvZmZzZXQpCiAgICAgcGwxZSA9ICZwdl9sZHRfcHRlcyhjdXJyKVtvZmZz ZXQgPj4gUEFHRV9TSElGVF07CiAgICAgbDFlX2FkZF9mbGFncyhnbDFlLCBfUEFHRV9SVyk7CiAK LSAgICBzcGluX2xvY2soJmN1cnItPmFyY2gucHZfdmNwdS5zaGFkb3dfbGR0X2xvY2spOworICAg IHNwaW5fbG9jaygmY3Vyci0+YXJjaC5wdi5zaGFkb3dfbGR0X2xvY2spOwogICAgIGwxZV93cml0 ZShwbDFlLCBnbDFlKTsKLSAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuc2hhZG93X2xkdF9tYXBjbnQr KzsKLSAgICBzcGluX3VubG9jaygmY3Vyci0+YXJjaC5wdl92Y3B1LnNoYWRvd19sZHRfbG9jayk7 CisgICAgY3Vyci0+YXJjaC5wdi5zaGFkb3dfbGR0X21hcGNudCsrOworICAgIHNwaW5fdW5sb2Nr KCZjdXJyLT5hcmNoLnB2LnNoYWRvd19sZHRfbG9jayk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0K ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi90cmFwcy5jIGIveGVuL2FyY2gveDg2L3B2L3Ry YXBzLmMKaW5kZXggZjQ4ZGI5Mi4uMTc0MDc4NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2 L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L3RyYXBzLmMKQEAgLTYzLDggKzYzLDggQEAg dm9pZCBwdl9pbmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4Nl9ldmVudCAqZXZlbnQpCiAgICAg ZWxzZQogICAgICAgICBBU1NFUlQoZXJyb3JfY29kZSA9PSBYODZfRVZFTlRfTk9fRUMpOwogCi0g ICAgdGIgPSAmY3Vyci0+YXJjaC5wdl92Y3B1LnRyYXBfYm91bmNlOwotICAgIHRpID0gJmN1cnIt PmFyY2gucHZfdmNwdS50cmFwX2N0eHRbdmVjdG9yXTsKKyAgICB0YiA9ICZjdXJyLT5hcmNoLnB2 LnRyYXBfYm91bmNlOworICAgIHRpID0gJmN1cnItPmFyY2gucHYudHJhcF9jdHh0W3ZlY3Rvcl07 CiAKICAgICB0Yi0+ZmxhZ3MgPSBUQkZfRVhDRVBUSU9OOwogICAgIHRiLT5jcyAgICA9IHRpLT5j czsKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBwdl9pbmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4 Nl9ldmVudCAqZXZlbnQpCiAgICAgaWYgKCBldmVudC0+dHlwZSA9PSBYODZfRVZFTlRUWVBFX0hX X0VYQ0VQVElPTiAmJgogICAgICAgICAgdmVjdG9yID09IFRSQVBfcGFnZV9mYXVsdCApCiAgICAg ewotICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1syXSA9IGV2ZW50LT5jcjI7Cisg ICAgICAgIGN1cnItPmFyY2gucHYuY3RybHJlZ1syXSA9IGV2ZW50LT5jcjI7CiAgICAgICAgIGFy Y2hfc2V0X2NyMihjdXJyLCBldmVudC0+Y3IyKTsKIAogICAgICAgICAvKiBSZS1zZXQgZXJyb3Jf Y29kZS51c2VyIGZsYWcgYXBwcm9wcmlhdGVseSBmb3IgdGhlIGd1ZXN0LiAqLwpAQCAtMTEzLDcg KzExMyw3IEBAIHZvaWQgcHZfaW5qZWN0X2V2ZW50KGNvbnN0IHN0cnVjdCB4ODZfZXZlbnQgKmV2 ZW50KQogYm9vbCBzZXRfZ3Vlc3RfbWFjaGluZWNoZWNrX3RyYXBib3VuY2Uodm9pZCkKIHsKICAg ICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7Ci0gICAgc3RydWN0IHRyYXBfYm91bmNlICp0 YiA9ICZjdXJyLT5hcmNoLnB2X3ZjcHUudHJhcF9ib3VuY2U7CisgICAgc3RydWN0IHRyYXBfYm91 bmNlICp0YiA9ICZjdXJyLT5hcmNoLnB2LnRyYXBfYm91bmNlOwogCiAgICAgcHZfaW5qZWN0X2h3 X2V4Y2VwdGlvbihUUkFQX21hY2hpbmVfY2hlY2ssIFg4Nl9FVkVOVF9OT19FQyk7CiAgICAgdGIt PmZsYWdzICY9IH5UQkZfRVhDRVBUSU9OOyAvKiBub3QgbmVlZGVkIGZvciBNQ0UgZGVsaXZlcnkg cGF0aCAqLwpAQCAtMTI4LDcgKzEyOCw3IEBAIGJvb2wgc2V0X2d1ZXN0X21hY2hpbmVjaGVja190 cmFwYm91bmNlKHZvaWQpCiBib29sIHNldF9ndWVzdF9ubWlfdHJhcGJvdW5jZSh2b2lkKQogewog ICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKLSAgICBzdHJ1Y3QgdHJhcF9ib3VuY2Ug KnRiID0gJmN1cnItPmFyY2gucHZfdmNwdS50cmFwX2JvdW5jZTsKKyAgICBzdHJ1Y3QgdHJhcF9i b3VuY2UgKnRiID0gJmN1cnItPmFyY2gucHYudHJhcF9ib3VuY2U7CiAKICAgICBwdl9pbmplY3Rf aHdfZXhjZXB0aW9uKFRSQVBfbm1pLCBYODZfRVZFTlRfTk9fRUMpOwogICAgIHRiLT5mbGFncyAm PSB+VEJGX0VYQ0VQVElPTjsgLyogbm90IG5lZWRlZCBmb3IgTk1JIGRlbGl2ZXJ5IHBhdGggKi8K ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90aW1lLmMgYi94ZW4vYXJjaC94ODYvdGltZS5jCmlu ZGV4IDUzNjQ0OWIuLjY5ZTlhYWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90aW1lLmMKKysr IGIveGVuL2FyY2gveDg2L3RpbWUuYwpAQCAtMTA5OSw3ICsxMDk5LDcgQEAgc3RhdGljIHZvaWQg X191cGRhdGVfdmNwdV9zeXN0ZW1fdGltZShzdHJ1Y3QgdmNwdSAqdiwgaW50IGZvcmNlKQogCiAg ICAgaWYgKCAhdXBkYXRlX3NlY29uZGFyeV9zeXN0ZW1fdGltZSh2LCAmX3UpICYmIGlzX3B2X2Rv bWFpbihkKSAmJgogICAgICAgICAgIWlzX3B2XzMyYml0X2RvbWFpbihkKSAmJiAhKHYtPmFyY2gu ZmxhZ3MgJiBURl9rZXJuZWxfbW9kZSkgKQotICAgICAgICB2LT5hcmNoLnB2X3ZjcHUucGVuZGlu Z19zeXN0ZW1fdGltZSA9IF91OworICAgICAgICB2LT5hcmNoLnB2LnBlbmRpbmdfc3lzdGVtX3Rp bWUgPSBfdTsKIH0KIAogYm9vbCB1cGRhdGVfc2Vjb25kYXJ5X3N5c3RlbV90aW1lKHN0cnVjdCB2 Y3B1ICp2LApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYv dHJhcHMuYwppbmRleCBkZGZmMzQ2Li43Y2E2OTVjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv dHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwpAQCAtMTE0NSw3ICsxMTQ1LDcgQEAg c3RhdGljIGludCBoYW5kbGVfbGR0X21hcHBpbmdfZmF1bHQodW5zaWduZWQgaW50IG9mZnNldCwK IAogICAgICAgICAvKiBBY2Nlc3Mgd291bGQgaGF2ZSBiZWNvbWUgbm9uLWNhbm9uaWNhbD8gUGFz cyAjR1Bbc2VsXSBiYWNrLiAqLwogICAgICAgICBpZiAoIHVubGlrZWx5KCFpc19jYW5vbmljYWxf YWRkcmVzcygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyci0+YXJjaC5wdl92Y3B1Lmxk dF9iYXNlICsgb2Zmc2V0KSkgKQorICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyLT5hcmNo LnB2LmxkdF9iYXNlICsgb2Zmc2V0KSkgKQogICAgICAgICB7CiAgICAgICAgICAgICB1aW50MTZf dCBlYyA9IChvZmZzZXQgJiB+KFg4Nl9YRUNfRVhUIHwgWDg2X1hFQ19JRFQpKSB8IFg4Nl9YRUNf VEk7CiAKQEAgLTExNTQsNyArMTE1NCw3IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2xkdF9tYXBwaW5n X2ZhdWx0KHVuc2lnbmVkIGludCBvZmZzZXQsCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIC8q IGVsc2UgcGFzcyB0aGUgI1BGIGJhY2ssIHdpdGggYWRqdXN0ZWQgJWNyMi4gKi8KICAgICAgICAg ICAgIHB2X2luamVjdF9wYWdlX2ZhdWx0KHJlZ3MtPmVycm9yX2NvZGUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjdXJyLT5hcmNoLnB2X3ZjcHUubGR0X2Jhc2UgKyBvZmZzZXQp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyci0+YXJjaC5wdi5sZHRfYmFz ZSArIG9mZnNldCk7CiAgICAgfQogCiAgICAgcmV0dXJuIEVYQ1JFVF9mYXVsdF9maXhlZDsKQEAg LTE1MzYsNyArMTUzNiw3IEBAIHZvaWQgZG9fZ2VuZXJhbF9wcm90ZWN0aW9uKHN0cnVjdCBjcHVf dXNlcl9yZWdzICpyZWdzKQogICAgICAgICAvKiBUaGlzIGZhdWx0IG11c3QgYmUgZHVlIHRvIDxJ TlQgbj4gaW5zdHJ1Y3Rpb24uICovCiAgICAgICAgIGNvbnN0IHN0cnVjdCB0cmFwX2luZm8gKnRp OwogICAgICAgICB1bnNpZ25lZCBjaGFyIHZlY3RvciA9IHJlZ3MtPmVycm9yX2NvZGUgPj4gMzsK LSAgICAgICAgdGkgPSAmdi0+YXJjaC5wdl92Y3B1LnRyYXBfY3R4dFt2ZWN0b3JdOworICAgICAg ICB0aSA9ICZ2LT5hcmNoLnB2LnRyYXBfY3R4dFt2ZWN0b3JdOwogICAgICAgICBpZiAoIHBlcm1p dF9zb2Z0aW50KFRJX0dFVF9EUEwodGkpLCB2LCByZWdzKSApCiAgICAgICAgIHsKICAgICAgICAg ICAgIHJlZ3MtPnJpcCArPSAyOwpAQCAtMTc2OCwxMCArMTc2OCwxMCBAQCB2b2lkIGRvX2Rldmlj ZV9ub3RfYXZhaWxhYmxlKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogCiAgICAgdmNwdV9y ZXN0b3JlX2ZwdV9sYXp5KGN1cnIpOwogCi0gICAgaWYgKCBjdXJyLT5hcmNoLnB2X3ZjcHUuY3Ry bHJlZ1swXSAmIFg4Nl9DUjBfVFMgKQorICAgIGlmICggY3Vyci0+YXJjaC5wdi5jdHJscmVnWzBd ICYgWDg2X0NSMF9UUyApCiAgICAgewogICAgICAgICBwdl9pbmplY3RfaHdfZXhjZXB0aW9uKFRS QVBfbm9fZGV2aWNlLCBYODZfRVZFTlRfTk9fRUMpOwotICAgICAgICBjdXJyLT5hcmNoLnB2X3Zj cHUuY3RybHJlZ1swXSAmPSB+WDg2X0NSMF9UUzsKKyAgICAgICAgY3Vyci0+YXJjaC5wdi5jdHJs cmVnWzBdICY9IH5YODZfQ1IwX1RTOwogICAgIH0KICAgICBlbHNlCiAgICAgICAgIFRSQUNFXzBE KFRSQ19QVl9NQVRIX1NUQVRFX1JFU1RPUkUpOwpAQCAtMjA3MywxMCArMjA3MywxMCBAQCB2b2lk IGFjdGl2YXRlX2RlYnVncmVncyhjb25zdCBzdHJ1Y3QgdmNwdSAqY3VycikKIAogICAgIGlmICgg Ym9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0RCRVhUKSApCiAgICAgewotICAgICAgICB3cm1zcmwo TVNSX0FNRDY0X0RSMF9BRERSRVNTX01BU0ssIGN1cnItPmFyY2gucHZfdmNwdS5kcl9tYXNrWzBd KTsKLSAgICAgICAgd3Jtc3JsKE1TUl9BTUQ2NF9EUjFfQUREUkVTU19NQVNLLCBjdXJyLT5hcmNo LnB2X3ZjcHUuZHJfbWFza1sxXSk7Ci0gICAgICAgIHdybXNybChNU1JfQU1ENjRfRFIyX0FERFJF U1NfTUFTSywgY3Vyci0+YXJjaC5wdl92Y3B1LmRyX21hc2tbMl0pOwotICAgICAgICB3cm1zcmwo TVNSX0FNRDY0X0RSM19BRERSRVNTX01BU0ssIGN1cnItPmFyY2gucHZfdmNwdS5kcl9tYXNrWzNd KTsKKyAgICAgICAgd3Jtc3JsKE1TUl9BTUQ2NF9EUjBfQUREUkVTU19NQVNLLCBjdXJyLT5hcmNo LnB2LmRyX21hc2tbMF0pOworICAgICAgICB3cm1zcmwoTVNSX0FNRDY0X0RSMV9BRERSRVNTX01B U0ssIGN1cnItPmFyY2gucHYuZHJfbWFza1sxXSk7CisgICAgICAgIHdybXNybChNU1JfQU1ENjRf RFIyX0FERFJFU1NfTUFTSywgY3Vyci0+YXJjaC5wdi5kcl9tYXNrWzJdKTsKKyAgICAgICAgd3Jt c3JsKE1TUl9BTUQ2NF9EUjNfQUREUkVTU19NQVNLLCBjdXJyLT5hcmNoLnB2LmRyX21hc2tbM10p OwogICAgIH0KIH0KIApAQCAtMjEwOSw3ICsyMTA5LDcgQEAgbG9uZyBzZXRfZGVidWdyZWcoc3Ry dWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcgdmFsdWUpCiAgICAg ICAgIGJyZWFrOwogCiAgICAgY2FzZSA0OgotICAgICAgICBpZiAoIHYtPmFyY2gucHZfdmNwdS5j dHJscmVnWzRdICYgWDg2X0NSNF9ERSApCisgICAgICAgIGlmICggdi0+YXJjaC5wdi5jdHJscmVn WzRdICYgWDg2X0NSNF9ERSApCiAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKIAogICAgICAg ICAvKiBGYWxsdGhyb3VnaCAqLwpAQCAtMjEyOSw3ICsyMTI5LDcgQEAgbG9uZyBzZXRfZGVidWdy ZWcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcgdmFsdWUp CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSA1OgotICAgICAgICBpZiAoIHYtPmFyY2gucHZf dmNwdS5jdHJscmVnWzRdICYgWDg2X0NSNF9ERSApCisgICAgICAgIGlmICggdi0+YXJjaC5wdi5j dHJscmVnWzRdICYgWDg2X0NSNF9ERSApCiAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKIAog ICAgICAgICAvKiBGYWxsdGhyb3VnaCAqLwpAQCAtMjE2MCw3ICsyMTYwLDcgQEAgbG9uZyBzZXRf ZGVidWdyZWcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcg dmFsdWUpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKCAoKHZhbHVlID4+IGkp ICYgMykgPT0gRFJfSU8gKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAg aWYgKCAhKHYtPmFyY2gucHZfdmNwdS5jdHJscmVnWzRdICYgWDg2X0NSNF9ERSkgKQorICAgICAg ICAgICAgICAgICAgICBpZiAoICEodi0+YXJjaC5wdi5jdHJscmVnWzRdICYgWDg2X0NSNF9ERSkg KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FUEVSTTsKICAgICAgICAgICAgICAg ICAgICAgaW9fZW5hYmxlIHw9IHZhbHVlICYgKDMgPDwgKChpIC0gMTYpID4+IDEpKTsKICAgICAg ICAgICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRz LmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKaW5kZXggMTgwNzdhZi4uMjY1 MjRjNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCisrKyBi L3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwpAQCAtNTIsMjggKzUyLDI4IEBAIHZv aWQgX19kdW1teV9fKHZvaWQpCiAgICAgT0ZGU0VUKFZDUFVfcHJvY2Vzc29yLCBzdHJ1Y3QgdmNw dSwgcHJvY2Vzc29yKTsKICAgICBPRkZTRVQoVkNQVV9kb21haW4sIHN0cnVjdCB2Y3B1LCBkb21h aW4pOwogICAgIE9GRlNFVChWQ1BVX3ZjcHVfaW5mbywgc3RydWN0IHZjcHUsIHZjcHVfaW5mbyk7 Ci0gICAgT0ZGU0VUKFZDUFVfdHJhcF9ib3VuY2UsIHN0cnVjdCB2Y3B1LCBhcmNoLnB2X3ZjcHUu dHJhcF9ib3VuY2UpOworICAgIE9GRlNFVChWQ1BVX3RyYXBfYm91bmNlLCBzdHJ1Y3QgdmNwdSwg YXJjaC5wdi50cmFwX2JvdW5jZSk7CiAgICAgT0ZGU0VUKFZDUFVfdGhyZWFkX2ZsYWdzLCBzdHJ1 Y3QgdmNwdSwgYXJjaC5mbGFncyk7Ci0gICAgT0ZGU0VUKFZDUFVfZXZlbnRfYWRkciwgc3RydWN0 IHZjcHUsIGFyY2gucHZfdmNwdS5ldmVudF9jYWxsYmFja19laXApOwotICAgIE9GRlNFVChWQ1BV X2V2ZW50X3NlbCwgc3RydWN0IHZjcHUsIGFyY2gucHZfdmNwdS5ldmVudF9jYWxsYmFja19jcyk7 CisgICAgT0ZGU0VUKFZDUFVfZXZlbnRfYWRkciwgc3RydWN0IHZjcHUsIGFyY2gucHYuZXZlbnRf Y2FsbGJhY2tfZWlwKTsKKyAgICBPRkZTRVQoVkNQVV9ldmVudF9zZWwsIHN0cnVjdCB2Y3B1LCBh cmNoLnB2LmV2ZW50X2NhbGxiYWNrX2NzKTsKICAgICBPRkZTRVQoVkNQVV9zeXNjYWxsX2FkZHIs IHN0cnVjdCB2Y3B1LAotICAgICAgICAgICBhcmNoLnB2X3ZjcHUuc3lzY2FsbF9jYWxsYmFja19l aXApOworICAgICAgICAgICBhcmNoLnB2LnN5c2NhbGxfY2FsbGJhY2tfZWlwKTsKICAgICBPRkZT RVQoVkNQVV9zeXNjYWxsMzJfYWRkciwgc3RydWN0IHZjcHUsCi0gICAgICAgICAgIGFyY2gucHZf dmNwdS5zeXNjYWxsMzJfY2FsbGJhY2tfZWlwKTsKKyAgICAgICAgICAgYXJjaC5wdi5zeXNjYWxs MzJfY2FsbGJhY2tfZWlwKTsKICAgICBPRkZTRVQoVkNQVV9zeXNjYWxsMzJfc2VsLCBzdHJ1Y3Qg dmNwdSwKLSAgICAgICAgICAgYXJjaC5wdl92Y3B1LnN5c2NhbGwzMl9jYWxsYmFja19jcyk7Cisg ICAgICAgICAgIGFyY2gucHYuc3lzY2FsbDMyX2NhbGxiYWNrX2NzKTsKICAgICBPRkZTRVQoVkNQ VV9zeXNjYWxsMzJfZGlzYWJsZXNfZXZlbnRzLCBzdHJ1Y3QgdmNwdSwKLSAgICAgICAgICAgYXJj aC5wdl92Y3B1LnN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHMpOworICAgICAgICAgICBhcmNoLnB2 LnN5c2NhbGwzMl9kaXNhYmxlc19ldmVudHMpOwogICAgIE9GRlNFVChWQ1BVX3N5c2VudGVyX2Fk ZHIsIHN0cnVjdCB2Y3B1LAotICAgICAgICAgICBhcmNoLnB2X3ZjcHUuc3lzZW50ZXJfY2FsbGJh Y2tfZWlwKTsKKyAgICAgICAgICAgYXJjaC5wdi5zeXNlbnRlcl9jYWxsYmFja19laXApOwogICAg IE9GRlNFVChWQ1BVX3N5c2VudGVyX3NlbCwgc3RydWN0IHZjcHUsCi0gICAgICAgICAgIGFyY2gu cHZfdmNwdS5zeXNlbnRlcl9jYWxsYmFja19jcyk7CisgICAgICAgICAgIGFyY2gucHYuc3lzZW50 ZXJfY2FsbGJhY2tfY3MpOwogICAgIE9GRlNFVChWQ1BVX3N5c2VudGVyX2Rpc2FibGVzX2V2ZW50 cywgc3RydWN0IHZjcHUsCi0gICAgICAgICAgIGFyY2gucHZfdmNwdS5zeXNlbnRlcl9kaXNhYmxl c19ldmVudHMpOwotICAgIE9GRlNFVChWQ1BVX3RyYXBfY3R4dCwgc3RydWN0IHZjcHUsIGFyY2gu cHZfdmNwdS50cmFwX2N0eHQpOwotICAgIE9GRlNFVChWQ1BVX2tlcm5lbF9zcCwgc3RydWN0IHZj cHUsIGFyY2gucHZfdmNwdS5rZXJuZWxfc3ApOwotICAgIE9GRlNFVChWQ1BVX2tlcm5lbF9zcywg c3RydWN0IHZjcHUsIGFyY2gucHZfdmNwdS5rZXJuZWxfc3MpOwotICAgIE9GRlNFVChWQ1BVX2lv cGwsIHN0cnVjdCB2Y3B1LCBhcmNoLnB2X3ZjcHUuaW9wbCk7CisgICAgICAgICAgIGFyY2gucHYu c3lzZW50ZXJfZGlzYWJsZXNfZXZlbnRzKTsKKyAgICBPRkZTRVQoVkNQVV90cmFwX2N0eHQsIHN0 cnVjdCB2Y3B1LCBhcmNoLnB2LnRyYXBfY3R4dCk7CisgICAgT0ZGU0VUKFZDUFVfa2VybmVsX3Nw LCBzdHJ1Y3QgdmNwdSwgYXJjaC5wdi5rZXJuZWxfc3ApOworICAgIE9GRlNFVChWQ1BVX2tlcm5l bF9zcywgc3RydWN0IHZjcHUsIGFyY2gucHYua2VybmVsX3NzKTsKKyAgICBPRkZTRVQoVkNQVV9p b3BsLCBzdHJ1Y3QgdmNwdSwgYXJjaC5wdi5pb3BsKTsKICAgICBPRkZTRVQoVkNQVV9ndWVzdF9j b250ZXh0X2ZsYWdzLCBzdHJ1Y3QgdmNwdSwgYXJjaC52Z2NfZmxhZ3MpOwogICAgIE9GRlNFVChW Q1BVX2NyMywgc3RydWN0IHZjcHUsIGFyY2guY3IzKTsKICAgICBPRkZTRVQoVkNQVV9hcmNoX21z cnMsIHN0cnVjdCB2Y3B1LCBhcmNoLm1zcnMpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4 Nl82NC9lbnRyeS5TIGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCmluZGV4IGRhYjhjNGYu LjQ4Y2I5NmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUworKysgYi94 ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKQEAgLTM3MSw3ICszNzEsNyBAQCBVTkxJS0VMWV9F TkQobXNpX2NoZWNrKQogICAgICAgICBtb3YgICBWQ1BVX2RvbWFpbiglcmJ4KSwgJXJheAogCiAg ICAgICAgIC8qCi0gICAgICAgICAqIGlmICggbnVsbF90cmFwX2luZm8odiwgJnYtPmFyY2gucHZf dmNwdS50cmFwX2N0eHRbMHg4MF0pICkKKyAgICAgICAgICogaWYgKCBudWxsX3RyYXBfaW5mbyh2 LCAmdi0+YXJjaC5wdi50cmFwX2N0eHRbMHg4MF0pICkKICAgICAgICAgICogICAgZ290byBpbnQ4 MF9zbG93X3BhdGg7CiAgICAgICAgICAqLwogICAgICAgICBtb3YgICAgMHg4MCAqIFRSQVBJTkZP X3NpemVvZiArIFRSQVBJTkZPX2VpcCglcnNpKSwgJXJkaQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3g4Nl82NC9tbS5jIGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCmluZGV4IGNjYTRhZTku Ljk4OWE1MzQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYworKysgYi94ZW4v YXJjaC94ODYveDg2XzY0L21tLmMKQEAgLTEwMDcsOCArMTAwNyw4IEBAIGxvbmcgc3ViYXJjaF9t ZW1vcnlfb3AodW5zaWduZWQgbG9uZyBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkg YXJnKQogbG9uZyBkb19zdGFja19zd2l0Y2godW5zaWduZWQgbG9uZyBzcywgdW5zaWduZWQgbG9u ZyBlc3ApCiB7CiAgICAgZml4dXBfZ3Vlc3Rfc3RhY2tfc2VsZWN0b3IoY3VycmVudC0+ZG9tYWlu LCBzcyk7Ci0gICAgY3VycmVudC0+YXJjaC5wdl92Y3B1Lmtlcm5lbF9zcyA9IHNzOwotICAgIGN1 cnJlbnQtPmFyY2gucHZfdmNwdS5rZXJuZWxfc3AgPSBlc3A7CisgICAgY3VycmVudC0+YXJjaC5w di5rZXJuZWxfc3MgPSBzczsKKyAgICBjdXJyZW50LT5hcmNoLnB2Lmtlcm5lbF9zcCA9IGVzcDsK ICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTAyNiw3ICsxMDI2LDcgQEAgbG9uZyBkb19zZXRfc2Vn bWVudF9iYXNlKHVuc2lnbmVkIGludCB3aGljaCwgdW5zaWduZWQgbG9uZyBiYXNlKQogICAgICAg ICBpZiAoIGlzX2Nhbm9uaWNhbF9hZGRyZXNzKGJhc2UpICkKICAgICAgICAgewogICAgICAgICAg ICAgd3Jmc2Jhc2UoYmFzZSk7Ci0gICAgICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuZnNfYmFzZSA9 IGJhc2U7CisgICAgICAgICAgICB2LT5hcmNoLnB2LmZzX2Jhc2UgPSBiYXNlOwogICAgICAgICB9 CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7CkBAIC0xMDM2LDcgKzEw MzYsNyBAQCBsb25nIGRvX3NldF9zZWdtZW50X2Jhc2UodW5zaWduZWQgaW50IHdoaWNoLCB1bnNp Z25lZCBsb25nIGJhc2UpCiAgICAgICAgIGlmICggaXNfY2Fub25pY2FsX2FkZHJlc3MoYmFzZSkg KQogICAgICAgICB7CiAgICAgICAgICAgICB3cmdzc2hhZG93KGJhc2UpOwotICAgICAgICAgICAg di0+YXJjaC5wdl92Y3B1LmdzX2Jhc2VfdXNlciA9IGJhc2U7CisgICAgICAgICAgICB2LT5hcmNo LnB2LmdzX2Jhc2VfdXNlciA9IGJhc2U7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAg ICAgICAgcmV0ID0gLUVJTlZBTDsKQEAgLTEwNDYsNyArMTA0Niw3IEBAIGxvbmcgZG9fc2V0X3Nl Z21lbnRfYmFzZSh1bnNpZ25lZCBpbnQgd2hpY2gsIHVuc2lnbmVkIGxvbmcgYmFzZSkKICAgICAg ICAgaWYgKCBpc19jYW5vbmljYWxfYWRkcmVzcyhiYXNlKSApCiAgICAgICAgIHsKICAgICAgICAg ICAgIHdyZ3NiYXNlKGJhc2UpOwotICAgICAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmdzX2Jhc2Vf a2VybmVsID0gYmFzZTsKKyAgICAgICAgICAgIHYtPmFyY2gucHYuZ3NfYmFzZV9rZXJuZWwgPSBi YXNlOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYv eDg2XzY0L3RyYXBzLmMKaW5kZXggZWQwMmI3OC4uNjA2YjFiMCAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3g4Nl82NC90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvdHJhcHMuYwpA QCAtMTY5LDE1ICsxNjksMTUgQEAgdm9pZCB2Y3B1X3Nob3dfcmVnaXN0ZXJzKGNvbnN0IHN0cnVj dCB2Y3B1ICp2KQogICAgIGlmICggIWlzX3B2X3ZjcHUodikgKQogICAgICAgICByZXR1cm47CiAK LSAgICBjcnNbMF0gPSB2LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1swXTsKKyAgICBjcnNbMF0gPSB2 LT5hcmNoLnB2LmN0cmxyZWdbMF07CiAgICAgY3JzWzJdID0gYXJjaF9nZXRfY3IyKHYpOwogICAg IGNyc1szXSA9IHBhZ2V0YWJsZV9nZXRfcGFkZHIoa2VybmVsID8KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHYtPmFyY2guZ3Vlc3RfdGFibGUgOgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdi0+YXJjaC5ndWVzdF90YWJsZV91c2VyKTsKLSAgICBjcnNbNF0gPSB2 LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1s0XTsKLSAgICBjcnNbNV0gPSB2LT5hcmNoLnB2X3ZjcHUu ZnNfYmFzZTsKLSAgICBjcnNbNiArICFrZXJuZWxdID0gdi0+YXJjaC5wdl92Y3B1LmdzX2Jhc2Vf a2VybmVsOwotICAgIGNyc1s3IC0gIWtlcm5lbF0gPSB2LT5hcmNoLnB2X3ZjcHUuZ3NfYmFzZV91 c2VyOworICAgIGNyc1s0XSA9IHYtPmFyY2gucHYuY3RybHJlZ1s0XTsKKyAgICBjcnNbNV0gPSB2 LT5hcmNoLnB2LmZzX2Jhc2U7CisgICAgY3JzWzYgKyAha2VybmVsXSA9IHYtPmFyY2gucHYuZ3Nf YmFzZV9rZXJuZWw7CisgICAgY3JzWzcgLSAha2VybmVsXSA9IHYtPmFyY2gucHYuZ3NfYmFzZV91 c2VyOwogCiAgICAgX3Nob3dfcmVnaXN0ZXJzKHJlZ3MsIGNycywgQ1RYVF9wdl9ndWVzdCwgdik7 CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4 Ni94ODZfZW11bGF0ZS5jCmluZGV4IDMwZjg5YWQuLjUzMmI3ZTAgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS5jCkBA IC0xMTEsNyArMTExLDcgQEAgaW50IHg4NmVtdWxfcmVhZF9kcih1bnNpZ25lZCBpbnQgcmVnLCB1 bnNpZ25lZCBsb25nICp2YWwsCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSA0IC4uLiA1Ogot ICAgICAgICBpZiAoICEoY3Vyci0+YXJjaC5wdl92Y3B1LmN0cmxyZWdbNF0gJiBYODZfQ1I0X0RF KSApCisgICAgICAgIGlmICggIShjdXJyLT5hcmNoLnB2LmN0cmxyZWdbNF0gJiBYODZfQ1I0X0RF KSApCiAgICAgICAgIHsKICAgICAgICAgICAgICp2YWwgPSBjdXJyLT5hcmNoLmRlYnVncmVnW3Jl ZyArIDJdOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t eDg2L2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAppbmRleCAwYzc1YzAy Li5mZGQ2ODU2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKQEAgLTU0MCw3ICs1NDAsNyBAQCBzdHJ1Y3Qg YXJjaF92Y3B1CiAKICAgICAvKiBWaXJ0dWFsIE1hY2hpbmUgRXh0ZW5zaW9ucyAqLwogICAgIHVu aW9uIHsKLSAgICAgICAgc3RydWN0IHB2X3ZjcHUgcHZfdmNwdTsKKyAgICAgICAgc3RydWN0IHB2 X3ZjcHUgcHY7CiAgICAgICAgIHN0cnVjdCBodm1fdmNwdSBodm1fdmNwdTsKICAgICB9OwogCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2xkdC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9sZHQuaAppbmRleCA1ODlkYWY4Li5hNjIzNmIyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2xkdC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbGR0LmgKQEAgLTksNyArOSw3 IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBsb2FkX0xEVChzdHJ1Y3QgdmNwdSAqdikKICAgICBzdHJ1 Y3QgZGVzY19zdHJ1Y3QgKmRlc2M7CiAgICAgdW5zaWduZWQgbG9uZyBlbnRzOwogCi0gICAgaWYg KCAoZW50cyA9IHYtPmFyY2gucHZfdmNwdS5sZHRfZW50cykgPT0gMCApCisgICAgaWYgKCAoZW50 cyA9IHYtPmFyY2gucHYubGR0X2VudHMpID09IDAgKQogICAgICAgICBsbGR0KDApOwogICAgIGVs c2UKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3B2L3RyYXBzLmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L3B2L3RyYXBzLmgKaW5kZXggODk5ODVkMS4uZmNjNzVmNSAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi90cmFwcy5oCisrKyBiL3hlbi9pbmNsdWRl L2FzbS14ODYvcHYvdHJhcHMuaApAQCAtMzcsNyArMzcsNyBAQCBib29sIHB2X2VtdWxhdGVfaW52 YWxpZF9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7CiBzdGF0aWMgaW5saW5lIGJvb2wg cHZfdHJhcF9jYWxsYmFja19yZWdpc3RlcmVkKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IHZlY3RvcikK IHsKLSAgICByZXR1cm4gdi0+YXJjaC5wdl92Y3B1LnRyYXBfY3R4dFt2ZWN0b3JdLmFkZHJlc3M7 CisgICAgcmV0dXJuIHYtPmFyY2gucHYudHJhcF9jdHh0W3ZlY3Rvcl0uYWRkcmVzczsKIH0KIAog I2Vsc2UgIC8qICFDT05GSUdfUFYgKi8KLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==