From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 5/5] drm/i915: Implement intel_dp_autotest_video_pattern function for DP Video pattern compliance tests Date: Thu, 26 May 2016 12:10:18 +0300 Message-ID: <1464253818.2458.33.camel@gmail.com> References: <1461979695-27113-1-git-send-email-manasi.d.navare@intel.com> <1461979695-27113-6-git-send-email-manasi.d.navare@intel.com> <1464004820.2807.31.camel@gmail.com> <20160525224607.GB10861@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-x241.google.com (mail-pa0-x241.google.com [IPv6:2607:f8b0:400e:c03::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id DB35F6E38F for ; Thu, 26 May 2016 09:10:25 +0000 (UTC) Received: by mail-pa0-x241.google.com with SMTP id gp3so1557815pac.2 for ; Thu, 26 May 2016 02:10:25 -0700 (PDT) In-Reply-To: <20160525224607.GB10861@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE2LTA1LTI1IGF0IDE1OjQ2IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ IE9uIE1vbiwgTWF5IDIzLCAyMDE2IGF0IDAzOjAwOjIwUE0gKzAzMDAsIEFuZGVyIENvbnNlbHZh biBEZSBPbGl2ZWlyYSB3cm90ZToKPiA+IAo+ID4gT24gRnJpLCAyMDE2LTA0LTI5IGF0IDE4OjI4 IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ID4gPiAKPiA+ID4gVGhpcyB2aWRlbyBwYXR0 ZXJuIHRlc3QgZnVuY3Rpb24gZ2V0cyBpbnZva2VkIHRocm91Z2ggdGhlCj4gPiA+IGNvbXBsaWFu Y2UgdGVzdCBoYW5kbGVyIG9uIGEgSFBEIHNob3J0IHB1bHNlIGlmIHRoZSB0ZXN0IHR5cGUgaXMK PiA+ID4gc2V0IHRvIERQX1RFU1RfVklERU9fUEFUVEVSTi4gVGhpcyBwZXJmb3JtcyB0aGUgRFBD RCByZWdpc3RlcnMKPiA+ID4gcmVhZHMgdG8gcmVhZCB0aGUgcmVxdWVzdGVkIHRlc3QgcGF0dGVy biwgdmlkZW8gcGF0dGVybiByZXNvbHV0aW9uLAo+ID4gPiBmcmFtZSByYXRlIGFuZCBiaXRzIHBl ciBjb2xvciB2YWx1ZS4gVGhlIHJlc3VsdHMgb2YgdGhpcyBhbmFseXNpcwo+ID4gPiBhcmUgaGFu ZGVkIG9mZiB0byB1c2Vyc3BhY2Ugc28gdGhhdCB0aGUgdXNlcnNwYWNlIGFwcCBjYW4gc2V0IHRo ZQo+ID4gPiB2aWRlbyBwYXR0ZXJuIG1vZGUgYXBwcm9wcmlhdGVseSBmb3IgdGhlIHRlc3QgcmVz dWx0L3Jlc3BvbnNlLgo+ID4gPiAKPiA+ID4gVGhlIGNvbXBsaWFuY2VfdGVzdF9hY3RpdmUgZmxh ZyBpcyBzZXQgYXQgdGhlIGVuZCBvZiB0aGUgaW5kaXZpZHVhbAo+ID4gPiB0ZXN0IGhhbmRsaW5n IGZ1bmN0aW9ucy4gVGhpcyBpcyBzbyB0aGF0IHRoZSBrZXJuZWwtc2lkZSBvcGVyYXRpb25zCj4g PiA+IGNhbiBiZSBjb21wbGV0ZWQgd2l0aG91dCB0aGUgcmlzayBvZiBpbnRlcnJ1cHRpb24gZnJv bSB0aGUgdXNlcnNwYWNlCj4gPiA+IGFwcCB0aGF0IGlzIHBvbGxpbmcgb24gdGhhdCBmbGFnLgo+ ID4gPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJl QGludGVsLmNvbT4KPiA+ID4gLS0tCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgfCAxNCArKysrKystCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuY8KgwqDCoMKgwqB8IDc2Cj4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaMKgwqDCoMKgfMKg wqA5ICsrKysrCj4gPiA+IMKgaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5owqDCoMKgwqDCoMKg wqDCoMKgfCAxNCArKysrKystCj4gPiA+IMKgNCBmaWxlcyBjaGFuZ2VkLCAxMTEgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4gPiA+IGluZGV4IDZlZTY5YjEuLmM4ZDA4MDUgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiA+IEBAIC00NDU4LDcgKzQ0NTgsMTkg QEAgc3RhdGljIGludCBpOTE1X2Rpc3BsYXlwb3J0X3Rlc3RfZGF0YV9zaG93KHN0cnVjdAo+ID4g PiBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiA+ID4gwqAJCWlmIChjb25uZWN0b3ItPnN0YXR1 cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCAmJgo+ID4gPiDCoAkJwqDCoMKgwqBjb25u ZWN0b3ItPmVuY29kZXIgIT0gTlVMTCkgewo+ID4gPiDCoAkJCWludGVsX2RwID0gZW5jX3RvX2lu dGVsX2RwKGNvbm5lY3Rvci0+ZW5jb2Rlcik7Cj4gPiA+IC0JCQlzZXFfcHJpbnRmKG0sICIlbHgi LCBpbnRlbF9kcC0KPiA+ID4gPmNvbXBsaWFuY2VfdGVzdF9kYXRhKTsKPiA+ID4gKwkJCWlmIChp bnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUgPT0KPiA+ID4gKwkJCcKgwqDCoMKgRFBfVEVT VF9MSU5LX0VESURfUkVBRCkKPiA+ID4gKwkJCQlzZXFfcHJpbnRmKG0sICIlbHgiLAo+ID4gPiAr CQkJCQnCoMKgwqBpbnRlbF9kcC0KPiA+ID4gPmNvbXBsaWFuY2VfdGVzdF9kYXRhKTsKPiA+ID4g KwkJCWVsc2UgaWYgKGludGVsX2RwLT5jb21wbGlhbmNlX3Rlc3RfdHlwZSA9PQo+ID4gPiArCQkJ CcKgRFBfVEVTVF9MSU5LX1ZJREVPX1BBVFRFUk4pIHsKPiA+ID4gKwkJCQlzZXFfcHJpbnRmKG0s ICJoZGlzcGxheTogJWx1XG4iLAo+ID4gPiArCQkJCQnCoMKgwqBpbnRlbF9kcC0+dGVzdF9kYXRh LmhkaXNwbGF5KTsKPiA+ID4gKwkJCQlzZXFfcHJpbnRmKG0sICJ2ZGlzcGxheTogJWx1XG4iLAo+ ID4gPiArCQkJCQnCoMKgwqBpbnRlbF9kcC0+dGVzdF9kYXRhLnZkaXNwbGF5KTsKPiA+ID4gKwkJ CQlzZXFfcHJpbnRmKG0sICJicGM6ICV1XG4iLAo+ID4gPiArCQkJCQnCoMKgwqBpbnRlbF9kcC0+ dGVzdF9kYXRhLmJwYyk7Cj4gPiA+ICsJCQl9Cj4gPiA+IMKgCQl9IGVsc2UKPiA+ID4gwqAJCQlz ZXFfcHV0cyhtLCAiMCIpOwo+ID4gPiDCoAl9Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwo+ID4gPiBpbmRleCA0NTZmYzE3Li4xMzRjZmY4IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiA+ID4gQEAgLTQwMTgsNiArNDAxOCw4MiBAQCBzdGF0aWMgdWludDhf dAo+ID4gPiBpbnRlbF9kcF9hdXRvdGVzdF9saW5rX3RyYWluaW5nKHN0cnVjdAo+ID4gPiBpbnRl bF9kcCAqaW50ZWxfZHApCj4gPiA+IMKgc3RhdGljIHVpbnQ4X3QgaW50ZWxfZHBfYXV0b3Rlc3Rf dmlkZW9fcGF0dGVybihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gPiDCoHsKPiA+ID4g wqAJdWludDhfdCB0ZXN0X3Jlc3VsdCA9IERQX1RFU1RfTkFLOwo+ID4gPiArCXVpbnQ4X3QgdGVz dF9wYXR0ZXJuOwo+ID4gPiArCXVpbnQxNl90wqDCoGhfd2lkdGgsIHZfaGVpZ2h0LCB0ZXN0X21p c2M7Cj4gPiA+ICsJaW50IHN0YXR1cyA9IDA7Cj4gPiA+ICsKPiA+ID4gKwkvKiBBdXRvbWF0aW9u IHN1cHBvcnQgZm9yIFZpZGVvIFBhdHRlcm4gVGVzdHMgaGFzIGEgZGVwZW5kZW5jeQo+ID4gPiAr CcKgKiBvbiBMaW5rIHRyYWluaW5nIEF1dG9tYXRpb24gc3VwcG9ydCAoQ1RTIFRlc3QgNC4zLjEu MTEpCj4gPiA+ICsJwqAqIEhlbmNlIGl0IHJldHVybnMgYSBURVNUIE5BSyB1bnRpbCB0aGUgTGlu ayBUcmFpbmluZyBhdXRvbWF0aW9uCj4gPiA+ICsJwqAqIHN1cHBvcnQgaXMgYWRkZWQgdG8gdGhl IGtlcm5lbAo+ID4gPiArCcKgKi8KPiA+ID4gKwlyZXR1cm4gdGVzdF9yZXN1bHQ7Cj4gPiBXZSBz aG91bGRuJ3QgbWVyZ2UgdGhpcyBwYXRjaCB1bnRpbCB0aGlzIGlzIHJlc29sdmVkLiBUaGVyZSdz IG5vIHBvaW50IGluCj4gPiBhZGRpbmcKPiA+IGRlYWQgY29kZS4KPiA+IAo+ID4gCj4gSSBhZ3Jl ZS4gSSB3b3VsZCBzdGlsbCByZXNwaW4gaXQgYmFzZWQgb24gdGhlIHJldmlldyBmZWVkYmFjayBh bmQga2VlcCBpdAo+IHJlYWR5Lgo+IFNvIGFzIHNvb24gYXMgdGhlIGxpbmsgdHJhaW5pbmcgcmV3 b3JrIGlzIGRvbmUsIHRoaXMgcGF0Y2ggY2FuIGJlIHB1bGxlZCBpbgo+IGFuZMKgCj4gdGhpcyB0 ZXN0IGNhbiBiIGVuYWJsZWQuCj4gwqAKPiA+IAo+ID4gPiAKPiA+ID4gKwo+ID4gPiArCS8qIFJl YWQgdGhlIFRFU1RfUEFUVEVSTiAoRFAgQ1RTIDMuMS41KSAqLwo+ID4gPiArCXN0YXR1cyA9IGRy bV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIERQX1RFU1RfUEFUVEVSTiwKPiA+ID4gKwkJ CQnCoMKgJnRlc3RfcGF0dGVybiwgMSk7Cj4gPiA+ICsJaWYgKHN0YXR1cyA8PSAwKSB7Cj4gPiA+ ICsJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCByZWFkIHRlc3QgcGF0dGVybiBmcm9tIgo+ID4g PiArCQkJwqDCoMKgwqDCoMKgInJlZmVybmNlIHNpbmtcbiIpOwo+ID4gPiArCQlyZXR1cm4gMDsK PiA+ID4gKwl9Cj4gPiA+ICsJaWYgKHRlc3RfcGF0dGVybiAhPSBEUF9DT0xPUl9SQU1QKQo+ID4g PiArCQlyZXR1cm4gdGVzdF9yZXN1bHQ7Cj4gPiA+ICsJaW50ZWxfZHAtPnRlc3RfZGF0YS52aWRl b19wYXR0ZXJuID0gdGVzdF9wYXR0ZXJuOwo+ID4gPiArCj4gPiA+ICsJc3RhdHVzID0gZHJtX2Rw X2RwY2RfcmVhZCgmaW50ZWxfZHAtPmF1eCwgRFBfVEVTVF9IX1dJRFRILAo+ID4gPiArCQkJCcKg wqAmaF93aWR0aCwgMik7Cj4gPiA+ICsJaWYgKHN0YXR1cyA8PSAwKSB7Cj4gPiA+ICsJCURSTV9E RUJVR19LTVMoIkNvdWxkIG5vdCByZWFkIEggV2lkdGggZnJvbSIKPiA+ID4gKwkJCcKgwqDCoMKg wqDCoCJyZWZlcm5jZSBzaW5rXG4iKTsKPiA+ID4gKwkJcmV0dXJuIDA7Cj4gPiA+ICsJfQo+ID4g PiArCWludGVsX2RwLT50ZXN0X2RhdGEuaGRpc3BsYXkgPSAoaF93aWR0aCAmIERQX1RFU1RfTVNC X01BU0spID4+IDgKPiA+ID4gfAo+ID4gPiArCQkJCQkoaF93aWR0aCA8PCA4KTsKPiA+IEp1c3Qg dXNlIHRoZSBrZXJuZWwgZW5kaWFubmVzcyBoZWxwZXJzLCBpLmUuOgo+ID4gCj4gPiBfX2xlMTYg aF93aWR0aDsKPiA+IAo+ID4gZHJtX2RwX2RwY2RfcmVhZCguLi4sICZoX3dpZHRoLCAyKQo+ID4g aGRpc3BsYXkgPSBsZTE2X3RvX2NwdShoX3dpZHRoKTsKPiA+IAo+IEkgYW0gbm90IGNoYW5naW5n IHRoZSBlbmRpYW5ubmVzcyBoZXJlLiBUaGlzIGxvZ2ljIGlzIGltcGxlbWVudGVkIHRvIHN3YXAK PiB0aGUgTFNCIGFuZCBNU0IgYmVjYXVzZSBkcGNkX3JlYWQgaGVscGVyIGZ1bmN0aW9uIHJlYWRz IHR3byBieXRlcyBmcm9tIHR3bwo+IGNvbnNlY3V0aXZlCj4gcmVnaXN0ZXJzIGludG8gYSAxNiBi aXQgdmFyaWFibGUuIFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBEUFIgd3JpdGVzIDA6NyBiaXRz Cj4gb2YgSHdpZHRoCj4gdG8gcmVnaXN0ZXIgMHgyMkZoIGFuZCA4OjE1IGJpdHMgaW50byByZWdp c3RlciAweDIyRWguIFNvIHdoZW4gZHBjZF9yZWFkIHJlYWRzCj4gdGhlc2UgdHdvIHJlZ2lzdGVy cywKPiBpdCBzdG9yZXMgTFNCIGFuZCBNU0IgaW4gdGhlIHN3YXBwZWQgbWFubmVyIGluIGEgMTYg Yml0IHZhcmlhYmxlLsKgCj4gUmVmZXIgdG8gVGFibGUgMy00IG9mIFZFU0EgRFAgTGluayBsYXll ciBDVFMgc3BlYyB2ZXJzaW9uIDEuMgoKV291bGQgdGhlIGJ5dGUgc3dhcCBhYm92ZSBzdGlsbCBi ZSBuZWNlc3NhcnkgaW4gYSBiaWctZW5kaWFuIGFyY2hpdGVjdHVyZT8KCldoaWxlIHRoZSBzbmlw cGV0IEkgd3JvdGUgYWJvdmUgaXMgd3JvbmcsIHRoaXMgaXMgc3RpbGwgYW4gZW5kaWFubmVzcyBp c3N1ZS4gVGhlCk1TQiBpcyBhdCB0aGUgbG93ZXN0IGFkZHJlc3MsIHdoaWNoIG1lYW5zIHRoZSB2 YWx1ZSBpcyBiaWctZW5kaWFuLiBBbmQgeDg2IGlzCmxpdHRsZSBlbmRpYW4uIFNvIHRoYXQgc2hv dWxkIGhhdmUgYmVlbjoKCl9fYmUxNiBoX3dpZHRoOwpkcm1fZHBfZHBjZF9yZWFkKC4uLiwgJmhf d2lkdGgsIHNpemVvZiBoX3dpZHRoKTsKaGRpc3BsYXkgPSBiZTE2X3RvX2NwdShoX3dpZHRoKTsK Cgo+IAo+IMKgCj4gPiAKPiA+ID4gCj4gPiA+ICsKPiA+ID4gKwlzdGF0dXMgPSBkcm1fZHBfZHBj ZF9yZWFkKCZpbnRlbF9kcC0+YXV4LCBEUF9URVNUX1ZfSEVJR0hULAo+ID4gPiArCQkJCcKgwqAm dl9oZWlnaHQsIDIpOwo+ID4gPiArCWlmIChzdGF0dXMgPD0gMCkgewo+ID4gPiArCQlEUk1fREVC VUdfS01TKCJDb3VsZCBub3QgcmVhZCBWIEhlaWdodCBmcm9tIgo+ID4gPiArCQkJwqDCoMKgwqDC oMKgInJlZmVybmNlIHNpbmtcbiIpOwo+ID4gcmVmZXJlbmNlCj4gPiAKPiA+ID4gCj4gPiA+ICsJ CXJldHVybiAwOwo+ID4gPiArCX0KPiA+ID4gKwlpbnRlbF9kcC0+dGVzdF9kYXRhLnZkaXNwbGF5 ID0gKHZfaGVpZ2h0ICYgRFBfVEVTVF9NU0JfTUFTSykgPj4gOAo+ID4gPiB8Cj4gPiA+ICsJCQkJ CSh2X2hlaWdodCA8PCA4KTsKPiA+IFNhbWUgaGVyZS4KPiA+IAo+ID4gPiAKPiA+ID4gKwo+ID4g PiArCXN0YXR1cyA9IGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIERQX1RFU1RfTUlT QywKPiA+ID4gKwkJCQnCoMKgJnRlc3RfbWlzYywgMSk7Cj4gPiA+ICsJaWYgKHN0YXR1cyA8PSAw KSB7Cj4gPiA+ICsJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCByZWFkIFRFU1QgTUlTQyBmcm9t Igo+ID4gPiArCQkJwqDCoMKgwqDCoMKgInJlZmVybmNlIHNpbmtcbiIpOwo+ID4gcmVmZXJlbmNl Cj4gPiAKPiA+ID4gCj4gPiA+ICsJCXJldHVybiAwOwo+ID4gPiArCX0KPiA+ID4gKwlpZiAoKCh0 ZXN0X21pc2MgJiBEUF9URVNUX0NPTE9SX0ZPUk1BVF9NQVNLKSA+PiAxKSAhPQo+ID4gPiArCcKg wqDCoMKgRFBfVklERU9fUEFUVEVSTl9SR0JfRk9STUFUKQo+ID4gPiArCQlyZXR1cm4gdGVzdF9y ZXN1bHQ7Cj4gPiA+ICsJaWYgKCgodGVzdF9taXNjICYgRFBfVEVTVF9EWU5BTUlDX1JBTkdFX01B U0spID4+IDMpICE9Cj4gPiA+ICsJwqDCoMKgwqBEUF9WSURFT19QQVRURVJOX1ZFU0EpCj4gPiA+ ICsJCXJldHVybiB0ZXN0X3Jlc3VsdDsKPiA+ID4gKwlzd2l0Y2ggKCh0ZXN0X21pc2MgJiBEUF9U RVNUX0JJVF9ERVBUSF9NQVNLKSA+PiA1KSB7Cj4gPiBNYXliZSBkZWZpbmUgKl9TSElGVCB0byBh dm9pZCB0aGUgaGFyZGNvZGVkIHZhbHVlcy4gQSBjb3VwbGUgb2YgaGVscGVycyB0bwo+ID4gbWFr ZQo+ID4gdGhlIGNvZGUgbW9yZSByZWFkYWJsZSB3b3Vkbid0IGJlIGJhZCBlaXRoZXIuCj4gV2ls bCBkbwo+ID4gCj4gPiAKPiA+ID4gCj4gPiA+ICsJY2FzZSAwOgo+ID4gPiArCQlpbnRlbF9kcC0+ Y29tcGxpYW5jZV9mb3JjZV9icGMgPSA2Owo+ID4gPiArCQlpbnRlbF9kcC0+dGVzdF9kYXRhLmJw YyA9IDY7Cj4gPiA+ICsJCWJyZWFrOwo+ID4gPiArCWNhc2UgMToKPiA+ID4gKwkJaW50ZWxfZHAt PmNvbXBsaWFuY2VfZm9yY2VfYnBjID0gODsKPiA+ID4gKwkJaW50ZWxfZHAtPnRlc3RfZGF0YS5i cGMgPSA4Owo+ID4gU28gaGVyZSdzIHdoZXJlwqBjb21wbGlhbmNlX2ZvcmNlX2JwYyBmcm9tIHBh dGNoIDMgaXMgc2V0LiBXb3VsZCBiZSBiZXR0ZXIgdG8KPiA+IHNxdWFzaCB0aGF0IHBhdGNoIHdp dGggdGhpcyBvbmUuCj4gSSBmZWVsIHRoaXMgc2hvdWxkIGJlIGEgc3RhbmRhbG9uZSBwYXRjaCB0 aGF0IGFkZHMgdGhlIHRlc3QgaGFuZGxlciBmb3LCoAo+IHZpZGVvIHBhdHRlcm4gZ2VuZXJhdGlv biBhbmQgdGhlIGZvcmNlX2JwYyBjYW4gYmUgaW4gYSBzZXBhcmF0ZSBwYXRjaC4KPiBIb3dldmVy IEkgd2lsbCBnbyBhaGVhZCBhbmQgY2hhbmdlIHRoZSBjb21taXQgbWVzc2FnZSBmb3IgdGhlIGJw YyBwYXRjaAo+IHRvIGluZGljYXRlIHRoYXQgaXQgZ2V0cyBzZXQgYnkgdmlkZW8gcGF0dGVybiBD VFMgdGVzdHMuCgpJdCdzIGEgYmV0dGVyIHByYWN0aWNlIHRvIGluY2x1ZGUgY29kZSB3aGVyZSBp dHMgdXNlZC4gSXQgbWFrZXMgcmV2aWV3IGVhc2llcgpzaW5jZSB0aGluZ3MgYXJlIGluIGNvbnRl eHQgYW5kIGl0IGFsc28gaGVscHMgd2l0aCBiaXNlY3RhYmlsaXR5LiBJZiBhIGJpc2VjdApyZXN1 bHQgd291bGQgcG9pbnQgdG8gdGhpcyBwYXRjaCwgYnV0IHRoZSBlcnJvciB3b3VsZCBiZSBpbiB0 aGUgY29kZSBhZGRlZCBieQp0aGUgcHJldmlvdXMgb25lLCB0aGF0IHdvdWxkbid0IGJlIGltbWVk aWF0ZWx5IG9idmlvdXMuIFNpbmNlIHRoaXMgcGF0Y2ggaXMKZmFpcmx5IHNtYWxsLCBJIGRvbid0 IHRoaW5rIHRoZSBzcGxpdCBtYWtlcyBzZW5zZS4KCkFuZGVyCgo+IAo+IAo+ID4gCj4gPiAKPiA+ ID4gCj4gPiA+ICsJCWJyZWFrOwo+ID4gPiArCWRlZmF1bHQ6Cj4gPiA+ICsJCXJldHVybiB0ZXN0 X3Jlc3VsdDsKPiA+ID4gKwl9Cj4gPiA+ICsJLyogU2V0IHRlc3QgYWN0aXZlIGZsYWcgaGVyZSBz byB1c2Vyc3BhY2UgZG9lc24ndCBpbnRlcnJ1cHQKPiA+ID4gdGhpbmdzICovCj4gPiA+ICsJaW50 ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9hY3RpdmUgPSAxOwo+ID4gPiArCj4gPiA+ICsJdGVzdF9y ZXN1bHQgPSBEUF9URVNUX0FDSzsKPiA+ID4gKwlEUk1fREVCVUdfS01TKCJIZGlzcGxheSA9ICVs dVxuIFZkaXNwbGF5ID0gJWx1XG4gQlBDID0gJXVcbiAiLAo+ID4gPiArCQnCoMKgwqDCoMKgwqBp bnRlbF9kcC0+dGVzdF9kYXRhLmhkaXNwbGF5LAo+ID4gPiArCQnCoMKgwqDCoMKgwqBpbnRlbF9k cC0+dGVzdF9kYXRhLnZkaXNwbGF5LAo+ID4gPiArCQnCoMKgwqDCoMKgwqBpbnRlbF9kcC0+dGVz dF9kYXRhLmJwYyk7Cj4gPiA+IMKgCXJldHVybiB0ZXN0X3Jlc3VsdDsKPiA+ID4gwqB9Cj4gPiA+ IMKgCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+IGluZGV4IDEwZWFm ZjguLjZiYThhNzUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ IEBAIC03OTQsNiArNzk0LDEyIEBAIGVudW0gbGlua19tX25fc2V0IHsKPiA+ID4gwqAJTTJfTjIK PiA+ID4gwqB9Owo+ID4gPiDCoAo+ID4gPiArc3RydWN0IGNvbXBsaWFuY2VfdGVzdF9kYXRhIHsK PiA+ID4gKwl1aW50OF90IHZpZGVvX3BhdHRlcm47Cj4gPiA+ICsJdWludDE2X3QgaGRpc3BsYXks IHZkaXNwbGF5Owo+ID4gPiArCXVpbnQ4X3QgYnBjOwo+ID4gPiArfTsKPiA+ID4gKwo+ID4gPiDC oHN0cnVjdCBpbnRlbF9kcCB7Cj4gPiA+IMKgCWk5MTVfcmVnX3Qgb3V0cHV0X3JlZzsKPiA+ID4g wqAJaTkxNV9yZWdfdCBhdXhfY2hfY3RsX3JlZzsKPiA+ID4gQEAgLTg2Niw2ICs4NzIsOSBAQCBz dHJ1Y3QgaW50ZWxfZHAgewo+ID4gPiDCoAl1bnNpZ25lZCBsb25nIGNvbXBsaWFuY2VfdGVzdF9k YXRhOwo+ID4gPiDCoAlib29sIGNvbXBsaWFuY2VfdGVzdF9hY3RpdmU7Cj4gPiA+IMKgCXVuc2ln bmVkIGxvbmcgY29tcGxpYW5jZV9mb3JjZV9icGM7IC8qIDAgZm9yIGRlZmF1bHQgb3IgYnBjIHRv Cj4gPiA+IHVzZSAqLwo+ID4gPiArCXN0cnVjdCBjb21wbGlhbmNlX3Rlc3RfZGF0YSB0ZXN0X2Rh dGE7wqDCoMKgLyogYSBzdHJ1Y3R1cmUgdG8gaG9sZAo+ID4gPiBhbGwKPiA+ID4gZHAKPiA+ID4g KwkJCQkJCcKgwqAqIGNvbXBsaWFuY2UgdGVzdCBkYXRhCj4gPiA+ICsJCQkJCQnCoMKgKi8KPiA+ ID4gwqB9Owo+ID4gPiDCoAo+ID4gPiDCoHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgewo+ID4g PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0v ZHJtX2RwX2hlbHBlci5oCj4gPiA+IGluZGV4IDkyZDlhNTIuLjc0MjJkYzUgMTAwNjQ0Cj4gPiA+ IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAo+ID4gPiArKysgYi9pbmNsdWRlL2Ry bS9kcm1fZHBfaGVscGVyLmgKPiA+ID4gQEAgLTQxMiw3ICs0MTIsMTkgQEAKPiA+ID4gwqAKPiA+ ID4gwqAjZGVmaW5lIERQX1RFU1RfTEFORV9DT1VOVAkJwqDCoMKgwqAweDIyMAo+ID4gPiDCoAo+ ID4gPiAtI2RlZmluZSBEUF9URVNUX1BBVFRFUk4JCQnCoMKgwqDCoDB4MjIxCj4gPiA+ICsjZGVm aW5lIERQX1RFU1RfUEFUVEVSTgkJCQkweDIyMQo+ID4gPiArI2RlZmluZSBEUF9DT0xPUl9SQU1Q CQkJCSgxIDw8IDApCj4gPiA+ICsjZGVmaW5lIERQX1RFU1RfSF9XSURUSAkJCQkweDIyRQo+ID4g PiArI2RlZmluZSBEUF9URVNUX1ZfSEVJR0hUCQkJMHgyMzAKPiA+ID4gKyNkZWZpbmUgRFBfVEVT VF9NSVNDCQkJCTB4MjMyCj4gPiA+ICsjZGVmaW5lIERQX1RFU1RfTVNCX01BU0sJCQkweEZGMDAK PiA+ID4gKyNkZWZpbmUgRFBfVklERU9fUEFUVEVSTl9SR0JfRk9STUFUCQkwCj4gPiA+ICsjZGVm aW5lIERQX1RFU1RfQ09MT1JfRk9STUFUX01BU0sJCTB4Ngo+ID4gPiArI2RlZmluZSBEUF9URVNU X0RZTkFNSUNfUkFOR0VfTUFTSwkJKDEgPDwgMykKPiA+ID4gKyNkZWZpbmUgRFBfVklERU9fUEFU VEVSTl9WRVNBCQkJMAo+ID4gPiArI2RlZmluZSBEUF9URVNUX0JJVF9ERVBUSF9NQVNLCQkJMHgw MEUwCj4gPiA+ICsjZGVmaW5lIERQX1RFU1RfQklUX0RFUFRIXzYJCQkwCj4gPiA+ICsjZGVmaW5l IERQX1RFU1RfQklUX0RFUFRIXzgJCQkxCj4gPiBUaGlzIHNob3VsZCBiZSBpbiBhIHNlcGFyYXRl IHBhdGNoIHdpdGgKPiBJIGFncmVlLCBpIHdpbGwgc2VwYXJhdGUgdGhpcyBvdXQgaW50byBhIGRp ZmZlcmVudCBwYXRjaC4KPiA+IAo+ID4gCj4gPiBDYzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwo+ID4gCj4gPiA+IAo+ID4gPiDCoAo+ID4gPiDCoCNkZWZpbmUgRFBfVEVTVF9DUkNf Ul9DUgkJwqDCoMKgwqAweDI0MAo+ID4gPiDCoCNkZWZpbmUgRFBfVEVTVF9DUkNfR19ZCQkJwqDC oMKgwqAweDI0MgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK