From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: Re: [PATCH 4/9] drm/i915: Introduce intel_prepare_cursor_plane() Date: Fri, 28 Nov 2014 15:12:40 +0200 Message-ID: <547874C8.8030501@gmail.com> References: <1416858786-25376-1-git-send-email-matthew.d.roper@intel.com> <1416858786-25376-5-git-send-email-matthew.d.roper@intel.com> <5478674C.8040305@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id C753B6EDCD for ; Fri, 28 Nov 2014 05:12:32 -0800 (PST) In-Reply-To: <5478674C.8040305@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMTEvMjgvMjAxNCAwMjoxNSBQTSwgQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIHdyb3Rl Ogo+IE9uIDExLzI0LzIwMTQgMDk6NTMgUE0sIE1hdHQgUm9wZXIgd3JvdGU6Cj4+IFByaW1hcnkg YW5kIHNwcml0ZSBwbGFuZXMgaGF2ZSBhbHJlYWR5IGJlZW4gcmVmYWN0b3JlZCB0byBpbmNsdWRl IGEKPj4gJ3ByZXBhcmUnIHN0ZXAgd2hpY2ggaGFuZGxlcyBhbGwgdGhlIGNvbW1pdC10aW1lIG9w ZXJhdGlvbnMgdGhhdCBjb3VsZAo+PiBmYWlsIChpLmUuLCBwaW5uaW5nIGJ1ZmZlcnMgYW5kIHN1 Y2gpLiAgUmVmYWN0b3IgdGhlIGN1cnNvciBjb21taXQgaW4gYQo+PiBzaW1pbGFyIG1hbm5lci4K Pj4KPj4gRm9yIHNpbXBsaWNpdHkgYW5kIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgcGxhbmUgdHlw ZXMsIHdlIGFsc28gc3dpdGNoIHRvCj4+IHVzaW5nIGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2Jq KCkgdG8gcGVyZm9ybSBvdXIgcGlubmluZyBmb3IKPj4gbm9uLXBoeXNpY2FsIGN1cnNvcnMuICBU aGlzIHdpbGwgYWxsb3cgdXMgdG8gbW9yZSBlYXNpbHkgbWlncmF0ZSB0aGUKPj4gY29kZSBpbnRv IHRoZSBhdG9taWMgJ2JlZ2luJyBoYW5kbGVyIGluIGEgcGxhbmUtYWdub3N0aWMgbWFubmVyIGlu IGEKPj4gZnV0dXJlIHBhdGNoc2V0Lgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxt YXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgfCAxMTQKPj4gKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0KPj4gICAxIGZpbGUgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25z KC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gaW5kZXggMTc3 ODhmOC4uZmY5NGU0MyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ PiBAQCAtMTE4OTksMTkgKzExODk5LDUxIEBAIGludGVsX2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1 Y3QgZHJtX3BsYW5lCj4+ICpwbGFuZSwKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGludAo+PiAraW50 ZWxfcHJlcGFyZV9jdXJzb3JfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+ICsgICAg ICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQo+PiArewo+PiArICAg IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2Owo+PiArICAgIHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmZiOwo+PiArICAgIHN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhzdGF0ZS0+Y3J0Yyk7Cj4+ICsgICAgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihmYik7Cj4+ICsgICAgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9vYmoocGxhbmUtPmZiKTsK Pj4gKyAgICBlbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4+ICsgICAgaW50IHJl dCA9IDA7Cj4+ICsKPj4gKyAgICBpZiAob2xkX29iaiAhPSBvYmopIHsKPj4gKyAgICAgICAgLyog d2Ugb25seSBuZWVkIHRvIHBpbiBpbnNpZGUgR1RUIGlmIGN1cnNvciBpcyBub24tcGh5ICovCj4+ ICsgICAgICAgIG11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKPj4gKyAgICAgICAgaWYg KCFJTlRFTF9JTkZPKGRldiktPmN1cnNvcl9uZWVkc19waHlzaWNhbCkgewo+PiArICAgICAgICAg ICAgaWYgKG9iaikKPj4gKyAgICAgICAgICAgICAgICByZXQgPSBpbnRlbF9waW5fYW5kX2ZlbmNl X2ZiX29iaihwbGFuZSwgZmIsIE5VTEwpOwo+PiArICAgICAgICAgICAgaWYgKHJldCA9PSAwKQo+ PiArICAgICAgICAgICAgICAgIGk5MTVfZ2VtX3RyYWNrX2ZiKGludGVsX2NydGMtPmN1cnNvcl9i bywgb2JqLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICBJTlRFTF9GUk9OVEJVRkZFUl9D VVJTT1IocGlwZSkpOwo+Cj4gU2hvdWxkbid0IHRoZSBmcm9udGJ1ZmZlciBiaXRzIGJlIHVwZGF0 ZWQgaW4gdGhlIGVsc2UgY2FzZSB0b28/IEF0IGxlYXN0Cj4gdGhleSB3ZXJlLCBwcmlvciB0byB0 aGlzIHBhdGNoLgo+Cj4+ICsgICAgICAgIH0gZWxzZSB7Cj4+ICsgICAgICAgICAgICBpbnQgYWxp Z24gPSBJU19JODMwKGRldikgPyAxNiAqIDEwMjQgOiAyNTY7Cj4+ICsgICAgICAgICAgICBpZiAo b2JqKQo+PiArICAgICAgICAgICAgICAgIHJldCA9IGk5MTVfZ2VtX29iamVjdF9hdHRhY2hfcGh5 cyhvYmosIGFsaWduKTsKPj4gKyAgICAgICAgICAgIGlmIChyZXQpCj4+ICsgICAgICAgICAgICAg ICAgRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGF0dGFjaCBwaHlzIG9iamVjdFxuIik7Cj4+ICsg ICAgICAgIH0KPj4gKyAgICAgICAgbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4+ ICsgICAgfQo+PiArCj4+ICsgICAgcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZv aWQKPj4gICBpbnRlbF9jb21taXRfY3Vyc29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+PiAgICAgICAgICAgICAgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSkKPj4g ICB7Cj4+ICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5jcnRjOwo+PiAgICAg ICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+PiAtICAgIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ICAgICAgIHN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPj4gICAgICAg c3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsK Pj4gICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGludGVsX2ZiX29iaihz dGF0ZS0+ZmIpOwo+PiAgICAgICBlbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4+ ICAgICAgIHVuc2lnbmVkIG9sZF93aWR0aDsKPj4gICAgICAgdWludDMyX3QgYWRkcjsKPj4gLSAg ICBpbnQgcmV0Owo+Pgo+PiAgICAgICBjcnRjLT5jdXJzb3JfeCA9IHN0YXRlLT5vcmlnX2RzdC54 MTsKPj4gICAgICAgY3J0Yy0+Y3Vyc29yX3kgPSBzdGF0ZS0+b3JpZ19kc3QueTE7Cj4+IEBAIC0x MTkyOSw3NSArMTE5NjEsMTggQEAgaW50ZWxfY29tbWl0X2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lCj4+ICpwbGFuZSwKPj4gICAgICAgaWYgKGludGVsX2NydGMtPmN1cnNvcl9ibyA9PSBv YmopCj4+ICAgICAgICAgICBnb3RvIHVwZGF0ZTsKPj4KPj4gLSAgICAvKiBpZiB3ZSB3YW50IHRv IHR1cm4gb2ZmIHRoZSBjdXJzb3IgaWdub3JlIHdpZHRoIGFuZCBoZWlnaHQgKi8KPj4gLSAgICBp ZiAoIW9iaikgewo+PiAtICAgICAgICBEUk1fREVCVUdfS01TKCJjdXJzb3Igb2ZmXG4iKTsKPj4g KyAgICBpZiAoIW9iaikKPj4gICAgICAgICAgIGFkZHIgPSAwOwo+PiAtICAgICAgICBtdXRleF9s b2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4+IC0gICAgICAgIGdvdG8gZmluaXNoOwo+PiAtICAg IH0KPj4gLQo+PiAtICAgIC8qIHdlIG9ubHkgbmVlZCB0byBwaW4gaW5zaWRlIEdUVCBpZiBjdXJz b3IgaXMgbm9uLXBoeSAqLwo+PiAtICAgIG11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsK Pj4gLSAgICBpZiAoIUlOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKSB7Cj4+ IC0gICAgICAgIHVuc2lnbmVkIGFsaWdubWVudDsKPj4gLQo+PiAtICAgICAgICAvKgo+PiAtICAg ICAgICAgKiBHbG9iYWwgZ3R0IHB0ZSByZWdpc3RlcnMgYXJlIHNwZWNpYWwgcmVnaXN0ZXJzIHdo aWNoIGFjdHVhbGx5Cj4+IC0gICAgICAgICAqIGZvcndhcmQgd3JpdGVzIHRvIGEgY2h1bmsgb2Yg c3lzdGVtIG1lbW9yeS4gV2hpY2ggbWVhbnMgdGhhdAo+PiAtICAgICAgICAgKiB0aGVyZSBpcyBu byByaXNrIHRoYXQgdGhlIHJlZ2lzdGVyIHZhbHVlcyBkaXNhcHBlYXIgYXMgc29vbgo+PiAtICAg ICAgICAgKiBhcyB3ZSBjYWxsIGludGVsX3J1bnRpbWVfcG1fcHV0KCksIHNvIGl0IGlzIGNvcnJl Y3QgdG8gd3JhcAo+PiAtICAgICAgICAgKiBvbmx5IHRoZSBwaW4vdW5waW4vZmVuY2UgYW5kIG5v dCBtb3JlLgo+PiAtICAgICAgICAgKi8KPj4gLSAgICAgICAgaW50ZWxfcnVudGltZV9wbV9nZXQo ZGV2X3ByaXYpOwo+PiAtCj4+IC0gICAgICAgIC8qIE5vdGUgdGhhdCB0aGUgdy9hIGFsc28gcmVx dWlyZXMgMiBQVEUgb2YgcGFkZGluZyBmb2xsb3dpbmcKPj4gLSAgICAgICAgICogdGhlIGJvLiBX ZSBjdXJyZW50bHkgZmlsbCBhbGwgdW51c2VkIFBURSB3aXRoIHRoZSBzaGFkb3cKPj4gLSAgICAg ICAgICogcGFnZSBhbmQgc28gd2Ugc2hvdWxkIGFsd2F5cyBoYXZlIHZhbGlkIFBURSBmb2xsb3dp bmcgdGhlCj4+IC0gICAgICAgICAqIGN1cnNvciBwcmV2ZW50aW5nIHRoZSBWVC1kIHdhcm5pbmcu Cj4+IC0gICAgICAgICAqLwo+PiAtICAgICAgICBhbGlnbm1lbnQgPSAwOwo+PiAtICAgICAgICBp ZiAobmVlZF92dGRfd2EoZGV2KSkKPj4gLSAgICAgICAgICAgIGFsaWdubWVudCA9IDY0KjEwMjQ7 Cj4+IC0KPj4gLSAgICAgICAgcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3Bs YW5lKG9iaiwgYWxpZ25tZW50LAo+PiBOVUxMKTsKPj4gLSAgICAgICAgaWYgKHJldCkgewo+PiAt ICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIG1vdmUgY3Vyc29yIGJvIGludG8g dGhlIEdUVFxuIik7Cj4+IC0gICAgICAgICAgICBpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJp dik7Cj4+IC0gICAgICAgICAgICBnb3RvIGZhaWxfbG9ja2VkOwo+PiAtICAgICAgICB9Cj4+IC0K Pj4gLSAgICAgICAgcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3B1dF9mZW5jZShvYmopOwo+PiAtICAg ICAgICBpZiAocmV0KSB7Cj4+IC0gICAgICAgICAgICBEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8g cmVsZWFzZSBmZW5jZSBmb3IgY3Vyc29yIik7Cj4+IC0gICAgICAgICAgICBpbnRlbF9ydW50aW1l X3BtX3B1dChkZXZfcHJpdik7Cj4+IC0gICAgICAgICAgICBnb3RvIGZhaWxfdW5waW47Cj4+IC0g ICAgICAgIH0KPj4gLQo+PiArICAgIGVsc2UgaWYgKCFJTlRFTF9JTkZPKGRldiktPmN1cnNvcl9u ZWVkc19waHlzaWNhbCkKPj4gICAgICAgICAgIGFkZHIgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZz ZXQob2JqKTsKPj4gLQo+PiAtICAgICAgICBpbnRlbF9ydW50aW1lX3BtX3B1dChkZXZfcHJpdik7 Cj4+IC0KPj4gLSAgICB9IGVsc2Ugewo+PiAtICAgICAgICBpbnQgYWxpZ24gPSBJU19JODMwKGRl dikgPyAxNiAqIDEwMjQgOiAyNTY7Cj4+IC0gICAgICAgIHJldCA9IGk5MTVfZ2VtX29iamVjdF9h dHRhY2hfcGh5cyhvYmosIGFsaWduKTsKPj4gLSAgICAgICAgaWYgKHJldCkgewo+PiAtICAgICAg ICAgICAgRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIGF0dGFjaCBwaHlzIG9iamVjdFxuIik7Cj4+ IC0gICAgICAgICAgICBnb3RvIGZhaWxfbG9ja2VkOwo+PiAtICAgICAgICB9Cj4+ICsgICAgZWxz ZQo+PiAgICAgICAgICAgYWRkciA9IG9iai0+cGh5c19oYW5kbGUtPmJ1c2FkZHI7Cj4+IC0gICAg fQo+Pgo+PiAtZmluaXNoOgo+PiAgICAgICBpZiAoaW50ZWxfY3J0Yy0+Y3Vyc29yX2JvKSB7Cj4+ ICAgICAgICAgICBpZiAoIUlOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsKQo+ Pgo+PiBpOTE1X2dlbV9vYmplY3RfdW5waW5fZnJvbV9kaXNwbGF5X3BsYW5lKGludGVsX2NydGMt PmN1cnNvcl9ibyk7Cj4KPiBUaGlzIGlzIG5vdyBiZWluZyBjYWxsZWQgd2l0aG91dCBob2xkaW5n IGRldi0+c3RydWN0X211dGV4LiBJIGRvbid0IGtub3cKPiBpZiB0aGF0IGlzIG5lY2Vzc2FyeSBv ciBub3QuCgpXaGlsZSBsb29raW5nIGF0IHBhdGNoIDcgaW4gdGhlIHNlcmllcywgSSBub3RpY2Vk IHRoYXQgdGhpcyBjYWxsIGlzIApyZXBsYWNlZCBieSBhIGNhbGwgdG8gaW50ZWxfdW5waW5fZmJf b2JqKCkgZXZlbnR1YWxseSwgYW5kIHRoYXQgb25lIAphY3R1YWxseSBuZWVkcyBkZXYtPnN0cnVj dF9tdXRleCB0byBiZSBoZWxkLiBUaGUgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSAKbGF0dGVyIGNh bGwgYWxzbyBkZWFscyB3aXRoIGZlbmNlIHJlZ2lzdGVycy4gU2luY2UgCmludGVsX3Bpbl9hbmRf ZmVuY2VfZmJfb2JqKCkgbWlnaHQgc2V0dXAgZmVuY2UgcmVnaXN0ZXJzIEkgdGhpbmsgd2UgCnNo b3VsZCB1c2UgIGludGVsX3VucGluX2ZiX29iaigpIGhlcmUgZm9yIHN5bW1ldHJ5LCBldmVuIHRo b3VnaCBhIGZlbmNlIApyZWdpc3RlciB3b24ndCBhY3R1YWxseSBiZSBzZXQgdXAgYmVjYXVzZSB0 aGUgY3Vyc29yIGJvIGlzIG5ldmVyIHRpbGVkLgoKQW5kZXIKCj4+ICAgICAgIH0KPj4KPj4gLSAg ICBpOTE1X2dlbV90cmFja19mYihpbnRlbF9jcnRjLT5jdXJzb3JfYm8sIG9iaiwKPj4gLSAgICAg ICAgICAgICAgSU5URUxfRlJPTlRCVUZGRVJfQ1VSU09SKHBpcGUpKTsKPj4gLSAgICBtdXRleF91 bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPj4gLQo+PiAgICAgICBpbnRlbF9jcnRjLT5jdXJz b3JfYWRkciA9IGFkZHI7Cj4+ICAgICAgIGludGVsX2NydGMtPmN1cnNvcl9ibyA9IG9iajsKPj4g ICB1cGRhdGU6Cj4+IEBAIC0xMjAxMywxMyArMTE5ODgsNiBAQCB1cGRhdGU6Cj4+Cj4+ICAgICAg ICAgICBpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKGRldiwgSU5URUxfRlJPTlRCVUZGRVJfQ1VSU09S KHBpcGUpKTsKPj4gICAgICAgfQo+PiAtCj4+IC0gICAgcmV0dXJuIDA7Cj4+IC1mYWlsX3VucGlu Ogo+PiAtICAgIGk5MTVfZ2VtX29iamVjdF91bnBpbl9mcm9tX2Rpc3BsYXlfcGxhbmUob2JqKTsK Pj4gLWZhaWxfbG9ja2VkOgo+PiAtICAgIG11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp Owo+PiAtICAgIHJldHVybiByZXQ7Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyBpbnQKPj4gQEAgLTEy MDYwLDcgKzEyMDI4LDEzIEBAIGludGVsX2N1cnNvcl9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9w bGFuZQo+PiAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4gICAgICAgaWYgKHJldCkK Pj4gICAgICAgICAgIHJldHVybiByZXQ7Cj4+Cj4+IC0gICAgcmV0dXJuIGludGVsX2NvbW1pdF9j dXJzb3JfcGxhbmUocGxhbmUsICZzdGF0ZSk7Cj4+ICsgICAgcmV0ID0gaW50ZWxfcHJlcGFyZV9j dXJzb3JfcGxhbmUocGxhbmUsICZzdGF0ZSk7Cj4+ICsgICAgaWYgKHJldCkKPj4gKyAgICAgICAg cmV0dXJuIHJldDsKPj4gKwo+PiArICAgIGludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmUocGxhbmUs ICZzdGF0ZSk7Cj4+ICsKPj4gKyAgICByZXR1cm4gMDsKPj4gICB9Cj4+Cj4+ICAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfY3Vyc29yX3BsYW5lX2Z1bmNzID0gewo+ Pgo+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=