From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Enable scanline read for gen9 dsi Date: Tue, 12 Sep 2017 18:06:13 +0300 Message-ID: <20170912150613.GR4914@intel.com> References: <1504878535-28667-1-git-send-email-vidya.srinivas@intel.com> <20170908144759.GH4914@intel.com> <20170911175019.GN4914@intel.com> <20170912133332.GP4914@intel.com> <20170912141242.GQ4914@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id C7E996E669 for ; Tue, 12 Sep 2017 15:06:17 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Shankar, Uma" Cc: "intel-gfx@lists.freedesktop.org" , "Srinivas, Vidya" List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgMDI6MjE6NDJQTSArMDAwMCwgU2hhbmthciwgVW1hIHdy b3RlOgo+IAo+IAo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID5Gcm9tOiBWaWxsZSBT eXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+U2VudDog VHVlc2RheSwgU2VwdGVtYmVyIDEyLCAyMDE3IDc6NDMgUE0KPiA+VG86IFNoYW5rYXIsIFVtYSA8 dW1hLnNoYW5rYXJAaW50ZWwuY29tPgo+ID5DYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZzsgU3Jpbml2YXMsIFZpZHlhIDx2aWR5YS5zcmluaXZhc0BpbnRlbC5jb20+Cj4gPlN1Ympl Y3Q6IFJlOiBbUEFUQ0hdIGRybS9pOTE1OiBFbmFibGUgc2NhbmxpbmUgcmVhZCBmb3IgZ2VuOSBk c2kKPiA+Cj4gPk9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDAxOjQwOjU4UE0gKzAwMDAsIFNoYW5r YXIsIFVtYSB3cm90ZToKPiA+Pgo+ID4+Cj4gPj4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t Cj4gPj4gPkZyb206IFZpbGxlIFN5cmrDpGzDpCBbbWFpbHRvOnZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tXQo+ID4+ID5TZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTIsIDIwMTcgNzowNCBQ TQo+ID4+ID5UbzogU2hhbmthciwgVW1hIDx1bWEuc2hhbmthckBpbnRlbC5jb20+Cj4gPj4gPkNj OiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBTcmluaXZhcywgVmlkeWEKPiA+PiA+ PHZpZHlhLnNyaW5pdmFzQGludGVsLmNvbT4KPiA+PiA+U3ViamVjdDogUmU6IFtQQVRDSF0gZHJt L2k5MTU6IEVuYWJsZSBzY2FubGluZSByZWFkIGZvciBnZW45IGRzaQo+ID4+ID4KPiA+PiA+PiA+ Pj4KPiA+PiA+PiA+Pj4gPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gPj4gPj4gPj4+ID5G cm9tOiBWaWxsZSBTeXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bV0KPiA+PiA+PiA+Pj4gPlNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDgsIDIwMTcgODoxOCBQTQo+ ID4+ID4+ID4+PiA+VG86IFNyaW5pdmFzLCBWaWR5YSA8dmlkeWEuc3Jpbml2YXNAaW50ZWwuY29t Pgo+ID4+ID4+ID4+PiA+Q2M6IGludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IEthaG9s YSwgTWlrYQo+ID4+ID4+ID4+PiA+PG1pa2Eua2Fob2xhQGludGVsLmNvbT47IEthbWF0aCwgU3Vu aWwKPiA+PiA+PiA+Pj4gPjxzdW5pbC5rYW1hdGhAaW50ZWwuY29tPjsgU2hhbmthciwgVW1hCj4g Pj4gPj4gPj4+ID48dW1hLnNoYW5rYXJAaW50ZWwuY29tPjsgS29uZHVydSwgQ2hhbmRyYQo+ID4+ ID4+ID4+PiA+PGNoYW5kcmEua29uZHVydUBpbnRlbC5jb20+Cj4gPj4gPj4gPj4+ID5TdWJqZWN0 OiBSZTogW1BBVENIXSBkcm0vaTkxNTogRW5hYmxlIHNjYW5saW5lIHJlYWQgZm9yIGdlbjkKPiA+ PiA+PiA+Pj4gPmRzaQo+ID4+ID4+ID4+PiA+Cj4gPj4gPj4gPj4+ID5PbiBGcmksIFNlcCAwOCwg MjAxNyBhdCAwNzoxODo1NVBNICswNTMwLCBWaWR5YSBTcmluaXZhcyB3cm90ZToKPiA+PiA+PiA+ Pj4gPj4gRnJvbTogVW1hIFNoYW5rYXIgPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiA+PiA+PiA+ Pj4gPj4KPiA+PiA+PiA+Pj4gPj4gRm9yIGdlbjkgcGxhdGZvcm1zLCBkc2kgdGltaW5ncyBhcmUg ZHJpdmVuIGZyb20gcG9ydCBpbnN0ZWFkCj4gPj4gPj4gPj4+ID4+IG9mIHBpcGUgKHVubGlrZSBk ZGkpLiBUaHVzLCB3ZSBjYW4ndCByZWx5IG9uIHBpcGUgcmVnaXN0ZXJzCj4gPj4gPj4gPj4+ID4+ IHRvIGdldCB0aGUgdGltaW5nIGluZm9ybWF0aW9uLiBFdmVuIHNjYW5saW5lIHJlZ2lzdGVyIHJl YWQKPiA+PiA+PiA+Pj4gPj4gd2lsbCBub3QgYmUKPiA+PiA+ZnVuY3Rpb25hbC4KPiA+PiA+PiA+ Pj4gPj4gVGhpcyBpcyBjYXVzaW5nIHZibGFuayBldmFzaW9uIGxvZ2ljIHRvIGZhaWwgc2luY2Ug aXQgcmVsaWVzCj4gPj4gPj4gPj4+ID4+IG9uIHNjYW5saW5lLCBjYXVzaW5nIGF0b21pYyB1cGRh dGUgZmFpbHVyZSB3YXJuaW5ncy4KPiA+PiA+PiA+Pj4gPj4KPiA+PiA+PiA+Pj4gPj4gVGhpcyBw YXRjaCB1c2VzIHBpcGUgZnJhbWVzdGFtcCBhbmQgY3VycmVudCB0aW1lc3RhbXAKPiA+PiA+PiA+ Pj4gPj4gcmVnaXN0ZXJzIHRvIGNhbGN1bGF0ZSBzY2FubGluZS4gVGhpcyBpcyBhbiBpbmRpcmVj dCB3YXkgdG8gZ2V0IHRoZQo+ID5zY2FubGluZS4KPiA+PiA+PiA+Pj4gPj4gSXQgaGVscHMgcmVz b2x2ZSBhdG9taWMgdXBkYXRlIGZhaWx1cmUgZm9yIGdlbjkgZHNpIHBsYXRmb3Jtcy4KPiA+PiA+ PiA+Pj4gPj4KPiA+PiA+PiA+Pj4gPj4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5z aGFua2FyQGludGVsLmNvbT4KPiA+PiA+PiA+Pj4gPj4gU2lnbmVkLW9mZi1ieTogQ2hhbmRyYSBL b25kdXJ1IDxjaGFuZHJhLmtvbmR1cnVAaW50ZWwuY29tPgo+ID4+ID4+ID4+PiA+PiBTaWduZWQt b2ZmLWJ5OiBWaWR5YSBTcmluaXZhcyA8dmlkeWEuc3Jpbml2YXNAaW50ZWwuY29tPgo+ID4+ID4+ ID4+PiA+PiAtLS0KPiA+PiA+PiA+Pj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggIHwgIDIgKysKPiA+PiA+PiA+Pj4gPj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu YyAgfCAgNSArKysrKwo+ID4+ID4+ID4+PiA+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oICB8ICAzICsrKwo+ID4+ID4+ID4+PiA+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k c2kuYyB8IDQ2Cj4gPj4gPj4gPj4+ID4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiA+PiA+PiA+Pj4gPj4gIDQgZmlsZXMgY2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygr KQo+ID4+ID4+ID4+PiA+Pgo+ID4+ID4+ID4+PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4+ID4+ID4+PiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggaW5kZXggZDA3ZDExMC4uNDIxM2I1NAo+ID4+ID4+ID4+PiA+PiAxMDA2NDQK PiA+PiA+PiA+Pj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4+ ID4+ID4+PiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj4gPj4g Pj4+ID4+IEBAIC00MDc3LDYgKzQwNzcsOCBAQCB2b2lkIGludGVsX3NiaV93cml0ZShzdHJ1Y3QK PiA+PiA+PiA+Pj4gPj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUxNiByZWcsIHUzMiB2 YWx1ZSwKPiA+PiA+PiA+Pj4gPj4gIHUzMiB2bHZfZmxpc2RzaV9yZWFkKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgdTMyCj4gPj4gPj4gPj4+ID4+IHJlZyk7IHZvaWQgdmx2X2Zs aXNkc2lfd3JpdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+PiA+PiA+Pj4gPj4gKmRldl9w cml2LAo+ID4+ID4+ID4+PiA+PiB1MzIgcmVnLAo+ID4+ID4+ID4+PiA+PiB1MzIgdmFsKTsKPiA+ PiA+PiA+Pj4gPj4KPiA+PiA+PiA+Pj4gPj4gK3UzMiBieHRfZHNpX2dldF9zY2FubGluZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gPj4gPj4gPj4+ID4+ICsKPiA+PiA+PiA+Pj4gPj4gIC8q IGludGVsX2RwaW9fcGh5LmMgKi8KPiA+PiA+PiA+Pj4gPj4gIHZvaWQgYnh0X3BvcnRfdG9fcGh5 X2NoYW5uZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+PiA+PiA+Pj4gPj4gKmRldl9wcml2 LCBlbnVtIHBvcnQKPiA+PiA+PiA+Pj4gPnBvcnQsCj4gPj4gPj4gPj4+ID4+ICAJCQkgICAgIGVu dW0gZHBpb19waHkgKnBoeSwgZW51bSBkcGlvX2NoYW5uZWwKPiA+PiA+KmNoKTsgZGlmZiAtLQo+ ID4+ID4+ID4+PiA+Z2l0Cj4gPj4gPj4gPj4+ID4+IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYwo+ID4+ID4+ID4+PiA+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMg aW5kZXggNWQzOTFlNi4uMzFhYTdmMAo+ID4+ID4+ID4+PiA+PiAxMDA2NDQKPiA+PiA+PiA+Pj4g Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ID4+ID4+ID4+PiA+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gPj4gPj4gPj4+ID4+IEBAIC03 ODEsNiArNzgxLDcgQEAgc3RhdGljIGludAo+ID4+ID4+ID4+PiA+PiBfX2ludGVsX2dldF9jcnRj X3NjYW5saW5lKHN0cnVjdCBpbnRlbF9jcnRjCj4gPj4gPj4gPj4+ID4qY3J0YykKPiA+PiA+PiA+ Pj4gPj4gIAlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2Ymxhbms7Cj4gPj4gPj4gPj4+ID4+ICAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwo+ID4+ID4+ID4+PiA+PiAgCWludCBwb3NpdGlv biwgdnRvdGFsOwo+ID4+ID4+ID4+PiA+PiArCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2Rl cjsKPiA+PiA+PiA+Pj4gPj4KPiA+PiA+PiA+Pj4gPj4gIAlpZiAoIWNydGMtPmFjdGl2ZSkKPiA+ PiA+PiA+Pj4gPj4gIAkJcmV0dXJuIC0xOwo+ID4+ID4+ID4+PiA+PiBAQCAtNzkyLDYgKzc5Mywx MCBAQCBzdGF0aWMgaW50Cj4gPj4gPj4gPj4+ID4+IF9faW50ZWxfZ2V0X2NydGNfc2NhbmxpbmUo c3RydWN0IGludGVsX2NydGMKPiA+PiA+PiA+Pj4gPipjcnRjKQo+ID4+ID4+ID4+PiA+PiAgCWlm IChtb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQo+ID4+ID4+ID4+PiA+PiAg CQl2dG90YWwgLz0gMjsKPiA+PiA+PiA+Pj4gPj4KPiA+PiA+PiA+Pj4gPj4gKwljcHVfdHJhbnNj b2RlciA9IGNydGMtPmNvbmZpZy0+Y3B1X3RyYW5zY29kZXI7Cj4gPj4gPj4gPj4+ID4KPiA+PiA+ PiA+Pj4gPkh1bW0uIFdvdWxkIGJlIG5pY2UgdG8gYmUgYWJsZSB0byBkbyB0aGlzIHdpdGhvdXQg YWRkaW5nIG1vcmUKPiA+PiA+PiA+Pj4gPmNydGMtPmNvbmZpZyB1c2VzLiBXZSdyZSBwcmV0dHkg bXVjaCB0cnlpbmcgdG8gZ2V0IHJpZCBvZiB0aGF0IGd1eS4KPiA+PiA+PiA+Pj4gPgo+ID4+ID4+ ID4+Pgo+ID4+ID4+ID4+PiBXaWxsIHRyeSB0byBmaW5kIGFuIGFsdGVybmF0ZSB3YXkgdG8gZG8g dGhpcy4KPiA+PiA+PiA+Pj4KPiA+PiA+PiA+Pj4gPj4gKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJp dikgJiYgdHJhbnNjb2Rlcl9pc19kc2koY3B1X3RyYW5zY29kZXIpKQo+ID4+ID4+ID4+PiA+PiAr CQlyZXR1cm4gYnh0X2RzaV9nZXRfc2NhbmxpbmUoY3J0Yyk7Cj4gPj4gPj4gPj4+ID4+ICsKPiA+ PiA+PiA+Pj4gPj4gIAlpZiAoSVNfR0VOMihkZXZfcHJpdikpCj4gPj4gPj4gPj4+ID4+ICAJCXBv c2l0aW9uID0gSTkxNV9SRUFEX0ZXKFBJUEVEU0wocGlwZSkpICYKPiA+PiA+PiA+Pj4gPkRTTF9M SU5FTUFTS19HRU4yOwo+ID4+ID4+ID4+PiA+PiAgCWVsc2UKPiA+PiA+PiA+Pj4gPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+PiA+PiA+Pj4gPj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGluZGV4IDlhNzNlYTAuLjU0NTgyZGUKPiA+ PiA+PiA+Pj4gPj4gMTAwNjQ0Cj4gPj4gPj4gPj4+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVnLmgKPiA+PiA+PiA+Pj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+ID4+ID4+ID4+PiA+PiBAQCAtODgwMiw2ICs4ODAyLDkgQEAgZW51bSBza2xf cG93ZXJfZ2F0ZSB7ICAjZGVmaW5lCj4gPj4gPj4gPj4+ID4+IE1JUElPX1RYRVNDX0NMS19ESVYy Cj4gPj4gPglfTU1JTygweDE2MDAwOCkKPiA+PiA+PiA+Pj4gPj4gICNkZWZpbmUgIEdMS19UWF9F U0NfQ0xLX0RJVjJfTUFTSwkJCTB4M0ZGCj4gPj4gPj4gPj4+ID4+Cj4gPj4gPj4gPj4+ID4+ICsj ZGVmaW5lIEJYVF9USU1FU1RBTVBfQ1RSCV9NTUlPKDB4NDQwNzApCj4gPj4gPj4gPj4+ID4+ICsj ZGVmaW5lIEJYVF9QSVBFX0ZSTVRNU1RNUF9BCV9NTUlPKDB4NzAwNDgpCj4gPj4gPj4gPj4+ID4K PiA+PiA+PiA+Pj4gPlBsZWFzZSBhZGQgcHJvcGVyIHBhcmFtZXRyaXplZCBkZWZpbmUgdGhhdCB3 b3JrcyBmb3IgYWxsIHBpcGVzLgo+ID4+ID4+ID4+PiA+Cj4gPj4gPj4gPj4+Cj4gPj4gPj4gPj4+ IFdpbGwgYWRkIHRoYXQuCj4gPj4gPj4gPj4+Cj4gPj4gPj4gPj4+ID4+ICsKPiA+PiA+PiA+Pj4g Pj4gIC8qIEJYVCBNSVBJIGNsb2NrIGNvbnRyb2xzICovCj4gPj4gPj4gPj4+ID4+ICAjZGVmaW5l IEJYVF9NQVhfVkFSX09VVFBVVF9LSFoJCQkzOTUwMAo+ID4+ID4+ID4+PiA+Pgo+ID4+ID4+ID4+ PiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiA+PiA+ PiA+Pj4gPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ID4+ID4+ID4+PiA+ PiBpbmRleCAyYTBmNWQzLi5kMTQ1YmE0IDEwMDY0NAo+ID4+ID4+ID4+PiA+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ID4+ID4+ID4+PiA+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ID4+ID4+ID4+PiA+PiBAQCAtMTYyMSw2ICsxNjIx LDUyIEBAIHN0YXRpYyBpbnQgaW50ZWxfZHNpX2dldF9tb2RlcyhzdHJ1Y3QKPiA+PiA+PiA+Pj4g PmRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+PiA+PiA+Pj4gPj4gIAlyZXR1cm4gMTsKPiA+ PiA+PiA+Pj4gPj4gIH0KPiA+PiA+PiA+Pj4gPj4KPiA+PiA+PiA+Pj4gPj4gKy8qCj4gPj4gPj4g Pj4+ID4+ICsgKiBGb3IgR2VuOSBEU0ksIHBpcGUgc2NhbmxpbmUgcmVnaXN0ZXIgd2lsbCBub3QK PiA+PiA+PiA+Pj4gPj4gKyAqIHdvcmsgdG8gZ2V0IHRoZSBzY2FubGluZSBzaW5jZSB0aGUgdGlt aW5ncwo+ID4+ID4+ID4+PiA+PiArICogYXJlIGRyaXZlbiBmcm9tIHRoZSBQT1JUICh1bmxpa2Ug RERJIGVuY29kZXJzKS4KPiA+PiA+PiA+Pj4gPj4gKyAqIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2Ug RnJhbWVzdGFtcCBhbmQgY3VycmVudAo+ID4+ID4+ID4+PiA+PiArICogdGltZXN0YW1wIHJlZ2lz dGVycyB0byBjYWxjdWxhdGUgdGhlIHNjYW5saW5lLgo+ID4+ID4+ID4+PiA+PiArICovCj4gPj4g Pj4gPj4+ID4+ICt1MzIgYnh0X2RzaV9nZXRfc2NhbmxpbmUoc3RydWN0IGludGVsX2NydGMgKmNy dGMpIHsKPiA+PiA+PiA+Pj4gPj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFz ZS5kZXY7Cj4gPj4gPj4gPj4+ID4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOwo+ID4+ID4+ID4+PiA+PiArCXUzMiB2cmVmcmVzaCA9IGNydGMtPmJh c2UubW9kZS52cmVmcmVzaDsKPiA+PiA+PiA+Pj4gPj4gKwl1MzIgdWxQcmV2VGltZSwgdWxDdXJy VGltZSwgdnRvdGFsLCB1bFNjYW5saW5lTm8yID0gMDsKPiA+PiA+PiA+Pj4gPgo+ID4+ID4+ID4+ PiA+UGxlYXNlIGdldCByaWQgb2YgdGhlIGh1bmdhcmlhbiBub3RhdGlvbi4KPiA+PiA+PiA+Pj4g Pgo+ID4+ID4+ID4+Pgo+ID4+ID4+ID4+PiBZZXMsIHdpbGwgZml4IHRoaXMuCj4gPj4gPj4gPj4+ Cj4gPj4gPj4gPj4+ID4+ICsJdWludF9maXhlZF8xNl8xNl90IHVsU2NhbmxpbmVUaW1lOwo+ID4+ ID4+ID4+PiA+PiArCj4gPj4gPj4gPj4+ID4+ICsJLyoKPiA+PiA+PiA+Pj4gPj4gKwkgKiBUaGlz IGZpZWxkIHByb3ZpZGVzIHJlYWQgYmFjayBvZiB0aGUgZGlzcGxheQo+ID4+ID4+ID4+PiA+PiAr CSAqIHBpcGUgZnJhbWUgdGltZSBzdGFtcC4gVGhlIHRpbWUgc3RhbXAgdmFsdWUKPiA+PiA+PiA+ Pj4gPj4gKwkgKiBpcyBzYW1wbGVkIGF0IGV2ZXJ5IHN0YXJ0IG9mIHZlcnRpY2FsIGJsYW5rLgo+ ID4+ID4+ID4+PiA+PiArCSAqLwo+ID4+ID4+ID4+PiA+PiArCXVsUHJldlRpbWUgPSBJOTE1X1JF QURfRlcoQlhUX1BJUEVfRlJNVE1TVE1QX0EpOwo+ID4+ID4+ID4+PiA+PiArCj4gPj4gPj4gPj4+ ID4+ICsJLyoKPiA+PiA+PiA+Pj4gPj4gKwkgKiBUaGUgVElNRVNUQU1QX0NUUiByZWdpc3RlciBo YXMgdGhlIGN1cnJlbnQKPiA+PiA+PiA+Pj4gPj4gKwkgKiB0aW1lIHN0YW1wIHZhbHVlLgo+ID4+ ID4+ID4+PiA+PiArCSAqLwo+ID4+ID4+ID4+PiA+PiArCXVsQ3VyclRpbWUgPSBJOTE1X1JFQURf RlcoQlhUX1RJTUVTVEFNUF9DVFIpOwo+ID4+ID4+ID4+PiA+PiArCj4gPj4gPj4gPj4+ID4+ICsJ LyogVGhlIFBPUlQgZm9yIERTSSB3aWxsIGFsd2F5cyBiZSAwIHNpbmNlCj4gPj4gPj4gPj4+ID4+ ICsJICogaXNvbGF0ZWQgUE9SVEMgY2Fubm90IGJlIGVuYWJsZWQgZm9yIEdlbjkKPiA+PiA+PiA+ Pj4gPj4gKwkgKiBEU0kuIEhlbmNlIHVzaW5nIFBPUlRfQSBpLmUgMCB0byBleHRyYWN0Cj4gPj4g Pj4gPj4+ID4+ICsJICogdGhlIFZUT1RBTCB2YWx1ZS4KPiA+PiA+PiA+Pj4gPj4gKwkgKi8KPiA+ PiA+PiA+Pj4gPj4gKwl2dG90YWwgPSBJOTE1X1JFQURfRlcoQlhUX01JUElfVFJBTlNfVlRPVEFM KDApKTsKPiA+PiA+PiA+Pj4gPgo+ID4+ID4+ID4+PiA+VGhpcyB2YWx1ZSBjYW4gYmUgZHVnIG91 dCBmcm9tIHRoZSBod21vZGUuCj4gPj4gPj4gPj4+ID4KPiA+PiA+PiA+Pj4KPiA+PiA+PiA+Pj4g WWVzLCB3aWxsIGdldCBpdCBmcm9tIGh3bW9kZSBhbmQgZHJvcCB0aGlzIGNoYW5nZS4KPiA+PiA+ PiA+Pj4KPiA+PiA+PiA+Pj4gPj4gKwlXQVJOX09OKCF2dG90YWwpOwo+ID4+ID4+ID4+PiA+PiAr CWlmICghdnRvdGFsKQo+ID4+ID4+ID4+PiA+PiArCQlyZXR1cm4gdWxTY2FubGluZU5vMjsKPiA+ PiA+PiA+Pj4gPj4gKwo+ID4+ID4+ID4+PiA+PiArCXVsU2NhbmxpbmVUaW1lID0gZGl2X2ZpeGVk MTYoMTAwMDAwMCwgdnRvdGFsICogdnJlZnJlc2gpOwo+ID4+ID4+ID4+PiA+PiArCXVsU2Nhbmxp bmVObzIgPSBkaXZfcm91bmRfdXBfdTMyX2ZpeGVkMTYoKHVsQ3VyclRpbWUgLQo+ID4+ID51bFBy ZXZUaW1lKSwKPiA+PiA+PiA+Pj4gPj4gKwkJCQkJCXVsU2NhbmxpbmVUaW1lKTsKPiA+PiA+PiA+ Pj4gPgo+ID4+ID4+ID4+PiA+U29tZXRoaW5nIGxpa2U6Cj4gPj4gPj4gPj4+ID5zY2FubGluZSA9 IGRpdl91NjQobXVsX3UzMl91MzIoY3VyciAtIHByZXYsIGNydGNfY2xvY2spLAo+ID4+ID4+ID4+ PiA+CQkgICAxMDAwICogY3J0Y19odG90YWwpOwo+ID4+ID4+ID4+PiA+Cj4gPj4gPj4gPj4+ID4+ ICsJdWxTY2FubGluZU5vMiA9ICh1bFNjYW5saW5lTm8yICsgdnRvdGFsKSAlIHZ0b3RhbDsKPiA+ PiA+PiA+Pj4gPgo+ID4+ID4+ID4+PiA+SSB0aGluayB0aGF0IHdvdWxkIGhhdmUgdG8gYmUgc29t ZXRoaW5nIGxpa2U6Cj4gPj4gPj4gPj4+ID5yZXR1cm4gKHNjYW5saW5lICsgdmJsYW5rX3N0YXJ0 KSAlIHZ0b3RhbDsKPiA+PiA+PiA+Pj4gPgo+ID4+ID4+ID4+Pgo+ID4+ID4+ID4+PiBZZXMgeW91 IGFyZSByaWdodC4gSXQgc2hvdWxkIGJlIHZibGFua19zdGFydC4gV2lsbCBmaXggdGhpcy4KPiA+ PiA+PiA+Pj4KPiA+PiA+PiA+Pj4gPkFsbCBpbiBhbGwgdGhpcyBsb29rcyBsaWtlIGEgcHJldHR5 IGRlY2VudCBhcHByb2FjaCB0byB0aGUgRFNJIHByb2JsZW0uCj4gPj4gPj4gPj4+ID4KPiA+PiA+ PiA+Pj4gPk9uZSBjb25jZXJuIGhlcmUgaXMgcm91bmRpbmcgaXNzdWVzIGFuZCBpbmFjY3VyYWNp ZXMgaW4gb3VyCj4gPj4gPj4gPj4+ID5jcnRjX2Nsb2NrLiBCdXQgc2luY2UgdGhlIGZyYW1lIHRp bWVzdGFtcCBpcyBzYW1wbGVkIGF0IHZibGFuawo+ID4+ID4+ID4+PiA+c3RhcnQgSSBndWVzcyB3 ZSBjYW4ndCBhY2NpZGVudGFsbHkgZ2V0IGFuIGFuc3dlciB0aGF0J3MKPiA+PiA+PiA+Pj4gPmVh cmxpZXIgdGhhbiB2Ymxhbmtfc3RhcnQgYXMgbG9uZyBhcyB3ZSByZWFsbHkgcGFzc2VkIHZibGFu awo+ID4+ID4+ID4+PiA+c3RhcnQgYWxyZWFkeS4gVGhhdCBzaG91bGQKPiA+PiA+PiA+Pm1ha2Ug dGhpcyBhdCBsZWFzdCBzdWl0YWJsZSBmb3IgdmJsYW5rIHRpbWVzdGFtcHMuCj4gPj4gPj4gPj4+ Cj4gPj4gPj4gPj4+IEkgYWxzbyBmZWVsIHRoZSBzYW1lLCB0aGlzIHNpdHVhdGlvbiBzaG91bGQg bmV2ZXIgb2NjdXIuCj4gPj4gPj4gPj4+Cj4gPj4gPj4gPj4+ID5BbmQgZm9yCj4gPj4gPj4gPj4+ ID50aGUgYXRvbWljIGV2YWRlLCBJIGd1ZXNzIGlmIHdlIGNsYW1wIG91ciB0aGUgc2NhbmxpbmUg YmVmb3JlCj4gPj4gPj4gPj4+ID50aGUKPiA+PiA+PiA+Pj4gPit2Ymxhbmtfc3RhcnQgc3VjaCB0 aGF0IGl0IG5ldmVyIHJlYWNoZXMgdnRvdGFsLCB3ZSBjYW4ndCBiZQo+ID4+ID4+ID4+PiA+K3N1 cmUgdGhhdAo+ID4+ID4+ID4+PiA+b3VyIHZibGFuayBldmFkZSBuZXZlciBpbmRpY2F0ZXMgdGhh dCB3ZSBhbHJlYWR5IHJlYWNoZWQgdGhlCj4gPj4gPj4gPj4+ID5zdGFydCBvZiB2YmxhbmsgcHJl bWF0dXJlbHkuCj4gPj4gPj4gPj4+ID4KPiA+PiA+PiA+Pj4gPlNvIG1heWJlIHNvbWV0aGluZyBs aWtlOgo+ID4+ID4+ID4+PiA+c2NhbGluZSA9IGRpdl91NjQoLi4uKTsKPiA+PiA+PiA+Pj4gPnNj YW5saW5lID0gbWluKHNjYW5saW5lLCB2dG90YWwgLSAxKTsKPiA+PiA+PiA+Pj4KPiA+PiA+PiA+ Pj4gSSBhbSBub3Qgc3VyZSBpZiB0aGUgdmFsdWUgb2Ygc2NhbmxpbmUgcmV0dXJuZWQgY2FuIGV2 ZXIgYmUKPiA+PiA+PiA+Pj4gZ3JlYXRlciB0aGFuIHZ0b3RhbCAtCj4gPj4gPj4gPj4xLgo+ID4+ ID4+ID4+PiBCdXQgd2UgY2FuIGhhdmUgYSBjaGVjayBqdXN0IHRvIGJlIHNhZmUuIE5vdCBzdXJl IGlmIEkgZnVsbHkKPiA+PiA+PiA+Pj4gZ290IHlvdXIgcG9pbnQKPiA+PiA+aGVyZS4KPiA+PiA+ PiA+Pgo+ID4+ID4+ID4+VGhlIHBvaW50IGlzIHRoYXQgdGhlIHRpbWVzdGFtcCBjb3VudGVyIG1p Z2h0IHRpY2sgYXQgYSBzbGlnaHRseQo+ID4+ID4+ID4+ZmFzdGVyIHJhdGUgdGhhbiB3ZSBtaWdo dCB0aGluay4gVGh1cyB3ZSBtaWdodCBlbmQgdXAgd2l0aCBtb3JlCj4gPj4gPj4gPj50aWNrcyBp biBvbmUgZnJhbWUgdGhhbiB3aGF0IHdlIGNhbGN1bGF0ZWQgYXMgdGhlIG1heGltdW0gZm9tCj4g Pj4gPj4gPj5jcnRjX2Nsb2NrIGV0Yy4gQnV0IGlmIHdlIGNsYW1wIHRoZSB2YWx1ZSBsaWtlIEkg c3VnZ2VzdGVkIHRoZW4KPiA+PiA+PiA+PmF0IGxlYXN0IHdlIHNob3VsZCBuZXZlciBnZXQgYW4g YW5zd2VyIHRoYXQgdGVsbHMgdXMgd2UncmUKPiA+PiA+PiA+PmFscmVhZHkgcGFzdCB0aGUgc3Rh cnQgb2YgdmJsYW5rIHdoZW4gaW4gcmVhbGl0eQo+ID4+ID4+ID53ZSdyZSBub3QuCj4gPj4gPj4g Pj4KPiA+PiA+PiA+Pk9mIGNvdXJzZSBhcyBEYW5pZWwgcG9pbnRlZCBvdXQgd2UgbWlnaHQgYWxz byBnZXQgaW50byB0cm91YmxlIGlmCj4gPj4gPj4gPj50aGUgY291bnRlciB0aWNrcyBzbG93ZXIg dGhhbiBleHBlY3RlZC4gVGhhdCBjb3VsZCBsZWFkIHVzIHRvCj4gPj4gPj4gPj50aGluayB0aGF0 IHdlIGRvbid0IG5lZWQgdG8gZG8gdGhlIHZibGFuayBldmFkZSB3aGVuIGluIGZhY3Qgd2UgZG8u Cj4gPj4gPj4gPj4KPiA+PiA+Pgo+ID4+ID4+IEhpIFZpbGxlLAo+ID4+ID4+IFdlIHRyaWVkIHRv IHRlc3Qgd2l0aCB0aGlzIGNvbmRpdGlvbiBhbmQgYXJlIGNhbGN1bGF0aW5nIHdyb25nIHNjYW5s aW5lcy4KPiA+PiA+PiBGb3IgZXg6Cj4gPj4gPj4gWyAgIDc5LjQxODk0M10gW2RybTpieHRfZHNp X2dldF9zY2FubGluZV0gKkVSUk9SKiBzY2FubGluZSA9IDIyNTM0LAo+ID4+ID5jcnRjX3Z0b3Rh bC0xID0gMTIxMSwgbWluIG9mIHR3byA9IDEyMTEKPiA+PiA+Cj4gPj4gPldlbGwsIHRoYXQgc2Nh bmxpbmUgbnVtYmVyIGxvb2tzIHRvdGFsbHkgYm9ndXMuIEhvdyBkaWQgeW91IGNhbGN1bGF0ZSBp dAo+ID5leGFjdGx5Pwo+ID4+ID4KPiA+Pgo+ID4+IElmIHdlIGhhdmUgbXVsdGlwbGUgc2NhbnMg b24gdGhlIHNhbWUgZnJhbWUgKG5vIG5ldyBmbGlwIGJlaW5nCj4gPj4gaXNzdWVkKS4gUHJldiB0 aW1lc3RhbXAgdmFsdWUgd2hpY2ggaXMgcmVhZCBmcm9tIEZyYW1ldGltZSBTdGFtcCB3aWxsCj4g Pj4gcmVtYWluIHNhbWUsIGJ1dCBjdXJyZW50IHRpbWUgc3RhbXAgd2lsbCBrZWVwIG9uIGluY3Jl bWVudGluZy4KPiA+Cj4gPlRoZSBmcmFtZSB0aW1lc3RhbXAgc2hvdWxkIGdldCBzYW1wbGVkIG9u IGV2ZXJ5IHZibGFuaywgd2hlcmVhcyB0aGUgZmxpcAo+ID50aW1lc3RhbXAgb25seSB3aGVuIGEg ZmxpcCBvY2N1cnMuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgdGltZXN0YW1wIHJlZ2lzdGVy Pwo+ID4KPiAKPiBZZXMsIHdlIGFyZSB1c2luZyB3aGF0IGlzIHRoZXJlIGluIHRoZSBwYXRjaC4g Cj4gTmFtZSBQaXBlIEEgRnJhbWUgVGltZSBTdGFtcAo+IFN5bWJvbCBQSVBFX0ZSTVRNU1RNUF9B Cj4gU3RhcnQgMHg3MDA0OAo+IEVuZCAweDcwMDRCCj4gCj4gSXRzIGJlaGF2aW5nIGFzIEZMSVAg VGltZXN0YW1wIHRob3VnaCAobm90IGJlaW5nIHVwZGF0ZWQgb24gZXZlcnkgdmJsYW5rX3N0YXJ0 KS4KPiBBdGxlYXN0IHdpdGggdGhlIHJlYWRiYWNrIHdoYXQgd2UgZ2V0IG9uIEFQTC4gCgpUaGVu IGl0J3MgYnJva2VuIGFuZCBwcm9iYWJseSBjYW4ndCBiZSB1c2VkIHdpdGhvdXQgaGF2aW5nIGEg ZGVjZW50IGlkZWEKb2YgaG93IGxvbmcgdGhlIGZyYW1lIGFjdHVhbGx5IGlzLiBXaGljaCBwcm9i YWJseSBtZWFucyB3ZSdkIG5lZWQKc29tZXRoaW5nIGxpa2Ugd2hhdCBDaHJpcyBzdWdnZXN0ZWQu CgpIbW0uIEl0J3Mgbm90IGEgY29tbWFuZCBtb2RlIGRpc3BsYXkgaXMgaXQ/CgotLSAKVmlsbGUg U3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK