From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun Siluvery Subject: [RFC 1/2] drm/i915: Offsets for golden context BB modification Date: Fri, 10 Jul 2015 18:35:19 +0100 Message-ID: <1436549720-34166-2-git-send-email-arun.siluvery@linux.intel.com> References: <1436549720-34166-1-git-send-email-arun.siluvery@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 1D4FA6EE36 for ; Fri, 10 Jul 2015 10:35:27 -0700 (PDT) In-Reply-To: <1436549720-34166-1-git-send-email-arun.siluvery@linux.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 RnJvbTogQXJtaW4gUmVlc2UgPGFybWluLmMucmVlc2VAaW50ZWwuY29tPgoKR29sZGVuIGNvbnRl eHQgYmF0Y2ggYnVmZmVycyBub3cgY29udGFpbiBhIHNldCBvZiBvZmZzZXRzCmF0IHdoaWNoIGNv bnRlbnRzIGNhbiBvcHRpb25hbGx5IGJlIG1vZGlmaWVkLiAgVGhpcyBhbGxvd3MKdGhlIGRyaXZl ciB0byBjdXN0b21pemUgdGhlIEdDIGJhdGNoIGZvciB2YXJpb3VzIGNoaXBzZXRzCmluIGEgR0VO IGZhbWlseS4KCnYxIC0gT3JpZ2luYWxseSwgdGhlIGk5MTUgZHJpdmVyIHdhcyBvbmx5IGFsbG93 ZWQgdG8KaW5zZXJ0IE1JX0JBVENIX0JVRkZFUl9FTkQgY29tbWFuZHMgYXQgbG9jYXRpb25zCnNw ZWNpZmllZCBieSAiYWx0ZXJuYXRlX2JiZW5kX29mZnNldHMiLgoKdjIgLSBUaGUgcHJldmlvdXMg ImFsdGVybmF0ZV9iYmVuZF9vZmZzZXRzIiBmaWVsZCBoYXMKYmVlbiBnZW5lcmFsaXplZCBpbiB0 aGlzIHZlcnNpb24gdG8gYWxsb3cgdGhlIGRyaXZlciB0bwptb2RpZnkgcmFuZ2VzIG9mIERXT1JE cyBpbiB0aGUgZ29sZGVuIGNvbnRleHQgQkIuICBUaGVzZQpyYW5nZXMgYXJlIGRlc2NyaWJlZCBp biAibW9kX3ZhbHVlcyIgc3RydWN0cy4KClNpZ25lZC1vZmYtYnk6ICBBcm1pbiBSZWVzZSA8YXJt aW4uYy5yZWVzZUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFydW4gU2lsdXZlcnkgPGFydW4u c2lsdXZlcnlAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3JlbmRlcl9zdGF0ZS5jICB8IDY1ICsrKysrKysrKysrKysrKysrKysrKysrKystLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmggIHwgIDcgKysrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZS5oICAgICAgfCAgNiArKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjYuYyB8ICA0ICsrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW43LmMgfCAgNCArKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuOC5jIHwgIDQgKysKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjkuYyB8ICA0ICsrCiA3IGZpbGVzIGNoYW5n ZWQsIDg5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwppbmRleCBhMDIwMWZjLi44MTgyMzNkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwpAQCAtNDUsNiAr NDUsNDkgQEAgcmVuZGVyX3N0YXRlX2dldF9yb2RhdGEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg Y29uc3QgaW50IGdlbikKIAlyZXR1cm4gTlVMTDsKIH0KIAorLyoqCisgKiBPZmZzZXRzIGZvciBn b2xkZW4gY29udGV4dCAidmFsdWUgbW9kaWZpY2F0aW9ucyIgZGVmaW5lZCBpbgorICogaW50ZWxf cmVuZGVyc3RhdGVfZ2VueC5jIGFyZSBsb2NhdGlvbnMgaW4gdGhlIGJhdGNoIGJ1ZmZlcgorICog d2hlcmUgdGhlIGRyaXZlciBpcyBhbGxvd2VkIHRvIG1vZGlmeSBvbmUgb3IgbW9yZSBEV09SRHMK KyAqIHRvIGN1c3RvbWl6ZSBpbnN0cnVjdGlvbnMgZm9yIHRoZSBHRU4gcGxhdGZvcm0gcHJlc2Vu dC4KKyAqLworc3RhdGljIGludCBnY19tb2RpZnlfdmFsdWVzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCisJCQkgY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqcm9kYXRhLAor CQkJIHUzMiAqZCkKK3sKKwkvKiBJbml0IGluZGV4IHRvICJub3RoaW5nIHRvIG1vZGlmeSIgdmFs dWUgKi8KKwlpbnQgbW9kX2luZGV4ID0gLTE7CisJaW50IG1vZF92YWxbMV07CisJaW50IG51bV92 YWxzID0gMDsKKworCS8qIFdyaXRlIHJlcXVpcmVkIHZhbHVlKHMpIHRvIHRoZSBzcGVjaWZpZWQg b2Zmc2V0KHMpICovCisJaWYgKChtb2RfaW5kZXggPj0gMCkgJiYKKwkgICAgKG51bV92YWxzID4g MCkpIHsKKwkJaWYgKG1vZF9pbmRleCA8IHJvZGF0YS0+bW9kX3ZhbHVlX2l0ZW1zKSB7CisJCQlp bnQgbW9kX29mZnNldCwgbW9kX21heF9jbnQsIGk7CisKKwkJCW1vZF9vZmZzZXQgPQorCQkJCXJv ZGF0YS0+bW9kX3ZhbHVlc1ttb2RfaW5kZXhdLm9mZnNldDsKKwkJCW1vZF9tYXhfY250ID0KKwkJ CQlyb2RhdGEtPm1vZF92YWx1ZXNbbW9kX2luZGV4XS5tYXhfY250OworCisJCQkvKiBDaGVjayBm b3IgRFdPUkQgYWxpZ25lZCBhZGRyZXNzLCBldCBhbCAqLworCQkJaWYgKChudW1fdmFscyA+IG1v ZF9tYXhfY250KSB8fAorCQkJICAgIChtb2Rfb2Zmc2V0IDw9IDApIHx8CisJCQkgICAgKG1vZF9v ZmZzZXQgPiBQQUdFX1NJWkUgLSAobW9kX21heF9jbnQgKiBzaXplb2YodTMyKSkpIHx8CisJCQkg ICAgKChtb2Rfb2Zmc2V0ICYgKHNpemVvZih1MzIpIC0gMSkpICE9IDApKQorCQkJCXJldHVybiAt RUlOVkFMOworCisJCQlmb3IgKGkgPSAwOyBpIDwgbnVtX3ZhbHM7IGkrKykgeworCQkJCWRbKG1v ZF9vZmZzZXQvc2l6ZW9mKHUzMikpICsgaV0gPSBtb2RfdmFsW2ldOworCQkJfQorCQl9IGVsc2UK KwkJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHJl bmRlcl9zdGF0ZV9pbml0KHN0cnVjdCByZW5kZXJfc3RhdGUgKnNvLCBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogewogCWludCByZXQ7CkBAIC03Myw3ICsxMTYsNyBAQCBmcmVlX2dlbToKIAlyZXR1 cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHJlbmRlcl9zdGF0ZV9zZXR1cChzdHJ1Y3QgcmVuZGVy X3N0YXRlICpzbykKK3N0YXRpYyBpbnQgcmVuZGVyX3N0YXRlX3NldHVwKHN0cnVjdCByZW5kZXJf c3RhdGUgKnNvLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCWNvbnN0IHN0cnVjdCBpbnRl bF9yZW5kZXJzdGF0ZV9yb2RhdGEgKnJvZGF0YSA9IHNvLT5yb2RhdGE7CiAJdW5zaWduZWQgaW50 IGkgPSAwLCByZWxvY19pbmRleCA9IDA7CkBAIC04OSwxMCArMTMyLDExIEBAIHN0YXRpYyBpbnQg cmVuZGVyX3N0YXRlX3NldHVwKHN0cnVjdCByZW5kZXJfc3RhdGUgKnNvKQogCWQgPSBrbWFwKHBh Z2UpOwogCiAJd2hpbGUgKGkgPCByb2RhdGEtPmJhdGNoX2l0ZW1zKSB7Ci0JCXUzMiBzID0gcm9k YXRhLT5iYXRjaFtpXTsKKwkJdTMyIHMgPSByb2RhdGEtPmJhdGNoW2ldOwkvKiBEV09SRCBmcm9t IFIvTyBiYXRjaCAqLwogCiAJCWlmIChpICogNCAgPT0gcm9kYXRhLT5yZWxvY1tyZWxvY19pbmRl eF0pIHsKLQkJCXU2NCByID0gcyArIHNvLT5nZ3R0X29mZnNldDsKKwkJCXU2NCByID0gcyArIC8q IE9iamVjdCBvZmZzZXQgc3RvcmVkIGluIHJlbG9jIERXT1JEICovCisJCQkJc28tPmdndHRfb2Zm c2V0OyAvKiBCYXRjaCBidWZmZXIgZ2Z4IG9mZnNldCAqLwogCQkJcyA9IGxvd2VyXzMyX2JpdHMo cik7CiAJCQlpZiAoc28tPmdlbiA+PSA4KSB7CiAJCQkJaWYgKGkgKyAxID49IHJvZGF0YS0+YmF0 Y2hfaXRlbXMgfHwKQEAgLTEwOCw4ICsxNTIsMjEgQEAgc3RhdGljIGludCByZW5kZXJfc3RhdGVf c2V0dXAoc3RydWN0IHJlbmRlcl9zdGF0ZSAqc28pCiAKIAkJZFtpKytdID0gczsKIAl9CisKKwkv KiBBbnkgZ29sZGVuIGNvbnRleHQgQkIgZW50cmllcyB0byBtb2RpZnk/ICovCisJaWYgKChyb2Rh dGEtPm1vZF92YWx1ZXNbMF0ub2Zmc2V0ICE9IC0xKSAmJgorCSAgICAocm9kYXRhLT5tb2RfdmFs dWVzWzBdLm1heF9jbnQgPiAwKSkKKwkJcmV0ID0gZ2NfbW9kaWZ5X3ZhbHVlcyhkZXYsIHJvZGF0 YSwgZCk7CisJZWxzZQorCQlyZXQgPSAwOworCiAJa3VubWFwKHBhZ2UpOwogCisJaWYgKHJldCkg eworCQlEUk1fRVJST1IoImVycm9yIG1vZGlmeWluZyBnb2xkZW4gY29udGV4dCBiYXRjaCBidWZm ZXIgY29udGVudHNcbiIpOworCQlyZXR1cm4gcmV0OworCX0KKwogCXJldCA9IGk5MTVfZ2VtX29i amVjdF9zZXRfdG9fZ3R0X2RvbWFpbihzby0+b2JqLCBmYWxzZSk7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKQEAgLTE0Myw3ICsyMDAsNyBAQCBpbnQgaTkxNV9nZW1fcmVuZGVyX3N0YXRlX3By ZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAlpZiAoc28tPnJvZGF0YSA9PSBO VUxMKQogCQlyZXR1cm4gMDsKIAotCXJldCA9IHJlbmRlcl9zdGF0ZV9zZXR1cChzbyk7CisJcmV0 ID0gcmVuZGVyX3N0YXRlX3NldHVwKHNvLCByaW5nLT5kZXYpOwogCWlmIChyZXQpIHsKIAkJaTkx NV9nZW1fcmVuZGVyX3N0YXRlX2Zpbmkoc28pOwogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuaAppbmRleCA3YWE3MzcyLi4wODk4NTU5 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuaApAQCAt MjYsOCArMjYsMTUgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAKK3N0cnVjdCBtb2Rf dmFsdWVfaW5mbyB7CisJdTMyIG9mZnNldDsKKwl1MzIgbWF4X2NudDsKK307CisKIHN0cnVjdCBp bnRlbF9yZW5kZXJzdGF0ZV9yb2RhdGEgewogCWNvbnN0IHUzMiAqcmVsb2M7CisJY29uc3Qgc3Ry dWN0IG1vZF92YWx1ZV9pbmZvICptb2RfdmFsdWVzOworCWNvbnN0IHUzMiBtb2RfdmFsdWVfaXRl bXM7CiAJY29uc3QgdTMyICpiYXRjaDsKIAljb25zdCB1MzIgYmF0Y2hfaXRlbXM7CiB9OwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGUuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlLmgKaW5kZXggNWJkNjk4NS4uMWE4MDI3 OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGUuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZS5oCkBAIC0zNCw4ICsz NCwxMiBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSBnZW45 X251bGxfc3RhdGU7CiAjZGVmaW5lIFJPX1JFTkRFUlNUQVRFKF9nKQkJCQkJCVwKIAljb25zdCBz dHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhIGdlbiAjIyBfZyAjIyBfbnVsbF9zdGF0ZSA9 IHsgXAogCQkucmVsb2MgPSBnZW4gIyMgX2cgIyMgX251bGxfc3RhdGVfcmVsb2NzLAkJXAorCQku bW9kX3ZhbHVlcyA9IGdlbiAjIyBfZyAjIyBfbW9kX3ZhbHVlcywJCQlcCisJCS5tb2RfdmFsdWVf aXRlbXMgPSAoc2l6ZW9mKGdlbiAjIyBfZyAjIyBfbW9kX3ZhbHVlcykgLwlcCisJCQkJICAgIHNp emVvZihzdHJ1Y3QgbW9kX3ZhbHVlX2luZm8pKSwJXAogCQkuYmF0Y2ggPSBnZW4gIyMgX2cgIyMg X251bGxfc3RhdGVfYmF0Y2gsCQlcCi0JCS5iYXRjaF9pdGVtcyA9IHNpemVvZihnZW4gIyMgX2cg IyMgX251bGxfc3RhdGVfYmF0Y2gpLzQsIFwKKwkJLmJhdGNoX2l0ZW1zID0gKHNpemVvZihnZW4g IyMgX2cgIyMgX251bGxfc3RhdGVfYmF0Y2gpIC8gXAorCQkJCXNpemVvZih1MzIpKQkJCQlcCiAJ fQogCiAjZW5kaWYgLyogSU5URUxfUkVOREVSU1RBVEVfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuNi5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuNi5jCmluZGV4IDExYzhlN2IuLmVmMjkwNjkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjYuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW42LmMKQEAgLTM0 LDYgKzM0LDEwIEBAIHN0YXRpYyBjb25zdCB1MzIgZ2VuNl9udWxsX3N0YXRlX3JlbG9jc1tdID0g ewogCS0xLAogfTsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBtb2RfdmFsdWVfaW5mbyBnZW42X21v ZF92YWx1ZXNbXSA9IHsKKwl7LTEsIDB9LAorfTsKKwogc3RhdGljIGNvbnN0IHUzMiBnZW42X251 bGxfc3RhdGVfYmF0Y2hbXSA9IHsKIAkweDY5MDQwMDAwLAogCTB4NzkwZDAwMDEsCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW43LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW43LmMKaW5kZXggNjU1MTgwNi4u NDA4ZTkwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3Rh dGVfZ2VuNy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dl bjcuYwpAQCAtMzMsNiArMzMsMTAgQEAgc3RhdGljIGNvbnN0IHUzMiBnZW43X251bGxfc3RhdGVf cmVsb2NzW10gPSB7CiAJLTEsCiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IG1vZF92YWx1ZV9p bmZvIGdlbjdfbW9kX3ZhbHVlc1tdID0geworCXstMSwgMH0sCit9OworCiBzdGF0aWMgY29uc3Qg dTMyIGdlbjdfbnVsbF9zdGF0ZV9iYXRjaFtdID0gewogCTB4NjkwNDAwMDAsCiAJMHg2MTAxMDAw OCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dl bjguYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjguYwppbmRl eCA5NTI4OGEzLi5kNWIxMzgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yZW5kZXJzdGF0ZV9nZW44LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVu ZGVyc3RhdGVfZ2VuOC5jCkBAIC0zMyw2ICszMywxMCBAQCBzdGF0aWMgY29uc3QgdTMyIGdlbjhf bnVsbF9zdGF0ZV9yZWxvY3NbXSA9IHsKIAktMSwKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg bW9kX3ZhbHVlX2luZm8gZ2VuOF9tb2RfdmFsdWVzW10gPSB7CisJey0xLCAwfSwKK307CisKIHN0 YXRpYyBjb25zdCB1MzIgZ2VuOF9udWxsX3N0YXRlX2JhdGNoW10gPSB7CiAJMHg3YTAwMDAwNCwK IAkweDAxMDAwMDAwLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVu ZGVyc3RhdGVfZ2VuOS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVf Z2VuOS5jCmluZGV4IDE2YTdlYzIuLjdjYjQzYTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW45LmMKQEAgLTMzLDYgKzMzLDEwIEBAIHN0YXRpYyBjb25z dCB1MzIgZ2VuOV9udWxsX3N0YXRlX3JlbG9jc1tdID0gewogCS0xLAogfTsKIAorc3RhdGljIGNv bnN0IHN0cnVjdCBtb2RfdmFsdWVfaW5mbyBnZW45X21vZF92YWx1ZXNbXSA9IHsKKwl7LTEsIDB9 LAorfTsKKwogc3RhdGljIGNvbnN0IHUzMiBnZW45X251bGxfc3RhdGVfYmF0Y2hbXSA9IHsKIAkw eDdhMDAwMDA0LAogCTB4MDEwMDAwMDAsCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK