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 B87C6EB64DC for ; Mon, 3 Jul 2023 08:52:39 +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-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To:Subject: MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=398aHugYYZlq+bVKP9gLIrS28kvD+HDtSqg/TixFqD4=; b=3na6AFDc5PHF2a WioLgzGe29+JABZrFINaeHVyW4/Yzeyr6bgK33BkB0fE4+rv0kxj8S/3zXuLVRrse8h0ZU1tOdKnA NhgqoxSTOA7gXXaxdeaTkGtnXZL2QFyypr12mbx3xpc3eU2ObCKTe6sPQY9cs3cSRuTzkKNiNmxN7 haPt+ADYHiFUFseyV3CT7CtuTa6jOSRCa/gjwTIlW8Y/uvcTGXueMOMV5Dox2ty8ogLzdOQoPGke0 TIrCFTWqBpxktVMWy99khmmuvs42ZzubJakqTBa/XNdIPiU7fGQRU4vxsdhm2VqeE4Dloas82gUYC iI18PMIbPr92vxH8iMOg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qGFIP-009odv-0f; Mon, 03 Jul 2023 08:52:33 +0000 Received: from madras.collabora.co.uk ([2a00:1098:0:82:1000:25:2eeb:e5ab]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qGFIJ-009oaO-2n; Mon, 03 Jul 2023 08:52:30 +0000 Received: from [IPV6:2a01:e0a:120:3210:4563:92b0:7df7:68d2] (unknown [IPv6:2a01:e0a:120:3210:4563:92b0:7df7:68d2]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by madras.collabora.co.uk (Postfix) with ESMTPSA id DB9AE6606F57; Mon, 3 Jul 2023 09:52:25 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1688374346; bh=+11xQfy+2bkv9tb0jgKm3eChBNcOt7WqmxLGnIqZ4Gw=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=ZD57pEB0Mai6LsCF3TA7rhg48rFS7GbWCU5SxE/4dF0njDCw+MY0VQhpx5if/8UoB ekTHetfwGnbAeUybyHtUJNW2AliifkljnVmJXtjhMPQioiFv2cK6KZliiejtCVKGDW rg7JCPd8KeGM1V9r3zPXYOq9Z6z9QdArpGE8UpA29KOCd/GoHP/shY9C/QFSQu59i8 UBUj4goeXzQoTFYi0OM/g7jx/1Wx9SEPrPF8xvfYQQYuKswR+LPvd3urAZK3hoc9Q+ P2JhflTG0NheZdDYI21k2tAHYQuvj05nytQ1XZSRKT4X020OAiT80a6oIpPt71KWb+ vLBExHMhbKatA== Message-ID: <2b64b605-61cc-248e-a67a-85266434c7a6@collabora.com> Date: Mon, 3 Jul 2023 10:52:24 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: [PATCH v3 10/11] media: v4l2: Add DELETE_BUF ioctl Content-Language: en-US To: Hsia-Jun Li Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, p.zabel@pengutronix.de, ming.qian@nxp.com, hverkuil-cisco@xs4all.nl, gregkh@linuxfoundation.org, ezequiel@vanguardiasur.com.ar, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, nicolas.dufresne@collabora.com, linux-staging@lists.linux.dev, kernel@collabora.com, mchehab@kernel.org, tfiga@chromium.org, m.szyprowski@samsung.com, ayaka References: <20230622131349.144160-1-benjamin.gaignard@collabora.com> <20230622131349.144160-11-benjamin.gaignard@collabora.com> <80a03c29-6f3d-43f1-755c-10f3ae2c2756@synaptics.com> <42a45bad-09c7-ffb6-49cb-29ec0826599d@collabora.com> <3b22fda9-4a0e-2c03-2f12-19e5e3239235@synaptics.com> <54833256-7d88-9316-4f0f-b8c57552cd7b@synaptics.com> <0f4fd31f-ef61-8dee-7a88-55263f266975@collabora.com> <483472c8-74fd-4208-343e-4a8bf79dc6e7@synaptics.com> From: Benjamin Gaignard In-Reply-To: <483472c8-74fd-4208-343e-4a8bf79dc6e7@synaptics.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230703_015228_237326_42CC88C7 X-CRM114-Status: GOOD ( 31.99 ) 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org CkxlIDAzLzA3LzIwMjMgw6AgMTA6MTksIEhzaWEtSnVuIExpIGEgw6ljcml0wqA6Cj4KPiBPbiA3 LzMvMjMgMTY6MTIsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+PiBDQVVUSU9OOiBFbWFpbCBv cmlnaW5hdGVkIGV4dGVybmFsbHksIGRvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuIAo+PiBhdHRh Y2htZW50cyB1bmxlc3MgeW91IHJlY29nbml6ZSB0aGUgc2VuZGVyIGFuZCBrbm93IHRoZSBjb250 ZW50IGlzIAo+PiBzYWZlLgo+Pgo+Pgo+PiBMZSAzMC8wNi8yMDIzIMOgIDExOjQzLCBIc2lhLUp1 biBMaSBhIMOpY3JpdCA6Cj4+Pgo+Pj4gT24gNi8yNy8yMyAxNjo0NywgSHNpYS1KdW4gTGkgd3Jv dGU6Cj4+Pj4gQ0FVVElPTjogRW1haWwgb3JpZ2luYXRlZCBleHRlcm5hbGx5LCBkbyBub3QgY2xp Y2sgbGlua3Mgb3Igb3Blbgo+Pj4+IGF0dGFjaG1lbnRzIHVubGVzcyB5b3UgcmVjb2duaXplIHRo ZSBzZW5kZXIgYW5kIGtub3cgdGhlIGNvbnRlbnQgaXMKPj4+PiBzYWZlLgo+Pj4+Cj4+Pj4KPj4+ PiBPbiA2LzI3LzIzIDE2OjQzLCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPj4+Pj4gQ0FVVElP TjogRW1haWwgb3JpZ2luYXRlZCBleHRlcm5hbGx5LCBkbyBub3QgY2xpY2sgbGlua3Mgb3Igb3Bl bgo+Pj4+PiBhdHRhY2htZW50cyB1bmxlc3MgeW91IHJlY29nbml6ZSB0aGUgc2VuZGVyIGFuZCBr bm93IHRoZSBjb250ZW50IGlzCj4+Pj4+IHNhZmUuCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IExlIDI3LzA2 LzIwMjMgw6AgMDk6MzAsIEhzaWEtSnVuIExpIGEgw6ljcml0IDoKPj4+Pj4+Cj4+Pj4+PiBPbiA2 LzIyLzIzIDIxOjEzLCBCZW5qYW1pbiBHYWlnbmFyZCB3cm90ZToKPj4+Pj4+PiBDQVVUSU9OOiBF bWFpbCBvcmlnaW5hdGVkIGV4dGVybmFsbHksIGRvIG5vdCBjbGljayBsaW5rcyBvciBvcGVuCj4+ Pj4+Pj4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSByZWNvZ25pemUgdGhlIHNlbmRlciBhbmQga25v dyB0aGUgY29udGVudCBpcwo+Pj4+Pj4+IHNhZmUuCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IFZJ RElPQ19ERUxFVEVfQlVGIGlvY3RsIGFsbG93cyB0byBkZWxldGUgYSBidWZmZXIgZnJvbSBhIHF1 ZXVlLgo+Pj4+Pj4+Cj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQmVuamFtaW4gR2FpZ25hcmQgPGJl bmphbWluLmdhaWduYXJkQGNvbGxhYm9yYS5jb20+Cj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4gwqAgLi4u L3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3TCoMKgwqDCoCB8wqAgMSArCj4+ Pj4+Pj4gwqAgLi4uL21lZGlhL3Y0bC92aWRpb2MtZGVsZXRlLWJ1Zi5yc3TCoMKgwqDCoMKgwqDC oMKgwqDCoCB8IDUxCj4+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKwo+Pj4+Pj4+IMKgIC4uLi9t ZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1jb3JlLmPCoMKgIHwgMzMgKysrKysrKysr KysrCj4+Pj4+Pj4gwqAgLi4uL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLXY0bDIu Y8KgwqAgfMKgIDYgKysrCj4+Pj4+Pj4gwqAgZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1k ZXYuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgKwo+Pj4+Pj4+IMKgIGRyaXZlcnMvbWVk aWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuY8KgwqDCoMKgwqDCoMKgwqDCoCB8IDEwICsrKysKPj4+ Pj4+PiDCoCBpbmNsdWRlL21lZGlhL3Y0bDItaW9jdGwuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHzCoCA0ICsrCj4+Pj4+Pj4gwqAgaW5jbHVkZS9tZWRpYS92aWRlb2J1 ZjItY29yZS5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA5ICsrKysKPj4+Pj4+ PiDCoCBpbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi12NGwyLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfCAxMSArKysrCj4+Pj4+Pj4gwqAgaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2 Mi5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAyICsKPj4+Pj4+PiDCoCAxMCBm aWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKQo+Pj4+Pj4+IMKgIGNyZWF0ZSBtb2RlIDEw MDY0NAo+Pj4+Pj4+IERvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvdmlkaW9j LWRlbGV0ZS1idWYucnN0Cj4+Pj4+Pj4KPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlv bi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC91c2VyLWZ1bmMucnN0Cj4+Pj4+Pj4gYi9Eb2N1bWVu dGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3QKPj4+Pj4+PiBpbmRl eCAxNWZmMGJmN2JiZTYuLjhjNzQwMTZlMTJmZCAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9Eb2N1bWVu dGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3QKPj4+Pj4+PiArKysg Yi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3VzZXItZnVuYy5yc3QKPj4+ Pj4+PiBAQCAtMTcsNiArMTcsNyBAQCBGdW5jdGlvbiBSZWZlcmVuY2UKPj4+Pj4+PiDCoMKgwqDC oMKgIHZpZGlvYy1kYmctZy1jaGlwLWluZm8KPj4+Pj4+PiDCoMKgwqDCoMKgIHZpZGlvYy1kYmct Zy1yZWdpc3Rlcgo+Pj4+Pj4+IMKgwqDCoMKgwqAgdmlkaW9jLWRlY29kZXItY21kCj4+Pj4+Pj4g K8KgwqDCoCB2aWRpb2MtZGVsZXRlLWJ1Zgo+Pj4+Pj4+IMKgwqDCoMKgwqAgdmlkaW9jLWRxZXZl bnQKPj4+Pj4+PiDCoMKgwqDCoMKgIHZpZGlvYy1kdi10aW1pbmdzLWNhcAo+Pj4+Pj4+IMKgwqDC oMKgwqAgdmlkaW9jLWVuY29kZXItY21kCj4+Pj4+Pj4gZGlmZiAtLWdpdAo+Pj4+Pj4+IGEvRG9j dW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC92aWRpb2MtZGVsZXRlLWJ1Zi5yc3QK Pj4+Pj4+PiBiL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwvdmlkaW9jLWRl bGV0ZS1idWYucnN0Cj4+Pj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4+Pj4+PiBpbmRleCAw MDAwMDAwMDAwMDAuLjBlN2NlNThmOTFiYwo+Pj4+Pj4+IC0tLSAvZGV2L251bGwKPj4+Pj4+PiAr KysgYi9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlvYy1kZWxldGUt YnVmLnJzdAo+Pj4+Pj4+IEBAIC0wLDAgKzEsNTEgQEAKPj4+Pj4+PiArLi4gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdGREwtMS4xLW5vLWludmFyaWFudHMtb3ItbGF0ZXIKPj4+Pj4+PiArLi4g YzpuYW1lc3BhY2U6OiBWNEwKPj4+Pj4+PiArCj4+Pj4+Pj4gKy4uIF9WSURJT0NfREVMRVRFX0JV RjoKPj4+Pj4+PiArCj4+Pj4+Pj4gKyoqKioqKioqKioqKioqKioqKioqKioqKgo+Pj4+Pj4+ICtp b2N0bCBWSURJT0NfREVMRVRFX0JVRgo+Pj4+Pj4+ICsqKioqKioqKioqKioqKioqKioqKioqKioK Pj4+Pj4+PiArCj4+Pj4+Pj4gK05hbWUKPj4+Pj4+PiArPT09PQo+Pj4+Pj4+ICsKPj4+Pj4+PiAr VklESU9DX0RFTEVURV9CVUYgLSBEZWxldGUgYSBidWZmZXIgZnJvbSBhIHF1ZXVlCj4+Pj4+Pj4g Kwo+Pj4+Pj4+ICtTeW5vcHNpcwo+Pj4+Pj4+ICs9PT09PT09PQo+Pj4+Pj4+ICsKPj4+Pj4+PiAr Li4gYzptYWNybzo6IFZJRElPQ19ERUxFVEVfQlVGCj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtgYGludCBp b2N0bChpbnQgZmQsIFZJRElPQ19ERUxFVEVfQlVGLCBzdHJ1Y3QgdjRsMl9idWZmZXIgKmFyZ3Ap YGAKPj4+Pj4+PiArCj4+Pj4+Pj4gK0FyZ3VtZW50cwo+Pj4+Pj4+ICs9PT09PT09PT0KPj4+Pj4+ PiArCj4+Pj4+Pj4gK2BgZmRgYAo+Pj4+Pj4+ICvCoMKgwqAgRmlsZSBkZXNjcmlwdG9yIHJldHVy bmVkIGJ5IDpjOmZ1bmM6YG9wZW4oKWAuCj4+Pj4+Pj4gKwo+Pj4+Pj4+ICtgYGFyZ3BgYAo+Pj4+ Pj4+ICvCoMKgwqAgUG9pbnRlciB0byBzdHJ1Y3QgOmM6dHlwZTpgdjRsMl9idWZmZXJgLgo+Pj4+ Pj4+ICsKPj4+Pj4+PiArRGVzY3JpcHRpb24KPj4+Pj4+PiArPT09PT09PT09PT0KPj4+Pj4+PiAr Cj4+Pj4+Pj4gK0FwcGxpY2F0aW9ucyBjYW4gb3B0aW9uYWxseSBjYWxsIHRoZSA6cmVmOmBWSURJ T0NfREVMRVRFX0JVRmAKPj4+Pj4+PiBpb2N0bCB0bwo+Pj4+Pj4+ICtkZWxldGUgYSBidWZmZXIg ZnJvbSBhIHF1ZXVlLgo+Pj4+Pj4+ICsKPj4+Pj4+PiArVGhlIHN0cnVjdCA6Yzp0eXBlOmB2NGwy X2J1ZmZlcmAgc3RydWN0dXJlIGlzIHNwZWNpZmllZCBpbgo+Pj4+Pj4+ICs6cmVmOmBidWZmZXJg Lgo+Pj4+Pj4+ICsKPj4+Pj4+PiArUmV0dXJuIFZhbHVlCj4+Pj4+Pj4gKz09PT09PT09PT09PQo+ Pj4+Pj4+ICsKPj4+Pj4+PiArT24gc3VjY2VzcyAwIGlzIHJldHVybmVkLCBvbiBlcnJvciAtMSBh bmQgdGhlIGBgZXJybm9gYCAKPj4+Pj4+PiB2YXJpYWJsZSBpcwo+Pj4+Pj4+IHNldAo+Pj4+Pj4+ ICthcHByb3ByaWF0ZWx5LiBUaGUgZ2VuZXJpYyBlcnJvciBjb2RlcyBhcmUgZGVzY3JpYmVkIGF0 IHRoZQo+Pj4+Pj4+ICs6cmVmOmBHZW5lcmljIEVycm9yIENvZGVzIDxnZW4tZXJyb3JzPmAgY2hh cHRlci4KPj4+Pj4+PiArCj4+Pj4+Pj4gK0VCVVNZCj4+Pj4+Pj4gK8KgwqDCoCBGaWxlIEkvTyBp cyBpbiBwcm9ncmVzcy4KPj4+Pj4+PiArCj4+Pj4+Pj4gK0VJTlZBTAo+Pj4+Pj4+ICvCoMKgwqAg VGhlIGJ1ZmZlciBgYGluZGV4YGAgZG9lc24ndCBleGlzdCBpbiB0aGUgcXVldWUuCj4+Pj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29y ZS5jCj4+Pj4+Pj4gYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWNv cmUuYwo+Pj4+Pj4+IGluZGV4IDg5OTc4M2Y2NzU4MC4uYWE1NDZjOTcyYzNkIDEwMDY0NAo+Pj4+ Pj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29yZS5j Cj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1j b3JlLmMKPj4+Pj4+PiBAQCAtMTYzNyw2ICsxNjM3LDM5IEBAIGludCB2YjJfY29yZV9wcmVwYXJl X2J1ZihzdHJ1Y3QgdmIyX3F1ZXVlIAo+Pj4+Pj4+ICpxLAo+Pj4+Pj4+IHVuc2lnbmVkIGludCBp bmRleCwgdm9pZCAqcGIpCj4+Pj4+Pj4gwqAgfQo+Pj4+Pj4+IMKgIEVYUE9SVF9TWU1CT0xfR1BM KHZiMl9jb3JlX3ByZXBhcmVfYnVmKTsKPj4+Pj4+Pgo+Pj4+Pj4+ICtpbnQgdmIyX2NvcmVfZGVs ZXRlX2J1ZihzdHJ1Y3QgdmIyX3F1ZXVlICpxLCB1bnNpZ25lZCBpbnQgaW5kZXgpCj4+Pj4+Pj4g K3sKPj4+Pj4+PiArwqDCoMKgwqDCoMKgIHN0cnVjdCB2YjJfYnVmZmVyICp2YjsKPj4+Pj4+PiAr Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoCB2YiA9IHZiMl9nZXRfYnVmZmVyKHEsIGluZGV4KTsKPj4+ Pj4+PiArwqDCoMKgwqDCoMKgIGlmICghdmIpIHsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBkcHJpbnRrKHEsIDEsICJpbnZhbGlkIGJ1ZmZlciBpbmRleCAlZFxuIiwgaW5k ZXgpOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFM Owo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgfQo+Pj4+Pj4+ICsKPj4+Pj4+PiArwqDCoMKgwqDCoMKg IGlmICh2Yi0+c3RhdGUgIT0gVkIyX0JVRl9TVEFURV9ERVFVRVVFRCkgewo+Pj4+Pj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRwcmludGsocSwgMSwgImNhbid0IGRlbGV0ZSBub24g ZGVxdWV1ZWQgYnVmZmVyIAo+Pj4+Pj4+IGluZGV4Cj4+Pj4+Pj4gJWRcbiIsIGluZGV4KTsKPj4+ Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPj4+Pj4+ PiArwqDCoMKgwqDCoMKgIH0KPj4+Pj4+PiArCj4+Pj4+PiBJIGtub3cgdGhlIGRyaXZlciBjb3Vs ZCBpbXBsZW1lbnQgaXRzIG93bgo+Pj4+Pj4gdjRsMl9pb2N0bF9vcHMtPnZpZGlvY19kZWxldGVf YnVmKCkgdGhhdCBjaGVjayB3aGV0aGVyIGEgYnVmZmVyIGlzCj4+Pj4+PiB1c2VkIGJ5IHRoZSBo YXJkd2FyZSBhcyBhIGZ1dHVyZSByZWZlcmVuY2UgZnJhbWUuCj4+Pj4+PiBCdXQgSSB0aGluayB3 ZSBuZWVkIGEgZmxhZyB0byBsZXQgdGhlIHVzZXIga25vdyB3aGljaCBidWZmZXIgaXMgCj4+Pj4+ PiBzdGlsbAo+Pj4+Pj4gdXNlZCBieSB0aGUgaGFyZHdhcmUuCj4+Pj4+PiBBbHRlcm5hdGl2ZSBy ZWYgY2FzZSBpcyBzYWZlLCB3ZSBvbmx5IGtub3cgaXQncyBleGlzdGluZyB3aGVuIGl0IGlzCj4+ Pj4+PiBkZXF1ZXVlZCBpbiBjdXJyZW50IFY0TDIgYnVmZmVyIG1lY2hhbmlzbS4KPj4+Pj4+IFdo aWxlIHRoZSBHb2xkZW4gcmVmZXJlbmNlIGZyYW1lLCBzdWNoIGxvbmcgdGVybSByZWZlcmVuY2Ug ZnJhbWUgCj4+Pj4+PiBjb3VsZAo+Pj4+Pj4gbGFzdCBtdWNoIGxvbmdlci4KPj4+Pj4KPj4+Pj4g SXQgaXMgdXAgdG8gdXNlcmxhbmQgc3RhY2sgdG8ga25vdyBmcmFtZXMgbGlmZSB0aW1lLCBpdCBn b3QgdGhlCj4+Pj4+IGluZm9ybWF0aW9uIGZvciB0aGF0Lgo+Pj4+Cj4+Pj4gVGhhdCBpcyB0cnVl IGZvciB0aGUgc3RhdGVsZXNzIGNvZGVjIGRyaXZlci4KPj4+Pgo+Pj4+IFdoaWxlIGFwcGxpY2F0 aW9uIGZvciBzdGF0ZWZ1bCBkZWNvZGVyIGNvdWxkIG5ldmVyIGRvIHRoYXQuIEl0IGFsc28KPj4+ PiBicmVha3Mgd2hhdCB0aGUgZG9jdW1lbnQgc2FpZDoKPj4+Pgo+Pj4+ICJUaGUgYmFja2luZyBt ZW1vcnkgb2YgfENBUFRVUkV8IGJ1ZmZlcnMgdGhhdCBhcmUgdXNlZCBhcyByZWZlcmVuY2UKPj4+ PiBmcmFtZXMgYnkgdGhlIHN0cmVhbSBtYXkgYmUgcmVhZCBieSB0aGUgaGFyZHdhcmUgZXZlbiBh ZnRlciB0aGV5IGFyZQo+Pj4+IGRlcXVldWVkLiBDb25zZXF1ZW50bHksIHRoZSBjbGllbnQgc2hv dWxkIGF2b2lkIHdyaXRpbmcgaW50byB0aGlzIAo+Pj4+IG1lbW9yeQo+Pj4+IHdoaWxlIHRoZSB8 Q0FQVFVSRXwgcXVldWUgaXMgc3RyZWFtaW5nLiBGYWlsdXJlIHRvIG9ic2VydmUgdGhpcyBtYXkK Pj4+PiByZXN1bHQgaW4gY29ycnVwdGlvbiBvZiBkZWNvZGVkIGZyYW1lcy4iCj4+Pj4KPj4+Pj4K Pj4+Pj4+PiArwqDCoMKgwqDCoMKgIGlmICh2Yi0+cGxhbmVzWzBdLm1lbV9wcml2KQo+Pj4+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhbGxfdm9pZF92Yl9xb3AodmIsIGJ1Zl9j bGVhbnVwLCB2Yik7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgLyogRnJlZSBNTUFQ IGJ1ZmZlcnMgb3IgcmVsZWFzZSBVU0VSUFRSIGJ1ZmZlcnMgKi8KPj4+Pj4+PiArwqDCoMKgwqDC oMKgIGlmIChxLT5tZW1vcnkgPT0gVkIyX01FTU9SWV9NTUFQKQo+Pj4+Pj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIF9fdmIyX2J1Zl9tZW1fZnJlZSh2Yik7Cj4+Pgo+Pj4gSGVyZSBp cyBhbm90aGVyIHByb2JsZW0gZm9yIHRoZSBleGlzdGluZyBhcHBsaWNhdGlvbiwgdGhlIG1tYXAo KSBmcm9tCj4+PiB0aGUgbW1hcCBvZmZzZXQgb3IgZXhwb3J0YnVmZmVyIGZkIHdvdWxkIG5vdCBj cmVhdGUgYSByZWZlcmVuY2UgdG8KPj4+IGJ1ZmZlciBpbiB0aGlzIHN0ZXAod2hpbGUgdGhlIGV4 cG9ydGJ1ZmZlciB3b3VsZCBjcmVhdGUgb25lIGl0c2VsZikuCj4+Pgo+Pj4gV2hlbiB5b3UgZGVs ZXRlIGEgYnVmZmVyLCB5b3UgbWF5IG5vdCByZWxlYXNlIGl0IGZyb20gaXRzIHZpcnR1YWwKPj4+ IG1lbW9yeSBzcGFjZSwgbGVhdmluZyBhIGNvcnJ1cHRlZCB2aXJ0dWFsIG1lbW9yeSBzcGFjZS4g QWxzbyB0aGlzCj4+PiBiZWhhdmlvciBpcyByaWdodCwgYmVjYXVzZSBtbWFwKDIpIHNheXM6Cj4+ Pgo+Pj4gIkFmdGVywqAgdGhlwqAgbW1hcCgpwqAgY2FsbCBoYXMgcmV0dXJuZWQsIHRoZSBmaWxl IGRlc2NyaXB0b3IsIGZkLCBjYW4KPj4+IGJlIGNsb3NlZCBpbW1lZGlhdGVseSB3aXRob3V0IGlu dmFsaWRhdGluZyB0aGUgbWFw4oCQcGluZy4iCj4+Cj4+IEV4aXN0aW5nIGFwcGxpY2F0aW9ucyBk byBub3QgY2FsbCBERUxFVEVfQlVGIGlvY3RsIGFuZCB3aGVuIGNhbGwgaXQgCj4+IHRoZXkgd2ls bCBiZSBhd2FyZSB0aGF0IHRoZSBidWZmZXIgaXMgcmVtb3ZlZC4KPj4gSSBoYXZlIGRvbmUgaXQg aW4gR1N0cmVhbWVyOgo+PiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJs P3U9aHR0cHMtM0FfX2dpdGxhYi5mcmVlZGVza3RvcC5vcmdfYmVuamFtaW4uZ2FpZ25hcmQxX2dz dHJlYW1lcl8tMkRfY29tbWl0X2ZjYTBmYmM5MzRmNDQ0MDY5M2NlMGZmNmM4ZGM4YTJlNWY1ZjE3 ZDkmZD1Ed0lEYVEmYz03ZGZCSjhjWGJXamhjMEJoSW11OHdWSW9VRm1Cemoxczg4cjhFR3lNMFVZ JnI9UDR4YjJfN2JpcUJ4RDRMR0dQclNWNmotamYzQzN4bFI3UFhVLW1MVGVaRSZtPVRHSDl0b1R6 R1JmTzVhQnNmYU12R2JjT3ctMjhxNmNQbXBYNnZTY2JIanBDdGFMdGItUnV2QnZzSjB6OVJ2QUIm cz1VZmwxY2NmUlpmMkVobmZDQnZuUXpSSlY5Q0RoR3hsNXNwZTlXTkVDc3BVJmU9IAo+Pgo+Cj4g SSBoYXZlIHJlYWQgdGhhdC4KPgo+IFRoZXJlIGlzIG5vdCBhIFZQOCBwYXJzZXIgaW4gR3N0cmVh bWVyLCB3aGlsZSBhIHBhcnNlciB3b3VsZCBub3Qgd29yayAKPiB3aGVuIGRlYWwgd2l0aCB0aGUg c2VjdXJlIHZpZGVvKHVzZXJzcGFjZSBjYW4ndCBhY2Nlc3MgdGhlIGRhdGEgCj4gY29udGV4dCBh dCBhbGwpLgo+Cj4gQmVzaWRlcywgdGhpcyBhZGRzIGV4dHJhIHdvcmsgZm9yIHRoZSBhcHBsaWNh dGlvbiBmb3IgYSBzdGF0ZWZ1bCBjb2RlYyAKPiBkcml2ZXIuIFRoZSBhcHBsaWNhdGlvbiBuZWVk IHRvIHBhcnNlciB0aGUgYml0c3RyZWFtIGFuZCB0cmFjayB0aGUgZHBiLgo+Cj4gSSBkb24ndCBt aW5kIGlmIHlvdSBjb3VsZCBmaXggdGhlIG5vbmZpY3Rpb24gbWVjaGFuaXNtIGZvciB0aG9zZSAK PiBub24tZGlzcGxheSBmcmFtZSBhbmQgaW50ZXJuYWwgcmVmZXJlbmNlIHN0YXRlLgo+Cj4gVGhh dCBjb3VsZCBiZSByZXF1aXJlbWVudCBmb3IgY29kZWMgZmlybXdhcmUgdGhhdCBpdHMgZHJpdmVy IGNvdWxkIAo+IHN1cHBvcnQgdGhpcyBERUxFVEVfQlVGIGlvY3RsKCkgZmVhdHVyZS4KClNvcnJ5 IEkgZG9uJ3Qgc2VlIHRoZSBsaW5rIHdpdGggbXkgcGF0Y2hlcyBoZXJlLi4uCkkgaGF2ZSB3b3Jr IG9uIG5vbi1zZWN1cmUgVlA5IG9uIHN0YXRlbGVzcyBjb2RlYy4KREVMRVRFX0JVRiBpb2N0bCBp cyBvcHRpb25hbCBhbmQgdGhlIG1haW4gZ29hbCBpcyB0byBvZmZlciBhIHdheSB0byBhcHBsaWNh dGlvbnMKdG8gc2F2ZSBtZW1vcnkgaWYgdGhleSBrbm93IHdoZW4gdGhleSBjb3VsZCBkZWxldGUg YnVmZmVycyB3aXRob3V0IHJpc2suCgo+Cj4+Cj4+IFJlZ2FyZHMsCj4+IEJlbmphbWluCj4+Cj4+ Pgo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqAgZWxzZSBpZiAocS0+bWVtb3J5ID09IFZCMl9NRU1PUllf RE1BQlVGKQo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fdmIyX2J1Zl9k bWFidWZfcHV0KHZiKTsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgIGVsc2UKPj4+Pj4+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX3ZiMl9idWZfdXNlcnB0cl9wdXQodmIpOwo+Pj4+Pj4+ ICsKPj4+Pj4+PiArwqDCoMKgwqDCoMKgIHZiMl9xdWV1ZV9yZW1vdmVfYnVmZmVyKHEsIHZiKTsK Pj4+Pj4+PiArwqDCoMKgwqDCoMKgIGtmcmVlKHZiKTsKPj4+Pj4+PiArCj4+Pj4+Pj4gK8KgwqDC oMKgwqDCoCBkcHJpbnRrKHEsIDIsICJidWZmZXIgJWQgZGVsZXRlZFxuIiwgaW5kZXgpOwo+Pj4+ Pj4+ICvCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4+Pj4+Pj4gK30KPj4+Pj4+PiArCj4+Pj4+Pj4g wqAgLyoKPj4+Pj4+PiDCoMKgICogdmIyX3N0YXJ0X3N0cmVhbWluZygpIC0gQXR0ZW1wdCB0byBz dGFydCBzdHJlYW1pbmcuCj4+Pj4+Pj4gwqDCoCAqIEBxOsKgwqDCoMKgwqDCoMKgwqAgdmlkZW9i dWYyIHF1ZXVlCj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVv YnVmMi92aWRlb2J1ZjItdjRsMi5jCj4+Pj4+Pj4gYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRl b2J1ZjIvdmlkZW9idWYyLXY0bDIuYwo+Pj4+Pj4+IGluZGV4IDcyNDEzNWQ0MWY3Zi4uY2VhNjY2 YzE3YjQxIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVm Mi92aWRlb2J1ZjItdjRsMi5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdmlk ZW9idWYyL3ZpZGVvYnVmMi12NGwyLmMKPj4+Pj4+PiBAQCAtNzUxLDYgKzc1MSwxMiBAQCBpbnQg dmIyX3ByZXBhcmVfYnVmKHN0cnVjdCB2YjJfcXVldWUgKnEsIAo+Pj4+Pj4+IHN0cnVjdAo+Pj4+ Pj4+IG1lZGlhX2RldmljZSAqbWRldiwKPj4+Pj4+PiDCoCB9Cj4+Pj4+Pj4gwqAgRVhQT1JUX1NZ TUJPTF9HUEwodmIyX3ByZXBhcmVfYnVmKTsKPj4+Pj4+Pgo+Pj4+Pj4+ICtpbnQgdmIyX2RlbGV0 ZV9idWYoc3RydWN0IHZiMl9xdWV1ZSAqcSwgc3RydWN0IHY0bDJfYnVmZmVyICpiKQo+Pj4+Pj4+ ICt7Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gdmIyX2NvcmVfZGVsZXRlX2J1ZihxLCBi LT5pbmRleCk7Cj4+Pj4+Pj4gK30KPj4+Pj4+PiArRVhQT1JUX1NZTUJPTF9HUEwodmIyX2RlbGV0 ZV9idWYpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiDCoCBpbnQgdmIyX2NyZWF0ZV9idWZzKHN0cnVjdCB2 YjJfcXVldWUgKnEsIHN0cnVjdCAKPj4+Pj4+PiB2NGwyX2NyZWF0ZV9idWZmZXJzCj4+Pj4+Pj4g KmNyZWF0ZSkKPj4+Pj4+PiDCoCB7Cj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBy ZXF1ZXN0ZWRfcGxhbmVzID0gMTsKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92 NGwyLWNvcmUvdjRsMi1kZXYuYwo+Pj4+Pj4+IGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRs Mi1kZXYuYwo+Pj4+Pj4+IGluZGV4IGY4MTI3OTQ5MjY4Mi4uODBhY2UyZTFlOTMyIDEwMDY0NAo+ Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItZGV2LmMKPj4+Pj4+PiAr KysgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWRldi5jCj4+Pj4+Pj4gQEAgLTcyMCw2 ICs3MjAsNyBAQCBzdGF0aWMgdm9pZCBkZXRlcm1pbmVfdmFsaWRfaW9jdGxzKHN0cnVjdAo+Pj4+ Pj4+IHZpZGVvX2RldmljZSAqdmRldikKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBTRVRfVkFMSURfSU9DVEwob3BzLCBWSURJT0NfUFJFUEFSRV9CVUYsCj4+Pj4+Pj4g dmlkaW9jX3ByZXBhcmVfYnVmKTsKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBTRVRfVkFMSURfSU9DVEwob3BzLCBWSURJT0NfU1RSRUFNT04sCj4+Pj4+Pj4gdmlkaW9j X3N0cmVhbW9uKTsKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTRVRf VkFMSURfSU9DVEwob3BzLCBWSURJT0NfU1RSRUFNT0ZGLAo+Pj4+Pj4+IHZpZGlvY19zdHJlYW1v ZmYpOwo+Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNFVF9WQUxJRF9JT0NU TChvcHMsIFZJRElPQ19ERUxFVEVfQlVGLAo+Pj4+Pj4+IHZpZGlvY19kZWxldGVfYnVmKTsKPj4+ Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+Pj4+Pgo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqAg aWYgKGlzX3ZpZCB8fCBpc192YmkgfHwgaXNfbWV0YSkgewo+Pj4+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWlvY3RsLmMKPj4+Pj4+PiBiL2RyaXZlcnMvbWVk aWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuYwo+Pj4+Pj4+IGluZGV4IGE4NThhY2VhNjU0Ny4uMWM3 MzcyNzlkM2VmIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0 bDItaW9jdGwuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9j dGwuYwo+Pj4+Pj4+IEBAIC0yMTU2LDYgKzIxNTYsMTUgQEAgc3RhdGljIGludCB2NGxfcHJlcGFy ZV9idWYoY29uc3Qgc3RydWN0Cj4+Pj4+Pj4gdjRsMl9pb2N0bF9vcHMgKm9wcywKPj4+Pj4+PiDC oMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQgPyByZXQgOiBvcHMtPnZpZGlvY19wcmVwYXJlX2J1 ZihmaWxlLCBmaCwgYik7Cj4+Pj4+Pj4gwqAgfQo+Pj4+Pj4+Cj4+Pj4+Pj4gK3N0YXRpYyBpbnQg djRsX2RlbGV0ZV9idWYoY29uc3Qgc3RydWN0IHY0bDJfaW9jdGxfb3BzICpvcHMsCj4+Pj4+Pj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qg ZmlsZSAqZmlsZSwgdm9pZCAqZmgsIHZvaWQgKmFyZykKPj4+Pj4+PiArewo+Pj4+Pj4+ICvCoMKg wqDCoMKgwqAgc3RydWN0IHY0bDJfYnVmZmVyICpiID0gYXJnOwo+Pj4+Pj4+ICvCoMKgwqDCoMKg wqAgaW50IHJldCA9IGNoZWNrX2ZtdChmaWxlLCBiLT50eXBlKTsKPj4+Pj4+PiArCj4+Pj4+Pj4g K8KgwqDCoMKgwqDCoCByZXR1cm4gcmV0ID8gcmV0IDogb3BzLT52aWRpb2NfZGVsZXRlX2J1Zihm aWxlLCBmaCwgYik7Cj4+Pj4+Pj4gK30KPj4+Pj4+PiArCj4+Pj4+Pj4gwqAgc3RhdGljIGludCB2 NGxfZ19wYXJtKGNvbnN0IHN0cnVjdCB2NGwyX2lvY3RsX29wcyAqb3BzLAo+Pj4+Pj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLCB2b2lkCj4+Pj4+Pj4gKmFyZykKPj4+Pj4+ PiDCoCB7Cj4+Pj4+Pj4gQEAgLTI5MDUsNiArMjkxNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg djRsMl9pb2N0bF9pbmZvCj4+Pj4+Pj4gdjRsMl9pb2N0bHNbXSA9IHsKPj4+Pj4+PiDCoMKgwqDC oMKgwqDCoMKgIElPQ1RMX0lORk8oVklESU9DX0VOVU1fRlJFUV9CQU5EUywgdjRsX2VudW1fZnJl cV9iYW5kcywKPj4+Pj4+PiB2NGxfcHJpbnRfZnJlcV9iYW5kLCAwKSwKPj4+Pj4+PiDCoMKgwqDC oMKgwqDCoMKgIElPQ1RMX0lORk8oVklESU9DX0RCR19HX0NISVBfSU5GTywgdjRsX2RiZ19nX2No aXBfaW5mbywKPj4+Pj4+PiB2NGxfcHJpbnRfZGJnX2NoaXBfaW5mbywgSU5GT19GTF9DTEVBUih2 NGwyX2RiZ19jaGlwX2luZm8sIG1hdGNoKSksCj4+Pj4+Pj4gwqDCoMKgwqDCoMKgwqDCoCBJT0NU TF9JTkZPKFZJRElPQ19RVUVSWV9FWFRfQ1RSTCwgdjRsX3F1ZXJ5X2V4dF9jdHJsLAo+Pj4+Pj4+ IHY0bF9wcmludF9xdWVyeV9leHRfY3RybCwgSU5GT19GTF9DVFJMIHwKPj4+Pj4+PiBJTkZPX0ZM X0NMRUFSKHY0bDJfcXVlcnlfZXh0X2N0cmwsIGlkKSksCj4+Pj4+Pj4gK8KgwqDCoMKgwqDCoCBJ T0NUTF9JTkZPKFZJRElPQ19ERUxFVEVfQlVGLCB2NGxfZGVsZXRlX2J1ZiwKPj4+Pj4+PiB2NGxf cHJpbnRfYnVmZmVyLCBJTkZPX0ZMX1FVRVVFKSwKPj4+Pj4+PiDCoCB9Owo+Pj4+Pj4+IMKgICNk ZWZpbmUgVjRMMl9JT0NUTFMgQVJSQVlfU0laRSh2NGwyX2lvY3RscykKPj4+Pj4+Pgo+Pj4+Pj4+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL3Y0bDItaW9jdGwuaCAKPj4+Pj4+PiBiL2luY2x1 ZGUvbWVkaWEvdjRsMi1pb2N0bC5oCj4+Pj4+Pj4gaW5kZXggZWRiNzMzZjIxNjA0Li4yZjIzMmVk ODg0YzcgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvaW5jbHVkZS9tZWRpYS92NGwyLWlvY3RsLmgKPj4+ Pj4+PiArKysgYi9pbmNsdWRlL21lZGlhL3Y0bDItaW9jdGwuaAo+Pj4+Pj4+IEBAIC0xNjMsNiAr MTYzLDggQEAgc3RydWN0IHY0bDJfZmg7Cj4+Pj4+Pj4gwqDCoCAqwqDCoMKgwqAgOnJlZjpgVklE SU9DX0NSRUFURV9CVUZTIDx2aWRpb2NfY3JlYXRlX2J1ZnM+YCBpb2N0bAo+Pj4+Pj4+IMKgwqAg KiBAdmlkaW9jX3ByZXBhcmVfYnVmOiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IGltcGxl bWVudHMKPj4+Pj4+PiDCoMKgICrCoMKgwqDCoCA6cmVmOmBWSURJT0NfUFJFUEFSRV9CVUYgPHZp ZGlvY19wcmVwYXJlX2J1Zj5gIGlvY3RsCj4+Pj4+Pj4gKyAqIEB2aWRpb2NfZGVsZXRlX2J1Zjog cG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzCj4+Pj4+Pj4gKyAqwqDCoMKg wqAgOnJlZjpgVklESU9DX0RFTEVURV9CVUYgPHZpZGlvY19kZWxldGVfYnVmPmAgaW9jdGwKPj4+ Pj4+PiDCoMKgICogQHZpZGlvY19vdmVybGF5OiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0 IGltcGxlbWVudHMKPj4+Pj4+PiDCoMKgICrCoMKgwqDCoCA6cmVmOmBWSURJT0NfT1ZFUkxBWSA8 dmlkaW9jX292ZXJsYXk+YCBpb2N0bAo+Pj4+Pj4+IMKgwqAgKiBAdmlkaW9jX2dfZmJ1ZjogcG9p bnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzCj4+Pj4+Pj4gQEAgLTQyMiw2ICs0 MjQsOCBAQCBzdHJ1Y3QgdjRsMl9pb2N0bF9vcHMgewo+Pj4+Pj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVj dCB2NGwyX2NyZWF0ZV9idWZmZXJzICpiKTsKPj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgIGludCAo KnZpZGlvY19wcmVwYXJlX2J1Zikoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLAo+Pj4+Pj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHN0cnVjdCB2NGwyX2J1ZmZlciAqYik7Cj4+Pj4+Pj4gK8KgwqDCoMKgwqDC oCBpbnQgKCp2aWRpb2NfZGVsZXRlX2J1Zikoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKmZoLAo+ Pj4+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3QgdjRsMl9idWZmZXIgKmIpOwo+Pj4+Pj4+Cj4+Pj4+Pj4gwqDC oMKgwqDCoMKgwqDCoCBpbnQgKCp2aWRpb2Nfb3ZlcmxheSkoc3RydWN0IGZpbGUgKmZpbGUsIHZv aWQgKmZoLCAKPj4+Pj4+PiB1bnNpZ25lZAo+Pj4+Pj4+IGludCBpKTsKPj4+Pj4+PiDCoMKgwqDC oMKgwqDCoMKgIGludCAoKnZpZGlvY19nX2ZidWYpKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpm aCwKPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCj4+ Pj4+Pj4gYi9pbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1jb3JlLmgKPj4+Pj4+PiBpbmRleCAwODBi NzgzZDYwOGQuLjBmOWU2OGY3NmI3NyAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9pbmNsdWRlL21lZGlh L3ZpZGVvYnVmMi1jb3JlLmgKPj4+Pj4+PiArKysgYi9pbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1j b3JlLmgKPj4+Pj4+PiBAQCAtODQwLDYgKzg0MCwxNSBAQCBpbnQgdmIyX2NvcmVfY3JlYXRlX2J1 ZnMoc3RydWN0IHZiMl9xdWV1ZSAqcSwKPj4+Pj4+PiBlbnVtIHZiMl9tZW1vcnkgbWVtb3J5LAo+ Pj4+Pj4+IMKgwqAgKi8KPj4+Pj4+PiDCoCBpbnQgdmIyX2NvcmVfcHJlcGFyZV9idWYoc3RydWN0 IHZiMl9xdWV1ZSAqcSwgdW5zaWduZWQgaW50IGluZGV4LAo+Pj4+Pj4+IHZvaWQgKnBiKTsKPj4+ Pj4+Pgo+Pj4+Pj4+ICsvKioKPj4+Pj4+PiArICogdmIyX2NvcmVfZGVsZXRlX2J1ZigpIC0KPj4+ Pj4+PiArICogQHE6IHBvaW50ZXIgdG8gJnN0cnVjdCB2YjJfcXVldWUgd2l0aCB2aWRlb2J1ZjIg cXVldWUuCj4+Pj4+Pj4gKyAqIEBpbmRleDrCoMKgwqDCoCBpZCBudW1iZXIgb2YgdGhlIGJ1ZmZl ci4KPj4+Pj4+PiArICoKPj4+Pj4+PiArICrCoCBSZXR1cm46IHJldHVybnMgemVybyBvbiBzdWNj ZXNzOyBhbiBlcnJvciBjb2RlIG90aGVyd2lzZS4KPj4+Pj4+PiArICovCj4+Pj4+Pj4gK2ludCB2 YjJfY29yZV9kZWxldGVfYnVmKHN0cnVjdCB2YjJfcXVldWUgKnEsIHVuc2lnbmVkIGludCBpbmRl eCk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+IMKgIC8qKgo+Pj4+Pj4+IMKgwqAgKiB2YjJfY29yZV9xYnVm KCkgLSBRdWV1ZSBhIGJ1ZmZlciBmcm9tIHVzZXJzcGFjZQo+Pj4+Pj4+IMKgwqAgKgo+Pj4+Pj4+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi12NGwyLmgKPj4+Pj4+PiBiL2lu Y2x1ZGUvbWVkaWEvdmlkZW9idWYyLXY0bDIuaAo+Pj4+Pj4+IGluZGV4IDg4YTdhNTY1MTcwZS4u M2JlZWI0YzczNWYwIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2luY2x1ZGUvbWVkaWEvdmlkZW9idWYy LXY0bDIuaAo+Pj4+Pj4+ICsrKyBiL2luY2x1ZGUvbWVkaWEvdmlkZW9idWYyLXY0bDIuaAo+Pj4+ Pj4+IEBAIC0xMTQsNiArMTE0LDE3IEBAIGludCB2YjJfY3JlYXRlX2J1ZnMoc3RydWN0IHZiMl9x dWV1ZSAqcSwgCj4+Pj4+Pj4gc3RydWN0Cj4+Pj4+Pj4gdjRsMl9jcmVhdGVfYnVmZmVycyAqY3Jl YXRlKTsKPj4+Pj4+PiDCoMKgICovCj4+Pj4+Pj4gwqAgaW50IHZiMl9wcmVwYXJlX2J1ZihzdHJ1 Y3QgdmIyX3F1ZXVlICpxLCBzdHJ1Y3QgbWVkaWFfZGV2aWNlIAo+Pj4+Pj4+ICptZGV2LAo+Pj4+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHY0bDJf YnVmZmVyICpiKTsKPj4+Pj4+PiArLyoqCj4+Pj4+Pj4gKyAqIHZiMl9kZWxldGVfYnVmKCkgLSBE ZWxldGUgdGhlIGJ1ZmZlciBmcm9tIHRoZSBxdWV1ZQo+Pj4+Pj4+ICsgKgo+Pj4+Pj4+ICsgKiBA cTrCoMKgwqDCoMKgwqDCoMKgIHBvaW50ZXIgdG8gJnN0cnVjdCB2YjJfcXVldWUgd2l0aCB2aWRl b2J1ZjIgcXVldWUuCj4+Pj4+Pj4gKyAqIEBiOsKgwqDCoMKgwqDCoMKgwqAgYnVmZmVyIHN0cnVj dHVyZSBwYXNzZWQgZnJvbSB1c2Vyc3BhY2UgdG8KPj4+Pj4+PiArICogJnY0bDJfaW9jdGxfb3Bz LT52aWRpb2NfZGVsZXRlX2J1ZiBoYW5kbGVyIGluIGRyaXZlcgo+Pj4+Pj4+ICsgKgo+Pj4+Pj4+ ICsgKiBUaGUgcmV0dXJuIHZhbHVlcyBmcm9tIHRoaXMgZnVuY3Rpb24gYXJlIGludGVuZGVkIHRv IGJlIAo+Pj4+Pj4+IGRpcmVjdGx5Cj4+Pj4+Pj4gcmV0dXJuZWQKPj4+Pj4+PiArICogZnJvbSAm djRsMl9pb2N0bF9vcHMtPnZpZGlvY19kZWxldGVfYnVmIGhhbmRsZXIgaW4gZHJpdmVyLgo+Pj4+ Pj4+ICsgKi8KPj4+Pj4+PiAraW50IHZiMl9kZWxldGVfYnVmKHN0cnVjdCB2YjJfcXVldWUgKnEs IHN0cnVjdCB2NGwyX2J1ZmZlciAqYik7Cj4+Pj4+Pj4KPj4+Pj4+PiDCoCAvKioKPj4+Pj4+PiDC oMKgICogdmIyX3FidWYoKSAtIFF1ZXVlIGEgYnVmZmVyIGZyb20gdXNlcnNwYWNlCj4+Pj4+Pj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaAo+Pj4+Pj4+IGIvaW5j bHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oCj4+Pj4+Pj4gaW5kZXggYWVlNzVlYjllNjg2Li4z MWJiYTE5MTU2NDIgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVv ZGV2Mi5oCj4+Pj4+Pj4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oCj4+Pj4+ Pj4gQEAgLTI3MDIsNiArMjcwMiw4IEBAIHN0cnVjdCB2NGwyX2NyZWF0ZV9idWZmZXJzIHsKPj4+ Pj4+PiDCoCAjZGVmaW5lIFZJRElPQ19EQkdfR19DSElQX0lORk/CoCBfSU9XUignVicsIDEwMiwg c3RydWN0Cj4+Pj4+Pj4gdjRsMl9kYmdfY2hpcF9pbmZvKQo+Pj4+Pj4+Cj4+Pj4+Pj4gwqAgI2Rl ZmluZSBWSURJT0NfUVVFUllfRVhUX0NUUkzCoCBfSU9XUignVicsIDEwMywgc3RydWN0Cj4+Pj4+ Pj4gdjRsMl9xdWVyeV9leHRfY3RybCkKPj4+Pj4+PiArI2RlZmluZSBWSURJT0NfREVMRVRFX0JV RsKgwqDCoMKgwqAgX0lPV1IoJ1YnLCAxMDQsIHN0cnVjdCB2NGwyX2J1ZmZlcikKPj4+Pj4+PiAr Cj4+Pj4+Pj4KPj4+Pj4+PiDCoCAvKiBSZW1pbmRlcjogd2hlbiBhZGRpbmcgbmV3IGlvY3RscyBw bGVhc2UgYWRkIHN1cHBvcnQgZm9yIAo+Pj4+Pj4+IHRoZW0gdG8KPj4+Pj4+PiDCoMKgwqDCoCBk cml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWNvbXBhdC1pb2N0bDMyLmMgYXMgd2VsbCEgKi8K Pj4+Pj4+PiAtLSAKPj4+Pj4+PiAyLjM5LjIKPj4+Pj4+Pgo+Pj4+IC0tIAo+Pj4+IEhzaWEtSnVu KFJhbmR5KSBMaQo+Pj4+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LXJvY2tjaGlwCg==