From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [Intel-gfx] [PATCH 03/16] drm/atomic: Move __drm_atomic_helper_disable_plane/set_config() Date: Wed, 27 Mar 2019 15:27:48 +0100 Message-ID: References: <20190326175546.18126-1-noralf@tronnes.org> <20190326175546.18126-4-noralf@tronnes.org> <20190326204821.GT2665@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: intel-gfx , 'Max Staudt , dri-devel List-Id: intel-gfx@lists.freedesktop.org CgpEZW4gMjcuMDMuMjAxOSAxNC41NSwgc2tyZXYgRGFuaWVsIFZldHRlcjoKPiBPbiBXZWQsIE1h ciAyNywgMjAxOSBhdCAyOjQyIFBNIE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25uZXMub3Jn PiB3cm90ZToKPj4KPj4KPj4KPj4gRGVuIDI2LjAzLjIwMTkgMjEuNDgsIHNrcmV2IERhbmllbCBW ZXR0ZXI6Cj4+PiBPbiBUdWUsIE1hciAyNiwgMjAxOSBhdCAwNjo1NTozM1BNICswMTAwLCBOb3Jh bGYgVHLDuG5uZXMgd3JvdGU6Cj4+Pj4gUHJlcGFyZSBmb3IgbW92aW5nIGRybV9mYl9oZWxwZXIg bW9kZXNldHRpbmcgY29kZSB0byBkcm1fY2xpZW50Lgo+Pj4+IGRybV9jbGllbnQgd2lsbCBiZSBs aW5rZWQgdG8gZHJtLmtvLCBzbyBtb3ZlCj4+Pj4gX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxl X3BsYW5lKCkgYW5kIF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZygpCj4+Pj4gb3V0IG9m IGRybV9rbXNfaGVscGVyLmtvLgo+Pj4+Cj4+Pj4gV2hpbGUgYXQgaXQsIGZpeCB0d28gY2hlY2tw YXRjaCBjb21wbGFpbnRzOgo+Pj4+IC0gV0FSTklORzogQmxvY2sgY29tbWVudHMgdXNlIGEgdHJh aWxpbmcgKi8gb24gYSBzZXBhcmF0ZSBsaW5lCj4+Pj4gLSBDSEVDSzogQWxpZ25tZW50IHNob3Vs ZCBtYXRjaCBvcGVuIHBhcmVudGhlc2lzCj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBOb3JhbGYg VHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KPj4+Cj4+PiBUcmlnZ2VycyBhIGJpdCBteSBt aWRsYXllciBvY2QsIGJ1dCBJIGNhbid0IGNvbWUgdXAgd2l0aCBhIGJldHRlciBpZGVhCj4+PiBl aXRoZXIuCj4+Pgo+Pj4gUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+Cj4+Pgo+Pgo+PiBUaGUgSW50ZWwgQ0kgaW5mb3JtZWQgbWUgdGhhdCB0aGlzIHBh dGNoIGRpZG4ndCBhcHBseS4uCj4+Cj4+IFR1cm5zIG91dCB0aGVyZSdzIGEgcGF0Y2ggaW4gZHJt LW5leHQgYnkgU2VhbjoKPj4KPj4gZHJtOiBNZXJnZSBfX2RybV9hdG9taWNfaGVscGVyX2Rpc2Fi bGVfYWxsKCkgaW50bwo+PiBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCgpCj4+Cj4+IGh0 dHBzOi8vY2dpdC5mcmVlZGVza3RvcC5vcmcvZHJtL2RybS9jb21taXQ/aWQ9Mzc0MDZhNjBmYWM3 ZGUzMzZkZWMzMzFhODcwN2E5NDQ2MmFjNWE1ZQo+Pgo+PiBTaG91bGQgSSBtb3ZlIHRoZSB3aG9s ZSBmdW5jdGlvbiB3aXRoIHRoZSBrZXJuZWxkb2MgdG8gZHJtX2F0b21pYy5jLCBvcgo+PiBzaG91 bGQgSSBrZWVwIHRoZSBkb2MgYW5kIGZ1bmN0aW9uIGluIGRybV9hdG9taWNfaGVscGVyLmMgYW5k IGp1c3QKPj4gcmVjcmVhdGUgX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCgpIGFuZCBj YWxsIHRoYXQgPwo+IAo+IFNvIG15IGxvbmd0ZXJtIGdvYWwgd2l0aCBhbGwgdGhlc2UgY29tcGF0 IGhlbHBlcnMgaXMgdG8gbW92ZSB0aGVtIGludG8KPiB0aGUgY29yZSBhbnl3YXksIGFuZCBtYWtl IHRoZW0gYXQgbGVhc3QgdGhlIGRlZmF1bHQsIGlmIG5vdCBvbmx5IHRoZQo+IG9ubHkgYWNjZXB0 ZWQgY2hvaWNlIGZvciBhdG9taWMgZHJpdmVycy4gV2UndmUgYWxyZWFkeSBkb25lIHRoYXQgZm9y Cj4gdGhlIGRwbXMgaG9vay4gV2UgY2FuJ3QgbWFrZSBpdCB0aGUgZW5mb3JjZWQgZGVmYXVsdCB5 ZXQgZm9yIHBsYW5lcwo+IGJlY2F1c2Ugb2YgY3Vyc29ycywgYnV0IEkgdGhpbmsgd2UgY291bGQg anVzdCBtb3ZlIGJvdGggb2YgdGhlc2UgaW50bwo+IHRoZSBjb3JlIChkaXNhYmxlX3BsYW5lIGFu ZCB1cGRhdGVfcGxhbmUpLCBtYWtlIGl0IHRoZSBkZWZhdWx0IG9wdGlvbiwKPiBhbmQgcmVtb3Zl IGFsbCBkcml2ZXIgdXNlcnMgdGhhdCBqdXN0IHNldCBpdCBhcyB0aGUgZGVmYXVsdCBob29rLgo+ IAo+IFdvdWxkIG5lZWQgdG8gYmUgcmVuYW1lZCB0byBzb21ldGhpbmcgbGlrZSBkcm1fYXRvbWlj X2RlZmF1bHRfKiBvZmMuCj4gCj4gTm90IHN1cmUgd2h5IHlvdSdyZSB0YWxraW5nIGFib3V0IGRp c2FibGVfYWxsIGhlcmUgdGhvdWdoLCBzaW5jZSB0aGF0Cj4gZG9lc24ndCBzZWVtIHRvIGJlIHRv dWNoZWQgaW4gdGhpcyBwYXRjaCBhdCBhbGw/CgpTb3JyeSBteSBiYWQsIEkgd2FzIGp1c3QgY29u ZnVzZWQuIExvb2tpbmcgYXQgaXQgYWdhaW4sIEkgc2VlIHRoYXQgSSBjYW4KanVzdCByZWJhc2Ug b24gdG9wIG9mIHRoYXQgcGF0Y2guCgpOb3JhbGYuCgo+IC1EYW5pZWwKPiAKPj4KPj4gTm9yYWxm Lgo+Pgo+Pj4+IC0tLQo+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8 IDE2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jIHwgMTY0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+ ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaCB8ICAgNSArCj4+Pj4gIGluY2x1 ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggICAgIHwgICA0IC0KPj4+PiAgNCBmaWxlcyBjaGFu Z2VkLCAxNzMgaW5zZXJ0aW9ucygrKSwgMTY4IGRlbGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCj4+Pj4gaW5kZXggNWViNDAxMzBmYWZiLi5jM2E5ZmZiZjIzMTAgMTAwNjQ0Cj4+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+Pj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMKPj4+PiBAQCAtMTEzMCw2ICsxMTMwLDE3NCBAQCBpbnQgZHJt X2F0b21pY19ub25ibG9ja2luZ19jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KQo+Pj4+ICB9Cj4+Pj4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19ub25ibG9ja2luZ19jb21t aXQpOwo+Pj4+Cj4+Pj4gKy8qIGp1c3QgdXNlZCBmcm9tIGRybS1jbGllbnQgYW5kIGF0b21pYy1o ZWxwZXI6ICovCj4+Pj4gK2ludCBfX2RybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPj4+PiArewo+Pj4+ICsg ICAgaW50IHJldDsKPj4+PiArCj4+Pj4gKyAgICByZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zv cl9wbGFuZShwbGFuZV9zdGF0ZSwgTlVMTCk7Cj4+Pj4gKyAgICBpZiAocmV0ICE9IDApCj4+Pj4g KyAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+Pj4gKwo+Pj4+ICsgICAgZHJtX2F0b21pY19zZXRf ZmJfZm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBOVUxMKTsKPj4+PiArICAgIHBsYW5lX3N0YXRlLT5j cnRjX3ggPSAwOwo+Pj4+ICsgICAgcGxhbmVfc3RhdGUtPmNydGNfeSA9IDA7Cj4+Pj4gKyAgICBw bGFuZV9zdGF0ZS0+Y3J0Y193ID0gMDsKPj4+PiArICAgIHBsYW5lX3N0YXRlLT5jcnRjX2ggPSAw Owo+Pj4+ICsgICAgcGxhbmVfc3RhdGUtPnNyY194ID0gMDsKPj4+PiArICAgIHBsYW5lX3N0YXRl LT5zcmNfeSA9IDA7Cj4+Pj4gKyAgICBwbGFuZV9zdGF0ZS0+c3JjX3cgPSAwOwo+Pj4+ICsgICAg cGxhbmVfc3RhdGUtPnNyY19oID0gMDsKPj4+PiArCj4+Pj4gKyAgICByZXR1cm4gMDsKPj4+PiAr fQo+Pj4+ICtFWFBPUlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSk7 Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgaW50IHVwZGF0ZV9vdXRwdXRfc3RhdGUoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgZHJtX21vZGVfc2V0ICpzZXQpCj4+Pj4gK3sKPj4+PiArICAgIHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBzZXQtPmNydGMtPmRldjsKPj4+PiArICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsK Pj4+PiArICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Cj4+Pj4gKyAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+Pj4+ICsgICAgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOwo+Pj4+ICsgICAgaW50IHJldCwgaTsKPj4+ PiArCj4+Pj4gKyAgICByZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNv bm5lY3Rpb25fbXV0ZXgsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5h Y3F1aXJlX2N0eCk7Cj4+Pj4gKyAgICBpZiAocmV0KQo+Pj4+ICsgICAgICAgICAgICByZXR1cm4g cmV0Owo+Pj4+ICsKPj4+PiArICAgIC8qIEZpcnN0IGRpc2FibGUgYWxsIGNvbm5lY3RvcnMgb24g dGhlIHRhcmdldCBjcnRjLiAqLwo+Pj4+ICsgICAgcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0 ZWRfY29ubmVjdG9ycyhzdGF0ZSwgc2V0LT5jcnRjKTsKPj4+PiArICAgIGlmIChyZXQpCj4+Pj4g KyAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+Pj4gKwo+Pj4+ICsgICAgZm9yX2VhY2hfbmV3X2Nv bm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBuZXdfY29ubl9zdGF0ZSwgaSkgewo+ Pj4+ICsgICAgICAgICAgICBpZiAobmV3X2Nvbm5fc3RhdGUtPmNydGMgPT0gc2V0LT5jcnRjKSB7 Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3Jf Y29ubmVjdG9yKG5ld19jb25uX3N0YXRlLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKPj4+PiArICAgICAgICAg ICAgICAgICAgICBpZiAocmV0KQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIHJldDsKPj4+PiArCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgLyogTWFrZSBzdXJlIGxl Z2FjeSBzZXRDcnRjIGFsd2F5cyByZS10cmFpbnMgKi8KPj4+PiArICAgICAgICAgICAgICAgICAg ICBuZXdfY29ubl9zdGF0ZS0+bGlua19zdGF0dXMgPSBEUk1fTElOS19TVEFUVVNfR09PRDsKPj4+ PiArICAgICAgICAgICAgfQo+Pj4+ICsgICAgfQo+Pj4+ICsKPj4+PiArICAgIC8qIFRoZW4gc2V0 IGFsbCBjb25uZWN0b3JzIGZyb20gc2V0LT5jb25uZWN0b3JzIG9uIHRoZSB0YXJnZXQgY3J0YyAq Lwo+Pj4+ICsgICAgZm9yIChpID0gMDsgaSA8IHNldC0+bnVtX2Nvbm5lY3RvcnM7IGkrKykgewo+ Pj4+ICsgICAgICAgICAgICBuZXdfY29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rv cl9zdGF0ZShzdGF0ZSwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2V0LT5jb25uZWN0b3JzW2ldKTsKPj4+PiArICAgICAg ICAgICAgaWYgKElTX0VSUihuZXdfY29ubl9zdGF0ZSkpCj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFBUUl9FUlIobmV3X2Nvbm5fc3RhdGUpOwo+Pj4+ICsKPj4+PiArICAgICAgICAg ICAgcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKG5ld19jb25uX3N0YXRl LAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2V0LT5jcnRjKTsKPj4+PiArICAgICAgICAgICAgaWYgKHJldCkKPj4+PiArICAgICAgICAg ICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4+ICsgICAgfQo+Pj4+ICsKPj4+PiArICAgIGZvcl9l YWNoX25ld19jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewo+ Pj4+ICsgICAgICAgICAgICAvKgo+Pj4+ICsgICAgICAgICAgICAgKiBEb24ndCB1cGRhdGUgLT5l bmFibGUgZm9yIHRoZSBDUlRDIGluIHRoZSBzZXRfY29uZmlnIHJlcXVlc3QsCj4+Pj4gKyAgICAg ICAgICAgICAqIHNpbmNlIGEgbWlzbWF0Y2ggd291bGQgaW5kaWNhdGUgYSBidWcgaW4gdGhlIHVw cGVyIGxheWVycy4KPj4+PiArICAgICAgICAgICAgICogVGhlIGFjdHVhbCBtb2Rlc2V0IGNvZGUg bGF0ZXIgb24gd2lsbCBjYXRjaCBhbnkKPj4+PiArICAgICAgICAgICAgICogaW5jb25zaXN0ZW5j aWVzIGhlcmUuCj4+Pj4gKyAgICAgICAgICAgICAqLwo+Pj4+ICsgICAgICAgICAgICBpZiAoY3J0 YyA9PSBzZXQtPmNydGMpCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+Pj4g Kwo+Pj4+ICsgICAgICAgICAgICBpZiAoIW5ld19jcnRjX3N0YXRlLT5jb25uZWN0b3JfbWFzaykg ewo+Pj4+ICsgICAgICAgICAgICAgICAgICAgIHJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfcHJv cF9mb3JfY3J0YyhuZXdfY3J0Y19zdGF0ZSwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Cj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgaWYgKHJldCA8IDApCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gcmV0Owo+Pj4+ICsKPj4+PiArICAgICAgICAgICAgICAgICAgICBuZXdfY3J0Y19z dGF0ZS0+YWN0aXZlID0gZmFsc2U7Cj4+Pj4gKyAgICAgICAgICAgIH0KPj4+PiArICAgIH0KPj4+ PiArCj4+Pj4gKyAgICByZXR1cm4gMDsKPj4+PiArfQo+Pj4+ICsKPj4+PiArLyoganVzdCB1c2Vk IGZyb20gZHJtLWNsaWVudCBhbmQgYXRvbWljLWhlbHBlcjogKi8KPj4+PiAraW50IF9fZHJtX2F0 b21pY19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCj4+Pj4gK3sKPj4+PiArICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsK Pj4+PiArICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnByaW1hcnlfc3RhdGU7Cj4+Pj4gKyAg ICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzZXQtPmNydGM7Cj4+Pj4gKyAgICBpbnQgaGRpc3Bs YXksIHZkaXNwbGF5Owo+Pj4+ICsgICAgaW50IHJldDsKPj4+PiArCj4+Pj4gKyAgICBjcnRjX3N0 YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4+Pj4gKyAgICBp ZiAoSVNfRVJSKGNydGNfc3RhdGUpKQo+Pj4+ICsgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihj cnRjX3N0YXRlKTsKPj4+PiArCj4+Pj4gKyAgICBwcmltYXJ5X3N0YXRlID0gZHJtX2F0b21pY19n ZXRfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMtPnByaW1hcnkpOwo+Pj4+ICsgICAgaWYgKElTX0VS UihwcmltYXJ5X3N0YXRlKSkKPj4+PiArICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIocHJpbWFy eV9zdGF0ZSk7Cj4+Pj4gKwo+Pj4+ICsgICAgaWYgKCFzZXQtPm1vZGUpIHsKPj4+PiArICAgICAg ICAgICAgV0FSTl9PTihzZXQtPmZiKTsKPj4+PiArICAgICAgICAgICAgV0FSTl9PTihzZXQtPm51 bV9jb25uZWN0b3JzKTsKPj4+PiArCj4+Pj4gKyAgICAgICAgICAgIHJldCA9IGRybV9hdG9taWNf c2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgTlVMTCk7Cj4+Pj4gKyAgICAgICAgICAgIGlm IChyZXQgIT0gMCkKPj4+PiArICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4+ICsK Pj4+PiArICAgICAgICAgICAgY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFsc2U7Cj4+Pj4gKwo+Pj4+ ICsgICAgICAgICAgICByZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zvcl9wbGFuZShwcmltYXJ5 X3N0YXRlLCBOVUxMKTsKPj4+PiArICAgICAgICAgICAgaWYgKHJldCAhPSAwKQo+Pj4+ICsgICAg ICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgICAgICBkcm1f YXRvbWljX3NldF9mYl9mb3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgTlVMTCk7Cj4+Pj4gKwo+Pj4+ ICsgICAgICAgICAgICBnb3RvIGNvbW1pdDsKPj4+PiArICAgIH0KPj4+PiArCj4+Pj4gKyAgICBX QVJOX09OKCFzZXQtPmZiKTsKPj4+PiArICAgIFdBUk5fT04oIXNldC0+bnVtX2Nvbm5lY3RvcnMp Owo+Pj4+ICsKPj4+PiArICAgIHJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0 Y19zdGF0ZSwgc2V0LT5tb2RlKTsKPj4+PiArICAgIGlmIChyZXQgIT0gMCkKPj4+PiArICAgICAg ICAgICAgcmV0dXJuIHJldDsKPj4+PiArCj4+Pj4gKyAgICBjcnRjX3N0YXRlLT5hY3RpdmUgPSB0 cnVlOwo+Pj4+ICsKPj4+PiArICAgIHJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5l KHByaW1hcnlfc3RhdGUsIGNydGMpOwo+Pj4+ICsgICAgaWYgKHJldCAhPSAwKQo+Pj4+ICsgICAg ICAgICAgICByZXR1cm4gcmV0Owo+Pj4+ICsKPj4+PiArICAgIGRybV9tb2RlX2dldF9odl90aW1p bmcoc2V0LT5tb2RlLCAmaGRpc3BsYXksICZ2ZGlzcGxheSk7Cj4+Pj4gKwo+Pj4+ICsgICAgZHJt X2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIHNldC0+ZmIpOwo+Pj4+ICsg ICAgcHJpbWFyeV9zdGF0ZS0+Y3J0Y194ID0gMDsKPj4+PiArICAgIHByaW1hcnlfc3RhdGUtPmNy dGNfeSA9IDA7Cj4+Pj4gKyAgICBwcmltYXJ5X3N0YXRlLT5jcnRjX3cgPSBoZGlzcGxheTsKPj4+ PiArICAgIHByaW1hcnlfc3RhdGUtPmNydGNfaCA9IHZkaXNwbGF5Owo+Pj4+ICsgICAgcHJpbWFy eV9zdGF0ZS0+c3JjX3ggPSBzZXQtPnggPDwgMTY7Cj4+Pj4gKyAgICBwcmltYXJ5X3N0YXRlLT5z cmNfeSA9IHNldC0+eSA8PCAxNjsKPj4+PiArICAgIGlmIChkcm1fcm90YXRpb25fOTBfb3JfMjcw KHByaW1hcnlfc3RhdGUtPnJvdGF0aW9uKSkgewo+Pj4+ICsgICAgICAgICAgICBwcmltYXJ5X3N0 YXRlLT5zcmNfdyA9IHZkaXNwbGF5IDw8IDE2Owo+Pj4+ICsgICAgICAgICAgICBwcmltYXJ5X3N0 YXRlLT5zcmNfaCA9IGhkaXNwbGF5IDw8IDE2Owo+Pj4+ICsgICAgfSBlbHNlIHsKPj4+PiArICAg ICAgICAgICAgcHJpbWFyeV9zdGF0ZS0+c3JjX3cgPSBoZGlzcGxheSA8PCAxNjsKPj4+PiArICAg ICAgICAgICAgcHJpbWFyeV9zdGF0ZS0+c3JjX2ggPSB2ZGlzcGxheSA8PCAxNjsKPj4+PiArICAg IH0KPj4+PiArCj4+Pj4gK2NvbW1pdDoKPj4+PiArICAgIHJldCA9IHVwZGF0ZV9vdXRwdXRfc3Rh dGUoc3RhdGUsIHNldCk7Cj4+Pj4gKyAgICBpZiAocmV0KQo+Pj4+ICsgICAgICAgICAgICByZXR1 cm4gcmV0Owo+Pj4+ICsKPj4+PiArICAgIHJldHVybiAwOwo+Pj4+ICt9Cj4+Pj4gK0VYUE9SVF9T WU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKTsKPj4+PiArCj4+Pj4gIHZvaWQg ZHJtX2F0b21pY19wcmludF9zdGF0ZShjb25zdCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCj4+Pj4gIHsKPj4+PiAgICAgIHN0cnVjdCBkcm1fcHJpbnRlciBwID0gZHJtX2luZm9fcHJp bnRlcihzdGF0ZS0+ZGV2LT5kZXYpOwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j Cj4+Pj4gaW5kZXggMjQ1MzY3OGQxMTg2Li5iMGQ5NjBkYTUzY2IgMTAwNjQ0Cj4+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+Pj4+IEBAIC0yODMxLDk1ICsyODMxLDYgQEAgaW50 IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUs Cj4+Pj4gIH0KPj4+PiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3Bs YW5lKTsKPj4+Pgo+Pj4+IC0vKiBqdXN0IHVzZWQgZnJvbSBmYi1oZWxwZXIgYW5kIGF0b21pYy1o ZWxwZXI6ICovCj4+Pj4gLWludCBfX2RybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+Pj4gLSAgICAgICAgICAgIHN0cnVjdCBkcm1fcGxhbmVf c3RhdGUgKnBsYW5lX3N0YXRlKQo+Pj4+IC17Cj4+Pj4gLSAgICBpbnQgcmV0Owo+Pj4+IC0KPj4+ PiAtICAgIHJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3BsYW5lKHBsYW5lX3N0YXRlLCBO VUxMKTsKPj4+PiAtICAgIGlmIChyZXQgIT0gMCkKPj4+PiAtICAgICAgICAgICAgcmV0dXJuIHJl dDsKPj4+PiAtCj4+Pj4gLSAgICBkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocGxhbmVfc3Rh dGUsIE5VTEwpOwo+Pj4+IC0gICAgcGxhbmVfc3RhdGUtPmNydGNfeCA9IDA7Cj4+Pj4gLSAgICBw bGFuZV9zdGF0ZS0+Y3J0Y195ID0gMDsKPj4+PiAtICAgIHBsYW5lX3N0YXRlLT5jcnRjX3cgPSAw Owo+Pj4+IC0gICAgcGxhbmVfc3RhdGUtPmNydGNfaCA9IDA7Cj4+Pj4gLSAgICBwbGFuZV9zdGF0 ZS0+c3JjX3ggPSAwOwo+Pj4+IC0gICAgcGxhbmVfc3RhdGUtPnNyY195ID0gMDsKPj4+PiAtICAg IHBsYW5lX3N0YXRlLT5zcmNfdyA9IDA7Cj4+Pj4gLSAgICBwbGFuZV9zdGF0ZS0+c3JjX2ggPSAw Owo+Pj4+IC0KPj4+PiAtICAgIHJldHVybiAwOwo+Pj4+IC19Cj4+Pj4gLQo+Pj4+IC1zdGF0aWMg aW50IHVwZGF0ZV9vdXRwdXRfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQp Cj4+Pj4gLXsKPj4+PiAtICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzZXQtPmNydGMtPmRl djsKPj4+PiAtICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPj4+PiAtICAgIHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Cj4+Pj4gLSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOwo+Pj4+IC0gICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19j b25uX3N0YXRlOwo+Pj4+IC0gICAgaW50IHJldCwgaTsKPj4+PiAtCj4+Pj4gLSAgICByZXQgPSBk cm1fbW9kZXNldF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsCj4+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5hY3F1aXJlX2N0eCk7Cj4+Pj4gLSAg ICBpZiAocmV0KQo+Pj4+IC0gICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4+IC0KPj4+PiAtICAg IC8qIEZpcnN0IGRpc2FibGUgYWxsIGNvbm5lY3RvcnMgb24gdGhlIHRhcmdldCBjcnRjLiAqLwo+ Pj4+IC0gICAgcmV0ID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycyhzdGF0ZSwg c2V0LT5jcnRjKTsKPj4+PiAtICAgIGlmIChyZXQpCj4+Pj4gLSAgICAgICAgICAgIHJldHVybiBy ZXQ7Cj4+Pj4gLQo+Pj4+IC0gICAgZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0 ZSwgY29ubmVjdG9yLCBuZXdfY29ubl9zdGF0ZSwgaSkgewo+Pj4+IC0gICAgICAgICAgICBpZiAo bmV3X2Nvbm5fc3RhdGUtPmNydGMgPT0gc2V0LT5jcnRjKSB7Cj4+Pj4gLSAgICAgICAgICAgICAg ICAgICAgcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKG5ld19jb25uX3N0 YXRlLAo+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMKTsKPj4+PiAtICAgICAgICAgICAgICAgICAgICBpZiAocmV0KQo+ Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+PiAtCj4+Pj4g LSAgICAgICAgICAgICAgICAgICAgLyogTWFrZSBzdXJlIGxlZ2FjeSBzZXRDcnRjIGFsd2F5cyBy ZS10cmFpbnMgKi8KPj4+PiAtICAgICAgICAgICAgICAgICAgICBuZXdfY29ubl9zdGF0ZS0+bGlu a19zdGF0dXMgPSBEUk1fTElOS19TVEFUVVNfR09PRDsKPj4+PiAtICAgICAgICAgICAgfQo+Pj4+ IC0gICAgfQo+Pj4+IC0KPj4+PiAtICAgIC8qIFRoZW4gc2V0IGFsbCBjb25uZWN0b3JzIGZyb20g c2V0LT5jb25uZWN0b3JzIG9uIHRoZSB0YXJnZXQgY3J0YyAqLwo+Pj4+IC0gICAgZm9yIChpID0g MDsgaSA8IHNldC0+bnVtX2Nvbm5lY3RvcnM7IGkrKykgewo+Pj4+IC0gICAgICAgICAgICBuZXdf Y29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwKPj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXQtPmNvbm5lY3RvcnNbaV0pOwo+Pj4+IC0gICAgICAgICAgICBpZiAoSVNfRVJSKG5ld19jb25u X3N0YXRlKSkKPj4+PiAtICAgICAgICAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihuZXdfY29u bl9zdGF0ZSk7Cj4+Pj4gLQo+Pj4+IC0gICAgICAgICAgICByZXQgPSBkcm1fYXRvbWljX3NldF9j cnRjX2Zvcl9jb25uZWN0b3IobmV3X2Nvbm5fc3RhdGUsCj4+Pj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQtPmNydGMpOwo+Pj4+IC0gICAg ICAgICAgICBpZiAocmV0KQo+Pj4+IC0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+ Pj4gLSAgICB9Cj4+Pj4gLQo+Pj4+IC0gICAgZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3Rh dGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4+Pj4gLSAgICAgICAgICAgIC8qIERvbid0 IHVwZGF0ZSAtPmVuYWJsZSBmb3IgdGhlIENSVEMgaW4gdGhlIHNldF9jb25maWcgcmVxdWVzdCwK Pj4+PiAtICAgICAgICAgICAgICogc2luY2UgYSBtaXNtYXRjaCB3b3VsZCBpbmRpY2F0ZSBhIGJ1 ZyBpbiB0aGUgdXBwZXIgbGF5ZXJzLgo+Pj4+IC0gICAgICAgICAgICAgKiBUaGUgYWN0dWFsIG1v ZGVzZXQgY29kZSBsYXRlciBvbiB3aWxsIGNhdGNoIGFueQo+Pj4+IC0gICAgICAgICAgICAgKiBp bmNvbnNpc3RlbmNpZXMgaGVyZS4gKi8KPj4+PiAtICAgICAgICAgICAgaWYgKGNydGMgPT0gc2V0 LT5jcnRjKQo+Pj4+IC0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pj4+IC0KPj4+PiAt ICAgICAgICAgICAgaWYgKCFuZXdfY3J0Y19zdGF0ZS0+Y29ubmVjdG9yX21hc2spIHsKPj4+PiAt ICAgICAgICAgICAgICAgICAgICByZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX3Byb3BfZm9yX2Ny dGMobmV3X2NydGNfc3RhdGUsCj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwo+Pj4+IC0gICAgICAgICAgICAgICAg ICAgIGlmIChyZXQgPCAwKQo+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IHJldDsKPj4+PiAtCj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgbmV3X2NydGNfc3RhdGUtPmFj dGl2ZSA9IGZhbHNlOwo+Pj4+IC0gICAgICAgICAgICB9Cj4+Pj4gLSAgICB9Cj4+Pj4gLQo+Pj4+ IC0gICAgcmV0dXJuIDA7Cj4+Pj4gLX0KPj4+PiAtCj4+Pj4gIC8qKgo+Pj4+ICAgKiBkcm1fYXRv bWljX2hlbHBlcl9zZXRfY29uZmlnIC0gc2V0IGEgbmV3IGNvbmZpZyBmcm9tIHVzZXJzcGFjZQo+ Pj4+ICAgKiBAc2V0OiBtb2RlIHNldCBjb25maWd1cmF0aW9uCj4+Pj4gQEAgLTI5NjQsODEgKzI4 NzUsNiBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVf c2V0ICpzZXQsCj4+Pj4gIH0KPj4+PiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9z ZXRfY29uZmlnKTsKPj4+Pgo+Pj4+IC0vKiBqdXN0IHVzZWQgZnJvbSBmYi1oZWxwZXIgYW5kIGF0 b21pYy1oZWxwZXI6ICovCj4+Pj4gLWludCBfX2RybV9hdG9taWNfaGVscGVyX3NldF9jb25maWco c3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAo+Pj4+IC0gICAgICAgICAgICBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCj4+Pj4gLXsKPj4+PiAtICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZTsKPj4+PiAtICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnByaW1hcnlf c3RhdGU7Cj4+Pj4gLSAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBzZXQtPmNydGM7Cj4+Pj4g LSAgICBpbnQgaGRpc3BsYXksIHZkaXNwbGF5Owo+Pj4+IC0gICAgaW50IHJldDsKPj4+PiAtCj4+ Pj4gLSAgICBjcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0 Yyk7Cj4+Pj4gLSAgICBpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQo+Pj4+IC0gICAgICAgICAgICBy ZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKPj4+PiAtCj4+Pj4gLSAgICBwcmltYXJ5X3N0YXRl ID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMtPnByaW1hcnkpOwo+Pj4+ IC0gICAgaWYgKElTX0VSUihwcmltYXJ5X3N0YXRlKSkKPj4+PiAtICAgICAgICAgICAgcmV0dXJu IFBUUl9FUlIocHJpbWFyeV9zdGF0ZSk7Cj4+Pj4gLQo+Pj4+IC0gICAgaWYgKCFzZXQtPm1vZGUp IHsKPj4+PiAtICAgICAgICAgICAgV0FSTl9PTihzZXQtPmZiKTsKPj4+PiAtICAgICAgICAgICAg V0FSTl9PTihzZXQtPm51bV9jb25uZWN0b3JzKTsKPj4+PiAtCj4+Pj4gLSAgICAgICAgICAgIHJl dCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgTlVMTCk7Cj4+Pj4g LSAgICAgICAgICAgIGlmIChyZXQgIT0gMCkKPj4+PiAtICAgICAgICAgICAgICAgICAgICByZXR1 cm4gcmV0Owo+Pj4+IC0KPj4+PiAtICAgICAgICAgICAgY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFs c2U7Cj4+Pj4gLQo+Pj4+IC0gICAgICAgICAgICByZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zv cl9wbGFuZShwcmltYXJ5X3N0YXRlLCBOVUxMKTsKPj4+PiAtICAgICAgICAgICAgaWYgKHJldCAh PSAwKQo+Pj4+IC0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+Pj4gLQo+Pj4+IC0g ICAgICAgICAgICBkcm1fYXRvbWljX3NldF9mYl9mb3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgTlVM TCk7Cj4+Pj4gLQo+Pj4+IC0gICAgICAgICAgICBnb3RvIGNvbW1pdDsKPj4+PiAtICAgIH0KPj4+ PiAtCj4+Pj4gLSAgICBXQVJOX09OKCFzZXQtPmZiKTsKPj4+PiAtICAgIFdBUk5fT04oIXNldC0+ bnVtX2Nvbm5lY3RvcnMpOwo+Pj4+IC0KPj4+PiAtICAgIHJldCA9IGRybV9hdG9taWNfc2V0X21v ZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgc2V0LT5tb2RlKTsKPj4+PiAtICAgIGlmIChyZXQgIT0g MCkKPj4+PiAtICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+PiAtCj4+Pj4gLSAgICBjcnRjX3N0 YXRlLT5hY3RpdmUgPSB0cnVlOwo+Pj4+IC0KPj4+PiAtICAgIHJldCA9IGRybV9hdG9taWNfc2V0 X2NydGNfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIGNydGMpOwo+Pj4+IC0gICAgaWYgKHJldCAh PSAwKQo+Pj4+IC0gICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4+IC0KPj4+PiAtICAgIGRybV9t b2RlX2dldF9odl90aW1pbmcoc2V0LT5tb2RlLCAmaGRpc3BsYXksICZ2ZGlzcGxheSk7Cj4+Pj4g LQo+Pj4+IC0gICAgZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIHNl dC0+ZmIpOwo+Pj4+IC0gICAgcHJpbWFyeV9zdGF0ZS0+Y3J0Y194ID0gMDsKPj4+PiAtICAgIHBy aW1hcnlfc3RhdGUtPmNydGNfeSA9IDA7Cj4+Pj4gLSAgICBwcmltYXJ5X3N0YXRlLT5jcnRjX3cg PSBoZGlzcGxheTsKPj4+PiAtICAgIHByaW1hcnlfc3RhdGUtPmNydGNfaCA9IHZkaXNwbGF5Owo+ Pj4+IC0gICAgcHJpbWFyeV9zdGF0ZS0+c3JjX3ggPSBzZXQtPnggPDwgMTY7Cj4+Pj4gLSAgICBw cmltYXJ5X3N0YXRlLT5zcmNfeSA9IHNldC0+eSA8PCAxNjsKPj4+PiAtICAgIGlmIChkcm1fcm90 YXRpb25fOTBfb3JfMjcwKHByaW1hcnlfc3RhdGUtPnJvdGF0aW9uKSkgewo+Pj4+IC0gICAgICAg ICAgICBwcmltYXJ5X3N0YXRlLT5zcmNfdyA9IHZkaXNwbGF5IDw8IDE2Owo+Pj4+IC0gICAgICAg ICAgICBwcmltYXJ5X3N0YXRlLT5zcmNfaCA9IGhkaXNwbGF5IDw8IDE2Owo+Pj4+IC0gICAgfSBl bHNlIHsKPj4+PiAtICAgICAgICAgICAgcHJpbWFyeV9zdGF0ZS0+c3JjX3cgPSBoZGlzcGxheSA8 PCAxNjsKPj4+PiAtICAgICAgICAgICAgcHJpbWFyeV9zdGF0ZS0+c3JjX2ggPSB2ZGlzcGxheSA8 PCAxNjsKPj4+PiAtICAgIH0KPj4+PiAtCj4+Pj4gLWNvbW1pdDoKPj4+PiAtICAgIHJldCA9IHVw ZGF0ZV9vdXRwdXRfc3RhdGUoc3RhdGUsIHNldCk7Cj4+Pj4gLSAgICBpZiAocmV0KQo+Pj4+IC0g ICAgICAgICAgICByZXR1cm4gcmV0Owo+Pj4+IC0KPj4+PiAtICAgIHJldHVybiAwOwo+Pj4+IC19 Cj4+Pj4gLQo+Pj4+ICBzdGF0aWMgaW50IF9fZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgsCj4+Pj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2xlYW5fb2xkX2ZicykK Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFsLmggYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaAo+Pj4+IGluZGV4IDIxNmYyYTllZTNk NC4uMjJhNjNhNTQ0ZWM3IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0 Y19pbnRlcm5hbC5oCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFs LmgKPj4+PiBAQCAtMjA3LDYgKzIwNywxMSBAQCBzdHJ1Y3QgZHJtX21pbm9yOwo+Pj4+ICBpbnQg ZHJtX2F0b21pY19kZWJ1Z2ZzX2luaXQoc3RydWN0IGRybV9taW5vciAqbWlub3IpOwo+Pj4+ICAj ZW5kaWYKPj4+Pgo+Pj4+ICtpbnQgX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+Pj4+ICtpbnQgX19k cm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKPj4+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSk7Cj4+Pj4gKwo+Pj4+ICB2b2lkIGRybV9hdG9taWNfcHJpbnRfc3RhdGUoY29uc3Qg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPj4+Pgo+Pj4+ICAvKiBkcm1fYXRvbWlj X3VhcGkuYyAqLwo+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBl ci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+Pj4+IGluZGV4IDU4MjE0YmUz YmYzZC4uYmY0ZTA3MTQxZDgxIDEwMDY0NAo+Pj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmgKPj4+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4+ Pj4gQEAgLTExNywxMiArMTE3LDggQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9wbGFu ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKPj4+PiAgaW50IGRy bV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9tb2Rlc2V0X2Fj cXVpcmVfY3R4ICpjdHgpOwo+Pj4+IC1pbnQgX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+Pj4+IC0gICAgICAgICAgICBzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4+Pj4gIGludCBkcm1fYXRvbWljX2hlbHBlcl9z ZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCwKPj4+PiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7Cj4+Pj4g LWludCBfX2RybV9hdG9taWNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAq c2V0LAo+Pj4+IC0gICAgICAgICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ Pj4+Cj4+Pj4gIGludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJt X21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7Cj4+Pj4gLS0KPj4+PiAyLjIwLjEKPj4+Pgo+Pj4+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK Pj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo+Pj4KPiAKPiAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVs