From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sony.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=S1; bh=l7AG/WJXMqt3KnSD7jClAvTFI6Hl2XCK9BIp/7/kNQA=; b=J/IYs1zNWNGSnPer0L7BIPlIPK2AaGQ8caLOoMqyPTdSWY1BFrXzinyDBSqgsQut0d/y gdBDSfZG9OplzBmaPxzj+S1+I61CUnCqsd6ZtcSrum8uM3kT1q8OR2auaXEiR34bBmbL dhqvpmw/MNcV5pOHDaiono09SAXawMCy/9AbRslrIS2J0ttLxmusAI8FyH1LET33s23Y /M/+ulQPQe6dS4Vsm/q3kOzmAZgqR5zQX91FtNHVdgt/wDAatAkfRJWeupNuHmlH8eB3 I+rtY+mN849y0xd5GLNWMxaXzSRkhHKRXB5zOfST+h5kNJSkChKJXAWOe3za+zB3qXEa /A== From: Date: Wed, 8 Sep 2021 22:08:11 +0000 Message-ID: References: <1bc279d0d7bbbb6981eafc6c5bf000ef30fd1aae.1629440060.git.daniel.sangorrin@toshiba.co.jp> In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Fuego] [PATCH 4/4] rt: search for the binary if the build phase is skipped List-Id: Mailing list for the Fuego test framework List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: daniel.sangorrin@toshiba.co.jp, Venkata.Pyla@toshiba-tsip.com Cc: fuego@lists.linuxfoundation.org, tho1.nguyendat@toshiba.co.jp PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkYW5pZWwuc2FuZ29ycmluQHRv c2hpYmEuY28uanAgPGRhbmllbC5zYW5nb3JyaW5AdG9zaGliYS5jby5qcD4NCj4gDQo+IEhpDQo+ IA0KPiBJIHdhcyB0aGlua2luZyB0aGF0IGl0IHdvdWxkIGJlIG5pY2UgaWYgd2UgY291bGQgdXNl IGEgdmFyaWFibGUgdG8gY29tbXVuaWNhdGUgdG8gdGhlIHRlc3Qgd2hldGhlciB0aGUgdXNlciB3 YW50cyBpdCB0byBydW4gdGhlIGhvc3QgYmluYXJ5IG9yDQo+IHRoZSBvbmUgYnVpbHQgYnkgRnVl Z28uDQo+IFRoaXMgY291bGQgYmUgc2V0IGluIHRoZSBGdWVnbyBjb25maWd1cmF0aW9uIChmdWVn by1yby9jb25mL2Z1ZWdvLmNvbmYpIGFuZCB0aGVuIG92ZXJyaWRkZW4gb24gdGhlIHNwZWNzIG9y IHRoZSAtLWR5bmFtaWMtdmFycyBvcHRpb24uDQoNCkkgd2FzIHRoaW5raW5nIG9mIGhhdmluZyBh IGdsb2JhbCBjb25maWd1cmF0aW9uIGl0ZW0gbGlrZSB0aGlzIGFzIHdlbGwuICBJdCB3b3VsZG4n dA0KYmUgaGFyZCB0byBhZGQuIA0KPiANCj4gRG9lcyB0aGUgdmFyaWFibGUgICJ1c2VfYmluYXJ5 X3BhY2thZ2VzPWZhbHNlIiBoYXZlIHNvbWV0aGluZyB0byBkbyB3aXRoIHRoaXM/DQpOby4gIEFz IFZlbmthdGEgc2FpZCwgdGhpcyBpcyByZWxhdGVkIHRvIHByZS1idWlsdCBGdWVnbyBwYWNrYWdl cywgbm90IGhvc3QtYmFzZWQNCnBhY2thZ2VzLg0KDQpJIHdhcyB0aGlua2luZyBvZiBzb21ldGhp bmcgbGlrZToNCnByZWZlcl9ob3N0X3Rlc3RfcHJvZ3JhbXM9dHJ1ZXxmYWxzZQ0KaW4gZnVlZ28u Y29uZi4NCg0KVGhpcyB3b3VsZCBiZSBQUkVGRVJfSE9TVF9URVNUX1BST0dSQU1TIGFzIGFuIGVu dmlyb25tZW50IHZhcmlhYmxlDQpvciBkeW5hbWljIHZhcmlhYmxlLg0KDQpUaGUgZWZmZWN0IG9m IHRoZSBmbGFnIHdvdWxkIGJlIHRvIGp1c3QgY2hhbmdlIHRoZSBzZWFyY2ggb3JkZXIgaW4NCmdl dF9wcm9ncmFtX3BhdGggZnJvbToNCiBib2FyZCB0ZXN0IGRpciwgYWx0ZXJuYXRlIGRpcnMuLCBQ QVRIDQp0bw0KIFBBVEgsIGFsdGVybmF0ZSBkaXJzLiwgYm9hcmQgdGVzdCBkaXINCg0KSSBzdGls bCBhbSBub3Qgc3VyZSB3aGVyZSB0aGUgcHJvZ3JhbXMgdGhhdCB5b3UgcGxhbiB0byBpbnN0YWxs IChvdXRzaWRlIG9mIGRlcGxveSkgd2lsbA0KcmVzaWRlLiAgSXQgc291bmRzIGxpa2UgeW91IHBs YW4gdG8gcHV0IHRoZW0gaW50byAkQk9BUkRfVEVTVERJUi9mdWVnby4kVEVTVERJUiwNCmJ1dCB0 aGF0IHdvdWxkIHRoYXQgbWVhbiB5b3UgYWx3YXlzIGhhdmUgdG8gc2V0IC0tcHJlY2xlYW4gdG8g ZmFsc2Ugd2hlbiBkb2luZw0KZnRjIHJ1bi10ZXN0Lg0KDQpJZiB5b3UgYXJlIHB1dHRpbmcgdGhl bSBpbiB0aGUgcHJvdmlzaW9uZWQgaW1hZ2Ugc29tZXdoZXJlIGVsc2UsIHRoZW4gaXQgc2VlbXMN Cmxpa2UgaXQgd291bGQgYmUgYmV0dGVyIHRvIG5vdCBjaGVjayAkQk9BUkRfVEVTVERJUi9mdWVn by4kVEVTVERJUiBmaXJzdA0KKGFsdGhvdWdoIGl0IG1pZ2h0IG5vdCBtYXR0ZXIgYmVjYXVzZSB5 b3UgYXJlbid0IGRvaW5nIGRlcGxveSwgc28gdGhlIHRlc3QgcHJvZ3JhbXMNCnNob3VsZCBub3Qg YmUgcHJlc2VudCBpbiAkQk9BUkRfVEVTVERJUi9mdWVnby4kVEVTVERJUi4pDQoNCkl0IHdvdWxk IGJlIG5pY2UgdG8gYXZvaWQgaGF2aW5nIGFueSBwYXRoIGRldGVjdGlvbiBsb2dpYyBpbnNpZGUg dGhlIHRlc3RzDQp0aGVtc2VsdmVzIChhZnRlciB0aGUgc3dpdGNoIHRvIGdldF9wcm9ncmFtX3Bh dGgpLg0KDQpTaG91bGQgSSB3aGlwIHVwIGFuIGltcGxlbWVudGF0aW9uLiAgSSBoYXZlIHRoZSBz dWNjZXNzb3IgdG8gZ2V0X3Byb2dyYW1fcGF0aA0KZG9uZSwgYnV0IHdvdWxkIHN0aWxsIG5lZWQg dG8gZG8gdGhlIGNvbmZpZyB2YXJpYWJsZSBoYW5kbGluZy4NCg0KSGF2aW5nIHNhaWQgYWxsIHRo YXQsIGlmIHlvdSBkb24ndCB0aGluayB5b3UnbGwgc2V0IHRoZSBjb25maWcgdmFyaWFibGUsIEkn ZCByYXRoZXIgbm90DQphZGQgdGhlIGltcGxlbWVudGF0aW9uIGZvciBpdC4gIEZ1ZWdvIGFscmVh ZHkgaGFzIGEgbGFyZ2UgbnVtYmVyIG9mIHNvbWV3aGF0DQppZGlvc3luY3JhdGljIGJlaGF2aW9y cywgYW5kIEknZCBsaWtlIHRvIGF2b2lkIGFkZGluZyBtb3JlIHVubGVzcyB0aGVyZSdzIGEgcmVh bA0KdXNlIGNhc2UgZm9yIHRoZW0uDQogLS0gVGltDQoNCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+IEZyb206IEZ1ZWdvIDxmdWVnby1ib3VuY2VzQGxpc3RzLmxpbnV4Zm91bmRh dGlvbi5vcmc+IE9uIEJlaGFsZiBPZiBUaW0uQmlyZEBzb255LmNvbQ0KPiA+IFNlbnQ6IFdlZG5l c2RheSwgU2VwdGVtYmVyIDgsIDIwMjEgMTA6MTQgQU0NCj4gPiBUbzogcHlsYSB2ZW5rYXRhKO+8 tO+8s++8qe+8sCkgPFZlbmthdGEuUHlsYUB0b3NoaWJhLXRzaXAuY29tPg0KPiA+IENjOiBmdWVn b0BsaXN0cy5saW51eGZvdW5kYXRpb24ub3JnOyBuZ3V5ZW4gZGF0IHRobyjvvLTvvLPvvKTvvLYg 77yl772O772H44CA77yRKSA8dGhvMS5uZ3V5ZW5kYXRAdG9zaGliYS5jby5qcD4NCj4gPiBTdWJq ZWN0OiBSZTogW0Z1ZWdvXSBbUEFUQ0ggNC80XSBydDogc2VhcmNoIGZvciB0aGUgYmluYXJ5IGlm IHRoZSBidWlsZCBwaGFzZSBpcyBza2lwcGVkDQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBWZW5rYXRhLlB5bGFAdG9zaGliYS10c2lwLmNvbSA8VmVu a2F0YS5QeWxhQHRvc2hpYmEtdHNpcC5jb20+DQo+ID4gPg0KPiA+ID4gSGkgVGltLA0KPiA+ID4N Cj4gPiA+IEkgaGF2ZSBmZXcgcXVlc3Rpb25zIG9uIHRoZSBiZWxvdyBpbXBsZW1lbnRhdGlvbiBm b3IgJ2dldF9wcm9ncmFtX3BhdGgnDQo+ID4gPg0KPiA+ID4gSXQgbG9va3MgbGlrZSB0aGUgZnVu Y3Rpb24gJ2dldF9wcm9ncmFtX3BhdGgnIGFsd2F5cyBmaXJzdCBjaGVja3MgdGhlIHByb2dyYW0g aXMgaW5zdGFsbGVkIGluICdQQVRIJywgdGhlbiBpdCBjaGVja3MgaW4gcGF0aCAkMiBhbmQgdGhl bg0KPiA+ICQzLg0KPiA+DQo+ID4gUGF0aCAzIGlzIG5ldmVyIGNoZWNrZWQsIGFuZCBpdCBpcyBu b3QgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRvIGNoZWNrLiAgSXQgaXMgdGhlIHJldHVybiB2YWx1 ZSwgaWYgdGhlIHByb2dyYW0gaXMgbm90IGZvdW5kIGluIHRoZSBvdGhlciAyIHBhdGhzLA0KPiA+ IGFuZCBpZiBpdCBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIGl0IGRlZmF1bHRzIHRvOg0KPiA+ICRC T0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSL3twcm9ncmFtX25hbWV9DQo+ID4NCj4gPiBJIGRp ZCB0aGlzIHRvIG1vc3QgY2xvc2VseSBtYXRjaCB0aGUgY3VycmVudCBiZWhhdmlvciBvZiBGdWVn by4NCj4gPiBJbiB0aGUgZGlzY3Vzc2lvbiB0aGF0IGZvbGxvd3MsIEknbSB1c2luZyB0aGUgZm9s bG93aW5nIHNob3J0aGFuZDoNCj4gPiAgYSkgIGJvYXJkIHRlc3QgZGlyID0gJEJPQVJEX1RFU1RE SVIvZnVlZ28uJFRFU1RESVINCj4gPiAgYikgUEFUSCA9IG9uZSBvZiB0aGUgZGlyZWN0b3JpZXMg aW4gdGhlIHRhcmdldCBib2FyZHMgUEFUSCB2YXJpYWJsZQ0KPiA+ICBjKSBhbHRlcm5hdGUgZGly cy4gPSBvbmUgb2YgdGhlIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBhcyBhbiBhcmd1bWVudCB0byBn ZXRfcHJvZ3JhbV9wYXRoICgybmQgYXJndW1lbnQpDQo+ID4NCj4gPiBGdWVnbyBoYXMgc2V2ZXJh bCBraW5kcyBvZiBpbnZvY2F0aW9ucyBvZiBwcm9ncmFtcyBvbiB0aGUgYm9hcmQgaW4gZnVlZ29f dGVzdC5zaCByZXBvcnQgZnVuY3Rpb25zIGN1cnJlbnRseToNCj4gPiAgLSBmcm9tIHRoZSBib2Fy ZCB0ZXN0IGRpcmVjdG9yeSwgdXNpbmcgYSByZWxhdGl2ZSBwYXRoIChlLmcgdXNpbmcgJ2NkIGJv YXJkIHRlc3QgZGlyIDsgLi9wcm9ncmFtX25hbWUnKQ0KPiA+ICAgICAtIHRoZXNlIGFyZSBhbHdh eXMgZm9yIHByb2dyYW1zIHRoYXQgRnVlZ28gaGFzIGRlcGxveWVkLCB0aGlzIGlzIGJ5IGZhciB0 aGUgbW9zdCBjb21tb24gY2FzZQ0KPiA+ICAtIGZyb20gdGhlIGJvYXJkIHRlc3QgZGlyZWN0b3J5 LCB1c2luZyBhIGZ1bGwgcGF0aA0KPiA+ICAgICAtIHRoZXNlIGFyZSBhbHNvIGFsd2F5cyBmb3Ig cHJvZ3JhbXMgdGhhdCBGdWVnbyBoYXMgZGVwbG95ZWQsIHRoaXMgaXMgdmVyeSByYXJlDQo+ID4g IC0gZnJvbSB0aGUgUEFUSCwgdXNpbmcganVzdCB0aGUgcHJvZ3JhbSBuYW1lDQo+ID4gICAgIC0g dGhlc2UgYXJlIGFsd2F5cyBmb3IgcHJvZ3JhbXMgdGhhdCBhcmUgYWxyZWFkeSBhc3N1bWVkIHRv IGJlIG9uIHRoZSB0YXJnZXQgKHhyYW5kciwgYmMsIGxzLCB0aW1lLCBkZCwgY2F0LCBqYXZhLCBl dGMuKQ0KPiA+ICAgICAgICAtIHRoaXMgaXMgYWxzbyBhIGZhaXJseSBjb21tb24gY2FzZS4gIElu IHRoaXMgY2FzZSwgRnVlZ28gbmV2ZXIgaW50ZW5kZWQgdG8gaW5zdGFsbCB0aGlzIHByb2dyYW0u DQo+ID4gICAgICAgICAtIGlmIHRoZSBwcm9ncmFtIGlzIHBvc3NpYmx5IG5vdCBwcmVzZW50LCB0 aGVuIG9mdGVuIHRoZXJlIGlzIGFuIGFzc2VydF9oYXNfcHJvZ3JhbSBpbiB0aGUgdGVzdF9wcmVf Y2hlY2sgdG8NCj4gPiAgICAgICAgICAgbWFrZSBzdXJlIGl0IGlzIHByZXNlbnQgYmVmb3JlIHBy b2NlZWRpbmcuDQo+ID4gIC0gZnJvbSBvdGhlciBwbGFjZXMNCj4gPiAgICAgLSBMVFAgY2FuIGJl IHJ1biBmcm9tIGEgcHJlLWluc3RhbGxlZCBsb2NhdGlvbiBub3csIGJ1dCBpdCByZXF1aXJlcyBt YW51YWxseSBjb25maWd1cmluZyB0aGUgc3BlYyB3aXRoDQo+ID4gICAgICAgYSBIT01FRElSIGFy Z3VtZW50IChvciB0aGUgYm9hcmQgd2l0aCBhIEZVTkNUSU9OQUxfTFRQX0hPTUVESVIgYXJndW1l bnQpDQo+ID4NCj4gPiA+IEluIHRoaXMgc2l0dWF0aW9uIHVzZXIgY2Fubm90IHNraXAgdGhlIGlu c3RhbGxlZCBwcm9ncmFtcyBpbiB0aGUgUEFUSCBhbmQgaW5zdGVhZCB1c2Ugc3BlY2lmaWVkIHBh dGggaW4gJDIgb3IgJDM/DQo+ID4gVGhhdCdzIGNvcnJlY3QuDQo+ID4NCj4gPiA+IEl0IGlzIG5v dCBvdXIgdXNlIGNhc2UgYW55d2F5IHRvIHNraXAgdGhlIHByb2dyYW1zIGluc3RhbGxlZCBpbiBQ QVRILA0KPiA+ID4gcmF0aGVyIHdlIHdhbnQgdG8gdXNlIHRoZSBpbnN0YWxsZWQgcHJvZ3JhbXMg aW4gdGhlIFBBVEggdmFyaWFibGUsIEJ1dA0KPiA+ID4gSSB3b3JyaWVkIGlmIEkgdXNlICdnZXRf cHJvZ3JhbV9wYXRoJyBpbiB0aGUgZnVlZ29fdGVzdC5zaCwgaXQgd2lsbA0KPiA+ID4gYWx3YXlz IGNoZWNrcyB0aGUgcHJvZ3JhbSBwcmVzZW50IGluIFBBVEggZmlyc3QgYW5kIHRoZW4gc3BlY2lm aWVkIGluDQo+ID4gPiAkMiBvciAkMywNCj4gPiA+IHRoaXMgd2lsbCBicmVhayBmb3IgdGhlIHVz ZXJzIHdobyB3YW50IHRvIHVzZSBwcm9ncmFtIHRoYXQgaXMgY29tcGlsZWQNCj4gPiA+IGFuZCBk ZXBsb3llZCBzdGFnZXMgb2YgZnVlZ28gYW5kIGFsc28gd2hlbiB0aGUgcHJvZ3JhbSBpcyBpbnN0 YWxsZWQgaW4gdGhlIFBBVEguDQo+ID4NCj4gPiBUaGF0J3MgYSBnb29kIG9ic2VydmF0aW9uLiAg R2l2ZW4gdGhhdCB0aGUgY3VycmVudCBtb3N0LWNvbW1vbiBiZWhhdmlvciBpcyB0byBydW4gdGhl IHRlc3QgcHJvZ3JhbSBmcm9tIHRoZSBib2FyZCB0ZXN0IGRpcmVjdG9yeSwNCj4gPiB0aGF0IHNo b3VsZCBiZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBnZXRfcHJvZ3JhbV9wYXRoLCBpbiBvcmRl ciB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIGZvciBleGlzdGluZyB0ZXN0cyBhcyBsaXR0bGUgYXMg cG9zc2libGUuDQo+ID4NCj4gPiBVbmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgaWYgdGhlIHRl c3QgZGVwbG95cyBhIHByb2dyYW0gdGhhdCB3YXMgYnVpbHQgYnkgRnVlZ28sIHdlIHdhbnQgdG8g cnVuIHRoYXQsIHNpbmNlIGl0IGlzIG1vc3QgbGlrZWx5IHRoYXQgdGhlDQo+ID4gYXJndW1lbnRz IGFuZCBvdXRwdXQgd2lsbCBiZSB3aGF0IHRoZSBGdWVnbyB0ZXN0IGlzIGV4cGVjdGluZyBhbmQg Y2FuIHdvcmsgd2l0aC4gIElmIGEgZGlmZmVyZW50IHZlcnNpb24gb2YgdGhlIHRlc3QgcHJvZ3Jh bSBpcyBvbiB0aGUNCj4gPiBib2FyZCwgdGhlbiBpdCBtaWdodCBjYXVzZSB1bmV4cGVjdGVkIHBy b2JsZW1zIHJ1bm5pbmcgaXQgYW5kIHBhcnNpbmcgdGhlIG91dHB1dC4NCj4gPg0KPiA+IFRoYXQg aXMsIGlmIEZ1ZWdvIGhhcyBkZXBsb3llZCAnZGhyeXN0b25lJyAoZm9yIGV4YW1wbGUpIHRvIHRo ZSBib2FyZCB0ZXN0IGRpcmVjdG9yeSwgd2UgcHJvYmFibHkgd2FudCB0byBydW4gdGhhdCBpbnN0 ZWFkIG9mIG9uZSBmb3VuZA0KPiA+IG9uIHRoZSBib2FyZCBQQVRILg0KPiA+DQo+ID4gPiBlLmc6 DQo+ID4gPiAgZnVuY3Rpb24gdGVzdF9ydW4gew0KPiA+ID4gLSAgICByZXBvcnQgImNkICRCT0FS RF9URVNURElSL2Z1ZWdvLiRURVNURElSOyAuL2RocnlzdG9uZSAkQkVOQ0hNQVJLX0RIUllTVE9O RV9MT09QUyINCj4gPiA+ICsgICAgZ2V0X3Byb2dyYW1fcGF0aCAnZGhyeXN0b25lJw0KPiA+ID4g KyAgICByZXBvcnQgIiRQUk9HUkFNX0RIUllTVE9ORSAkQkVOQ0hNQVJLX0RIUllTVE9ORV9MT09Q UyINCj4gPiA+ICB9DQo+ID4NCj4gPiBBcyBnZXRfcHJvZ3JhbV9wYXRoIGlzIGN1cnJlbnRseSB3 cml0dGVuLCB5b3UgYXJlIHJpZ2h0LCB0aGlzIGdpdmVzIHByZWZlcmVuY2UgdG8gZGhyeXN0b25l IG9uIHRoZSBQQVRIIGluc3RlYWQgb2YgdGhlIG9uZSBpbiB0aGUgYm9hcmQNCj4gPiB0ZXN0IGRp ci4NCj4gPg0KPiA+ID4NCj4gPiA+IEluc3RlYWQgSSBhbSB0aGlua2luZyBzb21ldGhpbmcgbGlr ZSB0aGlzLCB0aGUgZnVuY3Rpb24NCj4gPiA+ICdnZXRfcHJvZ3JhbV9wYXRoJyBzaG91bGQgZmly c3QgY2hlY2sgdGhlIHBhdGggc3BlY2lmaWVkIGluICQyICh3aGVyZQ0KPiA+ID4gdGhlIGZ1ZWdv IGJ1aWxkIGFuZCBkZXBsb3kgc3RhZ2UgYXJlIHBlcmZvcm1lZCkgYW5kLCBpZiBub3QgZm91bmQg dGhlbiBjaGVjayBpbiBwYXRoICQzICh3aGVyZSBmdWVnbyBidWlsZCBhbmQgZGVwbG95IHN0YWdl cyBhcmUNCj4gPiBza2lwcGVkKSwgdGhpcyBjYW4gYmUgbWFkZSBkZWZhdWx0IGJlaGF2aW91ciBp bnNpZGUgJ2dldF9wcm9ncmFtX3BhdGgnIGZ1bmN0aW9uIGFuZCB1c2VyIGNhbiBjaGFuZ2UgaWYg aGUgd2FudCBieSBwYXNzaW5nIGRpZmZlcmVudA0KPiA+IHBhdGhzLg0KPiA+IEkgZG9uJ3QgZm9s bG93IHRoaXMuICBTb3JyeS4NCj4gPg0KPiA+ID4gZnVuY3Rpb24gdGVzdF9ydW4gew0KPiA+ID4g LSAgICByZXBvcnQgImNkICRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSOyAuL2RocnlzdG9u ZSAkQkVOQ0hNQVJLX0RIUllTVE9ORV9MT09QUyINCj4gPiA+ICsgICAgZ2V0X3Byb2dyYW1fcGF0 aCAnZGhyeXN0b25lJyAgIiRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSIiAiL2JpbiINCj4g PiBJJ20gbm90IHN1cmUgdGhvc2UgYXJndW1lbnRzIG1hdGNoIHdoYXQgeW91IGFyZSBzYXlpbmcu ICBJJ20gYWxzbyBub3Qgc3VyZSB3aGVyZSB5b3UgdGhpbmsgdGhlIFBBVEggY2hlY2sgc2hvdWxk IG9jY3VyLCBpbiB0aGUNCj4gPiBzZXF1ZW5jZSBvZiBjaGVja3MgKGlmIGFueXdoZXJlKS4NCj4g Pg0KPiA+ID4gKyAgICByZXBvcnQgIiRQUk9HUkFNX0RIUllTVE9ORSAkQkVOQ0hNQVJLX0RIUllT VE9ORV9MT09QUyINCj4gPg0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiBBbHNvIHRoZSAnZ2V0X3By b2dyYW1fcGF0aCcgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBpbnNpZGUgdGhlIHJlcG9ydA0KPiA+ ID4gZnVuY3Rpb24gd2l0aCBkZWZhdWx0IGJlaGF2aW91ciwgYW5kIHRoZW4gcGF0aCBmb3IgJDMg dmFyaWFibGUgY2FuIGJlIG1vZGlmaWVkIGJ5IHRha2luZyBmcm9tIHRlc3Qgc3BlYyB2YXJpYWJs ZS4NCj4gPiA+IFdpdGggdGhpcyBvbmUgY2FuIGNoYW5nZSB0aGUgdGVzdCBiZWhhdmlvdXIgdG8g dXNlIHRoZSB0ZXN0IHByb2dyYW0gZnJvbSBzcGVjaWZpZWQgcGF0aCBpbiB0aGUgdGVzdCBzcGVj IGl0c2VsZi4NCj4gPiBJIGxpa2UgdGhlIGlkZWEgb2YgYWxsb3dpbmcgdGhlIHNwZWMgdG8gaW5k aWNhdGUgYW4gYWx0ZXJuYXRlIHBhdGguDQo+ID4NCj4gPiA+DQo+ID4gPiBQbGVhc2UgbGV0IG1l IGtub3cgaWYgdGhpcyBtYWtlIHNlbnNlLCBvciBjbGFyaWZ5IG1lIGlmIEkgbWlzdW5kZXJzdG9v ZCBpdCBlbnRpcmVseS4NCj4gPiBZb3UgcmFpc2UgYSBnb29kIGlzc3VlLCBidXQgSSdtIG5vdCBz dXJlIEkgdW5kZXJzdG9vZCBleGFjdGx5IHRoZSB1c2UgY2FzZSB5b3UgaGF2ZS4NCj4gPg0KPiA+ IFdoZW4geW91IGluc3RhbGwgdGhlIHRlc3QgcHJvZ3JhbSAoZWcuIGRocnlzdG9uZSkgaW50byB0 aGUgc3lzdGVtLCBzZXBhcmF0ZWx5IGZyb20gdGhlIEZ1ZWdvIGRlcGxveSBzdGVwLCBhcmUgeW91 IHBsYW5uaW5nIG9uIHB1dHRpbmcNCj4gPiBpdCBpbiBhIHJlZ3VsYXIgc3lzdGVtIGRpcmVjdG9y eSBzdWNoIGFzIC91c3IvYmluLCBvciBhcmUgeW91IHBsYW5uaW5nIG9uIHB1dHRpbmcgaXQgaW4g dGhlIGJvYXJkIHRlc3QgZGlyPw0KPiA+DQo+ID4gQWxzbywgaWYgdGhlIGJhc2UgZGlzdHJpYnV0 aW9uIG9uIHRoZSBib2FyZCBhbHJlYWR5IGhhcyB0aGUgcHJvZ3JhbSwgZG8geW91IHdhbnQgdGhl IEZ1ZWdvIHRlc3QgdG8gcnVuIHRoZSBwcm9ncmFtIHlvdSBpbnN0YWxsZWQsIG9yIHRoZQ0KPiA+ IG9uZSBmcm9tIHRoZSBiYXNlIGRpc3RyaWJ1dGlvbj8NCj4gPg0KPiA+IEluIGFueSBldmVudCwg bGV0IG1lIGRlc2NyaWJlIHNvbWUgdXNlIGNhc2VzIGFuZCBzb21lIHNlYXJjaCBvcmRlciBwcmVj ZWRlbmNlcywgYW5kIHNlZSBpZiB0aGV5IGNvdmVyIHRoZSBjYXNlcyB3ZSdyZSBpbnRlcmVzdGVk IGluIC0NCj4gPiB0aGVuIHByb3Bvc2UgYSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24gb2YgZ2V0 X3Byb2dyYW1fcGF0aC4NCj4gPg0KPiA+IFVzZSBjYXNlICMxIC0gcmVndWxhciBGdWVnbyBidWls ZCwgZGVwbG95IGFuZCBydW4NCj4gPiAgIC0gZnVlZ28gcGhhc2VzZSBydW46IGJ1aWxkLCBkZXBs b3ksIHJ1biAoYW5kIG90aGVycykNCj4gPiAgLSBwcmVmZXJyZWQgc2VhcmNoIHByZWZlcmVuY2U6 DQo+ID4gICAgIC0gYm9hcmQgdGVzdCBkaXINCj4gPiAgICAgLSBhbHRlcm5hdGUgZGlyKHMpIChp ZiBzcGVjaWZpZWQpDQo+ID4gICAgIC0gUEFUSCBkaXIocykNCj4gPg0KPiA+ICBVc2UgY2FzZSAj MiAtIEZ1ZWdvIHJ1biwgd2l0aG91dCBidWlsZCBhbmQgZGVwbG95DQo+ID4gICAgLSBmdWVnbyBw aGFzZXMgcnVuOiBvbmx5ICdydW4nDQo+ID4gICAgLSBwcmVmZXJyZWQgc2VhcmNoIHByZWZlcmVu Y2U6DQo+ID4gICAgICAgLSBib2FyZCB0ZXN0IGRpcg0KPiA+ICAgICAgIC0gYWx0ZXJuYXRlIGRp cihzKSAoaWYgc3BlY2lmaWVkKQ0KPiA+ICAgICAgIC0gUEFUSCBkaXIocykNCj4gPg0KPiA+ICBV c2UgY2FzZSAjMyAtIEZ1ZWdvIHRlc3QgdGhhdCBhbnRpY2lwYXRlcyB0aGF0IHRoZSBkaXN0cm8g bWF5IGFscmVhZHkgaGF2ZSB0aGUgdGVzdCBwcm9ncmFtIGluc3RhbGxlZA0KPiA+ICAgICAtIGZ1 ZWdvIHBoYXNlcyBydW46IG9ubHkgJ3J1bicNCj4gPiAgICAgLSBwcmVmZXJyZWQgc2VhcmNoIHBy ZWZlcmVuY2UNCj4gPiAgICAgICAgLSBmcm9tIGFsdGVybmF0ZSBkaXINCj4gPiAgICAgICAgLSBm cm9tIFBBVEgNCj4gPiAgICAgICAgLSBmcm9tIGJvYXJkIHRlc3QgZGlyDQo+ID4NCj4gPiBBY3R1 YWxseSwgaW4gY2FzZSAzLCBzaW5jZSB0aGVyZSBpcyBubyBkZXBsb3kgc3RlcCwgdGhlcmUgaXMg bm8gaGFybSB0byBrZWVwIHRoZSBzYW1lIHNlYXJjaCBvcmRlciBhcyBjYXNlcyAjMSBhbmQgIzIg KGJvYXJkIHRlc3QgZGlyIGZpcnN0KSwNCj4gPiBhcyB0aGUgcHJvZ3JhbSBzaG91bGQgbmV2ZXIg YmUgZm91bmQgaW4gdGhlIGJvYXJkIHRlc3QgZGlyLg0KPiA+DQo+ID4gUGxlYXNlIGxldCBtZSBr bm93IGlmIHRoaXMgaXMgY29ycmVjdC4NCj4gPg0KPiA+IFNvLCBJJ20gaW5jbGluZWQgdG8gcmUt d3JpdGUgZ2V0X3Byb2dyYW1fcGF0aCB0byBzd2l0Y2ggdGhlIHNlYXJjaCBvcmRlciB0bzoNCj4g PiAgLSBib2FyZCB0ZXN0IGRpcg0KPiA+ICAtIGFsdGVybmF0ZSBkaXINCj4gPiAgLSBQQVRIDQo+ ID4NCj4gPiBJIGZpbmQgdGhlICRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSIHRvIGJlIGFu bm95aW5nLCBhbmQgSSBoYWQgaG9wZWQgdG8gYXZvaWQgdXNpbmcgaXQgYXMgYW4gYXJndW1lbnQu ICBJZiBpdCdzIGFsd2F5cyB0aGUgZmlyc3QNCj4gPiBwbGFjZSBzZWFyY2hlZCwgdGhlbiBpdCBk b2Vzbid0IG5lZWQgdG8gYmUgc3BlY2lmaWVkIGluIHRoZSBhcmd1bWVudHMuICBJZiB0aGUgcmVm ZXJlbmNlIHRvIGl0IGNvdWxkIGJlIHJlbW92ZWQgZnJvbSBmdWVnb190ZXN0LnNoDQo+ID4gc2Ny aXB0cywgdGhlbiBpdCB3b3VsZCBnaXZlIHRoZSBGdWVnbyBzeXN0ZW0gdGhlIGZsZXhpYmlsaXR5 IHRvIGNoYW5nZSBpdCBvciB1c2Ugb3RoZXIgc2hlbGwgdmFyaWFibGVzIGluIHRoZSBmdXR1cmUg KHdoaWNoIGNvdWxkIGJlIHVzZWZ1bC4pDQo+ID4NCj4gPiBnZXRfcHJvZ3JhbV9wYXRoIHdvdWxk IHRoZW4gaGF2ZSB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czoNCj4gPiAgICQxIC0gcHJvZ3JhbSB0 byBzZWFyY2ggZm9yDQo+ID4gICAkMiAtIGFsdGVybmF0ZSBkaXJzLiB0byBzZWFyY2ggKG9wdGlv bmFsLCBhbmQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSBQQVRIKQ0KPiA+DQo+ID4gVGhpcyBk b2VzIG5vdCBzdXBwb3J0IHRoZSBjYXNlIHdoZXJlIHlvdSB3YW50IHRvIG92ZXJyaWRlIHJ1bm5p bmcgdGhlIHByb2dyYW0gZnJvbSB0aGUgYm9hcmQgdGVzdCBkaXIgKHVzaW5nIGFuIGFsdGVybmF0 ZSBsb2NhdGlvbikuDQo+ID4gSG93ZXZlciwgdGhhdCBjYXNlIGNhbiBiZSBoYW5kbGVkIGJ5IG5v dCB1c2luZyBnZXRfcHJvZ3JhbV9wYXRoLCBhbmQgZG9pbmcgdGhlIGNoZWNrIGRpcmVjdGx5IHVz aW5nIHNvbWV0aGluZyBsaWtlIHRoaXM6DQo+ID4gaWYgY21kICJ0ZXN0IC14ICRGVU5DVElPTkFM X1hYWF9QUk9HUkFNX0ZPT19QQVRIIiA7IHRoZW4NCj4gPiAgICAgcmVwb3J0ICIkRlVDVElPTkFM X1hYWF9QUk9HUkFNX0ZPT19QQVRIIC4uLiINCj4gPiBlbHNlDQo+ID4gICAgLi4uIGZhbGwgYmFj ayB0byBzb21lIG90aGVyIHNlYXJjaCBwYXRoLCBvciByZXBvcnQgZmFpbHVyZSAuLi4NCj4gPiBm aQ0KPiA+DQo+ID4gV2hhdCBkbyB5b3UgdGhpbms/DQo+ID4gIC0tIFRpbQ0KPiA+DQo+ID4gPg0K PiA+ID4gVGhhbmtzLA0KPiA+ID4gVmVua2F0YS4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gPi0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+RnJvbTogRnVlZ28gPGZ1ZWdvLWJvdW5jZXNA bGlzdHMubGludXhmb3VuZGF0aW9uLm9yZz4gT24gQmVoYWxmIE9mDQo+ID4gPiA+VGltLkJpcmRA c29ueS5jb20NCj4gPiA+ID5TZW50OiAwMiBTZXB0ZW1iZXIgMjAyMSAwMDo0MA0KPiA+ID4gPlRv OiBuZ3V5ZW4gZGF0IHRobyjvvLTvvLPvvKTvvLYg77yl772O772H44CA77yRKSA8dGhvMS5uZ3V5 ZW5kYXRAdG9zaGliYS5jby5qcD4NCj4gPiA+ID5DYzogZnVlZ29AbGlzdHMubGludXhmb3VuZGF0 aW9uLm9yZw0KPiA+ID4gPlN1YmplY3Q6IFJlOiBbRnVlZ29dIFtQQVRDSCA0LzRdIHJ0OiBzZWFy Y2ggZm9yIHRoZSBiaW5hcnkgaWYgdGhlDQo+ID4gPiA+YnVpbGQgcGhhc2UgaXMgc2tpcHBlZA0K PiA+ID4gPg0KPiA+ID4gPk9LIC0gSSBoYXZlIGNvbXBsZXRlZCB3b3JrIG9uIGEgbmV3IGZ1bmN0 aW9uIHRvIHN1cHBvcnQgdGhlIGZlYXR1cmUgeW91IGRlc2lyZS4NCj4gPiA+ID4NCj4gPiA+ID5J dCBpcyBjYWxsZWQgJ2dldF9wcm9ncmFtX3BhdGgnLCBhbmQgaXQgaXMgZG9jdW1lbnRlZCBoZXJl Og0KPiA+ID4gPmh0dHA6Ly9mdWVnb3Rlc3Qub3JnL3dpa2kvZnVuY3Rpb25fZ2V0X3Byb2dyYW1f cGF0aA0KPiA+ID4gPg0KPiA+ID4gPlBsZWFzZSBjaGVjayBvdXQgdGhpcyBmdW5jdGlvbiwgYW5k IHNlZSBpZiBpdCBkb2VzIHdoYXQgeW91IHdvdWxkIGxpa2UuDQo+ID4gPiA+SSBoYXZlIGFsc28g Y3JlYXRlZCBhIHRlc3QgKEZ1bmN0aW9uYWwuZnVlZ29fZnVuY3Rpb25fZ3BwX2NoZWNrKSB0aGF0 DQo+ID4gPiA+dGVzdHMgZ2V0X3Byb2dyYW1fcGF0aCwgdG8gdmVyaWZ5IHRoYXQgaXQgd29ya3Mg Y29ycmVjdGx5Lg0KPiA+ID4gPlBsZWFzZSB0cnkgdGhpcyB0ZXN0IGluIHlvdXIgZW52aXJvbm1l bnQgYW5kIGxldCBtZSBrbm93IGlmIHlvdQ0KPiA+ID4gPmVuY291bnRlciBhbnkgcHJvYmxlbXMu DQo+ID4gPiA+DQo+ID4gPiA+QWxzbywgcGxlYXNlIG5vdGUgdGhhdCBJIGhhdmUgYWRkZWQgYWRk aXRpb25hbCBmdW5jdGlvbmFsaXR5IHRvIHRoZQ0KPiA+ID4gPnJlcG9ydCBhbmQgcmVwb3J0X2Fw cGVuZCBmdW5jdGlvbnMsIHRvIGNkIHRvIHRoZSB0ZXN0IGRpcmVjdG9yeSBvbg0KPiA+ID4gPnRo ZSBib2FyZA0KPiA+ID4gPigkQk9BUkRfVEVTVERJUi9mdWVnby4kVEVTVERJUikgYXV0b21hdGlj YWxseSwgYXMgcGFydCBvZiBldmVyeSBjYWxsDQo+ID4gPiA+dG8gdGhvc2UgZnVuY3Rpb25zLg0K PiA+ID4gPg0KPiA+ID4gPlRoaXMgbWVhbnMgdGhhdCB3ZSBjYW4gcmVtb3ZlIHRoYXQgJ2NkJyBv cGVyYXRpb24gZnJvbSBhIGxvdCBvZg0KPiA+ID4gPnJlcG9ydCgpIGFuZCByZXBvcnRfYXBwZW5k KCkgY2FsbHMuDQo+ID4gPiA+DQo+ID4gPiA+SSBhc3N1bWUgdGhhdCBiZWNhdXNlIHRoZSBQUk9H UkFNX3h4eCB2YXJpYWJsZSB3aWxsIGhhdmUgYSBmdWxsIHBhdGgsDQo+ID4gPiA+dGhlIGNkIGlz IG5vIGxvbmdlciByZXF1aXJlZCBpbiB0ZXN0cyB0aGF0IHVzZSB0aGlzIGFzIHdlbGwuICBJDQo+ ID4gPiA+dGhvdWdodCBpdCBzYWZlciwgc2luY2UgeW91IG1pZ2h0IGJlIG1vZGlmeWluZyB0aGUg cmVwb3J0KCkgbGluZXMgZm9yDQo+ID4gPiA+bXVsdGlwbGUgdGVzdHMsIHRvIHNldCB0aGUgZGVm YXVsdCB3b3JraW5nIGRpcmVjdG9yeS4gIElmIG5lZWRlZCwgeW91DQo+ID4gPiA+Y2FuIG5vdyBy ZW1vdmUgdGhlICJjZCAkQk9BUkRfVEVTVERJUi9mdWVnby4kVEVTVERJUiIgY29tbWFuZCBmcm9t IGFueSB0ZXN0cyB5b3UgbW9kaWZ5Lg0KPiA+ID4gPg0KPiA+ID4gPlRoaXMgc29sdmVzIHRoZSBw cm9ibGVtIHRoYXQgeW91ciBwYXRjaCBvcmlnaW5hbGx5IGFkZHJlc3NlZCwgYnV0IEkNCj4gPiA+ ID5oYXZlIGEgbmFnZ2luZyBmZWVsaW5nIHRoYXQgdGhlIGhpZ2hlciBsZXZlbCBjb25jZXB0IG9m IGluc3RhbGxpbmcNCj4gPiA+ID5wcmUtYnVpbHQgcGFja2FnZXMgYXMgcGFydCBvZiBib2FyZCBw cm92aXNpb25pbmcgbWlnaHQgYmUgYWRkcmVzc2VkIGluIGFub3RoZXIgd2F5Lg0KPiA+ID4gPg0K PiA+ID4gPkFyZSB5b3UgZmFtaWxpYXIgd2l0aCB0aGUgJ2JpbmFyeSBwYWNrYWdlcycgZmVhdHVy ZSBvZiBGdWVnbz8gIFRoZXJlDQo+ID4gPiA+aXMgYSB0b29sIHRvIHByZS1idWlsZCBiaW5hcnkg cGFja2FnZXMgZm9yIGEgYm9hcmQsIGNhbGxlZA0KPiA+ID4gPmZ1ZWdvLWNvcmUvc2NyaXB0cy9t YWtlX2NhY2hlLnNoIFRoaXMgaXMgdXNlZCB0byBjcmVhdGUgYSBzZXQgb2YNCj4gPiA+ID5iaW5h cnkgcGFja2FnZXMgKGFsc28gY2FsbGVkICd0YXJnZXQgcGFja2FnZXMnKSB0aGF0IGNhbiBiZSBp bnN0YWxsZWQgc2VwYXJhdGUgZnJvbSBGdWVnbyB0ZXN0IGV4ZWN1dGlvbi4NCj4gPiA+ID4NCj4g PiA+ID5UaGlzIGlzIGEgZmVhdHVyZSB0aGF0IHdhcyB1bmRlciBkZXZlbG9wbWVudCBmb3Igc29t ZSB0aW1lLCBhbmQgdGhlbg0KPiA+ID4gPmdvdCBwdXQgb24gdGhlIGJhY2tidXJuZXIuICBQbGVh c2Ugc2VlIHRoZSBwYWdlOg0KPiA+ID4gPmh0dHA6Ly9mdWVnb3Rlc3Qub3JnL3dpa2kvVGFyZ2V0 X1BhY2thZ2VzLg0KPiA+ID4gPg0KPiA+ID4gPlRoZXNlIHBhY2thZ2VzIGFyZSBpbnRlbmRlZCB0 byByZXBsYWNlIHRoZSAnYnVpbGQnIGFuZCAnZGVwbG95Jw0KPiA+ID4gPnBoYXNlcyBvZiBhIHRl c3QsIHdoZW4gdGhleSBhcmUgdXNlZC4gIFRoZSBwYWNrYWdlIGNvbnRlbnRzIGFyZQ0KPiA+ID4g Pih1c3VhbGx5KSBpbnN0YWxsZWQgcmVsYXRpdmUgdG8gJEJPQVJEX1RFU1RESVIvZnVlZ28uJFRF U1RESVIsIGJ1dCBpdA0KPiA+ID4gPmlzIHBvc3NpYmxlIHRvIGluc3RhbGwgdGhlbSBzb21ld2hl cmUgZWxzZSAoZS5nLiBnbG9iYWxseSB1bmRlciBzYXkNCj4gPiA+ID4vb3B0L3Rlc3QvZnVlZ28p DQo+ID4gPiA+DQo+ID4gPiA+T25lIGlkZWEgZm9yIHRoaXMsIHdhcyB0byBoYXZlIHByZS1idWls dCBiaW5hcnkgcGFja2FnZXMgZm9yIHRlc3RzIG9uDQo+ID4gPiA+YSBjZW50cmFsIHNlcnZlciwg c28gdGhhdCBzb21lb25lIGNvdWxkIHJ1biBGdWVnbyBhbmQgaXRzIHRlc3RzDQo+ID4gPiA+d2l0 aG91dCBoYXZpbmcgdG8gaW5zdGFsbCBhIHRvb2xjaGFpbiBmb3IgYSBib2FyZCBhdCBhbGwuDQo+ ID4gPiA+DQo+ID4gPiA+SXQgc291bmRzIGxpa2UgeW91IGFyZSBkb2luZyBzb21ldGhpbmcgc2lt aWxhciBmb3IgaW50ZWdyYXRpb24gd2l0aA0KPiA+ID4gPkxBVkEgYW5kL29yIGtlcm5lbGNpLg0K PiA+ID4gPih1c2luZyBwcmUtaW5zdGFsbGVkIHRlc3QgcHJvZ3JhbXMsIGFuZCBza2lwcGluZyB0 aGUgJ2J1aWxkJyBhbmQNCj4gPiA+ID4nZGVwbG95JyBzdGVwcy4pDQo+ID4gPiA+DQo+ID4gPiA+ SSdkIGxpa2UgdG8gZ2V0IG1vcmUgZGV0YWlscyBhYm91dCB3aGF0IHlvdSBhcmUgZG9pbmcsIHRv IHBvc3NpYmx5DQo+ID4gPiA+Y29uc29saWRhdGUgdGhlc2UgZmVhdHVyZXMgYW5kIGF2b2lkIGZy YWdtZW50aW5nIHRoZSBjb2RlLg0KPiA+ID4gPiAtLSBUaW0NCj4gPiA+ID4NCj4gPiA+ID4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+PiBGcm9tOiB0aG8xLm5ndXllbmRhdEB0 b3NoaWJhLmNvLmpwIDx0aG8xLm5ndXllbmRhdEB0b3NoaWJhLmNvLmpwPg0KPiA+ID4gPj4NCj4g PiA+ID4+IERlYXIgVGltLA0KPiA+ID4gPj4NCj4gPiA+ID4+ID4gTGV0IG1lIGtub3cgd2hhdCB5 b3UgdGhpbmsuICBJIGhhZCBob3BlZCB0byBwcm90b3R5cGUgc29tZXRoaW5nDQo+ID4gPiA+PiA+ IHRvZGF5LCBidXQgcmFuIG91dCBvZiB0aW1lIHdvcmtpbmcgb24gb3RoZXIgaXNzdWVzLiAgSSds bCBzZWUNCj4gPiA+ID4+ID4gd2hhdCBJIGNhbg0KPiA+ID4gPj4gd2hpcCB1cCwgUGxlYXNlIGxl dCBtZSBrbm93IGlmIHlvdSBzZWUgYW55IHByb2JsZW1zIHdpdGggdGhpcw0KPiA+ID4gPj4gYXBw cm9hY2guICBJIHRoaW5rIGl0IGNvdmVycyB5b3VyIHVzZSBjYXNlLiAgWW91IHdpbGwgbmVlZCB0 byBoYXZlDQo+ID4gPiA+PiBhIHNlcGFyYXRlDQo+ID4gPiA+bWVjaGFuaXNtIGZvciBza2lwcGlu ZyB0aGUgYnVpbGQgYW5kIGRlcGxveSBzdGVwcyBmb3IgeW91ciB1c2UgY2FzZQ0KPiA+ID4gPihi dXQgRnVlZ28gc3VwcG9ydHMgdGhpcyB3aXRoIHRoZSB0ZXN0IHBoYXNlIGNvbnRyb2wgb3B0aW9u cyBvZiBmdGMpLg0KPiA+ID4gPj4gSXQgc291bmRzIGdvb2QuDQo+ID4gPiA+PiBXaGVuIHlvdSBm aW5pc2hlZCwgcGxlYXNlIGxldCBtZSBrbm93LiBJIHdpbGwgdXBkYXRlIHRoaXMgcGF0Y2gNCj4g PiA+ID4+IGZvbGxvdyB5b3VyDQo+ID4gPiA+aWRlYS4NCj4gPiA+ID4+DQo+ID4gPiA+PiBUaGFu a3MsDQo+ID4gPiA+PiBUaG8NCj4gPiA+ID4+DQo+ID4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiA+ID4gPj4gRnJvbTogVGltLkJpcmRAc29ueS5jb20gPFRpbS5CaXJkQHNvbnku Y29tPg0KPiA+ID4gPj4gU2VudDogRnJpZGF5LCBBdWd1c3QgMjcsIDIwMjEgMTI6MjggUE0NCj4g PiA+ID4+IFRvOiBzYW5nb3JyaW4gZGFuaWVsKOOCteODs+OCtOODquODsyDjg4Djg4vjgqjjg6sg 4pah77yz77y377yj4pev77yh77yj77y0KQ0KPiA+ID4gPj4gPGRhbmllbC5zYW5nb3JyaW5AdG9z aGliYS5jby5qcD4NCj4gPiA+ID4+IENjOiBmdWVnb0BsaXN0cy5saW51eGZvdW5kYXRpb24ub3Jn OyBuZ3V5ZW4gZGF0IHRobyjvvLTvvLPvvKTvvLYg77yl772O772H44CA77yRKQ0KPiA+ID4gPj4g PHRobzEubmd1eWVuZGF0QHRvc2hpYmEuY28uanA+DQo+ID4gPiA+PiBTdWJqZWN0OiBSRTogW1BB VENIIDQvNF0gcnQ6IHNlYXJjaCBmb3IgdGhlIGJpbmFyeSBpZiB0aGUgYnVpbGQNCj4gPiA+ID4+ IHBoYXNlIGlzIHNraXBwZWQNCj4gPiA+ID4+DQo+ID4gPiA+Pg0KPiA+ID4gPj4NCj4gPiA+ID4+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4+ID4gRnJvbTogZGFuaWVsLnNh bmdvcnJpbkB0b3NoaWJhLmNvLmpwDQo+ID4gPiA+PiA+IDxkYW5pZWwuc2FuZ29ycmluQHRvc2hp YmEuY28uanA+DQo+ID4gPiA+PiA+DQo+ID4gPiA+PiA+IEhpIFRpbSwNCj4gPiA+ID4+ID4NCj4g PiA+ID4+ID4gVGhhbmtzIGFnYWluIGZvciB5b3VyIHJldmlldy4NCj4gPiA+ID4+ID4gV2Ugd2ls bCBmaXggdGhlIHBhdGNoIGFuZCByZS1zZW5kLg0KPiA+ID4gPj4gPg0KPiA+ID4gPj4gPiBTZWUg bXkgY29tbWVudHMgaW5saW5lOg0KPiA+ID4gPj4gPg0KPiA+ID4gPj4gPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+PiA+ID4gRnJvbTogVGltLkJpcmRAc29ueS5jb20gPFRp bS5CaXJkQHNvbnkuY29tPg0KPiA+ID4gPj4gPiA+IFNlbnQ6IFNhdHVyZGF5LCBBdWd1c3QgMjEs IDIwMjEgNToxNiBBTQ0KPiA+ID4gPj4gPiA+IFRvOiBzYW5nb3JyaW4gZGFuaWVsKOOCteODs+OC tOODquODsyDjg4Djg4vjgqjjg6sg4pah77yz77y377yj4pev77yh77yj77y0KQ0KPiA+ID4gPj4g PiA+IDxkYW5pZWwuc2FuZ29ycmluQHRvc2hpYmEuY28uanA+DQo+ID4gPiA+PiA+ID4gQ2M6IGZ1 ZWdvQGxpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmc7IG5ndXllbiBkYXQgdGhvKO+8tO+8s++8pO+8 tiDvvKXvvY7vvYfjgIDvvJENCj4gPiA+ID4pDQo+ID4gPiA+PiA+ID4gPHRobzEubmd1eWVuZGF0 QHRvc2hpYmEuY28uanA+DQo+ID4gPiA+PiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSCA0LzRdIHJ0 OiBzZWFyY2ggZm9yIHRoZSBiaW5hcnkgaWYgdGhlIGJ1aWxkDQo+ID4gPiA+PiA+ID4gcGhhc2Ug aXMgc2tpcHBlZA0KPiA+ID4gPj4gPiA+DQo+ID4gPiA+PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KPiA+ID4gPj4gPiA+ID4gRnJvbTogRGFuaWVsIFNhbmdvcnJpbiA8ZGFuaWVs LnNhbmdvcnJpbkB0b3NoaWJhLmNvLmpwPg0KPiA+ID4gPj4gPiA+ID4NCj4gPiA+ID4+ID4gPiA+ IEZyb206IE5ndXllbiBEYXQgVGhvIDx0aG8xLm5ndXllbmRhdEB0b3NoaWJhLmNvLmpwPg0KPiA+ ID4gPj4gPiA+ID4NCj4gPiA+ID4+ID4gPiA+IGZ0YyBoYXMgdGhlIGFiaWxpdHkgdG8gc2tpcCB0 aGUgYnVpbGQgcGhhc2UgdG8gdXNlIGENCj4gPiA+ID4+ID4gPiA+IHByZXZpb3VzbHkgYnVpbHQg YmluYXJ5IG9yIGEgYmluYXJ5IGluc3RhbGxlZCBvbiB0aGUgYm9hcmQncw0KPiA+ID4gPj4gPiA+ ID4gZmlsZSBzeXN0ZW0gKGUuZy4gYXB0LWdldCBpbnN0YWxsIHJ0LXRlc3RzKS4NCj4gPiA+ID4+ ID4gPiA+DQo+ID4gPiA+PiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBOZ3V5ZW4gRGF0IFRobyA8dGhv MS5uZ3V5ZW5kYXRAdG9zaGliYS5jby5qcD4NCj4gPiA+ID4+ID4gPiA+IFNpZ25lZC1vZmYtYnk6 IERhbmllbCBTYW5nb3JyaW4NCj4gPiA+ID4+ID4gPiA+IDxkYW5pZWwuc2FuZ29ycmluQHRvc2hp YmEuY28uanA+DQo+ID4gPiA+PiA+ID4gPiAtLS0NCj4gPiA+ID4+ID4gPiA+ICB0ZXN0cy9CZW5j aG1hcmsuY3ljbGljdGVzdC9mdWVnb190ZXN0LnNoICB8IDcgKysrKysrLQ0KPiA+ID4gPj4gPiA+ ID4gIHRlc3RzL0JlbmNobWFyay5oYWNrYmVuY2gvZnVlZ29fdGVzdC5zaCAgIHwgNyArKysrKyst DQo+ID4gPiA+PiA+ID4gPiAgdGVzdHMvQmVuY2htYXJrLm1pZ3JhdGV0ZXN0L2Z1ZWdvX3Rlc3Qu c2ggfCA3ICsrKysrKy0NCj4gPiA+ID4+ID4gPiA+ICB0ZXN0cy9CZW5jaG1hcmsucG1xdGVzdC9m dWVnb190ZXN0LnNoICAgICB8IDggKysrKysrKy0NCj4gPiA+ID4+ID4gPiA+ICB0ZXN0cy9CZW5j aG1hcmsucHRzZW1hdGVzdC9mdWVnb190ZXN0LnNoICB8IDggKysrKysrKy0NCj4gPiA+ID4+ID4g PiA+IHRlc3RzL0JlbmNobWFyay5zaWduYWx0ZXN0L2Z1ZWdvX3Rlc3Quc2ggIHwgNyArKysrKyst DQo+ID4gPiA+PiA+ID4gPiB0ZXN0cy9CZW5jaG1hcmsuc2lnd2FpdHRlc3QvZnVlZ29fdGVzdC5z aCB8IDcgKysrKysrLQ0KPiA+ID4gPj4gPiA+ID4gdGVzdHMvQmVuY2htYXJrLnN2c2VtYXRlc3Qv ZnVlZ29fdGVzdC5zaCAgfCA3ICsrKysrKy0NCj4gPiA+ID4+ID4gPiA+ICB0ZXN0cy9GdW5jdGlv bmFsLnBpX3Rlc3RzL2Z1ZWdvX3Rlc3Quc2ggICB8IDcgKysrKysrLQ0KPiA+ID4gPj4gPiA+ID4g IDkgZmlsZXMgY2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkNCj4gPiA+ ID4+ID4gPiA+DQo+ID4gPiA+PiA+ID4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMvQmVuY2htYXJrLmN5 Y2xpY3Rlc3QvZnVlZ29fdGVzdC5zaA0KPiA+ID4gPj4gPiA+ID4gYi90ZXN0cy9CZW5jaG1hcmsu Y3ljbGljdGVzdC9mdWVnb190ZXN0LnNoDQo+ID4gPiA+PiA+ID4gPiBpbmRleCA3NGQ5ZDI0Li5l NzA3MGRkIDEwMDc1NQ0KPiA+ID4gPj4gPiA+ID4gLS0tIGEvdGVzdHMvQmVuY2htYXJrLmN5Y2xp Y3Rlc3QvZnVlZ29fdGVzdC5zaA0KPiA+ID4gPj4gPiA+ID4gKysrIGIvdGVzdHMvQmVuY2htYXJr LmN5Y2xpY3Rlc3QvZnVlZ29fdGVzdC5zaA0KPiA+ID4gPj4gPiA+ID4gQEAgLTI0LDUgKzI0LDEw IEBAIGZ1bmN0aW9uIHRlc3RfZGVwbG95IHsgIH0NCj4gPiA+ID4+ID4gPiA+DQo+ID4gPiA+PiA+ ID4gPiAgZnVuY3Rpb24gdGVzdF9ydW4gew0KPiA+ID4gPj4gPiA+ID4gLSAgICByZXBvcnQgImNk ICRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSOyAuL2N5Y2xpY3Rlc3QNCj4gPiA+ID4kQkVO Q0hNQVJLX0NZQ0xJQ1RFU1RfUEFSQU1TIg0KPiA+ID4gPj4gPiA+ID4gKyAgICBpZiBbIC1mICRC T0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSL2N5Y2xpY3Rlc3QgXTsgdGhlbg0KPiA+ID4gPj4g PiA+IFRoaXMgdGVzdCAoWyAtZikgd29uJ3Qgd29yayBvbiBhIHJlbW90ZSBib2FyZC4gIFRoaXMg aXMgcnVubmluZw0KPiA+ID4gPj4gPiA+IG9uIHRoZSBob3N0IG1hY2hpbmUsIHdoaWNoIGhhcyBh IGRpZmZlcmVudCBmaWxlc3lzdGVtIHRoYW4gdGhlDQo+ID4gPiA+PiA+ID4gZGV2aWNlIHVuZGVy DQo+ID4gPiA+dGVzdCwgdW5sZXNzIHlvdSBhcmUgcnVubmluZyB1c2luZyB0aGUgJ2xvY2FsJyBU UkFOU1BPUlQuDQo+ID4gPiA+PiA+ID4NCj4gPiA+ID4+ID4gPiBUaGVyZSBzaG91bGQgYmUgYSBj bWQoKSBpbiBoZXJlIHNvbWV3aGVyZSB0byBwZXJmb3JtIHRoaXMgdGVzdA0KPiA+ID4gPj4gPiA+ IG9uIHRoZQ0KPiA+ID4gPmJvYXJkJ3MgZmlsZXN5c3RlbS4NCj4gPiA+ID4+ID4NCj4gPiA+ID4+ ID4gWWVzLCB5b3UgYXJlIHRvdGFsbHkgcmlnaHQuIFNvcnJ5IGZvciBub3QgY2F0Y2hpbmcgdGhh dCBwcm9ibGVtDQo+ID4gPiA+PiA+IGR1cmluZyBteQ0KPiA+ID4gPnJldmlldy4NCj4gPiA+ID4+ ID4NCj4gPiA+ID4+ID4gPiBJJ20gbm90IHN1cmUgSSBmb2xsb3cgdGhpcy4gIFdoYXQgZG9lcyB0 aGUgdGVzdF9kZXBsb3koKSBmdW5jdGlvbiBsb29rIGxpa2U/DQo+ID4gPiA+PiA+ID4gVW5kZXIg d2hhdCBjaXJjdW1zdGFuY2VzIHdvdWxkIGN5Y2xpY3Rlc3Qgbm90IGJlIHByZXNlbnQgaW4gdGhl DQo+ID4gPiA+PiA+ID4gYm9hcmRzDQo+ID4gPiA+JEJPQVJEX1RFU1RESVIvZnVlZ28uJFRFU1RE SVIgZGlyZWN0b3J5Pw0KPiA+ID4gPj4gPg0KPiA+ID4gPj4gPiBXZSB3YW50IHRvIHJ1biBmdWVn byBuYXRpdmVseSBiZWNhdXNlIGl0IGlzIGVhc2llciB0byBydW4gaXQgb24NCj4gPiA+ID4+ID4g Y2VydGFpbg0KPiA+ID4gPnNjZW5hcmlvcyBzdWNoIGFzIExBVkEgYm9hcmQgZmFybXMgYW5kIGN1 c3RvbSBjbG91ZCBpbWFnZXMuDQo+ID4gPiA+PiA+IFdlIGFsc28gd2FudCB0byB1c2UgcGFja2Fn ZWQgdmVyc2lvbnMgb2YgdGhlIHRlc3RzIGFuZCBkbyBub3QNCj4gPiA+ID4+ID4gc3RvcmUgYW55 IHRlc3QgdGFyYmFsbCBpbiBvdXIgcmVwb3NpdG9yaWVzLiBTbyB0aGUgT1MgaW1hZ2Ugd2lsbA0K PiA+ID4gPj4gPiBhbHJlYWR5IGhhdmUgdGhlDQo+ID4gPiA+dGVzdHMgdGhlcmUgYW5kIHRoZXJl Zm9yZSB3ZSB3aWxsIHNraXAgdGhlIGJ1aWxkL2RlcGxveSBwaGFzZXMuDQo+ID4gPiA+PiA+DQo+ ID4gPiA+PiA+ID4gSXQgc2VlbXMgbGlrZSB0aGlzIGNvZGUgc2hvdWxkIGJlIGNvdXBsZWQgd2l0 aCBjb2RlIHRoYXQNCj4gPiA+ID4+ID4gPiBkZXRlY3RzIGlmIHRoZSBwcm9ncmFtIGlzIGFscmVh ZHkgcHJlc2VudCwgYW5kIGlmIHNvIDEpIGF2b2lkcw0KPiA+ID4gPj4gPiA+IGRlcGxveWluZyBp dCBhbmQNCj4gPiA+ID4+ID4NCj4gPiA+ID4+ID4gV2UgYXJlIHNraXBwaW5nIHRoZSBidWlsZCBh bmQgZGVwbG95IHBoYXNlIG9uIHB1cnBvc2UgZnJvbSBmdGMuDQo+ID4gPiA+PiA+DQo+ID4gPiA+ PiA+ID4gMikgdGhlbiB1c2VzIGl0IGZvciB0aGUgdGVzdC4NCj4gPiA+ID4+ID4gPg0KPiA+ID4g Pj4gPiA+IFNvbWV0aGluZyBsaWtlIHRoaXM6DQo+ID4gPiA+PiA+ID4gdGVzdF9kZXBsb3kgew0K PiA+ID4gPj4gPiA+ICAgaXNfb25fdGFyZ2V0X3BhdGggY3ljbGljdGVzdCBQUk9HUkFNX0NZQ0xJ Q1RFU1QNCj4gPiA+ID4+ID4gPiAgIGlmIFsgLXogIiRQUk9HUkFNX0NZQ0xJQ1RFU1QiIF0gOyB0 aGVuDQo+ID4gPiA+PiA+ID4gICAgICBwdXQgY3ljbGljdGVzdCAkQk9BUkRfVEVTVERJUi9mdWVn by4kVEVTVERJUg0KPiA+ID4gPj4gPiA+DQo+ID4gPiA+PiA+ID4gUFJPR1JBTV9DWUNMSUNURVNU PSRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSL2N5Y2xpY3Rlc3QNCj4gPiA+ID4+ID4gPiAg ZmkNCj4gPiA+ID4+ID4gPiAgIGV4cG9ydCBQUk9HUkFNX0NZQ0xJQ1RFU1QNCj4gPiA+ID4+ID4g PiB9DQo+ID4gPiA+PiA+ID4NCj4gPiA+ID4+ID4gPiBhbmQgdGhlbiBpbiB0ZXN0X3J1bjoNCj4g PiA+ID4+ID4gPiAgIGlmIFsgLW4gIiRQUk9HUkFNX0NZQ0xJQ1RFU1QiIF0gOyB0aGVuDQo+ID4g PiA+PiA+ID4gICAgIHJlcG9ydCAiJFBST0dSQU1fQ1lDTElDVEVTVCAkQkVOQ0hNQVJLX0NZQ0xJ Q1RFU1RfUEFSQU1TIg0KPiA+ID4gPj4gPiA+ICAgZWxzZQ0KPiA+ID4gPj4gPiA+ICAgICBhYm9y dF9qb2IgImN5Y2xpY3Rlc3QgaXMgbm90IGZvdW5kIG9uIHRoZSB0YXJnZXQiDQo+ID4gPiA+PiA+ ID4gICBmaQ0KPiA+ID4gPj4gPiA+DQo+ID4gPiA+PiA+ID4gTWF5YmUgSSdtIG5vdCB1bmRlcnN0 YW5kaW5nIHRoZSB1c2UgY2FzZSBoZXJlLiAgSXMgdGhpcyBmb3INCj4gPiA+ID4+ID4gPiBydW5u aW5nIGEgcHJlLWV4aXN0aW5nIHByb2dyYW0gb24gdGhlIGJvYXJkLCBvciBhIHByb2dyYW0gdGhh dA0KPiA+ID4gPj4gPiA+IHdhcyBhbHJlYWR5IHBsYWNlZCBpbiB0aGUgQk9BUkRfVEVTVERJUiBk aXJlY3RvcnkgKGUuZy4gZnJvbSBhDQo+ID4gPiA+PiA+ID4gcHJldmlvdXMgcnVuIG9mDQo+ID4g PiA+PiB0aGUgdGVzdCk/DQo+ID4gPiA+PiA+DQo+ID4gPiA+PiA+IEEgcHJlLWV4aXN0aW5nIHBy b2dyYW0gb24gdGhlIGJvYXJkIChlLmcuIHByZXZpb3VzbHkgaW5zdGFsbGVkKS4NCj4gPiA+ID4+ ID4NCj4gPiA+ID4+ID4gPiBJZiB3ZSBoYXZlIHRoaXMgcGF0dGVybiBhIGxvdCwgdGhlbiBtYXli ZSBpdCB3b3VsZCBtYWtlIHNlbnNlDQo+ID4gPiA+PiA+ID4gdG8gbWFrZSB0aGUNCj4gPiA+ID5v cHRpb25hbCBkZXBsb3kgY29kZSAgYSBjb3JlIGZ1bmN0aW9uLCBsaWtlOg0KPiA+ID4gPj4gPiA+ ICAgIHB1dF9pZl9wcm9ncmFtX25vdF9wcmVzZW50IGN5Y2xpY3Rlc3QNCj4gPiA+ID4+ID4NCj4g PiA+ID4+ID4gV2UgYXJlIHNraXBwaW5nIHRoZSBidWlsZC9kZXBsb3kgcGhhc2UgdXNpbmcgZnRj LiBXaGF0IGRvIHlvdSB0aGluaz8NCj4gPiA+ID4+DQo+ID4gPiA+PiBPSywgYmFzZWQgb24gdGhh dCwgSSB0aGluayBJJ2QgbGlrZSB0byBzdHJ1Y3R1cmUgdGhpcyBhcyBmb2xsb3dzOg0KPiA+ID4g Pj4NCj4gPiA+ID4+IEknZCBsaWtlIHRvIGFkZCBhIG5ldyBjb3JlIGZ1bmN0aW9uIGNhbGxlZCAn Z2V0X3Byb2dyYW1fcGF0aCcNCj4gPiA+ID4+DQo+ID4gPiA+PiBUaGUgaW50ZW50IGlzIHRoYXQg Y29kZSBpbiBhIHRlc3RfcnVuIGZ1bmN0aW9uIGNhbiB1c2UgdGhhdCB0byBmaW5kDQo+ID4gPiA+ PiB0aGUgY29ycmVjdCBwYXRoIHRvIGV4ZWN1dGUgdGhlIHRlc3QgcHJvZ3JhbSAocG9zc2libHkg YmFzZWQgb24NCj4gPiA+ID4+IHBlci1sYWINCj4gPiA+ID5wb2xpY3kpLg0KPiA+ID4gPj4NCj4g PiA+ID4+IFRoZSBzZXF1ZW5jZSBpbiB0ZXN0X3J1biBmdW5jdGlvbiB3b3VsZCBsb29rIGxpa2Ug dGhpczoNCj4gPiA+ID4+DQo+ID4gPiA+PiAgIGdldF9wcm9ncmFtX3BhdGggY3ljbGljdGVzdA0K PiA+ID4gPj4gICByZXBvcnQgIiRQUk9HUkFNX0NZQ0xJQ1RFU1QgJEFSR1MiDQo+ID4gPiA+Pg0K PiA+ID4gPj4gVGhlcmUgd291bGQgYmUgbm8gY29uZGl0aW9uYWxzIGluIHRoZSBjb2RlIGZvciBp bmRpdmlkdWFsIHRlc3RzIC0NCj4gPiA+ID4+IGp1c3QgdGhpcw0KPiA+ID4gPmFkZGl0aW9uYWwg Y2FsbCB0byBnZXRfcHJvZ3JhbV9wYXRoLg0KPiA+ID4gPj4NCj4gPiA+ID4+IFRoZSAnZ2V0X3By b2dyYW1fcGF0aCcgZnVuY3Rpb24gd291bGQgaGF2ZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uYWxp dHk6DQo+ID4gPiA+PiAoaW4gcHNldWRvLWNvZGUsIHdpdGggJ2N5Y2xpY3Rlc3QnIHVzZWQgYXMg YSBwbGFjZWhvbGRlciBuYW1lIGZvcg0KPiA+ID4gPj4gYW4gYXJiaXRyYXJ5DQo+ID4gPiA+cHJv Z3JhbSBuYW1lKToNCj4gPiA+ID4+DQo+ID4gPiA+PiBpZiBpc19vbl90YXJnZXRfcGF0aCBjeWNs aWN0ZXN0IDsgdGhlbg0KPiA+ID4gPj4gICAgUFJPR1JBTV9DWUNMSUNURVNUPSh0aGUgdGFyZ2V0 IHBhdGggZm91bmQpIGVsc2lmIGNtZCAidGVzdCAtZg0KPiA+ID4gPiRCT0FSRF9URVNURElSL2Z1 ZWdvLiRURVNURElSL2N5Y2xpY3Rlc3QiIDsgdGhlbg0KPiA+ID4gPj4gICAgUFJPR1JBTV9DWUNM SUNURVNUPSRCT0FSRF9URVNURElSL2Z1ZWdvLiRURVNURElSL2N5Y2xpY3Rlc3QNCj4gPiA+ID4+ IGVsc2UNCj4gPiA+ID4+ICAgIGFib3J0am9iICJjeWNsaWN0ZXN0IHdhcyBub3QgZm91bmQiDQo+ ID4gPiA+Pg0KPiA+ID4gPj4gSWYgdGhlIGZ1bmN0aW9uIHN1Y2NlZWRzLCB0aGVuIGl0IHNldHMg dGhlIHZhbHVlIG9mDQo+ID4gPiA+PiBQUk9HUkFNX0NZQ0xJQ1RFU1QgdG8gdGhlDQo+ID4gPiA+ cGF0aCBvbiB0aGUgYm9hcmQgdG8gYmUgdXNlZCB0byBleGVjdXRlIGN5Y2xpY3Rlc3QuDQo+ID4g PiA+Pg0KPiA+ID4gPj4gVGhpcyBzaG91bGQgaGFuZGxlIHRoZSBmb2xsb3dpbmcgY2FzZXM6DQo+ ID4gPiA+PiAgLSBjeWNsaWN0ZXN0IGlzIG9uIHRoZSBib2FyZCAob24gdGhlIFBBVEgpIGZyb20g ZXh0ZXJuYWwNCj4gPiA+ID4+IHByZS1pbnN0YWxsYXRpb24gKG91dHNpZGUgb2YgRnVlZ28pDQo+ ID4gPiA+PiAgLSBjeWNsaWN0ZXN0IGlzIG9uIHRoZSBib2FyZCBpbiB0aGUgdGVzdCBkaXJlY3Rv cnkgKGZyb20gRnVlZ28ncyBkZXBsb3ksIG9yIGZyb20NCj4gPiA+ID4+ICAgYSBwcmV2aW91cyB0 ZXN0IGludm9jYXRpb24gdGhhdCBkaWQgbm90IHJlbW92ZSB0aGUgdGVzdA0KPiA+ID4gPj4gZGly ZWN0b3J5KQ0KPiA+ID4gPj4NCj4gPiA+ID4+IFRoZSBmdW5jdGlvbiBnZXRfcHJvZ3JhbV9wYXRo IGNvdWxkIGJlIGV4dGVuZGVkIGluIHRoZSBmdXR1cmUgdG8NCj4gPiA+ID4+IGltcGxlbWVudCBv dGhlciBwcm9ncmFtIHNlYXJjaCBwb2xpY2llcy4gIFRoZSBwb2xpY3kgYWJvdmUgaXMgInVzZQ0K PiA+ID4gPj4gdGVzdCBwcm9ncmFtIGFscmVhZHkgb24gdGhlIGJvYXJkLCBpZiBmb3VuZCwgdGhl biB0aGUgb25lIGluc3RhbGxlZA0KPiA+ID4gPj4gYnkgRnVlZ28uIiAgT3RoZXIgcG9saWNpZXMg bWlnaHQgYmUgInVzZSB0aGUgdGVzdCBwcm9ncmFtIGluc3RhbGxlZA0KPiA+ID4gPj4gYnkgRnVl Z28sIHRoZW4gb25lIGFscmVhZHkgb24gdGhlIGJvYXJkLCBpZiBwcmVzZW50Iiwgb3IgImxldCB0 aGUNCj4gPiA+ID4+IHJlcG9ydCgpIGZ1bmN0aW9uDQo+ID4gPiA+ZmlndXJlIG91dCBpZiB0aGUg cHJvZ3JhbSBpcyBwcmVzZW50IG9yIG5vdCBpbiB0aGUgdGVzdCBkaXJlY3RvcnkiDQo+ID4gPiA+ KHRoaXMgaXMgRnVlZ28ncyBjdXJyZW50IHBvbGljeSkuICBCdXQgZXh0ZW5kaW5nIHRoaXMgdG8g c3VwcG9ydA0KPiA+ID4gPm90aGVyIHBvbGljaWVzIChhbmQgYWRkaW5nIHRoZSB0ZXN0IHByb2dy YW0gc2VhcmNoIHBvbGljeSB0byB0aGUgZnVlZ28uY29uZiBmaWxlKSB3aWxsIGJlIGxlZnQgZm9y IGEgZnV0dXJlIGV4ZXJjaXNlLg0KPiA+ID4gPj4NCj4gPiA+ID4+IExldCBtZSBrbm93IHdoYXQg eW91IHRoaW5rLiAgSSBoYWQgaG9wZWQgdG8gcHJvdG90eXBlIHNvbWV0aGluZw0KPiA+ID4gPj4g dG9kYXksIGJ1dCByYW4gb3V0IG9mIHRpbWUgd29ya2luZyBvbiBvdGhlciBpc3N1ZXMuICBJJ2xs IHNlZSB3aGF0DQo+ID4gPiA+PiBJIGNhbiB3aGlwIHVwLCBQbGVhc2UgbGV0IG1lIGtub3cgaWYg eW91IHNlZSBhbnkgcHJvYmxlbXMgd2l0aCB0aGlzDQo+ID4gPiA+PiBhcHByb2FjaC4gIEkgdGhp bmsgaXQNCj4gPiA+ID5jb3ZlcnMgeW91ciB1c2UgY2FzZS4gIFlvdSB3aWxsIG5lZWQgdG8gaGF2 ZSBhIHNlcGFyYXRlIG1lY2hhbmlzbSBmb3INCj4gPiA+ID5za2lwcGluZyB0aGUgYnVpbGQgYW5k IGRlcGxveSBzdGVwcyBmb3IgeW91ciB1c2UgY2FzZSAoYnV0IEZ1ZWdvDQo+ID4gPiA+c3VwcG9y dHMgdGhpcyB3aXRoIHRoZSB0ZXN0IHBoYXNlIGNvbnRyb2wgb3B0aW9ucyBvZiBmdGMpLg0KPiA+ ID4gPj4gIC0tIFRpbQ0KPiA+ID4gPg0KPiA+ID4gPl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fDQo+ID4gPiA+RnVlZ28gbWFpbGluZyBsaXN0DQo+ID4gPiA+ RnVlZ29AbGlzdHMubGludXhmb3VuZGF0aW9uLm9yZw0KPiA+ID4gPmh0dHBzOi8vbGlzdHMubGlu dXhmb3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Z1ZWdvDQo+ID4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiBGdWVnbyBtYWlsaW5nIGxp c3QNCj4gPiBGdWVnb0BsaXN0cy5saW51eGZvdW5kYXRpb24ub3JnDQo+ID4gaHR0cHM6Ly9saXN0 cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vZnVlZ28NCg==