From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH] drm: Funnel drm logs to tracepoints Date: Tue, 15 Oct 2019 15:11:56 -0400 Message-ID: <20191015191156.GW85762@art_vandelay> References: <20191010204823.195540-1-sean@poorly.run> <242462f0-ac8d-ab8a-e567-74678da3f68f@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yb1-xb41.google.com (mail-yb1-xb41.google.com [IPv6:2607:f8b0:4864:20::b41]) by gabe.freedesktop.org (Postfix) with ESMTPS id C63396E19A for ; Tue, 15 Oct 2019 19:12:00 +0000 (UTC) Received: by mail-yb1-xb41.google.com with SMTP id 206so6958177ybc.8 for ; Tue, 15 Oct 2019 12:12:00 -0700 (PDT) Content-Disposition: inline In-Reply-To: <242462f0-ac8d-ab8a-e567-74678da3f68f@suse.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Zimmermann , Joonas Lahtinen , Rob Clark , Daniel Vetter Cc: David Airlie , Sean Paul , Sean Paul , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBPY3QgMTUsIDIwMTkgYXQgMDI6MDc6MDBQTSArMDIwMCwgVGhvbWFzIFppbW1lcm1h bm4gd3JvdGU6Cj4gSGkKPiAKCkhpIFRob21hcyAoYW5kIERhbmllbC9Kb29uYXMvUm9iKSwKVGhh bmtzIGZvciB5b3VyIGZlZWRiYWNrCgo+IEFtIDEwLjEwLjE5IHVtIDIyOjQ4IHNjaHJpZWIgU2Vh biBQYXVsOgo+ID4gRnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4gPiAK PiA+ICpSZWNvcmQgc2NyYXRjaCogWW91IHJlYWQgdGhhdCBzdWJqZWN0IGNvcnJlY3RseSwgSSBi ZXQgeW91J3JlIHdvbmRlcmluZwo+ID4gaG93IHdlIGdvdCBoZXJlLiBBdCBsZWFzdCBoZWFyIG1l IG91dCBiZWZvcmUgeW91IGZsYW1lIDotKQo+ID4gCj4gPiBGb3IgYSBsb25nIHdoaWxlIG5vdywg d2UgKENocm9tZU9TKSBoYXZlIGJlZW4gc3RydWdnbGluZyBnZXR0aW5nIGFueQo+ID4gdmFsdWUg b3V0IG9mIHVzZXIgZmVlZGJhY2sgcmVwb3J0cyBvZiBkaXNwbGF5IGZhaWx1cmVzIChub3RhYmx5 IGV4dGVybmFsCj4gPiBkaXNwbGF5cyBub3Qgd29ya2luZykuIFRoZSBwcm9ibGVtIGlzIHRoYXQg YWxsIGxvZ2dpbmcsIGV2ZW4gZmF0YWwKPiA+IGVycm9ycyAod2VsbCwgZmF0YWwgaW4gdGhlIHNl bnNlIHRoYXQgYSBkaXNwbGF5IHdvbid0IGxpZ2h0IHVwKSBhcmUKPiA+IGxvZ2dlZCBhdCBERUJV RyBsb2cgbGV2ZWwuIFNvIGluIG9yZGVyIHRvIGV4dHJhY3QgdGhlc2UgbG9ncywgeW91IG5lZWQK PiA+IHRvIGJlIGFibGUgdG8gdHVybiBvbiBsb2dnaW5nLCBhbmQgcmVwcm9kdWNlIHRoZSBpc3N1 ZSB3aXRoIGRlYnVnCj4gPiBlbmFibGVkLiBVbmZvcnR1bmF0ZWx5LCB0aGlzIGlzbid0IHJlYWxs eSBzb21ldGhpbmcgd2UgY2FuIGFzayBDck9TIHVzZXJzCj4gPiBJIHNwb2tlIHdpdGggYWlybGll ZCBhYm91dCB0aGlzIGFuZCBSSEVMIGhhcyBzaW1pbGFyIGlzc3Vlcy4KPiA+IAo+ID4gVGhpcyBp cyB0aGUgcG9pbnQgd2hlcmUgeW91IGFzayBtZSwgIlNvIFNlYW4sIHdoeSBkb24ndCB5b3UganVz dCBlbmFibGUKPiA+IERSTV9VVF9CTEFIPyIuIEdvb2QgcXVlc3Rpb24hIEhlcmUgYXJlIHRoZSBy ZWFzb25zIGluIGFzY2VuZGluZyBvcmRlciBvZgo+ID4gc2V2ZXJpdHk6Cj4gPiAgMS0gUGVvcGxl IGFyZW4ndCBjb25zaXN0ZW50IHdpdGggdGhlaXIgY2F0ZWdvcmllcywgc28gd2UnZCBoYXZlIHRv Cj4gPiAgICAgZW5hYmxlIGEgYnVuY2ggdG8gZ2V0IHByb3BlciBjb3ZlcmFnZQo+ID4gIDItIFdl IGRvbid0IHdhbnQgdG8gb3ZlcndoZWxtIHN5c2xvZyB3aXRoIGRybSBzcGFtLCBvdGhlcnMgaGF2 ZSB0byB1c2UKPiA+ICAgICBpdCB0b28KPiA+ICAzLSBDb25zb2xlIGxvZ2dpbmcgaXMgc2xvdwo+ ID4gCj4gPiBIb3BlZnVsbHkgeW91J3JlIHdpdGggbWUgc28gZmFyLiBJIGhhdmUgYSBwcm9ibGVt IHRoYXQgaGFzIG5vIGV4aXN0aW5nCj4gPiBzb2x1dGlvbi4gV2hhdCBJIHJlYWxseSB3YW50IGlz IGEgcmluZ2J1ZmZlciBvZiB0aGUgbW9zdCByZWNlbnQgbG9ncwo+ID4gKGluIHRoZSBjYXRlZ29y aWVzIEknbSBpbnRlcmVzdGVkIGluKSBleHBvc2VkIHZpYSBkZWJ1Z2ZzIHNvIEkgY2FuCj4gPiBl eHRyYWN0IGl0IHdoZW4gdXNlcnMgZmlsZSBmZWVkYmFjay4KPiAKPiBGb3IgYnVnIHJlcG9ydHMs IEkgZG9uJ3Qgd2FudCBjYXRlZ29yaWVzIG9yIGFueXRoaW5nIGVsc2UgdGhhdCB1c2VycyBjYW4K PiBzd2l0Y2ggb24vb2ZmLiBBbGwgSSdkIHdhbnQgaXMgYSBzaW1wbGUgd2F5IG9mIHJldHJpZXZp bmcgdGhlIGxhc3QgfjEwMAo+IG1lc3NhZ2VzIGZyb20gRFJNIChhbGE6ICJwbGVhc2UgYXR0YWNo IHRoZSBjb250ZW50IG9mIHRoZSBmaWxlIGF0Cj4gL3N5cy9kZWJ1Zy4uLiIpLgo+IAoKWWVhaCwg dGhpcyBpcyBiYXNpY2FsbHkgd2hhdCBJJ20gbG9va2luZyBmb3IgKGFsdGhvdWdoIEknZCBmaWx0 ZXIgb3V0IGEgZmV3CmNhdGVnb3JpZXMgdGhhdCBhcmUgcGFydGljdWxhcmx5IG5vaXN5IGFuZCBi dW1wIE4gdG8gYXMgYmlnIGFzIEkgY2FuIGdldCBhd2F5CndpdGgpLgoKPiA+IEl0IGp1c3Qgc28g aGFwcGVucyB0aGF0IHRoZXJlIGlzIHNvbWV0aGluZyB3aGljaCBkb2VzIF9leGFjdGx5XyB0aGlz ISBJCj4gPiBjYW4gZHVtcCB0aGUgbW9zdCByZWNlbnQgbG9ncyBpbnRvIHRyYWNlcG9pbnRzLCB0 dXJuIHRoZW0gb24gYW5kIG9mZgo+ID4gZGVwZW5kaW5nIG9uIHdoaWNoIGNhdGVnb3J5IEkgd2Fu dCwgYW5kIHB1bGwgdGhlbSBmcm9tIGRlYnVnZnMgb24gZGVtYW5kLgo+ID4gCj4gPiAiV2hhdCBh Ym91dCB0cmFjZV9wcmludGsoKT8iIFlvdSdsbCBzYXkuIEl0IGRvZXNuJ3QgZ2l2ZSB1cyB0aGUg Y29udHJvbCB3ZQo+ID4gZ2V0IGZyb20gdXNpbmcgdHJhY2Vwb2ludHMgYW5kIGl0J3Mgbm90IG1l YW50IHRvIGJlIGxlZnQgc3ByaW5rbGVkIGFyb3VuZAo+ID4gaW4gY29kZS4KPiA+IAo+ID4gU28g dGhhdCBpcyBob3cgd2UgZ290IGhlcmUsIG5vdyBpdCdzIHRpbWUgZm9yIHlvdSB0byB0ZWxsIG1l IHdoeSB0aGlzIGlzCj4gPiBhIGhvcnJpYmxlIGlkZWEgOi0pCj4gCj4gVHJhY2Vwb2ludHMgYXJl IGNvbnNpZGVyZWQgc3RhYmxlIHVhcGksIHJpZ2h0PyBBcyBhIGRpc3RybyBwZXJzb24gKFNVU0Up Cj4gSSBkb24ndCB3YW50IHVzIHRvIGhhdmUgdG8gbWFpbnRhaW4gZGVidWdnaW5nIG1lc3NhZ2Vz IGZvcmV2ZXIuCj4gCgpUaGlzIGlzIHNvbWV0aGluZyBJIHdhc24ndCBhd2FyZSBvZiAodGhhdCdz IHdoYXQgcmV2aWV3cyBhcmUgZm9yLCByaWdodD8hKS4gU28KdGhpcyBpZGVhIGlzIHBlcmhhcHMg ZGVhZCBpbiB0aGUgd2F0ZXIuIEkgY291bGQgcHJvYmFibHkgaW50ZWdyYXRlIHdpdGgKcmluZ2J1 ZmZlciBhdCBhIGxvd2VyIGxldmVsIGFuZCBleHBvc2UgYSBkcm0tc3BlY2lmaWMgZGVidWdmcyBu b2RlIHdpdGhvdXQgX3Rvb18KbXVjaCBleHRyYSBnb28sIGJ1dCBbYWJddXNpbmcgdHJhY2Vwb2lu dHMgc2VlbWVkIHByZXR0eSBuYXR1cmFsLiBUaGUKb3RoZXIgYmVuZWZpdCB0byB0aGlzIGFwcHJv YWNoIGlzIHRoYXQgYmFja3BvcnRpbmcgaXQgaW50byBkaXN0cm8ga2VybmVscyBpcwpyZWxhdGl2 ZWx5IGVhc3kuCgo+IAo+IFRoZSBwcm9ibGVtIGl0c2VsZiBkb2Vzbid0IHNlZW0gcmVsYXRlZCB0 byBEUk0uIERvIG90aGVyIHN1YnN5c3RlbXMgaGF2ZQo+IHNpbWlsYXIgcmVxdWlyZW1lbnRzPwoK SSB0aGluayBvdGhlciBzdWJzeXN0ZW1zIGFyZSBjaGF0dGllciB0aGFuIG91cnMgKGllOiB3aGVu IGFuIGVycm9yIG9jY3VycyB0aGV5CmFjdHVhbGx5IGxvZyBzb21ldGhpbmcpLiBTb21lIG9mIG91 ciBkcml2ZXJzIGluIGRybSBhcmUgbW9yZSBoZWxwZnVsIHRoYW4gb3RoZXJzCmFzIGZhciBhcyBj b21wbGFpbmluZyB3aGVuIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbnMuIFRoZSBjb3JlIGlu IHBhcnRpY3VsYXIKaXMgcmVhbGx5IGNvbnNlcnZhdGl2ZSBhYm91dCBpc3N1aW5nIGVycm9ycyAo d2hpY2ggbWFrZXMgc2Vuc2Ugc2luY2UgYSBsb3Qgb2YKdGhlIGZhaWx1cmVzIGFyZSBleHBlY3Rl ZCAoYXRvbWljIHRlc3RpbmcgaXMgbWVzc3kpLCBvbmx5IHRoZSBjb21wb3NpdG9yIHJlYWxseQpr bm93cyB3aGljaCBvbmVzIGFyZSBub3Rld29ydGh5KS4KCkkndmUgYmVlbiBob2xkaW5nIG9udG8g dGhpcyBwYXRjaCBmb3IgYSBjb3VwbGUgd2Vla3Mgbm93IGJlY2F1c2UgYWx0aG91Z2ggaXQKZG9l cyB3aGF0IEkgd2FudCAoYW5kIGl0IHNlZW1zIG90aGVycyB3YW50KSwgaXQgZG9lcyBmZWVsIHBy ZXR0eSBncmVhc3kuCgpPbmUgaGFsZi1iYWtlZCBpZGVhIEkgaGFkICh3aGVuIEkgd2FzIHRoaW5r aW5nIGFib3V0IHdoYXQgdG8gZG8gYWZ0ZXIgdGhpcwpwYXJ0aWN1bGFyIGFwcHJvYWNoIHdhcyBp bmV2aXRhYmx5IG5haydkIDopIHdvdWxkIGJlIHRvIGF1ZGl0IHNvbWUgb2YgdGhlIG1vcmUKaW1w b3J0YW50IG1lc3NhZ2VzIGFuZCByZS1jYXRlZ29yaXplIHRoZW0gKG9yIHJhdGhlciBtYWtlIHVz ZSBvZiBjYXRlZ29yeSBiZWluZwphIGJpdCBmaWVsZCB0byBhZGQgYSBuZXcgY2F0ZWdvcnkpLiBU aGUgbmV3IGNhdGVnb3J5IHdvdWxkIGJlIG11Y2ggbG93ZXIgdm9sdW1lCmFuZCBjb3VsZCBiZSB0 dXJuZWQgb24gaW4gcHJvZHVjdGlvbi4gSXQgd291bGQgaG9wZWZ1bGx5IGdsZWFuIGEgbGl0dGxl IG1vcmUgdXNlCmZyb20gdGhlIGNvbnNvbGUgbG9ncy4gRXhhbXBsZXMgb2YgdXNlcyB3b3VsZCBi ZSBkcCBsaW5rIHRyYWluaW5nIG1lc3NhZ2VzLAptb2Rlc2V0IGZhaWx1cmVzLCBiYW5kd2lkdGgg ZXJyb3JzLCBldGMpLiBUaGUgZG93bnNpZGUgdG8gdGhpcyBpcyB0aGF0IGl0J3MgYQp0b24gb2Yg d29yaywgbG90cyBvZiBjaHVybiwgaGFyZCB0byBlbmZvcmNlIGFzIG5ldyBkcml2ZXIgc3VwcG9y dCBpcyBhZGRlZCwgYW5kCmEgY29tcGxldGUgaG9ycm9yLXNob3cgdG8gYmFja3BvcnQuIFNvLCBu b3Qgc3VyZSBhYm91dCBlbWJhcmtpbmcgZG93biB0aGF0IHBhdGguCgpJJ20gZGVzcGVyYXRlIGZv ciBzdWdnZXN0aW9ucywgaWYgYW55b25lIGhhcyBiZXR0ZXIgaWRlYXMhCgpTZWFuCgpQUy0gU29t ZXRoaW5nIEkgZGlkbid0IGFkZHJlc3MgaXMgaG93IHRoaXMgYXBwcm9hY2ggZGlmZmVycyBmcm9t IGp1c3QgZW5hYmxpbmcKICAgIGR5bmFtaWMgZGVidWcuIFdlIGNvdWxkIHByb2JhYmx5IHByaW50 IG91dCB0aGUgZHJtIGNhdGVnb3J5IGluCiAgICBkcm1fW2Rldl9dcHJpbnRrIGFuZCB0aGVuIHVz ZSBhIGZpbHRlciBvbiBkeW5hbWljIGRlYnVnIHRvIGVuYWJsZSBhIHNpbmdsZQogICAgY2F0ZWdv cnkuIEhvd2V2ZXIgd2Ugd291bGQgc3RpbGwgYmUgdXNpbmcgdGhlIFtzbG93XSBjb25zb2xlIGFu ZCBtb3N0CiAgICBjYXRlZ29yaWVzIHdvdWxkIG92ZXJ3aGVsbSB0aGUgY29uc29sZSB3aXRoIGRy bSBzcGFtLiBTbyBub3QgYSBnb29kIGZpdCBmb3IKICAgIHdoYXQgSSdtIGFmdGVyLgoKPiAKPiBC ZXN0IHJlZ2FyZHMKPiBUaG9tYXMKPiAKPiA+IENjOiBEYXZpZCBBaXJsaWUgPGFpcmxpZWRAZ21h aWwuY29tPgo+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KPiA+IC0t LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbnQuYyAgICAgIHwgMTQzICsrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0KPiA+ICBpbmNsdWRlL3RyYWNlL2V2ZW50cy9kcm1fcHJpbnQu aCB8IDExNiArKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAy MzkgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGluY2x1ZGUvdHJhY2UvZXZlbnRzL2RybV9wcmludC5oCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX3ByaW50LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW50LmMK PiA+IGluZGV4IDlhMjVkNzNjMTU1Yy4uZjU5MTI5MjgxMWFhIDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9wcmludC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3By aW50LmMKPiA+IEBAIC0yNywxMSArMjcsMTUgQEAKPiA+ICAKPiA+ICAjaW5jbHVkZSA8c3RkYXJn Lmg+Cj4gPiAgCj4gPiArI2luY2x1ZGUgPGxpbnV4L2JpdG9wcy5oPgo+ID4gICNpbmNsdWRlIDxs aW51eC9pby5oPgo+ID4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGVwYXJhbS5oPgo+ID4gICNpbmNs dWRlIDxsaW51eC9zZXFfZmlsZS5oPgo+ID4gICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+Cj4gPiAg Cj4gPiArI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTCj4gPiArI2luY2x1ZGUgPHRyYWNlL2V2 ZW50cy9kcm1fcHJpbnQuaD4KPiA+ICsKPiA+ICAjaW5jbHVkZSA8ZHJtL2RybS5oPgo+ID4gICNp bmNsdWRlIDxkcm0vZHJtX2Rydi5oPgo+ID4gICNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+Cj4g PiBAQCAtMjQxLDEwICsyNDUsMTAgQEAgdm9pZCBkcm1fZGV2X3ByaW50ayhjb25zdCBzdHJ1Y3Qg ZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmxldmVsLAo+ID4gIAlzdHJ1Y3QgdmFfZm9ybWF0IHZh ZjsKPiA+ICAJdmFfbGlzdCBhcmdzOwo+ID4gIAo+ID4gLQl2YV9zdGFydChhcmdzLCBmb3JtYXQp Owo+ID4gIAl2YWYuZm10ID0gZm9ybWF0Owo+ID4gIAl2YWYudmEgPSAmYXJnczsKPiA+ICAKPiA+ ICsJdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKPiA+ICAJaWYgKGRldikKPiA+ICAJCWRldl9wcmlu dGsobGV2ZWwsIGRldiwgIlsiIERSTV9OQU1FICI6JXBzXSAlcFYiLAo+ID4gIAkJCSAgIF9fYnVp bHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgJnZhZik7Cj4gPiBAQCAtMjUzLDQ5ICsyNTcsMTQ1IEBA IHZvaWQgZHJtX2Rldl9wcmludGsoY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFy ICpsZXZlbCwKPiA+ICAJCSAgICAgICBsZXZlbCwgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDAp LCAmdmFmKTsKPiA+ICAKPiA+ICAJdmFfZW5kKGFyZ3MpOwo+ID4gKwo+ID4gKwl2YV9zdGFydChh cmdzLCBmb3JtYXQpOwo+ID4gKwl0cmFjZV9kcm1fbG9nKGxldmVsLCBkZXYsICZ2YWYpOwo+ID4g Kwl2YV9lbmQoYXJncyk7Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0woZHJtX2Rldl9wcmludGsp Owo+ID4gIAo+ID4gK3N0YXRpYyB1bnNpZ25lZCBpbnQgZHJtX3RyYWNlX2VuYWJsZWQodW5zaWdu ZWQgaW50IGNhdGVnb3J5KQo+ID4gK3sKPiA+ICsJdW5zaWduZWQgaW50IGJpdDsKPiA+ICsKPiA+ ICsJZm9yX2VhY2hfc2V0X2JpdChiaXQsICh1bnNpZ25lZCBsb25nKikmY2F0ZWdvcnksIHNpemVv ZihjYXRlZ29yeSkgKiA4KSB7Cj4gPiArCQlzd2l0Y2ggKEJJVChiaXQpKSB7Cj4gPiArCQljYXNl IERSTV9VVF9OT05FOgo+ID4gKwkJCXJldHVybiB0cmFjZV9kcm1fZGJnX25vbmVfZW5hYmxlZCgp Owo+ID4gKwkJY2FzZSBEUk1fVVRfQ09SRToKPiA+ICsJCQlyZXR1cm4gdHJhY2VfZHJtX2RiZ19j b3JlX2VuYWJsZWQoKTsKPiA+ICsJCWNhc2UgRFJNX1VUX0RSSVZFUjoKPiA+ICsJCQlyZXR1cm4g dHJhY2VfZHJtX2RiZ19kcml2ZXJfZW5hYmxlZCgpOwo+ID4gKwkJY2FzZSBEUk1fVVRfS01TOgo+ ID4gKwkJCXJldHVybiB0cmFjZV9kcm1fZGJnX2ttc19lbmFibGVkKCk7Cj4gPiArCQljYXNlIERS TV9VVF9QUklNRToKPiA+ICsJCQlyZXR1cm4gdHJhY2VfZHJtX2RiZ19wcmltZV9lbmFibGVkKCk7 Cj4gPiArCQljYXNlIERSTV9VVF9BVE9NSUM6Cj4gPiArCQkJcmV0dXJuIHRyYWNlX2RybV9kYmdf YXRvbWljX2VuYWJsZWQoKTsKPiA+ICsJCWNhc2UgRFJNX1VUX1ZCTDoKPiA+ICsJCQlyZXR1cm4g dHJhY2VfZHJtX2RiZ192YmxfZW5hYmxlZCgpOwo+ID4gKwkJY2FzZSBEUk1fVVRfU1RBVEU6Cj4g PiArCQkJcmV0dXJuIHRyYWNlX2RybV9kYmdfc3RhdGVfZW5hYmxlZCgpOwo+ID4gKwkJY2FzZSBE Uk1fVVRfTEVBU0U6Cj4gPiArCQkJcmV0dXJuIHRyYWNlX2RybV9kYmdfbGVhc2VfZW5hYmxlZCgp Owo+ID4gKwkJY2FzZSBEUk1fVVRfRFA6Cj4gPiArCQkJcmV0dXJuIHRyYWNlX2RybV9kYmdfZHBf ZW5hYmxlZCgpOwo+ID4gKwkJZGVmYXVsdDoKPiA+ICsJCQlyZXR1cm4gdHJhY2VfZHJtX2RiZ191 bmtub3duX2VuYWJsZWQoKTsKPiA+ICsJCX0KPiA+ICsJfQo+ID4gKwlyZXR1cm4gZmFsc2U7Cj4g PiArfQo+ID4gKwo+ID4gK3N0YXRpYyB2b2lkIGRybV9kb190cmFjZShjb25zdCBzdHJ1Y3QgZGV2 aWNlICpkZXYsIHVuc2lnbmVkIGludCBjYXRlZ29yeSwKPiA+ICsJCQkgc3RydWN0IHZhX2Zvcm1h dCAqdmFmKQo+ID4gK3sKPiA+ICsJV0FSTl9PTihod2VpZ2h0MzIoY2F0ZWdvcnkpID4gMSk7Cj4g PiArCj4gPiArCXN3aXRjaCAoY2F0ZWdvcnkpIHsKPiA+ICsJY2FzZSBEUk1fVVRfTk9ORToKPiA+ ICsJCXRyYWNlX2RybV9kYmdfbm9uZShkZXYsIHZhZik7Cj4gPiArCQlicmVhazsKPiA+ICsJY2Fz ZSBEUk1fVVRfQ09SRToKPiA+ICsJCXRyYWNlX2RybV9kYmdfY29yZShkZXYsIHZhZik7Cj4gPiAr CQlicmVhazsKPiA+ICsJY2FzZSBEUk1fVVRfRFJJVkVSOgo+ID4gKwkJdHJhY2VfZHJtX2RiZ19k cml2ZXIoZGV2LCB2YWYpOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWNhc2UgRFJNX1VUX0tNUzoKPiA+ ICsJCXRyYWNlX2RybV9kYmdfa21zKGRldiwgdmFmKTsKPiA+ICsJCWJyZWFrOwo+ID4gKwljYXNl IERSTV9VVF9QUklNRToKPiA+ICsJCXRyYWNlX2RybV9kYmdfcHJpbWUoZGV2LCB2YWYpOwo+ID4g KwkJYnJlYWs7Cj4gPiArCWNhc2UgRFJNX1VUX0FUT01JQzoKPiA+ICsJCXRyYWNlX2RybV9kYmdf YXRvbWljKGRldiwgdmFmKTsKPiA+ICsJCWJyZWFrOwo+ID4gKwljYXNlIERSTV9VVF9WQkw6Cj4g PiArCQl0cmFjZV9kcm1fZGJnX3ZibChkZXYsIHZhZik7Cj4gPiArCQlicmVhazsKPiA+ICsJY2Fz ZSBEUk1fVVRfU1RBVEU6Cj4gPiArCQl0cmFjZV9kcm1fZGJnX3N0YXRlKGRldiwgdmFmKTsKPiA+ ICsJCWJyZWFrOwo+ID4gKwljYXNlIERSTV9VVF9MRUFTRToKPiA+ICsJCXRyYWNlX2RybV9kYmdf bGVhc2UoZGV2LCB2YWYpOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWNhc2UgRFJNX1VUX0RQOgo+ID4g KwkJdHJhY2VfZHJtX2RiZ19kcChkZXYsIHZhZik7Cj4gPiArCQlicmVhazsKPiA+ICsJZGVmYXVs dDoKPiA+ICsJCXRyYWNlX2RybV9kYmdfdW5rbm93bihkZXYsIHZhZik7Cj4gPiArCQlicmVhazsK PiA+ICsJfQo+ID4gK30KPiA+ICsKPiA+ICB2b2lkIGRybV9kZXZfZGJnKGNvbnN0IHN0cnVjdCBk ZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGNhdGVnb3J5LAo+ID4gIAkJIGNvbnN0IGNoYXIgKmZv cm1hdCwgLi4uKQo+ID4gIHsKPiA+ICAJc3RydWN0IHZhX2Zvcm1hdCB2YWY7Cj4gPiArCXVuc2ln bmVkIGludCBiaXQ7Cj4gPiAgCXZhX2xpc3QgYXJnczsKPiA+ICAKPiA+IC0JaWYgKCFkcm1fZGVi dWdfZW5hYmxlZChjYXRlZ29yeSkpCj4gPiAtCQlyZXR1cm47Cj4gPiAtCj4gPiAtCXZhX3N0YXJ0 KGFyZ3MsIGZvcm1hdCk7Cj4gPiAgCXZhZi5mbXQgPSBmb3JtYXQ7Cj4gPiAgCXZhZi52YSA9ICZh cmdzOwo+ID4gIAo+ID4gLQlpZiAoZGV2KQo+ID4gLQkJZGV2X3ByaW50ayhLRVJOX0RFQlVHLCBk ZXYsICJbIiBEUk1fTkFNRSAiOiVwc10gJXBWIiwKPiA+IC0JCQkgICBfX2J1aWx0aW5fcmV0dXJu X2FkZHJlc3MoMCksICZ2YWYpOwo+ID4gLQllbHNlCj4gPiAtCQlwcmludGsoS0VSTl9ERUJVRyAi WyIgRFJNX05BTUUgIjolcHNdICVwViIsCj4gPiAtCQkgICAgICAgX19idWlsdGluX3JldHVybl9h ZGRyZXNzKDApLCAmdmFmKTsKPiA+ICsJaWYgKGRybV9kZWJ1Z19lbmFibGVkKGNhdGVnb3J5KSkg ewo+ID4gKwkJdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKPiA+ICsJCWlmIChkZXYpCj4gPiArCQkJ ZGV2X3ByaW50ayhLRVJOX0RFQlVHLCBkZXYsICJbIiBEUk1fTkFNRSAiOiVwc10gJXBWIiwKPiA+ ICsJCQkJICAgX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCAmdmFmKTsKPiA+ICsJCWVsc2UK PiA+ICsJCQlwcmludGsoS0VSTl9ERUJVRyAiWyIgRFJNX05BTUUgIjolcHNdICVwViIsCj4gPiAr CQkJICAgICAgIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgJnZhZik7Cj4gPiArCQl2YV9l bmQoYXJncyk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKCFkcm1fdHJhY2VfZW5hYmxlZChjYXRl Z29yeSkpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCWZvcl9lYWNoX3NldF9iaXQoYml0LCAo dW5zaWduZWQgbG9uZyopJmNhdGVnb3J5LCBzaXplb2YoY2F0ZWdvcnkpICogOCkgewo+ID4gKwkJ dmFfc3RhcnQoYXJncywgZm9ybWF0KTsKPiA+ICsJCWRybV9kb190cmFjZShkZXYsIEJJVChiaXQp LCAmdmFmKTsKPiA+ICsJCXZhX2VuZChhcmdzKTsKPiA+ICsJfQo+ID4gIAo+ID4gLQl2YV9lbmQo YXJncyk7Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0woZHJtX2Rldl9kYmcpOwo+ID4gIAo+ID4g IHZvaWQgZHJtX2RiZyh1bnNpZ25lZCBpbnQgY2F0ZWdvcnksIGNvbnN0IGNoYXIgKmZvcm1hdCwg Li4uKQo+ID4gIHsKPiA+ICAJc3RydWN0IHZhX2Zvcm1hdCB2YWY7Cj4gPiArCXVuc2lnbmVkIGlu dCBiaXQ7Cj4gPiAgCXZhX2xpc3QgYXJnczsKPiA+ICAKPiA+IC0JaWYgKCFkcm1fZGVidWdfZW5h YmxlZChjYXRlZ29yeSkpCj4gPiAtCQlyZXR1cm47Cj4gPiAtCj4gPiAtCXZhX3N0YXJ0KGFyZ3Ms IGZvcm1hdCk7Cj4gPiAgCXZhZi5mbXQgPSBmb3JtYXQ7Cj4gPiAgCXZhZi52YSA9ICZhcmdzOwo+ ID4gIAo+ID4gLQlwcmludGsoS0VSTl9ERUJVRyAiWyIgRFJNX05BTUUgIjolcHNdICVwViIsCj4g PiAtCSAgICAgICBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMCksICZ2YWYpOwo+ID4gKwlpZiAo ZHJtX2RlYnVnX2VuYWJsZWQoY2F0ZWdvcnkpKSB7Cj4gPiArCQl2YV9zdGFydChhcmdzLCBmb3Jt YXQpOwo+ID4gKwkJcHJpbnRrKEtFUk5fREVCVUcgIlsiIERSTV9OQU1FICI6JXBzXSAlcFYiLAo+ ID4gKwkJICAgICAgIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgJnZhZik7Cj4gPiArCQl2 YV9lbmQoYXJncyk7Cj4gPiArCX0KPiA+ICAKPiA+IC0JdmFfZW5kKGFyZ3MpOwo+ID4gKwlpZiAo IWRybV90cmFjZV9lbmFibGVkKGNhdGVnb3J5KSkKPiA+ICsJCXJldHVybjsKPiA+ICsKPiA+ICsJ Zm9yX2VhY2hfc2V0X2JpdChiaXQsICh1bnNpZ25lZCBsb25nKikmY2F0ZWdvcnksIHNpemVvZihj YXRlZ29yeSkgKiA4KSB7Cj4gPiArCQl2YV9zdGFydChhcmdzLCBmb3JtYXQpOwo+ID4gKwkJZHJt X2RvX3RyYWNlKE5VTEwsIEJJVChiaXQpLCAmdmFmKTsKPiA+ICsJCXZhX2VuZChhcmdzKTsKPiA+ ICsJfQo+ID4gIH0KPiA+ICBFWFBPUlRfU1lNQk9MKGRybV9kYmcpOwo+ID4gIAo+ID4gQEAgLTMw NCwxMyArNDA0LDE2IEBAIHZvaWQgZHJtX2Vycihjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKPiA+ ICAJc3RydWN0IHZhX2Zvcm1hdCB2YWY7Cj4gPiAgCXZhX2xpc3QgYXJnczsKPiA+ICAKPiA+IC0J dmFfc3RhcnQoYXJncywgZm9ybWF0KTsKPiA+ICAJdmFmLmZtdCA9IGZvcm1hdDsKPiA+ICAJdmFm LnZhID0gJmFyZ3M7Cj4gPiAgCj4gPiArCXZhX3N0YXJ0KGFyZ3MsIGZvcm1hdCk7Cj4gPiAgCXBy aW50ayhLRVJOX0VSUiAiWyIgRFJNX05BTUUgIjolcHNdICpFUlJPUiogJXBWIiwKPiA+ICAJICAg ICAgIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygwKSwgJnZhZik7Cj4gPiArCXZhX2VuZChhcmdz KTsKPiA+ICAKPiA+ICsJdmFfc3RhcnQoYXJncywgZm9ybWF0KTsKPiA+ICsJdHJhY2VfZHJtX2Vy cihOVUxMLCAmdmFmKTsKPiA+ICAJdmFfZW5kKGFyZ3MpOwo+ID4gIH0KPiA+ICBFWFBPUlRfU1lN Qk9MKGRybV9lcnIpOwo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2RybV9w cmludC5oIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvZHJtX3ByaW50LmgKPiA+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmNjOTNjNjlmM2ZlNAo+ID4gLS0tIC9k ZXYvbnVsbAo+ID4gKysrIGIvaW5jbHVkZS90cmFjZS9ldmVudHMvZHJtX3ByaW50LmgKPiA+IEBA IC0wLDAgKzEsMTE2IEBACj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ID4g Ky8qCj4gPiArICogQ29weXJpZ2h0IChDKSAyMDE5IEdvb2dsZSwgSW5jLgo+ID4gKyAqCj4gPiAr ICogQXV0aG9yczoKPiA+ICsgKiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KPiA+ ICsgKi8KPiA+ICsjdW5kZWYgVFJBQ0VfU1lTVEVNCj4gPiArI2RlZmluZSBUUkFDRV9TWVNURU0g ZHJtX3ByaW50Cj4gPiArCj4gPiArI2lmICFkZWZpbmVkKF9UUkFDRV9EUk1fUFJJTlRfSCkgfHwg ZGVmaW5lZChUUkFDRV9IRUFERVJfTVVMVElfUkVBRCkKPiA+ICsKPiA+ICsjaW5jbHVkZSA8bGlu dXgvZGV2aWNlLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L3RyYWNlcG9pbnQuaD4KPiA+ICsKPiA+ ICsjZGVmaW5lIERSTV9QUklOVF9NQVggMjU2Cj4gPiArCj4gPiArI2RlZmluZSBfVFJBQ0VfRFJN X1BSSU5UX0gKPiA+ICsKPiA+ICtUUkFDRV9FVkVOVChkcm1fbG9nLAo+ID4gKwlUUF9QUk9UTyhj b25zdCBjaGFyICogbGV2ZWwsIGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwKPiA+ICsJCSBzdHJ1 Y3QgdmFfZm9ybWF0ICp2YWYpLAo+ID4gKwlUUF9BUkdTKGxldmVsLCBkZXYsIHZhZiksCj4gPiAr CVRQX1NUUlVDVF9fZW50cnkoCj4gPiArCQlfX2ZpZWxkKGNvbnN0IGNoYXIgKiwJCWxldmVsCQkJ KQo+ID4gKwkJX19maWVsZChjb25zdCBzdHJ1Y3QgZGV2aWNlICosCWRldgkJCSkKPiA+ICsJCV9f ZHluYW1pY19hcnJheShjaGFyLAkJbXNnLAlEUk1fUFJJTlRfTUFYCSkKPiA+ICsJCV9fZmllbGQo aW50LAkJCWxlbgkJCSkKPiA+ICsJKSwKPiA+ICsJVFBfZmFzdF9hc3NpZ24oCj4gPiArCQlfX2Vu dHJ5LT5sZXZlbCA9IGxldmVsOwo+ID4gKwkJX19lbnRyeS0+ZGV2ID0gZGV2Owo+ID4gKwkJX19l bnRyeS0+bGVuID0gdnNucHJpbnRmKF9fZ2V0X3N0cihtc2cpLCBEUk1fUFJJTlRfTUFYLAo+ID4g KwkJCQkJIHZhZi0+Zm10LCAqdmFmLT52YSk7Cj4gPiArCQlpZiAoX19lbnRyeS0+bGVuID4gMCAm Jgo+ID4gKwkJICAgIF9fZ2V0X3N0cihtc2cpW19fZW50cnktPmxlbiAtIDFdID09ICdcbicpCj4g PiArCQkJX19nZXRfc3RyKG1zZylbLS1fX2VudHJ5LT5sZW5dID0gJ1wwJzsKPiA+ICsJKSwKPiA+ ICsJVFBfcHJpbnRrKCIlcyAlcyAlczogJXMiLCBfX2VudHJ5LT5sZXZlbCwKPiA+ICsJCSAgX19l bnRyeS0+ZGV2ID8gZGV2X2RyaXZlcl9zdHJpbmcoX19lbnRyeS0+ZGV2KSA6ICIoTlVMTCk6IiwK PiA+ICsJCSAgX19lbnRyeS0+ZGV2ID8gZGV2X25hbWUoX19lbnRyeS0+ZGV2KSA6ICIiLCBfX2dl dF9zdHIobXNnKSkKPiA+ICspOwo+ID4gKwo+ID4gK1RSQUNFX0VWRU5UKGNsYXNzX2RybV9jYXRl Z29yeV9sb2csCj4gPiArCVRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IHZhX2Zvcm1hdCAqdmFmKSwKPiA+ICsJVFBfQVJHUyhkZXYsIHZhZiksCj4gPiArCVRQX1NUUlVD VF9fZW50cnkoCj4gPiArCQlfX2ZpZWxkKGNvbnN0IHN0cnVjdCBkZXZpY2UgKiwJZGV2CQkJKQo+ ID4gKwkJX19keW5hbWljX2FycmF5KGNoYXIsCQltc2csCURSTV9QUklOVF9NQVgJKQo+ID4gKwkJ X19maWVsZChpbnQsCQkJbGVuCQkJKQo+ID4gKwkpLAo+ID4gKwlUUF9mYXN0X2Fzc2lnbigKPiA+ ICsJCV9fZW50cnktPmRldiA9IGRldjsKPiA+ICsJCV9fZW50cnktPmxlbiA9IHZzbnByaW50Zihf X2dldF9zdHIobXNnKSwgRFJNX1BSSU5UX01BWCwKPiA+ICsJCQkJCSB2YWYtPmZtdCwgKnZhZi0+ dmEpOwo+ID4gKwkJaWYgKF9fZW50cnktPmxlbiA+IDAgJiYKPiA+ICsJCSAgICBfX2dldF9zdHIo bXNnKVtfX2VudHJ5LT5sZW4gLSAxXSA9PSAnXG4nKQo+ID4gKwkJCV9fZ2V0X3N0cihtc2cpWy0t X19lbnRyeS0+bGVuXSA9ICdcMCc7Cj4gPiArCSksCj4gPiArCVRQX3ByaW50aygiJXMgJXMlcyVz IiwKPiA+ICsJCSAgX19lbnRyeS0+ZGV2ID8gZGV2X2RyaXZlcl9zdHJpbmcoX19lbnRyeS0+ZGV2 KSA6ICIiLAo+ID4gKwkJICBfX2VudHJ5LT5kZXYgPyBkZXZfbmFtZShfX2VudHJ5LT5kZXYpIDog IiIsCj4gPiArCQkgIF9fZW50cnktPmRldiA/ICI6ICIgOiAiIiwgX19nZXRfc3RyKG1zZykpCj4g PiArKTsKPiA+ICtERUZJTkVfRVZFTlQoY2xhc3NfZHJtX2NhdGVnb3J5X2xvZywgZHJtX2VyciwK PiA+ICsJVFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdmFfZm9ybWF0 ICp2YWYpLAo+ID4gKwlUUF9BUkdTKGRldiwgdmFmKQo+ID4gKyk7Cj4gPiArREVGSU5FX0VWRU5U KGNsYXNzX2RybV9jYXRlZ29yeV9sb2csIGRybV9kYmdfbm9uZSwKPiA+ICsJVFBfUFJPVE8oY29u c3Qgc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpLAo+ID4gKwlUUF9B UkdTKGRldiwgdmFmKQo+ID4gKyk7Cj4gPiArREVGSU5FX0VWRU5UKGNsYXNzX2RybV9jYXRlZ29y eV9sb2csIGRybV9kYmdfY29yZSwKPiA+ICsJVFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpLAo+ID4gKwlUUF9BUkdTKGRldiwgdmFmKQo+ID4g Kyk7Cj4gPiArREVGSU5FX0VWRU5UKGNsYXNzX2RybV9jYXRlZ29yeV9sb2csIGRybV9kYmdfZHJp dmVyLAo+ID4gKwlUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB2YV9m b3JtYXQgKnZhZiksCj4gPiArCVRQX0FSR1MoZGV2LCB2YWYpCj4gPiArKTsKPiA+ICtERUZJTkVf RVZFTlQoY2xhc3NfZHJtX2NhdGVnb3J5X2xvZywgZHJtX2RiZ19rbXMsCj4gPiArCVRQX1BST1RP KGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKSwKPiA+ICsJ VFBfQVJHUyhkZXYsIHZhZikKPiA+ICspOwo+ID4gK0RFRklORV9FVkVOVChjbGFzc19kcm1fY2F0 ZWdvcnlfbG9nLCBkcm1fZGJnX3ByaW1lLAo+ID4gKwlUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCB2YV9mb3JtYXQgKnZhZiksCj4gPiArCVRQX0FSR1MoZGV2LCB2YWYp Cj4gPiArKTsKPiA+ICtERUZJTkVfRVZFTlQoY2xhc3NfZHJtX2NhdGVnb3J5X2xvZywgZHJtX2Ri Z19hdG9taWMsCj4gPiArCVRQX1BST1RPKGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0 IHZhX2Zvcm1hdCAqdmFmKSwKPiA+ICsJVFBfQVJHUyhkZXYsIHZhZikKPiA+ICspOwo+ID4gK0RF RklORV9FVkVOVChjbGFzc19kcm1fY2F0ZWdvcnlfbG9nLCBkcm1fZGJnX3ZibCwKPiA+ICsJVFBf UFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpLAo+ ID4gKwlUUF9BUkdTKGRldiwgdmFmKQo+ID4gKyk7Cj4gPiArREVGSU5FX0VWRU5UKGNsYXNzX2Ry bV9jYXRlZ29yeV9sb2csIGRybV9kYmdfc3RhdGUsCj4gPiArCVRQX1BST1RPKGNvbnN0IHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IHZhX2Zvcm1hdCAqdmFmKSwKPiA+ICsJVFBfQVJHUyhkZXYs IHZhZikKPiA+ICspOwo+ID4gK0RFRklORV9FVkVOVChjbGFzc19kcm1fY2F0ZWdvcnlfbG9nLCBk cm1fZGJnX2xlYXNlLAo+ID4gKwlUUF9QUk9UTyhjb25zdCBzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCB2YV9mb3JtYXQgKnZhZiksCj4gPiArCVRQX0FSR1MoZGV2LCB2YWYpCj4gPiArKTsKPiA+ ICtERUZJTkVfRVZFTlQoY2xhc3NfZHJtX2NhdGVnb3J5X2xvZywgZHJtX2RiZ19kcCwKPiA+ICsJ VFBfUFJPVE8oY29uc3Qgc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYp LAo+ID4gKwlUUF9BUkdTKGRldiwgdmFmKQo+ID4gKyk7Cj4gPiArREVGSU5FX0VWRU5UKGNsYXNz X2RybV9jYXRlZ29yeV9sb2csIGRybV9kYmdfdW5rbm93biwKPiA+ICsJVFBfUFJPVE8oY29uc3Qg c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgdmFfZm9ybWF0ICp2YWYpLAo+ID4gKwlUUF9BUkdT KGRldiwgdmFmKQo+ID4gKyk7Cj4gPiArI2VuZGlmCj4gPiArCj4gPiArLyogVGhpcyBwYXJ0IG11 c3QgYmUgb3V0c2lkZSBwcm90ZWN0aW9uICovCj4gPiArI2luY2x1ZGUgPHRyYWNlL2RlZmluZV90 cmFjZS5oPgo+ID4gCj4gCj4gLS0gCj4gVGhvbWFzIFppbW1lcm1hbm4KPiBHcmFwaGljcyBEcml2 ZXIgRGV2ZWxvcGVyCj4gU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJICj4gTWF4 ZmVsZHN0ci4gNSwgOTA0MDkgTsO8cm5iZXJnLCBHZXJtYW55Cj4gKEhSQiAzNjgwOSwgQUcgTsO8 cm5iZXJnKQo+IEdlc2Now6RmdHNmw7xocmVyOiBGZWxpeCBJbWVuZMO2cmZmZXIKPiAKCgoKCi0t IApTZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=