From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 12/20] drm/radeon: Introduce GEM object functions Date: Thu, 13 Aug 2020 12:47:04 +0200 Message-ID: References: <20200813083644.31711-1-tzimmermann@suse.de> <20200813083644.31711-13-tzimmermann@suse.de> <5372b2ef-b7cf-f4e9-9199-6dee5bf6696f@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <5372b2ef-b7cf-f4e9-9199-6dee5bf6696f-l3A5Bk7waGM@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Thomas Zimmermann , alexander.deucher-5C7GfCeVMHo@public.gmane.org, airlied-cv59FeDIM0c@public.gmane.org, daniel-/w4YWyX8dFk@public.gmane.org, linux-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org, maarten.lankhorst-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, mripard-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, l.stach-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org, christian.gmeiner-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, inki.dae-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, jy0922.shim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, sw0312.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, kgene-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, krzk-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, patrik.r.jakobsson-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, jani.nikula-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, joonas.lahtinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org, rodrigo.vivi-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org, chunkuang.hu-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, p.zabel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org, matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org, bskeggs-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, tomi.valkeinen-l0cyMroinI0@public.gmane.org, eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org, hjc-TNX95d0MmH7DzftRWevZcw@public.gmane.org, heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org, thierry.reding-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, jonathanh-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org, rodrigosiqueiramelo-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, hamohammed.sa-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, oleksandr_andrushchenko-uRwfk40T5oI@public.gmane.org, hyun.kwon-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org, laurent.pinchart-ryLnwIuWjnhk3lzF8UVTdg@public.gmane.org Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, etnaviv-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, xen-devel-GuqFBffKawtpuQazS67q72D2FQJk+8+b@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org List-Id: nouveau.vger.kernel.org QW0gMTMuMDguMjAgdW0gMTI6NDEgc2NocmllYiBUaG9tYXMgWmltbWVybWFubjoKPiBIaQo+Cj4g QW0gMTMuMDguMjAgdW0gMTI6MjQgc2NocmllYiBDaHJpc3RpYW4gS8O2bmlnOgo+PiBBbSAxMy4w OC4yMCB1bSAxMDozNiBzY2hyaWViIFRob21hcyBaaW1tZXJtYW5uOgo+Pj4gR0VNIG9iamVjdCBm dW5jdGlvbnMgZGVwcmVjYXRlIHNldmVyYWwgc2ltaWxhciBjYWxsYmFjayBpbnRlcmZhY2VzIGlu Cj4+PiBzdHJ1Y3QgZHJtX2RyaXZlci4gVGhpcyBwYXRjaCByZXBsYWNlcyB0aGUgcGVyLWRyaXZl ciBjYWxsYmFja3Mgd2l0aAo+Pj4gcGVyLWluc3RhbmNlIGNhbGxiYWNrcyBpbiByYWRlb24uCj4+ Pgo+Pj4gU2lnbmVkLW9mZi1ieTogVGhvbWFzIFppbW1lcm1hbm4gPHR6aW1tZXJtYW5uQHN1c2Uu ZGU+Cj4+PiAtLS0KPj4+ICDCoCBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9kcnYuY8Kg wqDCoCB8IDIzICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiAgwqAgZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgfCAyNiArKysrKysrKysrKysrKysrKysrKysrKysrKwo+ Pj4gIMKgIDIgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0p Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5j Cj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rydi5jCj4+PiBpbmRleCA0Y2Qz MDYxM2ZhMWQuLjY1MDYxYzk0OWFlZSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2Rydi5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl9kcnYuYwo+Pj4gQEAgLTEyNCwxMyArMTI0LDYgQEAgdm9pZCByYWRlb25fZHJpdmVyX2lycV9w cmVpbnN0YWxsX2ttcyhzdHJ1Y3QKPj4+IGRybV9kZXZpY2UgKmRldik7Cj4+PiAgwqAgaW50IHJh ZGVvbl9kcml2ZXJfaXJxX3Bvc3RpbnN0YWxsX2ttcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK Pj4+ICDCoCB2b2lkIHJhZGVvbl9kcml2ZXJfaXJxX3VuaW5zdGFsbF9rbXMoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cj4+PiAgwqAgaXJxcmV0dXJuX3QgcmFkZW9uX2RyaXZlcl9pcnFfaGFuZGxl cl9rbXMoaW50IGlycSwgdm9pZCAqYXJnKTsKPj4+IC12b2lkIHJhZGVvbl9nZW1fb2JqZWN0X2Zy ZWUoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+Pj4gLWludCByYWRlb25fZ2VtX29iamVj dF9vcGVuKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Cj4+PiAtdm9pZCByYWRl b25fZ2VtX29iamVjdF9jbG9zZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKPj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ Pj4gLXN0cnVjdCBkbWFfYnVmICpyYWRlb25fZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKmdvYmosCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgaW50IGZsYWdzKTsKPj4+ICDCoCBleHRlcm4gaW50IHJhZGVvbl9nZXRfY3J0Y19zY2Fub3V0 cG9zKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+PiB1bnNpZ25lZCBpbnQgY3J0YywKPj4+ICDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVuc2lnbmVkIGlu dCBmbGFncywgaW50ICp2cG9zLCBpbnQgKmhwb3MsCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrdGltZV90ICpzdGltZSwga3RpbWVfdCAqZXRpbWUs Cj4+PiBAQCAtMTQ1LDE0ICsxMzgsOSBAQCBpbnQgcmFkZW9uX21vZGVfZHVtYl9tbWFwKHN0cnVj dCBkcm1fZmlsZSAqZmlscCwKPj4+ICDCoCBpbnQgcmFkZW9uX21vZGVfZHVtYl9jcmVhdGUoc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzKTsKPj4+IC1z dHJ1Y3Qgc2dfdGFibGUgKnJhZGVvbl9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlKHN0cnVjdCBkcm1f Z2VtX29iamVjdAo+Pj4gKm9iaik7Cj4+PiAgwqAgc3RydWN0IGRybV9nZW1fb2JqZWN0ICpyYWRl b25fZ2VtX3ByaW1lX2ltcG9ydF9zZ190YWJsZShzdHJ1Y3QKPj4+IGRybV9kZXZpY2UgKmRldiwK Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHN0cnVjdCBkbWFfYnVmX2F0dGFjaG1lbnQgKiwKPj4+ICDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBzZ190YWJs ZSAqc2cpOwo+Pj4gLWludCByYWRlb25fZ2VtX3ByaW1lX3BpbihzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iaik7Cj4+PiAtdm9pZCByYWRlb25fZ2VtX3ByaW1lX3VucGluKHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqKTsKPj4+IC12b2lkICpyYWRlb25fZ2VtX3ByaW1lX3ZtYXAoc3RydWN0IGRy bV9nZW1fb2JqZWN0ICpvYmopOwo+Pj4gLXZvaWQgcmFkZW9uX2dlbV9wcmltZV92dW5tYXAoc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKPj4+ICDCoCDCoCAvKiBhdHB4 IGhhbmRsZXIgKi8KPj4+ICDCoCAjaWYgZGVmaW5lZChDT05GSUdfVkdBX1NXSVRDSEVST08pCj4+ PiBAQCAtNTUwLDcgKzUzOCw3IEBAIGxvbmcgcmFkZW9uX2RybV9pb2N0bChzdHJ1Y3QgZmlsZSAq ZmlscCwKPj4+ICDCoMKgwqDCoMKgIH0KPj4+ICDCoCDCoMKgwqDCoMKgIHJldCA9IGRybV9pb2N0 bChmaWxwLCBjbWQsIGFyZyk7Cj4+PiAtCj4+PiArCj4+PiAgwqDCoMKgwqDCoCBwbV9ydW50aW1l X21hcmtfbGFzdF9idXN5KGRldi0+ZGV2KTsKPj4+ICDCoMKgwqDCoMKgIHBtX3J1bnRpbWVfcHV0 X2F1dG9zdXNwZW5kKGRldi0+ZGV2KTsKPj4+ICDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4+PiBA QCAtNjA5LDIyICs1OTcsMTMgQEAgc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGttc19kcml2ZXIg PSB7Cj4+PiAgwqDCoMKgwqDCoCAuaXJxX3VuaW5zdGFsbCA9IHJhZGVvbl9kcml2ZXJfaXJxX3Vu aW5zdGFsbF9rbXMsCj4+PiAgwqDCoMKgwqDCoCAuaXJxX2hhbmRsZXIgPSByYWRlb25fZHJpdmVy X2lycV9oYW5kbGVyX2ttcywKPj4+ICDCoMKgwqDCoMKgIC5pb2N0bHMgPSByYWRlb25faW9jdGxz X2ttcywKPj4+IC3CoMKgwqAgLmdlbV9mcmVlX29iamVjdF91bmxvY2tlZCA9IHJhZGVvbl9nZW1f b2JqZWN0X2ZyZWUsCj4+PiAtwqDCoMKgIC5nZW1fb3Blbl9vYmplY3QgPSByYWRlb25fZ2VtX29i amVjdF9vcGVuLAo+Pj4gLcKgwqDCoCAuZ2VtX2Nsb3NlX29iamVjdCA9IHJhZGVvbl9nZW1fb2Jq ZWN0X2Nsb3NlLAo+Pj4gIMKgwqDCoMKgwqAgLmR1bWJfY3JlYXRlID0gcmFkZW9uX21vZGVfZHVt Yl9jcmVhdGUsCj4+PiAgwqDCoMKgwqDCoCAuZHVtYl9tYXBfb2Zmc2V0ID0gcmFkZW9uX21vZGVf ZHVtYl9tbWFwLAo+Pj4gIMKgwqDCoMKgwqAgLmZvcHMgPSAmcmFkZW9uX2RyaXZlcl9rbXNfZm9w cywKPj4+ICDCoCDCoMKgwqDCoMKgIC5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1l X2hhbmRsZV90b19mZCwKPj4+ICDCoMKgwqDCoMKgIC5wcmltZV9mZF90b19oYW5kbGUgPSBkcm1f Z2VtX3ByaW1lX2ZkX3RvX2hhbmRsZSwKPj4+IC3CoMKgwqAgLmdlbV9wcmltZV9leHBvcnQgPSBy YWRlb25fZ2VtX3ByaW1lX2V4cG9ydCwKPj4+IC3CoMKgwqAgLmdlbV9wcmltZV9waW4gPSByYWRl b25fZ2VtX3ByaW1lX3BpbiwKPj4+IC3CoMKgwqAgLmdlbV9wcmltZV91bnBpbiA9IHJhZGVvbl9n ZW1fcHJpbWVfdW5waW4sCj4+PiAtwqDCoMKgIC5nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlID0gcmFk ZW9uX2dlbV9wcmltZV9nZXRfc2dfdGFibGUsCj4+PiAgwqDCoMKgwqDCoCAuZ2VtX3ByaW1lX2lt cG9ydF9zZ190YWJsZSA9IHJhZGVvbl9nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlLAo+Pj4gLcKg wqDCoCAuZ2VtX3ByaW1lX3ZtYXAgPSByYWRlb25fZ2VtX3ByaW1lX3ZtYXAsCj4+PiAtwqDCoMKg IC5nZW1fcHJpbWVfdnVubWFwID0gcmFkZW9uX2dlbV9wcmltZV92dW5tYXAsCj4+PiAgwqAgwqDC oMKgwqDCoCAubmFtZSA9IERSSVZFUl9OQU1FLAo+Pj4gIMKgwqDCoMKgwqAgLmRlc2MgPSBEUklW RVJfREVTQywKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9v YmplY3QuYwo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwo+Pj4g aW5kZXggYmI3NTgyYWZkODAzLi44ODIzOTBlMTVkZmUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fb2JqZWN0LmMKPj4+IEBAIC00NSw2ICs0NSwxOSBAQCBpbnQgcmFkZW9u X3R0bV9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKPj4+ICDCoCB2b2lkIHJhZGVv bl90dG1fZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4+PiAgwqAgc3RhdGljIHZv aWQgcmFkZW9uX2JvX2NsZWFyX3N1cmZhY2VfcmVnKHN0cnVjdCByYWRlb25fYm8gKmJvKTsKPj4+ ICDCoCArdm9pZCByYWRlb25fZ2VtX29iamVjdF9mcmVlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAq b2JqKTsKPj4+ICtpbnQgcmFkZW9uX2dlbV9vYmplY3Rfb3BlbihzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKm9iaiwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXYpOwo+Pj4gK3ZvaWQgcmFkZW9uX2dlbV9vYmplY3RfY2xvc2Uoc3RydWN0 IGRybV9nZW1fb2JqZWN0ICpvYmosCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPj4+ICtzdHJ1Y3QgZG1hX2J1ZiAqcmFkZW9u X2dlbV9wcmltZV9leHBvcnQoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpnb2JqLAo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBmbGFncyk7Cj4+PiArc3RydWN0 IHNnX3RhYmxlICpyYWRlb25fZ2VtX3ByaW1lX2dldF9zZ190YWJsZShzdHJ1Y3QgZHJtX2dlbV9v YmplY3QKPj4+ICpvYmopOwo+Pj4gK2ludCByYWRlb25fZ2VtX3ByaW1lX3BpbihzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaik7Cj4+PiArdm9pZCByYWRlb25fZ2VtX3ByaW1lX3VucGluKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPj4+ICt2b2lkICpyYWRlb25fZ2VtX3ByaW1lX3ZtYXAo c3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmopOwo+Pj4gK3ZvaWQgcmFkZW9uX2dlbV9wcmltZV92 dW5tYXAoc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmosIHZvaWQgKnZhZGRyKTsKPj4+ICsKPj4+ ICDCoCAvKgo+Pj4gIMKgwqAgKiBUbyBleGNsdWRlIG11dHVhbCBCTyBhY2Nlc3Mgd2UgcmVseSBv biBib19yZXNlcnZlIGV4Y2x1c2lvbiwgYXMgYWxsCj4+PiAgwqDCoCAqIGZ1bmN0aW9uIGFyZSBj YWxsaW5nIGl0Lgo+Pj4gQEAgLTE4MCw2ICsxOTMsMTggQEAgdm9pZCByYWRlb25fdHRtX3BsYWNl bWVudF9mcm9tX2RvbWFpbihzdHJ1Y3QKPj4+IHJhZGVvbl9ibyAqcmJvLCB1MzIgZG9tYWluKQo+ Pj4gIMKgwqDCoMKgwqAgfQo+Pj4gIMKgIH0KPj4+ICDCoCArc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fZ2VtX29iamVjdF9mdW5jcyByYWRlb25fZ2VtX29iamVjdF9mdW5jcyA9IHsKPj4+ICvCoMKg wqAgLmZyZWUgPSByYWRlb25fZ2VtX29iamVjdF9mcmVlLAo+Pj4gK8KgwqDCoCAub3BlbiA9IHJh ZGVvbl9nZW1fb2JqZWN0X29wZW4sCj4+PiArwqDCoMKgIC5jbG9zZSA9IHJhZGVvbl9nZW1fb2Jq ZWN0X2Nsb3NlLAo+Pj4gK8KgwqDCoCAuZXhwb3J0ID0gcmFkZW9uX2dlbV9wcmltZV9leHBvcnQs Cj4+PiArwqDCoMKgIC5waW4gPSByYWRlb25fZ2VtX3ByaW1lX3BpbiwKPj4+ICvCoMKgwqAgLnVu cGluID0gcmFkZW9uX2dlbV9wcmltZV91bnBpbiwKPj4+ICvCoMKgwqAgLmdldF9zZ190YWJsZSA9 IHJhZGVvbl9nZW1fcHJpbWVfZ2V0X3NnX3RhYmxlLAo+Pj4gK8KgwqDCoCAudm1hcCA9IHJhZGVv bl9nZW1fcHJpbWVfdm1hcCwKPj4+ICvCoMKgwqAgLnZ1bm1hcCA9IHJhZGVvbl9nZW1fcHJpbWVf dnVubWFwLAo+Pj4gK307Cj4+PiArCj4+IFNhbWUgY29tbWVudCBhcyBmb3IgYW1kZ3B1LCBwbGVh c2UgcHV0IHRoYXQgaW50byByYWRlb25fZ2VtLmMgaW5zdGVhZC4KPiBUaGVyZSdzIG5vIGdvb2Qg aGVhZGVyIGZpbGUgdG8gcHV0IHRoZSBkZWNsYXJhdGlvbnMsIHJpZ2h0PyBJJ20gYXNraW5nCj4g YmVjYXVzZSBjaGVja3BhdGNoIHdhcm5zIGFib3V0IGRlY2xhcmF0aW9ucyBpbiB0aGUgc291cmNl IGZpbGVzLgoKWWVzLCB0aGF0IGlzIGtpbmQgb2YgYSBtZXNzIGJlY2F1c2UgcmFkZW9uIHVzZWQg dG8gc3VwcG9ydCBib3RoIEtNUyBhbmQgVU1TLgoKVGhhbmtzIGZvciBjbGVhbmluZyB0aGlzIHVw LApDaHJpc3RpYW4uCgo+Cj4gQmVzdCByZWdhcmRzCj4gVGhvbWFzCj4KPj4gQ2hyaXN0aWFuLgo+ Pgo+Pj4gIMKgIGludCByYWRlb25fYm9fY3JlYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LAo+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBzaXplLCBp bnQgYnl0ZV9hbGlnbiwgYm9vbCBrZXJuZWwsCj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB1MzIgZG9tYWluLCB1MzIgZmxhZ3MsIHN0cnVjdCBzZ190YWJsZSAqc2csCj4+PiBAQCAt MjA5LDYgKzIzNCw3IEBAIGludCByYWRlb25fYm9fY3JlYXRlKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2LAo+Pj4gIMKgwqDCoMKgwqAgYm8gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmFkZW9u X2JvKSwgR0ZQX0tFUk5FTCk7Cj4+PiAgwqDCoMKgwqDCoCBpZiAoYm8gPT0gTlVMTCkKPj4+ICDC oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FTk9NRU07Cj4+PiArwqDCoMKgIGJvLT50Ym8uYmFz ZS5mdW5jcyA9ICZyYWRlb25fZ2VtX29iamVjdF9mdW5jczsKPj4+ICDCoMKgwqDCoMKgIGRybV9n ZW1fcHJpdmF0ZV9vYmplY3RfaW5pdChyZGV2LT5kZGV2LCAmYm8tPnRiby5iYXNlLCBzaXplKTsK Pj4+ICDCoMKgwqDCoMKgIGJvLT5yZGV2ID0gcmRldjsKPj4+ICDCoMKgwqDCoMKgIGJvLT5zdXJm YWNlX3JlZyA9IC0xOwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==