From mboxrd@z Thu Jan 1 00:00:00 1970 From: Petri Latvala Subject: Re: [PATCH i-g-t 2/3] tests/drv_module_reload_basic: Convert sh script to C version. Date: Fri, 21 Oct 2016 12:39:22 +0300 Message-ID: <8ead15bf-e586-2a53-2176-7034afb8376b@intel.com> References: <20161020193649.11701-1-marius.c.vlad@intel.com> <20161020193649.11701-3-marius.c.vlad@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 84A326ECAF for ; Fri, 21 Oct 2016 09:39:36 +0000 (UTC) In-Reply-To: <20161020193649.11701-3-marius.c.vlad@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Marius Vlad , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiAxMC8yMC8yMDE2IDEwOjM2IFBNLCBNYXJpdXMgVmxhZCB3cm90ZToKPiBTaWduZWQtb2Zm LWJ5OiBNYXJpdXMgVmxhZCA8bWFyaXVzLmMudmxhZEBpbnRlbC5jb20+Cj4gLS0tCj4gICB0ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAgIHwgICAyICstCj4gICB0ZXN0cy9kcnZfbW9kdWxl X3JlbG9hZF9iYXNpYyAgIHwgIDk3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICB0ZXN0cy9k cnZfbW9kdWxlX3JlbG9hZF9iYXNpYy5jIHwgMTY2ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgIDMgZmlsZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKyksIDk4 IGRlbGV0aW9ucygtKQo+ICAgZGVsZXRlIG1vZGUgMTAwNzU1IHRlc3RzL2Rydl9tb2R1bGVfcmVs b2FkX2Jhc2ljCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvZHJ2X21vZHVsZV9yZWxvYWRf YmFzaWMuYwo+Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9N YWtlZmlsZS5zb3VyY2VzCj4gaW5kZXggNmQwODFjMy4uYzM1ZWExMSAxMDA2NDQKPiAtLS0gYS90 ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+IEBA IC0yMTEsNiArMjExLDcgQEAgVEVTVFNfcHJvZ3MgPSBcCj4gICAJa21zX3B3cml0ZV9jcmMgXAo+ ICAgCWttc19zaW5rX2NyY19iYXNpYyBcCj4gICAJcHJpbWVfdWRsIFwKPiArCWRydl9tb2R1bGVf cmVsb2FkX2Jhc2ljIFwKPiAgIAkkKE5VTEwpCj4gICAKPiAgICMgSU1QT1JUQU5UOiBUaGUgWlpf IHRlc3RzIG5lZWQgdG8gYmUgcnVuIGxhc3QhCj4gQEAgLTIyMSw3ICsyMjIsNiBAQCBURVNUU19z Y3JpcHRzX00gPSBcCj4gICBURVNUU19zY3JpcHRzID0gXAo+ICAgCWRlYnVnZnNfZW1vbl9jcmFz aCBcCj4gICAJZHJ2X2RlYnVnZnNfcmVhZGVyIFwKPiAtCWRydl9tb2R1bGVfcmVsb2FkX2Jhc2lj IFwKPiAgIAlrbXNfc3lzZnNfZWRpZF90aW1pbmcgXAo+ICAgCXN5c2ZzX2wzX3Bhcml0eSBcCj4g ICAJdGVzdF9ydGVfY2hlY2sgXAo+IGRpZmYgLS1naXQgYS90ZXN0cy9kcnZfbW9kdWxlX3JlbG9h ZF9iYXNpYyBiL3Rlc3RzL2Rydl9tb2R1bGVfcmVsb2FkX2Jhc2ljCj4gZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNzU1Cj4gaW5kZXggYThkNjI4ZC4uMDAwMDAwMAo+IC0tLSBhL3Rlc3RzL2Rydl9tb2R1 bGVfcmVsb2FkX2Jhc2ljCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDk3ICswLDAgQEAKPiAtIyEv YmluL2Jhc2gKPiAtIwo+IC0jIFRlc3RjYXNlOiBSZWxvYWQgdGhlIGRybSBtb2R1bGUKPiAtIwo+ IC0jIC4uLiB3ZSd2ZSBicm9rZW4gdGhpcyB3YXkgdG9vIG9mdGVuIDooCj4gLSMKPiAtCj4gLVNP VVJDRV9ESVI9IiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19IiApIgo+IC0uICRTT1VSQ0Vf RElSL2RybV9saWIuc2gKPiAtCj4gLSMgbm8gb3RoZXIgZHJtIHNlcnZpY2Ugc2hvdWxkIGJlIHJ1 bm5pbmcsIHNvIHdlIGNhbiBqdXN0IHVuYmluZAo+IC0KPiAtIyByZXR1cm4gMCBpZiBtb2R1bGUg YnkgbmFtZSAkMSBpcyBsb2FkZWQgYWNjb3JkaW5nIHRvIGxzbW9kCj4gLWZ1bmN0aW9uIG1vZF9s b2FkZWQoKQo+IC17Cj4gLQlsc21vZCB8IGdyZXAgLXcgIl4kMSIgJj4gL2Rldi9udWxsCj4gLX0K PiAtCj4gLWZ1bmN0aW9uIHJlbG9hZCgpIHsKPiAtCWxvY2FsIHNuZF9oZGFfaW50ZWxfdW5sb2Fk ZWQKPiAtCj4gLQllY2hvIFJlbG9hZGluZyBpOTE1LmtvIHdpdGggJCoKPiAtCj4gLQkjIHdlIG11 c3Qga2ljayBhd2F5IGZiY29uIChidXQgb25seSBmYmNvbikKPiAtCWZvciB2dGNvbiBpbiAvc3lz L2NsYXNzL3Z0Y29uc29sZS92dGNvbiovIDsgZG8KPiAtCQlpZiBncmVwICJmcmFtZSBidWZmZXIg ZGV2aWNlIiAkdnRjb24vbmFtZSA+IC9kZXYvbnVsbCA7IHRoZW4KPiAtCQkJZWNobyB1bmJpbmRp bmcgJHZ0Y29uOiBgY2F0ICR2dGNvbi9uYW1lYAo+IC0JCQllY2hvIDAgPiAkdnRjb24vYmluZAo+ IC0JCWZpCj4gLQlkb25lCj4gLQo+IC0JIyBUaGUgc291bmQgZHJpdmVyIHVzZXMgb3VyIHBvd2Vy IHdlbGwKPiAtCXBraWxsIGFsc2FjdGwKPiAtCXNuZF9oZGFfaW50ZWxfdW5sb2FkZWQ9MAo+IC0J aWYgbW9kX2xvYWRlZCBzbmRfaGRhX2ludGVsOyB0aGVuCj4gLQkJcm1tb2Qgc25kX2hkYV9pbnRl bCAmJiBzbmRfaGRhX2ludGVsX3VubG9hZGVkPTEKPiAtCWZpCj4gLQo+IC0JIyBnZW41IG9ubHkK PiAtCWlmIG1vZF9sb2FkZWQgaW50ZWxfaXBzOyB0aGVuCj4gLQkJcm1tb2QgaW50ZWxfaXBzCj4g LQlmaQo+IC0Jcm1tb2QgaTkxNSB8fCByZXR1cm4gJElHVF9FWElUX1NLSVAKPiAtCSNpZ25vcmUg ZXJyb3JzIGluIGludGVsLWd0dCwgb2Z0ZW4gYnVpbHQtaW4KPiAtCXJtbW9kIGludGVsLWd0dCAm PiAvZGV2L251bGwKPiAtCSMgZHJtIG1heSBiZSB1c2VkIGJ5IG90aGVyIGRldmljZXMgKG5vdXZl YXUsIHJhZGVvbiwgdWRsLCBldGMpCj4gLQlybW1vZCBkcm1fa21zX2hlbHBlciAmPiAvZGV2L251 bGwKPiAtCXJtbW9kIGRybSAmPiAvZGV2L251bGwKPiAtCj4gLQlpZiBtb2RfbG9hZGVkIGk5MTU7 IHRoZW4KPiAtCQllY2hvIFdBUk5JTkc6IGk5MTUua28gc3RpbGwgbG9hZGVkIQo+IC0JCXJldHVy biAkSUdUX0VYSVRfRkFJTFVSRQo+IC0JZWxzZQo+IC0JCWVjaG8gbW9kdWxlIHN1Y2Nlc3NmdWxs eSB1bmxvYWRlZAo+IC0JZmkKPiAtCj4gLQltb2Rwcm9iZSBpOTE1ICQqCj4gLQo+IC0JaWYgWyAt ZiAvc3lzL2NsYXNzL3Z0Y29uc29sZS92dGNvbjEvYmluZCBdOyB0aGVuCj4gLQkJZWNobyAxID4g L3N5cy9jbGFzcy92dGNvbnNvbGUvdnRjb24xL2JpbmQKPiAtCWZpCj4gLQo+IC0JbW9kcHJvYmUg LXEgc25kX2hkYV9pbnRlbCB8fCByZXR1cm4gJHNuZF9oZGFfaW50ZWxfdW5sb2FkZWQKPiAtfQo+ IC0KPiAtZnVuY3Rpb24gZmluaXNoX2xvYWQoKSB7Cj4gLQkjIGRvZXMgdGhlIGRldmljZSBleGlz dD8KPiAtCWlmICRTT1VSQ0VfRElSL2dlbV9hbGl2ZSA+IC9kZXYvbnVsbCA7IHRoZW4KPiAtCQll Y2hvICJtb2R1bGUgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBhZ2FpbiIKPiAtCWVsc2UKPiAtCQllY2hv ICJmYWlsZWQgdG8gcmVsb2FkIG1vZHVsZSBzdWNjZXNzZnVsbHkiCj4gLQkJcmV0dXJuICRJR1Rf RVhJVF9GQUlMVVJFCj4gLQlmaQo+IC0KPiAtCSMgdGhlbiB0cnkgdG8gcnVuIHNvbWV0aGluZwo+ IC0JaWYgISAkU09VUkNFX0RJUi9nZW1fZXhlY19zdG9yZSA+IC9kZXYvbnVsbCA7IHRoZW4KPiAt CQllY2hvICJmYWlsZWQgdG8gZXhlY3V0ZSBhIHNpbXBsZSBiYXRjaCBhZnRlciByZWxvYWQiCj4g LQkJcmV0dXJuICRJR1RfRVhJVF9GQUlMVVJFCj4gLQlmaQo+IC0KPiAtCXJldHVybiAkSUdUX0VY SVRfU1VDQ0VTUwo+IC19Cj4gLQo+IC1oZGFfZHluYW1pY19kZWJ1Z19lbmFibGUKCkkgZG9uJ3Qg c2VlIHRoZSBlcXVpdmFsZW50IG9mIGhkYV9keW5hbWljX2RlYnVnX2VuYWJsZSBpbiB0aGUgQyB2 ZXJzaW9uLgoKCj4gLQo+IC1yZWxvYWQgfHwgZXhpdCAkPwo+IC1maW5pc2hfbG9hZCB8fCBleGl0 ICQ/Cj4gLQo+IC0jIFJlcGVhdCB0aGUgbW9kdWxlIHJlbG9hZCB0cnlpbmcgdG8gdG8gZ2VuZXJh dGUgZmF1bHRzCj4gLWZvciBpIGluICQoc2VxIDEgNCk7IGRvCj4gLQlyZWxvYWQgaW5qZWN0X2xv YWRfZmFpbHVyZT0kaQo+IC1kb25lCj4gLQo+IC1yZWxvYWQgfHwgZXhpdCAkPwo+IC1maW5pc2hf bG9hZAo+IC0KPiAtZXhpdCAkPwo+IGRpZmYgLS1naXQgYS90ZXN0cy9kcnZfbW9kdWxlX3JlbG9h ZF9iYXNpYy5jIGIvdGVzdHMvZHJ2X21vZHVsZV9yZWxvYWRfYmFzaWMuYwo+IG5ldyBmaWxlIG1v ZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uZDM2YWZkZQo+IC0tLSAvZGV2L251bGwKPiArKysg Yi90ZXN0cy9kcnZfbW9kdWxlX3JlbG9hZF9iYXNpYy5jCj4gQEAgLTAsMCArMSwxNjYgQEAKPiAr LyoKPiArICogQ29weXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KPiArICoKPiArICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh dGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3 YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRp dGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiArICogcGFyYWdyYXBoKSBzaGFs bCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRo ZQo+ICsgKiBTb2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJB UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQVVUSE9SUyBPUiBD T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF Ugo+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4gKyAqIElO IFRIRSBTT0ZUV0FSRS4KPiArICovCj4gKyNpbmNsdWRlICJpZ3QuaCIKPiArI2luY2x1ZGUgImln dF9kZWJ1Z2ZzLmgiCj4gKyNpbmNsdWRlICJpZ3RfYXV4LmgiCj4gKyNpbmNsdWRlICJpZ3Rfc3lz ZnMuaCIKPiArI2luY2x1ZGUgImlndF9jb3JlLmgiCj4gKwo+ICsjaW5jbHVkZSA8ZGlyZW50Lmg+ Cj4gKyNpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvbGltaXRzLmg+ Cj4gKyNpbmNsdWRlIDxzaWduYWwuaD4KPiArI2luY2x1ZGUgPGxpYmdlbi5oPgo+ICsKPiArI2lu Y2x1ZGUgPGxpYmttb2QuaD4KPiArI2luY2x1ZGUgPHByb2MvcmVhZHByb2MuaD4KPiArCj4gK3N0 YXRpYyBjb25zdCBjaGFyICp0ZXN0c1tdID0gewo+ICsJImdlbV9hbGl2ZSIsICJnZW1fZXhlY19z dG9yZSIKPiArfTsKPiArCj4gK3N0YXRpYyBpbnQKPiArcmVsb2FkKGNvbnN0IGNoYXIgKm9wdHNf aTkxNSkKPiArewo+ICsJa2lja19mYmNvbigwKTsKPiArCj4gKwlpZiAob3B0c19pOTE1KQo+ICsJ CWlndF9pbmZvKCJSZWxvYWRpbmcgaTkxNSB3aXRoICVzXG5cbiIsIG9wdHNfaTkxNSk7Cj4gKwo+ ICsJaWYgKGlndF9sc21vZF9oYXNfbW9kdWxlKCJzbmRfaGRhX2ludGVsIikpIHsKPiArCQlpZiAo aWd0X3BraWxsKFNJR1RFUk0sICJhbHNhY3RsIikgPT0gLTEpIHsKPiArCQkJcmV0dXJuIElHVF9F WElUX0ZBSUxVUkU7Cj4gKwkJfQo+ICsJCWlmIChpZ3Rfcm1tb2QoInNuZF9oZGFfaW50ZWwiLCBm YWxzZSkgPT0gLTEpCj4gKwkJCXJldHVybiBJR1RfRVhJVF9GQUlMVVJFOwo+ICsJfQo+ICsKPiAr CS8qIGdlbjUgKi8KPiArCWlmIChpZ3RfbHNtb2RfaGFzX21vZHVsZSgiaW50ZWxfaXBzIikpIHsK PiArCQlpZ3Rfcm1tb2QoImludGVsX2lwcyIsIGZhbHNlKTsKPiArCX0KPiArCj4gKwlpZiAoaWd0 X3JtbW9kKCJpOTE1IiwgZmFsc2UpID09IC0xKSB7Cj4gKwkJcmV0dXJuIElHVF9FWElUX1NLSVA7 Cj4gKwl9Cj4gKwo+ICsJaWd0X2luZm8oImk5MTUua28gaGFzIGJlZW4gdW5sb2FkZWQhXG4iKTsK PiArCj4gKwlpZiAoaWd0X2xzbW9kX2hhc19tb2R1bGUoImludGVsLWd0dCIpKSB7Cj4gKwkJaWd0 X3JtbW9kKCJpbnRlbC1ndHQiLCBmYWxzZSk7Cj4gKwl9Cj4gKwo+ICsJaWd0X3JtbW9kKCJkcm1f a21zX2hlbHBlciIsIGZhbHNlKTsKPiArCWlndF9ybW1vZCgiZHJtIiwgZmFsc2UpOwo+ICsKPiAr CWlmIChpZ3RfbHNtb2RfaGFzX21vZHVsZSgiaTkxNSIpKSB7Cj4gKwkJaWd0X2luZm8oIldBUk5J Tkc6IGk5MTUua28gc3RpbGwgbG9hZGVkIVxuIik7Cj4gKwkJcmV0dXJuIElHVF9FWElUX0ZBSUxV UkU7Cj4gKwl9IGVsc2Ugewo+ICsJCWlndF9pbmZvKCJtb2R1bGUgc3VjY2Vzc2Z1bGx5IHVubG9h ZGVkXG4iKTsKPiArCX0KPiArCj4gKwkvKiB3ZSBkbyBub3QgaGF2ZSBhdXRvbWF0aWMgbG9hZGlu ZyBvZiBkZXBlbmRlbmNpZXMgKi8KPiArCWlndF9pbnNtb2QoImRybSIsIE5VTEwpOwo+ICsJaWd0 X2luc21vZCgiZHJtX2ttc19oZWxwZXIiLCBOVUxMKTsKPiArCj4gKwlpZiAoaWd0X2luc21vZCgi aTkxNSIsIG9wdHNfaTkxNSkgPT0gLTEpIHsKPiArCQlpZ3RfaW5mbygiQ291bGQgbm90IGxvYWQg aTkxNVxuIik7Cj4gKwkJcmV0dXJuIElHVF9FWElUX0ZBSUxVUkU7Cj4gKwl9Cj4gKwo+ICsJa2lj a19mYmNvbigxKTsKPiArCj4gKwlpZiAoaWd0X2luc21vZCgic25kX2hkYV9pbnRlbCIsIE5VTEwp ID09IC0xKQo+ICsJCXJldHVybiBJR1RfRVhJVF9GQUlMVVJFOwo+ICsKPiArCXJldHVybiBJR1Rf RVhJVF9TVUNDRVNTOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtpZ3RfZXhlY3YoY2hhciAq KmFyZ3YpCj4gK3sKPiArCWlndF9mb3JrKGNoaWxkLCAxKSB7Cj4gKwkJaWYgKGV4ZWN2KGFyZ3Zb MF0sIGFyZ3YpIDwgMCkgewo+ICsJCQlpZ3RfaW5mbygiRmFpbGVkIHRvIGV4ZWMgJXNcbiIsCj4g KwkJCQkJYXJndlswXSk7Cj4gKwkJCWV4aXQoSUdUX0VYSVRfRkFJTFVSRSk7Cj4gKwkJfQo+ICsJ fQo+ICsJaWd0X3dhaXRjaGlsZHJlbigpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtmaW5p c2hfbG9hZChjaGFyICpkaXJuYW1lKQo+ICt7Cj4gKwljaGFyIGJ1ZltQQVRIX01BWF07Cj4gKwlj aGFyICpfX2FyZ3ZbMl0gPSB7IGJ1ZiwgTlVMTCB9Owo+ICsKPiArCW1lbXNldChidWYsIDAsIFBB VEhfTUFYKTsKPiArCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlcy8lcyIsIGRpcm5hbWUs IHRlc3RzWzBdKTsKPiArCj4gKwlpZ3RfZXhlY3YoX19hcmd2KTsKPiArCj4gKwltZW1zZXQoYnVm LCAwLCBzaXplb2YoYnVmKSk7Cj4gKwlzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJXMvJXMi LCBkaXJuYW1lLCB0ZXN0c1sxXSk7Cj4gKwo+ICsJaWd0X2V4ZWN2KF9fYXJndik7Cj4gK30KPiAr Cj4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gK3sKPiArCWludCBpLCBlcnI7 Cj4gKwljaGFyIGJ1Zls2NF07Cj4gKwljaGFyICpwcmcsICpkaXI7Cj4gKwo+ICsJcHJnID0gc3Ry ZHVwKGFyZ3ZbMF0pOwo+ICsJaWd0X3N1YnRlc3RfaW5pdF9wYXJzZV9vcHRzKCZhcmdjLCBhcmd2 LCAiIiwgTlVMTCwKPiArCQkJCSAgICBOVUxMLCBOVUxMLCBOVUxMKTsKPiArCj4gKwo+ICsJaWd0 X3N1YnRlc3QoImJhc2ljLXJlbG9hZCIpIHsKPiArCQlpZiAoKGVyciA9IHJlbG9hZChOVUxMKSkp Cj4gKwkJCWlndF9mYWlsKGVycik7Cj4gKwl9Cj4gKwo+ICsJaWd0X3N1YnRlc3QoImJhc2ljLWV4 ZWMiKSB7Cj4gKwkJZGlyID0gZGlybmFtZShwcmcpOwo+ICsJCWZpbmlzaF9sb2FkKGRpcik7Cj4g Kwl9Cj4gKwo+ICsJaWd0X3N1YnRlc3QoImJhc2ljLXJlbG9hZC1pbmplY3QiKSB7Cj4gKwkJZm9y IChpID0gMDsgaSA8IDQ7IGkrKykgewo+ICsJCQltZW1zZXQoYnVmLCAwLCBzaXplb2YoYnVmKSk7 Cj4gKwkJCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJpbmplY3RfbG9hZF9mYWlsdXJlPSVk IiwgaSk7Cj4gKwkJCXJlbG9hZChidWYpOwo+ICsJCX0KPiArCX0KPiArCj4gKwlpZ3Rfc3VidGVz dCgiYmFzaWMtcmVsb2FkLWZpbmFsIikKPiArCQlpZiAoKGVyciA9IHJlbG9hZChOVUxMKSkpCj4g KwkJCWlndF9mYWlsKGVycik7Cj4gKwoKQW4gYWNjb21wYW55aW5nIGNoYW5nZSB0byB0ZXN0cy9p bnRlbC1jaS9mYXN0LWZlZWRiYWNrLnRlc3RsaXN0IGluIHRoZSAKc2FtZSBjb21taXQgcmVxdWly ZWQuCgoKLS0gClBldHJpIExhdHZhbGEKCgo+ICsJZnJlZShwcmcpOwo+ICsKPiArCWlndF9leGl0 KCk7Cj4gK30KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=