From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [CI 05/10] drm/i915: Engine busy time tracking Date: Tue, 10 Oct 2017 16:19:02 +0100 Message-ID: <20171010151907.5594-5-tvrtko.ursulin@linux.intel.com> References: <20171010151907.5594-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 610AA6E53F for ; Tue, 10 Oct 2017 15:19:19 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id u138so6413254wmu.4 for ; Tue, 10 Oct 2017 08:19:19 -0700 (PDT) In-Reply-To: <20171010151907.5594-1-tvrtko.ursulin@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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRyYWNrIHRv dGFsIHRpbWUgcmVxdWVzdHMgaGF2ZSBiZWVuIGV4ZWN1dGluZyBvbiB0aGUgaGFyZHdhcmUuCgpX ZSBhZGQgbmV3IGtlcm5lbCBBUEkgdG8gYWxsb3cgc29mdHdhcmUgdHJhY2tpbmcgb2YgdGltZSBH UFUKZW5naW5lcyBhcmUgc3BlbmRpbmcgZXhlY3V0aW5nIHJlcXVlc3RzLgoKQm90aCBwZXItZW5n aW5lIGFuZCBnbG9iYWwgQVBJIGlzIGFkZGVkIHdpdGggdGhlIGxhdHRlciBhbHNvCmJlaW5nIGV4 cG9ydGVkIGZvciB1c2UgYnkgZXh0ZXJuYWwgdXNlcnMuCgp2MjoKICogU3F1YXNoZWQgd2l0aCB0 aGUgaW50ZXJuYWwgQVBJLgogKiBEcm9wcGVkIHN0YXRpYyBrZXkuCiAqIE1hZGUgcGVyLWVuZ2lu ZS4KICogU3RvcmUgdGltZSBpbiBtb25vdG9uaWMga3RpbWUuCgp2MzogTW92ZWQgc3RhdHMgY2xl YXJpbmcgdG8gZGlzYWJsZS4KCnY0OgogKiBDb21tZW50cy4KICogRG9uJ3QgZXhwb3J0IHRoZSBB UEkganVzdCB5ZXQuCgp2NTogV2hpdGVzcGFjZSBjbGVhbnVwLgoKdjY6CiAqIFJlbmFtZSByZWYg dG8gYWN0aXZlLgogKiBEcm9wIGVuZ2luZSBhZ2dyZWdhdGUgc3RhdHMgZm9yIG5vdy4KICogQWNj b3VudCBpbml0aWFsIGJ1c3kgcGVyaW9kIGFmdGVyIGVuYWJsaW5nIHN0YXRzLgoKdjc6CiAqIFJl YmFzZS4KCnY4OgogKiBNb3ZlIGNvbnRleHQgaW4gbm90aWZpY2F0aW9uIGFmdGVyIHRoZSBub3Rp Zmllci4gKENocmlzIFdpbHNvbikKClNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0 a28udXJzdWxpbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNo cmlzLXdpbHNvbi5jby51az4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf Y3MuYyAgfCA4NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaCB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MyBmaWxlcyBjaGFuZ2VkLCAxNzggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZW5naW5lX2NzLmMKaW5kZXggNGM3ZDdhZGU5OWQ4Li41MTg4NTYyOWQzZGYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0yMzYsNiArMjM2LDggQEAgaW50ZWxf ZW5naW5lX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkvKiBOb3Ro aW5nIHRvIGRvIGhlcmUsIGV4ZWN1dGUgaW4gb3JkZXIgb2YgZGVwZW5kZW5jaWVzICovCiAJZW5n aW5lLT5zY2hlZHVsZSA9IE5VTEw7CiAKKwlzcGluX2xvY2tfaW5pdCgmZW5naW5lLT5zdGF0cy5s b2NrKTsKKwogCUFUT01JQ19JTklUX05PVElGSUVSX0hFQUQoJmVuZ2luZS0+Y29udGV4dF9zdGF0 dXNfbm90aWZpZXIpOwogCiAJZGV2X3ByaXYtPmVuZ2luZV9jbGFzc1tpbmZvLT5jbGFzc11baW5m by0+aW5zdGFuY2VdID0gZW5naW5lOwpAQCAtMTgxMSw2ICsxODEzLDg4IEBAIGludGVsX2VuZ2lu ZV9sb29rdXBfdXNlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTggY2xhc3MsIHU4 IGluc3RhbmNlKQogCXJldHVybiBpOTE1LT5lbmdpbmVfY2xhc3NbY2xhc3NdW2luc3RhbmNlXTsK IH0KIAorLyoqCisgKiBpbnRlbF9lbmFibGVfZW5naW5lX3N0YXRzKCkgLSBFbmFibGUgZW5naW5l IGJ1c3kgdHJhY2tpbmcgb24gZW5naW5lCisgKiBAZW5naW5lOiBlbmdpbmUgdG8gZW5hYmxlIHN0 YXRzIGNvbGxlY3Rpb24KKyAqCisgKiBTdGFydCBjb2xsZWN0aW5nIHRoZSBlbmdpbmUgYnVzeW5l c3MgZGF0YSBmb3IgQGVuZ2luZS4KKyAqCisgKiBSZXR1cm5zIDAgb24gc3VjY2VzcyBvciBhIG5l Z2F0aXZlIGVycm9yIGNvZGUuCisgKi8KK2ludCBpbnRlbF9lbmFibGVfZW5naW5lX3N0YXRzKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOwor CisJaWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVfZXhlY2xpc3RzKQorCQlyZXR1cm4gLUVOT0RF VjsKKworCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKKwlp ZiAoZW5naW5lLT5zdGF0cy5lbmFibGVkID09IH4wKQorCQlnb3RvIGJ1c3k7CisJaWYgKGVuZ2lu ZS0+c3RhdHMuZW5hYmxlZCsrID09IDApCisJCWVuZ2luZS0+c3RhdHMuZW5hYmxlZF9hdCA9IGt0 aW1lX2dldCgpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywg ZmxhZ3MpOworCisJcmV0dXJuIDA7CisKK2J1c3k6CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgm ZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CisKKwlyZXR1cm4gLUVCVVNZOworfQorCisvKioK KyAqIGludGVsX2Rpc2FibGVfZW5naW5lX3N0YXRzKCkgLSBEaXNhYmxlIGVuZ2luZSBidXN5IHRy YWNraW5nIG9uIGVuZ2luZQorICogQGVuZ2luZTogZW5naW5lIHRvIGRpc2FibGUgc3RhdHMgY29s bGVjdGlvbgorICoKKyAqIFN0b3BzIGNvbGxlY3RpbmcgdGhlIGVuZ2luZSBidXN5bmVzcyBkYXRh IGZvciBAZW5naW5lLgorICovCit2b2lkIGludGVsX2Rpc2FibGVfZW5naW5lX3N0YXRzKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJ aWYgKCFpOTE1X21vZHBhcmFtcy5lbmFibGVfZXhlY2xpc3RzKQorCQlyZXR1cm47CisKKwlzcGlu X2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7CisJV0FSTl9PTl9PTkNF KGVuZ2luZS0+c3RhdHMuZW5hYmxlZCA9PSAwKTsKKwlpZiAoLS1lbmdpbmUtPnN0YXRzLmVuYWJs ZWQgPT0gMCkgeworCQllbmdpbmUtPnN0YXRzLmVuYWJsZWRfYXQgPSAwOworCQllbmdpbmUtPnN0 YXRzLmFjdGl2ZSA9IDA7CisJCWVuZ2luZS0+c3RhdHMuc3RhcnQgPSAwOworCQllbmdpbmUtPnN0 YXRzLnRvdGFsID0gMDsKKwl9CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5zdGF0 cy5sb2NrLCBmbGFncyk7Cit9CisKKy8qKgorICogaW50ZWxfZW5naW5lX2dldF9idXN5X3RpbWUo KSAtIFJldHVybiBjdXJyZW50IGFjY3VtdWxhdGVkIGVuZ2luZSBidXN5bmVzcworICogQGVuZ2lu ZTogZW5naW5lIHRvIHJlcG9ydCBvbgorICoKKyAqIFJldHVybnMgYWNjdW11bGF0ZWQgdGltZSBA ZW5naW5lIHdhcyBidXN5IHNpbmNlIGVuZ2luZSBzdGF0cyB3ZXJlIGVuYWJsZWQuCisgKi8KK2t0 aW1lX3QgaW50ZWxfZW5naW5lX2dldF9idXN5X3RpbWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQoreworCWt0aW1lX3QgdG90YWw7CisJdW5zaWduZWQgbG9uZyBmbGFnczsKKworCXNw aW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKKworCXRvdGFsID0g ZW5naW5lLT5zdGF0cy50b3RhbDsKKworCS8qCisJICogSWYgdGhlIGVuZ2luZSBpcyBleGVjdXRp bmcgc29tZXRoaW5nIGF0IHRoZSBtb21lbnQKKwkgKiBhZGQgaXQgdG8gdGhlIHRvdGFsLgorCSAq LworCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSkKKwkJdG90YWwgPSBrdGltZV9hZGQodG90YWws CisJCQkJICBrdGltZV9zdWIoa3RpbWVfZ2V0KCksIGVuZ2luZS0+c3RhdHMuc3RhcnQpKTsKKwor CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMubG9jaywgZmxhZ3MpOworCisJ cmV0dXJuIHRvdGFsOworfQorCiAjaWYgSVNfRU5BQkxFRChDT05GSUdfRFJNX0k5MTVfU0VMRlRF U1QpCiAjaW5jbHVkZSAic2VsZnRlc3RzL21vY2tfZW5naW5lLmMiCiAjZW5kaWYKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHJjLmMKaW5kZXggN2ExMjQzODc1ZjkwLi4xZGE1YmQzYjlkYjUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCkBAIC00MDQsMTEgKzQwNCwxMyBAQCBzdGF0aWMgaW5saW5lIHZv aWQKIGV4ZWNsaXN0c19jb250ZXh0X3NjaGVkdWxlX2luKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcnEpCiB7CiAJZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShycSwgSU5URUxf Q09OVEVYVF9TQ0hFRFVMRV9JTik7CisJaW50ZWxfZW5naW5lX2NvbnRleHRfaW4ocnEtPmVuZ2lu ZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAogZXhlY2xpc3RzX2NvbnRleHRfc2NoZWR1bGVf b3V0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnEpCiB7CisJaW50ZWxfZW5naW5lX2Nv bnRleHRfb3V0KHJxLT5lbmdpbmUpOwogCWV4ZWNsaXN0c19jb250ZXh0X3N0YXR1c19jaGFuZ2Uo cnEsIElOVEVMX0NPTlRFWFRfU0NIRURVTEVfT1VUKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDI4OWJiMjVkZDk2NC4uODUwNjIwNjk5NDY4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC01NDYsNiArNTQ2LDM4IEBA IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCSAqIGNlcnRhaW4gYml0cyB0byBlbmNvZGUgdGhl IGNvbW1hbmQgbGVuZ3RoIGluIHRoZSBoZWFkZXIpLgogCSAqLwogCXUzMiAoKmdldF9jbWRfbGVu Z3RoX21hc2spKHUzMiBjbWRfaGVhZGVyKTsKKworCXN0cnVjdCB7CisJCS8qKgorCQkgKiBAbG9j azogTG9jayBwcm90ZWN0aW5nIHRoZSBiZWxvdyBmaWVsZHMuCisJCSAqLworCQlzcGlubG9ja190 IGxvY2s7CisJCS8qKgorCQkgKiBAZW5hYmxlZDogUmVmZXJlbmNlIGNvdW50IGluZGljYXRpbmcg bnVtYmVyIG9mIGxpc3RlbmVycy4KKwkJICovCisJCXVuc2lnbmVkIGludCBlbmFibGVkOworCQkv KioKKwkJICogQGFjdGl2ZTogTnVtYmVyIG9mIGNvbnRleHRzIGN1cnJlbnRseSBzY2hlZHVsZWQg aW4uCisJCSAqLworCQl1bnNpZ25lZCBpbnQgYWN0aXZlOworCQkvKioKKwkJICogQGVuYWJsZWRf YXQ6IFRpbWVzdGFtcCB3aGVuIGJ1c3kgc3RhdHMgd2VyZSBlbmFibGVkLgorCQkgKi8KKwkJa3Rp bWVfdCBlbmFibGVkX2F0OworCQkvKioKKwkJICogQHN0YXJ0OiBUaW1lc3RhbXAgb2YgdGhlIGxh c3QgaWRsZSB0byBhY3RpdmUgdHJhbnNpdGlvbi4KKwkJICoKKwkJICogSWRsZSBpcyBkZWZpbmVk IGFzIGFjdGl2ZSA9PSAwLCBhY3RpdmUgaXMgYWN0aXZlID4gMC4KKwkJICovCisJCWt0aW1lX3Qg c3RhcnQ7CisJCS8qKgorCQkgKiBAdG90YWw6IFRvdGFsIHRpbWUgdGhpcyBlbmdpbmUgd2FzIGJ1 c3kuCisJCSAqCisJCSAqIEFjY3VtdWxhdGVkIHRpbWUgbm90IGNvdW50aW5nIHRoZSBtb3N0IHJl Y2VudCBibG9jayBpbiBjYXNlcworCQkgKiB3aGVyZSBlbmdpbmUgaXMgY3VycmVudGx5IGJ1c3kg KGFjdGl2ZSA+IDApLgorCQkgKi8KKwkJa3RpbWVfdCB0b3RhbDsKKwl9IHN0YXRzOwogfTsKIAog c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKQEAgLTg2OSw0ICs5MDEsNjQgQEAgdm9pZCBpbnRl bF9lbmdpbmVfZHVtcChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHN0cnVjdCBkcm1f cHJpbnRlciAqcCk7CiBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICoKIGludGVsX2VuZ2luZV9sb29r dXBfdXNlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTggY2xhc3MsIHU4IGluc3Rh bmNlKTsKIAorc3RhdGljIGlubGluZSB2b2lkIGludGVsX2VuZ2luZV9jb250ZXh0X2luKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKK3sKKwl1bnNpZ25lZCBsb25nIGZsYWdzOworCisJ aWYgKFJFQURfT05DRShlbmdpbmUtPnN0YXRzLmVuYWJsZWQpID09IDApCisJCXJldHVybjsKKwor CXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnN0YXRzLmxvY2ssIGZsYWdzKTsKKworCWlmIChl bmdpbmUtPnN0YXRzLmVuYWJsZWQgPiAwKSB7CisJCWlmIChlbmdpbmUtPnN0YXRzLmFjdGl2ZSsr ID09IDApCisJCQllbmdpbmUtPnN0YXRzLnN0YXJ0ID0ga3RpbWVfZ2V0KCk7CisJCUdFTV9CVUdf T04oZW5naW5lLT5zdGF0cy5hY3RpdmUgPT0gMCk7CisJfQorCisJc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmZW5naW5lLT5zdGF0cy5sb2NrLCBmbGFncyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9p ZCBpbnRlbF9lbmdpbmVfY29udGV4dF9vdXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQoreworCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisKKwlpZiAoUkVBRF9PTkNFKGVuZ2luZS0+c3Rh dHMuZW5hYmxlZCkgPT0gMCkKKwkJcmV0dXJuOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2lu ZS0+c3RhdHMubG9jaywgZmxhZ3MpOworCisJaWYgKGVuZ2luZS0+c3RhdHMuZW5hYmxlZCA+IDAp IHsKKwkJa3RpbWVfdCBsYXN0LCBub3cgPSBrdGltZV9nZXQoKTsKKworCQlpZiAoZW5naW5lLT5z dGF0cy5hY3RpdmUgJiYgLS1lbmdpbmUtPnN0YXRzLmFjdGl2ZSA9PSAwKSB7CisJCQkvKgorCQkJ ICogRGVjcmVtZW50IHRoZSBhY3RpdmUgY29udGV4dCBjb3VudCBhbmQgaW4gY2FzZSBHUFUKKwkJ CSAqIGlzIG5vdyBpZGxlIGFkZCB1cCB0byB0aGUgcnVubmluZyB0b3RhbC4KKwkJCSAqLworCQkJ bGFzdCA9IGt0aW1lX3N1Yihub3csIGVuZ2luZS0+c3RhdHMuc3RhcnQpOworCisJCQllbmdpbmUt PnN0YXRzLnRvdGFsID0ga3RpbWVfYWRkKGVuZ2luZS0+c3RhdHMudG90YWwsCisJCQkJCQkJbGFz dCk7CisJCX0gZWxzZSBpZiAoZW5naW5lLT5zdGF0cy5hY3RpdmUgPT0gMCkgeworCQkJLyoKKwkJ CSAqIEFmdGVyIHR1cm5pbmcgb24gZW5naW5lIHN0YXRzLCBjb250ZXh0IG91dCBtaWdodCBiZQor CQkJICogdGhlIGZpcnN0IGV2ZW50IGluIHdoaWNoIGNhc2Ugd2UgYWNjb3VudCBmcm9tIHRoZQor CQkJICogdGltZSBzdGF0cyBnYXRoZXJpbmcgd2FzIHR1cm5lZCBvbi4KKwkJCSAqLworCQkJbGFz dCA9IGt0aW1lX3N1Yihub3csIGVuZ2luZS0+c3RhdHMuZW5hYmxlZF9hdCk7CisKKwkJCWVuZ2lu ZS0+c3RhdHMudG90YWwgPSBrdGltZV9hZGQoZW5naW5lLT5zdGF0cy50b3RhbCwKKwkJCQkJCQls YXN0KTsKKwkJfQorCX0KKworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+c3RhdHMu bG9jaywgZmxhZ3MpOworfQorCitpbnQgaW50ZWxfZW5hYmxlX2VuZ2luZV9zdGF0cyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwordm9pZCBpbnRlbF9kaXNhYmxlX2VuZ2luZV9zdGF0 cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOworCitrdGltZV90IGludGVsX2VuZ2lu ZV9nZXRfYnVzeV90aW1lKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7CisKICNlbmRp ZiAvKiBfSU5URUxfUklOR0JVRkZFUl9IXyAqLwotLSAKMi45LjUKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=