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 12D42C4828E for ; Fri, 2 Feb 2024 11:40:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To: Content-Transfer-Encoding:Content-Type: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=UslJPsc9OxqAKRDemcvqM9t/waIR2GXs7pcOUZ0/ORQ=; b=V3aClR3murWQv5gHDm7rQuQVrH iLFAejXPq3GFQ/4zY6jrwMbCeyshWN8Dcei6dWO6TFe+3J52PBuA1lIfhcpjYBTdekUtnS4RTXJVf EE5UKFCGixJLQc45ngpp2E27FyS0f7xyNRyfGKkekfmBHPW4uwRPewisAzZioxkB4Y6S7Q4puNs/v c9WogsmnOfYYZV4Nx6AXb9dRmdcUISyrv5V99LAGpsF9LF04t2gBgurBIZN8VWcfLjE1tBqjrxw7H s9Nym45d38ao51pC68McOwZClkIFGVrGwBeptb5Sxeg2ZuaktQzakOyCkCTyFH5285vbOXJDVD4/Y cL5a80Cw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rVruZ-0000000BKbA-0v4f; Fri, 02 Feb 2024 11:40:47 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rVruV-0000000BKZE-1e83; Fri, 02 Feb 2024 11:40:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type: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-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=UslJPsc9OxqAKRDemcvqM9t/waIR2GXs7pcOUZ0/ORQ=; b=jGp8goMJO/MxQ0XCJBfcTUrVlZ xZigOzTQl82Q8t4B92czFeAdsOazhcWc0byV/RMFxvtxNPdRsd3Pd/98g/123aQIqSzg4BJd0zKA7 6b9U2pyFIZBoaXbM0oZtq2p/jhjv81jjqAZsffVCIDl4f+Sy9SaVHMznBIgycpw28JXHyheJskcv2 qTf7ClI1YPceYNXMX9UidY/M0X7H0n314C0JuZeE3P17Q47bP5/hXk2TB+Gw/GeVKdjTU3PhlOX1x E8Ttl6pFzqH+aFIBCh8R+VXlHO6FuMM7EuhKoVzYtIGVkrGrjIm3aPaWBTEwf2ZDGCO6265lnP52l 6Qlaix/Q==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:46710) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rVruE-0005tL-1l; Fri, 02 Feb 2024 11:40:26 +0000 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1rVru6-0008Hm-Un; Fri, 02 Feb 2024 11:40:18 +0000 Date: Fri, 2 Feb 2024 11:40:18 +0000 From: "Russell King (Oracle)" To: arinc.unal@arinc9.com Cc: Daniel Golle , DENG Qingfang , Sean Wang , Andrew Lunn , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , mithat.guner@xeront.com, erkin.bozoglu@xeront.com, Bartel Eerdekens , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: Re: [PATCH net-next v3 1/7] net: dsa: mt7530: empty default case on mt7530_setup_port5() Message-ID: References: <20240202-for-netnext-mt7530-improvements-2-v3-0-63d5adae99ca@arinc9.com> <20240202-for-netnext-mt7530-improvements-2-v3-1-63d5adae99ca@arinc9.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240202-for-netnext-mt7530-improvements-2-v3-1-63d5adae99ca@arinc9.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240202_034043_452925_BBF74918 X-CRM114-Status: GOOD ( 19.60 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On Fri, Feb 02, 2024 at 12:19:07PM +0300, Arınç ÜNAL via B4 Relay wrote: > From: Arınç ÜNAL > > There're two code paths for setting up port 5: > > mt7530_setup() > -> mt7530_setup_port5() > > mt753x_phylink_mac_config() > -> mt753x_mac_config() > -> mt7530_mac_config() > -> mt7530_setup_port5() > > On the first code path, priv->p5_intf_sel is either set to > P5_INTF_SEL_PHY_P0 or P5_INTF_SEL_PHY_P4 when mt7530_setup_port5() is run. > > On the second code path, priv->p5_intf_sel is set to P5_INTF_SEL_GMAC5 when > mt7530_setup_port5() is run. > > Empty the default case which will never run but is needed nonetheless to > handle all the remaining enumeration values. > > Signed-off-by: Arınç ÜNAL > Reviewed-by: Vladimir Oltean Reviewed-by: Russell King (Oracle) Thanks! While reviewing this change, but not related to it, I notice that this function sets the TX delay based on the RGMII interface mode. This isn't correct. I've explained why this is this many times in the past, but essentially it comes down to the model: phy-mode in NIC node Network driver PCB PHY rgmii no delays delays no delays rgmii-id no delays no delays tx/rx delays rgmii-txid no delays no delays tx delays rgmii-rxid no delays no delays rx delays Then we have rx-internal-delay-ps and tx-internal-delay-ps in the NIC node which define the RGMII delays at the local end and similar properties for the PHY node. So, if we take the view that, when a switch is connected to a NIC in RGMII mode, then the phy-mode specified delays still should not impact the local NIC. Now, for the switch, we specify the phy-mode in the port node as well. Consider the case of a switch port connected to a RGMII PHY. This has to operate in exactly the same way as a normal NIC - that is, the RGMII delays at the port should be ignored as it's the responsibility of a PHY. The final scenario to examine is the case of a RGMII switch port connected to a NIC. The NIC's phy-mode has no way to be communicated to DSA or vice versa, so neither phy-mode can impact the other side of the RGMII link, but should only place the link into RGMII mode. Given everything I've said above, the only way to configure RGMII delays is via the rx-internal-delay-ps and tx-internal-delay-ps properties. So, DSA drivers should _not_ be configuring their ports with RGMII delays based on the RGMII phy interface mode. The above is my purely logically reasoned point of view on this subject. Others may have other (to me completely illogical) interpretations that can only lead to interoperability issues. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last! 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 0EE36C4828E for ; Fri, 2 Feb 2024 11:40:59 +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=nCskjTiMStbIP3B4FuGPYOVfY/jEPljD/wxtij1ORds=; b=ntx7ahvl+ldy80 viUrMV3sebJ0Im/Pe5oWsTD2G+c7merU3ZnUKo3LWXUgqwQ2KU7b4s6QiNmCZxpb7MqeHHtP8ENNG zNw5OKJXlIIO81EA822SMGd697Kw33pgPBy6BV+1DAFyaIRgAjXMeMQwpUEIy4f5TH7ikO7ZJWNkJ t3sBKy2B71yLD1jBTYvycXKsLLcM4TvgELbxI2DUBNOoJXKboh3R+OFxwft25F5i8PpNrSoRaHISH l5a/Ny+J8/p+KNk7Gdg720zeYWqRaBSfA1ocw0riNfgATyOZsF77Fw3QH7ggeG6AursF1nioNw47A HLJnmMxkX6Ep8qtjmpjg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rVruY-0000000BKaQ-2KDw; Fri, 02 Feb 2024 11:40:46 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rVruV-0000000BKZE-1e83; Fri, 02 Feb 2024 11:40:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type: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-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=UslJPsc9OxqAKRDemcvqM9t/waIR2GXs7pcOUZ0/ORQ=; b=jGp8goMJO/MxQ0XCJBfcTUrVlZ xZigOzTQl82Q8t4B92czFeAdsOazhcWc0byV/RMFxvtxNPdRsd3Pd/98g/123aQIqSzg4BJd0zKA7 6b9U2pyFIZBoaXbM0oZtq2p/jhjv81jjqAZsffVCIDl4f+Sy9SaVHMznBIgycpw28JXHyheJskcv2 qTf7ClI1YPceYNXMX9UidY/M0X7H0n314C0JuZeE3P17Q47bP5/hXk2TB+Gw/GeVKdjTU3PhlOX1x E8Ttl6pFzqH+aFIBCh8R+VXlHO6FuMM7EuhKoVzYtIGVkrGrjIm3aPaWBTEwf2ZDGCO6265lnP52l 6Qlaix/Q==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:46710) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rVruE-0005tL-1l; Fri, 02 Feb 2024 11:40:26 +0000 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1rVru6-0008Hm-Un; Fri, 02 Feb 2024 11:40:18 +0000 Date: Fri, 2 Feb 2024 11:40:18 +0000 From: "Russell King (Oracle)" To: arinc.unal@arinc9.com Cc: Daniel Golle , DENG Qingfang , Sean Wang , Andrew Lunn , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , mithat.guner@xeront.com, erkin.bozoglu@xeront.com, Bartel Eerdekens , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: Re: [PATCH net-next v3 1/7] net: dsa: mt7530: empty default case on mt7530_setup_port5() Message-ID: References: <20240202-for-netnext-mt7530-improvements-2-v3-0-63d5adae99ca@arinc9.com> <20240202-for-netnext-mt7530-improvements-2-v3-1-63d5adae99ca@arinc9.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240202-for-netnext-mt7530-improvements-2-v3-1-63d5adae99ca@arinc9.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240202_034043_452925_BBF74918 X-CRM114-Status: GOOD ( 19.60 ) 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 T24gRnJpLCBGZWIgMDIsIDIwMjQgYXQgMTI6MTk6MDdQTSArMDMwMCwgQXLEsW7DpyDDnE5BTCB2 aWEgQjQgUmVsYXkgd3JvdGU6Cj4gRnJvbTogQXLEsW7DpyDDnE5BTCA8YXJpbmMudW5hbEBhcmlu YzkuY29tPgo+IAo+IFRoZXJlJ3JlIHR3byBjb2RlIHBhdGhzIGZvciBzZXR0aW5nIHVwIHBvcnQg NToKPiAKPiBtdDc1MzBfc2V0dXAoKQo+IC0+IG10NzUzMF9zZXR1cF9wb3J0NSgpCj4gCj4gbXQ3 NTN4X3BoeWxpbmtfbWFjX2NvbmZpZygpCj4gLT4gbXQ3NTN4X21hY19jb25maWcoKQo+ICAgIC0+ IG10NzUzMF9tYWNfY29uZmlnKCkKPiAgICAgICAtPiBtdDc1MzBfc2V0dXBfcG9ydDUoKQo+IAo+ IE9uIHRoZSBmaXJzdCBjb2RlIHBhdGgsIHByaXYtPnA1X2ludGZfc2VsIGlzIGVpdGhlciBzZXQg dG8KPiBQNV9JTlRGX1NFTF9QSFlfUDAgb3IgUDVfSU5URl9TRUxfUEhZX1A0IHdoZW4gbXQ3NTMw X3NldHVwX3BvcnQ1KCkgaXMgcnVuLgo+IAo+IE9uIHRoZSBzZWNvbmQgY29kZSBwYXRoLCBwcml2 LT5wNV9pbnRmX3NlbCBpcyBzZXQgdG8gUDVfSU5URl9TRUxfR01BQzUgd2hlbgo+IG10NzUzMF9z ZXR1cF9wb3J0NSgpIGlzIHJ1bi4KPiAKPiBFbXB0eSB0aGUgZGVmYXVsdCBjYXNlIHdoaWNoIHdp bGwgbmV2ZXIgcnVuIGJ1dCBpcyBuZWVkZWQgbm9uZXRoZWxlc3MgdG8KPiBoYW5kbGUgYWxsIHRo ZSByZW1haW5pbmcgZW51bWVyYXRpb24gdmFsdWVzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFyxLFu w6cgw5xOQUwgPGFyaW5jLnVuYWxAYXJpbmM5LmNvbT4KPiBSZXZpZXdlZC1ieTogVmxhZGltaXIg T2x0ZWFuIDxvbHRlYW52QGdtYWlsLmNvbT4KClJldmlld2VkLWJ5OiBSdXNzZWxsIEtpbmcgKE9y YWNsZSkgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgoKVGhhbmtzIQoKV2hpbGUgcmV2aWV3 aW5nIHRoaXMgY2hhbmdlLCBidXQgbm90IHJlbGF0ZWQgdG8gaXQsIEkgbm90aWNlIHRoYXQgdGhp cwpmdW5jdGlvbiBzZXRzIHRoZSBUWCBkZWxheSBiYXNlZCBvbiB0aGUgUkdNSUkgaW50ZXJmYWNl IG1vZGUuIFRoaXMgaXNuJ3QKY29ycmVjdC4gSSd2ZSBleHBsYWluZWQgd2h5IHRoaXMgaXMgdGhp cyBtYW55IHRpbWVzIGluIHRoZSBwYXN0LCBidXQKZXNzZW50aWFsbHkgaXQgY29tZXMgZG93biB0 byB0aGUgbW9kZWw6CgoKcGh5LW1vZGUgaW4gTklDIG5vZGUJTmV0d29yayBkcml2ZXIJUENCCQlQ SFkKcmdtaWkJCQlubyBkZWxheXMJZGVsYXlzCQlubyBkZWxheXMKcmdtaWktaWQJCW5vIGRlbGF5 cwlubyBkZWxheXMJdHgvcnggZGVsYXlzCnJnbWlpLXR4aWQJCW5vIGRlbGF5cwlubyBkZWxheXMJ dHggZGVsYXlzCnJnbWlpLXJ4aWQJCW5vIGRlbGF5cwlubyBkZWxheXMJcnggZGVsYXlzCgpUaGVu IHdlIGhhdmUgcngtaW50ZXJuYWwtZGVsYXktcHMgYW5kIHR4LWludGVybmFsLWRlbGF5LXBzIGlu IHRoZSBOSUMKbm9kZSB3aGljaCBkZWZpbmUgdGhlIFJHTUlJIGRlbGF5cyBhdCB0aGUgbG9jYWwg ZW5kIGFuZCBzaW1pbGFyCnByb3BlcnRpZXMgZm9yIHRoZSBQSFkgbm9kZS4KCgpTbywgaWYgd2Ug dGFrZSB0aGUgdmlldyB0aGF0LCB3aGVuIGEgc3dpdGNoIGlzIGNvbm5lY3RlZCB0byBhIE5JQyBp bgpSR01JSSBtb2RlLCB0aGVuIHRoZSBwaHktbW9kZSBzcGVjaWZpZWQgZGVsYXlzIHN0aWxsIHNo b3VsZCBub3QgaW1wYWN0CnRoZSBsb2NhbCBOSUMuCgpOb3csIGZvciB0aGUgc3dpdGNoLCB3ZSBz cGVjaWZ5IHRoZSBwaHktbW9kZSBpbiB0aGUgcG9ydCBub2RlIGFzIHdlbGwuCkNvbnNpZGVyIHRo ZSBjYXNlIG9mIGEgc3dpdGNoIHBvcnQgY29ubmVjdGVkIHRvIGEgUkdNSUkgUEhZLiBUaGlzIGhh cwp0byBvcGVyYXRlIGluIGV4YWN0bHkgdGhlIHNhbWUgd2F5IGFzIGEgbm9ybWFsIE5JQyAtIHRo YXQgaXMsIHRoZQpSR01JSSBkZWxheXMgYXQgdGhlIHBvcnQgc2hvdWxkIGJlIGlnbm9yZWQgYXMg aXQncyB0aGUgcmVzcG9uc2liaWxpdHkKb2YgYSBQSFkuCgpUaGUgZmluYWwgc2NlbmFyaW8gdG8g ZXhhbWluZSBpcyB0aGUgY2FzZSBvZiBhIFJHTUlJIHN3aXRjaCBwb3J0CmNvbm5lY3RlZCB0byBh IE5JQy4gVGhlIE5JQydzIHBoeS1tb2RlIGhhcyBubyB3YXkgdG8gYmUgY29tbXVuaWNhdGVkCnRv IERTQSBvciB2aWNlIHZlcnNhLCBzbyBuZWl0aGVyIHBoeS1tb2RlIGNhbiBpbXBhY3QgdGhlIG90 aGVyIHNpZGUKb2YgdGhlIFJHTUlJIGxpbmssIGJ1dCBzaG91bGQgb25seSBwbGFjZSB0aGUgbGlu ayBpbnRvIFJHTUlJIG1vZGUuCkdpdmVuIGV2ZXJ5dGhpbmcgSSd2ZSBzYWlkIGFib3ZlLCB0aGUg b25seSB3YXkgdG8gY29uZmlndXJlIFJHTUlJCmRlbGF5cyBpcyB2aWEgdGhlIHJ4LWludGVybmFs LWRlbGF5LXBzIGFuZCB0eC1pbnRlcm5hbC1kZWxheS1wcwpwcm9wZXJ0aWVzLiBTbywgRFNBIGRy aXZlcnMgc2hvdWxkIF9ub3RfIGJlIGNvbmZpZ3VyaW5nIHRoZWlyIHBvcnRzCndpdGggUkdNSUkg ZGVsYXlzIGJhc2VkIG9uIHRoZSBSR01JSSBwaHkgaW50ZXJmYWNlIG1vZGUuCgpUaGUgYWJvdmUg aXMgbXkgcHVyZWx5IGxvZ2ljYWxseSByZWFzb25lZCBwb2ludCBvZiB2aWV3IG9uIHRoaXMKc3Vi amVjdC4gT3RoZXJzIG1heSBoYXZlIG90aGVyICh0byBtZSBjb21wbGV0ZWx5IGlsbG9naWNhbCkK aW50ZXJwcmV0YXRpb25zIHRoYXQgY2FuIG9ubHkgbGVhZCB0byBpbnRlcm9wZXJhYmlsaXR5IGlz c3Vlcy4KCi0tIApSTUsncyBQYXRjaCBzeXN0ZW06IGh0dHBzOi8vd3d3LmFybWxpbnV4Lm9yZy51 ay9kZXZlbG9wZXIvcGF0Y2hlcy8KRlRUUCBpcyBoZXJlISA4ME1icHMgZG93biAxME1icHMgdXAu IERlY2VudCBjb25uZWN0aXZpdHkgYXQgbGFzdCEKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4 LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK