From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A374DC2D0BF for ; Wed, 18 Dec 2019 20:41:29 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6ACF8227BF for ; Wed, 18 Dec 2019 20:41:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MzAMaTiI" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6ACF8227BF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E26A089F33; Wed, 18 Dec 2019 20:41:28 +0000 (UTC) Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by gabe.freedesktop.org (Postfix) with ESMTPS id C7E2189F33 for ; Wed, 18 Dec 2019 20:41:27 +0000 (UTC) Received: by mail-wm1-x342.google.com with SMTP id b19so3235328wmj.4 for ; Wed, 18 Dec 2019 12:41:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=reply-to:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=3X9ysLucYTgpfwqqfkbjRktO53qyXWC2tV0Y8lPKKqo=; b=MzAMaTiIWklNjVWwMzm8JkEcWrOFsQw1BAbZ4a2WfKwVSuc0fE88r6KWwte+BD5756 +KrPKfb2hkExUtrmwtTrCJcerBK0+Og/G4R8+rI/MsO6SCnjLRcXX1HBpCXgepuguTI5 DHBKp+ptqBz5ThuOvfiHWlBMew7Iew63AZLVwQzOUZDl7gVFFNgOeGk8+52Qsp0aAKo9 z/fx8DphotpPgccQPMNrS8NVG4nfxpkyT58Qt1uMaJMd6wyNKE0+tzdqYT516q/hbLP0 AVWcStC/M3W6OCDEoE2p9Nz7nLbzVhTrH+LPrpNpKaoMGD/JP8MlsNcVUTIqzuEecY+Z BIGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=3X9ysLucYTgpfwqqfkbjRktO53qyXWC2tV0Y8lPKKqo=; b=Kv79d+VZjU/YCLi5F5UohQudubPiJTheqbfdtfYGH/7foWPNBWSVOObxiaLvp0I/DR NW8bdpnez37RmrdRbNTPNReERqgeGSFPZsgMOCK3aj0m+h88ZTd83e4CcILKHF1HpBXD AMHhbP/k/eDE+nqfFzoajRoeezKXdaY6hjjy2ZH+e8zuEb+PUCbY3Yd5SfddYCZnxufr olHeoxdaSyRTRSyMEDIeW4Pb/mbX/bXrR/nc98hMzu/HCViGuF38oKhTTpAS72hwJhVV dV6ov5WiHr8/J9ZEAmGXupl7sGGF2VOBlY2/aIKpPoITsiNIUqTlUPJqqLZ9m16T9uOQ 9Jiw== X-Gm-Message-State: APjAAAUeFfFSACXnq8+qoOg+6rBp38Pu/uEh1PxxIhavdULNbvPfBZpO qTKC0QB8eOirYgV7CN/XIeTVK+DjnK8= X-Google-Smtp-Source: APXvYqxfc/Snao/ZLSHrJVby2yCg6YibvTLsbt86tXrWRsHaUmniO3tl6ST56oal9wtP7eSwz3ReBw== X-Received: by 2002:a05:600c:248:: with SMTP id 8mr5613846wmj.175.1576701685274; Wed, 18 Dec 2019 12:41:25 -0800 (PST) Received: from [0.0.0.0] ([134.134.139.83]) by smtp.googlemail.com with ESMTPSA id m21sm3579247wmi.27.2019.12.18.12.41.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 Dec 2019 12:41:24 -0800 (PST) To: Ville Syrjala , intel-gfx@lists.freedesktop.org References: <20191204180549.1267-1-ville.syrjala@linux.intel.com> <20191204180549.1267-4-ville.syrjala@linux.intel.com> From: Juha-Pekka Heikkila Message-ID: <9632bbc3-43ce-3d7b-1ee9-3942a4e7b42e@gmail.com> Date: Wed, 18 Dec 2019 22:41:16 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20191204180549.1267-4-ville.syrjala@linux.intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH 3/9] drm/i915: Pass intel_encoder to enc_to_*() X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: juhapekka.heikkila@gmail.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" TG9vayBvayB0byBtZS4KClJldmlld2VkLWJ5OiBKdWhhLVBla2thIEhlaWtraWxhIDxqdWhhcGVr a2EuaGVpa2tpbGFAZ21haWwuY29tPgoKT24gNC4xMi4yMDE5IDIwLjA1LCBWaWxsZSBTeXJqYWxh IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gCj4gTG90cyBvZiBlbmNfdG9fZm9vKCZlbmNvZGVyLT5iYXNlKSBhcm91bmQuIFNp bXBsaWZ5IGJ5IHBhc3NpbmcKPiBpbiB0aGUgaW50ZWxfZW5jb2RlciBpbnN0ZWFkLgo+IAo+IEBm aW5kQAo+IGlkZW50aWZpZXIgRiA9fiAiXmVuY190b18uKiI7Cj4gaWRlbnRpZmllciBFOwo+IEBA Cj4gRihzdHJ1Y3QgZHJtX2VuY29kZXIgKkUpCj4gewo+IC4uLgo+IH0KPiAKPiBAQAo+IGlkZW50 aWZpZXIgZmluZC5GOwo+IGlkZW50aWZpZXIgZmluZC5FOwo+IEBACj4gRigKPiAtIHN0cnVjdCBk cm1fZW5jb2RlciAqRQo+ICsgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIKPiAgICApCj4g ewo+IDwuLi4KPiAtIEUKPiArICZlbmNvZGVyLT5iYXNlCj4gLi4uPgo+IH0KPiAKPiBAQAo+IGlk ZW50aWZpZXIgZmluZC5GOwo+IGV4cHJlc3Npb24gRTsKPiBAQAo+IC0gRihFKQo+ICsgRih0b19p bnRlbF9lbmNvZGVyKEUpKQo+IAo+IEBACj4gZXhwcmVzc2lvbiBFOwo+IEBACj4gLSB0b19pbnRl bF9lbmNvZGVyKCZFLT5iYXNlKQo+ICsgRQo+IAo+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYyAgICAgICAgfCA1OCArKysrKysrKy0tLS0tLS0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyAgICAgIHwgNjMg KysrKysrKysrKy0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMgIHwgIDQgKy0KPiAgIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfcG93ZXIuYyAgICB8ICA2ICstCj4gICAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5X3R5cGVzLmggICAgfCAxOSArKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZHAuYyAgICAgICB8IDU0ICsrKysrKysrLS0tLS0tLS0KPiAgIC4uLi9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyB8IDE1ICsrLS0tCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jICAgfCAyNCArKystLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwaW9fcGh5LmMgfCAxOCArKystLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyB8ICA0ICst Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RzaS5oICAgICAgfCAgNiAr LQo+ICAgLi4uL2k5MTUvZGlzcGxheS9pbnRlbF9kc2lfZGNzX2JhY2tsaWdodC5jICAgIHwgIDgg Ky0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYyAgICAgfCA0 OSArKysrKysrKy0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf aGRtaS5oICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2hvdHBsdWcuYyAgfCAgNCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9sc3Bjb24uYyAgIHwgIDggKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3BpcGVfY3JjLmMgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF92ZHNjLmMgICAgIHwgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv dmx2X2RzaS5jICAgICAgICB8IDM2ICsrKysrLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L3Zsdl9kc2lfcGxsLmMgICAgfCAxMiArKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICAgfCAyOCArKysrLS0tLS0KPiAgIDIxIGZpbGVz IGNoYW5nZWQsIDIxNCBpbnNlcnRpb25zKCspLCAyMTAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNpLmMKPiBpbmRleCBmNjg4MjA3OTMyZTAuLjdlNzc0 Y2Q0YTU2YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9k c2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCj4gQEAg LTc2LDcgKzc2LDcgQEAgc3RhdGljIGVudW0gdHJhbnNjb2RlciBkc2lfcG9ydF90b190cmFuc2Nv ZGVyKGVudW0gcG9ydCBwb3J0KQo+ICAgc3RhdGljIHZvaWQgd2FpdF9mb3JfY21kc19kaXNwYXRj aGVkX3RvX3BhbmVsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgm ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9f aW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaTsKPiAg IAllbnVtIHBvcnQgcG9ydDsKPiAgIAllbnVtIHRyYW5zY29kZXIgZHNpX3RyYW5zOwo+IEBAIC0y MDEsNyArMjAxLDcgQEAgc3RhdGljIGludCBkc2lfc2VuZF9wa3RfcGF5bGQoc3RydWN0IGludGVs X2RzaV9ob3N0ICpob3N0LAo+ICAgc3RhdGljIHZvaWQgZHNpX3Byb2dyYW1fc3dpbmdfYW5kX2Rl ZW1waGFzaXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICB7Cj4gICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNv ZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koZW5jb2Rlcik7Cj4gICAJZW51bSBwaHkgcGh5Owo+ICAgCXUzMiB0bXA7Cj4gICAJaW50 IGxhbmU7Cj4gQEAgLTI2Niw3ICsyNjYsNyBAQCBzdGF0aWMgdm9pZCBjb25maWd1cmVfZHVhbF9s aW5rX21vZGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkJICAgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gICB7Cj4gICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNv ZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koZW5jb2Rlcik7Cj4gICAJdTMyIGRzc19jdGwxOwo+ICAgCj4gICAJZHNzX2N0bDEgPSBJ OTE1X1JFQUQoRFNTX0NUTDEpOwo+IEBAIC0zMDQsNyArMzA0LDcgQEAgc3RhdGljIHZvaWQgY29u ZmlndXJlX2R1YWxfbGlua19tb2RlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAg c3RhdGljIHZvaWQgZ2VuMTFfZHNpX3Byb2dyYW1fZXNjX2Nsa19kaXYoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICpp bnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBp bnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gICAJZW51 bSBwb3J0IHBvcnQ7Cj4gICAJdTMyIGJwcCA9IG1pcGlfZHNpX3BpeGVsX2Zvcm1hdF90b19icHAo aW50ZWxfZHNpLT5waXhlbF9mb3JtYXQpOwo+ICAgCXUzMiBhZmVfY2xrX2toejsgLyogOFggQ2xv Y2sgKi8KPiBAQCAtMzQ2LDcgKzM0Niw3IEBAIHN0YXRpYyB2b2lkIGdldF9kc2lfaW9fcG93ZXJf ZG9tYWlucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICBzdGF0aWMgdm9p ZCBnZW4xMV9kc2lfZW5hYmxlX2lvX3Bvd2VyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5j X3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCWVudW0gcG9ydCBwb3J0Owo+ ICAgCXUzMiB0bXA7Cj4gICAKPiBAQCAtMzYyLDcgKzM2Miw3IEBAIHN0YXRpYyB2b2lkIGdlbjEx X2RzaV9lbmFibGVfaW9fcG93ZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICBz dGF0aWMgdm9pZCBnZW4xMV9kc2lfcG93ZXJfdXBfbGFuZXMoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gICAJZW51bSBwaHkg cGh5Owo+ICAgCj4gICAJZm9yX2VhY2hfZHNpX3BoeShwaHksIGludGVsX2RzaS0+cGh5cykKPiBA QCAtMzczLDcgKzM3Myw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9wb3dlcl91cF9sYW5lcyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9j b25maWdfcGh5X2xhbmVzX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3Rv X2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCWVudW0gcGh5IHBoeTsKPiAgIAl1 MzIgdG1wOwo+ICAgCWludCBsYW5lOwo+IEBAIC00MjIsNyArNDIyLDcgQEAgc3RhdGljIHZvaWQg Z2VuMTFfZHNpX2NvbmZpZ19waHlfbGFuZXNfc2VxdWVuY2Uoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpCj4gICBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfdm9sdGFnZV9zd2luZ19wcm9ncmFt X3NlcShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAt CXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXIt PmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2Rz aShlbmNvZGVyKTsKPiAgIAl1MzIgdG1wOwo+ICAgCWVudW0gcGh5IHBoeTsKPiAgIAo+IEBAIC00 NzQsNyArNDc0LDcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX3ZvbHRhZ2Vfc3dpbmdfcHJvZ3Jh bV9zZXEoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICBzdGF0aWMgdm9pZCBnZW4x MV9kc2lfZW5hYmxlX2RkaV9idWZmZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g ICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9f aW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2Rz aSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gICAJdTMyIHRtcDsKPiAgIAllbnVtIHBv cnQgcG9ydDsKPiAgIAo+IEBAIC00OTMsNyArNDkzLDcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNp X2VuYWJsZV9kZGlfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgc3Rh dGljIHZvaWQgZ2VuMTFfZHNpX3NldHVwX2RwaHlfdGltaW5ncyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsKPiAgIAl1MzIgdG1w Owo+ICAgCWVudW0gcG9ydCBwb3J0Owo+ICAgCWVudW0gcGh5IHBoeTsKPiBAQCAtNTU5LDcgKzU1 OSw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9zZXR1cF9kcGh5X3RpbWluZ3Moc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZ2F0ZV9jbG9j a3Moc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICB7Cj4gICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5i YXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2ko ZW5jb2Rlcik7Cj4gICAJdTMyIHRtcDsKPiAgIAllbnVtIHBoeSBwaHk7Cj4gICAKPiBAQCAtNTc1 LDcgKzU3NSw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9nYXRlX2Nsb2NrcyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHN0YXRpYyB2b2lkIGdlbjExX2RzaV91bmdhdGVfY2xv Y2tzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0J c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+ YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNp KGVuY29kZXIpOwo+ICAgCXUzMiB0bXA7Cj4gICAJZW51bSBwaHkgcGh5Owo+ICAgCj4gQEAgLTU5 Miw3ICs1OTIsNyBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfbWFwX3BsbChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCXN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7Cj4g ICAJZW51bSBwaHkgcGh5Owo+ICAgCXUzMiB2YWw7Cj4gQEAgLTYyNCw3ICs2MjQsNyBAQCBnZW4x MV9kc2lfY29uZmlndXJlX3RyYW5zY29kZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5j X3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKPiAg IAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gICAJdTMyIHRtcDsKPiBAQCAt NzY5LDcgKzc2OSw3IEBAIGdlbjExX2RzaV9zZXRfdHJhbnNjb2Rlcl90aW1pbmdzKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNp ICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVj dCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gICAJ Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ICAgCQkJCQkm cGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7Cj4gICAJZW51bSBwb3J0IHBvcnQ7Cj4gQEAg LTg4OSw3ICs4ODksNyBAQCBnZW4xMV9kc2lfc2V0X3RyYW5zY29kZXJfdGltaW5ncyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9lbmFibGVf dHJhbnNjb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHsKPiAgIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKPiAtCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVu Y29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2lu dGVsX2RzaShlbmNvZGVyKTsKPiAgIAllbnVtIHBvcnQgcG9ydDsKPiAgIAllbnVtIHRyYW5zY29k ZXIgZHNpX3RyYW5zOwo+ICAgCXUzMiB0bXA7Cj4gQEAgLTkxMCw3ICs5MTAsNyBAQCBzdGF0aWMg dm9pZCBnZW4xMV9kc2lfZW5hYmxlX3RyYW5zY29kZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpCj4gICBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfc2V0dXBfdGltZW91dHMoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0 cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4g ICAJZW51bSBwb3J0IHBvcnQ7Cj4gICAJZW51bSB0cmFuc2NvZGVyIGRzaV90cmFuczsKPiAgIAl1 MzIgdG1wLCBoc190eF90aW1lb3V0LCBscF9yeF90aW1lb3V0LCB0YV90aW1lb3V0LCBkaXZpc29y LCBtdWw7Cj4gQEAgLTk5MSw3ICs5OTEsNyBAQCBnZW4xMV9kc2lfZW5hYmxlX3BvcnRfYW5kX3Bo eShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIHN0YXRpYyB2b2lkIGdlbjExX2Rz aV9wb3dlcnVwX3BhbmVsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2Rz aSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNf dG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaTsK PiAgIAllbnVtIHBvcnQgcG9ydDsKPiAgIAllbnVtIHRyYW5zY29kZXIgZHNpX3RyYW5zOwo+IEBA IC0xMDQyLDcgKzEwNDIsNyBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfcHJlX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAgCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2Rz aSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsKPiAgIAo+ICAgCS8qIHN0 ZXAzYiAqLwo+ICAgCWdlbjExX2RzaV9tYXBfcGxsKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiBA QCAtMTA2Nyw3ICsxMDY3LDcgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX3ByZV9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZGlz YWJsZV90cmFuc2NvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2Rz aSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNf dG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCWVudW0gcG9ydCBwb3J0Owo+ICAgCWVudW0gdHJh bnNjb2RlciBkc2lfdHJhbnM7Cj4gICAJdTMyIHRtcDsKPiBAQCAtMTA4OSw3ICsxMDg5LDcgQEAg c3RhdGljIHZvaWQgZ2VuMTFfZHNpX2Rpc2FibGVfdHJhbnNjb2RlcihzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiAgIAo+ICAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX3Bvd2VyZG93bl9w YW5lbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHsKPiAtCXN0cnVjdCBpbnRl bF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJ c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsK PiAgIAo+ICAgCWludGVsX2RzaV92YnRfZXhlY19zZXF1ZW5jZShpbnRlbF9kc2ksIE1JUElfU0VR X0RJU1BMQVlfT0ZGKTsKPiAgIAlpbnRlbF9kc2lfdmJ0X2V4ZWNfc2VxdWVuY2UoaW50ZWxfZHNp LCBNSVBJX1NFUV9BU1NFUlRfUkVTRVQpOwo+IEBAIC0xMTAyLDcgKzExMDIsNyBAQCBzdGF0aWMg dm9pZCBnZW4xMV9kc2lfcG93ZXJkb3duX3BhbmVsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQo+ICAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2RlY29uZmlndXJlX3RyYW5jb2RlcihzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBp bnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNvZGVy KTsKPiAgIAllbnVtIHBvcnQgcG9ydDsKPiAgIAllbnVtIHRyYW5zY29kZXIgZHNpX3RyYW5zOwo+ ICAgCXUzMiB0bXA7Cj4gQEAgLTExNDMsNyArMTE0Myw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2Rz aV9kZWNvbmZpZ3VyZV90cmFuY29kZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g ICBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZGlzYWJsZV9wb3J0KHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCXUzMiB0bXA7 Cj4gICAJZW51bSBwb3J0IHBvcnQ7Cj4gICAKPiBAQCAtMTE2NSw3ICsxMTY1LDcgQEAgc3RhdGlj IHZvaWQgZ2VuMTFfZHNpX2Rpc2FibGVfcG9ydChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cikKPiAgIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9kaXNhYmxlX2lvX3Bvd2VyKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAg CWVudW0gcG9ydCBwb3J0Owo+ICAgCXUzMiB0bXA7Cj4gICAKPiBAQCAtMTE5Miw3ICsxMTkyLDcg QEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUsCj4gICAJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq b2xkX2Nvbm5fc3RhdGUpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBl bmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gICAKPiAgIAkvKiBzdGVwMTog dHVybiBvZmYgYmFja2xpZ2h0ICovCj4gICAJaW50ZWxfZHNpX3ZidF9leGVjX3NlcXVlbmNlKGlu dGVsX2RzaSwgTUlQSV9TRVFfQkFDS0xJR0hUX09GRik7Cj4gQEAgLTEyMTcsNyArMTIxNyw3IEBA IHN0YXRpYyB2b2lkIGdlbjExX2RzaV9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2dldF90aW1pbmdzKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAgCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2lu dGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kg PSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0KPiAgIAkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl Owo+ICAgCj4gQEAgLTEyNDYsNyArMTI0Niw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9nZXRf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgewo+ICAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ ICAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+ dWFwaS5jcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRl bF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0g ZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsKPiAgIAo+ICAgCS8qIEZJWE1FOiBhZGFwdCBpY2xf ZGRpX2Nsb2NrX2dldCgpIGZvciBEU0kgYW5kIHVzZSB0aGF0PyAqLwo+ICAgCXBpcGVfY29uZmln LT5wb3J0X2Nsb2NrID0KPiBAQCAtMTI5NiwxNCArMTI5NiwxNCBAQCBzdGF0aWMgdm9pZCBnZW4x MV9kc2lfZ2V0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g ICAJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAgewo+ICAgCWdl dF9kc2lfaW9fcG93ZXJfZG9tYWlucyh0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KSwKPiAtCQkJ CSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKSk7Cj4gKwkJCQkgZW5jX3RvX2ludGVs X2RzaShlbmNvZGVyKSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBib29sIGdlbjExX2RzaV9nZXRf aHdfc3RhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkJICAgZW51bSBw aXBlICpwaXBlKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCWVudW0gdHJh bnNjb2RlciBkc2lfdHJhbnM7Cj4gICAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Cj4gICAJZW51 bSBwb3J0IHBvcnQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4g aW5kZXggZTY5MmMwYjI4NTU5Li41MmQxODdkYjMyMGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiBAQCAtMTI0MSw5ICsxMjQxLDkgQEAgdm9pZCBoc3df ZmRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gICAKPiAgIHN0YXRpYyB2 b2lkIGludGVsX2RkaV9pbml0X2RwX2J1Zl9yZWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2Rw KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9f aW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQgPQo+IC0JCWVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwkJZW5j X3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICAgCj4gICAJaW50ZWxfZHAtPkRQID0gaW50ZWxfZGln X3BvcnQtPnNhdmVkX3BvcnRfYml0cyB8Cj4gICAJCURESV9CVUZfQ1RMX0VOQUJMRSB8IERESV9C VUZfVFJBTlNfU0VMRUNUKDApOwo+IEBAIC0yMjIxLDcgKzIyMjEsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kZGlfZ2V0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gICAJaWYgKFdBUk5fT04oaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9P VVRQVVRfRFBfTVNUKSkpCj4gICAJCXJldHVybjsKPiAgIAo+IC0JZGlnX3BvcnQgPSBlbmNfdG9f ZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQo ZW5jb2Rlcik7Cj4gICAJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsIGRpZ19wb3J0 LT5kZGlfaW9fcG93ZXJfZG9tYWluKTsKPiAgIAo+ICAgCS8qCj4gQEAgLTIyOTEsNyArMjI5MSw3 IEBAIHN0YXRpYyB2b2lkIF9za2xfZGRpX3NldF9pYm9vc3Qoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAgc3RhdGljIHZvaWQgc2tsX2RkaV9zZXRfaWJvb3N0KHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJICAgICAgIGludCBsZXZlbCwgZW51bSBpbnRl bF9vdXRwdXRfdHlwZSB0eXBlKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQo ZW5jb2Rlcik7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0 Owo+ICAgCXU4IGlib29zdDsKPiBAQCAtMjM2Miw3ICsyMzYyLDcgQEAgc3RhdGljIHZvaWQgYnh0 X2RkaV92c3dpbmdfc2VxdWVuY2Uoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICB1 OCBpbnRlbF9kZGlfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp Cj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3Rv X2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVy LT5wb3J0Owo+ICAgCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBw b3J0KTsKPiAgIAlpbnQgbl9lbnRyaWVzOwo+IEBAIC0yNTAxLDcgKzI1MDEsNyBAQCBzdGF0aWMg dm9pZCBjbmxfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgIAkJd2lkdGggPSA0Owo+ICAgCQlyYXRlID0gMDsgLyogUmF0ZSBpcyBhbHdheXMgPCB0 aGFuIDZHSHogZm9yIEhETUkgKi8KPiAgIAl9IGVsc2Ugewo+IC0JCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJCXN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAKPiAgIAkJ d2lkdGggPSBpbnRlbF9kcC0+bGFuZV9jb3VudDsKPiAgIAkJcmF0ZSA9IGludGVsX2RwLT5saW5r X3JhdGU7Cj4gQEAgLTI2MjcsNyArMjYyNyw3IEBAIHN0YXRpYyB2b2lkIGljbF9jb21ib19waHlf ZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJ d2lkdGggPSA0Owo+ICAgCQkvKiBSYXRlIGlzIGFsd2F5cyA8IHRoYW4gNkdIeiBmb3IgSERNSSAq Lwo+ICAgCX0gZWxzZSB7Cj4gLQkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19p bnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKPiAgIAo+ICAgCQl3aWR0aCA9IGludGVsX2RwLT5s YW5lX2NvdW50Owo+ICAgCQlyYXRlID0gaW50ZWxfZHAtPmxpbmtfcmF0ZTsKPiBAQCAtMzMxNiw3 ICszMzE2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV9mZWMoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gICAJaWYgKCFjcnRjX3N0YXRlLT5mZWNfZW5hYmxlKQo+ICAg CQlyZXR1cm47Cj4gICAKPiAtCWludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5i YXNlKTsKPiArCWludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwo+ICAgCXZhbCA9 IEk5MTVfUkVBRChpbnRlbF9kcC0+cmVncy5kcF90cF9jdGwpOwo+ICAgCXZhbCB8PSBEUF9UUF9D VExfRkVDX0VOQUJMRTsKPiAgIAlJOTE1X1dSSVRFKGludGVsX2RwLT5yZWdzLmRwX3RwX2N0bCwg dmFsKTsKPiBAQCAtMzMzNiw3ICszMzM2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2Rpc2Fi bGVfZmVjX3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCWlmICghY3J0 Y19zdGF0ZS0+ZmVjX2VuYWJsZSkKPiAgIAkJcmV0dXJuOwo+ICAgCj4gLQlpbnRlbF9kcCA9IGVu Y190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlpbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcChlbmNvZGVyKTsKPiAgIAl2YWwgPSBJOTE1X1JFQUQoaW50ZWxfZHAtPnJlZ3MuZHBfdHBf Y3RsKTsKPiAgIAl2YWwgJj0gfkRQX1RQX0NUTF9GRUNfRU5BQkxFOwo+ICAgCUk5MTVfV1JJVEUo aW50ZWxfZHAtPnJlZ3MuZHBfdHBfY3RsLCB2YWwpOwo+IEBAIC0zNDI3LDEwICszNDI3LDEwIEBA IHN0YXRpYyB2b2lkIHRnbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAgIAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ICAgCQkJCSAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2Rw KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9f aW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gICAJZW51bSBwaHkgcGh5ID0gaW50ZWxf cG9ydF90b19waHkoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwo+IC0Jc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQo ZW5jb2Rlcik7Cj4gICAJYm9vbCBpc19tc3QgPSBpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3Rh dGUsIElOVEVMX09VVFBVVF9EUF9NU1QpOwo+ICAgCWludCBsZXZlbCA9IGludGVsX2RkaV9kcF9s ZXZlbChpbnRlbF9kcCk7Cj4gICAJZW51bSB0cmFuc2NvZGVyIHRyYW5zY29kZXIgPSBjcnRjX3N0 YXRlLT5jcHVfdHJhbnNjb2RlcjsKPiBAQCAtMzU4MywxMSArMzU4MywxMSBAQCBzdGF0aWMgdm9p ZCBoc3dfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgIAkJ CQkgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICAgewo+ IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+ YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVu Y29kZXIpOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsK PiAgIAllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7Cj4g LQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgm ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9 IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiAgIAlib29sIGlzX21zdCA9IGludGVsX2NydGNf aGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RQX01TVCk7Cj4gICAJaW50IGxldmVs ID0gaW50ZWxfZGRpX2RwX2xldmVsKGludGVsX2RwKTsKPiAgIAo+IEBAIC0zNjczLDEyICszNjcz LDEyIEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2hkbWkoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gICAJCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9y dChlbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9ICZpbnRlbF9k aWdfcG9ydC0+aGRtaTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXIt PnBvcnQ7Cj4gICAJaW50IGxldmVsID0gaW50ZWxfZGRpX2hkbWlfbGV2ZWwoZGV2X3ByaXYsIHBv cnQpOwo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGln X3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gICAKPiAgIAlpbnRlbF9kcF9kdWFs X21vZGVfc2V0X3RtZHNfb3V0cHV0KGludGVsX2hkbWksIHRydWUpOwo+ICAgCWludGVsX2RkaV9j bGtfc2VsZWN0KGVuY29kZXIsIGNydGNfc3RhdGUpOwo+IEBAIC0zNzQ1LDEyICszNzQ1LDEyIEBA IHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAgCQlpbnRlbF9kZGlfcHJlX2VuYWJsZV9oZG1pKGVuY29kZXIsIGNydGNfc3Rh dGUsIGNvbm5fc3RhdGUpOwo+ICAgCX0gZWxzZSB7Cj4gICAJCXN0cnVjdCBpbnRlbF9sc3Bjb24g KmxzcGNvbiA9Cj4gLQkJCQllbmNfdG9faW50ZWxfbHNwY29uKCZlbmNvZGVyLT5iYXNlKTsKPiAr CQkJCWVuY190b19pbnRlbF9sc3Bjb24oZW5jb2Rlcik7Cj4gICAKPiAgIAkJaW50ZWxfZGRpX3By ZV9lbmFibGVfZHAoZW5jb2RlciwgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSk7Cj4gICAJCWlmIChs c3Bjb24tPmFjdGl2ZSkgewo+ICAgCQkJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3Bv cnQgPQo+IC0JCQkJCWVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwkJCQkJZW5j X3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICAgCj4gICAJCQlkaWdfcG9ydC0+c2V0X2luZm9mcmFt ZXMoZW5jb2RlciwKPiAgIAkJCQkJCSBjcnRjX3N0YXRlLT5oYXNfaW5mb2ZyYW1lLAo+IEBAIC0z Nzc1LDcgKzM3NzUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaV9idWYoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJfQo+ICAgCj4gICAJaWYgKGludGVsX2NydGNf aGFzX2RwX2VuY29kZXIoY3J0Y19zdGF0ZSkpIHsKPiAtCQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCQlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwo+ICAgCj4gICAJCXZhbCA9 IEk5MTVfUkVBRChpbnRlbF9kcC0+cmVncy5kcF90cF9jdGwpOwo+ICAgCQl2YWwgJj0gfihEUF9U UF9DVExfRU5BQkxFIHwgRFBfVFBfQ1RMX0xJTktfVFJBSU5fTUFTSyk7Cj4gQEAgLTM3OTUsNyAr Mzc5NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXIt PmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9f ZGlnX3BvcnQoZW5jb2Rlcik7Cj4gICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZkaWdf cG9ydC0+ZHA7Cj4gICAJYm9vbCBpc19tc3QgPSBpbnRlbF9jcnRjX2hhc190eXBlKG9sZF9jcnRj X3N0YXRlLAo+ICAgCQkJCQkgIElOVEVMX09VVFBVVF9EUF9NU1QpOwo+IEBAIC0zODI5LDcgKzM4 MjksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlX2hkbWkoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNl KTsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19w b3J0KGVuY29kZXIpOwo+ICAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gJmRpZ19w b3J0LT5oZG1pOwo+ICAgCj4gICAJZGlnX3BvcnQtPnNldF9pbmZvZnJhbWVzKGVuY29kZXIsIGZh bHNlLAo+IEBAIC0zOTE2LDcgKzM5MTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfZGRp X2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJCWNvbnN0IHN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIp Owo+ICAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKPiAgIAo+ICAgCWlmIChwb3J0 ID09IFBPUlRfQSAmJiBJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSkKPiBAQCAtMzk1Nyw3ICszOTU3 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2RkaV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICAgCQkJCSAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGUpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVy KTsKPiAgIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29u bmVjdG9yOwo+ICAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKPiAgIAo+IEBAIC00 MDM0LDcgKzQwMzQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaV9kcChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICAgCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAKPiAgIAlpbnRlbF9k cC0+bGlua190cmFpbmVkID0gZmFsc2U7Cj4gICAKPiBAQCAtNDA4Miw3ICs0MDgyLDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZGRpX3VwZGF0ZV9waXBlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAgCQkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCj4gICAJCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bl9zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50 ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVu Y190b19pbnRlbF9kcChlbmNvZGVyKTsKPiAgIAo+ICAgCWludGVsX2RkaV9zZXRfZHBfbXNhKGNy dGNfc3RhdGUsIGNvbm5fc3RhdGUpOwo+ICAgCj4gQEAgLTQxNDYsNyArNDE0Niw4IEBAIGludGVs X2RkaV91cGRhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAg IAo+ICAgCVdBUk5fT04oY3J0YyAmJiBjcnRjLT5hY3RpdmUpOwo+ICAgCj4gLQlpbnRlbF90Y19w b3J0X2dldF9saW5rKGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSksIHJlcXVpcmVkX2xh bmVzKTsKPiArCWludGVsX3RjX3BvcnRfZ2V0X2xpbmsoZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIp LAo+ICsJCSAgICAgICAgICAgICAgIHJlcXVpcmVkX2xhbmVzKTsKPiAgIAlpZiAoY3J0Y19zdGF0 ZSAmJiBjcnRjX3N0YXRlLT5ody5hY3RpdmUpCj4gICAJCWludGVsX3VwZGF0ZV9hY3RpdmVfZHBs bChzdGF0ZSwgY3J0YywgZW5jb2Rlcik7Cj4gICB9Cj4gQEAgLTQxNTYsNyArNDE1Nyw3IEBAIGlu dGVsX2RkaV91cGRhdGVfY29tcGxldGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUs Cj4gICAJCQkgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJICBzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YykKPiAgIHsKPiAtCWludGVsX3RjX3BvcnRfcHV0X2xpbmsoZW5jX3Rv X2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSk7Cj4gKwlpbnRlbF90Y19wb3J0X3B1dF9saW5rKGVu Y190b19kaWdfcG9ydChlbmNvZGVyKSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkCj4gQEAg LTQxNjUsNyArNDE2Niw3IEBAIGludGVsX2RkaV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29k ZXIpOwo+ICAgCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNv ZGVyLT5wb3J0KTsKPiAgIAlib29sIGlzX3RjX3BvcnQgPSBpbnRlbF9waHlfaXNfdGMoZGV2X3By aXYsIHBoeSk7Cj4gICAKPiBAQCAtNDE5Myw3ICs0MTk0LDcgQEAgaW50ZWxfZGRpX3Bvc3RfcGxs X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkgICBjb25zdCBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgIHsKPiAgIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK PiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0 KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICAgCWVudW0gcGh5IHBoeSA9IGludGVsX3Bv cnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKPiAgIAlib29sIGlzX3RjX3BvcnQg PSBpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSk7Cj4gICAKPiBAQCAtNDQ4MCw3ICs0NDgx LDcgQEAgc3RhdGljIGludCBpbnRlbF9kZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gICAKPiAgIHN0YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX2Rl c3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+IC0Jc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gKwlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCh0b19p bnRlbF9lbmNvZGVyKGVuY29kZXIpKTsKPiAgIAo+ICAgCWludGVsX2RwX2VuY29kZXJfZmx1c2hf d29yayhlbmNvZGVyKTsKPiAgIAo+IEBAIC00NTQ3LDcgKzQ1NDgsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2hkbWlfcmVzZXRfbGluayhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJ CQkgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpCj4gICB7Cj4gICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Cj4gLQlzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVy LT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9oZG1pICpoZG1pID0gZW5jX3RvX2ludGVsX2hkbWko ZW5jb2Rlcik7Cj4gICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gaGRtaS0+ YXR0YWNoZWRfY29ubmVjdG9yOwo+ICAgCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9Cj4g ICAJCWludGVsX2dtYnVzX2dldF9hZGFwdGVyKGRldl9wcml2LCBoZG1pLT5kZGNfYnVzKTsKPiBA QCAtNDYxOSw3ICs0NjIwLDcgQEAgaW50ZWxfZGRpX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gICAJCSAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ICAgCQkgIGJvb2wgaXJxX3JlY2VpdmVkKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rl cik7Cj4gICAJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsKPiAgIAllbnVtIGlu dGVsX2hvdHBsdWdfc3RhdGUgc3RhdGU7Cj4gICAJaW50IHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDk5YWJjNTUzYThhYi4uNDU1 NjhhN2M2NTc5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5LmMKPiBAQCAtMTQ1MDUsNyArMTQ1MDUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZXRf ZHBfdHBfY3RsX25vcm1hbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgIAkJaWYgKGNvbm5f c3RhdGUtPmNydGMgPT0gJmNydGMtPmJhc2UpCj4gICAJCQlicmVhazsKPiAgIAl9Cj4gLQlpbnRl bF9kcCA9IGVuY190b19pbnRlbF9kcCgmaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcih0b19pbnRlbF9j b25uZWN0b3IoY29ubikpLT5iYXNlKTsKPiArCWludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGlu dGVsX2F0dGFjaGVkX2VuY29kZXIodG9faW50ZWxfY29ubmVjdG9yKGNvbm4pKSk7Cj4gICAJaW50 ZWxfZHBfc3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiAgIH0KPiAgIAo+IEBAIC0xNzc2Myw3 ICsxNzc2Myw3IEBAIGludGVsX21vZGVzZXRfc2V0dXBfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgIAkJLyogV2UgbmVlZCB0byBzYW5pdGl6ZSBvbmx5IHRoZSBNU1QgcHJpbWFy eSBwb3J0LiAqLwo+ICAgCQlpZiAoZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFBfTVNU ICYmCj4gICAJCSAgICBpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCj4gLQkJCWludGVs X3RjX3BvcnRfc2FuaXRpemUoZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSk7Cj4gKwkJ CWludGVsX3RjX3BvcnRfc2FuaXRpemUoZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpKTsKPiAgIAl9 Cj4gICAKPiAgIAlnZXRfZW5jb2Rlcl9wb3dlcl9kb21haW5zKGRldl9wcml2KTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwo+IGlu ZGV4IGNlMWI2NGY0ZGQ0NC4uNzM5NWNiMDExMWEzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKPiBAQCAtNTE5LDcgKzUx OSw3IEBAIHN0YXRpYyB2b2lkIGljbF90Y19wb3J0X2Fzc2VydF9yZWZfaGVsZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVM X09VVFBVVF9EUF9NU1QpCj4gICAJCQljb250aW51ZTsKPiAgIAo+IC0JCWRpZ19wb3J0ID0gZW5j X3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiArCQlkaWdfcG9ydCA9IGVuY190b19kaWdf cG9ydChlbmNvZGVyKTsKPiAgIAkJaWYgKFdBUk5fT04oIWRpZ19wb3J0KSkKPiAgIAkJCWNvbnRp bnVlOwo+ICAgCj4gQEAgLTE2NjksOCArMTY2OSw4IEBAIHZvaWQgY2h2X3BoeV9wb3dlcmdhdGVf bGFuZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICB7Cj4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4g ICAJc3RydWN0IGk5MTVfcG93ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+ cG93ZXJfZG9tYWluczsKPiAtCWVudW0gZHBpb19waHkgcGh5ID0gdmx2X2Rwb3J0X3RvX3BoeShl bmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpKTsKPiAtCWVudW0gZHBpb19jaGFubmVsIGNo ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSk7 Cj4gKwllbnVtIGRwaW9fcGh5IHBoeSA9IHZsdl9kcG9ydF90b19waHkoZW5jX3RvX2RpZ19wb3J0 KGVuY29kZXIpKTsKPiArCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5u ZWwoZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpKTsKPiAgIAo+ICAgCW11dGV4X2xvY2soJnBvd2Vy X2RvbWFpbnMtPmxvY2spOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiBpbmRleCA0ZDg5ZGU1YTQ5NjQuLjc5Yzc0NTRm ZjUxMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXlfdHlwZXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV90eXBlcy5oCj4gQEAgLTE0NTQsMTIgKzE0NTQsMTIgQEAgc3RhdGljIGlubGluZSBi b29sIGludGVsX2VuY29kZXJfaXNfZGlnX3BvcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqCj4gLWVuY190b19kaWdfcG9ydChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK2Vu Y190b19kaWdfcG9ydChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHsKPiAtCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gdG9faW50ZWxfZW5jb2RlcihlbmNv ZGVyKTsKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyID0gZW5jb2RlcjsK PiAgIAo+ICAgCWlmIChpbnRlbF9lbmNvZGVyX2lzX2RpZ19wb3J0KGludGVsX2VuY29kZXIpKQo+ IC0JCXJldHVybiBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCwKPiArCQlyZXR1cm4gY29udGFpbmVyX29mKCZlbmNvZGVyLT5iYXNlLCBzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0LAo+ICAgCQkJCSAgICBiYXNlLmJhc2UpOwo+ICAgCWVsc2UKPiAgIAkJcmV0 dXJuIE5VTEw7Cj4gQEAgLTE0NjgsMTYgKzE0NjgsMTcgQEAgZW5jX3RvX2RpZ19wb3J0KHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqCj4gICBjb25uX3RvX2RpZ19wb3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKPiAgIHsKPiAtCXJldHVybiBlbmNfdG9fZGlnX3BvcnQoJmludGVsX2F0dGFj aGVkX2VuY29kZXIoY29ubmVjdG9yKS0+YmFzZSk7Cj4gKwlyZXR1cm4gZW5jX3RvX2RpZ19wb3J0 KGludGVsX2F0dGFjaGVkX2VuY29kZXIoY29ubmVjdG9yKSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRp YyBpbmxpbmUgc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICoKPiAtZW5jX3RvX21zdChzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK2VuY190b19tc3Qoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4gICB7Cj4gLQlyZXR1cm4gY29udGFpbmVyX29mKGVuY29kZXIsIHN0cnVj dCBpbnRlbF9kcF9tc3RfZW5jb2RlciwgYmFzZS5iYXNlKTsKPiArCXJldHVybiBjb250YWluZXJf b2YoJmVuY29kZXItPmJhc2UsIHN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciwKPiArCQkJICAg IGJhc2UuYmFzZSk7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgaW50ZWxfZHAg KmVuY190b19pbnRlbF9kcChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK3N0YXRpYyBp bmxpbmUgc3RydWN0IGludGVsX2RwICplbmNfdG9faW50ZWxfZHAoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4gICB7Cj4gICAJcmV0dXJuICZlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcikt PmRwOwo+ICAgfQo+IEBAIC0xNDkwLDE0ICsxNDkxLDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp bnRlbF9lbmNvZGVyX2lzX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgCQly ZXR1cm4gdHJ1ZTsKPiAgIAljYXNlIElOVEVMX09VVFBVVF9EREk6Cj4gICAJCS8qIFNraXAgcHVy ZSBIRE1JL0RWSSBEREkgZW5jb2RlcnMgKi8KPiAtCQlyZXR1cm4gaTkxNV9tbWlvX3JlZ192YWxp ZChlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpLT5vdXRwdXRfcmVnKTsKPiArCQlyZXR1 cm4gaTkxNV9tbWlvX3JlZ192YWxpZChlbmNfdG9faW50ZWxfZHAoZW5jb2RlciktPm91dHB1dF9y ZWcpOwo+ICAgCWRlZmF1bHQ6Cj4gICAJCXJldHVybiBmYWxzZTsKPiAgIAl9Cj4gICB9Cj4gICAK PiAgIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX2xzcGNvbiAqCj4gLWVuY190b19pbnRlbF9s c3Bjb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICtlbmNfdG9faW50ZWxfbHNwY29u KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXJldHVybiAmZW5jX3Rv X2RpZ19wb3J0KGVuY29kZXIpLT5sc3Bjb247Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHAuYwo+IGluZGV4IDY2OGI2MzZmY2ZhYS4uOTNmM2QyMzJmY2I1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+IEBAIC0xNDgsNyArMTQ4 LDcgQEAgYm9vbCBpbnRlbF9kcF9pc19lZHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAg IAo+ICAgc3RhdGljIHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfYXR0YWNoZWRfZHAoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAgewo+IC0JcmV0dXJuIGVuY190b19pbnRlbF9k cCgmaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uZWN0b3IpLT5iYXNlKTsKPiArCXJldHVybiBl bmNfdG9faW50ZWxfZHAoaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uZWN0b3IpKTsKPiAgIH0K PiAgIAo+ICAgc3RhdGljIHZvaWQgaW50ZWxfZHBfbGlua19kb3duKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+IEBAIC04MzQsNyArODM0LDcgQEAgc3RhdGljIGVudW0gcGlwZSB2bHZf ZmluZF9mcmVlX3BwcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJICog UGljayBvbmUgdGhhdCdzIG5vdCB1c2VkIGJ5IG90aGVyIHBvcnRzLgo+ICAgCSAqLwo+ICAgCWZv cl9lYWNoX2ludGVsX2RwKCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyKSB7Cj4gLQkJc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwkJ c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKPiAg IAo+ICAgCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gICAJCQlX QVJOX09OKGludGVsX2RwLT5hY3RpdmVfcGlwZSAhPSBJTlZBTElEX1BJUEUgJiYKPiBAQCAtMTAz MSw3ICsxMDMxLDcgQEAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCSAqLwo+ICAgCj4gICAJZm9yX2VhY2hfaW50 ZWxfZHAoJmRldl9wcml2LT5kcm0sIGVuY29kZXIpIHsKPiAtCQlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCQlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwo+ICAgCj4gICAJCVdB Uk5fT04oaW50ZWxfZHAtPmFjdGl2ZV9waXBlICE9IElOVkFMSURfUElQRSk7Cj4gICAKPiBAQCAt MjE2NSw3ICsyMTY1LDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCj4gICB7Cj4gICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7Cj4gLQlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAJ c3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7Cj4gICAJaW50IGNvbW1vbl9sZW47Cj4g ICAJaW50IHJldDsKPiBAQCAtMjMyNiw4ICsyMzI2LDggQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICB7Cj4gICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gICAJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3 LmFkanVzdGVkX21vZGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2lu dGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiAtCXN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiA9 IGVuY190b19pbnRlbF9sc3Bjb24oJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKPiArCXN0cnVjdCBpbnRlbF9s c3Bjb24gKmxzcGNvbiA9IGVuY190b19pbnRlbF9sc3Bjb24oZW5jb2Rlcik7Cj4gICAJZW51bSBw b3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKPiAgIAlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29u bmVjdG9yOwo+IEBAIC0yNDQyLDcgKzI0NDIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9wcmVw YXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gICB7Cj4gICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNl KTsKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rl cik7Cj4gICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ICAgCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKPiAg IAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2Nv bmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKPiBAQCAtMjk0MCw3ICsyOTQwLDcgQEAgc3RhdGljIHZv aWQgX2ludGVsX2VkcF9iYWNrbGlnaHRfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAg IHZvaWQgaW50ZWxfZWRwX2JhY2tsaWdodF9vbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgIAkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNf dG9faW50ZWxfZHAoY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKTsKPiArCXN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAodG9faW50ZWxfZW5jb2Rlcihjb25uX3N0YXRl LT5iZXN0X2VuY29kZXIpKTsKPiAgIAo+ICAgCWlmICghaW50ZWxfZHBfaXNfZWRwKGludGVsX2Rw KSkKPiAgIAkJcmV0dXJuOwo+IEBAIC0yOTc4LDcgKzI5NzgsNyBAQCBzdGF0aWMgdm9pZCBfaW50 ZWxfZWRwX2JhY2tsaWdodF9vZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgIC8qIERp c2FibGUgYmFja2xpZ2h0IFBQIGNvbnRyb2wgYW5kIGJhY2tsaWdodCBQV00uICovCj4gICB2b2lk IGludGVsX2VkcF9iYWNrbGlnaHRfb2ZmKGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpvbGRfY29ubl9zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAob2xkX2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKHRvX2ludGVsX2VuY29kZXIob2xk X2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2RlcikpOwo+ICAgCj4gICAJaWYgKCFpbnRlbF9kcF9pc19l ZHAoaW50ZWxfZHApKQo+ICAgCQlyZXR1cm47Cj4gQEAgLTMyMTgsNyArMzIxOCw3IEBAIHN0YXRp YyBib29sIGludGVsX2RwX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgIAkJCQkgIGVudW0gcGlwZSAqcGlwZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsK PiAgIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKPiAgIAlib29sIHJldDsKPiAgIAo+IEBAIC0z MjM5LDcgKzMyMzksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9nZXRfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKPiAgIAl1MzIgdG1wLCBmbGFn cyA9IDA7Cj4gICAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ICAgCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsK PiBAQCAtMzMyMyw3ICszMzIzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9kcChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICAgCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAKPiAg IAlpbnRlbF9kcC0+bGlua190cmFpbmVkID0gZmFsc2U7Cj4gICAKPiBAQCAtMzM1Nyw3ICszMzU3 LDcgQEAgc3RhdGljIHZvaWQgZzR4X3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgIAkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUsCj4gICAJCQkJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9j b25uX3N0YXRlKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19p bnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0g ZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwo+ICAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+ cG9ydDsKPiAgIAo+ICAgCS8qCj4gQEAgLTM1MDgsNyArMzUwOCw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCSAgICBj b25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgIHsKPiAgIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVu Y29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcChlbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7Cj4gICAJdTMyIGRwX3JlZyA9IEk5MTVfUkVBRChp bnRlbF9kcC0+b3V0cHV0X3JlZyk7Cj4gICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ IEBAIC0zNTY4LDcgKzM1NjgsNyBAQCBzdGF0aWMgdm9pZCBnNHhfcHJlX2VuYWJsZV9kcChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwo+ICAgCWVudW0gcG9y dCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKPiAgIAo+ICAgCWludGVsX2RwX3ByZXBhcmUoZW5jb2Rl ciwgcGlwZV9jb25maWcpOwo+IEBAIC0zNjE4LDcgKzM2MTgsNyBAQCBzdGF0aWMgdm9pZCB2bHZf c3RlYWxfcG93ZXJfc2VxdWVuY2VyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiAgIAo+ICAg CWZvcl9lYWNoX2ludGVsX2RwKCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyKSB7Cj4gLQkJc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4g KwkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsK PiAgIAo+ICAgCQlXQVJOKGludGVsX2RwLT5hY3RpdmVfcGlwZSA9PSBwaXBlLAo+ICAgCQkgICAg ICJzdGVhbGluZyBwaXBlICVjIHBvd2VyIHNlcXVlbmNlciBmcm9tIGFjdGl2ZSBbRU5DT0RFUjol ZDolc11cbiIsCj4gQEAgLTM2NDEsNyArMzY0MSw3IEBAIHN0YXRpYyB2b2lkIHZsdl9pbml0X3Bh bmVsX3Bvd2VyX3NlcXVlbmNlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJ CQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gICB7Cj4g ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2Rw KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9f aW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gICAKPiAgIAlsb2NrZGVwX2Fzc2VydF9o ZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiBAQCAtNDE2Myw3ICs0MTYzLDcgQEAgaW50ZWxf ZHBfbGlua19kb3duKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkgICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gICB7Cj4gICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNv ZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoZW5jb2Rlcik7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+ICAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rl ci0+cG9ydDsKPiAgIAl1MzIgRFAgPSBpbnRlbF9kcC0+RFA7Cj4gQEAgLTUwNTYsNyArNTA1Niw3 IEBAIGludCBpbnRlbF9kcF9yZXRyYWluX2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gICAJCQkgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQo+ICAgewo+ ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9k cCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3Rv X2ludGVsX2RwKGVuY29kZXIpOwo+ICAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gICAJc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Cj4gICAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGU7Cj4gQEAgLTU0OTYsNyArNTQ5Niw3IEBAIHN0YXRpYyBib29sIGludGVsX2NvbWJvX3Bo eV9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgc3RhdGlj IGJvb2wgaWNwX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiAg IAllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9y dCk7Cj4gICAKPiAgIAlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQo+IEBA IC01Nzk5LDcgKzU3OTksNyBAQCBpbnRlbF9kcF9jb25uZWN0b3JfdW5yZWdpc3RlcihzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAgCj4gICB2b2lkIGludGVsX2RwX2VuY29kZXJf Zmx1c2hfd29yayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gICB7Cj4gLQlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNv ZGVyKTsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5j X3RvX2RpZ19wb3J0KHRvX2ludGVsX2VuY29kZXIoZW5jb2RlcikpOwo+ICAgCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOwo+ICAgCj4gICAJaW50ZWxfZHBf bXN0X2VuY29kZXJfY2xlYW51cChpbnRlbF9kaWdfcG9ydCk7Cj4gQEAgLTU4MjgsMTIgKzU4Mjgs MTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcikKPiAgIAlpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoZW5jb2Rlcik7 Cj4gICAKPiAgIAlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVuY29kZXIpOwo+IC0Ja2ZyZWUoZW5jX3Rv X2RpZ19wb3J0KGVuY29kZXIpKTsKPiArCWtmcmVlKGVuY190b19kaWdfcG9ydCh0b19pbnRlbF9l bmNvZGVyKGVuY29kZXIpKSk7Cj4gICB9Cj4gICAKPiAgIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9z dXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICAgewo+IC0Jc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmaW50ZWxfZW5jb2Rlci0+ YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGlu dGVsX2VuY29kZXIpOwo+ICAgCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwo+ICAgCj4gICAJaWYg KCFpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQo+IEBAIC01ODY0LDcgKzU4NjQsNyBAQCBzdGF0 aWMKPiAgIGludCBpbnRlbF9kcF9oZGNwX3dyaXRlX2FuX2Frc3Yoc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gICAJCQkJdTggKmFuKQo+ICAgewo+IC0Jc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmaW50ZWxfZGlnX3BvcnQtPmJh c2UuYmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2Rw KHRvX2ludGVsX2VuY29kZXIoJmludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UpKTsKPiAgIAlzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9kcF9hdXhfbXNnIG1zZyA9IHsKPiAgIAkJLnJlcXVlc3QgPSBE UF9BVVhfTkFUSVZFX1dSSVRFLAo+ICAgCQkuYWRkcmVzcyA9IERQX0FVWF9IRENQX0FLU1YsCj4g QEAgLTY0NzQsNyArNjQ3NCw3IEBAIHN0YXRpYyBlbnVtIHBpcGUgdmx2X2FjdGl2ZV9waXBlKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gICB2b2lkIGludGVsX2RwX2VuY29kZXJfcmVzZXQo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsKPiAtCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKHRvX2ludGVsX2VuY29kZXIoZW5jb2Rl cikpOwo+ICAgCXN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiA9IGRwX3RvX2xzcGNvbihpbnRl bF9kcCk7Cj4gICAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7Cj4gICAKPiBAQCAtNzYyMCw3ICs3 NjIwLDcgQEAgdm9pZCBpbnRlbF9kcF9tc3Rfc3VzcGVuZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gICAJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EREkp Cj4gICAJCQljb250aW51ZTsKPiAgIAo+IC0JCWludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZl bmNvZGVyLT5iYXNlKTsKPiArCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsK PiAgIAo+ICAgCQlpZiAoIWludGVsX2RwLT5jYW5fbXN0KQo+ICAgCQkJY29udGludWU7Cj4gQEAg LTc2NDEsNyArNzY0MSw3IEBAIHZvaWQgaW50ZWxfZHBfbXN0X3Jlc3VtZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09V VFBVVF9EREkpCj4gICAJCQljb250aW51ZTsKPiAgIAo+IC0JCWludGVsX2RwID0gZW5jX3RvX2lu dGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChl bmNvZGVyKTsKPiAgIAo+ICAgCQlpZiAoIWludGVsX2RwLT5jYW5fbXN0KQo+ICAgCQkJY29udGlu dWU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBf YXV4X2JhY2tsaWdodC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9h dXhfYmFja2xpZ2h0LmMKPiBpbmRleCAwMjA0MjJkYTJhZTIuLjdjNjUzZjhjMzA3ZiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX2F1eF9iYWNrbGln aHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfYXV4X2Jh Y2tsaWdodC5jCj4gQEAgLTU3LDcgKzU3LDcgQEAgc3RhdGljIHZvaWQgc2V0X2F1eF9iYWNrbGln aHRfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGJvb2wgZW5hYmxlKQo+ICAgICov Cj4gICBzdGF0aWMgdTMyIGludGVsX2RwX2F1eF9nZXRfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGNvbm5lY3Rvci0+ZW5jb2Rlcik7 Cj4gICAJdTggcmVhZF92YWxbMl0gPSB7IDB4MCB9Owo+ICAgCXUxNiBsZXZlbCA9IDA7Cj4gICAK PiBAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgdm9pZAo+ICAgaW50ZWxfZHBfYXV4X3NldF9iYWNr bGlnaHQoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsIHUzMiBs ZXZlbCkKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19p bnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKPiAtCXN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGNvbm5lY3Rv ci0+ZW5jb2Rlcik7Cj4gICAJdTggdmFsc1syXSA9IHsgMHgwIH07Cj4gICAKPiAgIAl2YWxzWzBd ID0gbGV2ZWw7Cj4gQEAgLTExMCw3ICsxMTAsNyBAQCBpbnRlbF9kcF9hdXhfc2V0X2JhY2tsaWdo dChjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwgdTMyIGxldgo+ ICAgc3RhdGljIGJvb2wgaW50ZWxfZHBfYXV4X3NldF9wd21fZnJlcShzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rvci0+ZW5jb2Rlci0+YmFzZSk7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGNvbm5lY3Rv ci0+ZW5jb2Rlcik7Cj4gICAJaW50IGZyZXEsIGZ4cCwgZnhwX21pbiwgZnhwX21heCwgZnhwX2Fj dHVhbCwgZiA9IDE7Cj4gICAJdTggcG4sIHBuX21pbiwgcG5fbWF4Owo+ICAgCj4gQEAgLTE3OCw3 ICsxNzgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9hdXhfZW5hYmxlX2JhY2tsaWdodChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdAo+ICAgCQkJCQkgIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5j b25uZWN0b3IpOwo+IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9k cCgmY29ubmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAgPSBlbmNfdG9faW50ZWxfZHAoY29ubmVjdG9yLT5lbmNvZGVyKTsKPiAgIAl1OCBkcGNkX2J1 ZiwgbmV3X2RwY2RfYnVmLCBlZHBfYmFja2xpZ2h0X21vZGU7Cj4gICAKPiAgIAlpZiAoZHJtX2Rw X2RwY2RfcmVhZGIoJmludGVsX2RwLT5hdXgsCj4gQEAgLTIyMiwxMyArMjIyLDE0IEBAIHN0YXRp YyB2b2lkIGludGVsX2RwX2F1eF9lbmFibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGludGVsX2RwX2F1eF9kaXNh YmxlX2JhY2tsaWdodChjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5f c3RhdGUpCj4gICB7Cj4gLQlzZXRfYXV4X2JhY2tsaWdodF9lbmFibGUoZW5jX3RvX2ludGVsX2Rw KG9sZF9jb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpLCBmYWxzZSk7Cj4gKwlzZXRfYXV4X2JhY2ts aWdodF9lbmFibGUoZW5jX3RvX2ludGVsX2RwKHRvX2ludGVsX2VuY29kZXIob2xkX2Nvbm5fc3Rh dGUtPmJlc3RfZW5jb2RlcikpLAo+ICsJCQkJIGZhbHNlKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGlj IGludCBpbnRlbF9kcF9hdXhfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvciwKPiAgIAkJCQkJZW51bSBwaXBlIHBpcGUpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZjb25uZWN0b3ItPmVuY29kZXItPmJh c2UpOwo+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChjb25u ZWN0b3ItPmVuY29kZXIpOwo+ICAgCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVj dG9yLT5wYW5lbDsKPiAgIAo+ICAgCWlmIChpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJiBEUF9FRFBf QkFDS0xJR0hUX0JSSUdIVE5FU1NfQllURV9DT1VOVCkKPiBAQCAtMjQ3LDcgKzI0OCw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxfZHBfYXV4X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsCj4gICBzdGF0aWMgYm9vbAo+ICAgaW50ZWxfZHBfYXV4X2Rpc3BsYXlf Y29udHJvbF9jYXBhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgIHsK PiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmNvbm5lY3Rv ci0+ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3Rv X2ludGVsX2RwKGNvbm5lY3Rvci0+ZW5jb2Rlcik7Cj4gICAKPiAgIAkvKiBDaGVjayB0aGUgZURQ IERpc3BsYXkgY29udHJvbCBjYXBhYmlsaXRpZXMgcmVnaXN0ZXJzIHRvIGRldGVybWluZSBpZgo+ ICAgCSAqIHRoZSBwYW5lbCBjYW4gc3VwcG9ydCBiYWNrbGlnaHQgY29udHJvbCBvdmVyIHRoZSBh dXggY2hhbm5lbAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3Qu Ywo+IGluZGV4IGExZTRmNDE5N2E2Ny4uYWY3ZjZkNjcwZTA3IDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCj4gQEAgLTQzLDcgKzQzLDcgQEAgc3Rh dGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAgIAkJCQkJICAgIHN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgKmxp bWl0cykKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0 YXRlLT51YXBpLnN0YXRlOwo+IC0Jc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRlbF9t c3QgPSBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcF9tc3Rf ZW5jb2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdChlbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gJmludGVsX21zdC0+cHJpbWFyeS0+ZHA7Cj4gICAJc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0KPiAgIAkJdG9faW50ZWxfY29ubmVjdG9yKGNvbm5f c3RhdGUtPmNvbm5lY3Rvcik7Cj4gQEAgLTkyLDcgKzkyLDcgQEAgc3RhdGljIGludCBpbnRlbF9k cF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJ CQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICAgewo+ ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRlbF9tc3QgPSBl bmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2Rl ciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdChlbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwID0gJmludGVsX21zdC0+cHJpbWFyeS0+ZHA7Cj4gICAJc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yID0KPiAgIAkJdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUt PmNvbm5lY3Rvcik7Cj4gQEAgLTE5NSw3ICsxOTUsNyBAQCBpbnRlbF9kcF9tc3RfYXRvbWljX2No ZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gICAJCQlyZXR1cm4gMDsKPiAg IAl9Cj4gICAKPiAtCW1nciA9ICZlbmNfdG9fbXN0KG9sZF9jb25uX3N0YXRlLT5iZXN0X2VuY29k ZXIpLT5wcmltYXJ5LT5kcC5tc3RfbWdyOwo+ICsJbWdyID0gJmVuY190b19tc3QodG9faW50ZWxf ZW5jb2RlcihvbGRfY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKSktPnByaW1hcnktPmRwLm1zdF9t Z3I7Cj4gICAJcmV0ID0gZHJtX2RwX2F0b21pY19yZWxlYXNlX3ZjcGlfc2xvdHMoc3RhdGUsIG1n ciwKPiAgIAkJCQkJICAgICAgIGludGVsX2Nvbm5lY3Rvci0+cG9ydCk7Cj4gICAKPiBAQCAtMjA2 LDcgKzIwNiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfc3RhdGUsCj4gICAJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpvbGRfY29ubl9zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2Rl ciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoZW5jb2Rlcik7Cj4gICAJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBpbnRlbF9tc3QtPnBy aW1hcnk7Cj4gICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ ZHA7Cj4gICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0KPiBAQCAtMjMwLDcg KzIzMCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAo+ICAgCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9k cF9tc3RfZW5jb2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSk7Cj4g KwlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoZW5j b2Rlcik7Cj4gICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBp bnRlbF9tc3QtPnByaW1hcnk7Cj4gICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRl bF9kaWdfcG9ydC0+ZHA7Cj4gICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0K PiBAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9wcmVfcGxsX2VuYWJs ZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkJY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAgCQkJCQljb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kcF9t c3RfZW5jb2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlz dHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoZW5jb2Rl cik7Cj4gICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBpbnRl bF9tc3QtPnByaW1hcnk7Cj4gICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9k aWdfcG9ydC0+ZHA7Cj4gICAKPiBAQCAtMjgwLDcgKzI4MCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X21zdF9wb3N0X3BsbF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAgCQkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwK PiAgIAkJCQkJICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3Rh dGUpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVu Y190b19tc3QoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVy ICppbnRlbF9tc3QgPSBlbmNfdG9fbXN0KGVuY29kZXIpOwo+ICAgCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gaW50ZWxfbXN0LT5wcmltYXJ5Owo+ICAgCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRwOwo+ICAgCj4gQEAgLTI5 NCw3ICsyOTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tc3RfcHJlX2VuYWJsZV9kcChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAgCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5j b2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3Qg aW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoZW5jb2Rlcik7Cj4g ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBpbnRlbF9tc3Qt PnByaW1hcnk7Cj4gICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9kaWdfcG9y dC0+ZHA7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Cj4gQEAgLTM1Miw3ICszNTIsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9tc3RfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJCWNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgIAkJCQljb25zdCBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBp bnRlbF9kcF9tc3RfZW5jb2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFz ZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190b19t c3QoZW5jb2Rlcik7Cj4gICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQgPSBpbnRlbF9tc3QtPnByaW1hcnk7Cj4gICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gQEAgLTM3Myw3ICszNzMsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9tc3RfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2VuY19nZXRfaHdfc3RhdGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkJICAgICAgZW51bSBwaXBlICpwaXBlKQo+ ICAgewo+IC0Jc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRlbF9tc3QgPSBlbmNfdG9f bXN0KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqaW50 ZWxfbXN0ID0gZW5jX3RvX21zdChlbmNvZGVyKTsKPiAgIAkqcGlwZSA9IGludGVsX21zdC0+cGlw ZTsKPiAgIAlpZiAoaW50ZWxfbXN0LT5jb25uZWN0b3IpCj4gICAJCXJldHVybiB0cnVlOwo+IEBA IC0zODMsNyArMzgzLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbXN0X2VuY19nZXRfaHdfc3Rh dGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICBzdGF0aWMgdm9pZCBpbnRlbF9k cF9tc3RfZW5jX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJ CQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgIHsKPiAtCXN0cnVj dCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0+ YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21zdCA9IGVuY190 b19tc3QoZW5jb2Rlcik7Cj4gICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQgPSBpbnRlbF9tc3QtPnByaW1hcnk7Cj4gICAKPiAgIAlpbnRlbF9kZGlfZ2V0X2NvbmZp ZygmaW50ZWxfZGlnX3BvcnQtPmJhc2UsIHBpcGVfY29uZmlnKTsKPiBAQCAtNDkxLDcgKzQ5MSw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgaW50ZWxf ZHBfbXN0X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuCj4gICAKPiAgIHN0YXRpYyB2b2lkIGludGVsX2Rw X21zdF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ IC0Jc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRlbF9tc3QgPSBlbmNfdG9fbXN0KGVu Y29kZXIpOwo+ICsJc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRlbF9tc3QgPSBlbmNf dG9fbXN0KHRvX2ludGVsX2VuY29kZXIoZW5jb2RlcikpOwo+ICAgCj4gICAJZHJtX2VuY29kZXJf Y2xlYW51cChlbmNvZGVyKTsKPiAgIAlrZnJlZShpbnRlbF9tc3QpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwaW9fcGh5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwaW9fcGh5LmMKPiBpbmRleCA3MDRmMzg2ODFjNGIu LjZmYjFmN2E3MzY0ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RwaW9fcGh5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwaW9fcGh5LmMKPiBAQCAtNjQyLDcgKzY0Miw3IEBAIHZvaWQgY2h2X3NldF9waHlfc2ln bmFsX2xldmVsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJICAgICAgYm9v bCB1bmlxX3RyYW5zX3NjYWxlKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rl cik7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVu Y29kZXItPmJhc2UuY3J0Yyk7Cj4gICAJZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRf dG9fY2hhbm5lbChkcG9ydCk7Cj4gICAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBl Owo+IEBAIC03MzgsNyArNzM4LDcgQEAgdm9pZCBjaHZfZGF0YV9sYW5lX3NvZnRfcmVzZXQoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkgICAgICBib29sIHJlc2V0KQo+ICAg ewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwo+IC0JZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hh bm5lbChlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpKTsKPiArCWVudW0gZHBpb19jaGFu bmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpKTsK PiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKPiAgIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gICAJdTMyIHZh bDsKPiBAQCAtNzgxLDcgKzc4MSw3IEBAIHZvaWQgY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0KHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgdm9pZCBjaHZfcGh5X3ByZV9wbGxfZW5h YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rl cik7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gICAJZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2 bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7Cj4gQEAgLTg2MSw3ICs4NjEsNyBAQCB2b2lkIGNo dl9waHlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICB2 b2lkIGNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAgCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICAgewo+IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5j b2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVs X2RwKGVuY29kZXIpOwo+ICAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZHBf dG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+IEBAIC05NDAs NyArOTQwLDcgQEAgdm9pZCBjaHZfcGh5X3ByZV9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgIAo+ICAgdm9pZCBjaHZfcGh5X3JlbGVhc2VfY2wyX292ZXJy aWRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+IC0Jc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5j b2Rlcik7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Cj4gICAKPiAgIAlpZiAoZHBvcnQtPnJlbGVhc2VfY2wyX292ZXJy aWRlKSB7Cj4gQEAgLTk4OSw3ICs5ODksNyBAQCB2b2lkIHZsdl9zZXRfcGh5X3NpZ25hbF9sZXZl bChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFz ZS5jcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2Rp Z19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRw b3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICAgCWVudW0gZHBpb19jaGFubmVsIHBv cnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7Cj4gICAJZW51bSBwaXBlIHBpcGUgPSBp bnRlbF9jcnRjLT5waXBlOwo+ICAgCj4gQEAgLTEwMTQsNyArMTAxNCw3IEBAIHZvaWQgdmx2X3Nl dF9waHlfc2lnbmFsX2xldmVsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgdm9p ZCB2bHZfcGh5X3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAgCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAg ewo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQo JmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBl bmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gICAJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gICAJZW51 bSBkcGlvX2NoYW5uZWwgcG9ydCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKPiBAQCAt MTA0Myw3ICsxMDQzLDcgQEAgdm9pZCB2bHZfcGh5X3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICAgdm9pZCB2bHZfcGh5X3ByZV9lbmNvZGVyX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQljb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiAgIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKPiBAQCAtMTA3Myw3ICsxMDczLDcgQEAgdm9pZCB2bHZfcGh5X3ByZV9l bmNvZGVyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIHZvaWQgdmx2 X3BoeV9yZXNldF9sYW5lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCSBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCj4gICB7Cj4gLQlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rl ci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19k aWdfcG9ydChlbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gICAJZW51bSBk cGlvX2NoYW5uZWwgcG9ydCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5jCj4gaW5kZXggNzI4YTRi MDQ1ZGU3Li5jNzVlMzRkODcxMTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcGxsX21nci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcGxsX21nci5jCj4gQEAgLTI5NzIsOCArMjk3Miw4IEBAIHN0YXRpYyB2b2lk IGljbF91cGRhdGVfYWN0aXZlX2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUs Cj4gICAJZW51bSBpY2xfcG9ydF9kcGxsX2lkIHBvcnRfZHBsbF9pZCA9IElDTF9QT1JUX0RQTExf REVGQVVMVDsKPiAgIAo+ICAgCXByaW1hcnlfcG9ydCA9IGVuY29kZXItPnR5cGUgPT0gSU5URUxf T1VUUFVUX0RQX01TVCA/Cj4gLQkJZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSktPnByaW1hcnkg Ogo+IC0JCWVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwkJZW5jX3RvX21zdChl bmNvZGVyKS0+cHJpbWFyeSA6Cj4gKwkJZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICAgCj4g ICAJaWYgKHByaW1hcnlfcG9ydCAmJgo+ICAgCSAgICAocHJpbWFyeV9wb3J0LT50Y19tb2RlID09 IFRDX1BPUlRfRFBfQUxUIHx8Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHNpLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rz aS5oCj4gaW5kZXggYjE1YmU1ODE0NTk5Li45N2IxOGFiNjkzNzAgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2kuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHNpLmgKPiBAQCAtMTQxLDkgKzE0MSw5IEBAIHN0YXRp YyBpbmxpbmUgc3RydWN0IGludGVsX2RzaV9ob3N0ICp0b19pbnRlbF9kc2lfaG9zdChzdHJ1Y3Qg bWlwaV9kc2lfaG9zdCAqaCkKPiAgICNkZWZpbmUgZm9yX2VhY2hfZHNpX3BoeShfX3BoeSwgX19w aHlzX21hc2spIFwKPiAgIAlmb3JfZWFjaF9waHlfbWFza2VkKF9fcGh5LCBfX3BoeXNfbWFzaykK PiAgIAo+IC1zdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9kc2kgKmVuY190b19pbnRlbF9kc2ko c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRl bF9kc2kgKmVuY190b19pbnRlbF9kc2koc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g ICB7Cj4gLQlyZXR1cm4gY29udGFpbmVyX29mKGVuY29kZXIsIHN0cnVjdCBpbnRlbF9kc2ksIGJh c2UuYmFzZSk7Cj4gKwlyZXR1cm4gY29udGFpbmVyX29mKCZlbmNvZGVyLT5iYXNlLCBzdHJ1Y3Qg aW50ZWxfZHNpLCBiYXNlLmJhc2UpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgaW5saW5lIGJvb2wg aXNfdmlkX21vZGUoc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpKQo+IEBAIC0xNTgsNyArMTU4 LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzX2NtZF9tb2RlKHN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSkKPiAgIAo+ICAgc3RhdGljIGlubGluZSB1MTYgaW50ZWxfZHNpX2VuY29kZXJfcG9y dHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICB7Cj4gLQlyZXR1cm4gZW5jX3Rv X2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSktPnBvcnRzOwo+ICsJcmV0dXJuIGVuY190b19pbnRl bF9kc2koZW5jb2RlciktPnBvcnRzOwo+ICAgfQo+ICAgCj4gICAvKiBpY2xfZHNpLmMgKi8KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2lfZGNzX2Jh Y2tsaWdodC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2lfZGNzX2Jh Y2tsaWdodC5jCj4gaW5kZXggYmIzZmQ4Yjc4NmEyLi5jODc4Mzg4NDNkMGIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2lfZGNzX2JhY2tsaWdodC5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kc2lfZGNzX2JhY2ts aWdodC5jCj4gQEAgLTQ2LDcgKzQ2LDcgQEAKPiAgIHN0YXRpYyB1MzIgZGNzX2dldF9iYWNrbGln aHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAgewo+ICAgCXN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5lbmNvZGVyOwo+IC0Jc3RydWN0IGlu dGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4g KwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIp Owo+ICAgCXN0cnVjdCBtaXBpX2RzaV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4gICAJdTggZGF0YSA9 IDA7Cj4gICAJZW51bSBwb3J0IHBvcnQ7Cj4gQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIHUzMiBk Y3NfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gICAK PiAgIHN0YXRpYyB2b2lkIGRjc19zZXRfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlLCB1MzIgbGV2ZWwpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGNvbm5fc3RhdGUtPmJlc3RfZW5jb2Rl cik7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKHRv X2ludGVsX2VuY29kZXIoY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKSk7Cj4gICAJc3RydWN0IG1p cGlfZHNpX2RldmljZSAqZHNpX2RldmljZTsKPiAgIAl1OCBkYXRhID0gbGV2ZWw7Cj4gICAJZW51 bSBwb3J0IHBvcnQ7Cj4gQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgZGNzX3NldF9iYWNr bGlnaHQoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsIHUzMgo+ ICAgCj4gICBzdGF0aWMgdm9pZCBkY3NfZGlzYWJsZV9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNp ICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGNvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKHRvX2lu dGVsX2VuY29kZXIoY29ubl9zdGF0ZS0+YmVzdF9lbmNvZGVyKSk7Cj4gICAJc3RydWN0IG1pcGlf ZHNpX2RldmljZSAqZHNpX2RldmljZTsKPiAgIAllbnVtIHBvcnQgcG9ydDsKPiAgIAo+IEBAIC0x MTMsNyArMTEzLDcgQEAgc3RhdGljIHZvaWQgZGNzX2Rpc2FibGVfYmFja2xpZ2h0KGNvbnN0IHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICAgc3RhdGljIHZvaWQgZGNz X2VuYWJsZV9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCj4gICAJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2Rz aShjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gZW5jX3RvX2ludGVsX2RzaSh0b19pbnRlbF9lbmNvZGVyKGNvbm5fc3RhdGUtPmJlc3Rf ZW5jb2RlcikpOwo+ICAgCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmdG9faW50ZWxfY29u bmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3RvciktPnBhbmVsOwo+ICAgCXN0cnVjdCBtaXBpX2Rz aV9kZXZpY2UgKmRzaV9kZXZpY2U7Cj4gICAJZW51bSBwb3J0IHBvcnQ7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1pLmMKPiBpbmRleCBhOGRlYjQ3ODlmMDQuLmUxNzll ZTA0NjY4NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5j Cj4gQEAgLTg1LDE2ICs4NSwxNyBAQCBhc3NlcnRfaGRtaV90cmFuc2NvZGVyX2Z1bmNfZGlzYWJs ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCSAgICAgIkhETUkgdHJh bnNjb2RlciBmdW5jdGlvbiBlbmFibGVkLCBleHBlY3RpbmcgZGlzYWJsZWRcbiIpOwo+ICAgfQo+ ICAgCj4gLXN0cnVjdCBpbnRlbF9oZG1pICplbmNfdG9faW50ZWxfaGRtaShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gK3N0cnVjdCBpbnRlbF9oZG1pICplbmNfdG9faW50ZWxfaGRtaShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9Cj4gLQkJY29udGFpbmVyX29mKGVuY29kZXIsIHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQsIGJhc2UuYmFzZSk7Cj4gKwkJY29udGFpbmVyX29mKCZl bmNvZGVyLT5iYXNlLCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0LAo+ICsJCQkgICAgIGJhc2Uu YmFzZSk7Cj4gICAJcmV0dXJuICZpbnRlbF9kaWdfcG9ydC0+aGRtaTsKPiAgIH0KPiAgIAo+ICAg c3RhdGljIHN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9hdHRhY2hlZF9oZG1pKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgIHsKPiAtCXJldHVybiBlbmNfdG9faW50ZWxfaGRt aSgmaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcihjb25uZWN0b3IpLT5iYXNlKTsKPiArCXJldHVybiBl bmNfdG9faW50ZWxfaGRtaShpbnRlbF9hdHRhY2hlZF9lbmNvZGVyKGNvbm5lY3RvcikpOwo+ICAg fQo+ICAgCj4gICBzdGF0aWMgdTMyIGc0eF9pbmZvZnJhbWVfaW5kZXgodW5zaWduZWQgaW50IHR5 cGUpCj4gQEAgLTYwMiw3ICs2MDMsNyBAQCB1MzIgaW50ZWxfaGRtaV9pbmZvZnJhbWVzX2VuYWJs ZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkJICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVy LT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3Rv X2RpZ19wb3J0KGVuY29kZXIpOwo+ICAgCXUzMiB2YWwsIHJldCA9IDA7Cj4gICAJaW50IGk7Cj4g ICAKPiBAQCAtNjQ2LDcgKzY0Nyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3dyaXRlX2luZm9mcmFt ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkgIGVudW0gaGRtaV9pbmZv ZnJhbWVfdHlwZSB0eXBlLAo+ICAgCQkJCSAgY29uc3QgdW5pb24gaGRtaV9pbmZvZnJhbWUgKmZy YW1lKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQg PSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gICAJ dTggYnVmZmVyW1ZJREVPX0RJUF9EQVRBX1NJWkVdOwo+ICAgCXNzaXplX3QgbGVuOwo+ICAgCj4g QEAgLTY3NSw3ICs2NzYsNyBAQCB2b2lkIGludGVsX3JlYWRfaW5mb2ZyYW1lKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJICBlbnVtIGhkbWlfaW5mb2ZyYW1lX3R5cGUgdHlw ZSwKPiAgIAkJCSAgdW5pb24gaGRtaV9pbmZvZnJhbWUgKmZyYW1lKQo+ICAgewo+IC0Jc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVu Y29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gICAJdTggYnVmZmVyW1ZJREVPX0RJUF9E QVRBX1NJWkVdOwo+ICAgCWludCByZXQ7Cj4gICAKPiBAQCAtODU1LDcgKzg1Niw3IEBAIHN0YXRp YyB2b2lkIGc0eF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0 ZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29k ZXIpOwo+ICAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gJmludGVsX2RpZ19wb3J0 LT5oZG1pOwo+ICAgCWk5MTVfcmVnX3QgcmVnID0gVklERU9fRElQX0NUTDsKPiAgIAl1MzIgdmFs ID0gSTkxNV9SRUFEKHJlZyk7Cj4gQEAgLTEwMzgsNyArMTAzOSw3IEBAIHN0YXRpYyB2b2lkIGli eF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIHsKPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0 KGVuY29kZXIpOwo+ICAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gJmludGVsX2Rp Z19wb3J0LT5oZG1pOwo+ICAgCWk5MTVfcmVnX3QgcmVnID0gVFZJREVPX0RJUF9DVEwoaW50ZWxf Y3J0Yy0+cGlwZSk7Cj4gICAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwo+IEBAIC0xMDk3LDcg KzEwOTgsNyBAQCBzdGF0aWMgdm9pZCBjcHRfc2V0X2luZm9mcmFtZXMoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gICAJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gLQlz dHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVy LT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVs X2hkbWkoZW5jb2Rlcik7Cj4gICAJaTkxNV9yZWdfdCByZWcgPSBUVklERU9fRElQX0NUTChpbnRl bF9jcnRjLT5waXBlKTsKPiAgIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4gICAKPiBAQCAt MTE0Niw3ICsxMTQ3LDcgQEAgc3RhdGljIHZvaWQgdmx2X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAgCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp Owo+IC0Jc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgm ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190 b19pbnRlbF9oZG1pKGVuY29kZXIpOwo+ICAgCWk5MTVfcmVnX3QgcmVnID0gVkxWX1RWSURFT19E SVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwo+ICAgCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsK PiAgIAl1MzIgcG9ydCA9IFZJREVPX0RJUF9QT1JUKGVuY29kZXItPnBvcnQpOwo+IEBAIC0xNzM3 LDcgKzE3MzgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3ByZXBhcmUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXIt PmJhc2UuZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0g ZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2hkbWkg KmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaShlbmNvZGVyKTsKPiAgIAljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5ody5hZGp1 c3RlZF9tb2RlOwo+ICAgCXUzMiBoZG1pX3ZhbDsKPiAgIAo+IEBAIC0xNzc0LDcgKzE3NzUsNyBA QCBzdGF0aWMgYm9vbCBpbnRlbF9oZG1pX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgIAkJCQkgICAgZW51bSBwaXBlICpwaXBlKQo+ICAgewo+ICAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp Owo+IC0Jc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgm ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190 b19pbnRlbF9oZG1pKGVuY29kZXIpOwo+ICAgCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwo+ICAg CWJvb2wgcmV0Owo+ICAgCj4gQEAgLTE3OTMsNyArMTc5NCw3IEBAIHN0YXRpYyBib29sIGludGVs X2hkbWlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgc3Rh dGljIHZvaWQgaW50ZWxfaGRtaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAgCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICAg ewo+IC0Jc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgm ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190 b19pbnRlbF9oZG1pKGVuY29kZXIpOwo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNv ZGVyLT5iYXNlLmRldjsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gICAJdTMyIHRtcCwgZmxhZ3MgPSAwOwo+IEBAIC0xODc0LDcgKzE4NzUs NyBAQCBzdGF0aWMgdm9pZCBnNHhfZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gICB7Cj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2Uu ZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKPiAtCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWko JmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNf dG9faW50ZWxfaGRtaShlbmNvZGVyKTsKPiAgIAl1MzIgdGVtcDsKPiAgIAo+ICAgCXRlbXAgPSBJ OTE1X1JFQUQoaW50ZWxfaGRtaS0+aGRtaV9yZWcpOwo+IEBAIC0xODk2LDcgKzE4OTcsNyBAQCBz dGF0aWMgdm9pZCBpYnhfZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gICB7Cj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAt CXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29k ZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50 ZWxfaGRtaShlbmNvZGVyKTsKPiAgIAl1MzIgdGVtcDsKPiAgIAo+ICAgCXRlbXAgPSBJOTE1X1JF QUQoaW50ZWxfaGRtaS0+aGRtaV9yZWcpOwo+IEBAIC0xOTQ3LDcgKzE5NDgsNyBAQCBzdGF0aWMg dm9pZCBjcHRfZW5hYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICAgCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7Cj4g LQlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNv ZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2lu dGVsX2hkbWkoZW5jb2Rlcik7Cj4gICAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICAg CXUzMiB0ZW1wOwo+ICAgCj4gQEAgLTIwMDcsNyArMjAwOCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIHsKPiAgIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0Jc3RydWN0IGludGVs X2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7Cj4g KwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKGVuY29k ZXIpOwo+ICAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPiAg IAkJaGRtaV90b19kaWdfcG9ydChpbnRlbF9oZG1pKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4gQEAgLTIz MTYsNyArMjMxNyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRtaV9jb21wdXRlX2JwYyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAo+ICAgCQkJCSAgaW50IGNsb2NrLCBib29sIGZvcmNlX2R2aSkKPiAgIHsK PiAtCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVu Y29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9f aW50ZWxfaGRtaShlbmNvZGVyKTsKPiAgIAlpbnQgYnBjOwo+ICAgCj4gICAJZm9yIChicGMgPSAx MjsgYnBjID49IDEwOyBicGMgLT0gMikgewo+IEBAIC0yMzM0LDcgKzIzMzUsNyBAQCBzdGF0aWMg aW50IGludGVsX2hkbWlfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gICAJ CQkJICAgIGJvb2wgZm9yY2VfZHZpKQo+ICAgewo+IC0Jc3RydWN0IGludGVsX2hkbWkgKmludGVs X2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50 ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKGVuY29kZXIpOwo+ICAgCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPiAgIAkJJmNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGU7Cj4gICAJaW50IGJwYywgY2xvY2sgPSBhZGp1c3RlZF9t b2RlLT5jcnRjX2Nsb2NrOwo+IEBAIC0yNDA0LDcgKzI0MDUsNyBAQCBpbnQgaW50ZWxfaGRtaV9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCSAgICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgIAkJCSAgICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICAgewo+IC0Jc3RydWN0IGludGVs X2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7Cj4g KwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKGVuY29k ZXIpOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwo+ICAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwo+ICAgCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7Cj4gQEAgLTI2NjMsNyAr MjY2NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmlu dGVsX2RpZ19wb3J0ID0KPiAtCQllbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ICsJ CWVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiAgIAo+ICAgCWludGVsX2hkbWlfcHJlcGFyZShl bmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gICAKPiBAQCAtMjY3Niw3ICsyNjc3LDcgQEAgc3RhdGlj IHZvaWQgdmx2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgIAkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gICAJ CQkJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gICB7Cj4g LQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5j b2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190 b19kaWdfcG9ydChlbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgIAo+ICAgCXZsdl9waHlfcHJlX2Vu Y29kZXJfZW5hYmxlKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiBAQCAtMjc0Niw3ICsyNzQ3LDcg QEAgc3RhdGljIHZvaWQgY2h2X2hkbWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiAgIAkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcsCj4gICAJCQkJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp Cj4gICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19kaWdf cG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9y dCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOwo+ICAgCj4gQEAgLTI5MDYsNyArMjkwNyw3IEBAIGJvb2wgaW50 ZWxfaGRtaV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAgCQkJCSAgICAgICBib29sIHNjcmFtYmxpbmcpCj4gICB7Cj4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4g LQlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNv ZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2lu dGVsX2hkbWkoZW5jb2Rlcik7Cj4gICAJc3RydWN0IGRybV9zY3JhbWJsaW5nICpzaW5rX3NjcmFt YmxpbmcgPQo+ICAgCQkmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaS5zY2RjLnNjcmFtYmxp bmc7Cj4gICAJc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1pLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuaAo+IGluZGV4IGNmMWVhNTQyNzYzOS4uZDM2NTlkMGI0 MDhiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRt aS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1pLmgKPiBA QCAtMjksNyArMjksNyBAQCB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGk5MTVfcmVnX3QgaGRtaV9yZWcsCj4gICAJCSAgICAgZW51bSBwb3J0 IHBvcnQpOwo+ICAgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAgCQkJICAgICAgIHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7Cj4gLXN0cnVjdCBpbnRlbF9oZG1pICplbmNfdG9f aW50ZWxfaGRtaShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ICtzdHJ1Y3QgaW50ZWxf aGRtaSAqZW5jX3RvX2ludGVsX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ ICAgaW50IGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcs Cj4gICAJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9ob3RwbHVnLmMKPiBpbmRleCBm YzI5MDQ2ZDQ4ZWEuLjk5ZDNhM2M3OTg5ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2hvdHBsdWcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfaG90cGx1Zy5jCj4gQEAgLTMwMiw3ICszMDIsNyBAQCBpbnRlbF9lbmNv ZGVyX2hvdHBsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICBzdGF0aWMgYm9v bCBpbnRlbF9lbmNvZGVyX2hhc19ocGRfcHVsc2Uoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gICB7Cj4gICAJcmV0dXJuIGludGVsX2VuY29kZXJfaXNfZGlnX3BvcnQoZW5jb2Rlcikg JiYKPiAtCQllbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpLT5ocGRfcHVsc2UgIT0gTlVM TDsKPiArCQllbmNfdG9fZGlnX3BvcnQoZW5jb2RlciktPmhwZF9wdWxzZSAhPSBOVUxMOwo+ICAg fQo+ICAgCj4gICBzdGF0aWMgdm9pZCBpOTE1X2RpZ3BvcnRfd29ya19mdW5jKHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykKPiBAQCAtMzM1LDcgKzMzNSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZGln cG9ydF93b3JrX2Z1bmMoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAgCQlpZiAoIWxvbmdf aHBkICYmICFzaG9ydF9ocGQpCj4gICAJCQljb250aW51ZTsKPiAgIAo+IC0JCWRpZ19wb3J0ID0g ZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiArCQlkaWdfcG9ydCA9IGVuY190b19k aWdfcG9ydChlbmNvZGVyKTsKPiAgIAo+ICAgCQlyZXQgPSBkaWdfcG9ydC0+aHBkX3B1bHNlKGRp Z19wb3J0LCBsb25nX2hwZCk7Cj4gICAJCWlmIChyZXQgPT0gSVJRX05PTkUpIHsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sc3Bjb24uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHNwY29uLmMKPiBpbmRleCA1MTQ1ZmY4Yjk2 MmIuLmQ4MDdjNTY0OGM4NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2xzcGNvbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9sc3Bjb24uYwo+IEBAIC00MzQsOCArNDM0LDggQEAgdm9pZCBsc3Bjb25fd3JpdGVfaW5m b2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJICAgIGNvbnN0IHZv aWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKPiAgIHsKPiAgIAlib29sIHJldDsKPiAtCXN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+IC0J c3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uID0gZW5jX3RvX2ludGVsX2xzcGNvbigmZW5jb2Rl ci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2Rw KGVuY29kZXIpOwo+ICsJc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uID0gZW5jX3RvX2ludGVs X2xzcGNvbihlbmNvZGVyKTsKPiAgIAo+ICAgCS8qIExTUENPTiBvbmx5IG5lZWRzIEFWSSBJRiAq Lwo+ICAgCWlmICh0eXBlICE9IEhETUlfSU5GT0ZSQU1FX1RZUEVfQVZJKQo+IEBAIC00NzIsNyAr NDcyLDcgQEAgdm9pZCBsc3Bjb25fc2V0X2luZm9mcmFtZXMoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gICAJc3NpemVfdCByZXQ7Cj4gICAJdW5pb24gaGRtaV9pbmZvZnJhbWUgZnJh bWU7Cj4gICAJdTggYnVmW1ZJREVPX0RJUF9EQVRBX1NJWkVdOwo+IC0Jc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwo+ ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQo ZW5jb2Rlcik7Cj4gICAJc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uID0gJmRpZ19wb3J0LT5s c3Bjb247Cj4gICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PQo+ICAgCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKPiBAQCAtNTIyLDcgKzUyMiw3 IEBAIHUzMiBsc3Bjb25faW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAgCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQo+ICAgewo+ICAgCS8qIEZJWE1FIGFjdHVhbGx5IHJlYWQgdGhpcyBmcm9tIHRoZSBo dyAqLwo+IC0JcmV0dXJuIGVuY190b19pbnRlbF9sc3Bjb24oJmVuY29kZXItPmJhc2UpLT5hY3Rp dmU7Cj4gKwlyZXR1cm4gZW5jX3RvX2ludGVsX2xzcGNvbihlbmNvZGVyKS0+YWN0aXZlOwo+ICAg fQo+ICAgCj4gICB2b2lkIGxzcGNvbl9yZXN1bWUoc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29u KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVf Y3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMKPiBp bmRleCAyNzQ2NTEyZjQ0NjYuLjUyMDQwOGU4MzY4MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMKPiBAQCAtOTgsNyArOTgsNyBAQCBzdGF0 aWMgaW50IGk5eHhfcGlwZV9jcmNfYXV0b19zb3VyY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ICAgCQkJYnJlYWs7Cj4gICAJCWNhc2UgSU5URUxfT1VUUFVUX0RQOgo+ICAg CQljYXNlIElOVEVMX09VVFBVVF9FRFA6Cj4gLQkJCWRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0 KCZlbmNvZGVyLT5iYXNlKTsKPiArCQkJZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rl cik7Cj4gICAJCQlzd2l0Y2ggKGRpZ19wb3J0LT5iYXNlLnBvcnQpIHsKPiAgIAkJCWNhc2UgUE9S VF9COgo+ICAgCQkJCSpzb3VyY2UgPSBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfRFBfQjsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Zkc2MuYwo+IGluZGV4IGIyM2JhOGQxMDhk Yi4uMDc1YjZlNGY2NmM2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfdmRzYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF92ZHNjLmMKPiBAQCAtMzM5LDcgKzMzOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcmNfcGFy YW1ldGVycyAqZ2V0X3JjX3BhcmFtcyh1MTYgY29tcHJlc3NlZF9icHAsCj4gICBzdGF0aWMgaW50 IGludGVsX2RzY19kcF9jb21wdXRlX3BhcmFtcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiAgIAkJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ ICAgewo+IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5j b2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVs X2RwKGVuY29kZXIpOwo+ICAgCXN0cnVjdCBkcm1fZHNjX2NvbmZpZyAqdmRzY19jZmcgPSAmcGlw ZV9jb25maWctPmRzYy5jb25maWc7Cj4gICAJdTggbGluZV9idWZfZGVwdGg7Cj4gICAKPiBAQCAt OTA0LDcgKzkwNCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzY19wcHNfY29uZmlndXJlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgc3RhdGljIHZvaWQgaW50ZWxfZHNjX2RwX3Bw c193cml0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkgICBjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgIHsKPiAtCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ICsJc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKPiAgIAlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKTsKPiAgIAljb25zdCBzdHJ1Y3QgZHJtX2RzY19jb25maWcgKnZkc2NfY2ZnID0g JmNydGNfc3RhdGUtPmRzYy5jb25maWc7Cj4gICAJc3RydWN0IGRybV9kc2NfcHBzX2luZm9mcmFt ZSBkcF9kc2NfcHBzX3NkcDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS92bHZfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9kc2kuYwo+ IGluZGV4IDgzOThhMjY1YjZhMy4uMGMxOTA2NGU0MmUwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS92bHZfZHNpLmMKPiBAQCAtMzE5LDcgKzMxOSw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfZHNpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAg c3RhdGljIGJvb2wgZ2xrX2RzaV9lbmFibGVfaW8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBl bmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gICAJZW51bSBwb3J0IHBvcnQ7 Cj4gICAJdTMyIHRtcDsKPiAgIAlib29sIGNvbGRfYm9vdCA9IGZhbHNlOwo+IEBAIC0zNjcsNyAr MzY3LDcgQEAgc3RhdGljIGJvb2wgZ2xrX2RzaV9lbmFibGVfaW8oc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4gICBzdGF0aWMgdm9pZCBnbGtfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRl bF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJ c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsK PiAgIAllbnVtIHBvcnQgcG9ydDsKPiAgIAl1MzIgdmFsOwo+ICAgCj4gQEAgLTQzOCw3ICs0Mzgs NyBAQCBzdGF0aWMgdm9pZCBnbGtfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKPiAgIHN0YXRpYyB2b2lkIGJ4dF9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ ICAgCWVudW0gcG9ydCBwb3J0Owo+ICAgCXUzMiB2YWw7Cj4gICAKPiBAQCAtNDY1LDcgKzQ2NSw3 IEBAIHN0YXRpYyB2b2lkIGJ4dF9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQo+ICAgc3RhdGljIHZvaWQgdmx2X2RzaV9kZXZpY2VfcmVhZHkoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0 cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4g ICAJZW51bSBwb3J0IHBvcnQ7Cj4gICAJdTMyIHZhbDsKPiAgIAo+IEBAIC01MTYsNyArNTE2LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKPiAgIHN0YXRpYyB2b2lkIGdsa19kc2lfZW50ZXJfbG93X3Bvd2VyX21vZGUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1 Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNl KTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5j b2Rlcik7Cj4gICAJZW51bSBwb3J0IHBvcnQ7Cj4gICAJdTMyIHZhbDsKPiAgIAo+IEBAIC01NDYs NyArNTQ2LDcgQEAgc3RhdGljIHZvaWQgZ2xrX2RzaV9lbnRlcl9sb3dfcG93ZXJfbW9kZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHN0YXRpYyB2b2lkIGdsa19kc2lfZGlzYWJs ZV9taXBpX2lvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp Owo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5j b2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50 ZWxfZHNpKGVuY29kZXIpOwo+ICAgCWVudW0gcG9ydCBwb3J0Owo+ICAgCXUzMiB0bXA7Cj4gICAK PiBAQCAtNTc5LDcgKzU3OSw3IEBAIHN0YXRpYyB2b2lkIGdsa19kc2lfY2xlYXJfZGV2aWNlX3Jl YWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgc3RhdGljIHZvaWQgdmx2X2Rz aV9jbGVhcl9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gICB7 Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50 ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9 IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gICAJZW51bSBwb3J0IHBvcnQ7Cj4gICAKPiAg IAlEUk1fREVCVUdfS01TKCJcbiIpOwo+IEBAIC02MjUsNyArNjI1LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZHNpX3BvcnRfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAg ewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwo+ICAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNp ID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNp ICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCWVudW0gcG9ydCBw b3J0Owo+ICAgCj4gICAJaWYgKGludGVsX2RzaS0+ZHVhbF9saW5rID09IERTSV9EVUFMX0xJTktf RlJPTlRfQkFDSykgewo+IEBAIC02ODEsNyArNjgxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNp X3BvcnRfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIHsKPiAgIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+IC0Jc3RydWN0IGludGVs X2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ ICAgCWVudW0gcG9ydCBwb3J0Owo+ICAgCj4gICAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50 ZWxfZHNpLT5wb3J0cykgewo+IEBAIC03NDUsNyArNzQ1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZHNpX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkJIGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgIAkJCQkgY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gICB7Cj4gLQlzdHJ1Y3Qg aW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsK PiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rl cik7Cj4gICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPnVhcGkuY3J0YzsK PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRl dik7Cj4gICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNy dGMpOwo+IEBAIC04NTAsNyArODUwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2Rpc2FibGUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQkgICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4gICAJCQkgICAgICBjb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCj4gICB7Cj4gLQlzdHJ1Y3Qg aW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsK PiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rl cik7Cj4gICAJZW51bSBwb3J0IHBvcnQ7Cj4gICAKPiAgIAlEUk1fREVCVUdfS01TKCJcbiIpOwo+ IEBAIC04ODYsNyArODg2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3Bvc3RfZGlzYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkgICBjb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVj dCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2Up Owo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNv ZGVyKTsKPiAgIAllbnVtIHBvcnQgcG9ydDsKPiAgIAl1MzIgdmFsOwo+ICAgCj4gQEAgLTk1Niw3 ICs5NTYsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kc2lfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCQkJCSAgIGVudW0gcGlwZSAqcGlwZSkKPiAgIHsKPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9k c2koJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5j X3RvX2ludGVsX2RzaShlbmNvZGVyKTsKPiAgIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKPiAg IAllbnVtIHBvcnQgcG9ydDsKPiAgIAlib29sIGFjdGl2ZSA9IGZhbHNlOwo+IEBAIC0xMDM1LDcg KzEwMzUsNyBAQCBzdGF0aWMgdm9pZCBieHRfZHNpX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9t b2RlOwo+ICAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlX3N3Owo+ICAg CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFw aS5jcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9k c2koJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5j X3RvX2ludGVsX2RzaShlbmNvZGVyKTsKPiAgIAl1bnNpZ25lZCBpbnQgbGFuZV9jb3VudCA9IGlu dGVsX2RzaS0+bGFuZV9jb3VudDsKPiAgIAl1bnNpZ25lZCBpbnQgYnBwLCBmbXQ7Cj4gICAJZW51 bSBwb3J0IHBvcnQ7Cj4gQEAgLTEyMjgsNyArMTIyOCw3IEBAIHN0YXRpYyB2b2lkIHNldF9kc2lf dGltaW5ncyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gICB7Cj4gICAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSh0b19pbnRlbF9lbmNvZGVyKGVuY29kZXIpKTsKPiAg IAllbnVtIHBvcnQgcG9ydDsKPiAgIAl1bnNpZ25lZCBpbnQgYnBwID0gbWlwaV9kc2lfcGl4ZWxf Zm9ybWF0X3RvX2JwcChpbnRlbF9kc2ktPnBpeGVsX2Zvcm1hdCk7Cj4gICAJdW5zaWduZWQgaW50 IGxhbmVfY291bnQgPSBpbnRlbF9kc2ktPmxhbmVfY291bnQ7Cj4gQEAgLTEzMTYsNyArMTMxNiw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpp bnRlbF9lbmNvZGVyLAo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7 Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ ICAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+dWFwaS5jcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190 b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBl bmNfdG9faW50ZWxfZHNpKHRvX2ludGVsX2VuY29kZXIoZW5jb2RlcikpOwo+ICAgCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5h ZGp1c3RlZF9tb2RlOwo+ICAgCWVudW0gcG9ydCBwb3J0Owo+ICAgCXVuc2lnbmVkIGludCBicHAg PSBtaXBpX2RzaV9waXhlbF9mb3JtYXRfdG9fYnBwKGludGVsX2RzaS0+cGl4ZWxfZm9ybWF0KTsK PiBAQCAtMTUwNiw3ICsxNTA2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZXBhcmUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gICBzdGF0aWMgdm9pZCBpbnRlbF9k c2lfdW5wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAgewo+ICAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgm ZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9f aW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCWVudW0gcG9ydCBwb3J0Owo+ICAgCXUzMiB2YWw7Cj4g ICAKPiBAQCAtMTUzMyw3ICsxNTMzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3VucHJlcGFy ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgIAo+ICAgc3RhdGljIHZvaWQgaW50 ZWxfZHNpX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gICB7 Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29k ZXIpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSh0 b19pbnRlbF9lbmNvZGVyKGVuY29kZXIpKTsKPiAgIAo+ICAgCS8qIGRpc3Bvc2Ugb2YgdGhlIGdw aW9zICovCj4gICAJaWYgKGludGVsX2RzaS0+Z3Bpb19wYW5lbCkKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpX3BsbC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS92bHZfZHNpX3BsbC5jCj4gaW5kZXggOTVmMzljZDBjZTAyLi42Yjg5ZTY3 YjEyMGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNp X3BsbC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpX3BsbC5j Cj4gQEAgLTExNyw3ICsxMTcsNyBAQCBpbnQgdmx2X2RzaV9wbGxfY29tcHV0ZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgIAkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25m aWcpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBl bmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gICAJaW50IHJldDsKPiAgIAl1 MzIgZHNpX2NsazsKPiAgIAo+IEBAIC0yNTUsNyArMjU1LDcgQEAgdTMyIHZsdl9kc2lfZ2V0X3Bj bGsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCSAgICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNvbmZpZykKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsKPiAg IAlpbnQgYnBwID0gbWlwaV9kc2lfcGl4ZWxfZm9ybWF0X3RvX2JwcChpbnRlbF9kc2ktPnBpeGVs X2Zvcm1hdCk7Cj4gICAJdTMyIGRzaV9jbG9jaywgcGNsazsKPiAgIAl1MzIgcGxsX2N0bCwgcGxs X2RpdjsKPiBAQCAtMzIxLDcgKzMyMSw3IEBAIHUzMiBieHRfZHNpX2dldF9wY2xrKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAgCXUzMiBwY2xrOwo+ICAgCXUzMiBkc2lfY2xrOwo+ ICAgCXUzMiBkc2lfcmF0aW87Cj4gLQlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNf dG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Cj4gICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gICAJaW50IGJw cCA9IG1pcGlfZHNpX3BpeGVsX2Zvcm1hdF90b19icHAoaW50ZWxfZHNpLT5waXhlbF9mb3JtYXQp Owo+ICAgCj4gQEAgLTM0MSw3ICszNDEsNyBAQCB2b2lkIHZsdl9kc2lfcmVzZXRfY2xvY2tzKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBlbnVtIHBvcnQgcG9ydCkKPiAgIHsKPiAgIAl1 MzIgdGVtcDsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVu Y190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsKPiAgIAo+ICAgCXRlbXAgPSBJOTE1 X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKPiAgIAl0ZW1wICY9IH5FU0NBUEVfQ0xPQ0tfRElWSURF Ul9NQVNLOwo+IEBAIC00NTUsNyArNDU1LDcgQEAgaW50IGJ4dF9kc2lfcGxsX2NvbXB1dGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY29uZmlnKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCXU4IGRzaV9y YXRpbywgZHNpX3JhdGlvX21pbiwgZHNpX3JhdGlvX21heDsKPiAgIAl1MzIgZHNpX2NsazsKPiAg IAo+IEBAIC01MDMsNyArNTAzLDcgQEAgdm9pZCBieHRfZHNpX3BsbF9lbmFibGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gICAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY29uZmlnKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwo+ICAgCWVudW0gcG9y dCBwb3J0Owo+ICAgCXUzMiB2YWw7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu Ywo+IGluZGV4IDRmNTQzY2NlYzE1ZC4uM2JjOGQ1YzBlODhhIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMjAyMCw3ICsyMDIwLDcgQEAgc3RhdGljIGludCBpOTE1 X3Bzcl9zaW5rX3N0YXR1c19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAg IAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gbS0+cHJpdmF0ZTsKPiAgIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsK PiAgIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0KPiAtCQllbmNfdG9faW50ZWxfZHAoJmlu dGVsX2F0dGFjaGVkX2VuY29kZXIodG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3RvcikpLT5iYXNl KTsKPiArCQllbmNfdG9faW50ZWxfZHAoaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcih0b19pbnRlbF9j b25uZWN0b3IoY29ubmVjdG9yKSkpOwo+ICAgCWludCByZXQ7Cj4gICAKPiAgIAlpZiAoIUNBTl9Q U1IoZGV2X3ByaXYpKSB7Cj4gQEAgLTI0MzIsNyArMjQzMiw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2RwX2luZm8oc3RydWN0IHNlcV9maWxlICptLAo+ICAgCQkJICBzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICppbnRlbF9jb25uZWN0b3IpCj4gICB7Cj4gICAJc3RydWN0IGludGVsX2VuY29kZXIgKmlu dGVsX2VuY29kZXIgPSBpbnRlbF9jb25uZWN0b3ItPmVuY29kZXI7Cj4gLQlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsKPiAr CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoaW50ZWxfZW5jb2Rl cik7Cj4gICAKPiAgIAlzZXFfcHJpbnRmKG0sICJcdERQQ0QgcmV2OiAleFxuIiwgaW50ZWxfZHAt PmRwY2RbRFBfRFBDRF9SRVZdKTsKPiAgIAlzZXFfcHJpbnRmKG0sICJcdGF1ZGlvIHN1cHBvcnQ6 ICVzXG4iLCB5ZXNubyhpbnRlbF9kcC0+aGFzX2F1ZGlvKSk7Cj4gQEAgLTI0NTIsNyArMjQ1Miw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX21zdF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKPiAg IHsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9IGludGVsX2Nvbm5l Y3Rvci0+ZW5jb2RlcjsKPiAgIAlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIgKmludGVsX21z dCA9Cj4gLQkJZW5jX3RvX21zdCgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4gKwkJZW5jX3RvX21z dChpbnRlbF9lbmNvZGVyKTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCA9IGludGVsX21zdC0+cHJpbWFyeTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPiAgIAlib29sIGhhc19hdWRpbyA9IGRybV9kcF9t c3RfcG9ydF9oYXNfYXVkaW8oJmludGVsX2RwLT5tc3RfbWdyLAo+IEBAIC0yNDY1LDcgKzI0NjUs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2luZm8oc3RydWN0IHNlcV9maWxlICptLAo+ICAg CQkJICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiAgIHsKPiAg IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9IGludGVsX2Nvbm5lY3Rvci0+ ZW5jb2RlcjsKPiAtCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVs X2hkbWkoJmludGVsX2VuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVs X2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaShpbnRlbF9lbmNvZGVyKTsKPiAgIAo+ICAgCXNlcV9w cmludGYobSwgIlx0YXVkaW8gc3VwcG9ydDogJXNcbiIsIHllc25vKGludGVsX2hkbWktPmhhc19h dWRpbykpOwo+ICAgCWlmIChpbnRlbF9jb25uZWN0b3ItPmhkY3Auc2hpbSkgewo+IEBAIC0zMDU5 LDcgKzMwNTksNyBAQCBzdGF0aWMgaW50IGk5MTVfZHBfbXN0X2luZm8oc3RydWN0IHNlcV9maWxl ICptLCB2b2lkICp1bnVzZWQpCj4gICAJCWlmICghaW50ZWxfZW5jb2RlciB8fCBpbnRlbF9lbmNv ZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EUF9NU1QpCj4gICAJCQljb250aW51ZTsKPiAgIAo+ IC0JCWludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZpbnRlbF9lbmNvZGVyLT5iYXNl KTsKPiArCQlpbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChpbnRlbF9lbmNvZGVyKTsK PiAgIAkJaWYgKCFpbnRlbF9kaWdfcG9ydC0+ZHAuY2FuX21zdCkKPiAgIAkJCWNvbnRpbnVlOwo+ ICAgCj4gQEAgLTMxMDksNyArMzEwOSw3IEBAIHN0YXRpYyBzc2l6ZV90IGk5MTVfZGlzcGxheXBv cnRfdGVzdF9hY3RpdmVfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCj4gICAJCQljb250aW51ZTsK PiAgIAo+ICAgCQlpZiAoZW5jb2RlciAmJiBjb25uZWN0b3ItPnN0YXR1cyA9PSBjb25uZWN0b3Jf c3RhdHVzX2Nvbm5lY3RlZCkgewo+IC0JCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5j b2Rlci0+YmFzZSk7Cj4gKwkJCWludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwo+ ICAgCQkJc3RhdHVzID0ga3N0cnRvaW50KGlucHV0X2J1ZmZlciwgMTAsICZ2YWwpOwo+ICAgCQkJ aWYgKHN0YXR1cyA8IDApCj4gICAJCQkJYnJlYWs7Cj4gQEAgLTMxNTMsNyArMzE1Myw3IEBAIHN0 YXRpYyBpbnQgaTkxNV9kaXNwbGF5cG9ydF90ZXN0X2FjdGl2ZV9zaG93KHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqZGF0YSkKPiAgIAkJCWNvbnRpbnVlOwo+ICAgCj4gICAJCWlmIChlbmNvZGVy ICYmIGNvbm5lY3Rvci0+c3RhdHVzID09IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkKSB7Cj4g LQkJCWludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCQkJaW50 ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAJCQlpZiAoaW50ZWxfZHAtPmNv bXBsaWFuY2UudGVzdF9hY3RpdmUpCj4gICAJCQkJc2VxX3B1dHMobSwgIjEiKTsKPiAgIAkJCWVs c2UKPiBAQCAtMzIwMyw3ICszMjAzLDcgQEAgc3RhdGljIGludCBpOTE1X2Rpc3BsYXlwb3J0X3Rl c3RfZGF0YV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgIAkJCWNvbnRp bnVlOwo+ICAgCj4gICAJCWlmIChlbmNvZGVyICYmIGNvbm5lY3Rvci0+c3RhdHVzID09IGNvbm5l Y3Rvcl9zdGF0dXNfY29ubmVjdGVkKSB7Cj4gLQkJCWludGVsX2RwID0gZW5jX3RvX2ludGVsX2Rw KCZlbmNvZGVyLT5iYXNlKTsKPiArCQkJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rl cik7Cj4gICAJCQlpZiAoaW50ZWxfZHAtPmNvbXBsaWFuY2UudGVzdF90eXBlID09Cj4gICAJCQkg ICAgRFBfVEVTVF9MSU5LX0VESURfUkVBRCkKPiAgIAkJCQlzZXFfcHJpbnRmKG0sICIlbHgiLAo+ IEBAIC0zMjQ3LDcgKzMyNDcsNyBAQCBzdGF0aWMgaW50IGk5MTVfZGlzcGxheXBvcnRfdGVzdF90 eXBlX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ICAgCQkJY29udGludWU7 Cj4gICAKPiAgIAkJaWYgKGVuY29kZXIgJiYgY29ubmVjdG9yLT5zdGF0dXMgPT0gY29ubmVjdG9y X3N0YXR1c19jb25uZWN0ZWQpIHsKPiAtCQkJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVu Y29kZXItPmJhc2UpOwo+ICsJCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsK PiAgIAkJCXNlcV9wcmludGYobSwgIiUwMmx4IiwgaW50ZWxfZHAtPmNvbXBsaWFuY2UudGVzdF90 eXBlKTsKPiAgIAkJfSBlbHNlCj4gICAJCQlzZXFfcHV0cyhtLCAiMCIpOwo+IEBAIC00MTkyLDcg KzQxOTIsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJyc19jdGxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2 YWwpCj4gICAJCQlEUk1fREVCVUdfRFJJVkVSKCJNYW51YWxseSAlc2FibGluZyBEUlJTLiAlbGx1 XG4iLAo+ICAgCQkJCQkJdmFsID8gImVuIiA6ICJkaXMiLCB2YWwpOwo+ICAgCj4gLQkJCWludGVs X2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiArCQkJaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7Cj4gICAJCQlpZiAodmFsKQo+ICAgCQkJCWludGVsX2Vk cF9kcnJzX2VuYWJsZShpbnRlbF9kcCwKPiAgIAkJCQkJCSAgICAgIGNydGNfc3RhdGUpOwo+IEBA IC00Mzk2LDcgKzQzOTYsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHBjZF9zaG93KHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yID0gbS0+cHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0KPiAt CQllbmNfdG9faW50ZWxfZHAoJmludGVsX2F0dGFjaGVkX2VuY29kZXIodG9faW50ZWxfY29ubmVj dG9yKGNvbm5lY3RvcikpLT5iYXNlKTsKPiArCQllbmNfdG9faW50ZWxfZHAoaW50ZWxfYXR0YWNo ZWRfZW5jb2Rlcih0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKSkpOwo+ICAgCXU4IGJ1Zlsx Nl07Cj4gICAJc3NpemVfdCBlcnI7Cj4gICAJaW50IGk7Cj4gQEAgLTQ0MzEsNyArNDQzMSw3IEBA IHN0YXRpYyBpbnQgaTkxNV9wYW5lbF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0 YSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gbS0+cHJpdmF0 ZTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0KPiAtCQllbmNfdG9faW50ZWxfZHAo JmludGVsX2F0dGFjaGVkX2VuY29kZXIodG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3RvcikpLT5i YXNlKTsKPiArCQllbmNfdG9faW50ZWxfZHAoaW50ZWxfYXR0YWNoZWRfZW5jb2Rlcih0b19pbnRl bF9jb25uZWN0b3IoY29ubmVjdG9yKSkpOwo+ICAgCj4gICAJaWYgKGNvbm5lY3Rvci0+c3RhdHVz ICE9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkKQo+ICAgCQlyZXR1cm4gLUVOT0RFVjsKPiBA QCAtNDUwOSw3ICs0NTA5LDcgQEAgc3RhdGljIGludCBpOTE1X2RzY19mZWNfc3VwcG9ydF9zaG93 KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgIAkJfSBlbHNlIGlmIChyZXQpIHsK PiAgIAkJCWJyZWFrOwo+ICAgCQl9Cj4gLQkJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmlu dGVsX2F0dGFjaGVkX2VuY29kZXIodG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3RvcikpLT5iYXNl KTsKPiArCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChpbnRlbF9hdHRhY2hlZF9lbmNvZGVy KHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpKSk7Cj4gICAJCWNydGNfc3RhdGUgPSB0b19p bnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKPiAgIAkJc2VxX3ByaW50ZihtLCAiRFNDX0Vu YWJsZWQ6ICVzXG4iLAo+ICAgCQkJICAgeWVzbm8oY3J0Y19zdGF0ZS0+ZHNjLmNvbXByZXNzaW9u X2VuYWJsZSkpOwo+IEBAIC00NTM3LDcgKzQ1MzcsNyBAQCBzdGF0aWMgc3NpemVfdCBpOTE1X2Rz Y19mZWNfc3VwcG9ydF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKPiAgIAlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yID0KPiAgIAkJKChzdHJ1Y3Qgc2VxX2ZpbGUgKilmaWxlLT5wcml2 YXRlX2RhdGEpLT5wcml2YXRlOwo+ICAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0g aW50ZWxfYXR0YWNoZWRfZW5jb2Rlcih0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKSk7Cj4g LQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5i YXNlKTsKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5j b2Rlcik7Cj4gICAKPiAgIAlpZiAobGVuID09IDApCj4gICAJCXJldHVybiAwOwo+IAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==