From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH v10 1/3] drm/i915: Add heuristic to determine better way to adjust brightness Date: Fri, 2 Jun 2017 17:56:43 +0000 Message-ID: <1496427333.2637.13.camel@dk-H97M-D3H> References: <20170527014209.186331-1-puthik@chromium.org> <20170527014209.186331-2-puthik@chromium.org> <1496426472.2637.8.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1496426472.2637.8.camel@dk-H97M-D3H> Content-Language: en-US Content-ID: <8714C206D04C204E9448B956B145D114@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "puthik@chromium.org" Cc: "daniel.vetter@ffwll.ch" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE3LTA2LTAyIGF0IDE3OjQyICswMDAwLCBQYW5kaXlhbiwgRGhpbmFrYXJhbiB3 cm90ZToNCg0KU29tZWhvdyB0aGUgQ0MncyBnb3QgcmVtb3ZlZCBpbiBteSBwcmV2aW91cyByZXBs eSwgYWRkaW5nIHRoZW0gYmFjay4gU2VlDQpvbmUgYWRkaXRpb25hbCBjb21tZW50IGJlbG93Lg0K DQoNCj4gT24gRnJpLCAyMDE3LTA1LTI2IGF0IDE4OjQyIC0wNzAwLCBQdXRoaWtvcm4gVm9yYXZv b3RpdmF0IHdyb3RlOg0KPiA+IEFkZCBoZXVyaXN0aWMgdG8gZGVjaWRlIHRoYXQgQVVYIG9yIFBX TSBwaW4gc2hvdWxkIHVzZSBmb3INCj4gPiBiYWNrbGlnaHQgYnJpZ2h0bmVzcyBhZGp1c3RtZW50 IGFuZCBtb2RpZnkgaTkxNSBwYXJhbSBkZXNjcmlwdGlvbg0KPiA+IHRvIGhhdmUgYXV0bywgZm9y Y2UgZGlzYWJsZSwgYW5kIGZvcmNlIGVuYWJsZS4NCj4gPiANCj4gPiBUaGUgaGV1cmlzdGljIHRv IGRldGVybWluZSB0aGF0IHVzaW5nIEFVWCBwaW4gaXMgYmV0dGVyIHRoYW4gdXNpbmcNCj4gPiBQ V00gcGluIGlzIHRoYXQgdGhlIHBhbmVsIHN1cHBvcnQgYW55IG9mIHRoZSBmZWF0dXJlIGxpc3Qg aGVyZS4NCj4gPiAtIFJlZ2lvbmFsIGJhY2tsaWdodCBicmlnaHRuZXNzIGFkanVzdG1lbnQNCj4g PiAtIEJhY2tsaWdodCBQV00gZnJlcXVlbmN5IHNldA0KPiA+IC0gTW9yZSB0aGFuIDggYml0cyBy ZXNvbHV0aW9uIG9mIGJyaWdodG5lc3MgbGV2ZWwNCj4gPiAtIEJhY2tsaWdodCBlbmFibGVtZW50 IHZpYSBBVVggYW5kIG5vdCBieSBCTF9FTkFCTEUgcGluDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1i eTogUHV0aGlrb3JuIFZvcmF2b290aXZhdCA8cHV0aGlrQGNocm9taXVtLm9yZz4NCj4gPiAtLS0N Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYyAgICAgICAgICAgIHwgIDcg Ky0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmggICAgICAgICAgICB8 ICAyICstDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2F1eF9iYWNrbGlnaHQu YyB8IDY0ICsrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPiA+ICAzIGZpbGVzIGNoYW5nZWQs IDY2IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3BhcmFtcy5jDQo+ID4gaW5kZXggYjZhN2UzNjNkMDc2Li4zNzU4YWUxZjExYjQgMTAw NjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYw0KPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMNCj4gPiBAQCAtNjMsNyArNjMs NyBAQCBzdHJ1Y3QgaTkxNV9wYXJhbXMgaTkxNSBfX3JlYWRfbW9zdGx5ID0gew0KPiA+ICAJLmh1 Y19maXJtd2FyZV9wYXRoID0gTlVMTCwNCj4gPiAgCS5lbmFibGVfZHBfbXN0ID0gdHJ1ZSwNCj4g PiAgCS5pbmplY3RfbG9hZF9mYWlsdXJlID0gMCwNCj4gPiAtCS5lbmFibGVfZHBjZF9iYWNrbGln aHQgPSBmYWxzZSwNCj4gPiArCS5lbmFibGVfZHBjZF9iYWNrbGlnaHQgPSAtMSwNCj4gPiAgCS5l bmFibGVfZ3Z0ID0gZmFsc2UsDQo+ID4gIH07DQo+ID4gIA0KPiA+IEBAIC0yNDYsOSArMjQ2LDEw IEBAIE1PRFVMRV9QQVJNX0RFU0MoZW5hYmxlX2RwX21zdCwNCj4gPiAgbW9kdWxlX3BhcmFtX25h bWVkX3Vuc2FmZShpbmplY3RfbG9hZF9mYWlsdXJlLCBpOTE1LmluamVjdF9sb2FkX2ZhaWx1cmUs IHVpbnQsIDA0MDApOw0KPiA+ICBNT0RVTEVfUEFSTV9ERVNDKGluamVjdF9sb2FkX2ZhaWx1cmUs DQo+ID4gIAkiRm9yY2UgYW4gZXJyb3IgYWZ0ZXIgYSBudW1iZXIgb2YgZmFpbHVyZSBjaGVjayBw b2ludHMgKDA6ZGlzYWJsZWQgKGRlZmF1bHQpLCBOOmZvcmNlIGZhaWx1cmUgYXQgdGhlIE50aCBm YWlsdXJlIGNoZWNrIHBvaW50KSIpOw0KPiA+IC1tb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxlX2Rw Y2RfYmFja2xpZ2h0LCBpOTE1LmVuYWJsZV9kcGNkX2JhY2tsaWdodCwgYm9vbCwgMDYwMCk7DQo+ ID4gK21vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUoZW5hYmxlX2RwY2RfYmFja2xpZ2h0LCBpOTE1 LmVuYWJsZV9kcGNkX2JhY2tsaWdodCwgaW50LCAwNjAwKTsNCj4gPiAgTU9EVUxFX1BBUk1fREVT QyhlbmFibGVfZHBjZF9iYWNrbGlnaHQsDQo+ID4gLQkiRW5hYmxlIHN1cHBvcnQgZm9yIERQQ0Qg YmFja2xpZ2h0IGNvbnRyb2wgKGRlZmF1bHQ6ZmFsc2UpIik7DQo+ID4gKwkiRW5hYmxlIHN1cHBv cnQgZm9yIERQQ0QgYmFja2xpZ2h0IGNvbnRyb2wgIg0KPiA+ICsJIigtMTphdXRvIChkZWZhdWx0 KSwgMDpmb3JjZSBkaXNhYmxlLCAxOmZvcmNlIGVuYWJsZWQgaWYgc3VwcG9ydGVkIik7DQo+ID4g IA0KPiA+ICBtb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxlX2d2dCwgaTkxNS5lbmFibGVfZ3Z0LCBi b29sLCAwNDAwKTsNCj4gPiAgTU9EVUxFX1BBUk1fREVTQyhlbmFibGVfZ3Z0LA0KPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9wYXJhbXMuaA0KPiA+IGluZGV4IDM0MTQ4Y2M4NjM3Yy4uYWMwMmVmY2U2 ZTIyIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmgN Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5oDQo+ID4gQEAgLTY2 LDcgKzY2LDcgQEANCj4gPiAgCWZ1bmMoYm9vbCwgdmVyYm9zZV9zdGF0ZV9jaGVja3MpOyBcDQo+ ID4gIAlmdW5jKGJvb2wsIG51Y2xlYXJfcGFnZWZsaXApOyBcDQo+ID4gIAlmdW5jKGJvb2wsIGVu YWJsZV9kcF9tc3QpOyBcDQo+ID4gLQlmdW5jKGJvb2wsIGVuYWJsZV9kcGNkX2JhY2tsaWdodCk7 IFwNCj4gPiArCWZ1bmMoaW50LCBlbmFibGVfZHBjZF9iYWNrbGlnaHQpOyBcDQoNCg0KUGxlYXNl IG1vdmUgdGhpcyBhYm92ZSB0aGUgYm9vbHMsIHNlZSBjb21tZW50IGluIGNvZGUgdGhhdCdzIGEg ZmV3IGxpbmVzDQphYm92ZS4NCg0KLURLDQoNCj4gPiAgCWZ1bmMoYm9vbCwgZW5hYmxlX2d2dCkN Cj4gPiAgDQo+ID4gICNkZWZpbmUgTUVNQkVSKFQsIG1lbWJlcikgVCBtZW1iZXINCj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jDQo+ID4gaW5kZXgg YTA5OTVjMDBmYzg0Li5jODlhYWU4MDQ2NTkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jDQo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jDQo+ID4gQEAgLTQzLDYgKzQzLDkgQEAg c3RhdGljIHZvaWQgc2V0X2F1eF9iYWNrbGlnaHRfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsIGJvb2wgZW5hYmxlKQ0KPiA+ICAJZWxzZQ0KPiA+ICAJCXJlZ192YWwgJj0gfihEUF9F RFBfQkFDS0xJR0hUX0VOQUJMRSk7DQo+ID4gIA0KPiA+ICsJLyogVE9ETzogSWYgdGhlIHBhbmVs IGFsc28gc3VwcG9ydCBlbmFibGluZyBiYWNrbGlnaHQgdmlhIEJMX0VOQUJMRSBwaW4sDQo+ID4g KwkgKiB0aGUgYmFja2xpZ2h0IHdpbGwgYmUgZW5hYmxlZCBhZ2FpbiBpbiBfaW50ZWxfZWRwX2Jh Y2tsaWdodF9vbigpDQo+ID4gKwkgKi8NCj4gDQo+IFVucmVsYXRlZCBodW5rLCBwbGVhc2UgcmVt b3ZlLiBUaGlzIHNob3VsZCBoYXZlIGJlZW4gaW5jbHVkZWQgaW4gb25lIG9mDQo+IHRoZSBwcmV2 aW91cyBwYXRjaGVzLg0KPiANCj4gPiAgCWlmIChkcm1fZHBfZHBjZF93cml0ZWIoJmludGVsX2Rw LT5hdXgsIERQX0VEUF9ESVNQTEFZX0NPTlRST0xfUkVHSVNURVIsDQo+ID4gIAkJCSAgICAgICBy ZWdfdmFsKSAhPSAxKSB7DQo+ID4gIAkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvICVzIGF1eCBi YWNrbGlnaHRcbiIsDQo+ID4gQEAgLTE2OCwxNSArMTcxLDY2IEBAIGludGVsX2RwX2F1eF9kaXNw bGF5X2NvbnRyb2xfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpDQo+ ID4gIAkvKiBDaGVjayB0aGUgIGVEUCBEaXNwbGF5IGNvbnRyb2wgY2FwYWJpbGl0aWVzIHJlZ2lz dGVycyB0byBkZXRlcm1pbmUgaWYNCj4gPiAgCSAqIHRoZSBwYW5lbCBjYW4gc3VwcG9ydCBiYWNr bGlnaHQgY29udHJvbCBvdmVyIHRoZSBhdXggY2hhbm5lbA0KPiA+ICAJICovDQo+ID4gLQlpZiAo aW50ZWxfZHAtPmVkcF9kcGNkWzFdICYgRFBfRURQX1RDT05fQkFDS0xJR0hUX0FESlVTVE1FTlRf Q0FQICYmDQo+ID4gLQkgICAgKGludGVsX2RwLT5lZHBfZHBjZFsyXSAmIERQX0VEUF9CQUNLTElH SFRfQlJJR0hUTkVTU19BVVhfU0VUX0NBUCkgJiYNCj4gPiAtCSAgICAhKGludGVsX2RwLT5lZHBf ZHBjZFsyXSAmIERQX0VEUF9CQUNLTElHSFRfQlJJR0hUTkVTU19QV01fUElOX0NBUCkpIHsNCj4g PiArCWlmICgoaW50ZWxfZHAtPmVkcF9kcGNkWzFdICYgRFBfRURQX1RDT05fQkFDS0xJR0hUX0FE SlVTVE1FTlRfQ0FQKSAmJg0KPiA+ICsJICAgIChpbnRlbF9kcC0+ZWRwX2RwY2RbMl0gJiBEUF9F RFBfQkFDS0xJR0hUX0JSSUdIVE5FU1NfQVVYX1NFVF9DQVApKSB7DQo+ID4gIAkJRFJNX0RFQlVH X0tNUygiQVVYIEJhY2tsaWdodCBDb250cm9sIFN1cHBvcnRlZCFcbiIpOw0KPiA+ICAJCXJldHVy biB0cnVlOw0KPiA+ICAJfQ0KPiA+ICAJcmV0dXJuIGZhbHNlOw0KPiA+ICB9DQo+ID4gIA0KPiA+ ICsvKg0KPiA+ICsgKiBIZXVyaXN0aWMgZnVuY3Rpb24gd2hldGhlciB3ZSBzaG91bGQgdXNlIEFV WCBmb3IgYmFja2xpZ2h0IGFkanVzdG1lbnQgb3Igbm90Lg0KPiA+ICsgKg0KPiA+ICsgKiBXZSBz aG91bGQgdXNlIEFVWCBmb3IgYmFja2xpZ2h0IGJyaWdodG5lc3MgYWRqdXN0bWVudCBpZiBwYW5l bCBkb2Vzbid0IHRoaXMNCj4gPiArICogdmlhIFBXTSBwaW4gb3IgdXNpbmcgQVVYIGlzIGJldHRl ciB0aGFuIHVzaW5nIFBXTSBwaW4uDQo+ID4gKyAqDQo+ID4gKyAqIFRoZSBoZXVyaXN0aWMgdG8g ZGV0ZXJtaW5lIHRoYXQgdXNpbmcgQVVYIHBpbiBpcyBiZXR0ZXIgdGhhbiB1c2luZyBQV00gcGlu IGlzDQo+ID4gKyAqIHRoYXQgdGhlIHBhbmVsIHN1cHBvcnQgYW55IG9mIHRoZSBmZWF0dXJlIGxp c3QgaGVyZS4NCj4gPiArICogLSBSZWdpb25hbCBiYWNrbGlnaHQgYnJpZ2h0bmVzcyBhZGp1c3Rt ZW50DQo+ID4gKyAqIC0gQmFja2xpZ2h0IFBXTSBmcmVxdWVuY3kgc2V0DQo+ID4gKyAqIC0gTW9y ZSB0aGFuIDggYml0cyByZXNvbHV0aW9uIG9mIGJyaWdodG5lc3MgbGV2ZWwNCj4gPiArICogLSBC YWNrbGlnaHQgZW5hYmxlbWVudCB2aWEgQVVYIGFuZCBub3QgYnkgQkxfRU5BQkxFIHBpbg0KPiA+ ICsgKg0KPiA+ICsgKiBJZiBhbGwgYWJvdmUgYXJlIG5vdCB0cnVlLCBhc3N1bWUgdGhhdCB1c2lu ZyBQV00gcGluIGlzIGJldHRlci4NCj4gPiArICovDQo+ID4gK3N0YXRpYyBib29sDQo+ID4gK2lu dGVsX2RwX2F1eF9kaXNwbGF5X2NvbnRyb2xfaGV1cmlzdGljKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikNCj4gPiArew0KPiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmY29ubmVjdG9yLT5lbmNvZGVyLT5iYXNlKTsNCj4gPiArCXVpbnQ4 X3QgcmVnX3ZhbDsNCj4gPiArDQo+ID4gKwkvKiBQYW5lbCBkb2Vzbid0IHN1cHBvcnQgYWRqdXN0 aW5nIGJhY2tsaWdodCBicmlnaHRuZXNzIHZpYSBQV04gcGluICovDQo+ID4gKwlpZiAoIShpbnRl bF9kcC0+ZWRwX2RwY2RbMV0gJiBEUF9FRFBfQkFDS0xJR0hUX0JSSUdIVE5FU1NfUFdNX1BJTl9D QVApKQ0KPiANCj4gSXNuJ3QgQkFDS0xJR0hUX0JSSUdIVE5FU1NfUFdNX1BJTl9DQVAgaW4gZWRw X2RwY2RbMl0gPw0KPiANCj4gDQo+ID4gKwkJcmV0dXJuIHRydWU7DQo+ID4gKw0KPiA+ICsJLyog UGFuZWwgc3VwcG9ydHMgcmVnaW9uYWwgYmFja2xpZ2h0IGJyaWdodG5lc3MgYWRqdXN0bWVudCAq Lw0KPiA+ICsJaWYgKGRybV9kcF9kcGNkX3JlYWRiKCZpbnRlbF9kcC0+YXV4LCBEUF9FRFBfR0VO RVJBTF9DQVBfMywNCj4gDQo+IFNwZWMgc2F5cyB0aGlzIHJlZ2lzdGVyIGlzIG5ldyB0byBlRFAg MS40LiBJIGRvbid0IHNlZSBhIGNoZWNrIGZvcg0KPiB2ZXJzaW9uLg0KPiANCj4gIA0KPiA+ICsJ CQkgICAgICAmcmVnX3ZhbCkgIT0gMSkgew0KPiA+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0 byByZWFkIERQQ0QgcmVnaXN0ZXIgMHgleFxuIiwNCj4gPiArCQkJICAgICAgIERQX0VEUF9HRU5F UkFMX0NBUF8zKTsNCj4gPiArCQlyZXR1cm4gZmFsc2U7DQo+ID4gKwl9DQo+ID4gKwlpZiAocmVn X3ZhbCA+IDApDQo+ID4gKwkJcmV0dXJuIHRydWU7DQo+ID4gKw0KPiA+ICsJLyogUGFuZWwgc3Vw cG9ydHMgYmFja2xpZ2h0IFBXTSBmcmVxdWVuY3kgc2V0ICovDQo+ID4gKwlpZiAoaW50ZWxfZHAt PmVkcF9kcGNkWzJdICYgRFBfRURQX0JBQ0tMSUdIVF9GUkVRX0FVWF9TRVRfQ0FQKQ0KPiA+ICsJ CXJldHVybiB0cnVlOw0KPiA+ICsNCj4gPiArCS8qIFBhbmVsIHN1cHBvcnRzIG1vcmUgdGhhbiA4 IGJpdHMgcmVzb2x1dGlvbiBvZiBicmlnaHRuZXNzIGxldmVsICovDQo+ID4gKwlpZiAoaW50ZWxf ZHAtPmVkcF9kcGNkWzJdICYgRFBfRURQX0JBQ0tMSUdIVF9CUklHSFRORVNTX0JZVEVfQ09VTlQp DQo+ID4gKwkJcmV0dXJuIHRydWU7DQo+IA0KPiBJIGRvbid0IGtub3cgaWYgbW9yZSB0aGFuIDgg Yml0cyBpcyByZWxhdGl2ZWx5IGJldHRlciB0aGFuIHRoZQ0KPiByZXNvbHV0aW9uIFBXTSBwaW4g YWxsb3dzLiBJIGd1ZXNzLCB3ZSBjb3VsZCBmaXggdGhhdCBsYXRlciBieSBjb21wYXJpbmcNCj4g dGhlIG51bWJlciBvZiBicmlnaHRuZXNzIGxldmVscy4NCj4gDQo+ID4gKw0KPiA+ICsJLyogUGFu ZWwgc3VwcG9ydHMgZW5hYmxpbmcgYmFja2xpZ2h0IHZpYSBBVVggYnV0IG5vdCBieSBCTF9FTkFC TEUgcGluICovDQo+ID4gKwlpZiAoKGludGVsX2RwLT5lZHBfZHBjZFsxXSAmIERQX0VEUF9CQUNL TElHSFRfQVVYX0VOQUJMRV9DQVApICYmDQo+ID4gKwkgICAgIShpbnRlbF9kcC0+ZWRwX2RwY2Rb MV0gJiBEUF9FRFBfQkFDS0xJR0hUX1BJTl9FTkFCTEVfQ0FQKSkNCj4gPiArCQlyZXR1cm4gdHJ1 ZTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gZmFsc2U7DQo+ID4gKw0KPiA+ICt9DQo+ID4gKw0KPiA+ ICBpbnQgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmludGVsX2Nvbm5lY3RvcikNCj4gPiAgew0KPiA+ICAJc3RydWN0IGludGVsX3BhbmVs ICpwYW5lbCA9ICZpbnRlbF9jb25uZWN0b3ItPnBhbmVsOw0KPiA+IEBAIC0xODcsNiArMjQxLDEw IEBAIGludCBpbnRlbF9kcF9hdXhfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX2Nv bm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQ0KPiA+ICAJaWYgKCFpbnRlbF9kcF9hdXhfZGlzcGxh eV9jb250cm9sX2NhcGFibGUoaW50ZWxfY29ubmVjdG9yKSkNCj4gPiAgCQlyZXR1cm4gLUVOT0RF VjsNCj4gPiAgDQo+ID4gKwlpZiAoaTkxNS5lbmFibGVfZHBjZF9iYWNrbGlnaHQgPT0gLTEgJiYN Cj4gPiArCSAgICAhaW50ZWxfZHBfYXV4X2Rpc3BsYXlfY29udHJvbF9oZXVyaXN0aWMoaW50ZWxf Y29ubmVjdG9yKSkNCj4gPiArCQlyZXR1cm4gLUVOT0RFVjsNCj4gPiArDQo+ID4gIAlwYW5lbC0+ YmFja2xpZ2h0LnNldHVwID0gaW50ZWxfZHBfYXV4X3NldHVwX2JhY2tsaWdodDsNCj4gPiAgCXBh bmVsLT5iYWNrbGlnaHQuZW5hYmxlID0gaW50ZWxfZHBfYXV4X2VuYWJsZV9iYWNrbGlnaHQ7DQo+ ID4gIAlwYW5lbC0+YmFja2xpZ2h0LmRpc2FibGUgPSBpbnRlbF9kcF9hdXhfZGlzYWJsZV9iYWNr bGlnaHQ7DQo+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0DQo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcNCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==