From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH v2 08/24] drm/msm: dpu: Move DPU_POWER_HANDLE_DBUS_ID to core_perf Date: Fri, 16 Nov 2018 13:42:18 -0500 Message-ID: <20181116184238.170034-9-sean@poorly.run> References: <20181116184238.170034-1-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181116184238.170034-1-sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Sean Paul , jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpJdCdzIG9ubHkgdXNlZCBp biBjb3JlX3BlcmYsIHNvIHN0aWNrIGl0IHRoZXJlIChhbmQgY2hhbmdlIHRoZSBuYW1lIHRvCnJl ZmxlY3QgdGhhdCkuCgpDaGFuZ2VzIGluIHYyOgotIE5vbmUKClJldmlld2VkLWJ5OiBKZXlrdW1h ciBTYW5rYXJhbiA8anNhbmthQGNvZGVhdXJvcmEub3JnPgpTaWduZWQtb2ZmLWJ5OiBTZWFuIFBh dWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY29yZV9wZXJmLmMgfCAzNCArKysrKysrKystLS0tLS0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmggfCAxNyArKysrKysrKy0tCiBkcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgICAgfCAgNCArLS0KIC4uLi9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oICB8IDEzIC0tLS0tLS0KIDQg ZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jIGIvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jCmluZGV4IGVmNmRkNDNm OGJlYy4uYmZmYzUxZTQ5NmU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY29yZV9wZXJmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2NvcmVfcGVyZi5jCkBAIC05NSwyMCArOTUsMjAgQEAgc3RhdGljIHZvaWQgX2RwdV9jb3Jl X3BlcmZfY2FsY19jcnRjKHN0cnVjdCBkcHVfa21zICprbXMsCiAJbWVtc2V0KHBlcmYsIDAsIHNp emVvZihzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMpKTsKIAogCWlmICghZHB1X2NzdGF0ZS0+ YndfY29udHJvbCkgewotCQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE X01BWDsgaSsrKSB7CisJCWZvciAoaSA9IDA7IGkgPCBEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lE X01BWDsgaSsrKSB7CiAJCQlwZXJmLT5id19jdGxbaV0gPSBrbXMtPmNhdGFsb2ctPnBlcmYubWF4 X2J3X2hpZ2ggKgogCQkJCQkxMDAwVUxMOwogCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liW2ldID0g cGVyZi0+YndfY3RsW2ldOwogCQl9CiAJCXBlcmYtPmNvcmVfY2xrX3JhdGUgPSBrbXMtPnBlcmYu bWF4X2NvcmVfY2xrX3JhdGU7CiAJfSBlbHNlIGlmIChrbXMtPnBlcmYucGVyZl90dW5lLm1vZGUg PT0gRFBVX1BFUkZfTU9ERV9NSU5JTVVNKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBEUFVfUE9XRVJf SEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKKwkJZm9yIChpID0gMDsgaSA8IERQVV9DT1JFX1BF UkZfREFUQV9CVVNfSURfTUFYOyBpKyspIHsKIAkJCXBlcmYtPmJ3X2N0bFtpXSA9IDA7CiAJCQlw ZXJmLT5tYXhfcGVyX3BpcGVfaWJbaV0gPSAwOwogCQl9CiAJCXBlcmYtPmNvcmVfY2xrX3JhdGUg PSAwOwogCX0gZWxzZSBpZiAoa21zLT5wZXJmLnBlcmZfdHVuZS5tb2RlID09IERQVV9QRVJGX01P REVfRklYRUQpIHsKLQkJZm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9N QVg7IGkrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgRFBVX0NPUkVfUEVSRl9EQVRBX0JVU19JRF9N QVg7IGkrKykgewogCQkJcGVyZi0+YndfY3RsW2ldID0ga21zLT5wZXJmLmZpeF9jb3JlX2FiX3Zv dGU7CiAJCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbaV0gPSBrbXMtPnBlcmYuZml4X2NvcmVfaWJf dm90ZTsKIAkJfQpAQCAtMTE4LDEyICsxMTgsMTIgQEAgc3RhdGljIHZvaWQgX2RwdV9jb3JlX3Bl cmZfY2FsY19jcnRjKHN0cnVjdCBkcHVfa21zICprbXMsCiAJRFBVX0RFQlVHKAogCQkiY3J0Yz0l ZCBjbGtfcmF0ZT0lbGx1IGNvcmVfaWI9JWxsdSBjb3JlX2FiPSVsbHUgbGxjY19pYj0lbGx1IGxs Y2NfYWI9JWxsdSBtZW1faWI9JWxsdSBtZW1fYWI9JWxsdVxuIiwKIAkJCWNydGMtPmJhc2UuaWQs IHBlcmYtPmNvcmVfY2xrX3JhdGUsCi0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbRFBVX1BPV0VS X0hBTkRMRV9EQlVTX0lEX01OT0NdLAotCQkJcGVyZi0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVf REJVU19JRF9NTk9DXSwKLQkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltEUFVfUE9XRVJfSEFORExF X0RCVVNfSURfTExDQ10sCi0JCQlwZXJmLT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE X0xMQ0NdLAotCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liW0RQVV9QT1dFUl9IQU5ETEVfREJVU19J RF9FQkldLAotCQkJcGVyZi0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkldKTsK KwkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lEX01OT0Nd LAorCQkJcGVyZi0+YndfY3RsW0RQVV9DT1JFX1BFUkZfREFUQV9CVVNfSURfTU5PQ10sCisJCQlw ZXJmLT5tYXhfcGVyX3BpcGVfaWJbRFBVX0NPUkVfUEVSRl9EQVRBX0JVU19JRF9MTENDXSwKKwkJ CXBlcmYtPmJ3X2N0bFtEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lEX0xMQ0NdLAorCQkJcGVyZi0+ bWF4X3Blcl9waXBlX2liW0RQVV9DT1JFX1BFUkZfREFUQV9CVVNfSURfRUJJXSwKKwkJCXBlcmYt PmJ3X2N0bFtEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lEX0VCSV0pOwogfQogCiBpbnQgZHB1X2Nv cmVfcGVyZl9jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKQEAgLTE1OCw4ICsxNTgs OCBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywK IAkvKiBvYnRhaW4gbmV3IHZhbHVlcyAqLwogCV9kcHVfY29yZV9wZXJmX2NhbGNfY3J0YyhrbXMs IGNydGMsIHN0YXRlLCAmZHB1X2NzdGF0ZS0+bmV3X3BlcmYpOwogCi0JZm9yIChpID0gRFBVX1BP V0VSX0hBTkRMRV9EQlVTX0lEX01OT0M7Ci0JCQlpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE X01BWDsgaSsrKSB7CisJZm9yIChpID0gRFBVX0NPUkVfUEVSRl9EQVRBX0JVU19JRF9NTk9DOwor CQkJaSA8IERQVV9DT1JFX1BFUkZfREFUQV9CVVNfSURfTUFYOyBpKyspIHsKIAkJYndfc3VtX29m X2ludGZzID0gZHB1X2NzdGF0ZS0+bmV3X3BlcmYuYndfY3RsW2ldOwogCQljdXJyX2NsaWVudF90 eXBlID0gZHB1X2NydGNfZ2V0X2NsaWVudF90eXBlKGNydGMpOwogCkBAIC0yOTAsNyArMjkwLDcg QEAgdm9pZCBkcHVfY29yZV9wZXJmX2NydGNfcmVsZWFzZV9idyhzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCiAJaWYgKGttcy0+cGVyZi5lbmFibGVfYndfcmVsZWFzZSkgewogCQl0cmFjZV9kcHVfY21k X3JlbGVhc2VfYncoY3J0Yy0+YmFzZS5pZCk7CiAJCURQVV9ERUJVRygiUmVsZWFzZSBCVyBjcnRj PSVkXG4iLCBjcnRjLT5iYXNlLmlkKTsKLQkJZm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5E TEVfREJVU19JRF9NQVg7IGkrKykgeworCQlmb3IgKGkgPSAwOyBpIDwgRFBVX0NPUkVfUEVSRl9E QVRBX0JVU19JRF9NQVg7IGkrKykgewogCQkJZHB1X2NydGMtPmN1cl9wZXJmLmJ3X2N0bFtpXSA9 IDA7CiAJCQlfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoa21zLCBjcnRjLCBpKTsKIAkJ fQpAQCAtMzY3LDcgKzM2Nyw3IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKIAluZXcgPSAmZHB1X2NzdGF0ZS0+bmV3X3BlcmY7CiAKIAlpZiAo X2RwdV9jb3JlX3BlcmZfY3J0Y19pc19wb3dlcl9vbihjcnRjKSAmJiAhc3RvcF9yZXEpIHsKLQkJ Zm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgeworCQlm b3IgKGkgPSAwOyBpIDwgRFBVX0NPUkVfUEVSRl9EQVRBX0JVU19JRF9NQVg7IGkrKykgewogCQkJ LyoKIAkJCSAqIGNhc2VzIGZvciBidXMgYmFuZHdpZHRoIHVwZGF0ZS4KIAkJCSAqIDEuIG5ldyBi YW5kd2lkdGggdm90ZSAtICJhYiBvciBpYiB2b3RlIiBpcyBoaWdoZXIKQEAgLTQwOSwxMyArNDA5 LDEzIEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKIAkJdXBkYXRlX2NsayA9IDE7CiAJfQogCXRyYWNlX2RwdV9wZXJmX2NydGNfdXBkYXRlKGNy dGMtPmJhc2UuaWQsCi0JCQkJbmV3LT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01O T0NdLAotCQkJCW5ldy0+YndfY3RsW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDXSwKLQkJ CQluZXctPmJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfRUJJXSwKKwkJCQluZXctPmJ3 X2N0bFtEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lEX01OT0NdLAorCQkJCW5ldy0+YndfY3RsW0RQ VV9DT1JFX1BFUkZfREFUQV9CVVNfSURfTExDQ10sCisJCQkJbmV3LT5id19jdGxbRFBVX0NPUkVf UEVSRl9EQVRBX0JVU19JRF9FQkldLAogCQkJCW5ldy0+Y29yZV9jbGtfcmF0ZSwgc3RvcF9yZXEs CiAJCQkJdXBkYXRlX2J1cywgdXBkYXRlX2Nsayk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BP V0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IERQVV9DT1JF X1BFUkZfREFUQV9CVVNfSURfTUFYOyBpKyspIHsKIAkJaWYgKHVwZGF0ZV9idXMgJiBCSVQoaSkp IHsKIAkJCXJldCA9IF9kcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1cyhrbXMsIGNydGMsIGkp OwogCQkJaWYgKHJldCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2NvcmVfcGVyZi5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nv cmVfcGVyZi5oCmluZGV4IDY4Yjg0ZDg1ZWI4Zi4uYzcwODQ1MWE5NGExIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oCkBAIC0yMiw2ICsyMiwxOSBA QAogCiAjZGVmaW5lCURQVV9QRVJGX0RFRkFVTFRfTUFYX0NPUkVfQ0xLX1JBVEUJNDEyNTAwMDAw CiAKKy8qKgorICogZW51bSBkcHVfY29yZV9wZXJmX2RhdGFfYnVzX2lkIC0gZGF0YSBidXMgaWRl bnRpZmllcgorICogQERQVV9DT1JFX1BFUkZfREFUQV9CVVNfSURfTU5PQzogRFBVL01OT0MgZGF0 YSBidXMKKyAqIEBEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lEX0xMQ0M6IE1OT0MvTExDQyBkYXRh IGJ1cworICogQERQVV9DT1JFX1BFUkZfREFUQV9CVVNfSURfRUJJOiBMTENDL0VCSSBkYXRhIGJ1 cworICovCitlbnVtIGRwdV9jb3JlX3BlcmZfZGF0YV9idXNfaWQgeworCURQVV9DT1JFX1BFUkZf REFUQV9CVVNfSURfTU5PQywKKwlEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lEX0xMQ0MsCisJRFBV X0NPUkVfUEVSRl9EQVRBX0JVU19JRF9FQkksCisJRFBVX0NPUkVfUEVSRl9EQVRBX0JVU19JRF9N QVgsCit9OworCiAvKioKICAqIHN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyAtIGRlZmluaXRp b24gb2YgcGVyZm9ybWFuY2UgcGFyYW1ldGVycwogICogQG1heF9wZXJfcGlwZV9pYjogbWF4aW11 bSBpbnN0YW50YW5lb3VzIGJhbmR3aWR0aCByZXF1ZXN0CkBAIC0yOSw4ICs0Miw4IEBACiAgKiBA Y29yZV9jbGtfcmF0ZTogY29yZSBjbG9jayByYXRlIHJlcXVlc3QKICAqLwogc3RydWN0IGRwdV9j b3JlX3BlcmZfcGFyYW1zIHsKLQl1NjQgbWF4X3Blcl9waXBlX2liW0RQVV9QT1dFUl9IQU5ETEVf REJVU19JRF9NQVhdOwotCXU2NCBid19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWF07 CisJdTY0IG1heF9wZXJfcGlwZV9pYltEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lEX01BWF07CisJ dTY0IGJ3X2N0bFtEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lEX01BWF07CiAJdTY0IGNvcmVfY2xr X3JhdGU7CiB9OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwppbmRl eCBjNTVjYjc1MWUyYjQuLmQ4ZjU4Y2FmMjc3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY3J0Yy5jCkBAIC0xMzcwLDggKzEzNzAsOCBAQCBzdGF0aWMgaW50IGRwdV9jcnRj X2RlYnVnZnNfc3RhdGVfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKnYpCiAJc2VxX3By aW50ZihzLCAiaW50Zl9tb2RlOiAlZFxuIiwgZHB1X2NydGNfZ2V0X2ludGZfbW9kZShjcnRjKSk7 CiAJc2VxX3ByaW50ZihzLCAiY29yZV9jbGtfcmF0ZTogJWxsdVxuIiwKIAkJCWRwdV9jcnRjLT5j dXJfcGVyZi5jb3JlX2Nsa19yYXRlKTsKLQlmb3IgKGkgPSBEUFVfUE9XRVJfSEFORExFX0RCVVNf SURfTU5PQzsKLQkJCWkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKKwlm b3IgKGkgPSBEUFVfQ09SRV9QRVJGX0RBVEFfQlVTX0lEX01OT0M7CisJCQlpIDwgRFBVX0NPUkVf UEVSRl9EQVRBX0JVU19JRF9NQVg7IGkrKykgewogCQlzZXFfcHJpbnRmKHMsICJid19jdGxbJWRd OiAlbGx1XG4iLCBpLAogCQkJCWRwdV9jcnRjLT5jdXJfcGVyZi5id19jdGxbaV0pOwogCQlzZXFf cHJpbnRmKHMsICJtYXhfcGVyX3BpcGVfaWJbJWRdOiAlbGx1XG4iLCBpLApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oCmluZGV4IDEyNGViYzkz Yzg3Ny4uNzUzNjYyNGM4YjIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X3Bvd2VyX2hhbmRsZS5oCkBAIC0yNywxOSArMjcsNiBAQAogI2RlZmluZSBEUFVfUE9X RVJfRVZFTlRfRElTQUJMRQlCSVQoMCkKICNkZWZpbmUgRFBVX1BPV0VSX0VWRU5UX0VOQUJMRQlC SVQoMSkKIAotLyoqCi0gKiBlbnVtIERQVV9QT1dFUl9IQU5ETEVfREJVU19JRCAtIGRhdGEgYnVz IGlkZW50aWZpZXIKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQzogRFBVL01OT0Mg ZGF0YSBidXMKLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQzogTU5PQy9MTENDIGRh dGEgYnVzCi0gKiBARFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSTogTExDQy9FQkkgZGF0YSBi dXMKLSAqLwotZW51bSBEUFVfUE9XRVJfSEFORExFX0RCVVNfSUQgewotCURQVV9QT1dFUl9IQU5E TEVfREJVU19JRF9NTk9DLAotCURQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDLAotCURQVV9Q T1dFUl9IQU5ETEVfREJVU19JRF9FQkksCi0JRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWCwK LX07Ci0KIC8qCiAgKiBzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50IC0gbG9jYWwgZXZlbnQgcmVnaXN0 cmF0aW9uIHN0cnVjdHVyZQogICogQGNsaWVudF9uYW1lOiBuYW1lIG9mIHRoZSBjbGllbnQgcmVn aXN0ZXJpbmcKLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9t aXVtIE9TCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpG cmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K