From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id CA6BB6F9FA for ; Fri, 8 Nov 2019 16:27:18 +0000 (UTC) References: <20191024110546.25569-1-petri.latvala@intel.com> <20191024110546.25569-8-petri.latvala@intel.com> <20191108161300.GE28532@kdec5-desk.ger.corp.intel.com> From: Tvrtko Ursulin Message-ID: <93338e99-2220-a2c3-6fac-e78012f9b289@linux.intel.com> Date: Fri, 8 Nov 2019 16:27:15 +0000 MIME-Version: 1.0 In-Reply-To: <20191108161300.GE28532@kdec5-desk.ger.corp.intel.com> Content-Language: en-US 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Katarzyna Dec , Tvrtko Ursulin Cc: igt-dev@lists.freedesktop.org, Petri Latvala List-ID: Ck9uIDA4LzExLzIwMTkgMTY6MTMsIEthdGFyenluYSBEZWMgd3JvdGU6Cj4gT24gVGh1LCBPY3Qg MjQsIDIwMTkgYXQgMDI6MDU6NDVQTSArMDMwMCwgUGV0cmkgTGF0dmFsYSB3cm90ZToKPj4gSW5z dGVhZCBvZiBnZW5lcmF0aW5nIGEgc3VidGVzdCBmb3IgZWFjaCBlbmdpbmUgaW4gYSBzdGF0aWMg bGlzdCwKPj4gY29udmVydCB0byBkeW5hbWljIHN1YnRlc3RzLCB3aXRoIG9uZSBkeW5hbWljIHN1 YnRlc3QgcGVyIGFjdHVhbGx5Cj4+IHByZXNlbnQgcGh5c2ljYWwgZW5naW5lLgo+Pgo+PiBJbiBh ZGRpdGlvbiwgY29udmVydCBjb21tZW50cyB0byBpZ3RfZGVzY3JpYmUgY2FsbHMgYW5kIGdlbmVy YWxseQo+PiByZWZhY3RvciB0aGUgbG90IHRvIGEgc2VyaWVzIG9mIHNpbXBsZXIgbG9vcHMuCj4g Cj4gVHZya28sIGlzIHRoZXJlIGEgY2hhbmNlIHlvdSBjb3VsZCBsb29rIGF0IGR5bmFtaWMgZW5n aW5lcyB1c2FnZSBoZXJlIGFuZCBnaXZlCj4gci1iPyBJdCB3aWxsIGFsbG93IHVzIHRvIG1lcmdl IHdob2xlIHNlcmllcy4KCkl0IHNsaXBwZWQgb2ZmIG15IHJhZGFyIHRoYXQgdGhlcmUgaXMgYWN0 dWFsIHJlY2VudCBzZXJpZXMgdG8gbG9vayBhdC4gOkkKCkFueXdheSwgaXQgbG9va3MgY29vbCBh bmQgSSB0aGluayBpdCBpbXByb3ZlcyB0aGluZ3Mgb24gbW9yZSBvbiBvbmUgCmZyb250LiBJIGFs c28gdW5kZXJzdGFuZCB0aGF0IHRoZSAtLWR5bmFtaWMtc3VidGVzdCBhbGxvd3MgbWUgdG8gaXNv bGF0ZSAKb25lIGVuZ2luZSBzbyB0aGF0J3MgZ29vZC4gT24gdGhpcyBiYXNpczoKCkFja2VkLWJ5 OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgoKUmVnYXJkcywKClR2 cnRrbwoKUC5TLiBJIHRydXN0IFBldHJpIHRoYXQgdGhlIG1lY2hhbmljYWwgYml0cyBvZiB0aGUg Y29udmVyc2lvbiBhcmUgZmluZSwgCm9yIENJIHdvdWxkIGhhdmUgY29tcGxhaW5lZC4KCj4gCj4g SGF2ZSBhIG5pY2UgZGF5IQo+IEthc2lhIDopCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFBldHJpIExh dHZhbGEgPHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgo+PiAtLS0KPj4gICB0ZXN0cy9wZXJmX3Bt dS5jIHwgMjQ0ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cj4+ICAgMSBmaWxlIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAxMzkgZGVsZXRpb25zKC0p Cj4+Cj4+IGRpZmYgLS1naXQgYS90ZXN0cy9wZXJmX3BtdS5jIGIvdGVzdHMvcGVyZl9wbXUuYwo+ PiBpbmRleCBlMmJkMmNjNS4uNmE0YTYwMGUgMTAwNjQ0Cj4+IC0tLSBhL3Rlc3RzL3BlcmZfcG11 LmMKPj4gKysrIGIvdGVzdHMvcGVyZl9wbXUuYwo+PiBAQCAtMjcwLDcgKzI3MCw3IEBAIHN0YXRp YyB2b2lkIGVuZF9zcGluKGludCBmZCwgaWd0X3NwaW5fdCAqc3BpbiwgdW5zaWduZWQgaW50IGZs YWdzKQo+PiAgIH0KPj4gICAKPj4gICBzdGF0aWMgdm9pZAo+PiAtc2luZ2xlKGludCBnZW1fZmQs IGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwgdW5zaWduZWQgaW50IGZs YWdzKQo+PiArc2luZ2xlKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25f ZW5naW5lMiAqZSwgdW5zaWduZWQgaW50IG51bV9lbmdpbmVzLCB1bnNpZ25lZCBpbnQgZmxhZ3Mp Cj4+ICAgewo+PiAgIAl1bnNpZ25lZCBsb25nIHNsZXB0Owo+PiAgIAlpZ3Rfc3Bpbl90ICpzcGlu Owo+PiBAQCAtNjA2LDcgKzYwNiw3IEBAIGFsbF9idXN5X2NoZWNrX2FsbChpbnQgZ2VtX2ZkLCBj b25zdCB1bnNpZ25lZCBpbnQgbnVtX2VuZ2luZXMsCj4+ICAgfQo+PiAgIAo+PiAgIHN0YXRpYyB2 b2lkCj4+IC1ub19zZW1hKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25f ZW5naW5lMiAqZSwgdW5zaWduZWQgaW50IGZsYWdzKQo+PiArbm9fc2VtYShpbnQgZ2VtX2ZkLCBj b25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsIHVuc2lnbmVkIGludCBudW1f ZW5naW5lcywgdW5zaWduZWQgaW50IGZsYWdzKQo+PiAgIHsKPj4gICAJaWd0X3NwaW5fdCAqc3Bp bjsKPj4gICAJdWludDY0X3QgdmFsWzJdWzJdOwo+PiBAQCAtNjQ2LDcgKzY0Niw3IEBAIG5vX3Nl bWEoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLCB1 bnNpZ25lZCBpbnQgZmxhZ3MpCj4+ICAgCj4+ICAgc3RhdGljIHZvaWQKPj4gICBzZW1hX3dhaXQo aW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLAo+PiAt CSAgdW5zaWduZWQgaW50IGZsYWdzKQo+PiArCSAgdW5zaWduZWQgaW50IG51bV9lbmdpbmVzLCB1 bnNpZ25lZCBpbnQgZmxhZ3MpCj4+ICAgewo+PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9j YXRpb25fZW50cnkgcmVsb2NbMl0gPSB7fTsKPj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVj X29iamVjdDIgb2JqWzJdID0ge307Cj4+IEBAIC04MDksNiArODA5LDcgQEAgX19zZW1hX2J1c3ko aW50IGdlbV9mZCwgaW50IHBtdSwKPj4gICBzdGF0aWMgdm9pZAo+PiAgIHNlbWFfYnVzeShpbnQg Z2VtX2ZkLAo+PiAgIAkgIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwK Pj4gKwkgIHVuc2lnbmVkIGludCBudW1fZW5naW5lcywKPj4gICAJICB1bnNpZ25lZCBpbnQgZmxh Z3MpCj4+ICAgewo+PiAgIAljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKnNp Z25hbDsKPj4gQEAgLTE3NzAsNiArMTc3MSwyNyBAQCBpZ3RfbWFpbgo+PiAgIAlpbnQgZmQgPSAt MTsKPj4gICAJc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwo+PiAgIAl1bnNpZ25l ZCBpbnQgaTsKPj4gKwljb25zdCB1bnNpZ25lZCBpbnQgcGN0W10gPSB7IDIsIDUwLCA5OCB9Owo+ PiArCXN0cnVjdCB7Cj4+ICsJCXZvaWQgKCpmdW5jKShpbnQsIGNvbnN0IHN0cnVjdCBpbnRlbF9l eGVjdXRpb25fZW5naW5lMiAqLCB1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCk7Cj4+ICsJCWNv bnN0IGNoYXIgKm5hbWU7Cj4+ICsJCXVuc2lnbmVkIGludCBmbGFnczsKPj4gKwkJY29uc3QgY2hh ciAqZGVzYzsKPj4gKwl9IGJ1c3lpZGxlX3Rlc3RzW10gPSB7Cj4+ICsJCXsgc2luZ2xlLCAiaWRs ZSIsIDAsICJUZXN0IHRoYXQgZW5naW5lcyBzaG93IG5vIGxvYWQgd2hlbiBpZGxlLiIgfSwKPj4g KwkJeyBzaW5nbGUsICJidXN5IiwgVEVTVF9CVVNZLCAiVGVzdCB0aGF0IGEgc2luZ2xlIGVuZ2lu ZSByZXBvcnRzIGxvYWQgY29ycmVjdGx5LiIgfSwKPj4gKwkJeyBzaW5nbGUsICJidXN5LWlkbGUi LCBURVNUX0JVU1kgfCBURVNUX1RSQUlMSU5HX0lETEUsICJUZXN0IHRoYXQgYSBzaW5nbGUgZW5n aW5lIHJlcG9ydHMgbG9hZCBjb3JyZWN0bHkuIiB9LAo+PiArCQl7IGJ1c3lfY2hlY2tfYWxsLCAi YnVzeS1jaGVjay1hbGwiLCBURVNUX0JVU1ksICJUZXN0IHRoYXQgd2hlbiBvbmUgZW5naW5lIGlz IGxvYWRlZCwgb3RoZXJzIHJlcG9ydCBubyBsb2FkLiIgfSwKPj4gKwkJeyBidXN5X2NoZWNrX2Fs bCwgImJ1c3ktaWRsZS1jaGVjay1hbGwiLCBURVNUX0JVU1kgfCBURVNUX1RSQUlMSU5HX0lETEUs ICJUZXN0IHRoYXQgb25lIG9uZSBlbmdpbmUgaXMgbG9hZGVkLCBvdGhlcnMgcmVwb3J0IG5vIGxv YWQuIiB9LAo+PiArCQl7IG1vc3RfYnVzeV9jaGVja19hbGwsICJtb3N0LWJ1c3ktY2hlY2stYWxs IiwgVEVTVF9CVVNZLCAiVGVzdCB0aGF0IHdoZW4gYWxsIGV4Y2VwdCBvbmUgZW5naW5lIGFyZSBs b2FkZWQgYWxsIGxvYWRzIGFyZSBjb3JyZWN0bHkgcmVwb3J0ZWQuIiB9LAo+PiArCQl7IG1vc3Rf YnVzeV9jaGVja19hbGwsICJtb3N0LWJ1c3ktaWRsZS1jaGVjay1hbGwiLCBURVNUX0JVU1kgfCBU RVNUX1RSQUlMSU5HX0lETEUsICJUZXN0IHRoYXQgd2hlbiBhbGwgZXhjZXB0IG9uZSBlbmdpbmUg YXJlIGxvYWRlZCBhbGwgbG9hZHMgYXJlIGNvcnJlY3RseSByZXBvcnRlZC4iIH0sCj4+ICsJCXsg bm9fc2VtYSwgImlkbGUtbm8tc2VtYXBob3JlcyIsIDAsICJUZXN0IHRoYXQgc2VtYXBob3JlIGNv dW50ZXJzIHJlcG9ydCBubyBhY3Rpdml0eSBvbiBpZGxlIGVuZ2luZXMuIiB9LAo+PiArCQl7IG5v X3NlbWEsICJidXN5LW5vLXNlbWFwaG9yZXMiLCBURVNUX0JVU1ksICJUZXN0IHRoYXQgc2VtYXBo b3JlIGNvdW50ZXJzIHJlcG9ydCBubyBhY3Rpdml0eSBvbiBidXN5IGVuZ2luZXMuIiB9LAo+PiAr CQl7IG5vX3NlbWEsICJidXN5LWlkbGUtbm8tc2VtYXBob3JlcyIsIFRFU1RfQlVTWSB8IFRFU1Rf VFJBSUxJTkdfSURMRSwgIlRlc3QgdGhhdCBzZW1hcGhvcmUgY291bnRlcnMgcmVwb3J0IG5vIGFj dGl2aXR5IG9uIGlkbGUgb3IgYnVzeSBlbmdpbmVzLiIgfSwKPj4gKwkJeyBzZW1hX3dhaXQsICJz ZW1hcGhvcmUtd2FpdCIsIFRFU1RfQlVTWSwgIlRlc3QgdGhhdCBzZW1hcGhvcmUgd2FpdHMgYXJl IGNvcnJlY3RseSByZXBvcnRlZC4iIH0sCj4+ICsJCXsgc2VtYV93YWl0LCAic2VtYXBob3JlLXdh aXQtaWRsZSIsIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdfSURMRSwgIlRlc3QgdGhhdCBzZW1h cGhvcmUgd2FpdHMgYXJlIGNvcnJlY3RseSByZXBvcnRlZC4iIH0sCj4+ICsJCXsgc2VtYV9idXN5 LCAic2VtYXBob3JlLWJ1c3kiLCAwLCAiVGVzdCB0aGF0IHNlbWFwaG9yZSB0aW1lIGFuZCBidXN5 IHRpbWUgZGlmZmVyZW5jZSBpcyB1bmRlciBhIHRocmVzaG9sZC4iIH0sCj4+ICsJfTsKPj4gICAK Pj4gICAJaWd0X2ZpeHR1cmUgewo+PiAgIAkJZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFzdGVyKERS SVZFUl9JTlRFTCk7Cj4+IEBAIC0xNzgxLDE0NCArMTgwMyw4OSBAQCBpZ3RfbWFpbgo+PiAgIAkJ CW51bV9lbmdpbmVzKys7Cj4+ICAgCX0KPj4gICAKPj4gLQkvKioKPj4gLQkgKiBUZXN0IGludmFs aWQgYWNjZXNzIHZpYSBwZXJmIEFQSSBpcyByZWplY3RlZC4KPj4gLQkgKi8KPj4gKwlpZ3RfZGVz Y3JpYmUoIlRlc3QgdGhhdCBpbnZhbGlkIGFjY2VzcyB2aWEgcGVyZiBBUEkgaXMgcmVqZWN0ZWQu Iik7Cj4+ICAgCWlndF9zdWJ0ZXN0KCJpbnZhbGlkLWluaXQiKQo+PiAgIAkJaW52YWxpZF9pbml0 KCk7Cj4+ICAgCj4+IC0JX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKPj4gLQkJ Y29uc3QgdW5zaWduZWQgaW50IHBjdFtdID0geyAyLCA1MCwgOTggfTsKPj4gLQo+PiAtCQkvKioK Pj4gLQkJICogVGVzdCB0aGF0IGEgc2luZ2xlIGVuZ2luZSBtZXRyaWMgY2FuIGJlIGluaXRpYWxp emVkIG9yIGl0Cj4+IC0JCSAqIGlzIGNvcnJlY3RseSByZWplY3RlZC4KPj4gLQkJICovCj4+IC0J CWlndF9zdWJ0ZXN0X2YoImluaXQtYnVzeS0lcyIsIGUtPm5hbWUpCj4+IC0JCQlpbml0KGZkLCBl LCBJOTE1X1NBTVBMRV9CVVNZKTsKPj4gLQo+PiAtCQlpZ3Rfc3VidGVzdF9mKCJpbml0LXdhaXQt JXMiLCBlLT5uYW1lKQo+PiAtCQkJaW5pdChmZCwgZSwgSTkxNV9TQU1QTEVfV0FJVCk7Cj4+IC0K Pj4gLQkJaWd0X3N1YnRlc3RfZigiaW5pdC1zZW1hLSVzIiwgZS0+bmFtZSkKPj4gLQkJCWluaXQo ZmQsIGUsIEk5MTVfU0FNUExFX1NFTUEpOwo+PiAtCj4+IC0JCS8qKgo+PiAtCQkgKiBUZXN0IHRo YXQgZW5naW5lcyBzaG93IG5vIGxvYWQgd2hlbiBpZGxlLgo+PiAtCQkgKi8KPj4gLQkJaWd0X3N1 YnRlc3RfZigiaWRsZS0lcyIsIGUtPm5hbWUpCj4+IC0JCQlzaW5nbGUoZmQsIGUsIDApOwo+PiAt Cj4+IC0JCS8qKgo+PiAtCQkgKiBUZXN0IHRoYXQgYSBzaW5nbGUgZW5naW5lIHJlcG9ydHMgbG9h ZCBjb3JyZWN0bHkuCj4+IC0JCSAqLwo+PiAtCQlpZ3Rfc3VidGVzdF9mKCJidXN5LSVzIiwgZS0+ bmFtZSkKPj4gLQkJCXNpbmdsZShmZCwgZSwgVEVTVF9CVVNZKTsKPj4gLQkJaWd0X3N1YnRlc3Rf ZigiYnVzeS1pZGxlLSVzIiwgZS0+bmFtZSkKPj4gLQkJCXNpbmdsZShmZCwgZSwgVEVTVF9CVVNZ IHwgVEVTVF9UUkFJTElOR19JRExFKTsKPj4gLQo+PiAtCQkvKioKPj4gLQkJICogVGVzdCB0aGF0 IHdoZW4gb25lIGVuZ2luZSBpcyBsb2FkZWQgb3RoZXIgcmVwb3J0IG5vCj4+IC0JCSAqIGxvYWQu Cj4+IC0JCSAqLwo+PiAtCQlpZ3Rfc3VidGVzdF9mKCJidXN5LWNoZWNrLWFsbC0lcyIsIGUtPm5h bWUpCj4+IC0JCQlidXN5X2NoZWNrX2FsbChmZCwgZSwgbnVtX2VuZ2luZXMsIFRFU1RfQlVTWSk7 Cj4+IC0JCWlndF9zdWJ0ZXN0X2YoImJ1c3ktaWRsZS1jaGVjay1hbGwtJXMiLCBlLT5uYW1lKQo+ PiAtCQkJYnVzeV9jaGVja19hbGwoZmQsIGUsIG51bV9lbmdpbmVzLAo+PiAtCQkJCSAgICAgICBU RVNUX0JVU1kgfCBURVNUX1RSQUlMSU5HX0lETEUpOwo+PiAtCj4+IC0JCS8qKgo+PiAtCQkgKiBU ZXN0IHRoYXQgd2hlbiBhbGwgZXhjZXB0IG9uZSBlbmdpbmUgYXJlIGxvYWRlZCBhbGwKPj4gLQkJ ICogbG9hZHMgYXJlIGNvcnJlY3RseSByZXBvcnRlZC4KPj4gLQkJICovCj4+IC0JCWlndF9zdWJ0 ZXN0X2YoIm1vc3QtYnVzeS1jaGVjay1hbGwtJXMiLCBlLT5uYW1lKQo+PiAtCQkJbW9zdF9idXN5 X2NoZWNrX2FsbChmZCwgZSwgbnVtX2VuZ2luZXMsCj4+IC0JCQkJCSAgICBURVNUX0JVU1kpOwo+ PiAtCQlpZ3Rfc3VidGVzdF9mKCJtb3N0LWJ1c3ktaWRsZS1jaGVjay1hbGwtJXMiLCBlLT5uYW1l KQo+PiAtCQkJbW9zdF9idXN5X2NoZWNrX2FsbChmZCwgZSwgbnVtX2VuZ2luZXMsCj4+IC0JCQkJ CSAgICBURVNUX0JVU1kgfAo+PiAtCQkJCQkgICAgVEVTVF9UUkFJTElOR19JRExFKTsKPj4gLQo+ PiAtCQkvKioKPj4gLQkJICogVGVzdCB0aGF0IHNlbXBob3JlIGNvdW50ZXJzIHJlcG9ydCBubyBh Y3Rpdml0eSBvbgo+PiAtCQkgKiBpZGxlIG9yIGJ1c3kgZW5naW5lcy4KPj4gLQkJICovCj4+IC0J CWlndF9zdWJ0ZXN0X2YoImlkbGUtbm8tc2VtYXBob3Jlcy0lcyIsIGUtPm5hbWUpCj4+IC0JCQlu b19zZW1hKGZkLCBlLCAwKTsKPj4gLQo+PiAtCQlpZ3Rfc3VidGVzdF9mKCJidXN5LW5vLXNlbWFw aG9yZXMtJXMiLCBlLT5uYW1lKQo+PiAtCQkJbm9fc2VtYShmZCwgZSwgVEVTVF9CVVNZKTsKPj4g LQo+PiAtCQlpZ3Rfc3VidGVzdF9mKCJidXN5LWlkbGUtbm8tc2VtYXBob3Jlcy0lcyIsIGUtPm5h bWUpCj4+IC0JCQlub19zZW1hKGZkLCBlLCBURVNUX0JVU1kgfCBURVNUX1RSQUlMSU5HX0lETEUp Owo+PiAtCj4+IC0JCS8qKgo+PiAtCQkgKiBUZXN0IHRoYXQgc2VtYXBob3JlIHdhaXRzIGFyZSBj b3JyZWN0bHkgcmVwb3J0ZWQuCj4+IC0JCSAqLwo+PiAtCQlpZ3Rfc3VidGVzdF9mKCJzZW1hcGhv cmUtd2FpdC0lcyIsIGUtPm5hbWUpCj4+IC0JCQlzZW1hX3dhaXQoZmQsIGUsIFRFU1RfQlVTWSk7 Cj4+IC0KPj4gLQkJaWd0X3N1YnRlc3RfZigic2VtYXBob3JlLXdhaXQtaWRsZS0lcyIsIGUtPm5h bWUpCj4+IC0JCQlzZW1hX3dhaXQoZmQsIGUsCj4+IC0JCQkJICBURVNUX0JVU1kgfCBURVNUX1RS QUlMSU5HX0lETEUpOwo+PiArCWlndF9kZXNjcmliZSgiVGVzdCB0aGF0IGEgc2luZ2xlIGVuZ2lu ZSBtZXRyaWMgY2FuIGJlIGluaXRpYWxpemVkICIKPj4gKwkJICAgICAib3IgaXQgaXMgY29ycmVj dGx5IHJlamVjdGVkLiIpOwo+PiArCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1pY19zdWJzdWJ0ZXN0 cygiaW5pdC1idXN5IikKPj4gKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpCj4+ ICsJCQlpZ3RfZHluYW1pY19zdWJzdWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkKPj4gKwkJCQlpbml0 KGZkLCBlLCBJOTE1X1NBTVBMRV9CVVNZKTsKPj4gICAKPj4gLQkJaWd0X3N1YnRlc3RfZigic2Vt YXBob3JlLWJ1c3ktJXMiLCBlLT5uYW1lKQo+PiAtCQkJc2VtYV9idXN5KGZkLCBlLCAwKTsKPj4g KwlpZ3RfZGVzY3JpYmUoIlRlc3QgdGhhdCBhIHNpbmdsZSBlbmdpbmUgbWV0cmljIGNhbiBiZSBp bml0aWFsaXplZCAiCj4+ICsJCSAgICAgIm9yIGl0IGlzIGNvcnJlY3RseSByZWplY3RlZC4iKTsK Pj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoImluaXQtd2FpdCIpCj4+ ICsJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKQo+PiArCQkJaWd0X2R5bmFtaWNf c3Vic3VidGVzdF9mKCIlcyIsIGUtPm5hbWUpCj4+ICsJCQkJaW5pdChmZCwgZSwgSTkxNV9TQU1Q TEVfV0FJVCk7Cj4+ICAgCj4+IC0JCS8qKgo+PiAtCQkgKiBDaGVjayB0aGF0IHR3byBwZXJmIGNs aWVudHMgZG8gbm90IGluZmx1ZW5jZSBlYWNoCj4+IC0JCSAqIG90aGVycyBvYnNlcnZhdGlvbnMu Cj4+IC0JCSAqLwo+PiAtCQlpZ3Rfc3VidGVzdF9mKCJtdWx0aS1jbGllbnQtJXMiLCBlLT5uYW1l KQo+PiAtCQkJbXVsdGlfY2xpZW50KGZkLCBlKTsKPj4gKwlpZ3RfZGVzY3JpYmUoIlRlc3QgdGhh dCBhIHNpbmdsZSBlbmdpbmUgbWV0cmljIGNhbiBiZSBpbml0aWFsaXplZCAiCj4+ICsJCSAgICAg Im9yIGl0IGlzIGNvcnJlY3RseSByZWplY3RlZC4iKTsKPj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5 bmFtaWNfc3Vic3VidGVzdHMoImluaXQtc2VtYSIpCj4+ICsJCV9fZm9yX2VhY2hfcGh5c2ljYWxf ZW5naW5lKGZkLCBlKQo+PiArCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIsIGUtPm5h bWUpCj4+ICsJCQkJaW5pdChmZCwgZSwgSTkxNV9TQU1QTEVfU0VNQSk7Cj4+ICsKPj4gKwlmb3Ig KGkgPSAwOyBpIDwgQVJSQVlfU0laRShidXN5aWRsZV90ZXN0cyk7IGkrKykgewo+PiArCQlpZ3Rf ZGVzY3JpYmUoYnVzeWlkbGVfdGVzdHNbaV0uZGVzYyk7Cj4+ICsJCWlndF9zdWJ0ZXN0X3dpdGhf ZHluYW1pY19zdWJzdWJ0ZXN0cyhidXN5aWRsZV90ZXN0c1tpXS5uYW1lKQo+PiArCQkJX19mb3Jf ZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpCj4+ICsJCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVz dF9mKCIlcyIsIGUtPm5hbWUpCj4+ICsJCQkJCWJ1c3lpZGxlX3Rlc3RzW2ldLmZ1bmMoZmQsIGUs IG51bV9lbmdpbmVzLCBidXN5aWRsZV90ZXN0c1tpXS5mbGFncyk7Cj4+ICsJfQo+PiAgIAo+PiAt CQkvKioKPj4gLQkJICogQ2hlY2sgdGhhdCByZXBvcnRlZCB1c2FnZSBpcyBjb3JyZWN0IHdoZW4g UE1VIGlzCj4+IC0JCSAqIGVuYWJsZWQgYWZ0ZXIgdGhlIGJhdGNoIGlzIHJ1bm5pbmcuCj4+IC0J CSAqLwo+PiAtCQlpZ3Rfc3VidGVzdF9mKCJidXN5LXN0YXJ0LSVzIiwgZS0+bmFtZSkKPj4gLQkJ CWJ1c3lfc3RhcnQoZmQsIGUpOwo+PiArCWlndF9kZXNjcmliZSgiQ2hlY2sgdGhhdCB0d28gcGVy ZiBjbGllbnRzIGRvIG5vdCBpbmZsdWVuY2UgZWFjaCBvdGhlcidzIG9ic2VydmF0aW9ucy4iKTsK Pj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoIm11bHRpLWNsaWVudCIp Cj4+ICsJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKQo+PiArCQkJaWd0X2R5bmFt aWNfc3Vic3VidGVzdF9mKCIlcyIsIGUtPm5hbWUpCj4+ICsJCQkJbXVsdGlfY2xpZW50KGZkLCBl KTsKPj4gICAKPj4gLQkJLyoqCj4+IC0JCSAqIENoZWNrIHRoYXQgcmVwb3J0ZWQgdXNhZ2UgaXMg Y29ycmVjdCB3aGVuIFBNVSBpcwo+PiAtCQkgKiBlbmFibGVkIGFmdGVyIHR3byBiYXRjaGVzIGFy ZSBydW5uaW5nLgo+PiAtCQkgKi8KPj4gLQkJaWd0X3N1YnRlc3RfZigiYnVzeS1kb3VibGUtc3Rh cnQtJXMiLCBlLT5uYW1lKSB7Cj4+IC0JCQlnZW1fcmVxdWlyZV9jb250ZXh0cyhmZCk7Cj4+IC0J CQlidXN5X2RvdWJsZV9zdGFydChmZCwgZSk7Cj4+IC0JCX0KPj4gKwlpZ3RfZGVzY3JpYmUoIkNo ZWNrIHRoYXQgcmVwb3J0ZWQgdXNhZ2UgaXMgY29ycmVjdCB3aGVuIFBNVSBpcyBlbmFibGVkIGFm dGVyIHRoZSBiYXRjaCBpcyBydW5uaW5nLiIpOwo+PiArCWlndF9zdWJ0ZXN0X3dpdGhfZHluYW1p Y19zdWJzdWJ0ZXN0cygiYnVzeS1zdGFydCIpCj4+ICsJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5n aW5lKGZkLCBlKQo+PiArCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIsIGUtPm5hbWUp Cj4+ICsJCQkJYnVzeV9zdGFydChmZCwgZSk7Cj4+ICAgCj4+IC0JCS8qKgo+PiAtCQkgKiBDaGVj ayB0aGF0IHRoZSBQTVUgY2FuIGJlIHNhZmVseSBlbmFibGVkIGluIGZhY2Ugb2YKPj4gLQkJICog aW50ZXJydXB0LWhlYXZ5IGVuZ2luZSBsb2FkLgo+PiAtCQkgKi8KPj4gLQkJaWd0X3N1YnRlc3Rf ZigiZW5hYmxlLXJhY2UtJXMiLCBlLT5uYW1lKQo+PiAtCQkJdGVzdF9lbmFibGVfcmFjZShmZCwg ZSk7Cj4+ICsJaWd0X2Rlc2NyaWJlKCJDaGVjayB0aGF0IHJlcG9ydGVkIHVzYWdlIGlzIGNvcnJl Y3Qgd2hlbiBQTVUgaXMgZW5hYmxlZCBhZnRlciB0d28gYmF0Y2hlcyBhcmUgcnVubmluZy4iKTsK Pj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoImJ1c3ktZG91YmxlLXN0 YXJ0Iikgewo+PiArCQlnZW1fcmVxdWlyZV9jb250ZXh0cyhmZCk7Cj4+ICsJCV9fZm9yX2VhY2hf cGh5c2ljYWxfZW5naW5lKGZkLCBlKQo+PiArCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIl cyIsIGUtPm5hbWUpCj4+ICsJCQkJYnVzeV9kb3VibGVfc3RhcnQoZmQsIGUpOwo+PiArCX0KPj4g ICAKPj4gLQkJLyoqCj4+IC0JCSAqIENoZWNrIGVuZ2luZSBidXN5bmVzcyBhY2N1cmFjeSBpcyBh cyBleHBlY3RlZC4KPj4gLQkJICovCj4+IC0JCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBj dCk7IGkrKykgewo+PiAtCQkJaWd0X3N1YnRlc3RfZigiYnVzeS1hY2N1cmFjeS0ldS0lcyIsCj4+ IC0JCQkJICAgICAgcGN0W2ldLCBlLT5uYW1lKQo+PiAtCQkJCWFjY3VyYWN5KGZkLCBlLCBwY3Rb aV0sIDEwKTsKPj4gLQkJfQo+PiArCWlndF9kZXNjcmliZSgiQ2hlY2sgdGhhdCB0aGUgUE1VIGNh biBiZSBzYWZlbHkgZW5hYmxlZCBpbiBmYWNlIG9mIGludGVycnVwdC1oZWF2eSBlbmdpbmUgbG9h ZC4iKTsKPj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWNfc3Vic3VidGVzdHMoImVuYWJsZS1y YWNlIikKPj4gKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpCj4+ICsJCQlpZ3Rf ZHluYW1pY19zdWJzdWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkKPj4gKwkJCQl0ZXN0X2VuYWJsZV9y YWNlKGZkLCBlKTsKPj4gKwo+PiArCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHBjdCk7IGkr Kykgewo+PiArCQlpZ3RfZGVzY3JpYmUoIkNoZWNrIGVuZ2luZSBidXN5bmVzcyBhY2N1cmFjeSBp cyBhcyBleHBlY3RlZC4iKTsKPj4gKwkJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljX3N1YnN1YnRl c3RzX2YoImJ1c3ktYWNjdXJhY3ktJXUiLCBwY3RbaV0pCj4+ICsJCQlfX2Zvcl9lYWNoX3BoeXNp Y2FsX2VuZ2luZShmZCwgZSkKPj4gKwkJCQlpZ3RfZHluYW1pY19zdWJzdWJ0ZXN0X2YoIiVzIiwg ZS0+bmFtZSkKPj4gKwkJCQkJYWNjdXJhY3koZmQsIGUsIHBjdFtpXSwgMTApOwo+PiArCX0KPj4g ICAKPj4gLQkJaWd0X3N1YnRlc3RfZigiYnVzeS1oYW5nLSVzIiwgZS0+bmFtZSkgewo+PiAtCQkJ aWd0X2hhbmdfdCBoYW5nID0gaWd0X2FsbG93X2hhbmcoZmQsIDAsIDApOwo+PiArCWlndF9zdWJ0 ZXN0X3dpdGhfZHluYW1pY19zdWJzdWJ0ZXN0cygiYnVzeS1oYW5nIikKPj4gKwkJX19mb3JfZWFj aF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpCj4+ICsJCQlpZ3RfZHluYW1pY19zdWJzdWJ0ZXN0X2Yo IiVzIiwgZS0+bmFtZSkgewo+PiArCQkJCWlndF9oYW5nX3QgaGFuZyA9IGlndF9hbGxvd19oYW5n KGZkLCAwLCAwKTsKPj4gICAKPj4gLQkJCXNpbmdsZShmZCwgZSwgVEVTVF9CVVNZIHwgRkxBR19I QU5HKTsKPj4gKwkJCQlzaW5nbGUoZmQsIGUsIDAsIFRFU1RfQlVTWSB8IEZMQUdfSEFORyk7Cj4+ ICAgCj4+IC0JCQlpZ3RfZGlzYWxsb3dfaGFuZyhmZCwgaGFuZyk7Cj4+IC0JCX0KPj4gKwkJCQlp Z3RfZGlzYWxsb3dfaGFuZyhmZCwgaGFuZyk7Cj4+ICsJCQl9Cj4+ICAgCj4+IC0JCS8qKgo+PiAt CQkgKiBUZXN0IHRoYXQgZXZlbnQgd2FpdHMgYXJlIGNvcnJlY3RseSByZXBvcnRlZC4KPj4gLQkJ ICovCj4+IC0JCWlmIChlLT5jbGFzcyA9PSBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIpCj4+IC0J CQlpZ3Rfc3VidGVzdF9mKCJldmVudC13YWl0LSVzIiwgZS0+bmFtZSkKPj4gLQkJCQlldmVudF93 YWl0KGZkLCBlKTsKPj4gLQl9Cj4+ICsJaWd0X2Rlc2NyaWJlKCJUZXN0IHRoYXQgZXZlbnQgd2Fp dHMgYXJlIGNvcnJlY3RseSByZXBvcnRlZC4iKTsKPj4gKwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFt aWNfc3Vic3VidGVzdHMoImV2ZW50LXdhaXQiKQo+PiArCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2Vu Z2luZShmZCwgZSkKPj4gKwkJCWlmIChlLT5jbGFzcyA9PSBJOTE1X0VOR0lORV9DTEFTU19SRU5E RVIpCj4+ICsJCQkJaWd0X2R5bmFtaWNfc3Vic3VidGVzdF9mKCIlcyIsIGUtPm5hbWUpCj4+ICsJ CQkJCWV2ZW50X3dhaXQoZmQsIGUpOwo+PiAgIAo+PiAgIAkvKioKPj4gICAJICogVGVzdCB0aGF0 IHdoZW4gYWxsIGVuZ2luZXMgYXJlIGxvYWRlZCBhbGwgbG9hZHMgYXJlCj4+IEBAIC0xOTc1LDkg KzE5NDIsNyBAQCBpZ3RfbWFpbgo+PiAgIAlpZ3Rfc3VidGVzdCgicmM2LXJ1bnRpbWUtcG0tbG9u ZyIpCj4+ICAgCQl0ZXN0X3JjNihmZCwgVEVTVF9SVU5USU1FX1BNIHwgRkxBR19MT05HKTsKPj4g ICAKPj4gLQkvKioKPj4gLQkgKiBDaGVjayByZW5kZXIgbm9kZXMgYXJlIGNvdW50ZWQuCj4+IC0J ICovCj4+ICsJaWd0X2Rlc2NyaWJlKCJDaGVjayB0aGF0IHJlbmRlciBub2RlcyBhcmUgY291bnRl ZC4iKTsKPj4gICAJaWd0X3N1YnRlc3RfZ3JvdXAgewo+PiAgIAkJaW50IHJlbmRlcl9mZCA9IC0x Owo+PiAgIAo+PiBAQCAtMTk4OCwxNCArMTk1MywxNSBAQCBpZ3RfbWFpbgo+PiAgIAkJCWdlbV9x dWllc2NlbnRfZ3B1KGZkKTsKPj4gICAJCX0KPj4gICAKPj4gLQkJX19mb3JfZWFjaF9waHlzaWNh bF9lbmdpbmUocmVuZGVyX2ZkLCBlKSB7Cj4+IC0JCQlpZ3Rfc3VidGVzdF9mKCJyZW5kZXItbm9k ZS1idXN5LSVzIiwgZS0+bmFtZSkKPj4gLQkJCQlzaW5nbGUocmVuZGVyX2ZkLCBlLCBURVNUX0JV U1kpOwo+PiAtCQkJaWd0X3N1YnRlc3RfZigicmVuZGVyLW5vZGUtYnVzeS1pZGxlLSVzIiwKPj4g LQkJCQkgICAgICBlLT5uYW1lKQo+PiAtCQkJCXNpbmdsZShyZW5kZXJfZmQsIGUsCj4+IC0JCQkJ ICAgICAgIFRFU1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdfSURMRSk7Cj4+IC0JCX0KPj4gKwkJaWd0 X3N1YnRlc3Rfd2l0aF9keW5hbWljX3N1YnN1YnRlc3RzKCJyZW5kZXItbm9kZS1idXN5IikKPj4g KwkJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKHJlbmRlcl9mZCwgZSkKPj4gKwkJCQlpZ3Rf ZHluYW1pY19zdWJzdWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkKPj4gKwkJCQkJc2luZ2xlKHJlbmRl cl9mZCwgZSwgMCwgVEVTVF9CVVNZKTsKPj4gKwo+PiArCQlpZ3Rfc3VidGVzdF93aXRoX2R5bmFt aWNfc3Vic3VidGVzdHMoInJlbmRlci1ub2RlLWJ1c3ktaWRsZSIpCj4+ICsJCQlfX2Zvcl9lYWNo X3BoeXNpY2FsX2VuZ2luZShyZW5kZXJfZmQsIGUpCj4+ICsJCQkJaWd0X2R5bmFtaWNfc3Vic3Vi dGVzdF9mKCIlcyIsIGUtPm5hbWUpCj4+ICsJCQkJCXNpbmdsZShyZW5kZXJfZmQsIGUsIDAsIFRF U1RfQlVTWSB8IFRFU1RfVFJBSUxJTkdfSURMRSk7Cj4+ICAgCj4+ICAgCQlpZ3RfZml4dHVyZSB7 Cj4+ICAgCQkJY2xvc2UocmVuZGVyX2ZkKTsKPj4gLS0gCj4+IDIuMTkuMQo+Pgo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gaWd0LWRldiBtYWlsaW5n IGxpc3QKPiBpZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo+IApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3Qt ZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=