From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 05/51] drm/i915: Add return code check to i915_gem_execbuffer_retire_commands() Date: Thu, 5 Mar 2015 15:44:52 +0100 Message-ID: <20150305144452.GF18775@phenom.ffwll.local> References: <1423828140-10653-1-git-send-email-John.C.Harrison@Intel.com> <1423828140-10653-6-git-send-email-John.C.Harrison@Intel.com> <20150225221700.GE24485@phenom.ffwll.local> <20150226022651.GJ24485@phenom.ffwll.local> <54F854C2.7010208@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-we0-f176.google.com (mail-we0-f176.google.com [74.125.82.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 0FABE6E33E for ; Thu, 5 Mar 2015 06:43:16 -0800 (PST) Received: by wesw62 with SMTP id w62so53390159wes.9 for ; Thu, 05 Mar 2015 06:43:15 -0800 (PST) Content-Disposition: inline In-Reply-To: <54F854C2.7010208@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John Harrison Cc: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMDUsIDIwMTUgYXQgMDE6MDY6MTBQTSArMDAwMCwgSm9obiBIYXJyaXNvbiB3 cm90ZToKPiBPbiAyNi8wMi8yMDE1IDAyOjI2LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID5PbiBX ZWQsIEZlYiAyNSwgMjAxNSBhdCAxMToxNzowMFBNICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3Rl Ogo+ID4+T24gRnJpLCBGZWIgMTMsIDIwMTUgYXQgMTE6NDg6MTRBTSArMDAwMCwgSm9obi5DLkhh cnJpc29uQEludGVsLmNvbSB3cm90ZToKPiA+Pj5Gcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMu SGFycmlzb25ASW50ZWwuY29tPgo+ID4+Pgo+ID4+PkZvciBzb21lIHJlYXNvbiwgdGhlIGk5MTVf YWRkX3JlcXVlc3QoKSBjYWxsIGluCj4gPj4+aTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXRpcmVfY29t bWFuZHMoKSB3YXMgZXhwbGljaXRseSBoYXZpbmcgaXRzIHJldHVybiBjb2RlCj4gPj4+aWdub3Jl ZC4gVGhlIF9yZXRpcmVfY29tbWFuZHMoKSBmdW5jdGlvbiBpdHNlbGYgd2FzICd2b2lkJy4gR2l2 ZW4gdGhhdAo+ID4+Pl9hZGRfcmVxdWVzdCgpIGNhbiBmYWlsIHdpdGhvdXQgZGlzcGF0Y2hpbmcg dGhlIGJhdGNoIGJ1ZmZlciwgdGhpcyBzZWVtcyBvZGQuCj4gPj5JIHdhcyBzbyBjb252aW5jZWQg d2UndmUgaGFkIGEgY29tbWl0IHNvbWV3aGVyZSBleHBsYWluaW5nIHRoaXMsIGJ1dAo+ID4+YXBw YXJlbnRseSBub3QuCj4gPj4KPiA+PlRoZSBkZWFsIGlzIHRoYXQgYWZ0ZXIgdGhlIGRpc3BhdGNo IGNhbGwgd2UgaGF2ZSB0aGUgYmF0Y2ggY29tbWl0IGFuZAo+ID4+dGhlcmUncyBubyBnb2luZyBi YWNrIGFueSBtb3JlLCB3aGljaCBhbHNvIG1lYW5zIHdlIGNhbid0IHJldHVybiBhbiBlcnJvcgo+ ID4+Y29kZSBmcm9tIHRoZSBpb2N0bC4gU28gaWYgeW91IHJldHVybiAtRUlPIG9yIC1FTk9NRU0g dGhhdCdzIGEgcHJldHR5IGJhZAo+ID4+bGllIGFuZCB5b3UgcmVhbGx5IGhhdmUgdG8gaWdub3Jl IHRoYXQgZXJyb3IgY29kZS4KPiA+Pgo+ID4+QWdhaW4gSSd2ZSB0cmllZCB0byBkaWcgdXAgdGhl IGNvbW1pdCBmb3IgdGhhdCBidXQgdGhhdCB3YXMgbG9zdCBpbiB0aGUKPiA+Pm1hemUgb2YgdGhl IHBhc3QgNSB5ZWFycyBvZiBjaGFuZ2VzLiBXZSd2ZSBoYWQgcGlsZXMgb2Ygb2xkZXIgYXBwcm9h Y2hlcwo+ID4+dG8gZGVhbCB3aXRoIHRoaXMgaXNzdWU6Cj4gPj4tIERvbid0IGV2ZW4gZW1pdCBh IHJlcXVlc3QsIGp1c3QgbWFyayBvYmplY3RzIGFzIGdwdSBkaXJ0eS4gT25seSB3aGVuCj4gPj4g ICB3YWl0aW5nIGRpZCB3ZSBlbWl0IGZsdXNoZXMgYW5kIHJlcXVlc3RzLCB3aGljaCBhZ2FpbiBh Z2FpbiBnYXZlIHVzIGEKPiA+PiAgIGNvbnRleHQgdG8gcmV0dXJuIHRoZSBlcnJvci4gVGhpcyBy ZXN1bHRlZCBpbiBob3JyaWJsZSBsYXRlbmN5IHNpbmNlCj4gPj4gICBmbHVzaGVzIHdoZXJlIHdh aXQgdG9vIGxhdGUgYW5kIGFsc28gYWxsIHRoYXQgYm9vay1rZWVwaW5nIHdhcyBub3Qgd29ydGgK PiA+PiAgIGl0IGF0IGFsbC4gRG9uJ3QgYXNrIDstKQo+ID4+LSBFbWl0IGZsdXNoZXMgcmlnaHQg YXdheSwgYnV0IGlmIHdlIGZhaWwgdG8gYWxsb2MgdGhlIHJlcXVlc3Qgc2V0IHRoZQo+ID4+ICAg b3V0c3RhbmRpbmcgbGF6eSByZXF1ZXN0IGJpdC4gVGhlIGpvYiBvZiB0aGUgY2hlY2tfb2xyIGZ1 bmN0aW9uIHVzZWQgaW4KPiA+PiAgIHdhaXRzIHdhcyB0byBub3RpY2UgdGhhdCBhbmQgcmV0cnkg dGhlIGFsbG9jYXRpb24uCj4gPj4tIFByZWFsbG9jYXRlIHRoZSByZXF1ZXN0LCBidXQgdGhhdCBz dGlsbCBsZWF2ZXMgdGhlIHBvc3NpYmlsaXR5IHRoYXQgdGhlCj4gPj4gICBncHUgZGllcy4gQnV0 IHNpbmNlIHdlJ3ZlIGNvbW1pdHRlZCBoYW5nY2hlY2sgd2lsbCBjbGVhbiB0aGlzIHVwIGFuZCB3 ZQo+ID4+ICAgY2FuIGp1c3QgaWdub3JlIHRoZSAtRUlPLgo+ID4+Cj4gPj5HaXZlbiBhbGwgdGhh dCBiYWNrc3Rvcnk6IFdoeSBkb2VzIGFkZF9yZXF1ZXN0L3JldGlyZV9jb21tYW5kcyBzdWRkZW5s eQo+ID4+bmVlZCB0byBmYWlsPwo+IFRoZSBwcm9ibGVtIGlzIHRoYXQgaWYgYWRkX3JlcXVlc3Qo KSBmYWlscyBhbmQgdGhlIHJlcXVlc3QgaXMgbm90IGFkZGVkIHRvCj4gcmluZy0+cmVxdWVzdF9s aXN0IHRoZW4gaXQgd2lsbCBiZSBsb3N0LiBBcyBzb29uIGFzIHRoZSBleGVjYnVmZiBjb2RlCj4g cmV0dXJucywgdGhlcmUgaXMgbm8gbG9uZ2VyIGEgcmVxdWVzdCBwb2ludGVyIGZsb2F0aW5nIGFy b3VuZCBzbyBpdCBjYW4KPiBjYW4ndCBoYXZlIGFkZF9yZXF1ZXN0KCkgY2FsbGVkIG9uIGl0IGxh dGVyLiBUaHVzIHRoZSByZXF1ZXN0IHdpbGwgbmV2ZXIgYmUKPiByZXRpcmVkLCB0aGUgb2JqZWN0 cywgY29udGV4dCwgZXRjIG5ldmVyIGRlcmVmZXJlbmNlZCwgYW5kIGJhc2ljYWxseSBsb3RzIG9m Cj4gc3R1ZmYgd2lsbCBiZSBsZWFrZWQuIFdpdGhvdXQgdGhlIE9MUiB0byBob292ZXIgdXAgdGhl IGZhaWx1cmVzLCB0aGUKPiBhZGRfcmVxdWVzdCgpIGNhbGwgcmVhbGx5IG11c3Qgbm90IGJlIGFs bG93ZWQgdG8gZ2l2ZSB1cC4KClRoYXQncyBleGFjdGx5IHdoYXQgSSBtZWFuLCBhZGRfcmVxdWVz dCBjYW4ndCBmYWlsLiBUaGUgb3RoZXIgaXNzdWUgaXMKdGhhdCB5b3UgY2FuJ3QgZmFpbCBleGVj YnVmIGF0IHRoZSBwb2ludCB5b3UgY2FsbCBhZGRfcmVxdWVzdCBlaXRoZXIgYW55Cm1vcmUgc2lu Y2Ugd2UndmUgYWxyZWFkeSAoYXQgbGVhc3QgcG90ZW50aWFsbHkpIHN0YXJ0ZWQgZXhlY3V0aW5n IHRoZQpiYXRjaC4KCj4gPkl0J3MgYWN0dWFsbHkgd29yc2Ugc2luY2UgaXQncyBub3QganVzdCAt RUlPIGJ1dCBhbHNvIC1FSU5UUiwgcmV0dXJuZWQgYnkKPiA+aW50ZWxfcmluZ19iZWdpbiB3aGVu IHdlJ3JlIHRocmFzaGluZyB0aGUgZ3B1IGEgYml0IHRvbyBiYWRseSB3aXRoCj4gPnJlcXVlc3Rz LiBXaGljaCBtZWFucyB3ZSByZWFsbHkgbmVlZCB0byBndWFyYW50ZWUgdGhhdCB0aGUgcmVxdWVz dCBpcwo+ID5jb21wbGV0ZWQgcHJvcGVybHksIGV2ZW50dWFsbHkgc2luY2UgaXQncyBub3QganVz dCBmb3IgZmF0YWwgZ3B1IGhhbmdzLgo+ID4KPiA+QXRtIHRoYXQncyBkb25lIGJ5IG9ubHkgY2xl YXJpbmcgb3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0IGFmdGVyIHdlJ3ZlCj4gPnJlYWxseSBlbWl0 dGVkIHRoZSByZXF1ZXN0IGZ1bGx5LiBUaGF0IGd1YXJhbnRlZXMgdGhhdCBldmVuIHdoZW4gcGFy dHMgb2YKPiA+dGhlIHJlcXVlc3QgZW1pc3Npb24gdG8gdGhlIHJpbmdidWYgZmFpbHMgd2UnbGwg cmV0cnkgb24gdGhlIG5leHQgd2FpdCBpZgo+ID5uZWVkZWQuCj4gPgo+ID5BIHBvc3NpYmxlIGZp eCB0byBtYWtlIHRoaXMgaW5mYWxsaWJsZSB3b3VsZCBiZSB0byByZXNlcnZlIHNvbWUgZml4ZWQK PiA+YW1vdW50IG9mIHJpbmdidWYgY3JlZGl0IGF0IHJlcXVlc3QgY3JlYXRpb24gdGltZSBhbmQg dGhlbiBjb25zdW1lIGl0Cj4gPmhlcmUuIE9mIGNvdXJzZSB3ZSdkIG5lZWQgY2hlY2tzIHRvIG1h a2Ugc3VyZSB3ZSBuZXZlciB1c2UgbW9yZSByaW5nc3BhY2UKPiA+dGhhbiB3aGF0IHdlIHJlc2Vy dmUuIFRvIGF2b2lkIG1hc3NpdmUgY2h1cm4gd2UgY291bGQgY29udmVydAo+ID5JOTE1X1JJTkdf RlJFRV9TUEFDRSBpbnRvIGEgdmFyaWFibGUgYW5kIGluY3JlYXNlIGl0IGVub3VnaCB3aGVuCj4g PmFsbG9jYXRpbmcgdGhlIHJlcXVlc3QuIEFuZCB0aGVuIHJlZHVjZSBpdCBhZ2FpbiBhdCB0aGUg c3RhcnQgb2YKPiA+YWRkX3JlcXVlc3QuCj4gPi1EYW5pZWwKPiAKPiBJIGRvbid0IHRoaW5rIHlv dSBjYW4gZ3VhcmFudGVlIHRvIHJlc2VydmUgZW5vdWdoIHNwYWNlIGF0IHJlcXVlc3QgY3JlYXRp b24KPiB0aW1lLiBZb3UgaGF2ZSBubyBpZGVhIGhvdyBtdWNoIHNwYWNlIHdpbGwgYmUgcmVxdWly ZWQgYnkgd2hhdCBldmVyIHBpZWNlIG9mCj4gY29kZSBpcyB3YW50aW5nIHRoZSByZXF1ZXN0LiBJ dCBjb3VsZCBiZSBhIGZldyB3b3JkcyBvciBpdCBtaWdodCBiZSByZWFtcwo+IGFuZCByZWFtcyBv ZiB3b3JrYXJvdW5kIGdvby4gT25lIG9mIHRoZSBzY2hlZHVsZXIgcGF0Y2hlcyBkb2VzIGltcHJv dmUgdGhpcwo+IGFuZCBkbyBhICdsYXJnZSBlbm91Z2gnIHJpbmdfYmVnaW4oKSBhdCB0aGUgc3Rh cnQgb2YgdGhlIGV4ZWNidWZmZXIKPiBzdWJtaXNzaW9uIHBhdGggaW4gb3JkZXIgdG8gcHJldmVu dCBvdXQgb2Ygc3BhY2UgaXNzdWVzIGFuZCBvdGhlciBzdWNoCj4gcHJvYmxlbXMgaGFsZiB3YXkg dGhyb3VnaCB0aGF0IGNvdWxkIGxlYWQgdG8gYSBwYXJ0aWFsIHN1Ym1pc3Npb24uIEhvd2V2ZXIs Cj4gZXZlbiB0aGF0IGlzIG5vdCBhYnNvbHVldGVseSBndWFyYW50ZWVkIDEwMCUgZmFpbHVyZSBw cm9vZi4KPiAKPiBIb3cgYWJvdXQgY2hhbmdpbmcgYWRkX3JlcXVlc3QoKSBzbyB0aGF0IGl0IGNh bid0IGZhaWwuIEFzIGluLCB0aGUgY2FjaGUKPiBmbHVzaCBjYWxsIGFuZCB0aGUgZW1pdCByZXF1 ZXN0IGNhbGwgY2FuIHN0aWxsIGZhaWx1cmUgZHVlIHRvIHJ1bm5pbmcgb3V0IG9mCj4gcmluZyBz cGFjZSwgYnV0IGFkZF9yZXF1ZXN0KCkganVzdCBpZ25vcmVzIHRoYXQgYW5kIGtlZXBzIGdvaW5n IGFueXdheS4gVGhhdAo+IHdheSB0aGUgcmVxdWVzdCBpcyBzdGlsbCBjb3JyZWN0bHkgdHJhY2tl ZCBhbmQgd2lsbCBiZSByZXRpcmVkIGV2ZW50dWFsbHkuCj4gVGhlIG9ubHkgaXNzdWVzIGFyZSB1 bmZsdXNoZWQgY2FjaGVzIGFuZCBubyBzZXFubyBpbnRlcnJ1cHQgYmVpbmcgZ2VuZXJhdGVkLgo+ IEhvd2V2ZXIsIGlmIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgYW5vdGhlciByZXF1ZXN0IHdpbGwg YmUgc3VibWl0dGVkIHNob3J0bHkKPiAod2hpY2ggaXMgZXh0cmVtZWx5IGxpa2VseSBpZiB0aGUg c3lzdGVtIGlzIGJ1c3kgZW5vdWdoIHRvIGNhdXNlIGEgZmFpbHVyZQo+IGR1cmluZyBhZGRfcmVx dWVzdCEpIHRoZW4gdGhpcyB3aWxsIGJlIGZpbmUuIFRoZSBmb2xsb3dpbmcgcmVxdWVzdCB3aWxs Cj4gZmx1c2ggdGhlIGNhY2hlcyBhbmQgd3JpdGUgdGhlIG5leHQgc2Vxbm8gYWxvbmcgdG8gdGhl IHJpbmdidWZmZXIuIFdoZW4gdGhhdAo+IHBvcHMgb3V0LCBib3RoIHRoZSBicm9rZW4gcmVxdWVz dCBhbmQgdGhlIG5ldyBvbmUgd2lsbCBiZSBjb25zaWRlcmVkCj4gY29tcGxldGUgYW5kIGNhbiBi ZSByZXRpcmVkLiBUaGUgb25seSBpc3N1ZSBpcyBpZiB0aGUgYnJva2VuIHJlcXVlc3QgaXMgdGhh dAo+IGxhc3Qgb25lIHRvIGJlIHN1Ym1pdHRlZCBhbmQgaXMgdGhlbiB3YWl0ZWQgb24uIEluIHRo YXQgY2FzZSwgeW91IHdpbGwgZ2V0IGEKPiB0aW1lb3V0L2hhbmcgYXMgdGhlIHJlcXVlc3Qgd2ls bCBuZXZlciBjb21wbGV0ZS4gQWx0aG91Z2ggdGhhdCBjb3VsZCBiZQo+IHdvcmtlZCBhcm91bmQg Ynkgc2V0dGluZyBhICdmYWlsZWQgcmVxdWVzdCcgZmxhZyBpbiB0aGUgcmluZyBhbmQgaGF2aW5n IHRoZQo+IHdhaXQgY29kZSAob3IgZXZlbiB0aGUgY3VycmVudGx5IHJlZHVuZGFudCBjaGVja19v bHIgZnVuY3Rpb24pIGxvb2sgYXQgdGhhdAo+IGFuZCBhdHRlbXB0IGEgYnJhbmQgbmV3IChidXQg ZW1wdHkpIHJlcXVlc3Qgc3VibWlzc2lvbi4KPiAKPiBPciBtYXliZSBhIHNpbXBsZXIgc29sdXRp b24gaXMgdG8ganVzdCBrZWVwIGEgJ2xhc3QgZmFpbGVkIHJlcXVlc3QnIHBvaW50ZXIKPiBpbiB0 aGUgcmluZy4gU29ydCBvZiBhIG5vdC1xdWl0ZS1PTFIuIElmIGFkZF9yZXF1ZXN0KCkgZmFpbHMs IGl0IHNhdmVzIHRoZQo+IHJlcXVlc3QgcG9pbnRlciBoZXJlIGluc3RlYWQgb2YgYWRkaW5nIGl0 IHRvIHRoZSByZXF1ZXN0IGxpc3QuIEEgc3Vic2VxdWVudAo+IHJlcXVlc3QgYWxsb2NhdGlvbiBj YWxsIHN0YXJ0cyBieSBjaGVja2luZyB0aGUgJ2xhc3QgZmFpbGVkJyB2YWx1ZSBhbmQKPiByZXRy aWVzIHRoZSBhZGRfcmVxdWVzdCgpIGNhbGwgaWYgcHJlc2VudC4gQXQgdGhhdCBwb2ludCBpdCBp cyBhbGxvd2VkIHRvCj4gZmFpbC4gSSBndWVzcyBpdCBzdGlsbCBuZWVkcyB0byBiZSBkb25lIGJ5 IGNoZWNrX29sciBhcyB3ZWxsIHRvIHByZXZlbnQgYQo+IHdhaXQgZnJvbSBzdGFsbGluZyBpZiBu byBvdGhlciByZXF1ZXN0cyBhcmUgc3VibWl0dGVkLgoKSW1vIHJlc2VydmluZyBhIGJpdCBvZiBy aW5nIHNwYWNlIGZvciBlYWNoIGFkZF9yZXF1ZXN0IHNob3VsZCBiZSBzb2xpZC4KVXNlcnNwYWNl IHVzZXMgdGhlIGV4YWN0IHNhbWUgcmVzZXJ2YXRpb24gbG9naWMgZm9yIGFkZGluZyBlbmQtb2Yt YmF0Y2gKd29ya2Fyb3VuZHMuIFRoZSBvbmx5IHRoaW5nIG5lZWRlZCB0byBtYWtlIHRoaXMgc29s aWQgaXMgdG8gV0FSTiBpZgphZGRfcmVxdWVzdCBlbmRzIHVwIHVzaW5nIG1vcmUgcmluZyBzcGFj ZSB0aGFuIHdoYXQgd2UndmUgcmVzZXJ2ZWQgKG5vdApqdXN0IHdoZW4gaXQgYWN0dWFsbHkgcnVu cyBvdXQsIHRoYXQgb2J2aW91c2x5IGRvZXNuJ3QgaGFwcGVuIG9mdGVuCmVub3VnaCBmb3IgdGVz dGluZykuCgpFdmVyeXRoaW5nIGVsc2UganVzdCByZWFkZHMgb2xyIHRocm91Z2ggdGhlIGJhY2tk b29yLCB3aGljaCBpcyBraW5kYSB3aGF0CndlIHdhbnRlZCB0byBhdm9pZCBmcm9tIGFuIGFjY291 bnRpbmcgcG92LiBCZWNhdXNlIHRoZW4geW91IGhhdmUgYWdhaW4Kc29tZSByYW5kb20gcmVxdWVz dCBvdXRzdGFuZGluZyB3aGljaCBzY29vcHMgdXAgZXZlcnl0aGluZyBpdCBlbmNvdW50ZXJzLgoK Rm9yIHRoZSByaW5nYnVmIGludGVyZmFjZSBpdHNlbGYgSSB0aGluayB3ZSBvbmx5IG5lZWQgMyBw aWVjZXM6Ci0gcmluZ2J1Zl9yZXNlcnZlKHNwYWNlKTogRW5zdXJlcyB0aGVyZSdzIEBzcGFjZSBh dmFpbGFibGUgaW4gdGhlIHJpbmcgYW5kCiAgdGhlbiBzZXRzIHRoYXQgYXMgcmluZy0+cmVzZXJ2 ZWRfc3BhY2UuIHJpbmdfZnJlZV9zcGFjZSBuZWVkcyB0bwogIHN1YnRyYWN0IHRoYXQgb2ZjLiBU aGlzIHdvdWxkIGJlIGluIHRoZSBhbGxvY19yZXF1ZXN0IGZ1bmN0aW9uLgoKLSByaW5idWZfdXNl X3Jlc2VydmUoKTogc2V0cyByaW5nLT5yZXNlcnZlX3NwYWNlIHRvIDAgc28gdGhhdAogIGludGVs X3JpbmdfYmVnaW4gY2FuIHN0YXJ0IGVhdGluZyBpbnRvIHJlc2VydmVzLiBUaGlzIHdvdWxkIGJl IGF0IHRoZQogIHRvcCBvZiBhZGRfcmVxdWVzdC4KCi0gcmluZ2J1Zl9jaGVja19yZXNlcnZlKCk6 IFRoaXMgd291bGQgYmUgY2FsbGVkIGF0IHRoZSBlbmQgb2YgYWRkX3JlcXVlc3QKICBhbmQgV0FS TnMgaWYgd2UndmUgdXNlZCBtb3JlIHJpbmcgc3BhY2UgdGhhbiB3aGF0IHdlJ3ZlIHByb21pc2Vk LgogIE9idmlvdXNseSBuZWVkcyBzb21lIGJvby1rZWVwaW5nIGJldHdlZW4gdXNlIGFuZCBjaGVj ayBidXQgdGhhdCdzIGp1c3QgYQogIGRldGFpbC4gSWYgeW91IGdvIHdpdGggYSBmbGFnIGluc3Rl YWQgb2YgY2xlYXJpbmcgLT5yZXNlcnZlX3NwYWNlIHlvdQogIGNhbiBldmVuIGVuZm9yY2UgdGhh dCB0aGVzZSB0aHJlZSBmdW5jdGlvbnMgYXJlIGFsd2F5cyBjYWxsZWQgaW4gdGhpcwogIG9yZGVy IGFuZCBkb24ndCBlbmQgdXAgYmVpbmcgbmVzdGVkIHdyb25nbHkuCgpDaGVlcnMsIERhbmllbAot LSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KKzQx ICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=