From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 21ACB898ED for ; Thu, 11 Apr 2019 16:04:02 +0000 (UTC) References: <20190408161533.2421-1-andi.shyti@intel.com> <20190408161533.2421-3-andi.shyti@intel.com> From: Tvrtko Ursulin Message-ID: <8a96c375-cf44-81bb-66a9-e00f53e01493@linux.intel.com> Date: Thu, 11 Apr 2019 17:03:58 +0100 MIME-Version: 1.0 In-Reply-To: <20190408161533.2421-3-andi.shyti@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH v19 2/6] lib/i915: add gem_engine_topology library and for_each loop definition 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 List-ID: Ck9uIDA4LzA0LzIwMTkgMTc6MTUsIEFuZGkgU2h5dGkgd3JvdGU6Cj4gVGhlIGdlbV9lbmdpbmVf dG9wb2xvZ3kgbGlicmFyeSBpcyBhIHNldCBvZiBmdW5jdGlvbnMgdGhhdAo+IGludGVyZmFjZSB3 aXRoIHRoZSBxdWVyeSBhbmQgZ2V0cGFyYW0vc2V0cGFyYW0gaW9jdGxzLgo+IAo+IFRoZSBsaWJy YXJ5J3MgYWNjZXNzIHBvaW50IGlzIHRoZSAnaW50ZWxfaW5pdF9lbmdpbmVfbGlzdCgpJwo+IGZ1 bmN0aW9uIHRoYXQsIGV2ZXJ5dGltZSBpcyBjYWxsZWQsIGdlbmVyYXRlcyB0aGUgbGlzdCBvZiBh Y3RpdmUKPiBlbmdpbmVzIGFuZCByZXR1cm5zIHRoZW0gaW4gYSAnc3RydWN0IGludGVsX2VuZ2lu ZV9kYXRhJy4gVGhlCj4gc3RydWN0dXJlIGNvbnRhaW5zIG9ubHkgdGhlIGVuZ2luZXMgdGhhdCBh cmUgYWN0aXZlbHkgcHJlc2VudCBpbgo+IHRoZSBHUFUuCj4gCj4gVGhlIGZ1bmN0aW9uIGNhbiB3 b3JrIGluIGJvdGggdGhlIGNhc2VzIHRoYXQgdGhlIHF1ZXJ5IGFuZAo+IGdldHBhcmFtIGlvY3Rs cyBhcmUgaW1wbGVtZW50ZWQgb3Igbm90IGJ5IHRoZSBydW5uaW5nIGtlcm5lbC4gSW4KPiBjYXNl IHRoZXkgYXJlIGltcGxlbWVudGVkLCBhIHF1ZXJ5IGlzIG1hZGUgdG8gdGhlIGRyaXZlciB0byBm ZXRjaAo+IHRoZSBsaXN0IG9mIGFjdGl2ZSBlbmdpbmVzLiBJbiBjYXNlIHRoZXkgYXJlIG5vdCBp bXBsZW1lbnRlZCwgdGhlCj4gbGlzdCBpcyB0YWtlbiBmcm9tIHRoZSAnaW50ZWxfZXhlY3V0aW9u X2VuZ2luZXMyJyBhcnJheSBhbmQKPiBzdG9yZWQgb25seSBhZnRlciBjaGVja2luZyB0aGVpciBw cmVzZW5jZS4KPiAKPiBUaGUgZ2VtX2VuZ2luZV90b3BvbG9neSBsaWJyYXJ5IHByb3ZpZGVzIHNv bWUgaXRlcmF0aW9uIGhlbHBlcnM6Cj4gCj4gICAtIGludGVsX2dldF9jdXJyZW50X2VuZ2luZSgp OiBwcm92aWRlcyB0aGUgY3VycmVudCBlbmdpbmUgaW4gdGhlCj4gICAgIGl0ZXJhdGlvbi4KPiAK PiAgIC0gaW50ZWxfZ2V0X2N1cnJlbnRfcGh5c2ljYWxfZW5naW5lKCk6IHByb3ZpZGVzIHRoZSBj dXJyZW50Cj4gICAgIHBoeXNpY2FsIGVuZ2luZSwgaWYgdGhlIGN1cnJlbnQgZW5naW5lIGlzIGEg dmlydHVhbCBlbmdpbmUsCj4gICAgIGl0IG1vdmVzIGZvcndhcmQgdW50aWwgaXQgZmluZHMgYSBw aHlzaWNhbCBlbmdpbmUuCj4gCj4gICAtIGludGVsX25leHRfZW5naW5lKCkgaXQganVzdCBpbmNy ZW1lbnRzIHRoZSBjb3VudGVyIHNvIHRoYXQgaXQKPiAgICAgcG9pbnRzIHRvIHRoZSBuZXh0IGVu Z2luZS4KPiAKPiBFeHRlbmQgdGhlICdmb3JfZWFjaF9lbmdpbmVfY2xhc3NfaW5zdGFuY2UnIHNv IHRoYXQgaXQgY2FuIGxvb3AKPiB1c2luZyB0aGUgbmV3ICdpbnRlbF9pbml0X2VuZ2luZV9saXN0 KCknIGFuZCByZW5hbWUgaXQgdG8KPiAnZm9yX2VhY2hfY29udGV4dF9lbmdpbmUnLgo+IAo+IE1v dmUgJ19fZm9yX2VhY2hfZW5naW5lX2NsYXNzX2luc3RhbmNlJyB0byBnZW1fZW5naW5lX3RvcG9s b2d5LmgKPiBhbmQgcmVuYW1lIGl0IHRvICdfX2Zvcl9lYWNoX3N0YXRpY19lbmdpbmUnLgo+IAo+ IFVwZGF0ZSBhY2NvcmRpbmdseSB0ZXN0cy9wZXJmX3BtdS5jIHRvIHVzZSBjb3JyZWN0bHkgdGhl IG5ldwo+IGZvcl9lYWNoIGxvb3BzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFuZGkgU2h5dGkgPGFu ZGkuc2h5dGlAaW50ZWwuY29tPgo+IC0tLQo+ICAgbGliL01ha2VmaWxlLnNvdXJjZXMgICAgICAg ICAgIHwgICAyICsKPiAgIGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYyB8IDI4MSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGxpYi9pOTE1L2dlbV9lbmdpbmVfdG9w b2xvZ3kuaCB8ICA3OCArKysrKysrKysKPiAgIGxpYi9pZ3QuaCAgICAgICAgICAgICAgICAgICAg ICB8ICAgMSArCj4gICBsaWIvaWd0X2d0LmggICAgICAgICAgICAgICAgICAgfCAgIDIgKwo+ICAg bGliL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAxICsKPiAgIDYgZmlsZXMgY2hhbmdl ZCwgMzY1IGluc2VydGlvbnMoKykKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvaTkxNS9nZW1f ZW5naW5lX3RvcG9sb2d5LmMKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvaTkxNS9nZW1fZW5n aW5lX3RvcG9sb2d5LmgKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxlLnNvdXJjZXMgYi9s aWIvTWFrZWZpbGUuc291cmNlcwo+IGluZGV4IGUwMDM0N2Y5NDVjNS4uNDEzMzFjMmYyYjgwIDEw MDY0NAo+IC0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCj4gKysrIGIvbGliL01ha2VmaWxlLnNv dXJjZXMKPiBAQCAtMTMsNiArMTMsOCBAQCBsaWJfc291cmNlX2xpc3QgPQkgCVwKPiAgIAlpOTE1 L2dlbV9yaW5nLmMJXAo+ICAgCWk5MTUvZ2VtX21tYW4uYwlcCj4gICAJaTkxNS9nZW1fbW1hbi5o CVwKPiArCWk5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jCVwKPiArCWk5MTUvZ2VtX2VuZ2luZV90 b3BvbG9neS5oCVwKPiAgIAlpOTE1XzNkLmgJCVwKPiAgIAlpOTE1X3JlZy5oCQlcCj4gICAJaTkx NV9wY2lpZHMuaAkJXAo+IGRpZmYgLS1naXQgYS9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5 LmMgYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uMDZmNTM4MzcyYTRkCj4gLS0tIC9kZXYvbnVsbAo+ICsr KyBiL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYwo+IEBAIC0wLDAgKzEsMjgxIEBACj4g Ky8qCj4gKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCj4gKyAqCj4gKyAq IFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVy c29uIG9idGFpbmluZyBhCj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gKyAqIHRvIGRlYWwgaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0 YXRpb24KPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxp c2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+ICsgKiBTb2Z0 d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBw ZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUKPiArICogU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gKyAqIElN UExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVS Q0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiArICogVEhFIEFVVEhPUlMgT1Ig Q09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RI RVIKPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ICsgKiBJ TiBUSEUgU09GVFdBUkUuCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImRybXRlc3QuaCIKPiArI2lu Y2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiCj4gKwo+ICsjaW5jbHVkZSAiaTkxNS9nZW1fZW5naW5l X3RvcG9sb2d5LmgiCj4gKwo+ICtzdGF0aWMgaW50IF9fZ2VtX3F1ZXJ5KGludCBmZCwgc3RydWN0 IGRybV9pOTE1X3F1ZXJ5ICpxKQo+ICt7Cj4gKwlpbnQgZXJyID0gMDsKPiArCj4gKwlpZiAoaWd0 X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9RVUVSWSwgcSkpCj4gKwkJZXJyID0gLWVycm5vOwo+ ICsKPiArCWVycm5vID0gMDsKPiArCXJldHVybiBlcnI7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lk IGdlbV9xdWVyeShpbnQgZmQsIHN0cnVjdCBkcm1faTkxNV9xdWVyeSAqcSkKPiArewo+ICsJaWd0 X2Fzc2VydF9lcShfX2dlbV9xdWVyeShmZCwgcSksIDApOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBxdWVyeV9lbmdpbmVzKGludCBmZCwKPiArCQkJICBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5n aW5lX2luZm8gKnF1ZXJ5X2VuZ2luZXMsCj4gKwkJCSAgaW50IGxlbmd0aCkKPiArewo+ICsJc3Ry dWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9IHsgfTsKPiArCXN0cnVjdCBkcm1faTkxNV9x dWVyeSBxdWVyeSA9IHsgfTsKPiArCj4gKwlpdGVtLnF1ZXJ5X2lkID0gRFJNX0k5MTVfUVVFUllf RU5HSU5FX0lORk87Cj4gKwlxdWVyeS5pdGVtc19wdHIgPSB0b191c2VyX3BvaW50ZXIoJml0ZW0p Owo+ICsJcXVlcnkubnVtX2l0ZW1zID0gMTsKPiArCWl0ZW0ubGVuZ3RoID0gbGVuZ3RoOwo+ICsK PiArCWl0ZW0uZGF0YV9wdHIgPSB0b191c2VyX3BvaW50ZXIocXVlcnlfZW5naW5lcyk7Cj4gKwo+ ICsJZ2VtX3F1ZXJ5KGZkLCAmcXVlcnkpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjdHhfbWFw X2VuZ2luZXMoaW50IGZkLCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgKmVkLAo+ICsJCQkgICAg c3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtICpwYXJhbSkKPiArewo+ICsJc3RydWN0 IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzICplbmdpbmVzID0KPiArCQkJKHN0cnVjdCBpOTE1 X2NvbnRleHRfcGFyYW1fZW5naW5lcyAqKSBwYXJhbS0+dmFsdWU7Cj4gKwlpbnQgaSA9IDA7Cj4g Kwo+ICsJZm9yICh0eXBlb2YoZW5naW5lcy0+Y2xhc3NfaW5zdGFuY2VbMF0pICpwID0KPiArCSAg ICAgJmVuZ2luZXMtPmNsYXNzX2luc3RhbmNlWzBdOwo+ICsJICAgICBpIDwgZWQtPm5lbmdpbmVz OyBpKyssIHArKykgewo+ICsJCXAtPmVuZ2luZV9jbGFzcyA9IGVkLT5lbmdpbmVzW2ldLmNsYXNz Owo+ICsJCXAtPmVuZ2luZV9pbnN0YW5jZSA9IGVkLT5lbmdpbmVzW2ldLmluc3RhbmNlOwo+ICsJ fQo+ICsKPiArCXBhcmFtLT5zaXplID0gb2Zmc2V0b2YodHlwZW9mKCplbmdpbmVzKSwgY2xhc3Nf aW5zdGFuY2VbaV0pOwo+ICsJZW5naW5lcy0+ZXh0ZW5zaW9ucyA9IDA7Cj4gKwo+ICsJZ2VtX2Nv bnRleHRfc2V0X3BhcmFtKGZkLCBwYXJhbSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGluaXRf ZW5naW5lKHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTIsCj4gKwkJCWludCBjbGFz cywgaW50IGluc3RhbmNlLCB1aW50NjRfdCBmbGFncykKPiArewo+ICsJY29uc3Qgc3RydWN0IGlu dGVsX2V4ZWN1dGlvbl9lbmdpbmUyICpfX2UyOwo+ICsJc3RhdGljIGNvbnN0IGNoYXIgKnVua25v d25fbmFtZSA9ICJ1bmtub3duIiwKPiArCQkJICAqdmlydHVhbF9uYW1lID0gInZpcnR1YWwiOwo+ ICsKPiArCWUyLT5jbGFzcyAgICA9IGNsYXNzOwo+ICsJZTItPmluc3RhbmNlID0gaW5zdGFuY2U7 Cj4gKwllMi0+ZmxhZ3MgICAgPSBmbGFnczsKPiArCj4gKwkvKiBlbmdpbmUgaXMgYSB2aXJ0dWFs IGVuZ2luZSAqLwo+ICsJaWYgKGNsYXNzID09IEk5MTVfRU5HSU5FX0NMQVNTX0lOVkFMSUQpIHsK PiArCQllMi0+bmFtZSA9IHZpcnR1YWxfbmFtZTsKPiArCQllMi0+aXNfdmlydHVhbCA9IHRydWU7 Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCV9fZm9yX2VhY2hfc3RhdGljX2VuZ2luZShfX2Uy KQo+ICsJCWlmIChfX2UyLT5jbGFzcyA9PSBjbGFzcyAmJiBfX2UyLT5pbnN0YW5jZSA9PSBpbnN0 YW5jZSkKPiArCQkJYnJlYWs7Cj4gKwo+ICsJaWYgKF9fZTItPm5hbWUpIHsKPiArCQllMi0+bmFt ZSA9IF9fZTItPm5hbWU7Cj4gKwl9IGVsc2Ugewo+ICsJCWlndF93YXJuKCJmb3VuZCB1bmtub3du IGVuZ2luZSAoJWQsICVkKSIsIGNsYXNzLCBpbnN0YW5jZSk7Cj4gKwkJZTItPm5hbWUgPSB1bmtu b3duX25hbWU7Cj4gKwl9Cj4gKwo+ICsJLyoganVzdCB0byByZW1hcmsgaXQgKi8KPiArCWUyLT5p c192aXJ0dWFsID0gZmFsc2U7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHF1ZXJ5X2VuZ2luZV9s aXN0KGludCBmZCwgc3RydWN0IGludGVsX2VuZ2luZV9kYXRhICplZCkKPiArewo+ICsJdWludDhf dCBidWZmW1NJWkVPRl9RVUVSWV0gPSB7IH07Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5n aW5lX2luZm8gKnF1ZXJ5X2VuZ2luZSA9Cj4gKwkJCShzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfZW5n aW5lX2luZm8gKikgYnVmZjsKPiArCWludCBpOwo+ICsKPiArCXF1ZXJ5X2VuZ2luZXMoZmQsIHF1 ZXJ5X2VuZ2luZSwgU0laRU9GX1FVRVJZKTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgcXVlcnlf ZW5naW5lLT5udW1fZW5naW5lczsgaSsrKQo+ICsJCWluaXRfZW5naW5lKCZlZC0+ZW5naW5lc1tp XSwKPiArCQkJICAgIHF1ZXJ5X2VuZ2luZS0+ZW5naW5lc1tpXS5lbmdpbmVfY2xhc3MsCj4gKwkJ CSAgICBxdWVyeV9lbmdpbmUtPmVuZ2luZXNbaV0uZW5naW5lX2luc3RhbmNlLCBpKTsKPiArCj4g KwllZC0+bmVuZ2luZXMgPSBxdWVyeV9lbmdpbmUtPm51bV9lbmdpbmVzOwo+ICt9Cj4gKwo+ICtz dHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIKPiArKmludGVsX2dldF9jdXJyZW50X2VuZ2lu ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgKmVkKQo+ICt7Cj4gKwlpZiAoIWVkLT5uKQo+ICsJ CWVkLT5jdXJyZW50X2VuZ2luZSA9ICZlZC0+ZW5naW5lc1swXTsKPiArCWVsc2UgaWYgKGVkLT5u ID49IGVkLT5uZW5naW5lcykKPiArCQllZC0+Y3VycmVudF9lbmdpbmUgPSBOVUxMOwo+ICsKPiAr CXJldHVybiBlZC0+Y3VycmVudF9lbmdpbmU7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfbmV4dF9l bmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9kYXRhICplZCkKPiArewo+ICsJaWYgKGVkLT5uICsg MSA8IGVkLT5uZW5naW5lcykgewo+ICsJCWVkLT5uKys7CgpUaGlzIGlzIGJyb2tlbiBmb3Igb25l IGVuZ2luZS4gSXQgc2hvdWxkIHJlYWQ6CgoJaWYgKCsrZWQtPm4gPCBlZC0+bmVuZ2luZXMpCgkJ ZWQtPmN1cnJlbnRfZW5naW5lID0gJmVkLT5lbmdpbmVzW2VkLT5uXTsKCWVsc2UKCQllZC0+Y3Vy cmVudF9lbmdpbmUgPSBOVUxMOwoKT3RoZXJ3aXNlIGVkLT5uIGlzIGFsd2F5cyB6ZXJvIGFuZCBp dCBuZXZlciBwcm9ncmVzc2VzLgoKKkhvd2V2ZXIqLi4uIHRoZXJlIGlzIGEgbXlzdGVyeSB0byBz b2x2ZSBpbiB3aHkgd2l0aCB0aGUgYnJva2VuIGNvZGUgaWYgCnlvdSBydW4gZ2VtX3dhaXQgLS1y IGJhc2ljLWJ1c3ktYWxsIHRoZSBsb29wIHN0aWxsIGV4aXRzIChvbiBteSBzeXN0ZW0gCmFmdGVy IDY1IGl0ZXJhdGlvbnMpLgoKT24gdGhlIG90aGVyIGhhbmQgbXkgc3lzdGVtICJwZXJmX3BtdSAt LWxpc3QiIGxvb3BzIGZvcmV2ZXIgYXMgZXhwZWN0ZWQuCgpJIGZlYXIgdGhlcmUgaXMgc29tZSBz dGFjayBjb3JydXB0aW9uIG9yIHNvbWV0aGluZy4gQnV0IFZhbGdyaW5kIGRvZXMgCm5vdCBjYXRj aCBhbnl0aGluZy4KCllvdSBjYW4gY29tbWVudCBvdXQgYWxsIGJ1dCBSQ1MgaW4gdGhlIHN0YXRp YyBlbmdpbmUgbGlzdCBhbmQgdGVzdC4gQW5kIApPRkMgdXNlIGRybS10aXAgc28gbGVnYWN5IHBh dGggcnVucy4KClJlZ2FyZHMsCgpUdnJ0a28KCgo+ICsJCWVkLT5jdXJyZW50X2VuZ2luZSA9ICZl ZC0+ZW5naW5lc1tlZC0+bl07Cj4gKwl9IGVsc2Ugewo+ICsJCWVkLT5jdXJyZW50X2VuZ2luZSA9 IE5VTEw7Cj4gKwl9Cj4gK30KPiArCj4gK3N0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMgo+ ICsqaW50ZWxfZ2V0X2N1cnJlbnRfcGh5c2ljYWxfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVf ZGF0YSAqZWQpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTsKPiAr Cj4gKwlmb3IgKGUgPSBpbnRlbF9nZXRfY3VycmVudF9lbmdpbmUoZWQpOwo+ICsJICAgICBlICYm IGUtPmlzX3ZpcnR1YWw7Cj4gKwkgICAgIGludGVsX25leHRfZW5naW5lKGVkKSkKPiArCQk7Cj4g Kwo+ICsJcmV0dXJuIGU7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgZ2VtX3RvcG9sb2d5X2dldF9w YXJhbShpbnQgZmQsIHVpbnQzMl90IGN0eCwKPiArCQkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9j b250ZXh0X3BhcmFtICpwKQo+ICt7Cj4gKwlpbnQgbmVuZ2luZXM7Cj4gKwlpbnQgcmV0Owo+ICsK PiArCWlmIChpZ3Rfb25seV9saXN0X3N1YnRlc3RzKCkpCj4gKwkJcmV0dXJuIC1FUEVSTTsKPiAr Cj4gKwlyZXQgPSBfX2dlbV9jb250ZXh0X2dldF9wYXJhbShmZCwgcCk7Cj4gKwlpZiAocmV0KQo+ ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJbmVuZ2luZXMgPSBwLT5zaXplID4gc2l6ZW9mKHN0cnVj dCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcykgPwo+ICsJCSAgIChwLT5zaXplIC0gc2l6ZW9m KHN0cnVjdCBpOTE1X2NvbnRleHRfcGFyYW1fZW5naW5lcykpIC8KPiArCQkgICAoMiAqIHNpemVv ZihfX3UxNikpIDoKPiArCQkgICAwOwo+ICsKPiArCWlndF9hc3NlcnRfZihuZW5naW5lcyA8PSBH RU1fTUFYX0VOR0lORVMsICJ1bnN1cHBvcnRlZCBlbmdpbmUgY291bnRcbiIpOwo+ICsKPiArCXJl dHVybiBuZW5naW5lczsKPiArfQo+ICsKPiArc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGludGVs X2luaXRfZW5naW5lX2xpc3QoaW50IGZkLCB1aW50MzJfdCBjdHhfaWQpCj4gK3sKPiArCUk5MTVf REVGSU5FX0NPTlRFWFRfUEFSQU1fRU5HSU5FUyhlbmdpbmVzLCBHRU1fTUFYX0VOR0lORVMpOwo+ ICsJc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIGVuZ2luZV9kYXRhID0geyB9Owo+ICsJc3RydWN0 IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtIHBhcmFtID0gewo+ICsJCS5wYXJhbSA9IEk5MTVf Q09OVEVYVF9QQVJBTV9FTkdJTkVTLAo+ICsJCS5jdHhfaWQgPSBjdHhfaWQsCj4gKwkJLnNpemUg PSBTSVpFT0ZfQ1RYX1BBUkFNLAo+ICsJCS52YWx1ZSA9IHRvX3VzZXJfcG9pbnRlcigmZW5naW5l cyksCj4gKwl9Owo+ICsJaW50IG5lbmdpbmVzID0gZ2VtX3RvcG9sb2d5X2dldF9wYXJhbShmZCwg Y3R4X2lkLCAmcGFyYW0pOwo+ICsJaW50IGk7Cj4gKwo+ICsJaWYgKG5lbmdpbmVzIDwgMCkgewo+ ICsJCS8qIGlmIGtlcm5lbCBkb2VzIG5vdCBzdXBwb3J0IGVuZ2luZS9jb250ZXh0IG1hcHBpbmcg Ki8KPiArCQljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUyOwo+ICsKPiAr CQlpZ3RfZGVidWcoInVzaW5nIHByZS1hbGxvY2F0ZWQgZW5naW5lIGxpc3RcbiIpOwo+ICsKPiAr CQlfX2Zvcl9lYWNoX3N0YXRpY19lbmdpbmUoZTIpIHsKPiArCQkJc3RydWN0IGludGVsX2V4ZWN1 dGlvbl9lbmdpbmUyICpfX2UyID0KPiArCQkJCSZlbmdpbmVfZGF0YS5lbmdpbmVzW2VuZ2luZV9k YXRhLm5lbmdpbmVzXTsKPiArCj4gKwkJCWlmICghaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cygpKSB7 Cj4gKwkJCQlfX2UyLT5mbGFncyA9IGdlbV9jbGFzc19pbnN0YW5jZV90b19lYl9mbGFncyhmZCwK PiArCQkJCQkJZTItPmNsYXNzLCBlMi0+aW5zdGFuY2UpOwo+ICsKPiArCQkJCWlmICghZ2VtX2hh c19yaW5nKGZkLCBfX2UyLT5mbGFncykpCj4gKwkJCQkJY29udGludWU7Cj4gKwkJCX0KPiArCj4g KwkJCV9fZTItPm5hbWUgICAgICAgPSBlMi0+bmFtZTsKPiArCQkJX19lMi0+aW5zdGFuY2UgICA9 IGUyLT5pbnN0YW5jZTsKPiArCQkJX19lMi0+Y2xhc3MgICAgICA9IGUyLT5jbGFzczsKPiArCQkJ X19lMi0+aXNfdmlydHVhbCA9IGZhbHNlOwo+ICsKPiArCQkJZW5naW5lX2RhdGEubmVuZ2luZXMr KzsKPiArCQl9Cj4gKwkJcmV0dXJuIGVuZ2luZV9kYXRhOwo+ICsJfQo+ICsKPiArCWlmICghcGFy YW0uc2l6ZSkgewo+ICsJCS8qIGVsc2UgaWYgY29udGV4dCBkb2Vzbid0IGhhdmUgbWFwcGVkIGVu Z2luZXMgKi8KPiArCQlxdWVyeV9lbmdpbmVfbGlzdChmZCwgJmVuZ2luZV9kYXRhKTsKPiArCQlj dHhfbWFwX2VuZ2luZXMoZmQsICZlbmdpbmVfZGF0YSwgJnBhcmFtKTsKPiArCj4gKwl9IGVsc2Ug ewo+ICsJCS8qIGNvbnRleHQgaGFzIGEgbGlzdCBvZiBtYXBwZWQgZW5naW5lcyAqLwo+ICsKPiAr CQlmb3IgKGkgPSAwOyBpIDwgbmVuZ2luZXM7IGkrKykKPiArCQkJaW5pdF9lbmdpbmUoJmVuZ2lu ZV9kYXRhLmVuZ2luZXNbaV0sCj4gKwkJCQkgICAgZW5naW5lcy5jbGFzc19pbnN0YW5jZVtpXS5l bmdpbmVfY2xhc3MsCj4gKwkJCQkgICAgZW5naW5lcy5jbGFzc19pbnN0YW5jZVtpXS5lbmdpbmVf aW5zdGFuY2UsCj4gKwkJCQkgICAgaSk7Cj4gKwo+ICsJCWVuZ2luZV9kYXRhLm5lbmdpbmVzID0g aTsKPiArCX0KPiArCj4gKwlyZXR1cm4gZW5naW5lX2RhdGE7Cj4gK30KPiArCj4gK2ludCBnZW1f Y3R4X2dldF9lbmdpbmUoaW50IGZkLCB1aW50MzJfdCBlbmdpbmUsIHVpbnQzMl90IGN0eF9pZCwK PiArCQkgICAgICAgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQo+ICt7Cj4gKwlJ OTE1X0RFRklORV9DT05URVhUX1BBUkFNX0VOR0lORVMoZW5naW5lcywgR0VNX01BWF9FTkdJTkVT KTsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBwYXJhbSA9IHsKPiArCQku cGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUywKPiArCQkuY3R4X2lkID0gY3R4X2lk LAo+ICsJCS5zaXplID0gU0laRU9GX0NUWF9QQVJBTSwKPiArCQkudmFsdWUgPSB0b191c2VyX3Bv aW50ZXIoJmVuZ2luZXMpLAo+ICsJfTsKPiArCWludCBuZW5naW5lcyA9IGdlbV90b3BvbG9neV9n ZXRfcGFyYW0oZmQsIGN0eF9pZCwgJnBhcmFtKTsKPiArCj4gKwlpZiAobmVuZ2luZXMgPCAwKQo+ ICsJCXJldHVybiBuZW5naW5lczsKPiArCj4gKwlpZiAoIXBhcmFtLnNpemUgfHwgIW5lbmdpbmVz KQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWUtPmNsYXNzID0gZW5naW5lcy5jbGFzc19p bnN0YW5jZVtlbmdpbmVdLmVuZ2luZV9jbGFzczsKPiArCWUtPmluc3RhbmNlID0gZW5naW5lcy5j bGFzc19pbnN0YW5jZVtlbmdpbmVdLmVuZ2luZV9pbnN0YW5jZTsKPiArCj4gKwlyZXR1cm4gMDsK PiArfQo+ICsKPiArYm9vbCBnZW1faGFzX2VuZ2luZV90b3BvbG9neShpbnQgZmQpCj4gK3sKPiAr CXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBwYXJhbSA9IHsKPiArCQkucGFyYW0g PSBJOTE1X0NPTlRFWFRfUEFSQU1fRU5HSU5FUywKPiArCX07Cj4gKwo+ICsJcmV0dXJuICFfX2dl bV9jb250ZXh0X2dldF9wYXJhbShmZCwgJnBhcmFtKTsKPiArfQo+IGRpZmYgLS1naXQgYS9saWIv aTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmggYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5 LmgKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uODA2YzI2MGIx MDc0Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3ku aAo+IEBAIC0wLDAgKzEsNzggQEAKPiArLyoKPiArICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwg Q29ycG9yYXRpb24KPiArICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJl ZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlz IHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdh cmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiArICog YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVj dCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5l eHQKPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1 YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFM TAo+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9N LCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9S IE9USEVSIERFQUxJTkdTCj4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPiArICovCj4gKwo+ICsjaWZu ZGVmIEdFTV9FTkdJTkVfVE9QT0xPR1lfSAo+ICsjZGVmaW5lIEdFTV9FTkdJTkVfVE9QT0xPR1lf SAo+ICsKPiArI2luY2x1ZGUgImlndF9ndC5oIgo+ICsjaW5jbHVkZSAiaTkxNV9kcm0uaCIKPiAr Cj4gKy8qCj4gKyAqIExpbWl0IHdoYXQgd2Ugc3VwcG9ydCBmb3Igc2ltcGxpY2l0eSBkdWUgbGlt aXRhdGlvbiBpbiBob3cgbXVjaCB3ZQo+ICsgKiBjYW4gYWRkcmVzcyB2aWEgZXhlY2J1ZjIuCj4g KyAqLwo+ICsjZGVmaW5lIFNJWkVPRl9DVFhfUEFSQU0Jb2Zmc2V0b2Yoc3RydWN0IGk5MTVfY29u dGV4dF9wYXJhbV9lbmdpbmVzLCBcCj4gKwkJCQkJY2xhc3NfaW5zdGFuY2VbR0VNX01BWF9FTkdJ TkVTXSkKPiArI2RlZmluZSBTSVpFT0ZfUVVFUlkJCW9mZnNldG9mKHN0cnVjdCBkcm1faTkxNV9x dWVyeV9lbmdpbmVfaW5mbywgXAo+ICsJCQkJCWVuZ2luZXNbR0VNX01BWF9FTkdJTkVTXSkKPiAr Cj4gKyNkZWZpbmUgR0VNX01BWF9FTkdJTkVTCQlJOTE1X0VYRUNfUklOR19NQVNLICsgMQo+ICsK PiArc3RydWN0IGludGVsX2VuZ2luZV9kYXRhIHsKPiArCXVpbnQzMl90IG5lbmdpbmVzOwo+ICsJ dWludDMyX3QgbjsKPiArCWludCBlcnJvcjsKPiArCXN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5n aW5lMiAqY3VycmVudF9lbmdpbmU7Cj4gKwlzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIg ZW5naW5lc1tHRU1fTUFYX0VOR0lORVNdOwo+ICt9Owo+ICsKPiArYm9vbCBnZW1faGFzX2VuZ2lu ZV90b3BvbG9neShpbnQgZmQpOwo+ICtzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaW50ZWxfaW5p dF9lbmdpbmVfbGlzdChpbnQgZmQsIHVpbnQzMl90IGN0eF9pZCk7Cj4gKwo+ICsvKiBpdGVyYXRp b24gZnVuY3Rpb25zICovCj4gK3N0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMgo+ICsqaW50 ZWxfZ2V0X2N1cnJlbnRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSAqZWQpOwo+ICsK PiArc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyCj4gKyppbnRlbF9nZXRfY3VycmVudF9w aHlzaWNhbF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9kYXRhICplZCk7Cj4gKwo+ICt2b2lk IGludGVsX25leHRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSAqZWQpOwo+ICsKPiAr aW50IGdlbV9jdHhfZ2V0X2VuZ2luZShpbnQgZmQsIHVpbnQzMl90IGVuZ2luZSwgdWludDMyX3Qg Y3R4X2lkLAo+ICsJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpOwo+ ICsKPiArI2RlZmluZSBfX2Zvcl9lYWNoX3N0YXRpY19lbmdpbmUoZV9fKSBcCj4gKwlmb3IgKChl X18pID0gaW50ZWxfZXhlY3V0aW9uX2VuZ2luZXMyOyAoZV9fKS0+bmFtZTsgKGVfXykrKykKPiAr Cj4gKyNkZWZpbmUgZm9yX2VhY2hfY29udGV4dF9lbmdpbmUoZmRfXywgY3R4X18sIGVfXykgXAo+ ICsJZm9yIChzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaV9fID0gaW50ZWxfaW5pdF9lbmdpbmVf bGlzdChmZF9fLCBjdHhfXyk7IFwKPiArCSAgICAgKChlX18pID0gaW50ZWxfZ2V0X2N1cnJlbnRf ZW5naW5lKCZpX18pKTsgXAo+ICsJICAgICBpbnRlbF9uZXh0X2VuZ2luZSgmaV9fKSkKPiArCj4g Ky8qIG5lZWRzIHRvIHJlcGxhY2UgImZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZSIgd2hlbiBjb25m bGljdHMgYXJlIGZpeGVkICovCj4gKyNkZWZpbmUgX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUo ZmRfXywgZV9fKSBcCj4gKwlmb3IgKHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBpX18gPSBpbnRl bF9pbml0X2VuZ2luZV9saXN0KGZkX18sIDApOyBcCj4gKwkgICAgICgoZV9fKSA9IGludGVsX2dl dF9jdXJyZW50X3BoeXNpY2FsX2VuZ2luZSgmaV9fKSk7IFwKPiArCSAgICAgaW50ZWxfbmV4dF9l bmdpbmUoJmlfXykpCj4gKwo+ICsjZW5kaWYgLyogR0VNX0VOR0lORV9UT1BPTE9HWV9IICovCj4g ZGlmZiAtLWdpdCBhL2xpYi9pZ3QuaCBiL2xpYi9pZ3QuaAo+IGluZGV4IDY2NTRhNjU5YzA2Mi4u MDNmMTljYTJkZmI2IDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3QuaAo+ICsrKyBiL2xpYi9pZ3QuaAo+ IEBAIC01Myw1ICs1Myw2IEBACj4gICAjaW5jbHVkZSAibWVkaWFfc3Bpbi5oIgo+ICAgI2luY2x1 ZGUgInJlbmRlcmNvcHkuaCIKPiAgICNpbmNsdWRlICJpOTE1L2dlbV9tbWFuLmgiCj4gKyNpbmNs dWRlICJpOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaCIKPiAgIAo+ICAgI2VuZGlmIC8qIElHVF9I ICovCj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZ3QuaCBiL2xpYi9pZ3RfZ3QuaAo+IGluZGV4IDQ3 NWMwYjNjM2NjNi4uNTJiMmYxZWE5NWE1IDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3RfZ3QuaAo+ICsr KyBiL2xpYi9pZ3RfZ3QuaAo+IEBAIC05NSw2ICs5NSw4IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qg aW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgewo+ICAgCWNvbnN0IGNoYXIgKm5hbWU7Cj4gICAJaW50 IGNsYXNzOwo+ICAgCWludCBpbnN0YW5jZTsKPiArCXVpbnQ2NF90IGZsYWdzOwo+ICsJYm9vbCBp c192aXJ0dWFsOwo+ICAgfSBpbnRlbF9leGVjdXRpb25fZW5naW5lczJbXTsKPiAgIAo+ICAgdW5z aWduZWQgaW50Cj4gZGlmZiAtLWdpdCBhL2xpYi9tZXNvbi5idWlsZCBiL2xpYi9tZXNvbi5idWls ZAo+IGluZGV4IDg5ZGUwNmU2OTI0YS4uOTNjMDFkYWE0MjIyIDEwMDY0NAo+IC0tLSBhL2xpYi9t ZXNvbi5idWlsZAo+ICsrKyBiL2xpYi9tZXNvbi5idWlsZAo+IEBAIC01LDYgKzUsNyBAQCBsaWJf c291cmNlcyA9IFsKPiAgIAknaTkxNS9nZW1fc3VibWlzc2lvbi5jJywKPiAgIAknaTkxNS9nZW1f cmluZy5jJywKPiAgIAknaTkxNS9nZW1fbW1hbi5jJywKPiArCSdpOTE1L2dlbV9lbmdpbmVfdG9w b2xvZ3kuYycsCj4gICAJJ2lndF9jb2xvcl9lbmNvZGluZy5jJywKPiAgIAknaWd0X2RlYnVnZnMu YycsCj4gICAJJ2lndF9kZXZpY2UuYycsCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaWd0LWRldg==