From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH] drm/ttm: fix adding foreign BOs to the LRU during init Date: Mon, 11 Jan 2016 16:54:19 +0100 Message-ID: <5693D02B.7020607@vodafone.de> References: <1452260518-2716-1-git-send-email-deathsimple@vodafone.de> <5690B147.5070409@shipmail.org> <5690E51A.50902@vodafone.de> <56927482.8060504@shipmail.org> <5693A292.9020701@vodafone.de> <5693A782.2070201@shipmail.org> <5693BE5F.7000202@vodafone.de> <20160111145518.GW8076@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id B6D956E32F for ; Mon, 11 Jan 2016 07:54:24 -0800 (PST) In-Reply-To: <20160111145518.GW8076@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: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org PiBPdXQgb2YgY3VyaW9zaXR5LCB3aGVyZSBkbyB5b3UgZ2VuZXJhdGUgc28gbWFueSBmb3JlaWdu IGRtYS1idWYgYmFja2VzCj4gb2JqZWN0cz8KVGhhdCB3YXMganVzdCBhbiBleHBlcmltZW50IG9m IHNoYXJpbmcgYnVmZmVycyBiZXR3ZWVuIHR3byBBTUQgZGV2aWNlcy4gCkEgc3R1cGlkIHJlZmVy ZW5jZSBjb3VudCBidWcgYW5kIEkndmUgbGVha2VkIDYwIGZ1bGwgSEQgZnJhbWUgYSBzZWNvbmQu CgpUb29rIGEgYml0IG92ZXIgdHdvIG1pbnV0ZXMgdG8gZWF0IHVwIDFHQiBvZiBHVFQgc3BhY2Ug YW5kIHRoZSBib3ggZHlpbmcgCnJhdGhlciBzcGVjdGFjdWxhcmx5LgoKUmVnYXJkcywKQ2hyaXN0 aWFuLgoKQW0gMTEuMDEuMjAxNiB1bSAxNTo1NSBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24g TW9uLCBKYW4gMTEsIDIwMTYgYXQgMDM6Mzg6MjNQTSArMDEwMCwgQ2hyaXN0aWFuIEvDtm5pZyB3 cm90ZToKPj4+IFdoaWxlIHRoaXMgd291bGQgYmUgb25lIHdheSB0byB3b3JrIGFyb3VuZCB0aGUg R1RUIHNwYWNlIERPUywgaXQKPj4+IHdvdWxkbid0IHdvcmsgYXJvdW5kIHRoZSBET1MgcHJvYmxl bSBvZiB0aGUgZXhwb3J0ZXIgcGlubmluZyBzeXN0ZW0KPj4+IHBhZ2VzIHRoYXQgcHJvYmFibHkg bmV2ZXIgZ2V0IGFjY291bnRlZC4gVGhhdCdzIGEgbGltaXRhdGlvbiBvZiB0aGUKPj4+IGV4cG9y dC1pbXBvcnQgbWVjaGFuaXNtIChkbWEtYnVmKS4KPj4gWWVhaCwgY29tcGxldGVseSBhZ3JlZS4g VGhhdCdzIGEgcHJvYmxlbSB3ZSBzb29uZXIgb3IgbGF0ZXIgbmVlZCB0byBhZGRyZXNzCj4+IGFz IHdlbGwuCj4+Cj4+IEJ1dCBjdXJyZW50bHkgSSB3b3JyeSBtb3N0bHkgYWJvdXQgdGhhdCBzcGVj aWZpYyBwcm9ibGVtIGF0IGhhbmQgYW5kIGhvdyB0bwo+PiBmaXggaXQsIHRoZSBsYXJnZXIgZGVz aWduIHByb2JsZW1zIG5lZWQgdG8gd2FpdC4KPj4KPj4gSnVzdCBzZW5kIGZpdmUgcGF0Y2hlcyBv dXQgdG8gdGhlIGxpc3QgYW5kIENDaW5nIHlvdSBhcyB3ZWxsLiBZb3UgY2FuIGlnbm9yZQo+PiB0 aGUgbGFzdCB0d28gd2hpY2ggYXJlIGFtZGdwdSBzcGVjaWZpYywgYnV0IHdvdWxkIGJlIG5pY2Ug aWYgeW91IGNvdWxkIHRha2UKPj4gYSBsb29rIGF0IHRoZSBmaXJzdCB0aHJlZS4KPiBPdXQgb2Yg Y3VyaW9zaXR5LCB3aGVyZSBkbyB5b3UgZ2VuZXJhdGUgc28gbWFueSBmb3JlaWduIGRtYS1idWYg YmFja2VzCj4gb2JqZWN0cz8gV2l0aCBwcmltZSBJIGV4cGVjdCBhdCBtb3N0IGEgZmV3IGZyYW1l YnVmZmVycyBvbiBlYWNoIHNpZGUgdG8gYmUKPiBzaGFyZWQsIGFuZCB0aGF0IHNob3VsZG4ndCBy ZWFsbHkgY2F1c2UgbXVjaCB0cm91YmxlLiBKdXN0IHNoYXJpbmcKPiBkbWEtYnVmcyB3aXRoIHlv dXIgb3duIGRldmljZSBzaG91bGQgcmVzdWx0IGluIHRoZSB1bmRlcmx5aW5nIG5hdGl2ZQo+IG9i amVjdHMgYmVpbmcgcmVmZXJlbmNlZCwgc28gd29yayBsaWtlIGZsaW5rLgo+Cj4gV3J0IGZpeGlu ZyB0aGlzIGZvciByZWFsOiBJIHRoaW5rIHN0ZXAgMSB3b3VsZCBiZSBzdG9wIHBpbm5pbmcgZG1h LWJ1ZnMgb24KPiBpbXBvcnQgYW5kIGluc3RlYWQgaW1wbGVtZW50aW5nIGFsbCB0aGUgbWFwL3Vu bWFwIHZmdW5jIGhvb2tzIHR0bSBhbHJlYWR5Cj4gaW1wbGVtZW50cyAoaXQncyBmdWxseSBpbnRl bnRpb25hbCB0aGF0IHRoZXkgbWF0Y2ggcmVhbGx5IGNsb3NlbHkKPiBiZXR3ZWVuKSBieSB2aXJ0 dWFsaXppbmcgZXNzZW50aWFsbHkgdHRtX2JvX2FwaS5oLgo+Cj4gQWZ0ZXIgdGhhdCB3ZSBuZWVk IHRvIGFsbG93IGV4cG9ydGVycyB0byBldmljdCBtYXBwaW5ncyBpbXBvcnRlcnMgaGF2ZQo+IGNy ZWF0ZWQgKHVzaW5nIHRoZSB3d19tdXRleCBsb2NraW5nIGFuZCBhbGwgdGhhdCBsaWtlIHR0bSBk b2VzIGZvciBwdXJlbHkKPiBuYXRpdmUgZXZpY3Rpb24pLiBUaGF0IGxpa2VseSBuZWVkcyBhIGNh bGxiYWNrIHRvIGRtYV9idWZfYXR0YWNobWVudC4gV2l0aAo+IHRoYXQgd2Ugc2hvdWxkIGJlIDkw JSB0aGVyZSwgc2luY2UgbW9zdCBsaWtlbHkgd2hlbiB0aGUgaW1wb3J0ZXIgdHJpZXMgdG8KPiBi aW5kIG1vcmUgc3R1ZmYgZXhwb3J0ZWQgZnJvbSBzb21ld2hlcmUgd2UnbGwgcnVuIGludG8gbGlt aXRzIG9mIHRoZQo+IGV4cG9ydGVyLiBJdCdzIG5vdCBwZXJmZWN0IHNpbmNlIGl0J3Mgbm90ICh5 ZXQpIGEgdHJ1bHkgZ2xvYmFsIGV2aWN0LCBidXQKPiBzaG91bGQgZ2V0IHVzIGEgbGFyZ2Ugc3Rl cCB0b3dhcmRzIHRoYXQgZ29hbC4KPgo+IElmIHdlIHJlYWxseSBuZWVkIGdsb2JhbCBldmljdGlv biBhY3Jvc3MgYWxsIGRyaXZlcnMgaW4gYSBzeXN0ZW0gKGZvciBlLmcuCj4gc3lzdGVtIG1lbW9y eSwgbm90aGluZyBlbHNlIHNob3VsZCBiZSBzaGFyZWQgbGlrZSB0aGF0IHJlYWxseSBJIHRoaW5r KQo+IHRoZW4gSSBndWVzcyB3ZSBjb3VsZCBsb29rIGludG8gZWl0aGVyIGV4dGVuZGluZyB0dG1f Z2xvYmFsIChvciBhZGRpbmcKPiBzb21ldGhpbmcgc2ltaWxhciBhdCB0aGUgZG1hLWJ1ZiBsZXZl bCkuCj4KPiBDaGVlcnMsIERhbmllbAo+Cj4+IFRoYW5rcyBpbiBhZHZhbmNlLAo+PiBDaHJpc3Rp YW4uCj4+Cj4+IEFtIDExLjAxLjIwMTYgdW0gMTQ6MDAgc2NocmllYiBUaG9tYXMgSGVsbHN0cm9t Ogo+Pj4gT24gMDEvMTEvMjAxNiAwMTozOSBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4+ PiBBbSAxMC4wMS4yMDE2IHVtIDE2OjEwIHNjaHJpZWIgVGhvbWFzIEhlbGxzdHJvbToKPj4+Pj4g T24gMDEvMDkvMjAxNiAxMTo0NiBBTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4+Pj4+IEl0 J3MgY29ycmVjdCB0aGF0IGV4cG9ydGVkIGJ1ZmZlcnMgY2FuJ3QgYmUgbW92ZWQgdG8gYW5vdGhl ciBkb21haW4gb3IKPj4+Pj4+IHN3YXBwZWQgdG8gZGlzayB3aGlsZSBhbm90aGVyIGRldmljZSBp cyB1c2luZyBpdC4KPj4+Pj4+Cj4+Pj4+PiBCdXQgZm9yIGltcG9ydHMgdGhhdCdzIGEgZGlmZmVy ZW50IHN0b3J5Ogo+Pj4+Pj4+IGFuIGltcG9ydGVkIG9iamVjdCBzaG91bGQgbmV2ZXIgZW5kIHVw IG9uIGEgTFJVIGxpc3QgaW4gVFRNIGJlY2F1c2UKPj4+Pj4+PiBUVE0gd291bGRuJ3Qga25vdyBo b3cgdG8gZXZpY3QgaXQuCj4+Pj4+PiBFdmVuIGN1cnJlbnRseSB0aGUgaW1wb3J0ZWQgb2JqZWN0 cyBhcmUgYWN0dWFsbHkgYWRkZWQgdG8gdGhlIExSVS4gVGhlCj4+Pj4+PiBwcm9ibGVtIGlzIGp1 c3QgdGhhdCB0aGV5IGFyZSBub3QgYWRkZWQgaW1tZWRpYXRlbHkgZHVyaW5nIGNyZWF0aW9uLAo+ Pj4+Pj4gYnV0IG9ubHkgd2l0aCB0aGUgZmlyc3QgY29tbWFuZCBzdWJtaXNzaW9uLgo+Pj4+PiBI bW0uIFRoZSBmYWN0IHRoYXQgdGhleSBhcmUgYWRkZWQgdG8gTFJVIGF0IGFsbCBzb3VuZHMgd2Vp cmQuIFdoYXQKPj4+Pj4gaGFwcGVucyB3aGVuIFRUTSB0cmllcyB0byBldmljdCBvciBldmVuIHN3 YXAgb3V0IGFuIGltcG9ydGVkIGJ1ZmZlcj8KPj4+PiBBZGRpbmcgdGhlbSB0byB0aGUgZG9tYWlu IExSVSBpcyBwZXJmZWN0bHkgbm9ybWFsIGZvciB0aGUgaW1wb3J0ZWQKPj4+PiBidWZmZXJzIGFu ZCBhbHNvIHdvcmtzIGZpbmUgYXMgZmFyIGFzIEkga25vdy4KPj4+Pgo+Pj4+IFdoZW4gVFRNIGV2 aWN0cyB0aGVtIGl0IGp1c3QgZ2V0cyB1bm1hcHBlZCBmcm9tIEdUVCB0byBtYWtlIHJvb20gaW4K Pj4+PiB0aGUgYWRkcmVzcyBzcGFjZSwgd2hpY2ggYXQgbGVhc3QgZm9yIFJhZGVvbiBhbmQgQW1k Z3B1IGlzIGV4YWN0bHkKPj4+PiB3aGF0IHdlIHdhbnQuCj4+Pj4KPj4+PiBUaGF0IGltcG9ydGVk IGJ1ZmZlcnMgZ2V0IGFkZGVkIHRvIHRoZSBzd2FwIExSVSBpcyBpbmRlZWQgbm9uc2Vuc2UsCj4+ Pj4gYnV0IG5vdCBoYXJtZnVsIGFzIGZhciBhcyBJIGNhbiBzZWUuIEdvaW5nIHRvIGZpeCB0aGF0 IGluIGEgZm9sbG93IHVwCj4+Pj4gcGF0Y2guCj4+Pj4KPj4+IFNvIHRoZSB3YXkgVFRNIHdhcyBk ZXNpZ25lZCB3aGVuIGl0IHdhcyB3cml0dGVuIHdhcyB0byBiZSB1c2VkIHRvIHBsYWNlCj4+PiBk YXRhIGluIG1lbW9yeSB0eXBlcyB3aGVyZSBpdCBjb3VsZCBsYXRlciBiZSBtYXBwZWQgYnkgQ1BV IGFuZCBHUFUgaW4gYQo+Pj4gY29oZXJlbnQgZmFzaGlvbi4KPj4+Cj4+PiBUaGUgYWN0dWFsIEdQ VSBtYXBwaW5nIHdhcyBwcmltYXJpbHkgdGhvdWdodCB0byBiZSBkb25lIGJ5IHRoZSBkcml2ZXIg YXMKPj4+IHBhcnQgb2YgdGhlIHZhbGlkYXRpb24gcHJvY2VzcyAqYWZ0ZXIqIHRoYXQgcGxhY2Vt ZW50IGlmIG5lZWRlZC4KPj4+Cj4+PiBOb3cgbWFueSAobW9zdCwgYWxsKSBkcml2ZXJzIGRvbid0 IG5lZWQgdGhhdCBzZWNvbmQgc3RlcCBzaW5jZSB0aGUKPj4+IG1lbW9yeSB0eXBlIGlzIGRpcmVj dGx5IG1hcHBhYmxlIGJ5IHRoZSBHUFUsIGJ1dCBpbiBhIHNpdHVhdGlvbiB3aGVyZQo+Pj4gdGhl IGNvcmUgVFRNIGZ1bmN0aW9uYWxpdHkgKHBsYWNlbWVudCBhbmQgc3dhcHBpbmcpIGlzIGNvbXBs ZXRlbHkKPj4+IHJlcGxhY2VkIGJ5IGFub3RoZXIgbWVjaGFuaXNtIChzdWNoIGFzIGltcG9ydGVk IGJ1ZmZlcnMpLCBub3QKPj4+IGltcGxlbWVudGluZyB0aGUgR1BVIGJpbmRpbmcgYW5kIGV2aWN0 aW9uIGluIHRoZSBkcml2ZXIgYXMgYSBzZXBhcmF0ZQo+Pj4gc3RlcCBuYXR1cmFsbHkgZ2VuZXJh dGVzIGEgY29uZmxpY3QuCj4+Pgo+Pj4gTm93IEknbSBub3QgYXQgYWxsIGFnYWluc3QgVFRNIGJl aW5nIHVzZWQgZm9yIEdQVSBtYXBwaW5nIG9ubHkgaWYgdGhhdAo+Pj4gc2ltcGxpZmllcyB0aGlu Z3MgZm9yIGltcG9ydGVkIGJ1ZmZlcnMgYnV0IGluIHRoYXQgY2FzZSBJTU8gb25lIHNob3VsZAo+ Pj4gYmUgYXdhcmUgb2YgdGhlIGxpbWl0YXRpb25zIGFuZCB3ZSBzaG91bGQgZmluZCBhIHdheSB0 byBtYXJrIHRob3NlCj4+PiBidWZmZXJzIEdQVV9NQVBfT05MWSB0byBhdm9pZCBoYXZpbmcgVFRN IGNvbXBldGluZyB3aXRoIHRoZSBleHBvcnRlcgo+Pj4gYWJvdXQgdGhlIHBsYWNlbWVudCBhZCBh dm9pZCBwdXR0aW5nIGl0IG9uIHRoZSBzd2FwIExSVS4KPj4+Cj4+PiBXaGlsZSB0aGlzIHdvdWxk IGJlIG9uZSB3YXkgdG8gd29yayBhcm91bmQgdGhlIEdUVCBzcGFjZSBET1MsIGl0Cj4+PiB3b3Vs ZG4ndCB3b3JrIGFyb3VuZCB0aGUgRE9TIHByb2JsZW0gb2YgdGhlIGV4cG9ydGVyIHBpbm5pbmcg c3lzdGVtCj4+PiBwYWdlcyB0aGF0IHByb2JhYmx5IG5ldmVyIGdldCBhY2NvdW50ZWQuIFRoYXQn cyBhIGxpbWl0YXRpb24gb2YgdGhlCj4+PiBleHBvcnQtaW1wb3J0IG1lY2hhbmlzbSAoZG1hLWJ1 ZikuCj4+Pgo+Pj4gL1Rob21hcwo+Pj4KPj4+Cj4+Pgo+Pj4+IFRoYW5rcyBmb3IgdGhlIGNvbW1l bnQsCj4+Pj4gQ2hyaXN0aWFuLgo+Pj4+Cj4+Pj4+IC9UaG9tYXMKPj4+Pj4KPj4+Pj4KPj4+Pj4+ IFJlZ2FyZHMsCj4+Pj4+PiBDaHJpc3RpYW4uCj4+Pj4+Pgo+Pj4+Pj4gQW0gMDkuMDEuMjAxNiB1 bSAwODowNSBzY2hyaWViIFRob21hcyBIZWxsc3Ryb206Cj4+Pj4+Pj4gSGkhCj4+Pj4+Pj4KPj4+ Pj4+PiBJIG1pZ2h0IGJlIG1pc3VuZGVyZGVyc3RhbmRpbmcgdGhlIHVzZS1jYXNlIGhlcmUsIGJ1 dCBJSVJDIHRoZQo+Pj4+Pj4+IGRpc2N1c3Npb24gd2l0aCBUVE0gdnMgaW1wb3J0ZWQgLyBleHBv cnRlZCBidWZmZXIgb2JqZWN0cyBpcyB0aGF0IGEKPj4+Pj4+PiBidWZmZXIgb2JqZWN0IG5lZWRz IHRvIGJlIG1hcmtlZCBOT19FVklDVCBpbiBUVE0gYmVmb3JlIGl0J3MgZXhwb3J0ZWQKPj4+Pj4+ PiBhbmQgYW4gaW1wb3J0ZWQgb2JqZWN0IHNob3VsZCBuZXZlciBlbmQgdXAgb24gYSBMUlUgbGlz dCBpbiBUVE0KPj4+Pj4+PiBiZWNhdXNlCj4+Pj4+Pj4gVFRNIHdvdWxkbid0IGtub3cgaG93IHRv IGV2aWN0IGl0Lgo+Pj4+Pj4+Cj4+Pj4+Pj4gL1Rob21hcwo+Pj4+Pj4+ICAgIE9uIDAxLzA4LzIw MTYgMDI6NDEgUE0sIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+Pj4+Pj4+IEZyb206IENocmlz dGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g SWYgd2UgaW1wb3J0IGEgQk8gd2l0aCBhbiBldGVybmFsIHJlc2VydmF0aW9uIG9iamVjdCB3ZSBk b24ndAo+Pj4+Pj4+PiByZXNlcnZlL3VucmVzZXJ2ZSBpdC4gU28gd2UgbmV2ZXIgYWRkIGl0IHRv IHRoZSBMUlUgY2F1c2luZyBhCj4+Pj4+Pj4+IHBvc3NpYmxlCj4+Pj4+Pj4+IGRlbnkgb2Ygc2Vy dmljZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8 Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4gICAgIGRyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgfCA4ICsrKysrKystCj4+Pj4+Pj4+ICAgICAxIGZpbGUg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Pj4+Pj4+Cj4+Pj4+Pj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+Pj4+Pj4+IGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+Pj4+Pj4+PiBpbmRleCA3NDVlOTk2Li5hOThhNWQ1 IDEwMDY0NAo+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+Pj4+ Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPj4+Pj4+Pj4gQEAgLTExNzAs OSArMTE3MCwxNSBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs Cj4+Pj4+Pj4+ICAgICAgICAgaWYgKGxpa2VseSghcmV0KSkKPj4+Pj4+Pj4gICAgICAgICAgICAg cmV0ID0gdHRtX2JvX3ZhbGlkYXRlKGJvLCBwbGFjZW1lbnQsIGludGVycnVwdGlibGUsCj4+Pj4+ Pj4+IGZhbHNlKTsKPj4+Pj4+Pj4gICAgIC0gICAgaWYgKCFyZXN2KQo+Pj4+Pj4+PiArICAgIGlm ICghcmVzdikgewo+Pj4+Pj4+PiAgICAgICAgICAgICB0dG1fYm9fdW5yZXNlcnZlKGJvKTsKPj4+ Pj4+Pj4gICAgICsgICAgfSBlbHNlIGlmICghKGJvLT5tZW0ucGxhY2VtZW50ICYgVFRNX1BMX0ZM QUdfTk9fRVZJQ1QpKSB7Cj4+Pj4+Pj4+ICsgICAgICAgIHNwaW5fbG9jaygmYm8tPmdsb2ItPmxy dV9sb2NrKTsKPj4+Pj4+Pj4gKyAgICAgICAgdHRtX2JvX2FkZF90b19scnUoYm8pOwo+Pj4+Pj4+ PiArICAgICAgICBzcGluX3VubG9jaygmYm8tPmdsb2ItPmxydV9sb2NrKTsKPj4+Pj4+Pj4gKyAg ICB9Cj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4gICAgICAgICBpZiAodW5saWtlbHkocmV0KSkKPj4+Pj4+ Pj4gICAgICAgICAgICAgdHRtX2JvX3VucmVmKCZibyk7Cj4+Pgo+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0 Cj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK