From mboxrd@z Thu Jan 1 00:00:00 1970 From: skolluku-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: [PATCH 1/3] drm/msm/dpu: clean up references of DPU custom bus scaling Date: Tue, 09 Oct 2018 17:32:04 +0530 Message-ID: <19519d855132331bba30bee25dae07e3@codeaurora.org> References: <20181008092730.1199-1-skolluku@codeaurora.org> <20181008092730.1199-2-skolluku@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181008092730.1199-2-skolluku-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, linux-arm-msm-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: devicetree@vger.kernel.org T24gMjAxOC0xMC0wOCAxNDo1NywgU3JhdmFudGhpIEtvbGx1a3VkdXJ1IHdyb3RlOgo+IFNpbmNl IHRoZSB1cHN0cmVhbSBpbnRlcmNvbm5lY3QgYnVzIGZyYW1ld29yayBoYXMgbGFuZGVkCj4gdXBz dHJlYW0sIHRoZSBleGlzdGluZyByZWZlcmVuY2VzIG9mIGN1c3RvbSBidXMgc2NhbGluZwo+IG5l ZWRzIHRvIGJlIGNsZWFuZWQgdXAuCj4gCj4gU2lnbmVkLW9mZi1ieTogU3JhdmFudGhpIEtvbGx1 a3VkdXJ1IDxza29sbHVrdUBjb2RlYXVyb3JhLm9yZz4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NvcmVfcGVyZi5jICAgIHwgMTU3IAo+ICsrKysrKysrKystLS0t LS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYu aCAgICB8ICAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5j ICAgICAgICAgfCAgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93 ZXJfaGFuZGxlLmMgfCAgNDcgKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfcG93ZXJfaGFuZGxlLmggfCAgNjggLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfdHJhY2UuaCAgICAgICAgfCAgMjEgKy0tCj4gIDYgZmlsZXMgY2hh bmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgMjE1IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmMKPiBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jb3JlX3BlcmYuYwo+IGluZGV4IDQxYzUxOTFm OTA1Ni4uNGVlNmYwZGQxNGY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9jb3JlX3BlcmYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jb3JlX3BlcmYuYwo+IEBAIC05MCw3ICs5MCw2IEBAIHN0YXRpYyB2b2lkIF9kcHVf Y29yZV9wZXJmX2NhbGNfY3J0YyhzdHJ1Y3QgZHB1X2ttcyAKPiAqa21zLAo+ICAJCXN0cnVjdCBk cHVfY29yZV9wZXJmX3BhcmFtcyAqcGVyZikKPiAgewo+ICAJc3RydWN0IGRwdV9jcnRjX3N0YXRl ICpkcHVfY3N0YXRlOwo+IC0JaW50IGk7Cj4gCj4gIAlpZiAoIWttcyB8fCAha21zLT5jYXRhbG9n IHx8ICFjcnRjIHx8ICFzdGF0ZSB8fCAhcGVyZikgewo+ICAJCURQVV9FUlJPUigiaW52YWxpZCBw YXJhbWV0ZXJzXG4iKTsKPiBAQCAtMTAxLDM1ICsxMDAsMjQgQEAgc3RhdGljIHZvaWQgX2RwdV9j b3JlX3BlcmZfY2FsY19jcnRjKHN0cnVjdCAKPiBkcHVfa21zICprbXMsCj4gIAltZW1zZXQocGVy ZiwgMCwgc2l6ZW9mKHN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcykpOwo+IAo+ICAJaWYgKCFk cHVfY3N0YXRlLT5id19jb250cm9sKSB7Cj4gLQkJZm9yIChpID0gMDsgaSA8IERQVV9QT1dFUl9I QU5ETEVfREJVU19JRF9NQVg7IGkrKykgewo+IC0JCQlwZXJmLT5id19jdGxbaV0gPSBrbXMtPmNh dGFsb2ctPnBlcmYubWF4X2J3X2hpZ2ggKgo+ICsJCXBlcmYtPmJ3X2N0bCA9IGttcy0+Y2F0YWxv Zy0+cGVyZi5tYXhfYndfaGlnaCAqCj4gIAkJCQkJMTAwMFVMTDsKPiAtCQkJcGVyZi0+bWF4X3Bl cl9waXBlX2liW2ldID0gcGVyZi0+YndfY3RsW2ldOwo+IC0JCX0KPiArCQlwZXJmLT5tYXhfcGVy X3BpcGVfaWIgPSBwZXJmLT5id19jdGw7Cj4gIAkJcGVyZi0+Y29yZV9jbGtfcmF0ZSA9IGttcy0+ cGVyZi5tYXhfY29yZV9jbGtfcmF0ZTsKPiAgCX0gZWxzZSBpZiAoa21zLT5wZXJmLnBlcmZfdHVu ZS5tb2RlID09IERQVV9QRVJGX01PREVfTUlOSU1VTSkgewo+IC0JCWZvciAoaSA9IDA7IGkgPCBE UFVfUE9XRVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKPiAtCQkJcGVyZi0+YndfY3RsW2ld ID0gMDsKPiAtCQkJcGVyZi0+bWF4X3Blcl9waXBlX2liW2ldID0gMDsKPiAtCQl9Cj4gKwkJcGVy Zi0+YndfY3RsID0gMDsKPiArCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWIgPSAwOwo+ICAJCXBlcmYt PmNvcmVfY2xrX3JhdGUgPSAwOwo+ICAJfSBlbHNlIGlmIChrbXMtPnBlcmYucGVyZl90dW5lLm1v ZGUgPT0gRFBVX1BFUkZfTU9ERV9GSVhFRCkgewo+IC0JCWZvciAoaSA9IDA7IGkgPCBEUFVfUE9X RVJfSEFORExFX0RCVVNfSURfTUFYOyBpKyspIHsKPiAtCQkJcGVyZi0+YndfY3RsW2ldID0ga21z LT5wZXJmLmZpeF9jb3JlX2FiX3ZvdGU7Cj4gLQkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYltpXSA9 IGttcy0+cGVyZi5maXhfY29yZV9pYl92b3RlOwo+IC0JCX0KPiArCQlwZXJmLT5id19jdGwgPSBr bXMtPnBlcmYuZml4X2NvcmVfYWJfdm90ZTsKPiArCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWIgPSBr bXMtPnBlcmYuZml4X2NvcmVfaWJfdm90ZTsKPiAgCQlwZXJmLT5jb3JlX2Nsa19yYXRlID0ga21z LT5wZXJmLmZpeF9jb3JlX2Nsa19yYXRlOwo+ICAJfQo+IAo+ICAJRFBVX0RFQlVHKAo+IC0JCSJj cnRjPSVkIGNsa19yYXRlPSVsbHUgY29yZV9pYj0lbGx1IGNvcmVfYWI9JWxsdSBsbGNjX2liPSVs bHUKPiBsbGNjX2FiPSVsbHUgbWVtX2liPSVsbHUgbWVtX2FiPSVsbHVcbiIsCj4gKwkJImNydGM9 JWQgY2xrX3JhdGU9JWxsdSBjb3JlX2liPSVsbHUgY29yZV9hYj0lbGx1XG4iLAo+ICAJCQljcnRj LT5iYXNlLmlkLCBwZXJmLT5jb3JlX2Nsa19yYXRlLAo+IC0JCQlwZXJmLT5tYXhfcGVyX3BpcGVf aWJbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0NdLAo+IC0JCQlwZXJmLT5id19jdGxbRFBV X1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0NdLAo+IC0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJb RFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0NdLAo+IC0JCQlwZXJmLT5id19jdGxbRFBVX1BP V0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0NdLAo+IC0JCQlwZXJmLT5tYXhfcGVyX3BpcGVfaWJbRFBV X1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSV0sCj4gLQkJCXBlcmYtPmJ3X2N0bFtEUFVfUE9XRVJf SEFORExFX0RCVVNfSURfRUJJXSk7Cj4gKwkJCXBlcmYtPm1heF9wZXJfcGlwZV9pYiwgcGVyZi0+ YndfY3RsKTsKPiAgfQo+IAo+ICBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX2NoZWNrKHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiBAQCAtMTQyLDcgKzEzMCw2IEBAIGludCBkcHVfY29yZV9wZXJmX2Ny dGNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJc3RydWN0IGRwdV9jcnRjX3N0YXRl ICpkcHVfY3N0YXRlOwo+ICAJc3RydWN0IGRybV9jcnRjICp0bXBfY3J0YzsKPiAgCXN0cnVjdCBk cHVfa21zICprbXM7Cj4gLQlpbnQgaTsKPiAKPiAgCWlmICghY3J0YyB8fCAhc3RhdGUpIHsKPiAg CQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xuIik7Cj4gQEAgLTE2NCwzMSArMTUxLDI4IEBAIGlu dCBkcHVfY29yZV9wZXJmX2NydGNfY2hlY2soc3RydWN0IGRybV9jcnRjIAo+ICpjcnRjLAo+ICAJ Lyogb2J0YWluIG5ldyB2YWx1ZXMgKi8KPiAgCV9kcHVfY29yZV9wZXJmX2NhbGNfY3J0YyhrbXMs IGNydGMsIHN0YXRlLCAmZHB1X2NzdGF0ZS0+bmV3X3BlcmYpOwo+IAo+IC0JZm9yIChpID0gRFBV X1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0M7Cj4gLQkJCWkgPCBEUFVfUE9XRVJfSEFORExFX0RC VVNfSURfTUFYOyBpKyspIHsKPiAtCQlid19zdW1fb2ZfaW50ZnMgPSBkcHVfY3N0YXRlLT5uZXdf cGVyZi5id19jdGxbaV07Cj4gLQkJY3Vycl9jbGllbnRfdHlwZSA9IGRwdV9jcnRjX2dldF9jbGll bnRfdHlwZShjcnRjKTsKPiArCWJ3X3N1bV9vZl9pbnRmcyA9IGRwdV9jc3RhdGUtPm5ld19wZXJm LmJ3X2N0bDsKPiArCWN1cnJfY2xpZW50X3R5cGUgPSBkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUo Y3J0Yyk7Cj4gCj4gLQkJZHJtX2Zvcl9lYWNoX2NydGModG1wX2NydGMsIGNydGMtPmRldikgewo+ IC0JCQlpZiAoX2RwdV9jb3JlX3BlcmZfY3J0Y19pc19wb3dlcl9vbih0bXBfY3J0YykgJiYKPiAt CQkJICAgIChkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUodG1wX2NydGMpID09Cj4gLQkJCQkJICAg IGN1cnJfY2xpZW50X3R5cGUpICYmCj4gLQkJCSAgICAodG1wX2NydGMgIT0gY3J0YykpIHsKPiAt CQkJCXN0cnVjdCBkcHVfY3J0Y19zdGF0ZSAqdG1wX2NzdGF0ZSA9Cj4gLQkJCQkJdG9fZHB1X2Ny dGNfc3RhdGUodG1wX2NydGMtPnN0YXRlKTsKPiAtCj4gLQkJCQlEUFVfREVCVUcoImNydGM6JWQg Ync6JWxsdSBjdHJsOiVkXG4iLAo+IC0JCQkJCXRtcF9jcnRjLT5iYXNlLmlkLAo+IC0JCQkJCXRt cF9jc3RhdGUtPm5ld19wZXJmLmJ3X2N0bFtpXSwKPiAtCQkJCQl0bXBfY3N0YXRlLT5id19jb250 cm9sKTsKPiAtCQkJCS8qCj4gLQkJCQkgKiBGb3IgYncgY2hlY2sgb25seSB1c2UgdGhlIGJ3IGlm IHRoZQo+IC0JCQkJICogYXRvbWljIHByb3BlcnR5IGhhcyBiZWVuIGFscmVhZHkgc2V0Cj4gLQkJ CQkgKi8KPiAtCQkJCWlmICh0bXBfY3N0YXRlLT5id19jb250cm9sKQo+IC0JCQkJCWJ3X3N1bV9v Zl9pbnRmcyArPQo+IC0JCQkJCQl0bXBfY3N0YXRlLT5uZXdfcGVyZi5id19jdGxbaV07Cj4gLQkJ CX0KPiArCWRybV9mb3JfZWFjaF9jcnRjKHRtcF9jcnRjLCBjcnRjLT5kZXYpIHsKPiArCQlpZiAo X2RwdV9jb3JlX3BlcmZfY3J0Y19pc19wb3dlcl9vbih0bXBfY3J0YykgJiYKPiArCQkgICAgKGRw dV9jcnRjX2dldF9jbGllbnRfdHlwZSh0bXBfY3J0YykgPT0KPiArCQkJCSAgICBjdXJyX2NsaWVu dF90eXBlKSAmJgo+ICsJCSAgICAodG1wX2NydGMgIT0gY3J0YykpIHsKPiArCQkJc3RydWN0IGRw dV9jcnRjX3N0YXRlICp0bXBfY3N0YXRlID0KPiArCQkJCXRvX2RwdV9jcnRjX3N0YXRlKHRtcF9j cnRjLT5zdGF0ZSk7Cj4gKwo+ICsJCQlEUFVfREVCVUcoImNydGM6JWQgYnc6JWxsdSBjdHJsOiVk XG4iLAo+ICsJCQkJdG1wX2NydGMtPmJhc2UuaWQsCj4gKwkJCQl0bXBfY3N0YXRlLT5uZXdfcGVy Zi5id19jdGwsCj4gKwkJCQl0bXBfY3N0YXRlLT5id19jb250cm9sKTsKPiArCQkJLyoKPiArCQkJ ICogRm9yIGJ3IGNoZWNrIG9ubHkgdXNlIHRoZSBidyBpZiB0aGUKPiArCQkJICogYXRvbWljIHBy b3BlcnR5IGhhcyBiZWVuIGFscmVhZHkgc2V0Cj4gKwkJCSAqLwo+ICsJCQlpZiAodG1wX2NzdGF0 ZS0+YndfY29udHJvbCkKPiArCQkJCWJ3X3N1bV9vZl9pbnRmcyArPQo+ICsJCQkJCXRtcF9jc3Rh dGUtPm5ld19wZXJmLmJ3X2N0bDsKPiAgCQl9Cj4gCj4gIAkJLyogY29udmVydCBiYW5kd2lkdGgg dG8ga2IgKi8KPiBAQCAtMjE5LDkgKzIwMyw5IEBAIGludCBkcHVfY29yZV9wZXJmX2NydGNfY2hl Y2soc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICB9Cj4gCj4gIHN0YXRpYyBpbnQgX2RwdV9jb3Jl X3BlcmZfY3J0Y191cGRhdGVfYnVzKHN0cnVjdCBkcHVfa21zICprbXMsCj4gLQkJc3RydWN0IGRy bV9jcnRjICpjcnRjLCB1MzIgYnVzX2lkKQo+ICsJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAg ewo+IC0Jc3RydWN0IGRwdV9jb3JlX3BlcmZfcGFyYW1zIHBlcmYgPSB7IHsgMCB9IH07Cj4gKwlz dHJ1Y3QgZHB1X2NvcmVfcGVyZl9wYXJhbXMgcGVyZiA9IHsgMCB9Owo+ICAJZW51bSBkcHVfY3J0 Y19jbGllbnRfdHlwZSBjdXJyX2NsaWVudF90eXBlCj4gIAkJCQkJPSBkcHVfY3J0Y19nZXRfY2xp ZW50X3R5cGUoY3J0Yyk7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKnRtcF9jcnRjOwo+IEBAIC0yMzQs MTMgKzIxOCwxMiBAQCBzdGF0aWMgaW50IF9kcHVfY29yZV9wZXJmX2NydGNfdXBkYXRlX2J1cyhz dHJ1Y3QKPiBkcHVfa21zICprbXMsCj4gIAkJCQlkcHVfY3J0Y19nZXRfY2xpZW50X3R5cGUodG1w X2NydGMpKSB7Cj4gIAkJCWRwdV9jc3RhdGUgPSB0b19kcHVfY3J0Y19zdGF0ZSh0bXBfY3J0Yy0+ c3RhdGUpOwo+IAo+IC0JCQlwZXJmLm1heF9wZXJfcGlwZV9pYltidXNfaWRdID0KPiAtCQkJCW1h eChwZXJmLm1heF9wZXJfcGlwZV9pYltidXNfaWRdLAo+IC0JCQkJZHB1X2NzdGF0ZS0+bmV3X3Bl cmYubWF4X3Blcl9waXBlX2liW2J1c19pZF0pOwo+ICsJCQlwZXJmLm1heF9wZXJfcGlwZV9pYiA9 Cj4gKwkJCQltYXgocGVyZi5tYXhfcGVyX3BpcGVfaWIsCj4gKwkJCQlkcHVfY3N0YXRlLT5uZXdf cGVyZi5tYXhfcGVyX3BpcGVfaWIpOwo+IAo+IC0JCQlEUFVfREVCVUcoImNydGM9JWQgYnVzX2lk PSVkIGJ3PSVsbHVcbiIsCj4gLQkJCQl0bXBfY3J0Yy0+YmFzZS5pZCwgYnVzX2lkLAo+IC0JCQkJ ZHB1X2NzdGF0ZS0+bmV3X3BlcmYuYndfY3RsW2J1c19pZF0pOwo+ICsJCQlEUFVfREVCVUcoImNy dGM9JWQgYnc9JWxsdVxuIiwKPiArCQkJCXRtcF9jcnRjLT5iYXNlLmlkLCBkcHVfY3N0YXRlLT5u ZXdfcGVyZi5id19jdGwpOwo+ICAJCX0KPiAgCX0KPiAgCXJldHVybiByZXQ7Cj4gQEAgLTI2MCw3 ICsyNDMsNiBAQCB2b2lkIGRwdV9jb3JlX3BlcmZfY3J0Y19yZWxlYXNlX2J3KHN0cnVjdCBkcm1f Y3J0YyAKPiAqY3J0YykKPiAgCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7Cj4gIAlzdHJ1Y3Qg ZHB1X2NydGNfc3RhdGUgKmRwdV9jc3RhdGU7Cj4gIAlzdHJ1Y3QgZHB1X2ttcyAqa21zOwo+IC0J aW50IGk7Cj4gCj4gIAlpZiAoIWNydGMpIHsKPiAgCQlEUFVfRVJST1IoImludmFsaWQgY3J0Y1xu Iik7Cj4gQEAgLTI5NiwxMCArMjc4LDggQEAgdm9pZCBkcHVfY29yZV9wZXJmX2NydGNfcmVsZWFz ZV9idyhzdHJ1Y3QgZHJtX2NydGMgCj4gKmNydGMpCj4gIAlpZiAoa21zLT5wZXJmLmVuYWJsZV9i d19yZWxlYXNlKSB7Cj4gIAkJdHJhY2VfZHB1X2NtZF9yZWxlYXNlX2J3KGNydGMtPmJhc2UuaWQp Owo+ICAJCURQVV9ERUJVRygiUmVsZWFzZSBCVyBjcnRjPSVkXG4iLCBjcnRjLT5iYXNlLmlkKTsK PiAtCQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01BWDsgaSsrKSB7 Cj4gLQkJCWRwdV9jcnRjLT5jdXJfcGVyZi5id19jdGxbaV0gPSAwOwo+IC0JCQlfZHB1X2NvcmVf cGVyZl9jcnRjX3VwZGF0ZV9idXMoa21zLCBjcnRjLCBpKTsKPiAtCQl9Cj4gKwkJZHB1X2NydGMt PmN1cl9wZXJmLmJ3X2N0bCA9IDA7Cj4gKwkJX2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVz KGttcywgY3J0Yyk7Cj4gIAl9Cj4gIH0KPiAKPiBAQCAtMzQyLDExICszMjIsMTAgQEAgaW50IGRw dV9jb3JlX3BlcmZfY3J0Y191cGRhdGUoc3RydWN0IGRybV9jcnRjIAo+ICpjcnRjLAo+ICAJCWlu dCBwYXJhbXNfY2hhbmdlZCwgYm9vbCBzdG9wX3JlcSkKPiAgewo+ICAJc3RydWN0IGRwdV9jb3Jl X3BlcmZfcGFyYW1zICpuZXcsICpvbGQ7Cj4gLQlpbnQgdXBkYXRlX2J1cyA9IDAsIHVwZGF0ZV9j bGsgPSAwOwo+ICsJYm9vbCB1cGRhdGVfYnVzID0gZmFsc2UsIHVwZGF0ZV9jbGsgPSBmYWxzZTsK PiAgCXU2NCBjbGtfcmF0ZSA9IDA7Cj4gIAlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwo+ICAJ c3RydWN0IGRwdV9jcnRjX3N0YXRlICpkcHVfY3N0YXRlOwo+IC0JaW50IGk7Cj4gIAlzdHJ1Y3Qg bXNtX2RybV9wcml2YXRlICpwcml2Owo+ICAJc3RydWN0IGRwdV9rbXMgKmttczsKPiAgCWludCBy ZXQ7Cj4gQEAgLTM3Myw3ICszNTIsNiBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0ZShz dHJ1Y3QgZHJtX2NydGMgCj4gKmNydGMsCj4gIAluZXcgPSAmZHB1X2NzdGF0ZS0+bmV3X3BlcmY7 Cj4gCj4gIAlpZiAoX2RwdV9jb3JlX3BlcmZfY3J0Y19pc19wb3dlcl9vbihjcnRjKSAmJiAhc3Rv cF9yZXEpIHsKPiAtCQlmb3IgKGkgPSAwOyBpIDwgRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01B WDsgaSsrKSB7Cj4gIAkJCS8qCj4gIAkJCSAqIGNhc2VzIGZvciBidXMgYmFuZHdpZHRoIHVwZGF0 ZS4KPiAgCQkJICogMS4gbmV3IGJhbmR3aWR0aCB2b3RlIC0gImFiIG9yIGliIHZvdGUiIGlzIGhp Z2hlcgo+IEBAIC0zODEsMjMgKzM1OSwyMiBAQCBpbnQgZHB1X2NvcmVfcGVyZl9jcnRjX3VwZGF0 ZShzdHJ1Y3QgZHJtX2NydGMgCj4gKmNydGMsCj4gIAkJCSAqIDIuIG5ldyBiYW5kd2lkdGggdm90 ZSAtICJhYiBvciBpYiB2b3RlIiBpcyBsb3dlcgo+ICAJCQkgKiAgICB0aGFuIGN1cnJlbnQgdm90 ZSBhdCBlbmQgb2YgY29tbWl0IG9yIHN0b3AuCj4gIAkJCSAqLwo+IC0JCQlpZiAoKHBhcmFtc19j aGFuZ2VkICYmICgobmV3LT5id19jdGxbaV0gPgo+IC0JCQkJCQlvbGQtPmJ3X2N0bFtpXSkgfHwK PiAtCQkJCSAgKG5ldy0+bWF4X3Blcl9waXBlX2liW2ldID4KPiAtCQkJCQkJb2xkLT5tYXhfcGVy X3BpcGVfaWJbaV0pKSkgfHwKPiAtCQkJICAgICghcGFyYW1zX2NoYW5nZWQgJiYgKChuZXctPmJ3 X2N0bFtpXSA8Cj4gLQkJCQkJCW9sZC0+YndfY3RsW2ldKSB8fAo+IC0JCQkJICAobmV3LT5tYXhf cGVyX3BpcGVfaWJbaV0gPAo+IC0JCQkJCQlvbGQtPm1heF9wZXJfcGlwZV9pYltpXSkpKSkgewo+ ICsJCQlpZiAoKHBhcmFtc19jaGFuZ2VkICYmICgobmV3LT5id19jdGwgPgo+ICsJCQkJCQlvbGQt PmJ3X2N0bCkgfHwKPiArCQkJCSAgKG5ldy0+bWF4X3Blcl9waXBlX2liID4KPiArCQkJCQkJb2xk LT5tYXhfcGVyX3BpcGVfaWIpKSkgfHwKPiArCQkJICAgICghcGFyYW1zX2NoYW5nZWQgJiYgKChu ZXctPmJ3X2N0bCA8Cj4gKwkJCQkJCW9sZC0+YndfY3RsKSB8fAo+ICsJCQkJICAobmV3LT5tYXhf cGVyX3BpcGVfaWIgPAo+ICsJCQkJCQlvbGQtPm1heF9wZXJfcGlwZV9pYikpKSkgewo+ICAJCQkJ RFBVX0RFQlVHKAo+ICAJCQkJCSJjcnRjPSVkIHA9JWQgbmV3X2J3PSVsbHUsb2xkX2J3PSVsbHVc biIsCj4gIAkJCQkJY3J0Yy0+YmFzZS5pZCwgcGFyYW1zX2NoYW5nZWQsCj4gLQkJCQkJbmV3LT5i d19jdGxbaV0sIG9sZC0+YndfY3RsW2ldKTsKPiAtCQkJCW9sZC0+YndfY3RsW2ldID0gbmV3LT5i d19jdGxbaV07Cj4gLQkJCQlvbGQtPm1heF9wZXJfcGlwZV9pYltpXSA9Cj4gLQkJCQkJCW5ldy0+ bWF4X3Blcl9waXBlX2liW2ldOwo+IC0JCQkJdXBkYXRlX2J1cyB8PSBCSVQoaSk7Cj4gLQkJCX0K PiArCQkJCQluZXctPmJ3X2N0bCwgb2xkLT5id19jdGwpOwo+ICsJCQkJb2xkLT5id19jdGwgPSBu ZXctPmJ3X2N0bDsKPiArCQkJCW9sZC0+bWF4X3Blcl9waXBlX2liID0KPiArCQkJCQkJbmV3LT5t YXhfcGVyX3BpcGVfaWI7Cj4gKwkJCQl1cGRhdGVfYnVzID0gdHJ1ZTsKPiAgCQl9Cj4gCj4gIAkJ aWYgKChwYXJhbXNfY2hhbmdlZCAmJgo+IEBAIC00MDUsMzAgKzM4MiwyNiBAQCBpbnQgZHB1X2Nv cmVfcGVyZl9jcnRjX3VwZGF0ZShzdHJ1Y3QgZHJtX2NydGMgCj4gKmNydGMsCj4gIAkJCQkoIXBh cmFtc19jaGFuZ2VkICYmCj4gIAkJCQkobmV3LT5jb3JlX2Nsa19yYXRlIDwgb2xkLT5jb3JlX2Ns a19yYXRlKSkpIHsKPiAgCQkJb2xkLT5jb3JlX2Nsa19yYXRlID0gbmV3LT5jb3JlX2Nsa19yYXRl Owo+IC0JCQl1cGRhdGVfY2xrID0gMTsKPiArCQkJdXBkYXRlX2NsayA9IHRydWU7Cj4gIAkJfQo+ ICAJfSBlbHNlIHsKPiAgCQlEUFVfREVCVUcoImNydGM9JWQgZGlzYWJsZVxuIiwgY3J0Yy0+YmFz ZS5pZCk7Cj4gIAkJbWVtc2V0KG9sZCwgMCwgc2l6ZW9mKCpvbGQpKTsKPiAgCQltZW1zZXQobmV3 LCAwLCBzaXplb2YoKm5ldykpOwo+IC0JCXVwZGF0ZV9idXMgPSB+MDsKPiAtCQl1cGRhdGVfY2xr ID0gMTsKPiArCQl1cGRhdGVfYnVzID0gdHJ1ZTsKPiArCQl1cGRhdGVfY2xrID0gdHJ1ZTsKPiAg CX0KPiArCj4gIAl0cmFjZV9kcHVfcGVyZl9jcnRjX3VwZGF0ZShjcnRjLT5iYXNlLmlkLAo+IC0J CQkJbmV3LT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX01OT0NdLAo+IC0JCQkJbmV3 LT5id19jdGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0xMQ0NdLAo+IC0JCQkJbmV3LT5id19j dGxbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSV0sCj4gLQkJCQluZXctPmNvcmVfY2xrX3Jh dGUsIHN0b3BfcmVxLAo+IC0JCQkJdXBkYXRlX2J1cywgdXBkYXRlX2Nsayk7Cj4gLQo+IC0JZm9y IChpID0gMDsgaSA8IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVg7IGkrKykgewo+IC0JCWlm ICh1cGRhdGVfYnVzICYgQklUKGkpKSB7Cj4gLQkJCXJldCA9IF9kcHVfY29yZV9wZXJmX2NydGNf dXBkYXRlX2J1cyhrbXMsIGNydGMsIGkpOwo+IC0JCQlpZiAocmV0KSB7Cj4gLQkJCQlEUFVfRVJS T1IoImNydGMtJWQ6IGZhaWxlZCB0byB1cGRhdGUgYncgdm90ZSBmb3IgYnVzLSVkXG4iLAo+IC0J CQkJCSAgY3J0Yy0+YmFzZS5pZCwgaSk7Cj4gLQkJCQlyZXR1cm4gcmV0Owo+IC0JCQl9Cj4gKwkJ CQluZXctPmJ3X2N0bCwgbmV3LT5jb3JlX2Nsa19yYXRlLAo+ICsJCQkJc3RvcF9yZXEsIHVwZGF0 ZV9idXMsIHVwZGF0ZV9jbGspOwo+ICsKPiArCWlmICh1cGRhdGVfYnVzKSB7Cj4gKwkJcmV0ID0g X2RwdV9jb3JlX3BlcmZfY3J0Y191cGRhdGVfYnVzKGttcywgY3J0Yyk7Cj4gKwkJaWYgKHJldCkg ewo+ICsJCQlEUFVfRVJST1IoImNydGMtJWQ6IGZhaWxlZCB0byB1cGRhdGUgYnVzIGJ3IHZvdGVc biIsCj4gKwkJCQkgIGNydGMtPmJhc2UuaWQpOwo+ICsJCQlyZXR1cm4gcmV0Owo+ICAJCX0KPiAg CX0KPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Nv cmVfcGVyZi5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJm LmgKPiBpbmRleCBmYmNiZTBjNzUyN2EuLjBmYjI3NjkyOWRjNSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY29yZV9wZXJmLmgKPiBAQCAtMzAsOCArMzAsOCBA QAo+ICAgKiBAY29yZV9jbGtfcmF0ZTogY29yZSBjbG9jayByYXRlIHJlcXVlc3QKPiAgICovCj4g IHN0cnVjdCBkcHVfY29yZV9wZXJmX3BhcmFtcyB7Cj4gLQl1NjQgbWF4X3Blcl9waXBlX2liW0RQ VV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVhdOwo+IC0JdTY0IGJ3X2N0bFtEUFVfUE9XRVJfSEFO RExFX0RCVVNfSURfTUFYXTsKPiArCXU2NCBtYXhfcGVyX3BpcGVfaWI7Cj4gKwl1NjQgYndfY3Rs Owo+ICAJdTY0IGNvcmVfY2xrX3JhdGU7Cj4gIH07Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiBpbmRleCBkNDUzMGQ2MDc2N2IuLjRlY2I2Zjk2ZTZiYSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+IEBAIC0xNDUw LDcgKzE0NTAsNiBAQCBzdGF0aWMgaW50IGRwdV9jcnRjX2RlYnVnZnNfc3RhdGVfc2hvdyhzdHJ1 Y3QKPiBzZXFfZmlsZSAqcywgdm9pZCAqdikKPiAgewo+ICAJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gKHN0cnVjdCBkcm1fY3J0YyAqKSBzLT5wcml2YXRlOwo+ICAJc3RydWN0IGRwdV9jcnRjICpk cHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOwo+IC0JaW50IGk7Cj4gCj4gIAlzZXFfcHJpbnRm KHMsICJjbGllbnQgdHlwZTogJWRcbiIsIGRwdV9jcnRjX2dldF9jbGllbnRfdHlwZShjcnRjKSk7 Cj4gIAlzZXFfcHJpbnRmKHMsICJpbnRmX21vZGU6ICVkXG4iLCBkcHVfY3J0Y19nZXRfaW50Zl9t b2RlKGNydGMpKTsKCk1pc3NlZCB1cGxvYWRpbmcgdGhlIHJlc3Qgb2YgdGhlIGNsZWFuIHVwIGNv ZGUgaW4gdGhpcyBmdW5jdGlvbi4KV2lsbCB1cGRhdGUgaW4gdGhlIHYyIHBhdGNoLgoKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5j Cj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmMKPiBp bmRleCBmYzE0MTE2Nzg5ZjIuLmQ1OGQwMTU0NDczMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFuZGxlLmMKPiBAQCAtMjQsMjAgKzI0LDYg QEAKPiAgI2luY2x1ZGUgImRwdV9wb3dlcl9oYW5kbGUuaCIKPiAgI2luY2x1ZGUgImRwdV90cmFj ZS5oIgo+IAo+IC1zdGF0aWMgY29uc3QgY2hhciAqZGF0YV9idXNfbmFtZVtEUFVfUE9XRVJfSEFO RExFX0RCVVNfSURfTUFYXSA9IHsKPiAtCVtEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQ10g PSAicWNvbSxkcHUtZGF0YS1idXMiLAo+IC0JW0RQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTEND XSA9ICJxY29tLGRwdS1sbGNjLWJ1cyIsCj4gLQlbRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VC SV0gPSAicWNvbSxkcHUtZWJpLWJ1cyIsCj4gLX07Cj4gLQo+IC1jb25zdCBjaGFyICpkcHVfcG93 ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUodTMyIGJ1c19pZCkKPiAtewo+IC0JaWYgKGJ1c19pZCA8 IERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9NQVgpCj4gLQkJcmV0dXJuIGRhdGFfYnVzX25hbWVb YnVzX2lkXTsKPiAtCj4gLQlyZXR1cm4gTlVMTDsKPiAtfQo+IC0KPiAgc3RhdGljIHZvaWQgZHB1 X3Bvd2VyX2V2ZW50X3RyaWdnZXJfbG9ja2VkKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxlIAo+ICpw aGFuZGxlLAo+ICAJCXUzMiBldmVudF90eXBlKQo+ICB7Cj4gQEAgLTY2LDcgKzUyLDYgQEAgc3Ry dWN0IGRwdV9wb3dlcl9jbGllbnQgKmRwdV9wb3dlcl9jbGllbnRfY3JlYXRlKAo+IAo+ICAJbXV0 ZXhfbG9jaygmcGhhbmRsZS0+cGhhbmRsZV9sb2NrKTsKPiAgCXN0cmxjcHkoY2xpZW50LT5uYW1l LCBjbGllbnRfbmFtZSwgTUFYX0NMSUVOVF9OQU1FX0xFTik7Cj4gLQljbGllbnQtPnVzZWNhc2Vf bmR4ID0gVk9URV9JTkRFWF9ESVNBQkxFOwo+ICAJY2xpZW50LT5pZCA9IGlkOwo+ICAJY2xpZW50 LT5hY3RpdmUgPSB0cnVlOwo+ICAJcHJfZGVidWcoImNsaWVudCAlcyBjcmVhdGVkOiVwSyBpZCA6 JWRcbiIsIGNsaWVudF9uYW1lLAo+IEBAIC0xNDMsOCArMTI4LDYgQEAgaW50IGRwdV9wb3dlcl9y ZXNvdXJjZV9lbmFibGUoc3RydWN0Cj4gZHB1X3Bvd2VyX2hhbmRsZSAqcGhhbmRsZSwKPiAgCXN0 cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpwY2xpZW50LCBib29sIGVuYWJsZSkKPiAgewo+ICAJYm9v bCBjaGFuZ2VkID0gZmFsc2U7Cj4gLQl1MzIgbWF4X3VzZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9E SVNBQkxFLCBwcmV2X3VzZWNhc2VfbmR4Owo+IC0Jc3RydWN0IGRwdV9wb3dlcl9jbGllbnQgKmNs aWVudDsKPiAgCXUzMiBldmVudF90eXBlOwo+IAo+ICAJaWYgKCFwaGFuZGxlIHx8ICFwY2xpZW50 KSB7Cj4gQEAgLTE1MywzMSArMTM2LDE5IEBAIGludCBkcHVfcG93ZXJfcmVzb3VyY2VfZW5hYmxl KHN0cnVjdAo+IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGUsCj4gIAl9Cj4gCj4gIAltdXRleF9s b2NrKCZwaGFuZGxlLT5waGFuZGxlX2xvY2spOwo+IC0JaWYgKGVuYWJsZSkKPiArCWlmIChlbmFi bGUpIHsKPiAgCQlwY2xpZW50LT5yZWZjb3VudCsrOwo+IC0JZWxzZSBpZiAocGNsaWVudC0+cmVm Y291bnQpCj4gKwkJaWYgKHBjbGllbnQtPnJlZmNvdW50ID09IDEpCj4gKwkJCWNoYW5nZWQgPSB0 cnVlOwo+ICsJfSBlbHNlIGlmIChwY2xpZW50LT5yZWZjb3VudCkgewo+ICAJCXBjbGllbnQtPnJl ZmNvdW50LS07Cj4gLQo+IC0JaWYgKHBjbGllbnQtPnJlZmNvdW50KQo+IC0JCXBjbGllbnQtPnVz ZWNhc2VfbmR4ID0gVk9URV9JTkRFWF9MT1c7Cj4gLQllbHNlCj4gLQkJcGNsaWVudC0+dXNlY2Fz ZV9uZHggPSBWT1RFX0lOREVYX0RJU0FCTEU7Cj4gLQo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShj bGllbnQsICZwaGFuZGxlLT5wb3dlcl9jbGllbnRfY2xpc3QsIGxpc3QpIHsKPiAtCQlpZiAoY2xp ZW50LT51c2VjYXNlX25keCA8IFZPVEVfSU5ERVhfTUFYICYmCj4gLQkJICAgIGNsaWVudC0+dXNl Y2FzZV9uZHggPiBtYXhfdXNlY2FzZV9uZHgpCj4gLQkJCW1heF91c2VjYXNlX25keCA9IGNsaWVu dC0+dXNlY2FzZV9uZHg7Cj4gLQl9Cj4gLQo+IC0JaWYgKHBoYW5kbGUtPmN1cnJlbnRfdXNlY2Fz ZV9uZHggIT0gbWF4X3VzZWNhc2VfbmR4KSB7Cj4gLQkJY2hhbmdlZCA9IHRydWU7Cj4gLQkJcHJl dl91c2VjYXNlX25keCA9IHBoYW5kbGUtPmN1cnJlbnRfdXNlY2FzZV9uZHg7Cj4gLQkJcGhhbmRs ZS0+Y3VycmVudF91c2VjYXNlX25keCA9IG1heF91c2VjYXNlX25keDsKPiArCQlpZiAoIXBjbGll bnQtPnJlZmNvdW50KQo+ICsJCQljaGFuZ2VkID0gdHJ1ZTsKPiAgCX0KPiAKPiAtCXByX2RlYnVn KCIlcFM6IGNoYW5nZWQ9JWQgY3VycmVudCBpZHg9JWQgcmVxdWVzdCBjbGllbnQgJXMgaWQ6JXUK PiBlbmFibGU6JWQgcmVmY291bnQ6JWRcbiIsCj4gLQkJX19idWlsdGluX3JldHVybl9hZGRyZXNz KDApLCBjaGFuZ2VkLCBtYXhfdXNlY2FzZV9uZHgsCj4gLQkJcGNsaWVudC0+bmFtZSwgcGNsaWVu dC0+aWQsIGVuYWJsZSwgcGNsaWVudC0+cmVmY291bnQpOwo+ICsJcHJfZGVidWcoIiVwUzpjaGFu Z2VkPSVkIGNsaWVudCAlcyBpZDoldSBlbmFibGU6JWQgcmVmY291bnQ6JWRcbiIsCj4gKwkJX19i dWlsdGluX3JldHVybl9hZGRyZXNzKDApLCBjaGFuZ2VkLCBwY2xpZW50LT5uYW1lLAo+ICsJCXBj bGllbnQtPmlkLCBlbmFibGUsIHBjbGllbnQtPnJlZmNvdW50KTsKPiAKPiAgCWlmICghY2hhbmdl ZCkKPiAgCQlnb3RvIGVuZDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X3Bvd2VyX2hhbmRsZS5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfcG93ZXJfaGFuZGxlLmgKPiBpbmRleCBhNjViN2EyOTdmMjEuLmIxYTVhZTRkNmY0ZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFu ZGxlLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcG93ZXJfaGFu ZGxlLmgKPiBAQCAtMTYsNzYgKzE2LDI4IEBACj4gCj4gICNkZWZpbmUgTUFYX0NMSUVOVF9OQU1F X0xFTiAxMjgKPiAKPiAtI2RlZmluZSBEUFVfUE9XRVJfSEFORExFX0VOQUJMRV9CVVNfQUJfUVVP VEEJMAo+IC0jZGVmaW5lIERQVV9QT1dFUl9IQU5ETEVfRElTQUJMRV9CVVNfQUJfUVVPVEEJMAo+ IC0jZGVmaW5lIERQVV9QT1dFUl9IQU5ETEVfRU5BQkxFX0JVU19JQl9RVU9UQQkxNjAwMDAwMDAw Cj4gLSNkZWZpbmUgRFBVX1BPV0VSX0hBTkRMRV9ESVNBQkxFX0JVU19JQl9RVU9UQQkwCj4gLQo+ ICAjaW5jbHVkZSAiZHB1X2lvX3V0aWwuaCIKPiAKPiAgLyogZXZlbnRzIHdpbGwgYmUgdHJpZ2dl cmVkIG9uIHBvd2VyIGhhbmRsZXIgZW5hYmxlL2Rpc2FibGUgKi8KPiAgI2RlZmluZSBEUFVfUE9X RVJfRVZFTlRfRElTQUJMRQlCSVQoMCkKPiAgI2RlZmluZSBEUFVfUE9XRVJfRVZFTlRfRU5BQkxF CUJJVCgxKQo+IAo+IC0vKioKPiAtICogbWRzc19idXNfdm90ZV90eXBlOiByZWdpc3RlciBidXMg dm90ZSB0eXBlCj4gLSAqIFZPVEVfSU5ERVhfRElTQUJMRTogcmVtb3ZlcyB0aGUgY2xpZW50IHZv dGUKPiAtICogVk9URV9JTkRFWF9MT1c6IGtlZXBzIHRoZSBsb3dlc3Qgdm90ZSBmb3IgcmVnaXN0 ZXIgYnVzCj4gLSAqIFZPVEVfSU5ERVhfTUFYOiBpbnZhbGlkCj4gLSAqLwo+IC1lbnVtIG1kc3Nf YnVzX3ZvdGVfdHlwZSB7Cj4gLQlWT1RFX0lOREVYX0RJU0FCTEUsCj4gLQlWT1RFX0lOREVYX0xP VywKPiAtCVZPVEVfSU5ERVhfTUFYLAo+IC19Owo+IC0KPiAtLyoqCj4gLSAqIGVudW0gZHB1X3Bv d2VyX2hhbmRsZV9kYXRhX2J1c19jbGllbnQgLSB0eXBlIG9mIGF4aSBidXMgY2xpZW50cwo+IC0g KiBARFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfUlQ6IGNvcmUgcmVhbC10aW1lIGJ1 cyBjbGllbnQKPiAtICogQERQVV9QT1dFUl9IQU5ETEVfREFUQV9CVVNfQ0xJRU5UX05SVDogY29y ZSBub24tcmVhbC10aW1lIGJ1cyAKPiBjbGllbnQKPiAtICogQERQVV9QT1dFUl9IQU5ETEVfREFU QV9CVVNfQ0xJRU5UX01BWDogbWF4aW11bSBudW1iZXIgb2YgYnVzIGNsaWVudCAKPiB0eXBlCj4g LSAqLwo+IC1lbnVtIGRwdV9wb3dlcl9oYW5kbGVfZGF0YV9idXNfY2xpZW50IHsKPiAtCURQVV9Q T1dFUl9IQU5ETEVfREFUQV9CVVNfQ0xJRU5UX1JULAo+IC0JRFBVX1BPV0VSX0hBTkRMRV9EQVRB X0JVU19DTElFTlRfTlJULAo+IC0JRFBVX1BPV0VSX0hBTkRMRV9EQVRBX0JVU19DTElFTlRfTUFY Cj4gLX07Cj4gLQo+IC0vKioKPiAtICogZW51bSBEUFVfUE9XRVJfSEFORExFX0RCVVNfSUQgLSBk YXRhIGJ1cyBpZGVudGlmaWVyCj4gLSAqIEBEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQzog RFBVL01OT0MgZGF0YSBidXMKPiAtICogQERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9MTENDOiBN Tk9DL0xMQ0MgZGF0YSBidXMKPiAtICogQERQVV9QT1dFUl9IQU5ETEVfREJVU19JRF9FQkk6IExM Q0MvRUJJIGRhdGEgYnVzCj4gLSAqLwo+IC1lbnVtIERQVV9QT1dFUl9IQU5ETEVfREJVU19JRCB7 Cj4gLQlEUFVfUE9XRVJfSEFORExFX0RCVVNfSURfTU5PQywKPiAtCURQVV9QT1dFUl9IQU5ETEVf REJVU19JRF9MTENDLAo+IC0JRFBVX1BPV0VSX0hBTkRMRV9EQlVTX0lEX0VCSSwKPiAtCURQVV9Q T1dFUl9IQU5ETEVfREJVU19JRF9NQVgsCj4gLX07Cj4gLQo+ICAvKioKPiAgICogc3RydWN0IGRw dV9wb3dlcl9jbGllbnQ6IHN0b3JlcyB0aGUgcG93ZXIgY2xpZW50IGZvciBkcHUgZHJpdmVyCj4g ICAqIEBuYW1lOgluYW1lIG9mIHRoZSBjbGllbnQKPiAtICogQHVzZWNhc2VfbmR4OiBjdXJyZW50 IHJlZ3MgYnVzIHZvdGUgdHlwZQo+ICAgKiBAcmVmY291bnQ6CWN1cnJlbnQgcmVmY291bnQgaWYg bXVsdGlwbGUgbW9kdWxlcyBhcmUgdXNpbmcgc2FtZQo+ICAgKiAgICAgICAgICAgICAgc2FtZSBj bGllbnQgZm9yIGVuYWJsZS9kaXNhYmxlLiBQb3dlciBtb2R1bGUgd2lsbAo+ICAgKiAgICAgICAg ICAgICAgYWdncmVnYXRlIHRoZSByZWZjb3VudCBhbmQgdm90ZSBhY2NvcmRpbmdseSBmb3IgdGhp cwo+ICAgKiAgICAgICAgICAgICAgY2xpZW50Lgo+ICAgKiBAaWQ6CQlhc3NpZ25lZCBkdXJpbmcg Y3JlYXRlLiBoZWxwcyBmb3IgZGVidWdnaW5nLgo+ICAgKiBAbGlzdDoJbGlzdCB0byBhdHRhY2gg cG93ZXIgaGFuZGxlIG1hc3RlciBsaXN0Cj4gLSAqIEBhYjogICAgICAgICBhcmJpdHJhdGVkIGJh bmR3aWR0aCBmb3IgZWFjaCBidXMgY2xpZW50Cj4gLSAqIEBpYjogICAgICAgICBpbnN0YW50YW5l b3VzIGJhbmR3aWR0aCBmb3IgZWFjaCBidXMgY2xpZW50Cj4gICAqIEBhY3RpdmU6CWluaWRjYXRl cyB0aGUgc3RhdGUgb2YgZHB1IHBvd2VyIGhhbmRsZQo+ICAgKi8KPiAgc3RydWN0IGRwdV9wb3dl cl9jbGllbnQgewo+ICAJY2hhciBuYW1lW01BWF9DTElFTlRfTkFNRV9MRU5dOwo+IC0Jc2hvcnQg dXNlY2FzZV9uZHg7Cj4gIAlzaG9ydCByZWZjb3VudDsKPiAgCXUzMiBpZDsKPiAgCXN0cnVjdCBs aXN0X2hlYWQgbGlzdDsKPiAtCXU2NCBhYltEUFVfUE9XRVJfSEFORExFX0RBVEFfQlVTX0NMSUVO VF9NQVhdOwo+IC0JdTY0IGliW0RQVV9QT1dFUl9IQU5ETEVfREFUQV9CVVNfQ0xJRU5UX01BWF07 Cj4gIAlib29sIGFjdGl2ZTsKPiAgfTsKPiAKPiBAQCAtMTEyLDE0ICs2NCwxMiBAQCBzdHJ1Y3Qg ZHB1X3Bvd2VyX2V2ZW50IHsKPiAgICogQGNsaWVudF9jbGlzdDogbWFzdGVyIGxpc3QgdG8gc3Rv cmUgYWxsIGNsaWVudHMKPiAgICogQHBoYW5kbGVfbG9jazogbG9jayB0byBzeW5jaHJvbml6ZSB0 aGUgZW5hYmxlL2Rpc2FibGUKPiAgICogQGRldjogcG9pbnRlciB0byBkZXZpY2Ugc3RydWN0dXJl Cj4gLSAqIEB1c2VjYXNlX25keDogY3VycmVudCB1c2VjYXNlIGluZGV4Cj4gICAqIEBldmVudF9s aXN0OiBjdXJyZW50IHBvd2VyIGhhbmRsZSBldmVudCBsaXN0Cj4gICAqLwo+ICBzdHJ1Y3QgZHB1 X3Bvd2VyX2hhbmRsZSB7Cj4gIAlzdHJ1Y3QgbGlzdF9oZWFkIHBvd2VyX2NsaWVudF9jbGlzdDsK PiAgCXN0cnVjdCBtdXRleCBwaGFuZGxlX2xvY2s7Cj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4g LQl1MzIgY3VycmVudF91c2VjYXNlX25keDsKPiAgCXN0cnVjdCBsaXN0X2hlYWQgZXZlbnRfbGlz dDsKPiAgfTsKPiAKPiBAQCAtMTcyLDE3ICsxMjIsNiBAQCB2b2lkIGRwdV9wb3dlcl9jbGllbnRf ZGVzdHJveShzdHJ1Y3QKPiBkcHVfcG93ZXJfaGFuZGxlICpwaGFuZGxlLAo+ICBpbnQgZHB1X3Bv d2VyX3Jlc291cmNlX2VuYWJsZShzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAqcGRhdGEsCj4gIAlz dHJ1Y3QgZHB1X3Bvd2VyX2NsaWVudCAqcGNsaWVudCwgYm9vbCBlbmFibGUpOwo+IAo+IC0vKioK PiAtICogZHB1X3Bvd2VyX2RhdGFfYnVzX2JhbmR3aWR0aF9jdHJsKCkgLSBjb250cm9sIGRhdGEg YnVzIGJhbmR3aWR0aCAKPiBlbmFibGUKPiAtICogQHBoYW5kbGU6ICBwb3dlciBoYW5kbGUgY29u dGFpbmluZyB0aGUgcmVzb3VyY2VzCj4gLSAqIEBjbGllbnQ6IGNsaWVudCBpbmZvcm1hdGlvbiB0 byBiYW5kd2lkdGggY29udHJvbAo+IC0gKiBAZW5hYmxlOiB0cnVlIHRvIGVuYWJsZSBiYW5kd2lk dGggZm9yIGRhdGEgYmFzZQo+IC0gKgo+IC0gKiBSZXR1cm46IG5vbmUKPiAtICovCj4gLXZvaWQg ZHB1X3Bvd2VyX2RhdGFfYnVzX2JhbmR3aWR0aF9jdHJsKHN0cnVjdCBkcHVfcG93ZXJfaGFuZGxl IAo+ICpwaGFuZGxlLAo+IC0JCXN0cnVjdCBkcHVfcG93ZXJfY2xpZW50ICpwY2xpZW50LCBpbnQg ZW5hYmxlKTsKPiAtCj4gIC8qKgo+ICAgKiBkcHVfcG93ZXJfaGFuZGxlX3JlZ2lzdGVyX2V2ZW50 IC0gcmVnaXN0ZXIgYSBjYWxsYmFjayBmdW5jdGlvbiBmb3IgCj4gYW4gZXZlbnQuCj4gICAqCUNs aWVudHMgY2FuIHJlZ2lzdGVyIGZvciBtdWx0aXBsZSBldmVudHMgd2l0aCBhIHNpbmdsZSByZWdp c3Rlci4KPiBAQCAtMjA3LDExICsxNDYsNCBAQCBzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50IAo+ICpk cHVfcG93ZXJfaGFuZGxlX3JlZ2lzdGVyX2V2ZW50KAo+ICB2b2lkIGRwdV9wb3dlcl9oYW5kbGVf dW5yZWdpc3Rlcl9ldmVudChzdHJ1Y3QgZHB1X3Bvd2VyX2hhbmRsZSAKPiAqcGhhbmRsZSwKPiAg CQlzdHJ1Y3QgZHB1X3Bvd2VyX2V2ZW50ICpldmVudCk7Cj4gCj4gLS8qKgo+IC0gKiBkcHVfcG93 ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUgLSBnZXQgbmFtZSBvZiBnaXZlbiBkYXRhIGJ1cyAKPiBp ZGVudGlmaWVyCj4gLSAqIEBidXNfaWQ6CWRhdGEgYnVzIGlkZW50aWZpZXIKPiAtICogUmV0dXJu OglQb2ludGVyIHRvIG5hbWUgc3RyaW5nIGlmIHN1Y2Nlc3M7IE5VTEwgb3RoZXJ3aXNlCj4gLSAq Lwo+IC1jb25zdCBjaGFyICpkcHVfcG93ZXJfaGFuZGxlX2dldF9kYnVzX25hbWUodTMyIGJ1c19p ZCk7Cj4gLQo+ICAjZW5kaWYgLyogX0RQVV9QT1dFUl9IQU5ETEVfSF8gKi8KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3RyYWNlLmgKPiBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV90cmFjZS5oCj4gaW5kZXggNjM2YjMxYjBkMzExLi43 MmEzMmU5YjVjYTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X3RyYWNlLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfdHJh Y2UuaAo+IEBAIC0xNjcsMTYgKzE2NywxMyBAQCBUUkFDRV9FVkVOVChkcHVfdHJhY2VfY291bnRl ciwKPiAgKQo+IAo+ICBUUkFDRV9FVkVOVChkcHVfcGVyZl9jcnRjX3VwZGF0ZSwKPiAtCVRQX1BS T1RPKHUzMiBjcnRjLCB1NjQgYndfY3RsX21ub2MsIHU2NCBid19jdGxfbGxjYywKPiAtCQkJdTY0 IGJ3X2N0bF9lYmksIHUzMiBjb3JlX2Nsa19yYXRlLAo+IC0JCQlib29sIHN0b3BfcmVxLCB1MzIg dXBkYXRlX2J1cywgdTMyIHVwZGF0ZV9jbGspLAo+IC0JVFBfQVJHUyhjcnRjLCBid19jdGxfbW5v YywgYndfY3RsX2xsY2MsIGJ3X2N0bF9lYmksIGNvcmVfY2xrX3JhdGUsCj4gKwlUUF9QUk9UTyh1 MzIgY3J0YywgdTY0IGJ3X2N0bCwgdTMyIGNvcmVfY2xrX3JhdGUsCj4gKwkJCWJvb2wgc3RvcF9y ZXEsIGJvb2wgdXBkYXRlX2J1cywgYm9vbCB1cGRhdGVfY2xrKSwKPiArCVRQX0FSR1MoY3J0Yywg YndfY3RsLCBjb3JlX2Nsa19yYXRlLAo+ICAJCXN0b3BfcmVxLCB1cGRhdGVfYnVzLCB1cGRhdGVf Y2xrKSwKPiAgCVRQX1NUUlVDVF9fZW50cnkoCj4gIAkJCV9fZmllbGQodTMyLCBjcnRjKQo+IC0J CQlfX2ZpZWxkKHU2NCwgYndfY3RsX21ub2MpCj4gLQkJCV9fZmllbGQodTY0LCBid19jdGxfbGxj YykKPiAtCQkJX19maWVsZCh1NjQsIGJ3X2N0bF9lYmkpCj4gKwkJCV9fZmllbGQodTY0LCBid19j dGwpCj4gIAkJCV9fZmllbGQodTMyLCBjb3JlX2Nsa19yYXRlKQo+ICAJCQlfX2ZpZWxkKGJvb2ws IHN0b3BfcmVxKQo+ICAJCQlfX2ZpZWxkKHUzMiwgdXBkYXRlX2J1cykKPiBAQCAtMTg0LDIwICsx ODEsMTYgQEAgVFJBQ0VfRVZFTlQoZHB1X3BlcmZfY3J0Y191cGRhdGUsCj4gIAkpLAo+ICAJVFBf ZmFzdF9hc3NpZ24oCj4gIAkJCV9fZW50cnktPmNydGMgPSBjcnRjOwo+IC0JCQlfX2VudHJ5LT5i d19jdGxfbW5vYyA9IGJ3X2N0bF9tbm9jOwo+IC0JCQlfX2VudHJ5LT5id19jdGxfbGxjYyA9IGJ3 X2N0bF9sbGNjOwo+IC0JCQlfX2VudHJ5LT5id19jdGxfZWJpID0gYndfY3RsX2ViaTsKPiArCQkJ X19lbnRyeS0+YndfY3RsID0gYndfY3RsOwo+ICAJCQlfX2VudHJ5LT5jb3JlX2Nsa19yYXRlID0g Y29yZV9jbGtfcmF0ZTsKPiAgCQkJX19lbnRyeS0+c3RvcF9yZXEgPSBzdG9wX3JlcTsKPiAgCQkJ X19lbnRyeS0+dXBkYXRlX2J1cyA9IHVwZGF0ZV9idXM7Cj4gIAkJCV9fZW50cnktPnVwZGF0ZV9j bGsgPSB1cGRhdGVfY2xrOwo+ICAJKSwKPiAgCSBUUF9wcmludGsoCj4gLQkJImNydGM9JWQgYndf bW5vYz0lbGx1IGJ3X2xsY2M9JWxsdSBid19lYmk9JWxsdSBjbGtfcmF0ZT0ldQo+IHN0b3BfcmVx PSVkIHVfYnVzPSVkIHVfY2xrPSVkIiwKPiArCQkiY3J0Yz0lZCBid19jdGw9JWxsdSBjbGtfcmF0 ZT0ldSBzdG9wX3JlcT0lZCB1X2J1cz0lZCB1X2Nsaz0lZCIsCj4gIAkJCV9fZW50cnktPmNydGMs Cj4gLQkJCV9fZW50cnktPmJ3X2N0bF9tbm9jLAo+IC0JCQlfX2VudHJ5LT5id19jdGxfbGxjYywK PiAtCQkJX19lbnRyeS0+YndfY3RsX2ViaSwKPiArCQkJX19lbnRyeS0+YndfY3RsLAo+ICAJCQlf X2VudHJ5LT5jb3JlX2Nsa19yYXRlLAo+ICAJCQlfX2VudHJ5LT5zdG9wX3JlcSwKPiAgCQkJX19l bnRyeS0+dXBkYXRlX2J1cywKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJl ZWRyZW5vCg==