From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michal Wajdeczko" Subject: Re: [PATCH v10 3/9] drm/i915: Create uC runtime and system suspend/resume helpers Date: Wed, 27 Sep 2017 17:56:11 +0200 Message-ID: References: <1506504639-25631-1-git-send-email-sagar.a.kamble@intel.com> <1506504639-25631-4-git-send-email-sagar.a.kamble@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed"; DelSp="yes" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 689286E58B for ; Wed, 27 Sep 2017 15:56:14 +0000 (UTC) In-Reply-To: <1506504639-25631-4-git-send-email-sagar.a.kamble@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, Sagar Arun Kamble List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyNyBTZXAgMjAxNyAxMTozMDozMyArMDIwMCwgU2FnYXIgQXJ1biBLYW1ibGUgIAo8 c2FnYXIuYS5rYW1ibGVAaW50ZWwuY29tPiB3cm90ZToKCj4gUHJlcGFyZWQgZ2VuZXJpYyBoZWxw ZXJzIGludGVsX3VjX3N1c3BlbmQsIGludGVsX3VjX3Jlc3VtZSwKPiBpbnRlbF91Y19ydW50aW1l X3N1c3BlbmQsIGludGVsX3VjX3J1bnRpbWVfcmVzdW1lLiBUaGVzZSBhcmUKPiBjYWxsZWQgZnJv bSByZXNwZWN0aXZlIEdFTSBmdW5jdGlvbnMuCj4gT25seSBleGNlcHRpb24gaXMgaW50ZWxfdWNf cmVzdW1lIHRoYXQgbmVlZHMgdG8gYmUgY2FsbGVkCj4gdy8gb3Igdy9vIEd1QyBsb2FkZWQgaW4g aTkxNV9kcm1fcmVzdW1lIHBhdGguIENoYW5nZXMgdG8KPiBhZGQgV09QQ00gY29uZGl0aW9uIGNo ZWNrIHRvIGxvYWQgR3VDIGR1cmluZyByZXN1bWUgd2lsbCBiZSBhZGRlZAo+IGluIGxhdGVyIHBh dGNoZXMuCj4KPiB2MjogUmViYXNlIHcuci50IHJlbW92YWwgb2YgR3VDIGNvZGUgcmVzdHJ1Y3R1 cmluZy4KPgo+IHYzOiBDYWxsaW5nIGludGVsX3VjX3Jlc3VtZSBmcm9tIGk5MTVfZ2VtX3Jlc3Vt ZSBwb3N0IHJlc3VtaW5nCj4gaTkxNSBnZW0gc2V0dXAuIFRoaXMgaXMgc3ltbWV0cmljYWwgd2l0 aCBpOTE1X2dlbV9zdXNwZW5kLgo+IFJlbW92ZWQgZXJyb3IgbWVzc2FnZXMgZnJvbSBpOTE1IHN1 c3BlbmQvcmVzdW1lIHJvdXRpbmVzIGFzCj4gdUMgc3VzcGVuZC9yZXN1bWUgcm91dGluZXMgd2ls bCBoYXZlIHRob3NlLiAoTWljaGFsIFdhamRlY3prbykKPiBEZWNsYXJlIHdlZGdlZCBvbiB1Y19z dXNwZW5kIGZhaWx1cmUgYW5kIHVjX3Jlc3VtZSBmYWlsdXJlLgo+IChNaWNoYcWCIFdpbmlhcnNr aSkKPiBLZWVwaW5nIHRoZSB1QyBzdXNwZW5kL3Jlc3VtZSBmdW5jdGlvbiBkZWZpbml0aW9ucyBj bG9zZSB0byBvdGhlcgo+IHVDIGZ1bmN0aW9ucy4KPgo+IHY0OiBBZGRlZCBpbXBsZW1lbnRhdGlv biB0byBpbnRlbF91Y19yZXN1bWUgYXMgR3VDIHJlc3VtZSBpcwo+IG5lZWRlZCB0byBiZSB0cmln Z2VyZWQgcG9zdCByZWxvYWRpbmcgdGhlIGZpcm13YXJlIGFzIHdlbGwuIEFkZGVkCj4gY29tbWVu dHMgYWJvdXQgc2VtYW50aWNzIG9mIEd1QyByZXN1bWUgd2l0aCB0aGUgZmlybXdhcmUgcmVsb2Fk Lgo+Cj4gU2lnbmVkLW9mZi1ieTogU2FnYXIgQXJ1biBLYW1ibGUgPHNhZ2FyLmEua2FtYmxlQGlu dGVsLmNvbT4KPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4g Q2M6IE1pY2hhbCBXYWpkZWN6a28gPG1pY2hhbC53YWpkZWN6a29AaW50ZWwuY29tPgo+IENjOiBN aWNoYcWCIFdpbmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgfCAxMCArKysrKysrKysrCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgfCAzNiAgCj4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMgfCAyMCArKysr KysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oIHwgIDQg KysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgCj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggMTc0YTdjNS4uZjc5NjQ2YiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0xNjk4LDYgKzE2OTgsMTYgQEAgc3Rh dGljIGludCBpOTE1X2RybV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCX0KPiAg CW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJLyoKPiArCSAqIE5COiBDdXJy ZW50bHkgd2Uga25vdyB0aGF0IGF0IHRoZSBlbmQgb2Ygc3VzcGVuZCB3ZSBoYXZlIGRvbmUgRnVs bAo+ICsJICogR1BVIHJlc2V0LCBIZW5jZSBHdUMgaXMgbG9hZGVkIGFnYWluIGR1cmluZyBpOTE1 X2dlbV9pbml0X2h3Lgo+ICsJICogTm93LCBzZW5kIGFjdGlvbiB0byBHdUMgdG8gcmVzdW1lIGJh Y2sgYWdhaW4gYXMgZWFybGllciBjYWxsIHRvCj4gKwkgKiBpbnRlbF91Y19yZXN1bWUgZnJvbSBp OTE1X2dlbV9yZXN1bWUgd291bGQgaGF2ZSBkb25lIG5vdGhpbmcuCj4gKwkgKi8KPiArCXJldCA9 IGludGVsX3VjX3Jlc3VtZShkZXZfcHJpdik7Cj4gKwlpZiAocmV0KQo+ICsJCWk5MTVfZ2VtX3Nl dF93ZWRnZWQoZGV2X3ByaXYpOwo+ICsKPiAgCWludGVsX21vZGVzZXRfaW5pdF9odyhkZXYpOwo+ IAlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKPiBpbmRleCAxMTkyMmFmLi5jNTRjOWI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCj4gQEAgLTIwMjUsOSArMjAyNSwxMSBAQCBpbnQgaTkxNV9nZW1fZmF1bHQoc3RydWN0 IHZtX2ZhdWx0ICp2bWYpCj4gIGludCBpOTE1X2dlbV9ydW50aW1lX3N1c3BlbmQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLCAqb247Cj4gLQlpbnQgaTsKPiArCWludCBpLCByZXQ7Cj4gLQlpbnRlbF9ndWNf c3VzcGVuZChkZXZfcHJpdik7Cj4gKwlyZXQgPSBpbnRlbF91Y19ydW50aW1lX3N1c3BlbmQoZGV2 X3ByaXYpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+IAkvKgo+ICAJICogT25seSBj YWxsZWQgZHVyaW5nIFJQTSBzdXNwZW5kLiBBbGwgdXNlcnMgb2YgdGhlIHVzZXJmYXVsdF9saXN0 Cj4gQEAgLTIwNjgsNyArMjA3MCw3IEBAIGludCBpOTE1X2dlbV9ydW50aW1lX3N1c3BlbmQoc3Ry dWN0ICAKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlyZWctPmRpcnR5ID0gdHJ1 ZTsKPiAgCX0KPiAtCXJldHVybiAwOwo+ICsJcmV0dXJuIHJldDsKCkhtbSwgYXQgdGhpcyBwb2lu dCB3ZSBrbm93IHRoYXQgd2UgZGlkbid0IGZhaWwsIHNvIHJldHVybiAwIHdhcyBmaW5lLgoKPiAg fQo+IHZvaWQgaTkxNV9nZW1fcnVudGltZV9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+IEBAIC0yMDgwLDcgKzIwODIsNyBAQCB2b2lkIGk5MTVfZ2VtX3J1bnRpbWVf cmVzdW1lKHN0cnVjdCAgCj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpOTE1X2dl bV9pbml0X3N3aXp6bGluZyhkZXZfcHJpdik7Cj4gIAlpOTE1X2dlbV9yZXN0b3JlX2ZlbmNlcyhk ZXZfcHJpdik7Cj4gLQlpbnRlbF9ndWNfcmVzdW1lKGRldl9wcml2KTsKPiArCWludGVsX3VjX3J1 bnRpbWVfcmVzdW1lKGRldl9wcml2KTsKPiAgfQo+IHN0YXRpYyBpbnQgaTkxNV9nZW1fb2JqZWN0 X2NyZWF0ZV9tbWFwX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAgCj4gKm9iaikK PiBAQCAtNDU3MSw3ICs0NTczLDkgQEAgaW50IGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgIAo+ICpkZXZfcHJpdikKPiAgCWlmIChXQVJOX09OKCFpbnRlbF9lbmdpbmVz X2FyZV9pZGxlKGRldl9wcml2KSkpCj4gIAkJaTkxNV9nZW1fc2V0X3dlZGdlZChkZXZfcHJpdik7 IC8qIG5vIGhvcGUsIGRpc2NhcmQgZXZlcnl0aGluZyAqLwo+IC0JaW50ZWxfZ3VjX3N1c3BlbmQo ZGV2X3ByaXYpOwo+ICsJcmV0ID0gaW50ZWxfdWNfc3VzcGVuZChkZXZfcHJpdik7Cj4gKwlpZiAo cmV0KQo+ICsJCWk5MTVfZ2VtX3NldF93ZWRnZWQoZGV2X3ByaXYpOyAvKiBubyBob3BlLCBkaXNj YXJkIGV2ZXJ5dGhpbmcgKi8KPiAJLyoKPiAgCSAqIE5laXRoZXIgdGhlIEJJT1MsIG91cnNlbHZl cyBvciBhbnkgb3RoZXIga2VybmVsCj4gQEAgLTQ2MDYsNiArNDYxMCw3IEBAIGludCBpOTE1X2dl bV9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICAKPiAqZGV2X3ByaXYpCj4gIGludCBp OTE1X2dlbV9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gKwlpbnQgcmV0Owo+ IAlXQVJOX09OKGRldl9wcml2LT5ndC5hd2FrZSk7Cj4gQEAgLTQ2MTgsMTAgKzQ2MjMsMjAgQEAg aW50IGk5MTVfZ2VtX3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAgCj4gKmRldl9wcml2 KQo+ICAJICogaXQgYW5kIHN0YXJ0IGFnYWluLgo+ICAJICovCj4gIAlkZXZfcHJpdi0+Z3QucmVz dW1lKGRldl9wcml2KTsKPiAtCWludGVsX2d1Y19yZXN1bWUoZGV2X3ByaXYpOwo+ICsKPiArCS8q Cj4gKwkgKiBOQjogQXQgdGhlIGVuZCBvZiBzdXNwZW5kLCBGdWxsIEdQVSByZXNldCBpcyBiZWlu ZyBkb25lIHdoaWNoCj4gKwkgKiB3aXBlcy91bmxvYWRzIHRoZSBHdUMgZmlybXdhcmUuIElmIHJl c2V0IGlzIGF2b2lkZWQgdGhlcmUsIHdlIGNhbgo+ICsJICogY2hlY2sgdGhlIFdPUENNIHN0YXR1 cyBoZXJlIHRvIHNlZSBpZiBHdUMgaXMgc3RpbGwgbG9hZGVkIGFuZCBqdXN0Cj4gKwkgKiBkbyBH dUMgcmVzdW1lIHdpdGhvdXQgcmVsb2FkaW5nIHRoZSBmaXJtd2FyZSBiYWNrLgo+ICsJICovCj4g KwlyZXQgPSBpbnRlbF91Y19yZXN1bWUoZGV2X3ByaXYpOwo+ICsJaWYgKHJldCkKPiArCQlpOTE1 X2dlbV9zZXRfd2VkZ2VkKGRldl9wcml2KTsKPiArCj4gIAltdXRleF91bmxvY2soJmRldi0+c3Ry dWN0X211dGV4KTsKPiAtCXJldHVybiAwOwo+ICsJcmV0dXJuIHJldDsKPiAgfQo+IHZvaWQgaTkx NV9nZW1faW5pdF9zd2l6emxpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ IEBAIC00NzQxLDcgKzQ3NTYsMTIgQEAgaW50IGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgIAo+ICpkZXZfcHJpdikKPiAJaW50ZWxfbW9jc19pbml0X2wzY2NfdGFibGUo ZGV2X3ByaXYpOwo+IC0JLyogV2UgY2FuJ3QgZW5hYmxlIGNvbnRleHRzIHVudGlsIGFsbCBmaXJt d2FyZSBpcyBsb2FkZWQgKi8KPiArCS8qCj4gKwkgKiBXZSBjYW4ndCBlbmFibGUgY29udGV4dHMg dW50aWwgYWxsIGZpcm13YXJlIGlzIGxvYWRlZC4KPiArCSAqIEZJWE1FOiBHdUMgaXMgbG9hZGVk IHVuY29uZGl0aW9uYWxseSBjdXJyZW50bHkgd2l0aG91dCBjaGVja2luZwo+ICsJICogaWYgaXQg aXMgYWxyZWFkeSBhdmFpbGFibGUgaW4gV09QQ00uIFdlIGNhbiBza2lwIHRoYXQgbG9hZCBiYXNl ZAo+ICsJICogb24gV09QQ00gc3RhdHVzLgoKaG1tLCBtYXliZSB0aGlzIGNvbW1lbnQgc2hvdWxk IGJlIGluIGludGVsX3VjX2luaXRfaHcgPwoKPiArCSAqLwo+ICAJcmV0ID0gaW50ZWxfdWNfaW5p dF9odyhkZXZfcHJpdik7Cj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gb3V0Owo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jICAKPiBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3VjLmMKPiBpbmRleCAyNzc0Nzc4Li43YjMwNzkwIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF91Yy5jCj4gQEAgLTQ4MSw2ICs0ODEsMjYgQEAgdm9pZCBpbnRlbF91Y19maW5pX2h3 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICAKPiAqZGV2X3ByaXYpCj4gIAlpOTE1X2dndHRfZGlz YWJsZV9ndWMoZGV2X3ByaXYpOwo+ICB9Cj4gK2ludCBpbnRlbF91Y19ydW50aW1lX3N1c3BlbmQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlyZXR1cm4gaW50ZWxf Z3VjX3N1c3BlbmQoZGV2X3ByaXYpOwo+ICt9Cj4gKwo+ICtpbnQgaW50ZWxfdWNfcnVudGltZV9y ZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICt7Cj4gKwlyZXR1cm4g aW50ZWxfZ3VjX3Jlc3VtZShkZXZfcHJpdik7Cj4gK30KPiArCj4gK2ludCBpbnRlbF91Y19zdXNw ZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiArewo+ICsJcmV0dXJuIGlu dGVsX2d1Y19zdXNwZW5kKGRldl9wcml2KTsKPiArfQo+ICsKPiAraW50IGludGVsX3VjX3Jlc3Vt ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCXJldHVybiBpbnRl bF9ndWNfcmVzdW1lKGRldl9wcml2KTsKPiArfQo+ICsKPiAgaW50IGludGVsX2d1Y19zZW5kX25v cChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9uLCB1MzIgIAo+IGxlbikK PiAgewo+ICAJV0FSTigxLCAiVW5leHBlY3RlZCBzZW5kOiBhY3Rpb249JSN4XG4iLCAqYWN0aW9u KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaCAgCj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCj4gaW5kZXggNjk2NjM0OS4uMGE3OWUxNyAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdWMuaAo+IEBAIC0yMDgsNiArMjA4LDEwIEBAIHN0cnVj dCBpbnRlbF9odWMgewo+ICB2b2lkIGludGVsX3VjX2ZpbmlfZncoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPiAgaW50IGludGVsX3VjX2luaXRfaHcoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBpbnRlbF91Y19maW5pX2h3KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK2ludCBpbnRlbF91Y19ydW50aW1lX3N1c3BlbmQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAraW50IGludGVsX3VjX3J1bnRp bWVfcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK2ludCBpbnRl bF91Y19zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK2ludCBp bnRlbF91Y19yZXN1bWUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgaW50 IGludGVsX2d1Y19zYW1wbGVfZm9yY2V3YWtlKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cj4gIGlu dCBpbnRlbF9ndWNfc2VuZF9ub3Aoc3RydWN0IGludGVsX2d1YyAqZ3VjLCBjb25zdCB1MzIgKmFj dGlvbiwgdTMyICAKPiBsZW4pOwo+ICBpbnQgaW50ZWxfZ3VjX3NlbmRfbW1pbyhzdHJ1Y3QgaW50 ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9uLCB1MzIgIAo+IGxlbik7Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=