From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Turquette Subject: Re: [PATCH v4] xen/arm: Add a clock property Date: Wed, 13 Jul 2016 14:03:29 -0700 Message-ID: <146844380895.73491.4867379517577413421__26610.4483548135$1468443900$gmane$org@resonance> References: <1468309605-19522-1-git-send-email-dirk.behme@de.bosch.com> <146836236759.73491.11707389619985827497@resonance> <57868EDE.6060406@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bNRJe-0005ai-Te for xen-devel@lists.xenproject.org; Wed, 13 Jul 2016 21:03:35 +0000 Received: by mail-pf0-f175.google.com with SMTP id c2so22345687pfa.2 for ; Wed, 13 Jul 2016 14:03:32 -0700 (PDT) In-Reply-To: <57868EDE.6060406@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Dirk Behme , Stefano Stabellini Cc: Mark Rutland , devicetree@vger.kernel.org, Dirk Behme , Stephen Boyd , Julien Grall , xen-devel@lists.xenproject.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: xen-devel@lists.xenproject.org UXVvdGluZyBEaXJrIEJlaG1lICgyMDE2LTA3LTEzIDExOjU2OjMwKQo+IE9uIDEzLjA3LjIwMTYg MjA6NDMsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90ZToKPiA+IE9uIFdlZCwgMTMgSnVsIDIwMTYs IERpcmsgQmVobWUgd3JvdGU6Cj4gPj4gT24gMTMuMDcuMjAxNiAwMDoyNiwgTWljaGFlbCBUdXJx dWV0dGUgd3JvdGU6Cj4gPj4+IFF1b3RpbmcgRGlyayBCZWhtZSAoMjAxNi0wNy0xMiAwMDo0Njo0 NSkKPiA+Pj4+IENsb2NrcyBkZXNjcmliZWQgYnkgdGhpcyBwcm9wZXJ0eSBhcmUgcmVzZXJ2ZWQg Zm9yIHVzZSBieSBYZW4sIGFuZCB0aGUgT1MKPiA+Pj4+IG11c3Qgbm90IGFsdGVyIHRoZWlyIHN0 YXRlIGFueSB3YXksIHN1Y2ggYXMgZGlzYWJsaW5nIG9yIGdhdGluZyBhIGNsb2NrLAo+ID4+Pj4g b3IgbW9kaWZ5aW5nIGl0cyByYXRlLiBFbnN1cmluZyB0aGlzIG1heSBpbXBvc2UgY29uc3RyYWlu dHMgb24gcGFyZW50Cj4gPj4+PiBjbG9ja3Mgb3Igb3RoZXIgcmVzb3VyY2VzIHVzZWQgYnkgdGhl IGNsb2NrIHRyZWUuCj4gPj4+Cj4gPj4+IE5vdGUgdGhhdCBjbGtfcHJlcGFyZV9lbmFibGUgd2ls bCBub3QgcHJldmVudCB0aGUgcmF0ZSBmcm9tIGNoYW5naW5nCj4gPj4+IChjbGtfc2V0X3JhdGUp IG9yIGEgcGFyZW50IGZyb20gY2hhbmdpbmcgKGNsa19zZXRfcGFyZW50KS4gVGhlIG9ubHkgd2F5 Cj4gPj4+IHRvIGRvIHRoaXMgY3VycmVudGx5IHdvdWxkIGJlIHRvIHNldCB0aGUgZm9sbG93aW5n IGZsYWdzIG9uIHRoZSBlZmZlY3RlZAo+ID4+PiBjbG9ja3M6Cj4gPj4+Cj4gPj4+ICAgICBDTEtf U0VUX1JBVEVfR0FURQo+ID4+PiAgICAgQ0xLX1NFVF9QQVJFTlRfR0FURQo+ID4+Cj4gPj4KPiA+ Pgo+ID4+IFJlZ2FyZGluZyBzZXR0aW5nIGZsYWdzLCBJIHRoaW5rIHdlIGFscmVhZHkgdGFsa2Vk IGFib3V0IHRoYXQuIEkgdGhpbmsgdGhlCj4gPj4gY29uY2x1c2lvbiB3YXMgdGhhdCBpbiBvdXIg Y2FzZSBpdHMgbm90IHBvc3NpYmxlIHRvIG1hbmlwdWxhdGUgdGhlIGZsYWdzIGluCj4gPj4gdGhl IE9TIGFzIHRoaXMgaXNuJ3QgaW50ZW5kZWQgdG8gYmUgZG9uZSBpbiBjYXNlcyBsaWtlIG91cnMu IFRoZXJlZm9yZSBubyBBUEkKPiA+PiBpcyBleHBvcnRlZCBmb3IgdGhpcy4KPiA+Pgo+ID4+IEku ZS4gaWYgd2UgbmVlZCB0byBzZXQgdGhlc2UgZmxhZ3MsIHdlIGhhdmUgdG8gZG8gdGhhdCBpbiBY ZW4gd2hlcmUgd2UgYWRkIHRoZQo+ID4+IGNsb2NrcyB0byB0aGUgaHlwZXJ2aXNvciBub2RlIGlu IHRoZSBkZXZpY2UgdHJlZS4gQW5kIG5vdCBpbiB0aGUga2VybmVsIHBhdGNoCj4gPj4gZGlzY3Vz c2VkIGhlcmUuCj4gPgo+ID4gVGhlc2UgYXJlIGludGVybmFsIExpbnV4IGZsYWdzLCBhcmVuJ3Qg dGhleT8KPiAKPiAKPiBJJ3ZlIGJlZW4gdW5kZXIgdGhlIGltcHJlc3Npb24gdGhhdCB5b3UgY2Fu IHNldCBjbG9jayAiZmxhZ3MiIHZpYSB0aGUgCj4gZGV2aWNlIHRyZWUuIFNlZW1zIEkgbmVlZCB0 byByZS1jaGVjayB0aGF0IDspCgpSaWdodCwgeW91IGNhbm5vdCBzZXQgZmxhZ3MgZnJvbSB0aGUg ZGV2aWNlIHRyZWUuIEFsc28sIHNldHRpbmcgdGhlc2UKZmxhZ3MgaXMgZG9uZSBieSB0aGUgY2xv Y2sgcHJvdmlkZXIgZHJpdmVyLCBub3QgYSBjb25zdW1lci4gWGVuIGlzIHRoZQpjb25zdW1lci4K ClJlZ2FyZHMsCk1pa2UKCj4gCj4gQmVzdCByZWdhcmRzCj4gCj4gRGlyawo+IAo+IAo+ID4gVGhl eSBjYW5ub3QgYmUgc2V0IGluIFhlbi4KPiA+Cj4gPiBJZiB0aGUgb25seSB3YXkgdG8gbWFrZSBz dXJlIHRoYXQgY2xrX3NldF9yYXRlIGFuZCBjbGtfc2V0X3BhcmVudCBmYWlsCj4gPiBvbiBvbmUg b2YgdGhlIGNsb2NrcyAib3duZWQiIGJ5IFhlbiBpcyB0byBzZXQgQ0xLX1NFVF9SQVRFX0dBVEUg YW5kCj4gPiBDTEtfU0VUX1BBUkVOVF9HQVRFLCB3ZSdsbCBoYXZlIHRvIGRvIHRoYXQuIEV2ZW4g aWYgaXQgbWVhbnMgaW50cm9kdWNpbmcKPiA+IGEgbmV3IGludGVybmFsIExpbnV4IEFQSS4KPiA+ Cj4gPgo+ID4+PiBBbmQgdGhlbiBlbmFibGUgdGhlIGNsb2Nrcy4gQWxsIGNhbGxzIHRvIGNsa19z ZXRfcGFyZW50IGFuZCBjbGtfc2V0X3JhdGUKPiA+Pj4gd2l0aCB0aG9zZSBjbG9ja3MgaW4gdGhl IHBhdGggd2lsbCBmYWlsLCBzbyBsb25nIGFzIHRoZXkgYXJlIHByZXBhcmVkCj4gPj4+IGFuZCBl bmFibGVkLiBUaGlzIGltcGxlbWVudGF0aW9uIGRldGFpbCBpcyBzcGVjaWZpYyB0byBMaW51eCBh bmQKPiA+Pj4gZGVmaW5pdGVseSBzaG91bGQgbm90IGdvIGludG8gdGhlIGJpbmRpbmcuCj4gPj4+ Cj4gPj4+Pgo+ID4+Pj4gVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIHRvIHByb3h5IGNsb2NrcyBmb3Ig ZGV2aWNlcyBYZW4gaGFzIHRha2VuIG93bmVyc2hpcAo+ID4+Pj4gb2YsIHN1Y2ggYXMgVUFSVHMs IGZvciB3aGljaCB0aGUgYXNzb2NpYXRlZCBjbG9jayBjb250cm9sbGVyKHMpIHJlbWFpbgo+ID4+ Pj4gdW5kZXIgdGhlIGNvbnRyb2wgb2YgRG9tMC4KPiA+Pj4KPiA+Pj4gSSdtIHN0aWxsIG5vdCBj b21wbGV0ZWx5IHN1cmUgYWJvdXQgdGhpcyB0eXBlIG9mIGxheWVyaW5nIGFuZCB3aGV0aGVyIG9y Cj4gPj4+IG5vdCBpdCBpcyBzYW5lLiBJZiB5b3Ugd2FudCBYZW4gdG8gbWFuYWdlIHRoZSBjbG9j ayBjb250cm9sbGVyLCBBTkQgeW91Cj4gPj4+IHdhbnQgTGludXggZ3Vlc3RzIG9yIGRvbTAgdG8g Y29uc3VtZSB0aG9zZSBjbG9ja3MgYW5kIG1hbmlwdWxhdGUgdGhlbSBpbgo+ID4+PiBvdGhlciBk cml2ZXJzLCB0aGVuIHRoaXMgc29sdXRpb24gd29uJ3Qgd29yay4KPiA+Pj4KPiA+Pj4gUmVnYXJk cywKPiA+Pj4gTWlrZQo+ID4+Pgo+ID4+Pj4KPiA+Pj4+IFVwIHRvIG5vdywgdGhlIHdvcmthcm91 bmQgZm9yIHRoaXMgaGFzIGJlZW4gdG8gdXNlIHRoZSBMaW51eCBrZXJuZWwKPiA+Pj4+IGNvbW1h bmQgbGluZSBwYXJhbWV0ZXIgJ2Nsa19pZ25vcmVfdW51c2VkJy4gU2VlIFhlbiBidWcKPiA+Pj4+ Cj4gPj4+PiBodHRwOi8vYnVncy54ZW5wcm9qZWN0Lm9yZy94ZW4vYnVnLzQ1Cj4gPj4+Pgo+ID4+ Pj4gdG9vLgo+ID4+Pj4KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRpcmsuYmVo bWVAZGUuYm9zY2guY29tPgo+ID4+Pj4gLS0tCj4gPj4+PiBDaGFuZ2VzIGluIHY0OiBTd2l0Y2gg dG8gdGhlIHhlbi50eHQgZGVzY3JpcHRpb24gcHJvcG9zZWQgYnkgTWFyazoKPiA+Pj4+ICAgICAg ICAgICAgICAgICBodHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9hcm0ta2VybmVsL21zZzUx NjE1OC5odG1sCj4gPj4+Pgo+ID4+Pj4gQ2hhbmdlcyBpbiB2MzogVXNlIHRoZSB4ZW4udHh0IGRl c2NyaXB0aW9uIHByb3Bvc2VkIGJ5IE1pY2hhZWwuIFRoYW5rcyEKPiA+Pj4+Cj4gPj4+PiBDaGFu Z2VzIGluIHYyOiBEcm9wIHRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGxpa2UKPiA+ Pj4+IGNsa19kaXNhYmxlX3VudXNlZAo+ID4+Pj4gICAgICAgICAgICAgICAgIGluIHhlbi50eHQu Cj4gPj4+Pgo+ID4+Pj4gICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3hl bi50eHQgfCAxMiArKysrKysrCj4gPj4+PiAgIGFyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYyAgICAg ICAgICAgICAgICAgICAgICB8IDQ3Cj4gPj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysK PiA+Pj4+ICAgMiBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspCj4gPj4+Pgo+ID4+Pj4g ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0veGVuLnR4 dAo+ID4+Pj4gYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3hlbi50eHQK PiA+Pj4+IGluZGV4IGM5YjkzMjEuLjQzN2U1MGIgMTAwNjQ0Cj4gPj4+PiAtLS0gYS9Eb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3hlbi50eHQKPiA+Pj4+ICsrKyBiL0RvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0veGVuLnR4dAo+ID4+Pj4gQEAgLTE3LDYg KzE3LDE4IEBAIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKPiA+Pj4+ICAgICBBIEdJQyBub2Rl IGlzIGFsc28gcmVxdWlyZWQuCj4gPj4+PiAgICAgVGhpcyBwcm9wZXJ0eSBpcyB1bm5lY2Vzc2Fy eSB3aGVuIGJvb3RpbmcgRG9tMCB1c2luZyBBQ1BJLgo+ID4+Pj4KPiA+Pj4+ICtPcHRpb25hbCBw cm9wZXJ0aWVzOgo+ID4+Pj4gKwo+ID4+Pj4gKy0gY2xvY2tzOiBhIGxpc3Qgb2YgcGhhbmRsZSAr IGNsb2NrLXNwZWNpZmllciBwYWlycwo+ID4+Pj4gKyAgQ2xvY2tzIGRlc2NyaWJlZCBieSB0aGlz IHByb3BlcnR5IGFyZSByZXNlcnZlZCBmb3IgdXNlIGJ5IFhlbiwgYW5kIHRoZQo+ID4+Pj4gKyAg T1MgbXVzdCBub3QgYWx0ZXIgdGhlaXIgc3RhdGUgYW55IHdheSwgc3VjaCBhcyBkaXNhYmxpbmcg b3IgZ2F0aW5nIGEKPiA+Pj4+ICsgIGNsb2NrLCBvciBtb2RpZnlpbmcgaXRzIHJhdGUuIEVuc3Vy aW5nIHRoaXMgbWF5IGltcG9zZSBjb25zdHJhaW50cyBvbgo+ID4+Pj4gKyAgcGFyZW50IGNsb2Nr cyBvciBvdGhlciByZXNvdXJjZXMgdXNlZCBieSB0aGUgY2xvY2sgdHJlZS4KPiA+Pj4+ICsKPiA+ Pj4+ICsgIE5vdGU6IHRoaXMgcHJvcGVydHkgaXMgdXNlZCB0byBwcm94eSBjbG9ja3MgZm9yIGRl dmljZXMgWGVuIGhhcyB0YWtlbgo+ID4+Pj4gKyAgb3duZXJzaGlwIG9mLCBzdWNoIGFzIFVBUlRz LCBmb3Igd2hpY2ggdGhlIGFzc29jaWF0ZWQgY2xvY2sKPiA+Pj4+ICsgIGNvbnRyb2xsZXIocykg cmVtYWluIHVuZGVyIHRoZSBjb250cm9sIG9mIERvbTAuCj4gPj4+PiArCj4gPj4+PiAgIFRvIHN1 cHBvcnQgVUVGSSBvbiBYZW4gQVJNIHZpcnR1YWwgcGxhdGZvcm1zLCBYZW4gcG9wdWxhdGVzIHRo ZSBGRFQKPiA+Pj4+ICJ1ZWZpIiBub2RlCj4gPj4+PiAgIHVuZGVyIC9oeXBlcnZpc29yIHdpdGgg Zm9sbG93aW5nIHBhcmFtZXRlcnM6Cj4gPj4+Pgo+ID4+Pj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJt L3hlbi9lbmxpZ2h0ZW4uYyBiL2FyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYwo+ID4+Pj4gaW5kZXgg NDdhY2IzNi4uNWM1NDZkMCAxMDA2NDQKPiA+Pj4+IC0tLSBhL2FyY2gvYXJtL3hlbi9lbmxpZ2h0 ZW4uYwo+ID4+Pj4gKysrIGIvYXJjaC9hcm0veGVuL2VubGlnaHRlbi5jCj4gPj4+PiBAQCAtMjQs NiArMjQsNyBAQAo+ID4+Pj4gICAjaW5jbHVkZSA8bGludXgvb2ZfZmR0Lmg+Cj4gPj4+PiAgICNp bmNsdWRlIDxsaW51eC9vZl9pcnEuaD4KPiA+Pj4+ICAgI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJl c3MuaD4KPiA+Pj4+ICsjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+Cj4gPj4+PiAgICNp bmNsdWRlIDxsaW51eC9jcHVpZGxlLmg+Cj4gPj4+PiAgICNpbmNsdWRlIDxsaW51eC9jcHVmcmVx Lmg+Cj4gPj4+PiAgICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KPiA+Pj4+IEBAIC00NDQsNiArNDQ1 LDUyIEBAIHN0YXRpYyBpbnQgX19pbml0IHhlbl9wbV9pbml0KHZvaWQpCj4gPj4+PiAgIH0KPiA+ Pj4+ICAgbGF0ZV9pbml0Y2FsbCh4ZW5fcG1faW5pdCk7Cj4gPj4+Pgo+ID4+Pj4gKy8qCj4gPj4+ PiArICogQ2hlY2sgaWYgd2Ugd2FudCB0byByZWdpc3RlciBzb21lIGNsb2NrcywgdGhhdCB0aGV5 Cj4gPj4+PiArICogYXJlIG5vdCBmcmVlZCBiZWNhdXNlIHVudXNlZCBieSBjbGtfZGlzYWJsZV91 bnVzZWQoKS4KPiA+Pj4+ICsgKiBFLmcuIHRoZSBzZXJpYWwgY29uc29sZSBjbG9jay4KPiA+Pj4+ ICsgKi8KPiA+Pj4+ICtzdGF0aWMgaW50IF9faW5pdCB4ZW5fYXJtX3JlZ2lzdGVyX2Nsa3Modm9p ZCkKPiA+Pj4+ICt7Cj4gPj4+PiArICAgICAgIHN0cnVjdCBjbGsgKmNsazsKPiA+Pj4+ICsgICAg ICAgc3RydWN0IGRldmljZV9ub2RlICp4ZW5fbm9kZTsKPiA+Pj4+ICsgICAgICAgdW5zaWduZWQg aW50IGksIGNvdW50Owo+ID4+Pj4gKyAgICAgICBpbnQgcmV0ID0gMDsKPiA+Pj4+ICsKPiA+Pj4+ ICsgICAgICAgeGVuX25vZGUgPSBvZl9maW5kX2NvbXBhdGlibGVfbm9kZShOVUxMLCBOVUxMLCAi eGVuLHhlbiIpOwo+ID4+Pj4gKyAgICAgICBpZiAoIXhlbl9ub2RlKSB7Cj4gPj4+PiArICAgICAg ICAgICAgICAgcHJfZXJyKCJYZW4gc3VwcG9ydCB3YXMgZGV0ZWN0ZWQgYmVmb3JlLCBidXQgaXQg aGFzCj4gPj4+PiBkaXNhcHBlYXJlZFxuIik7Cj4gPj4+PiArICAgICAgICAgICAgICAgcmV0dXJu IC1FSU5WQUw7Cj4gPj4+PiArICAgICAgIH0KPiA+Pj4+ICsKPiA+Pj4+ICsgICAgICAgY291bnQg PSBvZl9jbGtfZ2V0X3BhcmVudF9jb3VudCh4ZW5fbm9kZSk7Cj4gPj4+PiArICAgICAgIGlmICgh Y291bnQpCj4gPj4+PiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gPj4+PiArCj4gPj4+PiAr ICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Cj4gPj4+PiArICAgICAgICAgICAg ICAgY2xrID0gb2ZfY2xrX2dldCh4ZW5fbm9kZSwgaSk7Cj4gPj4+PiArICAgICAgICAgICAgICAg aWYgKElTX0VSUihjbGspKSB7Cj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICBwcl9lcnIo IlhlbiBmYWlsZWQgdG8gcmVnaXN0ZXIgY2xvY2sgJWkuIEVycm9yOgo+ID4+Pj4gJWxpXG4iLAo+ ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIFBUUl9FUlIoY2xrKSk7Cj4g Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBQVFJfRVJSKGNsayk7Cj4gPj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKPiA+Pj4+ICsgICAgICAgICAgICAgICB9 Cj4gPj4+PiArCj4gPj4+PiArICAgICAgICAgICAgICAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxl KGNsayk7Cj4gPj4+PiArICAgICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKPiA+Pj4+ICsgICAg ICAgICAgICAgICAgICAgICAgIHByX2VycigiWGVuIGZhaWxlZCB0byBlbmFibGUgY2xvY2sgJWku IEVycm9yOgo+ID4+Pj4gJWlcbiIsCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaSwgcmV0KTsKPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ID4+ Pj4gKyAgICAgICAgICAgICAgIH0KPiA+Pj4+ICsgICAgICAgfQo+ID4+Pj4gKwo+ID4+Pj4gKyAg ICAgICByZXQgPSAwOwo+ID4+Pj4gKwo+ID4+Pj4gK291dDoKPiA+Pj4+ICsgICAgICAgb2Zfbm9k ZV9wdXQoeGVuX25vZGUpOwo+ID4+Pj4gKyAgICAgICByZXR1cm4gcmV0Owo+ID4+Pj4gK30KPiA+ Pj4+ICtsYXRlX2luaXRjYWxsKHhlbl9hcm1fcmVnaXN0ZXJfY2xrcyk7Cj4gPj4+Pgo+ID4+Pj4g ICAvKiBlbXB0eSBzdHVicyAqLwo+ID4+Pj4gICB2b2lkIHhlbl9hcmNoX3ByZV9zdXNwZW5kKHZv aWQpIHsgfQo+ID4+Pj4gLS0KPiA+Pgo+ID4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPiBYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBYZW4t ZGV2ZWxAbGlzdHMueGVuLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo+ ID4KPiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=