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 X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D5927C3526A for ; Wed, 16 Dec 2020 12:25:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8FE0D2339F for ; Wed, 16 Dec 2020 12:25:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725974AbgLPMY7 (ORCPT ); Wed, 16 Dec 2020 07:24:59 -0500 Received: from foss.arm.com ([217.140.110.172]:49834 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725778AbgLPMY7 (ORCPT ); Wed, 16 Dec 2020 07:24:59 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A3AA01FB; Wed, 16 Dec 2020 04:24:13 -0800 (PST) Received: from bogus (unknown [10.57.54.168]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 08A113F66E; Wed, 16 Dec 2020 04:24:10 -0800 (PST) Date: Wed, 16 Dec 2020 12:24:08 +0000 From: Sudeep Holla To: Rob Herring Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, Trilok Soni , arve@android.com, Andrew Walbran , David Hartley , Achin Gupta , Sudeep Holla , Jens Wiklander , Arunachalam Ganapathy Subject: Re: [PATCH v3 1/7] dt-bindings: Arm: Add Firmware Framework for Armv8-A (FF-A) binding Message-ID: <20201216122408.2fhubdyqm2ofpgc3@bogus> References: <20201204121137.2966778-1-sudeep.holla@arm.com> <20201204121137.2966778-2-sudeep.holla@arm.com> <20201214220107.GA2430387@robh.at.kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20201214220107.GA2430387@robh.at.kernel.org> User-Agent: NeoMutt/20171215 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org On Mon, Dec 14, 2020 at 04:01:07PM -0600, Rob Herring wrote: > On Fri, Dec 04, 2020 at 12:11:31PM +0000, Sudeep Holla wrote: > > Since the FF-A v1.0 specification doesn't list the UUID of all the > > partitions in the discovery API, we need to specify the UUID of the > > partitions that need to be accessed by drivers within the kernel. > > > > This binding to provide the list of partitions that kernel drivers > > may need to access. > > > > Signed-off-by: Sudeep Holla > > --- > > .../devicetree/bindings/arm/arm,ffa.yaml | 58 +++++++++++++++++++ > > 1 file changed, 58 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/arm/arm,ffa.yaml > > > > diff --git a/Documentation/devicetree/bindings/arm/arm,ffa.yaml b/Documentation/devicetree/bindings/arm/arm,ffa.yaml > > new file mode 100644 > > index 000000000000..a014a5801c34 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/arm/arm,ffa.yaml > > @@ -0,0 +1,58 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/arm/arm,ffa.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Arm Firmware Framework for Arm v8-A (in-kernel users) > > + > > +maintainers: > > + - Sudeep Holla > > + > > +description: | > > + Firmware frameworks implementing partition according to the FF-A > > + specification defined by ARM document number ARM DEN 0077A ("Arm Firmware > > + Framework for Arm v8-A") [0], providing services to be used by other > > + partitions. > > + > > + [0] https://developer.arm.com/docs/den0077/latest > > + > > +properties: > > + $nodename: > > + const: ffa > > + > > + compatible: > > + oneOf: > > + - const: arm,ffa-1.0 > > + > > +patternProperties: > > + "^ffa_partition[0-9]+$": > > + type: object > > + description: One or more child nodes, each describing an FFA partition. > > + properties: > > + $nodename: > > + const: ffa_partition > > + > > + compatible: > > + oneOf: > > + - const: arm,ffa-1.0-partition > > + > > + uuid: > > + $ref: '/schemas/types.yaml#definitions/string' > > + description: | > > + The 128-bit UUID [2] of the service implemented by this partition. > > + > > + [2] https://tools.ietf.org/html/rfc4122 > > UUIDs are actually a known thing in json-schema with 'format: uuid'. > The meta-schema will probably reject that, so we'll need to add support > to dtschema. Maybe it should be a new definition to reference. > Ah OK, I will try that and ask for help if I am stuck as I am still trying to learn these, not there yet 😄 > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > + ffa { > > + compatible = "arm,ffa-1.0"; > > + > > + ffa_partition0 { > > + compatible = "arm,ffa-1.0-partition"; > > + uuid = "12345678-9abc-def0-1234-56789abcdef0"; > > + }; > > + }; > > This could all be simplified down to just a single property: > Thanks for the suggestion, I would love this to force spec authors to stop relying on DT and add whatever needed in future to the spec as part of discovery APIs. > arm,ffa-partitions = "12345678-9abc-def0-1234-56789abcdef0", > "12345678-9abc-def0-1234-56789abcdef1" > "12345678-9abc-def0-1234-56789abcdef2"; > > Obviously, that's not extensible, but do we need it to be? > I prefer if we don't, but I will run this through spec authors so that they are aware of what we will do in DT which means they *have* to incorporate any future needs into the spec discovery apis. Ah I forgot the spec author is cc-ed. @Achin please shout if you see issues with this approach. -- Regards, Sudeep 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 X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 05C1BC4361B for ; Wed, 16 Dec 2020 12:27:32 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 94B10230FA for ; Wed, 16 Dec 2020 12:27:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 94B10230FA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject: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=7o4SsSoMsZItB8nBTEl5U+OeKBUXeFElouDAknU9t48=; b=WdZEjRJa+L3zxWyjKV/Rx0iu/ dcDiLd/M3fkyEROYfkP/i6HOM5/Im3XIJjbBtrN4gG2uNe2Q1BzaL7s0X9ORQjrgBDBCbanUlQKn5 YZIGmIPWq7vFHY/HlhkmdQlkifiU9QGBuoTJL0nPtoESQ8gAmnvvvhiP4ZzUUYp9Pelq5tdpwF4oQ O6YT+bpCMUZwAwHSIdJE9KSP3znN2e6vSAn0hkz97Pijtab869KoIY+FCZj5n3Jh+N9ysYvMD2dMC CHFo9RpM4b+sVwAcf+dN7jmAKmGzN6bwfHs2ByBxsUWKHGtiiSQS8ThJPOJg4bl/dXuFuW/7FtHt5 IIXCqUkoQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kpVsO-0003XG-Ak; Wed, 16 Dec 2020 12:25:53 +0000 Received: from foss.arm.com ([217.140.110.172]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kpVr0-0002tN-9N for linux-arm-kernel@lists.infradead.org; Wed, 16 Dec 2020 12:24:33 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id A3AA01FB; Wed, 16 Dec 2020 04:24:13 -0800 (PST) Received: from bogus (unknown [10.57.54.168]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 08A113F66E; Wed, 16 Dec 2020 04:24:10 -0800 (PST) Date: Wed, 16 Dec 2020 12:24:08 +0000 From: Sudeep Holla To: Rob Herring Subject: Re: [PATCH v3 1/7] dt-bindings: Arm: Add Firmware Framework for Armv8-A (FF-A) binding Message-ID: <20201216122408.2fhubdyqm2ofpgc3@bogus> References: <20201204121137.2966778-1-sudeep.holla@arm.com> <20201204121137.2966778-2-sudeep.holla@arm.com> <20201214220107.GA2430387@robh.at.kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20201214220107.GA2430387@robh.at.kernel.org> User-Agent: NeoMutt/20171215 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201216_072426_562674_0F0FD219 X-CRM114-Status: GOOD ( 30.19 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Trilok Soni , devicetree@vger.kernel.org, David Hartley , Andrew Walbran , Achin Gupta , arve@android.com, Sudeep Holla , Arunachalam Ganapathy , Jens Wiklander , linux-arm-kernel@lists.infradead.org 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 T24gTW9uLCBEZWMgMTQsIDIwMjAgYXQgMDQ6MDE6MDdQTSAtMDYwMCwgUm9iIEhlcnJpbmcgd3Jv dGU6Cj4gT24gRnJpLCBEZWMgMDQsIDIwMjAgYXQgMTI6MTE6MzFQTSArMDAwMCwgU3VkZWVwIEhv bGxhIHdyb3RlOgo+ID4gU2luY2UgdGhlIEZGLUEgdjEuMCBzcGVjaWZpY2F0aW9uIGRvZXNuJ3Qg bGlzdCB0aGUgVVVJRCBvZiBhbGwgdGhlCj4gPiBwYXJ0aXRpb25zIGluIHRoZSBkaXNjb3Zlcnkg QVBJLCB3ZSBuZWVkIHRvIHNwZWNpZnkgdGhlIFVVSUQgb2YgdGhlCj4gPiBwYXJ0aXRpb25zIHRo YXQgbmVlZCB0byBiZSBhY2Nlc3NlZCBieSBkcml2ZXJzIHdpdGhpbiB0aGUga2VybmVsLgo+ID4g Cj4gPiBUaGlzIGJpbmRpbmcgdG8gcHJvdmlkZSB0aGUgbGlzdCBvZiBwYXJ0aXRpb25zIHRoYXQg a2VybmVsIGRyaXZlcnMKPiA+IG1heSBuZWVkIHRvIGFjY2Vzcy4KPiA+IAo+ID4gU2lnbmVkLW9m Zi1ieTogU3VkZWVwIEhvbGxhIDxzdWRlZXAuaG9sbGFAYXJtLmNvbT4KPiA+IC0tLQo+ID4gIC4u Li9kZXZpY2V0cmVlL2JpbmRpbmdzL2FybS9hcm0sZmZhLnlhbWwgICAgICB8IDU4ICsrKysrKysr KysrKysrKysrKysKPiA+ICAxIGZpbGUgY2hhbmdlZCwgNTggaW5zZXJ0aW9ucygrKQo+ID4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2Fy bSxmZmEueWFtbAo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVl L2JpbmRpbmdzL2FybS9hcm0sZmZhLnlhbWwgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmlu ZGluZ3MvYXJtL2FybSxmZmEueWFtbAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4 IDAwMDAwMDAwMDAwMC4uYTAxNGE1ODAxYzM0Cj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2FybSxmZmEueWFtbAo+ID4gQEAg LTAsMCArMSw1OCBAQAo+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IChHUEwtMi4wLW9u bHkgT1IgQlNELTItQ2xhdXNlKQo+ID4gKyVZQU1MIDEuMgo+ID4gKy0tLQo+ID4gKyRpZDogaHR0 cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvYXJtL2FybSxmZmEueWFtbCMKPiA+ICskc2NoZW1h OiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKPiA+ICsKPiA+ ICt0aXRsZTogQXJtIEZpcm13YXJlIEZyYW1ld29yayBmb3IgQXJtIHY4LUEgKGluLWtlcm5lbCB1 c2VycykKPiA+ICsKPiA+ICttYWludGFpbmVyczoKPiA+ICsgIC0gU3VkZWVwIEhvbGxhIDxzdWRl ZXAuaG9sbGFAYXJtLmNvbT4KPiA+ICsKPiA+ICtkZXNjcmlwdGlvbjogfAo+ID4gKyAgRmlybXdh cmUgZnJhbWV3b3JrcyBpbXBsZW1lbnRpbmcgcGFydGl0aW9uIGFjY29yZGluZyB0byB0aGUgRkYt QQo+ID4gKyAgc3BlY2lmaWNhdGlvbiBkZWZpbmVkIGJ5IEFSTSBkb2N1bWVudCBudW1iZXIgQVJN IERFTiAwMDc3QSAoIkFybSBGaXJtd2FyZQo+ID4gKyAgRnJhbWV3b3JrIGZvciBBcm0gdjgtQSIp IFswXSwgcHJvdmlkaW5nIHNlcnZpY2VzIHRvIGJlIHVzZWQgYnkgb3RoZXIKPiA+ICsgIHBhcnRp dGlvbnMuCj4gPiArCj4gPiArICBbMF0gaHR0cHM6Ly9kZXZlbG9wZXIuYXJtLmNvbS9kb2NzL2Rl bjAwNzcvbGF0ZXN0Cj4gPiArCj4gPiArcHJvcGVydGllczoKPiA+ICsgICRub2RlbmFtZToKPiA+ ICsgICAgY29uc3Q6IGZmYQo+ID4gKwo+ID4gKyAgY29tcGF0aWJsZToKPiA+ICsgICAgb25lT2Y6 Cj4gPiArICAgICAgLSBjb25zdDogYXJtLGZmYS0xLjAKPiA+ICsKPiA+ICtwYXR0ZXJuUHJvcGVy dGllczoKPiA+ICsgICJeZmZhX3BhcnRpdGlvblswLTldKyQiOgo+ID4gKyAgICB0eXBlOiBvYmpl Y3QKPiA+ICsgICAgZGVzY3JpcHRpb246IE9uZSBvciBtb3JlIGNoaWxkIG5vZGVzLCBlYWNoIGRl c2NyaWJpbmcgYW4gRkZBIHBhcnRpdGlvbi4KPiA+ICsgICAgcHJvcGVydGllczoKPiA+ICsgICAg ICAkbm9kZW5hbWU6Cj4gPiArICAgICAgICBjb25zdDogZmZhX3BhcnRpdGlvbgo+ID4gKwo+ID4g KyAgICAgIGNvbXBhdGlibGU6Cj4gPiArICAgICAgICBvbmVPZjoKPiA+ICsgICAgICAgICAgLSBj b25zdDogYXJtLGZmYS0xLjAtcGFydGl0aW9uCj4gPiArCj4gPiArICAgICAgdXVpZDoKPiA+ICsg ICAgICAgICRyZWY6ICcvc2NoZW1hcy90eXBlcy55YW1sI2RlZmluaXRpb25zL3N0cmluZycKPiA+ ICsgICAgICAgIGRlc2NyaXB0aW9uOiB8Cj4gPiArICAgICAgICAgIFRoZSAxMjgtYml0IFVVSUQg WzJdIG9mIHRoZSBzZXJ2aWNlIGltcGxlbWVudGVkIGJ5IHRoaXMgcGFydGl0aW9uLgo+ID4gKwo+ ID4gKyAgICAgICAgICBbMl0gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQxMjIKPiAK PiBVVUlEcyBhcmUgYWN0dWFsbHkgYSBrbm93biB0aGluZyBpbiBqc29uLXNjaGVtYSB3aXRoICdm b3JtYXQ6IHV1aWQnLiAKPiBUaGUgbWV0YS1zY2hlbWEgd2lsbCBwcm9iYWJseSByZWplY3QgdGhh dCwgc28gd2UnbGwgbmVlZCB0byBhZGQgc3VwcG9ydCAKPiB0byBkdHNjaGVtYS4gTWF5YmUgaXQg c2hvdWxkIGJlIGEgbmV3IGRlZmluaXRpb24gdG8gcmVmZXJlbmNlLgo+CgpBaCBPSywgSSB3aWxs IHRyeSB0aGF0IGFuZCBhc2sgZm9yIGhlbHAgaWYgSSBhbSBzdHVjayBhcyBJIGFtIHN0aWxsIHRy eWluZwp0byBsZWFybiB0aGVzZSwgbm90IHRoZXJlIHlldCDwn5iEIAoKPiA+ICsKPiA+ICthZGRp dGlvbmFsUHJvcGVydGllczogZmFsc2UKPiA+ICsKPiA+ICtleGFtcGxlczoKPiA+ICsgIC0gfAo+ ID4gKyAgICBmZmEgewo+ID4gKyAgICAgIGNvbXBhdGlibGUgPSAiYXJtLGZmYS0xLjAiOwo+ID4g Kwo+ID4gKyAgICAgIGZmYV9wYXJ0aXRpb24wIHsKPiA+ICsgICAgICAgIGNvbXBhdGlibGUgPSAi YXJtLGZmYS0xLjAtcGFydGl0aW9uIjsKPiA+ICsgICAgICAgIHV1aWQgPSAiMTIzNDU2NzgtOWFi Yy1kZWYwLTEyMzQtNTY3ODlhYmNkZWYwIjsKPiA+ICsgICAgICB9Owo+ID4gKyAgICB9Owo+Cj4g VGhpcyBjb3VsZCBhbGwgYmUgc2ltcGxpZmllZCBkb3duIHRvIGp1c3QgYSBzaW5nbGUgcHJvcGVy dHk6Cj4KClRoYW5rcyBmb3IgdGhlIHN1Z2dlc3Rpb24sIEkgd291bGQgbG92ZSB0aGlzIHRvIGZv cmNlIHNwZWMgYXV0aG9ycyB0bwpzdG9wIHJlbHlpbmcgb24gRFQgYW5kIGFkZCB3aGF0ZXZlciBu ZWVkZWQgaW4gZnV0dXJlIHRvIHRoZSBzcGVjIGFzIHBhcnQKb2YgZGlzY292ZXJ5IEFQSXMuCgo+ IGFybSxmZmEtcGFydGl0aW9ucyA9ICIxMjM0NTY3OC05YWJjLWRlZjAtMTIzNC01Njc4OWFiY2Rl ZjAiLCAKPiAJIjEyMzQ1Njc4LTlhYmMtZGVmMC0xMjM0LTU2Nzg5YWJjZGVmMSIKPiAJIjEyMzQ1 Njc4LTlhYmMtZGVmMC0xMjM0LTU2Nzg5YWJjZGVmMiI7Cj4KPiBPYnZpb3VzbHksIHRoYXQncyBu b3QgZXh0ZW5zaWJsZSwgYnV0IGRvIHdlIG5lZWQgaXQgdG8gYmU/Cj4KCkkgcHJlZmVyIGlmIHdl IGRvbid0LCBidXQgSSB3aWxsIHJ1biB0aGlzIHRocm91Z2ggc3BlYyBhdXRob3JzIHNvIHRoYXQK dGhleSBhcmUgYXdhcmUgb2Ygd2hhdCB3ZSB3aWxsIGRvIGluIERUIHdoaWNoIG1lYW5zIHRoZXkg KmhhdmUqIHRvCmluY29ycG9yYXRlIGFueSBmdXR1cmUgbmVlZHMgaW50byB0aGUgc3BlYyBkaXNj b3ZlcnkgYXBpcy4KCkFoIEkgZm9yZ290IHRoZSBzcGVjIGF1dGhvciBpcyBjYy1lZC4gQEFjaGlu IHBsZWFzZSBzaG91dCBpZiB5b3Ugc2VlCmlzc3VlcyB3aXRoIHRoaXMgYXBwcm9hY2guCgotLQpS ZWdhcmRzLApTdWRlZXAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LWFybS1rZXJuZWwK