From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v2 19/40] drm/i915/tgl: Select master transcoder in DP MST Date: Thu, 22 Aug 2019 18:44:12 +0200 Message-ID: <46ee64ae-51e4-004f-f7f4-3dae8cad4233@linux.intel.com> References: <20190817093902.2171-1-lucas.demarchi@intel.com> <20190817093902.2171-20-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7D3C96EBD9 for ; Fri, 23 Aug 2019 07:57:47 +0000 (UTC) In-Reply-To: <20190817093902.2171-20-lucas.demarchi@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMTctMDgtMjAxOSBvbSAxMTozOCBzY2hyZWVmIEx1Y2FzIERlIE1hcmNoaToKPiBGcm9tOiBK b3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPgo+IE9uIFRHTCB0 aGUgYmxlbmRpbmcgb2YgYWxsIHRoZSBzdHJlYW1zIGhhdmUgbW92ZWQgZnJvbSBEREkgdG8KPiB0 cmFuc2NvZGVyLCBzbyBub3cgZXZlcnkgdHJhbnNjb2RlciB3b3JraW5nIG92ZXIgdGhlIHNhbWUg TVNUIHBvcnQgbXVzdAo+IHNlbmQgaXRzIHN0cmVhbSB0byBhIG1hc3RlciB0cmFuc2NvZGVyIGFu ZCBtYXN0ZXIgd2lsbCBzZW5kIHRvIERESQo+IHJlc3BlY3RpbmcgdGhlIHRpbWUgc2xvdHMuCj4K PiBTbyBoZXJlIGl0IGlzIHBpY2tpbmcgdGhlIGxvd2VzdCBwaXBlL3RyYW5zY29kZXIgYXMgaXQg d2lsbCBiZQo+IGVuYWJsZWQgZmlyc3QgYW5kIGRpc2FibGVkIGxhc3QuCj4gQlNwZWM6IDUwNDkz Cj4gQlNwZWM6IDQ5MTkwCj4KPiB2MjogTWlzc2VkIHNldCBtc3RfbWFzdGVyX3RyYW5zIHRvIFRS QU5TQ09ERVJfSU5WQUxJRCB3aGVuIGNvbXB1dGluZyBIU1cKPiAgICAgZW5jb2RlciBjb25maWcu IEhTVyBDUlQgaHcgc3RhdGUgcmVhZG91dCBjYWxscwo+ICAgICBoc3dfY3J0X2dldF9jb25maWco KS0+aW50ZWxfZGRpX2dldF9jb25maWcoKSB0aGF0IHdpbGwgc2V0Cj4gICAgIG1zdF9tYXN0ZXJf dHJhbnMgdG8gVFJBTlNDT0RFUl9JTlZBTElEIGNhdXNpbmcgdGhlIG1pc21hdGNoIHdoZW4KPiAg ICAgdmVyaWZ5aW5nIENSVEMgc3RhdGUgYWZ0ZXIgYSBtb2Rlc2V0LiAoSm9zw6kpCj4KPiBDYzog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogTWFu YXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiBDYzogUm9kcmlnbyBWaXZp IDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8g ZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEx1Y2FzIERl IE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jICAgICAgfCAgIDIgKwo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCAgMTcgKysKPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgIDE1ICsrCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oICB8ICAgMyArCj4gIC4uLi9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCAgICB8ICAgMyArCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgICB8IDE1OSArKysrKysrKysrKysrKysr Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuaCAgIHwgICAy ICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgICAgICAgICAgIHwgICAz ICsKPiAgOCBmaWxlcyBjaGFuZ2VkLCAyMDEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYwo+IGluZGV4IGU2ZThk NGE4MjA0NC4uNTAzMTM1MjAwY2IzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfY3J0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2NydC5jCj4gQEAgLTQxNiw2ICs0MTYsOCBAQCBzdGF0aWMgaW50IGhzd19jcnRfY29t cHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkvKiBGREkgbXVz dCBhbHdheXMgYmUgMi43IEdIeiAqLwo+ICAJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSAxMzUw MDAgKiAyOwo+ICAKPiArCXBpcGVfY29uZmlnLT5tc3RfbWFzdGVyX3RyYW5zID0gVFJBTlNDT0RF Ul9JTlZBTElEOwo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+IGluZGV4IDFmNTkxZTY5Yjc0Mi4uNTBhMjZiZWE4Y2Rl IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gQEAgLTE4 NDAsNiArMTg0MCwxMiBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJfSBlbHNlIGlmIChp bnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9EUF9NU1QpKSB7Cj4g IAkJdGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfTVNUOwo+ICAJCXRlbXAgfD0gRERJ X1BPUlRfV0lEVEgoY3J0Y19zdGF0ZS0+bGFuZV9jb3VudCk7Cj4gKwo+ICsJCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDEyKSB7Cj4gKwkJCWVudW0gdHJhbnNjb2RlciBtYXN0ZXIgPSBjcnRj X3N0YXRlLT5tc3RfbWFzdGVyX3RyYW5zOwo+ICsKPiArCQkJdGVtcCB8PSBUUkFOU19ERElfTVNU X1RSQU5TUE9SVF9TRUxFQ1RfRFBUUChtYXN0ZXIpOwo+ICsJCX0KPiAgCX0gZWxzZSB7Cj4gIAkJ dGVtcCB8PSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfU1NUOwo+ICAJCXRlbXAgfD0gRERJX1BP UlRfV0lEVEgoY3J0Y19zdGF0ZS0+bGFuZV9jb3VudCk7Cj4gQEAgLTM4NjEsNiArMzg2Nyw4IEBA IHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIAkJYnJlYWs7Cj4gIAl9Cj4gIAo+ICsJcGlwZV9jb25maWctPm1zdF9tYXN0ZXJfdHJhbnMg PSBUUkFOU0NPREVSX0lOVkFMSUQ7Cj4gKwo+ICAJc3dpdGNoICh0ZW1wICYgVFJBTlNfRERJX01P REVfU0VMRUNUX01BU0spIHsKPiAgCWNhc2UgVFJBTlNfRERJX01PREVfU0VMRUNUX0hETUk6Cj4g IAkJcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgPSB0cnVlOwo+IEBAIC0zODk2LDYgKzM5MDQs MTMgQEAgdm9pZCBpbnRlbF9kZGlfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRf RFBfTVNUKTsKPiAgCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9Cj4gIAkJCSgodGVtcCAmIERE SV9QT1JUX1dJRFRIX01BU0spID4+IERESV9QT1JUX1dJRFRIX1NISUZUKSArIDE7Cj4gKwo+ICsJ CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKSB7Cj4gKwkJCXRlbXAgPSB0ZW1wICYgVFJB TlNfRERJX01TVF9UUkFOU1BPUlRfU0VMRUNUX01BU0s7Cj4gKwkJCXRlbXAgPSB0ZW1wID4+IFRS QU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVF9TSElGVDsKPiArCQkJcGlwZV9jb25maWctPm1z dF9tYXN0ZXJfdHJhbnMgPSB0ZW1wOwo+ICsJCX0KPiArCj4gIAkJaW50ZWxfZHBfZ2V0X21fbihp bnRlbF9jcnRjLCBwaXBlX2NvbmZpZyk7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+IEBAIC0z OTk4LDYgKzQwMTMsOCBAQCBzdGF0aWMgaW50IGludGVsX2RkaV9jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIAlpbnRlbF9kZGlfY29tcHV0ZV9taW5f dm9sdGFnZV9sZXZlbChkZXZfcHJpdiwgcGlwZV9jb25maWcpOwo+ICAKPiArCXBpcGVfY29uZmln LT5tc3RfbWFzdGVyX3RyYW5zID0gVFJBTlNDT0RFUl9JTlZBTElEOwo+ICsKPiAgCXJldHVybiAw Owo+ICB9Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eS5jCj4gaW5kZXggZGRiODQzNmUyMjA4Li4xMDlkNGZkOTYxYzYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC00Nyw2ICs0Nyw3IEBA Cj4gICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2NydC5oIgo+ICAjaW5jbHVkZSAiZGlzcGxheS9p bnRlbF9kZGkuaCIKPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZHAuaCIKPiArI2luY2x1ZGUg ImRpc3BsYXkvaW50ZWxfZHBfbXN0LmgiCj4gICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2RzaS5o Igo+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kdm8uaCIKPiAgI2luY2x1ZGUgImRpc3BsYXkv aW50ZWxfZ21idXMuaCIKPiBAQCAtMTIxMzgsNiArMTIxMzksMTQgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZHVtcF9waXBlX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcsCj4gIAo+ICAJaW50ZWxfZHBsbF9kdW1wX2h3X3N0YXRlKGRldl9wcml2LCAmcGlwZV9j b25maWctPmRwbGxfaHdfc3RhdGUpOwo+ICAKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49 IDEyICYmCj4gKwkgICAgaW50ZWxfY3J0Y19oYXNfdHlwZShwaXBlX2NvbmZpZywgSU5URUxfT1VU UFVUX0RQX01TVCkpIHsKPiArCQllbnVtIHRyYW5zY29kZXIgbWFzdGVyID0gcGlwZV9jb25maWct Pm1zdF9tYXN0ZXJfdHJhbnM7Cj4gKwo+ICsJCURSTV9ERUJVR19LTVMoIm1hc3RlciBtc3QgY3B1 X3RyYW5zY29kZXI6ICVzXG4iLAo+ICsJCQkgICAgICB0cmFuc2NvZGVyX25hbWUobWFzdGVyKSk7 Cj4gKwl9Cj4gKwo+ICBkdW1wX3BsYW5lczoKPiAgCWlmICghc3RhdGUpCj4gIAkJcmV0dXJuOwo+ IEBAIC0xMjgyMSw2ICsxMjgzMCw4IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAo+ICAJUElQRV9DT05GX0NI RUNLX0lORk9GUkFNRShoZG1pKTsKPiAgCVBJUEVfQ09ORl9DSEVDS19JTkZPRlJBTUUoZHJtKTsK PiAgCj4gKwlQSVBFX0NPTkZfQ0hFQ0tfSShtc3RfbWFzdGVyX3RyYW5zKTsKPiArCj4gICN1bmRl ZiBQSVBFX0NPTkZfQ0hFQ0tfWAo+ICAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0kKPiAgI3VuZGVm IFBJUEVfQ09ORl9DSEVDS19CT09MCj4gQEAgLTEzNTk3LDYgKzEzNjA4LDEwIEBAIHN0YXRpYyBp bnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpbnQgcmV0 LCBpOwo+ICAJYm9vbCBhbnlfbXMgPSBzdGF0ZS0+Y2RjbGsuZm9yY2VfbWluX2NkY2xrX2NoYW5n ZWQ7Cj4gIAo+ICsJcmV0ID0gaW50ZWxfZHBfbXN0X2F0b21pY19hZGRfYWZmZWN0ZWRfY3J0Y3Mo c3RhdGUpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAgCS8qIENhdGNoIEk5 MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCAqLwo+ICAJZm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNf aW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAo+ICAJCQkJCSAgICBuZXdfY3J0 Y19zdGF0ZSwgaSkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5oCj4gaW5kZXggYjYzZmI3YTQ1OTllLi4yODJlOGQ4ZjFjYzEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuaAo+IEBAIC05MSw2ICs5MSw4 IEBAIGVudW0gcGlwZSB7Cj4gICNkZWZpbmUgcGlwZV9uYW1lKHApICgocCkgKyAnQScpCj4gIAo+ ICBlbnVtIHRyYW5zY29kZXIgewo+ICsJVFJBTlNDT0RFUl9JTlZBTElEID0gLTEsCj4gKwo+ICAJ LyoKPiAgCSAqIFRoZSBmb2xsb3dpbmcgdHJhbnNjb2RlcnMgaGF2ZSBhIDE6MSB0cmFuc2NvZGVy IC0+IHBpcGUgbWFwcGluZywKPiAgCSAqIGtlZXAgdGhlaXIgdmFsdWVzIGZpeGVkOiB0aGUgY29k ZSBhc3N1bWVzIHRoYXQgVFJBTlNDT0RFUl9BPTAsIHRoZQo+IEBAIC0xMzIsNiArMTM0LDcgQEAg c3RhdGljIGlubGluZSBjb25zdCBjaGFyICp0cmFuc2NvZGVyX25hbWUoZW51bSB0cmFuc2NvZGVy IHRyYW5zY29kZXIpCj4gIAkJcmV0dXJuICJEU0kgQSI7Cj4gIAljYXNlIFRSQU5TQ09ERVJfRFNJ X0M6Cj4gIAkJcmV0dXJuICJEU0kgQyI7Cj4gKwljYXNlIFRSQU5TQ09ERVJfSU5WQUxJRDoKPiAg CWRlZmF1bHQ6Cj4gIAkJcmV0dXJuICI8aW52YWxpZD4iOwo+ICAJfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gaW5kZXggM2Mx YTVmM2UxZDIyLi5iN2RhOTU1OTU0YjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAo+IEBAIC05ODQsNiArOTg0LDkgQEAg c3RydWN0IGludGVsX2NydGNfc3RhdGUgewo+ICAKPiAgCS8qIEZvcndhcmQgRXJyb3IgY29ycmVj dGlvbiBTdGF0ZSAqLwo+ICAJYm9vbCBmZWNfZW5hYmxlOwo+ICsKPiArCS8qIE1hc3RlciB0cmFu c2NvZGVyIGZvciBhbGwgc3RyZWFtcywgb25seSB1c2VkIG9uIFRHTCsgKi8KPiArCWVudW0gdHJh bnNjb2RlciBtc3RfbWFzdGVyX3RyYW5zOwo+ICB9Owo+ICAKPiAgc3RydWN0IGludGVsX2NydGMg ewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21z dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+IGluZGV4 IGY1MmNkZDRjYTg3Ny4uNjcwYTEyZmQyZjI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCj4gQEAgLTg3LDYgKzg3LDUwIEBAIHN0YXRpYyBpbnQg aW50ZWxfZHBfbXN0X2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiArLyoKPiArICogSXRlcmF0ZSBvdmVyIGFs bCB0aGUgQ1JUQ3MgYW5kIHJldHVybiB0aGUgdHJhbnNjb2RlciBvZiB0aGUgbG93ZXN0IENSVEMg dGhhdAo+ICsgKiBzaGFyZSB0aGUgc2FtZSBNU1QgY29ubmVjdG9yLgo+ICsgKi8KPiArc3RhdGlj IGVudW0gdHJhbnNjb2Rlcgo+ICttc3RfY29tcHV0ZV9tYXN0ZXJfdHJhbnMoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKm1zdF9jb25u KQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9tc3RfY29ubiA9IHRvX2lu dGVsX2Nvbm5lY3Rvcihtc3RfY29ubik7Cj4gKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpp bnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5kZXYpOwo+ICsJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NydGNfc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YzsKPiArCWludCBpOwo+ICsKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgMTIpCj4gKwkJcmV0dXJuIFRSQU5TQ09ERVJfSU5WQUxJRDsKPiArCj4gKwkvKiBJdGVyYXRl IGZyb20gdGhlIGxvd2VzdCB0byB0aGUgaGlnaGVzdCBwaXBlICovCj4gKwlmb3JfZWFjaF9uZXdf aW50ZWxfY3J0Y19pbl9zdGF0ZShpbnRlbF9zdGF0ZSwgaW50ZWxfY3J0YywgaW50ZWxfY3J0Y19z dGF0ZSwgaSkgewo+ICsJCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50 ZWxfY29ubl9zdGF0ZTsKPiArCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uOwo+ ICsJCWludCBqOwo+ICsKPiArCQlpZiAoIWludGVsX2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQo+ ICsJCQljb250aW51ZTsKPiArCj4gKwkJZm9yX2VhY2hfbmV3X2ludGVsX2Nvbm5lY3Rvcl9pbl9z dGF0ZShpbnRlbF9zdGF0ZSwgaW50ZWxfY29ubiwKPiArCQkJCQkJICAgICAgaW50ZWxfY29ubl9z dGF0ZSwgaikgewo+ICsJCQkvKiBPbmx5IGNhcmUgYWJvdXQgY29ubmVjdG9ycyBvZiB0aGlzIENS VEMgKi8KPiArCQkJaWYgKGludGVsX2Nvbm5fc3RhdGUtPmJhc2UuY3J0YyAhPQo+ICsJCQkgICAg aW50ZWxfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKQo+ICsJCQkJY29udGludWU7Cj4gKwo+ICsJCQlp ZiAoaW50ZWxfY29ubi0+bXN0X3BvcnQgIT0gaW50ZWxfbXN0X2Nvbm4tPm1zdF9wb3J0KQo+ICsJ CQkJY29udGludWU7Cj4gKwo+ICsJCQlyZXR1cm4gaW50ZWxfY3J0Y19zdGF0ZS0+Y3B1X3RyYW5z Y29kZXI7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXJldHVybiBUUkFOU0NPREVSX0lOVkFMSUQ7Cj4g K30KPiArCj4gIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSkKPiBAQCAtOTQsMTQgKzEzOCwxNSBAQCBzdGF0aWMgaW50IGludGVsX2Rw X21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOwo+ICAJc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRlbF9tc3QgPSBlbmNfdG9f bXN0KCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50 ZWxfbXN0LT5wcmltYXJ5LT5kcDsKPiAtCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciA9Cj4gLQkJdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Cj4gKwlz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOwo+ ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29u bmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3Rh dGUgKmludGVsX2Nvbm5fc3RhdGUgPQo+ICAJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0 YXRlKGNvbm5fc3RhdGUpOwo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPQo+ICAJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+IC0Jdm9p ZCAqcG9ydCA9IGNvbm5lY3Rvci0+cG9ydDsKPiArCXZvaWQgKnBvcnQgPSBpbnRlbF9jb25uZWN0 b3ItPnBvcnQ7Cj4gIAlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzIGxpbWl0czsKPiArCWVudW0g dHJhbnNjb2RlciBtYXN0ZXI7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCWlmIChhZGp1c3RlZF9tb2Rl LT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKPiBAQCAtMTQ2LDYgKzE5MSw1MSBAQCBz dGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiAgCj4gIAlpbnRlbF9kZGlfY29tcHV0ZV9taW5fdm9sdGFnZV9sZXZlbChk ZXZfcHJpdiwgcGlwZV9jb25maWcpOwo+ICAKPiArCW1hc3RlciA9IG1zdF9jb21wdXRlX21hc3Rl cl90cmFucyhjb25uX3N0YXRlLT5zdGF0ZSwgY29ubmVjdG9yKTsKPiArCXBpcGVfY29uZmlnLT5t c3RfbWFzdGVyX3RyYW5zID0gbWFzdGVyOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtz dGF0aWMgaW50Cj4gK2ludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfY2hlY2soc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm4sCj4gKwkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nv bm5fc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY29ubi0+ZGV2KTsKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG5l d19jb25uX3N0YXRlLT5zdGF0ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRf Y29ubl9zdGF0ZSA9Cj4gKwkJZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0 ZSwgY29ubik7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKm5ld19jcnRjID0gbmV3X2Nvbm5fc3RhdGUt PmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKm9sZF9jcnRjID0gb2xkX2Nvbm5fc3RhdGUtPmNy dGM7Cj4gKwllbnVtIHRyYW5zY29kZXIgb2xkX21hc3Rlcl90cmFucyA9IFRSQU5TQ09ERVJfSU5W QUxJRDsKPiArCWVudW0gdHJhbnNjb2RlciBuZXdfbWFzdGVyX3RyYW5zID0gVFJBTlNDT0RFUl9J TlZBTElEOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSwgKm9sZF9j cnRjX3N0YXRlOwo+ICsKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTIpCj4gKwkJcmV0 dXJuIDA7Cj4gKwo+ICsJaWYgKG9sZF9jcnRjKSB7Cj4gKwkJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmludGVsX2NydGNfc3RhdGU7Cj4gKwo+ICsJCW9sZF9jcnRjX3N0YXRlID0gZHJtX2F0b21p Y19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIG9sZF9jcnRjKTsKPiArCQlpbnRlbF9jcnRjX3N0 YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSk7Cj4gKwkJb2xkX21hc3Rl cl90cmFucyA9IGludGVsX2NydGNfc3RhdGUtPm1zdF9tYXN0ZXJfdHJhbnM7Cj4gKwl9Cj4gKwo+ ICsJaWYgKG5ld19jcnRjKSB7Cj4gKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2Ny dGNfc3RhdGU7Cj4gKwo+ICsJCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2Ny dGNfc3RhdGUoc3RhdGUsIG5ld19jcnRjKTsKPiArCQlpbnRlbF9jcnRjX3N0YXRlID0gdG9faW50 ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7Cj4gKwkJbmV3X21hc3Rlcl90cmFucyA9IG1z dF9jb21wdXRlX21hc3Rlcl90cmFucyhzdGF0ZSwgY29ubik7Cj4gKwl9Cj4gKwo+ICsJaWYgKG9s ZF9jcnRjICYmIG9sZF9tYXN0ZXJfdHJhbnMgIT0gbmV3X21hc3Rlcl90cmFucykKPiArCQlvbGRf Y3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiArCj4gKwlpZiAobmV3X2NydGMgJiYg b2xkX21hc3Rlcl90cmFucyAhPSBuZXdfbWFzdGVyX3RyYW5zKQo+ICsJCW5ld19jcnRjX3N0YXRl LT5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IEBAIC0x NjgsNiArMjU4LDEwIEBAIGludGVsX2RwX21zdF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gKwly ZXQgPSBpbnRlbF9kcF9tc3RfbWFzdGVyX3RyYW5zX2NoZWNrKGNvbm5lY3RvciwgbmV3X2Nvbm5f c3RhdGUpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAgCWlmICghb2xkX2Nv bm5fc3RhdGUtPmNydGMpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IEBAIC02NjYsMyArNzYwLDYyIEBA IGludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFudXAoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQpCj4gIAlkcm1fZHBfbXN0X3RvcG9sb2d5X21ncl9kZXN0cm95KCZpbnRl bF9kcC0+bXN0X21ncik7Cj4gIAkvKiBlbmNvZGVycyB3aWxsIGdldCBraWxsZWQgYnkgbm9ybWFs IGNsZWFudXAgKi8KPiAgfQo+ICsKPiArLyoqCj4gKyAqIGludGVsX2RwX21zdF9hdG9taWNfYWRk X2FmZmVjdGVkX2NydGNzIC0gQWRkIGFsbCBDUlRDcyB0aGF0IHNoYXJlIHRoZSBNU1QKPiArICog c3RyZWFtIHdpdGggdGhlIENSVENzIGluIHRoZSBjdXJyZW50IGF0b21pYyBzdGF0ZS4KPiArICog QHN0YXRlOiBzdGF0ZSB0byBhZGQgQ1JUQ3MKPiArICoKPiArICogSXQgaXMgbmVlZGVkIGFkZCB0 aGUgQ1JUQ3MgdHJpZ2dlciBhIGNhbGwgdG8gYXRvbWljX2NoZWNrKCkgdG8KPiArICogZXZlcnkg Y29ubmVjdG9yIGF0dGFjaGVkIHRvIHRoZSBDUlRDIGluIGNhc2UgYSBuZXcgbWFzdGVyIHRyYW5z Y29kZXIgd2lsbAo+ICsgKiBiZSBuZWVkZWQuCj4gKyAqLwo+ICtpbnQgaW50ZWxfZHBfbXN0X2F0 b21pY19hZGRfYWZmZWN0ZWRfY3J0Y3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3Rh dGUtPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAq aW50ZWxfY29ubl9zdGF0ZTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+YmFz ZS5kZXY7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uOwo+ICsJaW50IGk7 Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMikKPiArCQlyZXR1cm4gMDsKPiAr Cj4gKwlmb3JfZWFjaF9uZXdfaW50ZWxfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBpbnRlbF9j b25uLCBpbnRlbF9jb25uX3N0YXRlLCBpKSB7Cj4gKwkJc3RydWN0IGRybV9jb25uZWN0b3JfbGlz dF9pdGVyIGNvbm5fbGlzdF9pdGVyOwo+ICsJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uX2l0 ZXI7Cj4gKwo+ICsJCWlmICghaW50ZWxfY29ubi0+bXN0X3BvcnQpCj4gKwkJCWNvbnRpbnVlOwo+ ICsKPiArCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZjb25uX2xpc3RfaXRl cik7Cj4gKwkJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rvcl9pdGVyKGNvbm5faXRlciwgJmNvbm5fbGlz dF9pdGVyKSB7Cj4gKwkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX2l0ZXJfc3Rh dGU7Cj4gKwkJCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5faXRlcjsKPiArCQkJ c3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICsKPiArCQkJaW50ZWxfY29ubl9p dGVyID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5faXRlcik7Cj4gKwo+ICsJCQlpZiAoaW50ZWxf Y29ubl9pdGVyLT5tc3RfcG9ydCAhPSBpbnRlbF9jb25uLT5tc3RfcG9ydCkKPiArCQkJCWNvbnRp bnVlOwo+ICsKPiArCQkJY29ubl9pdGVyX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVjdG9y X3N0YXRlKCZzdGF0ZS0+YmFzZSwgY29ubl9pdGVyKTsKPiArCQkJaWYgKElTX0VSUihjb25uX2l0 ZXJfc3RhdGUpKSB7Cj4gKwkJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5fbGlz dF9pdGVyKTsKPiArCQkJCXJldHVybiBQVFJfRVJSKGNvbm5faXRlcl9zdGF0ZSk7Cj4gKwkJCX0K PiArCQkJaWYgKCFjb25uX2l0ZXJfc3RhdGUtPmNydGMpCj4gKwkJCQljb250aW51ZTsKPiArCj4g KwkJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKCZzdGF0ZS0+YmFzZSwK PiArCQkJCQkJCSAgICAgICBjb25uX2l0ZXJfc3RhdGUtPmNydGMpOwo+ICsJCQlpZiAoSVNfRVJS KGNydGNfc3RhdGUpKSB7Cj4gKwkJCQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5f bGlzdF9pdGVyKTsKPiArCQkJCXJldHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOwo+ICsJCQl9Cj4g KwkJfQo+ICsJCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9saXN0X2l0ZXIpOwo+ ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9CgpMb29rcyBzYW5lLgoKUmV2aWV3ZWQtYnk6IE1h YXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuaAo+IGluZGV4IGY2NjBh ZDgwZGIwNC4uMTczNTk4YWE4MWQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RwX21zdC5oCj4gQEAgLTYsMTAgKzYsMTIgQEAKPiAgI2lmbmRlZiBfX0lOVEVM X0RQX01TVF9IX18KPiAgI2RlZmluZSBfX0lOVEVMX0RQX01TVF9IX18KPiAgCj4gK3N0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGU7Cj4gIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQ7Cj4gIAo+ICBp bnQgaW50ZWxfZHBfbXN0X2VuY29kZXJfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCwgaW50IGNvbm5faWQpOwo+ICB2b2lkIGludGVsX2RwX21zdF9lbmNvZGVy X2NsZWFudXAoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOwo+ICtp bnQgaW50ZWxfZHBfbXN0X2F0b21pY19hZGRfYWZmZWN0ZWRfY3J0Y3Moc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpOwo+ICBpbnQgaW50ZWxfZHBfbXN0X2VuY29kZXJfYWN0aXZlX2xp bmtzKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KTsKPiAgCj4gICNl bmRpZiAvKiBfX0lOVEVMX0RQX01TVF9IX18gKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBp bmRleCAwNDVkNDIxZTlhN2EuLmE1NWYxNWViNjE3NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAo+IEBAIC05NDE5LDYgKzk0MTksOSBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPiAgI2Rl ZmluZSAgVFJBTlNfRERJX0VEUF9JTlBVVF9BX09OT0ZGCSg0IDw8IDEyKQo+ICAjZGVmaW5lICBU UkFOU19ERElfRURQX0lOUFVUX0JfT05PRkYJKDUgPDwgMTIpCj4gICNkZWZpbmUgIFRSQU5TX0RE SV9FRFBfSU5QVVRfQ19PTk9GRgkoNiA8PCAxMikKPiArI2RlZmluZSAgVFJBTlNfRERJX01TVF9U UkFOU1BPUlRfU0VMRUNUX1NISUZUCQkxMCAvKiBUR0wrICovCj4gKyNkZWZpbmUgIFRSQU5TX0RE SV9NU1RfVFJBTlNQT1JUX1NFTEVDVF9NQVNLCQkoMHgzIDw8IDEwKQo+ICsjZGVmaW5lICBUUkFO U19ERElfTVNUX1RSQU5TUE9SVF9TRUxFQ1RfRFBUUCh0cmFucykJKCh0cmFucykgPDwgMTApCj4g ICNkZWZpbmUgIFRSQU5TX0RESV9IRENQX1NJR05BTExJTkcJKDEgPDwgOSkKPiAgI2RlZmluZSAg VFJBTlNfRERJX0RQX1ZDX1BBWUxPQURfQUxMT0MJKDEgPDwgOCkKPiAgI2RlZmluZSAgVFJBTlNf RERJX0hETUlfU0NSQU1CTEVSX0NUU19FTkFCTEUgKDEgPDwgNykKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=