From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC v1 3/7] drm/i915: Add Support for Multi Segment Gamma Mode Date: Thu, 28 Mar 2019 21:28:15 +0200 Message-ID: <20190328192815.GM3888@intel.com> References: <1552984218-3357-1-git-send-email-uma.shankar@intel.com> <1552984218-3357-4-git-send-email-uma.shankar@intel.com> <1552985186.2455.2.camel@intel.com> <20190319165922.GG3888@intel.com> <20190322135253.GS3888@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 C33EE6E806 for ; Thu, 28 Mar 2019 19:28:18 +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" , "Syrjala, Ville" , "Lankhorst, Maarten" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMjgsIDIwMTkgYXQgMDc6MDA6MzBQTSArMDAwMCwgU2hhbmthciwgVW1hIHdy b3RlOgo+IAo+IAo+ID4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ID5Gcm9tOiBWaWxsZSBT eXJqw6Rsw6QgW21haWx0bzp2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbV0KPiA+U2VudDog RnJpZGF5LCBNYXJjaCAyMiwgMjAxOSA3OjIzIFBNCj4gPlRvOiBTaGFua2FyLCBVbWEgPHVtYS5z aGFua2FyQGludGVsLmNvbT4KPiA+Q2M6IFN5cmphbGEsIFZpbGxlIDx2aWxsZS5zeXJqYWxhQGlu dGVsLmNvbT47IExhbmtob3JzdCwgTWFhcnRlbgo+ID48bWFhcnRlbi5sYW5raG9yc3RAaW50ZWwu Y29tPjsgaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID5TdWJqZWN0OiBSZTogW0lu dGVsLWdmeF0gW1JGQyB2MSAzLzddIGRybS9pOTE1OiBBZGQgU3VwcG9ydCBmb3IgTXVsdGkgU2Vn bWVudCBHYW1tYQo+ID5Nb2RlCj4gPgo+ID5PbiBXZWQsIE1hciAyMCwgMjAxOSBhdCAwNTowMzox NlBNICswMDAwLCBTaGFua2FyLCBVbWEgd3JvdGU6Cj4gPj4KPiA+Pgo+ID4+ID4tLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQo+ID4+ID5Gcm9tOiBTeXJqYWxhLCBWaWxsZQo+ID4+ID5TZW50OiBU dWVzZGF5LCBNYXJjaCAxOSwgMjAxOSAxMDoyOSBQTQo+ID4+ID5UbzogTGFua2hvcnN0LCBNYWFy dGVuIDxtYWFydGVuLmxhbmtob3JzdEBpbnRlbC5jb20+Cj4gPj4gPkNjOiBTaGFua2FyLCBVbWEg PHVtYS5zaGFua2FyQGludGVsLmNvbT47Cj4gPj4gPmludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmc7IFNoYXJtYSwgU2hhc2hhbmsKPiA+PiA+PHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+ OyBSb3BlciwgTWF0dGhldyBECj4gPj4gPjxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+ID4+ ID5TdWJqZWN0OiBSZTogW1JGQyB2MSAzLzddIGRybS9pOTE1OiBBZGQgU3VwcG9ydCBmb3IgTXVs dGkgU2VnbWVudAo+ID4+ID5HYW1tYSBNb2RlCj4gPj4gPgo+ID4+ID5PbiBUdWUsIE1hciAxOSwg MjAxOSBhdCAxMDo0NjoyN0FNICswMjAwLCBMYW5raG9yc3QsIE1hYXJ0ZW4gd3JvdGU6Cj4gPj4g Pj4gdGlzIDIwMTktMDMtMTkga2xvY2thbiAxNDowMCArMDUzMCBza3JldiBVbWEgU2hhbmthcjoK PiA+PiA+PiA+IE11bHRpIFNlZ21lbnQgR2FtbWEgTW9kZSBpcyBhZGRlZCBpbiBHZW4xMSsgcGxh dGZvcm1zLgo+ID4+ID4+ID4gQWRkZWQgYSBwcm9wZXJ0eSBpbnRlcmZhY2UgdG8gZW5hYmxlIHRo YXQuCj4gPj4gPj4gPgo+ID4+ID4+ID4gU2lnbmVkLW9mZi1ieTogVW1hIFNoYW5rYXIgPHVtYS5z aGFua2FyQGludGVsLmNvbT4KPiA+PiA+PiA+IC0tLQo+ID4+ID4+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgfCAgMSArCj4gPj4gPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY29sb3IuYyB8IDIzICsrKysrKysrKysrKysrKysrKysrKysrCj4gPj4gPj4gPiAg aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICB8IDE0ICsrKysrKysrKysrKysrCj4g Pj4gPj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspCj4gPj4gPj4gPgo+ID4+ ID4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+PiA+ PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBpbmRleCAwMjIzMWFlLi5mMjBk NDE4IDEwMDY0NAo+ID4+ID4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ID4+ID4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4+ID4+ ID4gQEAgLTE3MzYsNiArMTczNiw3IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiA+PiA+ PiA+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqZm9yY2VfYXVkaW9fcHJvcGVydHk7Cj4gPj4gPj4g Pgo+ID4+ID4+ID4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpnYW1tYV9tb2RlX3Byb3BlcnR5Owo+ ID4+ID4+ID4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICptdWx0aV9zZWdtZW50X2dhbW1hX21vZGVf cHJvcGVydHk7Cj4gPj4gPj4KPiA+PiA+PiBTZWVtcyB0byBtZSBib3RoIHByb3BlcnRpZXMgc2hv dWxkIGJlIHBhcnQgb2YgZHJtIGNvcmU/Cj4gPj4KPiA+PiBTdXJlIE1hYXJ0ZW4sIHdlIGNhbiBt b3ZlIGdhbW1hX21vZGUgcHJvcGVydHkgdG8gZHJtLgo+ID4+Cj4gPj4gPj4KPiA+PiA+PiA+ICAJ LyogaGRhL2k5MTUgYXVkaW8gY29tcG9uZW50ICovCj4gPj4gPj4gPiAgCXN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudCAqYXVkaW9fY29tcG9uZW50OyBkaWZmIC0tZ2l0Cj4gPj4gPj4gPiBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+PiA+PiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ID4+ID4+ID4gaW5kZXggOWQ0M2QxOS4uMzk5ZDYzZCAx MDA2NDQKPiA+PiA+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMK PiA+PiA+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKPiA+PiA+ PiA+IEBAIC0xNDksNiArMTQ5LDI2IEBAIHN0YXRpYyBib29sIGNydGNfc3RhdGVfaXNfbGVnYWN5 X2dhbW1hKGNvbnN0Cj4gPj4gPj4gPiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZQo+ID4+ID4+ID4gIAlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZS5iYXNl LCBwcm9wLCAwKTsgIH0KPiA+PiA+PiA+Cj4gPj4gPj4gPiArdm9pZAo+ID4+ID4+ID4gK2ludGVs X2F0dGFjaF9tdWx0aV9zZWdtZW50X2dhbW1hX21vZGVfcHJvcGVydHkoc3RydWN0IGludGVsX2Ny dGMKPiA+PiA+PiA+ICpjcnRjKQo+ID4+ID4+ID4gK3sKPiA+PiA+PiA+ICsJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Owo+ID4+ID4+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPj4gPj4gPiArCXN0cnVjdCBkcm1f cHJvcGVydHkgKnByb3A7Cj4gPj4gPj4gPiArCj4gPj4gPj4gPiArCXByb3AgPSBkZXZfcHJpdi0+ bXVsdGlfc2VnbWVudF9nYW1tYV9tb2RlX3Byb3BlcnR5Owo+ID4+ID4+ID4gKwlpZiAoIXByb3Ap IHsKPiA+PiA+PiA+ICsJCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlKGRldiwgRFJNX01PREVf UFJPUF9CTE9CLAo+ID4+ID4+ID4gKwkJCQkJICAgIk11bHRpLXNlZ21lbnQgR2FtbWEiLAo+ID4+ ID4+ID4gMCk7Cj4gPj4gPj4gPiArCQlpZiAoIXByb3ApCj4gPj4gPj4gPiArCQkJcmV0dXJuOwo+ ID4+ID4+ID4gKwo+ID4+ID4+ID4gKwkJZGV2X3ByaXYtPm11bHRpX3NlZ21lbnRfZ2FtbWFfbW9k ZV9wcm9wZXJ0eSA9IHByb3A7Cj4gPj4gPj4gPiArCX0KPiA+PiA+PiA+ICsKPiA+PiA+PiA+ICsJ ZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNydGMtPmJhc2UuYmFzZSwgcHJvcCwgMCk7IH0K PiA+PiA+PiA+ICsKPiA+PiA+PiA+ICAvKgo+ID4+ID4+ID4gICAqIFdoZW4gdXNpbmcgbGltaXRl ZCByYW5nZSwgbXVsdGlwbHkgdGhlIG1hdHJpeCBnaXZlbiBieQo+ID4+ID4+ID4gdXNlcnNwYWNl IGJ5Cj4gPj4gPj4gPiAgICogdGhlIG1hdHJpeCB0aGF0IHdlIHdvdWxkIHVzZSBmb3IgdGhlIGxp bWl0ZWQgcmFuZ2UuCj4gPj4gPj4gPiBAQCAtOTUzLDQgKzk3Myw3IEBAIHZvaWQgaW50ZWxfY29s b3JfaW5pdChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+PiA+PiA+ICAJCQkJCSAgIElOVEVM X0lORk8oZGV2X3ByaXYpLQo+ID4+ID4+ID4gPmNvbG9yLmdhbW1hX2x1dF9zaXplKTsKPiA+PiA+ PiA+Cj4gPj4gPj4gPiAgCWludGVsX2F0dGFjaF9nYW1tYV9tb2RlX3Byb3BlcnR5KGNydGMpOwo+ ID4+ID4+ID4gKwo+ID4+ID4+ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPiA+ PiA+PiA+ICsJCWludGVsX2F0dGFjaF9tdWx0aV9zZWdtZW50X2dhbW1hX21vZGVfcHJvcGVydHko Y3J0YykKPiA+PiA+PiA+IDsKPiA+PiA+PiA+ICB9Cj4gPj4gPj4gPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gPj4gPj4gPiBiL2luY2x1ZGUvdWFwaS9kcm0vaTkx NV9kcm0uaCBpbmRleCBhYTJkNGM3Li44ZjE5NzRlIDEwMDY0NAo+ID4+ID4+ID4gLS0tIGEvaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gPj4gPj4gPiArKysgYi9pbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmgKPiA+PiA+PiA+IEBAIC0xODQyLDYgKzE4NDIsMjAgQEAgc3RydWN0IGRybV9p OTE1X3F1ZXJ5X3RvcG9sb2d5X2luZm8gewo+ID4+ID4+ID4gIAlfX3U4IGRhdGFbXTsKPiA+PiA+ PiA+ICB9Owo+ID4+ID4+ID4KPiA+PiA+PiA+ICsvKgo+ID4+ID4+ID4gKyAqIFN0cnVjdHVyZSBm b3IgbXV0aSBzZWdtZW50ZWQgZ2FtbWEgbHV0ICAqLyBzdHJ1Y3QKPiA+PiA+PiA+ICttdWx0aV9z ZWdtZW50X2dhbW1hX2x1dCB7Cj4gPj4gPj4gPiArCS8qIE51bWJlciBvZiBMdXQgU2VnbWVudHMg Ki8KPiA+PiA+PiA+ICsJX191OCBzZWdtZW50X2NudDsKPiA+PiA+PiA+ICsJLyogUHJlY2lzb24g b2YgTFVUIGVudHJpZXMgaW4gYml0cyAqLwo+ID4+ID4+ID4gKwlfX3U4IHByZWNpc2lvbl9iaXRz Owo+ID4+ID4+ID4gKwkvKiBQb2ludGVyIGhhdmluZyBudW1iZXIgb2YgTFVUIGVsZW1lbnRzIGlu IGVhY2ggc2VnbWVudCAqLwo+ID4+ID4+ID4gKwlfX3UzMiAqc2VnbWVudF9sdXRfY250X3B0cjsK PiA+PiA+PiA+ICsJLyogUG9pbnRlciB0byBzdG9yZSBleGFjdCBsdXQgdmFsdWVzIGZvciBlYWNo IHNlZ21lbnQgKi8KPiA+PiA+PiA+ICsJX191MzIgKnNlZ21lbnRfbHV0X3B0cjsKPiA+PiA+PiA+ ICt9Owo+ID4+ID4+ID4KPiA+PiA+PiBBbmQgcGVyaGFwcyBhIHZhcmlhdGlvbiBvZiB0aGlzIGFz IGRlc2NyaXB0aW9uIGZvciBhbGwgZ2FtbWEgbW9kZQo+ID4+ID4+IHR5cGVzLgo+ID4+ID4KPiA+ PiA+VGhpcyBpcyBteSBvbGQgaWRlYSBob3cgdG8gcmVwcmVzZW50IGZhbmNpZXIgTFVUczoKPiA+ PiA+aHR0cHM6Ly9naXRodWIuY29tL3ZzeXJqYWxhL2xpbnV4L2NvbW1pdC8xYWFiNzYyNWRjYTc3 YjgzMWUwNWUzMmFmMTc5Cj4gPj4gPjA0YzIxMzAKPiA+PiA+MGZmOTUKPiA+PiA+aHR0cHM6Ly9n aXRodWIuY29tL3ZzeXJqYWxhL2xpbnV4L2NvbW1pdC83NGZmYTVkNDQxNzAyYzUzODMwZjZkNzFi YjY4Cj4gPj4gPjdiYjBhZTVhCj4gPj4gPmE1OGYKPiA+PiA+Cj4gPj4gPkVhY2ggZGlzdGluY3Qg c2VnbWVudCBvZiB0aGUgY3VydmUgd291bGQgYmUganVzdCBkZXNjcmliZWQgYnkgYSBmaXhlZAo+ ID4+ID5zaXplIHJhbmdlIGRlc2NyaXB0b3IsIGFuZCB0aGUgZW50aXJlIGJsb2Igd291bGQgYmUg bWFkZSB1cCBvZgo+ID4+ID5ob3dldmVyIG1hbnkgb2YgdGhvc2UgYXJlIG5lZWRlZC4KPiA+PiA+ Cj4gPj4gPlRoYXQgd2F5IHdlIGRvbid0IGV2ZW4gbmVlZCBhbnkgbXVsdGktc2VnbWVudCB1YXBp IGZvciBzZXR0aW5nIHVwIHRoZQo+ID4+ID5MVVQuIFRoZSBibG9iIGZvciB0aGF0IHdvdWxkIGp1 c3QgY29udGFpbiBhcyBtYW55IGVudHJpZXMgYXMgdGhlIExVVCBuZWVkcyBpbiB0aGF0Cj4gPnNw ZWNpZmljIG1vZGUuCj4gPj4KPiA+PiBIaSBWaWxsZSwKPiA+PiBUaGlzIGFsc28gc291bmRzIGdv b2QuICBXaGF0IGlzIHlvdXIgc3VnZ2VzdGlvbiBvbiB0aGlzLiBBbnkKPiA+PiByZWNvbW1lbmRh dGlvbiBvbiBob3cgdG8gdGFrZSB0aGlzIGZvcndhcmQuCj4gPgo+ID5JIHRoaW5rIG15IGRlc2ln biBzaG91bGQgYmUgbW9yZSBvciBsZXNzIGZlYXNpYmxlIHRvIHVzZSBmb3IgdXNlcnNwYWNlLiBJ IGRpZG4ndCBhY3R1YWxseQo+ID5nZXQgYXMgZmFyIGFzIHRvIHdyaXRlIHVzZXJzcGFjZSBjb2Rl IGZvciBpdCwgYnV0IG15IGlkZWEgZm9yIHgxMSB3YXMgc29tZXRoaW5nIGFsb25nCj4gPnRoZXNl IGxpbmVzOgo+ID4KPiA+MSkgZmluZCBhIG5vbi1pbnRlcnBvbGF0ZWQgZ2FtbWEgbW9kZSB3aXRo IG51bV9lbnRyaWVzID49IDE8PHNjcmVlbiBicGMKPiA+MikgaWYgbm9uZSB3YXMgZm91bmQgcGlj ayBhbiBpbnRlcnBvbGF0ZWQgZ2FtbWEgbW9kZSB3aXRoCj4gPiAgIGlucHV0L291dHB1dCBicGMg Pj0gc2NyZWVuIGJwYwo+ID4zKSBmYWxsIGJhY2sgdG8gd2hhdGV2ZXIgaXMgbGVmdAo+ID4KPiA+ VGhhdCBhcHByb2FjaCBzaG91bGQgd29yayBmb3IgaTkxNSArIGludGVsIGRkeCBhdCBsZWFzdC4g SW4gdGhlb3J5IGl0IHNob3VsZCBiZSBmaW5kIGZvcgo+ID5nZW5lcmljIHVzZXJzcGFjZSB0b28s IGJ1dCBtYXliZSBpdCB3b3VsZCBuZWVkIGEgZmV3IGV4dHJhIHR3ZWFrcy4KPiA+Cj4gPkFsc28g d2UgbmVlZCBmcDE2IHRvIGFjdHVhbGx5IGJlIGFibGUgdG8gdGVzdCB0aGUgaW50ZXJwb2xhdGVk IG1vZGVzIGZ1bGx5LiBXZSBub3cKPiA+aGF2ZSB0aGF0IGZvciBpY2wsIGJ1dCBJIHN0aWxsIG5l ZWQgdG8gcG9zdCBteSAiZnAxNiBmb3IgZXZlcnl0aGluZyBnZW40KyIgZm9sbG93dXAKPiA+c2Vy aWVzLiBBbmQgYWZ0ZXIgdGhhdCB3ZSBuZWVkIHRvIGdsdWUgaXQgYWxsIHRvZ2V0aGVyIGluIGln dC4KPiA+Cj4gPkFueXdheXMsIEkndmUgbm90IHdvcmtlZCBvbiB0aGlzIGJyYW5jaCBteXNlbGYg aW4gYSB3aGlsZSBiZWNhdXNlIEkgd2FudCB0byBnZXQgdGhlCj4gPmN1cnJlbnQgZ2FtbWEgc3Vw cG9ydCBmaXhlZC9jbGVhbmVkIHVwIGZpcnN0Lgo+ID5JIGhhdmUgYXQgbGVhc3Qgb25lIG1vcmUg c2VyaWVzIGFmdGVyIHRoZSBjdXJyZW50IG9uZSBnZXRzIHJldmlld2VkLiBBbmQgYWZ0ZXIgdGhh dCB3ZQo+ID5zdGlsbCBoYXZlIHRoZSBjdXJyZW50IGxpbWl0ZWQgcmFuZ2UveXV2IHZzLiBjdG0g dnMuIGRlZ2FtbWEvZ2FtbWEgYnVncyB0byBzb3J0IG91dC4KPiA+Cj4gPlNvIHllYWgsIEknZCBw cmVmZXIgdG8gbWFrZSB0aGUgY3VycmVudCBzdHVmZiBzZW5zaWJsZSBiZWZvcmUgc3BlbmRpbmcg dGltZSBhZGRpbmcKPiA+ZmFuY2llciBzdHVmZiBvbiB0b3AuIEJ1dCBpbiB0aGUgbWVhbnRpbWUg aWYgeW91IHdhbnQgdG8gcGljayB1cCB3aGVyZSBJIGxlZnQgb2ZmIHdpdGgKPiA+dGhpcyBnYW1t YSBtb2RlIEknZCBiZSBmaW5lIHdpdGggdGhhdC4KPiAKPiBIaSBWaWxsZSwKPiBUaGFua3MgZm9y IHNoYXJpbmcgdGhlc2UgZGV0YWlscyBhbmQgYWxzbyB0aGUgZGVzaWduIHdoYXQgeW91IGhhdmUg aXMgcmVhbGx5IG5pY2UuCj4gCj4gSSB3YXMgdHJ5aW5nIHRvIGJ1aWxkIG9uIHRvcCBvZiBpdCBh bmQgdHJ5aW5nIHRvIGNoZWNrIHRoZSBpbnRlcmZhY2UgYmVmb3JlIGZsb2F0aW5nIHRoZSBuZXh0 Cj4gdmVyc2lvbi4gVGhlcmUgc2VlbXMgdG8gYmUgYSBsaW1pdGF0aW9uIGluIGNyZWF0aW5nIGEg cHJvcGVydHkgd2l0aCBib3RoIEJMT0IgYW5kIEVOVU0KPiBmbGFncy4KPiAKPiAvKiBPbmx5IG9u ZSBsZWdhY3kgdHlwZSBhdCBhIHRpbWUgcGxlYXNlICovCj4gICAgICAgICBpZiAobGVnYWN5X3R5 cGUgJiYgIWlzX3Bvd2VyX29mXzIobGVnYWN5X3R5cGUpKQo+ICAgICAgICAgICAgICAgICByZXR1 cm4gZmFsc2U7Cj4gCj4gQW55IHN1Z2dlc3Rpb24gb24gaG93IHRvIGRlYWwgd2l0aCB0aGlzIGxp bWl0YXRpb24uCgpJIHRoaW5rIHdlIHNob3VsZCBqdXN0IGRlZmluZSBhIG5ldyBCTE9CX0VOVU0g dHlwZS4gVHJ5aW5nIHRvIG1peCB0d28Kb2xkIHR5cGVzIGxpa2UgdGhpcyBjb3VsZCBlbmQgaW4g ZXhwbG9zaW9ucyB3aXRoIGV4aXN0aW5nIHVzZXJzcGFjZSBzbwpzYWZlciB0byBtYWtlIGl0IGEg dG90YWxseSBkaXN0aW5jdCB0eXBlLgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=