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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 6A65AC433F5 for ; Fri, 22 Apr 2022 14:44:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:Cc:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9ZRI4LG9n4tMgvzbitcn4eQiOzaP4uzE65v/ok75Nqs=; b=0gH53WPubk2zLJ CoDq7B/doBlQ8VqYzyH4BC/keR/TDK+A3579oJrdvuCfryXrUT8Uzzec4PKHCnVp4diKOc2ySLCGW lchCJBqSOcmjAN0yXzNvvhqNXD6SdsYFWoLDRHuPF6+fQYTpanO2XnpV/IyYQp6xwJx22tEK+ImJ1 pkY9YY9jObLPzx2LxH56hp7U0VY0g1L5FQ7Br0PyWDihTv2O+tMIQIi1GuLFRF7JIB6yAeWb8LcPS KXugdY5vcR7CTKNObefpGf9luO7pPZMgAPHFgs3/1hpTH63pwVVeW8mhkG2TCM/c0ZPqqSBqqVru0 l/sREv4i2l1ld34lv6hw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nhuWh-000sZa-3D; Fri, 22 Apr 2022 14:44:51 +0000 Received: from bhuna.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e3e3]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nhuWQ-000sTD-IC; Fri, 22 Apr 2022 14:44:37 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: nicolas) with ESMTPSA id E9C931F469B3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1650638666; bh=S7v7iRjGJvkHPp/PEUQlaEWZhPa9NmoHIWkx0UzjDLs=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=XH6SxRlgpELYa72iKSVS2mxFauMBkLkgNw8POnTk899OErh3ldIBta2MU44/fO0Iv DEgHkC06MSlg35tsZl5V+z5hciatqFYvhEj7+kTZRUISZQdEkxR/sR9VCTPaChtebp YGRtEAQ7jSrvxj4j/y8tXeaVmoTBGOMeovnCseqUcuRx/WA9McWyQ+8WB+bJpclF9E qPQDMtc6wy6AJpI3IKXr4Y+yluRTtf8zGEcV6+Bu/rbu42zbu0clFdig4cLvReoN/q 2GVrsj7rBt/a5a9XOTzubB9m40e3r1B8gVMOPAwLx3LkDgh5j2TqQqt/xo2dTNB1sS SwXeaaNjN6TpQ== Message-ID: <0df420cc2cf2f564260010c78c8307f83833e685.camel@collabora.com> Subject: Re: [PATCH v3 05/24] media: h264: Use v4l2_h264_reference for reflist From: Nicolas Dufresne To: Hans Verkuil , Tiffany Lin , Andrew-CT Chen , Mauro Carvalho Chehab , Ezequiel Garcia , Philipp Zabel , Greg Kroah-Hartman , Heiko Stuebner , Matthias Brugger Cc: kernel@collabora.com, linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Date: Fri, 22 Apr 2022 10:44:15 -0400 In-Reply-To: <0717023f-dffd-5891-53fd-e866dc319265@xs4all.nl> References: <20220405204426.259074-1-nicolas.dufresne@collabora.com> <20220405204426.259074-6-nicolas.dufresne@collabora.com> <0717023f-dffd-5891-53fd-e866dc319265@xs4all.nl> User-Agent: Evolution 3.44.0 (3.44.0-1.fc36) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220422_074434_897477_237A5C91 X-CRM114-Status: GOOD ( 29.54 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org TGUgdmVuZHJlZGkgMjIgYXZyaWwgMjAyMiDDoCAwODo1OSArMDIwMCwgSGFucyBWZXJrdWlsIGEg w6ljcml0wqA6Cj4gT24gMDUvMDQvMjAyMiAyMjo0NCwgTmljb2xhcyBEdWZyZXNuZSB3cm90ZToK PiA+IEluIHByZXBhcmF0aW9uIGZvciBhZGRpbmcgZmllbGQgZGVjb2Rpbmcgc3VwcG9ydCwgY29u dmVydCB0aGUgYnl0ZSBhcnJheXMKPiA+IGZvciByZWZsaXN0IGludG8gYXJyYXkgb2Ygc3RydWN0 IHY0bDJfaDI2NF9yZWZlcmVuY2UuIFRoYXQgc3RydWN0IHdpbGwKPiA+IGFsbG93IHVzIHRvIG1h cmsgd2hpY2ggZmllbGQgb2YgdGhlIHJlZmVyZW5jZSBwaWN0dXJlIGlzIGJlaW5nIHJlZmVyZW5j ZWQuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgRHVmcmVzbmUgPG5pY29sYXMuZHVm cmVzbmVAY29sbGFib3JhLmNvbT4KPiA+IFJldmlld2VkLWJ5OiBFemVxdWllbCBHYXJjaWEgPGV6 ZXF1aWVsQHZhbmd1YXJkaWFzdXIuY29tLmFyPgo+ID4gLS0tCj4gPiAgLi4uL21lZGlhdGVrL3Zj b2RlYy92ZGVjL3ZkZWNfaDI2NF9yZXFfaWYuYyAgIHwgMTcgKysrLQo+ID4gIGRyaXZlcnMvbWVk aWEvdjRsMi1jb3JlL3Y0bDItaDI2NC5jICAgICAgICAgICB8IDMzICsrKystLS0KPiA+ICAuLi4v c3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cxX2gyNjRfZGVjLmMgfCAzOCArKystLS0tCj4g PiAgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9faHcuaCAgICAgIHwgIDYgKy0K PiA+ICAuLi4vbWVkaWEvaGFudHJvL3JvY2tjaGlwX3ZwdTJfaHdfaDI2NF9kZWMuYyAgfCA5OCAr KysrKysrKystLS0tLS0tLS0tCj4gPiAgZHJpdmVycy9zdGFnaW5nL21lZGlhL3JrdmRlYy9ya3Zk ZWMtaDI2NC5jICAgIHwgMTIgKy0tCj4gPiAgaW5jbHVkZS9tZWRpYS92NGwyLWgyNjQuaCAgICAg ICAgICAgICAgICAgICAgIHwgMTkgKystLQo+ID4gIDcgZmlsZXMgY2hhbmdlZCwgMTE2IGluc2Vy dGlvbnMoKyksIDEwNyBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vbWVkaWF0ZWsvdmNvZGVjL3ZkZWMvdmRlY19oMjY0X3JlcV9pZi5jIGIv ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tZWRpYXRlay92Y29kZWMvdmRlYy92ZGVjX2gyNjRfcmVx X2lmLmMKPiA+IGluZGV4IDQzNTQyZGUxMWU5Yy4uNzJjNTk5ZTA1YTQ3IDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9tZWRpYXRlay92Y29kZWMvdmRlYy92ZGVjX2gyNjRf cmVxX2lmLmMKPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbWVkaWF0ZWsvdmNvZGVj L3ZkZWMvdmRlY19oMjY0X3JlcV9pZi5jCj4gPiBAQCAtNDQyLDkgKzQ0MiwxNiBAQCBzdGF0aWMg dm9pZCB1cGRhdGVfZHBiKGNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaDI2NF9kZWNvZGVfcGFyYW1z ICpkZWNfcGFyYW0sCj4gPiAgLyoKPiA+ICAgKiBUaGUgZmlybXdhcmUgZXhwZWN0cyB1bnVzZWQg cmVmbGlzdCBlbnRyaWVzIHRvIGhhdmUgdGhlIHZhbHVlIDB4MjAuCj4gPiAgICovCj4gPiAtc3Rh dGljIHZvaWQgZml4dXBfcmVmX2xpc3QodTggKnJlZl9saXN0LCBzaXplX3QgbnVtX3ZhbGlkKQo+ ID4gK3N0YXRpYyB2b2lkIGdldF9yZWZfbGlzdCh1OCAqcmVmX2xpc3QsIHN0cnVjdCB2NGwyX2gy NjRfcmVmbGlzdF9idWlsZGVyICpiKQo+ID4gIHsKPiA+IC0JbWVtc2V0KCZyZWZfbGlzdFtudW1f dmFsaWRdLCAweDIwLCAzMiAtIG51bV92YWxpZCk7Cj4gPiArCXUzMiBpOwo+ID4gKwo+ID4gKwkv KiBGSVhNRSBtYXJrIHRoZSByZWZlcmVuY2UgcGFyaXR5ICovCj4gCj4gSXQncyBub3QgY2xlYXIg aG93IHNlcmlvdXMgdGhpcyBGSVhNRSBpcy4gRWl0aGVyIGl0IHNob3VsZCBiZSBmaXhlZCAoaGVy ZSBvcgo+IGxhdGVyIGluIHRoZSBzZXJpZXMpLCBvciBleHBsYWluIHdoeSB0aGlzIGlzbid0IGZp eGVkIHlldC4gUHJlc3VtYWJseSBiZWNhdXNlCj4gaXQgaXMgbm90IGEgcHJvYmxlbSBub3csIGJ1 dCBpdCBtaWdodCBiZSBsYXRlciB3aGVuIHNvbWUgb3RoZXIgZmVhdHVyZSBpcwo+IGVuYWJsZWQu CgpJIHdpbGwgaW1wcm92ZSB0aGlzIGNvbW1lbnQuIEkgaGF2ZSBzcG9rZW4gdG8gWXVuZmVpLCBh bmQgaGlzIGZpcm13YXJlIGhhdmUgbm8KaW50ZXJsYWNpbmcgc3VwcG9ydCAoZGVzcGl0ZSB0aGUg cmVmZXJlbmNlIGxpc3Qgc2l6ZSBiZWluZyAzMiBlbnRyeSwgc28KaW50ZXJsYWNlZCByZWFkeSku IFRob3VnaCBoZSBzYWlkIHRoaXMgaXMgc29tZXRoaW5nIGhlJ2QgbGlrZSB0byB3b3JrIGluIHRo ZQpmdXR1cmUsIGFmdGVyIHRoaXMgcGF0Y2hzZXQgaGF2ZSBiZWVuIG1lcmdlZCBvZiBjb3Vyc2Uu IFNvdCBoZSBwdXJwb3NlIG9mIHRoZQpGSVhNRSB3YXMgcmVhbGx5IHRvIGVhc2UgbG9jYXRpbmcg d2VyZSB0aGUgZmllbGQgcGFyaXR5IGluZm9ybWF0aW9uIGlzIGJlaW5nCmxvc3QuCgo+IAo+ID4g Kwlmb3IgKGkgPSAwOyBpIDwgYi0+bnVtX3ZhbGlkOyBpKyspCj4gPiArCQlyZWZfbGlzdFtpXSA9 IGItPmluZGV4Owo+ID4gKwo+ID4gKwlmb3IgKDsgaSA8IDMyOyBpKyspCj4gPiArCQlyZWZfbGlz dFtpXSA9IDB4MjA7Cj4gCj4gSG93IGFib3V0Ogo+IAo+IAlmb3IgKGkgPSAwOyBpIDwgMzI7IGkr KykKPiAJCXJlZl9saXN0W2ldID0gaSA8IGItPm51bV92YWxpZCA/IGItPmluZGV4IDogMHgyMDsK PiAKPiBPcjoKPiAKPiAJbWVtc2V0KHJlZl9saXN0LCBiLT5pbmRleCwgYi0+bnVtX3ZhbGlkKTsK PiAJbWVtc2V0KHJlZl9saXN0ICsgYi0+bnVtX3ZhbGlkLCAweDIwLCAzMiAtIGItPm51bV92YWxp ZCk7Cj4gCj4gRWl0aGVyIGFwcHJvYWNoIGlzIGJldHRlciBJTUhPIHRoYW4gdXNpbmcgdHdvIGZv ci1sb29wcy4KClRoYW5rcywgSSBoYXZlIG5vIHN0cm9uZyBvcGluaW9uLCB0aG91Z2ggSSB0aGlu ayBJJ2xsIHVzZSB0aGUgc2Vjb25kLCB3aXRoIHdlYWsKcmF0aW9uYWxlIHRoYXQgaXMgbG9va3Mg bW9yZSBsaWtlIHRoZSBvcmlnaW5hbCBzdHlsZS4KCj4gCj4gUmVnYXJkcywKPiAKPiAJSGFucwo+ IAo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBnZXRfdmRlY19kZWNvZGVfcGFyYW1ldGVy cyhzdHJ1Y3QgdmRlY19oMjY0X3NsaWNlX2luc3QgKmluc3QpCj4gPiBAQCAtNDc4LDkgKzQ4NSw5 IEBAIHN0YXRpYyB2b2lkIGdldF92ZGVjX2RlY29kZV9wYXJhbWV0ZXJzKHN0cnVjdCB2ZGVjX2gy NjRfc2xpY2VfaW5zdCAqaW5zdCkKPiA+ICAJdjRsMl9oMjY0X2J1aWxkX3BfcmVmX2xpc3QoJnJl Zmxpc3RfYnVpbGRlciwgcDBfcmVmbGlzdCk7Cj4gPiAgCXY0bDJfaDI2NF9idWlsZF9iX3JlZl9s aXN0cygmcmVmbGlzdF9idWlsZGVyLCBiMF9yZWZsaXN0LCBiMV9yZWZsaXN0KTsKPiA+ICAJLyog QWRhcHQgdGhlIGJ1aWx0IGxpc3RzIHRvIHRoZSBmaXJtd2FyZSdzIGV4cGVjdGF0aW9ucyAqLwo+ ID4gLQlmaXh1cF9yZWZfbGlzdChwMF9yZWZsaXN0LCByZWZsaXN0X2J1aWxkZXIubnVtX3ZhbGlk KTsKPiA+IC0JZml4dXBfcmVmX2xpc3QoYjBfcmVmbGlzdCwgcmVmbGlzdF9idWlsZGVyLm51bV92 YWxpZCk7Cj4gPiAtCWZpeHVwX3JlZl9saXN0KGIxX3JlZmxpc3QsIHJlZmxpc3RfYnVpbGRlci5u dW1fdmFsaWQpOwo+ID4gKwlnZXRfcmVmX2xpc3QocDBfcmVmbGlzdCwgcmVmbGlzdF9idWlsZGVy KTsKPiA+ICsJZ2V0X3JlZl9saXN0KGIwX3JlZmxpc3QsIHJlZmxpc3RfYnVpbGRlcik7Cj4gPiAr CWdldF9yZWZfbGlzdChiMV9yZWZsaXN0LCByZWZsaXN0X2J1aWxkZXIpOwo+ID4gIAo+ID4gIAlt ZW1jcHkoJmluc3QtPnZzaV9jdHguaDI2NF9zbGljZV9wYXJhbXMsIHNsaWNlX3BhcmFtLAo+ID4g IAkgICAgICAgc2l6ZW9mKGluc3QtPnZzaV9jdHguaDI2NF9zbGljZV9wYXJhbXMpKTsKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWgyNjQuYyBiL2RyaXZlcnMv bWVkaWEvdjRsMi1jb3JlL3Y0bDItaDI2NC5jCj4gPiBpbmRleCBhYzQ3NTE5YTlmYmUuLmFmYmZj Zjc4ZWZlNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaDI2 NC5jCj4gPiArKysgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWgyNjQuYwo+ID4gQEAg LTc1LDEyICs3NSwxMiBAQCB2NGwyX2gyNjRfaW5pdF9yZWZsaXN0X2J1aWxkZXIoc3RydWN0IHY0 bDJfaDI2NF9yZWZsaXN0X2J1aWxkZXIgKmIsCj4gPiAgCQkJcGljX29yZGVyX2NvdW50ID0gZHBi W2ldLnRvcF9maWVsZF9vcmRlcl9jbnQ7Cj4gPiAgCj4gPiAgCQliLT5yZWZzW2ldLnBpY19vcmRl cl9jb3VudCA9IHBpY19vcmRlcl9jb3VudDsKPiA+IC0JCWItPnVub3JkZXJlZF9yZWZsaXN0W2It Pm51bV92YWxpZF0gPSBpOwo+ID4gKwkJYi0+dW5vcmRlcmVkX3JlZmxpc3RbYi0+bnVtX3ZhbGlk XS5pbmRleCA9IGk7Cj4gPiAgCQliLT5udW1fdmFsaWQrKzsKPiA+ICAJfQo+ID4gIAo+ID4gIAlm b3IgKGkgPSBiLT5udW1fdmFsaWQ7IGkgPCBBUlJBWV9TSVpFKGItPnVub3JkZXJlZF9yZWZsaXN0 KTsgaSsrKQo+ID4gLQkJYi0+dW5vcmRlcmVkX3JlZmxpc3RbaV0gPSBpOwo+ID4gKwkJYi0+dW5v cmRlcmVkX3JlZmxpc3RbaV0uaW5kZXggPSBpOwo+ID4gIH0KPiA+ICBFWFBPUlRfU1lNQk9MX0dQ TCh2NGwyX2gyNjRfaW5pdF9yZWZsaXN0X2J1aWxkZXIpOwo+ID4gIAo+ID4gQEAgLTkwLDggKzkw LDggQEAgc3RhdGljIGludCB2NGwyX2gyNjRfcF9yZWZfbGlzdF9jbXAoY29uc3Qgdm9pZCAqcHRy YSwgY29uc3Qgdm9pZCAqcHRyYiwKPiA+ICAJY29uc3Qgc3RydWN0IHY0bDJfaDI2NF9yZWZsaXN0 X2J1aWxkZXIgKmJ1aWxkZXIgPSBkYXRhOwo+ID4gIAl1OCBpZHhhLCBpZHhiOwo+ID4gIAo+ID4g LQlpZHhhID0gKigodTggKilwdHJhKTsKPiA+IC0JaWR4YiA9ICooKHU4ICopcHRyYik7Cj4gPiAr CWlkeGEgPSAoKHN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlICopcHRyYSktPmluZGV4Owo+ID4g KwlpZHhiID0gKChzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSAqKXB0cmIpLT5pbmRleDsKPiA+ ICAKPiA+ICAJaWYgKFdBUk5fT04oaWR4YSA+PSBWNEwyX0gyNjRfTlVNX0RQQl9FTlRSSUVTIHx8 Cj4gPiAgCQkgICAgaWR4YiA+PSBWNEwyX0gyNjRfTlVNX0RQQl9FTlRSSUVTKSkKPiA+IEBAIC0x MjUsOCArMTI1LDggQEAgc3RhdGljIGludCB2NGwyX2gyNjRfYjBfcmVmX2xpc3RfY21wKGNvbnN0 IHZvaWQgKnB0cmEsIGNvbnN0IHZvaWQgKnB0cmIsCj4gPiAgCXMzMiBwb2NhLCBwb2NiOwo+ID4g IAl1OCBpZHhhLCBpZHhiOwo+ID4gIAo+ID4gLQlpZHhhID0gKigodTggKilwdHJhKTsKPiA+IC0J aWR4YiA9ICooKHU4ICopcHRyYik7Cj4gPiArCWlkeGEgPSAoKHN0cnVjdCB2NGwyX2gyNjRfcmVm ZXJlbmNlICopcHRyYSktPmluZGV4Owo+ID4gKwlpZHhiID0gKChzdHJ1Y3QgdjRsMl9oMjY0X3Jl ZmVyZW5jZSAqKXB0cmIpLT5pbmRleDsKPiA+ICAKPiA+ICAJaWYgKFdBUk5fT04oaWR4YSA+PSBW NEwyX0gyNjRfTlVNX0RQQl9FTlRSSUVTIHx8Cj4gPiAgCQkgICAgaWR4YiA+PSBWNEwyX0gyNjRf TlVNX0RQQl9FTlRSSUVTKSkKPiA+IEBAIC0xNzAsOCArMTcwLDggQEAgc3RhdGljIGludCB2NGwy X2gyNjRfYjFfcmVmX2xpc3RfY21wKGNvbnN0IHZvaWQgKnB0cmEsIGNvbnN0IHZvaWQgKnB0cmIs Cj4gPiAgCXMzMiBwb2NhLCBwb2NiOwo+ID4gIAl1OCBpZHhhLCBpZHhiOwo+ID4gIAo+ID4gLQlp ZHhhID0gKigodTggKilwdHJhKTsKPiA+IC0JaWR4YiA9ICooKHU4ICopcHRyYik7Cj4gPiArCWlk eGEgPSAoKHN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlICopcHRyYSktPmluZGV4Owo+ID4gKwlp ZHhiID0gKChzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSAqKXB0cmIpLT5pbmRleDsKPiA+ICAK PiA+ICAJaWYgKFdBUk5fT04oaWR4YSA+PSBWNEwyX0gyNjRfTlVNX0RQQl9FTlRSSUVTIHx8Cj4g PiAgCQkgICAgaWR4YiA+PSBWNEwyX0gyNjRfTlVNX0RQQl9FTlRSSUVTKSkKPiA+IEBAIC0yMTIs OCArMjEyLDggQEAgc3RhdGljIGludCB2NGwyX2gyNjRfYjFfcmVmX2xpc3RfY21wKGNvbnN0IHZv aWQgKnB0cmEsIGNvbnN0IHZvaWQgKnB0cmIsCj4gPiAgICogdjRsMl9oMjY0X2J1aWxkX3BfcmVm X2xpc3QoKSAtIEJ1aWxkIHRoZSBQIHJlZmVyZW5jZSBsaXN0Cj4gPiAgICoKPiA+ICAgKiBAYnVp bGRlcjogcmVmZXJlbmNlIGxpc3QgYnVpbGRlciBjb250ZXh0Cj4gPiAtICogQHJlZmxpc3Q6IDE2 LWJ5dGVzIGFycmF5IHVzZWQgdG8gc3RvcmUgdGhlIFAgcmVmZXJlbmNlIGxpc3QuIEVhY2ggZW50 cnkKPiA+IC0gKgkgICAgIGlzIGFuIGluZGV4IGluIHRoZSBEUEIKPiA+ICsgKiBAcmVmbGlzdDog MTYgc2l6ZWQgYXJyYXkgdXNlZCB0byBzdG9yZSB0aGUgUCByZWZlcmVuY2UgbGlzdC4gRWFjaCBl bnRyeQo+ID4gKyAqCSAgICAgaXMgYSB2NGwyX2gyNjRfcmVmZXJlbmNlIHN0cnVjdHVyZQo+ID4g ICAqCj4gPiAgICogVGhpcyBmdW5jdGlvbnMgYnVpbGRzIHRoZSBQIHJlZmVyZW5jZSBsaXN0cy4g VGhpcyBwcm9jZWR1cmUgaXMgZGVzY3JpYmUgaW4KPiA+ICAgKiBzZWN0aW9uICc4LjIuNCBEZWNv ZGluZyBwcm9jZXNzIGZvciByZWZlcmVuY2UgcGljdHVyZSBsaXN0cyBjb25zdHJ1Y3Rpb24nCj4g PiBAQCAtMjIyLDcgKzIyMiw3IEBAIHN0YXRpYyBpbnQgdjRsMl9oMjY0X2IxX3JlZl9saXN0X2Nt cChjb25zdCB2b2lkICpwdHJhLCBjb25zdCB2b2lkICpwdHJiLAo+ID4gICAqLwo+ID4gIHZvaWQK PiA+ICB2NGwyX2gyNjRfYnVpbGRfcF9yZWZfbGlzdChjb25zdCBzdHJ1Y3QgdjRsMl9oMjY0X3Jl Zmxpc3RfYnVpbGRlciAqYnVpbGRlciwKPiA+IC0JCQkgICB1OCAqcmVmbGlzdCkKPiA+ICsJCQkg ICBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSAqcmVmbGlzdCkKPiA+ICB7Cj4gPiAgCW1lbWNw eShyZWZsaXN0LCBidWlsZGVyLT51bm9yZGVyZWRfcmVmbGlzdCwKPiA+ICAJICAgICAgIHNpemVv ZihidWlsZGVyLT51bm9yZGVyZWRfcmVmbGlzdFswXSkgKiBidWlsZGVyLT5udW1fdmFsaWQpOwo+ ID4gQEAgLTIzNSwxMCArMjM1LDEwIEBAIEVYUE9SVF9TWU1CT0xfR1BMKHY0bDJfaDI2NF9idWls ZF9wX3JlZl9saXN0KTsKPiA+ICAgKiB2NGwyX2gyNjRfYnVpbGRfYl9yZWZfbGlzdHMoKSAtIEJ1 aWxkIHRoZSBCMC9CMSByZWZlcmVuY2UgbGlzdHMKPiA+ICAgKgo+ID4gICAqIEBidWlsZGVyOiBy ZWZlcmVuY2UgbGlzdCBidWlsZGVyIGNvbnRleHQKPiA+IC0gKiBAYjBfcmVmbGlzdDogMTYtYnl0 ZXMgYXJyYXkgdXNlZCB0byBzdG9yZSB0aGUgQjAgcmVmZXJlbmNlIGxpc3QuIEVhY2ggZW50cnkK PiA+IC0gKgkJaXMgYW4gaW5kZXggaW4gdGhlIERQQgo+ID4gLSAqIEBiMV9yZWZsaXN0OiAxNi1i eXRlcyBhcnJheSB1c2VkIHRvIHN0b3JlIHRoZSBCMSByZWZlcmVuY2UgbGlzdC4gRWFjaCBlbnRy eQo+ID4gLSAqCQlpcyBhbiBpbmRleCBpbiB0aGUgRFBCCj4gPiArICogQGIwX3JlZmxpc3Q6IDE2 IHNpemVkIGFycmF5IHVzZWQgdG8gc3RvcmUgdGhlIEIwIHJlZmVyZW5jZSBsaXN0LiBFYWNoIGVu dHJ5Cj4gPiArICoJCWlzIGEgdjRsMl9oMjY0X3JlZmVyZW5jZSBzdHJ1Y3R1cmUKPiA+ICsgKiBA YjFfcmVmbGlzdDogMTYgc2l6ZWQgYXJyYXkgdXNlZCB0byBzdG9yZSB0aGUgQjEgcmVmZXJlbmNl IGxpc3QuIEVhY2ggZW50cnkKPiA+ICsgKgkJaXMgYSB2NGwyX2gyNjRfcmVmZXJlbmNlIHN0cnVj dHVyZQo+ID4gICAqCj4gPiAgICogVGhpcyBmdW5jdGlvbnMgYnVpbGRzIHRoZSBCMC9CMSByZWZl cmVuY2UgbGlzdHMuIFRoaXMgcHJvY2VkdXJlIGlzIGRlc2NyaWJlZAo+ID4gICAqIGluIHNlY3Rp b24gJzguMi40IERlY29kaW5nIHByb2Nlc3MgZm9yIHJlZmVyZW5jZSBwaWN0dXJlIGxpc3RzIGNv bnN0cnVjdGlvbicKPiA+IEBAIC0yNDcsNyArMjQ3LDggQEAgRVhQT1JUX1NZTUJPTF9HUEwodjRs Ml9oMjY0X2J1aWxkX3BfcmVmX2xpc3QpOwo+ID4gICAqLwo+ID4gIHZvaWQKPiA+ICB2NGwyX2gy NjRfYnVpbGRfYl9yZWZfbGlzdHMoY29uc3Qgc3RydWN0IHY0bDJfaDI2NF9yZWZsaXN0X2J1aWxk ZXIgKmJ1aWxkZXIsCj4gPiAtCQkJICAgIHU4ICpiMF9yZWZsaXN0LCB1OCAqYjFfcmVmbGlzdCkK PiA+ICsJCQkgICAgc3RydWN0IHY0bDJfaDI2NF9yZWZlcmVuY2UgKmIwX3JlZmxpc3QsCj4gPiAr CQkJICAgIHN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlICpiMV9yZWZsaXN0KQo+ID4gIHsKPiA+ ICAJbWVtY3B5KGIwX3JlZmxpc3QsIGJ1aWxkZXItPnVub3JkZXJlZF9yZWZsaXN0LAo+ID4gIAkg ICAgICAgc2l6ZW9mKGJ1aWxkZXItPnVub3JkZXJlZF9yZWZsaXN0WzBdKSAqIGJ1aWxkZXItPm51 bV92YWxpZCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9o YW50cm9fZzFfaDI2NF9kZWMuYyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJv X2cxX2gyNjRfZGVjLmMKPiA+IGluZGV4IGY0OWRiZmI4YTg0My4uOWRlN2YwNWVmZjJhIDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzFfaDI2NF9k ZWMuYwo+ID4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRyby9oYW50cm9fZzFfaDI2 NF9kZWMuYwo+ID4gQEAgLTEyNiw3ICsxMjYsNyBAQCBzdGF0aWMgdm9pZCBzZXRfcGFyYW1zKHN0 cnVjdCBoYW50cm9fY3R4ICpjdHgsIHN0cnVjdCB2YjJfdjRsMl9idWZmZXIgKnNyY19idWYpCj4g PiAgCj4gPiAgc3RhdGljIHZvaWQgc2V0X3JlZihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KQo+ID4g IHsKPiA+IC0JY29uc3QgdTggKmIwX3JlZmxpc3QsICpiMV9yZWZsaXN0LCAqcF9yZWZsaXN0Owo+ ID4gKwljb25zdCBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSAqYjBfcmVmbGlzdCwgKmIxX3Jl Zmxpc3QsICpwX3JlZmxpc3Q7Cj4gPiAgCXN0cnVjdCBoYW50cm9fZGV2ICp2cHUgPSBjdHgtPmRl djsKPiA+ICAJaW50IHJlZ19udW07Cj4gPiAgCXUzMiByZWc7Cj4gPiBAQCAtMTU3LDEyICsxNTcs MTIgQEAgc3RhdGljIHZvaWQgc2V0X3JlZihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KQo+ID4gIAkg Ki8KPiA+ICAJcmVnX251bSA9IDA7Cj4gPiAgCWZvciAoaSA9IDA7IGkgPCAxNTsgaSArPSAzKSB7 Cj4gPiAtCQlyZWcgPSBHMV9SRUdfQkRfUkVGX1BJQ19CSU5JVF9STElTVF9GMChiMF9yZWZsaXN0 W2ldKSB8Cj4gPiAtCQkgICAgICBHMV9SRUdfQkRfUkVGX1BJQ19CSU5JVF9STElTVF9GMShiMF9y ZWZsaXN0W2kgKyAxXSkgfAo+ID4gLQkJICAgICAgRzFfUkVHX0JEX1JFRl9QSUNfQklOSVRfUkxJ U1RfRjIoYjBfcmVmbGlzdFtpICsgMl0pIHwKPiA+IC0JCSAgICAgIEcxX1JFR19CRF9SRUZfUElD X0JJTklUX1JMSVNUX0IwKGIxX3JlZmxpc3RbaV0pIHwKPiA+IC0JCSAgICAgIEcxX1JFR19CRF9S RUZfUElDX0JJTklUX1JMSVNUX0IxKGIxX3JlZmxpc3RbaSArIDFdKSB8Cj4gPiAtCQkgICAgICBH MV9SRUdfQkRfUkVGX1BJQ19CSU5JVF9STElTVF9CMihiMV9yZWZsaXN0W2kgKyAyXSk7Cj4gPiAr CQlyZWcgPSBHMV9SRUdfQkRfUkVGX1BJQ19CSU5JVF9STElTVF9GMChiMF9yZWZsaXN0W2ldLmlu ZGV4KSB8Cj4gPiArCQkgICAgICBHMV9SRUdfQkRfUkVGX1BJQ19CSU5JVF9STElTVF9GMShiMF9y ZWZsaXN0W2kgKyAxXS5pbmRleCkgfAo+ID4gKwkJICAgICAgRzFfUkVHX0JEX1JFRl9QSUNfQklO SVRfUkxJU1RfRjIoYjBfcmVmbGlzdFtpICsgMl0uaW5kZXgpIHwKPiA+ICsJCSAgICAgIEcxX1JF R19CRF9SRUZfUElDX0JJTklUX1JMSVNUX0IwKGIxX3JlZmxpc3RbaV0uaW5kZXgpIHwKPiA+ICsJ CSAgICAgIEcxX1JFR19CRF9SRUZfUElDX0JJTklUX1JMSVNUX0IxKGIxX3JlZmxpc3RbaSArIDFd LmluZGV4KSB8Cj4gPiArCQkgICAgICBHMV9SRUdfQkRfUkVGX1BJQ19CSU5JVF9STElTVF9CMihi MV9yZWZsaXN0W2kgKyAyXS5pbmRleCk7Cj4gPiAgCQl2ZHB1X3dyaXRlX3JlbGF4ZWQodnB1LCBy ZWcsIEcxX1JFR19CRF9SRUZfUElDKHJlZ19udW0rKykpOwo+ID4gIAl9Cj4gPiAgCj4gPiBAQCAt MTcxLDEyICsxNzEsMTIgQEAgc3RhdGljIHZvaWQgc2V0X3JlZihzdHJ1Y3QgaGFudHJvX2N0eCAq Y3R4KQo+ID4gIAkgKiBvZiBmb3J3YXJkIGFuZCBiYWNrd2FyZCByZWZlcmVuY2UgcGljdHVyZSBs aXN0cyBhbmQgZmlyc3QgNCBlbnRyaWVzCj4gPiAgCSAqIG9mIFAgZm9yd2FyZCBwaWN0dXJlIGxp c3QuCj4gPiAgCSAqLwo+ID4gLQlyZWcgPSBHMV9SRUdfQkRfUF9SRUZfUElDX0JJTklUX1JMSVNU X0YxNShiMF9yZWZsaXN0WzE1XSkgfAo+ID4gLQkgICAgICBHMV9SRUdfQkRfUF9SRUZfUElDX0JJ TklUX1JMSVNUX0IxNShiMV9yZWZsaXN0WzE1XSkgfAo+ID4gLQkgICAgICBHMV9SRUdfQkRfUF9S RUZfUElDX1BJTklUX1JMSVNUX0YwKHBfcmVmbGlzdFswXSkgfAo+ID4gLQkgICAgICBHMV9SRUdf QkRfUF9SRUZfUElDX1BJTklUX1JMSVNUX0YxKHBfcmVmbGlzdFsxXSkgfAo+ID4gLQkgICAgICBH MV9SRUdfQkRfUF9SRUZfUElDX1BJTklUX1JMSVNUX0YyKHBfcmVmbGlzdFsyXSkgfAo+ID4gLQkg ICAgICBHMV9SRUdfQkRfUF9SRUZfUElDX1BJTklUX1JMSVNUX0YzKHBfcmVmbGlzdFszXSk7Cj4g PiArCXJlZyA9IEcxX1JFR19CRF9QX1JFRl9QSUNfQklOSVRfUkxJU1RfRjE1KGIwX3JlZmxpc3Rb MTVdLmluZGV4KSB8Cj4gPiArCSAgICAgIEcxX1JFR19CRF9QX1JFRl9QSUNfQklOSVRfUkxJU1Rf QjE1KGIxX3JlZmxpc3RbMTVdLmluZGV4KSB8Cj4gPiArCSAgICAgIEcxX1JFR19CRF9QX1JFRl9Q SUNfUElOSVRfUkxJU1RfRjAocF9yZWZsaXN0WzBdLmluZGV4KSB8Cj4gPiArCSAgICAgIEcxX1JF R19CRF9QX1JFRl9QSUNfUElOSVRfUkxJU1RfRjEocF9yZWZsaXN0WzFdLmluZGV4KSB8Cj4gPiAr CSAgICAgIEcxX1JFR19CRF9QX1JFRl9QSUNfUElOSVRfUkxJU1RfRjIocF9yZWZsaXN0WzJdLmlu ZGV4KSB8Cj4gPiArCSAgICAgIEcxX1JFR19CRF9QX1JFRl9QSUNfUElOSVRfUkxJU1RfRjMocF9y ZWZsaXN0WzNdLmluZGV4KTsKPiA+ICAJdmRwdV93cml0ZV9yZWxheGVkKHZwdSwgcmVnLCBHMV9S RUdfQkRfUF9SRUZfUElDKTsKPiA+ICAKPiA+ICAJLyoKPiA+IEBAIC0xODUsMTIgKzE4NSwxMiBA QCBzdGF0aWMgdm9pZCBzZXRfcmVmKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gPiAgCSAqLwo+ ID4gIAlyZWdfbnVtID0gMDsKPiA+ICAJZm9yIChpID0gNDsgaSA8IEhBTlRST19IMjY0X0RQQl9T SVpFOyBpICs9IDYpIHsKPiA+IC0JCXJlZyA9IEcxX1JFR19GV0RfUElDX1BJTklUX1JMSVNUX0Yw KHBfcmVmbGlzdFtpXSkgfAo+ID4gLQkJICAgICAgRzFfUkVHX0ZXRF9QSUNfUElOSVRfUkxJU1Rf RjEocF9yZWZsaXN0W2kgKyAxXSkgfAo+ID4gLQkJICAgICAgRzFfUkVHX0ZXRF9QSUNfUElOSVRf UkxJU1RfRjIocF9yZWZsaXN0W2kgKyAyXSkgfAo+ID4gLQkJICAgICAgRzFfUkVHX0ZXRF9QSUNf UElOSVRfUkxJU1RfRjMocF9yZWZsaXN0W2kgKyAzXSkgfAo+ID4gLQkJICAgICAgRzFfUkVHX0ZX RF9QSUNfUElOSVRfUkxJU1RfRjQocF9yZWZsaXN0W2kgKyA0XSkgfAo+ID4gLQkJICAgICAgRzFf UkVHX0ZXRF9QSUNfUElOSVRfUkxJU1RfRjUocF9yZWZsaXN0W2kgKyA1XSk7Cj4gPiArCQlyZWcg PSBHMV9SRUdfRldEX1BJQ19QSU5JVF9STElTVF9GMChwX3JlZmxpc3RbaV0uaW5kZXgpIHwKPiA+ ICsJCSAgICAgIEcxX1JFR19GV0RfUElDX1BJTklUX1JMSVNUX0YxKHBfcmVmbGlzdFtpICsgMV0u aW5kZXgpIHwKPiA+ICsJCSAgICAgIEcxX1JFR19GV0RfUElDX1BJTklUX1JMSVNUX0YyKHBfcmVm bGlzdFtpICsgMl0uaW5kZXgpIHwKPiA+ICsJCSAgICAgIEcxX1JFR19GV0RfUElDX1BJTklUX1JM SVNUX0YzKHBfcmVmbGlzdFtpICsgM10uaW5kZXgpIHwKPiA+ICsJCSAgICAgIEcxX1JFR19GV0Rf UElDX1BJTklUX1JMSVNUX0Y0KHBfcmVmbGlzdFtpICsgNF0uaW5kZXgpIHwKPiA+ICsJCSAgICAg IEcxX1JFR19GV0RfUElDX1BJTklUX1JMSVNUX0Y1KHBfcmVmbGlzdFtpICsgNV0uaW5kZXgpOwo+ ID4gIAkJdmRwdV93cml0ZV9yZWxheGVkKHZwdSwgcmVnLCBHMV9SRUdfRldEX1BJQyhyZWdfbnVt KyspKTsKPiA+ICAJfQo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9tZWRp YS9oYW50cm8vaGFudHJvX2h3LmggYi9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRy b19ody5oCj4gPiBpbmRleCBlZDAxOGUyOTNiYTAuLjJiYzZiOGYwODhmNSAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3LmgKPiA+ICsrKyBiL2Ry aXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3LmgKPiA+IEBAIC02OSw5ICs2OSw5 IEBAIHN0cnVjdCBoYW50cm9faDI2NF9kZWNfY3RybHMgewo+ID4gICAqIEBiMToJCUIxIHJlZmxp c3QKPiA+ICAgKi8KPiA+ICBzdHJ1Y3QgaGFudHJvX2gyNjRfZGVjX3JlZmxpc3RzIHsKPiA+IC0J dTggcFtIQU5UUk9fSDI2NF9EUEJfU0laRV07Cj4gPiAtCXU4IGIwW0hBTlRST19IMjY0X0RQQl9T SVpFXTsKPiA+IC0JdTggYjFbSEFOVFJPX0gyNjRfRFBCX1NJWkVdOwo+ID4gKwlzdHJ1Y3QgdjRs Ml9oMjY0X3JlZmVyZW5jZSBwW0hBTlRST19IMjY0X0RQQl9TSVpFXTsKPiA+ICsJc3RydWN0IHY0 bDJfaDI2NF9yZWZlcmVuY2UgYjBbSEFOVFJPX0gyNjRfRFBCX1NJWkVdOwo+ID4gKwlzdHJ1Y3Qg djRsMl9oMjY0X3JlZmVyZW5jZSBiMVtIQU5UUk9fSDI2NF9EUEJfU0laRV07Cj4gPiAgfTsKPiA+ ICAKPiA+ICAvKioKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJv L3JvY2tjaGlwX3ZwdTJfaHdfaDI2NF9kZWMuYyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50 cm8vcm9ja2NoaXBfdnB1Ml9od19oMjY0X2RlYy5jCj4gPiBpbmRleCA2NGE2MzMwNDc1ZWIuLjQ2 YzFhODNiY2M0ZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8v cm9ja2NoaXBfdnB1Ml9od19oMjY0X2RlYy5jCj4gPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvbWVk aWEvaGFudHJvL3JvY2tjaGlwX3ZwdTJfaHdfaDI2NF9kZWMuYwo+ID4gQEAgLTI5OCw3ICsyOTgs NyBAQCBzdGF0aWMgdm9pZCBzZXRfcGFyYW1zKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgsIHN0cnVj dCB2YjJfdjRsMl9idWZmZXIgKnNyY19idWYpCj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgc2V0X3Jl ZihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KQo+ID4gIHsKPiA+IC0JY29uc3QgdTggKmIwX3JlZmxp c3QsICpiMV9yZWZsaXN0LCAqcF9yZWZsaXN0Owo+ID4gKwljb25zdCBzdHJ1Y3QgdjRsMl9oMjY0 X3JlZmVyZW5jZSAqYjBfcmVmbGlzdCwgKmIxX3JlZmxpc3QsICpwX3JlZmxpc3Q7Cj4gPiAgCXN0 cnVjdCBoYW50cm9fZGV2ICp2cHUgPSBjdHgtPmRldjsKPiA+ICAJdTMyIHJlZzsKPiA+ICAJaW50 IGk7Cj4gPiBAQCAtMzA3LDIwICszMDcsMjAgQEAgc3RhdGljIHZvaWQgc2V0X3JlZihzdHJ1Y3Qg aGFudHJvX2N0eCAqY3R4KQo+ID4gIAliMV9yZWZsaXN0ID0gY3R4LT5oMjY0X2RlYy5yZWZsaXN0 cy5iMTsKPiA+ICAJcF9yZWZsaXN0ID0gY3R4LT5oMjY0X2RlYy5yZWZsaXN0cy5wOwo+ID4gIAo+ ID4gLQlyZWcgPSBWRFBVX1JFR19QSU5JVF9STElTVF9GOShwX3JlZmxpc3RbOV0pIHwKPiA+IC0J ICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjgocF9yZWZsaXN0WzhdKSB8Cj4gPiAtCSAgICAg IFZEUFVfUkVHX1BJTklUX1JMSVNUX0Y3KHBfcmVmbGlzdFs3XSkgfAo+ID4gLQkgICAgICBWRFBV X1JFR19QSU5JVF9STElTVF9GNihwX3JlZmxpc3RbNl0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdf UElOSVRfUkxJU1RfRjUocF9yZWZsaXN0WzVdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX1BJTklU X1JMSVNUX0Y0KHBfcmVmbGlzdFs0XSk7Cj4gPiArCXJlZyA9IFZEUFVfUkVHX1BJTklUX1JMSVNU X0Y5KHBfcmVmbGlzdFs5XS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19QSU5JVF9STElT VF9GOChwX3JlZmxpc3RbOF0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRfUkxJ U1RfRjcocF9yZWZsaXN0WzddLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX1BJTklUX1JM SVNUX0Y2KHBfcmVmbGlzdFs2XS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19QSU5JVF9S TElTVF9GNShwX3JlZmxpc3RbNV0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRf UkxJU1RfRjQocF9yZWZsaXN0WzRdLmluZGV4KTsKPiA+ICAJdmRwdV93cml0ZV9yZWxheGVkKHZw dSwgcmVnLCBWRFBVX1NXUkVHKDc0KSk7Cj4gPiAgCj4gPiAtCXJlZyA9IFZEUFVfUkVHX1BJTklU X1JMSVNUX0YxNShwX3JlZmxpc3RbMTVdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX1BJTklUX1JM SVNUX0YxNChwX3JlZmxpc3RbMTRdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX1BJTklUX1JMSVNU X0YxMyhwX3JlZmxpc3RbMTNdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX1BJTklUX1JMSVNUX0Yx MihwX3JlZmxpc3RbMTJdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX1BJTklUX1JMSVNUX0YxMShw X3JlZmxpc3RbMTFdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX1BJTklUX1JMSVNUX0YxMChwX3Jl Zmxpc3RbMTBdKTsKPiA+ICsJcmVnID0gVkRQVV9SRUdfUElOSVRfUkxJU1RfRjE1KHBfcmVmbGlz dFsxNV0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjE0KHBfcmVm bGlzdFsxNF0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjEzKHBf cmVmbGlzdFsxM10uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1RfRjEy KHBfcmVmbGlzdFsxMl0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRfUkxJU1Rf RjExKHBfcmVmbGlzdFsxMV0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRfUkxJ U1RfRjEwKHBfcmVmbGlzdFsxMF0uaW5kZXgpOwo+ID4gIAl2ZHB1X3dyaXRlX3JlbGF4ZWQodnB1 LCByZWcsIFZEUFVfU1dSRUcoNzUpKTsKPiA+ICAKPiA+ICAJcmVnID0gVkRQVV9SRUdfUkVGRVIx X05CUihoYW50cm9faDI2NF9nZXRfcmVmX25icihjdHgsIDEpKSB8Cj4gPiBAQCAtMzU1LDU0ICsz NTUsNTQgQEAgc3RhdGljIHZvaWQgc2V0X3JlZihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4KQo+ID4g IAkgICAgICBWRFBVX1JFR19SRUZFUjE0X05CUihoYW50cm9faDI2NF9nZXRfcmVmX25icihjdHgs IDE0KSk7Cj4gPiAgCXZkcHVfd3JpdGVfcmVsYXhlZCh2cHUsIHJlZywgVkRQVV9TV1JFRyg4Mykp Owo+ID4gIAo+ID4gLQlyZWcgPSBWRFBVX1JFR19CSU5JVF9STElTVF9GNShiMF9yZWZsaXN0WzVd KSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0Y0KGIwX3JlZmxpc3RbNF0pIHwK PiA+IC0JICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjMoYjBfcmVmbGlzdFszXSkgfAo+ID4g LQkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GMihiMF9yZWZsaXN0WzJdKSB8Cj4gPiAtCSAg ICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0YxKGIwX3JlZmxpc3RbMV0pIHwKPiA+IC0JICAgICAg VkRQVV9SRUdfQklOSVRfUkxJU1RfRjAoYjBfcmVmbGlzdFswXSk7Cj4gPiArCXJlZyA9IFZEUFVf UkVHX0JJTklUX1JMSVNUX0Y1KGIwX3JlZmxpc3RbNV0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQ VV9SRUdfQklOSVRfUkxJU1RfRjQoYjBfcmVmbGlzdFs0XS5pbmRleCkgfAo+ID4gKwkgICAgICBW RFBVX1JFR19CSU5JVF9STElTVF9GMyhiMF9yZWZsaXN0WzNdLmluZGV4KSB8Cj4gPiArCSAgICAg IFZEUFVfUkVHX0JJTklUX1JMSVNUX0YyKGIwX3JlZmxpc3RbMl0uaW5kZXgpIHwKPiA+ICsJICAg ICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjEoYjBfcmVmbGlzdFsxXS5pbmRleCkgfAo+ID4gKwkg ICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9GMChiMF9yZWZsaXN0WzBdLmluZGV4KTsKPiA+ICAJ dmRwdV93cml0ZV9yZWxheGVkKHZwdSwgcmVnLCBWRFBVX1NXUkVHKDEwMCkpOwo+ID4gIAo+ID4g LQlyZWcgPSBWRFBVX1JFR19CSU5JVF9STElTVF9GMTEoYjBfcmVmbGlzdFsxMV0pIHwKPiA+IC0J ICAgICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjEwKGIwX3JlZmxpc3RbMTBdKSB8Cj4gPiAtCSAg ICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0Y5KGIwX3JlZmxpc3RbOV0pIHwKPiA+IC0JICAgICAg VkRQVV9SRUdfQklOSVRfUkxJU1RfRjgoYjBfcmVmbGlzdFs4XSkgfAo+ID4gLQkgICAgICBWRFBV X1JFR19CSU5JVF9STElTVF9GNyhiMF9yZWZsaXN0WzddKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVH X0JJTklUX1JMSVNUX0Y2KGIwX3JlZmxpc3RbNl0pOwo+ID4gKwlyZWcgPSBWRFBVX1JFR19CSU5J VF9STElTVF9GMTEoYjBfcmVmbGlzdFsxMV0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdf QklOSVRfUkxJU1RfRjEwKGIwX3JlZmxpc3RbMTBdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVf UkVHX0JJTklUX1JMSVNUX0Y5KGIwX3JlZmxpc3RbOV0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQ VV9SRUdfQklOSVRfUkxJU1RfRjgoYjBfcmVmbGlzdFs4XS5pbmRleCkgfAo+ID4gKwkgICAgICBW RFBVX1JFR19CSU5JVF9STElTVF9GNyhiMF9yZWZsaXN0WzddLmluZGV4KSB8Cj4gPiArCSAgICAg IFZEUFVfUkVHX0JJTklUX1JMSVNUX0Y2KGIwX3JlZmxpc3RbNl0uaW5kZXgpOwo+ID4gIAl2ZHB1 X3dyaXRlX3JlbGF4ZWQodnB1LCByZWcsIFZEUFVfU1dSRUcoMTAxKSk7Cj4gPiAgCj4gPiAtCXJl ZyA9IFZEUFVfUkVHX0JJTklUX1JMSVNUX0YxNShiMF9yZWZsaXN0WzE1XSkgfAo+ID4gLQkgICAg ICBWRFBVX1JFR19CSU5JVF9STElTVF9GMTQoYjBfcmVmbGlzdFsxNF0pIHwKPiA+IC0JICAgICAg VkRQVV9SRUdfQklOSVRfUkxJU1RfRjEzKGIwX3JlZmxpc3RbMTNdKSB8Cj4gPiAtCSAgICAgIFZE UFVfUkVHX0JJTklUX1JMSVNUX0YxMihiMF9yZWZsaXN0WzEyXSk7Cj4gPiArCXJlZyA9IFZEUFVf UkVHX0JJTklUX1JMSVNUX0YxNShiMF9yZWZsaXN0WzE1XS5pbmRleCkgfAo+ID4gKwkgICAgICBW RFBVX1JFR19CSU5JVF9STElTVF9GMTQoYjBfcmVmbGlzdFsxNF0uaW5kZXgpIHwKPiA+ICsJICAg ICAgVkRQVV9SRUdfQklOSVRfUkxJU1RfRjEzKGIwX3JlZmxpc3RbMTNdLmluZGV4KSB8Cj4gPiAr CSAgICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0YxMihiMF9yZWZsaXN0WzEyXS5pbmRleCk7Cj4g PiAgCXZkcHVfd3JpdGVfcmVsYXhlZCh2cHUsIHJlZywgVkRQVV9TV1JFRygxMDIpKTsKPiA+ICAK PiA+IC0JcmVnID0gVkRQVV9SRUdfQklOSVRfUkxJU1RfQjUoYjFfcmVmbGlzdFs1XSkgfAo+ID4g LQkgICAgICBWRFBVX1JFR19CSU5JVF9STElTVF9CNChiMV9yZWZsaXN0WzRdKSB8Cj4gPiAtCSAg ICAgIFZEUFVfUkVHX0JJTklUX1JMSVNUX0IzKGIxX3JlZmxpc3RbM10pIHwKPiA+IC0JICAgICAg VkRQVV9SRUdfQklOSVRfUkxJU1RfQjIoYjFfcmVmbGlzdFsyXSkgfAo+ID4gLQkgICAgICBWRFBV X1JFR19CSU5JVF9STElTVF9CMShiMV9yZWZsaXN0WzFdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVH X0JJTklUX1JMSVNUX0IwKGIxX3JlZmxpc3RbMF0pOwo+ID4gKwlyZWcgPSBWRFBVX1JFR19CSU5J VF9STElTVF9CNShiMV9yZWZsaXN0WzVdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJ TklUX1JMSVNUX0I0KGIxX3JlZmxpc3RbNF0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdf QklOSVRfUkxJU1RfQjMoYjFfcmVmbGlzdFszXS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JF R19CSU5JVF9STElTVF9CMihiMV9yZWZsaXN0WzJdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVf UkVHX0JJTklUX1JMSVNUX0IxKGIxX3JlZmxpc3RbMV0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQ VV9SRUdfQklOSVRfUkxJU1RfQjAoYjFfcmVmbGlzdFswXS5pbmRleCk7Cj4gPiAgCXZkcHVfd3Jp dGVfcmVsYXhlZCh2cHUsIHJlZywgVkRQVV9TV1JFRygxMDMpKTsKPiA+ICAKPiA+IC0JcmVnID0g VkRQVV9SRUdfQklOSVRfUkxJU1RfQjExKGIxX3JlZmxpc3RbMTFdKSB8Cj4gPiAtCSAgICAgIFZE UFVfUkVHX0JJTklUX1JMSVNUX0IxMChiMV9yZWZsaXN0WzEwXSkgfAo+ID4gLQkgICAgICBWRFBV X1JFR19CSU5JVF9STElTVF9COShiMV9yZWZsaXN0WzldKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVH X0JJTklUX1JMSVNUX0I4KGIxX3JlZmxpc3RbOF0pIHwKPiA+IC0JICAgICAgVkRQVV9SRUdfQklO SVRfUkxJU1RfQjcoYjFfcmVmbGlzdFs3XSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19CSU5JVF9S TElTVF9CNihiMV9yZWZsaXN0WzZdKTsKPiA+ICsJcmVnID0gVkRQVV9SRUdfQklOSVRfUkxJU1Rf QjExKGIxX3JlZmxpc3RbMTFdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJTklUX1JM SVNUX0IxMChiMV9yZWZsaXN0WzEwXS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19CSU5J VF9STElTVF9COShiMV9yZWZsaXN0WzldLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX0JJ TklUX1JMSVNUX0I4KGIxX3JlZmxpc3RbOF0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdf QklOSVRfUkxJU1RfQjcoYjFfcmVmbGlzdFs3XS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JF R19CSU5JVF9STElTVF9CNihiMV9yZWZsaXN0WzZdLmluZGV4KTsKPiA+ICAJdmRwdV93cml0ZV9y ZWxheGVkKHZwdSwgcmVnLCBWRFBVX1NXUkVHKDEwNCkpOwo+ID4gIAo+ID4gLQlyZWcgPSBWRFBV X1JFR19CSU5JVF9STElTVF9CMTUoYjFfcmVmbGlzdFsxNV0pIHwKPiA+IC0JICAgICAgVkRQVV9S RUdfQklOSVRfUkxJU1RfQjE0KGIxX3JlZmxpc3RbMTRdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVH X0JJTklUX1JMSVNUX0IxMyhiMV9yZWZsaXN0WzEzXSkgfAo+ID4gLQkgICAgICBWRFBVX1JFR19C SU5JVF9STElTVF9CMTIoYjFfcmVmbGlzdFsxMl0pOwo+ID4gKwlyZWcgPSBWRFBVX1JFR19CSU5J VF9STElTVF9CMTUoYjFfcmVmbGlzdFsxNV0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdf QklOSVRfUkxJU1RfQjE0KGIxX3JlZmxpc3RbMTRdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVf UkVHX0JJTklUX1JMSVNUX0IxMyhiMV9yZWZsaXN0WzEzXS5pbmRleCkgfAo+ID4gKwkgICAgICBW RFBVX1JFR19CSU5JVF9STElTVF9CMTIoYjFfcmVmbGlzdFsxMl0uaW5kZXgpOwo+ID4gIAl2ZHB1 X3dyaXRlX3JlbGF4ZWQodnB1LCByZWcsIFZEUFVfU1dSRUcoMTA1KSk7Cj4gPiAgCj4gPiAtCXJl ZyA9IFZEUFVfUkVHX1BJTklUX1JMSVNUX0YzKHBfcmVmbGlzdFszXSkgfAo+ID4gLQkgICAgICBW RFBVX1JFR19QSU5JVF9STElTVF9GMihwX3JlZmxpc3RbMl0pIHwKPiA+IC0JICAgICAgVkRQVV9S RUdfUElOSVRfUkxJU1RfRjEocF9yZWZsaXN0WzFdKSB8Cj4gPiAtCSAgICAgIFZEUFVfUkVHX1BJ TklUX1JMSVNUX0YwKHBfcmVmbGlzdFswXSk7Cj4gPiArCXJlZyA9IFZEUFVfUkVHX1BJTklUX1JM SVNUX0YzKHBfcmVmbGlzdFszXS5pbmRleCkgfAo+ID4gKwkgICAgICBWRFBVX1JFR19QSU5JVF9S TElTVF9GMihwX3JlZmxpc3RbMl0uaW5kZXgpIHwKPiA+ICsJICAgICAgVkRQVV9SRUdfUElOSVRf UkxJU1RfRjEocF9yZWZsaXN0WzFdLmluZGV4KSB8Cj4gPiArCSAgICAgIFZEUFVfUkVHX1BJTklU X1JMSVNUX0YwKHBfcmVmbGlzdFswXS5pbmRleCk7Cj4gPiAgCXZkcHVfd3JpdGVfcmVsYXhlZCh2 cHUsIHJlZywgVkRQVV9TV1JFRygxMDYpKTsKPiA+ICAKPiA+ICAJcmVnID0gVkRQVV9SRUdfUkVG RVJfTFRFUk1fRShjdHgtPmgyNjRfZGVjLmRwYl9sb25ndGVybSk7Cj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zdGFnaW5nL21lZGlhL3JrdmRlYy9ya3ZkZWMtaDI2NC5jIGIvZHJpdmVycy9zdGFn aW5nL21lZGlhL3JrdmRlYy9ya3ZkZWMtaDI2NC5jCj4gPiBpbmRleCA5NTFlMTkyMzFkYTIuLjNj N2YzZDg3ZmFiNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9ya3ZkZWMv cmt2ZGVjLWgyNjQuYwo+ID4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL3JrdmRlYy9ya3Zk ZWMtaDI2NC5jCj4gPiBAQCAtMTAwLDkgKzEwMCw5IEBAIHN0cnVjdCBya3ZkZWNfaDI2NF9wcml2 X3RibCB7Cj4gPiAgI2RlZmluZSBSS1ZERUNfSDI2NF9EUEJfU0laRSAxNgo+ID4gIAo+ID4gIHN0 cnVjdCBya3ZkZWNfaDI2NF9yZWZsaXN0cyB7Cj4gPiAtCXU4IHBbUktWREVDX0gyNjRfRFBCX1NJ WkVdOwo+ID4gLQl1OCBiMFtSS1ZERUNfSDI2NF9EUEJfU0laRV07Cj4gPiAtCXU4IGIxW1JLVkRF Q19IMjY0X0RQQl9TSVpFXTsKPiA+ICsJc3RydWN0IHY0bDJfaDI2NF9yZWZlcmVuY2UgcFtSS1ZE RUNfSDI2NF9EUEJfU0laRV07Cj4gPiArCXN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlIGIwW1JL VkRFQ19IMjY0X0RQQl9TSVpFXTsKPiA+ICsJc3RydWN0IHY0bDJfaDI2NF9yZWZlcmVuY2UgYjFb UktWREVDX0gyNjRfRFBCX1NJWkVdOwo+ID4gIAl1OCBudW1fdmFsaWQ7Cj4gPiAgfTsKPiA+ICAK PiA+IEBAIC03NjcsMTMgKzc2NywxMyBAQCBzdGF0aWMgdm9pZCBhc3NlbWJsZV9od19ycHMoc3Ry dWN0IHJrdmRlY19jdHggKmN0eCwKPiA+ICAKPiA+ICAJCQlzd2l0Y2ggKGopIHsKPiA+ICAJCQlj YXNlIDA6Cj4gPiAtCQkJCWlkeCA9IGgyNjRfY3R4LT5yZWZsaXN0cy5wW2ldOwo+ID4gKwkJCQlp ZHggPSBoMjY0X2N0eC0+cmVmbGlzdHMucFtpXS5pbmRleDsKPiA+ICAJCQkJYnJlYWs7Cj4gPiAg CQkJY2FzZSAxOgo+ID4gLQkJCQlpZHggPSBoMjY0X2N0eC0+cmVmbGlzdHMuYjBbaV07Cj4gPiAr CQkJCWlkeCA9IGgyNjRfY3R4LT5yZWZsaXN0cy5iMFtpXS5pbmRleDsKPiA+ICAJCQkJYnJlYWs7 Cj4gPiAgCQkJY2FzZSAyOgo+ID4gLQkJCQlpZHggPSBoMjY0X2N0eC0+cmVmbGlzdHMuYjFbaV07 Cj4gPiArCQkJCWlkeCA9IGgyNjRfY3R4LT5yZWZsaXN0cy5iMVtpXS5pbmRleDsKPiA+ICAJCQkJ YnJlYWs7Cj4gPiAgCQkJfQo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbWVkaWEvdjRs Mi1oMjY0LmggYi9pbmNsdWRlL21lZGlhL3Y0bDItaDI2NC5oCj4gPiBpbmRleCA0YjFjNzFjOTM1 ZTAuLmVmOWE4OTRlM2MzMiAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvbWVkaWEvdjRsMi1oMjY0 LmgKPiA+ICsrKyBiL2luY2x1ZGUvbWVkaWEvdjRsMi1oMjY0LmgKPiA+IEBAIC0zNyw3ICszNyw3 IEBAIHN0cnVjdCB2NGwyX2gyNjRfcmVmbGlzdF9idWlsZGVyIHsKPiA+ICAJCXUxNiBsb25ndGVy bSA6IDE7Cj4gPiAgCX0gcmVmc1tWNEwyX0gyNjRfTlVNX0RQQl9FTlRSSUVTXTsKPiA+ICAJczMy IGN1cl9waWNfb3JkZXJfY291bnQ7Cj4gPiAtCXU4IHVub3JkZXJlZF9yZWZsaXN0W1Y0TDJfSDI2 NF9OVU1fRFBCX0VOVFJJRVNdOwo+ID4gKwlzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSB1bm9y ZGVyZWRfcmVmbGlzdFtWNEwyX0gyNjRfTlVNX0RQQl9FTlRSSUVTXTsKPiA+ICAJdTggbnVtX3Zh bGlkOwo+ID4gIH07Cj4gPiAgCj4gPiBAQCAtNTEsMTAgKzUxLDEwIEBAIHY0bDJfaDI2NF9pbml0 X3JlZmxpc3RfYnVpbGRlcihzdHJ1Y3QgdjRsMl9oMjY0X3JlZmxpc3RfYnVpbGRlciAqYiwKPiA+ ICAgKiB2NGwyX2gyNjRfYnVpbGRfYl9yZWZfbGlzdHMoKSAtIEJ1aWxkIHRoZSBCMC9CMSByZWZl cmVuY2UgbGlzdHMKPiA+ICAgKgo+ID4gICAqIEBidWlsZGVyOiByZWZlcmVuY2UgbGlzdCBidWls ZGVyIGNvbnRleHQKPiA+IC0gKiBAYjBfcmVmbGlzdDogMTYtYnl0ZXMgYXJyYXkgdXNlZCB0byBz dG9yZSB0aGUgQjAgcmVmZXJlbmNlIGxpc3QuIEVhY2ggZW50cnkKPiA+IC0gKgkJaXMgYW4gaW5k ZXggaW4gdGhlIERQQgo+ID4gLSAqIEBiMV9yZWZsaXN0OiAxNi1ieXRlcyBhcnJheSB1c2VkIHRv IHN0b3JlIHRoZSBCMSByZWZlcmVuY2UgbGlzdC4gRWFjaCBlbnRyeQo+ID4gLSAqCQlpcyBhbiBp bmRleCBpbiB0aGUgRFBCCj4gPiArICogQGIwX3JlZmxpc3Q6IDE2IHNpemVkIGFycmF5IHVzZWQg dG8gc3RvcmUgdGhlIEIwIHJlZmVyZW5jZSBsaXN0LiBFYWNoIGVudHJ5Cj4gPiArICoJCWlzIGEg djRsMl9oMjY0X3JlZmVyZW5jZSBzdHJ1Y3R1cmUKPiA+ICsgKiBAYjFfcmVmbGlzdDogMTYgc2l6 ZWQgYXJyYXkgdXNlZCB0byBzdG9yZSB0aGUgQjEgcmVmZXJlbmNlIGxpc3QuIEVhY2ggZW50cnkK PiA+ICsgKgkJaXMgYSB2NGwyX2gyNjRfcmVmZXJlbmNlIHN0cnVjdHVyZQo+ID4gICAqCj4gPiAg ICogVGhpcyBmdW5jdGlvbnMgYnVpbGRzIHRoZSBCMC9CMSByZWZlcmVuY2UgbGlzdHMuIFRoaXMg cHJvY2VkdXJlIGlzIGRlc2NyaWJlZAo+ID4gICAqIGluIHNlY3Rpb24gJzguMi40IERlY29kaW5n IHByb2Nlc3MgZm9yIHJlZmVyZW5jZSBwaWN0dXJlIGxpc3RzIGNvbnN0cnVjdGlvbicKPiA+IEBA IC02MywxNCArNjMsMTUgQEAgdjRsMl9oMjY0X2luaXRfcmVmbGlzdF9idWlsZGVyKHN0cnVjdCB2 NGwyX2gyNjRfcmVmbGlzdF9idWlsZGVyICpiLAo+ID4gICAqLwo+ID4gIHZvaWQKPiA+ICB2NGwy X2gyNjRfYnVpbGRfYl9yZWZfbGlzdHMoY29uc3Qgc3RydWN0IHY0bDJfaDI2NF9yZWZsaXN0X2J1 aWxkZXIgKmJ1aWxkZXIsCj4gPiAtCQkJICAgIHU4ICpiMF9yZWZsaXN0LCB1OCAqYjFfcmVmbGlz dCk7Cj4gPiArCQkJICAgIHN0cnVjdCB2NGwyX2gyNjRfcmVmZXJlbmNlICpiMF9yZWZsaXN0LAo+ ID4gKwkJCSAgICBzdHJ1Y3QgdjRsMl9oMjY0X3JlZmVyZW5jZSAqYjFfcmVmbGlzdCk7Cj4gPiAg Cj4gPiAgLyoqCj4gPiAgICogdjRsMl9oMjY0X2J1aWxkX3BfcmVmX2xpc3QoKSAtIEJ1aWxkIHRo ZSBQIHJlZmVyZW5jZSBsaXN0Cj4gPiAgICoKPiA+ICAgKiBAYnVpbGRlcjogcmVmZXJlbmNlIGxp c3QgYnVpbGRlciBjb250ZXh0Cj4gPiAtICogQHJlZmxpc3Q6IDE2LWJ5dGVzIGFycmF5IHVzZWQg dG8gc3RvcmUgdGhlIFAgcmVmZXJlbmNlIGxpc3QuIEVhY2ggZW50cnkKPiA+IC0gKgkgICAgIGlz IGFuIGluZGV4IGluIHRoZSBEUEIKPiA+ICsgKiBAcmVmbGlzdDogMTYgc2l6ZWQgYXJyYXkgdXNl ZCB0byBzdG9yZSB0aGUgUCByZWZlcmVuY2UgbGlzdC4gRWFjaCBlbnRyeQo+ID4gKyAqCSAgICAg aXMgYSB2NGwyX2gyNjRfcmVmZXJlbmNlIHN0cnVjdHVyZQo+ID4gICAqCj4gPiAgICogVGhpcyBm dW5jdGlvbnMgYnVpbGRzIHRoZSBQIHJlZmVyZW5jZSBsaXN0cy4gVGhpcyBwcm9jZWR1cmUgaXMg ZGVzY3JpYmUgaW4KPiA+ICAgKiBzZWN0aW9uICc4LjIuNCBEZWNvZGluZyBwcm9jZXNzIGZvciBy ZWZlcmVuY2UgcGljdHVyZSBsaXN0cyBjb25zdHJ1Y3Rpb24nCj4gPiBAQCAtNzksNiArODAsNiBA QCB2NGwyX2gyNjRfYnVpbGRfYl9yZWZfbGlzdHMoY29uc3Qgc3RydWN0IHY0bDJfaDI2NF9yZWZs aXN0X2J1aWxkZXIgKmJ1aWxkZXIsCj4gPiAgICovCj4gPiAgdm9pZAo+ID4gIHY0bDJfaDI2NF9i dWlsZF9wX3JlZl9saXN0KGNvbnN0IHN0cnVjdCB2NGwyX2gyNjRfcmVmbGlzdF9idWlsZGVyICpi dWlsZGVyLAo+ID4gLQkJCSAgIHU4ICpyZWZsaXN0KTsKPiA+ICsJCQkgICBzdHJ1Y3QgdjRsMl9o MjY0X3JlZmVyZW5jZSAqcmVmbGlzdCk7Cj4gPiAgCj4gPiAgI2VuZGlmIC8qIF9NRURJQV9WNEwy X0gyNjRfSCAqLwo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtcm9ja2NoaXAK