From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH i-g-t] tests: atomic: add test to verify page flip event emissions Date: Fri, 22 Apr 2016 14:27:28 +0100 Message-ID: References: <1461254491-20241-1-git-send-email-lionel.g.landwerlin@intel.com> <20160422125936.GW2510@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id B51FD6EEDD for ; Fri, 22 Apr 2016 13:27:30 +0000 (UTC) In-Reply-To: <20160422125936.GW2510@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 T24gMjIvMDQvMTYgMTM6NTksIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gVGh1LCBBcHIgMjEs IDIwMTYgYXQgMDU6MDE6MzFQTSArMDEwMCwgTGlvbmVsIExhbmR3ZXJsaW4gd3JvdGU6Cj4+IEl0 IHNlZW1zIHdlIGRvbid0IGhhdmUgYSB0ZXN0IHZlcmlmeWluZyBldmVudHMgd2l0aCBhdG9taWMg Y29tbWl0cwo+PiB5ZXQuIEhlcmUgaXMgYSBmaXJzdCBzdGVwLgo+Pgo+PiBDYzogTWFhcnRlbiBM YW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4gU2lnbmVkLW9m Zi1ieTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgo+ IEZlZWwgbGlrZSBhbHNvIG1ha2luZyBhIHRlc3RjYXNlIHZhcmlhbnQgZm9yIHRoZSBvdGhlciBj YXNlcyBvZiBjcnRjJ3MKPiBBQ1RJVkUgcHJvcGVydHk/Cj4gLSBvZmYgLT4gb2ZmOiBrZXJuZWwg c2hvdWxkIHJlamVjdCBldmVudCBnZW5lcmF0aW9uCj4gLSBvZmYgLT4gb246IGtlcm5lbCBzaG91 bGQgZ2VuZXJhdGUgZXZlbnQsIGFuZCB0aGUgZnJhbWUgY291bnRlciBzaG91bGQgYmUKPiAgICBq dXN0IGEgZmV3IGZyYW1lcyBsZXNzIChhdCBtb3N0KSB0aGFuIHdoYXQgeW91IGdldCBmcm9tIHRo ZSB2YmxhbmsgaW9jdGwKPiAgICByaWdodCBhZnRlciB0aGUgbW9kZXNldCBjb21wbGV0ZXMKPiAt IG9uIC0+IG9mZjogc2FtZSBhcyBvZmYgLT4gb24gYnV0IGluIHJldmVyc2UKPgo+IFdvdWxkIGJl IGF3ZXNvbWUgLi4uCj4gLURhbmllbAoKU3VyZSwgSSB3aWxsIGFkZCBtb3JlIHRlc3QgZm9yIHRo b3NlIGNhc2VzLgoKVGhvdWdoIHJpZ2h0IG5vdywgSSB3b3VsZCBsaWtlIHRvIGtub3cgd2hldGhl ciB0aGlzIHRlc3Qgc2VlbXMgd3Jvbmcgb3IgCmJyb2tlbiBpbiBhbnkgd2F5LgpBcyBJIG1lbnRp b25lZCBvbiBJUkMsIEknbSBub3QgZ2V0dGluZyBhbnkgZXZlbnQgd2hlbiBkb2luZyBhdG9taWMg CmNvbW1pdHMgYW5kIHRoaXMgdGVzdCBmYWlscy4KSSdtIGNvbmNlcm5lZCB0aGF0IG91ciBkcml2 ZXIgZG9lc24ndCBiZWhhdmUgcHJvcGVybHkgd2l0aCByZWdhcmRzIHRvIApldmVudHMgd2l0aCBh dG9taWMgZW5hYmxlZC4KCkNoZWVycywKCi0KTGlvbmVsCgo+Cj4+IC0tLQo+PiAgIHRlc3RzL2tt c19hdG9taWMuYyB8IDEzNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxMjcgaW5zZXJ0aW9ucygrKSwgMTAg ZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfYXRvbWljLmMgYi90ZXN0 cy9rbXNfYXRvbWljLmMKPj4gaW5kZXggZjI3ZWU0Ni4uYmM3NTEwOCAxMDA2NDQKPj4gLS0tIGEv dGVzdHMva21zX2F0b21pYy5jCj4+ICsrKyBiL3Rlc3RzL2ttc19hdG9taWMuYwo+PiBAQCAtMjUy LDEwICsyNTIsMTAgQEAgc3RhdGljIHVpbnQzMl90IGJsb2JfZHVwbGljYXRlKGludCBmZCwgdWlu dDMyX3QgaWRfb3JpZykKPj4gICAJcGxhbmVfY2hlY2tfY3VycmVudF9zdGF0ZShwbGFuZV9vbGQs IHJlbGF4KTsgXAo+PiAgIH0KPj4gICAKPj4gLSNkZWZpbmUgcGxhbmVfY29tbWl0X2F0b21pYyhw bGFuZSwgcmVxLCByZWxheCkgeyBcCj4+ICsjZGVmaW5lIHBsYW5lX2NvbW1pdF9hdG9taWMocGxh bmUsIHJlcSwgZmxhZ3MsIHJlbGF4KSB7CVwKPj4gICAJZHJtTW9kZUF0b21pY1NldEN1cnNvcihy ZXEsIDApOyBcCj4+ICAgCXBsYW5lX3BvcHVsYXRlX3JlcShwbGFuZSwgcmVxKTsgXAo+PiAtCWRv X2F0b21pY19jb21taXQoKHBsYW5lKS0+c3RhdGUtPmRlc2MtPmZkLCByZXEsIDApOyBcCj4+ICsJ ZG9fYXRvbWljX2NvbW1pdCgocGxhbmUpLT5zdGF0ZS0+ZGVzYy0+ZmQsIHJlcSwgZmxhZ3MpOyBc Cj4+ICAgCXBsYW5lX2NoZWNrX2N1cnJlbnRfc3RhdGUocGxhbmUsIHJlbGF4KTsgXAo+PiAgIH0K Pj4gICAKPj4gQEAgLTg4NiwxMCArODg2LDEwIEBAIHN0YXRpYyB2b2lkIHBsYW5lX292ZXJsYXko c3RydWN0IGttc19hdG9taWNfY3J0Y19zdGF0ZSAqY3J0YywKPj4gICAKPj4gICAJLyogRW5hYmxl IHRoZSBvdmVybGF5IHBsYW5lIHVzaW5nIHRoZSBhdG9taWMgQVBJLCBhbmQgZG91YmxlLWNoZWNr Cj4+ICAgCSAqIHN0YXRlIGlzIHdoYXQgd2UgdGhpbmsgaXQgc2hvdWxkIGJlLiAqLwo+PiAtCXBs YW5lX2NvbW1pdF9hdG9taWMoJnBsYW5lLCByZXEsIEFUT01JQ19SRUxBWF9OT05FKTsKPj4gKwlw bGFuZV9jb21taXRfYXRvbWljKCZwbGFuZSwgcmVxLCAwLCBBVE9NSUNfUkVMQVhfTk9ORSk7Cj4+ ICAgCj4+ICAgCS8qIERpc2FibGUgdGhlIHBsYW5lIGFuZCBjaGVjayB0aGUgc3RhdGUgbWF0Y2hl cyB0aGUgb2xkLiAqLwo+PiAtCXBsYW5lX2NvbW1pdF9hdG9taWMocGxhbmVfb2xkLCByZXEsIEFU T01JQ19SRUxBWF9OT05FKTsKPj4gKwlwbGFuZV9jb21taXRfYXRvbWljKHBsYW5lX29sZCwgcmVx LCAwLCBBVE9NSUNfUkVMQVhfTk9ORSk7Cj4+ICAgCj4+ICAgCS8qIFJlLWVuYWJsZSB0aGUgcGxh bmUgdGhyb3VnaCB0aGUgbGVnYWN5IHBsYW5lIEFQSSwgYW5kIHZlcmlmeSB0aHJvdWdoCj4+ICAg CSAqIGF0b21pYy4gKi8KPj4gQEAgLTk4MywxMCArOTgzLDEwIEBAIHN0YXRpYyB2b2lkIHBsYW5l X2N1cnNvcihzdHJ1Y3Qga21zX2F0b21pY19jcnRjX3N0YXRlICpjcnRjLAo+PiAgIAo+PiAgIAkv KiBGbGlwIHRoZSBjdXJzb3IgcGxhbmUgdXNpbmcgdGhlIGF0b21pYyBBUEksIGFuZCBkb3VibGUt Y2hlY2sKPj4gICAJICogc3RhdGUgaXMgd2hhdCB3ZSB0aGluayBpdCBzaG91bGQgYmUuICovCj4+ IC0JcGxhbmVfY29tbWl0X2F0b21pYygmcGxhbmUsIHJlcSwgQVRPTUlDX1JFTEFYX05PTkUpOwo+ PiArCXBsYW5lX2NvbW1pdF9hdG9taWMoJnBsYW5lLCByZXEsIDAsIEFUT01JQ19SRUxBWF9OT05F KTsKPj4gICAKPj4gICAJLyogUmVzdG9yZSB0aGUgY3Vyc29yIHBsYW5lIGFuZCBjaGVjayB0aGUg c3RhdGUgbWF0Y2hlcyB0aGUgb2xkLiAqLwo+PiAtCXBsYW5lX2NvbW1pdF9hdG9taWMocGxhbmVf b2xkLCByZXEsIEFUT01JQ19SRUxBWF9OT05FKTsKPj4gKwlwbGFuZV9jb21taXRfYXRvbWljKHBs YW5lX29sZCwgcmVxLCAwLCBBVE9NSUNfUkVMQVhfTk9ORSk7Cj4+ICAgCj4+ICAgCS8qIFJlLWVu YWJsZSB0aGUgcGxhbmUgdGhyb3VnaCB0aGUgbGVnYWN5IGN1cnNvciBBUEksIGFuZCB2ZXJpZnkK Pj4gICAJICogdGhyb3VnaCBhdG9taWMuICovCj4+IEBAIC0xMDEwLDcgKzEwMTAsNyBAQCBzdGF0 aWMgdm9pZCBwbGFuZV9jdXJzb3Ioc3RydWN0IGttc19hdG9taWNfY3J0Y19zdGF0ZSAqY3J0YywK Pj4gICAJcGxhbmVfY2hlY2tfY3VycmVudF9zdGF0ZShwbGFuZV9vbGQsIEFUT01JQ19SRUxBWF9O T05FKTsKPj4gICAKPj4gICAJLyogRmluYWxseSwgcmVzdG9yZSB0byB0aGUgb3JpZ2luYWwgc3Rh dGUuICovCj4+IC0JcGxhbmVfY29tbWl0X2F0b21pYyhwbGFuZV9vbGQsIHJlcSwgQVRPTUlDX1JF TEFYX05PTkUpOwo+PiArCXBsYW5lX2NvbW1pdF9hdG9taWMocGxhbmVfb2xkLCByZXEsIDAsIEFU T01JQ19SRUxBWF9OT05FKTsKPj4gICAKPj4gICAJZHJtTW9kZUF0b21pY0ZyZWUocmVxKTsKPj4g ICB9Cj4+IEBAIC0xMDQzLDcgKzEwNDMsNyBAQCBzdGF0aWMgdm9pZCBwbGFuZV9pbnZhbGlkX3Bh cmFtcyhzdHJ1Y3Qga21zX2F0b21pY19jcnRjX3N0YXRlICpjcnRjLAo+PiAgIAkgICAgICAgICAg ICAgICAgICAgICAgICBBVE9NSUNfUkVMQVhfTk9ORSwgRUlOVkFMKTsKPj4gICAKPj4gICAJcGxh bmUuZmJfaWQgPSBwbGFuZV9vbGQtPmZiX2lkOwo+PiAtCXBsYW5lX2NvbW1pdF9hdG9taWMoJnBs YW5lLCByZXEsIEFUT01JQ19SRUxBWF9OT05FKTsKPj4gKwlwbGFuZV9jb21taXRfYXRvbWljKCZw bGFuZSwgcmVxLCAwLCBBVE9NSUNfUkVMQVhfTk9ORSk7Cj4+ICAgCj4+ICAgCS8qIFBhc3MgYSBz ZXJpZXMgb2YgaW52YWxpZCBvYmplY3QgSURzIGZvciB0aGUgQ1JUQyBJRC4gKi8KPj4gICAJcGxh bmUuY3J0Y19pZCA9IHBsYW5lLm9iajsKPj4gQEAgLTEwNjMsNyArMTA2Myw3IEBAIHN0YXRpYyB2 b2lkIHBsYW5lX2ludmFsaWRfcGFyYW1zKHN0cnVjdCBrbXNfYXRvbWljX2NydGNfc3RhdGUgKmNy dGMsCj4+ICAgCSAgICAgICAgICAgICAgICAgICAgICAgIEFUT01JQ19SRUxBWF9OT05FLCBFSU5W QUwpOwo+PiAgIAo+PiAgIAlwbGFuZS5jcnRjX2lkID0gcGxhbmVfb2xkLT5jcnRjX2lkOwo+PiAt CXBsYW5lX2NvbW1pdF9hdG9taWMoJnBsYW5lLCByZXEsIEFUT01JQ19SRUxBWF9OT05FKTsKPj4g KwlwbGFuZV9jb21taXRfYXRvbWljKCZwbGFuZSwgcmVxLCAwLCBBVE9NSUNfUkVMQVhfTk9ORSk7 Cj4+ICAgCj4+ICAgCS8qIENyZWF0ZSBhIGZyYW1lYnVmZmVyIHRvbyBzbWFsbCBmb3IgdGhlIHBs YW5lIGNvbmZpZ3VyYXRpb24uICovCj4+ICAgCWlndF9yZXF1aXJlKGZvcm1hdCAhPSAwKTsKPj4g QEAgLTEwODUsNyArMTA4NSw3IEBAIHN0YXRpYyB2b2lkIHBsYW5lX2ludmFsaWRfcGFyYW1zKHN0 cnVjdCBrbXNfYXRvbWljX2NydGNfc3RhdGUgKmNydGMsCj4+ICAgCSAgICAgICAgICAgICAgICAg ICAgICAgIEFUT01JQ19SRUxBWF9OT05FLCBFTk9TUEMpOwo+PiAgIAo+PiAgIAkvKiBSZXN0b3Jl IHRoZSBwcmltYXJ5IHBsYW5lIGFuZCBjaGVjayB0aGUgc3RhdGUgbWF0Y2hlcyB0aGUgb2xkLiAq Lwo+PiAtCXBsYW5lX2NvbW1pdF9hdG9taWMocGxhbmVfb2xkLCByZXEsIEFUT01JQ19SRUxBWF9O T05FKTsKPj4gKwlwbGFuZV9jb21taXRfYXRvbWljKHBsYW5lX29sZCwgcmVxLCAwLCBBVE9NSUNf UkVMQVhfTk9ORSk7Cj4+ICAgCj4+ICAgCWRybU1vZGVBdG9taWNGcmVlKHJlcSk7Cj4+ICAgfQo+ PiBAQCAtMTI4MCw2ICsxMjgwLDExMiBAQCBzdGF0aWMgdm9pZCBhdG9taWNfaW52YWxpZF9wYXJh bXMoc3RydWN0IGttc19hdG9taWNfY3J0Y19zdGF0ZSAqY3J0YywKPj4gICAJZG9faW9jdGxfZXJy KGRlc2MtPmZkLCBEUk1fSU9DVExfTU9ERV9BVE9NSUMsICZpb2MsIEVGQVVMVCk7Cj4+ICAgfQo+ PiAgIAo+PiArc3RhdGljIHZvaWQgZ2V0X2V2ZW50cyhzdHJ1Y3Qga21zX2F0b21pY19jcnRjX3N0 YXRlICpjcnRjLAo+PiArCQkgICAgICAgaW50ICpwYWdlX2ZsaXBzLAo+PiArCQkgICAgICAgaW50 ICp2YmxhbmtfY291bnQsCj4+ICsJCSAgICAgICBpbnQgbXNlYykKPj4gK3sKPj4gKwlzdHJ1Y3Qg a21zX2F0b21pY19kZXNjICpkZXNjID0gY3J0Yy0+c3RhdGUtPmRlc2M7Cj4+ICsJc3RydWN0IHRp bWV2YWwgdGltZW91dCA9IHsgLnR2X3NlYyA9IDAsIC50dl91c2VjID0gbXNlYyAqIDEwMDAgfTsK Pj4gKwlmZF9zZXQgZmRzOwo+PiArCWNoYXIgYnVmZmVyWzEwMjRdOwo+PiArCWludCBpZHgsIGxl biwgcmV0Owo+PiArCj4+ICsJRkRfWkVSTygmZmRzKTsKPj4gKwlGRF9TRVQoZGVzYy0+ZmQsICZm ZHMpOwo+PiArCj4+ICsJcmV0ID0gc2VsZWN0KDEsICZmZHMsIE5VTEwsIE5VTEwsICZ0aW1lb3V0 KTsKPj4gKwlpZiAocmV0IDwgMSkKPj4gKwkJcmV0dXJuOwo+PiArCj4+ICsJbGVuID0gcmVhZChk ZXNjLT5mZCwgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSk7Cj4+ICsJaWYgKGxlbiA9PSAwKQo+PiAr CQlyZXR1cm47Cj4+ICsKPj4gKwlpZHggPSAwOwo+PiArCXdoaWxlIChpZHggPCBsZW4pIHsKPj4g KwkJc3RydWN0IGRybV9ldmVudCBldmVudDsKPj4gKwo+PiArCQlpZ3RfYXNzZXJ0X2x0ZShzaXpl b2YoZXZlbnQpLCBsZW4gLSBpZHgpOwo+PiArCj4+ICsJCW1lbWNweSgmZXZlbnQsICZidWZmZXJb aWR4XSwgc2l6ZW9mKGV2ZW50KSk7Cj4+ICsJCXN3aXRjaCAoZXZlbnQudHlwZSkgewo+PiArCQlj YXNlIERSTV9FVkVOVF9GTElQX0NPTVBMRVRFOgo+PiArCQkJKCpwYWdlX2ZsaXBzKSsrOwo+PiAr CQkJYnJlYWs7Cj4+ICsJCWNhc2UgRFJNX0VWRU5UX1ZCTEFOSzoKPj4gKwkJCSgqdmJsYW5rX2Nv dW50KSsrOwo+PiArCQkJYnJlYWs7Cj4+ICsJCWRlZmF1bHQ6Cj4+ICsJCQlicmVhazsKPj4gKwkJ fQo+PiArCj4+ICsJCWlkeCArPSBldmVudC5sZW5ndGg7Cj4+ICsJfQo+PiArfQo+PiArCj4+ICtz dGF0aWMgdm9pZCBwbGFuZV9wYWdlZmxpcF9ldmVudHMoc3RydWN0IGttc19hdG9taWNfY3J0Y19z dGF0ZSAqY3J0YywKPj4gKwkJCQkgIHN0cnVjdCBrbXNfYXRvbWljX3BsYW5lX3N0YXRlICpwbGFu ZV9vbGQpCj4+ICt7Cj4+ICsJc3RydWN0IGRybV9tb2RlX21vZGVpbmZvICptb2RlID0gY3J0Yy0+ bW9kZS5kYXRhOwo+PiArCXN0cnVjdCBrbXNfYXRvbWljX3BsYW5lX3N0YXRlIHBsYW5lID0gKnBs YW5lX29sZDsKPj4gKwl1aW50MzJfdCBmb3JtYXQgPSBwbGFuZV9nZXRfaWd0X2Zvcm1hdCgmcGxh bmUpOwo+PiArCWRybU1vZGVBdG9taWNSZXEgKnJlcSA9IGRybU1vZGVBdG9taWNBbGxvYygpOwo+ PiArCXN0cnVjdCBpZ3RfZmIgZmJbMl07Cj4+ICsJaW50IGksIHBhZ2VmbGlwX2NvdW50ID0gMCwg dmJsYW5rX2NvdW50ID0gMDsKPj4gKwlpbnQgZmxhZ3MgPSBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZF TlQ7Cj4+ICsKPj4gKwlpZ3RfcmVxdWlyZShmb3JtYXQgIT0gMCk7Cj4+ICsKPj4gKwlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShmYik7IGkrKykKPj4gKwkJaWd0X2NyZWF0ZV9wYXR0ZXJuX2Zi KHBsYW5lLnN0YXRlLT5kZXNjLT5mZCwKPj4gKwkJCQkgICAgICBwbGFuZS5jcnRjX3csIHBsYW5l LmNydGNfaCwKPj4gKwkJCQkgICAgICBmb3JtYXQsIEk5MTVfVElMSU5HX05PTkUsICZmYltpXSk7 Cj4+ICsKPj4gKwlwbGFuZS5zcmNfeCA9IDA7Cj4+ICsJcGxhbmUuc3JjX3kgPSAwOwo+PiArCXBs YW5lLnNyY193ID0gbW9kZS0+aGRpc3BsYXkgPDwgMTY7Cj4+ICsJcGxhbmUuc3JjX2ggPSBtb2Rl LT52ZGlzcGxheSA8PCAxNjsKPj4gKwlwbGFuZS5jcnRjX3ggPSAwOwo+PiArCXBsYW5lLmNydGNf eSA9IDA7Cj4+ICsJcGxhbmUuY3J0Y193ID0gbW9kZS0+aGRpc3BsYXk7Cj4+ICsJcGxhbmUuY3J0 Y19oID0gbW9kZS0+dmRpc3BsYXk7Cj4+ICsJcGxhbmUuY3J0Y19pZCA9IGNydGMtPm9iajsKPj4g KwlwbGFuZS5mYl9pZCA9IGZiWzBdLmZiX2lkOwo+PiArCj4+ICsJLyogRmxpcCB0aGUgcHJpbWFy eSBwbGFuZSB1c2luZyB0aGUgYXRvbWljIEFQSSwgYW5kIGRvdWJsZS1jaGVjawo+PiArCSAqIHN0 YXRlIGlzIHdoYXQgd2UgdGhpbmsgaXQgc2hvdWxkIGJlLiAqLwo+PiArCWNydGNfY29tbWl0X2F0 b21pYyhjcnRjLCAmcGxhbmUsIHJlcSwgQVRPTUlDX1JFTEFYX05PTkUpOwo+PiArCj4+ICsJZ2V0 X2V2ZW50cyhjcnRjLCAmcGFnZWZsaXBfY291bnQsICZ2YmxhbmtfY291bnQsIDApOwo+PiArCWln dF9hc3NlcnRfZXEoMSwgcGFnZWZsaXBfY291bnQpOwo+PiArCj4+ICsJZHJtTW9kZUF0b21pY0Zy ZWUocmVxKTsKPj4gKwlyZXEgPSBkcm1Nb2RlQXRvbWljQWxsb2MoKTsKPj4gKwo+PiArCS8qIENo YW5nZSB0aGUgZnJhbWVidWZmZXIgb24gdGhlIHBsYW5lLCB3ZSBzaG91bGQgZ2V0IG9uZQo+PiAr CSAqIHBhZ2VmbGlwIGV2ZW50LiAqLwo+PiArCXBsYW5lLmZiX2lkID0gZmJbMV0uZmJfaWQ7Cj4+ ICsJcGxhbmVfY29tbWl0X2F0b21pYygmcGxhbmUsIHJlcSwgZmxhZ3MsIEFUT01JQ19SRUxBWF9O T05FKTsKPj4gKwlnZXRfZXZlbnRzKGNydGMsICZwYWdlZmxpcF9jb3VudCwgJnZibGFua19jb3Vu dCwgMjApOwo+PiArCWlndF9hc3NlcnRfZXEoMiwgcGFnZWZsaXBfY291bnQpOwo+PiArCj4+ICsJ LyogTm8gY2hhbmdlLCBwYWdlIGZsaXAgZXZlbnQgY291bnQgc2hvdWxkIHJlbWFpbiB0aGUgc2Ft ZS4gKi8KPj4gKwlwbGFuZS5mYl9pZCA9IGZiWzFdLmZiX2lkOwo+PiArCXBsYW5lX2NvbW1pdF9h dG9taWMoJnBsYW5lLCByZXEsIGZsYWdzLCBBVE9NSUNfUkVMQVhfTk9ORSk7Cj4+ICsJZ2V0X2V2 ZW50cyhjcnRjLCAmcGFnZWZsaXBfY291bnQsICZ2YmxhbmtfY291bnQsIDIwKTsKPj4gKwlpZ3Rf YXNzZXJ0X2VxKDIsIHBhZ2VmbGlwX2NvdW50KTsKPj4gKwo+PiArCS8qIENoYW5nZSBiYWNrIHRo ZSBwbGFuZSdzIGZyYW1lYnVmZmVyIHRvIGl0cyBvcmlnaW5hbCBvbmUsIHdlCj4+ICsJICogc2hv dWxkIGdldCBhIHBhZ2UgZmxpcCBldmVudC4gKi8KPj4gKwlwbGFuZS5mYl9pZCA9IGZiWzBdLmZi X2lkOwo+PiArCXBsYW5lX2NvbW1pdF9hdG9taWMoJnBsYW5lLCByZXEsIGZsYWdzLCBBVE9NSUNf UkVMQVhfTk9ORSk7Cj4+ICsJZ2V0X2V2ZW50cyhjcnRjLCAmcGFnZWZsaXBfY291bnQsICZ2Ymxh bmtfY291bnQsIDIwKTsKPj4gKwlpZ3RfYXNzZXJ0X2VxKDMsIHBhZ2VmbGlwX2NvdW50KTsKPj4g Kwo+PiArCWRybU1vZGVBdG9taWNGcmVlKHJlcSk7Cj4+ICt9Cj4+ICsKPj4gICBpZ3RfbWFpbgo+ PiAgIHsKPj4gICAJc3RydWN0IGttc19hdG9taWNfZGVzYyBkZXNjOwo+PiBAQCAtMTM3Myw2ICsx NDc5LDE3IEBAIGlndF9tYWluCj4+ICAgCQlhdG9taWNfc3RhdGVfZnJlZShzY3JhdGNoKTsKPj4g ICAJfQo+PiAgIAo+PiArCWlndF9zdWJ0ZXN0KCJhdG9taWNfcGFnZWZsaXBfZXZlbnRzIikgewo+ PiArCQlzdHJ1Y3Qga21zX2F0b21pY19zdGF0ZSAqc2NyYXRjaCA9IGF0b21pY19zdGF0ZV9kdXAo Y3VycmVudCk7Cj4+ICsJCXN0cnVjdCBrbXNfYXRvbWljX2NydGNfc3RhdGUgKmNydGMgPSBmaW5k X2NydGMoc2NyYXRjaCwgdHJ1ZSk7Cj4+ICsJCXN0cnVjdCBrbXNfYXRvbWljX3BsYW5lX3N0YXRl ICpwbGFuZSA9Cj4+ICsJCQlmaW5kX3BsYW5lKHNjcmF0Y2gsIFBMQU5FX1RZUEVfUFJJTUFSWSwg Y3J0Yyk7Cj4+ICsKPj4gKwkJaWd0X3JlcXVpcmUocGxhbmUpOwo+PiArCQlwbGFuZV9wYWdlZmxp cF9ldmVudHMoY3J0YywgcGxhbmUpOwo+PiArCQlhdG9taWNfc3RhdGVfZnJlZShzY3JhdGNoKTsK Pj4gKwl9Cj4+ICsKPj4gICAJYXRvbWljX3N0YXRlX2ZyZWUoY3VycmVudCk7Cj4+ICAgCj4+ICAg CWlndF9maXh0dXJlCj4+IC0tIAo+PiAyLjguMC5yYzMuMjI2LmczOWQ0MDIwCj4+Cj4+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+PiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=