From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak S Subject: Re: [PATCH 28/71] drm/i915/chv: Added CHV specific register read and write Date: Fri, 18 Apr 2014 13:42:05 +0530 Message-ID: <5350DE55.9050906@linux.intel.com> References: <1397039349-10639-1-git-send-email-ville.syrjala@linux.intel.com> <1397039349-10639-29-git-send-email-ville.syrjala@linux.intel.com> <20140418002833.GA918@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 92EE16E634 for ; Fri, 18 Apr 2014 01:12:09 -0700 (PDT) In-Reply-To: <20140418002833.GA918@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ben Widawsky , ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIEZyaWRheSAxOCBBcHJpbCAyMDE0IDA1OjU4IEFNLCBCZW4gV2lkYXdza3kgd3JvdGU6Cj4g T24gV2VkLCBBcHIgMDksIDIwMTQgYXQgMDE6Mjg6MjZQTSArMDMwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4+IEZyb206IERlZXBhayBTIDxkZWVwYWsuc0BpbnRlbC5j b20+Cj4+Cj4+IFN1cHBvcnQgdG8gaW5kaXZpZHVhbGx5IGNvbnRyb2wgTWVkaWEvUmVuZGVyIHdl bGwgYmFzZWQgb24gdGhlIHJlZ2lzdGVyIGFjY2Vzcy4KPj4gQWRkIENIViBzcGVjaWZpYyB3cml0 ZSBmdW5jdGlvbiB0byBoYWJkbGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHJlZ2lzdGVycwo+PiB0aGF0 IGFyZSBzYWRvd2VkIHZzIHRob3NlIHRoYXQgbmVlZCBmb3JjZXdha2UgZXZlbiBmb3Igd3JpdGVz Lgo+Pgo+PiB2MjogRHJvcCB3cml0ZSBGSUZPIGZvciBDSFYgYW5kIGFkZCBjb21tYW4gd2VsbCBm b3JjZXdha2UgKFZpbGxlKQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBEZWVwYWsgUyA8ZGVlcGFrLnNA aW50ZWwuY29tPgo+PiBbdnN5cmphbGE6IE1vdmUgdGhlIHJlZ2lzdGVyIHJhbmdlIG1hY3JvcyBp bnRvIGludGVsX3VuY29yZS5jXQo+PiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF91bmNvcmUuYyB8IDEzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KPj4gICAxIGZpbGUgY2hhbmdlZCwgMTMxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25z KC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4+IGluZGV4IDgyM2Q2OTku LjhlM2M2ODYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29y ZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4+IEBAIC00 OTUsNiArNDk1LDMxIEBAIHZvaWQgYXNzZXJ0X2ZvcmNlX3dha2VfaW5hY3RpdmUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgIAkoKHJlZykgPj0gMHgyMjAwMCAmJiAocmVn KSA8IDB4MjQwMDApIHx8XAo+PiAgIAkoKHJlZykgPj0gMHgzMDAwMCAmJiAocmVnKSA8IDB4NDAw MDApKQo+PiAgIAo+PiArI2RlZmluZSBGT1JDRVdBS0VfQ0hWX1JFTkRFUl9SQU5HRV9PRkZTRVQo cmVnKSBcCj4+ICsJKCgocmVnKSA+PSAweDIwMDAgJiYgKHJlZykgPCAweDQwMDApIHx8XAo+PiAr CSgocmVnKSA+PSAweDUwMDAgJiYgKHJlZykgPCAweDgwMDApIHx8XAo+PiArCSgocmVnKSA+PSAw eDgzMDAgJiYgKHJlZykgPCAweDg1MDApIHx8XAo+PiArCSgocmVnKSA+PSAweEIwMDAgJiYgKHJl ZykgPCAweEMwMDApIHx8XAo+PiArCSgocmVnKSA+PSAweEUwMDAgJiYgKHJlZykgPCAweEU4MDAp KQo+PiArCj4+ICsjZGVmaW5lIEZPUkNFV0FLRV9DSFZfTUVESUFfUkFOR0VfT0ZGU0VUKHJlZylc Cj4+ICsJKCgocmVnKSA+PSAweDg4MDAgJiYgKHJlZykgPCAweDg5MDApIHx8XAo+PiArCSgocmVn KSA+PSAweEQwMDAgJiYgKHJlZykgPCAweEQ4MDApIHx8XAo+PiArCSgocmVnKSA+PSAweDEyMDAw ICYmIChyZWcpIDwgMHgxNDAwMCkgfHxcCj4+ICsJKChyZWcpID49IDB4MUEwMDAgJiYgKHJlZykg PCAweDFDMDAwKSB8fFwKPj4gKwkoKHJlZykgPj0gMHgxRTgwMCAmJiAocmVnKSA8IDB4MUVBMDAp IHx8XAo+PiArCSgocmVnKSA+PSAweDMwMDAwICYmIChyZWcpIDwgMHg0MDAwMCkpCj4+ICsKPj4g KyNkZWZpbmUgRk9SQ0VXQUtFX0NIVl9DT01NT05fUkFOR0VfT0ZGU0VUKHJlZylcCj4+ICsJKCgo cmVnKSA+PSAweDQwMDAgJiYgKHJlZykgPCAweDUwMDApIHx8XAo+PiArCSgocmVnKSA+PSAweDgw MDAgJiYgKHJlZykgPCAweDgzMDApIHx8XAo+PiArCSgocmVnKSA+PSAweDg1MDAgJiYgKHJlZykg PCAweDg2MDApIHx8XAo+PiArCSgocmVnKSA+PSAweDkwMDAgJiYgKHJlZykgPCAweEIwMDApIHx8 XAo+PiArCSgocmVnKSA+PSAweEMwMDAgJiYgKHJlZykgPCAweGM4MDApIHx8XAo+PiArCSgocmVn KSA+PSAweEYwMDAgJiYgKHJlZykgPCAweDEwMDAwKSB8fFwKPj4gKwkoKHJlZykgPj0gMHgxNDAw MCAmJiAocmVnKSA8IDB4MTQ0MDApIHx8XAo+PiArCSgocmVnKSA+PSAweDIyMDAwICYmIChyZWcp IDwgMHgyNDAwMCkpCj4+ICsKPiBUbyBzYXRpc2Z5IGJvdGggQ2hyaXMsIGFuZCBWaWxsZSwgaG93 IGFib3V0Ogo+ICNkZWZpbmUgUkVHX1JBTkdFKHJlZywgc3RhcnQsIGVuZCkgKChyZWcpID49IChz dGFydCkgJiYgKHJlZykgPCAweDUwMDApCj4gCVJFR19SQU5HRShyZWcsIDB4NDAwMCwgMHg1MDAw KSB8fCBcCj4gCVJFR19SQU5HRShyZWcsIDB4ODAwMCwgMHg4MzAwKSB8fCBcCj4gCS4uLgo+Cj4g QnkgdGhlIHdheSwgSSBzcGVudCBteSBkdWUgZGlsaWdlbmNlIHRyeWluZyB0byBmaW5kIHdoZXJl IHRoZXNlIHJhbmdlcwo+IGNvbWUgZnJvbSwgYW5kIGhhdmUgYmVlbiB1bmFibGUuIERvYyBuYW1l PyBJIHNob3VsZCBoYXZlIGFsbCB0aGUgZG9jcwo+IGZyb20gVmlsbGUuCj4KPiBJIGNhbid0IHNw ZWFrIGZvciB0aGUgY29kZSBnZW5lcmF0ZWQsIGVpdGhlci4KPgpobW0gT2ssIEkgd2lsbCB0cnkg dG8gcmUgZmFjdG9yIHRoaXMgY29kZS4gSSB3aWxsIHNlbmQgdGhlIGRvYyBuYW1lCgo+PiAgIHN0 YXRpYyB2b2lkCj4+ICAgaWxrX2R1bW15X3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPj4gICB7Cj4+IEBAIC01ODcsNyArNjEyLDQ4IEBAIHZsdl9yZWFkIyN4KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3QgcmVnLCBib29sIHRyYWNlKSB7IFwK Pj4gICAJUkVHX1JFQURfRk9PVEVSOyBcCj4+ICAgfQo+PiAgIAo+PiArI2RlZmluZSBfX2Nodl9y ZWFkKHgpIFwKPj4gK3N0YXRpYyB1IyN4IFwKPj4gK2Nodl9yZWFkIyN4KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgb2ZmX3QgcmVnLCBib29sIHRyYWNlKSB7IFwKPj4gKwl1bnNp Z25lZCBmd2VuZ2luZSA9IDA7IFwKPj4gKwlSRUdfUkVBRF9IRUFERVIoeCk7IFwKPj4gKwlpZiAo Rk9SQ0VXQUtFX0NIVl9SRU5ERVJfUkFOR0VfT0ZGU0VUKHJlZykpIHsgXAo+PiArCQlmd2VuZ2lu ZSA9IEZPUkNFV0FLRV9SRU5ERVI7IFwKPj4gKwl9IFwKPj4gKwllbHNlIGlmIChGT1JDRVdBS0Vf Q0hWX01FRElBX1JBTkdFX09GRlNFVChyZWcpKSB7IFwKPj4gKwkJZndlbmdpbmUgPSBGT1JDRVdB S0VfTUVESUE7IFwKPj4gKwl9IFwKPj4gKwllbHNlIGlmIChGT1JDRVdBS0VfQ0hWX0NPTU1PTl9S QU5HRV9PRkZTRVQocmVnKSkgeyBcCj4+ICsJCWZ3ZW5naW5lID0gRk9SQ0VXQUtFX0FMTDsgXAo+ PiArCX0gXAo+PiArCWlmIChGT1JDRVdBS0VfUkVOREVSICYgZndlbmdpbmUpIHsgXAo+PiArCQlp ZiAoZGV2X3ByaXYtPnVuY29yZS5md19yZW5kZXJjb3VudCsrID09IDApIFwKPj4gKwkJCShkZXZf cHJpdiktPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldChkZXZfcHJpdiwgXAo+PiArCQkJCQkJ CQlmd2VuZ2luZSk7IFwKPj4gKwl9IFwKPj4gKwlpZiAoRk9SQ0VXQUtFX01FRElBICYgZndlbmdp bmUpIHsgXAo+PiArCQlpZiAoZGV2X3ByaXYtPnVuY29yZS5md19tZWRpYWNvdW50KysgPT0gMCkg XAo+PiArCQkJKGRldl9wcml2KS0+dW5jb3JlLmZ1bmNzLmZvcmNlX3dha2VfZ2V0KGRldl9wcml2 LCBcCj4+ICsJCQkJCQkJCWZ3ZW5naW5lKTsgXAo+PiArCX0gXAo+PiArCXZhbCA9IF9fcmF3X2k5 MTVfcmVhZCMjeChkZXZfcHJpdiwgcmVnKTsgXAo+PiArCWlmIChGT1JDRVdBS0VfUkVOREVSICYg ZndlbmdpbmUpIHsgXAo+PiArCQlpZiAoZGV2X3ByaXYtPnVuY29yZS5md19yZW5kZXJjb3VudCsr ID09IDApIFwKPj4gKwkJCShkZXZfcHJpdiktPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX3B1dChk ZXZfcHJpdiwgXAo+PiArCQkJCQkJCQlmd2VuZ2luZSk7IFwKPj4gKwl9IFwKPj4gKwlpZiAoRk9S Q0VXQUtFX01FRElBICYgZndlbmdpbmUpIHsgXAo+PiArCQlpZiAoZGV2X3ByaXYtPnVuY29yZS5m d19tZWRpYWNvdW50KysgPT0gMCkgXAo+PiArCQkJKGRldl9wcml2KS0+dW5jb3JlLmZ1bmNzLmZv cmNlX3dha2VfcHV0KGRldl9wcml2LCBcCj4+ICsJCQkJCQkJCWZ3ZW5naW5lKTsgXAo+PiArCX0g XAo+PiArCVJFR19SRUFEX0ZPT1RFUjsgXAo+PiArfQo+PiAgIAo+PiArX19jaHZfcmVhZCg4KQo+ PiArX19jaHZfcmVhZCgxNikKPj4gK19fY2h2X3JlYWQoMzIpCj4+ICtfX2Nodl9yZWFkKDY0KQo+ PiAgIF9fdmx2X3JlYWQoOCkKPj4gICBfX3Zsdl9yZWFkKDE2KQo+PiAgIF9fdmx2X3JlYWQoMzIp Cj4+IEBAIC02MDUsNiArNjcxLDcgQEAgX19nZW40X3JlYWQoMTYpCj4+ICAgX19nZW40X3JlYWQo MzIpCj4+ICAgX19nZW40X3JlYWQoNjQpCj4+ICAgCj4+ICsjdW5kZWYgX19jaHZfcmVhZAo+PiAg ICN1bmRlZiBfX3Zsdl9yZWFkCj4+ICAgI3VuZGVmIF9fZ2VuNl9yZWFkCj4+ICAgI3VuZGVmIF9f Z2VuNV9yZWFkCj4+IEBAIC03MDksNiArNzc2LDQ5IEBAIGdlbjhfd3JpdGUjI3goc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBvZmZfdCByZWcsIHUjI3ggdmFsLCBib29sIHRyYWNl Cj4+ICAgCVJFR19XUklURV9GT09URVI7IFwKPj4gICB9Cj4+ICAgCj4+ICsjZGVmaW5lIF9fY2h2 X3dyaXRlKHgpIFwKPj4gK3N0YXRpYyB2b2lkIFwKPj4gK2Nodl93cml0ZSMjeChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIG9mZl90IHJlZywgdSMjeCB2YWwsIGJvb2wgdHJhY2Up IHsgXAo+PiArCXVuc2lnbmVkIGZ3ZW5naW5lID0gMDsgXAo+PiArCWJvb2wgX19uZWVkc19wdXQg PSAhaXNfZ2VuOF9zaGFkb3dlZChkZXZfcHJpdiwgcmVnKTsgXAo+PiArCVJFR19XUklURV9IRUFE RVI7IFwKPj4gKwlpZiAoRk9SQ0VXQUtFX0NIVl9SRU5ERVJfUkFOR0VfT0ZGU0VUKHJlZykpIHsg XAo+PiArCQlmd2VuZ2luZSA9IEZPUkNFV0FLRV9SRU5ERVI7IFwKPj4gKwl9IFwKPj4gKwllbHNl IGlmIChGT1JDRVdBS0VfQ0hWX01FRElBX1JBTkdFX09GRlNFVChyZWcpKSB7IFwKPj4gKwkJZndl bmdpbmUgPSBGT1JDRVdBS0VfTUVESUE7IFwKPj4gKwl9IFwKPj4gKwllbHNlIGlmIChGT1JDRVdB S0VfQ0hWX0NPTU1PTl9SQU5HRV9PRkZTRVQocmVnKSkgeyBcCj4+ICsJCWZ3ZW5naW5lID0gRk9S Q0VXQUtFX0FMTDsgXAo+PiArCX0gXAo+PiArCWlmIChfX25lZWRzX3B1dCAmJiAoRk9SQ0VXQUtF X1JFTkRFUiAmIGZ3ZW5naW5lKSkgeyBcCj4+ICsJCQlpZiAoZGV2X3ByaXYtPnVuY29yZS5md19y ZW5kZXJjb3VudCsrID09IDApIFwKPj4gKwkJCQkoZGV2X3ByaXYpLT51bmNvcmUuZnVuY3MuZm9y Y2Vfd2FrZV9nZXQoZGV2X3ByaXYsIFwKPj4gKwkJCQkJCQkJCWZ3ZW5naW5lKTsgXAo+PiArCX0g XAo+PiArCWlmIChfX25lZWRzX3B1dCAmJiAoRk9SQ0VXQUtFX01FRElBICYgZndlbmdpbmUpKSB7 IFwKPj4gKwkJaWYgKGRldl9wcml2LT51bmNvcmUuZndfbWVkaWFjb3VudCsrID09IDApIFwKPj4g KwkJCShkZXZfcHJpdiktPnVuY29yZS5mdW5jcy5mb3JjZV93YWtlX2dldChkZXZfcHJpdiwgXAo+ PiArCQkJCQkJCQlmd2VuZ2luZSk7IFwKPj4gKwl9IFwKPj4gKwlfX3Jhd19pOTE1X3dyaXRlIyN4 KGRldl9wcml2LCByZWcsIHZhbCk7IFwKPj4gKwlpZiAoX19uZWVkc19wdXQgJiYgKEZPUkNFV0FL RV9SRU5ERVIgJiBmd2VuZ2luZSkpIHsgXAo+PiArCQkJaWYgKGRldl9wcml2LT51bmNvcmUuZndf cmVuZGVyY291bnQrKyA9PSAwKSBcCj4+ICsJCQkJKGRldl9wcml2KS0+dW5jb3JlLmZ1bmNzLmZv cmNlX3dha2VfcHV0KGRldl9wcml2LCBcCj4+ICsJCQkJCQkJCQlmd2VuZ2luZSk7IFwKPj4gKwl9 IFwKPj4gKwlpZiAoX19uZWVkc19wdXQgJiYgKEZPUkNFV0FLRV9NRURJQSAmIGZ3ZW5naW5lKSkg eyBcCj4+ICsJCWlmIChkZXZfcHJpdi0+dW5jb3JlLmZ3X21lZGlhY291bnQrKyA9PSAwKSBcCj4+ ICsJCQkoZGV2X3ByaXYpLT51bmNvcmUuZnVuY3MuZm9yY2Vfd2FrZV9wdXQoZGV2X3ByaXYsIFwK Pj4gKwkJCQkJCQkJZndlbmdpbmUpOyBcCj4+ICsJfSBcCj4+ICsJUkVHX1dSSVRFX0ZPT1RFUjsg XAo+PiArfQo+IEZlZWxzIGxpa2UgdGhpcyB3b3VsZCBiZSBhIGxvdCBuZWF0ZXIgaWYgeW91IGxl dCBmb3JjZV93YWtlX3B1dCgpIGhhbmRsZQo+IHRoaXMgY29tcGxleGl0eS4gSSBndWVzcyBvdXIg Zm9yY2Vfd2FrZV9mdW5jcyBjYW4ndCBoYW5kbGUgY291bnQuIEluCj4gdGhhdCBjYXNlIHdlIGNv dWxkIGV2ZW4gc2hhcmUgdGhlIGdlbjhfd3JpdGUgZmFtaWx5IG9mIGZ1bmN0aW9ucy4gV2FzCj4g dGhlcmUgc29tZSByZWFzb24gdGhpcyBjYW4ndCB3b3JrPyAoQWdhaW4sIGZvcmdpdmUgbGF6aW5l c3MpCgpJIGFncmVlLCBidXQgaW4gZ2VuOCwgd2UgaGF2ZSBvbmx5IG9uZSB3ZWxsLCBCdXQgaW4g Q0hWLCB3ZSB3YW50IHRvIGhhbmRsZSB0aGUgUmVuZGVyIGFuZCBNZWRpYSB3ZWxsIHVwL2Rvd24g c2VwYXJhdGVseSB3aGljaCBoZWxwcyBpbiBwb3dlciBzYXZpbmcuCgo+PiArCj4+ICtfX2Nodl93 cml0ZSg4KQo+PiArX19jaHZfd3JpdGUoMTYpCj4+ICtfX2Nodl93cml0ZSgzMikKPj4gK19fY2h2 X3dyaXRlKDY0KQo+IFNpbWlsYXIgdG8gYnJvYWR3ZWxsIChteSBiYWQsIEkga25vdyksIHdlIHBy b2JhYmx5IG9ubHkgYWN0dWFsbHkgd2FudCB0bwo+IGRvIHRoaXMgZm9yIHJlYWQvd3JpdGUzMi4g U28gd2UgcG90ZW50aWFsbHkgY291bGQgcmVkdWNlIHRoZSBvYmogc2l6ZSBieQo+IG9ubHkgZG9p bmcgaXQgZm9yIHRoYXQuCgp3ZSBtaWdodCBoYXZlIHRoZSA2NCBiaXQgcmVhZC93cml0ZSBhbHNv PyBtYXkgYmUgZm9yIEJhdGNoIGJ1ZmZlciBhZGRyZXNzIHJlYWQ/Cgo+PiAgIF9fZ2VuOF93cml0 ZSg4KQo+PiAgIF9fZ2VuOF93cml0ZSgxNikKPj4gICBfX2dlbjhfd3JpdGUoMzIpCj4+IEBAIC03 MzAsNiArODQwLDcgQEAgX19nZW40X3dyaXRlKDE2KQo+PiAgIF9fZ2VuNF93cml0ZSgzMikKPj4g ICBfX2dlbjRfd3JpdGUoNjQpCj4+ICAgCj4+ICsjdW5kZWYgX19jaHZfd3JpdGUKPj4gICAjdW5k ZWYgX19nZW44X3dyaXRlCj4+ICAgI3VuZGVmIF9faHN3X3dyaXRlCj4+ICAgI3VuZGVmIF9fZ2Vu Nl93cml0ZQo+PiBAQCAtNzkzLDE0ICs5MDQsMjYgQEAgdm9pZCBpbnRlbF91bmNvcmVfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAo+PiAgIAlzd2l0Y2ggKElOVEVMX0lORk8oZGV2 KS0+Z2VuKSB7Cj4+ICAgCWRlZmF1bHQ6Cj4+IC0JCWRldl9wcml2LT51bmNvcmUuZnVuY3MubW1p b193cml0ZWIgID0gZ2VuOF93cml0ZTg7Cj4+IC0JCWRldl9wcml2LT51bmNvcmUuZnVuY3MubW1p b193cml0ZXcgID0gZ2VuOF93cml0ZTE2Owo+PiAtCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1t aW9fd3JpdGVsICA9IGdlbjhfd3JpdGUzMjsKPj4gLQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5t bWlvX3dyaXRlcSAgPSBnZW44X3dyaXRlNjQ7Cj4+IC0JCWRldl9wcml2LT51bmNvcmUuZnVuY3Mu bW1pb19yZWFkYiAgPSBnZW42X3JlYWQ4Owo+PiAtCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1t aW9fcmVhZHcgID0gZ2VuNl9yZWFkMTY7Cj4+IC0JCWRldl9wcml2LT51bmNvcmUuZnVuY3MubW1p b19yZWFkbCAgPSBnZW42X3JlYWQzMjsKPj4gLQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlv X3JlYWRxICA9IGdlbjZfcmVhZDY0Owo+PiArCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4+ ICsJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fd3JpdGViICA9IGNodl93cml0ZTg7Cj4+ ICsJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fd3JpdGV3ICA9IGNodl93cml0ZTE2Owo+ PiArCQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlvX3dyaXRlbCAgPSBjaHZfd3JpdGUzMjsK Pj4gKwkJCWRldl9wcml2LT51bmNvcmUuZnVuY3MubW1pb193cml0ZXEgID0gY2h2X3dyaXRlNjQ7 Cj4+ICsJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fcmVhZGIgID0gY2h2X3JlYWQ4Owo+ PiArCQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlvX3JlYWR3ICA9IGNodl9yZWFkMTY7Cj4+ ICsJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fcmVhZGwgID0gY2h2X3JlYWQzMjsKPj4g KwkJCWRldl9wcml2LT51bmNvcmUuZnVuY3MubW1pb19yZWFkcSAgPSBjaHZfcmVhZDY0Owo+PiAr Cj4+ICsJCX0gZWxzZSB7Cj4+ICsJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fd3JpdGVi ICA9IGdlbjhfd3JpdGU4Owo+PiArCQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlvX3dyaXRl dyAgPSBnZW44X3dyaXRlMTY7Cj4+ICsJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9fd3Jp dGVsICA9IGdlbjhfd3JpdGUzMjsKPj4gKwkJCWRldl9wcml2LT51bmNvcmUuZnVuY3MubW1pb193 cml0ZXEgID0gZ2VuOF93cml0ZTY0Owo+PiArCQkJZGV2X3ByaXYtPnVuY29yZS5mdW5jcy5tbWlv X3JlYWRiICA9IGdlbjZfcmVhZDg7Cj4+ICsJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9f cmVhZHcgID0gZ2VuNl9yZWFkMTY7Cj4+ICsJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9f cmVhZGwgID0gZ2VuNl9yZWFkMzI7Cj4+ICsJCQlkZXZfcHJpdi0+dW5jb3JlLmZ1bmNzLm1taW9f cmVhZHEgID0gZ2VuNl9yZWFkNjQ7Cj4+ICsJCX0KPj4gICAJCWJyZWFrOwo+PiAgIAljYXNlIDc6 Cj4+ICAgCWNhc2UgNjoKPj4gLS0gCj4+IDEuOC4zLjIKClRoYW5rcyBmb3IgdGhlIHJldmlldy4g SSB3aWxsIGFkZHJlc3MgdGhlIGNvbW1lbnRzCgoKPj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+PiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==