From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8E8A86E706 for ; Mon, 25 Mar 2019 23:21:00 +0000 (UTC) From: Antonio Argenziano Date: Mon, 25 Mar 2019 16:20:41 -0700 Message-Id: <20190325232043.7953-4-antonio.argenziano@intel.com> In-Reply-To: <20190325232043.7953-1-antonio.argenziano@intel.com> References: <20190325232043.7953-1-antonio.argenziano@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFT v4 4/6] igt/i915: Require GTT mapping to be available when needed. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Matthew Auld List-ID: V2l0aCB0aGUgR1RUIGFwZXJ0dXJlIGJlY29taW5nIHVuYXZhaWxhYmxlIG9uIGNlcnRhaW4gcGxh dGZvcm1zLCB0ZXN0cwp0aGF0IHRhcmdldCB0aGF0IG1hcHBpbmcgbmVlZCB0byBza2lwIGlmIHN1 Y2ggbWFwcGluZyBpcyBub3QgYXZhaWxhYmxlLgoKQ2M6IEthdGFyenluYSBEZWMgPGthdGFyenlu YS5kZWNAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+CkNjOiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IEFudG9uaW8gQXJnZW56aWFubyA8YW50b25pby5hcmdlbnppYW5vQGludGVsLmNvbT4KLS0t CiBsaWIvaWd0X2R1bW15bG9hZC5jICAgICAgICAgICAgICAgICAgICAgfCAgNCArKystCiBsaWIv aWd0X2ZiLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKystLQogdGVzdHMvaTkx NS9nZW1fY29uY3VycmVudF9hbGwuYyAgICAgICAgIHwgIDEgKwogdGVzdHMvaTkxNS9nZW1fY3R4 X3NzZXUuYyAgICAgICAgICAgICAgIHwgIDQgKysrLQogdGVzdHMvaTkxNS9nZW1fZXhlY19iYXNp Yy5jICAgICAgICAgICAgIHwgIDEgKwogdGVzdHMvaTkxNS9nZW1fZXhlY19mYXVsdGluZ19yZWxv Yy5jICAgIHwgIDIgKysKIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfZmx1c2guYyAgICAgICAgICAgICB8 ICA2ICsrKysrKwogdGVzdHMvaTkxNS9nZW1fZXhlY19yZWxvYy5jICAgICAgICAgICAgIHwgIDcg KysrKysrKwogdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jICAgICAgICAgIHwgIDUgKysr Ky0KIHRlc3RzL2k5MTUvZ2VtX2ZlbmNlX3RocmFzaC5jICAgICAgICAgICB8ICA2ICsrKysrKwog dGVzdHMvaTkxNS9nZW1fZ3R0X2NwdV90bGIuYyAgICAgICAgICAgIHwgIDEgKwogdGVzdHMvaTkx NS9nZW1fZ3R0X2hvZy5jICAgICAgICAgICAgICAgIHwgIDEgKwogdGVzdHMvaTkxNS9nZW1fZ3R0 X3NwZWVkLmMgICAgICAgICAgICAgIHwgIDEgKwogdGVzdHMvaTkxNS9nZW1fbGFyZ2VvYmplY3Qu YyAgICAgICAgICAgIHwgIDIgKysKIHRlc3RzL2k5MTUvZ2VtX21hZHZpc2UuYyAgICAgICAgICAg ICAgICB8ICA0ICsrKysKIHRlc3RzL2k5MTUvZ2VtX21tYXBfZ3R0LmMgICAgICAgICAgICAgICB8 ICA0ICsrKy0KIHRlc3RzL2k5MTUvZ2VtX21tYXBfb2Zmc2V0X2V4aGF1c3Rpb24uYyB8ICAyICsr CiB0ZXN0cy9pOTE1L2dlbV9tbWFwX3djLmMgICAgICAgICAgICAgICAgfCAgMiArKwogdGVzdHMv aTkxNS9nZW1fcGVyc2lzdGVudF9yZWxvY3MuYyAgICAgIHwgIDIgKysKIHRlc3RzL2k5MTUvZ2Vt X3B3cml0ZV9wcmVhZC5jICAgICAgICAgICB8ICA2ICsrKysrKwogdGVzdHMvaTkxNS9nZW1fcmVs b2NfdnNfZ3B1LmMgICAgICAgICAgIHwgMjEgKysrKysrKysrKysrLS0tLS0tLS0tCiB0ZXN0cy9p OTE1L2dlbV9yZW5kZXJfY29weS5jICAgICAgICAgICAgfCAgMiArKwogdGVzdHMvaTkxNS9nZW1f c2V0X3RpbGluZ192c19ndHQuYyAgICAgIHwgIDIgKysKIHRlc3RzL2k5MTUvZ2VtX3NldF90aWxp bmdfdnNfcHdyaXRlLmMgICB8ICAyICsrCiB0ZXN0cy9pOTE1L2dlbV9zaHJpbmsuYyAgICAgICAg ICAgICAgICAgfCAxNCArKysrKysrKysrKy0tLQogdGVzdHMvaTkxNS9nZW1fc3RvcmVkd19sb29w LmMgICAgICAgICAgIHwgIDkgKysrKysrKysrCiB0ZXN0cy9pOTE1L2dlbV9zdHJlYW1pbmdfd3Jp dGVzLmMgICAgICAgfCAxNiArKysrKysrKysrKysrKy0tCiB0ZXN0cy9pOTE1L2dlbV90aWxlZF9m ZW5jZV9ibGl0cy5jICAgICAgfCAgMSArCiB0ZXN0cy9pOTE1L2dlbV90aWxlZF9wcmVhZF9iYXNp Yy5jICAgICAgfCAgMSArCiB0ZXN0cy9pOTE1L2dlbV90aWxlZF9wcmVhZF9wd3JpdGUuYyAgICAg fCAgNCArKystCiB0ZXN0cy9pOTE1L2dlbV90aWxlZF9zd2FwcGluZy5jICAgICAgICAgfCAgMiAr KwogdGVzdHMvaTkxNS9nZW1fdGlsZWRfd2IuYyAgICAgICAgICAgICAgIHwgIDIgKysKIHRlc3Rz L2k5MTUvZ2VtX3RpbGVkX3djLmMgICAgICAgICAgICAgICB8ICAxICsKIHRlc3RzL2k5MTUvZ2Vt X3RpbGluZ19tYXhfc3RyaWRlLmMgICAgICB8ICAzICsrLQogdGVzdHMvaTkxNS9nZW1fdXNlcnB0 cl9ibGl0cy5jICAgICAgICAgIHwgMTAgKysrKysrKysrLQogdGVzdHMvaTkxNS9pOTE1X3BtX3Jw bS5jICAgICAgICAgICAgICAgIHwgIDkgKysrKysrKysrCiB0ZXN0cy9pOTE1L2k5MTVfc3VzcGVu ZC5jICAgICAgICAgICAgICAgfCAgMiArKwogdGVzdHMva21zX2RyYXdfY3JjLmMgICAgICAgICAg ICAgICAgICAgIHwgIDggKysrKysrLS0KIHRlc3RzL2ttc19mZW5jZV9waW5fbGVhay5jICAgICAg ICAgICAgICB8ICAyICsrCiB0ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYyAgICAgICAg fCAgMyArKysKIHRlc3RzL2ttc19wc3IuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsr KysKIHRlc3RzL3ByaW1lX21tYXAuYyAgICAgICAgICAgICAgICAgICAgICB8ICAyICsrCiB0ZXN0 cy9wcmltZV9tbWFwX2NvaGVyZW5jeS5jICAgICAgICAgICAgfCAgMSArCiB0ZXN0cy9wcmltZV92 Z2VtLmMgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKysrKwogNDQgZmlsZXMgY2hhbmdlZCwg MTY3IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf ZHVtbXlsb2FkLmMgYi9saWIvaWd0X2R1bW15bG9hZC5jCmluZGV4IDQ3ZjZiOTJiLi4yZTRjMDMz NSAxMDA2NDQKLS0tIGEvbGliL2lndF9kdW1teWxvYWQuYworKysgYi9saWIvaWd0X2R1bW15bG9h ZC5jCkBAIC0xMTcsOSArMTE3LDExIEBAIGVtaXRfcmVjdXJzaXZlX2JhdGNoKGlndF9zcGluX3Qg KnNwaW4sCiAJb2JqW0JBVENIXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCBCQVRDSF9TSVpFKTsK IAliYXRjaCA9IF9fZ2VtX21tYXBfX3djKGZkLCBvYmpbQkFUQ0hdLmhhbmRsZSwKIAkJCSAgICAg ICAwLCBCQVRDSF9TSVpFLCBQUk9UX1dSSVRFKTsKLQlpZiAoIWJhdGNoKQorCWlmICghYmF0Y2gp IHsKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOwogCQliYXRjaCA9IGdlbV9tbWFwX19ndHQo ZmQsIG9ialtCQVRDSF0uaGFuZGxlLAogCQkJCSAgICAgICAJQkFUQ0hfU0laRSwgUFJPVF9XUklU RSk7CisJfQogCWdlbV9zZXRfZG9tYWluKGZkLCBvYmpbQkFUQ0hdLmhhbmRsZSwKIAkJCUk5MTVf R0VNX0RPTUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9HVFQpOwogCWV4ZWNidWYtPmJ1ZmZlcl9j b3VudCsrOwpkaWZmIC0tZ2l0IGEvbGliL2lndF9mYi5jIGIvbGliL2lndF9mYi5jCmluZGV4IGJh ZDFkMWZiLi4wNjhjZDdmZSAxMDA2NDQKLS0tIGEvbGliL2lndF9mYi5jCisrKyBiL2xpYi9pZ3Rf ZmIuYwpAQCAtMTc0NiwxMCArMTc0NiwxMSBAQCBzdGF0aWMgdm9pZCAqbWFwX2JvKGludCBmZCwg c3RydWN0IGlndF9mYiAqZmIpCiAJaWYgKGZiLT5pc19kdW1iKQogCQlwdHIgPSBrbXN0ZXN0X2R1 bWJfbWFwX2J1ZmZlcihmZCwgZmItPmdlbV9oYW5kbGUsIGZiLT5zaXplLAogCQkJCQkgICAgICBQ Uk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKLQllbHNlIGlmIChpc19pOTE1X2RldmljZShmZCkpCisJ ZWxzZSBpZiAoaXNfaTkxNV9kZXZpY2UoZmQpKSB7CisJCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZk KTsKIAkJcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgZmItPmdlbV9oYW5kbGUsIGZiLT5zaXplLAog CQkJCSAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKLQllbHNlIGlmIChpc192YzRfZGV2aWNl KGZkKSkKKwl9IGVsc2UgaWYgKGlzX3ZjNF9kZXZpY2UoZmQpKQogCQlwdHIgPSBpZ3RfdmM0X21t YXBfYm8oZmQsIGZiLT5nZW1faGFuZGxlLCBmYi0+c2l6ZSwKIAkJCQkgICAgICBQUk9UX1JFQUQg fCBQUk9UX1dSSVRFKTsKIAllbHNlCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9jb25jdXJy ZW50X2FsbC5jIGIvdGVzdHMvaTkxNS9nZW1fY29uY3VycmVudF9hbGwuYwppbmRleCBmNzE5YjBh MS4uZTRmYzE0MjYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2NvbmN1cnJlbnRfYWxsLmMK KysrIGIvdGVzdHMvaTkxNS9nZW1fY29uY3VycmVudF9hbGwuYwpAQCAtMTQyMiw2ICsxNDIyLDcg QEAgc3RhdGljIHZvaWQgY3B1X3JlcXVpcmUodm9pZCkKIAogc3RhdGljIHZvaWQgZ3R0X3JlcXVp cmUodm9pZCkKIHsKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CiB9CiAKIHN0YXRpYyB2b2lk IGJjc19yZXF1aXJlKHZvaWQpCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9jdHhfc3NldS5j IGIvdGVzdHMvaTkxNS9nZW1fY3R4X3NzZXUuYwppbmRleCAzYWZhNWMxNS4uYmYxYjUwZDUgMTAw NjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9zc2V1LmMKKysrIGIvdGVzdHMvaTkxNS9nZW1f Y3R4X3NzZXUuYwpAQCAtNTI4LDggKzUyOCwxMCBAQCBpZ3RfbWFpbgogCQlpZ3Rfc3VidGVzdCgi aW52YWxpZC1zc2V1IikKIAkJCXRlc3RfaW52YWxpZF9zc2V1KGZkKTsKIAotCQlpZ3Rfc3VidGVz dCgiZ2d0dC1hcmdzIikKKwkJaWd0X3N1YnRlc3QoImdndHQtYXJncyIpIHsKKwkJCWdlbV9yZXF1 aXJlX21tYXBfZ3R0KGZkKTsKIAkJCXRlc3RfZ2d0dF9hcmdzKGZkKTsKKwkJfQogCiAJCWlndF9z dWJ0ZXN0KCJlbmdpbmVzIikKIAkJCXRlc3RfZW5naW5lcyhmZCk7CmRpZmYgLS1naXQgYS90ZXN0 cy9pOTE1L2dlbV9leGVjX2Jhc2ljLmMgYi90ZXN0cy9pOTE1L2dlbV9leGVjX2Jhc2ljLmMKaW5k ZXggZGNiODM4NjQuLjg1Mzc2NjVmIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX2Jh c2ljLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19iYXNpYy5jCkBAIC05Myw2ICs5Myw3IEBA IHN0YXRpYyB2b2lkIGd0dChpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiAJc3RydWN0IGRybV9pOTE1 X2dlbV9leGVjX29iamVjdDIgKmV4ZWM7CiAJdWludDMyX3QgaGFuZGxlOwogCisJZ2VtX3JlcXVp cmVfbW1hcF9ndHQoZmQpOwogCWdlbV9yZXF1aXJlX3JpbmcoZmQsIHJpbmcpOwogCiAJaGFuZGxl ID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9leGVj X2ZhdWx0aW5nX3JlbG9jLmMgYi90ZXN0cy9pOTE1L2dlbV9leGVjX2ZhdWx0aW5nX3JlbG9jLmMK aW5kZXggNmIwNWU0M2YuLjlkYjgwZjU0IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVj X2ZhdWx0aW5nX3JlbG9jLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19mYXVsdGluZ19yZWxv Yy5jCkBAIC0xNzMsNiArMTczLDggQEAgc3RhdGljIHZvaWQgcnVuKGludCBvYmplY3Rfc2l6ZSkK IAogCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CiAJaWd0X3JlcXVpcmVfZ2Vt KGZkKTsKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CisKIAlkZXZpZCA9IGludGVsX2dldF9k cm1fZGV2aWQoZmQpOwogCWhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwogCXNyYyA9IGdl bV9jcmVhdGUoZmQsIG9iamVjdF9zaXplKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4 ZWNfZmx1c2guYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfZmx1c2guYwppbmRleCBmODIwYjJhOC4u MjliMTM4MDMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfZmx1c2guYworKysgYi90 ZXN0cy9pOTE1L2dlbV9leGVjX2ZsdXNoLmMKQEAgLTc5LDYgKzc5LDkgQEAgc3RhdGljIHZvaWQg cnVuKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IG5jaGlsZCwgaW50IHRpbWVvdXQsCiB7CiAJ Y29uc3QgaW50IGdlbiA9IGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSk7CiAKKwlp ZiAoIShmbGFncyAmIENPSEVSRU5UKSAmJiAhKGZsYWdzICYgV0MpKQorCQlnZW1fcmVxdWlyZV9t bWFwX2d0dChmZCk7CisKIAkvKiBUaGUgY3J1eCBvZiB0aGlzIHRlc3RpbmcgaXMgd2hldGhlciB3 cml0ZXMgYnkgdGhlIEdQVSBhcmUgY29oZXJlbnQKIAkgKiBmcm9tIHRoZSBDUFUuCiAJICoKQEAg LTU4Niw2ICs1ODksNyBAQCBpZ3RfbWFpbgogCQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJf SU5URUwpOwogCQlpZ3RfcmVxdWlyZV9nZW0oZmQpOwogCQlnZW1fcmVxdWlyZV9tbWFwX3djKGZk KTsKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOwogCQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0 b3JlX2R3b3JkKGZkLCAwKSk7CiAJCWlndF9pbmZvKCJIYXMgTExDPyAlc1xuIiwgeWVzbm8oZ2Vt X2hhc19sbGMoZmQpKSk7CiAKQEAgLTYxNCwxMSArNjE4LDEzIEBAIGlndF9tYWluCiAJCQkJICAg ICAgYi0+bmFtZSwKIAkJCQkgICAgICBlLT5uYW1lKQogCQkJCWJhdGNoKGZkLCByaW5nLCBuY3B1 cywgdGltZW91dCwgYi0+bW9kZSwgMCk7CisKIAkJCWlndF9zdWJ0ZXN0X2YoIiVzYmF0Y2gtJXMt JXMtd2IiLAogCQkJCSAgICAgIGIgPT0gYmF0Y2hlcyAmJiBlLT5leGVjX2lkID09IDAgPyAiYmFz aWMtIiA6ICIiLAogCQkJCSAgICAgIGItPm5hbWUsCiAJCQkJICAgICAgZS0+bmFtZSkKIAkJCQli YXRjaChmZCwgcmluZywgbmNwdXMsIHRpbWVvdXQsIGItPm1vZGUsIENPSEVSRU5UKTsKKwogCQkJ aWd0X3N1YnRlc3RfZigiJXNiYXRjaC0lcy0lcy1jbWQiLAogCQkJCSAgICAgIGIgPT0gYmF0Y2hl cyAmJiBlLT5leGVjX2lkID09IDAgPyAiYmFzaWMtIiA6ICIiLAogCQkJCSAgICAgIGItPm5hbWUs CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9leGVjX3JlbG9jLmMgYi90ZXN0cy9pOTE1L2dl bV9leGVjX3JlbG9jLmMKaW5kZXggODM3ZjYwYTYuLmJiNGVlYzMxIDEwMDY0NAotLS0gYS90ZXN0 cy9pOTE1L2dlbV9leGVjX3JlbG9jLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19yZWxvYy5j CkBAIC0xMTUsNiArMTE1LDkgQEAgc3RhdGljIHZvaWQgZnJvbV9tbWFwKGludCBmZCwgdWludDY0 X3Qgc2l6ZSwgZW51bSBtb2RlIG1vZGUpCiAJICovCiAJaW50ZWxfcmVxdWlyZV9tZW1vcnkoMiwg c2l6ZSwgQ0hFQ0tfUkFNKTsKIAorCWlmICgobW9kZSAmIH5STykgPT0gR1RUKQorCQlnZW1fcmVx dWlyZV9tbWFwX2d0dChmZCk7CisKIAltZW1zZXQoJm9iaiwgMCwgc2l6ZW9mKG9iaikpOwogCW9i ai5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKIAlnZW1fd3JpdGUoZmQsIG9iai5oYW5k bGUsIDAsICZiYmUsIHNpemVvZihiYmUpKTsKQEAgLTM0Miw2ICszNDUsOSBAQCBzdGF0aWMgdm9p ZCBiYXNpY19yZWxvYyhpbnQgZmQsIHVuc2lnbmVkIGJlZm9yZSwgdW5zaWduZWQgYWZ0ZXIsIHVu c2lnbmVkIGZsYWdzKQogCWNvbnN0IHVpbnQzMl90IGJiZSA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7 CiAJdW5zaWduZWQgaW50IHJlbG9jX29mZnNldDsKIAorCWlmICgoYmVmb3JlIHwgYWZ0ZXIpICYg STkxNV9HRU1fRE9NQUlOX0dUVCkKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJbWVt c2V0KCZvYmosIDAsIHNpemVvZihvYmopKTsKIAlvYmouaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwg T0JKU1opOwogCW9iai5yZWxvY3NfcHRyID0gdG9fdXNlcl9wb2ludGVyKCZyZWxvYyk7CkBAIC03 MTEsNiArNzE3LDcgQEAgaWd0X21haW4KIAkJCQkJICAgICAgZi0+bmFtZSkgewogCQkJCQlpZiAo KG0tPmJlZm9yZSB8IG0tPmFmdGVyKSAmIEk5MTVfR0VNX0RPTUFJTl9XQykKIAkJCQkJCWlndF9y ZXF1aXJlKGdlbV9tbWFwX19oYXNfd2MoZmQpKTsKKwogCQkJCQliYXNpY19yZWxvYyhmZCwgbS0+ YmVmb3JlLCBtLT5hZnRlciwgZi0+ZmxhZ3MpOwogCQkJCX0KIAkJCX0KZGlmZiAtLWdpdCBhL3Rl c3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1 bGUuYwppbmRleCBhOTM4MzAwMC4uMTVjODQ0MGYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2Vt X2V4ZWNfc2NoZWR1bGUuYworKysgYi90ZXN0cy9pOTE1L2dlbV9leGVjX3NjaGVkdWxlLmMKQEAg LTEyMzYsNiArMTIzNiw3IEBAIGlndF9tYWluCiAJCQlpZ3Rfc3VidGVzdF9mKCJpbmRlcGVuZGVu dC0lcyIsIGUtPm5hbWUpIHsKIAkJCQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2ljYWxf ZW5naW5lKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKIAkJCQlpZ3RfcmVxdWlyZShnZW1f Y2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKKwkJCQlnZW1fcmVx dWlyZV9tbWFwX2d0dChmZCk7CiAJCQkJaW5kZXBlbmRlbnQoZmQsIGUtPmV4ZWNfaWQgfCBlLT5m bGFncyk7CiAJCQl9CiAJCX0KQEAgLTEzMjgsOCArMTMyOSwxMCBAQCBpZ3RfbWFpbgogCQkJCWln dF9zdWJ0ZXN0X2YoIndpZGUtJXMiLCBlLT5uYW1lKQogCQkJCQl3aWRlKGZkLCBlLT5leGVjX2lk IHwgZS0+ZmxhZ3MpOwogCi0JCQkJaWd0X3N1YnRlc3RfZigicmVvcmRlci13aWRlLSVzIiwgZS0+ bmFtZSkKKwkJCQlpZ3Rfc3VidGVzdF9mKCJyZW9yZGVyLXdpZGUtJXMiLCBlLT5uYW1lKSB7CisJ CQkJCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKIAkJCQkJcmVvcmRlcl93aWRlKGZkLCBlLT5l eGVjX2lkIHwgZS0+ZmxhZ3MpOworCQkJCX0KIAogCQkJCWlndF9zdWJ0ZXN0X2YoInNtb2tldGVz dC0lcyIsIGUtPm5hbWUpCiAJCQkJCXNtb2tldGVzdChmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdz LCA1KTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2ZlbmNlX3RocmFzaC5jIGIvdGVzdHMv aTkxNS9nZW1fZmVuY2VfdGhyYXNoLmMKaW5kZXggMmQ3ZmIyZmYuLjU1NjdlMzdlIDEwMDY0NAot LS0gYS90ZXN0cy9pOTE1L2dlbV9mZW5jZV90aHJhc2guYworKysgYi90ZXN0cy9pOTE1L2dlbV9m ZW5jZV90aHJhc2guYwpAQCAtMjM2LDYgKzIzNiwxMiBAQCBpZ3RfbWFpbgogewogCWlndF9za2lw X29uX3NpbXVsYXRpb24oKTsKIAorCWlndF9maXh0dXJlIHsKKwkJaW50IGZkID0gZHJtX29wZW5f ZHJpdmVyKERSSVZFUl9JTlRFTCk7CisJCWlndF9yZXF1aXJlKGdlbV9hdmFpbGFibGVfZmVuY2Vz KGZkKSA+IDApOyAvKiBHVFQgbWFwcGluZyBhdmFpbGFibGUgKi8KKwkJY2xvc2UoZmQpOworCX0K KwogCWlndF9zdWJ0ZXN0KCJiby13cml0ZS12ZXJpZnktbm9uZSIpCiAJCWlndF9hc3NlcnQocnVu X3Rlc3QoMCwgYm9fd3JpdGVfdmVyaWZ5LCBJOTE1X1RJTElOR19OT05FLCA4MCkgPT0gMCk7CiAK ZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2d0dF9jcHVfdGxiLmMgYi90ZXN0cy9pOTE1L2dl bV9ndHRfY3B1X3RsYi5jCmluZGV4IGNmM2M1NDNkLi4wMjY4MmEwZCAxMDA2NDQKLS0tIGEvdGVz dHMvaTkxNS9nZW1fZ3R0X2NwdV90bGIuYworKysgYi90ZXN0cy9pOTE1L2dlbV9ndHRfY3B1X3Rs Yi5jCkBAIC03OSw2ICs3OSw3IEBAIGlndF9zaW1wbGVfbWFpbgogCWlndF9za2lwX29uX3NpbXVs YXRpb24oKTsKIAogCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CisJZ2VtX3Jl cXVpcmVfbW1hcF9ndHQoZmQpOwogCiAJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgT0JKX1NJWkUp OwogCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9ndHRfaG9nLmMgYi90ZXN0cy9pOTE1L2dl bV9ndHRfaG9nLmMKaW5kZXggY2E3MzA2NDkuLmIyZWVhNjc5IDEwMDY0NAotLS0gYS90ZXN0cy9p OTE1L2dlbV9ndHRfaG9nLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fZ3R0X2hvZy5jCkBAIC0xNjEs NiArMTYxLDcgQEAgaWd0X3NpbXBsZV9tYWluCiAJLyogY2hlY2sgZm9yIGFuIGludGVsIGdwdSBi ZWZvcmUgZ29pbnQgbnV0cy4gKi8KIAlpbnQgZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lO VEVMKTsKIAlpZ3RfcmVxdWlyZV9nZW0oZmQpOworCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsK IAljbG9zZShmZCk7CiAKIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CmRpZmYgLS1naXQgYS90 ZXN0cy9pOTE1L2dlbV9ndHRfc3BlZWQuYyBiL3Rlc3RzL2k5MTUvZ2VtX2d0dF9zcGVlZC5jCmlu ZGV4IDNkNzI2YzRlLi5mMTc3ODM3MCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZ3R0X3Nw ZWVkLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fZ3R0X3NwZWVkLmMKQEAgLTExNiw2ICsxMTYsNyBA QCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJYnVmID0gbWFsbG9jKHNpemUpOwog CW1lbXNldChidWYsIDAsIHNpemUpOwogCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRF TCk7CisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOwogCiAJaGFuZGxlID0gZ2VtX2NyZWF0ZShm ZCwgc2l6ZSk7CiAJaWd0X2Fzc2VydChoYW5kbGUpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9n ZW1fbGFyZ2VvYmplY3QuYyBiL3Rlc3RzL2k5MTUvZ2VtX2xhcmdlb2JqZWN0LmMKaW5kZXggNTE4 Mzk2ZmEuLmEyZDQ3ZWRjIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9sYXJnZW9iamVjdC5j CisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2xhcmdlb2JqZWN0LmMKQEAgLTg0LDYgKzg0LDggQEAgaWd0 X3NpbXBsZV9tYWluCiAKIAlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwogCisJ Z2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJdGVzdF9sYXJnZV9vYmplY3QoZmQpOwogCiAJ ZnJlZShkYXRhKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX21hZHZpc2UuYyBiL3Rlc3Rz L2k5MTUvZ2VtX21hZHZpc2UuYwppbmRleCA3MjlhNGQzMy4uZjQyMjZhODQgMTAwNjQ0Ci0tLSBh L3Rlc3RzL2k5MTUvZ2VtX21hZHZpc2UuYworKysgYi90ZXN0cy9pOTE1L2dlbV9tYWR2aXNlLmMK QEAgLTYxLDYgKzYxLDggQEAgZG9udG5lZWRfYmVmb3JlX21tYXAodm9pZCkKIAl1aW50MzJfdCBo YW5kbGU7CiAJY2hhciAqcHRyOwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJaGFu ZGxlID0gZ2VtX2NyZWF0ZShmZCwgT0JKRUNUX1NJWkUpOwogCWdlbV9tYWR2aXNlKGZkLCBoYW5k bGUsIEk5MTVfTUFEVl9ET05UTkVFRCk7CiAJcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgaGFuZGxl LCBPQkpFQ1RfU0laRSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7CkBAIC04OSw2ICs5MSw4IEBA IGRvbnRuZWVkX2FmdGVyX21tYXAodm9pZCkKIAl1aW50MzJfdCBoYW5kbGU7CiAJY2hhciAqcHRy OwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJaGFuZGxlID0gZ2VtX2NyZWF0ZShm ZCwgT0JKRUNUX1NJWkUpOwogCXB0ciA9IGdlbV9tbWFwX19ndHQoZmQsIGhhbmRsZSwgT0JKRUNU X1NJWkUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOwogCWlndF9hc3NlcnQocHRyKTsKZGlmZiAt LWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX21tYXBfZ3R0LmMgYi90ZXN0cy9pOTE1L2dlbV9tbWFwX2d0 dC5jCmluZGV4IDYzOWRlMTkwLi5kZTRhNWJiNSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1f bW1hcF9ndHQuYworKysgYi90ZXN0cy9pOTE1L2dlbV9tbWFwX2d0dC5jCkBAIC04NzQsOCArODc0 LDEwIEBAIGlndF9tYWluCiAJaWYgKGlndF9ydW5faW5fc2ltdWxhdGlvbigpKQogCQlPQkpFQ1Rf U0laRSA9IDEgKiAxMDI0ICogMTAyNDsKIAotCWlndF9maXh0dXJlCisJaWd0X2ZpeHR1cmUgewog CQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOworCQlnZW1fcmVxdWlyZV9tbWFw X2d0dChmZCk7CisJfQogCiAJaWd0X3N1YnRlc3QoImJhZC1vYmplY3QiKSB7CiAJCXVpbnQzMl90 IHJlYWxfaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CmRpZmYgLS1naXQgYS90ZXN0cy9p OTE1L2dlbV9tbWFwX29mZnNldF9leGhhdXN0aW9uLmMgYi90ZXN0cy9pOTE1L2dlbV9tbWFwX29m ZnNldF9leGhhdXN0aW9uLmMKaW5kZXggOGM4ZTNmYTIuLjg2NDY0MjMxIDEwMDY0NAotLS0gYS90 ZXN0cy9pOTE1L2dlbV9tbWFwX29mZnNldF9leGhhdXN0aW9uLmMKKysrIGIvdGVzdHMvaTkxNS9n ZW1fbW1hcF9vZmZzZXRfZXhoYXVzdGlvbi5jCkBAIC04Miw2ICs4Miw4IEBAIGlndF9zaW1wbGVf bWFpbgogCiAJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKIAorCWdlbV9yZXF1 aXJlX21tYXBfZ3R0KGZkKTsKKwogCS8qIHdlIGhhdmUgMzJiaXQgb2YgYWRkcmVzcyBzcGFjZSwg c28gdHJ5IHRvIGZpdCBvbmUgTUIgbW9yZQogCSAqIHRoYW4gdGhhdC4gKi8KIAlmb3IgKGkgPSAw OyBpIDwgNDA5NiArIDE7IGkrKykKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX21tYXBfd2Mu YyBiL3Rlc3RzL2k5MTUvZ2VtX21tYXBfd2MuYwppbmRleCBlM2ZmYzVhZC4uM2MzMzAzNGMgMTAw NjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX21tYXBfd2MuYworKysgYi90ZXN0cy9pOTE1L2dlbV9t bWFwX3djLmMKQEAgLTMzNCw2ICszMzQsOCBAQCB0ZXN0X3dyaXRlX2d0dF9yZWFkX3djKGludCBm ZCkKIAl1aW50MzJfdCBoYW5kbGU7CiAJdWludDMyX3QgKnNyYywgKmRzdDsKIAorCWdlbV9yZXF1 aXJlX21tYXBfZ3R0KGZkKTsKKwogCWhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIE9CSkVDVF9TSVpF KTsKIAlzZXRfZG9tYWluKGZkLCBoYW5kbGUpOwogCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dl bV9wZXJzaXN0ZW50X3JlbG9jcy5jIGIvdGVzdHMvaTkxNS9nZW1fcGVyc2lzdGVudF9yZWxvY3Mu YwppbmRleCA0NTJmZTY4Ni4uMTcyNjZjNDggMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3Bl cnNpc3RlbnRfcmVsb2NzLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fcGVyc2lzdGVudF9yZWxvY3Mu YwpAQCAtMTk5LDYgKzE5OSw4IEBAIHN0YXRpYyB2b2lkIGRvX3Rlc3QoaW50IGZkLCBib29sIGZh dWx0aW5nX3JlbG9jKQogCXVpbnQzMl90IHRlc3Q7CiAJaW50IGksIHJlcGVhdDsKIAorCWdlbV9y ZXF1aXJlX21tYXBfZ3R0KGZkKTsKKwogCWlmIChmYXVsdGluZ19yZWxvYykKIAkJaWd0X2Rpc2Fi bGVfcHJlZmF1bHQoKTsKIApkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fcHdyaXRlX3ByZWFk LmMgYi90ZXN0cy9pOTE1L2dlbV9wd3JpdGVfcHJlYWQuYwppbmRleCBmOTFmYzdjNC4uNDNiMzk4 N2EgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3B3cml0ZV9wcmVhZC5jCisrKyBiL3Rlc3Rz L2k5MTUvZ2VtX3B3cml0ZV9wcmVhZC5jCkBAIC0xODIsNiArMTgyLDggQEAgc3RhdGljIHZvaWQg dGVzdF9hc19ndHRfbW1hcChpbnQgZmQsIHVpbnQzMl90IHNyYywgdWludDMyX3QgZHN0LCBpbnQg bGVuKQogCWludCBpOwogCUJVSUxEX0VYRUM7CiAKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7 CisKIAlzcmNfcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgc3JjLCBPQkpFQ1RfU0laRSwgUFJPVF9X UklURSk7CiAJZHN0X3B0ciA9IGdlbV9tbWFwX19ndHQoZmQsIGRzdCwgT0JKRUNUX1NJWkUsIFBS T1RfUkVBRCk7CiAKQEAgLTMwOSw2ICszMTEsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJCWZvciAoY291bnQgPSAxOyBjb3VudCA8PSAxPDwxNzsgY291bnQgPDw9IDEpIHsK IAkJCXN0cnVjdCB0aW1ldmFsIHN0YXJ0LCBlbmQ7CiAKKwkJCWdlbV9yZXF1aXJlX21tYXBfZ3R0 KGZkKTsKKwogCQkJZ2V0dGltZW9mZGF5KCZzdGFydCwgTlVMTCk7CiAJCQlhc19ndHRfbW1hcChm ZCwgc3JjLCBkc3QsIHRtcCwgb2JqZWN0X3NpemUsIGNvdW50KTsKIAkJCWdldHRpbWVvZmRheSgm ZW5kLCBOVUxMKTsKQEAgLTM4Nyw2ICszOTEsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJCWZvciAoY291bnQgPSAxOyBjb3VudCA8PSAxPDwxNzsgY291bnQgPDw9IDEpIHsK IAkJCXN0cnVjdCB0aW1ldmFsIHN0YXJ0LCBlbmQ7CiAKKwkJCWdlbV9yZXF1aXJlX21tYXBfZ3R0 KGZkKTsKKwogCQkJZ2V0dGltZW9mZGF5KCZzdGFydCwgTlVMTCk7CiAJCQlhc19ndHRfbW1hcChm ZCwgc3JjLCBkc3QsIHRtcCwgb2JqZWN0X3NpemUsIGNvdW50KTsKIAkJCWdldHRpbWVvZmRheSgm ZW5kLCBOVUxMKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3JlbG9jX3ZzX2dwdS5jIGIv dGVzdHMvaTkxNS9nZW1fcmVsb2NfdnNfZ3B1LmMKaW5kZXggZDQyMWU0MzQuLmUxNDc1YTFmIDEw MDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9yZWxvY192c19ncHUuYworKysgYi90ZXN0cy9pOTE1 L2dlbV9yZWxvY192c19ncHUuYwpAQCAtMTU5LDE3ICsxNTksMTcgQEAgc3RhdGljIHZvaWQgcmVs b2NfYW5kX2VtaXQoaW50IGZkLCBkcm1faW50ZWxfYm8gKnRhcmdldF9ibywgYm9vbCBmYXVsdGlu Z19yZWxvYykKIAkgKi8KIAlyZWxvY1swXS5wcmVzdW1lZF9vZmZzZXQgPSAtMTsKIAotCWhhbmRs ZV9yZWxvY3MgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKLQlnZW1fd3JpdGUoZmQsIGhhbmRsZV9y ZWxvY3MsIDAsIHJlbG9jLCBzaXplb2YocmVsb2MpKTsKLQlndHRfcmVsb2NzID0gZ2VtX21tYXBf X2d0dChmZCwgaGFuZGxlX3JlbG9jcywgNDA5NiwKLQkJCQkgICBQUk9UX1JFQUQgfCBQUk9UX1dS SVRFKTsKLQogCWV4ZWNbMV0uaGFuZGxlID0gc3BlY2lhbF9iby0+aGFuZGxlOwogCWV4ZWNbMV0u cmVsb2NhdGlvbl9jb3VudCA9IDE7CiAJLyogQSBuZXdseSBtbWFwIGd0dCBibyB3aWxsIGZhdWx0 IG9uIGZpcnN0IGFjY2Vzcy4gKi8KLQlpZiAoZmF1bHRpbmdfcmVsb2MpCisJaWYgKGZhdWx0aW5n X3JlbG9jKSB7CisJCWhhbmRsZV9yZWxvY3MgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKKwkJZ2Vt X3dyaXRlKGZkLCBoYW5kbGVfcmVsb2NzLCAwLCByZWxvYywgc2l6ZW9mKHJlbG9jKSk7CisJCWd0 dF9yZWxvY3MgPSBnZW1fbW1hcF9fZ3R0KGZkLCBoYW5kbGVfcmVsb2NzLCA0MDk2LAorCQkJCQkJ UFJPVF9SRUFEIHwgUFJPVF9XUklURSk7CisKIAkJZXhlY1sxXS5yZWxvY3NfcHRyID0gdG9fdXNl cl9wb2ludGVyKGd0dF9yZWxvY3MpOwotCWVsc2UKKwl9IGVsc2UKIAkJZXhlY1sxXS5yZWxvY3Nf cHRyID0gdG9fdXNlcl9wb2ludGVyKHJlbG9jKTsKIAogCWV4ZWNidWYuYnVmZmVyc19wdHIgPSB0 b191c2VyX3BvaW50ZXIoZXhlYyk7CkBAIC0xODAsNyArMTgwLDggQEAgc3RhdGljIHZvaWQgcmVs b2NfYW5kX2VtaXQoaW50IGZkLCBkcm1faW50ZWxfYm8gKnRhcmdldF9ibywgYm9vbCBmYXVsdGlu Z19yZWxvYykKIAogCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7CiAKLQlnZW1fY2xvc2UoZmQs IGhhbmRsZV9yZWxvY3MpOworCWlmIChmYXVsdGluZ19yZWxvYykKKwkJZ2VtX2Nsb3NlKGZkLCBo YW5kbGVfcmVsb2NzKTsKIH0KIAogc3RhdGljIGlndF9oYW5nX3Qgbm9faGFuZyhpbnQgZmQpCkBA IC0yMDEsOCArMjAyLDEwIEBAIHN0YXRpYyB2b2lkIGRvX3Rlc3QoaW50IGZkLCBib29sIGZhdWx0 aW5nX3JlbG9jLAogCXVpbnQzMl90IHRlc3Q7CiAJaW50IGk7CiAKLQlpZiAoZmF1bHRpbmdfcmVs b2MpCisJaWYgKGZhdWx0aW5nX3JlbG9jKSB7CisJCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsK IAkJaWd0X2Rpc2FibGVfcHJlZmF1bHQoKTsKKwl9CiAKIAlhY3Rfc2l6ZSA9IDIwNDg7CiAJZHVt bXlfYm8gPSBkcm1faW50ZWxfYm9fYWxsb2NfdGlsZWQoYnVmbWdyLCAidGlsZWQgZHVtbXlfYm8i LCBhY3Rfc2l6ZSwgYWN0X3NpemUsCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9yZW5kZXJf Y29weS5jIGIvdGVzdHMvaTkxNS9nZW1fcmVuZGVyX2NvcHkuYwppbmRleCA4ZDYyYTBmNC4uNTc1 N2M1NDcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3JlbmRlcl9jb3B5LmMKKysrIGIvdGVz dHMvaTkxNS9nZW1fcmVuZGVyX2NvcHkuYwpAQCAtNTcyLDYgKzU3Miw4IEBAIHN0YXRpYyB2b2lk IHRlc3QoZGF0YV90ICpkYXRhLCB1aW50MzJfdCB0aWxpbmcsIHVpbnQ2NF90IGNjc19tb2RpZmll cikKIAlpbnQgb3B0X2R1bXBfYXViID0gaWd0X2F1Yl9kdW1wX2VuYWJsZWQoKTsKIAlpbnQgbnVt X3NyYyA9IEFSUkFZX1NJWkUoc3JjKTsKIAorCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGRhdGEtPmRy bV9mZCk7CisKIAkvKiBubyBZZiBiZWZvcmUgZ2VuOSAqLwogCWlmIChpbnRlbF9nZW4oZGF0YS0+ ZGV2aWQpIDwgOSkKIAkJbnVtX3NyYy0tOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fc2V0 X3RpbGluZ192c19ndHQuYyBiL3Rlc3RzL2k5MTUvZ2VtX3NldF90aWxpbmdfdnNfZ3R0LmMKaW5k ZXggMjYxMWVjNTUuLjIxMGQ1MzU4IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9zZXRfdGls aW5nX3ZzX2d0dC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3NldF90aWxpbmdfdnNfZ3R0LmMKQEAg LTYwLDYgKzYwLDggQEAgaWd0X3NpbXBsZV9tYWluCiAKIAlmZCA9IGRybV9vcGVuX2RyaXZlcihE UklWRVJfSU5URUwpOwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJaWYgKElTX0dF TjIoaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpKQogCQl0aWxlX2hlaWdodCA9IDE2OwogCWVsc2UK ZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3NldF90aWxpbmdfdnNfcHdyaXRlLmMgYi90ZXN0 cy9pOTE1L2dlbV9zZXRfdGlsaW5nX3ZzX3B3cml0ZS5jCmluZGV4IGYwMTI2YjY0Li5kODJlMjBi NCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fc2V0X3RpbGluZ192c19wd3JpdGUuYworKysg Yi90ZXN0cy9pOTE1L2dlbV9zZXRfdGlsaW5nX3ZzX3B3cml0ZS5jCkBAIC01OCw2ICs1OCw4IEBA IGlndF9zaW1wbGVfbWFpbgogCiAJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsK IAorCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKKwogCWZvciAoaSA9IDA7IGkgPCBPQkpFQ1Rf U0laRS80OyBpKyspCiAJCWRhdGFbaV0gPSBpOwogCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dl bV9zaHJpbmsuYyBiL3Rlc3RzL2k5MTUvZ2VtX3Nocmluay5jCmluZGV4IGY3MWExZmNiLi5lOTdl MDk4MSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fc2hyaW5rLmMKKysrIGIvdGVzdHMvaTkx NS9nZW1fc2hyaW5rLmMKQEAgLTM5Niw2ICszOTYsOCBAQCBpZ3RfbWFpbgogCXVpbnQ2NF90IGFs bG9jX3NpemUgPSAwOwogCWludCBudW1fcHJvY2Vzc2VzID0gMDsKIAorCWJvb2wgaGFzX2d0dCA9 IGZhbHNlOworCiAJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwogCiAJaWd0X2ZpeHR1cmUgewpA QCAtNDI3LDYgKzQyOSw4IEBAIGlndF9tYWluCiAJCQllbmdpbmVzW25lbmdpbmUrK10gPSBlbmdp bmU7CiAJCWlndF9yZXF1aXJlKG5lbmdpbmUpOwogCisJCWhhc19ndHQgPSBnZW1fbW1hcF9faGFz X2d0dChmZCk7CisKIAkJY2xvc2UoZmQpOwogCX0KIApAQCAtNDM1LDkgKzQzOSwxMyBAQCBpZ3Rf bWFpbgogCiAJZm9yKGNvbnN0IHN0cnVjdCB0ZXN0ICp0ID0gdGVzdHM7IHQtPm5hbWU7IHQrKykg ewogCQlmb3IoY29uc3Qgc3RydWN0IG1vZGUgKm0gPSBtb2RlczsgbS0+c3VmZml4OyBtKyspIHsK LQkJCWlndF9zdWJ0ZXN0X2YoIiVzJXMiLCB0LT5uYW1lLCBtLT5zdWZmaXgpCi0JCQkJcnVuX3Rl c3QobnVtX3Byb2Nlc3NlcywgYWxsb2Nfc2l6ZSwKLQkJCQkJIHQtPmZ1bmMsIG0tPmZsYWdzKTsK KwkJCWlndF9zdWJ0ZXN0X2YoIiVzJXMiLCB0LT5uYW1lLCBtLT5zdWZmaXgpIHsKKwkJCQkJaWYg KHQtPmZ1bmMgPT0gbW1hcF9ndHQpCisJCQkJCQlpZ3RfcmVxdWlyZShoYXNfZ3R0KTsKKworCQkJ CQlydW5fdGVzdChudW1fcHJvY2Vzc2VzLCBhbGxvY19zaXplLAorCQkJCQkJIHQtPmZ1bmMsIG0t PmZsYWdzKTsKKwkJCX0KIAkJfQogCX0KIH0KZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3N0 b3JlZHdfbG9vcC5jIGIvdGVzdHMvaTkxNS9nZW1fc3RvcmVkd19sb29wLmMKaW5kZXggYjAwNTU1 ZTAuLmQxNmExYTZiIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9zdG9yZWR3X2xvb3AuYwor KysgYi90ZXN0cy9pOTE1L2dlbV9zdG9yZWR3X2xvb3AuYwpAQCAtNDksNiArNDksMTIgQEAgc3Rh dGljIGludCBkZXZpZDsKIAogc3RhdGljIHVuc2lnbmVkIGNvaGVyZW50X2RvbWFpbjsKIAorc3Rh dGljIGJvb2wKK3VzZXNfY29oZXJlbnRfZ3R0KGludCBmZCkKK3sKKwlyZXR1cm4gKCFnZW1faGFz X2xsYyhmZCkgfHwgZ2VtX21tYXBfX2hhc193YyhmZCkpOworfQorCiBzdGF0aWMgdm9pZCAqCiBt bWFwX2NvaGVyZW50KGludCBmZCwgdWludDMyX3QgaGFuZGxlLCBpbnQgc2l6ZSkKIHsKQEAgLTE2 NCw2ICsxNzAsOSBAQCBjaGVja190ZXN0X3JlcXVpcmVtZW50cyhpbnQgZmQsIGludCByaW5naWQp CiB7CiAJZ2VtX3JlcXVpcmVfcmluZyhmZCwgcmluZ2lkKTsKIAlpZ3RfcmVxdWlyZShnZW1fY2Fu X3N0b3JlX2R3b3JkKGZkLCByaW5naWQpKTsKKworCWlmICh1c2VzX2NvaGVyZW50X2d0dChmZCkp CisJCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKIH0KIAogaWd0X21haW4KZGlmZiAtLWdpdCBh L3Rlc3RzL2k5MTUvZ2VtX3N0cmVhbWluZ193cml0ZXMuYyBiL3Rlc3RzL2k5MTUvZ2VtX3N0cmVh bWluZ193cml0ZXMuYwppbmRleCBlODNkNjlkZS4uMTU5Y2I3YTYgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L2k5MTUvZ2VtX3N0cmVhbWluZ193cml0ZXMuYworKysgYi90ZXN0cy9pOTE1L2dlbV9zdHJlYW1p bmdfd3JpdGVzLmMKQEAgLTQ4LDYgKzQ4LDggQEAKIAogI2RlZmluZSBMT0NBTF9JOTE1X0VYRUNf SEFORExFX0xVVCAoMTw8MTIpCiAKKyNkZWZpbmUgTkVFRFNfR1RUKG1vZGUpIChtb2RlID09IDEp CisKIElHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IG9mIHN0cmVhbWluZyB3cml0ZXMgaW50byBh Y3RpdmUgR1BVIHNvdXJjZXMiKTsKIAogI2RlZmluZSBTUkMgMApAQCAtNzUsNiArNzcsOSBAQCBz dGF0aWMgdm9pZCB0ZXN0X3N0cmVhbWluZyhpbnQgZmQsIGludCBtb2RlLCBpbnQgc3luYykKIAl9 ICpiYXRjaDsKIAlpbnQgaSwgbjsKIAorCWlmIChORUVEU19HVFQobW9kZSkpCisJCWdlbV9yZXF1 aXJlX21tYXBfZ3R0KGZkKTsKKwogCW1lbXNldChleGVjLCAwLCBzaXplb2YoZXhlYykpOwogCWV4 ZWNbU1JDXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCBPQkpFQ1RfU0laRSk7CiAJZXhlY1tEU1Rd LmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIE9CSkVDVF9TSVpFKTsKQEAgLTI0NSw2ICsyNTAsOSBA QCBzdGF0aWMgdm9pZCB0ZXN0X2JhdGNoKGludCBmZCwgaW50IG1vZGUsIGludCByZXZlcnNlKQog CXVpbnQzMl90ICpiYXNlOwogCXVpbnQzMl90IG9mZnNldDsKIAorCWlmIChORUVEU19HVFQobW9k ZSkpCisJCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKKwogCW1lbXNldChleGVjLCAwLCBzaXpl b2YoZXhlYykpOwogCWV4ZWNbRFNUXS5oYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCBPQkpFQ1RfU0la RSk7CiAJZXhlY1tTUkNdLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIE9CSkVDVF9TSVpFKTsKQEAg LTM4OSwxNCArMzk3LDE4IEBAIGlndF9tYWluCiAKIAlpZ3Rfc3VidGVzdCgiYmF0Y2gtY3B1IikK IAkJdGVzdF9iYXRjaChmZCwgMCwgMCk7Ci0JaWd0X3N1YnRlc3QoImJhdGNoLWd0dCIpCisJaWd0 X3N1YnRlc3QoImJhdGNoLWd0dCIpIHsKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOwogCQl0 ZXN0X2JhdGNoKGZkLCAxLCAwKTsKKwl9CiAJaWd0X3N1YnRlc3QoImJhdGNoLXdjIikKIAkJdGVz dF9iYXRjaChmZCwgMiwgMCk7CiAJaWd0X3N1YnRlc3QoImJhdGNoLXJldmVyc2UtY3B1IikKIAkJ dGVzdF9iYXRjaChmZCwgMCwgMSk7Ci0JaWd0X3N1YnRlc3QoImJhdGNoLXJldmVyc2UtZ3R0IikK KwlpZ3Rfc3VidGVzdCgiYmF0Y2gtcmV2ZXJzZS1ndHQiKSB7CisJCWdlbV9yZXF1aXJlX21tYXBf Z3R0KGZkKTsKIAkJdGVzdF9iYXRjaChmZCwgMSwgMSk7CisJfQogCWlndF9zdWJ0ZXN0KCJiYXRj aC1yZXZlcnNlLXdjIikKIAkJdGVzdF9iYXRjaChmZCwgMiwgMSk7CiAKZGlmZiAtLWdpdCBhL3Rl c3RzL2k5MTUvZ2VtX3RpbGVkX2ZlbmNlX2JsaXRzLmMgYi90ZXN0cy9pOTE1L2dlbV90aWxlZF9m ZW5jZV9ibGl0cy5jCmluZGV4IGFhY2Q0MmI3Li4yNDk0NTZlOCAxMDA2NDQKLS0tIGEvdGVzdHMv aTkxNS9nZW1fdGlsZWRfZmVuY2VfYmxpdHMuYworKysgYi90ZXN0cy9pOTE1L2dlbV90aWxlZF9m ZW5jZV9ibGl0cy5jCkBAIC0yMTMsNiArMjEzLDcgQEAgaWd0X21haW4KIAlpZ3RfZml4dHVyZSB7 CiAJCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CiAJCWlndF9yZXF1aXJlX2dl bShmZCk7CisJCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKIAl9CiAKIAlpZ3Rfc3VidGVzdCgi YmFzaWMiKQpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fdGlsZWRfcHJlYWRfYmFzaWMuYyBi L3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFkX2Jhc2ljLmMKaW5kZXggMWFjOWVjY2QuLmI1YTRl MzQ4IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV90aWxlZF9wcmVhZF9iYXNpYy5jCisrKyBi L3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFkX2Jhc2ljLmMKQEAgLTEyNCw2ICsxMjQsNyBAQCBp Z3Rfc2ltcGxlX21haW4KIAl1aW50MzJfdCBkZXZpZDsKIAogCWZkID0gZHJtX29wZW5fZHJpdmVy KERSSVZFUl9JTlRFTCk7CisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOwogCiAJaGFuZGxlID0g Y3JlYXRlX2JvKGZkKTsKIAlpZ3RfcmVxdWlyZShnZW1fZ2V0X3RpbGluZyhmZCwgaGFuZGxlLCAm dGlsaW5nLCAmc3dpenpsZSkpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fdGlsZWRfcHJl YWRfcHdyaXRlLmMgYi90ZXN0cy9pOTE1L2dlbV90aWxlZF9wcmVhZF9wd3JpdGUuYwppbmRleCAw OTg4YTRlOC4uMGMwY2RlN2YgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFk X3B3cml0ZS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFkX3B3cml0ZS5jCkBAIC0x MTEsOCArMTExLDEwIEBAIGlndF9zaW1wbGVfbWFpbgogCXVpbnQzMl90IHRpbGluZywgc3dpenps ZTsKIAlpbnQgY291bnQ7CiAJaW50IGZkOwotCQorCiAJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJ VkVSX0lOVEVMKTsKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CisKIAljb3VudCA9IFNMT1df UVVJQ0soaW50ZWxfZ2V0X3RvdGFsX3JhbV9tYigpICogOSAvIDEwLCA4KSA7CiAKIAlmb3IgKGlu dCBpID0gMDsgaSA8IGNvdW50LzI7IGkrKykgewpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1f dGlsZWRfc3dhcHBpbmcuYyBiL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3N3YXBwaW5nLmMKaW5kZXgg ZGRmMmE3NDguLjI5NzgzYWJhIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV90aWxlZF9zd2Fw cGluZy5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3N3YXBwaW5nLmMKQEAgLTE3NSw2ICsx NzUsOCBAQCBpZ3RfbWFpbgogCiAJCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7 CiAKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJCWludGVsX3B1cmdlX3ZtX2NhY2hl cyhmZCk7CiAJCWNoZWNrX21lbW9yeV9sYXlvdXQoZmQpOwogCmRpZmYgLS1naXQgYS90ZXN0cy9p OTE1L2dlbV90aWxlZF93Yi5jIGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfd2IuYwppbmRleCBiN2Yz NTJmYy4uNjFhYTE2NzUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3diLmMKKysr IGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfd2IuYwpAQCAtMTQwLDYgKzE0MCw4IEBAIGlndF9zaW1w bGVfbWFpbgogCiAJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKIAorCWdlbV9y ZXF1aXJlX21tYXBfZ3R0KGZkKTsKKwogCWhhbmRsZSA9IGNyZWF0ZV9ibyhmZCk7CiAJZ2V0X3Rp bGluZyhmZCwgaGFuZGxlLCAmdGlsaW5nLCAmc3dpenpsZSk7CiAKZGlmZiAtLWdpdCBhL3Rlc3Rz L2k5MTUvZ2VtX3RpbGVkX3djLmMgYi90ZXN0cy9pOTE1L2dlbV90aWxlZF93Yy5jCmluZGV4IDg0 NWVjMjI4Li44NmU5YmY0NiAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fdGlsZWRfd2MuYwor KysgYi90ZXN0cy9pOTE1L2dlbV90aWxlZF93Yy5jCkBAIC0xMTMsNiArMTEzLDcgQEAgaWd0X3Np bXBsZV9tYWluCiAJdWludDMyX3QgaGFuZGxlOwogCiAJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJ VkVSX0lOVEVMKTsKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CiAJZ2VtX3JlcXVpcmVfbW1h cF93YyhmZCk7CiAKIAloYW5kbGUgPSBjcmVhdGVfYm8oZmQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMv aTkxNS9nZW1fdGlsaW5nX21heF9zdHJpZGUuYyBiL3Rlc3RzL2k5MTUvZ2VtX3RpbGluZ19tYXhf c3RyaWRlLmMKaW5kZXggYTZmOTdhOTEuLmI1ZGMwNTNkIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1 L2dlbV90aWxpbmdfbWF4X3N0cmlkZS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3RpbGluZ19tYXhf c3RyaWRlLmMKQEAgLTcwLDggKzcwLDkgQEAgaWd0X3NpbXBsZV9tYWluCiAKIAlmZCA9IGRybV9v cGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwogCi0JZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2Rldmlk KGZkKTsKKwlnZW1fcmVxdWlyZV9tbWFwX3djKGZkKTsKIAorCWRldmlkID0gaW50ZWxfZ2V0X2Ry bV9kZXZpZChmZCk7CiAJaWYgKGludGVsX2dlbihkZXZpZCkgPj0gNykKIAkJc3RyaWRlID0gMjU2 ICogMTAyNDsKIAllbHNlIGlmIChpbnRlbF9nZW4oZGV2aWQpID49IDQpCmRpZmYgLS1naXQgYS90 ZXN0cy9pOTE1L2dlbV91c2VycHRyX2JsaXRzLmMgYi90ZXN0cy9pOTE1L2dlbV91c2VycHRyX2Js aXRzLmMKaW5kZXggOGY4ZGRmNDMuLjk5NjJlNTM5IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dl bV91c2VycHRyX2JsaXRzLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fdXNlcnB0cl9ibGl0cy5jCkBA IC01NTQsNiArNTU0LDggQEAgc3RhdGljIGludCB0ZXN0X2ludmFsaWRfZ3R0X21hcHBpbmcoaW50 IGZkKQogCXVpbnQzMl90IGhhbmRsZTsKIAljaGFyICpndHQsICptYXA7CiAKKwlnZW1fcmVxdWly ZV9tbWFwX2d0dChmZCk7CisKIAkvKiBBbm9ueW1vdXMgbWFwcGluZyB0byBmaW5kIGEgaG9sZSAq LwogCW1hcCA9IG1tYXAoTlVMTCwgc2l6ZW9mKGxpbmVhcikgKyAyICogUEFHRV9TSVpFLAogCQkg ICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLApAQCAtNjE2LDggKzYxOCwxMCBAQCBzdGF0aWMgaW50 IHRlc3RfaW52YWxpZF9ndHRfbWFwcGluZyhpbnQgZmQpCiAjZGVmaW5lIFBFX0JVU1kgMHgyCiBz dGF0aWMgdm9pZCB0ZXN0X3Byb2Nlc3NfZXhpdChpbnQgZmQsIGludCBmbGFncykKIHsKLQlpZiAo ZmxhZ3MgJiBQRV9HVFRfTUFQKQorCWlmIChmbGFncyAmIFBFX0dUVF9NQVApIHsKIAkJaWd0X3Jl cXVpcmUoZ2VtX2hhc19sbGMoZmQpKTsKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCX0K IAogCWlndF9mb3JrKGNoaWxkLCAxKSB7CiAJCXVpbnQzMl90IGhhbmRsZTsKQEAgLTcwMCw2ICs3 MDQsOCBAQCBzdGF0aWMgaW50IHRlc3RfbWFwX2ZpeGVkX2ludmFsaWRhdGUoaW50IGZkLCB1aW50 MzJfdCBmbGFncykKIAl1aW50MzJfdCBoYW5kbGVbbnVtX2hhbmRsZXNdOwogCXVpbnQzMl90ICpw dHI7CiAKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CisKIAlwdHIgPSBtbWFwKE5VTEwsIHB0 cl9zaXplLAogCQkgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAogCQkgICBNQVBfU0hBUkVEIHwg TUFQX0FOT05ZTU9VUywKQEAgLTk0NCw2ICs5NTAsNyBAQCBzdGF0aWMgaW50IHRlc3RfZG1hYnVm KHZvaWQpCiAJaW50IHJldDsKIAogCWZkMSA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwp OworCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkMSk7CiAKIAloYW5kbGUgPSBjcmVhdGVfdXNlcnB0 cl9ibyhmZDEsIHNpemVvZihsaW5lYXIpKTsKIAltZW1zZXQoZ2V0X2hhbmRsZV9wdHIoaGFuZGxl KSwgY291bnRlciwgc2l6ZW9mKGxpbmVhcikpOwpAQCAtMTIxMiw2ICsxMjE5LDcgQEAgc3RhdGlj IHZvaWQgdGVzdF9yZWFkb25seV9tbWFwKGludCBpOTE1KQogCSAqLwogCiAJaWd0X3JlcXVpcmUo aWd0X3NldHVwX2NsZmx1c2goKSk7CisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoaTkxNSk7CiAKIAlz eiA9IDE2IDw8IDEyOwogCXBhZ2VzID0gbW1hcChOVUxMLCBzeiwgUFJPVF9XUklURSwgTUFQX0FO T04gfCBNQVBfUFJJVkFURSwgLTEsIDApOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9pOTE1X3Bt X3JwbS5jIGIvdGVzdHMvaTkxNS9pOTE1X3BtX3JwbS5jCmluZGV4IDE4YWRhZjZiLi45N2I1N2Nh MiAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9pOTE1X3BtX3JwbS5jCisrKyBiL3Rlc3RzL2k5MTUv aTkxNV9wbV9ycG0uYwpAQCAtMTAwNiw2ICsxMDA2LDcgQEAgc3RhdGljIHZvaWQgZ2VtX21tYXBf c3VidGVzdChib29sIGd0dF9tbWFwKQogCWhhbmRsZSA9IGdlbV9jcmVhdGUoZHJtX2ZkLCBidWZf c2l6ZSk7CiAKIAlpZiAoZ3R0X21tYXApIHsKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZHJtX2Zk KTsKIAkJZ2VtX2J1ZiA9IGdlbV9tbWFwX19ndHQoZHJtX2ZkLCBoYW5kbGUsIGJ1Zl9zaXplLAog CQkJCQlQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKIAl9CkBAIC0xMzY4LDYgKzEzNjksOCBAQCBz dGF0aWMgdm9pZCBnZW1fZXZpY3RfcHdyaXRlX3N1YnRlc3Qodm9pZCkKIAl1bnNpZ25lZCBpbnQg bnVtX3RyYXNoX2JvcywgbjsKIAl1aW50MzJfdCBidWY7CiAKKwlnZW1fcmVxdWlyZV9tbWFwX2d0 dChkcm1fZmQpOworCiAJbnVtX3RyYXNoX2JvcyA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXpl KGRybV9mZCkgLyAoMTAyNCoxMDI0KSArIDE7CiAJdHJhc2hfYm9zID0gbWFsbG9jKG51bV90cmFz aF9ib3MgKiBzaXplb2YoKnRyYXNoX2JvcykpOwogCWlndF9hc3NlcnQodHJhc2hfYm9zKTsKQEAg LTE1MzIsNiArMTUzNSw3IEBAIHN0YXRpYyB2b2lkIGN1cnNvcl9zdWJ0ZXN0KGJvb2wgZHBtcykK IAogCWRpc2FibGVfYWxsX3NjcmVlbnNfYW5kX3dhaXQoJm1zX2RhdGEpOwogCisJZ2VtX3JlcXVp cmVfbW1hcF9ndHQoZHJtX2ZkKTsKIAlpZ3RfcmVxdWlyZShkZWZhdWx0X21vZGVfcGFyYW1zKTsK IAljcnRjX2lkID0gZGVmYXVsdF9tb2RlX3BhcmFtcy0+Y3J0Y19pZDsKIApAQCAtMTY0OSw2ICsx NjUzLDcgQEAgc3RhdGljIHZvaWQgdGVzdF9vbmVfcGxhbmUoYm9vbCBkcG1zLCB1aW50MzJfdCBw bGFuZV9pZCwKIAlpbnQzMl90IGNydGNfeCA9IDAsIGNydGNfeSA9IDA7CiAJdWludDY0X3QgdGls aW5nOwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZHJtX2ZkKTsKIAlkaXNhYmxlX2FsbF9zY3Jl ZW5zX2FuZF93YWl0KCZtc19kYXRhKTsKIAogCWNydGNfaWQgPSBkZWZhdWx0X21vZGVfcGFyYW1z LT5jcnRjX2lkOwpAQCAtMTc5Niw2ICsxODAxLDggQEAgc3RhdGljIHZvaWQgcG1fdGVzdF90aWxp bmcodm9pZCkKIAkvKiBkZWZhdWx0IHN0cmlkZSB2YWx1ZSAqLwogCXVpbnQzMl90IHN0cmlkZSA9 IDUxMjsKIAorCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGRybV9mZCk7CisKIAkvKiBjYWxjdWxhdGUg aG93IG1hbnkgb2JqZWN0cyB3ZSBjYW4gbWFwICovCiAJZm9yIChpID0gMSA8PCBvZmZfYml0OyBp IDw9IGd0dF9vYmpfbWF4X3NpemU7IGkgPDw9IDEsIG1heF9nZW1fb2JqcysrKQogCQk7CkBAIC0x ODUwLDYgKzE4NTcsNyBAQCBzdGF0aWMgdm9pZCBwbV90ZXN0X2NhY2hpbmcodm9pZCkKIAkJSTkx NV9DQUNISU5HX0RJU1BMQVksICAgICAgICAgICAvKiBlRFJBTSBjYWNoaW5nICovCiAJfTsKIAor CWdlbV9yZXF1aXJlX21tYXBfZ3R0KGRybV9mZCk7CiAJZGlzYWJsZV9hbGxfc2NyZWVucygmbXNf ZGF0YSk7CiAKIAloYW5kbGUgPSBnZW1fY3JlYXRlKGRybV9mZCwgZ3R0X29ial9tYXhfc2l6ZSk7 CkBAIC0xODg3LDYgKzE4OTUsNyBAQCBzdGF0aWMgdm9pZCBmZW5jZXNfc3VidGVzdChib29sIGRw bXMpCiAKIAlkaXNhYmxlX2FsbF9zY3JlZW5zX2FuZF93YWl0KCZtc19kYXRhKTsKIAorCWlndF9y ZXF1aXJlKGdlbV9hdmFpbGFibGVfZmVuY2VzKGRybV9mZCkpOwogCWlndF9yZXF1aXJlKGRlZmF1 bHRfbW9kZV9wYXJhbXMpOwogCXBhcmFtcy5jcnRjX2lkID0gZGVmYXVsdF9tb2RlX3BhcmFtcy0+ Y3J0Y19pZDsKIAlwYXJhbXMuY29ubmVjdG9yX2lkID0gZGVmYXVsdF9tb2RlX3BhcmFtcy0+Y29u bmVjdG9yX2lkOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9pOTE1X3N1c3BlbmQuYyBiL3Rlc3Rz L2k5MTUvaTkxNV9zdXNwZW5kLmMKaW5kZXggMTdjNjhjYzEuLjA5Y2Y1NTQyIDEwMDY0NAotLS0g YS90ZXN0cy9pOTE1L2k5MTVfc3VzcGVuZC5jCisrKyBiL3Rlc3RzL2k5MTUvaTkxNV9zdXNwZW5k LmMKQEAgLTUwLDYgKzUwLDggQEAgdGVzdF9mZW5jZV9yZXN0b3JlKGludCBmZCwgYm9vbCB0aWxl ZDJ1bnRpbGVkLCBib29sIGhpYmVybmF0ZSkKIAl1aW50MzJfdCAqcHRyMSwgKnB0cjIsICpwdHJf dGlsZWQ7CiAJaW50IGk7CiAKKwlpZ3RfcmVxdWlyZShnZW1fYXZhaWxhYmxlX2ZlbmNlcyhmZCkp OworCiAJLyogV2Ugd2FsbCB0aGUgdGlsZWQgb2JqZWN0IHdpdGggdW50aWxlZCBjYW5hcnkgb2Jq ZWN0cyB0byBtYWtlIHN1cmUKIAkgKiB0aGF0IHdlIGRldGVjdCB0aWxlIGxlYWtpbmcgaW4gYm90 aCBkaXJlY3Rpb25zLiAqLwogCWhhbmRsZTEgPSBnZW1fY3JlYXRlKGZkLCBPQkpFQ1RfU0laRSk7 CmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZHJhd19jcmMuYyBiL3Rlc3RzL2ttc19kcmF3X2NyYy5j CmluZGV4IGVhMTRkYjlhLi4xYTJlMmQ0ZiAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2RyYXdfY3Jj LmMKKysrIGIvdGVzdHMva21zX2RyYXdfY3JjLmMKQEAgLTMyOSwxMyArMzI5LDE3IEBAIGlndF9t YWluCiAJCWlndF9zdWJ0ZXN0X2YoImRyYXctbWV0aG9kLSVzLSVzLSVzIiwKIAkJCSAgICAgIGZv cm1hdF9zdHIoZm9ybWF0X2lkeCksCiAJCQkgICAgICBpZ3RfZHJhd19nZXRfbWV0aG9kX25hbWUo bWV0aG9kKSwKLQkJCSAgICAgIHRpbGluZ19zdHIodGlsaW5nX2lkeCkpCisJCQkgICAgICB0aWxp bmdfc3RyKHRpbGluZ19pZHgpKSB7CisJCQlnZW1fcmVxdWlyZV9tbWFwX2d0dChkcm1fZmQpOwog CQkJZHJhd19tZXRob2Rfc3VidGVzdChtZXRob2QsIGZvcm1hdF9pZHgsCiAJCQkJCSAgICB0aWxp bmdzW3RpbGluZ19pZHhdKTsKKwkJfQogCX0gfSB9CiAKLQlpZ3Rfc3VidGVzdCgiZmlsbC1mYiIp CisJaWd0X3N1YnRlc3QoImZpbGwtZmIiKSB7CisJCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGRybV9m ZCk7CiAJCWZpbGxfZmJfc3VidGVzdCgpOworCX0KIAogCWlndF9maXh0dXJlCiAJCXRlYXJkb3du X2Vudmlyb25tZW50KCk7CmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZmVuY2VfcGluX2xlYWsuYyBi L3Rlc3RzL2ttc19mZW5jZV9waW5fbGVhay5jCmluZGV4IDYyYzUyYjYyLi5hYzBmNjA1YyAxMDA2 NDQKLS0tIGEvdGVzdHMva21zX2ZlbmNlX3Bpbl9sZWFrLmMKKysrIGIvdGVzdHMva21zX2ZlbmNl X3Bpbl9sZWFrLmMKQEAgLTIwMiw2ICsyMDIsOCBAQCBpZ3Rfc2ltcGxlX21haW4KIAogCWRhdGEu ZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5URUwpOwogCisJZ2VtX3Jl cXVpcmVfbW1hcF9ndHQoZGF0YS5kcm1fZmQpOworCiAJZGF0YS5kZXZpZCA9IGludGVsX2dldF9k cm1fZGV2aWQoZGF0YS5kcm1fZmQpOwogCiAJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgp OwpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgYi90ZXN0cy9r bXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwppbmRleCA0ZDE1Y2UxYy4uNzgyOTk0MzggMTAwNjQ0 Ci0tLSBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCisrKyBiL3Rlc3RzL2ttc19m cm9udGJ1ZmZlcl90cmFja2luZy5jCkBAIC0xNzU4LDYgKzE3NTgsOSBAQCBzdGF0aWMgdm9pZCBj aGVja190ZXN0X3JlcXVpcmVtZW50cyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQogCiAJaWYg KG9wdC5vbmx5X3BpcGVzICE9IFBJUEVfQ09VTlQpCiAJCWlndF9yZXF1aXJlKHQtPnBpcGVzID09 IG9wdC5vbmx5X3BpcGVzKTsKKworCWlmICh0LT5tZXRob2QgPT0gSUdUX0RSQVdfTU1BUF9HVFQp CisJCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGRybS5mZCk7CiB9CiAKIHN0YXRpYyB2b2lkIHNldF9j cnRjX2Zicyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQpkaWZmIC0tZ2l0IGEvdGVzdHMva21z X3Bzci5jIGIvdGVzdHMva21zX3Bzci5jCmluZGV4IDNlMTZhNmJmLi42NmY0ZmNkOCAxMDA2NDQK LS0tIGEvdGVzdHMva21zX3Bzci5jCisrKyBiL3Rlc3RzL2ttc19wc3IuYwpAQCAtNDEsNiArNDEs OCBAQCBlbnVtIG9wZXJhdGlvbnMgewogCVBMQU5FX09OT0ZGLAogfTsKIAorI2RlZmluZSBuZWVk c19ndHQob3ApIGlmIChvcCA9PSBNTUFQX0dUVCkge2dlbV9yZXF1aXJlX21tYXBfZ3R0KGRhdGEu ZHJtX2ZkKTt9CisKIHN0YXRpYyBjb25zdCBjaGFyICpvcF9zdHIoZW51bSBvcGVyYXRpb25zIG9w KQogewogCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbmFtZVtdID0gewpAQCAtNDc0LDYgKzQ3 Niw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQlpZ3Rfc3VidGVzdF9m KCIlc3ByaW1hcnlfJXMiLAogCQkJCSAgICAgIGFwcGVuZF9zdWJ0ZXN0X25hbWVbZGF0YS5vcF9w c3JfbW9kZV0sCiAJCQkJICAgICAgb3Bfc3RyKG9wKSkgeworCQkJCW5lZWRzX2d0dChvcCk7CiAJ CQkJZGF0YS5vcCA9IG9wOwogCQkJCWRhdGEudGVzdF9wbGFuZV9pZCA9IERSTV9QTEFORV9UWVBF X1BSSU1BUlk7CiAJCQkJdGVzdF9zZXR1cCgmZGF0YSk7CkBAIC00ODYsNiArNDg5LDcgQEAgaW50 IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCWlndF9zdWJ0ZXN0X2YoIiVzc3ByaXRl XyVzIiwKIAkJCQkgICAgICBhcHBlbmRfc3VidGVzdF9uYW1lW2RhdGEub3BfcHNyX21vZGVdLAog CQkJCSAgICAgIG9wX3N0cihvcCkpIHsKKwkJCQluZWVkc19ndHQob3ApOwogCQkJCWRhdGEub3Ag PSBvcDsKIAkJCQlkYXRhLnRlc3RfcGxhbmVfaWQgPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZOwog CQkJCXRlc3Rfc2V0dXAoJmRhdGEpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvcHJpbWVfbW1hcC5jIGIv dGVzdHMvcHJpbWVfbW1hcC5jCmluZGV4IDA2YTY2Y2FiLi4zM2Y5N2I4NCAxMDA2NDQKLS0tIGEv dGVzdHMvcHJpbWVfbW1hcC5jCisrKyBiL3Rlc3RzL3ByaW1lX21tYXAuYwpAQCAtNzksNiArNzks OCBAQCB0ZXN0X2NvcnJlY3Qodm9pZCkKIAljaGFyICpwdHIxLCAqcHRyMjsKIAl1aW50MzJfdCBo YW5kbGU7CiAKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CisKIAloYW5kbGUgPSBnZW1fY3Jl YXRlKGZkLCBCT19TSVpFKTsKIAlmaWxsX2JvKGhhbmRsZSwgQk9fU0laRSk7CiAKZGlmZiAtLWdp dCBhL3Rlc3RzL3ByaW1lX21tYXBfY29oZXJlbmN5LmMgYi90ZXN0cy9wcmltZV9tbWFwX2NvaGVy ZW5jeS5jCmluZGV4IDA0YjE1ZGRkLi45YzM0NGRmOSAxMDA2NDQKLS0tIGEvdGVzdHMvcHJpbWVf bW1hcF9jb2hlcmVuY3kuYworKysgYi90ZXN0cy9wcmltZV9tbWFwX2NvaGVyZW5jeS5jCkBAIC0y OTUsNiArMjk1LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCSAqIHJlcHJv ZHVjaW5nIGJvaWxzIGRvd24gdG8gdHJpYWwgYW5kIGVycm9yIHRvIGhpdCBkaWZmZXJlbnQgc2Nl bmFyaW9zLgogCSAqIFRPRE86IFdlIG1heSB3YW50IHRvIGltcHJvdmUgdGVzdHMgYSBiaXQgYnkg cGlja2luZyByYW5kb20gc3VicmFuZ2VzLiAqLwogCWlndF9zdWJ0ZXN0KCJyZWFkIikgeworCQln ZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CiAJCWlndF91bnRpbF90aW1lb3V0KDUpIHsKIAkJCWlu dCBzdGFsZSA9IHRlc3RfcmVhZF9mbHVzaCgpOwogCQkJaWd0X2ZhaWxfb25fZihzdGFsZSwKZGlm ZiAtLWdpdCBhL3Rlc3RzL3ByaW1lX3ZnZW0uYyBiL3Rlc3RzL3ByaW1lX3ZnZW0uYwppbmRleCA2 MGJiOTUxYy4uMGM2MGQ1NjkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3ByaW1lX3ZnZW0uYworKysgYi90 ZXN0cy9wcmltZV92Z2VtLmMKQEAgLTEyNSw2ICsxMjUsOCBAQCBzdGF0aWMgdm9pZCB0ZXN0X2Zl bmNlX21tYXAoaW50IGk5MTUsIGludCB2Z2VtKQogCWludCBkbWFidWYsIGk7CiAJaW50IG1hc3Rl clsyXSwgc2xhdmVbMl07CiAKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChpOTE1KTsKKwogCWlndF9h c3NlcnQocGlwZShtYXN0ZXIpID09IDApOwogCWlndF9hc3NlcnQocGlwZShzbGF2ZSkgPT0gMCk7 CiAKQEAgLTIwNyw2ICsyMDksOCBAQCBzdGF0aWMgdm9pZCB0ZXN0X2d0dChpbnQgdmdlbSwgaW50 IGk5MTUpCiAJdWludDMyX3QgKnB0cjsKIAlpbnQgZG1hYnVmLCBpOwogCisJZ2VtX3JlcXVpcmVf bW1hcF9ndHQoaTkxNSk7CisKIAlzY3JhdGNoLndpZHRoID0gMTAyNDsKIAlzY3JhdGNoLmhlaWdo dCA9IDEwMjQ7CiAJc2NyYXRjaC5icHAgPSAzMjsKQEAgLTI4Miw2ICsyODYsNyBAQCBzdGF0aWMg dm9pZCB0ZXN0X2d0dF9pbnRlcmxlYXZlZChpbnQgdmdlbSwgaW50IGk5MTUpCiAJdWludDMyX3Qg KnB0ciwgKmd0dDsKIAlpbnQgZG1hYnVmLCBpOwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoaTkx NSk7CiAJaWd0X3JlcXVpcmUoaXNfY29oZXJlbnQoaTkxNSkpOwogCiAJc2NyYXRjaC53aWR0aCA9 IDEwMjQ7Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dg==