From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: [PATCH] i915: Add module option to support VGA arbiter on HD devices Date: Fri, 09 May 2014 14:20:41 -0600 Message-ID: <20140509201655.2849.97478.stgit@bling.home> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by gabe.freedesktop.org (Postfix) with ESMTP id 8668B6E0E9 for ; Fri, 9 May 2014 13:20:45 -0700 (PDT) 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 Cc: Daniel Vetter , linux-kernel@vger.kernel.org, Dave Airlie List-Id: intel-gfx@lists.freedesktop.org Q29tbWl0IDgxYjVjN2JjIGZvdW5kIHRoYXQgdGhlIGN1cnJlbnQgVkdBIGFyYml0ZXIgc3VwcG9y dCBpbiBpOTE1Cm9ubHkgd29ya3MgZm9yIGFuY2llbnQgR01DSC1iYXNlZCBJR0QgZGV2aWNlcyBh bmQgYXR0ZW1wdGVkIHRvIHVwZGF0ZQpzdXBwb3J0IGZvciBuZXdlciBIRCBkZXZpY2VzLiAgVW5m b3J0dW5hdGVseSBuZXdlciBkZXZpY2VzIGNhbm5vdApjb21wbGV0ZWx5IG9wdC1vdXQgb2YgVkdB IGFyYml0cmF0aW9uIGxpa2UgdGhlIG9sZCBkZXZpY2VzIGNvdWxkLgpUaGUgVkdBIEkvTyBzcGFj ZSBjYW5ub3QgYmUgZGlzYWJsZWQgaW50ZXJuYWxseS4gIFRoZSBvbmx5IHdheSB0bwpyb3V0ZSBW R0EgSS9PIGVsc2V3aGVyZSBpcyBieSBkaXNhYmxpbmcgSS9PIGF0IHRoZSBkZXZpY2UgUENJIGNv bW1hbmQKcmVnaXN0ZXIuICBUaGlzIG1lYW5zIHRoYXQgd2l0aCBjb21taXQgODFiNWM3YmMgYW5k IG11bHRpcGxlIFZHQQphZGFwdGVycywgdGhlIFZHQSBhcmJpdGVyIHdpbGwgcmVwb3J0IHRoYXQg bXVsdGlwbGUgVkdBIGRldmljZXMgYXJlCnBhcnRpY2lwYXRpbmcgaW4gYXJiaXRyYXRpb24sIFhv cmcgd2lsbCBub3RpY2UgdGhpcyBhbmQgZGlzYWJsZSBEUkkuClRoZXJlZm9yZSwgODFiNWM3YmMg d2FzIHJldmVydGVkIGJlY2F1c2UgRFJJIGlzIG1vcmUgaW1wb3J0YW50IHRoYW4KYmVpbmcgY29y cmVjdC4KClRoZXJlIGlzIGhvd2V2ZXIgYW4gYWN0dWFsIG5lZWQgZm9yIGk5MTUgdG8gY29ycmVj dGx5IHBhcnRpY2lwYXRlIGluClZHQSBhcmJpdHJhdGlvbjsgVkdBIGRldmljZSBhc3NpZ25tZW50 LiAgSWYgd2Ugd2FudCB0byB1c2UgVkZJTyB0bwphc3NpZ24gYSBWR0EgZGV2aWNlIHRvIGEgdmly dHVhbCBtYWNoaW5lLCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8KYWNjZXNzIHRoZSBWR0EgcmVzb3Vy Y2VzIG9mIHRoYXQgZGV2aWNlLiAgQnkgYWRkaW5nIGFuIGk5MTUgbW9kdWxlCm9wdGlvbiB3ZSBj YW4gYWxsb3cgaTkxNSB0byBjb250aW51ZSB3aXRoIGl0cyBjaGFyYWRlIGJ5IGRlZmF1bHQsIGJ1 dAphbHNvIGFsbG93IGFuIGVhc3kgcGF0aCBmb3IgdXNlcnMgd2hvIHJlcXVpcmUgd29ya2luZyBW R0EgYXJiaXRyYXRpb24uCkhvcGVmdWxseSBYb3JnIGNhbiBzb21lZGF5IGJlIHRhdWdodCB0byBi ZWhhdmUgYmV0dGVyIHdpdGggbXVsdGlwbGUKVkdBIGRldmljZXMuCgpUaGlzIGFsc28gcm9sbHMg aW4gcmV2ZXJ0ZWQgY29tbWl0IDZlMWI0ZmRhLCB3aGljaCBjb3JyZWN0ZWQgYW4Kb3JkZXJpbmcg aXNzdWUgd2l0aCA4MWI1YzdiYyBieSBkZWxheWluZyB0aGUgZGlzYWJsaW5nIG9mIFZHQSBtZW1v cnkKdW50aWwgYWZ0ZXIgdmdhY29uLT5mYmNvbiBoYW5kb2ZmLgoKU2lnbmVkLW9mZi1ieTogQWxl eCBXaWxsaWFtc29uIDxhbGV4LndpbGxpYW1zb25AcmVkaGF0LmNvbT4KQ2M6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNv bT4KLS0tCgpUaGlzIHNob3VsZCBiZSBhIG5vcCB3aXRoIHRoZSBkZWZhdWx0IG1vZHVsZSBzZXR0 aW5nLCBzbyBpZiB0aGVyZSdzCmFueSBvcHBvcnR1bml0eSB0byBnZXQgdGhpcyBpbnRvIHYzLjE1 LCBpdCB3b3VsZCBiZSBhcHByZWNpYXRlZC4KCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rt YS5jICAgICAgfCAgIDIyICsrKysrKysrKysrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggICAgICB8ICAgIDEgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9w YXJhbXMuYyAgIHwgICAgNSArKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIHwgICAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgIDIgKysKIGluY2x1ZGUvbGludXgvdmdhYXJiLmgg ICAgICAgICAgICAgICB8ICAgIDcgKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA2NCBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCmluZGV4IDk2MTc3 ZWUuLmMwZDBjMDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwpAQCAtMTMwNiwxMCArMTMwNiwy MCBAQCBzdGF0aWMgaW50IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAkgKiBJZiB3ZSBhcmUgYSBzZWNvbmRhcnkgZGlzcGxheSBjb250cm9sbGVyICghUENJ X0RJU1BMQVlfQ0xBU1NfVkdBKSwKIAkgKiB0aGVuIHdlIGRvIG5vdCB0YWtlIHBhcnQgaW4gVkdB IGFyYml0cmF0aW9uIGFuZCB0aGUKIAkgKiB2Z2FfY2xpZW50X3JlZ2lzdGVyKCkgZmFpbHMgd2l0 aCAtRU5PREVWLgorCSAqCisJICogTkIuICBUaGUgc2V0X2RlY29kZSBjYWxsYmFjayBoZXJlIGFj dHVhbGx5IG9ubHkgd29ya3Mgb24gR01DSAorCSAqIGRldmljZXMsIG9uIG5ld2VyIEhEIGRldmlj ZXMgd2UgY2FuIG9ubHkgZGlzYWJsZSBWR0EgTU1JTyBzcGFjZS4KKwkgKiBEaXNhYmxpbmcgVkdB IEkvTyBzcGFjZSByZXF1aXJlcyBkaXNhYmxpbmcgSS9PIGluIHRoZSBQQ0kgY29tbWFuZAorCSAq IHJlZ2lzdGVyLiAgTm9uZXRoZWxlc3MsIHdlIGxpa2UgdG8gcHJldGVuZCB0aGF0IHdlIHBhcnRp Y2lwYXRlIGluCisJICogVkdBIGFyYml0cmF0aW9uIGFuZCBjYW4gZHluYW1pY2FsbHkgZGlzYWJs ZSBWR0EgSS9PIHNwYWNlIGJlY2F1c2UKKwkgKiB0aGlzIG1ha2VzIFggaGFwcHksIGV2ZW4gdGhv dWdoIGl0J3MgYSBjb21wbGV0ZSBsaWUuCiAJICovCi0JcmV0ID0gdmdhX2NsaWVudF9yZWdpc3Rl cihkZXYtPnBkZXYsIGRldiwgTlVMTCwgaTkxNV92Z2Ffc2V0X2RlY29kZSk7Ci0JaWYgKHJldCAm JiByZXQgIT0gLUVOT0RFVikKLQkJZ290byBvdXQ7CisJaWYgKCFpOTE1LmVuYWJsZV9oZF92Z2Fh cmIgfHwgIUhBU19QQ0hfU1BMSVQoZGV2KSkgeworCQlyZXQgPSB2Z2FfY2xpZW50X3JlZ2lzdGVy KGRldi0+cGRldiwgZGV2LCBOVUxMLAorCQkJCQkgIGk5MTVfdmdhX3NldF9kZWNvZGUpOworCQlp ZiAocmV0ICYmIHJldCAhPSAtRU5PREVWKQorCQkJZ290byBvdXQ7CisJfQogCiAJaW50ZWxfcmVn aXN0ZXJfZHNtX2hhbmRsZXIoKTsKIApAQCAtMTM2OSw2ICsxMzc5LDEyIEBAIHN0YXRpYyBpbnQg aTkxNV9sb2FkX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqLwogCWlu dGVsX2ZiZGV2X2luaXRpYWxfY29uZmlnKGRldik7CiAKKwkvKgorCSAqIE11c3QgZG8gdGhpcyBh ZnRlciBmYmNvbiBpbml0IHNvIHRoYXQKKwkgKiB2Z2Fjb25fc2F2ZV9zY3JlZW4oKSB3b3JrcyBk dXJpbmcgdGhlIGhhbmRvdmVyLgorCSAqLworCWk5MTVfZGlzYWJsZV92Z2FfbWVtKGRldik7CisK IAkvKiBPbmx5IGVuYWJsZSBob3RwbHVnIGhhbmRsaW5nIG9uY2UgdGhlIGZiZGV2IGlzIGZ1bGx5 IHNldCB1cC4gKi8KIAlkZXZfcHJpdi0+ZW5hYmxlX2hvdHBsdWdfcHJvY2Vzc2luZyA9IHRydWU7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGVjODJmNmIuLmYzOTA4ZjYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaApAQCAtMjA4MCw2ICsyMDgwLDcgQEAgc3RydWN0IGk5MTVfcGFyYW1z IHsKIAlib29sIHByZWZhdWx0X2Rpc2FibGU7CiAJYm9vbCByZXNldDsKIAlib29sIGRpc2FibGVf ZGlzcGxheTsKKwlib29sIGVuYWJsZV9oZF92Z2FhcmI7CiB9OwogZXh0ZXJuIHN0cnVjdCBpOTE1 X3BhcmFtcyBpOTE1IF9fcmVhZF9tb3N0bHk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGFyYW1zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5j CmluZGV4IGQxZDc5ODAuLjY0ZDk2YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGFyYW1zLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYwpA QCAtNDcsNiArNDcsNyBAQCBzdHJ1Y3QgaTkxNV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5ID0g ewogCS5pbnZlcnRfYnJpZ2h0bmVzcyA9IDAsCiAJLmRpc2FibGVfZGlzcGxheSA9IDAsCiAJLmVu YWJsZV9jbWRfcGFyc2VyID0gMCwKKwkuZW5hYmxlX2hkX3ZnYWFyYiA9IGZhbHNlLAogfTsKIAog bW9kdWxlX3BhcmFtX25hbWVkKG1vZGVzZXQsIGk5MTUubW9kZXNldCwgaW50LCAwNDAwKTsKQEAg LTE1MiwzICsxNTMsNyBAQCBNT0RVTEVfUEFSTV9ERVNDKGRpc2FibGVfZGlzcGxheSwgIkRpc2Fi bGUgZGlzcGxheSAoZGVmYXVsdDogZmFsc2UpIik7CiBtb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxl X2NtZF9wYXJzZXIsIGk5MTUuZW5hYmxlX2NtZF9wYXJzZXIsIGludCwgMDYwMCk7CiBNT0RVTEVf UEFSTV9ERVNDKGVuYWJsZV9jbWRfcGFyc2VyLAogCQkgIkVuYWJsZSBjb21tYW5kIHBhcnNpbmcg KDE9ZW5hYmxlZCwgMD1kaXNhYmxlZCBbZGVmYXVsdF0pIik7CisKK21vZHVsZV9wYXJhbV9uYW1l ZChlbmFibGVfaGRfdmdhYXJiLCBpOTE1LmVuYWJsZV9oZF92Z2FhcmIsIGJvb2wsIDA0NDQpOwor TU9EVUxFX1BBUk1fREVTQyhlbmFibGVfaGRfdmdhYXJiLAorCSJFbmFibGUgc3VwcG9ydCBmb3Ig VkdBIGFyYml0cmF0aW9uIG9uIEludGVsIEhEIElHRC4gKGRlZmF1bHQ6IGZhbHNlKSIpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDY5YmNjNDIuLjJjZDM1YmEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTExMjg0LDYgKzExMjg0LDMzIEBAIHN0 YXRpYyB2b2lkIGk5MTVfZGlzYWJsZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlQT1NU SU5HX1JFQUQodmdhX3JlZyk7CiB9CiAKK3N0YXRpYyB2b2lkIGk5MTVfZW5hYmxlX3ZnYV9tZW0o c3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwkvKiBFbmFibGUgVkdBIG1lbW9yeSBvbiBJbnRl bCBIRCAqLworCWlmIChpOTE1LmVuYWJsZV9oZF92Z2FhcmIgJiYgSEFTX1BDSF9TUExJVChkZXYp KSB7CisJCXZnYV9nZXRfdW5pbnRlcnJ1cHRpYmxlKGRldi0+cGRldiwgVkdBX1JTUkNfTEVHQUNZ X0lPKTsKKwkJb3V0YihpbmIoVkdBX01TUl9SRUFEKSB8IFZHQV9NU1JfTUVNX0VOLCBWR0FfTVNS X1dSSVRFKTsKKwkJdmdhX3NldF9sZWdhY3lfZGVjb2RpbmcoZGV2LT5wZGV2LCBWR0FfUlNSQ19M RUdBQ1lfSU8gfAorCQkJCQkJICAgVkdBX1JTUkNfTEVHQUNZX01FTSB8CisJCQkJCQkgICBWR0Ff UlNSQ19OT1JNQUxfSU8gfAorCQkJCQkJICAgVkdBX1JTUkNfTk9STUFMX01FTSk7CisJCXZnYV9w dXQoZGV2LT5wZGV2LCBWR0FfUlNSQ19MRUdBQ1lfSU8pOworCX0KK30KKwordm9pZCBpOTE1X2Rp c2FibGVfdmdhX21lbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCS8qIERpc2FibGUgVkdB IG1lbW9yeSBvbiBJbnRlbCBIRCAqLworCWlmIChpOTE1LmVuYWJsZV9oZF92Z2FhcmIgJiYgSEFT X1BDSF9TUExJVChkZXYpKSB7CisJCXZnYV9nZXRfdW5pbnRlcnJ1cHRpYmxlKGRldi0+cGRldiwg VkdBX1JTUkNfTEVHQUNZX0lPKTsKKwkJb3V0YihpbmIoVkdBX01TUl9SRUFEKSAmIH5WR0FfTVNS X01FTV9FTiwgVkdBX01TUl9XUklURSk7CisJCXZnYV9zZXRfbGVnYWN5X2RlY29kaW5nKGRldi0+ cGRldiwgVkdBX1JTUkNfTEVHQUNZX0lPIHwKKwkJCQkJCSAgIFZHQV9SU1JDX05PUk1BTF9JTyB8 CisJCQkJCQkgICBWR0FfUlNSQ19OT1JNQUxfTUVNKTsKKwkJdmdhX3B1dChkZXYtPnBkZXYsIFZH QV9SU1JDX0xFR0FDWV9JTyk7CisJfQorfQorCiB2b2lkIGludGVsX21vZGVzZXRfaW5pdF9odyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCWludGVsX3ByZXBhcmVfZGRpKGRldik7CkBAIC0x MTU5NCw2ICsxMTYyMSw3IEBAIHZvaWQgaTkxNV9yZWRpc2FibGVfdmdhX3Bvd2VyX29uKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKCEoSTkxNV9SRUFEKHZnYV9yZWcpICYgVkdBX0RJU1Bf RElTQUJMRSkpIHsKIAkJRFJNX0RFQlVHX0tNUygiU29tZXRoaW5nIGVuYWJsZWQgVkdBIHBsYW5l LCBkaXNhYmxpbmcgaXRcbiIpOwogCQlpOTE1X2Rpc2FibGVfdmdhKGRldik7CisJCWk5MTVfZGlz YWJsZV92Z2FfbWVtKGRldik7CiAJfQogfQogCkBAIC0xMTg0OCw2ICsxMTg3Niw4IEBAIHZvaWQg aW50ZWxfbW9kZXNldF9jbGVhbnVwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlpbnRlbF9k aXNhYmxlX2ZiYyhkZXYpOwogCisJaTkxNV9lbmFibGVfdmdhX21lbShkZXYpOworCiAJaW50ZWxf ZGlzYWJsZV9ndF9wb3dlcnNhdmUoZGV2KTsKIAogCWlyb25sYWtlX3RlYXJkb3duX3JjNihkZXYp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCAzMjhiMWE3Li5mYmU1ZDM2MCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTkzNCw0ICs5MzQsNiBAQCBpbnQgaW50ZWxfc3ByaXRl X2dldF9jb2xvcmtleShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogLyogaW50 ZWxfdHYuYyAqLwogdm9pZCBpbnRlbF90dl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwog CitleHRlcm4gdm9pZCBpOTE1X2Rpc2FibGVfdmdhX21lbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KTsKKwogI2VuZGlmIC8qIF9fSU5URUxfRFJWX0hfXyAqLwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC92Z2FhcmIuaCBiL2luY2x1ZGUvbGludXgvdmdhYXJiLmgKaW5kZXggMmMwMmYzYS4uODBj ZjgxNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC92Z2FhcmIuaAorKysgYi9pbmNsdWRlL2xp bnV4L3ZnYWFyYi5oCkBAIC02NSw4ICs2NSwxNSBAQCBzdHJ1Y3QgcGNpX2RldjsKICAqICAgICBv dXQgb2YgdGhlIGFyYml0cmF0aW9uIHByb2Nlc3MgKGFuZCBjYW4gYmUgc2FmZSB0byB0YWtlCiAg KiAgICAgaW50ZXJydXB0cyBhdCBhbnkgdGltZS4KICAqLworI2lmIGRlZmluZWQoQ09ORklHX1ZH QV9BUkIpCiBleHRlcm4gdm9pZCB2Z2Ffc2V0X2xlZ2FjeV9kZWNvZGluZyhzdHJ1Y3QgcGNpX2Rl diAqcGRldiwKIAkJCQkgICAgdW5zaWduZWQgaW50IGRlY29kZXMpOworI2Vsc2UKK3N0YXRpYyBp bmxpbmUgdm9pZCB2Z2Ffc2V0X2xlZ2FjeV9kZWNvZGluZyhzdHJ1Y3QgcGNpX2RldiAqcGRldiwK KwkJCQkJICAgdW5zaWduZWQgaW50IGRlY29kZXMpCit7Cit9CisjZW5kaWYKIAogLyoqCiAgKiAg ICAgdmdhX2dldCAgICAgICAgIC0gYWNxdWlyZSAmIGxvY2tzIFZHQSByZXNvdXJjZXMKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==