From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v4 2/2] xen: use SYMBOL when required Date: Mon, 12 Nov 2018 15:06:17 -0800 Message-ID: <1542063977-24906-2-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gMLHg-0003qC-UL for xen-devel@lists.xenproject.org; Mon, 12 Nov 2018 23:06:20 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: andrew.cooper3@citrix.com, julien.grall@arm.com, sstabellini@kernel.org, JBeulich@suse.com, Stefano Stabellini List-Id: xen-devel@lists.xenproject.org VXNlIFNZTUJPTCBpbiBjYXNlcyBvZiBjb21wYXJpc29ucyBhbmQgc3VidHJhY3Rpb25zIG9mOgoK X3N0YXJ0LCBfZW5kLCBfX2luaXRfYmVnaW4sIF9faW5pdF9lbmQsICBfXzJNX3RleHRfZW5kLApf XzJNX3JvZGF0YV9zdGFydCwgX18yTV9yb2RhdGFfZW5kLCBfXzJNX2luaXRfc3RhcnQsX18yTV9p bml0X2VuZCwKX18yTV9yd2RhdGFfc3RhcnQsIF9fMk1fcndkYXRhX2VuZCwgX3N0ZXh0LCBfZXRl eHQsIF9zcm9kYXRhLCBfZXJvZGF0YSwKX19lbmRfdnBjaV9hcnJheSwgX19zdGFydF92cGNpX2Fy cmF5LCBfc2luaXR0ZXh0LCBfZWluaXR0ZXh0LApfc3RleHRlbnRyeSwgX2V0ZXh0ZW50cnksIF9f c3RhcnRfYnVnX2ZyYW1lcywgX19zdG9wX2J1Z19mcmFtZXNfMCwKX19zdG9wX2J1Z19mcmFtZXNf MSwgX19zdG9wX2J1Z19mcmFtZXNfMixfX3N0b3BfYnVnX2ZyYW1lc18zLApfX25vdGVfZ251X2J1 aWxkX2lkX3N0YXJ0LCBfX25vdGVfZ251X2J1aWxkX2lkX2VuZCwgX19zdGFydF9fX2V4X3RhYmxl LApfX3N0b3BfX19leF90YWJsZSwgX19zdGFydF9fX3ByZV9leF90YWJsZSwgX19zdG9wX19fcHJl X2V4X3RhYmxlLApfX2xvY2tfcHJvZmlsZV9zdGFydCwgX19sb2NrX3Byb2ZpbGVfZW5kLCBfX3Bh cmFtX3N0YXJ0LApfX3BhcmFtX2VuZCwgX19zZXR1cF9zdGFydCwgX19zZXR1cF9lbmQsIF9faW5p dGNhbGxfc3RhcnQsCl9faW5pdGNhbGxfZW5kLCBfX3ByZXNtcF9pbml0Y2FsbF9lbmQsIF9fdHJh bXBvbGluZV9yZWxfc3RhcnQsCl9fdHJhbXBvbGluZV9yZWxfc3RvcCwgX190cmFtcG9saW5lX3Nl Z19zdGFydCwgX190cmFtcG9saW5lX3NlZ19zdG9wCl9fYWx0X2luc3RydWN0aW9ucywgX19hbHRf aW5zdHJ1Y3Rpb25zX2VuZCwgX19jdG9yc19zdGFydCwgX19jdG9yc19lbmQsCl9fZW5kX3NjaGVk dWxlcnNfYXJyYXksIF9fc3RhcnRfc2NoZWR1bGVyc19hcnJheSwgX19ic3Nfc3RhcnQsCl9fYnNz X2VuZCwgX19wZXJfY3B1X3N0YXJ0LCBfX3Blcl9jcHVfZGF0YV9lbmQsIF9zcGxhdGZvcm0sIF9l cGxhdGZvcm0sCl9zZGV2aWNlLCBfZWRldmljZSwgX2FzZGV2aWNlLCBfYWVkZXZpY2UsIF9fcHJv Y19pbmZvX3N0YXJ0LApfX3Byb2NfaW5mb19lbmQsIF9zZHRiCgoKYXMgYnkgdGhlIEMgc3RhbmRh cmQgWzFdLgoKTTNDTTogUnVsZS0xOC4yOiBTdWJ0cmFjdGlvbiBiZXR3ZWVuIHBvaW50ZXJzIHNo YWxsIG9ubHkgYmUgYXBwbGllZCB0bwpwb2ludGVycyB0aGF0IGFkZHJlc3MgZWxlbWVudHMgb2Yg dGhlIHNhbWUgYXJyYXkKClsxXSBodHRwczovL3dpa2kuc2VpLmNtdS5lZHUvY29uZmx1ZW5jZS9k aXNwbGF5L2MvQVJSMzYtQy4rRG8rbm90K3N1YnRyYWN0K29yK2NvbXBhcmUrdHdvK3BvaW50ZXJz K3RoYXQrZG8rbm90K3JlZmVyK3RvK3RoZStzYW1lK2FycmF5CgpRQVZlcmlmeTogMjc2MQpTaWdu ZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+CkNDOiBK QmV1bGljaEBzdXNlLmNvbQpDQzogYW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbQotLS0KQ2hhbmdl cyBpbiB2NDoKLSBvbmx5IHVzZSBTWU1CT0wgd2hlcmUgbmVjZXNzYXJ5LCBub3QgImV2ZXJ5d2hl cmUiOiBjb21wYXJpc29ucyBhbmQKICBzdWJ0cmFjdGlvbnMKLSBpbXByb3ZlIGNvbW1pdCBtZXNz YWdlCi0gcmVtb3ZlIHNvbWUgdW5uZWNlc3NhcnkgY2FzdHMKLSBmaXggc29tZSBzdGlsbCB1bnNh ZmUgY2FzdHMKLSBleHRlbmQgY2hlY2tzIHRvIGFsbCBzeW1ib2xzIGluIHhlbi9hcmNoL3g4Ni94 ZW4ubGRzLlMgYW5kCiAgeGVuL2FyY2gvYXJtL3hlbi5sZHMuUwoKQ2hhbmdlcyBpbiB2MzoKLSBp bXByb3ZlIGNvbW1pdCBtZXNzYWdlCi0gbm8gaGFyZCB0YWJzCi0gcmVuYW1lIF9fc3ltYm9sIHRv IFNZTUJPTAotIGZpeCBfX2VuZF92cGNpX2FycmF5IGFuZCBfX3N0YXJ0X3ZwY2lfYXJyYXkKLSBh dm9pZCBhbGwgY29tcGFyaXNvbnMgYmV0d2VlbiBwb2ludGVyczogaW5jbHVkaW5nICh2b2lkICop IGNhc3RlZAogIHJldHVybnMgZnJvbSBTWU1CT0woKQotIHJlbW92ZSB1c2VsZXNzIGNhc3RzIHRv ICh1bnNpZ25lZCBsb25nKQoKQ2hhbmdlcyBpbiB2MjoKLSBjYXN0IHJldHVybiBvZiBTWU1CT0wg dG8gY2hhciogd2hlbiByZXF1aXJlZAotIGRlZmluZSBfX3BhIGFzIHVuc2lnbmVkIGxvbmcgaW4g aXNfa2VybmVsKiBmdW5jdGlvbnMKLS0tCiB4ZW4vYXJjaC9hcm0vYWx0ZXJuYXRpdmUuYyAgICAg ICAgfCAgNyArKysrLS0tCiB4ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMgICAgfCAgMyAr Ky0KIHhlbi9hcmNoL2FybS9hcm02NC9saXZlcGF0Y2guYyAgICB8ICAzICsrLQogeGVuL2FyY2gv YXJtL2RldmljZS5jICAgICAgICAgICAgIHwgIDYgKysrLS0tCiB4ZW4vYXJjaC9hcm0vbGl2ZXBh dGNoLmMgICAgICAgICAgfCAgNSArKystLQogeGVuL2FyY2gvYXJtL21tLmMgICAgICAgICAgICAg ICAgIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQogeGVuL2FyY2gvYXJtL3BlcmNwdS5jICAgICAg ICAgICAgIHwgIDggKysrKy0tLS0KIHhlbi9hcmNoL2FybS9wbGF0Zm9ybS5jICAgICAgICAgICB8 ICA2ICsrKystLQogeGVuL2FyY2gvYXJtL3NldHVwLmMgICAgICAgICAgICAgIHwgIDggKysrKyst LS0KIHhlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94 ODYvZWZpL2VmaS1ib290LmggICAgICAgfCAgNCArKy0tCiB4ZW4vYXJjaC94ODYvcGVyY3B1LmMg ICAgICAgICAgICAgfCAgOCArKysrLS0tLQogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAg ICAgIHwgMTEgKysrKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9zbXBib290LmMgICAgICAgICAgICB8 ICAyICstCiB4ZW4vY29tbW9uL2tlcm5lbC5jICAgICAgICAgICAgICAgfCAgOCArKysrKystLQog eGVuL2NvbW1vbi9saWIuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9jb21tb24vc2No ZWR1bGUuYyAgICAgICAgICAgICB8ICAyICstCiB4ZW4vY29tbW9uL3NwaW5sb2NrLmMgICAgICAg ICAgICAgfCAgNCArKystCiB4ZW4vY29tbW9uL3ZlcnNpb24uYyAgICAgICAgICAgICAgfCAgNiAr KystLS0KIHhlbi9jb21tb24vdmlydHVhbF9yZWdpb24uYyAgICAgICB8ICAyICstCiB4ZW4vZHJp dmVycy92cGNpL3ZwY2kuYyAgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLWFybS9n cmFudF90YWJsZS5oIHwgIDMgKystCiB4ZW4vaW5jbHVkZS9hc20tYXJtL21tLmggICAgICAgICAg fCAgMiArLQogeGVuL2luY2x1ZGUveGVuL2tlcm5lbC5oICAgICAgICAgIHwgMjQgKysrKysrKysr KysrLS0tLS0tLS0tLS0tCiAyNCBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA2NCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vYWx0ZXJuYXRpdmUuYyBiL3hl bi9hcmNoL2FybS9hbHRlcm5hdGl2ZS5jCmluZGV4IDUyZWQ3ZWQuLmI3NDBjZmUgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL2FybS9hbHRlcm5hdGl2ZS5jCisrKyBiL3hlbi9hcmNoL2FybS9hbHRlcm5h dGl2ZS5jCkBAIC0xMzEsNyArMTMxLDcgQEAgc3RhdGljIGludCBfX2FwcGx5X2FsdGVybmF0aXZl cyhjb25zdCBzdHJ1Y3QgYWx0X3JlZ2lvbiAqcmVnaW9uLAogICAgIHByaW50ayhYRU5MT0dfSU5G TyAiYWx0ZXJuYXRpdmVzOiBQYXRjaGluZyB3aXRoIGFsdCB0YWJsZSAlcCAtPiAlcFxuIiwKICAg ICAgICAgICAgcmVnaW9uLT5iZWdpbiwgcmVnaW9uLT5lbmQpOwogCi0gICAgZm9yICggYWx0ID0g cmVnaW9uLT5iZWdpbjsgYWx0IDwgcmVnaW9uLT5lbmQ7IGFsdCsrICkKKyAgICBmb3IgKCBhbHQg PSByZWdpb24tPmJlZ2luOyBTWU1CT0woYWx0KSA8IFNZTUJPTChyZWdpb24tPmVuZCk7IGFsdCsr ICkKICAgICB7CiAgICAgICAgIGludCBucl9pbnN0OwogCkBAIC0xODgsNyArMTg4LDcgQEAgc3Rh dGljIGludCBfX2FwcGx5X2FsdGVybmF0aXZlc19tdWx0aV9zdG9wKHZvaWQgKnVudXNlZCkKICAg ICAgICAgaW50IHJldDsKICAgICAgICAgc3RydWN0IGFsdF9yZWdpb24gcmVnaW9uOwogICAgICAg ICBtZm5fdCB4ZW5fbWZuID0gdmlydF90b19tZm4oX3N0YXJ0KTsKLSAgICAgICAgcGFkZHJfdCB4 ZW5fc2l6ZSA9IF9lbmQgLSBfc3RhcnQ7CisgICAgICAgIHBhZGRyX3QgeGVuX3NpemUgPSBTWU1C T0woX2VuZCkgLSBTWU1CT0woX3N0YXJ0KTsKICAgICAgICAgdW5zaWduZWQgaW50IHhlbl9vcmRl ciA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKHhlbl9zaXplKTsKICAgICAgICAgdm9pZCAqeGVubWFw OwogCkBAIC0yMDYsNyArMjA2LDggQEAgc3RhdGljIGludCBfX2FwcGx5X2FsdGVybmF0aXZlc19t dWx0aV9zdG9wKHZvaWQgKnVudXNlZCkKICAgICAgICAgcmVnaW9uLmJlZ2luID0gX19hbHRfaW5z dHJ1Y3Rpb25zOwogICAgICAgICByZWdpb24uZW5kID0gX19hbHRfaW5zdHJ1Y3Rpb25zX2VuZDsK IAotICAgICAgICByZXQgPSBfX2FwcGx5X2FsdGVybmF0aXZlcygmcmVnaW9uLCB4ZW5tYXAgLSAo dm9pZCAqKV9zdGFydCk7CisgICAgICAgIHJldCA9IF9fYXBwbHlfYWx0ZXJuYXRpdmVzKCZyZWdp b24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKXhl bm1hcCAtIFNZTUJPTChfc3RhcnQpKTsKICAgICAgICAgLyogVGhlIHBhdGNoaW5nIGlzIG5vdCBl eHBlY3RlZCB0byBmYWlsIGR1cmluZyBib290LiAqLwogICAgICAgICBCVUdfT04ocmV0ICE9IDAp OwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMgYi94ZW4vYXJj aC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMKaW5kZXggNDEzNzhhNS4uODNmNDQzZiAxMDA2NDQKLS0t IGEveGVuL2FyY2gvYXJtL2FybTMyL2xpdmVwYXRjaC5jCisrKyBiL3hlbi9hcmNoL2FybS9hcm0z Mi9saXZlcGF0Y2guYwpAQCAtNTYsNyArNTYsOCBAQCB2b2lkIGFyY2hfbGl2ZXBhdGNoX2FwcGx5 KHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykKICAgICBlbHNlCiAgICAgICAgIGluc24gPSAw eGUxYTAwMDAwOyAvKiBtb3YgcjAsIHIwICovCiAKLSAgICBuZXdfcHRyID0gZnVuYy0+b2xkX2Fk ZHIgLSAodm9pZCAqKV9zdGFydCArIHZtYXBfb2ZfeGVuX3RleHQ7CisgICAgbmV3X3B0ciA9ICh1 aW50MzJfdCAqKSgodW5zaWduZWQgbG9uZylmdW5jLT5vbGRfYWRkciAtIFNZTUJPTChfc3RhcnQp ICsKKyAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpdm1hcF9vZl94ZW5fdGV4dCk7CiAgICAg bGVuID0gbGVuIC8gc2l6ZW9mKHVpbnQzMl90KTsKIAogICAgIC8qIFBBVENIISAqLwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL2FybTY0L2xpdmVwYXRjaC5jIGIveGVuL2FyY2gvYXJtL2FybTY0 L2xpdmVwYXRjaC5jCmluZGV4IDIyNDdiOTIuLmQ3YTFkMDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L2FybS9hcm02NC9saXZlcGF0Y2guYworKysgYi94ZW4vYXJjaC9hcm0vYXJtNjQvbGl2ZXBhdGNo LmMKQEAgLTQzLDcgKzQzLDggQEAgdm9pZCBhcmNoX2xpdmVwYXRjaF9hcHBseShzdHJ1Y3QgbGl2 ZXBhdGNoX2Z1bmMgKmZ1bmMpCiAgICAgLyogVmVyaWZpZWQgaW4gbGl2ZXBhdGNoX3ZlcmlmeV9k aXN0YW5jZS4gKi8KICAgICBBU1NFUlQoaW5zbiAhPSBBQVJDSDY0X0JSRUFLX0ZBVUxUKTsKIAot ICAgIG5ld19wdHIgPSBmdW5jLT5vbGRfYWRkciAtICh2b2lkICopX3N0YXJ0ICsgdm1hcF9vZl94 ZW5fdGV4dDsKKyAgICBuZXdfcHRyID0gKHVpbnQzMl90ICopKCh1bnNpZ25lZCBsb25nKWZ1bmMt Pm9sZF9hZGRyIC0gU1lNQk9MKF9zdGFydCkgKworICAgICAgICAgICAgICAodW5zaWduZWQgbG9u Zyl2bWFwX29mX3hlbl90ZXh0KTsKICAgICBsZW4gPSBsZW4gLyBzaXplb2YodWludDMyX3QpOwog CiAgICAgLyogUEFUQ0ghICovCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZGV2aWNlLmMgYi94 ZW4vYXJjaC9hcm0vZGV2aWNlLmMKaW5kZXggYTAwNzJjMS4uNjIwNDg1OCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL2RldmljZS5jCisrKyBiL3hlbi9hcmNoL2FybS9kZXZpY2UuYwpAQCAtMzQs NyArMzQsNyBAQCBpbnQgX19pbml0IGRldmljZV9pbml0KHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAq ZGV2LCBlbnVtIGRldmljZV9jbGFzcyBjbGFzcywKICAgICBpZiAoICFkdF9kZXZpY2VfaXNfYXZh aWxhYmxlKGRldikgfHwgZHRfZGV2aWNlX2Zvcl9wYXNzdGhyb3VnaChkZXYpICkKICAgICAgICAg cmV0dXJuICAtRU5PREVWOwogCi0gICAgZm9yICggZGVzYyA9IF9zZGV2aWNlOyBkZXNjICE9IF9l ZGV2aWNlOyBkZXNjKysgKQorICAgIGZvciAoIGRlc2MgPSBfc2RldmljZTsgU1lNQk9MKGRlc2Mp ICE9IFNZTUJPTChfZWRldmljZSk7IGRlc2MrKyApCiAgICAgewogICAgICAgICBpZiAoIGRlc2Mt PmNsYXNzICE9IGNsYXNzICkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNTUsNyArNTUsNyBA QCBpbnQgX19pbml0IGFjcGlfZGV2aWNlX2luaXQoZW51bSBkZXZpY2VfY2xhc3MgY2xhc3MsIGNv bnN0IHZvaWQgKmRhdGEsIGludCBjbGFzcwogewogICAgIGNvbnN0IHN0cnVjdCBhY3BpX2Rldmlj ZV9kZXNjICpkZXNjOwogCi0gICAgZm9yICggZGVzYyA9IF9hc2RldmljZTsgZGVzYyAhPSBfYWVk ZXZpY2U7IGRlc2MrKyApCisgICAgZm9yICggZGVzYyA9IF9hc2RldmljZTsgU1lNQk9MKGRlc2Mp ICE9IFNZTUJPTChfYWVkZXZpY2UpOyBkZXNjKysgKQogICAgIHsKICAgICAgICAgaWYgKCAoIGRl c2MtPmNsYXNzICE9IGNsYXNzICkgfHwgKCBkZXNjLT5jbGFzc190eXBlICE9IGNsYXNzX3R5cGUg KSApCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTc0LDcgKzc0LDcgQEAgZW51bSBkZXZpY2Vf Y2xhc3MgZGV2aWNlX2dldF9jbGFzcyhjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmRldikK IAogICAgIEFTU0VSVChkZXYgIT0gTlVMTCk7CiAKLSAgICBmb3IgKCBkZXNjID0gX3NkZXZpY2U7 IGRlc2MgIT0gX2VkZXZpY2U7IGRlc2MrKyApCisgICAgZm9yICggZGVzYyA9IF9zZGV2aWNlOyBT WU1CT0woZGVzYykgIT0gU1lNQk9MKF9lZGV2aWNlKTsgZGVzYysrICkKICAgICB7CiAgICAgICAg IGlmICggZHRfbWF0Y2hfbm9kZShkZXNjLT5kdF9tYXRjaCwgZGV2KSApCiAgICAgICAgICAgICBy ZXR1cm4gZGVzYy0+Y2xhc3M7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmMg Yi94ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmMKaW5kZXggMjc5ZDUyYy4uMWJhYjIxZCAxMDA2NDQK LS0tIGEveGVuL2FyY2gvYXJtL2xpdmVwYXRjaC5jCisrKyBiL3hlbi9hcmNoL2FybS9saXZlcGF0 Y2guYwpAQCAtMjcsNyArMjcsNyBAQCBpbnQgYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSh2b2lkKQog ICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAogICAgIHRleHRfbWZuID0gdmlydF90b19tZm4oX3N0 YXJ0KTsKLSAgICB0ZXh0X29yZGVyID0gZ2V0X29yZGVyX2Zyb21fYnl0ZXMoX2VuZCAtIF9zdGFy dCk7CisgICAgdGV4dF9vcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKFNZTUJPTChfZW5kKSAt IFNZTUJPTChfc3RhcnQpKTsKIAogICAgIC8qCiAgICAgICogVGhlIHRleHQgc2VjdGlvbiBpcyBy ZWFkLW9ubHkuIFNvIHJlLW1hcCBYZW4gdG8gYmUgYWJsZSB0byBwYXRjaApAQCAtNzgsNyArNzgs OCBAQCB2b2lkIGFyY2hfbGl2ZXBhdGNoX3JldmVydChjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1 bmMgKmZ1bmMpCiAgICAgdWludDMyX3QgKm5ld19wdHI7CiAgICAgdW5zaWduZWQgaW50IGxlbjsK IAotICAgIG5ld19wdHIgPSBmdW5jLT5vbGRfYWRkciAtICh2b2lkICopX3N0YXJ0ICsgdm1hcF9v Zl94ZW5fdGV4dDsKKyAgICBuZXdfcHRyID0gKHVpbnQzMl90ICopKCh1bnNpZ25lZCBsb25nKWZ1 bmMtPm9sZF9hZGRyIC0gU1lNQk9MKF9zdGFydCkgKworICAgICAgICAgICAgICAodW5zaWduZWQg bG9uZyl2bWFwX29mX3hlbl90ZXh0KTsKIAogICAgIGxlbiA9IGxpdmVwYXRjaF9pbnNuX2xlbihm dW5jKTsKICAgICBtZW1jcHkobmV3X3B0ciwgZnVuYy0+b3BhcXVlLCBsZW4pOwpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gvYXJtL21tLmMgYi94ZW4vYXJjaC9hcm0vbW0uYwppbmRleCA3YTA2YTMzLi4w YmVhMDE2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vbW0uYworKysgYi94ZW4vYXJjaC9hcm0v bW0uYwpAQCAtNjIwLDcgKzYyMCw3IEBAIHZvaWQgX19pbml0IHNldHVwX3BhZ2V0YWJsZXModW5z aWduZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LCBwYWRkcl90IHhlbl9wYWRkcikKICAgICBpbnQg aTsKIAogICAgIC8qIENhbGN1bGF0ZSB2aXJ0LXRvLXBoeXMgb2Zmc2V0IGZvciB0aGUgbmV3IGxv Y2F0aW9uICovCi0gICAgcGh5c19vZmZzZXQgPSB4ZW5fcGFkZHIgLSAodW5zaWduZWQgbG9uZykg X3N0YXJ0OworICAgIHBoeXNfb2Zmc2V0ID0geGVuX3BhZGRyIC0gU1lNQk9MKF9zdGFydCk7CiAK ICNpZmRlZiBDT05GSUdfQVJNXzY0CiAgICAgcCA9ICh2b2lkICopIHhlbl9wZ3RhYmxlOwpAQCAt NjgxLDcgKzY4MSw3IEBAIHZvaWQgX19pbml0IHNldHVwX3BhZ2V0YWJsZXModW5zaWduZWQgbG9u ZyBib290X3BoeXNfb2Zmc2V0LCBwYWRkcl90IHhlbl9wYWRkcikKICAgICB0dGJyID0gKHVpbnRw dHJfdCkgY3B1MF9wZ3RhYmxlICsgcGh5c19vZmZzZXQ7CiAjZW5kaWYKIAotICAgIHJlbG9jYXRl X3hlbih0dGJyLCBfc3RhcnQsICh2b2lkKilkZXN0X3ZhLCBfZW5kIC0gX3N0YXJ0KTsKKyAgICBy ZWxvY2F0ZV94ZW4odHRiciwgX3N0YXJ0LCAodm9pZCopZGVzdF92YSwgU1lNQk9MKF9lbmQpIC0g U1lNQk9MKF9zdGFydCkpOwogCiAgICAgLyogQ2xlYXIgdGhlIGNvcHkgb2YgdGhlIGJvb3QgcGFn ZXRhYmxlcy4gRWFjaCBzZWNvbmRhcnkgQ1BVCiAgICAgICogcmVidWlsZHMgdGhlc2UgaXRzZWxm IChzZWUgaGVhZC5TKSAqLwpAQCAtMTA4OSw3ICsxMDg5LDcgQEAgaW50IG1vZGlmeV94ZW5fbWFw cGluZ3ModW5zaWduZWQgbG9uZyBzLCB1bnNpZ25lZCBsb25nIGUsIHVuc2lnbmVkIGludCBmbGFn cykKIH0KIAogZW51bSBtZyB7IG1nX2NsZWFyLCBtZ19ybywgbWdfcncsIG1nX3J4IH07Ci1zdGF0 aWMgdm9pZCBzZXRfcHRlX2ZsYWdzX29uX3JhbmdlKGNvbnN0IGNoYXIgKnAsIHVuc2lnbmVkIGxv bmcgbCwgZW51bSBtZyBtZykKK3N0YXRpYyB2b2lkIHNldF9wdGVfZmxhZ3Nfb25fcmFuZ2UoY29u c3QgdW5zaWduZWQgbG9uZyBwLCB1bnNpZ25lZCBsb25nIGwsIGVudW0gbWcgbWcpCiB7CiAgICAg bHBhZV90IHB0ZTsKICAgICBpbnQgaTsKQEAgLTExMDAsOCArMTEwMCw4IEBAIHN0YXRpYyB2b2lk IHNldF9wdGVfZmxhZ3Nfb25fcmFuZ2UoY29uc3QgY2hhciAqcCwgdW5zaWduZWQgbG9uZyBsLCBl bnVtIG1nIG1nKQogICAgIEFTU0VSVCghKCh1bnNpZ25lZCBsb25nKSBwICYgflBBR0VfTUFTSykp OwogICAgIEFTU0VSVCghKGwgJiB+UEFHRV9NQVNLKSk7CiAKLSAgICBmb3IgKCBpID0gKHAgLSBf c3RhcnQpIC8gUEFHRV9TSVpFOyAKLSAgICAgICAgICBpIDwgKHAgKyBsIC0gX3N0YXJ0KSAvIFBB R0VfU0laRTsgCisgICAgZm9yICggaSA9IChwIC0gU1lNQk9MKF9zdGFydCkpIC8gUEFHRV9TSVpF OyAKKyAgICAgICAgICBpIDwgKHAgKyBsIC0gU1lNQk9MKF9zdGFydCkpIC8gUEFHRV9TSVpFOyAK ICAgICAgICAgICBpKysgKQogICAgIHsKICAgICAgICAgcHRlID0geGVuX3hlbm1hcFtpXTsKQEAg LTExMzgsMTIgKzExMzgsMTIgQEAgc3RhdGljIHZvaWQgc2V0X3B0ZV9mbGFnc19vbl9yYW5nZShj b25zdCBjaGFyICpwLCB1bnNpZ25lZCBsb25nIGwsIGVudW0gbWcgbWcpCiB2b2lkIGZyZWVfaW5p dF9tZW1vcnkodm9pZCkKIHsKICAgICBwYWRkcl90IHBhID0gdmlydF90b19tYWRkcihfX2luaXRf YmVnaW4pOwotICAgIHVuc2lnbmVkIGxvbmcgbGVuID0gX19pbml0X2VuZCAtIF9faW5pdF9iZWdp bjsKKyAgICB1bnNpZ25lZCBsb25nIGxlbiA9IFNZTUJPTChfX2luaXRfZW5kKSAtIFNZTUJPTChf X2luaXRfYmVnaW4pOwogICAgIHVpbnQzMl90IGluc247CiAgICAgdW5zaWduZWQgaW50IGksIG5y ID0gbGVuIC8gc2l6ZW9mKGluc24pOwogICAgIHVpbnQzMl90ICpwOwogCi0gICAgc2V0X3B0ZV9m bGFnc19vbl9yYW5nZShfX2luaXRfYmVnaW4sIGxlbiwgbWdfcncpOworICAgIHNldF9wdGVfZmxh Z3Nfb25fcmFuZ2UoU1lNQk9MKF9faW5pdF9iZWdpbiksIGxlbiwgbWdfcncpOwogI2lmZGVmIENP TkZJR19BUk1fMzIKICAgICAvKiB1ZGYgaW5zdHJ1Y3Rpb24gaS5lIChzZWUgQTguOC4yNDcgaW4g QVJNIERESSAwNDA2Qy5jKSAqLwogICAgIGluc24gPSAweGU3ZjAwMGYwOwpAQCAtMTE1NCw5ICsx MTU0LDEwIEBAIHZvaWQgZnJlZV9pbml0X21lbW9yeSh2b2lkKQogICAgIGZvciAoIGkgPSAwOyBp IDwgbnI7IGkrKyApCiAgICAgICAgICoocCArIGkpID0gaW5zbjsKIAotICAgIHNldF9wdGVfZmxh Z3Nfb25fcmFuZ2UoX19pbml0X2JlZ2luLCBsZW4sIG1nX2NsZWFyKTsKKyAgICBzZXRfcHRlX2Zs YWdzX29uX3JhbmdlKFNZTUJPTChfX2luaXRfYmVnaW4pLCBsZW4sIG1nX2NsZWFyKTsKICAgICBp bml0X2RvbWhlYXBfcGFnZXMocGEsIHBhICsgbGVuKTsKLSAgICBwcmludGsoIkZyZWVkICVsZGtC IGluaXQgbWVtb3J5LlxuIiwgKGxvbmcpKF9faW5pdF9lbmQtX19pbml0X2JlZ2luKT4+MTApOwor ICAgIHByaW50aygiRnJlZWQgJWxka0IgaW5pdCBtZW1vcnkuXG4iLAorICAgICAgICAgICAobG9u ZykoU1lNQk9MKF9faW5pdF9lbmQpLVNZTUJPTChfX2luaXRfYmVnaW4pKT4+MTApOwogfQogCiB2 b2lkIGFyY2hfZHVtcF9zaGFyZWRfbWVtX2luZm8odm9pZCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L2FybS9wZXJjcHUuYyBiL3hlbi9hcmNoL2FybS9wZXJjcHUuYwppbmRleCAyNTQ0MmM0Li5kYWNl MTE4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vcGVyY3B1LmMKKysrIGIveGVuL2FyY2gvYXJt L3BlcmNwdS5jCkBAIC02LDcgKzYsNyBAQAogCiB1bnNpZ25lZCBsb25nIF9fcGVyX2NwdV9vZmZz ZXRbTlJfQ1BVU107CiAjZGVmaW5lIElOVkFMSURfUEVSQ1BVX0FSRUEgKC0obG9uZylfX3Blcl9j cHVfc3RhcnQpCi0jZGVmaW5lIFBFUkNQVV9PUkRFUiAoZ2V0X29yZGVyX2Zyb21fYnl0ZXMoX19w ZXJfY3B1X2RhdGFfZW5kLV9fcGVyX2NwdV9zdGFydCkpCisjZGVmaW5lIFBFUkNQVV9PUkRFUiAo Z2V0X29yZGVyX2Zyb21fYnl0ZXMoU1lNQk9MKF9fcGVyX2NwdV9kYXRhX2VuZCkgLSBTWU1CT0wo X19wZXJfY3B1X3N0YXJ0KSkpCiAKIHZvaWQgX19pbml0IHBlcmNwdV9pbml0X2FyZWFzKHZvaWQp CiB7CkBAIC0yMiw4ICsyMiw4IEBAIHN0YXRpYyBpbnQgaW5pdF9wZXJjcHVfYXJlYSh1bnNpZ25l ZCBpbnQgY3B1KQogICAgICAgICByZXR1cm4gLUVCVVNZOwogICAgIGlmICggKHAgPSBhbGxvY194 ZW5oZWFwX3BhZ2VzKFBFUkNQVV9PUkRFUiwgMCkpID09IE5VTEwgKQogICAgICAgICByZXR1cm4g LUVOT01FTTsKLSAgICBtZW1zZXQocCwgMCwgX19wZXJfY3B1X2RhdGFfZW5kIC0gX19wZXJfY3B1 X3N0YXJ0KTsKLSAgICBfX3Blcl9jcHVfb2Zmc2V0W2NwdV0gPSBwIC0gX19wZXJfY3B1X3N0YXJ0 OworICAgIG1lbXNldChwLCAwLCBTWU1CT0woX19wZXJfY3B1X2RhdGFfZW5kKSAtIFNZTUJPTChf X3Blcl9jcHVfc3RhcnQpKTsKKyAgICBfX3Blcl9jcHVfb2Zmc2V0W2NwdV0gPSAodW5zaWduZWQg bG9uZylwIC0gU1lNQk9MKF9fcGVyX2NwdV9zdGFydCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAg LTM3LDcgKzM3LDcgQEAgc3RhdGljIHZvaWQgX2ZyZWVfcGVyY3B1X2FyZWEoc3RydWN0IHJjdV9o ZWFkICpoZWFkKQogewogICAgIHN0cnVjdCBmcmVlX2luZm8gKmluZm8gPSBjb250YWluZXJfb2Yo aGVhZCwgc3RydWN0IGZyZWVfaW5mbywgcmN1KTsKICAgICB1bnNpZ25lZCBpbnQgY3B1ID0gaW5m by0+Y3B1OwotICAgIGNoYXIgKnAgPSBfX3Blcl9jcHVfc3RhcnQgKyBfX3Blcl9jcHVfb2Zmc2V0 W2NwdV07CisgICAgY2hhciAqcCA9IChjaGFyICopKFNZTUJPTChfX3Blcl9jcHVfc3RhcnQpICsg X19wZXJfY3B1X29mZnNldFtjcHVdKTsKICAgICBmcmVlX3hlbmhlYXBfcGFnZXMocCwgUEVSQ1BV X09SREVSKTsKICAgICBfX3Blcl9jcHVfb2Zmc2V0W2NwdV0gPSBJTlZBTElEX1BFUkNQVV9BUkVB OwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3BsYXRmb3JtLmMgYi94ZW4vYXJjaC9hcm0v cGxhdGZvcm0uYwppbmRleCA2OTg5ZTU4Li5lM2UwZGY2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9h cm0vcGxhdGZvcm0uYworKysgYi94ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYwpAQCAtNTEsMTQgKzUx LDE2IEBAIHZvaWQgX19pbml0IHBsYXRmb3JtX2luaXQodm9pZCkKICAgICBBU1NFUlQocGxhdGZv cm0gPT0gTlVMTCk7CiAKICAgICAvKiBMb29raW5nIGZvciB0aGUgcGxhdGZvcm0gZGVzY3JpcHRp b24gKi8KLSAgICBmb3IgKCBwbGF0Zm9ybSA9IF9zcGxhdGZvcm07IHBsYXRmb3JtICE9IF9lcGxh dGZvcm07IHBsYXRmb3JtKysgKQorICAgIGZvciAoIHBsYXRmb3JtID0gX3NwbGF0Zm9ybTsKKwkJ ICBTWU1CT0wocGxhdGZvcm0pICE9IFNZTUJPTChfZXBsYXRmb3JtKTsKKwkJICBwbGF0Zm9ybSsr ICkKICAgICB7CiAgICAgICAgIGlmICggcGxhdGZvcm1faXNfY29tcGF0aWJsZShwbGF0Zm9ybSkg KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgLyogV2UgZG9uJ3QgaGF2ZSBzcGVj aWZpYyBvcGVyYXRpb25zIGZvciB0aGlzIHBsYXRmb3JtICovCi0gICAgaWYgKCBwbGF0Zm9ybSA9 PSBfZXBsYXRmb3JtICkKKyAgICBpZiAoIFNZTUJPTChwbGF0Zm9ybSkgPT0gU1lNQk9MKF9lcGxh dGZvcm0pICkKICAgICB7CiAgICAgICAgIC8qIFRPRE86IGR1bXAgRFQgbWFjaGluZSBjb21wYXRp YmxlIG5vZGUgKi8KICAgICAgICAgcHJpbnRrKFhFTkxPR19JTkZPICJQbGF0Zm9ybTogR2VuZXJp YyBTeXN0ZW1cbiIpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3NldHVwLmMgYi94ZW4vYXJj aC9hcm0vc2V0dXAuYwppbmRleCA4MGYwMDI4Li43Y2IyMzJmIDEwMDY0NAotLS0gYS94ZW4vYXJj aC9hcm0vc2V0dXAuYworKysgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwpAQCAtMzk0LDcgKzM5NCw4 IEBAIHN0YXRpYyBwYWRkcl90IF9faW5pdCBnZXRfeGVuX3BhZGRyKHZvaWQpCiAgICAgcGFkZHJf dCBwYWRkciA9IDA7CiAgICAgaW50IGk7CiAKLSAgICBtaW5fc2l6ZSA9IChfZW5kIC0gX3N0YXJ0 ICsgKFhFTl9QQUREUl9BTElHTi0xKSkgJiB+KFhFTl9QQUREUl9BTElHTi0xKTsKKyAgICBtaW5f c2l6ZSA9IChTWU1CT0woX2VuZCkgLSBTWU1CT0woX3N0YXJ0KSArCisgICAgICAgICAgICAgICAg KFhFTl9QQUREUl9BTElHTi0xKSkgJiB+KFhFTl9QQUREUl9BTElHTi0xKTsKIAogICAgIC8qIEZp bmQgdGhlIGhpZ2hlc3QgYmFuayB3aXRoIGVub3VnaCBzcGFjZS4gKi8KICAgICBmb3IgKCBpID0g MDsgaSA8IG1pLT5ucl9iYW5rczsgaSsrICkKQEAgLTcyOCw4ICs3MjksOSBAQCB2b2lkIF9faW5p dCBzdGFydF94ZW4odW5zaWduZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LAogCiAgICAgLyogUmVn aXN0ZXIgWGVuJ3MgbG9hZCBhZGRyZXNzIGFzIGEgYm9vdCBtb2R1bGUuICovCiAgICAgeGVuX2Jv b3Rtb2R1bGUgPSBhZGRfYm9vdF9tb2R1bGUoQk9PVE1PRF9YRU4sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChwYWRkcl90KSh1aW50cHRyX3QpKF9zdGFydCArIGJvb3RfcGh5c19vZmZz ZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFkZHJfdCkodWludHB0cl90KShf ZW5kIC0gX3N0YXJ0ICsgMSksIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo cGFkZHJfdCkoU1lNQk9MKF9zdGFydCkgKyBib290X3BoeXNfb2Zmc2V0KSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHBhZGRyX3QpKFNZTUJPTChfZW5kKSAtCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBTWU1CT0woX3N0YXJ0KSArIDEpLCBOVUxMKTsKICAg ICBCVUdfT04oIXhlbl9ib290bW9kdWxlKTsKIAogICAgIHhlbl9wYWRkciA9IGdldF94ZW5fcGFk ZHIoKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jIGIveGVuL2FyY2gv eDg2L2FsdGVybmF0aXZlLmMKaW5kZXggYjhjODE5YS4uNTE5M2Y1MSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2FsdGVybmF0aXZlLmMKKysrIGIveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMK QEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIGluaXRfb3JfbGl2ZXBhdGNoIGFwcGx5X2FsdGVybmF0 aXZlcyhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwKICAgICAgKiBTbyBiZSBjYXJlZnVsIGlmIHlv dSB3YW50IHRvIGNoYW5nZSB0aGUgc2NhbiBvcmRlciB0byBhbnkgb3RoZXIKICAgICAgKiBvcmRl ci4KICAgICAgKi8KLSAgICBmb3IgKCBhID0gYmFzZSA9IHN0YXJ0OyBhIDwgZW5kOyBhKysgKQor ICAgIGZvciAoIGEgPSBiYXNlID0gc3RhcnQ7IFNZTUJPTChhKSA8IFNZTUJPTChlbmQpOyBhKysg KQogICAgIHsKICAgICAgICAgdWludDhfdCAqb3JpZyA9IEFMVF9PUklHX1BUUihhKTsKICAgICAg ICAgdWludDhfdCAqcmVwbCA9IEFMVF9SRVBMX1BUUihhKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9lZmkvZWZpLWJvb3QuaCBiL3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaAppbmRleCA1 Nzg5ZDJjLi5lNjdlODBmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgK KysrIGIveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCkBAIC0xMTIsMTEgKzExMiwxMSBAQCBz dGF0aWMgdm9pZCBfX2luaXQgcmVsb2NhdGVfdHJhbXBvbGluZSh1bnNpZ25lZCBsb25nIHBoeXMp CiAKICAgICAvKiBBcHBseSByZWxvY2F0aW9ucyB0byB0cmFtcG9saW5lLiAqLwogICAgIGZvciAo IHRyYW1wb2xpbmVfcHRyID0gX190cmFtcG9saW5lX3JlbF9zdGFydDsKLSAgICAgICAgICB0cmFt cG9saW5lX3B0ciA8IF9fdHJhbXBvbGluZV9yZWxfc3RvcDsKKyAgICAgICAgICBTWU1CT0wodHJh bXBvbGluZV9wdHIpIDwgU1lNQk9MKF9fdHJhbXBvbGluZV9yZWxfc3RvcCk7CiAgICAgICAgICAg Kyt0cmFtcG9saW5lX3B0ciApCiAgICAgICAgICoodTMyICopKCp0cmFtcG9saW5lX3B0ciArIChs b25nKXRyYW1wb2xpbmVfcHRyKSArPSBwaHlzOwogICAgIGZvciAoIHRyYW1wb2xpbmVfcHRyID0g X190cmFtcG9saW5lX3NlZ19zdGFydDsKLSAgICAgICAgICB0cmFtcG9saW5lX3B0ciA8IF9fdHJh bXBvbGluZV9zZWdfc3RvcDsKKyAgICAgICAgICBTWU1CT0wodHJhbXBvbGluZV9wdHIpIDwgU1lN Qk9MKF9fdHJhbXBvbGluZV9zZWdfc3RvcCk7CiAgICAgICAgICAgKyt0cmFtcG9saW5lX3B0ciAp CiAgICAgICAgICoodTE2ICopKCp0cmFtcG9saW5lX3B0ciArIChsb25nKXRyYW1wb2xpbmVfcHRy KSA9IHBoeXMgPj4gNDsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wZXJjcHUuYyBiL3hl bi9hcmNoL3g4Ni9wZXJjcHUuYwppbmRleCA4YmU0ZWJkLi41ZTg3ZTkxIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvcGVyY3B1LmMKKysrIGIveGVuL2FyY2gveDg2L3BlcmNwdS5jCkBAIC0xMyw3 ICsxMyw3IEBAIHVuc2lnbmVkIGxvbmcgX19wZXJfY3B1X29mZnNldFtOUl9DUFVTXTsKICAqIGNv bnRleHQgb2YgUFYgZ3Vlc3RzLgogICovCiAjZGVmaW5lIElOVkFMSURfUEVSQ1BVX0FSRUEgKDB4 ODAwMDAwMDAwMDAwMDAwMEwgLSAobG9uZylfX3Blcl9jcHVfc3RhcnQpCi0jZGVmaW5lIFBFUkNQ VV9PUkRFUiBnZXRfb3JkZXJfZnJvbV9ieXRlcyhfX3Blcl9jcHVfZGF0YV9lbmQgLSBfX3Blcl9j cHVfc3RhcnQpCisjZGVmaW5lIFBFUkNQVV9PUkRFUiBnZXRfb3JkZXJfZnJvbV9ieXRlcyhTWU1C T0woX19wZXJfY3B1X2RhdGFfZW5kKSAtIFNZTUJPTChfX3Blcl9jcHVfc3RhcnQpKQogCiB2b2lk IF9faW5pdCBwZXJjcHVfaW5pdF9hcmVhcyh2b2lkKQogewpAQCAtMzMsOCArMzMsOCBAQCBzdGF0 aWMgaW50IGluaXRfcGVyY3B1X2FyZWEodW5zaWduZWQgaW50IGNwdSkKICAgICBpZiAoIChwID0g YWxsb2NfeGVuaGVhcF9wYWdlcyhQRVJDUFVfT1JERVIsIDApKSA9PSBOVUxMICkKICAgICAgICAg cmV0dXJuIC1FTk9NRU07CiAKLSAgICBtZW1zZXQocCwgMCwgX19wZXJfY3B1X2RhdGFfZW5kIC0g X19wZXJfY3B1X3N0YXJ0KTsKLSAgICBfX3Blcl9jcHVfb2Zmc2V0W2NwdV0gPSBwIC0gX19wZXJf Y3B1X3N0YXJ0OworICAgIG1lbXNldChwLCAwLCBTWU1CT0woX19wZXJfY3B1X2RhdGFfZW5kKSAt IFNZTUJPTChfX3Blcl9jcHVfc3RhcnQpKTsKKyAgICBfX3Blcl9jcHVfb2Zmc2V0W2NwdV0gPSAo dW5zaWduZWQgbG9uZylwIC0gU1lNQk9MKF9fcGVyX2NwdV9zdGFydCk7CiAKICAgICByZXR1cm4g MDsKIH0KQEAgLTQ5LDcgKzQ5LDcgQEAgc3RhdGljIHZvaWQgX2ZyZWVfcGVyY3B1X2FyZWEoc3Ry dWN0IHJjdV9oZWFkICpoZWFkKQogewogICAgIHN0cnVjdCBmcmVlX2luZm8gKmluZm8gPSBjb250 YWluZXJfb2YoaGVhZCwgc3RydWN0IGZyZWVfaW5mbywgcmN1KTsKICAgICB1bnNpZ25lZCBpbnQg Y3B1ID0gaW5mby0+Y3B1OwotICAgIGNoYXIgKnAgPSBfX3Blcl9jcHVfc3RhcnQgKyBfX3Blcl9j cHVfb2Zmc2V0W2NwdV07CisgICAgY2hhciAqcCA9IChjaGFyICopKFNZTUJPTChfX3Blcl9jcHVf c3RhcnQpICsgX19wZXJfY3B1X29mZnNldFtjcHVdKTsKIAogICAgIGZyZWVfeGVuaGVhcF9wYWdl cyhwLCBQRVJDUFVfT1JERVIpOwogICAgIF9fcGVyX2NwdV9vZmZzZXRbY3B1XSA9IElOVkFMSURf UEVSQ1BVX0FSRUE7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9hcmNo L3g4Ni9zZXR1cC5jCmluZGV4IDU1YTI4OGYuLmM5OWE2MDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9zZXR1cC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCkBAIC05NzAsNyArOTcwLDcg QEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkK ICAgICAgICAgICogcmVzcGVjdGl2ZSByZXNlcnZlX2U4MjBfcmFtKCkgaW52b2NhdGlvbiBiZWxv dy4KICAgICAgICAgICovCiAgICAgICAgIG1vZFttYmktPm1vZHNfY291bnRdLm1vZF9zdGFydCA9 IHZpcnRfdG9fbWZuKF9zdGV4dCk7Ci0gICAgICAgIG1vZFttYmktPm1vZHNfY291bnRdLm1vZF9l bmQgPSBfXzJNX3J3ZGF0YV9lbmQgLSBfc3RleHQ7CisgICAgICAgIG1vZFttYmktPm1vZHNfY291 bnRdLm1vZF9lbmQgPSBTWU1CT0woX18yTV9yd2RhdGFfZW5kKSAtIFNZTUJPTChfc3RleHQpOwog ICAgIH0KIAogICAgIG1vZHVsZXNfaGVhZHJvb20gPSBiemltYWdlX2hlYWRyb29tKGJvb3RzdHJh cF9tYXAobW9kKSwgbW9kLT5tb2RfZW5kKTsKQEAgLTEwMzcsNyArMTAzNyw4IEBAIHZvaWQgX19p bml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAgICAgICAq IElzIHRoZSByZWdpb24gc2l6ZSBncmVhdGVyIHRoYW4gemVybyBhbmQgZG9lcyBpdCBiZWdpbgog ICAgICAgICAgKiBhdCBvciBhYm92ZSB0aGUgZW5kIG9mIGN1cnJlbnQgWGVuIGltYWdlIHBsYWNl bWVudD8KICAgICAgICAgICovCi0gICAgICAgIGlmICggKGVuZCA+IHMpICYmIChlbmQgLSByZWxv Y19zaXplICsgWEVOX0lNR19PRkZTRVQgPj0gX19wYShfZW5kKSkgKQorICAgICAgICBpZiAoIChl bmQgPiBzKSAmJiAoZW5kIC0gcmVsb2Nfc2l6ZSArIFhFTl9JTUdfT0ZGU0VUID49CisgICAgICAg ICAgICAgX19wYShfZW5kKSkgKQogICAgICAgICB7CiAgICAgICAgICAgICBsNF9wZ2VudHJ5X3Qg KnBsNGU7CiAgICAgICAgICAgICBsM19wZ2VudHJ5X3QgKnBsM2U7CkBAIC0xMDY1LDcgKzEwNjYs OCBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9w KQogICAgICAgICAgICAgICogZGF0YSB1bnRpbCBhZnRlciB3ZSBoYXZlIHN3aXRjaGVkIHRvIHRo ZSByZWxvY2F0ZWQgcGFnZXRhYmxlcyEKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgYmFy cmllcigpOwotICAgICAgICAgICAgbW92ZV9tZW1vcnkoZSArIFhFTl9JTUdfT0ZGU0VULCBYRU5f SU1HX09GRlNFVCwgX2VuZCAtIF9zdGFydCwgMSk7CisgICAgICAgICAgICBtb3ZlX21lbW9yeShl ICsgWEVOX0lNR19PRkZTRVQsIFhFTl9JTUdfT0ZGU0VULAorICAgICAgICAgICAgICAgICAgICAg ICAgU1lNQk9MKF9lbmQpIC0gU1lNQk9MKF9zdGFydCksIDEpOwogCiAgICAgICAgICAgICAvKiBX YWxrIGluaXRpYWwgcGFnZXRhYmxlcywgcmVsb2NhdGluZyBwYWdlIGRpcmVjdG9yeSBlbnRyaWVz LiAqLwogICAgICAgICAgICAgcGw0ZSA9IF9fdmEoX19wYShpZGxlX3BnX3RhYmxlKSk7CkBAIC0x MzgwLDcgKzEzODIsOCBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25l ZCBsb25nIG1iaV9wKQogICAgIH0KICNlbmRpZgogCi0gICAgeGVuX3ZpcnRfZW5kID0gKCh1bnNp Z25lZCBsb25nKV9lbmQgKyAoMVVMIDw8IEwyX1BBR0VUQUJMRV9TSElGVCkgLSAxKSAmCisgICAg eGVuX3ZpcnRfZW5kID0gKFNZTUJPTChfZW5kKSArCisgICAgICAgICAgICAgICAgICAgICgxVUwg PDwgTDJfUEFHRVRBQkxFX1NISUZUKSAtIDEpICYKICAgICAgICAgICAgICAgICAgICB+KCgxVUwg PDwgTDJfUEFHRVRBQkxFX1NISUZUKSAtIDEpOwogICAgIGRlc3Ryb3lfeGVuX21hcHBpbmdzKHhl bl92aXJ0X2VuZCwgWEVOX1ZJUlRfU1RBUlQgKyBCT09UU1RSQVBfTUFQX0JBU0UpOwogCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwpp bmRleCA1NjdjZWNlLi5jYWM0ZGRmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc21wYm9vdC5j CisrKyBiL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKQEAgLTgxMSw3ICs4MTEsNyBAQCBzdGF0aWMg aW50IHNldHVwX2NwdV9yb290X3BndCh1bnNpZ25lZCBpbnQgY3B1KQogICAgICAgICBjb25zdCBj aGFyICpwdHI7CiAKICAgICAgICAgZm9yICggcmMgPSAwLCBwdHIgPSBfc3RleHRlbnRyeTsKLSAg ICAgICAgICAgICAgIXJjICYmIHB0ciA8IF9ldGV4dGVudHJ5OyBwdHIgKz0gUEFHRV9TSVpFICkK KyAgICAgICAgICAgICAgIXJjICYmIFNZTUJPTChwdHIpIDwgU1lNQk9MKF9ldGV4dGVudHJ5KTsg cHRyICs9IFBBR0VfU0laRSApCiAgICAgICAgICAgICByYyA9IGNsb25lX21hcHBpbmcocHRyLCBy cHQpOwogCiAgICAgICAgIGlmICggcmMgKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9rZXJuZWwu YyBiL3hlbi9jb21tb24va2VybmVsLmMKaW5kZXggNTc2NmEwZi4uNzU5OWUyOSAxMDA2NDQKLS0t IGEveGVuL2NvbW1vbi9rZXJuZWwuYworKysgYi94ZW4vY29tbW9uL2tlcm5lbC5jCkBAIC0zMTIs MTQgKzMxMiwxOCBAQCBleHRlcm4gY29uc3QgaW5pdGNhbGxfdCBfX2luaXRjYWxsX3N0YXJ0W10s IF9fcHJlc21wX2luaXRjYWxsX2VuZFtdLAogdm9pZCBfX2luaXQgZG9fcHJlc21wX2luaXRjYWxs cyh2b2lkKQogewogICAgIGNvbnN0IGluaXRjYWxsX3QgKmNhbGw7Ci0gICAgZm9yICggY2FsbCA9 IF9faW5pdGNhbGxfc3RhcnQ7IGNhbGwgPCBfX3ByZXNtcF9pbml0Y2FsbF9lbmQ7IGNhbGwrKyAp CisgICAgZm9yICggY2FsbCA9IF9faW5pdGNhbGxfc3RhcnQ7CisJCSAgU1lNQk9MKGNhbGwpIDwg U1lNQk9MKF9fcHJlc21wX2luaXRjYWxsX2VuZCk7CisJCSAgY2FsbCsrICkKICAgICAgICAgKCpj YWxsKSgpOwogfQogCiB2b2lkIF9faW5pdCBkb19pbml0Y2FsbHModm9pZCkKIHsKICAgICBjb25z dCBpbml0Y2FsbF90ICpjYWxsOwotICAgIGZvciAoIGNhbGwgPSBfX3ByZXNtcF9pbml0Y2FsbF9l bmQ7IGNhbGwgPCBfX2luaXRjYWxsX2VuZDsgY2FsbCsrICkKKyAgICBmb3IgKCBjYWxsID0gX19w cmVzbXBfaW5pdGNhbGxfZW5kOworCQkgIFNZTUJPTChjYWxsKSA8IFNZTUJPTChfX2luaXRjYWxs X2VuZCk7CisJCSAgY2FsbCsrICkKICAgICAgICAgKCpjYWxsKSgpOwogfQogCmRpZmYgLS1naXQg YS94ZW4vY29tbW9uL2xpYi5jIGIveGVuL2NvbW1vbi9saWIuYwppbmRleCA2MjMzMDIwLi5hYzVj OTBhIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2xpYi5jCisrKyBiL3hlbi9jb21tb24vbGliLmMK QEAgLTQ5Myw3ICs0OTMsNyBAQCBleHRlcm4gY29uc3QgY3Rvcl9mdW5jX3QgX19jdG9yc19zdGFy dFtdLCBfX2N0b3JzX2VuZFtdOwogdm9pZCBfX2luaXQgaW5pdF9jb25zdHJ1Y3RvcnModm9pZCkK IHsKICAgICBjb25zdCBjdG9yX2Z1bmNfdCAqZjsKLSAgICBmb3IgKCBmID0gX19jdG9yc19zdGFy dDsgZiA8IF9fY3RvcnNfZW5kOyArK2YgKQorICAgIGZvciAoIGYgPSBfX2N0b3JzX3N0YXJ0OyBT WU1CT0woZikgPCBTWU1CT0woX19jdG9yc19lbmQpOyArK2YgKQogICAgICAgICAoKmYpKCk7CiAK ICAgICAvKiBQdXR0aW5nIHRoaXMgaGVyZSBzZWVtcyBhcyBnb29kIChvciBiYWQpIGFzIGFueSBv dGhlciBwbGFjZS4gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWR1bGUuYyBiL3hlbi9j b21tb24vc2NoZWR1bGUuYwppbmRleCBhOTU3YzVlLi4wNjMwODZlIDEwMDY0NAotLS0gYS94ZW4v Y29tbW9uL3NjaGVkdWxlLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCkBAIC02OCw3ICs2 OCw3IEBAIERFRklORV9QRVJfQ1BVKHN0cnVjdCBzY2hlZHVsZXIgKiwgc2NoZWR1bGVyKTsKIERF RklORV9QRVJfQ1BVKGNwdW1hc2tfdCwgY3B1bWFza19zY3JhdGNoKTsKIAogZXh0ZXJuIGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKl9fc3RhcnRfc2NoZWR1bGVyc19hcnJheVtdLCAqX19lbmRfc2No ZWR1bGVyc19hcnJheVtdOwotI2RlZmluZSBOVU1fU0NIRURVTEVSUyAoX19lbmRfc2NoZWR1bGVy c19hcnJheSAtIF9fc3RhcnRfc2NoZWR1bGVyc19hcnJheSkKKyNkZWZpbmUgTlVNX1NDSEVEVUxF UlMgKFNZTUJPTChfX2VuZF9zY2hlZHVsZXJzX2FycmF5KSAtIFNZTUJPTChfX3N0YXJ0X3NjaGVk dWxlcnNfYXJyYXkpKQogI2RlZmluZSBzY2hlZHVsZXJzIF9fc3RhcnRfc2NoZWR1bGVyc19hcnJh eQogCiBzdGF0aWMgc3RydWN0IHNjaGVkdWxlciBfX3JlYWRfbW9zdGx5IG9wczsKZGlmZiAtLWdp dCBhL3hlbi9jb21tb24vc3BpbmxvY2suYyBiL3hlbi9jb21tb24vc3BpbmxvY2suYwppbmRleCA2 YmM1MmQ3Li5kM2U5ZDNhIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NwaW5sb2NrLmMKKysrIGIv eGVuL2NvbW1vbi9zcGlubG9jay5jCkBAIC00NzQsNyArNDc0LDkgQEAgc3RhdGljIGludCBfX2lu aXQgbG9ja19wcm9mX2luaXQodm9pZCkKIHsKICAgICBzdHJ1Y3QgbG9ja19wcm9maWxlICoqcTsK IAotICAgIGZvciAoIHEgPSAmX19sb2NrX3Byb2ZpbGVfc3RhcnQ7IHEgPCAmX19sb2NrX3Byb2Zp bGVfZW5kOyBxKysgKQorICAgIGZvciAoIHEgPSAmX19sb2NrX3Byb2ZpbGVfc3RhcnQ7CisJCSAg U1lNQk9MKHEpIDwgU1lNQk9MKCZfX2xvY2tfcHJvZmlsZV9lbmQpOworCQkgIHErKyApCiAgICAg ewogICAgICAgICAoKnEpLT5uZXh0ID0gbG9ja19wcm9maWxlX2dsYl9xLmVsZW1fcTsKICAgICAg ICAgbG9ja19wcm9maWxlX2dsYl9xLmVsZW1fcSA9ICpxOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi92ZXJzaW9uLmMgYi94ZW4vY29tbW9uL3ZlcnNpb24uYwppbmRleCAyMjNjYjUyLi5kYzFkNDNl IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3ZlcnNpb24uYworKysgYi94ZW4vY29tbW9uL3ZlcnNp b24uYwpAQCAtMTQ3LDE0ICsxNDcsMTQgQEAgc3RhdGljIGludCBfX2luaXQgeGVuX2J1aWxkX2lu aXQodm9pZCkKICAgICBpbnQgcmM7CiAKICAgICAvKiAtLWJ1aWxkLWlkIGludm9rZWQgd2l0aCB3 cm9uZyBwYXJhbWV0ZXJzLiAqLwotICAgIGlmICggX19ub3RlX2dudV9idWlsZF9pZF9lbmQgPD0g Jm5bMF0gKQorICAgIGlmICggU1lNQk9MKF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kKSA8PSBTWU1C T0woJm5bMF0pICkKICAgICAgICAgcmV0dXJuIC1FTk9EQVRBOwogCiAgICAgLyogQ2hlY2sgZm9y IGZ1bGwgTm90ZSBoZWFkZXIuICovCi0gICAgaWYgKCAmblsxXSA+PSBfX25vdGVfZ251X2J1aWxk X2lkX2VuZCApCisgICAgaWYgKCBTWU1CT0woJm5bMV0pID49IFNZTUJPTChfX25vdGVfZ251X2J1 aWxkX2lkX2VuZCkgKQogICAgICAgICByZXR1cm4gLUVOT0RBVEE7CiAKLSAgICBzeiA9ICh2b2lk ICopX19ub3RlX2dudV9idWlsZF9pZF9lbmQgLSAodm9pZCAqKW47CisgICAgc3ogPSBTWU1CT0wo X19ub3RlX2dudV9idWlsZF9pZF9lbmQpIC0gU1lNQk9MKG4pOwogCiAgICAgcmMgPSB4ZW5fYnVp bGRfaWRfY2hlY2sobiwgc3osICZidWlsZF9pZF9wLCAmYnVpbGRfaWRfbGVuKTsKIApkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi92aXJ0dWFsX3JlZ2lvbi5jIGIveGVuL2NvbW1vbi92aXJ0dWFsX3Jl Z2lvbi5jCmluZGV4IGFhMjM5MTguLmRhOTliZmQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vdmly dHVhbF9yZWdpb24uYworKysgYi94ZW4vY29tbW9uL3ZpcnR1YWxfcmVnaW9uLmMKQEAgLTExOSw3 ICsxMTksNyBAQCB2b2lkIF9faW5pdCBzZXR1cF92aXJ0dWFsX3JlZ2lvbnMoY29uc3Qgc3RydWN0 IGV4Y2VwdGlvbl90YWJsZV9lbnRyeSAqc3RhcnQsCiAgICAgICAgIGNvbnN0IHN0cnVjdCBidWdf ZnJhbWUgKnM7CiAKICAgICAgICAgcyA9IGJ1Z19mcmFtZXNbaSAtIDFdOwotICAgICAgICBzeiA9 IGJ1Z19mcmFtZXNbaV0gLSBzOworICAgICAgICBzeiA9IFNZTUJPTChidWdfZnJhbWVzW2ldKSAt IFNZTUJPTChzKTsKIAogICAgICAgICBjb3JlLmZyYW1lW2kgLSAxXS5uX2J1Z3MgPSBzejsKICAg ICAgICAgY29yZS5mcmFtZVtpIC0gMV0uYnVncyA9IHM7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy cy92cGNpL3ZwY2kuYyBiL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jCmluZGV4IDgyNjA3YmQuLmJj MGNjYTYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvdnBjaS5jCisrKyBiL3hlbi9kcml2 ZXJzL3ZwY2kvdnBjaS5jCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCB2cGNpX3JlZ2lzdGVyIHsK ICNpZmRlZiBfX1hFTl9fCiBleHRlcm4gdnBjaV9yZWdpc3Rlcl9pbml0X3QgKmNvbnN0IF9fc3Rh cnRfdnBjaV9hcnJheVtdOwogZXh0ZXJuIHZwY2lfcmVnaXN0ZXJfaW5pdF90ICpjb25zdCBfX2Vu ZF92cGNpX2FycmF5W107Ci0jZGVmaW5lIE5VTV9WUENJX0lOSVQgKF9fZW5kX3ZwY2lfYXJyYXkg LSBfX3N0YXJ0X3ZwY2lfYXJyYXkpCisjZGVmaW5lIE5VTV9WUENJX0lOSVQgKFNZTUJPTChfX2Vu ZF92cGNpX2FycmF5KSAtIFNZTUJPTChfX3N0YXJ0X3ZwY2lfYXJyYXkpKQogCiB2b2lkIHZwY2lf cmVtb3ZlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS1hcm0vZ3JhbnRfdGFibGUuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3JhbnRf dGFibGUuaAppbmRleCAzNzQxNWI3Li42YzVlZGNjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20tYXJtL2dyYW50X3RhYmxlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9ncmFudF90YWJs ZS5oCkBAIC0zMSw3ICszMSw4IEBAIHZvaWQgZ250dGFiX21hcmtfZGlydHkoc3RydWN0IGRvbWFp biAqZCwgbWZuX3QgbWZuKTsKICAqIGVub3VnaCBzcGFjZSBmb3IgYSBsYXJnZSBncmFudCB0YWJs ZQogICovCiAjZGVmaW5lIGdudHRhYl9kb20wX2ZyYW1lcygpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIG1pbl90KHVuc2lnbmVkIGludCwgb3B0X21h eF9ncmFudF9mcmFtZXMsIFBGTl9ET1dOKF9ldGV4dCAtIF9zdGV4dCkpCisgICAgbWluX3QodW5z aWduZWQgaW50LCBvcHRfbWF4X2dyYW50X2ZyYW1lcywgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICAgICAgIFBGTl9ET1dOKFNZTUJPTChfZXRleHQpIC0gU1lNQk9MKF9zdGV4dCkp KQogCiAjZGVmaW5lIGdudHRhYl9pbml0X2FyY2goZ3QpICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAogKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL2FzbS1hcm0vbW0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaAppbmRleCA5 NDBiNzRiLi5hMjFjODFhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKKysr IGIveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCkBAIC0xNTEsNyArMTUxLDcgQEAgZXh0ZXJuIHZh ZGRyX3QgeGVuaGVhcF92aXJ0X3N0YXJ0OwogI2VuZGlmCiAKICNkZWZpbmUgaXNfeGVuX2ZpeGVk X21mbihtZm4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgKChwZm5f dG9fcGFkZHIobWZuKSA+PSB2aXJ0X3RvX21hZGRyKCZfc3RhcnQpKSAmJiAgICAgICBcCisgICAg KChwZm5fdG9fcGFkZHIobWZuKSA+PSB2aXJ0X3RvX21hZGRyKCZfc3RhcnQpKSAmJiBcCiAgICAg IChwZm5fdG9fcGFkZHIobWZuKSA8PSB2aXJ0X3RvX21hZGRyKCZfZW5kKSkpCiAKICNkZWZpbmUg cGFnZV9nZXRfb3duZXIoX3ApICAgIChfcCktPnYuaW51c2UuZG9tYWluCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS94ZW4va2VybmVsLmggYi94ZW4vaW5jbHVkZS94ZW4va2VybmVsLmgKaW5kZXgg NTQ4YjY0ZC4uY2QyNzAzMCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2tlcm5lbC5oCisr KyBiL3hlbi9pbmNsdWRlL3hlbi9rZXJuZWwuaApAQCAtNjYsMjcgKzY2LDI3IEBACiB9KQogCiBl eHRlcm4gY2hhciBfc3RhcnRbXSwgX2VuZFtdLCBzdGFydFtdOwotI2RlZmluZSBpc19rZXJuZWwo cCkgKHsgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGNoYXIgKl9fcCA9IChjaGFyICop KHVuc2lnbmVkIGxvbmcpKHApOyAgICAgXAotICAgIChfX3AgPj0gX3N0YXJ0KSAmJiAoX19wIDwg X2VuZCk7ICAgICAgICAgICAgXAorI2RlZmluZSBpc19rZXJuZWwocCkgKHsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgY29uc3QgdW5zaWduZWQgbG9u ZyBfX3AgPSAodW5zaWduZWQgbG9uZykocCk7ICAgICAgICAgICAgICAgICAgIFwKKyAgICAoX19w ID49IFNZTUJPTChfc3RhcnQpKSAmJiAoX19wIDwgU1lNQk9MKF9lbmQpKTsgICAgICAgICAgICBc CiB9KQogCiBleHRlcm4gY2hhciBfc3RleHRbXSwgX2V0ZXh0W107Ci0jZGVmaW5lIGlzX2tlcm5l bF90ZXh0KHApICh7ICAgICAgICAgICAgICAgICAgICBcCi0gICAgY2hhciAqX19wID0gKGNoYXIg KikodW5zaWduZWQgbG9uZykocCk7ICAgICBcCi0gICAgKF9fcCA+PSBfc3RleHQpICYmIChfX3Ag PCBfZXRleHQpOyAgICAgICAgICBcCisjZGVmaW5lIGlzX2tlcm5lbF90ZXh0KHApICh7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjb25zdCB1bnNpZ25lZCBs b25nIF9fcCA9ICh1bnNpZ25lZCBsb25nKShwKTsgICAgICAgICAgICAgICAgICAgXAorICAgIChf X3AgPj0gU1lNQk9MKF9zdGV4dCkpICYmIChfX3AgPCBTWU1CT0woX2V0ZXh0KSk7ICAgICAgICAg IFwKIH0pCiAKIGV4dGVybiBjb25zdCBjaGFyIF9zcm9kYXRhW10sIF9lcm9kYXRhW107Ci0jZGVm aW5lIGlzX2tlcm5lbF9yb2RhdGEocCkgKHsgICAgICAgICAgICAgICAgICBcCi0gICAgY29uc3Qg Y2hhciAqX19wID0gKGNvbnN0IGNoYXIgKikodW5zaWduZWQgbG9uZykocCk7ICAgICBcCi0gICAg KF9fcCA+PSBfc3JvZGF0YSkgJiYgKF9fcCA8IF9lcm9kYXRhKTsgICAgICBcCisjZGVmaW5lIGlz X2tlcm5lbF9yb2RhdGEocCkgKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICBjb25zdCB1bnNpZ25lZCBsb25nIF9fcCA9ICh1bnNpZ25lZCBsb25nKShwKTsgICAg ICAgICAgICAgICAgICAgXAorICAgIChfX3AgPj0gU1lNQk9MKF9zcm9kYXRhKSkgJiYgKF9fcCA8 IFNZTUJPTChfZXJvZGF0YSkpOyAgICAgIFwKIH0pCiAKIGV4dGVybiBjaGFyIF9zaW5pdHRleHRb XSwgX2Vpbml0dGV4dFtdOwotI2RlZmluZSBpc19rZXJuZWxfaW5pdHRleHQocCkgKHsgICAgICAg ICAgICAgICAgXAotICAgIGNoYXIgKl9fcCA9IChjaGFyICopKHVuc2lnbmVkIGxvbmcpKHApOyAg ICAgXAotICAgIChfX3AgPj0gX3Npbml0dGV4dCkgJiYgKF9fcCA8IF9laW5pdHRleHQpOyAgXAor I2RlZmluZSBpc19rZXJuZWxfaW5pdHRleHQocCkgKHsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCisgICAgY29uc3QgdW5zaWduZWQgbG9uZyBfX3AgPSAodW5zaWduZWQgbG9u ZykocCk7ICAgICAgICAgICAgICAgICAgIFwKKyAgICAoX19wID49IFNZTUJPTChfc2luaXR0ZXh0 KSkgJiYgKF9fcCA8IFNZTUJPTChfZWluaXR0ZXh0KSk7ICBcCiB9KQogCiBleHRlcm4gZW51bSBz eXN0ZW1fc3RhdGUgewotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs