From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH i-g-t] Add dmesg capture and dumping to tests and a test for it. Date: Wed, 18 Nov 2015 20:12:07 +0200 Message-ID: <1447870327.4481.6.camel@linux.intel.com> References: <1447680143-11895-1-git-send-email-joonas.lahtinen@linux.intel.com> <20151118154420.GC20799@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 00E9A6E63B for ; Wed, 18 Nov 2015 10:12:33 -0800 (PST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Thomas Wood , Daniel Vetter Cc: Intel graphics driver community testing & development List-Id: intel-gfx@lists.freedesktop.org T24ga2UsIDIwMTUtMTEtMTggYXQgMTc6NDEgKzAwMDAsIFRob21hcyBXb29kIHdyb3RlOgo+IE9u IDE4IE5vdmVtYmVyIDIwMTUgYXQgMTU6NDQsIERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5j aD4gd3JvdGU6Cj4gPiBPbiBNb24sIE5vdiAxNiwgMjAxNSBhdCAwMzoyMjoyM1BNICswMjAwLCBK b29uYXMgTGFodGluZW4gd3JvdGU6Cj4gPiA+IENjOiBUaG9tYXMgV29vZCA8dGhvbWFzLndvb2RA aW50ZWwuY29tPgo+ID4gPiBDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+Cj4gPiA+IENjOiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAaW50ZWwuY29tPgo+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51 eC5pbnRlbC5jb20+Cj4gPiAKPiA+IEdpdmVuIHRoYXQgd2UgaGF2ZSBhbGwgdGhhdCBpbiBwaWds aXQgYWxyZWFkeSB0aGUgY29tbWl0IG1lc3NhZ2UgaXMKPiA+IGEgYml0Cj4gPiB0aGluIG9uIGp1 c3RpZmljYXRpb24uIFdoeSBkbyB3ZSBuZWVkIHRoaXMgaW4gaWd0IHRvbz8gSG93IGRvZXMKPiA+ IHRoaXMKPiA+IGludGVyYWN0IHdpdGggdGhlIHBpZ2xpdCBkbWVzZyBjYXB0dXJlPwo+IAoKSW4g c2hvcnQsIGl0IG1ha2VzIElHVCBiZSBhYmxlIHRvIHJ1biB0aGUgdGVzdHMgb24gaXRzIG93biB3 aXRoIG9ubHkKc21hbGwgYWRkaXRpb25zIHRvIHRoZSBjdXJyZW50IGNvZGUsIGFuZCB0aGUgb3V0 cHV0IGNhbiB0aGVuIGJlIHBhcnNlZAp3aXRoIHBpZ2xpdCBvdXRzaWRlIG9mIHRoZSBEVVQuIEkg d2lsbCBhZGQgYSBjYW5vbmljYWwgb3B0aW9uIHRvCnByb2R1Y2UgYSBDU1YtbGlrZSBvdXRwdXQu IEl0J3MganVzdCBhYm91dCBtb3ZpbmcgYSBzbWFsbCBiaXQgb2YgdGhlCnRlc3QgcnVubmluZyBs b2dpYyB0byBJR1QgdG8gbWFrZSBpdCBwcm9kdWNlIG1lYW5pbmdmdWwgb3V0cHV0IG9uIGl0cwpv d24uCgo+IFRoZXJlIGFyZSBhIGZldyB0ZXN0cyB0aGF0IHJlbHkgb24gY2hlY2tpbmcgZG1lc2cg dG8gZGV0ZXJtaW5lIGlmIHRoZQo+IHRlc3QgZmFpbGVkIChzdWNoIGFzIGdlbV9oYW5nY2hlY2tf Zm9yY2V3YWtlIGFuZAo+IGttc19mbGlwX2V2ZW50X2xlYWspLgo+IEFsdGhvdWdoIG5vdCBpbXBs ZW1lbnRlZCBpbiB0aGlzIHBhdGNoLCBpdCBtaWdodCBiZSB1c2VmdWwgdG8gdXNlCj4gdGhpcwo+ IGZlYXR1cmUgdG8gYWN0dWFsbHkgcmVwb3J0IGEgZmFpbHVyZSBpbiB0aG9zZSBjYXNlcy4KPiAK Ck5leHQgdmVyc2lvbiBtYWtlcyBhbnkgdGVzdCBmYWlsIGlmIGtlcm5lbCBkb21haW4gbWVzc2Fn ZXMgd2l0aApwcmlvcml0eSBMT0dfTk9USUNFIG9yIGhpZ2hlciBhcmUgb3V0cHV0IGR1cmluZyB0 ZXN0LgoKUmVnYXJkcywgSm9vbmFzCgo+IAo+ID4gCj4gPiA+IC0tLQo+ID4gPiAgbGliL2lndF9j b3JlLmMgICAgICAgICB8IDExMwo+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tCj4gPiA+ICB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIHwgICAxICsK PiA+ID4gIHRlc3RzL2lndF9jYXB0dXJlLmMgICAgfCAgOTMKPiA+ID4gKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAyMDAgaW5z ZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0 cy9pZ3RfY2FwdHVyZS5jCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmMg Yi9saWIvaWd0X2NvcmUuYwo+ID4gPiBpbmRleCAwNGEwYWIyLi5lNzMxNzVhIDEwMDY0NAo+ID4g PiAtLS0gYS9saWIvaWd0X2NvcmUuYwo+ID4gPiArKysgYi9saWIvaWd0X2NvcmUuYwo+ID4gPiBA QCAtMjExLDYgKzIxMSw4IEBACj4gPiA+ICAgKiAiLS1oZWxwIiBjb21tYW5kIGxpbmUgb3B0aW9u Lgo+ID4gPiAgICovCj4gPiA+IAo+ID4gPiArI2RlZmluZSBJR1RfS01TR19DQVBUVVJFX0RVTVBf QlVGX1NJWkUgICAgICAgICAgICAgICA0MDk2Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyB1bnNpZ25l ZCBpbnQgZXhpdF9oYW5kbGVyX2NvdW50Owo+ID4gPiAgY29uc3QgY2hhciAqaWd0X2ludGVyYWN0 aXZlX2RlYnVnOwo+ID4gPiAKPiA+ID4gQEAgLTI0Nyw2ICsyNDksMTAgQEAgZW51bSB7Cj4gPiA+ ICBzdGF0aWMgaW50IGlndF9leGl0Y29kZSA9IElHVF9FWElUX1NVQ0NFU1M7Cj4gPiA+ICBzdGF0 aWMgY29uc3QgY2hhciAqY29tbWFuZF9zdHI7Cj4gPiA+IAo+ID4gPiArc3RhdGljIGludCBpZ3Rf a21zZ19jYXB0dXJlX2ZkOwo+ID4gPiArc3RhdGljIGNoYXIqIGlndF9rbXNnX2NhcHR1cmVfZHVt cF9idWY7Cj4gPiA+ICtzdGF0aWMgcHRocmVhZF9tdXRleF90IGttc2dfbXV0ZXggPSBQVEhSRUFE X01VVEVYX0lOSVRJQUxJWkVSOwo+ID4gPiArCj4gPiA+ICBzdGF0aWMgY2hhciogaWd0X2xvZ19k b21haW5fZmlsdGVyOwo+ID4gPiAgc3RhdGljIHN0cnVjdCB7Cj4gPiA+ICAgICAgIGNoYXIgKmVu dHJpZXNbMjU2XTsKPiA+ID4gQEAgLTMxMiw2ICszMTgsNzEgQEAgc3RhdGljIHZvaWQgX2lndF9s b2dfYnVmZmVyX2R1bXAodm9pZCkKPiA+ID4gICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJmxv Z19idWZmZXJfbXV0ZXgpOwo+ID4gPiAgfQo+ID4gPiAKPiA+ID4gK3N0YXRpYyB2b2lkIF9pZ3Rf a21zZ19jYXB0dXJlX3Jlc2V0KHZvaWQpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIGlmIChpZ3Rfa21z Z19jYXB0dXJlX2ZkID09IC0xKQo+ID4gPiArICAgICAgICAgICAgIHJldHVybjsKPiA+ID4gKwo+ ID4gPiArICAgICBwdGhyZWFkX211dGV4X2xvY2soJmttc2dfbXV0ZXgpOwo+ID4gPiArCj4gPiA+ ICsgICAgIGxzZWVrKGlndF9rbXNnX2NhcHR1cmVfZmQsIDAsIFNFRUtfRU5EKTsKPiA+ID4gKwo+ ID4gPiArICAgICBwdGhyZWFkX211dGV4X3VubG9jaygma21zZ19tdXRleCk7Cj4gPiA+ICt9Cj4g PiA+ICsKPiA+ID4gK3N0YXRpYyB2b2lkIF9pZ3Rfa21zZ19jYXB0dXJlX2R1bXAodm9pZCkKPiA+ ID4gK3sKPiA+ID4gKyAgICAgc2l6ZV90IG5ieXRlczsKPiA+ID4gKyAgICAgaW50IG5saW5lczsK PiA+ID4gKyAgICAgY2hhciAqcDsKPiA+ID4gKyAgICAgY2hhciAqcDA7Cj4gPiA+ICsgICAgIGlu dCBjOwo+ID4gPiArCj4gPiA+ICsgICAgIGlmIChpZ3Rfa21zZ19jYXB0dXJlX2ZkID09IC0xIHx8 Cj4gPiA+ICsgICAgICAgICBpZ3Rfa21zZ19jYXB0dXJlX2R1bXBfYnVmID09IE5VTEwpCj4gPiA+ ICsgICAgICAgICAgICAgcmV0dXJuOwo+ID4gPiArCj4gPiA+ICsgICAgIHB0aHJlYWRfbXV0ZXhf bG9jaygma21zZ19tdXRleCk7Cj4gPiA+ICsKPiA+ID4gKwo+ID4gPiArICAgICBubGluZXMgPSAw Owo+ID4gPiArICAgICBkbyB7Cj4gPiA+ICsgICAgICAgICAgICAgZXJybm8gPSAwOwo+ID4gPiAr ICAgICAgICAgICAgIG5ieXRlcyA9IHJlYWQoaWd0X2ttc2dfY2FwdHVyZV9mZCwKPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlndF9rbXNnX2NhcHR1cmVfZHVtcF9idWYsCj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBJR1RfS01TR19DQVBUVVJFX0RVTVBfQlVGX1NJ WkUpOwo+ID4gPiArCj4gPiA+ICsgICAgICAgICAgICAgaWYgKG5ieXRlcyA9PSAtMSkKPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gPiArCj4gPiA+ICsgICAgICAgICAg ICAgaWYgKCFubGluZXMpCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVy ciwgIioqKiogS01TRyAqKioqXG4iKTsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgIHAgPSBw MCA9IHN0cmNocihpZ3Rfa21zZ19jYXB0dXJlX2R1bXBfYnVmLCAnOycpICsKPiA+ID4gMTsKPiA+ ID4gKyAgICAgICAgICAgICB3aGlsZSAocCAtIHAwIDwgbmJ5dGVzKSB7Cj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICBpZiAoKnAgIT0gJ1xcJykgewo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmcHV0YygqcCsrLCBzdGRlcnIpOwo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb250aW51ZTsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIH0KPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgIHNzY2FuZihwLCAiXFx4JXgiLCAmYyk7Cj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICBmcHV0YyhjLCBzdGRlcnIpOwo+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgcCArPSA0Owo+ID4gPiArICAgICAgICAgICAgIH0KPiA+ID4gKyAgICAgICAgICAgICAv L2ZwdXRzKHN0cmNocihpZ3Rfa21zZ19jYXB0dXJlX2R1bXBfYnVmLCAnOycpICsgMSwKPiA+ID4g c3RkZXJyKTsKPiA+ID4gKyAgICAgICAgICAgICBubGluZXMrKzsKPiA+ID4gKyAgICAgfSB3aGls ZShlcnJubyA9PSAwKTsKPiA+ID4gKwo+ID4gPiArICAgICBpZiAobmxpbmVzKQo+ID4gPiArICAg ICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiKioqKiAgRU5EICAqKioqXG4iKTsKPiA+ID4gKyAg ICAgZWxzZQo+ID4gPiArICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiTm8ga21zZy5cbiIp Owo+ID4gPiArCj4gPiA+ICsgICAgIGlmIChlcnJubyAhPSBFQUdBSU4pCj4gPiA+ICsgICAgICAg ICAgICAgZnByaW50ZihzdGRlcnIsICJJbmNvbXBsZXRlIGttc2cuXG4iKTsKPiA+ID4gKwo+ID4g PiArICAgICBwdGhyZWFkX211dGV4X3VubG9jaygma21zZ19tdXRleCk7Cj4gPiA+ICt9Cj4gPiA+ ICsKPiA+ID4gIF9fYXR0cmlidXRlX18oKGZvcm1hdChwcmludGYsIDEsIDIpKSkKPiA+ID4gIHN0 YXRpYyB2b2lkIGttc2coY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCj4gPiA+ICAjZGVmaW5lIEtF Uk5fRU1FUiAgICAiPDA+Igo+ID4gPiBAQCAtMzMwLDExICs0MDEsMTUgQEAgc3RhdGljIHZvaWQg a21zZyhjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKPiA+ID4gICAgICAgaWYgKGZpbGUgPT0gTlVM TCkKPiA+ID4gICAgICAgICAgICAgICByZXR1cm47Cj4gPiA+IAo+ID4gPiArICAgICBwdGhyZWFk X211dGV4X2xvY2soJmttc2dfbXV0ZXgpOwo+ID4gPiArCj4gPiA+ICAgICAgIHZhX3N0YXJ0KGFw LCBmb3JtYXQpOwo+ID4gPiAgICAgICB2ZnByaW50ZihmaWxlLCBmb3JtYXQsIGFwKTsKPiA+ID4g ICAgICAgdmFfZW5kKGFwKTsKPiA+ID4gCj4gPiA+ICAgICAgIGZjbG9zZShmaWxlKTsKPiA+ID4g Kwo+ID4gPiArICAgICBwdGhyZWFkX211dGV4X3VubG9jaygma21zZ19tdXRleCk7Cj4gPiA+ICB9 Cj4gPiA+IAo+ID4gPiAgc3RhdGljIHZvaWQgZ2V0dGltZShzdHJ1Y3QgdGltZXNwZWMgKnRzKQo+ ID4gPiBAQCAtNTI3LDYgKzYwMiwxNSBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0KGludCAqYXJn YywgY2hhcgo+ID4gPiAqKmFyZ3YsCj4gPiA+ICAgICAgIGludCByZXQgPSAwOwo+ID4gPiAgICAg ICBjb25zdCBjaGFyICplbnY7Cj4gPiA+IAo+ID4gPiArICAgICBpZ3Rfa21zZ19jYXB0dXJlX2Zk ID0gb3BlbigiL2Rldi9rbXNnIiwgT19SRFdSIHwKPiA+ID4gT19OT05CTE9DSyk7Cj4gPiA+ICsg ICAgIGlmIChpZ3Rfa21zZ19jYXB0dXJlX2ZkICE9IC0xKSB7Cj4gPiA+ICsgICAgICAgICAgICAg aWd0X2ttc2dfY2FwdHVyZV9kdW1wX2J1ZiA9Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBt YWxsb2MoSUdUX0tNU0dfQ0FQVFVSRV9EVU1QX0JVRl9TSVpFKTsKPiA+ID4gKyAgICAgICAgICAg ICBpZihpZ3Rfa21zZ19jYXB0dXJlX2R1bXBfYnVmID09IE5VTEwpCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICBpZ3Rfd2FybigiVW5hYmxlIHRvIGFsbG9jYXRlIG1lbW9yeSwgIgo+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpbGwgbm90IGR1bXAga21zZy5cbiIpOwo+ ID4gPiArICAgICB9Cj4gPiA+ICsKPiA+ID4gICAgICAgaWYgKCFpc2F0dHkoU1RET1VUX0ZJTEVO TykgfHwgZ2V0ZW52KCJJR1RfUExBSU5fT1VUUFVUIikpCj4gPiA+ICAgICAgICAgICAgICAgX19p Z3RfcGxhaW5fb3V0cHV0ID0gdHJ1ZTsKPiA+ID4gCj4gPiA+IEBAIC03OTYsNiArODgwLDcgQEAg Ym9vbCBfX2lndF9ydW5fc3VidGVzdChjb25zdCBjaGFyCj4gPiA+ICpzdWJ0ZXN0X25hbWUpCj4g PiA+ICAgICAgIGlndF9kZWJ1ZygiU3RhcnRpbmcgc3VidGVzdDogJXNcbiIsIHN1YnRlc3RfbmFt ZSk7Cj4gPiA+IAo+ID4gPiAgICAgICBfaWd0X2xvZ19idWZmZXJfcmVzZXQoKTsKPiA+ID4gKyAg ICAgX2lndF9rbXNnX2NhcHR1cmVfcmVzZXQoKTsKPiA+ID4gCj4gPiA+ICAgICAgIGdldHRpbWUo JnN1YnRlc3RfdGltZSk7Cj4gPiA+ICAgICAgIHJldHVybiAoaW5fc3VidGVzdCA9IHN1YnRlc3Rf bmFtZSk7Cj4gPiA+IEBAIC05NzIsNiArMTA1Nyw3IEBAIHZvaWQgaWd0X2ZhaWwoaW50IGV4aXRj b2RlKQo+ID4gPiAgICAgICAgICAgICAgIGV4aXQoZXhpdGNvZGUpOwo+ID4gPiAKPiA+ID4gICAg ICAgX2lndF9sb2dfYnVmZmVyX2R1bXAoKTsKPiA+ID4gKyAgICAgX2lndF9rbXNnX2NhcHR1cmVf ZHVtcCgpOwo+ID4gPiAKPiA+ID4gICAgICAgaWYgKGluX3N1YnRlc3QpIHsKPiA+ID4gICAgICAg ICAgICAgICBpZiAoZXhpdGNvZGUgPT0gSUdUX0VYSVRfVElNRU9VVCkKPiA+ID4gQEAgLTEwNzIs MTYgKzExNTgsMjEgQEAgdm9pZCBfX2lndF9mYWlsX2Fzc2VydChjb25zdCBjaGFyCj4gPiA+ICpk b21haW4sIGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBsaW5lLAo+ID4gPiAgICovCj4gPiA+ ICB2b2lkIGlndF9leGl0KHZvaWQpCj4gPiA+ICB7Cj4gPiA+ICsgICAgIGludCBzdGF0dXMgPSBJ R1RfRVhJVF9TVUNDRVNTOwo+ID4gPiArCj4gPiA+ICAgICAgIGlndF9leGl0X2NhbGxlZCA9IHRy dWU7Cj4gPiA+IAo+ID4gPiAgICAgICBpZiAocnVuX3NpbmdsZV9zdWJ0ZXN0ICYmICFydW5fc2lu Z2xlX3N1YnRlc3RfZm91bmQpIHsKPiA+ID4gICAgICAgICAgICAgICBpZ3Rfd2FybigiVW5rbm93 biBzdWJ0ZXN0OiAlc1xuIiwKPiA+ID4gcnVuX3NpbmdsZV9zdWJ0ZXN0KTsKPiA+ID4gLSAgICAg ICAgICAgICBleGl0KElHVF9FWElUX0lOVkFMSUQpOwo+ID4gPiArICAgICAgICAgICAgIHN0YXR1 cyA9IElHVF9FWElUX0lOVkFMSUQ7Cj4gPiA+ICsgICAgICAgICAgICAgZ290byBkb19leGl0Owo+ ID4gPiAgICAgICB9Cj4gPiA+IAo+ID4gPiAKPiA+ID4gLSAgICAgaWYgKGlndF9vbmx5X2xpc3Rf c3VidGVzdHMoKSkKPiA+ID4gLSAgICAgICAgICAgICBleGl0KElHVF9FWElUX1NVQ0NFU1MpOwo+ ID4gPiArICAgICBpZiAoaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cygpKSB7Cj4gPiA+ICsgICAgICAg ICAgICAgc3RhdHVzID0gSUdUX0VYSVRfU1VDQ0VTUzsKPiA+ID4gKyAgICAgICAgICAgICBnb3Rv IGRvX2V4aXQ7Cj4gPiA+ICsgICAgIH0KPiA+ID4gCj4gPiA+ICAgICAgIGttc2coS0VSTl9JTkZP ICIlczogZXhpdGluZywgcmV0PSVkXG4iLCBjb21tYW5kX3N0ciwKPiA+ID4gaWd0X2V4aXRjb2Rl KTsKPiA+ID4gICAgICAgaWd0X2RlYnVnKCJFeGl0aW5nIHdpdGggc3RhdHVzIGNvZGUgJWRcbiIs IGlndF9leGl0Y29kZSk7Cj4gPiA+IEBAIC0xMTExLDE4ICsxMjAyLDI2IEBAIHZvaWQgaWd0X2V4 aXQodm9pZCkKPiA+ID4gCj4gPiA+IAo+ID4gPiAgICAgICAgICAgICAgIHByaW50ZigiJXMgKCUu M2ZzKVxuIiwgcmVzdWx0LCBlbGFwc2VkKTsKPiA+ID4gLSAgICAgICAgICAgICBleGl0KGlndF9l eGl0Y29kZSk7Cj4gPiA+ICsgICAgICAgICAgICAgc3RhdHVzID0gaWd0X2V4aXRjb2RlOwo+ID4g PiArICAgICAgICAgICAgIGdvdG8gZG9fZXhpdDsKPiA+ID4gICAgICAgfQo+ID4gPiAKPiA+ID4g ICAgICAgLyogQ2FsbGluZyB0aGlzIHdpdGhvdXQgY2FsbGluZyBvbmUgb2YgdGhlIGFib3ZlIGlz IGEKPiA+ID4gZmFpbHVyZSAqLwo+ID4gPiAgICAgICBhc3NlcnQoc2tpcHBlZF9vbmUgfHwgc3Vj Y2VlZGVkX29uZSB8fCBmYWlsZWRfb25lKTsKPiA+ID4gCj4gPiA+ICAgICAgIGlmIChmYWlsZWRf b25lKQo+ID4gPiAtICAgICAgICAgICAgIGV4aXQoaWd0X2V4aXRjb2RlKTsKPiA+ID4gKyAgICAg ICAgICAgICBzdGF0dXMgPSBpZ3RfZXhpdGNvZGU7Cj4gPiA+ICAgICAgIGVsc2UgaWYgKHN1Y2Nl ZWRlZF9vbmUpCj4gPiA+IC0gICAgICAgICAgICAgZXhpdChJR1RfRVhJVF9TVUNDRVNTKTsKPiA+ ID4gKyAgICAgICAgICAgICBzdGF0dXMgPSBJR1RfRVhJVF9TVUNDRVNTOwo+ID4gPiAgICAgICBl bHNlCj4gPiA+IC0gICAgICAgICAgICAgZXhpdChJR1RfRVhJVF9TS0lQKTsKPiA+ID4gKyAgICAg ICAgICAgICBzdGF0dXMgPSBJR1RfRVhJVF9TS0lQOwo+ID4gPiArZG9fZXhpdDoKPiA+ID4gKyAg ICAgaWYgKGlndF9rbXNnX2NhcHR1cmVfZmQgIT0gLTEpCj4gPiA+ICsgICAgICAgICAgICAgY2xv c2UoaWd0X2ttc2dfY2FwdHVyZV9mZCk7Cj4gPiA+ICsgICAgIGlmIChpZ3Rfa21zZ19jYXB0dXJl X2R1bXBfYnVmICE9IE5VTEwpCj4gPiA+ICsgICAgICAgICAgICAgZnJlZShpZ3Rfa21zZ19jYXB0 dXJlX2R1bXBfYnVmKTsKPiA+ID4gKwo+ID4gPiArICAgICBleGl0KHN0YXR1cyk7Cj4gPiA+ICB9 Cj4gPiA+IAo+ID4gPiAgLyogZm9yayBzdXBwb3J0IGNvZGUgKi8KPiA+ID4gZGlmZiAtLWdpdCBh L3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4gPiA+IGlu ZGV4IDhmYjJkZTguLjI1ZjBjNGEgMTAwNjQ0Cj4gPiA+IC0tLSBhL3Rlc3RzL01ha2VmaWxlLnNv dXJjZXMKPiA+ID4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ID4gPiBAQCAtNjIsNiAr NjIsNyBAQCBURVNUU19wcm9nc19NID0gXAo+ID4gPiAgICAgICBnZW1fdGlsZWRfcGFydGlhbF9w d3JpdGVfcHJlYWQgXAo+ID4gPiAgICAgICBnZW1fdXNlcnB0cl9ibGl0cyBcCj4gPiA+ICAgICAg IGdlbV93cml0ZV9yZWFkX3Jpbmdfc3dpdGNoIFwKPiA+ID4gKyAgICAgaWd0X2NhcHR1cmUgXAo+ ID4gPiAgICAgICBrbXNfYWRkZmJfYmFzaWMgXAo+ID4gPiAgICAgICBrbXNfYXRvbWljIFwKPiA+ ID4gICAgICAga21zX2N1cnNvcl9jcmMgXAo+ID4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaWd0X2Nh cHR1cmUuYyBiL3Rlc3RzL2lndF9jYXB0dXJlLmMKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQK PiA+ID4gaW5kZXggMDAwMDAwMC4uZmQwMDhkMAo+ID4gPiAtLS0gL2Rldi9udWxsCj4gPiA+ICsr KyBiL3Rlc3RzL2lndF9jYXB0dXJlLmMKPiA+ID4gQEAgLTAsMCArMSw5MyBAQAo+ID4gPiArLyoK PiA+ID4gKyAqIENvcHlyaWdodCDCqSAyMDE1IEludGVsIENvcnBvcmF0aW9uCj4gPiA+ICsgKgo+ ID4gPiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24KPiA+ID4gb2J0YWluaW5nIGEKPiA+ID4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKPiA+ID4gIlNvZnR3 YXJlIiksCj4gPiA+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcKPiA+ID4gd2l0aG91dCBsaW1pdGF0aW9uCj4gPiA+ICsgKiB0aGUgcmln aHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwKPiA+ ID4gc3VibGljZW5zZSwKPiA+ID4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0bwo+ID4gPiB3aG9tIHRoZQo+ID4gPiArICogU29m dHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcKPiA+ ID4gY29uZGl0aW9uczoKPiA+ID4gKyAqCj4gPiA+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZQo+ID4gPiAoaW5jbHVkaW5nIHRoZSBuZXh0 Cj4gPiA+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwKPiA+ID4gcG9ydGlvbnMgb2YgdGhlCj4gPiA+ICsgKiBTb2Z0d2FyZS4KPiA+ ID4gKyAqCj4gPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkKPiA+ID4gS0lORCwgRVhQUkVTUyBPUgo+ID4gPiArICogSU1QTElF RCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgo+ID4gPiBN RVJDSEFOVEFCSUxJVFksCj4gPiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8KPiA+ID4gRVZFTlQgU0hBTEwKPiA+ID4gKyAq IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN LAo+ID4gPiBEQU1BR0VTIE9SIE9USEVSCj4gPiA+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g QU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCj4gPiA+IE9USEVSV0lTRSwgQVJJU0lORwo+ ID4gPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUgo+ID4gPiBPVEhFUiBERUFMSU5HUwo+ID4gPiArICogSU4gVEhFIFNPRlRX QVJFLgo+ID4gPiArICoKPiA+ID4gKyAqIEF1dGhvcnM6Cj4gPiA+ICsgKiAgICBKb29uYXMgTGFo dGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ICsgKgo+ID4gPiAr ICovCj4gPiA+ICsKPiA+ID4gKyNpbmNsdWRlICJpZ3QuaCIKPiA+ID4gKyNpbmNsdWRlIDx1bmlz dGQuaD4KPiA+ID4gKyNpbmNsdWRlIDxzdGRsaWIuaD4KPiA+ID4gKyNpbmNsdWRlIDxzdGRpby5o Pgo+ID4gPiArI2luY2x1ZGUgPHN0cmluZy5oPgo+ID4gPiArI2luY2x1ZGUgPGZjbnRsLmg+Cj4g PiA+ICsjaW5jbHVkZSA8aW50dHlwZXMuaD4KPiA+ID4gKyNpbmNsdWRlIDxlcnJuby5oPgo+ID4g PiArI2luY2x1ZGUgPHN5cy9zdGF0Lmg+Cj4gPiA+ICsjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Cj4g PiA+ICsKPiA+ID4gK3N0YXRpYyBGSUxFKiBrbXNnOwo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9p ZAo+ID4gPiArdGVzdF9rbXNnKHZvaWQpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIGZwdXRzKCJURVNU IChLTVNHKVxuIiwga21zZyk7Cj4gPiA+ICsgICAgIGZmbHVzaChrbXNnKTsKPiA+ID4gKyAgICAg aWd0X2ZhaWwoSUdUX0VYSVRfRkFJTFVSRSk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRp YyB2b2lkCj4gPiA+ICt0ZXN0X3dhcm4odm9pZCkKPiA+ID4gK3sKPiA+ID4gKyAgICAgaWd0X3dh cm4oIlRFU1QgKFdBUk4pXG4iKTsKPiA+ID4gKyAgICAgaWd0X2ZhaWwoSUdUX0VYSVRfRkFJTFVS RSk7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyB2b2lkCj4gPiA+ICt0ZXN0X2RlYnVn KHZvaWQpCj4gPiA+ICt7Cj4gPiA+ICsgICAgIGlndF9kZWJ1ZygiVEVTVCAoREVCVUcpXG4iKTsK PiA+ID4gKyAgICAgaWd0X2ZhaWwoSUdUX0VYSVRfRkFJTFVSRSk7Cj4gPiA+ICt9Cj4gPiA+ICsK PiA+ID4gK3N0YXRpYyB2b2lkCj4gPiA+ICt0ZXN0X2NvbWJpbmVkKHZvaWQpCj4gPiA+ICt7Cj4g PiA+ICsgICAgIGlndF93YXJuKCJURVNUICMxIChXQVJOKVxuIik7Cj4gPiA+ICsgICAgIGZwdXRz KCJURVNUICMxXG4iLCBrbXNnKTsKPiA+ID4gKyAgICAgaWd0X3dhcm4oIlRFU1QgIzIgKFdBUk4p XG4iKTsKPiA+ID4gKyAgICAgZnB1dHMoIlRFU1QgIzJcbiIsIGttc2cpOwo+ID4gPiArICAgICBm Zmx1c2goa21zZyk7Cj4gPiA+ICsgICAgIGlndF9mYWlsKElHVF9FWElUX0ZBSUxVUkUpOwo+ID4g PiArfQo+ID4gPiArCj4gPiA+ICtpZ3RfbWFpbgo+ID4gPiArewo+ID4gPiArICAgICBpZ3RfZml4 dHVyZSB7Cj4gPiA+ICsgICAgICAgICAgICAga21zZyA9IGZvcGVuKCIvZGV2L2ttc2ciLCAidyIp Owo+ID4gPiArICAgICAgICAgICAgIGlndF9yZXF1aXJlKGttc2cgIT0gTlVMTCk7Cj4gPiA+ICsg ICAgIH0KPiA+ID4gKwo+ID4gPiArICAgICBpZ3Rfc3VidGVzdCgia21zZyIpCj4gPiA+ICsgICAg ICAgICAgICAgdGVzdF9rbXNnKCk7Cj4gPiA+ICsgICAgIGlndF9zdWJ0ZXN0KCJ3YXJuIikKPiA+ ID4gKyAgICAgICAgICAgICB0ZXN0X3dhcm4oKTsKPiA+ID4gKyAgICAgaWd0X3N1YnRlc3QoImRl YnVnIikKPiA+ID4gKyAgICAgICAgICAgICB0ZXN0X2RlYnVnKCk7Cj4gPiA+ICsgICAgIGlndF9z dWJ0ZXN0KCJjb21iaW5lZCIpCj4gPiA+ICsgICAgICAgICAgICAgdGVzdF9jb21iaW5lZCgpOwo+ ID4gPiArCj4gPiA+ICsgICAgIGlndF9maXh0dXJlIHsKPiA+ID4gKyAgICAgICAgICAgICBmY2xv c2Uoa21zZyk7Cj4gPiA+ICsgICAgIH0KPiA+ID4gK30KPiA+ID4gLS0KPiA+ID4gMi40LjMKPiA+ ID4gCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+ID4gPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cj4gPiAKPiA+IC0tCj4gPiBEYW5pZWwgVmV0dGVyCj4gPiBTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCi0t IApKb29uYXMgTGFodGluZW4KT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKSW50ZWwgQ29y cG9yYXRpb24KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==