From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 6/6] drm/tinydrm: Support device unplug Date: Fri, 01 Sep 2017 11:38:03 +0300 Message-ID: <3006395.GefuxQe1Mf@avalon> References: <1503940668-25883-1-git-send-email-noralf@tronnes.org> <6016209.C3k9HqazzJ@avalon> <46fbc32c-ae40-de33-6bd4-a0ab961ac88c@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [IPv6:2001:4b98:dc2:45:216:3eff:febb:480d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 518BC6E221 for ; Fri, 1 Sep 2017 08:37:29 +0000 (UTC) In-Reply-To: <46fbc32c-ae40-de33-6bd4-a0ab961ac88c@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Noralf =?ISO-8859-1?Q?Tr=F8nnes?= Cc: dri-devel , David Lechner List-Id: dri-devel@lists.freedesktop.org SGkgTm9yYWxmLAoKT24gVGh1cnNkYXksIDMxIEF1Z3VzdCAyMDE3IDIyOjIyOjAzIEVFU1QgTm9y YWxmIFRyw7hubmVzIHdyb3RlOgo+IERlbiAzMS4wOC4yMDE3IDE0LjU5LCBza3JldiBMYXVyZW50 IFBpbmNoYXJ0Ogo+ID4gT24gV2VkbmVzZGF5LCAzMCBBdWd1c3QgMjAxNyAyMDoxODo0OSBFRVNU IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPj4gT24gV2VkLCBBdWcgMzAsIDIwMTcgYXQgNjozMSBQ TSwgTm9yYWxmIFRyw7hubmVzIHdyb3RlOgo+ID4+PiBEZW4gMjguMDguMjAxNyAyMy41Niwgc2ty ZXYgRGFuaWVsIFZldHRlcjoKPiA+Pj4+IE9uIE1vbiwgQXVnIDI4LCAyMDE3IGF0IDA3OjE3OjQ4 UE0gKzAyMDAsIE5vcmFsZiBUcsO4bm5lcyB3cm90ZToKPiA+Pj4+PiBTdXBwb3J0IGRldmljZSB1 bnBsdWdnaW5nIHRvIG1ha2UgdGlueWRybSBzdWl0YWJsZSBmb3IgVVNCIGRldmljZXMuCj4gPj4+ Pj4gCj4gPj4+Pj4gQ2M6IERhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xvZ3kuY29tPgo+ID4+ Pj4+IFNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25uZXMub3JnPgo+ ID4+Pj4+IC0tLQo+ID4+Pj4+IAo+ID4+Pj4+IGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUv dGlueWRybS1jb3JlLmMgfCA2OSArKysrKysrKysrKysrKysrKystLS0KPiA+Pj4+PiBkcml2ZXJz L2dwdS9kcm0vdGlueWRybS9taTAyODNxdC5jICAgICAgICAgIHwgIDQgKysKPiA+Pj4+PiBkcml2 ZXJzL2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5jICAgICAgICAgIHwgIDUgKystCj4gPj4+Pj4g ZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vcmVwYXBlci5jICAgICAgICAgICB8ICA5ICsrKy0KPiA+ Pj4+PiBkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1ODYuYyAgICAgICAgICAgIHwgIDkgKysr LQo+ID4+Pj4+IGluY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS5oICAgICAgICAgICAgICAgfCAg NSArKysKPiA+Pj4+PiA2IGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDE0IGRlbGV0 aW9ucygtKQo+ID4+Pj4+IAo+ID4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlu eWRybS9jb3JlL3Rpbnlkcm0tY29yZS5jCj4gPj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9jb3JlL3Rpbnlkcm0tY29yZS5jCj4gPj4+Pj4gaW5kZXggZjExZjRjZC4uM2NjYmNjNSAxMDA2 NDQKPiA+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9jb3JlL3Rpbnlkcm0tY29y ZS5jCj4gPj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWNv cmUuYwo+ID4+Pj4+IEBAIC0zMiw2ICszMiwyOSBAQAo+ID4+Pj4+ICAgKiBUaGUgZHJpdmVyIGFs bG9jYXRlcyAmdGlueWRybV9kZXZpY2UsIGluaXRpYWxpemVzIGl0IHVzaW5nCj4gPj4+Pj4gICAq IGRldm1fdGlueWRybV9pbml0KCksIHNldHMgdXAgdGhlIHBpcGVsaW5lIHVzaW5nCj4gPj4+Pj4g dGlueWRybV9kaXNwbGF5X3BpcGVfaW5pdCgpCj4gPj4+Pj4gICAqIGFuZCByZWdpc3RlcnMgdGhl IERSTSBkZXZpY2UgdXNpbmcgZGV2bV90aW55ZHJtX3JlZ2lzdGVyKCkuCj4gPj4+Pj4gKyAqCj4g Pj4+Pj4gKyAqIERldmljZSB1bnBsdWcKPiA+Pj4+PiArICogLS0tLS0tLS0tLS0tLQo+ID4+Pj4+ ICsgKgo+ID4+Pj4+ICsgKiB0aW55ZHJtIHN1cHBvcnRzIGRldmljZSB1bnBsdWdnaW5nIHdoZW4g dGhlcmUncyBzdGlsbCBvcGVuIERSTSBvcgo+ID4+Pj4+IGZiZGV2IGZpbGUKPiA+Pj4+PiArICog aGFuZGxlcy4KPiA+Pj4+PiArICoKPiA+Pj4+PiArICogVGhlcmUgYXJlIDIgd2F5cyBmb3IgZHJp dmVyLWRldmljZSB1bmJpbmRpbmcgdG8gaGFwcGVuOgo+ID4+Pj4+ICsgKgo+ID4+Pj4+ICsgKiAt IFRoZSBkcml2ZXIgbW9kdWxlIGlzIHVubG9hZGVkIGNhdXNpbmcgdGhlIGRyaXZlciB0byBiZQo+ ID4+Pj4+IHVucmVnaXN0ZXJlZC4KPiA+Pj4+PiArICogICBUaGlzIGNhbid0IGhhcHBlbiBhcyBs b25nIGFzIHRoZXJlJ3Mgb3BlbiBmaWxlIGhhbmRsZXMgYmVjYXVzZSBhCj4gPj4+Pj4gcmVmZXJl bmNlCj4gPj4+Pj4gKyAqICAgaXMgdGFrZW4gb24gdGhlIG1vZHVsZS4KPiA+Pj4+IAo+ID4+Pj4g QXNpZGU6IHlvdSBjYW4gZG8gdGhhdCwgYnV0IHRoZW4gaXQgd29ya3MgbGlrZSBhIGh3IHVucGx1 ZywgdGhyb3VnaCB0aGUKPiA+Pj4+IHVuYmluZCBwcm9wZXJ0eSBpbiBzeXNmcy4KPiA+Pj4gCj4g Pj4+IFRoZSBtb2R1bGUgaXMgc3RpbGwgcGlubmVkIGlzbid0IGl0Pwo+ID4+IAo+ID4+IFl1cCwg YnV0IG9ubHkgdGhlIGNvZGUgaXMgcGlubmVkLCBub3QgYW55IG9mIHRoZSBkYXRhc3RydWN0dXJl cyBsaWtlCj4gPj4gZHJtX2RldmljZS4KPiA+PiAKPiA+Pj4gSSBjYW4gYWRkIHN5c2ZzIHVuYmlu ZCBhcyBhIHRoaXJkIHdheSBvZiB0cmlnZ2VyaW5nIHVuYmluZDoKPiA+Pj4gICAqIC0gVGhlIHN5 c2ZzIGRyaXZlciBfdW5iaW5kXyBmaWxlIGNhbiBiZSB1c2VkIHRvIHVuYmluZCB0aGUgZHJpdmVy Cj4gPj4+ICAgZm9ybSB0aGUKPiA+Pj4gICAqICAgZGV2aWNlLiBUaGlzIGNhbiBoYXBwZW4gYW55 IHRpbWUuCj4gPj4+ICAgKgo+ID4gCj4gPiBTb3VuZHMgZ29vZCB0byBtZS4KPiA+IAo+ID4+Pj4+ ICsgKgo+ID4+Pj4+ICsgKiAtIFRoZSBkZXZpY2UgaXMgcmVtb3ZlZCAoVVNCLCBEZXZpY2UgVHJl ZSBvdmVybGF5KS4KPiA+Pj4+PiArICogICBUaGlzIGNhbiBoYXBwZW4gYXQgYW55IHRpbWUuCj4g Pj4+Pj4gKyAqCj4gPj4+Pj4gKyAqIFRoZSBkcml2ZXIgbmVlZHMgdG8gcHJvdGVjdCBkZXZpY2Ug cmVzb3VyY2VzIGZyb20gYWNjZXNzIGFmdGVyIHRoZQo+ID4+Pj4+IGRldmljZSBpcwo+ID4+Pj4+ ICsgKiBnb25lLiBUaGlzIGlzIGRvbmUgY2hlY2tpbmcgZHJtX2Rldl9pc191bnBsdWdnZWQoKSwg dHlwaWNhbGx5IGluCj4gPj4+Pj4gKyAqICZkcm1fZnJhbWVidWZmZXJfZnVuY3MuZGlydHksCj4g Pj4+Pj4gJmRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzLmVuYWJsZSBhbmQKPiA+Pj4+PiAr ICogXC5kaXNhYmxlLiBSZXNvdXJjZXMgdGhhdCBkb2Vzbid0IGZhY2UgdXNlcnNwYWNlIGFuZCBp cyBvbmx5IHVzZWQKPiA+IAo+ID4gcy9kb2Vzbid0L2Rvbid0Lwo+ID4gcy9hbmQgaXMvYW5kIGFy ZS8KPiA+IAo+ID4+Pj4+IHdpdGggdGhlCj4gPj4+Pj4gKyAqIGRldmljZSBjYW4gYmUgc2V0dXAg dXNpbmcgZGV2bVxfIGZ1bmN0aW9ucywgYnV0ICZ0aW55ZHJtX2RldmljZQo+ID4+Pj4+IG11c3Qg YmUKPiA+Pj4+PiArICogYWxsb2NhdGVkIHVzaW5nIHBsYWluIGt6YWxsb2MoKSBzaW5jZSBpdCdz IGxpZmV0aW1lIGNhbiBleGNlZWQKPiA+Pj4+PiB0aGF0IG9mIHRoZQo+ID4gCj4gPiBzL2l0J3Mv aXRzLwo+ID4gCj4gPj4+Pj4gKyAqIGRldmljZS4gdGlueWRybV9yZWxlYXNlKCkgd2lsbCBmcmVl IHRoZSBzdHJ1Y3R1cmUuCj4gPj4+PiAKPiA+Pj4+IFNvIGhlcmUncyBhIGJpdCBhIGRyYWdvbjog VGhlcmUncyBubyBwcmV2ZW50aW9uIG9mIGlzX3VucGx1Z2dlZCByYWNpbmcKPiA+Pj4+IGFnYWlu c3QgYSBkcm1fZGV2X3VucGx1ZygpLiBUaGVyZSdzIGJlZW4gdmFyaW91cyBhdHRlbXB0cyB0byBm aXhpbmcKPiA+Pj4+IHRoaXMsIGJ1dCB0aGV5J3JlIGFsbCBzb21ld2hhdCB1Z2x5Lgo+ID4+Pj4g Cj4gPj4+PiBFaXRoZXIgd2F5LCB0aGF0J3MgYSBidWcgaW4gdGhlIGRybSBjb3JlIDotKQo+ID4+ Pj4gCj4gPj4+Pj4gICAgICovCgpbc25pcF0KCj4gPj4+Pj4gQEAgLTE3OCw4ICsyMjIsOCBAQCBz dGF0aWMgdm9pZCBkZXZtX3Rpbnlkcm1fcmVsZWFzZSh2b2lkICpkYXRhKQo+ID4+Pj4+ICAgKiBA ZHJpdmVyOiBEUk0gZHJpdmVyCj4gPj4+Pj4gICAqCj4gPj4+Pj4gICAqIFRoaXMgZnVuY3Rpb24g aW5pdGlhbGl6ZXMgQHRkZXYsIHRoZSB1bmRlcmx5aW5nIERSTSBkZXZpY2UgYW5kCj4gPj4+Pj4g ICAgaXQncwo+ID4gCj4gPiBXaGlsZSBhdCBpdCwgcy9pdCdzL2l0cy8KPiA+IAo+ID4+Pj4+IC0g KiBtb2RlX2NvbmZpZy4gUmVzb3VyY2VzIHdpbGwgYmUgYXV0b21hdGljYWxseSBmcmVlZCBvbiBk cml2ZXIKPiA+Pj4+PiBkZXRhY2ggKGRldnJlcykKPiA+Pj4+PiAtICogdXNpbmcgZHJtX21vZGVf Y29uZmlnX2NsZWFudXAoKSBhbmQgZHJtX2Rldl91bnJlZigpLgo+ID4+Pj4+ICsgKiBtb2RlX2Nv bmZpZy4gZHJtX2Rldl91bnJlZigpIGlzIGNhbGxlZCBvbiBkcml2ZXIgZGV0YWNoIChkZXZyZXMp Cj4gPj4+Pj4gYW5kIHdoZW4KPiA+Pj4+PiArICogYWxsIHJlZnMgYXJlIGRyb3BwZWQsIHRpbnlk cm1fcmVsZWFzZSgpIGlzIGNhbGxlZC4KPiA+Pj4+PiAgICoKPiA+Pj4+PiAgICogUmV0dXJuczoK PiA+Pj4+PiAgICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1 cmUuCj4gPj4+Pj4gQEAgLTIyNiwxNCArMjcwLDE3IEBAIHN0YXRpYyBpbnQgdGlueWRybV9yZWdp c3RlcihzdHJ1Y3QKPiA+Pj4+PiB0aW55ZHJtX2RldmljZSAqdGRldikKPiA+Pj4+PiAKPiA+Pj4+ PiAgICBzdGF0aWMgdm9pZCB0aW55ZHJtX3VucmVnaXN0ZXIoc3RydWN0IHRpbnlkcm1fZGV2aWNl ICp0ZGV2KQo+ID4+Pj4+ICAgIHsKPiA+Pj4+PiAtICAgICAgIHN0cnVjdCBkcm1fZmJkZXZfY21h ICpmYmRldl9jbWEgPSB0ZGV2LT5mYmRldl9jbWE7Cj4gPj4+Pj4gLQo+ID4+Pj4+ICAgICAgICAg IGRybV9hdG9taWNfaGVscGVyX3NodXRkb3duKCZ0ZGV2LT5kcm0pOwo+ID4+Pj4+IAo+ID4+Pj4+ IC0gICAgICAgLyogZG9uJ3QgcmVzdG9yZSBmYmRldiBpbiBsYXN0Y2xvc2UsIGtlZXAgcGlwZWxp bmUgZGlzYWJsZWQgKi8KPiA+Pj4+PiAtICAgICAgIHRkZXYtPmZiZGV2X2NtYSA9IE5VTEw7Cj4g Pj4+Pj4gLSAgICAgICBkcm1fZGV2X3VucmVnaXN0ZXIoJnRkZXYtPmRybSk7Cj4gPj4+Pj4gLSAg ICAgICBpZiAoZmJkZXZfY21hKQo+ID4+Pj4+IC0gICAgICAgICAgICAgICBkcm1fZmJkZXZfY21h X2ZpbmkoZmJkZXZfY21hKTsKPiA+Pj4+PiArCj4gPj4+Pj4gKyAgICAgICAvKiBHZXQgYSByZWYg dGhhdCB3aWxsIGJlIHB1dCBpbiB0aW55ZHJtX2ZpbmkoKSAqLwo+ID4+Pj4+ICsgICAgICAgZHJt X2Rldl9yZWYoJnRkZXYtPmRybSk7Cj4gPj4+PiAKPiA+Pj4+IFdoeSBkbyB3ZSBuZWVkIHRoYXQg cHJpdmF0ZSByZWY/IEdyYWJiaW5nIHJlZmVyZW5jZXMgaW4gdW5yZWdpc3RlciBjb2RlCj4gPj4+ PiBsb29rcyBsaWtlIGEgcmVjaXBlIGZvciBsZWFrcyAuLi4KPiA+Pj4gCj4gPj4+IFllYWgsIGl0 J3MgYmV0dGVyIHRvIHRha2UgdGhlIHNlY29uZCByZWYgaW4gZGV2bV90aW55ZHJtX3JlZ2lzdGVy KCkuCj4gPj4+IAo+ID4+PiBUaGUgcmVhc29uIEkgbmVlZCAyIHJlZnMgaXMgYmVjYXVzZSB0aW55 ZHJtIGlzIHNldCB1cCB3aXRoIDIgZGV2bV8KPiA+Pj4gZnVuY3Rpb25zLiBUaGlzIHdheSBJIGNh biBsZWF2ZSBhbGwgZXJyb3IgcGF0aCBjbGVhbnVwIGluIHRoZSBoYW5kcyBvZgo+ID4+PiBkZXZy ZXMuCj4gPj4+IAo+ID4+PiBzdGF0aWMgaW50IGRyaXZlcl9wcm9iZSguLi4pCj4gPj4+IHsKPiA+ Pj4gCj4gPj4+ICAgICAgcmV0ID0gZGV2bV90aW55ZHJtX2luaXQoLi4uKTsKPiA+Pj4gICAgICBp ZiAocmV0KQo+ID4+PiAgICAgIAo+ID4+PiAgICAgICAgICByZXR1cm4gcmV0Owo+ID4+PiAgICAg IAo+ID4+PiAgICAgIHJldCA9IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQoLi4uKTsKPiA+Pj4g ICAgICBpZiAocmV0KQo+ID4+PiAgICAgIAo+ID4+PiAgICAgICAgICByZXR1cm4gcmV0Owo+ID4+ PiAgICAgIAo+ID4+PiAgICAgIGRybV9tb2RlX2NvbmZpZ19yZXNldCguLi4pOwo+ID4+PiAgICAg IAo+ID4+PiAgICAgIHJldHVybiBkZXZtX3Rpbnlkcm1fcmVnaXN0ZXIoLi4uKTsKPiA+Pj4gCj4g Pj4+IH0KPiA+PiAKPiA+PiBJIGRvbid0IHRoaW5rIHRoaXMgd29ya3MuIFdoYXQncyB3b3JzZSwg ZGV2bSBoYXMgYSBoaWdoIGNoYW5jZSBvZgo+ID4+IGZyZWVpbmcgc3R1ZmYgYXQgdGhlIHdyb25n IHRpbWUgc2luY2UgaXQncyB0aWVkIHRvIHRoZQo+ID4+IGRybV9kZXZpY2UtPmRldiwgYW5kIG5v dCB0byBkcm1fZGV2aWNlLgo+ID4+IAo+ID4+IEknbSBub3Qgc3VyZSB3aGF0IGEgYmV0dGVyIHNv bHV0aW9uIGlzLCBidXQgd2hlbiBkaXNjdXNzaW5nIGFsbCB0aGlzCj4gPj4gd2l0aCBMYXVyZW50 IHdlIGFncmVlZCB0aGF0IGluIGdlbmVyYWwsIGRldm1fIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQK PiA+PiBoYXJtZnVsLiBMb29rcyBzaW1wbGUsIHZlcnkgZWFzeSB0byBjcmVhdGUgYnJva2VuIGNv ZGUgdGhhdCBkb2Vzbid0Cj4gPj4gY2xlYW4gdXAgcHJvcGVybHkgb24gdW5wbHVnLiBBcyBtdWNo IGFzIGxlYWtzIGFyZSBiYWQsIGZyZWVpbmcgYmVmb3JlCj4gPj4gYWxsIHVzZXJzIGFyZSBnb25l IGlzIHdvcnNlLiBkZXZtXyAiZml4ZXMiIHRoZSBmb3JtZXIgYW5kIGhlYXZpbHkKPiA+PiBlbmNv dXJhZ2VzIHRoZSBsYXR0ZXIuCj4gPiAKPiA+IEkgdG90YWxseSBhZ3JlZS4gQSBjcmFzaCBhdCB1 bmJpbmQgdGltZSBpcyB3b3JzZSB0aGFuIGEgbWVtb3J5IGxlYWsgZ2l2ZW4KPiA+IHRoYXQgdGhl IGJpbmQvdW5iaW5kIGN5Y2xlcyBhcmUgdW5mcmVxdWVudC4gT2YgY291cnNlIHdlIG5lZWQgdG8g YWltIGZvcgo+ID4gZml4aW5nIGJvdGggcHJvYmxlbXMgOi0pCj4gCj4gSSdtIG5vdCBzdXJlIEkg c2VlIGhvdyB0aGUgdXNlIG9mIGRldm1fIGNhdXNlcyBhbnkgb3RoZXIgcHJvYmxlbXMgdGhhbgo+ IHRoZSBmYWN0IHRoYXQgdGhlIHBhcmVudCBkZXZpY2UgaGFzIGJlZW4gZGVsZXRlZC4gSW4gdGhl IGNhc2Ugb2YgdXNiLAo+IGFmdGVyIHVzYl9kcml2ZXIuZGlzY29ubmVjdCBpdCdzIG5vdCBhbGxv d2VkIHRvIGFjY2VzcyB0aGUgdXNiX2RldmljZS4KPiBUaGlzIG1lYW5zIHRoYXQgdGhlIGRyaXZl ciBoYXMgdG8gcHJvdGVjdCBhZ2FpbnN0IHRoaXMuIFRoZSBzYW1lIGFwcGxpZXMKPiB0byB0aGUg ZGV2bV8gcmVzb3VyY2VzLCBhZnRlciB0aGUgZGV2aWNlIGlzIGdvbmUsIHRoZXkncmUgbm90IGF2 YWlsYWJsZQo+IGFueW1vcmUuIEl0IG9mYyBpcyBlYXNpZXIgdG8gcHJvdGVjdCBvbmUgcmVzb3Vy Y2UgdGhhbiBzZXZlcmFsLCBidXQgaW4KPiBwcmluY2lwYWwgaXQncyB0aGUgc2FtZSwgaXNuJ3Qg aXQ/CgpPbmNlIHRoZSAucmVtb3ZlKCkgKG9yIHRoZSBlcXVpdmFsZW50IGZvciB5b3VyIGJ1cyBv ZiBjaG9pY2UsIC5kaXNjb25uZWN0KCkgCmZvciBVU0IpIG1ldGhvZCByZXR1cm5zIHRoZSBkcml2 ZXIgaXNuJ3QgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIGRldmljZSBhbnltb3JlLiAKVGhpcyBtZWFu cyBubyBVU0IgVVJCIHN1Ym1pc3Npb24sIG5vIE1NSU8gYWNjZXNzLCBubyBpbnRlcnJ1cHRzLCAu Li4gRnJvbSB0aGF0IApwb2ludCBvZiB2aWV3IGhhcmR3YXJlIHJlc291cmNlIG1hbmFnZW1lbnQg d2l0aCBkZXZtXyogbWFrZXMgc2Vuc2UsIGZvciAKaW5zdGFuY2UgdG8gdW5tYXAgdGhlIE1NSU8g cmVnaXN0ZXJzIHJpZ2h0IGFmdGVyIC5yZW1vdmUoKSByZXR1cm5zICh0aGVyZSdzIApvbmUgcG9z c2libGUgaXNzdWUgd2l0aCBpbnRlcnJ1cHRzIHRob3VnaCwgYW55IElSUSByZXF1ZXN0ZWQgdGhy b3VnaCAKZGV2bV9yZXF1ZXN0X2lycSgpIHdpbGwgb25seSBiZSBkaXNhYmxlZCBhdCB0aGUgSVJR IGNvbnRyb2xsZXIgbGV2ZWwgYWZ0ZXIgCi5yZW1vdmUoKSByZXR1cm5zLCBwb3NzaWJseSBhZnRl ciBjbG9ja3MgYW5kIHBvd2VyIGRvbWFpbnMgZ2V0IGRpc2FibGVkIHRoYXQgCm1pZ2h0IHJlc3Vs dCBpbiB0aGUgZGV2aWNlIGdlbmVyYXRpbmcgc3B1cmlvdXMgaW50ZXJydXB0cyAtIHRoYXQncyBh IHNpZGUgCmlzc3VlKS4KCk1lbW9yeSBhbGxvY2F0ZWQgd2l0aCBkZXZtX2sqYWxsb2MoKSBpcyBk aWZmZXJlbnQsIGluIHRoYXQgc29tZSBvZiB0aGUgCnN0cnVjdHVyZXMgYXJlIHJlZmVyZW5jZS1j b3VudGVkIChvciBhdCBsZWFzdCBzaG91bGQgYmUpIGFuZCBjYW4gYmUgcmVsZWFzZWQgCmxvbmcg YWZ0ZXIgLnJlbW92ZSgpIHJldHVybnMuIFRoaXMgaXMgdGhlIGNhc2Ugb2YgYW55IHN0cnVjdHVy ZSBuZWVkZWQgdG8gCmltcGxlbWVudCBhIGRldmljZSBub2RlIC5yZWxlYXNlKCkgZmlsZSBvcGVy YXRpb24gKGEuay5hLiBjbG9zZSgpLCBub3QgdG8gYmUgCmNvbmZ1c2VkIHdpdGggdGhlIGRldmlj ZSBkcml2ZXIgLnJlbGVhc2UoKSkuIFRoZSBkcm1fcmVsZWFzZSgpIGltcGxlbWVudGF0aW9uIApz dGFydHMgd2l0aAoKICAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiA9IGZpbHAtPnBy aXZhdGVfZGF0YTsKICAgICAgICBzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGZpbGVfcHJpdi0+ bWlub3I7CiAgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG1pbm9yLT5kZXY7CgphbmQg dGhlbiBkZXJlZmVyZW5jZXMgZGV2IGhlYXZpbHkuIEl0IGNhbGxzIHNvbWUgb2YgdGhlIGRybV9k cml2ZXIncyAKb3BlcmF0aW9ucywgd2hpY2ggbWlnaHQgYWNjZXNzIHRoZSBkcml2ZXIncyBwcml2 YXRlIGRhdGEgCihkcm1fZGV2aWNlOjpkZXZfcHJpdmF0ZSBvciB0aGUgZHJpdmVyIHN0cnVjdHVy ZSB0aGF0IGVtYmVkcyBkcm1fZGV2aWNlKS4gV2UgCnRodXMgY2FuJ3QgYWxsb2NhdGUgdGhvc2Ug c3RydWN0dXJlcyB1c2luZyBkZXZtX2sqYWxsb2MoKS4KCj4gRm9yIG1lIHRoZSBiZWF1dHkgb2Yg ZGV2cmVzIGlzIHRoYXQgaXQgcmVtb3ZlcyB0aGUgbmVlZCBmb3IgZXJyb3IgcGF0aHMKPiB0aGF0 IGFyZSBhbG1vc3QgbmV2ZXIgZXhlcmNpc2VkIGFuZCB0aGUgcHJvYmUgY29kZSBpcyBzaW1wbGVy IGFuZCBlYXN5Cj4gdG8gcmVhZC4KCkkgYWdyZWUgd2l0aCB0aGlzLCBhbmQgSSBiZWxpZXZlIHdl IGNvdWxkIGltcGxlbWVudCBhIG1hbmFnZWQgbWVtb3J5IGFsbG9jYXRvciAKc2ltaWxhciB0byBk ZXZtXyogdGhhdCB3b3VsZG4ndCBiZSB0aWVkIHRvIHN0cnVjdCBkZXZpY2UsIGFuZCB3b3VsZCB0 aHVzIGFsbG93IApjb250cm9sIG9mIHRoZSBvYmplY3RzIGxpZmV0aW1lLiBUaGUgZGV2cmVzXyog ZmllbGRzIG9mIHN0cnVjdCBkZXZpY2UgY291bGQgYmUgCm1vdmVkIHRvIGEgc2VwYXJhdGUgc3Ry dWN0dXJlIHRoYXQgdGhlbiBnZXRzIGVtYmVkZGVkIGluIHN0cnVjdCBkZXZpY2UsIGFuZCAKdGhl IGRldnJlc18qIEFQSSB3b3VsZCB0YWtlIGEgcG9pbnRlciB0byB0aGF0IHN0cnVjdHVyZSBpbnN0 ZWFkIG9mIHRvIGEgc3RydWN0IApkZXZpY2UuIFRoZXJlIGFyZSBhIGZldyBkZXRhaWxzIHRvIGhh bW1lciBvdXQsIGJ1dCBJIHRoaW5rIGl0IHNob3VsZCBiZSAKZmVhc2libGUuCgo+ID4+IEluIHlv dXIgY2FzZSBJIHRoaW5rIGRldm1fdGlueWRybV9yZWdpc3RlciBpcyBjb3JyZWN0IChidXQgYSBi aXQKPiA+PiBzdHJhbmdlKS4KPiA+IAo+ID4gWWVzLCBJIGRvbid0IHRoaW5rIGFuIGV4cGxpY2l0 IHRpbnlkcm1fdW5yZWdpc3RlcigpIGNhbGwgaW4gdGhlIGRyaXZlcidzCj4gPiAucmVtb3ZlKCkg aGFuZGxlciB3b3VsZCBiZSBzbyBkaWZmaWN1bHQuCj4gPiAKPiA+PiBkZXZtX3Rpbnlkcm1faW5p dCBvdG9oIGxvb2tzIGxpa2UgYWxsIHRoZSBjb2RlIGl0IGhhcyBzaG91bGQgYmUgbW92ZWQKPiA+ PiBpbnRvIHRoZSBkcm1fZHJpdmVyLT5yZWxlYXNlIGNhbGxiYWNrLiBZb3UgY2FuJ3QgZGVzdHJv eSB0aGUgZGlydHlfbG9jawo+ID4+IHdoaWxlIGEgdGhyZWFkIG1pZ2h0IGJlIGhvbGRpbmcgaXQg cmlnaHQgYXQgdGhhdCBtb21lbnQuCj4gPiAKPiA+IEFncmVlZCB0b28uCj4gPiAKPiA+IEZ1cnRo ZXJtb3JlIHRoZSBkZXZtX2t6YWxsb2MoKSBpbiB0aW55ZHJtX2Rpc3BsYXlfcGlwZV9pbml0KCkg c2VlbXMKPiA+IHN1c3BpY2lvdXMgdG8gbWUuIEl0IHNob3VsZCBiZSBlYXN5IHRvIHJlcGxhY2Ug aXQgd2l0aCBremFsbG9jKCksIHRoZQo+ID4gbW9kZSBjYW4gYmUgZnJlZWQgaW4gdGlueWRybV9j b25uZWN0b3JfZGVzdHJveSgpLgo+IAo+IEl0J3Mgc2FmZSBzaW5jZSBpdCdzIHByb3RlY3RlZCBi eSBjb25uZWN0b3IgZGV0ZWN0KCksIGJ1dCBJIGFncmVlIHdpdGggeW91Lgo+IAo+ID4gKEFuZCBv biBhIHNpZGUgbm90ZSB0aGUgZGlyZWN0IG1vZGUgY29weSB3aXRob3V0IGNhbGxpbmcKPiA+IGRy bV9tb2RlX2R1cGxpY2F0ZSgpIGluIHRoYXQgZnVuY3Rpb24gaXMgYWxzbyBzdXNwaWNpb3VzLCBh bHRob3VnaCBpdAo+ID4gbWlnaHQgbm90IGJlIGFuIGlzc3VlIGluIHByYWN0aWNlKQo+ID4gCj4g Pj4+Pj4gKwo+ID4+Pj4+ICsgICAgICAgZHJtX2ZiZGV2X2NtYV9kZXZfdW5wbHVnKHRkZXYtPmZi ZGV2X2NtYSk7Cj4gPj4+Pj4gKyAgICAgICBkcm1fZGV2X3VucGx1ZygmdGRldi0+ZHJtKTsKPiA+ Pj4+PiArCj4gPj4+Pj4gKyAgICAgICAvKiBNYWtlIHN1cmUgZnJhbWVidWZmZXIgZmx1c2hpbmcg aXMgZG9uZSAqLwo+ID4+Pj4+ICsgICAgICAgbXV0ZXhfbG9jaygmdGRldi0+ZGlydHlfbG9jayk7 Cj4gPj4+Pj4gKyAgICAgICBtdXRleF91bmxvY2soJnRkZXYtPmRpcnR5X2xvY2spOwo+ID4+Pj4g Cj4gPj4+PiBJcyB0aGlzIHJlYWxseSBuZWVkZWQ/IE9yLCBkb2Vzbid0IGl0IGp1c3QgcGFwZXIg b3ZlciBhIGRyaXZlciBidWcgeW91Cj4gPj4+PiBoYXZlIGFscmVhZHkgYW55d2F5LCBzaW5jZSBu YXRpdmUga21zIHVzZXJzcGFjZSBjYW4gZGlyZWN0bHkgY2FsbAo+ID4+Pj4gZmItPmZ1bmNzLT5k aXJ0eSB0b28sIGFuZCB5b3UgYWxyZWFkeSBwcm90ZWN0IGFnYWluc3QgdGhhdC4KPiA+Pj4+IAo+ ID4+Pj4gVGhpcyBkZWZpbml0ZWx5IGxvb2tzIGxpa2UgdGhlIGZiZGV2IGhlbHBlciBpcyBsZWFr aW5nIGltcGxlbWVudGF0aW9uCj4gPj4+PiBkZXRhaWxzIHRvIGNhbGxlcnMgd2hlcmUgaXQgc2hv dWxkbid0IGRvIHRoYXQuCj4gPj4+IAo+ID4+PiBGbHVzaGluZyBjYW4gaGFwcGVuIHdoaWxlIGRy bV9kZXZfdW5wbHVnKCkgaXMgY2FsbGVkLCBhbmQgd2hlbiB3ZSBsZWF2ZQo+ID4+PiB0aGlzIGZ1 bmN0aW9uIHRoZSBkZXZpY2UgZmFjaW5nIHJlc291cmNlcyBjb250cm9sbGVkIGJ5IGRldnJlcyB3 aWxsIGJlCj4gPj4+IHJlbW92ZWQuIFRodXMgSSBoYXZlIHRvIG1ha2Ugc3VyZSBhbnkgc3VjaCBm bHVzaGluZyBpcyBkb25lIGJlZm9yZQo+ID4+PiBsZWF2aW5nIHNvIHRoZSBuZXh0IGZsdXNoIGlz IHN0b3BwZWQgYnkgdGhlIGRybV9kZXZfaXNfdW5wbHVnZ2VkKCkKPiA+Pj4gY2hlY2suIEkgZG9u J3Qgc2VlIGFueSBvdGhlciB3YXkgb2YgZW5zdXJpbmcgdGhhdC4KPiA+Pj4gCj4gPj4+IEkgc2Vl IG5vdyB0aGF0IEkgc2hvdWxkIG1vdmUgdGhlIGNhbGwgdG8gZHJtX2F0b21pY19oZWxwZXJfc2h1 dGRvd24oKQo+ID4+PiBhZnRlciBkcm1fZGV2X3VucGx1ZygpIHRvIHByb3Blcmx5IHByb3RlY3Qg dGhlIHBpcGUgLmVuYWJsZS8uZGlzYWJsZQo+ID4+PiBjYWxsYmFja3MuCj4gPj4gCj4gPj4gSG0s IGNhbGxpbmcgX3NodXRkb3duIHdoZW4gdGhlIGh3IGlzIGdvbmUgYWxyZWFkeSB3b24ndCBlbmQg d2VsbC4KPiA+PiBGdW5kYW1lbnRhbGx5IHRoaXMgcmFjZSBleGlzdHMgZm9yIGFsbCB1c2UtY2Fz ZXMsIGFuZCBJJ20gc29tZXdoYXQKPiA+PiBsZWFuaW5nIHRvd2FyZHMgcGx1Z2dpbmcgaXQgaW4g dGhlIGNvcmUuCj4gPj4gCj4gPj4gVGhlIGdlbmVyYWwgc29sdXRpb24gcHJvYmFibHkgaW52b2x2 ZXMgc29tZXRoaW5nIHRoYXQgc21lbGxzIGEgbG90Cj4gPj4gbGlrZSBzcmN1LCBpLmUuIGF0IGV2 ZXJ5IHBvc3NpYmxlIGVudHJ5IHBvaW50IGludG8gYSBkcm0gZHJpdmVyCj4gPj4gKGlvY3RsLCBm YmRldiwgZG1hLWJ1ZiBzaGFyaW5nLCBldmVyeXRoaW5nIHJlYWxseSkgd2UgdGFrZSB0aGF0Cj4g Pj4gc3VwZXItY2hlYXAgcmVhZC1zaWRlIGxvb2ssIGFuZCBkcm9wIGl0IHdoZW4gd2UgbGVhdmUu Cj4gPiAKPiA+IFRoYXQncyBzaW1pbGFyIHRvIHdoYXQgd2UgcGxhbiB0byBkbyBpbiBWNEwyLiBU aGUgaWRlYSBpcyB0byBzZXQgYSBkZXZpY2UKPiA+IHJlbW92ZWQgZmxhZyBhdCB0aGUgYmVnaW5u aW5nIG9mIHRoZSAucmVtb3ZlKCkgaGFuZGxlciBhbmQgd2FpdCBmb3IgYWxsCj4gPiBwZW5kaW5n IG9wZXJhdGlvbnMgdG8gY29tcGxldGUuIFRoZSBjb3JlIHdpbGwgcmVqZWN0IGFueSBuZXcgb3Bl cmF0aW9uCj4gPiB3aGVuIHRoZSBmbGFnIGlzIHNldC4gVG8gd2FpdCBmb3IgY29tcGxldGlvbiwg ZXZlcnkgZW50cnkgcG9pbnQgd291bGQKPiA+IGluY3JlYXNlIGEgdXNlIGNvdW50LCBhbmQgZGVj cmVhc2UgaXQgb24gZXhpdC4gV2hlbiB0aGUgdXNlIGNvdW50IGlzCj4gPiBkZWNyZWFzZWQgdG8g MCB3YWl0ZXJzIHdpbGwgYmUgd29rZW4gdXAuIFRoaXMgc2hvdWxkIHNvbHZlIHRoZSB1bnBsdWcv dXNlcgo+ID4gcmFjZS4KPiAKPiBBaCwgc3VjaCBhIHNpbXBsZSBzb2x1dGlvbiwgZWFzeSB0byB1 bmRlcnN0YW5kIGFuZCBkaWZmaWN1bHQgdG8gZ2V0IHdyb25nIQo+IEFuZCBpdCdzIGV2ZW4gbmVz dGFibGUsIG5vIGRhbmdlciBvZiBkZWFkbG9ja2luZy4KPiAKPiBNYXliZSBJIGNhbiB1c2UgaXQg d2l0aCB0aW55ZHJtOgoKSXQgd291bGQgYmUgYmV0dGVyIHRvIGltcGxlbWVudCB0aGF0IGluIHRo ZSBEUk0gY29yZSB0byByZWplY3QgYWxsIGlvY3RscyAKZWFybHksIGFzIHNvbWUgb2YgdGhlbSBj b3VsZCBjYWxsIGRybV9kcml2ZXIgb3BlcmF0aW9ucyB0aGF0IGNhbid0IHJldHVybiBhbiAKZXJy b3IgKHN1Y2ggYXMgLmRpc2FibGVfdmJsYW5rKCkgZm9yIGluc3RhbmNlKS4KCj4gKiBAZGV2X3Vz ZTogVHJhY2tzIHVzZSBvZiBmdW5jdGlvbnMgYWNlc3NpbmcgdGhlIHBhcmVudCBkZXZpY2UuCj4g KiAgICAgICAgICAgSWYgaXQgaXMgemVybywgdGhlIGRldmljZSBpcyBnb25lLiBTZWUgLi4uCj4g c3RydWN0IHRpbnlkcm1fZGV2aWNlIHsKPiAgICAgIGF0b21pY190IGRldl91c2U7Cj4gfTsKPiAK PiAvKioKPiAgICogdGlueWRybV9kZXZfZW50ZXIgLSBFbnRlciBkZXZpY2UgYWNjZXNzaW5nIGZ1 bmN0aW9uCj4gICAqIEB0ZGV2OiB0aW55ZHJtIGRldmljZQo+ICAgKgo+ICAgKiBUaGlzIGZ1bmN0 aW9uIHByb3RlY3RzIGFnYWluc3QgdXNpbmcgYSBkZXZpY2UgYW5kIGl0J3MgcmVzb3VyY2VzIGFm dGVyCj4gICAqIGl0J3MgcmVtb3ZlZC4gU2hvdWxkIGJlIGNhbGxlZCBhdCB0aGUgYmVnaW5uaW5n IG9mIHRoZSBmdW5jdGlvbi4KPiAgICoKPiAgICogUmV0dXJuczoKPiAgICogRmFsc2UgaWYgdGhl IGRldmljZSBpcyBzdGlsbCBwcmVzZW50LCB0cnVlIGlmIGl0IGlzIGdvbmUuCj4gICAqLwo+IHN0 YXRpYyBpbmxpbmUgYm9vbCB0aW55ZHJtX2Rldl9lbnRlcihzdHJ1Y3QgdGlueWRybV9kZXZpY2Ug KnRkZXYpCj4gewo+ICAgICAgcmV0dXJuICFhdG9taWNfaW5jX25vdF96ZXJvKCZ0ZGV2LT5kZXZf dXNlKTsKPiB9Cj4gCj4gc3RhdGljIGlubGluZSB2b2lkIHRpbnlkcm1fZGV2X2V4aXQoc3RydWN0 IHRpbnlkcm1fZGV2aWNlICp0ZGV2KQo+IHsKPiAgICAgIGF0b21pY19kZWMoJnRkZXYtPmRldl91 c2UpOwo+IH0KPiAKPiBzdGF0aWMgaW5saW5lIGJvb2wgdGlueWRybV9pc191bnBsdWdnZWQoc3Ry dWN0IHRpbnlkcm1fZGV2aWNlICp0ZGV2KQo+IHsKPiAgICAgIGJvb2wgcmV0ID0gIWF0b21pY19y ZWFkKCZ0ZGV2LT5kZXZfdXNlKTsKPiAgICAgIHNtcF9ybWIoKTsKPiAgICAgIHJldHVybiByZXQ7 Cj4gfQo+IAo+IAo+IHN0YXRpYyBpbnQgdGlueWRybV9pbml0KC4uLikKPiB7Cj4gICAgICAvKiBp bml0aWFsaXplICovCj4gCj4gICAgICAvKiBTZXQgZGV2aWNlIGlzIHByZXNlbnQgKi8KPiAgICAg IGF0b21pY19zZXQoJnRkZXYtPmRldl91c2UsIDEpOwo+IH0KPiAKPiBzdGF0aWMgdm9pZCB0aW55 ZHJtX3VucmVnaXN0ZXIoLi4uKQo+IHsKPiAgICAgIC8qIFNldCBkZXZpY2UgZ29uZSAqLwo+ICAg ICAgYXRvbWljX2RlYygmdGRldi0+ZGV2X3VzZSk7Cj4gCj4gICAgICAvKiBXYWl0IGZvciBhbGwg ZGV2aWNlIGZhY2luZyBmdW5jdGlvbnMgdG8gZmluaXNoICovCj4gICAgICB3aGlsZSAoIXRpbnlk cm1faXNfdW5wbHVnZ2VkKHRkZXYpKSB7Cj4gICAgICAgICAgY29uZF9yZXNjaGVkKCk7Cj4gICAg ICB9Cj4gCj4gICAgICAvKiBwcm9jZWVkIHdpdGggdW5yZWdpc3RlcmluZyAqLwo+IH0KPiAKPiBz dGF0aWMgaW50IG1pcGlfZGJpX2ZiX2RpcnR5KC4uLikKPiB7Cj4gICAgICBpZiAodGlueWRybV9k ZXZfZW50ZXIodGRldikpCj4gICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CgpOaXRwaWNraW5nLCBp c24ndCB0aGUgcmlnaHQgZXJyb3IgY29kZSAtRU5YSU8gPwoKPiAgICAgIC8qIGZsdXNoIGZyYW1l YnVmZmVyICovCj4gCj4gICAgICB0aW55ZHJtX2Rldl9leGl0KHRkZXYpOwo+IH0KPiAKPiA+PiBU aGVuIG9uIHVucGx1ZyB3ZSBjYWxsIHN5bmNocm9pemVfc3JjdSwgd2hpY2ggZXNzZW50aWFsbHkg ZG9lcyB3aGF0Cj4gPj4geW91ciBsb2NrIGdyYWImZHJvcCB0cmljayBkb2VzLiBKdXN0IG11Y2gg bGVzcyBvdmVyaGVhZCBvbiB0aGUgcmVhZAo+ID4+IHNpZGUgKHdlIGNhbiBzcHJpbmtsZSB0aGlz IG92ZXIgZXZlcnl0aGluZyB3aXRob3V0IHdvcnJ5aW5nIGFib3V0Cj4gPj4gd2FzdGluZyBjcHUg dGltZSksIGFuZCBhIGJpdCBjbGVhcmVyIGluIHRoZSBpbnRlbnRpb24gb24gdGhlIF91bnBsdWcK PiA+PiBzaWRlLgo+ID4gCj4gPiBMb29rcyBsaWtlIHNyY3UgYWxyZWFkeSBpbXBsZW1lbnRzIHdo YXQgd2UgbmVlZC4gSSdtIG5vdCBzdXJlIHdlIG5lZWQgYW4KPiA+IFJDVS0gYmFzZWQgc29sdXRp b24gdGhvdWdoLCBpdCBtaWdodCBiZSB0b28gY29tcGxleC4KPiA+IAo+ID4+IEJ1dCB5ZWFoLCBh bm90aGVyIHRoaW5nIHRoYXQnbGwgYmUgYSBwaWxlIG9mIHdvcmsgdG8gZml4IHByb3Blcmx5LiBJ J2QKPiA+PiBsZWF2ZSBpdCBhdCBhIEZJWE1FIGNvbW1lbnQgaW4gZHJtX2Rldl91bnBsdWcoKSB1 bnRpbCB3ZSBnZXQgdG8gaXQuCj4gPj4gQW5kIGZvciBub3cgbm90IHdvcnJ5IGFib3V0IGFsbCB0 aGUgcG9zc2libGUgcmFjZXMuIE9uZSB0aGluZyBhdCBhCj4gPj4gdGltZSBhbmQgYWxsIHRoYXQu Cj4gPj4gCj4gPj4+Pj4gICAgfQo+ID4+Pj4+ICAgIAo+ID4+Pj4+ICAgIHN0YXRpYyB2b2lkIGRl dm1fdGlueWRybV9yZWdpc3Rlcl9yZWxlYXNlKHZvaWQgKmRhdGEpCj4gPj4+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMKPiA+Pj4+PiBiL2RyaXZlcnMv Z3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMKPiA+Pj4+PiBpbmRleCAyNDY1NDg5Li44NGFiOGQx IDEwMDY0NAo+ID4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMK PiA+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taTAyODNxdC5jCj4gPj4+Pj4g QEAgLTMxLDYgKzMxLDkgQEAgc3RhdGljIHZvaWQgbWkwMjgzcXRfZW5hYmxlKHN0cnVjdAoKW3Nu aXBdCgo+ID4+Pj4+IEBAIC0xMzMsNiArMTM2LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVy IG1pMDI4M3F0X2RyaXZlciA9IHsKPiA+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERSSVZFUl9BVE9NSUMsCj4gPj4+Pj4gICAgICAgICAgLmZvcHMgICAgICAgICAgICAg ICAgICAgPSAmbWkwMjgzcXRfZm9wcywKPiA+Pj4+PiAgICAgICAgICBUSU5ZRFJNX0dFTV9EUklW RVJfT1BTLAo+ID4+Pj4+ICsgICAgICAgLnJlbGVhc2UgICAgICAgICAgICAgICAgPSB0aW55ZHJt X3JlbGVhc2UsCj4gPiAKPiA+IFNob3VsZCB0aGlzIGJlIGluY2x1ZGVkIGluIHRoZSBUSU5ZRFJN X0dFTV9EUklWRVJfT1BTIG1hY3JvID8KPiAKPiBJIGRpZCB0aGF0IGZpcnN0LCB0aGVuIEkgc2F3 IHRoZSBuYW1lIEdFTSBPUFMsIGFuZCBwdXQgaXQgb3V0c2lkZSA6LSkKCllvdSBjb3VsZCByZW5h bWUgdGhlIG1hY3JvIHRvIFRJTllEUk1fRFJJVkVSX09QUyA6LSkgVGhlIG9ubHkgZHJhd2JhY2sg aXMgdGhhdCAKZHJpdmVycyB3b3VsZG4ndCBiZSBhYmxlIHRvIHByb3ZpZGUgdGhlaXIgb3duIC5y ZWxlYXNlKCkgb3BlcmF0aW9uLCBpdCBtaWdodCAKYmVjb21lIGEgcHJvYmxlbSBsYXRlci4KCj4g Pj4+Pj4gICAgICAgICAgLmxhc3RjbG9zZSAgICAgICAgICAgICAgPSB0aW55ZHJtX2xhc3RjbG9z ZSwKPiA+Pj4+PiAgICAgICAgICAuZGVidWdmc19pbml0ICAgICAgICAgICA9IG1pcGlfZGJpX2Rl YnVnZnNfaW5pdCwKPiA+Pj4+PiAgICAgICAgICAubmFtZSAgICAgICAgICAgICAgICAgICA9ICJt aTAyODNxdCIsCj4gPiAKPiA+IFtzbmlwXQoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK