From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [RFC v3 5/8] drm/msm: update cursors asynchronously through atomic Date: Tue, 16 May 2017 20:14:21 +0530 Message-ID: <99acad61-8906-adb1-bcb4-a704dbed833c@codeaurora.org> References: <20170512191054.10074-1-gustavo@padovan.org> <20170512191054.10074-6-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id 363766E301 for ; Tue, 16 May 2017 14:44:26 +0000 (UTC) In-Reply-To: <20170512191054.10074-6-gustavo@padovan.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Gustavo Padovan , dri-devel@lists.freedesktop.org Cc: Gustavo Padovan List-Id: dri-devel@lists.freedesktop.org CgpPbiA1LzEzLzIwMTcgMTI6NDAgQU0sIEd1c3Rhdm8gUGFkb3ZhbiB3cm90ZToKPiBGcm9tOiBH dXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJvcmEuY29tPgo+IAo+IEFkZCBz dXBwb3J0IHRvIGFzeW5jIHVwZGF0ZXMgb2YgY3Vyc29ycyBieSB1c2luZyB0aGUgbmV3IGF0b21p Ywo+IGludGVyZmFjZSBmb3IgdGhhdC4gQmFzaWNhbGx5IHdoYXQgdGhpcyBjb21taXQgZG9lcyBp cyBkbyB3aGF0Cj4gbWRwNV91cGRhdGVfY3Vyc29yX3BsYW5lX2xlZ2FjeSgpIGRpZCBidXQgdGhy b3VnaCBhdG9taWMuCgpXb3JrcyB3ZWxsIG9uIERCODIwYyAod2hpY2ggaGFzIGEgQVBRODA5NiBT b0MpLgoKVGVzdGVkLWJ5OiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgoK PiAKPiB2MzogbW92ZSBzaXplIGNoZWNrcyBiYWNrIHRvIGRyaXZlcnMgKFZpbGxlIFN5cmrDpGzD pCkKPiAKPiB2MjogbW92ZSBmYiBzZXR0aW5nIHRvIGNvcmUgYW5kIHVzZSBuZXcgc3RhdGUgKEVy aWMgQW5ob2x0KQo+IAo+IENjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4gU2ln bmVkLW9mZi1ieTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNv bT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jIHwg MTUxICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQsIDYz IGluc2VydGlvbnMoKyksIDg4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bWRwL21kcDUvbWRwNV9wbGFuZS5jCj4gaW5kZXggYTM4YzVmZS4uMDcxMDZjMSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21kcDVfcGxhbmUuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jCj4gQEAgLTMzLDE1ICszMyw2 IEBAIHN0YXRpYyBpbnQgbWRwNV9wbGFuZV9tb2RlX3NldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKPiAgIAkJc3RydWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiwKPiAgIAkJc3RydWN0IGRybV9yZWN0ICpzcmMsIHN0cnVjdCBkcm1fcmVjdCAqZGVzdCk7Cj4g ICAKPiAtc3RhdGljIGludCBtZHA1X3VwZGF0ZV9jdXJzb3JfcGxhbmVfbGVnYWN5KHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAo+IC0JCXN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAtCQlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiAtCQlpbnQgY3J0Y194LCBpbnQgY3J0Y195LAo+IC0JCXVu c2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRjX2gsCj4gLQkJdWludDMyX3Qgc3Jj X3gsIHVpbnQzMl90IHNyY195LAo+IC0JCXVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCwK PiAtCQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7Cj4gLQo+ICAgc3RhdGlj IHN0cnVjdCBtZHA1X2ttcyAqZ2V0X2ttcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiAgIHsK PiAgIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gcGxhbmUtPmRldi0+ZGV2X3ByaXZh dGU7Cj4gQEAgLTI1Nyw3ICsyNDgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9m dW5jcyBtZHA1X3BsYW5lX2Z1bmNzID0gewo+ICAgfTsKPiAgIAo+ICAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fcGxhbmVfZnVuY3MgbWRwNV9jdXJzb3JfcGxhbmVfZnVuY3MgPSB7Cj4gLQkJLnVw ZGF0ZV9wbGFuZSA9IG1kcDVfdXBkYXRlX2N1cnNvcl9wbGFuZV9sZWdhY3ksCj4gKwkJLnVwZGF0 ZV9wbGFuZSA9IGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9wbGFuZSwKPiAgIAkJLmRpc2FibGVf cGxhbmUgPSBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lLAo+ICAgCQkuZGVzdHJveSA9 IG1kcDVfcGxhbmVfZGVzdHJveSwKPiAgIAkJLnNldF9wcm9wZXJ0eSA9IGRybV9hdG9taWNfaGVs cGVyX3BsYW5lX3NldF9wcm9wZXJ0eSwKPiBAQCAtNDg0LDExICs0NzUsNzMgQEAgc3RhdGljIHZv aWQgbWRwNV9wbGFuZV9hdG9taWNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAg CX0KPiAgIH0KPiAgIAo+ICtzdGF0aWMgaW50IG1kcDVfcGxhbmVfYXRvbWljX2FzeW5jX2NoZWNr KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICsJCQkJCSBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpzdGF0ZSkKPiArewo+ICsJc3RydWN0IG1kcDVfcGxhbmVfc3RhdGUgKm1kcDVfc3RhdGUgPSB0 b19tZHA1X3BsYW5lX3N0YXRlKHN0YXRlKTsKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZTsKPiArCj4gKwljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0 Y19zdGF0ZShzdGF0ZS0+c3RhdGUsCj4gKwkJCQkJCQlzdGF0ZS0+Y3J0Yyk7Cj4gKwlpZiAoV0FS Tl9PTighY3J0Y19zdGF0ZSkpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJaWYgKCFjcnRj X3N0YXRlLT5hY3RpdmUpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJbWRwNV9zdGF0ZSA9 IHRvX21kcDVfcGxhbmVfc3RhdGUoc3RhdGUpOwo+ICsKPiArCS8qIGRvbid0IHVzZSBmYXN0IHBh dGggaWYgd2UgZG9uJ3QgaGF2ZSBhIGh3cGlwZSBhbGxvY2F0ZWQgeWV0ICovCj4gKwlpZiAoIW1k cDVfc3RhdGUtPmh3cGlwZSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwkvKiBvbmx5IGFs bG93IGNoYW5naW5nIG9mIHBvc2l0aW9uKGNydGMgeC95IG9yIHNyYyB4L3kpIGluIGZhc3QgcGF0 aCAqLwo+ICsJaWYgKHBsYW5lLT5zdGF0ZS0+Y3J0YyAhPSBzdGF0ZS0+Y3J0YyB8fAo+ICsJICAg IHBsYW5lLT5zdGF0ZS0+c3JjX3cgIT0gc3RhdGUtPnNyY193IHx8Cj4gKwkgICAgcGxhbmUtPnN0 YXRlLT5zcmNfaCAhPSBzdGF0ZS0+c3JjX2ggfHwKPiArCSAgICBwbGFuZS0+c3RhdGUtPmNydGNf dyAhPSBzdGF0ZS0+Y3J0Y193IHx8Cj4gKwkgICAgcGxhbmUtPnN0YXRlLT5jcnRjX2ggIT0gc3Rh dGUtPmNydGNfaCB8fAo+ICsJICAgICFwbGFuZS0+c3RhdGUtPmZiIHx8Cj4gKwkgICAgcGxhbmUt PnN0YXRlLT5mYiAhPSBzdGF0ZS0+ZmIpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIG1kcDVfcGxhbmVfYXRvbWljX2FzeW5jX3Vw ZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiArCQkJCQkgICBzdHJ1Y3QgZHJtX3BsYW5l X3N0YXRlICpuZXdfc3RhdGUpCj4gK3sKPiArCXBsYW5lLT5zdGF0ZS0+c3JjX3ggPSBuZXdfc3Rh dGUtPnNyY194Owo+ICsJcGxhbmUtPnN0YXRlLT5zcmNfeSA9IG5ld19zdGF0ZS0+c3JjX3k7Cj4g KwlwbGFuZS0+c3RhdGUtPmNydGNfeCA9IG5ld19zdGF0ZS0+Y3J0Y194Owo+ICsJcGxhbmUtPnN0 YXRlLT5jcnRjX3kgPSBuZXdfc3RhdGUtPmNydGNfeTsKPiArCj4gKwlpZiAocGxhbmVfZW5hYmxl ZChuZXdfc3RhdGUpKSB7Cj4gKwkJc3RydWN0IG1kcDVfY3RsICpjdGw7Cj4gKwkJc3RydWN0IG1k cDVfcGlwZWxpbmUgKnBpcGVsaW5lID0KPiArCQkJCQltZHA1X2NydGNfZ2V0X3BpcGVsaW5lKHBs YW5lLT5jcnRjKTsKPiArCQlpbnQgcmV0Owo+ICsKPiArCQlyZXQgPSBtZHA1X3BsYW5lX21vZGVf c2V0KHBsYW5lLCBuZXdfc3RhdGUtPmNydGMsIG5ld19zdGF0ZS0+ZmIsCj4gKwkJCQkmbmV3X3N0 YXRlLT5zcmMsICZuZXdfc3RhdGUtPmRzdCk7Cj4gKwkJV0FSTl9PTihyZXQgPCAwKTsKPiArCj4g KwkJY3RsID0gbWRwNV9jcnRjX2dldF9jdGwobmV3X3N0YXRlLT5jcnRjKTsKPiArCj4gKwkJbWRw NV9jdGxfY29tbWl0KGN0bCwgcGlwZWxpbmUsIG1kcDVfcGxhbmVfZ2V0X2ZsdXNoKHBsYW5lKSk7 Cj4gKwl9Cj4gKwo+ICsJKnRvX21kcDVfcGxhbmVfc3RhdGUocGxhbmUtPnN0YXRlKSA9Cj4gKwkJ KnRvX21kcDVfcGxhbmVfc3RhdGUobmV3X3N0YXRlKTsKPiArfQo+ICsKPiAgIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBtZHA1X3BsYW5lX2hlbHBlcl9mdW5jcyA9 IHsKPiAgIAkJLnByZXBhcmVfZmIgPSBtZHA1X3BsYW5lX3ByZXBhcmVfZmIsCj4gICAJCS5jbGVh bnVwX2ZiID0gbWRwNV9wbGFuZV9jbGVhbnVwX2ZiLAo+ICAgCQkuYXRvbWljX2NoZWNrID0gbWRw NV9wbGFuZV9hdG9taWNfY2hlY2ssCj4gICAJCS5hdG9taWNfdXBkYXRlID0gbWRwNV9wbGFuZV9h dG9taWNfdXBkYXRlLAo+ICsJCS5hdG9taWNfYXN5bmNfY2hlY2sgPSBtZHA1X3BsYW5lX2F0b21p Y19hc3luY19jaGVjaywKPiArCQkuYXRvbWljX2FzeW5jX3VwZGF0ZSA9IG1kcDVfcGxhbmVfYXRv bWljX2FzeW5jX3VwZGF0ZSwKPiAgIH07Cj4gICAKPiAgIHN0YXRpYyB2b2lkIHNldF9zY2Fub3V0 X2xvY2tlZChzdHJ1Y3QgbWRwNV9rbXMgKm1kcDVfa21zLAo+IEBAIC05OTcsODQgKzEwNTAsNiBA QCBzdGF0aWMgaW50IG1kcDVfcGxhbmVfbW9kZV9zZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IG1kcDVfdXBkYXRlX2N1 cnNvcl9wbGFuZV9sZWdhY3koc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gLQkJCXN0cnVjdCBk cm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gLQkJCWludCBjcnRj X3gsIGludCBjcnRjX3ksCj4gLQkJCXVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBj cnRjX2gsCj4gLQkJCXVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSwKPiAtCQkJdWludDMy X3Qgc3JjX3csIHVpbnQzMl90IHNyY19oLAo+IC0JCQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWly ZV9jdHggKmN0eCkKPiAtewo+IC0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUs ICpuZXdfcGxhbmVfc3RhdGU7Cj4gLQlzdHJ1Y3QgbWRwNV9wbGFuZV9zdGF0ZSAqbWRwNV9wc3Rh dGU7Cj4gLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBjcnRjLT5zdGF0ZTsK PiAtCWludCByZXQ7Cj4gLQo+IC0JaWYgKCFjcnRjX3N0YXRlLT5hY3RpdmUgfHwgZHJtX2F0b21p Y19jcnRjX25lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCj4gLQkJZ290byBzbG93Owo+IC0KPiAt CXBsYW5lX3N0YXRlID0gcGxhbmUtPnN0YXRlOwo+IC0JbWRwNV9wc3RhdGUgPSB0b19tZHA1X3Bs YW5lX3N0YXRlKHBsYW5lX3N0YXRlKTsKPiAtCj4gLQkvKiBkb24ndCB1c2UgZmFzdCBwYXRoIGlm IHdlIGRvbid0IGhhdmUgYSBod3BpcGUgYWxsb2NhdGVkIHlldCAqLwo+IC0JaWYgKCFtZHA1X3Bz dGF0ZS0+aHdwaXBlKQo+IC0JCWdvdG8gc2xvdzsKPiAtCj4gLQkvKiBvbmx5IGFsbG93IGNoYW5n aW5nIG9mIHBvc2l0aW9uKGNydGMgeC95IG9yIHNyYyB4L3kpIGluIGZhc3QgcGF0aCAqLwo+IC0J aWYgKHBsYW5lX3N0YXRlLT5jcnRjICE9IGNydGMgfHwKPiAtCSAgICBwbGFuZV9zdGF0ZS0+c3Jj X3cgIT0gc3JjX3cgfHwKPiAtCSAgICBwbGFuZV9zdGF0ZS0+c3JjX2ggIT0gc3JjX2ggfHwKPiAt CSAgICBwbGFuZV9zdGF0ZS0+Y3J0Y193ICE9IGNydGNfdyB8fAo+IC0JICAgIHBsYW5lX3N0YXRl LT5jcnRjX2ggIT0gY3J0Y19oIHx8Cj4gLQkgICAgIXBsYW5lX3N0YXRlLT5mYiB8fAo+IC0JICAg IHBsYW5lX3N0YXRlLT5mYiAhPSBmYikKPiAtCQlnb3RvIHNsb3c7Cj4gLQo+IC0JbmV3X3BsYW5l X3N0YXRlID0gbWRwNV9wbGFuZV9kdXBsaWNhdGVfc3RhdGUocGxhbmUpOwo+IC0JaWYgKCFuZXdf cGxhbmVfc3RhdGUpCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQo+IC0JbmV3X3BsYW5lX3N0YXRl LT5zcmNfeCA9IHNyY194Owo+IC0JbmV3X3BsYW5lX3N0YXRlLT5zcmNfeSA9IHNyY195Owo+IC0J bmV3X3BsYW5lX3N0YXRlLT5zcmNfdyA9IHNyY193Owo+IC0JbmV3X3BsYW5lX3N0YXRlLT5zcmNf aCA9IHNyY19oOwo+IC0JbmV3X3BsYW5lX3N0YXRlLT5jcnRjX3ggPSBjcnRjX3g7Cj4gLQluZXdf cGxhbmVfc3RhdGUtPmNydGNfeSA9IGNydGNfeTsKPiAtCW5ld19wbGFuZV9zdGF0ZS0+Y3J0Y193 ID0gY3J0Y193Owo+IC0JbmV3X3BsYW5lX3N0YXRlLT5jcnRjX2ggPSBjcnRjX2g7Cj4gLQo+IC0J cmV0ID0gbWRwNV9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZShjcnRjX3N0YXRlLCBuZXdf cGxhbmVfc3RhdGUpOwo+IC0JaWYgKHJldCkKPiAtCQlnb3RvIHNsb3dfZnJlZTsKPiAtCj4gLQlp ZiAobmV3X3BsYW5lX3N0YXRlLT52aXNpYmxlKSB7Cj4gLQkJc3RydWN0IG1kcDVfY3RsICpjdGw7 Cj4gLQkJc3RydWN0IG1kcDVfcGlwZWxpbmUgKnBpcGVsaW5lID0gbWRwNV9jcnRjX2dldF9waXBl bGluZShjcnRjKTsKPiAtCj4gLQkJcmV0ID0gbWRwNV9wbGFuZV9tb2RlX3NldChwbGFuZSwgY3J0 YywgZmIsCj4gLQkJCQkJICAmbmV3X3BsYW5lX3N0YXRlLT5zcmMsCj4gLQkJCQkJICAmbmV3X3Bs YW5lX3N0YXRlLT5kc3QpOwo+IC0JCVdBUk5fT04ocmV0IDwgMCk7Cj4gLQo+IC0JCWN0bCA9IG1k cDVfY3J0Y19nZXRfY3RsKGNydGMpOwo+IC0KPiAtCQltZHA1X2N0bF9jb21taXQoY3RsLCBwaXBl bGluZSwgbWRwNV9wbGFuZV9nZXRfZmx1c2gocGxhbmUpKTsKPiAtCX0KPiAtCj4gLQkqdG9fbWRw NV9wbGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSkgPQo+IC0JCSp0b19tZHA1X3BsYW5lX3N0YXRlKG5l d19wbGFuZV9zdGF0ZSk7Cj4gLQo+IC0JbWRwNV9wbGFuZV9kZXN0cm95X3N0YXRlKHBsYW5lLCBu ZXdfcGxhbmVfc3RhdGUpOwo+IC0KPiAtCXJldHVybiAwOwo+IC1zbG93X2ZyZWU6Cj4gLQltZHA1 X3BsYW5lX2Rlc3Ryb3lfc3RhdGUocGxhbmUsIG5ld19wbGFuZV9zdGF0ZSk7Cj4gLXNsb3c6Cj4g LQlyZXR1cm4gZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3BsYW5lKHBsYW5lLCBjcnRjLCBmYiwK PiAtCQkJCQkgICAgICBjcnRjX3gsIGNydGNfeSwgY3J0Y193LCBjcnRjX2gsCj4gLQkJCQkJICAg ICAgc3JjX3gsIHNyY195LCBzcmNfdywgc3JjX2gsIGN0eCk7Cj4gLX0KPiAtCj4gICAvKgo+ICAg ICogVXNlIHRoaXMgZnVuYyBhbmQgdGhlIG9uZSBiZWxvdyBvbmx5IGFmdGVyIHRoZSBhdG9taWMg c3RhdGUgaGFzIGJlZW4KPiAgICAqIHN1Y2Nlc3NmdWxseSBzd2FwcGVkCj4gCgotLSAKVGhlIFF1 YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1 cm9yYSBGb3J1bSwKaG9zdGVkIGJ5IFRoZSBMaW51eCBGb3VuZGF0aW9uCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=