From mboxrd@z Thu Jan 1 00:00:00 1970 From: LW@KARO-electronics.de (Lothar =?UTF-8?B?V2HDn21hbm4=?=) Date: Fri, 4 May 2018 08:52:48 +0200 Subject: [RFC PATCH] ARM: dts: imx: replace underscore with hyphen in aliases name In-Reply-To: <1525399128-11587-1-git-send-email-shawnguo@kernel.org> References: <1525399128-11587-1-git-send-email-shawnguo@kernel.org> Message-ID: <20180504085248.532c8a47@karo-electronics.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi, On Fri, 4 May 2018 09:58:48 +0800 Shawn Guo wrote: > It replaces underscore with hyphen in aliases name to fix DTC > alias_paths warning below, which is seen with various i.MX board dts > files when W=1 switch is on. > > Warning (alias_paths): /aliases: aliases property name must include only lowercase and '-' > > Cc: Lothar Wa?mann > Cc: Gary Bisson > Signed-off-by: Shawn Guo > --- > Hi Lothar, Gary, > > Per my search on kernel code, this change will not break anything on > kernel support. But I'm not really sure about the case of bootloaders > running on the boards. That's why I'm sending it as RFC. > > We really want i.MX to be the first-class citizen in the community. > After a few cycles efforts on cleaning up DTC warnings, this alias_paths > warning is the last one we see with i.MX dts files. We really want to > get rid of it and make i.MX dts be DTC warning free. > > So please comment whether we can merge this patch. > This breaks our U-Boot which searches for the alias names with '_'. But I think it's not worth keeping the old names alive, since the problem can easily be fixed by adding the old alias name to the FDT on affected boards from within U-Boot, if necessary. Alternatively we could add a: reg_can_xcvr = "reg-can-xcvr"; [...] so that the respective aliases can be resolved using both names for a while. So: Acked-By: Lothar Wa?mann > Shawn > > arch/arm/boot/dts/imx53-tx53.dtsi | 2 +- > arch/arm/boot/dts/imx6qdl-tx6.dtsi | 6 +++--- > arch/arm/boot/dts/imx6sx-nitrogen6sx.dts | 4 ++-- > arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts | 2 +- > arch/arm/boot/dts/imx6ul-tx6ul.dtsi | 6 +++--- > arch/arm/boot/dts/imx7d-nitrogen7.dts | 4 ++-- > 6 files changed, 12 insertions(+), 12 deletions(-) > > diff --git a/arch/arm/boot/dts/imx53-tx53.dtsi b/arch/arm/boot/dts/imx53-tx53.dtsi > index 5dd3dd3a2fd0..54cf3e67069a 100644 > --- a/arch/arm/boot/dts/imx53-tx53.dtsi > +++ b/arch/arm/boot/dts/imx53-tx53.dtsi > @@ -58,7 +58,7 @@ > can0 = &can2; /* Make the can interface indices consistent with TX28/TX48 modules */ > can1 = &can1; > ipu = &ipu; > - reg_can_xcvr = ®_can_xcvr; > + reg-can-xcvr = ®_can_xcvr; > usbh1 = &usbh1; > usbotg = &usbotg; > }; > diff --git a/arch/arm/boot/dts/imx6qdl-tx6.dtsi b/arch/arm/boot/dts/imx6qdl-tx6.dtsi > index f015e2d1cf35..a98fb2564c63 100644 > --- a/arch/arm/boot/dts/imx6qdl-tx6.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-tx6.dtsi > @@ -50,11 +50,11 @@ > can0 = &can2; > can1 = &can1; > ethernet0 = &fec; > - lcdif_23bit_pins_a = &pinctrl_disp0_1; > - lcdif_24bit_pins_a = &pinctrl_disp0_2; > + lcdif-23bit-pins-a = &pinctrl_disp0_1; > + lcdif-24bit-pins-a = &pinctrl_disp0_2; > pwm0 = &pwm1; > pwm1 = &pwm2; > - reg_can_xcvr = ®_can_xcvr; > + reg-can-xcvr = ®_can_xcvr; > stk5led = &user_led; > usbotg = &usbotg; > sdhc0 = &usdhc1; > diff --git a/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts b/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts > index b58f770c40d9..59e52f504922 100644 > --- a/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts > +++ b/arch/arm/boot/dts/imx6sx-nitrogen6sx.dts > @@ -48,8 +48,8 @@ > compatible = "boundary,imx6sx-nitrogen6sx", "fsl,imx6sx"; > > aliases { > - fb_lcd = &lcdif1; > - t_lcd = &t_lcd; > + fb-lcd = &lcdif1; > + t-lcd = &t_lcd; > }; > > memory at 80000000 { > diff --git a/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts b/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts > index 2d80f7b50bc0..97686097a86e 100644 > --- a/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts > +++ b/arch/arm/boot/dts/imx6ul-tx6ul-mainboard.dts > @@ -48,7 +48,7 @@ > compatible = "karo,imx6ul-tx6ul", "fsl,imx6ul"; > > aliases { > - lcdif_24bit_pins_a = &pinctrl_disp0_3; > + lcdif-24bit-pins-a = &pinctrl_disp0_3; > mmc0 = &usdhc1; > /delete-property/ mmc1; > serial2 = &uart3; > diff --git a/arch/arm/boot/dts/imx6ul-tx6ul.dtsi b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi > index f678d18ad44a..02b5ba42cd59 100644 > --- a/arch/arm/boot/dts/imx6ul-tx6ul.dtsi > +++ b/arch/arm/boot/dts/imx6ul-tx6ul.dtsi > @@ -53,10 +53,10 @@ > i2c2 = &i2c1; > i2c3 = &i2c3; > i2c4 = &i2c4; > - lcdif_23bit_pins_a = &pinctrl_disp0_1; > - lcdif_24bit_pins_a = &pinctrl_disp0_2; > + lcdif-23bit-pins-a = &pinctrl_disp0_1; > + lcdif-24bit-pins-a = &pinctrl_disp0_2; > pwm0 = &pwm5; > - reg_can_xcvr = ®_can_xcvr; > + reg-can-xcvr = ®_can_xcvr; > serial2 = &uart5; > serial4 = &uart3; > spi0 = &ecspi2; > diff --git a/arch/arm/boot/dts/imx7d-nitrogen7.dts b/arch/arm/boot/dts/imx7d-nitrogen7.dts > index 52167298984d..b8e73b46cddb 100644 > --- a/arch/arm/boot/dts/imx7d-nitrogen7.dts > +++ b/arch/arm/boot/dts/imx7d-nitrogen7.dts > @@ -49,8 +49,8 @@ > compatible = "boundary,imx7d-nitrogen7", "fsl,imx7d"; > > aliases { > - fb_lcd = &lcdif; > - t_lcd = &t_lcd; > + fb-lcd = &lcdif; > + t-lcd = &t_lcd; > }; > > memory at 80000000 { Lothar Wa?mann From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lothar =?UTF-8?B?V2HDn21hbm4=?= Subject: Re: [RFC PATCH] ARM: dts: imx: replace underscore with hyphen in aliases name Date: Fri, 4 May 2018 08:52:48 +0200 Message-ID: <20180504085248.532c8a47@karo-electronics.de> References: <1525399128-11587-1-git-send-email-shawnguo@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1525399128-11587-1-git-send-email-shawnguo@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Shawn Guo Cc: devicetree@vger.kernel.org, Gary Bisson , Rob Herring , linux-imx@nxp.com, kernel@pengutronix.de, Fabio Estevam , linux-arm-kernel@lists.infradead.org List-Id: devicetree@vger.kernel.org SGksCgpPbiBGcmksICA0IE1heSAyMDE4IDA5OjU4OjQ4ICswODAwIFNoYXduIEd1byB3cm90ZToK PiBJdCByZXBsYWNlcyB1bmRlcnNjb3JlIHdpdGggaHlwaGVuIGluIGFsaWFzZXMgbmFtZSB0byBm aXggRFRDCj4gYWxpYXNfcGF0aHMgd2FybmluZyBiZWxvdywgd2hpY2ggaXMgc2VlbiB3aXRoIHZh cmlvdXMgaS5NWCBib2FyZCBkdHMKPiBmaWxlcyB3aGVuIFc9MSBzd2l0Y2ggaXMgb24uCj4gCj4g IFdhcm5pbmcgKGFsaWFzX3BhdGhzKTogL2FsaWFzZXM6IGFsaWFzZXMgcHJvcGVydHkgbmFtZSBt dXN0IGluY2x1ZGUgb25seSBsb3dlcmNhc2UgYW5kICctJwo+IAo+IENjOiBMb3RoYXIgV2HDn21h bm4gPExXQEtBUk8tZWxlY3Ryb25pY3MuZGU+Cj4gQ2M6IEdhcnkgQmlzc29uIDxnYXJ5LmJpc3Nv bkBib3VuZGFyeWRldmljZXMuY29tPgo+IFNpZ25lZC1vZmYtYnk6IFNoYXduIEd1byA8c2hhd25n dW9Aa2VybmVsLm9yZz4KPiAtLS0KPiBIaSBMb3RoYXIsIEdhcnksCj4gCj4gUGVyIG15IHNlYXJj aCBvbiBrZXJuZWwgY29kZSwgdGhpcyBjaGFuZ2Ugd2lsbCBub3QgYnJlYWsgYW55dGhpbmcgb24K PiBrZXJuZWwgc3VwcG9ydC4gIEJ1dCBJJ20gbm90IHJlYWxseSBzdXJlIGFib3V0IHRoZSBjYXNl IG9mIGJvb3Rsb2FkZXJzCj4gcnVubmluZyBvbiB0aGUgYm9hcmRzLiAgVGhhdCdzIHdoeSBJJ20g c2VuZGluZyBpdCBhcyBSRkMuCj4gCj4gV2UgcmVhbGx5IHdhbnQgaS5NWCB0byBiZSB0aGUgZmly c3QtY2xhc3MgY2l0aXplbiBpbiB0aGUgY29tbXVuaXR5Lgo+IEFmdGVyIGEgZmV3IGN5Y2xlcyBl ZmZvcnRzIG9uIGNsZWFuaW5nIHVwIERUQyB3YXJuaW5ncywgdGhpcyBhbGlhc19wYXRocwo+IHdh cm5pbmcgaXMgdGhlIGxhc3Qgb25lIHdlIHNlZSB3aXRoIGkuTVggZHRzIGZpbGVzLiAgV2UgcmVh bGx5IHdhbnQgdG8KPiBnZXQgcmlkIG9mIGl0IGFuZCBtYWtlIGkuTVggZHRzIGJlIERUQyB3YXJu aW5nIGZyZWUuCj4gCj4gU28gcGxlYXNlIGNvbW1lbnQgd2hldGhlciB3ZSBjYW4gbWVyZ2UgdGhp cyBwYXRjaC4KPiAKVGhpcyBicmVha3Mgb3VyIFUtQm9vdCB3aGljaCBzZWFyY2hlcyBmb3IgdGhl IGFsaWFzIG5hbWVzIHdpdGggJ18nLgpCdXQgSSB0aGluayBpdCdzIG5vdCB3b3J0aCBrZWVwaW5n IHRoZSBvbGQgbmFtZXMgYWxpdmUsIHNpbmNlIHRoZQpwcm9ibGVtIGNhbiBlYXNpbHkgYmUgZml4 ZWQgYnkgYWRkaW5nIHRoZSBvbGQgYWxpYXMgbmFtZSB0byB0aGUgRkRUCm9uIGFmZmVjdGVkIGJv YXJkcyBmcm9tIHdpdGhpbiBVLUJvb3QsIGlmIG5lY2Vzc2FyeS4KCkFsdGVybmF0aXZlbHkgd2Ug Y291bGQgYWRkIGE6CglyZWdfY2FuX3hjdnIgPSAicmVnLWNhbi14Y3ZyIjsKWy4uLl0Kc28gdGhh dCB0aGUgcmVzcGVjdGl2ZSBhbGlhc2VzIGNhbiBiZSByZXNvbHZlZCB1c2luZyBib3RoIG5hbWVz IGZvciBhCndoaWxlLgoKU286CkFja2VkLUJ5OiBMb3RoYXIgV2HDn21hbm4gPExXQEtBUk8tZWxl Y3Ryb25pY3MuZGU+Cgo+IFNoYXduCj4gCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2lteDUzLXR4NTMu ZHRzaSAgICAgICAgICAgIHwgMiArLQo+ICBhcmNoL2FybS9ib290L2R0cy9pbXg2cWRsLXR4Ni5k dHNpICAgICAgICAgICB8IDYgKysrLS0tCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2lteDZzeC1uaXRy b2dlbjZzeC5kdHMgICAgIHwgNCArKy0tCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2lteDZ1bC10eDZ1 bC1tYWluYm9hcmQuZHRzIHwgMiArLQo+ICBhcmNoL2FybS9ib290L2R0cy9pbXg2dWwtdHg2dWwu ZHRzaSAgICAgICAgICB8IDYgKysrLS0tCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2lteDdkLW5pdHJv Z2VuNy5kdHMgICAgICAgIHwgNCArKy0tCj4gIDYgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9u cygrKSwgMTIgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRz L2lteDUzLXR4NTMuZHRzaSBiL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDUzLXR4NTMuZHRzaQo+IGlu ZGV4IDVkZDNkZDNhMmZkMC4uNTRjZjNlNjcwNjlhIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2Jv b3QvZHRzL2lteDUzLXR4NTMuZHRzaQo+ICsrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDUzLXR4 NTMuZHRzaQo+IEBAIC01OCw3ICs1OCw3IEBACj4gIAkJY2FuMCA9ICZjYW4yOyAvKiBNYWtlIHRo ZSBjYW4gaW50ZXJmYWNlIGluZGljZXMgY29uc2lzdGVudCB3aXRoIFRYMjgvVFg0OCBtb2R1bGVz ICovCj4gIAkJY2FuMSA9ICZjYW4xOwo+ICAJCWlwdSA9ICZpcHU7Cj4gLQkJcmVnX2Nhbl94Y3Zy ID0gJnJlZ19jYW5feGN2cjsKPiArCQlyZWctY2FuLXhjdnIgPSAmcmVnX2Nhbl94Y3ZyOwo+ICAJ CXVzYmgxID0gJnVzYmgxOwo+ICAJCXVzYm90ZyA9ICZ1c2JvdGc7Cj4gIAl9Owo+IGRpZmYgLS1n aXQgYS9hcmNoL2FybS9ib290L2R0cy9pbXg2cWRsLXR4Ni5kdHNpIGIvYXJjaC9hcm0vYm9vdC9k dHMvaW14NnFkbC10eDYuZHRzaQo+IGluZGV4IGYwMTVlMmQxY2YzNS4uYTk4ZmIyNTY0YzYzIDEw MDY0NAo+IC0tLSBhL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDZxZGwtdHg2LmR0c2kKPiArKysgYi9h cmNoL2FybS9ib290L2R0cy9pbXg2cWRsLXR4Ni5kdHNpCj4gQEAgLTUwLDExICs1MCwxMSBAQAo+ ICAJCWNhbjAgPSAmY2FuMjsKPiAgCQljYW4xID0gJmNhbjE7Cj4gIAkJZXRoZXJuZXQwID0gJmZl YzsKPiAtCQlsY2RpZl8yM2JpdF9waW5zX2EgPSAmcGluY3RybF9kaXNwMF8xOwo+IC0JCWxjZGlm XzI0Yml0X3BpbnNfYSA9ICZwaW5jdHJsX2Rpc3AwXzI7Cj4gKwkJbGNkaWYtMjNiaXQtcGlucy1h ID0gJnBpbmN0cmxfZGlzcDBfMTsKPiArCQlsY2RpZi0yNGJpdC1waW5zLWEgPSAmcGluY3RybF9k aXNwMF8yOwo+ICAJCXB3bTAgPSAmcHdtMTsKPiAgCQlwd20xID0gJnB3bTI7Cj4gLQkJcmVnX2Nh bl94Y3ZyID0gJnJlZ19jYW5feGN2cjsKPiArCQlyZWctY2FuLXhjdnIgPSAmcmVnX2Nhbl94Y3Zy Owo+ICAJCXN0azVsZWQgPSAmdXNlcl9sZWQ7Cj4gIAkJdXNib3RnID0gJnVzYm90ZzsKPiAgCQlz ZGhjMCA9ICZ1c2RoYzE7Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDZzeC1u aXRyb2dlbjZzeC5kdHMgYi9hcmNoL2FybS9ib290L2R0cy9pbXg2c3gtbml0cm9nZW42c3guZHRz Cj4gaW5kZXggYjU4Zjc3MGM0MGQ5Li41OWU1MmY1MDQ5MjIgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9h cm0vYm9vdC9kdHMvaW14NnN4LW5pdHJvZ2VuNnN4LmR0cwo+ICsrKyBiL2FyY2gvYXJtL2Jvb3Qv ZHRzL2lteDZzeC1uaXRyb2dlbjZzeC5kdHMKPiBAQCAtNDgsOCArNDgsOCBAQAo+ICAJY29tcGF0 aWJsZSA9ICJib3VuZGFyeSxpbXg2c3gtbml0cm9nZW42c3giLCAiZnNsLGlteDZzeCI7Cj4gIAo+ ICAJYWxpYXNlcyB7Cj4gLQkJZmJfbGNkID0gJmxjZGlmMTsKPiAtCQl0X2xjZCA9ICZ0X2xjZDsK PiArCQlmYi1sY2QgPSAmbGNkaWYxOwo+ICsJCXQtbGNkID0gJnRfbGNkOwo+ICAJfTsKPiAgCj4g IAltZW1vcnlAODAwMDAwMDAgewo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9ib290L2R0cy9pbXg2 dWwtdHg2dWwtbWFpbmJvYXJkLmR0cyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDZ1bC10eDZ1bC1t YWluYm9hcmQuZHRzCj4gaW5kZXggMmQ4MGY3YjUwYmMwLi45NzY4NjA5N2E4NmUgMTAwNjQ0Cj4g LS0tIGEvYXJjaC9hcm0vYm9vdC9kdHMvaW14NnVsLXR4NnVsLW1haW5ib2FyZC5kdHMKPiArKysg Yi9hcmNoL2FybS9ib290L2R0cy9pbXg2dWwtdHg2dWwtbWFpbmJvYXJkLmR0cwo+IEBAIC00OCw3 ICs0OCw3IEBACj4gIAljb21wYXRpYmxlID0gImthcm8saW14NnVsLXR4NnVsIiwgImZzbCxpbXg2 dWwiOwo+ICAKPiAgCWFsaWFzZXMgewo+IC0JCWxjZGlmXzI0Yml0X3BpbnNfYSA9ICZwaW5jdHJs X2Rpc3AwXzM7Cj4gKwkJbGNkaWYtMjRiaXQtcGlucy1hID0gJnBpbmN0cmxfZGlzcDBfMzsKPiAg CQltbWMwID0gJnVzZGhjMTsKPiAgCQkvZGVsZXRlLXByb3BlcnR5LyBtbWMxOwo+ICAJCXNlcmlh bDIgPSAmdWFydDM7Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDZ1bC10eDZ1 bC5kdHNpIGIvYXJjaC9hcm0vYm9vdC9kdHMvaW14NnVsLXR4NnVsLmR0c2kKPiBpbmRleCBmNjc4 ZDE4YWQ0NGEuLjAyYjViYTQyY2Q1OSAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybS9ib290L2R0cy9p bXg2dWwtdHg2dWwuZHRzaQo+ICsrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDZ1bC10eDZ1bC5k dHNpCj4gQEAgLTUzLDEwICs1MywxMCBAQAo+ICAJCWkyYzIgPSAmaTJjMTsKPiAgCQlpMmMzID0g JmkyYzM7Cj4gIAkJaTJjNCA9ICZpMmM0Owo+IC0JCWxjZGlmXzIzYml0X3BpbnNfYSA9ICZwaW5j dHJsX2Rpc3AwXzE7Cj4gLQkJbGNkaWZfMjRiaXRfcGluc19hID0gJnBpbmN0cmxfZGlzcDBfMjsK PiArCQlsY2RpZi0yM2JpdC1waW5zLWEgPSAmcGluY3RybF9kaXNwMF8xOwo+ICsJCWxjZGlmLTI0 Yml0LXBpbnMtYSA9ICZwaW5jdHJsX2Rpc3AwXzI7Cj4gIAkJcHdtMCA9ICZwd201Owo+IC0JCXJl Z19jYW5feGN2ciA9ICZyZWdfY2FuX3hjdnI7Cj4gKwkJcmVnLWNhbi14Y3ZyID0gJnJlZ19jYW5f eGN2cjsKPiAgCQlzZXJpYWwyID0gJnVhcnQ1Owo+ICAJCXNlcmlhbDQgPSAmdWFydDM7Cj4gIAkJ c3BpMCA9ICZlY3NwaTI7Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDdkLW5p dHJvZ2VuNy5kdHMgYi9hcmNoL2FybS9ib290L2R0cy9pbXg3ZC1uaXRyb2dlbjcuZHRzCj4gaW5k ZXggNTIxNjcyOTg5ODRkLi5iOGU3M2I0NmNkZGIgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vYm9v dC9kdHMvaW14N2Qtbml0cm9nZW43LmR0cwo+ICsrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL2lteDdk LW5pdHJvZ2VuNy5kdHMKPiBAQCAtNDksOCArNDksOCBAQAo+ICAJY29tcGF0aWJsZSA9ICJib3Vu ZGFyeSxpbXg3ZC1uaXRyb2dlbjciLCAiZnNsLGlteDdkIjsKPiAgCj4gIAlhbGlhc2VzIHsKPiAt CQlmYl9sY2QgPSAmbGNkaWY7Cj4gLQkJdF9sY2QgPSAmdF9sY2Q7Cj4gKwkJZmItbGNkID0gJmxj ZGlmOwo+ICsJCXQtbGNkID0gJnRfbGNkOwo+ICAJfTsKPiAgCj4gIAltZW1vcnlAODAwMDAwMDAg ewoKCkxvdGhhciBXYcOfbWFubgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=