From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: [PATCH v5 4/7] drm/fb-helper: Apply panel orientation connector prop to the primary plane Date: Sat, 4 Nov 2017 15:08:25 +0100 Message-ID: <20171104140828.32469-5-hdegoede@redhat.com> References: <20171104140828.32469-1-hdegoede@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171104140828.32469-1-hdegoede@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Jani Nikula , Sean Paul , David Airlie , Bartlomiej Zolnierkiewicz Cc: linux-fbdev@vger.kernel.org, intel-gfx , dri-devel@lists.freedesktop.org, Daniel Drake , Hans de Goede , Carlo Caione , Bastien Nocera , Robert McQueen List-Id: dri-devel@lists.freedesktop.org QXBwbHkgdGhlICJwYW5lbCBvcmllbnRhdGlvbiIgZHJtIGNvbm5lY3RvciBwcm9wIHRvIHRoZSBw cmltYXJ5IHBsYW5lIHNvCnRoYXQgZmJjb24gYW5kIGZiZGV2IHVzaW5nIHVzZXJzcGFjZSBwcm9n cmFtcyBkaXNwbGF5IHRoZSByaWdodCB3YXkgdXAuCgpGaXhlczogaHR0cHM6Ly9idWdzLmZyZWVk ZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ4OTQKU2lnbmVkLW9mZi1ieTogSGFucyBkZSBH b2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KLS0tCkNoYW5nZXMgaW4gdjI6Ci1OZXcgcGF0Y2gg aW4gdjIgb2YgdGhpcyBwYXRjaC1zZXQKCkNoYW5nZXMgaW4gdjM6Ci1Vc2UgYSByb3RhdGlvbiBt ZW1iZXIgaW4gc3RydWN0IGRybV9mYl9oZWxwZXJfY3J0YyBhbmQgc2V0IHRoYXQgZnJvbQogZHJt X3NldHVwX2NydGNzIGluc3RlYWQgb2YgbG9vcGluZyBvdmVyIGFsbCBjcnRjJ3MgdG8gZmluZCB0 aGUgcmlnaHQgb25lCiBsYXRlcgotU2luY2Ugd2Ugbm93IG5vIGxvbmdlciBsb29rIGF0IHJvdGF0 aW9uIHF1aXJrcyBkaXJlY3RseSBpbiB0aGUgZmJjb24KIGNvZGUsIHNldCBmYl9pbmZvLmZiY29u X3JvdGF0ZV9oaW50IHdoZW4gdGhlIHBhbmVsIGlzIG5vdCBtb3VudGVkIHVwcmlnaHQKIGFuZCB3 ZSBjYW5ub3QgdXNlIGhhcmR3YXJlIHJvdGF0aW9uCgpDaGFuZ2VzIGluIHY0OgotTWFrZSBkcm1f ZmJfaGVscGVyX2luaXQoKSBpbml0IGRybV9mYl9oZWxwZXJfY3J0Yy5yb3RhdGlvbiB0bwogRFJN X01PREVfUk9UQVRFXzAgZm9yIGFsbCBjcnRjcywgc28gdGhhdCB3ZSBkbyBub3QgZW5kIHVwIHNl dHRpbmcgdGhlCiBwbGFuZV9zdGF0ZSdzIHJvdGF0aW9uIHRvIGFuIGludmFsaWQgdmFsdWUgZm9y IGRpc2FibGVkIGNydGNzCiAoY2F1Z2h0IGJ5IEZpLkNJKQoKQ2hhbmdlcyBpbiB2NToKLU9ubHkg dXNlIGhhcmR3YXJlIChjcnRjIHByaW1hcnkgcGxhbmUpIHJvdGF0aW9uIGZvciBEUk1fUk9UQVRF XzE4MCwKIDkwIC8gMjcwIGRlZ3JlZSByb3RhdGlvbiByZXF1aXJlcyBzcGVjaWFsIGhhbmRsaW5n IHdoaWNoIHdlIGxhY2sgYXRtCi1BZGQgYSBUT0RPIGNvbW1lbnQgZm9yIDkwIC8gMjcwIGRlZ3Jl ZSBoYXJkd2FyZSByb3RhdGlvbgotQWRkIHNvbWUgY29tbWVudHMgdG8gYmV0dGVyIGRvY3VtZW50 IHRoZSBkZWZhdWx0IGNhc2Ugd2hlbiBtYXBwaW5nCiBzd19yb3RhdGlvbnMgdG8gZmJjb25fcm90 YXRlX2hpbnRzCi0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyB8IDkwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiBpbmNsdWRlL2RybS9kcm1fZmJf aGVscGVyLmggICAgIHwgIDggKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVs cGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCmluZGV4IDExNmQxZjEzMzdj Ny4uNWE1NTc0ODhiZmY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBl ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKQEAgLTQxLDYgKzQxLDcg QEAKICNpbmNsdWRlIDxkcm0vZHJtX2F0b21pYy5oPgogI2luY2x1ZGUgPGRybS9kcm1fYXRvbWlj X2hlbHBlci5oPgogCisjaW5jbHVkZSAiZHJtX2NydGNfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJk cm1fY3J0Y19oZWxwZXJfaW50ZXJuYWwuaCIKIAogc3RhdGljIGJvb2wgZHJtX2ZiZGV2X2VtdWxh dGlvbiA9IHRydWU7CkBAIC0zNTAsNiArMzUxLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVs cGVyX2RlYnVnX2xlYXZlKTsKIHN0YXRpYyBpbnQgcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYyhz dHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBib29sIGFjdGl2ZSkKIHsKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZmJfaGVscGVyLT5kZXY7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGU7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlOwogCWludCBpLCByZXQ7CkBAIC0zNjgsOCArMzcwLDYgQEAgc3Rh dGljIGludCByZXN0b3JlX2ZiZGV2X21vZGVfYXRvbWljKHN0cnVjdCBkcm1fZmJfaGVscGVyICpm Yl9oZWxwZXIsIGJvb2wgYWN0aXYKIHJldHJ5OgogCXBsYW5lX21hc2sgPSAwOwogCWRybV9mb3Jf ZWFjaF9wbGFuZShwbGFuZSwgZGV2KSB7Ci0JCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlOwotCiAJCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3Rh dGUsIHBsYW5lKTsKIAkJaWYgKElTX0VSUihwbGFuZV9zdGF0ZSkpIHsKIAkJCXJldCA9IFBUUl9F UlIocGxhbmVfc3RhdGUpOwpAQCAtMzkyLDYgKzM5MiwxMSBAQCBzdGF0aWMgaW50IHJlc3RvcmVf ZmJkZXZfbW9kZV9hdG9taWMoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgYm9vbCBh Y3RpdgogCiAJZm9yIChpID0gMDsgaSA8IGZiX2hlbHBlci0+Y3J0Y19jb3VudDsgaSsrKSB7CiAJ CXN0cnVjdCBkcm1fbW9kZV9zZXQgKm1vZGVfc2V0ID0gJmZiX2hlbHBlci0+Y3J0Y19pbmZvW2ld Lm1vZGVfc2V0OworCQlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gbW9kZV9zZXQtPmNydGMt PnByaW1hcnk7CisKKwkJLyogQ2Fubm90IGZhaWwgYXMgd2UndmUgYWxyZWFkeSBnb3R0ZW4gdGhl IHBsYW5lIHN0YXRlIGFib3ZlICovCisJCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3 X3BsYW5lX3N0YXRlKHN0YXRlLCBwcmltYXJ5KTsKKwkJcGxhbmVfc3RhdGUtPnJvdGF0aW9uID0g ZmJfaGVscGVyLT5jcnRjX2luZm9baV0ucm90YXRpb247CiAKIAkJcmV0ID0gX19kcm1fYXRvbWlj X2hlbHBlcl9zZXRfY29uZmlnKG1vZGVfc2V0LCBzdGF0ZSk7CiAJCWlmIChyZXQgIT0gMCkKQEAg LTgyMSw2ICs4MjYsNyBAQCBpbnQgZHJtX2ZiX2hlbHBlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJCWlmICghZmJfaGVscGVyLT5jcnRjX2luZm9baV0ubW9kZV9zZXQuY29ubmVjdG9y cykKIAkJCWdvdG8gb3V0X2ZyZWU7CiAJCWZiX2hlbHBlci0+Y3J0Y19pbmZvW2ldLm1vZGVfc2V0 Lm51bV9jb25uZWN0b3JzID0gMDsKKwkJZmJfaGVscGVyLT5jcnRjX2luZm9baV0ucm90YXRpb24g PSBEUk1fTU9ERV9ST1RBVEVfMDsKIAl9CiAKIAlpID0gMDsKQEAgLTIzMzQsNiArMjM0MCw2MiBA QCBzdGF0aWMgaW50IGRybV9waWNrX2NydGNzKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxw ZXIsCiAJcmV0dXJuIGJlc3Rfc2NvcmU7CiB9CiAKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGNoZWNr cyBpZiByb3RhdGlvbiBpcyBuZWNlc3NhcnkgYmVjYXVzZSBvZiBwYW5lbCBvcmllbnRhdGlvbgor ICogYW5kIGlmIGl0IGlzLCBpZiBpdCBpcyBzdXBwb3J0ZWQuCisgKiBJZiByb3RhdGlvbiBpcyBu ZWNlc3NhcnkgYW5kIHN1cHBvcnRlZCwgaXRzIGdldHMgc2V0IGluIGZiX2NydGMucm90YXRpb24u CisgKiBJZiByb3RhdGlvbiBpcyBuZWNlc3NhcnkgYnV0IG5vdCBzdXBwb3J0ZWQsIGEgRFJNX01P REVfUk9UQVRFXyogZmxhZyBnZXRzCisgKiBvci1lZCBpbnRvIGZiX2hlbHBlci0+c3dfcm90YXRp b25zLiBJbiBkcm1fc2V0dXBfY3J0Y3NfZmIoKSB3ZSBjaGVjayBpZiBvbmx5CisgKiBvbmUgYml0 IGlzIHNldCBhbmQgdGhlbiB3ZSBzZXQgZmJfaW5mby5mYmNvbl9yb3RhdGVfaGludCB0byBtYWtl IGZiY29uIGRvCisgKiB0aGUgdW5zdXBwb3J0ZWQgcm90YXRpb24uCisgKi8KK3N0YXRpYyB2b2lk IGRybV9zZXR1cF9jcnRjX3JvdGF0aW9uKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIs CisJCQkJICAgIHN0cnVjdCBkcm1fZmJfaGVscGVyX2NydGMgKmZiX2NydGMsCisJCQkJICAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGRybV9wbGFuZSAqcGxh bmUgPSBmYl9jcnRjLT5tb2RlX3NldC5jcnRjLT5wcmltYXJ5OworCXVpbnQ2NF90IHZhbGlkX21h c2sgPSAwOworCWludCBpLCByb3RhdGlvbjsKKworCWZiX2NydGMtPnJvdGF0aW9uID0gRFJNX01P REVfUk9UQVRFXzA7CisKKwlzd2l0Y2ggKGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLnBhbmVsX29y aWVudGF0aW9uKSB7CisJY2FzZSBEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl9CT1RUT01fVVA6 CisJCXJvdGF0aW9uID0gRFJNX01PREVfUk9UQVRFXzE4MDsKKwkJYnJlYWs7CisJY2FzZSBEUk1f TU9ERV9QQU5FTF9PUklFTlRBVElPTl9MRUZUX1VQOgorCQlyb3RhdGlvbiA9IERSTV9NT0RFX1JP VEFURV85MDsKKwkJYnJlYWs7CisJY2FzZSBEUk1fTU9ERV9QQU5FTF9PUklFTlRBVElPTl9SSUdI VF9VUDoKKwkJcm90YXRpb24gPSBEUk1fTU9ERV9ST1RBVEVfMjcwOworCQlicmVhazsKKwlkZWZh dWx0OgorCQlyb3RhdGlvbiA9IERSTV9NT0RFX1JPVEFURV8wOworCX0KKworCS8qCisJICogVE9E Tzogc3VwcG9ydCA5MCAvIDI3MCBkZWdyZWUgaGFyZHdhcmUgcm90YXRpb24sCisJICogZGVwZW5k aW5nIG9uIHRoZSBoYXJkd2FyZSB0aGlzIG1heSByZXF1aXJlIHRoZSBmcmFtZWJ1ZmZlcgorCSAq IHRvIGJlIGluIGEgc3BlY2lmaWMgdGlsaW5nIGZvcm1hdC4KKwkgKi8KKwlpZiAocm90YXRpb24g IT0gRFJNX01PREVfUk9UQVRFXzE4MCB8fCAhcGxhbmUtPnJvdGF0aW9uX3Byb3BlcnR5KSB7CisJ CWZiX2hlbHBlci0+c3dfcm90YXRpb25zIHw9IHJvdGF0aW9uOworCQlyZXR1cm47CisJfQorCisJ Zm9yIChpID0gMDsgaSA8IHBsYW5lLT5yb3RhdGlvbl9wcm9wZXJ0eS0+bnVtX3ZhbHVlczsgaSsr KQorCQl2YWxpZF9tYXNrIHw9ICgxVUxMIDw8IHBsYW5lLT5yb3RhdGlvbl9wcm9wZXJ0eS0+dmFs dWVzW2ldKTsKKworCWlmICghKHJvdGF0aW9uICYgdmFsaWRfbWFzaykpIHsKKwkJZmJfaGVscGVy LT5zd19yb3RhdGlvbnMgfD0gcm90YXRpb247CisJCXJldHVybjsKKwl9CisKKwlmYl9jcnRjLT5y b3RhdGlvbiA9IHJvdGF0aW9uOworCS8qIFJvdGF0aW5nIGluIGhhcmR3YXJlLCBmYmNvbiBzaG91 bGQgbm90IHJvdGF0ZSAqLworCWZiX2hlbHBlci0+c3dfcm90YXRpb25zIHw9IERSTV9NT0RFX1JP VEFURV8wOworfQorCiBzdGF0aWMgdm9pZCBkcm1fc2V0dXBfY3J0Y3Moc3RydWN0IGRybV9mYl9o ZWxwZXIgKmZiX2hlbHBlciwKIAkJCSAgICB1MzIgd2lkdGgsIHUzMiBoZWlnaHQpCiB7CkBAIC0y MzkzLDYgKzI0NTUsNyBAQCBzdGF0aWMgdm9pZCBkcm1fc2V0dXBfY3J0Y3Moc3RydWN0IGRybV9m Yl9oZWxwZXIgKmZiX2hlbHBlciwKIAkJZHJtX2ZiX2hlbHBlcl9tb2Rlc2V0X3JlbGVhc2UoZmJf aGVscGVyLAogCQkJCQkgICAgICAmZmJfaGVscGVyLT5jcnRjX2luZm9baV0ubW9kZV9zZXQpOwog CisJZmJfaGVscGVyLT5zd19yb3RhdGlvbnMgPSAwOwogCWRybV9mYl9oZWxwZXJfZm9yX2VhY2hf Y29ubmVjdG9yKGZiX2hlbHBlciwgaSkgewogCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSA9IG1vZGVzW2ldOwogCQlzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9jcnRjICpmYl9jcnRjID0gY3J0 Y3NbaV07CkBAIC0yNDEyLDYgKzI0NzUsNyBAQCBzdGF0aWMgdm9pZCBkcm1fc2V0dXBfY3J0Y3Mo c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwKIAkJCW1vZGVzZXQtPm1vZGUgPSBkcm1f bW9kZV9kdXBsaWNhdGUoZGV2LAogCQkJCQkJCSAgIGZiX2NydGMtPmRlc2lyZWRfbW9kZSk7CiAJ CQlkcm1fY29ubmVjdG9yX2dldChjb25uZWN0b3IpOworCQkJZHJtX3NldHVwX2NydGNfcm90YXRp b24oZmJfaGVscGVyLCBmYl9jcnRjLCBjb25uZWN0b3IpOwogCQkJbW9kZXNldC0+Y29ubmVjdG9y c1ttb2Rlc2V0LT5udW1fY29ubmVjdG9ycysrXSA9IGNvbm5lY3RvcjsKIAkJCW1vZGVzZXQtPngg PSBvZmZzZXQtPng7CiAJCQltb2Rlc2V0LT55ID0gb2Zmc2V0LT55OwpAQCAtMjQ1Myw2ICsyNTE3 LDI4IEBAIHN0YXRpYyB2b2lkIGRybV9zZXR1cF9jcnRjc19mYihzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyKQogCQl9CiAJfQogCW11dGV4X3VubG9jaygmZmJfaGVscGVyLT5kZXYtPm1v ZGVfY29uZmlnLm11dGV4KTsKKworCXN3aXRjaCAoZmJfaGVscGVyLT5zd19yb3RhdGlvbnMpIHsK KwljYXNlIERSTV9NT0RFX1JPVEFURV8wOgorCQlpbmZvLT5mYmNvbl9yb3RhdGVfaGludCA9IEZC X1JPVEFURV9VUjsKKwkJYnJlYWs7CisJY2FzZSBEUk1fTU9ERV9ST1RBVEVfOTA6CisJCWluZm8t PmZiY29uX3JvdGF0ZV9oaW50ID0gRkJfUk9UQVRFX0NDVzsKKwkJYnJlYWs7CisJY2FzZSBEUk1f TU9ERV9ST1RBVEVfMTgwOgorCQlpbmZvLT5mYmNvbl9yb3RhdGVfaGludCA9IEZCX1JPVEFURV9V RDsKKwkJYnJlYWs7CisJY2FzZSBEUk1fTU9ERV9ST1RBVEVfMjcwOgorCQlpbmZvLT5mYmNvbl9y b3RhdGVfaGludCA9IEZCX1JPVEFURV9DVzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJLyoKKwkJ ICogTXVsdGlwbGUgYml0cyBhcmUgc2V0IC8gbXVsdGlwbGUgcm90YXRpb25zIHJlcXVlc3RlZAor CQkgKiBmYmNvbiBjYW5ub3QgaGFuZGxlIHNlcGFyYXRlIHJvdGF0aW9uIHNldHRpbmdzIHBlcgor CQkgKiBvdXRwdXQsIHNvIGZhbGxiYWNrIHRvIHVucm90YXRlZC4KKwkJICovCisJCWluZm8tPmZi Y29uX3JvdGF0ZV9oaW50ID0gRkJfUk9UQVRFX1VSOworCX0KIH0KIAogLyogTm90ZTogRHJvcHMg ZmJfaGVscGVyLT5sb2NrIGJlZm9yZSByZXR1cm5pbmcuICovCmRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1fZmJfaGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKaW5kZXgg MzNmZTk1OTI3NzQyLi43ZmNhOTQxYzJjNTcgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9m Yl9oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fZmJfaGVscGVyLmgKQEAgLTQ4LDYgKzQ4 LDcgQEAgc3RydWN0IGRybV9mYl9oZWxwZXJfY3J0YyB7CiAJc3RydWN0IGRybV9tb2RlX3NldCBt b2RlX3NldDsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZGVzaXJlZF9tb2RlOwogCWludCB4 LCB5OworCWludCByb3RhdGlvbjsKIH07CiAKIC8qKgpAQCAtMTU4LDYgKzE1OSwxMyBAQCBzdHJ1 Y3QgZHJtX2ZiX2hlbHBlciB7CiAJc3RydWN0IGRybV9mYl9oZWxwZXJfY3J0YyAqY3J0Y19pbmZv OwogCWludCBjb25uZWN0b3JfY291bnQ7CiAJaW50IGNvbm5lY3Rvcl9pbmZvX2FsbG9jX2NvdW50 OworCS8qKgorCSAqIEByb3RhdGlvbnM6CisJICogQml0bWFzayBvZiBhbGwgcm90YXRpb25zIHJl cXVlc3RlZCBmb3IgcGFuZWwtb3JpZW50YXRpb24gd2hpY2gKKwkgKiBjb3VsZCBub3QgYmUgaGFu ZGxlZCBpbiBoYXJkd2FyZS4gSWYgb25seSBvbmUgYml0IGlzIHNldAorCSAqIGZiZGV2LT5mYmNv bl9yb3RhdGVfaGludCBnZXRzIHNldCB0byB0aGUgcmVxdWVzdGVkIHJvdGF0aW9uLgorCSAqLwor CWludCBzd19yb3RhdGlvbnM7CiAJLyoqCiAJICogQGNvbm5lY3Rvcl9pbmZvOgogCSAqCi0tIAoy LjE0LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=