From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: Re: [PATCH i-g-t v3 4/4] chamelium: Dump obtained and reference frames to png on crc error Date: Thu, 06 Jul 2017 14:31:52 +0300 Message-ID: <1499340712.1379.8.camel@linux.intel.com> References: <20170705080435.26789-1-paul.kocialkowski@linux.intel.com> <20170705080435.26789-4-paul.kocialkowski@linux.intel.com> <1499291055.20388.13.camel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 00CAE6E1B9 for ; Thu, 6 Jul 2017 11:31:57 +0000 (UTC) In-Reply-To: <1499291055.20388.13.camel@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lyude Paul , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org SGksCgpPbiBXZWQsIDIwMTctMDctMDUgYXQgMTc6NDQgLTA0MDAsIEx5dWRlIFBhdWwgd3JvdGU6 Cj4gT24gV2VkLCAyMDE3LTA3LTA1IGF0IDExOjA0ICswMzAwLCBQYXVsIEtvY2lhbGtvd3NraSB3 cm90ZToKPiA+IFdoZW4gYSBDUkMgY29tcGFyaXNvbiBlcnJvciBvY2N1cnMsIGl0IGlzIHF1aXRl IHVzZWZ1bCB0byBnZXQgYSBkdW1wCj4gPiBvZiBib3RoIHRoZSBmcmFtZSBvYnRhaW5lZCBmcm9t IHRoZSBjaGFtZWxpdW0gYW5kIHRoZSByZWZlcmVuY2UgaW4KPiA+IG9yZGVyCj4gPiB0byBjb21w YXJlIHRoZW0uCj4gPiAKPiA+IFRoaXMgaW1wbGVtZW50cyB0aGUgZnJhbWUgZHVtcCwgd2l0aCBh IGNvbmZpZ3VyYWJsZSBwYXRoIHRoYXQgZW5hYmxlcwo+ID4gdGhlIHVzZSBvZiB0aGlzIGZlYXR1 cmUuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lh bGtvd3NraUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBsaWIvaWd0X2NoYW1lbGl1bS5j IHwgIDIxICsrKysrKysrKysrCj4gPiAgbGliL2lndF9jaGFtZWxpdW0uaCB8ICAgMSArCj4gPiAg bGliL2lndF9kZWJ1Z2ZzLmMgICB8ICAyMCArKysrKysrKysrCj4gPiAgbGliL2lndF9kZWJ1Z2Zz LmggICB8ICAgMSArCj4gPiAgdGVzdHMvY2hhbWVsaXVtLmMgICB8IDEwNCArKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAtLS0tLS0tLS0tLS0KPiA+ICA1IGZpbGVz IGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZm IC0tZ2l0IGEvbGliL2lndF9jaGFtZWxpdW0uYyBiL2xpYi9pZ3RfY2hhbWVsaXVtLmMKPiA+IGlu ZGV4IGVmNTFlZjY4Li45YWNhNjg0MiAxMDA2NDQKPiA+IC0tLSBhL2xpYi9pZ3RfY2hhbWVsaXVt LmMKPiA+ICsrKyBiL2xpYi9pZ3RfY2hhbWVsaXVtLmMKPiA+IEBAIC01Nyw2ICs1Nyw3IEBACj4g PiAgICogfFs8IS0tIGxhbmd1YWdlPSJwbGFpbiIgLS0+Cj4gPiAgICoJW0NoYW1lbGl1bV0KPiA+ ICAgKglVUkw9aHR0cDovL2NoYW1lbGVvbjo5OTkyICMgVGhlIFVSTCB1c2VkIGZvciBjb25uZWN0 aW5nIHRvCj4gPiB0aGUgQ2hhbWVsaXVtJ3MgUlBDIHNlcnZlcgo+ID4gKyAqCUZyYW1lRHVtcFBh dGg9L3RtcCAjIFRoZSBwYXRoIHRvIGR1bXAgZnJhbWVzIHRoYXQgZmFpbAo+ID4gY29tcGFyaXNv biBjaGVja3MKPiAKPiBXaGlsZSBubyBvbmUgZWxzZSByZWFsbHkgY2FyZXMgYWJvdXQgY3JlYXRp bmcgZnJhbWUgZHVtcHMgeWV0LCBpdCdzCj4gcG9zc2libGUgc29tZW9uZSBlbHNlIG1heSBpbiB0 aGUgZnV0dXJlIGlmIHdlIGV2ZXIgZW5kIHVwIHRha2luZyBtb3JlCj4gYWR2YW50YWdlIG9mIGF1 dG9tYXRlZCB0ZXN0aW5nIHN5c3RlbXMgbGlrZSB0aGlzLiBTbyBJJ2Qgc3RpY2sgdGhpcyBpbgo+ IHRoZSBnZW5lcmljIG5vbi1jaGFtZWxpdW0gc3BlY2lmaWMgc2VjdGlvbiBpbiB0aGUgY29uZmln IGZpbGUKClRoYXQgZGVmaW5pdGVseSBtYWtlcyBzZW5zZS4gQnkgdGhlIHdheSwgd2hhdCBhcHBy b2FjaCB3b3VsZCB5b3UgcmVjb21tZW5kIGZvcgp0aGlzaGFuZGxpbmc/IE11cHVmIHdhcyBzdWdn ZXN0aW5nIHRvIGhhdmUgYSBjb21tb24gY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUKaW5zdGVhZCBv ZiBkZWNsYXJpbmcgZWl0aGVyIGdsb2JhbCB2YXJpYWJsZXMgb3Igc3RhdGljIG9uZXMgd2l0aApn ZXR0ZXJzL3NldHRlcnMuIFRoaXMgaXMgcHJvYmFibHkgYmVjb21pbmcgbW9yZSBhbmQgbW9yZSBv ZiBhIG5lY2Vzc2l0eSBhcyB3ZQphZGQgbW9yZSBjb21tb24gY29uZmlnIG9wdGlvbnMuCgpIb3dl dmVyLCBJIHRoaW5rIHdlIHNob3VsZCBzdGlsbCBhbGxvdyBzcGVjaWZpYyBwYXJ0cyBvZiBJR1Qg dG8gZG8gdGhlIHBhcnNpbmcKdGhlbXNlbHZlcyAoZXNwZWNpYWxseSBpbiB0aGUgY2FzZSBvZiBj aGFtZWxpdW0pIHNvIHRoYXQgdGhlIGNvbW1vbiBjb25maWcKc3RydWN0dXJlIG9ubHkgaGFzIGNv bW1vbiBmaWVsZHMgKGFuZCBkb2VzIG5vdCwgZm9yIGluc3RhbmNlLCBjb250YWluIHRoZQpjaGFt ZWxpdW0gcG9ydCBjb25maWd1cmF0aW9uKS4KCj4gPiAgICoKPiA+ICAgKgkjIFRoZSByZXN0IG9m IHRoZSBzZWN0aW9ucyBhcmUgdXNlZCBmb3IgZGVmaW5pbmcgY29ubmVjdG9yCj4gPiBtYXBwaW5n cy4KPiA+ICAgKgkjIFRoaXMgaXMgcmVxdWlyZWQgc28gYW55IHRlc3RzIHVzaW5nIHRoZSBDaGFt ZWxpdW0ga25vdwo+ID4gd2hpY2ggY29ubmVjdG9yCj4gPiBAQCAtMTE1LDExICsxMTYsMjYgQEAg c3RydWN0IGNoYW1lbGl1bSB7Cj4gPiAgCXN0cnVjdCBjaGFtZWxpdW1fZWRpZCAqZWRpZHM7Cj4g PiAgCXN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydHM7Cj4gPiAgCWludCBwb3J0X2NvdW50Owo+ ID4gKwo+ID4gKwljaGFyICpmcmFtZV9kdW1wX3BhdGg7Cj4gPiAgfTsKPiA+ICAKPiA+ICBzdGF0 aWMgc3RydWN0IGNoYW1lbGl1bSAqY2xlYW51cF9pbnN0YW5jZTsKPiA+ICAKPiA+ICAvKioKPiA+ ICsgKiBjaGFtZWxpdW1fZ2V0X2ZyYW1lX2R1bXBfcGF0aDoKPiA+ICsgKiBAY2hhbWVsaXVtOiBU aGUgQ2hhbWVsaXVtIGluc3RhbmNlIHRvIHVzZQo+ID4gKyAqCj4gPiArICogUmV0cmlldmVzIHRo ZSBwYXRoIHRvIGR1bXAgZnJhbWVzIHRvLgo+ID4gKyAqCj4gPiArICogUmV0dXJuczogYSBzdHJp bmcgd2l0aCB0aGUgZnJhbWUgZHVtcCBwYXRoCj4gPiArICovCj4gPiArY2hhciAqY2hhbWVsaXVt X2dldF9mcmFtZV9kdW1wX3BhdGgoc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtKQo+ID4gK3sK PiA+ICsJcmV0dXJuIGNoYW1lbGl1bS0+ZnJhbWVfZHVtcF9wYXRoOwo+ID4gK30KPiA+ICsKPiA+ ICsvKioKPiA+ICAgKiBjaGFtZWxpdW1fZ2V0X3BvcnRzOgo+ID4gICAqIEBjaGFtZWxpdW06IFRo ZSBDaGFtZWxpdW0gaW5zdGFuY2UgdG8gdXNlCj4gPiAgICogQGNvdW50OiBXaGVyZSB0byBzdG9y ZSB0aGUgbnVtYmVyIG9mIHBvcnRzCj4gPiBAQCAtMTMzOCw2ICsxMzU0LDExIEBAIHN0YXRpYyBi b29sIGNoYW1lbGl1bV9yZWFkX2NvbmZpZyhzdHJ1Y3QKPiA+IGNoYW1lbGl1bSAqY2hhbWVsaXVt LCBpbnQgZHJtX2ZkKQo+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gIAl9Cj4gPiAgCj4gPiArCWNo YW1lbGl1bS0+ZnJhbWVfZHVtcF9wYXRoID0KPiA+IGdfa2V5X2ZpbGVfZ2V0X3N0cmluZyhpZ3Rf a2V5X2ZpbGUsCj4gPiArCQkJCQkJCSAgICJDaGFtZWxpdQo+ID4gbSIsCj4gPiArCQkJCQkJCSAg ICJGcmFtZUR1bQo+ID4gcFBhdGgiLAo+ID4gKwkJCQkJCQkgICAgJmVycm9yKTsKPiA+ICsKPiA+ ICAJcmV0dXJuIGNoYW1lbGl1bV9yZWFkX3BvcnRfbWFwcGluZ3MoY2hhbWVsaXVtLCBkcm1fZmQp Owo+ID4gIH0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2NoYW1lbGl1bS5oIGIvbGli L2lndF9jaGFtZWxpdW0uaAo+ID4gaW5kZXggOTA4ZTAzZDEuLmFhODgxOTcxIDEwMDY0NAo+ID4g LS0tIGEvbGliL2lndF9jaGFtZWxpdW0uaAo+ID4gKysrIGIvbGliL2lndF9jaGFtZWxpdW0uaAo+ ID4gQEAgLTQyLDYgKzQyLDcgQEAgc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtX2luaXQoaW50 IGRybV9mZCk7Cj4gPiAgdm9pZCBjaGFtZWxpdW1fZGVpbml0KHN0cnVjdCBjaGFtZWxpdW0gKmNo YW1lbGl1bSk7Cj4gPiAgdm9pZCBjaGFtZWxpdW1fcmVzZXQoc3RydWN0IGNoYW1lbGl1bSAqY2hh bWVsaXVtKTsKPiA+ICAKPiA+ICtjaGFyICpjaGFtZWxpdW1fZ2V0X2ZyYW1lX2R1bXBfcGF0aChz dHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0pOwo+ID4gIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAq KmNoYW1lbGl1bV9nZXRfcG9ydHMoc3RydWN0IGNoYW1lbGl1bQo+ID4gKmNoYW1lbGl1bSwKPiA+ ICAJCQkJCSAgICBpbnQgKmNvdW50KTsKPiA+ICB1bnNpZ25lZCBpbnQgY2hhbWVsaXVtX3BvcnRf Z2V0X3R5cGUoY29uc3Qgc3RydWN0IGNoYW1lbGl1bV9wb3J0Cj4gPiAqcG9ydCk7Cj4gPiBkaWZm IC0tZ2l0IGEvbGliL2lndF9kZWJ1Z2ZzLmMgYi9saWIvaWd0X2RlYnVnZnMuYwo+ID4gaW5kZXgg ODBmMjVjNjEuLmRjYjRlMGE3IDEwMDY0NAo+ID4gLS0tIGEvbGliL2lndF9kZWJ1Z2ZzLmMKPiA+ ICsrKyBiL2xpYi9pZ3RfZGVidWdmcy5jCj4gPiBAQCAtMjgyLDYgKzI4MiwyNiBAQCBib29sIGln dF9kZWJ1Z2ZzX3NlYXJjaChpbnQgZGV2aWNlLCBjb25zdCBjaGFyCj4gPiAqZmlsZW5hbWUsIGNv bnN0IGNoYXIgKnN1YnN0cmluZykKPiA+ICAgKi8KPiA+ICAKPiA+ICAvKioKPiA+ICsgKiBpZ3Rf Y2hlY2tfY3JjX2VxdWFsOgo+ID4gKyAqIEBhOiBmaXJzdCBwaXBlIENSQyB2YWx1ZQo+ID4gKyAq IEBiOiBzZWNvbmQgcGlwZSBDUkMgdmFsdWUKPiA+ICsgKgo+ID4gKyAqIENvbXBhcmVzIHR3byBD UkMgdmFsdWVzIGFuZCByZXR1cm4gd2hldGhlciB0aGV5IG1hdGNoLgo+ID4gKyAqCj4gPiArICog UmV0dXJuczogQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgQ1JDIHZhbHVlcyBtYXRj aAo+ID4gKyAqLwo+ID4gK2Jvb2wgaWd0X2NoZWNrX2NyY19lcXVhbChjb25zdCBpZ3RfY3JjX3Qg KmEsIGNvbnN0IGlndF9jcmNfdCAqYikKPiA+ICt7Cj4gPiArCWludCBpOwo+ID4gKwo+ID4gKwlm b3IgKGkgPSAwOyBpIDwgYS0+bl93b3JkczsgaSsrKQo+ID4gKwkJaWYgKGEtPmNyY1tpXSAhPSBi LT5jcmNbaV0pCj4gPiArCQkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gKwlyZXR1cm4gdHJ1ZTsK PiA+ICt9Cj4gPiArCj4gCj4gTWFrZSB0aGlzIGEgc2VwYXJhdGUgcGF0Y2gsIGFuZCBpbnN0ZWFk IG9mIGhhdmluZyBhbm90aGVyIGZ1bmN0aW9uIGRvCj4gdGhlIENSQyBjYWxjdWxhdGlvbnMganVz dCBoYXZlIHNvbWV0aGluZyBsaWtlIHRoaXM6Cj4gCj4gICogc3RhdGljIGludCBpZ3RfZmluZF9j cmNfbWlzbWF0Y2goY29uc3QgaWd0X2NyY190ICphLCBjb25zdCBpZ3RfY3JjX3QKPiAgICAqYik6 IHJldHVybnMgdGhlIGluZGV4IG9mIHRoZSBmaXJzdCBDUkMgbWlzbWF0Y2gsIDAgaWYgbm9uZSB3 YXMKPiAgICBmb3VuZAo+ICAqIGJvb2wgaWd0X2NoZWNrX2NyY19lcXVhbCgpOiB1c2VzIGlndF9m aW5kX2NyY19taXNtYXRjaCgpIHRvIGZpZ3VyZQo+ICAgIG91dCBpZiBhbnl0aGluZyBtaXNtYXRj aGVkLCBhbmQgcmV0dXJuIHRydWUgaWYgc29tZXRoaW5nIGRpZCAoYXMKPiAgICB3ZWxsLCBhbHNv IHNwaXQgb3V0IHNvbWUgZGVidWdnaW5nIGluZm8gbWVudGlvbmluZyB0aGVyZSB3YXMgYQo+ICAg IG1pc21hdGNoKQo+ICAqIHZvaWQgaWd0X2Fzc2VydF9jcmNfZXF1YWwoKTogdXNlcyBpZ3RfZmlu ZF9jcmNfbWlzbWF0Y2goKSB0byBmaWd1cmUKPiAgICBvdXQgaWYgYW55dGhpbmcgbWlzbWF0Y2hl ZC4gSWYgdGhlIGFzc2VydGlvbiBmYWlscywgdXNlCj4gICAgaWd0X2Fzc2VydF9lcSgpIG9uIHRo ZSBtaXNtYXRjaGVkIGNyYyBzbyB3ZSBzdGlsbCBnZXQgYSB1c2VmdWwgZXJyb3IKPiAgICBtZXNz YWdlIG9uIENSQyBmYWlsdXJlcy4KPiAKPiBUaGVyZSBpc24ndCBtdWNoIGNvZGUgcmVxdWlyZWQg dG8gYWN0dWFsbHkgY29tcGFyZSBDUkNzLCBob3dldmVyIEknZAo+IHN0aWxsIHByZWZlciBvbmx5 IGhhdmluZyBvbmUgZnVuY3Rpb24gZG9pbmcgdGhlIGFjdHVhbCBjb21wYXJpc29uIGxvZ2ljCj4g aGVyZSBzbyB3ZSBvbmx5IGhhdmUgb25lIHBpZWNlIG9mIGNvZGUgdG8gdXBkYXRlIGlmIHdlIG5l ZWQgdG8gbWFrZQo+IGNoYW5nZXMgdG8gaXQgaW4gdGhlIGZ1dHVyZS4KPiAKPiBNdXB1ZiwgeW91 ciBvcGluaW9uIG9uIHRoaXM/IF4KPiAKPiA+ICsvKioKPiA+ICAgKiBpZ3RfYXNzZXJ0X2NyY19l cXVhbDoKPiA+ICAgKiBAYTogZmlyc3QgcGlwZSBDUkMgdmFsdWUKPiA+ICAgKiBAYjogc2Vjb25k IHBpcGUgQ1JDIHZhbHVlCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9kZWJ1Z2ZzLmggYi9saWIv aWd0X2RlYnVnZnMuaAo+ID4gaW5kZXggN2I4NDZhODMuLjI2OTVjYmRhIDEwMDY0NAo+ID4gLS0t IGEvbGliL2lndF9kZWJ1Z2ZzLmgKPiA+ICsrKyBiL2xpYi9pZ3RfZGVidWdmcy5oCj4gPiBAQCAt MTEzLDYgKzExMyw3IEBAIGVudW0gaW50ZWxfcGlwZV9jcmNfc291cmNlIHsKPiA+ICAgICAgICAg IElOVEVMX1BJUEVfQ1JDX1NPVVJDRV9NQVgsCj4gPiAgfTsKPiA+ICAKPiA+ICtib29sIGlndF9j aGVja19jcmNfZXF1YWwoY29uc3QgaWd0X2NyY190ICphLCBjb25zdCBpZ3RfY3JjX3QgKmIpOwo+ ID4gIHZvaWQgaWd0X2Fzc2VydF9jcmNfZXF1YWwoY29uc3QgaWd0X2NyY190ICphLCBjb25zdCBp Z3RfY3JjX3QgKmIpOwo+ID4gIGNoYXIgKmlndF9jcmNfdG9fc3RyaW5nKGlndF9jcmNfdCAqY3Jj KTsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS90ZXN0cy9jaGFtZWxpdW0uYyBiL3Rlc3RzL2NoYW1l bGl1bS5jCj4gPiBpbmRleCA1Y2Y4YjNhZi4uM2Q5NWMwNWMgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0 cy9jaGFtZWxpdW0uYwo+ID4gKysrIGIvdGVzdHMvY2hhbWVsaXVtLmMKPiA+IEBAIC0zODEsNyAr MzgxLDcgQEAgZGlzYWJsZV9vdXRwdXQoZGF0YV90ICpkYXRhLAo+ID4gIH0KPiA+ICAKPiA+ICBz dGF0aWMgdm9pZAo+ID4gLXRlc3RfZGlzcGxheV9jcmNfc2luZ2xlKGRhdGFfdCAqZGF0YSwgc3Ry dWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0KQo+ID4gK3Rlc3RfZGlzcGxheV9jcmMoZGF0YV90ICpk YXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsIGludAo+ID4gY291bnQpCj4gPiAgewo+ ID4gIAlpZ3RfZGlzcGxheV90IGRpc3BsYXk7Cj4gPiAgCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ ID4gQEAgLTM5MCw5ICszOTAsMTQgQEAgdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoZGF0YV90ICpk YXRhLCBzdHJ1Y3QKPiA+IGNoYW1lbGl1bV9wb3J0ICpwb3J0KQo+ID4gIAlpZ3RfY3JjX3QgKmV4 cGVjdGVkX2NyYzsKPiA+ICAJc3RydWN0IGNoYW1lbGl1bV9mYl9jcmMgKmZiX2NyYzsKPiA+ICAJ c3RydWN0IGlndF9mYiBmYjsKPiA+ICsJc3RydWN0IGNoYW1lbGl1bV9mcmFtZV9kdW1wICpmcmFt ZTsKPiA+ICAJZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ID4gIAlkcm1Nb2RlQ29ubmVjdG9yICpj b25uZWN0b3I7Cj4gPiAtCWludCBmYl9pZCwgaTsKPiA+ICsJaW50IGZiX2lkLCBpLCBqLCBjYXB0 dXJlZF9mcmFtZV9jb3VudDsKPiA+ICsJY29uc3QgY2hhciAqY29ubmVjdG9yX25hbWU7Cj4gPiAr CWNoYXIgKmZyYW1lX2R1bXBfcGF0aDsKPiA+ICsJY2hhciBwYXRoW1BBVEhfTUFYXTsKPiA+ICsJ Ym9vbCBlcTsKPiA+ICAKPiA+ICAJcmVzZXRfc3RhdGUoZGF0YSwgcG9ydCk7Cj4gPiAgCj4gPiBA QCAtNDAxLDYgKzQwNiw5IEBAIHRlc3RfZGlzcGxheV9jcmNfc2luZ2xlKGRhdGFfdCAqZGF0YSwg c3RydWN0Cj4gPiBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKPiA+ICAJcHJpbWFyeSA9IGlndF9vdXRw dXRfZ2V0X3BsYW5lX3R5cGUob3V0cHV0LAo+ID4gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4g PiAgCWlndF9hc3NlcnQocHJpbWFyeSk7Cj4gPiAgCj4gPiArCWNvbm5lY3Rvcl9uYW1lID0ga21z dGVzdF9jb25uZWN0b3JfdHlwZV9zdHIoY29ubmVjdG9yLQo+ID4gPiBjb25uZWN0b3JfdHlwZSk7 Cj4gPiAKPiA+ICsJZnJhbWVfZHVtcF9wYXRoID0gY2hhbWVsaXVtX2dldF9mcmFtZV9kdW1wX3Bh dGgoZGF0YS0KPiA+ID4gY2hhbWVsaXVtKTsKPiA+IAo+ID4gKwo+ID4gIAlmb3IgKGkgPSAwOyBp IDwgY29ubmVjdG9yLT5jb3VudF9tb2RlczsgaSsrKSB7Cj4gPiAgCQltb2RlID0gJmNvbm5lY3Rv ci0+bW9kZXNbaV07Cj4gPiAgCQlmYl9pZCA9IGlndF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihk YXRhLT5kcm1fZmQsCj4gPiBAQCAtNDE1LDc0ICs0MjMsNDAgQEAgdGVzdF9kaXNwbGF5X2NyY19z aW5nbGUoZGF0YV90ICpkYXRhLCBzdHJ1Y3QKPiA+IGNoYW1lbGl1bV9wb3J0ICpwb3J0KQo+ID4g IAo+ID4gIAkJZW5hYmxlX291dHB1dChkYXRhLCBwb3J0LCBvdXRwdXQsIG1vZGUsICZmYik7Cj4g PiAgCj4gPiAtCQlpZ3RfZGVidWcoIlRlc3Rpbmcgc2luZ2xlIENSQyBmZXRjaFxuIik7Cj4gPiAt Cj4gPiAtCQljcmMgPSBjaGFtZWxpdW1fZ2V0X2NyY19mb3JfYXJlYShkYXRhLT5jaGFtZWxpdW0s Cj4gPiBwb3J0LAo+ID4gLQkJCQkJCSAwLCAwLCAwLCAwKTsKPiA+IC0KPiA+IC0JCWV4cGVjdGVk X2NyYyA9Cj4gPiBjaGFtZWxpdW1fY2FsY3VsYXRlX2ZiX2NyY19yZXN1bHQoZmJfY3JjKTsKPiA+ IC0KPiA+IC0JCWlndF9hc3NlcnRfY3JjX2VxdWFsKGNyYywgZXhwZWN0ZWRfY3JjKTsKPiA+IC0J CWZyZWUoZXhwZWN0ZWRfY3JjKTsKPiA+IC0JCWZyZWUoY3JjKTsKPiA+IC0KPiA+IC0JCWRpc2Fi bGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91dHB1dCk7Cj4gPiAtCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEt PmRybV9mZCwgJmZiKTsKPiA+IC0JfQo+ID4gLQo+ID4gLQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihj b25uZWN0b3IpOwo+ID4gLQlpZ3RfZGlzcGxheV9maW5pKCZkaXNwbGF5KTsKPiA+IC19Cj4gPiAt Cj4gPiAtc3RhdGljIHZvaWQKPiA+IC10ZXN0X2Rpc3BsYXlfY3JjX211bHRpcGxlKGRhdGFfdCAq ZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0KQo+ID4gLXsKPiA+IC0JaWd0X2Rpc3Bs YXlfdCBkaXNwbGF5Owo+ID4gLQlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPiA+IC0JaWd0X3BsYW5l X3QgKnByaW1hcnk7Cj4gPiAtCWlndF9jcmNfdCAqY3JjOwo+ID4gLQlpZ3RfY3JjX3QgKmV4cGVj dGVkX2NyYzsKPiA+IC0Jc3RydWN0IGNoYW1lbGl1bV9mYl9jcmMgKmZiX2NyYzsKPiA+IC0Jc3Ry dWN0IGlndF9mYiBmYjsKPiA+IC0JZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ID4gLQlkcm1Nb2Rl Q29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiAtCWludCBmYl9pZCwgaSwgaiwgY2FwdHVyZWRfZnJh bWVfY291bnQ7Cj4gPiArCQljaGFtZWxpdW1fY2FwdHVyZShkYXRhLT5jaGFtZWxpdW0sIHBvcnQs IDAsIDAsIDAsIDAsCj4gPiBjb3VudCk7Cj4gPiArCQljcmMgPSBjaGFtZWxpdW1fcmVhZF9jYXB0 dXJlZF9jcmNzKGRhdGEtPmNoYW1lbGl1bSwKPiA+ICsJCQkJCQkgICAmY2FwdHVyZWRfZnJhbWVf Ywo+ID4gb3VudCk7Cj4gPiAgCj4gPiAtCXJlc2V0X3N0YXRlKGRhdGEsIHBvcnQpOwo+ID4gKwkJ aWd0X2Fzc2VydChjYXB0dXJlZF9mcmFtZV9jb3VudCA9PSBjb3VudCk7Cj4gPiAgCj4gPiAtCW91 dHB1dCA9IHByZXBhcmVfb3V0cHV0KGRhdGEsICZkaXNwbGF5LCBwb3J0KTsKPiA+IC0JY29ubmVj dG9yID0gY2hhbWVsaXVtX3BvcnRfZ2V0X2Nvbm5lY3RvcihkYXRhLT5jaGFtZWxpdW0sCj4gPiBw b3J0LCBmYWxzZSk7Cj4gPiAtCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91 dHB1dCwKPiA+IERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4gLQlpZ3RfYXNzZXJ0KHByaW1h cnkpOwo+ID4gKwkJaWd0X2RlYnVnKCJDYXB0dXJlZCAlZCBmcmFtZXNcbiIsCj4gPiBjYXB0dXJl ZF9mcmFtZV9jb3VudCk7Cj4gPiAgCj4gPiAtCWZvciAoaSA9IDA7IGkgPCBjb25uZWN0b3ItPmNv dW50X21vZGVzOyBpKyspIHsKPiA+IC0JCW1vZGUgPSAmY29ubmVjdG9yLT5tb2Rlc1tpXTsKPiA+ IC0JCWZiX2lkID0gaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGRhdGEtPmRybV9mZCwKPiA+ IC0JCQkJCQkgICAgbW9kZS0+aGRpc3BsYXksCj4gPiAtCQkJCQkJICAgIG1vZGUtPnZkaXNwbGF5 LAo+ID4gLQkJCQkJCSAgICBEUk1fRk9STUFUX1hSR0I4Cj4gPiA4ODgsCj4gPiAtCQkJCQkJICAg IExPQ0FMX0RSTV9GT1JNQVQKPiA+IF9NT0RfTk9ORSwKPiA+IC0JCQkJCQkgICAgMCwgMCwgMCwg JmZiKTsKPiA+IC0JCWlndF9hc3NlcnQoZmJfaWQgPiAwKTsKPiA+ICsJCWV4cGVjdGVkX2NyYyA9 Cj4gPiBjaGFtZWxpdW1fY2FsY3VsYXRlX2ZiX2NyY19yZXN1bHQoZmJfY3JjKTsKPiA+ICAKPiA+ IC0JCWZiX2NyYyA9IGNoYW1lbGl1bV9jYWxjdWxhdGVfZmJfY3JjX2xhdW5jaChkYXRhLQo+ID4g PiBkcm1fZmQsICZmYik7Cj4gPiAKPiA+ICsJCWZvciAoaiA9IDA7IGogPCBjYXB0dXJlZF9mcmFt ZV9jb3VudDsgaisrKSB7Cj4gPiArCQkJZXEgPSBpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjcmNbal0s Cj4gPiBleHBlY3RlZF9jcmMpOwo+ID4gKwkJCWlmICghZXEgJiYgZnJhbWVfZHVtcF9wYXRoKSB7 Cj4gPiArCQkJCWZyYW1lID0KPiA+IGNoYW1lbGl1bV9yZWFkX2NhcHR1cmVkX2ZyYW1lKGRhdGEt PmNoYW1lbGl1bSwKPiA+ICsJCQkJCQkJCSAgICAKPiA+ICAgaik7Cj4gPiAgCj4gPiAtCQllbmFi bGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91dHB1dCwgbW9kZSwgJmZiKTsKPiA+ICsJCQkJaWd0X2Rl YnVnKCJEdW1waW5nIHJlZmVyZW5jZSBhbmQKPiA+IGNoYW1lbGl1bSBmcmFtZXMgdG8gJXMuLi5c biIsCj4gPiArCQkJCQkgIGZyYW1lX2R1bXBfcGF0aCk7Cj4gPiAgCj4gPiAtCQkvKiBXZSB3YW50 IHRvIGtlZXAgdGhlIGRpc3BsYXkgcnVubmluZyBmb3IgYSBsaXR0bGUKPiA+IGJpdCwgc2luY2UK PiA+IC0JCSAqIHRoZXJlJ3MgYWx3YXlzIHRoZSBwb3RlbnRpYWwgdGhlIGRyaXZlciBpc24ndAo+ ID4gYWJsZSB0byBrZWVwCj4gPiAtCQkgKiB0aGUgZGlzcGxheSBydW5uaW5nIHByb3Blcmx5IGZv ciB2ZXJ5IGxvbmcKPiA+IC0JCSAqLwo+ID4gLQkJY2hhbWVsaXVtX2NhcHR1cmUoZGF0YS0+Y2hh bWVsaXVtLCBwb3J0LCAwLCAwLCAwLCAwLAo+ID4gMyk7Cj4gPiAtCQljcmMgPSBjaGFtZWxpdW1f cmVhZF9jYXB0dXJlZF9jcmNzKGRhdGEtPmNoYW1lbGl1bSwKPiA+IC0JCQkJCQkgICAmY2FwdHVy ZWRfZnJhbWVfYwo+ID4gb3VudCk7Cj4gPiArCQkJCXNucHJpbnRmKHBhdGgsIFBBVEhfTUFYLCAi JXMvZnJhbWUtCj4gPiByZWZlcmVuY2UtJXMucG5nIiwKPiA+ICsJCQkJCSBmcmFtZV9kdW1wX3Bh dGgsCj4gPiBjb25uZWN0b3JfbmFtZSk7Cj4gPiArCQkJCWlndF93cml0ZV9mYl90b19wbmcoZGF0 YS0+ZHJtX2ZkLAo+ID4gJmZiLCBwYXRoKTsKPiA+ICAKPiA+IC0JCWlndF9kZWJ1ZygiQ2FwdHVy ZWQgJWQgZnJhbWVzXG4iLAo+ID4gY2FwdHVyZWRfZnJhbWVfY291bnQpOwo+ID4gKwkJCQlzbnBy aW50ZihwYXRoLCBQQVRIX01BWCwgIiVzL2ZyYW1lLQo+ID4gY2hhbWVsaXVtLSVzLnBuZyIsCj4g PiArCQkJCQkgZnJhbWVfZHVtcF9wYXRoLAo+ID4gY29ubmVjdG9yX25hbWUpOwo+ID4gKwkJCQlj aGFtZWxpdW1fd3JpdGVfZnJhbWVfdG9fcG5nKGRhdGEtCj4gPiA+IGNoYW1lbGl1bSwKPiA+IAo+ ID4gKwkJCQkJCQkgICAgIGZyYW1lLAo+ID4gcGF0aCk7Cj4gPiAgCj4gPiAtCQlleHBlY3RlZF9j cmMgPQo+ID4gY2hhbWVsaXVtX2NhbGN1bGF0ZV9mYl9jcmNfcmVzdWx0KGZiX2NyYyk7Cj4gPiAr CQkJCWNoYW1lbGl1bV9kZXN0cm95X2ZyYW1lX2R1bXAoZnJhbWUpOwo+ID4gKwkJCX0KPiA+ICAK PiA+IC0JCWZvciAoaiA9IDA7IGogPCBjYXB0dXJlZF9mcmFtZV9jb3VudDsgaisrKQo+ID4gLQkJ CWlndF9hc3NlcnRfY3JjX2VxdWFsKCZjcmNbal0sIGV4cGVjdGVkX2NyYyk7Cj4gPiArCQkJaWd0 X2ZhaWxfb25fZighZXEsCj4gPiArCQkJCSAgICAgICJDaGFtZWxpdW0gZnJhbWUgQ1JDIG1pc21h dGNoCj4gPiB3aXRoIHJlZmVyZW5jZVxuIik7Cj4gPiArCQl9Cj4gCj4gVGhlcmUncyBsb3RzIG9m IHBvdGVudGlhbCBoZXJlIGZvciBjb3B5IHBhc3RhIHRvIGZvcm0gaW4gdGhlIGZ1dHVyZSwKPiBz aW5jZSB0aGUgQVBJIGhlcmUgcHV0cyBhIGxvdCBvZiB3b3JrIG9uIHRoZSBjYWxsZXIgdG8gc2V0 IHRoaW5ncyB1cAo+IGZvciBmcmFtZSBkdW1waW5nLiBJTU8sIGl0IHdvdWxkIGJlIHdvcnRoIGl0 IHRvIHRlYWNoIHRoZSBDUkMgY2hlY2tpbmcKPiBmdW5jdGlvbnMgdG8gYXV0b21hdGljYWxseSBk byBmcmFtZSBkdW1wcyBvbiBtaXNtYXRjaCBpZiB0aGUgQ1JDIHNvdXJjZQo+IHN1cHBvcnRzIGl0 LiBUaGlzIHdpbGwgc2F2ZSB1cyBmcm9tIGhhdmluZyB0byBoYXZlIHNlcGFyYXRlIGZyYW1lIGR1 bXAKPiBBUElzIGluIHRoZSBmdXR1cmUgaWYgd2UgZXZlciBlbmQgdXAgYWRkaW5nIHN1cHBvcnQg Zm9yIG90aGVyIGtpbmRzIG9mCj4gYXV0b21hdGVkIHRlc3QgZXF1aXBtZW50LgoKSSBkb24ndCB0 aGluayBpdCBtYWtlcyBzbyBtdWNoIHNlbnNlIHRvIGRvIHRoaXMgaW4gdGhlIENSQyBjaGVja2lu ZyBmdW5jdGlvbnMsCmp1c3QgYmVjYXVzZSB0aGV5IGFyZSBzZW1hbnRpY2FsbHkgZXhwZWN0ZWQg dG8gZG8gb25lIHRoaW5nOiBDUkMgY2hlY2tpbmcsIGFuZApkb2luZyBmcmFtZSBkdW1wcyBzZWVt cyBsaWtlIGdvaW5nIG92ZXJib2FyZC4KCk9uIHRoZSBvdGhlciBoYW5kLCBJIGRvIGFncmVlIHRo YXQgdGhlIGR1bXBpbmcgYW5kIHNhdmluZyBwYXJ0IGNhbiBhbmQgc2hvdWxkIGJlCm1hZGUgY29t bW9uLCBidXQgbWF5YmUgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbi4gU28gdGhhdCB3b3VsZCBiZSB0 d28gY2FsbHMgZm9yCnRoZSB0ZXN0czogb25lIHRvIGNoZWNrIHRoZSBjcmMgYW5kIG9uZSB0byBk dW1wIGFuZCBzYXZlIHRoZSBmcmFtZS4KCkkgaGF2ZSBhbHNvIGR1cGxpY2F0ZWQgdGhhdCBsb2dp YyBpbiB1cGNvbWluZyBWR0EgZnJhbWUgdGVzdGluZywgc28gdGhlcmUgaXMKZGVmaW5pdGVseSBh IG5lZWQgZm9yIGxlc3MgZHVwbGljYXRpb24uCgo+IEFzIHdlbGwsIEkgbGlrZSBob3cgeW91IHJl bW92ZWQgdGhlIHJlZHVuZGFuY3kgYmV0d2Vlbgo+IHRlc3RfZGlzcGxheV9jcmNfc2luZ2xlKCkg YW5kIHRlc3RfZGlzcGxheV9jcmNfbXVsdGlwbGUoKS4gSG93ZXZlcgo+IHNpbmNlIHRob3NlIGFy ZSBzb21ld2hhdCB1bnJlbGF0ZWQgY2hhbmdlcyB0byB0aGUgY29kZSBwYXRoIGZvciB0aGVzZQo+ IHRlc3RzIGl0IHdvdWxkIGJlIGJldHRlciB0byBoYXZlIHRoYXQgcmUtZmFjdG9yaW5nIGFzIGEg c2VwYXJhdGUgcGF0Y2gKPiBzbyBhcyB0byBtYWtlIGl0IGVhc2llciBmb3IgYW55b25lIHdobyBt aWdodCBuZWVkIHRvIGJpc2VjdCB0aGlzIGNvZGUKPiBpbiB0aGUgZnV0dXJlLgoKRmFpciBlbm91 Z2gsIGl0IGp1c3QgZmVsdCB3ZWlyZCB0byBjb21taXQgdHdvIGZ1bmN0aW9ucyB0aGF0IHdlcmUg bmVhcmx5IHRoZQpleGFjdCBzYW1lLCBidXQgSSBoYXZlIG5vIHByb2JsZW0gd2l0aCBkb2luZyB0 aGlzIGluIHR3byBzZXBhcmF0ZSBwYXRjaGVzLgoKPiA+ICAKPiA+ICAJCWZyZWUoZXhwZWN0ZWRf Y3JjKTsKPiA+ICAJCWZyZWUoY3JjKTsKPiA+IEBAIC02NDQsMTAgKzYxOCwxMCBAQCBpZ3RfbWFp bgo+ID4gIAkJCQkJCQllZGlkX2lkLAo+ID4gYWx0X2VkaWRfaWQpOwo+ID4gIAo+ID4gIAkJY29u bmVjdG9yX3N1YnRlc3QoImRwLWNyYy1zaW5nbGUiLCBEaXNwbGF5UG9ydCkKPiA+IC0JCQl0ZXN0 X2Rpc3BsYXlfY3JjX3NpbmdsZSgmZGF0YSwgcG9ydCk7Cj4gPiArCQkJdGVzdF9kaXNwbGF5X2Ny YygmZGF0YSwgcG9ydCwgMSk7Cj4gPiAgCj4gPiAgCQljb25uZWN0b3Jfc3VidGVzdCgiZHAtY3Jj LW11bHRpcGxlIiwgRGlzcGxheVBvcnQpCj4gPiAtCQkJdGVzdF9kaXNwbGF5X2NyY19tdWx0aXBs ZSgmZGF0YSwgcG9ydCk7Cj4gPiArCQkJdGVzdF9kaXNwbGF5X2NyYygmZGF0YSwgcG9ydCwgMyk7 Cj4gPiAgCX0KPiA+ICAKPiA+ICAJaWd0X3N1YnRlc3RfZ3JvdXAgewo+ID4gQEAgLTY5OCwxMCAr NjcyLDEwIEBAIGlndF9tYWluCj4gPiAgCQkJCQkJCWVkaWRfaWQsCj4gPiBhbHRfZWRpZF9pZCk7 Cj4gPiAgCj4gPiAgCQljb25uZWN0b3Jfc3VidGVzdCgiaGRtaS1jcmMtc2luZ2xlIiwgSERNSUEp Cj4gPiAtCQkJdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoJmRhdGEsIHBvcnQpOwo+ID4gKwkJCXRl c3RfZGlzcGxheV9jcmMoJmRhdGEsIHBvcnQsIDEpOwo+ID4gIAo+ID4gIAkJY29ubmVjdG9yX3N1 YnRlc3QoImhkbWktY3JjLW11bHRpcGxlIiwgSERNSUEpCj4gPiAtCQkJdGVzdF9kaXNwbGF5X2Ny Y19tdWx0aXBsZSgmZGF0YSwgcG9ydCk7Cj4gPiArCQkJdGVzdF9kaXNwbGF5X2NyYygmZGF0YSwg cG9ydCwgMyk7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJaWd0X3N1YnRlc3RfZ3JvdXAgewotLSAKUGF1 bCBLb2NpYWxrb3dza2kgPHBhdWwua29jaWFsa293c2tpQGxpbnV4LmludGVsLmNvbT4KSW50ZWwg RmlubGFuZCBPeSAtIEJJQyAwMzU3NjA2LTQgLSBXZXN0ZW5kaW5rYXR1IDcsIDAyMTYwIEVzcG9v LCBGSW5sYW5kCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=