From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH] drm/i915: sync dp link status checks against atomic commmits Date: Wed, 8 Nov 2017 12:52:58 -0800 Message-ID: <20171108205256.GC10572@intel.com> References: <20171108105450.20339-2-daniel.vetter@ffwll.ch> <20171108125750.1663-1-daniel.vetter@ffwll.ch> <20171108130458.GA10981@intel.com> <20171108131146.2m3e4opmxgoaplb7@phenom.ffwll.local> <20171108132615.GB10981@intel.com> <20171108132823.ymycbii6aw4jkd65@phenom.ffwll.local> <20171108180930.GA12726@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20171108180930.GA12726@intel.com> 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: Daniel Vetter , Intel Graphics Development , DRI Development , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMDgsIDIwMTcgYXQgMTA6MDk6MzJBTSAtMDgwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBXZWQsIE5vdiAwOCwgMjAxNyBhdCAwMjoyODoyM1BNICswMTAwLCBEYW5pZWwg VmV0dGVyIHdyb3RlOgo+ID4gT24gV2VkLCBOb3YgMDgsIDIwMTcgYXQgMDM6MjY6MTVQTSArMDIw MCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiBPbiBXZWQsIE5vdiAwOCwgMjAxNyBhdCAw MjoxMTo0NlBNICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+IE9uIFdlZCwgTm92 IDA4LCAyMDE3IGF0IDAzOjA0OjU4UE0gKzAyMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+ ID4gPiA+IE9uIFdlZCwgTm92IDA4LCAyMDE3IGF0IDAxOjU3OjUwUE0gKzAxMDAsIERhbmllbCBW ZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gPiA+IFR3byBiaXRzOgo+ID4gPiA+ID4gPiAtIGNoZWNrIGFj dHVhbCBhdG9taWMgc3RhdGUsIHRoZSBsZWdhY3kgc3R1ZmYgY2FuIG9ubHkgYmUgbG9va2VkIGF0 Cj4gPiA+ID4gPiA+ICAgZnJvbSB3aXRoaW4gdGhlIGF0b21pY19jb21taXRfdGFpbCBmdW5jdGlv biwgc2luY2UgaXQncyBvbmx5Cj4gPiA+ID4gPiA+ICAgcHJvdGVjdGVkIGJ5IG9yZGVyaW5nIGFu ZCBub3QgYnkgYW55IGxvY2tzLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gLSBNYWtlIHN1cmUg d2UgZG9uJ3Qgd3JlYWsgdGhlIHdvcmsgYW4gb25nb2luZyBub25ibG9ja2luZyBjb21taXQgaXMK PiA+ID4gPiA+ID4gICBkb2luZy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gSSBzdGlsbCB0aGluayB3 ZSBuZWVkIHRvIG1vdmUgdGhlIHJldHJhaW5pbmcgdG8gdGhlIGhvdHBsdWcgd29yay4KPiA+ID4g PiAKPiA+ID4gPiBXaHk/IE9uZSBvZiB0aGUgcGF0Y2ggc2VyaWVzIE1hYXJ0ZW4gbWVudGlvbmVk IHNheXMgdGhlcmUncyBhIGRlYWRsb2NrCj4gPiA+ID4gd2l0aCBkcCBhdXgsIGJ1dCBpdCBzZWVt cyB0byBiZSBhbGwganVzdCBmaW5lIHdoZW4gQ0kgcmV0cmFpbnMuCj4gCj4gVGhpcyByZXRyYWlu aW5nIGhlcmUgd291bGQgYmUgbm90IGJlY2F1c2Ugb2YgdGhlIHRyYWluaW5nIGZhaWxpbmcgaW4g dGhlIGNvbW1pdCBidXQKPiB3aGVuIHdlIGdldCBhIHNob3J0IHB1bHNlIHJpZ2h0IHNvIHdoZW4g dGhlIGxpbmsgd2FzIGFscmVhZHkgdXAgYW5kIHJ1bm5pbmc/Cj4gCj4gPiA+IAo+ID4gPiBJIGd1 ZXNzIHRoZSBkZWFkbG9jayBpcyBwb3NzaWJsZSBvbmx5IHdpdGggTVNULCBtYXliZS4gQ3VycmVu dGx5IE1TVAo+ID4gPiBoYXMgaXQncyBvd24gY29weSBvZiB0aGUgcmV0cmFpbmluZyBjb2RlIHdp dGhvdXQgdGhlIGxvY2tzLgo+ID4gPiAKPiA+ID4gQXQgb25lIHBvaW50IEkgc3RhcnRlZCB0byBy ZXdyaXRlIHRoZSBlbnRpcmUgc2luayBpcnEgaGFuZGxpbmcgaW50byBhCj4gPiA+IG11Y2ggbmlj ZXIgc2hhcGUsIGFsc28gdW5pZnlpbmcgdGhlIGFwcHJvYWNoIGJldHdlZW4gTVNUIGFuZCBTU1Qu IElJUkMKPiA+ID4gSSBkaWQgc3RpbGwgbWFrZSB0aGUgbWlzdGFrZSBvZiBoYXZpbmcgc29tZSBr aW5kIG9mIGhpZ2hlciBsZXZlbCBNU1QKPiA+ID4gdnMuIFNTVCBzcGxpdCwgYnV0IEkgdGhpbmsg dGhlIHByb3BlciBzb2x1dGlvbiBpcyB0byBjb21iaW5lIHRoZSB0d28KPiA+ID4gYWxtb3N0IGVu dGlyZWx5LiBJIHRoaW5rIHdlIHNob3VsZCBldmVuIGJlIHVzaW5nIHRoZSBFU0kgcmVnaXN0ZXJz Cj4gPiA+IHdpdGggU1NUIGZvciBEUENEIDEuMisuIEN1cnJlbnRseSB3ZSB1c2UgRVNJIGZvciBN U1QgYW5kIG5vbi1FU0kgZm9yCj4gPiA+IFNTVC4gU2FkbHkgSSd2ZSBub3QgZm91bmQgdGhlIHRp bWUgdG8gY29udGludWUgdGhhdCB3b3JrIChzYW1lIHN0b3J5Cj4gPiA+IHdpdGggdGhlICJzaHV0 ZG93biBkaXNwbGF5cyBwcmlvciB0byByZWJvb3RpbmcgdG8ga2VlcCBEZWxsIE1TVAo+ID4gPiBt b25pdG9ycyB3b3JraW5nIiB0aGluZykuCj4gPiAKPiA+IFllYWgsIG1lcmdpbmcgc3N0IGFuZCBt c3QgbW9yZSBkZWZpbml0ZWx5IHNvdW5kcyBsaWtlIGEgZ29vZCBpZGVhLiBJJ3ZlCj4gPiBhbHNv IGJlZW4gdG95aW5nIHdpdGggaXQgc2luY2UgZm9yZXZlci4KPiA+IAo+ID4gPiA+IEFuZCBldmVu IGlmIHRoZXJlIGlzIGEgZGVhZGxvY2ssIGl0J3MgdGhlcmUgYWxyZWFkeSwgc28gbm90IHN1cmUg d2h5IHdlCj4gPiA+ID4gbmVlZCB0byBibG9jayB0aGlzIGJ1Z2ZpeCBvbiBhIGRpZmZlcmVudCBi dWdmaXguIFdoaWNoIHNlZW1zIHRvIGJlIHdoYXQKPiA+ID4gPiB5b3UncmUgc3VnZ2VzdGluZyBo ZXJlIChidXQgaXQncyBhIGJpdCBzcGFyc2UpLgo+ID4gPiAKPiA+ID4gSSBndWVzcyB3aGF0IEkn bSByZWFsbHkgc2F5aW5nIGlzIHRoYXQgd2Ugc2hvdWxkbid0IHN0b3AgaGVyZS4KPiA+IAo+ID4g RnVsbHkgYWdyZWVkLgo+ID4gLURhbmllbAo+ID4gCj4gPiA+IAo+ID4gPiA+IC1EYW5pZWwKPiA+ ID4gPiAKPiA+ID4gPiA+ID4gdjI6IFdlIG5lZWQgdGhlIGNydGMgbG9jayB0b28sIGJlY2F1c2Ug YSBwbGFuZSB1cGRhdGUgbWlnaHQgY2hhbmdlIGl0Cj4gPiA+ID4gPiA+IHdpdGhvdXQgaGF2aW5n IHRvIGFjcXVpcmUgdGhlIGNvbm5lY3Rpb25fbXV0ZXggKE1hYXJ0ZW4pLiBVc2UKPiA+ID4gPiA+ ID4gTWFhcnRlbidzIGNoYW5nZXMgZm9yIHRoaXMgbG9ja2luZywgd2hpbGUga2VlcGluZyB0aGUg bG9naWMgdGhhdCB1c2VzCj4gPiA+ID4gPiA+IHRoZSBjb25uZWN0aW9uLT5jb21taXQtPmh3X2Rv bmUgc2lnbmFsIGZvciBzeW5jaW5nIHdpdGggbm9uYmxvY2tpbmcKPiA+ID4gPiA+ID4gY29tbWl0 cy4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IENjOiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5u YXZhcmVAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+ID4gQ2M6IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gPiA+IFJlZmVyZW5j ZXM6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzMzNgo+ ID4gPiA+ID4gPiBCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9OTkyNzIKPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8 ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyB8IDU2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCj4gPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgNTAgaW5zZXJ0 aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gPiBpbmRleCBkMjdjMDE0NWFjOTEuLjdjZDdhYjRmYjQz MSAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ ID4gPiA+IEBAIC00MzE5LDYgKzQzMTksOCBAQCBzdGF0aWMgdm9pZAo+ID4gPiA+ID4gPiAgaW50 ZWxfZHBfY2hlY2tfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4g PiA+ID4gIHsKPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl ciA9ICZkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2U7Cj4gCj4gSSBkb250IHRoaW5rIHdl IG5lZWQgaW50ZWxfZW5jb2RlciwgY2FuIHdlIHJlbW92ZSB0aGlzPwo+IAo+IE1hbmFzaQo+CgpT b3JyeSBkaWRudCByZWFsaXplIHdlIHN0aWxsIG5lZWQgdG8gdXNlIGludGVsX2VuY29kZXIgaW4g dGhlIERSTV9ERUJVR19LTVMuCgpNYW5hc2kKIAo+ID4gPiA+ID4gPiArCXN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlID0KPiA+ID4gPiA+ID4gKwkJaW50ZWxfZHAtPmF0dGFj aGVkX2Nvbm5lY3Rvci0+YmFzZS5zdGF0ZTsKPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+ID4gPiA+ID4gIAl1OCBsaW5r X3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXTsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiBA QCAtNDMyOSwxMCArNDMzMSwxNSBAQCBpbnRlbF9kcF9jaGVja19saW5rX3N0YXR1cyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiA+ID4gPiAgCQlyZXR1cm47Cj4gPiA+ID4gPiA+ICAJ fQo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+IC0JaWYgKCFpbnRlbF9lbmNvZGVyLT5iYXNlLmNy dGMpCj4gPiA+ID4gPiA+ICsJaWYgKCFjb25uX3N0YXRlLT5jcnRjKQo+ID4gPiA+ID4gPiAgCQly ZXR1cm47Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gLQlpZiAoIXRvX2ludGVsX2NydGMoaW50 ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKS0+YWN0aXZlKQo+ID4gPiA+ID4gPiArCVdBUk5fT04oIWRy bV9tb2Rlc2V0X2lzX2xvY2tlZCgmY29ubl9zdGF0ZS0+Y3J0Yy0+bXV0ZXgpKTsKPiA+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gPiArCWlmICghY29ubl9zdGF0ZS0+Y3J0Yy0+c3RhdGUtPmFjdGl2ZSkK PiA+ID4gPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJaWYgKCF0 cnlfd2FpdF9mb3JfY29tcGxldGlvbigmY29ubl9zdGF0ZS0+Y29tbWl0LT5od19kb25lKSkKPiA+ ID4gPiA+ID4gIAkJcmV0dXJuOwo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICAJLyoKPiA+ID4g PiA+ID4gQEAgLTQzNjgsNyArNDM3NSw2IEBAIGludGVsX2RwX2NoZWNrX2xpbmtfc3RhdHVzKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiA+ID4gPiA+ICBzdGF0aWMgYm9vbAo+ID4gPiA+ ID4gPiAgaW50ZWxfZHBfc2hvcnRfcHVsc2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxf ZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciA9ICZkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2U7Cj4gPiA+ID4g PiA+ICAJdTggc2lua19pcnFfdmVjdG9yID0gMDsKPiA+ID4gPiA+ID4gIAl1OCBvbGRfc2lua19j b3VudCA9IGludGVsX2RwLT5zaW5rX2NvdW50Owo+ID4gPiA+ID4gPiBAQCAtNDQwOCw5ICs0NDE0 LDggQEAgaW50ZWxfZHBfc2hvcnRfcHVsc2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ ID4gPiA+ID4gIAkJCURSTV9ERUJVR19EUklWRVIoIkNQIG9yIHNpbmsgc3BlY2lmaWMgaXJxIHVu aGFuZGxlZFxuIik7Cj4gPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+IC0J ZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxM KTsKPiA+ID4gPiA+ID4gIAlpbnRlbF9kcF9jaGVja19saW5rX3N0YXR1cyhpbnRlbF9kcCk7Cj4g PiA+ID4gPiA+IC0JZHJtX21vZGVzZXRfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rp b25fbXV0ZXgpOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICAJaWYgKGludGVsX2RwLT5jb21w bGlhbmNlLnRlc3RfdHlwZSA9PSBEUF9URVNUX0xJTktfVFJBSU5JTkcpIHsKPiA+ID4gPiA+ID4g IAkJRFJNX0RFQlVHX0tNUygiTGluayBUcmFpbmluZyBDb21wbGlhbmNlIFRlc3QgcmVxdWVzdGVk XG4iKTsKPiA+ID4gPiA+ID4gIAkJLyogU2VuZCBhIEhvdHBsdWcgVWV2ZW50IHRvIHVzZXJzcGFj ZSB0byBzdGFydCBtb2Rlc2V0ICovCj4gPiA+ID4gPiA+IEBAIC00ODYwLDggKzQ4NjUsMTkgQEAg aW50ZWxfZHBfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ID4g PiA+ICAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lKTsKPiA+ID4g PiA+ID4gIAo+ID4gPiA+ID4gPiAgCS8qIElmIGZ1bGwgZGV0ZWN0IGlzIG5vdCBwZXJmb3JtZWQg eWV0LCBkbyBhIGZ1bGwgZGV0ZWN0ICovCj4gPiA+ID4gPiA+IC0JaWYgKCFpbnRlbF9kcC0+ZGV0 ZWN0X2RvbmUpCj4gPiA+ID4gPiA+ICsJaWYgKCFpbnRlbF9kcC0+ZGV0ZWN0X2RvbmUpIHsKPiA+ ID4gPiA+ID4gKwkJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gPiA+ID4gPiArCQlpbnQgcmV0 Owo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJCWNydGMgPSBjb25uZWN0b3ItPnN0YXRlLT5j cnRjOwo+ID4gPiA+ID4gPiArCQlpZiAoY3J0Yykgewo+ID4gPiA+ID4gPiArCQkJcmV0ID0gZHJt X21vZGVzZXRfbG9jaygmY3J0Yy0+bXV0ZXgsIGN0eCk7Cj4gPiA+ID4gPiA+ICsJCQlpZiAocmV0 KQo+ID4gPiA+ID4gPiArCQkJCXJldHVybiByZXQ7Cj4gPiA+ID4gPiA+ICsJCX0KPiA+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gPiAgCQlzdGF0dXMgPSBpbnRlbF9kcF9sb25nX3B1bHNlKGludGVsX2Rw LT5hdHRhY2hlZF9jb25uZWN0b3IpOwo+ID4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ID4gIAo+ID4g PiA+ID4gPiAgCWludGVsX2RwLT5kZXRlY3RfZG9uZSA9IGZhbHNlOwo+ID4gPiA+ID4gPiAgCj4g PiA+ID4gPiA+IEBAIC01MTQ2LDEwICs1MTYyLDM4IEBAIGludGVsX2RwX2hwZF9wdWxzZShzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgYm9vbCBsb25nX2hwZCkKPiA+ ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gIAlpZiAoIWludGVsX2RwLT5p c19tc3QpIHsKPiA+ID4gPiA+ID4gKwkJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0 eDsKPiA+ID4gPiA+ID4gKwkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRl bF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yLT5iYXNlOwo+ID4gPiA+ID4gPiArCQlzdHJ1Y3QgZHJt X2NydGMgKmNydGM7Cj4gPiA+ID4gPiA+ICsJCWludCBpcmV0Owo+ID4gPiA+ID4gPiArCj4gPiA+ ID4gPiA+ICsJCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LCAwKTsKPiA+ID4gPiA+ID4g K3JldHJ5Ogo+ID4gPiA+ID4gPiArCQlpcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2Rl X2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCAmY3R4KTsKPiA+ID4gPiA+ID4gKwkJaWYgKGlyZXQp Cj4gPiA+ID4gPiA+ICsJCQlnb3RvIGVycjsKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArCQlj cnRjID0gY29ubmVjdG9yLT5zdGF0ZS0+Y3J0YzsKPiA+ID4gPiA+ID4gKwkJaWYgKGNydGMpIHsK PiA+ID4gPiA+ID4gKwkJCWlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwgJmN0 eCk7Cj4gPiA+ID4gPiA+ICsJCQlpZiAoaXJldCkKPiA+ID4gPiA+ID4gKwkJCQlnb3RvIGVycjsK PiA+ID4gPiA+ID4gKwkJfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICAJCWlmICghaW50ZWxf ZHBfc2hvcnRfcHVsc2UoaW50ZWxfZHApKSB7Cj4gPiA+ID4gPiA+ICAJCQlpbnRlbF9kcC0+ZGV0 ZWN0X2RvbmUgPSBmYWxzZTsKPiA+ID4gPiA+ID4gIAkJCWdvdG8gcHV0X3Bvd2VyOwo+ID4gPiA+ ID4gPiAgCQl9Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gK2VycjoKPiA+ID4gPiA+ID4gKwkJ aWYgKGlyZXQgPT0gLUVERUFETEspIHsKPiA+ID4gPiA+ID4gKwkJCWRybV9tb2Rlc2V0X2JhY2tv ZmYoJmN0eCk7Cj4gPiA+ID4gPiA+ICsJCQlnb3RvIHJldHJ5Owo+ID4gPiA+ID4gPiArCQl9Cj4g PiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwkJZHJtX21vZGVzZXRfZHJvcF9sb2NrcygmY3R4KTsK PiA+ID4gPiA+ID4gKwkJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwo+ID4gPiA+ID4g PiArCQlXQVJOKGlyZXQsICJBY3F1aXJpbmcgbW9kZXNldCBsb2NrcyBmYWlsZWQgd2l0aCAlaVxu IiwgaXJldCk7Cj4gPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICAJcmV0 ID0gSVJRX0hBTkRMRUQ7Cj4gPiA+ID4gPiA+IC0tIAo+ID4gPiA+ID4gPiAyLjE1LjAKPiA+ID4g PiA+IAo+ID4gPiA+ID4gLS0gCj4gPiA+ID4gPiBWaWxsZSBTeXJqw6Rsw6QKPiA+ID4gPiA+IElu dGVsIE9UQwo+ID4gPiA+IAo+ID4gPiA+IC0tIAo+ID4gPiA+IERhbmllbCBWZXR0ZXIKPiA+ID4g PiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+ID4gPiBodHRwOi8vYmxv Zy5mZndsbC5jaAo+ID4gPiAKPiA+ID4gLS0gCj4gPiA+IFZpbGxlIFN5cmrDpGzDpAo+ID4gPiBJ bnRlbCBPVEMKPiA+IAo+ID4gLS0gCj4gPiBEYW5pZWwgVmV0dGVyCj4gPiBTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=