From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 08/11] chardev: Let IOCanReadHandler use unsigned type Date: Fri, 12 Oct 2018 02:22:14 +0200 Message-ID: <20181012002217.2864-9-philmd@redhat.com> References: <20181012002217.2864-1-philmd@redhat.com> 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]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gAlF7-0000PS-Ug for xen-devel@lists.xenproject.org; Fri, 12 Oct 2018 00:23:49 +0000 In-Reply-To: <20181012002217.2864-1-philmd@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Paolo Bonzini , Prasad J Pandit Cc: Peter Maydell , Sagar Karandikar , "Michael S. Tsirkin" , Jan Kiszka , Jason Wang , Palmer Dabbelt , qemu-devel@nongnu.org, Markus Armbruster , Max Filippov , Michael Clark , Gerd Hoffmann , "Edgar E. Iglesias" , Stefano Stabellini , Alberto Garcia , Li Zhijian , Alexander Graf , Christian Borntraeger , Antony Pavlov , Anthony Perard , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Laurent Vivier List-Id: xen-devel@lists.xenproject.org U3VnZ2VzdGVkLWJ5OiBQYW9sbyBCb256aW5pIDxwYm9uemluaUByZWRoYXQuY29tPgpTaWduZWQt b2ZmLWJ5OiBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8cGhpbG1kQHJlZGhhdC5jb20+Ci0tLQog YmFja2VuZHMvcm5nLWVnZC5jICAgICAgICAgIHwgNCArKy0tCiBjaGFyZGV2L2NoYXItbXV4LmMg ICAgICAgICAgfCAyICstCiBnZGJzdHViLmMgICAgICAgICAgICAgICAgICAgfCAyICstCiBody9h cm0vcHhhMnh4LmMgICAgICAgICAgICAgfCAyICstCiBody9hcm0vc3Ryb25nYXJtLmMgICAgICAg ICAgfCAyICstCiBody9jaGFyL2JjbTI4MzVfYXV4LmMgICAgICAgfCAyICstCiBody9jaGFyL2Nh ZGVuY2VfdWFydC5jICAgICAgfCA0ICsrLS0KIGh3L2NoYXIvY21zZGstYXBiLXVhcnQuYyAgICB8 IDIgKy0KIGh3L2NoYXIvZGlnaWMtdWFydC5jICAgICAgICB8IDIgKy0KIGh3L2NoYXIvZXNjYy5j ICAgICAgICAgICAgICB8IDYgKysrLS0tCiBody9jaGFyL2V0cmF4ZnNfc2VyLmMgICAgICAgfCAy ICstCiBody9jaGFyL2V4eW5vczQyMTBfdWFydC5jICAgfCAyICstCiBody9jaGFyL2dybGliX2Fw YnVhcnQuYyAgICAgfCAyICstCiBody9jaGFyL2lteF9zZXJpYWwuYyAgICAgICAgfCAyICstCiBo dy9jaGFyL2lwb2N0YWwyMzIuYyAgICAgICAgfCA0ICsrLS0KIGh3L2NoYXIvbG0zMl9qdWFydC5j ICAgICAgICB8IDIgKy0KIGh3L2NoYXIvbG0zMl91YXJ0LmMgICAgICAgICB8IDIgKy0KIGh3L2No YXIvbWNmX3VhcnQuYyAgICAgICAgICB8IDIgKy0KIGh3L2NoYXIvbWlsa3ltaXN0LXVhcnQuYyAg ICB8IDIgKy0KIGh3L2NoYXIvcGFyYWxsZWwuYyAgICAgICAgICB8IDIgKy0KIGh3L2NoYXIvcGww MTEuYyAgICAgICAgICAgICB8IDQgKystLQogaHcvY2hhci9zY2xwY29uc29sZS1sbS5jICAgIHwg MiArLQogaHcvY2hhci9zY2xwY29uc29sZS5jICAgICAgIHwgNCArKy0tCiBody9jaGFyL3Nlcmlh bC5jICAgICAgICAgICAgfCA0ICsrLS0KIGh3L2NoYXIvc2hfc2VyaWFsLmMgICAgICAgICB8IDQg KystLQogaHcvY2hhci9zcGFwcl92dHkuYyAgICAgICAgIHwgMiArLQogaHcvY2hhci9zdG0zMmYy eHhfdXNhcnQuYyAgIHwgMiArLQogaHcvY2hhci90ZXJtaW5hbDMyNzAuYyAgICAgIHwgMiArLQog aHcvY2hhci92aXJ0aW8tY29uc29sZS5jICAgIHwgMiArLQogaHcvY2hhci94ZW5fY29uc29sZS5j ICAgICAgIHwgMiArLQogaHcvY2hhci94aWxpbnhfdWFydGxpdGUuYyAgIHwgMiArLQogaHcvaXBt aS9pcG1pX2JtY19leHRlcm4uYyAgIHwgMiArLQogaHcvbWlzYy9pdnNobWVtLmMgICAgICAgICAg IHwgMiArLQogaHcvcmlzY3YvcmlzY3ZfaHRpZi5jICAgICAgIHwgMiArLQogaHcvcmlzY3Yvc2lm aXZlX3VhcnQuYyAgICAgIHwgMiArLQogaHcvdXNiL2NjaWQtY2FyZC1wYXNzdGhydS5jIHwgMiAr LQogaHcvdXNiL2Rldi1zZXJpYWwuYyAgICAgICAgIHwgMiArLQogaHcvdXNiL3JlZGlyZWN0LmMg ICAgICAgICAgIHwgMiArLQogaW5jbHVkZS9xZW11L21haW4tbG9vcC5oICAgIHwgMiArLQogbW9u aXRvci5jICAgICAgICAgICAgICAgICAgIHwgMiArLQogbmV0L2NvbG8tY29tcGFyZS5jICAgICAg ICAgIHwgMiArLQogbmV0L2ZpbHRlci1taXJyb3IuYyAgICAgICAgIHwgMiArLQogbmV0L3NsaXJw LmMgICAgICAgICAgICAgICAgIHwgMiArLQogcXRlc3QuYyAgICAgICAgICAgICAgICAgICAgIHwg MiArLQogdGFyZ2V0L3h0ZW5zYS94dGVuc2Etc2VtaS5jIHwgMiArLQogNDUgZmlsZXMgY2hhbmdl ZCwgNTQgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYmFja2Vu ZHMvcm5nLWVnZC5jIGIvYmFja2VuZHMvcm5nLWVnZC5jCmluZGV4IGI1MWMwMWY2NjQuLjRhOWE5 MmE4ZTcgMTAwNjQ0Ci0tLSBhL2JhY2tlbmRzL3JuZy1lZ2QuYworKysgYi9iYWNrZW5kcy9ybmct ZWdkLmMKQEAgLTQ4LDExICs0OCwxMSBAQCBzdGF0aWMgdm9pZCBybmdfZWdkX3JlcXVlc3RfZW50 cm9weShSbmdCYWNrZW5kICpiLCBSbmdSZXF1ZXN0ICpyZXEpCiAgICAgfQogfQogCi1zdGF0aWMg aW50IHJuZ19lZ2RfY2hyX2Nhbl9yZWFkKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3Qgcm5n X2VnZF9jaHJfY2FuX3JlYWQodm9pZCAqb3BhcXVlKQogewogICAgIFJuZ0VnZCAqcyA9IFJOR19F R0Qob3BhcXVlKTsKICAgICBSbmdSZXF1ZXN0ICpyZXE7Ci0gICAgaW50IHNpemUgPSAwOworICAg IHNpemVfdCBzaXplID0gMDsKIAogICAgIFFTSU1QTEVRX0ZPUkVBQ0gocmVxLCAmcy0+cGFyZW50 LnJlcXVlc3RzLCBuZXh0KSB7CiAgICAgICAgIHNpemUgKz0gcmVxLT5zaXplIC0gcmVxLT5vZmZz ZXQ7CmRpZmYgLS1naXQgYS9jaGFyZGV2L2NoYXItbXV4LmMgYi9jaGFyZGV2L2NoYXItbXV4LmMK aW5kZXggZDhkNmVhYTY0Ni4uOThkYjEyY2Y3NyAxMDA2NDQKLS0tIGEvY2hhcmRldi9jaGFyLW11 eC5jCisrKyBiL2NoYXJkZXYvY2hhci1tdXguYwpAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyB2 b2lkIG11eF9jaHJfYWNjZXB0X2lucHV0KENoYXJkZXYgKmNocikKICAgICB9CiB9CiAKLXN0YXRp YyBpbnQgbXV4X2Nocl9jYW5fcmVhZCh2b2lkICpvcGFxdWUpCitzdGF0aWMgc2l6ZV90IG11eF9j aHJfY2FuX3JlYWQodm9pZCAqb3BhcXVlKQogewogICAgIE11eENoYXJkZXYgKmQgPSBNVVhfQ0hB UkRFVihvcGFxdWUpOwogICAgIGludCBtID0gZC0+Zm9jdXM7CmRpZmYgLS1naXQgYS9nZGJzdHVi LmMgYi9nZGJzdHViLmMKaW5kZXggYTJmYzM2ODJjZS4uODZkMWZhNjJmOCAxMDA2NDQKLS0tIGEv Z2Ric3R1Yi5jCisrKyBiL2dkYnN0dWIuYwpAQCAtMTkxNiw3ICsxOTE2LDcgQEAgdm9pZCBnZGJz ZXJ2ZXJfZm9yayhDUFVTdGF0ZSAqY3B1KQogICAgIGNwdV93YXRjaHBvaW50X3JlbW92ZV9hbGwo Y3B1LCBCUF9HREIpOwogfQogI2Vsc2UKLXN0YXRpYyBpbnQgZ2RiX2Nocl9jYW5fcmVjZWl2ZSh2 b2lkICpvcGFxdWUpCitzdGF0aWMgc2l6ZV90IGdkYl9jaHJfY2FuX3JlY2VpdmUodm9pZCAqb3Bh cXVlKQogewogICAvKiBXZSBjYW4gaGFuZGxlIGFuIGFyYml0cmFyaWx5IGxhcmdlIGFtb3VudCBv ZiBkYXRhLgogICAgUGljayB0aGUgbWF4aW11bSBwYWNrZXQgc2l6ZSwgd2hpY2ggaXMgYXMgZ29v ZCBhcyBhbnl0aGluZy4gICovCmRpZmYgLS1naXQgYS9ody9hcm0vcHhhMnh4LmMgYi9ody9hcm0v cHhhMnh4LmMKaW5kZXggNzViNmFhMjc3Mi4uYTcyZDliZDRmZSAxMDA2NDQKLS0tIGEvaHcvYXJt L3B4YTJ4eC5jCisrKyBiL2h3L2FybS9weGEyeHguYwpAQCAtMTkyMyw3ICsxOTIzLDcgQEAgc3Rh dGljIGNvbnN0IE1lbW9yeVJlZ2lvbk9wcyBweGEyeHhfZmlyX29wcyA9IHsKICAgICAuZW5kaWFu bmVzcyA9IERFVklDRV9OQVRJVkVfRU5ESUFOLAogfTsKIAotc3RhdGljIGludCBweGEyeHhfZmly X2lzX2VtcHR5KHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3QgcHhhMnh4X2Zpcl9pc19lbXB0 eSh2b2lkICpvcGFxdWUpCiB7CiAgICAgUFhBMnh4RklyU3RhdGUgKnMgPSAoUFhBMnh4RklyU3Rh dGUgKikgb3BhcXVlOwogICAgIHJldHVybiAocy0+cnhfbGVuIDwgNjQpOwpkaWZmIC0tZ2l0IGEv aHcvYXJtL3N0cm9uZ2FybS5jIGIvaHcvYXJtL3N0cm9uZ2FybS5jCmluZGV4IDQwZGI0ZTVlMGEu LjZmZGQ0ZGEzZDAgMTAwNjQ0Ci0tLSBhL2h3L2FybS9zdHJvbmdhcm0uYworKysgYi9ody9hcm0v c3Ryb25nYXJtLmMKQEAgLTEwNTgsNyArMTA1OCw3IEBAIHN0YXRpYyB2b2lkIHN0cm9uZ2FybV91 YXJ0X3J4X3B1c2goU3Ryb25nQVJNVUFSVFN0YXRlICpzLCB1aW50MTZfdCBjKQogICAgICAgICBz LT5yeF9maWZvWyhzLT5yeF9zdGFydCArIDExKSAlIDEyXSB8PSBSWF9GSUZPX1JPUjsKIH0KIAot c3RhdGljIGludCBzdHJvbmdhcm1fdWFydF9jYW5fcmVjZWl2ZSh2b2lkICpvcGFxdWUpCitzdGF0 aWMgc2l6ZV90IHN0cm9uZ2FybV91YXJ0X2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKIHsKICAg ICBTdHJvbmdBUk1VQVJUU3RhdGUgKnMgPSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3L2NoYXIv YmNtMjgzNV9hdXguYyBiL2h3L2NoYXIvYmNtMjgzNV9hdXguYwppbmRleCBjYjI2ZGY0MGY4Li41 ZGQxYjY1MmMwIDEwMDY0NAotLS0gYS9ody9jaGFyL2JjbTI4MzVfYXV4LmMKKysrIGIvaHcvY2hh ci9iY20yODM1X2F1eC5jCkBAIC0yMTEsNyArMjExLDcgQEAgc3RhdGljIHZvaWQgYmNtMjgzNV9h dXhfd3JpdGUodm9pZCAqb3BhcXVlLCBod2FkZHIgb2Zmc2V0LCB1aW50NjRfdCB2YWx1ZSwKICAg ICBiY20yODM1X2F1eF91cGRhdGUocyk7CiB9CiAKLXN0YXRpYyBpbnQgYmNtMjgzNV9hdXhfY2Fu X3JlY2VpdmUodm9pZCAqb3BhcXVlKQorc3RhdGljIHNpemVfdCBiY20yODM1X2F1eF9jYW5fcmVj ZWl2ZSh2b2lkICpvcGFxdWUpCiB7CiAgICAgQkNNMjgzNUF1eFN0YXRlICpzID0gb3BhcXVlOwog CmRpZmYgLS1naXQgYS9ody9jaGFyL2NhZGVuY2VfdWFydC5jIGIvaHcvY2hhci9jYWRlbmNlX3Vh cnQuYwppbmRleCBlYjVjYzk3NGExLi41ODM1MzYyMDM4IDEwMDY0NAotLS0gYS9ody9jaGFyL2Nh ZGVuY2VfdWFydC5jCisrKyBiL2h3L2NoYXIvY2FkZW5jZV91YXJ0LmMKQEAgLTIxNiwxMCArMjE2 LDEwIEBAIHN0YXRpYyB2b2lkIHVhcnRfcGFyYW1ldGVyc19zZXR1cChDYWRlbmNlVUFSVFN0YXRl ICpzKQogICAgIHFlbXVfY2hyX2ZlX2lvY3RsKCZzLT5jaHIsIENIUl9JT0NUTF9TRVJJQUxfU0VU X1BBUkFNUywgJnNzcCk7CiB9CiAKLXN0YXRpYyBpbnQgdWFydF9jYW5fcmVjZWl2ZSh2b2lkICpv cGFxdWUpCitzdGF0aWMgc2l6ZV90IHVhcnRfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQogewog ICAgIENhZGVuY2VVQVJUU3RhdGUgKnMgPSBvcGFxdWU7Ci0gICAgaW50IHJldCA9IE1BWChDQURF TkNFX1VBUlRfUlhfRklGT19TSVpFLCBDQURFTkNFX1VBUlRfVFhfRklGT19TSVpFKTsKKyAgICBz aXplX3QgcmV0ID0gTUFYKENBREVOQ0VfVUFSVF9SWF9GSUZPX1NJWkUsIENBREVOQ0VfVUFSVF9U WF9GSUZPX1NJWkUpOwogICAgIHVpbnQzMl90IGNoX21vZGUgPSBzLT5yW1JfTVJdICYgVUFSVF9N Ul9DSE1PREU7CiAKICAgICBpZiAoY2hfbW9kZSA9PSBOT1JNQUxfTU9ERSB8fCBjaF9tb2RlID09 IEVDSE9fTU9ERSkgewpkaWZmIC0tZ2l0IGEvaHcvY2hhci9jbXNkay1hcGItdWFydC5jIGIvaHcv Y2hhci9jbXNkay1hcGItdWFydC5jCmluZGV4IDc3NDk4NmQ4OGQuLmMxNDM3Njc0YTUgMTAwNjQ0 Ci0tLSBhL2h3L2NoYXIvY21zZGstYXBiLXVhcnQuYworKysgYi9ody9jaGFyL2Ntc2RrLWFwYi11 YXJ0LmMKQEAgLTEwOCw3ICsxMDgsNyBAQCBzdGF0aWMgdm9pZCBjbXNka19hcGJfdWFydF91cGRh dGUoQ01TREtBUEJVQVJUICpzKQogICAgIHFlbXVfc2V0X2lycShzLT51YXJ0aW50LCAhIShzLT5p bnRzdGF0dXMpKTsKIH0KIAotc3RhdGljIGludCB1YXJ0X2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1 ZSkKK3N0YXRpYyBzaXplX3QgdWFydF9jYW5fcmVjZWl2ZSh2b2lkICpvcGFxdWUpCiB7CiAgICAg Q01TREtBUEJVQVJUICpzID0gQ01TREtfQVBCX1VBUlQob3BhcXVlKTsKIApkaWZmIC0tZ2l0IGEv aHcvY2hhci9kaWdpYy11YXJ0LmMgYi9ody9jaGFyL2RpZ2ljLXVhcnQuYwppbmRleCAwZjQxYTIz YjU0Li5mODA1ZWU1NzY2IDEwMDY0NAotLS0gYS9ody9jaGFyL2RpZ2ljLXVhcnQuYworKysgYi9o dy9jaGFyL2RpZ2ljLXVhcnQuYwpAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyBjb25zdCBNZW1v cnlSZWdpb25PcHMgdWFydF9tbWlvX29wcyA9IHsKICAgICAuZW5kaWFubmVzcyA9IERFVklDRV9O QVRJVkVfRU5ESUFOLAogfTsKIAotc3RhdGljIGludCB1YXJ0X2Nhbl9yeCh2b2lkICpvcGFxdWUp CitzdGF0aWMgc2l6ZV90IHVhcnRfY2FuX3J4KHZvaWQgKm9wYXF1ZSkKIHsKICAgICBEaWdpY1Vh cnRTdGF0ZSAqcyA9IG9wYXF1ZTsKIApkaWZmIC0tZ2l0IGEvaHcvY2hhci9lc2NjLmMgYi9ody9j aGFyL2VzY2MuYwppbmRleCBlNjU1Yjg2MjczLi5kZWNjMzViOTkwIDEwMDY0NAotLS0gYS9ody9j aGFyL2VzY2MuYworKysgYi9ody9jaGFyL2VzY2MuYwpAQCAtMTY2LDcgKzE2Niw3IEBACiAjZGVm aW5lIFJfRVhUSU5UIDE1CiAKIHN0YXRpYyB2b2lkIGhhbmRsZV9rYmRfY29tbWFuZChFU0NDQ2hh bm5lbFN0YXRlICpzLCBpbnQgdmFsKTsKLXN0YXRpYyBpbnQgc2VyaWFsX2Nhbl9yZWNlaXZlKHZv aWQgKm9wYXF1ZSk7CitzdGF0aWMgc2l6ZV90IHNlcmlhbF9jYW5fcmVjZWl2ZSh2b2lkICpvcGFx dWUpOwogc3RhdGljIHZvaWQgc2VyaWFsX3JlY2VpdmVfYnl0ZShFU0NDQ2hhbm5lbFN0YXRlICpz LCBpbnQgY2gpOwogCiBzdGF0aWMgdm9pZCBjbGVhcl9xdWV1ZSh2b2lkICpvcGFxdWUpCkBAIC01 NzMsMTAgKzU3MywxMCBAQCBzdGF0aWMgY29uc3QgTWVtb3J5UmVnaW9uT3BzIGVzY2NfbWVtX29w cyA9IHsKICAgICB9LAogfTsKIAotc3RhdGljIGludCBzZXJpYWxfY2FuX3JlY2VpdmUodm9pZCAq b3BhcXVlKQorc3RhdGljIHNpemVfdCBzZXJpYWxfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQog ewogICAgIEVTQ0NDaGFubmVsU3RhdGUgKnMgPSBvcGFxdWU7Ci0gICAgaW50IHJldDsKKyAgICBz aXplX3QgcmV0OwogCiAgICAgaWYgKCgocy0+d3JlZ3NbV19SWENUUkxdICYgUlhDVFJMX1JYRU4p ID09IDApIC8vIFJ4IG5vdCBlbmFibGVkCiAgICAgICAgIHx8ICgocy0+cnJlZ3NbUl9TVEFUVVNd ICYgU1RBVFVTX1JYQVYpID09IFNUQVRVU19SWEFWKSkKZGlmZiAtLWdpdCBhL2h3L2NoYXIvZXRy YXhmc19zZXIuYyBiL2h3L2NoYXIvZXRyYXhmc19zZXIuYwppbmRleCA3OWNkOGQyZGMxLi45NzBm NmE2ZTkwIDEwMDY0NAotLS0gYS9ody9jaGFyL2V0cmF4ZnNfc2VyLmMKKysrIGIvaHcvY2hhci9l dHJheGZzX3Nlci5jCkBAIC0xODcsNyArMTg3LDcgQEAgc3RhdGljIHZvaWQgc2VyaWFsX3JlY2Vp dmUodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKQogICAgIHNl cl91cGRhdGVfaXJxKHMpOwogfQogCi1zdGF0aWMgaW50IHNlcmlhbF9jYW5fcmVjZWl2ZSh2b2lk ICpvcGFxdWUpCitzdGF0aWMgc2l6ZV90IHNlcmlhbF9jYW5fcmVjZWl2ZSh2b2lkICpvcGFxdWUp CiB7CiAgICAgRVRSQVhTZXJpYWwgKnMgPSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3L2NoYXIv ZXh5bm9zNDIxMF91YXJ0LmMgYi9ody9jaGFyL2V4eW5vczQyMTBfdWFydC5jCmluZGV4IDVmZGY1 YjFmMzcuLmI5M2VkZWMwOGEgMTAwNjQ0Ci0tLSBhL2h3L2NoYXIvZXh5bm9zNDIxMF91YXJ0LmMK KysrIGIvaHcvY2hhci9leHlub3M0MjEwX3VhcnQuYwpAQCAtNDg3LDcgKzQ4Nyw3IEBAIHN0YXRp YyBjb25zdCBNZW1vcnlSZWdpb25PcHMgZXh5bm9zNDIxMF91YXJ0X29wcyA9IHsKICAgICB9LAog fTsKIAotc3RhdGljIGludCBleHlub3M0MjEwX3VhcnRfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVl KQorc3RhdGljIHNpemVfdCBleHlub3M0MjEwX3VhcnRfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVl KQogewogICAgIEV4eW5vczQyMTBVYXJ0U3RhdGUgKnMgPSAoRXh5bm9zNDIxMFVhcnRTdGF0ZSAq KW9wYXF1ZTsKIApkaWZmIC0tZ2l0IGEvaHcvY2hhci9ncmxpYl9hcGJ1YXJ0LmMgYi9ody9jaGFy L2dybGliX2FwYnVhcnQuYwppbmRleCBkMzcwNjA5YTUyLi43YjU3ZGNlN2ZiIDEwMDY0NAotLS0g YS9ody9jaGFyL2dybGliX2FwYnVhcnQuYworKysgYi9ody9jaGFyL2dybGliX2FwYnVhcnQuYwpA QCAtMTMwLDcgKzEzMCw3IEBAIHN0YXRpYyB2b2lkIHVhcnRfYWRkX3RvX2ZpZm8oVUFSVCAgICAg ICAgICAqdWFydCwKICAgICB1YXJ0LT5sZW4gKz0gbGVuZ3RoOwogfQogCi1zdGF0aWMgaW50IGdy bGliX2FwYnVhcnRfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQorc3RhdGljIHNpemVfdCBncmxp Yl9hcGJ1YXJ0X2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBVQVJUICp1YXJ0ID0g b3BhcXVlOwogCmRpZmYgLS1naXQgYS9ody9jaGFyL2lteF9zZXJpYWwuYyBiL2h3L2NoYXIvaW14 X3NlcmlhbC5jCmluZGV4IGI5ZmRmYWViMzguLmFiYmU2ODU3MWQgMTAwNjQ0Ci0tLSBhL2h3L2No YXIvaW14X3NlcmlhbC5jCisrKyBiL2h3L2NoYXIvaW14X3NlcmlhbC5jCkBAIC0yOTMsNyArMjkz LDcgQEAgc3RhdGljIHZvaWQgaW14X3NlcmlhbF93cml0ZSh2b2lkICpvcGFxdWUsIGh3YWRkciBv ZmZzZXQsCiAgICAgfQogfQogCi1zdGF0aWMgaW50IGlteF9jYW5fcmVjZWl2ZSh2b2lkICpvcGFx dWUpCitzdGF0aWMgc2l6ZV90IGlteF9jYW5fcmVjZWl2ZSh2b2lkICpvcGFxdWUpCiB7CiAgICAg SU1YU2VyaWFsU3RhdGUgKnMgPSAoSU1YU2VyaWFsU3RhdGUgKilvcGFxdWU7CiAgICAgcmV0dXJu ICEocy0+dXNyMSAmIFVTUjFfUlJEWSk7CmRpZmYgLS1naXQgYS9ody9jaGFyL2lwb2N0YWwyMzIu YyBiL2h3L2NoYXIvaXBvY3RhbDIzMi5jCmluZGV4IDA4ZTNmOWU0NWYuLmJlMjEzMDNkY2QgMTAw NjQ0Ci0tLSBhL2h3L2NoYXIvaXBvY3RhbDIzMi5jCisrKyBiL2h3L2NoYXIvaXBvY3RhbDIzMi5j CkBAIC00NjEsMTAgKzQ2MSwxMCBAQCBzdGF0aWMgdm9pZCBtZW1fd3JpdGU4KElQYWNrRGV2aWNl ICppcCwgdWludDMyX3QgYWRkciwgdWludDhfdCB2YWwpCiAgICAgfQogfQogCi1zdGF0aWMgaW50 IGhvc3RkZXZfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQorc3RhdGljIHNpemVfdCBob3N0ZGV2 X2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBTQ0MyNjk4Q2hhbm5lbCAqY2ggPSBv cGFxdWU7Ci0gICAgaW50IGF2YWlsYWJsZV9ieXRlcyA9IFJYX0ZJRk9fU0laRSAtIGNoLT5yeF9w ZW5kaW5nOworICAgIHNpemVfdCBhdmFpbGFibGVfYnl0ZXMgPSBSWF9GSUZPX1NJWkUgLSBjaC0+ cnhfcGVuZGluZzsKICAgICByZXR1cm4gY2gtPnJ4X2VuYWJsZWQgPyBhdmFpbGFibGVfYnl0ZXMg OiAwOwogfQogCmRpZmYgLS1naXQgYS9ody9jaGFyL2xtMzJfanVhcnQuYyBiL2h3L2NoYXIvbG0z Ml9qdWFydC5jCmluZGV4IGVjYjYxZWUwODYuLjUxZTU5OGM1NzAgMTAwNjQ0Ci0tLSBhL2h3L2No YXIvbG0zMl9qdWFydC5jCisrKyBiL2h3L2NoYXIvbG0zMl9qdWFydC5jCkBAIC05NSw3ICs5NSw3 IEBAIHN0YXRpYyB2b2lkIGp1YXJ0X3J4KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVm LCBzaXplX3Qgc2l6ZSkKICAgICBzLT5qcnggPSAqYnVmIHwgSlJYX0ZVTEw7CiB9CiAKLXN0YXRp YyBpbnQganVhcnRfY2FuX3J4KHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3QganVhcnRfY2Fu X3J4KHZvaWQgKm9wYXF1ZSkKIHsKICAgICBMTTMySnVhcnRTdGF0ZSAqcyA9IG9wYXF1ZTsKIApk aWZmIC0tZ2l0IGEvaHcvY2hhci9sbTMyX3VhcnQuYyBiL2h3L2NoYXIvbG0zMl91YXJ0LmMKaW5k ZXggZWUwYmY4ZTExNy4uMjU5MzQzNGY4ZiAxMDA2NDQKLS0tIGEvaHcvY2hhci9sbTMyX3VhcnQu YworKysgYi9ody9jaGFyL2xtMzJfdWFydC5jCkBAIC0yMjUsNyArMjI1LDcgQEAgc3RhdGljIHZv aWQgdWFydF9yeCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUp CiAgICAgdWFydF91cGRhdGVfaXJxKHMpOwogfQogCi1zdGF0aWMgaW50IHVhcnRfY2FuX3J4KHZv aWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3QgdWFydF9jYW5fcngodm9pZCAqb3BhcXVlKQogewog ICAgIExNMzJVYXJ0U3RhdGUgKnMgPSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3L2NoYXIvbWNm X3VhcnQuYyBiL2h3L2NoYXIvbWNmX3VhcnQuYwppbmRleCBlMTI2ODYwYjQ2Li5jZDljNDk5YTUx IDEwMDY0NAotLS0gYS9ody9jaGFyL21jZl91YXJ0LmMKKysrIGIvaHcvY2hhci9tY2ZfdWFydC5j CkBAIC0yNjcsNyArMjY3LDcgQEAgc3RhdGljIHZvaWQgbWNmX3VhcnRfZXZlbnQodm9pZCAqb3Bh cXVlLCBpbnQgZXZlbnQpCiAgICAgfQogfQogCi1zdGF0aWMgaW50IG1jZl91YXJ0X2Nhbl9yZWNl aXZlKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3QgbWNmX3VhcnRfY2FuX3JlY2VpdmUodm9p ZCAqb3BhcXVlKQogewogICAgIG1jZl91YXJ0X3N0YXRlICpzID0gKG1jZl91YXJ0X3N0YXRlICop b3BhcXVlOwogCmRpZmYgLS1naXQgYS9ody9jaGFyL21pbGt5bWlzdC11YXJ0LmMgYi9ody9jaGFy L21pbGt5bWlzdC11YXJ0LmMKaW5kZXggYTEwYzA5NTdmZi4uMGVmY2Q4MjljZSAxMDA2NDQKLS0t IGEvaHcvY2hhci9taWxreW1pc3QtdWFydC5jCisrKyBiL2h3L2NoYXIvbWlsa3ltaXN0LXVhcnQu YwpAQCAtMTcwLDcgKzE3MCw3IEBAIHN0YXRpYyB2b2lkIHVhcnRfcngodm9pZCAqb3BhcXVlLCBj b25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKQogICAgIHVhcnRfdXBkYXRlX2lycShzKTsK IH0KIAotc3RhdGljIGludCB1YXJ0X2Nhbl9yeCh2b2lkICpvcGFxdWUpCitzdGF0aWMgc2l6ZV90 IHVhcnRfY2FuX3J4KHZvaWQgKm9wYXF1ZSkKIHsKICAgICBNaWxreW1pc3RVYXJ0U3RhdGUgKnMg PSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3L2NoYXIvcGFyYWxsZWwuYyBiL2h3L2NoYXIvcGFy YWxsZWwuYwppbmRleCBhODBkYTQ3ZWNmLi5mZTBlNWM4NzU2IDEwMDY0NAotLS0gYS9ody9jaGFy L3BhcmFsbGVsLmMKKysrIGIvaHcvY2hhci9wYXJhbGxlbC5jCkBAIC01MTMsNyArNTEzLDcgQEAg c3RhdGljIGNvbnN0IFZNU3RhdGVEZXNjcmlwdGlvbiB2bXN0YXRlX3BhcmFsbGVsX2lzYSA9IHsK ICAgICB9CiB9OwogCi1zdGF0aWMgaW50IHBhcmFsbGVsX2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1 ZSkKK3N0YXRpYyBzaXplX3QgcGFyYWxsZWxfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQogewog ICAgICByZXR1cm4gMTsKIH0KZGlmZiAtLWdpdCBhL2h3L2NoYXIvcGwwMTEuYyBiL2h3L2NoYXIv cGwwMTEuYwppbmRleCAzNzk3M2MzMmNlLi4xMDE5NTY3OWI0IDEwMDY0NAotLS0gYS9ody9jaGFy L3BsMDExLmMKKysrIGIvaHcvY2hhci9wbDAxMS5jCkBAIC0yMjQsMTAgKzIyNCwxMCBAQCBzdGF0 aWMgdm9pZCBwbDAxMV93cml0ZSh2b2lkICpvcGFxdWUsIGh3YWRkciBvZmZzZXQsCiAgICAgfQog fQogCi1zdGF0aWMgaW50IHBsMDExX2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBz aXplX3QgcGwwMTFfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQogewogICAgIFBMMDExU3RhdGUg KnMgPSAoUEwwMTFTdGF0ZSAqKW9wYXF1ZTsKLSAgICBpbnQgcjsKKyAgICBzaXplX3QgcjsKIAog ICAgIGlmIChzLT5sY3IgJiAweDEwKSB7CiAgICAgICAgIHIgPSBzLT5yZWFkX2NvdW50IDwgMTY7 CmRpZmYgLS1naXQgYS9ody9jaGFyL3NjbHBjb25zb2xlLWxtLmMgYi9ody9jaGFyL3NjbHBjb25z b2xlLWxtLmMKaW5kZXggYTA0YTJhOWQ4MC4uYWQ1Zjc5MTIyNyAxMDA2NDQKLS0tIGEvaHcvY2hh ci9zY2xwY29uc29sZS1sbS5jCisrKyBiL2h3L2NoYXIvc2NscGNvbnNvbGUtbG0uYwpAQCAtNjEs NyArNjEsNyBAQCB0eXBlZGVmIHN0cnVjdCBTQ0xQQ29uc29sZUxNIHsKICAqIHRydW5jYXRlZCB0 byB0aGUgZ3Vlc3QgaW4gY2FzZSBpdCBkb2Vzbid0IGZpdCBpbnRvIHRoZSBTQ0NCLgogICovCiAK LXN0YXRpYyBpbnQgY2hyX2Nhbl9yZWFkKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3QgY2hy X2Nhbl9yZWFkKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBTQ0xQQ29uc29sZUxNICpzY29uID0gb3Bh cXVlOwogCmRpZmYgLS1naXQgYS9ody9jaGFyL3NjbHBjb25zb2xlLmMgYi9ody9jaGFyL3NjbHBj b25zb2xlLmMKaW5kZXggNjIzOTVjMTlmNC4uNWVjMWM0YjYwNyAxMDA2NDQKLS0tIGEvaHcvY2hh ci9zY2xwY29uc29sZS5jCisrKyBiL2h3L2NoYXIvc2NscGNvbnNvbGUuYwpAQCAtNDcsMTAgKzQ3 LDEwIEBAIHR5cGVkZWYgc3RydWN0IFNDTFBDb25zb2xlIHsKIC8qIGNoYXJhY3RlciBsYXllciBj YWxsLWJhY2sgZnVuY3Rpb25zICovCiAKIC8qIFJldHVybiBudW1iZXIgb2YgYnl0ZXMgdGhhdCBm aXQgaW50byBpb3YgYnVmZmVyICovCi1zdGF0aWMgaW50IGNocl9jYW5fcmVhZCh2b2lkICpvcGFx dWUpCitzdGF0aWMgc2l6ZV90IGNocl9jYW5fcmVhZCh2b2lkICpvcGFxdWUpCiB7CiAgICAgU0NM UENvbnNvbGUgKnNjb24gPSBvcGFxdWU7Ci0gICAgaW50IGF2YWlsID0gU0laRV9CVUZGRVJfVlQy MjAgLSBzY29uLT5pb3ZfZGF0YV9sZW47CisgICAgc2l6ZV90IGF2YWlsID0gU0laRV9CVUZGRVJf VlQyMjAgLSBzY29uLT5pb3ZfZGF0YV9sZW47CiAKICAgICBpZiAoYXZhaWwgPT0gMCkgewogICAg ICAgICBzY29uLT5ub3RpZnkgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvaHcvY2hhci9zZXJpYWwuYyBi L2h3L2NoYXIvc2VyaWFsLmMKaW5kZXggNjliYWVkMTA1Yi4uZjgzYmI4ZWU0ZSAxMDA2NDQKLS0t IGEvaHcvY2hhci9zZXJpYWwuYworKysgYi9ody9jaGFyL3NlcmlhbC5jCkBAIC01NjEsNyArNTYx LDcgQEAgc3RhdGljIHVpbnQ2NF90IHNlcmlhbF9pb3BvcnRfcmVhZCh2b2lkICpvcGFxdWUsIGh3 YWRkciBhZGRyLCB1bnNpZ25lZCBzaXplKQogICAgIHJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBp bnQgc2VyaWFsX2Nhbl9yZWNlaXZlKFNlcmlhbFN0YXRlICpzKQorc3RhdGljIHNpemVfdCBzZXJp YWxfY2FuX3JlY2VpdmUoU2VyaWFsU3RhdGUgKnMpCiB7CiAgICAgaWYocy0+ZmNyICYgVUFSVF9G Q1JfRkUpIHsKICAgICAgICAgaWYgKHMtPnJlY3ZfZmlmby5udW0gPCBVQVJUX0ZJRk9fTEVOR1RI KSB7CkBAIC02MDAsNyArNjAwLDcgQEAgc3RhdGljIHZvaWQgZmlmb190aW1lb3V0X2ludCAodm9p ZCAqb3BhcXVlKSB7CiAgICAgfQogfQogCi1zdGF0aWMgaW50IHNlcmlhbF9jYW5fcmVjZWl2ZTEo dm9pZCAqb3BhcXVlKQorc3RhdGljIHNpemVfdCBzZXJpYWxfY2FuX3JlY2VpdmUxKHZvaWQgKm9w YXF1ZSkKIHsKICAgICBTZXJpYWxTdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICByZXR1cm4gc2VyaWFs X2Nhbl9yZWNlaXZlKHMpOwpkaWZmIC0tZ2l0IGEvaHcvY2hhci9zaF9zZXJpYWwuYyBiL2h3L2No YXIvc2hfc2VyaWFsLmMKaW5kZXggMDRmZGNlZTMyOC4uZjU0MDJkM2I1YyAxMDA2NDQKLS0tIGEv aHcvY2hhci9zaF9zZXJpYWwuYworKysgYi9ody9jaGFyL3NoX3NlcmlhbC5jCkBAIC0zMDAsNyAr MzAwLDcgQEAgc3RhdGljIHVpbnQ2NF90IHNoX3NlcmlhbF9yZWFkKHZvaWQgKm9wYXF1ZSwgaHdh ZGRyIG9mZnMsCiAgICAgcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBzaF9zZXJpYWxfY2Fu X3JlY2VpdmUoc2hfc2VyaWFsX3N0YXRlICpzKQorc3RhdGljIHNpemVfdCBzaF9zZXJpYWxfY2Fu X3JlY2VpdmUoc2hfc2VyaWFsX3N0YXRlICpzKQogewogICAgIHJldHVybiBzLT5zY3IgJiAoMSA8 PCA0KTsKIH0KQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBzaF9zZXJpYWxfcmVjZWl2 ZV9icmVhayhzaF9zZXJpYWxfc3RhdGUgKnMpCiAgICAgICAgIHMtPnNyIHw9ICgxIDw8IDQpOwog fQogCi1zdGF0aWMgaW50IHNoX3NlcmlhbF9jYW5fcmVjZWl2ZTEodm9pZCAqb3BhcXVlKQorc3Rh dGljIHNpemVfdCBzaF9zZXJpYWxfY2FuX3JlY2VpdmUxKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBz aF9zZXJpYWxfc3RhdGUgKnMgPSBvcGFxdWU7CiAgICAgcmV0dXJuIHNoX3NlcmlhbF9jYW5fcmVj ZWl2ZShzKTsKZGlmZiAtLWdpdCBhL2h3L2NoYXIvc3BhcHJfdnR5LmMgYi9ody9jaGFyL3NwYXBy X3Z0eS5jCmluZGV4IDQyYjRiNjFjY2UuLjBhYzlkYzg0NDggMTAwNjQ0Ci0tLSBhL2h3L2NoYXIv c3BhcHJfdnR5LmMKKysrIGIvaHcvY2hhci9zcGFwcl92dHkuYwpAQCAtMjEsNyArMjEsNyBAQCB0 eXBlZGVmIHN0cnVjdCBWSU9zUEFQUlZUWURldmljZSB7CiAjZGVmaW5lIFZJT19TUEFQUl9WVFlf REVWSUNFKG9iaikgXAogICAgICBPQkpFQ1RfQ0hFQ0soVklPc1BBUFJWVFlEZXZpY2UsIChvYmop LCBUWVBFX1ZJT19TUEFQUl9WVFlfREVWSUNFKQogCi1zdGF0aWMgaW50IHZ0eV9jYW5fcmVjZWl2 ZSh2b2lkICpvcGFxdWUpCitzdGF0aWMgc2l6ZV90IHZ0eV9jYW5fcmVjZWl2ZSh2b2lkICpvcGFx dWUpCiB7CiAgICAgVklPc1BBUFJWVFlEZXZpY2UgKmRldiA9IFZJT19TUEFQUl9WVFlfREVWSUNF KG9wYXF1ZSk7CiAKZGlmZiAtLWdpdCBhL2h3L2NoYXIvc3RtMzJmMnh4X3VzYXJ0LmMgYi9ody9j aGFyL3N0bTMyZjJ4eF91c2FydC5jCmluZGV4IDc4YmYxNDI2NzguLjYzMjU2ZGE3N2IgMTAwNjQ0 Ci0tLSBhL2h3L2NoYXIvc3RtMzJmMnh4X3VzYXJ0LmMKKysrIGIvaHcvY2hhci9zdG0zMmYyeHhf dXNhcnQuYwpAQCAtMzgsNyArMzgsNyBAQAogCiAjZGVmaW5lIERCX1BSSU5UKGZtdCwgYXJncy4u LikgREJfUFJJTlRfTCgxLCBmbXQsICMjIGFyZ3MpCiAKLXN0YXRpYyBpbnQgc3RtMzJmMnh4X3Vz YXJ0X2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3Qgc3RtMzJmMnh4X3Vz YXJ0X2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBTVE0zMkYyWFhVc2FydFN0YXRl ICpzID0gb3BhcXVlOwogCmRpZmYgLS1naXQgYS9ody9jaGFyL3Rlcm1pbmFsMzI3MC5jIGIvaHcv Y2hhci90ZXJtaW5hbDMyNzAuYwppbmRleCAwNzY1MTY5OTFlLi5hOWRiMGEzNDAxIDEwMDY0NAot LS0gYS9ody9jaGFyL3Rlcm1pbmFsMzI3MC5jCisrKyBiL2h3L2NoYXIvdGVybWluYWwzMjcwLmMK QEAgLTM4LDcgKzM4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVGVybWluYWwzMjcwIHsKICNkZWZpbmUg VEVSTUlOQUxfMzI3MChvYmopIFwKICAgICAgICAgT0JKRUNUX0NIRUNLKFRlcm1pbmFsMzI3MCwg KG9iaiksIFRZUEVfVEVSTUlOQUxfMzI3MCkKIAotc3RhdGljIGludCB0ZXJtaW5hbF9jYW5fcmVh ZCh2b2lkICpvcGFxdWUpCitzdGF0aWMgc2l6ZV90IHRlcm1pbmFsX2Nhbl9yZWFkKHZvaWQgKm9w YXF1ZSkKIHsKICAgICBUZXJtaW5hbDMyNzAgKnQgPSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3 L2NoYXIvdmlydGlvLWNvbnNvbGUuYyBiL2h3L2NoYXIvdmlydGlvLWNvbnNvbGUuYwppbmRleCBl M2QzNjhiOTc2Li5iOTQyMTU5ZDgyIDEwMDY0NAotLS0gYS9ody9jaGFyL3ZpcnRpby1jb25zb2xl LmMKKysrIGIvaHcvY2hhci92aXJ0aW8tY29uc29sZS5jCkBAIC0xMjYsNyArMTI2LDcgQEAgc3Rh dGljIHZvaWQgZ3Vlc3Rfd3JpdGFibGUoVmlydElPU2VyaWFsUG9ydCAqcG9ydCkKIH0KIAogLyog UmVhZGluZXNzIG9mIHRoZSBndWVzdCB0byBhY2NlcHQgZGF0YSBvbiBhIHBvcnQgKi8KLXN0YXRp YyBpbnQgY2hyX2Nhbl9yZWFkKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3QgY2hyX2Nhbl9y ZWFkKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBWaXJ0Q29uc29sZSAqdmNvbiA9IG9wYXF1ZTsKIApk aWZmIC0tZ2l0IGEvaHcvY2hhci94ZW5fY29uc29sZS5jIGIvaHcvY2hhci94ZW5fY29uc29sZS5j CmluZGV4IGNhOTBjNWMxN2UuLjBhMWNiYWVhZmEgMTAwNjQ0Ci0tLSBhL2h3L2NoYXIveGVuX2Nv bnNvbGUuYworKysgYi9ody9jaGFyL3hlbl9jb25zb2xlLmMKQEAgLTExNiw3ICsxMTYsNyBAQCBz dGF0aWMgaW50IHJpbmdfZnJlZV9ieXRlcyhzdHJ1Y3QgWGVuQ29uc29sZSAqY29uKQogICAgIHJl dHVybiAoc2l6ZW9mKGludGYtPmluKSAtIHNwYWNlKTsKIH0KIAotc3RhdGljIGludCB4ZW5jb25z X2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3QgeGVuY29uc19jYW5fcmVj ZWl2ZSh2b2lkICpvcGFxdWUpCiB7CiAgICAgc3RydWN0IFhlbkNvbnNvbGUgKmNvbiA9IG9wYXF1 ZTsKICAgICByZXR1cm4gcmluZ19mcmVlX2J5dGVzKGNvbik7CmRpZmYgLS1naXQgYS9ody9jaGFy L3hpbGlueF91YXJ0bGl0ZS5jIGIvaHcvY2hhci94aWxpbnhfdWFydGxpdGUuYwppbmRleCBiMWFi ZjhiNjA0Li4yNDczY2IwYWQ3IDEwMDY0NAotLS0gYS9ody9jaGFyL3hpbGlueF91YXJ0bGl0ZS5j CisrKyBiL2h3L2NoYXIveGlsaW54X3VhcnRsaXRlLmMKQEAgLTE5NSw3ICsxOTUsNyBAQCBzdGF0 aWMgdm9pZCB1YXJ0X3J4KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBzaXplX3Qg c2l6ZSkKICAgICB1YXJ0X3VwZGF0ZV9pcnEocyk7CiB9CiAKLXN0YXRpYyBpbnQgdWFydF9jYW5f cngodm9pZCAqb3BhcXVlKQorc3RhdGljIHNpemVfdCB1YXJ0X2Nhbl9yeCh2b2lkICpvcGFxdWUp CiB7CiAgICAgWGlsaW54VUFSVExpdGUgKnMgPSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3L2lw bWkvaXBtaV9ibWNfZXh0ZXJuLmMgYi9ody9pcG1pL2lwbWlfYm1jX2V4dGVybi5jCmluZGV4IGM1 MmY4MGY3NzEuLjcxMDdkMmZlOWYgMTAwNjQ0Ci0tLSBhL2h3L2lwbWkvaXBtaV9ibWNfZXh0ZXJu LmMKKysrIGIvaHcvaXBtaS9pcG1pX2JtY19leHRlcm4uYwpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0 YXRpYyB2b2lkIGhhbmRsZV9tc2coSVBNSUJtY0V4dGVybiAqaWJlKQogICAgIGstPmhhbmRsZV9y c3AoaWJlLT5wYXJlbnQuaW50ZiwgaWJlLT5pbmJ1ZlswXSwgaWJlLT5pbmJ1ZiArIDEsIGliZS0+ aW5wb3MgLSAxKTsKIH0KIAotc3RhdGljIGludCBjYW5fcmVjZWl2ZSh2b2lkICpvcGFxdWUpCitz dGF0aWMgc2l6ZV90IGNhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKIHsKICAgICByZXR1cm4gMTsK IH0KZGlmZiAtLWdpdCBhL2h3L21pc2MvaXZzaG1lbS5jIGIvaHcvbWlzYy9pdnNobWVtLmMKaW5k ZXggZjUwNjQ3OTg0NS4uMDFiMzMxYWFhYiAxMDA2NDQKLS0tIGEvaHcvbWlzYy9pdnNobWVtLmMK KysrIGIvaHcvbWlzYy9pdnNobWVtLmMKQEAgLTYyMCw3ICs2MjAsNyBAQCBzdGF0aWMgdm9pZCBw cm9jZXNzX21zZyhJVlNobWVtU3RhdGUgKnMsIGludDY0X3QgbXNnLCBpbnQgZmQsIEVycm9yICoq ZXJycCkKICAgICB9CiB9CiAKLXN0YXRpYyBpbnQgaXZzaG1lbV9jYW5fcmVjZWl2ZSh2b2lkICpv cGFxdWUpCitzdGF0aWMgc2l6ZV90IGl2c2htZW1fY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQog ewogICAgIElWU2htZW1TdGF0ZSAqcyA9IG9wYXF1ZTsKIApkaWZmIC0tZ2l0IGEvaHcvcmlzY3Yv cmlzY3ZfaHRpZi5jIGIvaHcvcmlzY3YvcmlzY3ZfaHRpZi5jCmluZGV4IDI2MjVmNWU5ZTguLjU2 NTEyMGRmN2QgMTAwNjQ0Ci0tLSBhL2h3L3Jpc2N2L3Jpc2N2X2h0aWYuYworKysgYi9ody9yaXNj di9yaXNjdl9odGlmLmMKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBodGlmX3N5bWJvbF9jYWxsYmFj ayhjb25zdCBjaGFyICpzdF9uYW1lLCBpbnQgc3RfaW5mbywgdWludDY0X3Qgc3RfdmFsdWUsCiAv KgogICogQ2FsbGVkIGJ5IHRoZSBjaGFyIGRldiB0byBzZWUgaWYgSFRJRiBpcyByZWFkeSB0byBh Y2NlcHQgaW5wdXQuCiAgKi8KLXN0YXRpYyBpbnQgaHRpZl9jYW5fcmVjdih2b2lkICpvcGFxdWUp CitzdGF0aWMgc2l6ZV90IGh0aWZfY2FuX3JlY3Yodm9pZCAqb3BhcXVlKQogewogICAgIHJldHVy biAxOwogfQpkaWZmIC0tZ2l0IGEvaHcvcmlzY3Yvc2lmaXZlX3VhcnQuYyBiL2h3L3Jpc2N2L3Np Zml2ZV91YXJ0LmMKaW5kZXggZDRjYmY5MWI5Zi4uYzZhOGY1ZmJjNCAxMDA2NDQKLS0tIGEvaHcv cmlzY3Yvc2lmaXZlX3VhcnQuYworKysgYi9ody9yaXNjdi9zaWZpdmVfdWFydC5jCkBAIC0xMzcs NyArMTM3LDcgQEAgc3RhdGljIHZvaWQgdWFydF9yeCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4 X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiAgICAgdXBkYXRlX2lycShzKTsKIH0KIAotc3RhdGljIGlu dCB1YXJ0X2Nhbl9yeCh2b2lkICpvcGFxdWUpCitzdGF0aWMgc2l6ZV90IHVhcnRfY2FuX3J4KHZv aWQgKm9wYXF1ZSkKIHsKICAgICBTaUZpdmVVQVJUU3RhdGUgKnMgPSBvcGFxdWU7CiAKZGlmZiAt LWdpdCBhL2h3L3VzYi9jY2lkLWNhcmQtcGFzc3RocnUuYyBiL2h3L3VzYi9jY2lkLWNhcmQtcGFz c3RocnUuYwppbmRleCBiNmZhMzVhNGI0Li41ZGMxMGVmODUwIDEwMDY0NAotLS0gYS9ody91c2Iv Y2NpZC1jYXJkLXBhc3N0aHJ1LmMKKysrIGIvaHcvdXNiL2NjaWQtY2FyZC1wYXNzdGhydS5jCkBA IC0xMTIsNyArMTEyLDcgQEAgc3RhdGljIHZvaWQgY2NpZF9jYXJkX3ZzY2FyZF9zZW5kX2luaXQo UGFzc3RocnVTdGF0ZSAqcykKICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDhfdCAqKSZt c2csIHNpemVvZihtc2cpKTsKIH0KIAotc3RhdGljIGludCBjY2lkX2NhcmRfdnNjYXJkX2Nhbl9y ZWFkKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3QgY2NpZF9jYXJkX3ZzY2FyZF9jYW5fcmVh ZCh2b2lkICpvcGFxdWUpCiB7CiAgICAgUGFzc3RocnVTdGF0ZSAqY2FyZCA9IG9wYXF1ZTsKIApk aWZmIC0tZ2l0IGEvaHcvdXNiL2Rldi1zZXJpYWwuYyBiL2h3L3VzYi9kZXYtc2VyaWFsLmMKaW5k ZXggZWZhZWFiNDg0ZC4uZTk3MzVkNGI1ZCAxMDA2NDQKLS0tIGEvaHcvdXNiL2Rldi1zZXJpYWwu YworKysgYi9ody91c2IvZGV2LXNlcmlhbC5jCkBAIC00MjEsNyArNDIxLDcgQEAgc3RhdGljIHZv aWQgdXNiX3NlcmlhbF9oYW5kbGVfZGF0YShVU0JEZXZpY2UgKmRldiwgVVNCUGFja2V0ICpwKQog ICAgIH0KIH0KIAotc3RhdGljIGludCB1c2Jfc2VyaWFsX2Nhbl9yZWFkKHZvaWQgKm9wYXF1ZSkK K3N0YXRpYyBzaXplX3QgdXNiX3NlcmlhbF9jYW5fcmVhZCh2b2lkICpvcGFxdWUpCiB7CiAgICAg VVNCU2VyaWFsU3RhdGUgKnMgPSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3L3VzYi9yZWRpcmVj dC5jIGIvaHcvdXNiL3JlZGlyZWN0LmMKaW5kZXggYTczMDc2YmE3OC4uZjAyNWM5MWQyOCAxMDA2 NDQKLS0tIGEvaHcvdXNiL3JlZGlyZWN0LmMKKysrIGIvaHcvdXNiL3JlZGlyZWN0LmMKQEAgLTEy ODQsNyArMTI4NCw3IEBAIHN0YXRpYyB2b2lkIHVzYnJlZGlyX2RvX2F0dGFjaCh2b2lkICpvcGFx dWUpCiAgKiBjaGFyZGV2IGNhbGxiYWNrcwogICovCiAKLXN0YXRpYyBpbnQgdXNicmVkaXJfY2hh cmRldl9jYW5fcmVhZCh2b2lkICpvcGFxdWUpCitzdGF0aWMgc2l6ZV90IHVzYnJlZGlyX2NoYXJk ZXZfY2FuX3JlYWQodm9pZCAqb3BhcXVlKQogewogICAgIFVTQlJlZGlyRGV2aWNlICpkZXYgPSBv cGFxdWU7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvcWVtdS9tYWluLWxvb3AuaCBiL2luY2x1ZGUv cWVtdS9tYWluLWxvb3AuaAppbmRleCBjNWE3Mjk5MjY2Li5iNTFmOWE1MjY3IDEwMDY0NAotLS0g YS9pbmNsdWRlL3FlbXUvbWFpbi1sb29wLmgKKysrIGIvaW5jbHVkZS9xZW11L21haW4tbG9vcC5o CkBAIC0xODIsNyArMTgyLDcgQEAgdHlwZWRlZiB2b2lkIElPUmVhZEhhbmRsZXIodm9pZCAqb3Bh cXVlLCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKTsKICAqIGlzIGNhbGxlZCBhZ2Fp bi4gIGFpb19ub3RpZnkoKSBvciBxZW11X25vdGlmeV9ldmVudCgpIGNhbiBiZSB1c2VkIHRvIGtp Y2sKICAqIHRoZSBldmVudCBsb29wLgogICovCi10eXBlZGVmIGludCBJT0NhblJlYWRIYW5kbGVy KHZvaWQgKm9wYXF1ZSk7Cit0eXBlZGVmIHNpemVfdCBJT0NhblJlYWRIYW5kbGVyKHZvaWQgKm9w YXF1ZSk7CiAKIC8qKgogICogcWVtdV9zZXRfZmRfaGFuZGxlcjogUmVnaXN0ZXIgYSBmaWxlIGRl c2NyaXB0b3Igd2l0aCB0aGUgbWFpbiBsb29wCmRpZmYgLS1naXQgYS9tb25pdG9yLmMgYi9tb25p dG9yLmMKaW5kZXggMTI0MDFlYzYwYi4uMzQxN2M1ZjA0NCAxMDA2NDQKLS0tIGEvbW9uaXRvci5j CisrKyBiL21vbml0b3IuYwpAQCAtNDAzOCw3ICs0MDM4LDcgQEAgY2xlYW51cDoKICAgICBmcmVl X2NtZGxpbmVfYXJncyhhcmdzLCBuYl9hcmdzKTsKIH0KIAotc3RhdGljIGludCBtb25pdG9yX2Nh bl9yZWFkKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBzaXplX3QgbW9uaXRvcl9jYW5fcmVhZCh2b2lk ICpvcGFxdWUpCiB7CiAgICAgTW9uaXRvciAqbW9uID0gb3BhcXVlOwogCmRpZmYgLS1naXQgYS9u ZXQvY29sby1jb21wYXJlLmMgYi9uZXQvY29sby1jb21wYXJlLmMKaW5kZXggNDMzZTliYTI4Ny4u OTMyMWQ4MWE5OCAxMDA2NDQKLS0tIGEvbmV0L2NvbG8tY29tcGFyZS5jCisrKyBiL25ldC9jb2xv LWNvbXBhcmUuYwpAQCAtNjgzLDcgKzY4Myw3IEBAIGVycjoKICAgICByZXR1cm4gcmV0IDwgMCA/ IHJldCA6IC1FSU87CiB9CiAKLXN0YXRpYyBpbnQgY29tcGFyZV9jaHJfY2FuX3JlYWQodm9pZCAq b3BhcXVlKQorc3RhdGljIHNpemVfdCBjb21wYXJlX2Nocl9jYW5fcmVhZCh2b2lkICpvcGFxdWUp CiB7CiAgICAgcmV0dXJuIENPTVBBUkVfUkVBRF9MRU5fTUFYOwogfQpkaWZmIC0tZ2l0IGEvbmV0 L2ZpbHRlci1taXJyb3IuYyBiL25ldC9maWx0ZXItbWlycm9yLmMKaW5kZXggMjdiNmU1MmExZC4u OGUxNjUzNWZhZCAxMDA2NDQKLS0tIGEvbmV0L2ZpbHRlci1taXJyb3IuYworKysgYi9uZXQvZmls dGVyLW1pcnJvci5jCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIHZvaWQgcmVkaXJlY3Rvcl90 b19maWx0ZXIoTmV0RmlsdGVyU3RhdGUgKm5mLAogICAgICB9CiB9CiAKLXN0YXRpYyBpbnQgcmVk aXJlY3Rvcl9jaHJfY2FuX3JlYWQodm9pZCAqb3BhcXVlKQorc3RhdGljIHNpemVfdCByZWRpcmVj dG9yX2Nocl9jYW5fcmVhZCh2b2lkICpvcGFxdWUpCiB7CiAgICAgcmV0dXJuIFJFRElSRUNUT1Jf TUFYX0xFTjsKIH0KZGlmZiAtLWdpdCBhL25ldC9zbGlycC5jIGIvbmV0L3NsaXJwLmMKaW5kZXgg NWU4NjRmNGE0Zi4uOWRiY2FmZmIwNyAxMDA2NDQKLS0tIGEvbmV0L3NsaXJwLmMKKysrIGIvbmV0 L3NsaXJwLmMKQEAgLTcxMiw3ICs3MTIsNyBAQCBzdHJ1Y3QgR3Vlc3RGd2QgewogICAgIFNsaXJw ICpzbGlycDsKIH07CiAKLXN0YXRpYyBpbnQgZ3Vlc3Rmd2RfY2FuX3JlYWQodm9pZCAqb3BhcXVl KQorc3RhdGljIHNpemVfdCBndWVzdGZ3ZF9jYW5fcmVhZCh2b2lkICpvcGFxdWUpCiB7CiAgICAg c3RydWN0IEd1ZXN0RndkICpmd2QgPSBvcGFxdWU7CiAgICAgcmV0dXJuIHNsaXJwX3NvY2tldF9j YW5fcmVjdihmd2QtPnNsaXJwLCBmd2QtPnNlcnZlciwgZndkLT5wb3J0KTsKZGlmZiAtLWdpdCBh L3F0ZXN0LmMgYi9xdGVzdC5jCmluZGV4IDA0OTRhZmRmYjMuLmJjNjg1NzAwY2QgMTAwNjQ0Ci0t LSBhL3F0ZXN0LmMKKysrIGIvcXRlc3QuYwpAQCAtNjY1LDcgKzY2NSw3IEBAIHN0YXRpYyB2b2lk IHF0ZXN0X3JlYWQodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXpl KQogICAgIHF0ZXN0X3Byb2Nlc3NfaW5idWYoY2hyLCBpbmJ1Zik7CiB9CiAKLXN0YXRpYyBpbnQg cXRlc3RfY2FuX3JlYWQodm9pZCAqb3BhcXVlKQorc3RhdGljIHNpemVfdCBxdGVzdF9jYW5fcmVh ZCh2b2lkICpvcGFxdWUpCiB7CiAgICAgcmV0dXJuIDEwMjQ7CiB9CmRpZmYgLS1naXQgYS90YXJn ZXQveHRlbnNhL3h0ZW5zYS1zZW1pLmMgYi90YXJnZXQveHRlbnNhL3h0ZW5zYS1zZW1pLmMKaW5k ZXggMjQxODc0ZWE0ZS4uYTU3ZTYxZWY0YSAxMDA2NDQKLS0tIGEvdGFyZ2V0L3h0ZW5zYS94dGVu c2Etc2VtaS5jCisrKyBiL3RhcmdldC94dGVuc2EveHRlbnNhLXNlbWkuYwpAQCAtMTYxLDcgKzE2 MSw3IEBAIHR5cGVkZWYgc3RydWN0IFh0ZW5zYVNpbUNvbnNvbGUgewogCiBzdGF0aWMgWHRlbnNh U2ltQ29uc29sZSAqc2ltX2NvbnNvbGU7CiAKLXN0YXRpYyBpbnQgc2ltX2NvbnNvbGVfY2FuX3Jl YWQodm9pZCAqb3BhcXVlKQorc3RhdGljIHNpemVfdCBzaW1fY29uc29sZV9jYW5fcmVhZCh2b2lk ICpvcGFxdWUpCiB7CiAgICAgWHRlbnNhU2ltQ29uc29sZSAqcCA9IG9wYXF1ZTsKIAotLSAKMi4x Ny4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==