From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg KH Subject: Re: devm actions and hw clenaup (was Re: [PATCH 01/11] drm: Add devm_drm_dev_init/register) Date: Thu, 24 Jan 2019 18:46:41 +0100 Message-ID: <20190124174641.GA7072@kroah.com> References: <20190120114318.49199-1-noralf@tronnes.org> <20190120114318.49199-2-noralf@tronnes.org> <20190121091014.GK3271@phenom.ffwll.local> <20190121095549.GR3271@phenom.ffwll.local> <20190122093213.GU3271@phenom.ffwll.local> <3c039a28-f255-4520-5e20-4f7f9caa4f46@tronnes.org> <723b2fcf-5dbc-dd4b-8e3c-daa88bad98fe@tronnes.org> <20190124104312.GT3271@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F60A88AEF for ; Thu, 24 Jan 2019 17:46:44 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190124104312.GT3271@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: David Lechner , dri-devel , "Rafael J. Wysocki" List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBKYW4gMjQsIDIwMTkgYXQgMTE6NDM6MTJBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIEphbiAyMywgMjAxOSBhdCAxMTo1NDowN0FNICswMTAwLCBOb3JhbGYg VHLDuG5uZXMgd3JvdGU6Cj4gPiAKPiA+IAo+ID4gRGVuIDIyLjAxLjIwMTkgMjAuMzAsIHNrcmV2 IERhbmllbCBWZXR0ZXI6Cj4gPiA+IE9uIFR1ZSwgSmFuIDIyLCAyMDE5IGF0IDg6MDcgUE0gTm9y YWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+IHdyb3RlOgo+ID4gPj4KPiA+ID4+Cj4g PiA+Pgo+ID4gPj4gRGVuIDIyLjAxLjIwMTkgMTAuMzIsIHNrcmV2IERhbmllbCBWZXR0ZXI6Cj4g PiA+Pj4gT24gTW9uLCBKYW4gMjEsIDIwMTkgYXQgMDE6MjE6NDZQTSArMDEwMCwgTm9yYWxmIFRy w7hubmVzIHdyb3RlOgo+ID4gPj4+Pgo+ID4gPj4+Pgo+ID4gPj4+PiBEZW4gMjEuMDEuMjAxOSAx MC41NSwgc2tyZXYgRGFuaWVsIFZldHRlcjoKPiA+ID4+Pj4+IE9uIE1vbiwgSmFuIDIxLCAyMDE5 IGF0IDEwOjEwOjE0QU0gKzAxMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+Pj4+Pj4gT24g U3VuLCBKYW4gMjAsIDIwMTkgYXQgMTI6NDM6MDhQTSArMDEwMCwgTm9yYWxmIFRyw7hubmVzIHdy b3RlOgo+ID4gPj4+Pj4+PiBUaGlzIGFkZHMgcmVzb3VyY2UgbWFuYWdlZCAoZGV2cmVzKSB2ZXJz aW9ucyBvZiBkcm1fZGV2X2luaXQoKSBhbmQKPiA+ID4+Pj4+Pj4gZHJtX2Rldl9yZWdpc3Rlcigp Lgo+ID4gPj4+Pj4+Pgo+ID4gPj4+Pj4+PiBBbHNvIGFkZGVkIGlzIGRldm1fZHJtX2Rldl9yZWdp c3Rlcl93aXRoX2ZiZGV2KCkgd2hpY2ggc2V0cyB1cCBnZW5lcmljCj4gPiA+Pj4+Pj4+IGZiZGV2 IGVtdWxhdGlvbiBhcyB3ZWxsLgo+ID4gPj4+Pj4+Pgo+ID4gPj4+Pj4+PiBkZXZtX2RybV9kZXZf cmVnaXN0ZXIoKSBpc24ndCBleHBvcnRlZCBzaW5jZSB0aGVyZSBhcmUgbm8gdXNlcnMuCj4gPiA+ Pj4+Pj4+Cj4gPiA+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxm QHRyb25uZXMub3JnPgo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Cj4gPiA+Pj4+IDxzbmlwPgo+ID4gPj4+ Pgo+ID4gPj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKPiA+ID4+Pj4+Pj4gaW5kZXggMzgxNTgxYjAxZDQ4Li4x MjEyOTc3MmJlNDUgMTAwNjQ0Cj4gPiA+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZHJ2LmMKPiA+ID4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwo+ID4gPj4+ Pj4+PiBAQCAtMzYsNiArMzYsNyBAQAo+ID4gPj4+Pj4+Pgo+ID4gPj4+Pj4+PiAgI2luY2x1ZGUg PGRybS9kcm1fY2xpZW50Lmg+Cj4gPiA+Pj4+Pj4+ICAjaW5jbHVkZSA8ZHJtL2RybV9kcnYuaD4K PiA+ID4+Pj4+Pj4gKyNpbmNsdWRlIDxkcm0vZHJtX2ZiX2hlbHBlci5oPgo+ID4gPj4+Pj4+PiAg I2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gPiA+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+ICAjaW5jbHVkZSAi ZHJtX2NydGNfaW50ZXJuYWwuaCIKPiA+ID4+Pj4+Pj4gQEAgLTg3MSw2ICs4NzIsMTExIEBAIHZv aWQgZHJtX2Rldl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiA+Pj4+Pj4+ ICB9Cj4gPiA+Pj4+Pj4+ICBFWFBPUlRfU1lNQk9MKGRybV9kZXZfdW5yZWdpc3Rlcik7Cj4gPiA+ Pj4+Pj4+Cj4gPiA+Pj4+Pj4+ICtzdGF0aWMgdm9pZCBkZXZtX2RybV9kZXZfaW5pdF9yZWxlYXNl KHZvaWQgKmRhdGEpCj4gPiA+Pj4+Pj4+ICt7Cj4gPiA+Pj4+Pj4+ICsgZHJtX2Rldl9wdXQoZGF0 YSk7Cj4gPiA+Pj4+Pgo+ID4gPj4+Pj4gV2UgbmVlZCBkcm1fZGV2X3VucGx1ZygpIGhlcmUsIG9y IHRoaXMgaXNuJ3Qgc2FmZS4KPiA+ID4+Pj4KPiA+ID4+Pj4gVGhpcyBmdW5jdGlvbiBpcyBvbmx5 IHVzZWQgdG8gY292ZXIgdGhlIGVycm9yIHBhdGggaWYgcHJvYmUgZmFpbHMgYmVmb3JlCj4gPiA+ Pj4+IGRldm1fZHJtX2Rldl9yZWdpc3RlcigpIGlzIGNhbGxlZC4gZGV2bV9kcm1fZGV2X3JlZ2lz dGVyX3JlbGVhc2UoKSBpcwo+ID4gPj4+PiB0aGUgb25lIHRoYXQgY2FsbHMgdW5wbHVnLiBUaGVy ZSBhcmUgY29tbWVudHMgYWJvdXQgdGhpcyBpbiB0aGUgZnVuY3Rpb25zLgo+ID4gPj4+Cj4gPiA+ Pj4gSSB0aGluayBJIGdldCBhIHByaXplIGZvciBiZWluZyBpZ25vcmFudCBhbmQgYmxpbmQgOi0v Cj4gPiA+Pj4KPiA+ID4+Pj4KPiA+ID4+Pj4+Cj4gPiA+Pj4+Pj4+ICt9Cj4gPiA+Pj4+Pj4+ICsK PiA+ID4+Pj4+Pj4gKy8qKgo+ID4gPj4+Pj4+PiArICogZGV2bV9kcm1fZGV2X2luaXQgLSBSZXNv dXJjZSBtYW5hZ2VkIGRybV9kZXZfaW5pdCgpCj4gPiA+Pj4+Pj4+ICsgKiBAcGFyZW50OiBQYXJl bnQgZGV2aWNlIG9iamVjdAo+ID4gPj4+Pj4+PiArICogQGRldjogRFJNIGRldmljZQo+ID4gPj4+ Pj4+PiArICogQGRyaXZlcjogRFJNIGRyaXZlcgo+ID4gPj4+Pj4+PiArICoKPiA+ID4+Pj4+Pj4g KyAqIE1hbmFnZWQgZHJtX2Rldl9pbml0KCkuIFRoZSBEUk0gZGV2aWNlIGluaXRpYWxpemVkIHdp dGggdGhpcyBmdW5jdGlvbiBpcwo+ID4gPj4+Pj4+PiArICogYXV0b21hdGljYWxseSByZWxlYXNl ZCBvbiBkcml2ZXIgZGV0YWNoLiBZb3UgbXVzdCBzdXBwbHkgYQo+ID4gPj4+Pj4KPiA+ID4+Pj4+ IEkgdGhpbmsgYSBiaXQgbW9yZSBjbGFyaXR5IGhlcmUgd291bGQgYmUgZ29vZDoKPiA+ID4+Pj4+ Cj4gPiA+Pj4+PiAiLi4uIGF1dG9tYXRpY2FsbHkgcmVsZWFzZWQgb24gZHJpdmVyIHVuYmluZCBi eSBjYWxsaW5kIGRybV9kZXZfdW5wbHVnKCkuIgo+ID4gPj4+Pj4KPiA+ID4+Pj4+Pj4gKyAqICZk cm1fZHJpdmVyLnJlbGVhc2UgY2FsbGJhY2sgdG8gY29udHJvbCB0aGUgZmluYWxpemF0aW9uIGV4 cGxpY2l0bHkuCj4gPiA+Pj4+Pgo+ID4gPj4+Pj4gSSB0aGluayBhIGxvdWQgd2FybmluZyBmb3Ig dGhlc2UgaXMgaW4gb3JkZXI6Cj4gPiA+Pj4+Pgo+ID4gPj4+Pj4gIldBUk5JTkc6Cj4gPiA+Pj4+ Pgo+ID4gPj4+Pj4gIkluIGdlbmVyYWxseSBpdCBpcyB1bnNhZmUgdG8gdXNlIGRldm0gZnVuY3Rp b25zIGZvciBkcm0gc3RydWN0dXJlcwo+ID4gPj4+Pj4gYmVjYXVzZSB0aGUgbGlmZXRpbWVzIG9m ICZkcm1fZGV2aWNlIGFuZCB0aGUgdW5kZXJseWluZyAmZGV2aWNlIGRvIG5vdAo+ID4gPj4+Pj4g bWF0Y2guIFRoaXMgaGVyZSB3b3JrcyBiZWNhdXNlIGl0IGRvZXNuJ3QgaW1tZWRpYXRlbHkgZnJl ZSBhbnl0aGluZywgYnV0Cj4gPiA+Pj4+PiBvbmx5IGNhbGxzIGRybV9kZXZfdW5wbHVnKCksIHdo aWNoIGludGVybmFsbHkgZGVjcmVtZW50cyB0aGUgJmRybV9kZXZpY2UKPiA+ID4+Pj4+IHJlZmNv dW50IHRocm91Z2ggZHJtX2Rldl9wdXQoKS4KPiA+ID4+Pj4+Cj4gPiA+Pj4+PiAiQWxsIG90aGVy IGRybSBzdHJ1Y3R1cmVzIG11c3Qgc3RpbGwgYmUgZXhwbGljaXRseSByZWxlYXNlZCBpbiB0aGUK PiA+ID4+Pj4+ICZkcm1fZHJpdmVyLnJlbGVhc2UgY2FsbGJhY2suIgo+ID4gPj4+Pj4KPiA+ID4+ Pj4+IFdoaWxlIHRoaW5raW5nIGFib3V0IHRoaXMgSSBqdXN0IHJlYWxpemVkIHRoYXQgd2l0aCB0 aGlzIGRlc2lnbiB3ZSBoYXZlIG5vCj4gPiA+Pj4+PiBnb29kIHBsYWNlIHRvIGNhbGwgZHJtX2F0 b21pY19oZWxwZXJfc2h1dGRvd24oKS4gV2hpY2ggd2UgbmVlZCB0bywgb3IgYWxsCj4gPiA+Pj4+ PiBraW5kcyBvZiB0aGluZ3Mgd2lsbCBsZWFrIGJhZGx5IChjb25uZWN0b3JzLCBmYiwgLi4uKSwg YnV0IHRoZXJlJ3Mgbm8KPiA+ID4+Pj4+IHBsYWNlIHRvIGNhbGwgaXQ6Cj4gPiA+Pj4+PiAtIHVu YmluZCBpcyB0b28gZWFybHksIHNpbmNlIHdlIGhhdmVuJ3QgeWV0IGNhbGxlZCBkcm1fZGV2X3Vu cGx1ZywgYW5kIHRoZQo+ID4gPj4+Pj4gICBkcm1fZGV2X3VucmVnaXN0ZXIgaW4gdGhlcmUgbXVz dCBiZSBjYWxsZWQgX2JlZm9yZV8gd2Ugc3RhcnQgdG8gc2h1dAo+ID4gPj4+Pj4gICBkb3duIGFu eXRoaW5nLgo+ID4gPj4+Pj4gLSBkcm1fZHJpdmVyLnJlbGVhc2UgaXMgd2F5IHRvbyBsYXRlLgo+ ID4gPj4+Pj4KPiA+ID4+Pj4+IE9mYyBmb3IgYSByZWFsIGhvdHVucGx1ZyB0aGVyZSdzIG5vIHBv aW50IGluIHNodXR0aW5nIGRvd24gdGhlIGh3IChpdCdzCj4gPiA+Pj4+PiBhbHJlYWR5IGdvbmUp LCBidXQgZm9yIGEgZHJpdmVyIHVubG9hZC91bmJpbmQgaXQgd291bGQgYmUgbmljZSBpZiB0aGlz Cj4gPiA+Pj4+PiBoYXBwZW5zIGF1dG9tYXRpY2FsbHkgYW5kIGluIHRoZSByaWdodCBvcmRlci4K PiA+ID4+Pj4+Cj4gPiA+Pj4+PiBTbyBub3Qgc3VyZSB3aGF0IHRvIGRvIGhlcmUgcmVhbGx5Lgo+ ID4gPj4+Pgo+ID4gPj4+PiBIb3cgYWJvdXQgdGhpcyBjaGFuZ2U6IChpdCBicmVha3MgdGhlIHJ1 bGUgb2YgcHVsbGluZyBoZWxwZXJzIGludG8gdGhlCj4gPiA+Pj4+IGNvcmUsIHNvIG1heWJlIHdl IHNob3VsZCBwdXQgdGhlIGRldm1fIGZ1bmN0aW9ucyBpbnRvIHRoZSBzaW1wbGUgS01TCj4gPiA+ Pj4+IGhlbHBlciBpbnN0ZWFkPykKPiA+ID4+Pgo+ID4gPj4+IFllYWggc21lbGxzIGEgYml0IG11 Y2ggbGlrZSBtaWRsYXllciAuLi4gV2hhdCB3b3VsZCB3b3JrIGlzIGhhdmluZyBhIHBpbGUKPiA+ ID4+PiBtb3JlIGRldm1fIGhlbHBlciBmdW5jdGlvbnMsIHNvIHRoYXQgd2Ugb25pb24tdW53cmFw IGV2ZXJ5dGhpbmcgY29ycmVjdGx5LAo+ID4gPj4+IGFuZCBpbiB0aGUgcmlnaHQgb3JkZXIuIFNv Ogo+ID4gPj4+Cj4gPiA+Pj4gLSBkZXZtX2RybV9kZXZfaW5pdCAoYWx3YXlzIGRvZXMgYSBkcm1f ZGV2X3B1dCgpKQo+ID4gPj4+Cj4gPiA+Pj4gLSBkZXZtX2RybV9wb2xsX2VuYWJsZSAoc2h1dHMg ZG93biB0aGUgcG9sbCBoZWxwZXIgd2l0aCBhIGRldm0gYWN0aW9uKQo+ID4gPj4+Cj4gPiA+Pj4g LSBkZXZtX2RybV9tb2RlX2NvbmZpZ19yZXNldCAoZG9lcyBhbiBhdG9taWNfaGVscGVyX3NodXRk b3duKCkgYXMgaXQncyBjbGVhbnVwIGFjdGlvbikKPiA+ID4+Pgo+ID4gPj4+IC0gZGV2bV9kcm1f ZGV2X3JlZ2lzdGVyIChncmFicyBhbiBhZGRpdGlvbmFsIGRybV9kZXZfZ2V0KCkgcmVmZXJlbmNl IHNvIGl0Cj4gPiA+Pj4gICBjYW4gY2FsbCBkcm1fZGV2X3VucGx1ZygpIHVuY29uZGl0aW9uYWxs eSkuCj4gPiA+Pj4KPiA+ID4+Cj4gPiA+PiBCZWF1dGlmdWwhIEkgcmVhbGx5IGxpa2UgdGhpcywg aXQncyB2ZXJ5IGZsZXhpYmxlLgo+ID4gPj4KPiA+ID4+IFdoZXJlIHNob3VsZCBkZXZtX2RybV9t b2RlX2NvbmZpZ19yZXNldCgpIGxpdmU/IEl0IHdpbGwgcHVsbCBpbiB0aGUKPiA+ID4+IGF0b21p YyBoZWxwZXIuLi4KPiA+ID4gCj4gPiA+IEkgdGhpbmsgYSBuZXcgZHJtX2Rldm0uYyBoZWxwZXIg d291bGQgYmUgbmljZSBmb3IgYWxsIHRoaXMgc3R1ZmYuCj4gPiA+IEVzcGVjaWFsbHkgc2luY2Ug eW91IGNhbid0IGZyZWVseSBtaXggZGV2bS1iYXNlZCBzZXR1cC9jbGVhbnVwIHdpdGgKPiA+ID4g bm9ybWFsIGNsZWFudXAgSSB0aGluayBpdCdkIGJlIGdvb2QgdG8gaGF2ZSBpdCBhbGwgdG9nZXRo ZXIgaW4gb25lCj4gPiA+IHBsYWNlLiBBbmQgcGVyaGFwcyBldmVuIGEgY29kZSBleGFtcGxlIGlu IHRoZSBET0M6IG92ZXJ2aWV3Lgo+ID4gPiAKPiA+ID4+PiBXZSdkIG5lZWQgdG8gbWFrZSBzdXJl IHNvbWUgb2YgdGhlIGNsZWFudXAgYWN0aW9ucyBkdHJ0IHdoZW4gdGhlIGRldmljZSBpcwo+ID4g Pj4+IGdvbmUsIGJ1dCBJIHRoaW5rIHdlIGNhbiBhY2hpZXZlIHRoYXQgYnkgbGliZXJhbGx5IHNw cmlua2xpbmcKPiA+ID4+PiBkcm1fZGV2X2VudGVyL2V4aXQgb3ZlciB0aGVtLCBlLmcuIHRoZSB0 aGUgY2xlYW51cCBhY3Rpb24gZm9yCj4gPiA+Pj4gZHJtX21vZGVfY29uZmlnX3Jlc2V0IHdvdWxk IGJlOgo+ID4gPj4+Cj4gPiA+Pj4gewo+ID4gPj4+ICAgICAgIGlmIChkcm1fZGV2X2VudGVyKCkp Cj4gPiA+Pj4gICAgICAgICAgICAgICByZXR1cm47Cj4gPiA+Pj4KPiA+ID4+PiAgICAgICBkcm1f YXRvbWljX2hlbHBlcl9zaHV0ZG93bigpOwo+ID4gPj4+Cj4gPiA+Pj4gICAgICAgZHJtX2Rldl9l eGl0KCk7Cj4gPiA+Pj4gfQo+ID4gPj4+Cj4gPiA+Pgo+ID4gPj4gZHJtX2Rldl9lbnRlcigpIGNh biBvbmx5IGJlIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgZHJtX2RldmljZSBpcwo+ID4gPj4g cmVnaXN0ZXJlZCBvciBub3QsIGl0IGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IHRoZSBzdGF0 ZSBvZiB0aGUgcGFyZW50Cj4gPiA+PiBkZXZpY2UuCj4gPiA+Pgo+ID4gPj4gQWxsIHdlIGtub3cg aXMgdGhhdCB0aGUgZGV2aWNlIGlzIGJlaW5nIHVuYm91bmQgZnJvbSB0aGUgZHJpdmVyLCB3ZQo+ ID4gPj4gZG9uJ3Qga25vdyBpZiBpdCdzIHRoZSBkZXZpY2UgdGhhdCdzIGJlaW5nIHJlbW92ZWQg b3IgaWYgaXQncyB0aGUgZHJpdmVyCj4gPiA+PiB0aGF0J3MgdW5yZWdpc3RlcmVkLgo+ID4gPiAK PiA+ID4gWW91J3JlIHJpZ2h0LCBib3RoIHBhdGhzIHdpbGwgaGF2ZSBjYWxsZWQgZHJtX2Rldl91 bnBsdWcgYnkgdGhlbi4KPiA+ID4gU2lsbHkgbWUuIEkgcmVhbGx5IGxpa2VkIG15IGlkZWEgOi0p Cj4gPiA+IAo+ID4gPj4gSSBoYXZlIGxvb2tlZCBhdCB0aGUgdmFyaW91cyBjYWxsIGNoYWluczoK PiA+ID4+Cj4gPiA+PiBkcml2ZXJfdW5yZWdpc3RlciAtPgo+ID4gPj4gICAgIGJ1c19yZW1vdmVf ZHJpdmVyIC0+Cj4gPiA+PiAgICAgICAgIGRyaXZlcl9kZXRhY2ggLT4KPiA+ID4+ICAgICAgICAg ICAgIGRldmljZV9yZWxlYXNlX2RyaXZlcl9pbnRlcm5hbAo+ID4gPj4KPiA+ID4+IGRldmljZV91 bnJlZ2lzdGVyIC0+Cj4gPiA+PiAgICAgZGV2aWNlX2RlbCAtPgo+ID4gPj4gICAgICAgICBidXNf cmVtb3ZlX2RldmljZSAtPgo+ID4gPj4gICAgICAgICAgICAgZGV2aWNlX3JlbGVhc2VfZHJpdmVy IC0+Cj4gPiA+PiAgICAgICAgICAgICAgICAgZGV2aWNlX3JlbGVhc2VfZHJpdmVyX2ludGVybmFs Cj4gPiA+Pgo+ID4gPj4gc3lzZnM6IHVuYmluZF9zdG9yZSAtPgo+ID4gPj4gICAgIGRldmljZV9y ZWxlYXNlX2RyaXZlciAtPgo+ID4gPj4gICAgICAgICBkZXZpY2VfcmVsZWFzZV9kcml2ZXJfaW50 ZXJuYWwKPiA+ID4+Cj4gPiA+PiBUaGUgb25seSB3YXkgSSd2ZSBmb3VuZCB0byBkaWZmZXJlbnRp YXRlIGJldHdlZW4gdGhlc2UgaW4gYSBjbGVhbnVwCj4gPiA+PiBhY3Rpb24gaXMgdGhhdCBkZXZp Y2VfZGVsKCkgdXNlcyB0aGUgYnVzIG5vdGlmaWVyIHRvIHNpZ25hbAo+ID4gPj4gQlVTX05PVElG WV9ERUxfREVWSUNFIGJlZm9yZSBjYWxsaW5nIGJ1c19yZW1vdmVfZGV2aWNlKCkuIFN1Y2ggYQo+ ID4gPj4gbm90aWZpZXIgY291bGQgYmUgdXNlZCB0byBzZXQgYSBkcm1fZGV2aWNlLT5wYXJlbnRf cmVtb3ZlZCBmbGFnLgo+ID4gPiAKPiA+ID4gSG0sIHRoaXMgbWlnaHQgdXBzZXQgR3JlZyBLSCdz IGNvZGUgdGFzdGUgLi4uIG1heWJlIHRoZXJlJ3MgYSBiZXR0ZXIKPiA+ID4gd2F5IHRvIGRvIHRo aXMsIGJ1dCBiZXN0IHRvIHByb3RvdHlwZSBhIHBhdGNoIHdpdGggdGhpcywgc2VuZCBpdCB0bwo+ ID4gPiBoaW0gYW5kIGFzayBob3cgdG8gOi0pCj4gPiA+IAo+ID4gCj4gPiBJJ2xsIGxlYXZlIHRo aXMgdG8gdGhlIG9uZSB0aGF0IG5lZWRzIGl0LiBUaGUgdGlueWRybSBkcml2ZXJzIGRvZXNuJ3QK PiA+IG5lZWQgdG8gdG91Y2ggaHcgYWZ0ZXIgRFJNIHVucmVnaXN0ZXIuCj4gPiAKPiA+ID4+IFdo eSBpcyBpdCBuZWNlc3NhcnkgdG8gY2FsbCBkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bigpIGhl cmU/IERvZXNuJ3QKPiA+ID4+IGV2ZXJ5dGhpbmcgZ2V0IGRpc2FibGVkIHdoZW4gdXNlcnNwYWNl IGNsb3Nlcz8gSXQgZG9lcyBpbiBteSB0aW55ZHJtCj4gPiA+PiB3b3JsZCA6LSkKPiA+ID4gCj4g PiA+IElpcmMgZmJkZXYvZmJjb24gY2FuIHJlc3VsdCBpbiBsZWFrcyAuLi4gYXQgbGVhc3Qgd2Un dmUgaGFkIHBhdGNoZXMKPiA+ID4gd2hlcmUgZHJpdmVycyBsZWFrZWQgZHJtX2Nvbm5lY3RvciBh bmQgZHJtX2ZyYW1lYnVmZmVyIG9iamVjdHMsIGFuZAo+ID4gPiB0aGV5J3ZlIGJlZW4gZml4ZWQg YnkgY2FsbGluZyBkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bigpIGluIHRoZQo+ID4gPiB1bmxv YWQgcGF0aC4gTWF5YmUgdGhpcyBpcyBjYXJnby1jdWx0aW5nLCBidXQgaXQgZ29lcyB3YXkgYmFj ayB0bwo+ID4gPiBwcmUtYXRvbWljLCB3aGVyZSBkcml2ZXJzIGNhbGxlZCBkcm1faGVscGVyX2Zv cmNlX2Rpc2FibGVfYWxsKCkuCj4gPiA+IAo+ID4gPiBJZiB5b3UgdHJ5IHRvIG1vdmUgdGhlIGZi Y29uIHRvIHlvdXIgdGlueWRybSBkcml2ZXJzIChjb24yZmIgaXMKPiA+ID4gYXBwYXJlbnRseSB0 aGUgY21kbGluZSB0b29sIHlvdSBuZWVkLCBuZXZlciB0cmllZCBpdCwgSSBvbmx5IHN3aXRjaAo+ ID4gPiB0aGUga2VybmVsJ3MgY29uc29sZSBiZXR3ZWVuIGZiY29uIGFuZCBkdW1teWNvbiBhbmQg YmFjaywgbm90IHdoYXQKPiA+ID4gZmJjb24gZHJpdmVycyBpdHNlbGYpLCB0aGVuIEkgdGhpbmsg eW91IHNob3VsZCBiZSBhYmxlIHRvIHJlcHJvZHVjZS4KPiA+ID4gQW5kIG1heWJlIHlvdSBoYXZl IGEgYmV0dGVyIGlkZWEgaG93IHRvIGRlYWwgd2l0aCB0aGlzIGFsbC4KPiA+ID4gCj4gPiA+IE5v dGUgYWxzbyB0aGF0IHRoZXJlJ3MgYmVlbiBwcm9wb3NhbHMgZmxvYXRpbmcgYXJvdW5kIHRvIG9u bHkgY2xvc2UgYW4KPiA+ID4gZHJtX2ZyYW1lYnVmZmVyLCBub3QgYWxzbyByZW1vdmUgaXQgKGxp a2UgdGhlIGN1cnJlbnQgUk1GQiBpb2N0bAo+ID4gPiBkb2VzKSwgd2l0aCB0aGF0IGNsb3Npbmcg dXNlcnNwYWNlIHdvdWxkIG5vdCBuZWNlc3NhcmlseSBsZWFkIHRvIGEKPiA+ID4gZnVsbCBjbGVh bnVwLgo+ID4gPiAKPiA+ID4gQW5vdGhlciB0aGluZyAod2hpY2ggZG9lc24ndCBhcHBseSB0byBk cm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSBkcml2ZXJzKQo+ID4gPiBpcyBpZiB5b3UgaGF2ZSB0aGUg ZGlzcGxheSBvbiwgYnV0IG5vIHBsYW5lcyBzaG93aW5nIChpLmUuIGFsbCBibGFjaykuCj4gPiA+ IFRoZW4gYWxsIHRoZSBmYnMgd2lsbCBiZSBjbGVhbmVkIHVwLCBidXQgZHJtX2Nvbm5lY3RvciB3 aWxsIGJlCj4gPiA+IGxlYWtpbmcuIFRoYXQncyBhIGNhc2Ugd2hlcmUgeW91IG5lZWQgZHJtX2F0 b21pY19oZWxwZXJfc2h1dGRvd24oKQo+ID4gPiBldmVuIGlmIGZiY29uL2ZiZGV2IGlzbid0IGV2 ZW4gZW5hYmxlZC4KPiA+ID4gCj4gPiAKPiA+IE9rLCB0aGlzIG1lYW5zIHRoYXQgSSBkb24ndCBu ZWVkIHRvIGNhbGwgZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oKSBpbgo+ID4gdGlueWRybS4g RFJNIHVzZXJzcGFjZSBkaXNhYmxlcyB0aGUgcGlwZSBvbiBjbG9zZSBhbmQgdGhlIGdlbmVyaWMg ZmJkZXYKPiA+IGVtdWxhdGlvbiBhbHNvIHJlbGVhc2VzIGV2ZXJ5dGhpbmcuCj4gPiBFdmVuIHNv LCBtYXliZSBJIHNob3VsZCB1c2UgZGV2bV9kcm1fbW9kZV9jb25maWdfcmVzZXQoKSBhZnRlciBh bGwgdG8KPiA+IGtlZXAgZHJpdmVycyB1bmlmb3JtLCB0byBhdm9pZCBjb25mdXNpb246IHdoeSBk b2Vzbid0IGhlIHVzZSBpdD8KPiAKPiBIbSBtYXliZSB0aGVyZSBpcyBhbiBvZmZpY2lhbCB3YXkg dG8gc29sdmUgdGhpcywgcHVsbGluZyBpbiBHcmVnK1JhZmFlbC4KPiAKPiBTdXBlciBzaG9ydCBz dW1tYXJ5OiBXZSB3YW50IHRvIHN0YXJ0IHVzaW5nIGRldm0gYWN0aW9ucyB0byBjbGVhbiB1cCBk cm0KPiBkcml2ZXJzLiBIZXJlJ3MgdGhlIHByb2JsZW06Cj4gLSBGb3IgYSBkcml2ZXIgdW5sb2Fk L3VuYmluZCB3aXRob3V0IGhvdHVucGx1Zywgd2Ugd2FudCB0byBwcm9wZXJseSBjbGVhbgo+ICAg dXAgdGhlIGhhcmR3YXJlIGFuZCBzaHV0IGl0IGFsbCBkb3duLgoKVGhlbiBkbyBpdCBvbiBwcm9i ZS9kaXNjb25uZWN0LgoKPiAtIEJ1dCBpZiB0aGUgZGV2aWNlIGlzIHVucGx1Z2dlZCBhbHJlYWR5 LCB0aGF0J3MgcHJvYmFibHkgbm90IHRoZSBiZXN0Cj4gICBpZGVhLCBhbmQgd2Ugb25seSB3YW50 IHRvIGNsZWFuIHVwIHRoZSBrZXJuZWwncyByZXNvdXJjZXMvYWxsb2NhdGlvbnMuCgpBZ2Fpbiwg cHJvYmUvZGlzY29ubmVjdCB3aWxsIGJlIGNhbGxlZCBlaXRoZXIgd2F5LgoKQnV0IGFzIHlvdSBu b3RlLCBtZW1vcnkgd2lsbCBOT1QgYmUgZnJlZWQgYnkgdGhlIGRldm0gc3R1ZmYgaWYgeW91Cm1h bnVhbGx5IHVuYmluZCBhIGRyaXZlciBmcm9tIGEgZGV2aWNlLgoKU28gZG9uJ3QgdG91Y2ggaGFy ZHdhcmUgdGhlcmUsIGl0J3Mgbm90IGdvaW5nIHRvIHdvcmsgOikKCj4gV2hhdCdzIHRoZSByZWNv bW1lbmRhdGlvbiBoZXJlPyBJIHNlZSBhIGZldyBvcHRpb25zOgo+IAo+IC0gTWFrZSBzdXJlIGV2 ZXJ5dGhpbmcgY2FuIGRlYWwgd2l0aCB0aGlzIHByb3Blcmx5LiBIb3R1bnBsdWcgY2FuIGhhcHBl bgo+ICAgYW55dGltZSwgc28gdGhlcmUncyBhIHJhY2Ugbm8gbWF0dGVyIHdoYXQuCgpZZXMuCgo+ IC0gQ2hlY2sgd2l0aCB0aGUgZGV2aWNlIG1vZGVsIHdoZXRoZXIgdGhlIHN0cnVjdCBkZXZpY2Ug aXMgZGlzYXBwZWFyaW5nIG9yCj4gICB3aGV0aGVyIHdlJ3JlIGp1c3QgZGVhbGluZyB3aXRoIGEg ZHJpdmVyIHVuYmluZCAobm8gaWRlYSBob3cgdG8gZG8KPiAgIHRoYXQpLCBhbmQgYWN0IGFjY29y ZGluZ2x5LgoKWW91IGRvbid0IGtub3cgdGhhdCwgc29ycnkuICBKdXN0IGRvIGFueSBoYXJkd2Fy ZSBzdHVmZiBvbiBkaXNjb25uZWN0LgpBc3N1bWluZyB5b3VyIGhhcmR3YXJlIGlzIHN0aWxsIHBy ZXNlbnQgOikKCj4gLSBGdW5kYW1lbnRhbCBxdWVzdGlvbjogVG91Y2hpbmcgdGhlIGh3IGZyb20g ZGV2bSBhY3Rpb25zLCBpcyB0aGF0IG9rPyBJZgo+ICAgbm90LCB0aGVuIHRoZSBwcmV0dHkgbmlm dHkgcGxhbiBsYWlkIG91dCBpbiB0aGlzIHRocmVhZCB3b250IHdvcmsuCgpOb3BlLCB0aGF0J3Mg bm90IGdvaW5nIHRvIHdvcmssIHRoZSBkZXZpY2UgY291bGQgZWl0aGVyIGJlIGxvbmcgZ29uZSwg b3IKeW91IHdpbGwgbm90IGJlIGNhbGxlZCBkdWUgdG8gdW5iaW5kIGhhcHBlbmluZyBmcm9tIHVz ZXJzcGFjZS4KCkJ1dCByZWFsbHksIHVuYmluZCBmcm9tIHVzZXJzcGFjZSBpcyB2ZXJ5IHZlcnkg cmFyZSwgaXQncyBhIGRldmVsb3Blcgp0aGluZyBtb3N0bHkuICBPaCBhbmQgYSB2aXJ0dWFsIGRy aXZlciB0aGluZywgYnV0IHRob3NlIHBlb3BsZSBhcmUgY3JhenkKOikKCj4gLSBTb21ldGhpbmcg Y29tcGxldGVseSBkaWZmZXJlbnQ/CgpEbyBpdCBpbiBkaXNjb25uZWN0IDopCgp0aGFua3MsCgpn cmVnIGstaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK