From mboxrd@z Thu Jan 1 00:00:00 1970 From: skolluku-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: [PATCH v2 1/3] drm/msm/dpu: clean up references of DPU custom bus scaling Date: Thu, 15 Nov 2018 17:52:31 +0530 Message-ID: <6bfd402ccabb6ebf9c3696e27adec3ce@codeaurora.org> References: <20181010092434.853-1-skolluku@codeaurora.org> <20181010092434.853-2-skolluku@codeaurora.org> <20181114154908.GP154160@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181114154908.GP154160@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: devicetree@vger.kernel.org T24gMjAxOC0xMS0xNCAyMToxOSwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFdlZCwgT2N0IDEwLCAy MDE4IGF0IDAyOjU0OjMyUE0gKzA1MzAsIFNyYXZhbnRoaSBLb2xsdWt1ZHVydSB3cm90ZToKPj4g U2luY2UgdGhlIHVwc3RyZWFtIGludGVyY29ubmVjdCBidXMgZnJhbWV3b3JrIGhhcyBsYW5kZWQK Pj4gdXBzdHJlYW0sIHRoZSBleGlzdGluZyByZWZlcmVuY2VzIG9mIGN1c3RvbSBidXMgc2NhbGlu Zwo+PiBuZWVkcyB0byBiZSBjbGVhbmVkIHVwLgo+IAo+IEp1c3QgYSBmZXcgbml0cyBiZWxvdy4K U3VyZSwgd2lsbCBtYWtlIHRoZSBjaGFuZ2VzLgo+IAo+PiAKPj4gQ2hhbmdlcyBpbiB2MjoKPj4g CS0gRml4ZWQgYnVpbGQgZXJyb3IgZHVlIHRvIHBhcnRpYWwgY2xlYW4gdXAKPj4gCj4+IFNpZ25l ZC1vZmYtYnk6IFNyYXZhbnRoaSBLb2xsdWt1ZHVydSA8c2tvbGx1a3VAY29kZWF1cm9yYS5vcmc+ Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5j ICAgIHwgMTU3IAo+PiArKysrKysrKysrLS0tLS0tLS0tLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5oICAgIHwgICA0ICstCj4+ICBkcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgICAgICAgfCAgMTMgKy0KPj4gIGRyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dlcl9oYW5kbGUuYyB8ICA0NyArKy0tLS0t Cj4+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmggfCAg NjggLS0tLS0tLS0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNl LmggICAgICAgIHwgIDIxICstLQo+PiAgNiBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCsp LCAyMjQgZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9jb3JlX3BlcmYuYwo+PiBpbmRleCA0MWM1MTkxZjkwNTYuLjRlZTZmMGRkMTRm NyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NvcmVf cGVyZi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3Bl cmYuYwo+PiBAQCAtOTAsNyArOTAsNiBAQCBzdGF0aWMgdm9pZCBfZHB1X2NvcmVfcGVyZl9jYWxj X2NydGMoc3RydWN0IGRwdV9rbXMgCj4+ICprbXMsCj4+ICAJCXN0cnVjdCBkcHVfY29yZV9wZXJm X3BhcmFtcyAqcGVyZikKPj4gIHsKPj4gIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3Rh dGU7Cj4+IC0JaW50IGk7Cj4+IAo+PiAgCWlmICgha21zIHx8ICFrbXMtPmNhdGFsb2cgfHwgIWNy dGMgfHwgIXN0YXRlIHx8ICFwZXJmKSB7Cj4+ICAJCURQVV9FUlJPUigiaW52YWxpZCBwYXJhbWV0 ZXJzXG4iKTsKPj4gQEAgLTEwMSwzNSArMTAwLDI0IEBAIHN0YXRpYyB2b2lkIF9kcHVfY29yZV9w ZXJmX2NhbGNfY3J0YyhzdHJ1Y3QgCj4+IGRwdV9rbXMgKmttcywKPj4gIAltZW1zZXQocGVyZiwg MCwgc2l6ZW9mKHN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcykpOwo+PiAKPj4gIAlpZiAoIWRw dV9jc3RhdGUtPmJ3X2NvbnRyb2wpIHsKPj4gLQkJZm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9I QU5ETEVfREJVU19JRF9NQVg7IGkrKykgewo+PiAtCQkJcGVyZi0+YndfY3RsW2ldID0ga21zLT5j YXRhbG9nLT5wZXJmLm1heF9id19oaWdoICoKPj4gKwkJcGVyZi0+YndfY3RsID0ga21zLT5jYXRh bG9nLT5wZXJmLm1heF9id19oaWdoICoKPj4gIAkJCQkJMTAwMFVMTDsKPj4gLQkJCXBlcmYtPm1h eF9wZXJfcGlwZV9pYltpXSA9IHBlcmYtPmJ3X2N0bFtpXTsKPj4gLQkJfQo+PiArCQlwZXJmLT5t YXhfcGVyX3BpcGVfaWIgPSBwZXJmLT5id19jdGw7Cj4+ICAJCXBlcmYtPmNvcmVfY2xrX3JhdGUg PSBrbXMtPnBlcmYubWF4X2NvcmVfY2xrX3JhdGU7Cj4+ICAJfSBlbHNlIGlmIChrbXMtPnBlcmYu cGVyZl90dW5lLm1vZGUgPT0gRFBVX1BFUkZfTU9ERV9NSU5JTVVNKSB7Cj4+IC0JCWZvciAoaSA9 IDA7IGkgPCBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKPj4gLQkJCXBlcmYt PmJ3X2N0bFtpXSA9IDA7Cj4+IC0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbaV0gPSAwOwo+PiAt CQl9Cj4+ICsJCXBlcmYtPmJ3X2N0bCA9IDA7Cj4+ICsJCXBlcmYtPm1heF9wZXJfcGlwZV9pYiA9 IDA7Cj4+ICAJCXBlcmYtPmNvcmVfY2xrX3JhdGUgPSAwOwo+PiAgCX0gZWxzZSBpZiAoa21zLT5w ZXJmLnBlcmZfdHVuZS5tb2RlID09IERQVV9QRVJGX01PREVfRklYRUQpIHsKPj4gLQkJZm9yIChp ID0gMDsgaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewo+PiAtCQkJcGVy Zi0+YndfY3RsW2ldID0ga21zLT5wZXJmLmZpeF9jb3JlX2FiX3ZvdGU7Cj4+IC0JCQlwZXJmLT5t YXhfcGVyX3BpcGVfaWJbaV0gPSBrbXMtPnBlcmYuZml4X2NvcmVfaWJfdm90ZTsKPj4gLQkJfQo+ PiArCQlwZXJmLT5id19jdGwgPSBrbXMtPnBlcmYuZml4X2NvcmVfYWJfdm90ZTsKPj4gKwkJcGVy Zi0+bWF4X3Blcl9waXBlX2liID0ga21zLT5wZXJmLmZpeF9jb3JlX2liX3ZvdGU7Cj4+ICAJCXBl cmYtPmNvcmVfY2xrX3JhdGUgPSBrbXMtPnBlcmYuZml4X2NvcmVfY2xrX3JhdGU7Cj4+ICAJfQo+ PiAKPj4gIAlEUFVfREVCVUcoCj4+IC0JCSJjcnRjPSVkIGNsa19yYXRlPSVsbHUgY29yZV9pYj0l bGx1IGNvcmVfYWI9JWxsdSBsbGNjX2liPSVsbHUgCj4+IGxsY2NfYWI9JWxsdSBtZW1faWI9JWxs dSBtZW1fYWI9JWxsdVxuIiwKPj4gKwkJImNydGM9JWQgY2xrX3JhdGU9JWxsdSBjb3JlX2liPSVs bHUgY29yZV9hYj0lbGx1XG4iLAo+PiAgCQkJY3J0Yy0+YmFzZS5pZCwgcGVyZi0+Y29yZV9jbGtf cmF0ZSwKPj4gLQkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltEUFVfUE9XRVJfSEFORExFX0RCVVNf SURfTU5PQ10sCj4+IC0JCQlwZXJmLT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01O T0NdLAo+PiAtCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liW0RQVV9QT1dFUl9IQU5ETEVfREJVU19J RF9MTENDXSwKPj4gLQkJCXBlcmYtPmJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExD Q10sCj4+IC0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lE X0VCSV0sCj4+IC0JCQlwZXJmLT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSV0p Owo+PiArCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liLCBwZXJmLT5id19jdGwpOwo+PiAgfQo+PiAK Pj4gIGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ PiBAQCAtMTQyLDcgKzEzMCw2IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2soc3RydWN0 IGRybV9jcnRjIAo+PiAqY3J0YywKPj4gIAlzdHJ1Y3QgZHB1X2NydGNfc3RhdGUgKmRwdV9jc3Rh dGU7Cj4+ICAJc3RydWN0IGRybV9jcnRjICp0bXBfY3J0YzsKPj4gIAlzdHJ1Y3QgZHB1X2ttcyAq a21zOwo+PiAtCWludCBpOwo+PiAKPj4gIAlpZiAoIWNydGMgfHwgIXN0YXRlKSB7Cj4+ICAJCURQ VV9FUlJPUigiaW52YWxpZCBjcnRjXG4iKTsKPj4gQEAgLTE2NCwzMSArMTUxLDI4IEBAIGludCBk cHVfY29yZV9wZXJmX2NydGNfY2hlY2soc3RydWN0IGRybV9jcnRjIAo+PiAqY3J0YywKPj4gIAkv KiBvYnRhaW4gbmV3IHZhbHVlcyAqLwo+PiAgCV9kcHVfY29yZV9wZXJmX2NhbGNfY3J0YyhrbXMs IGNydGMsIHN0YXRlLCAmZHB1X2NzdGF0ZS0+bmV3X3BlcmYpOwo+PiAKPj4gLQlmb3IgKGkgPSBE UFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQzsKPj4gLQkJCWkgPCBEUFVfUE9XRVJfSEFORExF X0RCVVNfSURfTUFYOyBpKyspIHsKPj4gLQkJYndfc3VtX29mX2ludGZzID0gZHB1X2NzdGF0ZS0+ bmV3X3BlcmYuYndfY3RsW2ldOwo+PiAtCQljdXJyX2NsaWVudF90eXBlID0gZHB1X2NydGNfZ2V0 X2NsaWVudF90eXBlKGNydGMpOwo+PiArCWJ3X3N1bV9vZl9pbnRmcyA9IGRwdV9jc3RhdGUtPm5l d19wZXJmLmJ3X2N0bDsKPj4gKwljdXJyX2NsaWVudF90eXBlID0gZHB1X2NydGNfZ2V0X2NsaWVu dF90eXBlKGNydGMpOwo+PiAKPj4gLQkJZHJtX2Zvcl9lYWNoX2NydGModG1wX2NydGMsIGNydGMt PmRldikgewo+PiAtCQkJaWYgKF9kcHVfY29yZV9wZXJmX2NydGNfaXNfcG93ZXJfb24odG1wX2Ny dGMpICYmCj4+IC0JCQkgICAgKGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZSh0bXBfY3J0YykgPT0K Pj4gLQkJCQkJICAgIGN1cnJfY2xpZW50X3R5cGUpICYmCj4+IC0JCQkgICAgKHRtcF9jcnRjICE9 IGNydGMpKSB7Cj4+IC0JCQkJc3RydWN0IGRwdV9jcnRjX3N0YXRlICp0bXBfY3N0YXRlID0KPj4g LQkJCQkJdG9fZHB1X2NydGNfc3RhdGUodG1wX2NydGMtPnN0YXRlKTsKPj4gLQo+PiAtCQkJCURQ VV9ERUJVRygiY3J0YzolZCBidzolbGx1IGN0cmw6JWRcbiIsCj4+IC0JCQkJCXRtcF9jcnRjLT5i YXNlLmlkLAo+PiAtCQkJCQl0bXBfY3N0YXRlLT5uZXdfcGVyZi5id19jdGxbaV0sCj4+IC0JCQkJ CXRtcF9jc3RhdGUtPmJ3X2NvbnRyb2wpOwo+PiAtCQkJCS8qCj4+IC0JCQkJICogRm9yIGJ3IGNo ZWNrIG9ubHkgdXNlIHRoZSBidyBpZiB0aGUKPj4gLQkJCQkgKiBhdG9taWMgcHJvcGVydHkgaGFz IGJlZW4gYWxyZWFkeSBzZXQKPj4gLQkJCQkgKi8KPj4gLQkJCQlpZiAodG1wX2NzdGF0ZS0+Yndf Y29udHJvbCkKPj4gLQkJCQkJYndfc3VtX29mX2ludGZzICs9Cj4+IC0JCQkJCQl0bXBfY3N0YXRl LT5uZXdfcGVyZi5id19jdGxbaV07Cj4+IC0JCQl9Cj4+ICsJZHJtX2Zvcl9lYWNoX2NydGModG1w X2NydGMsIGNydGMtPmRldikgewo+PiArCQlpZiAoX2RwdV9jb3JlX3BlcmZfY3J0Y19pc19wb3dl cl9vbih0bXBfY3J0YykgJiYKPj4gKwkJICAgIChkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUodG1w X2NydGMpID09Cj4+ICsJCQkJICAgIGN1cnJfY2xpZW50X3R5cGUpICYmCj4gCj4gQ2FuIGdvIG9u IG9uZSBsaW5lIG5vdwo+IAo+PiArCQkgICAgKHRtcF9jcnRjICE9IGNydGMpKSB7Cj4+ICsJCQlz dHJ1Y3QgZHB1X2NydGNfc3RhdGUgKnRtcF9jc3RhdGUgPQo+PiArCQkJCXRvX2RwdV9jcnRjX3N0 YXRlKHRtcF9jcnRjLT5zdGF0ZSk7Cj4+ICsKPj4gKwkJCURQVV9ERUJVRygiY3J0YzolZCBidzol bGx1IGN0cmw6JWRcbiIsCj4+ICsJCQkJdG1wX2NydGMtPmJhc2UuaWQsCj4+ICsJCQkJdG1wX2Nz dGF0ZS0+bmV3X3BlcmYuYndfY3RsLAo+PiArCQkJCXRtcF9jc3RhdGUtPmJ3X2NvbnRyb2wpOwo+ PiArCQkJLyoKPj4gKwkJCSAqIEZvciBidyBjaGVjayBvbmx5IHVzZSB0aGUgYncgaWYgdGhlCj4+ ICsJCQkgKiBhdG9taWMgcHJvcGVydHkgaGFzIGJlZW4gYWxyZWFkeSBzZXQKPj4gKwkJCSAqLwo+ PiArCQkJaWYgKHRtcF9jc3RhdGUtPmJ3X2NvbnRyb2wpCj4+ICsJCQkJYndfc3VtX29mX2ludGZz ICs9Cj4+ICsJCQkJCXRtcF9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bDsKPiAKPiBBbHNvIGZpdHMg b24gYSBsaW5lIG5vdwo+IAo+PiAgCQl9Cj4+IAo+PiAgCQkvKiBjb252ZXJ0IGJhbmR3aWR0aCB0 byBrYiAqLwo+PiBAQCAtMjE5LDkgKzIwMyw5IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hl Y2soc3RydWN0IGRybV9jcnRjIAo+PiAqY3J0YywKPj4gIH0KPj4gCj4+ICBzdGF0aWMgaW50IF9k cHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1cyhzdHJ1Y3QgZHB1X2ttcyAqa21zLAo+PiAtCQlz dHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUzMiBidXNfaWQpCj4+ICsJCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKPj4gIHsKPj4gLQlzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMgcGVyZiA9IHsgeyAw IH0gfTsKPj4gKwlzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMgcGVyZiA9IHsgMCB9Owo+PiAg CWVudW0gZHB1X2NydGNfY2xpZW50X3R5cGUgY3Vycl9jbGllbnRfdHlwZQo+PiAgCQkJCQk9IGRw dV9jcnRjX2dldF9jbGllbnRfdHlwZShjcnRjKTsKPj4gIAlzdHJ1Y3QgZHJtX2NydGMgKnRtcF9j cnRjOwo+PiBAQCAtMjM0LDEzICsyMTgsMTIgQEAgc3RhdGljIGludCBfZHB1X2NvcmVfcGVyZl9j cnRjX3VwZGF0ZV9idXMoc3RydWN0IAo+PiBkcHVfa21zICprbXMsCj4+ICAJCQkJZHB1X2NydGNf Z2V0X2NsaWVudF90eXBlKHRtcF9jcnRjKSkgewo+PiAgCQkJZHB1X2NzdGF0ZSA9IHRvX2RwdV9j cnRjX3N0YXRlKHRtcF9jcnRjLT5zdGF0ZSk7Cj4+IAo+PiAtCQkJcGVyZi5tYXhfcGVyX3BpcGVf aWJbYnVzX2lkXSA9Cj4+IC0JCQkJbWF4KHBlcmYubWF4X3Blcl9waXBlX2liW2J1c19pZF0sCj4+ IC0JCQkJZHB1X2NzdGF0ZS0+bmV3X3BlcmYubWF4X3Blcl9waXBlX2liW2J1c19pZF0pOwo+PiAr CQkJcGVyZi5tYXhfcGVyX3BpcGVfaWIgPQo+PiArCQkJCW1heChwZXJmLm1heF9wZXJfcGlwZV9p YiwKPj4gKwkJCQlkcHVfY3N0YXRlLT5uZXdfcGVyZi5tYXhfcGVyX3BpcGVfaWIpOwo+PiAKPj4g LQkJCURQVV9ERUJVRygiY3J0Yz0lZCBidXNfaWQ9JWQgYnc9JWxsdVxuIiwKPj4gLQkJCQl0bXBf Y3J0Yy0+YmFzZS5pZCwgYnVzX2lkLAo+PiAtCQkJCWRwdV9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0 bFtidXNfaWRdKTsKPj4gKwkJCURQVV9ERUJVRygiY3J0Yz0lZCBidz0lbGx1XG4iLAo+PiArCQkJ CXRtcF9jcnRjLT5iYXNlLmlkLCBkcHVfY3N0YXRlLT5uZXdfcGVyZi5id19jdGwpOwo+PiAgCQl9 Cj4+ICAJfQo+PiAgCXJldHVybiByZXQ7Cj4+IEBAIC0yNjAsNyArMjQzLDYgQEAgdm9pZCBkcHVf Y29yZV9wZXJmX2NydGNfcmVsZWFzZV9idyhzdHJ1Y3QgZHJtX2NydGMgCj4+ICpjcnRjKQo+PiAg CXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7Cj4+ICAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpk cHVfY3N0YXRlOwo+PiAgCXN0cnVjdCBkcHVfa21zICprbXM7Cj4+IC0JaW50IGk7Cj4+IAo+PiAg CWlmICghY3J0Yykgewo+PiAgCQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xuIik7Cj4+IEBAIC0y OTYsMTAgKzI3OCw4IEBAIHZvaWQgZHB1X2NvcmVfcGVyZl9jcnRjX3JlbGVhc2VfYncoc3RydWN0 IAo+PiBkcm1fY3J0YyAqY3J0YykKPj4gIAlpZiAoa21zLT5wZXJmLmVuYWJsZV9id19yZWxlYXNl KSB7Cj4+ICAJCXRyYWNlX2RwdV9jbWRfcmVsZWFzZV9idyhjcnRjLT5iYXNlLmlkKTsKPj4gIAkJ RFBVX0RFQlVHKCJSZWxlYXNlIEJXIGNydGM9JWRcbiIsIGNydGMtPmJhc2UuaWQpOwo+PiAtCQlm b3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7Cj4+IC0J CQlkcHVfY3J0Yy0+Y3VyX3BlcmYuYndfY3RsW2ldID0gMDsKPj4gLQkJCV9kcHVfY29yZV9wZXJm X2NydGNfdXBkYXRlX2J1cyhrbXMsIGNydGMsIGkpOwo+PiAtCQl9Cj4+ICsJCWRwdV9jcnRjLT5j dXJfcGVyZi5id19jdGwgPSAwOwo+PiArCQlfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMo a21zLCBjcnRjKTsKPj4gIAl9Cj4+ICB9Cj4+IAo+PiBAQCAtMzQyLDExICszMjIsMTAgQEAgaW50 IGRwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGUoc3RydWN0IGRybV9jcnRjIAo+PiAqY3J0YywKPj4g IAkJaW50IHBhcmFtc19jaGFuZ2VkLCBib29sIHN0b3BfcmVxKQo+PiAgewo+PiAgCXN0cnVjdCBk cHVfY29yZV9wZXJmX3BhcmFtcyAqbmV3LCAqb2xkOwo+PiAtCWludCB1cGRhdGVfYnVzID0gMCwg dXBkYXRlX2NsayA9IDA7Cj4+ICsJYm9vbCB1cGRhdGVfYnVzID0gZmFsc2UsIHVwZGF0ZV9jbGsg PSBmYWxzZTsKPj4gIAl1NjQgY2xrX3JhdGUgPSAwOwo+PiAgCXN0cnVjdCBkcHVfY3J0YyAqZHB1 X2NydGM7Cj4+ICAJc3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlOwo+PiAtCWludCBp Owo+PiAgCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Cj4+ICAJc3RydWN0IGRwdV9rbXMg KmttczsKPj4gIAlpbnQgcmV0Owo+PiBAQCAtMzczLDcgKzM1Miw2IEBAIGludCBkcHVfY29yZV9w ZXJmX2NydGNfdXBkYXRlKHN0cnVjdCBkcm1fY3J0YyAKPj4gKmNydGMsCj4+ICAJbmV3ID0gJmRw dV9jc3RhdGUtPm5ld19wZXJmOwo+PiAKPj4gIAlpZiAoX2RwdV9jb3JlX3BlcmZfY3J0Y19pc19w b3dlcl9vbihjcnRjKSAmJiAhc3RvcF9yZXEpIHsKPj4gLQkJZm9yIChpID0gMDsgaSA8IERQVV9Q T1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewo+PiAgCQkJLyoKPj4gIAkJCSAqIGNhc2Vz IGZvciBidXMgYmFuZHdpZHRoIHVwZGF0ZS4KPj4gIAkJCSAqIDEuIG5ldyBiYW5kd2lkdGggdm90 ZSAtICJhYiBvciBpYiB2b3RlIiBpcyBoaWdoZXIKPj4gQEAgLTM4MSwyMyArMzU5LDIyIEBAIGlu dCBkcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlKHN0cnVjdCBkcm1fY3J0YyAKPj4gKmNydGMsCj4+ ICAJCQkgKiAyLiBuZXcgYmFuZHdpZHRoIHZvdGUgLSAiYWIgb3IgaWIgdm90ZSIgaXMgbG93ZXIK Pj4gIAkJCSAqICAgIHRoYW4gY3VycmVudCB2b3RlIGF0IGVuZCBvZiBjb21taXQgb3Igc3RvcC4K Pj4gIAkJCSAqLwo+PiAtCQkJaWYgKChwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3RsW2ld ID4KPj4gLQkJCQkJCW9sZC0+YndfY3RsW2ldKSB8fAo+PiAtCQkJCSAgKG5ldy0+bWF4X3Blcl9w aXBlX2liW2ldID4KPj4gLQkJCQkJCW9sZC0+bWF4X3Blcl9waXBlX2liW2ldKSkpIHx8Cj4+IC0J CQkgICAgKCFwYXJhbXNfY2hhbmdlZCAmJiAoKG5ldy0+YndfY3RsW2ldIDwKPj4gLQkJCQkJCW9s ZC0+YndfY3RsW2ldKSB8fAo+PiAtCQkJCSAgKG5ldy0+bWF4X3Blcl9waXBlX2liW2ldIDwKPj4g LQkJCQkJCW9sZC0+bWF4X3Blcl9waXBlX2liW2ldKSkpKSB7Cj4+ICsJCQlpZiAoKHBhcmFtc19j aGFuZ2VkICYmICgobmV3LT5id19jdGwgPgo+PiArCQkJCQkJb2xkLT5id19jdGwpIHx8Cj4+ICsJ CQkJICAobmV3LT5tYXhfcGVyX3BpcGVfaWIgPgo+PiArCQkJCQkJb2xkLT5tYXhfcGVyX3BpcGVf aWIpKSkgfHwKPj4gKwkJCSAgICAoIXBhcmFtc19jaGFuZ2VkICYmICgobmV3LT5id19jdGwgPAo+ PiArCQkJCQkJb2xkLT5id19jdGwpIHx8Cj4+ICsJCQkJICAobmV3LT5tYXhfcGVyX3BpcGVfaWIg PAo+PiArCQkJCQkJb2xkLT5tYXhfcGVyX3BpcGVfaWIpKSkpIHsKPiAKPiBZb3UgY2FuIGNvbmRl bnNlIHRoaXMgYnkgam9pbmluZyBzb21lIGxpbmVzIHRvZ2V0aGVyLiBCb251cyBwb2ludHMgaWYg Cj4geW91IGNhbgo+IHNpbXBsaWZ5IGl0IGZ1cnRoZXIuCj4gCj4+ICAJCQkJRFBVX0RFQlVHKAo+ PiAgCQkJCQkiY3J0Yz0lZCBwPSVkIG5ld19idz0lbGx1LG9sZF9idz0lbGx1XG4iLAo+PiAgCQkJ CQljcnRjLT5iYXNlLmlkLCBwYXJhbXNfY2hhbmdlZCwKPj4gLQkJCQkJbmV3LT5id19jdGxbaV0s IG9sZC0+YndfY3RsW2ldKTsKPj4gLQkJCQlvbGQtPmJ3X2N0bFtpXSA9IG5ldy0+YndfY3RsW2ld Owo+PiAtCQkJCW9sZC0+bWF4X3Blcl9waXBlX2liW2ldID0KPj4gLQkJCQkJCW5ldy0+bWF4X3Bl cl9waXBlX2liW2ldOwo+PiAtCQkJCXVwZGF0ZV9idXMgfD0gQklUKGkpOwo+PiAtCQkJfQo+PiAr CQkJCQluZXctPmJ3X2N0bCwgb2xkLT5id19jdGwpOwo+PiArCQkJCW9sZC0+YndfY3RsID0gbmV3 LT5id19jdGw7Cj4+ICsJCQkJb2xkLT5tYXhfcGVyX3BpcGVfaWIgPQo+PiArCQkJCQkJbmV3LT5t YXhfcGVyX3BpcGVfaWI7Cj4gCj4gRml0cyBvbiBvbmUgbGluZSBub3cKPiAKPj4gKwkJCQl1cGRh dGVfYnVzID0gdHJ1ZTsKPj4gIAkJfQo+PiAKPj4gIAkJaWYgKChwYXJhbXNfY2hhbmdlZCAmJgo+ PiBAQCAtNDA1LDMwICszODIsMjYgQEAgaW50IGRwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGUoc3Ry dWN0IGRybV9jcnRjIAo+PiAqY3J0YywKPj4gIAkJCQkoIXBhcmFtc19jaGFuZ2VkICYmCj4+ICAJ CQkJKG5ldy0+Y29yZV9jbGtfcmF0ZSA8IG9sZC0+Y29yZV9jbGtfcmF0ZSkpKSB7Cj4+ICAJCQlv bGQtPmNvcmVfY2xrX3JhdGUgPSBuZXctPmNvcmVfY2xrX3JhdGU7Cj4+IC0JCQl1cGRhdGVfY2xr ID0gMTsKPj4gKwkJCXVwZGF0ZV9jbGsgPSB0cnVlOwo+PiAgCQl9Cj4+ICAJfSBlbHNlIHsKPj4g IAkJRFBVX0RFQlVHKCJjcnRjPSVkIGRpc2FibGVcbiIsIGNydGMtPmJhc2UuaWQpOwo+PiAgCQlt ZW1zZXQob2xkLCAwLCBzaXplb2YoKm9sZCkpOwo+PiAgCQltZW1zZXQobmV3LCAwLCBzaXplb2Yo Km5ldykpOwo+PiAtCQl1cGRhdGVfYnVzID0gfjA7Cj4+IC0JCXVwZGF0ZV9jbGsgPSAxOwo+PiAr CQl1cGRhdGVfYnVzID0gdHJ1ZTsKPj4gKwkJdXBkYXRlX2NsayA9IHRydWU7Cj4+ICAJfQo+PiAr Cj4+ICAJdHJhY2VfZHB1X3BlcmZfY3J0Y191cGRhdGUoY3J0Yy0+YmFzZS5pZCwKPj4gLQkJCQlu ZXctPmJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQ10sCj4+IC0JCQkJbmV3LT5i d19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0NdLAo+PiAtCQkJCW5ldy0+YndfY3Rs W0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkldLAo+PiAtCQkJCW5ldy0+Y29yZV9jbGtfcmF0 ZSwgc3RvcF9yZXEsCj4+IC0JCQkJdXBkYXRlX2J1cywgdXBkYXRlX2Nsayk7Cj4+IC0KPj4gLQlm b3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7Cj4+IC0J CWlmICh1cGRhdGVfYnVzICYgQklUKGkpKSB7Cj4+IC0JCQlyZXQgPSBfZHB1X2NvcmVfcGVyZl9j cnRjX3VwZGF0ZV9idXMoa21zLCBjcnRjLCBpKTsKPj4gLQkJCWlmIChyZXQpIHsKPj4gLQkJCQlE UFVfRVJST1IoImNydGMtJWQ6IGZhaWxlZCB0byB1cGRhdGUgYncgdm90ZSBmb3IgYnVzLSVkXG4i LAo+PiAtCQkJCQkgIGNydGMtPmJhc2UuaWQsIGkpOwo+PiAtCQkJCXJldHVybiByZXQ7Cj4+IC0J CQl9Cj4+ICsJCQkJbmV3LT5id19jdGwsIG5ldy0+Y29yZV9jbGtfcmF0ZSwKPj4gKwkJCQlzdG9w X3JlcSwgdXBkYXRlX2J1cywgdXBkYXRlX2Nsayk7Cj4+ICsKPj4gKwlpZiAodXBkYXRlX2J1cykg ewo+PiArCQlyZXQgPSBfZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZV9idXMoa21zLCBjcnRjKTsK Pj4gKwkJaWYgKHJldCkgewo+PiArCQkJRFBVX0VSUk9SKCJjcnRjLSVkOiBmYWlsZWQgdG8gdXBk YXRlIGJ1cyBidyB2b3RlXG4iLAo+PiArCQkJCSAgY3J0Yy0+YmFzZS5pZCk7Cj4+ICsJCQlyZXR1 cm4gcmV0Owo+PiAgCQl9Cj4+ICAJfQo+PiAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgKPj4gaW5kZXggZmJjYmUwYzc1MjdhLi4wZmIyNzY5 MjlkYzUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j b3JlX3BlcmYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29y ZV9wZXJmLmgKPj4gQEAgLTMwLDggKzMwLDggQEAKPj4gICAqIEBjb3JlX2Nsa19yYXRlOiBjb3Jl IGNsb2NrIHJhdGUgcmVxdWVzdAo+PiAgICovCj4+ICBzdHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJh bXMgewo+PiAtCXU2NCBtYXhfcGVyX3BpcGVfaWJbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01B WF07Cj4+IC0JdTY0IGJ3X2N0bFtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYXTsKPj4gKwl1 NjQgbWF4X3Blcl9waXBlX2liOwo+PiArCXU2NCBid19jdGw7Cj4+ICAJdTY0IGNvcmVfY2xrX3Jh dGU7Cj4+ICB9Owo+PiAKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jcnRjLmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Ny dGMuYwo+PiBpbmRleCBjNWJhNzUzZDQ0MWMuLjg0MTQ3NmQ3N2Y1YyAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4+IEBAIC0xMzczLDIxICsxMzczLDE0 IEBAIHN0YXRpYyBpbnQgZHB1X2NydGNfZGVidWdmc19zdGF0ZV9zaG93KHN0cnVjdCAKPj4gc2Vx X2ZpbGUgKnMsIHZvaWQgKnYpCj4+ICB7Cj4+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gKHN0 cnVjdCBkcm1fY3J0YyAqKSBzLT5wcml2YXRlOwo+PiAgCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2Ny dGMgPSB0b19kcHVfY3J0YyhjcnRjKTsKPj4gLQlpbnQgaTsKPj4gCj4+ICAJc2VxX3ByaW50Zihz LCAiY2xpZW50IHR5cGU6ICVkXG4iLCBkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUoY3J0YykpOwo+ PiAgCXNlcV9wcmludGYocywgImludGZfbW9kZTogJWRcbiIsIGRwdV9jcnRjX2dldF9pbnRmX21v ZGUoY3J0YykpOwo+PiAgCXNlcV9wcmludGYocywgImNvcmVfY2xrX3JhdGU6ICVsbHVcbiIsCj4+ ICAJCQlkcHVfY3J0Yy0+Y3VyX3BlcmYuY29yZV9jbGtfcmF0ZSk7Cj4+IC0JZm9yIChpID0gRFBV X1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0M7Cj4+IC0JCQlpIDwgRFBVX1BPV0VSX0hBTkRMRV9E QlVTX0lEX01BWDsgaSsrKSB7Cj4+IC0JCXNlcV9wcmludGYocywgImJ3X2N0bFslc106ICVsbHVc biIsCj4+IC0JCQkJZHB1X3Bvd2VyX2hhbmRsZV9nZXRfZGJ1c19uYW1lKGkpLAo+PiAtCQkJCWRw dV9jcnRjLT5jdXJfcGVyZi5id19jdGxbaV0pOwo+PiAtCQlzZXFfcHJpbnRmKHMsICJtYXhfcGVy X3BpcGVfaWJbJXNdOiAlbGx1XG4iLAo+PiAtCQkJCWRwdV9wb3dlcl9oYW5kbGVfZ2V0X2RidXNf bmFtZShpKSwKPj4gLQkJCQlkcHVfY3J0Yy0+Y3VyX3BlcmYubWF4X3Blcl9waXBlX2liW2ldKTsK Pj4gLQl9Cj4+ICsJc2VxX3ByaW50ZihzLCAiYndfY3RsOiAlbGx1XG4iLCBkcHVfY3J0Yy0+Y3Vy X3BlcmYuYndfY3RsKTsKPj4gKwlzZXFfcHJpbnRmKHMsICJtYXhfcGVyX3BpcGVfaWI6ICVsbHVc biIsCj4+ICsJCQkJZHB1X2NydGMtPmN1cl9wZXJmLm1heF9wZXJfcGlwZV9pYik7Cj4+IAo+PiAg CXJldHVybiAwOwo+PiAgfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9wb3dlcl9oYW5kbGUuYwo+PiBpbmRleCBmYzE0MTE2Nzg5ZjIuLmQ1OGQwMTU0NDcz MSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2Vy X2hhbmRsZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9wb3dl cl9oYW5kbGUuYwo+PiBAQCAtMjQsMjAgKzI0LDYgQEAKPj4gICNpbmNsdWRlICJkcHVfcG93ZXJf aGFuZGxlLmgiCj4+ICAjaW5jbHVkZSAiZHB1X3RyYWNlLmgiCj4+IAo+PiAtc3RhdGljIGNvbnN0 IGNoYXIgKmRhdGFfYnVzX25hbWVbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWF0gPSB7Cj4+ IC0JW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DXSA9ICJxY29tLGRwdS1kYXRhLWJ1cyIs Cj4+IC0JW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDXSA9ICJxY29tLGRwdS1sbGNjLWJ1 cyIsCj4+IC0JW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkldID0gInFjb20sZHB1LWViaS1i dXMiLAo+PiAtfTsKPj4gLQo+PiAtY29uc3QgY2hhciAqZHB1X3Bvd2VyX2hhbmRsZV9nZXRfZGJ1 c19uYW1lKHUzMiBidXNfaWQpCj4+IC17Cj4+IC0JaWYgKGJ1c19pZCA8IERQVV9QT1dFUl9IQU5E TEVfREJVU19JRF9NQVgpCj4+IC0JCXJldHVybiBkYXRhX2J1c19uYW1lW2J1c19pZF07Cj4+IC0K Pj4gLQlyZXR1cm4gTlVMTDsKPj4gLX0KPj4gLQo+PiAgc3RhdGljIHZvaWQgZHB1X3Bvd2VyX2V2 ZW50X3RyaWdnZXJfbG9ja2VkKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlIAo+PiAqcGhhbmRsZSwK Pj4gIAkJdTMyIGV2ZW50X3R5cGUpCj4+ICB7Cj4+IEBAIC02Niw3ICs1Miw2IEBAIHN0cnVjdCBk cHVfcG93ZXJfY2xpZW50ICpkcHVfcG93ZXJfY2xpZW50X2NyZWF0ZSgKPj4gCj4+ICAJbXV0ZXhf bG9jaygmcGhhbmRsZS0+cGhhbmRsZV9sb2NrKTsKPj4gIAlzdHJsY3B5KGNsaWVudC0+bmFtZSwg Y2xpZW50X25hbWUsIE1BWF9DTElFTlRfTkFNRV9MRU4pOwo+PiAtCWNsaWVudC0+dXNlY2FzZV9u ZHggPSBWT1RFX0lOREVYX0RJU0FCTEU7Cj4+ICAJY2xpZW50LT5pZCA9IGlkOwo+PiAgCWNsaWVu dC0+YWN0aXZlID0gdHJ1ZTsKPj4gIAlwcl9kZWJ1ZygiY2xpZW50ICVzIGNyZWF0ZWQ6JXBLIGlk IDolZFxuIiwgY2xpZW50X25hbWUsCj4+IEBAIC0xNDMsOCArMTI4LDYgQEAgaW50IGRwdV9wb3dl cl9yZXNvdXJjZV9lbmFibGUoc3RydWN0IAo+PiBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAo+ PiAgCXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpwY2xpZW50LCBib29sIGVuYWJsZSkKPj4gIHsK Pj4gIAlib29sIGNoYW5nZWQgPSBmYWxzZTsKPj4gLQl1MzIgbWF4X3VzZWNhc2VfbmR4ID0gVk9U RV9JTkRFWF9ESVNBQkxFLCBwcmV2X3VzZWNhc2VfbmR4Owo+PiAtCXN0cnVjdCBkcHVfcG93ZXJf Y2xpZW50ICpjbGllbnQ7Cj4+ICAJdTMyIGV2ZW50X3R5cGU7Cj4+IAo+PiAgCWlmICghcGhhbmRs ZSB8fCAhcGNsaWVudCkgewo+PiBAQCAtMTUzLDMxICsxMzYsMTkgQEAgaW50IGRwdV9wb3dlcl9y ZXNvdXJjZV9lbmFibGUoc3RydWN0IAo+PiBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAo+PiAg CX0KPj4gCj4+ICAJbXV0ZXhfbG9jaygmcGhhbmRsZS0+cGhhbmRsZV9sb2NrKTsKPj4gLQlpZiAo ZW5hYmxlKQo+PiArCWlmIChlbmFibGUpIHsKPj4gIAkJcGNsaWVudC0+cmVmY291bnQrKzsKPj4g LQllbHNlIGlmIChwY2xpZW50LT5yZWZjb3VudCkKPj4gKwkJaWYgKHBjbGllbnQtPnJlZmNvdW50 ID09IDEpCj4+ICsJCQljaGFuZ2VkID0gdHJ1ZTsKPj4gKwl9IGVsc2UgaWYgKHBjbGllbnQtPnJl ZmNvdW50KSB7Cj4+ICAJCXBjbGllbnQtPnJlZmNvdW50LS07Cj4+IC0KPj4gLQlpZiAocGNsaWVu dC0+cmVmY291bnQpCj4+IC0JCXBjbGllbnQtPnVzZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9MT1c7 Cj4+IC0JZWxzZQo+PiAtCQlwY2xpZW50LT51c2VjYXNlX25keCA9IFZPVEVfSU5ERVhfRElTQUJM RTsKPj4gLQo+PiAtCWxpc3RfZm9yX2VhY2hfZW50cnkoY2xpZW50LCAmcGhhbmRsZS0+cG93ZXJf Y2xpZW50X2NsaXN0LCBsaXN0KSB7Cj4+IC0JCWlmIChjbGllbnQtPnVzZWNhc2VfbmR4IDwgVk9U RV9JTkRFWF9NQVggJiYKPj4gLQkJICAgIGNsaWVudC0+dXNlY2FzZV9uZHggPiBtYXhfdXNlY2Fz ZV9uZHgpCj4+IC0JCQltYXhfdXNlY2FzZV9uZHggPSBjbGllbnQtPnVzZWNhc2VfbmR4Owo+PiAt CX0KPj4gLQo+PiAtCWlmIChwaGFuZGxlLT5jdXJyZW50X3VzZWNhc2VfbmR4ICE9IG1heF91c2Vj YXNlX25keCkgewo+PiAtCQljaGFuZ2VkID0gdHJ1ZTsKPj4gLQkJcHJldl91c2VjYXNlX25keCA9 IHBoYW5kbGUtPmN1cnJlbnRfdXNlY2FzZV9uZHg7Cj4+IC0JCXBoYW5kbGUtPmN1cnJlbnRfdXNl Y2FzZV9uZHggPSBtYXhfdXNlY2FzZV9uZHg7Cj4+ICsJCWlmICghcGNsaWVudC0+cmVmY291bnQp Cj4+ICsJCQljaGFuZ2VkID0gdHJ1ZTsKPj4gIAl9Cj4+IAo+PiAtCXByX2RlYnVnKCIlcFM6IGNo YW5nZWQ9JWQgY3VycmVudCBpZHg9JWQgcmVxdWVzdCBjbGllbnQgJXMgaWQ6JXUgCj4+IGVuYWJs ZTolZCByZWZjb3VudDolZFxuIiwKPj4gLQkJX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApLCBj aGFuZ2VkLCBtYXhfdXNlY2FzZV9uZHgsCj4+IC0JCXBjbGllbnQtPm5hbWUsIHBjbGllbnQtPmlk LCBlbmFibGUsIHBjbGllbnQtPnJlZmNvdW50KTsKPj4gKwlwcl9kZWJ1ZygiJXBTOmNoYW5nZWQ9 JWQgY2xpZW50ICVzIGlkOiV1IGVuYWJsZTolZCByZWZjb3VudDolZFxuIiwKPj4gKwkJX19idWls dGluX3JldHVybl9hZGRyZXNzKDApLCBjaGFuZ2VkLCBwY2xpZW50LT5uYW1lLAo+PiArCQlwY2xp ZW50LT5pZCwgZW5hYmxlLCBwY2xpZW50LT5yZWZjb3VudCk7Cj4+IAo+PiAgCWlmICghY2hhbmdl ZCkKPj4gIAkJZ290byBlbmQ7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oCj4+IGluZGV4IGE2NWI3YTI5N2YyMS4uYjFhNWFlNGQ2 ZjRlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93 ZXJfaGFuZGxlLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bv d2VyX2hhbmRsZS5oCj4+IEBAIC0xNiw3NiArMTYsMjggQEAKPj4gCj4+ICAjZGVmaW5lIE1BWF9D TElFTlRfTkFNRV9MRU4gMTI4Cj4+IAo+PiAtI2RlZmluZSBEUFVfUE9XRVJfSEFORExFX0VOQUJM RV9CVVNfQUJfUVVPVEEJMAo+PiAtI2RlZmluZSBEUFVfUE9XRVJfSEFORExFX0RJU0FCTEVfQlVT X0FCX1FVT1RBCTAKPj4gLSNkZWZpbmUgRFBVX1BPV0VSX0hBTkRMRV9FTkFCTEVfQlVTX0lCX1FV T1RBCTE2MDAwMDAwMDAKPj4gLSNkZWZpbmUgRFBVX1BPV0VSX0hBTkRMRV9ESVNBQkxFX0JVU19J Ql9RVU9UQQkwCj4+IC0KPj4gICNpbmNsdWRlICJkcHVfaW9fdXRpbC5oIgo+PiAKPj4gIC8qIGV2 ZW50cyB3aWxsIGJlIHRyaWdnZXJlZCBvbiBwb3dlciBoYW5kbGVyIGVuYWJsZS9kaXNhYmxlICov Cj4+ICAjZGVmaW5lIERQVV9QT1dFUl9FVkVOVF9ESVNBQkxFCUJJVCgwKQo+PiAgI2RlZmluZSBE UFVfUE9XRVJfRVZFTlRfRU5BQkxFCUJJVCgxKQo+PiAKPj4gLS8qKgo+PiAtICogbWRzc19idXNf dm90ZV90eXBlOiByZWdpc3RlciBidXMgdm90ZSB0eXBlCj4+IC0gKiBWT1RFX0lOREVYX0RJU0FC TEU6IHJlbW92ZXMgdGhlIGNsaWVudCB2b3RlCj4+IC0gKiBWT1RFX0lOREVYX0xPVzoga2VlcHMg dGhlIGxvd2VzdCB2b3RlIGZvciByZWdpc3RlciBidXMKPj4gLSAqIFZPVEVfSU5ERVhfTUFYOiBp bnZhbGlkCj4+IC0gKi8KPj4gLWVudW0gbWRzc19idXNfdm90ZV90eXBlIHsKPj4gLQlWT1RFX0lO REVYX0RJU0FCTEUsCj4+IC0JVk9URV9JTkRFWF9MT1csCj4+IC0JVk9URV9JTkRFWF9NQVgsCj4+ IC19Owo+PiAtCj4+IC0vKioKPj4gLSAqIGVudW0gZHB1X3Bvd2VyX2hhbmRsZV9kYXRhX2J1c19j bGllbnQgLSB0eXBlIG9mIGF4aSBidXMgY2xpZW50cwo+PiAtICogQERQVV9QT1dFUl9IQU5ETEVf REFUQV9CVVNfQ0xJRU5UX1JUOiBjb3JlIHJlYWwtdGltZSBidXMgY2xpZW50Cj4+IC0gKiBARFBV X1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTlJUOiBjb3JlIG5vbi1yZWFsLXRpbWUgYnVz IAo+PiBjbGllbnQKPj4gLSAqIEBEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVOVF9NQVg6 IG1heGltdW0gbnVtYmVyIG9mIGJ1cyAKPj4gY2xpZW50IHR5cGUKPj4gLSAqLwo+PiAtZW51bSBk cHVfcG93ZXJfaGFuZGxlX2RhdGFfYnVzX2NsaWVudCB7Cj4+IC0JRFBVX1BPV0VSX0hBTkRMRV9E QVRBX0JVU19DTElFTlRfUlQsCj4+IC0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRf TlJULAo+PiAtCURQVV9QT1dFUl9IQU5ETEVfREFUQV9CVVNfQ0xJRU5UX01BWAo+PiAtfTsKPj4g LQo+PiAtLyoqCj4+IC0gKiBlbnVtIERQVV9QT1dFUl9IQU5ETEVfREJVU19JRCAtIGRhdGEgYnVz IGlkZW50aWZpZXIKPj4gLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQzogRFBVL01O T0MgZGF0YSBidXMKPj4gLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTExDQzogTU5PQy9M TENDIGRhdGEgYnVzCj4+IC0gKiBARFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSTogTExDQy9F QkkgZGF0YSBidXMKPj4gLSAqLwo+PiAtZW51bSBEUFVfUE9XRVJfSEFORExFX0RCVVNfSUQgewo+ PiAtCURQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NTk9DLAo+PiAtCURQVV9QT1dFUl9IQU5ETEVf REJVU19JRF9MTENDLAo+PiAtCURQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkksCj4+IC0JRFBV X1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWCwKPj4gLX07Cj4+IC0KPj4gIC8qKgo+PiAgICogc3Ry dWN0IGRwdV9wb3dlcl9jbGllbnQ6IHN0b3JlcyB0aGUgcG93ZXIgY2xpZW50IGZvciBkcHUgZHJp dmVyCj4+ICAgKiBAbmFtZToJbmFtZSBvZiB0aGUgY2xpZW50Cj4+IC0gKiBAdXNlY2FzZV9uZHg6 IGN1cnJlbnQgcmVncyBidXMgdm90ZSB0eXBlCj4+ICAgKiBAcmVmY291bnQ6CWN1cnJlbnQgcmVm Y291bnQgaWYgbXVsdGlwbGUgbW9kdWxlcyBhcmUgdXNpbmcgc2FtZQo+PiAgICogICAgICAgICAg ICAgIHNhbWUgY2xpZW50IGZvciBlbmFibGUvZGlzYWJsZS4gUG93ZXIgbW9kdWxlIHdpbGwKPj4g ICAqICAgICAgICAgICAgICBhZ2dyZWdhdGUgdGhlIHJlZmNvdW50IGFuZCB2b3RlIGFjY29yZGlu Z2x5IGZvciB0aGlzCj4+ICAgKiAgICAgICAgICAgICAgY2xpZW50Lgo+PiAgICogQGlkOgkJYXNz aWduZWQgZHVyaW5nIGNyZWF0ZS4gaGVscHMgZm9yIGRlYnVnZ2luZy4KPj4gICAqIEBsaXN0Ogls aXN0IHRvIGF0dGFjaCBwb3dlciBoYW5kbGUgbWFzdGVyIGxpc3QKPj4gLSAqIEBhYjogICAgICAg ICBhcmJpdHJhdGVkIGJhbmR3aWR0aCBmb3IgZWFjaCBidXMgY2xpZW50Cj4+IC0gKiBAaWI6ICAg ICAgICAgaW5zdGFudGFuZW91cyBiYW5kd2lkdGggZm9yIGVhY2ggYnVzIGNsaWVudAo+PiAgICog QGFjdGl2ZToJaW5pZGNhdGVzIHRoZSBzdGF0ZSBvZiBkcHUgcG93ZXIgaGFuZGxlCj4+ICAgKi8K Pj4gIHN0cnVjdCBkcHVfcG93ZXJfY2xpZW50IHsKPj4gIAljaGFyIG5hbWVbTUFYX0NMSUVOVF9O QU1FX0xFTl07Cj4+IC0Jc2hvcnQgdXNlY2FzZV9uZHg7Cj4+ICAJc2hvcnQgcmVmY291bnQ7Cj4+ ICAJdTMyIGlkOwo+PiAgCXN0cnVjdCBsaXN0X2hlYWQgbGlzdDsKPj4gLQl1NjQgYWJbRFBVX1BP V0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFYXTsKPj4gLQl1NjQgaWJbRFBVX1BPV0VSX0hB TkRMRV9EQVRBX0JVU19DTElFTlRfTUFYXTsKPj4gIAlib29sIGFjdGl2ZTsKPj4gIH07Cj4+IAo+ PiBAQCAtMTEyLDE0ICs2NCwxMiBAQCBzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50IHsKPj4gICAqIEBj bGllbnRfY2xpc3Q6IG1hc3RlciBsaXN0IHRvIHN0b3JlIGFsbCBjbGllbnRzCj4+ICAgKiBAcGhh bmRsZV9sb2NrOiBsb2NrIHRvIHN5bmNocm9uaXplIHRoZSBlbmFibGUvZGlzYWJsZQo+PiAgICog QGRldjogcG9pbnRlciB0byBkZXZpY2Ugc3RydWN0dXJlCj4+IC0gKiBAdXNlY2FzZV9uZHg6IGN1 cnJlbnQgdXNlY2FzZSBpbmRleAo+PiAgICogQGV2ZW50X2xpc3Q6IGN1cnJlbnQgcG93ZXIgaGFu ZGxlIGV2ZW50IGxpc3QKPj4gICAqLwo+PiAgc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgewo+PiAg CXN0cnVjdCBsaXN0X2hlYWQgcG93ZXJfY2xpZW50X2NsaXN0Owo+PiAgCXN0cnVjdCBtdXRleCBw aGFuZGxlX2xvY2s7Cj4+ICAJc3RydWN0IGRldmljZSAqZGV2Owo+PiAtCXUzMiBjdXJyZW50X3Vz ZWNhc2VfbmR4Owo+PiAgCXN0cnVjdCBsaXN0X2hlYWQgZXZlbnRfbGlzdDsKPj4gIH07Cj4+IAo+ PiBAQCAtMTcyLDE3ICsxMjIsNiBAQCB2b2lkIGRwdV9wb3dlcl9jbGllbnRfZGVzdHJveShzdHJ1 Y3QgCj4+IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCj4+ICBpbnQgZHB1X3Bvd2VyX3Jlc291 cmNlX2VuYWJsZShzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGRhdGEsCj4+ICAJc3RydWN0IGRw dV9wb3dlcl9jbGllbnQgKnBjbGllbnQsIGJvb2wgZW5hYmxlKTsKPj4gCj4+IC0vKioKPj4gLSAq IGRwdV9wb3dlcl9kYXRhX2J1c19iYW5kd2lkdGhfY3RybCgpIC0gY29udHJvbCBkYXRhIGJ1cyBi YW5kd2lkdGggCj4+IGVuYWJsZQo+PiAtICogQHBoYW5kbGU6ICBwb3dlciBoYW5kbGUgY29udGFp bmluZyB0aGUgcmVzb3VyY2VzCj4+IC0gKiBAY2xpZW50OiBjbGllbnQgaW5mb3JtYXRpb24gdG8g YmFuZHdpZHRoIGNvbnRyb2wKPj4gLSAqIEBlbmFibGU6IHRydWUgdG8gZW5hYmxlIGJhbmR3aWR0 aCBmb3IgZGF0YSBiYXNlCj4+IC0gKgo+PiAtICogUmV0dXJuOiBub25lCj4+IC0gKi8KPj4gLXZv aWQgZHB1X3Bvd2VyX2RhdGFfYnVzX2JhbmR3aWR0aF9jdHJsKHN0cnVjdCBkcHVfcG93ZXJfaGFu ZGxlIAo+PiAqcGhhbmRsZSwKPj4gLQkJc3RydWN0IGRwdV9wb3dlcl9jbGllbnQgKnBjbGllbnQs IGludCBlbmFibGUpOwo+PiAtCj4+ICAvKioKPj4gICAqIGRwdV9wb3dlcl9oYW5kbGVfcmVnaXN0 ZXJfZXZlbnQgLSByZWdpc3RlciBhIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciAKPj4gYW4gZXZlbnQu Cj4+ICAgKglDbGllbnRzIGNhbiByZWdpc3RlciBmb3IgbXVsdGlwbGUgZXZlbnRzIHdpdGggYSBz aW5nbGUgcmVnaXN0ZXIuCj4+IEBAIC0yMDcsMTEgKzE0Niw0IEBAIHN0cnVjdCBkcHVfcG93ZXJf ZXZlbnQgCj4+ICpkcHVfcG93ZXJfaGFuZGxlX3JlZ2lzdGVyX2V2ZW50KAo+PiAgdm9pZCBkcHVf cG93ZXJfaGFuZGxlX3VucmVnaXN0ZXJfZXZlbnQoc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgCj4+ ICpwaGFuZGxlLAo+PiAgCQlzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50ICpldmVudCk7Cj4+IAo+PiAt LyoqCj4+IC0gKiBkcHVfcG93ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUgLSBnZXQgbmFtZSBvZiBn aXZlbiBkYXRhIGJ1cyAKPj4gaWRlbnRpZmllcgo+PiAtICogQGJ1c19pZDoJZGF0YSBidXMgaWRl bnRpZmllcgo+PiAtICogUmV0dXJuOglQb2ludGVyIHRvIG5hbWUgc3RyaW5nIGlmIHN1Y2Nlc3M7 IE5VTEwgb3RoZXJ3aXNlCj4+IC0gKi8KPj4gLWNvbnN0IGNoYXIgKmRwdV9wb3dlcl9oYW5kbGVf Z2V0X2RidXNfbmFtZSh1MzIgYnVzX2lkKTsKPj4gLQo+PiAgI2VuZGlmIC8qIF9EUFVfUE9XRVJf SEFORExFX0hfICovCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfdHJhY2UuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJh Y2UuaAo+PiBpbmRleCAwYzEyMmUxNzM4OTIuLmY1ZWQ0N2ExNTU2YSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKPj4gQEAgLTE2NywxNiArMTY3LDEz IEBAIFRSQUNFX0VWRU5UKGRwdV90cmFjZV9jb3VudGVyLAo+PiAgKQo+PiAKPj4gIFRSQUNFX0VW RU5UKGRwdV9wZXJmX2NydGNfdXBkYXRlLAo+PiAtCVRQX1BST1RPKHUzMiBjcnRjLCB1NjQgYndf Y3RsX21ub2MsIHU2NCBid19jdGxfbGxjYywKPj4gLQkJCXU2NCBid19jdGxfZWJpLCB1MzIgY29y ZV9jbGtfcmF0ZSwKPj4gLQkJCWJvb2wgc3RvcF9yZXEsIHUzMiB1cGRhdGVfYnVzLCB1MzIgdXBk YXRlX2NsayksCj4+IC0JVFBfQVJHUyhjcnRjLCBid19jdGxfbW5vYywgYndfY3RsX2xsY2MsIGJ3 X2N0bF9lYmksIGNvcmVfY2xrX3JhdGUsCj4+ICsJVFBfUFJPVE8odTMyIGNydGMsIHU2NCBid19j dGwsIHUzMiBjb3JlX2Nsa19yYXRlLAo+PiArCQkJYm9vbCBzdG9wX3JlcSwgYm9vbCB1cGRhdGVf YnVzLCBib29sIHVwZGF0ZV9jbGspLAo+PiArCVRQX0FSR1MoY3J0YywgYndfY3RsLCBjb3JlX2Ns a19yYXRlLAo+PiAgCQlzdG9wX3JlcSwgdXBkYXRlX2J1cywgdXBkYXRlX2NsayksCj4+ICAJVFBf U1RSVUNUX19lbnRyeSgKPj4gIAkJCV9fZmllbGQodTMyLCBjcnRjKQo+PiAtCQkJX19maWVsZCh1 NjQsIGJ3X2N0bF9tbm9jKQo+PiAtCQkJX19maWVsZCh1NjQsIGJ3X2N0bF9sbGNjKQo+PiAtCQkJ X19maWVsZCh1NjQsIGJ3X2N0bF9lYmkpCj4+ICsJCQlfX2ZpZWxkKHU2NCwgYndfY3RsKQo+PiAg CQkJX19maWVsZCh1MzIsIGNvcmVfY2xrX3JhdGUpCj4+ICAJCQlfX2ZpZWxkKGJvb2wsIHN0b3Bf cmVxKQo+PiAgCQkJX19maWVsZCh1MzIsIHVwZGF0ZV9idXMpCj4+IEBAIC0xODQsMjAgKzE4MSwx NiBAQCBUUkFDRV9FVkVOVChkcHVfcGVyZl9jcnRjX3VwZGF0ZSwKPj4gIAkpLAo+PiAgCVRQX2Zh c3RfYXNzaWduKAo+PiAgCQkJX19lbnRyeS0+Y3J0YyA9IGNydGM7Cj4+IC0JCQlfX2VudHJ5LT5i d19jdGxfbW5vYyA9IGJ3X2N0bF9tbm9jOwo+PiAtCQkJX19lbnRyeS0+YndfY3RsX2xsY2MgPSBi d19jdGxfbGxjYzsKPj4gLQkJCV9fZW50cnktPmJ3X2N0bF9lYmkgPSBid19jdGxfZWJpOwo+PiAr CQkJX19lbnRyeS0+YndfY3RsID0gYndfY3RsOwo+PiAgCQkJX19lbnRyeS0+Y29yZV9jbGtfcmF0 ZSA9IGNvcmVfY2xrX3JhdGU7Cj4+ICAJCQlfX2VudHJ5LT5zdG9wX3JlcSA9IHN0b3BfcmVxOwo+ PiAgCQkJX19lbnRyeS0+dXBkYXRlX2J1cyA9IHVwZGF0ZV9idXM7Cj4+ICAJCQlfX2VudHJ5LT51 cGRhdGVfY2xrID0gdXBkYXRlX2NsazsKPj4gIAkpLAo+PiAgCSBUUF9wcmludGsoCj4+IC0JCSJj cnRjPSVkIGJ3X21ub2M9JWxsdSBid19sbGNjPSVsbHUgYndfZWJpPSVsbHUgY2xrX3JhdGU9JXUg Cj4+IHN0b3BfcmVxPSVkIHVfYnVzPSVkIHVfY2xrPSVkIiwKPj4gKwkJImNydGM9JWQgYndfY3Rs PSVsbHUgY2xrX3JhdGU9JXUgc3RvcF9yZXE9JWQgdV9idXM9JWQgdV9jbGs9JWQiLAo+PiAgCQkJ X19lbnRyeS0+Y3J0YywKPj4gLQkJCV9fZW50cnktPmJ3X2N0bF9tbm9jLAo+PiAtCQkJX19lbnRy eS0+YndfY3RsX2xsY2MsCj4+IC0JCQlfX2VudHJ5LT5id19jdGxfZWJpLAo+PiArCQkJX19lbnRy eS0+YndfY3RsLAo+PiAgCQkJX19lbnRyeS0+Y29yZV9jbGtfcmF0ZSwKPj4gIAkJCV9fZW50cnkt PnN0b3BfcmVxLAo+PiAgCQkJX19lbnRyeS0+dXBkYXRlX2J1cywKPj4gLS0KPj4gVGhlIFF1YWxj b21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9y YSAKPj4gRm9ydW0sCj4+IGEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QK Pj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVk cmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=