From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Harrison Subject: Re: [PATCH 05/51] drm/i915: Add return code check to i915_gem_execbuffer_retire_commands() Date: Thu, 05 Mar 2015 15:06:42 +0000 Message-ID: <54F87102.8020504@Intel.com> 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> <20150305144452.GF18775@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 9CBE76E7CE for ; Thu, 5 Mar 2015 07:06:44 -0800 (PST) In-Reply-To: <20150305144452.GF18775@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMDUvMDMvMjAxNSAxNDo0NCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBUaHUsIE1hciAw NSwgMjAxNSBhdCAwMTowNjoxMFBNICswMDAwLCBKb2huIEhhcnJpc29uIHdyb3RlOgo+PiBPbiAy Ni8wMi8yMDE1IDAyOjI2LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4gT24gV2VkLCBGZWIgMjUs IDIwMTUgYXQgMTE6MTc6MDBQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+PiBPbiBG cmksIEZlYiAxMywgMjAxNSBhdCAxMTo0ODoxNEFNICswMDAwLCBKb2huLkMuSGFycmlzb25ASW50 ZWwuY29tIHdyb3RlOgo+Pj4+PiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25A SW50ZWwuY29tPgo+Pj4+Pgo+Pj4+PiBGb3Igc29tZSByZWFzb24sIHRoZSBpOTE1X2FkZF9yZXF1 ZXN0KCkgY2FsbCBpbgo+Pj4+PiBpOTE1X2dlbV9leGVjYnVmZmVyX3JldGlyZV9jb21tYW5kcygp IHdhcyBleHBsaWNpdGx5IGhhdmluZyBpdHMgcmV0dXJuIGNvZGUKPj4+Pj4gaWdub3JlZC4gVGhl IF9yZXRpcmVfY29tbWFuZHMoKSBmdW5jdGlvbiBpdHNlbGYgd2FzICd2b2lkJy4gR2l2ZW4gdGhh dAo+Pj4+PiBfYWRkX3JlcXVlc3QoKSBjYW4gZmFpbCB3aXRob3V0IGRpc3BhdGNoaW5nIHRoZSBi YXRjaCBidWZmZXIsIHRoaXMgc2VlbXMgb2RkLgo+Pj4+IEkgd2FzIHNvIGNvbnZpbmNlZCB3ZSd2 ZSBoYWQgYSBjb21taXQgc29tZXdoZXJlIGV4cGxhaW5pbmcgdGhpcywgYnV0Cj4+Pj4gYXBwYXJl bnRseSBub3QuCj4+Pj4KPj4+PiBUaGUgZGVhbCBpcyB0aGF0IGFmdGVyIHRoZSBkaXNwYXRjaCBj YWxsIHdlIGhhdmUgdGhlIGJhdGNoIGNvbW1pdCBhbmQKPj4+PiB0aGVyZSdzIG5vIGdvaW5nIGJh Y2sgYW55IG1vcmUsIHdoaWNoIGFsc28gbWVhbnMgd2UgY2FuJ3QgcmV0dXJuIGFuIGVycm9yCj4+ Pj4gY29kZSBmcm9tIHRoZSBpb2N0bC4gU28gaWYgeW91IHJldHVybiAtRUlPIG9yIC1FTk9NRU0g dGhhdCdzIGEgcHJldHR5IGJhZAo+Pj4+IGxpZSBhbmQgeW91IHJlYWxseSBoYXZlIHRvIGlnbm9y ZSB0aGF0IGVycm9yIGNvZGUuCj4+Pj4KPj4+PiBBZ2FpbiBJJ3ZlIHRyaWVkIHRvIGRpZyB1cCB0 aGUgY29tbWl0IGZvciB0aGF0IGJ1dCB0aGF0IHdhcyBsb3N0IGluIHRoZQo+Pj4+IG1hemUgb2Yg dGhlIHBhc3QgNSB5ZWFycyBvZiBjaGFuZ2VzLiBXZSd2ZSBoYWQgcGlsZXMgb2Ygb2xkZXIgYXBw cm9hY2hlcwo+Pj4+IHRvIGRlYWwgd2l0aCB0aGlzIGlzc3VlOgo+Pj4+IC0gRG9uJ3QgZXZlbiBl bWl0IGEgcmVxdWVzdCwganVzdCBtYXJrIG9iamVjdHMgYXMgZ3B1IGRpcnR5LiBPbmx5IHdoZW4K Pj4+PiAgICB3YWl0aW5nIGRpZCB3ZSBlbWl0IGZsdXNoZXMgYW5kIHJlcXVlc3RzLCB3aGljaCBh Z2FpbiBhZ2FpbiBnYXZlIHVzIGEKPj4+PiAgICBjb250ZXh0IHRvIHJldHVybiB0aGUgZXJyb3Iu IFRoaXMgcmVzdWx0ZWQgaW4gaG9ycmlibGUgbGF0ZW5jeSBzaW5jZQo+Pj4+ICAgIGZsdXNoZXMg d2hlcmUgd2FpdCB0b28gbGF0ZSBhbmQgYWxzbyBhbGwgdGhhdCBib29rLWtlZXBpbmcgd2FzIG5v dCB3b3J0aAo+Pj4+ICAgIGl0IGF0IGFsbC4gRG9uJ3QgYXNrIDstKQo+Pj4+IC0gRW1pdCBmbHVz aGVzIHJpZ2h0IGF3YXksIGJ1dCBpZiB3ZSBmYWlsIHRvIGFsbG9jIHRoZSByZXF1ZXN0IHNldCB0 aGUKPj4+PiAgICBvdXRzdGFuZGluZyBsYXp5IHJlcXVlc3QgYml0LiBUaGUgam9iIG9mIHRoZSBj aGVja19vbHIgZnVuY3Rpb24gdXNlZCBpbgo+Pj4+ICAgIHdhaXRzIHdhcyB0byBub3RpY2UgdGhh dCBhbmQgcmV0cnkgdGhlIGFsbG9jYXRpb24uCj4+Pj4gLSBQcmVhbGxvY2F0ZSB0aGUgcmVxdWVz dCwgYnV0IHRoYXQgc3RpbGwgbGVhdmVzIHRoZSBwb3NzaWJpbGl0eSB0aGF0IHRoZQo+Pj4+ICAg IGdwdSBkaWVzLiBCdXQgc2luY2Ugd2UndmUgY29tbWl0dGVkIGhhbmdjaGVjayB3aWxsIGNsZWFu IHRoaXMgdXAgYW5kIHdlCj4+Pj4gICAgY2FuIGp1c3QgaWdub3JlIHRoZSAtRUlPLgo+Pj4+Cj4+ Pj4gR2l2ZW4gYWxsIHRoYXQgYmFja3N0b3J5OiBXaHkgZG9lcyBhZGRfcmVxdWVzdC9yZXRpcmVf Y29tbWFuZHMgc3VkZGVubHkKPj4+PiBuZWVkIHRvIGZhaWw/Cj4+IFRoZSBwcm9ibGVtIGlzIHRo YXQgaWYgYWRkX3JlcXVlc3QoKSBmYWlscyBhbmQgdGhlIHJlcXVlc3QgaXMgbm90IGFkZGVkIHRv Cj4+IHJpbmctPnJlcXVlc3RfbGlzdCB0aGVuIGl0IHdpbGwgYmUgbG9zdC4gQXMgc29vbiBhcyB0 aGUgZXhlY2J1ZmYgY29kZQo+PiByZXR1cm5zLCB0aGVyZSBpcyBubyBsb25nZXIgYSByZXF1ZXN0 IHBvaW50ZXIgZmxvYXRpbmcgYXJvdW5kIHNvIGl0IGNhbgo+PiBjYW4ndCBoYXZlIGFkZF9yZXF1 ZXN0KCkgY2FsbGVkIG9uIGl0IGxhdGVyLiBUaHVzIHRoZSByZXF1ZXN0IHdpbGwgbmV2ZXIgYmUK Pj4gcmV0aXJlZCwgdGhlIG9iamVjdHMsIGNvbnRleHQsIGV0YyBuZXZlciBkZXJlZmVyZW5jZWQs IGFuZCBiYXNpY2FsbHkgbG90cyBvZgo+PiBzdHVmZiB3aWxsIGJlIGxlYWtlZC4gV2l0aG91dCB0 aGUgT0xSIHRvIGhvb3ZlciB1cCB0aGUgZmFpbHVyZXMsIHRoZQo+PiBhZGRfcmVxdWVzdCgpIGNh bGwgcmVhbGx5IG11c3Qgbm90IGJlIGFsbG93ZWQgdG8gZ2l2ZSB1cC4KPiBUaGF0J3MgZXhhY3Rs eSB3aGF0IEkgbWVhbiwgYWRkX3JlcXVlc3QgY2FuJ3QgZmFpbC4gVGhlIG90aGVyIGlzc3VlIGlz Cj4gdGhhdCB5b3UgY2FuJ3QgZmFpbCBleGVjYnVmIGF0IHRoZSBwb2ludCB5b3UgY2FsbCBhZGRf cmVxdWVzdCBlaXRoZXIgYW55Cj4gbW9yZSBzaW5jZSB3ZSd2ZSBhbHJlYWR5IChhdCBsZWFzdCBw b3RlbnRpYWxseSkgc3RhcnRlZCBleGVjdXRpbmcgdGhlCj4gYmF0Y2guCj4KPj4+IEl0J3MgYWN0 dWFsbHkgd29yc2Ugc2luY2UgaXQncyBub3QganVzdCAtRUlPIGJ1dCBhbHNvIC1FSU5UUiwgcmV0 dXJuZWQgYnkKPj4+IGludGVsX3JpbmdfYmVnaW4gd2hlbiB3ZSdyZSB0aHJhc2hpbmcgdGhlIGdw dSBhIGJpdCB0b28gYmFkbHkgd2l0aAo+Pj4gcmVxdWVzdHMuIFdoaWNoIG1lYW5zIHdlIHJlYWxs eSBuZWVkIHRvIGd1YXJhbnRlZSB0aGF0IHRoZSByZXF1ZXN0IGlzCj4+PiBjb21wbGV0ZWQgcHJv cGVybHksIGV2ZW50dWFsbHkgc2luY2UgaXQncyBub3QganVzdCBmb3IgZmF0YWwgZ3B1IGhhbmdz Lgo+Pj4KPj4+IEF0bSB0aGF0J3MgZG9uZSBieSBvbmx5IGNsZWFyaW5nIG91dHN0YW5kaW5nX2xh enlfcmVxdWVzdCBhZnRlciB3ZSd2ZQo+Pj4gcmVhbGx5IGVtaXR0ZWQgdGhlIHJlcXVlc3QgZnVs bHkuIFRoYXQgZ3VhcmFudGVlcyB0aGF0IGV2ZW4gd2hlbiBwYXJ0cyBvZgo+Pj4gdGhlIHJlcXVl c3QgZW1pc3Npb24gdG8gdGhlIHJpbmdidWYgZmFpbHMgd2UnbGwgcmV0cnkgb24gdGhlIG5leHQg d2FpdCBpZgo+Pj4gbmVlZGVkLgo+Pj4KPj4+IEEgcG9zc2libGUgZml4IHRvIG1ha2UgdGhpcyBp bmZhbGxpYmxlIHdvdWxkIGJlIHRvIHJlc2VydmUgc29tZSBmaXhlZAo+Pj4gYW1vdW50IG9mIHJp bmdidWYgY3JlZGl0IGF0IHJlcXVlc3QgY3JlYXRpb24gdGltZSBhbmQgdGhlbiBjb25zdW1lIGl0 Cj4+PiBoZXJlLiBPZiBjb3Vyc2Ugd2UnZCBuZWVkIGNoZWNrcyB0byBtYWtlIHN1cmUgd2UgbmV2 ZXIgdXNlIG1vcmUgcmluZ3NwYWNlCj4+PiB0aGFuIHdoYXQgd2UgcmVzZXJ2ZS4gVG8gYXZvaWQg bWFzc2l2ZSBjaHVybiB3ZSBjb3VsZCBjb252ZXJ0Cj4+PiBJOTE1X1JJTkdfRlJFRV9TUEFDRSBp bnRvIGEgdmFyaWFibGUgYW5kIGluY3JlYXNlIGl0IGVub3VnaCB3aGVuCj4+PiBhbGxvY2F0aW5n IHRoZSByZXF1ZXN0LiBBbmQgdGhlbiByZWR1Y2UgaXQgYWdhaW4gYXQgdGhlIHN0YXJ0IG9mCj4+ PiBhZGRfcmVxdWVzdC4KPj4+IC1EYW5pZWwKPj4gSSBkb24ndCB0aGluayB5b3UgY2FuIGd1YXJh bnRlZSB0byByZXNlcnZlIGVub3VnaCBzcGFjZSBhdCByZXF1ZXN0IGNyZWF0aW9uCj4+IHRpbWUu IFlvdSBoYXZlIG5vIGlkZWEgaG93IG11Y2ggc3BhY2Ugd2lsbCBiZSByZXF1aXJlZCBieSB3aGF0 IGV2ZXIgcGllY2Ugb2YKPj4gY29kZSBpcyB3YW50aW5nIHRoZSByZXF1ZXN0LiBJdCBjb3VsZCBi ZSBhIGZldyB3b3JkcyBvciBpdCBtaWdodCBiZSByZWFtcwo+PiBhbmQgcmVhbXMgb2Ygd29ya2Fy b3VuZCBnb28uIE9uZSBvZiB0aGUgc2NoZWR1bGVyIHBhdGNoZXMgZG9lcyBpbXByb3ZlIHRoaXMK Pj4gYW5kIGRvIGEgJ2xhcmdlIGVub3VnaCcgcmluZ19iZWdpbigpIGF0IHRoZSBzdGFydCBvZiB0 aGUgZXhlY2J1ZmZlcgo+PiBzdWJtaXNzaW9uIHBhdGggaW4gb3JkZXIgdG8gcHJldmVudCBvdXQg b2Ygc3BhY2UgaXNzdWVzIGFuZCBvdGhlciBzdWNoCj4+IHByb2JsZW1zIGhhbGYgd2F5IHRocm91 Z2ggdGhhdCBjb3VsZCBsZWFkIHRvIGEgcGFydGlhbCBzdWJtaXNzaW9uLiBIb3dldmVyLAo+PiBl dmVuIHRoYXQgaXMgbm90IGFic29sdWV0ZWx5IGd1YXJhbnRlZWQgMTAwJSBmYWlsdXJlIHByb29m Lgo+Pgo+PiBIb3cgYWJvdXQgY2hhbmdpbmcgYWRkX3JlcXVlc3QoKSBzbyB0aGF0IGl0IGNhbid0 IGZhaWwuIEFzIGluLCB0aGUgY2FjaGUKPj4gZmx1c2ggY2FsbCBhbmQgdGhlIGVtaXQgcmVxdWVz dCBjYWxsIGNhbiBzdGlsbCBmYWlsdXJlIGR1ZSB0byBydW5uaW5nIG91dCBvZgo+PiByaW5nIHNw YWNlLCBidXQgYWRkX3JlcXVlc3QoKSBqdXN0IGlnbm9yZXMgdGhhdCBhbmQga2VlcHMgZ29pbmcg YW55d2F5LiBUaGF0Cj4+IHdheSB0aGUgcmVxdWVzdCBpcyBzdGlsbCBjb3JyZWN0bHkgdHJhY2tl ZCBhbmQgd2lsbCBiZSByZXRpcmVkIGV2ZW50dWFsbHkuCj4+IFRoZSBvbmx5IGlzc3VlcyBhcmUg dW5mbHVzaGVkIGNhY2hlcyBhbmQgbm8gc2Vxbm8gaW50ZXJydXB0IGJlaW5nIGdlbmVyYXRlZC4K Pj4gSG93ZXZlciwgaWYgdGhlIGFzc3VtcHRpb24gaXMgdGhhdCBhbm90aGVyIHJlcXVlc3Qgd2ls bCBiZSBzdWJtaXR0ZWQgc2hvcnRseQo+PiAod2hpY2ggaXMgZXh0cmVtZWx5IGxpa2VseSBpZiB0 aGUgc3lzdGVtIGlzIGJ1c3kgZW5vdWdoIHRvIGNhdXNlIGEgZmFpbHVyZQo+PiBkdXJpbmcgYWRk X3JlcXVlc3QhKSB0aGVuIHRoaXMgd2lsbCBiZSBmaW5lLiBUaGUgZm9sbG93aW5nIHJlcXVlc3Qg d2lsbAo+PiBmbHVzaCB0aGUgY2FjaGVzIGFuZCB3cml0ZSB0aGUgbmV4dCBzZXFubyBhbG9uZyB0 byB0aGUgcmluZ2J1ZmZlci4gV2hlbiB0aGF0Cj4+IHBvcHMgb3V0LCBib3RoIHRoZSBicm9rZW4g cmVxdWVzdCBhbmQgdGhlIG5ldyBvbmUgd2lsbCBiZSBjb25zaWRlcmVkCj4+IGNvbXBsZXRlIGFu ZCBjYW4gYmUgcmV0aXJlZC4gVGhlIG9ubHkgaXNzdWUgaXMgaWYgdGhlIGJyb2tlbiByZXF1ZXN0 IGlzIHRoYXQKPj4gbGFzdCBvbmUgdG8gYmUgc3VibWl0dGVkIGFuZCBpcyB0aGVuIHdhaXRlZCBv bi4gSW4gdGhhdCBjYXNlLCB5b3Ugd2lsbCBnZXQgYQo+PiB0aW1lb3V0L2hhbmcgYXMgdGhlIHJl cXVlc3Qgd2lsbCBuZXZlciBjb21wbGV0ZS4gQWx0aG91Z2ggdGhhdCBjb3VsZCBiZQo+PiB3b3Jr ZWQgYXJvdW5kIGJ5IHNldHRpbmcgYSAnZmFpbGVkIHJlcXVlc3QnIGZsYWcgaW4gdGhlIHJpbmcg YW5kIGhhdmluZyB0aGUKPj4gd2FpdCBjb2RlIChvciBldmVuIHRoZSBjdXJyZW50bHkgcmVkdW5k YW50IGNoZWNrX29sciBmdW5jdGlvbikgbG9vayBhdCB0aGF0Cj4+IGFuZCBhdHRlbXB0IGEgYnJh bmQgbmV3IChidXQgZW1wdHkpIHJlcXVlc3Qgc3VibWlzc2lvbi4KPj4KPj4gT3IgbWF5YmUgYSBz aW1wbGVyIHNvbHV0aW9uIGlzIHRvIGp1c3Qga2VlcCBhICdsYXN0IGZhaWxlZCByZXF1ZXN0JyBw b2ludGVyCj4+IGluIHRoZSByaW5nLiBTb3J0IG9mIGEgbm90LXF1aXRlLU9MUi4gSWYgYWRkX3Jl cXVlc3QoKSBmYWlscywgaXQgc2F2ZXMgdGhlCj4+IHJlcXVlc3QgcG9pbnRlciBoZXJlIGluc3Rl YWQgb2YgYWRkaW5nIGl0IHRvIHRoZSByZXF1ZXN0IGxpc3QuIEEgc3Vic2VxdWVudAo+PiByZXF1 ZXN0IGFsbG9jYXRpb24gY2FsbCBzdGFydHMgYnkgY2hlY2tpbmcgdGhlICdsYXN0IGZhaWxlZCcg dmFsdWUgYW5kCj4+IHJldHJpZXMgdGhlIGFkZF9yZXF1ZXN0KCkgY2FsbCBpZiBwcmVzZW50LiBB dCB0aGF0IHBvaW50IGl0IGlzIGFsbG93ZWQgdG8KPj4gZmFpbC4gSSBndWVzcyBpdCBzdGlsbCBu ZWVkcyB0byBiZSBkb25lIGJ5IGNoZWNrX29sciBhcyB3ZWxsIHRvIHByZXZlbnQgYQo+PiB3YWl0 IGZyb20gc3RhbGxpbmcgaWYgbm8gb3RoZXIgcmVxdWVzdHMgYXJlIHN1Ym1pdHRlZC4KPiBJbW8g cmVzZXJ2aW5nIGEgYml0IG9mIHJpbmcgc3BhY2UgZm9yIGVhY2ggYWRkX3JlcXVlc3Qgc2hvdWxk IGJlIHNvbGlkLgo+IFVzZXJzcGFjZSB1c2VzIHRoZSBleGFjdCBzYW1lIHJlc2VydmF0aW9uIGxv Z2ljIGZvciBhZGRpbmcgZW5kLW9mLWJhdGNoCj4gd29ya2Fyb3VuZHMuIFRoZSBvbmx5IHRoaW5n IG5lZWRlZCB0byBtYWtlIHRoaXMgc29saWQgaXMgdG8gV0FSTiBpZgo+IGFkZF9yZXF1ZXN0IGVu ZHMgdXAgdXNpbmcgbW9yZSByaW5nIHNwYWNlIHRoYW4gd2hhdCB3ZSd2ZSByZXNlcnZlZCAobm90 Cj4ganVzdCB3aGVuIGl0IGFjdHVhbGx5IHJ1bnMgb3V0LCB0aGF0IG9idmlvdXNseSBkb2Vzbid0 IGhhcHBlbiBvZnRlbgo+IGVub3VnaCBmb3IgdGVzdGluZykuClRoZSBwcm9ibGVtIGlzIHRoYXQg dGhlcmUgY291bGQgYmUgbXVsdGlwbGUgcmVxdWVzdHMgYmVpbmcgcHJvY2Vzc2VkIGluIApwYXJh bGxlbC4gVGhpcyBpcyBlc3BlY2lhbGx5IHRydWUgd2l0aCB0aGUgc2NoZWR1bGVyLiBVc2VybGFu ZCBjb3VsZCAKc3VibWl0IGEgd2hvbGUgc3RyZWFtIG9mIGJhdGNoZXMgdGhhdCBhbGwgZ2V0IHF1 ZXVlZCB1cCBpbiB0aGUgCnNjaGVkdWxlci4gT25seSBsYXRlciBkbyB0aGV5IGdldCBzdWJtaXR0 ZWQgdG8gdGhlIGhhcmR3YXJlLiBUaGUgcmVxdWVzdCAKbXVzdCBiZSBhbGxvY2F0ZWQgdXAgZnJv bnQgYmVjYXVzZSB0aGVyZSBpcyBubyBvdGhlciBtZWFucyBvZiB0cmFja2luZyAKdGhlbS4gQnV0 IHJlc2VydmluZyBzcGFjZSBhdCB0aGF0IHBvaW50IHdvbid0IHdvcmsgYmVjYXVzZSB5b3UgZWl0 aGVyIAplbmQgdXAgcmVzZXJ2aW5nIG1hc3NpdmUgYW1vdW50cyBvZiBzcGFjZSBpZiB0aGUgcmVz ZXJ2ZSBpcyBjdW11bGF0aXZlLCAKb3Igbm90IGVub3VnaCBpZiBvbmx5IG9uZSBzbG90IGlzIHJl c2VydmVkLgoKPiBFdmVyeXRoaW5nIGVsc2UganVzdCByZWFkZHMgb2xyIHRocm91Z2ggdGhlIGJh Y2tkb29yLCB3aGljaCBpcyBraW5kYSB3aGF0Cj4gd2Ugd2FudGVkIHRvIGF2b2lkIGZyb20gYW4g YWNjb3VudGluZyBwb3YuIEJlY2F1c2UgdGhlbiB5b3UgaGF2ZSBhZ2Fpbgo+IHNvbWUgcmFuZG9t IHJlcXVlc3Qgb3V0c3RhbmRpbmcgd2hpY2ggc2Nvb3BzIHVwIGV2ZXJ5dGhpbmcgaXQgZW5jb3Vu dGVycy4KTm90IHF1aXRlLiAgVGhlIGRpZmZlcmVuY2UgaXMgdGhhdCB3aXRoIHNvbWV0aGluZyBs aWtlIGFuIG91dHN0YW5kaW5nIApmYWlsZWQgcmVxdWVzdCByYXRoZXIgdGhhbiBhIGxhenkgb25l LCB0aGVyZSBpcyBzdGlsbCB0aGUgc2VncmVnYXRpb24gb2YgCndvcmsuIFRoZSBmYWlsZWQgcmVx dWVzdCB3aWxsIGJlIHBvc3RlZCBhbmQgYWRkZWQgdG8gdGhlIHJlcXVlc3QgbGlzdCBpbiAKaXRz IGVudGlyZXR5IGJlZm9yZSBhIG5ldyByZXF1ZXN0IGlzIGFsbG9jYXRlZCBhbmQgdXNlZCBmb3Ig dGhlIG5ldyB3b3JrLgoKCj4gRm9yIHRoZSByaW5nYnVmIGludGVyZmFjZSBpdHNlbGYgSSB0aGlu ayB3ZSBvbmx5IG5lZWQgMyBwaWVjZXM6Cj4gLSByaW5nYnVmX3Jlc2VydmUoc3BhY2UpOiBFbnN1 cmVzIHRoZXJlJ3MgQHNwYWNlIGF2YWlsYWJsZSBpbiB0aGUgcmluZyBhbmQKPiAgICB0aGVuIHNl dHMgdGhhdCBhcyByaW5nLT5yZXNlcnZlZF9zcGFjZS4gcmluZ19mcmVlX3NwYWNlIG5lZWRzIHRv Cj4gICAgc3VidHJhY3QgdGhhdCBvZmMuIFRoaXMgd291bGQgYmUgaW4gdGhlIGFsbG9jX3JlcXVl c3QgZnVuY3Rpb24uCj4KPiAtIHJpbmJ1Zl91c2VfcmVzZXJ2ZSgpOiBzZXRzIHJpbmctPnJlc2Vy dmVfc3BhY2UgdG8gMCBzbyB0aGF0Cj4gICAgaW50ZWxfcmluZ19iZWdpbiBjYW4gc3RhcnQgZWF0 aW5nIGludG8gcmVzZXJ2ZXMuIFRoaXMgd291bGQgYmUgYXQgdGhlCj4gICAgdG9wIG9mIGFkZF9y ZXF1ZXN0Lgo+Cj4gLSByaW5nYnVmX2NoZWNrX3Jlc2VydmUoKTogVGhpcyB3b3VsZCBiZSBjYWxs ZWQgYXQgdGhlIGVuZCBvZiBhZGRfcmVxdWVzdAo+ICAgIGFuZCBXQVJOcyBpZiB3ZSd2ZSB1c2Vk IG1vcmUgcmluZyBzcGFjZSB0aGFuIHdoYXQgd2UndmUgcHJvbWlzZWQuCj4gICAgT2J2aW91c2x5 IG5lZWRzIHNvbWUgYm9vLWtlZXBpbmcgYmV0d2VlbiB1c2UgYW5kIGNoZWNrIGJ1dCB0aGF0J3Mg anVzdCBhCj4gICAgZGV0YWlsLiBJZiB5b3UgZ28gd2l0aCBhIGZsYWcgaW5zdGVhZCBvZiBjbGVh cmluZyAtPnJlc2VydmVfc3BhY2UgeW91Cj4gICAgY2FuIGV2ZW4gZW5mb3JjZSB0aGF0IHRoZXNl IHRocmVlIGZ1bmN0aW9ucyBhcmUgYWx3YXlzIGNhbGxlZCBpbiB0aGlzCj4gICAgb3JkZXIgYW5k IGRvbid0IGVuZCB1cCBiZWluZyBuZXN0ZWQgd3JvbmdseS4KPgo+IENoZWVycywgRGFuaWVsCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=