From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH 2/2] drm/i915: Rework order of operations in {__intel, logical}_ring_prepare() Date: Fri, 12 Jun 2015 18:09:08 +0100 Message-ID: <1434128948-9221-3-git-send-email-david.s.gordon@intel.com> References: <1433789441-8295-1-git-send-email-david.s.gordon@intel.com> <1434128948-9221-1-git-send-email-david.s.gordon@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 EC5046EB21 for ; Fri, 12 Jun 2015 10:09:51 -0700 (PDT) In-Reply-To: <1434128948-9221-1-git-send-email-david.s.gordon@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 VGhlIG9yaWdpbmFsIGlkZWEgb2YgcHJlYWxsb2NhdGluZyB0aGUgT0xSIHdhcyBpbXBsZW1lbnRl ZCBpbgoKPiA5ZDc3MzA5MSBkcm0vaTkxNTogUHJlYWxsb2NhdGUgbmV4dCBzZXFubyBiZWZvcmUg dG91Y2hpbmcgdGhlIHJpbmcKCmFuZCB0aGUgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyB3YXMgdG8g YWxsb2NhdGUgdGhlIE9MUiwgdGhlbiB3cmFwIHBhc3QKdGhlIGVuZCBvZiB0aGUgcmluZyBpZiBu ZWNlc3NhcnksIHRoZW4gd2FpdCBmb3Igc3BhY2UgaWYgbmVjZXNzYXJ5LgpCdXQgc3Vic2VxdWVu dGx5IGludGVsX3JpbmdfYmVnaW4oKSB3YXMgcmVmYWN0b3JlZCwgaW4KCj4gMzA0ZDY5NSBkcm0v aTkxNTogRmx1c2ggb3V0c3RhbmRpbmcgcmVxdWVzdHMgYmVmb3JlIGFsbG9jYXRpbmcgbmV3IHNl cW5vCgp0byBlbnN1cmUgdGhhdCBwZW5kaW5nIHdvcmsgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGZs dXNoZWQgdXNlZCB0aGUgb2xkCmFuZCBub3QgdGhlIG5ld2x5LWFsbG9jYXRlZCByZXF1ZXN0LiBU aGlzIGNoYW5nZWQgdGhlIHNlcXVlbmNlIHRvIHdyYXAKYW5kL29yIHdhaXQsIHRoZW4gYWxsb2Nh dGUsIGFsdGhvdWdoIHRoZSBjb21tZW50IHN0aWxsIHNhaWQKCS8qIFByZWFsbG9jYXRlIHRoZSBv bHIgYmVmb3JlIHRvdWNoaW5nIHRoZSByaW5nICovCndoaWNoIHdhcyBubyBsb25nZXIgdHJ1ZSBh cyBpbnRlbF93cmFwX3JpbmdfYnVmZmVyKCkgdG91Y2hlcyB0aGUgcmluZy4KCkhvd2V2ZXIsIHdp dGggdGhlIGludHJvZHVjdGlvbiBvZiBkeW5hbWljIHBpbm5pbmcsIGluCgo+IDdiYTcxN2MgZHJt L2k5MTUvYmR3OiBQaW4gdGhlIHJpbmdidWZmZXIgYmFja2luZyBvYmplY3QgdG8gR0dUVCBvbi1k ZW1hbmQKCmNhbWUgdGhlIHBvc3NpYmlsaXR5IHRoYXQgdGhlIHJpbmdidWZmZXIgbWlnaHQgbm90 IGJlIHBpbm5lZCB0byB0aGUgR1RUCm9yIG1hcHBlZCBpbnRvIENQVSBhZGRyZXNzIHNwYWNlIHdo ZW4gaW50ZWxfcmluZ19iZWdpbigpIGlzIGNhbGxlZC4gSXQKZ2V0cyBwaW5uZWQgd2hlbiB0aGUg cmVxdWVzdCBpcyBhbGxvY2F0ZWQsIHNvIGl0J3Mgbm93IGltcG9ydGFudCB0aGF0CnRoaXMgY29t ZXMgKmJlZm9yZSogYW55dGhpbmcgdGhhdCBjYW4gd3JpdGUgaW50byB0aGUgcmluZ2J1ZmZlciwg aW4gdGhpcwpjYXNlIGludGVsX3dyYXBfcmluZ19idWZmZXIoKSwgYXMgdGhpcyB3aWxsIGZhdWx0 IGlmIChhKSB0aGUgcmluZ2J1ZmZlcgpoYXBwZW5zIG5vdCB0byBiZSBtYXBwZWQsIGFuZCAoYikg dGFpbCBoYXBwZW5zIHRvIGJlIHN1ZmZpY2llbnRseSBjbG9zZQp0byB0aGUgZW5kIG9mIHRoZSBy aW5nIHRvIHRyaWdnZXIgd3JhcHBpbmcuCgpTbyB0aGUgY29ycmVjdCBvcmRlciBpcyBuZWl0aGVy IHRoZSBvcmlnaW5hbCBhbGxvY2F0ZS13YWl0LXBhZC13YWl0LCBub3IKdGhlIHN1YnNlcXVlbnQg d2FpdC1wYWQtd2FpdC1hbGxvY2F0ZSwgYnV0IHdhaXQtYWxsb2NhdGUtcGFkLCBhdm9pZGluZwpi b3RoIHRoZSBwcm9ibGVtcyBkZXNjcmliZWQgaW4gdGhlIHR3byBjb21taXRzIG1lbnRpb25lZCBh Ym92ZS4KCkFzIGEgYm9udXMsIHdlIGVsaW1pbmF0ZSB0aGUgc3BlY2lhbCBjYXNlIHdoZXJlIGEg c2luZ2xlIHJpbmdfYmVnaW4oKQptaWdodCBlbmQgdXAgd2FpdGluZyB0d2ljZSAob25jZSB0byBi ZSBhYmxlIHRvIHdyYXAsIGFuZCB0aGVuIGFnYWluCmlmIHRoYXQgc3RpbGwgaGFkbid0IGFjdHVh bGx5IGZyZWVkIGVub3VnaCBzcGFjZSBmb3IgdGhlIHJlcXVlc3QpLiBXZQpqdXN0IHByZWNhbGN1 bGF0ZSB0aGUgdG90YWwgYW1vdW50IG9mIHNwYWNlIHdlJ2xsIG5lZWQgKmluY2x1ZGluZyogYW55 CmZvciBwYWRkaW5nIHRoZSBlbmQgb2YgdGhlIHJpbmcgYW5kIHdhaXQgZm9yIHRoYXQgbXVjaCBp biBvbmUgZ28gOikKCkluIHRoZSB0aW1lIHNpbmNlIHRoaXMgY29kZSB3YXMgd3JpdHRlbiwgaXQg aGFzIGFsbCBiZWVuIGNsb25lZCBmcm9tCnRoZSBvcmlnaW5hbCByaW5nYnVmZmVyIG1vZGVsIHRv IGJlY29tZSB0aGUgZXhlY2J1ZmZlciBjb2RlLCBpbgoKPiA4MmUxMDRjIGRybS9pOTE1L2Jkdzog TmV3IGxvZ2ljYWwgcmluZyBzdWJtaXNzaW9uIG1lY2hhbmlzbQoKU28gbm93IHdlIGhhdmUgdG8g Zml4IGl0IGluIGJvdGggcGF0aHMgLi4uCgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2 aWQucy5nb3Jkb25AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jICAgICAgICB8ICAgNjQgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgICA2MyArKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgNjMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCA0NTRlODM2Li4zZWY1ZmI2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtNzQwLDM5ICs3NDAsMjIgQEAgaW50ZWxf bG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZiwKIAlleGVjbGlzdHNfY29udGV4dF9xdWV1ZShyaW5nLCBjdHgsIHJpbmdidWYtPnRh aWwsIHJlcXVlc3QpOwogfQogCi1zdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193cmFwX2J1ZmZlcihz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiwKLQkJCQkgICAgc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCkKLXsKLQl1aW50MzJfdCBfX2lvbWVtICp2aXJ0OwotCWludCByZW0gPSByaW5n YnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsKLQotCWlmIChyaW5nYnVmLT5zcGFjZSA8IHJlbSkg ewotCQlpbnQgcmV0ID0gbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmdidWYsIGN0eCwg cmVtKTsKLQotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0KLQl2aXJ0ID0gcmluZ2J1 Zi0+dmlydHVhbF9zdGFydCArIHJpbmdidWYtPnRhaWw7Ci0JcmVtIC89IDQ7Ci0Jd2hpbGUgKHJl bS0tKQotCQlpb3dyaXRlMzIoTUlfTk9PUCwgdmlydCsrKTsKLQotCXJpbmdidWYtPnRhaWwgPSAw OwotCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmdidWYpOwotCi0JcmV0dXJuIDA7Ci19Ci0K IHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYsCiAJCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwgaW50IGJ5dGVzKQogewor CWludCBmaWxsID0gMDsKIAlpbnQgcmV0OwogCisJLyoKKwkgKiBJZiB0aGUgcmVxdWVzdCB3aWxs IG5vdCBmaXQgYmV0d2VlbiAndGFpbCcgYW5kIHRoZSBlZmZlY3RpdmUKKwkgKiBzaXplIG9mIHRo ZSByaW5nYnVmZmVyLCB0aGVuIHdlIG5lZWQgdG8gcGFkIHRoZSBlbmQgb2YgdGhlCisJICogcmlu Z2J1ZmZlciB3aXRoIE5PT1BzLCB0aGVuIHN0YXJ0IHRoZSByZXF1ZXN0IGF0IHRoZSB0b3Agb2YK KwkgKiB0aGUgcmluZy4gVGhpcyBpbmNyZWFzZXMgdGhlIHRvdGFsIHNpemUgdGhhdCB3ZSBuZWVk IHRvIGNoZWNrCisJICogZm9yIGJ5IGhvd2V2ZXIgbXVjaCBpcyBsZWZ0IGF0IHRoZSBlbmQgb2Yg dGhlIHJpbmcgLi4uCisJICovCiAJaWYgKHVubGlrZWx5KHJpbmdidWYtPnRhaWwgKyBieXRlcyA+ IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewotCQlyZXQgPSBsb2dpY2FsX3Jpbmdfd3JhcF9i dWZmZXIocmluZ2J1ZiwgY3R4KTsKLQkJaWYgKHVubGlrZWx5KHJldCkpCi0JCQlyZXR1cm4gcmV0 OworCQlmaWxsID0gcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7CisJCWJ5dGVzICs9IGZp bGw7CiAJfQogCiAJaWYgKHVubGlrZWx5KHJpbmdidWYtPnNwYWNlIDwgYnl0ZXMpKSB7CkBAIC03 ODEsNiArNzY0LDI4IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3ByZXBhcmUoc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYsCiAJCQlyZXR1cm4gcmV0OwogCX0KIAorCS8qIEVuc3Vy ZSB3ZSBoYXZlIGEgcmVxdWVzdCBiZWZvcmUgdG91Y2hpbmcgdGhlIHJpbmcgKi8KKwlpZiAoIXJp bmdidWYtPnJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdCkgeworCQlyZXQgPSBpOTE1X2dl bV9yZXF1ZXN0X2FsbG9jKHJpbmdidWYtPnJpbmcsIGN0eCk7CisJCWlmIChyZXQpCisJCQlyZXR1 cm4gcmV0OworCX0KKworCWlmICh1bmxpa2VseShmaWxsKSkgeworCQl1aW50MzJfdCBfX2lvbWVt ICp2aXJ0ID0gcmluZ2J1Zi0+dmlydHVhbF9zdGFydCArIHJpbmdidWYtPnRhaWw7CisKKwkJLyog dGFpbCBzaG91bGQgbm90IGhhdmUgbW92ZWQgKi8KKwkJaWYgKFdBUk5fT04oZmlsbCAhPSByaW5n YnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbCkpCisJCQlmaWxsID0gcmluZ2J1Zi0+c2l6ZSAtIHJp bmdidWYtPnRhaWw7CisKKwkJZG8KKwkJCWlvd3JpdGUzMihNSV9OT09QLCB2aXJ0KyspOworCQl3 aGlsZSAoKGZpbGwgLT0gNCkgPiAwKTsKKworCQlyaW5nYnVmLT50YWlsID0gMDsKKwkJaW50ZWxf cmluZ191cGRhdGVfc3BhY2UocmluZ2J1Zik7CisJfQorCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTgx NCwxMSArODE5LDYgQEAgc3RhdGljIGludCBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4oc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAot CS8qIFByZWFsbG9jYXRlIHRoZSBvbHIgYmVmb3JlIHRvdWNoaW5nIHRoZSByaW5nICovCi0JcmV0 ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCBjdHgpOwotCWlmIChyZXQpCi0JCXJldHVy biByZXQ7Ci0KIAlyaW5nYnVmLT5zcGFjZSAtPSBudW1fZHdvcmRzICogc2l6ZW9mKHVpbnQzMl90 KTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpp bmRleCBhMzQwNmIyLi40YzBiYzI5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jCkBAIC0yMTM3LDI5ICsyMTM3LDYgQEAgc3RhdGljIGludCByaW5nX3dhaXRfZm9yX3Nw YWNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBuKQogCXJldHVybiAwOwogfQog Ci1zdGF0aWMgaW50IGludGVsX3dyYXBfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZykKLXsKLQl1aW50MzJfdCBfX2lvbWVtICp2aXJ0OwotCXN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmID0gcmluZy0+YnVmZmVyOwotCWludCByZW0gPSByaW5nYnVmLT5zaXpl IC0gcmluZ2J1Zi0+dGFpbDsKLQotCWlmIChyaW5nYnVmLT5zcGFjZSA8IHJlbSkgewotCQlpbnQg cmV0ID0gcmluZ193YWl0X2Zvcl9zcGFjZShyaW5nLCByZW0pOwotCQlpZiAocmV0KQotCQkJcmV0 dXJuIHJldDsKLQl9Ci0KLQl2aXJ0ID0gcmluZ2J1Zi0+dmlydHVhbF9zdGFydCArIHJpbmdidWYt PnRhaWw7Ci0JcmVtIC89IDQ7Ci0Jd2hpbGUgKHJlbS0tKQotCQlpb3dyaXRlMzIoTUlfTk9PUCwg dmlydCsrKTsKLQotCXJpbmdidWYtPnRhaWwgPSAwOwotCWludGVsX3JpbmdfdXBkYXRlX3NwYWNl KHJpbmdidWYpOwotCi0JcmV0dXJuIDA7Ci19Ci0KIGludCBpbnRlbF9yaW5nX2lkbGUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcTsKQEAgLTIxOTcsMTIgKzIxNzQsMTkgQEAgc3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJl cGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJCWludCBieXRlcykKIHsKIAlz dHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJpbmctPmJ1ZmZlcjsKKwlpbnQgZmls bCA9IDA7CiAJaW50IHJldDsKIAorCS8qCisJICogSWYgdGhlIHJlcXVlc3Qgd2lsbCBub3QgZml0 IGJldHdlZW4gJ3RhaWwnIGFuZCB0aGUgZWZmZWN0aXZlCisJICogc2l6ZSBvZiB0aGUgcmluZ2J1 ZmZlciwgdGhlbiB3ZSBuZWVkIHRvIHBhZCB0aGUgZW5kIG9mIHRoZQorCSAqIHJpbmdidWZmZXIg d2l0aCBOT09QcywgdGhlbiBzdGFydCB0aGUgcmVxdWVzdCBhdCB0aGUgdG9wIG9mCisJICogdGhl IHJpbmcuIFRoaXMgaW5jcmVhc2VzIHRoZSB0b3RhbCBzaXplIHRoYXQgd2UgbmVlZCB0byBjaGVj aworCSAqIGZvciBieSBob3dldmVyIG11Y2ggaXMgbGVmdCBhdCB0aGUgZW5kIG9mIHRoZSByaW5n IC4uLgorCSAqLwogCWlmICh1bmxpa2VseShyaW5nYnVmLT50YWlsICsgYnl0ZXMgPiByaW5nYnVm LT5lZmZlY3RpdmVfc2l6ZSkpIHsKLQkJcmV0ID0gaW50ZWxfd3JhcF9yaW5nX2J1ZmZlcihyaW5n KTsKLQkJaWYgKHVubGlrZWx5KHJldCkpCi0JCQlyZXR1cm4gcmV0OworCQlmaWxsID0gcmluZ2J1 Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7CisJCWJ5dGVzICs9IGZpbGw7CiAJfQogCiAJaWYgKHVu bGlrZWx5KHJpbmdidWYtPnNwYWNlIDwgYnl0ZXMpKSB7CkBAIC0yMjExLDYgKzIxOTUsMjggQEAg c3RhdGljIGludCBfX2ludGVsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAogCQkJcmV0dXJuIHJldDsKIAl9CiAKKwkvKiBFbnN1cmUgd2UgaGF2ZSBhIHJlcXVlc3Qg YmVmb3JlIHRvdWNoaW5nIHRoZSByaW5nICovCisJaWYgKCFyaW5nYnVmLT5yaW5nLT5vdXRzdGFu ZGluZ19sYXp5X3JlcXVlc3QpIHsKKwkJcmV0ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5n YnVmLT5yaW5nLCBjdHgpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlpZiAo dW5saWtlbHkoZmlsbCkpIHsKKwkJdWludDMyX3QgX19pb21lbSAqdmlydCA9IHJpbmdidWYtPnZp cnR1YWxfc3RhcnQgKyByaW5nYnVmLT50YWlsOworCisJCS8qIHRhaWwgc2hvdWxkIG5vdCBoYXZl IG1vdmVkICovCisJCWlmIChXQVJOX09OKGZpbGwgIT0gcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYt PnRhaWwpKQorCQkJZmlsbCA9IHJpbmdidWYtPnNpemUgLSByaW5nYnVmLT50YWlsOworCisJCWRv CisJCQlpb3dyaXRlMzIoTUlfTk9PUCwgdmlydCsrKTsKKwkJd2hpbGUgKChmaWxsIC09IDQpID4g MCk7CisKKwkJcmluZ2J1Zi0+dGFpbCA9IDA7CisJCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJp bmdidWYpOworCX0KKwogCXJldHVybiAwOwogfQogCkBAIC0yMjI5LDExICsyMjM1LDYgQEAgaW50 IGludGVsX3JpbmdfYmVnaW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAlpZiAocmV0 KQogCQlyZXR1cm4gcmV0OwogCi0JLyogUHJlYWxsb2NhdGUgdGhlIG9sciBiZWZvcmUgdG91Y2hp bmcgdGhlIHJpbmcgKi8KLQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHJpbmcsIHJpbmct PmRlZmF1bHRfY29udGV4dCk7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCXJpbmctPmJ1 ZmZlci0+c3BhY2UgLT0gbnVtX2R3b3JkcyAqIHNpemVvZih1aW50MzJfdCk7CiAJcmV0dXJuIDA7 CiB9Ci0tIAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=