From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 18 Jul 2019 12:15:02 +0100 From: "Liviu.Dudau@arm.com" Message-ID: <20190718111502.GC5942@e110455-lin.cambridge.arm.com> References: <296f249138cb4f55466294b07a7aba25801ff146.1560374714.git.rodrigosiqueiramelo@gmail.com> <7eca4f4def5f732d1f9269e2c75eca8da62a78b2.camel@intel.com> <20190712024435.bed52lodxms6rz7y@smtp.gmail.com> <20190716152207.GC13094@e110455-lin.cambridge.arm.com> <20190718094926.GB5942@e110455-lin.cambridge.arm.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Subject: Re: [igt-dev] [PATCH V6 i-g-t 2/6] kms_writeback: Add initial writeback tests 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: "Ser, Simon" Cc: "Latvala, Petri" , "intel-gfx@lists.freedesktop.org" , "igt-dev@lists.freedesktop.org" , "daniel@ffwll.ch" , "nd@arm.com" , "Brian.Starkey@arm.com" List-ID: T24gVGh1LCBKdWwgMTgsIDIwMTkgYXQgMDk6NTY6MzlBTSArMDAwMCwgU2VyLCBTaW1vbiB3cm90 ZToKPiBPbiBUaHUsIDIwMTktMDctMTggYXQgMTA6NDkgKzAxMDAsIExpdml1LkR1ZGF1QGFybS5j b20gd3JvdGU6Cj4gPiBPbiBXZWQsIEp1bCAxNywgMjAxOSBhdCAxMTo0NjozOUFNICswMDAwLCBT ZXIsIFNpbW9uIHdyb3RlOgo+ID4gPiBUaGFua3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9uIQo+ID4g PiAKPiA+ID4gT24gVHVlLCAyMDE5LTA3LTE2IGF0IDE2OjIyICswMTAwLCBMaXZpdS5EdWRhdUBh cm0uY29tIHdyb3RlOgo+ID4gPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBpbnZhbGlkX291dF9mZW5j ZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X2ZiX3QgKnZhbGlkX2ZiLCBpZ3RfZmJfdCAqaW52 YWxpZF9mYikKPiA+ID4gPiA+ID4gPiArewo+ID4gPiA+ID4gPiA+ICsJaW50IGksIHJldDsKPiA+ ID4gPiA+ID4gPiArCWludDMyX3Qgb3V0X2ZlbmNlOwo+ID4gPiA+ID4gPiA+ICsJc3RydWN0IHsK PiA+ID4gPiA+ID4gPiArCQl1aW50MzJfdCBmYl9pZDsKPiA+ID4gPiA+ID4gPiArCQlib29sIHB0 cl92YWxpZDsKPiA+ID4gPiA+ID4gPiArCQlpbnQzMl90ICpvdXRfZmVuY2VfcHRyOwo+ID4gPiA+ ID4gPiA+ICsJfSBpbnZhbGlkX3Rlc3RzW10gPSB7Cj4gPiA+ID4gPiA+ID4gKwkJewo+ID4gPiA+ ID4gPiA+ICsJCQkvKiBObyBvdXRwdXQgYnVmZmVyLCBidXQgdGhlIFdSSVRFQkFDS19PVVRfRkVO Q0VfUFRSIHNldC4gKi8KPiA+ID4gPiA+ID4gPiArCQkJLmZiX2lkID0gMCwKPiA+ID4gPiA+ID4g PiArCQkJLnB0cl92YWxpZCA9IHRydWUsCj4gPiA+ID4gPiA+ID4gKwkJCS5vdXRfZmVuY2VfcHRy ID0gJm91dF9mZW5jZSwKPiA+ID4gPiA+ID4gPiArCQl9LAo+ID4gPiA+ID4gPiA+ICsJCXsKPiA+ ID4gPiA+ID4gPiArCQkJLyogSW52YWxpZCBvdXRwdXQgYnVmZmVyLiAqLwo+ID4gPiA+ID4gPiA+ ICsJCQkuZmJfaWQgPSBpbnZhbGlkX2ZiLT5mYl9pZCwKPiA+ID4gPiA+ID4gPiArCQkJLnB0cl92 YWxpZCA9IHRydWUsCj4gPiA+ID4gPiA+ID4gKwkJCS5vdXRfZmVuY2VfcHRyID0gJm91dF9mZW5j ZSwKPiA+ID4gPiA+ID4gPiArCQl9LAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gVGhpcyBkb2Vz bid0IGJlbG9uZyBpbiB0aGlzIGZ1bmN0aW9uIChpbnZhbGlkX291dF9mZW5jZSksIHNpbmNlIHRo aXMKPiA+ID4gPiA+ID4gY2hlY2tzIGFuIGludmFsaWQgZnJhbWVidWZmZXIsIG5vdCBhbiBpbnZh bGlkIGZlbmNlLiBXZSBzaG91bGQgcHJvYmFibHkKPiA+ID4gPiA+ID4gbW92ZSBpdCB0byB3cml0 ZWJhY2tfZmJfaWQgKGFuZCByZW5hbWUgdGhhdCBmdW5jdGlvbiB0byB0ZXN0X2ZiPykuCj4gPiA+ ID4gCj4gPiA+ID4gSXQgdHJpZXMgdG8gdGVzdCB0aGF0IHlvdSBjYW4ndCB0cmljayB0aGUgZHJp dmVyIHRvIGRvIGFueSB3b3JrIG9uIGEgZmVuY2UgaWYKPiA+ID4gPiB0aGUgZnJhbWVidWZmZXIg aXMgaW52YWxpZCwgc28gdGhlIHNldCBvZiB0ZXN0cyB0cmllczogbm8gZmIgd2l0aCB2YWxpZCBm ZW5jZSwKPiA+ID4gPiBpbnZhbGlkIGZiIHdpdGggdmFsaWQgZmVuY2UsIHZhbGlkIGZiIGJ1dCBp bnZhbGlkIGZlbmNlIGFuZCBhc3N1bWVzIHRoYXQgbm8KPiA+ID4gPiBmYiB3aXRoIGludmFsaWQg ZmVuY2UgaXMgYSBOT1AgYW55d2F5Lgo+ID4gPiAKPiA+ID4gWWVhaCwgdGhhdCBtYWtlcyBzZW5z ZSwgaXQncyBqdXN0IGNvbmZ1c2luZyB0byBwdXQgaXQgaW4gYSBmdW5jdGlvbgo+ID4gPiBuYW1l ZCBpbnZhbGlkX291dF9mZW5jZS4gSGVyZSB0aGUgb3V0IGZlbmNlIGlzIHZhbGlkLCBidXQgdGhl IG91dHB1dAo+ID4gPiBidWZmZXIgaXNuJ3QsIHNvIGl0IHNob3VsZCBwcm9iYWJseSBiZSBtb3Zl ZCBhd2F5IChvciB0aGlzIGZ1bmN0aW9uCj4gPiA+IHNob3VsZCBiZSByZW5hbWVkKS4KPiA+IAo+ ID4gRG9uJ3Qgd2FudCB0byBvZmZlbmQgb3IgYW55dGhpbmcsIGJ1dCB0aGlzIGRvZXMgc291bmQg bGlrZSBiaWtlc2hlZGRpbmcuIFlvdQo+ID4gaGF2ZSBhIGNvdXBsZSBvZiBwYXJhbWV0ZXJzIHRo YXQgeW91IHdhbnQgdG8gaGF2ZSBhIHRlc3QgZm9yIGJlY2F1c2UgdGhleSBhcmUKPiA+IGxpbmtl ZCB0b2dldGhlciAob3V0cHV0IGZyYW1lYnVmZmVyIGFuZCBmZW5jZSkgYW5kIHlvdSBnbyB0aHJv dWdoIHRoZQo+ID4gY29tYmluYXRpb24gb2YgcG9zc2libGUgYmFkIG9wdGlvbnMgaW4gdGhlIHRl c3QuIE5vdCBzdXJlIHdoYXQgbmFtZSB3ZSBjYW4gdXNlCj4gPiBmb3IgdGhlIGZ1bmN0aW9uLCBv dGhlciB0aGFuIG1heWJlICd0ZXN0X2ludmFsaWRfcGFyYW1ldGVycyc/IEdpdmVuIHRoYXQgMi8z Cj4gPiB0ZXN0cyBhbiBpbnZhbGlkIG91dCBmZW5jZSwgdGhlIG5hbWUgd2FzIHRob3VnaHQgdG8g YmUgcmVsZXZhbnQuCj4gPiAKPiA+IEhhdmluZyBpbnZhbGlkIG91dCBidWZmZXIgdGVzdCBzZXBh cmF0ZSBpbnRvIGl0cyBvd24gdGVzdCBicmluZ3Mgbm8gYmVuZWZpdHMsIElNSE8uCj4gCj4gV2Vs bCwgdGhlIGlzc3VlIGlzIHRoYXQgSSd2ZSBiZWVuIGNvbmZ1c2VkIHdoZW4gcmV2aWV3aW5nIHRo ZSBwYXRjaAo+IHNlcmllcy4gSSBoYWQgdHJvdWJsZSB1bmRlcnN0YW5kaW5nIHdoYXQgdGhlIHRl c3QgZG9lcyBhbmQgd2h5LiBJIGFsc28KPiBoYWQgdHJvdWJsZSB0byBpZGVudGlmeSB0aGF0IGRv X3dyaXRlYmFja190ZXN0IG5ldmVyIHN1Ym1pdHMgYQo+IHdyaXRlYmFjayBvcGVyYXRpb24gKHNl ZSBvdGhlciBlLW1haWwpLgo+IAo+IEEgbmFtZSB0aGF0IGlzIHJlbGV2YW50ICJhbGwgdGhlIHRp bWUsIG1vc3Qgb2YgdGhlIHRpbWUiLCBpcyBub3QKPiByZWxldmFudCBhdCBhbGwgaW4gbXkgb3Bp bmlvbi4gSXQganVzdCB0cmlja3MgdGhlIHJlYWRlciBpbnRvIHRoaW5raW5nCj4gdGhlIHRlc3Qg ZG9lcyBvbmUgdGhpbmcsIHdoaWxlIGl0IGFsc28gZG9lcyBzb21ldGhpbmcgZWxzZS4KPiAKPiBJ ZiBpdCB3b3VsZCBiZSBvYnZpb3VzLCBJIHdvdWxkbid0IG1pbmQuIEJ1dCBoZXJlIElNSE8gaXQg aHVydHMKPiByZWFkYWJpbGl0eS4gU28gSSdkIHByZWZlciB0byByZW5hbWUgdGhlIGZ1bmN0aW9u LgoKSSB0YWtlIHlvdXIgY29tbWVudHMgYXMgYSB2YWxpZCBwb2ludC4KCkRvZXMgInRlc3RfaW52 YWxpZF9wYXJhbWV0ZXJzIiBzb3VuZCBsaWtlIGEgZ29vZCBuYW1lIGZvciB0aGUgZnVuY3Rpb24/ IElzIHNvLApSb2RyaWdvLCBjYW4geW91IHBsZWFzZSB1c2UgdGhhdCBuYW1lIGluIHRoZSBuZXh0 IHJldmlzaW9uIG9mIHRoZSBwYXRjaD8KCj4gCj4gSWYgeW91IHRoaW5rIGl0J3Mgb2J2aW91cywg dGhlbiBtYXliZSBpdCdzIGp1c3QgbWUuIEknZCBsb3ZlIHRvIGhlYXIKPiBmcm9tIG90aGVycyBp ZiB0aGV5IGhhdmUgYSBkaWZmZXJlbnQgb3Bpbmlvbi4KPiAKPiAoQXMgYSBzaWRlIG5vdGUsIEkg YWdyZWUgSSBoYXZlIGEgdGVuZGVuY3kgdG8gYmlrZXNoZWQsIEkgdHJ5IHRvIG1hcmsKPiBteSBi aWtlc2hlZGRpbmdzIGJlaGluZCAibml0OiIgZmxhZ3MuKQoKSSd2ZSBvbmx5IHNhaWQgIml0IHNv dW5kZWQgbGlrZSIgOikKCkJlc3QgcmVnYXJkcywKTGl2aXUKCj4gCj4gPiBCZXN0IHJlZ2FyZHMs Cj4gPiBMaXZpdQo+ID4gCj4gPiA+ID4gPiA+ID4gKwkJewo+ID4gPiA+ID4gPiA+ICsJCQkvKiBJ bnZhbGlkIFdSSVRFQkFDS19PVVRfRkVOQ0VfUFRSLiAqLwo+ID4gPiA+ID4gPiA+ICsJCQkuZmJf aWQgPSB2YWxpZF9mYi0+ZmJfaWQsCj4gPiA+ID4gPiA+ID4gKwkJCS5wdHJfdmFsaWQgPSBmYWxz ZSwKPiA+ID4gPiA+ID4gPiArCQkJLm91dF9mZW5jZV9wdHIgPSAoaW50MzJfdCAqKTB4OCwKPiA+ ID4gPiA+ID4gPiArCQl9LAo+ID4gPiA+ID4gPiA+ICsJfTsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ ID4gPiA+ID4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShpbnZhbGlkX3Rlc3RzKTsgaSsr KSB7Cj4gPiA+ID4gPiA+ID4gKwkJcmV0ID0gZG9fd3JpdGViYWNrX3Rlc3Qob3V0cHV0LCBEUk1f TU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwKPiA+ID4gPiA+ID4gPiArCQkJCQlpbnZhbGlkX3Rl c3RzW2ldLmZiX2lkLAo+ID4gPiA+ID4gPiA+ICsJCQkJCWludmFsaWRfdGVzdHNbaV0ub3V0X2Zl bmNlX3B0ciwKPiA+ID4gPiA+ID4gPiArCQkJCQlpbnZhbGlkX3Rlc3RzW2ldLnB0cl92YWxpZCk7 Cj4gPiA+ID4gPiA+ID4gKwkJaWd0X2Fzc2VydChyZXQgIT0gMCk7Cj4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiBNYXliZSB3ZSBjYW4gY2hlY2sgZm9yIC1yZXQgPT0gRUlOVkFMPwo+ID4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gPiArCX0KPiA+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiA+ICsKPiA+ ID4gPiA+ID4gPiArc3RhdGljIHZvaWQgd3JpdGViYWNrX2ZiX2lkKGlndF9vdXRwdXRfdCAqb3V0 cHV0LCBpZ3RfZmJfdCAqdmFsaWRfZmIsIGlndF9mYl90ICppbnZhbGlkX2ZiKQo+ID4gPiA+ID4g PiAKPiA+ID4gPiA+ID4gaW52YWxpZF9mYiBkb2Vzbid0IHNlZW0gdG8gYmUgdXNlZCBoZXJlLiB2 YWxpZF9mYiBzZWVtcyB0byBiZSBzZXQgdG8KPiA+ID4gPiA+ID4gdGhlIGlucHV0IGZyYW1lYnVm ZmVyLiBJdCdzIHByb2JhYmx5IG5vdCBhIGdvb2QgaWRlYSB0byB1c2UgdGhlIHNhbWUgRkIKPiA+ ID4gPiA+ID4gZm9yIGlucHV0IGFuZCB3cml0ZWJhY2sgb3V0cHV0Lgo+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiArewo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCWludCByZXQ7Cj4g PiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJLyogVmFsaWQgb3V0cHV0IGJ1ZmZlciAqLwo+ ID4gPiA+ID4gPiA+ICsJcmV0ID0gZG9fd3JpdGViYWNrX3Rlc3Qob3V0cHV0LCBEUk1fTU9ERV9B VE9NSUNfQUxMT1dfTU9ERVNFVCwKPiA+ID4gPiA+ID4gPiArCQkJCXZhbGlkX2ZiLT5mYl9pZCwg TlVMTCwgZmFsc2UpOwo+ID4gPiA+ID4gPiA+ICsJaWd0X2Fzc2VydChyZXQgPT0gMCk7Cj4gPiA+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJLyogSW52YWxpZCBvYmplY3QgZm9yIFdSSVRFQkFD S19GQl9JRCAqLwo+ID4gPiA+ID4gPiA+ICsJcmV0ID0gZG9fd3JpdGViYWNrX3Rlc3Qob3V0cHV0 LCBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwKPiA+ID4gPiA+ID4gPiArCQkJCW91dHB1 dC0+aWQsIE5VTEwsIGZhbHNlKTsKPiA+ID4gPiA+ID4gPiArCWlndF9hc3NlcnQocmV0ID09IC1F SU5WQUwpOwo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCS8qIFplcm8gV1JJVEVCQUNL X0ZCX0lEICovCj4gPiA+ID4gPiA+ID4gKwlyZXQgPSBkb193cml0ZWJhY2tfdGVzdChvdXRwdXQs IERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VULAo+ID4gPiA+ID4gPiA+ICsJCQkJMCwgTlVM TCwgZmFsc2UpOwo+ID4gPiA+ID4gPiA+ICsJaWd0X2Fzc2VydChyZXQgPT0gMCk7Cj4gPiA+ID4g PiA+ID4gK30KPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gK2lndF9tYWluCj4gPiA+ID4g PiA+ID4gK3sKPiA+ID4gPiA+ID4gPiArCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKPiA+ID4gPiA+ ID4gPiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ID4gPiA+ID4gPiA+ICsJaWd0X3BsYW5lX3Qg KnBsYW5lOwo+ID4gPiA+ID4gPiA+ICsJaWd0X2ZiX3QgaW5wdXRfZmI7Cj4gPiA+ID4gPiA+ID4g Kwlkcm1Nb2RlTW9kZUluZm8gbW9kZTsKPiA+ID4gPiA+ID4gPiArCWludCByZXQ7Cj4gPiA+ID4g PiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJbWVtc2V0KCZkaXNwbGF5LCAwLCBzaXplb2YoZGlzcGxh eSkpOwo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCWlndF9maXh0dXJlIHsKPiA+ID4g PiA+ID4gPiArCQlkaXNwbGF5LmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVS X0FOWSk7Cj4gPiA+ID4gPiA+ID4gKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGlzcGxheSwgZGlz cGxheS5kcm1fZmQpOwo+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCQlrbXN0ZXN0X3Nl dF92dF9ncmFwaGljc19tb2RlKCk7Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJCWln dF9kaXNwbGF5X3JlcXVpcmUoJmRpc3BsYXksIGRpc3BsYXkuZHJtX2ZkKTsKPiA+ID4gPiA+ID4g PiArCj4gPiA+ID4gPiA+ID4gKwkJaWd0X3JlcXVpcmUoZGlzcGxheS5pc19hdG9taWMpOwo+ID4g PiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gPiArCQlvdXRwdXQgPSBrbXNfd3JpdGViYWNrX2dldF9v dXRwdXQoJmRpc3BsYXkpOwo+ID4gPiA+ID4gPiA+ICsJCWlndF9yZXF1aXJlKG91dHB1dCk7Cj4g PiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJCWlmIChvdXRwdXQtPnVzZV9vdmVycmlkZV9t b2RlKQo+ID4gPiA+ID4gPiA+ICsJCQltZW1jcHkoJm1vZGUsICZvdXRwdXQtPm92ZXJyaWRlX21v ZGUsIHNpemVvZihtb2RlKSk7Cj4gPiA+ID4gPiA+ID4gKwkJZWxzZQo+ID4gPiA+ID4gPiA+ICsJ CQltZW1jcHkoJm1vZGUsICZvdXRwdXQtPmNvbmZpZy5kZWZhdWx0X21vZGUsIHNpemVvZihtb2Rl KSk7Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJCXBsYW5lID0gaWd0X291dHB1dF9n ZXRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4gPiA+ID4g PiA+ICsJCWlndF9yZXF1aXJlKHBsYW5lKTsKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IE1heWJl IHdlIGNhbiBhc3NlcnQgb24gdGhpcz8KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gKwkJcmV0 ID0gaWd0X2NyZWF0ZV9mYihkaXNwbGF5LmRybV9mZCwgbW9kZS5oZGlzcGxheSwKPiA+ID4gPiA+ ID4gPiArCQkJCSAgICBtb2RlLnZkaXNwbGF5LAo+ID4gPiA+ID4gPiA+ICsJCQkJICAgIERSTV9G T1JNQVRfWFJHQjg4ODgsCj4gPiA+ID4gPiA+ID4gKwkJCQkgICAgaWd0X2ZiX21vZF90b190aWxp bmcoMCksCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBUaGlzIGlzIHN1cHBvc2VkIHRvIHRha2Ug YSBtb2RpZmllci4gRFJNX0ZPUk1BVF9NT0RfTElORUFSIHdvdWxkIGJlCj4gPiA+ID4gPiA+IGJl dHRlciB0byBtYWtlIHRoaXMgY2xlYXIuCj4gPiA+ID4gCj4gPiA+ID4gQWdyZWUuIFRoZSBwYXRj aHNldCBwcmUtZGF0ZXMgdGhlIG1vZGlmaWVycyBzdXBwb3J0IChvciBoYXMgdGhlIHNhbWUgYWdl LCBJCj4gPiA+ID4gZm9yZ290KQo+ID4gPiA+IAo+ID4gPiA+ID4gPiAoQXBwbGllcyB0byBvdGhl ciBsaW5lcyBvZiB0aGlzIHBhdGNoKQo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiArCQkJCSAg ICAmaW5wdXRfZmIpOwo+ID4gPiA+ID4gPiA+ICsJCWlndF9hc3NlcnQocmV0ID49IDApOwo+ID4g PiA+ID4gPiA+ICsJCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsICZpbnB1dF9mYik7Cj4gPiA+ID4g PiA+ID4gKwl9Cj4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ICsJaWd0X3N1YnRlc3QoIndy aXRlYmFjay1waXhlbC1mb3JtYXRzIikgewo+ID4gPiA+ID4gPiA+ICsJCWRybU1vZGVQcm9wZXJ0 eUJsb2JSZXMgKmZvcm1hdHNfYmxvYiA9IGdldF93cml0ZWJhY2tfZm9ybWF0c19ibG9iKG91dHB1 dCk7Cj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBOZWVkIHRvIGRybU1vZGVGcmVlUHJvcGVydHlC bG9iIHRoaXMuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ICsJCWNvbnN0IGNoYXIgKnZhbGlk X2NoYXJzID0gIjAxMjM0NTYgQUJDR05SVVZYWSI7Cj4gPiA+ID4gPiA+ID4gKwkJdW5zaWduZWQg aW50IGk7Cj4gPiA+ID4gPiA+ID4gKwkJY2hhciAqYzsKPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4g PiA+ID4gKwkJLyoKPiA+ID4gPiA+ID4gPiArCQkgKiBXZSBkb24ndCBoYXZlIGEgY29tcHJlaGVu c2l2ZSBsaXN0IG9mIGZvcm1hdHMsIHNvIGp1c3QgY2hlY2sKPiA+ID4gPiA+ID4gPiArCQkgKiB0 aGF0IHRoZSBibG9iIGxlbmd0aCBpcyBzZW5zaWJsZSBhbmQgdGhhdCBpdCBkb2Vzbid0IGNvbnRh aW4KPiA+ID4gPiA+ID4gPiArCQkgKiBhbnkgb3V0bGFuZGlzaCBjaGFyYWN0ZXJzCj4gPiA+ID4g PiA+ID4gKwkJICovCj4gPiA+ID4gPiA+ID4gKwkJaWd0X2Fzc2VydCghKGZvcm1hdHNfYmxvYi0+ bGVuZ3RoICUgNCkpOwo+ID4gPiA+ID4gPiA+ICsJCWMgPSBmb3JtYXRzX2Jsb2ItPmRhdGE7Cj4g PiA+ID4gPiA+ID4gKwkJZm9yIChpID0gMDsgaSA8IGZvcm1hdHNfYmxvYi0+bGVuZ3RoOyBpKysp Cj4gPiA+ID4gPiA+ID4gKwkJCWlndF9hc3NlcnRfZihzdHJjaHIodmFsaWRfY2hhcnMsIGNbaV0p LAo+ID4gPiA+ID4gPiA+ICsJCQkJICAgICAiVW5leHBlY3RlZCBjaGFyYWN0ZXIgJWNcbiIsIGNb aV0pOwo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gSG9uZXN0bHksIEknbSBub3QgYSBmYW4gb2Yg dGhpcyBjaGVjay4gVGhlcmUncyBubyBndWFyYW50ZWUgdGhhdCBmb3VyY2MKPiA+ID4gPiA+ID4g Y29kZXMgd2lsbCBiZSBtYWRlIGZyb20gQVNDSUkgY2hhcmFjdGVycywgaW4gZmFjdCBzb21lIGZv cm1hdHMgYWxyZWFkeQo+ID4gPiA+ID4gPiBoYXZlIG5vbi1wcmludGFibGUgY2hhcnMgaW4gdGhl bS4gSSBkb24ndCB3YW50IHRvIGhhdmUgdG8gdXBkYXRlIHRoaXMKPiA+ID4gPiA+ID4gdGVzdCB3 aGVuIGEgbmV3IGZvdXJjYyBmb3JtYXQgaXMgYWRkZWQuCj4gPiA+ID4gCj4gPiA+ID4gTGlrZSB0 aGUgY29tbWVudHMgc2F5cywgd2UgZG9uJ3QgaGF2ZSBhIGZ1bGwgbGlzdCBvZiBmb3JtYXRzIHRv IGNoZWNrIGFnYWluc3QuCj4gPiA+ID4gU3VnZ2VzdGlvbnMgb24gaG93IHRvIGltcHJvdmUgYXJl IHdlbGNvbWUsIGJ1dCBJIGRvbid0IHRoaW5rIHdlIHNob3VsZCBkZWxheQo+ID4gPiA+IChhbnkg bG9uZ2VyKSB0aGUgcGF0Y2hzZXQgZHVlIHRvIHRoaXMuCj4gPiA+IAo+ID4gPiBBZ3JlZWQuCj4g PiA+IAo+ID4gPiA+IEJlc3QgcmVnYXJkcywKPiA+ID4gPiBMaXZpdQoKLS0gCj09PT09PT09PT09 PT09PT09PT09CnwgSSB3b3VsZCBsaWtlIHRvIHwKfCBmaXggdGhlIHdvcmxkLCAgfAp8IGJ1dCB0 aGV5J3JlIG5vdCB8CnwgZ2l2aW5nIG1lIHRoZSAgIHwKIFwgc291cmNlIGNvZGUhICAvCiAgLS0t LS0tLS0tLS0tLS0tCiAgICDCr1xfKOODhClfL8KvCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaWd0LWRldg==