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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id AC1D8C38142 for ; Fri, 27 Jan 2023 13:51:59 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id F200B10E980; Fri, 27 Jan 2023 13:51:58 +0000 (UTC) Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9DB7710E980 for ; Fri, 27 Jan 2023 13:51:56 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 3D54B2020E; Fri, 27 Jan 2023 13:51:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1674827515; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=8tv4/B59RS7c/zPTQlZxqGGzlMPGNKS7IEyzcpKIYmI=; b=ZugyA1ZhfTa9qrCJGTOrPUiHHltJenHKR/xuoJuZ9QaOVyHSye88+eLHTHpsZRv4yaos00 ZyzY62fySJzai3EsNDFcBrise25I1mla6zYkuBSdbBGevDgZmfdgnPZ20dyvGVhMk0Dn9O sD4n+2xMocWQ0IqntsGoF7w8WYdp+fM= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1674827515; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=8tv4/B59RS7c/zPTQlZxqGGzlMPGNKS7IEyzcpKIYmI=; b=RBWY3/3tMVxvxld7Ww3EkLecapxbM0clP+//Tz7unC2Y8qV3YgiZqSrPD1N11ySSKDAapE +HEltHA4saaSv1DA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 0209F138E3; Fri, 27 Jan 2023 13:51:54 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id g3g6O/rW02NNMAAAMHmgww (envelope-from ); Fri, 27 Jan 2023 13:51:54 +0000 Message-ID: <17ed5d53-0865-4e77-1a7d-2ac73ffc36e7@suse.de> Date: Fri, 27 Jan 2023 14:51:54 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH 3/7] drm/vmwgfx: Rename vmw_buffer_object to vmw_bo Content-Language: en-US To: Zack Rusin , dri-devel@lists.freedesktop.org References: <20230126173813.602748-1-zack@kde.org> <20230126173813.602748-4-zack@kde.org> From: Thomas Zimmermann In-Reply-To: <20230126173813.602748-4-zack@kde.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------SQ5VmPufCKeRfpGAnmZcOb4l" X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: krastevm@vmware.com, mombasawalam@vmware.com, banackm@vmware.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------SQ5VmPufCKeRfpGAnmZcOb4l Content-Type: multipart/mixed; boundary="------------uNN4WECD10tye4EokckaOCNS"; protected-headers="v1" From: Thomas Zimmermann To: Zack Rusin , dri-devel@lists.freedesktop.org Cc: krastevm@vmware.com, banackm@vmware.com, mombasawalam@vmware.com Message-ID: <17ed5d53-0865-4e77-1a7d-2ac73ffc36e7@suse.de> Subject: Re: [PATCH 3/7] drm/vmwgfx: Rename vmw_buffer_object to vmw_bo References: <20230126173813.602748-1-zack@kde.org> <20230126173813.602748-4-zack@kde.org> In-Reply-To: <20230126173813.602748-4-zack@kde.org> --------------uNN4WECD10tye4EokckaOCNS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQoNCkFtIDI2LjAxLjIzIHVtIDE4OjM4IHNjaHJpZWIgWmFjayBSdXNpbjoNCj4gRnJvbTog WmFjayBSdXNpbiA8emFja3JAdm13YXJlLmNvbT4NCj4gDQo+IFRoZSByZXN0IG9mIHRoZSBk cml2ZXJzIHdoaWNoIGFyZSB1c2luZyB0dG0gaGF2ZSBtb3N0bHkgc3RhbmRhcmRpemVkIG9u DQo+IGRyaXZlcl9wcmVmaXhfYm8gYXMgdGhlIG5hbWUgZm9yIHN1YmNsYXNzZXMgb2YgdGhl IFRUTSBidWZmZXIgb2JqZWN0Lg0KPiBNYWtlIHZtd2dmeCBtYXRjaCB0aGUgcmVzdCBvZiB0 aGUgZHJpdmVycyBhbmQgZm9sbG93IHRoZSBzYW1lIG5hbWluZw0KPiBzZW1hbnRpY3MuDQo+ IA0KPiBUaGlzIGlzIGVzcGVjaWFsbHkgY2xlYXIgZ2l2ZW4gdGhhdCB0aGUgbmFtZSBvZiB0 aGUgZmlsZSBpbiB3aGljaCB0aGUNCj4gb2JqZWN0IHdhcyBkZWZpbmVkIGlzIHZtd19iby5j Lg0KPiANCj4gU2lnbmVkLW9mZi1ieTogWmFjayBSdXNpbiA8emFja3JAdm13YXJlLmNvbT4N Cj4gLS0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYyAgICAgICAg ICAgfCAgOTEgKysrKystLS0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf Ym8uaCAgICAgICAgICAgfCAxOTEgKysrKysrKysrKysrKysrKysrKw0KPiAgIGRyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2NtZC5jICAgICAgICAgIHwgIDEwICstDQo+ICAgZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMgICAgICAgfCAgIDkgKy0NCj4g ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb250ZXh0LmMgICAgICB8ICAxMSAr LQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvdGFibGUuYyAgICAgIHwg ICA5ICstDQo+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgICAg ICAgfCAgIDcgKy0NCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCAg ICAgICAgICB8IDE4MiArKy0tLS0tLS0tLS0tLS0tLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9leGVjYnVmLmMgICAgICB8ICA1MyArKystLQ0KPiAgIGRyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMgICAgICAgIHwgICAyICstDQo+ICAgZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ2VtLmMgICAgICAgICAgfCAgMjYgKy0tDQo+ ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgICAgICAgICAgfCAgMTcg Ky0NCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaCAgICAgICAgICB8 ICAxMiArLQ0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X21vYi5jICAgICAg ICAgIHwgICA3ICstDQo+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfb3Zlcmxh eS5jICAgICAgfCAgMTggKy0NCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9w YWdlX2RpcnR5LmMgICB8ICAyNyArLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9yZXNvdXJjZS5jICAgICB8ICAyOSArLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9zY3JuLmMgICAgICAgICB8ICAxNSArLQ0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3NoYWRlci5jICAgICAgIHwgIDE1ICstDQo+ICAgZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jICAgICAgICAgfCAgMTMgKy0NCj4gICBkcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdHJlYW1vdXRwdXQuYyB8ICAgOSArLQ0KPiAg IGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N1cmZhY2UuYyAgICAgIHwgICA5ICst DQo+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jICAgfCAg IDMgKy0NCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF92YWxpZGF0aW9uLmMg ICB8ICAzMCArLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF92YWxpZGF0 aW9uLmggICB8ICAgNiArLQ0KPiAgIDI1IGZpbGVzIGNoYW5nZWQsIDQzMSBpbnNlcnRpb25z KCspLCAzNzAgZGVsZXRpb25zKC0pDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmgNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfYm8uYw0KPiBpbmRleCA4YWFlZWVjZDIwMTYuLjU4NmUxZjFlOWU0OSAxMDA2NDQN Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5jDQo+IEBAIC0xLDcgKzEsNyBAQA0K PiAgIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVA0KPiAgIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKg0KPiAgICAqDQo+IC0gKiBDb3B5cmlnaHQgwqkgMjAxMS0y MDE4IFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiArICogQ29weXJpZ2h0 IMKpIDIwMTEtMjAyMyBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0ENCj4gICAg KiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KPiAgICAqDQo+ICAgICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n IGENCj4gQEAgLTI2LDU1ICsyNiw1NCBAQA0KPiAgICAqDQo+ICAgICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLw0KPiAgIA0KPiAtI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPg0K PiAtDQo+ICsjaW5jbHVkZSAidm13Z2Z4X2JvLmgiDQo+ICAgI2luY2x1ZGUgInZtd2dmeF9k cnYuaCINCj4gLSNpbmNsdWRlICJ0dG1fb2JqZWN0LmgiDQo+ICAgDQo+ICAgDQo+ICsjaW5j bHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+DQo+ICsNCj4gICAvKioNCj4gLSAqIHZt d19idWZmZXJfb2JqZWN0IC0gQ29udmVydCBhIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCB0 byBhIHN0cnVjdA0KPiAtICogdm13X2J1ZmZlcl9vYmplY3QuDQo+ICsgKiB2bXdfYm8gLSBD b252ZXJ0IGEgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0IHRvIGEgc3RydWN0IHZtd19iby4N Cj4gICAgKg0KPiAgICAqIEBibzogUG9pbnRlciB0byB0aGUgVFRNIGJ1ZmZlciBvYmplY3Qu DQo+IC0gKiBSZXR1cm46IFBvaW50ZXIgdG8gdGhlIHN0cnVjdCB2bXdfYnVmZmVyX29iamVj dCBlbWJlZGRpbmcgdGhlDQo+ICsgKiBSZXR1cm46IFBvaW50ZXIgdG8gdGhlIHN0cnVjdCB2 bXdfYm8gZW1iZWRkaW5nIHRoZQ0KPiAgICAqIFRUTSBidWZmZXIgb2JqZWN0Lg0KPiAgICAq Lw0KPiAtc3RhdGljIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqDQo+IC12bXdfYnVmZmVy X29iamVjdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQ0KPiArc3RhdGljIHN0cnVj dCB2bXdfYm8gKg0KPiArdm13X2JvKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pDQoN CldlIHVzdWFsbHkgbmFtZSB0aGVzZSBmdW5jdGlvbnMgdG9fPGRzdCB0eXBlPigpOiB0b192 bXdfYm8oKS4gSSdkIGFsc28gDQp1c2UgdGhlIGJhc2UgR0VNIG9iamVjdCBhcyBhcmd1bWVu dCwgYXMgbW9zdCBEUk0gaW50ZXJmYWNlcyB1c2UgR0VNIA0Kb2JqZWN0cy4gVGhpcyB3YXkg eW91IGNhbiB1cGNhc3QgZnJvbSB0dG0gYm9zIHdpdGgNCg0KICAgdmJvID0gdG9fdm13X2Jv cygmYm8tPmJhc2UpDQoNCmFuZCB1c2UNCg0KICAgYm8gPSAmdmJvLT5iYXNlDQoNCmlmIHlv dSBuZWVkIHRoZSBUVE0gYm8uDQoNCkJlc3QgcmVnYXJkcw0KVGhvbWFzDQoNCj4gICB7DQo+ IC0JcmV0dXJuIGNvbnRhaW5lcl9vZihibywgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0LCBi YXNlKTsNCj4gKwlyZXR1cm4gY29udGFpbmVyX29mKGJvLCBzdHJ1Y3Qgdm13X2JvLCBiYXNl KTsNCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+IC0gKiB2bXdfYm9fYm9fZnJlZSAtIHZtdyBi dWZmZXIgb2JqZWN0IGRlc3RydWN0b3INCj4gKyAqIHZtd19ib19mcmVlIC0gdm13X2JvIGRl c3RydWN0b3INCj4gICAgKg0KPiAgICAqIEBibzogUG9pbnRlciB0byB0aGUgZW1iZWRkZWQg c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0DQo+ICAgICovDQo+IC1zdGF0aWMgdm9pZCB2bXdf Ym9fYm9fZnJlZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQ0KPiArc3RhdGljIHZv aWQgdm13X2JvX2ZyZWUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykNCj4gICB7DQo+ IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2bXdfYm8gPSB2bXdfYnVmZmVyX29iamVj dChibyk7DQo+ICsJc3RydWN0IHZtd19ibyAqdmJvID0gdm13X2JvKGJvKTsNCj4gICANCj4g LQlXQVJOX09OKHZtd19iby0+ZGlydHkpOw0KPiAtCVdBUk5fT04oIVJCX0VNUFRZX1JPT1Qo JnZtd19iby0+cmVzX3RyZWUpKTsNCj4gLQl2bXdfYm9fdW5tYXAodm13X2JvKTsNCj4gKwlX QVJOX09OKHZiby0+ZGlydHkpOw0KPiArCVdBUk5fT04oIVJCX0VNUFRZX1JPT1QoJnZiby0+ cmVzX3RyZWUpKTsNCj4gKwl2bXdfYm9fdW5tYXAodmJvKTsNCj4gICAJZHJtX2dlbV9vYmpl Y3RfcmVsZWFzZSgmYm8tPmJhc2UpOw0KPiAtCWtmcmVlKHZtd19ibyk7DQo+ICsJa2ZyZWUo dmJvKTsNCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+IC0gKiBib19pc192bXcgLSBjaGVjayBp ZiB0aGUgYnVmZmVyIG9iamVjdCBpcyBhICZ2bXdfYnVmZmVyX29iamVjdA0KPiArICogYm9f aXNfdm13IC0gY2hlY2sgaWYgdGhlIGJ1ZmZlciBvYmplY3QgaXMgYSAmdm13X2JvDQo+ICAg ICogQGJvOiB0dG0gYnVmZmVyIG9iamVjdCB0byBiZSBjaGVja2VkDQo+ICAgICoNCj4gICAg KiBVc2VzIGRlc3Ryb3kgZnVuY3Rpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBvYmplY3QgdG8g ZGV0ZXJtaW5lIGlmIHRoaXMgaXMNCj4gLSAqIGEgJnZtd19idWZmZXJfb2JqZWN0Lg0KPiAr ICogYSAmdm13X2JvLg0KPiAgICAqDQo+ICAgICogUmV0dXJuczoNCj4gLSAqIHRydWUgaWYg dGhlIG9iamVjdCBpcyBvZiAmdm13X2J1ZmZlcl9vYmplY3QgdHlwZSwgZmFsc2UgaWYgbm90 Lg0KPiArICogdHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIG9mICZ2bXdfYm8gdHlwZSwgZmFsc2Ug aWYgbm90Lg0KPiAgICAqLw0KPiAgIHN0YXRpYyBib29sIGJvX2lzX3ZtdyhzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvKQ0KPiAgIHsNCj4gLQlyZXR1cm4gYm8tPmRlc3Ryb3kgPT0g JnZtd19ib19ib19mcmVlOw0KPiArCXJldHVybiBiby0+ZGVzdHJveSA9PSAmdm13X2JvX2Zy ZWU7DQo+ICAgfQ0KPiAgIA0KPiAgIC8qKg0KPiBAQCAtODgsNyArODcsNyBAQCBzdGF0aWMg Ym9vbCBib19pc192bXcoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykNCj4gICAgKiAt RVJFU1RBUlRTWVMgaWYgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwNCj4gICAgKi8NCj4gICBp bnQgdm13X2JvX3Bpbl9pbl9wbGFjZW1lbnQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJp diwNCj4gLQkJCSAgICBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJ1ZiwNCj4gKwkJCSAg ICBzdHJ1Y3Qgdm13X2JvICpidWYsDQo+ICAgCQkJICAgIHN0cnVjdCB0dG1fcGxhY2VtZW50 ICpwbGFjZW1lbnQsDQo+ICAgCQkJICAgIGJvb2wgaW50ZXJydXB0aWJsZSkNCj4gICB7DQo+ IEBAIC0xMzAsNyArMTI5LDcgQEAgaW50IHZtd19ib19waW5faW5fcGxhY2VtZW50KHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgICogLUVSRVNUQVJUU1lTIGlmIGludGVy cnVwdGVkIGJ5IGEgc2lnbmFsDQo+ICAgICovDQo+ICAgaW50IHZtd19ib19waW5faW5fdnJh bV9vcl9nbXIoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gLQkJCSAgICAgIHN0 cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYnVmLA0KPiArCQkJICAgICAgc3RydWN0IHZtd19i byAqYnVmLA0KPiAgIAkJCSAgICAgIGJvb2wgaW50ZXJydXB0aWJsZSkNCj4gICB7DQo+ICAg CXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7aW50ZXJydXB0aWJsZSwgZmFsc2Ug fTsNCj4gQEAgLTE3OCw3ICsxNzcsNyBAQCBpbnQgdm13X2JvX3Bpbl9pbl92cmFtX29yX2dt cihzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgICAqIC1FUkVTVEFSVFNZUyBp ZiBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbA0KPiAgICAqLw0KPiAgIGludCB2bXdfYm9fcGlu X2luX3ZyYW0oc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gLQkJICAgICAgIHN0 cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYnVmLA0KPiArCQkgICAgICAgc3RydWN0IHZtd19i byAqYnVmLA0KPiAgIAkJICAgICAgIGJvb2wgaW50ZXJydXB0aWJsZSkNCj4gICB7DQo+ICAg CXJldHVybiB2bXdfYm9fcGluX2luX3BsYWNlbWVudChkZXZfcHJpdiwgYnVmLCAmdm13X3Zy YW1fcGxhY2VtZW50LA0KPiBAQCAtMTk5LDcgKzE5OCw3IEBAIGludCB2bXdfYm9fcGluX2lu X3ZyYW0oc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gICAgKiAtRVJFU1RBUlRT WVMgaWYgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwNCj4gICAgKi8NCj4gICBpbnQgdm13X2Jv X3Bpbl9pbl9zdGFydF9vZl92cmFtKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ IC0JCQkJc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpidWYsDQo+ICsJCQkJc3RydWN0IHZt d19ibyAqYnVmLA0KPiAgIAkJCQlib29sIGludGVycnVwdGlibGUpDQo+ICAgew0KPiAgIAlz dHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0ge2ludGVycnVwdGlibGUsIGZhbHNlIH07 DQo+IEBAIC0yNjMsNyArMjYyLDcgQEAgaW50IHZtd19ib19waW5faW5fc3RhcnRfb2ZfdnJh bShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgICAqIC1FUkVTVEFSVFNZUyBp ZiBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbA0KPiAgICAqLw0KPiAgIGludCB2bXdfYm9fdW5w aW4oc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gLQkJIHN0cnVjdCB2bXdfYnVm ZmVyX29iamVjdCAqYnVmLA0KPiArCQkgc3RydWN0IHZtd19ibyAqYnVmLA0KPiAgIAkJIGJv b2wgaW50ZXJydXB0aWJsZSkNCj4gICB7DQo+ICAgCXN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8gPSAmYnVmLT5iYXNlOw0KPiBAQCAtMzA4LDcgKzMwNyw3IEBAIHZvaWQgdm13X2Jv X2dldF9ndWVzdF9wdHIoY29uc3Qgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywNCj4g ICAgKiBAcGluOiBXaGV0aGVyIHRvIHBpbiBvciB1bnBpbi4NCj4gICAgKg0KPiAgICAqLw0K PiAtdm9pZCB2bXdfYm9fcGluX3Jlc2VydmVkKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAq dmJvLCBib29sIHBpbikNCj4gK3ZvaWQgdm13X2JvX3Bpbl9yZXNlcnZlZChzdHJ1Y3Qgdm13 X2JvICp2Ym8sIGJvb2wgcGluKQ0KPiAgIHsNCj4gICAJc3RydWN0IHR0bV9vcGVyYXRpb25f Y3R4IGN0eCA9IHsgZmFsc2UsIHRydWUgfTsNCj4gICAJc3RydWN0IHR0bV9wbGFjZSBwbDsN Cj4gQEAgLTM1Niw3ICszNTUsNyBAQCB2b2lkIHZtd19ib19waW5fcmVzZXJ2ZWQoc3RydWN0 IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8sIGJvb2wgcGluKQ0KPiAgICAqIDMpIEJ1ZmZlciBv YmplY3QgZGVzdHJ1Y3Rpb24NCj4gICAgKg0KPiAgICAqLw0KPiAtdm9pZCAqdm13X2JvX21h cF9hbmRfY2FjaGUoc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8pDQo+ICt2b2lkICp2 bXdfYm9fbWFwX2FuZF9jYWNoZShzdHJ1Y3Qgdm13X2JvICp2Ym8pDQo+ICAgew0KPiAgIAlz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gJnZiby0+YmFzZTsNCj4gICAJYm9vbCBu b3RfdXNlZDsNCj4gQEAgLTM4MSw5ICszODAsOSBAQCB2b2lkICp2bXdfYm9fbWFwX2FuZF9j YWNoZShzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykNCj4gICAgKiBAdmJvOiBUaGUg YnVmZmVyIG9iamVjdCB3aG9zZSBtYXAgd2UgYXJlIHRlYXJpbmcgZG93bi4NCj4gICAgKg0K PiAgICAqIFRoaXMgZnVuY3Rpb24gdGVhcnMgZG93biBhIGNhY2hlZCBtYXAgc2V0IHVwIHVz aW5nDQo+IC0gKiB2bXdfYnVmZmVyX29iamVjdF9tYXBfYW5kX2NhY2hlKCkuDQo+ICsgKiB2 bXdfYm9fbWFwX2FuZF9jYWNoZSgpLg0KPiAgICAqLw0KPiAtdm9pZCB2bXdfYm9fdW5tYXAo c3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8pDQo+ICt2b2lkIHZtd19ib191bm1hcChz dHJ1Y3Qgdm13X2JvICp2Ym8pDQo+ICAgew0KPiAgIAlpZiAodmJvLT5tYXAuYm8gPT0gTlVM TCkNCj4gICAJCXJldHVybjsNCj4gQEAgLTQ0Nyw3ICs0NDYsNyBAQCBpbnQgdm13X2JvX2Ny ZWF0ZV9rZXJuZWwoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwgdW5zaWduZWQgbG9u ZyBzaXplLA0KPiAgIGludCB2bXdfYm9fY3JlYXRlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqdm13 LA0KPiAgIAkJICBzaXplX3Qgc2l6ZSwgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVu dCwNCj4gICAJCSAgYm9vbCBpbnRlcnJ1cHRpYmxlLCBib29sIHBpbiwNCj4gLQkJICBzdHJ1 Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKipwX2JvKQ0KPiArCQkgIHN0cnVjdCB2bXdfYm8gKipw X2JvKQ0KPiAgIHsNCj4gICAJaW50IHJldDsNCj4gICANCj4gQEAgLTQ3Myw3ICs0NzIsNyBA QCBpbnQgdm13X2JvX2NyZWF0ZShzdHJ1Y3Qgdm13X3ByaXZhdGUgKnZtdywNCj4gICAgKiB2 bXdfYm9faW5pdCAtIEluaXRpYWxpemUgYSB2bXcgYnVmZmVyIG9iamVjdA0KPiAgICAqDQo+ ICAgICogQGRldl9wcml2OiBQb2ludGVyIHRvIHRoZSBkZXZpY2UgcHJpdmF0ZSBzdHJ1Y3QN Cj4gLSAqIEB2bXdfYm86IFBvaW50ZXIgdG8gdGhlIHN0cnVjdCB2bXdfYnVmZmVyX29iamVj dCB0byBpbml0aWFsaXplLg0KPiArICogQHZtd19ibzogUG9pbnRlciB0byB0aGUgc3RydWN0 IHZtd19ibyB0byBpbml0aWFsaXplLg0KPiAgICAqIEBzaXplOiBCdWZmZXIgb2JqZWN0IHNp emUgaW4gYnl0ZXMuDQo+ICAgICogQHBsYWNlbWVudDogSW5pdGlhbCBwbGFjZW1lbnQuDQo+ ICAgICogQGludGVycnVwdGlibGU6IFdoZXRoZXIgd2FpdHMgc2hvdWxkIGJlIHBlcmZvcm1l ZCBpbnRlcnJ1cHRpYmxlLg0KPiBAQCAtNDgzLDcgKzQ4Miw3IEBAIGludCB2bXdfYm9fY3Jl YXRlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqdm13LA0KPiAgICAqIE5vdGUgdGhhdCBvbiBlcnJv ciwgdGhlIGNvZGUgd2lsbCBmcmVlIHRoZSBidWZmZXIgb2JqZWN0Lg0KPiAgICAqLw0KPiAg IGludCB2bXdfYm9faW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAtCQlz dHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZtd19ibywNCj4gKwkJc3RydWN0IHZtd19ibyAq dm13X2JvLA0KPiAgIAkJc2l6ZV90IHNpemUsIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFj ZW1lbnQsDQo+ICAgCQlib29sIGludGVycnVwdGlibGUsIGJvb2wgcGluKQ0KPiAgIHsNCj4g QEAgLTUwNCw3ICs1MDMsNyBAQCBpbnQgdm13X2JvX2luaXQoc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdiwNCj4gICAJZHJtX2dlbV9wcml2YXRlX29iamVjdF9pbml0KHZkZXYsICZ2 bXdfYm8tPmJhc2UuYmFzZSwgc2l6ZSk7DQo+ICAgDQo+ICAgCXJldCA9IHR0bV9ib19pbml0 X3Jlc2VydmVkKGJkZXYsICZ2bXdfYm8tPmJhc2UsIHR0bV9ib190eXBlX2RldmljZSwNCj4g LQkJCQkgICBwbGFjZW1lbnQsIDAsICZjdHgsIE5VTEwsIE5VTEwsIHZtd19ib19ib19mcmVl KTsNCj4gKwkJCQkgICBwbGFjZW1lbnQsIDAsICZjdHgsIE5VTEwsIE5VTEwsIHZtd19ib19m cmVlKTsNCj4gICAJaWYgKHVubGlrZWx5KHJldCkpIHsNCj4gICAJCXJldHVybiByZXQ7DQo+ ICAgCX0NCj4gQEAgLTUxNyw3ICs1MTYsNyBAQCBpbnQgdm13X2JvX2luaXQoc3RydWN0IHZt d19wcml2YXRlICpkZXZfcHJpdiwNCj4gICB9DQo+ICAgDQo+ICAgLyoqDQo+IC0gKiB2bXdf dXNlcl9ib19zeW5jY3B1X2dyYWIgLSBHcmFiIGEgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0 IGZvciBjcHUNCj4gKyAqIHZtd191c2VyX2JvX3N5bmNjcHVfZ3JhYiAtIEdyYWIgYSBzdHJ1 Y3Qgdm13X2JvIGZvciBjcHUNCj4gICAgKiBhY2Nlc3MsIGlkbGluZyBwcmV2aW91cyBHUFUg b3BlcmF0aW9ucyBvbiB0aGUgYnVmZmVyIGFuZCBvcHRpb25hbGx5DQo+ICAgICogYmxvY2tp bmcgaXQgZm9yIGZ1cnRoZXIgY29tbWFuZCBzdWJtaXNzaW9ucy4NCj4gICAgKg0KPiBAQCAt NTMwLDcgKzUyOSw3IEBAIGludCB2bXdfYm9faW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRl dl9wcml2LA0KPiAgICAqDQo+ICAgICogQSBibG9ja2luZyBncmFiIHdpbGwgYmUgYXV0b21h dGljYWxseSByZWxlYXNlZCB3aGVuIEB0ZmlsZSBpcyBjbG9zZWQuDQo+ICAgICovDQo+IC1z dGF0aWMgaW50IHZtd191c2VyX2JvX3N5bmNjcHVfZ3JhYihzdHJ1Y3Qgdm13X2J1ZmZlcl9v YmplY3QgKnZtd19ibywNCj4gK3N0YXRpYyBpbnQgdm13X3VzZXJfYm9fc3luY2NwdV9ncmFi KHN0cnVjdCB2bXdfYm8gKnZtd19ibywNCj4gICAJCQkJICAgIHVpbnQzMl90IGZsYWdzKQ0K PiAgIHsNCj4gICAJYm9vbCBub25ibG9jayA9ICEhKGZsYWdzICYgZHJtX3Ztd19zeW5jY3B1 X2RvbnRibG9jayk7DQo+IEBAIC01NzcsNyArNTc2LDcgQEAgc3RhdGljIGludCB2bXdfdXNl cl9ib19zeW5jY3B1X3JlbGVhc2Uoc3RydWN0IGRybV9maWxlICpmaWxwLA0KPiAgIAkJCQkg ICAgICAgdWludDMyX3QgaGFuZGxlLA0KPiAgIAkJCQkgICAgICAgdWludDMyX3QgZmxhZ3Mp DQo+ICAgew0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdm13X2JvOw0KPiArCXN0 cnVjdCB2bXdfYm8gKnZtd19ibzsNCj4gICAJaW50IHJldCA9IHZtd191c2VyX2JvX2xvb2t1 cChmaWxwLCBoYW5kbGUsICZ2bXdfYm8pOw0KPiAgIA0KPiAgIAlpZiAoIXJldCkgew0KPiBA QCAtNjA4LDcgKzYwNyw3IEBAIGludCB2bXdfdXNlcl9ib19zeW5jY3B1X2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+ICAgew0KPiAgIAlzdHJ1Y3QgZHJt X3Ztd19zeW5jY3B1X2FyZyAqYXJnID0NCj4gICAJCShzdHJ1Y3QgZHJtX3Ztd19zeW5jY3B1 X2FyZyAqKSBkYXRhOw0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvOw0KPiAr CXN0cnVjdCB2bXdfYm8gKnZibzsNCj4gICAJaW50IHJldDsNCj4gICANCj4gICAJaWYgKChh cmctPmZsYWdzICYgKGRybV92bXdfc3luY2NwdV9yZWFkIHwgZHJtX3Ztd19zeW5jY3B1X3dy aXRlKSkgPT0gMA0KPiBAQCAtNjgxLDE0ICs2ODAsMTQgQEAgaW50IHZtd19ib191bnJlZl9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPiAgICAqIEBmaWxw OiBUaGUgZmlsZSB0aGUgaGFuZGxlIGlzIHJlZ2lzdGVyZWQgd2l0aC4NCj4gICAgKiBAaGFu ZGxlOiBUaGUgdXNlciBidWZmZXIgb2JqZWN0IGhhbmRsZQ0KPiAgICAqIEBvdXQ6IFBvaW50 ZXIgdG8gYSB3aGVyZSBhIHBvaW50ZXIgdG8gdGhlIGVtYmVkZGVkDQo+IC0gKiBzdHJ1Y3Qg dm13X2J1ZmZlcl9vYmplY3Qgc2hvdWxkIGJlIHBsYWNlZC4NCj4gKyAqIHN0cnVjdCB2bXdf Ym8gc2hvdWxkIGJlIHBsYWNlZC4NCj4gICAgKiBSZXR1cm46IFplcm8gb24gc3VjY2Vzcywg TmVnYXRpdmUgZXJyb3IgY29kZSBvbiBlcnJvci4NCj4gICAgKg0KPiAgICAqIFRoZSB2bXcg YnVmZmVyIG9iamVjdCBwb2ludGVyIHdpbGwgYmUgcmVmY291bnRlZC4NCj4gICAgKi8NCj4g ICBpbnQgdm13X3VzZXJfYm9fbG9va3VwKHN0cnVjdCBkcm1fZmlsZSAqZmlscCwNCj4gICAJ CSAgICAgICB1aW50MzJfdCBoYW5kbGUsDQo+IC0JCSAgICAgICBzdHJ1Y3Qgdm13X2J1ZmZl cl9vYmplY3QgKipvdXQpDQo+ICsJCSAgICAgICBzdHJ1Y3Qgdm13X2JvICoqb3V0KQ0KPiAg IHsNCj4gICAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqOw0KPiAgIA0KPiBAQCAtNzU5 LDcgKzc1OCw3IEBAIGludCB2bXdfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYsDQo+ICAgCQkgICAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKQ0K PiAgIHsNCj4gICAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHZtd19wcml2KGRl dik7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym87DQo+ICsJc3RydWN0IHZt d19ibyAqdmJvOw0KPiAgIAlpbnQgY3BwID0gRElWX1JPVU5EX1VQKGFyZ3MtPmJwcCwgOCk7 DQo+ICAgCWludCByZXQ7DQo+ICAgDQo+IEBAIC03OTMsMTIgKzc5MiwxMiBAQCBpbnQgdm13 X2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LA0KPiAgICAqLw0KPiAg IHZvaWQgdm13X2JvX3N3YXBfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8p DQo+ICAgew0KPiAtCS8qIElzIEBibyBlbWJlZGRlZCBpbiBhIHN0cnVjdCB2bXdfYnVmZmVy X29iamVjdD8gKi8NCj4gKwkvKiBJcyBAYm8gZW1iZWRkZWQgaW4gYSBzdHJ1Y3Qgdm13X2Jv PyAqLw0KPiAgIAlpZiAoIWJvX2lzX3ZtdyhibykpDQo+ICAgCQlyZXR1cm47DQo+ICAgDQo+ ICAgCS8qIEtpbGwgYW55IGNhY2hlZCBrZXJuZWwgbWFwcyBiZWZvcmUgc3dhcG91dCAqLw0K PiAtCXZtd19ib191bm1hcCh2bXdfYnVmZmVyX29iamVjdChibykpOw0KPiArCXZtd19ib191 bm1hcCh2bXdfYm8oYm8pKTsNCj4gICB9DQo+ICAgDQo+ICAgDQo+IEBAIC04MTUsMTMgKzgx NCwxMyBAQCB2b2lkIHZtd19ib19zd2FwX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvKQ0KPiAgIHZvaWQgdm13X2JvX21vdmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sDQo+ICAgCQkJc3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKQ0KPiAgIHsN Cj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibzsNCj4gKwlzdHJ1Y3Qgdm13X2Jv ICp2Ym87DQo+ICAgDQo+IC0JLyogTWFrZSBzdXJlIEBibyBpcyBlbWJlZGRlZCBpbiBhIHN0 cnVjdCB2bXdfYnVmZmVyX29iamVjdD8gKi8NCj4gKwkvKiBNYWtlIHN1cmUgQGJvIGlzIGVt YmVkZGVkIGluIGEgc3RydWN0IHZtd19ibz8gKi8NCj4gICAJaWYgKCFib19pc192bXcoYm8p KQ0KPiAgIAkJcmV0dXJuOw0KPiAgIA0KPiAtCXZibyA9IGNvbnRhaW5lcl9vZihibywgc3Ry dWN0IHZtd19idWZmZXJfb2JqZWN0LCBiYXNlKTsNCj4gKwl2Ym8gPSBjb250YWluZXJfb2Yo Ym8sIHN0cnVjdCB2bXdfYm8sIGJhc2UpOw0KPiAgIA0KPiAgIAkvKg0KPiAgIAkgKiBLaWxs IGFueSBjYWNoZWQga2VybmVsIG1hcHMgYmVmb3JlIG1vdmUgdG8gb3IgZnJvbSBWUkFNLg0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uaCBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2 NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yOTg0MDZkYTFkNzkNCj4gLS0tIC9kZXYvbnVs bA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iby5oDQo+IEBAIC0w LDAgKzEsMTkxIEBADQo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBP UiBNSVQgKi8NCj4gKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiArICoNCj4gKyAqIENvcHly aWdodCAyMDIzIFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiArICoNCj4g KyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uIG9idGFpbmluZyBhDQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5k IGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+ICsgKiAiU29mdHdhcmUi KSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nDQo+ICsgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHks IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsDQo+ICsgKiBkaXN0cmlidXRlLCBzdWIgbGljZW5z ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvDQo+ICsgKiBw ZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8g c28sIHN1YmplY3QgdG8NCj4gKyAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCj4gKyAq DQo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSAoaW5jbHVkaW5nIHRoZQ0KPiArICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJl IGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMNCj4gKyAq IG9mIHRoZSBTb2Z0d2FyZS4NCj4gKyAqDQo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUg0K PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksDQo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwNCj4g KyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUywgQVVUSE9SUyBBTkQvT1IgSVRTIFNVUFBMSUVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwNCj4gKyAqIERBTUFHRVMgT1IgT1RIRVIgTElB QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUg0KPiAr ICogT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRQ0KPiArICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElO IFRIRSBTT0ZUV0FSRS4NCj4gKyAqDQo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQo+ICsN Cj4gKyNpZm5kZWYgVk1XR0ZYX0JPX0gNCj4gKyNkZWZpbmUgVk1XR0ZYX0JPX0gNCj4gKw0K PiArI2luY2x1ZGUgImRldmljZV9pbmNsdWRlL3N2Z2FfcmVnLmgiDQo+ICsNCj4gKyNpbmNs dWRlIDxkcm0vdHRtL3R0bV9ib19hcGkuaD4NCj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L3Ji dHJlZV90eXBlcy5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+DQo+ICsNCj4gK3N0 cnVjdCB2bXdfYm9fZGlydHk7DQo+ICtzdHJ1Y3Qgdm13X2ZlbmNlX29iajsNCj4gK3N0cnVj dCB2bXdfcHJpdmF0ZTsNCj4gK3N0cnVjdCB2bXdfcmVzb3VyY2U7DQo+ICsNCj4gKy8qKg0K PiArICogc3RydWN0IHZtd19ibyAtIFRUTSBidWZmZXIgb2JqZWN0IHdpdGggdm13Z2Z4IGFk ZGl0aW9ucw0KPiArICogQGJhc2U6IFRoZSBUVE0gYnVmZmVyIG9iamVjdA0KPiArICogQHJl c190cmVlOiBSQiB0cmVlIG9mIHJlc291cmNlcyB1c2luZyB0aGlzIGJ1ZmZlciBvYmplY3Qg YXMgYSBiYWNraW5nIE1PQg0KPiArICogQGJhc2VfbWFwcGVkX2NvdW50OiB0dG0gQk8gbWFw cGluZyBjb3VudDsgdXNlZCBieSBLTVMgYXRvbWljIGhlbHBlcnMuDQo+ICsgKiBAY3B1X3dy aXRlcnM6IE51bWJlciBvZiBzeW5jY3B1IHdyaXRlIGdyYWJzLiBQcm90ZWN0ZWQgYnkgcmVz ZXJ2YXRpb24gd2hlbg0KPiArICogaW5jcmVhc2VkLiBNYXkgYmUgZGVjcmVhc2VkIHdpdGhv dXQgcmVzZXJ2YXRpb24uDQo+ICsgKiBAZHhfcXVlcnlfY3R4OiBEWCBjb250ZXh0IGlmIHRo aXMgYnVmZmVyIG9iamVjdCBpcyB1c2VkIGFzIGEgRFggcXVlcnkgTU9CDQo+ICsgKiBAbWFw OiBLbWFwIG9iamVjdCBmb3Igc2VtaS1wZXJzaXN0ZW50IG1hcHBpbmdzDQo+ICsgKiBAcmVz X3ByaW9zOiBFdmljdGlvbiBwcmlvcml0eSBjb3VudHMgZm9yIGF0dGFjaGVkIHJlc291cmNl cw0KPiArICogQGRpcnR5OiBzdHJ1Y3R1cmUgZm9yIHVzZXItc3BhY2UgZGlydHktdHJhY2tp bmcNCj4gKyAqLw0KPiArc3RydWN0IHZtd19ibyB7DQo+ICsJc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0IGJhc2U7DQo+ICsJc3RydWN0IHJiX3Jvb3QgcmVzX3RyZWU7DQo+ICsJLyogRm9y IEtNUyBhdG9taWMgaGVscGVyczogdHRtIGJvIG1hcHBpbmcgY291bnQgKi8NCj4gKwlhdG9t aWNfdCBiYXNlX21hcHBlZF9jb3VudDsNCj4gKw0KPiArCWF0b21pY190IGNwdV93cml0ZXJz Ow0KPiArCS8qIE5vdCByZWYtY291bnRlZC4gIFByb3RlY3RlZCBieSBiaW5kaW5nX211dGV4 ICovDQo+ICsJc3RydWN0IHZtd19yZXNvdXJjZSAqZHhfcXVlcnlfY3R4Ow0KPiArCS8qIFBy b3RlY3RlZCBieSByZXNlcnZhdGlvbiAqLw0KPiArCXN0cnVjdCB0dG1fYm9fa21hcF9vYmog bWFwOw0KPiArCXUzMiByZXNfcHJpb3NbVFRNX01BWF9CT19QUklPUklUWV07DQo+ICsJc3Ry dWN0IHZtd19ib19kaXJ0eSAqZGlydHk7DQo+ICt9Ow0KPiArDQo+ICsNCj4gK2ludCB2bXdf Ym9fY3JlYXRlX2tlcm5lbChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiArCQkJ IHVuc2lnbmVkIGxvbmcgc2l6ZSwNCj4gKwkJCSBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxh Y2VtZW50LA0KPiArCQkJIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKnBfYm8pOw0KPiAr aW50IHZtd19ib19jcmVhdGUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gKwkJ ICBzaXplX3Qgc2l6ZSwgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwNCj4gKwkJ ICBib29sIGludGVycnVwdGlibGUsIGJvb2wgcGluLA0KPiArCQkgIHN0cnVjdCB2bXdfYm8g KipwX2JvKTsNCj4gK2ludCB2bXdfYm9faW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9w cml2LA0KPiArCQlzdHJ1Y3Qgdm13X2JvICp2bXdfYm8sDQo+ICsJCXNpemVfdCBzaXplLCBz dHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LA0KPiArCQlib29sIGludGVycnVwdGli bGUsIGJvb2wgcGluKTsNCj4gK2ludCB2bXdfYm9fdW5yZWZfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4gKwkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2KTsNCj4gKw0KPiAraW50IHZtd19ib19waW5faW5fcGxhY2VtZW50KHN0cnVj dCB2bXdfcHJpdmF0ZSAqdm13X3ByaXYsDQo+ICsJCQkgICAgc3RydWN0IHZtd19ibyAqYm8s DQo+ICsJCQkgICAgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwNCj4gKwkJCSAg ICBib29sIGludGVycnVwdGlibGUpOw0KPiAraW50IHZtd19ib19waW5faW5fdnJhbShzdHJ1 Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiArCQkgICAgICAgc3RydWN0IHZtd19ibyAq YnVmLA0KPiArCQkgICAgICAgYm9vbCBpbnRlcnJ1cHRpYmxlKTsNCj4gK2ludCB2bXdfYm9f cGluX2luX3ZyYW1fb3JfZ21yKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICsJ CQkgICAgICBzdHJ1Y3Qgdm13X2JvICpidWYsDQo+ICsJCQkgICAgICBib29sIGludGVycnVw dGlibGUpOw0KPiAraW50IHZtd19ib19waW5faW5fc3RhcnRfb2ZfdnJhbShzdHJ1Y3Qgdm13 X3ByaXZhdGUgKnZtd19wcml2LA0KPiArCQkJCXN0cnVjdCB2bXdfYm8gKmJvLA0KPiArCQkJ CWJvb2wgaW50ZXJydXB0aWJsZSk7DQo+ICt2b2lkIHZtd19ib19waW5fcmVzZXJ2ZWQoc3Ry dWN0IHZtd19ibyAqYm8sIGJvb2wgcGluKTsNCj4gK2ludCB2bXdfYm9fdW5waW4oc3RydWN0 IHZtd19wcml2YXRlICp2bXdfcHJpdiwNCj4gKwkJIHN0cnVjdCB2bXdfYm8gKmJvLA0KPiAr CQkgYm9vbCBpbnRlcnJ1cHRpYmxlKTsNCj4gKw0KPiArdm9pZCB2bXdfYm9fZ2V0X2d1ZXN0 X3B0cihjb25zdCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJ1ZiwNCj4gKwkJCSAgU1ZH QUd1ZXN0UHRyICpwdHIpOw0KPiAraW50IHZtd191c2VyX2JvX3N5bmNjcHVfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4gKwkJCSAgICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KTsNCj4gK2ludCB2bXdfdXNlcl9ib19sb29rdXAoc3RydWN0 IGRybV9maWxlICpmaWxwLA0KPiArCQkgICAgICAgdWludDMyX3QgaGFuZGxlLA0KPiArCQkg ICAgICAgc3RydWN0IHZtd19ibyAqKm91dCk7DQo+ICt2b2lkIHZtd19ib19mZW5jZV9zaW5n bGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywNCj4gKwkJCSBzdHJ1Y3Qgdm13X2Zl bmNlX29iaiAqZmVuY2UpOw0KPiArDQo+ICt2b2lkICp2bXdfYm9fbWFwX2FuZF9jYWNoZShz dHJ1Y3Qgdm13X2JvICp2Ym8pOw0KPiArdm9pZCB2bXdfYm9fdW5tYXAoc3RydWN0IHZtd19i byAqdmJvKTsNCj4gKw0KPiArdm9pZCB2bXdfYm9fbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywNCj4gKwkJCSAgICAgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpt ZW0pOw0KPiArdm9pZCB2bXdfYm9fc3dhcF9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibyk7DQo+ICsNCj4gKy8qKg0KPiArICogdm13X2JvX2FkanVzdF9wcmlvIC0gQWRq dXN0IHRoZSBidWZmZXIgb2JqZWN0IGV2aWN0aW9uIHByaW9yaXR5DQo+ICsgKiBhY2NvcmRp bmcgdG8gYXR0YWNoZWQgcmVzb3VyY2VzDQo+ICsgKiBAdmJvOiBUaGUgc3RydWN0IHZtd19i bw0KPiArICovDQo+ICtzdGF0aWMgaW5saW5lIHZvaWQgdm13X2JvX3ByaW9fYWRqdXN0KHN0 cnVjdCB2bXdfYm8gKnZibykNCj4gK3sNCj4gKwlpbnQgaSA9IEFSUkFZX1NJWkUodmJvLT5y ZXNfcHJpb3MpOw0KPiArDQo+ICsJd2hpbGUgKGktLSkgew0KPiArCQlpZiAodmJvLT5yZXNf cHJpb3NbaV0pIHsNCj4gKwkJCXZiby0+YmFzZS5wcmlvcml0eSA9IGk7DQo+ICsJCQlyZXR1 cm47DQo+ICsJCX0NCj4gKwl9DQo+ICsNCj4gKwl2Ym8tPmJhc2UucHJpb3JpdHkgPSAzOw0K PiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIHZtd19ib19wcmlvX2FkZCAtIE5vdGlmeSBhIGJ1 ZmZlciBvYmplY3Qgb2YgYSBuZXdseSBhdHRhY2hlZCByZXNvdXJjZQ0KPiArICogZXZpY3Rp b24gcHJpb3JpdHkNCj4gKyAqIEB2Ym86IFRoZSBzdHJ1Y3Qgdm13X2JvDQo+ICsgKiBAcHJp bzogVGhlIHJlc291cmNlIHByaW9yaXR5DQo+ICsgKg0KPiArICogQWZ0ZXIgYmVpbmcgbm90 aWZpZWQsIHRoZSBjb2RlIGFzc2lnbnMgdGhlIGhpZ2hlc3QgcmVzb3VyY2UgZXZpY3Rpb24g cHJpb3JpdHkNCj4gKyAqIHRvIHRoZSBiYWNraW5nIGJ1ZmZlciBvYmplY3QgKG1vYikuDQo+ ICsgKi8NCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCB2bXdfYm9fcHJpb19hZGQoc3RydWN0IHZt d19ibyAqdmJvLCBpbnQgcHJpbykNCj4gK3sNCj4gKwlpZiAodmJvLT5yZXNfcHJpb3NbcHJp b10rKyA9PSAwKQ0KPiArCQl2bXdfYm9fcHJpb19hZGp1c3QodmJvKTsNCj4gK30NCj4gKw0K PiArLyoqDQo+ICsgKiB2bXdfYm9fcHJpb19kZWwgLSBOb3RpZnkgYSBidWZmZXIgb2JqZWN0 IG9mIGEgcmVzb3VyY2Ugd2l0aCBhIGNlcnRhaW4NCj4gKyAqIHByaW9yaXR5IGJlaW5nIHJl bW92ZWQNCj4gKyAqIEB2Ym86IFRoZSBzdHJ1Y3Qgdm13X2JvDQo+ICsgKiBAcHJpbzogVGhl IHJlc291cmNlIHByaW9yaXR5DQo+ICsgKg0KPiArICogQWZ0ZXIgYmVpbmcgbm90aWZpZWQs IHRoZSBjb2RlIGFzc2lnbnMgdGhlIGhpZ2hlc3QgcmVzb3VyY2UgZXZpY3Rpb24gcHJpb3Jp dHkNCj4gKyAqIHRvIHRoZSBiYWNraW5nIGJ1ZmZlciBvYmplY3QgKG1vYikuDQo+ICsgKi8N Cj4gK3N0YXRpYyBpbmxpbmUgdm9pZCB2bXdfYm9fcHJpb19kZWwoc3RydWN0IHZtd19ibyAq dmJvLCBpbnQgcHJpbykNCj4gK3sNCj4gKwlpZiAoLS12Ym8tPnJlc19wcmlvc1twcmlvXSA9 PSAwKQ0KPiArCQl2bXdfYm9fcHJpb19hZGp1c3QodmJvKTsNCj4gK30NCj4gKw0KPiArDQo+ ICtzdGF0aWMgaW5saW5lIHZvaWQgdm13X2JvX3VucmVmZXJlbmNlKHN0cnVjdCB2bXdfYm8g KipidWYpDQo+ICt7DQo+ICsJc3RydWN0IHZtd19ibyAqdG1wX2J1ZiA9ICpidWY7DQo+ICsN Cj4gKwkqYnVmID0gTlVMTDsNCj4gKwlpZiAodG1wX2J1ZiAhPSBOVUxMKQ0KPiArCQl0dG1f Ym9fcHV0KCZ0bXBfYnVmLT5iYXNlKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGlubGluZSBz dHJ1Y3Qgdm13X2JvICp2bXdfYm9fcmVmZXJlbmNlKHN0cnVjdCB2bXdfYm8gKmJ1ZikNCj4g K3sNCj4gKwl0dG1fYm9fZ2V0KCZidWYtPmJhc2UpOw0KPiArCXJldHVybiBidWY7DQo+ICt9 DQo+ICsNCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHZtd19ibyAqZ2VtX3RvX3Ztd19ibyhz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmopDQo+ICt7DQo+ICsJcmV0dXJuIGNvbnRhaW5l cl9vZigoZ29iaiksIHN0cnVjdCB2bXdfYm8sIGJhc2UuYmFzZSk7DQo+ICt9DQo+ICsNCj4g KyNlbmRpZiAvLyBWTVdHRlhfQk9fSA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfY21kLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9j bWQuYw0KPiBpbmRleCAxNjJkZmViMWNjNWEuLmIxZTc4MTAwMzJkMyAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kLmMNCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kLmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAg Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUDQo+ICAgLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqDQo+ICAgICoNCj4gLSAqIENvcHlyaWdodCAyMDA5LTIwMjAgVk13 YXJlLCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNBDQo+ICsgKiBDb3B5cmlnaHQgMjAwOS0y MDIzIFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiAgICAqDQo+ICAgICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw ZXJzb24gb2J0YWluaW5nIGENCj4gICAgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+IEBAIC0yNCwxMyArMjQsMTMg QEANCj4gICAgKiBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLg0KPiAg ICAqDQo+ICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KPiAtDQo+IC0jaW5jbHVkZSA8bGlu dXgvc2NoZWQvc2lnbmFsLmg+DQo+ICsjaW5jbHVkZSAidm13Z2Z4X2JvLmgiDQo+ICsjaW5j bHVkZSAidm13Z2Z4X2Rydi5oIg0KPiArI2luY2x1ZGUgInZtd2dmeF9kZXZjYXBzLmgiDQo+ ICAgDQo+ICAgI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPg0KPiAgIA0KPiAt I2luY2x1ZGUgInZtd2dmeF9kcnYuaCINCj4gLSNpbmNsdWRlICJ2bXdnZnhfZGV2Y2Fwcy5o Ig0KPiArI2luY2x1ZGUgPGxpbnV4L3NjaGVkL3NpZ25hbC5oPg0KPiAgIA0KPiAgIGJvb2wg dm13X3N1cHBvcnRzXzNkKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ICAgew0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY21kYnVmLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jbWRidWYuYw0KPiBpbmRleCAzYzA2 ZGYyYTU0NzQuLjZiY2QzYWNkYmVhYiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfY21kYnVmLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfY21kYnVmLmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAgLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUDQo+ICAgLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqDQo+ICAgICoNCj4gLSAqIENvcHlyaWdodCAyMDE1IFZNd2FyZSwgSW5jLiwgUGFsbyBB bHRvLCBDQS4sIFVTQQ0KPiArICogQ29weXJpZ2h0IDIwMTUtMjAyMyBWTXdhcmUsIEluYy4s IFBhbG8gQWx0bywgQ0EuLCBVU0ENCj4gICAgKg0KPiAgICAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh DQo+ICAgICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZQ0KPiBAQCAtMjUsMTIgKzI1LDEzIEBADQo+ICAgICoNCj4gICAg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovDQo+ICAgDQo+IC0jaW5jbHVkZSA8bGludXgvZG1hcG9v bC5oPg0KPiAtI2luY2x1ZGUgPGxpbnV4L3BjaS5oPg0KPiArI2luY2x1ZGUgInZtd2dmeF9i by5oIg0KPiArI2luY2x1ZGUgInZtd2dmeF9kcnYuaCINCj4gICANCj4gICAjaW5jbHVkZSA8 ZHJtL3R0bS90dG1fYm9fYXBpLmg+DQo+ICAgDQo+IC0jaW5jbHVkZSAidm13Z2Z4X2Rydi5o Ig0KPiArI2luY2x1ZGUgPGxpbnV4L2RtYXBvb2wuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9w Y2kuaD4NCj4gICANCj4gICAvKg0KPiAgICAqIFNpemUgb2YgaW5saW5lIGNvbW1hbmQgYnVm ZmVycy4gVHJ5IHRvIG1ha2Ugc3VyZSB0aGF0IGEgcGFnZSBzaXplIGlzIGENCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvbnRleHQuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvbnRleHQuYw0KPiBpbmRleCBlMGY0OGNkOTUy OWIuLmNjMDJiZTZhOTg4NCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfY29udGV4dC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2NvbnRleHQuYw0KPiBAQCAtMSw3ICsxLDcgQEANCj4gICAvLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogR1BMLTIuMCBPUiBNSVQNCj4gICAvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioN Cj4gICAgKg0KPiAtICogQ29weXJpZ2h0IDIwMDktMjAxNSBWTXdhcmUsIEluYy4sIFBhbG8g QWx0bywgQ0EuLCBVU0ENCj4gKyAqIENvcHlyaWdodCAyMDA5LTIwMjMgVk13YXJlLCBJbmMu LCBQYWxvIEFsdG8sIENBLiwgVVNBDQo+ICAgICoNCj4gICAgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg YQ0KPiAgICAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uIGZpbGVzICh0aGUNCj4gQEAgLTI3LDkgKzI3LDEwIEBADQo+ICAgDQo+ICAgI2lu Y2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPg0KPiAgIA0KPiArI2luY2x1ZGUgInZt d2dmeF9iaW5kaW5nLmgiDQo+ICsjaW5jbHVkZSAidm13Z2Z4X2JvLmgiDQo+ICAgI2luY2x1 ZGUgInZtd2dmeF9kcnYuaCINCj4gICAjaW5jbHVkZSAidm13Z2Z4X3Jlc291cmNlX3ByaXYu aCINCj4gLSNpbmNsdWRlICJ2bXdnZnhfYmluZGluZy5oIg0KPiAgIA0KPiAgIHN0cnVjdCB2 bXdfdXNlcl9jb250ZXh0IHsNCj4gICAJc3RydWN0IHR0bV9iYXNlX29iamVjdCBiYXNlOw0K PiBAQCAtMzgsNyArMzksNyBAQCBzdHJ1Y3Qgdm13X3VzZXJfY29udGV4dCB7DQo+ICAgCXN0 cnVjdCB2bXdfY21kYnVmX3Jlc19tYW5hZ2VyICptYW47DQo+ICAgCXN0cnVjdCB2bXdfcmVz b3VyY2UgKmNvdGFibGVzW1NWR0FfQ09UQUJMRV9NQVhdOw0KPiAgIAlzcGlubG9ja190IGNv dGFibGVfbG9jazsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmR4X3F1ZXJ5X21v YjsNCj4gKwlzdHJ1Y3Qgdm13X2JvICpkeF9xdWVyeV9tb2I7DQo+ICAgfTsNCj4gICANCj4g ICBzdGF0aWMgdm9pZCB2bXdfdXNlcl9jb250ZXh0X2ZyZWUoc3RydWN0IHZtd19yZXNvdXJj ZSAqcmVzKTsNCj4gQEAgLTg1Myw3ICs4NTQsNyBAQCB2bXdfY29udGV4dF9iaW5kaW5nX3N0 YXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKmN0eCkNCj4gICAgKiBzcGVjaWZpZWQgaW4gdGhl IHBhcmFtZXRlci4gIDAgb3RoZXJ3aXNlLg0KPiAgICAqLw0KPiAgIGludCB2bXdfY29udGV4 dF9iaW5kX2R4X3F1ZXJ5KHN0cnVjdCB2bXdfcmVzb3VyY2UgKmN0eF9yZXMsDQo+IC0JCQkg ICAgICBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKm1vYikNCj4gKwkJCSAgICAgIHN0cnVj dCB2bXdfYm8gKm1vYikNCj4gICB7DQo+ICAgCXN0cnVjdCB2bXdfdXNlcl9jb250ZXh0ICp1 Y3R4ID0NCj4gICAJCWNvbnRhaW5lcl9vZihjdHhfcmVzLCBzdHJ1Y3Qgdm13X3VzZXJfY29u dGV4dCwgcmVzKTsNCj4gQEAgLTg4NSw3ICs4ODYsNyBAQCBpbnQgdm13X2NvbnRleHRfYmlu ZF9keF9xdWVyeShzdHJ1Y3Qgdm13X3Jlc291cmNlICpjdHhfcmVzLA0KPiAgICAqDQo+ICAg ICogQGN0eF9yZXM6IFRoZSBjb250ZXh0IHJlc291cmNlDQo+ICAgICovDQo+IC1zdHJ1Y3Qg dm13X2J1ZmZlcl9vYmplY3QgKg0KPiArc3RydWN0IHZtd19ibyAqDQo+ICAgdm13X2NvbnRl eHRfZ2V0X2R4X3F1ZXJ5X21vYihzdHJ1Y3Qgdm13X3Jlc291cmNlICpjdHhfcmVzKQ0KPiAg IHsNCj4gICAJc3RydWN0IHZtd191c2VyX2NvbnRleHQgKnVjdHggPQ0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jDQo+IGluZGV4IDg3NDU1NDQ2YTZmOS4u OTE5M2ZhYWU4ZGFiIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9jb3RhYmxlLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf Y290YWJsZS5jDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgIC8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wIE9SIE1JVA0KPiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAg ICAqDQo+IC0gKiBDb3B5cmlnaHQgMjAxNC0yMDE1IFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRv LCBDQS4sIFVTQQ0KPiArICogQ29weXJpZ2h0IDIwMTQtMjAyMyBWTXdhcmUsIEluYy4sIFBh bG8gQWx0bywgQ0EuLCBVU0ENCj4gICAgKg0KPiAgICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhDQo+ ICAgICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRp b24gZmlsZXMgKHRoZQ0KPiBAQCAtMzAsMTMgKzMwLDE0IEBADQo+ICAgICogd2hlbmV2ZXIg dGhlIGJhY2tpbmcgTU9CIGlzIGV2aWN0ZWQuDQo+ICAgICovDQo+ICAgDQo+IC0jaW5jbHVk ZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+DQo+IC0NCj4gKyNpbmNsdWRlICJ2bXdnZnhf Ym8uaCINCj4gICAjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIg0KPiAgICNpbmNsdWRlICJ2bXdn ZnhfbWtzc3RhdC5oIg0KPiAgICNpbmNsdWRlICJ2bXdnZnhfcmVzb3VyY2VfcHJpdi5oIg0K PiAgICNpbmNsdWRlICJ2bXdnZnhfc28uaCINCj4gICANCj4gKyNpbmNsdWRlIDxkcm0vdHRt L3R0bV9wbGFjZW1lbnQuaD4NCj4gKw0KPiAgIC8qKg0KPiAgICAqIHN0cnVjdCB2bXdfY290 YWJsZSAtIENvbnRleHQgT2JqZWN0IFRhYmxlIHJlc291cmNlDQo+ICAgICoNCj4gQEAgLTM5 OSw3ICs0MDAsNyBAQCBzdGF0aWMgaW50IHZtd19jb3RhYmxlX3Jlc2l6ZShzdHJ1Y3Qgdm13 X3Jlc291cmNlICpyZXMsIHNpemVfdCBuZXdfc2l6ZSkNCj4gICAJc3RydWN0IHR0bV9vcGVy YXRpb25fY3R4IGN0eCA9IHsgZmFsc2UsIGZhbHNlIH07DQo+ICAgCXN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYgPSByZXMtPmRldl9wcml2Ow0KPiAgIAlzdHJ1Y3Qgdm13X2NvdGFi bGUgKnZjb3RibCA9IHZtd19jb3RhYmxlKHJlcyk7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJf b2JqZWN0ICpidWYsICpvbGRfYnVmID0gcmVzLT5iYWNrdXA7DQo+ICsJc3RydWN0IHZtd19i byAqYnVmLCAqb2xkX2J1ZiA9IHJlcy0+YmFja3VwOw0KPiAgIAlzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgKmJvLCAqb2xkX2JvID0gJnJlcy0+YmFja3VwLT5iYXNlOw0KPiAgIAlzaXpl X3Qgb2xkX3NpemUgPSByZXMtPmJhY2t1cF9zaXplOw0KPiAgIAlzaXplX3Qgb2xkX3NpemVf cmVhZF9iYWNrID0gdmNvdGJsLT5zaXplX3JlYWRfYmFjazsNCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZHJ2LmMNCj4gaW5kZXggNzI3MmFmZjc4NTVkLi42MGQwODE4NWE3MWYg MTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jDQo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jDQo+IEBAIC0xLDcg KzEsNyBAQA0KPiAgIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1J VA0KPiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAgICAqDQo+IC0gKiBDb3B5cmlnaHQg MjAwOS0yMDIyIFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiArICogQ29w eXJpZ2h0IDIwMDktMjAyMyBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0ENCj4g ICAgKg0KPiAgICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhDQo+ICAgICogY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQ0KPiBAQCAt MjgsOSArMjgsMTAgQEANCj4gICANCj4gICAjaW5jbHVkZSAidm13Z2Z4X2Rydi5oIg0KPiAg IA0KPiArI2luY2x1ZGUgInZtd2dmeF9iby5oIg0KPiArI2luY2x1ZGUgInZtd2dmeF9iaW5k aW5nLmgiDQo+ICAgI2luY2x1ZGUgInZtd2dmeF9kZXZjYXBzLmgiDQo+ICAgI2luY2x1ZGUg InZtd2dmeF9ta3NzdGF0LmgiDQo+IC0jaW5jbHVkZSAidm13Z2Z4X2JpbmRpbmcuaCINCj4g ICAjaW5jbHVkZSAidHRtX29iamVjdC5oIg0KPiAgIA0KPiAgICNpbmNsdWRlIDxkcm0vZHJt X2FwZXJ0dXJlLmg+DQo+IEBAIC0zODcsNyArMzg4LDcgQEAgc3RhdGljIHZvaWQgdm13X3By aW50X3NtX3R5cGUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikNCj4gICBzdGF0aWMg aW50IHZtd19kdW1teV9xdWVyeV9ib19jcmVhdGUoc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdikNCj4gICB7DQo+ICAgCWludCByZXQ7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2Jq ZWN0ICp2Ym87DQo+ICsJc3RydWN0IHZtd19ibyAqdmJvOw0KPiAgIAlzdHJ1Y3QgdHRtX2Jv X2ttYXBfb2JqIG1hcDsNCj4gICAJdm9sYXRpbGUgU1ZHQTNkUXVlcnlSZXN1bHQgKnJlc3Vs dDsNCj4gICAJYm9vbCBkdW1teTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2 LmgNCj4gaW5kZXggM2U4YWIyY2U1Yjk0Li42YTljNWFkNGYxNmUgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oDQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgIC8q IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVCAqLw0KPiAgIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKg0KPiAgICAqDQo+IC0gKiBDb3B5cmlnaHQgMjAwOS0yMDIyIFZN d2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiArICogQ29weXJpZ2h0IDIwMDkt MjAyMyBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0ENCj4gICAgKg0KPiAgICAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhDQo+ICAgICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQ0KPiBAQCAtMTE1LDMyICsxMTUs NiBAQCBzdHJ1Y3Qgdm13Z2Z4X2hhc2hfaXRlbSB7DQo+ICAgCXVuc2lnbmVkIGxvbmcga2V5 Ow0KPiAgIH07DQo+ICAgDQo+IC0vKioNCj4gLSAqIHN0cnVjdCB2bXdfYnVmZmVyX29iamVj dCAtIFRUTSBidWZmZXIgb2JqZWN0IHdpdGggdm13Z2Z4IGFkZGl0aW9ucw0KPiAtICogQGJh c2U6IFRoZSBUVE0gYnVmZmVyIG9iamVjdA0KPiAtICogQHJlc190cmVlOiBSQiB0cmVlIG9m IHJlc291cmNlcyB1c2luZyB0aGlzIGJ1ZmZlciBvYmplY3QgYXMgYSBiYWNraW5nIE1PQg0K PiAtICogQGJhc2VfbWFwcGVkX2NvdW50OiB0dG0gQk8gbWFwcGluZyBjb3VudDsgdXNlZCBi eSBLTVMgYXRvbWljIGhlbHBlcnMuDQo+IC0gKiBAY3B1X3dyaXRlcnM6IE51bWJlciBvZiBz eW5jY3B1IHdyaXRlIGdyYWJzLiBQcm90ZWN0ZWQgYnkgcmVzZXJ2YXRpb24gd2hlbg0KPiAt ICogaW5jcmVhc2VkLiBNYXkgYmUgZGVjcmVhc2VkIHdpdGhvdXQgcmVzZXJ2YXRpb24uDQo+ IC0gKiBAZHhfcXVlcnlfY3R4OiBEWCBjb250ZXh0IGlmIHRoaXMgYnVmZmVyIG9iamVjdCBp cyB1c2VkIGFzIGEgRFggcXVlcnkgTU9CDQo+IC0gKiBAbWFwOiBLbWFwIG9iamVjdCBmb3Ig c2VtaS1wZXJzaXN0ZW50IG1hcHBpbmdzDQo+IC0gKiBAcmVzX3ByaW9zOiBFdmljdGlvbiBw cmlvcml0eSBjb3VudHMgZm9yIGF0dGFjaGVkIHJlc291cmNlcw0KPiAtICogQGRpcnR5OiBz dHJ1Y3R1cmUgZm9yIHVzZXItc3BhY2UgZGlydHktdHJhY2tpbmcNCj4gLSAqLw0KPiAtc3Ry dWN0IHZtd19idWZmZXJfb2JqZWN0IHsNCj4gLQlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg YmFzZTsNCj4gLQlzdHJ1Y3QgcmJfcm9vdCByZXNfdHJlZTsNCj4gLQkvKiBGb3IgS01TIGF0 b21pYyBoZWxwZXJzOiB0dG0gYm8gbWFwcGluZyBjb3VudCAqLw0KPiAtCWF0b21pY190IGJh c2VfbWFwcGVkX2NvdW50Ow0KPiAtDQo+IC0JYXRvbWljX3QgY3B1X3dyaXRlcnM7DQo+IC0J LyogTm90IHJlZi1jb3VudGVkLiAgUHJvdGVjdGVkIGJ5IGJpbmRpbmdfbXV0ZXggKi8NCj4g LQlzdHJ1Y3Qgdm13X3Jlc291cmNlICpkeF9xdWVyeV9jdHg7DQo+IC0JLyogUHJvdGVjdGVk IGJ5IHJlc2VydmF0aW9uICovDQo+IC0Jc3RydWN0IHR0bV9ib19rbWFwX29iaiBtYXA7DQo+ IC0JdTMyIHJlc19wcmlvc1tUVE1fTUFYX0JPX1BSSU9SSVRZXTsNCj4gLQlzdHJ1Y3Qgdm13 X2JvX2RpcnR5ICpkaXJ0eTsNCj4gLX07DQo+ICAgDQo+ICAgLyoqDQo+ICAgICogc3RydWN0 IHZtd192YWxpZGF0ZV9idWZmZXIgLSBDYXJyaWVzIHZhbGlkYXRpb24gaW5mbyBhYm91dCBi dWZmZXJzLg0KPiBAQCAtMTg4LDYgKzE2Miw3IEBAIHN0cnVjdCB2bXdfcmVzX2Z1bmM7DQo+ ICAgICogQGh3X2Rlc3Ryb3k6IENhbGxiYWNrIHRvIGRlc3Ryb3kgdGhlIHJlc291cmNlIG9u IHRoZSBkZXZpY2UsIGFzIHBhcnQgb2YNCj4gICAgKiByZXNvdXJjZSBkZXN0cnVjdGlvbi4N Cj4gICAgKi8NCj4gK3N0cnVjdCB2bXdfYm87DQo+ICAgc3RydWN0IHZtd19yZXNvdXJjZV9k aXJ0eTsNCj4gICBzdHJ1Y3Qgdm13X3Jlc291cmNlIHsNCj4gICAJc3RydWN0IGtyZWYga3Jl ZjsNCj4gQEAgLTE5OCw3ICsxNzMsNyBAQCBzdHJ1Y3Qgdm13X3Jlc291cmNlIHsNCj4gICAJ dTMyIHJlc19kaXJ0eSA6IDE7DQo+ICAgCXUzMiBiYWNrdXBfZGlydHkgOiAxOw0KPiAgIAl1 MzIgY29oZXJlbnQgOiAxOw0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYmFja3Vw Ow0KPiArCXN0cnVjdCB2bXdfYm8gKmJhY2t1cDsNCj4gICAJdW5zaWduZWQgbG9uZyBiYWNr dXBfb2Zmc2V0Ow0KPiAgIAl1bnNpZ25lZCBsb25nIHBpbl9jb3VudDsNCj4gICAJY29uc3Qg c3RydWN0IHZtd19yZXNfZnVuYyAqZnVuYzsNCj4gQEAgLTQ0NCw3ICs0MTksNyBAQCBzdHJ1 Y3Qgdm13X3N3X2NvbnRleHR7DQo+ICAgCXN0cnVjdCBkcm1fZmlsZSAqZmlscDsNCj4gICAJ dWludDMyX3QgKmNtZF9ib3VuY2U7DQo+ICAgCXVpbnQzMl90IGNtZF9ib3VuY2Vfc2l6ZTsN Cj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmN1cl9xdWVyeV9ibzsNCj4gKwlzdHJ1 Y3Qgdm13X2JvICpjdXJfcXVlcnlfYm87DQo+ICAgCXN0cnVjdCBsaXN0X2hlYWQgYm9fcmVs b2NhdGlvbnM7DQo+ICAgCXN0cnVjdCBsaXN0X2hlYWQgcmVzX3JlbG9jYXRpb25zOw0KPiAg IAl1aW50MzJfdCAqYnVmX3N0YXJ0Ow0KPiBAQCAtNDU2LDcgKzQzMSw3IEBAIHN0cnVjdCB2 bXdfc3dfY29udGV4dHsNCj4gICAJc3RydWN0IGxpc3RfaGVhZCBzdGFnZWRfY21kX3JlczsN Cj4gICAJc3RydWN0IGxpc3RfaGVhZCBjdHhfbGlzdDsNCj4gICAJc3RydWN0IHZtd19jdHhf dmFsaWRhdGlvbl9pbmZvICpkeF9jdHhfbm9kZTsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9v YmplY3QgKmR4X3F1ZXJ5X21vYjsNCj4gKwlzdHJ1Y3Qgdm13X2JvICpkeF9xdWVyeV9tb2I7 DQo+ICAgCXN0cnVjdCB2bXdfcmVzb3VyY2UgKmR4X3F1ZXJ5X2N0eDsNCj4gICAJc3RydWN0 IHZtd19jbWRidWZfcmVzX21hbmFnZXIgKm1hbjsNCj4gICAJc3RydWN0IHZtd192YWxpZGF0 aW9uX2NvbnRleHQgKmN0eDsNCj4gQEAgLTYzMCw4ICs2MDUsOCBAQCBzdHJ1Y3Qgdm13X3By aXZhdGUgew0KPiAgIAkgKiBhcmUgcHJvdGVjdGVkIGJ5IHRoZSBjbWRidWYgbXV0ZXguDQo+ ICAgCSAqLw0KPiAgIA0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqZHVtbXlfcXVl cnlfYm87DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpwaW5uZWRfYm87DQo+ICsJ c3RydWN0IHZtd19ibyAqZHVtbXlfcXVlcnlfYm87DQo+ICsJc3RydWN0IHZtd19ibyAqcGlu bmVkX2JvOw0KPiAgIAl1aW50MzJfdCBxdWVyeV9jaWQ7DQo+ICAgCXVpbnQzMl90IHF1ZXJ5 X2NpZF92YWxpZDsNCj4gICAJYm9vbCBkdW1teV9xdWVyeV9ib19waW5uZWQ7DQo+IEBAIC02 NzUsMTEgKzY1MCw2IEBAIHN0cnVjdCB2bXdfcHJpdmF0ZSB7DQo+ICAgI2VuZGlmDQo+ICAg fTsNCj4gICANCj4gLXN0YXRpYyBpbmxpbmUgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpn ZW1fdG9fdm13X2JvKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqZ29iaikNCj4gLXsNCj4gLQly ZXR1cm4gY29udGFpbmVyX29mKChnb2JqKSwgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0LCBi YXNlLmJhc2UpOw0KPiAtfQ0KPiAtDQo+ICAgc3RhdGljIGlubGluZSBzdHJ1Y3Qgdm13X3N1 cmZhY2UgKnZtd19yZXNfdG9fc3JmKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcykNCj4gICB7 DQo+ICAgCXJldHVybiBjb250YWluZXJfb2YocmVzLCBzdHJ1Y3Qgdm13X3N1cmZhY2UsIHJl cyk7DQo+IEBAIC04MjMsNyArNzkzLDcgQEAgZXh0ZXJuIGludCB2bXdfdXNlcl9sb29rdXBf aGFuZGxlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgCQkJCSAgc3RydWN0 IGRybV9maWxlICpmaWxwLA0KPiAgIAkJCQkgIHVpbnQzMl90IGhhbmRsZSwNCj4gICAJCQkJ ICBzdHJ1Y3Qgdm13X3N1cmZhY2UgKipvdXRfc3VyZiwNCj4gLQkJCQkgIHN0cnVjdCB2bXdf YnVmZmVyX29iamVjdCAqKm91dF9idWYpOw0KPiArCQkJCSAgc3RydWN0IHZtd19ibyAqKm91 dF9idWYpOw0KPiAgIGV4dGVybiBpbnQgdm13X3VzZXJfcmVzb3VyY2VfbG9va3VwX2hhbmRs ZSgNCj4gICAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gICAJc3RydWN0IHR0 bV9vYmplY3RfZmlsZSAqdGZpbGUsDQo+IEBAIC04NDMsMTkgKzgxMywxOSBAQCBleHRlcm4g dm9pZCB2bXdfcmVzb3VyY2VfdW5yZXNlcnZlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywN Cj4gICAJCQkJICAgYm9vbCBkaXJ0eV9zZXQsDQo+ICAgCQkJCSAgIGJvb2wgZGlydHksDQo+ ICAgCQkJCSAgIGJvb2wgc3dpdGNoX2JhY2t1cCwNCj4gLQkJCQkgICBzdHJ1Y3Qgdm13X2J1 ZmZlcl9vYmplY3QgKm5ld19iYWNrdXAsDQo+ICsJCQkJICAgc3RydWN0IHZtd19ibyAqbmV3 X2JhY2t1cCwNCj4gICAJCQkJICAgdW5zaWduZWQgbG9uZyBuZXdfYmFja3VwX29mZnNldCk7 DQo+ICAgZXh0ZXJuIHZvaWQgdm13X3F1ZXJ5X21vdmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqYm8sDQo+ICAgCQkJCSAgc3RydWN0IHR0bV9yZXNvdXJjZSAqb2xkX21l bSwNCj4gICAJCQkJICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpuZXdfbWVtKTsNCj4gLWV4dGVy biBpbnQgdm13X3F1ZXJ5X3JlYWRiYWNrX2FsbChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3Qg KmR4X3F1ZXJ5X21vYik7DQo+ICtleHRlcm4gaW50IHZtd19xdWVyeV9yZWFkYmFja19hbGwo c3RydWN0IHZtd19ibyAqZHhfcXVlcnlfbW9iKTsNCj4gICBleHRlcm4gdm9pZCB2bXdfcmVz b3VyY2VfZXZpY3RfYWxsKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpOw0KPiAtZXh0 ZXJuIHZvaWQgdm13X3Jlc291cmNlX3VuYmluZF9saXN0KHN0cnVjdCB2bXdfYnVmZmVyX29i amVjdCAqdmJvKTsNCj4gK2V4dGVybiB2b2lkIHZtd19yZXNvdXJjZV91bmJpbmRfbGlzdChz dHJ1Y3Qgdm13X2JvICp2Ym8pOw0KPiAgIHZvaWQgdm13X3Jlc291cmNlX21vYl9hdHRhY2go c3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKTsNCj4gICB2b2lkIHZtd19yZXNvdXJjZV9tb2Jf ZGV0YWNoKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcyk7DQo+ICAgdm9pZCB2bXdfcmVzb3Vy Y2VfZGlydHlfdXBkYXRlKHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywgcGdvZmZfdCBzdGFy dCwNCj4gICAJCQkgICAgICAgcGdvZmZfdCBlbmQpOw0KPiAtaW50IHZtd19yZXNvdXJjZXNf Y2xlYW4oc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8sIHBnb2ZmX3Qgc3RhcnQsDQo+ ICtpbnQgdm13X3Jlc291cmNlc19jbGVhbihzdHJ1Y3Qgdm13X2JvICp2Ym8sIHBnb2ZmX3Qg c3RhcnQsDQo+ICAgCQkJcGdvZmZfdCBlbmQsIHBnb2ZmX3QgKm51bV9wcmVmYXVsdCk7DQo+ ICAgDQo+ICAgLyoqDQo+IEBAIC04NjksMTA0ICs4MzksNiBAQCBzdGF0aWMgaW5saW5lIGJv b2wgdm13X3Jlc291cmNlX21vYl9hdHRhY2hlZChjb25zdCBzdHJ1Y3Qgdm13X3Jlc291cmNl ICpyZXMpDQo+ICAgCXJldHVybiAhUkJfRU1QVFlfTk9ERSgmcmVzLT5tb2Jfbm9kZSk7DQo+ ICAgfQ0KPiAgIA0KPiAtLyoqDQo+IC0gKiBCdWZmZXIgb2JqZWN0IGhlbHBlciBmdW5jdGlv bnMgLSB2bXdnZnhfYm8uYw0KPiAtICovDQo+IC1leHRlcm4gaW50IHZtd19ib19waW5faW5f cGxhY2VtZW50KHN0cnVjdCB2bXdfcHJpdmF0ZSAqdm13X3ByaXYsDQo+IC0JCQkJICAgc3Ry dWN0IHZtd19idWZmZXJfb2JqZWN0ICpibywNCj4gLQkJCQkgICBzdHJ1Y3QgdHRtX3BsYWNl bWVudCAqcGxhY2VtZW50LA0KPiAtCQkJCSAgIGJvb2wgaW50ZXJydXB0aWJsZSk7DQo+IC1l eHRlcm4gaW50IHZtd19ib19waW5faW5fdnJhbShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9w cml2LA0KPiAtCQkJICAgICAgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpidWYsDQo+IC0J CQkgICAgICBib29sIGludGVycnVwdGlibGUpOw0KPiAtZXh0ZXJuIGludCB2bXdfYm9fcGlu X2luX3ZyYW1fb3JfZ21yKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+IC0JCQkJ ICAgICBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJ1ZiwNCj4gLQkJCQkgICAgIGJvb2wg aW50ZXJydXB0aWJsZSk7DQo+IC1leHRlcm4gaW50IHZtd19ib19waW5faW5fc3RhcnRfb2Zf dnJhbShzdHJ1Y3Qgdm13X3ByaXZhdGUgKnZtd19wcml2LA0KPiAtCQkJCSAgICAgICBzdHJ1 Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJvLA0KPiAtCQkJCSAgICAgICBib29sIGludGVycnVw dGlibGUpOw0KPiAtZXh0ZXJuIGludCB2bXdfYm9fdW5waW4oc3RydWN0IHZtd19wcml2YXRl ICp2bXdfcHJpdiwNCj4gLQkJCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYm8sDQo+IC0J CQlib29sIGludGVycnVwdGlibGUpOw0KPiAtZXh0ZXJuIHZvaWQgdm13X2JvX2dldF9ndWVz dF9wdHIoY29uc3Qgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpidWYsDQo+IC0JCQkJIFNW R0FHdWVzdFB0ciAqcHRyKTsNCj4gLWV4dGVybiB2b2lkIHZtd19ib19waW5fcmVzZXJ2ZWQo c3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpibywgYm9vbCBwaW4pOw0KPiAtZXh0ZXJuIGlu dCB2bXdfYm9fY3JlYXRlX2tlcm5lbChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0K PiAtCQkJCXVuc2lnbmVkIGxvbmcgc2l6ZSwNCj4gLQkJCQlzdHJ1Y3QgdHRtX3BsYWNlbWVu dCAqcGxhY2VtZW50LA0KPiAtCQkJCXN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKnBfYm8p Ow0KPiAtZXh0ZXJuIGludCB2bXdfYm9fY3JlYXRlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2 X3ByaXYsDQo+IC0JCQkgc2l6ZV90IHNpemUsIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFj ZW1lbnQsDQo+IC0JCQkgYm9vbCBpbnRlcnJ1cHRpYmxlLCBib29sIHBpbiwNCj4gLQkJCSBz dHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKipwX2JvKTsNCj4gLWV4dGVybiBpbnQgdm13X2Jv X2luaXQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gLQkJICAgICAgIHN0cnVj dCB2bXdfYnVmZmVyX29iamVjdCAqdm13X2JvLA0KPiAtCQkgICAgICAgc2l6ZV90IHNpemUs IHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsDQo+IC0JCSAgICAgICBib29sIGlu dGVycnVwdGlibGUsIGJvb2wgcGluKTsNCj4gLWV4dGVybiBpbnQgdm13X2JvX3VucmVmX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+IC0JCQkgICAgICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7DQo+IC1leHRlcm4gaW50IHZtd191c2VyX2Jv X3N5bmNjcHVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4g LQkJCQkgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsNCj4gLWV4dGVybiBpbnQg dm13X3VzZXJfYm9fbG9va3VwKHN0cnVjdCBkcm1fZmlsZSAqZmlscCwNCj4gLQkJCSAgICAg IHVpbnQzMl90IGhhbmRsZSwNCj4gLQkJCSAgICAgIHN0cnVjdCB2bXdfYnVmZmVyX29iamVj dCAqKm91dCk7DQo+IC1leHRlcm4gdm9pZCB2bXdfYm9fZmVuY2Vfc2luZ2xlKHN0cnVjdCB0 dG1fYnVmZmVyX29iamVjdCAqYm8sDQo+IC0JCQkJc3RydWN0IHZtd19mZW5jZV9vYmogKmZl bmNlKTsNCj4gLWV4dGVybiB2b2lkICp2bXdfYm9fbWFwX2FuZF9jYWNoZShzdHJ1Y3Qgdm13 X2J1ZmZlcl9vYmplY3QgKnZibyk7DQo+IC1leHRlcm4gdm9pZCB2bXdfYm9fdW5tYXAoc3Ry dWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8pOw0KPiAtZXh0ZXJuIHZvaWQgdm13X2JvX21v dmVfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sDQo+IC0JCQkgICAgICAg c3RydWN0IHR0bV9yZXNvdXJjZSAqbWVtKTsNCj4gLWV4dGVybiB2b2lkIHZtd19ib19zd2Fw X25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsNCj4gLQ0KPiAtLyoqDQo+ IC0gKiB2bXdfYm9fYWRqdXN0X3ByaW8gLSBBZGp1c3QgdGhlIGJ1ZmZlciBvYmplY3QgZXZp Y3Rpb24gcHJpb3JpdHkNCj4gLSAqIGFjY29yZGluZyB0byBhdHRhY2hlZCByZXNvdXJjZXMN Cj4gLSAqIEB2Ym86IFRoZSBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QNCj4gLSAqLw0KPiAt c3RhdGljIGlubGluZSB2b2lkIHZtd19ib19wcmlvX2FkanVzdChzdHJ1Y3Qgdm13X2J1ZmZl cl9vYmplY3QgKnZibykNCj4gLXsNCj4gLQlpbnQgaSA9IEFSUkFZX1NJWkUodmJvLT5yZXNf cHJpb3MpOw0KPiAtDQo+IC0Jd2hpbGUgKGktLSkgew0KPiAtCQlpZiAodmJvLT5yZXNfcHJp b3NbaV0pIHsNCj4gLQkJCXZiby0+YmFzZS5wcmlvcml0eSA9IGk7DQo+IC0JCQlyZXR1cm47 DQo+IC0JCX0NCj4gLQl9DQo+IC0NCj4gLQl2Ym8tPmJhc2UucHJpb3JpdHkgPSAzOw0KPiAt fQ0KPiAtDQo+IC0vKioNCj4gLSAqIHZtd19ib19wcmlvX2FkZCAtIE5vdGlmeSBhIGJ1ZmZl ciBvYmplY3Qgb2YgYSBuZXdseSBhdHRhY2hlZCByZXNvdXJjZQ0KPiAtICogZXZpY3Rpb24g cHJpb3JpdHkNCj4gLSAqIEB2Ym86IFRoZSBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QNCj4g LSAqIEBwcmlvOiBUaGUgcmVzb3VyY2UgcHJpb3JpdHkNCj4gLSAqDQo+IC0gKiBBZnRlciBi ZWluZyBub3RpZmllZCwgdGhlIGNvZGUgYXNzaWducyB0aGUgaGlnaGVzdCByZXNvdXJjZSBl dmljdGlvbiBwcmlvcml0eQ0KPiAtICogdG8gdGhlIGJhY2tpbmcgYnVmZmVyIG9iamVjdCAo bW9iKS4NCj4gLSAqLw0KPiAtc3RhdGljIGlubGluZSB2b2lkIHZtd19ib19wcmlvX2FkZChz dHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibywgaW50IHByaW8pDQo+IC17DQo+IC0JaWYg KHZiby0+cmVzX3ByaW9zW3ByaW9dKysgPT0gMCkNCj4gLQkJdm13X2JvX3ByaW9fYWRqdXN0 KHZibyk7DQo+IC19DQo+IC0NCj4gLS8qKg0KPiAtICogdm13X2JvX3ByaW9fZGVsIC0gTm90 aWZ5IGEgYnVmZmVyIG9iamVjdCBvZiBhIHJlc291cmNlIHdpdGggYSBjZXJ0YWluDQo+IC0g KiBwcmlvcml0eSBiZWluZyByZW1vdmVkDQo+IC0gKiBAdmJvOiBUaGUgc3RydWN0IHZtd19i dWZmZXJfb2JqZWN0DQo+IC0gKiBAcHJpbzogVGhlIHJlc291cmNlIHByaW9yaXR5DQo+IC0g Kg0KPiAtICogQWZ0ZXIgYmVpbmcgbm90aWZpZWQsIHRoZSBjb2RlIGFzc2lnbnMgdGhlIGhp Z2hlc3QgcmVzb3VyY2UgZXZpY3Rpb24gcHJpb3JpdHkNCj4gLSAqIHRvIHRoZSBiYWNraW5n IGJ1ZmZlciBvYmplY3QgKG1vYikuDQo+IC0gKi8NCj4gLXN0YXRpYyBpbmxpbmUgdm9pZCB2 bXdfYm9fcHJpb19kZWwoc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8sIGludCBwcmlv KQ0KPiAtew0KPiAtCWlmICgtLXZiby0+cmVzX3ByaW9zW3ByaW9dID09IDApDQo+IC0JCXZt d19ib19wcmlvX2FkanVzdCh2Ym8pOw0KPiAtfQ0KPiAtDQo+ICAgLyoqDQo+ICAgICogR0VN IHJlbGF0ZWQgZnVuY3Rpb25hbGl0eSAtIHZtd2dmeF9nZW0uYw0KPiAgICAqLw0KPiBAQCAt OTc0LDcgKzg0Niw3IEBAIGV4dGVybiBpbnQgdm13X2dlbV9vYmplY3RfY3JlYXRlX3dpdGhf aGFuZGxlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgCQkJCQkgICAgIHN0 cnVjdCBkcm1fZmlsZSAqZmlscCwNCj4gICAJCQkJCSAgICAgdWludDMyX3Qgc2l6ZSwNCj4g ICAJCQkJCSAgICAgdWludDMyX3QgKmhhbmRsZSwNCj4gLQkJCQkJICAgICBzdHJ1Y3Qgdm13 X2J1ZmZlcl9vYmplY3QgKipwX3Zibyk7DQo+ICsJCQkJCSAgICAgc3RydWN0IHZtd19ibyAq KnBfdmJvKTsNCj4gICBleHRlcm4gaW50IHZtd19nZW1fb2JqZWN0X2NyZWF0ZV9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPiAgIAkJCQkgICAgICAgc3Ry dWN0IGRybV9maWxlICpmaWxwKTsNCj4gICBleHRlcm4gdm9pZCB2bXdfZGVidWdmc19nZW1f aW5pdChzdHJ1Y3Qgdm13X3ByaXZhdGUgKnZkZXYpOw0KPiBAQCAtMTI4NSw4ICsxMTU3LDgg QEAgdm13X2NvbnRleHRfYmluZGluZ19zdGF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpjdHgp Ow0KPiAgIGV4dGVybiB2b2lkIHZtd19keF9jb250ZXh0X3NjcnViX2NvdGFibGVzKHN0cnVj dCB2bXdfcmVzb3VyY2UgKmN0eCwNCj4gICAJCQkJCSAgYm9vbCByZWFkYmFjayk7DQo+ICAg ZXh0ZXJuIGludCB2bXdfY29udGV4dF9iaW5kX2R4X3F1ZXJ5KHN0cnVjdCB2bXdfcmVzb3Vy Y2UgKmN0eF9yZXMsDQo+IC0JCQkJICAgICBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKm1v Yik7DQo+IC1leHRlcm4gc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICoNCj4gKwkJCQkgICAg IHN0cnVjdCB2bXdfYm8gKm1vYik7DQo+ICtleHRlcm4gc3RydWN0IHZtd19ibyAqDQo+ICAg dm13X2NvbnRleHRfZ2V0X2R4X3F1ZXJ5X21vYihzdHJ1Y3Qgdm13X3Jlc291cmNlICpjdHhf cmVzKTsNCj4gICANCj4gICANCj4gQEAgLTE1MTEsMTIgKzEzODMsMTIgQEAgaW50IHZtd19t a3NzdGF0X3JlbW92ZV9hbGwoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdik7DQo+ICAg CURSTV9ERUJVR19EUklWRVIoZm10LCAjI19fVkFfQVJHU19fKQ0KPiAgIA0KPiAgIC8qIFJl c291cmNlIGRpcnR5aW5nIC0gdm13Z2Z4X3BhZ2VfZGlydHkuYyAqLw0KPiAtdm9pZCB2bXdf Ym9fZGlydHlfc2NhbihzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibyk7DQo+IC1pbnQg dm13X2JvX2RpcnR5X2FkZChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibyk7DQo+ICt2 b2lkIHZtd19ib19kaXJ0eV9zY2FuKHN0cnVjdCB2bXdfYm8gKnZibyk7DQo+ICtpbnQgdm13 X2JvX2RpcnR5X2FkZChzdHJ1Y3Qgdm13X2JvICp2Ym8pOw0KPiAgIHZvaWQgdm13X2JvX2Rp cnR5X3RyYW5zZmVyX3RvX3JlcyhzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpOw0KPiAgIHZv aWQgdm13X2JvX2RpcnR5X2NsZWFyX3JlcyhzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMpOw0K PiAtdm9pZCB2bXdfYm9fZGlydHlfcmVsZWFzZShzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3Qg KnZibyk7DQo+IC12b2lkIHZtd19ib19kaXJ0eV91bm1hcChzdHJ1Y3Qgdm13X2J1ZmZlcl9v YmplY3QgKnZibywNCj4gK3ZvaWQgdm13X2JvX2RpcnR5X3JlbGVhc2Uoc3RydWN0IHZtd19i byAqdmJvKTsNCj4gK3ZvaWQgdm13X2JvX2RpcnR5X3VubWFwKHN0cnVjdCB2bXdfYm8gKnZi bywNCj4gICAJCQlwZ29mZl90IHN0YXJ0LCBwZ29mZl90IGVuZCk7DQo+ICAgdm1fZmF1bHRf dCB2bXdfYm9fdm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpOw0KPiAgIHZtX2ZhdWx0 X3Qgdm13X2JvX3ZtX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpOw0KPiBAQCAtMTU0 OSwyMiArMTQyMSw2IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZtd19zdXJmYWNlICp2bXdf c3VyZmFjZV9yZWZlcmVuY2Uoc3RydWN0IHZtd19zdXJmYWNlICpzcmYpDQo+ICAgCXJldHVy biBzcmY7DQo+ICAgfQ0KPiAgIA0KPiAtc3RhdGljIGlubGluZSB2b2lkIHZtd19ib191bnJl ZmVyZW5jZShzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKipidWYpDQo+IC17DQo+IC0Jc3Ry dWN0IHZtd19idWZmZXJfb2JqZWN0ICp0bXBfYnVmID0gKmJ1ZjsNCj4gLQ0KPiAtCSpidWYg PSBOVUxMOw0KPiAtCWlmICh0bXBfYnVmICE9IE5VTEwpDQo+IC0JCXR0bV9ib19wdXQoJnRt cF9idWYtPmJhc2UpOw0KPiAtfQ0KPiAtDQo+IC1zdGF0aWMgaW5saW5lIHN0cnVjdCB2bXdf YnVmZmVyX29iamVjdCAqDQo+IC12bXdfYm9fcmVmZXJlbmNlKHN0cnVjdCB2bXdfYnVmZmVy X29iamVjdCAqYnVmKQ0KPiAtew0KPiAtCXR0bV9ib19nZXQoJmJ1Zi0+YmFzZSk7DQo+IC0J cmV0dXJuIGJ1ZjsNCj4gLX0NCj4gLQ0KPiAgIHN0YXRpYyBpbmxpbmUgdm9pZCB2bXdfZmlm b19yZXNvdXJjZV9pbmMoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdikNCj4gICB7DQo+ ICAgCWF0b21pY19pbmMoJmRldl9wcml2LT5udW1fZmlmb19yZXNvdXJjZXMpOw0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZXhlY2J1Zi5jDQo+IGluZGV4IGE0NGQ1M2Uz M2NkYi4uNjg3YzY5MjZiYzAwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9leGVjYnVmLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfZXhlY2J1Zi5jDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgIC8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVA0KPiAgIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Kg0KPiAgICAqDQo+IC0gKiBDb3B5cmlnaHQgMjAwOSAtIDIwMjIgVk13YXJlLCBJbmMuLCBQ YWxvIEFsdG8sIENBLiwgVVNBDQo+ICsgKiBDb3B5cmlnaHQgMjAwOSAtIDIwMjMgVk13YXJl LCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNBDQo+ICAgICoNCj4gICAgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRh aW5pbmcgYQ0KPiAgICAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUNCj4gQEAgLTI0LDE3ICsyNCwxNiBAQA0KPiAgICAq IFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuDQo+ICAgICoNCj4gICAg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovDQo+IC0jaW5jbHVkZSA8bGludXgvc3luY19maWxlLmg+ DQo+IC0jaW5jbHVkZSA8bGludXgvaGFzaHRhYmxlLmg+DQo+IC0NCj4gLSNpbmNsdWRlICJ2 bXdnZnhfZHJ2LmgiDQo+IC0jaW5jbHVkZSAidm13Z2Z4X3JlZy5oIg0KPiAtI2luY2x1ZGUg PGRybS90dG0vdHRtX2JvX2FwaS5oPg0KPiAtI2luY2x1ZGUgPGRybS90dG0vdHRtX3BsYWNl bWVudC5oPg0KPiAtI2luY2x1ZGUgInZtd2dmeF9zby5oIg0KPiAgICNpbmNsdWRlICJ2bXdn ZnhfYmluZGluZy5oIg0KPiArI2luY2x1ZGUgInZtd2dmeF9iby5oIg0KPiArI2luY2x1ZGUg InZtd2dmeF9kcnYuaCINCj4gICAjaW5jbHVkZSAidm13Z2Z4X21rc3N0YXQuaCINCj4gKyNp bmNsdWRlICJ2bXdnZnhfc28uaCINCj4gKw0KPiArI2luY2x1ZGUgPGRybS90dG0vdHRtX2Jv X2FwaS5oPg0KPiAgIA0KPiArI2luY2x1ZGUgPGxpbnV4L3N5bmNfZmlsZS5oPg0KPiArI2lu Y2x1ZGUgPGxpbnV4L2hhc2h0YWJsZS5oPg0KPiAgIA0KPiAgIC8qDQo+ICAgICogSGVscGVy IG1hY3JvIHRvIGdldCBkeF9jdHhfbm9kZSBpZiBhdmFpbGFibGUgb3RoZXJ3aXNlIHByaW50 IGFuIGVycm9yDQo+IEBAIC02NSw3ICs2NCw3IEBADQo+ICAgICovDQo+ICAgc3RydWN0IHZt d19yZWxvY2F0aW9uIHsNCj4gICAJc3RydWN0IGxpc3RfaGVhZCBoZWFkOw0KPiAtCXN0cnVj dCB2bXdfYnVmZmVyX29iamVjdCAqdmJvOw0KPiArCXN0cnVjdCB2bXdfYm8gKnZibzsNCj4g ICAJdW5pb24gew0KPiAgIAkJU1ZHQU1vYklkICptb2JfbG9jOw0KPiAgIAkJU1ZHQUd1ZXN0 UHRyICpsb2NhdGlvbjsNCj4gQEAgLTE0OSw3ICsxNDgsNyBAQCBzdGF0aWMgaW50IHZtd19y ZXNvdXJjZV9jb250ZXh0X3Jlc19hZGQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwN Cj4gICBzdGF0aWMgaW50IHZtd190cmFuc2xhdGVfbW9iX3B0cihzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2LA0KPiAgIAkJCQkgc3RydWN0IHZtd19zd19jb250ZXh0ICpzd19jb250 ZXh0LA0KPiAgIAkJCQkgU1ZHQU1vYklkICppZCwNCj4gLQkJCQkgc3RydWN0IHZtd19idWZm ZXJfb2JqZWN0ICoqdm13X2JvX3ApOw0KPiArCQkJCSBzdHJ1Y3Qgdm13X2JvICoqdm13X2Jv X3ApOw0KPiAgIC8qKg0KPiAgICAqIHZtd19wdHJfZGlmZiAtIENvbXB1dGUgdGhlIG9mZnNl dCBmcm9tIGEgdG8gYiBpbiBieXRlcw0KPiAgICAqDQo+IEBAIC00NzUsNyArNDc0LDcgQEAg c3RhdGljIGludCB2bXdfcmVzb3VyY2VfY29udGV4dF9yZXNfYWRkKHN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYsDQo+ICAgDQo+ICAgCWlmIChoYXNfc200X2NvbnRleHQoZGV2X3By aXYpICYmDQo+ICAgCSAgICB2bXdfcmVzX3R5cGUoY3R4KSA9PSB2bXdfcmVzX2R4X2NvbnRl eHQpIHsNCj4gLQkJc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpkeF9xdWVyeV9tb2I7DQo+ ICsJCXN0cnVjdCB2bXdfYm8gKmR4X3F1ZXJ5X21vYjsNCj4gICANCj4gICAJCWR4X3F1ZXJ5 X21vYiA9IHZtd19jb250ZXh0X2dldF9keF9xdWVyeV9tb2IoY3R4KTsNCj4gICAJCWlmIChk eF9xdWVyeV9tb2IpDQo+IEBAIC01OTYsNyArNTk1LDcgQEAgc3RhdGljIGludCB2bXdfcmVz b3VyY2VzX3Jlc2VydmUoc3RydWN0IHZtd19zd19jb250ZXh0ICpzd19jb250ZXh0KQ0KPiAg IAkJcmV0dXJuIHJldDsNCj4gICANCj4gICAJaWYgKHN3X2NvbnRleHQtPmR4X3F1ZXJ5X21v Yikgew0KPiAtCQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmV4cGVjdGVkX2R4X3F1ZXJ5 X21vYjsNCj4gKwkJc3RydWN0IHZtd19ibyAqZXhwZWN0ZWRfZHhfcXVlcnlfbW9iOw0KPiAg IA0KPiAgIAkJZXhwZWN0ZWRfZHhfcXVlcnlfbW9iID0NCj4gICAJCQl2bXdfY29udGV4dF9n ZXRfZHhfcXVlcnlfbW9iKHN3X2NvbnRleHQtPmR4X3F1ZXJ5X2N0eCk7DQo+IEBAIC03MDMs NyArNzAyLDcgQEAgdm13X2NtZF9yZXNfY2hlY2soc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwNCj4gICBzdGF0aWMgaW50IHZtd19yZWJpbmRfYWxsX2R4X3F1ZXJ5KHN0cnVjdCB2 bXdfcmVzb3VyY2UgKmN0eF9yZXMpDQo+ICAgew0KPiAgIAlzdHJ1Y3Qgdm13X3ByaXZhdGUg KmRldl9wcml2ID0gY3R4X3Jlcy0+ZGV2X3ByaXY7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJf b2JqZWN0ICpkeF9xdWVyeV9tb2I7DQo+ICsJc3RydWN0IHZtd19ibyAqZHhfcXVlcnlfbW9i Ow0KPiAgIAlWTVdfREVDTEFSRV9DTURfVkFSKCpjbWQsIFNWR0EzZENtZERYQmluZEFsbFF1 ZXJ5KTsNCj4gICANCj4gICAJZHhfcXVlcnlfbW9iID0gdm13X2NvbnRleHRfZ2V0X2R4X3F1 ZXJ5X21vYihjdHhfcmVzKTsNCj4gQEAgLTEwMTcsNyArMTAxNiw3IEBAIHN0YXRpYyBpbnQg dm13X2NtZF9wcmVzZW50X2NoZWNrKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ ICAgICogYWZ0ZXIgc3VjY2Vzc2Z1bCBzdWJtaXNzaW9uIG9mIHRoZSBjdXJyZW50IGNvbW1h bmQgYmF0Y2guDQo+ICAgICovDQo+ICAgc3RhdGljIGludCB2bXdfcXVlcnlfYm9fc3dpdGNo X3ByZXBhcmUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gLQkJCQkgICAgICAg c3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpuZXdfcXVlcnlfYm8sDQo+ICsJCQkJICAgICAg IHN0cnVjdCB2bXdfYm8gKm5ld19xdWVyeV9ibywNCj4gICAJCQkJICAgICAgIHN0cnVjdCB2 bXdfc3dfY29udGV4dCAqc3dfY29udGV4dCkNCj4gICB7DQo+ICAgCXN0cnVjdCB2bXdfcmVz X2NhY2hlX2VudHJ5ICpjdHhfZW50cnkgPQ0KPiBAQCAtMTE0NSw5ICsxMTQ0LDkgQEAgc3Rh dGljIHZvaWQgdm13X3F1ZXJ5X2JvX3N3aXRjaF9jb21taXQoc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdiwNCj4gICBzdGF0aWMgaW50IHZtd190cmFuc2xhdGVfbW9iX3B0cihzdHJ1 Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgIAkJCQkgc3RydWN0IHZtd19zd19jb250 ZXh0ICpzd19jb250ZXh0LA0KPiAgIAkJCQkgU1ZHQU1vYklkICppZCwNCj4gLQkJCQkgc3Ry dWN0IHZtd19idWZmZXJfb2JqZWN0ICoqdm13X2JvX3ApDQo+ICsJCQkJIHN0cnVjdCB2bXdf Ym8gKip2bXdfYm9fcCkNCj4gICB7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2 bXdfYm87DQo+ICsJc3RydWN0IHZtd19ibyAqdm13X2JvOw0KPiAgIAl1aW50MzJfdCBoYW5k bGUgPSAqaWQ7DQo+ICAgCXN0cnVjdCB2bXdfcmVsb2NhdGlvbiAqcmVsb2M7DQo+ICAgCWlu dCByZXQ7DQo+IEBAIC0xMTk5LDkgKzExOTgsOSBAQCBzdGF0aWMgaW50IHZtd190cmFuc2xh dGVfbW9iX3B0cihzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgIHN0YXRpYyBp bnQgdm13X3RyYW5zbGF0ZV9ndWVzdF9wdHIoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJp diwNCj4gICAJCQkJICAgc3RydWN0IHZtd19zd19jb250ZXh0ICpzd19jb250ZXh0LA0KPiAg IAkJCQkgICBTVkdBR3Vlc3RQdHIgKnB0ciwNCj4gLQkJCQkgICBzdHJ1Y3Qgdm13X2J1ZmZl cl9vYmplY3QgKip2bXdfYm9fcCkNCj4gKwkJCQkgICBzdHJ1Y3Qgdm13X2JvICoqdm13X2Jv X3ApDQo+ICAgew0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdm13X2JvOw0KPiAr CXN0cnVjdCB2bXdfYm8gKnZtd19ibzsNCj4gICAJdWludDMyX3QgaGFuZGxlID0gcHRyLT5n bXJJZDsNCj4gICAJc3RydWN0IHZtd19yZWxvY2F0aW9uICpyZWxvYzsNCj4gICAJaW50IHJl dDsNCj4gQEAgLTEyNzgsNyArMTI3Nyw3IEBAIHN0YXRpYyBpbnQgdm13X2NtZF9keF9iaW5k X3F1ZXJ5KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgCQkJCSBTVkdBM2RD bWRIZWFkZXIgKmhlYWRlcikNCj4gICB7DQo+ICAgCVZNV19ERUNMQVJFX0NNRF9WQVIoKmNt ZCwgU1ZHQTNkQ21kRFhCaW5kUXVlcnkpOw0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVj dCAqdm13X2JvOw0KPiArCXN0cnVjdCB2bXdfYm8gKnZtd19ibzsNCj4gICAJaW50IHJldDsN Cj4gICANCj4gICAJY21kID0gY29udGFpbmVyX29mKGhlYWRlciwgdHlwZW9mKCpjbWQpLCBo ZWFkZXIpOw0KPiBAQCAtMTM2MSw3ICsxMzYwLDcgQEAgc3RhdGljIGludCB2bXdfY21kX2Vu ZF9nYl9xdWVyeShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgIAkJCQlzdHJ1 Y3Qgdm13X3N3X2NvbnRleHQgKnN3X2NvbnRleHQsDQo+ICAgCQkJCVNWR0EzZENtZEhlYWRl ciAqaGVhZGVyKQ0KPiAgIHsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZtd19i bzsNCj4gKwlzdHJ1Y3Qgdm13X2JvICp2bXdfYm87DQo+ICAgCVZNV19ERUNMQVJFX0NNRF9W QVIoKmNtZCwgU1ZHQTNkQ21kRW5kR0JRdWVyeSk7DQo+ICAgCWludCByZXQ7DQo+ICAgDQo+ IEBAIC0xMzkxLDcgKzEzOTAsNyBAQCBzdGF0aWMgaW50IHZtd19jbWRfZW5kX3F1ZXJ5KHN0 cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgCQkJICAgICBzdHJ1Y3Qgdm13X3N3 X2NvbnRleHQgKnN3X2NvbnRleHQsDQo+ICAgCQkJICAgICBTVkdBM2RDbWRIZWFkZXIgKmhl YWRlcikNCj4gICB7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2bXdfYm87DQo+ ICsJc3RydWN0IHZtd19ibyAqdm13X2JvOw0KPiAgIAlWTVdfREVDTEFSRV9DTURfVkFSKCpj bWQsIFNWR0EzZENtZEVuZFF1ZXJ5KTsNCj4gICAJaW50IHJldDsNCj4gICANCj4gQEAgLTE0 MzcsNyArMTQzNiw3IEBAIHN0YXRpYyBpbnQgdm13X2NtZF93YWl0X2diX3F1ZXJ5KHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgCQkJCSBzdHJ1Y3Qgdm13X3N3X2NvbnRl eHQgKnN3X2NvbnRleHQsDQo+ICAgCQkJCSBTVkdBM2RDbWRIZWFkZXIgKmhlYWRlcikNCj4g ICB7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2bXdfYm87DQo+ICsJc3RydWN0 IHZtd19ibyAqdm13X2JvOw0KPiAgIAlWTVdfREVDTEFSRV9DTURfVkFSKCpjbWQsIFNWR0Ez ZENtZFdhaXRGb3JHQlF1ZXJ5KTsNCj4gICAJaW50IHJldDsNCj4gICANCj4gQEAgLTE0NjUs NyArMTQ2NCw3IEBAIHN0YXRpYyBpbnQgdm13X2NtZF93YWl0X3F1ZXJ5KHN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgCQkJICAgICAgc3RydWN0IHZtd19zd19jb250ZXh0 ICpzd19jb250ZXh0LA0KPiAgIAkJCSAgICAgIFNWR0EzZENtZEhlYWRlciAqaGVhZGVyKQ0K PiAgIHsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZtd19ibzsNCj4gKwlzdHJ1 Y3Qgdm13X2JvICp2bXdfYm87DQo+ICAgCVZNV19ERUNMQVJFX0NNRF9WQVIoKmNtZCwgU1ZH QTNkQ21kV2FpdEZvclF1ZXJ5KTsNCj4gICAJaW50IHJldDsNCj4gICANCj4gQEAgLTE1MDIs NyArMTUwMSw3IEBAIHN0YXRpYyBpbnQgdm13X2NtZF9kbWEoc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdiwNCj4gICAJCSAgICAgICBzdHJ1Y3Qgdm13X3N3X2NvbnRleHQgKnN3X2Nv bnRleHQsDQo+ICAgCQkgICAgICAgU1ZHQTNkQ21kSGVhZGVyICpoZWFkZXIpDQo+ICAgew0K PiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdm13X2JvID0gTlVMTDsNCj4gKwlzdHJ1 Y3Qgdm13X2JvICp2bXdfYm8gPSBOVUxMOw0KPiAgIAlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnNy ZiA9IE5VTEw7DQo+ICAgCVZNV19ERUNMQVJFX0NNRF9WQVIoKmNtZCwgU1ZHQTNkQ21kU3Vy ZmFjZURNQSk7DQo+ICAgCWludCByZXQ7DQo+IEBAIC0xNjY4LDcgKzE2NjcsNyBAQCBzdGF0 aWMgaW50IHZtd19jbWRfY2hlY2tfZGVmaW5lX2dtcmZiKHN0cnVjdCB2bXdfcHJpdmF0ZSAq ZGV2X3ByaXYsDQo+ICAgCQkJCSAgICAgIHN0cnVjdCB2bXdfc3dfY29udGV4dCAqc3dfY29u dGV4dCwNCj4gICAJCQkJICAgICAgdm9pZCAqYnVmKQ0KPiAgIHsNCj4gLQlzdHJ1Y3Qgdm13 X2J1ZmZlcl9vYmplY3QgKnZtd19ibzsNCj4gKwlzdHJ1Y3Qgdm13X2JvICp2bXdfYm87DQo+ ICAgDQo+ICAgCXN0cnVjdCB7DQo+ICAgCQl1aW50MzJfdCBoZWFkZXI7DQo+IEBAIC0xNjk5 LDcgKzE2OTgsNyBAQCBzdGF0aWMgaW50IHZtd19jbWRfcmVzX3N3aXRjaF9iYWNrdXAoc3Ry dWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gICAJCQkJICAgICBzdHJ1Y3Qgdm13X3Jl c291cmNlICpyZXMsIHVpbnQzMl90ICpidWZfaWQsDQo+ICAgCQkJCSAgICAgdW5zaWduZWQg bG9uZyBiYWNrdXBfb2Zmc2V0KQ0KPiAgIHsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmpl Y3QgKnZibzsNCj4gKwlzdHJ1Y3Qgdm13X2JvICp2Ym87DQo+ICAgCXZvaWQgKmluZm87DQo+ ICAgCWludCByZXQ7DQo+ICAgDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVu Y2UuYw0KPiBpbmRleCA2NmNjMzVkYzIyM2UuLjJhMGNkYTMyNDcwMyAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYw0KPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jDQo+IEBAIC0xLDcgKzEsNyBAQA0K PiAgIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVA0KPiAgIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKg0KPiAgICAqDQo+IC0gKiBDb3B5cmlnaHQgMjAxMS0yMDE0 IFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiArICogQ29weXJpZ2h0IDIw MTEtMjAyMyBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0ENCj4gICAgKg0KPiAg ICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBh bnkgcGVyc29uIG9idGFpbmluZyBhDQo+ICAgICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQ0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9nZW0uYw0KPiBpbmRleCBhZTM5MDI5ZmVjNGEuLjEwZjRkYTM0Zjcz ZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ2VtLmMN Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ2VtLmMNCj4gQEAgLTEs NiArMSw2IEBADQo+ICAgLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1Ig TUlUICovDQo+ICAgLyoNCj4gLSAqIENvcHlyaWdodCAyMDIxIFZNd2FyZSwgSW5jLg0KPiAr ICogQ29weXJpZ2h0IDIwMjEtMjAyMyBWTXdhcmUsIEluYy4NCj4gICAgKg0KPiAgICAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uDQo+ICAgICogb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24NCj4gQEAgLTI0LDIzICsyNCwyMyBAQA0KPiAgICAqDQo+ ICAgICovDQo+ICAgDQo+ICsjaW5jbHVkZSAidm13Z2Z4X2JvLmgiDQo+ICAgI2luY2x1ZGUg InZtd2dmeF9kcnYuaCINCj4gICANCj4gICAjaW5jbHVkZSAiZHJtL2RybV9wcmltZS5oIg0K PiAgICNpbmNsdWRlICJkcm0vZHJtX2dlbV90dG1faGVscGVyLmgiDQo+ICAgDQo+ICAgLyoq DQo+IC0gKiB2bXdfYnVmZmVyX29iamVjdCAtIENvbnZlcnQgYSBzdHJ1Y3QgdHRtX2J1ZmZl cl9vYmplY3QgdG8gYSBzdHJ1Y3QNCj4gLSAqIHZtd19idWZmZXJfb2JqZWN0Lg0KPiArICog dm13X2JvIC0gQ29udmVydCBhIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCB0byBhIHN0cnVj dCB2bXdfYm8uDQo+ICAgICoNCj4gICAgKiBAYm86IFBvaW50ZXIgdG8gdGhlIFRUTSBidWZm ZXIgb2JqZWN0Lg0KPiAtICogUmV0dXJuOiBQb2ludGVyIHRvIHRoZSBzdHJ1Y3Qgdm13X2J1 ZmZlcl9vYmplY3QgZW1iZWRkaW5nIHRoZQ0KPiAtICogVFRNIGJ1ZmZlciBvYmplY3QuDQo+ ICsgKiBSZXR1cm46IFBvaW50ZXIgdG8gdGhlIHN0cnVjdCB2bXdfYm8gZW1iZWRkaW5nIHRo ZSBUVE0gYnVmZmVyDQo+ICsgKiBvYmplY3QuDQo+ICAgICovDQo+IC1zdGF0aWMgc3RydWN0 IHZtd19idWZmZXJfb2JqZWN0ICoNCj4gLXZtd19idWZmZXJfb2JqZWN0KHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8pDQo+ICtzdGF0aWMgc3RydWN0IHZtd19ibyAqDQo+ICt2bXdf Ym8oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykNCj4gICB7DQo+IC0JcmV0dXJuIGNv bnRhaW5lcl9vZihibywgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0LCBiYXNlKTsNCj4gKwly ZXR1cm4gY29udGFpbmVyX29mKGJvLCBzdHJ1Y3Qgdm13X2JvLCBiYXNlKTsNCj4gICB9DQo+ ICAgDQo+ICAgc3RhdGljIHZvaWQgdm13X2dlbV9vYmplY3RfZnJlZShzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKmdvYmopDQo+IEBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyB2b2lkIHZtd19n ZW1fb2JqZWN0X2Nsb3NlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLA0KPiAgIHN0YXRp YyBpbnQgdm13X2dlbV9waW5fcHJpdmF0ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwg Ym9vbCBkb19waW4pDQo+ICAgew0KPiAgIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv ID0gZHJtX2dlbV90dG1fb2ZfZ2VtKG9iaik7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2Jq ZWN0ICp2Ym8gPSB2bXdfYnVmZmVyX29iamVjdChibyk7DQo+ICsJc3RydWN0IHZtd19ibyAq dmJvID0gdm13X2JvKGJvKTsNCj4gICAJaW50IHJldDsNCj4gICANCj4gICAJcmV0ID0gdHRt X2JvX3Jlc2VydmUoYm8sIGZhbHNlLCBmYWxzZSwgTlVMTCk7DQo+IEBAIC0xMjksNyArMTI5 LDcgQEAgaW50IHZtd19nZW1fb2JqZWN0X2NyZWF0ZV93aXRoX2hhbmRsZShzdHJ1Y3Qgdm13 X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgIAkJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bHAsDQo+ICAgCQkJCSAgICAgIHVpbnQzMl90IHNpemUsDQo+ICAgCQkJCSAgICAgIHVpbnQz Ml90ICpoYW5kbGUsDQo+IC0JCQkJICAgICAgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICoq cF92Ym8pDQo+ICsJCQkJICAgICAgc3RydWN0IHZtd19ibyAqKnBfdmJvKQ0KPiAgIHsNCj4g ICAJaW50IHJldDsNCj4gICANCj4gQEAgLTE1OSw3ICsxNTksNyBAQCBpbnQgdm13X2dlbV9v YmplY3RfY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs DQo+ICAgCSAgICAodW5pb24gZHJtX3Ztd19hbGxvY19kbWFidWZfYXJnICopZGF0YTsNCj4g ICAJc3RydWN0IGRybV92bXdfYWxsb2NfZG1hYnVmX3JlcSAqcmVxID0gJmFyZy0+cmVxOw0K PiAgIAlzdHJ1Y3QgZHJtX3Ztd19kbWFidWZfcmVwICpyZXAgPSAmYXJnLT5yZXA7DQo+IC0J c3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym87DQo+ICsJc3RydWN0IHZtd19ibyAqdmJv Ow0KPiAgIAl1aW50MzJfdCBoYW5kbGU7DQo+ICAgCWludCByZXQ7DQo+ICAgDQo+IEBAIC0x NzgsNyArMTc4LDcgQEAgaW50IHZtd19nZW1fb2JqZWN0X2NyZWF0ZV9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPiAgIA0KPiAgICNpZiBkZWZpbmVkKENP TkZJR19ERUJVR19GUykNCj4gICANCj4gLXN0YXRpYyB2b2lkIHZtd19ib19wcmludF9pbmZv KGludCBpZCwgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpibywgc3RydWN0IHNlcV9maWxl ICptKQ0KPiArc3RhdGljIHZvaWQgdm13X2JvX3ByaW50X2luZm8oaW50IGlkLCBzdHJ1Y3Qg dm13X2JvICpibywgc3RydWN0IHNlcV9maWxlICptKQ0KPiAgIHsNCj4gICAJY29uc3QgY2hh ciAqcGxhY2VtZW50Ow0KPiAgIAljb25zdCBjaGFyICp0eXBlOw0KPiBAQCAtMjU5LDcgKzI1 OSw3IEBAIHN0YXRpYyBpbnQgdm13X2RlYnVnZnNfZ2VtX2luZm9fc2hvdyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkNCj4gICANCj4gICAJCXNwaW5fbG9jaygmZmlsZS0+ dGFibGVfbG9jayk7DQo+ICAgCQlpZHJfZm9yX2VhY2hfZW50cnkoJmZpbGUtPm9iamVjdF9p ZHIsIGdvYmosIGlkKSB7DQo+IC0JCQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJvID0g Z2VtX3RvX3Ztd19ibyhnb2JqKTsNCj4gKwkJCXN0cnVjdCB2bXdfYm8gKmJvID0gZ2VtX3Rv X3Ztd19ibyhnb2JqKTsNCj4gICANCj4gICAJCQl2bXdfYm9fcHJpbnRfaW5mbyhpZCwgYm8s IG0pOw0KPiAgIAkJfQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYw0KPiBp bmRleCAyNTdmMDkwMDcxZjEuLmFkNDEzOTZjMGE1ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfa21zLmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAgLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUDQo+ICAgLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqDQo+ICAgICoNCj4gLSAqIENvcHlyaWdodCAyMDA5LTIwMjIgVk13YXJlLCBJbmMu LCBQYWxvIEFsdG8sIENBLiwgVVNBDQo+ICsgKiBDb3B5cmlnaHQgMjAwOS0yMDIzIFZNd2Fy ZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiAgICAqDQo+ICAgICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGENCj4gICAgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+IEBAIC0yNCw4ICsyNCw5IEBADQo+ICAgICog VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4NCj4gICAgKg0KPiAgICAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8NCj4gLQ0KPiAgICNpbmNsdWRlICJ2bXdnZnhfa21zLmgi DQo+ICsNCj4gKyNpbmNsdWRlICJ2bXdnZnhfYm8uaCINCj4gICAjaW5jbHVkZSAidm13X3N1 cmZhY2VfY2FjaGUuaCINCj4gICANCj4gICAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4N Cj4gQEAgLTE0OTMsNyArMTQ5NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyX2Z1bmNzIHZtd19mcmFtZWJ1ZmZlcl9ib19mdW5jcyA9IHsNCj4gICBzdGF0aWMg aW50IHZtd19mcmFtZWJ1ZmZlcl9waW4oc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqdmZiKQ0K PiAgIHsNCj4gICAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHZtd19wcml2KHZm Yi0+YmFzZS5kZXYpOw0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYnVmOw0KPiAr CXN0cnVjdCB2bXdfYm8gKmJ1ZjsNCj4gICAJc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNl bWVudDsNCj4gICAJaW50IHJldDsNCj4gICANCj4gQEAgLTE1MzgsNyArMTUzOSw3IEBAIHN0 YXRpYyBpbnQgdm13X2ZyYW1lYnVmZmVyX3BpbihzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyICp2 ZmIpDQo+ICAgc3RhdGljIGludCB2bXdfZnJhbWVidWZmZXJfdW5waW4oc3RydWN0IHZtd19m cmFtZWJ1ZmZlciAqdmZiKQ0KPiAgIHsNCj4gICAJc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiA9IHZtd19wcml2KHZmYi0+YmFzZS5kZXYpOw0KPiAtCXN0cnVjdCB2bXdfYnVmZmVy X29iamVjdCAqYnVmOw0KPiArCXN0cnVjdCB2bXdfYm8gKmJ1ZjsNCj4gICANCj4gICAJYnVm ID0gdmZiLT5ibyA/ICB2bXdfZnJhbWVidWZmZXJfdG9fdmZiZCgmdmZiLT5iYXNlKS0+YnVm ZmVyIDoNCj4gICAJCXZtd19mcmFtZWJ1ZmZlcl90b192ZmJzKCZ2ZmItPmJhc2UpLT5zdXJm YWNlLT5yZXMuYmFja3VwOw0KPiBAQCAtMTU2Niw3ICsxNTY3LDcgQEAgc3RhdGljIGludCB2 bXdfZnJhbWVidWZmZXJfdW5waW4oc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqdmZiKQ0KPiAg ICAqLw0KPiAgIHN0YXRpYyBpbnQgdm13X2NyZWF0ZV9ib19wcm94eShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LA0KPiAgIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21k MiAqbW9kZV9jbWQsDQo+IC0JCQkgICAgICAgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpi b19tb2IsDQo+ICsJCQkgICAgICAgc3RydWN0IHZtd19ibyAqYm9fbW9iLA0KPiAgIAkJCSAg ICAgICBzdHJ1Y3Qgdm13X3N1cmZhY2UgKipzcmZfb3V0KQ0KPiAgIHsNCj4gICAJc3RydWN0 IHZtd19zdXJmYWNlX21ldGFkYXRhIG1ldGFkYXRhID0gezB9Ow0KPiBAQCAtMTYzMCw3ICsx NjMxLDcgQEAgc3RhdGljIGludCB2bXdfY3JlYXRlX2JvX3Byb3h5KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsDQo+ICAgDQo+ICAgDQo+ICAgc3RhdGljIGludCB2bXdfa21zX25ld19mcmFt ZWJ1ZmZlcl9ibyhzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAtCQkJCSAgICAg IHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYm8sDQo+ICsJCQkJICAgICAgc3RydWN0IHZt d19ibyAqYm8sDQo+ICAgCQkJCSAgICAgIHN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKipvdXQs DQo+ICAgCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyDQo+ICAgCQkJ CSAgICAgICptb2RlX2NtZCkNCj4gQEAgLTE3MTgsNyArMTcxOSw3IEBAIHZtd19rbXNfc3Jm X29rKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHVpbnQzMl90IHdpZHRoLCB1aW50 MzJfdCBoZWlnaHQpDQo+ICAgICovDQo+ICAgc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqDQo+ ICAgdm13X2ttc19uZXdfZnJhbWVidWZmZXIoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJp diwNCj4gLQkJCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYm8sDQo+ICsJCQlzdHJ1Y3Qg dm13X2JvICpibywNCj4gICAJCQlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnN1cmZhY2UsDQo+ICAg CQkJYm9vbCBvbmx5XzJkLA0KPiAgIAkJCWNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQy ICptb2RlX2NtZCkNCj4gQEAgLTE3ODIsNyArMTc4Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICp2bXdfa21zX2ZiX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LA0KPiAgIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gdm13X3ByaXYoZGV2KTsN Cj4gICAJc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqdmZiID0gTlVMTDsNCj4gICAJc3RydWN0 IHZtd19zdXJmYWNlICpzdXJmYWNlID0gTlVMTDsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9v YmplY3QgKmJvID0gTlVMTDsNCj4gKwlzdHJ1Y3Qgdm13X2JvICpibyA9IE5VTEw7DQo+ICAg CWludCByZXQ7DQo+ICAgDQo+ICAgCS8qIHJldHVybnMgZWl0aGVyIGEgYm8gb3Igc3VyZmFj ZSAqLw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21z LmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaA0KPiBpbmRleCA0ZDZl N2I1NTVkYjcuLjJkMDk3YmEyMGFkOCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfa21zLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfa21zLmgNCj4gQEAgLTIzMyw3ICsyMzMsNyBAQCBzdHJ1Y3Qgdm13X2NsaXBfcmVj dCB7DQo+ICAgc3RydWN0IHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNlIHsNCj4gICAJc3RydWN0 IHZtd19mcmFtZWJ1ZmZlciBiYXNlOw0KPiAgIAlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnN1cmZh Y2U7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpidWZmZXI7DQo+ICsJc3RydWN0 IHZtd19ibyAqYnVmZmVyOw0KPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIGhlYWQ7DQo+ICAgCWJv b2wgaXNfYm9fcHJveHk7ICAvKiB0cnVlIGlmIHRoaXMgaXMgcHJveHkgc3VyZmFjZSBmb3Ig RE1BIGJ1ZiAqLw0KPiAgIH07DQo+IEBAIC0yNDEsNyArMjQxLDcgQEAgc3RydWN0IHZtd19m cmFtZWJ1ZmZlcl9zdXJmYWNlIHsNCj4gICANCj4gICBzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVy X2JvIHsNCj4gICAJc3RydWN0IHZtd19mcmFtZWJ1ZmZlciBiYXNlOw0KPiAtCXN0cnVjdCB2 bXdfYnVmZmVyX29iamVjdCAqYnVmZmVyOw0KPiArCXN0cnVjdCB2bXdfYm8gKmJ1ZmZlcjsN Cj4gICB9Ow0KPiAgIA0KPiAgIA0KPiBAQCAtMjkzLDcgKzI5Myw3IEBAIHN0cnVjdCB2bXdf Y3Vyc29yX3BsYW5lX3N0YXRlIHsNCj4gICBzdHJ1Y3Qgdm13X3BsYW5lX3N0YXRlIHsNCj4g ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSBiYXNlOw0KPiAgIAlzdHJ1Y3Qgdm13X3N1cmZh Y2UgKnN1cmY7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpibzsNCj4gKwlzdHJ1 Y3Qgdm13X2JvICpibzsNCj4gICANCj4gICAJaW50IGNvbnRlbnRfZmJfdHlwZTsNCj4gICAJ dW5zaWduZWQgbG9uZyBib19zaXplOw0KPiBAQCAtMzY0LDcgKzM2NCw3IEBAIHN0cnVjdCB2 bXdfZGlzcGxheV91bml0IHsNCj4gICAJc3RydWN0IHZtd19jdXJzb3JfcGxhbmUgY3Vyc29y Ow0KPiAgIA0KPiAgIAlzdHJ1Y3Qgdm13X3N1cmZhY2UgKmN1cnNvcl9zdXJmYWNlOw0KPiAt CXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqY3Vyc29yX2JvOw0KPiArCXN0cnVjdCB2bXdf Ym8gKmN1cnNvcl9ibzsNCj4gICAJc2l6ZV90IGN1cnNvcl9hZ2U7DQo+ICAgDQo+ICAgCWlu dCBjdXJzb3JfeDsNCj4gQEAgLTM5Nyw3ICszOTcsNyBAQCBzdHJ1Y3Qgdm13X2Rpc3BsYXlf dW5pdCB7DQo+ICAgDQo+ICAgc3RydWN0IHZtd192YWxpZGF0aW9uX2N0eCB7DQo+ICAgCXN0 cnVjdCB2bXdfcmVzb3VyY2UgKnJlczsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3Qg KmJ1ZjsNCj4gKwlzdHJ1Y3Qgdm13X2JvICpidWY7DQo+ICAgfTsNCj4gICANCj4gICAjZGVm aW5lIHZtd19jcnRjX3RvX2R1KHgpIFwNCj4gQEAgLTQ1OCw3ICs0NTgsNyBAQCBpbnQgdm13 X2ttc19yZWFkYmFjayhzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgIAkJICAg ICB1aW50MzJfdCBudW1fY2xpcHMpOw0KPiAgIHN0cnVjdCB2bXdfZnJhbWVidWZmZXIgKg0K PiAgIHZtd19rbXNfbmV3X2ZyYW1lYnVmZmVyKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3By aXYsDQo+IC0JCQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJvLA0KPiArCQkJc3RydWN0 IHZtd19ibyAqYm8sDQo+ICAgCQkJc3RydWN0IHZtd19zdXJmYWNlICpzdXJmYWNlLA0KPiAg IAkJCWJvb2wgb25seV8yZCwNCj4gICAJCQljb25zdCBzdHJ1Y3QgZHJtX21vZGVfZmJfY21k MiAqbW9kZV9jbWQpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfbW9iLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9tb2IuYw0KPiBp bmRleCAwYThjYzI4ZDY2MDYuLjZiM2Y1M2I1MzNkYyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfbW9iLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfbW9iLmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAgLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUDQo+ICAgLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqDQo+ICAgICoNCj4gLSAqIENvcHlyaWdodCAyMDEyLTIwMjEgVk13YXJlLCBJbmMu LCBQYWxvIEFsdG8sIENBLiwgVVNBDQo+ICsgKiBDb3B5cmlnaHQgMjAxMi0yMDIzIFZNd2Fy ZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiAgICAqDQo+ICAgICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0 YWluaW5nIGENCj4gICAgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQg ZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+IEBAIC0yNSwxMCArMjUsMTEgQEANCj4gICAg Kg0KPiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCj4gICANCj4gLSNpbmNsdWRlIDxsaW51 eC9oaWdobWVtLmg+DQo+IC0NCj4gKyNpbmNsdWRlICJ2bXdnZnhfYm8uaCINCj4gICAjaW5j bHVkZSAidm13Z2Z4X2Rydi5oIg0KPiAgIA0KPiArI2luY2x1ZGUgPGxpbnV4L2hpZ2htZW0u aD4NCj4gKw0KPiAgICNpZmRlZiBDT05GSUdfNjRCSVQNCj4gICAjZGVmaW5lIFZNV19QUE5f U0laRSA4DQo+ICAgI2RlZmluZSBWTVdfTU9CRk1UX1BUREVQVEhfMCBTVkdBM0RfTU9CRk1U X1BUNjRfMA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf b3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfb3ZlcmxheS5jDQo+ IGluZGV4IGU5ZjVjODliNGNhNi4uYjQxNWU4NmIyNmRiIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9vdmVybGF5LmMNCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfb3ZlcmxheS5jDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAg IC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVA0KPiAgIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKg0KPiAgICAqDQo+IC0gKiBDb3B5cmlnaHQgMjAwOS0yMDE0IFZN d2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiArICogQ29weXJpZ2h0IDIwMDkt MjAyMyBWTXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0ENCj4gICAgKg0KPiAgICAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhDQo+ICAgICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQ0KPiBAQCAtMjQsMTkgKzI0LDE5 IEBADQo+ICAgICogVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4NCj4g ICAgKg0KPiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCj4gLQ0KPiAtI2luY2x1ZGUgPGRy bS90dG0vdHRtX3BsYWNlbWVudC5oPg0KPiArI2luY2x1ZGUgInZtd2dmeF9iby5oIg0KPiAr I2luY2x1ZGUgInZtd2dmeF9kcnYuaCINCj4gICANCj4gICAjaW5jbHVkZSAiZGV2aWNlX2lu Y2x1ZGUvc3ZnYV9vdmVybGF5LmgiDQo+ICAgI2luY2x1ZGUgImRldmljZV9pbmNsdWRlL3N2 Z2FfZXNjYXBlLmgiDQo+ICAgDQo+IC0jaW5jbHVkZSAidm13Z2Z4X2Rydi5oIg0KPiArI2lu Y2x1ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPg0KPiAgIA0KPiAgICNkZWZpbmUgVk1X X01BWF9OVU1fU1RSRUFNUyAxDQo+ICAgI2RlZmluZSBWTVdfT1ZFUkxBWV9DQVBfTUFTSyAo U1ZHQV9GSUZPX0NBUF9WSURFTyB8IFNWR0FfRklGT19DQVBfRVNDQVBFKQ0KPiAgIA0KPiAg IHN0cnVjdCB2bXdfc3RyZWFtIHsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJ1 ZjsNCj4gKwlzdHJ1Y3Qgdm13X2JvICpidWY7DQo+ICAgCWJvb2wgY2xhaW1lZDsNCj4gICAJ Ym9vbCBwYXVzZWQ7DQo+ICAgCXN0cnVjdCBkcm1fdm13X2NvbnRyb2xfc3RyZWFtX2FyZyBz YXZlZDsNCj4gQEAgLTkyLDcgKzkyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGZpbGxfZmx1 c2goc3RydWN0IHZtd19lc2NhcGVfdmlkZW9fZmx1c2ggKmNtZCwNCj4gICAgKiAtRVJFU1RB UlRTWVMgaWYgaW50ZXJydXB0ZWQgYnkgYSBzaWduYWwuDQo+ICAgICovDQo+ICAgc3RhdGlj IGludCB2bXdfb3ZlcmxheV9zZW5kX3B1dChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LA0KPiAtCQkJCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYnVmLA0KPiArCQkJCXN0cnVj dCB2bXdfYm8gKmJ1ZiwNCj4gICAJCQkJc3RydWN0IGRybV92bXdfY29udHJvbF9zdHJlYW1f YXJnICphcmcsDQo+ICAgCQkJCWJvb2wgaW50ZXJydXB0aWJsZSkNCj4gICB7DQo+IEBAIC0y MjMsNyArMjIzLDcgQEAgc3RhdGljIGludCB2bXdfb3ZlcmxheV9zZW5kX3N0b3Aoc3RydWN0 IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gICAgKiB1c2VkIHdpdGggR01ScyBpbnN0ZWFk IG9mIGJlaW5nIGxvY2tlZCB0byB2cmFtLg0KPiAgICAqLw0KPiAgIHN0YXRpYyBpbnQgdm13 X292ZXJsYXlfbW92ZV9idWZmZXIoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4g LQkJCQkgICBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJ1ZiwNCj4gKwkJCQkgICBzdHJ1 Y3Qgdm13X2JvICpidWYsDQo+ICAgCQkJCSAgIGJvb2wgcGluLCBib29sIGludGVyKQ0KPiAg IHsNCj4gICAJaWYgKCFwaW4pDQo+IEBAIC0yOTUsNyArMjk1LDcgQEAgc3RhdGljIGludCB2 bXdfb3ZlcmxheV9zdG9wKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgICog LUVSRVNUQVJUU1lTIGlmIGludGVycnVwdGVkLg0KPiAgICAqLw0KPiAgIHN0YXRpYyBpbnQg dm13X292ZXJsYXlfdXBkYXRlX3N0cmVhbShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2 LA0KPiAtCQkJCSAgICAgc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpidWYsDQo+ICsJCQkJ ICAgICBzdHJ1Y3Qgdm13X2JvICpidWYsDQo+ICAgCQkJCSAgICAgc3RydWN0IGRybV92bXdf Y29udHJvbF9zdHJlYW1fYXJnICphcmcsDQo+ICAgCQkJCSAgICAgYm9vbCBpbnRlcnJ1cHRp YmxlKQ0KPiAgIHsNCj4gQEAgLTQzMyw3ICs0MzMsNyBAQCBpbnQgdm13X292ZXJsYXlfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4gICAJc3RydWN0IHZt d19vdmVybGF5ICpvdmVybGF5ID0gZGV2X3ByaXYtPm92ZXJsYXlfcHJpdjsNCj4gICAJc3Ry dWN0IGRybV92bXdfY29udHJvbF9zdHJlYW1fYXJnICphcmcgPQ0KPiAgIAkgICAgKHN0cnVj dCBkcm1fdm13X2NvbnRyb2xfc3RyZWFtX2FyZyAqKWRhdGE7DQo+IC0Jc3RydWN0IHZtd19i dWZmZXJfb2JqZWN0ICpidWY7DQo+ICsJc3RydWN0IHZtd19ibyAqYnVmOw0KPiAgIAlzdHJ1 Y3Qgdm13X3Jlc291cmNlICpyZXM7DQo+ICAgCWludCByZXQ7DQo+ICAgDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9wYWdlX2RpcnR5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9wYWdlX2RpcnR5LmMNCj4gaW5kZXggZjQxZjA0 MTU1OWY0Li5jOTJjYTZkYWJlM2MgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X3BhZ2VfZGlydHkuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9wYWdlX2RpcnR5LmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAgLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUDQo+ICAgLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqDQo+ICAgICoNCj4gLSAqIENvcHlyaWdodCAyMDE5IFZNd2FyZSwgSW5jLiwg UGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiArICogQ29weXJpZ2h0IDIwMTktMjAyMyBWTXdhcmUs IEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0ENCj4gICAgKg0KPiAgICAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhDQo+ICAgICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRv Y3VtZW50YXRpb24gZmlsZXMgKHRoZQ0KPiBAQCAtMjQsNiArMjQsNyBAQA0KPiAgICAqIFVT RSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuDQo+ICAgICoNCj4gICAgKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovDQo+ICsjaW5jbHVkZSAidm13Z2Z4X2JvLmgiDQo+ICAgI2lu Y2x1ZGUgInZtd2dmeF9kcnYuaCINCj4gICANCj4gICAvKg0KPiBAQCAtNzgsNyArNzksNyBA QCBzdHJ1Y3Qgdm13X2JvX2RpcnR5IHsNCj4gICAgKiBkaXJ0eSBzdHJ1Y3R1cmUgd2l0aCB0 aGUgcmVzdWx0cy4gVGhpcyBmdW5jdGlvbiBtYXkgY2hhbmdlIHRoZQ0KPiAgICAqIGRpcnR5 LXRyYWNraW5nIG1ldGhvZC4NCj4gICAgKi8NCj4gLXN0YXRpYyB2b2lkIHZtd19ib19kaXJ0 eV9zY2FuX3BhZ2V0YWJsZShzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykNCj4gK3N0 YXRpYyB2b2lkIHZtd19ib19kaXJ0eV9zY2FuX3BhZ2V0YWJsZShzdHJ1Y3Qgdm13X2JvICp2 Ym8pDQo+ICAgew0KPiAgIAlzdHJ1Y3Qgdm13X2JvX2RpcnR5ICpkaXJ0eSA9IHZiby0+ZGly dHk7DQo+ICAgCXBnb2ZmX3Qgb2Zmc2V0ID0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZ2Ym8tPmJh c2UuYmFzZS52bWFfbm9kZSk7DQo+IEBAIC0xMTYsNyArMTE3LDcgQEAgc3RhdGljIHZvaWQg dm13X2JvX2RpcnR5X3NjYW5fcGFnZXRhYmxlKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAq dmJvKQ0KPiAgICAqDQo+ICAgICogVGhpcyBmdW5jdGlvbiBtYXkgY2hhbmdlIHRoZSBkaXJ0 eS10cmFja2luZyBtZXRob2QuDQo+ICAgICovDQo+IC1zdGF0aWMgdm9pZCB2bXdfYm9fZGly dHlfc2Nhbl9ta3dyaXRlKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvKQ0KPiArc3Rh dGljIHZvaWQgdm13X2JvX2RpcnR5X3NjYW5fbWt3cml0ZShzdHJ1Y3Qgdm13X2JvICp2Ym8p DQo+ICAgew0KPiAgIAlzdHJ1Y3Qgdm13X2JvX2RpcnR5ICpkaXJ0eSA9IHZiby0+ZGlydHk7 DQo+ICAgCXVuc2lnbmVkIGxvbmcgb2Zmc2V0ID0gZHJtX3ZtYV9ub2RlX3N0YXJ0KCZ2Ym8t PmJhc2UuYmFzZS52bWFfbm9kZSk7DQo+IEBAIC0xNjAsNyArMTYxLDcgQEAgc3RhdGljIHZv aWQgdm13X2JvX2RpcnR5X3NjYW5fbWt3cml0ZShzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3Qg KnZibykNCj4gICAgKg0KPiAgICAqIFRoaXMgZnVuY3Rpb24gbWF5IGNoYW5nZSB0aGUgZGly dHkgdHJhY2tpbmcgbWV0aG9kLg0KPiAgICAqLw0KPiAtdm9pZCB2bXdfYm9fZGlydHlfc2Nh bihzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykNCj4gK3ZvaWQgdm13X2JvX2RpcnR5 X3NjYW4oc3RydWN0IHZtd19ibyAqdmJvKQ0KPiAgIHsNCj4gICAJc3RydWN0IHZtd19ib19k aXJ0eSAqZGlydHkgPSB2Ym8tPmRpcnR5Ow0KPiAgIA0KPiBAQCAtMTgxLDcgKzE4Miw3IEBA IHZvaWQgdm13X2JvX2RpcnR5X3NjYW4oc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8p DQo+ICAgICogd2hlbiBjYWxsaW5nIHVubWFwX21hcHBpbmdfcmFuZ2UoKS4gVGhpcyBmdW5j dGlvbiBtYWtlcyBzdXJlIHdlIHBpY2sNCj4gICAgKiB1cCBhbGwgZGlydHkgcGFnZXMuDQo+ ICAgICovDQo+IC1zdGF0aWMgdm9pZCB2bXdfYm9fZGlydHlfcHJlX3VubWFwKHN0cnVjdCB2 bXdfYnVmZmVyX29iamVjdCAqdmJvLA0KPiArc3RhdGljIHZvaWQgdm13X2JvX2RpcnR5X3By ZV91bm1hcChzdHJ1Y3Qgdm13X2JvICp2Ym8sDQo+ICAgCQkJCSAgIHBnb2ZmX3Qgc3RhcnQs IHBnb2ZmX3QgZW5kKQ0KPiAgIHsNCj4gICAJc3RydWN0IHZtd19ib19kaXJ0eSAqZGlydHkg PSB2Ym8tPmRpcnR5Ow0KPiBAQCAtMjA2LDcgKzIwNyw3IEBAIHN0YXRpYyB2b2lkIHZtd19i b19kaXJ0eV9wcmVfdW5tYXAoc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8sDQo+ICAg ICoNCj4gICAgKiBUaGlzIGlzIHNpbWlsYXIgdG8gdHRtX2JvX3VubWFwX3ZpcnR1YWwoKSBl eGNlcHQgaXQgdGFrZXMgYSBzdWJyYW5nZS4NCj4gICAgKi8NCj4gLXZvaWQgdm13X2JvX2Rp cnR5X3VubWFwKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvLA0KPiArdm9pZCB2bXdf Ym9fZGlydHlfdW5tYXAoc3RydWN0IHZtd19ibyAqdmJvLA0KPiAgIAkJCXBnb2ZmX3Qgc3Rh cnQsIHBnb2ZmX3QgZW5kKQ0KPiAgIHsNCj4gICAJdW5zaWduZWQgbG9uZyBvZmZzZXQgPSBk cm1fdm1hX25vZGVfc3RhcnQoJnZiby0+YmFzZS5iYXNlLnZtYV9ub2RlKTsNCj4gQEAgLTIy Nyw3ICsyMjgsNyBAQCB2b2lkIHZtd19ib19kaXJ0eV91bm1hcChzdHJ1Y3Qgdm13X2J1ZmZl cl9vYmplY3QgKnZibywNCj4gICAgKg0KPiAgICAqIFJldHVybjogWmVybyBvbiBzdWNjZXNz LCAtRU5PTUVNIG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUuDQo+ICAgICovDQo+IC1p bnQgdm13X2JvX2RpcnR5X2FkZChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykNCj4g K2ludCB2bXdfYm9fZGlydHlfYWRkKHN0cnVjdCB2bXdfYm8gKnZibykNCj4gICB7DQo+ICAg CXN0cnVjdCB2bXdfYm9fZGlydHkgKmRpcnR5ID0gdmJvLT5kaXJ0eTsNCj4gICAJcGdvZmZf dCBudW1fcGFnZXMgPSBQRk5fVVAodmJvLT5iYXNlLnJlc291cmNlLT5zaXplKTsNCj4gQEAg LTI4NCw3ICsyODUsNyBAQCBpbnQgdm13X2JvX2RpcnR5X2FkZChzdHJ1Y3Qgdm13X2J1ZmZl cl9vYmplY3QgKnZibykNCj4gICAgKg0KPiAgICAqIFJldHVybjogWmVybyBvbiBzdWNjZXNz LCAtRU5PTUVNIG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUuDQo+ICAgICovDQo+IC12 b2lkIHZtd19ib19kaXJ0eV9yZWxlYXNlKHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJv KQ0KPiArdm9pZCB2bXdfYm9fZGlydHlfcmVsZWFzZShzdHJ1Y3Qgdm13X2JvICp2Ym8pDQo+ ICAgew0KPiAgIAlzdHJ1Y3Qgdm13X2JvX2RpcnR5ICpkaXJ0eSA9IHZiby0+ZGlydHk7DQo+ ICAgDQo+IEBAIC0zMDYsNyArMzA3LDcgQEAgdm9pZCB2bXdfYm9fZGlydHlfcmVsZWFzZShz dHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibykNCj4gICAgKi8NCj4gICB2b2lkIHZtd19i b19kaXJ0eV90cmFuc2Zlcl90b19yZXMoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQ0KPiAg IHsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibyA9IHJlcy0+YmFja3VwOw0K PiArCXN0cnVjdCB2bXdfYm8gKnZibyA9IHJlcy0+YmFja3VwOw0KPiAgIAlzdHJ1Y3Qgdm13 X2JvX2RpcnR5ICpkaXJ0eSA9IHZiby0+ZGlydHk7DQo+ICAgCXBnb2ZmX3Qgc3RhcnQsIGN1 ciwgZW5kOw0KPiAgIAl1bnNpZ25lZCBsb25nIHJlc19zdGFydCA9IHJlcy0+YmFja3VwX29m ZnNldDsNCj4gQEAgLTM1Myw3ICszNTQsNyBAQCB2b2lkIHZtd19ib19kaXJ0eV9jbGVhcl9y ZXMoc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzKQ0KPiAgIHsNCj4gICAJdW5zaWduZWQgbG9u ZyByZXNfc3RhcnQgPSByZXMtPmJhY2t1cF9vZmZzZXQ7DQo+ICAgCXVuc2lnbmVkIGxvbmcg cmVzX2VuZCA9IHJlcy0+YmFja3VwX29mZnNldCArIHJlcy0+YmFja3VwX3NpemU7DQo+IC0J c3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8gPSByZXMtPmJhY2t1cDsNCj4gKwlzdHJ1 Y3Qgdm13X2JvICp2Ym8gPSByZXMtPmJhY2t1cDsNCj4gICAJc3RydWN0IHZtd19ib19kaXJ0 eSAqZGlydHkgPSB2Ym8tPmRpcnR5Ow0KPiAgIA0KPiAgIAlyZXNfc3RhcnQgPj49IFBBR0Vf U0hJRlQ7DQo+IEBAIC0zODAsNyArMzgxLDcgQEAgdm1fZmF1bHRfdCB2bXdfYm9fdm1fbWt3 cml0ZShzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikNCj4gICAJdm1fZmF1bHRfdCByZXQ7DQo+ICAg CXVuc2lnbmVkIGxvbmcgcGFnZV9vZmZzZXQ7DQo+ICAgCXVuc2lnbmVkIGludCBzYXZlX2Zs YWdzOw0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvID0NCj4gKwlzdHJ1Y3Qg dm13X2JvICp2Ym8gPQ0KPiAgIAkJY29udGFpbmVyX29mKGJvLCB0eXBlb2YoKnZibyksIGJh c2UpOw0KPiAgIA0KPiAgIAkvKg0KPiBAQCAtNDE5LDggKzQyMCw4IEBAIHZtX2ZhdWx0X3Qg dm13X2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQ0KPiAgIAlzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSA9IHZtZi0+dm1hOw0KPiAgIAlzdHJ1Y3QgdHRtX2J1ZmZlcl9v YmplY3QgKmJvID0gKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKQ0KPiAgIAkgICAgdm1h LT52bV9wcml2YXRlX2RhdGE7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8g PQ0KPiAtCQljb250YWluZXJfb2YoYm8sIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCwgYmFz ZSk7DQo+ICsJc3RydWN0IHZtd19ibyAqdmJvID0NCj4gKwkJY29udGFpbmVyX29mKGJvLCBz dHJ1Y3Qgdm13X2JvLCBiYXNlKTsNCj4gICAJcGdvZmZfdCBudW1fcHJlZmF1bHQ7DQo+ICAg CXBncHJvdF90IHByb3Q7DQo+ICAgCXZtX2ZhdWx0X3QgcmV0Ow0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMNCj4gaW5kZXggNTg3OWU4Yjk5NTBhLi41 NGU0MTJmOGMyZDEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3Jlc291cmNlLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf cmVzb3VyY2UuYw0KPiBAQCAtMSw3ICsxLDcgQEANCj4gICAvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMCBPUiBNSVQNCj4gICAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCj4g ICAgKg0KPiAtICogQ29weXJpZ2h0IDIwMDktMjAxNSBWTXdhcmUsIEluYy4sIFBhbG8gQWx0 bywgQ0EuLCBVU0ENCj4gKyAqIENvcHlyaWdodCAyMDA5LTIwMjMgVk13YXJlLCBJbmMuLCBQ YWxvIEFsdG8sIENBLiwgVVNBDQo+ICAgICoNCj4gICAgKiBQZXJtaXNzaW9uIGlzIGhlcmVi eSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQ0K PiAgICAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUNCj4gQEAgLTI3LDkgKzI3LDEwIEBADQo+ICAgDQo+ICAgI2luY2x1 ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPg0KPiAgIA0KPiAtI2luY2x1ZGUgInZtd2dm eF9yZXNvdXJjZV9wcml2LmgiDQo+ICAgI2luY2x1ZGUgInZtd2dmeF9iaW5kaW5nLmgiDQo+ ICsjaW5jbHVkZSAidm13Z2Z4X2JvLmgiDQo+ICAgI2luY2x1ZGUgInZtd2dmeF9kcnYuaCIN Cj4gKyNpbmNsdWRlICJ2bXdnZnhfcmVzb3VyY2VfcHJpdi5oIg0KPiAgIA0KPiAgICNkZWZp bmUgVk1XX1JFU19FVklDVF9FUlJfQ09VTlQgMTANCj4gICANCj4gQEAgLTM5LDcgKzQwLDcg QEANCj4gICAgKi8NCj4gICB2b2lkIHZtd19yZXNvdXJjZV9tb2JfYXR0YWNoKHN0cnVjdCB2 bXdfcmVzb3VyY2UgKnJlcykNCj4gICB7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0 ICpiYWNrdXAgPSByZXMtPmJhY2t1cDsNCj4gKwlzdHJ1Y3Qgdm13X2JvICpiYWNrdXAgPSBy ZXMtPmJhY2t1cDsNCj4gICAJc3RydWN0IHJiX25vZGUgKipuZXcgPSAmYmFja3VwLT5yZXNf dHJlZS5yYl9ub2RlLCAqcGFyZW50ID0gTlVMTDsNCj4gICANCj4gICAJZG1hX3Jlc3ZfYXNz ZXJ0X2hlbGQocmVzLT5iYWNrdXAtPmJhc2UuYmFzZS5yZXN2KTsNCj4gQEAgLTY3LDcgKzY4 LDcgQEAgdm9pZCB2bXdfcmVzb3VyY2VfbW9iX2F0dGFjaChzdHJ1Y3Qgdm13X3Jlc291cmNl ICpyZXMpDQo+ICAgICovDQo+ICAgdm9pZCB2bXdfcmVzb3VyY2VfbW9iX2RldGFjaChzdHJ1 Y3Qgdm13X3Jlc291cmNlICpyZXMpDQo+ICAgew0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29i amVjdCAqYmFja3VwID0gcmVzLT5iYWNrdXA7DQo+ICsJc3RydWN0IHZtd19ibyAqYmFja3Vw ID0gcmVzLT5iYWNrdXA7DQo+ICAgDQo+ICAgCWRtYV9yZXN2X2Fzc2VydF9oZWxkKGJhY2t1 cC0+YmFzZS5iYXNlLnJlc3YpOw0KPiAgIAlpZiAodm13X3Jlc291cmNlX21vYl9hdHRhY2hl ZChyZXMpKSB7DQo+IEBAIC0yOTAsNyArMjkxLDcgQEAgaW50IHZtd191c2VyX2xvb2t1cF9o YW5kbGUoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gICAJCQkgICBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbHAsDQo+ICAgCQkJICAgdWludDMyX3QgaGFuZGxlLA0KPiAgIAkJCSAg IHN0cnVjdCB2bXdfc3VyZmFjZSAqKm91dF9zdXJmLA0KPiAtCQkJICAgc3RydWN0IHZtd19i dWZmZXJfb2JqZWN0ICoqb3V0X2J1ZikNCj4gKwkJCSAgIHN0cnVjdCB2bXdfYm8gKipvdXRf YnVmKQ0KPiAgIHsNCj4gICAJc3RydWN0IHR0bV9vYmplY3RfZmlsZSAqdGZpbGUgPSB2bXdf ZnByaXYoZmlscCktPnRmaWxlOw0KPiAgIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXM7DQo+ IEBAIC0zMjIsNyArMzIzLDcgQEAgc3RhdGljIGludCB2bXdfcmVzb3VyY2VfYnVmX2FsbG9j KHN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlcywNCj4gICAJCQkJICBib29sIGludGVycnVwdGli bGUpDQo+ICAgew0KPiAgIAl1bnNpZ25lZCBsb25nIHNpemUgPSBQRk5fQUxJR04ocmVzLT5i YWNrdXBfc2l6ZSk7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpiYWNrdXA7DQo+ ICsJc3RydWN0IHZtd19ibyAqYmFja3VwOw0KPiAgIAlpbnQgcmV0Ow0KPiAgIA0KPiAgIAlp ZiAobGlrZWx5KHJlcy0+YmFja3VwKSkgew0KPiBAQCAtNDM4LDcgKzQzOSw3IEBAIHZvaWQg dm13X3Jlc291cmNlX3VucmVzZXJ2ZShzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsDQo+ICAg CQkJICAgIGJvb2wgZGlydHlfc2V0LA0KPiAgIAkJCSAgICBib29sIGRpcnR5LA0KPiAgIAkJ CSAgICBib29sIHN3aXRjaF9iYWNrdXAsDQo+IC0JCQkgICAgc3RydWN0IHZtd19idWZmZXJf b2JqZWN0ICpuZXdfYmFja3VwLA0KPiArCQkJICAgIHN0cnVjdCB2bXdfYm8gKm5ld19iYWNr dXAsDQo+ICAgCQkJICAgIHVuc2lnbmVkIGxvbmcgbmV3X2JhY2t1cF9vZmZzZXQpDQo+ICAg ew0KPiAgIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gcmVzLT5kZXZfcHJpdjsN Cj4gQEAgLTczOSw3ICs3NDAsNyBAQCBpbnQgdm13X3Jlc291cmNlX3ZhbGlkYXRlKHN0cnVj dCB2bXdfcmVzb3VyY2UgKnJlcywgYm9vbCBpbnRyLA0KPiAgICAqIHZhbGlkYXRpb24gY29k ZSwgc2luY2UgcmVzb3VyY2UgdmFsaWRhdGlvbiBhbmQgZXZpY3Rpb24NCj4gICAgKiBib3Ro IHJlcXVpcmUgdGhlIGJhY2t1cCBidWZmZXIgdG8gYmUgcmVzZXJ2ZWQuDQo+ICAgICovDQo+ IC12b2lkIHZtd19yZXNvdXJjZV91bmJpbmRfbGlzdChzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmpl Y3QgKnZibykNCj4gK3ZvaWQgdm13X3Jlc291cmNlX3VuYmluZF9saXN0KHN0cnVjdCB2bXdf Ym8gKnZibykNCj4gICB7DQo+ICAgCXN0cnVjdCB0dG1fdmFsaWRhdGVfYnVmZmVyIHZhbF9i dWYgPSB7DQo+ICAgCQkuYm8gPSAmdmJvLT5iYXNlLA0KPiBAQCAtNzcyLDcgKzc3Myw3IEBA IHZvaWQgdm13X3Jlc291cmNlX3VuYmluZF9saXN0KHN0cnVjdCB2bXdfYnVmZmVyX29iamVj dCAqdmJvKQ0KPiAgICAqIFJlYWQgYmFjayBjYWNoZWQgc3RhdGVzIGZyb20gdGhlIGRldmlj ZSBpZiB0aGV5IGV4aXN0LiAgVGhpcyBmdW5jdGlvbg0KPiAgICAqIGFzc3VtZXMgYmluZGlu Z19tdXRleCBpcyBoZWxkLg0KPiAgICAqLw0KPiAtaW50IHZtd19xdWVyeV9yZWFkYmFja19h bGwoc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpkeF9xdWVyeV9tb2IpDQo+ICtpbnQgdm13 X3F1ZXJ5X3JlYWRiYWNrX2FsbChzdHJ1Y3Qgdm13X2JvICpkeF9xdWVyeV9tb2IpDQo+ICAg ew0KPiAgIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICpkeF9xdWVyeV9jdHg7DQo+ICAgCXN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXY7DQo+IEBAIC04MjEsNyArODIyLDcgQEAgdm9pZCB2 bXdfcXVlcnlfbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywNCj4g ICAJCQkgICBzdHJ1Y3QgdHRtX3Jlc291cmNlICpvbGRfbWVtLA0KPiAgIAkJCSAgIHN0cnVj dCB0dG1fcmVzb3VyY2UgKm5ld19tZW0pDQo+ICAgew0KPiAtCXN0cnVjdCB2bXdfYnVmZmVy X29iamVjdCAqZHhfcXVlcnlfbW9iOw0KPiArCXN0cnVjdCB2bXdfYm8gKmR4X3F1ZXJ5X21v YjsNCj4gICAJc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYgPSBiby0+YmRldjsNCj4gICAJc3Ry dWN0IHZtd19wcml2YXRlICpkZXZfcHJpdjsNCj4gICANCj4gQEAgLTgzNCw3ICs4MzUsNyBA QCB2b2lkIHZtd19xdWVyeV9tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KmJvLA0KPiAgIAkgICAgb2xkX21lbS0+bWVtX3R5cGUgPT0gVk1XX1BMX01PQikgew0KPiAg IAkJc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlOw0KPiAgIA0KPiAtCQlkeF9xdWVyeV9t b2IgPSBjb250YWluZXJfb2YoYm8sIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCwgYmFzZSk7 DQo+ICsJCWR4X3F1ZXJ5X21vYiA9IGNvbnRhaW5lcl9vZihibywgc3RydWN0IHZtd19ibywg YmFzZSk7DQo+ICAgCQlpZiAoIWR4X3F1ZXJ5X21vYiB8fCAhZHhfcXVlcnlfbW9iLT5keF9x dWVyeV9jdHgpIHsNCj4gICAJCQltdXRleF91bmxvY2soJmRldl9wcml2LT5iaW5kaW5nX211 dGV4KTsNCj4gICAJCQlyZXR1cm47DQo+IEBAIC05NTgsNyArOTU5LDcgQEAgaW50IHZtd19y ZXNvdXJjZV9waW4oc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzLCBib29sIGludGVycnVwdGli bGUpDQo+ICAgCQlnb3RvIG91dF9ub19yZXNlcnZlOw0KPiAgIA0KPiAgIAlpZiAocmVzLT5w aW5fY291bnQgPT0gMCkgew0KPiAtCQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibyA9 IE5VTEw7DQo+ICsJCXN0cnVjdCB2bXdfYm8gKnZibyA9IE5VTEw7DQo+ICAgDQo+ICAgCQlp ZiAocmVzLT5iYWNrdXApIHsNCj4gICAJCQl2Ym8gPSByZXMtPmJhY2t1cDsNCj4gQEAgLTEw MTYsNyArMTAxNyw3IEBAIHZvaWQgdm13X3Jlc291cmNlX3VucGluKHN0cnVjdCB2bXdfcmVz b3VyY2UgKnJlcykNCj4gICANCj4gICAJV0FSTl9PTihyZXMtPnBpbl9jb3VudCA9PSAwKTsN Cj4gICAJaWYgKC0tcmVzLT5waW5fY291bnQgPT0gMCAmJiByZXMtPmJhY2t1cCkgew0KPiAt CQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKnZibyA9IHJlcy0+YmFja3VwOw0KPiArCQlz dHJ1Y3Qgdm13X2JvICp2Ym8gPSByZXMtPmJhY2t1cDsNCj4gICANCj4gICAJCSh2b2lkKSB0 dG1fYm9fcmVzZXJ2ZSgmdmJvLT5iYXNlLCBmYWxzZSwgZmFsc2UsIE5VTEwpOw0KPiAgIAkJ dm13X2JvX3Bpbl9yZXNlcnZlZCh2Ym8sIGZhbHNlKTsNCj4gQEAgLTEwNjEsNyArMTA2Miw3 IEBAIHZvaWQgdm13X3Jlc291cmNlX2RpcnR5X3VwZGF0ZShzdHJ1Y3Qgdm13X3Jlc291cmNl ICpyZXMsIHBnb2ZmX3Qgc3RhcnQsDQo+ICAgICogQG51bV9wcmVmYXVsdDogUmV0dXJucyBo b3cgbWFueSBwYWdlcyBpbmNsdWRpbmcgdGhlIGZpcnN0IGhhdmUgYmVlbg0KPiAgICAqIGNs ZWFuZWQgYW5kIGFyZSBvayB0byBwcmVmYXVsdA0KPiAgICAqLw0KPiAtaW50IHZtd19yZXNv dXJjZXNfY2xlYW4oc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8sIHBnb2ZmX3Qgc3Rh cnQsDQo+ICtpbnQgdm13X3Jlc291cmNlc19jbGVhbihzdHJ1Y3Qgdm13X2JvICp2Ym8sIHBn b2ZmX3Qgc3RhcnQsDQo+ICAgCQkJcGdvZmZfdCBlbmQsIHBnb2ZmX3QgKm51bV9wcmVmYXVs dCkNCj4gICB7DQo+ICAgCXN0cnVjdCByYl9ub2RlICpjdXIgPSB2Ym8tPnJlc190cmVlLnJi X25vZGU7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9z Y3JuLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zY3JuLmMNCj4gaW5kZXgg ZTUxYTYzYzA1OTQzLi5hMDQ4OTdmMDRjMTMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3Njcm4uYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9zY3JuLmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAgLy8gU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUDQo+ICAgLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqDQo+ICAgICoNCj4gLSAqIENvcHlyaWdodCAyMDExLTIwMjIgVk13YXJlLCBJbmMuLCBQ YWxvIEFsdG8sIENBLiwgVVNBDQo+ICsgKiBDb3B5cmlnaHQgMjAxMS0yMDIzIFZNd2FyZSwg SW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiAgICAqDQo+ICAgICogUGVybWlzc2lvbiBp cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGENCj4gICAgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+IEBAIC0yNSwxMyArMjUsMTQgQEANCj4gICAgKg0K PiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8NCj4gICANCj4gKyNpbmNsdWRlICJ2bXdnZnhf Ym8uaCINCj4gKyNpbmNsdWRlICJ2bXdnZnhfa21zLmgiDQo+ICsNCj4gICAjaW5jbHVkZSA8 ZHJtL2RybV9hdG9taWMuaD4NCj4gICAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVy Lmg+DQo+ICAgI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPg0KPiAgICNpbmNs dWRlIDxkcm0vZHJtX2ZvdXJjYy5oPg0KPiAgIA0KPiAtI2luY2x1ZGUgInZtd2dmeF9rbXMu aCINCj4gLQ0KPiAgICNkZWZpbmUgdm13X2NydGNfdG9fc291KHgpIFwNCj4gICAJY29udGFp bmVyX29mKHgsIHN0cnVjdCB2bXdfc2NyZWVuX29iamVjdF91bml0LCBiYXNlLmNydGMpDQo+ ICAgI2RlZmluZSB2bXdfZW5jb2Rlcl90b19zb3UoeCkgXA0KPiBAQCAtODksNyArOTAsNyBA QCBzdHJ1Y3Qgdm13X3NjcmVlbl9vYmplY3RfdW5pdCB7DQo+ICAgCXN0cnVjdCB2bXdfZGlz cGxheV91bml0IGJhc2U7DQo+ICAgDQo+ICAgCXVuc2lnbmVkIGxvbmcgYnVmZmVyX3NpemU7 IC8qKjwgU2l6ZSBvZiBhbGxvY2F0ZWQgYnVmZmVyICovDQo+IC0Jc3RydWN0IHZtd19idWZm ZXJfb2JqZWN0ICpidWZmZXI7IC8qKjwgQmFja2luZyBzdG9yZSBidWZmZXIgKi8NCj4gKwlz dHJ1Y3Qgdm13X2JvICpidWZmZXI7IC8qKjwgQmFja2luZyBzdG9yZSBidWZmZXIgKi8NCj4g ICANCj4gICAJYm9vbCBkZWZpbmVkOw0KPiAgIH07DQo+IEBAIC05NDcsNyArOTQ4LDcgQEAg aW50IHZtd19rbXNfc291X2luaXRfZGlzcGxheShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9w cml2KQ0KPiAgIHN0YXRpYyBpbnQgZG9fYm9fZGVmaW5lX2dtcmZiKHN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYsDQo+ICAgCQkJCSAgc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqZnJh bWVidWZmZXIpDQo+ICAgew0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYnVmID0N Cj4gKwlzdHJ1Y3Qgdm13X2JvICpidWYgPQ0KPiAgIAkJY29udGFpbmVyX29mKGZyYW1lYnVm ZmVyLCBzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyX2JvLA0KPiAgIAkJCSAgICAgYmFzZSktPmJ1 ZmZlcjsNCj4gICAJaW50IGRlcHRoID0gZnJhbWVidWZmZXItPmJhc2UuZm9ybWF0LT5kZXB0 aDsNCj4gQEAgLTEyMTYsNyArMTIxNyw3IEBAIGludCB2bXdfa21zX3NvdV9kb19ib19kaXJ0 eShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgIAkJCQlzdHJ1Y3Qgdm13X2Zl bmNlX29iaiAqKm91dF9mZW5jZSwNCj4gICAJCQkJc3RydWN0IGRybV9jcnRjICpjcnRjKQ0K PiAgIHsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJ1ZiA9DQo+ICsJc3RydWN0 IHZtd19ibyAqYnVmID0NCj4gICAJCWNvbnRhaW5lcl9vZihmcmFtZWJ1ZmZlciwgc3RydWN0 IHZtd19mcmFtZWJ1ZmZlcl9ibywNCj4gICAJCQkgICAgIGJhc2UpLT5idWZmZXI7DQo+ICAg CXN0cnVjdCB2bXdfa21zX2RpcnR5IGRpcnR5Ow0KPiBAQCAtMTMyMyw3ICsxMzI0LDcgQEAg aW50IHZtd19rbXNfc291X3JlYWRiYWNrKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYs DQo+ICAgCQkJIHVpbnQzMl90IG51bV9jbGlwcywNCj4gICAJCQkgc3RydWN0IGRybV9jcnRj ICpjcnRjKQ0KPiAgIHsNCj4gLQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJ1ZiA9DQo+ ICsJc3RydWN0IHZtd19ibyAqYnVmID0NCj4gICAJCWNvbnRhaW5lcl9vZih2ZmIsIHN0cnVj dCB2bXdfZnJhbWVidWZmZXJfYm8sIGJhc2UpLT5idWZmZXI7DQo+ICAgCXN0cnVjdCB2bXdf a21zX2RpcnR5IGRpcnR5Ow0KPiAgIAlERUNMQVJFX1ZBTF9DT05URVhUKHZhbF9jdHgsIE5V TEwsIDApOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf c2hhZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zaGFkZXIuYw0KPiBp bmRleCA5M2IxNDAwYWVkNGEuLmIxODZkMDk5M2Q4MyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMNCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAgLy8g U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUDQo+ICAgLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqDQo+ICAgICoNCj4gLSAqIENvcHlyaWdodCAyMDA5LTIwMTUgVk13YXJl LCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNBDQo+ICsgKiBDb3B5cmlnaHQgMjAwOS0yMDIz IFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiAgICAqDQo+ICAgICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24gb2J0YWluaW5nIGENCj4gICAgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+IEBAIC0yNyw5ICsyNywxMCBAQA0K PiAgIA0KPiAgICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1lbnQuaD4NCj4gICANCj4g KyNpbmNsdWRlICJ2bXdnZnhfYmluZGluZy5oIg0KPiArI2luY2x1ZGUgInZtd2dmeF9iby5o Ig0KPiAgICNpbmNsdWRlICJ2bXdnZnhfZHJ2LmgiDQo+ICAgI2luY2x1ZGUgInZtd2dmeF9y ZXNvdXJjZV9wcml2LmgiDQo+IC0jaW5jbHVkZSAidm13Z2Z4X2JpbmRpbmcuaCINCj4gICAN Cj4gICBzdHJ1Y3Qgdm13X3NoYWRlciB7DQo+ICAgCXN0cnVjdCB2bXdfcmVzb3VyY2UgcmVz Ow0KPiBAQCAtMTU4LDcgKzE1OSw3IEBAIHN0YXRpYyBpbnQgdm13X2diX3NoYWRlcl9pbml0 KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgCQkJICAgICAgU1ZHQTNkU2hh ZGVyVHlwZSB0eXBlLA0KPiAgIAkJCSAgICAgIHVpbnQ4X3QgbnVtX2lucHV0X3NpZywNCj4g ICAJCQkgICAgICB1aW50OF90IG51bV9vdXRwdXRfc2lnLA0KPiAtCQkJICAgICAgc3RydWN0 IHZtd19idWZmZXJfb2JqZWN0ICpieXRlX2NvZGUsDQo+ICsJCQkgICAgICBzdHJ1Y3Qgdm13 X2JvICpieXRlX2NvZGUsDQo+ICAgCQkJICAgICAgdm9pZCAoKnJlc19mcmVlKSAoc3RydWN0 IHZtd19yZXNvdXJjZSAqcmVzKSkNCj4gICB7DQo+ICAgCXN0cnVjdCB2bXdfc2hhZGVyICpz aGFkZXIgPSB2bXdfcmVzX3RvX3NoYWRlcihyZXMpOw0KPiBAQCAtNjgwLDcgKzY4MSw3IEBA IGludCB2bXdfc2hhZGVyX2Rlc3Ryb3lfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwNCj4gICB9DQo+ICAgDQo+ICAgc3RhdGljIGludCB2bXdfdXNlcl9zaGFk ZXJfYWxsb2Moc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwNCj4gLQkJCQkgc3RydWN0 IHZtd19idWZmZXJfb2JqZWN0ICpidWZmZXIsDQo+ICsJCQkJIHN0cnVjdCB2bXdfYm8gKmJ1 ZmZlciwNCj4gICAJCQkJIHNpemVfdCBzaGFkZXJfc2l6ZSwNCj4gICAJCQkJIHNpemVfdCBv ZmZzZXQsDQo+ICAgCQkJCSBTVkdBM2RTaGFkZXJUeXBlIHNoYWRlcl90eXBlLA0KPiBAQCAt NzM0LDcgKzczNSw3IEBAIHN0YXRpYyBpbnQgdm13X3VzZXJfc2hhZGVyX2FsbG9jKHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ICAgDQo+ICAgDQo+ICAgc3RhdGljIHN0cnVj dCB2bXdfcmVzb3VyY2UgKnZtd19zaGFkZXJfYWxsb2Moc3RydWN0IHZtd19wcml2YXRlICpk ZXZfcHJpdiwNCj4gLQkJCQkJICAgICBzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3QgKmJ1ZmZl ciwNCj4gKwkJCQkJICAgICBzdHJ1Y3Qgdm13X2JvICpidWZmZXIsDQo+ICAgCQkJCQkgICAg IHNpemVfdCBzaGFkZXJfc2l6ZSwNCj4gICAJCQkJCSAgICAgc2l6ZV90IG9mZnNldCwNCj4g ICAJCQkJCSAgICAgU1ZHQTNkU2hhZGVyVHlwZSBzaGFkZXJfdHlwZSkNCj4gQEAgLTc3MSw3 ICs3NzIsNyBAQCBzdGF0aWMgaW50IHZtd19zaGFkZXJfZGVmaW5lKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LA0KPiAgIHsNCj4gICAJc3Ry dWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHZtd19wcml2KGRldik7DQo+ICAgCXN0cnVj dCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxlID0gdm13X2Zwcml2KGZpbGVfcHJpdiktPnRmaWxl Ow0KPiAtCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqYnVmZmVyID0gTlVMTDsNCj4gKwlz dHJ1Y3Qgdm13X2JvICpidWZmZXIgPSBOVUxMOw0KPiAgIAlTVkdBM2RTaGFkZXJUeXBlIHNo YWRlcl90eXBlOw0KPiAgIAlpbnQgcmV0Ow0KPiAgIA0KPiBAQCAtODgzLDcgKzg4NCw3IEBA IGludCB2bXdfY29tcGF0X3NoYWRlcl9hZGQoc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJp diwNCj4gICAJCQkgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpDQo+ICAgew0KPiAgIAlzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgdHJ1ZSB9Ow0KPiAtCXN0cnVj dCB2bXdfYnVmZmVyX29iamVjdCAqYnVmOw0KPiArCXN0cnVjdCB2bXdfYm8gKmJ1ZjsNCj4g ICAJc3RydWN0IHR0bV9ib19rbWFwX29iaiBtYXA7DQo+ICAgCWJvb2wgaXNfaW9tZW07DQo+ ICAgCWludCByZXQ7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9zdGR1LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMNCj4g aW5kZXggMDA5MGFiZTg5MjU0Li40NzQ1NTM3ZmVkMjUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAgLy8gU1BE WC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUDQo+ICAgLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKg0KPiAgICAqDQo+IC0gKiBDT1BZUklHSFQgKEMpIDIwMTQtMjAyMiBW TXdhcmUsIEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0ENCj4gKyAqIENPUFlSSUdIVCAoQykg MjAxNC0yMDIzIFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiAgICAqDQo+ ICAgICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGENCj4gICAgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+IEBAIC0yNSwxNCAr MjUsMTUgQEANCj4gICAgKg0KPiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQo+ICAg DQo+ICsjaW5jbHVkZSAidm13Z2Z4X2JvLmgiDQo+ICsjaW5jbHVkZSAidm13Z2Z4X2ttcy5o Ig0KPiArI2luY2x1ZGUgInZtd19zdXJmYWNlX2NhY2hlLmgiDQo+ICsNCj4gICAjaW5jbHVk ZSA8ZHJtL2RybV9hdG9taWMuaD4NCj4gICAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVs cGVyLmg+DQo+ICAgI2luY2x1ZGUgPGRybS9kcm1fZGFtYWdlX2hlbHBlci5oPg0KPiAgICNp bmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPg0KPiAgIA0KPiAtI2luY2x1ZGUgInZtd2dmeF9r bXMuaCINCj4gLSNpbmNsdWRlICJ2bXdfc3VyZmFjZV9jYWNoZS5oIg0KPiAtDQo+ICAgI2Rl ZmluZSB2bXdfY3J0Y190b19zdGR1KHgpIFwNCj4gICAJY29udGFpbmVyX29mKHgsIHN0cnVj dCB2bXdfc2NyZWVuX3RhcmdldF9kaXNwbGF5X3VuaXQsIGJhc2UuY3J0YykNCj4gICAjZGVm aW5lIHZtd19lbmNvZGVyX3RvX3N0ZHUoeCkgXA0KPiBAQCAtNzAsNyArNzEsNyBAQCBzdHJ1 Y3Qgdm13X3N0ZHVfZGlydHkgew0KPiAgIAlzMzIgZmJfbGVmdCwgZmJfdG9wOw0KPiAgIAl1 MzIgcGl0Y2g7DQo+ICAgCXVuaW9uIHsNCj4gLQkJc3RydWN0IHZtd19idWZmZXJfb2JqZWN0 ICpidWY7DQo+ICsJCXN0cnVjdCB2bXdfYm8gKmJ1ZjsNCj4gICAJCXUzMiBzaWQ7DQo+ICAg CX07DQo+ICAgfTsNCj4gQEAgLTY4OCw3ICs2ODksNyBAQCBpbnQgdm13X2ttc19zdGR1X2Rt YShzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2LA0KPiAgIAkJICAgICBib29sIGludGVy cnVwdGlibGUsDQo+ICAgCQkgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gICB7DQo+ IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpidWYgPQ0KPiArCXN0cnVjdCB2bXdfYm8g KmJ1ZiA9DQo+ICAgCQljb250YWluZXJfb2YodmZiLCBzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVy X2JvLCBiYXNlKS0+YnVmZmVyOw0KPiAgIAlzdHJ1Y3Qgdm13X3N0ZHVfZGlydHkgZGRpcnR5 Ow0KPiAgIAlpbnQgcmV0Ow0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfc3RyZWFtb3V0cHV0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dm eF9zdHJlYW1vdXRwdXQuYw0KPiBpbmRleCAyZGU5NzQxOWQ1YzkuLjcxY2U4OTE1MGJhNyAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RyZWFtb3V0 cHV0LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RyZWFtb3V0 cHV0LmMNCj4gQEAgLTEsNyArMSw3IEBADQo+ICAgLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAgT1IgTUlUDQo+ICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ICAgICoN Cj4gLSAqIENvcHlyaWdodCDCqSAyMDE4LTIwMTkgVk13YXJlLCBJbmMuLCBQYWxvIEFsdG8s IENBLiwgVVNBDQo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOC0yMDIzIFZNd2FyZSwgSW5jLiwg UGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiAgICAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQo+ICAg ICoNCj4gICAgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQ0KPiBAQCAtMjYsMTEgKzI2LDEyIEBADQo+ ICAgICoNCj4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQo+ICAgDQo+IC0jaW5jbHVkZSA8 ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+DQo+IC0NCj4gKyNpbmNsdWRlICJ2bXdnZnhfYmlu ZGluZy5oIg0KPiArI2luY2x1ZGUgInZtd2dmeF9iby5oIg0KPiAgICNpbmNsdWRlICJ2bXdn ZnhfZHJ2LmgiDQo+ICAgI2luY2x1ZGUgInZtd2dmeF9yZXNvdXJjZV9wcml2LmgiDQo+IC0j aW5jbHVkZSAidm13Z2Z4X2JpbmRpbmcuaCINCj4gKw0KPiArI2luY2x1ZGUgPGRybS90dG0v dHRtX3BsYWNlbWVudC5oPg0KPiAgIA0KPiAgIC8qKg0KPiAgICAqIHN0cnVjdCB2bXdfZHhf c3RyZWFtb3V0cHV0IC0gU3RyZWFtb3V0cHV0IHJlc291cmNlIG1ldGFkYXRhLg0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jDQo+IGluZGV4IDNiYzYzYWU3 NjhmMy4uMjk2ZDkwM2M1YWNiIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfc3VyZmFjZS5jDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgIC8vIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIE1JVA0KPiAgIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Kg0KPiAgICAqDQo+IC0gKiBDb3B5cmlnaHQgMjAwOS0yMDE1IFZNd2FyZSwgSW5jLiwgUGFs byBBbHRvLCBDQS4sIFVTQQ0KPiArICogQ29weXJpZ2h0IDIwMDktMjAyMyBWTXdhcmUsIElu Yy4sIFBhbG8gQWx0bywgQ0EuLCBVU0ENCj4gICAgKg0KPiAgICAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhDQo+ICAgICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZQ0KPiBAQCAtMjUsOCArMjUsNyBAQA0KPiAgICAqDQo+ICAg ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLw0KPiAgIA0KPiAtI2luY2x1ZGUgPGRybS90dG0vdHRt X3BsYWNlbWVudC5oPg0KPiAtDQo+ICsjaW5jbHVkZSAidm13Z2Z4X2JvLmgiDQo+ICAgI2lu Y2x1ZGUgInZtd2dmeF9kcnYuaCINCj4gICAjaW5jbHVkZSAidm13Z2Z4X3Jlc291cmNlX3By aXYuaCINCj4gICAjaW5jbHVkZSAidm13Z2Z4X3NvLmgiDQo+IEBAIC0zNCw2ICszMyw4IEBA DQo+ICAgI2luY2x1ZGUgInZtd19zdXJmYWNlX2NhY2hlLmgiDQo+ICAgI2luY2x1ZGUgImRl dmljZV9pbmNsdWRlL3N2Z2EzZF9zdXJmYWNlZGVmcy5oIg0KPiAgIA0KPiArI2luY2x1ZGUg PGRybS90dG0vdHRtX3BsYWNlbWVudC5oPg0KPiArDQo+ICAgI2RlZmluZSBTVkdBM0RfRkxB R1NfNjQodXBwZXIzMiwgbG93ZXIzMikgKCgodWludDY0X3QpdXBwZXIzMiA8PCAzMikgfCBs b3dlcjMyKQ0KPiAgICNkZWZpbmUgU1ZHQTNEX0ZMQUdTX1VQUEVSXzMyKHN2Z2EzZF9mbGFn cykgKHN2Z2EzZF9mbGFncyA+PiAzMikNCj4gICAjZGVmaW5lIFNWR0EzRF9GTEFHU19MT1dF Ul8zMihzdmdhM2RfZmxhZ3MpIFwNCj4gQEAgLTE1MjksNyArMTUzMCw3IEBAIHZtd19nYl9z dXJmYWNlX2RlZmluZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KPiAgIAl9 DQo+ICAgDQo+ICAgCWlmIChyZXEtPmJhc2UuZHJtX3N1cmZhY2VfZmxhZ3MgJiBkcm1fdm13 X3N1cmZhY2VfZmxhZ19jb2hlcmVudCkgew0KPiAtCQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmpl Y3QgKmJhY2t1cCA9IHJlcy0+YmFja3VwOw0KPiArCQlzdHJ1Y3Qgdm13X2JvICpiYWNrdXAg PSByZXMtPmJhY2t1cDsNCj4gICANCj4gICAJCXR0bV9ib19yZXNlcnZlKCZiYWNrdXAtPmJh c2UsIGZhbHNlLCBmYWxzZSwgTlVMTCk7DQo+ICAgCQlpZiAoIXJlcy0+ZnVuYy0+ZGlydHlf YWxsb2MpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90 dG1fYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVy LmMNCj4gaW5kZXggNGUzOTM4ZTYyYzA4Li40MTQ4MGFmODcyNTUgMTAwNjQ0DQo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9idWZmZXIuYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMNCj4gQEAgLTEsNyAr MSw3IEBADQo+ICAgLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlU DQo+ICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqDQo+ICAgICoNCj4gLSAqIENvcHlyaWdodCAy MDA5LTIwMTUgVk13YXJlLCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNBDQo+ICsgKiBDb3B5 cmlnaHQgMjAwOS0yMDIzIFZNd2FyZSwgSW5jLiwgUGFsbyBBbHRvLCBDQS4sIFVTQQ0KPiAg ICAqDQo+ICAgICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFy Z2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGENCj4gICAgKiBjb3B5IG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+IEBAIC0y NSw2ICsyNSw3IEBADQo+ICAgICoNCj4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQo+ICAg DQo+ICsjaW5jbHVkZSAidm13Z2Z4X2JvLmgiDQo+ICAgI2luY2x1ZGUgInZtd2dmeF9kcnYu aCINCj4gICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+DQo+ICAgI2luY2x1 ZGUgPGRybS90dG0vdHRtX3BsYWNlbWVudC5oPg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFsaWRhdGlvbi5jIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfdmFsaWRhdGlvbi5jDQo+IGluZGV4IGY1YzRhNDBmYjE2ZC4uNzcwYjFi NTNiZGU3IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF92 YWxpZGF0aW9uLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdmFs aWRhdGlvbi5jDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgIC8vIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wIE9SIE1JVA0KPiAgIC8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPiAg ICAqDQo+IC0gKiBDb3B5cmlnaHQgwqkgMjAxOCAtIDIwMjIgVk13YXJlLCBJbmMuLCBQYWxv IEFsdG8sIENBLiwgVVNBDQo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOCAtIDIwMjMgVk13YXJl LCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNBDQo+ICAgICogQWxsIFJpZ2h0cyBSZXNlcnZl ZC4NCj4gICAgKg0KPiAgICAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhDQo+IEBAIC0yNSw5ICsyNSwx MSBAQA0KPiAgICAqIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuDQo+ ICAgICoNCj4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQo+IC0jaW5jbHVkZSA8bGludXgv c2xhYi5oPg0KPiAtI2luY2x1ZGUgInZtd2dmeF92YWxpZGF0aW9uLmgiDQo+ICsjaW5jbHVk ZSAidm13Z2Z4X2JvLmgiDQo+ICAgI2luY2x1ZGUgInZtd2dmeF9kcnYuaCINCj4gKyNpbmNs dWRlICJ2bXdnZnhfdmFsaWRhdGlvbi5oIg0KPiArDQo+ICsjaW5jbHVkZSA8bGludXgvc2xh Yi5oPg0KPiAgIA0KPiAgIA0KPiAgICNkZWZpbmUgVk1XR0ZYX1ZBTElEQVRJT05fTUVNX0dS QU4gKDE2KlBBR0VfU0laRSkNCj4gQEAgLTc3LDcgKzc5LDcgQEAgc3RydWN0IHZtd192YWxp ZGF0aW9uX3Jlc19ub2RlIHsNCj4gICAJc3RydWN0IGxpc3RfaGVhZCBoZWFkOw0KPiAgIAlz dHJ1Y3Qgdm13Z2Z4X2hhc2hfaXRlbSBoYXNoOw0KPiAgIAlzdHJ1Y3Qgdm13X3Jlc291cmNl ICpyZXM7DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpuZXdfYmFja3VwOw0KPiAr CXN0cnVjdCB2bXdfYm8gKm5ld19iYWNrdXA7DQo+ICAgCXVuc2lnbmVkIGxvbmcgbmV3X2Jh Y2t1cF9vZmZzZXQ7DQo+ICAgCXUzMiBub19idWZmZXJfbmVlZGVkIDogMTsNCj4gICAJdTMy IHN3aXRjaGluZ19iYWNrdXAgOiAxOw0KPiBAQCAtMTczLDcgKzE3NSw3IEBAIHN0YXRpYyB2 b2lkIHZtd192YWxpZGF0aW9uX21lbV9mcmVlKHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250 ZXh0ICpjdHgpDQo+ICAgICovDQo+ICAgc3RhdGljIHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9i b19ub2RlICoNCj4gICB2bXdfdmFsaWRhdGlvbl9maW5kX2JvX2R1cChzdHJ1Y3Qgdm13X3Zh bGlkYXRpb25fY29udGV4dCAqY3R4LA0KPiAtCQkJICAgc3RydWN0IHZtd19idWZmZXJfb2Jq ZWN0ICp2Ym8pDQo+ICsJCQkgICBzdHJ1Y3Qgdm13X2JvICp2Ym8pDQo+ICAgew0KPiAgIAlz dHJ1Y3QgIHZtd192YWxpZGF0aW9uX2JvX25vZGUgKmJvX25vZGUgPSBOVUxMOw0KPiAgIA0K PiBAQCAtMjY0LDcgKzI2Niw3IEBAIHZtd192YWxpZGF0aW9uX2ZpbmRfcmVzX2R1cChzdHJ1 Y3Qgdm13X3ZhbGlkYXRpb25fY29udGV4dCAqY3R4LA0KPiAgICAqIFJldHVybjogWmVybyBv biBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG90aGVyd2lzZS4NCj4gICAgKi8NCj4g ICBpbnQgdm13X3ZhbGlkYXRpb25fYWRkX2JvKHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250 ZXh0ICpjdHgsDQo+IC0JCQkgIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvLA0KPiAr CQkJICBzdHJ1Y3Qgdm13X2JvICp2Ym8sDQo+ICAgCQkJICBib29sIGFzX21vYiwNCj4gICAJ CQkgIGJvb2wgY3B1X2JsaXQpDQo+ICAgew0KPiBAQCAtNDEwLDcgKzQxMiw3IEBAIHZvaWQg dm13X3ZhbGlkYXRpb25fcmVzX3NldF9kaXJ0eShzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25fY29u dGV4dCAqY3R4LA0KPiAgICAqLw0KPiAgIHZvaWQgdm13X3ZhbGlkYXRpb25fcmVzX3N3aXRj aF9iYWNrdXAoc3RydWN0IHZtd192YWxpZGF0aW9uX2NvbnRleHQgKmN0eCwNCj4gICAJCQkJ ICAgICAgdm9pZCAqdmFsX3ByaXZhdGUsDQo+IC0JCQkJICAgICAgc3RydWN0IHZtd19idWZm ZXJfb2JqZWN0ICp2Ym8sDQo+ICsJCQkJICAgICAgc3RydWN0IHZtd19ibyAqdmJvLA0KPiAg IAkJCQkgICAgICB1bnNpZ25lZCBsb25nIGJhY2t1cF9vZmZzZXQpDQo+ICAgew0KPiAgIAlz dHJ1Y3Qgdm13X3ZhbGlkYXRpb25fcmVzX25vZGUgKnZhbDsNCj4gQEAgLTQ1MSw3ICs0NTMs NyBAQCBpbnQgdm13X3ZhbGlkYXRpb25fcmVzX3Jlc2VydmUoc3RydWN0IHZtd192YWxpZGF0 aW9uX2NvbnRleHQgKmN0eCwNCj4gICANCj4gICAJCXZhbC0+cmVzZXJ2ZWQgPSAxOw0KPiAg IAkJaWYgKHJlcy0+YmFja3VwKSB7DQo+IC0JCQlzdHJ1Y3Qgdm13X2J1ZmZlcl9vYmplY3Qg KnZibyA9IHJlcy0+YmFja3VwOw0KPiArCQkJc3RydWN0IHZtd19ibyAqdmJvID0gcmVzLT5i YWNrdXA7DQo+ICAgDQo+ICAgCQkJcmV0ID0gdm13X3ZhbGlkYXRpb25fYWRkX2JvDQo+ICAg CQkJCShjdHgsIHZibywgdm13X3Jlc291cmNlX25lZWRzX2JhY2t1cChyZXMpLA0KPiBAQCAt NTI2LDggKzUyOCw4IEBAIGludCB2bXdfdmFsaWRhdGlvbl9ib192YWxpZGF0ZV9zaW5nbGUo c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywNCj4gICAJCQkJICAgICAgYm9vbCBpbnRl cnJ1cHRpYmxlLA0KPiAgIAkJCQkgICAgICBib29sIHZhbGlkYXRlX2FzX21vYikNCj4gICB7 DQo+IC0Jc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICp2Ym8gPQ0KPiAtCQljb250YWluZXJf b2YoYm8sIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCwgYmFzZSk7DQo+ICsJc3RydWN0IHZt d19ibyAqdmJvID0NCj4gKwkJY29udGFpbmVyX29mKGJvLCBzdHJ1Y3Qgdm13X2JvLCBiYXNl KTsNCj4gICAJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsNCj4gICAJCS5pbnRl cnJ1cHRpYmxlID0gaW50ZXJydXB0aWJsZSwNCj4gICAJCS5ub193YWl0X2dwdSA9IGZhbHNl DQo+IEBAIC01NzgsNyArNTgwLDcgQEAgaW50IHZtd192YWxpZGF0aW9uX2JvX3ZhbGlkYXRl KHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250ZXh0ICpjdHgsIGJvb2wgaW50cikNCj4gICAJ aW50IHJldDsNCj4gICANCj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgJmN0eC0+ Ym9fbGlzdCwgYmFzZS5oZWFkKSB7DQo+IC0JCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAq dmJvID0NCj4gKwkJc3RydWN0IHZtd19ibyAqdmJvID0NCj4gICAJCQljb250YWluZXJfb2Yo ZW50cnktPmJhc2UuYm8sIHR5cGVvZigqdmJvKSwgYmFzZSk7DQo+ICAgDQo+ICAgCQlpZiAo ZW50cnktPmNwdV9ibGl0KSB7DQo+IEBAIC02MzksNyArNjQxLDcgQEAgaW50IHZtd192YWxp ZGF0aW9uX3Jlc192YWxpZGF0ZShzdHJ1Y3Qgdm13X3ZhbGlkYXRpb25fY29udGV4dCAqY3R4 LCBib29sIGludHIpDQo+ICAgDQo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnkodmFsLCAmY3R4 LT5yZXNvdXJjZV9saXN0LCBoZWFkKSB7DQo+ICAgCQlzdHJ1Y3Qgdm13X3Jlc291cmNlICpy ZXMgPSB2YWwtPnJlczsNCj4gLQkJc3RydWN0IHZtd19idWZmZXJfb2JqZWN0ICpiYWNrdXAg PSByZXMtPmJhY2t1cDsNCj4gKwkJc3RydWN0IHZtd19ibyAqYmFja3VwID0gcmVzLT5iYWNr dXA7DQo+ICAgDQo+ICAgCQlyZXQgPSB2bXdfcmVzb3VyY2VfdmFsaWRhdGUocmVzLCBpbnRy LCB2YWwtPmRpcnR5X3NldCAmJg0KPiAgIAkJCQkJICAgIHZhbC0+ZGlydHkpOw0KPiBAQCAt NjUxLDcgKzY1Myw3IEBAIGludCB2bXdfdmFsaWRhdGlvbl9yZXNfdmFsaWRhdGUoc3RydWN0 IHZtd192YWxpZGF0aW9uX2NvbnRleHQgKmN0eCwgYm9vbCBpbnRyKQ0KPiAgIA0KPiAgIAkJ LyogQ2hlY2sgaWYgdGhlIHJlc291cmNlIHN3aXRjaGVkIGJhY2t1cCBidWZmZXIgKi8NCj4g ICAJCWlmIChiYWNrdXAgJiYgcmVzLT5iYWNrdXAgJiYgKGJhY2t1cCAhPSByZXMtPmJhY2t1 cCkpIHsNCj4gLQkJCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvID0gcmVzLT5iYWNr dXA7DQo+ICsJCQlzdHJ1Y3Qgdm13X2JvICp2Ym8gPSByZXMtPmJhY2t1cDsNCj4gICANCj4g ICAJCQlyZXQgPSB2bXdfdmFsaWRhdGlvbl9hZGRfYm8NCj4gICAJCQkJKGN0eCwgdmJvLCB2 bXdfcmVzb3VyY2VfbmVlZHNfYmFja3VwKHJlcyksDQo+IEBAIC04ODksNyArODkxLDcgQEAg dm9pZCB2bXdfdmFsaWRhdGlvbl9ib19iYWNrb2ZmKHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9j b250ZXh0ICpjdHgpDQo+ICAgCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50cnksICZjdHgtPmJv X2xpc3QsIGJhc2UuaGVhZCkgew0KPiAgIAkJaWYgKGVudHJ5LT5jb2hlcmVudF9jb3VudCkg ew0KPiAgIAkJCXVuc2lnbmVkIGludCBjb2hlcmVudF9jb3VudCA9IGVudHJ5LT5jb2hlcmVu dF9jb3VudDsNCj4gLQkJCXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAqdmJvID0NCj4gKwkJ CXN0cnVjdCB2bXdfYm8gKnZibyA9DQo+ICAgCQkJCWNvbnRhaW5lcl9vZihlbnRyeS0+YmFz ZS5ibywgdHlwZW9mKCp2Ym8pLA0KPiAgIAkJCQkJICAgICBiYXNlKTsNCj4gICANCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaCBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaA0KPiBpbmRleCBh YjllYzIyNmY0MzMuLjRhYTRmNzAwYzY1ZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfdmFsaWRhdGlvbi5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaA0KPiBAQCAtNzMsNyArNzMsNyBAQCBzdHJ1 Y3Qgdm13X3ZhbGlkYXRpb25fY29udGV4dCB7DQo+ICAgCXNpemVfdCB0b3RhbF9tZW07DQo+ ICAgfTsNCj4gICANCj4gLXN0cnVjdCB2bXdfYnVmZmVyX29iamVjdDsNCj4gK3N0cnVjdCB2 bXdfYm87DQo+ICAgc3RydWN0IHZtd19yZXNvdXJjZTsNCj4gICBzdHJ1Y3Qgdm13X2ZlbmNl X29iajsNCj4gICANCj4gQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgaW5saW5lIHVuc2ln bmVkIGludCB2bXdfdmFsaWRhdGlvbl9hbGlnbih1bnNpZ25lZCBpbnQgdmFsKQ0KPiAgIH0N Cj4gICANCj4gICBpbnQgdm13X3ZhbGlkYXRpb25fYWRkX2JvKHN0cnVjdCB2bXdfdmFsaWRh dGlvbl9jb250ZXh0ICpjdHgsDQo+IC0JCQkgIHN0cnVjdCB2bXdfYnVmZmVyX29iamVjdCAq dmJvLA0KPiArCQkJICBzdHJ1Y3Qgdm13X2JvICp2Ym8sDQo+ICAgCQkJICBib29sIGFzX21v YiwgYm9vbCBjcHVfYmxpdCk7DQo+ICAgaW50IHZtd192YWxpZGF0aW9uX2JvX3ZhbGlkYXRl X3NpbmdsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLA0KPiAgIAkJCQkgICAgICBi b29sIGludGVycnVwdGlibGUsDQo+IEBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCB2bXdfdmFs aWRhdGlvbl9yZXNfdW5yZXNlcnZlKHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250ZXh0ICpj dHgsDQo+ICAgCQkJCSAgYm9vbCBiYWNrb2ZmKTsNCj4gICB2b2lkIHZtd192YWxpZGF0aW9u X3Jlc19zd2l0Y2hfYmFja3VwKHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250ZXh0ICpjdHgs DQo+ICAgCQkJCSAgICAgIHZvaWQgKnZhbF9wcml2YXRlLA0KPiAtCQkJCSAgICAgIHN0cnVj dCB2bXdfYnVmZmVyX29iamVjdCAqdmJvLA0KPiArCQkJCSAgICAgIHN0cnVjdCB2bXdfYm8g KnZibywNCj4gICAJCQkJICAgICAgdW5zaWduZWQgbG9uZyBiYWNrdXBfb2Zmc2V0KTsNCj4g ICBpbnQgdm13X3ZhbGlkYXRpb25fcmVzX3ZhbGlkYXRlKHN0cnVjdCB2bXdfdmFsaWRhdGlv bl9jb250ZXh0ICpjdHgsIGJvb2wgaW50cik7DQo+ICAgDQoNCi0tIA0KVGhvbWFzIFppbW1l cm1hbm4NCkdyYXBoaWNzIERyaXZlciBEZXZlbG9wZXINClNVU0UgU29mdHdhcmUgU29sdXRp b25zIEdlcm1hbnkgR21iSA0KTWF4ZmVsZHN0ci4gNSwgOTA0MDkgTsO8cm5iZXJnLCBHZXJt YW55DQooSFJCIDM2ODA5LCBBRyBOw7xybmJlcmcpDQpHZXNjaMOkZnRzZsO8aHJlcjogSXZv IFRvdGV2DQo= --------------uNN4WECD10tye4EokckaOCNS-- --------------SQ5VmPufCKeRfpGAnmZcOb4l Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmPT1voFAwAAAAAACgkQlh/E3EQov+Al lw/9GwJ/v+1qJtuLkkKy9L33IwwokSS2QrKi6MyhRad78VhHDUL4VN3YAS7oA5KKx2IdgCNpNSaQ vFf+xqEmy58D2AUR48L/vdI0rCs/YjNfPveA4GI5mEOLeB2eBQwDZcYNZpgoCudWY4bhdalfSCLJ jBWdBcWmT6pa/7S4vtqpO8noajwRNm/l+rwQ16mMbbv+LeFKseEGYBu3IP/negZGLLZjIE7hFWES aZzEavXyEAsvsF4vuv06p/vgxg+YCn/0s1AKFBm8itts7wmpcXnOjQV2xlh+rNig1qUJVWMgOZrs L0PBVVHxDxgHFEZyr02qwIoVB2Mb3Y9yyYprgGfpUq/HyrlzAtn7J+0dcuJmZNoI9Zyg4aZA3UJR 2pWOL4p/027mnboJ3Pe2WLarn27CmqjHFVTror8rIO4kuLB080YRdHqUoY8vFvcNWuAVP3M2nGnJ psb2X/ZJWW98t2XudeVVQgI+AdmT54l6ZMQUpy9NEc5h0vLFunYLlG/xe9/V4byic1kBVTNN8lFm DvY9eUGH3v9BS3KQNLjTjtLcAj3qG6CYJuS8td52l3cIQpUgHkAOMA4q81rM5vIWbGIU5IIDDtic 68D8T09gOUP+ros9NLQ9LnCGVYjwaYEUvrna8Hvd3neI+Mp7xSRH6qBZv+5AXY/65WsFolDmNItZ 7qQ= =vY8h -----END PGP SIGNATURE----- --------------SQ5VmPufCKeRfpGAnmZcOb4l--