From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E4AA6E2F2 for ; Tue, 16 Mar 2021 10:30:43 +0000 (UTC) Received: by mail-wr1-x42e.google.com with SMTP id t9so7139541wrn.11 for ; Tue, 16 Mar 2021 03:30:42 -0700 (PDT) Date: Tue, 16 Mar 2021 11:30:39 +0100 From: Daniel Vetter Message-ID: References: <20210315165842.64488-1-zbigniew.kempczynski@intel.com> <20210315165842.64488-5-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210315165842.64488-5-zbigniew.kempczynski@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v23 04/37] lib/igt_map: Introduce igt_map List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Cc: igt-dev@lists.freedesktop.org List-ID: T24gTW9uLCBNYXIgMTUsIDIwMjEgYXQgMDU6NTg6MDlQTSArMDEwMCwgWmJpZ25pZXcgS2VtcGN6 ecWEc2tpIHdyb3RlOgo+IEZyb206IERvbWluaWsgR3J6ZWdvcnplayA8ZG9taW5pay5ncnplZ29y emVrQGludGVsLmNvbT4KPiAKPiBJbXBsZW1lbnRhdGlvbiBvZiBnZW5lcmljLCBub24tdGhyZWFk IHNhZmUsIGR5bmFtaWMgc2l6ZSBoYXNoIG1hcC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBEb21pbmlr IEdyemVnb3J6ZWsgPGRvbWluaWsuZ3J6ZWdvcnpla0BpbnRlbC5jb20+Cj4gQ2M6IFpiaWduaWV3 IEtlbXBjennFhHNraSA8emJpZ25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPgo+IENjOiBDaHJp cyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgLi4uL2lndC1ncHUt dG9vbHMvaWd0LWdwdS10b29scy1kb2NzLnhtbCAgICAgIHwgICAxICsKClNpbWlsYXIgaGVyZSwg dGhlcmUncyBhIHNvbGlkIGludHJvLCB0aGF0J3MgZ29vZC4gQnV0IHdlIHRyeSB0byBhdCBsZWFz dApkb2MgYWxsIHRoZSBub24tc3RhdGljIGZ1bmN0aW9ucyB0aGF0IHRlc3RzIGNhbiB1c2UuCi1E YW5pZWwKCj4gIGxpYi9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMiArCj4gIGxpYi9pZ3RfbWFwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDEzMSArKysrKysrKysrKysrKysrKysKPiAgbGliL2lndF9tYXAuaCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTA0ICsrKysrKysrKysrKysrCj4gIGxpYi9tZXNvbi5idWlsZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4gIDUgZmlsZXMgY2hhbmdlZCwg MjM5IGluc2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pZ3RfbWFwLmMKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pZ3RfbWFwLmgKPiAKPiBkaWZmIC0tZ2l0IGEvZG9jcy9y ZWZlcmVuY2UvaWd0LWdwdS10b29scy9pZ3QtZ3B1LXRvb2xzLWRvY3MueG1sIGIvZG9jcy9yZWZl cmVuY2UvaWd0LWdwdS10b29scy9pZ3QtZ3B1LXRvb2xzLWRvY3MueG1sCj4gaW5kZXggOWM5YWE4 ZjFkLi5iZjVhYzU0MjggMTAwNjQ0Cj4gLS0tIGEvZG9jcy9yZWZlcmVuY2UvaWd0LWdwdS10b29s cy9pZ3QtZ3B1LXRvb2xzLWRvY3MueG1sCj4gKysrIGIvZG9jcy9yZWZlcmVuY2UvaWd0LWdwdS10 b29scy9pZ3QtZ3B1LXRvb2xzLWRvY3MueG1sCj4gQEAgLTMzLDYgKzMzLDcgQEAKPiAgICAgIDx4 aTppbmNsdWRlIGhyZWY9InhtbC9pZ3Rfa21vZC54bWwiLz4KPiAgICAgIDx4aTppbmNsdWRlIGhy ZWY9InhtbC9pZ3Rfa21zLnhtbCIvPgo+ICAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2lndF9s aXN0LnhtbCIvPgo+ICsgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2lndF9tYXAueG1sIi8+Cj4g ICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvaWd0X3BtLnhtbCIvPgo+ICAgICAgPHhpOmluY2x1 ZGUgaHJlZj0ieG1sL2lndF9wcmltZXMueG1sIi8+Cj4gICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4 bWwvaWd0X3JhbmQueG1sIi8+Cj4gZGlmZiAtLWdpdCBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzIGIv bGliL01ha2VmaWxlLnNvdXJjZXMKPiBpbmRleCA0ZjYzODlmOGEuLjg0ZmQ3YjQ5YyAxMDA2NDQK PiAtLS0gYS9saWIvTWFrZWZpbGUuc291cmNlcwo+ICsrKyBiL2xpYi9NYWtlZmlsZS5zb3VyY2Vz Cj4gQEAgLTQ4LDYgKzQ4LDggQEAgbGliX3NvdXJjZV9saXN0ID0JIAlcCj4gIAlpZ3RfaW5mb2Zy YW1lLmgJCVwKPiAgCWlndF9saXN0LmMJCVwKPiAgCWlndF9saXN0LmgJCVwKPiArCWlndF9tYXAu YwkJXAo+ICsJaWd0X21hcC5oCQlcCj4gIAlpZ3RfbWF0cml4LmMJCVwKPiAgCWlndF9tYXRyaXgu aAkJXAo+ICAJaWd0X3BhcmFtcy5jCQlcCj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfbWFwLmMgYi9s aWIvaWd0X21hcC5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAuLjEy OTA5ZWQ1YQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9saWIvaWd0X21hcC5jCj4gQEAgLTAsMCAr MSwxMzEgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ICsvKgo+ICsgKiBD b3B5cmlnaHQgwqkgMjAyMSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpbmNsdWRl IDxzeXMvaW9jdGwuaD4KPiArI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICsjaW5jbHVkZSAiaWd0X21h cC5oIgo+ICsjaW5jbHVkZSAiaWd0LmgiCj4gKyNpbmNsdWRlICJpZ3RfeDg2LmgiCj4gKwo+ICsj ZGVmaW5lIE1JTl9DQVBBQ0lUWV9CSVRTIDIKPiArCj4gK3N0YXRpYyBib29sIGlndF9tYXBfZmls bGVkKHN0cnVjdCBpZ3RfbWFwICptYXApCj4gK3sKPiArCXJldHVybiBJR1RfTUFQX0NBUEFDSVRZ KG1hcCkgKiA0IC8gNSA8PSBtYXAtPnNpemU7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGlndF9t YXBfZXh0ZW5kKHN0cnVjdCBpZ3RfbWFwICptYXApCj4gK3sKPiArCXN0cnVjdCBpZ3RfaGxpc3Rf aGVhZCAqbmV3X2hlYWRzOwo+ICsJc3RydWN0IGlndF9tYXBfZW50cnkgKnBvczsKPiArCXN0cnVj dCBpZ3RfaGxpc3Rfbm9kZSAqdG1wOwo+ICsJdWludDMyX3QgbmV3X2JpdHMgPSBtYXAtPmNhcGFj aXR5X2JpdHMgKyAxOwo+ICsJaW50IGk7Cj4gKwo+ICsJbmV3X2hlYWRzID0gY2FsbG9jKDFVTEwg PDwgbmV3X2JpdHMsCj4gKwkJCSAgIHNpemVvZihzdHJ1Y3QgaWd0X2hsaXN0X2hlYWQpKTsKPiAr CWlndF9hc3NlcnQobmV3X2hlYWRzKTsKPiArCj4gKwlpZ3RfbWFwX2Zvcl9lYWNoX3NhZmUobWFw LCBpLCB0bXAsIHBvcykKPiArCQlpZ3RfaGxpc3RfYWRkX2hlYWQoJnBvcy0+bGluaywgJm5ld19o ZWFkc1ttYXAtPmhhc2hfZm4ocG9zLT5rZXksIG5ld19iaXRzKV0pOwo+ICsKPiArCWZyZWUobWFw LT5oZWFkcyk7Cj4gKwltYXAtPmNhcGFjaXR5X2JpdHMrKzsKPiArCj4gKwltYXAtPmhlYWRzID0g bmV3X2hlYWRzOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBlcXVhbF80Ynl0ZXMoY29uc3Qgdm9p ZCAqa2V5MSwgY29uc3Qgdm9pZCAqa2V5MikKPiArewo+ICsJY29uc3QgdWludDMyX3QgKmsxID0g a2V5MSwgKmsyID0ga2V5MjsKPiArCXJldHVybiAqazEgPT0gKmsyOwo+ICt9Cj4gKwo+ICsvKiAg Ml42MyArIDJeNjEgLSAyXjU3ICsgMl41NCAtIDJeNTEgLSAyXjE4ICsgMSAqLwo+ICsjZGVmaW5l IEdPTERFTl9SQVRJT19QUklNRV82NCAweDllMzdmZmZmZmZmYzAwMDFVTEwKPiArCj4gK3N0YXRp YyBpbmxpbmUgdWludDY0X3QgaGFzaF82NF80Ynl0ZXMoY29uc3Qgdm9pZCAqdmFsLCB1bnNpZ25l ZCBpbnQgYml0cykKPiArewo+ICsJdWludDY0X3QgaGFzaCA9ICoodWludDMyX3QgKil2YWw7Cj4g Kwo+ICsJaGFzaCA9IGhhc2ggKiBHT0xERU5fUkFUSU9fUFJJTUVfNjQ7Cj4gKwkvKiBIaWdoIGJp dHMgYXJlIG1vcmUgcmFuZG9tLCBzbyB1c2UgdGhlbS4gKi8KPiArCXJldHVybiBoYXNoID4+ICg2 NCAtIGJpdHMpOwo+ICt9Cj4gKwo+ICt2b2lkIF9faWd0X21hcF9pbml0KHN0cnVjdCBpZ3RfbWFw ICptYXAsIGlndF9tYXBfZXF1YWxfZm4gZXFfZm4sCj4gKwkJICAgIGlndF9tYXBfaGFzaF9mbiBo YXNoX2ZuLCB1aW50MzJfdCBpbml0aWFsX2JpdHMpCj4gK3sKPiArCW1hcC0+ZXF1YWxfZm4gPSBl cV9mbiA9PSBOVUxMID8gZXF1YWxfNGJ5dGVzIDogZXFfZm47Cj4gKwltYXAtPmhhc2hfZm4gPSBo YXNoX2ZuID09IE5VTEwgPyBoYXNoXzY0XzRieXRlcyA6IGhhc2hfZm47Cj4gKwltYXAtPmNhcGFj aXR5X2JpdHMgPSBpbml0aWFsX2JpdHMgPiAwID8gaW5pdGlhbF9iaXRzCj4gKwkJCQkJICAgICAg OiBNSU5fQ0FQQUNJVFlfQklUUzsKPiArCW1hcC0+aGVhZHMgPSBjYWxsb2MoSUdUX01BUF9DQVBB Q0lUWShtYXApLAo+ICsJCQkgICAgc2l6ZW9mKHN0cnVjdCBpZ3RfaGxpc3RfaGVhZCkpOwo+ICsK PiArCWlndF9hc3NlcnQobWFwLT5oZWFkcyk7Cj4gKwltYXAtPnNpemUgPSAwOwo+ICt9Cj4gKwo+ ICt2b2lkIGlndF9tYXBfYWRkKHN0cnVjdCBpZ3RfbWFwICptYXAsIGNvbnN0IHZvaWQgKmtleSwg dm9pZCAqdmFsdWUpCj4gK3sKPiArCXN0cnVjdCBpZ3RfbWFwX2VudHJ5ICplbnRyeTsKPiArCj4g KwlpZiAoaWd0X21hcF9maWxsZWQobWFwKSkKPiArCQlpZ3RfbWFwX2V4dGVuZChtYXApOwo+ICsK PiArCWVudHJ5ID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgaWd0X21hcF9lbnRyeSkpOwo+ICsJZW50 cnktPnZhbHVlID0gdmFsdWU7Cj4gKwllbnRyeS0+a2V5ID0ga2V5Owo+ICsJaWd0X2hsaXN0X2Fk ZF9oZWFkKCZlbnRyeS0+bGluaywKPiArCQkJICAgJm1hcC0+aGVhZHNbbWFwLT5oYXNoX2ZuKGtl eSwgbWFwLT5jYXBhY2l0eV9iaXRzKV0pOwo+ICsJbWFwLT5zaXplKys7Cj4gK30KPiArCj4gK3Zv aWQgKmlndF9tYXBfZGVsKHN0cnVjdCBpZ3RfbWFwICptYXAsIGNvbnN0IHZvaWQgKmtleSkKPiAr ewo+ICsJc3RydWN0IGlndF9tYXBfZW50cnkgKnBvczsKPiArCXN0cnVjdCBpZ3RfaGxpc3Rfbm9k ZSAqdG1wOwo+ICsJdm9pZCAqdmFsID0gTlVMTDsKPiArCj4gKwlpZ3RfbWFwX2Zvcl9lYWNoX3Bv c3NpYmxlX3NhZmUobWFwLCBwb3MsIHRtcCwga2V5KSB7Cj4gKwkJaWYgKG1hcC0+ZXF1YWxfZm4o cG9zLT5rZXksIGtleSkpIHsKPiArCQkJaWd0X2hsaXN0X2RlbCgmcG9zLT5saW5rKTsKPiArCQkJ dmFsID0gcG9zLT52YWx1ZTsKPiArCQkJZnJlZShwb3MpOwo+ICsJCX0KPiArCX0KPiArCXJldHVy biB2YWw7Cj4gK30KPiArCj4gK3ZvaWQgKmlndF9tYXBfZmluZChzdHJ1Y3QgaWd0X21hcCAqbWFw LCBjb25zdCB2b2lkICprZXkpCj4gK3sKPiArCXN0cnVjdCBpZ3RfbWFwX2VudHJ5ICpwb3MgPSBO VUxMOwo+ICsKPiArCWlndF9tYXBfZm9yX2VhY2hfcG9zc2libGUobWFwLCBwb3MsIGtleSkKPiAr CQlpZiAobWFwLT5lcXVhbF9mbihwb3MtPmtleSwga2V5KSkKPiArCQkJYnJlYWs7Cj4gKwo+ICsJ cmV0dXJuIHBvcyA/IHBvcy0+dmFsdWUgOiBOVUxMOwo+ICt9Cj4gKwo+ICt2b2lkIGlndF9tYXBf ZnJlZShzdHJ1Y3QgaWd0X21hcCAqbWFwKQo+ICt7Cj4gKwlzdHJ1Y3QgaWd0X21hcF9lbnRyeSAq cG9zOwo+ICsJc3RydWN0IGlndF9obGlzdF9ub2RlICp0bXA7Cj4gKwlpbnQgaTsKPiArCj4gKwlp Z3RfbWFwX2Zvcl9lYWNoX3NhZmUobWFwLCBpLCB0bXAsIHBvcykgewo+ICsJCWlndF9obGlzdF9k ZWwoJnBvcy0+bGluayk7Cj4gKwkJZnJlZShwb3MpOwo+ICsJfQo+ICsKPiArCWZyZWUobWFwLT5o ZWFkcyk7Cj4gK30KPiArCj4gK2Jvb2wgaWd0X21hcF9lbXB0eShzdHJ1Y3QgaWd0X21hcCAqbWFw KQo+ICt7Cj4gKwlyZXR1cm4gbWFwLT5zaXplOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rf bWFwLmggYi9saWIvaWd0X21hcC5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAw MDAwMDAuLmQ0N2FmZGJiZQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9saWIvaWd0X21hcC5oCj4g QEAgLTAsMCArMSwxMDQgQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ICsv Kgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAyMSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKi8KPiArCj4g KyNpZm5kZWYgSUdUX01BUF9ICj4gKyNkZWZpbmUgSUdUX01BUF9ICj4gKwo+ICsjaW5jbHVkZSA8 c3RkaW50Lmg+Cj4gKyNpbmNsdWRlICJpZ3RfbGlzdC5oIgo+ICsKPiArLyoqCj4gKyAqIFNFQ1RJ T046aWd0X21hcAo+ICsgKiBAc2hvcnRfZGVzY3JpcHRpb246IGEgZHluYW1pYyBzaXplZCBoYXNo bWFwIGltcGxlbWVudGF0aW9uCj4gKyAqIEB0aXRsZTogSUdUIE1hcAo+ICsgKiBAaW5jbHVkZTog aWd0X21hcC5oCj4gKyAqCj4gKyAqIGlndF9tYXAgaXMgYSBkeW5hbWljIHNpemVkLCBub24tdGhy ZWFkLXNhZmUgaW1wbGVtZW50YXRpb24gb2YgYSBoYXNobWFwLgo+ICsgKiBUaGlzIG1hcCBncm93 cyBleHBvbmVudGlhbGx5IHdoZW4gaXQncyBvdmVyIDgwJSBmaWxsZWQuIFRoZSBzdHJ1Y3R1cmUg YWxsb3dzCj4gKyAqIGluZGV4aW5nIHJlY29yZHMgYnkgYW55IGtleSB0aHJvdWdoIHRoZSBoYXNo IGFuZCBlcXVhbCBmdW5jdGlvbnMuCj4gKyAqIEJ5IGRlZmF1bHQsIGhhc2htYXAgY29tcGFyZXMg YW5kIGhhc2hlcyB0aGUgZmlyc3QgZm91ciBieXRlcyBvZiBhIGtleS4KPiArICoKPiArICogRXhh bXBsZSB1c2FnZToKPiArICoKPiArICogfFs8IS0tIGxhbmd1YWdlPSJDIiAtLT4KPiArICogc3Ry dWN0IGlndF9tYXAgKm1hcDsKPiArICoKPiArICogc3RydWN0IHJlY29yZCB7Cj4gKyAqICAgICAg aW50IGZvbzsKPiArICogICAgICB1aW50MzJfdCB1bmlxdWVfaWRlbnRpZmllcjsKPiArICogfTsK PiArICoKPiArICogc3RydWN0IHJlY29yZCByMSwgcjIsICpyX3B0cjsKPiArICoKPiArICogbWFw ID0gbWFsbG9jKHNpemVvZigqbWFwKSk7Cj4gKyAqIGlndF9tYXBfaW5pdChtYXApOyAvLyBpbml0 aWFpemUgdGhlIG1hcCB3aXRoIGRlZmF1bHQgcGFyYW1ldGVycwo+ICsgKiBpZ3RfbWFwX2FkZCht YXAsICZyMS51bmlxdWVfaWRlbnRpZmllciwgJnIxKTsKPiArICogaWd0X21hcF9hZGQobWFwLCAm cjIudW5pcXVlX2lkZW50aWZpZXIsICZyMik7Cj4gKyAqCj4gKyAqIHN0cnVjdCBpZ3RfbWFwX2Vu dHJ5ICpwb3M7IGludCBpOwo+ICsgKiBpZ3RfbWFwX2Zvcl9lYWNoKG1hcCwgaSwgcG9zKSB7Cj4g KyAqICAgICAgcl9wdHIgPSBwb3MtPnZhbHVlOwo+ICsgKiAgICAgIHByaW50Zigia2V5OiAldSwg Zm9vOiAlZFxuIiwgKih1aW50MzJfdCopIHBvcy0+a2V5LCByX3B0ci0+Zm9vKTsKPiArICogfQo+ ICsgKgo+ICsgKiB1aW50MzJfdCBrZXkgPSByMS51bmlxdWVfaWRlbnRpZmllcjsKPiArICogcl9w dHIgPSBpZ3RfbWFwX2ZpbmQobWFwLCAma2V5KTsgLy8gZ2V0IHIxCj4gKyAqCj4gKyAqIHJfcHRy ID0gaWd0X21hcF9kZWwobWFwLCAmcjIudW5pcXVlX2lkZW50aWZpZXIpOwo+ICsgKiBpZiAocl9w dHIpCj4gKyAqICAgICAgcHJpbnRmKCJyZWNvcmQgd2l0aCBrZXkgJXUgZGVsZXRlZFxuIiwgcl9w dHItPnVuaXF1ZV9pZGVudGlmaWVyKTsKPiArICoKPiArICogaWd0X21hcF9mcmVlKG1hcCk7Cj4g KyAqIGZyZWUobWFwKTsKPiArICogXXwKPiArICovCj4gKwo+ICt0eXBlZGVmIGJvb2wgKCppZ3Rf bWFwX2VxdWFsX2ZuKShjb25zdCB2b2lkICprZXkxLCBjb25zdCB2b2lkICprZXkyKTsKPiArdHlw ZWRlZiB1aW50NjRfdCAoKmlndF9tYXBfaGFzaF9mbikoY29uc3Qgdm9pZCAqdmFsLCB1bnNpZ25l ZCBpbnQgYml0cyk7Cj4gK3N0cnVjdCBpZ3RfbWFwIHsKPiArCXVpbnQzMl90IHNpemU7Cj4gKwl1 aW50MzJfdCBjYXBhY2l0eV9iaXRzOwo+ICsJaWd0X21hcF9lcXVhbF9mbiBlcXVhbF9mbjsKPiAr CWlndF9tYXBfaGFzaF9mbiBoYXNoX2ZuOwo+ICsJc3RydWN0IGlndF9obGlzdF9oZWFkICpoZWFk czsKPiArfTsKPiArCj4gK3N0cnVjdCBpZ3RfbWFwX2VudHJ5IHsKPiArCWNvbnN0IHZvaWQgKmtl eTsKPiArCXZvaWQgKnZhbHVlOwo+ICsJc3RydWN0IGlndF9obGlzdF9ub2RlIGxpbms7Cj4gK307 Cj4gKwo+ICt2b2lkIF9faWd0X21hcF9pbml0KHN0cnVjdCBpZ3RfbWFwICptYXAsIGlndF9tYXBf ZXF1YWxfZm4gZXFfZm4sCj4gKwkJICBpZ3RfbWFwX2hhc2hfZm4gaGFzaF9mbiwgdWludDMyX3Qg aW5pdGlhbF9iaXRzKTsKPiArdm9pZCBpZ3RfbWFwX2FkZChzdHJ1Y3QgaWd0X21hcCAqbWFwLCBj b25zdCB2b2lkICprZXksIHZvaWQgKnZhbHVlKTsKPiArdm9pZCAqaWd0X21hcF9kZWwoc3RydWN0 IGlndF9tYXAgKm1hcCwgY29uc3Qgdm9pZCAqa2V5KTsKPiArdm9pZCAqaWd0X21hcF9maW5kKHN0 cnVjdCBpZ3RfbWFwICptYXAsIGNvbnN0IHZvaWQgKmtleSk7Cj4gK3ZvaWQgaWd0X21hcF9mcmVl KHN0cnVjdCBpZ3RfbWFwICptYXApOwo+ICtib29sIGlndF9tYXBfZW1wdHkoc3RydWN0IGlndF9t YXAgKm1hcCk7Cj4gKwo+ICsjZGVmaW5lIGlndF9tYXBfaW5pdChtYXApIF9faWd0X21hcF9pbml0 KG1hcCwgTlVMTCwgTlVMTCwgOCkKPiArCj4gKyNkZWZpbmUgSUdUX01BUF9DQVBBQ0lUWShtYXAp ICgxVUxMIDw8IG1hcC0+Y2FwYWNpdHlfYml0cykKPiArCj4gKyNkZWZpbmUgaWd0X21hcF9mb3Jf ZWFjaF9zYWZlKG1hcCwgYmt0LCB0bXAsIG9iaikgXAo+ICsJZm9yICgoYmt0KSA9IDAsIG9iaiA9 IE5VTEw7IG9iaiA9PSBOVUxMICYmIChia3QpIDwgSUdUX01BUF9DQVBBQ0lUWShtYXApOyBcCj4g KwkoYmt0KSsrKVwKPiArCWlndF9obGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG9iaiwgdG1wLCAm bWFwLT5oZWFkc1tia3RdLCBsaW5rKQo+ICsKPiArI2RlZmluZSBpZ3RfbWFwX2Zvcl9lYWNoKG1h cCwgYmt0LCBvYmopIFwKPiArCWZvciAoKGJrdCkgPSAwLCBvYmogPSBOVUxMOyBvYmogPT0gTlVM TCAmJiAoYmt0KSA8IElHVF9NQVBfQ0FQQUNJVFkobWFwKTsgXAo+ICsJKGJrdCkrKylcCj4gKwlp Z3RfaGxpc3RfZm9yX2VhY2hfZW50cnkob2JqLCAmbWFwLT5oZWFkc1tia3RdLCBsaW5rKQo+ICsK PiArI2RlZmluZSBpZ3RfbWFwX2Zvcl9lYWNoX3Bvc3NpYmxlKG1hcCwgb2JqLCBrZXkpIFwKPiAr CWlndF9obGlzdF9mb3JfZWFjaF9lbnRyeShvYmosIFwKPiArCQkmbWFwLT5oZWFkc1ttYXAtPmhh c2hfZm4oa2V5LCBtYXAtPmNhcGFjaXR5X2JpdHMpXSwgbGluaykKPiArCj4gKyNkZWZpbmUgaWd0 X21hcF9mb3JfZWFjaF9wb3NzaWJsZV9zYWZlKG1hcCwgb2JqLCB0bXAsIGtleSkgXAo+ICsJaWd0 X2hsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUob2JqLCB0bXAsIFwKPiArCQkmbWFwLT5oZWFkc1tt YXAtPmhhc2hfZm4oa2V5LCBtYXAtPmNhcGFjaXR5X2JpdHMpXSwgbGluaykKPiArCj4gKyNlbmRp ZiAvKiBJR1RfTUFQX0ggKi8KPiBkaWZmIC0tZ2l0IGEvbGliL21lc29uLmJ1aWxkIGIvbGliL21l c29uLmJ1aWxkCj4gaW5kZXggNjcyYjQyMDYyLi43MjU0ZmFlYWMgMTAwNjQ0Cj4gLS0tIGEvbGli L21lc29uLmJ1aWxkCj4gKysrIGIvbGliL21lc29uLmJ1aWxkCj4gQEAgLTYxLDYgKzYxLDcgQEAg bGliX3NvdXJjZXMgPSBbCj4gIAknaWd0X2NvcmUuYycsCj4gIAknaWd0X2RyYXcuYycsCj4gIAkn aWd0X2xpc3QuYycsCj4gKwknaWd0X21hcC5jJywKPiAgCSdpZ3RfcG0uYycsCj4gIAknaWd0X2R1 bW15bG9hZC5jJywKPiAgCSd1d2lsZG1hdC91d2lsZG1hdC5jJywKPiAtLSAKPiAyLjI2LjAKPiAK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGlndC1k ZXYgbWFpbGluZyBsaXN0Cj4gaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYKCi0tIApEYW5p ZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxv Zy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK