From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 2/5] dma-buf: remove kmap_atomic interface Date: Tue, 19 Jun 2018 16:47:14 +0200 Message-ID: <2bcb34c3-b729-e3ea-fb8c-2471e4ed56d6@amd.com> References: <20180601120020.11520-1-christian.koenig@amd.com> <20180601120020.11520-2-christian.koenig@amd.com> <20180618081845.GV3438@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180618081845.GV3438@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-media@vger.kernel.org List-Id: amd-gfx.lists.freedesktop.org QW0gMTguMDYuMjAxOCB1bSAxMDoxOCBzY2hyaWViIERhbmllbCBWZXR0ZXI6Cj4gT24gRnJpLCBK dW4gMDEsIDIwMTggYXQgMDI6MDA6MTdQTSArMDIwMCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToK Pj4gTmVpdGhlciB1c2VkIG5vciBjb3JyZWN0bHkgaW1wbGVtZW50ZWQgYW55d2hlcmUuIEp1c3Qg Y29tcGxldGVseSByZW1vdmUKPj4gdGhlIGludGVyZmFjZS4KPj4KPj4gU2lnbmVkLW9mZi1ieTog Q2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+IEkgd29uZGVyIHdo ZXRoZXIgd2UgY2FuIG51a2UgdGhlIG5vcm1hbCBrbWFwIHN0dWZmIHRvbyAuLi4gZXZlcnlvbmUg c2VlbXMKPiB0byB3YW50L3VzZSB0aGUgdm1hcCBzdHVmZiBmb3Iga2VybmVsLWludGVybmFsIG1h cHBpbmcgbmVlZHMuCj4KPiBBbnl3YXksIHRoaXMgbG9va3MgZ29vZC4KPj4gLS0tCj4+ICAgZHJp dmVycy9kbWEtYnVmL2RtYS1idWYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0NCAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ByaW1lLmMgICAgICAgICAgfCAgMiAtCj4+ICAgZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1h ZGFfZ2VtLmMgICAgICAgICAgICAgICAgfCAgMiAtCj4+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9w cmltZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAyNiAtLS0tLS0tLS0tLS0tCj4+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgICAgICAgICAgICAgfCAxMSAtLS0t LS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19kbWFidWYuYyAgICAg ICB8ICAyIC0KPj4gICBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2dlbV9kbWFidWYuYyAg ICAgICAgICB8ICAyIC0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmMgICAgICAgICAg ICAgICAgICAgICAgICB8IDE0IC0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9k bWFidWYuYyAgICAgICAgICAgICAgICAgICB8IDE3IC0tLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3ByaW1lLmMgICAgICAgICAgICAgIHwgMTMgLS0tLS0tLQo+PiAg IC4uLi9tZWRpYS9jb21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi1kbWEtY29udGlnLmMgIHwgIDEg LQo+PiAgIGRyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItZG1hLXNnLmMg IHwgIDEgLQo+PiAgIGRyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItdm1h bGxvYy5jIHwgIDEgLQo+PiAgIGRyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL2lvbi9pb24uYyAgICAg ICAgICAgICAgICAgIHwgIDIgLQo+PiAgIGRyaXZlcnMvdGVlL3RlZV9zaG0uYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDYgLS0tCj4+ICAgaW5jbHVkZS9kcm0vZHJtX3ByaW1lLmgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCAtLQo+PiAgIGluY2x1ZGUvbGludXgvZG1h LWJ1Zi5oICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQgLS0KPj4gICAxNyBmaWxlcyBj aGFuZ2VkLCAxNTIgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1i dWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwo+PiBpbmRleCBlOTlhOGQx OTk5MWIuLmU0YzY1N2Q5ZmFkNyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1i dWYuYwo+PiArKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4+IEBAIC00MDUsNyArNDA1 LDYgQEAgc3RydWN0IGRtYV9idWYgKmRtYV9idWZfZXhwb3J0KGNvbnN0IHN0cnVjdCBkbWFfYnVm X2V4cG9ydF9pbmZvICpleHBfaW5mbykKPj4gICAJCQkgIHx8ICFleHBfaW5mby0+b3BzLT5tYXBf ZG1hX2J1Zgo+PiAgIAkJCSAgfHwgIWV4cF9pbmZvLT5vcHMtPnVubWFwX2RtYV9idWYKPj4gICAJ CQkgIHx8ICFleHBfaW5mby0+b3BzLT5yZWxlYXNlCj4+IC0JCQkgIHx8ICFleHBfaW5mby0+b3Bz LT5tYXBfYXRvbWljCj4+ICAgCQkJICB8fCAhZXhwX2luZm8tPm9wcy0+bWFwCj4+ICAgCQkJICB8 fCAhZXhwX2luZm8tPm9wcy0+bW1hcCkpIHsKPj4gICAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwp Owo+PiBAQCAtNjg3LDE0ICs2ODYsNiBAQCBFWFBPUlRfU1lNQk9MX0dQTChkbWFfYnVmX3VubWFw X2F0dGFjaG1lbnQpOwo+PiAgICAqICAgICAgdm9pZCBcKmRtYV9idWZfa21hcChzdHJ1Y3QgZG1h X2J1ZiBcKiwgdW5zaWduZWQgbG9uZyk7Cj4+ICAgICogICAgICB2b2lkIGRtYV9idWZfa3VubWFw KHN0cnVjdCBkbWFfYnVmIFwqLCB1bnNpZ25lZCBsb25nLCB2b2lkIFwqKTsKPj4gICAgKgo+PiAt ICogICBUaGVyZSBhcmUgYWxzbyBhdG9taWMgdmFyaWFudHMgb2YgdGhlc2UgaW50ZXJmYWNlcy4g TGlrZSBmb3Iga21hcCB0aGV5Cj4+IC0gKiAgIGZhY2lsaXRhdGUgbm9uLWJsb2NraW5nIGZhc3Qt cGF0aHMuIE5laXRoZXIgdGhlIGltcG9ydGVyIG5vciB0aGUgZXhwb3J0ZXIKPj4gLSAqICAgKGlu IHRoZSBjYWxsYmFjaykgaXMgYWxsb3dlZCB0byBibG9jayB3aGVuIHVzaW5nIHRoZXNlLgo+PiAt ICoKPj4gLSAqICAgSW50ZXJmYWNlczo6Cj4+IC0gKiAgICAgIHZvaWQgXCpkbWFfYnVmX2ttYXBf YXRvbWljKHN0cnVjdCBkbWFfYnVmIFwqLCB1bnNpZ25lZCBsb25nKTsKPj4gLSAqICAgICAgdm9p ZCBkbWFfYnVmX2t1bm1hcF9hdG9taWMoc3RydWN0IGRtYV9idWYgXCosIHVuc2lnbmVkIGxvbmcs IHZvaWQgXCopOwo+PiAtICoKPj4gICAgKiAgIEZvciBpbXBvcnRlcnMgYWxsIHRoZSByZXN0cmlj dGlvbnMgb2YgdXNpbmcga21hcCBhcHBseSwgbGlrZSB0aGUgbGltaXRlZAo+PiAgICAqICAgc3Vw cGx5IG9mIGttYXBfYXRvbWljIHNsb3RzLiBIZW5jZSBhbiBpbXBvcnRlciBzaGFsbCBvbmx5IGhv bGQgb250byBhdAo+PiAgICAqICAgbWF4IDIgYXRvbWljIGRtYV9idWYga21hcHMgYXQgdGhlIHNh bWUgdGltZSAoaW4gYW55IGdpdmVuIHByb2Nlc3MgY29udGV4dCkuCj4gVGhpcyBpcyBhbHNvIGFi b3V0IGF0b21pYyBrbWFwIC4uLgo+Cj4gQW5kIHRoZSBzdWJzZXF1ZW50IGxhbmd1YWdlIGFyb3Vu ZCAiTm90ZSB0aGF0IHRoZXNlIGNhbGxzIG5lZWQgdG8gYWx3YXlzCj4gc3VjY2VlZC4iIGlzIGFs c28gbm90IHRydWUsIG1pZ2h0IGJlIGdvb2QgdG8gdXBkYXRlIHRoYXQgc3RhdGluZyB0aGF0IGtt YXAKPiBpcyBvcHRpb25hbCAobGlrZSB3ZSBzYXkgYWxyZWFkeSBmb3Igdm1hcCkuCj4KPiBXaXRo IHRob3NlIGRvY3Mgbml0cyBhZGRyZXNzZWQ6Cj4KPiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCkkndmUgZml4ZWQgdXAgcGF0Y2ggIzEgYW5kICMy IGFuZCBhZGRlZCB5b3VyIFJldmlld2VkLWJ5IHRhZy4KClNpbmNlIEkgZmluYWxseSBoYWQgdGlt ZSB0byBpbnN0YWxsIGRpbSBkbyB5b3UgaGF2ZSBhbnkgb2JqZWN0aW9ucyB0aGF0IApJIG5vdyBy dW4gImRpbSBwdXNoIGRybS1taXNjLW5leHQiIHdpdGggdGhvc2UgdHdvIGFwcGxpZWQ/CgpSZWdh cmRzLApDaHJpc3RpYW4uCgo+Cj4+IEBAIC04NTksNDEgKzg1MCw2IEBAIGludCBkbWFfYnVmX2Vu ZF9jcHVfYWNjZXNzKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsCj4+ICAgfQo+PiAgIEVYUE9SVF9T WU1CT0xfR1BMKGRtYV9idWZfZW5kX2NwdV9hY2Nlc3MpOwo+PiAgIAo+PiAtLyoqCj4+IC0gKiBk bWFfYnVmX2ttYXBfYXRvbWljIC0gTWFwIGEgcGFnZSBvZiB0aGUgYnVmZmVyIG9iamVjdCBpbnRv IGtlcm5lbCBhZGRyZXNzCj4+IC0gKiBzcGFjZS4gVGhlIHNhbWUgcmVzdHJpY3Rpb25zIGFzIGZv ciBrbWFwX2F0b21pYyBhbmQgZnJpZW5kcyBhcHBseS4KPj4gLSAqIEBkbWFidWY6CVtpbl0JYnVm ZmVyIHRvIG1hcCBwYWdlIGZyb20uCj4+IC0gKiBAcGFnZV9udW06CVtpbl0JcGFnZSBpbiBQQUdF X1NJWkUgdW5pdHMgdG8gbWFwLgo+PiAtICoKPj4gLSAqIFRoaXMgY2FsbCBtdXN0IGFsd2F5cyBz dWNjZWVkLCBhbnkgbmVjZXNzYXJ5IHByZXBhcmF0aW9ucyB0aGF0IG1pZ2h0IGZhaWwKPj4gLSAq IG5lZWQgdG8gYmUgZG9uZSBpbiBiZWdpbl9jcHVfYWNjZXNzLgo+PiAtICovCj4+IC12b2lkICpk bWFfYnVmX2ttYXBfYXRvbWljKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIHVuc2lnbmVkIGxvbmcg cGFnZV9udW0pCj4+IC17Cj4+IC0JV0FSTl9PTighZG1hYnVmKTsKPj4gLQo+PiAtCXJldHVybiBk bWFidWYtPm9wcy0+bWFwX2F0b21pYyhkbWFidWYsIHBhZ2VfbnVtKTsKPj4gLX0KPj4gLUVYUE9S VF9TWU1CT0xfR1BMKGRtYV9idWZfa21hcF9hdG9taWMpOwo+PiAtCj4+IC0vKioKPj4gLSAqIGRt YV9idWZfa3VubWFwX2F0b21pYyAtIFVubWFwIGEgcGFnZSBvYnRhaW5lZCBieSBkbWFfYnVmX2tt YXBfYXRvbWljLgo+PiAtICogQGRtYWJ1ZjoJW2luXQlidWZmZXIgdG8gdW5tYXAgcGFnZSBmcm9t Lgo+PiAtICogQHBhZ2VfbnVtOglbaW5dCXBhZ2UgaW4gUEFHRV9TSVpFIHVuaXRzIHRvIHVubWFw Lgo+PiAtICogQHZhZGRyOglbaW5dCWtlcm5lbCBzcGFjZSBwb2ludGVyIG9idGFpbmVkIGZyb20g ZG1hX2J1Zl9rbWFwX2F0b21pYy4KPj4gLSAqCj4+IC0gKiBUaGlzIGNhbGwgbXVzdCBhbHdheXMg c3VjY2VlZC4KPj4gLSAqLwo+PiAtdm9pZCBkbWFfYnVmX2t1bm1hcF9hdG9taWMoc3RydWN0IGRt YV9idWYgKmRtYWJ1ZiwgdW5zaWduZWQgbG9uZyBwYWdlX251bSwKPj4gLQkJCSAgIHZvaWQgKnZh ZGRyKQo+PiAtewo+PiAtCVdBUk5fT04oIWRtYWJ1Zik7Cj4+IC0KPj4gLQlpZiAoZG1hYnVmLT5v cHMtPnVubWFwX2F0b21pYykKPj4gLQkJZG1hYnVmLT5vcHMtPnVubWFwX2F0b21pYyhkbWFidWYs IHBhZ2VfbnVtLCB2YWRkcik7Cj4+IC19Cj4+IC1FWFBPUlRfU1lNQk9MX0dQTChkbWFfYnVmX2t1 bm1hcF9hdG9taWMpOwo+PiAtCj4+ICAgLyoqCj4+ICAgICogZG1hX2J1Zl9rbWFwIC0gTWFwIGEg cGFnZSBvZiB0aGUgYnVmZmVyIG9iamVjdCBpbnRvIGtlcm5lbCBhZGRyZXNzIHNwYWNlLiBUaGUK Pj4gICAgKiBzYW1lIHJlc3RyaWN0aW9ucyBhcyBmb3Iga21hcCBhbmQgZnJpZW5kcyBhcHBseS4K Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9wcmltZS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ByaW1lLmMKPj4gaW5kZXggZjE1 MDBmMWVjMGY1Li5hMTU2YjM4OTFhM2YgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9wcmltZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9wcmltZS5jCj4+IEBAIC0yNDQsOSArMjQ0LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkbWFfYnVmX29wcyBhbWRncHVfZG1hYnVmX29wcyA9IHsKPj4gICAJLnJlbGVhc2UgPSBk cm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlLAo+PiAgIAkuYmVnaW5fY3B1X2FjY2VzcyA9IGFtZGdwdV9n ZW1fYmVnaW5fY3B1X2FjY2VzcywKPj4gICAJLm1hcCA9IGRybV9nZW1fZG1hYnVmX2ttYXAsCj4+ IC0JLm1hcF9hdG9taWMgPSBkcm1fZ2VtX2RtYWJ1Zl9rbWFwX2F0b21pYywKPj4gICAJLnVubWFw ID0gZHJtX2dlbV9kbWFidWZfa3VubWFwLAo+PiAtCS51bm1hcF9hdG9taWMgPSBkcm1fZ2VtX2Rt YWJ1Zl9rdW5tYXBfYXRvbWljLAo+PiAgIAkubW1hcCA9IGRybV9nZW1fZG1hYnVmX21tYXAsCj4+ ICAgCS52bWFwID0gZHJtX2dlbV9kbWFidWZfdm1hcCwKPj4gICAJLnZ1bm1hcCA9IGRybV9nZW1f ZG1hYnVmX3Z1bm1hcCwKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJt YWRhX2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FybWFkYS9hcm1hZGFfZ2VtLmMKPj4gaW5kZXgg YTk3ZjUwOTc0M2E1Li4zZmIzN2M3NWMwNjUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hcm1hZGEvYXJtYWRhX2dlbS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEvYXJt YWRhX2dlbS5jCj4+IEBAIC00OTAsOCArNDkwLDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFf YnVmX29wcyBhcm1hZGFfZ2VtX3ByaW1lX2RtYWJ1Zl9vcHMgPSB7Cj4+ICAgCS5tYXBfZG1hX2J1 Zgk9IGFybWFkYV9nZW1fcHJpbWVfbWFwX2RtYV9idWYsCj4+ICAgCS51bm1hcF9kbWFfYnVmCT0g YXJtYWRhX2dlbV9wcmltZV91bm1hcF9kbWFfYnVmLAo+PiAgIAkucmVsZWFzZQk9IGRybV9nZW1f ZG1hYnVmX3JlbGVhc2UsCj4+IC0JLm1hcF9hdG9taWMJPSBhcm1hZGFfZ2VtX2RtYWJ1Zl9ub19r bWFwLAo+PiAtCS51bm1hcF9hdG9taWMJPSBhcm1hZGFfZ2VtX2RtYWJ1Zl9ub19rdW5tYXAsCj4+ ICAgCS5tYXAJCT0gYXJtYWRhX2dlbV9kbWFidWZfbm9fa21hcCwKPj4gICAJLnVubWFwCQk9IGFy bWFkYV9nZW1fZG1hYnVmX25vX2t1bm1hcCwKPj4gICAJLm1tYXAJCT0gYXJtYWRhX2dlbV9kbWFi dWZfbW1hcCwKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwo+PiBpbmRleCA0YTNhMjMyZmVhNjcuLmIyOGZhOGY0 NGM4YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwo+PiBAQCAtNDI2LDMwICs0MjYsNiBAQCB2b2lk IGRybV9nZW1fZG1hYnVmX3Z1bm1hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Ziwgdm9pZCAqdmFk ZHIpCj4+ICAgfQo+PiAgIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9kbWFidWZfdnVubWFwKTsKPj4g ICAKPj4gLS8qKgo+PiAtICogZHJtX2dlbV9kbWFidWZfa21hcF9hdG9taWMgLSBtYXBfYXRvbWlj IGltcGxlbWVudGF0aW9uIGZvciBHRU0KPj4gLSAqCj4+IC0gKiBOb3QgaW1wbGVtZW50ZWQuIFRo aXMgY2FuIGJlIHVzZWQgYXMgdGhlICZkbWFfYnVmX29wcy5tYXBfYXRvbWljIGNhbGxiYWNrLgo+ PiAtICovCj4+IC12b2lkICpkcm1fZ2VtX2RtYWJ1Zl9rbWFwX2F0b21pYyhzdHJ1Y3QgZG1hX2J1 ZiAqZG1hX2J1ZiwKPj4gLQkJCQkgdW5zaWduZWQgbG9uZyBwYWdlX251bSkKPj4gLXsKPj4gLQly ZXR1cm4gTlVMTDsKPj4gLX0KPj4gLUVYUE9SVF9TWU1CT0woZHJtX2dlbV9kbWFidWZfa21hcF9h dG9taWMpOwo+PiAtCj4+IC0vKioKPj4gLSAqIGRybV9nZW1fZG1hYnVmX2t1bm1hcF9hdG9taWMg LSB1bm1hcF9hdG9taWMgaW1wbGVtZW50YXRpb24gZm9yIEdFTQo+PiAtICoKPj4gLSAqIE5vdCBp bXBsZW1lbnRlZC4gVGhpcyBjYW4gYmUgdXNlZCBhcyB0aGUgJmRtYV9idWZfb3BzLnVubWFwX2F0 b21pYyBjYWxsYmFjay4KPj4gLSAqLwo+PiAtdm9pZCBkcm1fZ2VtX2RtYWJ1Zl9rdW5tYXBfYXRv bWljKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAo+PiAtCQkJCSAgdW5zaWduZWQgbG9uZyBwYWdl X251bSwgdm9pZCAqYWRkcikKPj4gLXsKPj4gLQo+PiAtfQo+PiAtRVhQT1JUX1NZTUJPTChkcm1f Z2VtX2RtYWJ1Zl9rdW5tYXBfYXRvbWljKTsKPj4gLQo+PiAgIC8qKgo+PiAgICAqIGRybV9nZW1f ZG1hYnVmX2ttYXAgLSBtYXAgaW1wbGVtZW50YXRpb24gZm9yIEdFTQo+PiAgICAqCj4+IEBAIC01 MDIsOSArNDc4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyBkcm1fZ2VtX3By aW1lX2RtYWJ1Zl9vcHMgPSAgewo+PiAgIAkudW5tYXBfZG1hX2J1ZiA9IGRybV9nZW1fdW5tYXBf ZG1hX2J1ZiwKPj4gICAJLnJlbGVhc2UgPSBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlLAo+PiAgIAku bWFwID0gZHJtX2dlbV9kbWFidWZfa21hcCwKPj4gLQkubWFwX2F0b21pYyA9IGRybV9nZW1fZG1h YnVmX2ttYXBfYXRvbWljLAo+PiAgIAkudW5tYXAgPSBkcm1fZ2VtX2RtYWJ1Zl9rdW5tYXAsCj4+ IC0JLnVubWFwX2F0b21pYyA9IGRybV9nZW1fZG1hYnVmX2t1bm1hcF9hdG9taWMsCj4+ICAgCS5t bWFwID0gZHJtX2dlbV9kbWFidWZfbW1hcCwKPj4gICAJLnZtYXAgPSBkcm1fZ2VtX2RtYWJ1Zl92 bWFwLAo+PiAgIAkudnVubWFwID0gZHJtX2dlbV9kbWFidWZfdnVubWFwLAo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwo+PiBpbmRleCA2OWE3YWVjNDllODQuLjgyZTJjYTE3 YTQ0MSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVm LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKPj4gQEAg LTExMSwxNSArMTExLDYgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fZG1hYnVmX3Z1bm1hcChzdHJ1 Y3QgZG1hX2J1ZiAqZG1hX2J1Ziwgdm9pZCAqdmFkZHIpCj4+ICAgCWk5MTVfZ2VtX29iamVjdF91 bnBpbl9tYXAob2JqKTsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMgdm9pZCAqaTkxNV9nZW1fZG1h YnVmX2ttYXBfYXRvbWljKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCB1bnNpZ25lZCBsb25nIHBh Z2VfbnVtKQo+PiAtewo+PiAtCXJldHVybiBOVUxMOwo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgdm9p ZCBpOTE1X2dlbV9kbWFidWZfa3VubWFwX2F0b21pYyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Ziwg dW5zaWduZWQgbG9uZyBwYWdlX251bSwgdm9pZCAqYWRkcikKPj4gLXsKPj4gLQo+PiAtfQo+PiAg IHN0YXRpYyB2b2lkICppOTE1X2dlbV9kbWFidWZfa21hcChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1 ZiwgdW5zaWduZWQgbG9uZyBwYWdlX251bSkKPj4gICB7Cj4+ICAgCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmogPSBkbWFfYnVmX3RvX29iaihkbWFfYnVmKTsKPj4gQEAgLTIyNSw5ICsy MTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIGk5MTVfZG1hYnVmX29wcyA9 ICB7Cj4+ICAgCS51bm1hcF9kbWFfYnVmID0gaTkxNV9nZW1fdW5tYXBfZG1hX2J1ZiwKPj4gICAJ LnJlbGVhc2UgPSBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlLAo+PiAgIAkubWFwID0gaTkxNV9nZW1f ZG1hYnVmX2ttYXAsCj4+IC0JLm1hcF9hdG9taWMgPSBpOTE1X2dlbV9kbWFidWZfa21hcF9hdG9t aWMsCj4+ICAgCS51bm1hcCA9IGk5MTVfZ2VtX2RtYWJ1Zl9rdW5tYXAsCj4+IC0JLnVubWFwX2F0 b21pYyA9IGk5MTVfZ2VtX2RtYWJ1Zl9rdW5tYXBfYXRvbWljLAo+PiAgIAkubW1hcCA9IGk5MTVf Z2VtX2RtYWJ1Zl9tbWFwLAo+PiAgIAkudm1hcCA9IGk5MTVfZ2VtX2RtYWJ1Zl92bWFwLAo+PiAg IAkudnVubWFwID0gaTkxNV9nZW1fZG1hYnVmX3Z1bm1hcCwKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2RtYWJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL21vY2tfZG1hYnVmLmMKPj4gaW5kZXggMzAyZjdkMTAzNjM1Li5mODFm ZGE4ZWE0NWUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9t b2NrX2RtYWJ1Zi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2Nr X2RtYWJ1Zi5jCj4+IEBAIC0xMzAsOSArMTMwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFf YnVmX29wcyBtb2NrX2RtYWJ1Zl9vcHMgPSAgewo+PiAgIAkudW5tYXBfZG1hX2J1ZiA9IG1vY2tf dW5tYXBfZG1hX2J1ZiwKPj4gICAJLnJlbGVhc2UgPSBtb2NrX2RtYWJ1Zl9yZWxlYXNlLAo+PiAg IAkubWFwID0gbW9ja19kbWFidWZfa21hcCwKPj4gLQkubWFwX2F0b21pYyA9IG1vY2tfZG1hYnVm X2ttYXBfYXRvbWljLAo+PiAgIAkudW5tYXAgPSBtb2NrX2RtYWJ1Zl9rdW5tYXAsCj4+IC0JLnVu bWFwX2F0b21pYyA9IG1vY2tfZG1hYnVmX2t1bm1hcF9hdG9taWMsCj4+ICAgCS5tbWFwID0gbW9j a19kbWFidWZfbW1hcCwKPj4gICAJLnZtYXAgPSBtb2NrX2RtYWJ1Zl92bWFwLAo+PiAgIAkudnVu bWFwID0gbW9ja19kbWFidWZfdnVubWFwLAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vb21hcF9nZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFw X2dlbV9kbWFidWYuYwo+PiBpbmRleCA4ZTQxZDY0OWUyNDguLjFhMDczZjliMjgzNCAxMDA2NDQK Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9nZW1fZG1hYnVmLmMKPj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9nZW1fZG1hYnVmLmMKPj4gQEAgLTE0OCw4 ICsxNDgsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIG9tYXBfZG1hYnVmX29w cyA9IHsKPj4gICAJLnJlbGVhc2UgPSBkcm1fZ2VtX2RtYWJ1Zl9yZWxlYXNlLAo+PiAgIAkuYmVn aW5fY3B1X2FjY2VzcyA9IG9tYXBfZ2VtX2RtYWJ1Zl9iZWdpbl9jcHVfYWNjZXNzLAo+PiAgIAku ZW5kX2NwdV9hY2Nlc3MgPSBvbWFwX2dlbV9kbWFidWZfZW5kX2NwdV9hY2Nlc3MsCj4+IC0JLm1h cF9hdG9taWMgPSBvbWFwX2dlbV9kbWFidWZfa21hcF9hdG9taWMsCj4+IC0JLnVubWFwX2F0b21p YyA9IG9tYXBfZ2VtX2RtYWJ1Zl9rdW5tYXBfYXRvbWljLAo+PiAgIAkubWFwID0gb21hcF9nZW1f ZG1hYnVmX2ttYXAsCj4+ICAgCS51bm1hcCA9IG9tYXBfZ2VtX2RtYWJ1Zl9rdW5tYXAsCj4+ICAg CS5tbWFwID0gb21hcF9nZW1fZG1hYnVmX21tYXAsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdGVncmEvZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmMKPj4gaW5kZXgg OGIwYjRmZjY0YmI0Li5kNzY2MTcwMmMxMWMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS90ZWdyYS9nZW0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZ2VtLmMKPj4gQEAg LTU5NiwxOCArNTk2LDYgQEAgc3RhdGljIGludCB0ZWdyYV9nZW1fcHJpbWVfZW5kX2NwdV9hY2Nl c3Moc3RydWN0IGRtYV9idWYgKmJ1ZiwKPj4gICAJcmV0dXJuIDA7Cj4+ICAgfQo+PiAgIAo+PiAt c3RhdGljIHZvaWQgKnRlZ3JhX2dlbV9wcmltZV9rbWFwX2F0b21pYyhzdHJ1Y3QgZG1hX2J1ZiAq YnVmLAo+PiAtCQkJCQkgdW5zaWduZWQgbG9uZyBwYWdlKQo+PiAtewo+PiAtCXJldHVybiBOVUxM Owo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgdm9pZCB0ZWdyYV9nZW1fcHJpbWVfa3VubWFwX2F0b21p YyhzdHJ1Y3QgZG1hX2J1ZiAqYnVmLAo+PiAtCQkJCQkgIHVuc2lnbmVkIGxvbmcgcGFnZSwKPj4g LQkJCQkJICB2b2lkICphZGRyKQo+PiAtewo+PiAtfQo+PiAtCj4+ICAgc3RhdGljIHZvaWQgKnRl Z3JhX2dlbV9wcmltZV9rbWFwKHN0cnVjdCBkbWFfYnVmICpidWYsIHVuc2lnbmVkIGxvbmcgcGFn ZSkKPj4gICB7Cj4+ICAgCXJldHVybiBOVUxMOwo+PiBAQCAtNjQ4LDggKzYzNiw2IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdGVncmFfZ2VtX3ByaW1lX2RtYWJ1Zl9vcHMgPSB7 Cj4+ICAgCS5yZWxlYXNlID0gdGVncmFfZ2VtX3ByaW1lX3JlbGVhc2UsCj4+ICAgCS5iZWdpbl9j cHVfYWNjZXNzID0gdGVncmFfZ2VtX3ByaW1lX2JlZ2luX2NwdV9hY2Nlc3MsCj4+ICAgCS5lbmRf Y3B1X2FjY2VzcyA9IHRlZ3JhX2dlbV9wcmltZV9lbmRfY3B1X2FjY2VzcywKPj4gLQkubWFwX2F0 b21pYyA9IHRlZ3JhX2dlbV9wcmltZV9rbWFwX2F0b21pYywKPj4gLQkudW5tYXBfYXRvbWljID0g dGVncmFfZ2VtX3ByaW1lX2t1bm1hcF9hdG9taWMsCj4+ICAgCS5tYXAgPSB0ZWdyYV9nZW1fcHJp bWVfa21hcCwKPj4gICAJLnVubWFwID0gdGVncmFfZ2VtX3ByaW1lX2t1bm1hcCwKPj4gICAJLm1t YXAgPSB0ZWdyYV9nZW1fcHJpbWVfbW1hcCwKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS91ZGwvdWRsX2RtYWJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZG1hYnVmLmMKPj4g aW5kZXggNWZkYzhiZGMyMDI2Li5hZTcyMjVkZWRjMzAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS91ZGwvdWRsX2RtYWJ1Zi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRs X2RtYWJ1Zi5jCj4+IEBAIC0xNTYsMjcgKzE1NiwxMiBAQCBzdGF0aWMgdm9pZCAqdWRsX2RtYWJ1 Zl9rbWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCB1bnNpZ25lZCBsb25nIHBhZ2VfbnVtKQo+ PiAgIAlyZXR1cm4gTlVMTDsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMgdm9pZCAqdWRsX2RtYWJ1 Zl9rbWFwX2F0b21pYyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPj4gLQkJCQkgICAgdW5zaWdu ZWQgbG9uZyBwYWdlX251bSkKPj4gLXsKPj4gLQkvKiBUT0RPICovCj4+IC0KPj4gLQlyZXR1cm4g TlVMTDsKPj4gLX0KPj4gLQo+PiAgIHN0YXRpYyB2b2lkIHVkbF9kbWFidWZfa3VubWFwKHN0cnVj dCBkbWFfYnVmICpkbWFfYnVmLAo+PiAgIAkJCSAgICAgIHVuc2lnbmVkIGxvbmcgcGFnZV9udW0s IHZvaWQgKmFkZHIpCj4+ICAgewo+PiAgIAkvKiBUT0RPICovCj4+ICAgfQo+PiAgIAo+PiAtc3Rh dGljIHZvaWQgdWRsX2RtYWJ1Zl9rdW5tYXBfYXRvbWljKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVm LAo+PiAtCQkJCSAgICAgdW5zaWduZWQgbG9uZyBwYWdlX251bSwKPj4gLQkJCQkgICAgIHZvaWQg KmFkZHIpCj4+IC17Cj4+IC0JLyogVE9ETyAqLwo+PiAtfQo+PiAtCj4+ICAgc3RhdGljIGludCB1 ZGxfZG1hYnVmX21tYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYsCj4+ICAgCQkJICAgc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bWEpCj4+ICAgewo+PiBAQCAtMTkxLDkgKzE3Niw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdWRsX2RtYWJ1Zl9vcHMgPSB7Cj4+ICAgCS5tYXBf ZG1hX2J1ZgkJPSB1ZGxfbWFwX2RtYV9idWYsCj4+ICAgCS51bm1hcF9kbWFfYnVmCQk9IHVkbF91 bm1hcF9kbWFfYnVmLAo+PiAgIAkubWFwCQkJPSB1ZGxfZG1hYnVmX2ttYXAsCj4+IC0JLm1hcF9h dG9taWMJCT0gdWRsX2RtYWJ1Zl9rbWFwX2F0b21pYywKPj4gICAJLnVubWFwCQkJPSB1ZGxfZG1h YnVmX2t1bm1hcCwKPj4gLQkudW5tYXBfYXRvbWljCQk9IHVkbF9kbWFidWZfa3VubWFwX2F0b21p YywKPj4gICAJLm1tYXAJCQk9IHVkbF9kbWFidWZfbW1hcCwKPj4gICAJLnJlbGVhc2UJCT0gZHJt X2dlbV9kbWFidWZfcmVsZWFzZSwKPj4gICB9Owo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3ByaW1lLmMKPj4gaW5kZXggZmJmZmIzN2NjZjQyLi4zNzNiYzZkYTJmODQgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ByaW1lLmMKPj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcHJpbWUuYwo+PiBAQCAtNzEsMTcgKzcxLDYgQEAgc3Rh dGljIHZvaWQgdm13X3ByaW1lX2RtYWJ1Zl92dW5tYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYs IHZvaWQgKnZhZGRyKQo+PiAgIHsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMgdm9pZCAqdm13X3By aW1lX2RtYWJ1Zl9rbWFwX2F0b21pYyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPj4gLQkJdW5z aWduZWQgbG9uZyBwYWdlX251bSkKPj4gLXsKPj4gLQlyZXR1cm4gTlVMTDsKPj4gLX0KPj4gLQo+ PiAtc3RhdGljIHZvaWQgdm13X3ByaW1lX2RtYWJ1Zl9rdW5tYXBfYXRvbWljKHN0cnVjdCBkbWFf YnVmICpkbWFfYnVmLAo+PiAtCQl1bnNpZ25lZCBsb25nIHBhZ2VfbnVtLCB2b2lkICphZGRyKQo+ PiAtewo+PiAtCj4+IC19Cj4+ICAgc3RhdGljIHZvaWQgKnZtd19wcmltZV9kbWFidWZfa21hcChz dHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPj4gICAJCXVuc2lnbmVkIGxvbmcgcGFnZV9udW0pCj4+ ICAgewo+PiBAQCAtMTA4LDkgKzk3LDcgQEAgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzIHZtd19w cmltZV9kbWFidWZfb3BzID0gIHsKPj4gICAJLnVubWFwX2RtYV9idWYgPSB2bXdfcHJpbWVfdW5t YXBfZG1hX2J1ZiwKPj4gICAJLnJlbGVhc2UgPSBOVUxMLAo+PiAgIAkubWFwID0gdm13X3ByaW1l X2RtYWJ1Zl9rbWFwLAo+PiAtCS5tYXBfYXRvbWljID0gdm13X3ByaW1lX2RtYWJ1Zl9rbWFwX2F0 b21pYywKPj4gICAJLnVubWFwID0gdm13X3ByaW1lX2RtYWJ1Zl9rdW5tYXAsCj4+IC0JLnVubWFw X2F0b21pYyA9IHZtd19wcmltZV9kbWFidWZfa3VubWFwX2F0b21pYywKPj4gICAJLm1tYXAgPSB2 bXdfcHJpbWVfZG1hYnVmX21tYXAsCj4+ICAgCS52bWFwID0gdm13X3ByaW1lX2RtYWJ1Zl92bWFw LAo+PiAgIAkudnVubWFwID0gdm13X3ByaW1lX2RtYWJ1Zl92dW5tYXAsCj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWRtYS1jb250aWcuYyBi L2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItZG1hLWNvbnRpZy5jCj4+ IGluZGV4IDEyZDAwNzJjNTJjMi4uYWZmMGFiN2JmODNkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWRtYS1jb250aWcuYwo+PiArKysgYi9k cml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWRtYS1jb250aWcuYwo+PiBA QCAtMzU4LDcgKzM1OCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdmIyX2Rj X2RtYWJ1Zl9vcHMgPSB7Cj4+ICAgCS5tYXBfZG1hX2J1ZiA9IHZiMl9kY19kbWFidWZfb3BzX21h cCwKPj4gICAJLnVubWFwX2RtYV9idWYgPSB2YjJfZGNfZG1hYnVmX29wc191bm1hcCwKPj4gICAJ Lm1hcCA9IHZiMl9kY19kbWFidWZfb3BzX2ttYXAsCj4+IC0JLm1hcF9hdG9taWMgPSB2YjJfZGNf ZG1hYnVmX29wc19rbWFwLAo+PiAgIAkudm1hcCA9IHZiMl9kY19kbWFidWZfb3BzX3ZtYXAsCj4+ ICAgCS5tbWFwID0gdmIyX2RjX2RtYWJ1Zl9vcHNfbW1hcCwKPj4gICAJLnJlbGVhc2UgPSB2YjJf ZGNfZG1hYnVmX29wc19yZWxlYXNlLAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9jb21t b24vdmlkZW9idWYyL3ZpZGVvYnVmMi1kbWEtc2cuYyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3Zp ZGVvYnVmMi92aWRlb2J1ZjItZG1hLXNnLmMKPj4gaW5kZXggY2Y5NDc2NWU1OTNmLi4wMTVlNzM3 MDk1Y2QgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRl b2J1ZjItZG1hLXNnLmMKPj4gKysrIGIvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYyL3Zp ZGVvYnVmMi1kbWEtc2cuYwo+PiBAQCAtNTA3LDcgKzUwNyw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZG1hX2J1Zl9vcHMgdmIyX2RtYV9zZ19kbWFidWZfb3BzID0gewo+PiAgIAkubWFwX2RtYV9i dWYgPSB2YjJfZG1hX3NnX2RtYWJ1Zl9vcHNfbWFwLAo+PiAgIAkudW5tYXBfZG1hX2J1ZiA9IHZi Ml9kbWFfc2dfZG1hYnVmX29wc191bm1hcCwKPj4gICAJLm1hcCA9IHZiMl9kbWFfc2dfZG1hYnVm X29wc19rbWFwLAo+PiAtCS5tYXBfYXRvbWljID0gdmIyX2RtYV9zZ19kbWFidWZfb3BzX2ttYXAs Cj4+ICAgCS52bWFwID0gdmIyX2RtYV9zZ19kbWFidWZfb3BzX3ZtYXAsCj4+ICAgCS5tbWFwID0g dmIyX2RtYV9zZ19kbWFidWZfb3BzX21tYXAsCj4+ICAgCS5yZWxlYXNlID0gdmIyX2RtYV9zZ19k bWFidWZfb3BzX3JlbGVhc2UsCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2NvbW1vbi92 aWRlb2J1ZjIvdmlkZW9idWYyLXZtYWxsb2MuYyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVv YnVmMi92aWRlb2J1ZjItdm1hbGxvYy5jCj4+IGluZGV4IDI5OGZmYjllY2RhZS4uNDY3YTQwMDUx NjRiIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9i dWYyLXZtYWxsb2MuYwo+PiArKysgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlk ZW9idWYyLXZtYWxsb2MuYwo+PiBAQCAtMzQ2LDcgKzM0Niw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZG1hX2J1Zl9vcHMgdmIyX3ZtYWxsb2NfZG1hYnVmX29wcyA9IHsKPj4gICAJLm1hcF9kbWFf YnVmID0gdmIyX3ZtYWxsb2NfZG1hYnVmX29wc19tYXAsCj4+ICAgCS51bm1hcF9kbWFfYnVmID0g dmIyX3ZtYWxsb2NfZG1hYnVmX29wc191bm1hcCwKPj4gICAJLm1hcCA9IHZiMl92bWFsbG9jX2Rt YWJ1Zl9vcHNfa21hcCwKPj4gLQkubWFwX2F0b21pYyA9IHZiMl92bWFsbG9jX2RtYWJ1Zl9vcHNf a21hcCwKPj4gICAJLnZtYXAgPSB2YjJfdm1hbGxvY19kbWFidWZfb3BzX3ZtYXAsCj4+ICAgCS5t bWFwID0gdmIyX3ZtYWxsb2NfZG1hYnVmX29wc19tbWFwLAo+PiAgIAkucmVsZWFzZSA9IHZiMl92 bWFsbG9jX2RtYWJ1Zl9vcHNfcmVsZWFzZSwKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2lu Zy9hbmRyb2lkL2lvbi9pb24uYyBiL2RyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL2lvbi9pb24uYwo+ PiBpbmRleCA1N2UwZDgwMzViMmUuLmE0NjIxOWZmNWUxNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9zdGFnaW5nL2FuZHJvaWQvaW9uL2lvbi5jCj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9hbmRy b2lkL2lvbi9pb24uYwo+PiBAQCAtMzc0LDggKzM3NCw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZG1hX2J1Zl9vcHMgZG1hX2J1Zl9vcHMgPSB7Cj4+ICAgCS5kZXRhY2ggPSBpb25fZG1hX2J1Zl9k ZXRhdGNoLAo+PiAgIAkuYmVnaW5fY3B1X2FjY2VzcyA9IGlvbl9kbWFfYnVmX2JlZ2luX2NwdV9h Y2Nlc3MsCj4+ICAgCS5lbmRfY3B1X2FjY2VzcyA9IGlvbl9kbWFfYnVmX2VuZF9jcHVfYWNjZXNz LAo+PiAtCS5tYXBfYXRvbWljID0gaW9uX2RtYV9idWZfa21hcCwKPj4gLQkudW5tYXBfYXRvbWlj ID0gaW9uX2RtYV9idWZfa3VubWFwLAo+PiAgIAkubWFwID0gaW9uX2RtYV9idWZfa21hcCwKPj4g ICAJLnVubWFwID0gaW9uX2RtYV9idWZfa3VubWFwLAo+PiAgIH07Cj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL3RlZS90ZWVfc2htLmMgYi9kcml2ZXJzL3RlZS90ZWVfc2htLmMKPj4gaW5kZXggNTU2 OTYwYTFiYWIzLi5kZjRhMTU1M2I3OGIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvdGVlL3RlZV9z aG0uYwo+PiArKysgYi9kcml2ZXJzL3RlZS90ZWVfc2htLmMKPj4gQEAgLTgwLDExICs4MCw2IEBA IHN0YXRpYyB2b2lkIHRlZV9zaG1fb3BfcmVsZWFzZShzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmKQo+ PiAgIAl0ZWVfc2htX3JlbGVhc2Uoc2htKTsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMgdm9pZCAq dGVlX3NobV9vcF9tYXBfYXRvbWljKHN0cnVjdCBkbWFfYnVmICpkbWFidWYsIHVuc2lnbmVkIGxv bmcgcGdudW0pCj4+IC17Cj4+IC0JcmV0dXJuIE5VTEw7Cj4+IC19Cj4+IC0KPj4gICBzdGF0aWMg dm9pZCAqdGVlX3NobV9vcF9tYXAoc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwgdW5zaWduZWQgbG9u ZyBwZ251bSkKPj4gICB7Cj4+ICAgCXJldHVybiBOVUxMOwo+PiBAQCAtMTA3LDcgKzEwMiw2IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgdGVlX3NobV9kbWFfYnVmX29wcyA9IHsK Pj4gICAJLm1hcF9kbWFfYnVmID0gdGVlX3NobV9vcF9tYXBfZG1hX2J1ZiwKPj4gICAJLnVubWFw X2RtYV9idWYgPSB0ZWVfc2htX29wX3VubWFwX2RtYV9idWYsCj4+ICAgCS5yZWxlYXNlID0gdGVl X3NobV9vcF9yZWxlYXNlLAo+PiAtCS5tYXBfYXRvbWljID0gdGVlX3NobV9vcF9tYXBfYXRvbWlj LAo+PiAgIAkubWFwID0gdGVlX3NobV9vcF9tYXAsCj4+ICAgCS5tbWFwID0gdGVlX3NobV9vcF9t bWFwLAo+PiAgIH07Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fcHJpbWUuaCBiL2lu Y2x1ZGUvZHJtL2RybV9wcmltZS5oCj4+IGluZGV4IGVmMzM4MTUxY2VhOC4uZDcxNmQ2NTNiMDk2 IDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcHJpbWUuaAo+PiArKysgYi9pbmNsdWRl L2RybS9kcm1fcHJpbWUuaAo+PiBAQCAtOTMsMTAgKzkzLDYgQEAgdm9pZCBkcm1fZ2VtX3VubWFw X2RtYV9idWYoc3RydWN0IGRtYV9idWZfYXR0YWNobWVudCAqYXR0YWNoLAo+PiAgIAkJCSAgIGVu dW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7Cj4+ICAgdm9pZCAqZHJtX2dlbV9kbWFidWZfdm1h cChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zik7Cj4+ICAgdm9pZCBkcm1fZ2VtX2RtYWJ1Zl92dW5t YXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYsIHZvaWQgKnZhZGRyKTsKPj4gLXZvaWQgKmRybV9n ZW1fZG1hYnVmX2ttYXBfYXRvbWljKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLAo+PiAtCQkJCSB1 bnNpZ25lZCBsb25nIHBhZ2VfbnVtKTsKPj4gLXZvaWQgZHJtX2dlbV9kbWFidWZfa3VubWFwX2F0 b21pYyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKPj4gLQkJCQkgIHVuc2lnbmVkIGxvbmcgcGFn ZV9udW0sIHZvaWQgKmFkZHIpOwo+PiAgIHZvaWQgKmRybV9nZW1fZG1hYnVmX2ttYXAoc3RydWN0 IGRtYV9idWYgKmRtYV9idWYsIHVuc2lnbmVkIGxvbmcgcGFnZV9udW0pOwo+PiAgIHZvaWQgZHJt X2dlbV9kbWFidWZfa3VubWFwKHN0cnVjdCBkbWFfYnVmICpkbWFfYnVmLCB1bnNpZ25lZCBsb25n IHBhZ2VfbnVtLAo+PiAgIAkJCSAgIHZvaWQgKmFkZHIpOwo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9kbWEtYnVmLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYuaAo+PiBpbmRleCAzNDZj YWY3NzkzN2YuLmQxN2NhZGQ3NjgwMiAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9saW51eC9kbWEt YnVmLmgKPj4gKysrIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPj4gQEAgLTIwNSw4ICsyMDUs NiBAQCBzdHJ1Y3QgZG1hX2J1Zl9vcHMgewo+PiAgIAkgKiB0byBiZSByZXN0YXJ0ZWQuCj4+ICAg CSAqLwo+PiAgIAlpbnQgKCplbmRfY3B1X2FjY2Vzcykoc3RydWN0IGRtYV9idWYgKiwgZW51bSBk bWFfZGF0YV9kaXJlY3Rpb24pOwo+PiAtCXZvaWQgKigqbWFwX2F0b21pYykoc3RydWN0IGRtYV9i dWYgKiwgdW5zaWduZWQgbG9uZyk7Cj4+IC0Jdm9pZCAoKnVubWFwX2F0b21pYykoc3RydWN0IGRt YV9idWYgKiwgdW5zaWduZWQgbG9uZywgdm9pZCAqKTsKPj4gICAJdm9pZCAqKCptYXApKHN0cnVj dCBkbWFfYnVmICosIHVuc2lnbmVkIGxvbmcpOwo+PiAgIAl2b2lkICgqdW5tYXApKHN0cnVjdCBk bWFfYnVmICosIHVuc2lnbmVkIGxvbmcsIHZvaWQgKik7Cj4+ICAgCj4+IEBAIC0zOTQsOCArMzky LDYgQEAgaW50IGRtYV9idWZfYmVnaW5fY3B1X2FjY2VzcyhzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1 ZiwKPj4gICAJCQkgICAgIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcik7Cj4+ICAgaW50IGRt YV9idWZfZW5kX2NwdV9hY2Nlc3Moc3RydWN0IGRtYV9idWYgKmRtYV9idWYsCj4+ICAgCQkJICAg ZW51bSBkbWFfZGF0YV9kaXJlY3Rpb24gZGlyKTsKPj4gLXZvaWQgKmRtYV9idWZfa21hcF9hdG9t aWMoc3RydWN0IGRtYV9idWYgKiwgdW5zaWduZWQgbG9uZyk7Cj4+IC12b2lkIGRtYV9idWZfa3Vu bWFwX2F0b21pYyhzdHJ1Y3QgZG1hX2J1ZiAqLCB1bnNpZ25lZCBsb25nLCB2b2lkICopOwo+PiAg IHZvaWQgKmRtYV9idWZfa21hcChzdHJ1Y3QgZG1hX2J1ZiAqLCB1bnNpZ25lZCBsb25nKTsKPj4g ICB2b2lkIGRtYV9idWZfa3VubWFwKHN0cnVjdCBkbWFfYnVmICosIHVuc2lnbmVkIGxvbmcsIHZv aWQgKik7Cj4+ICAgCj4+IC0tIAo+PiAyLjE0LjEKPj4KPj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+PiBk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwK