From mboxrd@z Thu Jan 1 00:00:00 1970 From: Emil Velikov Subject: Re: [PATCH 01/13] drm/amdgpu: introduce and honour DRM_FORCE_AUTH workaround Date: Wed, 29 May 2019 17:29:08 +0100 Message-ID: <20190529162908.GA19679@arch-x1c3> References: <98c3d891-6966-2043-9709-4e718dbc6bac@amd.com> <20190528161051.GB2768@arch-x1c3> <9530c9bc-0cd2-72b1-34fc-d697df8f32f1@amd.com> <20190528164610.GC2768@arch-x1c3> <20190529130356.GA9205@arch-x1c3> <9bfd8a01-1e0a-c4b3-6b6f-86d5d05fac31@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <9bfd8a01-1e0a-c4b3-6b6f-86d5d05fac31@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Koenig, Christian" Cc: "Deucher, Alexander" , David Airlie , "amd-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" List-Id: amd-gfx.lists.freedesktop.org T24gMjAxOS8wNS8yOSwgS29lbmlnLCBDaHJpc3RpYW4gd3JvdGU6Cj4gQW0gMjkuMDUuMTkgdW0g MTU6MDMgc2NocmllYiBFbWlsIFZlbGlrb3Y6Cj4gPiBPbiAyMDE5LzA1LzI5LCBEYXZlIEFpcmxp ZSB3cm90ZToKPiA+PiBPbiBXZWQsIDI5IE1heSAyMDE5IGF0IDAyOjQ3LCBFbWlsIFZlbGlrb3Yg PGVtaWwubC52ZWxpa292QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4+IE9uIDIwMTkvMDUvMjgsIEtv ZW5pZywgQ2hyaXN0aWFuIHdyb3RlOgo+ID4+Pj4gQW0gMjguMDUuMTkgdW0gMTg6MTAgc2Nocmll YiBFbWlsIFZlbGlrb3Y6Cj4gPj4+Pj4gT24gMjAxOS8wNS8yOCwgRGFuaWVsIFZldHRlciB3cm90 ZToKPiA+Pj4+Pj4gT24gVHVlLCBNYXkgMjgsIDIwMTkgYXQgMTA6MDMgQU0gS29lbmlnLCBDaHJp c3RpYW4KPiA+Pj4+Pj4gPENocmlzdGlhbi5Lb2VuaWdAYW1kLmNvbT4gd3JvdGU6Cj4gPj4+Pj4+ PiBBbSAyOC4wNS4xOSB1bSAwOTozOCBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gPj4+Pj4+Pj4g W1NOSVBdCj4gPj4+Pj4+Pj4+IE1pZ2h0IGJlIGEgZ29vZCBpZGVhIGxvb2tpbmcgaW50byByZXZl cnRpbmcgaXQgcGFydGlhbGx5LCBzbyB0aGF0IGF0Cj4gPj4+Pj4+Pj4+IGxlYXN0IGNvbW1hbmQg c3VibWlzc2lvbiBhbmQgYnVmZmVyIGFsbG9jYXRpb24gaXMgc3RpbGwgYmxvY2tlZC4KPiA+Pj4+ Pj4+PiBJIHRob3VnaHQgdGhlIGlzc3VlIGlzIGEgbG90IG1vcmUgdGhhbiB2YWluZm8sIGl0J3Mg cHJldHR5IG11Y2ggZXZlcnkKPiA+Pj4+Pj4+PiBoYWNrZWQgdXAgY29tcG9zaXRvciB1bmRlciB0 aGUgc3VuIGdldHRpbmcgdGhpcyB3cm9uZyBvbmUgd2F5IG9yCj4gPj4+Pj4+Pj4gYW5vdGhlci4g VGhpbmtpbmcgYWJvdXQgdGhpcyBzb21lIG1vcmUsIEkgYWxzbyBoYXZlIG5vIGlkZWEgaG93IHlv dSdkCj4gPj4+Pj4+Pj4gd2FudCB0byBkZXByZWNhdGUgcmVuZGVyaW5nIG9uIHByaW1hcnkgbm9k ZXMgaW4gZ2VuZXJhbC4gQXBwYXJlbnRseQo+ID4+Pj4+Pj4+IHRoYXQgYnJlYWtzIC1tb2Rlc2V0 dGluZyBhbHJlYWR5LCBhbmQgcHJvYmFibHkgbG90cyBtb3JlIGNvbXBvc2l0b3JzLgo+ID4+Pj4+ Pj4+IEFuZCBpdCBsb29rcyBsaWtlIHdlJ3JlIGZpbmFsbHkgYWNoaWV2ZSB0aGUgZ29hbCBrbXMg c2V0IG91dCB0byAxMAo+ID4+Pj4+Pj4+IHllYXJzIGFnbywgYW5kIG5ldyBjb21wb3NpdG9ycyBh cmUgc3Byb3V0aW5nIHVwIGFsbCB0aGUgdGltZS4gSSBndWVzcwo+ID4+Pj4+Pj4+IHdlIGNvdWxk IGp1c3QgYnJlYWsgdGhlbSBhbGwgKG9uIG5ldyBoYXJkd2FyZSkgYW5kIHRlbGwgdGhlbSB0byBh bGwKPiA+Pj4+Pj4+PiBzdWNrIGl0IHVwLiBCdXQgSSBkb24ndCB0aGluayB0aGF0J3MgYSBncmVh dCBvcHRpb24uIEFuZCBqdXN0Cj4gPj4+Pj4+Pj4gZGVwcmVjYXRpbmcgdGhpcyBvbiBhbWRncHUg aXMgZ29pbmcgdG8gYmUgZXZlbiBoYXJkZXIsIHNpbmNlIHRoZW4KPiA+Pj4+Pj4+PiBldmVyeXdo ZXJlIGVsc2UgaXQnbGwga2VlcCB3b3JraW5nLCBhbmQgaXQncyBqdXN0IGFtZGdwdS5rbyB0aGF0 IGxvb2tzCj4gPj4+Pj4+Pj4gYnJva2VuLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gQXNpZGU6IEkn bSBub3Qgc3VwcG9ydGluZyBFbWlsJ3MgaWRlYSBoZXJlIGJlY2F1c2UgaXQgZml4ZXMgYW55IGlz c3Vlcwo+ID4+Pj4+Pj4+IEludGVsIGhhcyAtIEludGVsIGRvZXNuJ3QgY2FyZS4gSSBzdXBwb3J0 IGl0IGJlY2F1c2UgcmVhbGl0eSBzdWNrcywKPiA+Pj4+Pj4+PiBwZW9wbGUgZ2V0IHRoaXMgcmVu ZGVyIHZzLiBwcmltYXJ5IHZzLiBtdWx0aS1ncHUgcHJpbWUgd3JvbmcgYWxsIHRoZQo+ID4+Pj4+ Pj4+IHRpbWUgKHRoYXQncyBhbHNvIHdoeSB3ZSBoYXZlIGhhcmRjb2RlZCBkaXNwbGF5K2dwdSBw YWlycyBpbiBtZXNhIGZvcgo+ID4+Pj4+Pj4+IHRoZSB2YXJpb3VzIHNvYyBjb21iaW5hdGlvbnMg b3V0IHRoZXJlKSwgYW5kIHRoaXMgbG9va3MgbGlrZSBhCj4gPj4+Pj4+Pj4gcHJhZ21hdGljIHNv bHV0aW9uLiBJdCdkIGJlIG5pY2UgaWYgZXZlcnkgY29tcG9zaXRvciBhbmQgZXZlcnl0aGluZwo+ ID4+Pj4+Pj4+IGVsc2Ugd291bGQgcGVyZmVjdGx5IHN1cHBvcnQgbXVsdGkgZ3B1IGFuZCBvbmx5 IHVzZSByZW5kZXIgbm9kZXMgZm9yCj4gPj4+Pj4+Pj4gcmVuZGVyaW5nLCBhbmQgb25seSBwcmlt YXJ5IG5vZGVzIGZvciBkaXNwbGF5LiBCdXQgcmVhbGl0eSBpcyB0aGF0Cj4gPj4+Pj4+Pj4gcGVv cGxlIGhhY2sgb24gc3R1ZmYgdW50aWwgZ2VhcnMgb24gc2NyZWVuIGFuZCB0aGVuIG1vdmUgb24g dG8gbW9yZQo+ID4+Pj4+Pj4+IGludGVyZXN0aW5nIHRoaW5ncyAodG8gdGhlbSkuIFNvIEkgZG9u J3QgdGhpbmsgd2UnbGwgZXZlciB3aW4gdGhpcyA6LS8KPiA+Pj4+Pj4+IFllYWgsIGJ1dCB0aGlz IGlzIGEgY2xhc3NpYyBjYXNlIG9mIHdvcmtpbmcgYXJvdW5kIHVzZXIgc3BhY2UgaXNzdWVzIGJ5 Cj4gPj4+Pj4+PiBtYWtpbmcga2VybmVsIGNoYW5nZXMgaW5zdGVhZCBvZiBmaXhpbmcgdXNlciBz cGFjZS4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBIYXZpbmcgcHJpdmlsZWdlZCAob3V0cHV0IGNvbnRy b2wpIGFuZCB1bnByaXZpbGVnZWQgKHJlbmRlcmluZyBjb250cm9sKQo+ID4+Pj4+Pj4gZnVuY3Rp b25hbGl0eSBiZWhpbmQgdGhlIHNhbWUgbm9kZSBpcyBhIG1pc3Rha2Ugd2UgaGF2ZSBtYWRlIGEg bG9uZyB0aW1lCj4gPj4+Pj4+PiBhZ28gYW5kIHJlbmRlciBub2RlcyBmaW5hbGx5IHNlZW1lZCB0 byBiZSBhIHdheSB0byBmaXggdGhhdC4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBJIG1lYW4gd2h5IGFy ZSBjb21wb3NpdG9ycyB1c2luZyB0aGUgcHJpbWFyeSBub2RlIGluIHRoZSBmaXJzdCBwbGFjZT8K PiA+Pj4+Pj4+IEJlY2F1c2UgdGhleSB3YW50IHRvIGhhdmUgYWNjZXNzIHRvIHByaXZpbGVnZWQg cmVzb3VyY2VzIEkgdGhpbmsgYW5kIGluCj4gPj4+Pj4+PiB0aGlzIGNhc2UgaXQgaXMgcGVyZmVj dGx5IG9rIHRvIGRvIHNvLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IE5vdyBleHRlbmRpbmcgdW5wcml2 aWxlZ2VkIGFjY2VzcyB0byB0aGUgcHJpbWFyeSBub2RlIGFjdHVhbGx5IHNvdW5kcwo+ID4+Pj4+ Pj4gbGlrZSBhIHN0ZXAgaW50byB0aGUgd3JvbmcgZGlyZWN0aW9uIHRvIG1lLgo+ID4+Pj4+Pj4K PiA+Pj4+Pj4+IEkgcmF0aGVyIHRoaW5rIHRoYXQgd2Ugc2hvdWxkIGdvIGRvd24gdGhlIHJvdXRl IG9mIGNvbXBsZXRlbHkgZHJvcHBpbmcKPiA+Pj4+Pj4+IGNvbW1hbmQgc3VibWlzc2lvbiBhbmQg YnVmZmVyIGFsbG9jYXRpb24gdGhyb3VnaCB0aGUgcHJpbWFyeSBub2RlIGZvcgo+ID4+Pj4+Pj4g bm9uIG1hc3RlciBjbGllbnRzLiBBbmQgdGhlbiBhcyBuZXh0IHN0ZXAgYXQgc29tZSBwb2ludCBk cm9wIHN1cHBvcnQgZm9yCj4gPj4+Pj4+PiBhdXRoZW50aWNhdGlvbi9mbGluay4KPiA+Pj4+Pj4+ Cj4gPj4+Pj4+PiBJIG1lYW4gd2UgaGF2ZSBkb25lIHRoaXMgd2l0aCBVTVMgYXMgd2VsbCBhbmQg SSBkb24ndCBzZWUgbXVjaCBvdGhlciB3YXkKPiA+Pj4+Pj4+IHRvIG1vdmUgZm9yd2FyZCBhbmQg Z2V0IHJpZCBvZiB0aG9zZSBhbmNpZW50IGludGVyZmFjZSBpbiB0aGUgbG9uZyB0ZXJtLgo+ID4+ Pj4+PiBXZWxsIGttcyBoYWQgc29tZSByZWFsbHkgZ29vZCBiZW5lZml0cyB0aGF0IGRyb3ZlIHF1 aWNrIGFkb3B0aW9uLCBsaWtlCj4gPj4+Pj4+ICJzdXNwZW5kL3Jlc3VtZSBhY3R1YWxseSBoYXMg YSBjaGFuY2Ugb2Ygd29ya2luZyIgb3IgImNvbWVzIHdpdGgKPiA+Pj4+Pj4gYnVmZmVyIG1hbmFn ZW1lbnQgc28geW91IGNhbiBydW4gbXVsdGlwbGUgZ2VhcnMiLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBU aGUgcmVuZGVyIG5vZGUgdGhpbmcgaXMgYSBsb3QgbW9yZSBuaWNoZSB1c2UgY2FzZSAocHJpbWUs IGJldHRlciBwcml2Cj4gPj4+Pj4+IHNlcGFyYXRpb24pLCBwbHVzICJpdCdzIGNsZWFuZXIgZGVz aWduIi4gQW5kIHRoZSAiY2xlYW5lciBkZXNpZ24iIHBhcnQKPiA+Pj4+Pj4gaXMgc29tZXRoaW5n IHRoYXQgZW1waXJpY2FsbHkgZG9lc24ndCBzZWVtIHRvIG1hdHRlciA6LS8gSnVzdCB0d28KPiA+ Pj4+Pj4gZXhhbXBsZXM6Cj4gPj4+Pj4+IC0gS0hSX2Rpc3BsYXkvbGVhc2VzIGp1c3QgaXRlcmF0 ZWQgZGlzcGxheSByZXNvdXJjZXMgb24gdGhlIGZkIG5lZWRlZAo+ID4+Pj4+PiBmb3IgcmVuZGVy aW5nIChhbmQgaWlyYyB0aGVyZSB3YXMgZXZlbiBhIHBhdGNoIHRvIGV4cG9zZSB0aGF0IGZvcgo+ ID4+Pj4+PiByZW5kZXIgbm9kZXMgdG9vIHNvIGl0IHdvcmtzIHdpdGggRFJJMyksIGJlY2F1c2Ug aW1wbGVtZW50aW5nCj4gPj4+Pj4+IHByb3RvY29scyBpcyB0b28gaGFyZC4gQmFyZWx5IG1hbmFn ZWQgdG8gc3RvcCB0aGF0IG9uZSBiZWZvcmUgaXQKPiA+Pj4+Pj4gaGFwcGVuZWQuCj4gPj4+Pj4+ IC0gVmFyaW91cyB2aWRlbyBwbGF5ZXJzIHVzZSB0aGUgdmJsYW5rIGlvY3RsIG9uIGRpcmVjdGx5 IHRvIHNjaGVkdWxlCj4gPj4+Pj4+IGZyYW1lcywgd2l0aG91dCB0ZWxsaW5nIHRoZSBjb21wb3Np dG9yLiBJIGRpc2NvdmVyZWQgdGhhdCB3aGVuIEkKPiA+Pj4+Pj4gd2FudGVkIHRvIGxpbWl0ZSB0 aGUgdmJsYW5rIGlvY3RsIHRvIG1hc3RlciBjbGllbnRzIG9ubHkuIEFnYWluLAo+ID4+Pj4+PiBh cHBhcmVudGx5IHRvbyBoYXJkIHRvIHVzZSB0aGUgZXhpc3RpbmcgZXh0ZW5zaW9ucywgb3IgZml4 IHRoZSBidWdzIGluCj4gPj4+Pj4+IHRoZXJlLCBvciB3aGF0ZXZlci4gT25lIHVzZXJzcGFjZSBn b3QgZml4ZWQgbGFzdCB5ZWFyLCBidXQgaXQnbGwKPiA+Pj4+Pj4gcHJvYmFibHkgZ2V0IGNvcHlw YXN0ZWQgYXJvdW5kIGZvcmV2ZXIgOi0vCj4gPj4+Pj4+Cj4gPj4+Pj4+IFNvIEkgZG9uJ3QgdGhp bmsgd2UnbGwgZXZlciBtYW5hZ2UgdG8gcm9sbCBhIGNsZWFuIHNwbGl0IG91dCwgYW5kIGJlc3QK PiA+Pj4+Pj4gd2UgY2FuIGRvIGlzIGdpdmUgaW4gYW5kIGp1c3QgaGFuZCB1c2Vyc3BhY2Ugd2hh dCBpdCB3YW50cy4gQXMgbXVjaCBhcwo+ID4+Pj4+PiB0aGF0J3MgbWlzZ3VpZGVkIGFuZCB1bmNs ZWFuIGFuZCBhbGwgdGhhdC4gTWF5YmUgaXQnbGwgcmVzdWx0IGluIGEKPiA+Pj4+Pj4gbGVhc3Qg ZmV3ZXIgc3R1ZmYgZ2V0dGluZyBydW4gYXMgcm9vdCB0byBoYWNrIGFyb3VuZCB0aGlzLCBiZWNh dXNlCj4gPj4+Pj4+IGZpeGluZyBwcm9wZXJseSBzZWVtcyBub3QgdG8gYmUgb24gdGhlIHRhYmxl Lgo+ID4+Pj4+Pgo+ID4+Pj4+PiBUaGUgYmVhdXR5IG9mIGttcyBpcyB0aGF0IHdlJ3ZlIGFjaGll dmVkIHRoZSBtaXNzaW9uLCBldmVyeW9uZSdzCj4gPj4+Pj4+IHdyaXRpbmcgdGhlaXIgb3duIHRo aW5nLiBXaGljaCBpcyBhbHNvIHRlcnJpYmxlLCBhbmQgSSBkb24ndCB0aGluawo+ID4+Pj4+PiBp dCdsbCBnZXQgYmV0dGVyLgo+ID4+Pj4+IFdpdGggdGhlIHJpc2sgb2YgY29taW5nIHJ1ZGUgSSB3 aWxsIHJlcGVhdCBteSBlYXJsaWVyIGNvbW1lbnQ6Cj4gPj4+Pj4KPiA+Pj4+PiBUaGUgcHJvYmxl bSBpcyBfbmVpdGhlcl8gSW50ZWwgbm9yIGxpYnZhIHNwZWNpZmljLgo+ID4+Pj4+Cj4gPj4+Pj4K PiA+Pj4+Pgo+ID4+Pj4+IFRoYXQgc2FpZCwgbGV0J3Mgc3RlcCBiYWNrIGZvciBhIG1vbWVudCBh bmQgY29uc2lkZXI6Cj4gPj4+Pj4KPiA+Pj4+PiAgICAtIHRoZSAiYmxvY2sgZXZlcnl0aGluZyBi dXQgS01TIHZpYSB0aGUgcHJpbWFyeSBub2RlIiBpZGVhIGlzIGdyZWF0IGJ1dAo+ID4+Pj4+IG9y dGhvZ29uYWwKPiA+Pj4+Pgo+ID4+Pj4+ICAgIC0gdGhlIHNlcmllcyBkb2VzIGFkZHJlc3MgaXNz dWVzIHRoYXQgYXJlIHZlbmRvci1hZ25vc3RpYwo+ID4+Pj4+Cj4gPj4+Pj4gICAgLSBieSBkZWZh dWx0IHRoaXMgc2VyaWVzIGRvZXMgX25vdF8gY2F1c2UgYW55IHJlZ3Jlc3Npb24gYmUgdGhhdCBm b3IKPiA+Pj4+PiBuZXcgb3Igb2xkIHVzZXJzcGFjZQo+ID4+Pj4+Cj4gPj4+Pj4gICAgLSB0aGVy ZSBhcmUgdHdvIHRyaXZpYWwgc29sdXRpb25zLCBpZiB0aGUgQU1EIHRlYW0gaGFzIGNvbmNlcm5z IGFib3V0Cj4gPj4+Pj4gY2xvc2VkLXNvdXJjZS9wcml2YXRlIHN0YWNrIGRlcGVuZGluZyBvbiB0 aGUgb2xkIGJlaGF2aW91cgo+ID4+Pj4+IElmIHRoZXkgd2FudCBJIGNhbiBldmVuIHdyaXRlIHRo ZSBwYXRjaGVzIDstKQo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiBUaGF0IHNhaWQsIHRoZSBub3Rh YmxlIGNvbW1lbnRzIHJlY2VpdmVkIHNvIGZhciBhcmU6Cj4gPj4+Pj4gICAgLSByZXdvcmsgcGF0 Y2ggMTMvMTMgdG8gcmVtb3ZlIHRoZSBEUk1fQVVUSCBmcm9tIHByaW1lIGZkIHRvL2Zyb20KPiA+ Pj4+PiBoYW5kbGUuIEknbSBPSyBidXQgdGhpcyB3aWxsIGNoYW5nZSB0aGUgcmV0dXJuIGNvZGUg LSBmcm9tIEVBQ0NFUyB0bwo+ID4+Pj4+IEVOT1NZUwo+ID4+Pj4+Cj4gPj4+Pj4gICAgLSB2bXdn Znggd2lsbCBuZWVkIGEgY2hlY2sgb24gdGhlIHJlZmVyZW5jZSBpb2N0bChzKSAtIElJUkMgVGhv bWFzIGlzCj4gPj4+Pj4gcGxhbm5pbmcgdG8gZHJvcCBuZWFybHkgYWxsIERSTV9BVVRIIGluc3Rh bmNlcyBpbiB0aGVpciBkcml2ZXIuCj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IENocmlzdGlhbiwg YXMgbWVudGlvbmVkIGJlZm9yZSAtIHRoaXMgc2VyaWVzIGRvZXMgX25vdF8gYWRkCj4gPj4+Pj4g ZnVuY3Rpb25hbGl0eSB0byByZW5kZXIgbm9kZXMuIEl0IGVmZmVjdGl2ZWx5IHBhdmVzIGEgd2F5 IHRvd2FyZHMKPiA+Pj4+PiByZW1vdmluZyBEUk1fQVVUSC4KPiA+Pj4+IEJ1dCBpdCBhZGRzIGZ1 bmN0aW9uYWxpdHkgdG8gdGhlIHByaW1hcnkgbm9kZS4KPiA+Pj4+Cj4gPj4+IEJlaGF2aW91ciBp cyBhZGp1c3RlZCAtIGZ1bmN0aW9uYWxpdHkgd2FzIHRoZXJlIHNpbmNlIGRheSAxLgo+ID4+Pgo+ ID4+Pj4+IEkgdW5kZXJzdGFuZCB0aGUgc2VyaWVzIG1heSBmZWVsIGEgYml0IGRpcnR5LiBZZXQg SSB3b3VsZCBnbGFkbHkgYWRkcmVzcwo+ID4+Pj4+IGFueSB0ZWNobmljYWwgY29uY2VybnMgeW91 IGhhdmUuCj4gPj4+PiBXZWxsIHB1dHRpbmcgY29tcGF0aWJpbGl0eSBpc3N1ZXMgYXNpZGUgbXkg Y29uY2VybiBpcyB0aGF0IHRoaXMgaXMKPiA+Pj4+IHNpbXBseSBhIGJhZCBkZXNpZ24gZGVjaXNp b24gd2hpY2ggd2UgY2FuJ3QgcmV2ZXJ0IGxhdGVyIG9uLgo+ID4+Pj4KPiA+Pj4gQXMgc2FkIGFi b3ZlIC0gYW55IGNvbmNlcm5zICh0aGVvcmV0aWNhbCBvciBhY3R1YWwgcmVncmVzc2lvbnMpIGNh biBiZQo+ID4+PiB0cml2aWFsbHkgZml4ZWQgX3dpdGhvdXRfIHJldmVydGluZyBhbnkgb2YgdGhp cy4KPiA+Pj4KPiA+Pj4gSSBhbSBtb3JlIHRoYW4gaGFwcHkgdG8gc3RlcCB1cCBhbmQgYWRkcmVz cyBhbnkgcmVncmVzc2lvbnMgaW4gdGltZWx5Cj4gPj4+IG1hbm5lci4KPiA+Pj4KPiA+Pj4KPiA+ Pj4gQXMgYSByZW1pbmRlciB3aXRob3V0IHRoaXMgc2VyaWVzLCBzb21lIG9mIHlvdXIgY3VzdG9t ZXJzIGFyZSBmb3JjZWQgdG8KPiA+Pj4gcnVuIHRoZWlyIGFwcGxpY2F0aW9ucyBhcyByb290Lgo+ ID4+IEknbSB0b3JuIGhlcmUgb24gd2hldGhlciB0aGlzIGlzIHdvcnRoIGl0LiBIYXZlIHdlIGdv dCBtb3JlIHVzZSBjYXNlcwo+ID4+IHRvIGp1c3RpZnkgaXQ/Cj4gPj4KPiA+IFNob3VsZCBoYXZl IG1lbnRpb25lZDogdGhyZWUgRFJNIGRyaXZlcnMgKG5vdCBjb3VudGluZyBpOTE1KSBoYXZlCj4g PiBkcm9wcGVkIERSTV9BVVRILCBhc3N1bWluZ2x5IGZvciB0aGUgc2FtZSByZWFzb25zIEknbSBi cmluZ2luZyBoZXJlLgo+ID4KPiA+IEFwYXJ0IGZyb20gdGhlIGxpYnZhLCBrbXNjdWJlICsgZ3N0 IGFuZCBtZXNhLCBJJ20gZXhwZWN0aW5nIG90aGVyCj4gPiBwcm9qZWN0cyB0byBtYWtlIHRoZSBz YW1lIG1pc3Rha2UuIFNpbmNlIHRoZSBmb3JtZXIgdGhyZWUgZGVmaW5lIHRoZQo+ID4gbm9ybSBv ZiB1c2luZyBEUk0uCj4gPgo+ID4gVGhlICJmaXgiIGZvciBhbGwgb2YgdGhlc2UgYmVpbmcgInJ1 biBhcyByb290IiA6LVwKPiA+Cj4gPj4gSSdtIHdhcnkgb2Ygb3BlbmluZyB0aGlzIHVwIGp1c3Qg YmVjYXVzZSB3ZSBjYW4uCj4gPj4KPiA+IFdoYXQgY2FuIEkgZG8gdG8gYWxsZXZpYXRlIHRoYXQg d29ycnk/IEkgaGF2ZSBzcGVudCBvdmVyIGEgd2VlayBhdWRpdGluZwo+ID4gY29kZSBhbmQgZGVz aWduZWQgc28gdGhhdCB3ZSBjYW4gcmVpbnN0YXRlIHRoZSBhdXRoZW50aWNhdGlvbiBvbmx5IHdo ZXJlCj4gPiBuZWVkZWQuCj4gCj4gV2VsbCBJIGRvbid0IHRoaW5rIHRoZSB3b3JyeSBoZXJlIGlz IGFib3V0IHJlZ3Jlc3Npb25zLApHbGFkIHRvIGhlYXIuCgo+IGJ1dCByYXRoZXIgYWJvdXQgCj4g YSBkZXNpZ24gZGVjaXNpb24gd2Ugd2lsbCBuZXZlciBiZSBhYmxlIHRvIHJldmVydC4KPiAKQ2Fu IHlvdSB0aGluayBvZiBhbnkgcmVhc29uL2lzc3VlIHdoeSB3ZSB3b3VsZCB3YW50IHRvIHJldmVy dCB0aGlzPyBJCndpbGwgZ2xhZGx5IHNwZW5kIHNvbWUgdGhpbmcgZXhwbG9yaW5nIGhvdyB0byBh ZGRyZXNzIGl0LgoKPiBTbyB0aGUgcXVlc3Rpb24gd2UgaGF2ZSB0byBhc2sgaXMgcmF0aGVyIGlm IGl0J3MgYSBnb29kIGRlc2lnbiBkZWNpc2lvbiAKPiB0byByZXN1cnJlY3QgdGhlIHByaW1hcnkg bm9kZSB3aXRoIGFsbCBpdHMgcmVsYXRlZCBjb21wYWJpbGl0eSBidXJkZW5zIAo+IHRvIHdvcmsg YXJvdW5kIGFuIGlzc3VlIHdoaWNoIGlzIGVzc2VudGlhbGx5IGFuIHVzZXJzcGFjZSBjb2Rpbmcg ZXJyb3IuCj4gCgpDYW4gc2VlIHlvdSdyZSBub3QgaGFwcHkgb24gdGhlIHRvcGljIC0gSSdtIG5v dCB0b28gZXhjaXRlZCBlaXRoZXIuIFRoZQp0cnV0aCB0byB0aGUgbWF0dGVyIGlzIC0gRFJNIGRy aXZlcnMgaGF2ZSBkcm9wcGVkIERSTV9BVVRIIHJlZ2FyZGxlc3Mgb2YKbXkgd29yay4KCkl0J3Mg dmVyeSB1bmZvcnR1bmF0ZSwgaWYgQU1ER1BVIHN0YW5kcyBvdXQuIFBlcmhhcHMgYWZ0ZXIgc29t ZSB0aW1lIGFuZAp1bmhhcHB5IHVzZXJzIHlvdSdsbCByZWNvbnNpZGVyLgoKSSBiZWxpZXZlIHRo YXQgTGludXMgaGFzIHBvaW50ZWQgb3V0IGEgbnVtYmVyIG9mIHRpbWVzIHRoYXQga2VybmVsCmRl dmVsb3BlcnMgc2hvdWxkIGNhcmUgYWJvdXQgb3VyIHVzZXJzLiBFdmVuIHdoZW4gaXQncyBhbiB1 c2Vyc3BhY2UKZXJyb3IuCgoKSFRICkVtaWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVs