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 B2CB7C83F11 for ; Sat, 26 Aug 2023 09:13:19 +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:Message-ID:Date: In-reply-to:Subject:Cc:To:From:References:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=8IKsvoYX/00vwPIiX6YEFR8Lha//JDkmqYOaXbV4030=; b=jv2MEcup4RGEM6FdLjccs4MvGV hGCqlebhopV1MxVTJ+hg+cLC4dpPj478aAXvzpW5XLvJhAEAd86ZzRJ5davfgog1c0/KOMW2oV+Rt /01huDUQHLzWmwtkcRVl3ah3tQq/0mBmM49s1YMfLHpOAu9ehSzTMMVWi8IzyPxWIoOnC95ZTZ9vo pYeUFTvI9RDAoq8tepY3ZzwbfCth6vyKaj8Wf1kVjodTVtAQpPnJprLWK+i21giTCnJ2BMMU8fwxE +Y5BxNJ5GEFpOgTPJ4f+zJFBlesMo4ldcRjfS1vMIvE2kukIn3VXcaHxuDKejf9ENqLGgsR4Dgteg 8UbnZGcw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qZpLc-006cD2-2D; Sat, 26 Aug 2023 09:12:48 +0000 Received: from mout-p-102.mailbox.org ([80.241.56.152]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qZpLZ-006cBz-03 for linux-arm-kernel@lists.infradead.org; Sat, 26 Aug 2023 09:12:47 +0000 Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4RXrgd1zMnz9ssD; Sat, 26 Aug 2023 11:12:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oltmanns.dev; s=MBO0001; t=1693041149; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qDVX91eJSqetV4AI7HaZ27+vMHk/EcMEhN+LW66E61U=; b=N1C7C8Vr1bF2I5w/dCj0qlrUk7A5AsZQgvgEVyRfmhKhjZAfrE/UxA7ojFPk39T7FzkOj5 OoeLrx+KpMeXvTchQ6pjZbnhM3EFQ7l5eewlEoShR0RqnvEJKgXBKn0646aSNL1AsxLUs1 ojwyeDeAyZSpDmfk/gXID1Ye0NXV7Lz8kGF3THxtr6ScWqrS+epvrDXrogcci+XFyJE/r6 1M8Qr5luHg4Q+4HIQIYL6a3ZOtfdapGJ2KJO90hi13t1AFi5x30AWtyOhhj1WbpdpVKs86 usdv3SMuSVSEllmWovO5Ec7N1aUzwGzq0OCO0otbthwshHAdbKGHHEmQwOh6Jw== References: <20230825-pll-mipi_keep_rate-v1-0-35bc43570730@oltmanns.dev> <87ledzqhwx.fsf@oltmanns.dev> From: Frank Oltmanns To: Maxime Ripard Cc: Michael Turquette , Stephen Boyd , Chen-Yu Tsai , Jernej Skrabec , Samuel Holland , David Airlie , Daniel Vetter , Ondrej Jirman , Icenowy Zheng , linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sunxi@lists.linux.dev, dri-devel@lists.freedesktop.org, Icenowy Zheng Subject: Re: [PATCH 0/3] Make Allwinner A64's pll-mipi keep its rate when parent rate changes In-reply-to: <87ledzqhwx.fsf@oltmanns.dev> Date: Sat, 26 Aug 2023 11:12:16 +0200 Message-ID: <878r9yb21b.fsf@oltmanns.dev> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230826_021245_356855_4FE28FF3 X-CRM114-Status: GOOD ( 54.29 ) 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 Ck9uIDIwMjMtMDgtMjUgYXQgMTc6MDc6NTggKzAyMDAsIEZyYW5rIE9sdG1hbm5zIDxmcmFua0Bv bHRtYW5ucy5kZXY+IHdyb3RlOgo+IFRoYW5rIHlvdSBmb3IgeW91ciBmZWVkYmFjaywgTWF4aW1l IQo+Cj4gT24gMjAyMy0wOC0yNSBhdCAxMDoxMzo1MyArMDIwMCwgTWF4aW1lIFJpcGFyZCA8bXJp cGFyZEBrZXJuZWwub3JnPiB3cm90ZToKPj4gW1tQR1AgU2lnbmVkIFBhcnQ6VW5kZWNpZGVkXV0K Pj4gSGksCj4+Cj4+IE9uIEZyaSwgQXVnIDI1LCAyMDIzIGF0IDA3OjM2OjM2QU0gKzAyMDAsIEZy YW5rIE9sdG1hbm5zIHdyb3RlOgo+Pj4gSSB3b3VsZCBsaWtlIHRvIG1ha2UgdGhlIEFsbHdpbm5l ciBBNjQncyBwbGwtbWlwaSB0byBrZWVwIGl0cyByYXRlIHdoZW4KPj4+IGl0cyBwYXJlbnQncyAo cGxsLXZpZGVvMCkgcmF0ZSBjaGFuZ2VzLiBLZWVwaW5nIHBsbC1taXBpJ3MgcmF0ZSBpcwo+Pj4g cmVxdWlyZWQsIHRvIGxldCB0aGUgQTY0IGRyaXZlIGJvdGggYW4gTENEIGFuZCBIRE1JIGRpc3Bs YXkgYXQgdGhlIHNhbWUKPj4+IHRpbWUsIGJlY2F1c2UgYm90aCBoYXZlIHBsbC12aWRlbzAgYXMg YW4gYW5jZXN0b3IuCj4+Pgo+Pj4gUEFUQ0ggMSBhZGRzIHRoaXMgZnVuY3Rpb25hbGl0eSBhcyBh IGZlYXR1cmUgaW50byB0aGUgY2xrIGZyYW1ld29yayAobmV3Cj4+PiBmbGFnOiBDTEtfS0VFUF9S QVRFKS4KPj4+Cj4+PiBDb3JlcyB0aGF0IHVzZSB0aGlzIGZsYWcsIHN0b3JlIGEgcmF0ZSBhcyBy ZXFfcmF0ZSB3aGVuIGl0IG9yIG9uZSBvZiBpdHMKPj4+IGRlc2NlbmRhbnRzIHJlcXVlc3RzIGEg bmV3IHJhdGUuCj4+Pgo+Pj4gVGhhdCByYXRlIGlzIHRoZW4gcmVzdG9yZWQgaW4gdGhlIGNsa19j aGFuZ2VfcmF0ZSByZWN1cnNpb24sIHdoaWNoIHdhbGtzCj4+PiB0aHJvdWdoIHRoZSB0cmVlLiBJ dCB3aWxsIHJlYWNoIHRoZSBmbGFnZ2VkIGNvcmUgKGUuZy4gcGxsLW1pcGkpIGFmdGVyCj4+PiB0 aGUgcGFyZW50J3MgcmF0ZSAoZS5nLiBwbGwtdmlkZW8wKSBoYXMgYWxyZWFkeSBiZWVuIHNldCB0 byB0aGUgbmV3Cj4+PiByYXRlLiBJdCB3aWxsIHRoZW4gY2FsbCBkZXRlcm1pbmVfcmF0ZSAod2hp Y2ggcmVxdWVzdHMgdGhlIHBhcmVudCdzCj4+PiBjdXJyZW50LCBpLmUuIG5ldywgcmF0ZSkgdG8g ZGV0ZXJtaW5lIGEgcmF0ZSB0aGF0IGlzIGNsb3NlIHRvIHRoZQo+Pj4gZmxhZ2dlZCBjb3JlJ3Mg cHJldmlvdXMgcmF0ZS4gQWZ0ZXJ3YXJkIGl0IHdpbGwgcmUtY2FsY3VsYXRlIHRoZSByYXRlcwo+ Pj4gZm9yIHRoZSBmbGFnZ2VkIGNvcmUncyBzdWJ0cmVlLgo+Pgo+PiBJIGRvbid0IHRoaW5rIGl0 J3MgdGhlIHJpZ2h0IHdheSBmb3J3YXJkLiBJdCBtYWtlcyB0aGUgY29yZSBsb2dpYyBtb3JlCj4+ IGNvbXBsaWNhdGVkLCBmb3Igc29tZXRoaW5nIHRoYXQgaXMgcmVkdW5kYW50IHdpdGggdGhlIG5v dGlmaWVycwo+PiBtZWNoYW5pc20gdGhhdCBoYXMgYmVlbiB0aGUgZ28tdG8gZm9yIHRoYXQga2lu ZCBvZiB0aGluZ3Mgc28gZmFyLgo+Cj4gWWVhaCwgdGhhdCB3YXMgbXkgaW5pdGlhbCBpZGVhIGFz IHdlbGwuIEJ1dCBJIGNvdWxkbid0IGdldCBpdCB0byB3b3JrLgo+IFNlZSBkZXRhaWxzIGJlbG93 Lgo+Cj4gRG8geW91IGhhdmUgYW4gZXhhbXBsZSBvZiBhIGNsb2NrIHRoYXQgcmVzdG9yZXMgaXRz IHByZXZpb3VzIHJhdGUgYWZ0ZXIKPiB0aGUgcGFyZW50IHJhdGUgaGFzIGNoYW5nZWQ/IEkndmUg bG9va2VkIGxlZnQgYW5kIHJpZ2h0LCBidXQgdG8gbWUgaXQKPiBzZWVtcyB0aGF0IG5vdGlmaWVy cyBhcmUgbWFpbmx5IHVzZWQgZm9yIHNldHRpbmcgY2xvY2tzIGludG8gc29tZSBraW5kCj4gb2Yg InNhZmUgbW9kZSIgcHJpb3IgdG8gdGhlIHJhdGUgY2hhbmdlLiBFeGFtcGxlczoKPgo+IHN1bnhp LW5nOgo+IGh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29tL2xpbnV4L3Y2LjQuMTEvc291cmNlL2Ry aXZlcnMvY2xrL3N1bnhpLW5nL2NjdV9tdXguYyNMMjczCj4gaHR0cHM6Ly9lbGl4aXIuYm9vdGxp bi5jb20vbGludXgvdjYuNC4xMS9zb3VyY2UvZHJpdmVycy9jbGsvc3VueGktbmcvY2N1X2NvbW1v bi5jI0w2MAo+Cj4gYnV0IGFsc28gb3RoZXJzOgo+IGh0dHBzOi8vZWxpeGlyLmJvb3RsaW4uY29t L2xpbnV4L3Y2LjQuMTEvc291cmNlL2RyaXZlcnMvY2xrL2F0OTEvY2xrLW1hc3Rlci5jI0wyNDgK PiBodHRwczovL2VsaXhpci5ib290bGluLmNvbS9saW51eC92Ni40LjExL3NvdXJjZS9kcml2ZXJz L2Nsay9tZXNvbi9tZXNvbjhiLmMjTDM3NTUKPiBodHRwczovL2VsaXhpci5ib290bGluLmNvbS9s aW51eC92Ni40LjExL3NvdXJjZS9kcml2ZXJzL2Nsay9xY29tL2Nsay1jcHUtODk5Ni5jI0w1NDYK Pgo+PiBJdCdzIG5vdCByZWFsbHkgb2J2aW91cyB0byBtZSB3aHkgdGhlIG5vdGlmaWVycyBkb24n dCB3b3JrIHRoZXJlLgo+Pgo+Pj4gVGhpcyB3b3JrIGlzIGluc3BpcmVkIGJ5IGFuIG91dC1vZi10 cmVlIHBhdGNoc2V0IFsxXSBbMl0gWzNdLgo+Pj4gVW5mb3J0dW5hdGVseSwgdGhlIHBhdGNoc2V0 IHVzZXMgY2xrX3NldF9yYXRlKCkgaW4gYSBub3RpZmllciBjYWxsYmFjaywKPj4+IHdoaWNoIHRo ZSBmb2xsb3dpbmcgY29tbWVudCBvbiBjbGtfbm90aWZpZXJfcmVnaXN0ZXIoKSBmb3JiaWRzOiAi VGhlCj4+PiBjYWxsYmFja3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBub3RpZmllciBtdXN0IG5vdCBy ZS1lbnRlciBpbnRvIHRoZSBjbGsKPj4+IGZyYW1ld29yayBieSBjYWxsaW5nIGFueSB0b3AtbGV2 ZWwgY2xrIEFQSXMuIiBbNF0gRnVydGhlcm1vcmUsIHRoYXQKPj4+IG91dC1vZi10cmVlIHBhdGNo c2V0IG5vIGxvbmdlciB3b3JrcyB3aXRoIHRoZSBjdXJyZW50IGxpbnV4LW5leHQsCj4+PiBiZWNh dXNlIHNldHRpbmcgcGxsLW1pcGkgaXMgbm93IGFsc28gcmVzZXR0aW5nIHBsbC12aWRlbzAgWzVd Lgo+Pgo+PiBJcyBpdCBiZWNhdXNlIG9mIHRoZSAiVGhlIGNhbGxiYWNrcyBhc3NvY2lhdGVkIHdp dGggdGhlIG5vdGlmaWVyIG11c3QKPj4gbm90IHJlLWVudGVyIGludG8gdGhlIGNsayBmcmFtZXdv cmsgYnkgY2FsbGluZyBhbnkgdG9wLWxldmVsIGNsayBBUElzLiIKPj4gY29tbWVudD8KPgo+IEkg ZG9uJ3QgdGhpbmsgdGhhdCdzIHRoZSByZWFzb24uIEknbSBmYWlybHkgY2VydGFpbiB0aGF0IHRo ZSBwcm9ibGVtIGlzLAo+IHRoYXQgcGxsLW1pcGkgdHJpZXMgdG8gc2V0IHRoZSBwYXJlbnQgcmF0 ZS4gTWF5YmUgaXQgc2hvdWxkIGNoZWNrIGlmIHRoZQo+IHBhcmVudCBpcyBsb2NrZWQsIGJlZm9y ZSBkZXRlcm1pbmluZyBhIHJhdGUgdGhhdCByZXF1aXJlcyB0aGUgcGFyZW50Cj4gcmF0ZSB0byBj aGFuZ2UuIPCfpJQgQ3VycmVudGx5LCBpdCBvbmx5IGNhbGxzIGNsa19od19jYW5fc2V0X3JhdGVf cGFyZW50KCkKPiB3aGljaCBvbmx5IGNoZWNrcyB0aGUgZmxhZywgYnV0IGRvZXMgbm90IGNoZWNr IGlmIGl0IGlzIHJlYWxseSBwb3NzaWJsZQo+IHRvIGNoYW5nZSB0aGUgcGFyZW50J3MgcmF0ZS4K Pgo+IFJlZ2FyZGxlc3MsIHBsZWFzZSBkb24ndCBwcmVtYXR1cmVseSBkaXNtaXNzIG15IHByb3Bv c2FsLiBJdCBoYXMgdGhlCj4gYWR2YW50YWdlIHRoYXQgaXQgaXMgbm90IHNwZWNpZmljIGZvciBz dW54aS1uZywgYnV0IGNvdWxkIGJlIHVzZWQgZm9yCj4gb3RoZXIgZHJpdmVycyBhcyB3ZWxsLiBN YXliZSB0aGVyZSBvdGhlciBpbnN0YW5jZXMgb2YgZXhjbHVzaXZlIGxvY2tzCj4gdG9kYXkgd2hl cmUgdGhlIENMS19LRUVQX1JBVEUgZmxhZyBtaWdodCB3b3JrIGVxdWFsbHkgd2VsbC4g8J+ktwo+ Cj4+IElmIHNvLCBJIHRoaW5rIHRoZSB0aGluZyB3ZSBzaG91bGQgZW1waGFzaXplIGlzIHRoYXQg aXQncyBhYm91dCAqYW55Cj4+IHRvcC1sZXZlbCBjbGsgQVBJKiwgYXMgaW4gY2xrX3NldF9yYXRl KCkgb3IgY2xrX3NldF9wYXJlbnQoKS4KPj4KPj4gVGhlIGlzc3VlIGlzIHRoYXQgYW55IGNvbnN1 bWVyLWZhY2luZyBBUEkgaXMgdGFraW5nIHRoZSBjbGtfcHJlcGFyZSBsb2NrCj4+IGFuZCB0aHVz IHdlIHdvdWxkIGhhdmUgcmVlbnRyYW5jeS4gQnV0IHdlJ3JlIGEgcHJvdmlkZXIgdGhlcmUsIGFu ZCBub25lCj4+IG9mIHRoZSBjbGtfaHdfKiBmdW5jdGlvbnMgYXJlIHRha2luZyB0aGF0IGxvY2su IE5laXRoZXIgZG8gb3VyIG93biBmdW5jdGlvbi4KPj4KPj4gU28gd2UgY291bGQgY2FsbCBpbiB0 aGF0IG5vdGlmaWVyIG91ciBzZXRfcmF0ZSBjYWxsYmFjayBkaXJlY3RseSwgb3Igd2UKPj4gY291 bGQgY3JlYXRlIGEgY2xrX2h3X3NldF9yYXRlKCkgZnVuY3Rpb24uCj4+Cj4+IFRoZSBmaXJzdCBv bmUgd2lsbCBjcmVhdGUgY2FjaGUgaXNzdWUgYmV0d2VlbiB0aGUgYWN0dWFsIHJhdGUgdGhhdCB0 aGUKPj4gY29tbW9uIGNsb2NrIGZyYW1ld29yayBpcyBydW5uaW5nIGFuZCB0aGUgb25lIHdlIGFj dHVhbGx5IGVuZm9yY2VkLCBidXQKPj4gd2UgY291bGQgY3JlYXRlIGEgZnVuY3Rpb24gdG8gZmx1 c2ggdGhlIENDRiBjYWNoZS4KPj4KPj4gVGhlIHNlY29uZCBvbmUgaXMgcHJvYmFibHkgc2ltcGxl ci4KPgo+IEknbSBwcm9iYWJseSBtaXNzaW5nIHNvbWV0aGluZywgYmVjYXVzZSBJIGRvbid0IHRo aW5rIHRoaXMgd291bGQgd29yay4KPiBGb3IgcmVmZXJlbmNlLCB0aGlzIGlzIG91ciB0cmVlOgo+ Cj4gICAgIHBsbC12aWRlbzAKPiAgICAgICAgaGRtaS1waHktY2xrCj4gICAgICAgIGhkbWkKPiAg ICAgICAgdGNvbjEKPiAgICAgICAgcGxsLW1pcGkKPiAgICAgICAgICAgdGNvbjAKPiAgICAgICAg ICAgICAgdGNvbi1kYXRhLWNsb2NrCj4KPiBXaGVuIHBsbC12aWRlbzAncyByYXRlIGlzIGNoYW5n ZWQgKGUuZy4gYmVjYXVzZSBhIEhETUkgbW9uaXRvciBpcwo+IHBsdWdnZWQgaW4pLCB0aGUgcmF0 ZXMgb2YgdGhlIGNvbXBsZXRlIHN1YnRyZWUgZm9yIHBsbC12aWRlbzAgYXJlCj4gcmVjYWxjdWxh dGVkLCBpbmNsdWRpbmcgdGNvbjAgYW5kIHRjb24tZGF0YS1jbG9jay4gVGhlIHJhdGUgb2YgdGNv bjAgaXMKPiBiYXNlZCBvbiB0aGUgcmF0ZSB0aGF0IHdhcyByZWNhbGN1bGF0ZWQgZm9yIHBsbC1t aXBpLCB3aGljaCAtIGluIHR1cm4gLQo+IHdhcyBvZiBjb3Vyc2UgcmVjYWxjdWxhdGVkIGJhc2Vk IG9uIHRoZSBwbGwtdmlkZW8wJ3MgbmV3IHJhdGUuIFRoZXNlCj4gdmFsdWVzIGFyZSBzdG9yZWQg YnkgdGhlIGNsayBmcmFtZXdvcmsgaW4gYSBwcml2YXRlIHN0cnVjdC4gVGhleSBhcmUKPiBjYWxj dWxhdGVkIGJlZm9yZSBhY3R1YWxseSBwZXJmb3JtaW5nIGFueSByYXRlIGNoYW5nZXMuCj4KPiBT bywgaWYgYSBub3RpZmllciBzZXRzIHBsbC1taXBpJ3MgcmF0ZSB0byBzb21ldGhpbmcgZWxzZSB0 aGFuIHdhcwo+IHByZXZpb3VzbHkgcmVjYWxjdWxhdGVkLCB0aGUgY2xrIGZyYW1ld29yayB3b3Vs ZCBzdGlsbCB0cnkgdG8gc2V0IHRjb24wCj4gdG8gdGhlIHZhbHVlIHRoYXQgaXQgcHJldmlvdXNs eSBjYWxjdWxhdGVkLgo+Cj4gU28sIHdlIHdvdWxkIGhhdmUgdG8gcmVjYWxjdWxhdGUgcGxsLW1p cGkncyBzdWJ0cmVlIGFmdGVyIGNoYW5naW5nIGl0cwo+IHJhdGUgKHRoYXQncyB3aGF0IFBBVENI IDEgaXMgZG9pbmcpLgoKU29ycnksIEkgZm9yZ290IHRoYXQgdGhpcyBhY3R1YWxseSB3YXMgcG9z c2libGUgYnkgZmxhZ2dpbmcgcGxsLW1pcGkKd2l0aCBDTEtfUkVDQUxDX05FV19SQVRFUy4gQnV0 IHRoZSByZWFsIHByb2JsZW0gSSB3YXMgZmlnaHRpbmcgd2l0aCB3aGVuCnRyeWluZyB0byB1c2Ug dGhlIG5vdGlmaWVycyBpcyBzb21ldGhpbmcgZWxzZS4KCkluaXRpYWxseSwgcGxsLXZpZGVvMCBp cyBzZXQgYnkgdGhlIGJvb3Rsb2FkZXIuIEluIG15IGNhc2UgdWJvb3Qgc2V0cyBpdAp0byAyOTQg TUh6LiBwbGwtbWlwaSBpcyBzZXQgdG8gNTg4IE1Iei4KCkFmdGVyd2FyZCwgdGhlcmUgYXJlIGFj dHVhbGx5IHR3byB0eXBlcyBvZiBjYWxscyBmb3Igc2V0dGluZyBwbGwtbWlwaSBpbgpteSBzY2Vu YXJpbzoKIDEuIGR1cmluZyBib290IHdoZW4gdGNvbi1kYXRhLWNsb2NrIGlzIHNldCB0byBkcml2 ZSB0aGUgTENEIHBhbmVsCiAyLiB3aGVuIHRoZSBIRE1JIGNhYmxlIGlzIHBsdWdnZWQgaW4KCklu IHRoZSBmaXJzdCBjYXNlLCB0aGUgcmF0ZSBmb3IgcGxsLW1pcGkgaXMgYmFzZWQgb24gdGhlIHJh dGUgdGhhdAp0Y29uLWRhdGEtY2xvY2sgcmVxdWVzdHMuIEluIHRoYXQgY2FzZSwgd2UgZG8gbm90 IHdhbnQgdG8gcmVzdG9yZSB0aGUKcHJldmlvdXMgcmF0ZS4KCkluIHRoZSBzZWNvbmQgY2FzZSwg cGxsLW1pcGkgc2hvdWxkIHRyeSB0byByZW1haW4gcnVubmluZyBhdCB0aGUKcHJldmlvdXMgcmF0 ZSAodGhlIG9uZSB0aGF0IHdhcyByZXF1ZXN0ZWQgYnkgdGNvbi1kYXRhLWNsb2NrKS4gVGhhdCdz CnRoZSByZWFzb24gZm9yIHNldHRpbmcgY29yZS0+cmVxX3JhdGUgaW4gUEFUQ0ggMS4KClVuZm9y dHVuYXRlbHksIHRoZSBub3RpZmllciBkb2VzIG5vdCBwcm92aWRlIHVzIHdpdGggZW5vdWdoIGNv bnRleHQgdG8KZGlzdGluZ3Vpc2ggdGhlIHR3byBjYXNlcy4KCkJlc3QgcmVnYXJkcywKICBGcmFu awoKPj4gQW5vdGhlciBvcHRpb24gY291bGQgYmUgdGhhdCB3ZSB0dXJuIGNsa19zZXRfcmF0ZV9l eGNsdXNpdmUgaW50bwo+PiBzb21ldGhpbmcgbW9yZSBzdWJ0bGUgdGhhdCBhbGxvd3MgdG8gY2hh bmdlIGEgcGFyZW50IHJhdGUgYXMgbG9uZyBhcyB0aGUKPj4gY2xvY2sgcmF0ZSBkb2Vzbid0Lgo+ Cj4gSSBkb24ndCB0aGluayB0aGlzIHdvdWxkIHdvcmsgZWl0aGVyLiBPbmx5IGluIHJhcmUgY2ly Y3Vtc3RhbmNlcwo+IHBsbC1taXBpIGNhbiBiZSBzZXQgdG8gdGhlIGV4YWN0IHByZXZpb3VzIHJh dGUsIG5vcm1hbGx5IGl0IHdpbGwgYmUgc2V0Cj4gdG8gYSByYXRlIHRoYXQgaXMgY2xvc2UgdG8g aXQncyBwcmV2aW91cyByYXRlLgo+Cj4gTm90ZSB0aGVyZSBpcyBhbm90aGVyIG9wdGlvbiwgd2Ug Y291bGQgYW5hbHl6ZTogcGxsLXZpZGVvMCdzCj4gUlJFX1JBVEVfQ0hBTkdFIG5vdGlmaWVyIGNv dWxkIGJlIHVzZWQgdG8gc2V0IHBsbC1taXBpIGludG8gYSBtb2RlIHRoYXQKPiBsZXRzIGl0IHJl Y2FsY3VsYXRlIGEgcmF0ZSB0aGF0IGlzIGNsb3NlIHRvIHRoZSBwcmV2aW91cyByYXRlLiBBCj4g UE9TVF9SQVRFX0NIQU5HRSBub3RpZmllciBjb3VsZCBiZSB1c2VkIHRvIHN3aXRjaCBpdCBiYWNr IHRvICJub3JtYWwiCj4gcmVjYWxjIG1vZGUuIEkgZG9uJ3Qga25vdyBpZiBwbGwtdmlkZW8wJ3Mg bm90aWZpZXIgd29ya3Mgb3IgaWYgd2UgYWxzbwo+IG5lZWQgdG8gYmUgbm90aWZpZWQgYWZ0ZXIg cGxsLW1pcGkgaGFzIGZpbmlzaGVkIHNldHRpbmcgaXQncyByYXRlLgo+IEhvd2V2ZXIsIHRoaXMg c2VlbXMgYSBsaXR0bGUgaGFja3kgYW5kIEkgaGF2ZW4ndCB0cmllZCBpZiBpdCB3b3JrcyBhdAo+ IGFsbC4gSSBwcmVmZXIgdGhlIGN1cnJlbnQgcHJvcG9zYWwgKGkuZS4gdGhlIENMS19LRUVQX1JB VEUgZmxhZykuCj4KPiBCZXN0IHJlZ2FyZHMsCj4gICBGcmFuawo+Cj4+IEl0IHdvdWxkIGVhc2Ug dGhlIHJlcXVpcmVtZW50IHRoYXQKPj4gY2xrX3NldF9yYXRlX2V4Y2x1c2l2ZSgpIGhhcyBvbiBh IGNsb2NrIHN1YnRyZWUgKHdoaWNoIEkgdGhpbmsgcHJldmVudHMKPj4gaXRzIHVzYWdlIHRvIHNv bWUgZXh0ZW50KSwgYnV0IEkgaGF2ZSBubyBpc3N1ZSBvbiBob3cgdGhhdCB3b3VsZCB3b3JrIGlu Cj4+IHByYWN0aWNlLgo+Pgo+PiBTbyB5ZWFoLCBJIHRoaW5rIGFkZGluZyBhIGNsa19od19zZXRf cmF0ZSgpIHRoYXQgd291bGQgYmUgY2FsbGFibGUgZnJvbQo+PiBhIG5vdGlmaWVyIGlzIHRoZSBy aWdodCB3YXkgZm9yd2FyZCB0aGVyZS4KPj4KPj4gTWF4aW1lCj4+Cj4+IFtbRW5kIG9mIFBHUCBT aWduZWQgUGFydF1dCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3Rz LmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5m by9saW51eC1hcm0ta2VybmVsCg==