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 16:33:51 +0300 Message-ID: <1499348031.1379.28.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> <1499340712.1379.8.camel@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 315A16E5FD for ; Thu, 6 Jul 2017 13:33:56 +0000 (UTC) In-Reply-To: <1499340712.1379.8.camel@linux.intel.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 T24gVGh1LCAyMDE3LTA3LTA2IGF0IDE0OjMxICswMzAwLCBQYXVsIEtvY2lhbGtvd3NraSB3cm90 ZToKPiBIaSwKPiAKPiBPbiBXZWQsIDIwMTctMDctMDUgYXQgMTc6NDQgLTA0MDAsIEx5dWRlIFBh dWwgd3JvdGU6Cj4gPiBPbiBXZWQsIDIwMTctMDctMDUgYXQgMTE6MDQgKzAzMDAsIFBhdWwgS29j aWFsa293c2tpIHdyb3RlOgo+ID4gPiBXaGVuIGEgQ1JDIGNvbXBhcmlzb24gZXJyb3Igb2NjdXJz LCBpdCBpcyBxdWl0ZSB1c2VmdWwgdG8gZ2V0IGEKPiA+ID4gZHVtcAo+ID4gPiBvZiBib3RoIHRo ZSBmcmFtZSBvYnRhaW5lZCBmcm9tIHRoZSBjaGFtZWxpdW0gYW5kIHRoZSByZWZlcmVuY2UgaW4K PiA+ID4gb3JkZXIKPiA+ID4gdG8gY29tcGFyZSB0aGVtLgo+ID4gPiAKPiA+ID4gVGhpcyBpbXBs ZW1lbnRzIHRoZSBmcmFtZSBkdW1wLCB3aXRoIGEgY29uZmlndXJhYmxlIHBhdGggdGhhdAo+ID4g PiBlbmFibGVzCj4gPiA+IHRoZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLgo+ID4gPiAKPiA+ID4gU2ln bmVkLW9mZi1ieTogUGF1bCBLb2NpYWxrb3dza2kgPHBhdWwua29jaWFsa293c2tpQGxpbnV4Lmlu dGVsLmNvCj4gPiA+IG0+Cj4gPiA+IC0tLQo+ID4gPiAgbGliL2lndF9jaGFtZWxpdW0uYyB8ICAy MSArKysrKysrKysrKwo+ID4gPiAgbGliL2lndF9jaGFtZWxpdW0uaCB8ICAgMSArCj4gPiA+ICBs aWIvaWd0X2RlYnVnZnMuYyAgIHwgIDIwICsrKysrKysrKysKPiA+ID4gIGxpYi9pZ3RfZGVidWdm cy5oICAgfCAgIDEgKwo+ID4gPiAgdGVzdHMvY2hhbWVsaXVtLmMgICB8IDEwNCArKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gLQo+ID4gPiAtLS0tLS0tLS0tLS0K PiA+ID4gIDUgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0p Cj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9jaGFtZWxpdW0uYyBiL2xpYi9pZ3Rf Y2hhbWVsaXVtLmMKPiA+ID4gaW5kZXggZWY1MWVmNjguLjlhY2E2ODQyIDEwMDY0NAo+ID4gPiAt LS0gYS9saWIvaWd0X2NoYW1lbGl1bS5jCj4gPiA+ICsrKyBiL2xpYi9pZ3RfY2hhbWVsaXVtLmMK PiA+ID4gQEAgLTU3LDYgKzU3LDcgQEAKPiA+ID4gICAqIHxbPCEtLSBsYW5ndWFnZT0icGxhaW4i IC0tPgo+ID4gPiAgICoJW0NoYW1lbGl1bV0KPiA+ID4gICAqCVVSTD1odHRwOi8vY2hhbWVsZW9u Ojk5OTIgIyBUaGUgVVJMIHVzZWQgZm9yIGNvbm5lY3RpbmcKPiA+ID4gdG8KPiA+ID4gdGhlIENo YW1lbGl1bSdzIFJQQyBzZXJ2ZXIKPiA+ID4gKyAqCUZyYW1lRHVtcFBhdGg9L3RtcCAjIFRoZSBw YXRoIHRvIGR1bXAgZnJhbWVzIHRoYXQgZmFpbAo+ID4gPiBjb21wYXJpc29uIGNoZWNrcwo+ID4g Cj4gPiBXaGlsZSBubyBvbmUgZWxzZSByZWFsbHkgY2FyZXMgYWJvdXQgY3JlYXRpbmcgZnJhbWUg ZHVtcHMgeWV0LCBpdCdzCj4gPiBwb3NzaWJsZSBzb21lb25lIGVsc2UgbWF5IGluIHRoZSBmdXR1 cmUgaWYgd2UgZXZlciBlbmQgdXAgdGFraW5nCj4gPiBtb3JlCj4gPiBhZHZhbnRhZ2Ugb2YgYXV0 b21hdGVkIHRlc3Rpbmcgc3lzdGVtcyBsaWtlIHRoaXMuIFNvIEknZCBzdGljayB0aGlzCj4gPiBp bgo+ID4gdGhlIGdlbmVyaWMgbm9uLWNoYW1lbGl1bSBzcGVjaWZpYyBzZWN0aW9uIGluIHRoZSBj b25maWcgZmlsZQo+IAo+IFRoYXQgZGVmaW5pdGVseSBtYWtlcyBzZW5zZS4gQnkgdGhlIHdheSwg d2hhdCBhcHByb2FjaCB3b3VsZCB5b3UKPiByZWNvbW1lbmQgZm9yCj4gdGhpc2hhbmRsaW5nPyBN dXB1ZiB3YXMgc3VnZ2VzdGluZyB0byBoYXZlIGEgY29tbW9uIGNvbmZpZ3VyYXRpb24KPiBzdHJ1 Y3R1cmUKPiBpbnN0ZWFkIG9mIGRlY2xhcmluZyBlaXRoZXIgZ2xvYmFsIHZhcmlhYmxlcyBvciBz dGF0aWMgb25lcyB3aXRoCj4gZ2V0dGVycy9zZXR0ZXJzLiBUaGlzIGlzIHByb2JhYmx5IGJlY29t aW5nIG1vcmUgYW5kIG1vcmUgb2YgYQo+IG5lY2Vzc2l0eSBhcyB3ZQo+IGFkZCBtb3JlIGNvbW1v biBjb25maWcgb3B0aW9ucy4KPiAKPiBIb3dldmVyLCBJIHRoaW5rIHdlIHNob3VsZCBzdGlsbCBh bGxvdyBzcGVjaWZpYyBwYXJ0cyBvZiBJR1QgdG8gZG8gdGhlCj4gcGFyc2luZwo+IHRoZW1zZWx2 ZXMgKGVzcGVjaWFsbHkgaW4gdGhlIGNhc2Ugb2YgY2hhbWVsaXVtKSBzbyB0aGF0IHRoZSBjb21t b24KPiBjb25maWcKPiBzdHJ1Y3R1cmUgb25seSBoYXMgY29tbW9uIGZpZWxkcyAoYW5kIGRvZXMg bm90LCBmb3IgaW5zdGFuY2UsIGNvbnRhaW4KPiB0aGUKPiBjaGFtZWxpdW0gcG9ydCBjb25maWd1 cmF0aW9uKS4KPiAKPiA+ID4gICAqCj4gPiA+ICAgKgkjIFRoZSByZXN0IG9mIHRoZSBzZWN0aW9u cyBhcmUgdXNlZCBmb3IgZGVmaW5pbmcKPiA+ID4gY29ubmVjdG9yCj4gPiA+IG1hcHBpbmdzLgo+ ID4gPiAgICoJIyBUaGlzIGlzIHJlcXVpcmVkIHNvIGFueSB0ZXN0cyB1c2luZyB0aGUgQ2hhbWVs aXVtCj4gPiA+IGtub3cKPiA+ID4gd2hpY2ggY29ubmVjdG9yCj4gPiA+IEBAIC0xMTUsMTEgKzEx NiwyNiBAQCBzdHJ1Y3QgY2hhbWVsaXVtIHsKPiA+ID4gIAlzdHJ1Y3QgY2hhbWVsaXVtX2VkaWQg KmVkaWRzOwo+ID4gPiAgCXN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydHM7Cj4gPiA+ICAJaW50 IHBvcnRfY291bnQ7Cj4gPiA+ICsKPiA+ID4gKwljaGFyICpmcmFtZV9kdW1wX3BhdGg7Cj4gPiA+ ICB9Owo+ID4gPiAgCj4gPiA+ICBzdGF0aWMgc3RydWN0IGNoYW1lbGl1bSAqY2xlYW51cF9pbnN0 YW5jZTsKPiA+ID4gIAo+ID4gPiAgLyoqCj4gPiA+ICsgKiBjaGFtZWxpdW1fZ2V0X2ZyYW1lX2R1 bXBfcGF0aDoKPiA+ID4gKyAqIEBjaGFtZWxpdW06IFRoZSBDaGFtZWxpdW0gaW5zdGFuY2UgdG8g dXNlCj4gPiA+ICsgKgo+ID4gPiArICogUmV0cmlldmVzIHRoZSBwYXRoIHRvIGR1bXAgZnJhbWVz IHRvLgo+ID4gPiArICoKPiA+ID4gKyAqIFJldHVybnM6IGEgc3RyaW5nIHdpdGggdGhlIGZyYW1l IGR1bXAgcGF0aAo+ID4gPiArICovCj4gPiA+ICtjaGFyICpjaGFtZWxpdW1fZ2V0X2ZyYW1lX2R1 bXBfcGF0aChzdHJ1Y3QgY2hhbWVsaXVtICpjaGFtZWxpdW0pCj4gPiA+ICt7Cj4gPiA+ICsJcmV0 dXJuIGNoYW1lbGl1bS0+ZnJhbWVfZHVtcF9wYXRoOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICsv KioKPiA+ID4gICAqIGNoYW1lbGl1bV9nZXRfcG9ydHM6Cj4gPiA+ICAgKiBAY2hhbWVsaXVtOiBU aGUgQ2hhbWVsaXVtIGluc3RhbmNlIHRvIHVzZQo+ID4gPiAgICogQGNvdW50OiBXaGVyZSB0byBz dG9yZSB0aGUgbnVtYmVyIG9mIHBvcnRzCj4gPiA+IEBAIC0xMzM4LDYgKzEzNTQsMTEgQEAgc3Rh dGljIGJvb2wgY2hhbWVsaXVtX3JlYWRfY29uZmlnKHN0cnVjdAo+ID4gPiBjaGFtZWxpdW0gKmNo YW1lbGl1bSwgaW50IGRybV9mZCkKPiA+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gPiAgCX0KPiA+ ID4gIAo+ID4gPiArCWNoYW1lbGl1bS0+ZnJhbWVfZHVtcF9wYXRoID0KPiA+ID4gZ19rZXlfZmls ZV9nZXRfc3RyaW5nKGlndF9rZXlfZmlsZSwKPiA+ID4gKwkJCQkJCQkgICAiQ2hhbWUKPiA+ID4g bGl1Cj4gPiA+IG0iLAo+ID4gPiArCQkJCQkJCSAgICJGcmFtZQo+ID4gPiBEdW0KPiA+ID4gcFBh dGgiLAo+ID4gPiArCQkJCQkJCSAgICAmZXJybwo+ID4gPiByKTsKPiA+ID4gKwo+ID4gPiAgCXJl dHVybiBjaGFtZWxpdW1fcmVhZF9wb3J0X21hcHBpbmdzKGNoYW1lbGl1bSwgZHJtX2ZkKTsKPiA+ ID4gIH0KPiA+ID4gIAo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9jaGFtZWxpdW0uaCBiL2xp Yi9pZ3RfY2hhbWVsaXVtLmgKPiA+ID4gaW5kZXggOTA4ZTAzZDEuLmFhODgxOTcxIDEwMDY0NAo+ ID4gPiAtLS0gYS9saWIvaWd0X2NoYW1lbGl1bS5oCj4gPiA+ICsrKyBiL2xpYi9pZ3RfY2hhbWVs aXVtLmgKPiA+ID4gQEAgLTQyLDYgKzQyLDcgQEAgc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVt X2luaXQoaW50IGRybV9mZCk7Cj4gPiA+ICB2b2lkIGNoYW1lbGl1bV9kZWluaXQoc3RydWN0IGNo YW1lbGl1bSAqY2hhbWVsaXVtKTsKPiA+ID4gIHZvaWQgY2hhbWVsaXVtX3Jlc2V0KHN0cnVjdCBj aGFtZWxpdW0gKmNoYW1lbGl1bSk7Cj4gPiA+ICAKPiA+ID4gK2NoYXIgKmNoYW1lbGl1bV9nZXRf ZnJhbWVfZHVtcF9wYXRoKHN0cnVjdCBjaGFtZWxpdW0gKmNoYW1lbGl1bSk7Cj4gPiA+ICBzdHJ1 Y3QgY2hhbWVsaXVtX3BvcnQgKipjaGFtZWxpdW1fZ2V0X3BvcnRzKHN0cnVjdCBjaGFtZWxpdW0K PiA+ID4gKmNoYW1lbGl1bSwKPiA+ID4gIAkJCQkJICAgIGludCAqY291bnQpOwo+ID4gPiAgdW5z aWduZWQgaW50IGNoYW1lbGl1bV9wb3J0X2dldF90eXBlKGNvbnN0IHN0cnVjdCBjaGFtZWxpdW1f cG9ydAo+ID4gPiAqcG9ydCk7Cj4gPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2RlYnVnZnMuYyBi L2xpYi9pZ3RfZGVidWdmcy5jCj4gPiA+IGluZGV4IDgwZjI1YzYxLi5kY2I0ZTBhNyAxMDA2NDQK PiA+ID4gLS0tIGEvbGliL2lndF9kZWJ1Z2ZzLmMKPiA+ID4gKysrIGIvbGliL2lndF9kZWJ1Z2Zz LmMKPiA+ID4gQEAgLTI4Miw2ICsyODIsMjYgQEAgYm9vbCBpZ3RfZGVidWdmc19zZWFyY2goaW50 IGRldmljZSwgY29uc3QKPiA+ID4gY2hhcgo+ID4gPiAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKnN1 YnN0cmluZykKPiA+ID4gICAqLwo+ID4gPiAgCj4gPiA+ICAvKioKPiA+ID4gKyAqIGlndF9jaGVj a19jcmNfZXF1YWw6Cj4gPiA+ICsgKiBAYTogZmlyc3QgcGlwZSBDUkMgdmFsdWUKPiA+ID4gKyAq IEBiOiBzZWNvbmQgcGlwZSBDUkMgdmFsdWUKPiA+ID4gKyAqCj4gPiA+ICsgKiBDb21wYXJlcyB0 d28gQ1JDIHZhbHVlcyBhbmQgcmV0dXJuIHdoZXRoZXIgdGhleSBtYXRjaC4KPiA+ID4gKyAqCj4g PiA+ICsgKiBSZXR1cm5zOiBBIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBDUkMgdmFs dWVzIG1hdGNoCj4gPiA+ICsgKi8KPiA+ID4gK2Jvb2wgaWd0X2NoZWNrX2NyY19lcXVhbChjb25z dCBpZ3RfY3JjX3QgKmEsIGNvbnN0IGlndF9jcmNfdCAqYikKPiA+ID4gK3sKPiA+ID4gKwlpbnQg aTsKPiA+ID4gKwo+ID4gPiArCWZvciAoaSA9IDA7IGkgPCBhLT5uX3dvcmRzOyBpKyspCj4gPiA+ ICsJCWlmIChhLT5jcmNbaV0gIT0gYi0+Y3JjW2ldKQo+ID4gPiArCQkJcmV0dXJuIGZhbHNlOwo+ ID4gPiArCj4gPiA+ICsJcmV0dXJuIHRydWU7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+IAo+ID4gTWFr ZSB0aGlzIGEgc2VwYXJhdGUgcGF0Y2gsIGFuZCBpbnN0ZWFkIG9mIGhhdmluZyBhbm90aGVyIGZ1 bmN0aW9uCj4gPiBkbwo+ID4gdGhlIENSQyBjYWxjdWxhdGlvbnMganVzdCBoYXZlIHNvbWV0aGlu ZyBsaWtlIHRoaXM6Cj4gPiAKPiA+ICAqIHN0YXRpYyBpbnQgaWd0X2ZpbmRfY3JjX21pc21hdGNo KGNvbnN0IGlndF9jcmNfdCAqYSwgY29uc3QKPiA+IGlndF9jcmNfdAo+ID4gICAgKmIpOiByZXR1 cm5zIHRoZSBpbmRleCBvZiB0aGUgZmlyc3QgQ1JDIG1pc21hdGNoLCAwIGlmIG5vbmUgd2FzCj4g PiAgICBmb3VuZAo+ID4gICogYm9vbCBpZ3RfY2hlY2tfY3JjX2VxdWFsKCk6IHVzZXMgaWd0X2Zp bmRfY3JjX21pc21hdGNoKCkgdG8KPiA+IGZpZ3VyZQo+ID4gICAgb3V0IGlmIGFueXRoaW5nIG1p c21hdGNoZWQsIGFuZCByZXR1cm4gdHJ1ZSBpZiBzb21ldGhpbmcgZGlkIChhcwo+ID4gICAgd2Vs bCwgYWxzbyBzcGl0IG91dCBzb21lIGRlYnVnZ2luZyBpbmZvIG1lbnRpb25pbmcgdGhlcmUgd2Fz IGEKPiA+ICAgIG1pc21hdGNoKQo+ID4gICogdm9pZCBpZ3RfYXNzZXJ0X2NyY19lcXVhbCgpOiB1 c2VzIGlndF9maW5kX2NyY19taXNtYXRjaCgpIHRvCj4gPiBmaWd1cmUKPiA+ICAgIG91dCBpZiBh bnl0aGluZyBtaXNtYXRjaGVkLiBJZiB0aGUgYXNzZXJ0aW9uIGZhaWxzLCB1c2UKPiA+ICAgIGln dF9hc3NlcnRfZXEoKSBvbiB0aGUgbWlzbWF0Y2hlZCBjcmMgc28gd2Ugc3RpbGwgZ2V0IGEgdXNl ZnVsCj4gPiBlcnJvcgo+ID4gICAgbWVzc2FnZSBvbiBDUkMgZmFpbHVyZXMuCj4gPiAKPiA+IFRo ZXJlIGlzbid0IG11Y2ggY29kZSByZXF1aXJlZCB0byBhY3R1YWxseSBjb21wYXJlIENSQ3MsIGhv d2V2ZXIgSSdkCj4gPiBzdGlsbCBwcmVmZXIgb25seSBoYXZpbmcgb25lIGZ1bmN0aW9uIGRvaW5n IHRoZSBhY3R1YWwgY29tcGFyaXNvbgo+ID4gbG9naWMKPiA+IGhlcmUgc28gd2Ugb25seSBoYXZl IG9uZSBwaWVjZSBvZiBjb2RlIHRvIHVwZGF0ZSBpZiB3ZSBuZWVkIHRvIG1ha2UKPiA+IGNoYW5n ZXMgdG8gaXQgaW4gdGhlIGZ1dHVyZS4KPiA+IAo+ID4gTXVwdWYsIHlvdXIgb3BpbmlvbiBvbiB0 aGlzPyBeCj4gPiAKPiA+ID4gKy8qKgo+ID4gPiAgICogaWd0X2Fzc2VydF9jcmNfZXF1YWw6Cj4g PiA+ICAgKiBAYTogZmlyc3QgcGlwZSBDUkMgdmFsdWUKPiA+ID4gICAqIEBiOiBzZWNvbmQgcGlw ZSBDUkMgdmFsdWUKPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZGVidWdmcy5oIGIvbGliL2ln dF9kZWJ1Z2ZzLmgKPiA+ID4gaW5kZXggN2I4NDZhODMuLjI2OTVjYmRhIDEwMDY0NAo+ID4gPiAt LS0gYS9saWIvaWd0X2RlYnVnZnMuaAo+ID4gPiArKysgYi9saWIvaWd0X2RlYnVnZnMuaAo+ID4g PiBAQCAtMTEzLDYgKzExMyw3IEBAIGVudW0gaW50ZWxfcGlwZV9jcmNfc291cmNlIHsKPiA+ID4g ICAgICAgICAgSU5URUxfUElQRV9DUkNfU09VUkNFX01BWCwKPiA+ID4gIH07Cj4gPiA+ICAKPiA+ ID4gK2Jvb2wgaWd0X2NoZWNrX2NyY19lcXVhbChjb25zdCBpZ3RfY3JjX3QgKmEsIGNvbnN0IGln dF9jcmNfdCAqYik7Cj4gPiA+ICB2b2lkIGlndF9hc3NlcnRfY3JjX2VxdWFsKGNvbnN0IGlndF9j cmNfdCAqYSwgY29uc3QgaWd0X2NyY190Cj4gPiA+ICpiKTsKPiA+ID4gIGNoYXIgKmlndF9jcmNf dG9fc3RyaW5nKGlndF9jcmNfdCAqY3JjKTsKPiA+ID4gIAo+ID4gPiBkaWZmIC0tZ2l0IGEvdGVz dHMvY2hhbWVsaXVtLmMgYi90ZXN0cy9jaGFtZWxpdW0uYwo+ID4gPiBpbmRleCA1Y2Y4YjNhZi4u M2Q5NWMwNWMgMTAwNjQ0Cj4gPiA+IC0tLSBhL3Rlc3RzL2NoYW1lbGl1bS5jCj4gPiA+ICsrKyBi L3Rlc3RzL2NoYW1lbGl1bS5jCj4gPiA+IEBAIC0zODEsNyArMzgxLDcgQEAgZGlzYWJsZV9vdXRw dXQoZGF0YV90ICpkYXRhLAo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICBzdGF0aWMgdm9pZAo+ID4g PiAtdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVt X3BvcnQKPiA+ID4gKnBvcnQpCj4gPiA+ICt0ZXN0X2Rpc3BsYXlfY3JjKGRhdGFfdCAqZGF0YSwg c3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LCBpbnQKPiA+ID4gY291bnQpCj4gPiA+ICB7Cj4g PiA+ICAJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+ID4gPiAgCWlndF9vdXRwdXRfdCAqb3V0cHV0 Owo+ID4gPiBAQCAtMzkwLDkgKzM5MCwxNCBAQCB0ZXN0X2Rpc3BsYXlfY3JjX3NpbmdsZShkYXRh X3QgKmRhdGEsIHN0cnVjdAo+ID4gPiBjaGFtZWxpdW1fcG9ydCAqcG9ydCkKPiA+ID4gIAlpZ3Rf Y3JjX3QgKmV4cGVjdGVkX2NyYzsKPiA+ID4gIAlzdHJ1Y3QgY2hhbWVsaXVtX2ZiX2NyYyAqZmJf Y3JjOwo+ID4gPiAgCXN0cnVjdCBpZ3RfZmIgZmI7Cj4gPiA+ICsJc3RydWN0IGNoYW1lbGl1bV9m cmFtZV9kdW1wICpmcmFtZTsKPiA+ID4gIAlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gPiA+ICAJ ZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yOwo+ID4gPiAtCWludCBmYl9pZCwgaTsKPiA+ID4g KwlpbnQgZmJfaWQsIGksIGosIGNhcHR1cmVkX2ZyYW1lX2NvdW50Owo+ID4gPiArCWNvbnN0IGNo YXIgKmNvbm5lY3Rvcl9uYW1lOwo+ID4gPiArCWNoYXIgKmZyYW1lX2R1bXBfcGF0aDsKPiA+ID4g KwljaGFyIHBhdGhbUEFUSF9NQVhdOwo+ID4gPiArCWJvb2wgZXE7Cj4gPiA+ICAKPiA+ID4gIAly ZXNldF9zdGF0ZShkYXRhLCBwb3J0KTsKPiA+ID4gIAo+ID4gPiBAQCAtNDAxLDYgKzQwNiw5IEBA IHRlc3RfZGlzcGxheV9jcmNfc2luZ2xlKGRhdGFfdCAqZGF0YSwgc3RydWN0Cj4gPiA+IGNoYW1l bGl1bV9wb3J0ICpwb3J0KQo+ID4gPiAgCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90 eXBlKG91dHB1dCwKPiA+ID4gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Cj4gPiA+ICAJaWd0X2Fz c2VydChwcmltYXJ5KTsKPiA+ID4gIAo+ID4gPiArCWNvbm5lY3Rvcl9uYW1lID0ga21zdGVzdF9j b25uZWN0b3JfdHlwZV9zdHIoY29ubmVjdG9yLQo+ID4gPiA+IGNvbm5lY3Rvcl90eXBlKTsKPiA+ ID4gCj4gPiA+ICsJZnJhbWVfZHVtcF9wYXRoID0gY2hhbWVsaXVtX2dldF9mcmFtZV9kdW1wX3Bh dGgoZGF0YS0KPiA+ID4gPiBjaGFtZWxpdW0pOwo+ID4gPiAKPiA+ID4gKwo+ID4gPiAgCWZvciAo aSA9IDA7IGkgPCBjb25uZWN0b3ItPmNvdW50X21vZGVzOyBpKyspIHsKPiA+ID4gIAkJbW9kZSA9 ICZjb25uZWN0b3ItPm1vZGVzW2ldOwo+ID4gPiAgCQlmYl9pZCA9IGlndF9jcmVhdGVfY29sb3Jf cGF0dGVybl9mYihkYXRhLT5kcm1fZmQsCj4gPiA+IEBAIC00MTUsNzQgKzQyMyw0MCBAQCB0ZXN0 X2Rpc3BsYXlfY3JjX3NpbmdsZShkYXRhX3QgKmRhdGEsIHN0cnVjdAo+ID4gPiBjaGFtZWxpdW1f cG9ydCAqcG9ydCkKPiA+ID4gIAo+ID4gPiAgCQllbmFibGVfb3V0cHV0KGRhdGEsIHBvcnQsIG91 dHB1dCwgbW9kZSwgJmZiKTsKPiA+ID4gIAo+ID4gPiAtCQlpZ3RfZGVidWcoIlRlc3Rpbmcgc2lu Z2xlIENSQyBmZXRjaFxuIik7Cj4gPiA+IC0KPiA+ID4gLQkJY3JjID0gY2hhbWVsaXVtX2dldF9j cmNfZm9yX2FyZWEoZGF0YS0+Y2hhbWVsaXVtLAo+ID4gPiBwb3J0LAo+ID4gPiAtCQkJCQkJIDAs IDAsIDAsIDApOwo+ID4gPiAtCj4gPiA+IC0JCWV4cGVjdGVkX2NyYyA9Cj4gPiA+IGNoYW1lbGl1 bV9jYWxjdWxhdGVfZmJfY3JjX3Jlc3VsdChmYl9jcmMpOwo+ID4gPiAtCj4gPiA+IC0JCWlndF9h c3NlcnRfY3JjX2VxdWFsKGNyYywgZXhwZWN0ZWRfY3JjKTsKPiA+ID4gLQkJZnJlZShleHBlY3Rl ZF9jcmMpOwo+ID4gPiAtCQlmcmVlKGNyYyk7Cj4gPiA+IC0KPiA+ID4gLQkJZGlzYWJsZV9vdXRw dXQoZGF0YSwgcG9ydCwgb3V0cHV0KTsKPiA+ID4gLQkJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1f ZmQsICZmYik7Cj4gPiA+IC0JfQo+ID4gPiAtCj4gPiA+IC0JZHJtTW9kZUZyZWVDb25uZWN0b3Io Y29ubmVjdG9yKTsKPiA+ID4gLQlpZ3RfZGlzcGxheV9maW5pKCZkaXNwbGF5KTsKPiA+ID4gLX0K PiA+ID4gLQo+ID4gPiAtc3RhdGljIHZvaWQKPiA+ID4gLXRlc3RfZGlzcGxheV9jcmNfbXVsdGlw bGUoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQKPiA+ID4gKnBvcnQpCj4gPiA+ IC17Cj4gPiA+IC0JaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+ID4gPiAtCWlndF9vdXRwdXRfdCAq b3V0cHV0Owo+ID4gPiAtCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ID4gPiAtCWlndF9jcmNfdCAq Y3JjOwo+ID4gPiAtCWlndF9jcmNfdCAqZXhwZWN0ZWRfY3JjOwo+ID4gPiAtCXN0cnVjdCBjaGFt ZWxpdW1fZmJfY3JjICpmYl9jcmM7Cj4gPiA+IC0Jc3RydWN0IGlndF9mYiBmYjsKPiA+ID4gLQlk cm1Nb2RlTW9kZUluZm8gKm1vZGU7Cj4gPiA+IC0JZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9y Owo+ID4gPiAtCWludCBmYl9pZCwgaSwgaiwgY2FwdHVyZWRfZnJhbWVfY291bnQ7Cj4gPiA+ICsJ CWNoYW1lbGl1bV9jYXB0dXJlKGRhdGEtPmNoYW1lbGl1bSwgcG9ydCwgMCwgMCwgMCwKPiA+ID4g MCwKPiA+ID4gY291bnQpOwo+ID4gPiArCQljcmMgPSBjaGFtZWxpdW1fcmVhZF9jYXB0dXJlZF9j cmNzKGRhdGEtCj4gPiA+ID5jaGFtZWxpdW0sCj4gPiA+ICsJCQkJCQkgICAmY2FwdHVyZWRfZnJh bQo+ID4gPiBlX2MKPiA+ID4gb3VudCk7Cj4gPiA+ICAKPiA+ID4gLQlyZXNldF9zdGF0ZShkYXRh LCBwb3J0KTsKPiA+ID4gKwkJaWd0X2Fzc2VydChjYXB0dXJlZF9mcmFtZV9jb3VudCA9PSBjb3Vu dCk7Cj4gPiA+ICAKPiA+ID4gLQlvdXRwdXQgPSBwcmVwYXJlX291dHB1dChkYXRhLCAmZGlzcGxh eSwgcG9ydCk7Cj4gPiA+IC0JY29ubmVjdG9yID0gY2hhbWVsaXVtX3BvcnRfZ2V0X2Nvbm5lY3Rv cihkYXRhLT5jaGFtZWxpdW0sCj4gPiA+IHBvcnQsIGZhbHNlKTsKPiA+ID4gLQlwcmltYXJ5ID0g aWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsCj4gPiA+IERSTV9QTEFORV9UWVBFX1BS SU1BUlkpOwo+ID4gPiAtCWlndF9hc3NlcnQocHJpbWFyeSk7Cj4gPiA+ICsJCWlndF9kZWJ1Zygi Q2FwdHVyZWQgJWQgZnJhbWVzXG4iLAo+ID4gPiBjYXB0dXJlZF9mcmFtZV9jb3VudCk7Cj4gPiA+ ICAKPiA+ID4gLQlmb3IgKGkgPSAwOyBpIDwgY29ubmVjdG9yLT5jb3VudF9tb2RlczsgaSsrKSB7 Cj4gPiA+IC0JCW1vZGUgPSAmY29ubmVjdG9yLT5tb2Rlc1tpXTsKPiA+ID4gLQkJZmJfaWQgPSBp Z3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIoZGF0YS0+ZHJtX2ZkLAo+ID4gPiAtCQkJCQkJICAg IG1vZGUtCj4gPiA+ID5oZGlzcGxheSwKPiA+ID4gLQkJCQkJCSAgICBtb2RlLQo+ID4gPiA+dmRp c3BsYXksCj4gPiA+IC0JCQkJCQkgICAgRFJNX0ZPUk1BVF9YUgo+ID4gPiBHQjgKPiA+ID4gODg4 LAo+ID4gPiAtCQkJCQkJICAgIExPQ0FMX0RSTV9GT1IKPiA+ID4gTUFUCj4gPiA+IF9NT0RfTk9O RSwKPiA+ID4gLQkJCQkJCSAgICAwLCAwLCAwLAo+ID4gPiAmZmIpOwo+ID4gPiAtCQlpZ3RfYXNz ZXJ0KGZiX2lkID4gMCk7Cj4gPiA+ICsJCWV4cGVjdGVkX2NyYyA9Cj4gPiA+IGNoYW1lbGl1bV9j YWxjdWxhdGVfZmJfY3JjX3Jlc3VsdChmYl9jcmMpOwo+ID4gPiAgCj4gPiA+IC0JCWZiX2NyYyA9 IGNoYW1lbGl1bV9jYWxjdWxhdGVfZmJfY3JjX2xhdW5jaChkYXRhLQo+ID4gPiA+IGRybV9mZCwg JmZiKTsKPiA+ID4gCj4gPiA+ICsJCWZvciAoaiA9IDA7IGogPCBjYXB0dXJlZF9mcmFtZV9jb3Vu dDsgaisrKSB7Cj4gPiA+ICsJCQllcSA9IGlndF9jaGVja19jcmNfZXF1YWwoJmNyY1tqXSwKPiA+ ID4gZXhwZWN0ZWRfY3JjKTsKPiA+ID4gKwkJCWlmICghZXEgJiYgZnJhbWVfZHVtcF9wYXRoKSB7 Cj4gPiA+ICsJCQkJZnJhbWUgPQo+ID4gPiBjaGFtZWxpdW1fcmVhZF9jYXB0dXJlZF9mcmFtZShk YXRhLT5jaGFtZWxpdW0sCj4gPiA+ICsJCQkJCQkJCSAKPiA+ID4gICAgCj4gPiA+ICAgaik7Cj4g PiA+ICAKPiA+ID4gLQkJZW5hYmxlX291dHB1dChkYXRhLCBwb3J0LCBvdXRwdXQsIG1vZGUsICZm Yik7Cj4gPiA+ICsJCQkJaWd0X2RlYnVnKCJEdW1waW5nIHJlZmVyZW5jZSBhbmQKPiA+ID4gY2hh bWVsaXVtIGZyYW1lcyB0byAlcy4uLlxuIiwKPiA+ID4gKwkJCQkJICBmcmFtZV9kdW1wX3BhdGgp Owo+ID4gPiAgCj4gPiA+IC0JCS8qIFdlIHdhbnQgdG8ga2VlcCB0aGUgZGlzcGxheSBydW5uaW5n IGZvciBhCj4gPiA+IGxpdHRsZQo+ID4gPiBiaXQsIHNpbmNlCj4gPiA+IC0JCSAqIHRoZXJlJ3Mg YWx3YXlzIHRoZSBwb3RlbnRpYWwgdGhlIGRyaXZlciBpc24ndAo+ID4gPiBhYmxlIHRvIGtlZXAK PiA+ID4gLQkJICogdGhlIGRpc3BsYXkgcnVubmluZyBwcm9wZXJseSBmb3IgdmVyeSBsb25nCj4g PiA+IC0JCSAqLwo+ID4gPiAtCQljaGFtZWxpdW1fY2FwdHVyZShkYXRhLT5jaGFtZWxpdW0sIHBv cnQsIDAsIDAsIDAsCj4gPiA+IDAsCj4gPiA+IDMpOwo+ID4gPiAtCQljcmMgPSBjaGFtZWxpdW1f cmVhZF9jYXB0dXJlZF9jcmNzKGRhdGEtCj4gPiA+ID5jaGFtZWxpdW0sCj4gPiA+IC0JCQkJCQkg ICAmY2FwdHVyZWRfZnJhbQo+ID4gPiBlX2MKPiA+ID4gb3VudCk7Cj4gPiA+ICsJCQkJc25wcmlu dGYocGF0aCwgUEFUSF9NQVgsCj4gPiA+ICIlcy9mcmFtZS0KPiA+ID4gcmVmZXJlbmNlLSVzLnBu ZyIsCj4gPiA+ICsJCQkJCSBmcmFtZV9kdW1wX3BhdGgsCj4gPiA+IGNvbm5lY3Rvcl9uYW1lKTsK PiA+ID4gKwkJCQlpZ3Rfd3JpdGVfZmJfdG9fcG5nKGRhdGEtPmRybV9mZCwKPiA+ID4gJmZiLCBw YXRoKTsKPiA+ID4gIAo+ID4gPiAtCQlpZ3RfZGVidWcoIkNhcHR1cmVkICVkIGZyYW1lc1xuIiwK PiA+ID4gY2FwdHVyZWRfZnJhbWVfY291bnQpOwo+ID4gPiArCQkJCXNucHJpbnRmKHBhdGgsIFBB VEhfTUFYLAo+ID4gPiAiJXMvZnJhbWUtCj4gPiA+IGNoYW1lbGl1bS0lcy5wbmciLAo+ID4gPiAr CQkJCQkgZnJhbWVfZHVtcF9wYXRoLAo+ID4gPiBjb25uZWN0b3JfbmFtZSk7Cj4gPiA+ICsJCQkJ Y2hhbWVsaXVtX3dyaXRlX2ZyYW1lX3RvX3BuZyhkYXRhCj4gPiA+IC0KPiA+ID4gPiBjaGFtZWxp dW0sCj4gPiA+IAo+ID4gPiArCQkJCQkJCSAgICAgZnJhbQo+ID4gPiBlLAo+ID4gPiBwYXRoKTsK PiA+ID4gIAo+ID4gPiAtCQlleHBlY3RlZF9jcmMgPQo+ID4gPiBjaGFtZWxpdW1fY2FsY3VsYXRl X2ZiX2NyY19yZXN1bHQoZmJfY3JjKTsKPiA+ID4gKwkJCQljaGFtZWxpdW1fZGVzdHJveV9mcmFt ZV9kdW1wKGZyYW0KPiA+ID4gZSk7Cj4gPiA+ICsJCQl9Cj4gPiA+ICAKPiA+ID4gLQkJZm9yIChq ID0gMDsgaiA8IGNhcHR1cmVkX2ZyYW1lX2NvdW50OyBqKyspCj4gPiA+IC0JCQlpZ3RfYXNzZXJ0 X2NyY19lcXVhbCgmY3JjW2pdLAo+ID4gPiBleHBlY3RlZF9jcmMpOwo+ID4gPiArCQkJaWd0X2Zh aWxfb25fZighZXEsCj4gPiA+ICsJCQkJICAgICAgIkNoYW1lbGl1bSBmcmFtZSBDUkMKPiA+ID4g bWlzbWF0Y2gKPiA+ID4gd2l0aCByZWZlcmVuY2VcbiIpOwo+ID4gPiArCQl9Cj4gPiAKPiA+IFRo ZXJlJ3MgbG90cyBvZiBwb3RlbnRpYWwgaGVyZSBmb3IgY29weSBwYXN0YSB0byBmb3JtIGluIHRo ZSBmdXR1cmUsCj4gPiBzaW5jZSB0aGUgQVBJIGhlcmUgcHV0cyBhIGxvdCBvZiB3b3JrIG9uIHRo ZSBjYWxsZXIgdG8gc2V0IHRoaW5ncyB1cAo+ID4gZm9yIGZyYW1lIGR1bXBpbmcuIElNTywgaXQg d291bGQgYmUgd29ydGggaXQgdG8gdGVhY2ggdGhlIENSQwo+ID4gY2hlY2tpbmcKPiA+IGZ1bmN0 aW9ucyB0byBhdXRvbWF0aWNhbGx5IGRvIGZyYW1lIGR1bXBzIG9uIG1pc21hdGNoIGlmIHRoZSBD UkMKPiA+IHNvdXJjZQo+ID4gc3VwcG9ydHMgaXQuIFRoaXMgd2lsbCBzYXZlIHVzIGZyb20gaGF2 aW5nIHRvIGhhdmUgc2VwYXJhdGUgZnJhbWUKPiA+IGR1bXAKPiA+IEFQSXMgaW4gdGhlIGZ1dHVy ZSBpZiB3ZSBldmVyIGVuZCB1cCBhZGRpbmcgc3VwcG9ydCBmb3Igb3RoZXIga2luZHMKPiA+IG9m Cj4gPiBhdXRvbWF0ZWQgdGVzdCBlcXVpcG1lbnQuCj4gCj4gSSBkb24ndCB0aGluayBpdCBtYWtl cyBzbyBtdWNoIHNlbnNlIHRvIGRvIHRoaXMgaW4gdGhlIENSQyBjaGVja2luZwo+IGZ1bmN0aW9u cywKPiBqdXN0IGJlY2F1c2UgdGhleSBhcmUgc2VtYW50aWNhbGx5IGV4cGVjdGVkIHRvIGRvIG9u ZSB0aGluZzogQ1JDCj4gY2hlY2tpbmcsIGFuZAo+IGRvaW5nIGZyYW1lIGR1bXBzIHNlZW1zIGxp a2UgZ29pbmcgb3ZlcmJvYXJkLgo+IAo+IE9uIHRoZSBvdGhlciBoYW5kLCBJIGRvIGFncmVlIHRo YXQgdGhlIGR1bXBpbmcgYW5kIHNhdmluZyBwYXJ0IGNhbiBhbmQKPiBzaG91bGQgYmUKPiBtYWRl IGNvbW1vbiwgYnV0IG1heWJlIGFzIGEgc2VwYXJhdGUgZnVuY3Rpb24uIFNvIHRoYXQgd291bGQg YmUgdHdvCj4gY2FsbHMgZm9yCj4gdGhlIHRlc3RzOiBvbmUgdG8gY2hlY2sgdGhlIGNyYyBhbmQg b25lIHRvIGR1bXAgYW5kIHNhdmUgdGhlIGZyYW1lLgoKQSBzdHJvbmcgY2FzZSB0byBzdXBwb3J0 IHRoaXMgdmlzaW9uOiBpbiBWR0EgZnJhbWUgdGVzdGluZywgd2UgaGF2ZQphbHJlYWR5IGR1bXBl ZCB0aGUgZnJhbWUgYW5kIGRvbid0IGRvIENSQyBjaGVja2luZywgeWV0IHdlIGFsc28gbmVlZCB0 bwpzYXZlIHRoZSBmcmFtZXMgaWYgdGhlcmUgaXMgYSBtaXNtYXRjaC4KCkl0IHdvdWxkIGJlIGEg c2hhbWUgdGhhdCB0aGUgZHVtcGluZyBsb2dpYyBiZWNvbWVzIHBhcnQgb2YgdGhlIENSQwpmdW5j dGlvbnMsIHNpbmNlIHRoYXQgd291bGQgbWVhbiBkdXBsaWNhdGluZyB0aGF0IGxvZ2ljIGZvciBW R0EgdGVzdGluZwooYXMgaXQncyBjdXJyZW50bHkgZG9uZSBpbiB0aGUgdmVyc2lvbiBJIGp1c3Qg c2VudCBvdXQpLgoKSW4gc3BpdGUgb2YgdGhhdCwgSSB0aGluayBoYXZpbmcgYSBjb21tb24gZnVu Y3Rpb24sIGNhbGxlZCBmcm9tIHRoZSB0ZXN0Cml0c2VsZiBpcyBwcm9iYWJseSB0aGUgYmVzdCBh cHByb2FjaCBoZXJlLgoKPiBJIGhhdmUgYWxzbyBkdXBsaWNhdGVkIHRoYXQgbG9naWMgaW4gdXBj b21pbmcgVkdBIGZyYW1lIHRlc3RpbmcsIHNvCj4gdGhlcmUgaXMgZGVmaW5pdGVseSBhIG5lZWQg Zm9yIGxlc3MgZHVwbGljYXRpb24uCj4gCj4gPiBBcyB3ZWxsLCBJIGxpa2UgaG93IHlvdSByZW1v dmVkIHRoZSByZWR1bmRhbmN5IGJldHdlZW4KPiA+IHRlc3RfZGlzcGxheV9jcmNfc2luZ2xlKCkg YW5kIHRlc3RfZGlzcGxheV9jcmNfbXVsdGlwbGUoKS4gSG93ZXZlcgo+ID4gc2luY2UgdGhvc2Ug YXJlIHNvbWV3aGF0IHVucmVsYXRlZCBjaGFuZ2VzIHRvIHRoZSBjb2RlIHBhdGggZm9yCj4gPiB0 aGVzZQo+ID4gdGVzdHMgaXQgd291bGQgYmUgYmV0dGVyIHRvIGhhdmUgdGhhdCByZS1mYWN0b3Jp bmcgYXMgYSBzZXBhcmF0ZQo+ID4gcGF0Y2gKPiA+IHNvIGFzIHRvIG1ha2UgaXQgZWFzaWVyIGZv ciBhbnlvbmUgd2hvIG1pZ2h0IG5lZWQgdG8gYmlzZWN0IHRoaXMKPiA+IGNvZGUKPiA+IGluIHRo ZSBmdXR1cmUuCj4gCj4gRmFpciBlbm91Z2gsIGl0IGp1c3QgZmVsdCB3ZWlyZCB0byBjb21taXQg dHdvIGZ1bmN0aW9ucyB0aGF0IHdlcmUKPiBuZWFybHkgdGhlCj4gZXhhY3Qgc2FtZSwgYnV0IEkg aGF2ZSBubyBwcm9ibGVtIHdpdGggZG9pbmcgdGhpcyBpbiB0d28gc2VwYXJhdGUKPiBwYXRjaGVz Lgo+IAo+ID4gPiAgCj4gPiA+ICAJCWZyZWUoZXhwZWN0ZWRfY3JjKTsKPiA+ID4gIAkJZnJlZShj cmMpOwo+ID4gPiBAQCAtNjQ0LDEwICs2MTgsMTAgQEAgaWd0X21haW4KPiA+ID4gIAkJCQkJCQll ZGlkX2lkLAo+ID4gPiBhbHRfZWRpZF9pZCk7Cj4gPiA+ICAKPiA+ID4gIAkJY29ubmVjdG9yX3N1 YnRlc3QoImRwLWNyYy1zaW5nbGUiLCBEaXNwbGF5UG9ydCkKPiA+ID4gLQkJCXRlc3RfZGlzcGxh eV9jcmNfc2luZ2xlKCZkYXRhLCBwb3J0KTsKPiA+ID4gKwkJCXRlc3RfZGlzcGxheV9jcmMoJmRh dGEsIHBvcnQsIDEpOwo+ID4gPiAgCj4gPiA+ICAJCWNvbm5lY3Rvcl9zdWJ0ZXN0KCJkcC1jcmMt bXVsdGlwbGUiLCBEaXNwbGF5UG9ydCkKPiA+ID4gLQkJCXRlc3RfZGlzcGxheV9jcmNfbXVsdGlw bGUoJmRhdGEsIHBvcnQpOwo+ID4gPiArCQkJdGVzdF9kaXNwbGF5X2NyYygmZGF0YSwgcG9ydCwg Myk7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+ICAJaWd0X3N1YnRlc3RfZ3JvdXAgewo+ID4gPiBA QCAtNjk4LDEwICs2NzIsMTAgQEAgaWd0X21haW4KPiA+ID4gIAkJCQkJCQllZGlkX2lkLAo+ID4g PiBhbHRfZWRpZF9pZCk7Cj4gPiA+ICAKPiA+ID4gIAkJY29ubmVjdG9yX3N1YnRlc3QoImhkbWkt Y3JjLXNpbmdsZSIsIEhETUlBKQo+ID4gPiAtCQkJdGVzdF9kaXNwbGF5X2NyY19zaW5nbGUoJmRh dGEsIHBvcnQpOwo+ID4gPiArCQkJdGVzdF9kaXNwbGF5X2NyYygmZGF0YSwgcG9ydCwgMSk7Cj4g PiA+ICAKPiA+ID4gIAkJY29ubmVjdG9yX3N1YnRlc3QoImhkbWktY3JjLW11bHRpcGxlIiwgSERN SUEpCj4gPiA+IC0JCQl0ZXN0X2Rpc3BsYXlfY3JjX211bHRpcGxlKCZkYXRhLCBwb3J0KTsKPiA+ ID4gKwkJCXRlc3RfZGlzcGxheV9jcmMoJmRhdGEsIHBvcnQsIDMpOwo+ID4gPiAgCX0KPiA+ID4g IAo+ID4gPiAgCWlndF9zdWJ0ZXN0X2dyb3VwIHsKLS0gClBhdWwgS29jaWFsa293c2tpIDxwYXVs LmtvY2lhbGtvd3NraUBsaW51eC5pbnRlbC5jb20+CkludGVsIEZpbmxhbmQgT3kgLSBCSUMgMDM1 NzYwNi00IC0gV2VzdGVuZGlua2F0dSA3LCAwMjE2MCBFc3BvbywgRmlubGFuZApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK