From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Wait for PP cycle delay only if panel is in power off sequence Date: Thu, 10 Dec 2015 17:02:10 +0200 Message-ID: <20151210150210.GA4437@intel.com> References: <1449667308-24296-1-git-send-email-shobhit.kumar@intel.com> <20151209135711.GE4437@intel.com> <20151209150453.GA29974@nuc-i3427.alporthouse.com> <20151209160517.GH4437@intel.com> <56694656.8040607@linux.intel.com> <20151210131537.GO4437@intel.com> <20151210133845.GR4437@intel.com> <56698E85.2090704@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 915AA720D2 for ; Thu, 10 Dec 2015 07:02:31 -0800 (PST) Content-Disposition: inline In-Reply-To: <56698E85.2090704@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Thulasimani, Sivakumar" Cc: Shobhit Kumar , intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBEZWMgMTAsIDIwMTUgYXQgMDg6MDk6MDFQTSArMDUzMCwgVGh1bGFzaW1hbmksIFNp dmFrdW1hciB3cm90ZToKPiAKPiAKPiBPbiAxMi8xMC8yMDE1IDc6MDggUE0sIFZpbGxlIFN5cmrD pGzDpCB3cm90ZToKPiA+IE9uIFRodSwgRGVjIDEwLCAyMDE1IGF0IDAzOjE1OjM3UE0gKzAyMDAs IFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+PiBPbiBUaHUsIERlYyAxMCwgMjAxNSBhdCAwMzow MTowMlBNICswNTMwLCBLdW1hciwgU2hvYmhpdCB3cm90ZToKPiA+Pj4gT24gMTIvMDkvMjAxNSAw OTozNSBQTSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4+Pj4gT24gV2VkLCBEZWMgMDksIDIw MTUgYXQgMDg6NTk6MjZQTSArMDUzMCwgU2hvYmhpdCBLdW1hciB3cm90ZToKPiA+Pj4+PiBPbiBX ZWQsIERlYyA5LCAyMDE1IGF0IDg6MzQgUE0sIENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPiB3cm90ZToKPiA+Pj4+Pj4gT24gV2VkLCBEZWMgMDksIDIwMTUgYXQgMDg6MDc6 MTBQTSArMDUzMCwgU2hvYmhpdCBLdW1hciB3cm90ZToKPiA+Pj4+Pj4+IE9uIFdlZCwgRGVjIDks IDIwMTUgYXQgNzoyNyBQTSwgVmlsbGUgU3lyasOkbMOkCj4gPj4+Pj4+PiA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4+Pj4+Pj4+IE9uIFdlZCwgRGVjIDA5LCAyMDE1 IGF0IDA2OjUxOjQ4UE0gKzA1MzAsIFNob2JoaXQgS3VtYXIgd3JvdGU6Cj4gPj4+Pj4+Pj4+IER1 cmluZyByZXN1bWUsIHdoaWxlIHR1cm5pbmcgdGhlIEVEUCBwYW5lbCBwb3dlciBvbiwgd2UgbmVl ZCBub3Qgd2FpdAo+ID4+Pj4+Pj4+PiBibGluZGx5IGZvciBwYW5lbF9wb3dlcl9jeWNsZV9kZWxh eS4gQ2hlY2sgaWYgcGFuZWwgcG93ZXIgZG93biBzZXF1ZW5jZQo+ID4+Pj4+Pj4+PiBpbiBwcm9n cmVzcyBhbmQgdGhlbiBvbmx5IHdhaXQuIFRoaXMgaW1wcm92ZXMgb3VyIHJlc3VtZSB0aW1lIHNp Z25pZmljYW50bHkuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFNob2Jo aXQgS3VtYXIgPHNob2JoaXQua3VtYXJAaW50ZWwuY29tPgo+ID4+Pj4+Pj4+PiAtLS0KPiA+Pj4+ Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyB8IDE3ICsrKysrKysrKysr KysrKystCj4gPj4+Pj4+Pj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+ID4+Pj4+Pj4+PiBpbmRleCBmMzM1YzkyLi4xMGVjNjY5IDEwMDY0NAo+ID4+Pj4+Pj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPj4+Pj4+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+Pj4+Pj4+Pj4gQEAgLTYxNyw2ICs2MTcs MjAgQEAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfcG93ZXIoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiA+Pj4+Pj4+Pj4gICAgICAgICByZXR1cm4gKEk5MTVfUkVBRChfcHBfc3RhdF9y ZWcoaW50ZWxfZHApKSAmIFBQX09OKSAhPSAwOwo+ID4+Pj4+Pj4+PiAgICB9Cj4gPj4+Pj4+Pj4+ Cj4gPj4+Pj4+Pj4+ICtzdGF0aWMgYm9vbCBlZHBfcGFuZWxfb2ZmX3NlcShzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ID4+Pj4+Pj4+PiArewo+ID4+Pj4+Pj4+PiArICAgICBzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+Pj4+Pj4+Pj4gKyAg ICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK PiA+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+PiArICAgICBsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZf cHJpdi0+cHBzX211dGV4KTsKPiA+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+PiArICAgICBpZiAoSVNf VkFMTEVZVklFVyhkZXYpICYmCj4gPj4+Pj4+Pj4+ICsgICAgICAgICBpbnRlbF9kcC0+cHBzX3Bp cGUgPT0gSU5WQUxJRF9QSVBFKQo+ID4+Pj4+Pj4+PiArICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKPiA+Pj4+Pj4+Pj4gKwo+ID4+Pj4+Pj4+PiArICAgICByZXR1cm4gKEk5MTVfUkVBRChfcHBf c3RhdF9yZWcoaW50ZWxfZHApKSAmIFBQX1NFUVVFTkNFX1BPV0VSX0RPV04pICE9IDA7Cj4gPj4+ Pj4+Pj4+ICt9Cj4gPj4+Pj4+Pj4gVGhpcyBkb2Vucyd0IG1ha2Ugc2Vuc2UgdG8gbWUuIFRoZSBw b3dlciBkb3duIGN5Y2xlIG1heSBoYXZlCj4gPj4+Pj4+Pj4gY29tcGxldGVkIGp1c3QgYmVmb3Jl LCBhbmQgc28gdGhpcyB3b3VsZCBjbGFpbSB3ZSBkb24ndCBoYXZlIHRvCj4gPj4+Pj4+Pj4gd2Fp dCBmb3IgdGhlIHBvd2VyX2N5Y2xlX2RlbGF5Lgo+ID4+Pj4+Pj4gTm90IHN1cmUgSSB1bmRlcnN0 YW5kIHlvdXIgY29uY2VybiBjb3JyZWN0bHkuIFlvdSBhcmUgcmlnaHQsIHBvd2VyCj4gPj4+Pj4+ PiBkb3duIGN5Y2xlIG1heSBoYXZlIGNvbXBsZXRlZCBqdXN0IGJlZm9yZSBhbmQgaWYgaXQgaGFz IHRoZW4gd2UgZG9uJ3QKPiA+Pj4+Pj4+IG5lZWQgdG8gd2FpdC4gQnV0IGluIGNhc2UgdGhlIHBv d2VyIGRvd24gY3ljbGUgaXMgaW4gcHJvZ3Jlc3MgYXMgcGVyCj4gPj4+Pj4+PiBpbnRlcm5hbCBz dGF0ZSwgdGhlbiB3ZSBuZWVkIHRvIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlLiBUaGlzIHdpbGwK PiA+Pj4+Pj4+IGhhcHBlbiBmb3IgZXhhbXBsZSBpbiBub24tc3VzcGVuZCBkaXNhYmxlIHBhdGgg YW5kIHdpbGwgYmUgaGFuZGxlZAo+ID4+Pj4+Pj4gY29ycmVjdGx5LiBJbiBjYXNlIG9mIGFjdHVh bCBzdXNwZW5kL3Jlc3VtZSwgdGhpcyB3b3VsZCBoYXZlCj4gPj4+Pj4+PiBzdWNjZXNzZnVsbHkg Y29tcGxldGVkIGFuZCB3aWxsIHNraXAgdGhlIHdhaXQgYXMgaXQgaXMgbm90IG5lZWRlZAo+ID4+ Pj4+Pj4gYmVmb3JlIGVuYWJsaW5nIHBhbmVsIHBvd2VyLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4g Kwo+ID4+Pj4+Pj4+PiAgICBzdGF0aWMgYm9vbCBlZHBfaGF2ZV9wYW5lbF92ZGQoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKPiA+Pj4+Pj4+Pj4gICAgewo+ID4+Pj4+Pj4+PiAgICAgICAgIHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ID4+Pj4+ Pj4+PiBAQCAtMjAyNSw3ICsyMDM5LDggQEAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX29uKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgcG9ydF9u YW1lKGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydCkpKQo+ID4+Pj4+Pj4+PiAgICAgICAg ICAgICAgICAgcmV0dXJuOwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiAtICAgICB3YWl0X3BhbmVs X3Bvd2VyX2N5Y2xlKGludGVsX2RwKTsKPiA+Pj4+Pj4+Pj4gKyAgICAgaWYgKGVkcF9wYW5lbF9v ZmZfc2VxKGludGVsX2RwKSkKPiA+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICB3YWl0X3BhbmVsX3Bv d2VyX2N5Y2xlKGludGVsX2RwKTsKPiA+Pj4+Pj4gTG9va2luZyBpbiBmcm9tIHRoZSBzaWRlLCBJ IGhhdmUgbm8gaWRlYSB3aGF0IHRoaXMgaXMgbWVhbnQgdG8gZG8uIEF0Cj4gPj4+Pj4+IHRoZSB2 ZXJ5IGxlYXN0IHlvdSBuZWVkIHlvdXIgZXhwbGFuYXRvcnkgcGFyYWdyYXBoIGhlcmUgd2hpY2gg d291bGQKPiA+Pj4+Pj4gaW5jbHVkZSB3aGF0IGV4YWN0bHkgeW91IGFyZSB3YWl0aW5nIGZvciBh dCB0aGUgc3RhcnQgb2YgZWRwX3BhbmVsX29uCj4gPj4+Pj4+IChhbmQgcGxlYXNlIHRyeSBhbmQg ZmluZCBhIGJldHRlciBuYW1lIGZvciBlZHBfcGFuZWxfb2ZmX3NlcSgpKS4KPiA+Pj4+PiBJIHdp bGwgYWRkIGEgY29tbWVudC4gQmFzaWNhbGx5IEkgYW0gbm90IGFkZGl0aW9uYWxseSB3YWl0aW5n LCBidXQKPiA+Pj4+PiBjb252ZXJ0aW5nIHRoZSB3YWl0IHdoaWNoIHdhcyBhbHJlYWR5IHRoZXJl IHRvIGEgY29uZGl0aW9uYWwgd2FpdC4gVGhlCj4gPj4+Pj4gZWRwX3BhbmVsX29mZl9zZXEsIGNo ZWNrcyBpZiBwYW5lbCBwb3dlciBkb3duIHNlcXVlbmNlIGlzIGluIHByb2dyZXNzLgo+ID4+Pj4+ IEluIHRoYXQgY2FzZSB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBwYW5lbCBwb3dlciBjeWNsZSBk ZWxheS4gSWYgaXQgaXMKPiA+Pj4+PiBub3QgaW4gdGhhdCBzZXF1ZW5jZSwgdGhlcmUgaXMgbm8g bmVlZCB0byB3YWl0LiBJIHdpbGwgbWFrZSBhbiBhdHRlbXB0Cj4gPj4+Pj4gYWdhaW4gb24gdGhl IG5hbWluZyBpbiBuZXh0IHBhdGNoIHVwZGF0ZS4KPiA+Pj4+IEFzIGZhciBJIHJlbWViZXIgeW91 IG5lZWQgdG8gd2FpdCBmb3IgcG93ZXJfY3ljbGVfZGVsYXkgYmV0d2VlbiBwb3dlcgo+ID4+Pj4g ZG93biBjeWNsZSBhbmQgcG93ZXIgdXAgY3ljbGUuIFlvdSdyZSB0cnlpbmcgdG8gdGhyb3cgdGhh dCB3YWl0IGF3YXkKPiA+Pj4+IGVudGlyZWx5LCB1bmxlc3MgdGhlIGZ1bmN0aW9uIGhhcHBlbnMg Z2V0IGNhbGxlZCB3aGlsZSB0aGUgcG93ZXIgZG93bgo+ID4+PiBZZXMgeW91IGFyZSByaWdodCBh bmQgSSByZWFsaXplIEkgbWFkZSBhIG1pc3Rha2UgaW4gbXkgcGF0Y2ggd2hpY2ggaXMKPiA+Pj4g bm90IGNoZWNraW5nIFBQX0NZQ0xFX0RFTEFZX0FDVElWRSBiaXQuCj4gPj4+Cj4gPj4+PiBjeWNs ZSBpcyBzdGlsbCBpbiBwcm9ncmVzcy4gV2Ugc2hvdWxkIGFscmVhZHkgb3B0aW1pemUgYXdheSBy ZWR1bmRhbnQKPiA+Pj4+IHdhaXRzIGJ5IHRyYWNraW5nIHRoZSBlbmQgb2YgdGhlIHBvd2VyIGRv d24gY3ljbGUgd2l0aCB0aGUgamlmZmllcwo+ID4+Pj4gdHJhY2tpbmcuCj4gPj4+Pgo+ID4+Pj4g QWN0dWFsbHkgbG9va2luZyBhdCB0aGUgY29kZSB0aGUgcG93ZXJfY3ljbGVfZGVsYXkgZ2V0cyBj b3VudGVkIGZyb20KPiA+Pj4+IHRoZSBzdGFydCBvZiB0aGUgbGFzdCBwb3dlciBkb3duIGN5Y2xl LCBzbyBzdXBwb3NlZGx5IGl0J3MgYWx3YXlzIGF0Cj4gPj4+PiBsZWFzdCBhcyBsb25nIGFzIHRo ZSBwb3dlciBkb3duIGN5Y2xlLCBhbmQgdHlwaWNhbGx5IGl0J3MgcXVpdGUgYSBiaXQKPiA+Pj4+ IGxvbmdlciB0aGF0IHRoYXQuIEJ1dCB0aGF0IGRvZXNuJ3QgY2hhbmdlIHRoZSBmYWN0IHRoYXQg eW91IGNhbid0Cj4gPj4+PiBqdXN0IHNraXAgaXQgYmVjYXVzZSB0aGUgcG93ZXIgZG93biBjeWNs ZSBkZWxheSBoYXBwZW5lZCB0byBlbmQKPiA+Pj4+IGFscmVhZHkuCj4gPj4+Pgo+ID4+Pj4gU28g d2hhdCB3ZSBkbyBub3cgaXM6Cj4gPj4+PiAxLiBpbml0aWF0ZSBwb3dlciBkb3duIGN5Y2xlCj4g Pj4+PiAyLiBsYXN0X3Bvd2VyX2N5Y2xlPWppZmZpZXMKPiA+Pj4+IDMuIHdhaXQgZm9yIHBvd2Vy IGRvd24gKEkgc3VwcG9zZSB0aGlzIGFjdHVhbGx5IHdhaXRzCj4gPj4+PiAgICAgIHVudGlsIHRo ZSBwb3dlciBkb3duIGRlbGF5IGhhcyBwYXNzZWQgc2luY2UgdGhhdCdzCj4gPj4+PiAgICAgIHBy b2dyYW1tZXMgaW50byB0aGUgUFBTKS4KPiA+Pj4+IDQuIHdhaXQgZm9yIHBvd2VyX2N5Y2xlX2Rl bGF5IGZyb20gbGFzdF9wb3dlcl9jeWNsZQo+ID4+Pj4gNS4gaW5pdGlhdGUgcG93ZXIgdXAgY3lj bGUKPiA+Pj4+Cj4gPj4+PiBJIHRoaW5rIHdpdGggeW91ciBwYXRjaCBzdGVwIDQgd291bGQgYWx3 YXlzIGJlIHNraXBwZWQgc2luY2UgdGhlCj4gPj4+PiBwb3dlciBkb3duIGN5Y2xlIGhhcyBhbHJl YWR5IGVuZGVkLCBhbmQgdGhlbiB3ZSBmYWlsIHRvIGhvbm9yIHRoZQo+ID4+Pj4gcG93ZXIgY3lj bGUgZGVsYXkuCj4gPj4+IFllcywgSSBhZ3JlZS4gSSBtaXNzZWQgY2hlY2tpbmcgZm9yIFBQX0NZ Q0xFX0RFTEFZX0FDVElWRS4gQWRkaW5nIHRoYXQKPiA+Pj4gY2hlY2sgd2lsbCB0YWtlIGNhcmUg b2YgdGhpcyBzY2VuYXJpbyBJIGd1ZXNzID8KPiA+PiBOb3BlLiBUaGUgdmRkIGZvcmNlIGJpdCBk b2Vzbid0IHJlc3BlY3QgdGhlIFBQUyBzdGF0ZSBtYWNoaW5lLCBzbyB3ZQo+ID4+IG11c3QgZG8g dGhlIHdhaXRzIG1hbnVhbGx5IGluc3RlYWQuIEFuZCBpbiB0aGVvcnkgeW91ciBwYXRjaCB3b3Vs ZG4ndAo+ID4+IGRvIGFueXRoaW5nIGFueXdheSBzaW5jZSB0aGUgc2xlZXAgYWxyZWFkeSB0YWtl cyBpbnRvIGFjY291bnQgd2hlbiB0aGUKPiA+PiBwb3dlciBjeWNsZSBkZWxheSBzdGFydGVkLgo+ ID4+Cj4gPj4gVGhlIGZhY3QgdGhhdCB3ZSB1c2UgbXNsZWVwKCkgbWF5IGFjdHVhbGx5IG1ha2Ug dGhvc2Ugc2xlZXBzIHNvbWV3aGF0Cj4gPj4gbG9uZ2VyLCBhbmQgbWF5YmUgd2Ugc2hvdWxkIGFs c28gdGhpbmsgYWJvdXQgc3dpdGNoaW5nIHRvIHVzbGVlcF9yYW5nZSgpCj4gPj4gaGVyZS4KPiA+ IE9oLCBhbmQgd2UgbWF5IHdhbnQgdG8gc3RvcCB1c2luZyB0aGUgcG93ZXIgc2VxdWVuY2VyIGZv cmNlZCBkZWxheSwKPiA+IGF0IGxlYXN0IGZvciB0aGUgcG93ZXIgdXAgZGVsYXkgc2luY2Ugd2Ug Y291bGQgdGhlbiBzcGVlZCB1cCB0aGUgcG93ZXIKPiA+IHVwIHRpbWUgYnkgd2FpdGluZyBmb3Ig dGhlIGxvbmcgSFBEIGluc3RlYWQuIENsaW50IGV2ZW4gc2VudCBhIHBhdGNoIGZvcgo+ID4gdGhh dCwgYnV0IEkgZG9uJ3QgdGhpbmsgaXQgYWN0dWFsbHkgY2hhbmdlIHRoZSBQUFMgZGVsYXlzLiBC dXQgbWF5YmUKPiA+IHRoZSBQUFMgd29uJ3QgcmVhbGx5IGtpY2sgaW4gZHVlIHRvIG91ciB1c2Ug b2YgdGhlIHZkZCBmb3JjZSBiaXQgZHVyaW5nCj4gPiBwYW5lbCBwb3dlciB1cD8KPiA+Cj4gPiBU aGUgYmFoYXZpb3VyIG9mIHRoZSBQUFMgZGVsYXlzIHZzLiB0aGUgdmRkIGZvcmNlIGJpdCBpc24n dCBhY3R1YWxseQo+ID4gZG9jdW1lbnRlZCwgc28gaXQgd291bGQgYmUgc29tZXRoaW5nIHRoYXQg Y291bGQgYmUgc3R1ZGllZCBhIGJpdCBieQo+ID4gYmFuZ2luZyBvbiB0aGUgaGFyZHdhcmUuIFBy b2JhYmx5IGJlc3QgZG9uZSBvbiBhIG1hY2hpbmUgd2hlcmUgdGhlcmUncwo+ID4gbm8gbG9jYWwg cGFuZWwgdG8gYXZvaWQgZGFtYWdpbmcgaXQgaWYgdGhpbmdzIGdvIGJhZC4KPiBpIHRoaW5rIGkg dXBkYXRlZCBhYm91dCB1c2luZyBocGQvZWRpZCByZWFkIGluc3RlYWQgb2Ygd2FpdGluZyBlbnRp cmUgVDMgCj4gZGVsYXkgZm9yIHBvd2VyIG9uCj4gZHVyaW5nIElSQyBjaGF0IHNvbWV0aW1lIGJh Y2sgdG8gZGFudmV0LiBpbiBzaG9ydCBpdCBkb2VzIG5vdCB3b3JrIGFjcm9zcwo+IGFsbCBwYW5l bHMsIGl0IGNhdXNlcyBibG9vbWluZyBlZmZlY3Qgb24gc29tZSBwYW5lbHMgcmVzdWx0aW5nIGlu IHBhbmVsIAo+IGZhaWxpbmcKPiB0byB0dXJuIG9uLCB3aGljaCB3aWxsIGFsc28gYWZmZWN0IHBh bmVsIGxpZmUuCgo6KCBJIHdhcyBob3Bpbmcgd2UgY291bGQgdXNlIGl0IGZvciBlRFAsIGJ1dCBJ IGd1ZXNzIGJlaW5nIGFuIG9wdGltaXN0CndoZW4gaXQgY29tZXMgdG8gaGFyZHdhcmUgbmV2ZXIg cGF5cyBvZmYuCgpJIHdvbmRlciBpZiB3ZSBjb3VsZCBhdCBsZWFzdCBzdGFydCBkb2luZyBzb21l IG9mIHRoZSBBVVggY29tbXVuaWNhdGlvbgpzb29uZXIuIFRoYXQgaXMsIG1heWJlIHdlIGNhbiBk byBhdCBsZWFzdCB0aGUgRFBfTElOS19CV19TRVQgYW5kIHRoZQpEUF9ET1dOU1BSRUFEX0NUUkwg RFBDRCB3cml0ZXMgYWZ0ZXIgZ2V0dGluZyB0aGUgSFBELCBhbmQgb25seSB0aGVuCndhaXQgZm9y IHRoZSBlbmQgb2YgdGhlIHBvd2VyIG9uIGRlbGF5IGp1c3QgYmVmb3JlIHN0YXJ0aW5nIHRoZQps aW5rIHRyYWluaW5nPyBBbmQgdGhlIHNhbWUgZm9yIGFueSBvdGhlciBBVVggY2hhdHRlciB3aGVu IHRoZSBwYW5lbAppcyBvdGhlcndpc2UgcG93ZXJlZCBvZmY/CgotLSAKVmlsbGUgU3lyasOkbMOk CkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=