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 54375C4332F for ; Thu, 2 Nov 2023 17:08:54 +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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XVcumwWHc31bWbCKveQj/cz7AKmtOsKO6ueeMyyavxQ=; b=b8AHOMHbBbBJcH 19UBo4wkzSVPqXDvWnhSUTv+GviK1UW0Zz1qUYrvVYpFvv7vFqPeHAn6rBMvLYTTT373bpgZ9K+IF tzbz/mlIPcuvtR/HvF9MRwvoIo8mC9r8XbnH9ChanmHmFvG5jSVZnYFJ4598+BoXCgHXhUSXfad+l pBRWUgRKUrpWz6uIBusNykIHN7Ov9PDf3M9EAKWgtYd+54qXkUXcKKwkwgw5SO6TgtWmc2ZqI7/Di cvDUaP0abyZZ8woi7YVTQBhyn2WhCymX3G0eFcCKlMN4ZQc6NNJnvoIb62vs+H1GjKH344BgiN3tg JG1MsYNpYRrgDHodHkCw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qybAz-009wva-1W; Thu, 02 Nov 2023 17:08:13 +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 1qybAs-009wuG-2f for linux-arm-kernel@lists.infradead.org; Thu, 02 Nov 2023 17:08:10 +0000 Received: from localhost (ec2-34-240-57-77.eu-west-1.compute.amazonaws.com [34.240.57.77]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: dbrouwer) by madras.collabora.co.uk (Postfix) with ESMTPSA id 3150B6601711; Thu, 2 Nov 2023 17:08:03 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1698944883; bh=HxO1+U33MO4A8FHmVRIQuTTtZl2QLDqDP44tUmlEqLg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=X/cjBjLWdF2rvfRRwrSOh4XeD8IkoYQ3GQEEXemVEdjGkJBf0801QkQRy177yhwyF mtOBmmTwzHCdrWIew0+Fj2tHD7vKFaaof8dPy5Ro9QXGR4sO2/3iI6RQFT1ozMd2Ve a/s7lWBzTyjnuojkQVgIdMfFy5jmK4n+3OlrIZNOtqqNuuXFRvjaQxmK/8E4yT22ck kS5LSFm/RwkD+UIcSOo3KULkhtmBMaziHpxlgG3LSeOXDSEi9luUVNk4Y7prJlqwL7 QFAlMw5Zz3YRC7Ncu1Z55g20bjtjxCqF6hw+qUPiNi9QKSiVO41muOswBrmYf8pY6v adn7Luw0ekCzw== Date: Thu, 2 Nov 2023 10:07:59 -0700 From: Deborah Brouwer To: Ivan Bornyakov Cc: Sebastian Fricke , Krzysztof Kozlowski , NXP Linux Team , Conor Dooley , Mauro Carvalho Chehab , Jackson Lee , Hans Verkuil , Sascha Hauer , Rob Herring , Pengutronix Kernel Team , Shawn Guo , Philipp Zabel , Nas Chung , Fabio Estevam , linux-media@vger.kernel.org, Tomasz Figa , linux-kernel@vger.kernel.org, Nicolas Dufresne , kernel@collabora.com, Robert Beckett , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Darren Etheridge Subject: Re: [PATCH v13 5/8] media: chips-media: wave5: Add the v4l2 layer Message-ID: References: <20230929-wave5_v13_media_master-v13-5-5ac60ccbf2ce@collabora.com> <20231017221359.20164-1-brnkv.i1@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20231017221359.20164-1-brnkv.i1@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231102_100807_151094_901E96C6 X-CRM114-Status: GOOD ( 37.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBPY3QgMTgsIDIwMjMgYXQgMDE6MTM6NTJBTSArMDMwMCwgSXZhbiBCb3JueWFrb3Yg d3JvdGU6Cj4gSGkhCgpIaSBJdmFuLAoKPiAKPiBPbiBUaHUsIDEyIE9jdCAyMDIzIDEzOjAxOjAz ICswMjAwLCBTZWJhc3RpYW4gRnJpY2tlIHdyb3RlOgo+ID4gQWRkIHRoZSBkZWNvZGVyIGFuZCBl bmNvZGVyIGltcGxlbWVudGluZyB0aGUgdjRsMgo+ID4gQVBJLiBUaGlzIHBhdGNoIGFsc28gYWRk cyB0aGUgTWFrZWZpbGUgYW5kIHRoZSBWSURFT19XQVZFX1ZQVSBjb25maWcKPiA+IAo+ID4gU2ln bmVkLW9mZi1ieTogU2ViYXN0aWFuIEZyaWNrZSA8c2ViYXN0aWFuLmZyaWNrZUBjb2xsYWJvcmEu Y29tPgo+ID4gU2lnbmVkLW9mZi1ieTogTmljb2xhcyBEdWZyZXNuZSA8bmljb2xhcy5kdWZyZXNu ZUBjb2xsYWJvcmEuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogRGVib3JhaCBCcm91d2VyIDxkZWJv cmFoLmJyb3V3ZXJAY29sbGFib3JhLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFJvYmVydCBCZWNr ZXR0IDxib2IuYmVja2V0dEBjb2xsYWJvcmEuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogRGFmbmEg SGlyc2NoZmVsZCA8ZGFmbmEuaGlyc2NoZmVsZEBjb2xsYWJvcmEuY29tPgo+ID4gU2lnbmVkLW9m Zi1ieTogTmFzIENodW5nIDxuYXMuY2h1bmdAY2hpcHNubWVkaWEuY29tPgo+ID4gLS0tCj4gPiAg ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9jaGlwcy1tZWRpYS9LY29uZmlnICAgICAgICAgfCAgICAx ICsKPiA+ICBkcml2ZXJzL21lZGlhL3BsYXRmb3JtL2NoaXBzLW1lZGlhL01ha2VmaWxlICAgICAg ICB8ICAgIDEgKwo+ID4gIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY2hpcHMtbWVkaWEvd2F2ZTUv S2NvbmZpZyAgIHwgICAxMiArCj4gPiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9jaGlwcy1tZWRp YS93YXZlNS9NYWtlZmlsZSAgfCAgIDEwICsKPiA+ICAuLi4vcGxhdGZvcm0vY2hpcHMtbWVkaWEv d2F2ZTUvd2F2ZTUtaGVscGVyLmMgICAgICB8ICAyMTMgKysrCj4gPiAgLi4uL3BsYXRmb3JtL2No aXBzLW1lZGlhL3dhdmU1L3dhdmU1LWhlbHBlci5oICAgICAgfCAgIDMxICsKPiA+ICAuLi4vcGxh dGZvcm0vY2hpcHMtbWVkaWEvd2F2ZTUvd2F2ZTUtdnB1LWRlYy5jICAgICB8IDE5NTMgKysrKysr KysrKysrKysrKysrKysKPiA+ICAuLi4vcGxhdGZvcm0vY2hpcHMtbWVkaWEvd2F2ZTUvd2F2ZTUt dnB1LWVuYy5jICAgICB8IDE3OTQgKysrKysrKysrKysrKysrKysrCj4gPiAgLi4uL21lZGlhL3Bs YXRmb3JtL2NoaXBzLW1lZGlhL3dhdmU1L3dhdmU1LXZwdS5jICAgfCAgMjkxICsrKwo+ID4gIC4u Li9tZWRpYS9wbGF0Zm9ybS9jaGlwcy1tZWRpYS93YXZlNS93YXZlNS12cHUuaCAgIHwgICA4MyAr Cj4gPiAgLi4uL3BsYXRmb3JtL2NoaXBzLW1lZGlhL3dhdmU1L3dhdmU1LXZwdWFwaS5oICAgICAg fCAgICAyIC0KPiA+ICAxMSBmaWxlcyBjaGFuZ2VkLCA0Mzg5IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCj4gCj4gWy4uLl0KPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3Bs YXRmb3JtL2NoaXBzLW1lZGlhL3dhdmU1L3dhdmU1LXZwdS1kZWMuYyBiL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vY2hpcHMtbWVkaWEvd2F2ZTUvd2F2ZTUtdnB1LWRlYy5jCj4gPiBuZXcgZmlsZSBt b2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi43NGQxZmFlNjRmYTQKPiA+IC0tLSAv ZGV2L251bGwKPiA+ICsrKyBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vY2hpcHMtbWVkaWEvd2F2 ZTUvd2F2ZTUtdnB1LWRlYy5jCj4gCj4gWy4uLl0KPiAKPiA+ICtzdGF0aWMgaW50IHdhdmU1X3Zw dV9kZWNfcXVldWVfc2V0dXAoc3RydWN0IHZiMl9xdWV1ZSAqcSwgdW5zaWduZWQgaW50ICpudW1f YnVmZmVycywKPiA+ICsJCQkJICAgICB1bnNpZ25lZCBpbnQgKm51bV9wbGFuZXMsIHVuc2lnbmVk IGludCBzaXplc1tdLAo+ID4gKwkJCQkgICAgIHN0cnVjdCBkZXZpY2UgKmFsbG9jX2RldnNbXSkK PiA+ICt7Cj4gPiArCXN0cnVjdCB2cHVfaW5zdGFuY2UgKmluc3QgPSB2YjJfZ2V0X2Rydl9wcml2 KHEpOwo+ID4gKwlzdHJ1Y3QgdjRsMl9waXhfZm9ybWF0X21wbGFuZSBpbnN0X2Zvcm1hdCA9Cj4g PiArCQkocS0+dHlwZSA9PSBWNEwyX0JVRl9UWVBFX1ZJREVPX09VVFBVVF9NUExBTkUpID8gaW5z dC0+c3JjX2ZtdCA6IGluc3QtPmRzdF9mbXQ7Cj4gPiArCXVuc2lnbmVkIGludCBpOwo+ID4gKwo+ ID4gKwlkZXZfZGJnKGluc3QtPmRldi0+ZGV2LCAiJXM6IG51bV9idWZmZXJzOiAldSB8IG51bV9w bGFuZXM6ICV1IHwgdHlwZTogJXVcbiIsIF9fZnVuY19fLAo+ID4gKwkJKm51bV9idWZmZXJzLCAq bnVtX3BsYW5lcywgcS0+dHlwZSk7Cj4gPiArCj4gPiArCS8qIHRoZSBDUkVBVEVfQlVGUyBjYXNl ICovCj4gPiArCWlmICgqbnVtX3BsYW5lcykgewo+ID4gKwkJaWYgKGluc3RfZm9ybWF0Lm51bV9w bGFuZXMgIT0gKm51bV9wbGFuZXMpCj4gPiArCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiAr CQlmb3IgKGkgPSAwOyBpIDwgKm51bV9wbGFuZXM7IGkrKykgewo+ID4gKwkJCWlmIChzaXplc1tp XSA8IGluc3RfZm9ybWF0LnBsYW5lX2ZtdFtpXS5zaXplaW1hZ2UpCj4gPiArCQkJCXJldHVybiAt RUlOVkFMOwo+ID4gKwkJfQo+ID4gKwkvKiB0aGUgUkVRQlVGUyBjYXNlICovCj4gPiArCX0gZWxz ZSB7Cj4gPiArCQkqbnVtX3BsYW5lcyA9IGluc3RfZm9ybWF0Lm51bV9wbGFuZXM7Cj4gPiArCj4g PiArCQlpZiAocS0+dHlwZSA9PSBWNEwyX0JVRl9UWVBFX1ZJREVPX09VVFBVVF9NUExBTkUpIHsK PiA+ICsJCQlzaXplc1swXSA9IGluc3RfZm9ybWF0LnBsYW5lX2ZtdFswXS5zaXplaW1hZ2U7Cj4g PiArCQkJZGV2X2RiZyhpbnN0LT5kZXYtPmRldiwgIiVzOiBzaXplWzBdOiAldVxuIiwgX19mdW5j X18sIHNpemVzWzBdKTsKPiA+ICsJCX0gZWxzZSBpZiAoKm51bV9wbGFuZXMgPT0gMSkgewo+IAo+ IEkgdGhpbmssIHlvdSBzaG91bGQgYWxzbyBzZXQgKm51bV9idWZmZXJzIHRvIGJlIGluc3QtPmZi Y19idWZfY291bnQgZm9yCj4gVjRMMl9CVUZfVFlQRV9WSURFT19DQVBUVVJFX01QTEFORSwgbGlr ZSB0aGlzOgo+IAo+IAkJfSBlbHNlIGlmIChxLT50eXBlID09IFY0TDJfQlVGX1RZUEVfVklERU9f Q0FQVFVSRV9NUExBTkUpIHsKPiAJCQlpZiAoKm51bV9idWZmZXJzIDwgaW5zdC0+ZmJjX2J1Zl9j b3VudCkKPiAJCQkJKm51bV9idWZmZXJzID0gaW5zdC0+ZmJjX2J1Zl9jb3VudDsKPiAKPiAJCQlz d2l0Y2ggKCpudW1fcGxhbmVzKSB7Cj4gCQkJY2FzZSAxOgo+IAkJCQkuLi4KPiAJCQljYXNlIDI6 Cj4gCQkJCS4uLgo+IAkJCWNhc2UgMzoKPiAJCQkJLi4uCj4gCQkJfQo+IAkJfQoKSSB3YXMgYWJs ZSB0byByZXByb2R1Y2UgdGhpcyBpc3N1ZSBieSByZXF1ZXN0aW5nIGEgc21hbGwgbnVtYmVyIG9m IGJ1ZmZlcnMKb24gdGhlIENBUFRVUkUgcXVldWUgdGhhdCB3YXMgbGVzcyB0aGFuIGluc3TihpJm YmNfYnVmX2NvdW50LiBXaGVuIHRoaXMgaGFwcGVucywKd2F2ZTVfdnB1X2RlY19qb2JfcmVhZHko KSBmYWlscyBoZXJlOgoodjRsMl9tMm1fbnVtX2RzdF9idWZzX3JlYWR5KG0ybV9jdHgpIDwgKGlu c3QtPmZiY19idWZfY291bnQgLSAxKQoKSSBhbHNvIHRlc3RlZCB5b3VyIHN1Z2dlc3Rpb24gdG8g c2V0IHRoZSAqbnVtX2J1ZmZlcnMgdG8gIGluc3TihpJmYmNfYnVmX2NvdW50CmluIHF1ZXVlX3Nl dHVwKCkgYW5kIGl0IHNlZW1zIHRvIGJlIHdvcmtpbmcgd2VsbCwgdGhhbmtzIGZvciB0aGlzLgoK SSd2ZSBiZWVuIHdvcmtpbmcgb24gd2F5cyB0byBpbXByb3ZlIHRlc3RpbmcgZm9yIHN0YXRlZnVs IGRlY29kZXJzIHNvCkknbSBjdXJpb3VzIGhvdyB5b3UgZm91bmQgdGhpcyBpc3N1ZT8KCldpdGgg Zmx1c3RlciB0ZXN0cyB0aGF0IHdlIHVzZSwgZ3N0cmVhbWVyIHNlZW1zIHRvIGJlIGNhbGN1bGF0 aW5nIGNvcnJlY3QgbnVtYmVyIG9mCkNBUFRVUkUgYnVmZmVycyB0byByZXF1ZXN0LCBzbyB3ZSB3 b3VsZG4ndCBzZWUgdGhpcy4KCj4gCj4gVGhlIHJlYXNvbiBmb3IgdGhhdCBpcyBpZiBmYmNfYnVm X2NvdW50IGlzIGdyZWF0ZXIgdGhhbiBpbml0aWFsIG51bV9idWZmZXJzLAo+IHdhdmU1X3ZwdV9k ZWNfam9iX3JlYWR5KCkgd291bGRuJ3QgYWxsb3cgdG8gaW52b2tlIHdhdmU1X3ZwdV9kZWNfZGV2 aWNlX3J1bigpCj4gCj4gSGVyZSBpcyBhIHBhcnQgb2YgdGhlIGxvZyBvZiBkZXNjcmliZWQgc2l0 dWF0aW9uOgo+IAo+ICAgdmRlYyAyMDQxMDAwMC53YXZlNTE1OiBTd2l0Y2ggc3RhdGUgZnJvbSBO T05FIHRvIE9QRU4uCj4gICBbLi4uXQo+ICAgdmRlYyAyMDQxMDAwMC53YXZlNTE1OiB3YXZlNV92 cHVfZGVjX2luaXRfc2VxOiBpbml0IHNlcSBzZW50IChxdWV1ZSAxIDogMSkKPiAgIHZkZWMgMjA0 MTAwMDAud2F2ZTUxNTogd2F2ZTVfdnB1X2RlY19nZXRfc2VxX2luZm86IGluaXQgc2VxIGNvbXBs ZXRlIChxdWV1ZSAwIDogMCkKPiAgIFsuLi5dCj4gICB2ZGVjIDIwNDEwMDAwLndhdmU1MTU6IGhh bmRsZV9keW5hbWljX3Jlc29sdXRpb25fY2hhbmdlOiB3aWR0aDogNDExMiBoZWlnaHQ6IDMwMDgg cHJvZmlsZTogMSB8IG1pbmJ1ZmZlcjogNgo+ICAgXl5eXl5eXl4gbm90ZSB0aGF0IG1pbmJ1ZmZl ciBpcyA2Cj4gCj4gICB2ZGVjIDIwNDEwMDAwLndhdmU1MTU6IFN3aXRjaCBzdGF0ZSBmcm9tIE9Q RU4gdG8gSU5JVF9TRVEuCj4gICBbLi4uXQo+ICAgdmRlYyAyMDQxMDAwMC53YXZlNTE1OiBkZWNv ZGVyIGNvbW1hbmQ6IDEKPiAgIFsuLi5dCj4gICB2ZGVjIDIwNDEwMDAwLndhdmU1MTU6IHdhdmU1 X3ZwdV9kZWNfcXVldWVfc2V0dXA6IG51bV9idWZmZXJzOiA0IHwgbnVtX3BsYW5lczogMCB8IHR5 cGU6IDkKPiAgIF5eXl5eXl5eIG5vdGUgdGhhdCBudW1fYnVmZmVycyBpcyA0Cj4gCj4gICB2ZGVj IDIwNDEwMDAwLndhdmU1MTU6IHdhdmU1X3ZwdV9kZWNfcXVldWVfc2V0dXA6IHNpemVbMF06IDE4 NjI1NTM2Cj4gICB2ZGVjIDIwNDEwMDAwLndhdmU1MTU6IENBUFRVUkUgcXVldWUgbXVzdCBiZSBz dHJlYW1pbmcgdG8gcXVldWUgam9icyEKPiAgIHZkZWMgMjA0MTAwMDAud2F2ZTUxNTogQ0FQVFVS RSBxdWV1ZSBtdXN0IGJlIHN0cmVhbWluZyB0byBxdWV1ZSBqb2JzIQo+ICAgdmRlYyAyMDQxMDAw MC53YXZlNTE1OiBDQVBUVVJFIHF1ZXVlIG11c3QgYmUgc3RyZWFtaW5nIHRvIHF1ZXVlIGpvYnMh Cj4gICB2ZGVjIDIwNDEwMDAwLndhdmU1MTU6IENBUFRVUkUgcXVldWUgbXVzdCBiZSBzdHJlYW1p bmcgdG8gcXVldWUgam9icyEKPiAgIHZkZWMgMjA0MTAwMDAud2F2ZTUxNTogd2F2ZTVfdnB1X2Rl Y19idWZfcXVldWU6IHR5cGU6ICAgIDkgaW5kZXg6ICAgIDAgc2l6ZTogKFswXT0xODYyNTUzNiwg WzFdPSAgIDAsIFsyXT0gICAwKQo+ICAgdmRlYyAyMDQxMDAwMC53YXZlNTE1OiB3YXZlNV92cHVf ZGVjX2J1Zl9xdWV1ZTogdHlwZTogICAgOSBpbmRleDogICAgMSBzaXplOiAoWzBdPTE4NjI1NTM2 LCBbMV09ICAgMCwgWzJdPSAgIDApCj4gICB2ZGVjIDIwNDEwMDAwLndhdmU1MTU6IHdhdmU1X3Zw dV9kZWNfYnVmX3F1ZXVlOiB0eXBlOiAgICA5IGluZGV4OiAgICAyIHNpemU6IChbMF09MTg2MjU1 MzYsIFsxXT0gICAwLCBbMl09ICAgMCkKPiAgIHZkZWMgMjA0MTAwMDAud2F2ZTUxNTogd2F2ZTVf dnB1X2RlY19idWZfcXVldWU6IHR5cGU6ICAgIDkgaW5kZXg6ICAgIDMgc2l6ZTogKFswXT0xODYy NTUzNiwgWzFdPSAgIDAsIFsyXT0gICAwKQo+ICAgdmRlYyAyMDQxMDAwMC53YXZlNTE1OiB3YXZl NV92cHVfZGVjX3N0YXJ0X3N0cmVhbWluZzogdHlwZTogOQo+ICAgdmRlYyAyMDQxMDAwMC53YXZl NTE1OiBObyBjYXB0dXJlIGJ1ZmZlciByZWFkeSB0byBkZWNvZGUhCj4gICBeXl5eXl5eXiBoZXJl IHY0bDJfbTJtX251bV9kc3RfYnVmc19yZWFkeShtMm1fY3R4KSA8IChpbnN0LT5mYmNfYnVmX2Nv dW50IC0gMSksIG5hbWVseSA0IDwgNgo+ICAgCj4gICB2ZGVjIDIwNDEwMDAwLndhdmU1MTU6IHdh dmU1X3ZwdV9kZWNfc3RvcF9zdHJlYW1pbmc6IHR5cGU6IDkKPiAgIHZkZWMgMjA0MTAwMDAud2F2 ZTUxNTogc3RyZWFtb2ZmX2NhcHR1cmU6IFNldHRpbmcgZGlzcGxheSBmbGFnIG9mIGJ1ZiBpbmRl eDogMCwgZmFpbDogLTIyCj4gICB2ZGVjIDIwNDEwMDAwLndhdmU1MTU6IHN0cmVhbW9mZl9jYXB0 dXJlOiBTZXR0aW5nIGRpc3BsYXkgZmxhZyBvZiBidWYgaW5kZXg6IDEsIGZhaWw6IC0yMgo+ICAg dmRlYyAyMDQxMDAwMC53YXZlNTE1OiBzdHJlYW1vZmZfY2FwdHVyZTogU2V0dGluZyBkaXNwbGF5 IGZsYWcgb2YgYnVmIGluZGV4OiAyLCBmYWlsOiAtMjIKPiAgIHZkZWMgMjA0MTAwMDAud2F2ZTUx NTogc3RyZWFtb2ZmX2NhcHR1cmU6IFNldHRpbmcgZGlzcGxheSBmbGFnIG9mIGJ1ZiBpbmRleDog MywgZmFpbDogLTIyCj4gICBbLi4uXQo+ICAgdmRlYyAyMDQxMDAwMC53YXZlNTE1OiB3YXZlNV92 cHVfZGVjX2Nsb3NlOiBkZWNfZmluaXNoX3NlcSBjb21wbGV0ZQo+IAo+IEFsdGVyaW5nIG51bV9i dWZmZXJzIHNvbHZlcyB0aGUgaXNzdWUgZm9yIG1lLgo+IAo+ID4gKwkJCWlmIChpbnN0LT5vdXRw dXRfZm9ybWF0ID09IEZPUk1BVF80MjIpCj4gPiArCQkJCXNpemVzWzBdID0gaW5zdF9mb3JtYXQu d2lkdGggKiBpbnN0X2Zvcm1hdC5oZWlnaHQgKiAyOwo+ID4gKwkJCWVsc2UKPiA+ICsJCQkJc2l6 ZXNbMF0gPSBpbnN0X2Zvcm1hdC53aWR0aCAqIGluc3RfZm9ybWF0LmhlaWdodCAqIDMgLyAyOwo+ ID4gKwkJCWRldl9kYmcoaW5zdC0+ZGV2LT5kZXYsICIlczogc2l6ZVswXTogJXVcbiIsIF9fZnVu Y19fLCBzaXplc1swXSk7Cj4gPiArCQl9IGVsc2UgaWYgKCpudW1fcGxhbmVzID09IDIpIHsKPiA+ ICsJCQlzaXplc1swXSA9IGluc3RfZm9ybWF0LndpZHRoICogaW5zdF9mb3JtYXQuaGVpZ2h0Owo+ ID4gKwkJCWlmIChpbnN0LT5vdXRwdXRfZm9ybWF0ID09IEZPUk1BVF80MjIpCj4gPiArCQkJCXNp emVzWzFdID0gaW5zdF9mb3JtYXQud2lkdGggKiBpbnN0X2Zvcm1hdC5oZWlnaHQ7Cj4gPiArCQkJ ZWxzZQo+ID4gKwkJCQlzaXplc1sxXSA9IGluc3RfZm9ybWF0LndpZHRoICogaW5zdF9mb3JtYXQu aGVpZ2h0IC8gMjsKPiA+ICsJCQlkZXZfZGJnKGluc3QtPmRldi0+ZGV2LCAiJXM6IHNpemVbMF06 ICV1IHwgc2l6ZVsxXTogJXVcbiIsCj4gPiArCQkJCV9fZnVuY19fLCBzaXplc1swXSwgc2l6ZXNb MV0pOwo+ID4gKwkJfSBlbHNlIGlmICgqbnVtX3BsYW5lcyA9PSAzKSB7Cj4gPiArCQkJc2l6ZXNb MF0gPSBpbnN0X2Zvcm1hdC53aWR0aCAqIGluc3RfZm9ybWF0LmhlaWdodDsKPiA+ICsJCQlpZiAo aW5zdC0+b3V0cHV0X2Zvcm1hdCA9PSBGT1JNQVRfNDIyKSB7Cj4gPiArCQkJCXNpemVzWzFdID0g aW5zdF9mb3JtYXQud2lkdGggKiBpbnN0X2Zvcm1hdC5oZWlnaHQgLyAyOwo+ID4gKwkJCQlzaXpl c1syXSA9IGluc3RfZm9ybWF0LndpZHRoICogaW5zdF9mb3JtYXQuaGVpZ2h0IC8gMjsKPiA+ICsJ CQl9IGVsc2Ugewo+ID4gKwkJCQlzaXplc1sxXSA9IGluc3RfZm9ybWF0LndpZHRoICogaW5zdF9m b3JtYXQuaGVpZ2h0IC8gNDsKPiA+ICsJCQkJc2l6ZXNbMl0gPSBpbnN0X2Zvcm1hdC53aWR0aCAq IGluc3RfZm9ybWF0LmhlaWdodCAvIDQ7Cj4gPiArCQkJfQo+ID4gKwkJCWRldl9kYmcoaW5zdC0+ ZGV2LT5kZXYsICIlczogc2l6ZVswXTogJXUgfCBzaXplWzFdOiAldSB8IHNpemVbMl06ICV1XG4i LAo+ID4gKwkJCQlfX2Z1bmNfXywgc2l6ZXNbMF0sIHNpemVzWzFdLCBzaXplc1syXSk7Cj4gPiAr CQl9Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0dXJuIDA7Cj4gPiArfQo+IAo+IEJUVyBJJ20gY3Vy cmVudGx5IHRpbmtlcmluZyB3aXRoIHlvdXIgcGF0Y2hzZXQgb24gYW5vdGhlciBDJk0gSVAgYW5k IHdvdWxkIGJlCj4gZ3JhdGVmdWxsIGlmIHlvdSBDYyBtZSBpbiB0aGUgZnV0dXJlIHZlcnNpb25z IG9mIHRoZSBwYXRjaHNldCwgaWYgYW55LgoKWWVzLCBzb3JyeSBmb3IgbWlzc2luZyB5b3Ugb24g djEzLCB0aGFua3MgZm9yIHRha2luZyB0aGUgdGltZSB0byByZXZpZXcuCgpEZWJvcmFoCgo+IAo+ IFRoYW5rcy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK