From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 01/14] drm: add new plane property FB_DAMAGE_CLIPS to send damage during plane update Date: Thu, 6 Sep 2018 09:42:49 +0200 Message-ID: <20180906074249.GM4929@phenom.ffwll.local> References: <20180905233901.2321-1-drawat@vmware.com> <20180905233901.2321-2-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id D794B6E05B for ; Thu, 6 Sep 2018 07:42:53 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id y20-v6so8129794edq.2 for ; Thu, 06 Sep 2018 00:42:53 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180905233901.2321-2-drawat@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Deepak Rawat Cc: thellstrom@vmware.com, dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, lukasz.spintzyk@displaylink.com List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBTZXAgMDUsIDIwMTggYXQgMDQ6Mzg6NDhQTSAtMDcwMCwgRGVlcGFrIFJhd2F0IHdy b3RlOgo+IEZyb206IEx1a2FzeiBTcGludHp5ayA8bHVrYXN6LnNwaW50enlrQGRpc3BsYXlsaW5r LmNvbT4KPiAKPiBGQl9EQU1BR0VfQ0xJUFMgaXMgYW4gb3B0aW9uYWwgcGxhbmUgcHJvcGVydHkg dG8gbWFyayBkYW1hZ2VkIHJlZ2lvbnMKPiBvbiB0aGUgcGxhbmUgaW4gZnJhbWVidWZmZXIgY29v cmRpbmF0ZXMgb2YgdGhlIGZyYW1lYnVmZmVyIGF0dGFjaGVkIHRvCj4gdGhlIHBsYW5lLgo+IAo+ IFRoZSBsYXlvdXQgb2YgYmxvYiBkYXRhIGlzIHNpbXBseSBhbiBhcnJheSBvZiAic3RydWN0IGRy bV9tb2RlX3JlY3QiCj4gd2l0aCBtYXhpbXVtIGFycmF5IHNpemUgbGltaXRlZCBieSBEUk1fTU9E RV9GQl9ESVJUWV9NQVhfQ0xJUFMuIFVubGlrZQo+IHBsYW5lIHNyYyBjb29yZGluYXRlcywgZGFt YWdlIGNsaXBzIGFyZSBub3QgaW4gMTYuMTYgZml4ZWQgcG9pbnQuIEFzCj4gcGxhbmUgc3JjIGlu IGZyYW1lYnVmZmVyIGNhbm5vdCBiZSBuZWdhdGl2ZSBzbyBhcmUgZGFtYWdlIGNsaXBzLiBJbgo+ IGRhbWFnZSBjbGlwLCB4MS95MSBhcmUgaW5jbHVzaXZlIGFuZCB4Mi95MiBhcmUgZXhjbHVzaXZl Lgo+IAo+IFRoaXMgcGF0Y2ggYWxzbyBleHBvcnRzIHRoZSBrZXJuZWwgaW50ZXJuYWwgZHJtX3Jl Y3QgdG8gdXNlcnNwYWNlIGFzCj4gZHJtX21vZGVfcmVjdC4gVGhpcyBpcyBiZWNhdXNlICJzdHJ1 Y3QgZHJtX2NsaXBfcmVjdCIgaXMgbm90IHN1ZmZpY2llbnQKPiB0byByZXByZXNlbnQgZGFtYWdl IGZvciBjdXJyZW50IHBsYW5lIHNpemUuCj4gCj4gVXBwZXIgbGltaXQgaXMgc2V0IG9uIHRoZSBt YXhpbXVtIG51bWJlciBvZiBkYW1hZ2UgY2xpcHMgdG8gYXZvaWQKPiBvdmVyZmxvdyBieSB1c2Vy LXNwYWNlLgo+IAo+IERyaXZlciB3aGljaCBhcmUgaW50ZXJlc3RlZCBpbiBlbmFibGluZyBGQl9E QU1BR0VfQ0xJUFMgcHJvcGVydHkgZm9yIGEKPiBwbGFuZSBzaG91bGQgZW5hYmxlIHRoaXMgcHJv cGVydHkgdXNpbmcgZHJtX3BsYW5lX2VuYWJsZV9kYW1hZ2VfY2xpcHMuCj4gCj4gU2lnbmVkLW9m Zi1ieTogTHVrYXN6IFNwaW50enlrIDxsdWthc3ouc3BpbnR6eWtAZGlzcGxheWxpbmsuY29tPgo+ IFNpZ25lZC1vZmYtYnk6IERlZXBhayBSYXdhdCA8ZHJhd2F0QHZtd2FyZS5jb20+Cj4gLS0tCj4g IERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0ICAgICAgIHwgIDkgKysrCj4gIGRyaXZlcnMv Z3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYyAgICAgICAgfCAxMyArKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jIHwgIDQgKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMg fCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X21vZGVfY29uZmlnLmMgICB8ICA2ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2ttcy5jIHwgIDEgKwo+ICBpbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oICAgICB8IDYz ICsrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oICAg ICAgIHwgMTAgKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fcGxhbmUuaCAgICAgICAgICAgICB8ICA4 ICsrKwo+ICBpbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmggICAgICAgICB8IDE5ICsrKysrKwo+ ICAxMSBmaWxlcyBjaGFuZ2VkLCAyMjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ICBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmMKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9kYW1hZ2VfaGVscGVyLmgKPiAKPiBk aWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9ncHUvZHJtLWttcy5yc3QgYi9Eb2N1bWVudGF0aW9u L2dwdS9kcm0ta21zLnJzdAo+IGluZGV4IDVkZWU2YjhhNGMxMi4uNzhiNjZlNjI4ODU3IDEwMDY0 NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMucnN0Cj4gKysrIGIvRG9jdW1lbnRh dGlvbi9ncHUvZHJtLWttcy5yc3QKPiBAQCAtNTQyLDYgKzU0MiwxNSBAQCBQbGFuZSBDb21wb3Np dGlvbiBQcm9wZXJ0aWVzCj4gIC4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2Js ZW5kLmMKPiAgICAgOmV4cG9ydDoKPiAgCj4gK0ZCX0RBTUFHRV9DTElQUwo+ICt+fn5+fn5+fn5+ fn5+fn4KPiArCj4gKy4uIGtlcm5lbC1kb2M6OiBkcml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9o ZWxwZXIuYwo+ICsgICA6ZG9jOiBvdmVydmlldwo+ICsKPiArLi4ga2VybmVsLWRvYzo6IGRyaXZl cnMvZ3B1L2RybS9kcm1fZGFtYWdlX2hlbHBlci5jCj4gKyAgIDpleHBvcnQ6CgpZb3UgZm9yZ290 IHRvIGluY2x1ZGUgeW91ciBuaWNlIGtlcm5lbGRvYyBmcm9tIHRoZSBoZWFkZXIuIFBsZWFzZSBy dW4KCiQgbWFrZSBodG1sZG9jcwoKYW5kIG1ha2Ugc3VyZSB0aGUgZ2VuZXJhdGVkIHN0dWZmIGxv b2tzIGFsbCBuaWNlIGFuZCBpcyBjb21wbGV0ZS4KCj4gKwo+ICBDb2xvciBNYW5hZ2VtZW50IFBy b3BlcnRpZXMKPiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiBp bmRleCBhNjc3MWNlZjg1ZTIuLmNhNWJlMGRlY2IzZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUKPiBAQCAtMzUs NyArMzUsNyBAQCBkcm1fa21zX2hlbHBlci15IDo9IGRybV9jcnRjX2hlbHBlci5vIGRybV9kcF9o ZWxwZXIubyBkcm1fcHJvYmVfaGVscGVyLm8gXAo+ICAJCWRybV9wbGFuZV9oZWxwZXIubyBkcm1f ZHBfbXN0X3RvcG9sb2d5Lm8gZHJtX2F0b21pY19oZWxwZXIubyBcCj4gIAkJZHJtX2ttc19oZWxw ZXJfY29tbW9uLm8gZHJtX2RwX2R1YWxfbW9kZV9oZWxwZXIubyBcCj4gIAkJZHJtX3NpbXBsZV9r bXNfaGVscGVyLm8gZHJtX21vZGVzZXRfaGVscGVyLm8gXAo+IC0JCWRybV9zY2RjX2hlbHBlci5v IGRybV9nZW1fZnJhbWVidWZmZXJfaGVscGVyLm8KPiArCQlkcm1fc2NkY19oZWxwZXIubyBkcm1f Z2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5vIGRybV9kYW1hZ2VfaGVscGVyLm8KPiAgCj4gIGRybV9r bXNfaGVscGVyLSQoQ09ORklHX0RSTV9QQU5FTF9CUklER0UpICs9IGJyaWRnZS9wYW5lbC5vCj4g IGRybV9rbXNfaGVscGVyLSQoQ09ORklHX0RSTV9GQkRFVl9FTVVMQVRJT04pICs9IGRybV9mYl9o ZWxwZXIubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IGluZGV4IDNlYjA2MWUxMWUyZS4uNjUyZTc4Y2Ex ZjgxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gQEAgLTg1Nyw2ICs4NTcsOCBAQCBzdGF0aWMg aW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKPiAgCXN0cnVj dCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+ICsJYm9vbCBy ZXBsYWNlZCA9IGZhbHNlOwo+ICsJaW50IHJldDsKPiAgCj4gIAlpZiAocHJvcGVydHkgPT0gY29u ZmlnLT5wcm9wX2ZiX2lkKSB7Cj4gIAkJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBkcm1f ZnJhbWVidWZmZXJfbG9va3VwKGRldiwgTlVMTCwgdmFsKTsKPiBAQCAtOTA4LDYgKzkxMCwxNCBA QCBzdGF0aWMgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAo+ICAJCXN0YXRlLT5jb2xvcl9lbmNvZGluZyA9IHZhbDsKPiAgCX0gZWxzZSBp ZiAocHJvcGVydHkgPT0gcGxhbmUtPmNvbG9yX3JhbmdlX3Byb3BlcnR5KSB7Cj4gIAkJc3RhdGUt PmNvbG9yX3JhbmdlID0gdmFsOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnBy b3BfZmJfZGFtYWdlX2NsaXBzKSB7Cj4gKwkJcmV0ID0gZHJtX2F0b21pY19yZXBsYWNlX3Byb3Bl cnR5X2Jsb2JfZnJvbV9pZChkZXYsCj4gKwkJCQkJJnN0YXRlLT5mYl9kYW1hZ2VfY2xpcHMsCj4g KwkJCQkJdmFsLAo+ICsJCQkJCS0xLAo+ICsJCQkJCXNpemVvZihzdHJ1Y3QgZHJtX3JlY3QpLAo+ ICsJCQkJCSZyZXBsYWNlZCk7Cj4gKwkJcmV0dXJuIHJldDsKPiAgCX0gZWxzZSBpZiAocGxhbmUt PmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KSB7Cj4gIAkJcmV0dXJuIHBsYW5lLT5mdW5jcy0+ YXRvbWljX3NldF9wcm9wZXJ0eShwbGFuZSwgc3RhdGUsCj4gIAkJCQlwcm9wZXJ0eSwgdmFsKTsK PiBAQCAtOTc2LDYgKzk4Niw5IEBAIGRybV9hdG9taWNfcGxhbmVfZ2V0X3Byb3BlcnR5KHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCSp2YWwgPSBzdGF0ZS0+Y29sb3JfZW5jb2Rpbmc7Cj4g IAl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5nZV9wcm9wZXJ0eSkgewo+ ICAJCSp2YWwgPSBzdGF0ZS0+Y29sb3JfcmFuZ2U7Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGNvbmZpZy0+cHJvcF9mYl9kYW1hZ2VfY2xpcHMpIHsKPiArCQkqdmFsID0gKHN0YXRlLT5mYl9k YW1hZ2VfY2xpcHMpID8KPiArCQkJc3RhdGUtPmZiX2RhbWFnZV9jbGlwcy0+YmFzZS5pZCA6IDA7 Cj4gIAl9IGVsc2UgaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkgewo+ICAJ CXJldHVybiBwbGFuZS0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkocGxhbmUsIHN0YXRlLCBw cm9wZXJ0eSwgdmFsKTsKPiAgCX0gZWxzZSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMKPiBpbmRleCA4MGJlNzRkZjdiYTYuLmJlODNlMjc2M2MxOCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTM1NzYsNiArMzU3Niw3IEBAIHZvaWQgZHJtX2F0b21p Y19oZWxwZXJfcGxhbmVfcmVzZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gIAkJLyogUmVz ZXQgdGhlIGFscGhhIHZhbHVlIHRvIGZ1bGx5IG9wYXF1ZSBpZiBpdCBtYXR0ZXJzICovCj4gIAkJ aWYgKHBsYW5lLT5hbHBoYV9wcm9wZXJ0eSkKPiAgCQkJcGxhbmUtPnN0YXRlLT5hbHBoYSA9IHBs YW5lLT5hbHBoYV9wcm9wZXJ0eS0+dmFsdWVzWzFdOwo+ICsJCXBsYW5lLT5zdGF0ZS0+ZmJfZGFt YWdlX2NsaXBzID0gTlVMTDsKCk5vIG5lZWQgdG8gc2V0IHRvIDAsIHdlIHJlcXVpcmUga3phbGxv Yy4KCj4gIAl9Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9y ZXNldCk7Cj4gQEAgLTM1OTgsNiArMzU5OSw3IEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBlcl9w bGFuZV9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAo+ICAJc3Rh dGUtPmZlbmNlID0gTlVMTDsKPiAgCXN0YXRlLT5jb21taXQgPSBOVUxMOwo+ICsJc3RhdGUtPmZi X2RhbWFnZV9jbGlwcyA9IE5VTEw7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNf aGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZSk7Cj4gIAo+IEBAIC0zNjQyLDYgKzM2NDQsOCBA QCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpzdGF0ZSkKPiAgCj4gIAlpZiAoc3RhdGUtPmNvbW1pdCkKPiAgCQlkcm1f Y3J0Y19jb21taXRfcHV0KHN0YXRlLT5jb21taXQpOwo+ICsKPiArCWRybV9wcm9wZXJ0eV9ibG9i X3B1dChzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKF9fZHJt X2F0b21pY19oZWxwZXJfcGxhbmVfZGVzdHJveV9zdGF0ZSk7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2RhbWFnZV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZGFtYWdlX2hlbHBlci5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAw MDAuLjNlN2RlNWFmZTdmNgo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2RhbWFnZV9oZWxwZXIuYwo+IEBAIC0wLDAgKzEsOTIgQEAKPiArLy8gU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgTUlUCj4gKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+ICsgKgo+ ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTggVk13YXJlLCBJbmMuLCBQYWxvIEFsdG8sIENBLiwgVVNB Cj4gKyAqIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4g KyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp bGVzICh0aGUKPiArICogIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwo+ICsgKiB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCj4gKyAqIGRpc3RyaWJ1 dGUsIHN1YiBsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8KPiArICogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvCj4gKyAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiAr ICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2UgKGluY2x1ZGluZyB0aGUKPiArICogbmV4dCBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1 ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMKPiArICogb2YgdGhlIFNv ZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lU SE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTi1JTkZSSU5H RU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSUywgQVVU SE9SUyBBTkQvT1IgSVRTIFNVUFBMSUVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKPiArICog REFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRS QUNULCBUT1JUIE9SCj4gKyAqIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4g Q09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKPiArICogVVNFIE9SIE9USEVSIERF QUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArICogQXV0aG9yczoKPiArICogRGVlcGFr IFJhd2F0IDxkcmF3YXRAdm13YXJlLmNvbT4KPiArICoKPiArICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwo+ ICsKPiArI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2RhbWFnZV9o ZWxwZXIuaD4KPiArCj4gKy8qKgo+ICsgKiBET0M6IG92ZXJ2aWV3Cj4gKyAqCj4gKyAqIEZCX0RB TUFHRV9DTElQUyBpcyBhbiBvcHRpb25hbCBwbGFuZSBwcm9wZXJ0eSB3aGljaCBwcm92aWRlcyBh IG1lYW5zIHRvCj4gKyAqIHNwZWNpZnkgYSBsaXN0IG9mIGRhbWFnZSByZWN0YW5nbGVzIG9uIGEg cGxhbmUgaW4gZnJhbWVidWZmZXIgY29vcmRpbmF0ZXMgb2YKPiArICogdGhlIGZyYW1lYnVmZmVy IGF0dGFjaGVkIHRvIHRoZSBwbGFuZS4gSW4gY3VycmVudCBjb250ZXh0IGRhbWFnZSBpcyB0aGUg YXJlYQo+ICsgKiBvZiBwbGFuZSBmcmFtZWJ1ZmZlciAoZXhjbHVkaW5nIHRoZSBmcmFtZWJ1ZmZl ciBhcmVhIHdoaWNoIGlzIG91dHNpZGUgb2YKPiArICogcGxhbmUgc3JjKSB0aGF0IGhhcyBjaGFu Z2VkIHNpbmNlIGxhc3QgcGxhbmUgdXBkYXRlIChhbHNvIGNhbGxlZCBwYWdlLWZsaXApLgo+ICsg KiBPbmx5IHRoZSBhcmVhIGluc2lkZSBkYW1hZ2UgcmVjdGFuZ2xlcyB3aWxsIGJlIGNvbnNpZGVy ZWQgZGlmZmVyZW50IHdoZXRoZXIKPiArICogY3VycmVudGx5IGF0dGFjaGVkIGZyYW1lYnVmZmVy IGlzIHNhbWUgYXMgZnJhbWVidWZmZXIgYXR0YWNoZWQgZHVyaW5nIGxhc3QKPiArICogcGxhbmUg dXBkYXRlIG9yIG5vdC4KPiArICoKPiArICogRkJfREFNQUdFX0NMSVBTIGlzIGEgaGludCB0byBr ZXJuZWwgd2hpY2ggY291bGQgYmUgaGVscGZ1bCBmb3Igc29tZSBkcml2ZXJzCj4gKyAqIHRvIG9w dGltaXplIGludGVybmFsbHkgZXNwZWNpYWxseSBmb3IgdmlydHVhbCBkZXZpY2VzIHdoZXJlIGVh Y2ggZnJhbWVidWZmZXIKPiArICogY2hhbmdlIG5lZWRzIHRvIGJlIHRyYW5zbWl0dGVkIG92ZXIg bmV0d29yaywgdXNiLCBldGMuCj4gKyAqCj4gKyAqIFNpbmNlIEZCX0RBTUFHRV9DTElQUyBpcyBh IGhpbnQgc28gaXQgaXMgYW4gb3B0aW9uYWwgcHJvcGVydHkuIFVzZXItc3BhY2UgY2FuCj4gKyAq IGlnbm9yZSB0aGUgZGFtYWdlIGNsaXBzIHByb3BlcnR5IGFuZCBpbiB0aGF0IGNhc2Uga2VybmVs IHdpbGwgZG8gYSBmdWxsIHBsYW5lCj4gKyAqIHVwZGF0ZS4gSW4gY2FzZSBkYW1hZ2UgY2xpcHMg YXJlIHByb3ZpZGVkIHRoZW4gaXQgaXMgZ3VhcmFudGVlZCB0aGF0IHRoZSBhcmVhCj4gKyAqIGlu c2lkZSBkYW1hZ2UgY2xpcHMgd2lsbCBiZSB1cGRhdGVkIHRvIHBsYW5lLiBGb3IgZWZmaWNpZW5j eSBrZXJuZWwgY2FuIGRvCj4gKyAqIGZ1bGwgdXBkYXRlIG9yIG1vcmUgYXJlYSB0aGFuIHNwZWNp ZmllZCBpbiBkYW1hZ2UgY2xpcHMuCj4gKyAqCj4gKyAqIEZCX0RBTUFHRV9DTElQUyBpcyBhIGJs b2IgcHJvcGVydHkgd2l0aCB0aGUgbGF5b3V0IG9mIGJsb2IgZGF0YSBpcyBzaW1wbHkgYW4KPiAr ICogYXJyYXkgb2YgZHJtX21vZGVfcmVjdChpbnRlcm5hbGx5IGRybV9yZWN0KSB3aXRoIG1heGlt dW0gYXJyYXkgc2l6ZSBsaW1pdGVkCj4gKyAqIGJ5IERSTV9NT0RFX0ZCX0RJUlRZX01BWF9DTElQ Uy4gVW5saWtlIHBsYW5lIHNyYyBjb29yZGluYXRlcywgZGFtYWdlIGNsaXBzCj4gKyAqIGFyZSBu b3QgaW4gMTYuMTYgZml4ZWQgcG9pbnQuIFNpbWlsYXIgdG8gcGxhbmUgc3JjIGluIGZyYW1lYnVm ZmVyLCBkYW1hZ2UKPiArICogY2xpcHMgY2Fubm90IGJlIG5lZ2F0aXZlLiBJbiBkYW1hZ2UgY2xp cCwgeDEveTEgYXJlIGluY2x1c2l2ZSBhbmQgeDIveTIgYXJlCj4gKyAqIGV4Y2x1c2l2ZS4KPiAr ICoKPiArICogQWxsIHRoZSBkYW1hZ2UgY2xpcHMgYXJlIGluIGZyYW1lYnVmZmVyIGNvb3JkaW5h dGVzIGFuZCBzaG91bGQgYmUgaW5zaWRlCj4gKyAqIHBsYW5lIHNyYyBhbmQgaWYgYW55IGNsaXAg ZmFsbHMgb3V0c2lkZSBwbGFuZSBzcmMgaXQgd2lsbCBiZSBpZ25vcmVkIGFuZAo+ICsgKiB1c2Vy LXNwYWNlIHdvbid0IGJlIG5vdGlmaWVkIG9mIHRoZSBzYW1lLiBBcyBtZW50aW9uZWQgYWJvdmUs IHNvbWV0aW1lcwo+ICsgKiBrZXJuZWwgd2lsbCBkbyBmdWxsIHBsYW5lIHVwZGF0ZSBkdWUgdG8g Y2hhbmdlIGluIHByb3BlcnRpZXMgd2hpY2ggY2FuIGFmZmVjdAo+ICsgKiBmdWxsIHBsYW5lIGUu Zy4gY29sb3IgbWFuYWdlbWVudCBwcm9wZXJ0aWVzLiBBbHNvIGR1cmluZyBmdWxsIG1vZGVzZXQg ZGFtYWdlCj4gKyAqIGlzIGlycmVsZXZhbnQgc28gaWYgcHJvdmlkZWQgYnkgdXNlci1zcGFjZSBp dCBzaW1wbHkgd2lsbCBiZSBpZ25vcmVkLgo+ICsgKiBXaGVuZXZlciBkYW1hZ2UgY2xpcHMgYXJl IGlnbm9yZWQgYnkga2VybmVsLCB1c2VyLXNwYWNlIHdpbGwgbm90IGJlIGluZm9ybWVkLgo+ICsg KiBJZiBhIHVzZXItc3BhY2UgcHJvdmlkZXMgZGFtYWdlIGNsaXBzIHdoaWNoIGRvZXNuJ3QgZW5j b21wYXNzIHRoZSBhY3R1YWwKPiArICogZGFtYWdlIHRvIGZyYW1lYnVmZmVyIChzaW5jZSBsYXN0 IHBsYW5lIHVwZGF0ZSkgd2lsbCByZXN1bHQgaW4gaW5jb3JyZWN0CgpzL3dpbGwvY2FuLyAtIGl0 J3MgYW4gb3B0aW1pemF0aW9uCgo+ICsgKiByZW5kZXJpbmcgZHVyaW5nIHBsYW5lIHVwZGF0ZS4K PiArICoKPiArICogV2hpbGUga2VybmVsIGRvZXMgbm90IGVycm9yIGZvciBvdmVybGFwcGVkIGRh bWFnZSBjbGlwcywgaXQgaXMgZGlzY291cmFnZWQuCgpTb21lIGNvbW1lbnRzIG9uIHRoZSBkb2M6 CgotIFlvdSBraW5kYSBleHBsYWluIGl0LCBidXQgaW4gY29udm9sdXRlZCB3YXk6IEknZCBhZGQg YSBjbGVhciBzZW50ZW5jZQogIHRoYXQgdXNlcnNwYWNlIF9tdXN0XyBhbHdheXMgcmVuZGVyIHRo ZSBlbnRpcmUgdmlzaWJsZSBmYiwgc2luY2UgdGhlCiAgZHJpdmVyIGlzIGZyZWUgdG8gcmVhZCBt b3JlLiBPdGhlcndpc2UgdGhlcmUgY2FuIGJlIGNvcnJ1cHRpb25zLgoKLSBXaHkgbm8gaW5wdXQg dmFsaWRhdGlvbiBvbiB0aGUgZGFtYWdlIGNsaXBzIGFnYWluc3QgdGhlIGZyYW1lYnVmZmVyCiAg c2l6ZT8gSW1lIG5vdCB2YWxpZGF0aW5nIGp1c3QgbGVhZHMgdG8gZnVubnkgZHJpdmVyIGJ1Z3Mg ZG93biB0aGUgcm9hZCwKICBzbyB3aGF0J3MgdGhlIHVzZS1jYXNlIHlvdSBoYXZlIGluIG1pbmQg aGVyZT8KCi0gQSBzaG9ydCBwYXJhZ3JhcGggb24gaG93IGRyaXZlcnMgYXJlIHN1cHBvc2VkIHRv IGltcGxlbWVudCB0aGlzIHdvdWxkIGJlCiAgZ29vZCwgd2l0aCByZWZlcmVuY2VzIHRvIGZ1bmN0 aW9ucyAod2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0bwogIGh5cGVybGlua3MpCgo+ ICsgKi8KPiArCj4gKy8qKgo+ICsgKiBkcm1fcGxhbmVfZW5hYmxlX2ZiX2RhbWFnZV9jbGlwcyAt IGVuYWJsZXMgcGxhbmUgZmIgZGFtYWdlIGNsaXBzIHByb3BlcnR5Cj4gKyAqIEBwbGFuZTogcGxh bmUgb24gd2hpY2ggdG8gZW5hYmxlIGRhbWFnZSBjbGlwcyBwcm9wZXJ0eQo+ICsgKgo+ICsgKiBU aGlzIGZ1bmN0aW9uIGxldHMgZHJpdmVyIHRvIGVuYWJsZSB0aGUgZGFtYWdlIGNsaXBzIHByb3Bl cnR5IG9uIGEgcGxhbmUuCj4gKyAqLwo+ICt2b2lkIGRybV9wbGFuZV9lbmFibGVfZmJfZGFtYWdl X2NsaXBzKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gcGxhbmUtPmRldjsKPiArCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9 ICZkZXYtPm1vZGVfY29uZmlnOwo+ICsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZw bGFuZS0+YmFzZSwgY29uZmlnLT5wcm9wX2ZiX2RhbWFnZV9jbGlwcywKPiArCQkJCSAgIDApOwo+ ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2VfY2xpcHMpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKPiBpbmRleCAyMWUzNTNiZDM5NDguLjUwNmY1YTUy NzMzZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKPiBAQCAtMjk4LDYgKzI5OCwx MiBAQCBzdGF0aWMgaW50IGRybV9tb2RlX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAlkZXYtPm1vZGVfY29u ZmlnLnByb3BfY3J0Y19pZCA9IHByb3A7Cj4gIAo+ICsJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVh dGUoZGV2LCBEUk1fTU9ERV9QUk9QX0JMT0IsICJGQl9EQU1BR0VfQ0xJUFMiLAo+ICsJCQkJICAg MCk7Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwlkZXYtPm1vZGVfY29u ZmlnLnByb3BfZmJfZGFtYWdlX2NsaXBzID0gcHJvcDsKPiArCj4gIAlwcm9wID0gZHJtX3Byb3Bl cnR5X2NyZWF0ZV9ib29sKGRldiwgRFJNX01PREVfUFJPUF9BVE9NSUMsCj4gIAkJCSJBQ1RJVkUi KTsKPiAgCWlmICghcHJvcCkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYwo+IGluZGV4 IDIzYmVmZjVkOGUzYy4uMWVkYmFlNzNkNmQ2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X2ttcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn Znhfa21zLmMKPiBAQCAtNzIzLDYgKzcyMyw3IEBAIHZvaWQgdm13X2R1X3BsYW5lX3Jlc2V0KHN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lKQo+ICAJcGxhbmUtPnN0YXRlID0gJnZwcy0+YmFzZTsKPiAg CXBsYW5lLT5zdGF0ZS0+cGxhbmUgPSBwbGFuZTsKPiAgCXBsYW5lLT5zdGF0ZS0+cm90YXRpb24g PSBEUk1fTU9ERV9ST1RBVEVfMDsKPiArCXBsYW5lLT5zdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzID0g TlVMTDsKPiAgfQo+ICAKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kYW1hZ2Vf aGVscGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjIxNzY5NGU5MTY4Ywo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZGFtYWdlX2hlbHBlci5oCj4gQEAgLTAsMCArMSw2 MyBAQAo+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBNSVQgKi8KPiAr LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCj4gKyAqCj4gKyAqIENvcHlyaWdodCAoYykgMjAxOCBWTXdhcmUs IEluYy4sIFBhbG8gQWx0bywgQ0EuLCBVU0EKPiArICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KPiAr ICoKPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQo+ICsgKiAiU29mdHdhcmUiKSwgdG8g ZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCj4gKyAq IHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwKPiArICogZGlzdHJpYnV0ZSwgc3ViIGxpY2Vuc2UsIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwo+ICsgKiBwZXJtaXQgcGVyc29ucyB0byB3aG9t IHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KPiArICogdGhl IGZvbGxvd2luZyBjb25kaXRpb25zOgo+ICsgKgo+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZQo+ICsgKiBuZXh0 IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh bCBwb3J0aW9ucwo+ICsgKiBvZiB0aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBS RVNTIE9SCj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRSBBTkQgTk9OLUlORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwKPiArICog VEhFIENPUFlSSUdIVCBIT0xERVJTLCBBVVRIT1JTIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFIExJ QUJMRSBGT1IgQU5ZIENMQUlNLAo+ICsgKiBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKPiArICogT1RIRVJXSVNFLCBB UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRQo+ICsgKiBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ ICsgKiBBdXRob3JzOgo+ICsgKiBEZWVwYWsgUmF3YXQgPGRyYXdhdEB2bXdhcmUuY29tPgo+ICsg Kgo+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCj4gKwo+ICsjaWZuZGVmIERSTV9EQU1BR0VfSEVMUEVS X0hfCj4gKyNkZWZpbmUgRFJNX0RBTUFHRV9IRUxQRVJfSF8KPiArCj4gKy8qKgo+ICsgKiBkcm1f cGxhbmVfZ2V0X2RhbWFnZV9jbGlwc19jb3VudCAtIHJldHVybnMgZGFtYWdlIGNsaXBzIGNvdW50 Cj4gKyAqIEBzdGF0ZTogUGxhbmUgc3RhdGUKPiArICoKPiArICogUmV0dXJuczogTnVtYmVyIG9m IGNsaXBzIGluIHBsYW5lIGZiX2RhbWFnZV9jbGlwcyBibG9iIHByb3BlcnR5Lgo+ICsgKi8KPiAr c3RhdGljIGlubGluZSB1aW50MzJfdAo+ICtkcm1fcGxhbmVfZ2V0X2RhbWFnZV9jbGlwc19jb3Vu dChjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJcmV0dXJuIChz dGF0ZSAmJiBzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzKSA/Cj4gKwkJc3RhdGUtPmZiX2RhbWFnZV9j bGlwcy0+bGVuZ3RoL3NpemVvZihzdHJ1Y3QgZHJtX3JlY3QpIDogMDsKPiArfQo+ICsKPiArLyoq Cj4gKyAqIGRybV9wbGFuZV9nZXRfZGFtYWdlX2NsaXBzIC0gcmV0dXJucyBkYW1hZ2UgY2xpcHMK PiArICogQHN0YXRlOiBQbGFuZSBzdGF0ZQo+ICsgKgo+ICsgKiBSZXR1cm5zOiBDbGlwcyBpbiBw bGFuZSBmYl9kYW1hZ2VfY2xpcHMgYmxvYiBwcm9wZXJ0eS4KPiArICovCj4gK3N0YXRpYyBpbmxp bmUgc3RydWN0IGRybV9yZWN0ICoKPiArZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHMoY29uc3Qg c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCXJldHVybiAoc3RydWN0IGRy bV9yZWN0ICopKChzdGF0ZSAmJiBzdGF0ZS0+ZmJfZGFtYWdlX2NsaXBzKSA/Cj4gKwkJCQkgICBz dGF0ZS0+ZmJfZGFtYWdlX2NsaXBzLT5kYXRhIDogTlVMTCk7Cj4gK30KPiArCj4gK3ZvaWQgZHJt X3BsYW5lX2VuYWJsZV9mYl9kYW1hZ2VfY2xpcHMoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwo+ ICsKPiArI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5o IGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiBpbmRleCBhMGIyMDJlMWQ2OWEuLjhj Y2I1ZGRjZDk5ZCAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+ ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gQEAgLTYyNyw2ICs2MjcsMTYg QEAgc3RydWN0IGRybV9tb2RlX2NvbmZpZyB7Cj4gIAkgKiAmZHJtX2NydGMuCj4gIAkgKi8KPiAg CXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BfY3J0Y19pZDsKPiArCS8qKgo+ICsJICogQHByb3Bf ZmJfZGFtYWdlX2NsaXBzOiBPcHRpb25hbCBwbGFuZSBwcm9wZXJ0eSB0byBtYXJrIGRhbWFnZWQK PiArCSAqIHJlZ2lvbnMgb24gdGhlIHBsYW5lIGluIGZyYW1lYnVmZmVyIGNvb3JkaW5hdGVzIG9m IHRoZSBmcmFtZWJ1ZmZlcgo+ICsJICogYXR0YWNoZWQgdG8gdGhlIHBsYW5lLgo+ICsJICoKPiAr CSAqIFRoZSBsYXlvdXQgb2YgYmxvYiBkYXRhIGlzIHNpbXBseSBhbiBhcnJheSBvZiBkcm1fbW9k ZV9yZWN0IHdpdGgKPiArCSAqIG1heGltdW0gYXJyYXkgc2l6ZSBsaW1pdGVkIGJ5IERSTV9NT0RF X0ZCX0RJUlRZX01BWF9DTElQUy4gVW5saWtlCj4gKwkgKiBwbGFuZSBzcmMgY29vcmRpbmF0ZXMs IGRhbWFnZSBjbGlwcyBhcmUgbm90IGluIDE2LjE2IGZpeGVkIHBvaW50Lgo+ICsJICovCj4gKwlz dHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wX2ZiX2RhbWFnZV9jbGlwczsKPiAgCS8qKgo+ICAJICog QHByb3BfYWN0aXZlOiBEZWZhdWx0IGF0b21pYyBDUlRDIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhl IGFjdGl2ZQo+ICAJICogc3RhdGUsIHdoaWNoIGlzIHRoZSBzaW1wbGlmaWVkIGltcGxlbWVudGF0 aW9uIGZvciBEUE1TIGluIGF0b21pYwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGxh bmUuaCBiL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCj4gaW5kZXggOGExNTJkYzE2ZWE1Li5iYjhi MDkzNDExOWMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiArKysgYi9p bmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+IEBAIC0xODIsNiArMTgyLDE0IEBAIHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgewo+ICAJICovCj4gIAlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7 Cj4gIAo+ICsJLyoqCj4gKwkgKiBAZmJfZGFtYWdlX2NsaXBzOgo+ICsJICoKPiArCSAqIEJsb2Ig cmVwcmVzZW50aW5nIGRhbWFnZSAoYXJlYSBpbiBwbGFuZSBmcmFtZWJ1ZmZlciB0aGF0IGNoYW5n ZWQKPiArCSAqIHNpbmNlIGxhc3QgcGFnZSBmbGlwKSBhcyBhcnJheSBvZiBkcm1fcmVjdCBpbiBm cmFtZWJ1ZmZlciBjb29kaW5hdGVzLgo+ICsJICovCj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Js b2IgKmZiX2RhbWFnZV9jbGlwczsKPiArCj4gIAkvKiogQHN0YXRlOiBiYWNrcG9pbnRlciB0byBn bG9iYWwgZHJtX2F0b21pY19zdGF0ZSAqLwo+ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlOwo+ICB9Owo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmggYi9p bmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiBpbmRleCA4ZDY3MjQzOTUyZjQuLjg2MmVhMDg5 M2UyZSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiArKysgYi9p bmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiBAQCAtODg3LDYgKzg4NywyNSBAQCBzdHJ1Y3Qg ZHJtX21vZGVfcmV2b2tlX2xlYXNlIHsKPiAgCV9fdTMyIGxlc3NlZV9pZDsKPiAgfTsKPiAgCj4g Ky8qKgo+ICsgKiBzdHJ1Y3QgZHJtX21vZGVfcmVjdCAtIHR3byBkaW1lbnNpb25hbCByZWN0YW5n bGUKPiArICogQHgxOiBob3Jpem9udGFsIHN0YXJ0aW5nIGNvb3JkaW5hdGUgKGluY2x1c2l2ZSkK PiArICogQHkxOiB2ZXJ0aWNhbCBzdGFydGluZyBjb29yZGluYXRlIChpbmNsdXNpdmUpCj4gKyAq IEB4MjogaG9yaXpvbnRhbCBlbmRpbmcgY29vcmRpbmF0ZSAoZXhjbHVzaXZlKQo+ICsgKiBAeTI6 IHZlcnRpY2FsIGVuZGluZyBjb29yZGluYXRlIChleGNsdXNpdmUpCj4gKyAqCj4gKyAqIFdpdGgg ZHJtIHN1YnN5c3RlbSB1c2luZyBzdHJ1Y3QgZHJtX3JlY3QgdG8gbWFuYWdlIHJlY3Rhbmd1bGFy IGFyZWEgdGhpcwo+ICsgKiBleHBvcnQgaXQgdG8gdXNlci1zcGFjZS4KPiArICoKPiArICogQ3Vy cmVudGx5IHVzZWQgYnkgZHJtX21vZGVfYXRvbWljIGJsb2IgcHJvcGVydHkgRkJfREFNQUdFX0NM SVBTLgo+ICsgKi8KPiArc3RydWN0IGRybV9tb2RlX3JlY3Qgewo+ICsJX19zMzIgeDE7Cj4gKwlf X3MzMiB5MTsKPiArCV9fczMyIHgyOwo+ICsJX19zMzIgeTI7Cj4gK307Cj4gKwo+ICAjaWYgZGVm aW5lZChfX2NwbHVzcGx1cykKPiAgfQo+ICAjZW5kaWYKCkJlc2lkZXMgdGhlIHNtYWxsIG5pdHMg dGhpcyBsb29rcyBnb29kIHRvIG1lLgotRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK