From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 68AC36E24E for ; Mon, 19 Nov 2018 19:59:23 +0000 (UTC) References: <20181119155541.3242-1-andi.shyti@intel.com> <20181119155541.3242-3-andi.shyti@intel.com> From: Tvrtko Ursulin Message-ID: <67369407-e0f6-e8e6-b821-16f22038bdc7@linux.intel.com> Date: Mon, 19 Nov 2018 19:59:19 +0000 MIME-Version: 1.0 In-Reply-To: <20181119155541.3242-3-andi.shyti@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [RFC 2/2] lib: implement new engine discovery interface List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Andi Shyti , IGT dev Cc: Andi Shyti , Tvrtko Ursulin List-ID: Ck9uIDE5LzExLzIwMTggMTU6NTUsIEFuZGkgU2h5dGkgd3JvdGU6Cj4gS2VybmVsIGNvbW1pdHM6 Cj4gCj4gWzFdIGFlOGY0NTQ0ZGQ4ZiAoImRybS9pOTE1OiBFbmdpbmUgZGlzY292ZXJ5IHF1ZXJ5 IikKPiBbMl0gMzFlN2QzNTY2N2EwICgiZHJtL2k5MTU6IEFsbG93IGEgY29udGV4dCB0byBkZWZp bmUgaXRzIHNldCBvZiBlbmdpbmVzIikKPiAKPiBmcm9tIFsqXSByZXBvc2l0b3J5LCBpbXBsZW1l bnQgYSBuZXcgd2F5IHVhcGkgZm9yIGVuZ2luZQo+IGRpc2NvdmVyeSB0aGF0IGNvbnNpc3QgaW4g Zmlyc3QgY291cGxpbmcgY29udGV4dCB3aXRoIGVuZ2luZSBbMl0KPiBhbmQgdGhlbiBxdWVyeSB0 aGUgZW5naW5lcyB0aHJvdWdoIGEgc3BlY2lmaWMgc3RydWN0dXJlIFsxXS4KPiAKPiBJbiBpZ3Qg dGhlIGNsYXNzaWMgd2F5IGZvciBkaXNjb3ZlcmluZyBlbmdpbmVzIGlzIGRvbmUgdHJob3VnaAo+ IHRoZSBmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoKSBtYWNybywgdGhhdCBpcyByZXBsYWNlZCBi eSB0aGUKPiBuZXcgZm9yX2VhY2hfZW5naW5lX2N0eCgpLgoKTXkgaWRlYSB3YXMgdGhhdCB3ZSBt aWdyYXRlIGZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZSB0byB0aGlzIG5ldyBzY2hlbWUuCgpBcyBh biBlYXN5IHN0YXJ0aW5nIHBvaW50IEkgd2FzIHRoaW5raW5nIHRvIGtlZXAgdGhlIGN1cnJlbnQg CmZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZSBhcyBpcywgYW5kIGp1c3QgYWRkIG5ldyAKZm9yX2Vh Y2hfcGh5c2ljYWxfZW5naW5lX25ldyBhbmQgbWlncmF0ZSBvbmUgdGVzdCB0byBpdCBhcyBhIGRl bW8uCgpUaGVuIHdoZW4gdGhpcyBwYXJ0IGlzIHJldmlld2VkLCBhcyBhIHNlY29uZCBzdGVwIHdl IGNvbnZlcnQgdGhlIHJlc3QgCmFuZCByZW5hbWUgdGhlIG1hY3JvIHN0cmlwcGluZyB0aGUgX25l dyBzdWZmaXggYW5kIG51a2luZyB0aGUgb2xkIG9uZS4KCldpdGggcmVnYXJkcyB0byBpbXBsZW1l bnRhdGlvbiBkZXRhaWxzIEkgd2FzIHRoaW5raW5nIGFsb25nIHRoZXNlIGxpbmVzOgoKT24gZmly c3QgaW52b2NhdGlvbiBmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmVfbmV3IGluaXRpYWxpemVzIHNv bWUgaGlkZGVuIApkYXRhIHN0b3JlZCBpbiBvbmUgb3IgbW9yZSBnbG9iYWxzICh3aGljaCB3aWxs IGxpdmUgaW4gaWd0X2d0LmMpLgoKVGhpcyB3b3VsZCBxdWVyeSB0aGUgZW5naW5lcyBhbmQgY3Jl YXRlIGEgY29udGV4dCB3aXRoIGFsbCBlbmdpbmVzIG1hcHBlZC4KCldlIGFsc28gYWRkIGEgaGVs cGVyIHRvIGdldCB0aGlzIGludGVybmFsIGN0eCBpZCB0byB1c2Ugd2l0aGluIApmb3JfZWFjaF9w aHlzaWNhbF9lbmdpbmVfbmV3IGxvb3BzLgoKVGhhdCBzaG91bGQgbWFrZSBpdCBlYXN5IHRvIGNv bnZlcnQgc2ltcGxlIHRlc3RzIG92ZXIgbGlrZToKCiAgIGlndF9zdWJ0ZXN0IHsKICAgCWZvcl9l YWNoX3BoeXNpY2FsX2VuZ2luZV9uZXcoZmQsIGVuZ2luZSkgewogICAJCS4uLgogICAJCWV4ZWNi dWYucnN2ZDEgPSBnZW1fcGh5c2ljYWxfZW5naW5lX2N0eCgpOwogICAJCWV4ZWNidWYuZmxhZ3Mg PSBnZW1fcGh5c2ljYWxfZW5naW5lX2lkeChlbmdpbmUpOwogICAJCWdlbV9leGVjYnVmKGZkLCBl eGVjYnVmKTsKICAgCX0KICAgfQoKV2UgYWxzbyBuZWVkIHRvIHRoaW5rIGFib3V0IHdoYXQga2lu ZCBvZiBoZWxwZXJzIHdvdWxkIGJlIG5lZWRlZCBmb3IgCnRlc3RzIHdoaWNoIHVzZSBmb3JfZWFj aF9waHlzaWNhbF9lbmdpbmUgYW5kIHRoZWlyIG93biBjb250ZXh0cy4gSWYgc3VjaCAKZXhpc3Qs IGFuZCBJIGhhdmVuJ3QgY2hlY2tlZCwgYSBoZWxwZXIgbGlrZSAKZ2VtX3NldHVwX2NvbnRleHRf Zm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lIG9yIHNvbWV0aGluZz8KCmVnOgoKCWlndF9zdWJ0ZXN0 IHsKCQl1bml0MzJfdCB0ZXN0X2N0eDsKCgkJLi4uCgkJZ2VtX2luaXRfY29udGV4dF9mb3JfZWFj aF9waHlzaWNhbF9lbmdpbmUoZmQsIHRlc3RfY3R4KTsKCgkJZm9yX2VhY2hfcGh5c2ljYWxfZW5n aW5lX25ldyhmZCwgZW5naW5lKSB7CgkgIAkJLi4uCgkgIAkJZXhlY2J1Zi5yc3ZkMSA9IHRlc3Rf Y3R4OwoJICAJCWV4ZWNidWYuZmxhZ3MgPSBnZW1fcGh5c2ljYWxfZW5naW5lX2lkeChlbmdpbmUp OwoJICAJCWdlbV9leGVjYnVmKGZkLCBleGVjYnVmKTsKCQl9Cgl9CQkJCgpSZWdhcmRzLAoKVHZy dGtvCgo+IFRoZSBuZXcgZW5naW5lIGRpc2NvdmVyeSBtYWNybyByZXF1aXJlcywgdGhvdWdoLCB0 byBmaXJzdCBiaW5kIGEKPiBjb250ZXh0IHRvIHRoZSBlbmdpbmVzIGFuZCB0aGUgdW5iaW5kIGl0 Ogo+IAo+IEhlcmUncyBhbiBleGFtcGxlIG9mIHVzYWdlOgo+IAo+ICAgIGludCBtYWluKHZvaWQp Cj4gICAgewo+ICAgICAgIGludCBmZDsKPiAgICAgICB1aW50MzJfdCBuLCBjdHhfaWQsIGU7Cj4g Cj4gICAgICAgZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKPiAKPiAgICAgICBp ZihiaW5kX2N0eF90b19lbmdpbmUoZmQsICZuLCAmY3R4X2lkKSkKPiAgICAgICAgICBnb3RvIG91 dDsKPiAKPiAgICAgICBmb3JfZWFjaF9lbmdpbmVfY3R4KGZkLCBuLCBjdHhfaWQsIGUpCj4gICAg ICAgICAgcHJpbnRmKCIlZCBPSzpcbiIsIGUrMSk7Cj4gCj4gICAgICAgdW5iaW5kX2N0eF9mcm9t X2VuZ2luZShmZCwgY3R4X2lkKTsKPiAKPiAgICBvdXQ6Cj4gICAgICAgY2xvc2UoZmQpOwo+IAo+ ICAgICAgIHJldHVybiAwOwo+ICAgIH0KPiAKPiBbKl0gZ2l0Oi8vcGVvcGxlLmZyZWVkZXNrdG9w Lm9yZy9+dHVyc3VsaW4vZHJtLWludGVsCj4gCj4gU2lnbmVkLW9mZi1ieTogQW5kaSBTaHl0aSA8 YW5kaS5zaHl0aUBpbnRlbC5jb20+Cj4gLS0tCj4gICBsaWIvaWd0X2d0LmMgICAgICAgICB8IDg5 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBsaWIvaWd0 X2d0LmggICAgICAgICB8ICA2ICsrKwo+ICAgbGliL2lvY3RsX3dyYXBwZXJzLmMgfCAyNSArKysr KysrKysrKysrCj4gICBsaWIvaW9jdGxfd3JhcHBlcnMuaCB8ICAxICsKPiAgIDQgZmlsZXMgY2hh bmdlZCwgMTIxIGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9ndC5jIGIv bGliL2lndF9ndC5jCj4gaW5kZXggYTIwNjE5MjQuLmJhZmUxZjg2IDEwMDY0NAo+IC0tLSBhL2xp Yi9pZ3RfZ3QuYwo+ICsrKyBiL2xpYi9pZ3RfZ3QuYwo+IEBAIC02NTAsMyArNjUwLDkyIEBAIGJv b2wgZ2VtX3JpbmdfaGFzX3BoeXNpY2FsX2VuZ2luZShpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCj4g ICAKPiAgIAlyZXR1cm4gZ2VtX2hhc19yaW5nKGZkLCByaW5nKTsKPiAgIH0KPiArCj4gK3N0YXRp YyBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2luZm8gKl9fcXVlcnlfZW5naW5lcyhpbnQg ZmQpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9xdWVyeSBxdWVyeTsKPiArCXN0cnVjdCBkcm1f aTkxNV9xdWVyeV9pdGVtIGl0ZW07Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5naW5lX2lu Zm8gKnF1ZXJ5X2VuZ2luZXM7Cj4gKwlzc2l6ZV90IHNpemUgPSBzaXplb2YoKnF1ZXJ5X2VuZ2lu ZXMpICsgMTAgKiBzaXplb2YoKnF1ZXJ5X2VuZ2luZXMtPmVuZ2luZXMpOwo+ICsJaW50IGVycjsK PiArCj4gKwlxdWVyeV9lbmdpbmVzID0gbWFsbG9jKHNpemUpOwo+ICsJaWYgKCFxdWVyeV9lbmdp bmVzKQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiArCW1lbXNldCgmcXVlcnksIDAsIHNpemVvZihx dWVyeSkpOwo+ICsJbWVtc2V0KCZpdGVtLCAwLCBzaXplb2YoaXRlbSkpOwo+ICsJbWVtc2V0KHF1 ZXJ5X2VuZ2luZXMsIDAsIHNpemVvZigqcXVlcnlfZW5naW5lcykpOwo+ICsKPiArCWl0ZW0ucXVl cnlfaWQgPSBEUk1fSTkxNV9RVUVSWV9FTkdJTkVfSU5GTzsKPiArCWl0ZW0ubGVuZ3RoID0gc2l6 ZTsKPiArCWl0ZW0uZmxhZ3MgPSAwOwo+ICsJaXRlbS5kYXRhX3B0ciA9IHRvX3VzZXJfcG9pbnRl cihxdWVyeV9lbmdpbmVzKTsKPiArCj4gKwlxdWVyeS5pdGVtc19wdHIgPSB0b191c2VyX3BvaW50 ZXIoJml0ZW0pOwo+ICsJcXVlcnkubnVtX2l0ZW1zID0gMTsKPiArCj4gKwllcnIgPSBpZ3RfaW9j dGwoZmQsIERSTV9JT0NUTF9JOTE1X1FVRVJZLCAmcXVlcnkpOwo+ICsJaWYgKGVycikgewo+ICsJ CWZyZWUocXVlcnlfZW5naW5lcyk7Cj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwl9Cj4gKwo+ICsJcmV0 dXJuIHF1ZXJ5X2VuZ2luZXM7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgX19iaW5kX2N0eF90b19l bmdpbmUoaW50IGZkLCB1bnNpZ25lZCBjdHhfaWQsCj4gKwkJc3RydWN0IGRybV9pOTE1X3F1ZXJ5 X2VuZ2luZV9pbmZvICpxdWVyeV9lbmdpbmUpCj4gK3sKPiArCWludCBpLCByZXQ7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gY3R4X3BhcmFtOwo+ICsJc3RydWN0IGk5MTVf Y29udGV4dF9wYXJhbV9lbmdpbmVzICpjdHhfZW5naW5lOwo+ICsJc2l6ZV90IHNpemUgPSBzaXpl b2Yoc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzKSArCj4gKwkJICAgICAgcXVlcnlf ZW5naW5lLT5udW1fZW5naW5lcyAqCj4gKwkJICAgICAgc2l6ZW9mKCpjdHhfZW5naW5lLT5jbGFz c19pbnN0YW5jZSk7Cj4gKwo+ICsJY3R4X2VuZ2luZSA9IG1hbGxvYyhzaXplKTsKPiArCWlmICgh Y3R4X2VuZ2luZSkKPiArCQlyZXR1cm4gZXJybm87Cj4gKwo+ICsJY3R4X2VuZ2luZS0+ZXh0ZW5z aW9ucyA9IDA7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgcXVlcnlfZW5naW5lLT5udW1fZW5naW5lczsg aSsrKSB7Cj4gKwkJY3R4X2VuZ2luZS0+Y2xhc3NfaW5zdGFuY2VbaV0uY2xhc3MgPSBxdWVyeV9l bmdpbmUtPmVuZ2luZXNbaV0uY2xhc3M7Cj4gKwkJY3R4X2VuZ2luZS0+Y2xhc3NfaW5zdGFuY2Vb aV0uaW5zdGFuY2UgPSBxdWVyeV9lbmdpbmUtPmVuZ2luZXNbaV0uaW5zdGFuY2U7Cj4gKwl9Cj4g Kwo+ICsJY3R4X3BhcmFtLmN0eF9pZCA9IGN0eF9pZDsKPiArCWN0eF9wYXJhbS5zaXplID0gc2l6 ZTsKPiArCWN0eF9wYXJhbS5wYXJhbSA9IEk5MTVfQ09OVEVYVF9QQVJBTV9FTkdJTkVTOwo+ICsJ Y3R4X3BhcmFtLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKGN0eF9lbmdpbmUpOwo+ICsKPiArCXJl dCA9IGlndF9pb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfU0VUUEFSQU0sICZj dHhfcGFyYW0pOwo+ICsJZnJlZShjdHhfZW5naW5lKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9 Cj4gKwo+ICtpbnQgYmluZF9jdHhfdG9fZW5naW5lKGludCBmZCwgdWludDMyX3QgKm4sIHVpbnQz Ml90ICpjdHhfaWQpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9lbmdpbmVfaW5mbyAq cXVlcnlfZW5naW5lOwo+ICsJaW50IHJldDsKPiArCj4gKwlxdWVyeV9lbmdpbmUgPSBfX3F1ZXJ5 X2VuZ2luZXMoZmQpOwo+ICsJaWYgKCFxdWVyeV9lbmdpbmUpCj4gKwkJcmV0dXJuIC0xOwo+ICsK PiArCSpjdHhfaWQgPSBnZW1fY29udGV4dF9jcmVhdGUoZmQpOwo+ICsJcmV0ID0gX19iaW5kX2N0 eF90b19lbmdpbmUoZmQsICpjdHhfaWQsIHF1ZXJ5X2VuZ2luZSk7Cj4gKwlpZiAocmV0KQo+ICsJ CXJldHVybiByZXQ7Cj4gKwo+ICsJKm4gPSBxdWVyeV9lbmdpbmUtPm51bV9lbmdpbmVzOwo+ICsJ ZnJlZShxdWVyeV9lbmdpbmUpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICt2b2lkIHVu YmluZF9jdHhfZnJvbV9lbmdpbmUoaW50IGZkLCB1aW50MzJfdCBjdHhfaWQpCj4gK3sKPiArCWdl bV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eF9pZCk7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvbGliL2ln dF9ndC5oIGIvbGliL2lndF9ndC5oCj4gaW5kZXggNTRlOTVkYTkuLmQ4OTM3MzE4IDEwMDY0NAo+ IC0tLSBhL2xpYi9pZ3RfZ3QuaAo+ICsrKyBiL2xpYi9pZ3RfZ3QuaAo+IEBAIC04Niw4ICs4Niwx NCBAQCBleHRlcm4gY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUgewo+ICAgCSAg ICAgZV9fKyspIFwKPiAgIAkJZm9yX2lmIChnZW1fcmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZk X18sIGZsYWdzX18gPSBlX18tPmV4ZWNfaWQgfCBlX18tPmZsYWdzKSkKPiAgIAo+ICsjZGVmaW5l IGZvcl9lYWNoX2VuZ2luZV9jdHgoZmQsIG4sIGlkLCBlKSBcCj4gKwlmb3IgKGUgPSAwOyBlIDwg bjsgZSsrKSBcCj4gKwkJZm9yX2lmKGdlbV9oYXNfcmluZ19jdHgoZmQsIGUgKyAxLCBpZCkpCj4g Kwo+ICAgYm9vbCBnZW1fcmluZ19pc19waHlzaWNhbF9lbmdpbmUoaW50IGZkLCB1bnNpZ25lZCBp bnQgcmluZyk7Cj4gICBib29sIGdlbV9yaW5nX2hhc19waHlzaWNhbF9lbmdpbmUoaW50IGZkLCB1 bnNpZ25lZCBpbnQgcmluZyk7Cj4gK2ludCBiaW5kX2N0eF90b19lbmdpbmUoaW50IGZkLCB1aW50 MzJfdCAqbiwgdWludDMyX3QgKmN0eF9pZCk7Cj4gK3ZvaWQgdW5iaW5kX2N0eF9mcm9tX2VuZ2lu ZShpbnQgZmQsIHVpbnQzMl90IGN0eF9pZCk7Cj4gICAKPiAgIGJvb2wgZ2VtX2Nhbl9zdG9yZV9k d29yZChpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUpOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2xp Yi9pb2N0bF93cmFwcGVycy5jIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKPiBpbmRleCA5ZjI1NTUw OC4uMjExNWJhZDEgMTAwNjQ0Cj4gLS0tIGEvbGliL2lvY3RsX3dyYXBwZXJzLmMKPiArKysgYi9s aWIvaW9jdGxfd3JhcHBlcnMuYwo+IEBAIC0xNDcyLDYgKzE0NzIsMzEgQEAgYm9vbCBnZW1faGFz X3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nKQo+ICAgCXJldHVybiBfX2dlbV9leGVjYnVmKGZk LCAmZXhlY2J1ZikgPT0gLUVOT0VOVDsKPiAgIH0KPiAgIAo+ICtib29sIGdlbV9oYXNfcmluZ19j dHgoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBjdHhfaWQpCj4gK3sKPiArCXN0cnVj dCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKPiArCXN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY19vYmplY3QyIGV4ZWM7Cj4gKwl1aW50MzJfdCBiYmVuZCA9IE1JX0JBVENIX0JVRkZF Ul9FTkQ7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCW1lbXNldCgmZXhlY2J1ZiwgMCwgc2l6ZW9mKGV4 ZWNidWYpKTsKPiArCW1lbXNldCgmZXhlYywgMCwgc2l6ZW9mKGV4ZWMpKTsKPiArCj4gKwlleGVj LmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwo+ICsJZ2VtX3dyaXRlKGZkLCBleGVjLmhh bmRsZSwgMCwgJmJiZW5kLCBzaXplb2YoYmJlbmQpKTsKPiArCj4gKwlleGVjYnVmLmJ1ZmZlcnNf cHRyID0gdG9fdXNlcl9wb2ludGVyKCZleGVjKTsKPiArCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0g MTsKPiArCWV4ZWNidWYuZmxhZ3MgPSByaW5nOwo+ICsJaTkxNV9leGVjYnVmZmVyMl9zZXRfY29u dGV4dF9pZChleGVjYnVmLCBjdHhfaWQpOwo+ICsKPiArCXJldCA9IF9fZ2VtX2V4ZWNidWYoZmQs ICZleGVjYnVmKTsKPiArCj4gKwlnZW1fY2xvc2UoZmQsIGV4ZWMuaGFuZGxlKTsKPiArCj4gKwly ZXR1cm4gIXJldDsKPiArfQo+ICsKPiAgIC8qKgo+ICAgICogZ2VtX3JlcXVpcmVfcmluZzoKPiAg ICAqIEBmZDogb3BlbiBpOTE1IGRybSBmaWxlIGRlc2NyaXB0b3IKPiBkaWZmIC0tZ2l0IGEvbGli L2lvY3RsX3dyYXBwZXJzLmggYi9saWIvaW9jdGxfd3JhcHBlcnMuaAo+IGluZGV4IGIyMmIzNmIw Li5kNGFkZjkxMiAxMDA2NDQKPiAtLS0gYS9saWIvaW9jdGxfd3JhcHBlcnMuaAo+ICsrKyBiL2xp Yi9pb2N0bF93cmFwcGVycy5oCj4gQEAgLTE2NSw2ICsxNjUsNyBAQCBib29sIGdlbV9oYXNfZXhl Y19mZW5jZShpbnQgZmQpOwo+ICAgLyogY2hlY2sgZnVuY3Rpb25zIHdoaWNoIGF1dG8tc2tpcCB0 ZXN0cyBieSBjYWxsaW5nIGlndF9za2lwKCkgKi8KPiAgIHZvaWQgZ2VtX3JlcXVpcmVfY2FjaGlu ZyhpbnQgZmQpOwo+ICAgYm9vbCBnZW1faGFzX3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nKTsK PiArYm9vbCBnZW1faGFzX3JpbmdfY3R4KGludCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQg Y3R4X2lkKTsKPiAgIHZvaWQgZ2VtX3JlcXVpcmVfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcp Owo+ICAgYm9vbCBnZW1faGFzX21vY3NfcmVnaXN0ZXJzKGludCBmZCk7Cj4gICB2b2lkIGdlbV9y ZXF1aXJlX21vY3NfcmVnaXN0ZXJzKGludCBmZCk7Cj4gCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaWd0LWRldgo=