From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9AB4F6E123 for ; Fri, 16 Nov 2018 17:05:01 +0000 (UTC) Date: Fri, 16 Nov 2018 19:04:57 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Message-ID: <20181116170457.GE9144@intel.com> References: <20181116154149.18155-1-maarten.lankhorst@linux.intel.com> <20181116154149.18155-2-maarten.lankhorst@linux.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20181116154149.18155-2-maarten.lankhorst@linux.intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 2/3] lib/rendercopy: Implement support for 8/16 bpp List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Maarten Lankhorst Cc: igt-dev@lists.freedesktop.org List-ID: T24gRnJpLCBOb3YgMTYsIDIwMTggYXQgMDQ6NDE6NDhQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVG8gaGFuZGxlIGRyYXdpbmcgMTYgYnBwIGZvcm1hdHMgY29ycmVjdGx5IHdp dGggb2RkIHgvdywgd2UgbmVlZCB0bwo+IHVzZSB0aGUgY29ycmVjdCBicHAgdG8gcmVuZGVyY29w eS4gTm93IHRoYXQgZXZlcnl0aGluZyBzZXRzIGJwcCBpbgo+IGlndF9idWYsIGZpeCB0aGUgcmVu ZGVyY29weSBzdXBwb3J0IHRvIHVzZSBpdCBhbmQgc2V0IHRoZSBjb3JyZWN0Cj4gZm9ybWF0Lgo+ IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGxpYi9yZW5kZXJjb3B5X2dlbjQuYyB8IDE1ICsrKysr KysrKy0tLS0tLQo+ICBsaWIvcmVuZGVyY29weV9nZW42LmMgfCAxNiArKysrKysrKysrLS0tLS0t Cj4gIGxpYi9yZW5kZXJjb3B5X2dlbjcuYyB8IDE2ICsrKysrKysrKystLS0tLS0KPiAgbGliL3Jl bmRlcmNvcHlfZ2VuOC5jIHwgMTggKysrKysrKysrLS0tLS0tLS0tCj4gIGxpYi9yZW5kZXJjb3B5 X2dlbjkuYyB8IDE1ICsrKysrKysrKy0tLS0tLQo+ICBsaWIvcmVuZGVyY29weV9pODMwLmMgfCAy MCArKysrKysrKysrKysrKysrKystLQo+ICBsaWIvcmVuZGVyY29weV9pOTE1LmMgfCAyMyArKysr KysrKysrKysrKysrKysrLS0tLQo+ICA3IGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyks IDM5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9saWIvcmVuZGVyY29weV9nZW40LmMg Yi9saWIvcmVuZGVyY29weV9nZW40LmMKPiBpbmRleCAwNDE2YjhkNmQ1MDYuLmY4ODE2ZWRjNTQ1 NSAxMDA2NDQKPiAtLS0gYS9saWIvcmVuZGVyY29weV9nZW40LmMKPiArKysgYi9saWIvcmVuZGVy Y29weV9nZW40LmMKPiBAQCAtMTM2LDcgKzEzNiw3IEBAIGdlbjRfcmVuZGVyX2ZsdXNoKHN0cnVj dCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCj4gIHN0YXRpYyB1aW50MzJfdAo+ICBnZW40X2Jp bmRfYnVmKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCj4gIAkgICAgICBjb25zdCBz dHJ1Y3QgaWd0X2J1ZiAqYnVmLAo+IC0JICAgICAgdWludDMyX3QgZm9ybWF0LCBpbnQgaXNfZHN0 KQo+ICsJICAgICAgaW50IGlzX2RzdCkKPiAgewo+ICAJc3RydWN0IGdlbjRfc3VyZmFjZV9zdGF0 ZSAqc3M7Cj4gIAl1aW50MzJfdCB3cml0ZV9kb21haW4sIHJlYWRfZG9tYWluOwo+IEBAIC0xNTIs NyArMTUyLDEyIEBAIGdlbjRfYmluZF9idWYoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRj aCwKPiAgCXNzID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9hbGxvYyhiYXRjaCwgc2l6ZW9m KCpzcyksIDMyKTsKPiAgCj4gIAlzcy0+c3MwLnN1cmZhY2VfdHlwZSA9IFNVUkZBQ0VfMkQ7Cj4g LQlzcy0+c3MwLnN1cmZhY2VfZm9ybWF0ID0gZm9ybWF0Owo+ICsJc3dpdGNoIChidWYtPmJwcCkg ewo+ICsJCWNhc2UgODogc3MtPnNzMC5zdXJmYWNlX2Zvcm1hdCA9IFNVUkZBQ0VGT1JNQVRfUjhf VU5PUk07IGJyZWFrOwo+ICsJCWNhc2UgMTY6IHNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBTVVJG QUNFRk9STUFUX1I4RzhfVU5PUk07IGJyZWFrOwo+ICsJCWNhc2UgMzI6IHNzLT5zczAuc3VyZmFj ZV9mb3JtYXQgPSBTVVJGQUNFRk9STUFUX0I4RzhSOEE4X1VOT1JNOyBicmVhazsKPiArCQlkZWZh dWx0OiBpZ3RfYXNzZXJ0KDApOwoKSG1tLiBNYXliZSB3ZSBhY3R1YWxseSB3YW50IHRvIHNwZWNp ZnkgYSBmb3JtYXQgcmF0aGVyIHRoYW4gYnBwPyBUaGF0CndheSB3ZSBjb3VsZCBjb252ZXJ0IGJl dHdlZW4gZGlmZmVyZW50IHNpemVkIHBpeGVsIGZvcm1hdHMsIGFuZCAKaW50ZXJwb2xhdGlvbiB3 b3VsZCBhbHNvIGJlIHBvc3NpYmxlIHNvIHdlIGNvdWxkIGV2ZW4gc2NhbGUgdGhlIGltYWdlLgpC dXQgYXMgbm90IGFsbCBmb3JtYXRzIGNvdWxkIGJlIHN1cHBvcnRlZCBzbyBJIGd1ZXNzIGEgMTox IGNvcHkgaXMKYSBwcmV0dHkgZ29vZCBzdGFydGluZyBwb2ludCBhdCBsZWFzdC4gSXQncyB3aGF0 IHdlIGRvIHdpdGggMzJicHAKY3VycmVudGx5IGFueXdheS4KCkxvb2tzIGxpa2UgYWxsIG9mIHRo ZXNlIGZvcm1hdHMgYXJlIHN1cHBvcnRlZCBieSB0aGUgc2FtcGxlciBhbmQKcmVuZGVyIHRhcmdl dCBvbiBhbGwgZ2Vucy4gU28gdGhhdCBtYWtlcyB0aGlzIG5pY2UgYW5kIHNpbXBsZS4KCj4gKwl9 Cj4gIAo+ICAJc3MtPnNzMC5kYXRhX3JldHVybl9mb3JtYXQgPSBTVVJGQUNFUkVUVVJORk9STUFU X0ZMT0FUMzI7Cj4gIAlzcy0+c3MwLmNvbG9yX2JsZW5kID0gMTsKPiBAQCAtMTgyLDEwICsxODcs OCBAQCBnZW40X2JpbmRfc3VyZmFjZXMoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwK PiAgCj4gIAliaW5kaW5nX3RhYmxlID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9hbGxvYyhi YXRjaCwgMzIsIDMyKTsKPiAgCj4gLQliaW5kaW5nX3RhYmxlWzBdID0KPiAtCQlnZW40X2JpbmRf YnVmKGJhdGNoLCBkc3QsIFNVUkZBQ0VGT1JNQVRfQjhHOFI4QThfVU5PUk0sIDEpOwo+IC0JYmlu ZGluZ190YWJsZVsxXSA9Cj4gLQkJZ2VuNF9iaW5kX2J1ZihiYXRjaCwgc3JjLCBTVVJGQUNFRk9S TUFUX0I4RzhSOEE4X1VOT1JNLCAwKTsKPiArCWJpbmRpbmdfdGFibGVbMF0gPSBnZW40X2JpbmRf YnVmKGJhdGNoLCBkc3QsIDEpOwo+ICsJYmluZGluZ190YWJsZVsxXSA9IGdlbjRfYmluZF9idWYo YmF0Y2gsIHNyYywgMCk7Cj4gIAo+ICAJcmV0dXJuIGludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFf b2Zmc2V0KGJhdGNoLCBiaW5kaW5nX3RhYmxlKTsKPiAgfQo+IGRpZmYgLS1naXQgYS9saWIvcmVu ZGVyY29weV9nZW42LmMgYi9saWIvcmVuZGVyY29weV9nZW42LmMKPiBpbmRleCA4NzkxNjkyN2M3 ZDcuLjI5NzA0Mjg2OGQxYyAxMDA2NDQKPiAtLS0gYS9saWIvcmVuZGVyY29weV9nZW42LmMKPiAr KysgYi9saWIvcmVuZGVyY29weV9nZW42LmMKPiBAQCAtNzMsNyArNzMsNyBAQCBnZW42X3JlbmRl cl9mbHVzaChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAo+ICAKPiAgc3RhdGljIHVp bnQzMl90Cj4gIGdlbjZfYmluZF9idWYoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwg Y29uc3Qgc3RydWN0IGlndF9idWYgKmJ1ZiwKPiAtCSAgICAgIHVpbnQzMl90IGZvcm1hdCwgaW50 IGlzX2RzdCkKPiArCSAgICAgIGludCBpc19kc3QpCj4gIHsKPiAgCXN0cnVjdCBnZW42X3N1cmZh Y2Vfc3RhdGUgKnNzOwo+ICAJdWludDMyX3Qgd3JpdGVfZG9tYWluLCByZWFkX2RvbWFpbjsKPiBA QCAtODgsNyArODgsMTMgQEAgZ2VuNl9iaW5kX2J1ZihzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIg KmJhdGNoLCBjb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLAo+ICAKPiAgCXNzID0gaW50ZWxfYmF0 Y2hidWZmZXJfc3ViZGF0YV9hbGxvYyhiYXRjaCwgc2l6ZW9mKCpzcyksIDMyKTsKPiAgCXNzLT5z czAuc3VyZmFjZV90eXBlID0gU1VSRkFDRV8yRDsKPiAtCXNzLT5zczAuc3VyZmFjZV9mb3JtYXQg PSBmb3JtYXQ7Cj4gKwo+ICsJc3dpdGNoIChidWYtPmJwcCkgewo+ICsJCWNhc2UgODogc3MtPnNz MC5zdXJmYWNlX2Zvcm1hdCA9IFNVUkZBQ0VGT1JNQVRfUjhfVU5PUk07IGJyZWFrOwo+ICsJCWNh c2UgMTY6IHNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBTVVJGQUNFRk9STUFUX1I4RzhfVU5PUk07 IGJyZWFrOwo+ICsJCWNhc2UgMzI6IHNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBTVVJGQUNFRk9S TUFUX0I4RzhSOEE4X1VOT1JNOyBicmVhazsKPiArCQlkZWZhdWx0OiBpZ3RfYXNzZXJ0KDApOwo+ ICsJfQo+ICAKPiAgCXNzLT5zczAuZGF0YV9yZXR1cm5fZm9ybWF0ID0gU1VSRkFDRVJFVFVSTkZP Uk1BVF9GTE9BVDMyOwo+ICAJc3MtPnNzMC5jb2xvcl9ibGVuZCA9IDE7Cj4gQEAgLTExOCwxMCAr MTI0LDggQEAgZ2VuNl9iaW5kX3N1cmZhY2VzKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0 Y2gsCj4gIAo+ICAJYmluZGluZ190YWJsZSA9IGludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFfYWxs b2MoYmF0Y2gsIDMyLCAzMik7Cj4gIAo+IC0JYmluZGluZ190YWJsZVswXSA9Cj4gLQkJZ2VuNl9i aW5kX2J1ZihiYXRjaCwgZHN0LCBTVVJGQUNFRk9STUFUX0I4RzhSOEE4X1VOT1JNLCAxKTsKPiAt CWJpbmRpbmdfdGFibGVbMV0gPQo+IC0JCWdlbjZfYmluZF9idWYoYmF0Y2gsIHNyYywgU1VSRkFD RUZPUk1BVF9COEc4UjhBOF9VTk9STSwgMCk7Cj4gKwliaW5kaW5nX3RhYmxlWzBdID0gZ2VuNl9i aW5kX2J1ZihiYXRjaCwgZHN0LCAxKTsKPiArCWJpbmRpbmdfdGFibGVbMV0gPSBnZW42X2JpbmRf YnVmKGJhdGNoLCBzcmMsIDApOwo+ICAKPiAgCXJldHVybiBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJk YXRhX29mZnNldChiYXRjaCwgYmluZGluZ190YWJsZSk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvbGli L3JlbmRlcmNvcHlfZ2VuNy5jIGIvbGliL3JlbmRlcmNvcHlfZ2VuNy5jCj4gaW5kZXggOWFkNjE5 ZDg2MjBmLi43OTk5OTg1ODhiNTkgMTAwNjQ0Cj4gLS0tIGEvbGliL3JlbmRlcmNvcHlfZ2VuNy5j Cj4gKysrIGIvbGliL3JlbmRlcmNvcHlfZ2VuNy5jCj4gQEAgLTU5LDEzICs1OSwxOSBAQCBnZW43 X3RpbGluZ19iaXRzKHVpbnQzMl90IHRpbGluZykKPiAgc3RhdGljIHVpbnQzMl90Cj4gIGdlbjdf YmluZF9idWYoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKPiAgCSAgICAgIGNvbnN0 IHN0cnVjdCBpZ3RfYnVmICpidWYsCj4gLQkgICAgICB1aW50MzJfdCBmb3JtYXQsCj4gIAkgICAg ICBpbnQgaXNfZHN0KQo+ICB7Cj4gLQl1aW50MzJfdCAqc3M7Cj4gKwl1aW50MzJfdCBmb3JtYXQs ICpzczsKPiAgCXVpbnQzMl90IHdyaXRlX2RvbWFpbiwgcmVhZF9kb21haW47Cj4gIAlpbnQgcmV0 Owo+ICAKPiArCXN3aXRjaCAoYnVmLT5icHApIHsKPiArCQljYXNlIDg6IGZvcm1hdCA9IFNVUkZB Q0VGT1JNQVRfUjhfVU5PUk07IGJyZWFrOwo+ICsJCWNhc2UgMTY6IGZvcm1hdCA9IFNVUkZBQ0VG T1JNQVRfUjhHOF9VTk9STTsgYnJlYWs7Cj4gKwkJY2FzZSAzMjogZm9ybWF0ID0gU1VSRkFDRUZP Uk1BVF9COEc4UjhBOF9VTk9STTsgYnJlYWs7Cj4gKwkJZGVmYXVsdDogaWd0X2Fzc2VydCgwKTsK PiArCX0KPiArCj4gIAlpZiAoaXNfZHN0KSB7Cj4gIAkJd3JpdGVfZG9tYWluID0gcmVhZF9kb21h aW4gPSBJOTE1X0dFTV9ET01BSU5fUkVOREVSOwo+ICAJfSBlbHNlIHsKPiBAQCAtMTg2LDEwICsx OTIsOCBAQCBnZW43X2JpbmRfc3VyZmFjZXMoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRj aCwKPiAgCj4gIAliaW5kaW5nX3RhYmxlID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9hbGxv YyhiYXRjaCwgOCwgMzIpOwo+ICAKPiAtCWJpbmRpbmdfdGFibGVbMF0gPQo+IC0JCWdlbjdfYmlu ZF9idWYoYmF0Y2gsIGRzdCwgU1VSRkFDRUZPUk1BVF9COEc4UjhBOF9VTk9STSwgMSk7Cj4gLQli aW5kaW5nX3RhYmxlWzFdID0KPiAtCQlnZW43X2JpbmRfYnVmKGJhdGNoLCBzcmMsIFNVUkZBQ0VG T1JNQVRfQjhHOFI4QThfVU5PUk0sIDApOwo+ICsJYmluZGluZ190YWJsZVswXSA9IGdlbjdfYmlu ZF9idWYoYmF0Y2gsIGRzdCwgMSk7Cj4gKwliaW5kaW5nX3RhYmxlWzFdID0gZ2VuN19iaW5kX2J1 ZihiYXRjaCwgc3JjLCAwKTsKPiAgCj4gIAlyZXR1cm4gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0 YV9vZmZzZXQoYmF0Y2gsIGJpbmRpbmdfdGFibGUpOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2xpYi9y ZW5kZXJjb3B5X2dlbjguYyBiL2xpYi9yZW5kZXJjb3B5X2dlbjguYwo+IGluZGV4IGJlYjdhOWIz NDk4Ny4uOGVjODExNjMzZjA5IDEwMDY0NAo+IC0tLSBhL2xpYi9yZW5kZXJjb3B5X2dlbjguYwo+ ICsrKyBiL2xpYi9yZW5kZXJjb3B5X2dlbjguYwo+IEBAIC0xNDQsOCArMTQ0LDcgQEAgZ2VuNl9y ZW5kZXJfZmx1c2goc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKPiAgc3RhdGljIHVp bnQzMl90Cj4gIGdlbjhfYmluZF9idWYoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwK PiAgCSAgICAgIHN0cnVjdCBhbm5vdGF0aW9uc19jb250ZXh0ICphdWIsCj4gLQkgICAgICBjb25z dCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLAo+IC0JICAgICAgdWludDMyX3QgZm9ybWF0LCBpbnQgaXNf ZHN0KQo+ICsJICAgICAgY29uc3Qgc3RydWN0IGlndF9idWYgKmJ1ZiwgaW50IGlzX2RzdCkKPiAg ewo+ICAJc3RydWN0IGdlbjhfc3VyZmFjZV9zdGF0ZSAqc3M7Cj4gIAl1aW50MzJfdCB3cml0ZV9k b21haW4sIHJlYWRfZG9tYWluLCBvZmZzZXQ7Cj4gQEAgLTE2Myw3ICsxNjIsMTIgQEAgZ2VuOF9i aW5kX2J1ZihzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAo+ICAJYW5ub3RhdGlvbl9h ZGRfc3RhdGUoYXViLCBBVUJfVFJBQ0VfU1VSRkFDRV9TVEFURSwgb2Zmc2V0LCBzaXplb2YoKnNz KSk7Cj4gIAo+ICAJc3MtPnNzMC5zdXJmYWNlX3R5cGUgPSBTVVJGQUNFXzJEOwo+IC0Jc3MtPnNz MC5zdXJmYWNlX2Zvcm1hdCA9IGZvcm1hdDsKPiArCXN3aXRjaCAoYnVmLT5icHApIHsKPiArCQlj YXNlIDg6IHNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBTVVJGQUNFRk9STUFUX1I4X1VOT1JNOyBi cmVhazsKPiArCQljYXNlIDE2OiBzcy0+c3MwLnN1cmZhY2VfZm9ybWF0ID0gU1VSRkFDRUZPUk1B VF9SOEc4X1VOT1JNOyBicmVhazsKPiArCQljYXNlIDMyOiBzcy0+c3MwLnN1cmZhY2VfZm9ybWF0 ID0gU1VSRkFDRUZPUk1BVF9COEc4UjhBOF9VTk9STTsgYnJlYWs7Cj4gKwkJZGVmYXVsdDogaWd0 X2Fzc2VydCgwKTsKPiArCX0KPiAgCXNzLT5zczAucmVuZGVyX2NhY2hlX3JlYWRfd3JpdGUgPSAx Owo+ICAJc3MtPnNzMC52ZXJ0aWNhbF9hbGlnbm1lbnQgPSAxOyAvKiBhbGlnbiA0ICovCj4gIAlz cy0+c3MwLmhvcml6b250YWxfYWxpZ25tZW50ID0gMTsgLyogYWxpZ24gNCAqLwo+IEBAIC0yMDUs MTIgKzIwOSw4IEBAIGdlbjhfYmluZF9zdXJmYWNlcyhzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIg KmJhdGNoLAo+ICAJb2Zmc2V0ID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9vZmZzZXQoYmF0 Y2gsIGJpbmRpbmdfdGFibGUpOwo+ICAJYW5ub3RhdGlvbl9hZGRfc3RhdGUoYXViLCBBVUJfVFJB Q0VfQklORElOR19UQUJMRSwgb2Zmc2V0LCA4KTsKPiAgCj4gLQliaW5kaW5nX3RhYmxlWzBdID0K PiAtCQlnZW44X2JpbmRfYnVmKGJhdGNoLCBhdWIsCj4gLQkJCSAgICAgIGRzdCwgU1VSRkFDRUZP Uk1BVF9COEc4UjhBOF9VTk9STSwgMSk7Cj4gLQliaW5kaW5nX3RhYmxlWzFdID0KPiAtCQlnZW44 X2JpbmRfYnVmKGJhdGNoLCBhdWIsCj4gLQkJCSAgICAgIHNyYywgU1VSRkFDRUZPUk1BVF9COEc4 UjhBOF9VTk9STSwgMCk7Cj4gKwliaW5kaW5nX3RhYmxlWzBdID0gZ2VuOF9iaW5kX2J1ZihiYXRj aCwgYXViLCBkc3QsIDEpOwo+ICsJYmluZGluZ190YWJsZVsxXSA9IGdlbjhfYmluZF9idWYoYmF0 Y2gsIGF1Yiwgc3JjLCAwKTsKPiAgCj4gIAlyZXR1cm4gb2Zmc2V0Owo+ICB9Cj4gZGlmZiAtLWdp dCBhL2xpYi9yZW5kZXJjb3B5X2dlbjkuYyBiL2xpYi9yZW5kZXJjb3B5X2dlbjkuYwo+IGluZGV4 IGFkYmQ4MTI0ZTA4Mi4uNmQ3MTljZTNjY2M2IDEwMDY0NAo+IC0tLSBhL2xpYi9yZW5kZXJjb3B5 X2dlbjkuYwo+ICsrKyBiL2xpYi9yZW5kZXJjb3B5X2dlbjkuYwo+IEBAIC0xNzUsNyArMTc1LDcg QEAgZ2VuNl9yZW5kZXJfZmx1c2goc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKPiAg LyogTW9zdGx5IGNvcHkrcGFzdGUgZnJvbSBnZW42LCBleGNlcHQgaGVpZ2h0LCB3aWR0aCwgcGl0 Y2ggbW92ZWQgKi8KPiAgc3RhdGljIHVpbnQzMl90Cj4gIGdlbjhfYmluZF9idWYoc3RydWN0IGlu dGVsX2JhdGNoYnVmZmVyICpiYXRjaCwgY29uc3Qgc3RydWN0IGlndF9idWYgKmJ1ZiwKPiAtCSAg ICAgIHVpbnQzMl90IGZvcm1hdCwgaW50IGlzX2RzdCkgewo+ICsJICAgICAgaW50IGlzX2RzdCkg ewo+ICAJc3RydWN0IGdlbjhfc3VyZmFjZV9zdGF0ZSAqc3M7Cj4gIAl1aW50MzJfdCB3cml0ZV9k b21haW4sIHJlYWRfZG9tYWluLCBvZmZzZXQ7Cj4gIAlpbnQgcmV0Owo+IEBAIC0xOTMsNyArMTkz LDEyIEBAIGdlbjhfYmluZF9idWYoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwgY29u c3Qgc3RydWN0IGlndF9idWYgKmJ1ZiwKPiAgCQkJICAgICBvZmZzZXQsIHNpemVvZigqc3MpKTsK PiAgCj4gIAlzcy0+c3MwLnN1cmZhY2VfdHlwZSA9IFNVUkZBQ0VfMkQ7Cj4gLQlzcy0+c3MwLnN1 cmZhY2VfZm9ybWF0ID0gZm9ybWF0Owo+ICsJc3dpdGNoIChidWYtPmJwcCkgewo+ICsJCWNhc2Ug ODogc3MtPnNzMC5zdXJmYWNlX2Zvcm1hdCA9IFNVUkZBQ0VGT1JNQVRfUjhfVU5PUk07IGJyZWFr Owo+ICsJCWNhc2UgMTY6IHNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBTVVJGQUNFRk9STUFUX1I4 RzhfVU5PUk07IGJyZWFrOwo+ICsJCWNhc2UgMzI6IHNzLT5zczAuc3VyZmFjZV9mb3JtYXQgPSBT VVJGQUNFRk9STUFUX0I4RzhSOEE4X1VOT1JNOyBicmVhazsKPiArCQlkZWZhdWx0OiBpZ3RfYXNz ZXJ0KDApOwo+ICsJfQo+ICAJc3MtPnNzMC5yZW5kZXJfY2FjaGVfcmVhZF93cml0ZSA9IDE7Cj4g IAlzcy0+c3MwLnZlcnRpY2FsX2FsaWdubWVudCA9IDE7IC8qIGFsaWduIDQgKi8KPiAgCXNzLT5z czAuaG9yaXpvbnRhbF9hbGlnbm1lbnQgPSAxOyAvKiBhbGlnbiA0ICovCj4gQEAgLTI0OSwxMCAr MjU0LDggQEAgZ2VuOF9iaW5kX3N1cmZhY2VzKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0 Y2gsCj4gIAlhbm5vdGF0aW9uX2FkZF9zdGF0ZSgmYXViX2Fubm90YXRpb25zLCBBVUJfVFJBQ0Vf QklORElOR19UQUJMRSwKPiAgCQkJICAgICBvZmZzZXQsIDgpOwo+ICAKPiAtCWJpbmRpbmdfdGFi bGVbMF0gPQo+IC0JCWdlbjhfYmluZF9idWYoYmF0Y2gsIGRzdCwgU1VSRkFDRUZPUk1BVF9COEc4 UjhBOF9VTk9STSwgMSk7Cj4gLQliaW5kaW5nX3RhYmxlWzFdID0KPiAtCQlnZW44X2JpbmRfYnVm KGJhdGNoLCBzcmMsIFNVUkZBQ0VGT1JNQVRfQjhHOFI4QThfVU5PUk0sIDApOwo+ICsJYmluZGlu Z190YWJsZVswXSA9IGdlbjhfYmluZF9idWYoYmF0Y2gsIGRzdCwgMSk7Cj4gKwliaW5kaW5nX3Rh YmxlWzFdID0gZ2VuOF9iaW5kX2J1ZihiYXRjaCwgc3JjLCAwKTsKPiAgCj4gIAlyZXR1cm4gb2Zm c2V0Owo+ICB9Cj4gZGlmZiAtLWdpdCBhL2xpYi9yZW5kZXJjb3B5X2k4MzAuYyBiL2xpYi9yZW5k ZXJjb3B5X2k4MzAuYwo+IGluZGV4IDJiMDdhZDVkNzUwYS4uYTAyN2RhNGRhODlkIDEwMDY0NAo+ IC0tLSBhL2xpYi9yZW5kZXJjb3B5X2k4MzAuYwo+ICsrKyBiL2xpYi9yZW5kZXJjb3B5X2k4MzAu Ywo+IEBAIC0xMzYsNiArMTM2LDE0IEBAIHN0YXRpYyB2b2lkIGdlbjJfZW1pdF90YXJnZXQoc3Ry dWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKPiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgaWd0 X2J1ZiAqZHN0KQo+ICB7Cj4gIAl1aW50MzJfdCB0aWxpbmc7Cj4gKwl1aW50MzJfdCBmb3JtYXQ7 Cj4gKwo+ICsJc3dpdGNoIChkc3QtPmJwcCkgewo+ICsJCWNhc2UgODogZm9ybWF0ID0gQ09MUl9C VUZfOEJJVDsgYnJlYWs7CgpUaGlzIG9uZSB3cml0ZXMgdGhlIGdyZWVuIGNoYW5uZWwuLi4KCj4g KwkJY2FzZSAxNjogZm9ybWF0ID0gQ09MUl9CVUZfUkdCNTY1OyBicmVhazsKPiArCQljYXNlIDMy OiBmb3JtYXQgPSBDT0xSX0JVRl9BUkdCODg4ODsgYnJlYWs7Cj4gKwkJZGVmYXVsdDogaWd0X2Fz c2VydCgwKTsKPiArCX0KPiAgCj4gIAl0aWxpbmcgPSAwOwo+ICAJaWYgKGRzdC0+dGlsaW5nICE9 IEk5MTVfVElMSU5HX05PTkUpCj4gQEAgLTE0OCw3ICsxNTYsNyBAQCBzdGF0aWMgdm9pZCBnZW4y X2VtaXRfdGFyZ2V0KHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCj4gIAlPVVRfUkVM T0MoZHN0LT5ibywgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUiwgSTkxNV9HRU1fRE9NQUlOX1JFTkRF UiwgMCk7Cj4gIAo+ICAJT1VUX0JBVENIKF8zRFNUQVRFX0RTVF9CVUZfVkFSU19DTUQpOwo+IC0J T1VUX0JBVENIKENPTFJfQlVGX0FSR0I4ODg4IHwKPiArCU9VVF9CQVRDSChmb3JtYXQgfAo+ICAJ CSAgRFNUT1JHX0hPUlRfQklBUygweDgpIHwKPiAgCQkgIERTVE9SR19WRVJUX0JJQVMoMHg4KSk7 Cj4gIAo+IEBAIC0xNjUsNiArMTczLDE0IEBAIHN0YXRpYyB2b2lkIGdlbjJfZW1pdF90ZXh0dXJl KHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCj4gIAkJCSAgICAgIGludCB1bml0KQo+ ICB7Cj4gIAl1aW50MzJfdCB0aWxpbmc7Cj4gKwl1aW50MzJfdCBmb3JtYXQ7Cj4gKwo+ICsJc3dp dGNoIChzcmMtPmJwcCkgewo+ICsJCWNhc2UgODogZm9ybWF0ID0gTUFQU1VSRl84QklUIHwgTVRf OEJJVF9MODsgYnJlYWs7CgouLiBhbmQgTDggcmVwbGljYXRlcyB0aGUgc2FtZSA4IGJpdCB2YWx1 ZSB0byBSR0IsIHNvCmxvb2tzIGxpa2UgdGhpcyBzaG91bGQgd29yayBqdXN0IGZpbmUuIFNhbWUg Zm9yIGdlbjMuCgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KCj4gKwkJY2FzZSAxNjogZm9ybWF0ID0gTUFQU1VSRl8xNkJJVCB8IE1U XzE2QklUX1JHQjU2NTsgYnJlYWs7Cj4gKwkJY2FzZSAzMjogZm9ybWF0ID0gTUFQU1VSRl8zMkJJ VCB8IE1UXzMyQklUX0FSR0I4ODg4OyBicmVhazsKPiArCQlkZWZhdWx0OiBpZ3RfYXNzZXJ0KDAp Owo+ICsJfQo+ICAKPiAgCXRpbGluZyA9IDA7Cj4gIAlpZiAoc3JjLT50aWxpbmcgIT0gSTkxNV9U SUxJTkdfTk9ORSkKPiBAQCAtMTc2LDcgKzE5Miw3IEBAIHN0YXRpYyB2b2lkIGdlbjJfZW1pdF90 ZXh0dXJlKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCj4gIAlPVVRfUkVMT0Moc3Jj LT5ibywgSTkxNV9HRU1fRE9NQUlOX1NBTVBMRVIsIDAsIDApOwo+ICAJT1VUX0JBVENIKChpZ3Rf YnVmX2hlaWdodChzcmMpIC0gMSkgPDwgVE0wUzFfSEVJR0hUX1NISUZUIHwKPiAgCQkgIChpZ3Rf YnVmX3dpZHRoKHNyYykgLSAxKSA8PCBUTTBTMV9XSURUSF9TSElGVCB8Cj4gLQkJICBNQVBTVVJG XzMyQklUIHwgTVRfMzJCSVRfQVJHQjg4ODggfCB0aWxpbmcpOwo+ICsJCSAgZm9ybWF0IHwgdGls aW5nKTsKPiAgCU9VVF9CQVRDSCgoc3JjLT5zdHJpZGUgLyA0IC0gMSkgPDwgVE0wUzJfUElUQ0hf U0hJRlQgfCBUTTBTMl9NQVBfMkQpOwo+ICAJT1VUX0JBVENIKEZJTFRFUl9ORUFSRVNUIDw8IFRN MFMzX01BR19GSUxURVJfU0hJRlQgfAo+ICAJCSAgRklMVEVSX05FQVJFU1QgPDwgVE0wUzNfTUlO X0ZJTFRFUl9TSElGVCB8Cj4gZGlmZiAtLWdpdCBhL2xpYi9yZW5kZXJjb3B5X2k5MTUuYyBiL2xp Yi9yZW5kZXJjb3B5X2k5MTUuYwo+IGluZGV4IGY2OGU3YzFmMjgwNi4uOWNkMTJhNzI5OTFjIDEw MDY0NAo+IC0tLSBhL2xpYi9yZW5kZXJjb3B5X2k5MTUuYwo+ICsrKyBiL2xpYi9yZW5kZXJjb3B5 X2k5MTUuYwo+IEBAIC04NCwxNyArODQsMjMgQEAgdm9pZCBnZW4zX3JlbmRlcl9jb3B5ZnVuYyhz dHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAo+ICAJLyogc2FtbGVyIHN0YXRlICovCj4g IAl7Cj4gICNkZWZpbmUgVEVYX0NPVU5UIDEKPiAtCQl1aW50MzJfdCB0aWxpbmdfYml0cyA9IDA7 Cj4gKwkJdWludDMyX3QgZm9ybWF0X2JpdHMsIHRpbGluZ19iaXRzID0gMDsKPiAgCQlpZiAoc3Jj LT50aWxpbmcgIT0gSTkxNV9USUxJTkdfTk9ORSkKPiAgCQkJdGlsaW5nX2JpdHMgPSBNUzNfVElM RURfU1VSRkFDRTsKPiAgCQlpZiAoc3JjLT50aWxpbmcgPT0gSTkxNV9USUxJTkdfWSkKPiAgCQkJ dGlsaW5nX2JpdHMgfD0gTVMzX1RJTEVfV0FMSzsKPiAgCj4gKwkJc3dpdGNoIChzcmMtPmJwcCkg ewo+ICsJCQljYXNlIDg6IGZvcm1hdF9iaXRzID0gTUFQU1VSRl84QklUIHwgTVRfOEJJVF9MODsg YnJlYWs7Cj4gKwkJCWNhc2UgMTY6IGZvcm1hdF9iaXRzID0gTUFQU1VSRl8xNkJJVCB8IE1UXzE2 QklUX1JHQjU2NTsgYnJlYWs7Cj4gKwkJCWNhc2UgMzI6IGZvcm1hdF9iaXRzID0gTUFQU1VSRl8z MkJJVCB8IE1UXzMyQklUX0FSR0I4ODg4OyBicmVhazsKPiArCQkJZGVmYXVsdDogaWd0X2Fzc2Vy dCgwKTsKPiArCQl9Cj4gKwo+ICAJCU9VVF9CQVRDSChfM0RTVEFURV9NQVBfU1RBVEUgfCAoMyAq IFRFWF9DT1VOVCkpOwo+ICAJCU9VVF9CQVRDSCgoMSA8PCBURVhfQ09VTlQpIC0gMSk7Cj4gIAkJ T1VUX1JFTE9DKHNyYy0+Ym8sIEk5MTVfR0VNX0RPTUFJTl9TQU1QTEVSLCAwLCAwKTsKPiAtCQlP VVRfQkFUQ0goTUFQU1VSRl8zMkJJVCB8IE1UXzMyQklUX0FSR0I4ODg4IHwKPiAtCQkJICB0aWxp bmdfYml0cyB8Cj4gKwkJT1VUX0JBVENIKGZvcm1hdF9iaXRzIHwgdGlsaW5nX2JpdHMgfAo+ICAJ CQkgIChpZ3RfYnVmX2hlaWdodChzcmMpIC0gMSkgPDwgTVMzX0hFSUdIVF9TSElGVCB8Cj4gIAkJ CSAgKGlndF9idWZfd2lkdGgoc3JjKSAtIDEpIDw8IE1TM19XSURUSF9TSElGVCk7Cj4gIAkJT1VU X0JBVENIKChzcmMtPnN0cmlkZS80LTEpIDw8IE1TNF9QSVRDSF9TSElGVCk7Cj4gQEAgLTExMyw2 ICsxMTksMTUgQEAgdm9pZCBnZW4zX3JlbmRlcl9jb3B5ZnVuYyhzdHJ1Y3QgaW50ZWxfYmF0Y2hi dWZmZXIgKmJhdGNoLAo+ICAJLyogcmVuZGVyIHRhcmdldCBzdGF0ZSAqLwo+ICAJewo+ICAJCXVp bnQzMl90IHRpbGluZ19iaXRzID0gMDsKPiArCQl1aW50MzJfdCBmb3JtYXRfYml0czsKPiArCj4g KwkJc3dpdGNoIChkc3QtPmJwcCkgewo+ICsJCQljYXNlIDg6IGZvcm1hdF9iaXRzID0gQ09MUl9C VUZfOEJJVDsgYnJlYWs7Cj4gKwkJCWNhc2UgMTY6IGZvcm1hdF9iaXRzID0gQ09MUl9CVUZfUkdC NTY1OyBicmVhazsKPiArCQkJY2FzZSAzMjogZm9ybWF0X2JpdHMgPSBDT0xSX0JVRl9BUkdCODg4 ODsgYnJlYWs7Cj4gKwkJCWRlZmF1bHQ6IGlndF9hc3NlcnQoMCk7Cj4gKwkJfQo+ICsKPiAgCQlp ZiAoZHN0LT50aWxpbmcgIT0gSTkxNV9USUxJTkdfTk9ORSkKPiAgCQkJdGlsaW5nX2JpdHMgPSBC VUZfM0RfVElMRURfU1VSRkFDRTsKPiAgCQlpZiAoZHN0LT50aWxpbmcgPT0gSTkxNV9USUxJTkdf WSkKPiBAQCAtMTI0LDcgKzEzOSw3IEBAIHZvaWQgZ2VuM19yZW5kZXJfY29weWZ1bmMoc3RydWN0 IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKPiAgCQlPVVRfUkVMT0MoZHN0LT5ibywgSTkxNV9H RU1fRE9NQUlOX1JFTkRFUiwgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUiwgMCk7Cj4gIAo+ICAJCU9V VF9CQVRDSChfM0RTVEFURV9EU1RfQlVGX1ZBUlNfQ01EKTsKPiAtCQlPVVRfQkFUQ0goQ09MUl9C VUZfQVJHQjg4ODggfAo+ICsJCU9VVF9CQVRDSChmb3JtYXRfYml0cyB8Cj4gIAkJCSAgRFNUT1JH X0hPUlRfQklBUygweDgpIHwKPiAgCQkJICBEU1RPUkdfVkVSVF9CSUFTKDB4OCkpOwo+ICAKPiAt LSAKPiAyLjE5LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+IGlndC1kZXYgbWFpbGluZyBsaXN0Cj4gaWd0LWRldkBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ln dC1kZXYKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3QtZGV2Cg==