From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Belgaumkar, Vinay" Subject: Re: [PATCH i-g-t 1/5] Add support for subtest-specific documentation Date: Thu, 10 Aug 2017 15:27:08 -0700 Message-ID: References: <1502360811-31640-1-git-send-email-petri.latvala@intel.com> <1502360811-31640-2-git-send-email-petri.latvala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 40AFF6E612 for ; Thu, 10 Aug 2017 22:27:09 +0000 (UTC) In-Reply-To: <1502360811-31640-2-git-send-email-petri.latvala@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Petri Latvala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA4LzEwLzIwMTcgMzoyNiBBTSwgUGV0cmkgTGF0dmFsYSB3cm90ZToKPiBUaGUgY3VycmVu dCBkb2N1bWVudGF0aW9uIGZvciB0ZXN0cyBpcyBsaW1pdGVkIHRvIGEgc2luZ2xlIHN0cmluZyBw ZXIKPiB0ZXN0IGJpbmFyeS4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGRvY3VtZW50aW5n IGluZGl2aWR1YWwKPiBzdWJ0ZXN0cy4KPgo+IFRoZSBzeW50YXggZm9yIHN1YnRlc3QgZG9jdW1l bnRhdGlvbiBpczoKPgo+ICAgICBpZ3RfZG9jdW1lbnRfc3VidGVzdCgiRnJvYiBrbm9icyB0byBz ZWUgaWYgb25lIG9mIHRoZSAiCj4gICAgICAgICAgICAgICAgICAgICAgICAgICJjcm9zc2JlYW1z IHdpbGwgZ28gb3V0IG9mIHNrZXcgb24gdGhlICIKPiAgICAgICAgICAgICAgICAgICAgICAgICAg InRyZWFkbGUuXG4iKTsKPiAgICAgaWd0X3N1YnRlc3QoImtub2ItZnJvYmJpbmctYXNrZXciKQo+ ICAgICAgIHRlc3RfZnJvYigpOwo+Cj4gb3Igd2l0aCBhIGZvcm1hdCBzdHJpbmc6Cj4KPiAgICBm b3JfZXhhbXBsZV9sb29wKGUpIHsKPiAgICAgIGlndF9kb2N1bWVudF9zdWJ0ZXN0X2YoIkZyb2Ig JXMgdG8gc2VlIGlmIG9uZSBvZiB0aGUgIgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi Y3Jvc3NiZWFtcyB3aWxsIGdvIG91dCBvZiBza2V3IG9uIHRoZSAiCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJ0cmVhZGxlLlxuIiwgZS0+cmVhZGFibGVfbmFtZSk7Cj4gICAgICBpZ3Rf c3VidGVzdF9mKCIlcy1mcm9iLWFza2V3IiwgZS0+bmFtZSkKPiAgICAgICAgdGVzdF9mcm9iKGUp Owo+ICAgIH0KPgo+IFRoZSBkb2N1bWVudGF0aW9uIGNhbm5vdCBiZSBleHRyYWN0ZWQgZnJvbSBq dXN0IGNvbW1lbnRzLCBiZWNhdXNlCj4gYXNzb2NpYXRpbmcgdGhlbSB3aXRoIHRoZSBjb3JyZWN0 IHN1YnRlc3QgbmFtZSB3aWxsIHRoZW4gcmVxdWlyZSBkb2luZwo+IHBhdHRlcm4gbWF0Y2hpbmcg aW4gdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yLCBmb3Igc3VidGVzdHMgd2hlcmUKPiB0aGUg bmFtZSBpcyBnZW5lcmF0ZWQgYXQgcnVudGltZSB1c2luZyBpZ3Rfc3VidGVzdF9mLgo+Cj4gdjI6 IFJlYmFzZSwgY2hhbmdlIGZ1bmN0aW9uIG5hbWUgaW4gY29tbWl0IG1lc3NhZ2UgdG8gbWF0Y2gg Y29kZQo+Cj4gdjM6IEZpeCBjdXJyZW50IGRvY3VtZW50YXRpb24gc3RyaW5nIHRyYWNraW5nLCBh ZGQgbWlzc2luZyB2YV9lbmQgKFZpbmF5KQo+Cj4gdjQ6IEZpeCBicmFpbmZhcnQgaW4gX19pZ3Rf cnVuX3N1YnRlc3QKPgo+IFNpZ25lZC1vZmYtYnk6IFBldHJpIExhdHZhbGEgPHBldHJpLmxhdHZh bGFAaW50ZWwuY29tPgo+IEFja2VkLWJ5OiBMZW8gTGkgPHN1bnBlbmcubGlAYW1kLmNvbT4KPiBB Y2tlZC1ieTogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgo+IC0t LQo+ICAgbGliL2lndF9hdXguYyAgfCAgIDggKystLQo+ICAgbGliL2lndF9jb3JlLmMgfCAxNDkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t Cj4gICBsaWIvaWd0X2NvcmUuaCB8ICAgNiArKy0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgMTI4IGlu c2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfYXV4 LmMgYi9saWIvaWd0X2F1eC5jCj4gaW5kZXggZjQyOGYxNS4uZDU2ZjQxZiAxMDA2NDQKPiAtLS0g YS9saWIvaWd0X2F1eC5jCj4gKysrIGIvbGliL2lndF9hdXguYwo+IEBAIC0zMTEsNyArMzExLDcg QEAgc3RhdGljIHZvaWQgc2lnX2hhbmRsZXIoaW50IGkpCj4gICAgKi8KPiAgIHZvaWQgaWd0X2Zv cmtfc2lnbmFsX2hlbHBlcih2b2lkKQo+ICAgewo+IC0JaWYgKGlndF9vbmx5X2xpc3Rfc3VidGVz dHMoKSkKPiArCWlmIChpZ3Rfb25seV9jb2xsZWN0X2RhdGEoKSkKPiAgIAkJcmV0dXJuOwo+ICAg Cj4gICAJLyogV2UgcGljayBTSUdDT05UIGFzIGl0IGlzIGEgInNhZmUiIHNpZ25hbCAtIGlmIHdl IHNlbmQgU0lHQ09OVCB0bwo+IEBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBpZ3RfZm9ya19zaWdu YWxfaGVscGVyKHZvaWQpCj4gICAgKi8KPiAgIHZvaWQgaWd0X3N0b3Bfc2lnbmFsX2hlbHBlcih2 b2lkKQo+ICAgewo+IC0JaWYgKGlndF9vbmx5X2xpc3Rfc3VidGVzdHMoKSkKPiArCWlmIChpZ3Rf b25seV9jb2xsZWN0X2RhdGEoKSkKPiAgIAkJcmV0dXJuOwo+ICAgCj4gICAJaWd0X3N0b3BfaGVs cGVyKCZzaWduYWxfaGVscGVyKTsKPiBAQCAtMzc1LDcgKzM3NSw3IEBAIHN0YXRpYyB2b2lkIF9f YXR0cmlidXRlX18oKG5vcmV0dXJuKSkgc2hyaW5rX2hlbHBlcl9wcm9jZXNzKGludCBmZCwgcGlk X3QgcGlkKQo+ICAgICovCj4gICB2b2lkIGlndF9mb3JrX3Nocmlua19oZWxwZXIoaW50IGRybV9m ZCkKPiAgIHsKPiAtCWFzc2VydCghaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cygpKTsKPiArCWFzc2Vy dCghaWd0X29ubHlfY29sbGVjdF9kYXRhKCkpOwo+ICAgCWlndF9yZXF1aXJlKGlndF9kcm9wX2Nh Y2hlc19oYXMoZHJtX2ZkLCBEUk9QX1NIUklOS19BTEwpKTsKPiAgIAlpZ3RfZm9ya19oZWxwZXIo JnNocmlua19oZWxwZXIpCj4gICAJCXNocmlua19oZWxwZXJfcHJvY2Vzcyhkcm1fZmQsIGdldHBw aWQoKSk7Cj4gQEAgLTQ3Myw3ICs0NzMsNyBAQCB2b2lkIGlndF9zdG9wX2hhbmdfZGV0ZWN0b3Io dm9pZCkKPiAgICNlbHNlCj4gICB2b2lkIGlndF9mb3JrX2hhbmdfZGV0ZWN0b3IoaW50IGZkKQo+ ICAgewo+IC0JaWYgKGlndF9vbmx5X2xpc3Rfc3VidGVzdHMoKSkKPiArCWlmIChpZ3Rfb25seV9j b2xsZWN0X2RhdGEoKSkKPiAgIAkJcmV0dXJuOwo+ICAgfQo+ICAgCj4gZGlmZiAtLWdpdCBhL2xp Yi9pZ3RfY29yZS5jIGIvbGliL2lndF9jb3JlLmMKPiBpbmRleCBjMDQ4OGU5Li5mMTI2ZWY4IDEw MDY0NAo+IC0tLSBhL2xpYi9pZ3RfY29yZS5jCj4gKysrIGIvbGliL2lndF9jb3JlLmMKPiBAQCAt OTksNyArOTksNyBAQAo+ICAgICoKPiAgICAqIFRvIGFsbG93IHRoaXMgaS1nLXQgcHJvdmlkZXMg I2lndF9maXh0dXJlIGNvZGUgYmxvY2tzIGZvciBzZXR1cCBjb2RlIG91dHNpZGUKPiAgICAqIG9m IHN1YnRlc3RzIGFuZCBhdXRvbWF0aWNhbGx5IHNraXBzIHRoZSBzdWJ0ZXN0IGNvZGUgYmxvY2tz IHRoZW1zZWx2ZXMuIEZvcgo+IC0gKiBzcGVjaWFsIGNhc2VzIGlndF9vbmx5X2xpc3Rfc3VidGVz dHMoKSBpcyBhbHNvIHByb3ZpZGVkLiBGb3Igc2V0dXAgY29kZSBvbmx5Cj4gKyAqIHNwZWNpYWwg Y2FzZXMgaWd0X29ubHlfY29sbGVjdF9kYXRhKCkgaXMgYWxzbyBwcm92aWRlZC4gRm9yIHNldHVw IGNvZGUgb25seQo+ICAgICogc2hhcmVkIGJ5IGEgZ3JvdXAgb2Ygc3VidGVzdCBlbmNhcHN1bGF0 ZSB0aGUgI2lndF9maXh0dXJlIGJsb2NrIGFuZCBhbGwgdGhlCj4gICAgKiBzdWJ0ZXN0ZXN0IGlu IGEgI2lndF9zdWJ0ZXN0X2dyb3VwIGJsb2NrLgo+ICAgICoKPiBAQCAtMjUzLDkgKzI1Myw5IEBA IHN0YXRpYyB1bnNpZ25lZCBpbnQgZXhpdF9oYW5kbGVyX2NvdW50Owo+ICAgY29uc3QgY2hhciAq aWd0X2ludGVyYWN0aXZlX2RlYnVnOwo+ICAgCj4gICAvKiBzdWJ0ZXN0cyBoZWxwZXJzICovCj4g LXN0YXRpYyBib29sIGxpc3Rfc3VidGVzdHMgPSBmYWxzZTsKPiAtc3RhdGljIGNoYXIgKnJ1bl9z aW5nbGVfc3VidGVzdCA9IE5VTEw7Cj4gLXN0YXRpYyBib29sIHJ1bl9zaW5nbGVfc3VidGVzdF9m b3VuZCA9IGZhbHNlOwo+ICtzdGF0aWMgY2hhciAqc2luZ2xlX3N1YnRlc3QgPSBOVUxMOwo+ICtz dGF0aWMgYm9vbCBzaW5nbGVfc3VidGVzdF9mb3VuZCA9IGZhbHNlOwo+ICtzdGF0aWMgY2hhciAq Y3VycmVudF9zdWJ0ZXN0X2RvY3VtZW50YXRpb24gPSBOVUxMOwo+ICAgc3RhdGljIGNvbnN0IGNo YXIgKmluX3N1YnRlc3QgPSBOVUxMOwo+ICAgc3RhdGljIHN0cnVjdCB0aW1lc3BlYyBzdWJ0ZXN0 X3RpbWU7Cj4gICBzdGF0aWMgY2xvY2tpZF90IGlndF9jbG9jayA9IChjbG9ja2lkX3QpLTE7Cj4g QEAgLTI2NSw2ICsyNjUsMTMgQEAgc3RhdGljIGJvb2wgaW5fYXRleGl0X2hhbmRsZXIgPSBmYWxz ZTsKPiAgIHN0YXRpYyBlbnVtIHsKPiAgIAlDT05UID0gMCwgU0tJUCwgRkFJTAo+ICAgfSBza2lw X3N1YnRlc3RzX2hlbmNlZm9ydGggPSBDT05UOwo+ICtzdGF0aWMgZW51bSB7Cj4gKwlFWEVDVVRF X0FMTCwKPiArCUVYRUNVVEVfU0lOR0xFLAo+ICsJTElTVF9TVUJURVNUUywKPiArCURPQ1VNRU5U LAo+ICsJRE9DVU1FTlRfU0lOR0xFCj4gK30gcnVubW9kZSA9IEVYRUNVVEVfQUxMOwo+ICAgCj4g ICBib29sIF9faWd0X3BsYWluX291dHB1dCA9IGZhbHNlOwo+ICAgCj4gQEAgLTI3Nyw2ICsyODQs OCBAQCBib29sIHRlc3RfY2hpbGQ7Cj4gICBlbnVtIHsKPiAgICBPUFRfTElTVF9TVUJURVNUUywK PiAgICBPUFRfUlVOX1NVQlRFU1QsCj4gKyBPUFRfRE9DX1NVQlRFU1RTLAo+ICsgT1BUX0RPQ19T SU5HTEVfU1VCVEVTVCwKPiAgICBPUFRfREVTQ1JJUFRJT04sCj4gICAgT1BUX0RFQlVHLAo+ICAg IE9QVF9JTlRFUkFDVElWRV9ERUJVRywKPiBAQCAtNDY5LDcgKzQ3OCw3IEBAIGJvb2wgX19pZ3Rf Zml4dHVyZSh2b2lkKQo+ICAgewo+ICAgCWFzc2VydCghaW5fZml4dHVyZSk7Cj4gICAKPiAtCWlm IChpZ3Rfb25seV9saXN0X3N1YnRlc3RzKCkpCj4gKwlpZiAoaWd0X29ubHlfY29sbGVjdF9kYXRh KCkpCj4gICAJCXJldHVybiBmYWxzZTsKPiAgIAo+ICAgCWlmIChza2lwX3N1YnRlc3RzX2hlbmNl Zm9ydGgpCj4gQEAgLTU2Myw3ICs1NzIsNyBAQCBzdGF0aWMgdm9pZCBsb3dfbWVtX2tpbGxlcl9k aXNhYmxlKGJvb2wgZGlzYWJsZSkKPiAgIGJvb2wgaWd0X2V4aXRfY2FsbGVkOwo+ICAgc3RhdGlj IHZvaWQgY29tbW9uX2V4aXRfaGFuZGxlcihpbnQgc2lnKQo+ICAgewo+IC0JaWYgKCFpZ3Rfb25s eV9saXN0X3N1YnRlc3RzKCkpIHsKPiArCWlmICghaWd0X29ubHlfY29sbGVjdF9kYXRhKCkpIHsK PiAgIAkJbG93X21lbV9raWxsZXJfZGlzYWJsZShmYWxzZSk7Cj4gICAJCWtpY2tfZmJjb24odHJ1 ZSk7Cj4gICAJfQo+IEBAIC01ODMsNyArNTkyLDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfdmVyc2lv bih2b2lkKQo+ICAgewo+ICAgCXN0cnVjdCB1dHNuYW1lIHV0czsKPiAgIAo+IC0JaWYgKGxpc3Rf c3VidGVzdHMpCj4gKwlpZiAoaWd0X29ubHlfY29sbGVjdF9kYXRhKCkpCj4gICAJCXJldHVybjsK PiAgIAo+ICAgCXVuYW1lKCZ1dHMpOwo+IEBAIC01OTksNiArNjA4LDggQEAgc3RhdGljIHZvaWQg cHJpbnRfdXNhZ2UoY29uc3QgY2hhciAqaGVscF9zdHIsIGJvb2wgb3V0cHV0X29uX3N0ZGVycikK PiAgIAo+ICAgCWZwcmludGYoZiwgIlVzYWdlOiAlcyBbT1BUSU9OU11cbiIsIGNvbW1hbmRfc3Ry KTsKPiAgIAlmcHJpbnRmKGYsICIgIC0tbGlzdC1zdWJ0ZXN0c1xuIgo+ICsJCSAgICIgIC0tZG9j dW1lbnQtYWxsLXN1YnRlc3RzXG4iCj4gKwkJICAgIiAgLS1kb2N1bWVudC1zdWJ0ZXN0IDxwYXR0 ZXJuPlxuIgo+ICAgCQkgICAiICAtLXJ1bi1zdWJ0ZXN0IDxwYXR0ZXJuPlxuIgo+ICAgCQkgICAi ICAtLWRlYnVnWz1sb2ctZG9tYWluXVxuIgo+ICAgCQkgICAiICAtLWludGVyYWN0aXZlLWRlYnVn Wz1kb21haW5dXG4iCj4gQEAgLTcxMCw2ICs3MjEsOCBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0 KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCj4gICAJc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ19v cHRpb25zW10gPSB7Cj4gICAJCXsibGlzdC1zdWJ0ZXN0cyIsIDAsIDAsIE9QVF9MSVNUX1NVQlRF U1RTfSwKPiAgIAkJeyJydW4tc3VidGVzdCIsIDEsIDAsIE9QVF9SVU5fU1VCVEVTVH0sCj4gKwkJ eyJkb2N1bWVudC1hbGwtc3VidGVzdHMiLCAwLCAwLCBPUFRfRE9DX1NVQlRFU1RTfSwKPiArCQl7 ImRvY3VtZW50LXN1YnRlc3QiLCAxLCAwLCBPUFRfRE9DX1NJTkdMRV9TVUJURVNUfSwKPiAgIAkJ eyJoZWxwLWRlc2NyaXB0aW9uIiwgMCwgMCwgT1BUX0RFU0NSSVBUSU9OfSwKPiAgIAkJeyJkZWJ1 ZyIsIG9wdGlvbmFsX2FyZ3VtZW50LCAwLCBPUFRfREVCVUd9LAo+ICAgCQl7ImludGVyYWN0aXZl LWRlYnVnIiwgb3B0aW9uYWxfYXJndW1lbnQsIDAsIE9QVF9JTlRFUkFDVElWRV9ERUJVR30sCj4g QEAgLTgwMCwxMiArODEzLDI0IEBAIHN0YXRpYyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBj aGFyICoqYXJndiwKPiAgIAkJCQlpZ3RfbG9nX2RvbWFpbl9maWx0ZXIgPSBzdHJkdXAob3B0YXJn KTsKPiAgIAkJCWJyZWFrOwo+ICAgCQljYXNlIE9QVF9MSVNUX1NVQlRFU1RTOgo+IC0JCQlpZiAo IXJ1bl9zaW5nbGVfc3VidGVzdCkKPiAtCQkJCWxpc3Rfc3VidGVzdHMgPSB0cnVlOwo+ICsJCQlp ZiAocnVubW9kZSA9PSBFWEVDVVRFX0FMTCkKPiArCQkJCXJ1bm1vZGUgPSBMSVNUX1NVQlRFU1RT Owo+ICAgCQkJYnJlYWs7Cj4gICAJCWNhc2UgT1BUX1JVTl9TVUJURVNUOgo+IC0JCQlpZiAoIWxp c3Rfc3VidGVzdHMpCj4gLQkJCQlydW5fc2luZ2xlX3N1YnRlc3QgPSBzdHJkdXAob3B0YXJnKTsK PiArCQkJaWYgKHJ1bm1vZGUgPT0gRVhFQ1VURV9BTEwpIHsKPiArCQkJCXJ1bm1vZGUgPSBFWEVD VVRFX1NJTkdMRTsKPiArCQkJCXNpbmdsZV9zdWJ0ZXN0ID0gc3RyZHVwKG9wdGFyZyk7Cj4gKwkJ CX0KPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSBPUFRfRE9DX1NVQlRFU1RTOgo+ICsJCQlpZiAocnVu bW9kZSA9PSBFWEVDVVRFX0FMTCkKPiArCQkJCXJ1bm1vZGUgPSBET0NVTUVOVDsKPiArCQkJYnJl YWs7Cj4gKwkJY2FzZSBPUFRfRE9DX1NJTkdMRV9TVUJURVNUOgo+ICsJCQlpZiAocnVubW9kZSA9 PSBFWEVDVVRFX0FMTCkgewo+ICsJCQkJcnVubW9kZSA9IERPQ1VNRU5UX1NJTkdMRTsKPiArCQkJ CXNpbmdsZV9zdWJ0ZXN0ID0gc3RyZHVwKG9wdGFyZyk7Cj4gKwkJCX0KPiAgIAkJCWJyZWFrOwo+ ICAgCQljYXNlIE9QVF9ERVNDUklQVElPTjoKPiAgIAkJCXByaW50X3Rlc3RfZGVzY3JpcHRpb24o KTsKPiBAQCAtODM3LDExICs4NjIsMTEgQEAgb3V0Ogo+ICAgCS8qIGV4aXQgaW1tZWRpYXRlbHkg aWYgdGhpcyB0ZXN0IGhhcyBubyBzdWJ0ZXN0cyBhbmQgYSBzdWJ0ZXN0IG9yIHRoZQo+ICAgCSAq IGxpc3Qgb2Ygc3VidGVzdHMgaGFzIGJlZW4gcmVxdWVzdGVkICovCj4gICAJaWYgKCF0ZXN0X3dp dGhfc3VidGVzdHMpIHsKPiAtCQlpZiAocnVuX3NpbmdsZV9zdWJ0ZXN0KSB7Cj4gLQkJCWlndF93 YXJuKCJVbmtub3duIHN1YnRlc3Q6ICVzXG4iLCBydW5fc2luZ2xlX3N1YnRlc3QpOwo+ICsJCWlm IChydW5tb2RlID09IEVYRUNVVEVfU0lOR0xFIHx8IHJ1bm1vZGUgPT0gRE9DVU1FTlRfU0lOR0xF KSB7Cj4gKwkJCWlndF93YXJuKCJVbmtub3duIHN1YnRlc3Q6ICVzXG4iLCBzaW5nbGVfc3VidGVz dCk7Cj4gICAJCQlleGl0KElHVF9FWElUX0lOVkFMSUQpOwo+ICAgCQl9Cj4gLQkJaWYgKGxpc3Rf c3VidGVzdHMpCj4gKwkJaWYgKHJ1bm1vZGUgPT0gTElTVF9TVUJURVNUUyB8fCBydW5tb2RlID09 IERPQ1VNRU5UKQo+ICAgCQkJZXhpdChJR1RfRVhJVF9JTlZBTElEKTsKPiAgIAl9Cj4gICAKPiBA QCAtODQ5LDcgKzg3NCw3IEBAIG91dDoKPiAgIAkJLyogZXhpdCB3aXRoIG5vIGVycm9yIGZvciAt aC8tLWhlbHAgKi8KPiAgIAkJZXhpdChyZXQgPT0gLTEgPyAwIDogSUdUX0VYSVRfSU5WQUxJRCk7 Cj4gICAKPiAtCWlmICghbGlzdF9zdWJ0ZXN0cykgewo+ICsJaWYgKCFpZ3Rfb25seV9jb2xsZWN0 X2RhdGEoKSkgewo+ICAgCQlraWNrX2ZiY29uKGZhbHNlKTsKPiAgIAkJa21zZyhLRVJOX0lORk8g IltJR1RdICVzOiBleGVjdXRpbmdcbiIsIGNvbW1hbmRfc3RyKTsKPiAgIAkJcHJpbnRfdmVyc2lv bigpOwo+IEBAIC05NTcsMTYgKzk4MiwzOCBAQCBib29sIF9faWd0X3J1bl9zdWJ0ZXN0KGNvbnN0 IGNoYXIgKnN1YnRlc3RfbmFtZSkKPiAgIAkJCWlndF9leGl0KCk7Cj4gICAJCX0KPiAgIAo+IC0J aWYgKGxpc3Rfc3VidGVzdHMpIHsKPiArCWlmIChydW5tb2RlID09IExJU1RfU1VCVEVTVFMpIHsK PiAgIAkJcHJpbnRmKCIlc1xuIiwgc3VidGVzdF9uYW1lKTsKPiAgIAkJcmV0dXJuIGZhbHNlOwo+ ICAgCX0KPiAgIAo+IC0JaWYgKHJ1bl9zaW5nbGVfc3VidGVzdCkgewo+IC0JCWlmICh1d2lsZG1h dChzdWJ0ZXN0X25hbWUsIHJ1bl9zaW5nbGVfc3VidGVzdCkgPT0gMCkKPiArCWlmIChydW5tb2Rl ID09IERPQ1VNRU5UKSB7Cj4gKwkJaWYgKGN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uKSB7 Cj4gKwkJCXByaW50ZigiJXM6XG5cbiIsIHN1YnRlc3RfbmFtZSk7Cj4gKwkJCXByaW50ZigiJXMi LCBjdXJyZW50X3N1YnRlc3RfZG9jdW1lbnRhdGlvbik7Cj4gKwkJCWZyZWUoY3VycmVudF9zdWJ0 ZXN0X2RvY3VtZW50YXRpb24pOwo+ICsJCQljdXJyZW50X3N1YnRlc3RfZG9jdW1lbnRhdGlvbiA9 IE5VTEw7Cj4gKwkJfQo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArCj4gKwlpZiAocnVubW9k ZSA9PSBFWEVDVVRFX1NJTkdMRSB8fCBydW5tb2RlID09IERPQ1VNRU5UX1NJTkdMRSkgewo+ICsJ CWJvb2wgc3RvcCA9IHJ1bm1vZGUgPT0gRE9DVU1FTlRfU0lOR0xFOwo+ICsKPiArCQlpZiAodXdp bGRtYXQoc3VidGVzdF9uYW1lLCBzaW5nbGVfc3VidGVzdCkpIHsKPiArCQkJc2luZ2xlX3N1YnRl c3RfZm91bmQgPSB0cnVlOwo+ICsKPiArCQkJaWYgKHJ1bm1vZGUgPT0gRE9DVU1FTlRfU0lOR0xF ICYmIGN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uKQo+ICsJCQkJcHJpbnRmKCIlcyIsIGN1 cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uKTsKPiArCQl9IGVsc2Ugewo+ICsJCQlzdG9wID0g dHJ1ZTsKPiArCQl9Cj4gKwo+ICsJCWZyZWUoY3VycmVudF9zdWJ0ZXN0X2RvY3VtZW50YXRpb24p Owo+ICsJCWN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uID0gTlVMTDsKPiArCj4gKwkJaWYg KHN0b3ApCj4gICAJCQlyZXR1cm4gZmFsc2U7Cj4gLQkJZWxzZQo+IC0JCQlydW5fc2luZ2xlX3N1 YnRlc3RfZm91bmQgPSB0cnVlOwo+ICAgCX0KPiAgIAo+ICAgCWlmIChza2lwX3N1YnRlc3RzX2hl bmNlZm9ydGgpIHsKPiBAQCAtOTgzLDEwICsxMDMwLDUyIEBAIGJvb2wgX19pZ3RfcnVuX3N1YnRl c3QoY29uc3QgY2hhciAqc3VidGVzdF9uYW1lKQo+ICAgCV9pZ3RfbG9nX2J1ZmZlcl9yZXNldCgp Owo+ICAgCj4gICAJZ2V0dGltZSgmc3VidGVzdF90aW1lKTsKPiArCj4gICAJcmV0dXJuIChpbl9z dWJ0ZXN0ID0gc3VidGVzdF9uYW1lKTsKPiAgIH0KPiAgIAo+ICAgLyoqCj4gKyAqIGlndF9kb2N1 bWVudF9zdWJ0ZXN0Ogo+ICsgKiBAZG9jdW1lbnRhdGlvbjogZG9jdW1lbnRhdGlvbiBmb3IgdGhl IG5leHQgc3VidGVzdAo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIGRvY3VtZW50 YXRpb24gc3RyaW5nIGZvciB0aGUgbmV4dCBvY2N1cnJpbmcgc3VidGVzdC4KPiArICovCj4gK3Zv aWQgaWd0X2RvY3VtZW50X3N1YnRlc3QoY29uc3QgY2hhciAqZG9jdW1lbnRhdGlvbikKPiArewo+ ICsJaWYgKHJ1bm1vZGUgPT0gRE9DVU1FTlQgfHwgcnVubW9kZSA9PSBET0NVTUVOVF9TSU5HTEUp IHsKPiArCQlmcmVlKGN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uKTsKPiArCQljdXJyZW50 X3N1YnRlc3RfZG9jdW1lbnRhdGlvbiA9IHN0cmR1cChkb2N1bWVudGF0aW9uKTsKPiArCX0KPiAr fQo+ICsKPiArLyoqCj4gKyAqIGlndF9kb2N1bWVudF9zdWJ0ZXN0X2Y6Cj4gKyAqIEBkb2N1bWVu dGF0aW9uOiBEb2N1bWVudGF0aW9uIGZvciB0aGUgbmV4dCBzdWJ0ZXN0Cj4gKyAqIEAuLi46IGZv cm1hdCBzdHJpbmcgYW5kIG9wdGlvbmFsIGFyZ3VtZW50cwo+ICsgKgo+ICsgKiBUaGlzIGZ1bmN0 aW9uIHNldHMgdGhlIGRvY3VtZW50YXRpb24gc3RyaW5nIGZvciB0aGUgbmV4dCBvY2N1cnJpbmcg c3VidGVzdC4KPiArICoKPiArICogTGlrZSBpZ3RfZG9jdW1lbnRfc3VidGVzdCgpLCBidXQgYWxz byBhY2NlcHRzIGEgcHJpbnRmIGZvcm1hdAo+ICsgKiBzdHJpbmcgaW5zdGVhZCBvZiBhIHN0YXRp YyBzdHJpbmcuCj4gKyAqLwo+ICtfX2F0dHJpYnV0ZV9fKChmb3JtYXQocHJpbnRmLCAxLCAyKSkp Cj4gK3ZvaWQgaWd0X2RvY3VtZW50X3N1YnRlc3RfZihjb25zdCBjaGFyICpkb2N1bWVudGF0aW9u LCAuLi4pCj4gK3sKPiArCWludCBlcnI7Cj4gKwl2YV9saXN0IGFyZ3M7Cj4gKwo+ICsJaWYgKHJ1 bm1vZGUgPT0gRE9DVU1FTlQgfHwgcnVubW9kZSA9PSBET0NVTUVOVF9TSU5HTEUpIHsKPiArCQlm cmVlKGN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uKTsKPiArCQl2YV9zdGFydChhcmdzLCBk b2N1bWVudGF0aW9uKTsKPiArCQllcnIgPSB2YXNwcmludGYoJmN1cnJlbnRfc3VidGVzdF9kb2N1 bWVudGF0aW9uLCBkb2N1bWVudGF0aW9uLCBhcmdzKTsKPiArCQl2YV9lbmQoYXJncyk7Cj4gKwkJ aWYgKGVyciA8IDApCj4gKwkJCWN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uID0gTlVMTDsK PiArCX0KPiArfQo+ICsKPiArCj4gKy8qKgo+ICAgICogaWd0X3N1YnRlc3RfbmFtZToKPiAgICAq Cj4gICAgKiBSZXR1cm5zOiBUaGUgbmFtZSBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGVkIHN1YnRl c3Qgb3IgTlVMTCBpZiBjYWxsZWQgZnJvbQo+IEBAIC05OTgsMTQgKzEwODcsMTQgQEAgY29uc3Qg Y2hhciAqaWd0X3N1YnRlc3RfbmFtZSh2b2lkKQo+ICAgfQoKRG9jdW1lbnQgc3VidGVzdCBmdW5j dGlvbiB3b3JrcyBmaW5lIG5vdywgdHJpZWQgaXQgd2l0aCB0aGUgbGF0ZXN0IApwYXRjaGVzLiBB bHNvLApSZXZpZXdlZC1ieTogVmluYXkgQmVsZ2F1bWthciA8dmluYXkuYmVsZ2F1bWthckBpbnRl bC5jb20+Cgo+ICAgCj4gICAvKioKPiAtICogaWd0X29ubHlfbGlzdF9zdWJ0ZXN0czoKPiArICog aWd0X29ubHlfY29sbGVjdF9kYXRhOgo+ICAgICoKPiAtICogUmV0dXJuczogUmV0dXJucyB0cnVl IGlmIG9ubHkgc3VidGVzdCBzaG91bGQgYmUgbGlzdGVkIGFuZCBhbnkgc2V0dXAgY29kZQo+ICsg KiBSZXR1cm5zOiBSZXR1cm5zIHRydWUgaWYgdGhlIHJ1bm5pbmcgbW9kZSBpcyBvbmx5IGNvbGxl Y3RpbmcgZGF0YSBhbmQgYW55IHNldHVwIGNvZGUKPiAgICAqIG11c3QgYmUgc2tpcHBlZCwgZmFs c2Ugb3RoZXJ3aXNlLgo+ICAgICovCj4gLWJvb2wgaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cyh2b2lk KQo+ICtib29sIGlndF9vbmx5X2NvbGxlY3RfZGF0YSh2b2lkKQo+ICAgewo+IC0JcmV0dXJuIGxp c3Rfc3VidGVzdHM7Cj4gKwlyZXR1cm4gcnVubW9kZSAhPSBFWEVDVVRFX0FMTCAmJiBydW5tb2Rl ICE9IEVYRUNVVEVfU0lOR0xFOwo+ICAgfQo+ICAgCj4gICB2b2lkIF9faWd0X3N1YnRlc3RfZ3Jv dXBfc2F2ZShpbnQgKnNhdmUpCj4gQEAgLTEwNTksNyArMTE0OCw3IEBAIHZvaWQgaWd0X3NraXAo Y29uc3QgY2hhciAqZiwgLi4uKQo+ICAgCj4gICAJYXNzZXJ0KCF0ZXN0X2NoaWxkKTsKPiAgIAo+ IC0JaWYgKCFpZ3Rfb25seV9saXN0X3N1YnRlc3RzKCkpIHsKPiArCWlmICghaWd0X29ubHlfY29s bGVjdF9kYXRhKCkpIHsKPiAgIAkJdmFfc3RhcnQoYXJncywgZik7Cj4gICAJCXZwcmludGYoZiwg YXJncyk7Cj4gICAJCXZhX2VuZChhcmdzKTsKPiBAQCAtMTQ0MywxMiArMTUzMiwxMiBAQCB2b2lk IGlndF9leGl0KHZvaWQpCj4gICAJCWdfa2V5X2ZpbGVfZnJlZShpZ3Rfa2V5X2ZpbGUpOwo+ICAg I2VuZGlmCj4gICAKPiAtCWlmIChydW5fc2luZ2xlX3N1YnRlc3QgJiYgIXJ1bl9zaW5nbGVfc3Vi dGVzdF9mb3VuZCkgewo+IC0JCWlndF93YXJuKCJVbmtub3duIHN1YnRlc3Q6ICVzXG4iLCBydW5f c2luZ2xlX3N1YnRlc3QpOwo+ICsJaWYgKHNpbmdsZV9zdWJ0ZXN0ICYmICFzaW5nbGVfc3VidGVz dF9mb3VuZCkgewo+ICsJCWlndF93YXJuKCJVbmtub3duIHN1YnRlc3Q6ICVzXG4iLCBzaW5nbGVf c3VidGVzdCk7Cj4gICAJCWV4aXQoSUdUX0VYSVRfSU5WQUxJRCk7Cj4gICAJfQo+ICAgCj4gLQlp ZiAoaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cygpKQo+ICsJaWYgKGlndF9vbmx5X2NvbGxlY3RfZGF0 YSgpKQo+ICAgCQlleGl0KElHVF9FWElUX1NVQ0NFU1MpOwo+ICAgCj4gICAJLyogQ2FsbGluZyB0 aGlzIHdpdGhvdXQgY2FsbGluZyBvbmUgb2YgdGhlIGFib3ZlIGlzIGEgZmFpbHVyZSAqLwo+IEBA IC0yMDEyLDcgKzIxMDEsNyBAQCBib29sIGlndF9ydW5faW5fc2ltdWxhdGlvbih2b2lkKQo+ICAg ICovCj4gICB2b2lkIGlndF9za2lwX29uX3NpbXVsYXRpb24odm9pZCkKPiAgIHsKPiAtCWlmIChp Z3Rfb25seV9saXN0X3N1YnRlc3RzKCkpCj4gKwlpZiAoaWd0X29ubHlfY29sbGVjdF9kYXRhKCkp Cj4gICAJCXJldHVybjsKPiAgIAo+ICAgCWlmICghaW5fZml4dHVyZSAmJiAhaW5fc3VidGVzdCkg ewo+IEBAIC0yMDg3LDcgKzIxNzYsNyBAQCB2b2lkIGlndF92bG9nKGNvbnN0IGNoYXIgKmRvbWFp biwgZW51bSBpZ3RfbG9nX2xldmVsIGxldmVsLCBjb25zdCBjaGFyICpmb3JtYXQsCj4gICAJcHJv Z3JhbV9uYW1lID0gY29tbWFuZF9zdHI7Cj4gICAjZW5kaWYKPiAgIAo+IC0JaWYgKGxpc3Rfc3Vi dGVzdHMgJiYgbGV2ZWwgPD0gSUdUX0xPR19XQVJOKQo+ICsJaWYgKGlndF9vbmx5X2NvbGxlY3Rf ZGF0YSgpICYmIGxldmVsIDw9IElHVF9MT0dfV0FSTikKPiAgIAkJcmV0dXJuOwo+ICAgCj4gICAJ aWYgKHZhc3ByaW50ZigmbGluZSwgZm9ybWF0LCBhcmdzKSA9PSAtMSkKPiBkaWZmIC0tZ2l0IGEv bGliL2lndF9jb3JlLmggYi9saWIvaWd0X2NvcmUuaAo+IGluZGV4IDE2MTlhOWQuLjI3NWU0Njcg MTAwNjQ0Cj4gLS0tIGEvbGliL2lndF9jb3JlLmgKPiArKysgYi9saWIvaWd0X2NvcmUuaAo+IEBA IC0xOTcsOCArMTk3LDEyIEBAIGJvb2wgX19pZ3RfcnVuX3N1YnRlc3QoY29uc3QgY2hhciAqc3Vi dGVzdF9uYW1lKTsKPiAgICNkZWZpbmUgaWd0X3N1YnRlc3RfZihmLi4uKSBcCj4gICAJX19pZ3Rf c3VidGVzdF9mKGlndF90b2tlbmNhdChfX3RtcGNoYXIsIF9fTElORV9fKSwgZikKPiAgIAo+ICt2 b2lkIGlndF9kb2N1bWVudF9zdWJ0ZXN0KGNvbnN0IGNoYXIgKmRvY3VtZW50YXRpb24pOwo+ICtf X2F0dHJpYnV0ZV9fKChmb3JtYXQocHJpbnRmLCAxLCAyKSkpCj4gK3ZvaWQgaWd0X2RvY3VtZW50 X3N1YnRlc3RfZihjb25zdCBjaGFyICpkb2N1bWVudGF0aW9uLCAuLi4pOwo+ICsKPiAgIGNvbnN0 IGNoYXIgKmlndF9zdWJ0ZXN0X25hbWUodm9pZCk7Cj4gLWJvb2wgaWd0X29ubHlfbGlzdF9zdWJ0 ZXN0cyh2b2lkKTsKPiArYm9vbCBpZ3Rfb25seV9jb2xsZWN0X2RhdGEodm9pZCk7Cj4gICAKPiAg IHZvaWQgX19pZ3Rfc3VidGVzdF9ncm91cF9zYXZlKGludCAqKTsKPiAgIHZvaWQgX19pZ3Rfc3Vi dGVzdF9ncm91cF9yZXN0b3JlKGludCk7CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK