From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2 5/6] drm/i915: enable scrambling Date: Tue, 07 Feb 2017 12:21:23 +0200 Message-ID: <87efzawbbw.fsf@intel.com> References: <1486389566-28613-1-git-send-email-shashank.sharma@intel.com> <1486389566-28613-6-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1486389566-28613-6-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Shashank Sharma , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, ville.syrjala@linux.intel.com, treding@nvidia.com Cc: jose.abreu@synopsys.com, daniel.vetter@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAwNiBGZWIgMjAxNywgU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50 ZWwuY29tPiB3cm90ZToKPiBHZW1pbmlsYWtlIHBsYXRmb3JtIHNwb3J0cyBhIG5hdGl2ZSBIRE1J IDIuMCBjb250cm9sbGVyLCBhbmQgaXMKPiBjYXBhYmxlIG9mIGRyaXZpbmcgcGl4ZWwtY2xvY2tz IHVwdG8gNTk0TWh6LiBIRE1JIDIuMCBzcGVjCj4gbWVuZGF0ZXMgc2NyYW1ibGluZyBmb3IgdGhl c2UgaGlnaGVyIGNsb2NrcywgZm9yIHJlZHVjZWQgUkYgZm9vdHByaW50Lgo+Cj4gVGhpcyBwYXRj aCBjaGVja3MgaWYgdGhlIG1vbml0b3Igc3VwcG9ydHMgc2NyYW1ibGluZywgYW5kIGlmIHJlcXVp cmVkLAo+IGVuYWJsZXMgaXQgZHVyaW5nIHRoZSBtb2Rlc2V0LgoKVGhyb3VnaG91dCB0aGlzIHNl cmllcywgYnV0IHBhcnRpY3VsYXJseSBpbiB0aGlzIHBhdGNoLCBJJ2QgcHJlZmVyIHVzaW5nCnRo ZSB0ZXJtICJzaW5rIiBpbnN0ZWFkIG9mICJtb25pdG9yIiBldmVyeXdoZXJlLiBUaGUgSERNSSBz cGVjaWZpY2F0aW9ucwp1c2Ugc291cmNlIGFuZCBzaW5rIGFsbW9zdCBleGNsdXNpdmVseS4KCkJS LApKYW5pLgoKPiBWMjogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9tIFZpbGxlOgo+IC0g RG8gbm90IHRyYWNrIHNjcmFtYmxpbmcgc3RhdHVzIGluIERSTSBsYXllciwgdHJhY2sgc29tZXdo ZXJlIGluCj4gICBkcml2ZXIgbGlrZSBpbiBpbnRlbF9jcnRjX3N0YXRlLgo+IC0gRG9uJ3QgdGFs ayB0byBtb25pdG9yIGF0IHN1Y2ggYSBsb3cgbGF5ZXIsIHNldCBtb25pdG9yIHNjcmFtYmxpbmcK PiAgIGluIGludGVsX2VuYWJsZV9kZGkoKSBiZWZvcmUgZW5hYmxpbmcgdGhlIHBvcnQuCj4KPiBT aWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+ Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICB8ICAyICsrCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICB8IDI2ICsrKysrKysrKysrKysrKwo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgfCAxMSArKysrKysKPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKykKPgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IDQ5NWI3ODkuLmNjODU4OTIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtNzgwNyw2ICs3ODA3LDggQEAgZW51bSB7Cj4gICNkZWZp bmUgIFRSQU5TX0RESV9FRFBfSU5QVVRfQ19PTk9GRgkoNjw8MTIpCj4gICNkZWZpbmUgIFRSQU5T X0RESV9EUF9WQ19QQVlMT0FEX0FMTE9DCSgxPDw4KQo+ICAjZGVmaW5lICBUUkFOU19ERElfQkZJ X0VOQUJMRQkJKDE8PDQpCj4gKyNkZWZpbmUgIFRSQU5TX0RESV9ISUdIX1RNRFNfQ0hBUl9SQVRF CSgxPDw0KQo+ICsjZGVmaW5lICBUUkFOU19ERElfSERNSV9TQ1JBTUJMSU5HCSgxPDwwKQo+ICAK PiAgLyogRGlzcGxheVBvcnQgVHJhbnNwb3J0IENvbnRyb2wgKi8KPiAgI2RlZmluZSBfRFBfVFBf Q1RMX0EJCQkweDY0MDQwCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCA5YTlhNjcw Li5jYzdlMDkxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMTI3OCw2ICsx Mjc4LDExIEBAIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoc3RydWN0IGRy bV9jcnRjICpjcnRjKQo+ICAJCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NFTEVDVF9IRE1JOwo+ ICAJCWVsc2UKPiAgCQkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFZJOwo+ICsKPiAr CQlpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikpCj4gKwkJCXRlbXAgPSBpbnRlbF9oZG1pX2hh bmRsZV9zb3VyY2Vfc2NyYW1ibGluZygKPiArCQkJCWludGVsX2VuY29kZXIsCj4gKwkJCQkmaW50 ZWxfY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUsIHRlbXApOwo+ICAJfSBlbHNlIGlm ICh0eXBlID09IElOVEVMX09VVFBVVF9BTkFMT0cpIHsKPiAgCQl0ZW1wIHw9IFRSQU5TX0RESV9N T0RFX1NFTEVDVF9GREk7Cj4gIAkJdGVtcCB8PSAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5mZGlfbGFu ZXMgLSAxKSA8PCAxOwo+IEBAIC0xODQ1LDYgKzE4NTAsMjEgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZW5hYmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiAgCQlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9Cj4gIAkJCWVuY190b19kaWdf cG9ydChlbmNvZGVyKTsKPiAgCj4gKwkJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4g KwkJCS8qCj4gKwkJCSAqIEdMSyBzcG9ydHMgYSBuYXRpdmUgSERNSSAyLjAgY29udHJvbGxlci4g SWYgcmVxdWlyZWQKPiArCQkJICogY2xvY2sgcmF0ZSBpcyA+IDM0MCBNaHogJiYgc2NyYW1ibGlu ZyBpcyBzdXBwb3J0ZWQKPiArCQkJICogYnkgbW9uaXRvciwgZW5hYmxlIHNjcmFtYmxpbmcgYmVm b3JlIGVuYWJsaW5nIHRoZQo+ICsJCQkgKiBIRE1JIDIuMCBwb3J0LiBUaGUgc2luayBjYW4gY2hv b3NlIHRvIGRpc2FibGUgdGhlCj4gKwkJCSAqIHNjcmFtYmxpbmcgaWYgaXQgZG9lc24ndCBkZXRl Y3QgYSBzY3JhbWJsZWQgd2l0aGluCj4gKwkJCSAqIDEwMCBtcy4KPiArCQkJICovCj4gKwkJCWlu dGVsX2hkbWlfaGFuZGxlX21vbml0b3Jfc2NyYW1ibGluZyhpbnRlbF9lbmNvZGVyLAo+ICsJCQkJ CQkJY29ubl9zdGF0ZS0+Y29ubmVjdG9yLAo+ICsJCQkJCQkJaW50ZWxfY3J0Yy0+Y29uZmlnLAo+ ICsJCQkJCQkJdHJ1ZSk7Cj4gKwkJfQo+ICsKPiAgCQkvKiBJbiBIRE1JL0RWSSBtb2RlLCB0aGUg cG9ydCB3aWR0aCwgYW5kIHN3aW5nL2VtcGhhc2lzIHZhbHVlcwo+ICAJCSAqIGFyZSBpZ25vcmVk IHNvIG5vdGhpbmcgc3BlY2lhbCBuZWVkcyB0byBiZSBkb25lIGJlc2lkZXMKPiAgCQkgKiBlbmFi bGluZyB0aGUgcG9ydC4KPiBAQCAtMTg4NSw2ICsxOTA1LDEyIEBAIHN0YXRpYyB2b2lkIGludGVs X2Rpc2FibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICAJCWlu dGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fQVVESU8pOwo+ICAJ fQo+ICAKPiArCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9IRE1JKSB7Cj4gKwkJaW50ZWxfaGRt aV9oYW5kbGVfbW9uaXRvcl9zY3JhbWJsaW5nKGludGVsX2VuY29kZXIsCj4gKwkJCQkJCW9sZF9j b25uX3N0YXRlLT5jb25uZWN0b3IsCj4gKwkJCQkJCWludGVsX2NydGMtPmNvbmZpZywgZmFsc2Up Owo+ICsJfQo+ICsKPiAgCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9FRFApIHsKPiAgCQlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKGVuY29kZXIpOwo+ICAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDM5M2YyNDMuLjMwMDM1M2MgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC02ODEsNiArNjgxLDkgQEAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgewo+ICAKPiAgCS8qIEdhbW1hIG1vZGUgcHJvZ3JhbW1lZCBvbiB0aGUgcGlw ZSAqLwo+ICAJdWludDMyX3QgZ2FtbWFfbW9kZTsKPiArCj4gKwkvKiBIRE1JIHNjcmFtYmxpbmcg c3RhdHVzIChtb25pdG9yKSAqLwo+ICsJYm9vbCBzY3JhbWJsaW5nOwo+ICB9Owo+ICAKPiAgc3Ry dWN0IHZsdl93bV9zdGF0ZSB7Cj4gQEAgLTE1ODgsNiArMTU5MSwxNCBAQCB2b2lkIGludGVsX2hk bWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQsCj4gIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZywKPiAgCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KTsKPiArdWludDMyX3QKPiAraW50ZWxfaGRtaV9oYW5kbGVfc291cmNlX3NjcmFtYmxpbmcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gKwkJCQkJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGUsCj4gKwkJCQkJdWludDMyX3QgY29uZmlnKTsKPiArdm9pZCBpbnRlbF9o ZG1pX2hhbmRsZV9tb25pdG9yX3NjcmFtYmxpbmcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIsCj4gKwkJCQkJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJ CQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnLAo+ICsJCQkJCWJvb2wgZW5hYmxlKTsK PiAgdm9pZCBpbnRlbF9kcF9kdWFsX21vZGVfc2V0X3RtZHNfb3V0cHV0KHN0cnVjdCBpbnRlbF9o ZG1pICpoZG1pLCBib29sIGVuYWJsZSk7Cj4gIAo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRt aS5jCj4gaW5kZXggZWJhZTJiZC4uNDFkMzMwOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMKPiBAQCAtMzQsNiArMzQsNyBAQAo+ICAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVs cGVyLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1f ZWRpZC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9zY2RjX2hlbHBlci5oPgo+ICAjaW5jbHVkZSAi aW50ZWxfZHJ2LmgiCj4gICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KPiAgI2luY2x1ZGUgPGRy bS9pbnRlbF9scGVfYXVkaW8uaD4KPiBAQCAtMTc5NSw2ICsxNzk2LDc1IEBAIHN0YXRpYyB2b2lk IGludGVsX2hkbWlfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJ aW50ZWxfaGRtaS0+YXNwZWN0X3JhdGlvID0gSERNSV9QSUNUVVJFX0FTUEVDVF9OT05FOwo+ICB9 Cj4gIAo+ICt2b2lkIGludGVsX2hkbWlfaGFuZGxlX21vbml0b3Jfc2NyYW1ibGluZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjb25maWcsCj4gKwkJCQkgICAgICAgYm9vbCBlbmFibGUpCj4gK3sKPiArCXN0cnVjdCBpbnRl bF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmludGVsX2VuY29kZXItPmJh c2UpOwo+ICsJc3RydWN0IGRybV9zY2RjICpzY2RjID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZv LmhkbWkuc2NkYzsKPiArCXN0cnVjdCBkcm1fc2NyYW1ibGluZyAqc2NyYW1ibGluZyA9ICZzY2Rj LT5zY3JhbWJsaW5nOwo+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBjb25uZWN0b3ItPmRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIg KmFkcHRyID0gaW50ZWxfZ21idXNfZ2V0X2FkYXB0ZXIoZGV2X3ByaXYsCj4gKwkJCQkJCQkgIGlu dGVsX2hkbWktPmRkY19idXMpOwo+ICsKPiArCWlmICghc2NyYW1ibGluZy0+c3VwcG9ydGVkKQo+ ICsJCXJldHVybjsKPiArCj4gKwlEUk1fREVCVUdfS01TKCJTZXR0aW5nIG1vbml0b3Igc2NyYW1i bGluZyBmb3IgZW5jOiVzIGNvbm5lY3Rvcjolc1xuIiwKPiArCQkJaW50ZWxfZW5jb2Rlci0+YmFz ZS5uYW1lLCBjb25uZWN0b3ItPm5hbWUpOwo+ICsKPiArCS8qIEVuYWJsZSBtb25pdG9yIHNjcmFt YmxpbmcgKi8KPiArCWlmIChlbmFibGUpIHsKPiArCQlpZiAobW9kZS0+Y2xvY2sgPiAzNDAwMDAg fHwgc2NyYW1ibGluZy0+bG93X3JhdGVzKSB7Cj4gKwkJCWNvbmZpZy0+c2NyYW1ibGluZyA9IGRy bV9zY2RjX2VuYWJsZV9zY3JhbWJsaW5nKGFkcHRyKTsKPiArCQkJaWYgKCFjb25maWctPnNjcmFt YmxpbmcpCj4gKwkJCQlEUk1fRVJST1IoIkNhbid0IGVuYWJsZSBtb25pdG9yIHNjcmFtYmxpbmdc biIpOwo+ICsJCX0KPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJLyogRGlzYWJsZSBtb25pdG9y IHNjcmFtYmxpbmcgKi8KPiArCWlmIChjb25maWctPnNjcmFtYmxpbmcpIHsKPiArCQljb25maWct PnNjcmFtYmxpbmcgPSAhKGRybV9zY2RjX2Rpc2FibGVfc2NyYW1ibGluZyhhZHB0cikpOwo+ICsJ CWlmIChjb25maWctPnNjcmFtYmxpbmcpCj4gKwkJCURSTV9FUlJPUigiQ2FuJ3QgZGlzYWJsZSBt b25pdG9yIHNjcmFtYmxpbmdcbiIpOwo+ICsJfQo+ICsKPiArfQo+ICsKPiArdWludDMyX3QKPiAr aW50ZWxfaGRtaV9oYW5kbGVfc291cmNlX3NjcmFtYmxpbmcoc3RydWN0IGludGVsX2VuY29kZXIg KmludGVsX2VuY29kZXIsCj4gKwkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLCB1aW50 MzJfdCBoZG1pX2NvbmZpZykKPiArewo+ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkg PSBlbmNfdG9faW50ZWxfaGRtaSgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4gKwlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2hkbWktPmF0dGFjaGVkX2Nvbm5lY3Rvci0+ YmFzZTsKPiArCXN0cnVjdCBkcm1faGRtaV9pbmZvICpoZG1pX2luZm8gPSAmY29ubmVjdG9yLT5k aXNwbGF5X2luZm8uaGRtaTsKPiArCXN0cnVjdCBkcm1fc2NyYW1ibGluZyAqc2NyYW1ibGluZyA9 ICZoZG1pX2luZm8tPnNjZGMuc2NyYW1ibGluZzsKPiArCj4gKwlEUk1fREVCVUdfS01TKCJTZXR0 aW5nIHNjcmFtYmxpbmcgZm9yIGVuYzolcyBjb25uZWN0b3I6JXNcbiIsCj4gKwkJCWludGVsX2Vu Y29kZXItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5uYW1lKTsKPiArCj4gKwloZG1pX2NvbmZpZyAm PSB+VFJBTlNfRERJX0hETUlfU0NSQU1CTElORzsKPiArCWhkbWlfY29uZmlnICY9IH5UUkFOU19E RElfSElHSF9UTURTX0NIQVJfUkFURTsKPiArCj4gKwlpZiAobW9kZS0+Y2xvY2sgPD0gMzQwMDAw KSB7Cj4gKwkJLyogRmV3IHNpbmtzIHN1cHBvcnQgc2NyYW1ibGluZyBhdCByYXRlIDwgMzQwIE1I eiB0b28gKi8KPiArCQlpZiAoc2NyYW1ibGluZy0+bG93X3JhdGVzKQo+ICsJCQloZG1pX2NvbmZp ZyB8PSBUUkFOU19ERElfSERNSV9TQ1JBTUJMSU5HOwo+ICsJCXJldHVybiBoZG1pX2NvbmZpZzsK PiArCX0KPiArCj4gKwkvKiBTY3JhbWJsaW5nIG9yIG5vdCwgaWYgY2xvY2sgPiAzNDAgTUh6LCBz ZXQgaGlnaCBjaGFyIHJhdGUgKi8KPiArCWhkbWlfY29uZmlnIHw9IFRSQU5TX0RESV9ISUdIX1RN RFNfQ0hBUl9SQVRFOwo+ICsKPiArCWlmIChzY3JhbWJsaW5nLT5zdXBwb3J0ZWQpCj4gKwkJaGRt aV9jb25maWcgfD0gVFJBTlNfRERJX0hETUlfU0NSQU1CTElORzsKPiArCj4gKwlyZXR1cm4gaGRt aV9jb25maWc7Cj4gK30KPiArCj4gIHN0YXRpYyB1OCBpbnRlbF9oZG1pX2RkY19waW4oc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgICAgIGVudW0gcG9ydCBwb3J0KQo+ ICB7CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVy Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=