From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC 07/12] drm/i915: Remove I915_READ8 Date: Fri, 7 Jun 2019 14:19:13 +0100 Message-ID: References: <20190607120838.20514-1-tvrtko.ursulin@linux.intel.com> <20190607120838.20514-8-tvrtko.ursulin@linux.intel.com> <87k1dxzgj8.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 679BC89AEA for ; Fri, 7 Jun 2019 13:19:17 +0000 (UTC) In-Reply-To: <87k1dxzgj8.fsf@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAwNy8wNi8yMDE5IDE0OjExLCBKYW5pIE5pa3VsYSB3cm90ZToKPiBPbiBGcmksIDA3IEp1 biAyMDE5LCBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AbGludXguaW50ZWwuY29tPiB3 cm90ZToKPj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K Pj4KPj4gT25seSBhIGZldyBjYWxsIHNpdGVzIHJlbWFpbiB3aGljaCBoYXZlIGJlZW4gY29udmVy dGVkIHRvIHVuY29yZSBtbWlvCj4+IGFjY2Vzc29ycyBhbmQgc28gdGhlIG1hY3JvIGNhbiBiZSBy ZW1vdmVkLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgo+IAo+IEkgaGF2ZSBzb21lIHJlc2VydmF0aW9ucyBhYm91dCB0aGlzIG9u ZSBhbmQgcGF0Y2ggMTEuIEFnYWluLCBJJ20gZmluZQo+IHdpdGggbnVraW5nIEk5MTVfUkVBRDgg YW5kIEk5MTVfUkVBRF9OT1RSQUNFIChpbiBwYXRjaCAxMSkuIEkgdGhpbmsKPiB0aGV5J3JlIHNw ZWNpYWwgY2FzZXMgYW5kIGl0J3Mgb2theSBpZiB0aGV5IGdyb3cgaW50byBhIGJpdCBsb25nZXIg bGluZXMKPiBvciBtdWx0aXBsZSBsaW5lcy4KPiAKPiBUaGUgcHJvYmxlbSBpcyBjb252ZXJ0aW5n IHJlZ3VsYXIgSTkxNV9SRUFEIGFuZCBJOTE1X1dSSVRFIGluIGRpc3BsYXkKPiBjb2RlIHdoaWxl IGF0IGl0Lgo+IAo+IEkgZG9uJ3QgdGhpbmsgZW4gbWFzc2UgY29udmVyc2lvbiBvZiB0aGVtIHRv IGludGVsX3VuY29yZV9yZWFkIGFuZAo+IGludGVsX3VuY29yZV93cml0ZSBkaXJlY3RseSBpcyBn b2luZyB0byBoYXBwZW4gaW4gZGlzcGxheSBjb2RlLCBiZWNhdXNlCj4gdGhlcmUncyB0b28gbXVj aCBjb2RlIHRoYXQgZ2V0cyB0dXJuZWQgdG9vIHVnbHkgd2l0aCB0aGUgaW5jcmVhc2UgaW4KPiBm dW5jdGlvbiBuYW1lIGxlbmd0aCBhbmQgdGhlIGV4dHJhIHBhc3NlZCBwYXJhbWV0ZXIuIEkgdGhp bmsgbWFueSBvZgo+IHRob3NlIHBsYWNlcyBhcmUgcHJldHR5IHVnbHkgYXMgaXQgaXMgYWxyZWFk eS4gVGhhdCdzIG15IGZlZWxpbmcgYW55d2F5Lgo+IAo+IEkgdW5kZXJzdGFuZCB5b3VyIHJlYXNv bmluZyBpcyB0byBhdm9pZCB0aGUgbWl4ZWQgdXNlIG9mIGludGVsX3VuY29yZV8qCgpFeGFjdGx5 LgoKPiBhbmQgSTkxNV8qLiBCdXQgSSBmZWFyIHVzaW5nIGludGVsX3VuY29yZV9yZWFkIGFuZCBp bnRlbF91bmNvcmVfd3JpdGUKPiBub3cgaXMgZ29pbmcgdG8gcHJvbW90ZSB0aGVpciB1c2UgYWxs IG92ZXIgdGhlIHBsYWNlLCBhbmQgKnRoYXQqIHdpbGwKPiBsZWFkIHRvIG1peGVkIHVzZS4gV2hp Y2ggaXMgbm90IG9wdGltYWwgaWYgdGhlIG92ZXJhbGwgZmVlbGluZyBpcyB0aGF0Cj4gd2UgbmVl ZCB0byBjb21lIHVwIHdpdGggYSBzaG9ydGVyIGZ1bmN0aW9uL21hY3JvIGZvciBkaXNwbGF5IGNv ZGUgcmVhZHMKPiBhbmQgd3JpdGVzLgoKSSBhbSBmaW5lIHdpdGggdGhlIGFyZ3VtZW50IHRoYXQg eW91IG1heSBkZXNpcmUgc29tZXRoaW5nIHNob3J0ZXIgZm9yIApkaXNwbGF5LiBCdXQgSSBkb24n dCB0aGluayBjb252ZXJ0aW5nIHdob2xlIGZ1bmN0aW9ucyB3b3VsZCBjcmVhdGUgYW55IAptb3Jl IGZ1dHVyZSBtaXhlZCB1c2UgdGhhbiBjb252ZXJ0aW5nIGZ1bmN0aW9ucyBwYXJ0aWFsbHkuCgpC dHcgaGF2ZSB5b3Ugc2VlbiB0aGUgbGF0ZXN0IFJGQyBmcm9tIERhbmllbGU/IFRoYXQgd291bGQg YWxsb3cgdGhhdCB5b3UgCm9ubHkgcmVwbGFjZSB0aGUgYXNzaWduZW1udHMgYXQgdGhlIHRvcCBv ZiBmdW5jdGlvbnMgcGVyaGFwcyBsaWtlIGZyb206CgoJc3RydWN0IGludGVsX3VuY29yZSAqdW5j b3JlID0gJmRldl9wcml2LT51bmNvcmU7Cgp0bzoKCglzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNv cmUgPSAmZGV2X3ByaXYtPmRpc3BsYXlfdW5jb3JlOwoKQnV0IHN1cmUsIGlmIHlvdSBkZXNpcmUg c2hvcnRlciBhY2Nlc3NvcnMgdGhlbiBsZXRzIGZpcnN0IGhhdmUgYSAKZGVmaW5pdGl2ZSBkZWNp c2lvbiBvZiB0aGF0LgoKPiBJIHByZXN1bWUgVmlsbGUgaGFzIHNvbWV0aGluZyB0byBzYXkgYWJv dXQgdGhlIGd0IHZzLiBkaXNwbGF5IHN0dWZmIGFzCj4gd2VsbDsgZG9lcyB0aGUgd2hvbGUgc2Vy aWVzIG1ha2UgdGhhdCBoYXJkZXI/IEkgaG9wZSBub3QsIGJlY2F1c2UgSSBkbwo+IGxpa2UgdGhl IHJlc3Qgb2Ygd2hhdCdzIGJlaW5nIGRvbmUgaGVyZS4KCkl0IGRvZXNuJ3QgbWFrZSBpdCBoYXJk ZXIuIEkgY2FuIGVhc2lseSBkcm9wIHRoZSBiaXRzIHlvdSBkb24ndCBsaWtlIGlmIAp0aGF0IHdp bGwgYmUgdGhlIGZpbmFsIGRlY2lzaW9uLiBJbiBmYWN0LCBJIHNob3VsZCBwcm9iYWJseSBkbyB0 aGF0IApzdHJhaWdodCBhd2F5IGlmIHRoYXQgd291bGQgdW5ibG9jayB0aGUgcmVtYWluaW5nIHR3 byBwYXRjaGVzIGJlY2F1c2UgCnRoZW4gSSBjYW4gcHJvY2VlZCB3aXRoIG90aGVyIHJlZmFjdG9y aW5ncyBvbiB0b3AuCgpSZWdhcmRzLAoKVHZydGtvCgo+IAo+IAo+IEJSLAo+IEphbmkuCj4gCj4g Cj4gCj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggIHwgIDIgLS0K Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyB8IDQxICsrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAg fCAgNiArKy0tLQo+PiAgIDMgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMjMgZGVs ZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBpbmRleCBiMjc2MzcyMWI3 NmQuLjEzODE1Nzk1ZTE5NyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC0y ODUyLDggKzI4NTIsNiBAQCBleHRlcm4gdm9pZCBpbnRlbF9kaXNwbGF5X3ByaW50X2Vycm9yX3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9idWYgKmUsCj4+ICAgI2RlZmluZSBfX0k5 MTVfUkVHX09QKG9wX18sIGRldl9wcml2X18sIC4uLikgXAo+PiAgIAlpbnRlbF91bmNvcmVfIyNv cF9fKCYoZGV2X3ByaXZfXyktPnVuY29yZSwgX19WQV9BUkdTX18pCj4+ICAgCj4+IC0jZGVmaW5l IEk5MTVfUkVBRDgocmVnX18pCSAgX19JOTE1X1JFR19PUChyZWFkOCwgZGV2X3ByaXYsIChyZWdf XykpCj4+IC0KPj4gICAjZGVmaW5lIEk5MTVfUkVBRDE2KHJlZ19fKQkgICBfX0k5MTVfUkVHX09Q KHJlYWQxNiwgZGV2X3ByaXYsIChyZWdfXykpCj4+ICAgI2RlZmluZSBJOTE1X1dSSVRFMTYocmVn X18sIHZhbF9fKSBfX0k5MTVfUkVHX09QKHdyaXRlMTYsIGRldl9wcml2LCAocmVnX18pLCAodmFs X18pKQo+PiAgIAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+PiBpbmRleCBiYjU2NTE4NTc2 YTEuLjNmY2YyZjg0YmNjZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfY3J0LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKPj4gQEAg LTY0Myw2ICs2NDMsNyBAQCBpbnRlbF9jcnRfbG9hZF9kZXRlY3Qoc3RydWN0IGludGVsX2NydCAq Y3J0LCB1MzIgcGlwZSkKPj4gICB7Cj4+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnQt PmJhc2UuYmFzZS5kZXY7Cj4+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPj4gKwlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2X3By aXYtPnVuY29yZTsKPj4gICAJdTMyIHNhdmVfYmNscnBhdDsKPj4gICAJdTMyIHNhdmVfdnRvdGFs Owo+PiAgIAl1MzIgdnRvdGFsLCB2YWN0aXZlOwo+PiBAQCAtNjYzLDkgKzY2NCw5IEBAIGludGVs X2NydF9sb2FkX2RldGVjdChzdHJ1Y3QgaW50ZWxfY3J0ICpjcnQsIHUzMiBwaXBlKQo+PiAgIAlw aXBlY29uZl9yZWcgPSBQSVBFQ09ORihwaXBlKTsKPj4gICAJcGlwZV9kc2xfcmVnID0gUElQRURT TChwaXBlKTsKPj4gICAKPj4gLQlzYXZlX2JjbHJwYXQgPSBJOTE1X1JFQUQoYmNscnBhdF9yZWcp Owo+PiAtCXNhdmVfdnRvdGFsID0gSTkxNV9SRUFEKHZ0b3RhbF9yZWcpOwo+PiAtCXZibGFuayA9 IEk5MTVfUkVBRCh2YmxhbmtfcmVnKTsKPj4gKwlzYXZlX2JjbHJwYXQgPSBpbnRlbF91bmNvcmVf cmVhZCh1bmNvcmUsIGJjbHJwYXRfcmVnKTsKPj4gKwlzYXZlX3Z0b3RhbCA9IGludGVsX3VuY29y ZV9yZWFkKHVuY29yZSwgdnRvdGFsX3JlZyk7Cj4+ICsJdmJsYW5rID0gaW50ZWxfdW5jb3JlX3Jl YWQodW5jb3JlLCB2YmxhbmtfcmVnKTsKPj4gICAKPj4gICAJdnRvdGFsID0gKChzYXZlX3Z0b3Rh bCA+PiAxNikgJiAweGZmZikgKyAxOwo+PiAgIAl2YWN0aXZlID0gKHNhdmVfdnRvdGFsICYgMHg3 ZmYpICsgMTsKPj4gQEAgLTY3NCwyMSArNjc1LDIzIEBAIGludGVsX2NydF9sb2FkX2RldGVjdChz dHJ1Y3QgaW50ZWxfY3J0ICpjcnQsIHUzMiBwaXBlKQo+PiAgIAl2YmxhbmtfZW5kID0gKCh2Ymxh bmsgPj4gMTYpICYgMHhmZmYpICsgMTsKPj4gICAKPj4gICAJLyogU2V0IHRoZSBib3JkZXIgY29s b3IgdG8gcHVycGxlLiAqLwo+PiAtCUk5MTVfV1JJVEUoYmNscnBhdF9yZWcsIDB4NTAwMDUwKTsK Pj4gKwlpbnRlbF91bmNvcmVfd3JpdGUodW5jb3JlLCBiY2xycGF0X3JlZywgMHg1MDAwNTApOwo+ PiAgIAo+PiAgIAlpZiAoIUlTX0dFTihkZXZfcHJpdiwgMikpIHsKPj4gLQkJdTMyIHBpcGVjb25m ID0gSTkxNV9SRUFEKHBpcGVjb25mX3JlZyk7Cj4+IC0JCUk5MTVfV1JJVEUocGlwZWNvbmZfcmVn LCBwaXBlY29uZiB8IFBJUEVDT05GX0ZPUkNFX0JPUkRFUik7Cj4+IC0JCVBPU1RJTkdfUkVBRChw aXBlY29uZl9yZWcpOwo+PiArCQl1MzIgcGlwZWNvbmYgPSBpbnRlbF91bmNvcmVfcmVhZCh1bmNv cmUsIHBpcGVjb25mX3JlZyk7Cj4+ICsJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCj4+ICsJ CQkJICAgcGlwZWNvbmZfcmVnLAo+PiArCQkJCSAgIHBpcGVjb25mIHwgUElQRUNPTkZfRk9SQ0Vf Qk9SREVSKTsKPj4gKwkJaW50ZWxfdW5jb3JlX3Bvc3RpbmdfcmVhZCh1bmNvcmUsIHBpcGVjb25m X3JlZyk7Cj4+ICAgCQkvKiBXYWl0IGZvciBuZXh0IFZibGFuayB0byBzdWJzdGl0dWUKPj4gICAJ CSAqIGJvcmRlciBjb2xvciBmb3IgQ29sb3IgaW5mbyAqLwo+PiAgIAkJaW50ZWxfd2FpdF9mb3Jf dmJsYW5rKGRldl9wcml2LCBwaXBlKTsKPj4gLQkJc3QwMCA9IEk5MTVfUkVBRDgoX1ZHQV9NU1Jf V1JJVEUpOwo+PiArCQlzdDAwID0gaW50ZWxfdW5jb3JlX3JlYWQ4KHVuY29yZSwgX1ZHQV9NU1Jf V1JJVEUpOwo+PiAgIAkJc3RhdHVzID0gKChzdDAwICYgKDEgPDwgNCkpICE9IDApID8KPj4gICAJ CQljb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCA6Cj4+ICAgCQkJY29ubmVjdG9yX3N0YXR1c19k aXNjb25uZWN0ZWQ7Cj4+ICAgCj4+IC0JCUk5MTVfV1JJVEUocGlwZWNvbmZfcmVnLCBwaXBlY29u Zik7Cj4+ICsJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsIHBpcGVjb25mX3JlZywgcGlwZWNv bmYpOwo+PiAgIAl9IGVsc2Ugewo+PiAgIAkJYm9vbCByZXN0b3JlX3ZibGFuayA9IGZhbHNlOwo+ PiAgIAkJaW50IGNvdW50LCBkZXRlY3Q7Cj4+IEBAIC03MDIsOSArNzA1LDEwIEBAIGludGVsX2Ny dF9sb2FkX2RldGVjdChzdHJ1Y3QgaW50ZWxfY3J0ICpjcnQsIHUzMiBwaXBlKQo+PiAgIAkJCXUz MiB2c3luY19zdGFydCA9ICh2c3luYyAmIDB4ZmZmZikgKyAxOwo+PiAgIAo+PiAgIAkJCXZibGFu a19zdGFydCA9IHZzeW5jX3N0YXJ0Owo+PiAtCQkJSTkxNV9XUklURSh2YmxhbmtfcmVnLAo+PiAt CQkJCSAgICh2Ymxhbmtfc3RhcnQgLSAxKSB8Cj4+IC0JCQkJICAgKCh2YmxhbmtfZW5kIC0gMSkg PDwgMTYpKTsKPj4gKwkJCWludGVsX3VuY29yZV93cml0ZSh1bmNvcmUsCj4+ICsJCQkJCSAgIHZi bGFua19yZWcsCj4+ICsJCQkJCSAgICh2Ymxhbmtfc3RhcnQgLSAxKSB8Cj4+ICsJCQkJCSAgICgo dmJsYW5rX2VuZCAtIDEpIDw8IDE2KSk7Cj4+ICAgCQkJcmVzdG9yZV92YmxhbmsgPSB0cnVlOwo+ PiAgIAkJfQo+PiAgIAkJLyogc2FtcGxlIGluIHRoZSB2ZXJ0aWNhbCBib3JkZXIsIHNlbGVjdGlu ZyB0aGUgbGFyZ2VyIG9uZSAqLwo+PiBAQCAtNzE2LDkgKzcyMCwxMCBAQCBpbnRlbF9jcnRfbG9h ZF9kZXRlY3Qoc3RydWN0IGludGVsX2NydCAqY3J0LCB1MzIgcGlwZSkKPj4gICAJCS8qCj4+ICAg CQkgKiBXYWl0IGZvciB0aGUgYm9yZGVyIHRvIGJlIGRpc3BsYXllZAo+PiAgIAkJICovCj4+IC0J CXdoaWxlIChJOTE1X1JFQUQocGlwZV9kc2xfcmVnKSA+PSB2YWN0aXZlKQo+PiArCQl3aGlsZSAo aW50ZWxfdW5jb3JlX3JlYWQodW5jb3JlLCBwaXBlX2RzbF9yZWcpID49IHZhY3RpdmUpCj4+ICAg CQkJOwo+PiAtCQl3aGlsZSAoKGRzbCA9IEk5MTVfUkVBRChwaXBlX2RzbF9yZWcpKSA8PSB2c2Ft cGxlKQo+PiArCQl3aGlsZSAoKGRzbCA9IGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgcGlwZV9k c2xfcmVnKSkgPD0KPj4gKwkJICAgICAgIHZzYW1wbGUpCj4+ICAgCQkJOwo+PiAgIAkJLyoKPj4g ICAJCSAqIFdhdGNoIFNUMDAgZm9yIGFuIGVudGlyZSBzY2FubGluZQo+PiBAQCAtNzI4LDE0ICs3 MzMsMTQgQEAgaW50ZWxfY3J0X2xvYWRfZGV0ZWN0KHN0cnVjdCBpbnRlbF9jcnQgKmNydCwgdTMy IHBpcGUpCj4+ICAgCQlkbyB7Cj4+ICAgCQkJY291bnQrKzsKPj4gICAJCQkvKiBSZWFkIHRoZSBT VDAwIFZHQSBzdGF0dXMgcmVnaXN0ZXIgKi8KPj4gLQkJCXN0MDAgPSBJOTE1X1JFQUQ4KF9WR0Ff TVNSX1dSSVRFKTsKPj4gKwkJCXN0MDAgPSBpbnRlbF91bmNvcmVfcmVhZDgodW5jb3JlLCBfVkdB X01TUl9XUklURSk7Cj4+ICAgCQkJaWYgKHN0MDAgJiAoMSA8PCA0KSkKPj4gICAJCQkJZGV0ZWN0 Kys7Cj4+IC0JCX0gd2hpbGUgKChJOTE1X1JFQUQocGlwZV9kc2xfcmVnKSA9PSBkc2wpKTsKPj4g KwkJfSB3aGlsZSAoKGludGVsX3VuY29yZV9yZWFkKHVuY29yZSwgcGlwZV9kc2xfcmVnKSA9PSBk c2wpKTsKPj4gICAKPj4gICAJCS8qIHJlc3RvcmUgdmJsYW5rIGlmIG5lY2Vzc2FyeSAqLwo+PiAg IAkJaWYgKHJlc3RvcmVfdmJsYW5rKQo+PiAtCQkJSTkxNV9XUklURSh2YmxhbmtfcmVnLCB2Ymxh bmspOwo+PiArCQkJaW50ZWxfdW5jb3JlX3dyaXRlKHVuY29yZSwgdmJsYW5rX3JlZywgdmJsYW5r KTsKPj4gICAJCS8qCj4+ICAgCQkgKiBJZiBtb3JlIHRoYW4gMy80IG9mIHRoZSBzY2FubGluZSBk ZXRlY3RlZCBhIG1vbml0b3IsCj4+ICAgCQkgKiB0aGVuIGl0IGlzIGFzc3VtZWQgdG8gYmUgcHJl c2VudC4gVGhpcyB3b3JrcyBldmVuIG9uIGk4MzAsCj4+IEBAIC03NDgsNyArNzUzLDcgQEAgaW50 ZWxfY3J0X2xvYWRfZGV0ZWN0KHN0cnVjdCBpbnRlbF9jcnQgKmNydCwgdTMyIHBpcGUpCj4+ICAg CX0KPj4gICAKPj4gICAJLyogUmVzdG9yZSBwcmV2aW91cyBzZXR0aW5ncyAqLwo+PiAtCUk5MTVf V1JJVEUoYmNscnBhdF9yZWcsIHNhdmVfYmNscnBhdCk7Cj4+ICsJaW50ZWxfdW5jb3JlX3dyaXRl KHVuY29yZSwgYmNscnBhdF9yZWcsIHNhdmVfYmNscnBhdCk7Cj4+ICAgCj4+ICAgCXJldHVybiBz dGF0dXM7Cj4+ICAgfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPj4gaW5kZXggZDcyNzJkNGZm MjU4Li45M2U0MTFlNmFkMTkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+PiBAQCAt ODE2MCwxNSArODE2MCwxNSBAQCB1bnNpZ25lZCBsb25nIGk5MTVfY2hpcHNldF92YWwoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgIAlyZXR1cm4gdmFsOwo+PiAgIH0KPj4g ICAKPj4gLXVuc2lnbmVkIGxvbmcgaTkxNV9tY2hfdmFsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPj4gK3Vuc2lnbmVkIGxvbmcgaTkxNV9tY2hfdmFsKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQo+PiAgIHsKPj4gICAJdW5zaWduZWQgbG9uZyBtLCB4LCBiOwo+PiAg IAl1MzIgdHNmczsKPj4gICAKPj4gLQl0c2ZzID0gSTkxNV9SRUFEKFRTRlMpOwo+PiArCXRzZnMg PSBpbnRlbF91bmNvcmVfcmVhZCgmaTkxNS0+dW5jb3JlLCBUU0ZTKTsKPj4gICAKPj4gICAJbSA9 ICgodHNmcyAmIFRTRlNfU0xPUEVfTUFTSykgPj4gVFNGU19TTE9QRV9TSElGVCk7Cj4+IC0JeCA9 IEk5MTVfUkVBRDgoVFIxKTsKPj4gKwl4ID0gaW50ZWxfdW5jb3JlX3JlYWQ4KCZpOTE1LT51bmNv cmUsIFRSMSk7Cj4+ICAgCj4+ICAgCWIgPSB0c2ZzICYgVFNGU19JTlRSX01BU0s7Cj4gCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==