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 72FB6C3DA66 for ; Fri, 25 Aug 2023 06:46:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242344AbjHYGph (ORCPT ); Fri, 25 Aug 2023 02:45:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36572 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242359AbjHYGpT (ORCPT ); Fri, 25 Aug 2023 02:45:19 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 322C6CE; Thu, 24 Aug 2023 23:45:16 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id AB91266278; Fri, 25 Aug 2023 06:45:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80247C433C7; Fri, 25 Aug 2023 06:45:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692945915; bh=gla2cfOgvXf1ls+zCWYltqg6BRHQzwcByC74kYvqg6g=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=UesX+i6Czb8Fm6+flVdmaN1fmd5vBVG33llc5K4BHquKlH3823jHE6AUwGJVKFuBw pl209ectVdAIOS4RlRXO5/t4DzdBhz0Krc6MbHhARyTQz1C08//D2/K7doZqSaLsde /M9zU5NFeg5XrN8X6zcWozLMyjk2VSxjLu9y2A1Sw4CltuQ7Ejma7yBSVCPYaa5FJZ RIxFyt87qF91TNu9gg69WWNJNbnD7q2wFOdaEQMqv49Vy8aixpLF11G9SyA76QOduA S+j0kV8jOWcmDlkj6cGz0L7qu+nJBmvxfF+2EEhZjR0BJAsRtJVclTVsHJAf5bNBzW SnTzWYWFPB7sg== Date: Fri, 25 Aug 2023 12:15:05 +0530 From: Manivannan Sadhasivam To: Jim Quinlan Cc: Manivannan Sadhasivam , Jim Quinlan , linux-pci@vger.kernel.org, Nicolas Saenz Julienne , Bjorn Helgaas , Lorenzo Pieralisi , Cyril Brulebois , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Florian Fainelli , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , open list Subject: Re: [PATCH v5 1/5] dt-bindings: PCI: brcmstb: Add brcm,enable-l1ss property Message-ID: <20230825064505.GA6005@thinkpad> References: <20230508220126.16241-1-jim2101024@gmail.com> <20230508220126.16241-2-jim2101024@gmail.com> <20230823074330.GF3737@thinkpad> <20230823181650.GL3737@thinkpad> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Thu, Aug 24, 2023 at 10:55:02AM -0400, Jim Quinlan wrote: > On Wed, Aug 23, 2023 at 2:17 PM Manivannan Sadhasivam wrote: > > > > On Wed, Aug 23, 2023 at 09:09:25AM -0400, Jim Quinlan wrote: > > > On Wed, Aug 23, 2023 at 3:43 AM Manivannan Sadhasivam wrote: > > > > > > > > On Mon, May 08, 2023 at 06:01:21PM -0400, Jim Quinlan wrote: > > > > > This commit adds the boolean "brcm,enable-l1ss" property: > > > > > > > > > > The Broadcom STB/CM PCIe HW -- a core that is also used by RPi SOCs -- > > > > > requires the driver probe() to deliberately place the HW one of three > > > > > CLKREQ# modes: > > > > > > > > > > (a) CLKREQ# driven by the RC unconditionally > > > > > (b) CLKREQ# driven by the EP for ASPM L0s, L1 > > > > > (c) Bidirectional CLKREQ#, as used for L1 Substates (L1SS). > > > > > > > > > > The HW+driver can tell the difference between downstream devices that > > > > > need (a) and (b), but does not know when to configure (c). All devices > > > > > should work fine when the driver chooses (a) or (b), but (c) may be > > > > > desired to realize the extra power savings that L1SS offers. So we > > > > > introduce the boolean "brcm,enable-l1ss" property to inform the driver > > > > > that (c) is desired. Setting this property only makes sense when the > > > > > downstream device is L1SS-capable and the OS is configured to activate > > > > > this mode (e.g. policy==powersupersave). > > > > > > > > > > This property is already present in the Raspian version of Linux, but the > > > > > upstream driver implementation that follows adds more details and > > > > > discerns between (a) and (b). > > > > > > > > > > Signed-off-by: Jim Quinlan > > > > > Reviewed-by: Rob Herring > > > > > --- > > > > > Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml | 9 +++++++++ > > > > > 1 file changed, 9 insertions(+) > > > > > > > > > > diff --git a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > > > > > index 7e15aae7d69e..8b61c2179608 100644 > > > > > --- a/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > > > > > +++ b/Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml > > > > > @@ -64,6 +64,15 @@ properties: > > > > > > > > > > aspm-no-l0s: true > > > > > > > > > > + brcm,enable-l1ss: > > > > > + description: Indicates that PCIe L1SS power savings > > > > > + are desired, the downstream device is L1SS-capable, and the > > > > > + OS has been configured to enable this mode. For boards > > > > > + using a mini-card connector, this mode may not meet the > > > > > + TCRLon maximum time of 400ns, as specified in 3.2.5.2.2 > > > > > + of the PCI Express Mini CEM 2.0 specification. > > > > > > > > As Lorenzo said, this property doesn't belong in DT. DT is supposed to specify > > > > the hardware capability and not system/OS behavior. > > > > > > The "brcm,enable-l1ss" does NOT configure the OS behavior. > > > It sets or not a mode bit to enable l1SS HW, whether or not the OS is > > > configured for L1SS. > > > It compensates for a problem in the PCIe core: the HW is not capable > > > of dynamically > > > switching between ASPM modes powersave and superpowersave. I am actively > > > advocating for our HW to change but that will take years. > > > > > > > Okay, then I would say that the property name and commit message were a bit > > misleading. > > > > I had briefly gone through the driver patch now. As per my understanding, you > > have 2 modes in hw: > > > > 1. Clock PM - Refclk will be turned off by the host if CLKREQ# is deasserted by > > the device (driving high) when the link is in L1. > > > > 2. L1SS - CLKREQ# will be used to decide L1SS entry and exit by the host. > > No, there are three, as enumerated in the commit message of > "PCI: brcmstb: Configure HW CLKREQ# mode appropriate for downstream device" > Yeah, another one is refclk always on. > > > > Till now the driver only supported Clock PM through mode (1) but for supporting > > L1SS you need to enable mode (2). And you are using this property to select mode > > (2) when the L1SS supported devices are connected to the slot. Also, by > > selecting this mode, you are loosing the benefit of mode (1) as both are not > > compatible. > > > > My suggestion would be to just drop mode (1) and use mode (2) in the driver as > > most of the recent devices should support L1SS (ofc there are exemptions). > The disadvantage of this, as stated by the PCIe core HW designer, was > that "doing so means > we cannot enable the Cock Power Management capability since it may run afoul of > the Tclron requirement." > Ok. > I will attempt to press him on exactly what configurations and form > factors would be > vulnerable to this -- he was so convinced that it was a danger that he > is against > making L1SS mode the default. > Hmm. After looking at this problem in detail, it looks to me that you can still use DT but not with the property you proposed. Since these are hardware modes, you can have a single DT property that specifies the mode that the driver can use to configure the hw. It is similar to "phy-mode" property we have for the network controllers. So you should have the property defined as below in binding: brcm,clkreq-mode: $ref: /schemas/types.yaml#/definitions/uint32 enum: [ 0, 1, 2 ] Then create definition for each mode in "include/dt-bindings/pci/brcm,stb.h". #define BRCM_STB_CLKREQ_CLOCK_PM 0 #define BRCM_STB_CLKREQ_L1SS 1 #define BRCM_STB_CLKREQ_ON 2 If the property is not specified, the driver should use "Clock PM" as the default mode as it was doing earlier. Also, I think you can get rid of other checks in the driver (like PCIEASPM Kconfig, clkreq_seen etc...) and solely rely on this property to set the mode. What do you think? - Mani > > > > But moving that decision to DT still doesn't seem right to me as the hardware > > supports both modes and you are (ab)using DT to choose one or the other. > > May be true, but there does not appear to be a Linux upstream-acceptable > way of doing this on the command line either; please see my recent post > on why this is so. > > There will be cases where we want to override the default setting, either by > command line or DT, but you folks have to give me a viable path on > how to do this with it actually being accepted. > > Regards, > Jim Quinlan > Broadcom STB/CM > > > > > - Mani > > > > > If this flag specifies > > > > whether the PCIe controller supports L1SS or not, then it is fine but apparantly > > > > this specifies that all downstream devices are L1SS capable which you cannot > > > > guarantee unless you poke into their LNKCAP during runtime. > > > Not true at all. This setting affects only RC and whatever device is > > > connected to its single downstream > > > port. > > > > > > > > > > > You should handle this in the driver itself. > > > > > > The driver has no way of knowing if the PCI subsystem is going from power_save > > > to power_supersave or vice-versa -- there is no notification chain for this. So > > > what you say is not currently possible from the driver's perspective. > > > > > > Perhaps you would be happy if we changed it to "l1ss-support" in the > > > spirit of the > > > existing "clkreq-support" PCI parameter? > > > > > > Regards, > > > Jim Quinlan > > > Broadcom STB/CMi > > > > > > > > > > > - Mani > > > > > > > > > + type: boolean > > > > > + > > > > > brcm,scb-sizes: > > > > > description: u64 giving the 64bit PCIe memory > > > > > viewport size of a memory controller. There may be up to > > > > > -- > > > > > 2.17.1 > > > > > > > > > > > > > -- > > > > மணிவண்ணன் சதாசிவம் > > > > > Date: Tue, 22 Aug 2023 21:01:47 +0000 (UTC) > > > From: Florian Fainelli > > > To: james.quinlan@broadcom.com > > > Subject: Join me now in my Personal Room > > > > > > Hello, > > > > > > Join me now in my Personal Room. > > > > > > JOIN WEBEX MEETING > > > https://broadcom.webex.com/join/florian.fainelli | 490 282 179 > > > > > > > > > JOIN FROM A VIDEO CONFERENCING SYSTEM OR APPLICATION > > > Dial sip:florian.fainelli@broadcom.webex.com > > > You can also dial 173.243.2.68 and enter your meeting number. > > > > > > > > > > > > Can't join the meeting? > > > https://help.webex.com/docs/DOC-5412 > > > > > > PHONE DIALING GUIDELINES: > > > - Use Call Me when you are using office phone or Jabber. > > > - Use Call Using Computer when you are at home or traveling. > > > > > > In Office Calls: > > > - From Broadcom Office: 1-MEETING (1-6338464) > > > > > > Offsite Numbers Toll (Local) Calls: > > > - Canada, Richmond: +1-778-308-4007 > > > - China: +86-400-819-1044 > > > - Germany, Munich: +49-892-312-9611 > > > - Germany, Regensburg: +49-(9)419-923-5940 > > > - India: 00-080-0050-1631 > > > - Israel: +97-239-786-477 > > > - Japan, Tokyo: +81-366-344-937 > > > - Malaysia: +603-2053-5189 > > > - Singapore: +65-6349-2439 > > > - South Korea, Seoul: +82-70-4732-0218 > > > - Taiwan, Taipei: +886-277-047-765 > > > - US, Denver: +1-720-726-9995 > > > - US, Los Angeles: +1-310-616-5312 > > > - US, Philadelphia: +1-215-305-7603 > > > - UK, London: +44-207-660-8897 > > > - UK, Manchester: +44-161-619-8089 > > > > > > IMPORTANT NOTICE: Please note that this Webex service allows audio and other information sent during the session to be recorded, which may be discoverable in a legal matter. By joining this session, you automatically consent to such recordings. If you do not consent to being recorded, discuss your concerns with the host or do not join the session. > > > > > > > > > > > > -- > > மணிவண்ணன் சதாசிவம் -- மணிவண்ணன் சதாசிவம் 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 63A18C71133 for ; Fri, 25 Aug 2023 06:46:03 +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=Dnq8RzdUlUCtkadDW9qCG5fD3PuH7i4FCD5HTT13sQU=; b=Dd5wYFaX7aCQ5l RLffdwpHnJ29xtDEOgg9u3GRRJlb3seU55eokQmLjrsosMX+X6fftNhBCWWCdkMf88+W9Tnpx0/Ds hUI5wIArq5kMtHadJW6LwJ76ylA04GIay4FxTXe+f2F2YRboej5QXG4ePy/vQmW+0Xo2H/ykpi1hb WAK+c5OsPnwYIYOaS9M2Fl0MDuh5DWXTqwIqZxrMeuE68d0LVrhoJzyYw8UQf4q2RTXMh6GGPUcxt NleXp30zfneB160+R7cjOwE+TcjTCFsn/BbzPL7evr5264sssIroqhlENCIuCQzueQGKbvvlAvqPY hzAzW8kua0IWzSqSgFXA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qZQZM-004UJD-2D; Fri, 25 Aug 2023 06:45:20 +0000 Received: from dfw.source.kernel.org ([2604:1380:4641:c500::1]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qZQZJ-004UIK-0U; Fri, 25 Aug 2023 06:45:19 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9ECBC61AEA; Fri, 25 Aug 2023 06:45:15 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80247C433C7; Fri, 25 Aug 2023 06:45:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1692945915; bh=gla2cfOgvXf1ls+zCWYltqg6BRHQzwcByC74kYvqg6g=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=UesX+i6Czb8Fm6+flVdmaN1fmd5vBVG33llc5K4BHquKlH3823jHE6AUwGJVKFuBw pl209ectVdAIOS4RlRXO5/t4DzdBhz0Krc6MbHhARyTQz1C08//D2/K7doZqSaLsde /M9zU5NFeg5XrN8X6zcWozLMyjk2VSxjLu9y2A1Sw4CltuQ7Ejma7yBSVCPYaa5FJZ RIxFyt87qF91TNu9gg69WWNJNbnD7q2wFOdaEQMqv49Vy8aixpLF11G9SyA76QOduA S+j0kV8jOWcmDlkj6cGz0L7qu+nJBmvxfF+2EEhZjR0BJAsRtJVclTVsHJAf5bNBzW SnTzWYWFPB7sg== Date: Fri, 25 Aug 2023 12:15:05 +0530 From: Manivannan Sadhasivam To: Jim Quinlan Cc: Manivannan Sadhasivam , Jim Quinlan , linux-pci@vger.kernel.org, Nicolas Saenz Julienne , Bjorn Helgaas , Lorenzo Pieralisi , Cyril Brulebois , Phil Elwell , bcm-kernel-feedback-list@broadcom.com, Florian Fainelli , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Rob Herring , Krzysztof Kozlowski , Conor Dooley , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE" , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , open list Subject: Re: [PATCH v5 1/5] dt-bindings: PCI: brcmstb: Add brcm,enable-l1ss property Message-ID: <20230825064505.GA6005@thinkpad> References: <20230508220126.16241-1-jim2101024@gmail.com> <20230508220126.16241-2-jim2101024@gmail.com> <20230823074330.GF3737@thinkpad> <20230823181650.GL3737@thinkpad> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230824_234517_302030_6EDF6B7A X-CRM114-Status: GOOD ( 71.14 ) 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 T24gVGh1LCBBdWcgMjQsIDIwMjMgYXQgMTA6NTU6MDJBTSAtMDQwMCwgSmltIFF1aW5sYW4gd3Jv dGU6Cj4gT24gV2VkLCBBdWcgMjMsIDIwMjMgYXQgMjoxN+KAr1BNIE1hbml2YW5uYW4gU2FkaGFz aXZhbSA8bWFuaUBrZXJuZWwub3JnPiB3cm90ZToKPiA+Cj4gPiBPbiBXZWQsIEF1ZyAyMywgMjAy MyBhdCAwOTowOToyNUFNIC0wNDAwLCBKaW0gUXVpbmxhbiB3cm90ZToKPiA+ID4gT24gV2VkLCBB dWcgMjMsIDIwMjMgYXQgMzo0M+KAr0FNIE1hbml2YW5uYW4gU2FkaGFzaXZhbSA8bWFuaUBrZXJu ZWwub3JnPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+IE9uIE1vbiwgTWF5IDA4LCAyMDIzIGF0IDA2 OjAxOjIxUE0gLTA0MDAsIEppbSBRdWlubGFuIHdyb3RlOgo+ID4gPiA+ID4gVGhpcyBjb21taXQg YWRkcyB0aGUgYm9vbGVhbiAiYnJjbSxlbmFibGUtbDFzcyIgcHJvcGVydHk6Cj4gPiA+ID4gPgo+ ID4gPiA+ID4gICBUaGUgQnJvYWRjb20gU1RCL0NNIFBDSWUgSFcgLS0gYSBjb3JlIHRoYXQgaXMg YWxzbyB1c2VkIGJ5IFJQaSBTT0NzIC0tCj4gPiA+ID4gPiAgIHJlcXVpcmVzIHRoZSBkcml2ZXIg cHJvYmUoKSB0byBkZWxpYmVyYXRlbHkgcGxhY2UgdGhlIEhXIG9uZSBvZiB0aHJlZQo+ID4gPiA+ ID4gICBDTEtSRVEjIG1vZGVzOgo+ID4gPiA+ID4KPiA+ID4gPiA+ICAgKGEpIENMS1JFUSMgZHJp dmVuIGJ5IHRoZSBSQyB1bmNvbmRpdGlvbmFsbHkKPiA+ID4gPiA+ICAgKGIpIENMS1JFUSMgZHJp dmVuIGJ5IHRoZSBFUCBmb3IgQVNQTSBMMHMsIEwxCj4gPiA+ID4gPiAgIChjKSBCaWRpcmVjdGlv bmFsIENMS1JFUSMsIGFzIHVzZWQgZm9yIEwxIFN1YnN0YXRlcyAoTDFTUykuCj4gPiA+ID4gPgo+ ID4gPiA+ID4gICBUaGUgSFcrZHJpdmVyIGNhbiB0ZWxsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4g ZG93bnN0cmVhbSBkZXZpY2VzIHRoYXQKPiA+ID4gPiA+ICAgbmVlZCAoYSkgYW5kIChiKSwgYnV0 IGRvZXMgbm90IGtub3cgd2hlbiB0byBjb25maWd1cmUgKGMpLiAgQWxsIGRldmljZXMKPiA+ID4g PiA+ICAgc2hvdWxkIHdvcmsgZmluZSB3aGVuIHRoZSBkcml2ZXIgY2hvb3NlcyAoYSkgb3IgKGIp LCBidXQgKGMpIG1heSBiZQo+ID4gPiA+ID4gICBkZXNpcmVkIHRvIHJlYWxpemUgdGhlIGV4dHJh IHBvd2VyIHNhdmluZ3MgdGhhdCBMMVNTIG9mZmVycy4gIFNvIHdlCj4gPiA+ID4gPiAgIGludHJv ZHVjZSB0aGUgYm9vbGVhbiAiYnJjbSxlbmFibGUtbDFzcyIgcHJvcGVydHkgdG8gaW5mb3JtIHRo ZSBkcml2ZXIKPiA+ID4gPiA+ICAgdGhhdCAoYykgaXMgZGVzaXJlZC4gIFNldHRpbmcgdGhpcyBw cm9wZXJ0eSBvbmx5IG1ha2VzIHNlbnNlIHdoZW4gdGhlCj4gPiA+ID4gPiAgIGRvd25zdHJlYW0g ZGV2aWNlIGlzIEwxU1MtY2FwYWJsZSBhbmQgdGhlIE9TIGlzIGNvbmZpZ3VyZWQgdG8gYWN0aXZh dGUKPiA+ID4gPiA+ICAgdGhpcyBtb2RlIChlLmcuIHBvbGljeT09cG93ZXJzdXBlcnNhdmUpLgo+ ID4gPiA+ID4KPiA+ID4gPiA+ICAgVGhpcyBwcm9wZXJ0eSBpcyBhbHJlYWR5IHByZXNlbnQgaW4g dGhlIFJhc3BpYW4gdmVyc2lvbiBvZiBMaW51eCwgYnV0IHRoZQo+ID4gPiA+ID4gICB1cHN0cmVh bSBkcml2ZXIgaW1wbGVtZW50YXRpb24gdGhhdCBmb2xsb3dzIGFkZHMgbW9yZSBkZXRhaWxzIGFu ZAo+ID4gPiA+ID4gICBkaXNjZXJucyBiZXR3ZWVuIChhKSBhbmQgKGIpLgo+ID4gPiA+ID4KPiA+ ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEppbSBRdWlubGFuIDxqaW0yMTAxMDI0QGdtYWlsLmNvbT4K PiA+ID4gPiA+IFJldmlld2VkLWJ5OiBSb2IgSGVycmluZyA8cm9iaEBrZXJuZWwub3JnPgo+ID4g PiA+ID4gLS0tCj4gPiA+ID4gPiAgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Bj aS9icmNtLHN0Yi1wY2llLnlhbWwgfCA5ICsrKysrKysrKwo+ID4gPiA+ID4gIDEgZmlsZSBjaGFu Z2VkLCA5IGluc2VydGlvbnMoKykKPiA+ID4gPiA+Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BjaS9icmNtLHN0Yi1wY2llLnlhbWwgYi9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL2JyY20sc3RiLXBjaWUueWFtbAo+ ID4gPiA+ID4gaW5kZXggN2UxNWFhZTdkNjllLi44YjYxYzIxNzk2MDggMTAwNjQ0Cj4gPiA+ID4g PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGNpL2JyY20sc3RiLXBj aWUueWFtbAo+ID4gPiA+ID4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L3BjaS9icmNtLHN0Yi1wY2llLnlhbWwKPiA+ID4gPiA+IEBAIC02NCw2ICs2NCwxNSBAQCBwcm9w ZXJ0aWVzOgo+ID4gPiA+ID4KPiA+ID4gPiA+ICAgIGFzcG0tbm8tbDBzOiB0cnVlCj4gPiA+ID4g Pgo+ID4gPiA+ID4gKyAgYnJjbSxlbmFibGUtbDFzczoKPiA+ID4gPiA+ICsgICAgZGVzY3JpcHRp b246IEluZGljYXRlcyB0aGF0IFBDSWUgTDFTUyBwb3dlciBzYXZpbmdzCj4gPiA+ID4gPiArICAg ICAgYXJlIGRlc2lyZWQsIHRoZSBkb3duc3RyZWFtIGRldmljZSBpcyBMMVNTLWNhcGFibGUsIGFu ZCB0aGUKPiA+ID4gPiA+ICsgICAgICBPUyBoYXMgYmVlbiBjb25maWd1cmVkIHRvIGVuYWJsZSB0 aGlzIG1vZGUuICBGb3IgYm9hcmRzCj4gPiA+ID4gPiArICAgICAgdXNpbmcgYSBtaW5pLWNhcmQg Y29ubmVjdG9yLCB0aGlzIG1vZGUgbWF5IG5vdCBtZWV0IHRoZQo+ID4gPiA+ID4gKyAgICAgIFRD UkxvbiBtYXhpbXVtIHRpbWUgb2YgNDAwbnMsIGFzIHNwZWNpZmllZCBpbiAzLjIuNS4yLjIKPiA+ ID4gPiA+ICsgICAgICBvZiB0aGUgUENJIEV4cHJlc3MgTWluaSBDRU0gMi4wIHNwZWNpZmljYXRp b24uCj4gPiA+ID4KPiA+ID4gPiBBcyBMb3JlbnpvIHNhaWQsIHRoaXMgcHJvcGVydHkgZG9lc24n dCBiZWxvbmcgaW4gRFQuIERUIGlzIHN1cHBvc2VkIHRvIHNwZWNpZnkKPiA+ID4gPiB0aGUgaGFy ZHdhcmUgY2FwYWJpbGl0eSBhbmQgbm90IHN5c3RlbS9PUyBiZWhhdmlvci4KPiA+ID4KPiA+ID4g VGhlICJicmNtLGVuYWJsZS1sMXNzIiBkb2VzIE5PVCBjb25maWd1cmUgdGhlIE9TIGJlaGF2aW9y Lgo+ID4gPiBJdCBzZXRzIG9yIG5vdCBhIG1vZGUgYml0IHRvIGVuYWJsZSBsMVNTIEhXLCB3aGV0 aGVyIG9yIG5vdCB0aGUgT1MgaXMKPiA+ID4gY29uZmlndXJlZCBmb3IgTDFTUy4KPiA+ID4gSXQg Y29tcGVuc2F0ZXMgZm9yIGEgcHJvYmxlbSBpbiB0aGUgUENJZSBjb3JlOiB0aGUgSFcgaXMgbm90 IGNhcGFibGUKPiA+ID4gb2YgZHluYW1pY2FsbHkKPiA+ID4gc3dpdGNoaW5nIGJldHdlZW4gQVNQ TSBtb2RlcyBwb3dlcnNhdmUgYW5kIHN1cGVycG93ZXJzYXZlLiAgSSBhbSBhY3RpdmVseQo+ID4g PiBhZHZvY2F0aW5nIGZvciBvdXIgSFcgdG8gY2hhbmdlIGJ1dCB0aGF0IHdpbGwgdGFrZSB5ZWFy cy4KPiA+ID4KPiA+Cj4gPiBPa2F5LCB0aGVuIEkgd291bGQgc2F5IHRoYXQgdGhlIHByb3BlcnR5 IG5hbWUgYW5kIGNvbW1pdCBtZXNzYWdlIHdlcmUgYSBiaXQKPiA+IG1pc2xlYWRpbmcuCj4gPgo+ ID4gSSBoYWQgYnJpZWZseSBnb25lIHRocm91Z2ggdGhlIGRyaXZlciBwYXRjaCBub3cuIEFzIHBl ciBteSB1bmRlcnN0YW5kaW5nLCB5b3UKPiA+IGhhdmUgMiBtb2RlcyBpbiBodzoKPiA+Cj4gPiAx LiBDbG9jayBQTSAtIFJlZmNsayB3aWxsIGJlIHR1cm5lZCBvZmYgYnkgdGhlIGhvc3QgaWYgQ0xL UkVRIyBpcyBkZWFzc2VydGVkIGJ5Cj4gPiB0aGUgZGV2aWNlIChkcml2aW5nIGhpZ2gpIHdoZW4g dGhlIGxpbmsgaXMgaW4gTDEuCj4gPgo+ID4gMi4gTDFTUyAtIENMS1JFUSMgd2lsbCBiZSB1c2Vk IHRvIGRlY2lkZSBMMVNTIGVudHJ5IGFuZCBleGl0IGJ5IHRoZSBob3N0Lgo+IAo+IE5vLCB0aGVy ZSBhcmUgdGhyZWUsIGFzIGVudW1lcmF0ZWQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlIG9mCj4gIlBD STogYnJjbXN0YjogQ29uZmlndXJlIEhXIENMS1JFUSMgbW9kZSBhcHByb3ByaWF0ZSBmb3IgZG93 bnN0cmVhbSBkZXZpY2UiCj4gCgpZZWFoLCBhbm90aGVyIG9uZSBpcyByZWZjbGsgYWx3YXlzIG9u LgoKPiA+Cj4gPiBUaWxsIG5vdyB0aGUgZHJpdmVyIG9ubHkgc3VwcG9ydGVkIENsb2NrIFBNIHRo cm91Z2ggbW9kZSAoMSkgYnV0IGZvciBzdXBwb3J0aW5nCj4gPiBMMVNTIHlvdSBuZWVkIHRvIGVu YWJsZSBtb2RlICgyKS4gQW5kIHlvdSBhcmUgdXNpbmcgdGhpcyBwcm9wZXJ0eSB0byBzZWxlY3Qg bW9kZQo+ID4gKDIpIHdoZW4gdGhlIEwxU1Mgc3VwcG9ydGVkIGRldmljZXMgYXJlIGNvbm5lY3Rl ZCB0byB0aGUgc2xvdC4gQWxzbywgYnkKPiA+IHNlbGVjdGluZyB0aGlzIG1vZGUsIHlvdSBhcmUg bG9vc2luZyB0aGUgYmVuZWZpdCBvZiBtb2RlICgxKSBhcyBib3RoIGFyZSBub3QKPiA+IGNvbXBh dGlibGUuCj4gPgo+ID4gTXkgc3VnZ2VzdGlvbiB3b3VsZCBiZSB0byBqdXN0IGRyb3AgbW9kZSAo MSkgYW5kIHVzZSBtb2RlICgyKSBpbiB0aGUgZHJpdmVyIGFzCj4gPiBtb3N0IG9mIHRoZSByZWNl bnQgZGV2aWNlcyBzaG91bGQgc3VwcG9ydCBMMVNTIChvZmMgdGhlcmUgYXJlIGV4ZW1wdGlvbnMp Lgo+IFRoZSBkaXNhZHZhbnRhZ2Ugb2YgdGhpcywgYXMgc3RhdGVkIGJ5IHRoZSBQQ0llIGNvcmUg SFcgZGVzaWduZXIsIHdhcwo+IHRoYXQgImRvaW5nIHNvIG1lYW5zCj4gd2UgY2Fubm90IGVuYWJs ZSB0aGUgQ29jayBQb3dlciBNYW5hZ2VtZW50IGNhcGFiaWxpdHkgc2luY2UgaXQgbWF5IHJ1biBh Zm91bCBvZgo+IHRoZSBUY2xyb24gcmVxdWlyZW1lbnQuIgo+IAoKT2suCgo+IEkgd2lsbCBhdHRl bXB0IHRvIHByZXNzIGhpbSBvbiBleGFjdGx5IHdoYXQgY29uZmlndXJhdGlvbnMgYW5kIGZvcm0K PiBmYWN0b3JzIHdvdWxkIGJlCj4gdnVsbmVyYWJsZSB0byB0aGlzIC0tIGhlIHdhcyBzbyBjb252 aW5jZWQgdGhhdCBpdCB3YXMgYSBkYW5nZXIgdGhhdCBoZQo+IGlzIGFnYWluc3QKPiBtYWtpbmcg TDFTUyBtb2RlIHRoZSBkZWZhdWx0Lgo+IAoKSG1tLiBBZnRlciBsb29raW5nIGF0IHRoaXMgcHJv YmxlbSBpbiBkZXRhaWwsIGl0IGxvb2tzIHRvIG1lIHRoYXQgeW91IGNhbiBzdGlsbAp1c2UgRFQg YnV0IG5vdCB3aXRoIHRoZSBwcm9wZXJ0eSB5b3UgcHJvcG9zZWQuIFNpbmNlIHRoZXNlIGFyZSBo YXJkd2FyZSBtb2RlcywKeW91IGNhbiBoYXZlIGEgc2luZ2xlIERUIHByb3BlcnR5IHRoYXQgc3Bl Y2lmaWVzIHRoZSBtb2RlIHRoYXQgdGhlIGRyaXZlciBjYW4KdXNlIHRvIGNvbmZpZ3VyZSB0aGUg aHcuIEl0IGlzIHNpbWlsYXIgdG8gInBoeS1tb2RlIiBwcm9wZXJ0eSB3ZSBoYXZlIGZvciB0aGUK bmV0d29yayBjb250cm9sbGVycy4KClNvIHlvdSBzaG91bGQgaGF2ZSB0aGUgcHJvcGVydHkgZGVm aW5lZCBhcyBiZWxvdyBpbiBiaW5kaW5nOgoKYnJjbSxjbGtyZXEtbW9kZToKICAkcmVmOiAvc2No ZW1hcy90eXBlcy55YW1sIy9kZWZpbml0aW9ucy91aW50MzIKICBlbnVtOiBbIDAsIDEsIDIgXQoK VGhlbiBjcmVhdGUgZGVmaW5pdGlvbiBmb3IgZWFjaCBtb2RlIGluICJpbmNsdWRlL2R0LWJpbmRp bmdzL3BjaS9icmNtLHN0Yi5oIi4KCiNkZWZpbmUgQlJDTV9TVEJfQ0xLUkVRX0NMT0NLX1BNCTAK I2RlZmluZSBCUkNNX1NUQl9DTEtSRVFfTDFTUwkJMQojZGVmaW5lIEJSQ01fU1RCX0NMS1JFUV9P TgkJMgoKSWYgdGhlIHByb3BlcnR5IGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBkcml2ZXIgc2hvdWxk IHVzZSAiQ2xvY2sgUE0iIGFzIHRoZQpkZWZhdWx0IG1vZGUgYXMgaXQgd2FzIGRvaW5nIGVhcmxp ZXIuCgpBbHNvLCBJIHRoaW5rIHlvdSBjYW4gZ2V0IHJpZCBvZiBvdGhlciBjaGVja3MgaW4gdGhl IGRyaXZlciAobGlrZSBQQ0lFQVNQTQpLY29uZmlnLCBjbGtyZXFfc2VlbiBldGMuLi4pIGFuZCBz b2xlbHkgcmVseSBvbiB0aGlzIHByb3BlcnR5IHRvIHNldCB0aGUgbW9kZS4KCldoYXQgZG8geW91 IHRoaW5rPwoKLSBNYW5pCgo+ID4KPiA+IEJ1dCBtb3ZpbmcgdGhhdCBkZWNpc2lvbiB0byBEVCBz dGlsbCBkb2Vzbid0IHNlZW0gcmlnaHQgdG8gbWUgYXMgdGhlIGhhcmR3YXJlCj4gPiBzdXBwb3J0 cyBib3RoIG1vZGVzIGFuZCB5b3UgYXJlIChhYil1c2luZyBEVCB0byBjaG9vc2Ugb25lIG9yIHRo ZSBvdGhlci4KPiAKPiBNYXkgYmUgdHJ1ZSwgYnV0IHRoZXJlIGRvZXMgbm90IGFwcGVhciB0byBi ZSBhIExpbnV4IHVwc3RyZWFtLWFjY2VwdGFibGUKPiB3YXkgb2YgZG9pbmcgdGhpcyBvbiB0aGUg Y29tbWFuZCBsaW5lIGVpdGhlcjsgcGxlYXNlIHNlZSBteSByZWNlbnQgcG9zdAo+IG9uIHdoeSB0 aGlzIGlzIHNvLgo+IAo+IFRoZXJlIHdpbGwgYmUgY2FzZXMgd2hlcmUgd2Ugd2FudCB0byBvdmVy cmlkZSB0aGUgZGVmYXVsdCBzZXR0aW5nLCBlaXRoZXIgYnkKPiBjb21tYW5kIGxpbmUgb3IgRFQs IGJ1dCB5b3UgZm9sa3MgaGF2ZSB0byBnaXZlIG1lIGEgdmlhYmxlIHBhdGggb24KPiBob3cgdG8g ZG8gdGhpcyB3aXRoIGl0IGFjdHVhbGx5IGJlaW5nIGFjY2VwdGVkLgo+IAo+IFJlZ2FyZHMsCj4g SmltIFF1aW5sYW4KPiBCcm9hZGNvbSBTVEIvQ00KPiAKPiA+Cj4gPiAtIE1hbmkKPiA+Cj4gPiA+ IElmIHRoaXMgZmxhZyBzcGVjaWZpZXMKPiA+ID4gPiB3aGV0aGVyIHRoZSBQQ0llIGNvbnRyb2xs ZXIgc3VwcG9ydHMgTDFTUyBvciBub3QsIHRoZW4gaXQgaXMgZmluZSBidXQgYXBwYXJhbnRseQo+ ID4gPiA+IHRoaXMgc3BlY2lmaWVzIHRoYXQgYWxsIGRvd25zdHJlYW0gZGV2aWNlcyBhcmUgTDFT UyBjYXBhYmxlIHdoaWNoIHlvdSBjYW5ub3QKPiA+ID4gPiBndWFyYW50ZWUgdW5sZXNzIHlvdSBw b2tlIGludG8gdGhlaXIgTE5LQ0FQIGR1cmluZyBydW50aW1lLgo+ID4gPiBOb3QgdHJ1ZSBhdCBh bGwuICBUaGlzIHNldHRpbmcgYWZmZWN0cyBvbmx5IFJDIGFuZCB3aGF0ZXZlciBkZXZpY2UgaXMK PiA+ID4gY29ubmVjdGVkIHRvIGl0cyBzaW5nbGUgZG93bnN0cmVhbQo+ID4gPiBwb3J0Lgo+ID4g Pgo+ID4gPiA+Cj4gPiA+ID4gWW91IHNob3VsZCBoYW5kbGUgdGhpcyBpbiB0aGUgZHJpdmVyIGl0 c2VsZi4KPiA+ID4KPiA+ID4gVGhlIGRyaXZlciBoYXMgbm8gd2F5IG9mIGtub3dpbmcgaWYgdGhl IFBDSSBzdWJzeXN0ZW0gaXMgZ29pbmcgZnJvbSBwb3dlcl9zYXZlCj4gPiA+IHRvIHBvd2VyX3N1 cGVyc2F2ZSBvciB2aWNlLXZlcnNhIC0tIHRoZXJlIGlzIG5vIG5vdGlmaWNhdGlvbiBjaGFpbiBm b3IgdGhpcy4gIFNvCj4gPiA+IHdoYXQgeW91IHNheSBpcyBub3QgY3VycmVudGx5IHBvc3NpYmxl IGZyb20gdGhlIGRyaXZlcidzIHBlcnNwZWN0aXZlLgo+ID4gPgo+ID4gPiBQZXJoYXBzIHlvdSB3 b3VsZCBiZSBoYXBweSBpZiB3ZSBjaGFuZ2VkIGl0IHRvICJsMXNzLXN1cHBvcnQiIGluIHRoZQo+ ID4gPiBzcGlyaXQgb2YgdGhlCj4gPiA+IGV4aXN0aW5nICJjbGtyZXEtc3VwcG9ydCIgUENJIHBh cmFtZXRlcj8KPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4gSmltIFF1aW5sYW4KPiA+ID4gQnJv YWRjb20gU1RCL0NNaQo+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gLSBNYW5pCj4gPiA+ID4KPiA+ID4g PiA+ICsgICAgdHlwZTogYm9vbGVhbgo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gICAgYnJjbSxzY2It c2l6ZXM6Cj4gPiA+ID4gPiAgICAgIGRlc2NyaXB0aW9uOiB1NjQgZ2l2aW5nIHRoZSA2NGJpdCBQ Q0llIG1lbW9yeQo+ID4gPiA+ID4gICAgICAgIHZpZXdwb3J0IHNpemUgb2YgYSBtZW1vcnkgY29u dHJvbGxlci4gIFRoZXJlIG1heSBiZSB1cCB0bwo+ID4gPiA+ID4gLS0KPiA+ID4gPiA+IDIuMTcu MQo+ID4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IC0tCj4gPiA+ID4g4K6u4K6j4K6/4K614K6j4K+N 4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCuruCvjQo+ID4KPiA+ID4gRGF0ZTogVHVlLCAy MiBBdWcgMjAyMyAyMTowMTo0NyArMDAwMCAoVVRDKQo+ID4gPiBGcm9tOiBGbG9yaWFuIEZhaW5l bGxpIDxtZXNzZW5nZXJAd2ViZXguY29tPgo+ID4gPiBUbzogamFtZXMucXVpbmxhbkBicm9hZGNv bS5jb20KPiA+ID4gU3ViamVjdDogSm9pbiBtZSBub3cgaW4gbXkgUGVyc29uYWwgUm9vbQo+ID4g Pgo+ID4gPiBIZWxsbywKPiA+ID4KPiA+ID4gSm9pbiBtZSBub3cgaW4gbXkgUGVyc29uYWwgUm9v bS4KPiA+ID4KPiA+ID4gSk9JTiBXRUJFWCBNRUVUSU5HCj4gPiA+IGh0dHBzOi8vYnJvYWRjb20u d2ViZXguY29tL2pvaW4vZmxvcmlhbi5mYWluZWxsaSAgfCAgNDkwIDI4MiAxNzkKPiA+ID4KPiA+ ID4KPiA+ID4gSk9JTiBGUk9NIEEgVklERU8gQ09ORkVSRU5DSU5HIFNZU1RFTSBPUiBBUFBMSUNB VElPTgo+ID4gPiBEaWFsIHNpcDpmbG9yaWFuLmZhaW5lbGxpQGJyb2FkY29tLndlYmV4LmNvbQo+ ID4gPiBZb3UgY2FuIGFsc28gZGlhbCAxNzMuMjQzLjIuNjggYW5kIGVudGVyIHlvdXIgbWVldGlu ZyBudW1iZXIuCj4gPiA+Cj4gPiA+Cj4gPiA+Cj4gPiA+IENhbid0IGpvaW4gdGhlIG1lZXRpbmc/ Cj4gPiA+IGh0dHBzOi8vaGVscC53ZWJleC5jb20vZG9jcy9ET0MtNTQxMgo+ID4gPgo+ID4gPiBQ SE9ORSBESUFMSU5HIEdVSURFTElORVM6Cj4gPiA+ICAgICAgICAgLSBVc2UgQ2FsbCBNZSB3aGVu IHlvdSBhcmUgdXNpbmcgb2ZmaWNlIHBob25lIG9yIEphYmJlci4KPiA+ID4gICAgICAgICAtIFVz ZSBDYWxsIFVzaW5nIENvbXB1dGVyIHdoZW4geW91IGFyZSBhdCBob21lIG9yIHRyYXZlbGluZy4K PiA+ID4KPiA+ID4gSW4gT2ZmaWNlIENhbGxzOgo+ID4gPiAgICAgICAtIEZyb20gQnJvYWRjb20g T2ZmaWNlOiAxLU1FRVRJTkcgKDEtNjMzODQ2NCkKPiA+ID4KPiA+ID4gT2Zmc2l0ZSBOdW1iZXJz IFRvbGwgKExvY2FsKSBDYWxsczoKPiA+ID4gICAgICAgLSBDYW5hZGEsIFJpY2htb25kOiArMS03 NzgtMzA4LTQwMDcKPiA+ID4gICAgICAgLSBDaGluYTogKzg2LTQwMC04MTktMTA0NAo+ID4gPiAg ICAgICAtIEdlcm1hbnksIE11bmljaDogKzQ5LTg5Mi0zMTItOTYxMQo+ID4gPiAgICAgICAgIC0g R2VybWFueSwgUmVnZW5zYnVyZzogKzQ5LSg5KTQxOS05MjMtNTk0MAo+ID4gPiAgICAgICAgIC0g SW5kaWE6IDAwLTA4MC0wMDUwLTE2MzEKPiA+ID4gICAgICAgLSBJc3JhZWw6ICs5Ny0yMzktNzg2 LTQ3Nwo+ID4gPiAgICAgICAgIC0gSmFwYW4sIFRva3lvOiArODEtMzY2LTM0NC05MzcKPiA+ID4g ICAgICAgICAtIE1hbGF5c2lhOiArNjAzLTIwNTMtNTE4OQo+ID4gPiAgICAgICAtIFNpbmdhcG9y ZTogKzY1LTYzNDktMjQzOQo+ID4gPiAgICAgICAtIFNvdXRoIEtvcmVhLCBTZW91bDogKzgyLTcw LTQ3MzItMDIxOAo+ID4gPiAgICAgICAtIFRhaXdhbiwgVGFpcGVpOiArODg2LTI3Ny0wNDctNzY1 Cj4gPiA+ICAgICAgIC0gVVMsIERlbnZlcjogKzEtNzIwLTcyNi05OTk1Cj4gPiA+ICAgICAgICAg LSBVUywgTG9zIEFuZ2VsZXM6ICsxLTMxMC02MTYtNTMxMgo+ID4gPiAgICAgICAgIC0gVVMsIFBo aWxhZGVscGhpYTogKzEtMjE1LTMwNS03NjAzCj4gPiA+ICAgICAgIC0gVUssIExvbmRvbjogKzQ0 LTIwNy02NjAtODg5Nwo+ID4gPiAgICAgICAgIC0gVUssIE1hbmNoZXN0ZXI6ICs0NC0xNjEtNjE5 LTgwODkKPiA+ID4KPiA+ID4gSU1QT1JUQU5UIE5PVElDRTogUGxlYXNlIG5vdGUgdGhhdCB0aGlz IFdlYmV4IHNlcnZpY2UgYWxsb3dzIGF1ZGlvIGFuZCBvdGhlciBpbmZvcm1hdGlvbiBzZW50IGR1 cmluZyB0aGUgc2Vzc2lvbiB0byBiZSByZWNvcmRlZCwgd2hpY2ggbWF5IGJlIGRpc2NvdmVyYWJs ZSBpbiBhIGxlZ2FsIG1hdHRlci4gQnkgam9pbmluZyB0aGlzIHNlc3Npb24sIHlvdSBhdXRvbWF0 aWNhbGx5IGNvbnNlbnQgdG8gc3VjaCByZWNvcmRpbmdzLiBJZiB5b3UgZG8gbm90IGNvbnNlbnQg dG8gYmVpbmcgcmVjb3JkZWQsIGRpc2N1c3MgeW91ciBjb25jZXJucyB3aXRoIHRoZSBob3N0IG9y IGRvIG5vdCBqb2luIHRoZSBzZXNzaW9uLgo+ID4KPiA+Cj4gPgo+ID4KPiA+Cj4gPiAtLQo+ID4g 4K6u4K6j4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCuruCvjQoKCgot LSAK4K6u4K6j4K6/4K614K6j4K+N4K6j4K6p4K+NIOCumuCupOCuvuCumuCuv+CuteCuruCvjQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=