From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH v2 RESEND 07/24] drm/exynos/fimd: embed exynos_drm_crtc directly into context Date: Wed, 20 Mar 2019 14:06:50 +0100 Message-ID: <20190320130707.25161-8-a.hajda@samsung.com> References: <20190320130707.25161-1-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id ED74189D4B for ; Wed, 20 Mar 2019 13:07:16 +0000 (UTC) In-reply-to: <20190320130707.25161-1-a.hajda@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae Cc: linux-samsung-soc@vger.kernel.org, Bartlomiej Zolnierkiewicz , Krzysztof Kozlowski , dri-devel@lists.freedesktop.org, Marek Szyprowski List-Id: dri-devel@lists.freedesktop.org U2luY2UgY3J0YyBtYXBzIDE6MSB0byB0aGUgZGV2aWNlIHRoZXJlIGlzIG5vIHBvaW50IGluIGFs bG9jYXRpbmcgaXQKc2VwYXJhdGVseSwgYW5vdGhlciBiZW5lZml0IGlzIHBvc3NpYmlsaXR5IG9m IGRpcmVjdCBpbml0aWFsaXNhdGlvbgpvZiBpdHMgZmllbGRzIHdoaWNoIGlzIG1vcmUgcmVhZGFi bGUgYW5kIGFsbG93cyBmdXJ0aGVyIGV4cGFuc2lvbi4KClNpZ25lZC1vZmYtYnk6IEFuZHJ6ZWog SGFqZGEgPGEuaGFqZGFAc2Ftc3VuZy5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2ZpbWQuYyB8IDYwICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCmluZGV4IDJkMzRjYTM3NWVlMS4uOGVhMWNmZDUxNzM2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMKQEAgLTE2OSw3ICsx NjksNyBAQCBzdGF0aWMgc3RydWN0IGZpbWRfZHJpdmVyX2RhdGEgZXh5bm9zNTQyMF9maW1kX2Ry aXZlcl9kYXRhID0gewogc3RydWN0IGZpbWRfY29udGV4dCB7CiAJc3RydWN0IGRldmljZQkJCSpk ZXY7CiAJc3RydWN0IGRybV9kZXZpY2UJCSpkcm1fZGV2OwotCXN0cnVjdCBleHlub3NfZHJtX2Ny dGMJCSpjcnRjOworCXN0cnVjdCBleHlub3NfZHJtX2NydGMJCWNydGM7CiAJc3RydWN0IGV4eW5v c19kcm1fcGxhbmUJCXBsYW5lc1tXSU5ET1dTX05SXTsKIAlzdHJ1Y3QgY2xrCQkJKmJ1c19jbGs7 CiAJc3RydWN0IGNsawkJCSpsY2RfY2xrOwpAQCAtMTkzLDYgKzE5Myw4IEBAIHN0cnVjdCBmaW1k X2NvbnRleHQgewogCXN0cnVjdCBleHlub3NfZHJtX2NsawkJZHBfY2xrOwogfTsKIAorI2RlZmlu ZSB0b19maW1kKHB0cikgY29udGFpbmVyX29mKHB0ciwgc3RydWN0IGZpbWRfY29udGV4dCwgcHRy KQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBmaW1kX2RyaXZlcl9kdF9tYXRj aFtdID0gewogCXsgLmNvbXBhdGlibGUgPSAic2Ftc3VuZyxzM2M2NDAwLWZpbWQiLAogCSAgLmRh dGEgPSAmczNjNjR4eF9maW1kX2RyaXZlcl9kYXRhIH0sCkBAIC0yMzUsNyArMjM3LDcgQEAgc3Rh dGljIGlubGluZSB2b2lkIGZpbWRfc2V0X2JpdHMoc3RydWN0IGZpbWRfY29udGV4dCAqY3R4LCB1 MzIgcmVnLCB1MzIgbWFzaywKIAogc3RhdGljIGludCBmaW1kX2VuYWJsZV92Ymxhbmsoc3RydWN0 IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHggPSBj cnRjLT5jdHg7CisJc3RydWN0IGZpbWRfY29udGV4dCAqY3R4ID0gdG9fZmltZChjcnRjKTsKIAl1 MzIgdmFsOwogCiAJaWYgKGN0eC0+c3VzcGVuZGVkKQpAQCAtMjY3LDcgKzI2OSw3IEBAIHN0YXRp YyBpbnQgZmltZF9lbmFibGVfdmJsYW5rKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCiAK IHN0YXRpYyB2b2lkIGZpbWRfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAq Y3J0YykKIHsKLQlzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CisJc3RydWN0 IGZpbWRfY29udGV4dCAqY3R4ID0gdG9fZmltZChjcnRjKTsKIAl1MzIgdmFsOwogCiAJaWYgKGN0 eC0+c3VzcGVuZGVkKQpAQCAtMjkxLDcgKzI5Myw3IEBAIHN0YXRpYyB2b2lkIGZpbWRfZGlzYWJs ZV92Ymxhbmsoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIAogc3RhdGljIHZvaWQgZmlt ZF93YWl0X2Zvcl92Ymxhbmsoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1 Y3QgZmltZF9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CisJc3RydWN0IGZpbWRfY29udGV4dCAq Y3R4ID0gdG9fZmltZChjcnRjKTsKIAogCWlmIChjdHgtPnN1c3BlbmRlZCkKIAkJcmV0dXJuOwpA QCAtMzQ1LDcgKzM0Nyw3IEBAIHN0YXRpYyB2b2lkIGZpbWRfZGlzYWJsZV93aW4oc3RydWN0IGZp bWRfY29udGV4dCAqY3R4LCBpbnQgd2luKQogCiBzdGF0aWMgdm9pZCBmaW1kX2NsZWFyX2NoYW5u ZWxzKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGZpbWRfY29udGV4 dCAqY3R4ID0gY3J0Yy0+Y3R4OworCXN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCA9IHRvX2ZpbWQo Y3J0Yyk7CiAJdW5zaWduZWQgaW50IHdpbiwgY2hfZW5hYmxlZCA9IDA7CiAKIAlEUk1fREVCVUdf S01TKCIlc1xuIiwgX19GSUxFX18pOwpAQCAtMzcwLDkgKzM3Miw5IEBAIHN0YXRpYyB2b2lkIGZp bWRfY2xlYXJfY2hhbm5lbHMoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIAlpZiAoY2hf ZW5hYmxlZCkgewogCQljdHgtPnN1c3BlbmRlZCA9IGZhbHNlOwogCi0JCWZpbWRfZW5hYmxlX3Zi bGFuayhjdHgtPmNydGMpOwotCQlmaW1kX3dhaXRfZm9yX3ZibGFuayhjdHgtPmNydGMpOwotCQlm aW1kX2Rpc2FibGVfdmJsYW5rKGN0eC0+Y3J0Yyk7CisJCWZpbWRfZW5hYmxlX3ZibGFuaygmY3R4 LT5jcnRjKTsKKwkJZmltZF93YWl0X2Zvcl92YmxhbmsoJmN0eC0+Y3J0Yyk7CisJCWZpbWRfZGlz YWJsZV92YmxhbmsoJmN0eC0+Y3J0Yyk7CiAKIAkJY3R4LT5zdXNwZW5kZWQgPSB0cnVlOwogCX0K QEAgLTM4OCw3ICszOTAsNyBAQCBzdGF0aWMgaW50IGZpbWRfYXRvbWljX2NoZWNrKHN0cnVjdCBl eHlub3NfZHJtX2NydGMgKmNydGMsCiAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCiB7 CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmc3RhdGUtPmFkanVzdGVkX21vZGU7 Ci0Jc3RydWN0IGZpbWRfY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4OworCXN0cnVjdCBmaW1kX2Nv bnRleHQgKmN0eCA9IHRvX2ZpbWQoY3J0Yyk7CiAJdW5zaWduZWQgbG9uZyBpZGVhbF9jbGssIGxj ZF9yYXRlOwogCXUzMiBjbGtkaXY7CiAKQEAgLTQ0OCw3ICs0NTAsNyBAQCBzdGF0aWMgdm9pZCBm aW1kX3NldHVwX3RyaWdnZXIoc3RydWN0IGZpbWRfY29udGV4dCAqY3R4KQogCiBzdGF0aWMgdm9p ZCBmaW1kX2NvbW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBm aW1kX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0eDsKKwlzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHgg PSB0b19maW1kKGNydGMpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGMt PmJhc2Uuc3RhdGUtPmFkanVzdGVkX21vZGU7CiAJY29uc3Qgc3RydWN0IGZpbWRfZHJpdmVyX2Rh dGEgKmRyaXZlcl9kYXRhID0gY3R4LT5kcml2ZXJfZGF0YTsKIAl2b2lkICp0aW1pbmdfYmFzZSA9 IGN0eC0+cmVncyArIGRyaXZlcl9kYXRhLT50aW1pbmdfYmFzZTsKQEAgLTc1NCw3ICs3NTYsNyBA QCBzdGF0aWMgdm9pZCBmaW1kX3NoYWRvd19wcm90ZWN0X3dpbihzdHJ1Y3QgZmltZF9jb250ZXh0 ICpjdHgsCiAKIHN0YXRpYyB2b2lkIGZpbWRfYXRvbWljX2JlZ2luKHN0cnVjdCBleHlub3NfZHJt X2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGZpbWRfY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4Owor CXN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCA9IHRvX2ZpbWQoY3J0Yyk7CiAJaW50IGk7CiAKIAlp ZiAoY3R4LT5zdXNwZW5kZWQpCkBAIC03NjYsNyArNzY4LDcgQEAgc3RhdGljIHZvaWQgZmltZF9h dG9taWNfYmVnaW4oc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIAogc3RhdGljIHZvaWQg ZmltZF9hdG9taWNfZmx1c2goc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1 Y3QgZmltZF9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CisJc3RydWN0IGZpbWRfY29udGV4dCAq Y3R4ID0gdG9fZmltZChjcnRjKTsKIAlpbnQgaTsKIAogCWlmIChjdHgtPnN1c3BlbmRlZCkKQEAg LTc4OSw3ICs3OTEsNyBAQCBzdGF0aWMgdm9pZCBmaW1kX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZXh5 bm9zX2RybV9jcnRjICpjcnRjLAogewogCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lX3N0YXRlICpz dGF0ZSA9CiAJCQkJdG9fZXh5bm9zX3BsYW5lX3N0YXRlKHBsYW5lLT5iYXNlLnN0YXRlKTsKLQlz dHJ1Y3QgZmltZF9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CisJc3RydWN0IGZpbWRfY29udGV4 dCAqY3R4ID0gdG9fZmltZChjcnRjKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0 YXRlLT5iYXNlLmZiOwogCWRtYV9hZGRyX3QgZG1hX2FkZHI7CiAJdW5zaWduZWQgbG9uZyB2YWws IHNpemUsIG9mZnNldDsKQEAgLTg3OCw3ICs4ODAsNyBAQCBzdGF0aWMgdm9pZCBmaW1kX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBmaW1k X2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBmaW1kX2Nv bnRleHQgKmN0eCA9IGNydGMtPmN0eDsKKwlzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHggPSB0b19m aW1kKGNydGMpOwogCiAJaWYgKCFjdHgtPnN1c3BlbmRlZCkKIAkJcmV0dXJuOwpAQCAtODg5LDE0 ICs4OTEsMTQgQEAgc3RhdGljIHZvaWQgZmltZF9lbmFibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0 YyAqY3J0YykKIAogCS8qIGlmIHZibGFuayB3YXMgZW5hYmxlZCBzdGF0dXMsIGVuYWJsZSBpdCBh Z2Fpbi4gKi8KIAlpZiAodGVzdF9hbmRfY2xlYXJfYml0KDAsICZjdHgtPmlycV9mbGFncykpCi0J CWZpbWRfZW5hYmxlX3ZibGFuayhjdHgtPmNydGMpOworCQlmaW1kX2VuYWJsZV92YmxhbmsoJmN0 eC0+Y3J0Yyk7CiAKLQlmaW1kX2NvbW1pdChjdHgtPmNydGMpOworCWZpbWRfY29tbWl0KCZjdHgt PmNydGMpOwogfQogCiBzdGF0aWMgdm9pZCBmaW1kX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CisJ c3RydWN0IGZpbWRfY29udGV4dCAqY3R4ID0gdG9fZmltZChjcnRjKTsKIAlpbnQgaTsKIAogCWlm IChjdHgtPnN1c3BlbmRlZCkKQEAgLTk1MSw3ICs5NTMsNyBAQCBzdGF0aWMgdm9pZCBmaW1kX3Ry aWdnZXIoc3RydWN0IGRldmljZSAqZGV2KQogCiBzdGF0aWMgdm9pZCBmaW1kX3RlX2hhbmRsZXIo c3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKLQlzdHJ1Y3QgZmltZF9jb250ZXh0ICpj dHggPSBjcnRjLT5jdHg7CisJc3RydWN0IGZpbWRfY29udGV4dCAqY3R4ID0gdG9fZmltZChjcnRj KTsKIAl1MzIgdHJnX3R5cGUgPSBjdHgtPmRyaXZlcl9kYXRhLT50cmdfdHlwZTsKIAogCS8qIENo ZWNrcyB0aGUgY3J0YyBpcyBkZXRhY2hlZCBhbHJlYWR5IGZyb20gZW5jb2RlciAqLwpAQCAtOTc2 LDcgKzk3OCw3IEBAIHN0YXRpYyB2b2lkIGZpbWRfdGVfaGFuZGxlcihzdHJ1Y3QgZXh5bm9zX2Ry bV9jcnRjICpjcnRjKQogCX0KIAogCWlmICh0ZXN0X2JpdCgwLCAmY3R4LT5pcnFfZmxhZ3MpKQot CQlkcm1fY3J0Y19oYW5kbGVfdmJsYW5rKCZjdHgtPmNydGMtPmJhc2UpOworCQlkcm1fY3J0Y19o YW5kbGVfdmJsYW5rKCZjdHgtPmNydGMuYmFzZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGZpbWRfZHBf Y2xvY2tfZW5hYmxlKHN0cnVjdCBleHlub3NfZHJtX2NsayAqY2xrLCBib29sIGVuYWJsZSkKQEAg LTEwMTUsNyArMTAxNyw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBmaW1kX2lycV9oYW5kbGVyKGlu dCBpcnEsIHZvaWQgKmRldl9pZCkKIAkJZ290byBvdXQ7CiAKIAlpZiAoIWN0eC0+aTgwX2lmKQot CQlkcm1fY3J0Y19oYW5kbGVfdmJsYW5rKCZjdHgtPmNydGMtPmJhc2UpOworCQlkcm1fY3J0Y19o YW5kbGVfdmJsYW5rKCZjdHgtPmNydGMuYmFzZSk7CiAKIAlpZiAoY3R4LT5pODBfaWYpIHsKIAkJ LyogRXhpdHMgdHJpZ2dlcmluZyBtb2RlICovCkBAIC0xMDM2LDcgKzEwMzgsNiBAQCBzdGF0aWMg aW50IGZpbWRfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwg dm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHggPSBkZXZfZ2V0X2RydmRh dGEoZGV2KTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRhdGE7Ci0Jc3RydWN0IGV4 eW5vc19kcm1fcGxhbmUgKmV4eW5vc19wbGFuZTsKIAl1bnNpZ25lZCBpbnQgaTsKIAlpbnQgcmV0 OwogCkBAIC0xMDUzLDIyICsxMDU0LDIzIEBAIHN0YXRpYyBpbnQgZmltZF9iaW5kKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCQkJcmV0dXJu IHJldDsKIAl9CiAKLQlleHlub3NfcGxhbmUgPSAmY3R4LT5wbGFuZXNbREVGQVVMVF9XSU5dOwot CWN0eC0+Y3J0YyA9IGV4eW5vc19kcm1fY3J0Y19jcmVhdGUoZHJtX2RldiwgJmV4eW5vc19wbGFu ZS0+YmFzZSwKLQkJCUVYWU5PU19ESVNQTEFZX1RZUEVfTENELCAmZmltZF9jcnRjX29wcywgY3R4 KTsKLQlpZiAoSVNfRVJSKGN0eC0+Y3J0YykpCi0JCXJldHVybiBQVFJfRVJSKGN0eC0+Y3J0Yyk7 CisJY3R4LT5jcnRjLnR5cGUgPSBFWFlOT1NfRElTUExBWV9UWVBFX0xDRDsKKwljdHgtPmNydGMu b3BzID0gJmZpbWRfY3J0Y19vcHM7CisJcmV0ID0gZXh5bm9zX2RybV9jcnRjX2luaXQoJmN0eC0+ Y3J0YywgZHJtX2Rldik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwljdHgtPmNydGMuYmFz ZS5wcmltYXJ5ID0gJmN0eC0+cGxhbmVzW0RFRkFVTFRfV0lOXS5iYXNlOwogCiAJaWYgKGN0eC0+ ZHJpdmVyX2RhdGEtPmhhc19kcF9jbGspIHsKIAkJY3R4LT5kcF9jbGsuZW5hYmxlID0gZmltZF9k cF9jbG9ja19lbmFibGU7Ci0JCWN0eC0+Y3J0Yy0+cGlwZV9jbGsgPSAmY3R4LT5kcF9jbGs7CisJ CWN0eC0+Y3J0Yy5waXBlX2NsayA9ICZjdHgtPmRwX2NsazsKIAl9CiAKIAlpZiAoY3R4LT5lbmNv ZGVyKQogCQlleHlub3NfZHBpX2JpbmQoZHJtX2RldiwgY3R4LT5lbmNvZGVyKTsKIAogCWlmIChp c19kcm1faW9tbXVfc3VwcG9ydGVkKGRybV9kZXYpKQotCQlmaW1kX2NsZWFyX2NoYW5uZWxzKGN0 eC0+Y3J0Yyk7CisJCWZpbWRfY2xlYXJfY2hhbm5lbHMoJmN0eC0+Y3J0Yyk7CiAKIAlyZXR1cm4g ZXh5bm9zX2RybV9yZWdpc3Rlcl9kbWEoZHJtX2RldiwgZGV2KTsKIH0KQEAgLTEwNzgsNyArMTA4 MCw3IEBAIHN0YXRpYyB2b2lkIGZpbWRfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IGRldmljZSAqbWFzdGVyLAogewogCXN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOwogCi0JZmltZF9kaXNhYmxlKGN0eC0+Y3J0Yyk7CisJZmltZF9kaXNhYmxl KCZjdHgtPmNydGMpOwogCiAJZXh5bm9zX2RybV91bnJlZ2lzdGVyX2RtYShjdHgtPmRybV9kZXYs IGN0eC0+ZGV2KTsKIAotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=