From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 406C36F9F2 for ; Fri, 8 Nov 2019 16:13:03 +0000 (UTC) Date: Fri, 8 Nov 2019 17:13:00 +0100 From: Katarzyna Dec Message-ID: <20191108161300.GE28532@kdec5-desk.ger.corp.intel.com> References: <20191024110546.25569-1-petri.latvala@intel.com> <20191024110546.25569-8-petri.latvala@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191024110546.25569-8-petri.latvala@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 7/8] perf_pmu: Use dynamic subtests 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: Tvrtko Ursulin Cc: igt-dev@lists.freedesktop.org, Petri Latvala List-ID: T24gVGh1LCBPY3QgMjQsIDIwMTkgYXQgMDI6MDU6NDVQTSArMDMwMCwgUGV0cmkgTGF0dmFsYSB3 cm90ZToKPiBJbnN0ZWFkIG9mIGdlbmVyYXRpbmcgYSBzdWJ0ZXN0IGZvciBlYWNoIGVuZ2luZSBp biBhIHN0YXRpYyBsaXN0LAo+IGNvbnZlcnQgdG8gZHluYW1pYyBzdWJ0ZXN0cywgd2l0aCBvbmUg ZHluYW1pYyBzdWJ0ZXN0IHBlciBhY3R1YWxseQo+IHByZXNlbnQgcGh5c2ljYWwgZW5naW5lLgo+ IAo+IEluIGFkZGl0aW9uLCBjb252ZXJ0IGNvbW1lbnRzIHRvIGlndF9kZXNjcmliZSBjYWxscyBh bmQgZ2VuZXJhbGx5Cj4gcmVmYWN0b3IgdGhlIGxvdCB0byBhIHNlcmllcyBvZiBzaW1wbGVyIGxv b3BzLgoKVHZya28sIGlzIHRoZXJlIGEgY2hhbmNlIHlvdSBjb3VsZCBsb29rIGF0IGR5bmFtaWMg ZW5naW5lcyB1c2FnZSBoZXJlIGFuZCBnaXZlCnItYj8gSXQgd2lsbCBhbGxvdyB1cyB0byBtZXJn ZSB3aG9sZSBzZXJpZXMuCgpIYXZlIGEgbmljZSBkYXkhCkthc2lhIDopCj4gCj4gU2lnbmVkLW9m Zi1ieTogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+Cj4gLS0tCj4gIHRl c3RzL3BlcmZfcG11LmMgfCAyNDQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAxMzkgZGVs ZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL3BlcmZfcG11LmMgYi90ZXN0cy9wZXJm X3BtdS5jCj4gaW5kZXggZTJiZDJjYzUuLjZhNGE2MDBlIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL3Bl cmZfcG11LmMKPiArKysgYi90ZXN0cy9wZXJmX3BtdS5jCj4gQEAgLTI3MCw3ICsyNzAsNyBAQCBz dGF0aWMgdm9pZCBlbmRfc3BpbihpbnQgZmQsIGlndF9zcGluX3QgKnNwaW4sIHVuc2lnbmVkIGlu dCBmbGFncykKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiAtc2luZ2xlKGludCBnZW1fZmQsIGNv bnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwgdW5zaWduZWQgaW50IGZsYWdz KQo+ICtzaW5nbGUoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdp bmUyICplLCB1bnNpZ25lZCBpbnQgbnVtX2VuZ2luZXMsIHVuc2lnbmVkIGludCBmbGFncykKPiAg ewo+ICAJdW5zaWduZWQgbG9uZyBzbGVwdDsKPiAgCWlndF9zcGluX3QgKnNwaW47Cj4gQEAgLTYw Niw3ICs2MDYsNyBAQCBhbGxfYnVzeV9jaGVja19hbGwoaW50IGdlbV9mZCwgY29uc3QgdW5zaWdu ZWQgaW50IG51bV9lbmdpbmVzLAo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IC1ub19zZW1hKGlu dCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwgdW5zaWdu ZWQgaW50IGZsYWdzKQo+ICtub19zZW1hKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9l eGVjdXRpb25fZW5naW5lMiAqZSwgdW5zaWduZWQgaW50IG51bV9lbmdpbmVzLCB1bnNpZ25lZCBp bnQgZmxhZ3MpCj4gIHsKPiAgCWlndF9zcGluX3QgKnNwaW47Cj4gIAl1aW50NjRfdCB2YWxbMl1b Ml07Cj4gQEAgLTY0Niw3ICs2NDYsNyBAQCBub19zZW1hKGludCBnZW1fZmQsIGNvbnN0IHN0cnVj dCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwgdW5zaWduZWQgaW50IGZsYWdzKQo+ICAKPiAg c3RhdGljIHZvaWQKPiAgc2VtYV93YWl0KGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9l eGVjdXRpb25fZW5naW5lMiAqZSwKPiAtCSAgdW5zaWduZWQgaW50IGZsYWdzKQo+ICsJICB1bnNp Z25lZCBpbnQgbnVtX2VuZ2luZXMsIHVuc2lnbmVkIGludCBmbGFncykKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X2dlbV9yZWxvY2F0aW9uX2VudHJ5IHJlbG9jWzJdID0ge307Cj4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbMl0gPSB7fTsKPiBAQCAtODA5LDYgKzgwOSw3 IEBAIF9fc2VtYV9idXN5KGludCBnZW1fZmQsIGludCBwbXUsCj4gIHN0YXRpYyB2b2lkCj4gIHNl bWFfYnVzeShpbnQgZ2VtX2ZkLAo+ICAJICBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2Vu Z2luZTIgKmUsCj4gKwkgIHVuc2lnbmVkIGludCBudW1fZW5naW5lcywKPiAgCSAgdW5zaWduZWQg aW50IGZsYWdzKQo+ICB7Cj4gIAljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIg KnNpZ25hbDsKPiBAQCAtMTc3MCw2ICsxNzcxLDI3IEBAIGlndF9tYWluCj4gIAlpbnQgZmQgPSAt MTsKPiAgCXN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTsKPiAgCXVuc2lnbmVkIGlu dCBpOwo+ICsJY29uc3QgdW5zaWduZWQgaW50IHBjdFtdID0geyAyLCA1MCwgOTggfTsKPiArCXN0 cnVjdCB7Cj4gKwkJdm9pZCAoKmZ1bmMpKGludCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlv bl9lbmdpbmUyICosIHVuc2lnbmVkIGludCwgdW5zaWduZWQgaW50KTsKPiArCQljb25zdCBjaGFy ICpuYW1lOwo+ICsJCXVuc2lnbmVkIGludCBmbGFnczsKPiArCQljb25zdCBjaGFyICpkZXNjOwo+ ICsJfSBidXN5aWRsZV90ZXN0c1tdID0gewo+ICsJCXsgc2luZ2xlLCAiaWRsZSIsIDAsICJUZXN0 IHRoYXQgZW5naW5lcyBzaG93IG5vIGxvYWQgd2hlbiBpZGxlLiIgfSwKPiArCQl7IHNpbmdsZSwg ImJ1c3kiLCBURVNUX0JVU1ksICJUZXN0IHRoYXQgYSBzaW5nbGUgZW5naW5lIHJlcG9ydHMgbG9h ZCBjb3JyZWN0bHkuIiB9LAo+ICsJCXsgc2luZ2xlLCAiYnVzeS1pZGxlIiwgVEVTVF9CVVNZIHwg VEVTVF9UUkFJTElOR19JRExFLCAiVGVzdCB0aGF0IGEgc2luZ2xlIGVuZ2luZSByZXBvcnRzIGxv YWQgY29ycmVjdGx5LiIgfSwKPiArCQl7IGJ1c3lfY2hlY2tfYWxsLCAiYnVzeS1jaGVjay1hbGwi LCBURVNUX0JVU1ksICJUZXN0IHRoYXQgd2hlbiBvbmUgZW5naW5lIGlzIGxvYWRlZCwgb3RoZXJz IHJlcG9ydCBubyBsb2FkLiIgfSwKPiArCQl7IGJ1c3lfY2hlY2tfYWxsLCAiYnVzeS1pZGxlLWNo ZWNrLWFsbCIsIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdfSURMRSwgIlRlc3QgdGhhdCBvbmUg b25lIGVuZ2luZSBpcyBsb2FkZWQsIG90aGVycyByZXBvcnQgbm8gbG9hZC4iIH0sCj4gKwkJeyBt b3N0X2J1c3lfY2hlY2tfYWxsLCAibW9zdC1idXN5LWNoZWNrLWFsbCIsIFRFU1RfQlVTWSwgIlRl c3QgdGhhdCB3aGVuIGFsbCBleGNlcHQgb25lIGVuZ2luZSBhcmUgbG9hZGVkIGFsbCBsb2FkcyBh cmUgY29ycmVjdGx5IHJlcG9ydGVkLiIgfSwKPiArCQl7IG1vc3RfYnVzeV9jaGVja19hbGwsICJt b3N0LWJ1c3ktaWRsZS1jaGVjay1hbGwiLCBURVNUX0JVU1kgfCBURVNUX1RSQUlMSU5HX0lETEUs ICJUZXN0IHRoYXQgd2hlbiBhbGwgZXhjZXB0IG9uZSBlbmdpbmUgYXJlIGxvYWRlZCBhbGwgbG9h ZHMgYXJlIGNvcnJlY3RseSByZXBvcnRlZC4iIH0sCj4gKwkJeyBub19zZW1hLCAiaWRsZS1uby1z ZW1hcGhvcmVzIiwgMCwgIlRlc3QgdGhhdCBzZW1hcGhvcmUgY291bnRlcnMgcmVwb3J0IG5vIGFj dGl2aXR5IG9uIGlkbGUgZW5naW5lcy4iIH0sCj4gKwkJeyBub19zZW1hLCAiYnVzeS1uby1zZW1h cGhvcmVzIiwgVEVTVF9CVVNZLCAiVGVzdCB0aGF0IHNlbWFwaG9yZSBjb3VudGVycyByZXBvcnQg bm8gYWN0aXZpdHkgb24gYnVzeSBlbmdpbmVzLiIgfSwKPiArCQl7IG5vX3NlbWEsICJidXN5LWlk bGUtbm8tc2VtYXBob3JlcyIsIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdfSURMRSwgIlRlc3Qg dGhhdCBzZW1hcGhvcmUgY291bnRlcnMgcmVwb3J0IG5vIGFjdGl2aXR5IG9uIGlkbGUgb3IgYnVz eSBlbmdpbmVzLiIgfSwKPiArCQl7IHNlbWFfd2FpdCwgInNlbWFwaG9yZS13YWl0IiwgVEVTVF9C VVNZLCAiVGVzdCB0aGF0IHNlbWFwaG9yZSB3YWl0cyBhcmUgY29ycmVjdGx5IHJlcG9ydGVkLiIg fSwKPiArCQl7IHNlbWFfd2FpdCwgInNlbWFwaG9yZS13YWl0LWlkbGUiLCBURVNUX0JVU1kgfCBU RVNUX1RSQUlMSU5HX0lETEUsICJUZXN0IHRoYXQgc2VtYXBob3JlIHdhaXRzIGFyZSBjb3JyZWN0 bHkgcmVwb3J0ZWQuIiB9LAo+ICsJCXsgc2VtYV9idXN5LCAic2VtYXBob3JlLWJ1c3kiLCAwLCAi VGVzdCB0aGF0IHNlbWFwaG9yZSB0aW1lIGFuZCBidXN5IHRpbWUgZGlmZmVyZW5jZSBpcyB1bmRl ciBhIHRocmVzaG9sZC4iIH0sCj4gKwl9Owo+ICAKPiAgCWlndF9maXh0dXJlIHsKPiAgCQlmZCA9 IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsKPiBAQCAtMTc4MSwxNDQgKzE4 MDMsODkgQEAgaWd0X21haW4KPiAgCQkJbnVtX2VuZ2luZXMrKzsKPiAgCX0KPiAgCj4gLQkvKioK PiAtCSAqIFRlc3QgaW52YWxpZCBhY2Nlc3MgdmlhIHBlcmYgQVBJIGlzIHJlamVjdGVkLgo+IC0J ICovCj4gKwlpZ3RfZGVzY3JpYmUoIlRlc3QgdGhhdCBpbnZhbGlkIGFjY2VzcyB2aWEgcGVyZiBB UEkgaXMgcmVqZWN0ZWQuIik7Cj4gIAlpZ3Rfc3VidGVzdCgiaW52YWxpZC1pbml0IikKPiAgCQlp bnZhbGlkX2luaXQoKTsKPiAgCj4gLQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkg ewo+IC0JCWNvbnN0IHVuc2lnbmVkIGludCBwY3RbXSA9IHsgMiwgNTAsIDk4IH07Cj4gLQo+IC0J CS8qKgo+IC0JCSAqIFRlc3QgdGhhdCBhIHNpbmdsZSBlbmdpbmUgbWV0cmljIGNhbiBiZSBpbml0 aWFsaXplZCBvciBpdAo+IC0JCSAqIGlzIGNvcnJlY3RseSByZWplY3RlZC4KPiAtCQkgKi8KPiAt CQlpZ3Rfc3VidGVzdF9mKCJpbml0LWJ1c3ktJXMiLCBlLT5uYW1lKQo+IC0JCQlpbml0KGZkLCBl LCBJOTE1X1NBTVBMRV9CVVNZKTsKPiAtCj4gLQkJaWd0X3N1YnRlc3RfZigiaW5pdC13YWl0LSVz IiwgZS0+bmFtZSkKPiAtCQkJaW5pdChmZCwgZSwgSTkxNV9TQU1QTEVfV0FJVCk7Cj4gLQo+IC0J CWlndF9zdWJ0ZXN0X2YoImluaXQtc2VtYS0lcyIsIGUtPm5hbWUpCj4gLQkJCWluaXQoZmQsIGUs IEk5MTVfU0FNUExFX1NFTUEpOwo+IC0KPiAtCQkvKioKPiAtCQkgKiBUZXN0IHRoYXQgZW5naW5l cyBzaG93IG5vIGxvYWQgd2hlbiBpZGxlLgo+IC0JCSAqLwo+IC0JCWlndF9zdWJ0ZXN0X2YoImlk bGUtJXMiLCBlLT5uYW1lKQo+IC0JCQlzaW5nbGUoZmQsIGUsIDApOwo+IC0KPiAtCQkvKioKPiAt CQkgKiBUZXN0IHRoYXQgYSBzaW5nbGUgZW5naW5lIHJlcG9ydHMgbG9hZCBjb3JyZWN0bHkuCj4g LQkJICovCj4gLQkJaWd0X3N1YnRlc3RfZigiYnVzeS0lcyIsIGUtPm5hbWUpCj4gLQkJCXNpbmds ZShmZCwgZSwgVEVTVF9CVVNZKTsKPiAtCQlpZ3Rfc3VidGVzdF9mKCJidXN5LWlkbGUtJXMiLCBl LT5uYW1lKQo+IC0JCQlzaW5nbGUoZmQsIGUsIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdfSURM RSk7Cj4gLQo+IC0JCS8qKgo+IC0JCSAqIFRlc3QgdGhhdCB3aGVuIG9uZSBlbmdpbmUgaXMgbG9h ZGVkIG90aGVyIHJlcG9ydCBubwo+IC0JCSAqIGxvYWQuCj4gLQkJICovCj4gLQkJaWd0X3N1YnRl c3RfZigiYnVzeS1jaGVjay1hbGwtJXMiLCBlLT5uYW1lKQo+IC0JCQlidXN5X2NoZWNrX2FsbChm ZCwgZSwgbnVtX2VuZ2luZXMsIFRFU1RfQlVTWSk7Cj4gLQkJaWd0X3N1YnRlc3RfZigiYnVzeS1p ZGxlLWNoZWNrLWFsbC0lcyIsIGUtPm5hbWUpCj4gLQkJCWJ1c3lfY2hlY2tfYWxsKGZkLCBlLCBu dW1fZW5naW5lcywKPiAtCQkJCSAgICAgICBURVNUX0JVU1kgfCBURVNUX1RSQUlMSU5HX0lETEUp Owo+IC0KPiAtCQkvKioKPiAtCQkgKiBUZXN0IHRoYXQgd2hlbiBhbGwgZXhjZXB0IG9uZSBlbmdp bmUgYXJlIGxvYWRlZCBhbGwKPiAtCQkgKiBsb2FkcyBhcmUgY29ycmVjdGx5IHJlcG9ydGVkLgo+ IC0JCSAqLwo+IC0JCWlndF9zdWJ0ZXN0X2YoIm1vc3QtYnVzeS1jaGVjay1hbGwtJXMiLCBlLT5u YW1lKQo+IC0JCQltb3N0X2J1c3lfY2hlY2tfYWxsKGZkLCBlLCBudW1fZW5naW5lcywKPiAtCQkJ CQkgICAgVEVTVF9CVVNZKTsKPiAtCQlpZ3Rfc3VidGVzdF9mKCJtb3N0LWJ1c3ktaWRsZS1jaGVj ay1hbGwtJXMiLCBlLT5uYW1lKQo+IC0JCQltb3N0X2J1c3lfY2hlY2tfYWxsKGZkLCBlLCBudW1f ZW5naW5lcywKPiAtCQkJCQkgICAgVEVTVF9CVVNZIHwKPiAtCQkJCQkgICAgVEVTVF9UUkFJTElO R19JRExFKTsKPiAtCj4gLQkJLyoqCj4gLQkJICogVGVzdCB0aGF0IHNlbXBob3JlIGNvdW50ZXJz IHJlcG9ydCBubyBhY3Rpdml0eSBvbgo+IC0JCSAqIGlkbGUgb3IgYnVzeSBlbmdpbmVzLgo+IC0J CSAqLwo+IC0JCWlndF9zdWJ0ZXN0X2YoImlkbGUtbm8tc2VtYXBob3Jlcy0lcyIsIGUtPm5hbWUp Cj4gLQkJCW5vX3NlbWEoZmQsIGUsIDApOwo+IC0KPiAtCQlpZ3Rfc3VidGVzdF9mKCJidXN5LW5v LXNlbWFwaG9yZXMtJXMiLCBlLT5uYW1lKQo+IC0JCQlub19zZW1hKGZkLCBlLCBURVNUX0JVU1kp Owo+IC0KPiAtCQlpZ3Rfc3VidGVzdF9mKCJidXN5LWlkbGUtbm8tc2VtYXBob3Jlcy0lcyIsIGUt Pm5hbWUpCj4gLQkJCW5vX3NlbWEoZmQsIGUsIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdfSURM RSk7Cj4gLQo+IC0JCS8qKgo+IC0JCSAqIFRlc3QgdGhhdCBzZW1hcGhvcmUgd2FpdHMgYXJlIGNv cnJlY3RseSByZXBvcnRlZC4KPiAtCQkgKi8KPiAtCQlpZ3Rfc3VidGVzdF9mKCJzZW1hcGhvcmUt d2FpdC0lcyIsIGUtPm5hbWUpCj4gLQkJCXNlbWFfd2FpdChmZCwgZSwgVEVTVF9CVVNZKTsKPiAt Cj4gLQkJaWd0X3N1YnRlc3RfZigic2VtYXBob3JlLXdhaXQtaWRsZS0lcyIsIGUtPm5hbWUpCj4g LQkJCXNlbWFfd2FpdChmZCwgZSwKPiAtCQkJCSAgVEVTVF9CVVNZIHwgVEVTVF9UUkFJTElOR19J RExFKTsKPiArCWlndF9kZXNjcmliZSgiVGVzdCB0aGF0IGEgc2luZ2xlIGVuZ2luZSBtZXRyaWMg Y2FuIGJlIGluaXRpYWxpemVkICIKPiArCQkgICAgICJvciBpdCBpcyBjb3JyZWN0bHkgcmVqZWN0 ZWQuIik7Cj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoImluaXQtYnVz eSIpCj4gKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpCj4gKwkJCWlndF9keW5h bWljX3N1YnN1YnRlc3RfZigiJXMiLCBlLT5uYW1lKQo+ICsJCQkJaW5pdChmZCwgZSwgSTkxNV9T QU1QTEVfQlVTWSk7Cj4gIAo+IC0JCWlndF9zdWJ0ZXN0X2YoInNlbWFwaG9yZS1idXN5LSVzIiwg ZS0+bmFtZSkKPiAtCQkJc2VtYV9idXN5KGZkLCBlLCAwKTsKPiArCWlndF9kZXNjcmliZSgiVGVz dCB0aGF0IGEgc2luZ2xlIGVuZ2luZSBtZXRyaWMgY2FuIGJlIGluaXRpYWxpemVkICIKPiArCQkg ICAgICJvciBpdCBpcyBjb3JyZWN0bHkgcmVqZWN0ZWQuIik7Cj4gKwlpZ3Rfc3VidGVzdF93aXRo X2R5bmFtaWNfc3Vic3VidGVzdHMoImluaXQtd2FpdCIpCj4gKwkJX19mb3JfZWFjaF9waHlzaWNh bF9lbmdpbmUoZmQsIGUpCj4gKwkJCWlndF9keW5hbWljX3N1YnN1YnRlc3RfZigiJXMiLCBlLT5u YW1lKQo+ICsJCQkJaW5pdChmZCwgZSwgSTkxNV9TQU1QTEVfV0FJVCk7Cj4gIAo+IC0JCS8qKgo+ IC0JCSAqIENoZWNrIHRoYXQgdHdvIHBlcmYgY2xpZW50cyBkbyBub3QgaW5mbHVlbmNlIGVhY2gK PiAtCQkgKiBvdGhlcnMgb2JzZXJ2YXRpb25zLgo+IC0JCSAqLwo+IC0JCWlndF9zdWJ0ZXN0X2Yo Im11bHRpLWNsaWVudC0lcyIsIGUtPm5hbWUpCj4gLQkJCW11bHRpX2NsaWVudChmZCwgZSk7Cj4g KwlpZ3RfZGVzY3JpYmUoIlRlc3QgdGhhdCBhIHNpbmdsZSBlbmdpbmUgbWV0cmljIGNhbiBiZSBp bml0aWFsaXplZCAiCj4gKwkJICAgICAib3IgaXQgaXMgY29ycmVjdGx5IHJlamVjdGVkLiIpOwo+ ICsJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX3N1YnN1YnRlc3RzKCJpbml0LXNlbWEiKQo+ICsJ CV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKQo+ICsJCQlpZ3RfZHluYW1pY19zdWJz dWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkKPiArCQkJCWluaXQoZmQsIGUsIEk5MTVfU0FNUExFX1NF TUEpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGJ1c3lpZGxlX3Rlc3RzKTsg aSsrKSB7Cj4gKwkJaWd0X2Rlc2NyaWJlKGJ1c3lpZGxlX3Rlc3RzW2ldLmRlc2MpOwo+ICsJCWln dF9zdWJ0ZXN0X3dpdGhfZHluYW1pY19zdWJzdWJ0ZXN0cyhidXN5aWRsZV90ZXN0c1tpXS5uYW1l KQo+ICsJCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkKPiArCQkJCWlndF9keW5h bWljX3N1YnN1YnRlc3RfZigiJXMiLCBlLT5uYW1lKQo+ICsJCQkJCWJ1c3lpZGxlX3Rlc3RzW2ld LmZ1bmMoZmQsIGUsIG51bV9lbmdpbmVzLCBidXN5aWRsZV90ZXN0c1tpXS5mbGFncyk7Cj4gKwl9 Cj4gIAo+IC0JCS8qKgo+IC0JCSAqIENoZWNrIHRoYXQgcmVwb3J0ZWQgdXNhZ2UgaXMgY29ycmVj dCB3aGVuIFBNVSBpcwo+IC0JCSAqIGVuYWJsZWQgYWZ0ZXIgdGhlIGJhdGNoIGlzIHJ1bm5pbmcu Cj4gLQkJICovCj4gLQkJaWd0X3N1YnRlc3RfZigiYnVzeS1zdGFydC0lcyIsIGUtPm5hbWUpCj4g LQkJCWJ1c3lfc3RhcnQoZmQsIGUpOwo+ICsJaWd0X2Rlc2NyaWJlKCJDaGVjayB0aGF0IHR3byBw ZXJmIGNsaWVudHMgZG8gbm90IGluZmx1ZW5jZSBlYWNoIG90aGVyJ3Mgb2JzZXJ2YXRpb25zLiIp Owo+ICsJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX3N1YnN1YnRlc3RzKCJtdWx0aS1jbGllbnQi KQo+ICsJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKQo+ICsJCQlpZ3RfZHluYW1p Y19zdWJzdWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkKPiArCQkJCW11bHRpX2NsaWVudChmZCwgZSk7 Cj4gIAo+IC0JCS8qKgo+IC0JCSAqIENoZWNrIHRoYXQgcmVwb3J0ZWQgdXNhZ2UgaXMgY29ycmVj dCB3aGVuIFBNVSBpcwo+IC0JCSAqIGVuYWJsZWQgYWZ0ZXIgdHdvIGJhdGNoZXMgYXJlIHJ1bm5p bmcuCj4gLQkJICovCj4gLQkJaWd0X3N1YnRlc3RfZigiYnVzeS1kb3VibGUtc3RhcnQtJXMiLCBl LT5uYW1lKSB7Cj4gLQkJCWdlbV9yZXF1aXJlX2NvbnRleHRzKGZkKTsKPiAtCQkJYnVzeV9kb3Vi bGVfc3RhcnQoZmQsIGUpOwo+IC0JCX0KPiArCWlndF9kZXNjcmliZSgiQ2hlY2sgdGhhdCByZXBv cnRlZCB1c2FnZSBpcyBjb3JyZWN0IHdoZW4gUE1VIGlzIGVuYWJsZWQgYWZ0ZXIgdGhlIGJhdGNo IGlzIHJ1bm5pbmcuIik7Cj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMo ImJ1c3ktc3RhcnQiKQo+ICsJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKQo+ICsJ CQlpZ3RfZHluYW1pY19zdWJzdWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkKPiArCQkJCWJ1c3lfc3Rh cnQoZmQsIGUpOwo+ICAKPiAtCQkvKioKPiAtCQkgKiBDaGVjayB0aGF0IHRoZSBQTVUgY2FuIGJl IHNhZmVseSBlbmFibGVkIGluIGZhY2Ugb2YKPiAtCQkgKiBpbnRlcnJ1cHQtaGVhdnkgZW5naW5l IGxvYWQuCj4gLQkJICovCj4gLQkJaWd0X3N1YnRlc3RfZigiZW5hYmxlLXJhY2UtJXMiLCBlLT5u YW1lKQo+IC0JCQl0ZXN0X2VuYWJsZV9yYWNlKGZkLCBlKTsKPiArCWlndF9kZXNjcmliZSgiQ2hl Y2sgdGhhdCByZXBvcnRlZCB1c2FnZSBpcyBjb3JyZWN0IHdoZW4gUE1VIGlzIGVuYWJsZWQgYWZ0 ZXIgdHdvIGJhdGNoZXMgYXJlIHJ1bm5pbmcuIik7Cj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFt aWNfc3Vic3VidGVzdHMoImJ1c3ktZG91YmxlLXN0YXJ0Iikgewo+ICsJCWdlbV9yZXF1aXJlX2Nv bnRleHRzKGZkKTsKPiArCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkKPiArCQkJ aWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIsIGUtPm5hbWUpCj4gKwkJCQlidXN5X2RvdWJs ZV9zdGFydChmZCwgZSk7Cj4gKwl9Cj4gIAo+IC0JCS8qKgo+IC0JCSAqIENoZWNrIGVuZ2luZSBi dXN5bmVzcyBhY2N1cmFjeSBpcyBhcyBleHBlY3RlZC4KPiAtCQkgKi8KPiAtCQlmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShwY3QpOyBpKyspIHsKPiAtCQkJaWd0X3N1YnRlc3RfZigiYnVzeS1h Y2N1cmFjeS0ldS0lcyIsCj4gLQkJCQkgICAgICBwY3RbaV0sIGUtPm5hbWUpCj4gLQkJCQlhY2N1 cmFjeShmZCwgZSwgcGN0W2ldLCAxMCk7Cj4gLQkJfQo+ICsJaWd0X2Rlc2NyaWJlKCJDaGVjayB0 aGF0IHRoZSBQTVUgY2FuIGJlIHNhZmVseSBlbmFibGVkIGluIGZhY2Ugb2YgaW50ZXJydXB0LWhl YXZ5IGVuZ2luZSBsb2FkLiIpOwo+ICsJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX3N1YnN1YnRl c3RzKCJlbmFibGUtcmFjZSIpCj4gKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUp Cj4gKwkJCWlndF9keW5hbWljX3N1YnN1YnRlc3RfZigiJXMiLCBlLT5uYW1lKQo+ICsJCQkJdGVz dF9lbmFibGVfcmFjZShmZCwgZSk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUo cGN0KTsgaSsrKSB7Cj4gKwkJaWd0X2Rlc2NyaWJlKCJDaGVjayBlbmdpbmUgYnVzeW5lc3MgYWNj dXJhY3kgaXMgYXMgZXhwZWN0ZWQuIik7Cj4gKwkJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX3N1 YnN1YnRlc3RzX2YoImJ1c3ktYWNjdXJhY3ktJXUiLCBwY3RbaV0pCj4gKwkJCV9fZm9yX2VhY2hf cGh5c2ljYWxfZW5naW5lKGZkLCBlKQo+ICsJCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIl cyIsIGUtPm5hbWUpCj4gKwkJCQkJYWNjdXJhY3koZmQsIGUsIHBjdFtpXSwgMTApOwo+ICsJfQo+ ICAKPiAtCQlpZ3Rfc3VidGVzdF9mKCJidXN5LWhhbmctJXMiLCBlLT5uYW1lKSB7Cj4gLQkJCWln dF9oYW5nX3QgaGFuZyA9IGlndF9hbGxvd19oYW5nKGZkLCAwLCAwKTsKPiArCWlndF9zdWJ0ZXN0 X3dpdGhfZHluYW1pY19zdWJzdWJ0ZXN0cygiYnVzeS1oYW5nIikKPiArCQlfX2Zvcl9lYWNoX3Bo eXNpY2FsX2VuZ2luZShmZCwgZSkKPiArCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIs IGUtPm5hbWUpIHsKPiArCQkJCWlndF9oYW5nX3QgaGFuZyA9IGlndF9hbGxvd19oYW5nKGZkLCAw LCAwKTsKPiAgCj4gLQkJCXNpbmdsZShmZCwgZSwgVEVTVF9CVVNZIHwgRkxBR19IQU5HKTsKPiAr CQkJCXNpbmdsZShmZCwgZSwgMCwgVEVTVF9CVVNZIHwgRkxBR19IQU5HKTsKPiAgCj4gLQkJCWln dF9kaXNhbGxvd19oYW5nKGZkLCBoYW5nKTsKPiAtCQl9Cj4gKwkJCQlpZ3RfZGlzYWxsb3dfaGFu ZyhmZCwgaGFuZyk7Cj4gKwkJCX0KPiAgCj4gLQkJLyoqCj4gLQkJICogVGVzdCB0aGF0IGV2ZW50 IHdhaXRzIGFyZSBjb3JyZWN0bHkgcmVwb3J0ZWQuCj4gLQkJICovCj4gLQkJaWYgKGUtPmNsYXNz ID09IEk5MTVfRU5HSU5FX0NMQVNTX1JFTkRFUikKPiAtCQkJaWd0X3N1YnRlc3RfZigiZXZlbnQt d2FpdC0lcyIsIGUtPm5hbWUpCj4gLQkJCQlldmVudF93YWl0KGZkLCBlKTsKPiAtCX0KPiArCWln dF9kZXNjcmliZSgiVGVzdCB0aGF0IGV2ZW50IHdhaXRzIGFyZSBjb3JyZWN0bHkgcmVwb3J0ZWQu Iik7Cj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoImV2ZW50LXdhaXQi KQo+ICsJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKQo+ICsJCQlpZiAoZS0+Y2xh c3MgPT0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSKQo+ICsJCQkJaWd0X2R5bmFtaWNfc3Vic3Vi dGVzdF9mKCIlcyIsIGUtPm5hbWUpCj4gKwkJCQkJZXZlbnRfd2FpdChmZCwgZSk7Cj4gIAo+ICAJ LyoqCj4gIAkgKiBUZXN0IHRoYXQgd2hlbiBhbGwgZW5naW5lcyBhcmUgbG9hZGVkIGFsbCBsb2Fk cyBhcmUKPiBAQCAtMTk3NSw5ICsxOTQyLDcgQEAgaWd0X21haW4KPiAgCWlndF9zdWJ0ZXN0KCJy YzYtcnVudGltZS1wbS1sb25nIikKPiAgCQl0ZXN0X3JjNihmZCwgVEVTVF9SVU5USU1FX1BNIHwg RkxBR19MT05HKTsKPiAgCj4gLQkvKioKPiAtCSAqIENoZWNrIHJlbmRlciBub2RlcyBhcmUgY291 bnRlZC4KPiAtCSAqLwo+ICsJaWd0X2Rlc2NyaWJlKCJDaGVjayB0aGF0IHJlbmRlciBub2RlcyBh cmUgY291bnRlZC4iKTsKPiAgCWlndF9zdWJ0ZXN0X2dyb3VwIHsKPiAgCQlpbnQgcmVuZGVyX2Zk ID0gLTE7Cj4gIAo+IEBAIC0xOTg4LDE0ICsxOTUzLDE1IEBAIGlndF9tYWluCj4gIAkJCWdlbV9x dWllc2NlbnRfZ3B1KGZkKTsKPiAgCQl9Cj4gIAo+IC0JCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5n aW5lKHJlbmRlcl9mZCwgZSkgewo+IC0JCQlpZ3Rfc3VidGVzdF9mKCJyZW5kZXItbm9kZS1idXN5 LSVzIiwgZS0+bmFtZSkKPiAtCQkJCXNpbmdsZShyZW5kZXJfZmQsIGUsIFRFU1RfQlVTWSk7Cj4g LQkJCWlndF9zdWJ0ZXN0X2YoInJlbmRlci1ub2RlLWJ1c3ktaWRsZS0lcyIsCj4gLQkJCQkgICAg ICBlLT5uYW1lKQo+IC0JCQkJc2luZ2xlKHJlbmRlcl9mZCwgZSwKPiAtCQkJCSAgICAgICBURVNU X0JVU1kgfCBURVNUX1RSQUlMSU5HX0lETEUpOwo+IC0JCX0KPiArCQlpZ3Rfc3VidGVzdF93aXRo X2R5bmFtaWNfc3Vic3VidGVzdHMoInJlbmRlci1ub2RlLWJ1c3kiKQo+ICsJCQlfX2Zvcl9lYWNo X3BoeXNpY2FsX2VuZ2luZShyZW5kZXJfZmQsIGUpCj4gKwkJCQlpZ3RfZHluYW1pY19zdWJzdWJ0 ZXN0X2YoIiVzIiwgZS0+bmFtZSkKPiArCQkJCQlzaW5nbGUocmVuZGVyX2ZkLCBlLCAwLCBURVNU X0JVU1kpOwo+ICsKPiArCQlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoInJl bmRlci1ub2RlLWJ1c3ktaWRsZSIpCj4gKwkJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKHJl bmRlcl9mZCwgZSkKPiArCQkJCWlndF9keW5hbWljX3N1YnN1YnRlc3RfZigiJXMiLCBlLT5uYW1l KQo+ICsJCQkJCXNpbmdsZShyZW5kZXJfZmQsIGUsIDAsIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJ TkdfSURMRSk7Cj4gIAo+ICAJCWlndF9maXh0dXJlIHsKPiAgCQkJY2xvc2UocmVuZGVyX2ZkKTsK PiAtLSAKPiAyLjE5LjEKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2