From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH v2 07/10] drm/i915: Undiplicate VLV signal level code Date: Tue, 19 Apr 2016 13:37:26 -0700 Message-ID: <20160419203726.GB2313@shiv> References: <1460569673-13694-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1460569673-13694-8-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id D213D6E843 for ; Tue, 19 Apr 2016 20:37:26 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1460569673-13694-8-git-send-email-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan de Oliveira Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBBcHIgMTMsIDIwMTYgYXQgMDg6NDc6NTBQTSArMDMwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IFRoZSBsb2dpYyBmb3Igc2V0dGluZyBzaWduYWwgbGV2ZWxz IGlzIHVzZWQgZm9yIGJvdGggSERNSSBhbmQgRFAgd2l0aAo+IHNtYWxsIHZhcmlhdGlvbnMuIEJ1 dCBpdCBpcyBzaW1pbGFyIGVub3VnaCB0byBwdXQgYmVoaW5kIGEgZnVuY3Rpb24KPiBjYWxsZWQg ZnJvbSB0aGUgZW5jb2RlcnMuCj4gCj4gU2lnbmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRl IE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFAaW50ZWwuY29tPgo+IC0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgIHwgIDQgKysrKwo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgIHwgNDMgKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBpb19waHku YyB8IDI2ICsrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMgICAgIHwgMTQgKysrKy0tLS0tLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgNDkgaW5z ZXJ0aW9ucygrKSwgMzggZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g aW5kZXggODVjMDYxMC4uZjI0ODFhMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBA IC0zNTY1LDYgKzM1NjUsMTAgQEAgdm9pZCBjaHZfcGh5X3ByZV9lbmNvZGVyX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cj4gIHZvaWQgY2h2X3BoeV9yZWxlYXNlX2NsMl9v dmVycmlkZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cj4gIHZvaWQgY2h2X3BoeV9w b3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ICAKPiArdm9pZCB2 bHZfc2V0X3BoeV9zaWduYWxfbGV2ZWwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g KwkJCSAgICAgIHUzMiBkZW1waF9yZWdfdmFsdWUsIHUzMiBwcmVlbXBoX3JlZ192YWx1ZSwKPiAr CQkJICAgICAgdTMyIHVuaXF0cmFuc2NhbGVfcmVnX3ZhbHVlLCB1MzIgdHgzX2RlbXBoKTsKPiAr Cj4gIGludCBpbnRlbF9ncHVfZnJlcShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IGludCB2YWwpOwo+ICBpbnQgaW50ZWxfZnJlcV9vcGNvZGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBpbnQgdmFsKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5k ZXggY2RhY2Q4Yi4uM2U0MjM1NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0z MDA5LDE2ICszMDA5LDEwIEBAIGludGVsX2RwX3ByZV9lbXBoYXNpc19tYXgoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCwgdWludDhfdCB2b2x0YWdlX3N3aW5nKQo+ICAKPiAgc3RhdGljIHVpbnQz Ml90IHZsdl9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAt CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAt CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQo+IC0JCXRvX2ludGVsX2Ny dGMoZHBvcnQtPmJhc2UuYmFzZS5jcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyID0gJmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZTsKPiAgCXVuc2lnbmVkIGxvbmcg ZGVtcGhfcmVnX3ZhbHVlLCBwcmVlbXBoX3JlZ192YWx1ZSwKPiAgCQl1bmlxdHJhbnNjYWxlX3Jl Z192YWx1ZTsKPiAgCXVpbnQ4X3QgdHJhaW5fc2V0ID0gaW50ZWxfZHAtPnRyYWluX3NldFswXTsK PiAtCWVudW0gZHBpb19jaGFubmVsIHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7 Cj4gLQlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gIAo+ICAJc3dpdGNoICh0cmFpbl9z ZXQgJiBEUF9UUkFJTl9QUkVfRU1QSEFTSVNfTUFTSykgewo+ICAJY2FzZSBEUF9UUkFJTl9QUkVf RU1QSF9MRVZFTF8wOgo+IEBAIC0zMDkzLDE2ICszMDg3LDggQEAgc3RhdGljIHVpbnQzMl90IHZs dl9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAkJcmV0dXJuIDA7 Cj4gIAl9Cj4gIAo+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOwo+IC0Jdmx2X2Rw aW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9UWF9EVzUocG9ydCksIDB4MDAwMDAwMDApOwo+ IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9UWF9EVzQocG9ydCksIGRlbXBo X3JlZ192YWx1ZSk7Cj4gLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1RYX0RX Mihwb3J0KSwKPiAtCQkJIHVuaXF0cmFuc2NhbGVfcmVnX3ZhbHVlKTsKPiAtCXZsdl9kcGlvX3dy aXRlKGRldl9wcml2LCBwaXBlLCBWTFZfVFhfRFczKHBvcnQpLCAweDBDNzgyMDQwKTsKPiAtCXZs dl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTX0RXMTEocG9ydCksIDB4MDAwMzAw MDApOwo+IC0Jdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1NfRFc5KHBvcnQp LCBwcmVlbXBoX3JlZ192YWx1ZSk7Cj4gLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwg VkxWX1RYX0RXNShwb3J0KSwgMHg4MDAwMDAwMCk7Cj4gLQltdXRleF91bmxvY2soJmRldl9wcml2 LT5zYl9sb2NrKTsKPiArCXZsdl9zZXRfcGh5X3NpZ25hbF9sZXZlbChlbmNvZGVyLCBkZW1waF9y ZWdfdmFsdWUsIHByZWVtcGhfcmVnX3ZhbHVlLAo+ICsJCQkJIHVuaXF0cmFuc2NhbGVfcmVnX3Zh bHVlLCAwKTsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQo+IEBAIC00Mjg1LDE3ICs0MjcxLDYgQEAg aW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0 b3IpCj4gIAkJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF90eXBlID0gMDsKPiAgCQlpbnRlbF9k cC0+Y29tcGxpYW5jZV90ZXN0X2RhdGEgPSAwOwo+ICAKPiAtCQkvKgo+IC0JCSAqIElmIHdlIHdl cmUgaW4gTVNUIG1vZGUsIGFuZCBkZXZpY2UgaXMgbm90IHRoZXJlLAo+IC0JCSAqIGdldCBvdXQg b2YgTVNUIG1vZGUKPiAtCQkgKi8KPiAtCQlpZiAoaW50ZWxfZHAtPmlzX21zdCkgewo+IC0JCQlE Uk1fREVCVUdfS01TKCJNU1QgZGV2aWNlIG1heSBoYXZlIGRpc2FwcGVhcmVkICVkIHZzICVkXG4i LAo+IC0JCQkJICAgICAgaW50ZWxfZHAtPmlzX21zdCwgaW50ZWxfZHAtPm1zdF9tZ3IubXN0X3N0 YXRlKTsKPiAtCQkJaW50ZWxfZHAtPmlzX21zdCA9IGZhbHNlOwo+IC0JCQlkcm1fZHBfbXN0X3Rv cG9sb2d5X21ncl9zZXRfbXN0KCZpbnRlbF9kcC0+bXN0X21nciwKPiAtCQkJCQkJCWludGVsX2Rw LT5pc19tc3QpOwo+IC0JCX0KPiAgCQlnb3RvIG91dDsKPiAgCX0KPiAgCj4gQEAgLTQzNTUsNiAr NDMzMCwxOCBAQCBpbnRlbF9kcF9sb25nX3B1bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmlu dGVsX2Nvbm5lY3RvcikKPiAgb3V0Ogo+ICAJaWYgKHN0YXR1cyAhPSBjb25uZWN0b3Jfc3RhdHVz X2Nvbm5lY3RlZCkgewo+ICAJCWludGVsX2RwX3Vuc2V0X2VkaWQoaW50ZWxfZHApOwo+ICsKPiAr CQkvKgo+ICsJCSAqIElmIHdlIHdlcmUgaW4gTVNUIG1vZGUsIGFuZCBkZXZpY2UgaXMgbm90IHRo ZXJlLAo+ICsJCSAqIGdldCBvdXQgb2YgTVNUIG1vZGUKPiArCQkgKi8KPiArCQlpZiAoaW50ZWxf ZHAtPmlzX21zdCkgewo+ICsJCQlEUk1fREVCVUdfS01TKCJNU1QgZGV2aWNlIG1heSBoYXZlIGRp c2FwcGVhcmVkICVkIHZzICVkXG4iLAo+ICsJCQkJICAgICAgaW50ZWxfZHAtPmlzX21zdCwgaW50 ZWxfZHAtPm1zdF9tZ3IubXN0X3N0YXRlKTsKPiArCQkJaW50ZWxfZHAtPmlzX21zdCA9IGZhbHNl Owo+ICsJCQlkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9zZXRfbXN0KCZpbnRlbF9kcC0+bXN0X21n ciwKPiArCQkJCQkJCWludGVsX2RwLT5pc19tc3QpOwo+ICsJCX0KClRoZSB0d28gaHVua3MgYWJv dmUgc2VlbSB1bnJlbGF0ZWQgdG8gd2hhdCB0aGUgcGF0Y2ggc2V0IGlzIHRyeWluZyB0byBkbyBh bmQKd291bGQgYnJlYWsgRFAgTVNUIGFnYWluLiA7KQoKSmltCgoKPiAgCX0KPiAgCj4gIAlpbnRl bF9kaXNwbGF5X3Bvd2VyX3B1dCh0b19pOTE1KGRldiksIHBvd2VyX2RvbWFpbik7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jCj4gaW5kZXggMjQwMDU1NC4uZDllNjQ4MiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBpb19waHkuYwo+IEBAIC0zNjksMyArMzY5LDI5 IEBAIHZvaWQgY2h2X3BoeV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gIAkgKi8KPiAgCWNodl9waHlfcG93ZXJnYXRlX2xhbmVzKGVuY29kZXIsIGZhbHNlLCAw eDApOwo+ICB9Cj4gKwo+ICt2b2lkIHZsdl9zZXRfcGh5X3NpZ25hbF9sZXZlbChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgICAgdTMyIGRlbXBoX3JlZ192YWx1ZSwgdTMy IHByZWVtcGhfcmVnX3ZhbHVlLAo+ICsJCQkgICAgICB1MzIgdW5pcXRyYW5zY2FsZV9yZWdfdmFs dWUsIHUzMiB0eDNfZGVtcGgpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+ YmFzZSk7Cj4gKwllbnVtIGRwaW9fY2hhbm5lbCBwb3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwo ZHBvcnQpOwo+ICsJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICsKPiArCW11dGV4X2xv Y2soJmRldl9wcml2LT5zYl9sb2NrKTsKPiArCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBl LCBWTFZfVFhfRFc1KHBvcnQpLCAweDAwMDAwMDAwKTsKPiArCXZsdl9kcGlvX3dyaXRlKGRldl9w cml2LCBwaXBlLCBWTFZfVFhfRFc0KHBvcnQpLCBkZW1waF9yZWdfdmFsdWUpOwo+ICsJdmx2X2Rw aW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9UWF9EVzIocG9ydCksCj4gKwkJCSB1bmlxdHJh bnNjYWxlX3JlZ192YWx1ZSk7Cj4gKwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxW X1RYX0RXMyhwb3J0KSwgMHgwQzc4MjA0MCk7Cj4gKwo+ICsJaWYgKHR4M19kZW1waCkKPiArCQl2 bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1RYM19EVzQocG9ydCksIHR4M19kZW1w aCk7Cj4gKwo+ICsJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1NfRFcxMShw b3J0KSwgMHgwMDAzMDAwMCk7Cj4gKwl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxW X1BDU19EVzkocG9ydCksIHByZWVtcGhfcmVnX3ZhbHVlKTsKPiArCXZsdl9kcGlvX3dyaXRlKGRl dl9wcml2LCBwaXBlLCBWTFZfVFhfRFc1KHBvcnQpLCBEUElPX1RYX09DQUxJTklUX0VOKTsKPiAr CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPnNiX2xvY2spOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkbWkuYwo+IGluZGV4IGY0MjRhZjUuLjkzODY3NzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaGRtaS5jCj4gQEAgLTE2MDEsMjEgKzE2MDEsMTUgQEAgc3RhdGljIHZvaWQgdmx2X2hk bWlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCXZhbCB8PSAw eDAwMTAwMGM0Owo+ICAJdmx2X2RwaW9fd3JpdGUoZGV2X3ByaXYsIHBpcGUsIFZMVl9QQ1NfRFc4 KHBvcnQpLCB2YWwpOwo+ICAKPiAtCS8qIEhETUkgMS4wVi0yZEIgKi8KPiAtCXZsdl9kcGlvX3dy aXRlKGRldl9wcml2LCBwaXBlLCBWTFZfVFhfRFc1KHBvcnQpLCAwKTsKPiAtCXZsdl9kcGlvX3dy aXRlKGRldl9wcml2LCBwaXBlLCBWTFZfVFhfRFc0KHBvcnQpLCAweDJiMjQ1ZjVmKTsKPiAtCXZs dl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfVFhfRFcyKHBvcnQpLCAweDU1NzhiODNh KTsKPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfVFhfRFczKHBvcnQpLCAw eDBjNzgyMDQwKTsKPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfVFgzX0RX NChwb3J0KSwgMHgyYjI0Nzg3OCk7Cj4gLQl2bHZfZHBpb193cml0ZShkZXZfcHJpdiwgcGlwZSwg VkxWX1BDU19EVzExKHBvcnQpLCAweDAwMDMwMDAwKTsKPiAtCXZsdl9kcGlvX3dyaXRlKGRldl9w cml2LCBwaXBlLCBWTFZfUENTX0RXOShwb3J0KSwgMHgwMDAwMjAwMCk7Cj4gLQl2bHZfZHBpb193 cml0ZShkZXZfcHJpdiwgcGlwZSwgVkxWX1RYX0RXNShwb3J0KSwgRFBJT19UWF9PQ0FMSU5JVF9F Tik7Cj4gLQo+ICAJLyogUHJvZ3JhbSBsYW5lIGNsb2NrICovCj4gIAl2bHZfZHBpb193cml0ZShk ZXZfcHJpdiwgcGlwZSwgVkxWX1BDU19EVzE0KHBvcnQpLCAweDAwNzYwMDE4KTsKPiAgCXZsdl9k cGlvX3dyaXRlKGRldl9wcml2LCBwaXBlLCBWTFZfUENTX0RXMjMocG9ydCksIDB4MDA0MDA4ODgp Owo+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gIAo+ICsJLyogSERNSSAx LjBWLTJkQiAqLwo+ICsJdmx2X3NldF9waHlfc2lnbmFsX2xldmVsKGVuY29kZXIsIDB4MmIyNDVm NWYsIDB4MDAwMDIwMDAsIDB4NTU3OGI4M2EsCj4gKwkJCQkgMHgyYjI0Nzg3OCk7Cj4gKwo+ICAJ aW50ZWxfaGRtaS0+c2V0X2luZm9mcmFtZXMoJmVuY29kZXItPmJhc2UsCj4gIAkJCQkgICBpbnRl bF9jcnRjLT5jb25maWctPmhhc19oZG1pX3NpbmssCj4gIAkJCQkgICBhZGp1c3RlZF9tb2RlKTsK PiAtLSAKPiAyLjQuMTEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==