From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 3/7] drm/i915/tgl: Select master trasconder for MST stream Date: Thu, 28 Nov 2019 14:06:49 +0200 Message-ID: <20191128120649.GS1208@intel.com> References: <20191123005459.155383-1-jose.souza@intel.com> <20191123005459.155383-3-jose.souza@intel.com> <20191126200553.GG1208@intel.com> <20191127195939.GO1208@intel.com> <72b17babbf755de61f3f6a1170c6fcd7fa646786.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E05B6E7E5 for ; Thu, 28 Nov 2019 12:06:58 +0000 (UTC) Content-Disposition: inline In-Reply-To: <72b17babbf755de61f3f6a1170c6fcd7fa646786.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" , "De Marchi, Lucas" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMjgsIDIwMTkgYXQgMDE6MTQ6MzdBTSArMDAwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gV2VkLCAyMDE5LTExLTI3IGF0IDIxOjU5ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6Cj4gPiBPbiBUdWUsIE5vdiAyNiwgMjAxOSBhdCAwODozMDozMVBNICswMDAwLCBTb3V6 YSwgSm9zZSB3cm90ZToKPiA+ID4gT24gVHVlLCAyMDE5LTExLTI2IGF0IDIyOjA1ICswMjAwLCBW aWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gRnJpLCBOb3YgMjIsIDIwMTkgYXQgMDQ6 NTQ6NTVQTSAtMDgwMCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YQo+ID4gPiA+IHdyb3RlOgo+ID4g PiA+ID4gT24gVEdMIHRoZSBibGVuZGluZyBvZiBhbGwgdGhlIHN0cmVhbXMgaGF2ZSBtb3ZlZCBm cm9tIERESSB0bwo+ID4gPiA+ID4gdHJhbnNjb2Rlciwgc28gbm93IGV2ZXJ5IHRyYW5zY29kZXIg d29ya2luZyBvdmVyIHRoZSBzYW1lIE1TVAo+ID4gPiA+ID4gcG9ydAo+ID4gPiA+ID4gbXVzdAo+ ID4gPiA+ID4gc2VuZCBpdHMgc3RyZWFtIHRvIGEgbWFzdGVyIHRyYW5zY29kZXIgYW5kIG1hc3Rl ciB3aWxsIHNlbmQgdG8KPiA+ID4gPiA+IERESQo+ID4gPiA+ID4gcmVzcGVjdGluZyB0aGUgdGlt ZSBzbG90cy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gQSBwcmV2aW91cyBhcHByb2FjaCB3YXMgdXNp bmcgdGhlIGxvd2VzdCBwaXBlL3RyYW5zY29kZXIgYXMKPiA+ID4gPiA+IG1hc3Rlcgo+ID4gPiA+ ID4gdHJhbnNjb2RlciBidXQgYXMgdGhlIGNvbW1lbnQgaW4gc2tsX2NvbW1pdF9tb2Rlc2V0X2Vu YWJsZXMoKQo+ID4gPiA+ID4gc3RhdGVzLAo+ID4gPiA+ID4gdGhhdCBpcyBub3QgYWx3YXlzIHRy dWUuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFNvIGhlcmUgcHJvbW90aW5nIHRoZSBmaXJzdCBwaXBl L3RyYW5zY29kZXIgb2YgdGhlIHN0cmVhbSBhcwo+ID4gPiA+ID4gbWFzdGVyLgo+ID4gPiA+ID4g VGhhdCBjYXVzZWQgc2V2ZXJhbCBvdGhlciBwcm9ibGVtcyBhcyBkdXJpbmcgdGhlIGNvbW1pdCBw aGFzZQo+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiBzdGF0ZSBjb21wdXRlZCBzaG91bGQgbm90IGJl IGNoYW5nZWQuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFNvIHRoZSBtYXN0ZXIgdHJhbnNjb2RlciBp cyBzdG9yZSBpbnRvIGludGVsX2RwIGFuZCB0aGUgbW9kZXNldAo+ID4gPiA+ID4gaW4KPiA+ID4g PiA+IHNsYXZlIHBpcGVzL3RyYW5zY29kZXJzIGlzIGZvcmNlZCB1c2luZwo+ID4gPiA+ID4gbXN0 X21hc3Rlcl90cmFuc19wZW5kaW5nLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiB2MjoKPiA+ID4gPiA+ IC0gYWRkZWQgbWlzc2luZyBjb25maWcgY29tcHV0ZSB0byB0cmlnZ2VyIGZ1bGxtb2Rlc2V0IGlu IHNsYXZlCj4gPiA+ID4gPiB0cmFuc2NvZGVycwo+ID4gPiA+ID4gCj4gPiA+ID4gPiBCU3BlYzog NTA0OTMKPiA+ID4gPiA+IEJTcGVjOiA0OTE5MAo+ID4gPiA+ID4gQ2M6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gPiBDYzogTHVjYXMgRGUg TWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiA+ID4gPiA+ IC0tLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMg ICAgICB8ICAxMCArLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheS5jICB8ICA1OCArKysrKystCj4gPiA+ID4gPiAgLi4uL2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgICAzICsKPiA+ID4gPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAgICAgfCAgIDEgKwo+ID4gPiA+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgICB8IDE0OQo+ID4gPiA+ ID4gKysrKysrKysrKysrKysrKystCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcF9tc3QuaCAgIHwgICAyICsKPiA+ID4gPiA+ICA2IGZpbGVzIGNoYW5nZWQs IDIxNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ID4g PiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gPiA+ID4g PiBpbmRleCBhOTc2NjA2ZDIxYzcuLmQyZjBkMzkzZDNlZSAxMDA2NDQKPiA+ID4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiA+ID4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiA+ID4gPiA+IEBAIC0z NSw2ICszNSw3IEBACj4gPiA+ID4gPiAgI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIK PiA+ID4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZHAuaCIKPiA+ID4gPiA+ICAjaW5jbHVkZSAiaW50 ZWxfZHBfbGlua190cmFpbmluZy5oIgo+ID4gPiA+ID4gKyNpbmNsdWRlICJpbnRlbF9kcF9tc3Qu aCIKPiA+ID4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZHBpb19waHkuaCIKPiA+ID4gPiA+ICAjaW5j bHVkZSAiaW50ZWxfZHNpLmgiCj4gPiA+ID4gPiAgI2luY2x1ZGUgImludGVsX2ZpZm9fdW5kZXJy dW4uaCIKPiA+ID4gPiA+IEBAIC0xOTAzLDggKzE5MDQsMTMgQEAKPiA+ID4gPiA+IGludGVsX2Rk aV90cmFuc2NvZGVyX2Z1bmNfcmVnX3ZhbF9nZXQoY29uc3QKPiA+ID4gPiA+IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiA+ID4gIAkJdGVtcCB8PSBUUkFOU19ERElf TU9ERV9TRUxFQ1RfRFBfTVNUOwo+ID4gPiA+ID4gIAkJdGVtcCB8PSBERElfUE9SVF9XSURUSChj cnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+IC0JCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDEyKQo+ID4gPiA+ID4gLQkJCXRlbXAgfD0KPiA+ID4gPiA+IFRS QU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVChjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rlcik7 Cj4gPiA+ID4gPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgewo+ID4gPiA+ID4g KwkJCWVudW0gdHJhbnNjb2RlciBtYXN0ZXI7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCQkJbWFz dGVyID0KPiA+ID4gPiA+IGludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfZ2V0KGVuY29kZXIpOwo+ ID4gPiA+IAo+ID4gPiA+IFdoeSBpc24ndCB0aGF0IGp1c3Qgc3RvcmVkIGluIHRoZSBjcnRjIHN0 YXRlIGxpa2UgZXZlcnl0aGluZwo+ID4gPiA+IGVsc2U/Cj4gPiA+ID4gCj4gPiA+ID4gSSdtIHRo aW5raW5nIHdlIHNob3VsZCBtYXliZSBkbyBpdCBqdXN0IGxpa2UgcG9ydCBzeW5jIGFuZCBoYXZl Cj4gPiA+ID4gYm90aAo+ID4gPiA+IG1hc3RlciArIHNsYXZlX21hc2suIFRoYXQgd2F5IGl0IHNo b3VsZCBiZSBwcmV0dHkgdHJpdmlhbCB0byBhZGQKPiA+ID4gPiBhbGwKPiA+ID4gPiB0aGUgcmVs ZXZhbnQgY3J0Y3MgdG8gdGhlIHN0YXRlIHdoZW4gbmVlZGVkLgo+ID4gPiAKPiA+ID4gSSBndWVz cyBwb3J0IHN5bmMgaXMgbm90IGRvaW5nIHRoZSByaWdodCB0aGluZyBhbmQgaXQgY291bGQgY2F1 c2UKPiA+ID4gdW5kZXJydW5zLgo+ID4gPiBXaGVuIGl0IGlzIGdvaW5nIHRvIGVuYWJsZSB0aGUg bWFzdGVyIENSVEMgb2YgdGhlIHBvcnQgc3luYyBpdAo+ID4gPiBmb3JjaWJseQo+ID4gPiBlbmFi bGVzIHRoZSBzbGF2ZSBmaXJzdCwgd2hhdCBjb3VsZCBjYXVzZSB1bmRlcnJ1bnMgYmVjYXVzZSBv Zgo+ID4gPiBvdmVybGFwCj4gPiA+IGluIGRkYiBhbGxvY2F0aW9ucyh0aGF0IGlzIHdoYXQgSSB1 bmRlcnN0b29kIGZyb20gdGhlIGNvbW1lbnQgaW4KPiA+ID4gc2tsX2NvbW1pdF9tb2Rlc2V0X2Vu YWJsZXMoKSkuCj4gPiAKPiA+IE5vdCBuZWNlc3NhcmlseSBqdXN0IHVuZGVycnVucyBidXQgZXZl biBhIHN5c3RlbSBoYW5nLiBUaGUgZml4IHNob3VsZAo+ID4gYmUKPiA+IGEgdHJpdmlhbCAiY2hl Y2sgdGhlIHNsYXZlIGZvciBkZGIgb3ZlcmxhcCBhcyB3ZWxsIiwgYnV0IGFwcGFyZW50bHkgSQo+ ID4gZmFpbGVkIGF0IGNvbnZpY2luZyBwZW9wbGUgdG8gZG8gdGhhdC4KPiA+IAo+ID4gSSd2ZSBh Y3R1YWxseSBiZWVuIHBvbmRlcmluZyBhYm91dCBkZWNvdXBsaW5nIHRoZSBwbGFuZSB1cGRhdGVz IGZyb20KPiA+IHRoZSBjcnRjIGVuYWJsZSBzdHVmZiBlbnRpcmVseS4gQXQgbGVhc3QgdGhlb3Jl dGljYWxseSBjcnRjIGVuYWJsZQo+ID4gc2hvdWxkIGJlIGFibGUgdG8gZXhjdXRlIGluIGFueSBv cmRlciBhcyBsb25nIHdlIGRvbid0IGVuYWJsZSBhbnkKPiA+IG5ldyBwbGFuZXMuCj4gPiAKPiA+ IEJ1dCBub25lIG9mIHRoYXQgcmVhbGx5IG1hdHRlcnMgZm9yIHRoZSBkaXNjdXNzaW9uIGF0IGhh bmQuIFRob3VnaAo+ID4gdGhlcmUgYXJlIG90aGVyIHByb2JsZW1zIHdpdGggdGhlIHBvcnQgc3lu YyBzdHVmZiB0aGF0IHdvdWxkIG5lZWQKPiA+IHRvIGJlIGhhbmRsZWQgYmV0dGVyLiBFZy4gSSB0 aGluayBpdCBub3cgYWRkcyBib3RoIGNydGNzIHRvIHRoZSBzdGF0ZQo+ID4gYWx3YXlzIHdoaWNo IGlzIGdvaW5nIHRvIGN1dCB0aGUgZnBzIGluIGhhbGYuIEFsc28gdGhlIHBsYWNlIHdoZXJlCj4g PiBpdCBkb2VzIHRoYXQgc3R1ZmYgaXMgcmF0aGVyIHN1c3BpY2lvdXMuIEFsbCB0aGF0IHN0dWZm IHNob3VsZCBiZQo+ID4gc29tZXdoZXJlIGEgYml0IGhpZ2hlciB1cCBJTU8uCj4gPiAKPiA+ID4g U28gZm9yIE1TVCB3ZSBvbmx5IGtub3cgd2hvIGlzIHRoZSBtYXN0ZXIgaW4gdGhlIGNvbW1pdCBw aGFzZSBhbmQKPiA+ID4gYXQKPiA+ID4gdGhpcyBwb2ludCB3ZSBzaG91bGQgbm90IG1vZGlmeSB0 aGUgY29tcHV0ZWQgc3RhdGUuCj4gPiAKPiA+IEknbSBub3Qgc3VnZ2VzdGluZyBtb2RpZnlpbmcg YW55dGhpbmcgZHVyaW5nIGNvbW1pdCBwaGFzZS4gSSB0aGluawo+ID4geW91IGFyZSBlZmZlY3Rp ZWx5IGRvaW5nIHRoYXQgcmlnaHQgbm93IGJ5IHN0dWZmaW5nIHRoYXQgbXN0IG1hc3Rlcgo+ID4g dHJhbnNjb2RlciBpbnRvIGludGVsX2RwLgo+IAo+IFNvcnJ5LCBJIHN0aWxsIGRvbid0IGdldCB3 aGF0IGFwcHJvYWNoIGFyZSB5b3Ugc3VnZ2VzdGluZyBoZXJlLgo+IAo+IElmIHdlIGNhbid0IG1v ZGlmeSB0aGUgc3RhdGUgaW4gdGhlIGNvbW1pdCBwaGFzZSwgYWRkaW5nCj4gbXN0X21hc3Rlcl90 cmFuc2NvZGVyIGluIHRoZSBDUlRDIHN0YXRlIHdpbGwgbm90IGJlIHBvc3NpYmxlIHdoaWxlCj4g cmVzcGVjdGluZyB0aGUgb3JkZXIgaW1wb3NlZCBieSBkZGIgYWxsb2NhdGlvbnMuCgpUaGUgZGRi IGFsbG9jYXRpb24gb3JkZXJpbmcgb25seSBjb21lcyBpbnRvIHBsYXkgd2hlbiB0aGVyZSBhcmUK YWxyZWFkeSBhY3RpdmUgcGlwZXMuIEl0IHNob3VsZCBhbHdheXMgYmUgcG9zc2libGUgdG8gbm90 IGVuYWJsZQp0aGUgc2xhdmVzIHVudGlsIHRoZSBtYXN0ZXIgaGFzIGJlZW4gc2h1ZmZsZWQgaW50 byBwbGFjZSBpbiB0aGUgCmRkYiBhbmQgZW5hYmxlZC4KCj4gCj4gPiAKPiA+ID4gPiA+ICsJCQlX QVJOX09OKG1hc3RlciA9PSBJTlZBTElEX1RSQU5TQ09ERVIpOwo+ID4gPiA+ID4gKwkJCXRlbXAg fD0KPiA+ID4gPiA+IFRSQU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVChtYXN0ZXIpOwo+ID4g PiA+ID4gKwkJfQo+ID4gPiA+ID4gIAl9IGVsc2Ugewo+ID4gPiA+ID4gIAkJdGVtcCB8PSBUUkFO U19ERElfTU9ERV9TRUxFQ1RfRFBfU1NUOwo+ID4gPiA+ID4gIAkJdGVtcCB8PSBERElfUE9SVF9X SURUSChjcnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gaW5kZXgg ODAxYjk3NWM3ZDM5Li4zNWE1OTEwODE5NGUgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiA+IEBAIC00 Niw2ICs0Niw3IEBACj4gPiA+ID4gPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfY3J0LmgiCj4g PiA+ID4gPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZGRpLmgiCj4gPiA+ID4gPiAgI2luY2x1 ZGUgImRpc3BsYXkvaW50ZWxfZHAuaCIKPiA+ID4gPiA+ICsjaW5jbHVkZSAiZGlzcGxheS9pbnRl bF9kcF9tc3QuaCIKPiA+ID4gPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kc2kuaCIKPiA+ ID4gPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kdm8uaCIKPiA+ID4gPiA+ICAjaW5jbHVk ZSAiZGlzcGxheS9pbnRlbF9nbWJ1cy5oIgo+ID4gPiA+ID4gQEAgLTUzNjUsNiArNTM2NiwzNiBA QCBpbnRlbF9nZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3QKPiA+ID4gPiA+IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gPiA+ID4gPiAgCXJldHVybiBlbmNvZGVyOwo+ID4gPiA+ ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqIEZpbmRzIHRoZSBl bmNvZGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gQ1JUQy4gVGhpcyBjYW4KPiA+ID4gPiA+ IG9ubHkKPiA+ID4gPiA+IGJlCj4gPiA+ID4gPiArICogdXNlZCB3aGVuIHdlIGtub3cgdGhhdCB0 aGUgQ1JUQyBpc24ndCBmZWVkaW5nIG11bHRpcGxlCj4gPiA+ID4gPiBlbmNvZGVycyEKPiA+ID4g PiA+ICsgKi8KPiA+ID4gPiA+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKgo+ID4gPiA+ ID4gK2ludGVsX2dldF9jcnRjX29sZF9lbmNvZGVyKGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUKPiA+ID4gPiA+ICpzdGF0ZSwKPiA+ID4gPiA+ICsJCQkgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZQo+ID4gPiA+ID4gKmNydGNfc3RhdGUpCj4gPiA+ID4gPiArewo+ID4gPiA+ ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0K PiA+ID4gPiA+ID51YXBpLmNydGMpOwo+ID4gPiA+ID4gKwljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ID4gPiA+ID4gKwljb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciA9IE5VTEw7Cj4gPiA+ID4gPiArCWludCBudW1fZW5jb2RlcnMgPSAwOwo+ID4gPiA+ ID4gKwlpbnQgaTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJZm9yX2VhY2hfb2xkX2Nvbm5lY3Rv cl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsCj4gPiA+ID4gPiBjb25uZWN0b3IsCj4gPiA+ID4gPiAr CQkJCQljb25uZWN0b3Jfc3RhdGUsIGkpIHsKPiA+ID4gPiA+ICsJCWlmIChjb25uZWN0b3Jfc3Rh dGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCj4gPiA+ID4gPiArCQkJY29udGludWU7Cj4gPiA+ID4g PiArCj4gPiA+ID4gPiArCQllbmNvZGVyID0gdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0b3Jfc3Rh dGUtCj4gPiA+ID4gPiA+IGJlc3RfZW5jb2Rlcik7Cj4gPiA+ID4gPiArCQludW1fZW5jb2RlcnMr KzsKPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlXQVJOKG51bV9lbmNvZGVy cyAhPSAxLCAiJWQgZW5jb2RlcnMgZm9yIHBpcGUgJWNcbiIsCj4gPiA+ID4gPiArCSAgICAgbnVt X2VuY29kZXJzLCBwaXBlX25hbWUoY3J0Yy0+cGlwZSkpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4g KwlyZXR1cm4gZW5jb2RlcjsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gCj4gPiA+ID4gQXJnaC4gSSB3 YXMgaG9waW5nIHRvIGtpbGwgdGhlIG90aGVyIG9uZSBvZiB0aGVzZS4gR290IGl0IGRvd24gdG8K PiA+ID4gPiAxCj4gPiA+ID4gcmVtYWluaW5nIHVzZXIgbm93IEkgdGhpbmsuCj4gPiA+ID4gCj4g PiA+ID4gPiArCj4gPiA+ID4gPiAgLyoKPiA+ID4gPiA+ICAgKiBFbmFibGUgUENIIHJlc291cmNl cyByZXF1aXJlZCBmb3IgUENIIHBvcnRzOgo+ID4gPiA+ID4gICAqICAgLSBQQ0ggUExMcwo+ID4g PiA+ID4gQEAgLTEzMzY1LDYgKzEzMzk2LDEyIEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUo Y29uc3Qgc3RydWN0Cj4gPiA+ID4gPiBpbnRlbF9jcnRjX3N0YXRlICpjdXJyZW50X2NvbmZpZywK PiA+ID4gPiA+ICAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0NPTE9SX0xVVAo+ID4gPiA+ID4gICN1 bmRlZiBQSVBFX0NPTkZfUVVJUksKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICsJaWYgKGZhc3RzZXQg JiYgcGlwZV9jb25maWctPm1zdF9tYXN0ZXJfdHJhbnNfcGVuZGluZykgewo+ID4gPiA+ID4gKwkJ RFJNX0RFQlVHX0tNUygiW0NSVEM6JWQ6JXNdIGZhc3RzZXQgbWlzbWF0Y2ggaW4KPiA+ID4gPiA+ IG1zdF9tYXN0ZXJfdHJhbnNcbiIsCj4gPiA+ID4gPiArCQkJICAgICAgY3J0Yy0+YmFzZS5iYXNl LmlkLCBjcnRjLQo+ID4gPiA+ID4gPmJhc2UubmFtZSk7Cj4gPiA+ID4gPiArCQlyZXQgPSBmYWxz ZTsKPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIAlyZXR1cm4gcmV0Owo+ID4g PiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+IEBAIC0xNDQ0OSwyMiArMTQ0ODYsMzUgQEAg c3RhdGljIHZvaWQKPiA+ID4gPiA+IGludGVsX2NvbW1pdF9tb2Rlc2V0X2Rpc2FibGVzKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YzsKPiA+ID4gPiA+ICAJaW50IGk7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAtCS8qIE9u bHkgZGlzYWJsZSBwb3J0IHN5bmMgc2xhdmVzICovCj4gPiA+ID4gPiArCS8qIE9ubHkgZGlzYWJs ZSBwb3J0IHN5bmMgYW5kIE1TVCBzbGF2ZXMgKi8KPiA+ID4gPiA+ICAJZm9yX2VhY2hfb2xkbmV3 X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsCj4gPiA+ID4gPiBvbGRfY3J0Y19zdGF0 ZSwKPiA+ID4gPiA+ICAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkKPiA+ID4gPiA+IHsKPiA+ ID4gPiA+ICAJCWlmICghbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkgfHwgIWNydGMtCj4g PiA+ID4gPiA+YWN0aXZlKQo+ID4gPiA+ID4gIAkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gIAo+ID4g PiA+ID4gKwkJaWYgKCFpc190cmFuc19wb3J0X3N5bmNfbW9kZShuZXdfY3J0Y19zdGF0ZSkgJiYK PiA+ID4gPiA+ICsJCSAgICAhaW50ZWxfY3J0Y19oYXNfdHlwZShvbGRfY3J0Y19zdGF0ZSwKPiA+ ID4gPiA+IElOVEVMX09VVFBVVF9EUF9NU1QpKQo+ID4gPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4g PiA+ID4gKwo+ID4gPiA+ID4gIAkJLyogSW4gY2FzZSBvZiBUcmFuc2NvZGVyIHBvcnQgU3luYyBt YXN0ZXIgc2xhdmUKPiA+ID4gPiA+IENSVENzCj4gPiA+ID4gPiBjYW4gYmUKPiA+ID4gPiA+ICAJ CSAqIGFzc2lnbmVkIGluIGFueSBvcmRlciBhbmQgd2UgbmVlZCB0byBtYWtlCj4gPiA+ID4gPiBz dXJlIHRoYXQKPiA+ID4gPiA+ICAJCSAqIHNsYXZlIENSVENzIGFyZSBkaXNhYmxlZCBmaXJzdCBh bmQgdGhlbgo+ID4gPiA+ID4gbWFzdGVyIENSVEMKPiA+ID4gPiA+IHNpbmNlCj4gPiA+ID4gPiAg CQkgKiBTbGF2ZSB2YmxhbmtzIGFyZSBtYXNrZWQgdGlsbCBNYXN0ZXIKPiA+ID4gPiA+IFZibGFu a3MuCj4gPiA+ID4gPiAgCQkgKi8KPiA+ID4gPiA+IC0JCWlmICghaXNfdHJhbnNfcG9ydF9zeW5j X21vZGUob2xkX2NydGNfc3RhdGUpKQo+ID4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+ID4gPiA+ID4g LQkJaWYgKGlzX3RyYW5zX3BvcnRfc3luY19tYXN0ZXIob2xkX2NydGNfc3RhdGUpKQo+ID4gPiA+ ID4gKwkJaWYgKGlzX3RyYW5zX3BvcnRfc3luY19tb2RlKG5ld19jcnRjX3N0YXRlKSAmJgo+ID4g PiA+ID4gKwkJICAgIGlzX3RyYW5zX3BvcnRfc3luY19tYXN0ZXIobmV3X2NydGNfc3RhdGUpKQo+ ID4gPiA+ID4gIAkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwkJaWYgKGludGVs X2NydGNfaGFzX3R5cGUob2xkX2NydGNfc3RhdGUsCj4gPiA+ID4gPiBJTlRFTF9PVVRQVVRfRFBf TVNUKSkgewo+ID4gPiA+ID4gKwkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ID4g PiA+ID4gKwo+ID4gPiA+ID4gKwkJCWVuY29kZXIgPQo+ID4gPiA+ID4gaW50ZWxfZ2V0X2NydGNf b2xkX2VuY29kZXIoc3RhdGUsCj4gPiA+ID4gPiArCQkJCQkJCSAgICAgb2wKPiA+ID4gPiA+IGRf Y3J0Y19zCj4gPiA+ID4gPiB0YXRlKTsKPiA+ID4gPiA+ICsJCQlpZgo+ID4gPiA+ID4gKGludGVs X2RwX21zdF9tYXN0ZXJfdHJhbnNfZ2V0KGVuY29kZXIpID09Cj4gPiA+ID4gPiArCQkJICAgIG9s ZF9jcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcikKPiA+ID4gPiA+ICsJCQkJY29udGludWU7Cj4g PiA+ID4gPiArCQl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCQlpbnRlbF9wcmVfcGxhbmVfdXBk YXRlKG9sZF9jcnRjX3N0YXRlLAo+ID4gPiA+ID4gbmV3X2NydGNfc3RhdGUpOwo+ID4gPiA+ID4g IAkJaW50ZWxfb2xkX2NydGNfc3RhdGVfZGlzYWJsZXMoc3RhdGUsCj4gPiA+ID4gPiBvbGRfY3J0 Y19zdGF0ZSwKPiA+ID4gPiA+ICAJCQkJCSAgICAgIG5ld19jcnRjX3N0YXRlLAo+ID4gPiA+ID4g Y3J0Yyk7Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gPiA+IGluZGV4IDgzZWEwNDE0OWI3 Ny4uMjNkNzQ3Y2RjYTY0IDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gPiA+ID4gPiBAQCAt MTA1Miw2ICsxMDUyLDggQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewo+ID4gPiA+ID4gIAkv KiBQb2ludGVyIHRvIG1hc3RlciB0cmFuc2NvZGVyIGluIGNhc2Ugb2YgdGlsZWQKPiA+ID4gPiA+ IGRpc3BsYXlzICovCj4gPiA+ID4gPiAgCWVudW0gdHJhbnNjb2RlciBtYXN0ZXJfdHJhbnNjb2Rl cjsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICsJYm9vbCBtc3RfbWFzdGVyX3RyYW5zX3BlbmRpbmc7 Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCS8qIEJpdG1hc2sgdG8gaW5kaWNhdGUgc2xhdmVzIGF0 dGFjaGVkICovCj4gPiA+ID4gPiAgCXU4IHN5bmNfbW9kZV9zbGF2ZXNfbWFzazsKPiA+ID4gPiA+ ICB9Owo+ID4gPiA+ID4gQEAgLTEyODQsNiArMTI4Niw3IEBAIHN0cnVjdCBpbnRlbF9kcCB7Cj4g PiA+ID4gPiAgCWJvb2wgY2FuX21zdDsgLyogdGhpcyBwb3J0IHN1cHBvcnRzIG1zdCAqLwo+ID4g PiA+ID4gIAlib29sIGlzX21zdDsKPiA+ID4gPiA+ICAJaW50IGFjdGl2ZV9tc3RfbGlua3M7Cj4g PiA+ID4gPiArCWVudW0gdHJhbnNjb2RlciBtc3RfbWFzdGVyX3RyYW5zY29kZXI7IC8qIE9ubHkg dXNlZCBpbgo+ID4gPiA+ID4gVEdMKyAqLwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAkvKgo+ID4g PiA+ID4gIAkgKiBEUF9UUF8qIHJlZ2lzdGVycyBtYXkgYmUgZWl0aGVyIG9uIHBvcnQgb3IKPiA+ ID4gPiA+IHRyYW5zY29kZXIKPiA+ID4gPiA+IHJlZ2lzdGVyIHNwYWNlLgo+ID4gPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+ID4gPiA+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+ID4gPiA+IGlu ZGV4IDMxMjM5NThlMjA4MS4uY2VmZjY5MDE0NTFhIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4gPiA+ID4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+ID4gPiA+IEBAIC03NDI0LDYg Kzc0MjQsNyBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QKPiA+ID4gPiA+IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gPiA+ID4gPiAgCWludGVsX2RwLT5yZXNl dF9saW5rX3BhcmFtcyA9IHRydWU7Cj4gPiA+ID4gPiAgCWludGVsX2RwLT5wcHNfcGlwZSA9IElO VkFMSURfUElQRTsKPiA+ID4gPiA+ICAJaW50ZWxfZHAtPmFjdGl2ZV9waXBlID0gSU5WQUxJRF9Q SVBFOwo+ID4gPiA+ID4gKwlpbnRlbF9kcC0+bXN0X21hc3Rlcl90cmFuc2NvZGVyID0gSU5WQUxJ RF9UUkFOU0NPREVSOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAkvKiBQcmVzZXJ2ZSB0aGUgY3Vy cmVudCBodyBzdGF0ZS4gKi8KPiA+ID4gPiA+ICAJaW50ZWxfZHAtPkRQID0gSTkxNV9SRUFEKGlu dGVsX2RwLT5vdXRwdXRfcmVnKTsKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCj4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiA+ID4gPiA+IGluZGV4IGY4YTM1MDM1OTM0 Ni4uOTczMWMzYzFkM2YyIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+ID4gPiA+ID4gQEAgLTg3LDYgKzg3LDQ3IEBA IHN0YXRpYyBpbnQKPiA+ID4gPiA+IGludGVsX2RwX21zdF9jb21wdXRlX2xpbmtfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4g PiA+ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiArc3RhdGljIGludAo+ID4gPiA+ID4gK2ludGVs X2RwX21zdF9tYXN0ZXJfdHJhbnNfY29tcHV0ZShzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ID4gPiA+ ID4gKmVuY29kZXIsCj4gPiA+ID4gPiArCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiA+ ID4gPiA+ICpwaXBlX2NvbmZpZywKPiA+ID4gPiA+ICsJCQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZQo+ID4gPiA+ID4gKmNvbm5fc3RhdGUpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9Cj4gPiA+ID4gPiB0b19pbnRlbF9hdG9t aWNfc3RhdGUocGlwZV9jb25maWctPnVhcGkuc3RhdGUpOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItCj4gPiA+ID4gPiA+YmFz ZS5kZXYpOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3Rh dGU7Cj4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+ID4gPiA+ID4gKwllbnVt IHRyYW5zY29kZXIgbWFzdGVyOwo+ID4gPiA+ID4gKwlpbnQgaTsKPiA+ID4gPiA+ICsKPiA+ID4g PiA+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMikKPiA+ID4gPiA+ICsJCXJldHVybiAw Owo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoIWNvbm5fc3RhdGUtPmNydGMpCj4gPiA+ID4g PiArCQlyZXR1cm4gMDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJbWFzdGVyID0gaW50ZWxfZHBf bXN0X21hc3Rlcl90cmFuc19nZXQoZW5jb2Rlcik7Cj4gPiA+ID4gPiArCWlmIChtYXN0ZXIgPT0g SU5WQUxJRF9UUkFOU0NPREVSKQo+ID4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gPiArCj4g PiA+ID4gPiArCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLAo+ ID4gPiA+ID4gbmV3X2NydGNfc3RhdGUsCj4gPiA+ID4gPiBpKSB7Cj4gPiA+ID4gPiArCQkvKgo+ ID4gPiA+ID4gKwkJICogY3B1X3RyYW5zY29kZXIgaXMgc2V0IHdoZW4gY29tcHV0aW5nIENSVEMK PiA+ID4gPiA+IHN0YXRlIGlmCj4gPiA+ID4gPiBpdCB3aWxsCj4gPiA+ID4gPiArCQkgKiBiZSBk aXNhYmxlZCBpdCB3aWxsIG5vdCBoYXBwZW4sIHNvIGNoZWNraW5nCj4gPiA+ID4gPiBwaXBlCj4g PiA+ID4gPiBpbnN0ZWFkCj4gPiA+ID4gPiArCQkgKi8KPiA+ID4gPiA+ICsJCWlmIChjcnRjLT5w aXBlICE9IChlbnVtIHBpcGUpbWFzdGVyKQo+ID4gPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gKwkJaWYKPiA+ID4gPiA+ICghZHJtX2F0b21pY19jcnRjX25lZWRzX21v ZGVzZXQoJm5ld19jcnRjX3N0YXRlLQo+ID4gPiA+ID4gPiB1YXBpKSAmJgo+ID4gPiA+ID4gKwkJ ICAgIG5ld19jcnRjX3N0YXRlLT51YXBpLmVuYWJsZSkKPiA+ID4gPiA+ICsJCQljb250aW51ZTsK PiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCXBpcGVfY29uZmlnLT5tc3RfbWFzdGVyX3RyYW5zX3Bl bmRpbmcgPSB0cnVlOwo+ID4gPiA+ID4gKwkJYnJlYWs7Cj4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ICsJcmV0dXJuIDA7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyCj4gPiA+ID4gPiAqZW5jb2RlciwKPiA+ID4gPiA+ICAJCQkJICAgICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlCj4gPiA+ID4gPiAqcGlwZV9jb25maWcsCj4gPiA+ID4gPiAgCQkJCSAg ICAgICBzdHJ1Y3QKPiA+ID4gPiA+IGRybV9jb25uZWN0b3Jfc3RhdGUKPiA+ID4gPiA+ICpjb25u X3N0YXRlKQo+ID4gPiA+ID4gQEAgLTE1NCw2ICsxOTUsOTUgQEAgc3RhdGljIGludAo+ID4gPiA+ ID4gaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdAo+ID4gPiA+ID4gaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJaW50ZWxfZGRpX2NvbXB1dGVf bWluX3ZvbHRhZ2VfbGV2ZWwoZGV2X3ByaXYsCj4gPiA+ID4gPiBwaXBlX2NvbmZpZyk7Cj4gPiA+ ID4gPiAgCj4gPiA+ID4gPiArCXJldCA9IGludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfY29tcHV0 ZShlbmNvZGVyLAo+ID4gPiA+ID4gcGlwZV9jb25maWcsCj4gPiA+ID4gPiArCQkJCQkJY29ubl9z dGF0ZSk7Cj4gPiA+ID4gPiArCWlmIChyZXQpCj4gPiA+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4g PiA+ID4gKwo+ID4gPiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiArCj4g PiA+ID4gPiArc3RhdGljIGludAo+ID4gPiA+ID4gK2ludGVsX2RwX21zdF9hdG9taWNfbWFzdGVy X3RyYW5zX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yCj4gPiA+ID4gPiAqY29ubmVjdG9yLAo+ ID4gPiA+ID4gKwkJCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUKPiA+ID4gPiA+ICpz dGF0ZSkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLQo+ID4gPiA+ID4gPmRldik7Cj4gPiA+ID4gPiAr CXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm4gPQo+ID4gPiA+ID4gdG9faW50ZWxf Y29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpuZXdfY29ubl9zdGF0ZSwKPiA+ID4gPiA+ICpvbGRfY29ubl9zdGF0ZTsKPiA+ID4gPiA+ ICsJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5fbGlzdF9pdGVyOwo+ID4gPiA+ ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZTsKPiA+ID4gPiA+ ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ID4gPiA+ID4gKwlzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubl9pdGVyOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8IDEyKQo+ID4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gPiAr Cj4gPiA+ID4gPiArCW5ld19jb25uX3N0YXRlID0KPiA+ID4gPiA+IGRybV9hdG9taWNfZ2V0X25l d19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsCj4gPiA+ID4gPiBjb25uZWN0b3IpOwo+ID4gPiA+ID4g KwlvbGRfY29ubl9zdGF0ZSA9Cj4gPiA+ID4gPiBkcm1fYXRvbWljX2dldF9vbGRfY29ubmVjdG9y X3N0YXRlKHN0YXRlLAo+ID4gPiA+ID4gY29ubmVjdG9yKTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ICsJaWYgKCFvbGRfY29ubl9zdGF0ZS0+Y3J0YyAmJiAhbmV3X2Nvbm5fc3RhdGUtPmNydGMpCj4g PiA+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJLyoKPiA+ID4gPiA+ ICsJICogMyBjYXNlcyB0aGF0IG5lZWRzIGJlIGhhbmRsZWQgaGVyZToKPiA+ID4gPiA+ICsJICog LSBjb25uZWN0b3IgZ29pbmcgZnJvbSBkaXNhYmxlZCB0byBlbmFibGVkCj4gPiA+ID4gPiArCSAq IC0gY29ubmVjdG9yIGdvaW5nIGZyb20gZW5hYmxlZCB0byBkaXNhYmxlZDoKPiA+ID4gPiA+ICsJ ICogaWYgdGhpcyB0cmFuc2NvZGVyIHdhcyB0aGUgbWFzdGVyLCBhbGwgc2xhdmVzIG5lZWRzCj4g PiA+ID4gPiBhCj4gPiA+ID4gPiBtb2Rlc2V0Cj4gPiA+ID4gPiArCSAqIC0gY29ubmVjdG9yIGdv aW5nIGZyb20gZW5hYmxlZCB0byBlbmFibGVkIGJ1dCBpdAo+ID4gPiA+ID4gbmVlZHMgYQo+ID4g PiA+ID4gbW9kZXNldDoKPiA+ID4gPiA+ICsJICogaWYgdGhpcyB0cmFuc2NvZGVyIHdhcyB0aGUg bWFzdGVyLCBhbGwgc2xhdmVzIGFsc28KPiA+ID4gPiA+IG5lZWRzIGEKPiA+ID4gPiA+IG1vZGVz ZXQKPiA+ID4gPiA+ICsJICovCj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCS8qIGRpc2FibGVkIC0+ IGVuYWJsZWQgKi8KPiA+ID4gPiA+ICsJaWYgKCFvbGRfY29ubl9zdGF0ZS0+Y3J0YyAmJiBuZXdf Y29ubl9zdGF0ZS0+Y3J0YykKPiA+ID4gPiA+ICsJCXJldHVybiAwOwo+ID4gPiA+ID4gKwo+ID4g PiA+ID4gKwkvKiBlbmFibGVkIC0+IGVuYWJsZWQobW9kZXNldCk/ICovCj4gPiA+ID4gPiArCWlm IChuZXdfY29ubl9zdGF0ZS0+Y3J0Yykgewo+ID4gPiA+ID4gKwkJY3J0Y19zdGF0ZSA9Cj4gPiA+ ID4gPiBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwKPiA+ID4gPiA+IG5ld19j b25uX3N0YXRlLT5jcnRjKTsKPiA+ID4gPiA+ICsJCWlmICghZHJtX2F0b21pY19jcnRjX25lZWRz X21vZGVzZXQoY3J0Y19zdGF0ZSkpCj4gPiA+ID4gPiArCQkJcmV0dXJuIDA7Cj4gPiA+ID4gPiAr CX0KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJLyogaGFuZGxpbmcgZW5hYmxlZCAtPiBlbmFibGVk KG1vZGVzZXQpIGFuZCBlbmFibGVkIC0+Cj4gPiA+ID4gPiBkaXNhYmxlZAo+ID4gPiA+ID4gKi8K PiA+ID4gPiA+ICsJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0 YXRlLAo+ID4gPiA+ID4gb2xkX2Nvbm5fc3RhdGUtPmNydGMpOwo+ID4gPiA+ID4gKwlpbnRlbF9j cnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICsJLyogSWYgbm90IG1hc3Rlciwgbm90aGluZyBlbHNlIG5lZWRzIHRvIGJlIGhh bmRsZWQgKi8KPiA+ID4gPiA+ICsJaWYgKGludGVsX2Nvbm4tPm1zdF9wb3J0LT5tc3RfbWFzdGVy X3RyYW5zY29kZXIgIT0KPiA+ID4gPiA+ICsJICAgIGludGVsX2NydGNfc3RhdGUtPmNwdV90cmFu c2NvZGVyKQo+ID4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCS8q IElzIG1hc3RlciwgbWFyayBhbGwgb3RoZXIgQ1JUQ3MgYXMgbmVlZGluZyBhIG1vZGVzZXQKPiA+ ID4gPiA+ICovCj4gPiA+ID4gPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKHN0YXRl LT5kZXYsCj4gPiA+ID4gPiAmY29ubl9saXN0X2l0ZXIpOwo+ID4gPiA+ID4gKwlkcm1fZm9yX2Vh Y2hfY29ubmVjdG9yX2l0ZXIoY29ubl9pdGVyLCAmY29ubl9saXN0X2l0ZXIpCj4gPiA+ID4gPiB7 Cj4gPiA+ID4gPiArCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uX2l0ZXI7Cj4g PiA+ID4gPiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9pdGVyX3N0YXRlOwo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwkJaW50ZWxfY29ubl9pdGVyID0KPiA+ID4gPiA+IHRvX2lu dGVsX2Nvbm5lY3Rvcihjb25uX2l0ZXIpOwo+ID4gPiA+ID4gKwkJaWYgKGludGVsX2Nvbm5faXRl ci0+bXN0X3BvcnQgIT0gaW50ZWxfY29ubi0KPiA+ID4gPiA+ID5tc3RfcG9ydCkKPiA+ID4gPiA+ ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCWNvbm5faXRlcl9zdGF0ZSA9 Cj4gPiA+ID4gPiBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsCj4gPiA+ID4g PiArCQkJCQkJCQkKPiA+ID4gPiA+ICBjb25uX2kKPiA+ID4gPiA+IHRlcik7Cj4gPiA+ID4gPiAr CQlpZiAoSVNfRVJSKGNvbm5faXRlcl9zdGF0ZSkpIHsKPiA+ID4gPiA+ICsJCQlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5fbGlzdF8KPiA+ID4gPiA+IGl0ZXIpOwo+ID4gPiA+ID4g KwkJCXJldHVybiBQVFJfRVJSKGNvbm5faXRlcl9zdGF0ZSk7Cj4gPiA+ID4gPiArCQl9Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiArCQlpZiAoIWNvbm5faXRlcl9zdGF0ZS0+Y3J0YykKPiA+ID4gPiA+ ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCWNydGNfc3RhdGUgPSBkcm1f YXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLAo+ID4gPiA+ID4gY29ubl9pdGVyX3N0YXRlLT5j cnRjKTsKPiA+ID4gPiA+ICsJCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpIHsKPiA+ID4gPiA+ICsJ CQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5fbGlzdF8KPiA+ID4gPiA+IGl0ZXIp Owo+ID4gPiA+ID4gKwkJCXJldHVybiBQVFJfRVJSKGNvbm5faXRlcl9zdGF0ZSk7Cj4gPiA+ID4g PiArCQl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCQlpbnRlbF9jcnRjX3N0YXRlID0KPiA+ID4g PiA+IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gPiA+ID4gPiArCQljcnRjX3N0 YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+ID4gPiA+ID4gKwl9Cj4gPiA+ID4gPiArCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9saXN0X2l0ZXIpOwo+ID4gPiA+ID4gKwo+ID4g PiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiBAQCAt MTc1LDYgKzMwNSwxMCBAQCBpbnRlbF9kcF9tc3RfYXRvbWljX2NoZWNrKHN0cnVjdAo+ID4gPiA+ ID4gZHJtX2Nvbm5lY3Rvcgo+ID4gPiA+ID4gKmNvbm5lY3RvciwKPiA+ID4gPiA+ICAJaWYgKHJl dCkKPiA+ID4gPiA+ICAJCXJldHVybiByZXQ7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiArCXJldCA9 IGludGVsX2RwX21zdF9hdG9taWNfbWFzdGVyX3RyYW5zX2NoZWNrKGNvbm5lY3RvciwKPiA+ID4g PiA+IHN0YXRlKTsKPiA+ID4gPiA+ICsJaWYgKHJldCkKPiA+ID4gPiA+ICsJCXJldHVybiByZXQ7 Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCWlmICghb2xkX2Nvbm5fc3RhdGUtPmNydGMpCj4gPiA+ ID4gPiAgCQlyZXR1cm4gMDsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+IEBAIC0yNTksNiArMzkzLDcg QEAgc3RhdGljIHZvaWQKPiA+ID4gPiA+IGludGVsX21zdF9wb3N0X2Rpc2FibGVfZHAoc3RydWN0 Cj4gPiA+ID4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ID4gIAkJaW50ZWxfZHBf c2lua19kcG1zKGludGVsX2RwLAo+ID4gPiA+ID4gRFJNX01PREVfRFBNU19PRkYpOwo+ID4gPiA+ ID4gIAkJaW50ZWxfZGlnX3BvcnQtCj4gPiA+ID4gPiA+YmFzZS5wb3N0X2Rpc2FibGUoJmludGVs X2RpZ19wb3J0LQo+ID4gPiA+ID4gPiBiYXNlLAo+ID4gPiA+ID4gIAkJCQkJCSAgb2xkX2NydGNf c3RhdAo+ID4gPiA+ID4gZSwKPiA+ID4gPiA+IE5VTEwpOwo+ID4gPiA+ID4gKwkJaW50ZWxfZHAt Pm1zdF9tYXN0ZXJfdHJhbnNjb2RlciA9Cj4gPiA+ID4gPiBJTlZBTElEX1RSQU5TQ09ERVI7Cj4g PiA+ID4gPiAgCX0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZl IGxpbmtzICVkXG4iLCBpbnRlbF9kcC0KPiA+ID4gPiA+ID5hY3RpdmVfbXN0X2xpbmtzKTsKPiA+ ID4gPiA+IEBAIC0zMTQsOCArNDQ5LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9wcmVfZW5h YmxlX2RwKHN0cnVjdAo+ID4gPiA+ID4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gPiA+ ICAKPiA+ID4gPiA+ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZlIGxpbmtzICVkXG4iLCBpbnRlbF9k cC0KPiA+ID4gPiA+ID5hY3RpdmVfbXN0X2xpbmtzKTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+IC0J aWYgKGZpcnN0X21zdF9zdHJlYW0pCj4gPiA+ID4gPiArCWlmIChmaXJzdF9tc3Rfc3RyZWFtKSB7 Cj4gPiA+ID4gPiArCQlXQVJOX09OKGludGVsX2RwLT5tc3RfbWFzdGVyX3RyYW5zY29kZXIgIT0K PiA+ID4gPiA+IElOVkFMSURfVFJBTlNDT0RFUik7Cj4gPiA+ID4gPiArCQlpbnRlbF9kcC0+bXN0 X21hc3Rlcl90cmFuc2NvZGVyID0gcGlwZV9jb25maWctCj4gPiA+ID4gPiA+IGNwdV90cmFuc2Nv ZGVyOwo+ID4gPiA+ID4gIAkJaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1fTU9ERV9E UE1TX09OKTsKPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlkcm1fZHBfc2Vu ZF9wb3dlcl91cGRvd25fcGh5KCZpbnRlbF9kcC0+bXN0X21nciwKPiA+ID4gPiA+IGNvbm5lY3Rv ci0KPiA+ID4gPiA+ID4gcG9ydCwgdHJ1ZSk7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiBAQCAtNzE3 LDMgKzg1NSwxMiBAQCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9jbGVhbnVwKHN0cnVjdAo+ID4gPiA+ ID4gaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKPiA+ID4gPiA+ICAJZHJtX2Rw X21zdF90b3BvbG9neV9tZ3JfZGVzdHJveSgmaW50ZWxfZHAtPm1zdF9tZ3IpOwo+ID4gPiA+ID4g IAkvKiBlbmNvZGVycyB3aWxsIGdldCBraWxsZWQgYnkgbm9ybWFsIGNsZWFudXAgKi8KPiA+ID4g PiA+ICB9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArZW51bSB0cmFuc2NvZGVyCj4gPiA+ID4gPiAr aW50ZWxfZHBfbXN0X21hc3Rlcl90cmFuc19nZXQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIg KmludGVsX21zdCA9Cj4gPiA+ID4gPiBlbmNfdG9fbXN0KCZlbmNvZGVyLQo+ID4gPiA+ID4gPiBi YXNlKTsKPiA+ID4gPiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9tc3Qt PnByaW1hcnktPmRwOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlyZXR1cm4gaW50ZWxfZHAtPm1z dF9tYXN0ZXJfdHJhbnNjb2RlcjsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuaAo+ID4gPiA+ID4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5oCj4gPiA+ID4gPiBpbmRl eCBmNjYwYWQ4MGRiMDQuLmU2ZjI4YTUxNzE4MiAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgKPiA+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgKPiA+ID4gPiA+IEBAIC03 LDkgKzcsMTEgQEAKPiA+ID4gPiA+ICAjZGVmaW5lIF9fSU5URUxfRFBfTVNUX0hfXwo+ID4gPiA+ ID4gIAo+ID4gPiA+ID4gIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQ7Cj4gPiA+ID4gPiArc3Ry dWN0IGludGVsX2VuY29kZXI7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgaW50IGludGVsX2RwX21z dF9lbmNvZGVyX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydAo+ID4gPiA+ID4gKmludGVs X2RpZ19wb3J0LCBpbnQgY29ubl9pZCk7Cj4gPiA+ID4gPiAgdm9pZCBpbnRlbF9kcF9tc3RfZW5j b2Rlcl9jbGVhbnVwKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQKPiA+ID4gPiA+ICppbnRlbF9k aWdfcG9ydCk7Cj4gPiA+ID4gPiAgaW50IGludGVsX2RwX21zdF9lbmNvZGVyX2FjdGl2ZV9saW5r cyhzdHJ1Y3QKPiA+ID4gPiA+IGludGVsX2RpZ2l0YWxfcG9ydAo+ID4gPiA+ID4gKmludGVsX2Rp Z19wb3J0KTsKPiA+ID4gPiA+ICtlbnVtIHRyYW5zY29kZXIgaW50ZWxfZHBfbXN0X21hc3Rlcl90 cmFuc19nZXQoc3RydWN0Cj4gPiA+ID4gPiBpbnRlbF9lbmNvZGVyCj4gPiA+ID4gPiAqZW5jb2Rl cik7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgI2VuZGlmIC8qIF9fSU5URUxfRFBfTVNUX0hfXyAq Lwo+ID4gPiA+ID4gLS0gCj4gPiA+ID4gPiAyLjI0LjAKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50 ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1F558C432C0 for ; Thu, 28 Nov 2019 12:07:00 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EF9EA21781 for ; Thu, 28 Nov 2019 12:06:59 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EF9EA21781 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 908906E7E5; Thu, 28 Nov 2019 12:06:59 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E05B6E7E5 for ; Thu, 28 Nov 2019 12:06:58 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Nov 2019 04:06:57 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,253,1571727600"; d="scan'208";a="199507645" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga007.jf.intel.com with SMTP; 28 Nov 2019 04:06:50 -0800 Received: by stinkbox (sSMTP sendmail emulation); Thu, 28 Nov 2019 14:06:49 +0200 Date: Thu, 28 Nov 2019 14:06:49 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: "Souza, Jose" Message-ID: <20191128120649.GS1208@intel.com> References: <20191123005459.155383-1-jose.souza@intel.com> <20191123005459.155383-3-jose.souza@intel.com> <20191126200553.GG1208@intel.com> <20191127195939.GO1208@intel.com> <72b17babbf755de61f3f6a1170c6fcd7fa646786.camel@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <72b17babbf755de61f3f6a1170c6fcd7fa646786.camel@intel.com> User-Agent: Mutt/1.10.1 (2018-07-13) Subject: Re: [Intel-gfx] [PATCH 3/7] drm/i915/tgl: Select master trasconder for MST stream X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" , "De Marchi, Lucas" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191128120649.ZEfKdHZcc-6dX45WT9Ut8UWc3CdLGtGgoB9_ODlU0i8@z> T24gVGh1LCBOb3YgMjgsIDIwMTkgYXQgMDE6MTQ6MzdBTSArMDAwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gV2VkLCAyMDE5LTExLTI3IGF0IDIxOjU5ICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6Cj4gPiBPbiBUdWUsIE5vdiAyNiwgMjAxOSBhdCAwODozMDozMVBNICswMDAwLCBTb3V6 YSwgSm9zZSB3cm90ZToKPiA+ID4gT24gVHVlLCAyMDE5LTExLTI2IGF0IDIyOjA1ICswMjAwLCBW aWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gRnJpLCBOb3YgMjIsIDIwMTkgYXQgMDQ6 NTQ6NTVQTSAtMDgwMCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YQo+ID4gPiA+IHdyb3RlOgo+ID4g PiA+ID4gT24gVEdMIHRoZSBibGVuZGluZyBvZiBhbGwgdGhlIHN0cmVhbXMgaGF2ZSBtb3ZlZCBm cm9tIERESSB0bwo+ID4gPiA+ID4gdHJhbnNjb2Rlciwgc28gbm93IGV2ZXJ5IHRyYW5zY29kZXIg d29ya2luZyBvdmVyIHRoZSBzYW1lIE1TVAo+ID4gPiA+ID4gcG9ydAo+ID4gPiA+ID4gbXVzdAo+ ID4gPiA+ID4gc2VuZCBpdHMgc3RyZWFtIHRvIGEgbWFzdGVyIHRyYW5zY29kZXIgYW5kIG1hc3Rl ciB3aWxsIHNlbmQgdG8KPiA+ID4gPiA+IERESQo+ID4gPiA+ID4gcmVzcGVjdGluZyB0aGUgdGlt ZSBzbG90cy4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gQSBwcmV2aW91cyBhcHByb2FjaCB3YXMgdXNp bmcgdGhlIGxvd2VzdCBwaXBlL3RyYW5zY29kZXIgYXMKPiA+ID4gPiA+IG1hc3Rlcgo+ID4gPiA+ ID4gdHJhbnNjb2RlciBidXQgYXMgdGhlIGNvbW1lbnQgaW4gc2tsX2NvbW1pdF9tb2Rlc2V0X2Vu YWJsZXMoKQo+ID4gPiA+ID4gc3RhdGVzLAo+ID4gPiA+ID4gdGhhdCBpcyBub3QgYWx3YXlzIHRy dWUuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFNvIGhlcmUgcHJvbW90aW5nIHRoZSBmaXJzdCBwaXBl L3RyYW5zY29kZXIgb2YgdGhlIHN0cmVhbSBhcwo+ID4gPiA+ID4gbWFzdGVyLgo+ID4gPiA+ID4g VGhhdCBjYXVzZWQgc2V2ZXJhbCBvdGhlciBwcm9ibGVtcyBhcyBkdXJpbmcgdGhlIGNvbW1pdCBw aGFzZQo+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiBzdGF0ZSBjb21wdXRlZCBzaG91bGQgbm90IGJl IGNoYW5nZWQuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IFNvIHRoZSBtYXN0ZXIgdHJhbnNjb2RlciBp cyBzdG9yZSBpbnRvIGludGVsX2RwIGFuZCB0aGUgbW9kZXNldAo+ID4gPiA+ID4gaW4KPiA+ID4g PiA+IHNsYXZlIHBpcGVzL3RyYW5zY29kZXJzIGlzIGZvcmNlZCB1c2luZwo+ID4gPiA+ID4gbXN0 X21hc3Rlcl90cmFuc19wZW5kaW5nLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiB2MjoKPiA+ID4gPiA+ IC0gYWRkZWQgbWlzc2luZyBjb25maWcgY29tcHV0ZSB0byB0cmlnZ2VyIGZ1bGxtb2Rlc2V0IGlu IHNsYXZlCj4gPiA+ID4gPiB0cmFuc2NvZGVycwo+ID4gPiA+ID4gCj4gPiA+ID4gPiBCU3BlYzog NTA0OTMKPiA+ID4gPiA+IEJTcGVjOiA0OTE5MAo+ID4gPiA+ID4gQ2M6IFZpbGxlIFN5cmrDpGzD pCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gPiBDYzogTHVjYXMgRGUg TWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiA+ID4gPiA+ IC0tLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMg ICAgICB8ICAxMCArLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheS5jICB8ICA1OCArKysrKystCj4gPiA+ID4gPiAgLi4uL2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgICAzICsKPiA+ID4gPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAgICAgfCAgIDEgKwo+ID4gPiA+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgICB8IDE0OQo+ID4gPiA+ ID4gKysrKysrKysrKysrKysrKystCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcF9tc3QuaCAgIHwgICAyICsKPiA+ID4gPiA+ICA2IGZpbGVzIGNoYW5nZWQs IDIxNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ID4g PiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gPiA+ID4g PiBpbmRleCBhOTc2NjA2ZDIxYzcuLmQyZjBkMzkzZDNlZSAxMDA2NDQKPiA+ID4gPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiA+ID4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiA+ID4gPiA+IEBAIC0z NSw2ICszNSw3IEBACj4gPiA+ID4gPiAgI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIK PiA+ID4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZHAuaCIKPiA+ID4gPiA+ICAjaW5jbHVkZSAiaW50 ZWxfZHBfbGlua190cmFpbmluZy5oIgo+ID4gPiA+ID4gKyNpbmNsdWRlICJpbnRlbF9kcF9tc3Qu aCIKPiA+ID4gPiA+ICAjaW5jbHVkZSAiaW50ZWxfZHBpb19waHkuaCIKPiA+ID4gPiA+ICAjaW5j bHVkZSAiaW50ZWxfZHNpLmgiCj4gPiA+ID4gPiAgI2luY2x1ZGUgImludGVsX2ZpZm9fdW5kZXJy dW4uaCIKPiA+ID4gPiA+IEBAIC0xOTAzLDggKzE5MDQsMTMgQEAKPiA+ID4gPiA+IGludGVsX2Rk aV90cmFuc2NvZGVyX2Z1bmNfcmVnX3ZhbF9nZXQoY29uc3QKPiA+ID4gPiA+IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ID4gPiA+ID4gIAkJdGVtcCB8PSBUUkFOU19ERElf TU9ERV9TRUxFQ1RfRFBfTVNUOwo+ID4gPiA+ID4gIAkJdGVtcCB8PSBERElfUE9SVF9XSURUSChj cnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+IC0JCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDEyKQo+ID4gPiA+ID4gLQkJCXRlbXAgfD0KPiA+ID4gPiA+IFRS QU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVChjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2Rlcik7 Cj4gPiA+ID4gPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgewo+ID4gPiA+ID4g KwkJCWVudW0gdHJhbnNjb2RlciBtYXN0ZXI7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCQkJbWFz dGVyID0KPiA+ID4gPiA+IGludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfZ2V0KGVuY29kZXIpOwo+ ID4gPiA+IAo+ID4gPiA+IFdoeSBpc24ndCB0aGF0IGp1c3Qgc3RvcmVkIGluIHRoZSBjcnRjIHN0 YXRlIGxpa2UgZXZlcnl0aGluZwo+ID4gPiA+IGVsc2U/Cj4gPiA+ID4gCj4gPiA+ID4gSSdtIHRo aW5raW5nIHdlIHNob3VsZCBtYXliZSBkbyBpdCBqdXN0IGxpa2UgcG9ydCBzeW5jIGFuZCBoYXZl Cj4gPiA+ID4gYm90aAo+ID4gPiA+IG1hc3RlciArIHNsYXZlX21hc2suIFRoYXQgd2F5IGl0IHNo b3VsZCBiZSBwcmV0dHkgdHJpdmlhbCB0byBhZGQKPiA+ID4gPiBhbGwKPiA+ID4gPiB0aGUgcmVs ZXZhbnQgY3J0Y3MgdG8gdGhlIHN0YXRlIHdoZW4gbmVlZGVkLgo+ID4gPiAKPiA+ID4gSSBndWVz cyBwb3J0IHN5bmMgaXMgbm90IGRvaW5nIHRoZSByaWdodCB0aGluZyBhbmQgaXQgY291bGQgY2F1 c2UKPiA+ID4gdW5kZXJydW5zLgo+ID4gPiBXaGVuIGl0IGlzIGdvaW5nIHRvIGVuYWJsZSB0aGUg bWFzdGVyIENSVEMgb2YgdGhlIHBvcnQgc3luYyBpdAo+ID4gPiBmb3JjaWJseQo+ID4gPiBlbmFi bGVzIHRoZSBzbGF2ZSBmaXJzdCwgd2hhdCBjb3VsZCBjYXVzZSB1bmRlcnJ1bnMgYmVjYXVzZSBv Zgo+ID4gPiBvdmVybGFwCj4gPiA+IGluIGRkYiBhbGxvY2F0aW9ucyh0aGF0IGlzIHdoYXQgSSB1 bmRlcnN0b29kIGZyb20gdGhlIGNvbW1lbnQgaW4KPiA+ID4gc2tsX2NvbW1pdF9tb2Rlc2V0X2Vu YWJsZXMoKSkuCj4gPiAKPiA+IE5vdCBuZWNlc3NhcmlseSBqdXN0IHVuZGVycnVucyBidXQgZXZl biBhIHN5c3RlbSBoYW5nLiBUaGUgZml4IHNob3VsZAo+ID4gYmUKPiA+IGEgdHJpdmlhbCAiY2hl Y2sgdGhlIHNsYXZlIGZvciBkZGIgb3ZlcmxhcCBhcyB3ZWxsIiwgYnV0IGFwcGFyZW50bHkgSQo+ ID4gZmFpbGVkIGF0IGNvbnZpY2luZyBwZW9wbGUgdG8gZG8gdGhhdC4KPiA+IAo+ID4gSSd2ZSBh Y3R1YWxseSBiZWVuIHBvbmRlcmluZyBhYm91dCBkZWNvdXBsaW5nIHRoZSBwbGFuZSB1cGRhdGVz IGZyb20KPiA+IHRoZSBjcnRjIGVuYWJsZSBzdHVmZiBlbnRpcmVseS4gQXQgbGVhc3QgdGhlb3Jl dGljYWxseSBjcnRjIGVuYWJsZQo+ID4gc2hvdWxkIGJlIGFibGUgdG8gZXhjdXRlIGluIGFueSBv cmRlciBhcyBsb25nIHdlIGRvbid0IGVuYWJsZSBhbnkKPiA+IG5ldyBwbGFuZXMuCj4gPiAKPiA+ IEJ1dCBub25lIG9mIHRoYXQgcmVhbGx5IG1hdHRlcnMgZm9yIHRoZSBkaXNjdXNzaW9uIGF0IGhh bmQuIFRob3VnaAo+ID4gdGhlcmUgYXJlIG90aGVyIHByb2JsZW1zIHdpdGggdGhlIHBvcnQgc3lu YyBzdHVmZiB0aGF0IHdvdWxkIG5lZWQKPiA+IHRvIGJlIGhhbmRsZWQgYmV0dGVyLiBFZy4gSSB0 aGluayBpdCBub3cgYWRkcyBib3RoIGNydGNzIHRvIHRoZSBzdGF0ZQo+ID4gYWx3YXlzIHdoaWNo IGlzIGdvaW5nIHRvIGN1dCB0aGUgZnBzIGluIGhhbGYuIEFsc28gdGhlIHBsYWNlIHdoZXJlCj4g PiBpdCBkb2VzIHRoYXQgc3R1ZmYgaXMgcmF0aGVyIHN1c3BpY2lvdXMuIEFsbCB0aGF0IHN0dWZm IHNob3VsZCBiZQo+ID4gc29tZXdoZXJlIGEgYml0IGhpZ2hlciB1cCBJTU8uCj4gPiAKPiA+ID4g U28gZm9yIE1TVCB3ZSBvbmx5IGtub3cgd2hvIGlzIHRoZSBtYXN0ZXIgaW4gdGhlIGNvbW1pdCBw aGFzZSBhbmQKPiA+ID4gYXQKPiA+ID4gdGhpcyBwb2ludCB3ZSBzaG91bGQgbm90IG1vZGlmeSB0 aGUgY29tcHV0ZWQgc3RhdGUuCj4gPiAKPiA+IEknbSBub3Qgc3VnZ2VzdGluZyBtb2RpZnlpbmcg YW55dGhpbmcgZHVyaW5nIGNvbW1pdCBwaGFzZS4gSSB0aGluawo+ID4geW91IGFyZSBlZmZlY3Rp ZWx5IGRvaW5nIHRoYXQgcmlnaHQgbm93IGJ5IHN0dWZmaW5nIHRoYXQgbXN0IG1hc3Rlcgo+ID4g dHJhbnNjb2RlciBpbnRvIGludGVsX2RwLgo+IAo+IFNvcnJ5LCBJIHN0aWxsIGRvbid0IGdldCB3 aGF0IGFwcHJvYWNoIGFyZSB5b3Ugc3VnZ2VzdGluZyBoZXJlLgo+IAo+IElmIHdlIGNhbid0IG1v ZGlmeSB0aGUgc3RhdGUgaW4gdGhlIGNvbW1pdCBwaGFzZSwgYWRkaW5nCj4gbXN0X21hc3Rlcl90 cmFuc2NvZGVyIGluIHRoZSBDUlRDIHN0YXRlIHdpbGwgbm90IGJlIHBvc3NpYmxlIHdoaWxlCj4g cmVzcGVjdGluZyB0aGUgb3JkZXIgaW1wb3NlZCBieSBkZGIgYWxsb2NhdGlvbnMuCgpUaGUgZGRi IGFsbG9jYXRpb24gb3JkZXJpbmcgb25seSBjb21lcyBpbnRvIHBsYXkgd2hlbiB0aGVyZSBhcmUK YWxyZWFkeSBhY3RpdmUgcGlwZXMuIEl0IHNob3VsZCBhbHdheXMgYmUgcG9zc2libGUgdG8gbm90 IGVuYWJsZQp0aGUgc2xhdmVzIHVudGlsIHRoZSBtYXN0ZXIgaGFzIGJlZW4gc2h1ZmZsZWQgaW50 byBwbGFjZSBpbiB0aGUgCmRkYiBhbmQgZW5hYmxlZC4KCj4gCj4gPiAKPiA+ID4gPiA+ICsJCQlX QVJOX09OKG1hc3RlciA9PSBJTlZBTElEX1RSQU5TQ09ERVIpOwo+ID4gPiA+ID4gKwkJCXRlbXAg fD0KPiA+ID4gPiA+IFRSQU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVChtYXN0ZXIpOwo+ID4g PiA+ID4gKwkJfQo+ID4gPiA+ID4gIAl9IGVsc2Ugewo+ID4gPiA+ID4gIAkJdGVtcCB8PSBUUkFO U19ERElfTU9ERV9TRUxFQ1RfRFBfU1NUOwo+ID4gPiA+ID4gIAkJdGVtcCB8PSBERElfUE9SVF9X SURUSChjcnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gaW5kZXgg ODAxYjk3NWM3ZDM5Li4zNWE1OTEwODE5NGUgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiA+IEBAIC00 Niw2ICs0Niw3IEBACj4gPiA+ID4gPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfY3J0LmgiCj4g PiA+ID4gPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZGRpLmgiCj4gPiA+ID4gPiAgI2luY2x1 ZGUgImRpc3BsYXkvaW50ZWxfZHAuaCIKPiA+ID4gPiA+ICsjaW5jbHVkZSAiZGlzcGxheS9pbnRl bF9kcF9tc3QuaCIKPiA+ID4gPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kc2kuaCIKPiA+ ID4gPiA+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kdm8uaCIKPiA+ID4gPiA+ICAjaW5jbHVk ZSAiZGlzcGxheS9pbnRlbF9nbWJ1cy5oIgo+ID4gPiA+ID4gQEAgLTUzNjUsNiArNTM2NiwzNiBA QCBpbnRlbF9nZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3QKPiA+ID4gPiA+IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gPiA+ID4gPiAgCXJldHVybiBlbmNvZGVyOwo+ID4gPiA+ ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICsvKgo+ID4gPiA+ID4gKyAqIEZpbmRzIHRoZSBl bmNvZGVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gQ1JUQy4gVGhpcyBjYW4KPiA+ID4gPiA+ IG9ubHkKPiA+ID4gPiA+IGJlCj4gPiA+ID4gPiArICogdXNlZCB3aGVuIHdlIGtub3cgdGhhdCB0 aGUgQ1JUQyBpc24ndCBmZWVkaW5nIG11bHRpcGxlCj4gPiA+ID4gPiBlbmNvZGVycyEKPiA+ID4g PiA+ICsgKi8KPiA+ID4gPiA+ICtzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKgo+ID4gPiA+ ID4gK2ludGVsX2dldF9jcnRjX29sZF9lbmNvZGVyKGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUKPiA+ID4gPiA+ICpzdGF0ZSwKPiA+ID4gPiA+ICsJCQkgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZQo+ID4gPiA+ID4gKmNydGNfc3RhdGUpCj4gPiA+ID4gPiArewo+ID4gPiA+ ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0K PiA+ID4gPiA+ID51YXBpLmNydGMpOwo+ID4gPiA+ID4gKwljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+ID4gPiA+ID4gKwljb25zdCBzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciA9IE5VTEw7Cj4gPiA+ID4gPiArCWludCBudW1fZW5jb2RlcnMgPSAwOwo+ID4gPiA+ ID4gKwlpbnQgaTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJZm9yX2VhY2hfb2xkX2Nvbm5lY3Rv cl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsCj4gPiA+ID4gPiBjb25uZWN0b3IsCj4gPiA+ID4gPiAr CQkJCQljb25uZWN0b3Jfc3RhdGUsIGkpIHsKPiA+ID4gPiA+ICsJCWlmIChjb25uZWN0b3Jfc3Rh dGUtPmNydGMgIT0gJmNydGMtPmJhc2UpCj4gPiA+ID4gPiArCQkJY29udGludWU7Cj4gPiA+ID4g PiArCj4gPiA+ID4gPiArCQllbmNvZGVyID0gdG9faW50ZWxfZW5jb2Rlcihjb25uZWN0b3Jfc3Rh dGUtCj4gPiA+ID4gPiA+IGJlc3RfZW5jb2Rlcik7Cj4gPiA+ID4gPiArCQludW1fZW5jb2RlcnMr KzsKPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlXQVJOKG51bV9lbmNvZGVy cyAhPSAxLCAiJWQgZW5jb2RlcnMgZm9yIHBpcGUgJWNcbiIsCj4gPiA+ID4gPiArCSAgICAgbnVt X2VuY29kZXJzLCBwaXBlX25hbWUoY3J0Yy0+cGlwZSkpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4g KwlyZXR1cm4gZW5jb2RlcjsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gCj4gPiA+ID4gQXJnaC4gSSB3 YXMgaG9waW5nIHRvIGtpbGwgdGhlIG90aGVyIG9uZSBvZiB0aGVzZS4gR290IGl0IGRvd24gdG8K PiA+ID4gPiAxCj4gPiA+ID4gcmVtYWluaW5nIHVzZXIgbm93IEkgdGhpbmsuCj4gPiA+ID4gCj4g PiA+ID4gPiArCj4gPiA+ID4gPiAgLyoKPiA+ID4gPiA+ICAgKiBFbmFibGUgUENIIHJlc291cmNl cyByZXF1aXJlZCBmb3IgUENIIHBvcnRzOgo+ID4gPiA+ID4gICAqICAgLSBQQ0ggUExMcwo+ID4g PiA+ID4gQEAgLTEzMzY1LDYgKzEzMzk2LDEyIEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUo Y29uc3Qgc3RydWN0Cj4gPiA+ID4gPiBpbnRlbF9jcnRjX3N0YXRlICpjdXJyZW50X2NvbmZpZywK PiA+ID4gPiA+ICAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0NPTE9SX0xVVAo+ID4gPiA+ID4gICN1 bmRlZiBQSVBFX0NPTkZfUVVJUksKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICsJaWYgKGZhc3RzZXQg JiYgcGlwZV9jb25maWctPm1zdF9tYXN0ZXJfdHJhbnNfcGVuZGluZykgewo+ID4gPiA+ID4gKwkJ RFJNX0RFQlVHX0tNUygiW0NSVEM6JWQ6JXNdIGZhc3RzZXQgbWlzbWF0Y2ggaW4KPiA+ID4gPiA+ IG1zdF9tYXN0ZXJfdHJhbnNcbiIsCj4gPiA+ID4gPiArCQkJICAgICAgY3J0Yy0+YmFzZS5iYXNl LmlkLCBjcnRjLQo+ID4gPiA+ID4gPmJhc2UubmFtZSk7Cj4gPiA+ID4gPiArCQlyZXQgPSBmYWxz ZTsKPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIAlyZXR1cm4gcmV0Owo+ID4g PiA+ID4gIH0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+IEBAIC0xNDQ0OSwyMiArMTQ0ODYsMzUgQEAg c3RhdGljIHZvaWQKPiA+ID4gPiA+IGludGVsX2NvbW1pdF9tb2Rlc2V0X2Rpc2FibGVzKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YzsKPiA+ID4gPiA+ICAJaW50IGk7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAtCS8qIE9u bHkgZGlzYWJsZSBwb3J0IHN5bmMgc2xhdmVzICovCj4gPiA+ID4gPiArCS8qIE9ubHkgZGlzYWJs ZSBwb3J0IHN5bmMgYW5kIE1TVCBzbGF2ZXMgKi8KPiA+ID4gPiA+ICAJZm9yX2VhY2hfb2xkbmV3 X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsCj4gPiA+ID4gPiBvbGRfY3J0Y19zdGF0 ZSwKPiA+ID4gPiA+ICAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkKPiA+ID4gPiA+IHsKPiA+ ID4gPiA+ICAJCWlmICghbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkgfHwgIWNydGMtCj4g PiA+ID4gPiA+YWN0aXZlKQo+ID4gPiA+ID4gIAkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gIAo+ID4g PiA+ID4gKwkJaWYgKCFpc190cmFuc19wb3J0X3N5bmNfbW9kZShuZXdfY3J0Y19zdGF0ZSkgJiYK PiA+ID4gPiA+ICsJCSAgICAhaW50ZWxfY3J0Y19oYXNfdHlwZShvbGRfY3J0Y19zdGF0ZSwKPiA+ ID4gPiA+IElOVEVMX09VVFBVVF9EUF9NU1QpKQo+ID4gPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4g PiA+ID4gKwo+ID4gPiA+ID4gIAkJLyogSW4gY2FzZSBvZiBUcmFuc2NvZGVyIHBvcnQgU3luYyBt YXN0ZXIgc2xhdmUKPiA+ID4gPiA+IENSVENzCj4gPiA+ID4gPiBjYW4gYmUKPiA+ID4gPiA+ICAJ CSAqIGFzc2lnbmVkIGluIGFueSBvcmRlciBhbmQgd2UgbmVlZCB0byBtYWtlCj4gPiA+ID4gPiBz dXJlIHRoYXQKPiA+ID4gPiA+ICAJCSAqIHNsYXZlIENSVENzIGFyZSBkaXNhYmxlZCBmaXJzdCBh bmQgdGhlbgo+ID4gPiA+ID4gbWFzdGVyIENSVEMKPiA+ID4gPiA+IHNpbmNlCj4gPiA+ID4gPiAg CQkgKiBTbGF2ZSB2YmxhbmtzIGFyZSBtYXNrZWQgdGlsbCBNYXN0ZXIKPiA+ID4gPiA+IFZibGFu a3MuCj4gPiA+ID4gPiAgCQkgKi8KPiA+ID4gPiA+IC0JCWlmICghaXNfdHJhbnNfcG9ydF9zeW5j X21vZGUob2xkX2NydGNfc3RhdGUpKQo+ID4gPiA+ID4gLQkJCWNvbnRpbnVlOwo+ID4gPiA+ID4g LQkJaWYgKGlzX3RyYW5zX3BvcnRfc3luY19tYXN0ZXIob2xkX2NydGNfc3RhdGUpKQo+ID4gPiA+ ID4gKwkJaWYgKGlzX3RyYW5zX3BvcnRfc3luY19tb2RlKG5ld19jcnRjX3N0YXRlKSAmJgo+ID4g PiA+ID4gKwkJICAgIGlzX3RyYW5zX3BvcnRfc3luY19tYXN0ZXIobmV3X2NydGNfc3RhdGUpKQo+ ID4gPiA+ID4gIAkJCWNvbnRpbnVlOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKwkJaWYgKGludGVs X2NydGNfaGFzX3R5cGUob2xkX2NydGNfc3RhdGUsCj4gPiA+ID4gPiBJTlRFTF9PVVRQVVRfRFBf TVNUKSkgewo+ID4gPiA+ID4gKwkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ID4g PiA+ID4gKwo+ID4gPiA+ID4gKwkJCWVuY29kZXIgPQo+ID4gPiA+ID4gaW50ZWxfZ2V0X2NydGNf b2xkX2VuY29kZXIoc3RhdGUsCj4gPiA+ID4gPiArCQkJCQkJCSAgICAgb2wKPiA+ID4gPiA+IGRf Y3J0Y19zCj4gPiA+ID4gPiB0YXRlKTsKPiA+ID4gPiA+ICsJCQlpZgo+ID4gPiA+ID4gKGludGVs X2RwX21zdF9tYXN0ZXJfdHJhbnNfZ2V0KGVuY29kZXIpID09Cj4gPiA+ID4gPiArCQkJICAgIG9s ZF9jcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcikKPiA+ID4gPiA+ICsJCQkJY29udGludWU7Cj4g PiA+ID4gPiArCQl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCQlpbnRlbF9wcmVfcGxhbmVfdXBk YXRlKG9sZF9jcnRjX3N0YXRlLAo+ID4gPiA+ID4gbmV3X2NydGNfc3RhdGUpOwo+ID4gPiA+ID4g IAkJaW50ZWxfb2xkX2NydGNfc3RhdGVfZGlzYWJsZXMoc3RhdGUsCj4gPiA+ID4gPiBvbGRfY3J0 Y19zdGF0ZSwKPiA+ID4gPiA+ICAJCQkJCSAgICAgIG5ld19jcnRjX3N0YXRlLAo+ID4gPiA+ID4g Y3J0Yyk7Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gPiA+IGluZGV4IDgzZWEwNDE0OWI3 Ny4uMjNkNzQ3Y2RjYTY0IDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gPiA+ID4gPiBAQCAt MTA1Miw2ICsxMDUyLDggQEAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgewo+ID4gPiA+ID4gIAkv KiBQb2ludGVyIHRvIG1hc3RlciB0cmFuc2NvZGVyIGluIGNhc2Ugb2YgdGlsZWQKPiA+ID4gPiA+ IGRpc3BsYXlzICovCj4gPiA+ID4gPiAgCWVudW0gdHJhbnNjb2RlciBtYXN0ZXJfdHJhbnNjb2Rl cjsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICsJYm9vbCBtc3RfbWFzdGVyX3RyYW5zX3BlbmRpbmc7 Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCS8qIEJpdG1hc2sgdG8gaW5kaWNhdGUgc2xhdmVzIGF0 dGFjaGVkICovCj4gPiA+ID4gPiAgCXU4IHN5bmNfbW9kZV9zbGF2ZXNfbWFzazsKPiA+ID4gPiA+ ICB9Owo+ID4gPiA+ID4gQEAgLTEyODQsNiArMTI4Niw3IEBAIHN0cnVjdCBpbnRlbF9kcCB7Cj4g PiA+ID4gPiAgCWJvb2wgY2FuX21zdDsgLyogdGhpcyBwb3J0IHN1cHBvcnRzIG1zdCAqLwo+ID4g PiA+ID4gIAlib29sIGlzX21zdDsKPiA+ID4gPiA+ICAJaW50IGFjdGl2ZV9tc3RfbGlua3M7Cj4g PiA+ID4gPiArCWVudW0gdHJhbnNjb2RlciBtc3RfbWFzdGVyX3RyYW5zY29kZXI7IC8qIE9ubHkg dXNlZCBpbgo+ID4gPiA+ID4gVEdMKyAqLwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAkvKgo+ID4g PiA+ID4gIAkgKiBEUF9UUF8qIHJlZ2lzdGVycyBtYXkgYmUgZWl0aGVyIG9uIHBvcnQgb3IKPiA+ ID4gPiA+IHRyYW5zY29kZXIKPiA+ID4gPiA+IHJlZ2lzdGVyIHNwYWNlLgo+ID4gPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwo+ID4gPiA+ ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+ID4gPiA+IGlu ZGV4IDMxMjM5NThlMjA4MS4uY2VmZjY5MDE0NTFhIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4gPiA+ID4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKPiA+ID4gPiA+IEBAIC03NDI0LDYg Kzc0MjQsNyBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QKPiA+ID4gPiA+IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gPiA+ID4gPiAgCWludGVsX2RwLT5yZXNl dF9saW5rX3BhcmFtcyA9IHRydWU7Cj4gPiA+ID4gPiAgCWludGVsX2RwLT5wcHNfcGlwZSA9IElO VkFMSURfUElQRTsKPiA+ID4gPiA+ICAJaW50ZWxfZHAtPmFjdGl2ZV9waXBlID0gSU5WQUxJRF9Q SVBFOwo+ID4gPiA+ID4gKwlpbnRlbF9kcC0+bXN0X21hc3Rlcl90cmFuc2NvZGVyID0gSU5WQUxJ RF9UUkFOU0NPREVSOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAkvKiBQcmVzZXJ2ZSB0aGUgY3Vy cmVudCBodyBzdGF0ZS4gKi8KPiA+ID4gPiA+ICAJaW50ZWxfZHAtPkRQID0gSTkxNV9SRUFEKGlu dGVsX2RwLT5vdXRwdXRfcmVnKTsKPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCj4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiA+ID4gPiA+IGluZGV4IGY4YTM1MDM1OTM0 Ni4uOTczMWMzYzFkM2YyIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+ID4gPiA+ID4gQEAgLTg3LDYgKzg3LDQ3IEBA IHN0YXRpYyBpbnQKPiA+ID4gPiA+IGludGVsX2RwX21zdF9jb21wdXRlX2xpbmtfY29uZmlnKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4g PiA+ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiArc3RhdGljIGludAo+ID4gPiA+ID4gK2ludGVs X2RwX21zdF9tYXN0ZXJfdHJhbnNfY29tcHV0ZShzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ID4gPiA+ ID4gKmVuY29kZXIsCj4gPiA+ID4gPiArCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUKPiA+ ID4gPiA+ICpwaXBlX2NvbmZpZywKPiA+ID4gPiA+ICsJCQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZQo+ID4gPiA+ID4gKmNvbm5fc3RhdGUpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9Cj4gPiA+ID4gPiB0b19pbnRlbF9hdG9t aWNfc3RhdGUocGlwZV9jb25maWctPnVhcGkuc3RhdGUpOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItCj4gPiA+ID4gPiA+YmFz ZS5kZXYpOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3Rh dGU7Cj4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+ID4gPiA+ID4gKwllbnVt IHRyYW5zY29kZXIgbWFzdGVyOwo+ID4gPiA+ID4gKwlpbnQgaTsKPiA+ID4gPiA+ICsKPiA+ID4g PiA+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMikKPiA+ID4gPiA+ICsJCXJldHVybiAw Owo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoIWNvbm5fc3RhdGUtPmNydGMpCj4gPiA+ID4g PiArCQlyZXR1cm4gMDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJbWFzdGVyID0gaW50ZWxfZHBf bXN0X21hc3Rlcl90cmFuc19nZXQoZW5jb2Rlcik7Cj4gPiA+ID4gPiArCWlmIChtYXN0ZXIgPT0g SU5WQUxJRF9UUkFOU0NPREVSKQo+ID4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gPiArCj4g PiA+ID4gPiArCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLAo+ ID4gPiA+ID4gbmV3X2NydGNfc3RhdGUsCj4gPiA+ID4gPiBpKSB7Cj4gPiA+ID4gPiArCQkvKgo+ ID4gPiA+ID4gKwkJICogY3B1X3RyYW5zY29kZXIgaXMgc2V0IHdoZW4gY29tcHV0aW5nIENSVEMK PiA+ID4gPiA+IHN0YXRlIGlmCj4gPiA+ID4gPiBpdCB3aWxsCj4gPiA+ID4gPiArCQkgKiBiZSBk aXNhYmxlZCBpdCB3aWxsIG5vdCBoYXBwZW4sIHNvIGNoZWNraW5nCj4gPiA+ID4gPiBwaXBlCj4g PiA+ID4gPiBpbnN0ZWFkCj4gPiA+ID4gPiArCQkgKi8KPiA+ID4gPiA+ICsJCWlmIChjcnRjLT5w aXBlICE9IChlbnVtIHBpcGUpbWFzdGVyKQo+ID4gPiA+ID4gKwkJCWNvbnRpbnVlOwo+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gKwkJaWYKPiA+ID4gPiA+ICghZHJtX2F0b21pY19jcnRjX25lZWRzX21v ZGVzZXQoJm5ld19jcnRjX3N0YXRlLQo+ID4gPiA+ID4gPiB1YXBpKSAmJgo+ID4gPiA+ID4gKwkJ ICAgIG5ld19jcnRjX3N0YXRlLT51YXBpLmVuYWJsZSkKPiA+ID4gPiA+ICsJCQljb250aW51ZTsK PiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCXBpcGVfY29uZmlnLT5tc3RfbWFzdGVyX3RyYW5zX3Bl bmRpbmcgPSB0cnVlOwo+ID4gPiA+ID4gKwkJYnJlYWs7Cj4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ICsJcmV0dXJuIDA7Cj4gPiA+ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ ID4gIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyCj4gPiA+ID4gPiAqZW5jb2RlciwKPiA+ID4gPiA+ICAJCQkJICAgICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlCj4gPiA+ID4gPiAqcGlwZV9jb25maWcsCj4gPiA+ID4gPiAgCQkJCSAg ICAgICBzdHJ1Y3QKPiA+ID4gPiA+IGRybV9jb25uZWN0b3Jfc3RhdGUKPiA+ID4gPiA+ICpjb25u X3N0YXRlKQo+ID4gPiA+ID4gQEAgLTE1NCw2ICsxOTUsOTUgQEAgc3RhdGljIGludAo+ID4gPiA+ ID4gaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdAo+ID4gPiA+ID4gaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJaW50ZWxfZGRpX2NvbXB1dGVf bWluX3ZvbHRhZ2VfbGV2ZWwoZGV2X3ByaXYsCj4gPiA+ID4gPiBwaXBlX2NvbmZpZyk7Cj4gPiA+ ID4gPiAgCj4gPiA+ID4gPiArCXJldCA9IGludGVsX2RwX21zdF9tYXN0ZXJfdHJhbnNfY29tcHV0 ZShlbmNvZGVyLAo+ID4gPiA+ID4gcGlwZV9jb25maWcsCj4gPiA+ID4gPiArCQkJCQkJY29ubl9z dGF0ZSk7Cj4gPiA+ID4gPiArCWlmIChyZXQpCj4gPiA+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4g PiA+ID4gKwo+ID4gPiA+ID4gKwlyZXR1cm4gMDsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiArCj4g PiA+ID4gPiArc3RhdGljIGludAo+ID4gPiA+ID4gK2ludGVsX2RwX21zdF9hdG9taWNfbWFzdGVy X3RyYW5zX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yCj4gPiA+ID4gPiAqY29ubmVjdG9yLAo+ ID4gPiA+ID4gKwkJCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUKPiA+ID4gPiA+ICpz dGF0ZSkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLQo+ID4gPiA+ID4gPmRldik7Cj4gPiA+ID4gPiAr CXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm4gPQo+ID4gPiA+ID4gdG9faW50ZWxf Y29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gPiA+ID4gPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpuZXdfY29ubl9zdGF0ZSwKPiA+ID4gPiA+ICpvbGRfY29ubl9zdGF0ZTsKPiA+ID4gPiA+ ICsJc3RydWN0IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5fbGlzdF9pdGVyOwo+ID4gPiA+ ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3J0Y19zdGF0ZTsKPiA+ID4gPiA+ ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ID4gPiA+ID4gKwlzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubl9pdGVyOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8IDEyKQo+ID4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gPiAr Cj4gPiA+ID4gPiArCW5ld19jb25uX3N0YXRlID0KPiA+ID4gPiA+IGRybV9hdG9taWNfZ2V0X25l d19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsCj4gPiA+ID4gPiBjb25uZWN0b3IpOwo+ID4gPiA+ID4g KwlvbGRfY29ubl9zdGF0ZSA9Cj4gPiA+ID4gPiBkcm1fYXRvbWljX2dldF9vbGRfY29ubmVjdG9y X3N0YXRlKHN0YXRlLAo+ID4gPiA+ID4gY29ubmVjdG9yKTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ ICsJaWYgKCFvbGRfY29ubl9zdGF0ZS0+Y3J0YyAmJiAhbmV3X2Nvbm5fc3RhdGUtPmNydGMpCj4g PiA+ID4gPiArCQlyZXR1cm4gMDsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJLyoKPiA+ID4gPiA+ ICsJICogMyBjYXNlcyB0aGF0IG5lZWRzIGJlIGhhbmRsZWQgaGVyZToKPiA+ID4gPiA+ICsJICog LSBjb25uZWN0b3IgZ29pbmcgZnJvbSBkaXNhYmxlZCB0byBlbmFibGVkCj4gPiA+ID4gPiArCSAq IC0gY29ubmVjdG9yIGdvaW5nIGZyb20gZW5hYmxlZCB0byBkaXNhYmxlZDoKPiA+ID4gPiA+ICsJ ICogaWYgdGhpcyB0cmFuc2NvZGVyIHdhcyB0aGUgbWFzdGVyLCBhbGwgc2xhdmVzIG5lZWRzCj4g PiA+ID4gPiBhCj4gPiA+ID4gPiBtb2Rlc2V0Cj4gPiA+ID4gPiArCSAqIC0gY29ubmVjdG9yIGdv aW5nIGZyb20gZW5hYmxlZCB0byBlbmFibGVkIGJ1dCBpdAo+ID4gPiA+ID4gbmVlZHMgYQo+ID4g PiA+ID4gbW9kZXNldDoKPiA+ID4gPiA+ICsJICogaWYgdGhpcyB0cmFuc2NvZGVyIHdhcyB0aGUg bWFzdGVyLCBhbGwgc2xhdmVzIGFsc28KPiA+ID4gPiA+IG5lZWRzIGEKPiA+ID4gPiA+IG1vZGVz ZXQKPiA+ID4gPiA+ICsJICovCj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCS8qIGRpc2FibGVkIC0+ IGVuYWJsZWQgKi8KPiA+ID4gPiA+ICsJaWYgKCFvbGRfY29ubl9zdGF0ZS0+Y3J0YyAmJiBuZXdf Y29ubl9zdGF0ZS0+Y3J0YykKPiA+ID4gPiA+ICsJCXJldHVybiAwOwo+ID4gPiA+ID4gKwo+ID4g PiA+ID4gKwkvKiBlbmFibGVkIC0+IGVuYWJsZWQobW9kZXNldCk/ICovCj4gPiA+ID4gPiArCWlm IChuZXdfY29ubl9zdGF0ZS0+Y3J0Yykgewo+ID4gPiA+ID4gKwkJY3J0Y19zdGF0ZSA9Cj4gPiA+ ID4gPiBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwKPiA+ID4gPiA+IG5ld19j b25uX3N0YXRlLT5jcnRjKTsKPiA+ID4gPiA+ICsJCWlmICghZHJtX2F0b21pY19jcnRjX25lZWRz X21vZGVzZXQoY3J0Y19zdGF0ZSkpCj4gPiA+ID4gPiArCQkJcmV0dXJuIDA7Cj4gPiA+ID4gPiAr CX0KPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJLyogaGFuZGxpbmcgZW5hYmxlZCAtPiBlbmFibGVk KG1vZGVzZXQpIGFuZCBlbmFibGVkIC0+Cj4gPiA+ID4gPiBkaXNhYmxlZAo+ID4gPiA+ID4gKi8K PiA+ID4gPiA+ICsJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0 YXRlLAo+ID4gPiA+ID4gb2xkX2Nvbm5fc3RhdGUtPmNydGMpOwo+ID4gPiA+ID4gKwlpbnRlbF9j cnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICsJLyogSWYgbm90IG1hc3Rlciwgbm90aGluZyBlbHNlIG5lZWRzIHRvIGJlIGhh bmRsZWQgKi8KPiA+ID4gPiA+ICsJaWYgKGludGVsX2Nvbm4tPm1zdF9wb3J0LT5tc3RfbWFzdGVy X3RyYW5zY29kZXIgIT0KPiA+ID4gPiA+ICsJICAgIGludGVsX2NydGNfc3RhdGUtPmNwdV90cmFu c2NvZGVyKQo+ID4gPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCS8q IElzIG1hc3RlciwgbWFyayBhbGwgb3RoZXIgQ1JUQ3MgYXMgbmVlZGluZyBhIG1vZGVzZXQKPiA+ ID4gPiA+ICovCj4gPiA+ID4gPiArCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2luKHN0YXRl LT5kZXYsCj4gPiA+ID4gPiAmY29ubl9saXN0X2l0ZXIpOwo+ID4gPiA+ID4gKwlkcm1fZm9yX2Vh Y2hfY29ubmVjdG9yX2l0ZXIoY29ubl9pdGVyLCAmY29ubl9saXN0X2l0ZXIpCj4gPiA+ID4gPiB7 Cj4gPiA+ID4gPiArCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uX2l0ZXI7Cj4g PiA+ID4gPiArCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9pdGVyX3N0YXRlOwo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwkJaW50ZWxfY29ubl9pdGVyID0KPiA+ID4gPiA+IHRvX2lu dGVsX2Nvbm5lY3Rvcihjb25uX2l0ZXIpOwo+ID4gPiA+ID4gKwkJaWYgKGludGVsX2Nvbm5faXRl ci0+bXN0X3BvcnQgIT0gaW50ZWxfY29ubi0KPiA+ID4gPiA+ID5tc3RfcG9ydCkKPiA+ID4gPiA+ ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCWNvbm5faXRlcl9zdGF0ZSA9 Cj4gPiA+ID4gPiBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsCj4gPiA+ID4g PiArCQkJCQkJCQkKPiA+ID4gPiA+ICBjb25uX2kKPiA+ID4gPiA+IHRlcik7Cj4gPiA+ID4gPiAr CQlpZiAoSVNfRVJSKGNvbm5faXRlcl9zdGF0ZSkpIHsKPiA+ID4gPiA+ICsJCQlkcm1fY29ubmVj dG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5fbGlzdF8KPiA+ID4gPiA+IGl0ZXIpOwo+ID4gPiA+ID4g KwkJCXJldHVybiBQVFJfRVJSKGNvbm5faXRlcl9zdGF0ZSk7Cj4gPiA+ID4gPiArCQl9Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiArCQlpZiAoIWNvbm5faXRlcl9zdGF0ZS0+Y3J0YykKPiA+ID4gPiA+ ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCWNydGNfc3RhdGUgPSBkcm1f YXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLAo+ID4gPiA+ID4gY29ubl9pdGVyX3N0YXRlLT5j cnRjKTsKPiA+ID4gPiA+ICsJCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpIHsKPiA+ID4gPiA+ICsJ CQlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9lbmQoJmNvbm5fbGlzdF8KPiA+ID4gPiA+IGl0ZXIp Owo+ID4gPiA+ID4gKwkJCXJldHVybiBQVFJfRVJSKGNvbm5faXRlcl9zdGF0ZSk7Cj4gPiA+ID4g PiArCQl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCQlpbnRlbF9jcnRjX3N0YXRlID0KPiA+ID4g PiA+IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4gPiA+ID4gPiArCQljcnRjX3N0 YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+ID4gPiA+ID4gKwl9Cj4gPiA+ID4gPiArCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9saXN0X2l0ZXIpOwo+ID4gPiA+ID4gKwo+ID4g PiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiBAQCAt MTc1LDYgKzMwNSwxMCBAQCBpbnRlbF9kcF9tc3RfYXRvbWljX2NoZWNrKHN0cnVjdAo+ID4gPiA+ ID4gZHJtX2Nvbm5lY3Rvcgo+ID4gPiA+ID4gKmNvbm5lY3RvciwKPiA+ID4gPiA+ICAJaWYgKHJl dCkKPiA+ID4gPiA+ICAJCXJldHVybiByZXQ7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiArCXJldCA9 IGludGVsX2RwX21zdF9hdG9taWNfbWFzdGVyX3RyYW5zX2NoZWNrKGNvbm5lY3RvciwKPiA+ID4g PiA+IHN0YXRlKTsKPiA+ID4gPiA+ICsJaWYgKHJldCkKPiA+ID4gPiA+ICsJCXJldHVybiByZXQ7 Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCWlmICghb2xkX2Nvbm5fc3RhdGUtPmNydGMpCj4gPiA+ ID4gPiAgCQlyZXR1cm4gMDsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+IEBAIC0yNTksNiArMzkzLDcg QEAgc3RhdGljIHZvaWQKPiA+ID4gPiA+IGludGVsX21zdF9wb3N0X2Rpc2FibGVfZHAoc3RydWN0 Cj4gPiA+ID4gPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ID4gIAkJaW50ZWxfZHBf c2lua19kcG1zKGludGVsX2RwLAo+ID4gPiA+ID4gRFJNX01PREVfRFBNU19PRkYpOwo+ID4gPiA+ ID4gIAkJaW50ZWxfZGlnX3BvcnQtCj4gPiA+ID4gPiA+YmFzZS5wb3N0X2Rpc2FibGUoJmludGVs X2RpZ19wb3J0LQo+ID4gPiA+ID4gPiBiYXNlLAo+ID4gPiA+ID4gIAkJCQkJCSAgb2xkX2NydGNf c3RhdAo+ID4gPiA+ID4gZSwKPiA+ID4gPiA+IE5VTEwpOwo+ID4gPiA+ID4gKwkJaW50ZWxfZHAt Pm1zdF9tYXN0ZXJfdHJhbnNjb2RlciA9Cj4gPiA+ID4gPiBJTlZBTElEX1RSQU5TQ09ERVI7Cj4g PiA+ID4gPiAgCX0KPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZl IGxpbmtzICVkXG4iLCBpbnRlbF9kcC0KPiA+ID4gPiA+ID5hY3RpdmVfbXN0X2xpbmtzKTsKPiA+ ID4gPiA+IEBAIC0zMTQsOCArNDQ5LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX21zdF9wcmVfZW5h YmxlX2RwKHN0cnVjdAo+ID4gPiA+ID4gaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gPiA+ ICAKPiA+ID4gPiA+ICAJRFJNX0RFQlVHX0tNUygiYWN0aXZlIGxpbmtzICVkXG4iLCBpbnRlbF9k cC0KPiA+ID4gPiA+ID5hY3RpdmVfbXN0X2xpbmtzKTsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+IC0J aWYgKGZpcnN0X21zdF9zdHJlYW0pCj4gPiA+ID4gPiArCWlmIChmaXJzdF9tc3Rfc3RyZWFtKSB7 Cj4gPiA+ID4gPiArCQlXQVJOX09OKGludGVsX2RwLT5tc3RfbWFzdGVyX3RyYW5zY29kZXIgIT0K PiA+ID4gPiA+IElOVkFMSURfVFJBTlNDT0RFUik7Cj4gPiA+ID4gPiArCQlpbnRlbF9kcC0+bXN0 X21hc3Rlcl90cmFuc2NvZGVyID0gcGlwZV9jb25maWctCj4gPiA+ID4gPiA+IGNwdV90cmFuc2Nv ZGVyOwo+ID4gPiA+ID4gIAkJaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1fTU9ERV9E UE1TX09OKTsKPiA+ID4gPiA+ICsJfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gIAlkcm1fZHBfc2Vu ZF9wb3dlcl91cGRvd25fcGh5KCZpbnRlbF9kcC0+bXN0X21nciwKPiA+ID4gPiA+IGNvbm5lY3Rv ci0KPiA+ID4gPiA+ID4gcG9ydCwgdHJ1ZSk7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiBAQCAtNzE3 LDMgKzg1NSwxMiBAQCBpbnRlbF9kcF9tc3RfZW5jb2Rlcl9jbGVhbnVwKHN0cnVjdAo+ID4gPiA+ ID4gaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKPiA+ID4gPiA+ICAJZHJtX2Rw X21zdF90b3BvbG9neV9tZ3JfZGVzdHJveSgmaW50ZWxfZHAtPm1zdF9tZ3IpOwo+ID4gPiA+ID4g IAkvKiBlbmNvZGVycyB3aWxsIGdldCBraWxsZWQgYnkgbm9ybWFsIGNsZWFudXAgKi8KPiA+ID4g PiA+ICB9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArZW51bSB0cmFuc2NvZGVyCj4gPiA+ID4gPiAr aW50ZWxfZHBfbXN0X21hc3Rlcl90cmFuc19nZXQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29kZXIg KmludGVsX21zdCA9Cj4gPiA+ID4gPiBlbmNfdG9fbXN0KCZlbmNvZGVyLQo+ID4gPiA+ID4gPiBi YXNlKTsKPiA+ID4gPiA+ICsJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9tc3Qt PnByaW1hcnktPmRwOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwlyZXR1cm4gaW50ZWxfZHAtPm1z dF9tYXN0ZXJfdHJhbnNjb2RlcjsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuaAo+ID4gPiA+ID4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5oCj4gPiA+ID4gPiBpbmRl eCBmNjYwYWQ4MGRiMDQuLmU2ZjI4YTUxNzE4MiAxMDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgKPiA+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgKPiA+ID4gPiA+IEBAIC03 LDkgKzcsMTEgQEAKPiA+ID4gPiA+ICAjZGVmaW5lIF9fSU5URUxfRFBfTVNUX0hfXwo+ID4gPiA+ ID4gIAo+ID4gPiA+ID4gIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQ7Cj4gPiA+ID4gPiArc3Ry dWN0IGludGVsX2VuY29kZXI7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgaW50IGludGVsX2RwX21z dF9lbmNvZGVyX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydAo+ID4gPiA+ID4gKmludGVs X2RpZ19wb3J0LCBpbnQgY29ubl9pZCk7Cj4gPiA+ID4gPiAgdm9pZCBpbnRlbF9kcF9tc3RfZW5j b2Rlcl9jbGVhbnVwKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQKPiA+ID4gPiA+ICppbnRlbF9k aWdfcG9ydCk7Cj4gPiA+ID4gPiAgaW50IGludGVsX2RwX21zdF9lbmNvZGVyX2FjdGl2ZV9saW5r cyhzdHJ1Y3QKPiA+ID4gPiA+IGludGVsX2RpZ2l0YWxfcG9ydAo+ID4gPiA+ID4gKmludGVsX2Rp Z19wb3J0KTsKPiA+ID4gPiA+ICtlbnVtIHRyYW5zY29kZXIgaW50ZWxfZHBfbXN0X21hc3Rlcl90 cmFuc19nZXQoc3RydWN0Cj4gPiA+ID4gPiBpbnRlbF9lbmNvZGVyCj4gPiA+ID4gPiAqZW5jb2Rl cik7Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgI2VuZGlmIC8qIF9fSU5URUxfRFBfTVNUX0hfXyAq Lwo+ID4gPiA+ID4gLS0gCj4gPiA+ID4gPiAyLjI0LjAKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50 ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4