From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 4/5] drm: Add support for handling linear tile formats Date: Thu, 23 Aug 2018 17:30:36 +0300 Message-ID: <20180823143036.GE5565@intel.com> References: <20180821183004.6775-1-alexandru-cosmin.gheorghe@arm.com> <20180821183004.6775-5-alexandru-cosmin.gheorghe@arm.com> <20180822131854.GC5565@intel.com> <20180822133606.GA11029@e114479-lin.cambridge.arm.com> <20180822134534.GD5565@intel.com> <20180822140524.GA9605@e114479-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 690A66E511 for ; Thu, 23 Aug 2018 14:30:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Ayan Kumar Halder , Dave Airlie , Alexandru-Cosmin Gheorghe , Liviu Dudau , dri-devel , Sean Paul , Mali DP Maintainers , nd List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBBdWcgMjIsIDIwMTggYXQgMDk6NDg6MjlQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIEF1ZyAyMiwgMjAxOCBhdCA0OjA1IFBNLCBBbGV4YW5kcnUtQ29zbWlu IEdoZW9yZ2hlCj4gPEFsZXhhbmRydS1Db3NtaW4uR2hlb3JnaGVAYXJtLmNvbT4gd3JvdGU6Cj4g PiBPbiBXZWQsIEF1ZyAyMiwgMjAxOCBhdCAwNDo0NTozNFBNICswMzAwLCBWaWxsZSBTeXJqw6Rs w6Qgd3JvdGU6Cj4gPj4gT24gV2VkLCBBdWcgMjIsIDIwMTggYXQgMDI6MzY6MDZQTSArMDEwMCwg QWxleGFuZHJ1LUNvc21pbiBHaGVvcmdoZSB3cm90ZToKPiA+PiA+IE9uIFdlZCwgQXVnIDIyLCAy MDE4IGF0IDA0OjE4OjU0UE0gKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+PiA+ID4g T24gVHVlLCBBdWcgMjEsIDIwMTggYXQgMDc6MzA6MDNQTSArMDEwMCwgQWxleGFuZHJ1IEdoZW9y Z2hlIHdyb3RlOgo+ID4+ID4gPiA+IFRoZSBwcmV2aW91cyBwYXRjaCBhZGRlZCB0aWxlX3cgYW5k IHRpbGVfaCwgd2hpY2ggcmVwcmVzZW50IHRoZQo+ID4+ID4gPiA+IGhvcml6b250YWwgYW5kIHZl cnRpY2FsIHNpemVzIG9mIGEgdGlsZS4KPiA+PiA+ID4gPgo+ID4+ID4gPiA+IFRoaXMgb25lIHVz ZXMgdGhhdCB0byBwbHVtYiB0aHJvdWdoIGRybSBjb3JlIGluIG9yZGVyIHRvIGJlIGFibGUgdG8K PiA+PiA+ID4gPiBoYW5kbGUgbGluZWFyIHRpbGUgZm9ybWF0cyB3aXRob3V0IHRoZSBuZWVkIGZv ciBkcml2ZXJzIHRvIHJvbGwgdXAKPiA+PiA+ID4gPiB0aGVpciBvd24gaW1wbGVtZW50YXRpb24u Cj4gPj4gPiA+ID4KPiA+PiA+ID4gPiBUaGlzIHBhdGNoIGhhZCBiZWVuIHdyaXR0ZW4gd2l0aCBN YWxpLWRwIFgwTDIgYW5kIFgwTDAgaW4gbWluZCB3aGljaAo+ID4+ID4gPiA+IGlzIGEgMSBwbGFu ZSBZQ2JDciA0MjAgZm9ybWF0IHdpdGggYSAyeDIgdGlsZSwgdGhhdCB1c2VzIGluIGF2ZXJhZ2Ug Mgo+ID4+ID4gPiA+IGJ5dGVzIHBlciBwaXhlbCBhbmQgd2hlcmUgdGlsZXMgYXJlIGxhaWQgb3V0 IGluIGEgbGluZWFyIG1hbm5lci4KPiA+PiA+ID4gPgo+ID4+ID4gPiA+IE5vdyB3aGF0IGFyZSB0 aGUgcmVzdHJpY3Rpb25zOgo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4gMS4gUGl0Y2ggaW4gYnl0ZXMg aXMgZXhwZWN0ZWQgdG8gY292ZXIgYXQgbGVhc3QgdGlsZV9oICogd2lkdGggaW4KPiA+PiA+ID4g PiBwaXhlbHMuIER1ZSB0byB0aGlzIHRoZSBwbGFjZXMgd2hlcmUgdGhlIHBpdGNoIGlzIGNoZWNr ZWQvdXNlZCBuZWVkIHRvCj4gPj4gPiA+ID4gYmUgdXBkYXRlZCB0byB0YWtlIGludG8gY29uc2lk ZXJhdGlvbiB0aGUgdGlsZV93LCB0aWxlX2ggYW5kCj4gPj4gPiA+ID4gdGlsZV9zaXplLgo+ID4+ ID4gPiA+ICAgICB0aWxlX3NpemUgPSBjcHAgKiB0aWxlX3cgKiB0aWxlX2gKPiA+PiA+ID4gPgo+ ID4+ID4gPiA+IDIuIFdoZW4gZG9pbmcgc291cmNlIGNyb3BwaW5nIHBsYW5lX3NyY194L3kgbmVl ZCB0byBiZSBhIG11bHRpcGxlIG9mCj4gPj4gPiA+ID4gdGlsZV93L3RpbGVfaCBhbmQgd2UgbmVl ZCB0byB0YWtlIGludG8gY29uc2lkZXJhdGlvbiB0aGUgdGlsZV93L3RpbGVfaAo+ID4+ID4gPiA+ IHdoZW4gY29tcHV0aW5nIHRoZSBzdGFydCBhZGRyZXNzLgo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4g Rm9yIGFsbCBub24tdGlsZWQgZm9ybWF0cyB0aGUgdGlsZV93IGFuZCB0aWxlX2ggd2lsbCBiZSAx LCBzbyBpZiBJCj4gPj4gPiA+ID4gZGlkbid0IG1pc3MgYW55dGhpbmcgbm90aGluZyBzaG91bGQg Y2hhbmdlLgo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4gUmVnYXJkaW5nIG11bHRpLXBsYW5hciBsaW5l YXIgdGlsZSBmb3JtYXRzLCBJJ20gbm90IHN1cmUgaG93IHRob3NlCj4gPj4gPiA+ID4gc2hvdWxk IGJlIGhhbmRsZSBJIGtpbmQgb2YgYXNzdW1lZCB0aGF0IHRpbGVfaC90aWxlX3cgd2lsbCBoYXZl IHRvIGJlCj4gPj4gPiA+ID4gZGl2aWRlZCBieSBob3Jpem9udGFsL3N1YnNhbXBsaW5nLiBBbnl3 YXksIEkgdGhpbmsgaXQncyBiZXN0IHRvIGp1c3QKPiA+PiA+ID4gPiBwdXQgYW4gd2FybmluZyBp biB0aGVyZSBhbmQgaGFuZGxlIGl0IHdoZW4gc29tZW9uZSB0cmllcyB0byBhZGQKPiA+PiA+ID4g PiBzdXBwb3J0IGZvciB0aGVtLgo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4gU2lnbmVkLW9mZi1ieTog QWxleGFuZHJ1IEdoZW9yZ2hlIDxhbGV4YW5kcnUtY29zbWluLmdoZW9yZ2hlQGFybS5jb20+Cj4g Pj4gPiA+ID4gLS0tCj4gPj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAg ICAgICAgICAgICAgIHwgIDggKysrCj4gPj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJf Y21hX2hlbHBlci5jICAgICAgICAgIHwgMTEgKysrKy0KPiA+PiA+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9mb3VyY2MuYyAgICAgICAgICAgICAgICAgfCA1MiArKysrKysrKysrKysrKysrKysr Kwo+ID4+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgICAgICAgICAg ICB8IDE5ICsrKysrLS0KPiA+PiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fZnJhbWVi dWZmZXJfaGVscGVyLmMgfCAxMCArKy0tCj4gPj4gPiA+ID4gIGluY2x1ZGUvZHJtL2RybV9mb3Vy Y2MuaCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKwo+ID4+ID4gPiA+ICA2IGZpbGVzIGNoYW5n ZWQsIDk0IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPj4gPiA+ID4KPiA+PiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKPiA+PiA+ID4gPiBpbmRleCAzZWIwNjFlMTFlMmUuLjdhM2U4OTNh NGNkMSAxMDA2NDQKPiA+PiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j Cj4gPj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4+ID4gPiA+ IEBAIC0xMDg3LDYgKzEwODcsMTQgQEAgc3RhdGljIGludCBkcm1fYXRvbWljX3BsYW5lX2NoZWNr KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ID4gPiA+ICAgICAgICAgICAgICAgICByZXR1 cm4gLUVOT1NQQzsKPiA+PiA+ID4gPiAgICAgICAgIH0KPiA+PiA+ID4gPgo+ID4+ID4gPiA+ICsg ICAgICAgLyogTWFrZSBzdXJlIHNvdXJjZSBjb29yZGluYXRlcyBhcmUgYSBtdWx0aXBsZSBvZiB0 aWxlIHNpemVzICovCj4gPj4gPiA+ID4gKyAgICAgICBpZiAoKHN0YXRlLT5zcmNfeCA+PiAxNikg JSBzdGF0ZS0+ZmItPmZvcm1hdC0+dGlsZV93IHx8Cj4gPj4gPiA+ID4gKyAgICAgICAgICAgKHN0 YXRlLT5zcmNfeSA+PiAxNikgJSBzdGF0ZS0+ZmItPmZvcm1hdC0+dGlsZV9oKSB7Cj4gPj4gPiA+ ID4gKyAgICAgICAgICAgICAgIERSTV9ERUJVR19BVE9NSUMoIltQTEFORTolZDolc10gU291cmNl IGNvb3JkaW5hdGVzIGRvIG5vdCBtZWV0IHRpbGUgcmVzdHJpY3Rpb25zIiwKPiA+PiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZS0+YmFzZS5pZCwgcGxhbmUtPm5h bWUpOwo+ID4+ID4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+PiA+ID4g PiArICAgICAgIH0KPiA+PiA+ID4KPiA+PiA+ID4gRmVlbHMgcmF0aGVyIHdyb25nIHRvIG1lIHRv IHB1dCBzdWNoIGhhcmR3YXJlIHNwZWNpZmljIGxpbWl0YXRpb25zIGludG8KPiA+PiA+ID4gdGhl IGNvcmUuCj4gPj4gPgo+ID4+ID4gWWVhaCwgdGhlIHByb2JsZW0gaXMgdGhhdCBvdGhlcndpc2Ug ZHJtX2ZiX2NtYV9nZXRfZ2VtX2FkZHIgd291bGRuJ3QKPiA+PiA+IHdvcmsuCj4gPj4KPiA+PiBJ ZiB0aGF0IGd1eSBpcyBzdXBwb3NlZCB0byBnaXZlIHlvdSBhIHRpbGUgYWxpZ25lZCBhZGRyZXNz IHRoZW4gaXQgY291bGQKPiA+PiBqdXN0IGRvIHRoYXQgYW5kIGxlYXZlIGl0IHVwIHRvIHRoZSBk cml2ZXIgdG8gZGVhbCB3aXRoIHRoZSByZW1haW5kZXIgb2YKPiA+PiB0aGUgY29vcmRpbmF0ZXM/ Cj4gPj4KPiA+PiA+Cj4gPj4gPiBBbiBhbHRlcm5hdGl2ZSwgd291bGQgYmUgdG8gaW5jbHVkZSBp dCBpbiB0aGUgZHJpdmVyIGFuZCBwdXQgYW4gV0FSTgo+ID4+ID4gaW4gZHJtX2ZiX2NtYV9nZXRf Z2VtX2FkZHIgaW4gY2FzZSBzb21lb25lIGVsc2UgdXNlcyBpdCB3aXRoIGEKPiA+PiA+IHNyY194 L3NyY195IHRpbGUgbXVsdGlwbGVzLgo+ID4+ID4KPiA+PiA+IFdoYXQgZG8geW91IHRoaW5rIGFi b3V0IHRoYXQgPwo+ID4+ID4KPiA+PiA+ID4KPiA+PiA+ID4gPiArCj4gPj4gPiA+ID4gICAgICAg ICBpZiAocGxhbmVfc3dpdGNoaW5nX2NydGMoc3RhdGUtPnN0YXRlLCBwbGFuZSwgc3RhdGUpKSB7 Cj4gPj4gPiA+ID4gICAgICAgICAgICAgICAgIERSTV9ERUJVR19BVE9NSUMoIltQTEFORTolZDol c10gc3dpdGNoaW5nIENSVEMgZGlyZWN0bHlcbiIsCj4gPj4gPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGxhbmUtPmJhc2UuaWQsIHBsYW5lLT5uYW1lKTsKPiA+PiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9jbWFfaGVscGVyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIuYwo+ID4+ID4gPiA+IGluZGV4IDQ3ZTBlMmY2 NjQyZC4uNGQ4MDUyYWRjZTY3IDEwMDY0NAo+ID4+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZmJfY21hX2hlbHBlci5jCj4gPj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9mYl9jbWFfaGVscGVyLmMKPiA+PiA+ID4gPiBAQCAtODcsNiArODcsOCBAQCBkbWFfYWRkcl90 IGRybV9mYl9jbWFfZ2V0X2dlbV9hZGRyKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4+ ID4gPiA+ICAgICAgICAgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqb2JqOwo+ID4+ID4gPiA+ ICAgICAgICAgZG1hX2FkZHJfdCBwYWRkcjsKPiA+PiA+ID4gPiAgICAgICAgIHU4IGhfZGl2ID0g MSwgdl9kaXYgPSAxOwo+ID4+ID4gPiA+ICsgICAgICAgdTMyIHRpbGVfdyA9IGRybV9mb3JtYXRf dGlsZV93aWR0aChmYi0+Zm9ybWF0LCBwbGFuZSk7Cj4gPj4gPiA+ID4gKyAgICAgICB1MzIgdGls ZV9oID0gZHJtX2Zvcm1hdF90aWxlX2hlaWdodChmYi0+Zm9ybWF0LCBwbGFuZSk7Cj4gPj4gPiA+ ID4KPiA+PiA+ID4gPiAgICAgICAgIG9iaiA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIsIHBs YW5lKTsKPiA+PiA+ID4gPiAgICAgICAgIGlmICghb2JqKQo+ID4+ID4gPiA+IEBAIC05OSw4ICsx MDEsMTMgQEAgZG1hX2FkZHJfdCBkcm1fZmJfY21hX2dldF9nZW1fYWRkcihzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiwKPiA+PiA+ID4gPiAgICAgICAgICAgICAgICAgdl9kaXYgPSBmYi0+Zm9y bWF0LT52c3ViOwo+ID4+ID4gPiA+ICAgICAgICAgfQo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4gLSAg ICAgICBwYWRkciArPSAoZmItPmZvcm1hdC0+Y3BwW3BsYW5lXSAqIChzdGF0ZS0+c3JjX3ggPj4g MTYpKSAvIGhfZGl2Owo+ID4+ID4gPiA+IC0gICAgICAgcGFkZHIgKz0gKGZiLT5waXRjaGVzW3Bs YW5lXSAqIChzdGF0ZS0+c3JjX3kgPj4gMTYpKSAvIHZfZGl2Owo+ID4+ID4gPiA+ICsgICAgICAg cGFkZHIgKz0gKGZiLT5mb3JtYXQtPmNwcFtwbGFuZV0gKiB0aWxlX3cgKiAoc3RhdGUtPnNyY194 ID4+IDE2KSkKPiA+PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAvIGhfZGl2Owo+ID4+ ID4gPiA+ICsgICAgICAgLyoKPiA+PiA+ID4gPiArICAgICAgICAqIEZvciB0aWxlIGZvcm1hdHMg cGl0Y2hlcyBhcmUgZXhwZWN0ZWQgdG8gY292ZXIgYXQgbGVhc3QKPiA+PiA+ID4gPiArICAgICAg ICAqIHdpZHRoICogdGlsZV9oIHBpeGVscwo+ID4+ID4gPiA+ICsgICAgICAgICovCj4gPj4gPiA+ ID4gKyAgICAgICBwYWRkciArPSAoKGZiLT5waXRjaGVzW3BsYW5lXSAvIHRpbGVfaCkgKiAoc3Rh dGUtPnNyY195ID4+IDE2KSkgLyB2X2RpdjsKPiA+Pgo+ID4+IFByZXN1bWFibHkgdGhpcyB0aGlu ZyBzaG91bGQgYmUgdXNpbmcgdGhlIGNsaXBwZWQgY29vcmRpbmF0ZXMgaW5zdGVhZCBvZgo+ID4+ IHRoZSByYXcgdXNlciBwcm92aWRlZCBvbmVzPwo+ID4KPiA+IFNvIHlvdSBleHBlY3QgdGhlIGRy aXZlciB0byB0aGlua2VyIHdpdGggc3RhdGUtPnNyY194IGFuZCBzdGF0ZS0+c3JjX3kKPiA+IHRv IGJlIHRpbGVkIGFsaWduZWQ/CgpJIHdhcyByZWZlcnJpbmcgdG8gdXNpbmcgc3RhdGUtPnNyYy54 MSBldGMuIFVzaW5nIHNyY194L3kgd2lsbCBjYXVzZSB5b3UKdG8gc2NhbiBvdXQgdGhlIHdyb25n IHN0dWZmIGlmIHRoZSBwbGFuZSB0b3AvbGVmdCBlZGdlIGdvdCBjbGlwcGVkLgpBbmQgYXMgYSBz aWRlIG5vdGU6IGRyaXZlcnMgYXJlIG5vdCBldmVuIGFsbG93ZWQgdG8gbXVjayB3aXRoIHNyY194 L3kKZXRjLiBiZWNhdXNlIHRoYXQgd291bGQgY29ycnVwdCB0aGUgc3RhdGUgdGhhdCB1c2VyIGhh cyBzZXQgdXAuCgo+ID4KPiA+IFdoYXQgZG8geW91IGV4cGVjdCB0byBoYXBwZW4gaWYgdGhpcyBm dW5jdGlvbiBnZXRzIHBhc3NlZCBhCj4gPiBzcmNfeC9zcmNfeSB0aGF0J3Mgbm90IHRpbGUgYWxp Z25lZCwgV0FSTiBhYm91dCBpdCBvciBqdXN0IHNpbGVudGx5Cj4gPiByZXR1cm4gdGhlIGJlZ2lu bmluZyBvZiB0aGUgdGlsZSBhbmQgZG9jdW1lbnQgdGhhdCBiZWhhdmlvdXIuCj4gCj4gV0FSTiBy ZWFsbHkgaGFyZCBhbmQgcmV0dXJuIE5VTEwgb3Igc29tZXRoaW5nIGZvciBhbnkgdGlsZWQgZm9y bWF0Lgo+IEltbyBhIHBsYWluIGFkZHJlc3MganVzdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgZm9yIGEg dGlsZSBsYXlvdXQ6IFRvIGdldAo+IGEgZ29vZCBzdGFydGluZyBwb2ludCB5b3UgbmVlZCBib3Ro IGEgYmFzZSBhZGRyZXNzICh3aGljaCB3aWxsIGJlCj4gYWxpZ25lZCB0byB0aWxlIHJvd3Mgb2Zj KSwgcGx1cyBhIHgveSBvZmZzZXQgd2l0aGluLiBUaGUgZHJpdmVyIGNhbgo+IHRoZW4gZGVjaWRl ZCB3aGV0aGVyIGl0IG11c3QgaGF2ZSBhIHRpbGUgb2Zmc2V0IG9mIDAsIG9yIHdoYXQgZXhhY3Rs eQo+IGl0IGNhbiBoYW5kbGUuIFNvIHllYWggSSB0aGluayB3ZSBuZWVkIGEgbmV3IGhlbHBlciBo ZXJlIHRoYXQgZ2V0cwo+IHRoaXMgcmlnaHQuCgpZZWFoLCBzb21ldGhpbmcgdGhhdCBlaXRoZXIg cmV0dXJucyB0aGUgcmVtYWluaW5nIGludHJhLXRpbGUgeC95Cm9mZnNldHMsIG9yIHRoZSB0aWxl IGFsaWduZWQgeC95IG9mZnNldHMgYW5kIGxldHMgdGhlIGRyaXZlciBkZWFsCndpdGggdGhlIHJl bWFpbmRlciBpbiB3aGF0ZXZlciB3YXkgaXMgYXBwcm9wcmlhdGUgKHdoaWNoIGNvdWxkIGV2ZW4K YmUgLUVJTlZBTCBpbiBjYXNlIHRoZSBodyBjYW4ndCBzaW1wbHkgaGFuZGxlIGl0KS4gVGhlIGxh dHRlciBiZWluZwpwcmV0dHkgbXVjaCBob3cgaTkxNSBkb2VzIHRoaW5ncy4KCi0tIApWaWxsZSBT eXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==