From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH 20/20] drm/i915: write AVI infoframes for LSPCON Date: Mon, 10 Jul 2017 16:48:48 +0530 Message-ID: <1499685528-6926-21-git-send-email-shashank.sharma@intel.com> References: <1499685528-6926-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1499685528-6926-1-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org TFNQQ09OIGNoaXBzIGNhbid0IHBpY2sgdGhlIEhETUkgQVZJIGluZm9mcmFtZXMgZnJvbSBkaXJl Y3QgbGluay4KSW4gb3JkZXIgdG8gcGFzcyBBVkkgaW5mb2ZyYW1lcyBmcm9tIGRpc3BsYXkgY29u dHJvbGxlciB0byBMU1BDT04sCndlIGhhdmUgdG8gd3JpdGUgaW5mb2ZyYW1lIHBhY2tldHMgaW50 byB2ZW5kb3Igc3BlY2lmaWVkIEFVWCBhZGRyZXNzLgoKQWxzbywgTFNQQ09OIHZlbmRvcnMgcHJv dmlkZSBBVVggb2Zmc2V0cywgdG8gaW5mb3JtIHRoZSBMU1BDT04KY2hpcCB0aGF0IHRoZSBBVkkg SUYgcGFja2V0cyBhcmUgd3JpdHRlbiwgc28gdGhhdCB0aGUgZmlybXdhcmUKY2FuIHBpY2sgaXQg dXAgYW5kIGFwcGx5LgoKVGhpcyBwYXRjaCBhZGRzIGZ1bmN0aW9uIHRvIHdyaXRlIEFWSSBpbmZv ZnJhbWVzIGZvciBib3RoIE1DQSBhcwp3ZWxsIGFzIFBhcmFkZSBUZWNoIExTUENPTiBjaGlwcy4g VGhlc2UgdHdvIHZlbmRvcnMgcHJvdmlkZSBkaWZmZXJlbnQKbWV0aG9kcyBmb3Igd3JpdGluZyBp bmZvZnJhbWVzLCBzbyB0aGlzIHBhdGNoIGNvbnRhaW5zIHR3byBkaWZmZXJlbnQKZnVuY3Rpb25z LCBvbmUgZm9yIGVhY2guCgpDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KQ2M6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KU2lnbmVkLW9m Zi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAgIHwgICA4ICsrCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9sc3Bjb24uYyB8IDE3NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMg ZmlsZXMgY2hhbmdlZCwgMTg1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5j CmluZGV4IGY2OTE3MTAuLjk0NGQ5ZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0y MDY4LDYgKzIwNjgsMTQgQEAgdm9pZCBpbnRlbF9kZGlfc2V0X2F2aV9pbmZvZnJhbWUoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkgICByZ2JfcXJhbmdlX2xpbWl0ZWQsCiAJCQkJ CSAgIHJnYl9xcmFuZ2Vfc2VsZWN0YWJsZSk7CiAKKwlpZiAoY3J0Y19zdGF0ZS0+bHNwY29uX2Fj dGl2ZSkgeworCQlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSBlbmNfdG9faW50ZWxfbHNw Y29uKGVuY29kZXIpOworCisJCS8qIExTUENPTiB3cml0ZXMgaW5mb2ZyYW1lcyB2aWEgQVVYICov CisJCWxzcGNvbi0+d3JpdGVfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUsICZmcmFtZSk7 CisJCXJldHVybjsKKwl9CisKIAlpbnRlbF93cml0ZV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19z dGF0ZSwgJmZyYW1lKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCBmYWQ5YTUz Li4zZTY4NmQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTA3OSw2ICsxMDc5LDkg QEAgc3RydWN0IGludGVsX2xzcGNvbiB7CiAJLyogQVZJIElGIHNldHVwIGZ1bmN0aW9uIGZvciBM U1BDT04gKi8KIAl2b2lkICgqc2V0X2luZm9mcmFtZXMpKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKIAkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CisJ dm9pZCAoKndyaXRlX2luZm9mcmFtZSkoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAorCQkJ CWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkJCXVuaW9uIGhk bWlfaW5mb2ZyYW1lICpmcmFtZSk7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKaW5kZXggNTNkZGQzOS4uMDFmZGRmNyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKQEAgLTMxLDYgKzMxLDE4IEBACiAjZGVmaW5l IExTUENPTl9WRU5ET1JfUEFSQURFX09VSSAweDAwMUNGOAogI2RlZmluZSBMU1BDT05fVkVORE9S X01DQV9PVUkgMHgwMDYwQUQKIAorLyogQVVYIGFkZHJlc3NlcyB0byB3cml0ZSBBVkkgSUYgaW50 byAqLworI2RlZmluZSBMU1BDT05fTUNBX0FWSV9JRl9XUklURV9PRkZTRVQgMHg1QzAKKyNkZWZp bmUgTFNQQ09OX01DQV9BVklfSUZfQ1RSTCAweDVERgorI2RlZmluZSAgTFNQQ09OX01DQV9BVklf SUZfS0lDS09GRiAoMSA8PCAwKQorI2RlZmluZSAgTFNQQ09OX01DQV9BVklfSUZfSEFORExFRCAo MSA8PCAxKQorCisjZGVmaW5lIExTUENPTl9QQVJBREVfQVZJX0lGX1dSSVRFX09GRlNFVCAweDUx NgorI2RlZmluZSBMU1BDT05fUEFSQURFX0FWSV9JRl9DVFJMIDB4NTFFCisjZGVmaW5lICBMU1BD T05fUEFSQURFX0FWSV9JRl9LSUNLT0ZGICgxIDw8IDcpCisjZGVmaW5lIExTUENPTl9QQVJBREVf QVZJX0lGX1NUQVRVUyAweDUxRgorI2RlZmluZSAgTFNQQ09OX1BBUkFERV9BVklfSUZfSEFORExF RCAoMiA8PCA2KQorCiBzdGF0aWMgc3RydWN0IGludGVsX2RwICpsc3Bjb25fdG9faW50ZWxfZHAo c3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uKQogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmRpZ19wb3J0ID0KQEAgLTIxNyw2ICsyMjksMTY3IEBAIGJvb2wgbHNwY29uX3ljYmNyNDIw X2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCXJldHVybiBmYWxzZTsK IH0KIAorc3RhdGljIGJvb2wgX2xzcGNvbl93cml0ZV9pbmZvZnJhbWVfcGFyYWRlKHN0cnVjdCBk cm1fZHBfYXV4ICphdXgsCisJCQkJCSAgIHVpbnQ4X3QgKmJ1ZmZlciwgc3NpemVfdCBsZW4pCit7 CisJdTggYXZpX2lmX2N0cmw7CisJdTggYXZpX2lmX3N0YXR1czsKKwl1OCBjb3VudCA9IDA7CisJ dTggcmV0cnkgPSA1OworCXU4IGF2aV9idWZbOF0gPSB7MCwgfTsKKwl1aW50MTZfdCByZWc7CisJ c3NpemVfdCByZXQ7CisKKwl3aGlsZSAoY291bnQrKyA8IDQpIHsKKworCQlkbyB7CisJCQkvKiBJ cyBMU1BDT04gRlcgcmVhZHkgKi8KKwkJCXJlZyA9IExTUENPTl9QQVJBREVfQVZJX0lGX0NUUkw7 CisJCQlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKGF1eCwgcmVnLCAmYXZpX2lmX2N0cmwsIDEpOwor CQkJaWYgKHJldCA8IDApIHsKKwkJCQlEUk1fRVJST1IoIkRQQ0QgcmVhZCBmYWlsZWQsIGFkZDow eCV4XG4iLCByZWcpOworCQkJCXJldHVybiBmYWxzZTsKKwkJCX0KKworCQkJaWYgKGF2aV9pZl9j dHJsICYgTFNQQ09OX1BBUkFERV9BVklfSUZfS0lDS09GRikKKwkJCQlicmVhazsKKwkJCXVzbGVl cF9yYW5nZSgxMDAsIDIwMCk7CisJCX0gd2hpbGUgKC0tcmV0cnkpOworCisJCWlmICghKGF2aV9p Zl9jdHJsICYgTFNQQ09OX1BBUkFERV9BVklfSUZfS0lDS09GRikpIHsKKwkJCURSTV9FUlJPUigi TFNQQ09OIEZXIG5vdCByZWFkeSBmb3IgaW5mb2ZyYW1lc1xuIik7CisJCQlyZXR1cm4gZmFsc2U7 CisJCX0KKworCQkvKgorCQkgKiBBVkkgSW5mb2ZyYW1lIGNvbnRhaW5zIDMxIGJ5dGVzIG9mIGRh dGE6CisJCSAqCUhCMCB0byBIQjIgICAoMyBieXRlcyBoZWFkZXIpCisJCSAqCVBCMCB0byBQQjI3 ICgyOCBieXRlcyBkYXRhKQorCQkgKiBBcyBwZXIgUGFyYWRlIHNwZWMsIHdoaWxlIHNlbmRpbmcg Zmlyc3QgYmxvY2sgKDhieXRlcyksCisJCSAqIGJ5dGUgMCBpcyBrZXB0IGZvciByZXF1ZXN0IHRv a2VuIG5vLCBhbmQgYnl0ZTEgLSBieXRlNworCQkgKiBjb250YWluIGZyYW1lIGRhdGEuIFNvIHdl IGhhdmUgdG8gcGFjayBmcmFtZSBsaWtlIHRoaXM6CisJCSAqCWZpcnN0IGJsb2NrIG9mIDggYnl0 ZXM6IDx0b2tlbj4gPEhCMC1IQjI+IDxQQjAtUEIzPgorCQkgKgluZXh0IDMgYmxvY2tzOiA8UEI0 LVBCMjc+CisJCSAqLworCQlpZiAoY291bnQpCisJCQltZW1jcHkoYXZpX2J1ZiwgYnVmZmVyICsg Y291bnQgKiA4IC0gMSwgOCk7CisJCWVsc2UgeworCQkJYXZpX2J1ZlswXSA9IDE7CisJCQltZW1j cHkoJmF2aV9idWZbMV0sIGJ1ZmZlciwgNyk7CisJCX0KKworCQkvKiBXcml0ZSA4IGJ5dGVzIG9m IGRhdGEgYXQgYSB0aW1lICovCisJCXJlZyA9IExTUENPTl9QQVJBREVfQVZJX0lGX1dSSVRFX09G RlNFVDsKKwkJcmV0ID0gZHJtX2RwX2RwY2Rfd3JpdGUoYXV4LCByZWcsIGF2aV9idWYsIDgpOwor CQlpZiAocmV0IDwgMCkgeworCQkJRFJNX0VSUk9SKCJEUENEIHdyaXRlIGZhaWxlZCwgYWRkOjB4 JXhcbiIsIHJlZyk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQkvKgorCQkgKiBXaGlsZSBz ZW5kaW5nIGEgYmxvY2sgb2YgOCBieWVzLCB3ZSBuZWVkIHRvIGluZm9ybSBibG9jaworCQkgKiBu dW1iZXIgdG8gRlcsIGJ5IHByb2dyYW1taW5nIGJpdHNbMTowXSBvZiBjdHJsIHJlZyB3aXRoCisJ CSAqIGJsb2NrIG51bWJlcgorCQkgKi8KKwkJYXZpX2lmX2N0cmwgPSAweDgwICsgY291bnQ7CisJ CXJlZyA9IExTUENPTl9QQVJBREVfQVZJX0lGX0NUUkw7CisJCXJldCA9IGRybV9kcF9kcGNkX3dy aXRlKGF1eCwgcmVnLCAmYXZpX2lmX2N0cmwsIDEpOworCQlpZiAocmV0IDwgMCkgeworCQkJRFJN X0VSUk9SKCJEUENEIHdyaXRlIGZhaWxlZCwgYWRkOjB4JXhcbiIsIHJlZyk7CisJCQlyZXR1cm4g ZmFsc2U7CisJCX0KKwl9CisKKwkvKiBDaGVjayBMU1BDT04gRlcgc3RhdHVzICovCisJcmVnID0g TFNQQ09OX1BBUkFERV9BVklfSUZfU1RBVFVTOworCXJldCA9IGRybV9kcF9kcGNkX3JlYWQoYXV4 LCByZWcsICZhdmlfaWZfc3RhdHVzLCAxKTsKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fRVJST1Io IkRQQ0Qgd3JpdGUgZmFpbGVkLCBhZGRyZXNzIDB4JXhcbiIsIHJlZyk7CisJCXJldHVybiBmYWxz ZTsKKwl9CisKKwlpZiAoYXZpX2lmX3N0YXR1cyAmIExTUENPTl9QQVJBREVfQVZJX0lGX0hBTkRM RUQpCisJCURSTV9ERUJVR19LTVMoIkFWSSBJRiBoYW5kbGVkIGJ5IEZXXG4iKTsKKworCXJldHVy biB0cnVlOworfQorCitzdGF0aWMgYm9vbCBfbHNwY29uX3dyaXRlX2luZm9mcmFtZV9tY2Eoc3Ry dWN0IGRybV9kcF9hdXggKmF1eCwKKwkJCQkJdWludDhfdCAqYnVmZmVyLCBzc2l6ZV90IGxlbikK K3sKKwlpbnQgcmV0OworCXVpbnQzMl90IHZhbCA9IDA7CisJdWludDE2X3QgcmVnOworCXVpbnQ4 X3QgKmRhdGEgPSBidWZmZXI7CisKKwlyZWcgPSBMU1BDT05fTUNBX0FWSV9JRl9XUklURV9PRkZT RVQ7CisJd2hpbGUgKHZhbCA8IGxlbikgeworCQlyZXQgPSBkcm1fZHBfZHBjZF93cml0ZShhdXgs IHJlZywgZGF0YSwgMSk7CisJCWlmIChyZXQgPCAwKSB7CisJCQlEUk1fRVJST1IoIkRQQ0Qgd3Jp dGUgZmFpbGVkLCBhZGQ6MHgleFxuIiwgcmVnKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCQl2 YWwrKzsgcmVnKys7IGRhdGErKzsKKwl9CisKKwl2YWwgPSAwOworCXJlZyA9IExTUENPTl9NQ0Ff QVZJX0lGX0NUUkw7CisJcmV0ID0gZHJtX2RwX2RwY2RfcmVhZChhdXgsIHJlZywgJnZhbCwgMSk7 CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0VSUk9SKCJEUENEIHJlYWQgZmFpbGVkLCBhZGRyZXNz IDB4JXhcbiIsIHJlZyk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwkvKiBJbmRpY2F0ZSBMU1BD T04gY2hpcCBhYm91dCBpbmZvZnJhbWUsIGNsZWFyIGJpdCAxIGFuZCBzZXQgYml0IDAgKi8KKwl2 YWwgJj0gfkxTUENPTl9NQ0FfQVZJX0lGX0hBTkRMRUQ7CisJdmFsIHw9IExTUENPTl9NQ0FfQVZJ X0lGX0tJQ0tPRkY7CisKKwlyZXQgPSBkcm1fZHBfZHBjZF93cml0ZShhdXgsIHJlZywgJnZhbCwg MSk7CisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0VSUk9SKCJEUENEIHJlYWQgZmFpbGVkLCBhZGRy ZXNzIDB4JXhcbiIsIHJlZyk7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwl2YWwgPSAwOworCXJl dCA9IGRybV9kcF9kcGNkX3JlYWQoYXV4LCByZWcsICZ2YWwsIDEpOworCWlmIChyZXQgPCAwKSB7 CisJCURSTV9FUlJPUigiRFBDRCByZWFkIGZhaWxlZCwgYWRkcmVzcyAweCV4XG4iLCByZWcpOwor CQlyZXR1cm4gZmFsc2U7CisJfQorCisJaWYgKHZhbCA9PSBMU1BDT05fTUNBX0FWSV9JRl9IQU5E TEVEKQorCQlEUk1fREVCVUdfS01TKCJBVkkgSUYgaGFuZGxlZCBieSBGV1xuIik7CisKKwlyZXR1 cm4gdHJ1ZTsKK30KKwordm9pZCBsc3Bjb25fd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlciwKKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAorCQkJCSAgdW5pb24gaGRtaV9pbmZvZnJhbWUgKmZyYW1lKQoreworCWJvb2wgcmV0 OworCXNzaXplX3QgbGVuOworCXVpbnQ4X3QgYnVmW1ZJREVPX0RJUF9EQVRBX1NJWkVdOworCXN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoZW5jb2Rlcik7CisJc3Ry dWN0IGludGVsX2xzcGNvbiAqbHNwY29uID0gZW5jX3RvX2ludGVsX2xzcGNvbihlbmNvZGVyKTsK KworCWxlbiA9IGhkbWlfaW5mb2ZyYW1lX3BhY2soZnJhbWUsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwor CWlmIChsZW4gPCAwKSB7CisJCURSTV9FUlJPUigiRmFpbGVkIHRvIHBhY2sgQVZJIElGXG4iKTsK KwkJcmV0dXJuOworCX0KKworCWlmIChsc3Bjb24tPnZlbmRvciA9PSBMU1BDT05fVkVORE9SX01D QSkKKwkJcmV0ID0gX2xzcGNvbl93cml0ZV9pbmZvZnJhbWVfbWNhKCZpbnRlbF9kcC0+YXV4LCBi dWYsIGxlbik7CisJZWxzZQorCQlyZXQgPSBfbHNwY29uX3dyaXRlX2luZm9mcmFtZV9wYXJhZGUo JmludGVsX2RwLT5hdXgsIGJ1ZiwgbGVuKTsKKworCWlmICghcmV0KQorCQlEUk1fRVJST1IoIkZh aWxlZCB0byB3cml0ZSBBVkkgaW5mb2ZyYW1lc1xuIik7CisJZWxzZQorCQlEUk1fREVCVUdfRFJJ VkVSKCJBVkkgaW5mb2ZyYW1lcyB1cGRhdGVkIHN1Y2Nlc3NmdWxseVxuIik7Cit9CisKIHZvaWQg bHNwY29uX3Jlc3VtZShzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24pCiB7CiAJZW51bSBkcm1f bHNwY29uX21vZGUgZXhwZWN0ZWRfbW9kZTsKQEAgLTI4Miw2ICs0NTUsNyBAQCBib29sIGxzcGNv bl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQogCiAJY29u bmVjdG9yLT55Y2Jjcl80MjBfYWxsb3dlZCA9IHRydWU7CiAJbHNwY29uLT5zZXRfaW5mb2ZyYW1l cyA9IGludGVsX2RkaV9zZXRfYXZpX2luZm9mcmFtZTsKKwlsc3Bjb24tPndyaXRlX2luZm9mcmFt ZSA9IGxzcGNvbl93cml0ZV9pbmZvZnJhbWU7CiAJZHJtX2RwX3JlYWRfZGVzYygmZHAtPmF1eCwg JmRwLT5kZXNjLCBkcm1fZHBfaXNfYnJhbmNoKGRwLT5kcGNkKSk7CiAKIAlEUk1fREVCVUdfS01T KCJTdWNjZXNzOiBMU1BDT04gaW5pdFxuIik7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==