From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v2 1/4] drm/i915/dp: Link train Fallback on eDP only if fallback link BW can fit panel's native mode Date: Tue, 9 Oct 2018 13:49:09 -0700 Message-ID: <20181009204909.GA28194@intel.com> References: <20180912225719.17574-1-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 771BD88158 for ; Tue, 9 Oct 2018 20:47:01 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBTZXAgMTIsIDIwMTggYXQgMDU6MDM6MTVQTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IE9uIFdlZCwgU2VwIDEyLCAyMDE4IGF0IDM6NTUgUE0gTWFuYXNpIE5hdmFyZSA8 bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gVGhpcyBwYXRjaCBmaXhl cyB0aGUgb3JpZ2luYWwgY29tbWl0IGMwY2ZiMTBkOWUxZGU0OSAoImRybS9pOTE1L2VkcDoKPiA+ IERvIG5vdCBkbyBsaW5rIHRyYWluaW5nIGZhbGxiYWNrIG9yIHBydW5lIG1vZGVzIG9uIEVEUCIp IHRoYXQgY2F1c2VzCj4gPiBhIGJsYW5rIHNjcmVlbiBpbiBjYXNlIG9mIGNlcnRhaW4gZURQIHBh bmVscyAoRWc6IHNlZW4gb24gRGVsbCBYUFMxMyA5MzUwKQo+ID4gd2hlcmUgZmlyc3QgbGluayB0 cmFpbmluZyBmYWlscyBhbmQgYSByZXRyYWluaW5nIGlzIHJlcXVpcmVkIGJ5IGZhbGxpbmcKPiA+ IGJhY2sgdG8gbG93ZXIgbGluayByYXRlL2xhbmUgY291bnQuCj4gPiBJbiBjYXNlIG9mIHNvbWUg cGFuZWxzIHRoZXkgYWR2ZXJ0aXNlIGhpZ2hlciBsaW5rIHJhdGUvbGFuZSBjb3VudAo+ID4gdGhh biB3aGF0cyByZXF1aXJlZCBmb3Igc3VwcG9ydGluZyB0aGUgcGFuZWwncyBuYXRpdmUgbW9kZS4K PiA+IEJ1dCB3ZSBhbHdheXMgbGluayB0cmFpbiBhdCBoaWdoZXN0IGxpbmsgcmF0ZS9sYW5lIGNv dW50IGZvciBlRFAKPiA+IGFuZCBpZiB0aGF0IGZhaWxzIHdlIGNhbiBzdGlsbCBmYWxsYmFjayB0 byBsb3dlciBsaW5rIHJhdGUvbGFuZSBjb3VudAo+ID4gYXMgbG9uZyBhcyB0aGUgZmFsbGJhY2sg bGluayBCVyBzdGlsbCBmaXRzIHRoZSBuYXRpdmUgbW9kZSB0byBhdm9pZAo+ID4gcHJ1bmluZyB0 aGUgcGFuZWwncyBuYXRpdmUgbW9kZSB5ZXQgcmV0cmFpbmluZyBhdCBmYWxsYmFjayB2YWx1ZXMK PiA+IHRvIHJlY292ZXIgZnJvbSBhIGJsYW5rIHNjcmVlbi4KPiAKPiBJIHN1c3BlY3Qgc29tZXRo aW5nIHdlbnQgYmFkIG9uIG15IGxhcHRvcCBvciB0aGUgY2F1c2UgaXMgc29tZXRoaW5nIGVsc2Uu Cj4gSSBjYW4ndCByZXByb2R1Y2UgdGhpcyBwcm9ibGVtIGFueW1vcmUsIGV2ZW4gaWYgSSBnbyBi YWNrIHRvIG9sZCBrZXJuZWxzLgo+IEFuZCwgaW4gY29udHJhcnkgdG8gd2hhdCBJIGhhZCBwcmV2 aW91c2x5LCBub3cgSSBoYXZlOgo+IAo+ICMgZGQgaWY9L2Rldi9kcm1fZHBfYXV4MCBicz0xIHwg aGV4ZHVtcCAtQwo+IC4uLgo+IDAwMDAwMDcwICAwMSAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgIHwuLi4uLi4uLi4uLi4uLi4ufAo+IC4uLgo+CgpUaGFua3Mg Zm9yIHRlc3RpbmcgdGhpcyBzY2VuYXJpbyBhZ2Fpbi4gSSB0aGluayB0aGlzIGlzIG9uZSBvZiB0 aG9zZSBwYW5lbHMKd2hlcmUgc29tZXRpbWVzIGl0IHdvcmtzIHdpdGhvdXQgYSByZXRyYWluIGFu ZCBzb21ldGltZXMgcmVxdWlyZXMgcmV0cmFpbmluZwp3aGljaCB3YXMgdGhlIGNhdXNlIG9mIHRo ZSBibGFjayBzY3JlZW4gb24geW91ciBsYXB0b3AgZWFybGllci4KQnV0IHJlZ2FyZGxlc3MgdGhl cmUgYXJlIG90aGVyIGJ1Z3Mgc2VlbiB3aGVyZSB3aGVyZSB3ZSBuZWVkIHJldHJhaW5pbmcgb24g ZURQCndpdGggcmVkdWNlZCBmYWxsYmFjayBwYXJhbWV0ZXJzIG9yIHRoZSBzYW1lIHBhcmFtZXRl cnMuCkFuZCB0aGlzIHBhdGNoIHN0aWxsIGZpeGVzIHRob3NlIGJ1Z3MuCgpNYW5hc2kKIAo+IEx1 Y2FzIERlIE1hcmNoaQo+IAo+ID4KPiA+IHYyOgo+ID4gKiBTZW5kIHVldmVudCBpZiBsaW5rIGZh aWx1cmUgb24gZURQIHVuY29uZGl0aW9uYWxseQo+ID4KPiA+IENjOiBDbGludG9uIFRheWxvciA8 Y2xpbnRvbi5hLnRheWxvckBpbnRlbC5jb20+Cj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZm d2xsLmNoPgo+ID4gQ2M6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29t Pgo+ID4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dp P2lkPTEwNzQ4OQo+ID4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hv d19idWcuY2dpP2lkPTEwNTMzOAo+ID4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFu YXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+IFRlc3RlZC1ieTogQWxleGFuZGVyIFdpbHNvbiA8 YWxleGFuZGVyLndpbHNvbkBuY2YuZWR1Pgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyAgICAgICAgICAgICAgIHwgMjkgKysrKysrKysrKysrKysrKysrKwo+ID4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYyB8IDI2ICsrKysr Ky0tLS0tLS0tLS0tCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAxNyBk ZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IDQzNmMy MmRlMzNiNi4uZTRkZTUyNTdjZDg3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ID4gQEAgLTU1Nyw2ICs1NTcsMjEgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfbGlua19wYXJhbXNf dmFsaWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IGxpbmtfcmF0ZSwKPiA+ICAgICAg ICAgcmV0dXJuIHRydWU7Cj4gPiAgfQo+ID4KPiA+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9jYW5f bGlua190cmFpbl9mYWxsYmFja19mb3JfZWRwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBsaW5rX3JhdGUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQ4X3QgbGFuZV9jb3VudCkKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICpmaXhlZF9tb2RlID0gaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5l Y3Rvci0+cGFuZWwuZml4ZWRfbW9kZTsKPiA+ICsgICAgICAgaW50IG1vZGVfcmF0ZSwgbWF4X3Jh dGU7Cj4gPiArCj4gPiArICAgICAgIG1vZGVfcmF0ZSA9IGludGVsX2RwX2xpbmtfcmVxdWlyZWQo Zml4ZWRfbW9kZS0+Y2xvY2ssIDE4KTsKPiA+ICsgICAgICAgbWF4X3JhdGUgPSBpbnRlbF9kcF9t YXhfZGF0YV9yYXRlKGxpbmtfcmF0ZSwgbGFuZV9jb3VudCk7Cj4gPiArICAgICAgIGlmIChtb2Rl X3JhdGUgPiBtYXhfcmF0ZSkKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4gPiAr Cj4gPiArICAgICAgIHJldHVybiB0cnVlOwo+ID4gK30KPiA+ICsKPiA+ICBpbnQgaW50ZWxfZHBf Z2V0X2xpbmtfdHJhaW5fZmFsbGJhY2tfdmFsdWVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW5r X3JhdGUsIHVpbnQ4X3QgbGFuZV9jb3VudCkKPiA+ICB7Cj4gPiBAQCAtNTY2LDkgKzU4MSwyMyBA QCBpbnQgaW50ZWxfZHBfZ2V0X2xpbmtfdHJhaW5fZmFsbGJhY2tfdmFsdWVzKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnRlbF9kcC0+bnVtX2NvbW1vbl9yYXRlcywKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpbmtfcmF0ZSk7Cj4gPiAgICAgICAgIGlmIChpbmRleCA+IDApIHsKPiA+ICsg ICAgICAgICAgICAgICBpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSAmJgo+ID4gKyAgICAg ICAgICAgICAgICAgICAhaW50ZWxfZHBfY2FuX2xpbmtfdHJhaW5fZmFsbGJhY2tfZm9yX2VkcChp bnRlbF9kcCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tpbmRleCAtIDFdLAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsYW5lX2NvdW50KSkgewo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgRFJNX0RFQlVH X0tNUygiUmV0cnlpbmcgTGluayB0cmFpbmluZyBmb3IgZURQIHdpdGggc2FtZSBwYXJhbWV0ZXJz XG4iKTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwo+ID4gKyAgICAgICAg ICAgICAgIH0KPiA+ICAgICAgICAgICAgICAgICBpbnRlbF9kcC0+bWF4X2xpbmtfcmF0ZSA9IGlu dGVsX2RwLT5jb21tb25fcmF0ZXNbaW5kZXggLSAxXTsKPiA+ICAgICAgICAgICAgICAgICBpbnRl bF9kcC0+bWF4X2xpbmtfbGFuZV9jb3VudCA9IGxhbmVfY291bnQ7Cj4gPiAgICAgICAgIH0gZWxz ZSBpZiAobGFuZV9jb3VudCA+IDEpIHsKPiA+ICsgICAgICAgICAgICAgICBpZiAoaW50ZWxfZHBf aXNfZWRwKGludGVsX2RwKSAmJgo+ID4gKyAgICAgICAgICAgICAgICAgICAhaW50ZWxfZHBfY2Fu X2xpbmtfdHJhaW5fZmFsbGJhY2tfZm9yX2VkcChpbnRlbF9kcCwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfZHBf bWF4X2NvbW1vbl9yYXRlKGludGVsX2RwKSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZV9jb3VudCA+PiAxKSkgewo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiUmV0cnlpbmcgTGluayB0 cmFpbmluZyBmb3IgZURQIHdpdGggc2FtZSBwYXJhbWV0ZXJzXG4iKTsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAwOwo+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ICAgICAgICAg ICAgICAgICBpbnRlbF9kcC0+bWF4X2xpbmtfcmF0ZSA9IGludGVsX2RwX21heF9jb21tb25fcmF0 ZShpbnRlbF9kcCk7Cj4gPiAgICAgICAgICAgICAgICAgaW50ZWxfZHAtPm1heF9saW5rX2xhbmVf Y291bnQgPSBsYW5lX2NvdW50ID4+IDE7Cj4gPiAgICAgICAgIH0gZWxzZSB7Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4gPiBpbmRleCBhOWY0 MDk4NWE2MjEuLjMwYmUwZTM5YmQ1ZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4gPiBAQCAtMzY3LDIyICszNjcsMTQgQEAgaW50 ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gICAg ICAgICByZXR1cm47Cj4gPgo+ID4gICBmYWlsdXJlX2hhbmRsaW5nOgo+ID4gLSAgICAgICAvKiBE b250IGZhbGxiYWNrIGFuZCBwcnVuZSBtb2RlcyBpZiBpdHMgZURQICovCj4gPiAtICAgICAgIGlm ICghaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewo+ID4gLSAgICAgICAgICAgICAgIERSTV9E RUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdIExpbmsgVHJhaW5pbmcgZmFpbGVkIGF0IGxpbmsg cmF0ZSA9ICVkLCBsYW5lIGNvdW50ID0gJWQiLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50ZWxfY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnRlbF9jb25uZWN0b3ItPmJhc2UubmFtZSwKPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludGVsX2RwLT5saW5rX3JhdGUsIGludGVsX2RwLT5sYW5lX2Nv dW50KTsKPiA+IC0gICAgICAgICAgICAgICBpZiAoIWludGVsX2RwX2dldF9saW5rX3RyYWluX2Zh bGxiYWNrX3ZhbHVlcyhpbnRlbF9kcCwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9kcC0+bGlua19yYXRlLAo+ID4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludGVsX2RwLT5sYW5lX2NvdW50KSkKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIC8q IFNjaGVkdWxlIGEgSG90cGx1ZyBVZXZlbnQgdG8gdXNlcnNwYWNlIHRvIHN0YXJ0IG1vZGVzZXQg Ki8KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlX3dvcmsoJmludGVsX2Nvbm5l Y3Rvci0+bW9kZXNldF9yZXRyeV93b3JrKTsKPiA+IC0gICAgICAgfSBlbHNlIHsKPiA+IC0gICAg ICAgICAgICAgICBEUk1fRVJST1IoIltDT05ORUNUT1I6JWQ6JXNdIExpbmsgVHJhaW5pbmcgZmFp bGVkIGF0IGxpbmsgcmF0ZSA9ICVkLCBsYW5lIGNvdW50ID0gJWQiLAo+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAgICBpbnRlbF9jb25uZWN0b3ItPmJhc2UuYmFzZS5pZCwKPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgaW50ZWxfY29ubmVjdG9yLT5iYXNlLm5hbWUsCj4gPiAtICAgICAg ICAgICAgICAgICAgICAgICAgIGludGVsX2RwLT5saW5rX3JhdGUsIGludGVsX2RwLT5sYW5lX2Nv dW50KTsKPiA+IC0gICAgICAgfQo+ID4gKyAgICAgICBEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9S OiVkOiVzXSBMaW5rIFRyYWluaW5nIGZhaWxlZCBhdCBsaW5rIHJhdGUgPSAlZCwgbGFuZSBjb3Vu dCA9ICVkIiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbnRlbF9jb25uZWN0b3ItPmJhc2Uu YmFzZS5pZCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbnRlbF9jb25uZWN0b3ItPmJhc2Uu bmFtZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbnRlbF9kcC0+bGlua19yYXRlLCBpbnRl bF9kcC0+bGFuZV9jb3VudCk7Cj4gPiArICAgICAgIGlmICghaW50ZWxfZHBfZ2V0X2xpbmtfdHJh aW5fZmFsbGJhY2tfdmFsdWVzKGludGVsX2RwLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9kcC0+bGlua19yYXRlLAo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9k cC0+bGFuZV9jb3VudCkpCj4gPiArICAgICAgICAgICAgICAgLyogU2NoZWR1bGUgYSBIb3RwbHVn IFVldmVudCB0byB1c2Vyc3BhY2UgdG8gc3RhcnQgbW9kZXNldCAqLwo+ID4gKyAgICAgICAgICAg ICAgIHNjaGVkdWxlX3dvcmsoJmludGVsX2Nvbm5lY3Rvci0+bW9kZXNldF9yZXRyeV93b3JrKTsK PiA+ICAgICAgICAgcmV0dXJuOwo+ID4gIH0KPiA+IC0tCj4gPiAyLjE4LjAKPiA+Cj4gPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiAK PiAKPiAKPiAtLSAKPiBMdWNhcyBEZSBNYXJjaGkKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==