From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [RFC PATCH xserver] modesetting: re-set the crtc's mode when link-status goes BAD Date: Mon, 13 Feb 2017 15:14:41 -0800 Message-ID: <20170213231441.GA29581@intel.com> References: <20170126123728.5680-1-martin.peres@linux.intel.com> <87tw8fxa22.fsf@eliezer.anholt.net> <87poj21b42.fsf@intel.com> <87efzhr8dj.fsf@eliezer.anholt.net> <20170201200512.GC21934@intel.com> <32b846ee-69c5-1dea-eed4-1bc41bb2958f@free.fr> <20170203080451.vrbmoaioqjyd3hhc@phenom.ffwll.local> <4f8317ff-53e8-4c2d-effa-d074b11b15e6@free.fr> <069473c6-d75e-48eb-e75d-4e65e201b4fb@linux.intel.com> <87k28tkdiq.fsf@eliezer.anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8E46F6E58A for ; Mon, 13 Feb 2017 23:15:16 +0000 (UTC) Content-Disposition: inline In-Reply-To: <87k28tkdiq.fsf@eliezer.anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Eric Anholt Cc: xorg-devel@lists.x.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBGZWIgMTMsIDIwMTcgYXQgMDE6MDU6MTdQTSAtMDgwMCwgRXJpYyBBbmhvbHQgd3Jv dGU6Cj4gTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVyZXNAbGludXguaW50ZWwuY29tPiB3cml0ZXM6 Cj4gCj4gPiBPbiAwNi8wMi8xNyAxNzo1MCwgTWFydGluIFBlcmVzIHdyb3RlOgo+ID4+IE9uIDAz LzAyLzE3IDEwOjA0LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4+PiBPbiBGcmksIEZlYiAwMywg MjAxNyBhdCAwMTozMDoxNEFNICswMjAwLCBNYXJ0aW4gUGVyZXMgd3JvdGU6Cj4gPj4+PiBPbiAw MS8wMi8xNyAyMjowNSwgTWFuYXNpIE5hdmFyZSB3cm90ZToKPiA+Pj4+PiBPbiBXZWQsIEZlYiAw MSwgMjAxNyBhdCAxMTo1ODoxNkFNIC0wODAwLCBFcmljIEFuaG9sdCB3cm90ZToKPiA+Pj4+Pj4g SmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4gd3JpdGVzOgo+ID4+Pj4+ Pgo+ID4+Pj4+Pj4gT24gVHVlLCAzMSBKYW4gMjAxNywgRXJpYyBBbmhvbHQgPGVyaWNAYW5ob2x0 Lm5ldD4gd3JvdGU6Cj4gPj4+Pj4+Pj4gTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVyZXNAbGludXgu aW50ZWwuY29tPiB3cml0ZXM6Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gRGVzcGl0ZSBhbGwgdGhl IGNhcmVmdWwgcGxhbmluZyBvZiB0aGUga2VybmVsLCBhIGxpbmsgbWF5IGJlY29tZQo+ID4+Pj4+ Pj4+PiBpbnN1ZmZpY2llbnQgdG8gaGFuZGxlIHRoZSBjdXJyZW50bHktc2V0IG1vZGUuIEF0IHRo aXMgcG9pbnQsIHRoZQo+ID4+Pj4+Pj4+PiBrZXJuZWwgc2hvdWxkIG1hcmsgdGhpcyBwYXJ0aWN1 bGFyIGNvbmZpZ3VyYXRpb24gYXMgYmVpbmcgYnJva2VuCj4gPj4+Pj4+Pj4+IGFuZCBwb3RlbnRp YWxseSBwcnVuZSB0aGUgbW9kZSBiZWZvcmUgc2V0dGluZyB0aGUgb2ZmZW5kaW5nCj4gPj4+Pj4+ Pj4+IGNvbm5lY3RvcidzCj4gPj4+Pj4+Pj4+IGxpbmstc3RhdHVzIHRvIEJBRCBhbmQgc2VuZCB0 aGUgdXNlcnNwYWNlIGEgaG90cGx1ZyBldmVudC4gVGhpcyBtYXkKPiA+Pj4+Pj4+Pj4gaGFwcGVu IHJpZ2h0IGFmdGVyIGEgbW9kZXNldCBvciBsYXRlciBvbi4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+ Pj4gV2hlbiBhdmFpbGFibGUsIHdlIHNob3VsZCB1c2UgdGhlIGxpbmstc3RhdHVzIGluZm9ybWF0 aW9uIHRvIHJlc2V0Cj4gPj4+Pj4+Pj4+IHRoZSB3YW50ZWQgbW9kZS4KPiA+Pj4+Pj4+Pj4KPiA+ Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVyZXNAbGludXgu aW50ZWwuY29tPgo+ID4+Pj4+Pj4+IElmIEkgdW5kZXJzdGFuZCB0aGlzIHJpZ2h0LCB0aGVyZSBh cmUgdHdvIGZhaWx1cmUgbW9kZXMgYmVpbmcKPiA+Pj4+Pj4+PiBoYW5kbGVkOgo+ID4+Pj4+Pj4+ Cj4gPj4+Pj4+Pj4gMSkgQSBtb2RlIHRoYXQgd29uJ3QgYWN0dWFsbHkgd29yayBiZWNhdXNlIHRo ZSBsaW5rIGlzbid0IGdvb2QKPiA+Pj4+Pj4+PiBlbm91Z2guCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+ PiAyKSBBIG1vZGUgdGhhdCBzaG91bGQgd29yaywgYnV0IGxpbmsgcGFyYW1ldGVycyB3ZXJlIHRv bwo+ID4+Pj4+Pj4+IG9wdGltaXN0aWMgYW5kCj4gPj4+Pj4+Pj4gaWYgd2UganVzdCBhc2sgdGhl IGtlcm5lbCB0byBzZXQgdGhlIG1vZGUgYWdhaW4gaXQnbGwgdXNlIG1vcmUKPiA+Pj4+Pj4+PiBj b25zZXJ2YXRpdmUgcGFyYW1ldGVycyB0aGF0IHdvcmsuCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBU aGlzIHBhdGNoIHNlZW1zIGdvb2QgZm9yIDIpLiAgRm9yIDEpLCB0aGUgZHJtbW9kZV9zZXRfbW9k ZV9tYWpvciBpcwo+ID4+Pj4+Pj4+IGdvaW5nIHRvIHNldCBvdXIgb2xkIG1vZGUgYmFjay4gIFdv bid0IHRoZSBtb2Rlc2V0IHRoZW4gZmFpbCB0byBsaW5rCj4gPj4+Pj4+Pj4gdHJhaW4gYWdhaW4s IGFuZCBicmluZyB1cyBiYWNrIGludG8gdGhpcyBsb29wPyAgVGhlIG9ubHkgZXNjYXBlCj4gPj4+ Pj4+Pj4gdGhhdCBJCj4gPj4+Pj4+Pj4gc2VlIHdvdWxkIGJlIHNvbWUgb3RoZXIgdXNlcnNwYWNl IHJlc3BvbmRpbmcgdG8gdGhlIGFkdmVydGlzZWQKPiA+Pj4+Pj4+PiBtb2RlIGxpc3QKPiA+Pj4+ Pj4+PiBjaGFuZ2luZywgYW5kIHRoZW4gYXNraW5nIFggdG8gbW9kZXNldCB0byBzb21ldGhpbmcg bmV3Lgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gVG8gYXZvaWQgdGhhdCBmYWlsdXJlIGJ1c3kgbG9v cCwgc2hvdWxkIHdlIHJlLWZldGNoaW5nIG1vZGVzIGF0IHRoaXMKPiA+Pj4+Pj4+PiBwb2ludCwg YW5kIG9ubHkgcmUtc2V0dGluZyBpZiBvdXIgbW9kZSBzdGlsbCBleGlzdHM/Cj4gPj4+Pj4+PiBE aXNjbGFpbWVyOiBJIGRvbid0IGtub3cgYW55dGhpbmcgYWJvdXQgdGhlIGludGVybmFscyBvZiB0 aGUKPiA+Pj4+Pj4+IG1vZGVzZXR0aW5nCj4gPj4+Pj4+PiBkcml2ZXIuCj4gPj4+Pj4+Pgo+ID4+ Pj4+Pj4gUGVyaGFwcyB3ZSBjYW4gaWRlbnRpZnkgdGhlIHR3byBjYXNlcyBub3csIGJ1dCBJJ2Qg cHV0IHRoaXMgbW9yZQo+ID4+Pj4+Pj4gZ2VuZXJhbGx5OiBpZiB0aGUgbGluayBzdGF0dXMgaGFz IGdvbmUgYmFkLCBpdCdzIGFuIGluZGljYXRvciB0bwo+ID4+Pj4+Pj4gdXNlcnNwYWNlIHRoYXQg dGhlIGNpcmN1bXN0YW5jZXMgbWF5IGhhdmUgY2hhbmdlZCwgYW5kIHVzZXJzcGFjZQo+ID4+Pj4+ Pj4gc2hvdWxkCj4gPj4+Pj4+PiBxdWVyeSB0aGUga2VybmVsIGZvciB0aGUgbGlzdCBvZiBhdmFp bGFibGUgbW9kZXMgYWdhaW4uIEl0IHNob3VsZCBubwo+ID4+Pj4+Pj4gbG9uZ2VyIHRydXN0IGlu Zm9ybWF0aW9uIG9idGFpbmVkIHByaW9yIHRvIGdldHRpbmcgdGhlIGJhZCBsaW5rCj4gPj4+Pj4+ PiBzdGF0dXMsCj4gPj4+Pj4+PiBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgbW9kZS4KPiA+Pj4+Pj4+ Cj4gPj4+Pj4+PiBCdXQgc3BlY2lmaWNhbGx5LCBJIHRoaW5rIHlvdSdyZSByaWdodCwgYW5kIEFG QUlDVCBhc2tpbmcgZm9yIHRoZQo+ID4+Pj4+Pj4gbGlzdAo+ID4+Pj4+Pj4gb2YgbW9kZXMgYWdh aW4gaXMgdGhlIG9ubHkgd2F5IGZvciB0aGUgdXNlcnNwYWNlIHRvIGRpc3Rpbmd1aXNoCj4gPj4+ Pj4+PiBiZXR3ZWVuCj4gPj4+Pj4+PiB0aGUgdHdvIGNhc2VzLiBJIGRvbid0IHRoaW5rIHRoZXJl J3MgYSBzaG9ydGN1dCBmb3IgZGVjaWRpbmcgdGhlCj4gPj4+Pj4+PiBjdXJyZW50Cj4gPj4+Pj4+ PiBtb2RlIGlzIHN0aWxsIHZhbGlkLgo+ID4+Pj4+PiBUbyBhdm9pZCB0aGUgYnVzeS1sb29wIHBy b2JsZW0sIEkgdGhpbmsgSSdkIGxpa2UgdGhpcyBwYXRjaCB0bwo+ID4+Pj4+PiByZS1xdWVyeQo+ ID4+Pj4+PiB0aGUga2VybmVsIHRvIGFzayBhYm91dCB0aGUgY3VycmVudCBtb2RlIGxpc3QsIGFu ZCBvbmx5IHRyeSB0byByZS1zZXQKPiA+Pj4+Pj4gdGhlIG1vZGUgaWYgb3VyIG1vZGUgaXMgc3Rp bGwgdGhlcmUuCj4gPj4+Pj4+Cj4gPj4+Pj4+IElmIHRoZSBtb2RlIGlzbid0IHRoZXJlLCB0aGVu IGl0J3MgdXAgdG8gdGhlIERFIHRvIHRha2UgYWN0aW9uIGluCj4gPj4+Pj4+IHJlc3BvbnNlIHRv IHRoZSBub3RpZmljYXRpb24gb2YgbmV3IG1vZGVzLiAgSWYgeW91IGRvbid0IGhhdmUgYSBERSB0 bwo+ID4+Pj4+PiB0YWtlIGFwcHJvcHJpYXRlIGFjdGlvbiwgeW91J3JlIGtpbmQgb2Ygb3V0IG9m IGx1Y2suCj4gPj4+Pj4+Cj4gPj4+Pj4+IEFzIGZhciBhcyB0aGUgQUJJIGdvZXMsIHRoaXMgc2Vl bXMgZmluZSB0byBtZS4gIFRoZSBvbmx5IGNvbmNlcm4gSSBoYWQKPiA+Pj4+Pj4gYWJvdXQgQUJJ IHdhcyBoYXZpbmcgdG8gd2FsayBhbGwgdGhlIGNvbm5lY3RvcnMgb24gZXZlcnkgdWV2ZW50IHRv IHNlZQo+ID4+Pj4+PiBpZiBhbnkgaGFkIGdvbmUgYmFkIC0tIGNvdWxkbid0IHdlIGhhdmUgYSBm bGFnIG9mIHNvbWUgc29ydCBhYm91dCB3aGF0Cj4gPj4+Pj4+IHRoZSB1ZXZlbnQgaW5kaWNhdGVz PyAgQnV0IHVldmVudHMgc2hvdWxkIGJlIHN1cGVyIHJhcmUsIHNvIEknZCBzYXkKPiA+Pj4+Pj4g dGhlCj4gPj4+Pj4+IGtlcm5lbCBjb3VsZCBnbyBhaGVhZCB3aXRoIHRoZSBjdXJyZW50IHBsYW4u Cj4gPj4+Pj4gWWVzIEkgYWdyZWUuIFRoZSBrZXJuZWwgc2V0cyB0aGUgbGluayBzdGF0dXMgQkFE IGFzIHNvb25hIHMgbGluawo+ID4+Pj4+IHRyYWluaW5nIGZhaWxzCj4gPj4+Pj4gYnV0IGRvZXMg bm90IHBydW5lIHRoZSBtb2RlcyB1bnRpbCBhIG5ldyBtb2RlbGlzdCBpcyByZXF1ZXN0ZWQgYnkK PiA+Pj4+PiB0aGUgdXNlcnNwYWNlLgo+ID4+Pj4+IFNvIHRoaXMgcGF0Y2ggc2hvdWxkIHJlIHF1 ZXJ5IHRoZSBtb2RlIGxpc3QgYXMgc29vbiBhcyBpdCBzZWVzIHRoZQo+ID4+Pj4+IGxpbmsgc3Rh dHVzCj4gPj4+Pj4gQkFEIGluIG9yZGVyIGZvciB0aGUga2VybmVsIHRvIHZhbGlkYXRlIHRoZSBt b2RlcyBhZ2FpbiBiYXNlZCBvbiBuZXcKPiA+Pj4+PiBsaW5rCj4gPj4+Pj4gcGFhcm1ldGVycyBh bmQgc2VuZCBhIG5ldyBtb2RlIGxpc3QgYmFjay4KPiA+Pj4+IFNlZW1zIGxpa2UgYSBiYWQgYmVo YXZpb3VyIGZyb20gdGhlIGtlcm5lbCwgaXNuJ3QgaXQ/IEl0IHNob3VsZCByZXR1cm4KPiA+Pj4+ IGltbWVkaWF0bHkKPiA+Pj4+IGlmIHRoZSBtb2RlIGlzIGdvbm5hIGJlIHBydW5lZCA6cwo+ID4+ PiBUaGUgbW9kZSBsaXN0IHBydW5pbmcgaXNuJ3QgcmVsZXZhbnQgZm9yIG1vZGVlc2V0cywgdGhl IGtlcm5lbCBkb2Vzbid0Cj4gPj4+IHZhbGlkYXRlIHJlcXVlc3RlZCBtb2RlcyBhZ2FpbnN0IHRo YXQuIFRoZSBtb2RlIGxpc3QgaXMgcHVyZWx5IGZvcgo+ID4+PiB1c2Vyc3BhY2UncyBpbmZvcm1h dGlvbi4gV2hpY2ggbWVhbnMgdXBkYXRpbmcgaXQgb25seSB3aGVuIHVzZXJzcGFjZSBhc2tzCj4g Pj4+IGZvciBpdCBpcyBmaW5lLgo+ID4+Cj4gPj4gSG1tLCBvay4gRmFpciBlbm91Z2ghCj4gPj4K PiA+Pj4gSSBhbHNvIHRob3VnaHQgc29tZSBtb3JlIGFib3V0IHRoZSBsb29wIHdoZW4gd2UncmUg c3R1Y2sgb24gQkFELCBhbmQgSQo+ID4+PiB0aGluayBpdCBzaG91bGRuJ3QgaGFwcGVuOiBXaGVu IHRoZSBsaW5rIGdvZXMgQkFEIHdlIHVwZGF0ZSB0aGUgbGluawo+ID4+PiBwYXJhbWV0ZXIgdmFs dWVzIHRvIHRoZSBuZXcgbGltaXRzLCBhbmQgdGhlIGtlcm5lbCB3aWxsIHJlamVjdCBhbnkgbW9k ZQo+ID4+PiB0aGF0IHdvbid0IGZpdCBhbnltb3JlLiBPZiBjb3Vyc2UgeW91IG1pZ2h0IGJlIHVu bHVja3ksIGFuZCB0aGUgbmV3IGxpbmsKPiA+Pj4gbGltaXRzIGFyZSBhbHNvIG5vdCB3b3JraW5n LCBidXQgZXZlbnR1YWxseSB5b3UncmUgc3R1Y2sgYXQgdGhlICJ5b3UncmUKPiA+Pj4gbGluayBp cyBicm9rZW4sIHNyeSIgc3RhZ2UsIHdoZXJlIHRoZSBrZXJuZWwgcmVqZWN0cyBldmVyeXRoaW5n IDotKQo+ID4+Pgo+ID4+PiBTbyBJIHRoaW5rIHRoZSBidXN5LWxvb3AgaGFzIHN0cmljdGx5IGEg bGltaXRlZCBhbW91bnQgb2YgdGltZSB1bnRpbCBpdAo+ID4+PiBydW5zIG91dCBvZiBzdGVhbS4K PiA+Pgo+ID4+IE9LLCBJIGhhdmUgZ2l2ZW4gaXQgbW9yZSB0aG91Z2h0cyBhbmQgZGlzY3Vzc2Vk IHdpdGggVmlsbGUgYW5kIENocmlzIElSTCBvcgo+ID4+IG9uIElSQy4KPiA+Pgo+ID4+IE15IGN1 cnJlbnQgcHJvcG9zYWwgaXMgYmFzZWQgb24gdGhlIGlkZWEgdGhhdCB0aGUga2VybmVsIHNob3Vs ZCByZWplY3QgYQo+ID4+IG1vZGUKPiA+PiBpdCBrbm93cyBpdCBjYW5ub3Qgc2V0LiBUaGlzIGlz IGFscmVhZHkgbGFyZ2VseSB0ZXN0ZWQgaW4gcmVhbCBsaWZlOiBUcnkKPiA+PiBzZXR0aW5nIDRL QDYwSHogb24gYW4gSERNSSAxLnggbW9uaXRvciwgaXQgc2hvdWxkIGltbWVkaWF0ZWx5IGZhaWwg b24KPiA+PiBwcmVwYXJlKCkuIEZvciB0aGlzIHByb3Bvc2FsIHRvIHdvcmssIHdlIHdvdWxkIG5l ZWQgdG8gcHV0IGluIHRoZSBBQkkKPiA+PiB0aGF0IGEKPiA+PiBkcml2ZXIgdGhhdCBzZXRzIHRo ZSBsaW5rLXN0YXR1cyB0byBCQUQgc2hvdWxkIGFsc28gbWFrZSBzdXJlIHRoYXQgd2hhdGV2ZXIK PiA+PiB0aGUgdXNlcnNwYWNlIGRvZXMsIG5vIGluZmluaXRlIGxvb3Agc2hvdWxkIGJlIGNyZWF0 ZWQgKGJ5IGNoYW5naW5nIHRoZQo+ID4+IG1heGltdW0gbGluayBjaGFyYWN0ZXJpc3RpY3MgYmVm b3JlIHNldHRpbmcgdGhlIGxpbmstc3RhdHVzIHByb3BlcnR5KS4KPiA+Pgo+ID4+IFJlLXByb2Jp bmcgdGhlIGxpc3Qgb2YgbW9kZXMgYW5kIGNoZWNraW5nIGlmIHRoZSBtb2RlIGlzIHN0aWxsIGlu IHRoZXJlIGlzCj4gPj4gaW5oZXJlbnRseSByYWN5LCBhcyBhIG5ldyBzY3JlZW4gbWF5IGJlIHBs dWdnZWQgYmV0d2VlbiB0aGUgbW9tZW50IHRoZSBsaXN0Cj4gPj4gaXMgc2VudCB0byB0aGUgdXNl cnNwYWNlIGFuZCB0aGUgbW9tZW50IHdoZW4gd2UgdHJ5IHNldHRpbmcgdGhlIG1vZGUuIE9yCj4g Pj4gdGhlCj4gPj4gREUgbWF5IGFsc28gaGF2ZSBjaGFuZ2VkIHRoZSBtb2RlIGluIHRoZSBtZWFu IHRpbWUgYW5kIHRoZSBrZXJuZWwgd291bGQKPiA+PiBoYXZlIHJlZHVjZWQgdGhlIGxpbWl0cyBl dmVuIG1vcmUuIFNvLCB0aGUgdXNlcnNwYWNlIGNhbm5vdCBiZSBleHBlY3RlZCB0bwo+ID4+IGFs d2F5cyBkbyB0aGUgcmlnaHQgdGhpbmcgaGVyZSA6cy4KPiA+Pgo+ID4+IEZyb20gdGhpcyBwb2lu dCBvZiB2aWV3LCBJIHJlYWxseSBkbyBub3QgbGlrZSB0aGUgaWRlYSBvZiByZS1wcm9iaW5nLCBz aW5jZQo+ID4+IGl0IGluY3JlYXNlcyB0aGUgZGVsYXkgYmVmb3JlIHRoZSBERSBjYW4gaGFuZGxl IHRoZSBjaGFuZ2UgYW5kIGl0IGRvZXMgbm90Cj4gPj4gYnJpbmcgYW55IGd1YXJhbnRlZSBvZiB3 b3JraW5nIHByb3Blcmx5Lgo+ID4+Cj4gPj4gRGlkIEkgbWlzcyBhbnl0aGluZz8gQW55IG9waW5p b25zPwo+ID4KPiA+IEFueSBjb21tZW50cyBvbiB0aGlzLCBFcmljPyBEb2VzIGl0IHNvdW5kIGxv Z2ljYWwgdG8geW91IG9yIGRpZCBJIG1pc3MgCj4gPiBzb21ldGhpbmc/Cj4gPgo+ID4gVGhlIGtl cm5lbCBwYXRjaGVzIGFyZSBzdHVjayB1bnRpbCB0aGlzIHBhdGNoIGdldHMgaW4uIFNvIGZhciwg eW91IGxvb2sgCj4gPiBsaWtlIHRoZSBvbmx5IHBlcnNvbiB3aG8gd291bGQgYmUgd2lsbGluZyB0 byByZXZpZXcgdGhpcyBwYXRjaCAoQWpheCAKPiA+IGFja2VkIHRoZSBwYXRjaCwgYnV0IHRoYXQn cyB0aGUgZXh0ZW50IGhlIHdhcyB3aWxsaW5nIHRvIGdvKS4KPiAKPiBJIHdhcyBqdXN0IHRyeWlu ZyB0byBwcm92aWRlIHJldmlldyB0byBnZXQgdGhlIGtlcm5lbCB1bnN0dWNrLiAgVGhlCj4ga2Vy bmVsIHNob3VsZCBub3QgYmUgYmxvY2tlZCB1bnRpbCB0aGUgcGF0Y2ggZ2V0cyBsYW5kcyAodGhp cyBvYnZpb3VzbHkKPiBpc24ndCB0aGUgY2FzZSB3aXRoIGlvY3Rscywgd2hpY2ggKmRvbid0KiBs YW5kIGluIHVzZXJzcGFjZSB1bnRpbCBrZXJuZWwKPiBkb2VzKSwgeW91IGp1c3QgbmVlZCB1c2Vy c3BhY2UgcHVibGlzaGVkIGFuZCBnZW5lcmFsbHkgYWdyZWVkIHRoYXQgdGhlCj4gQUJJIHdvcmtz LgoKVGhhbmtzIEVyaWMuIEkgYWdyZWUgc28gaWYgd2UgaGF2ZSBhIGNvbnNlbnN1cyBmcm9tIHlv dSBhbmQgQWpheCBvbiB0aGlzCmRlc2lnbiwgY2FuIHdlIG1vdmUgZm9yd2FyZCB3aXRoIGdldHRp bmcgdGhlIGtlcm5lbCBwYXRjaGVzIG1lcmdlZD8KCldlIGFscmVhZHkgaGF2ZSBjb25zZW5zdXMg ZnJvbSBrZXJuZWwgZm9sa3MgYXMgd2VsbCBhcyBBamF4LCAKRG8gd2UgaGF2ZSB5b3VyIEFDSyBv biB0aGlzPwoKUmVnYXJkcwpNYW5hc2kKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==