From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH v4 39/41] drm/i915: Implement the HDCP2.2 support for HDMI Date: Wed, 20 Jun 2018 15:49:06 +0530 Message-ID: <748b60d5-8af1-024c-8674-847b02b8a948@intel.com> References: <1526907240-17639-1-git-send-email-ramalingam.c@intel.com> <1526907240-17639-40-git-send-email-ramalingam.c@intel.com> <20180531072406.GO3438@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180531072406.GO3438@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, alexander.usyskin@intel.com, uma.shankar@intel.com, dri-devel@lists.freedesktop.org, tomas.winkler@intel.com List-Id: dri-devel@lists.freedesktop.org CgpPbiBUaHVyc2RheSAzMSBNYXkgMjAxOCAxMjo1NCBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToK PiBPbiBNb24sIE1heSAyMSwgMjAxOCBhdCAwNjoyMzo1OFBNICswNTMwLCBSYW1hbGluZ2FtIEMg d3JvdGU6Cj4+IEltcGxlbWVudHMgdGhlIEhETUkgYWRhcHRhdGlvbiBzcGVjaWZpYyBIRENQMi4y IG9wZXJhdGlvbnMuCj4+Cj4+IEJhc2ljYWxseSB0aGVzZSBhcmUgRERDIHJlYWQgYW5kIHdyaXRl IGZvciBhdXRoZW50aWNhdGluZyB0aHJvdWdoCj4+IEhEQ1AyLjIgbWVzc2FnZXMuCj4+Cj4+IHYy Ogo+PiAgICBSZWJhc2VkLgo+PiB2MzoKPj4gICAgTm8gQ2hhbmdlcy4KPj4gdjQ6Cj4+ICAgIE5v IG1vcmUgc3BlY2lhbCBoYW5kbGluZyBvZiBHbWJ1cyBidXJzdCByZWFkIGZvciBBS0VfU0VORF9D RVJULgo+PiAgICBTdHlsZSBmaXhlZCB3aXRoIGZldyBuYW1pbmcuIFtVbWFdCj4+ICAgICVzL1BB UklORy9QQUlSSU5HCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdh bS5jQGludGVsLmNvbT4KPj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRt aS5jIHwgMTg2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAgMSBm aWxlIGNoYW5nZWQsIDE4NiBpbnNlcnRpb25zKCspCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMKPj4gaW5kZXggYTVjYzczMTAxYWNiLi4wNDIyMDVlNTdlNDIgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZG1pLmMKPj4gQEAgLTMwLDYgKzMwLDcgQEAKPj4gICAjaW5jbHVkZSA8 bGludXgvc2xhYi5oPgo+PiAgICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgo+PiAgICNpbmNsdWRl IDxsaW51eC9oZG1pLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvbWVpX2hkY3AuaD4KPj4gICAjaW5j bHVkZSA8ZHJtL2RybVAuaD4KPj4gICAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWNfaGVscGVyLmg+ Cj4+ICAgI2luY2x1ZGUgPGRybS9kcm1fY3J0Yy5oPgo+PiBAQCAtMTEwNiw2ICsxMTA3LDE4NiBA QCBib29sIGludGVsX2hkbWlfaGRjcF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0KQo+PiAgIAlyZXR1cm4gdHJ1ZTsKPj4gICB9Cj4+ICAgCj4+ICtz dGF0aWMKPj4gK2ludCBpbnRlbF9oZG1pX2hkY3AyX3JlYWRfcnhfc3RhdHVzKHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+PiArCQkJCSAgICB1aW50OF90ICpyeF9z dGF0dXMpCj4+ICt7Cj4+ICsJcmV0dXJuIGludGVsX2hkbWlfaGRjcF9yZWFkKGludGVsX2RpZ19w b3J0LAo+PiArCQkJCSAgICBIRENQXzJfMl9IRE1JX1JFR19SWFNUQVRVU19PRkZTRVQsCj4+ICsJ CQkJICAgIHJ4X3N0YXR1cywKPj4gKwkJCQkgICAgSERDUF8yXzJfSERNSV9SWFNUQVRVU19MRU4p Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW5saW5lCj4+ICtpbnQgaW50ZWxfaGRtaV9oZGNwMl90 aW1lb3V0X2Zvcl9tc2codWludDhfdCBtc2dfaWQsIGJvb2wgaXNfcGFpcmVkKQo+IFNvIGF0IGEg Z2xhbmNlIHRoaXMgaXMgdGhlIHNhbWUgdGltZW91dCBzdHVmZiBhcyBmb3IgZHAuIEkgdGhpbmsg dGhpcwo+IHNob3VsZCBiZSBtb3ZlZCBvdXQgb2YgdGhlIGxvdy1sZXZlbCBjYWxsYmFja3MgaW50 byBjb21tb250IGNvZGUuIE1heWJlCj4gd3JhcCB0aGUgbG93LWxldmVsIGNhbGxiYWNrcyBmb3Ig cmVhZC93cml0ZSBpbnRvIHNtYWxsIGhlbHBlciBmdW5jdGlvbnMsCj4gd2hpY2ggdGhlbiBhbHNv IGRvIHRoZSB0aW1lb3V0IGhhbmRsaW5nPwo+Cj4gQW5kIEkgdGhpbmsgdGhlIHRpbWVvdXRzIGFu ZCBhdmFpbGFiaWxpdHkgY2hlY2tzIHNob3VsZCBiZSBkb25lIGluIHRoZQo+IGhkY3AgZmxvdyBk aXJlY3RseSwgaW5zdGVhZCBvZiBmYXIgYXdheSBmcm9tIHdoZXJlIHRoZSByZWdpc3RlciByZWFk L3dyaXRlCj4gaXMgaXNzdWUuClNpbmNlIHRoZSBtc2cgYXZhaWxhYmlsaXR5IGRldGVjdGlvbiBp cyBzcGVjaWZpYyB0byB0aGUgYWRhcHRhdGlvbiBhbmQgCnRpbWVvdXQKd2hpY2ggYWxzbyBhZGFw dGF0aW9uIHNwZWNpZmljLCBpcyBuZWVkZWQgZm9yIG1zZyBhdmFpbGFiaWxpdHkgZGV0ZWN0aW9u LgpTbyBJIGZlZWwgaXQgd2lsbCBsb29rIHNpbXBsZSB0byBrZWVwIHRoZW0gdG9nZXRoZXIgaW4g aGRjcCBzaGltIC4KCkFzIHlvdSBtZW50aW9uZWQgaW4gdGhlIERQIGhkY3Agc2hpbSByZXZpZXcs IHdlIGNvdWxkIHVzZSB0aGUgYXJyYXkgb2YgCnN0cnVjdCBob2xkaW5nIHRpbWVvdXQgYW5kIG9m ZnNldHMgZm9yIGEgbXNnLgpUaGlzIHdpbGwgaGVscCB0byBhdm9pZCB0aGUgb25lIG9mIHR3byBz d2l0Y2ggY2FzZXMgdXNlZCBmb3IgbWFwcGluZyB0aGUgCnRpbWVvdXQgYW5kIG9mZnNldHMgd2l0 aCBtc2dfaWQuCgotUmFtCj4gICBKdXN0IHRvIGtlZXAgdGhlIGVudGlyZSByZWdpc3RlciBpL28g Y2xvc2VseSB0b2dldGhlci4KPiAtRGFuaWVsCj4KPj4gK3sKPj4gKwlpbnQgdGltZW91dDsKPj4g Kwo+PiArCXN3aXRjaCAobXNnX2lkKSB7Cj4+ICsJY2FzZSBIRENQXzJfMl9BS0VfU0VORF9DRVJU Ogo+PiArCQl0aW1lb3V0ID0gSERDUF8yXzJfQ0VSVF9USU1FT1VUOwo+PiArCQlicmVhazsKPj4g KwljYXNlIEhEQ1BfMl8yX0FLRV9TRU5EX0hQUklNRToKPj4gKwkJaWYgKGlzX3BhaXJlZCkKPj4g KwkJCXRpbWVvdXQgPSBIRENQXzJfMl9IUFJJTUVfUEFJUkVEX1RJTUVPVVQ7Cj4+ICsJCWVsc2UK Pj4gKwkJCXRpbWVvdXQgPSBIRENQXzJfMl9IUFJJTUVfTk9fUEFJUkVEX1RJTUVPVVQ7Cj4+ICsJ CWJyZWFrOwo+PiArCWNhc2UgSERDUF8yXzJfQUtFX1NFTkRfUEFJUklOR19JTkZPOgo+PiArCQl0 aW1lb3V0ID0gSERDUF8yXzJfUEFJUklOR19USU1FT1VUOwo+PiArCQlicmVhazsKPj4gKwljYXNl IEhEQ1BfMl8yX0xDX1NFTkRfTFBSSU1FOgo+PiArCQl0aW1lb3V0ID0gSERDUF8yXzJfSERNSV9M UFJJTUVfVElNRU9VVDsKPj4gKwkJYnJlYWs7Cj4+ICsJY2FzZSBIRENQXzJfMl9SRVBfU0VORF9S RUNWSURfTElTVDoKPj4gKwkJdGltZW91dCA9IEhEQ1BfMl8yX1JFQ1ZJRF9MSVNUX1RJTUVPVVQ7 Cj4+ICsJCWJyZWFrOwo+PiArCWNhc2UgSERDUF8yXzJfUkVQX1NUUkVBTV9SRUFEWToKPj4gKwkJ dGltZW91dCA9IEhEQ1BfMl8yX1NUUkVBTV9SRUFEWV9USU1FT1VUOwo+PiArCQlicmVhazsKPj4g KwlkZWZhdWx0Ogo+PiArCQl0aW1lb3V0ID0gLUVJTlZBTDsKPj4gKwkJRFJNX0VSUk9SKCJVbnN1 cHBvcnRlZCBtc2dfaWQ6ICVkXG4iLCAoaW50KW1zZ19pZCk7Cj4+ICsJfQo+PiArCj4+ICsJcmV0 dXJuIHRpbWVvdXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUKPj4gK2ludCBoZGNwMl9k ZXRlY3RfbXNnX2F2YWlsYWJpbGl0eShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdpdGFsX3BvcnQsCj4+ICsJCQkJICB1aW50OF90IG1zZ19pZCwgYm9vbCAqbXNnX3JlYWR5LAo+ PiArCQkJCSAgc3NpemVfdCAqbXNnX3N6KQo+PiArewo+PiArCXVpbnQ4X3Qgcnhfc3RhdHVzW0hE Q1BfMl8yX0hETUlfUlhTVEFUVVNfTEVOXTsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJcmV0ID0g aW50ZWxfaGRtaV9oZGNwMl9yZWFkX3J4X3N0YXR1cyhpbnRlbF9kaWdpdGFsX3BvcnQsIHJ4X3N0 YXR1cyk7Cj4+ICsJaWYgKHJldCA8IDApIHsKPj4gKwkJRFJNX0RFQlVHX0tNUygicnhfc3RhdHVz IHJlYWQgZmFpbGVkLiBFcnIgJWRcbiIsIHJldCk7Cj4+ICsJCXJldHVybiByZXQ7Cj4+ICsJfQo+ PiArCj4+ICsJKm1zZ19zeiA9ICgoSERDUF8yXzJfSERNSV9SWFNUQVRVU19NU0dfU1pfSEkocnhf c3RhdHVzWzFdKSA8PCA4KSB8Cj4+ICsJCSAgcnhfc3RhdHVzWzBdKTsKPj4gKwo+PiArCWlmICht c2dfaWQgPT0gSERDUF8yXzJfUkVQX1NFTkRfUkVDVklEX0xJU1QpCj4+ICsJCSptc2dfcmVhZHkg PSAoSERDUF8yXzJfSERNSV9SWFNUQVRVU19SRUFEWShyeF9zdGF0dXNbMV0pICYmCj4+ICsJCQkg ICAgICptc2dfc3opOwo+PiArCWVsc2UKPj4gKwkJKm1zZ19yZWFkeSA9ICptc2dfc3o7Cj4+ICsK Pj4gKwlyZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIHNzaXplX3QKPj4gK2ludGVsX2hk bWlfaGRjcDJfd2FpdF9mb3JfbXNnKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0LAo+PiArCQkJICAgICAgdWludDhfdCBtc2dfaWQsIGJvb2wgcGFpcmVkKQo+PiArewo+ PiArCWJvb2wgbXNnX3JlYWR5ID0gZmFsc2U7Cj4+ICsJaW50IHRpbWVvdXQsIHJldDsKPj4gKwlz c2l6ZV90IG1zZ19zejsKPj4gKwo+PiArCXRpbWVvdXQgPSBpbnRlbF9oZG1pX2hkY3AyX3RpbWVv dXRfZm9yX21zZyhtc2dfaWQsIHBhaXJlZCk7Cj4+ICsJaWYgKHRpbWVvdXQgPCAwKQo+PiArCQly ZXR1cm4gdGltZW91dDsKPj4gKwo+PiArCXJldCA9IF9fd2FpdF9mb3IocmV0ID0gaGRjcDJfZGV0 ZWN0X21zZ19hdmFpbGFiaWxpdHkoaW50ZWxfZGlnX3BvcnQsCj4+ICsJCQkgbXNnX2lkLCAmbXNn X3JlYWR5LCAmbXNnX3N6KSwKPj4gKwkJCSAhcmV0ICYmIG1zZ19yZWFkeSAmJiBtc2dfc3osIHRp bWVvdXQgKiAxMDAwLAo+PiArCQkJIDEwMDAsIDUgKiAxMDAwKTsKPj4gKwlpZiAocmV0KQo+PiAr CQlEUk1fRVJST1IoIm1zZ19pZDogJWQsIHJldDogJWQsIHRpbWVvdXQ6ICVkXG4iLAo+PiArCQkJ ICBtc2dfaWQsIHJldCwgdGltZW91dCk7Cj4+ICsKPj4gKwlyZXR1cm4gcmV0ID8gcmV0IDogbXNn X3N6Owo+PiArfQo+PiArCj4+ICtzdGF0aWMKPj4gK2ludCBpbnRlbF9oZG1pX2hkY3AyX3dyaXRl X21zZyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4gKwkJCSAg ICAgICB2b2lkICpidWYsIHNpemVfdCBzaXplKQo+PiArewo+PiArCXVuc2lnbmVkIGludCBvZmZz ZXQ7Cj4+ICsKPj4gKwlvZmZzZXQgPSBIRENQXzJfMl9IRE1JX1JFR19XUl9NU0dfT0ZGU0VUOwo+ PiArCXJldHVybiBpbnRlbF9oZG1pX2hkY3Bfd3JpdGUoaW50ZWxfZGlnX3BvcnQsIG9mZnNldCwg YnVmLCBzaXplKTsKPj4gK30KPj4gKwo+PiArc3RhdGljCj4+ICtpbnQgaW50ZWxfaGRtaV9oZGNw Ml9yZWFkX21zZyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4g KwkJCSAgICAgIHVpbnQ4X3QgbXNnX2lkLCB2b2lkICpidWYsIHNpemVfdCBzaXplKQo+PiArewo+ PiArCXN0cnVjdCBpbnRlbF9oZG1pICpoZG1pID0gJmludGVsX2RpZ19wb3J0LT5oZG1pOwo+PiAr CXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmhkbWktPmF0dGFjaGVkX2Nvbm5lY3Rvci0+aGRj cDsKPj4gKwl1bnNpZ25lZCBpbnQgb2Zmc2V0Owo+PiArCXNzaXplX3QgcmV0Owo+PiArCj4+ICsJ cmV0ID0gaW50ZWxfaGRtaV9oZGNwMl93YWl0X2Zvcl9tc2coaW50ZWxfZGlnX3BvcnQsIG1zZ19p ZCwKPj4gKwkJCQkJICAgIGhkY3AtPmlzX3BhaXJlZCk7Cj4+ICsJaWYgKHJldCA8IDApCj4+ICsJ CXJldHVybiByZXQ7Cj4+ICsKPj4gKwkvKgo+PiArCSAqIEF2YWlsYWJsZSBtc2cgc2l6ZSBzaG91 bGQgYmUgZXF1YWwgdG8gb3IgbGVzc2VyIHRoYW4gdGhlCj4+ICsJICogYXZhaWxhYmxlIGJ1ZmZl ci4KPj4gKwkgKi8KPj4gKwlpZiAocmV0ID4gc2l6ZSkgewo+PiArCQlEUk1fREVCVUdfS01TKCJt c2dfc3ooJWQpIGlzIG1vcmUgdGhhbiBleHAgc2l6ZSglZClcbiIsCj4+ICsJCQkgICAgICAoaW50 KXJldCwgKGludClzaXplKTsKPj4gKwkJcmV0dXJuIC0xOwo+PiArCX0KPj4gKwo+PiArCW9mZnNl dCA9IEhEQ1BfMl8yX0hETUlfUkVHX1JEX01TR19PRkZTRVQ7Cj4+ICsJcmV0ID0gaW50ZWxfaGRt aV9oZGNwX3JlYWQoaW50ZWxfZGlnX3BvcnQsIG9mZnNldCwgYnVmLCByZXQpOwo+PiArCWlmIChy ZXQpCj4+ICsJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byByZWFkIG1zZ19pZDogJWQoJXpkKVxu IiwgbXNnX2lkLCByZXQpOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiArc3Rh dGljCj4+ICtpbnQgaW50ZWxfaGRtaV9oZGNwMl9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQo+PiArewo+PiArCXVpbnQ4X3Qgcnhfc3RhdHVzW0hE Q1BfMl8yX0hETUlfUlhTVEFUVVNfTEVOXTsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJcmV0ID0g aW50ZWxfaGRtaV9oZGNwMl9yZWFkX3J4X3N0YXR1cyhpbnRlbF9kaWdfcG9ydCwgcnhfc3RhdHVz KTsKPj4gKwlpZiAocmV0KQo+PiArCQlyZXR1cm4gcmV0Owo+PiArCj4+ICsJLyoKPj4gKwkgKiBS ZS1hdXRoIHJlcXVlc3QgYW5kIExpbmsgSW50ZWdyaXR5IEZhaWx1cmVzIGFyZSByZXByZXNlbnRl ZCBieQo+PiArCSAqIHNhbWUgYml0LiBpLmUgcmVhdXRoX3JlcS4KPj4gKwkgKi8KPj4gKwlpZiAo SERDUF8yXzJfSERNSV9SWFNUQVRVU19SRUFVVEhfUkVRKHJ4X3N0YXR1c1sxXSkpCj4+ICsJCXJl dCA9IERSTV9IRENQX1JFQVVUSF9SRVFVRVNUOwo+PiArCWVsc2UgaWYgKEhEQ1BfMl8yX0hETUlf UlhTVEFUVVNfUkVBRFkocnhfc3RhdHVzWzFdKSkKPj4gKwkJcmV0ID0gRFJNX0hEQ1BfVE9QT0xP R1lfQ0hBTkdFOwo+PiArCj4+ICsJcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiArc3RhdGljCj4+ ICtpbnQgaW50ZWxfaGRtaV9oZGNwMl9jYXBhYmxlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0LAo+PiArCQkJICAgICBib29sICpjYXBhYmxlKQo+PiArewo+PiArCXVp bnQ4X3QgaGRjcDJfdmVyc2lvbjsKPj4gKwlpbnQgcmV0Owo+PiArCj4+ICsJKmNhcGFibGUgPSBm YWxzZTsKPj4gKwlyZXQgPSBpbnRlbF9oZG1pX2hkY3BfcmVhZChpbnRlbF9kaWdfcG9ydCwgSERD UF8yXzJfSERNSV9SRUdfVkVSX09GRlNFVCwKPj4gKwkJCQkgICAmaGRjcDJfdmVyc2lvbiwgc2l6 ZW9mKGhkY3AyX3ZlcnNpb24pKTsKPj4gKwlpZiAoIXJldCAmJiBoZGNwMl92ZXJzaW9uICYgSERD UF8yXzJfSERNSV9TVVBQT1JUX01BU0spCj4+ICsJCSpjYXBhYmxlID0gdHJ1ZTsKPj4gKwo+PiAr CXJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYwo+PiArZW51bSBoZGNwX3Byb3RvY29s IGludGVsX2hkbWlfaGRjcDJfcHJvdG9jb2wodm9pZCkKPj4gK3sKPj4gKwlyZXR1cm4gSERDUF9Q Uk9UT0NPTF9IRE1JOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9o ZGNwX3NoaW0gaW50ZWxfaGRtaV9oZGNwX3NoaW0gPSB7Cj4+ICAgCS53cml0ZV9hbl9ha3N2ID0g aW50ZWxfaGRtaV9oZGNwX3dyaXRlX2FuX2Frc3YsCj4+ICAgCS5yZWFkX2Jrc3YgPSBpbnRlbF9o ZG1pX2hkY3BfcmVhZF9ia3N2LAo+PiBAQCAtMTExNyw2ICsxMjk4LDExIEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltIGludGVsX2hkbWlfaGRjcF9zaGltID0gewo+PiAgIAku cmVhZF92X3ByaW1lX3BhcnQgPSBpbnRlbF9oZG1pX2hkY3BfcmVhZF92X3ByaW1lX3BhcnQsCj4+ ICAgCS50b2dnbGVfc2lnbmFsbGluZyA9IGludGVsX2hkbWlfaGRjcF90b2dnbGVfc2lnbmFsbGlu ZywKPj4gICAJLmNoZWNrX2xpbmsgPSBpbnRlbF9oZG1pX2hkY3BfY2hlY2tfbGluaywKPj4gKwku d3JpdGVfMl8yX21zZyA9IGludGVsX2hkbWlfaGRjcDJfd3JpdGVfbXNnLAo+PiArCS5yZWFkXzJf Ml9tc2cgPSBpbnRlbF9oZG1pX2hkY3AyX3JlYWRfbXNnLAo+PiArCS5jaGVja18yXzJfbGluawk9 IGludGVsX2hkbWlfaGRjcDJfY2hlY2tfbGluaywKPj4gKwkuaGRjcF8yXzJfY2FwYWJsZSA9IGlu dGVsX2hkbWlfaGRjcDJfY2FwYWJsZSwKPj4gKwkuaGRjcF9wcm90b2NvbCA9IGludGVsX2hkbWlf aGRjcDJfcHJvdG9jb2wsCj4+ICAgfTsKPj4gICAKPj4gICBzdGF0aWMgdm9pZCBpbnRlbF9oZG1p X3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+IC0tIAo+PiAyLjcuNAo+ PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==