From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/1] drm: Add dirty_rects atomic blob property for drm_plane Date: Mon, 5 Mar 2018 10:39:49 +0100 Message-ID: <20180305093949.GL22212@phenom.ffwll.local> References: <20171221111008.38764-1-lukasz.spintzyk@displaylink.com> <20171221111008.38764-2-lukasz.spintzyk@displaylink.com> <20171221124655.GJ10981@intel.com> <20171221131040.GX26573@phenom.ffwll.local> <20180305083736.GA22212@phenom.ffwll.local> <87873ee4-32b9-c26a-6f73-5e4fa87c5aa1@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x232.google.com (mail-wm0-x232.google.com [IPv6:2a00:1450:400c:c09::232]) by gabe.freedesktop.org (Postfix) with ESMTPS id 75C866E401 for ; Mon, 5 Mar 2018 09:39:53 +0000 (UTC) Received: by mail-wm0-x232.google.com with SMTP id t6so14121923wmt.5 for ; Mon, 05 Mar 2018 01:39:53 -0800 (PST) Content-Disposition: inline In-Reply-To: <87873ee4-32b9-c26a-6f73-5e4fa87c5aa1@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Thomas Hellstrom Cc: "airlied@linux.ie" , "dri-devel@lists.freedesktop.org" , "daniel.vetter@intel.com" , Deepak Singh Rawat , Lukasz Spintzyk List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBNYXIgMDUsIDIwMTggYXQgMTA6MjI6MDlBTSArMDEwMCwgVGhvbWFzIEhlbGxzdHJv bSB3cm90ZToKPiBPbiAwMy8wNS8yMDE4IDA5OjM3IEFNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ ID4gT24gV2VkLCBGZWIgMjgsIDIwMTggYXQgMDk6MTA6NDZQTSArMDAwMCwgRGVlcGFrIFNpbmdo IFJhd2F0IHdyb3RlOgo+ID4gPiAKPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+ ID4gPiA+IEZyb206IGRyaS1kZXZlbCBbbWFpbHRvOmRyaS1kZXZlbC1ib3VuY2VzQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZ10gT24gQmVoYWxmCj4gPiA+ID4gT2YgRGFuaWVsIFZldHRlcgo+ID4gPiA+ IFNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAyMSwgMjAxNyA1OjExIEFNCj4gPiA+ID4gVG86IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gQ2M6 IGFpcmxpZWRAbGludXguaWU7IGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tOyBkcmktCj4gPiA+ID4g ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBMdWthc3ogU3BpbnR6eWsKPiA+ID4gPiA8bHVr YXN6LnNwaW50enlrQGRpc3BsYXlsaW5rLmNvbT4KPiA+ID4gPiBTdWJqZWN0OiBSZTogW1BBVENI IDEvMV0gZHJtOiBBZGQgZGlydHlfcmVjdHMgYXRvbWljIGJsb2IgcHJvcGVydHkgZm9yCj4gPiA+ ID4gZHJtX3BsYW5lCj4gPiA+ID4gCj4gPiA+ID4gT24gVGh1LCBEZWMgMjEsIDIwMTcgYXQgMDI6 NDY6NTVQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiA+ID4gT24gVGh1LCBE ZWMgMjEsIDIwMTcgYXQgMTI6MTA6MDhQTSArMDEwMCwgTHVrYXN6IFNwaW50enlrIHdyb3RlOgo+ ID4gPiA+ID4gPiBDaGFuZ2UtSWQ6IEk2M2RjZTAwNGY4ZDNjNWRjNmE3YzcxMDcwZjFmYWIwNzA3 Mjg2ZWE1Cj4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEx1a2FzeiBTcGludHp5ayA8bHVrYXN6 LnNwaW50enlrQGRpc3BsYXlsaW5rLmNvbT4KPiA+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiA+ICAg ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgIHwgMTAgKysrKysrKysrKwo+ID4gPiA+ ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYyB8ICA2ICsrKysrKwo+ID4g PiA+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyAgICAgICB8ICAxICsKPiA+ID4g PiA+ID4gICBpbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaCAgICAgfCAgNSArKysrKwo+ID4g PiA+ID4gPiAgIGluY2x1ZGUvZHJtL2RybV9wbGFuZS5oICAgICAgICAgICB8ICAzICsrKwo+ID4g PiA+ID4gPiAgIDUgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKQo+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ID4gPiA+ID4gaW5kZXggYjc2 ZDQ5MjE4Y2YxLi5jZDNiNGVkN2IwNGMgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljLmMKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYwo+ID4gPiA+ID4gPiBAQCAtNzU5LDYgKzc1OSwxNCBAQCBzdGF0aWMgaW50IGRy bV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdAo+ID4gPiA+IGRybV9wbGFuZSAqcGxh bmUsCj4gPiA+ID4gPiA+ICAgCQlzdGF0ZS0+cm90YXRpb24gPSB2YWw7Cj4gPiA+ID4gPiA+ICAg CX0gZWxzZSBpZiAocHJvcGVydHkgPT0gcGxhbmUtPnpwb3NfcHJvcGVydHkpIHsKPiA+ID4gPiA+ ID4gICAJCXN0YXRlLT56cG9zID0gdmFsOwo+ID4gPiA+ID4gPiArCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29uZmlnLT5kaXJ0eV9yZWN0c19wcm9wZXJ0eSkgewo+ID4gPiA+ID4gPiArCQlib29s IHJlcGxhY2VkID0gZmFsc2U7Cj4gPiA+ID4gPiA+ICsJCWludCByZXQgPSBkcm1fYXRvbWljX3Jl cGxhY2VfcHJvcGVydHlfYmxvYl9mcm9tX2lkKGRldiwKPiA+ID4gPiA+ID4gKwkJCQkJJnN0YXRl LT5kaXJ0eV9ibG9iLAo+ID4gPiA+ID4gPiArCQkJCQl2YWwsCj4gPiA+ID4gPiA+ICsJCQkJCS0x LAo+ID4gPiA+ID4gPiArCQkJCQkmcmVwbGFjZWQpOwo+ID4gPiA+ID4gPiArCQlyZXR1cm4gcmV0 Owo+ID4gPiA+ID4gPiAgIAl9IGVsc2UgaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX3NldF9wcm9w ZXJ0eSkgewo+ID4gPiA+ID4gPiAgIAkJcmV0dXJuIHBsYW5lLT5mdW5jcy0+YXRvbWljX3NldF9w cm9wZXJ0eShwbGFuZSwgc3RhdGUsCj4gPiA+ID4gPiA+ICAgCQkJCXByb3BlcnR5LCB2YWwpOwo+ ID4gPiA+ID4gPiBAQCAtODE4LDYgKzgyNiw4IEBAIGRybV9hdG9taWNfcGxhbmVfZ2V0X3Byb3Bl cnR5KHN0cnVjdAo+ID4gPiA+IGRybV9wbGFuZSAqcGxhbmUsCj4gPiA+ID4gPiA+ICAgCQkqdmFs ID0gc3RhdGUtPnJvdGF0aW9uOwo+ID4gPiA+ID4gPiAgIAl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IHBsYW5lLT56cG9zX3Byb3BlcnR5KSB7Cj4gPiA+ID4gPiA+ICAgCQkqdmFsID0gc3RhdGUtPnpw b3M7Cj4gPiA+ID4gPiA+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPmRpcnR5X3Jl Y3RzX3Byb3BlcnR5KSB7Cj4gPiA+ID4gPiA+ICsJCSp2YWwgPSAoc3RhdGUtPmRpcnR5X2Jsb2Ip ID8gc3RhdGUtPmRpcnR5X2Jsb2ItPmJhc2UuaWQgOiAwOwo+ID4gPiA+ID4gPiAgIAl9IGVsc2Ug aWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkgewo+ID4gPiA+ID4gPiAgIAkJ cmV0dXJuIHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eShwbGFuZSwgc3RhdGUsCj4g PiA+ID4gcHJvcGVydHksIHZhbCk7Cj4gPiA+ID4gPiA+ICAgCX0gZWxzZSB7Cj4gPiA+ID4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfY29uZmlnLmMKPiA+ID4gPiBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9jb25maWcuYwo+ID4gPiA+ID4gPiBpbmRleCBiYzVj NDYzMDZiM2QuLmQ1ZjEwMjFjNmVjZSAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9tb2RlX2NvbmZpZy5jCj4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fbW9kZV9jb25maWcuYwo+ID4gPiA+ID4gPiBAQCAtMjkzLDYgKzI5MywxMiBAQCBzdGF0 aWMgaW50Cj4gPiA+ID4gZHJtX21vZGVfY3JlYXRlX3N0YW5kYXJkX3Byb3BlcnRpZXMoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiA+ID4gPiA+ID4gICAJCXJldHVybiAtRU5PTUVNOwo+ID4gPiA+ ID4gPiAgIAlkZXYtPm1vZGVfY29uZmlnLnByb3BfY3J0Y19pZCA9IHByb3A7Cj4gPiA+ID4gPiA+ IAo+ID4gPiA+ID4gPiArCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlKGRldiwgRFJNX01PREVf UFJPUF9CTE9CLAo+ID4gPiA+ID4gPiArCQkJIkRJUlRZX1JFQ1RTIiwgMCk7Cj4gPiA+ID4gPiA+ ICsJaWYgKCFwcm9wKQo+ID4gPiA+ID4gPiArCQlyZXR1cm4gLUVOT01FTTsKPiA+ID4gPiA+ID4g KwlkZXYtPm1vZGVfY29uZmlnLmRpcnR5X3JlY3RzX3Byb3BlcnR5ID0gcHJvcDsKPiA+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gPiAgIAlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9ib29sKGRldiwK PiA+ID4gPiBEUk1fTU9ERV9QUk9QX0FUT01JQywKPiA+ID4gPiA+ID4gICAJCQkiQUNUSVZFIik7 Cj4gPiA+ID4gPiA+ICAgCWlmICghcHJvcCkKPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fcGxhbmUuYwo+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFu ZS5jCj4gPiA+ID4gPiA+IGluZGV4IDM3YTkzY2RmZmI0YS4uYWRkMTEwZjAyNWU1IDEwMDY0NAo+ ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKPiA+ID4gPiA+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jCj4gPiA+ID4gPiA+IEBAIC0yNTgsNiAr MjU4LDcgQEAgaW50IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZQo+ ID4gPiA+ICpkZXYsIHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiA+ID4gPiAgIAkJZHJt X29iamVjdF9hdHRhY2hfcHJvcGVydHkoJnBsYW5lLT5iYXNlLCBjb25maWctCj4gPiA+ID4gPiBw cm9wX3NyY195LCAwKTsKPiA+ID4gPiA+ID4gICAJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5 KCZwbGFuZS0+YmFzZSwgY29uZmlnLQo+ID4gPiA+ID4gcHJvcF9zcmNfdywgMCk7Cj4gPiA+ID4g PiA+ICAgCQlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0K PiA+ID4gPiA+IHByb3Bfc3JjX2gsIDApOwo+ID4gPiA+ID4gPiArCQlkcm1fb2JqZWN0X2F0dGFj aF9wcm9wZXJ0eSgmcGxhbmUtPmJhc2UsIGNvbmZpZy0KPiA+ID4gPiA+IGRpcnR5X3JlY3RzX3By b3BlcnR5LCAwKTsKPiA+ID4gPiA+ID4gICAJfQo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gICAJ aWYgKGNvbmZpZy0+YWxsb3dfZmJfbW9kaWZpZXJzKQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiA+ID4gPiBiL2luY2x1ZGUvZHJtL2RybV9t b2RlX2NvbmZpZy5oCj4gPiA+ID4gPiA+IGluZGV4IGU1ZjNiNDMwMTRlMS4uNjVmNjRlYjA0YzBj IDEwMDY0NAo+ID4gPiA+ID4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+ ID4gPiA+ID4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+ID4gPiA+ID4g PiBAQCAtNTk5LDYgKzU5OSwxMSBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPiA+ID4gPiA+ ID4gICAJICogJmRybV9jcnRjLgo+ID4gPiA+ID4gPiAgIAkgKi8KPiA+ID4gPiA+ID4gICAJc3Ry dWN0IGRybV9wcm9wZXJ0eSAqcHJvcF9jcnRjX2lkOwo+ID4gPiA+ID4gPiArCS8qKgo+ID4gPiA+ ID4gPiArCSAqIEBkaXJ0eV9yZWN0c19wcm9wZXJ0eTogT3B0aW9uYWwgcGxhbmUgcHJvcGVydHkg dG8gbWFyayBkYW1hZ2VkCj4gPiA+ID4gPiA+ICsJICogcmVnaW9ucyBvbiB0aGUgcGxhbmUgZnJh bWVidWZmZXIuCj4gPiA+ID4gPiBXaGF0IGV4YWN0bHkgd291bGQgdGhlIGJsb2IgY29udGFpbj8K PiA+ID4gPiA+IAo+ID4gPiA+ID4gVGhlIGNvbW1lbnQgc2VlbXMgdG8gYmUgaW1wbHlpbmcgdGhl c2UgYXJlIGluIGZiIGNvb3JkaWFudGVzIGFzCj4gPiA+ID4gPiBvcHBvc2VkIHRvIHBsYW5lIGNy dGMgY29vcmRpbmF0ZXM/IE5vdCBzdXJlIHdoaWNoIHdvdWxkIGJlIG1vcmUKPiA+ID4gPiA+IGNv bnZlbmllbnQuIEF0IGxlYXN0IGlmIHRoZXkncmUgZmIgY29vcmRpbmF0ZXMgdGhlbiB5b3UgcHJv YmFibHkKPiA+ID4gPiA+IHdhbnQgc29tZSBoZWxwZXJzIHRvIHRyYW5zbGF0ZS9yb3RhdGUvc2Nh bGUgdGhvc2UgcmVjdHMgdG8gdGhlCj4gPiA+ID4gPiBjcnRjIGNvb3JkaW5hdGVzLiBBY3R1YWwg dXNlIGRlcGVuZHMgb24gdGhlIGRyaXZlci9odyBJIHN1cHBvc2UuCj4gPiA+ID4gWWVhaCBJIHRo aW5rIHdlIGFsc28gc2hvdWxkIGFkZCBhIGRlY29kZWQgc3RhdGUgdG8gdGhlIGRybV9wbGFuZV9z dGF0ZSwKPiA+ID4gPiB3aGljaCBoYXMgdGhlIGZ1bGwgc3RydWN0dXJlIGFuZCBhbGwgdGhlIGRl dGFpbHMuCj4gPiA+IEhpIERhbmllbCwKPiA+ID4gCj4gPiA+IEkgYW0gd29ya2luZyBvbiB0aGlz IGZ1bmN0aW9uYWxpdHkgdG8gaW1wbGVtZW50IHRoZSBoZWxwZXIgZnVuY3Rpb25zIHRvCj4gPiA+ IGNvbnZlcnQgZGlydHkgY2xpcHMgZnJvbSBmcmFtZWJ1ZmZlciBjb29yZGluYXRlcyB0byBwbGFu ZXMgY29vcmRpbmF0ZXMKPiA+ID4gYW5kIGZpbmFsbHkgdG8gY3J0YyBjb29yZGluYXRlcy4KPiA+ ID4gCj4gPiA+IElzIHRoZXJlIGEgcmVhc29uIHdlIHNob3VsZCBoYXZlIGRlY29kZWQgZGlydHkg Y2xpcHMgaW4gcGxhbmVfc3RhdGUgPwo+ID4gPiBJIHdhcyB0aGlua2luZyB0byBoYXZlIHRoZSBj bGlwcyByZW1haW4gaW4gYmxvYiBwcm9wZXJ0eSBhbmQgZGVjb2RlCj4gPiA+IHRoZW0gd2hlbiBu ZWVkZWQgd2l0aCB0aGUgaGVscGVyIGZ1bmN0aW9uIHdoaWNoIGFjY2VwdCBwbGFuZSBzdGF0ZSBh bmQKPiA+ID4gc2ltaWxhcmx5IGFub3RoZXIgaGVscGVyIGZvciBjcnRjIGNvb3JkaW5hdGVzLiBT byBkcml2ZXIgY2FsbCB0aGVzZSBoZWxwZXIKPiA+ID4gb25seSBpZiB0aGVyZSBpcyBhIG5lZWQg Zm9yIGRpcnR5IGNsaXBzIGFuZCBvdGhlcndpc2UgY2FuIGlnbm9yZS4KPiA+IEltbWVkaWF0ZWx5 IGRlY29kaW5nIHRoZSBzdGF0ZSBibG9icyBpcyBzaW1wbHkgYmVzdCBwcmFjdGljZXMsIHRvIGF2 b2lkCj4gPiBkdXBsaWNhdGVkIGNvZGUgYW5kIHN1YnRsZSBkaWZmZXJlbmNlcyBpbiBkcml2ZXIg YmVoYXZpb3VyLiBJZiB0aGVyZSdzIGEKPiA+IGdvb2QgcmVhc29uIGZvciBjb21wbGV0ZWx5IGRp ZmZlcmVudCBiZWhhdmlvdXIgKGxpa2UgY3J0YyB2cyBwbGFuZQo+ID4gY29vcmRpbmF0ZSBiYXNl ZCBkYW1hZ2UgdHJhY2tpbmcpLCB0aGVuIGRlY29kaW5nIHVzaW5nIGEgaGVscGVyLAo+ID4gb24t ZGVtYW5kLCBzZWVtcyBzZW5zaWJsZS4KPiA+IAo+ID4gSSdkIHN0aWxsIHRoaW5rIHdlIHNob3Vs ZCBzdG9yZSB0aGUgcmVzdWx0aW5nIGRlcml2ZWQgc3RhdGUgaW4KPiA+IGRybV9jcnRjL3BsYW5l X3N0YXRlLCBsaWtlIHdlIGRvIGZvciB0aGUgcGxhbmUgY2xpcHBpbmcgaGVscGVycyAoYXQgbGVh c3QKPiA+IGFmdGVyIFZpbGxlJ3MgbGF0ZXN0IHBhdGNoIHNlcmllcyBoYXMgbGFuZGVkKS4KPiA+ IC1EYW5pZWwKPiAKPiBUaGUgaWRlYSBoZXJlIHdvdWxkIGJlIHRvIHVzZSBhIGhlbHBlciBpdGVy YXRvciB0byBjb25zdHJ1Y3QgdGhlIG5ldwo+IGNvb3JkaW5hdGVzIG5lZWRlZDsgdGhlIGl0ZXJh dG9yIGJlaW5nIGluaXRpYWxpemVkIHdpdGggdGhlIGJsb2IuCj4gCj4gVGhlIHJlYXNvbiBub3Qg dG8gc3RvcmUgdGhlIGRlY29kZWQgc3RhdGUgaXMgdW5uZWNlc3NhcnkgZHVwbGljYXRpb24uIFdo aWxlCj4gSSBndWVzcyBtb3N0IGRyaXZlcnMgd291bGQgdXNlIGNydGMgZGFtYWdlIHRyYWNraW5n LCBwb3RlbnRpYWxseSB0aGVyZSBtaWdodAo+IGJlIHRocmVlIGNvb3JkaW5hdGUgc3lzdGVtcyB1 c2VkIGJ5IGRyaXZlcnM6IFBsYW5lIGZiIGNvb3JkaW5hdGVzLCBQbGFuZQo+IGNydGMgY29vcmRp bmF0ZXMgYW5kIGNydGMgY29vcmRpbmF0ZXMuIEFuZCB0eXBpY2FsbHkgdGhleSdkIGJlIHVzZWQg b25seQo+IG9uY2UuLi4KCldlbGwgSSB3YXMgdGhpbmtpbmcgb2YgYSBoZWxwZXIgdG8gY29tcHV0 ZSBhIHNpbmdsZSwgb3ZlcmFsbCBjbGlwIHJlY3QgZm9yCnRoZSBlbnRpcmUgY3J0Yy4gV2hpY2gg d291bGQgdGhlbiBhbHNvIG5lZWQgdG8gdGFrZSBpbnRvIGFjY291bnQgdmFyaW91cwpwbGFuZSBz dGF0ZSBjaGFuZ2VzLCBhbmQgc3R1ZmYgbGlrZSBiYWNrZ3JvdW5kIGNvbG9yLiBGb3IgYSBzaW1w bGUKY29vcmRpbmF0ZSBzeXN0ZW0gdHJhbnNmb3JtIGl0ZXJhdG9ycyBzb3VuZCBsaWtlIGEgZ29v ZCBpZGVhLCBidXQgaG9uZXN0bHkKSSBkb24ndCBleHBlY3QgdGhhdCB0byBiZSBhIGNvbW1vbiB1 c2UtY2FzZSBpbiBkcml2ZXJzLiBFaXRoZXIgaXQncyBhYm91dAp1cGxvYWRpbmcgdGhlIHJpZ2h0 IGRpcnR5IGRhdGEgaW4gZWFjaCBwbGFuZSwgb3IgYWJvdXQgdXBsb2FkaW5nIHRoZSByaWdodApm aW5hbC9ibGVuZGVkIHBpeGVscyB0byB0aGUgc2NyZWVuIChpbiB3aGljaCBjYXNlIGFsbCBvdGhl ciBzdGF0ZSBjaGFuZ2VzCnRoYXQgY2FuIGFmZmVjdCBjb2xvcnMgbXVzdCBiZSB0YWtlbiBpbnRv IGFjY291bnQgdG9vKS4KLURhbmllbAoKPiAKPiAvVGhvbWFzCj4gCj4gCj4gPiA+IFRoYW5rcywK PiA+ID4gRGVlcGFrCj4gPiA+IAo+ID4gPiAKPiA+ID4gPiBBbmQgd2hlbiB3ZSBkaXNjdXNzZWQg dGhpcyBpaXJjIHdlJ3ZlIGlkZW50aWZpZWQgYSBjbGVhciBuZWVkIGZvciBhdCBsZWFzdAo+ID4g PiA+IHNvbWUgZHJpdmVycyB0byBkZWFsIGluIGNydGMgZGlydHkgcmVjdGFuZ2xlcy4gSSB0aGlu ayB0aGUgaW5pdGlhbCBjb3JlCj4gPiA+ID4gc3VwcG9ydCBzaG91bGQgaW5jbHVkZSBhIGhlbHBl ciB3aGljaCB0YWtlcyBhbiBhdG9taWMgdXBkYXRlIGZvciBhIGdpdmVuCj4gPiA+ID4gY3J0Yywg YW5kIGNvbnZlcnRzIGFsbCB0aGUgcGxhbmUgZGlydHkgcmVjdGFuZ2xlcyBpbnRvIGNydGMgcmVj dGFuZ2xlcy4KPiA+ID4gPiBJbmNsdWRpbmcgYW55IGZ1bGwtcGxhbmUgb3IgZnVsbC1jcnRjIHVw Z3JhZGVzIG5lZWRlZCBkdWUgdG8gZS5nLgo+ID4gPiA+IHJlcG9zaXRpb24sIGNoYW5nZWQgZ2Ft bWEsIGNoYW5nZWQgYmxlbmRpZ24venBvcyBvciBhbnl0aGluZyBlbHNlIHJlYWxseQo+ID4gPiA+ IHRoYXQgd291bGQgYWZmZWN0IHRoZSBlbnRpcmUgcGxhbmUgcmVzcGVjdGl2ZWx5IGNydGMuIFRo YXQgd291bGQgYWxzbwo+ID4gPiA+IHByb3ZpZGUgYSByZWFsbHkgZ29vZCBtb2RlbCBmb3Igd2hh dCBkYW1hZ2UgYWN0dWFsbHkgbWVhbnMuCj4gPiA+ID4gCj4gPiA+ID4gUGx1cyBvZmMgd2UgbmVl ZCB1c2Vyc3BhY2UgZm9yIHRoaXMsIHByZWZlcnJhYmx5IGFzIGEgcGF0Y2ggdG8gc29tZXRoaW5n Cj4gPiA+ID4gZ2VuZXJpYyBsaWtlIHdlc3RvbiBvciB4ZnJlZTg2LXZpZGVvLW1vZGVzZXR0aW5n LiBBbmQgYW4gZXhhbXBsZSBrZXJuZWwKPiA+ID4gPiBpbXBsZW1lbnRhdGlvbi4KPiA+ID4gPiAK PiA+ID4gPiBDaGVlcnMsIERhbmllbAo+ID4gPiA+IAo+ID4gPiA+ID4gPiArCSAqLwo+ID4gPiA+ ID4gPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKmRpcnR5X3JlY3RzX3Byb3BlcnR5Owo+ID4gPiA+ ID4gPiAgIAkvKioKPiA+ID4gPiA+ID4gICAJICogQHByb3BfYWN0aXZlOiBEZWZhdWx0IGF0b21p YyBDUlRDIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIGFjdGl2ZQo+ID4gPiA+ID4gPiAgIAkgKiBz dGF0ZSwgd2hpY2ggaXMgdGhlIHNpbXBsaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIERQTVMgaW4g YXRvbWljCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaCBi L2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oCj4gPiA+ID4gPiA+IGluZGV4IDgxODVlMzQ2OGEyMy4u N2Q0NWIxNjRjY2NlIDEwMDY0NAo+ID4gPiA+ID4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxh bmUuaAo+ID4gPiA+ID4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+ID4gPiA+ID4g PiBAQCAtMTMxLDYgKzEzMSw5IEBAIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgewo+ID4gPiA+ID4g PiAgIAkgKi8KPiA+ID4gPiA+ID4gICAJc3RydWN0IGRybV9jcnRjX2NvbW1pdCAqY29tbWl0Owo+ ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gKwkvKiBPcHRpb25hbCBibG9iIHByb3BlcnR5IHdpdGgg ZGFtYWdlZCByZWdpb25zLiAqLwo+ID4gPiA+ID4gPiArCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqZGlydHlfYmxvYjsKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgIAlzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGU7Cj4gPiA+ID4gPiA+ICAgfTsKPiA+ID4gPiA+ID4gCj4gPiA+ID4g PiA+IC0tCj4gPiA+ID4gPiA+IDIuMTUuMQo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gPiA+ID4gZHJp LWRldmVsIG1haWxpbmcgbGlzdAo+ID4gPiA+ID4gPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4gPiA+ID4gPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91 cmw/dT1odHRwcy0KPiA+ID4gPiAzQV9fbGlzdHMuZnJlZWRlc2t0b3Aub3JnX21haWxtYW5fbGlz dGluZm9fZHJpLQo+ID4gPiA+IDJEZGV2ZWwmZD1Ed0lHYVEmYz11aWxhSzkwRDRUT1ZvSDU4Sk5Y UmdRJnI9ek9PRzI4aW5KSzA3NjJTeEFmCj4gPiA+ID4gLWN5WmRTdG5kMk5RcFJ1OThsSlAyaVlH dyZtPTA0cjhGLQo+ID4gPiA+IDBJOXR6V0NHaVVKZmpUZGYwRWpGcWRVNzVGN1lhNDVpRjE4NFEm cz0tCj4gPiA+ID4gUHNWeW5vQjliZVRtcXNzMFdUeEtpMEwzbm1PZV9sY0ZLYWJwYjU1amFFJmU9 Cj4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiA+ID4gPiBJbnRlbCBP VEMKPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gPiA+ID4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiA+ID4gPiBkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ID4gPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zw b2ludC5jb20vdjIvdXJsP3U9aHR0cHMtCj4gPiA+ID4gM0FfX2xpc3RzLmZyZWVkZXNrdG9wLm9y Z19tYWlsbWFuX2xpc3RpbmZvX2RyaS0KPiA+ID4gPiAyRGRldmVsJmQ9RHdJR2FRJmM9dWlsYUs5 MEQ0VE9Wb0g1OEpOWFJnUSZyPXpPT0cyOGluSkswNzYyU3hBZgo+ID4gPiA+IC1jeVpkU3RuZDJO UXBSdTk4bEpQMmlZR3cmbT0wNHI4Ri0KPiA+ID4gPiAwSTl0eldDR2lVSmZqVGRmMEVqRnFkVTc1 RjdZYTQ1aUYxODRRJnM9LQo+ID4gPiA+IFBzVnlub0I5YmVUbXFzczBXVHhLaTBMM25tT2VfbGNG S2FicGI1NWphRSZlPQo+ID4gPiA+IAo+ID4gPiA+IC0tCj4gPiA+ID4gRGFuaWVsIFZldHRlcgo+ ID4gPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiA+IGh0dHBz Oi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwLQo+ID4gPiA+IDNBX19i bG9nLmZmd2xsLmNoJmQ9RHdJR2FRJmM9dWlsYUs5MEQ0VE9Wb0g1OEpOWFJnUSZyPXpPT0cyOGlu SksKPiA+ID4gPiAwNzYyU3hBZi1jeVpkU3RuZDJOUXBSdTk4bEpQMmlZR3cmbT0wNHI4Ri0KPiA+ ID4gPiAwSTl0eldDR2lVSmZqVGRmMEVqRnFkVTc1RjdZYTQ1aUYxODRRJnM9WU9JbDlUXzM0QUJk cnBxQm5mMi0KPiA+ID4gPiBJQllNUkJFRUJtblVUUlRvN2N6QTgxMCZlPQo+ID4gPiA+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+ID4gZHJpLWRl dmVsIG1haWxpbmcgbGlzdAo+ID4gPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK PiA+ID4gPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMt Cj4gPiA+ID4gM0FfX2xpc3RzLmZyZWVkZXNrdG9wLm9yZ19tYWlsbWFuX2xpc3RpbmZvX2RyaS0K PiA+ID4gPiAyRGRldmVsJmQ9RHdJR2FRJmM9dWlsYUs5MEQ0VE9Wb0g1OEpOWFJnUSZyPXpPT0cy OGluSkswNzYyU3hBZgo+ID4gPiA+IC1jeVpkU3RuZDJOUXBSdTk4bEpQMmlZR3cmbT0wNHI4Ri0K PiA+ID4gPiAwSTl0eldDR2lVSmZqVGRmMEVqRnFkVTc1RjdZYTQ1aUYxODRRJnM9LQo+ID4gPiA+ IFBzVnlub0I5YmVUbXFzczBXVHhLaTBMM25tT2VfbGNGS2FicGI1NWphRSZlPQo+IAo+IAoKLS0g CkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6 Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=