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 8F4B8C5AD49 for ; Mon, 2 Jun 2025 12:18:47 +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: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ifJhYCtIFhBKzb1wDNufeyvB13AzPTf3PyCX7Lgo4nA=; b=DrnQBzBzSlmSP1 3XxkJXfwglbYaPhfEGAF37wHe4cQQg6lVIXklWqJFRoU14nlKR3g4DfuevbvlOODPqIRc+BSTiDcs rLW2Pqe1kGfpTxD4pVqeHcX1U9O4mq4t20eaUxBqDEXGJ2MzWoxqZPse0U9u7kTT4MULqEr1n/EPK nM7UQ71+xfrXvytIi+Sy/LD0cYWYgazoJKF03OYK4AglYaHI0UHK3+Y0yaRjtNukyX/wNwR4e/3hw q2ZTyBJOEOSu0441tElFxpm7mFhO6tsAQMWD8FeqQkQw0PTbs1YlZ9WqconPfrvfLhaD1N9tl02xp fdkc1TMQw4Ti8x7vkZXg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uM47i-00000007Laq-1N6U; Mon, 02 Jun 2025 12:18:38 +0000 Received: from sender4-pp-f112.zoho.com ([136.143.188.112]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uM45U-00000007LOE-47fF; Mon, 02 Jun 2025 12:16:22 +0000 ARC-Seal: i=1; a=rsa-sha256; t=1748866555; cv=none; d=zohomail.com; s=zohoarc; b=Vze/kjONo0AB70e1wZ0QkC2ynBo7Zq0uf545gqPwLvISGOTvuXAzUA+ZQUkgT/yabPY4SAI2wwfEWd++Pw3ju8eduO8POg4kuAyjrjtBUPFe1VIXQ8CPEs6/uW48a5pNQRRtUDuzPd49Pq89mcCcI+He1MfMlB0Ae4mruy/63t4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1748866555; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=+Aed1G3zEdiAE6/euJzRcaSWP5Y0mYDbnxPBMhKta6o=; b=Iw8ItoI0JX6aQ7esTRNbGbiSqiY+ajT7E3BJrKp1tp4mWqzgrycY7i4VNskyjzLnX6K4u6E59RojQDqqL8WpN3cLmJNGRiLl1gHrZnTGn6eQP0ldwqgtMogpDTDMFSXhgOH1r9GUfwXsAAstygtb/1rooxcO3R0AsBzW1FynCsM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=collabora.com; spf=pass smtp.mailfrom=nicolas.frattaroli@collabora.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1748866555; s=zohomail; d=collabora.com; i=nicolas.frattaroli@collabora.com; h=From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:Message-ID:In-Reply-To:References:MIME-Version:Content-Transfer-Encoding:Content-Type:Message-Id:Reply-To; bh=+Aed1G3zEdiAE6/euJzRcaSWP5Y0mYDbnxPBMhKta6o=; b=O39AVe9TKwe84UGQR/XEuzyNvSLxFaej5EFC98AH5IcrJ9mhLCJkAz3qaYrbCR9o Noy0MVDMzoyJCuqqYeai7k8gxbeP26nKRLSelY36aQlr373aHsEfUJelARxQdb4wGdR nqdhZxkeKZF7d+Wr9EUcC0NT9lkWqv/EleeL9MEE= Received: by mx.zohomail.com with SMTPS id 1748866552562746.0707424997689; Mon, 2 Jun 2025 05:15:52 -0700 (PDT) From: Nicolas Frattaroli To: Linus Walleij , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Uwe =?UTF-8?B?S2xlaW5lLUvDtm5pZw==?= , William Breathitt Gray , Sebastian Reichel , Kever Yang , Heiko =?UTF-8?B?U3TDvGJuZXI=?= Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org, linux-iio@vger.kernel.org, kernel@collabora.com, Jonas Karlman , Detlev Casanova Subject: Re: [PATCH 4/7] soc: rockchip: add mfpwm driver Date: Mon, 02 Jun 2025 14:15:45 +0200 Message-ID: <13790724.uLZWGnKmhe@workhorse> In-Reply-To: <2188729.OBFZWjSADL@diego> References: <20250408-rk3576-pwm-v1-0-a49286c2ca8e@collabora.com> <20250408-rk3576-pwm-v1-4-a49286c2ca8e@collabora.com> <2188729.OBFZWjSADL@diego> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250602_051621_070370_23D8D00A X-CRM114-Status: GOOD ( 41.13 ) 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 T24gU2F0dXJkYXksIDMxIE1heSAyMDI1IDIzOjQ4OjI5IENlbnRyYWwgRXVyb3BlYW4gU3VtbWVy IFRpbWUgSGVpa28gU3TDvGJuZXIgd3JvdGU6Cj4gQW0gRGllbnN0YWcsIDguIEFwcmlsIDIwMjUs IDE0OjMyOjE2IE1pdHRlbGV1cm9ww6Rpc2NoZSBTb21tZXJ6ZWl0IHNjaHJpZWIgTmljb2xhcyBG cmF0dGFyb2xpOgo+ID4gV2l0aCB0aGUgUm9ja2NoaXAgUkszNTc2LCB0aGUgUFdNIElQIHVzZWQg YnkgUm9ja2NoaXAgaGFzIGNoYW5nZWQKPiA+IHN1YnN0YW50aWFsbHkuIExvb2tpbmcgYXQgYm90 aCB0aGUgZG93bnN0cmVhbSBwd20tcm9ja2NoaXAgZHJpdmVyIGFzCj4gPiB3ZWxsIGFzIHRoZSBt YWlubGluZSBwd20tcm9ja2NoaXAgZHJpdmVyIG1hZGUgaXQgY2xlYXIgdGhhdCB3aXRoIGFsbCBp dHMKPiA+IGFkZGl0aW9uYWwgZmVhdHVyZXMgYW5kIGl0cyBkaWZmZXJlbmNlcyBmcm9tIHByZXZp b3VzIElQIHJldmlzaW9ucywgaXQKPiA+IGlzIGJlc3Qgc3VwcG9ydGVkIGluIGEgbmV3IGRyaXZl ci4KPiA+IAo+ID4gVGhpcyBicmluZ3MgdXMgdG8gdGhlIHF1ZXN0aW9uIGFzIHRvIHdoYXQgc3Vj aCBhIG5ldyBkcml2ZXIgc2hvdWxkIGJlLgo+ID4gVG8gbWUsIGl0IHNvb24gYmVjYW1lIGNsZWFy IHRoYXQgaXQgc2hvdWxkIGFjdHVhbGx5IGJlIHNldmVyYWwgbmV3Cj4gPiBkcml2ZXJzLCBtb3N0 IHByb21pbmVudGx5IHdoZW4gVXdlIEtsZWluZS1Lw7ZuaWcgbGV0IG1lIGtub3cgdGhhdCBJCj4g PiBzaG91bGQgbm90IGltcGxlbWVudCB0aGUgcHdtIHN1YnN5c3RlbSdzIGNhcHR1cmUgY2FsbGJh Y2ssIGJ1dCBpbnN0ZWFkCj4gPiB3cml0ZSBhIGNvdW50ZXIgZHJpdmVyIGZvciB0aGlzIGZ1bmN0 aW9uYWxpdHkuCj4gPiAKPiA+IENvbWJpbmVkIHdpdGggdGhlIG90aGVyIGFzLW9mLXlldCB1bmlt cGxlbWVudGVkIGZ1bmN0aW9uYWxpdHkgb2YgdGhpcwo+ID4gbmV3IElQLCBpdCBiZWNhbWUgYXBw YXJlbnQgdGhhdCBpdCBuZWVkcyB0byBiZSBzcHJlYWQgYWNyb3NzIHNldmVyYWwKPiA+IHN1YnN5 c3RlbXMuCj4gPiAKPiA+IEZvciB0aGlzIHJlYXNvbiwgd2UgYWRkIGEgbmV3IHBsYXRmb3JtIGJ1 cyBiYXNlZCBkcml2ZXIsIGNhbGxlZCBtZnB3bQo+ID4gKHNob3J0IGZvciAiTXVsdGktZnVuY3Rp b24gUFdNIikuIFRoaXMgInBhcmVudCIgZHJpdmVyIG1ha2VzIHN1cmUgdGhhdAo+ID4gb25seSBv bmUgZGV2aWNlIGZ1bmN0aW9uIGRyaXZlciBpcyB1c2luZyB0aGUgZGV2aWNlIGF0IGEgdGltZSwg YW5kIGlzIGluCj4gPiBjaGFyZ2Ugb2YgcmVnaXN0ZXJpbmcgdGhlIHBsYXRmb3JtIGJ1cyBkZXZp Y2VzIGZvciB0aGUgaW5kaXZpZHVhbCBkZXZpY2UKPiA+IGZ1bmN0aW9ucyBvZmZlcmVkIGJ5IHRo ZSBkZXZpY2UuCj4gPiAKPiA+IEFuIGFjcXVpcmUvcmVsZWFzZSBwYXR0ZXJuIGlzIHVzZWQgdG8g Z3VhcmFudGVlIHRoYXQgZGV2aWNlIGZ1bmN0aW9uCj4gPiBkcml2ZXJzIGRvbid0IHN0ZXAgb24g ZWFjaCBvdGhlcidzIHRvZXMuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IE5pY29sYXMgRnJhdHRh cm9saSA8bmljb2xhcy5mcmF0dGFyb2xpQGNvbGxhYm9yYS5jb20+Cj4gCj4gYWN0dWFsbHkgdHJ5 aW5nIHRvIGNvbXBpbGUgdGhpcywgbGVkIG1lIHRvCj4gCj4gYWFyY2g2NC1saW51eC1nbnUtbGQ6 IGRyaXZlcnMvc29jL3JvY2tjaGlwL21mcHdtLm86IGluIGZ1bmN0aW9uIGBtZnB3bV9yZWdfcmVh ZCc6Cj4gL2hvbWUvZGV2ZWwvaHN0dWVibmVyLzAwX2dpdC1yZXBvcy9saW51eC1yb2NrY2hpcC9f YnVpbGQtYXJtNjQvLi4vaW5jbHVkZS9zb2Mvcm9ja2NoaXAvbWZwd20uaDo0MjM6IG11bHRpcGxl IGRlZmluaXRpb24gb2YgYG1mcHdtX3JlZ19yZWFkJzsgZHJpdmVycy9wd20vcHdtLXJvY2tjaGlw LXY0Lm86L2hvbWUvZGV2ZWwvaHN0dWVibmVyLzAwX2dpdC1yZXBvcy9saW51eC1yb2NrY2hpcC9f YnVpbGQtYXJtNjQvLi4vaW5jbHVkZS9zb2Mvcm9ja2NoaXAvbWZwd20uaDo0MjM6IGZpcnN0IGRl ZmluZWQgaGVyZQo+IGFhcmNoNjQtbGludXgtZ251LWxkOiBkcml2ZXJzL3NvYy9yb2NrY2hpcC9t ZnB3bS5vOiBpbiBmdW5jdGlvbiBgbWZwd21fcmVnX3dyaXRlJzoKPiAvaG9tZS9kZXZlbC9oc3R1 ZWJuZXIvMDBfZ2l0LXJlcG9zL2xpbnV4LXJvY2tjaGlwL19idWlsZC1hcm02NC8uLi9pbmNsdWRl L3NvYy9yb2NrY2hpcC9tZnB3bS5oOjQyODogbXVsdGlwbGUgZGVmaW5pdGlvbiBvZiBgbWZwd21f cmVnX3dyaXRlJzsgZHJpdmVycy9wd20vcHdtLXJvY2tjaGlwLXY0Lm86L2hvbWUvZGV2ZWwvaHN0 dWVibmVyLzAwX2dpdC1yZXBvcy9saW51eC1yb2NrY2hpcC9fYnVpbGQtYXJtNjQvLi4vaW5jbHVk ZS9zb2Mvcm9ja2NoaXAvbWZwd20uaDo0Mjg6IGZpcnN0IGRlZmluZWQgaGVyZQo+IG1ha2VbM106 ICoqKiBbLi4vc2NyaXB0cy9NYWtlZmlsZS52bWxpbnV4X286NzI6IHZtbGludXgub10gRmVobGVy IDEKPiAKPiAKPiBkdXJpbmcgdGhlIGxpbmtpbmcgc3RhZ2UgLSB3aXRoIHRoZSBkcml2ZXIgYXMg YnVpbHRpbgo+IAo+IAo+ID4gK2lubGluZSB1MzIgbWZwd21fcmVnX3JlYWQodm9pZCBfX2lvbWVt ICpiYXNlLCB1MzIgcmVnKQo+ID4gK3sKPiA+ICsJcmV0dXJuIHJlYWRsKGJhc2UgKyByZWcpOwo+ ID4gK30KPiA+ICsKPiA+ICtpbmxpbmUgdm9pZCBtZnB3bV9yZWdfd3JpdGUodm9pZCBfX2lvbWVt ICpiYXNlLCB1MzIgcmVnLCB1MzIgdmFsKQo+ID4gK3sKPiA+ICsJd3JpdGVsKHZhbCwgYmFzZSAr IHJlZyk7Cj4gPiArfQo+IAo+IG1ha2luZyB0aGF0IGEgInN0YXRpYyBpbmxpbmUgLi4uIiBzb2x2 ZXMgdGhhdC4KCkFjaywgd2lsbCBjaGFuZ2UKCj4gCj4gCj4gT24gYSBtb3JlIGdlbmVyYWwgbm90 ZSwgd2hhdCBpcyB0aGUgZGlmZmVyZW50aWF0aW9uIHRvIGFuIE1GRCBoZXJlPwo+IAo+IExpa2Ug eW91IGNhbiBhbHJlYWR5IGJpbmQgZHQtbm9kZXMgdG8gTUZEIHN1YmRldmljZXMsIGFuZCBjYW4g aW1wbGVtZW50Cj4gdGhlIGV4Y2x1c2l2aXR5IEFQSSB0aGluZyBvbiB0b3Agb2YgYSBnZW5lcmFs IG1mZCBkZXZpY2UsIHRvIG1ha2Ugc3VyZSBvbmx5Cj4gb25lIG1mZC1jZWxsIGdldHMgYWN0aXZh dGVkIGF0IG9uZSB0aW1lLgo+IAo+IE90aGVyIHRoYW4gdGhhdCwgdGhpcyBsb29rcyBsaWtlIGl0 IHJlaW1wbGVtZW50cyBNRkRzPwoKV2hhdCBpbml0aWFsbHkgbWFkZSBtZSBub3QgbWFrZSB0aGlz IGFuIE1GRCB3YXMgVXdlIEtsZWluZS1Lw7ZuaWcgZXhwcmVzc2luZwpzb21lIGRvdWJ0cywgd2hp Y2ggbGVhZCBtZSB0byBhbHRlcm5hdGl2ZXMgbGlrZSB0aGUgYXV4aWxpYXJ5IGJ1cy4gUmVhZGlu ZyB0aGUKYXV4aWxpYXJ5IGJ1cyBkb2NzIEkgZm91bmQ6CgogIEEga2V5IHJlcXVpcmVtZW50IGZv ciB1dGlsaXppbmcgdGhlIGF1eGlsaWFyeSBidXMgaXMgdGhhdCB0aGVyZSBpcyBubwogIGRlcGVu ZGVuY3kgb24gYSBwaHlzaWNhbCBidXMsIGRldmljZSwgcmVnaXN0ZXIgYWNjZXNzZXMgb3IgcmVn bWFwIHN1cHBvcnQuCiAgVGhlc2UgaW5kaXZpZHVhbCBkZXZpY2VzIHNwbGl0IGZyb20gdGhlIGNv cmUgY2Fubm90IGxpdmUgb24gdGhlIHBsYXRmb3JtCiAgYnVzIGFzIHRoZXkgYXJlIG5vdCBwaHlz aWNhbCBkZXZpY2VzIHRoYXQgYXJlIGNvbnRyb2xsZWQgYnkgRFQvQUNQSS4gVGhlCiAgc2FtZSBh cmd1bWVudCBhcHBsaWVzIGZvciBub3QgdXNpbmcgTUZEIGluIHRoaXMgc2NlbmFyaW8gYXMgTUZE IHJlbGllcyBvbgogIGluZGl2aWR1YWwgZnVuY3Rpb24gZGV2aWNlcyBiZWluZyBwaHlzaWNhbCBk ZXZpY2VzLgoKQWRkaXRpb25hbGx5LCBMV05bMV0gYWJvdXQgdGhlIGF1eGlsaWFyeSBidXMsIHdo aWNoIEkndmUgcmVhZCB1cCBvbiBkdXJpbmcgbXkKaWxsLWZhdGVkIGpvdXJuZXkgaW50byB0aGF0 IHZlcnNpb24gb2YgdGhlIGRyaXZlciwgYWxzbyBnb2VzIGZ1cnRoZXIgaW50byB3aHkKTUZEIGlz IHNvbWV0aW1lcyBhIGJhZCBmaXQ6CgogIExpbnV4IGFscmVhZHkgaW5jbHVkZXMgYSBudW1iZXIg b2YgZHJpdmVycyBmb3IgbXVsdGktZnVuY3Rpb24gZGV2aWNlcy4gT25lCiAgb2YgdGhlIHdheXMg dG8gc3VwcG9ydCB0aGVtIGlzIHRoZSBNdWx0aS1GdW5jdGlvbiBEZXZpY2VzIChNRkQpIHN1YnN5 c3RlbS4KICBJdCBoYW5kbGVzIGluZGVwZW5kZW50IGRldmljZXMgImdsdWVkIiB0b2dldGhlciBp bnRvIG9uZSBoYXJkd2FyZSBibG9jawogIHdoaWNoIG1heSBjb250YWluIHNvbWUgc2hhcmVkIHJl c291cmNlcy4gTUZEIGFsbG93cyBhY2Nlc3MgdG8gZGV2aWNlCiAgcmVnaXN0ZXJzIGVpdGhlciBk aXJlY3RseSwgb3IgdXNpbmcgYSBjb21tb24gYnVzLiBJbiB0aGlzIHNlY29uZCBjYXNlLCBpdAog IGNvbnZlbmllbnRseSBtdWx0aXBsZXhlcyBhY2Nlc3NlcyBvbiBJbnRlci1JbnRlZ3JhdGVkIENp cmN1aXQgKEkyQykgb3IKICBTZXJpYWwgUGVyaXBoZXJhbCBJbnRlcmZhY2UgKFNQSSkgYnVzZXMu IEFzIHRoZSBNRkQgc3ViLWRldmljZXMgYXJlCiAgc2VwYXJhdGUsIE1GRCBkcml2ZXJzIGRvIG5v dCBzaGFyZSBhIGNvbW1vbiBzdGF0ZS4KCiAgVGhlIGRldmljZXMgRXJ0bWFuIGFkZHJlc3NlcyBk byBub3QgZml0IHdlbGwgaW50byB0aGUgTUZEIG1vZGVsLiBEZXZpY2VzCiAgdXNpbmcgdGhlIGF1 eGlsaWFyeSBidXMgcHJvdmlkZSBzdWJzZXRzIG9mIHRoZSBjYXBhYmlsaXRpZXMgb2YgYSBzaW5n bGUKICBoYXJkd2FyZSBkZXZpY2UuIFRoZXkgZG8gbm90IGV4cG9zZSBzZXBhcmF0ZSByZWdpc3Rl ciBzZXRzIGZvciBlYWNoCiAgZnVuY3Rpb247IHRodXMgdGhleSBjYW5ub3QgYmUgZGVzY3JpYmVk IGJ5IGRldmljZXRyZWVzIG9yIGRpc2NvdmVyZWQgYnkKICBBQ1BJLiBUaGVpciBkcml2ZXJzIG5l ZWQgdG8gc2hhcmUgYWNjZXNzIHRvIHRoZSBoYXJkd2FyZS4gRXZlbnRzIGNvbmNlcm5pbmcKICBh bGwgc3ViLWZ1bmN0aW9uYWxpdGllcyAobGlrZSBwb3dlciBtYW5hZ2VtZW50KSBuZWVkIHRvIGJl IHByb3Blcmx5IGhhbmRsZWQKICBieSBhbGwgZHJpdmVycy4KClRoZSBpbmRpdmlkdWFsIGZ1bmN0 aW9uIGRldmljZXMgbWF5IGJlIGFsbCBwb2ludGluZyBhdCB0aGUgc2FtZSBwaHlzaWNhbApkZXZp Y2UgaGVyZSwgYnV0IHRoZXkncmUgbm90IGRpc3RpbmN0IHBhcnRzIG9mIHRoZSBkZXZpY2UuIEhv d2V2ZXIsIHRoZXJlCnN0aWxsICppcyogYSBwaHlzaWNhbCBkZXZpY2UsIHdoaWNoIGNvbnZpbmNl ZCBtZSB0aGF0IGF1eGlsaWFyeSBidXMgd2Fzbid0CnRoZSByaWdodCBvbmUgZWl0aGVyLCBhbmQg dGhlIGlkZWEgZm9yIGp1c3QgdXNpbmcgdGhlIHBsYXRmb3JtIGJ1cyBjYW1lCmR1cmluZyBhIHdv cmsgbWVldGluZy4gSWYgc29tZW9uZSB3aXRoIGV4cGVyaWVuY2Ugb24gYXV4IGJ1cyB2cyBwbGF0 Zm9ybSBidXMKKHdoYXQgdGhpcyB1c2VzKSB2cyBNRkQsIHRoZW4gZmVlbCBmcmVlIHRvIGNoaW1l IGluLiBVbmZvcnR1bmF0ZWx5LCBhcyBpcyB0aGUKbm9ybSwgSSBjYW4ndCBzZWVtIHRvIGZpbmQg bXVjaCBpbiB0ZXJtcyBvZiBNRkQgZG9jdW1lbnRhdGlvbi4gTmVlZGluZyB0byBrbm93CndoYXQg dHlwZSBvZiBleGNsdXNpb24gdGhleSBndWFyYW50ZWUgYW5kIHdoYXQgdHlwZSBvZiBhYnN0cmFj dGlvbnMgdGhleSBicmluZwp3aXRoIHRoZW0gdGhhdCB3b3VsZCBtYWtlIHRoZW0gbW9yZSB1c2Vm dWwgdGhhbiBteSBzb2x1dGlvbiB3b3VsZCBuZWVkIHNvbWUKanVzdGlmaWNhdGlvbiBpbiBtb3Jl IHRoYW4ganVzdCBhbiBhdXRvLWdlbmVyYXRlZCBoZWFkZXIgbGlzdGluZy4KCkkgYW0gdmVyeSBp bmNsaW5lZCB0byBzdGFydCBwcmV0ZW5kaW5nIHRoaW5ncyB0aGF0IGFyZW4ndCBkb2N1bWVudGVk IGRvCm5vdCBhY3R1YWxseSBleGlzdCBpbiB0aGUga2VybmVsLCBiZWNhdXNlIGl0J3MgdmVyeSBh bm5veWluZyB0byBoYXZlIHRvCmNvbnN0YW50bHkgZGVhbCB3aXRoIHRoaXMuCgo+IAo+IEFsc28g aGFuZGluZyBhcm91bmQgYSByZWdtYXAgbWlnaHQgYmUgbmljZXIsIGNvbXBhcmVkIHRvIHJlYWRs L3dyaXRlbC4KClN0cm9uZyBkaXNhZ3JlZSwgYWRkaW5nIGVycm9yIGhhbmRsaW5nIGFyb3VuZCBl dmVyeSBzaW5nbGUgcmVnaXN0ZXIgcmVhZAphbmQgd3JpdGUsIGFuZCBuZWVkaW5nIHRvIGFsd2F5 cyByZWFkIGludG8gYSB2YXJpYWJsZSByYXRoZXIgdGhhbiBnZXR0aW5nCnRoZSByZWFkIHZhbHVl IGFzIGEgcmV0dXJuIHZhbHVlLCBtYWRlIHRoZSBkcml2ZXJzIGEgbG90IHVnbGllciBpbiBhCnBy ZXZpb3VzIGl0ZXJhdGlvbiBvZiB0aGlzLgoKPiAKPiAKPiBIZWlrbwo+IAoKS2luZCByZWdhcmRz LApOaWNvbGFzIEZyYXR0YXJvbGkKClsxXTogaHR0cHM6Ly9sd24ubmV0L0FydGljbGVzLzg0MDQx Ni8KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxp bnV4LXJvY2tjaGlwIG1haWxpbmcgbGlzdApMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcm9j a2NoaXAK