From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v3 15/19] drm/i915: atomic plane updates in a nutshell Date: Fri, 19 Jun 2015 06:01:07 +0200 Message-ID: <55839403.9000104@linux.intel.com> References: <1434364436-6366-1-git-send-email-maarten.lankhorst@linux.intel.com> <1434364436-6366-16-git-send-email-maarten.lankhorst@linux.intel.com> <20150618152824.GP5176@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 [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 8EDD689DA2 for ; Thu, 18 Jun 2015 21:01:28 -0700 (PDT) In-Reply-To: <20150618152824.GP5176@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?windows-1252?Q?Ville_Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMTgtMDYtMTUgb20gMTc6Mjggc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6Cj4gT24gTW9uLCBK dW4gMTUsIDIwMTUgYXQgMTI6MzM6NTJQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6 Cj4+IE5vdyB0aGF0IGFsbCBwbGFuZXMgYXJlIGFkZGVkIGR1cmluZyBhIG1vZGVzZXQgd2UgY2Fu IHVzZSB0aGUKPj4gY2FsY3VsYXRlZCBjaGFuZ2VzIGJlZm9yZSBkaXNhYmxpbmcgYSBwbGFuZSwg YW5kIHRoZW4gZWl0aGVyIGNvbW1pdAo+PiBvciBmb3JjZSBkaXNhYmxlIGEgcGxhbmUgYmVmb3Jl IGRpc2FibGluZyB0aGUgY3J0Yy4KPj4KPj4gVGhlIGNvZGUgaXMgc2hhcmVkIHdpdGggYXRvbWlj X2JlZ2luL2ZsdXNoLCBleGNlcHQgd2F0ZXJtYXJrIHVwZGF0aW5nCj4+IGFuZCB2YmxhbmsgZXZh c2lvbiBhcmUgbm90IHVzZWQuCj4+Cj4+IFRoaXMgaXMgbmVlZGVkIGZvciBwcm9wZXIgYXRvbWlj IHN1c3BlbmQvcmVzdW1lIHN1cHBvcnQuCj4+Cj4+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJl ZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD05MDg2OAo+PiBTaWduZWQtb2ZmLWJ5OiBNYWFy dGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+PiAtLS0K Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEwMyArKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMgIHwgICA0ICstCj4+ICAyIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyks IDg0IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ IGluZGV4IGNjNGNhNDk3MDcxNi4uYmViNjkyODFmNDVjIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4+IEBAIC0yMjE3LDI4ICsyMjE3LDYgQEAgc3RhdGljIHZvaWQg aW50ZWxfZGlzYWJsZV9waXBlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+PiAgCQlpbnRlbF93 YWl0X2Zvcl9waXBlX29mZihjcnRjKTsKPj4gIH0KPj4gIAo+PiAtLyoqCj4+IC0gKiBpbnRlbF9l bmFibGVfcHJpbWFyeV9od19wbGFuZSAtIGVuYWJsZSB0aGUgcHJpbWFyeSBwbGFuZSBvbiBhIGdp dmVuIHBpcGUKPj4gLSAqIEBwbGFuZTogIHBsYW5lIHRvIGJlIGVuYWJsZWQKPj4gLSAqIEBjcnRj OiBjcnRjIGZvciB0aGUgcGxhbmUKPj4gLSAqCj4+IC0gKiBFbmFibGUgQHBsYW5lIG9uIEBjcnRj LCBtYWtpbmcgc3VyZSB0aGF0IHRoZSBwaXBlIGlzIHJ1bm5pbmcgZmlyc3QuCj4+IC0gKi8KPj4g LXN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9wcmltYXJ5X2h3X3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+PiAtCQkJCQkgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4gLXsKPj4gLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPj4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+PiAtCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPj4gLQo+PiAtCS8qIElmIHRo ZSBwaXBlIGlzbid0IGVuYWJsZWQsIHdlIGNhbid0IHB1bXAgcGl4ZWxzIGFuZCBtYXkgaGFuZyAq Lwo+PiAtCWFzc2VydF9waXBlX2VuYWJsZWQoZGV2X3ByaXYsIGludGVsX2NydGMtPnBpcGUpOwo+ PiAtCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSktPnZpc2libGUgPSB0cnVlOwo+ PiAtCj4+IC0JZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX3ByaW1hcnlfcGxhbmUoY3J0YywgcGxh bmUtPmZiLAo+PiAtCQkJCQkgICAgICAgY3J0Yy0+eCwgY3J0Yy0+eSk7Cj4+IC19Cj4+IC0KPj4g IHN0YXRpYyBib29sIG5lZWRfdnRkX3dhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICB7Cj4+ ICAjaWZkZWYgQ09ORklHX0lOVEVMX0lPTU1VCj4+IEBAIC00NTA4LDIwICs0NDg2LDYgQEAgc3Rh dGljIHZvaWQgaXJvbmxha2VfcGZpdF9lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4+ ICAJfQo+PiAgfQo+PiAgCj4+IC1zdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfc3ByaXRlX3BsYW5l cyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+IC17Cj4+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmRldjsKPj4gLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Yykt PnBpcGU7Cj4+IC0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4+IC0Jc3RydWN0IGludGVsX3Bs YW5lICppbnRlbF9wbGFuZTsKPj4gLQo+PiAtCWRybV9mb3JfZWFjaF9sZWdhY3lfcGxhbmUocGxh bmUsICZkZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QpIHsKPj4gLQkJaW50ZWxfcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4+IC0JCWlmIChpbnRlbF9wbGFuZS0+cGlwZSA9PSBwaXBl KQo+PiAtCQkJaW50ZWxfcGxhbmVfcmVzdG9yZSgmaW50ZWxfcGxhbmUtPmJhc2UpOwo+PiAtCX0K Pj4gLX0KPj4gLQo+PiAgdm9pZCBoc3dfZW5hYmxlX2lwcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKPj4gIHsKPj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4+ IEBAIC00ODE3LDI3ICs0NzgxLDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlX3BsYW5lX3VwZGF0 ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPj4gIAkJaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFy eSgmY3J0Yy0+YmFzZSk7Cj4+ICB9Cj4+ICAKPj4gLXN0YXRpYyB2b2lkIGludGVsX2NydGNfZW5h YmxlX3BsYW5lcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+IC17Cj4+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Cj4+IC0JaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBl Owo+PiAtCj4+IC0JaW50ZWxfZW5hYmxlX3ByaW1hcnlfaHdfcGxhbmUoY3J0Yy0+cHJpbWFyeSwg Y3J0Yyk7Cj4+IC0JaW50ZWxfZW5hYmxlX3Nwcml0ZV9wbGFuZXMoY3J0Yyk7Cj4+IC0JaWYgKHRv X2ludGVsX3BsYW5lX3N0YXRlKGNydGMtPmN1cnNvci0+c3RhdGUpLT52aXNpYmxlKQo+PiAtCQlp bnRlbF9jcnRjX3VwZGF0ZV9jdXJzb3IoY3J0YywgdHJ1ZSk7Cj4+IC0KPj4gLQlpbnRlbF9wb3N0 X2VuYWJsZV9wcmltYXJ5KGNydGMpOwo+PiAtCj4+IC0JLyoKPj4gLQkgKiBGSVhNRTogT25jZSB3 ZSBncm93IHByb3BlciBudWNsZWFyIGZsaXAgc3VwcG9ydCBvdXQgb2YgdGhpcyB3ZSBuZWVkCj4+ IC0JICogdG8gY29tcHV0ZSB0aGUgbWFzayBvZiBmbGlwIHBsYW5lcyBwcmVjaXNlbHkuIEZvciB0 aGUgdGltZSBiZWluZwo+PiAtCSAqIGNvbnNpZGVyIHRoaXMgYSBmbGlwIHRvIGEgTlVMTCBwbGFu ZS4KPj4gLQkgKi8KPj4gLQlpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKGRldiwgSU5URUxfRlJPTlRC VUZGRVJfQUxMX01BU0socGlwZSkpOwo+PiAtfQo+PiAtCj4+ICBzdGF0aWMgdm9pZCBpbnRlbF9j cnRjX2Rpc2FibGVfcGxhbmVzKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgcGxhbmVf bWFzaykKPj4gIHsKPj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+PiBA QCAtNDg0NSwxMCArNDc4OCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNfZGlzYWJsZV9wbGFu ZXMoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1bnNpZ25lZCBwbGFuZV9tYXNrCj4+ICAJc3RydWN0 IGRybV9wbGFuZSAqcDsKPj4gIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4+ICAKPj4g LQlpbnRlbF9jcnRjX3dhaXRfZm9yX3BlbmRpbmdfZmxpcHMoY3J0Yyk7Cj4+IC0KPj4gLQlpbnRl bF9wcmVfZGlzYWJsZV9wcmltYXJ5KGNydGMpOwo+PiAtCj4+ICAJaW50ZWxfY3J0Y19kcG1zX292 ZXJsYXlfZGlzYWJsZShpbnRlbF9jcnRjKTsKPj4gIAo+PiAgCWRybV9mb3JfZWFjaF9wbGFuZV9t YXNrKHAsIGRldiwgcGxhbmVfbWFzaykKPj4gQEAgLTYyNzAsNiArNjIwOSwxMSBAQCBzdGF0aWMg dm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ PiAgCWlmICghaW50ZWxfY3J0Yy0+YWN0aXZlKQo+PiAgCQlyZXR1cm47Cj4+ICAKPj4gKwlpZiAo dG9faW50ZWxfcGxhbmVfc3RhdGUoY3J0Yy0+cHJpbWFyeS0+c3RhdGUpLT52aXNpYmxlKSB7Cj4+ ICsJCWludGVsX2NydGNfd2FpdF9mb3JfcGVuZGluZ19mbGlwcyhjcnRjKTsKPj4gKwkJaW50ZWxf cHJlX2Rpc2FibGVfcHJpbWFyeShjcnRjKTsKPj4gKwl9Cj4+ICsKPj4gIAlpbnRlbF9jcnRjX2Rp c2FibGVfcGxhbmVzKGNydGMsIGNydGMtPnN0YXRlLT5wbGFuZV9tYXNrKTsKPj4gIAlkZXZfcHJp di0+ZGlzcGxheS5jcnRjX2Rpc2FibGUoY3J0Yyk7Cj4+ICAKPj4gQEAgLTExNzgzLDEwICsxMTcy Nyw2IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPj4gIAlpZiAob2xkX3BsYW5lX3N0YXRlLT5iYXNlLmZiICYm ICFmYikKPj4gIAkJaW50ZWxfY3J0Yy0+YXRvbWljLmRpc2FibGVkX3BsYW5lcyB8PSAxIDw8IGk7 Cj4+ICAKPj4gLQkvKiBkb24ndCBydW4gcmVzdCBkdXJpbmcgbW9kZXNldCB5ZXQgKi8KPj4gLQlp ZiAoIWludGVsX2NydGMtPmFjdGl2ZSB8fCBtb2RlX2NoYW5nZWQpCj4+IC0JCXJldHVybiAwOwo+ PiAtCj4+ICAJd2FzX3Zpc2libGUgPSBvbGRfcGxhbmVfc3RhdGUtPnZpc2libGU7Cj4+ICAJdmlz aWJsZSA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKS0+dmlzaWJsZTsKPj4gIAo+ PiBAQCAtMTMyNTUsMTUgKzEzMTk1LDE4IEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZShz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4+ICAJZHJtX2F0b21pY19oZWxwZXJfc3dh cF9zdGF0ZShkZXYsIHN0YXRlKTsKPj4gIAo+PiAgCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3Rh dGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKPj4gKwkJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+PiArCj4+ICAJCWlmICghbmVlZHNfbW9kZXNl dChjcnRjLT5zdGF0ZSkpCj4+ICAJCQljb250aW51ZTsKPj4gIAo+PiAgCQlhbnlfbXMgPSB0cnVl Owo+PiAtCQlpZiAoIWNydGNfc3RhdGUtPmFjdGl2ZSkKPj4gLQkJCWNvbnRpbnVlOwo+PiArCQlp bnRlbF9wcmVfcGxhbmVfdXBkYXRlKGludGVsX2NydGMpOwo+PiAgCj4+IC0JCWludGVsX2NydGNf ZGlzYWJsZV9wbGFuZXMoY3J0YywgY3J0Y19zdGF0ZS0+cGxhbmVfbWFzayk7Cj4+IC0JCWRldl9w cml2LT5kaXNwbGF5LmNydGNfZGlzYWJsZShjcnRjKTsKPj4gKwkJaWYgKGNydGNfc3RhdGUtPmFj dGl2ZSkgewo+PiArCQkJaW50ZWxfY3J0Y19kaXNhYmxlX3BsYW5lcyhjcnRjLCBjcnRjX3N0YXRl LT5wbGFuZV9tYXNrKTsKPj4gKwkJCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZGlzYWJsZShjcnRj KTsKPj4gKwkJfQo+PiAgCX0KPj4gIAo+PiAgCS8qIE9ubHkgYWZ0ZXIgZGlzYWJsaW5nIGFsbCBv dXRwdXQgcGlwZWxpbmVzIHRoYXQgd2lsbCBiZSBjaGFuZ2VkIGNhbiB3ZQo+PiBAQCAtMTMyNzcs MTUgKzEzMjIwLDEyIEBAIHN0YXRpYyBpbnQgX19pbnRlbF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCj4+ICAKPj4gIAkvKiBOb3cgZW5hYmxlIHRoZSBjbG9ja3MsIHBs YW5lLCBwaXBlLCBhbmQgY29ubmVjdG9ycyB0aGF0IHdlIHNldCB1cC4gKi8KPj4gIAlmb3JfZWFj aF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4+IC0JCWRybV9h dG9taWNfaGVscGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0YyhjcnRjX3N0YXRlKTsKPj4gLQo+PiAt CQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpIHx8ICFjcnRjLT5zdGF0ZS0+YWN0aXZl KQo+PiAtCQkJY29udGludWU7Cj4+IC0KPj4gLQkJdXBkYXRlX3NjYW5saW5lX29mZnNldCh0b19p bnRlbF9jcnRjKGNydGMpKTsKPj4gKwkJaWYgKG5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpICYm IGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKPj4gKwkJCXVwZGF0ZV9zY2FubGluZV9vZmZzZXQodG9f aW50ZWxfY3J0YyhjcnRjKSk7Cj4+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5jcnRjX2VuYWJsZShj cnRjKTsKPj4gKwkJfQo+PiAgCj4+IC0JCWRldl9wcml2LT5kaXNwbGF5LmNydGNfZW5hYmxlKGNy dGMpOwo+PiAtCQlpbnRlbF9jcnRjX2VuYWJsZV9wbGFuZXMoY3J0Yyk7Cj4+ICsJCWRybV9hdG9t aWNfaGVscGVyX2NvbW1pdF9wbGFuZXNfb25fY3J0YyhjcnRjX3N0YXRlKTsKPiBXaHkgYXJlIHdl IHN0aWxsIGNvbW1pdGluZyBwbGFuZXMgb24gYSBkaXNhYmxlZCBwaXBlcz8KPgo+IFRoZSB3YXkg SSBlbnZpc2lvbmVkIHRoZSBtb2Rlc2V0IHBhdGggbG9va2luZyBpcyBzb21ldGhpbmcgbGlrZSB0 aGlzOgo+Cj4gMS4gYXRvbWljYWxseSBkaXNhYmxlIGFsbCBwbGFuZXMgZm9yIHBpcGVzIGdldHRp bmcgZGlzYWJsZWQKPiAyLiBkaXNhYmxlIGFsbCBwaXBlcyB0aGF0IG5lZWQgZGlzYWJsaW5nCj4g My4gZW5hYmxlIGFsbCBwaXBlcyB0aGF0IG5lZWQgZW5hYmxpbmcKPiA0LiBhdG9taWNhbGx5IHVw ZGF0ZSBhbGwgcGxhbmVzIHRoYXQgcmVxdWlyZSBpdCBvbiBub3cgYWN0aXZlIHBpcGVzCj4KPgpJ IGxvb2tlZCBmb3Igb3RoZXIgd2F5cyB0byBkbyB0aGlzLCBidXQgdGhleSB3ZXJlIHVnbHkuIE9u bHkgdXBkYXRpbmcgc3cgc3RhdGUgaW4gY29tbWl0X3BsYW5lcyBmb3IgZGlzYWJsZWQgY3J0Yydz IG1hZGUgdGhpbmdzIGEgbG90IGNsZWFuZXIgd2l0aG91dCB3b3JyeWluZyBhYm91dCBzcGVjaWFs IGNhc2VzLgoKcGxhbmVfZGlzYWJsZSBkb2Vzbid0IHVwZGF0ZSBzdyBzdGF0ZSwgc28gaXQgcGVy Zm9ybXMgMS4gVGhlIGNvbW1pdCBmdW5jdGlvbiBpcyBzdGlsbCBjYWxsZWQgYmVjYXVzZSB1cGRh dGUgcGxhbmUtPmZiCm5lZWRzIHRvIGJlIHVwZGF0ZWQsIGV2ZW4gZm9yIGRpc2FibGVkIGNydGMn cy4gQ29uZGl0aW9uYWxseSBjYWxsaW5nIHBsYW5lX2NvbW1pdCBjYXVzZWQgbW9yZSBpc3N1ZXMg dGhhbiBpdCBzb2x2ZWQuCgp+TWFhcnRlbgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=