From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH i-g-t 4/6] lib: Add igt_pipe_crc_new_nonblock() Date: Mon, 4 Jan 2016 18:46:25 +0200 Message-ID: <20160104164625.GI4437@intel.com> References: <1450459550-16504-1-git-send-email-ville.syrjala@linux.intel.com> <1450459550-16504-4-git-send-email-ville.syrjala@linux.intel.com> <20151221155334.GD30437@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id CDB336E4C2 for ; Mon, 4 Jan 2016 08:46:34 -0800 (PST) Content-Disposition: inline In-Reply-To: <20151221155334.GD30437@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBEZWMgMjEsIDIwMTUgYXQgMDQ6NTM6MzRQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBGcmksIERlYyAxOCwgMjAxNSBhdCAwNzoyNTo0OFBNICswMjAwLCB2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAKPiA+IEFkZCBzdXBwb3J0IGZvciBy ZWFkaW5nIHRoZSBDUkMgaW4gbm9uLWJsb2NraW5nIG1vZGUuIFVzZWZ1bCBmb3IgdGVzdHMKPiA+ IHRoYXQgd2FudCB0byBzdGFydCB0aGUgQ1JDIGNhcHR1cmUsIHRoZW4gZG8gYSBidW5jaCBvZiBv cGVyYXRpb25zLCB0aGVuCj4gPiBjb2xsZWN0IGhvd2V2ZXIgbWFueSBDUkNzIHRoYXQgZ290IGdl bmVyYXRlZC4gVGhlIGN1cnJlbnQKPiA+IGlndF9waXBlX2NyY19uZXcoKSArIGlndF9waXBlX2Ny Y19nZXRfY3JjcygpIG1ldGhvZCB3b3VsZCBibG9jayB1bnRpbAo+ID4gaXQgZ2V0cyB0aGUgcmVx dWVzdGVkIG51bWJlciBvZiBDUkNzLCB3aHJlYXMgaW4gbm9uLWJsb2NraW5nIG1vZGUgd2UKPiA+ IGNhbiBqdXN0IHJlYWQgYXMgbWFueSBhcyBnb3QgZ2VuZXJhdGVkIHRodXMgZmFyLgo+ID4gCj4g PiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgo+ID4gLS0tCj4gPiAgbGliL2lndF9kZWJ1Z2ZzLmMgfCAxMzYgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgbGliL2lndF9k ZWJ1Z2ZzLmggfCAgIDQgKy0KPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyks IDQ5IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9kZWJ1Z2ZzLmMg Yi9saWIvaWd0X2RlYnVnZnMuYwo+ID4gaW5kZXggYTNkMDE1MjY3ZTE1Li4xZDYyNWFkNGJhNTAg MTAwNjQ0Cj4gPiAtLS0gYS9saWIvaWd0X2RlYnVnZnMuYwo+ID4gKysrIGIvbGliL2lndF9kZWJ1 Z2ZzLmMKPiA+IEBAIC0yOTgsNiArMjk4LDcgQEAgc3RydWN0IF9pZ3RfcGlwZV9jcmMgewo+ID4g IAlpbnQgY3JjX2ZkOwo+ID4gIAlpbnQgbGluZV9sZW47Cj4gPiAgCWludCBidWZmZXJfbGVuOwo+ ID4gKwlpbnQgZmxhZ3M7Cj4gPiAgCj4gPiAgCWVudW0gcGlwZSBwaXBlOwo+ID4gIAllbnVtIGlu dGVsX3BpcGVfY3JjX3NvdXJjZSBzb3VyY2U7Cj4gPiBAQCAtMzg5LDE5ICszOTAsOCBAQCB2b2lk IGlndF9yZXF1aXJlX3BpcGVfY3JjKHZvaWQpCj4gPiAgCWZjbG9zZShjdGwpOwo+ID4gIH0KPiA+ ICAKPiA+IC0vKioKPiA+IC0gKiBpZ3RfcGlwZV9jcmNfbmV3Ogo+ID4gLSAqIEBwaXBlOiBkaXNw bGF5IHBpcGUgdG8gdXNlIGFzIHNvdXJjZQo+ID4gLSAqIEBzb3VyY2U6IENSQyB0YXAgcG9pbnQg dG8gdXNlIGFzIHNvdXJjZQo+ID4gLSAqCj4gPiAtICogVGhpcyBzZXRzIHVwIGEgbmV3IHBpcGUg Q1JDIGNhcHR1cmUgb2JqZWN0IGZvciB0aGUgZ2l2ZW4gQHBpcGUgYW5kIEBzb3VyY2UuCj4gPiAt ICoKPiA+IC0gKiBSZXR1cm5zOiBBIHBpcGUgQ1JDIG9iamVjdCBpZiB0aGUgZ2l2ZW4gQHBpcGUg YW5kIEBzb3VyY2UuIFRoZSBsaWJyYXJ5Cj4gPiAtICogYXNzdW1lcyB0aGF0IHRoZSBzb3VyY2Ug aXMgYWx3YXlzIGF2YWlsYWJsZSBzaW5jZSByZWNlbnQga2VybmVscyBzdXBwb3J0IGF0Cj4gPiAt ICogbGVhc3QgSU5URUxfUElQRV9DUkNfU09VUkNFX0FVVE8gZXZlcnl3aGVyZS4KPiA+IC0gKi8K PiA+IC1pZ3RfcGlwZV9jcmNfdCAqCj4gPiAtaWd0X3BpcGVfY3JjX25ldyhlbnVtIHBpcGUgcGlw ZSwgZW51bSBpbnRlbF9waXBlX2NyY19zb3VyY2Ugc291cmNlKQo+ID4gK3N0YXRpYyBpZ3RfcGlw ZV9jcmNfdCAqCj4gPiArcGlwZV9jcmNfbmV3KGVudW0gcGlwZSBwaXBlLCBlbnVtIGludGVsX3Bp cGVfY3JjX3NvdXJjZSBzb3VyY2UsIGludCBmbGFncykKPiA+ICB7Cj4gPiAgCWlndF9waXBlX2Ny Y190ICpwaXBlX2NyYzsKPiA+ICAJY2hhciBidWZbMTI4XTsKPiA+IEBAIC00MTQsMTggKzQwNCw1 NSBAQCBpZ3RfcGlwZV9jcmNfbmV3KGVudW0gcGlwZSBwaXBlLCBlbnVtIGludGVsX3BpcGVfY3Jj X3NvdXJjZSBzb3VyY2UpCj4gPiAgCWlndF9hc3NlcnQocGlwZV9jcmMtPmN0bF9mZCAhPSAtMSk7 Cj4gPiAgCj4gPiAgCXNwcmludGYoYnVmLCAiaTkxNV9waXBlXyVzX2NyYyIsIGttc3Rlc3RfcGlw ZV9uYW1lKHBpcGUpKTsKPiA+IC0JcGlwZV9jcmMtPmNyY19mZCA9IGlndF9kZWJ1Z2ZzX29wZW4o YnVmLCBPX1JET05MWSk7Cj4gPiArCXBpcGVfY3JjLT5jcmNfZmQgPSBpZ3RfZGVidWdmc19vcGVu KGJ1ZiwgZmxhZ3MpOwo+ID4gIAlpZ3RfYXNzZXJ0KHBpcGVfY3JjLT5jcmNfZmQgIT0gLTEpOwo+ ID4gIAo+ID4gIAlwaXBlX2NyYy0+bGluZV9sZW4gPSBQSVBFX0NSQ19MSU5FX0xFTjsKPiA+ICAJ cGlwZV9jcmMtPmJ1ZmZlcl9sZW4gPSBQSVBFX0NSQ19CVUZGRVJfTEVOOwo+ID4gIAlwaXBlX2Ny Yy0+cGlwZSA9IHBpcGU7Cj4gPiAgCXBpcGVfY3JjLT5zb3VyY2UgPSBzb3VyY2U7Cj4gPiArCXBp cGVfY3JjLT5mbGFncyA9IGZsYWdzOwo+ID4gIAo+ID4gIAlyZXR1cm4gcGlwZV9jcmM7Cj4gPiAg fQo+ID4gIAo+ID4gIC8qKgo+ID4gKyAqIGlndF9waXBlX2NyY19uZXc6Cj4gPiArICogQHBpcGU6 IGRpc3BsYXkgcGlwZSB0byB1c2UgYXMgc291cmNlCj4gPiArICogQHNvdXJjZTogQ1JDIHRhcCBw b2ludCB0byB1c2UgYXMgc291cmNlCj4gPiArICoKPiA+ICsgKiBUaGlzIHNldHMgdXAgYSBuZXcg cGlwZSBDUkMgY2FwdHVyZSBvYmplY3QgZm9yIHRoZSBnaXZlbiBAcGlwZSBhbmQgQHNvdXJjZQo+ ID4gKyAqIGluIGJsb2NraW5nIG1vZGUuCj4gPiArICoKPiA+ICsgKiBSZXR1cm5zOiBBIHBpcGUg Q1JDIG9iamVjdCBpZiB0aGUgZ2l2ZW4gQHBpcGUgYW5kIEBzb3VyY2UuIFRoZSBsaWJyYXJ5Cj4g PiArICogYXNzdW1lcyB0aGF0IHRoZSBzb3VyY2UgaXMgYWx3YXlzIGF2YWlsYWJsZSBzaW5jZSBy ZWNlbnQga2VybmVscyBzdXBwb3J0IGF0Cj4gPiArICogbGVhc3QgSU5URUxfUElQRV9DUkNfU09V UkNFX0FVVE8gZXZlcnl3aGVyZS4KPiA+ICsgKi8KPiA+ICtpZ3RfcGlwZV9jcmNfdCAqCj4gPiAr aWd0X3BpcGVfY3JjX25ldyhlbnVtIHBpcGUgcGlwZSwgZW51bSBpbnRlbF9waXBlX2NyY19zb3Vy Y2Ugc291cmNlKQo+ID4gK3sKPiA+ICsJcmV0dXJuIHBpcGVfY3JjX25ldyhwaXBlLCBzb3VyY2Us IE9fUkRPTkxZKTsKPiA+ICt9Cj4gPiArCj4gPiArLyoqCj4gPiArICogaWd0X3BpcGVfY3JjX25l d19ub25ibG9jazoKPiA+ICsgKiBAcGlwZTogZGlzcGxheSBwaXBlIHRvIHVzZSBhcyBzb3VyY2UK PiA+ICsgKiBAc291cmNlOiBDUkMgdGFwIHBvaW50IHRvIHVzZSBhcyBzb3VyY2UKPiA+ICsgKgo+ ID4gKyAqIFRoaXMgc2V0cyB1cCBhIG5ldyBwaXBlIENSQyBjYXB0dXJlIG9iamVjdCBmb3IgdGhl IGdpdmVuIEBwaXBlIGFuZCBAc291cmNlCj4gPiArICogaW4gbm9uYmxvY2tpbmcgbW9kZS4KPiA+ ICsgKgo+ID4gKyAqIFJldHVybnM6IEEgcGlwZSBDUkMgb2JqZWN0IGlmIHRoZSBnaXZlbiBAcGlw ZSBhbmQgQHNvdXJjZS4gVGhlIGxpYnJhcnkKPiA+ICsgKiBhc3N1bWVzIHRoYXQgdGhlIHNvdXJj ZSBpcyBhbHdheXMgYXZhaWxhYmxlIHNpbmNlIHJlY2VudCBrZXJuZWxzIHN1cHBvcnQgYXQKPiA+ ICsgKiBsZWFzdCBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyBldmVyeXdoZXJlLgo+ID4gKyAq Lwo+ID4gK2lndF9waXBlX2NyY190ICoKPiA+ICtpZ3RfcGlwZV9jcmNfbmV3X25vbmJsb2NrKGVu dW0gcGlwZSBwaXBlLCBlbnVtIGludGVsX3BpcGVfY3JjX3NvdXJjZSBzb3VyY2UpCj4gPiArewo+ ID4gKwlyZXR1cm4gcGlwZV9jcmNfbmV3KHBpcGUsIHNvdXJjZSwgT19SRE9OTFkgfCBPX05PTkJM T0NLKTsKPiA+ICt9Cj4gPiArCj4gPiArLyoqCj4gPiAgICogaWd0X3BpcGVfY3JjX2ZyZWU6Cj4g PiAgICogQHBpcGVfY3JjOiBwaXBlIENSQyBvYmplY3QKPiA+ICAgKgo+ID4gQEAgLTQ0MSw2ICs0 NjgsMzkgQEAgdm9pZCBpZ3RfcGlwZV9jcmNfZnJlZShpZ3RfcGlwZV9jcmNfdCAqcGlwZV9jcmMp Cj4gPiAgCWZyZWUocGlwZV9jcmMpOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgYm9vbCBwaXBl X2NyY19pbml0X2Zyb21fc3RyaW5nKGlndF9jcmNfdCAqY3JjLCBjb25zdCBjaGFyICpsaW5lKQo+ ID4gK3sKPiA+ICsJaW50IG47Cj4gPiArCj4gPiArCWNyYy0+bl93b3JkcyA9IDU7Cj4gPiArCW4g PSBzc2NhbmYobGluZSwgIiU4dSAlOHggJTh4ICU4eCAlOHggJTh4IiwgJmNyYy0+ZnJhbWUsICZj cmMtPmNyY1swXSwKPiA+ICsJCSAgICZjcmMtPmNyY1sxXSwgJmNyYy0+Y3JjWzJdLCAmY3JjLT5j cmNbM10sICZjcmMtPmNyY1s0XSk7Cj4gPiArCXJldHVybiBuID09IDY7Cj4gPiArfQo+ID4gKwo+ ID4gK3N0YXRpYyBpbnQgcmVhZF9vbmVfY3JjKGlndF9waXBlX2NyY190ICpwaXBlX2NyYywgaWd0 X2NyY190ICpvdXQpCj4gPiArewo+ID4gKwlzc2l6ZV90IGJ5dGVzX3JlYWQ7Cj4gPiArCWNoYXIg YnVmW3BpcGVfY3JjLT5idWZmZXJfbGVuXTsKPiA+ICsKPiA+ICsJaWd0X3NldF90aW1lb3V0KDUs ICJDUkMgcmVhZGluZyIpOwo+ID4gKwlieXRlc19yZWFkID0gcmVhZChwaXBlX2NyYy0+Y3JjX2Zk LCAmYnVmLCBwaXBlX2NyYy0+bGluZV9sZW4pOwo+ID4gKwlpZ3RfcmVzZXRfdGltZW91dCgpOwo+ ID4gKwo+ID4gKwlpZiAoYnl0ZXNfcmVhZCA8IDAgJiYgZXJybm8gPT0gRUFHQUlOKSB7Cj4gPiAr CQlpZ3RfYXNzZXJ0KHBpcGVfY3JjLT5mbGFncyAmIE9fTk9OQkxPQ0spOwo+ID4gKwkJYnl0ZXNf cmVhZCA9IDA7Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlpZ3RfYXNzZXJ0X2VxKGJ5dGVzX3JlYWQs IHBpcGVfY3JjLT5saW5lX2xlbik7Cj4gPiArCX0KPiA+ICsJYnVmW2J5dGVzX3JlYWRdID0gJ1ww JzsKPiA+ICsKPiA+ICsJaWYgKGJ5dGVzX3JlYWQgJiYgIXBpcGVfY3JjX2luaXRfZnJvbV9zdHJp bmcob3V0LCBidWYpKQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCj4gPiArCXJldHVybiBi eXRlc19yZWFkOwo+ID4gK30KPiA+ICsKPiA+ICAvKioKPiA+ICAgKiBpZ3RfcGlwZV9jcmNfc3Rh cnQ6Cj4gPiAgICogQHBpcGVfY3JjOiBwaXBlIENSQyBvYmplY3QKPiA+IEBAIC00NDksNyArNTA5 LDcgQEAgdm9pZCBpZ3RfcGlwZV9jcmNfZnJlZShpZ3RfcGlwZV9jcmNfdCAqcGlwZV9jcmMpCj4g PiAgICovCj4gPiAgdm9pZCBpZ3RfcGlwZV9jcmNfc3RhcnQoaWd0X3BpcGVfY3JjX3QgKnBpcGVf Y3JjKQo+ID4gIHsKPiA+IC0JaWd0X2NyY190ICpjcmNzID0gTlVMTDsKPiA+ICsJaWd0X2NyY190 IGNyYzsKPiA+ICAKPiA+ICAJaWd0X2Fzc2VydChpZ3RfcGlwZV9jcmNfZG9fc3RhcnQocGlwZV9j cmMpKTsKPiA+ICAKPiA+IEBAIC00NjAsOCArNTIwLDEwIEBAIHZvaWQgaWd0X3BpcGVfY3JjX3N0 YXJ0KGlndF9waXBlX2NyY190ICpwaXBlX2NyYykKPiA+ICAJICogT24gQ0hWIHNvbWV0aW1lcyB0 aGUgc2Vjb25kIENSQyBpcyBib25rZXJzIGFzIHdlbGwsIHNvIGRvbid0IHRydXN0Cj4gPiAgCSAq IHRoYXQgb25lIGVpdGhlci4KPiA+ICAJICovCj4gPiAtCWlndF9waXBlX2NyY19nZXRfY3Jjcyhw aXBlX2NyYywgMiwgJmNyY3MpOwo+ID4gLQlmcmVlKGNyY3MpOwo+ID4gKwl3aGlsZSAocmVhZF9v bmVfY3JjKHBpcGVfY3JjLCAmY3JjKSA9PSAwKQo+ID4gKwkJdXNsZWVwKDEwMDApOwo+ID4gKwl3 aGlsZSAocmVhZF9vbmVfY3JjKHBpcGVfY3JjLCAmY3JjKSA9PSAwKQo+ID4gKwkJdXNsZWVwKDEw MDApOwo+ID4gIH0KPiA+ICAKPiA+ICAvKioKPiA+IEBAIC00NzgsMzQgKzU0MCw2IEBAIHZvaWQg aWd0X3BpcGVfY3JjX3N0b3AoaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjKQo+ID4gIAlpZ3RfYXNz ZXJ0X2VxKHdyaXRlKHBpcGVfY3JjLT5jdGxfZmQsIGJ1Ziwgc3RybGVuKGJ1ZikpLCBzdHJsZW4o YnVmKSk7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyBib29sIHBpcGVfY3JjX2luaXRfZnJvbV9z dHJpbmcoaWd0X2NyY190ICpjcmMsIGNvbnN0IGNoYXIgKmxpbmUpCj4gPiAtewo+ID4gLQlpbnQg bjsKPiA+IC0KPiA+IC0JY3JjLT5uX3dvcmRzID0gNTsKPiA+IC0JbiA9IHNzY2FuZihsaW5lLCAi JTh1ICU4eCAlOHggJTh4ICU4eCAlOHgiLCAmY3JjLT5mcmFtZSwgJmNyYy0+Y3JjWzBdLAo+ID4g LQkJICAgJmNyYy0+Y3JjWzFdLCAmY3JjLT5jcmNbMl0sICZjcmMtPmNyY1szXSwgJmNyYy0+Y3Jj WzRdKTsKPiA+IC0JcmV0dXJuIG4gPT0gNjsKPiA+IC19Cj4gPiAtCj4gPiAtc3RhdGljIGJvb2wg cmVhZF9vbmVfY3JjKGlndF9waXBlX2NyY190ICpwaXBlX2NyYywgaWd0X2NyY190ICpvdXQpCj4g PiAtewo+ID4gLQlzc2l6ZV90IGJ5dGVzX3JlYWQ7Cj4gPiAtCWNoYXIgYnVmW3BpcGVfY3JjLT5i dWZmZXJfbGVuXTsKPiA+IC0KPiA+IC0JaWd0X3NldF90aW1lb3V0KDUsICJDUkMgcmVhZGluZyIp Owo+ID4gLQlieXRlc19yZWFkID0gcmVhZChwaXBlX2NyYy0+Y3JjX2ZkLCAmYnVmLCBwaXBlX2Ny Yy0+bGluZV9sZW4pOwo+ID4gLQlpZ3RfcmVzZXRfdGltZW91dCgpOwo+ID4gLQo+ID4gLQlpZ3Rf YXNzZXJ0X2VxKGJ5dGVzX3JlYWQsIHBpcGVfY3JjLT5saW5lX2xlbik7Cj4gPiAtCWJ1ZltieXRl c19yZWFkXSA9ICdcMCc7Cj4gPiAtCj4gPiAtCWlmICghcGlwZV9jcmNfaW5pdF9mcm9tX3N0cmlu ZyhvdXQsIGJ1ZikpCj4gPiAtCQlyZXR1cm4gZmFsc2U7Cj4gPiAtCj4gPiAtCXJldHVybiB0cnVl Owo+ID4gLX0KPiA+IC0KPiA+ICAvKioKPiA+ICAgKiBpZ3RfcGlwZV9jcmNfZ2V0X2NyY3M6Cj4g PiAgICogQHBpcGVfY3JjOiBwaXBlIENSQyBvYmplY3QKPiA+IEBAIC01MTksNyArNTUzLDcgQEAg c3RhdGljIGJvb2wgcmVhZF9vbmVfY3JjKGlndF9waXBlX2NyY190ICpwaXBlX2NyYywgaWd0X2Ny Y190ICpvdXQpCj4gPiAgICogQ2FsbGVycyBtdXN0IHN0YXJ0IGFuZCBzdG9wIHRoZSBjYXB0dXJp bmcgdGhlbXNlbHZlcyBieSBjYWxsaW5nCj4gPiAgICogaWd0X3BpcGVfY3JjX3N0YXJ0KCkgYW5k IGlndF9waXBlX2NyY19zdG9wKCkuCj4gCj4gUGxlYXNlIHVwZGF0ZSB0aGUgZ3RrZG9jIHdpdGgg dGhlIHJldHVybiB2YWx1ZSBzZW1hbnRpY3MuCgpkb25lCgo+IAo+ID4gICAqLwo+ID4gLXZvaWQK PiA+ICtpbnQKPiA+ICBpZ3RfcGlwZV9jcmNfZ2V0X2NyY3MoaWd0X3BpcGVfY3JjX3QgKnBpcGVf Y3JjLCBpbnQgbl9jcmNzLAo+ID4gIAkJICAgICAgaWd0X2NyY190ICoqb3V0X2NyY3MpCj4gPiAg ewo+ID4gQEAgLTUzMCwxNCArNTY0LDE5IEBAIGlndF9waXBlX2NyY19nZXRfY3JjcyhpZ3RfcGlw ZV9jcmNfdCAqcGlwZV9jcmMsIGludCBuX2NyY3MsCj4gPiAgCj4gPiAgCWRvIHsKPiA+ICAJCWln dF9jcmNfdCAqY3JjID0gJmNyY3Nbbl07Cj4gPiArCQlpbnQgcmV0Owo+ID4gIAo+ID4gLQkJaWYg KCFyZWFkX29uZV9jcmMocGlwZV9jcmMsIGNyYykpCj4gPiArCQlyZXQgPSByZWFkX29uZV9jcmMo cGlwZV9jcmMsIGNyYyk7Cj4gPiArCQlpZiAocmV0IDwgMCkKPiA+ICAJCQljb250aW51ZTsKPiA+ ICsJCWlmIChyZXQgPT0gMCkKPiA+ICsJCQlicmVhazsKPiA+ICAKPiA+ICAJCW4rKzsKPiA+ICAJ fSB3aGlsZSAobiA8IG5fY3Jjcyk7Cj4gPiAgCj4gPiAgCSpvdXRfY3JjcyA9IGNyY3M7Cj4gPiAr CXJldHVybiBuOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBjcmNfc2FuaXR5X2NoZWNr cyhpZ3RfY3JjX3QgKmNyYykKPiA+IEBAIC01NzYsNyArNjE1LDggQEAgdm9pZCBpZ3RfcGlwZV9j cmNfY29sbGVjdF9jcmMoaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjLCBpZ3RfY3JjX3QgKm91dF9j cmMpCj4gPiAgCWlndF9kZWJ1Z193YWl0X2Zvcl9rZXlwcmVzcygiY3JjIik7Cj4gPiAgCj4gPiAg CWlndF9waXBlX2NyY19zdGFydChwaXBlX2NyYyk7Cj4gPiAtCXJlYWRfb25lX2NyYyhwaXBlX2Ny Yywgb3V0X2NyYyk7Cj4gPiArCXdoaWxlIChyZWFkX29uZV9jcmMocGlwZV9jcmMsIG91dF9jcmMp ID09IDApCj4gPiArCQl1c2xlZXAoMTAwMCk7Cj4gPiAgCWlndF9waXBlX2NyY19zdG9wKHBpcGVf Y3JjKTsKPiA+ICAKPiA+ICAJY3JjX3Nhbml0eV9jaGVja3Mob3V0X2NyYyk7Cj4gPiBkaWZmIC0t Z2l0IGEvbGliL2lndF9kZWJ1Z2ZzLmggYi9saWIvaWd0X2RlYnVnZnMuaAo+ID4gaW5kZXggMjQw MThlYjM1NWU0Li42YzZlMjg1OGQ4ZjYgMTAwNjQ0Cj4gPiAtLS0gYS9saWIvaWd0X2RlYnVnZnMu aAo+ID4gKysrIGIvbGliL2lndF9kZWJ1Z2ZzLmgKPiA+IEBAIC0xMTUsMTAgKzExNSwxMiBAQCBj aGFyICppZ3RfY3JjX3RvX3N0cmluZyhpZ3RfY3JjX3QgKmNyYyk7Cj4gPiAgdm9pZCBpZ3RfcmVx dWlyZV9waXBlX2NyYyh2b2lkKTsKPiA+ICBpZ3RfcGlwZV9jcmNfdCAqCj4gPiAgaWd0X3BpcGVf Y3JjX25ldyhlbnVtIHBpcGUgcGlwZSwgZW51bSBpbnRlbF9waXBlX2NyY19zb3VyY2Ugc291cmNl KTsKPiA+ICtpZ3RfcGlwZV9jcmNfdCAqCj4gPiAraWd0X3BpcGVfY3JjX25ld19ub25ibG9jayhl bnVtIHBpcGUgcGlwZSwgZW51bSBpbnRlbF9waXBlX2NyY19zb3VyY2Ugc291cmNlKTsKPiA+ICB2 b2lkIGlndF9waXBlX2NyY19mcmVlKGlndF9waXBlX2NyY190ICpwaXBlX2NyYyk7Cj4gPiAgdm9p ZCBpZ3RfcGlwZV9jcmNfc3RhcnQoaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjKTsKPiA+ICB2b2lk IGlndF9waXBlX2NyY19zdG9wKGlndF9waXBlX2NyY190ICpwaXBlX2NyYyk7Cj4gPiAtdm9pZCBp Z3RfcGlwZV9jcmNfZ2V0X2NyY3MoaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjLCBpbnQgbl9jcmNz LAo+ID4gK2ludCBpZ3RfcGlwZV9jcmNfZ2V0X2NyY3MoaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3Jj LCBpbnQgbl9jcmNzLAo+ID4gIAkJCSAgIGlndF9jcmNfdCAqKm91dF9jcmNzKTsKPiAKPiBfX211 c3RfY2hlY2sgaGVyZSB0byBtYWtlIHN1cmUgY2FsbGVycyBjaGVjayB0aGF0IHRoZXkgaGF2ZSBl bm91Z2ggY3JjcyBvcgo+IGRvIHNvbWV0aGluZyBlbHNlIHNlbnNpYmxlLiBJIHRoaW5rIHdlIHNo b3VsZCBhbHNvIHVwZGF0ZQo+IGttc19waXBlX2NyY19iYXNpYy4KCmFuZCBkb25lCgo+IC1EYW5p ZWwKPiAKPiAKPiA+ICB2b2lkIGlndF9waXBlX2NyY19jb2xsZWN0X2NyYyhpZ3RfcGlwZV9jcmNf dCAqcGlwZV9jcmMsIGlndF9jcmNfdCAqb3V0X2NyYyk7Cj4gPiAgCj4gPiAtLSAKPiA+IDIuNC4x MAo+ID4gCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwg SW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAoKLS0gClZpbGxlIFN5cmrD pGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK