From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [Intel-gfx] [PATCH v2 1/3] drm: Add support for panic message output Date: Fri, 15 Mar 2019 11:58:15 +0100 Message-ID: <20190315105815.GX2665@phenom.ffwll.local> References: <20190313133108.GL3888@intel.com> <0baabe1f-8924-2c9a-5cd4-59084a37dbb2@gmail.com> <617c0977-940f-c324-2b86-9a873c8ced28@daenzer.net> <76f769e5-fb95-2cdd-60fc-3e7286cf313f@gmail.com> <593cfebb-97b1-3d77-1081-1ca93eb56e86@amd.com> <20190314095004.GP2665@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Kazlauskas, Nicholas" Cc: "daniel.vetter@ffwll.ch" , Michel =?iso-8859-1?Q?D=E4nzer?= , "dri-devel@lists.freedesktop.org" , "darwish.07@gmail.com" , "intel-gfx@lists.freedesktop.org" , "Koenig, Christian" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMTQsIDIwMTkgYXQgMTI6NDQ6MDZQTSArMDAwMCwgS2F6bGF1c2thcywgTmlj aG9sYXMgd3JvdGU6Cj4gT24gMy8xNC8xOSA1OjUwIEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ ID4gT24gV2VkLCBNYXIgMTMsIDIwMTkgYXQgMDU6NDE6NTJQTSArMDAwMCwgS2F6bGF1c2thcywg TmljaG9sYXMgd3JvdGU6Cj4gPj4gT24gMy8xMy8xOSAxOjMzIFBNLCBNaWNoZWwgRMOkbnplciB3 cm90ZToKPiA+Pj4gT24gMjAxOS0wMy0xMyA1OjE2IHAubS4sIEthemxhdXNrYXMsIE5pY2hvbGFz IHdyb3RlOgo+ID4+Pj4gT24gMy8xMy8xOSAxMTo1NCBBTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90 ZToKPiA+Pj4+PiBBbSAxMy4wMy4xOSB1bSAxNjozOCBzY2hyaWViIE1pY2hlbCBEw6RuemVyOgo+ ID4+Pj4+PiBPbiAyMDE5LTAzLTEzIDI6MzcgcC5tLiwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToK PiA+Pj4+Pj4+IEFtIDEzLjAzLjE5IHVtIDE0OjMxIHNjaHJpZWIgVmlsbGUgU3lyasOkbMOkOgo+ ID4+Pj4+Pj4+IE9uIFdlZCwgTWFyIDEzLCAyMDE5IGF0IDEwOjM1OjA4QU0gKzAxMDAsIE1pY2hl bCBEw6RuemVyIHdyb3RlOgo+ID4+Pj4+Pj4+PiBPbiAyMDE5LTAzLTEyIDY6MTUgcC5tLiwgTm9y YWxmIFRyw7hubmVzIHdyb3RlOgo+ID4+Pj4+Pj4+Pj4gRGVuIDEyLjAzLjIwMTkgMTcuMTcsIHNr cmV2IFZpbGxlIFN5cmrDpGzDpDoKPiA+Pj4+Pj4+Pj4+PiBPbiBUdWUsIE1hciAxMiwgMjAxOSBh dCAxMTo0NzowNEFNICswMTAwLCBNaWNoZWwgRMOkbnplciB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4g T24gMjAxOS0wMy0xMSA2OjQyIHAubS4sIE5vcmFsZiBUcsO4bm5lcyB3cm90ZToKPiA+Pj4+Pj4+ Pj4+Pj4+IFRoaXMgYWRkcyBzdXBwb3J0IGZvciBvdXRwdXR0aW5nIGtlcm5lbCBtZXNzYWdlcyBv biBwYW5pYygpLgo+ID4+Pj4+Pj4+Pj4+Pj4gQSBrZXJuZWwgbWVzc2FnZSBkdW1wZXIgaXMgdXNl ZCB0byBkdW1wIHRoZSBsb2cuIFRoZSBkdW1wZXIKPiA+Pj4+Pj4+Pj4+Pj4+IGl0ZXJhdGVzCj4g Pj4+Pj4+Pj4+Pj4+PiBvdmVyIGVhY2ggRFJNIGRldmljZSBhbmQgaXQncyBjcnRjJ3MgdG8gZmlu ZCBzdWl0YWJsZQo+ID4+Pj4+Pj4+Pj4+Pj4gZnJhbWVidWZmZXJzLgo+ID4+Pj4+Pj4+Pj4+Pj4K PiA+Pj4+Pj4+Pj4+Pj4+IEFsbCB0aGUgb3RoZXIgZHVtcGVycyBhcmUgcnVuIGJlZm9yZSB0aGlz IG9uZSBleGNlcHQgbXRkb29wcy4KPiA+Pj4+Pj4+Pj4+Pj4+IE9ubHkgYXRvbWljIGRyaXZlcnMg YXJlIHN1cHBvcnRlZC4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBTaWduZWQtb2Zm LWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KPiA+Pj4+Pj4+Pj4+Pj4+ IC0tLQo+ID4+Pj4+Pj4+Pj4+Pj4gICDCoMKgIFsuLi5dCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+ Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oCj4gPj4+ Pj4+Pj4+Pj4+PiBiL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oCj4gPj4+Pj4+Pj4+Pj4+ PiBpbmRleCBmMGIzNGM5NzdlYzUuLmYzMjc0Nzk4ZWNmZSAxMDA2NDQKPiA+Pj4+Pj4+Pj4+Pj4+ IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oCj4gPj4+Pj4+Pj4+Pj4+PiArKysg Yi9pbmNsdWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaAo+ID4+Pj4+Pj4+Pj4+Pj4gQEAgLTk0LDYg Kzk0LDQ0IEBAIHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mgewo+ID4+Pj4+Pj4+Pj4+Pj4g ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYsIHVuc2lnbmVkIGZsYWdzLAo+ID4+Pj4+Pj4+Pj4+Pj4gICDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgdW5zaWduZWQgY29sb3IsIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpjbGlwcywK PiA+Pj4+Pj4+Pj4+Pj4+ICAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVk IG51bV9jbGlwcyk7Cj4gPj4+Pj4+Pj4+Pj4+PiArCj4gPj4+Pj4+Pj4+Pj4+PiArwqDCoMKgIC8q Kgo+ID4+Pj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICogQHBhbmljX3ZtYXA6Cj4gPj4+Pj4+Pj4+Pj4+ PiArwqDCoMKgwqAgKgo+ID4+Pj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICogT3B0aW9uYWwgY2FsbGJh Y2sgZm9yIHBhbmljIGhhbmRsaW5nLgo+ID4+Pj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICoKPiA+Pj4+ Pj4+Pj4+Pj4+ICvCoMKgwqDCoCAqIEZvciB2bWFwcGluZyB0aGUgc2VsZWN0ZWQgZnJhbWVidWZm ZXIgaW4gYSBwYW5pYyBjb250ZXh0Lgo+ID4+Pj4+Pj4+Pj4+Pj4gTXVzdAo+ID4+Pj4+Pj4+Pj4+ Pj4gK8KgwqDCoMKgICogYmUgc3VwZXIgY2FyZWZ1bCBhYm91dCBsb2NraW5nIChvbmx5IHRyeWxv Y2tpbmcgYWxsb3dlZCkuCj4gPj4+Pj4+Pj4+Pj4+PiArwqDCoMKgwqAgKgo+ID4+Pj4+Pj4+Pj4+ Pj4gK8KgwqDCoMKgICogUkVUVVJOUzoKPiA+Pj4+Pj4+Pj4+Pj4+ICvCoMKgwqDCoCAqCj4gPj4+ Pj4+Pj4+Pj4+PiArwqDCoMKgwqAgKiBOVUxMIGlmIGl0IGRpZG4ndCB3b3JrIG91dCwgb3RoZXJ3 aXNlIGFuIG9wYXF1ZSBjb29raWUKPiA+Pj4+Pj4+Pj4+Pj4+IHdoaWNoIGlzCj4gPj4+Pj4+Pj4+ Pj4+PiArwqDCoMKgwqAgKiBwYXNzZWQgdG8gQHBhbmljX2RyYXdfeHkuIEl0IGNhbiBiZSBhbnl0 aGluZzogdm1hcCBhcmVhLAo+ID4+Pj4+Pj4+Pj4+Pj4gc3RydWN0dXJlCj4gPj4+Pj4+Pj4+Pj4+ PiArwqDCoMKgwqAgKiB3aXRoIG1vcmUgZGV0YWlscywganVzdCBhIGZldyBmbGFncywgLi4uCj4g Pj4+Pj4+Pj4+Pj4+PiArwqDCoMKgwqAgKi8KPiA+Pj4+Pj4+Pj4+Pj4+ICvCoMKgwqAgdm9pZCAq KCpwYW5pY192bWFwKShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYik7Cj4gPj4+Pj4+Pj4+Pj4+ IEZXSVcsIHRoZSBwYW5pY192bWFwIGhvb2sgY2Fubm90IHdvcmsgaW4gZ2VuZXJhbCB3aXRoIHRo ZQo+ID4+Pj4+Pj4+Pj4+PiBhbWRncHUvcmFkZW9uCj4gPj4+Pj4+Pj4+Pj4+IGRyaXZlcnM6Cj4g Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+IEZyYW1lYnVmZmVycyBhcmUgbm9ybWFsbHkgdGls ZWQsIHdyaXRpbmcgdG8gdGhlbSB3aXRoIHRoZSBDUFUKPiA+Pj4+Pj4+Pj4+Pj4gcmVzdWx0cyBp bgo+ID4+Pj4+Pj4+Pj4+PiBnYXJibGVkIG91dHB1dC4KPiA+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+ Pj4+IEluIHdoaWNoIGNhc2UgdGhlIGRyaXZlciBuZWVkcyB0byBzdXBwb3J0IHRoZSAtPnBhbmlj X2RyYXdfeHkKPiA+Pj4+Pj4+Pj4+IGNhbGxiYWNrLAo+ID4+Pj4+Pj4+Pj4gb3IgbWF5YmUgaXQn cyBwb3NzaWJsZSB0byBtYWtlIGEgZ2VuZXJpYyBoZWxwZXIgZm9yIHRpbGVkIGJ1ZmZlcnMuCj4g Pj4+Pj4+Pj4+IEknbSBhZnJhaWQgdGhhdCB3b24ndCBoZWxwLCBhdCBsZWFzdCBub3Qgd2l0aG91 dCBwb3J0aW5nIGJpZyBjaHVua3Mgb2YKPiA+Pj4+Pj4+Pj4gaHR0cHM6Ly9naXRsYWIuZnJlZWRl c2t0b3Aub3JnL21lc2EvbWVzYS90cmVlL21hc3Rlci9zcmMvYW1kL2FkZHJsaWIKPiA+Pj4+Pj4+ Pj4gaW50byB0aGUga2VybmVsLCBub25lIG9mIHdoaWNoIHdpbGwgYmUgdXNlZCBmb3IgYW55dGhp bmcgZWxzZS4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4gVGhlcmUgd291 bGQgbmVlZCB0byBiZSBhIG1lY2hhbmlzbSBmb3Igc3dpdGNoaW5nIHNjYW5vdXQgdG8gYQo+ID4+ Pj4+Pj4+Pj4+PiBsaW5lYXIsCj4gPj4+Pj4+Pj4+Pj4+IENQVSBhY2Nlc3NpYmxlIGZyYW1lYnVm ZmVyLgo+ID4+Pj4+Pj4+Pj4+IEkgc3VwcG9zZSBwYW5pY192bWFwKCkgY291bGQganVzdCBwcm92 aWRlIGEgbGluZWFyIHRlbXAgYnVmZmVyCj4gPj4+Pj4+Pj4+Pj4gdG8gdGhlIHBhbmljIGhhbmRs ZXIsIGFuZCBwYW5pY191bm1hcCgpIGNvdWxkIGNvcHkgdGhlIGNvbnRlbnRzCj4gPj4+Pj4+Pj4+ Pj4gb3ZlciB0byB0aGUgcmVhbCBmYi4KPiA+Pj4+Pj4+Pj4gQ29weSBob3c/IFVzaW5nIGEgR1BV IGVuZ2luZT8KPiA+Pj4+Pj4+PiBDUFUgbWF5YmU/IFRob3VnaCBJIHN1cHBvc2UgdGhhdCB3b24n dCB3b3JrIGlmIHRoZSBidWZmZXIgaXNuJ3QgQ1BVCj4gPj4+Pj4+Pj4gYWNjZXNpYmxlIDovCj4g Pj4+Pj4+PiBXZWxsIHdlIGRvIGhhdmUgYSBkZWJ1ZyBwYXRoIGZvciBhY2Nlc3NpbmcgaW52aXNp YmxlIG1lbW9yeSB3aXRoIHRoZQo+ID4+Pj4+Pj4gQ1BVLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IEUu Zy4gdGhyZWUgcmVnaXN0ZXJzOiBEQVRBIGFuZCBhdXRvIGluY3JlbWVudCBPRkZTRVRfTE8vSEku IFNvIHlvdSBjYW4KPiA+Pj4+Pj4+IGp1c3QgcmVhZC93cml0ZSBEQVRBIG92ZXIgYW5kIG92ZXIg YWdhaW4gaWYgeW91IHdhbnQgdG8gYWNjZXNzIHNvbWUKPiA+Pj4+Pj4+IG1lbW9yeS4KPiA+Pj4+ Pj4gUmlnaHQuIEkgYXNzdW1lIHRoYXQnbGwgYmUgdmVyeSBzbG93LCBidXQgSSBndWVzcyBpdCBj b3VsZCBkbyB3aGVuIHRoZQo+ID4+Pj4+PiBtZW1vcnkgaXNuJ3QgZGlyZWN0bHkgQ1BVIGFjY2Vz c2libGUuCj4gPj4+Pj4KPiA+Pj4+PiBKdXN0IG1hZGUgYSBxdWljayB0ZXN0IGFuZCByZWFkaW5n IDMzNDIzMzYwIGJ5dGVzICg0MDk2eDIwNDB4NCkgdXNpbmcKPiA+Pj4+PiB0aGF0IGludGVyZmFj ZXMgdGFrZXMgYWJvdXQgMTMgc2Vjb25kcy4KPiA+Pj4+Pgo+ID4+Pj4+IElJUkMgd2UgZG9uJ3Qg dXNlIHRoZSBhdXRvIGluY3JlbWVudCBvcHRpbWl6YXRpb24geWV0LCBzbyB0aGF0IGNhbgo+ID4+ Pj4+IHByb2JhYmx5IGJlIGltcHJvdmVkIGJ5IGEgZmFjdG9yIG9mIDMgb3IgbW9yZS4KPiA+Pj4K PiA+Pj4gSSdkIGFzc3VtZSBvbmx5IHdyaXRlcyBhcmUgbmVlZGVkLCBubyByZWFkcy4KPiA+Pj4K PiA+Pj4KPiA+Pj4+Pj4+IEJ1dCB0dXJuaW5nIG9mIHRpbGxpbmcgZXRjIGlzIHN0aWxsIGV4dHJl bWVseSB0cmlja3kgd2hlbiB0aGUgc3lzdGVtIGlzCj4gPj4+Pj4+PiBhbHJlYWR5IHVuc3RhYmxl Lgo+ID4+Pj4+PiBNYXliZSB3ZSBjb3VsZCBhZGQgYSBsaXR0bGUgaG9vayB0byB0aGUgZGlzcGxh eSBjb2RlLCB3aGljaCBqdXN0Cj4gPj4+Pj4+IGRpc2FibGVzIHRpbGluZyBmb3Igc2Nhbm91dCBh bmQgbWF5YmUgZGlzYWJsZXMgbm9uLXByaW1hcnkgcGxhbmVzLCBidXQKPiA+Pj4+Pj4gZG9lc24n dCB0b3VjaCBhbnl0aGluZyBlbHNlLiBIYXJyeSAvIE5pY2hvbGFzLCBkb2VzIHRoYXQgc2VlbSBm ZWFzaWJsZT8KPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gSSdtIGNvbWluZyBhcm91bmQgZnJv bSAidGhpcyBpcyBuZXZlciBnb2luZyB0byB3b3JrIiB0byAiaXQgbWlnaHQKPiA+Pj4+Pj4gYWN0 dWFsbHkgd29yayIgd2l0aCBvdXIgaGFyZHdhcmUuLi4KPiA+Pj4+Pgo+ID4+Pj4+IFllYWgsIGFn cmVlLiBJdCdzIGEgYml0IHRyaWNreSwgYnV0IGRvYWJsZS4KPiA+Pj4+Cj4gPj4+PiBBICJkaXNh YmxlX3RpbGluZyIgaG9vayBvciBzb21ldGhpbmcgYWxvbmcgdGhvc2UgbGluZXMgY291bGQgd29y ayBmb3IKPiA+Pj4+IGRpc3BsYXkuIEl0J3MgYSBsaXR0bGUgYml0IG5vbiB0cml2aWFsIHdoZW4g eW91IHdhbnQgdG8gc3RhcnQgZGVhbGluZwo+ID4+Pj4gd2l0aCBsb2NraW5nIGFuZCBhbnkgYWN0 aXZlIERSTSBjb21taXRzLCBidXQgd2UgaGF2ZSBhIGdsb2JhbCBsb2NrCj4gPj4+PiBhcm91bmQg YWxsIG91ciBoYXJkd2FyZSBwcm9ncmFtbWluZyBhbnl3YXkgdGhhdCBtYWtlcyB0aGF0IGVhc2ll ciB0bwo+ID4+Pj4gZGVhbCB3aXRoLgo+ID4+Pgo+ID4+PiBUaGlzIGNvZGUgb25seSBydW5zIHdo ZW4gdGhlcmUncyBhIGtlcm5lbCBwYW5pYywgc28gaXQgZG9lc24ndCBoYXZlIHRvCj4gPj4+IGNh cmUgYWJvdXQgc3VjaCB0aGluZ3MuIDopIEluIGZhY3QsIGl0IHNob3VsZCByYXRoZXIgYXZvaWQg dGhlbSBhbmQgb25seQo+ID4+PiBkbyB0aGUgYWJzb2x1dGUgbWluaW11bSByZWdpc3RlciB3cml0 ZXMgbmVlZGVkIHRvIGRvIHRoZSBqb2IuCj4gPj4KPiA+PiBHb29kIHBvaW50LiBJIGd1ZXNzIGl0 IGRvZXNuJ3QgcmVhbGx5IG1hdHRlciBhdCB0aGF0IHBvaW50Lgo+ID4+Cj4gPj4+Cj4gPj4+Cj4g Pj4+PiBJIHRoaW5rIHdlIGNhbiBqdXN0IHJlLWNvbW1pdCBhbmQgdXBkYXRlIHRoZSBleGlzdGlu ZyBoYXJkd2FyZSBzdGF0ZQo+ID4+Pj4gd2l0aCBvbmx5IHRoZSB0aWxpbmcgaW5mbyBmb3IgZXZl cnkgcGxhbmUgcmVzZXQgdG8gb2ZmLgo+ID4+Pgo+ID4+PiBUaGVyZSdzIGFsc28gYSBjb25jZXJu IHRoYXQgbm9uLXByaW1hcnkgcGxhbmVzIG1pZ2h0IHByZXZlbnQgdGhlIG91dHB1dAo+ID4+PiBm cm9tIGJlaW5nIHZpc2libGUuCj4gPj4KPiA+PiBJIHdvdWxkIGp1c3QgaG9wZSB0aGF0IHRoZSBv dmVybGF5IGRvZXNuJ3QgY292ZXIgdGhlIGZ1bGwgc2NyZWVuLCBvcgo+ID4+IHRoYXQgdGhlIHBh bmljIGhhbmRsZXIgd3JpdGVzIHRvIGFsbCBidWZmZXJzIGlmIHBvc3NpYmxlLgo+ID4+Cj4gPj4g REMgd291bGQgaGF2ZSB0byBzd2FwIHRoZSBjdXJyZW50IGNvbnRleHQgaW4gb3JkZXIgdG8gZGlz YWJsZSBwbGFuZXMgYW5kCj4gPj4gd2UnZCBoYXZlIHRvIGRvIG1lbW9yeSBhbGxvY2F0aW9ucyAv IGZyZWVzIGV0YyBpbiBvcmRlciB0byBkbyBzby4KPiA+IAo+ID4gWW91IGNhbid0LiBBbmQgSSdt IHdpdGggTWljaGVsLCB5b3UgZG9uJ3Qgd2FudCB0byBydW4gYW55IG9mIHRoZSBEQyBjb2RlLgo+ ID4gUHVsbGluZyBpbiB+MTAwa2xvYyBvZiBkZXBlbmRlbmN5IGluIHBhbmljIGNvbnRleHQganVz dCBkb2Vzbid0IHdvcmsKPiA+ICh0aGF0J3Mgd2hhdCB3ZSB0cmllZCBiZWZvcmUgZXNzZW50aWFs bHkpLgo+ID4gCj4gPiBXaGF0IHlvdSBjYW4gZG8gaXMKPiA+IC0gdHJ5bG9jaywgYW5kIGJhaWwg b3V0IGlmIGFueSBsb2NrIGlzIGxvY2tlZCAoc2luY2UgdGhhdCBtZWFucyB1bmRlZmluZWQKPiA+ ICAgIGh3IG9yIHN3IHN0YXRlLCBhbmQgdGhlbiB5b3UgcmVhbGx5IHNob3VsZG4ndCB0b3VjaCBh bnl0aGluZykKPiA+IC0gbWF5YmUgd3JpdGUgYSBmZXcgdmVyeSBzcGVjaWZpYyByZWdpc3RlcnMg d2l0aCB0aGUgbW9zdCBtaW5pbWFsIGFtb3VudAo+ID4gICAgb2YgY29kZSAoc2luY2Ugd2UgbmVl ZCB0byB2YWxpZGF0ZSBldmVyeSBsaW5lIHRoYXQgcnVucyBpbiBvb3BzL3BhbmljCj4gPiAgICBj b250ZXh0IHRvIG1ha2Ugc3VyZSBpdCBzdGlsbCB3b3JrcyBpbiBubWkgY29udGV4dCkuIFN0dWZm IGxpa2UKPiA+ICAgIGRpc2FibGluZyB0aWxpbmcgKG9uIGk5MTUgdGhhdCdzIGp1c3QgZmxpcHBp bmcgYSBiaXQgaW4gYSByZWdpc3RlcikuCj4gPiAtIG1lbW9yeSB3cml0ZXMgKG9yIHRoYXQgc2xv dyBpbmRpcmVjdCB3cml0ZSBpbnRlcmZhY2UgeW91IGhhdmUgZm9yCj4gPiAgICBjcHUgaW52aXNp YmxlIHZyYW0pIHRvIGRyYXcgdGhlIGFjdHVhbCBvb3BzLgo+ID4gCj4gPiBFdmVyeXRoaW5nIGVs c2UgaXMgb3V0IG9mIHF1ZXN0aW9uLiBFc3BlY2lhbGx5IGNhbGxpbmcgZXhpc3RpbmcgZGlzcGxh eQo+ID4gY29kZSBqdXN0IGRvZXNuJ3Qgd29yaywgaXQncyBpbWUgaW1wb3NzaWJsZSB0byBrZWVw IGFsbG9jYXRpb25zL3NwaW5sb2Nrcwo+ID4gYW5kIHN0dWZmIGxpa2UgdGhhdCBvdXQgb2YgaXQu Cj4gPiAtRGFuaWVsCj4gCj4gQXQgc29tZSBwb2ludCB3ZSdsbCBoYXZlIHRvIHJ1biBhdCBsZWFz dCBzb21lIERDIGNvZGUgc2luY2UgZGlzYWJsaW5nIAo+IHRpbGluZyBhbmQgY29tcHJlc3Npb24g aXMgQVNJQyBzcGVjaWZpYyBhbmQgeW91IG5lZWQgdG8ga25vdyB3aGF0IAo+IHJlZ2lzdGVycyB0 byBhY3R1YWxseSB3cml0ZS4KPiAKPiBUaGVyZSdzIG5vIGZhc3QgcGF0aCB0aGF0IERDIGV4cG9z ZXMgc3BlY2lmaWNhbGx5IGZvciB0aGlzIHVzZWNhc2UsIGJ1dCAKPiBsb2NraW5nIGlzIGNvbnRy b2xsZWQgb3V0c2lkZSBvZiBEQyBhbnl3YXkgKHNvIHdlIGRvbid0IGhhdmUgdG8gbG9jaykgCj4g YW5kIGl0IERDIGl0c2VsZiB3b24ndCBiZSBkb2luZyBhbnkgbWVtb3J5IGFsbG9jYXRpb25zIGlm IGl0J3MganVzdCAKPiBkaXNhYmxpbmcgdGlsaW5nIGFuZCBjb21wcmVzc2lvbi4KPiAKPiBJdCdz IG5vdCBhY3R1YWxseSB0aGF0IG1hbnkgcmVnaXN0ZXIgcmVhZHMvd3JpdGVzLCBhbmQgaXQgY291 bGQgcHJvYmFibHkgCj4gc3RyaXBwZWQgZG93biB0byBqdXN0IHdyaXRlcyBzaW5jZSB0aGUgcmVh ZHMgYXJlIG9ubHkgdXNlZCBmb3Igc2FuaXR5IAo+IGNoZWNraW5nIGFuZCB0aGUgc3lzdGVtIGlz IGdvaW5nIGRvd24gYW55d2F5LiBUaGF0IHBhcnQgbWlnaHQgbmVlZCBhIAo+IHNlcGFyYXRlIGlu dGVyZmFjZSBmb3IgZGNfY29tbWl0X3VwZGF0ZXNfZm9yX3N0cmVhbSBvciBmb3IgYW1kZ3B1X2Rt IHRvIAo+IGRpc2FibGUgc2FuaXR5IGNoZWNraW5nIGJlZm9yZSB0aGUgY2FsbCB0aHJvdWdoIERD J3MgZGVidWcgb3B0aW9ucy4KCkknZCBjb3B5cGFzdGUgdGhhdCBjb2RlIGZvciBvb3BzIGhhbmRs aW5nLiBSZXNldHRpbmcgdG8gdW50aWxlZCBzaG91bGRuJ3QKYmUgdGhhdCBtdWNoIGNvZGUuIEFu ZCB0aGUgcmlzayBvZiBhY2NpZGVudGFsbHkgcHVsbGluZyBpbiBhIGxvdCBvZiBvdGhlcgpiaXRz IGFyZSBpbW8gdG9vIGhpZ2guCi1EYW5pZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==