From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 767096E22A for ; Thu, 16 Jan 2020 18:10:20 +0000 (UTC) Date: Thu, 16 Jan 2020 20:10:16 +0200 From: Imre Deak Message-ID: <20200116181016.GB12652@ideak-desk.fi.intel.com> References: <20200113095908.17194-1-zbigniew.kempczynski@intel.com> <20200113095908.17194-4-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20200113095908.17194-4-zbigniew.kempczynski@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v8 3/4] lib/rendercopy_bufmgr: Add rendercopy buffer manager List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: imre.deak@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Zbigniew =?utf-8?Q?Kempczy=C5=84ski?= Cc: igt-dev@lists.freedesktop.org List-ID: T24gTW9uLCBKYW4gMTMsIDIwMjAgYXQgMTA6NTk6MDdBTSArMDEwMCwgWmJpZ25pZXcgS2VtcGN6 ecWEc2tpIHdyb3RlOgo+IFRoaXMgaXMgbWlkZGxlIGxheWVyIGJldHdlZW4gcmVuZGVyIGNvcHkg dGVzdHMgYW5kIGJ1ZmZlciBvcGVyYXRpb25zCj4gKGJ1Zl9vcHMpLiBSZW5kZXIgY29weSB0ZXN0 cyB1c2VzIGxpYmRybSBzbyBhZGRpbmcgd3JhcHBlciB0byBpbmRlcGVuZGVudAo+IGJ1Zl9vcHMg d2FzIG5lY2Vzc2FyeS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBaYmlnbmlldyBLZW1wY3p5xYRza2kg PHpiaWduaWV3LmtlbXBjenluc2tpQGludGVsLmNvbT4KPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJp c0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IEthdGFyenluYSBEZWMgPGthdGFyenluYS5kZWNA aW50ZWwuY29tPgo+IC0tLQo+ICBsaWIvTWFrZWZpbGUuc291cmNlcyAgICB8ICAgMiArCj4gIGxp Yi9tZXNvbi5idWlsZCAgICAgICAgIHwgICAxICsKPiAgbGliL3JlbmRlcmNvcHlfYnVmbWdyLmMg fCAxNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBsaWIvcmVu ZGVyY29weV9idWZtZ3IuaCB8ICAyOCArKysrKysrCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjA2IGlu c2VydGlvbnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9yZW5kZXJjb3B5X2J1Zm1nci5j Cj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvcmVuZGVyY29weV9idWZtZ3IuaAo+IAo+IGRpZmYg LS1naXQgYS9saWIvTWFrZWZpbGUuc291cmNlcyBiL2xpYi9NYWtlZmlsZS5zb3VyY2VzCj4gaW5k ZXggZGEzNGVhZTcuLmZlYjhjMjBkIDEwMDY0NAo+IC0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2Vz Cj4gKysrIGIvbGliL01ha2VmaWxlLnNvdXJjZXMKPiBAQCAtOTUsNiArOTUsOCBAQCBsaWJfc291 cmNlX2xpc3QgPQkgCVwKPiAgCWdlbjdfcmVuZGVyLmgJCVwKPiAgCWdlbjhfcmVuZGVyLmgJCVwK PiAgCWdlbjlfcmVuZGVyLmgJCVwKPiArCXJlbmRlcmNvcHlfYnVmbWdyLmMJXAo+ICsJcmVuZGVy Y29weV9idWZtZ3IuaAlcCj4gIAlyZW5kZXJjb3B5X2dlbjQuYwlcCj4gIAlyZW5kZXJjb3B5X2dl bjYuYwlcCj4gIAlyZW5kZXJjb3B5X2dlbjcuYwlcCj4gZGlmZiAtLWdpdCBhL2xpYi9tZXNvbi5i dWlsZCBiL2xpYi9tZXNvbi5idWlsZAo+IGluZGV4IGNmM2UzNWRhLi4zYmYzOTkxNSAxMDA2NDQK PiAtLS0gYS9saWIvbWVzb24uYnVpbGQKPiArKysgYi9saWIvbWVzb24uYnVpbGQKPiBAQCAtMzks NiArMzksNyBAQCBsaWJfc291cmNlcyA9IFsKPiAgCSdncHVfY21kcy5jJywKPiAgCSdyZW5kZXJj b3B5X2k5MTUuYycsCj4gIAkncmVuZGVyY29weV9pODMwLmMnLAo+ICsJJ3JlbmRlcmNvcHlfYnVm bWdyLmMnLAo+ICAJJ3JlbmRlcmNvcHlfZ2VuNC5jJywKPiAgCSdyZW5kZXJjb3B5X2dlbjYuYycs Cj4gIAkncmVuZGVyY29weV9nZW43LmMnLAo+IGRpZmYgLS1naXQgYS9saWIvcmVuZGVyY29weV9i dWZtZ3IuYyBiL2xpYi9yZW5kZXJjb3B5X2J1Zm1nci5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiBpbmRleCAwMDAwMDAwMC4uMTlkM2EwM2UKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliL3Jl bmRlcmNvcHlfYnVmbWdyLmMKPiBAQCAtMCwwICsxLDE3NSBAQAo+ICsvKgo+ICsgKiBDb3B5cmln aHQgwqkgMjAyMCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSBy aWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBz dWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVk IHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiAr ICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ug KGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGlu IGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJl Lgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiAr ICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4g IElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJT IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB UklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRX QVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ ICsgKgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KPiArI2luY2x1ZGUgImln dC5oIgo+ICsjaW5jbHVkZSAiaWd0X3g4Ni5oIgo+ICsjaW5jbHVkZSAicmVuZGVyY29weV9idWZt Z3IuaCIKPiArCj4gKy8qKgo+ICsgKiBTRUNUSU9OOnJlbmRlcmNvcHlfYnVmbWdyCj4gKyAqIEBz aG9ydF9kZXNjcmlwdGlvbjogUmVuZGVyIGNvcHkgYnVmZmVyIG1hbmFnZXIKPiArICogQHRpdGxl OiBSZW5kZXIgY29weSBidWZtZ3IKPiArICogQGluY2x1ZGU6IGlndC5oCj4gKyAqCj4gKyAqICMg UmVuZGVyY29weSBidWZmZXIgbWFuYWdlcgo+ICsgKgo+ICsgKiBSZW5kZXJjb3B5IGRlcGVuZHMg b24gbGliZHJtIGFuZCBpZ3RfYnVmLCBzbyBzb21lIG1pZGRsZSBsYXllciB0byBpbnRlbF9idWYK PiArICogYW5kIGJ1Zl9vcHMgaXMgcmVxdWlyZWQuCj4gKyAqCj4gKyAqIHxbPCEtLSBsYW5ndWFn ZT0iYyIgLS0+Cj4gKyAqIHN0cnVjdCByZW5kZXJjb3B5X2J1Zm1nciAqYm1ncjsKPiArICogLi4u Cj4gKyAqIGJtZ3IgPSByZW5kZXJjb3B5X2J1Zm1ncl9jcmVhdGUoZmQsIGJ1Zm1ncik7Cj4gKyAq IC4uLgo+ICsgKiBpZ3RfYnVmX2luaXQoYm1nciwgJmJ1ZiwgNTEyLCA1MTIsIDMyLCBJOTE1X1RJ TElOR19YLCBmYWxzZSk7Cj4gKyAqIC4uLgo+ICsgKiBsaW5lYXJfdG9faWd0X2J1ZihibWdyLCAm YnVmLCBsaW5lYXIpOwo+ICsgKiAuLi4KPiArICogaWd0X2J1Zl90b19saW5lYXIoYm1nciwgJmJ1 ZiwgbGluZWFyKTsKPiArICogLi4uCj4gKyAqIHJlbmRlcmNvcHlfYnVmbWdyX2Rlc3Ryb3koYm1n cik7Cj4gKyAqIF18Cj4gKyAqLwo+ICsKPiArc3RydWN0IHJlbmRlcmNvcHlfYnVmbWdyIHsKPiAr CWludCBmZDsKPiArCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncjsKPiArCXN0cnVjdCBidWZfb3Bz ICpib3BzOwo+ICt9Owo+ICsKPiArc3RhdGljIHZvaWQgX19pZ3RfYnVmX3RvX2ludGVsX2J1Zihz dHJ1Y3QgaWd0X2J1ZiAqYnVmLCBzdHJ1Y3QgaW50ZWxfYnVmICppYnVmKQo+ICt7Cj4gKwlpYnVm LT5oYW5kbGUgPSBidWYtPmJvLT5oYW5kbGU7Cj4gKwlpYnVmLT5zdHJpZGUgPSBidWYtPnN1cmZh Y2VbMF0uc3RyaWRlOwo+ICsJaWJ1Zi0+dGlsaW5nID0gYnVmLT50aWxpbmc7Cj4gKwlpYnVmLT5i cHAgPSBidWYtPmJwcDsKPiArCWlidWYtPnNpemUgPSBidWYtPnN1cmZhY2VbMF0uc2l6ZTsKPiAr CWlidWYtPmNvbXByZXNzaW9uID0gYnVmLT5jb21wcmVzc2lvbjsKPiArCWlidWYtPmF1eC5vZmZz ZXQgPSBidWYtPmNjc1swXS5vZmZzZXQ7Cj4gKwlpYnVmLT5hdXguc3RyaWRlID0gYnVmLT5jY3Nb MF0uc3RyaWRlOwo+ICt9Cj4gKwo+ICt2b2lkIGlndF9idWZfdG9fbGluZWFyKHN0cnVjdCByZW5k ZXJjb3B5X2J1Zm1nciAqYm1nciwgc3RydWN0IGlndF9idWYgKmJ1ZiwKPiArCQkgICAgICAgdWlu dDMyX3QgKmxpbmVhcikKPiArewo+ICsJc3RydWN0IGludGVsX2J1ZiBpYnVmOwo+ICsKPiArCV9f aWd0X2J1Zl90b19pbnRlbF9idWYoYnVmLCAmaWJ1Zik7Cj4gKwo+ICsJaW50ZWxfYnVmX3RvX2xp bmVhcihibWdyLT5ib3BzLCAmaWJ1ZiwgbGluZWFyKTsKPiArfQo+ICsKPiArdm9pZCBsaW5lYXJf dG9faWd0X2J1ZihzdHJ1Y3QgcmVuZGVyY29weV9idWZtZ3IgKmJtZ3IsIHN0cnVjdCBpZ3RfYnVm ICpidWYsCj4gKwkJICAgICAgIHVpbnQzMl90ICpsaW5lYXIpCj4gK3sKPiArCXN0cnVjdCBpbnRl bF9idWYgaWJ1ZjsKPiArCj4gKwlfX2lndF9idWZfdG9faW50ZWxfYnVmKGJ1ZiwgJmlidWYpOwo+ ICsKPiArCWxpbmVhcl90b19pbnRlbF9idWYoYm1nci0+Ym9wcywgJmlidWYsIGxpbmVhcik7Cj4g K30KPiArCj4gK3N0cnVjdCByZW5kZXJjb3B5X2J1Zm1nciAqcmVuZGVyY29weV9idWZtZ3JfY3Jl YXRlKGludCBmZCwKPiArCQkJCQkJICAgZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyKQo+ICt7Cj4g KwlzdHJ1Y3QgYnVmX29wcyAqYm9wczsKPiArCXN0cnVjdCByZW5kZXJjb3B5X2J1Zm1nciAqYm1n cjsKPiArCj4gKwlpZ3RfYXNzZXJ0KGJ1Zm1ncik7Cj4gKwo+ICsJYm9wcyA9IGJ1Zl9vcHNfY3Jl YXRlKGZkKTsKPiArCWlndF9hc3NlcnQoYm9wcyk7Cj4gKwo+ICsJYm1nciA9IGNhbGxvYygxLCBz aXplb2YoKmJtZ3IpKTsKPiArCWlndF9hc3NlcnQoYm1ncik7Cj4gKwo+ICsJYm1nci0+ZmQgPSBm ZDsKPiArCWJtZ3ItPmJ1Zm1nciA9IGJ1Zm1ncjsKPiArCWJtZ3ItPmJvcHMgPSBib3BzOwo+ICsK PiArCXJldHVybiBibWdyOwo+ICt9Cj4gKwo+ICt2b2lkIHJlbmRlcmNvcHlfYnVmbWdyX2Rlc3Ry b3koc3RydWN0IHJlbmRlcmNvcHlfYnVmbWdyICpibWdyKQo+ICt7Cj4gKwlpZ3RfYXNzZXJ0KGJt Z3IpOwo+ICsJaWd0X2Fzc2VydChibWdyLT5ib3BzKTsKPiArCj4gKwlidWZfb3BzX2Rlc3Ryb3ko Ym1nci0+Ym9wcyk7Cj4gKwlmcmVlKGJtZ3IpOwo+ICt9Cj4gKwo+ICtib29sIHJlbmRlcmNvcHlf YnVmbWdyX3NldF9zb2Z0d2FyZV90aWxpbmcoc3RydWN0IHJlbmRlcmNvcHlfYnVmbWdyICpibWdy LAo+ICsJCQkJCSAgIHVpbnQzMl90IHRpbGluZywKPiArCQkJCQkgICBib29sIHVzZV9zb2Z0d2Fy ZV90aWxpbmcpCj4gK3sKPiArCXJldHVybiBidWZfb3BzX3NldF9zb2Z0d2FyZV90aWxpbmcoYm1n ci0+Ym9wcywgdGlsaW5nLAo+ICsJCQkJCSAgIHVzZV9zb2Z0d2FyZV90aWxpbmcpOwo+ICt9Cj4g Kwo+ICt2b2lkIGlndF9idWZfaW5pdChzdHJ1Y3QgcmVuZGVyY29weV9idWZtZ3IgKmJtZ3IsIHN0 cnVjdCBpZ3RfYnVmICpidWYsCj4gKwkJICBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBicHAs Cj4gKwkJICB1aW50MzJfdCB0aWxpbmcsIHVpbnQzMl90IGNvbXByZXNzaW9uKQo+ICt7Cj4gKwlz dHJ1Y3QgaW50ZWxfYnVmIGlidWY7Cj4gKwlpbnQgc2l6ZTsKPiArCWludCBjY3Nfd2lkdGgsIGNj c19oZWlnaHQ7Cj4gKwl1aW50MzJfdCBkZXZpZDsKPiArCWludCBnZW5lcmF0aW9uOwo+ICsKPiAr CWRldmlkID0gaW50ZWxfZ2V0X2RybV9kZXZpZChibWdyLT5mZCk7Cj4gKwlnZW5lcmF0aW9uID0g aW50ZWxfZ2VuKGRldmlkKTsKPiArCj4gKwlpZ3RfYXNzZXJ0KGJ1Zik7Cj4gKwltZW1zZXQoYnVm LCAwLCBzaXplb2YoKmJ1ZikpOwo+ICsKPiArCWJ1Zi0+c3VyZmFjZVswXS5zdHJpZGUgPSBBTElH Tih3aWR0aCAqIChicHAgLyA4KSwgMTI4KTsKPiArCWJ1Zi0+c3VyZmFjZVswXS5zaXplID0gYnVm LT5zdXJmYWNlWzBdLnN0cmlkZSAqIGhlaWdodDsKPiArCWJ1Zi0+dGlsaW5nID0gdGlsaW5nOwo+ ICsJYnVmLT5icHAgPSBicHA7Cj4gKwlidWYtPmNvbXByZXNzaW9uID0gY29tcHJlc3Npb247Cj4g Kwo+ICsJY2NzX3dpZHRoID0gaWd0X2J1Zl9pbnRlbF9jY3Nfd2lkdGgoZ2VuZXJhdGlvbiwgYnVm KTsKPiArCWNjc19oZWlnaHQgPSBpZ3RfYnVmX2ludGVsX2Njc19oZWlnaHQoZ2VuZXJhdGlvbiwg YnVmKTsKPiArCj4gKwlzaXplID0gYnVmLT5zdXJmYWNlWzBdLnN0cmlkZSAqIEFMSUdOKGhlaWdo dCwgMzIpOwo+ICsKPiArCWlmIChjb21wcmVzc2lvbikgewo+ICsJCWJ1Zi0+Y2NzWzBdLm9mZnNl dCA9IGJ1Zi0+c3VyZmFjZVswXS5zdHJpZGUgKiBBTElHTihoZWlnaHQsIDMyKTsKPiArCQlidWYt PmNjc1swXS5zdHJpZGUgPSBjY3Nfd2lkdGg7Cj4gKwkJc2l6ZSA9IGJ1Zi0+Y2NzWzBdLm9mZnNl dCArIGNjc193aWR0aCAqIGNjc19oZWlnaHQ7Cj4gKwl9Cj4gKwo+ICsJYnVmLT5ibyA9IGRybV9p bnRlbF9ib19hbGxvYyhibWdyLT5idWZtZ3IsICIiLCBzaXplLCA0MDk2KTsKPiArCj4gKwlpbnRl bF9idWZfaW5pdF91c2luZ19oYW5kbGUoYm1nci0+Ym9wcywKPiArCQkJCSAgICBidWYtPmJvLT5o YW5kbGUsCj4gKwkJCQkgICAgJmlidWYsCj4gKwkJCQkgICAgd2lkdGgsIGhlaWdodCwgYnBwLCB0 aWxpbmcsCj4gKwkJCQkgICAgY29tcHJlc3Npb24pOwo+ICsKPiArCWJ1Zi0+Y2NzWzBdLm9mZnNl dCA9IGlidWYuYXV4Lm9mZnNldDsKPiArCWJ1Zi0+Y2NzWzBdLnN0cmlkZSA9IGlidWYuYXV4LnN0 cmlkZTsKCldoeSBkbyB3ZSBuZWVkIHRvIHJlaW5pdCB0aGVzZT8KCj4gK30KPiBkaWZmIC0tZ2l0 IGEvbGliL3JlbmRlcmNvcHlfYnVmbWdyLmggYi9saWIvcmVuZGVyY29weV9idWZtZ3IuaAo+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmY0ZTUxMThjCj4gLS0tIC9kZXYv bnVsbAo+ICsrKyBiL2xpYi9yZW5kZXJjb3B5X2J1Zm1nci5oCj4gQEAgLTAsMCArMSwyOCBAQAo+ ICsjaWZuZGVmIF9fUkVOREVSQ09QWV9CVUZNR1JfSF9fCj4gKyNkZWZpbmUgX19SRU5ERVJDT1BZ X0JVRk1HUl9IX18KPiArCj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4KPiArI2luY2x1ZGUgImludGVs X2J1Zm9wcy5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIKPiArCj4gK3N0cnVj dCByZW5kZXJjb3B5X2J1Zm1ncjsKPiArCj4gK3N0cnVjdCByZW5kZXJjb3B5X2J1Zm1nciAqcmVu ZGVyY29weV9idWZtZ3JfY3JlYXRlKGludCBmZCwKPiArCQkJCQkJICAgZHJtX2ludGVsX2J1Zm1n ciAqYnVmbWdyKTsKPiArdm9pZCByZW5kZXJjb3B5X2J1Zm1ncl9kZXN0cm95KHN0cnVjdCByZW5k ZXJjb3B5X2J1Zm1nciAqYm1ncik7Cj4gKwo+ICtib29sIHJlbmRlcmNvcHlfYnVmbWdyX3NldF9z b2Z0d2FyZV90aWxpbmcoc3RydWN0IHJlbmRlcmNvcHlfYnVmbWdyICpibWdyLAo+ICsJCQkJCSAg IHVpbnQzMl90IHRpbGluZywKPiArCQkJCQkgICBib29sIHVzZV9zb2Z0d2FyZV90aWxpbmcpOwo+ ICsKPiArdm9pZCBpZ3RfYnVmX3RvX2xpbmVhcihzdHJ1Y3QgcmVuZGVyY29weV9idWZtZ3IgKmJt Z3IsIHN0cnVjdCBpZ3RfYnVmICpidWYsCj4gKwkJICAgICAgIHVpbnQzMl90ICpsaW5lYXIpOwo+ ICsKPiArdm9pZCBsaW5lYXJfdG9faWd0X2J1ZihzdHJ1Y3QgcmVuZGVyY29weV9idWZtZ3IgKmJt Z3IsIHN0cnVjdCBpZ3RfYnVmICpidWYsCj4gKwkJICAgICAgIHVpbnQzMl90ICpsaW5lYXIpOwo+ ICsKPiArdm9pZCBpZ3RfYnVmX2luaXQoc3RydWN0IHJlbmRlcmNvcHlfYnVmbWdyICpibWdyLCBz dHJ1Y3QgaWd0X2J1ZiAqYnVmLAo+ICsJCSAgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgYnBw LAo+ICsJCSAgdWludDMyX3QgdGlsaW5nLCB1aW50MzJfdCBjb21wcmVzc2lvbik7Cj4gKwo+ICsj ZW5kaWYKPiAtLSAKPiAyLjIzLjAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+IGlndC1kZXYgbWFpbGluZyBsaXN0Cj4gaWd0LWRldkBsaXN0cy5m cmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2lndC1kZXYKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==