From mboxrd@z Thu Jan 1 00:00:00 1970 From: akash goel Subject: Re: [PATCH 10/12] drm/i915/bdw: Add 4 level support in insert_entries and clear_range Date: Tue, 3 Mar 2015 22:09:36 +0530 Message-ID: References: <1424454366-19006-1-git-send-email-michel.thierry@intel.com> <1424454366-19006-11-git-send-email-michel.thierry@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qg0-f44.google.com (mail-qg0-f44.google.com [209.85.192.44]) by gabe.freedesktop.org (Postfix) with ESMTP id 755D388E53 for ; Tue, 3 Mar 2015 08:39:37 -0800 (PST) Received: by mail-qg0-f44.google.com with SMTP id z107so11550111qgd.3 for ; Tue, 03 Mar 2015 08:39:36 -0800 (PST) In-Reply-To: <1424454366-19006-11-git-send-email-michel.thierry@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michel Thierry Cc: intel-gfx@lists.freedesktop.org, "Goel, Akash" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBGZWIgMjAsIDIwMTUgYXQgMTE6MTYgUE0sIE1pY2hlbCBUaGllcnJ5CjxtaWNoZWwu dGhpZXJyeUBpbnRlbC5jb20+IHdyb3RlOgo+IFdoZW4gNDhiIGlzIGVuYWJsZWQsIGdlbjhfcHBn dHRfaW5zZXJ0X2VudHJpZXMgbmVlZHMgdG8gcmVhZCB0aGUgUGFnZSBNYXAKPiBMZXZlbCA0IChQ TUw0KSwgYmVmb3JlIGl0IHNlbGVjdHMgd2hpY2ggUGFnZSBEaXJlY3RvcnkgUG9pbnRlciAoUERQ KQo+IGl0IHdpbGwgd3JpdGUgdG8uCj4KPiBTaW1pbGFybHksIGdlbjhfcHBndHRfY2xlYXJfcmFu Z2UgbmVlZHMgdG8gZ2V0IHRoZSBjb3JyZWN0IFBEUC9QRCByYW5nZS4KPgo+IEFsc28gYWRkIGEg c2NyYXRjaCBwYWdlIGZvciBQTUw0Lgo+Cj4gVGhpcyBwYXRjaCB3YXMgaW5zcGlyZWQgYnkgQmVu J3MgIkRlcGVuZCBleGNsdXNpdmVseSBvbiBtYXAgYW5kCj4gdW5tYXBfdm1hIi4KPgo+IFNpZ25l ZC1vZmYtYnk6IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+Cj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIHwgNjYgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuaCB8IDEyICsrKysrKysKPiAgMiBmaWxlcyBjaGFuZ2VkLCA2NyBpbnNlcnRpb25zKCsp LCAxMSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5k ZXggYTEzOTZjYi4uMDk1NDgyNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j Cj4gQEAgLTY3NiwyNCArNjc2LDUyIEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYXJfcHRl X3JhbmdlKHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXJfZW50cnkKPiAgICAgICAg IH0KPiAgfQo+Cj4gK3N0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYXJfcmFuZ2VfNGx2bChzdHJ1 Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdlbjhfZ3R0X3B0ZV90IHNjcmF0Y2hfcHRlLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBzdGFydCwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgbGVuZ3RoKQo+ICt7Cj4gKyAgICAgICBz dHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyX2VudHJ5ICpwZHA7Cj4gKyAgICAgICB1 aW50NjRfdCB0ZW1wbDQsIHRlbXBsMywgcG1sNGUsIHBkcGU7Cj4gKwo+ICsgICAgICAgZ2VuOF9m b3JfZWFjaF9wbWw0ZShwZHAsICZwcGd0dC0+cG1sNCwgc3RhcnQsIGxlbmd0aCwgdGVtcGw0LCBw bWw0ZSkgewo+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9lbnRy eSAqcGQ7Cj4gKyAgICAgICAgICAgICAgIHVpbnQ2NF90IHBkcF9sZW4gPSBnZW44X2NsYW1wX3Bk cChzdGFydCwgbGVuZ3RoKTsKPiArICAgICAgICAgICAgICAgdWludDY0X3QgcGRwX3N0YXJ0ID0g c3RhcnQ7Cj4gKwo+ICsgICAgICAgICAgICAgICBnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwg cGRwX3N0YXJ0LCBwZHBfbGVuLCB0ZW1wbDMsIHBkcGUpIHsKClRoZSAnZ2VuOF9wcGd0dF9jbGVh cl9wdGVfcmFuZ2UnIGZ1bmN0aW9uIGlzIGVxdWlwcGVkIHRvIHN3aXRjaCB0byBhCm5ldyBwYWdl IGRpcmVjdG9yeSBhcHByb3ByaWF0ZWx5LgpTbyBoYXZpbmcganVzdCBhbiBvdXRlciBsb29wIG9m IHBtbDQgZW50cmllcyBzaG91bGQgc3VmZmljZSwgd2l0aCB0aGUKdXNlIG9mICBnZW44X2NsYW1w X3BkcC4KVGhlIGlubmVyIGxvb3AgICdnZW44X2Zvcl9lYWNoX3BkcGUnIGlzIG5vdCByZWFsbHkg bmVlZGVkLgoKPiArICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBwZF9sZW4gPSBnZW44 X2NsYW1wX3BkKHBkcF9zdGFydCwgcGRwX2xlbik7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAg dWludDY0X3QgcGRfc3RhcnQgPSBwZHBfc3RhcnQ7Cj4gKwo+ICsgICAgICAgICAgICAgICAgICAg ICAgIGdlbjhfcHBndHRfY2xlYXJfcHRlX3JhbmdlKHBkcCwgcGRfc3RhcnQsIHBkX2xlbiwKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JhdGNo X3B0ZSwgIUhBU19MTEMocHBndHQtPmJhc2UuZGV2KSk7Cj4gKyAgICAgICAgICAgICAgIH0KPiAr ICAgICAgIH0KPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9jbGVhcl9yYW5nZShz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQ2NF90IHN0YXJ0LAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDY0X3QgbGVuZ3RoLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDY0X3Qgc3RhcnQsIHVpbnQ2NF90IGxlbmd0aCwKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgdXNlX3NjcmF0Y2gpCj4gIHsKPiAgICAgICAgIHN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpwcGd0dCA9Cj4gLSAgICAgICAgICAgICAgIGNvbnRhaW5lcl9vZih2bSwg c3RydWN0IGk5MTVfaHdfcHBndHQsIGJhc2UpOwo+IC0gICAgICAgc3RydWN0IGk5MTVfcGFnZV9k aXJlY3RvcnlfcG9pbnRlcl9lbnRyeSAqcGRwID0gJnBwZ3R0LT5wZHA7IC8qIEZJWE1FOiA0OGIg Ki8KPiAtCj4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyX29mKHZtLCBzdHJ1Y3Qg aTkxNV9od19wcGd0dCwgYmFzZSk7Cj4gICAgICAgICBnZW44X2d0dF9wdGVfdCBzY3JhdGNoX3B0 ZSA9IGdlbjhfcHRlX2VuY29kZShwcGd0dC0+YmFzZS5zY3JhdGNoLmFkZHIsCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJOTE1X0NBQ0hFX0xM QywgdXNlX3NjcmF0Y2gpOwo+Cj4gLSAgICAgICBnZW44X3BwZ3R0X2NsZWFyX3B0ZV9yYW5nZShw ZHAsIHN0YXJ0LCBsZW5ndGgsIHNjcmF0Y2hfcHRlLCAhSEFTX0xMQyh2bS0+ZGV2KSk7Cj4gKyAg ICAgICBpZiAoIVVTRVNfRlVMTF80OEJJVF9QUEdUVCh2bS0+ZGV2KSkgewo+ICsgICAgICAgICAg ICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2ludGVyX2VudHJ5ICpwZHAgPSAmcHBn dHQtPnBkcDsKPiArCj4gKyAgICAgICAgICAgICAgIGdlbjhfcHBndHRfY2xlYXJfcHRlX3Jhbmdl KHBkcCwgc3RhcnQsIGxlbmd0aCwgc2NyYXRjaF9wdGUsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICFIQVNfTExDKHBwZ3R0LT5iYXNlLmRldikpOwo+ICsgICAg ICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgICAgZ2VuOF9wcGd0dF9jbGVhcl9yYW5nZV80bHZs KHBwZ3R0LCBzY3JhdGNoX3B0ZSwgc3RhcnQsIGxlbmd0aCk7Cj4gKyAgICAgICB9Cj4gIH0KPgo+ ICBzdGF0aWMgdm9pZCBnZW44X3BwZ3R0X2luc2VydF9wdGVfZW50cmllcyhzdHJ1Y3QgaTkxNV9w YWdlX2RpcmVjdG9yeV9wb2ludGVyX2VudHJ5ICpwZHAsCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNnX3BhZ2VfaXRlciAqc2dfaXRlciwKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBzdGFydCwKPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGFnZXMsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBpOTE1X2NhY2hl X2xldmVsIGNhY2hlX2xldmVsLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGJvb2wgZmx1c2gpCj4gIHsKPiBAQCAtNzA0LDcgKzczMiw3IEBAIHN0YXRp YyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0X3B0ZV9lbnRyaWVzKHN0cnVjdCBpOTE1X3BhZ2VfZGly ZWN0b3J5X3BvaW50ZXJfZW50Cj4KPiAgICAgICAgIHB0X3ZhZGRyID0gTlVMTDsKPgo+IC0gICAg ICAgd2hpbGUgKF9fc2dfcGFnZV9pdGVyX25leHQoc2dfaXRlcikpIHsKPiArICAgICAgIHdoaWxl IChwYWdlcy0tICYmIF9fc2dfcGFnZV9pdGVyX25leHQoc2dfaXRlcikpIHsKPiAgICAgICAgICAg ICAgICAgaWYgKHB0X3ZhZGRyID09IE5VTEwpIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9lbnRyeSAqcGQgPSBwZHAtPnBhZ2VfZGlyZWN0b3J5 W3BkcGVdOwo+ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpOTE1X3BhZ2VfdGFibGVf ZW50cnkgKnB0ID0gcGQtPnBhZ2VfdGFibGVzW3BkZV07Cj4gQEAgLTc0MiwxMSArNzcwLDI2IEBA IHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5zZXJ0X2VudHJpZXMoc3RydWN0IGk5MTVfYWRkcmVz c19zcGFjZSAqdm0sCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIg dW51c2VkKQo+ICB7Cj4gICAgICAgICBzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPSBjb250 YWluZXJfb2Yodm0sIHN0cnVjdCBpOTE1X2h3X3BwZ3R0LCBiYXNlKTsKPiAtICAgICAgIHN0cnVj dCBpOTE1X3BhZ2VfZGlyZWN0b3J5X3BvaW50ZXJfZW50cnkgKnBkcCA9ICZwcGd0dC0+cGRwOyAv KiBGSVhNRTogNDhiICovCj4gKyAgICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeV9wb2lu dGVyX2VudHJ5ICpwZHA7Cj4gICAgICAgICBzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7Cj4K PiAgICAgICAgIF9fc2dfcGFnZV9pdGVyX3N0YXJ0KCZzZ19pdGVyLCBwYWdlcy0+c2dsLCBzZ19u ZW50cyhwYWdlcy0+c2dsKSwgMCk7Cj4gLSAgICAgICBnZW44X3BwZ3R0X2luc2VydF9wdGVfZW50 cmllcyhwZHAsICZzZ19pdGVyLCBzdGFydCwgY2FjaGVfbGV2ZWwsICFIQVNfTExDKHZtLT5kZXYp KTsKPiArCj4gKyAgICAgICBpZiAoIVVTRVNfRlVMTF80OEJJVF9QUEdUVCh2bS0+ZGV2KSkgewo+ ICsgICAgICAgICAgICAgICBwZHAgPSAmcHBndHQtPnBkcDsKPiArICAgICAgICAgICAgICAgZ2Vu OF9wcGd0dF9pbnNlcnRfcHRlX2VudHJpZXMocGRwLCAmc2dfaXRlciwgc3RhcnQsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZ19uZW50cyhwYWdlcy0+c2dsKSwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX2xldmVsLCAhSEFTX0xMQyh2bS0+ZGV2KSk7 Cj4gKyAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9wbWw0ICpw bWw0Owo+ICsgICAgICAgICAgICAgICB1bnNpZ25lZCBwbWw0ZSA9IGdlbjhfcG1sNGVfaW5kZXgo c3RhcnQpOwo+ICsKPiArICAgICAgICAgICAgICAgcG1sNCA9ICZwcGd0dC0+cG1sNDsKPiArICAg ICAgICAgICAgICAgcGRwID0gcG1sNC0+cGRwc1twbWw0ZV07CgpTaW5jZSBhbiBvYmplY3QgY291 bGQgZ2V0IG1hcHBlZCwgc3VjaCB0aGF0IGl0IHN0cmFkZGxlcyB0aGUgcGRwCmJvdW5kYXJ5ICYg J2dlbjhfcHBndHRfaW5zZXJ0X3B0ZV9lbnRyaWVzJwpjYW4ndCBzd2l0Y2ggb24gaXRzIG93biB0 byBhIG5ldyBwYWdlIGRpcmVjdG9yeSBwb2ludGVyIHRhYmxlIChwZHApLCBhCm1vZGlmaWNhdGlv biBpcyByZXF1aXJlZCBoZXJlIHRvIGhhdmUgYQpsb29wIG9mICdnZW44X2Zvcl9lYWNoX3BtbDRl Jywgd2l0aCB0aGUgdXNlIG9mICAnZ2VuOF9jbGFtcF9wZHAnLApzaW1pbGFyIHRvIGhvdyBnZW44 X3BwZ3R0X2NsZWFyX3JhbmdlXzRsdmwKaGFzIGJlZW4gaW1wbGVtZW50ZWQuCgo+ICsgICAgICAg ICAgICAgICBnZW44X3BwZ3R0X2luc2VydF9wdGVfZW50cmllcyhwZHAsICZzZ19pdGVyLCBzdGFy dCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNnX25lbnRzKHBhZ2VzLT5zZ2wp LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbGV2ZWwsICFIQVNfTExD KHZtLT5kZXYpKTsKPiArICAgICAgIH0KPiAgfQo+Cj4gIHN0YXRpYyB2b2lkIF9fZ2VuOF9kb19t YXBfcHQoZ2VuOF9wcGd0dF9wZGVfdCAqIGNvbnN0IHBkZSwKPiBAQCAtMTE4NSw3ICsxMjI4LDgg QEAgc3RhdGljIGludCBfX2dlbjhfYWxsb2Nfdm1hX3JhbmdlXzNsdmwoc3RydWN0IGk5MTVfYWRk cmVzc19zcGFjZSAqdm0sCj4gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNnX2l0ZXIpIHsK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVR19PTighc2dfaXRlci0+X19uZW50 cyk7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW44X3BwZ3R0X2luc2VydF9w dGVfZW50cmllcyhwZHAsIHNnX2l0ZXIsIHBkX3N0YXJ0LAo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsICFIQVNfTExD KHZtLT5kZXYpKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnZW44X3B0ZV9jb3VudChwZF9zdGFydCwgcGRfbGVuKSwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgIUhBU19MTEModm0tPmRldikp Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIH0KPiAgICAgICAgICAgICAgICAgICAgICAgICBz ZXRfYml0KHBkZSwgcGQtPnVzZWRfcGRlcyk7Cj4gICAgICAgICAgICAgICAgIH0KPiBAQCAtMTMz MCw3ICsxMzc0LDcgQEAgc3RhdGljIGludCBnZW44X3BwZ3R0X2luaXRfY29tbW9uKHN0cnVjdCBp OTE1X2h3X3BwZ3R0ICpwcGd0dCwgdWludDY0X3Qgc2l6ZSkKPiAgICAgICAgIGlmIChVU0VTX0ZV TExfNDhCSVRfUFBHVFQocHBndHQtPmJhc2UuZGV2KSkgewo+ICAgICAgICAgICAgICAgICBpbnQg cmV0ID0gcG1sNF9pbml0KHBwZ3R0KTsKPiAgICAgICAgICAgICAgICAgaWYgKHJldCkgewo+IC0g ICAgICAgICAgICAgICAgICAgICAgIHVubWFwX2FuZF9mcmVlX3B0KHBwZ3R0LT5zY3JhdGNoX3Bk LCBwcGd0dC0+YmFzZS5kZXYpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIHVubWFwX2FuZF9m cmVlX3B0KHBwZ3R0LT5zY3JhdGNoX3BtbDQsIHBwZ3R0LT5iYXNlLmRldik7Cj4gICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiAgICAgICAgICAgICAgICAgfQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiBpbmRleCAxZjRjZGIxLi42MDJkNDQ2YyAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gQEAgLTMzMiw2ICszMzIsNyBAQCBzdHJ1 Y3QgaTkxNV9od19wcGd0dCB7Cj4gICAgICAgICB1bmlvbiB7Cj4gICAgICAgICAgICAgICAgIHN0 cnVjdCBpOTE1X3BhZ2VfdGFibGVfZW50cnkgKnNjcmF0Y2hfcHQ7Cj4gICAgICAgICAgICAgICAg IHN0cnVjdCBpOTE1X3BhZ2VfdGFibGVfZW50cnkgKnNjcmF0Y2hfcGQ7IC8qIEp1c3QgbmVlZCB0 aGUgZGFkZHIgKi8KPiArICAgICAgICAgICAgICAgc3RydWN0IGk5MTVfcGFnZV90YWJsZV9lbnRy eSAqc2NyYXRjaF9wbWw0Owo+ICAgICAgICAgfTsKPgo+ICAgICAgICAgc3RydWN0IGRybV9pOTE1 X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2Owo+IEBAIC00NTIsNiArNDUzLDE3IEBAIHN0YXRpYyBp bmxpbmUgdWludDY0X3QgZ2VuOF9jbGFtcF9wZCh1aW50NjRfdCBzdGFydCwgdWludDY0X3QgbGVu Z3RoKQo+ICAgICAgICAgcmV0dXJuIG5leHRfcGQgLSBzdGFydDsKPiAgfQo+Cj4gKy8qIENsYW1w IGxlbmd0aCB0byB0aGUgbmV4dCBwYWdlX2RpcmVjdG9yeSBwb2ludGVyIGJvdW5kYXJ5ICovCj4g K3N0YXRpYyBpbmxpbmUgdWludDY0X3QgZ2VuOF9jbGFtcF9wZHAodWludDY0X3Qgc3RhcnQsIHVp bnQ2NF90IGxlbmd0aCkKPiArewo+ICsgICAgICAgdWludDY0X3QgbmV4dF9wZHAgPSBBTElHTihz dGFydCArIDEsIDFVTEwgPDwgR0VOOF9QTUw0RV9TSElGVCk7Cj4gKwo+ICsgICAgICAgaWYgKG5l eHRfcGRwID4gKHN0YXJ0ICsgbGVuZ3RoKSkKPiArICAgICAgICAgICAgICAgcmV0dXJuIGxlbmd0 aDsKPiArCj4gKyAgICAgICByZXR1cm4gbmV4dF9wZHAgLSBzdGFydDsKPiArfQo+ICsKPiAgc3Rh dGljIGlubGluZSB1aW50MzJfdCBnZW44X3B0ZV9pbmRleCh1aW50NjRfdCBhZGRyZXNzKQo+ICB7 Cj4gICAgICAgICByZXR1cm4gaTkxNV9wdGVfaW5kZXgoYWRkcmVzcywgR0VOOF9QREVfU0hJRlQp Owo+IC0tCj4gMi4xLjEKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==