From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2] drm/i915: Add state readout and checking for has_dp_encoder and dp_m_n Date: Fri, 13 Sep 2013 15:11:02 +0300 Message-ID: <87mwngncq1.fsf@intel.com> References: <1378499348-4281-5-git-send-email-ville.syrjala@linux.intel.com> <1378821774-28792-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by gabe.freedesktop.org (Postfix) with ESMTP id 34588E5FFC for ; Fri, 13 Sep 2013 05:08:55 -0700 (PDT) In-Reply-To: <1378821774-28792-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAxMCBTZXAgMjAxMywgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pgo+IEFkZCBmdW5jdGlvbnMgdG8gcmVhZCBvdXQgdGhlIENQVSBhbmQgUENIIHRyYW5zY29kZXIg TS9OIHZhbHVlcywKPiBhbmQgdXNlIHRoZW0gdG8gZmlsbCBvdXQgdGhlIHBpcGUgY29uZmlnIGRw X21fbiBpbmZvcm1hdGlvbi4gQW5kCj4gd2hpbGUgYXQgaXQgcG9wdWxhdGUgaGFzX2RwX2VuY29k ZXIgdG9vLgo+Cj4gQWxzbyByZWZhY3RvciBpcm9ubGFrZV9nZXRfZmRpX21fbl9jb25maWcoKSB0 byBzaW1wbHkgY2FsbCB0aGUgbmV3Cj4gaW50ZWxfY3B1X3RyYW5zY29kZXJfZ2V0X21fbigpIGZ1 bmN0aW9uLgo+Cj4gdjI6IFJlbWVtYmVyIHRoZSBEREkKClJldmlld2VkLWJ5OiBKYW5pIE5pa3Vs YSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgoKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rs w6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgfCAxNCArKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyB8IDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAgNCArKwo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMiArCj4gIDQgZmlsZXMgY2hh bmdlZCwgODYgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+IGluZGV4IDE4MDNjZmYuLmI0N2RjNGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+IEBAIC0xMjg1LDYgKzEyODUsMjAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRp X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlkZWZhdWx0Ogo+ ICAJCWJyZWFrOwo+ICAJfQo+ICsKPiArCXN3aXRjaCAodGVtcCAmIFRSQU5TX0RESV9NT0RFX1NF TEVDVF9NQVNLKSB7Cj4gKwljYXNlIFRSQU5TX0RESV9NT0RFX1NFTEVDVF9IRE1JOgo+ICsJY2Fz ZSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFZJOgo+ICsJY2FzZSBUUkFOU19ERElfTU9ERV9TRUxF Q1RfRkRJOgo+ICsJCWJyZWFrOwo+ICsJY2FzZSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfU1NU Ogo+ICsJY2FzZSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfTVNUOgo+ICsJCXBpcGVfY29uZmln LT5oYXNfZHBfZW5jb2RlciA9IHRydWU7Cj4gKwkJaW50ZWxfZHBfZ2V0X21fbihpbnRlbF9jcnRj LCBwaXBlX2NvbmZpZyk7Cj4gKwkJYnJlYWs7Cj4gKwlkZWZhdWx0Ogo+ICsJCWJyZWFrOwo+ICsJ fQo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZGVzdHJveShzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4 IDkzNWY5MTMuLmM5ZDNmNTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j Cj4gQEAgLTU4NjMsMjAgKzU4NjMsNjQgQEAgc3RhdGljIGludCBpcm9ubGFrZV9jcnRjX21vZGVf c2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXN0 YXRpYyB2b2lkIGlyb25sYWtlX2dldF9mZGlfbV9uX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPiAtCQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19jb25maWcgKnBpcGVfY29uZmlnKQo+ICtz dGF0aWMgdm9pZCBpbnRlbF9wY2hfdHJhbnNjb2Rlcl9nZXRfbV9uKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAo+ICsJCQkJCSBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbikKPiArewo+ICsJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCWVudW0gcGlwZSBwaXBl ID0gY3J0Yy0+cGlwZTsKPiArCj4gKwltX24tPmxpbmtfbSA9IEk5MTVfUkVBRChQQ0hfVFJBTlNf TElOS19NMShwaXBlKSk7Cj4gKwltX24tPmxpbmtfbiA9IEk5MTVfUkVBRChQQ0hfVFJBTlNfTElO S19OMShwaXBlKSk7Cj4gKwltX24tPmdtY2hfbSA9IEk5MTVfUkVBRChQQ0hfVFJBTlNfREFUQV9N MShwaXBlKSkKPiArCQkmIH5UVV9TSVpFX01BU0s7Cj4gKwltX24tPmdtY2hfbiA9IEk5MTVfUkVB RChQQ0hfVFJBTlNfREFUQV9OMShwaXBlKSk7Cj4gKwltX24tPnR1ID0gKChJOTE1X1JFQUQoUENI X1RSQU5TX0RBVEFfTTEocGlwZSkpCj4gKwkJICAgICYgVFVfU0laRV9NQVNLKSA+PiBUVV9TSVpF X1NISUZUKSArIDE7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGludGVsX2NwdV90cmFuc2NvZGVy X2dldF9tX24oc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJCQkJIGVudW0gdHJhbnNjb2Rl ciB0cmFuc2NvZGVyLAo+ICsJCQkJCSBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm1fbikKPiAgewo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWVudW0gdHJh bnNjb2RlciB0cmFuc2NvZGVyID0gcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyOwo+ICsJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ICsKPiArCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA1KSB7Cj4gKwkJbV9uLT5saW5rX20gPSBJOTE1X1JFQUQoUElQRV9MSU5LX00xKHRyYW5z Y29kZXIpKTsKPiArCQltX24tPmxpbmtfbiA9IEk5MTVfUkVBRChQSVBFX0xJTktfTjEodHJhbnNj b2RlcikpOwo+ICsJCW1fbi0+Z21jaF9tID0gSTkxNV9SRUFEKFBJUEVfREFUQV9NMSh0cmFuc2Nv ZGVyKSkKPiArCQkJJiB+VFVfU0laRV9NQVNLOwo+ICsJCW1fbi0+Z21jaF9uID0gSTkxNV9SRUFE KFBJUEVfREFUQV9OMSh0cmFuc2NvZGVyKSk7Cj4gKwkJbV9uLT50dSA9ICgoSTkxNV9SRUFEKFBJ UEVfREFUQV9NMSh0cmFuc2NvZGVyKSkKPiArCQkJICAgICYgVFVfU0laRV9NQVNLKSA+PiBUVV9T SVpFX1NISUZUKSArIDE7Cj4gKwl9IGVsc2Ugewo+ICsJCW1fbi0+bGlua19tID0gSTkxNV9SRUFE KFBJUEVfTElOS19NX0c0WChwaXBlKSk7Cj4gKwkJbV9uLT5saW5rX24gPSBJOTE1X1JFQUQoUElQ RV9MSU5LX05fRzRYKHBpcGUpKTsKPiArCQltX24tPmdtY2hfbSA9IEk5MTVfUkVBRChQSVBFX0RB VEFfTV9HNFgocGlwZSkpCj4gKwkJCSYgflRVX1NJWkVfTUFTSzsKPiArCQltX24tPmdtY2hfbiA9 IEk5MTVfUkVBRChQSVBFX0RBVEFfTl9HNFgocGlwZSkpOwo+ICsJCW1fbi0+dHUgPSAoKEk5MTVf UkVBRChQSVBFX0RBVEFfTV9HNFgocGlwZSkpCj4gKwkJCSAgICAmIFRVX1NJWkVfTUFTSykgPj4g VFVfU0laRV9TSElGVCkgKyAxOwo+ICsJfQo+ICt9Cj4gKwo+ICt2b2lkIGludGVsX2RwX2dldF9t X24oc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJICAgICAgc3RydWN0IGludGVsX2NydGNf Y29uZmlnICpwaXBlX2NvbmZpZykKPiArewo+ICsJaWYgKGNydGMtPmNvbmZpZy5oYXNfcGNoX2Vu Y29kZXIpCj4gKwkJaW50ZWxfcGNoX3RyYW5zY29kZXJfZ2V0X21fbihjcnRjLCAmcGlwZV9jb25m aWctPmRwX21fbik7Cj4gKwllbHNlCj4gKwkJaW50ZWxfY3B1X3RyYW5zY29kZXJfZ2V0X21fbihj cnRjLCBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIsCj4gKwkJCQkJICAgICAmcGlwZV9jb25m aWctPmRwX21fbik7Cj4gK30KPiAgCj4gLQlwaXBlX2NvbmZpZy0+ZmRpX21fbi5saW5rX20gPSBJ OTE1X1JFQUQoUElQRV9MSU5LX00xKHRyYW5zY29kZXIpKTsKPiAtCXBpcGVfY29uZmlnLT5mZGlf bV9uLmxpbmtfbiA9IEk5MTVfUkVBRChQSVBFX0xJTktfTjEodHJhbnNjb2RlcikpOwo+IC0JcGlw ZV9jb25maWctPmZkaV9tX24uZ21jaF9tID0gSTkxNV9SRUFEKFBJUEVfREFUQV9NMSh0cmFuc2Nv ZGVyKSkKPiAtCQkJCQkmIH5UVV9TSVpFX01BU0s7Cj4gLQlwaXBlX2NvbmZpZy0+ZmRpX21fbi5n bWNoX24gPSBJOTE1X1JFQUQoUElQRV9EQVRBX04xKHRyYW5zY29kZXIpKTsKPiAtCXBpcGVfY29u ZmlnLT5mZGlfbV9uLnR1ID0gKChJOTE1X1JFQUQoUElQRV9EQVRBX00xKHRyYW5zY29kZXIpKQo+ IC0JCQkJICAgJiBUVV9TSVpFX01BU0spID4+IFRVX1NJWkVfU0hJRlQpICsgMTsKPiArc3RhdGlj IHZvaWQgaXJvbmxha2VfZ2V0X2ZkaV9tX25fY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAo+ICsJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX2NvbmZpZyAqcGlwZV9jb25maWcpCj4gK3sKPiAr CWludGVsX2NwdV90cmFuc2NvZGVyX2dldF9tX24oY3J0YywgcGlwZV9jb25maWctPmNwdV90cmFu c2NvZGVyLAo+ICsJCQkJICAgICAmcGlwZV9jb25maWctPmZkaV9tX24pOwo+ICB9Cj4gIAo+ICBz dGF0aWMgdm9pZCBpcm9ubGFrZV9nZXRfcGZpdF9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNy dGMsCj4gQEAgLTgyNDcsNiArODI5MSwxMSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCSAgICAgIHBpcGVfY29uZmlnLT5m ZGlfbV9uLmdtY2hfbSwgcGlwZV9jb25maWctPmZkaV9tX24uZ21jaF9uLAo+ICAJCSAgICAgIHBp cGVfY29uZmlnLT5mZGlfbV9uLmxpbmtfbSwgcGlwZV9jb25maWctPmZkaV9tX24ubGlua19uLAo+ ICAJCSAgICAgIHBpcGVfY29uZmlnLT5mZGlfbV9uLnR1KTsKPiArCURSTV9ERUJVR19LTVMoImRw OiAlaSwgZ21jaF9tOiAldSwgZ21jaF9uOiAldSwgbGlua19tOiAldSwgbGlua19uOiAldSwgdHU6 ICV1XG4iLAo+ICsJCSAgICAgIHBpcGVfY29uZmlnLT5oYXNfZHBfZW5jb2RlciwKPiArCQkgICAg ICBwaXBlX2NvbmZpZy0+ZHBfbV9uLmdtY2hfbSwgcGlwZV9jb25maWctPmRwX21fbi5nbWNoX24s Cj4gKwkJICAgICAgcGlwZV9jb25maWctPmRwX21fbi5saW5rX20sIHBpcGVfY29uZmlnLT5kcF9t X24ubGlua19uLAo+ICsJCSAgICAgIHBpcGVfY29uZmlnLT5kcF9tX24udHUpOwo+ICAJRFJNX0RF QlVHX0tNUygicmVxdWVzdGVkIG1vZGU6XG4iKTsKPiAgCWRybV9tb2RlX2RlYnVnX3ByaW50bW9k ZWxpbmUoJnBpcGVfY29uZmlnLT5yZXF1ZXN0ZWRfbW9kZSk7Cj4gIAlEUk1fREVCVUdfS01TKCJh ZGp1c3RlZCBtb2RlOlxuIik7Cj4gQEAgLTg2MTcsNiArODY2NiwxMyBAQCBpbnRlbF9waXBlX2Nv bmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlQSVBFX0NPTkZfQ0hFQ0tf SShmZGlfbV9uLmxpbmtfbik7Cj4gIAlQSVBFX0NPTkZfQ0hFQ0tfSShmZGlfbV9uLnR1KTsKPiAg Cj4gKwlQSVBFX0NPTkZfQ0hFQ0tfSShoYXNfZHBfZW5jb2Rlcik7Cj4gKwlQSVBFX0NPTkZfQ0hF Q0tfSShkcF9tX24uZ21jaF9tKTsKPiArCVBJUEVfQ09ORl9DSEVDS19JKGRwX21fbi5nbWNoX24p Owo+ICsJUElQRV9DT05GX0NIRUNLX0koZHBfbV9uLmxpbmtfbSk7Cj4gKwlQSVBFX0NPTkZfQ0hF Q0tfSShkcF9tX24ubGlua19uKTsKPiArCVBJUEVfQ09ORl9DSEVDS19JKGRwX21fbi50dSk7Cj4g Kwo+ICAJUElQRV9DT05GX0NIRUNLX0koYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5KTsKPiAg CVBJUEVfQ09ORl9DSEVDS19JKGFkanVzdGVkX21vZGUuY3J0Y19odG90YWwpOwo+ICAJUElQRV9D T05GX0NIRUNLX0koYWRqdXN0ZWRfbW9kZS5jcnRjX2hibGFua19zdGFydCk7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCj4gaW5kZXggOGM3MGE4My4uOWJhNjk3YyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+IEBAIC0xNDQ0LDYgKzE0NDQsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBf Z2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIAlwaXBlX2Nv bmZpZy0+YWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKPiAgCj4gKwlwaXBlX2NvbmZpZy0+ aGFzX2RwX2VuY29kZXIgPSB0cnVlOwo+ICsKPiArCWludGVsX2RwX2dldF9tX24oY3J0YywgcGlw ZV9jb25maWcpOwo+ICsKPiAgCWlmIChkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQgPT0g UE9SVF9BKSB7Cj4gIAkJaWYgKChJOTE1X1JFQUQoRFBfQSkgJiBEUF9QTExfRlJFUV9NQVNLKSA9 PSBEUF9QTExfRlJFUV8xNjBNSFopCj4gIAkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gMTYy MDAwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggYThjZTBiNy4uYTUwOWRkNiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTgwMyw1ICs4MDMsNyBAQCBleHRl cm4gdm9pZCBoc3dfcGM4X3Jlc3RvcmVfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKPiAgZXh0ZXJuIHZvaWQgaW50ZWxfYXV4X2Rpc3BsYXlfcnVudGltZV9nZXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgZXh0ZXJuIHZvaWQgaW50ZWxfYXV4X2Rpc3Bs YXlfcnVudGltZV9wdXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgZXh0 ZXJuIHZvaWQgaTkxNV9kaXNhYmxlX3ZnYV9tZW0oc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4g K2V4dGVybiB2b2lkIGludGVsX2RwX2dldF9tX24oc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4g KwkJCSAgICAgc3RydWN0IGludGVsX2NydGNfY29uZmlnICpwaXBlX2NvbmZpZyk7Cj4gIAo+ICAj ZW5kaWYgLyogX19JTlRFTF9EUlZfSF9fICovCj4gLS0gCj4gMS44LjEuNQo+Cj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGlu ZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApKYW5pIE5pa3Vs YSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK