From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Conselvan De Oliveira, Ander" Subject: Re: [PATCH 2/8] drm/i915: Merge ironlake_get_refclk() into its only caller Date: Mon, 14 Mar 2016 14:02:57 +0000 Message-ID: <1457964182.2711.23.camel@intel.com> References: <1457945747-2161-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1457945747-2161-3-git-send-email-ander.conselvan.de.oliveira@intel.com> <20160314135522.GO4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 6261E6E039 for ; Mon, 14 Mar 2016 14:03:14 +0000 (UTC) In-Reply-To: <20160314135522.GO4329@intel.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE2LTAzLTE0IGF0IDE1OjU1ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+IE9uIE1vbiwgTWFyIDE0LCAyMDE2IGF0IDEwOjU1OjQxQU0gKzAyMDAsIEFuZGVyIENvbnNl bHZhbiBkZSBPbGl2ZWlyYSB3cm90ZToNCj4gPiBBIHByZXZpb3VzIHBhdGNoZSBtYWRlIGlyb25s YWtlX2dldF9yZWZjbGsoKSB2ZXJ5IHNpbXBsZSwgc28gbWVyZ2UNCj4gPiBpdCBpbnRvIGl0cyBv bmx5IGNhbGxlci4NCj4gDQo+IEFnYWluIEknZCBsaWtlIHRvIGtlZXAgdGhlIHBjaCBhbmQgZ21j aCBjb2RlIGFzIHNpbWlsYXIgYXMgcG9zc2libGUuDQo+IFNvIGNvdWxkIGRvIHRoZSBzYW1lIGZv ciB0aGUgZ21jaCBjb2RlLg0KPiANCj4gSSBhbHJlYWR5IGhhZCBhIHBhdGNoIGluIG15IGx2ZHNf ZG93bmNsb2NrIGJyYW5jaCB0aGF0IG1vdmVkIHNvbWUgb2YNCj4gdGhlIGdtY2ggcGxhdGZvcm0g ZGlmZmVyZW5jZXMgb3V0IGZyb20gaTl4eF9nZXRfcmVmY2xrKCkgaW50byB0aGUNCj4gY2FsbGVy LCBzbyBJIGd1ZXNzIG1pZ2h0IGFzIHdlbGwgbW92ZSB0aGUgd2hvbGUgdGhpbmcgSSBzdXBwb3Nl Lg0KDQpJIHRoaW5rIHdlIHNob3VsZCBqdXN0IHNwbGl0IGk5eHhfY3J0Y19jb21wdXRlX2Nsb2Nr KCkgaW50byBtb3JlIHBsYXRmb3JtDQpzcGVjaWZpYyBmdW5jdGlvbnMgYW5kIGtpbGwgaTl4eF9n ZXRfcmVjbGsoKSwgaW50ZWxfbGltaXQoKSBhbmQgLT5maW5kX2RwbGwoKS4NCldlIGFyZSBqdW1w aW5nIHRocm91Z2ggaG9vcHMgdG8gbWFrZSB0aGUgY29kZSBsb29rIGxpa2UgaXQncyBnZW5lcmlj LCBidXQgdGhlcmUNCmlzIGEgbG90IG9mIHBsYXRmb3JtIHNwZWNpZmljIGRldGFpbHMuIElNTyBp dCB3b3VsZCBiZSBhIGxvdCBlYXNpZXIgdG8gcmVhZCB0aGF0DQp3YXkuDQoNCkkgd3JvdGUgc29t ZSBwYXRjaGVzIGdvaW5nIGludG8gdGhhdCBkaXJlY3Rpb24gdG9kYXkuIFRoZSBlbmQgcmVzdWx0 IGxvb2tzIGxpa2UNCnRoZSBmb2xsb3dpbmc6DQoNCnN0YXRpYyBpbnQgY2h2X2NydGNfY29tcHV0 ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkNCnsNCiAgICAg ICAgaW50IHJlZmNsazsNCiAgICAgICAgYm9vbCBvazsNCiAgICAgICAgY29uc3QgaW50ZWxfbGlt aXRfdCAqbGltaXQ7DQoNCiAgICAgICAgbWVtc2V0KCZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRl LCAwLA0KICAgICAgICAgICAgICAgc2l6ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKTsN Cg0KICAgICAgICBpZiAoY3J0Y19zdGF0ZS0+aGFzX2RzaV9lbmNvZGVyKQ0KICAgICAgICAgICAg ICAgIHJldHVybiAwOw0KDQogICAgICAgIGxpbWl0ID0gJmludGVsX2xpbWl0c19jaHY7DQoNCiAg ICAgICAgaWYgKCFjcnRjX3N0YXRlLT5jbG9ja19zZXQpIHsNCiAgICAgICAgICAgICAgICByZWZj bGsgPSAxMDAwMDA7DQoNCiAgICAgICAgICAgICAgICBvayA9IGNodl9maW5kX2Jlc3RfZHBsbChs aW1pdCwgY3J0Y19zdGF0ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrLCByZWZjbGssDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgJmNydGNfc3RhdGUtPmRwbGwpOw0KICAgICAgICAgICAg ICAgIGlmICghb2spIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiQ291bGRu J3QgZmluZCBQTEwgc2V0dGluZ3MgZm9yIG1vZGUhXG4iKTsNCiAgICAgICAgICAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAg ICAgIGNodl9jb21wdXRlX2RwbGwoY3J0YywgY3J0Y19zdGF0ZSk7DQoNCiAgICAgICAgcmV0dXJu IDA7DQp9DQoNCnN0YXRpYyBpbnQgdmx2X2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkNCnsNCiAgICAgICAgaW50IHJlZmNsazsNCiAgICAg ICAgYm9vbCBvazsNCiAgICAgICAgY29uc3QgaW50ZWxfbGltaXRfdCAqbGltaXQ7DQoNCiAgICAg ICAgbWVtc2V0KCZjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLCAwLA0KICAgICAgICAgICAgICAg c2l6ZW9mKGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUpKTsNCg0KICAgICAgICBpZiAoY3J0Y19z dGF0ZS0+aGFzX2RzaV9lbmNvZGVyKQ0KICAgICAgICAgICAgICAgIHJldHVybiAwOw0KDQogICAg ICAgIGxpbWl0ID0gJmludGVsX2xpbWl0c192bHY7DQoNCiAgICAgICAgaWYgKCFjcnRjX3N0YXRl LT5jbG9ja19zZXQpIHsNCiAgICAgICAgICAgICAgICByZWZjbGsgPSAxMDAwMDA7DQoNCiAgICAg ICAgICAgICAgICBvayA9IHZsdl9maW5kX2Jlc3RfZHBsbChsaW1pdCwgY3J0Y19zdGF0ZSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcnRjX3N0YXRlLT5wb3J0X2Ns b2NrLCByZWZjbGssDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwgJmNydGNfc3RhdGUtPmRwbGwpOw0KICAgICAgICAgICAgICAgIGlmICghb2spIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiQ291bGRuJ3QgZmluZCBQTEwgc2V0dGluZ3Mg Zm9yIG1vZGUhXG4iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIHZsdl9jb21wdXRlX2RwbGwo Y3J0YywgY3J0Y19zdGF0ZSk7DQoNCiAgICAgICAgcmV0dXJuIDA7DQp9DQoNCnN0YXRpYyBpbnQg Z2VuMl9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMgKmNydGMsDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQ0Kew0KICAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5k ZXY7DQogICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7DQogICAgICAgIGludCByZWZjbGs7DQogICAgICAgIGNvbnN0IGludGVsX2xpbWl0 X3QgKmxpbWl0Ow0KDQogICAgICAgIG1lbXNldCgmY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZSwg MCwNCiAgICAgICAgICAgICAgIHNpemVvZihjcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlKSk7DQoN CiAgICAgICAgaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxf T1VUUFVUX0xWRFMpICYmDQogICAgICAgICAgICBpbnRlbF9wYW5lbF91c2Vfc3NjKGRldl9wcml2 KSkgew0KICAgICAgICAgICAgICAgIHJlZmNsayA9IGRldl9wcml2LT52YnQubHZkc19zc2NfZnJl cTsNCiAgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJ1c2luZyBTU0MgcmVmZXJlbmNlIGNs b2NrIG9mICVkIGtIelxuIiwgcmVmY2xrKTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAg ICAgICByZWZjbGsgPSA0ODAwMDsNCiAgICAgICAgfQ0KDQogICAgICAgIGlmIChpbnRlbF9waXBl X3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSkNCiAgICAgICAg ICAgICAgICBsaW1pdCA9ICZpbnRlbF9saW1pdHNfaTh4eF9sdmRzOw0KICAgICAgICBlbHNlIGlm IChpbnRlbF9waXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9EVk8p KQ0KICAgICAgICAgICAgICAgIGxpbWl0ID0gJmludGVsX2xpbWl0c19pOHh4X2R2bzsNCiAgICAg ICAgZWxzZQ0KICAgICAgICAgICAgICAgIGxpbWl0ID0gJmludGVsX2xpbWl0c19pOHh4X2RhYzsN Cg0KICAgICAgICBpZiAoIWNydGNfc3RhdGUtPmNsb2NrX3NldCAmJg0KICAgICAgICAgICAgIWk5 eHhfZmluZF9iZXN0X2RwbGwobGltaXQsIGNydGNfc3RhdGUsIGNydGNfc3RhdGUtPnBvcnRfY2xv Y2ssDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZjbGssIE5VTEwsICZjcnRj X3N0YXRlLT5kcGxsKSkgew0KICAgICAgICAgICAgICAgIERSTV9FUlJPUigiQ291bGRuJ3QgZmlu ZCBQTEwgc2V0dGluZ3MgZm9yIG1vZGUhXG4iKTsNCiAgICAgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsNCiAgICAgICAgfQ0KDQogICAgICAgIGk4eHhfY29tcHV0ZV9kcGxsKGNydGMsIGNydGNf c3RhdGUsIE5VTEwpOw0KDQogICAgICAgIHJldHVybiAwOw0KfQ0KDQpzdGF0aWMgaW50IGk5eHhf Y3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkNCnsNCiAgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2Ow0K ICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOw0KICAgICAgICBpbnQgcmVmY2xrOw0KICAgICAgICBib29sIG9rOw0KICAgICAgICBjb25z dCBpbnRlbF9saW1pdF90ICpsaW1pdDsNCg0KICAgICAgICBtZW1zZXQoJmNydGNfc3RhdGUtPmRw bGxfaHdfc3RhdGUsIDAsDQogICAgICAgICAgICAgICBzaXplb2YoY3J0Y19zdGF0ZS0+ZHBsbF9o d19zdGF0ZSkpOw0KDQogICAgICAgIGlmIChjcnRjX3N0YXRlLT5oYXNfZHNpX2VuY29kZXIpDQog ICAgICAgICAgICAgICAgcmV0dXJuIDA7DQoNCiAgICAgICAgaWYgKGludGVsX3BpcGVfd2lsbF9o YXZlX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpICYmDQogICAgICAgICAgICBp bnRlbF9wYW5lbF91c2Vfc3NjKGRldl9wcml2KSkgew0KICAgICAgICAgICAgICAgIHJlZmNsayA9 IGRldl9wcml2LT52YnQubHZkc19zc2NfZnJlcTsNCiAgICAgICAgICAgICAgICBEUk1fREVCVUdf S01TKCJ1c2luZyBTU0MgcmVmZXJlbmNlIGNsb2NrIG9mICVkIGtIelxuIiwgcmVmY2xrKTsNCiAg ICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgICByZWZjbGsgPSA5NjAwMDsNCiAgICAgICAg fQ0KDQogICAgICAgIGlmICghY3J0Y19zdGF0ZS0+Y2xvY2tfc2V0KSB7DQogICAgICAgICAgICAg ICAgLyoNCiAgICAgICAgICAgICAgICAgKiBSZXR1cm5zIGEgc2V0IG9mIGRpdmlzb3JzIGZvciB0 aGUgZGVzaXJlZCB0YXJnZXQgY2xvY2sgd2l0aA0KICAgICAgICAgICAgICAgICAqIHRoZSBnaXZl biByZWZjbGssIG9yIEZBTFNFLiAgVGhlIHJldHVybmVkIHZhbHVlcyByZXByZXNlbnQNCiAgICAg ICAgICAgICAgICAgKiB0aGUgY2xvY2sgZXF1YXRpb246IHJlZmxjayAqICg1ICogKG0xICsgMikg KyAobTIgKyAyKSkgLyAobiArDQogICAgICAgICAgICAgICAgICogMikgLyBwMSAvIHAyLg0KICAg ICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAgIGxpbWl0ID0gaW50ZWxfbGltaXQoY3J0 Y19zdGF0ZSwgcmVmY2xrKTsNCiAgICAgICAgICAgICAgICBvayA9IGRldl9wcml2LT5kaXNwbGF5 LmZpbmRfZHBsbChsaW1pdCwgY3J0Y19zdGF0ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmNsaywgTlVMTCwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY3J0Y19zdGF0 ZS0+ZHBsbCk7DQogICAgICAgICAgICAgICAgaWYgKCFvaykgew0KICAgICAgICAgICAgICAgICAg ICAgICAgRFJNX0VSUk9SKCJDb3VsZG4ndCBmaW5kIFBMTCBzZXR0aW5ncyBmb3IgbW9kZSFcbiIp Ow0KICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQogICAgICAgICAgICAg ICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgaTl4eF9jb21wdXRlX2RwbGwoY3J0YywgY3J0Y19z dGF0ZSwgTlVMTCk7DQoNCiAgICAgICAgcmV0dXJuIDA7DQp9DQoNCg0KQW5kZXINCj4gDQo+ID4g DQo+ID4gU2lnbmVkLW9mZi1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDwNCj4gPiBh bmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAyNCArKysrKysrKy0tLS0tLS0tLS0t LS0tLS0NCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25z KC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYw0KPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQo+ID4g aW5kZXggZTdkNjU4NC4uMDdiNTI0NCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMNCj4gPiBAQCAtODU4OSwyMSArODU4OSw2IEBAIHZvaWQgaW50ZWxfaW5pdF9w Y2hfcmVmY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpDQo+ID4gIAkJbHB0X2luaXRfcGNoX3Jl ZmNsayhkZXYpOw0KPiA+ICB9DQo+ID4gIA0KPiA+IC1zdGF0aWMgaW50IGlyb25sYWtlX2dldF9y ZWZjbGsoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpDQo+ID4gLXsNCj4gPiAt CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsNCj4g PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 DQo+ID4gLQ0KPiA+IC0JaWYgKGludGVsX3BpcGVfd2lsbF9oYXZlX3R5cGUoY3J0Y19zdGF0ZSwg SU5URUxfT1VUUFVUX0xWRFMpICYmDQo+ID4gLQkgICAgaW50ZWxfcGFuZWxfdXNlX3NzYyhkZXZf cHJpdikpIHsNCj4gPiAtCQlEUk1fREVCVUdfS01TKCJ1c2luZyBTU0MgcmVmZXJlbmNlIGNsb2Nr IG9mICVkIGtIelxuIiwNCj4gPiAtCQkJICAgICAgZGV2X3ByaXYtPnZidC5sdmRzX3NzY19mcmVx KTsNCj4gPiAtCQlyZXR1cm4gZGV2X3ByaXYtPnZidC5sdmRzX3NzY19mcmVxOw0KPiA+IC0JfQ0K PiA+IC0NCj4gPiAtCXJldHVybiAxMjAwMDA7DQo+ID4gLX0NCj4gPiAtDQo+ID4gIHN0YXRpYyB2 b2lkIGlyb25sYWtlX3NldF9waXBlY29uZihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQo+ID4gIHsN Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmRldi0+ZGV2 X3ByaXZhdGU7DQo+ID4gQEAgLTg3NzUsNyArODc2MCwxNCBAQCBzdGF0aWMgYm9vbCBpcm9ubGFr ZV9jb21wdXRlX2Nsb2NrcyhzdHJ1Y3QgZHJtX2NydGMNCj4gPiAqY3J0YywNCj4gPiAgCWNvbnN0 IGludGVsX2xpbWl0X3QgKmxpbWl0Ow0KPiA+ICAJYm9vbCByZXQ7DQo+ID4gIA0KPiA+IC0JcmVm Y2xrID0gaXJvbmxha2VfZ2V0X3JlZmNsayhjcnRjX3N0YXRlKTsNCj4gPiArCWlmIChpbnRlbF9w aXBlX3dpbGxfaGF2ZV90eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSAmJg0KPiA+ ICsJICAgIGludGVsX3BhbmVsX3VzZV9zc2MoZGV2X3ByaXYpKSB7DQo+ID4gKwkJRFJNX0RFQlVH X0tNUygidXNpbmcgU1NDIHJlZmVyZW5jZSBjbG9jayBvZiAlZCBrSHpcbiIsDQo+ID4gKwkJCSAg ICAgIGRldl9wcml2LT52YnQubHZkc19zc2NfZnJlcSk7DQo+ID4gKwkJcmVmY2xrID0gZGV2X3By aXYtPnZidC5sdmRzX3NzY19mcmVxOw0KPiA+ICsJfSBlbHNlIHsNCj4gPiArCQlyZWZjbGsgPSAx MjAwMDA7DQo+ID4gKwl9DQo+ID4gIA0KPiA+ICAJLyoNCj4gPiAgCSAqIFJldHVybnMgYSBzZXQg b2YgZGl2aXNvcnMgZm9yIHRoZSBkZXNpcmVkIHRhcmdldCBjbG9jayB3aXRoIHRoZQ0KPiA+IGdp dmVuDQo+ID4gLS0gDQo+ID4gMi40LjMNCj4gPiANCj4gPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QNCj4g PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+ID4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngNCj4gCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJ bnRlbCBGaW5sYW5kIE95ClJlZ2lzdGVyZWQgQWRkcmVzczogUEwgMjgxLCAwMDE4MSBIZWxzaW5r aSAKQnVzaW5lc3MgSWRlbnRpdHkgQ29kZTogMDM1NzYwNiAtIDQgCkRvbWljaWxlZCBpbiBIZWxz aW5raSAKClRoaXMgZS1tYWlsIGFuZCBhbnkgYXR0YWNobWVudHMgbWF5IGNvbnRhaW4gY29uZmlk ZW50aWFsIG1hdGVyaWFsIGZvcgp0aGUgc29sZSB1c2Ugb2YgdGhlIGludGVuZGVkIHJlY2lwaWVu dChzKS4gQW55IHJldmlldyBvciBkaXN0cmlidXRpb24KYnkgb3RoZXJzIGlzIHN0cmljdGx5IHBy b2hpYml0ZWQuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZApyZWNpcGllbnQsIHBsZWFzZSBj b250YWN0IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSBhbGwgY29waWVzLgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK