From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [Intel-gfx] [RFC v2] drm: Enable dynamic debug for DRM_[DEV]_DEBUG* Date: Thu, 8 Dec 2016 13:16:50 +0000 Message-ID: <82db6834-8d91-cd2d-30fb-8bdb13a4b58c@linux.intel.com> References: <20161207183529.11256-1-robert@sixbynine.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161207183529.11256-1-robert@sixbynine.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Robert Bragg , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKT24gMDcvMTIvMjAxNiAxODozNSwgUm9iZXJ0IEJyYWdnIHdyb3RlOgo+IFRoaXMgaXMg c3RpbGwgbWlzc2luZyBjb3JyZXNwb25kaW5nIGRvY3VtZW50YXRpb24gY2hhbmdlcywgYW5kIEkg aGF2ZW4ndAo+IG1vdmVkIGFueXRoaW5nIHRvIGRybV9wcmludC5oIHlldCwgYXMgc3VnZ2VzdGVk Lgo+Cj4gU2VuZGluZyBvdXQgd2l0aCBhIGZldyBmdW5jdGlvbmFsIGltcHJvdmVtZW50cyBmaXJz dCB0byBnZXQgYWdyZWVtZW50Cj4gYmVmb3JlIGRvY3VtZW50aW5nIGFueXRoaW5nIChjaGFuZ2Vz IHN1bW1hcmlzZWQgaW4gdjI6IHNlY3Rpb24gYmVsb3cpCj4KPiBJbiBwYXJ0aWN1bGFyLCBhZmZl Y3RpbmcgdGhlIG91dHB1dCBmb3JtYXQsIEkgc3RvbGUgYW4gaWRlYSBmcm9tIFR2cnRrbwo+IFVy c3VsaW4gdG8gaGF2ZSB0aGUgcHJlZml4IGZvciBtZXNzYWdlcyBiZSBiYXNlZCBvbiB0aGUgZHJp dmVyIG5hbWUsCj4gc3VjaCBhcyAiW2k5MTVdIiBpbnN0ZWFkIG9mIGFsd2F5cyBiZWluZyAiW2Ry bV0iLgo+Cj4gRGVwZW5kaW5nIG9uIHBlb3BsZXMgdGhvdWdodHMgb24gY29tcGF0aWJpbGl0eSwg d2UgY291bGQgY29uc2lkZXIKPiByZW1vdmluZyB0aGUgcHJlZml4IGdpdmVuIHRoYXQgdGhlIGR5 bmFtaWMgZGVidWcgY29udHJvbCBpbnRlcmZhY2UgaGFzIGEKPiB3YXkgb2Ygc3BlY2lmeWluZyB0 aGF0IG1lc3NhZ2VzIHNob3VsZCBpbmNsdWRlIGEgbW9kdWxlIG5hbWUsIGZ1bmN0aW9uCj4gb3Ig bGluZSBpbmZvIGxpa2U6Cj4KPiBlY2hvICJtb2R1bGUgaTkxNSArbWZwIiA+IGR5bmFtaWNfZGVi dWcvY29udHJvbAo+Cj4gVGhhdCB3b3VsZCBlbmFibGUgYWxsIGk5MTUgZGVidWcgbWVzc2FnZXMg d2l0aCBhIG1vZHVsZSBhbmQgZnVuY3Rpb24KPiBwcmVmaXguCgpUbyBjaGVjayBpZiBJIGdvdCBp dCByaWdodCwgdGhhdCB3b3VsZCBwdXQgdGhlIHByZWZpeCBvbiBkZWJ1ZyBtZXNzYWdlcyAKd2hp bGUgdGhlIHJlc3Qgd291bGQgbm90IGhhdmUgaXQ/IChXaXRoIHRoZSBvcHRpb24gb2YgZHJvcHBp bmcgdGhlIApwcmVmaXggaW4gZ2VuZXJhbCB0aGF0IGlzLikKCk9yIHlvdSB0aG91Z2h0IGp1c3Qg cmVtb3ZpbmcgdGhlIHByZWZpeCBmcm9tIGRlYnVnIG1lc3NhZ2VzPwoKPiBBIHRyYWRlLW9mZiB3 b3VsZCBiZSB0aGF0IGFueW9uZSBvbmx5IHVzaW5nIHRoZSBkcm0uZHJtX2RlYnVnIGludGVyZmFj ZQo+IHRvIGNvbnRyb2wgbWVzc2FnZXMgd291bGQgbG9vc2Ugc29tZSBpbmZvcm1hdGlvbi4gSWYg d2UgcmVhbGx5IHdhbnRlZCB3ZQo+IGNvdWxkIGhhdmUgdGhlIGJlc3Qgb2YgYm90aCBieSBhZGRp bmcgYSB1dGlsaXR5IHByaW50aW5nIGFwaSB0aGF0IGNhbgo+IHJlY29nbmlzZSB3aGVuIHByaW50 aW5nIGR1ZSB0byBhIGR5bmFtaWMgZGVidWcgY29udHJvbCBxdWVyeSB2cwo+IGRybS5kcm1fZGVi dWcgdG8gY29uZGl0aW9uYWxseSBhZGQgdGhlIHByZWZpeC4KCkkgdGhpbmsgcHJlZml4IGJ5IGRl ZmF1bHQsIG9uIG5vbi1kZWJ1ZyBtZXNzYWdlcywgaXMgcmVxdWlyZWQuIFdlIGNvdWxkIApwZXJo YXBzIG1ha2UgaXQgbGlrZSAiZHJtOiBtZXNzYWdlIiwgYW5kIG5vdCAiW2RybV0gbWVzc2FnZSIs IHRvIG1hdGNoIAp0aGUgcmVzdCBvZiB0aGUga2VybmVsPwoKPgo+IC0tLSA+OCAtLS0gKGdpdCBh bSAtLXNjaXNzb3JzKQo+Cj4gRHluYW1pYyBkZWJ1ZyBtZXNzYWdlcyAocmVmOiBEb2N1bWVudGF0 aW9uL2R5bmFtaWMtZGVidWctaG93dG8udHh0KQo+IGFsbG93IGZpbmUgZ3JhaW5lZCBjb250cm9s IG92ZXIgd2hpY2ggZGVidWcgbWVzc2FnZXMgYXJlIGVuYWJsZWQgd2l0aAo+IHJ1bnRpbWUgY29u dHJvbCB0aHJvdWdoIC9zeXNmcy9rZXJuZWwvZGVidWcvZHluYW1pY19kZWJ1Zy9jb250cm9sCj4K PiBUaGlzIHByb3ZpZGVzIG1vcmUgY29udHJvbCB0aGFuIHRoZSBjdXJyZW50IGRybS5kcm1fZGVi dWcgcGFyYW1ldGVyCj4gd2hpY2ggZm9yIHNvbWUgdXNlIGNhc2VzIGlzIGltcHJhY3RpY2FsIHRv IHVzZSBnaXZlbiBob3cgY2hhdHR5Cj4gc29tZSBkcm0gZGVidWcgY2F0ZWdvcmllcyBhcmUuCj4K PiBGb3IgZXhhbXBsZSBhbGwgZGVidWcgbWVzc2FnZXMgaW4gaTkxNV9kcm0uYyBjYW4gYmUgZW5h YmxlZCB3aXRoOgo+IGVjaG8gImZpbGUgaTkxNV9wZXJmLmMgK3AiID4gZHluYW1pY19kZWJ1Zy9j b250cm9sCj4KPiBUaGlzIGRvZXNuJ3Qgc3RyaWN0bHkgbWFpbnRhaW4gZm9ybWF0IGNvbXBhdGli aWxpdHkgd2l0aCB0aGUgcHJldmlvdXMKPiBkZWJ1ZyBtZXNzYWdlcyBzaW5jZSB0aGUgY2F0ZWdv cnkgaXMgbm93IGFkZGVkIGFzIHBhcnQgb2YgdGhlIHByZWZpeAo+IGxpa2UgIltkcm1dW2ttc10g Tm8gRkIgZm91bmQiLiBBZGRpbmcgdGhlIGNhdGVnb3JpZXMgd2l0aCBhIGNvbnNpc3RlbnQKPiBm b3JtYXQgbWFrZXMgaXQgcG9zc2libGUgdG8gZW5hYmxlIGNhdGVnb3JpZXMgd2l0aCBhIGR5bmFt aWMgZGVidWcKPiBxdWVyeSBsaWtlOiBlY2hvICJmb3JtYXQgW2ttc10gK3AiID4gZHluYW1pY19k ZWJ1Zy9jb250cm9sCgpJZiBJIGdvdCBpdCByaWdodCBmcm9tIHRoZSBwYXRjaCB0aGUgYWN0dWFs IGRlYnVnIGZvcm1hdCBpczoKCiJbZHJtOmZ1bmN0aW9uX25hbWVdW2ttc10gTWVzc2FnZSIKCkNv cnJlY3Q/IEluIHdoaWNoIGNhc2UgSSB3b3VsZCBzdWdnZXN0IGRpZmZlcmVudCBncm91cGluZywg d2hlcmUgCmNhdGVnb3J5IGNvbWVzIGJlZm9yZSB0aGUgZnVuY3Rpb24gbmFtZS4gRm9yIGV4YW1w bGU6CgoiW2RybTprbXM6ZnVuY3Rpb25fbmFtZV0gTWVzc2FnZSIKCkkgYWxzbyBmaW5kIGEgbG90 IG9mIHNxdWFyZSBicmFjZXMgaGFyZCB0byByZWFkLiBTbyB0aGUgY3VycmVudCAKIltmdW5jdGlv biBbbW9kdWxlXV0iIGlzIG5vdCBteSBmYXZvdXJpdGUgc28gcGx1cyBwb2ludHMgZm9yIHRoaXMg CmluaXRpYXRpdmUgYXMgd2VsbC4KCkluIGdlbmVyYWwgdGhpcyBsb29rcyBsaWtlIGEgZ29vZCBj bGVhbnVwIGFuZCBpbXByb3ZlbWVudCBzbyBhY2sgZnJvbSBtZS4KClJlZ2FyZHMsCgpUdnJ0a28K ClAuUy4gQWxzbyBlbGltaW5hdGUgRFJNX05BTUUgaW4gdGhpcyB3b3JrPwoKPgo+IFRoaXMgbWFp bnRhaW5zIHN1cHBvcnQgZm9yIGVuYWJsaW5nIGRlYnVnIG1lc3NhZ2VzIHVzaW5nIHRoZSBkcm1f ZGVidWcKPiBwYXJhbWV0ZXIuIElmIGR5bmFtaWMgZGVidWcgaXMgbm90IGVuYWJsZWQgdmlhIENP TkZJR19EWU5BTUlDX0RFQlVHIHRoZQo+IGRlYnVnIG1lc3NhZ2VzIGVzc2VudGlhbGx5IHdvcmsg YXMgYmVmb3JlLCBleGNlcHQgd2l0aCB0aGUgaW5jbHVzaW9uIG9mCj4gY2F0ZWdvcmllcyBpbiB0 aGUgZm9ybWF0IHN0cmluZ3MgYXMgZGVzY3JpYmVkIGFib3ZlLgo+Cj4gVGhpcyByZW1vdmVzIHRo ZSBkcm1fW2Rldl9dcHJpbnRrIHdyYXBwZXJzIGNvbnNpZGVyaW5nIHRoYXQgdGhlIGR5bmFtaWMK PiBkZWJ1ZyBtYWNyb3MgYXJlIG9ubHkgdXNlZnVsIGlmIHRoZXkgY2FuIHRyYWNrIHRoZSBfX0ZJ TEVfXywgX19mdW5jX18KPiBhbmQgX19MSU5FX18gd2hlcmUgdGhleSBhcmUgY2FsbGVkLiBUaGUg d3JhcHBlciBkaWRuJ3Qgc2VlbSBuZWNlc3NhcnkgaW4KPiB0aGUgRFJNX1VUX05PTkUgY2FzZSB3 aXRoIG5vIGNhdGVnb3J5IGZsYWcuCj4KPiBUaGUgbm9uIF9ERVYgbWFjcm9zIGFyZSBubyBsb25n ZXIgZGVmaW5lZCBpbiB0ZXJtcyBvZiBwYXNzaW5nIE5VTEwgdG8gYQo+IF9ERVYgdmFyaWFudCB0 byBhdm9pZCBoYXZlIHRoZSBjb3JlLmMgZGV2X3ByaW50ayBpbXBsZW1lbnRhdGlvbiBhZGRpbmcK PiAiKE5VTEwgZGV2aWNlICopIi4gVGhlIHByZXZpb3VzIGRybV9bZGV2X11wcmluayBmdW5jdGlv biB1c2VkIHRvIGhhbmRsZQo+IHRoaXMgYXMgYSBzcGVjaWFsIGNhc2UuCj4KPiBJbnN0ZWFkIG9m IHVzaW5nIERSTV9OQU1FIHRvIGFkZCBbZHJtXSB0byB0aGUgc3RhcnQgb2YgZXZlcnkgbWVzc2Fn ZSwKPiB0aGUgcHJlZml4IGlzIG5vdyBiYXNlZCBvbiBtb2R1bGVfbmFtZShUSElTX01PRFVMRSkg c28gaXQgd2lsbCBiZSBbZHJtXQo+IG9yIGUuZy4gW2k5MTVdIGZvciB0aGUgSW50ZWwgZHJpdmVy LiBMYXRlciB3ZSBtaWdodCBjb25zaWRlciByZW1vdmluZwo+IHRoZSBwcmVmaXggYWx0b2dldGhl ciBjb25zaWRlcmluZyB0aGF0IHRoZSBkeW5hbWljIGRlYnVnIGNvbnRyb2wKPiBpbnRlcmZhY2Ug aGFzIGEgd2F5IG9mIG9wdGlvbmFsbHkgYWRkaW5nIHRoZSBtb2R1bGUsIGZ1bmN0aW9uIG9yIGxp bmUgdG8KPiB0aGUgZm9ybWF0dGluZyBvZiBtZXNzYWdlcy4KPgo+IHYyOgo+ICAgICBBZGQgY2F0 ZWdvcmllcyB0byBmb3JtYXQgbGlrZSAiW2RybV1ba21zXSBObyBGQiBmb3VuZCIKPiAgICAgT25s eSBzaW5nbGUgY29uZGl0aW9uYWwgY2FsbCBwZXIgbWVzc2FnZSAobWFjcm9zIGV4cGFuZCB0byBs ZXNzIGNvZGUpCj4gICAgIFVzZXMgX19keW5hbWljX3ByX2RlYnVnL2Rldl9kYmcgZm9yIGR5bmFt aWMgZm9ybWF0dGluZyBmZWF0dXJlcwo+ICAgICBVc2UgbW9kdWxlIG5hbWUgZm9yIG1zZyBwcmVm aXggbGlrZSBbZHJtXSBvciBbaTkxNV0KPgo+IFNpZ25lZC1vZmYtYnk6IFJvYmVydCBCcmFnZyA8 cm9iZXJ0QHNpeGJ5bmluZS5vcmc+Cj4gQ2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiBDYzogVHZy dGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9n cHUvZHJtL2RybV9kcnYuYyB8ICA0NyAtLS0tLS0tLS0tLQo+ICBpbmNsdWRlL2RybS9kcm1QLmgg ICAgICAgIHwgMjAyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgMTIyIGRlbGV0aW9ucygt KQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2Rydi5jCj4gaW5kZXggZjc0YjdkMC4uMjVkMDBhYSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYu Ywo+IEBAIC02NSw1MyArNjUsNiBAQCBzdGF0aWMgc3RydWN0IGlkciBkcm1fbWlub3JzX2lkcjsK Pgo+ICBzdGF0aWMgc3RydWN0IGRlbnRyeSAqZHJtX2RlYnVnZnNfcm9vdDsKPgo+IC0jZGVmaW5l IERSTV9QUklOVEtfRk1UICJbIiBEUk1fTkFNRSAiOiVzXSVzICVwViIKPiAtCj4gLXZvaWQgZHJt X2Rldl9wcmludGsoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpsZXZlbCwK PiAtCQkgICAgdW5zaWduZWQgaW50IGNhdGVnb3J5LCBjb25zdCBjaGFyICpmdW5jdGlvbl9uYW1l LAo+IC0JCSAgICBjb25zdCBjaGFyICpwcmVmaXgsIGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQo+ IC17Cj4gLQlzdHJ1Y3QgdmFfZm9ybWF0IHZhZjsKPiAtCXZhX2xpc3QgYXJnczsKPiAtCj4gLQlp ZiAoY2F0ZWdvcnkgIT0gRFJNX1VUX05PTkUgJiYgIShkcm1fZGVidWcgJiBjYXRlZ29yeSkpCj4g LQkJcmV0dXJuOwo+IC0KPiAtCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7Cj4gLQl2YWYuZm10ID0g Zm9ybWF0Owo+IC0JdmFmLnZhID0gJmFyZ3M7Cj4gLQo+IC0JaWYgKGRldikKPiAtCQlkZXZfcHJp bnRrKGxldmVsLCBkZXYsIERSTV9QUklOVEtfRk1ULCBmdW5jdGlvbl9uYW1lLCBwcmVmaXgsCj4g LQkJCSAgICZ2YWYpOwo+IC0JZWxzZQo+IC0JCXByaW50aygiJXMiIERSTV9QUklOVEtfRk1ULCBs ZXZlbCwgZnVuY3Rpb25fbmFtZSwgcHJlZml4LCAmdmFmKTsKPiAtCj4gLQl2YV9lbmQoYXJncyk7 Cj4gLX0KPiAtRVhQT1JUX1NZTUJPTChkcm1fZGV2X3ByaW50ayk7Cj4gLQo+IC12b2lkIGRybV9w cmludGsoY29uc3QgY2hhciAqbGV2ZWwsIHVuc2lnbmVkIGludCBjYXRlZ29yeSwKPiAtCQljb25z dCBjaGFyICpmb3JtYXQsIC4uLikKPiAtewo+IC0Jc3RydWN0IHZhX2Zvcm1hdCB2YWY7Cj4gLQl2 YV9saXN0IGFyZ3M7Cj4gLQo+IC0JaWYgKGNhdGVnb3J5ICE9IERSTV9VVF9OT05FICYmICEoZHJt X2RlYnVnICYgY2F0ZWdvcnkpKQo+IC0JCXJldHVybjsKPiAtCj4gLQl2YV9zdGFydChhcmdzLCBm b3JtYXQpOwo+IC0JdmFmLmZtdCA9IGZvcm1hdDsKPiAtCXZhZi52YSA9ICZhcmdzOwo+IC0KPiAt CXByaW50aygiJXMiICJbIiBEUk1fTkFNRSAiOiVwc10lcyAlcFYiLAo+IC0JICAgICAgIGxldmVs LCBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksCj4gLQkgICAgICAgc3RyY21wKGxldmVsLCBL RVJOX0VSUikgPT0gMCA/ICIgKkVSUk9SKiIgOiAiIiwgJnZhZik7Cj4gLQo+IC0JdmFfZW5kKGFy Z3MpOwo+IC19Cj4gLUVYUE9SVF9TWU1CT0woZHJtX3ByaW50ayk7Cj4gLQo+ICAvKgo+ICAgKiBE Uk0gTWlub3JzCj4gICAqIEEgRFJNIGRldmljZSBjYW4gcHJvdmlkZSBzZXZlcmFsIGNoYXItZGV2 IGludGVyZmFjZXMgb24gdGhlIERSTS1NYWpvci4gRWFjaAo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1QLmggYi9pbmNsdWRlL2RybS9kcm1QLmgKPiBpbmRleCBhOWNmZDMzLi4wNDE2MTE0 IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybVAuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2Ry bVAuaAo+IEBAIC01OCw2ICs1OCw3IEBACj4gICNpbmNsdWRlIDxsaW51eC92bWFsbG9jLmg+Cj4g ICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5j ZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvZHluYW1pY19kZWJ1Zy5oPgo+Cj4gICNpbmNsdWRlIDxh c20vbW1hbi5oPgo+ICAjaW5jbHVkZSA8YXNtL3BnYWxsb2MuaD4KPiBAQCAtMTI5LDE1ICsxMzAs MjIgQEAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudDsKPiAgICogcnVuLXRpbWUgYnkgZWNob2lu ZyB0aGUgZGVidWcgdmFsdWUgaW4gaXRzIHN5c2ZzIG5vZGU6Cj4gICAqICAgIyBlY2hvIDB4ZiA+ IC9zeXMvbW9kdWxlL2RybS9wYXJhbWV0ZXJzL2RlYnVnCj4gICAqLwo+IC0jZGVmaW5lIERSTV9V VF9OT05FCQkweDAwCj4gICNkZWZpbmUgRFJNX1VUX0NPUkUgCQkweDAxCj4gKyNkZWZpbmUgX0RS TV9VVF9jb3JlCQkweDAxCj4gICNkZWZpbmUgRFJNX1VUX0RSSVZFUgkJMHgwMgo+ICsjZGVmaW5l IF9EUk1fVVRfZHJ2CQkweDAyCj4gICNkZWZpbmUgRFJNX1VUX0tNUwkJMHgwNAo+ICsjZGVmaW5l IF9EUk1fVVRfa21zCQkweDA0Cj4gICNkZWZpbmUgRFJNX1VUX1BSSU1FCQkweDA4Cj4gKyNkZWZp bmUgX0RSTV9VVF9wcmltZQkJMHgwOAo+ICAjZGVmaW5lIERSTV9VVF9BVE9NSUMJCTB4MTAKPiAr I2RlZmluZSBfRFJNX1VUX2F0b21pYwkJMHgxMAo+ICAjZGVmaW5lIERSTV9VVF9WQkwJCTB4MjAK PiArI2RlZmluZSBfRFJNX1VUX3ZibAkJMHgyMAo+ICAjZGVmaW5lIERSTV9VVF9TVEFURQkJMHg0 MAo+Cj4gKyNkZWZpbmUgX0RSTV9QUkVGSVggbW9kdWxlX25hbWUoVEhJU19NT0RVTEUpCj4gKwo+ ICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCj4gIC8qKiBcbmFtZSBEUk0gdGVtcGxhdGUgY3VzdG9taXphdGlv biBkZWZhdWx0cyAqLwo+ICAvKkB7Ki8KPiBAQCAtMTQ2LDI1ICsxNTQsMTkgQEAgc3RydWN0IGRt YV9idWZfYXR0YWNobWVudDsKPiAgLyoqIFxuYW1lIE1hY3JvcyB0byBtYWtlIHByaW50ayBlYXNp ZXIgKi8KPiAgLypAeyovCj4KPiAtI2RlZmluZSBfRFJNX1BSSU5USyhvbmNlLCBsZXZlbCwgZm10 LCAuLi4pCQkJCVwKPiAtCWRvIHsJCQkJCQkJCVwKPiAtCQlwcmludGsjI29uY2UoS0VSTl8jI2xl dmVsICJbIiBEUk1fTkFNRSAiXSAiIGZtdCwJXAo+IC0JCQkgICAgICMjX19WQV9BUkdTX18pOwkJ CQlcCj4gLQl9IHdoaWxlICgwKQo+IC0KPiAtI2RlZmluZSBEUk1fSU5GTyhmbXQsIC4uLikJCQkJ CQlcCj4gLQlfRFJNX1BSSU5USygsIElORk8sIGZtdCwgIyNfX1ZBX0FSR1NfXykKPiAtI2RlZmlu ZSBEUk1fTk9URShmbXQsIC4uLikJCQkJCQlcCj4gLQlfRFJNX1BSSU5USygsIE5PVElDRSwgZm10 LCAjI19fVkFfQVJHU19fKQo+IC0jZGVmaW5lIERSTV9XQVJOKGZtdCwgLi4uKQkJCQkJCVwKPiAt CV9EUk1fUFJJTlRLKCwgV0FSTklORywgZm10LCAjI19fVkFfQVJHU19fKQo+IC0KPiAtI2RlZmlu ZSBEUk1fSU5GT19PTkNFKGZtdCwgLi4uKQkJCQkJCVwKPiAtCV9EUk1fUFJJTlRLKF9vbmNlLCBJ TkZPLCBmbXQsICMjX19WQV9BUkdTX18pCj4gLSNkZWZpbmUgRFJNX05PVEVfT05DRShmbXQsIC4u LikJCQkJCQlcCj4gLQlfRFJNX1BSSU5USyhfb25jZSwgTk9USUNFLCBmbXQsICMjX19WQV9BUkdT X18pCj4gLSNkZWZpbmUgRFJNX1dBUk5fT05DRShmbXQsIC4uLikJCQkJCQlcCj4gLQlfRFJNX1BS SU5USyhfb25jZSwgV0FSTklORywgZm10LCAjI19fVkFfQVJHU19fKQo+ICsjZGVmaW5lIERSTV9J TkZPKGZtdCwgYXJncy4uLikJCQkJCQlcCj4gKwlwcl9pbmZvKCJbJXNdICIgZm10LCBfRFJNX1BS RUZJWCwgIyNhcmdzKQo+ICsjZGVmaW5lIERSTV9OT1RFKGZtdCwgYXJncy4uLikJCQkJCQlcCj4g Kwlwcl9ub3RpY2UoIlslc10gIiBmbXQsIF9EUk1fUFJFRklYLCAjI2FyZ3MpCj4gKyNkZWZpbmUg RFJNX1dBUk4oZm10LCBhcmdzLi4uKQkJCQkJCVwKPiArCXByX3dhcm4oIlslc10gIiBmbXQsIF9E Uk1fUFJFRklYLCAjI2FyZ3MpCj4gKwo+ICsjZGVmaW5lIERSTV9JTkZPX09OQ0UoZm10LCBhcmdz Li4uKQkJCQkJXAo+ICsJcHJfaW5mb19vbmNlKCJbJXNdICIgZm10LCBfRFJNX1BSRUZJWCwgIyNh cmdzKQo+ICsjZGVmaW5lIERSTV9OT1RFX09OQ0UoZm10LCBhcmdzLi4uKQkJCQkJXAo+ICsJcHJf bm90aWNlX29uY2UoIlslc10gIiBmbXQsIF9EUk1fUFJFRklYLCAjI2FyZ3MpCj4gKyNkZWZpbmUg RFJNX1dBUk5fT05DRShmbXQsIGFyZ3MuLi4pCQkJCQlcCj4gKwlwcl93YXJuX29uY2UoIlslc10g IiBmbXQsIF9EUk1fUFJFRklYLCAjI2FyZ3MpCj4KPiAgLyoqCj4gICAqIEVycm9yIG91dHB1dC4K PiBAQCAtMTcyLDExICsxNzQsMTAgQEAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudDsKPiAgICog XHBhcmFtIGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCj4gICAqIFxwYXJhbSBhcmcg YXJndW1lbnRzCj4gICAqLwo+IC0jZGVmaW5lIERSTV9ERVZfRVJST1IoZGV2LCBmbXQsIC4uLikJ CQkJCVwKPiAtCWRybV9kZXZfcHJpbnRrKGRldiwgS0VSTl9FUlIsIERSTV9VVF9OT05FLCBfX2Z1 bmNfXywgIiAqRVJST1IqIixcCj4gLQkJICAgICAgIGZtdCwgIyNfX1ZBX0FSR1NfXykKPiAtI2Rl ZmluZSBEUk1fRVJST1IoZm10LCAuLi4pCQkJCQkJXAo+IC0JZHJtX3ByaW50ayhLRVJOX0VSUiwg RFJNX1VUX05PTkUsIGZtdCwJIyNfX1ZBX0FSR1NfXykKPiArI2RlZmluZSBEUk1fREVWX0VSUk9S KGRldiwgZm10LCBhcmdzLi4uKQkJCQlcCj4gKwlkZXZfZXJyKGRldiwgIlslczolc10qRVJST1Iq IiBmbXQsIF9EUk1fUFJFRklYLCBfX2Z1bmNfXywgIyNhcmdzKQo+ICsjZGVmaW5lIERSTV9FUlJP UihmbXQsIGFyZ3MuLi4pCQkJCQkJXAo+ICsJcHJfZXJyKCJbJXM6JXNdKkVSUk9SKiIgZm10LCBf RFJNX1BSRUZJWCwgX19mdW5jX18sICMjYXJncykKPgo+ICAvKioKPiAgICogUmF0ZSBsaW1pdGVk IGVycm9yIG91dHB1dC4gIExpa2UgRFJNX0VSUk9SKCkgYnV0IHdvbid0IGZsb29kIHRoZSBsb2cu Cj4gQEAgLTE4NCw4MSArMTg1LDEyOSBAQCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50Owo+ICAg KiBccGFyYW0gZm10IHByaW50ZigpIGxpa2UgZm9ybWF0IHN0cmluZy4KPiAgICogXHBhcmFtIGFy ZyBhcmd1bWVudHMKPiAgICovCj4gLSNkZWZpbmUgRFJNX0RFVl9FUlJPUl9SQVRFTElNSVRFRChk ZXYsIGZtdCwgLi4uKQkJCVwKPiArI2RlZmluZSBEUk1fREVWX0VSUk9SX1JBVEVMSU1JVEVEKGRl diwgZm10LCBhcmdzLi4uKQkJCVwKPiAgKHsJCQkJCQkJCQlcCj4gIAlzdGF0aWMgREVGSU5FX1JB VEVMSU1JVF9TVEFURShfcnMsCQkJCVwKPiAgCQkJCSAgICAgIERFRkFVTFRfUkFURUxJTUlUX0lO VEVSVkFMLAlcCj4gIAkJCQkgICAgICBERUZBVUxUX1JBVEVMSU1JVF9CVVJTVCk7CQlcCj4gIAkJ CQkJCQkJCVwKPiAgCWlmIChfX3JhdGVsaW1pdCgmX3JzKSkJCQkJCQlcCj4gLQkJRFJNX0RFVl9F UlJPUihkZXYsIGZtdCwgIyNfX1ZBX0FSR1NfXyk7CQkJXAo+ICsJCURSTV9ERVZfRVJST1IoZGV2 LCBmbXQsICMjYXJncyk7CQkJXAo+ICB9KQo+IC0jZGVmaW5lIERSTV9FUlJPUl9SQVRFTElNSVRF RChmbXQsIC4uLikJCQkJCVwKPiAtCURSTV9ERVZfRVJST1JfUkFURUxJTUlURUQoTlVMTCwgZm10 LCAjI19fVkFfQVJHU19fKQo+IC0KPiAtI2RlZmluZSBEUk1fREVWX0lORk8oZGV2LCBmbXQsIC4u LikJCQkJCVwKPiAtCWRybV9kZXZfcHJpbnRrKGRldiwgS0VSTl9JTkZPLCBEUk1fVVRfTk9ORSwg X19mdW5jX18sICIiLCBmbXQsCVwKPiAtCQkgICAgICAgIyNfX1ZBX0FSR1NfXykKPiAtCj4gLSNk ZWZpbmUgRFJNX0RFVl9JTkZPX09OQ0UoZGV2LCBmbXQsIC4uLikJCQkJXAo+ICsjZGVmaW5lIERS TV9FUlJPUl9SQVRFTElNSVRFRChmbXQsIGFyZ3MuLi4pCQkJCVwKPiAgKHsJCQkJCQkJCQlcCj4g LQlzdGF0aWMgYm9vbCBfX3ByaW50X29uY2UgX19yZWFkX21vc3RseTsJCQkJXAo+IC0JaWYgKCFf X3ByaW50X29uY2UpIHsJCQkJCQlcCj4gLQkJX19wcmludF9vbmNlID0gdHJ1ZTsJCQkJCVwKPiAt CQlEUk1fREVWX0lORk8oZGV2LCBmbXQsICMjX19WQV9BUkdTX18pOwkJCVwKPiAtCX0JCQkJCQkJ CVwKPiArCXN0YXRpYyBERUZJTkVfUkFURUxJTUlUX1NUQVRFKF9ycywJCQkJXAo+ICsJCQkJICAg ICAgREVGQVVMVF9SQVRFTElNSVRfSU5URVJWQUwsCVwKPiArCQkJCSAgICAgIERFRkFVTFRfUkFU RUxJTUlUX0JVUlNUKTsJCVwKPiArCQkJCQkJCQkJXAo+ICsJaWYgKF9fcmF0ZWxpbWl0KCZfcnMp KQkJCQkJCVwKPiArCQlEUk1fRVJST1IoZm10LCAjI2FyZ3MpOwkJCQkJXAo+ICB9KQo+Cj4gKyNk ZWZpbmUgRFJNX0RFVl9JTkZPKGRldiwgZm10LCBhcmdzLi4uKQkJCQkJXAo+ICsJZGV2X2luZm8o ZGV2LCAiWyVzOiVzXSAiIGZtdCwgX0RSTV9QUkVGSVgsIF9fZnVuY19fLCAjI2FyZ3MpCj4gKwo+ ICsjZGVmaW5lIERSTV9ERVZfSU5GT19PTkNFKGRldiwgZm10LCBhcmdzLi4uKQkJCQlcCj4gKwlk ZXZfaW5mb19vbmNlKGRldiwgIlslczolc10gIiBmbXQsIF9EUk1fUFJFRklYLCBfX2Z1bmNfXywg IyNhcmdzKQo+ICsKPiAgLyoqCj4gICAqIERlYnVnIG91dHB1dC4KPiAgICoKPiAgICogXHBhcmFt IGZtdCBwcmludGYoKSBsaWtlIGZvcm1hdCBzdHJpbmcuCj4gICAqIFxwYXJhbSBhcmcgYXJndW1l bnRzCj4gICAqLwo+ICsKPiArI2lmIGRlZmluZWQoQ09ORklHX0RZTkFNSUNfREVCVUcpCj4gKyNk ZWZpbmUgRFJNX0RFRl9EWU5fREVCVUdfREFUQShuYW1lLCBmbXQpCQkJCVwKPiArCURFRklORV9E WU5BTUlDX0RFQlVHX01FVEFEQVRBKG5hbWUsIGZtdCk7Cj4gKyNkZWZpbmUgRFJNX0RZTl9ERUJV R19CUkFOQ0goZGVzY3JpcHRvcikJCQkJXAo+ICsJRFlOQU1JQ19ERUJVR19CUkFOQ0goZGVzY3Jp cHRvcikKPiArCj4gKyNkZWZpbmUgX19kcm1fZHluX2Rldl9kYmcoZGVzY3JpcHRvciwgZGV2LCBm bXQsIGFyZ3MuLi4pCQlcCj4gKwlfX2R5bmFtaWNfZGV2X2RiZyhkZXNjcmlwdG9yLCBkZXYsIGZt dCwgIyNhcmdzKQo+ICsjZGVmaW5lIF9fZHJtX2R5bl9wcl9kZWJ1ZyhkZXNjcmlwdG9yLCBmbXQs IGFyZ3MuLi4pCQkJXAo+ICsJX19keW5hbWljX3ByX2RlYnVnKGRlc2NyaXB0b3IsIGZtdCwgIyNh cmdzKQo+ICsjZWxzZQo+ICsjZGVmaW5lIERSTV9ERUZfRFlOX0RFQlVHX0RBVEEobmFtZSwgZm10 KQlkbyB7fSB3aGlsZSgwKQo+ICsjZGVmaW5lIERSTV9EWU5fREVCVUdfQlJBTkNIKGRlc2NyaXB0 b3IpCTAKPiArCj4gKyNkZWZpbmUgX19kcm1fZHluX2Rldl9kYmcoZGVzY3JpcHRvciwgZGV2LCBm bXQsIGFyZ3MuLi4pCQlcCj4gKwlkZXZfZGJnKGRldiwgZm10LCAjI2FyZ3MpCj4gKyNkZWZpbmUg X19kcm1fZHluX3ByX2RlYnVnKGRlc2NyaXB0b3IsIGZtdCwgYXJncy4uLikJCQlcCj4gKwlwcl9k ZWJ1ZyhmbXQsICMjYXJncykKPiArI2VuZGlmCj4gKwo+ICsvKiBJZiBtb2RpZnlpbmcsIG5vdGUg dGhlIGR1cGxpY2F0aW9uIG9mIHRoZSBmb3JtYXQgc3RyaW5ncyBmb3IgdGhlCj4gKyAqIGR5bmFt aWMgZGVidWcgbWV0YSBkYXRhIGFuZCBmb3IgcGFzc2luZyB0byBwcmludGsuIFdlIGRvbid0Cj4g KyAqIGRlcmVmIGRlc2NyaXB0b3ItPmZvcm1hdCB0byBoYW5kbGUgYnVpbGRpbmcgd2l0aG91dAo+ ICsgKiBDT05GSUdfRFlOQU1JQ19ERUJVRwo+ICsgKi8KPiArI2RlZmluZSBfRFJNX0RFVl9ERUJV RyhkZXYsIGNhdCwgZm10LCBhcmdzLi4uKQkJCQlcCj4gKyh7CQkJCQkJCQkJXAo+ICsJRFJNX0RF Rl9EWU5fREVCVUdfREFUQShkZXNjcmlwdG9yLCAiWyVzOiVzXVsiI2NhdCJdICIgZm10KTsJXAo+ ICsJaWYgKERSTV9EWU5fREVCVUdfQlJBTkNIKGRlc2NyaXB0b3IpIHx8CQkJCVwKPiArCSAgICB1 bmxpa2VseShkcm1fZGVidWcgJiBfRFJNX1VUXyMjY2F0KSkgewkJCVwKPiArCQlfX2RybV9keW5f ZGV2X2RiZygmZGVzY3JpcHRvciwgZGV2LAkJCVwKPiArCQkJCSAgIlslczolc11bIiNjYXQiXSAi IGZtdCwJCVwKPiArCQkJCSAgX0RSTV9QUkVGSVgsIF9fZnVuY19fLCAjI2FyZ3MpOwlcCj4gKwl9 CQkJCQkJCQlcCj4gK30pCj4gKyNkZWZpbmUgX0RSTV9ERUJVRyhjYXQsIGZtdCwgYXJncy4uLikJ CQkJCVwKPiArKHsJCQkJCQkJCQlcCj4gKwlEUk1fREVGX0RZTl9ERUJVR19EQVRBKGRlc2NyaXB0 b3IsICJbJXM6JXNdWyIjY2F0Il0gIiBmbXQpOwlcCj4gKwlpZiAoRFJNX0RZTl9ERUJVR19CUkFO Q0goZGVzY3JpcHRvcikgfHwJCQkJXAo+ICsJICAgIHVubGlrZWx5KGRybV9kZWJ1ZyAmIF9EUk1f VVRfIyNjYXQpKSB7CQkJXAo+ICsJCV9fZHJtX2R5bl9wcl9kZWJ1ZygmZGVzY3JpcHRvciwJCQkJ XAo+ICsJCQkJICAgIlslczolc11bIiNjYXQiXSAiIGZtdCwJCVwKPiArCQkJCSAgIF9EUk1fUFJF RklYLCBfX2Z1bmNfXywgIyNhcmdzKTsJXAo+ICsJfQkJCQkJCQkJXAo+ICt9KQo+ICsKPiAgI2Rl ZmluZSBEUk1fREVWX0RFQlVHKGRldiwgZm10LCBhcmdzLi4uKQkJCQlcCj4gLQlkcm1fZGV2X3By aW50ayhkZXYsIEtFUk5fREVCVUcsIERSTV9VVF9DT1JFLCBfX2Z1bmNfXywgIiIsIGZtdCwJXAo+ IC0JCSAgICAgICAjI2FyZ3MpCj4gLSNkZWZpbmUgRFJNX0RFQlVHKGZtdCwgLi4uKQkJCQkJCVwK PiAtCWRybV9wcmludGsoS0VSTl9ERUJVRywgRFJNX1VUX0NPUkUsIGZtdCwgIyNfX1ZBX0FSR1Nf XykKPiArCV9EUk1fREVWX0RFQlVHKGRldiwgY29yZSwgZm10LCAjI2FyZ3MpCj4gKyNkZWZpbmUg RFJNX0RFQlVHKGZtdCwgYXJncy4uLikJCQkJCQlcCj4gKwlfRFJNX0RFQlVHKGNvcmUsIGZtdCwg IyNhcmdzKQo+Cj4gICNkZWZpbmUgRFJNX0RFVl9ERUJVR19EUklWRVIoZGV2LCBmbXQsIGFyZ3Mu Li4pCQkJCVwKPiAtCWRybV9kZXZfcHJpbnRrKGRldiwgS0VSTl9ERUJVRywgRFJNX1VUX0RSSVZF UiwgX19mdW5jX18sICIiLAlcCj4gLQkJICAgICAgIGZtdCwgIyNhcmdzKQo+IC0jZGVmaW5lIERS TV9ERUJVR19EUklWRVIoZm10LCAuLi4pCQkJCQlcCj4gLQlkcm1fcHJpbnRrKEtFUk5fREVCVUcs IERSTV9VVF9EUklWRVIsIGZtdCwgIyNfX1ZBX0FSR1NfXykKPiArCV9EUk1fREVWX0RFQlVHKGRl diwgZHJ2LCBmbXQsICMjYXJncykKPiArI2RlZmluZSBEUk1fREVCVUdfRFJJVkVSKGZtdCwgYXJn cy4uLikJCQkJCVwKPiArCV9EUk1fREVCVUcoZHJ2LCBmbXQsICMjYXJncykKPgo+ICAjZGVmaW5l IERSTV9ERVZfREVCVUdfS01TKGRldiwgZm10LCBhcmdzLi4uKQkJCQlcCj4gLQlkcm1fZGV2X3By aW50ayhkZXYsIEtFUk5fREVCVUcsIERSTV9VVF9LTVMsIF9fZnVuY19fLCAiIiwgZm10LAlcCj4g LQkJICAgICAgICMjYXJncykKPiAtI2RlZmluZSBEUk1fREVCVUdfS01TKGZtdCwgLi4uKQkJCQkJ XAo+IC0JZHJtX3ByaW50ayhLRVJOX0RFQlVHLCBEUk1fVVRfS01TLCBmbXQsICMjX19WQV9BUkdT X18pCj4gKwlfRFJNX0RFVl9ERUJVRyhkZXYsIGttcywgZm10LCAjI2FyZ3MpCj4gKyNkZWZpbmUg RFJNX0RFQlVHX0tNUyhmbXQsIGFyZ3MuLi4pCQkJCQlcCj4gKwlfRFJNX0RFQlVHKGttcywgZm10 LCAjI2FyZ3MpCj4KPiAgI2RlZmluZSBEUk1fREVWX0RFQlVHX1BSSU1FKGRldiwgZm10LCBhcmdz Li4uKQkJCQlcCj4gLQlkcm1fZGV2X3ByaW50ayhkZXYsIEtFUk5fREVCVUcsIERSTV9VVF9QUklN RSwgX19mdW5jX18sICIiLAlcCj4gLQkJICAgICAgIGZtdCwgIyNhcmdzKQo+IC0jZGVmaW5lIERS TV9ERUJVR19QUklNRShmbXQsIC4uLikJCQkJCVwKPiAtCWRybV9wcmludGsoS0VSTl9ERUJVRywg RFJNX1VUX1BSSU1FLCBmbXQsICMjX19WQV9BUkdTX18pCj4gKwlfRFJNX0RFVl9ERUJVRyhkZXYs IHByaW1lLCBmbXQsICMjYXJncykKPiArI2RlZmluZSBEUk1fREVCVUdfUFJJTUUoZm10LCBhcmdz Li4uKQkJCQkJXAo+ICsJX0RSTV9ERUJVRyhwcmltZSwgZm10LCAjI2FyZ3MpCj4KPiAgI2RlZmlu ZSBEUk1fREVWX0RFQlVHX0FUT01JQyhkZXYsIGZtdCwgYXJncy4uLikJCQkJXAo+IC0JZHJtX2Rl dl9wcmludGsoZGV2LCBLRVJOX0RFQlVHLCBEUk1fVVRfQVRPTUlDLCBfX2Z1bmNfXywgIiIsCVwK PiAtCQkgICAgICAgZm10LCAjI2FyZ3MpCj4gLSNkZWZpbmUgRFJNX0RFQlVHX0FUT01JQyhmbXQs IC4uLikJCQkJCVwKPiAtCWRybV9wcmludGsoS0VSTl9ERUJVRywgRFJNX1VUX0FUT01JQywgZm10 LCAjI19fVkFfQVJHU19fKQo+ICsJX0RSTV9ERVZfREVCVUcoZGV2LCBhdG9taWMsIGZtdCwgIyNh cmdzKQo+ICsjZGVmaW5lIERSTV9ERUJVR19BVE9NSUMoZm10LCBhcmdzLi4uKQkJCQkJXAo+ICsJ X0RSTV9ERUJVRyhhdG9taWMsIGZtdCwgIyNhcmdzKQo+Cj4gICNkZWZpbmUgRFJNX0RFVl9ERUJV R19WQkwoZGV2LCBmbXQsIGFyZ3MuLi4pCQkJCVwKPiAtCWRybV9kZXZfcHJpbnRrKGRldiwgS0VS Tl9ERUJVRywgRFJNX1VUX1ZCTCwgX19mdW5jX18sICIiLCBmbXQsCVwKPiAtCQkgICAgICAgIyNh cmdzKQo+IC0jZGVmaW5lIERSTV9ERUJVR19WQkwoZm10LCAuLi4pCQkJCQlcCj4gLQlkcm1fcHJp bnRrKEtFUk5fREVCVUcsIERSTV9VVF9WQkwsIGZtdCwgIyNfX1ZBX0FSR1NfXykKPiArCV9EUk1f REVWX0RFQlVHKGRldiwgdmJsLCBmbXQsICMjYXJncykKPiArI2RlZmluZSBEUk1fREVCVUdfVkJM KGZtdCwgYXJncy4uLikJCQkJCVwKPiArCV9EUk1fREVCVUcodmJsLCBmbXQsICMjYXJncykKPgo+ IC0jZGVmaW5lIF9EUk1fREVWX0RFRklORV9ERUJVR19SQVRFTElNSVRFRChkZXYsIGxldmVsLCBm bXQsIGFyZ3MuLi4pCVwKPiArI2RlZmluZSBfRFJNX0RFVl9ERUZJTkVfREVCVUdfUkFURUxJTUlU RUQoZGV2LCBjYXRlZ29yeSwgZm10LCBhcmdzLi4uKQlcCj4gICh7CQkJCQkJCQkJXAo+ICAJc3Rh dGljIERFRklORV9SQVRFTElNSVRfU1RBVEUoX3JzLAkJCQlcCj4gIAkJCQkgICAgICBERUZBVUxU X1JBVEVMSU1JVF9JTlRFUlZBTCwJXAo+ICAJCQkJICAgICAgREVGQVVMVF9SQVRFTElNSVRfQlVS U1QpOwkJXAo+ICAJaWYgKF9fcmF0ZWxpbWl0KCZfcnMpKQkJCQkJCVwKPiAtCQlkcm1fZGV2X3By aW50ayhkZXYsIEtFUk5fREVCVUcsIERSTV9VVF8gIyMgbGV2ZWwsCVwKPiAtCQkJICAgICAgIF9f ZnVuY19fLCAiIiwgZm10LCAjI2FyZ3MpOwkJXAo+ICsJCV9EUk1fREVWX0RFQlVHKGRldiwgY2F0 ZWdvcnksIGZtdCwgIyNhcmdzKTsJCVwKPiArfSkKPiArI2RlZmluZSBfRFJNX0RFRklORV9ERUJV R19SQVRFTElNSVRFRChjYXRlZ29yeSwgZm10LCBhcmdzLi4uKQlcCj4gKyh7CQkJCQkJCQkJXAo+ ICsJc3RhdGljIERFRklORV9SQVRFTElNSVRfU1RBVEUoX3JzLAkJCQlcCj4gKwkJCQkgICAgICBE RUZBVUxUX1JBVEVMSU1JVF9JTlRFUlZBTCwJXAo+ICsJCQkJICAgICAgREVGQVVMVF9SQVRFTElN SVRfQlVSU1QpOwkJXAo+ICsJaWYgKF9fcmF0ZWxpbWl0KCZfcnMpKQkJCQkJCVwKPiArCQlfRFJN X0RFQlVHKGNhdGVnb3J5LCBmbXQsICMjYXJncyk7CQkJXAo+ICB9KQo+Cj4gIC8qKgo+IEBAIC0y NjgsMjEgKzMxNywyNCBAQCBzdHJ1Y3QgZG1hX2J1Zl9hdHRhY2htZW50Owo+ICAgKiBccGFyYW0g YXJnIGFyZ3VtZW50cwo+ICAgKi8KPiAgI2RlZmluZSBEUk1fREVWX0RFQlVHX1JBVEVMSU1JVEVE KGRldiwgZm10LCBhcmdzLi4uKQkJCVwKPiAtCURFVl9fRFJNX0RFRklORV9ERUJVR19SQVRFTElN SVRFRChkZXYsIENPUkUsIGZtdCwgIyNhcmdzKQo+ICsJX0RSTV9ERUZJTkVfREVCVUdfUkFURUxJ TUlURUQoZGV2LCBjb3JlLCBmbXQsICMjYXJncykKPiAgI2RlZmluZSBEUk1fREVCVUdfUkFURUxJ TUlURUQoZm10LCBhcmdzLi4uKQkJCQlcCj4gLQlEUk1fREVWX0RFQlVHX1JBVEVMSU1JVEVEKE5V TEwsIGZtdCwgIyNhcmdzKQo+ICsJX0RSTV9ERUZJTkVfREVCVUdfUkFURUxJTUlURUQoY29yZSwg Zm10LCAjI2FyZ3MpCj4gKwo+ICAjZGVmaW5lIERSTV9ERVZfREVCVUdfRFJJVkVSX1JBVEVMSU1J VEVEKGRldiwgZm10LCBhcmdzLi4uKQkJXAo+IC0JX0RSTV9ERVZfREVGSU5FX0RFQlVHX1JBVEVM SU1JVEVEKGRldiwgRFJJVkVSLCBmbXQsICMjYXJncykKPiArCV9EUk1fREVWX0RFRklORV9ERUJV R19SQVRFTElNSVRFRChkZXYsIGRydiwgZm10LCAjI2FyZ3MpCj4gICNkZWZpbmUgRFJNX0RFQlVH X0RSSVZFUl9SQVRFTElNSVRFRChmbXQsIGFyZ3MuLi4pCQkJXAo+IC0JRFJNX0RFVl9ERUJVR19E UklWRVJfUkFURUxJTUlURUQoTlVMTCwgZm10LCAjI2FyZ3MpCj4gKwlfRFJNX0RFVl9ERUZJTkVf REVCVUdfUkFURUxJTUlURUQoZHJ2LCBmbXQsICMjYXJncykKPiArCj4gICNkZWZpbmUgRFJNX0RF Vl9ERUJVR19LTVNfUkFURUxJTUlURUQoZGV2LCBmbXQsIGFyZ3MuLi4pCQlcCj4gLQlfRFJNX0RF Vl9ERUZJTkVfREVCVUdfUkFURUxJTUlURUQoZGV2LCBLTVMsIGZtdCwgIyNhcmdzKQo+ICsJX0RS TV9ERVZfREVGSU5FX0RFQlVHX1JBVEVMSU1JVEVEKGRldiwga21zLCBmbXQsICMjYXJncykKPiAg I2RlZmluZSBEUk1fREVCVUdfS01TX1JBVEVMSU1JVEVEKGZtdCwgYXJncy4uLikJCQkJXAo+IC0J RFJNX0RFVl9ERUJVR19LTVNfUkFURUxJTUlURUQoTlVMTCwgZm10LCAjI2FyZ3MpCj4gKwlfRFJN X0RFRklORV9ERUJVR19SQVRFTElNSVRFRChrbXMsIGZtdCwgIyNhcmdzKQo+ICsKPiAgI2RlZmlu ZSBEUk1fREVWX0RFQlVHX1BSSU1FX1JBVEVMSU1JVEVEKGRldiwgZm10LCBhcmdzLi4uKQkJXAo+ IC0JX0RSTV9ERVZfREVGSU5FX0RFQlVHX1JBVEVMSU1JVEVEKGRldiwgUFJJTUUsIGZtdCwgIyNh cmdzKQo+ICsJX0RSTV9ERVZfREVGSU5FX0RFQlVHX1JBVEVMSU1JVEVEKGRldiwgcHJpbWUsIGZt dCwgIyNhcmdzKQo+ICAjZGVmaW5lIERSTV9ERUJVR19QUklNRV9SQVRFTElNSVRFRChmbXQsIGFy Z3MuLi4pCQkJXAo+IC0JRFJNX0RFVl9ERUJVR19QUklNRV9SQVRFTElNSVRFRChOVUxMLCBmbXQs ICMjYXJncykKPiArCV9EUk1fREVGSU5FX0RFQlVHX1JBVEVMSU1JVEVEKHByaW1lLCBmbXQsICMj YXJncykKPgo+ICAvKiBGb3JtYXQgc3RyaW5ncyBhbmQgYXJndW1lbnQgc3BsaXR0ZXJzIHRvIHNp bXBsaWZ5IHByaW50aW5nCj4gICAqIHZhcmlvdXMgImNvbXBsZXgiIG9iamVjdHMKPgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK