From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 05/12] drm/i915: Rename i915_gem_context_reference/unreference() Date: Mon, 23 May 2016 10:17:01 +0100 Message-ID: <5742CA8D.5080401@linux.intel.com> References: <1463922152-2709-1-git-send-email-chris@chris-wilson.co.uk> <1463922152-2709-5-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 4D1076E526 for ; Mon, 23 May 2016 09:17:03 +0000 (UTC) In-Reply-To: <1463922152-2709-5-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIyLzA1LzE2IDE0OjAyLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gQXMgdGhlc2UgYXJlIHdy YXBwZXJzIGFyb3VuZCBrcmVmX2dldC9rcmVmX3B1dCgpIGl0IGlzIHByZWZlcmFibGUgdG8KPiBm b2xsb3cgdGhlIG5hbWluZyBjb252ZW50aW9uIGFuZCB1c2UgdGhlIHNhbWUgdmVyYiBnZXQvcHV0 IGluIG91cgo+IHdyYXBwZXIgbmFtZXMgZm9yIG1hbmlwdWxhdGluZyBhIHJlZmVyZW5jZSB0byB0 aGUgY29udGV4dC4KCk5vdCBzbyBzdXJlIGFib3V0IHRoaXMgb25lLiBXZSBnb3Qgb2JqZWN0cywg ZnJhbWVidWZmZXJzIGFuZCByZXF1ZXN0cyAKdXNpbmcgKHVuKXJlZmVyZW5jZSBuYW1pbmcgc28g ZG9uJ3Qgc2VlIHRoYXQgbWFraW5nIGNvbnRleHRzIGRpZmZlcmVudCAKaXMgYSBnb29kIGlkZWEu CgpSZWdhcmRzLAoKVHZydGtvCgoKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlz QGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGlu QGludGVsLmNvbT4KPiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXgu aW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg ICAgICAgIHwgIDYgKysrKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAg ICAgICAgICAgfCAgNyArKystLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmMgICAgfCAyMiArKysrKysrKysrLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAgNiArKystLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgICB8ICA0ICsrLS0KPiAgIDUgZmlsZXMgY2hh bmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiBpbmRleCBlNGUzNjE0MzM1ZWMuLjBhMzQ0MmZjZDkzZSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0zNDM1LDEyICszNDM1LDE0IEBAIGk5MTVfZ2VtX2NvbnRl eHRfbG9va3VwKHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJpdiwgdTMyIGlk KQo+ICAgCXJldHVybiBjdHg7Cj4gICB9Cj4KPiAtc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2Vt X2NvbnRleHRfcmVmZXJlbmNlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4gK3N0YXRp YyBpbmxpbmUgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKgo+ICtpOTE1X2dlbV9jb250ZXh0X2dl dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4KQo+ICAgewo+ICAgCWtyZWZfZ2V0KCZjdHgt PnJlZik7Cj4gKwlyZXR1cm4gY3R4Owo+ICAgfQo+Cj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1 X2dlbV9jb250ZXh0X3VucmVmZXJlbmNlKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4g K3N0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9jb250ZXh0X3B1dChzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4KQo+ICAgewo+ICAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmN0eC0+aTkxNS0+ ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAgCWtyZWZfcHV0KCZjdHgtPnJlZiwgaTkxNV9nZW1fY29u dGV4dF9mcmVlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA3MjhiNjY5MTE4NDAu LmQ3YWUwMzBlNWEwYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0xNDE4LDcg KzE0MTgsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X3JldGlyZShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4gICAJCQkJCSAgICAgICByZXF1ZXN0LT5lbmdp bmUpOwo+ICAgCX0KPgo+IC0JaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShyZXF1ZXN0LT5j dHgpOwo+ICsJaTkxNV9nZW1fY29udGV4dF9wdXQocmVxdWVzdC0+Y3R4KTsKPiAgIAlpOTE1X2dl bV9yZXF1ZXN0X3VucmVmZXJlbmNlKHJlcXVlc3QpOwo+ICAgfQo+Cj4gQEAgLTI3NzUsOCArMjc3 NSw3IEBAIF9faTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsCj4gICAJcmVxLT5pOTE1ID0gZGV2X3ByaXY7Cj4gICAJcmVxLT5lbmdpbmUgPSBlbmdp bmU7Cj4gICAJcmVxLT5yZXNldF9jb3VudGVyID0gcmVzZXRfY291bnRlcjsKPiAtCXJlcS0+Y3R4 ICA9IGN0eDsKPiAtCWk5MTVfZ2VtX2NvbnRleHRfcmVmZXJlbmNlKHJlcS0+Y3R4KTsKPiArCXJl cS0+Y3R4ID0gaTkxNV9nZW1fY29udGV4dF9nZXQoY3R4KTsKPgo+ICAgCS8qCj4gICAJICogUmVz ZXJ2ZSBzcGFjZSBpbiB0aGUgcmluZyBidWZmZXIgZm9yIGFsbCB0aGUgY29tbWFuZHMgcmVxdWly ZWQgdG8KPiBAQCAtMjc5OCw3ICsyNzk3LDcgQEAgX19pOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgIAlyZXR1cm4gMDsKPgo+ICAgZXJyX2N0 eDoKPiAtCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UoY3R4KTsKPiArCWk5MTVfZ2VtX2Nv bnRleHRfcHV0KGN0eCk7Cj4gICBlcnI6Cj4gICAJa21lbV9jYWNoZV9mcmVlKGRldl9wcml2LT5y ZXF1ZXN0cywgcmVxKTsKPiAgIAlyZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmMKPiBpbmRleCBhYTMyOTE3NWY3M2EuLmE0YzYzNzdlZWEzMiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtMjkwLDcgKzI5MCw3 IEBAIF9fY3JlYXRlX2h3X2NvbnRleHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAlyZXR1 cm4gY3R4Owo+Cj4gICBlcnJfb3V0Ogo+IC0JaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShj dHgpOwo+ICsJaTkxNV9nZW1fY29udGV4dF9wdXQoY3R4KTsKPiAgIAlyZXR1cm4gRVJSX1BUUihy ZXQpOwo+ICAgfQo+Cj4gQEAgLTM1MSw3ICszNTEsNyBAQCBlcnJfdW5waW46Cj4gICAJCWk5MTVf Z2VtX29iamVjdF9nZ3R0X3VucGluKGN0eC0+bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUpOwo+ICAg ZXJyX2Rlc3Ryb3k6Cj4gICAJaWRyX3JlbW92ZSgmZmlsZV9wcml2LT5jb250ZXh0X2lkciwgY3R4 LT51c2VyX2hhbmRsZSk7Cj4gLQlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNlKGN0eCk7Cj4g KwlpOTE1X2dlbV9jb250ZXh0X3B1dChjdHgpOwo+ICAgCXJldHVybiBFUlJfUFRSKHJldCk7Cj4g ICB9Cj4KPiBAQCAtMzYzLDcgKzM2Myw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2NvbnRleHRf dW5waW4oc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAgIAl9IGVsc2Ugewo+ICAgCQlp ZiAoZW5naW5lLT5pZCA9PSBSQ1MgJiYgY3R4LT5sZWdhY3lfaHdfY3R4LnJjc19zdGF0ZSkKPiAg IAkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eC0+bGVnYWN5X2h3X2N0eC5yY3Nfc3Rh dGUpOwo+IC0JCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UoY3R4KTsKPiArCQlpOTE1X2dl bV9jb250ZXh0X3B1dChjdHgpOwo+ICAgCX0KPiAgIH0KPgo+IEBAIC00NjMsNyArNDYzLDcgQEAg dm9pZCBpOTE1X2dlbV9jb250ZXh0X2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAlp ZiAoZGN0eC0+bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUpCj4gICAJCWk5MTVfZ2VtX29iamVjdF9n Z3R0X3VucGluKGRjdHgtPmxlZ2FjeV9od19jdHgucmNzX3N0YXRlKTsKPgo+IC0JaTkxNV9nZW1f Y29udGV4dF91bnJlZmVyZW5jZShkY3R4KTsKPiArCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGRjdHgp Owo+ICAgCWRldl9wcml2LT5rZXJuZWxfY29udGV4dCA9IE5VTEw7Cj4KPiAgIAlpZGFfZGVzdHJv eSgmZGV2X3ByaXYtPmNvbnRleHRfaHdfaWRhKTsKPiBAQCAtNDczLDcgKzQ3Myw3IEBAIHN0YXRp YyBpbnQgY29udGV4dF9pZHJfY2xlYW51cChpbnQgaWQsIHZvaWQgKnAsIHZvaWQgKmRhdGEpCj4g ICB7Cj4gICAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCA9IHA7Cj4KPiAtCWk5MTVfZ2Vt X2NvbnRleHRfdW5yZWZlcmVuY2UoY3R4KTsKPiArCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGN0eCk7 Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4KPiBAQCAtNzg1LDEwICs3ODUsOSBAQCBzdGF0aWMgaW50 IGRvX3Jjc19zd2l0Y2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4KPiAgIAkJ Lyogb2JqIGlzIGtlcHQgYWxpdmUgdW50aWwgdGhlIG5leHQgcmVxdWVzdCBieSBpdHMgYWN0aXZl IHJlZiAqLwo+ICAgCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihmcm9tLT5sZWdhY3lfaHdf Y3R4LnJjc19zdGF0ZSk7Cj4gLQkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShmcm9tKTsK PiArCQlpOTE1X2dlbV9jb250ZXh0X3B1dChmcm9tKTsKPiAgIAl9Cj4gLQlpOTE1X2dlbV9jb250 ZXh0X3JlZmVyZW5jZSh0byk7Cj4gLQllbmdpbmUtPmxhc3RfY29udGV4dCA9IHRvOwo+ICsJZW5n aW5lLT5sYXN0X2NvbnRleHQgPSBpOTE1X2dlbV9jb250ZXh0X2dldCh0byk7Cj4KPiAgIAkvKiBH RU44IGRvZXMgKm5vdCogcmVxdWlyZSBhbiBleHBsaWNpdCByZWxvYWQgaWYgdGhlIFBEUHMgaGF2 ZSBiZWVuCj4gICAJICogc2V0dXAsIGFuZCB3ZSBkbyBub3Qgd2lzaCB0byBtb3ZlIHRoZW0uCj4g QEAgLTg3MywxMCArODcyLDkgQEAgaW50IGk5MTVfc3dpdGNoX2NvbnRleHQoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICAJCX0KPgo+ICAgCQlpZiAodG8gIT0gZW5naW5lLT5s YXN0X2NvbnRleHQpIHsKPiAtCQkJaTkxNV9nZW1fY29udGV4dF9yZWZlcmVuY2UodG8pOwo+ICAg CQkJaWYgKGVuZ2luZS0+bGFzdF9jb250ZXh0KQo+IC0JCQkJaTkxNV9nZW1fY29udGV4dF91bnJl ZmVyZW5jZShlbmdpbmUtPmxhc3RfY29udGV4dCk7Cj4gLQkJCWVuZ2luZS0+bGFzdF9jb250ZXh0 ID0gdG87Cj4gKwkJCQlpOTE1X2dlbV9jb250ZXh0X3B1dChlbmdpbmUtPmxhc3RfY29udGV4dCk7 Cj4gKwkJCWVuZ2luZS0+bGFzdF9jb250ZXh0ID0gaTkxNV9nZW1fY29udGV4dF9nZXQodG8pOwo+ ICAgCQl9Cj4KPiAgIAkJcmV0dXJuIDA7Cj4gQEAgLTk0NCw3ICs5NDIsNyBAQCBpbnQgaTkxNV9n ZW1fY29udGV4dF9kZXN0cm95X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCj4gICAJfQo+Cj4gICAJaWRyX3JlbW92ZSgmY3R4LT5maWxlX3ByaXYtPmNvbnRleHRfaWRy LCBjdHgtPnVzZXJfaGFuZGxlKTsKPiAtCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UoY3R4 KTsKPiArCWk5MTVfZ2VtX2NvbnRleHRfcHV0KGN0eCk7Cj4gICAJbXV0ZXhfdW5sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7Cj4KPiAgIAlEUk1fREVCVUdfRFJJVkVSKCJIVyBjb250ZXh0ICVkIGRl c3Ryb3llZFxuIiwgYXJncy0+Y3R4X2lkKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggODRkOTkwMzMxYWJkLi4xNDYyOGNlOTEyNzMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gQEAgLTE0OTIs NyArMTQ5Miw3IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPiAgIAkJZ290byBwcmVfbXV0ZXhfZXJyOwo+ICAgCX0KPgo+IC0JaTkx NV9nZW1fY29udGV4dF9yZWZlcmVuY2UoY3R4KTsKPiArCWk5MTVfZ2VtX2NvbnRleHRfZ2V0KGN0 eCk7Cj4KPiAgIAlpZiAoY3R4LT5wcGd0dCkKPiAgIAkJdm0gPSAmY3R4LT5wcGd0dC0+YmFzZTsK PiBAQCAtMTUwMyw3ICsxNTAzLDcgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Cj4gICAJZWIgPSBlYl9jcmVhdGUoYXJncyk7Cj4g ICAJaWYgKGViID09IE5VTEwpIHsKPiAtCQlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNlKGN0 eCk7Cj4gKwkJaTkxNV9nZW1fY29udGV4dF9wdXQoY3R4KTsKPiAgIAkJbXV0ZXhfdW5sb2NrKCZk ZXYtPnN0cnVjdF9tdXRleCk7Cj4gICAJCXJldCA9IC1FTk9NRU07Cj4gICAJCWdvdG8gcHJlX211 dGV4X2VycjsKPiBAQCAtMTY0Nyw3ICsxNjQ3LDcgQEAgZXJyX2JhdGNoX3VucGluOgo+Cj4gICBl cnI6Cj4gICAJLyogdGhlIHJlcXVlc3Qgb3ducyB0aGUgcmVmIG5vdyAqLwo+IC0JaTkxNV9nZW1f Y29udGV4dF91bnJlZmVyZW5jZShjdHgpOwo+ICsJaTkxNV9nZW1fY29udGV4dF9wdXQoY3R4KTsK PiAgIAllYl9kZXN0cm95KGViKTsKPgo+ICAgCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggNDI2ZGM5MGFjZWVkLi45YTU1 NDc4ZTIzYWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC05NjYsNyArOTY2 LDYgQEAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqY3R4LAo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8gdW5waW5fbWFwOwo+Cj4gLQlpOTE1 X2dlbV9jb250ZXh0X3JlZmVyZW5jZShjdHgpOwo+ICAgCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRd LmxyY192bWEgPSBpOTE1X2dlbV9vYmpfdG9fZ2d0dChjdHhfb2JqKTsKPiAgIAlpbnRlbF9scl9j b250ZXh0X2Rlc2NyaXB0b3JfdXBkYXRlKGN0eCwgZW5naW5lKTsKPiAgIAlscmNfcmVnX3N0YXRl W0NUWF9SSU5HX0JVRkZFUl9TVEFSVCsxXSA9IHJpbmdidWYtPnZtYS0+bm9kZS5zdGFydDsKPiBA QCAtOTc3LDYgKzk3Niw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9waW4oc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAgIAlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Np b24pCj4gICAJCUk5MTVfV1JJVEUoR0VOOF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7Cj4K PiArCWk5MTVfZ2VtX2NvbnRleHRfZ2V0KGN0eCk7Cj4gICAJcmV0dXJuIDA7Cj4KPiAgIHVucGlu X21hcDoKPiBAQCAtMTAwOSw3ICsxMDA5LDcgQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGlu KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gICAJY3R4LT5lbmdpbmVbZW5naW5lLT5p ZF0ubHJjX2Rlc2MgPSAwOwo+ICAgCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmxyY19yZWdfc3Rh dGUgPSBOVUxMOwo+Cj4gLQlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNlKGN0eCk7Cj4gKwlp OTE1X2dlbV9jb250ZXh0X3B1dChjdHgpOwo+ICAgfQo+Cj4gICBzdGF0aWMgaW50IGludGVsX2xv Z2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQo+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=