From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1C2D4C48BDF for ; Fri, 18 Jun 2021 19:25:04 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id D9E186113E for ; Fri, 18 Jun 2021 19:25:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D9E186113E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=collabora.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org 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=2lvSWbxGRhATA/zV6b8C+yaqvPDql++NoM04+g4h8ag=; b=Xpg/QWUdqaPc2+ NiHDvLiAy6PsuMLGcnfvIBSDl2YB0sdt05MuFZr+dNFH6yV9HOrS4GaScbarbjL1Wqhy51yHYqQoU 50OcZU+X7qlnqEhUVOAZqinxOsQk8hAn1Ckg+iP3uGxRpzX7aXJjLKFAyikfcmNdzLsBTqZvi3/Do KHmanSS+zf6fELu6prUg1krRJdzwm9GpVtlQmxsp/uYe/2icdhD+RddBeCy1hP1SOheUx9IbQF34I +nCU0txNUHmuNTbJPPuKGhQr3D5zjTnhKt/xYIqMInjRLYIlWKHG6MTDXwAhwTuc+bSrd9sD2Kljr +LgKnvY0Ry20NBUGJLEg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1luK6t-00FI0e-8G; Fri, 18 Jun 2021 19:24:59 +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 1luK6f-00FHxw-Lm; Fri, 18 Jun 2021 19:24:47 +0000 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: ezequiel) with ESMTPSA id E7E7C1F44CE8 Message-ID: <4d41485bb1452ec6b9dfa0a23a925c5dd2af72da.camel@collabora.com> Subject: Re: [PATCH v3 6/8] media: hantro: enumerate scaled output formats From: Ezequiel Garcia To: Benjamin Gaignard , hverkuil@xs4all.nl, p.zabel@pengutronix.de, mchehab@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@siol.net, emil.l.velikov@gmail.com, andrzej.p@collabora.com, jc@kynesim.co.uk, jernej.skrabec@gmail.com, nicolas@ndufresne.ca Cc: kernel@pengutronix.de, linux-imx@nxp.com, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Date: Fri, 18 Jun 2021 16:24:32 -0300 In-Reply-To: <20210618131526.566762-7-benjamin.gaignard@collabora.com> References: <20210618131526.566762-1-benjamin.gaignard@collabora.com> <20210618131526.566762-7-benjamin.gaignard@collabora.com> Organization: Collabora User-Agent: Evolution 3.38.2-1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210618_122446_018517_1D390F0C X-CRM114-Status: GOOD ( 30.36 ) 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 SGkgQmVuamFtaW4sCgpUaGFua3MgZm9yIHdvcmtpbmcgb24gdGhpcy4KCk9uIEZyaSwgMjAyMS0w Ni0xOCBhdCAxNToxNSArMDIwMCwgQmVuamFtaW4gR2FpZ25hcmQgd3JvdGU6Cj4gV2hlbiBlbnVt ZXJhdGluZyB0aGUgb3V0cHV0IGZvcm1hdHMgdGFrZSBjYXJlIG9mIHRoZSBoYXJkd2FyZSBzY2Fs aW5nCj4gY2FwYWJpbGl0aWVzLgo+IEZvciBhIGdpdmVuIGlucHV0IHNpemUgRzIgaGFyZHdhcmUg YmxvY2sgaXMgY2FwYWJsZSBvZiBkb3duIHNjYWxlIHRoZQo+IG91dHB1dCBieSAyLCA0IG9yIDgg ZmFjdG9yLiBXaGVuIGRlY29kaW5nIDRLIHN0cmVhbXMgdGhhdCB0byBiZSBjb3VsZAo+IGhlbHBm dWwgdG8gc2F2ZSBtZW1vcnkgYmFuZHdpZHRoLgo+IAoKTG9va2luZyBhdCBodHRwczovL3d3dy5r ZXJuZWwub3JnL2RvYy9odG1sL2xhdGVzdC91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC9kZXYtc3Rh dGVsZXNzLWRlY29kZXIuaHRtbApJIHNlZSB0aGF0IHRoaXMgY2FzZSBzaG91bGQgYmUgY292ZXJl ZCBieSB0aGUgc3BlYy4KCklmIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHksIGl0IHdvdWxkIGJlOgoK MS4gVklESU9DX1NfRk1UKE9VVFBVVCkKMi4gVklESU9DX0VOVU1fRk1UKENBUFRVUkUpIC8gVklE SU9DX0VOVU1fRlJBTUVTSVpFUyhDQVBUVVJFKQozLiBWSURJT0NfU19GTVQoQ0FQVFVSRSkKNC4g VklESU9DX0dfRk1UKENBUFRVUkUpIGFnYWluIHRvIGdldCBidWZmZXIgaW5mb3JtYXRpb24uCgpE b2VzIHY0bDJjb2RlY3Mgc3VwcG9ydCB0aGlzIGNhc2UgYXMtaXMsIGlmIGNoYW5nZXMgYXJlIG5l ZWRlZCwKSSdkIGxpa2UgdG8gaGF2ZSB0aGUgTVIgcmVhZHkgYW5kIHJldmlld2VkIGJ5IE5pY29s YXMuCgpJIGtub3cgaXQncyBhIHN0YWdpbmcgZHJpdmVyLCBidXQgSSBiZWxpZXZlIGl0J3MgaW1w b3J0YW50CnRvIGhhdmUgdXNlcnMgZm9yIG5ldyBjYXNlcy9mZWF0dXJlIHRvIGF2b2lkIGJpdHJv dHRpbmcuCgo+IFNpZ25lZC1vZmYtYnk6IEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWln bmFyZEBjb2xsYWJvcmEuY29tPgo+IC0tLQo+IMKgZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRy by9oYW50cm8uaMKgwqDCoMKgwqDCoMKgwqAgfMKgIDQgKysKPiDCoC4uLi9zdGFnaW5nL21lZGlh L2hhbnRyby9oYW50cm9fZzJfaGV2Y19kZWMuYyB8IDQ2ICsrKysrKysrKysrKysrKysrKy0KPiDC oGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cyX3JlZ3MuaCB8wqAgNiArKysK PiDCoGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2h3LmjCoMKgwqDCoMKgIHzC oCAxICsKPiDCoGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX3Y0bDIuY8KgwqDC oCB8IDEwICsrLS0KPiDCoGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaW14OG1fdnB1X2h3 LmPCoMKgIHzCoCAxICsKPiDCoDYgZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgNSBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hhbnRy by9oYW50cm8uaCBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvLmgKPiBpbmRl eCA2YTIxZDFlOTViMzQuLmNhOTAzOGIwMzg0YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3N0YWdp bmcvbWVkaWEvaGFudHJvL2hhbnRyby5oCj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL21lZGlhL2hh bnRyby9oYW50cm8uaAo+IEBAIC03MSw2ICs3MSw5IEBAIHN0cnVjdCBoYW50cm9faXJxIHsKPiDC oCAqIEByZWdfbmFtZXM6wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGFycmF5IG9m IHJlZ2lzdGVyIHJhbmdlIG5hbWVzCj4gwqAgKiBAbnVtX3JlZ3M6wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgbnVtYmVyIG9mIHJlZ2lzdGVyIHJhbmdlIG5hbWVzIGluIHRoZSBh cnJheQo+IMKgICogQHBvc3Rwcm9jX3JlZ3M6wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAmc3Ry dWN0IGhhbnRyb19wb3N0cHJvY19yZWdzIHBvaW50ZXIKPiArICogQHNjYWxpbmc6wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBTZXQgcG9zc2libGUgc2NhbGVkIG91dHB1dCBm b3JtYXRzLgo+ICsgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBSZXR1cm5zIHplcm8gaWYgT0ssIGEgbmVnYXRpdmUgdmFsdWUgaW4gZXJy b3IgY2FzZXMuCj4gKyAqwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoE9wdGlvbmFsLgo+IMKgICovCj4gwqBzdHJ1Y3QgaGFudHJvX3Zhcmlh bnQgewo+IMKgwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgZW5jX29mZnNldDsKPiBAQCAtOTIs NiArOTUsNyBAQCBzdHJ1Y3QgaGFudHJvX3ZhcmlhbnQgewo+IMKgwqDCoMKgwqDCoMKgwqBjb25z dCBjaGFyICogY29uc3QgKnJlZ19uYW1lczsKPiDCoMKgwqDCoMKgwqDCoMKgaW50IG51bV9yZWdz Owo+IMKgwqDCoMKgwqDCoMKgwqBjb25zdCBzdHJ1Y3QgaGFudHJvX3Bvc3Rwcm9jX3JlZ3MgKnBv c3Rwcm9jX3JlZ3M7Cj4gK8KgwqDCoMKgwqDCoMKgaW50ICgqc2NhbGluZykoc3RydWN0IGhhbnRy b19jdHggKmN0eCwgc3RydWN0IHY0bDJfZnJtc2l6ZWVudW0gKmZzaXplKTsKClBsZWFzZSBhZGQg c29tZSAub3BzIGZpZWxkLCBzbyB3ZSBjYW4gcHV0IHRoaXMKYW5kIG1vdmUgaW5pdCBhbmQgcnVu dGltZV9yZXN1bWUgYXMgd2VsbC4KIAo+IMKgfTsKPiDCoAo+IMKgLyoqCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9oYW50cm8vaGFudHJvX2cyX2hldmNfZGVjLmMgYi9kcml2 ZXJzL3N0YWdpbmcvbWVkaWEvaGFudHJvL2hhbnRyb19nMl9oZXZjX2RlYy5jCj4gaW5kZXggNDFk Yzg5ZWM5MjZjLi4zYThhYTJmZjEwOWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL21l ZGlhL2hhbnRyby9oYW50cm9fZzJfaGV2Y19kZWMuYwo+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9t ZWRpYS9oYW50cm8vaGFudHJvX2cyX2hldmNfZGVjLmMKPiBAQCAtMzk2LDYgKzM5NiwxNyBAQCBz dGF0aWMgdm9pZCBzZXRfcmVmX3BpY19saXN0KHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gwqDC oMKgwqDCoMKgwqDCoH0KPiDCoH0KPiDCoAo+ICtzdGF0aWMgaW50IGRvd25fc2NhbGVfZmFjdG9y KHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gK3sKPiArwqDCoMKgwqDCoMKgwqBjb25zdCBzdHJ1 Y3QgaGFudHJvX2hldmNfZGVjX2N0cmxzICpjdHJscyA9ICZjdHgtPmhldmNfZGVjLmN0cmxzOwo+ ICvCoMKgwqDCoMKgwqDCoGNvbnN0IHN0cnVjdCB2NGwyX2N0cmxfaGV2Y19zcHMgKnNwcyA9IGN0 cmxzLT5zcHM7Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoGlmIChzcHMtPnBpY193aWR0aF9pbl9sdW1h X3NhbXBsZXMgPT0gY3R4LT5kc3RfZm10LndpZHRoKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqByZXR1cm4gMDsKPiArCj4gK8KgwqDCoMKgwqDCoMKgcmV0dXJuIERJVl9ST1VORF9D TE9TRVNUKHNwcy0+cGljX3dpZHRoX2luX2x1bWFfc2FtcGxlcywgY3R4LT5kc3RfZm10LndpZHRo KTsKPiArfQo+ICsKPiDCoHN0YXRpYyBpbnQgc2V0X3JlZihzdHJ1Y3QgaGFudHJvX2N0eCAqY3R4 KQo+IMKgewo+IMKgwqDCoMKgwqDCoMKgwqBjb25zdCBzdHJ1Y3QgaGFudHJvX2hldmNfZGVjX2N0 cmxzICpjdHJscyA9ICZjdHgtPmhldmNfZGVjLmN0cmxzOwo+IEBAIC00MDksNiArNDIwLDcgQEAg c3RhdGljIGludCBzZXRfcmVmKHN0cnVjdCBoYW50cm9fY3R4ICpjdHgpCj4gwqDCoMKgwqDCoMKg wqDCoHNpemVfdCBtdl9vZmZzZXQgPSBoYW50cm9faGV2Y19tb3Rpb25fdmVjdG9yc19vZmZzZXQo c3BzKTsKPiDCoMKgwqDCoMKgwqDCoMKgc2l6ZV90IGNvbXByZXNzX2x1bWFfb2Zmc2V0ID0gaGFu dHJvX2hldmNfbHVtYV9jb21wcmVzc19vZmZzZXQoc3BzKTsKPiDCoMKgwqDCoMKgwqDCoMKgc2l6 ZV90IGNvbXByZXNzX2Nocm9tYV9vZmZzZXQgPSBoYW50cm9faGV2Y19jaHJvbWFfY29tcHJlc3Nf b2Zmc2V0KHNwcyk7Cj4gK8KgwqDCoMKgwqDCoMKgaW50IGRvd25fc2NhbGUgPSBkb3duX3NjYWxl X2ZhY3RvcihjdHgpOwo+IMKgwqDCoMKgwqDCoMKgwqB1MzIgbWF4X3JlZl9mcmFtZXM7Cj4gwqDC oMKgwqDCoMKgwqDCoHUxNiBkcGJfbG9uZ3Rlcm1fZTsKPiDCoMKgwqDCoMKgwqDCoMKgc3RhdGlj IGNvbnN0IHN0cnVjdCBoYW50cm9fcmVnIGN1cl9wb2NbXSA9IHsKPiBAQCAtNTIxLDggKzUzMywx OCBAQCBzdGF0aWMgaW50IHNldF9yZWYoc3RydWN0IGhhbnRyb19jdHggKmN0eCkKPiDCoMKgwqDC oMKgwqDCoMKgaGFudHJvX3dyaXRlX2FkZHIodnB1LCBHMl9SRUdfQ0hSX1JFRihpKSwgY2hyb21h X2FkZHIpOwo+IMKgwqDCoMKgwqDCoMKgwqBoYW50cm9fd3JpdGVfYWRkcih2cHUsIEcyX1JFR19E TVZfUkVGKGkrKyksIG12X2FkZHIpOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgaGFudHJvX3dyaXRl X2FkZHIodnB1LCBHMl9BRERSX0RTVCwgbHVtYV9hZGRyKTsKPiAtwqDCoMKgwqDCoMKgwqBoYW50 cm9fd3JpdGVfYWRkcih2cHUsIEcyX0FERFJfRFNUX0NIUiwgY2hyb21hX2FkZHIpOwo+ICvCoMKg wqDCoMKgwqDCoGlmIChkb3duX3NjYWxlKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoGNocm9tYV9hZGRyID0gbHVtYV9hZGRyICsgKGNyX29mZnNldCA+PiBkb3duX3NjYWxlKTsK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaGFudHJvX3JlZ193cml0ZSh2cHUsICZn Ml9kb3duX3NjYWxlX2UsIDEpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBoYW50 cm9fcmVnX3dyaXRlKHZwdSwgJmcyX2Rvd25fc2NhbGVfeSwgZG93bl9zY2FsZSA+PiAyKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaGFudHJvX3JlZ193cml0ZSh2cHUsICZnMl9k b3duX3NjYWxlX3gsIGRvd25fc2NhbGUgPj4gMik7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGhhbnRyb193cml0ZV9hZGRyKHZwdSwgRzJfRFNfRFNULCBsdW1hX2FkZHIpOwo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBoYW50cm9fd3JpdGVfYWRkcih2cHUsIEcyX0RT X0RTVF9DSFIsIGNocm9tYV9hZGRyKTsKPiArwqDCoMKgwqDCoMKgwqB9IGVsc2Ugewo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBoYW50cm9fd3JpdGVfYWRkcih2cHUsIEcyX0FERFJf RFNULCBsdW1hX2FkZHIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBoYW50cm9f d3JpdGVfYWRkcih2cHUsIEcyX0FERFJfRFNUX0NIUiwgY2hyb21hX2FkZHIpOwo+ICvCoMKgwqDC oMKgwqDCoH0KPiArCj4gwqDCoMKgwqDCoMKgwqDCoGhhbnRyb193cml0ZV9hZGRyKHZwdSwgRzJf QUREUl9EU1RfTVYsIG12X2FkZHIpOwo+IMKgwqDCoMKgwqDCoMKgwqBoYW50cm9fd3JpdGVfYWRk cih2cHUsIEcyX0NPTVBfQUREUl9EU1QsIGNvbXByZXNzX2x1bWFfYWRkcik7Cj4gwqDCoMKgwqDC oMKgwqDCoGhhbnRyb193cml0ZV9hZGRyKHZwdSwgRzJfQ09NUF9DSFIsIGNvbXByZXNzX2Nocm9t YV9hZGRyKTsKPiBAQCAtNjAzLDYgKzYyNSwyNiBAQCBzdGF0aWMgdm9pZCBoYW50cm9fZzJfY2hl Y2tfaWRsZShzdHJ1Y3QgaGFudHJvX2RldiAqdnB1KQo+IMKgwqDCoMKgwqDCoMKgwqB9Cj4gwqB9 Cj4gwqAKPiAraW50IGhhbnRyb19nMl9oZXZjX2RlY19zY2FsaW5nKHN0cnVjdCBoYW50cm9fY3R4 ICpjdHgsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc3RydWN0IHY0bDJfZnJtc2l6ZWVudW0gKmZzaXplKQoKTWF5YmUKCnMvaGFu dHJvX2cyX2hldmNfZGVjX3NjYWxpbmcvaGFudHJvX2cyX2hldmNfZW51bV9mcmFtZXNpemVzCgp3 b3VsZCBiZSBjbGVhcj8KCklzIHRoaXMgcmVzdHJpY3RlZCB0byBIRVZDIG9yIGlzIGl0IHNvbWV0 aGluZyB0aGF0IHdpbGwKd29yayBvbiBWUDkgYXMgd2VsbD8KCj4gK3sKPiArwqDCoMKgwqDCoMKg wqAvKioKPiArwqDCoMKgwqDCoMKgwqAgKiBHMiBzY2FsZXIgY2FuIHNjYWxlIGRvd24gYnkgMCwg MiwgNCBvciA4Cj4gK8KgwqDCoMKgwqDCoMKgICogdXNlIGZzaXplLT5pbmRleCBoYXMgcG93ZXIg b2YgMiBkaXZpc2VyCj4gK8KgwqDCoMKgwqDCoMKgICoqLwoKUGxlYXNlIHVzZQoKLyoKICoKICov CgpzdHlsZS4KCj4gK8KgwqDCoMKgwqDCoMKgaWYgKGZzaXplLT5pbmRleCA+IDMpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRUlOVkFMOwo+ICsKPiArwqDCoMKgwqDC oMKgwqBpZiAoIWN0eC0+c3JjX2ZtdC53aWR0aCB8fCAhY3R4LT5zcmNfZm10LmhlaWdodCkKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICvCoMKg wqDCoMKgwqDCoGZzaXplLT50eXBlID0gVjRMMl9GUk1TSVpFX1RZUEVfRElTQ1JFVEU7Cj4gK8Kg wqDCoMKgwqDCoMKgZnNpemUtPmRpc2NyZXRlLndpZHRoID0gY3R4LT5zcmNfZm10LndpZHRoID4+ IGZzaXplLT5pbmRleDsKPiArwqDCoMKgwqDCoMKgwqBmc2l6ZS0+ZGlzY3JldGUuaGVpZ2h0ID0g Y3R4LT5zcmNfZm10LmhlaWdodCA+PiBmc2l6ZS0+aW5kZXg7Cj4gKwo+ICvCoMKgwqDCoMKgwqDC oHJldHVybiAwOwo+ICt9Cj4gKwpbLi5dCj4gLSAgICAgICAvKiBUaGlzIG9ubHkgbWFrZXMgc2Vu c2UgZm9yIGNvZGVkIGZvcm1hdHMgKi8KPiAtICAgICAgIGlmIChmbXQtPmNvZGVjX21vZGUgPT0g SEFOVFJPX01PREVfTk9ORSkKPiArICAgICAgIC8qIEZvciBub24tY29kZWQgZm9ybWF0cyBjaGVj ayBpZiBzY2FsaW5nIGlzIHBvc3NpYmxlICovCj4gKyAgICAgICBpZiAoZm10LT5jb2RlY19tb2Rl ID09IEhBTlRST19NT0RFX05PTkUpIHsKPiArICAgICAgICAgICAgICAgaWYgKGN0eC0+ZGV2LT52 YXJpYW50LT5zY2FsaW5nKQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdHgtPmRl di0+dmFyaWFudC0+c2NhbGluZyhjdHgsIGZzaXplKTsKPiArCj4gICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwoKSSB3b25kZXIgd2h5IHdlIGFyZSByZXR1cm5pbmcgRUlOVkFMIGhlcmUu IENhbiB3ZSBzdXBwb3J0Ci52aWRpb2NfZW51bV9mcmFtZXNpemVzIGZvciBjb2RlZCBhbmQgbm9u LWNvZGVkPwoKVGhhbmtzLApFemVxdWllbAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkxpbnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2Nr Y2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtcm9ja2NoaXAK