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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A13ADECAAA2 for ; Thu, 25 Aug 2022 21:50:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244001AbiHYVuy (ORCPT ); Thu, 25 Aug 2022 17:50:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59188 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244358AbiHYVuh (ORCPT ); Thu, 25 Aug 2022 17:50:37 -0400 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 269E680B4F for ; Thu, 25 Aug 2022 14:49:15 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id A0AF9CE2D35 for ; Thu, 25 Aug 2022 21:49:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA07BC43470; Thu, 25 Aug 2022 21:49:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1661464151; bh=zKxG/wMDgBRifFRVlOLa1W2yMYBRc2ISMtyD9VC/wew=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=LcCxG7bBHhFYLnjKTH6/iZA0yoUPBIcjQTvyevucgFserJPxOINgrWEgUS9zaUpgA lbr+3oGSt5k+iwH0UTasOq7FbrFMU4xolkYN0t9OwFgPhMTGQSHY+KA6jxpJGmZA3H qQpqiICk9MrxE9wvTsUUMZcWZhw47Xz3pTK4MbxmydYIs8yz/wAv11eqwcvefYGBjJ zEVR14v1gmBz4M8xk0WsqC4gpAbHVdH0mXa3XzfytsL2MfRXrMyq3hyBn6vK7LETrx qu8F+t4O28+VPSNE2bVRQi/EWx9oD+QuO6JxrBDbjAwtPo7lssVRAzhooxM3RaaPSs RmwfA/aXvG7CQ== Received: by pali.im (Postfix) id 6F8C775F; Thu, 25 Aug 2022 23:49:07 +0200 (CEST) Date: Thu, 25 Aug 2022 23:49:07 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Robert Marko Cc: Elad Nachman , Wojciech Bartczak , Marek =?utf-8?B?QmVow7pu?= , Viresh Kumar , Gregory CLEMENT , Tomasz Maciej Nowak , Anders Trier Olesen , Philip Soares , "linux-pm@vger.kernel.org" , Sebastian Hesselbarth , "linux-arm-kernel@lists.infradead.org" , nnet , =?utf-8?Q?G=C3=A9rald?= Kerma Subject: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant Message-ID: <20220825214907.xcscshrmfzdrby6n@pali> References: <20220801175645.bnknpfg26acbat7c@pali> <20220802171736.n7jwtbssnwr5hojv@pali> <20220817231005.5nonyify5os6opah@pali> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: NeoMutt/20180716 Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org On Thursday 18 August 2022 10:14:26 Robert Marko wrote: > On Thu, Aug 18, 2022 at 1:10 AM Pali Rohár wrote: > > > > On Wednesday 17 August 2022 11:40:32 Robert Marko wrote: > > > On Tue, Aug 2, 2022 at 7:17 PM Pali Rohár wrote: > > > > > > > > On Tuesday 02 August 2022 18:56:07 Robert Marko wrote: > > > > > On Tue, Aug 2, 2022 at 6:52 PM Elad Nachman wrote: > > > > > > > > > > > > Hi, > > > > > > > > > > > > Unless the logs are misleading, then I see here: > > > > > > > > > > > > cpu cpu0: _set_opp: switching OPP: Freq 200000000 -> 1200000000 Hz, Level 0 -> 0, Bw 0 -> 0 > > > > > > > > > > > > Which violates the errata. > > > > > > If there is an interim step in between, I think it should be printed out in the debug so we can clearly understand what is the interim frequency setting between 200 and 1200 MHz. > > > > > > > > > > This is printed directly by the _set_opp from the cpufreq core, so it > > > > > should be accurate. > > > > > Pali, am I doing this correctly or I need to print from the A3K > > > > > cpufreq or clk drivers? > > > > > > > > Hello! You need to print it from a3k clk driver. cpufreq core just ask > > > > driver to switch speed from 200000000 to 1200000000 and clk driver then > > > > change it with its own workaround function. > > > > > > > > The real change of Level is done at these places: > > > > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/clk/mvebu/armada-37xx-periph.c?h=v5.19#n548 > > > > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/clk/mvebu/armada-37xx-periph.c?h=v5.19#n592 > > > > > > > > Check places where is done write operation to register > > > > ARMADA_37XX_NB_CPU_LOAD. > > > > > > Ok, finally got time to try it. > > > I am now printing from the clk driver instead, hopefully in the right places: > > > https://gist.github.com/robimarko/d297c81f70ef9620c830435bad8a6a8d > > > > > > Trying to enlarge the wait to 100ms does not help. > > > > Could you provide also diff which you applied to driver? > > Sure, here it is: > https://gist.github.com/robimarko/a2b8942b5f22b107c62fba9695220881 You should print debug logs when _calling_ regmap_update_bits(). And current log is very strange, you are printing message line "%pCn requested rate %lu load_level %u" for iteration in for-loop, also when "val != div". So log contains lot of incorrect lines. > Regards, > Robert > > > > > Regards, > > > Robert > > > > > > > > > Regards, > > > > > Robert > > > > > > > > > > > > Elad. > > > > > > > > > > > > -----Original Message----- > > > > > > From: Robert Marko > > > > > > Sent: Tuesday, August 2, 2022 7:42 PM > > > > > > To: Elad Nachman > > > > > > Cc: Pali Rohár ; Wojciech Bartczak ; Marek Behún ; Viresh Kumar ; Gregory CLEMENT ; Tomasz Maciej Nowak ; Anders Trier Olesen ; Philip Soares ; linux-pm@vger.kernel.org; Sebastian Hesselbarth ; linux-arm-kernel@lists.infradead.org; nnet ; Gérald Kerma > > > > > > Subject: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant > > > > > > > > > > > > On Mon, Aug 1, 2022 at 8:50 PM Elad Nachman wrote: > > > > > > > > > > > > > > Hi Pali, > > > > > > > > > > > > > > Could you please provide the crash dump / call trace? > > > > > > > > > > > > > > Also, if you can please annotate with printk the exact voltage/frequency changes taken by the driver, up to the point of the crash? > > > > > > > > > > > > > > This will help understand the sequence of events leading to the crash. > > > > > > > > > > > > > > Thanks, > > > > > > > > > > > > > > Elad. > > > > > > > > > > > > > > > > > > Hi Elad, > > > > > > Here are 2 bootlogs, but I dont think they are of any use as the traces are rather random and they are always different, like a real voltage issue: > > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__gist.github.com_robimarko_113216f566ccf159dfd33933889da042&d=DwIFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=u39n7XPBdQVaoaviM32QcFaiO0KDs3BVzkeF-4zrqPKElNH3igH9KqEKfxSKLz-H&s=jvmR3Myk443DelvNZv1OkhmpqnMp9Y8mvzzYz2g13rM&e= > > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__gist.github.com_robimarko_990d757870d44a3c5acdfeb957547705&d=DwIFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=u39n7XPBdQVaoaviM32QcFaiO0KDs3BVzkeF-4zrqPKElNH3igH9KqEKfxSKLz-H&s=XrMFeJpEGO5A4rIKjkHLNc4MHzPGOBKeOktDWCbQMAc&e= > > > > > > > > > > > > Here is a bootleg with the frequency changes, OPP points that are set by the CPUFreq driver are also here: > > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__gist.github.com_robimarko_1a81b0c6e93735b75ff4461d405c8033&d=DwIFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=u39n7XPBdQVaoaviM32QcFaiO0KDs3BVzkeF-4zrqPKElNH3igH9KqEKfxSKLz-H&s=02ljqhQAdZki-JwDYNPKaStmzSkhuitBRP6R17iOZqA&e= > > > > > > > > > > > > I am still digging to print the voltage changes as _set_opp_voltage is not being used. > > > > > > > > > > > > Regards, > > > > > > Robert > > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > > מאת: Pali Rohár > > > > > > > ‏‏נשלח: יום שני 01 אוגוסט 2022 20:56 > > > > > > > ‏‏אל: Elad Nachman > > > > > > > עותק: Wojciech Bartczak ; Marek Behún > > > > > > > ; Viresh Kumar ; Gregory > > > > > > > CLEMENT ; Robert Marko > > > > > > > ; Tomasz Maciej Nowak ; > > > > > > > Anders Trier Olesen ; Philip Soares > > > > > > > ; linux-pm@vger.kernel.org > > > > > > > ; Sebastian Hesselbarth > > > > > > > ; > > > > > > > linux-arm-kernel@lists.infradead.org > > > > > > > ; nnet ; > > > > > > > Gérald Kerma > > > > > > > ‏‏נושא: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq > > > > > > > for 1.2 GHz variant > > > > > > > > > > > > > > Hello Elad! > > > > > > > > > > > > > > Robert (in CC) tested this proposed change. But increasing delay to > > > > > > > 100ms does not help. CPU still crashes early during boot. > > > > > > > > > > > > > > On Monday 01 August 2022 14:15:27 Elad Nachman wrote: > > > > > > > > Hi, > > > > > > > > > > > > > > > > As first step, please try to increase the delay to 100ms, see if it helps. > > > > > > > > > > > > > > > > Elad. > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > From: Pali Rohár > > > > > > > > Sent: Monday, August 1, 2022 5:13 PM > > > > > > > > To: Elad Nachman > > > > > > > > Cc: Wojciech Bartczak ; Marek Behún > > > > > > > > ; Viresh Kumar ; Gregory > > > > > > > > CLEMENT ; Robert Marko > > > > > > > > ; Tomasz Maciej Nowak ; > > > > > > > > Anders Trier Olesen ; Philip Soares > > > > > > > > ; linux-pm@vger.kernel.org; Sebastian > > > > > > > > Hesselbarth ; > > > > > > > > linux-arm-kernel@lists.infradead.org; nnet > > > > > > > > Subject: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid > > > > > > > > cpufreq for 1.2 GHz variant > > > > > > > > > > > > > > > > Hello Elad and thank you for response! > > > > > > > > > > > > > > > > This errata is already implemented in the kernel for a longer time by Gregory's commit: > > > > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__git.kernel.org_ > > > > > > > > pub_scm_linux_kernel_git_stable_linux.git_commit_-3Fid-3D61c40f35f5c > > > > > > > > d6f67ccbd7319a1722eb78c815989&d=DwIDaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eT > > > > > > > > eNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=-E-AwB9STVx8xgapaCNSpDJI > > > > > > > > PPnkrzrWkZX0uFz2bfNGFnckZelT_XaovUUPrNIg&s=4EUcdDWB_gqnEV8nREQi9E_iy > > > > > > > > m5bjoM6l5zLrbh_GVs&e= > > > > > > > > > > > > > > > > There is also 20ms delay after L2/L3 to L1 state switch. > > > > > > > > > > > > > > > > Any idea what could be wrong here? Or is something more than above commit needed to correctly implement that errata? > > > > > > > > > > > > > > > > On Monday 01 August 2022 14:01:07 Elad Nachman wrote: > > > > > > > > > Hi Pali, > > > > > > > > > > > > > > > > > > There is an errata for that. > > > > > > > > > > > > > > > > > > " > > > > > > > > > Switching from L2/L3 state (200/300 MHz) to L0 state (1200 MHz) > > > > > > > > > requires sudden changes of VDD supply, and it requires time to > > > > > > > > > stabilize the VDD supply. The solution is to use gradual switching from L2/L3 to L1 and then L1 to L0 state. > > > > > > > > > " > > > > > > > > > > > > > > > > > > I would also add additional delay for the VDD supply stabilization. > > > > > > > > > > > > > > > > > > FYI, > > > > > > > > > > > > > > > > > > Elad. > > > > > > > > > > > > > > > > > > -----Original Message----- > > > > > > > > > From: Pali Rohár > > > > > > > > > Sent: Monday, August 1, 2022 3:36 PM > > > > > > > > > To: Elad Nachman ; Wojciech Bartczak > > > > > > > > > > > > > > > > > > Cc: Marek Behún ; Viresh Kumar > > > > > > > > > ; Gregory CLEMENT > > > > > > > > > ; Robert Marko > > > > > > > > > ; Tomasz Maciej Nowak ; > > > > > > > > > Anders Trier Olesen ; Philip Soares > > > > > > > > > ; linux-pm@vger.kernel.org; Sebastian > > > > > > > > > Hesselbarth ; > > > > > > > > > linux-arm-kernel@lists.infradead.org; nnet > > > > > > > > > Subject: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq > > > > > > > > > for > > > > > > > > > 1.2 GHz variant > > > > > > > > > > > > > > > > > > External Email > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------ > > > > > > > > > ---- > > > > > > > > > + Elad and Wojciech from Marvell > > > > > > > > > > > > > > > > > > Could you please look at this issue and/or forward it to relevant Marvell team? > > > > > > > > > > > > > > > > > > Maintainer Viresh already wrote that we cannot hang forever for Marvell and patch which disables support for 1.2 GHz was merged: > > > > > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__lore.kernel.o > > > > > > > > > rg_l > > > > > > > > > inux-2Dpm_20210809040224.j2rvopmmqda3utc5-40vireshk-2Di7_&d=DwIDaQ > > > > > > > > > &c=n > > > > > > > > > KjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrw > > > > > > > > > Q&m= > > > > > > > > > 5nMMKyKOOM3XdMe_PerZRx8L7-D7MkWhCl7GxpXTPiotVf1TR4j8v3bpjQmRKCLC&s > > > > > > > > > =cXi CZByknfz1rOIgJl4fJHl1KLLRq2shHul2-VPpYP0&e= > > > > > > > > > > > > > > > > > > On Sunday 08 August 2021 21:30:26 Pali Rohár wrote: > > > > > > > > > > Gentle reminder. This is really serious issue. Could you please look at it? > > > > > > > > > > > > > > > > > > > > Adding more MarvellEmbeddedProcessors people to the loop: Evan, > > > > > > > > > > Benjamin an Igal > > > > > > > > > > > > > > > > > > > > On Thursday 15 July 2021 21:33:21 Pali Rohár wrote: > > > > > > > > > > > Ping! Gentle reminder for Marvell people. > > > > > > > > > > > > > > > > > > > > > > On Thursday 08 July 2021 16:34:51 Pali Rohár wrote: > > > > > > > > > > > > Konstantin, Nadav, Ken, Victor, Jason: This issue is pretty > > > > > > > > > > > > serious, CPU on 1.2GHz A3720 is crashing. Could you please look at it? > > > > > > > > > > > > > > > > > > > > > > > > On Friday 02 July 2021 18:30:35 Pali Rohár wrote: > > > > > > > > > > > > > +Jason from GlobalScale as this issue affects GlobalScale Espressobin Ultra and V7 1.2 GHz boards. > > > > > > > > > > > > > > > > > > > > > > > > > > On Thursday 01 July 2021 00:56:01 Marek Behún wrote: > > > > > > > > > > > > > > The 1.2 GHz variant of the Armada 3720 SOC is unstable > > > > > > > > > > > > > > with > > > > > > > > > > > > > > DVFS: when the SOC boots, the WTMI firmware sets clocks > > > > > > > > > > > > > > and AVS values that work correctly with 1.2 GHz CPU > > > > > > > > > > > > > > frequency, but random crashes occur once cpufreq driver starts scaling. > > > > > > > > > > > > > > > > > > > > > > > > > > > > We do not know currently what is the reason: > > > > > > > > > > > > > > - it may be that the voltage value for L0 for 1.2 GHz variant provided > > > > > > > > > > > > > > by the vendor in the OTP is simply incorrect when > > > > > > > > > > > > > > scaling is used, > > > > > > > > > > > > > > - it may be that some delay is needed somewhere, > > > > > > > > > > > > > > - it may be something else. > > > > > > > > > > > > > > > > > > > > > > > > > > > > The most sane solution now seems to be to simply forbid > > > > > > > > > > > > > > the cpufreq driver on 1.2 GHz variant. > > > > > > > > > > > > > > > > > > > > > > > > > > > > Signed-off-by: Marek Behún > > > > > > > > > > > > > > Fixes: 92ce45fb875d ("cpufreq: Add DVFS support for > > > > > > > > > > > > > > Armada > > > > > > > > > > > > > > 37xx") > > > > > > > > > > > > > > --- > > > > > > > > > > > > > > If someone from Marvell could look into this, it would > > > > > > > > > > > > > > be great since basically 1.2 GHz variant cannot scale, > > > > > > > > > > > > > > which is a feature that was claimed to be supported by the SOC. > > > > > > > > > > > > > > > > > > > > > > > > > > > > Ken Ma / Victor Gu, you have worked on commit > > > > > > > > > > > > > > https://urldefense.proofpoint.com/v2/url?u=https-3A__github. > > > > > > > > > > > > > > co > > > > > > > > > > > > > > m_MarvellEmbeddedProcessors_linux-2Dmarvell_commit_d6719 > > > > > > > > > > > > > > fdc2 > > > > > > > > > > > > > > b3 > > > > > > > > > > > > > > cac58064f41b531f86993c919aa9a&d=DwIDaQ&c=nKjWec2b6R0mOyP > > > > > > > > > > > > > > az7x > > > > > > > > > > > > > > tf > > > > > > > > > > > > > > Q&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=5nMMKy > > > > > > > > > > > > > > KOOM > > > > > > > > > > > > > > 3X > > > > > > > > > > > > > > dMe_PerZRx8L7-D7MkWhCl7GxpXTPiotVf1TR4j8v3bpjQmRKCLC&s=b > > > > > > > > > > > > > > 9cDK em t70OiTJF6KXj0ySzbxpsB_nuteXJE87via80&e= > > > > > > > > > > > > > > in linux-marvell. > > > > > > > > > > > > > > Your patch takes away the 1202 mV constant for 1.2 GHz > > > > > > > > > > > > > > base CPU frequency and instead adds code that computes > > > > > > > > > > > > > > the voltages from the voltage found in L0 AVS register (which is filled in by WTMI firmware). > > > > > > > > > > > > > > > > > > > > > > > > > > > > Do you know why the code does not work correctly for > > > > > > > > > > > > > > some > > > > > > > > > > > > > > 1.2 GHz boards? Do we need to force the L0 voltage to > > > > > > > > > > > > > > 1202 mV if it is lower, or something? > > > > > > > > > > > > > > --- > > > > > > > > > > > > > > drivers/cpufreq/armada-37xx-cpufreq.c | 6 +++++- > > > > > > > > > > > > > > 1 file changed, 5 insertions(+), 1 deletion(-) > > > > > > > > > > > > > > > > > > > > > > > > > > > > diff --git a/drivers/cpufreq/armada-37xx-cpufreq.c > > > > > > > > > > > > > > b/drivers/cpufreq/armada-37xx-cpufreq.c > > > > > > > > > > > > > > index 3fc98a3ffd91..c10fc33b29b1 100644 > > > > > > > > > > > > > > --- a/drivers/cpufreq/armada-37xx-cpufreq.c > > > > > > > > > > > > > > +++ b/drivers/cpufreq/armada-37xx-cpufreq.c > > > > > > > > > > > > > > @@ -104,7 +104,11 @@ struct armada_37xx_dvfs { }; > > > > > > > > > > > > > > > > > > > > > > > > > > > > static struct armada_37xx_dvfs armada_37xx_dvfs[] = { > > > > > > > > > > > > > > - {.cpu_freq_max = 1200*1000*1000, .divider = {1, 2, 4, > > > > > > > > > > > > > > 6} }, > > > > > > > > > > > > > > + /* > > > > > > > > > > > > > > + * The cpufreq scaling for 1.2 GHz variant of the SOC > > > > > > > > > > > > > > +is currently > > > > > > > > > > > > > > + * unstable because we do not know how to configure it properly. > > > > > > > > > > > > > > + */ > > > > > > > > > > > > > > + /* {.cpu_freq_max = 1200*1000*1000, .divider = {1, 2, > > > > > > > > > > > > > > +4, 6} }, */ > > > > > > > > > > > > > > {.cpu_freq_max = 1000*1000*1000, .divider = {1, 2, 4, 5} }, > > > > > > > > > > > > > > {.cpu_freq_max = 800*1000*1000, .divider = {1, 2, 3, 4} }, > > > > > > > > > > > > > > {.cpu_freq_max = 600*1000*1000, .divider = {2, 4, 5, > > > > > > > > > > > > > > 6} }, > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > 2.31.1 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Robert Marko > > > > > > Staff Embedded Linux Engineer > > > > > > Sartura Ltd. > > > > > > Lendavska ulica 16a > > > > > > 10000 Zagreb, Croatia > > > > > > Email: robert.marko@sartura.hr > > > > > > Web: https://urldefense.proofpoint.com/v2/url?u=http-3A__www.sartura.hr&d=DwIFaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=eTeNTLEK5-TxXczjOcKPhANIFtlB9pP4lq9qhdlFrwQ&m=u39n7XPBdQVaoaviM32QcFaiO0KDs3BVzkeF-4zrqPKElNH3igH9KqEKfxSKLz-H&s=_aBokTETNVzTrHqewupr4PeLusBNf7LGrTmjI2hppFk&e= > > > > > > > > > > > > > > > > > > > > -- > > > > > Robert Marko > > > > > Staff Embedded Linux Engineer > > > > > Sartura Ltd. > > > > > Lendavska ulica 16a > > > > > 10000 Zagreb, Croatia > > > > > Email: robert.marko@sartura.hr > > > > > Web: www.sartura.hr > > > > > > > > > > > > -- > > > Robert Marko > > > Staff Embedded Linux Engineer > > > Sartura Ltd. > > > Lendavska ulica 16a > > > 10000 Zagreb, Croatia > > > Email: robert.marko@sartura.hr > > > Web: www.sartura.hr > > > > -- > Robert Marko > Staff Embedded Linux Engineer > Sartura Ltd. > Lendavska ulica 16a > 10000 Zagreb, Croatia > Email: robert.marko@sartura.hr > Web: www.sartura.hr 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 1FD98ECAAA2 for ; Thu, 25 Aug 2022 22:03:11 +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=s9/5zfpcZZQFcsmNX0JH6Qdu4bdMerUk9HkWJYPJN0E=; b=iKqKac4jqWpt+W 65uBkhcwV+6+xKMbWWMDgFskZi7V3IkgCXQen/OBK1qy8CStoaLgO5StkMFQVn1uOTA/XPMoSBjBb wL/Gg+DBW2XDAjLWV0zEhjWU904RgdepVnCuxKAr2zwaXA5/HqUVu0y2lTb0fGUXjxx+F/kKUek0i wg9flsTCsZWGgORCPveS2Ve1HYPKMOHud7AsaYE08T1uZw+AD8XOzdO7uMNP33Zfv+nF1CmCtw0Td CAqdHz2x6cRACh2a9we3KqT6xaojKSL6Gmb2YY17Ealff+zOrrnjo9x8O2kyvFoPwISpI3m8cBmlV Sdk871UNh3EkYdyuyTAg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oRKv1-003ghK-6U; Thu, 25 Aug 2022 22:01:44 +0000 Received: from sin.source.kernel.org ([2604:1380:40e1:4800::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oRKiw-003a1s-W9 for linux-arm-kernel@lists.infradead.org; Thu, 25 Aug 2022 21:49:18 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sin.source.kernel.org (Postfix) with ESMTPS id A2902CE2D45; Thu, 25 Aug 2022 21:49:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BA07BC43470; Thu, 25 Aug 2022 21:49:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1661464151; bh=zKxG/wMDgBRifFRVlOLa1W2yMYBRc2ISMtyD9VC/wew=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=LcCxG7bBHhFYLnjKTH6/iZA0yoUPBIcjQTvyevucgFserJPxOINgrWEgUS9zaUpgA lbr+3oGSt5k+iwH0UTasOq7FbrFMU4xolkYN0t9OwFgPhMTGQSHY+KA6jxpJGmZA3H qQpqiICk9MrxE9wvTsUUMZcWZhw47Xz3pTK4MbxmydYIs8yz/wAv11eqwcvefYGBjJ zEVR14v1gmBz4M8xk0WsqC4gpAbHVdH0mXa3XzfytsL2MfRXrMyq3hyBn6vK7LETrx qu8F+t4O28+VPSNE2bVRQi/EWx9oD+QuO6JxrBDbjAwtPo7lssVRAzhooxM3RaaPSs RmwfA/aXvG7CQ== Received: by pali.im (Postfix) id 6F8C775F; Thu, 25 Aug 2022 23:49:07 +0200 (CEST) Date: Thu, 25 Aug 2022 23:49:07 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Robert Marko Cc: Elad Nachman , Wojciech Bartczak , Marek =?utf-8?B?QmVow7pu?= , Viresh Kumar , Gregory CLEMENT , Tomasz Maciej Nowak , Anders Trier Olesen , Philip Soares , "linux-pm@vger.kernel.org" , Sebastian Hesselbarth , "linux-arm-kernel@lists.infradead.org" , nnet , =?utf-8?Q?G=C3=A9rald?= Kerma Subject: Re: [EXT] Re: [PATCH v2] cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant Message-ID: <20220825214907.xcscshrmfzdrby6n@pali> References: <20220801175645.bnknpfg26acbat7c@pali> <20220802171736.n7jwtbssnwr5hojv@pali> <20220817231005.5nonyify5os6opah@pali> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180716 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220825_144915_434890_0AEE024B X-CRM114-Status: GOOD ( 54.01 ) 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 T24gVGh1cnNkYXkgMTggQXVndXN0IDIwMjIgMTA6MTQ6MjYgUm9iZXJ0IE1hcmtvIHdyb3RlOgo+ IE9uIFRodSwgQXVnIDE4LCAyMDIyIGF0IDE6MTAgQU0gUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVs Lm9yZz4gd3JvdGU6Cj4gPgo+ID4gT24gV2VkbmVzZGF5IDE3IEF1Z3VzdCAyMDIyIDExOjQwOjMy IFJvYmVydCBNYXJrbyB3cm90ZToKPiA+ID4gT24gVHVlLCBBdWcgMiwgMjAyMiBhdCA3OjE3IFBN IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gT24g VHVlc2RheSAwMiBBdWd1c3QgMjAyMiAxODo1NjowNyBSb2JlcnQgTWFya28gd3JvdGU6Cj4gPiA+ ID4gPiBPbiBUdWUsIEF1ZyAyLCAyMDIyIGF0IDY6NTIgUE0gRWxhZCBOYWNobWFuIDxlbmFjaG1h bkBtYXJ2ZWxsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEhpLAo+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiBVbmxlc3MgdGhlIGxvZ3MgYXJlIG1pc2xlYWRpbmcsIHRoZW4gSSBz ZWUgaGVyZToKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gY3B1IGNwdTA6IF9zZXRfb3BwOiBzd2l0 Y2hpbmcgT1BQOiBGcmVxIDIwMDAwMDAwMCAtPiAxMjAwMDAwMDAwIEh6LCBMZXZlbCAwIC0+IDAs IEJ3IDAgLT4gMAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBXaGljaCB2aW9sYXRlcyB0aGUgZXJy YXRhLgo+ID4gPiA+ID4gPiBJZiB0aGVyZSBpcyBhbiBpbnRlcmltIHN0ZXAgaW4gYmV0d2Vlbiwg SSB0aGluayBpdCBzaG91bGQgYmUgcHJpbnRlZCBvdXQgaW4gdGhlIGRlYnVnIHNvIHdlIGNhbiBj bGVhcmx5IHVuZGVyc3RhbmQgd2hhdCBpcyB0aGUgaW50ZXJpbSBmcmVxdWVuY3kgc2V0dGluZyBi ZXR3ZWVuIDIwMCBhbmQgMTIwMCBNSHouCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhpcyBpcyBwcmlu dGVkIGRpcmVjdGx5IGJ5IHRoZSBfc2V0X29wcCBmcm9tIHRoZSBjcHVmcmVxIGNvcmUsIHNvIGl0 Cj4gPiA+ID4gPiBzaG91bGQgYmUgYWNjdXJhdGUuCj4gPiA+ID4gPiBQYWxpLCBhbSBJIGRvaW5n IHRoaXMgY29ycmVjdGx5IG9yIEkgbmVlZCB0byBwcmludCBmcm9tIHRoZSBBM0sKPiA+ID4gPiA+ IGNwdWZyZXEgb3IgY2xrIGRyaXZlcnM/Cj4gPiA+ID4KPiA+ID4gPiBIZWxsbyEgWW91IG5lZWQg dG8gcHJpbnQgaXQgZnJvbSBhM2sgY2xrIGRyaXZlci4gY3B1ZnJlcSBjb3JlIGp1c3QgYXNrCj4g PiA+ID4gZHJpdmVyIHRvIHN3aXRjaCBzcGVlZCBmcm9tIDIwMDAwMDAwMCB0byAxMjAwMDAwMDAw IGFuZCBjbGsgZHJpdmVyIHRoZW4KPiA+ID4gPiBjaGFuZ2UgaXQgd2l0aCBpdHMgb3duIHdvcmth cm91bmQgZnVuY3Rpb24uCj4gPiA+ID4KPiA+ID4gPiBUaGUgcmVhbCBjaGFuZ2Ugb2YgTGV2ZWwg aXMgZG9uZSBhdCB0aGVzZSBwbGFjZXM6Cj4gPiA+ID4gaHR0cHM6Ly9naXQua2VybmVsLm9yZy9w dWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvc3RhYmxlL2xpbnV4LmdpdC90cmVlL2RyaXZlcnMvY2xr L212ZWJ1L2FybWFkYS0zN3h4LXBlcmlwaC5jP2g9djUuMTkjbjU0OAo+ID4gPiA+IGh0dHBzOi8v Z2l0Lmtlcm5lbC5vcmcvcHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3N0YWJsZS9saW51eC5naXQv dHJlZS9kcml2ZXJzL2Nsay9tdmVidS9hcm1hZGEtMzd4eC1wZXJpcGguYz9oPXY1LjE5I241OTIK PiA+ID4gPgo+ID4gPiA+IENoZWNrIHBsYWNlcyB3aGVyZSBpcyBkb25lIHdyaXRlIG9wZXJhdGlv biB0byByZWdpc3Rlcgo+ID4gPiA+IEFSTUFEQV8zN1hYX05CX0NQVV9MT0FELgo+ID4gPgo+ID4g PiBPaywgZmluYWxseSBnb3QgdGltZSB0byB0cnkgaXQuCj4gPiA+IEkgYW0gbm93IHByaW50aW5n IGZyb20gdGhlIGNsayBkcml2ZXIgaW5zdGVhZCwgaG9wZWZ1bGx5IGluIHRoZSByaWdodCBwbGFj ZXM6Cj4gPiA+IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3JvYmltYXJrby9kMjk3YzgxZjcwZWY5 NjIwYzgzMDQzNWJhZDhhNmE4ZAo+ID4gPgo+ID4gPiBUcnlpbmcgdG8gZW5sYXJnZSB0aGUgd2Fp dCB0byAxMDBtcyBkb2VzIG5vdCBoZWxwLgo+ID4KPiA+IENvdWxkIHlvdSBwcm92aWRlIGFsc28g ZGlmZiB3aGljaCB5b3UgYXBwbGllZCB0byBkcml2ZXI/Cj4gCj4gU3VyZSwgaGVyZSBpdCBpczoK PiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9yb2JpbWFya28vYTJiODk0MmI1ZjIyYjEwN2M2MmZi YTk2OTUyMjA4ODEKCllvdSBzaG91bGQgcHJpbnQgZGVidWcgbG9ncyB3aGVuIF9jYWxsaW5nXyBy ZWdtYXBfdXBkYXRlX2JpdHMoKS4gQW5kCmN1cnJlbnQgbG9nIGlzIHZlcnkgc3RyYW5nZSwgeW91 IGFyZSBwcmludGluZyBtZXNzYWdlIGxpbmUKIiVwQ24gcmVxdWVzdGVkIHJhdGUgJWx1IGxvYWRf bGV2ZWwgJXUiIGZvciBpdGVyYXRpb24gaW4gZm9yLWxvb3AsIGFsc28Kd2hlbiAidmFsICE9IGRp diIuIFNvIGxvZyBjb250YWlucyBsb3Qgb2YgaW5jb3JyZWN0IGxpbmVzLgoKPiBSZWdhcmRzLAo+ IFJvYmVydAo+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4gUm9iZXJ0Cj4gPiA+ID4KPiA+ID4gPiA+ IFJlZ2FyZHMsCj4gPiA+ID4gPiBSb2JlcnQKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gRWxhZC4K PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+ID4g PiA+ID4gRnJvbTogUm9iZXJ0IE1hcmtvIDxyb2JlcnQubWFya29Ac2FydHVyYS5ocj4KPiA+ID4g PiA+ID4gU2VudDogVHVlc2RheSwgQXVndXN0IDIsIDIwMjIgNzo0MiBQTQo+ID4gPiA+ID4gPiBU bzogRWxhZCBOYWNobWFuIDxlbmFjaG1hbkBtYXJ2ZWxsLmNvbT4KPiA+ID4gPiA+ID4gQ2M6IFBh bGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+OyBXb2pjaWVjaCBCYXJ0Y3phayA8d2JhcnRjemFr QG1hcnZlbGwuY29tPjsgTWFyZWsgQmVow7puIDxrYWJlbEBrZXJuZWwub3JnPjsgVmlyZXNoIEt1 bWFyIDx2aXJlc2gua3VtYXJAbGluYXJvLm9yZz47IEdyZWdvcnkgQ0xFTUVOVCA8Z3JlZ29yeS5j bGVtZW50QGJvb3RsaW4uY29tPjsgVG9tYXN6IE1hY2llaiBOb3dhayA8dG1uNTA1QGdtYWlsLmNv bT47IEFuZGVycyBUcmllciBPbGVzZW4gPGFuZGVycy50cmllci5vbGVzZW5AZ21haWwuY29tPjsg UGhpbGlwIFNvYXJlcyA8cGhpbGlwc0BuZXRpc2Vuc2UuY29tPjsgbGludXgtcG1Admdlci5rZXJu ZWwub3JnOyBTZWJhc3RpYW4gSGVzc2VsYmFydGggPHNlYmFzdGlhbi5oZXNzZWxiYXJ0aEBnbWFp bC5jb20+OyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7IG5uZXQgPG5uZXRA ZmFzdG1haWwuZm0+OyBHw6lyYWxkIEtlcm1hIDxnYW5kYWxmQGdrMi5uZXQ+Cj4gPiA+ID4gPiA+ IFN1YmplY3Q6IFJlOiBbRVhUXSBSZTogW1BBVENIIHYyXSBjcHVmcmVxOiBhcm1hZGEtMzd4eDog Zm9yYmlkIGNwdWZyZXEgZm9yIDEuMiBHSHogdmFyaWFudAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4g PiBPbiBNb24sIEF1ZyAxLCAyMDIyIGF0IDg6NTAgUE0gRWxhZCBOYWNobWFuIDxlbmFjaG1hbkBt YXJ2ZWxsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBIaSBQYWxpLAo+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gQ291bGQgeW91IHBsZWFzZSBwcm92aWRlIHRoZSBj cmFzaCBkdW1wIC8gY2FsbCB0cmFjZT8KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEFsc28s IGlmIHlvdSBjYW4gcGxlYXNlIGFubm90YXRlIHdpdGggcHJpbnRrIHRoZSBleGFjdCB2b2x0YWdl L2ZyZXF1ZW5jeSBjaGFuZ2VzIHRha2VuIGJ5IHRoZSBkcml2ZXIsIHVwIHRvIHRoZSBwb2ludCBv ZiB0aGUgY3Jhc2g/Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBUaGlzIHdpbGwgaGVscCB1 bmRlcnN0YW5kIHRoZSBzZXF1ZW5jZSBvZiBldmVudHMgbGVhZGluZyB0byB0aGUgY3Jhc2guCj4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBUaGFua3MsCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiBFbGFkLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBIaSBFbGFkLAo+ ID4gPiA+ID4gPiBIZXJlIGFyZSAyIGJvb3Rsb2dzLCBidXQgSSBkb250IHRoaW5rIHRoZXkgYXJl IG9mIGFueSB1c2UgYXMgdGhlIHRyYWNlcyBhcmUgcmF0aGVyIHJhbmRvbSBhbmQgdGhleSBhcmUg YWx3YXlzIGRpZmZlcmVudCwgbGlrZSBhIHJlYWwgdm9sdGFnZSBpc3N1ZToKPiA+ID4gPiA+ID4g aHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX19naXN0 LmdpdGh1Yi5jb21fcm9iaW1hcmtvXzExMzIxNmY1NjZjY2YxNTlkZmQzMzkzMzg4OWRhMDQyJmQ9 RHdJRmFRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWVUZU5UTEVLNS1UeFhjempPY0tQaEFO SUZ0bEI5cFA0bHE5cWhkbEZyd1EmbT11MzluN1hQQmRRVmFvYXZpTTMyUWNGYWlPMEtEczNCVnpr ZUYtNHpycVBLRWxOSDNpZ0g5S3FFS2Z4U0tMei1IJnM9anZtUjNNeWs0NDNEZWx2Tlp2MU9raG1w cW5NcDlZOG12enpZejJnMTNyTSZlPQo+ID4gPiA+ID4gPiBodHRwczovL3VybGRlZmVuc2UucHJv b2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtM0FfX2dpc3QuZ2l0aHViLmNvbV9yb2JpbWFya29f OTkwZDc1Nzg3MGQ0NGEzYzVhY2RmZWI5NTc1NDc3MDUmZD1Ed0lGYVEmYz1uS2pXZWMyYjZSMG1P eVBhejd4dGZRJnI9ZVRlTlRMRUs1LVR4WGN6ak9jS1BoQU5JRnRsQjlwUDRscTlxaGRsRnJ3USZt PXUzOW43WFBCZFFWYW9hdmlNMzJRY0ZhaU8wS0RzM0JWemtlRi00enJxUEtFbE5IM2lnSDlLcUVL ZnhTS0x6LUgmcz1Yck1GZUpwRUdPNUE0cklLamtITE5jNE1IelBHT0JLZU9rdERXQ2JRTUFjJmU9 Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEhlcmUgaXMgYSBib290bGVnIHdpdGggdGhlIGZyZXF1 ZW5jeSBjaGFuZ2VzLCBPUFAgcG9pbnRzIHRoYXQgYXJlIHNldCBieSB0aGUgQ1BVRnJlcSBkcml2 ZXIgYXJlIGFsc28gaGVyZToKPiA+ID4gPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9p bnQuY29tL3YyL3VybD91PWh0dHBzLTNBX19naXN0LmdpdGh1Yi5jb21fcm9iaW1hcmtvXzFhODFi MGM2ZTkzNzM1Yjc1ZmY0NDYxZDQwNWM4MDMzJmQ9RHdJRmFRJmM9bktqV2VjMmI2UjBtT3lQYXo3 eHRmUSZyPWVUZU5UTEVLNS1UeFhjempPY0tQaEFOSUZ0bEI5cFA0bHE5cWhkbEZyd1EmbT11Mzlu N1hQQmRRVmFvYXZpTTMyUWNGYWlPMEtEczNCVnprZUYtNHpycVBLRWxOSDNpZ0g5S3FFS2Z4U0tM ei1IJnM9MDJsanFoUUFkWmtpLUp3RFlOUEthU3RtelNraHVpdEJSUDZSMTdpT1pxQSZlPQo+ID4g PiA+ID4gPgo+ID4gPiA+ID4gPiBJIGFtIHN0aWxsIGRpZ2dpbmcgdG8gcHJpbnQgdGhlIHZvbHRh Z2UgY2hhbmdlcyBhcyBfc2V0X29wcF92b2x0YWdlIGlzIG5vdCBiZWluZyB1c2VkLgo+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPiBSb2JlcnQKPiA+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KPiA+ID4gPiA+ID4gPiDXnteQ16o6IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+ Cj4gPiA+ID4gPiA+ID4g4oCP4oCP16DXqdec15c6INeZ15XXnSDXqdeg15kgMDEg15DXldeS15XX odeYIDIwMjIgMjA6NTYKPiA+ID4gPiA+ID4gPiDigI/igI/XkNecOiBFbGFkIE5hY2htYW4gPGVu YWNobWFuQG1hcnZlbGwuY29tPgo+ID4gPiA+ID4gPiA+INei15XXqtenOiBXb2pjaWVjaCBCYXJ0 Y3phayA8d2JhcnRjemFrQG1hcnZlbGwuY29tPjsgTWFyZWsgQmVow7puCj4gPiA+ID4gPiA+ID4g PGthYmVsQGtlcm5lbC5vcmc+OyBWaXJlc2ggS3VtYXIgPHZpcmVzaC5rdW1hckBsaW5hcm8ub3Jn PjsgR3JlZ29yeQo+ID4gPiA+ID4gPiA+IENMRU1FTlQgPGdyZWdvcnkuY2xlbWVudEBib290bGlu LmNvbT47IFJvYmVydCBNYXJrbwo+ID4gPiA+ID4gPiA+IDxyb2JlcnQubWFya29Ac2FydHVyYS5o cj47IFRvbWFzeiBNYWNpZWogTm93YWsgPHRtbjUwNUBnbWFpbC5jb20+Owo+ID4gPiA+ID4gPiA+ IEFuZGVycyBUcmllciBPbGVzZW4gPGFuZGVycy50cmllci5vbGVzZW5AZ21haWwuY29tPjsgUGhp bGlwIFNvYXJlcwo+ID4gPiA+ID4gPiA+IDxwaGlsaXBzQG5ldGlzZW5zZS5jb20+OyBsaW51eC1w bUB2Z2VyLmtlcm5lbC5vcmcKPiA+ID4gPiA+ID4gPiA8bGludXgtcG1Admdlci5rZXJuZWwub3Jn PjsgU2ViYXN0aWFuIEhlc3NlbGJhcnRoCj4gPiA+ID4gPiA+ID4gPHNlYmFzdGlhbi5oZXNzZWxi YXJ0aEBnbWFpbC5jb20+Owo+ID4gPiA+ID4gPiA+IGxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwo+ID4gPiA+ID4gPiA+IDxsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVh ZC5vcmc+OyBubmV0IDxubmV0QGZhc3RtYWlsLmZtPjsKPiA+ID4gPiA+ID4gPiBHw6lyYWxkIEtl cm1hIDxnYW5kYWxmQGdrMi5uZXQ+Cj4gPiA+ID4gPiA+ID4g4oCP4oCP16DXldep15A6IFJlOiBb RVhUXSBSZTogW1BBVENIIHYyXSBjcHVmcmVxOiBhcm1hZGEtMzd4eDogZm9yYmlkIGNwdWZyZXEK PiA+ID4gPiA+ID4gPiBmb3IgMS4yIEdIeiB2YXJpYW50Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiBIZWxsbyBFbGFkIQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gUm9iZXJ0IChpbiBD QykgdGVzdGVkIHRoaXMgcHJvcG9zZWQgY2hhbmdlLiBCdXQgaW5jcmVhc2luZyBkZWxheSB0bwo+ ID4gPiA+ID4gPiA+IDEwMG1zIGRvZXMgbm90IGhlbHAuIENQVSBzdGlsbCBjcmFzaGVzIGVhcmx5 IGR1cmluZyBib290Lgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gT24gTW9uZGF5IDAxIEF1 Z3VzdCAyMDIyIDE0OjE1OjI3IEVsYWQgTmFjaG1hbiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+IEhp LAo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IEFzIGZpcnN0IHN0ZXAsIHBsZWFzZSB0 cnkgdG8gaW5jcmVhc2UgdGhlIGRlbGF5IHRvIDEwMG1zLCBzZWUgaWYgaXQgaGVscHMuCj4gPiA+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gRWxhZC4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID4gPiA+ID4gPiA+ID4gRnJvbTog UGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4KPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IE1vbmRh eSwgQXVndXN0IDEsIDIwMjIgNToxMyBQTQo+ID4gPiA+ID4gPiA+ID4gVG86IEVsYWQgTmFjaG1h biA8ZW5hY2htYW5AbWFydmVsbC5jb20+Cj4gPiA+ID4gPiA+ID4gPiBDYzogV29qY2llY2ggQmFy dGN6YWsgPHdiYXJ0Y3pha0BtYXJ2ZWxsLmNvbT47IE1hcmVrIEJlaMO6bgo+ID4gPiA+ID4gPiA+ ID4gPGthYmVsQGtlcm5lbC5vcmc+OyBWaXJlc2ggS3VtYXIgPHZpcmVzaC5rdW1hckBsaW5hcm8u b3JnPjsgR3JlZ29yeQo+ID4gPiA+ID4gPiA+ID4gQ0xFTUVOVCA8Z3JlZ29yeS5jbGVtZW50QGJv b3RsaW4uY29tPjsgUm9iZXJ0IE1hcmtvCj4gPiA+ID4gPiA+ID4gPiA8cm9iZXJ0Lm1hcmtvQHNh cnR1cmEuaHI+OyBUb21hc3ogTWFjaWVqIE5vd2FrIDx0bW41MDVAZ21haWwuY29tPjsKPiA+ID4g PiA+ID4gPiA+IEFuZGVycyBUcmllciBPbGVzZW4gPGFuZGVycy50cmllci5vbGVzZW5AZ21haWwu Y29tPjsgUGhpbGlwIFNvYXJlcwo+ID4gPiA+ID4gPiA+ID4gPHBoaWxpcHNAbmV0aXNlbnNlLmNv bT47IGxpbnV4LXBtQHZnZXIua2VybmVsLm9yZzsgU2ViYXN0aWFuCj4gPiA+ID4gPiA+ID4gPiBI ZXNzZWxiYXJ0aCA8c2ViYXN0aWFuLmhlc3NlbGJhcnRoQGdtYWlsLmNvbT47Cj4gPiA+ID4gPiA+ ID4gPiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7IG5uZXQgPG5uZXRAZmFz dG1haWwuZm0+Cj4gPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW0VYVF0gUmU6IFtQQVRDSCB2 Ml0gY3B1ZnJlcTogYXJtYWRhLTM3eHg6IGZvcmJpZAo+ID4gPiA+ID4gPiA+ID4gY3B1ZnJlcSBm b3IgMS4yIEdIeiB2YXJpYW50Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gSGVsbG8g RWxhZCBhbmQgdGhhbmsgeW91IGZvciByZXNwb25zZSEKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiBUaGlzIGVycmF0YSBpcyBhbHJlYWR5IGltcGxlbWVudGVkIGluIHRoZSBrZXJuZWwg Zm9yIGEgbG9uZ2VyIHRpbWUgYnkgR3JlZ29yeSdzIGNvbW1pdDoKPiA+ID4gPiA+ID4gPiA+IGh0 dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0zQV9fZ2l0Lmtl cm5lbC5vcmdfCj4gPiA+ID4gPiA+ID4gPiBwdWJfc2NtX2xpbnV4X2tlcm5lbF9naXRfc3RhYmxl X2xpbnV4LmdpdF9jb21taXRfLTNGaWQtM0Q2MWM0MGYzNWY1Ywo+ID4gPiA+ID4gPiA+ID4gZDZm NjdjY2JkNzMxOWExNzIyZWI3OGM4MTU5ODkmZD1Ed0lEYVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4 dGZRJnI9ZVQKPiA+ID4gPiA+ID4gPiA+IGVOVExFSzUtVHhYY3pqT2NLUGhBTklGdGxCOXBQNGxx OXFoZGxGcndRJm09LUUtQXdCOVNUVng4eGdhcGFDTlNwREpJCj4gPiA+ID4gPiA+ID4gPiBQUG5r cnpyV2taWDB1RnoyYmZOR0ZuY2taZWxUX1hhb3ZVVVByTklnJnM9NEVVY2REV0JfZ3FuRVY4blJF UWk5RV9peQo+ID4gPiA+ID4gPiA+ID4gbTViam9NNmw1ekxyYmhfR1ZzJmU9Cj4gPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+ID4gVGhlcmUgaXMgYWxzbyAyMG1zIGRlbGF5IGFmdGVyIEwyL0wz IHRvIEwxIHN0YXRlIHN3aXRjaC4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBBbnkg aWRlYSB3aGF0IGNvdWxkIGJlIHdyb25nIGhlcmU/IE9yIGlzIHNvbWV0aGluZyBtb3JlIHRoYW4g YWJvdmUgY29tbWl0IG5lZWRlZCB0byBjb3JyZWN0bHkgaW1wbGVtZW50IHRoYXQgZXJyYXRhPwo+ ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IE9uIE1vbmRheSAwMSBBdWd1c3QgMjAyMiAx NDowMTowNyBFbGFkIE5hY2htYW4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+IEhpIFBhbGksCj4g PiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFRoZXJlIGlzIGFuIGVycmF0YSBmb3Ig dGhhdC4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gIgo+ID4gPiA+ID4gPiA+ ID4gPiBTd2l0Y2hpbmcgZnJvbSBMMi9MMyBzdGF0ZSAoMjAwLzMwMCBNSHopIHRvIEwwIHN0YXRl ICgxMjAwIE1IeikKPiA+ID4gPiA+ID4gPiA+ID4gcmVxdWlyZXMgc3VkZGVuIGNoYW5nZXMgb2Yg VkREIHN1cHBseSwgYW5kIGl0IHJlcXVpcmVzIHRpbWUgdG8KPiA+ID4gPiA+ID4gPiA+ID4gc3Rh YmlsaXplIHRoZSBWREQgc3VwcGx5LiBUaGUgc29sdXRpb24gaXMgdG8gdXNlIGdyYWR1YWwgc3dp dGNoaW5nIGZyb20gTDIvTDMgdG8gTDEgYW5kIHRoZW4gTDEgdG8gTDAgc3RhdGUuCj4gPiA+ID4g PiA+ID4gPiA+ICIKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gSSB3b3VsZCBh bHNvIGFkZCBhZGRpdGlvbmFsIGRlbGF5IGZvciB0aGUgVkREIHN1cHBseSBzdGFiaWxpemF0aW9u Lgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBGWUksCj4gPiA+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gPiA+IEVsYWQuCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiA+ID4gPiA+ID4gPiA+IEZyb206 IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+Cj4gPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IE1v bmRheSwgQXVndXN0IDEsIDIwMjIgMzozNiBQTQo+ID4gPiA+ID4gPiA+ID4gPiBUbzogRWxhZCBO YWNobWFuIDxlbmFjaG1hbkBtYXJ2ZWxsLmNvbT47IFdvamNpZWNoIEJhcnRjemFrCj4gPiA+ID4g PiA+ID4gPiA+IDx3YmFydGN6YWtAbWFydmVsbC5jb20+Cj4gPiA+ID4gPiA+ID4gPiA+IENjOiBN YXJlayBCZWjDum4gPGthYmVsQGtlcm5lbC5vcmc+OyBWaXJlc2ggS3VtYXIKPiA+ID4gPiA+ID4g PiA+ID4gPHZpcmVzaC5rdW1hckBsaW5hcm8ub3JnPjsgR3JlZ29yeSBDTEVNRU5UCj4gPiA+ID4g PiA+ID4gPiA+IDxncmVnb3J5LmNsZW1lbnRAYm9vdGxpbi5jb20+OyBSb2JlcnQgTWFya28KPiA+ ID4gPiA+ID4gPiA+ID4gPHJvYmVydC5tYXJrb0BzYXJ0dXJhLmhyPjsgVG9tYXN6IE1hY2llaiBO b3dhayA8dG1uNTA1QGdtYWlsLmNvbT47Cj4gPiA+ID4gPiA+ID4gPiA+IEFuZGVycyBUcmllciBP bGVzZW4gPGFuZGVycy50cmllci5vbGVzZW5AZ21haWwuY29tPjsgUGhpbGlwIFNvYXJlcwo+ID4g PiA+ID4gPiA+ID4gPiA8cGhpbGlwc0BuZXRpc2Vuc2UuY29tPjsgbGludXgtcG1Admdlci5rZXJu ZWwub3JnOyBTZWJhc3RpYW4KPiA+ID4gPiA+ID4gPiA+ID4gSGVzc2VsYmFydGggPHNlYmFzdGlh bi5oZXNzZWxiYXJ0aEBnbWFpbC5jb20+Owo+ID4gPiA+ID4gPiA+ID4gPiBsaW51eC1hcm0ta2Vy bmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7IG5uZXQgPG5uZXRAZmFzdG1haWwuZm0+Cj4gPiA+ID4g PiA+ID4gPiA+IFN1YmplY3Q6IFtFWFRdIFJlOiBbUEFUQ0ggdjJdIGNwdWZyZXE6IGFybWFkYS0z N3h4OiBmb3JiaWQgY3B1ZnJlcQo+ID4gPiA+ID4gPiA+ID4gPiBmb3IKPiA+ID4gPiA+ID4gPiA+ ID4gMS4yIEdIeiB2YXJpYW50Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IEV4 dGVybmFsIEVtYWlsCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ID4gPiA+ID4gPiA+ID4gPiAtLS0tCj4gPiA+ID4gPiA+ID4gPiA+ICsgRWxhZCBhbmQgV29q Y2llY2ggZnJvbSBNYXJ2ZWxsCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IENv dWxkIHlvdSBwbGVhc2UgbG9vayBhdCB0aGlzIGlzc3VlIGFuZC9vciBmb3J3YXJkIGl0IHRvIHJl bGV2YW50IE1hcnZlbGwgdGVhbT8KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4g TWFpbnRhaW5lciBWaXJlc2ggYWxyZWFkeSB3cm90ZSB0aGF0IHdlIGNhbm5vdCBoYW5nIGZvcmV2 ZXIgZm9yIE1hcnZlbGwgYW5kIHBhdGNoIHdoaWNoIGRpc2FibGVzIHN1cHBvcnQgZm9yIDEuMiBH SHogd2FzIG1lcmdlZDoKPiA+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29m cG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX19sb3JlLmtlcm5lbC5vCj4gPiA+ID4gPiA+ID4g PiA+IHJnX2wKPiA+ID4gPiA+ID4gPiA+ID4gaW51eC0yRHBtXzIwMjEwODA5MDQwMjI0LmoycnZv cG1tcWRhM3V0YzUtNDB2aXJlc2hrLTJEaTdfJmQ9RHdJRGFRCj4gPiA+ID4gPiA+ID4gPiA+ICZj PW4KPiA+ID4gPiA+ID4gPiA+ID4gS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9ZVRlTlRMRUs1LVR4 WGN6ak9jS1BoQU5JRnRsQjlwUDRscTlxaGRsRnJ3Cj4gPiA+ID4gPiA+ID4gPiA+IFEmbT0KPiA+ ID4gPiA+ID4gPiA+ID4gNW5NTUt5S09PTTNYZE1lX1BlclpSeDhMNy1EN01rV2hDbDdHeHBYVFBp b3RWZjFUUjRqOHYzYnBqUW1SS0NMQyZzCj4gPiA+ID4gPiA+ID4gPiA+ID1jWGkgQ1pCeWtuZnox ck9JZ0psNGZKSGwxS0xMUnEyc2hIdWwyLVZQcFlQMCZlPQo+ID4gPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+ID4gPiBPbiBTdW5kYXkgMDggQXVndXN0IDIwMjEgMjE6MzA6MjYgUGFsaSBSb2jD oXIgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+ID4gR2VudGxlIHJlbWluZGVyLiBUaGlzIGlzIHJl YWxseSBzZXJpb3VzIGlzc3VlLiBDb3VsZCB5b3UgcGxlYXNlIGxvb2sgYXQgaXQ/Cj4gPiA+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiBBZGRpbmcgbW9yZSBNYXJ2ZWxsRW1iZWRk ZWRQcm9jZXNzb3JzIHBlb3BsZSB0byB0aGUgbG9vcDogRXZhbiwKPiA+ID4gPiA+ID4gPiA+ID4g PiBCZW5qYW1pbiBhbiBJZ2FsCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4g PiBPbiBUaHVyc2RheSAxNSBKdWx5IDIwMjEgMjE6MzM6MjEgUGFsaSBSb2jDoXIgd3JvdGU6Cj4g PiA+ID4gPiA+ID4gPiA+ID4gPiBQaW5nISBHZW50bGUgcmVtaW5kZXIgZm9yIE1hcnZlbGwgcGVv cGxlLgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIFRodXJz ZGF5IDA4IEp1bHkgMjAyMSAxNjozNDo1MSBQYWxpIFJvaMOhciB3cm90ZToKPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gS29uc3RhbnRpbiwgTmFkYXYsIEtlbiwgVmljdG9yLCBKYXNvbjogVGhpcyBp c3N1ZSBpcyBwcmV0dHkKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2VyaW91cywgQ1BVIG9uIDEu MkdIeiBBMzcyMCBpcyBjcmFzaGluZy4gQ291bGQgeW91IHBsZWFzZSBsb29rIGF0IGl0Pwo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBGcmlkYXkgMDIg SnVseSAyMDIxIDE4OjMwOjM1IFBhbGkgUm9ow6FyIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICtKYXNvbiBmcm9tIEdsb2JhbFNjYWxlIGFzIHRoaXMgaXNzdWUgYWZmZWN0cyBHbG9i YWxTY2FsZSBFc3ByZXNzb2JpbiBVbHRyYSBhbmQgVjcgMS4yIEdIeiBib2FyZHMuCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBUaHVyc2RheSAw MSBKdWx5IDIwMjEgMDA6NTY6MDEgTWFyZWsgQmVow7puIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gVGhlIDEuMiBHSHogdmFyaWFudCBvZiB0aGUgQXJtYWRhIDM3MjAgU09DIGlz IHVuc3RhYmxlCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3aXRoCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiBEVkZTOiB3aGVuIHRoZSBTT0MgYm9vdHMsIHRoZSBXVE1JIGZpcm13YXJl IHNldHMgY2xvY2tzCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBhbmQgQVZTIHZhbHVlcyB0 aGF0IHdvcmsgY29ycmVjdGx5IHdpdGggMS4yIEdIeiBDUFUKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IGZyZXF1ZW5jeSwgYnV0IHJhbmRvbSBjcmFzaGVzIG9jY3VyIG9uY2UgY3B1ZnJlcSBk cml2ZXIgc3RhcnRzIHNjYWxpbmcuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gV2UgZG8gbm90IGtub3cgY3VycmVudGx5IHdoYXQgaXMgdGhl IHJlYXNvbjoKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IC0gaXQgbWF5IGJlIHRoYXQgdGhl IHZvbHRhZ2UgdmFsdWUgZm9yIEwwIGZvciAxLjIgR0h6IHZhcmlhbnQgcHJvdmlkZWQKPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgYnkgdGhlIHZlbmRvciBpbiB0aGUgT1RQIGlzIHNpbXBs eSBpbmNvcnJlY3Qgd2hlbgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gc2NhbGluZyBpcyB1 c2VkLAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gLSBpdCBtYXkgYmUgdGhhdCBzb21lIGRl bGF5IGlzIG5lZWRlZCBzb21ld2hlcmUsCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtIGl0 IG1heSBiZSBzb21ldGhpbmcgZWxzZS4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUgbW9zdCBzYW5lIHNvbHV0aW9uIG5vdyBzZWVtcyB0 byBiZSB0byBzaW1wbHkgZm9yYmlkCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUgY3B1 ZnJlcSBkcml2ZXIgb24gMS4yIEdIeiB2YXJpYW50Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hcmVrIEJlaMO6 biA8a2FiZWxAa2VybmVsLm9yZz4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEZpeGVzOiA5 MmNlNDVmYjg3NWQgKCJjcHVmcmVxOiBBZGQgRFZGUyBzdXBwb3J0IGZvcgo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gQXJtYWRhCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAzN3h4IikK PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gSWYgc29tZW9uZSBmcm9tIE1hcnZlbGwgY291bGQgbG9vayBpbnRvIHRoaXMsIGl0IHdvdWxk Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiZSBncmVhdCBzaW5jZSBiYXNpY2FsbHkgMS4y IEdIeiB2YXJpYW50IGNhbm5vdCBzY2FsZSwKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHdo aWNoIGlzIGEgZmVhdHVyZSB0aGF0IHdhcyBjbGFpbWVkIHRvIGJlIHN1cHBvcnRlZCBieSB0aGUg U09DLgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IEtlbiBNYSAvIFZpY3RvciBHdSwgeW91IGhhdmUgd29ya2VkIG9uIGNvbW1pdAo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3Yy L3VybD91PWh0dHBzLTNBX19naXRodWIuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjbwo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbV9NYXJ2ZWxsRW1iZWRkZWRQcm9jZXNzb3JzX2xp bnV4LTJEbWFydmVsbF9jb21taXRfZDY3MTkKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGZk YzIKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGIzCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBjYWM1ODA2NGY0MWI1MzFmODY5OTNjOTE5YWE5YSZkPUR3SURhUSZjPW5LaldlYzJiNlIw bU95UAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gYXo3eAo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gdGYKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFEmcj1lVGVOVExFSzUtVHhY Y3pqT2NLUGhBTklGdGxCOXBQNGxxOXFoZGxGcndRJm09NW5NTUt5Cj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBLT09NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAzWAo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gZE1lX1BlclpSeDhMNy1EN01rV2hDbDdHeHBYVFBpb3RWZjFUUjRq OHYzYnBqUW1SS0NMQyZzPWIKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDljREsgZW0gdDcw T2lUSkY2S1hqMHlTemJ4cHNCX251dGVYSkU4N3ZpYTgwJmU9Cj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiBpbiBsaW51eC1tYXJ2ZWxsLgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gWW91 ciBwYXRjaCB0YWtlcyBhd2F5IHRoZSAxMjAyIG1WIGNvbnN0YW50IGZvciAxLjIgR0h6Cj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiYXNlIENQVSBmcmVxdWVuY3kgYW5kIGluc3RlYWQgYWRk cyBjb2RlIHRoYXQgY29tcHV0ZXMKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHRoZSB2b2x0 YWdlcyBmcm9tIHRoZSB2b2x0YWdlIGZvdW5kIGluIEwwIEFWUyByZWdpc3RlciAod2hpY2ggaXMg ZmlsbGVkIGluIGJ5IFdUTUkgZmlybXdhcmUpLgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IERvIHlvdSBrbm93IHdoeSB0aGUgY29kZSBkb2Vz IG5vdCB3b3JrIGNvcnJlY3RseSBmb3IKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNvbWUK PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDEuMiBHSHogYm9hcmRzPyBEbyB3ZSBuZWVkIHRv IGZvcmNlIHRoZSBMMCB2b2x0YWdlIHRvCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAxMjAy IG1WIGlmIGl0IGlzIGxvd2VyLCBvciBzb21ldGhpbmc/Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiAtLS0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICBkcml2ZXJzL2NwdWZyZXEvYXJt YWRhLTM3eHgtY3B1ZnJlcS5jIHwgNiArKysrKy0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ICAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvY3B1ZnJlcS9hcm1hZGEtMzd4eC1jcHVmcmVxLmMKPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IGIvZHJpdmVycy9jcHVmcmVxL2FybWFkYS0zN3h4LWNwdWZyZXEuYwo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggM2ZjOThhM2ZmZDkxLi5jMTBmYzMzYjI5YjEg MTAwNjQ0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2NwdWZyZXEv YXJtYWRhLTM3eHgtY3B1ZnJlcS5jCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9k cml2ZXJzL2NwdWZyZXEvYXJtYWRhLTM3eHgtY3B1ZnJlcS5jCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiBAQCAtMTA0LDcgKzEwNCwxMSBAQCBzdHJ1Y3QgYXJtYWRhXzM3eHhfZHZmcyB7ICB9 Owo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ICBzdGF0aWMgc3RydWN0IGFybWFkYV8zN3h4X2R2ZnMgYXJtYWRhXzM3eHhfZHZmc1tdID0gewo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gLSB7LmNwdV9mcmVxX21heCA9IDEyMDAqMTAwMCox MDAwLCAuZGl2aWRlciA9IHsxLCAyLCA0LAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gNn0g fSwKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgLyoKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgICogVGhlIGNwdWZyZXEgc2NhbGluZyBmb3IgMS4yIEdIeiB2YXJpYW50IG9mIHRo ZSBTT0MKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICtpcyBjdXJyZW50bHkKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICsgICogdW5zdGFibGUgYmVjYXVzZSB3ZSBkbyBub3Qga25vdyBo b3cgdG8gY29uZmlndXJlIGl0IHByb3Blcmx5Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g KyAgKi8KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgLyogey5jcHVfZnJlcV9tYXggPSAx MjAwKjEwMDAqMTAwMCwgLmRpdmlkZXIgPSB7MSwgMiwKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ICs0LCA2fSB9LCAqLwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgey5jcHVfZnJl cV9tYXggPSAxMDAwKjEwMDAqMTAwMCwgLmRpdmlkZXIgPSB7MSwgMiwgNCwgNX0gfSwKPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIHsuY3B1X2ZyZXFfbWF4ID0gODAwKjEwMDAqMTAwMCwg IC5kaXZpZGVyID0gezEsIDIsIDMsIDR9IH0sCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAg ICB7LmNwdV9mcmVxX21heCA9IDYwMCoxMDAwKjEwMDAsICAuZGl2aWRlciA9IHsyLCA0LCA1LAo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gNn0gfSwKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IC0tCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAyLjMxLjEKPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+IC0tCj4gPiA+ID4gPiA+IFJvYmVydCBNYXJrbwo+ID4gPiA+ID4gPiBTdGFmZiBFbWJlZGRl ZCBMaW51eCBFbmdpbmVlcgo+ID4gPiA+ID4gPiBTYXJ0dXJhIEx0ZC4KPiA+ID4gPiA+ID4gTGVu ZGF2c2thIHVsaWNhIDE2YQo+ID4gPiA+ID4gPiAxMDAwMCBaYWdyZWIsIENyb2F0aWEKPiA+ID4g PiA+ID4gRW1haWw6IHJvYmVydC5tYXJrb0BzYXJ0dXJhLmhyCj4gPiA+ID4gPiA+IFdlYjogaHR0 cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtM0FfX3d3dy5zYXJ0 dXJhLmhyJmQ9RHdJRmFRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWVUZU5UTEVLNS1UeFhj empPY0tQaEFOSUZ0bEI5cFA0bHE5cWhkbEZyd1EmbT11MzluN1hQQmRRVmFvYXZpTTMyUWNGYWlP MEtEczNCVnprZUYtNHpycVBLRWxOSDNpZ0g5S3FFS2Z4U0tMei1IJnM9X2FCb2tURVROVnpUckhx ZXd1cHI0UGVMdXNCTmY3TEdyVG1qSTJocHBGayZlPQo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ ID4gPgo+ID4gPiA+ID4gLS0KPiA+ID4gPiA+IFJvYmVydCBNYXJrbwo+ID4gPiA+ID4gU3RhZmYg RW1iZWRkZWQgTGludXggRW5naW5lZXIKPiA+ID4gPiA+IFNhcnR1cmEgTHRkLgo+ID4gPiA+ID4g TGVuZGF2c2thIHVsaWNhIDE2YQo+ID4gPiA+ID4gMTAwMDAgWmFncmViLCBDcm9hdGlhCj4gPiA+ ID4gPiBFbWFpbDogcm9iZXJ0Lm1hcmtvQHNhcnR1cmEuaHIKPiA+ID4gPiA+IFdlYjogd3d3LnNh cnR1cmEuaHIKPiA+ID4KPiA+ID4KPiA+ID4KPiA+ID4gLS0KPiA+ID4gUm9iZXJ0IE1hcmtvCj4g PiA+IFN0YWZmIEVtYmVkZGVkIExpbnV4IEVuZ2luZWVyCj4gPiA+IFNhcnR1cmEgTHRkLgo+ID4g PiBMZW5kYXZza2EgdWxpY2EgMTZhCj4gPiA+IDEwMDAwIFphZ3JlYiwgQ3JvYXRpYQo+ID4gPiBF bWFpbDogcm9iZXJ0Lm1hcmtvQHNhcnR1cmEuaHIKPiA+ID4gV2ViOiB3d3cuc2FydHVyYS5ocgo+ IAo+IAo+IAo+IC0tIAo+IFJvYmVydCBNYXJrbwo+IFN0YWZmIEVtYmVkZGVkIExpbnV4IEVuZ2lu ZWVyCj4gU2FydHVyYSBMdGQuCj4gTGVuZGF2c2thIHVsaWNhIDE2YQo+IDEwMDAwIFphZ3JlYiwg Q3JvYXRpYQo+IEVtYWlsOiByb2JlcnQubWFya29Ac2FydHVyYS5ocgo+IFdlYjogd3d3LnNhcnR1 cmEuaHIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxp bnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFk ZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LWFybS1rZXJuZWwK