From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1A70F8997C for ; Wed, 22 May 2019 11:16:19 +0000 (UTC) References: <20190513175613.2507-1-andi.shyti@intel.com> <20190513175613.2507-3-andi.shyti@intel.com> From: Tvrtko Ursulin Message-ID: Date: Wed, 22 May 2019 12:16:15 +0100 MIME-Version: 1.0 In-Reply-To: <20190513175613.2507-3-andi.shyti@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH v24 02/14] 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: Ck9uIDEzLzA1LzIwMTkgMTg6NTYsIEFuZGkgU2h5dGkgd3JvdGU6Cj4gVGhlIGdlbV9lbmdpbmVf 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 ZGkuc2h5dGlAaW50ZWwuY29tPgoKRm91bmQgb25lIHdpdGhvdXQgci1iLgoKPiAtLS0KPiAgIGxp Yi9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAgICB8ICAgMiArCj4gICBsaWIvaTkxNS9nZW1fZW5n aW5lX3RvcG9sb2d5LmMgfCAyODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g ICBsaWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmggfCAgNzkgKysrKysrKysrCj4gICBsaWIv aWd0LmggICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+ICAgbGliL2lndF9ndC5oICAgICAg ICAgICAgICAgICAgIHwgICAyICsKPiAgIGxpYi9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICB8 ICAgMSArCj4gICA2IGZpbGVzIGNoYW5nZWQsIDM2NyBpbnNlcnRpb25zKCspCj4gICBjcmVhdGUg bW9kZSAxMDA2NDQgbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jCj4gICBjcmVhdGUgbW9k ZSAxMDA2NDQgbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oCj4gCj4gZGlmZiAtLWdpdCBh L2xpYi9NYWtlZmlsZS5zb3VyY2VzIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKPiBpbmRleCA5NzY4 NTgyMzg5NGIuLmVmOTZiZDA5ZDA0OSAxMDA2NDQKPiAtLS0gYS9saWIvTWFrZWZpbGUuc291cmNl cwo+ICsrKyBiL2xpYi9NYWtlZmlsZS5zb3VyY2VzCj4gQEAgLTEzLDYgKzEzLDggQEAgbGliX3Nv dXJjZV9saXN0ID0JIAlcCj4gICAJaTkxNS9nZW1fcmluZy5jCVwKPiAgIAlpOTE1L2dlbV9tbWFu LmMJXAo+ICAgCWk5MTUvZ2VtX21tYW4uaAlcCj4gKwlpOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3ku YwlcCj4gKwlpOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAlcCj4gICAJaTkxNV8zZC5oCQlcCj4g ICAJaTkxNV9yZWcuaAkJXAo+ICAgCWk5MTVfcGNpaWRzLmgJCVwKPiBkaWZmIC0tZ2l0IGEvbGli L2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5jIGIvbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9n eS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjdhNGExNzYw NWQzMgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5 LmMKPiBAQCAtMCwwICsxLDI4MiBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRl bCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0 d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsg KiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUg bmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIgREVBTElOR1MKPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKi8KPiArCj4gKyNp bmNsdWRlICJkcm10ZXN0LmgiCj4gKyNpbmNsdWRlICJpb2N0bF93cmFwcGVycy5oIgo+ICsKPiAr I2luY2x1ZGUgImk5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oIgo+ICsKPiArI2RlZmluZSBERUZJ TkVfQ09OVEVYVF9QQVJBTShlX18sIHBfXywgY19fLCBOX18pIFwKCk1heWJlIERFRklORV9DT05U RVhUX0VOR0lORVNfUEFSQU0gZm9yIG1vcmUgY2xhcml0eT8KCj4gKwkJSTkxNV9ERUZJTkVfQ09O VEVYVF9QQVJBTV9FTkdJTkVTKGVfXywgTl9fKTsgXAo+ICsJCXN0cnVjdCBkcm1faTkxNV9nZW1f Y29udGV4dF9wYXJhbSBwX18gPSB7IFwKPiArCQkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFN X0VOR0lORVMsIFwKPiArCQkJLmN0eF9pZCA9IGNfXywgXAo+ICsJCQkuc2l6ZSA9IFNJWkVPRl9D VFhfUEFSQU0sIFwKPiArCQkJLnZhbHVlID0gdG9fdXNlcl9wb2ludGVyKCZlX18pLCBcCj4gKwkJ fQo+ICsKPiArc3RhdGljIGludCBfX2dlbV9xdWVyeShpbnQgZmQsIHN0cnVjdCBkcm1faTkxNV9x dWVyeSAqcSkKPiArewo+ICsJaW50IGVyciA9IDA7Cj4gKwo+ICsJaWYgKGlndF9pb2N0bChmZCwg RFJNX0lPQ1RMX0k5MTVfUVVFUlksIHEpKQo+ICsJCWVyciA9IC1lcnJubzsKPiArCj4gKwllcnJu byA9IDA7Cj4gKwlyZXR1cm4gZXJyOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBnZW1fcXVlcnko aW50IGZkLCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgKnEpCj4gK3sKPiArCWlndF9hc3NlcnRfZXEo X19nZW1fcXVlcnkoZmQsIHEpLCAwKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgcXVlcnlfZW5n aW5lcyhpbnQgZmQsCj4gKwkJCSAgc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2VuZ2luZV9pbmZvICpx dWVyeV9lbmdpbmVzLAo+ICsJCQkgIGludCBsZW5ndGgpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkx NV9xdWVyeV9pdGVtIGl0ZW0gPSB7IH07Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcXVlcnkgcXVlcnkg PSB7IH07Cj4gKwo+ICsJaXRlbS5xdWVyeV9pZCA9IERSTV9JOTE1X1FVRVJZX0VOR0lORV9JTkZP Owo+ICsJcXVlcnkuaXRlbXNfcHRyID0gdG9fdXNlcl9wb2ludGVyKCZpdGVtKTsKPiArCXF1ZXJ5 Lm51bV9pdGVtcyA9IDE7Cj4gKwlpdGVtLmxlbmd0aCA9IGxlbmd0aDsKPiArCj4gKwlpdGVtLmRh dGFfcHRyID0gdG9fdXNlcl9wb2ludGVyKHF1ZXJ5X2VuZ2luZXMpOwo+ICsKPiArCWdlbV9xdWVy eShmZCwgJnF1ZXJ5KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgY3R4X21hcF9lbmdpbmVzKGlu dCBmZCwgc3RydWN0IGludGVsX2VuZ2luZV9kYXRhICplZCwKPiArCQkJICAgIHN0cnVjdCBkcm1f aTkxNV9nZW1fY29udGV4dF9wYXJhbSAqcGFyYW0pCj4gK3sKPiArCXN0cnVjdCBpOTE1X2NvbnRl eHRfcGFyYW1fZW5naW5lcyAqZW5naW5lcyA9Cj4gKwkJCShzdHJ1Y3QgaTkxNV9jb250ZXh0X3Bh cmFtX2VuZ2luZXMgKikgcGFyYW0tPnZhbHVlOwo+ICsJaW50IGkgPSAwOwo+ICsKPiArCWZvciAo dHlwZW9mKGVuZ2luZXMtPmVuZ2luZXNbMF0pICpwID0KPiArCSAgICAgJmVuZ2luZXMtPmVuZ2lu ZXNbMF07Cj4gKwkgICAgIGkgPCBlZC0+bmVuZ2luZXM7IGkrKywgcCsrKSB7Cj4gKwkJcC0+ZW5n aW5lX2NsYXNzID0gZWQtPmVuZ2luZXNbaV0uY2xhc3M7Cj4gKwkJcC0+ZW5naW5lX2luc3RhbmNl ID0gZWQtPmVuZ2luZXNbaV0uaW5zdGFuY2U7Cj4gKwl9Cj4gKwo+ICsJcGFyYW0tPnNpemUgPSBv ZmZzZXRvZih0eXBlb2YoKmVuZ2luZXMpLCBlbmdpbmVzW2ldKTsKPiArCWVuZ2luZXMtPmV4dGVu c2lvbnMgPSAwOwo+ICsKPiArCWdlbV9jb250ZXh0X3NldF9wYXJhbShmZCwgcGFyYW0pOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBpbml0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2Vu Z2luZTIgKmUyLAo+ICsJCQlpbnQgY2xhc3MsIGludCBpbnN0YW5jZSwgdWludDY0X3QgZmxhZ3Mp Cj4gK3sKPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqX19lMjsKPiAr CXN0YXRpYyBjb25zdCBjaGFyICp1bmtub3duX25hbWUgPSAidW5rbm93biIsCj4gKwkJCSAgKnZp cnR1YWxfbmFtZSA9ICJ2aXJ0dWFsIjsKPiArCj4gKwllMi0+Y2xhc3MgICAgPSBjbGFzczsKPiAr CWUyLT5pbnN0YW5jZSA9IGluc3RhbmNlOwo+ICsJZTItPmZsYWdzICAgID0gZmxhZ3M7Cj4gKwo+ ICsJLyogZW5naW5lIGlzIGEgdmlydHVhbCBlbmdpbmUgKi8KPiArCWlmIChjbGFzcyA9PSBJOTE1 X0VOR0lORV9DTEFTU19JTlZBTElEKSB7CgpUaGlzIG5lZWRzIHRvIGJlIHR3ZWFrZWQgdG8gY2xh c3MgPT0gSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRCAmJiAKaW5zdGFuY2UgPT0gSTkxNV9FTkdJ TkVfQ0xBU1NfSU5WQUxJRF9WSVJUVUFMLgoKT3RoZXJ3aXNlIGlmIGNsYXNzIGlzIGp1c3QgLTEg YXNzZXJ0LgoKPiArCQllMi0+bmFtZSA9IHZpcnR1YWxfbmFtZTsKPiArCQllMi0+aXNfdmlydHVh bCA9IHRydWU7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCV9fZm9yX2VhY2hfc3RhdGljX2Vu Z2luZShfX2UyKQo+ICsJCWlmIChfX2UyLT5jbGFzcyA9PSBjbGFzcyAmJiBfX2UyLT5pbnN0YW5j ZSA9PSBpbnN0YW5jZSkKPiArCQkJYnJlYWs7Cj4gKwo+ICsJaWYgKF9fZTItPm5hbWUpIHsKPiAr CQllMi0+bmFtZSA9IF9fZTItPm5hbWU7Cj4gKwl9IGVsc2Ugewo+ICsJCWlndF93YXJuKCJmb3Vu ZCB1bmtub3duIGVuZ2luZSAoJWQsICVkKSIsIGNsYXNzLCBpbnN0YW5jZSk7Cj4gKwkJZTItPm5h bWUgPSB1bmtub3duX25hbWU7CgplMi0+ZmxhZ3MgPSAtMSBmb3IgbW9yZSByb2J1c3RuZXNzPwoK PiArCX0KPiArCj4gKwkvKiBqdXN0IHRvIHJlbWFyayBpdCAqLwo+ICsJZTItPmlzX3ZpcnR1YWwg PSBmYWxzZTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgcXVlcnlfZW5naW5lX2xpc3QoaW50IGZk LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgKmVkKQo+ICt7Cj4gKwl1aW50OF90IGJ1ZmZbU0la RU9GX1FVRVJZXSA9IHsgfTsKPiArCXN0cnVjdCBkcm1faTkxNV9xdWVyeV9lbmdpbmVfaW5mbyAq cXVlcnlfZW5naW5lID0KPiArCQkJKHN0cnVjdCBkcm1faTkxNV9xdWVyeV9lbmdpbmVfaW5mbyAq KSBidWZmOwo+ICsJaW50IGk7Cj4gKwo+ICsJcXVlcnlfZW5naW5lcyhmZCwgcXVlcnlfZW5naW5l LCBTSVpFT0ZfUVVFUlkpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBxdWVyeV9lbmdpbmUtPm51 bV9lbmdpbmVzOyBpKyspCj4gKwkJaW5pdF9lbmdpbmUoJmVkLT5lbmdpbmVzW2ldLAo+ICsJCQkg ICAgcXVlcnlfZW5naW5lLT5lbmdpbmVzW2ldLmVuZ2luZS5lbmdpbmVfY2xhc3MsCj4gKwkJCSAg ICBxdWVyeV9lbmdpbmUtPmVuZ2luZXNbaV0uZW5naW5lLmVuZ2luZV9pbnN0YW5jZSwgaSk7Cj4g Kwo+ICsJZWQtPm5lbmdpbmVzID0gcXVlcnlfZW5naW5lLT5udW1fZW5naW5lczsKPiArfQo+ICsK PiArc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICoKPiAraW50ZWxfZ2V0X2N1cnJlbnRf ZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSAqZWQpCj4gK3sKPiArCWlmICghZWQtPm4p Cj4gKwkJZWQtPmN1cnJlbnRfZW5naW5lID0gJmVkLT5lbmdpbmVzWzBdOwo+ICsJZWxzZSBpZiAo ZWQtPm4gPj0gZWQtPm5lbmdpbmVzKQo+ICsJCWVkLT5jdXJyZW50X2VuZ2luZSA9IE5VTEw7Cj4g Kwo+ICsJcmV0dXJuIGVkLT5jdXJyZW50X2VuZ2luZTsKPiArfQo+ICsKPiArdm9pZCBpbnRlbF9u ZXh0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgKmVkKQo+ICt7Cj4gKwlpZiAoZWQt Pm4gKyAxIDwgZWQtPm5lbmdpbmVzKSB7Cj4gKwkJZWQtPm4rKzsKPiArCQllZC0+Y3VycmVudF9l bmdpbmUgPSAmZWQtPmVuZ2luZXNbZWQtPm5dOwo+ICsJfSBlbHNlIHsKPiArCQllZC0+biA9IGVk LT5uZW5naW5lczsKPiArCQllZC0+Y3VycmVudF9lbmdpbmUgPSBOVUxMOwo+ICsJfQo+ICt9Cj4g Kwo+ICtzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKgo+ICtpbnRlbF9nZXRfY3VycmVu dF9waHlzaWNhbF9lbmdpbmUoc3RydWN0IGludGVsX2VuZ2luZV9kYXRhICplZCkKPiArewo+ICsJ c3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwo+ICsKPiArCWZvciAoZSA9IGludGVs X2dldF9jdXJyZW50X2VuZ2luZShlZCk7Cj4gKwkgICAgIGUgJiYgZS0+aXNfdmlydHVhbDsKPiAr CSAgICAgaW50ZWxfbmV4dF9lbmdpbmUoZWQpKQo+ICsJCTsKPiArCj4gKwlyZXR1cm4gZTsKPiAr fQo+ICsKPiArc3RhdGljIGludCBnZW1fdG9wb2xvZ3lfZ2V0X3BhcmFtKGludCBmZCwKPiArCQkJ CSAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtICpwKQo+ICt7Cj4gKwlpZiAoaWd0 X29ubHlfbGlzdF9zdWJ0ZXN0cygpKQo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsKPiArCWlmIChf X2dlbV9jb250ZXh0X2dldF9wYXJhbShmZCwgcCkpCj4gKwkJcmV0dXJuIC0xOyAvKiB1c2luZyBk ZWZhdWx0IGVuZ2luZSBtYXAgKi8KPiArCj4gKwlpZiAoIXAtPnNpemUpCj4gKwkJcmV0dXJuIDA7 Cj4gKwo+ICsJcC0+c2l6ZSA9IChwLT5zaXplIC0gc2l6ZW9mKHN0cnVjdCBpOTE1X2NvbnRleHRf cGFyYW1fZW5naW5lcykpIC8KPiArCQkgIChvZmZzZXRvZihzdHJ1Y3QgaTkxNV9jb250ZXh0X3Bh cmFtX2VuZ2luZXMsCj4gKwkJCSAgICBlbmdpbmVzWzFdKSAtCj4gKwkJICBzaXplb2Yoc3RydWN0 IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVzKSk7CgpTbyBwYXJhbS5zaXplIHN0YXJ0cyB3aXRo IG51bWJlciBvZiBieXRlcywgYnV0IHRoZW4gYmVjb21lcyBudW1iZXIgb2YgCmVuZ2luZXM/IEl0 J3MgYSBiaXQgZXZpbCBhbmQgbm9uLW9idmlvdXMsIGJlY2F1c2UgYSBsaW5lIGJlbG93IGNvbmZ1 c2VkIG1lOgoKPiArCj4gKwlpZ3RfYXNzZXJ0X2YocC0+c2l6ZSA8PSBHRU1fTUFYX0VOR0lORVMs ICJ1bnN1cHBvcnRlZCBlbmdpbmUgY291bnRcbiIpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4g Kwo+ICtzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgaW50ZWxfaW5pdF9lbmdpbmVfbGlzdChpbnQg ZmQsIHVpbnQzMl90IGN0eF9pZCkKPiArewo+ICsJREVGSU5FX0NPTlRFWFRfUEFSQU0oZW5naW5l cywgcGFyYW0sIGN0eF9pZCwgR0VNX01BWF9FTkdJTkVTKTsKPiArCXN0cnVjdCBpbnRlbF9lbmdp bmVfZGF0YSBlbmdpbmVfZGF0YSA9IHsgfTsKPiArCWludCBpOwo+ICsKPiArCWlmIChnZW1fdG9w b2xvZ3lfZ2V0X3BhcmFtKGZkLCAmcGFyYW0pKSB7Cj4gKwkJLyogaWYga2VybmVsIGRvZXMgbm90 IHN1cHBvcnQgZW5naW5lL2NvbnRleHQgbWFwcGluZyAqLwo+ICsJCWNvbnN0IHN0cnVjdCBpbnRl bF9leGVjdXRpb25fZW5naW5lMiAqZTI7Cj4gKwo+ICsJCWlndF9kZWJ1ZygidXNpbmcgcHJlLWFs bG9jYXRlZCBlbmdpbmUgbGlzdFxuIik7Cj4gKwo+ICsJCV9fZm9yX2VhY2hfc3RhdGljX2VuZ2lu ZShlMikgewo+ICsJCQlzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKl9fZTIgPQo+ICsJ CQkJJmVuZ2luZV9kYXRhLmVuZ2luZXNbZW5naW5lX2RhdGEubmVuZ2luZXNdOwo+ICsKPiArCQkJ aWYgKCFpZ3Rfb25seV9saXN0X3N1YnRlc3RzKCkpIHsKPiArCQkJCV9fZTItPmZsYWdzID0gZ2Vt X2NsYXNzX2luc3RhbmNlX3RvX2ViX2ZsYWdzKGZkLAo+ICsJCQkJCQllMi0+Y2xhc3MsIGUyLT5p bnN0YW5jZSk7Cj4gKwo+ICsJCQkJaWYgKCFnZW1faGFzX3JpbmcoZmQsIF9fZTItPmZsYWdzKSkK PiArCQkJCQljb250aW51ZTsKPiArCQkJfSBlbHNlIHsKPiArCQkJCV9fZTItPmZsYWdzID0gLTE7 IC8qIDB4ZmZmLi4uICovCj4gKwkJCX0KPiArCj4gKwkJCV9fZTItPm5hbWUgICAgICAgPSBlMi0+ bmFtZTsKPiArCQkJX19lMi0+aW5zdGFuY2UgICA9IGUyLT5pbnN0YW5jZTsKPiArCQkJX19lMi0+ Y2xhc3MgICAgICA9IGUyLT5jbGFzczsKPiArCQkJX19lMi0+aXNfdmlydHVhbCA9IGZhbHNlOwo+ ICsKPiArCQkJZW5naW5lX2RhdGEubmVuZ2luZXMrKzsKPiArCQl9Cj4gKwkJcmV0dXJuIGVuZ2lu ZV9kYXRhOwo+ICsJfQo+ICsKPiArCWlmICghcGFyYW0uc2l6ZSkgewo+ICsJCXF1ZXJ5X2VuZ2lu ZV9saXN0KGZkLCAmZW5naW5lX2RhdGEpOwo+ICsJCWN0eF9tYXBfZW5naW5lcyhmZCwgJmVuZ2lu ZV9kYXRhLCAmcGFyYW0pOwo+ICsJfSBlbHNlIHsKPiArCQlmb3IgKGkgPSAwOyBpIDwgcGFyYW0u c2l6ZTsgaSsrKQoKVGhpcyBvbmUuIEl0IGlzIGFuIGFwcGFyZW50IG1pc21hdGNoIGJldHdlZW4g aW5kaWNlcyBhbmQgYnl0ZXMuCgpQdXQgYSBjb21tZW50IHdpdGggdGhpcyBibG9jayBzYXlpbmcg aW4gd2hhdCBjYXNlIHdlIGdldCBoZXJlIGFuZCB0aGUgCnRyaWNrIHdpdGggcGFyYW0uc2l6ZSB5 b3UgcGxheS4KCj4gKwkJCWluaXRfZW5naW5lKCZlbmdpbmVfZGF0YS5lbmdpbmVzW2ldLAo+ICsJ CQkJICAgIGVuZ2luZXMuZW5naW5lc1tpXS5lbmdpbmVfY2xhc3MsCj4gKwkJCQkgICAgZW5naW5l cy5lbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5jZSwKPiArCQkJCSAgICBpKTsKPiArCj4gKwkJZW5n aW5lX2RhdGEubmVuZ2luZXMgPSBpOwo+ICsJfQo+ICsKPiArCXJldHVybiBlbmdpbmVfZGF0YTsK PiArfQo+ICsKPiAraW50IGdlbV9jb250ZXh0X2xvb2t1cF9lbmdpbmUoaW50IGZkLCB1aW50NjRf dCBlbmdpbmUsIHVpbnQzMl90IGN0eF9pZCwKPiArCQkJICAgICAgc3RydWN0IGludGVsX2V4ZWN1 dGlvbl9lbmdpbmUyICplKQo+ICt7Cj4gKwlERUZJTkVfQ09OVEVYVF9QQVJBTShlbmdpbmVzLCBw YXJhbSwgY3R4X2lkLCBHRU1fTUFYX0VOR0lORVMpOwo+ICsKPiArCWlmICghZSB8fCBnZW1fdG9w b2xvZ3lfZ2V0X3BhcmFtKGZkLCAmcGFyYW0pIHx8ICFwYXJhbS5zaXplKQoKWW91IGV4cGVjdCBh IE5VTEwgZSBoZXJlIGFuZCB0byB3aGF0IHB1cnBvc2U/IEJlc3QgdG8ganVzdCBkaXNhbGxvdyBp dCBJIAp0aGluay4KCkFsc28gcGFyYW0uc2l6ZSA9PSAwPyBJdCBjYW4ndCBiZSBwb3NzaWJsZSBk dWUgaG93IHlvdSBkZWZpbmUgdGhlIApzdHJ1Y3R1cmUgYSBsaW5lIGFib3ZlIGl0LgoKPiArCQly ZXR1cm4gLUVJTlZBTDsKPiArCj4gKwllLT5jbGFzcyA9IGVuZ2luZXMuZW5naW5lc1tlbmdpbmVd LmVuZ2luZV9jbGFzczsKPiArCWUtPmluc3RhbmNlID0gZW5naW5lcy5lbmdpbmVzW2VuZ2luZV0u ZW5naW5lX2luc3RhbmNlOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICt2b2lkIGdlbV9j b250ZXh0X3NldF9hbGxfZW5naW5lcyhpbnQgZmQsIHVpbnQzMl90IGN0eCkKPiArewo+ICsJREVG SU5FX0NPTlRFWFRfUEFSQU0oZW5naW5lcywgcGFyYW0sIGN0eCwgR0VNX01BWF9FTkdJTkVTKTsK PiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBlbmdpbmVfZGF0YSA9IHsgfTsKPiArCj4gKwlp ZiAoIWdlbV90b3BvbG9neV9nZXRfcGFyYW0oZmQsICZwYXJhbSkgJiYgIXBhcmFtLnNpemUpIHsK PiArCQlxdWVyeV9lbmdpbmVfbGlzdChmZCwgJmVuZ2luZV9kYXRhKTsKPiArCQljdHhfbWFwX2Vu Z2luZXMoZmQsICZlbmdpbmVfZGF0YSwgJnBhcmFtKTsKPiArCX0KPiArfQo+ICsKPiArYm9vbCBn ZW1faGFzX2VuZ2luZV90b3BvbG9neShpbnQgZmQpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9n ZW1fY29udGV4dF9wYXJhbSBwYXJhbSA9IHsKPiArCQkucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFS QU1fRU5HSU5FUywKPiArCX07Cj4gKwo+ICsJcmV0dXJuICFfX2dlbV9jb250ZXh0X2dldF9wYXJh bShmZCwgJnBhcmFtKTsKPiArfQo+IGRpZmYgLS1naXQgYS9saWIvaTkxNS9nZW1fZW5naW5lX3Rv cG9sb2d5LmggYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmgKPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMC4uYjQwMjA0YjE1MDY4Cj4gLS0tIC9kZXYvbnVs bAo+ICsrKyBiL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaAo+IEBAIC0wLDAgKzEsNzkg QEAKPiArLyoKPiArICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPiArICoK PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVh bCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg bGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAq IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiArICogcGFyYWdyYXBo KSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z IG9mIHRoZQo+ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiAr ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQVVUSE9S UyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UiBPVEhFUgo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4g KyAqIElOIFRIRSBTT0ZUV0FSRS4KPiArICovCj4gKwo+ICsjaWZuZGVmIEdFTV9FTkdJTkVfVE9Q T0xPR1lfSAo+ICsjZGVmaW5lIEdFTV9FTkdJTkVfVE9QT0xPR1lfSAo+ICsKPiArI2luY2x1ZGUg ImlndF9ndC5oIgo+ICsjaW5jbHVkZSAiaTkxNV9kcm0uaCIKPiArCj4gKy8qCj4gKyAqIExpbWl0 IHdoYXQgd2Ugc3VwcG9ydCBmb3Igc2ltcGxpY2l0eSBkdWUgbGltaXRhdGlvbiBpbiBob3cgbXVj aCB3ZQo+ICsgKiBjYW4gYWRkcmVzcyB2aWEgZXhlY2J1ZjIuCj4gKyAqLwo+ICsjZGVmaW5lIFNJ WkVPRl9DVFhfUEFSQU0Jb2Zmc2V0b2Yoc3RydWN0IGk5MTVfY29udGV4dF9wYXJhbV9lbmdpbmVz LCBcCj4gKwkJCQkJIGVuZ2luZXNbR0VNX01BWF9FTkdJTkVTXSkKPiArI2RlZmluZSBTSVpFT0Zf UVVFUlkJCW9mZnNldG9mKHN0cnVjdCBkcm1faTkxNV9xdWVyeV9lbmdpbmVfaW5mbywgXAo+ICsJ CQkJCSBlbmdpbmVzW0dFTV9NQVhfRU5HSU5FU10pCgpNb3ZlIHRoZXNlIHR3byBpbnRvIC5jIEkg dGhpbmsuCgo+ICsKPiArI2RlZmluZSBHRU1fTUFYX0VOR0lORVMJCUk5MTVfRVhFQ19SSU5HX01B U0sgKyAxCj4gKwo+ICtzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgewo+ICsJdWludDMyX3QgbmVu Z2luZXM7Cj4gKwl1aW50MzJfdCBuOwo+ICsJc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUy ICpjdXJyZW50X2VuZ2luZTsKPiArCXN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiBlbmdp bmVzW0dFTV9NQVhfRU5HSU5FU107Cj4gK307Cj4gKwo+ICtib29sIGdlbV9oYXNfZW5naW5lX3Rv cG9sb2d5KGludCBmZCk7Cj4gK3N0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBpbnRlbF9pbml0X2Vu Z2luZV9saXN0KGludCBmZCwgdWludDMyX3QgY3R4X2lkKTsKPiArCj4gKy8qIGl0ZXJhdGlvbiBm dW5jdGlvbnMgKi8KPiArc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICoKPiAraW50ZWxf Z2V0X2N1cnJlbnRfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSAqZWQpOwo+ICsKPiAr c3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICoKPiAraW50ZWxfZ2V0X2N1cnJlbnRfcGh5 c2ljYWxfZW5naW5lKHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSAqZWQpOwo+ICsKPiArdm9pZCBp bnRlbF9uZXh0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2RhdGEgKmVkKTsKPiArCj4gK2lu dCBnZW1fY29udGV4dF9sb29rdXBfZW5naW5lKGludCBmZCwgdWludDY0X3QgZW5naW5lLCB1aW50 MzJfdCBjdHhfaWQsCj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAq ZSk7Cj4gKwo+ICt2b2lkIGdlbV9jb250ZXh0X3NldF9hbGxfZW5naW5lcyhpbnQgZmQsIHVpbnQz Ml90IGN0eCk7Cj4gKwo+ICsjZGVmaW5lIF9fZm9yX2VhY2hfc3RhdGljX2VuZ2luZShlX18pIFwK PiArCWZvciAoKGVfXykgPSBpbnRlbF9leGVjdXRpb25fZW5naW5lczI7IChlX18pLT5uYW1lOyAo ZV9fKSsrKQo+ICsKPiArI2RlZmluZSBmb3JfZWFjaF9jb250ZXh0X2VuZ2luZShmZF9fLCBjdHhf XywgZV9fKSBcCj4gKwlmb3IgKHN0cnVjdCBpbnRlbF9lbmdpbmVfZGF0YSBpX18gPSBpbnRlbF9p bml0X2VuZ2luZV9saXN0KGZkX18sIGN0eF9fKTsgXAo+ICsJICAgICAoKGVfXykgPSBpbnRlbF9n ZXRfY3VycmVudF9lbmdpbmUoJmlfXykpOyBcCj4gKwkgICAgIGludGVsX25leHRfZW5naW5lKCZp X18pKQo+ICsKPiArLyogbmVlZHMgdG8gcmVwbGFjZSAiZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5l IiB3aGVuIGNvbmZsaWN0cyBhcmUgZml4ZWQgKi8KPiArI2RlZmluZSBfX2Zvcl9lYWNoX3BoeXNp Y2FsX2VuZ2luZShmZF9fLCBlX18pIFwKPiArCWZvciAoc3RydWN0IGludGVsX2VuZ2luZV9kYXRh IGlfXyA9IGludGVsX2luaXRfZW5naW5lX2xpc3QoZmRfXywgMCk7IFwKPiArCSAgICAgKChlX18p ID0gaW50ZWxfZ2V0X2N1cnJlbnRfcGh5c2ljYWxfZW5naW5lKCZpX18pKTsgXAo+ICsJICAgICBp bnRlbF9uZXh0X2VuZ2luZSgmaV9fKSkKPiArCj4gKyNlbmRpZiAvKiBHRU1fRU5HSU5FX1RPUE9M T0dZX0ggKi8KPiBkaWZmIC0tZ2l0IGEvbGliL2lndC5oIGIvbGliL2lndC5oCj4gaW5kZXggNTg1 MmQ1NTcxZjhiLi5hM2QzZWRjMmQ1YWMgMTAwNjQ0Cj4gLS0tIGEvbGliL2lndC5oCj4gKysrIGIv bGliL2lndC5oCj4gQEAgLTU0LDUgKzU0LDYgQEAKPiAgICNpbmNsdWRlICJtZWRpYV9zcGluLmgi Cj4gICAjaW5jbHVkZSAicmVuZGVyY29weS5oIgo+ICAgI2luY2x1ZGUgImk5MTUvZ2VtX21tYW4u aCIKPiArI2luY2x1ZGUgImk5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oIgo+ICAgCj4gICAjZW5k aWYgLyogSUdUX0ggKi8KPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9ndC5oIGIvbGliL2lndF9ndC5o Cj4gaW5kZXggNDc1YzBiM2MzY2M2Li41MmIyZjFlYTk1YTUgMTAwNjQ0Cj4gLS0tIGEvbGliL2ln dF9ndC5oCj4gKysrIGIvbGliL2lndF9ndC5oCj4gQEAgLTk1LDYgKzk1LDggQEAgZXh0ZXJuIGNv bnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiB7Cj4gICAJY29uc3QgY2hhciAqbmFt ZTsKPiAgIAlpbnQgY2xhc3M7Cj4gICAJaW50IGluc3RhbmNlOwo+ICsJdWludDY0X3QgZmxhZ3M7 Cj4gKwlib29sIGlzX3ZpcnR1YWw7Cj4gICB9IGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMltdOwo+ ICAgCj4gICB1bnNpZ25lZCBpbnQKPiBkaWZmIC0tZ2l0IGEvbGliL21lc29uLmJ1aWxkIGIvbGli L21lc29uLmJ1aWxkCj4gaW5kZXggODA3MzY4Njg2N2Q0Li5iNmQ4ZTZjYTVhN2UgMTAwNjQ0Cj4g LS0tIGEvbGliL21lc29uLmJ1aWxkCj4gKysrIGIvbGliL21lc29uLmJ1aWxkCj4gQEAgLTUsNiAr NSw3IEBAIGxpYl9zb3VyY2VzID0gWwo+ICAgCSdpOTE1L2dlbV9zdWJtaXNzaW9uLmMnLAo+ICAg CSdpOTE1L2dlbV9yaW5nLmMnLAo+ICAgCSdpOTE1L2dlbV9tbWFuLmMnLAo+ICsJJ2k5MTUvZ2Vt X2VuZ2luZV90b3BvbG9neS5jJywKPiAgIAknaWd0X2NvbG9yX2VuY29kaW5nLmMnLAo+ICAgCSdp Z3RfZGVidWdmcy5jJywKPiAgIAknaWd0X2RldmljZS5jJywKPiAKCkFuZCBwbGVhc2UgcHV0IGEg Zm9sbG93IHVwIHRvIGFkZCBBUEkgZG9jcyBvbiB5b3VyIFRPRE8gbGlzdCBzaG9ydGx5IAphZnRl ciB3ZSBtZXJnZSB0aGlzLgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndC1kZXY=