From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v7 1/6] drm/i915: Fallback to lower link rate and lane count during link training Date: Thu, 29 Sep 2016 16:17:06 -0700 Message-ID: <20160929231706.GE19006@intel.com> References: <1474051514-5811-1-git-send-email-manasi.d.navare@intel.com> <87twd2kcfd.fsf@intel.com> <20160927152502.GA18889@intel.com> <8737klp8zu.fsf@intel.com> <20160929064150.GA13161@intel.com> <8737kjlzfr.fsf@intel.com> <20160929114419.GG28107@nuc-i3427.alporthouse.com> <20160929151054.GP4329@intel.com> <87eg42671g.fsf@intel.com> <20160929160501.GA14141@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id C03446E93E for ; Thu, 29 Sep 2016 23:16:23 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20160929160501.GA14141@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMjksIDIwMTYgYXQgMDk6MDU6MDFBTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBUaHUsIFNlcCAyOSwgMjAxNiBhdCAwNjo0ODo0M1BNICswMzAwLCBKYW5pIE5p a3VsYSB3cm90ZToKPiA+IE9uIFRodSwgMjkgU2VwIDIwMTYsIFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gPiBPbiBUaHUsIFNlcCAyOSwg MjAxNiBhdCAxMjo0NDoxOVBNICswMTAwLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPiA+PiBPbiBU aHUsIFNlcCAyOSwgMjAxNiBhdCAwMjoyNjoxNlBNICswMzAwLCBKYW5pIE5pa3VsYSB3cm90ZToK PiA+ID4+ID4gT24gVGh1LCAyOSBTZXAgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2 YXJlQGludGVsLmNvbT4gd3JvdGU6Cj4gPiA+PiA+ID4gT24gVHVlLCBTZXAgMjcsIDIwMTYgYXQg MDg6MDc6MDFQTSArMDMwMCwgSmFuaSBOaWt1bGEgd3JvdGU6Cj4gPiA+PiA+ID4+IE9uIFR1ZSwg MjcgU2VwIDIwMTYsIE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+IHdy b3RlOgo+ID4gPj4gPiA+PiA+IE9uIE1vbiwgU2VwIDI2LCAyMDE2IGF0IDA0OjM5OjM0UE0gKzAz MDAsIEphbmkgTmlrdWxhIHdyb3RlOgo+ID4gPj4gPiA+PiA+PiBPbiBGcmksIDE2IFNlcCAyMDE2 LCBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPiB3cm90ZToKPiA+ID4+ ID4gPj4gPj4gPiBBY2NvcmRpbmcgdG8gdGhlIERpc3BsYXlQb3J0IFNwZWMsIGluIGNhc2Ugb2Yg Q2xvY2sgUmVjb3ZlcnkgZmFpbHVyZQo+ID4gPj4gPiA+PiA+PiA+IHRoZSBsaW5rIHRyYWluaW5n IHNlcXVlbmNlIHNob3VsZCBmYWxsIGJhY2sgdG8gdGhlIGxvd2VyIGxpbmsgcmF0ZQo+ID4gPj4g PiA+PiA+PiA+IGZvbGxvd2VkIGJ5IGxvd2VyIGxhbmUgY291bnQgdW50aWwgQ1Igc3VjY2VlZHMu Cj4gPiA+PiA+ID4+ID4+ID4gT24gQ1Igc3VjY2VzcywgdGhlIHNlcXVlbmNlIHByb2NlZWRzIHdp dGggQ2hhbm5lbCBFUS4KPiA+ID4+ID4gPj4gPj4gPiBJbiBjYXNlIG9mIENoYW5uZWwgRVEgZmFp bHVyZXMsIGl0IHNob3VsZCBmYWxsYmFjayB0bwo+ID4gPj4gPiA+PiA+PiA+IGxvd2VyIGxpbmsg cmF0ZSBhbmQgbGFuZSBjb3VudCBhbmQgc3RhcnQgdGhlIENSIHBoYXNlIGFnYWluLgo+ID4gPj4g PiA+PiA+PiAKPiA+ID4+ID4gPj4gPj4gVGhpcyBjaGFuZ2UgbWFrZXMgdGhlIGxpbmsgdHJhaW5p bmcgc3RhcnQgYXQgdGhlIG1heCBsYW5lIGNvdW50IGFuZCBtYXgKPiA+ID4+ID4gPj4gPj4gbGlu ayByYXRlLiBUaGlzIGlzIG5vdCBpZGVhbCwgYXMgaXQgd2FzdGVzIHRoZSBsaW5rLiBBbmQgaXQg aXMgbm90IGEKPiA+ID4+ID4gPj4gPj4gc3BlYyByZXF1aXJlbWVudC4gIlRoZSBMaW5rIFBvbGlj eSBNYWtlciBvZiB0aGUgdXBzdHJlYW0gZGV2aWNlIG1heQo+ID4gPj4gPiA+PiA+PiBjaG9vc2Ug YW55IGxpbmsgY291bnQgYW5kIGxpbmsgcmF0ZSBhcyBsb25nIGFzIHRoZXkgZG8gbm90IGV4Y2Vl ZCB0aGUKPiA+ID4+ID4gPj4gPj4gY2FwYWJpbGl0aWVzIG9mIHRoZSBEUCByZWNlaXZlci4iCj4g PiA+PiA+ID4+ID4+IAo+ID4gPj4gPiA+PiA+PiBPdXIgY3VycmVudCBjb2RlIHN0YXJ0cyBhdCB0 aGUgbWluaW11bSByZXF1aXJlZCBiYW5kd2lkdGggZm9yIHRoZSBtb2RlLAo+ID4gPj4gPiA+PiA+ PiB0aGVyZWZvcmUgd2UgY2FuJ3QgZmFsbCBiYWNrIHRvIGxvd2VyIGxpbmsgcmF0ZSBhbmQgbGFu ZSBjb3VudCB3aXRob3V0Cj4gPiA+PiA+ID4+ID4+IHJlZHVjaW5nIHRoZSBtb2RlLgo+ID4gPj4g PiA+PiA+PiAKPiA+ID4+ID4gPj4gPj4gQUZBSUNUIHRoaXMgcGF0Y2ggaGVyZSBtYWtlcyBpdCBw b3NzaWJsZSBmb3IgdGhlIGxpbmsgYmFuZHdpZHRoIHRvIGRyb3AKPiA+ID4+ID4gPj4gPj4gYmVs b3cgd2hhdCBpcyByZXF1aXJlZCBmb3IgdGhlIG1vZGUuIFRoaXMgaXMgdW5hY2NlcHRhYmxlLgo+ ID4gPj4gPiA+PiA+PiAKPiA+ID4+ID4gPj4gPj4gQlIsCj4gPiA+PiA+ID4+ID4+IEphbmkuCj4g PiA+PiA+ID4+ID4+IAo+ID4gPj4gPiA+PiA+Pgo+ID4gPj4gPiA+PiA+Cj4gPiA+PiA+ID4+ID4g VGhhbmtzIEphbmkgZm9yIHlvdXIgcmV2aWV3IGNvbW1lbnRzLgo+ID4gPj4gPiA+PiA+IFllcyBp biB0aGlzIGNoYW5nZSB3ZSBzdGFydCBhdCB0aGUgbWF4IGxpbmsgcmF0ZSBhbmQgbGFuZSBjb3Vu dC4gVGhpcwo+ID4gPj4gPiA+PiA+IGNoYW5nZSB3YXMgbWFkZSBhY2NvcmRpbmcgdG8gdGhlIGRl c2lnbiBkb2N1bWVudCBkaXNjdXNzaW9ucyB3ZSBoYWQKPiA+ID4+ID4gPj4gPiBiZWZvcmUgc3Ry YXRpbmcgdGhpcyBEUCBSZWRlc2lnbiBwcm9qZWN0LiBUaGUgbWFpbiByZWFzb24gZm9yIHN0YXJ0 aW5nCj4gPiA+PiA+ID4+ID4gYXQgdGhlIG1heGxpbmsgcmF0ZSBhbmQgbWF4IGxhbmUgY291bnQg d2FzIGZvciBlbnN1cmluZyBwcm9wZXIKPiA+ID4+ID4gPj4gPiBiZWhhdmlvciBvZiBEUCBNU1Qu IEluIGNhc2Ugb2YgRFAgTVNULCB3ZSB3YW50IHRvIHRyYWluIHRoZSBsaW5rIGF0Cj4gPiA+PiA+ ID4+ID4gdGhlIG1heGltdW0gc3VwcG9ydGVkIGxpbmsgcmF0ZS9sYW5lIGNvdW50IGJhc2VkIG9u IGFuIGVhcmx5LyB1cGZyb250Cj4gPiA+PiA+ID4+ID4gbGluayB0cmFpbmluZyByZXN1bHQgc28g dGhhdCB3ZSBkb250IGZhaWwgd2hlbiB3ZSB0cnkgdG8gY29ubmVjdCBhCj4gPiA+PiA+ID4+ID4g aGlnaGVyIHJlc29sdXRpb24gbW9uaXRvciBhcyBhIHNlY29uZCBtb25pdG9yLiBUaGlzIGEgdHJh ZGUgb2ZmCj4gPiA+PiA+ID4+ID4gYmV0d2VlbiB3c3RpbmcgdGhlIGxpbmsgb3IgaGlnaGVyIHBv d2VyIHZzLiBuZWVkaW5nIHRvIHJldHJhaW4gZm9yCj4gPiA+PiA+ID4+ID4gZXZlcnkgbW9uaXRv ciB0aGF0IHJlcXVlc3RzIGEgaGlnaGVyIEJXIGluIGNhc2Ugb2YgRFAgTVNULgo+ID4gPj4gPiA+ PiAKPiA+ID4+ID4gPj4gV2UgYWxyZWFkeSB0cmFpbiBhdCBtYXggYmFuZHdpZHRoIGZvciBEUCBN U1QsIHdoaWNoIHNlZW1zIHRvIGJlIHRoZQo+ID4gPj4gPiA+PiBzZW5zaWJsZSB0aGluZyB0byBk by4KPiA+ID4+ID4gPj4gCj4gPiA+PiA+ID4+ID4gQWN0dWFsbHkgdGhpcyBpcyBhbHNvIHRoZSBy ZWFzb24gZm9yIGVuYWJsaW5nIHVwZnJvbnQgbGluayB0cmFpbmluZyBpbgo+ID4gPj4gPiA+PiA+ IHRoZSBmb2xsb3dpbmcgcGF0Y2ggd2hlcmUgd2UgdHJhaW4gdGhlIGxpbmsgbXVjaCBhaGVhZCBp biB0aGUgbW9kZXNldAo+ID4gPj4gPiA+PiA+IHNlcXVlbmNlIHRvIHVuZGVyc3RhbmQgdGhlIGxp bmsgcmF0ZSBhbmQgbGFuZSBjb3VudCB2YWx1ZXMgYXQgd2hpY2gKPiA+ID4+ID4gPj4gPiB0aGUg bGluayBjYW4gYmUgc3VjY2Vzc2Z1bGx5IHRyYWluZWQgYW5kIHRoZW4gdGhlIGxpbmsgdHJhaW5p bmcKPiA+ID4+ID4gPj4gPiB0aHJvdWdoIG1vZGVzZXQgd2lsbCBhbHdheXMgc3RhcnQgYXQgdGhl IHVwZnJvbnQgdmFsdWVzIChtYXhpbXVtCj4gPiA+PiA+ID4+ID4gc3VwcG9ydGVkIHZhbHVlcyBv ZiBsYW5lIGNvdW50IGFuZCBsaW5rIHJhdGUgYmFzZWQgb24gdXBmcm9udCBsaW5rCj4gPiA+PiA+ ID4+ID4gdHJhaW5pbmcpLgo+ID4gPj4gPiA+PiAKPiA+ID4+ID4gPj4gSSBkb24ndCBzZWUgYSBu ZWVkIHRvIGRvIHRoaXMgZm9yIERQIFNTVC4KPiA+ID4+ID4gPj4gCj4gPiA+PiA+ID4+ID4gQXMg cGVyIHRoZSBDVFMsIGFsbCB0aGUgdGVzdCA0LjMuMS40IHJlcXVpcmVzIHRoYXQgeW91IGZhbGwg YmFjayB0bwo+ID4gPj4gPiA+PiA+IHRoZSBsb3dlciBsaW5rIHJhdGUgYWZ0ZXIgdHJ5aW5nIHRv IHRyYWluIGF0IHRoZSBtYXhpbXVtIGxpbmsgcmF0ZQo+ID4gPj4gPiA+PiA+IGFkdmVydGlzZWQg dGhyb3VnaCB0aGUgRFBDRCByZWdpc3RlcnMuCj4gPiA+PiA+ID4+IAo+ID4gPj4gPiA+PiBUaGF0 IHRlc3QgZG9lcyBub3QgcmVxdWlyZSB0aGUgc291cmNlIERVVCB0byBkZWZhdWx0IHRvIG1heGlt dW0gbGFuZQo+ID4gPj4gPiA+PiBjb3VudCBvciBsaW5rIHJhdGUgb2YgdGhlIHNpbmsuIFRoZSBz b3VyY2UgbWF5IGZyZWVseSBjaG9vc2UgdGhlIGxhbmUKPiA+ID4+ID4gPj4gY291bnQgYW5kIGxp bmsgcmF0ZSBhcyBsb25nIGFzIHRoZXkgZG9uJ3QgZXhjZWVkIHNpbmsgY2FwYWJpbGl0aWVzLgo+ ID4gPj4gPiA+PiAKPiA+ID4+ID4gPj4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGUgdGVzdCwgdGhl IHRlc3Qgc2V0dXAgY2FuIHJlcXVlc3Qgc3BlY2lmaWMKPiA+ID4+ID4gPj4gcGFyYW1ldGVycyB0 byBiZSB1c2VkLCBidXQgdGhhdCBkb2VzIG5vdCBtZWFuIHVzaW5nIG1heGltdW0gYnkKPiA+ID4+ ID4gPj4gKmRlZmF1bHQqLgo+ID4gPj4gPiA+PiAKPiA+ID4+ID4gPj4gV2UgY3VycmVudGx5IGxh Y2sgdGhlIGZlYXR1cmUgdG8gcmVkdWNlIGxhbmUgY291bnQgYW5kIGxpbmsgcmF0ZS4gVGhlCj4g PiA+PiA+ID4+IGtleSB0byB1bmRlcnN0YW5kIGhlcmUgaXMgdGhhdCBzdGFydGluZyBhdCBtYXgg YW5kIHJlZHVjaW5nIGRvd24gdG8gdGhlCj4gPiA+PiA+ID4+IHN1ZmZpY2llbnQgcGFyYW1ldGVy cyBmb3IgdGhlIG1vZGUgKHdoaWNoIGlzIHdoZXJlIHdlIHN0YXJ0IG5vdykgb2ZmZXJzCj4gPiA+ PiA+ID4+IG5vIHJlYWwgYmVuZWZpdCBmb3IgYW55IHVzZSBjYXNlLiBXaGF0IHdlJ3JlIGxhY2tp bmcgaXMgYSBmZWF0dXJlIHRvCj4gPiA+PiA+ID4+IHJlZHVjZSB0aGUgbGluayBwYXJhbWV0ZXJz ICpiZWxvdyogd2hhdCdzIHJlcXVpcmVkIGJ5IHRoZSBtb2RlIHRoZQo+ID4gPj4gPiA+PiB1c2Vy c3BhY2Ugd2FudHMuIFRoaXMgY2FuIG9ubHkgYmUgYWNoaWV2ZWQgdGhyb3VnaCBjb29wZXJhdGlv biB3aXRoCj4gPiA+PiA+ID4+IHVzZXJzcGFjZS4KPiA+ID4+ID4gPj4gCj4gPiA+PiA+ID4KPiA+ ID4+ID4gPiBXZSBjYW4gdHJhaW4gYXQgdGhlIG9wdGltYWwgbGluayByYXRlIHJlcXVpcmVkIGZv ciB0aGUgcmVxdWVzdGVkIG1vZGUgYXMKPiA+ID4+ID4gPiBkb25lIGluIHRoZSBleGlzdGluZyBp bXBsZW1lbnRhdGlvbiBhbmQgcmV0cmFpbiB3aGVuZXZlciB0aGUgbGluayB0cmFpbmluZwo+ID4g Pj4gPiA+IHRlc3QgcmVxdWVzdCBpcyBzZW50LiAKPiA+ID4+ID4gPiBGb3IgdGhlIHRlc3QgNC4z LjEuNCBpbiBDVFMsIGl0IGRvZXMgZm9yY2UgYSBmYWlsdXJlIGluIENSIGFuZCBleHBlY3RzIHRo ZQo+ID4gPj4gPiA+IGRyaXZlciB0byBmYWxsIGJhY2sgdG8gZXZlbiBsb3dlciBsaW5rIHJhdGUu IFdlIGRvIG5vdCBpbXBsZW1lbnQgdGhpcyBpbiB0aGUKPiA+ID4+ID4gPiBjdXJyZW50IGRyaXZl ciBhbmQgc28gdGhpcyB0ZXN0IGZhaWxzLiBDb3VsZCB5b3UgZWxhYm9yYXRlIG9uIGhvdyB0aGlz IGNhbgo+ID4gPj4gPiA+IGJlIGFjaGlldmVkIHdpdGggdGhlIHRoZSBjb29wZXJhdGlvbiB3aXRo IHVzZXJzcGFjZT8KPiA+ID4+ID4gPiBTaG91bGQgd2Ugc2VuZCBhIHVldmVudCB0byB0aGUgdXNl cnNwYWNlIGFza2luZyB0byByZXRyeSBhdCBhIGxvd2VyIHJlc29sdXRpb24KPiA+ID4+ID4gPiBh ZnRlciByZXRyYWluaW5nIGF0IHRoZSBsb3dlciBsaW5rIHJhdGU/Cj4gPiA+PiA+ID4gVGhpcyBp cyBwZXJ0dHkgbXVjaCB0aGUgcGxhY2Ugd2hlcmUgbWFqb3JpdHkgb2YgdGhlIGNvbXBsaWFuY2Ug dGVzdHMgYXJlIGZhaWxpbmcuCj4gPiA+PiA+ID4gSG93IGNhbiB3ZSBwYXNzIGNvbXBsaWFuY2Ug d2l0aCByZWdhcmRzIHRvIHRoaXMgZmVhdHVyZT8KPiA+ID4+ID4gCj4gPiA+PiA+IFNvIGhlcmUn cyBhbiBpZGVhIFZpbGxlIGFuZCBJIGNhbWUgdXAgd2l0aC4gSXQncyBub3QgY29tcGxldGVseSB0 aG91Z2h0Cj4gPiA+PiA+IG91dCB5ZXQsIHByb2JhYmx5IGhhcyBzb21lIHdyaW5rbGVzIHN0aWxs LCBidXQgdGhlbiB0aGVyZSBhcmUgd3JpbmtsZXMKPiA+ID4+ID4gd2l0aCB0aGUgdXBmcm9udCBs aW5rIHRyYWluaW5nIHRvbyAoSSdsbCBnZXQgYmFjayB0byB0aG9zZSBzZXBhcmF0ZWx5KS4KPiA+ ID4+ID4gCj4gPiA+PiA+IElmIGxpbmsgdHJhaW5pbmcgZmFpbHMgZHVyaW5nIG1vZGVzZXQgKGVp dGhlciBmb3IgcmVhbCBvciBiZWNhdXNlIGl0J3MgYQo+ID4gPj4gPiB0ZXN0IHNpbmsgdGhhdCB3 YW50cyB0byB0ZXN0IGZhaWx1cmVzKSwgd2UgMSkgc3RvcmUgdGhlIGxpbmsgcGFyYW1ldGVycwo+ ID4gPj4gPiBhcyBmYWlsaW5nLCAyKSBzZW5kIGEgdWV2ZW50IHRvIHVzZXJzcGFjZSwgaG9wZWZ1 bGx5IGdldHRpbmcgdGhlCj4gPiA+PiA+IHVzZXJzcGFjZSB0byBkbyBhbm90aGVyIGdldCBtb2Rl cyBhbmQgdHJ5IGFnYWluLCAzKSBwcm9wYWdlIGVycm9ycyBmcm9tCj4gPiA+PiA+IG1vZGVzZXQu Cj4gPiA+PiAKPiA+ID4+IHVzZXJzcGFjZSBhbHJlYWR5IHRyaWVzIHRvIGRvIGEgcmVwcm9iZSBh ZnRlciBhIHNldGNydGMgZmFpbHMsIHRvIHRyeQo+ID4gPj4gYW5kIGdyYWNlZnVsbHkgaGFuZGxl IHRoZSByYWNlIGJldHdlZW4gaG90cGx1ZyBiZWluZyBpbiBpdHMgZXZlbnQgcXVldWUKPiA+ID4+ IGFuZCBwZXJmb3JtaW5nIHNldGNydGMsIGkuZS4gSSB0aGluayB0aGUgZXJyb3IgaXMgZW5vdWdo Lgo+ID4gPgo+ID4gPiBJIHByZXN1bWUgd2Ugd2FudCB0aGUgbW9kZXNldCB0byBiZSBhc3luYywg c28gYnkgdGhlIHRpbWUgd2Ugbm90aWNlIHRoZQo+ID4gPiBwcm9ibGVtIHdlJ3JlIG5vIGxvbmdl ciBpbiB0aGUgaW9jdGwuCj4gPiAKPiA+IElPVywgd2UnbGwganVzdCBuZWVkIHRvIHNlbmQgdGhl IGhvdHBsdWcgdWV2ZW50IGFueXdheS4KPiA+IAo+ID4gQlIsCj4gPiBKYW5pLgo+ID4KPiAKPiBJ IGFtIGdvaW5nIHRvIHRyeSB0byBpbXBsZW1lbnQgYSB0aGUgY29kZSB3aGVyZSBpZiB3ZWZhaWwg bGluayB0cmFpbmluZyBhdCBhIAo+IHBhcnRpY3VsYXIgbGluayByYXRlIHRoZW4gaSBzZW5kIHRo ZSB1ZXZlbnQgdG8gdGhlIHVzZXJzcGFjZSBzYXZpbmcgb2ZmIHRoZQo+IHZhbHVlcyBhdCB3aGlj aCB0aGVsaW5rIHRyYWluaW5nIGZhaWxlZCBzbyB0aGF0IHRoZXNlIHZhbHVlcyBjYW4gYmUgdXNl ZCBpbiB0aGUgbmV4dAo+IGF0dGVtcHQgb2YgdGhlIG1vZGVzZXQgdG8gcHJ1bmUgdGhlIG1vZGVz IGFjY29yZGluZ2x5IGFuZCBsaW5rIHRyYWluaW5nIHNob3VsZCBiZQo+IHRyaWVkIGluIHRoYXQg YXR0ZW1wdCB3aXRoIHRoZSBsb3dlciBsaW5rIHJhdGUuIFRoZSBob3BlIGlzIHRoYXQgdGhpcyB3 aWxsIG1ha2UgdGhlCj4gY29tcGxpYW5jZSB0ZXN0IDQuMy4xLjQgaGFwcHkuCj4gCj4gUmVnYXJk cwo+IE1hbmFzaQoKVGhpcyBpcyB3aGF0IEkgYW0gZG9pbmcgd2hlbiB3ZSBnZXQgYSB0ZXN0IHJl cXVlc3QgdG8gdHJhaW4gYXQgYSBwYXJ0aWN1bGFyIHJhdGU6CmlmICgoaW50ZWxfZHAtPmNvbXBs aWFuY2VfdGVzdF90eXBlID09IERQX1RFU1RfTElOS19UUkFJTklORykpIHsKICAgICAgICAgICAg ICAgICAgICAgICAgaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJtX2RwX2J3X2NvZGVfdG9f bGlua19yYXRlKGludGVsX2RwLT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGlhbmNlX3Rlc3Rf bGlua19yYXRlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfbGFuZV9jb3VudCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKICAgICAgICAgICAgICAg IAlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGludGVsX2VuY29kZXItPmJhc2UuZGV2KTsg Cgl9CgpJIHNlZSBpbiB0aGUgZG1lc2cgdGhhdCBpdCBzZW5kcyBhIGhvdHBsdWcgdWV2ZW50IHRv IHRoZSB1c2Vyc3BhY2UgdGhhdCB0cmlnZ2VycyBhIGRybV9zZXR1cF9jcnRjcygpCkJ1dCBpdCBm aW5kcyB0aGF0IHRoZSBjb25uZWN0b3IgaXMgYWxyZWFkeSBlbmFibGVkIGFuZCBoYXMgYSBDUlRD IHNvIGl0IGRvZXMgbm90IGdvIGFoZWFkIHdpdGggCmNvbXB1dGVfY29uZmlnLiBEbyB3ZSBuZWVk IHRvIGRpc2FibGUgdGhlIGNydGMgYW5kIHVwZGF0ZSB0aGUgYXRvbWljIHN0YXRlIGJlZm9yZSBn ZW5lcmF0aW5nCnRoaXMgdWV2ZW50PyBIb3cgY2FuIHRoaXMgYmUgZG9uZT8KCk1hbmFzaQoKPiA+ IC0tIAo+ID4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVy Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=