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 6CD76C19F4F for ; Thu, 25 Apr 2024 12:50:02 +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=pBncPexiffxuM9dB1kO6x/SRA5d9BHphwHO927Go6PU=; b=cZgB7MAA8U3ijEunu/n/wrv/LF cK6PkykcVLWmpGrA+M43VyFG6wOHDXZ+3FZ7Evrvo1KE6YoYQd6iuFOS/95JljlmsMWEXusDsNlys 5TSbVg6IceRMFUP36ohqhXlYELJ9rNQSGk2ddEl911E9OZKUu/uSyhCzgfBw2dLGRFdOxoDUuv0jm Nj/aRjVsqi6mQIw2/V5ovzO+Ul24Ysif6TdRAxTWjz6Rd6QVyCDoF3gJJaSCyFf/whXYvrw5VEt8k jvvwVIrW9if6H1INm0lKur7ob/dlLWH8zf+4cGJ4oD+EZCCx0ZA/zVpUW6DXKNujAbn40DXLcyza5 sJhIjz/g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzyY5-00000008JNU-0m2C; Thu, 25 Apr 2024 12:50:01 +0000 Received: from pidgin.makrotopia.org ([185.142.180.65]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzyXs-00000008JEm-3pSk; Thu, 25 Apr 2024 12:49:50 +0000 Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.97.1) (envelope-from ) id 1rzyXc-0000000033E-3DOF; Thu, 25 Apr 2024 12:49:32 +0000 Date: Thu, 25 Apr 2024 13:49:28 +0100 From: Daniel Golle To: arinc.unal@arinc9.com Cc: DENG Qingfang , Sean Wang , Andrew Lunn , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , Russell King , Bartel Eerdekens , mithat.guner@xeront.com, erkin.bozoglu@xeront.com, 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 v2 00/15] MT7530 DSA Subdriver Improvements Act IV Message-ID: References: <20240422-for-netnext-mt7530-improvements-4-v2-0-a75157ba76ad@arinc9.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240422-for-netnext-mt7530-improvements-4-v2-0-a75157ba76ad@arinc9.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240425_054949_217571_675FA7C7 X-CRM114-Status: GOOD ( 21.41 ) 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 Mon, Apr 22, 2024 at 10:15:07AM +0300, Arınç ÜNAL via B4 Relay wrote: > Hello! > > This is the forth patch series with the goal of simplifying the MT7530 DSA > subdriver and improving support for MT7530, MT7531, and the switch on the > MT7988 SoC. > > I have done a simple ping test to confirm basic communication on all switch > ports on MCM and standalone MT7530, and MT7531 switch with this patch > series applied. > > MT7621 Unielec, MCM MT7530: > > rgmii-only-gmac0-mt7621-unielec-u7621-06-16m.dtb > gmac0-and-gmac1-mt7621-unielec-u7621-06-16m.dtb > > tftpboot 0x80008000 mips-uzImage.bin; tftpboot 0x83000000 mips-rootfs.cpio.uboot; tftpboot 0x83f00000 $dtb; bootm 0x80008000 0x83000000 0x83f00000 > > MT7622 Bananapi, MT7531: > > gmac0-and-gmac1-mt7622-bananapi-bpi-r64.dtb > > tftpboot 0x40000000 arm64-Image; tftpboot 0x45000000 arm64-rootfs.cpio.uboot; tftpboot 0x4a000000 $dtb; booti 0x40000000 0x45000000 0x4a000000 > > MT7623 Bananapi, standalone MT7530: > > rgmii-only-gmac0-mt7623n-bananapi-bpi-r2.dtb > gmac0-and-gmac1-mt7623n-bananapi-bpi-r2.dtb > > tftpboot 0x80008000 arm-zImage; tftpboot 0x83000000 arm-rootfs.cpio.uboot; tftpboot 0x83f00000 $dtb; bootz 0x80008000 0x83000000 0x83f00000 > > This patch series finalises the patch series linked below. > > https://lore.kernel.org/r/20230522121532.86610-1-arinc.unal@arinc9.com > > Signed-off-by: Arınç ÜNAL I've imported the series to OpenWrt as pending patch and (briefly) tested it myself on MT7988 and MT7986+MT7531 hardware, with very little changes so it would apply on Linux 6.1 and Linux 6.6. https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=d40691a5fb9415976bc917d1d96a0a6da99f2dc1 So for the whole series: Tested-by: Daniel Golle I will review the patches individually in the next days. > --- > Changes in v2: > - Add two new patches to the end. > - Patch 13 > - Add the missing patch log. > - Link to v1: https://lore.kernel.org/r/20240419-for-netnext-mt7530-improvements-4-v1-0-6d852ca79b1d@arinc9.com > > --- > Arınç ÜNAL (15): > net: dsa: mt7530: disable EEE abilities on failure on MT7531 and MT7988 > net: dsa: mt7530: refactor MT7530_PMCR_P() > net: dsa: mt7530: rename p5_intf_sel and use only for MT7530 switch > net: dsa: mt7530: rename mt753x_bpdu_port_fw enum to mt753x_to_cpu_fw > net: dsa: mt7530: refactor MT7530_MFC and MT7531_CFC, add MT7531_QRY_FFP > net: dsa: mt7530: refactor MT7530_HWTRAP and MT7530_MHWTRAP > net: dsa: mt7530: move MT753X_MTRAP operations for MT7530 > net: dsa: mt7530: return mt7530_setup_mdio & mt7531_setup_common on error > net: dsa: mt7530: define MAC speed capabilities per switch model > net: dsa: mt7530: get rid of function sanity check > net: dsa: mt7530: refactor MT7530_PMEEECR_P() > net: dsa: mt7530: get rid of mac_port_validate member of mt753x_info > net: dsa: mt7530: use priv->ds->num_ports instead of MT7530_NUM_PORTS > net: dsa: mt7530: do not pass port variable to mt7531_rgmii_setup() > net: dsa: mt7530: explain exposing MDIO bus of MT7531AE better > > drivers/net/dsa/mt7530.c | 294 +++++++++++++++++++++++------------------------ > drivers/net/dsa/mt7530.h | 289 ++++++++++++++++++++++++---------------------- > 2 files changed, 297 insertions(+), 286 deletions(-) > --- > base-commit: e1bc03d8372ac081810c2956cd244ed9899f9a02 > change-id: 20240320-for-netnext-mt7530-improvements-4-95430d150c05 > > Best regards, > -- > Arınç ÜNAL > > 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 0702DC4345F for ; Thu, 25 Apr 2024 12:50: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=mCun3c5TbFIfY4cErbgCvchErpg8JnBcH/Dr2nAtsK8=; b=vai/bDB6qhgNJe Jz+5MJcISE2qHiqi9OIp+q0+79A3R8aSFZS7EcSY9rTKLoL3zlFAiBNDgmcqi86krtAbEpeaFE8Ww YxpPQdfI7api3sI4bvwzKGQGGAXvkN5jOT6Lf4FVy5QVks4Hm6s9EcxclS87Z91LlUhMGeXEvWsTV ajAtGdgIej8+7r+4YsOa17NWSy90AWTaXdvucY/Nz97/SlOsHzgiP7xtRgwy6QjxCHWSW5nOXMDFR KVCwj6aRS+Z3iWns6FbW2BimbxVryKtm+h/6+dxsbml+bnl4Pvw92FHW+ukbuD+55Iiq5m5IvLrbI sKdjlk6Y9WbAw9uAW+Fg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzyY4-00000008JMh-12jr; Thu, 25 Apr 2024 12:50:00 +0000 Received: from pidgin.makrotopia.org ([185.142.180.65]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzyXs-00000008JEm-3pSk; Thu, 25 Apr 2024 12:49:50 +0000 Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.97.1) (envelope-from ) id 1rzyXc-0000000033E-3DOF; Thu, 25 Apr 2024 12:49:32 +0000 Date: Thu, 25 Apr 2024 13:49:28 +0100 From: Daniel Golle To: arinc.unal@arinc9.com Cc: DENG Qingfang , Sean Wang , Andrew Lunn , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Matthias Brugger , AngeloGioacchino Del Regno , Russell King , Bartel Eerdekens , mithat.guner@xeront.com, erkin.bozoglu@xeront.com, 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 v2 00/15] MT7530 DSA Subdriver Improvements Act IV Message-ID: References: <20240422-for-netnext-mt7530-improvements-4-v2-0-a75157ba76ad@arinc9.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240422-for-netnext-mt7530-improvements-4-v2-0-a75157ba76ad@arinc9.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240425_054949_217571_675FA7C7 X-CRM114-Status: GOOD ( 21.41 ) 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 T24gTW9uLCBBcHIgMjIsIDIwMjQgYXQgMTA6MTU6MDdBTSArMDMwMCwgQXLEsW7DpyDDnE5BTCB2 aWEgQjQgUmVsYXkgd3JvdGU6Cj4gSGVsbG8hCj4gCj4gVGhpcyBpcyB0aGUgZm9ydGggcGF0Y2gg c2VyaWVzIHdpdGggdGhlIGdvYWwgb2Ygc2ltcGxpZnlpbmcgdGhlIE1UNzUzMCBEU0EKPiBzdWJk cml2ZXIgYW5kIGltcHJvdmluZyBzdXBwb3J0IGZvciBNVDc1MzAsIE1UNzUzMSwgYW5kIHRoZSBz d2l0Y2ggb24gdGhlCj4gTVQ3OTg4IFNvQy4KPiAKPiBJIGhhdmUgZG9uZSBhIHNpbXBsZSBwaW5n IHRlc3QgdG8gY29uZmlybSBiYXNpYyBjb21tdW5pY2F0aW9uIG9uIGFsbCBzd2l0Y2gKPiBwb3J0 cyBvbiBNQ00gYW5kIHN0YW5kYWxvbmUgTVQ3NTMwLCBhbmQgTVQ3NTMxIHN3aXRjaCB3aXRoIHRo aXMgcGF0Y2gKPiBzZXJpZXMgYXBwbGllZC4KPiAKPiBNVDc2MjEgVW5pZWxlYywgTUNNIE1UNzUz MDoKPiAKPiByZ21paS1vbmx5LWdtYWMwLW10NzYyMS11bmllbGVjLXU3NjIxLTA2LTE2bS5kdGIK PiBnbWFjMC1hbmQtZ21hYzEtbXQ3NjIxLXVuaWVsZWMtdTc2MjEtMDYtMTZtLmR0Ygo+IAo+IHRm dHBib290IDB4ODAwMDgwMDAgbWlwcy11ekltYWdlLmJpbjsgdGZ0cGJvb3QgMHg4MzAwMDAwMCBt aXBzLXJvb3Rmcy5jcGlvLnVib290OyB0ZnRwYm9vdCAweDgzZjAwMDAwICRkdGI7IGJvb3RtIDB4 ODAwMDgwMDAgMHg4MzAwMDAwMCAweDgzZjAwMDAwCj4gCj4gTVQ3NjIyIEJhbmFuYXBpLCBNVDc1 MzE6Cj4gCj4gZ21hYzAtYW5kLWdtYWMxLW10NzYyMi1iYW5hbmFwaS1icGktcjY0LmR0Ygo+IAo+ IHRmdHBib290IDB4NDAwMDAwMDAgYXJtNjQtSW1hZ2U7IHRmdHBib290IDB4NDUwMDAwMDAgYXJt NjQtcm9vdGZzLmNwaW8udWJvb3Q7IHRmdHBib290IDB4NGEwMDAwMDAgJGR0YjsgYm9vdGkgMHg0 MDAwMDAwMCAweDQ1MDAwMDAwIDB4NGEwMDAwMDAKPiAKPiBNVDc2MjMgQmFuYW5hcGksIHN0YW5k YWxvbmUgTVQ3NTMwOgo+IAo+IHJnbWlpLW9ubHktZ21hYzAtbXQ3NjIzbi1iYW5hbmFwaS1icGkt cjIuZHRiCj4gZ21hYzAtYW5kLWdtYWMxLW10NzYyM24tYmFuYW5hcGktYnBpLXIyLmR0Ygo+IAo+ IHRmdHBib290IDB4ODAwMDgwMDAgYXJtLXpJbWFnZTsgdGZ0cGJvb3QgMHg4MzAwMDAwMCBhcm0t cm9vdGZzLmNwaW8udWJvb3Q7IHRmdHBib290IDB4ODNmMDAwMDAgJGR0YjsgYm9vdHogMHg4MDAw ODAwMCAweDgzMDAwMDAwIDB4ODNmMDAwMDAKPiAKPiBUaGlzIHBhdGNoIHNlcmllcyBmaW5hbGlz ZXMgdGhlIHBhdGNoIHNlcmllcyBsaW5rZWQgYmVsb3cuCj4gCj4gaHR0cHM6Ly9sb3JlLmtlcm5l bC5vcmcvci8yMDIzMDUyMjEyMTUzMi44NjYxMC0xLWFyaW5jLnVuYWxAYXJpbmM5LmNvbQo+IAo+ IFNpZ25lZC1vZmYtYnk6IEFyxLFuw6cgw5xOQUwgPGFyaW5jLnVuYWxAYXJpbmM5LmNvbT4KCkkn dmUgaW1wb3J0ZWQgdGhlIHNlcmllcyB0byBPcGVuV3J0IGFzIHBlbmRpbmcgcGF0Y2ggYW5kIChi cmllZmx5KQp0ZXN0ZWQgaXQgbXlzZWxmIG9uIE1UNzk4OCBhbmQgTVQ3OTg2K01UNzUzMSBoYXJk d2FyZSwgd2l0aCB2ZXJ5IGxpdHRsZQpjaGFuZ2VzIHNvIGl0IHdvdWxkIGFwcGx5IG9uIExpbnV4 IDYuMSBhbmQgTGludXggNi42LgoKaHR0cHM6Ly9naXQub3BlbndydC5vcmcvP3A9b3BlbndydC9v cGVud3J0LmdpdDthPWNvbW1pdDtoPWQ0MDY5MWE1ZmI5NDE1OTc2YmM5MTdkMWQ5NmEwYTZkYTk5 ZjJkYzEKClNvIGZvciB0aGUgd2hvbGUgc2VyaWVzOgoKVGVzdGVkLWJ5OiBEYW5pZWwgR29sbGUg PGRhbmllbEBtYWtyb3RvcGlhLm9yZz4KCkkgd2lsbCByZXZpZXcgdGhlIHBhdGNoZXMgaW5kaXZp ZHVhbGx5IGluIHRoZSBuZXh0IGRheXMuCgoKPiAtLS0KPiBDaGFuZ2VzIGluIHYyOgo+IC0gQWRk IHR3byBuZXcgcGF0Y2hlcyB0byB0aGUgZW5kLgo+IC0gUGF0Y2ggMTMKPiAgIC0gQWRkIHRoZSBt aXNzaW5nIHBhdGNoIGxvZy4KPiAtIExpbmsgdG8gdjE6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3Jn L3IvMjAyNDA0MTktZm9yLW5ldG5leHQtbXQ3NTMwLWltcHJvdmVtZW50cy00LXYxLTAtNmQ4NTJj YTc5YjFkQGFyaW5jOS5jb20KPiAKPiAtLS0KPiBBcsSxbsOnIMOcTkFMICgxNSk6Cj4gICAgICAg bmV0OiBkc2E6IG10NzUzMDogZGlzYWJsZSBFRUUgYWJpbGl0aWVzIG9uIGZhaWx1cmUgb24gTVQ3 NTMxIGFuZCBNVDc5ODgKPiAgICAgICBuZXQ6IGRzYTogbXQ3NTMwOiByZWZhY3RvciBNVDc1MzBf UE1DUl9QKCkKPiAgICAgICBuZXQ6IGRzYTogbXQ3NTMwOiByZW5hbWUgcDVfaW50Zl9zZWwgYW5k IHVzZSBvbmx5IGZvciBNVDc1MzAgc3dpdGNoCj4gICAgICAgbmV0OiBkc2E6IG10NzUzMDogcmVu YW1lIG10NzUzeF9icGR1X3BvcnRfZncgZW51bSB0byBtdDc1M3hfdG9fY3B1X2Z3Cj4gICAgICAg bmV0OiBkc2E6IG10NzUzMDogcmVmYWN0b3IgTVQ3NTMwX01GQyBhbmQgTVQ3NTMxX0NGQywgYWRk IE1UNzUzMV9RUllfRkZQCj4gICAgICAgbmV0OiBkc2E6IG10NzUzMDogcmVmYWN0b3IgTVQ3NTMw X0hXVFJBUCBhbmQgTVQ3NTMwX01IV1RSQVAKPiAgICAgICBuZXQ6IGRzYTogbXQ3NTMwOiBtb3Zl IE1UNzUzWF9NVFJBUCBvcGVyYXRpb25zIGZvciBNVDc1MzAKPiAgICAgICBuZXQ6IGRzYTogbXQ3 NTMwOiByZXR1cm4gbXQ3NTMwX3NldHVwX21kaW8gJiBtdDc1MzFfc2V0dXBfY29tbW9uIG9uIGVy cm9yCj4gICAgICAgbmV0OiBkc2E6IG10NzUzMDogZGVmaW5lIE1BQyBzcGVlZCBjYXBhYmlsaXRp ZXMgcGVyIHN3aXRjaCBtb2RlbAo+ICAgICAgIG5ldDogZHNhOiBtdDc1MzA6IGdldCByaWQgb2Yg ZnVuY3Rpb24gc2FuaXR5IGNoZWNrCj4gICAgICAgbmV0OiBkc2E6IG10NzUzMDogcmVmYWN0b3Ig TVQ3NTMwX1BNRUVFQ1JfUCgpCj4gICAgICAgbmV0OiBkc2E6IG10NzUzMDogZ2V0IHJpZCBvZiBt YWNfcG9ydF92YWxpZGF0ZSBtZW1iZXIgb2YgbXQ3NTN4X2luZm8KPiAgICAgICBuZXQ6IGRzYTog bXQ3NTMwOiB1c2UgcHJpdi0+ZHMtPm51bV9wb3J0cyBpbnN0ZWFkIG9mIE1UNzUzMF9OVU1fUE9S VFMKPiAgICAgICBuZXQ6IGRzYTogbXQ3NTMwOiBkbyBub3QgcGFzcyBwb3J0IHZhcmlhYmxlIHRv IG10NzUzMV9yZ21paV9zZXR1cCgpCj4gICAgICAgbmV0OiBkc2E6IG10NzUzMDogZXhwbGFpbiBl eHBvc2luZyBNRElPIGJ1cyBvZiBNVDc1MzFBRSBiZXR0ZXIKPiAKPiAgZHJpdmVycy9uZXQvZHNh L210NzUzMC5jIHwgMjk0ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4gIGRyaXZlcnMvbmV0L2RzYS9tdDc1MzAuaCB8IDI4OSArKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgMjk3IGlu c2VydGlvbnMoKyksIDI4NiBkZWxldGlvbnMoLSkKPiAtLS0KPiBiYXNlLWNvbW1pdDogZTFiYzAz ZDgzNzJhYzA4MTgxMGMyOTU2Y2QyNDRlZDk4OTlmOWEwMgo+IGNoYW5nZS1pZDogMjAyNDAzMjAt Zm9yLW5ldG5leHQtbXQ3NTMwLWltcHJvdmVtZW50cy00LTk1NDMwZDE1MGMwNQo+IAo+IEJlc3Qg cmVnYXJkcywKPiAtLSAKPiBBcsSxbsOnIMOcTkFMIDxhcmluYy51bmFsQGFyaW5jOS5jb20+Cj4g Cj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1h cm0ta2VybmVsCg==