From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 2/9] drm/i915: Send GCP infoframes for deep color HDMI sinks Date: Tue, 2 Jun 2015 15:58:11 +0300 Message-ID: <20150602125811.GY5176@intel.com> References: <1430834787-10255-1-git-send-email-ville.syrjala@linux.intel.com> <1430834787-10255-3-git-send-email-ville.syrjala@linux.intel.com> <76A9B330A4D78C4D99CB292C4CC06C0E36FEEE43@fmsmsx101.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id B794F6E864 for ; Tue, 2 Jun 2015 05:58:21 -0700 (PDT) Content-Disposition: inline In-Reply-To: <76A9B330A4D78C4D99CB292C4CC06C0E36FEEE43@fmsmsx101.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Konduru, Chandra" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMDEsIDIwMTUgYXQgMDk6NDk6NDBQTSArMDAwMCwgS29uZHVydSwgQ2hhbmRy YSB3cm90ZToKPiAKPiAKPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPiBGcm9tOiBJ bnRlbC1nZnggW21haWx0bzppbnRlbC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmdd IE9uIEJlaGFsZiBPZgo+ID4gdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20KPiA+IFNlbnQ6 IFR1ZXNkYXksIE1heSAwNSwgMjAxNSA3OjA2IEFNCj4gPiBUbzogaW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+ID4gU3ViamVjdDogW0ludGVsLWdmeF0gW1BBVENIIHYyIDIvOV0gZHJt L2k5MTU6IFNlbmQgR0NQIGluZm9mcmFtZXMgZm9yIGRlZXAKPiA+IGNvbG9yIEhETUkgc2lua3MK PiA+IAo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiA+IAo+ID4gR0NQIGluZm9mcmFtZXMgYXJlIHJlcXVpcmVkIHRvIGluZm9ybSB0aGUg SERNSSBzaW5rIGFib3V0IHRoZSBjb2xvciBkZXB0aC4KPiA+IAo+ID4gU2VuZCB0aGUgR0NQIGlu Zm9mcmFtZSB3aGVuZXZlciB0aGUgc2luayBzdXBwb3J0cyBhbnkgZGVlcCBjb2xvciBtb2RlcyBz aW5jZQo+ID4gc3VjaCBzaW5rcyBtdXN0IGFueXdheSBiZSBjYXBhYmxlIG9mIHJlY2VpdmluZyB0 aGVtLiBGb3Igc2lua3MgdGhhdCBkb24ndAo+ID4gc3VwcG9ydCBkZWVwIGNvbG9yIGxldCdzIHNr aXAgdGhlIEdDUCBpbiBjYXNlIGl0IG1pZ2h0IGNvbmZ1c2UgdGhlIHNpbmssIGFsdGhvdWdoCj4g PiBIRE1JIDEuNCBzcGVjIGRvZXMgc2F5IGFsbCBzaW5rcyBtdXN0IGJlIGNhcGFibGUgb2YgcmVj aXZpbmcgdGhlbS4gSW4gdGhlb3J5IHdlCj4gPiBjb3VsZCBza2lwIHRoZSBHQ1AgaW5mb2ZyYW1l IGZvciBkZWVwIGNvbG9yIHNpbmtzIGluIDhicGMgbW9kZSBhcyB3ZWxsIHNpbmNlCj4gPiBzaW5r cyBtdXN0IGZhbGwgYmFjayB0byA4YnBjIHdoZW5ldmVyIEdDUCBpc24ndCByZWNlaXZlZCBmb3Ig c29tZSB0aW1lLgo+ID4gCj4gPiBCU3BlYyBzYXlzIHdlIHNob3VsZCBkaXNhYmxlIEdDUCBhZnRl ciBkaXNhYmxpbmcgdGhlIHBvcnQsIHNvIGRvIHRoYXQgYXMgd2VsbC4KPiA+IAo+ID4gdjI6IHMv aW50ZWxfc2V0X2djcF9pbmZvZnJhbWUvaW50ZWxfaGRtaV9zZXRfZ2NwX2luZm9mcmFtZS8KPiA+ ICAgICBSZWJhc2VkIGR1ZSB0byBjcnRjLT5jb25maWcgY2hhbmdlcwo+ID4gCj4gPiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgIHwgIDMgKysKPiA+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCA3NAo+ID4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNl cnRpb25zKCspCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gaW5kZXggZTYxOWU0 MS4uZGNkOTNiNSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+IEBAIC02MDEw LDYgKzYwMTAsOSBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPiA+ICAjZGVmaW5lIF9W SURFT19ESVBfQ1RMX0EgICAgICAgICAweGUwMjAwCj4gPiAgI2RlZmluZSBfVklERU9fRElQX0RB VEFfQSAgICAgICAgMHhlMDIwOAo+ID4gICNkZWZpbmUgX1ZJREVPX0RJUF9HQ1BfQSAgICAgICAg IDB4ZTAyMTAKPiA+ICsjZGVmaW5lICBHQ1BfQ09MT1JfSU5ESUNBVElPTgkJKDEgPDwgMikKPiA+ ICsjZGVmaW5lICBHQ1BfREVGQVVMVF9QSEFTRV9FTkFCTEUJKDEgPDwgMSkKPiA+ICsjZGVmaW5l ICBHQ1BfQVZfTVVURQkJCSgxIDw8IDApCj4gPiAKPiA+ICAjZGVmaW5lIF9WSURFT19ESVBfQ1RM X0IgICAgICAgICAweGUxMjAwCj4gPiAgI2RlZmluZSBfVklERU9fRElQX0RBVEFfQiAgICAgICAg MHhlMTIwOAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku Ywo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+IGluZGV4IDc5Y2Y0 NDUuLjg3YzQ5MDUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gQEAg LTU0MSw2ICs1NDEsNjYgQEAgc3RhdGljIHZvaWQgZzR4X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBk cm1fZW5jb2Rlcgo+ID4gKmVuY29kZXIsCj4gPiAgCWludGVsX2hkbWlfc2V0X2hkbWlfaW5mb2Zy YW1lKGVuY29kZXIsIGFkanVzdGVkX21vZGUpOyAgfQo+ID4gCj4gPiArc3RhdGljIGJvb2wgaGRt aV9zaW5rX2lzX2RlZXBfY29sb3Ioc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKSB7Cj4gCj4g U29tZSBzdGF0aWMgZnVuY3Rpb25zIGFyZSBwcmVmaXhlZCBidXQgdGhpcyBpc24ndC4gQ2FuIHlv dSBhZGQgcHJlZml4PwoKSXMgdGhlcmUgYW55IGJlbmVmaXQgZnJvbSBhIHByZWZpeD8KCj4gCj4g PiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gPiArCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiArCj4gPiArCVdBUk5fT04oIWRybV9tb2Rlc2V0 X2lzX2xvY2tlZCgmZGV2LQo+ID4gPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpKTsKPiA+ ICsKPiA+ICsJLyoKPiA+ICsJICogSERNSSBjbG9uaW5nIGlzIG9ubHkgc3VwcG9ydGVkIG9uIGc0 eCB3aGljaCBkb2Vzbid0Cj4gPiArCSAqIHN1cHBvcnQgZGVlcCBjb2xvciBvciBHQ1AgaW5mb2Zy YW1lcyBhbnl3YXkgc28gbm8KPiA+ICsJICogbmVlZCB0byB3b3JyeSBhYm91dCBtdWx0aXBsZSBI RE1JIHNpbmtzIGhlcmUuCj4gPiArCSAqLwo+IAo+IFRoZXJlIGlzbid0IGFueSBjb2RlIHNwZWNp ZmljIGZvciBIRE1JIGNsb25pbmcgb3IgbXVsdGlwbGUgSERNSSBzaW5rcyBoZXJlLCAKPiBhbnkg cmVsZXZhbmNlIG9mIGFib3ZlIGNvbW1lbnQuIE9yIGFtIEkgbWlzc2luZyBzb21ldGhpbmcgaGVy ZT8KCkluIGEgY2xvbmVkIHNldHVwIHdlJ2QgZmVlZCBtdWx0aXBsZSBzaW5rcyBmcm9tIHRoZSBz YW1lIHRyYW5zY29kZXIsIHNvCndlJ2QgbmVlZCB0byBiYXNpY2FsbHkgY2hlY2sgdGhhdCBjb25u ZWN0b3ItPmVuY29kZXItPmNydGMgbWF0Y2hlcyBvdXIgY3J0YwpoZXJlLCBhbmQgb25seSByZXR1 cm4gdHJ1ZSBpZiBhbGwgdGhlIHJlbGV2YW50IGNvbm5lY3RvcnMgd2VyZSBkZWVwIGNvbG9yCmNh cGFibGUuIEJ1dCBzaW5jZSB3ZSBjYW4gaWdub3JlIGNsb25pbmcgd2UgY2FuIHN0b3AgbG9va2lu ZyBvbmNlIHdlCmZpbmQgdGhlIGNvbm5lY3RvciBmb3Igb3VyIGN1cnJlbnQgZW5jb2RlciAoaWUu IEhETUkgcG9ydCkuCgo+IAo+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRl di0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsCj4gPiBoZWFkKQo+ID4gKwkJaWYgKGNvbm5l Y3Rvci0+ZW5jb2RlciA9PSBlbmNvZGVyKQo+ID4gKwkJCXJldHVybiBjb25uZWN0b3ItPmRpc3Bs YXlfaW5mby5icGMgPiA4Owo+ID4gKwo+ID4gKwlyZXR1cm4gZmFsc2U7Cj4gPiArfQo+ID4gKwo+ ID4gK3N0YXRpYyBib29sIGludGVsX2hkbWlfc2V0X2djcF9pbmZvZnJhbWUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKSB7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGVuY29kZXItPmRldi0+ZGV2X3ByaXZhdGU7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiA+ICsJdTMyIHJlZywgdmFsID0g MDsKPiA+ICsKPiA+ICsJaWYgKEhBU19EREkoZGV2X3ByaXYpKQo+ID4gKwkJcmVnID0gSFNXX1RW SURFT19ESVBfR0NQKGNydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXIpOwo+ID4gKwllbHNlIGlm IChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkKPiA+ICsJCXJlZyA9IFZMVl9UVklERU9fRElQX0dD UChjcnRjLT5waXBlKTsKPiA+ICsJZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdi0+ZGV2 KSkKPiA+ICsJCXJlZyA9IFRWSURFT19ESVBfR0NQKGNydGMtPnBpcGUpOwo+ID4gKwllbHNlCj4g PiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCj4gPiArCS8qIEluZGljYXRlIGNvbG9yIGRlcHRoIHdo ZW5ldmVuIHRoZSBzaW5rIHN1cHBvcnRzIGRlZXAgY29sb3IgKi8KPiAKPiBUeXBvCj4gCj4gPiAr CWlmIChoZG1pX3NpbmtfaXNfZGVlcF9jb2xvcihlbmNvZGVyKSkKPiA+ICsJCXZhbCB8PSBHQ1Bf Q09MT1JfSU5ESUNBVElPTjsKPiA+ICsKPiA+ICsJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4gPiAr Cj4gPiArCXJldHVybiB2YWwgIT0gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgaW50 ZWxfZGlzYWJsZV9nY3BfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKSB7Cj4gPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmJhc2UuZGV2LT5kZXZf cHJpdmF0ZTsKPiA+ICsJdTMyIHJlZzsKPiA+ICsKPiA+ICsJaWYgKEhBU19EREkoZGV2X3ByaXYp KQo+ID4gKwkJcmVnID0gSFNXX1RWSURFT19ESVBfQ1RMKGNydGMtPmNvbmZpZy0+Y3B1X3RyYW5z Y29kZXIpOwo+ID4gKwllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkKPiA+ICsJCXJl ZyA9IFZMVl9UVklERU9fRElQX0NUTChjcnRjLT5waXBlKTsKPiA+ICsJZWxzZSBpZiAoSEFTX1BD SF9TUExJVChkZXZfcHJpdi0+ZGV2KSkKPiA+ICsJCXJlZyA9IFRWSURFT19ESVBfQ1RMKGNydGMt PnBpcGUpOwo+ID4gKwllbHNlCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCUk5MTVfV1JJVEUo cmVnLCBJOTE1X1JFQUQocmVnKSAmIH5WSURFT19ESVBfRU5BQkxFX0dDUCk7IH0KPiA+ICsKPiA+ ICBzdGF0aWMgdm9pZCBpYnhfc2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyLAo+ID4gIAkJCSAgICAgICBib29sIGVuYWJsZSwKPiA+ICAJCQkgICAgICAgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUpIEBAIC0KPiA+IDU4MSw2ICs2NDEsOSBAQCBz dGF0aWMgdm9pZCBpYnhfc2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAo+ID4gIAl2YWwgJj0gfihWSURFT19ESVBfRU5BQkxFX1ZFTkRPUiB8IFZJREVPX0RJUF9FTkFC TEVfR0FNVVQgfAo+ID4gIAkJIFZJREVPX0RJUF9FTkFCTEVfR0NQKTsKPiA+IAo+ID4gKwlpZiAo aW50ZWxfaGRtaV9zZXRfZ2NwX2luZm9mcmFtZShlbmNvZGVyKSkKPiA+ICsJCXZhbCB8PSBWSURF T19ESVBfRU5BQkxFX0dDUDsKPiA+ICsKPiA+ICAJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4gPiAg CVBPU1RJTkdfUkVBRChyZWcpOwo+ID4gCj4gPiBAQCAtNjE4LDYgKzY4MSw5IEBAIHN0YXRpYyB2 b2lkIGNwdF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIKPiA+ICplbmNvZGVyLAo+ ID4gIAl2YWwgJj0gfihWSURFT19ESVBfRU5BQkxFX1ZFTkRPUiB8IFZJREVPX0RJUF9FTkFCTEVf R0FNVVQgfAo+ID4gIAkJIFZJREVPX0RJUF9FTkFCTEVfR0NQKTsKPiA+IAo+ID4gKwlpZiAoaW50 ZWxfaGRtaV9zZXRfZ2NwX2luZm9mcmFtZShlbmNvZGVyKSkKPiA+ICsJCXZhbCB8PSBWSURFT19E SVBfRU5BQkxFX0dDUDsKPiA+ICsKPiA+ICAJSTkxNV9XUklURShyZWcsIHZhbCk7Cj4gPiAgCVBP U1RJTkdfUkVBRChyZWcpOwo+ID4gCj4gPiBAQCAtNjY2LDYgKzczMiw5IEBAIHN0YXRpYyB2b2lk IHZsdl9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIKPiA+ICplbmNvZGVyLAo+ID4g IAl2YWwgJj0gfihWSURFT19ESVBfRU5BQkxFX0FWSSB8IFZJREVPX0RJUF9FTkFCTEVfVkVORE9S IHwKPiA+ICAJCSBWSURFT19ESVBfRU5BQkxFX0dBTVVUIHwgVklERU9fRElQX0VOQUJMRV9HQ1Ap Owo+ID4gCj4gPiArCWlmIChpbnRlbF9oZG1pX3NldF9nY3BfaW5mb2ZyYW1lKGVuY29kZXIpKQo+ ID4gKwkJdmFsIHw9IFZJREVPX0RJUF9FTkFCTEVfR0NQOwo+ID4gKwo+IAo+IFRoZXJlIGlzIGEg Y29tbWVudCBpbiB0aGUgY29kZSB0aGF0IAo+ICJOb3RlIHRoYXQgZzR4L3ZsdiBkb24ndCBzdXBw b3J0IDEyYnBjIGhkbWkgb3V0cHV0cy4iCj4gSXMgYWJvdmUgY2FsbCBzdGlsbCByZXF1aXJlZCBm b3Igdmx2PyBPciBuZWVkIGFuIHVwZGF0ZSB0byB0aGF0IGNvbW1lbnQuCgpWTFYvQ0hWIHN1cHBv cnQgdGhlIEdDUCBpbmZvZnJhbWUgZXZlbiB0aG91Z2ggdGhleSBkb24ndCBzdXBwb3J0CjEyYnBj IG91dHB1dC4gVGhlIHdheSBJIGRlY2lkZWQgdG8gZG8gdGhpbmdzIGlzIHRvIHNlbmQgdGhlIEdD UAppbmZvZnJhbWUgd2hlbmV2ZXIgdGhlcmUncyBhIGRlZXAgY29sb3Igc2luayBob29rZWQgdXAs IGV2ZW4gaWYKd2UgZmVlZCBpdCA4YnBjIGRhdGEuCgo+IAo+ID4gIAlJOTE1X1dSSVRFKHJlZywg dmFsKTsKPiA+ICAJUE9TVElOR19SRUFEKHJlZyk7Cj4gPiAKPiA+IEBAIC02OTUsNiArNzY0LDkg QEAgc3RhdGljIHZvaWQgaHN3X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2Rlcgo+ID4g KmVuY29kZXIsCj4gPiAgCXZhbCAmPSB+KFZJREVPX0RJUF9FTkFCTEVfVlNDX0hTVyB8Cj4gPiBW SURFT19ESVBfRU5BQkxFX0dDUF9IU1cgfAo+ID4gIAkJIFZJREVPX0RJUF9FTkFCTEVfVlNfSFNX IHwKPiA+IFZJREVPX0RJUF9FTkFCTEVfR01QX0hTVyk7Cj4gPiAKPiA+ICsJaWYgKGludGVsX2hk bWlfc2V0X2djcF9pbmZvZnJhbWUoZW5jb2RlcikpCj4gPiArCQl2YWwgfD0gVklERU9fRElQX0VO QUJMRV9HQ1BfSFNXOwo+ID4gKwo+ID4gIAlJOTE1X1dSSVRFKHJlZywgdmFsKTsKPiA+ICAJUE9T VElOR19SRUFEKHJlZyk7Cj4gPiAKPiA+IEBAIC05ODYsNiArMTA1OCw4IEBAIHN0YXRpYyB2b2lk IGludGVsX2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ID4gKmVuY29kZXIpCj4g PiAKPiA+ICAJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKPiA+ICAJCWNodl9wb3dlcmdhdGVfcGh5 X2xhbmVzKGVuY29kZXIsIDB4Zik7Cj4gPiArCj4gPiArCWludGVsX2Rpc2FibGVfZ2NwX2luZm9m cmFtZSh0b19pbnRlbF9jcnRjKGVuY29kZXItPmJhc2UuY3J0YykpOwo+ID4gIH0KPiA+IAo+ID4g IHN0YXRpYyBpbnQgaGRtaV9wb3J0Y2xvY2tfbGltaXQoc3RydWN0IGludGVsX2hkbWkgKmhkbWks IGJvb2wgcmVzcGVjdF9kdmlfbGltaXQpCj4gPiAtLQo+ID4gMi4wLjUKPiA+IAo+ID4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IGh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApW aWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==