From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH v2 2/4] drm/i915: Add lspcon support for I915 driver Date: Fri, 01 Jul 2016 11:52:03 +0530 Message-ID: <57760C0B.6080407@intel.com> References: <1466521259-9309-1-git-send-email-shashank.sharma@intel.com> <1466521259-9309-3-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 5ECEE6E9A6 for ; Fri, 1 Jul 2016 06:22:07 +0000 (UTC) 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: Rodrigo Vivi , "Pandiyan, Dhinakaran" Cc: intel-gfx , Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org UmVnYXJkcwpTaGFzaGFuawoKT24gNy8xLzIwMTYgNDowMCBBTSwgUm9kcmlnbyBWaXZpIHdyb3Rl Ogo+IE9uIFR1ZSwgSnVuIDIxLCAyMDE2IGF0IDg6MDAgQU0sIFNoYXNoYW5rIFNoYXJtYQo+IDxz aGFzaGFuay5zaGFybWFAaW50ZWwuY29tPiB3cm90ZToKPj4gVGhpcyBwYXRjaCBhZGRzIGEgbmV3 IGZpbGUsIHRvIGFjY29tbW9kYXRlIGxzcGNvbiBzdXBwb3J0Cj4+IGZvciBJOTE1IGRyaXZlci4g VGhlc2UgZnVuY3Rpb25zIHByb2JlLCBkZXRlY3QsIGluaXRpYWxpemUKPj4gYW5kIGNvbmZpZ3Vy ZSBhbiBvbi1ib2FyZCBsc3Bjb24gZGV2aWNlIGR1cmluZyB0aGUgZHJpdmVyCj4+IGluaXQgdGlt ZS4KPj4KPj4gQWxzbywgdGhpcyBwYXRjaCBhZGRzIGEgc21hbGwgc3RydWN0dXJlIGZvciBsc3Bj b24gZGV2aWNlLAo+PiB3aGljaCB3aWxsIHByb3ZpZGUgdGhlIHJ1bnRpbWUgc3RhdHVzIG9mIHRo ZSBkZXZpY2UuCj4+Cj4+IFYyOiBhZGRyZXNzZWQgdmlsbGUncyByZXZpZXcgY29tbWVudHMKPj4g LSBDbGVhbiB0aGUgbGVmdG92ZXIgbWFjcm9zIGZyb20gcHJldmlvdXMgcGF0Y2ggc2V0Cj4+Cj4+ IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNv bT4KPj4gU2lnbmVkLW9mZi1ieTogQWthc2hkZWVwIFNoYXJtYSA8YWthc2hkZWVwLnNoYXJtYUBp bnRlbC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAg IHwgICAxICsKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICB8ICAxMyAr KystCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgfCAxNDUgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxNTgg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ PiBpbmRleCAyNzZhYmYxLi5kNDBmZjdkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9NYWtlZmlsZQo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+PiBA QCAtOTMsNiArOTMsNyBAQCBpOTE1LXkgKz0gZHZvX2NoNzAxNy5vIFwKPj4gICAgICAgICAgICBp bnRlbF9kdm8ubyBcCj4+ICAgICAgICAgICAgaW50ZWxfaGRtaS5vIFwKPj4gICAgICAgICAgICBp bnRlbF9pMmMubyBcCj4+ICsgICAgICAgICBpbnRlbF9sc3Bjb24ubyBcCj4+ICAgICAgICAgICAg aW50ZWxfbHZkcy5vIFwKPj4gICAgICAgICAgICBpbnRlbF9wYW5lbC5vIFwKPj4gICAgICAgICAg ICBpbnRlbF9zZHZvLm8gXAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBpbmRleCA3ZDBl MDcxLi40ZTQ5YzE2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBAQCAtODk0 LDEyICs4OTQsMTkgQEAgc3RydWN0IGludGVsX2RwIHsKPj4gICAgICAgICAgYm9vbCBjb21wbGlh bmNlX3Rlc3RfYWN0aXZlOwo+PiAgIH07Cj4+Cj4+ICtzdHJ1Y3QgaW50ZWxfbHNwY29uIHsKPj4g KyAgICAgICBib29sIGFjdGl2ZTsKPj4gKyAgICAgICBlbnVtIGRybV9sc3Bjb25fbW9kZSBtb2Rl X29mX29wOwo+PiArICAgICAgIHN0cnVjdCBkcm1fZHBfYXV4ICphdXg7Cj4+ICt9Owo+PiArCj4+ ICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCB7Cj4+ICAgICAgICAgIHN0cnVjdCBpbnRlbF9l bmNvZGVyIGJhc2U7Cj4+ICAgICAgICAgIGVudW0gcG9ydCBwb3J0Owo+PiAgICAgICAgICB1MzIg c2F2ZWRfcG9ydF9iaXRzOwo+PiAgICAgICAgICBzdHJ1Y3QgaW50ZWxfZHAgZHA7Cj4+ICAgICAg ICAgIHN0cnVjdCBpbnRlbF9oZG1pIGhkbWk7Cj4+ICsgICAgICAgc3RydWN0IGludGVsX2xzcGNv biBsc3Bjb247Cj4+ICAgICAgICAgIGVudW0gaXJxcmV0dXJuICgqaHBkX3B1bHNlKShzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICosIGJvb2wpOwo+PiAgICAgICAgICBib29sIHJlbGVhc2VfY2wy X292ZXJyaWRlOwo+PiAgICAgICAgICB1aW50OF90IG1heF9sYW5lczsKPj4gQEAgLTE0NTAsNyAr MTQ1Nyw2IEBAIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+PiAgIHZvaWQgaW50ZWxfZHBfZHVhbF9t b2RlX3NldF90bWRzX291dHB1dChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwgYm9vbCBlbmFibGUp Owo+Pgo+PiAtCj4+ICAgLyogaW50ZWxfbHZkcy5jICovCj4+ICAgdm9pZCBpbnRlbF9sdmRzX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+ICAgYm9vbCBpbnRlbF9pc19kdWFsX2xpbmtf bHZkcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPj4gQEAgLTE3NDUsNCArMTc1MSw5IEBAIGlu dCBpbnRlbF9jb2xvcl9jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqc3RhdGUpOwo+PiAgIHZvaWQgaW50ZWxfY29sb3Jfc2V0X2NzYyhzdHJ1Y3QgZHJt X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+PiAgIHZvaWQgaW50ZWxfY29sb3JfbG9hZF9sdXRz KHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4+Cj4+ICsvKiBpbnRlbF9sc3Bj b24uYyAqLwo+PiArYm9vbCBsc3Bjb25faW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCk7Cj4+ICtlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4+ICtsc3Bjb25f bHNfbW9kZV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3Jj ZSk7Cj4+ICtib29sIGlzX2xzcGNvbl9hY3RpdmUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq ZGlnX3BvcnQpOwo+PiAgICNlbmRpZiAvKiBfX0lOVEVMX0RSVl9IX18gKi8KPj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHNwY29uLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAw MDAwMC4uZmRlZmY3MQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xzcGNvbi5jCj4+IEBAIC0wLDAgKzEsMTQ1IEBACj4+ICsvKgo+PiArICogQ29w eXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KPj4gKyAqCj4+ICsgKiBQZXJtaXNzaW9u IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p bmcgYQo+PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3 YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPj4g KyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0 cmlidXRlLCBzdWJsaWNlbnNlLAo+PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4+ICsgKiBTb2Z0d2FyZSBp cyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z Ogo+PiArICoKPj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPj4gKyAqIHBhcmFncmFwaCkgc2hhbGwg YmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUK Pj4gKyAqIFNvZnR3YXJlLgo+PiArICoKPj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4+ICsgKiBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKPj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFO RCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+PiArICogVEhFIEFVVEhPUlMg T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVIKPj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09O TkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4+ICsgKiBERUFM SU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+PiArICoKPj4gKyAqLwo+PiArI2luY2x1ZGUg PGRybS9kcm1fZWRpZC5oPgo+PiArI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ PiArI2luY2x1ZGUgPGRybS9kcm1fZHBfZHVhbF9tb2RlX2hlbHBlci5oPgo+PiArI2luY2x1ZGUg ImludGVsX2Rydi5oIgo+PiArCj4KPiBEb2VzIHRoaXMgbmV3IGZpbGUgd29ydGgvZGVzZXJ2ZXMv bmVlZHMgYSBEb2Nib29rPwpJdHMgYSB3cmFwcGVyIG92ZXIgdGhlIGRybV9kcF9kdWFsX21vZGUg bGF5ZXIsIHdoZXJlIG1vc3Qgb2YgdGhlIGpvYiBpcyAKYmVpbmcgZG9uZS4gQnV0IGlmIHlvdSBz dWdnZXN0LCBJIGNhbiBtYWtlIHNvbWUgZG9jdW1lbnRhdGlvbi4KPgo+PiArYm9vbCBpc19sc3Bj b25fYWN0aXZlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+PiArewo+PiAr ICAgICAgIHJldHVybiBkaWdfcG9ydC0+bHNwY29uLmFjdGl2ZTsKPj4gK30KPj4gKwo+PiArZW51 bSBkcm1fbHNwY29uX21vZGUgbHNwY29uX2dldF9jdXJyZW50X21vZGUoc3RydWN0IGludGVsX2xz cGNvbiAqbHNwY29uKQo+PiArewo+PiArICAgICAgIGVudW0gZHJtX2xzcGNvbl9tb2RlIGN1cnJl bnRfbW9kZSA9IERSTV9MU1BDT05fTU9ERV9JTlZBTElEOwo+PiArICAgICAgIHN0cnVjdCBpMmNf YWRhcHRlciAqYWRhcHRlciA9ICZsc3Bjb24tPmF1eC0+ZGRjOwo+PiArCj4+ICsgICAgICAgaWYg KGRybV9sc3Bjb25fZ2V0X21vZGUoYWRhcHRlciwgJmN1cnJlbnRfbW9kZSkpCj4+ICsgICAgICAg ICAgICAgICBEUk1fRVJST1IoIkVycm9yIHJlYWRpbmcgTFNQQ09OIG1vZGVcbiIpOwo+PiArICAg ICAgIGVsc2UKPj4gKyAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIkN1cnJlbnQgTFNQQ09O IG1vZGUgJXNcbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfbW9kZSA9PSBE Uk1fTFNQQ09OX01PREVfUENPTiA/ICJQQ09OIiA6ICJMUyIpOwo+PiArICAgICAgIHJldHVybiBj dXJyZW50X21vZGU7Cj4+ICt9Cj4+ICsKPj4gK2ludCBsc3Bjb25fY2hhbmdlX21vZGUoc3RydWN0 IGludGVsX2xzcGNvbiAqbHNwY29uLAo+PiArICAgICAgIGVudW0gZHJtX2xzcGNvbl9tb2RlIG1v ZGUsIGJvb2wgZm9yY2UpCj4+ICt7Cj4+ICsgICAgICAgaW50IGVycjsKPj4gKyAgICAgICBlbnVt IGRybV9sc3Bjb25fbW9kZSBjdXJyZW50X21vZGU7Cj4+ICsgICAgICAgc3RydWN0IGkyY19hZGFw dGVyICphZGFwdGVyID0gJmxzcGNvbi0+YXV4LT5kZGM7Cj4+ICsKPj4gKyAgICAgICBlcnIgPSBk cm1fbHNwY29uX2dldF9tb2RlKGFkYXB0ZXIsICZjdXJyZW50X21vZGUpOwo+PiArICAgICAgIGlm IChlcnIpIHsKPj4gKyAgICAgICAgICAgICAgIERSTV9FUlJPUigiRXJyb3IgcmVhZGluZyBMU1BD T04gbW9kZVxuIik7Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4gZXJyOwo+PiArICAgICAgIH0K Pj4gKwo+PiArICAgICAgIGlmIChjdXJyZW50X21vZGUgPT0gbW9kZSAmJiAhZm9yY2UpIHsKPj4g KyAgICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIkN1cnJlbnQgbW9kZSA9IGRlc2lyZWQgTFNQ Q09OIG1vZGVcbiIpO1wKPgo+IGRlYnVnIG9yIGVycm9yPwo+IG1heWJlIHByaW50IHRoZSBkZXNp cmVkIG1vZGUgaGVyZT8KPgo+IGluIGNhc2UgZGVzaXJlZCBtb2RlIGlzIHVzZWxlc3MgdG8ga25v dyBhbmQgaWYgaXQgaGFwcGVucyB3aXRoCj4gZnJlcXVlbmN5IEknZCBiZWxpZXZlIHdlIGNvdWxk IHNraXAgdGhlIGRlYnVnIG1lc3NhZ2UgYW5kIGp1c3QgbW92ZQo+IG9uLi4uCkFjdHVhbGx5IEkg d2FzIGxlYXZpbmcgc2NvcGUgZm9yIGEgbG9uZy10ZXJtIGRlc2lnbiwgd2hlcmUgYW4gSU9DVEwg aXMgCmJlaW5nIGdpdmVuIHRvIHRoZSB1c2Vyc3BhY2UsIHdoaWNoIGNhbiByZXF1ZXN0IGEgTFMt PlBDT04gb3IgUENPTi0+TFMKbW9kZSwgYW5kIGluIHRoYXQgY2FzZSwgaXQgd291bGQgYmUgZ29v ZCB0byBwcmludCB0aGlzIGNvbnNpZGVyaW5nIGl0cyBhIApkdW1iIElPQ1RMLCBkbyB5b3UgdGhp bmsgc28gPwo+Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPj4gKyAgICAgICB9Cj4+ICsK Pj4gKyAgICAgICBlcnIgPSBkcm1fbHNwY29uX3NldF9tb2RlKGFkYXB0ZXIsIG1vZGUpOwo+PiAr ICAgICAgIGlmIChlcnIgPCAwKSB7Cj4+ICsgICAgICAgICAgICAgICBEUk1fRVJST1IoIkxTUENP TiBtb2RlIGNoYW5nZSBmYWlsZWRcbiIpOwo+PiArICAgICAgICAgICAgICAgcmV0dXJuIGVycjsK Pj4gKyAgICAgICB9Cj4+ICsKPj4gKyAgICAgICBsc3Bjb24tPm1vZGVfb2Zfb3AgPSBtb2RlOwo+ PiArICAgICAgIERSTV9ERUJVR19LTVMoIkxTUENPTiBtb2RlIGNoYW5nZWQgZG9uZVxuIik7Cj4+ ICsgICAgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK2Jvb2wgbHNwY29uX2RldGVjdF9pZGVu dGlmaWVyKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbikKPj4gK3sKPj4gKyAgICAgICBlbnVt IGRybV9kcF9kdWFsX21vZGVfdHlwZSBhZGFwdG9yX3R5cGU7Cj4+ICsgICAgICAgc3RydWN0IGky Y19hZGFwdGVyICphZGFwdGVyID0gJmxzcGNvbi0+YXV4LT5kZGM7Cj4+ICsKPj4gKyAgICAgICAv KiBMZXRzIHByb2JlIHRoZSBhZGFwdG9yIGFuZCBjaGVjayBpdHMgdHlwZSAqLwo+PiArICAgICAg IGFkYXB0b3JfdHlwZSA9IGRybV9kcF9kdWFsX21vZGVfZGV0ZWN0KGFkYXB0ZXIpOwo+PiArICAg ICAgIGlmIChhZGFwdG9yX3R5cGUgIT0gRFJNX0RQX0RVQUxfTU9ERV9MU1BDT04pIHsKPgo+IHNo b3VsZG4ndCB3ZSBkbyBUWVBFMiB8IGJpdDMgaGVyZT8KPgpJIGhhdmUgYWRkZWQgTFNQQ09OIGRl dGVjdGlvbiBjYXNlIGluIGRybV9kcF9kdWFsX21vZGVfZGV0ZWN0KCkgCmZ1bmN0aW9uLCBzbyBp dCBkaXJlY3RseSByZXR1cm5zIERSTV9EUF9EVUFMX01PREVfTFNQQ09OIHdoZW4gZGV0ZWN0ZWQg OikuCj4+ICsgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJObyBMU1BDT04gZGV0ZWN0ZWQs IGZvdW5kICVzXG4iLAo+PiArICAgICAgICAgICAgICAgICAgICAgICBkcm1fZHBfZ2V0X2R1YWxf bW9kZV90eXBlX25hbWUoYWRhcHRvcl90eXBlKSk7Cj4+ICsgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7Cj4+ICsgICAgICAgfQo+PiArCj4+ICsgICAgICAgLyogWWF5IC4uLiBnb3QgYSBMU1BD T04gZGV2aWNlICovCj4+ICsgICAgICAgRFJNX0RFQlVHX0tNUygiTFNQQ09OIGRldGVjdGVkXG4i KTsKPj4gKyAgICAgICByZXR1cm4gdHJ1ZTsKPj4gK30KPj4gKwo+PiArZW51bSBkcm1fbHNwY29u X21vZGUgbHNwY29uX3Byb2JlKHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbikKPj4gK3sKPj4g Kwo+PiArICAgICAgIC8qIERldGVjdCBhIHZhbGlkIGxzcGNvbiBhZGFwdG9yICovCj4+ICsgICAg ICAgaWYgKCFsc3Bjb25fZGV0ZWN0X2lkZW50aWZpZXIobHNwY29uKSkgewo+PiArICAgICAgICAg ICAgICAgRFJNX0RFQlVHX0tNUygiTm8gTFNQQ09OIGlkZW50aWZpZXIgZm91bmRcbiIpOwo+PiAr ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+PiArICAgICAgIH0KPj4gKwo+PiArICAgICAg IC8qIEdldCBMU1BDT04ncyBtb2RlIG9mIG9wZXJhdGlvbiAqLwo+PiArICAgICAgIGxzcGNvbi0+ bW9kZV9vZl9vcCA9IGxzcGNvbl9nZXRfY3VycmVudF9tb2RlKGxzcGNvbik7Cj4+ICsgICAgICAg bHNwY29uLT5hY3RpdmUgPSB0cnVlOwo+PiArICAgICAgIHJldHVybiB0cnVlOwo+PiArfQo+PiAr Cj4+ICtib29sIGxzcGNvbl9pbml0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0KQo+PiArewo+PiArICAgICAgIHN0cnVjdCBpbnRlbF9kcCAqZHAgPSAmaW50ZWxfZGln X3BvcnQtPmRwOwo+PiArICAgICAgIHN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiA9ICZpbnRl bF9kaWdfcG9ydC0+bHNwY29uOwo+PiArICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBp bnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPj4gKwo+PiArICAgICAgIGlmICghSVNfR0VO OShkZXYpKSB7Cj4+ICsgICAgICAgICAgICAgICBEUk1fRVJST1IoIkxTUENPTiBpcyBzdXBwb3J0 ZWQgb24gR0VOOSBvbmx5XG4iKTsKPj4gKyAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPj4g KyAgICAgICB9Cj4+ICsKPj4gKyAgICAgICBsc3Bjb24tPmFjdGl2ZSA9IGZhbHNlOwo+PiArICAg ICAgIGxzcGNvbi0+bW9kZV9vZl9vcCA9IERSTV9MU1BDT05fTU9ERV9JTlZBTElEOwo+PiArICAg ICAgIGxzcGNvbi0+YXV4ID0gJmRwLT5hdXg7Cj4+ICsKPj4gKyAgICAgICBpZiAoIWxzcGNvbl9w cm9iZShsc3Bjb24pKSB7Cj4+ICsgICAgICAgICAgICAgICBEUk1fRVJST1IoIkZhaWxlZCB0byBw cm9iZSBsc3Bjb25cbiIpOwo+PiArICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+PiArICAg ICAgIH0KPj4gKwo+PiArICAgICAgIC8qCj4+ICsgICAgICAgKiBJbiB0aGUgU1cgc3RhdGUgbWFj aGluZSwgbGV0cyBQdXQgTFNQQ09OIGluIFBDT04gbW9kZSBvbmx5Lgo+PiArICAgICAgICogSW4g dGhpcyB3YXksIGl0IHdpbGwgd29yayB3aXRoIGJvdGggSERNSSAxLjQgc2lua3MgYXMgd2VsbCBh cyBIRE1JCj4+ICsgICAgICAgKiAyLjAgc2lua3MuCj4+ICsgICAgICAgKi8KPgo+IFJlYWRpbmcg dGhlIHNwZWNzIHNlZW1zIHRvIG1lIHRoYXQgZm9yIEhETUkgMS40IHRoZSBMUyBpcyB0aGUKPiBy ZWNvbW1lbmRlZCBhbmQgZm9yIEhETUkgMi4wIHRoZSBQQ09OIGlzIHJlcXVpcmVkLi4uIGJ1dCBJ IGJlbGlldmUgd2UKPiBkb24ndCBoYXZlIGEgd2F5IHRvIGRldGVybWluZSB0aGF0IHJpZ2h0Pwo+ CklmIHlvdSByZW1lbWJlciB0aGUgcHJldmlvdXMgZGVzaWduLCB3ZSB3ZXJlIGRlY2lkaW5nIHRo ZSBtb2RlIG9mIApvcGVyYXRpb24sIG9uIHRoZSBtb2Rlc2V0LCBkZXBlbmRpbmcgb24gdGhlIHBp eGVsIGNsb2NrIChzdGFydCBpbiBMUyAKbW9kZSwgaWYgbW9kZXNldC0+Y2xvY2sgPiAyOTdNIG1h a2UgaXQgZ28gb24gUENPTiwgZWxzZSBrZWVwIGluIExTKQoKQnV0IHRoaXMgYXBwcm9hY2ggd2Fz IGNhdXNpbmcgZmV3IHByb2JsZW1zIHdpdGggcHJldmlvdXMgZGVzaWduIGFuZCBjb2RlIApyZXZp ZXcgc3VnZ2VzdGlvbiwgbGlrZToKLSBpbiB0aGlzIHNjZW5hcmlvLCB3ZSBuZWVkZWQgdG8gcmVn aXN0ZXIgZHVhbCBjb25uZWN0b3JzLCBvbmUgSERNSSBhbmQgCm9uZSBEUCwgYW5kIHRoaXMgd2Fz IGNhdXNpbmcgb24gZXh0cmEgZGV0ZWN0IHRvIHN3aWN0aCBiZXR3ZWVuIERQLT5IRE1JCkFsc28s IHZpbGxlIHN1Z2dlc3RlZCBub3QgdG8gZXhwbG9pdCBEREkncyBkdWFsIGNvbm5lY3RvciBwZXJz b25hbGl0eSAKYW55bW9yZS4KLSBzZWNvbmQgcG9zc2liaWxpdHkgd2FzIHRvIGNyZWF0ZSBhIG5l dyBjb25uZWN0b3IgZm9yIExTUENPTiwgYW5kIGNvbWUgCnVwIHdpdGggYWxsIHRoZSBmdW5jdGlv bnMgZm9yIGl0LiBCdXQgUGF1bG8gdGhvdWdodCB0aGVyZSB3YXMgdG9vIG11Y2ggCmNvZGUgZHVw bGljYXRpb24gdGhlcmUsIHdoaWNoIGlzIG1ha2luZyBjb2RlIHVubmVjZXNzYXJ5IGNvbXBsZXgu Ci0gSWYgbW9uaXRvciBpcyBIRENQMi4yIGNhcGFibGUsIHlvdSBoYXZlIHRvIGFsd2F5cyBiZSBp biBQQ09OIG1vZGUgdG8gCmhhbmRsZSBIRENQIGhhbmRzaGFraW5nLgoKU28gYmFzZWQgb24gdGhp cyBoaXN0b3J5LCBsZWFybmluZyBmcm9tIGFuZHJvaWQgcHJvZHVjdHMsIGFuZCBjb2RlIApyZXZp ZXcgc3VnZ2VzdGlvbnMsIEkgdGhvdWdodCBpdCB3b3VsZCBiZSB2ZXJ5IHNpbXBsZSB0byBoYXZl IGl0IGFsd2F5cyAKcnVubmluZyBpbiBQQ09OIG1vZGUsIHdoaWNoIGlzIGF1dG9tYXRpY2FsbHkg YmFja3dhcmQgY29tcGF0aWJsZSB0byBIRE1JIAoxLjQgbW9uaXRvcnMuCgpTaGFzaGFuawo+PiAr ICAgICAgIGlmIChsc3Bjb24tPmFjdGl2ZSAmJiBsc3Bjb24tPm1vZGVfb2Zfb3AgIT0gRFJNX0xT UENPTl9NT0RFX1BDT04pIHsKPj4gKyAgICAgICAgICAgICAgIGlmIChsc3Bjb25fY2hhbmdlX21v ZGUobHNwY29uLCBEUk1fTFNQQ09OX01PREVfUENPTiwKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgdHJ1ZSkgPCAwKSB7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiTFNQ Q09OIG1vZGUgY2hhbmdlIHRvIFBDT04gZmFpbGVkXG4iKTsKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOwo+PiArICAgICAgICAgICAgICAgfQo+PiArICAgICAgIH0KPj4g Kwo+PiArICAgICAgIERSTV9ERUJVR19LTVMoIlN1Y2Nlc3M6IExTUENPTiBpbml0XG4iKTsKPj4g KyAgICAgICByZXR1cm4gdHJ1ZTsKPj4gK30KPj4gLS0KPj4gMS45LjEKPj4KPj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4KPgo+Cl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=