From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anshuman Gupta Subject: [PATCH v10 3/6] drm/i915/tgl: Enable DC3CO state in "DC Off" power well Date: Thu, 3 Oct 2019 13:47:35 +0530 Message-ID: <20191003081738.22101-4-anshuman.gupta@intel.com> References: <20191003081738.22101-1-anshuman.gupta@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8E9176E2D5 for ; Thu, 3 Oct 2019 08:23:45 +0000 (UTC) In-Reply-To: <20191003081738.22101-1-anshuman.gupta@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 List-Id: intel-gfx@lists.freedesktop.org QWRkIHRhcmdldF9kY19zdGF0ZSBhbmQgdXNlZCBieSBzZXRfdGFyZ2V0X2RjX3N0YXRlIEFQSQpp biBvcmRlciB0byBlbmFibGUgREMzQ08gc3RhdGUgd2l0aCBleGlzdGluZyBEQyBzdGF0ZXMuCnRh cmdldF9kY19zdGF0ZSB3aWxsIGVuYWJsZS9kaXNhYmxlIHRoZSBkZXNpcmVkIERDIHN0YXRlIGlu CkRDX1NUQVRFX0VOIHJlZyB3aGVuICJEQyBPZmYiIHBvd2VyIHdlbGwgZ2V0cyBkaXNhYmxlL2Vu YWJsZS4KCnYyOiBjb21taXQgbG9nIGltcHJvdmVtZW50Lgp2MzogVXNlZCBpbnRlbF93YWl0X2Zv cl9yZWdpc3RlciB0byB3YWl0IGZvciBEQzNDTyBleGl0LiBbSW1yZV0KICAgIFVzZWQgZ2VuOV9z ZXRfZGNfc3RhdGUoKSB0byBhbGxvdy9kaXNhbGxvdyBEQzNDTy4gW0ltcmVdCiAgICBNb3ZlZCB0 cmFuc2NvZGVyIHBzcjIgZXhpdCBsaW5lIGVuYWJsZW1lbnQgZnJvbSB0Z2xfYWxsb3dfZGMzY28o KQogICAgdG8gYSBhcHByb3ByaWF0ZSBwbGFjZSBoYXN3ZWxsX2NydGNfZW5hYmxlKCkuIFtJbXJl XQogICAgQ2hhbmdlZCB0aGUgREMzQ08gcG93ZXIgd2VsbCBlbmFibGVkIGNhbGwgYmFjayBsb2dp YyBhcwogICAgcmVjb21tZW5kZWQgaW4gcmV2aWV3IGNvbW1lbnRzLiBbSW1yZV0KdjQ6IFVzZWQg d2FpdF9mb3JfdXMoKSBpbnN0ZWFkIG9mIGludGVsX3dhaXRfZm9yX3JlZygpLiBbSW1yZSAoSVJD KV0KdjU6IHVzaW5nIHVkZWxheSgpIGluc3RlYWQgb2Ygd2FpdGluZyBmb3IgREMzQ08gZXhpdCBz dGF0dXMuCnY2OiBGaXhlZCBtaW5vciB1bndhbnRlZCBjaGFuZ2UuCnY3OiBSZW1vdmVkIERDM0NP IHBvd2Vyd2VsbCBhbmQgUE9XRVJfRE9NQUlOX1ZJREVPLgp2ODogVW5pZm9ybSBjaGVja3MgYnkg dXNpbmcgb25seSB0YXJnZXRfZGNfc3RhdGUgaW5zdGVhZCBvZiBhbGxvd2VkX2RjX21hc2sKICAg IGluICJEQyBvZmYiIHBvd2VyIHdlbGwgY2FsbGJhY2suIFtJbXJlXQogICAgQWRkaW5nICJEQyBv ZmYiIHBvd2VyIHdlbGwgaWQgdG8gb2xkZXIgcGxhdGZvcm1zLiBbSW1yZV0KICAgIFJlbW92ZWQg cHNyMl9kZWVwX3NsZWVwIGZsYWcgZnJvbSB0Z2xfc2V0X3RhcmdldF9kY19zdGF0ZS4gW0ltcmVd CnY5OiBVc2VkIHN3aXRjaCBjYXNlIGZvciB0YXJnZXQgREMgc3RhdGUgaW4KICAgIGdlbjlfZGNf b2ZmX3Bvd2VyX3dlbGxfZGlzYWJsZSgpLCBjaGVja2luZyBEQzNDTyBzdGF0ZSBhZ2FpbnN0CiAg ICBhbGxvd2VkIERDIG1hc2ssIHVzaW5nIFdBUk5fT04oKSBpbgogICAgdGdsX3NldF90YXJnZXRf ZGNfc3RhdGUoKS4gW0ltcmVdCnYxMDogQ29kZSByZWZhY3RvcmluZyBhbmQgdXNpbmcgc2FuaXRp emVfdGFyZ2V0X2RjX3N0YXRlKCkuIFtJbXJlXQoKQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3Vs YUBpbnRlbC5jb20+CkNjOiBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+CkNjOiBBbmlt ZXNoIE1hbm5hIDxhbmltZXNoLm1hbm5hQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEltcmUgRGVh ayA8aW1yZS5kZWFrQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5zaHVtYW4gR3VwdGEgPGFu c2h1bWFuLmd1cHRhQGludGVsLmNvbT4KLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5X3Bvd2VyLmMgICAgfCA4MCArKysrKysrKysrKysrKysrLS0tCiAuLi4vZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmggICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgICAgfCAgMSArCiAzIGZpbGVzIGNoYW5nZWQsIDcz IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwppbmRleCAxMjg4NmEyZWE2ZGIuLmMy Y2JmYzIxMGI1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5X3Bvd2VyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5X3Bvd2VyLmMKQEAgLTc2OSw2ICs3NjksNTIgQEAgc3RhdGljIHZvaWQgZ2VuOV9z ZXRfZGNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgc3RhdGUp CiAJZGV2X3ByaXYtPmNzci5kY19zdGF0ZSA9IHZhbCAmIG1hc2s7CiB9CiAKK3N0YXRpYyB1MzIK K3Nhbml0aXplX3RhcmdldF9kY19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCQkgdTMyIHRhcmdldF9kY19zdGF0ZSkKK3sKKwl1MzIgc3RhdGVzW10gPSB7CisJCURD X1NUQVRFX0VOX1VQVE9fREM2LAorCQlEQ19TVEFURV9FTl9VUFRPX0RDNSwKKwkJRENfU1RBVEVf RU5fREMzQ08sCisJCURDX1NUQVRFX0RJU0FCTEUsCisJfTsKKwlpbnQgaTsKKworCWZvciAoaSA9 IDA7IGkgPCBBUlJBWV9TSVpFKHN0YXRlcykgLSAxOyBpKyspIHsKKwkJaWYgKHRhcmdldF9kY19z dGF0ZSAhPSBzdGF0ZXNbaV0pCisJCQljb250aW51ZTsKKworCQlpZiAoZGV2X3ByaXYtPmNzci5h bGxvd2VkX2RjX21hc2sgJiB0YXJnZXRfZGNfc3RhdGUpCisJCQlicmVhazsKKworCQl0YXJnZXRf ZGNfc3RhdGUgPSBzdGF0ZXNbaSArIDFdOworCX0KKworCXJldHVybiB0YXJnZXRfZGNfc3RhdGU7 Cit9CisKK3N0YXRpYyB2b2lkIHRnbF9lbmFibGVfZGMzY28oc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQoreworCURSTV9ERUJVR19LTVMoIkVuYWJsaW5nIERDM0NPXG4iKTsKKwln ZW45X3NldF9kY19zdGF0ZShkZXZfcHJpdiwgRENfU1RBVEVfRU5fREMzQ08pOworfQorCitzdGF0 aWMgdm9pZCB0Z2xfZGlzYWJsZV9kYzNjbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCit7CisJdTMyIHZhbDsKKworCURSTV9ERUJVR19LTVMoIkRpc2FibGluZyBEQzNDT1xuIik7 CisJdmFsID0gSTkxNV9SRUFEKERDX1NUQVRFX0VOKTsKKwl2YWwgJj0gfkRDX1NUQVRFX0RDM0NP X1NUQVRVUzsKKwlJOTE1X1dSSVRFKERDX1NUQVRFX0VOLCB2YWwpOworCWdlbjlfc2V0X2RjX3N0 YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxFKTsKKwkvKgorCSAqIERlbGF5IG9mIDIwMHVz IERDM0NPIEV4aXQgdGltZSBCLlNwZWMgNDkxOTYKKwkgKi8KKwl1c2xlZXBfcmFuZ2UoMjAwLCAy MTApOworfQorCiBzdGF0aWMgdm9pZCBieHRfZW5hYmxlX2RjOShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiB7CiAJYXNzZXJ0X2Nhbl9lbmFibGVfZGM5KGRldl9wcml2KTsKQEAg LTkzNiw3ICs5ODIsOCBAQCBzdGF0aWMgdm9pZCBieHRfdmVyaWZ5X2RkaV9waHlfcG93ZXJfd2Vs bHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIGJvb2wgZ2VuOV9k Y19vZmZfcG93ZXJfd2VsbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJCQkJICAgc3RydWN0IGk5MTVfcG93ZXJfd2VsbCAqcG93ZXJfd2VsbCkKIHsKLQlyZXR1 cm4gKEk5MTVfUkVBRChEQ19TVEFURV9FTikgJiBEQ19TVEFURV9FTl9VUFRPX0RDNV9EQzZfTUFT SykgPT0gMDsKKwlyZXR1cm4gKChJOTE1X1JFQUQoRENfU1RBVEVfRU4pICYgRENfU1RBVEVfRU5f REMzQ08pID09IDAgJiYKKwkJKEk5MTVfUkVBRChEQ19TVEFURV9FTikgJiBEQ19TVEFURV9FTl9V UFRPX0RDNV9EQzZfTUFTSykgPT0gMCk7CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjlfYXNzZXJ0X2Ri dWZfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC05NTIsNiAr OTk5LDExIEBAIHN0YXRpYyB2b2lkIGdlbjlfZGlzYWJsZV9kY19zdGF0ZXMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogewogCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSBjZGNs a19zdGF0ZSA9IHt9OwogCisJaWYgKGRldl9wcml2LT5jc3IudGFyZ2V0X2RjX3N0YXRlID09IERD X1NUQVRFX0VOX0RDM0NPKSB7CisJCXRnbF9kaXNhYmxlX2RjM2NvKGRldl9wcml2KTsKKwkJcmV0 dXJuOworCX0KKwogCWdlbjlfc2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9ESVNBQkxF KTsKIAogCWRldl9wcml2LT5kaXNwbGF5LmdldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRl KTsKQEAgLTk4NCwxMCArMTAzNiwxNyBAQCBzdGF0aWMgdm9pZCBnZW45X2RjX29mZl9wb3dlcl93 ZWxsX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmICghZGV2 X3ByaXYtPmNzci5kbWNfcGF5bG9hZCkKIAkJcmV0dXJuOwogCi0JaWYgKGRldl9wcml2LT5jc3Iu YWxsb3dlZF9kY19tYXNrICYgRENfU1RBVEVfRU5fVVBUT19EQzYpCisJc3dpdGNoIChkZXZfcHJp di0+Y3NyLnRhcmdldF9kY19zdGF0ZSkgeworCWNhc2UgRENfU1RBVEVfRU5fREMzQ086CisJCXRn bF9lbmFibGVfZGMzY28oZGV2X3ByaXYpOworCQlicmVhazsKKwljYXNlIERDX1NUQVRFX0VOX1VQ VE9fREM2OgogCQlza2xfZW5hYmxlX2RjNihkZXZfcHJpdik7Ci0JZWxzZSBpZiAoZGV2X3ByaXYt PmNzci5hbGxvd2VkX2RjX21hc2sgJiBEQ19TVEFURV9FTl9VUFRPX0RDNSkKKwkJYnJlYWs7CisJ Y2FzZSBEQ19TVEFURV9FTl9VUFRPX0RDNToKIAkJZ2VuOV9lbmFibGVfZGM1KGRldl9wcml2KTsK KwkJYnJlYWs7CisJfQogfQogCiBzdGF0aWMgdm9pZCBpOXh4X3Bvd2VyX3dlbGxfc3luY19od19u b29wKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTI5MzUsNyArMjk5NCw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX2Rlc2Mgc2tsX3Bvd2VyX3dl bGxzW10gPSB7CiAJCS5uYW1lID0gIkRDIG9mZiIsCiAJCS5kb21haW5zID0gU0tMX0RJU1BMQVlf RENfT0ZGX1BPV0VSX0RPTUFJTlMsCiAJCS5vcHMgPSAmZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9v cHMsCi0JCS5pZCA9IERJU1BfUFdfSURfTk9ORSwKKwkJLmlkID0gU0tMX0RJU1BfRENfT0ZGLAog CX0sCiAJewogCQkubmFtZSA9ICJwb3dlciB3ZWxsIDIiLApAQCAtMzAxNyw3ICszMDc2LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVzYyBieHRfcG93ZXJfd2VsbHNb XSA9IHsKIAkJLm5hbWUgPSAiREMgb2ZmIiwKIAkJLmRvbWFpbnMgPSBCWFRfRElTUExBWV9EQ19P RkZfUE9XRVJfRE9NQUlOUywKIAkJLm9wcyA9ICZnZW45X2RjX29mZl9wb3dlcl93ZWxsX29wcywK LQkJLmlkID0gRElTUF9QV19JRF9OT05FLAorCQkuaWQgPSBTS0xfRElTUF9EQ19PRkYsCiAJfSwK IAl7CiAJCS5uYW1lID0gInBvd2VyIHdlbGwgMiIsCkBAIC0zMDc3LDcgKzMxMzYsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGk5MTVfcG93ZXJfd2VsbF9kZXNjIGdsa19wb3dlcl93ZWxsc1tdID0g ewogCQkubmFtZSA9ICJEQyBvZmYiLAogCQkuZG9tYWlucyA9IEdMS19ESVNQTEFZX0RDX09GRl9Q T1dFUl9ET01BSU5TLAogCQkub3BzID0gJmdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfb3BzLAotCQku aWQgPSBESVNQX1BXX0lEX05PTkUsCisJCS5pZCA9IFNLTF9ESVNQX0RDX09GRiwKIAl9LAogCXsK IAkJLm5hbWUgPSAicG93ZXIgd2VsbCAyIiwKQEAgLTMyNDYsNyArMzMwNSw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaTkxNV9wb3dlcl93ZWxsX2Rlc2MgY25sX3Bvd2VyX3dlbGxzW10gPSB7CiAJ CS5uYW1lID0gIkRDIG9mZiIsCiAJCS5kb21haW5zID0gQ05MX0RJU1BMQVlfRENfT0ZGX1BPV0VS X0RPTUFJTlMsCiAJCS5vcHMgPSAmZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9vcHMsCi0JCS5pZCA9 IERJU1BfUFdfSURfTk9ORSwKKwkJLmlkID0gU0tMX0RJU1BfRENfT0ZGLAogCX0sCiAJewogCQku bmFtZSA9ICJwb3dlciB3ZWxsIDIiLApAQCAtMzM3NCw3ICszNDMzLDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGxfZGVzYyBpY2xfcG93ZXJfd2VsbHNbXSA9IHsKIAkJLm5h bWUgPSAiREMgb2ZmIiwKIAkJLmRvbWFpbnMgPSBJQ0xfRElTUExBWV9EQ19PRkZfUE9XRVJfRE9N QUlOUywKIAkJLm9wcyA9ICZnZW45X2RjX29mZl9wb3dlcl93ZWxsX29wcywKLQkJLmlkID0gRElT UF9QV19JRF9OT05FLAorCQkuaWQgPSBTS0xfRElTUF9EQ19PRkYsCiAJfSwKIAl7CiAJCS5uYW1l ID0gInBvd2VyIHdlbGwgMiIsCkBAIC0zNjA3LDcgKzM2NjYsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGk5MTVfcG93ZXJfd2VsbF9kZXNjIHRnbF9wb3dlcl93ZWxsc1tdID0gewogCQkubmFtZSA9 ICJEQyBvZmYiLAogCQkuZG9tYWlucyA9IFRHTF9ESVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5T LAogCQkub3BzID0gJmdlbjlfZGNfb2ZmX3Bvd2VyX3dlbGxfb3BzLAotCQkuaWQgPSBESVNQX1BX X0lEX05PTkUsCisJCS5pZCA9IFNLTF9ESVNQX0RDX09GRiwKIAl9LAogCXsKIAkJLm5hbWUgPSAi cG93ZXIgd2VsbCAyIiwKQEAgLTQwNDAsNiArNDA5OSw5IEBAIGludCBpbnRlbF9wb3dlcl9kb21h aW5zX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWRldl9wcml2LT5j c3IuYWxsb3dlZF9kY19tYXNrID0KIAkJZ2V0X2FsbG93ZWRfZGNfbWFzayhkZXZfcHJpdiwgaTkx NV9tb2RwYXJhbXMuZW5hYmxlX2RjKTsKIAorCWRldl9wcml2LT5jc3IudGFyZ2V0X2RjX3N0YXRl ID0KKwkJc2FuaXRpemVfdGFyZ2V0X2RjX3N0YXRlKGRldl9wcml2LCBEQ19TVEFURV9FTl9VUFRP X0RDNik7CisKIAlCVUlMRF9CVUdfT04oUE9XRVJfRE9NQUlOX05VTSA+IDY0KTsKIAogCW11dGV4 X2luaXQoJnBvd2VyX2RvbWFpbnMtPmxvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuaAppbmRleCA3MzdiNWRlZjdmYzYuLjdkNzJm YWY0NzRiMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5X3Bvd2VyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5X3Bvd2VyLmgKQEAgLTEwMCw2ICsxMDAsNyBAQCBlbnVtIGk5MTVfcG93ZXJfd2VsbF9p ZCB7CiAJU0tMX0RJU1BfUFdfTUlTQ19JTywKIAlTS0xfRElTUF9QV18xLAogCVNLTF9ESVNQX1BX XzIsCisJU0tMX0RJU1BfRENfT0ZGLAogfTsKIAogI2RlZmluZSBQT1dFUl9ET01BSU5fUElQRShw aXBlKSAoKHBpcGUpICsgUE9XRVJfRE9NQUlOX1BJUEVfQSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CmluZGV4IDMzN2Q4MzA2NDE2YS4uNjUyMWE2MmU2ODE3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKQEAgLTMzOCw2ICszMzgsNyBAQCBzdHJ1Y3QgaW50ZWxfY3NyIHsKIAlpOTE1X3JlZ190IG1t aW9hZGRyWzIwXTsKIAl1MzIgbW1pb2RhdGFbMjBdOwogCXUzMiBkY19zdGF0ZTsKKwl1MzIgdGFy Z2V0X2RjX3N0YXRlOwogCXUzMiBhbGxvd2VkX2RjX21hc2s7CiAJaW50ZWxfd2FrZXJlZl90IHdh a2VyZWY7CiB9OwotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZng=