From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruno Alvisio Subject: [PATCH RFC v2 3/8] Adapted libxl to handle migration of instance with qemu based disks Date: Wed, 18 Oct 2017 10:26:30 -0700 Message-ID: <1508347595-11657-4-git-send-email-bruno.alvisio@gmail.com> References: <1508347595-11657-1-git-send-email-bruno.alvisio@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1508347595-11657-1-git-send-email-bruno.alvisio@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, ian.jackson@eu.citrix.com, bruno.alvisio@gmail.com, dave@recoil.org List-Id: xen-devel@lists.xenproject.org LS0tCiB0b29scy9saWJ4bC9saWJ4bC5oICAgICAgICAgICAgICB8ICAxMSArKy0KIHRvb2xzL2xp YnhsL2xpYnhsX2NyZWF0ZS5jICAgICAgIHwgMTkxICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQogdG9vbHMvbGlieGwvbGlieGxfZG0uYyAgICAgICAgICAgfCAgMjYgKysr Ky0tCiB0b29scy9saWJ4bC9saWJ4bF9kb21fc2F2ZS5jICAgICB8ICA4NSArKysrKysrKysrKysr KysrLQogdG9vbHMvbGlieGwvbGlieGxfZG9tYWluLmMgICAgICAgfCAgIDQgKy0KIHRvb2xzL2xp YnhsL2xpYnhsX2ludGVybmFsLmggICAgIHwgIDYwICsrKysrKysrKystLQogdG9vbHMvbGlieGwv bGlieGxfc2F2ZV9jYWxsb3V0LmMgfCAgMzggKysrKystLS0KIHRvb2xzL2xpYnhsL2xpYnhsX3Nh dmVfaGVscGVyLmMgIHwgICA0ICstCiB0b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fcmVhZC5jICB8 ICAxNyArKystCiB0b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fd3JpdGUuYyB8ICAyOCArKysrKy0K IDEwIGZpbGVzIGNoYW5nZWQsIDQwNiBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5oIGIvdG9vbHMvbGlieGwvbGlieGwuaAppbmRl eCA5MTQwOGI0Li40MDIyYzM3IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bC5oCisrKyBi L3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTEzMzMsNyArMTMzMyw3IEBAIGludCBsaWJ4bF9kb21h aW5fY3JlYXRlX25ldyhsaWJ4bF9jdHggKmN0eCwgbGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25m aWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElCWExfRVhURVJOQUxfQ0FMTEVSU19P TkxZOwogaW50IGxpYnhsX2RvbWFpbl9jcmVhdGVfcmVzdG9yZShsaWJ4bF9jdHggKmN0eCwgbGli eGxfZG9tYWluX2NvbmZpZyAqZF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90ICpkb21pZCwgaW50IHJlc3RvcmVfZmQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBzZW5kX2JhY2tfZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCBzZW5kX2JhY2tfZmQsIGludCBtaXJyb3JfcWVtdV9kaXNrcywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfZG9tYWluX3Jlc3RvcmVfcGFyYW1z ICpwYXJhbXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhsX2Fz eW5jb3BfaG93ICphb19ob3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGxpYnhsX2FzeW5jcHJvZ3Jlc3NfaG93ICphb3BfY29uc29sZV9ob3cpCkBAIC0xMzczLDggKzEz NzMsOSBAQCBzdGF0aWMgaW5saW5lIGludCBsaWJ4bF9kb21haW5fY3JlYXRlX3Jlc3RvcmVfMHgw NDA0MDAoCiAgICAgY29uc3QgbGlieGxfYXN5bmNwcm9ncmVzc19ob3cgKmFvcF9jb25zb2xlX2hv dykKICAgICBMSUJYTF9FWFRFUk5BTF9DQUxMRVJTX09OTFkKIHsKKyAgICAvL1RPRE86IGJhbHZp c2lvOiBSZXZpZXcKICAgICByZXR1cm4gbGlieGxfZG9tYWluX2NyZWF0ZV9yZXN0b3JlKGN0eCwg ZF9jb25maWcsIGRvbWlkLCByZXN0b3JlX2ZkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLTEsIHBhcmFtcywgYW9faG93LCBhb3BfY29uc29sZV9ob3cpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIDAsIHBhcmFtcywgYW9faG93LCBh b3BfY29uc29sZV9ob3cpOwogfQogCiAjZGVmaW5lIGxpYnhsX2RvbWFpbl9jcmVhdGVfcmVzdG9y ZSBsaWJ4bF9kb21haW5fY3JlYXRlX3Jlc3RvcmVfMHgwNDA0MDAKQEAgLTE0MDgsMTAgKzE0MDks MTYgQEAgaW50IGxpYnhsX3JldHJpZXZlX2RvbWFpbl9jb25maWd1cmF0aW9uKGxpYnhsX2N0eCAq Y3R4LCB1aW50MzJfdCBkb21pZCwKIAogaW50IGxpYnhsX2RvbWFpbl9zdXNwZW5kKGxpYnhsX2N0 eCAqY3R4LCB1aW50MzJfdCBkb21pZCwgaW50IGZkLAogICAgICAgICAgICAgICAgICAgICAgICAg IGludCBmbGFncywgLyogTElCWExfU1VTUEVORF8qICovCisgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciogaG9zdG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg bGlieGxfYXN5bmNvcF9ob3cgKmFvX2hvdykKICAgICAgICAgICAgICAgICAgICAgICAgICBMSUJY TF9FWFRFUk5BTF9DQUxMRVJTX09OTFk7CiAjZGVmaW5lIExJQlhMX1NVU1BFTkRfREVCVUcgMQog I2RlZmluZSBMSUJYTF9TVVNQRU5EX0xJVkUgMgorI2RlZmluZSBMSUJYTF9TVVNQRU5EX01JUlJP Ul9RRU1VX0RJU0tTIDQKKworLy9UT0RPOiBiYWx2aXNpbzogRE8gTk9UIEhBUkQtQ09ERSBUSElT IFBBUkFNUworI2RlZmluZSBRRU1VX0RSSVZFX01JUlJPUl9QT1JUICIxMTAwMCIKKyNkZWZpbmUg UUVNVV9EUklWRV9NSVJST1JfREVWSUNFICJpZGUwLWhkMCIKIAogLyogQHBhcmFtIHN1c3BlbmRf Y2FuY2VsIFtmcm9tIHhlbmN0cmwuaDp4Y19kb21haW5fcmVzdW1lKCBAcGFyYW0gZmFzdCApXQog ICogICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0cnVlLCB1c2UgY28tb3BlcmF0aXZlIHJlc3VtZS4g VGhlIGd1ZXN0CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xz L2xpYnhsL2xpYnhsX2NyZWF0ZS5jCmluZGV4IDkxMjM1ODUuLmYxMGYyY2UgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0 ZS5jCkBAIC03NDQsNiArNzQ0LDEwIEBAIHN0YXRpYyBpbnQgc3RvcmVfbGlieGxfZW50cnkobGli eGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiBzdGF0aWMgdm9pZCBkb21jcmVhdGVfZGV2bW9k ZWxfc3RhcnRlZChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fZG1fc3Bhd25fc3RhdGUgKmRtc3MsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMpOworCitzdGF0aWMgdm9pZCBzdGFydF9uYmRf c2VydmVyKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2RtX3NwYXduX3N0YXRlICpkbXNzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmV0KTsKKwogc3RhdGljIHZvaWQgZG9tY3Jl YXRlX2Jvb3Rsb2FkZXJfY29uc29sZV9hdmFpbGFibGUobGlieGxfX2VnYyAqZWdjLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Jvb3Rs b2FkZXJfc3RhdGUgKmJsKTsKIHN0YXRpYyB2b2lkIGRvbWNyZWF0ZV9ib290bG9hZGVyX2RvbmUo bGlieGxfX2VnYyAqZWdjLApAQCAtNzYwLDEwICs3NjQsMTcgQEAgc3RhdGljIHZvaWQgZG9tY3Jl YXRlX3N0cmVhbV9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUgKnNycywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgcmV0KTsKIAorc3RhdGljIHZvaWQgZG9tY3JlYXRlX3By ZV9idWlsZChsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlICpkY3MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCByZXQpOworCiBzdGF0aWMgdm9pZCBkb21jcmVhdGVfcmVidWlsZF9kb25l KGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgKmRjcywKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaW50IHJldCk7CiAKK3N0YXRpYyB2b2lkIGRvbWNyZWF0ZV9tdWx0aWRldl9iZWdp bihsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgKmRjcyk7CisKIC8qIE91ciBvd24gZnVuY3Rpb24g dG8gY2xlYW4gdXAgYW5kIGNhbGwgdGhlIHVzZXIncyBjYWxsYmFjay4KICAqIFRoZSBmaW5hbCBj YWxsIGluIHRoZSBzZXF1ZW5jZS4gKi8KIHN0YXRpYyB2b2lkIGRvbWNyZWF0ZV9jb21wbGV0ZShs aWJ4bF9fZWdjICplZ2MsCkBAIC0xMDE2LDYgKzEwMjcsNjQgQEAgc3RhdGljIHZvaWQgbGlieGxf X2NvbG9fcmVzdG9yZV9zZXR1cF9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICBsaWJ4bF9fc3Ry ZWFtX3JlYWRfc3RhcnQoZWdjLCAmZGNzLT5zcnMpOwogfQogCitzdGF0aWMgdm9pZCBzdGFydF9u YmRfc2VydmVyKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2RtX3NwYXduX3N0YXRlICpkbXNzLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmV0KXsKKworICAgIGxpYnhsX19kb21h aW5fY3JlYXRlX3N0YXRlICpkY3MgPSBDT05UQUlORVJfT0YoZG1zcywgKmRjcywgc2Rzcy5kbSk7 CisgICAgU1RBVEVfQU9fR0MoZG1zcy0+c3Bhd24uYW8pOworICAgIGNvbnN0IHVpbnQzMl90IGRv bWlkID0gZGNzLT5ndWVzdF9kb21pZDsKKyAgICBkY3MtPnNkc3MuZG0uZ3Vlc3RfZG9taWQgPSBk b21pZDsKKworICAgIGlmIChyZXQpIHsKKyAgICAgICAgTE9HRChFUlJPUiwgZG9taWQsICJkZXZp Y2UgbW9kZWwgZGlkIG5vdCBzdGFydDogJWQiLCByZXQpOworICAgICAgICBnb3RvIGVycm9yX291 dDsKKyAgICB9CisKKyAgICBpZihkY3MtPnJlc3RvcmVfZmQgPj0gMCAmJiBkY3MtPm1pcnJvcl9x ZW11X2Rpc2tzKSB7CisgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgKiBTdGFydCBhbmQg YWRkIHRoZSBOQkQgc2VydmVyCisgICAgICAgICAgICAgICogSG9zdCBpcyBzZXQgaXQgdG8gIjo6 IiBmb3Igbm93CisgICAgICAgICAgICAgICogUG9ydCB3ZSBoYXJkIGNvZGUgYSBwb3J0IGZvciBu b3cKKworICAgICAgICAgICAgICAqIFRoaXMgY29kZSBqdXN0IGhhbmRsZXMgdGhlIGNhc2Ugd2hl biAtTSBwYyBpcyB1c2VkLgorICAgICAgICAgICAgICAqIChUaGUgY29uZmlnIHhlbl9wbGF0Zm9y bV9wY2kgPSAwKQorICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICogVE9ETzogQ3VycmVu dCBpbXBsZW1lbnRhdGlvbiBvbmx5IHdvcmtzIHdpdGggdXBzdHJlYW0gcWVtdQorICAgICAgICAg ICAgICAqIFRPRE86IGNvbnNpZGVyIHRoZSBjYXNlIHdoZW4gcWVtdS14ZW4tdHJhZGl0aW9uYWwg aXMgdXNlZC4KKyAgICAgICAgICAgICAgKiBUT0RPOiBDaGVjayBhbmQgY29weSBvbmx5IHRob3Nl IGRpc2tzIHdoaWNoIGFyZSBsb2NhbAorICAgICAgICAgICAgICAqIFRPRE86IEFzc2lnbiBwb3J0 IGR5bmFtaWNhbGx5CisgICAgICAgICAgICAgICovCisKKyAgICAgICAgICAgIExPR0QoREVCVUcs ICJTdGFydGluZyBOQkQgU2VydmVyXG4iKTsKKyAgICAgICAgICAgIHJldCA9IGxpYnhsX19xbXBf bmJkX3NlcnZlcl9zdGFydChnYywgZG9taWQsICI6OiIsIFFFTVVfRFJJVkVfTUlSUk9SX1BPUlQp OworICAgICAgICAgICAgaWYgKHJldCkgeworICAgICAgICAgICAgICAgIHJldCA9IEVSUk9SX0ZB SUw7CisgICAgICAgICAgICAgICAgTE9HRChFUlJPUiwgIkZhaWxlZCB0byBzdGFydCBOQkQgU2Vy dmVyXG4iKTsKKyAgICAgICAgICAgICAgICBnb3RvIHNraXBfbmJkOworICAgICAgICAgICAgfWVs c2V7CisgICAgICAgICAgICAgICAgTE9HRChJTkZPLCAiU3RhcnRlZCBOQkQgU2VydmVyIFN1Y2Nl c3NmdWxseVxuIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldCA9IGxpYnhsX19x bXBfbmJkX3NlcnZlcl9hZGQoZ2MsIGRvbWlkLCBRRU1VX0RSSVZFX01JUlJPUl9ERVZJQ0UpOwor CisgICAgICAgICAgICBpZiAocmV0KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gRVJST1JfRkFJ TDsKKyAgICAgICAgICAgICAgICBMT0dEKEVSUk9SLCAiRmFpbGVkIHRvIGFkZCBOQkQgU2VydmVy XG4iKTsKKyAgICAgICAgICAgICAgICBnb3RvIHNraXBfbmJkOworICAgICAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgICAgICBMT0dEKElORk8sICJOQkQgQWRkIFN1Y2Nlc3NmdWxcbiIpOwor ICAgICAgICAgICAgfQorICAgICAgICB9CisKK3NraXBfbmJkOgorICAgIGxpYnhsX19zdHJlYW1f cmVhZF9zdGFydChlZ2MsICZkY3MtPnNycyk7CisgICAgcmV0dXJuOworCitlcnJvcl9vdXQ6Cisg ICAgYXNzZXJ0KHJldCk7CisgICAgZG9tY3JlYXRlX2NvbXBsZXRlKGVnYywgZGNzLCByZXQpOwor fQorCiBzdGF0aWMgdm9pZCBkb21jcmVhdGVfYm9vdGxvYWRlcl9kb25lKGxpYnhsX19lZ2MgKmVn YywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2Jvb3Rsb2Fk ZXJfc3RhdGUgKmJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg cmMpCkBAIC0xMDMzLDYgKzExMDIsOCBAQCBzdGF0aWMgdm9pZCBkb21jcmVhdGVfYm9vdGxvYWRl cl9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqY29u c3QgaW5mbyA9ICZkX2NvbmZpZy0+Yl9pbmZvOwogICAgIGxpYnhsX19zcm1fcmVzdG9yZV9hdXRv Z2VuX2NhbGxiYWNrcyAqY29uc3QgY2FsbGJhY2tzID0KICAgICAgICAgJmRjcy0+c3JzLnNocy5j YWxsYmFja3MucmVzdG9yZS5hOworICAgIGxpYnhsX19zcm1fcmVzdG9yZV9hdXRvZ2VuX2NhbGxi YWNrcyAqY29uc3QgY2FsbGJhY2tzX21pcnJvcl9xZW11X2Rpc2tzID0KKyAgICAgICAgJmRjcy0+ c3JzX2xvY2FsX2Rpc2tzLnNocy5jYWxsYmFja3MucmVzdG9yZS5hOwogCiAgICAgaWYgKHJjKSB7 CiAgICAgICAgIGRvbWNyZWF0ZV9yZWJ1aWxkX2RvbmUoZWdjLCBkY3MsIHJjKTsKQEAgLTEwNTAs OCArMTEyMSw0MSBAQCBzdGF0aWMgdm9pZCBkb21jcmVhdGVfYm9vdGxvYWRlcl9kb25lKGxpYnhs X19lZ2MgKmVnYywKICAgICBkY3MtPnNkc3MuZG0uc3Bhd24uYW8gPSBhbzsKICAgICBkY3MtPnNk c3MuZG0uZ3Vlc3RfY29uZmlnID0gZGNzLT5ndWVzdF9jb25maWc7CiAgICAgZGNzLT5zZHNzLmRt LmJ1aWxkX3N0YXRlID0gJmRjcy0+YnVpbGRfc3RhdGU7Ci0gICAgZGNzLT5zZHNzLmRtLmNhbGxi YWNrID0gZG9tY3JlYXRlX2Rldm1vZGVsX3N0YXJ0ZWQ7Ci0gICAgZGNzLT5zZHNzLmNhbGxiYWNr ID0gZG9tY3JlYXRlX2Rldm1vZGVsX3N0YXJ0ZWQ7CisgICAgaWYoIWRjcy0+bWlycm9yX3FlbXVf ZGlza3MpIHsKKyAgICAgICAgZGNzLT5zZHNzLmRtLmNhbGxiYWNrID0gZG9tY3JlYXRlX2Rldm1v ZGVsX3N0YXJ0ZWQ7CisgICAgICAgIGRjcy0+c2Rzcy5jYWxsYmFjayA9IGRvbWNyZWF0ZV9kZXZt b2RlbF9zdGFydGVkOworICAgIH1lbHNleworICAgICAgICAvKgorICAgICAgICBPcmlnaW5hbCBj YWxsaW5nIHNlcXVlbmNlOgorICAgICAgICAwLiBkb21jcmVhdGVfYm9vdGxvYWRlcl9kb25lCisg ICAgICAgIDEuIE1FTU9SWSBTVFJFQU0KKyAgICAgICAgMi4gZG9tY3JlYXRlX3N0cmVhbV9kb25l CisgICAgICAgIDMuIGRvbWNyZWF0ZV9wcmVfYnVpbGQKKyAgICAgICAgNC4gZG9tY3JlYXRlX3Jl YnVpbGRfZG9uZQorICAgICAgICA1LiBkb21jcmVhdGVfbXVsdGlkZXZfYmVnaW4KKyAgICAgICAg Ni4gZG9tY3JlYXRlX2xhdW5jaF9kbQorICAgICAgICA3LiBkb21jcmVhdGVfZGV2bW9kZWxfc3Rh cnRlZAorCisgICAgICAgIEluIHRoZSBjYXNlIG9mIGxvY2FsX2Rpc2sgZG9tY3JlYXRlX2Rldm1v ZGVsX3N0YXJ0ZWQgd2lsbCBiZSBjYWxsZWQ6CisgICAgICAgIHRocm91Z2ggdGhlIGZvbGxvd2lu ZyBzZXF1ZW5jZToKKyAgICAgICAgMC4gZG9tY3JlYXRlX2Jvb3Rsb2FkZXJfZG9uZQorICAgICAg ICAxLiAxc3QgTUVNT1JZIFNUUkVBTQorICAgICAgICAyLiBkb21jcmVhdGVfc3RyZWFtX2RvbmUK KyAgICAgICAgMy4gZG9tY3JlYXRlX3ByZV9idWlsZAorICAgICAgICA0LiBkb21jcmVhdGVfcmVi dWlsZF9kb25lCisgICAgICAgIDUuIGRvbWNyZWF0ZV9tdWx0aWRldl9iZWdpbgorICAgICAgICA2 LiBkb21jcmVhdGVfbGF1bmNoX2RtCisgICAgICAgIDcuIHN0YXJ0X25iZF9zZXJ2ZXIKKyAgICAg ICAgOC4gMm5kIE1FTU9SWSBTVFJFQU0KKyAgICAgICAgOS4gZG9tY3JlYXRlX3N0cmVhbV9kb25l CisgICAgICAgICAgICA5LmEuIENhbGxzIC1pbmNvbWluZyB0byBzdGFydCBRRU1VIHByb2Nlc3MK KyAgICAgICAgMTAuIGRvbWNyZWF0ZV9kZXZtb2RlbF9zdGFydGVkCisgICAgICAgICovCisKKyAg ICAgICAgZGNzLT5zZHNzLmRtLmNhbGxiYWNrID0gc3RhcnRfbmJkX3NlcnZlcjsKKyAgICAgICAg ZGNzLT5zZHNzLmNhbGxiYWNrID0gc3RhcnRfbmJkX3NlcnZlcjsKKyAgICB9CisKIAogICAgIGlm IChyZXN0b3JlX2ZkIDwgMCAmJiBkY3MtPmRvbWlkX3NvZnRfcmVzZXQgPT0gSU5WQUxJRF9ET01J RCkgewogICAgICAgICByYyA9IGxpYnhsX19kb21haW5fYnVpbGQoZ2MsIGRfY29uZmlnLCBkb21p ZCwgc3RhdGUpOwpAQCAtMTA2MSw2ICsxMTY1LDcgQEAgc3RhdGljIHZvaWQgZG9tY3JlYXRlX2Jv b3Rsb2FkZXJfZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAKICAgICAvKiBSZXN0b3JlICovCiAgICAg Y2FsbGJhY2tzLT5yZXN0b3JlX3Jlc3VsdHMgPSBsaWJ4bF9fc3JtX2NhbGxvdXRfY2FsbGJhY2tf cmVzdG9yZV9yZXN1bHRzOworICAgIGNhbGxiYWNrc19taXJyb3JfcWVtdV9kaXNrcy0+cmVzdG9y ZV9yZXN1bHRzID0gbGlieGxfX3NybV9jYWxsb3V0X2NhbGxiYWNrX3Jlc3RvcmVfcmVzdWx0czsK IAogICAgIC8qIENPTE8gb25seSBzdXBwb3J0cyBIVk0gbm93IGJlY2F1c2UgaXQgZG9lcyBub3Qg d29yayB2ZXJ5CiAgICAgICogd2VsbCB3aXRoIHB2IGRyaXZlcnM6CkBAIC0xMDg3LDYgKzExOTIs NyBAQCBzdGF0aWMgdm9pZCBkb21jcmVhdGVfYm9vdGxvYWRlcl9kb25lKGxpYnhsX19lZ2MgKmVn YywKICAgICBkY3MtPnNycy5sZWdhY3kgPSAoZGNzLT5yZXN0b3JlX3BhcmFtcy5zdHJlYW1fdmVy c2lvbiA9PSAxKTsKICAgICBkY3MtPnNycy5iYWNrX2NoYW5uZWwgPSBmYWxzZTsKICAgICBkY3Mt PnNycy5jb21wbGV0aW9uX2NhbGxiYWNrID0gZG9tY3JlYXRlX3N0cmVhbV9kb25lOworICAgIGRj cy0+c3JzLm1pcnJvcl9xZW11X2Rpc2tzID0gMDsKIAogICAgIGlmIChyZXN0b3JlX2ZkID49IDAp IHsKICAgICAgICAgc3dpdGNoIChjaGVja3BvaW50ZWRfc3RyZWFtKSB7CkBAIC0xMTA0LDcgKzEy MTAsMjAgQEAgc3RhdGljIHZvaWQgZG9tY3JlYXRlX2Jvb3Rsb2FkZXJfZG9uZShsaWJ4bF9fZWdj ICplZ2MsCiAgICAgICAgICAgICBsaWJ4bF9fcmVtdXNfcmVzdG9yZV9zZXR1cChlZ2MsIGRjcyk7 CiAgICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICAgICAgY2FzZSBMSUJYTF9DSEVD S1BPSU5URURfU1RSRUFNX05PTkU6Ci0gICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3Rh cnQoZWdjLCAmZGNzLT5zcnMpOworICAgICAgICAgICAgaWYgKGRjcy0+bWlycm9yX3FlbXVfZGlz a3MpIHsKKyAgICAgICAgICAgICAgICAvKiBTcGF3biB0aGUgbG9jYWxfZG0gcHJvY2VzcyBiZWZv cmUgcmVhZGluZyB0aGUgbWVtb3J5IHN0cmVhbSAqLworICAgICAgICAgICAgICAgIGRjcy0+c3Jz X21pcnJvcl9xZW11X2Rpc2tzLmFvID0gYW87CisgICAgICAgICAgICAgICAgZGNzLT5zcnNfbWly cm9yX3FlbXVfZGlza3MuZGNzID0gZGNzOworICAgICAgICAgICAgICAgIGRjcy0+c3JzX21pcnJv cl9xZW11X2Rpc2tzLmZkID0gcmVzdG9yZV9mZDsKKyAgICAgICAgICAgICAgICBkY3MtPnNyc19t aXJyb3JfcWVtdV9kaXNrcy5sZWdhY3kgPSAoZGNzLT5yZXN0b3JlX3BhcmFtcy5zdHJlYW1fdmVy c2lvbiA9PSAxKTsKKyAgICAgICAgICAgICAgICBkY3MtPnNyc19taXJyb3JfcWVtdV9kaXNrcy5i YWNrX2NoYW5uZWwgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBkY3MtPnNyc19taXJyb3JfcWVt dV9kaXNrcy5jb21wbGV0aW9uX2NhbGxiYWNrID0gZG9tY3JlYXRlX3N0cmVhbV9kb25lOworICAg ICAgICAgICAgICAgIGRjcy0+c3JzX21pcnJvcl9xZW11X2Rpc2tzLm1pcnJvcl9xZW11X2Rpc2tz ID0gMTsKKworICAgICAgICAgICAgICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGFydChlZ2MsICZk Y3MtPnNyc19taXJyb3JfcWVtdV9kaXNrcyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGFydChlZ2MsICZkY3MtPnNycyk7CisgICAg ICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTExMzIsNiAr MTI1MSwzNSBAQCBzdGF0aWMgdm9pZCBkb21jcmVhdGVfc3RyZWFtX2RvbmUobGlieGxfX2VnYyAq ZWdjLAogewogICAgIGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlICpkY3MgPSBzcnMtPmRjczsK ICAgICBTVEFURV9BT19HQyhkY3MtPmFvKTsKKworICAgIGNvbnN0IHVpbnQzMl90IGRvbWlkID0g ZGNzLT5ndWVzdF9kb21pZDsKKyAgICBjb25zdCBjaGFyKiB1cmk7CisgICAgY29uc3QgY2hhciog c3RhdGVfZmlsZSA9IEdDU1BSSU5URigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElC WExfREVWSUNFX01PREVMX1JFU1RPUkVfRklMRSIuJWQiLCBkb21pZCk7CisKKyAgICBpZighZGNz LT5taXJyb3JfcWVtdV9kaXNrcyB8fCBzcnMtPm1pcnJvcl9xZW11X2Rpc2tzKXsKKyAgICAgICAg ZG9tY3JlYXRlX3ByZV9idWlsZChlZ2MsIGRjcywgcmV0KTsKKyAgICB9ZWxzZXsKKyAgICAgICAg Ly9TdG9wIE5CRCBzZXJ2ZXIKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJTdG9wcGluZyBOQkQg c2VydmVyXG4iKTsKKyAgICAgICAgcmMgPSBsaWJ4bF9fcW1wX25iZF9zZXJ2ZXJfc3RvcChnYywg ZG9taWQpOworICAgICAgICBpZiAocmMpeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJG YWlsZWQgdG8gc3RvcCBOQkQgc2VydmVyXG4iKTsKKyAgICAgICAgfWVsc2V7CisgICAgICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgIlN0b3BwZWQgTkJEIHNlcnZlciBzdWNjZXNzZnVsbHlcbiIpOwor ICAgICAgICB9CisgICAgICAgIHVyaSA9IEdDU1BSSU5URigiZXhlYzogL2Jpbi9jYXQgJXMiLCAo JmRjcy0+c2Rzcy5kbSktPmJ1aWxkX3N0YXRlLT5zYXZlZF9zdGF0ZSk7CisgICAgICAgIGxpYnhs X19xbXBfbWlncmF0ZV9pbmNvbWluZyhnYywgZG9taWQsIHVyaSk7CisgICAgICAgIGRvbWNyZWF0 ZV9kZXZtb2RlbF9zdGFydGVkKGVnYywgJmRjcy0+c2Rzcy5kbSwgMCk7CisgICAgfQorICAgIHJl dHVybjsKK30KKworc3RhdGljIHZvaWQgZG9tY3JlYXRlX3ByZV9idWlsZChsaWJ4bF9fZWdjICpl Z2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kb21haW5fY3JlYXRl X3N0YXRlICpkY3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXQpCit7 CisgICAgU1RBVEVfQU9fR0MoZGNzLT5hbyk7CiAgICAgbGlieGxfY3R4ICpjdHggPSBsaWJ4bF9f Z2Nfb3duZXIoZ2MpOwogICAgIGNoYXIgKip2bWVudHMgPSBOVUxMLCAqKmxvY2FsZW50cyA9IE5V TEw7CiAgICAgc3RydWN0IHRpbWV2YWwgc3RhcnRfdGltZTsKQEAgLTExODUsNyArMTMzMyw3IEBA IHN0YXRpYyB2b2lkIGRvbWNyZWF0ZV9zdHJlYW1fZG9uZShsaWJ4bF9fZWdjICplZ2MsCiAgICAg aWYgKHJldCkKICAgICAgICAgZ290byBvdXQ7CiAKLSAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJY TF9ET01BSU5fVFlQRV9IVk0pIHsKKyAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJYTF9ET01BSU5f VFlQRV9IVk0gJiYgIWRjcy0+bWlycm9yX3FlbXVfZGlza3MpIHsKICAgICAgICAgc3RhdGUtPnNh dmVkX3N0YXRlID0gR0NTUFJJTlRGKAogICAgICAgICAgICAgICAgICAgICAgICBMSUJYTF9ERVZJ Q0VfTU9ERUxfUkVTVE9SRV9GSUxFIi4lZCIsIGRvbWlkKTsKICAgICB9CkBAIC0xMjIzLDEwICsx MzcxLDcgQEAgc3RhdGljIHZvaWQgZG9tY3JlYXRlX3JlYnVpbGRfZG9uZShsaWJ4bF9fZWdjICpl Z2MsCiAKICAgICBzdG9yZV9saWJ4bF9lbnRyeShnYywgZG9taWQsICZkX2NvbmZpZy0+Yl9pbmZv KTsKIAotICAgIGxpYnhsX19tdWx0aWRldl9iZWdpbihhbywgJmRjcy0+bXVsdGlkZXYpOwotICAg IGRjcy0+bXVsdGlkZXYuY2FsbGJhY2sgPSBkb21jcmVhdGVfbGF1bmNoX2RtOwotICAgIGxpYnhs X19hZGRfZGlza3MoZWdjLCBhbywgZG9taWQsIGRfY29uZmlnLCAmZGNzLT5tdWx0aWRldik7Ci0g ICAgbGlieGxfX211bHRpZGV2X3ByZXBhcmVkKGVnYywgJmRjcy0+bXVsdGlkZXYsIDApOworICAg IGRvbWNyZWF0ZV9tdWx0aWRldl9iZWdpbihlZ2MsIGRjcyk7CiAKICAgICByZXR1cm47CiAKQEAg LTEyMzUsNiArMTM4MCwyNCBAQCBzdGF0aWMgdm9pZCBkb21jcmVhdGVfcmVidWlsZF9kb25lKGxp YnhsX19lZ2MgKmVnYywKICAgICBkb21jcmVhdGVfY29tcGxldGUoZWdjLCBkY3MsIHJldCk7CiB9 CiAKK3N0YXRpYyB2b2lkIGRvbWNyZWF0ZV9tdWx0aWRldl9iZWdpbihsaWJ4bF9fZWdjICplZ2Ms CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kb21haW5fY3JlYXRl X3N0YXRlICpkY3MpeworCisgICAgU1RBVEVfQU9fR0MoZGNzLT5hbyk7CisKKyAgICAvKiBjb252 ZW5pZW5jZSBhbGlhc2VzICovCisgICAgY29uc3QgdWludDMyX3QgZG9taWQgPSBkY3MtPmd1ZXN0 X2RvbWlkOworICAgIGxpYnhsX2RvbWFpbl9jb25maWcgKmNvbnN0IGRfY29uZmlnID0gZGNzLT5n dWVzdF9jb25maWc7CisKKyAgICBsaWJ4bF9fbXVsdGlkZXZfYmVnaW4oYW8sICZkY3MtPm11bHRp ZGV2KTsKKyAgICBkY3MtPm11bHRpZGV2LmNhbGxiYWNrID0gZG9tY3JlYXRlX2xhdW5jaF9kbTsK KworICAgIGxpYnhsX19hZGRfZGlza3MoZWdjLCBhbywgZG9taWQsIGRfY29uZmlnLCAmZGNzLT5t dWx0aWRldik7CisgICAgbGlieGxfX211bHRpZGV2X3ByZXBhcmVkKGVnYywgJmRjcy0+bXVsdGlk ZXYsIDApOworCisgICAgcmV0dXJuOworfQorCiBzdGF0aWMgdm9pZCBkb21jcmVhdGVfbGF1bmNo X2RtKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX211bHRpZGV2ICptdWx0aWRldiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJldCkKIHsKQEAgLTEzNTUsNyArMTUxOCw3IEBA IHN0YXRpYyB2b2lkIGRvbWNyZWF0ZV9sYXVuY2hfZG0obGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9f bXVsdGlkZXYgKm11bHRpZGV2LAogICAgICAgICBpZiAobGlieGxfZGVmYm9vbF92YWwoZF9jb25m aWctPmJfaW5mby5kZXZpY2VfbW9kZWxfc3R1YmRvbWFpbikpCiAgICAgICAgICAgICBsaWJ4bF9f c3Bhd25fc3R1Yl9kbShlZ2MsICZkY3MtPnNkc3MpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg ICBsaWJ4bF9fc3Bhd25fbG9jYWxfZG0oZWdjLCAmZGNzLT5zZHNzLmRtKTsKKyAgICAgICAgICAg IGxpYnhsX19zcGF3bl9sb2NhbF9kbShlZ2MsICZkY3MtPnNkc3MuZG0sIGRjcy0+bWlycm9yX3Fl bXVfZGlza3MpOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIEhhbmRsZSB0aGUgZG9tYWluJ3Mg KGFuZCB0aGUgcmVsYXRlZCBzdHViZG9tYWluJ3MpIGFjY2VzcyB0bwpAQCAtMTM4Nyw3ICsxNTUw LDcgQEAgc3RhdGljIHZvaWQgZG9tY3JlYXRlX2xhdW5jaF9kbShsaWJ4bF9fZWdjICplZ2MsIGxp YnhsX19tdWx0aWRldiAqbXVsdGlkZXYsCiAgICAgICAgICAgICBnb3RvIGVycm9yX291dDsKICAg ICAgICAgaWYgKHJldCkgewogICAgICAgICAgICAgZGNzLT5zZHNzLmRtLmd1ZXN0X2RvbWlkID0g ZG9taWQ7Ci0gICAgICAgICAgICBsaWJ4bF9fc3Bhd25fbG9jYWxfZG0oZWdjLCAmZGNzLT5zZHNz LmRtKTsKKyAgICAgICAgICAgIGxpYnhsX19zcGF3bl9sb2NhbF9kbShlZ2MsICZkY3MtPnNkc3Mu ZG0sIDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICAgYXNzZXJ0KCFkY3MtPnNkc3MuZG0uZ3Vlc3RfZG9taWQpOwpAQCAtMTYwNCw2ICsxNzY3LDcg QEAgc3RhdGljIHZvaWQgZG9tYWluX2NyZWF0ZV9jYihsaWJ4bF9fZWdjICplZ2MsCiAKIHN0YXRp YyBpbnQgZG9fZG9tYWluX2NyZWF0ZShsaWJ4bF9jdHggKmN0eCwgbGlieGxfZG9tYWluX2NvbmZp ZyAqZF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKmRvbWlk LCBpbnQgcmVzdG9yZV9mZCwgaW50IHNlbmRfYmFja19mZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgbWlycm9yX3FlbXVfZGlza3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgbGlieGxfZG9tYWluX3Jlc3RvcmVfcGFyYW1zICpwYXJhbXMsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgbGlieGxfYXN5bmNvcF9ob3cgKmFvX2hvdywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY3Byb2dyZXNzX2hvdyAqYW9w X2NvbnNvbGVfaG93KQpAQCAtMTYxOSw2ICsxNzgzLDcgQEAgc3RhdGljIGludCBkb19kb21haW5f Y3JlYXRlKGxpYnhsX2N0eCAqY3R4LCBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZywKICAg ICBsaWJ4bF9kb21haW5fY29uZmlnX2NvcHkoY3R4LCAmY2Rjcy0+ZGNzLmd1ZXN0X2NvbmZpZ19z YXZlZCwgZF9jb25maWcpOwogICAgIGNkY3MtPmRjcy5yZXN0b3JlX2ZkID0gY2Rjcy0+ZGNzLmxp YnhjX2ZkID0gcmVzdG9yZV9mZDsKICAgICBjZGNzLT5kY3Muc2VuZF9iYWNrX2ZkID0gc2VuZF9i YWNrX2ZkOworICAgIGNkY3MtPmRjcy5taXJyb3JfcWVtdV9kaXNrcyA9IG1pcnJvcl9xZW11X2Rp c2tzOwogICAgIGlmIChyZXN0b3JlX2ZkID4gLTEpIHsKICAgICAgICAgY2Rjcy0+ZGNzLnJlc3Rv cmVfcGFyYW1zID0gKnBhcmFtczsKICAgICAgICAgcmMgPSBsaWJ4bF9fZmRfZmxhZ3NfbW9kaWZ5 X3NhdmUoZ2MsIGNkY3MtPmRjcy5yZXN0b3JlX2ZkLApAQCAtMTg0NywxMyArMjAxMiwxMyBAQCBp bnQgbGlieGxfZG9tYWluX2NyZWF0ZV9uZXcobGlieGxfY3R4ICpjdHgsIGxpYnhsX2RvbWFpbl9j b25maWcgKmRfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpYnhs X2FzeW5jcHJvZ3Jlc3NfaG93ICphb3BfY29uc29sZV9ob3cpCiB7CiAgICAgdW5zZXRfZGlza19j b2xvX3Jlc3RvcmUoZF9jb25maWcpOwotICAgIHJldHVybiBkb19kb21haW5fY3JlYXRlKGN0eCwg ZF9jb25maWcsIGRvbWlkLCAtMSwgLTEsIE5VTEwsCisgICAgcmV0dXJuIGRvX2RvbWFpbl9jcmVh dGUoY3R4LCBkX2NvbmZpZywgZG9taWQsIC0xLCAtMSwgMCwgTlVMTCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhb19ob3csIGFvcF9jb25zb2xlX2hvdyk7CiB9CiAKIGludCBsaWJ4bF9k b21haW5fY3JlYXRlX3Jlc3RvcmUobGlieGxfY3R4ICpjdHgsIGxpYnhsX2RvbWFpbl9jb25maWcg KmRfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqZG9t aWQsIGludCByZXN0b3JlX2ZkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg c2VuZF9iYWNrX2ZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2VuZF9i YWNrX2ZkLCBpbnQgbWlycm9yX3FlbXVfZGlza3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGxpYnhsX2RvbWFpbl9yZXN0b3JlX3BhcmFtcyAqcGFyYW1zLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY29wX2hvdyAqYW9faG93 LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9hc3luY3Byb2dy ZXNzX2hvdyAqYW9wX2NvbnNvbGVfaG93KQpAQCAtMTg2NSw3ICsyMDMwLDcgQEAgaW50IGxpYnhs X2RvbWFpbl9jcmVhdGVfcmVzdG9yZShsaWJ4bF9jdHggKmN0eCwgbGlieGxfZG9tYWluX2NvbmZp ZyAqZF9jb25maWcsCiAgICAgfQogCiAgICAgcmV0dXJuIGRvX2RvbWFpbl9jcmVhdGUoY3R4LCBk X2NvbmZpZywgZG9taWQsIHJlc3RvcmVfZmQsIHNlbmRfYmFja19mZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYXJhbXMsIGFvX2hvdywgYW9wX2NvbnNvbGVfaG93KTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtaXJyb3JfcWVtdV9kaXNrcywgcGFyYW1zLCBhb19ob3csIGFv cF9jb25zb2xlX2hvdyk7CiB9CiAKIGludCBsaWJ4bF9kb21haW5fc29mdF9yZXNldChsaWJ4bF9j dHggKmN0eCwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMgYi90b29scy9saWJ4 bC9saWJ4bF9kbS5jCmluZGV4IGUwZTZhOTkuLmZmNjcyMWQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX2RtLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG0uYwpAQCAtOTE1LDcgKzkx NSw3IEBAIHN0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX25ldyhsaWJ4 bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGxpYnhsX2RvbWFpbl9jb25maWcgKmd1ZXN0X2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjaGFyICoqKmFyZ3MsIGNoYXIgKioqZW52cywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9fZG9tYWluX2J1aWxk X3N0YXRlICpzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgKmRtX3N0YXRlX2ZkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCAqZG1fc3RhdGVfZmQsIGludCBtaXJyb3JfcWVtdV9kaXNrcykKIHsKICAgICBjb25zdCBs aWJ4bF9kb21haW5fY3JlYXRlX2luZm8gKmNfaW5mbyA9ICZndWVzdF9jb25maWctPmNfaW5mbzsK ICAgICBjb25zdCBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqYl9pbmZvID0gJmd1ZXN0X2NvbmZp Zy0+Yl9pbmZvOwpAQCAtMTM5NiwxMiArMTM5NiwxOCBAQCBzdGF0aWMgaW50IGxpYnhsX19idWls ZF9kZXZpY2VfbW9kZWxfYXJnc19uZXcobGlieGxfX2djICpnYywKICAgICAgICAgfQogICAgIH0K IAotICAgIGlmIChzdGF0ZS0+c2F2ZWRfc3RhdGUpIHsKKyAgICBpZiAoc3RhdGUtPnNhdmVkX3N0 YXRlICYmICFtaXJyb3JfcWVtdV9kaXNrcykgewogICAgICAgICAvKiBUaGlzIGZpbGUgZGVzY3Jp cHRvciBpcyBtZWFudCB0byBiZSB1c2VkIGJ5IFFFTVUgKi8KICAgICAgICAgKmRtX3N0YXRlX2Zk ID0gb3BlbihzdGF0ZS0+c2F2ZWRfc3RhdGUsIE9fUkRPTkxZKTsKICAgICAgICAgZmxleGFycmF5 X2FwcGVuZChkbV9hcmdzLCAiLWluY29taW5nIik7CiAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQo ZG1fYXJncywgR0NTUFJJTlRGKCJmZDolZCIsKmRtX3N0YXRlX2ZkKSk7CiAgICAgfQorCisgICAg aWYobWlycm9yX3FlbXVfZGlza3MpIHsKKyAgICAgICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdz LCAiLWluY29taW5nIik7CisgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoZG1fYXJncywgImRlZmVy Iik7CisgICAgfQorCiAgICAgZm9yIChpID0gMDsgYl9pbmZvLT5leHRyYSAmJiBiX2luZm8tPmV4 dHJhW2ldICE9IE5VTEw7IGkrKykKICAgICAgICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCBi X2luZm8tPmV4dHJhW2ldKTsKIApAQCAtMTY2NCw3ICsxNjcwLDcgQEAgc3RhdGljIGludCBsaWJ4 bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3MobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJ4bF9kb21haW5fY29uZmlnICpndWVz dF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAq KiphcmdzLCBjaGFyICoqKmVudnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgbGlieGxfX2RvbWFpbl9idWlsZF9zdGF0ZSAqc3RhdGUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpkbV9zdGF0ZV9mZCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmRtX3N0YXRlX2ZkLCBpbnQgbWly cm9yX3FlbXVfZGlza3MpCiAvKiBkbV9zdGF0ZV9mZCBtYXkgYmUgTlVMTCBpZmYgY2FsbGVyIGtu b3dzIHdlIGFyZSB1c2luZyBvbGQgc3R1YmRvbQogICogYW5kIHRoZXJlZm9yZSB3aWxsIGJlIHBh c3NpbmcgYSBmaWxlbmFtZSByYXRoZXIgdGhhbiBhIGZkLiAqLwogewpAQCAtMTY4MCw3ICsxNjg2 LDggQEAgc3RhdGljIGludCBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3MobGlieGxfX2dj ICpnYywKICAgICAgICAgcmV0dXJuIGxpYnhsX19idWlsZF9kZXZpY2VfbW9kZWxfYXJnc19uZXco Z2MsIGRtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBndWVzdF9kb21pZCwgZ3Vlc3RfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcmdzLCBlbnZzLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgZG1fc3RhdGVfZmQpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgZG1fc3Rh dGVfZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1pcnJvcl9xZW11X2Rpc2tzKTsKICAgICBkZWZhdWx0OgogICAgICAgICBMT0dFRChFUlJPUiwg Z3Vlc3RfZG9taWQsICJ1bmtub3duIGRldmljZSBtb2RlbCB2ZXJzaW9uICVkIiwKICAgICAgICAg ICAgICAgZ3Vlc3RfY29uZmlnLT5iX2luZm8uZGV2aWNlX21vZGVsX3ZlcnNpb24pOwpAQCAtMTg5 Nyw3ICsxOTA0LDcgQEAgdm9pZCBsaWJ4bF9fc3Bhd25fc3R1Yl9kbShsaWJ4bF9fZWdjICplZ2Ms IGxpYnhsX19zdHViX2RtX3NwYXduX3N0YXRlICpzZHNzKQogCiAgICAgcmV0ID0gbGlieGxfX2J1 aWxkX2RldmljZV9tb2RlbF9hcmdzKGdjLCAic3R1YmRvbS1kbSIsIGd1ZXN0X2RvbWlkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzdF9jb25maWcsICZhcmdz LCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkX3N0YXRl LCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZF9zdGF0 ZSwgTlVMTCwgMCk7CiAgICAgaWYgKHJldCkgewogICAgICAgICByZXQgPSBFUlJPUl9GQUlMOwog ICAgICAgICBnb3RvIG91dDsKQEAgLTIwNTUsNyArMjA2Miw3IEBAIHN0YXRpYyB2b2lkIHNwYXdu X3N0dWJfbGF1bmNoX2RtKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgLyogSWYgZG9tMCBxZW11 IG5vdCBuZWVkZWQsIGRvIG5vdCBsYXVuY2ggaXQgKi8KICAgICAgICAgc3Bhd25fc3R1YmRvbV9w dnFlbXVfY2IoZWdjLCAmc2Rzcy0+cHZxZW11LCAwKTsKICAgICB9IGVsc2UgewotICAgICAgICBs aWJ4bF9fc3Bhd25fbG9jYWxfZG0oZWdjLCAmc2Rzcy0+cHZxZW11KTsKKyAgICAgICAgbGlieGxf X3NwYXduX2xvY2FsX2RtKGVnYywgJnNkc3MtPnB2cWVtdSwgMCk7CiAgICAgfQogCiAgICAgcmV0 dXJuOwpAQCAtMjE2MCw3ICsyMTY3LDggQEAgc3RhdGljIHZvaWQgZGV2aWNlX21vZGVsX3NwYXdu X291dGNvbWUobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX2RtX3NwYXduX3N0YXRlICpkbXNzLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IHJjKTsKIAotdm9pZCBsaWJ4bF9fc3Bhd25fbG9jYWxf ZG0obGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZG1fc3Bhd25fc3RhdGUgKmRtc3MpCit2b2lkIGxp YnhsX19zcGF3bl9sb2NhbF9kbShsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19kbV9zcGF3bl9zdGF0 ZSAqZG1zcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBtaXJyb3JfcWVtdV9kaXNr cykKIHsKICAgICAvKiBjb252ZW5pZW5jZSBhbGlhc2VzICovCiAgICAgY29uc3QgaW50IGRvbWlk ID0gZG1zcy0+Z3Vlc3RfZG9taWQ7CkBAIC0yMjAwLDcgKzIyMDgsNyBAQCB2b2lkIGxpYnhsX19z cGF3bl9sb2NhbF9kbShsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19kbV9zcGF3bl9zdGF0ZSAqZG1z cykKICAgICB9CiAgICAgcmMgPSBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsX2FyZ3MoZ2MsIGRt LCBkb21pZCwgZ3Vlc3RfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmFyZ3MsICZlbnZzLCBzdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZkbV9zdGF0ZV9mZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmZG1fc3RhdGVfZmQsIG1pcnJvcl9xZW11X2Rpc2tzKTsKICAgICBp ZiAocmMpCiAgICAgICAgIGdvdG8gb3V0OwogCkBAIC0yMzMwLDcgKzIzMzgsNyBAQCBzdGF0aWMg dm9pZCBkZXZpY2VfbW9kZWxfY29uZmlybShsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19zcGF3bl9z dGF0ZSAqc3Bhd24sCiAgICAgaWYgKCF4c2RhdGEpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm IChzdHJjbXAoeHNkYXRhLCAicnVubmluZyIpKQorICAgIGlmIChzdHJjbXAoeHNkYXRhLCAicnVu bmluZyIpICYmIHN0cmNtcCh4c2RhdGEsICJpbm1pZ3JhdGUiKSkKICAgICAgICAgcmV0dXJuOwog CiAgICAgbGlieGxfX3NwYXduX2luaXRpYXRlX2RldGFjaChnYywgc3Bhd24pOwpkaWZmIC0tZ2l0 IGEvdG9vbHMvbGlieGwvbGlieGxfZG9tX3NhdmUuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbV9z YXZlLmMKaW5kZXggNzdmZTMwZS4uYTI3MzBmNSAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGli eGxfZG9tX3NhdmUuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kb21fc2F2ZS5jCkBAIC00MDgs MTggKzQwOCw5NyBAQCB2b2lkIGxpYnhsX19kb21haW5fc2F2ZShsaWJ4bF9fZWdjICplZ2MsIGxp YnhsX19kb21haW5fc2F2ZV9zdGF0ZSAqZHNzKQogICAgIGRzcy0+c3dzLmZkICA9IGRzcy0+ZmQ7 CiAgICAgZHNzLT5zd3MuYmFja19jaGFubmVsID0gZmFsc2U7CiAgICAgZHNzLT5zd3MuY29tcGxl dGlvbl9jYWxsYmFjayA9IHN0cmVhbV9kb25lOwotCi0gICAgbGlieGxfX3N0cmVhbV93cml0ZV9z dGFydChlZ2MsICZkc3MtPnN3cyk7CisgICAgZHNzLT5zd3MubWlycm9yX3FlbXVfZGlza3MgPSAw OworCisgICAgaWYoIWRzcy0+bWlycm9yX3FlbXVfZGlza3MpIHsKKyAgICAgICAgbGlieGxfX3N0 cmVhbV93cml0ZV9zdGFydChlZ2MsICZkc3MtPnN3cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg ZHNzLT5zd3NfbWlycm9yX3FlbXVfZGlza3MuYW8gID0gZHNzLT5hbzsKKyAgICAgICAgZHNzLT5z d3NfbWlycm9yX3FlbXVfZGlza3MuZHNzID0gZHNzOworICAgICAgICBkc3MtPnN3c19taXJyb3Jf cWVtdV9kaXNrcy5mZCAgPSBkc3MtPmZkOworICAgICAgICBkc3MtPnN3c19taXJyb3JfcWVtdV9k aXNrcy5iYWNrX2NoYW5uZWwgPSBmYWxzZTsKKyAgICAgICAgZHNzLT5zd3NfbWlycm9yX3FlbXVf ZGlza3MubWlycm9yX3FlbXVfZGlza3MgPSAxOworICAgICAgICBkc3MtPnN3c19taXJyb3JfcWVt dV9kaXNrcy5jb21wbGV0aW9uX2NhbGxiYWNrID0gc3RyZWFtX2RvbmU7CisgICAgICAgIGxpYnhs X19zdHJlYW1fd3JpdGVfc3RhcnQoZWdjLCAmZHNzLT5zd3NfbWlycm9yX3FlbXVfZGlza3MpOwor ICAgIH0KICAgICByZXR1cm47CiAKICBvdXQ6CiAgICAgZG9tYWluX3NhdmVfZG9uZShlZ2MsIGRz cywgcmMpOwogfQogCitzdGF0aWMgdm9pZCBtaXJyb3JfcWVtdV9kaXNrcyhsaWJ4bF9fZWdjICpl Z2MsIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN3cywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCByYykKK3sKKyAgICBpbnQgY291bnRlciA9IDIwOworICAgIGNoYXIqIHRh cmdldDsKKyAgICBib29sIGpvYl9pc19yZWFkeSA9IGZhbHNlOworICAgIGxpYnhsX19kb21haW5f c2F2ZV9zdGF0ZSAqZHNzID0gc3dzLT5kc3M7CisgICAgY29uc3QgdWludDMyX3QgZG9taWQgPSBk c3MtPmRvbWlkOworICAgIFNUQVRFX0FPX0dDKGRzcy0+YW8pOworCisgICAgaWYgKGRzcy0+bWly cm9yX3FlbXVfZGlza3MpIHsKKyAgICAvKgorICAgICAqIElmIHRoZSAtcSB3YXMgcHJvdmlkZWQs IHRoZSBkcml2ZS1taXJyb3Igam9iIGlzIHN0YXJ0ZWQuCisgICAgICogVE9ETzogTW92ZSB0aGUg Zm9sbG93aW5nIGNvZGUgYXMgcGFydCBvZiB0aGUgZG9tYWluX3N1c3BlbmQKKyAgICAgKiBUT0RP OiBUaGUgcG9ydCBzaG91bGQgYmUgc2VudCBieSB0aGUgZGVzdGluYXRpb24uCisgICAgKi8KK3N0 YXJ0X21pcnJvcjoKKyAgICAgICAgTE9HRChERUJVRywgZG9taWQsICJTbGVlcGluZyBmb3IgYSBi aXQgc28gdGhhdCBzb3VyY2UgY2FuIHN0YXJ0IE5CRFxuIik7CisgICAgICAgIHNsZWVwKDMwKTsK KyAgICAgICAgTE9HRChERUJVRywgIlN0YXJ0aW5nIG1pcnJvci1kcml2ZSBvZiBkZXZpY2UgJXNc biIsCisgICAgICAgICAgICAgUUVNVV9EUklWRV9NSVJST1JfREVWSUNFKTsKKyAgICAgICAgdGFy Z2V0ID0gR0NTUFJJTlRGKCJuYmQ6JXM6JXM6ZXhwb3J0bmFtZT0lcyIsIGRzcy0+aG9zdG5hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRRU1VX0RSSVZFX01JUlJPUl9QT1JULCBRRU1V X0RSSVZFX01JUlJPUl9ERVZJQ0UpOworICAgICAgICByYyA9IGxpYnhsX19xbXBfZHJpdmVfbWly cm9yKGdjLCBkc3MtPmRvbWlkLCBRRU1VX0RSSVZFX01JUlJPUl9ERVZJQ0UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LCAicmF3Iik7CisgICAgICAgIGlmICgh cmMpIHsKKyAgICAgICAgICAgIExPR0QoSU5GTywgZG9taWQsICJEcml2ZSBtaXJyb3IgY29tbWFu ZCByZXR1cm5lZCBzdWNjZXNzZnVsbHlcbiIpOworICAgICAgICB9ZWxzZXsKKyAgICAgICAgICAg IExPR0QoRVJST1IsIGRvbWlkLCAiU2VuZGluZyBkcml2ZSBtaXJyb3IgY29tbWFuZCBmYWlsZWRc biIpOworICAgICAgICAgICAgaWYoY291bnRlciA+IDApeworICAgICAgICAgICAgICAgIExPR0Qo SU5GTywgZG9taWQsICJDb3VudGVyOiAlZC4gU2xlZXBpbmcgZm9yIDEwIHNlYyBhbmQgcmV0cnlc biIsIGNvdW50ZXIpOworICAgICAgICAgICAgICAgIHNsZWVwKDEwKTsKKyAgICAgICAgICAgICAg ICBjb3VudGVyLS07CisgICAgICAgICAgICAgICAgZ290byBzdGFydF9taXJyb3I7CisgICAgICAg ICAgICB9ZWxzZXsKKyAgICAgICAgICAgICAgICBnb3RvIGNvbnQ7CisgICAgICAgICAgICB9Cisg ICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBRdWVyeSBqb2Igc3RhdHVzIHVudGls IGl0IGlzIHJlYWR5CisgICAgICAgICAqIFRPRE86IFRoaXMgY29kZSBpcyBqdXN0IGFuIGluZWZm aWNpZW50IGJ1c3kgd2FpdC4gUU1QIHNlbmRzIGFuCisgICAgICAgICAqIFRPRE86IGFzeW5jaHJv bm91cyBtZXNzYWdlIHdoZW4gbWlycm9yaW5nIGpvYiBpcyBjb21wbGV0ZWQuIENvbnNpZGVyCisg ICAgICAgICAqIFRPRE86IGFkZGluZyB0aGUgY2FwYWJpbGl0eSB0byBoYW5kbGUgYXN5bmNocm9u b3VzIFFNUCBtZXNzYWdlcyAoYWxyZWFkeSBkb25lPykKKyAgICAgICAgICovCisgICAgICAgIHdo aWxlKCFqb2JfaXNfcmVhZHkpIHsKKyAgICAgICAgICAgIExPR0QoSU5GTywgZG9taWQsICJDaGVj a2luZyBmb3IgZHJpdmUtbWlycm9yIGpvYiIpOworICAgICAgICAgICAgcmMgPSBsaWJ4bF9fcW1w X3F1ZXJ5X2Jsb2NrX2pvYnMoZ2MsIGRzcy0+ZG9taWQsICZqb2JfaXNfcmVhZHkpOworICAgICAg ICAgICAgaWYocmMpeworICAgICAgICAgICAgICAgIExPR0QoRVJST1IsIGRvbWlkLCAiQ2hlY2tp bmcgYmxvY2sgam9iIGZhaWxlZFxuIik7CisgICAgICAgICAgICAgICAgZ290byBjb250OworICAg ICAgICAgICAgfWVsc2V7CisgICAgICAgICAgICAgICAgTE9HRChJTkZPLCBkb21pZCwgIkNoZWNr aW5nIGJsb2NrIGpvYiBzdWNjZWVkZWRcbiIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg aWYoIWpvYl9pc19yZWFkeSl7CisgICAgICAgICAgICAgICAgTE9HRChJTkZPLCBkb21pZCwgIlNs ZWVwaW5nIDUgc2VjXG4iKTsKKyAgICAgICAgICAgICAgICBzbGVlcCg1KTsKKyAgICAgICAgICAg IH0KKyAgICAgICAgfQorICAgIH0KK2NvbnQ6CisgICAgbGlieGxfX3N0cmVhbV93cml0ZV9zdGFy dChlZ2MsICZzd3MtPmRzcy0+c3dzKTsKK30KKwogc3RhdGljIHZvaWQgc3RyZWFtX2RvbmUobGli eGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3N0cmVhbV93cml0 ZV9zdGF0ZSAqc3dzLCBpbnQgcmMpCiB7Ci0gICAgZG9tYWluX3NhdmVfZG9uZShlZ2MsIHN3cy0+ ZHNzLCByYyk7CisgICAgaWYoIXN3cy0+ZHNzLT5taXJyb3JfcWVtdV9kaXNrcyB8fCAhc3dzLT5t aXJyb3JfcWVtdV9kaXNrcykgeworICAgICAgICBkb21haW5fc2F2ZV9kb25lKGVnYywgc3dzLT5k c3MsIHJjKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtaXJyb3JfcWVtdV9kaXNrcyhlZ2MsIHN3 cywgcmMpOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgZG9tYWluX3NhdmVfZG9uZShsaWJ4bF9f ZWdjICplZ2MsCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb21haW4uYyBiL3Rvb2xz L2xpYnhsL2xpYnhsX2RvbWFpbi5jCmluZGV4IDA4ZWNjZDAuLjc2YzZkM2QgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2xpYnhsL2xpYnhsX2RvbWFpbi5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbWFp bi5jCkBAIC00ODcsNyArNDg3LDcgQEAgc3RhdGljIHZvaWQgZG9tYWluX3N1c3BlbmRfY2IobGli eGxfX2VnYyAqZWdjLAogfQogCiBpbnQgbGlieGxfZG9tYWluX3N1c3BlbmQobGlieGxfY3R4ICpj dHgsIHVpbnQzMl90IGRvbWlkLCBpbnQgZmQsIGludCBmbGFncywKLSAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBsaWJ4bF9hc3luY29wX2hvdyAqYW9faG93KQorICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIqIGhvc3RuYW1lLCBjb25zdCBsaWJ4bF9hc3luY29wX2hvdyAq YW9faG93KQogewogICAgIEFPX0NSRUFURShjdHgsIGRvbWlkLCBhb19ob3cpOwogICAgIGludCBy YzsKQEAgLTUwOSw2ICs1MDksOCBAQCBpbnQgbGlieGxfZG9tYWluX3N1c3BlbmQobGlieGxfY3R4 ICpjdHgsIHVpbnQzMl90IGRvbWlkLCBpbnQgZmQsIGludCBmbGFncywKICAgICBkc3MtPnR5cGUg PSB0eXBlOwogICAgIGRzcy0+bGl2ZSA9IGZsYWdzICYgTElCWExfU1VTUEVORF9MSVZFOwogICAg IGRzcy0+ZGVidWcgPSBmbGFncyAmIExJQlhMX1NVU1BFTkRfREVCVUc7CisgICAgZHNzLT5taXJy b3JfcWVtdV9kaXNrcyA9IGZsYWdzICYgTElCWExfU1VTUEVORF9NSVJST1JfUUVNVV9ESVNLUzsK KyAgICBkc3MtPmhvc3RuYW1lID0gaG9zdG5hbWU7CiAgICAgZHNzLT5jaGVja3BvaW50ZWRfc3Ry ZWFtID0gTElCWExfQ0hFQ0tQT0lOVEVEX1NUUkVBTV9OT05FOwogCiAgICAgcmMgPSBsaWJ4bF9f ZmRfZmxhZ3NfbW9kaWZ5X3NhdmUoZ2MsIGRzcy0+ZmQsCmRpZmYgLS1naXQgYS90b29scy9saWJ4 bC9saWJ4bF9pbnRlcm5hbC5oIGIvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAppbmRleCAx MzQ5YThmLi4xNmE0NzZmIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5o CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKQEAgLTE4NDAsMTkgKzE4NDAsNDIg QEAgX2hpZGRlbiBpbnQgbGlieGxfX3FtcF9zdGFydF9yZXBsaWNhdGlvbihsaWJ4bF9fZ2MgKmdj LCBpbnQgZG9taWQsCiBfaGlkZGVuIGludCBsaWJ4bF9fcW1wX25iZF9zZXJ2ZXJfYWRkKGxpYnhs X19nYyAqZ2MsIGludCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmRpc2spOwogCisvKiBBZGQgYSBkaXNrIHRvIE5CRCBzZXJ2ZXIgKi8K K19oaWRkZW4gaW50IGxpYnhsX19xbXBfbmJkX3NlcnZlcl9hZGQobGlieGxfX2djICpnYywgaW50 IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpkaXNrKTsKKy8qIFN0YXJ0IHJlcGxpY2F0aW9uICovCitfaGlkZGVuIGludCBsaWJ4bF9fcW1w X3N0YXJ0X3JlcGxpY2F0aW9uKGxpYnhsX19nYyAqZ2MsIGludCBkb21pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBwcmltYXJ5KTsKKy8qIEFkZCBhIGRp c2sgdG8gTkJEIHNlcnZlciAqLworIF9oaWRkZW4gaW50IGxpYnhsX19xbXBfbmJkX3NlcnZlcl9h ZGQobGlieGxfX2djICpnYywgaW50IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqZGlzayk7CiAvKiBNaXJyb3IgZGlzayBkcml2ZSAqLwot X2hpZGRlbiBpbnQgbGlieGxfX3FtcF9kcml2ZV9taXJyb3IobGlieGxfX2djICpnYywgaW50IGRv bWlkLCBjb25zdCBjaGFyKiBkZXZpY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyKiB0YXJnZXQsIGNvbnN0IGNoYXIqIGZvcm1hdCk7Ci0KK19oaWRkZW4g aW50IGxpYnhsX19xbXBfZHJpdmVfbWlycm9yKGxpYnhsX19nYyAqZ2MsIGludCBkb21pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGRldmljZSwgY29u c3QgY2hhciogdGFyZ2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciogZm9ybWF0KTsKIC8qIFF1ZXJ5IGJsb2NrIGRldmljZXMgKi8KLV9oaWRkZW4gaW50 IGxpYnhsX19xbXBfcXVlcnlfYmxvY2sobGlieGxfX2djICpnYywgaW50IGRvbWlkLCBjaGFyICpk ZXZpY2VfbmFtZXMpOwotCitfaGlkZGVuIGludCBsaWJ4bF9fcW1wX3F1ZXJ5X2Jsb2NrKGxpYnhs X19nYyAqZ2MsIGludCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2hhciAqZGV2aWNlX25hbWVzKTsKIC8qIFF1ZXJ5IGV4aXN0aW5nIGJsb2NrIGpvYnMqLwotX2hp ZGRlbiBpbnQgbGlieGxfX3FtcF9xdWVyeV9ibG9ja19qb2JzKGxpYnhsX19nYyAqZ2MsIGludCBk b21pZCwgYm9vbCAqaXNfcmVhZHkpOwotCitfaGlkZGVuIGludCBsaWJ4bF9fcW1wX3F1ZXJ5X2Js b2NrX2pvYnMobGlieGxfX2djICpnYywgaW50IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgKmlzX3JlYWR5KTsKIC8qIFJlc3VtZSBRRU1VIHByb2Nl c3Mgc3RhcnRlZCB3aXRoIC1pbmNvbWluZyBkZWZlciAqLwotX2hpZGRlbiBpbnQgbGlieGxfX3Ft cF9taWdyYXRlX2luY29taW5nKGxpYnhsX19nYyAqZ2MsIGludCBkb21pZCwgY29uc3QgY2hhciog dXJpKTsKK19oaWRkZW4gaW50IGxpYnhsX19xbXBfbWlncmF0ZV9pbmNvbWluZyhsaWJ4bF9fZ2Mg KmdjLCBpbnQgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciogdXJpKTsKKy8qIE1pcnJvciBkaXNrIGRyaXZlICovCitfaGlkZGVuIGludCBs aWJ4bF9fcW1wX2RyaXZlX21pcnJvcihsaWJ4bF9fZ2MgKmdjLCBpbnQgZG9taWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBkZXZpY2UsIGNvbnN0IGNo YXIqIHRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIqIGZvcm1hdCk7CisvKiBRdWVyeSBibG9jayBkZXZpY2VzICovCitfaGlkZGVuIGludCBsaWJ4 bF9fcW1wX3F1ZXJ5X2Jsb2NrKGxpYnhsX19nYyAqZ2MsIGludCBkb21pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZGV2aWNlX25hbWVzKTsKIAorLyogUXVlcnkg ZXhpc3RpbmcgYmxvY2sgam9icyovCitfaGlkZGVuIGludCBsaWJ4bF9fcW1wX3F1ZXJ5X2Jsb2Nr X2pvYnMobGlieGxfX2djICpnYywgaW50IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgKmlzX3JlYWR5KTsKKy8qIFJlc3VtZSBRRU1VIHByb2Nlc3Mg c3RhcnRlZCB3aXRoIC1pbmNvbWluZyBkZWZlciAqLworX2hpZGRlbiBpbnQgbGlieGxfX3FtcF9t aWdyYXRlX2luY29taW5nKGxpYnhsX19nYyAqZ2MsIGludCBkb21pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB1cmkpOwogLyogR2V0IHJlcGxp Y2F0aW9uIGVycm9yIHRoYXQgb2NjdXJzIHdoZW4gdGhlIHZtIGlzIHJ1bm5pbmcgKi8KIF9oaWRk ZW4gaW50IGxpYnhsX19xbXBfcXVlcnlfeGVuX3JlcGxpY2F0aW9uX3N0YXR1cyhsaWJ4bF9fZ2Mg KmdjLCBpbnQgZG9taWQpOwogLyogRG8gY2hlY2twb2ludCAqLwpAQCAtMzE0Miw2ICszMTY1LDcg QEAgc3RydWN0IGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSB7CiAgICAgaW50IGZkOwogICAgIGJv b2wgbGVnYWN5OwogICAgIGJvb2wgYmFja19jaGFubmVsOworICAgIGludCBtaXJyb3JfcWVtdV9k aXNrczsKICAgICB2b2lkICgqY29tcGxldGlvbl9jYWxsYmFjaykobGlieGxfX2VnYyAqZWdjLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUg KnNycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjKTsKQEAgLTMyMjAs NiArMzI0NCw3IEBAIHN0cnVjdCBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlIHsKICAgICBsaWJ4 bF9fZG9tYWluX3NhdmVfc3RhdGUgKmRzczsKICAgICBpbnQgZmQ7CiAgICAgYm9vbCBiYWNrX2No YW5uZWw7CisgICAgaW50IG1pcnJvcl9xZW11X2Rpc2tzOwogICAgIHZvaWQgKCpjb21wbGV0aW9u X2NhbGxiYWNrKShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX19zdHJlYW1fd3JpdGVfc3RhdGUgKnN3cywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50IHJjKTsKQEAgLTMzMTksNiArMzM0NCw4IEBAIHN0cnVjdCBsaWJ4bF9f ZG9tYWluX3NhdmVfc3RhdGUgewogICAgIGxpYnhsX2RvbWFpbl90eXBlIHR5cGU7CiAgICAgaW50 IGxpdmU7CiAgICAgaW50IGRlYnVnOworICAgIGludCBtaXJyb3JfcWVtdV9kaXNrczsKKyAgICBj b25zdCBjaGFyKiBob3N0bmFtZTsKICAgICBpbnQgY2hlY2twb2ludGVkX3N0cmVhbTsKICAgICBj b25zdCBsaWJ4bF9kb21haW5fcmVtdXNfaW5mbyAqcmVtdXM7CiAgICAgLyogcHJpdmF0ZSAqLwpA QCAtMzMzNCw2ICszMzYxLDcgQEAgc3RydWN0IGxpYnhsX19kb21haW5fc2F2ZV9zdGF0ZSB7CiAg ICAgfTsKICAgICBsaWJ4bF9fY2hlY2twb2ludF9kZXZpY2VzX3N0YXRlIGNkczsKICAgICBsaWJ4 bF9fc3RyZWFtX3dyaXRlX3N0YXRlIHN3czsKKyAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRl IHN3c19taXJyb3JfcWVtdV9kaXNrczsKICAgICBsaWJ4bF9fbG9nZGlydHlfc3dpdGNoIGxvZ2Rp cnR5OwogfTsKIApAQCAtMzY2OCw2ICszNjk2LDcgQEAgc3RydWN0IGxpYnhsX19kbV9zcGF3bl9z dGF0ZSB7CiAgICAgbGlieGxfX3NwYXduX3N0YXRlIHNwYXduOwogICAgIC8qIGZpbGxlZCBpbiBi eSB1c2VyLCBtdXN0IHJlbWFpbiB2YWxpZDogKi8KICAgICB1aW50MzJfdCBndWVzdF9kb21pZDsg LyogZG9tYWluIGJlaW5nIHNlcnZlZCAqLworICAgIGludCBtaXJyb3JfcWVtdV9kaXNrczsKICAg ICBsaWJ4bF9kb21haW5fY29uZmlnICpndWVzdF9jb25maWc7CiAgICAgbGlieGxfX2RvbWFpbl9i dWlsZF9zdGF0ZSAqYnVpbGRfc3RhdGU7IC8qIHJlbGF0ZXMgdG8gZ3Vlc3RfZG9taWQgKi8KICAg ICBsaWJ4bF9fZG1fc3Bhd25fY2IgKmNhbGxiYWNrOwpAQCAtMzcxMyw2ICszNzQyLDcgQEAgc3Ry dWN0IGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlIHsKICAgICBpbnQgcmVzdG9yZV9mZCwgbGli eGNfZmQ7CiAgICAgaW50IHJlc3RvcmVfZmRmbDsgLyogb3JpZ2luYWwgZmxhZ3Mgb2YgcmVzdG9y ZV9mZCAqLwogICAgIGludCBzZW5kX2JhY2tfZmQ7CisgICAgaW50IG1pcnJvcl9xZW11X2Rpc2tz OwogICAgIGxpYnhsX2RvbWFpbl9yZXN0b3JlX3BhcmFtcyByZXN0b3JlX3BhcmFtczsKICAgICB1 aW50MzJfdCBkb21pZF9zb2Z0X3Jlc2V0OwogICAgIGxpYnhsX19kb21haW5fY3JlYXRlX2NiICpj YWxsYmFjazsKQEAgLTM3MjksNiArMzc1OSw3IEBAIHN0cnVjdCBsaWJ4bF9fZG9tYWluX2NyZWF0 ZV9zdGF0ZSB7CiAgICAgICAgIC8qIElmIHdlJ3JlIG5vdCBkb2luZyBzdHViZG9tLCB3ZSB1c2Ug b25seSBkbXNzLmRtLAogICAgICAgICAgKiBmb3IgdGhlIG5vbi1zdHViZG9tIGRldmljZSBtb2Rl bC4gKi8KICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUgc3JzOworICAgIGxpYnhsX19zdHJl YW1fcmVhZF9zdGF0ZSBzcnNfbG9jYWxfZGlza3M7CiAgICAgLyogbmVjZXNzYXJ5IGlmIHRoZSBk b21haW4gY3JlYXRpb24gZmFpbGVkIGFuZCB3ZSBoYXZlIHRvIGRlc3Ryb3kgaXQgKi8KICAgICBs aWJ4bF9fZG9tYWluX2Rlc3Ryb3lfc3RhdGUgZGRzOwogICAgIGxpYnhsX19tdWx0aWRldiBtdWx0 aWRldjsKQEAgLTM3NDgsMTMgKzM3NzksMTcgQEAgX2hpZGRlbiB2b2lkIGxpYnhsX19kb21haW5f c2F2ZShsaWJ4bF9fZWdjICplZ2MsCiAvKiBjYWxscyBsaWJ4bF9feGNfZG9tYWluX3N1c3BlbmRf ZG9uZSB3aGVuIGRvbmUgKi8KIF9oaWRkZW4gdm9pZCBsaWJ4bF9feGNfZG9tYWluX3NhdmUobGli eGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9f ZG9tYWluX3NhdmVfc3RhdGUgKmRzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGlieGxfX3NhdmVfaGVscGVyX3N0YXRlICpzaHMpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9fc2F2ZV9oZWxwZXJfc3RhdGUgKnNocywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1pcnJvcl9xZW11X2Rpc2tzKTsKIC8qIElmIHJj PT0wIHRoZW4gcmV0dmFsIGlzIHRoZSByZXR1cm4gdmFsdWUgZnJvbSB4Y19kb21haW5fc2F2ZQog ICogYW5kIGVycm5vdmFsIGlzIHRoZSBlcnJubyB2YWx1ZSBpdCBwcm92aWRlZC4KICAqIElmIHJj IT0wLCByZXR2YWwgYW5kIGVycm5vdmFsIGFyZSB1bmRlZmluZWQuICovCiBfaGlkZGVuIHZvaWQg bGlieGxfX3hjX2RvbWFpbl9zYXZlX2RvbmUobGlieGxfX2VnYyosIHZvaWQgKmRzc192b2lkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByYywgaW50IHJldHZh bCwgaW50IGVycm5vdmFsKTsKIAorX2hpZGRlbiB2b2lkIGxpYnhsX194Y19taXJyb3JfZGlza3Nf c2F2ZV9kb25lKGxpYnhsX19lZ2MgKmVnYywgdm9pZCAqZHNzX3ZvaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IHJjLCBpbnQgcmV0dmFsLCBpbnQgZXJybm92YWwpOworCiAv KiBVc2VkIGJ5IGFzeW5jaHJvbm91cyBjYWxsYmFja3M6IGllIG9uZXMgd2hpY2ggeGMgcmVnYXJk cyBhcwogICogcmV0dXJuaW5nIGEgdmFsdWUsIGJ1dCB3aGljaCB3ZSB3YW50IHRvIGhhbmRsZSBh c3luY2hyb25vdXNseS4KICAqIFN1Y2ggZnVuY3Rpb25zJyBhY3R1YWwgY2FsbGJhY2sgZnVuY3Rp b24gcmV0dXJuIHZvaWQgaW4gbGlieGwKQEAgLTM3NzgsMTMgKzM4MTMsMTggQEAgX2hpZGRlbiBp bnQgbGlieGxfX3Jlc3RvcmVfZW11bGF0b3JfeGVuc3RvcmVfZGF0YQogX2hpZGRlbiB2b2lkIGxp YnhsX194Y19kb21haW5fcmVzdG9yZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlICpkY3MsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zYXZlX2hlbHBlcl9z dGF0ZSAqc2hzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaHZt LCBpbnQgcGFlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGh2 bSwgaW50IHBhZSwgaW50IG1pcnJvcl9xZW11X2Rpc2tzKTsKIC8qIElmIHJjPT0wIHRoZW4gcmV0 dmFsIGlzIHRoZSByZXR1cm4gdmFsdWUgZnJvbSB4Y19kb21haW5fc2F2ZQogICogYW5kIGVycm5v dmFsIGlzIHRoZSBlcnJubyB2YWx1ZSBpdCBwcm92aWRlZC4KICAqIElmIHJjIT0wLCByZXR2YWwg YW5kIGVycm5vdmFsIGFyZSB1bmRlZmluZWQuICovCiBfaGlkZGVuIHZvaWQgbGlieGxfX3hjX2Rv bWFpbl9yZXN0b3JlX2RvbmUobGlieGxfX2VnYyAqZWdjLCB2b2lkICpkY3Nfdm9pZCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmMsIGludCByZXR2YWws IGludCBlcnJub3ZhbCk7CiAKK19oaWRkZW4gdm9pZCBsaWJ4bF9feGNfbWlycm9yX2Rpc2tzX3Jl c3RvcmVfZG9uZShsaWJ4bF9fZWdjICplZ2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGNzX3ZvaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjLCBpbnQgcmV0dmFsLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBlcnJub3ZhbCk7 CisKIF9oaWRkZW4gdm9pZCBsaWJ4bF9fc2F2ZV9oZWxwZXJfaW5pdChsaWJ4bF9fc2F2ZV9oZWxw ZXJfc3RhdGUgKnNocyk7CiBfaGlkZGVuIHZvaWQgbGlieGxfX3NhdmVfaGVscGVyX2Fib3J0KGxp YnhsX19lZ2MgKmVnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGli eGxfX3NhdmVfaGVscGVyX3N0YXRlICpzaHMpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGli eGxfc2F2ZV9jYWxsb3V0LmMgYi90b29scy9saWJ4bC9saWJ4bF9zYXZlX2NhbGxvdXQuYwppbmRl eCA4OTFjNjY5Li4yOTBkOTFkIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9zYXZlX2Nh bGxvdXQuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9zYXZlX2NhbGxvdXQuYwpAQCAtNDMsNyAr NDMsNyBAQCBzdGF0aWMgdm9pZCBoZWxwZXJfZG9uZShsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19z YXZlX2hlbHBlcl9zdGF0ZSAqc2hzKTsKIAogdm9pZCBsaWJ4bF9feGNfZG9tYWluX3Jlc3RvcmUo bGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZG9tYWluX2NyZWF0ZV9zdGF0ZSAqZGNzLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3NhdmVfaGVscGVyX3N0YXRlICpzaHMsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaHZtLCBpbnQgcGFlKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGh2bSwgaW50IHBhZSwgaW50IG1pcnJvcl9xZW11X2Rp c2tzKQogewogICAgIFNUQVRFX0FPX0dDKGRjcy0+YW8pOwogCkBAIC02MywxNiArNjMsMjIgQEAg dm9pZCBsaWJ4bF9feGNfZG9tYWluX3Jlc3RvcmUobGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fZG9t YWluX2NyZWF0ZV9zdGF0ZSAqZGNzLAogICAgICAgICBzdGF0ZS0+Y29uc29sZV9kb21pZCwKICAg ICAgICAgaHZtLCBwYWUsCiAgICAgICAgIGNiZmxhZ3MsIGRjcy0+cmVzdG9yZV9wYXJhbXMuY2hl Y2twb2ludGVkX3N0cmVhbSwKKyAgICAgICAgbWlycm9yX3FlbXVfZGlza3MsCiAgICAgfTsKIAog ICAgIHNocy0+YW8gPSBhbzsKICAgICBzaHMtPmRvbWlkID0gZG9taWQ7CiAgICAgc2hzLT5yZWN2 X2NhbGxiYWNrID0gbGlieGxfX3NybV9jYWxsb3V0X3JlY2VpdmVkX3Jlc3RvcmU7CiAgICAgaWYg KGRjcy0+cmVzdG9yZV9wYXJhbXMuY2hlY2twb2ludGVkX3N0cmVhbSA9PQotICAgICAgICBMSUJY TF9DSEVDS1BPSU5URURfU1RSRUFNX0NPTE8pCisgICAgICAgIExJQlhMX0NIRUNLUE9JTlRFRF9T VFJFQU1fQ09MTykgewogICAgICAgICBzaHMtPmNvbXBsZXRpb25fY2FsbGJhY2sgPSBsaWJ4bF9f Y29sb19yZXN0b3JlX3RlYXJkb3duOwotICAgIGVsc2UKLSAgICAgICAgc2hzLT5jb21wbGV0aW9u X2NhbGxiYWNrID0gbGlieGxfX3hjX2RvbWFpbl9yZXN0b3JlX2RvbmU7CisgICAgfSBlbHNlIHsK KyAgICAgICAgaWYoIW1pcnJvcl9xZW11X2Rpc2tzKXsKKyAgICAgICAgICAgIHNocy0+Y29tcGxl dGlvbl9jYWxsYmFjayA9IGxpYnhsX194Y19kb21haW5fcmVzdG9yZV9kb25lOworICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgc2hzLT5jb21wbGV0aW9uX2NhbGxiYWNrID0gbGlieGxfX3hj X2h2bV9wYXJhbXNfcmVzdG9yZV9kb25lOworICAgICAgICB9CisgICAgfQogICAgIHNocy0+Y2Fs bGVyX3N0YXRlID0gZGNzOwogICAgIHNocy0+bmVlZF9yZXN1bHRzID0gMTsKIApAQCAtODEsNyAr ODcsNyBAQCB2b2lkIGxpYnhsX194Y19kb21haW5fcmVzdG9yZShsaWJ4bF9fZWdjICplZ2MsIGxp YnhsX19kb21haW5fY3JlYXRlX3N0YXRlICpkY3MsCiB9CiAKIHZvaWQgbGlieGxfX3hjX2RvbWFp bl9zYXZlKGxpYnhsX19lZ2MgKmVnYywgbGlieGxfX2RvbWFpbl9zYXZlX3N0YXRlICpkc3MsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9fc2F2ZV9oZWxwZXJfc3RhdGUgKnNocykK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zYXZlX2hlbHBlcl9zdGF0ZSAqc2hz LCBpbnQgbWlycm9yX3FlbXVfZGlza3MpCiB7CiAgICAgU1RBVEVfQU9fR0MoZHNzLT5hbyk7CiAK QEAgLTkwLDEzICs5NiwxNyBAQCB2b2lkIGxpYnhsX194Y19kb21haW5fc2F2ZShsaWJ4bF9fZWdj ICplZ2MsIGxpYnhsX19kb21haW5fc2F2ZV9zdGF0ZSAqZHNzLAogCiAgICAgY29uc3QgdW5zaWdu ZWQgbG9uZyBhcmdudW1zW10gPSB7CiAgICAgICAgIGRzcy0+ZG9taWQsIDAsIDAsIGRzcy0+eGNm bGFncywgZHNzLT5odm0sCi0gICAgICAgIGNiZmxhZ3MsIGRzcy0+Y2hlY2twb2ludGVkX3N0cmVh bSwKKyAgICAgICAgY2JmbGFncywgZHNzLT5jaGVja3BvaW50ZWRfc3RyZWFtLCBtaXJyb3JfcWVt dV9kaXNrcywKICAgICB9OwogCiAgICAgc2hzLT5hbyA9IGFvOwogICAgIHNocy0+ZG9taWQgPSBk c3MtPmRvbWlkOwogICAgIHNocy0+cmVjdl9jYWxsYmFjayA9IGxpYnhsX19zcm1fY2FsbG91dF9y ZWNlaXZlZF9zYXZlOwotICAgIHNocy0+Y29tcGxldGlvbl9jYWxsYmFjayA9IGxpYnhsX194Y19k b21haW5fc2F2ZV9kb25lOworICAgIGlmKCFtaXJyb3JfcWVtdV9kaXNrcyl7CisgICAgICAgIHNo cy0+Y29tcGxldGlvbl9jYWxsYmFjayA9IGxpYnhsX194Y19kb21haW5fc2F2ZV9kb25lOworICAg IH1lbHNleworICAgICAgICBzaHMtPmNvbXBsZXRpb25fY2FsbGJhY2sgPSBsaWJ4bF9feGNfaHZt X3BhcmFtc19zYXZlX2RvbmU7CisgICAgfQogICAgIHNocy0+Y2FsbGVyX3N0YXRlID0gZHNzOwog ICAgIHNocy0+bmVlZF9yZXN1bHRzID0gMDsKIApAQCAtMzM2LDEzICszNDYsMTMgQEAgc3RhdGlj IHZvaWQgaGVscGVyX2V4aXRlZChsaWJ4bF9fZWdjICplZ2MsIGxpYnhsX19ldl9jaGlsZCAqY2gs CiAgICAgICAgIGlmICghc2hzLT5yYykKICAgICAgICAgICAgIHNocy0+cmMgPSBFUlJPUl9GQUlM OwogICAgIH0KLQotICAgIGlmIChzaHMtPm5lZWRfcmVzdWx0cykgewotICAgICAgICBpZiAoIXNo cy0+cmMpIHsKLSAgICAgICAgICAgIExPR0QoRVJST1Isc2hzLT5kb21pZCwiJXMgZXhpdGVkIHdp dGhvdXQgcHJvdmlkaW5nIHJlc3VsdHMiLHdoYXQpOwotICAgICAgICAgICAgc2hzLT5yYyA9IEVS Uk9SX0ZBSUw7Ci0gICAgICAgIH0KLSAgICB9CisvLyAgICBiYWx2aXNpbzogVE9ETzogRklYCisv LyAgICBpZiAoc2hzLT5uZWVkX3Jlc3VsdHMpIHsKKy8vICAgICAgICBpZiAoIXNocy0+cmMpIHsK Ky8vICAgICAgICAgICAgTE9HRChFUlJPUixzaHMtPmRvbWlkLCIlcyBleGl0ZWQgd2l0aG91dCBw cm92aWRpbmcgcmVzdWx0cyIsd2hhdCk7CisvLyAgICAgICAgICAgIHNocy0+cmMgPSBFUlJPUl9G QUlMOworLy8gICAgICAgIH0KKy8vICAgIH0KIAogICAgIGlmICghc2hzLT5jb21wbGV0ZWQpIHsK ICAgICAgICAgaWYgKCFzaHMtPnJjKSB7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9z YXZlX2hlbHBlci5jIGIvdG9vbHMvbGlieGwvbGlieGxfc2F2ZV9oZWxwZXIuYwppbmRleCAxZGVj ZTIzLi5jZmM5Mjc5IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9zYXZlX2hlbHBlci5j CisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3NhdmVfaGVscGVyLmMKQEAgLTI1Nyw2ICsyNTcsNyBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgIGludCBodm0gPSAgICAg ICAgICAgICAgICAgICAgICAgICAgIGF0b2koTkVYVEFSRyk7CiAgICAgICAgIHVuc2lnbmVkIGNi ZmxhZ3MgPSAgICAgICAgICAgICAgICAgIHN0cnRvdWwoTkVYVEFSRywwLDEwKTsKICAgICAgICAg eGNfbWlncmF0aW9uX3N0cmVhbV90IHN0cmVhbV90eXBlID0gc3RydG91bChORVhUQVJHLDAsMTAp OworICAgICAgICBpbnQgbWlycm9yX3FlbXVfZGlza3MgPSAgICAgICAgICAgICAgICAgICBhdG9p KE5FWFRBUkcpOwogICAgICAgICBhc3NlcnQoISorK2FyZ3YpOwogCiAgICAgICAgIGhlbHBlcl9z ZXRjYWxsYmFja3Nfc2F2ZSgmaGVscGVyX3NhdmVfY2FsbGJhY2tzLCBjYmZsYWdzKTsKQEAgLTI2 Niw3ICsyNjcsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKICAgICAgICAg ciA9IHhjX2RvbWFpbl9zYXZlKHhjaCwgaW9fZmQsIGRvbSwgbWF4X2l0ZXJzLCBtYXhfZmFjdG9y LCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoZWxwZXJfc2F2ZV9jYWxsYmFj a3MsIGh2bSwgc3RyZWFtX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICByZWN2X2Zk KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3ZfZmQsIG1pcnJvcl9xZW11X2Rpc2tz KTsKICAgICAgICAgY29tcGxldGUocik7CiAKICAgICB9IGVsc2UgaWYgKCFzdHJjbXAobW9kZSwi LS1yZXN0b3JlLWRvbWFpbiIpKSB7CkBAIC0yODIsNiArMjgzLDcgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogICAgICAgICB1bnNpZ25lZCBpbnQgcGFlID0gICAgICAgICAgICAg ICAgICBzdHJ0b3VsKE5FWFRBUkcsMCwxMCk7CiAgICAgICAgIHVuc2lnbmVkIGNiZmxhZ3MgPSAg ICAgICAgICAgICAgICAgIHN0cnRvdWwoTkVYVEFSRywwLDEwKTsKICAgICAgICAgeGNfbWlncmF0 aW9uX3N0cmVhbV90IHN0cmVhbV90eXBlID0gc3RydG91bChORVhUQVJHLDAsMTApOworICAgICAg ICBpbnQgbWlycm9yX3FlbXVfZGlza3MgPSAgICAgICAgICAgICBhdG9pKE5FWFRBUkcpOwogICAg ICAgICBhc3NlcnQoISorK2FyZ3YpOwogCiAgICAgICAgIGhlbHBlcl9zZXRjYWxsYmFja3NfcmVz dG9yZSgmaGVscGVyX3Jlc3RvcmVfY2FsbGJhY2tzLCBjYmZsYWdzKTsKZGlmZiAtLWdpdCBhL3Rv b2xzL2xpYnhsL2xpYnhsX3N0cmVhbV9yZWFkLmMgYi90b29scy9saWJ4bC9saWJ4bF9zdHJlYW1f cmVhZC5jCmluZGV4IDQ4Mzg3NTAuLmVhNWZmZDMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xp YnhsX3N0cmVhbV9yZWFkLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfc3RyZWFtX3JlYWQuYwpA QCAtNTYxLDYgKzU2MSw3IEBAIHN0YXRpYyBib29sIHByb2Nlc3NfcmVjb3JkKGxpYnhsX19lZ2Mg KmVnYywKIHsKICAgICBTVEFURV9BT19HQyhzdHJlYW0tPmFvKTsKICAgICBsaWJ4bF9fZG9tYWlu X2NyZWF0ZV9zdGF0ZSAqZGNzID0gc3RyZWFtLT5kY3M7CisgICAgaW50IGNyZWF0ZV9taXJyb3Jf cWVtdV9kaXNrcyA9IHN0cmVhbS0+ZGNzLT5taXJyb3JfcWVtdV9kaXNrczsKICAgICBsaWJ4bF9f c3JfcmVjb3JkX2J1ZiAqcmVjOwogICAgIGxpYnhsX3NyX2NoZWNrcG9pbnRfc3RhdGUgKnNyY3M7 CiAgICAgYm9vbCBmdXJ0aGVyX2FjdGlvbl9uZWVkZWQgPSBmYWxzZTsKQEAgLTU4MCw3ICs1ODEs OSBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzX3JlY29yZChsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAg IGJyZWFrOwogCiAgICAgY2FzZSBSRUNfVFlQRV9MSUJYQ19DT05URVhUOgotICAgICAgICBsaWJ4 bF9feGNfZG9tYWluX3Jlc3RvcmUoZWdjLCBkY3MsICZzdHJlYW0tPnNocywgMCwgMCk7CisgICAg ICAgIGxpYnhsX194Y19kb21haW5fcmVzdG9yZShlZ2MsIGRjcywgJnN0cmVhbS0+c2hzLCAwLCAw LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5taXJyb3JfcWVtdV9k aXNrcyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVfbWlycm9yX3Fl bXVfZGlza3MpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgUkVDX1RZUEVfRU1VTEFUT1Jf WEVOU1RPUkVfREFUQToKQEAgLTgzNSw2ICs4MzgsMTggQEAgc3RhdGljIHZvaWQgc3RyZWFtX2Rv bmUobGlieGxfX2VnYyAqZWdjLAogICAgIH0KIH0KIAordm9pZCBsaWJ4bF9feGNfbWlycm9yX2Rp c2tzX3Jlc3RvcmVfZG9uZShsaWJ4bF9fZWdjICplZ2MsIHZvaWQgKmRjc192b2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJjLCBpbnQgcmV0dmFsLCBpbnQg ZXJybm92YWwpCit7CisgICAgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgKmRjcyA9IGRjc192 b2lkOworICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSAqc3RyZWFtID0gJmRjcy0+c3JzX21p cnJvcl9xZW11X2Rpc2tzOworICAgIFNUQVRFX0FPX0dDKGRjcy0+YW8pOworCisgICAgY2hlY2tf YWxsX2ZpbmlzaGVkKGVnYywgc3RyZWFtLCByYyk7CisKKyAgICBzdHJlYW1fY29udGludWUoZWdj LCBzdHJlYW0pOworfQorCiB2b2lkIGxpYnhsX194Y19kb21haW5fcmVzdG9yZV9kb25lKGxpYnhs X19lZ2MgKmVnYywgdm9pZCAqZGNzX3ZvaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCByYywgaW50IHJldHZhbCwgaW50IGVycm5vdmFsKQogewpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGwvbGlieGxfc3RyZWFtX3dyaXRlLmMgYi90b29scy9saWJ4bC9saWJ4bF9zdHJl YW1fd3JpdGUuYwppbmRleCBjOTZhNmEyLi5hZDMxMmVkIDEwMDY0NAotLS0gYS90b29scy9saWJ4 bC9saWJ4bF9zdHJlYW1fd3JpdGUuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fd3Jp dGUuYwpAQCAtMzM1LDcgKzMzNSwyNCBAQCBzdGF0aWMgdm9pZCBzdHJlYW1faGVhZGVyX2RvbmUo bGlieGxfX2VnYyAqZWdjLAogc3RhdGljIHZvaWQgbGlieGNfaGVhZGVyX2RvbmUobGlieGxfX2Vn YyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3N0cmVhbV93cml0 ZV9zdGF0ZSAqc3RyZWFtKQogewotICAgIGxpYnhsX194Y19kb21haW5fc2F2ZShlZ2MsIHN0cmVh bS0+ZHNzLCAmc3RyZWFtLT5zaHMpOworICAgIGludCBzYXZlX21pcnJvcl9xZW11X2Rpc2tzID0g c3RyZWFtLT5kc3MtPmxvY2FsX2Rpc2tzOworICAgIGxpYnhsX194Y19kb21haW5fc2F2ZShlZ2Ms IHN0cmVhbS0+ZHNzLCAmc3RyZWFtLT5zaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNh dmVfbWlycm9yX3FlbXVfZGlza3MgKyBzdHJlYW0tPm1pcnJvcl9xZW11X2Rpc2tzKTsKK30KKwor dm9pZCBsaWJ4bF9feGNfbWlycm9yX2Rpc2tzX3NhdmVfZG9uZShsaWJ4bF9fZWdjICplZ2MsIHZv aWQgKmRzc192b2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJj LCBpbnQgcmV0dmFsLCBpbnQgZXJybm92YWwpCit7CisgICAgbGlieGxfX2RvbWFpbl9zYXZlX3N0 YXRlICpkc3MgPSBkc3Nfdm9pZDsKKyAgICBsaWJ4bF9fc3RyZWFtX3dyaXRlX3N0YXRlICpzdHJl YW0gPSAmZHNzLT5zd3NfbWlycm9yX3FlbXVfZGlza3M7CisgICAgU1RBVEVfQU9fR0MoZHNzLT5h byk7CisKKyAgICBjaGVja19hbGxfZmluaXNoZWQoZWdjLCBzdHJlYW0sIHJjKTsKKworICAgIGlm IChzdHJlYW0tPmluX2NoZWNrcG9pbnQpCisgICAgICAgIHdyaXRlX2NoZWNrcG9pbnRfZW5kX3Jl Y29yZChlZ2MsIHN0cmVhbSk7CisgICAgZWxzZQorICAgICAgICB3cml0ZV9lbXVsYXRvcl94ZW5z dG9yZV9yZWNvcmQoZWdjLCBzdHJlYW0pOwogfQogCiB2b2lkIGxpYnhsX194Y19kb21haW5fc2F2 ZV9kb25lKGxpYnhsX19lZ2MgKmVnYywgdm9pZCAqZHNzX3ZvaWQsCkBAIC00MjksOSArNDQ2LDEy IEBAIHN0YXRpYyB2b2lkIGVtdWxhdG9yX3hlbnN0b3JlX3JlY29yZF9kb25lKGxpYnhsX19lZ2Mg KmVnYywKIHsKICAgICBsaWJ4bF9fZG9tYWluX3NhdmVfc3RhdGUgKmRzcyA9IHN0cmVhbS0+ZHNz OwogCi0gICAgaWYgKGRzcy0+dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0pCi0gICAgICAg IHdyaXRlX2VtdWxhdG9yX2NvbnRleHRfcmVjb3JkKGVnYywgc3RyZWFtKTsKLSAgICBlbHNlIHsK KyAgICBpZiAoZHNzLT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkgeworICAgICAgICBp Zighc3RyZWFtLT5taXJyb3JfcWVtdV9kaXNrcykKKyAgICAgICAgICAgIHdyaXRlX2VtdWxhdG9y X2NvbnRleHRfcmVjb3JkKGVnYywgc3RyZWFtKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg d3JpdGVfZW5kX3JlY29yZChlZ2MsIHN0cmVhbSk7CisgICAgfSBlbHNlIHsKICAgICAgICAgaWYg KHN0cmVhbS0+aW5fY2hlY2twb2ludCkKICAgICAgICAgICAgIHdyaXRlX2NoZWNrcG9pbnRfZW5k X3JlY29yZChlZ2MsIHN0cmVhbSk7CiAgICAgICAgIGVsc2UKLS0gCjIuMy4yIChBcHBsZSBHaXQt NTUpCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==