From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 07/14] drm/i915: Compute vlv/chv wms the atomic way Date: Thu, 15 Dec 2016 19:17:54 +0200 Message-ID: <20161215171754.GP31595@intel.com> References: <1481574931-8658-1-git-send-email-ville.syrjala@linux.intel.com> <1481574931-8658-8-git-send-email-ville.syrjala@linux.intel.com> <1bbe7729-3ba9-5d90-1ab4-0f263f6c3a84@linux.intel.com> <20161215153812.GJ31595@intel.com> <20161215160926.GL31595@intel.com> <7fd7b693-4f96-80ba-ed2a-be8013da72e1@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id AC80C895C4 for ; Thu, 15 Dec 2016 17:17:57 +0000 (UTC) Content-Disposition: inline In-Reply-To: <7fd7b693-4f96-80ba-ed2a-be8013da72e1@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBEZWMgMTUsIDIwMTYgYXQgMDY6MTI6MTJQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMTUtMTItMTYgb20gMTc6MDkgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6 Cj4gPiBPbiBUaHUsIERlYyAxNSwgMjAxNiBhdCAwNDo0NTo0OVBNICswMTAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPiA+PiBPcCAxNS0xMi0xNiBvbSAxNjozOCBzY2hyZWVmIFZpbGxlIFN5 cmrDpGzDpDoKPiA+Pj4gT24gVGh1LCBEZWMgMTUsIDIwMTYgYXQgMDQ6MzA6NTRQTSArMDEwMCwg TWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4gPj4+PiBPcCAxMi0xMi0xNiBvbSAyMTozNSBzY2hy ZWVmIHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tOgo+ID4+Pj4+IEZyb206IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4+Pj4KPiA+Pj4+PiBT dGFydCBjb21wdXRpbmcgdGhlIHZsdi9jaHYgd2F0ZXJtYXJrcyB0aGUgYXRvbWljIHdheSwgZnJv bSB0aGUKPiA+Pj4+PiAuY29tcHV0ZV9waXBlX3dtKCkgaG9vay4gV2UnbGwgcmVjb21wdXRlIHRo ZSBhY3R1YWwgd2F0ZXJtYXJrcwo+ID4+Pj4+IGZvciBvbmx5IHBsYW5lcyB0aGF0IGFyZSBwYXJ0 IG9mIHRoZSBzdGF0ZSwgdGhlIG90aGVyIHBsYW5lcyB3aWxsCj4gPj4+Pj4ga2VlcCB0aGVpciB3 YXRlcm1hcmsgZnJvbSB0aGUgbGFzdCB0aW1lIGl0IHdhcyBjb21wdXRlZC4KPiA+Pj4+Pgo+ID4+ Pj4+IEFuZCB0aGUgYWN0dWFsIHdhdGVybWFyayBwcm9ncmFtbWluZyB3aWxsIGhhcHBlbiBmcm9t IHRoZQo+ID4+Pj4+IC5pbml0aWFsX3dhdGVybWFya3MoKSBob29rLiBGb3Igbm93IHdlJ2xsIGp1 c3QgY29tcHV0ZSB0aGUKPiA+Pj4+PiBvcHRpbWFsIHdhdGVybWFya3MsIGFuZCB3ZSdsbCBob29r IHVwIHRoZSBpbnRlcm1lZGlhdGUKPiA+Pj4+PiB3YXRlcm1hcmtzIHByb3Blcmx5IGxhdGVyLgo+ ID4+Pj4+Cj4gPj4+Pj4gVGhlIERTUEFSQiByZWdpc3RlcnMgcmVzcG9uc2libGUgZm9yIHRoZSBG SUZPIHBhcml0aW9uaW5nIGFyZQo+ID4+Pj4+IGRvdWJsZSBidWZmZXJlZCwgc28gdGhleSB3aWxs IGJlIHByb2dyYW1taW5nIGZyb20KPiA+Pj4+PiBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdCgpLgo+ ID4+Pj4+Cj4gPj4+Pj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiA+Pj4+PiAtLS0KPiA+Pj4+PiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgICA4ICsKPiA+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIHwgIDIxICsrLQo+ID4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCAgICAgfCAgIDIgLQo+ID4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jICAgICAgfCAzMjcgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0K PiA+Pj4+PiAgNCBmaWxlcyBjaGFuZ2VkLCAyMzggaW5zZXJ0aW9ucygrKSwgMTIwIGRlbGV0aW9u cygtKQo+ID4+Pj4+Cj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj4+Pj4gaW5kZXgg MjBiYzA0ZDVlNjE3Li5mMjM2OThmOTk2ODUgMTAwNjQ0Cj4gPj4+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiA+Pj4+PiBAQCAtNDkzLDYgKzQ5MywxNCBAQCBzdHJ1Y3QgaTkxNV9ob3Rw bHVnIHsKPiA+Pj4+PiAgCWZvciAoKGRvbWFpbikgPSAwOyAoZG9tYWluKSA8IFBPV0VSX0RPTUFJ Tl9OVU07IChkb21haW4pKyspCVwKPiA+Pj4+PiAgCQlmb3JfZWFjaF9pZiAoKDEgPDwgKGRvbWFp bikpICYgKG1hc2spKQo+ID4+Pj4+ICAKPiA+Pj4+PiArI2RlZmluZSBmb3JfZWFjaF9pbnRlbF9w bGFuZV9pbl9zdGF0ZShfX3N0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIF9faSkgXAo+ID4+Pj4+ ICsJZm9yICgoX19pKSA9IDA7IFwKPiA+Pj4+PiArCSAgICAgKF9faSkgPCAoX19zdGF0ZSktPmJh c2UuZGV2LT5tb2RlX2NvbmZpZy5udW1fdG90YWxfcGxhbmUgJiYgXAo+ID4+Pj4+ICsJCSAgICAg KChwbGFuZSkgPSB0b19pbnRlbF9wbGFuZSgoX19zdGF0ZSktPmJhc2UucGxhbmVzW19faV0ucHRy KSwgXAo+ID4+Pj4+ICsJCSAgICAgIChwbGFuZV9zdGF0ZSkgPSB0b19pbnRlbF9wbGFuZV9zdGF0 ZSgoX19zdGF0ZSktPmJhc2UucGxhbmVzW19faV0uc3RhdGUpLCAxKTsgXAo+ID4+Pj4+ICsJICAg ICAoX19pKSsrKSBcCj4gPj4+Pj4gKwkJZm9yX2VhY2hfaWYgKHBsYW5lX3N0YXRlKQo+ID4+Pj4+ ICsKPiA+Pj4+PiAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Cj4gPj4+Pj4gIHN0cnVjdCBpOTE1 X21tX3N0cnVjdDsKPiA+Pj4+PiAgc3RydWN0IGk5MTVfbW11X29iamVjdDsKPiA+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPj4+Pj4gaW5kZXggM2YwMjczNDFiMGYzLi44 ZDgwODczYjY2NDMgMTAwNjQ0Cj4gPj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gPj4+Pj4gQEAgLTY3MzYsNiArNjczNiw4IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZp ZXdfbW9kZXNldF9jb21taXRfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0 ZSkKPiA+Pj4+PiAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPj4+Pj4gIAkJCQkgICBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ID4+Pj4+ICB7Cj4gPj4+Pj4gKwlzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpvbGRfaW50ZWxfc3RhdGUgPQo+ID4+Pj4+ICsJCXRvX2ludGVsX2F0b21p Y19zdGF0ZShvbGRfc3RhdGUpOwo+ID4+Pj4+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlw ZV9jb25maWctPmJhc2UuY3J0YzsKPiA+Pj4+PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5kZXY7Cj4gPj4+Pj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gPj4+Pj4gQEAgLTY3ODAsNyArNjc4Miw4IEBAIHN0YXRpYyB2b2lkIHZh bGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln LAo+ID4+Pj4+ICAKPiA+Pj4+PiAgCWludGVsX2NvbG9yX2xvYWRfbHV0cygmcGlwZV9jb25maWct PmJhc2UpOwo+ID4+Pj4+ICAKPiA+Pj4+PiAtCWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKGludGVs X2NydGMpOwo+ID4+Pj4+ICsJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKG9s ZF9pbnRlbF9zdGF0ZSwKPiA+Pj4+PiArCQkJCQkgICAgIHBpcGVfY29uZmlnKTsKPiA+Pj4+PiAg CWludGVsX2VuYWJsZV9waXBlKGludGVsX2NydGMpOwo+ID4+Pj4+ICAKPiA+Pj4+PiAgCWFzc2Vy dF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7Cj4gPj4+Pj4gQEAgLTY4OTcsNiArNjkwMCw5IEBAIHN0 YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSwKPiA+Pj4+PiAgCj4gPj4+Pj4gIAlpZiAoIUlTX0dFTjIoZGV2X3ByaXYpKQo+ ID4+Pj4+ICAJCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYs IHBpcGUsIGZhbHNlKTsKPiA+Pj4+PiArCj4gPj4+Pj4gKwlpZiAoIWRldl9wcml2LT5kaXNwbGF5 LmluaXRpYWxfd2F0ZXJtYXJrcykKPiA+Pj4+PiArCQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhp bnRlbF9jcnRjKTsKPiA+Pj4+PiAgfQo+ID4+Pj4+ICAKPiA+Pj4+PiAgc3RhdGljIHZvaWQgaW50 ZWxfY3J0Y19kaXNhYmxlX25vYXRvbWljKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+Pj4+PiBA QCAtMTI5ODAsMTAgKzEyOTg2LDEzIEBAIHN0YXRpYyBib29sIGNoZWNrX2RpZ2l0YWxfcG9ydF9j b25mbGljdHMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4+Pj4+ICBzdGF0aWMg dm9pZAo+ID4+Pj4+ICBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQo+ID4+Pj4+ICB7Cj4gPj4+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPQo+ID4+Pj4+ICsJCXRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj LT5kZXYpOwo+ID4+Pj4+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlIHRtcF9zdGF0ZTsKPiA+Pj4+ PiAgCXN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSBzY2FsZXJfc3RhdGU7Cj4gPj4+Pj4g IAlzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSBkcGxsX2h3X3N0YXRlOwo+ID4+Pj4+ICAJc3Ry dWN0IGludGVsX3NoYXJlZF9kcGxsICpzaGFyZWRfZHBsbDsKPiA+Pj4+PiArCXN0cnVjdCBpbnRl bF9jcnRjX3dtX3N0YXRlIHdtX3N0YXRlOwo+ID4+Pj4+ICAJYm9vbCBmb3JjZV90aHJ1Owo+ID4+ Pj4+ICAKPiA+Pj4+PiAgCS8qIEZJWE1FOiBiZWZvcmUgdGhlIHN3aXRjaCB0byBhdG9taWMgc3Rh cnRlZCwgYSBuZXcgcGlwZV9jb25maWcgd2FzCj4gPj4+Pj4gQEAgLTEyOTk2LDYgKzEzMDA1LDgg QEAgY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKPiA+Pj4+PiAgCXNoYXJlZF9kcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7Cj4g Pj4+Pj4gIAlkcGxsX2h3X3N0YXRlID0gY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZTsKPiA+Pj4+ PiAgCWZvcmNlX3RocnUgPSBjcnRjX3N0YXRlLT5wY2hfcGZpdC5mb3JjZV90aHJ1Owo+ID4+Pj4+ ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYp KQo+ID4+Pj4+ICsJCXdtX3N0YXRlID0gY3J0Y19zdGF0ZS0+d207Cj4gPj4+Pj4gIAo+ID4+Pj4+ ICAJbWVtc2V0KGNydGNfc3RhdGUsIDAsIHNpemVvZiAqY3J0Y19zdGF0ZSk7Cj4gPj4+Pj4gIAo+ ID4+Pj4+IEBAIC0xMzAwNCw2ICsxMzAxNSw4IEBAIGNsZWFyX2ludGVsX2NydGNfc3RhdGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPj4+Pj4gIAljcnRjX3N0YXRlLT5z aGFyZWRfZHBsbCA9IHNoYXJlZF9kcGxsOwo+ID4+Pj4+ICAJY3J0Y19zdGF0ZS0+ZHBsbF9od19z dGF0ZSA9IGRwbGxfaHdfc3RhdGU7Cj4gPj4+Pj4gIAljcnRjX3N0YXRlLT5wY2hfcGZpdC5mb3Jj ZV90aHJ1ID0gZm9yY2VfdGhydTsKPiA+Pj4+PiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2 KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiA+Pj4+PiArCQljcnRjX3N0YXRlLT53bSA9 IHdtX3N0YXRlOwo+ID4+Pj4gSXMgdGhpcyByZXF1aXJlZD8gSW4gc2tsIHdlIHRocm93IGF3YXkg ZXZlcnl0aGluZyBhbmQgcmVidWlsZCB1c2luZyBkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2Vh Y2hfcGxhbmVfc3RhdGUuCj4gPj4+IEkgZG9uJ3Qgd2FudCB0byBhZGQgYWxsIHRoZSBwbGFuZXMg aW50byB0aGUgc3RhdGUgd2hlbiBub3QgbmVjZXNzYXJ5Lgo+ID4+IEl0IGRvZXNuJ3QuIEl0IHVz ZXMgdGhlIGZhY3QgdGhhdCB1cGRhdGluZyBwbGFuZXMgcmVxdWlyZXMgY3J0YyBtdXRleCwgYW5k IG9ubHkgaXRlcmF0ZXMgb3ZlciBhbGwgcGxhbmVzIGluIGNydGNfc3RhdGUtPnBsYW5lc19tYXNr Lgo+ID4gV2hpY2ggaXMgc2V0dGluZyBhIHNvbWV3aGF0IGRhbmdlcm91cyBwcmVjZWRlbnQuIFNv IG5vLCBJIGRvbid0IHRoaW5rIEkKPiA+IHdhbnQgdG8gZG8gdGhhdC4gSXQncyBub3QgaW1tZWRp YXRlbHkgb2J2aW91cyBmcm9tIHRoZSBjb2RlIHRoYXQgaXQncwo+ID4gMTAwJSBzYWZlIGVpdGhl ciBzaW5jZSB0aGUgY3J0YyBsb2NrIGlzIHRha2VuIGFmdGVyIHRoZSBwbGFuZS0+c3RhdGUKPiA+ IGlzIGRlcmVmZXJlbmNlZC4gV2hpY2ggbWVhbnMgc29tZW9uIGNhbiBpbiBwYXJhbGxlbCBiZSBs b29raW5nIGF0IHRoZQo+ID4gb2xkIHBsYW5lIHN0YXRlIHdoaWxlIHRoZSBuZXcgc3RhdGUgYWxy ZWFkeSBleGlzdHMuIEkgY2FuJ3QgdGhpbmsgb2YKPiA+IGEgd2F5IGl0IGNvdWxkIGFjdHVhbGx5 IGdvIHdyb25nLCBidXQgc2VlbXMgZWFzaWVyIHRvIHN0aWNrIHRvIHRoZQo+ID4gcnVsZXMgYW5k IGF2b2lkIHRoYXQgcGFydGljdWxhciBoZWFkYWNoZSBlbnRpcmVseS4KPiBZb3UgY2FuJ3QgZG8g YW55dGhpbmcgd2l0aCB5b3VyIGR1cGxpY2F0ZWQgcGxhbmUgc3RhdGUgd2l0aG91dCBsb2NraW5n IGNydGNfbXV0ZXguCj4gVGhpcyBpcyB3aGF0IHRoZSB3aG9sZSAtRURFQURMSyBkZXNpZ24gd2ls bCBwcmV2ZW50LiA6KQo+ID4+IEFueSBwbGFuZXMgb3V0c2lkZSBpdCBhcmUgZGlzYWJsZWQgc28g d20gdmFsdWVzIGNhbiBiZSBjb25zaWRlcmVkIDAsIGFuZCByb3VnaGx5IGRvZXMgdGhlIGZvbGxv d2luZzoKPiA+Pgo+ID4+IGZvcl9lYWNoX3BsYW5lX2luX21hc2soY3J0Y19zdGF0ZS0+cGxhbmVz X21hc2spCj4gPj4gaWYgKCghcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9leGlzdGluZ19z dGF0ZShzdGF0ZSwgcGxhbmVfc3RhdGUpKSBwbGFuZV9zdGF0ZSA9IHBsYW5lLT5zdGF0ZTsKPiA+ Pgo+ID4+IHBsYW5lX3N0YXRlIG11c3QgYmUgY29uc3QsIGJ1dCB0aGF0J3Mgbm8gcHJvYmxlbSBm b3Igd20gY2FsY3VsYXRpb25zLgo+ID4gQW5kIHJlY29tcHV0aW5nIHN0dWZmIHRoYXQgZGlkbid0 IGV2ZW4gY2hhbmdlIGp1c3Qgc2VlbXMgd2FzdGVmdWwuCj4gSXQgbWlnaHQgY2hhbmdlIGlmIHlv dXIgZmlmbyBhbGxvY2F0aW9ucyBhcmUgZGlmZmVyZW50LiBDb3VsZCBza2lwIHRoZSB3aG9sZSBy ZWNhbGN1bGF0aW9uIHRoaW5nIHdoZW4gY3J0Y19zdGF0ZS0+cGxhbmVzX2NoYW5nZWQgPSBmYWxz ZS4KCk5haC4gSSB3YW50IGJldHRlciBncmFudWxhcml0eSB0aGFuIHRoYXQuIEFsc28gRklGTyBh bGxvY2F0aW9uIGNoYW5nZXMKZG9uJ3QgcmVxdWlyZSByZWNvbXB1dGluZyB3YXRlcm1hcmtzLgoK LS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==