A/MNClJcrFFjAAAAAAAAAAADAAAAQAAAAHN2AAAAZAAAWgAAZAEAZAIAbAEAWgEAZAEAZAIAbAIAWgIAZAEAZAIAbAMAWgMAZAEAZAMAbAQAbQUAWgUAAWQEAGUCAGoGAGYBAGQFAIQAAIMAAFlaBwBkBgCEAABaCABlCQBkBwBrAgBycgBlCACDAAABbgAAZAIAUygIAAAAc/o8AABUaGlzIG1vZHVsZSB0ZXN0cyBTeW50YXhFcnJvcnMuCgpIZXJlJ3MgYW4gZXhhbXBsZSBvZiB0aGUgc29ydCBvZiB0aGluZyB0aGF0IGlzIHRlc3RlZC4KCj4+PiBkZWYgZih4KToKLi4uICAgICBnbG9iYWwgeApUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6ClN5bnRheEVycm9yOiBuYW1lICd4JyBpcyBsb2NhbCBhbmQgZ2xvYmFsICg8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzBdPiwgbGluZSAxKQoKVGhlIHRlc3RzIGFyZSBhbGwgcmFpc2UgU3ludGF4RXJyb3JzLiAgVGhleSB3ZXJlIGNyZWF0ZWQgYnkgY2hlY2tpbmcKZWFjaCBDIGNhbGwgdGhhdCByYWlzZXMgU3ludGF4RXJyb3IuICBUaGVyZSBhcmUgc2V2ZXJhbCBtb2R1bGVzIHRoYXQKcmFpc2UgdGhlc2UgZXhjZXB0aW9ucy0tIGFzdC5jLCBjb21waWxlLmMsIGZ1dHVyZS5jLCBweXRob25ydW4uYywgYW5kCnN5bXRhYmxlLmMuCgpUaGUgcGFyc2VyIGl0c2VsZiBvdXRsYXdzIGEgbG90IG9mIGludmFsaWQgc3ludGF4LiAgTm9uZSBvZiB0aGVzZQplcnJvcnMgYXJlIHRlc3RlZCBoZXJlIGF0IHRoZSBtb21lbnQuICBXZSBzaG91bGQgYWRkIHNvbWUgdGVzdHM7IHNpbmNlCnRoZXJlIGFyZSBpbmZpbml0ZWx5IG1hbnkgcHJvZ3JhbXMgd2l0aCBpbnZhbGlkIHN5bnRheCwgd2Ugd291bGQgbmVlZAp0byBiZSBqdWRpY2lvdXMgaW4gc2VsZWN0aW5nIHNvbWUuCgpUaGUgY29tcGlsZXIgZ2VuZXJhdGVzIGEgc3ludGhldGljIG1vZHVsZSBuYW1lIGZvciBjb2RlIGV4ZWN1dGVkIGJ5CmRvY3Rlc3QuICBTaW5jZSBhbGwgdGhlIGNvZGUgY29tZXMgZnJvbSB0aGUgc2FtZSBtb2R1bGUsIGEgc3VmZml4IGxpa2UKWzFdIGlzIGFwcGVuZGVkIHRvIHRoZSBtb2R1bGUgbmFtZSwgQXMgYSBjb25zZXF1ZW5jZSwgY2hhbmdpbmcgdGhlCm9yZGVyIG9mIHRlc3RzIGluIHRoaXMgbW9kdWxlIG1lYW5zIHJlbnVtYmVyaW5nIGFsbCB0aGUgZXJyb3JzIGFmdGVyCml0LiAgKE1heWJlIHdlIHNob3VsZCBlbmFibGUgdGhlIGVsbGlwc2lzIG9wdGlvbiBmb3IgdGhlc2UgdGVzdHMuKQoKSW4gYXN0LmMsIHN5bnRheCBlcnJvcnMgYXJlIHJhaXNlZCBieSBjYWxsaW5nIGFzdF9lcnJvcigpLgoKRXJyb3JzIGZyb20gc2V0X2NvbnRleHQoKToKCj4+PiBvYmouTm9uZSA9IDEKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbMV0+IiwgbGluZSAxClN5bnRheEVycm9yOiBjYW5ub3QgYXNzaWduIHRvIE5vbmUKCj4+PiBOb25lID0gMQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFsyXT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGNhbm5vdCBhc3NpZ24gdG8gTm9uZQoKSXQncyBhIHN5bnRheCBlcnJvciB0byBhc3NpZ24gdG8gdGhlIGVtcHR5IHR1cGxlLiAgV2h5IGlzbid0IGl0IGFuCmVycm9yIHRvIGFzc2lnbiB0byB0aGUgZW1wdHkgbGlzdD8gIEl0IHdpbGwgYWx3YXlzIHJhaXNlIHNvbWUgZXJyb3IgYXQKcnVudGltZS4KCj4+PiAoKSA9IDEKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbM10+IiwgbGluZSAxClN5bnRheEVycm9yOiBjYW4ndCBhc3NpZ24gdG8gKCkKCj4+PiBmKCkgPSAxClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzRdPiIsIGxpbmUgMQpTeW50YXhFcnJvcjogY2FuJ3QgYXNzaWduIHRvIGZ1bmN0aW9uIGNhbGwKCj4+PiBkZWwgZigpClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzVdPiIsIGxpbmUgMQpTeW50YXhFcnJvcjogY2FuJ3QgZGVsZXRlIGZ1bmN0aW9uIGNhbGwKCj4+PiBhICsgMSA9IDIKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbNl0+IiwgbGluZSAxClN5bnRheEVycm9yOiBjYW4ndCBhc3NpZ24gdG8gb3BlcmF0b3IKCj4+PiAoeCBmb3IgeCBpbiB4KSA9IDEKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbN10+IiwgbGluZSAxClN5bnRheEVycm9yOiBjYW4ndCBhc3NpZ24gdG8gZ2VuZXJhdG9yIGV4cHJlc3Npb24KCj4+PiAxID0gMQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFs4XT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBsaXRlcmFsCgo+Pj4gImFiYyIgPSAxClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzhdPiIsIGxpbmUgMQpTeW50YXhFcnJvcjogY2FuJ3QgYXNzaWduIHRvIGxpdGVyYWwKCj4+PiBgMWAgPSAxClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzEwXT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byByZXByCgpJZiB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBpcyBhIGxpc3Qgb3IgdHVwbGUsIGFuIGlsbGVnYWwKZXhwcmVzc2lvbiBpbnNpZGUgdGhhdCBjb250YWluIHNob3VsZCBzdGlsbCBjYXVzZSBhIHN5bnRheCBlcnJvci4KVGhpcyB0ZXN0IGp1c3QgY2hlY2tzIGEgY291cGxlIG9mIGNhc2VzIHJhdGhlciB0aGFuIGVudW1lcmF0aW5nIGFsbCBvZgp0aGVtLgoKPj4+IChhLCAiYiIsIGMpID0gKDEsIDIsIDMpClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzExXT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBsaXRlcmFsCgo+Pj4gW2EsIGIsIGMgKyAxXSA9IFsxLCAyLCAzXQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFsxMl0+IiwgbGluZSAxClN5bnRheEVycm9yOiBjYW4ndCBhc3NpZ24gdG8gb3BlcmF0b3IKCj4+PiBhIGlmIDEgZWxzZSBiID0gMQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFsxM10+IiwgbGluZSAxClN5bnRheEVycm9yOiBjYW4ndCBhc3NpZ24gdG8gY29uZGl0aW9uYWwgZXhwcmVzc2lvbgoKRnJvbSBjb21waWxlcl9jb21wbGV4X2FyZ3MoKToKCj4+PiBkZWYgZihOb25lPTEpOgouLi4gICAgIHBhc3MKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbMTRdPiIsIGxpbmUgMQpTeW50YXhFcnJvcjogY2Fubm90IGFzc2lnbiB0byBOb25lCgoKRnJvbSBhc3RfZm9yX2FyZ3VtZW50cygpOgoKPj4+IGRlZiBmKHgsIHk9MSwgeik6Ci4uLiAgICAgcGFzcwpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFsxNV0+IiwgbGluZSAxClN5bnRheEVycm9yOiBub24tZGVmYXVsdCBhcmd1bWVudCBmb2xsb3dzIGRlZmF1bHQgYXJndW1lbnQKCj4+PiBkZWYgZih4LCBOb25lKToKLi4uICAgICBwYXNzClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzE2XT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGNhbm5vdCBhc3NpZ24gdG8gTm9uZQoKPj4+IGRlZiBmKCpOb25lKToKLi4uICAgICBwYXNzClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzE3XT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGNhbm5vdCBhc3NpZ24gdG8gTm9uZQoKPj4+IGRlZiBmKCoqTm9uZSk6Ci4uLiAgICAgcGFzcwpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFsxOF0+IiwgbGluZSAxClN5bnRheEVycm9yOiBjYW5ub3QgYXNzaWduIHRvIE5vbmUKCgpGcm9tIGFzdF9mb3JfZnVuY2RlZigpOgoKPj4+IGRlZiBOb25lKHgpOgouLi4gICAgIHBhc3MKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbMTldPiIsIGxpbmUgMQpTeW50YXhFcnJvcjogY2Fubm90IGFzc2lnbiB0byBOb25lCgoKRnJvbSBhc3RfZm9yX2NhbGwoKToKCj4+PiBkZWYgZihpdCwgKnZhcmFyZ3MpOgouLi4gICAgIHJldHVybiBsaXN0KGl0KQo+Pj4gTCA9IHJhbmdlKDEwKQo+Pj4gZih4IGZvciB4IGluIEwpClswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5XQo+Pj4gZih4IGZvciB4IGluIEwsIDEpClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzIzXT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IEdlbmVyYXRvciBleHByZXNzaW9uIG11c3QgYmUgcGFyZW50aGVzaXplZCBpZiBub3Qgc29sZSBhcmd1bWVudAo+Pj4gZigoeCBmb3IgeCBpbiBMKSwgMSkKWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDldCgo+Pj4gZihpMCwgIGkxLCAgaTIsICBpMywgIGk0LCAgaTUsICBpNiwgIGk3LCAgaTgsICBpOSwgIGkxMCwgIGkxMSwKLi4uICAgaTEyLCAgaTEzLCAgaTE0LCAgaTE1LCAgaTE2LCAgaTE3LCAgaTE4LCAgaTE5LCAgaTIwLCAgaTIxLCAgaTIyLAouLi4gICBpMjMsICBpMjQsICBpMjUsICBpMjYsICBpMjcsICBpMjgsICBpMjksICBpMzAsICBpMzEsICBpMzIsICBpMzMsCi4uLiAgIGkzNCwgIGkzNSwgIGkzNiwgIGkzNywgIGkzOCwgIGkzOSwgIGk0MCwgIGk0MSwgIGk0MiwgIGk0MywgIGk0NCwKLi4uICAgaTQ1LCAgaTQ2LCAgaTQ3LCAgaTQ4LCAgaTQ5LCAgaTUwLCAgaTUxLCAgaTUyLCAgaTUzLCAgaTU0LCAgaTU1LAouLi4gICBpNTYsICBpNTcsICBpNTgsICBpNTksICBpNjAsICBpNjEsICBpNjIsICBpNjMsICBpNjQsICBpNjUsICBpNjYsCi4uLiAgIGk2NywgIGk2OCwgIGk2OSwgIGk3MCwgIGk3MSwgIGk3MiwgIGk3MywgIGk3NCwgIGk3NSwgIGk3NiwgIGk3NywKLi4uICAgaTc4LCAgaTc5LCAgaTgwLCAgaTgxLCAgaTgyLCAgaTgzLCAgaTg0LCAgaTg1LCAgaTg2LCAgaTg3LCAgaTg4LAouLi4gICBpODksICBpOTAsICBpOTEsICBpOTIsICBpOTMsICBpOTQsICBpOTUsICBpOTYsICBpOTcsICBpOTgsICBpOTksCi4uLiAgIGkxMDAsICBpMTAxLCAgaTEwMiwgIGkxMDMsICBpMTA0LCAgaTEwNSwgIGkxMDYsICBpMTA3LCAgaTEwOCwKLi4uICAgaTEwOSwgIGkxMTAsICBpMTExLCAgaTExMiwgIGkxMTMsICBpMTE0LCAgaTExNSwgIGkxMTYsICBpMTE3LAouLi4gICBpMTE4LCAgaTExOSwgIGkxMjAsICBpMTIxLCAgaTEyMiwgIGkxMjMsICBpMTI0LCAgaTEyNSwgIGkxMjYsCi4uLiAgIGkxMjcsICBpMTI4LCAgaTEyOSwgIGkxMzAsICBpMTMxLCAgaTEzMiwgIGkxMzMsICBpMTM0LCAgaTEzNSwKLi4uICAgaTEzNiwgIGkxMzcsICBpMTM4LCAgaTEzOSwgIGkxNDAsICBpMTQxLCAgaTE0MiwgIGkxNDMsICBpMTQ0LAouLi4gICBpMTQ1LCAgaTE0NiwgIGkxNDcsICBpMTQ4LCAgaTE0OSwgIGkxNTAsICBpMTUxLCAgaTE1MiwgIGkxNTMsCi4uLiAgIGkxNTQsICBpMTU1LCAgaTE1NiwgIGkxNTcsICBpMTU4LCAgaTE1OSwgIGkxNjAsICBpMTYxLCAgaTE2MiwKLi4uICAgaTE2MywgIGkxNjQsICBpMTY1LCAgaTE2NiwgIGkxNjcsICBpMTY4LCAgaTE2OSwgIGkxNzAsICBpMTcxLAouLi4gICBpMTcyLCAgaTE3MywgIGkxNzQsICBpMTc1LCAgaTE3NiwgIGkxNzcsICBpMTc4LCAgaTE3OSwgIGkxODAsCi4uLiAgIGkxODEsICBpMTgyLCAgaTE4MywgIGkxODQsICBpMTg1LCAgaTE4NiwgIGkxODcsICBpMTg4LCAgaTE4OSwKLi4uICAgaTE5MCwgIGkxOTEsICBpMTkyLCAgaTE5MywgIGkxOTQsICBpMTk1LCAgaTE5NiwgIGkxOTcsICBpMTk4LAouLi4gICBpMTk5LCAgaTIwMCwgIGkyMDEsICBpMjAyLCAgaTIwMywgIGkyMDQsICBpMjA1LCAgaTIwNiwgIGkyMDcsCi4uLiAgIGkyMDgsICBpMjA5LCAgaTIxMCwgIGkyMTEsICBpMjEyLCAgaTIxMywgIGkyMTQsICBpMjE1LCAgaTIxNiwKLi4uICAgaTIxNywgIGkyMTgsICBpMjE5LCAgaTIyMCwgIGkyMjEsICBpMjIyLCAgaTIyMywgIGkyMjQsICBpMjI1LAouLi4gICBpMjI2LCAgaTIyNywgIGkyMjgsICBpMjI5LCAgaTIzMCwgIGkyMzEsICBpMjMyLCAgaTIzMywgIGkyMzQsCi4uLiAgIGkyMzUsICBpMjM2LCAgaTIzNywgIGkyMzgsICBpMjM5LCAgaTI0MCwgIGkyNDEsICBpMjQyLCAgaTI0MywKLi4uICAgaTI0NCwgIGkyNDUsICBpMjQ2LCAgaTI0NywgIGkyNDgsICBpMjQ5LCAgaTI1MCwgIGkyNTEsICBpMjUyLAouLi4gICBpMjUzLCAgaTI1NCwgIGkyNTUpClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzI1XT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IG1vcmUgdGhhbiAyNTUgYXJndW1lbnRzCgpUaGUgYWN0dWFsIGVycm9yIGNhc2VzIGNvdW50cyBwb3NpdGlvbmFsIGFyZ3VtZW50cywga2V5d29yZCBhcmd1bWVudHMsCmFuZCBnZW5lcmF0b3IgZXhwcmVzc2lvbiBhcmd1bWVudHMgc2VwYXJhdGVseS4gIFRoaXMgdGVzdCBjb21iaW5lcyB0aGUKdGhyZWUuCgo+Pj4gZihpMCwgIGkxLCAgaTIsICBpMywgIGk0LCAgaTUsICBpNiwgIGk3LCAgaTgsICBpOSwgIGkxMCwgIGkxMSwKLi4uICAgaTEyLCAgaTEzLCAgaTE0LCAgaTE1LCAgaTE2LCAgaTE3LCAgaTE4LCAgaTE5LCAgaTIwLCAgaTIxLCAgaTIyLAouLi4gICBpMjMsICBpMjQsICBpMjUsICBpMjYsICBpMjcsICBpMjgsICBpMjksICBpMzAsICBpMzEsICBpMzIsICBpMzMsCi4uLiAgIGkzNCwgIGkzNSwgIGkzNiwgIGkzNywgIGkzOCwgIGkzOSwgIGk0MCwgIGk0MSwgIGk0MiwgIGk0MywgIGk0NCwKLi4uICAgaTQ1LCAgaTQ2LCAgaTQ3LCAgaTQ4LCAgaTQ5LCAgaTUwLCAgaTUxLCAgaTUyLCAgaTUzLCAgaTU0LCAgaTU1LAouLi4gICBpNTYsICBpNTcsICBpNTgsICBpNTksICBpNjAsICBpNjEsICBpNjIsICBpNjMsICBpNjQsICBpNjUsICBpNjYsCi4uLiAgIGk2NywgIGk2OCwgIGk2OSwgIGk3MCwgIGk3MSwgIGk3MiwgIGk3MywgIGk3NCwgIGk3NSwgIGk3NiwgIGk3NywKLi4uICAgaTc4LCAgaTc5LCAgaTgwLCAgaTgxLCAgaTgyLCAgaTgzLCAgaTg0LCAgaTg1LCAgaTg2LCAgaTg3LCAgaTg4LAouLi4gICBpODksICBpOTAsICBpOTEsICBpOTIsICBpOTMsICBpOTQsICBpOTUsICBpOTYsICBpOTcsICBpOTgsICBpOTksCi4uLiAgIGkxMDAsICBpMTAxLCAgaTEwMiwgIGkxMDMsICBpMTA0LCAgaTEwNSwgIGkxMDYsICBpMTA3LCAgaTEwOCwKLi4uICAgaTEwOSwgIGkxMTAsICBpMTExLCAgaTExMiwgIGkxMTMsICBpMTE0LCAgaTExNSwgIGkxMTYsICBpMTE3LAouLi4gICBpMTE4LCAgaTExOSwgIGkxMjAsICBpMTIxLCAgaTEyMiwgIGkxMjMsICBpMTI0LCAgaTEyNSwgIGkxMjYsCi4uLiAgIGkxMjcsICBpMTI4LCAgaTEyOSwgIGkxMzAsICBpMTMxLCAgaTEzMiwgIGkxMzMsICBpMTM0LCAgaTEzNSwKLi4uICAgaTEzNiwgIGkxMzcsICBpMTM4LCAgaTEzOSwgIGkxNDAsICBpMTQxLCAgaTE0MiwgIGkxNDMsICBpMTQ0LAouLi4gICBpMTQ1LCAgaTE0NiwgIGkxNDcsICBpMTQ4LCAgaTE0OSwgIGkxNTAsICBpMTUxLCAgaTE1MiwgIGkxNTMsCi4uLiAgIGkxNTQsICBpMTU1LCAgaTE1NiwgIGkxNTcsICBpMTU4LCAgaTE1OSwgIGkxNjAsICBpMTYxLCAgaTE2MiwKLi4uICAgaTE2MywgIGkxNjQsICBpMTY1LCAgaTE2NiwgIGkxNjcsICBpMTY4LCAgaTE2OSwgIGkxNzAsICBpMTcxLAouLi4gICBpMTcyLCAgaTE3MywgIGkxNzQsICBpMTc1LCAgaTE3NiwgIGkxNzcsICBpMTc4LCAgaTE3OSwgIGkxODAsCi4uLiAgIGkxODEsICBpMTgyLCAgaTE4MywgIGkxODQsICBpMTg1LCAgaTE4NiwgIGkxODcsICBpMTg4LCAgaTE4OSwKLi4uICAgaTE5MCwgIGkxOTEsICBpMTkyLCAgaTE5MywgIGkxOTQsICBpMTk1LCAgaTE5NiwgIGkxOTcsICBpMTk4LAouLi4gICBpMTk5LCAgaTIwMCwgIGkyMDEsICBpMjAyLCAgaTIwMywgIGkyMDQsICBpMjA1LCAgaTIwNiwgIGkyMDcsCi4uLiAgIGkyMDgsICBpMjA5LCAgaTIxMCwgIGkyMTEsICBpMjEyLCAgaTIxMywgIGkyMTQsICBpMjE1LCAgaTIxNiwKLi4uICAgaTIxNywgIGkyMTgsICBpMjE5LCAgaTIyMCwgIGkyMjEsICBpMjIyLCAgaTIyMywgIGkyMjQsICBpMjI1LAouLi4gICBpMjI2LCAgaTIyNywgIGkyMjgsICBpMjI5LCAgaTIzMCwgIGkyMzEsICBpMjMyLCAgaTIzMywgIGkyMzQsCi4uLiAgIGkyMzUsIGkyMzYsICBpMjM3LCAgaTIzOCwgIGkyMzksICBpMjQwLCAgaTI0MSwgIGkyNDIsICBpMjQzLAouLi4gICAoeCBmb3IgeCBpbiBpMjQ0KSwgIGkyNDUsICBpMjQ2LCAgaTI0NywgIGkyNDgsICBpMjQ5LCAgaTI1MCwgIGkyNTEsCi4uLiAgICBpMjUyPTEsIGkyNTM9MSwgIGkyNTQ9MSwgIGkyNTU9MSkKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbMjZdPiIsIGxpbmUgMQpTeW50YXhFcnJvcjogbW9yZSB0aGFuIDI1NSBhcmd1bWVudHMKCj4+PiBmKGxhbWJkYSB4OiB4WzBdID0gMykKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbMjddPiIsIGxpbmUgMQpTeW50YXhFcnJvcjogbGFtYmRhIGNhbm5vdCBjb250YWluIGFzc2lnbm1lbnQKClRoZSBncmFtbWFyIGFjY2VwdHMgYW55IHRlc3QgKGJhc2ljYWxseSwgYW55IGV4cHJlc3Npb24pIGluIHRoZQprZXl3b3JkIHNsb3Qgb2YgYSBjYWxsIHNpdGUuICBUZXN0IGEgZmV3IGRpZmZlcmVudCBvcHRpb25zLgoKPj4+IGYoeCgpPTIpClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzI4XT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGtleXdvcmQgY2FuJ3QgYmUgYW4gZXhwcmVzc2lvbgo+Pj4gZihhIG9yIGI9MSkKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbMjldPiIsIGxpbmUgMQpTeW50YXhFcnJvcjoga2V5d29yZCBjYW4ndCBiZSBhbiBleHByZXNzaW9uCj4+PiBmKHgueT0xKQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFszMF0+IiwgbGluZSAxClN5bnRheEVycm9yOiBrZXl3b3JkIGNhbid0IGJlIGFuIGV4cHJlc3Npb24KCgpNb3JlIHNldF9jb250ZXh0KCk6Cgo+Pj4gKHggZm9yIHggaW4geCkgKz0gMQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFszMV0+IiwgbGluZSAxClN5bnRheEVycm9yOiBjYW4ndCBhc3NpZ24gdG8gZ2VuZXJhdG9yIGV4cHJlc3Npb24KPj4+IE5vbmUgKz0gMQpUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFszMl0+IiwgbGluZSAxClN5bnRheEVycm9yOiBjYW5ub3QgYXNzaWduIHRvIE5vbmUKPj4+IGYoKSArPSAxClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzMzXT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBmdW5jdGlvbiBjYWxsCgoKVGVzdCBjb250aW51ZSBpbiBmaW5hbGx5IGluIHdlaXJkIGNvbWJpbmF0aW9ucy4KCmNvbnRpbnVlIGluIGZvciBsb29wIHVuZGVyIGZpbmFsbHkgc2hvdWxkIGJlIG9rLgoKICAgID4+PiBkZWYgdGVzdCgpOgogICAgLi4uICAgICB0cnk6CiAgICAuLi4gICAgICAgICBwYXNzCiAgICAuLi4gICAgIGZpbmFsbHk6CiAgICAuLi4gICAgICAgICBmb3IgYWJjIGluIHJhbmdlKDEwKToKICAgIC4uLiAgICAgICAgICAgICBjb250aW51ZQogICAgLi4uICAgICBwcmludCBhYmMKICAgID4+PiB0ZXN0KCkKICAgIDkKClN0YXJ0IHNpbXBsZSwgYSBjb250aW51ZSBpbiBhIGZpbmFsbHkgc2hvdWxkIG5vdCBiZSBhbGxvd2VkLgoKICAgID4+PiBkZWYgdGVzdCgpOgogICAgLi4uICAgIGZvciBhYmMgaW4gcmFuZ2UoMTApOgogICAgLi4uICAgICAgICB0cnk6CiAgICAuLi4gICAgICAgICAgICBwYXNzCiAgICAuLi4gICAgICAgIGZpbmFsbHk6CiAgICAuLi4gICAgICAgICAgICBjb250aW51ZQogICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAuLi4KICAgICAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFszNl0+IiwgbGluZSA2CiAgICBTeW50YXhFcnJvcjogJ2NvbnRpbnVlJyBub3Qgc3VwcG9ydGVkIGluc2lkZSAnZmluYWxseScgY2xhdXNlCgpUaGlzIGlzIGVzc2VudGlhbGx5IGEgY29udGludWUgaW4gYSBmaW5hbGx5IHdoaWNoIHNob3VsZCBub3QgYmUgYWxsb3dlZC4KCiAgICA+Pj4gZGVmIHRlc3QoKToKICAgIC4uLiAgICBmb3IgYWJjIGluIHJhbmdlKDEwKToKICAgIC4uLiAgICAgICAgdHJ5OgogICAgLi4uICAgICAgICAgICAgcGFzcwogICAgLi4uICAgICAgICBmaW5hbGx5OgogICAgLi4uICAgICAgICAgICAgdHJ5OgogICAgLi4uICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAuLi4gICAgICAgICAgICBleGNlcHQ6CiAgICAuLi4gICAgICAgICAgICAgICAgcGFzcwogICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAuLi4KICAgICAgRmlsZSAiPGRvY3Rlc3QgdGVzdC50ZXN0X3N5bnRheFszN10+IiwgbGluZSA2CiAgICBTeW50YXhFcnJvcjogJ2NvbnRpbnVlJyBub3Qgc3VwcG9ydGVkIGluc2lkZSAnZmluYWxseScgY2xhdXNlCgogICAgPj4+IGRlZiBmb28oKToKICAgIC4uLiAgICAgdHJ5OgogICAgLi4uICAgICAgICAgcGFzcwogICAgLi4uICAgICBmaW5hbGx5OgogICAgLi4uICAgICAgICAgY29udGludWUKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgLi4uCiAgICAgIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbMzhdPiIsIGxpbmUgNQogICAgU3ludGF4RXJyb3I6ICdjb250aW51ZScgbm90IHN1cHBvcnRlZCBpbnNpZGUgJ2ZpbmFsbHknIGNsYXVzZQoKICAgID4+PiBkZWYgZm9vKCk6CiAgICAuLi4gICAgIGZvciBhIGluICgpOgogICAgLi4uICAgICAgIHRyeToKICAgIC4uLiAgICAgICAgICAgcGFzcwogICAgLi4uICAgICAgIGZpbmFsbHk6CiAgICAuLi4gICAgICAgICAgIGNvbnRpbnVlCiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgIC4uLgogICAgICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzM5XT4iLCBsaW5lIDYKICAgIFN5bnRheEVycm9yOiAnY29udGludWUnIG5vdCBzdXBwb3J0ZWQgaW5zaWRlICdmaW5hbGx5JyBjbGF1c2UKCiAgICA+Pj4gZGVmIGZvbygpOgogICAgLi4uICAgICBmb3IgYSBpbiAoKToKICAgIC4uLiAgICAgICAgIHRyeToKICAgIC4uLiAgICAgICAgICAgICBwYXNzCiAgICAuLi4gICAgICAgICBmaW5hbGx5OgogICAgLi4uICAgICAgICAgICAgIHRyeToKICAgIC4uLiAgICAgICAgICAgICAgICAgY29udGludWUKICAgIC4uLiAgICAgICAgICAgICBmaW5hbGx5OgogICAgLi4uICAgICAgICAgICAgICAgICBwYXNzCiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgIC4uLgogICAgICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzQwXT4iLCBsaW5lIDcKICAgIFN5bnRheEVycm9yOiAnY29udGludWUnIG5vdCBzdXBwb3J0ZWQgaW5zaWRlICdmaW5hbGx5JyBjbGF1c2UKCiAgICA+Pj4gZGVmIGZvbygpOgogICAgLi4uICBmb3IgYSBpbiAoKToKICAgIC4uLiAgIHRyeTogcGFzcwogICAgLi4uICAgZmluYWxseToKICAgIC4uLiAgICB0cnk6CiAgICAuLi4gICAgIHBhc3MKICAgIC4uLiAgICBleGNlcHQ6CiAgICAuLi4gICAgIGNvbnRpbnVlCiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgIC4uLgogICAgICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzQxXT4iLCBsaW5lIDgKICAgIFN5bnRheEVycm9yOiAnY29udGludWUnIG5vdCBzdXBwb3J0ZWQgaW5zaWRlICdmaW5hbGx5JyBjbGF1c2UKClRoZXJlIGlzIG9uZSB0ZXN0IGZvciBhIGJyZWFrIHRoYXQgaXMgbm90IGluIGEgbG9vcC4gIFRoZSBjb21waWxlcgp1c2VzIGEgc2luZ2xlIGRhdGEgc3RydWN0dXJlIHRvIGtlZXAgdHJhY2sgb2YgdHJ5LWZpbmFsbHkgYW5kIGxvb3BzLApzbyB3ZSBuZWVkIHRvIGJlIHN1cmUgdGhhdCBhIGJyZWFrIGlzIGFjdHVhbGx5IGluc2lkZSBhIGxvb3AuICBJZiBpdAppc24ndCwgdGhlcmUgc2hvdWxkIGJlIGEgc3ludGF4IGVycm9yLgoKICAgPj4+IHRyeToKICAgLi4uICAgICBwcmludCAxCiAgIC4uLiAgICAgYnJlYWsKICAgLi4uICAgICBwcmludCAyCiAgIC4uLiBmaW5hbGx5OgogICAuLi4gICAgIHByaW50IDMKICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgIC4uLgogICAgIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbNDJdPiIsIGxpbmUgMwogICBTeW50YXhFcnJvcjogJ2JyZWFrJyBvdXRzaWRlIGxvb3AKClRoaXMgc2hvdWxkIHByb2JhYmx5IHJhaXNlIGEgYmV0dGVyIGVycm9yIHRoYW4gYSBTeXN0ZW1FcnJvciAob3Igbm9uZSBhdCBhbGwpLgpJbiAyLjUgdGhlcmUgd2FzIGEgbWlzc2luZyBleGNlcHRpb24gYW5kIGFuIGFzc2VydCB3YXMgdHJpZ2dlcmVkIGluIGEgZGVidWcKYnVpbGQuICBUaGUgbnVtYmVyIG9mIGJsb2NrcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBDT19NQVhCTE9DS1MuICBTRiAjMTU2NTUxNAoKICAgPj4+IHdoaWxlIDE6CiAgIC4uLiAgd2hpbGUgMjoKICAgLi4uICAgd2hpbGUgMzoKICAgLi4uICAgIHdoaWxlIDQ6CiAgIC4uLiAgICAgd2hpbGUgNToKICAgLi4uICAgICAgd2hpbGUgNjoKICAgLi4uICAgICAgIHdoaWxlIDg6CiAgIC4uLiAgICAgICAgd2hpbGUgOToKICAgLi4uICAgICAgICAgd2hpbGUgMTA6CiAgIC4uLiAgICAgICAgICB3aGlsZSAxMToKICAgLi4uICAgICAgICAgICB3aGlsZSAxMjoKICAgLi4uICAgICAgICAgICAgd2hpbGUgMTM6CiAgIC4uLiAgICAgICAgICAgICB3aGlsZSAxNDoKICAgLi4uICAgICAgICAgICAgICB3aGlsZSAxNToKICAgLi4uICAgICAgICAgICAgICAgd2hpbGUgMTY6CiAgIC4uLiAgICAgICAgICAgICAgICB3aGlsZSAxNzoKICAgLi4uICAgICAgICAgICAgICAgICB3aGlsZSAxODoKICAgLi4uICAgICAgICAgICAgICAgICAgd2hpbGUgMTk6CiAgIC4uLiAgICAgICAgICAgICAgICAgICB3aGlsZSAyMDoKICAgLi4uICAgICAgICAgICAgICAgICAgICB3aGlsZSAyMToKICAgLi4uICAgICAgICAgICAgICAgICAgICAgd2hpbGUgMjI6CiAgIC4uLiAgICAgICAgICAgICAgICAgICAgICBicmVhawogICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgLi4uCiAgIFN5c3RlbUVycm9yOiB0b28gbWFueSBzdGF0aWNhbGx5IG5lc3RlZCBibG9ja3MKClRoaXMgdGVzdHMgYXNzaWdubWVudC1jb250ZXh0OyB0aGVyZSB3YXMgYSBidWcgaW4gUHl0aG9uIDIuNSB3aGVyZSBjb21waWxpbmcKYSBjb21wbGV4ICdpZicgKG9uZSB3aXRoICdlbGlmJykgd291bGQgZmFpbCB0byBub3RpY2UgYW4gaW52YWxpZCBzdWl0ZSwKbGVhZGluZyB0byBzcHVyaW91cyBlcnJvcnMuCgogICA+Pj4gaWYgMToKICAgLi4uICAgeCgpID0gMQogICAuLi4gZWxpZiAxOgogICAuLi4gICBwYXNzCiAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAuLi4KICAgICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzQ0XT4iLCBsaW5lIDIKICAgU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBmdW5jdGlvbiBjYWxsCgogICA+Pj4gaWYgMToKICAgLi4uICAgcGFzcwogICAuLi4gZWxpZiAxOgogICAuLi4gICB4KCkgPSAxCiAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAuLi4KICAgICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzQ1XT4iLCBsaW5lIDQKICAgU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBmdW5jdGlvbiBjYWxsCgogICA+Pj4gaWYgMToKICAgLi4uICAgeCgpID0gMQogICAuLi4gZWxpZiAxOgogICAuLi4gICBwYXNzCiAgIC4uLiBlbHNlOgogICAuLi4gICBwYXNzCiAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAuLi4KICAgICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzQ2XT4iLCBsaW5lIDIKICAgU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBmdW5jdGlvbiBjYWxsCgogICA+Pj4gaWYgMToKICAgLi4uICAgcGFzcwogICAuLi4gZWxpZiAxOgogICAuLi4gICB4KCkgPSAxCiAgIC4uLiBlbHNlOgogICAuLi4gICBwYXNzCiAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAuLi4KICAgICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzQ3XT4iLCBsaW5lIDQKICAgU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBmdW5jdGlvbiBjYWxsCgogICA+Pj4gaWYgMToKICAgLi4uICAgcGFzcwogICAuLi4gZWxpZiAxOgogICAuLi4gICBwYXNzCiAgIC4uLiBlbHNlOgogICAuLi4gICB4KCkgPSAxCiAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAuLi4KICAgICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzQ4XT4iLCBsaW5lIDYKICAgU3ludGF4RXJyb3I6IGNhbid0IGFzc2lnbiB0byBmdW5jdGlvbiBjYWxsCgo+Pj4gZihhPTIzLCBhPTIzNCkKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAuLi4KICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzQ5XT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGtleXdvcmQgYXJndW1lbnQgcmVwZWF0ZWQKCj4+PiBkZWwgKCkKVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAuLi4KICBGaWxlICI8ZG9jdGVzdCB0ZXN0LnRlc3Rfc3ludGF4WzUwXT4iLCBsaW5lIDEKU3ludGF4RXJyb3I6IGNhbid0IGRlbGV0ZSAoKQoKPj4+IHsxLCAyLCAzfSA9IDQyClRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgLi4uCiAgIEZpbGUgIjxkb2N0ZXN0IHRlc3QudGVzdF9zeW50YXhbNTBdPiIsIGxpbmUgMQpTeW50YXhFcnJvcjogY2FuJ3QgYXNzaWduIHRvIGxpdGVyYWwKCkNvcm5lci1jYXNlIHRoYXQgdXNlZCB0byBjcmFzaDoKCiAgICA+Pj4gZGVmIGYoKnh4LCAqKl9fZGVidWdfXyk6IHBhc3MKICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgIFN5bnRheEVycm9yOiBjYW5ub3QgYXNzaWduIHRvIF9fZGVidWdfXwoKaf////9OKAEAAAB0DAAAAHRlc3Rfc3VwcG9ydHQOAAAAU3ludGF4VGVzdENhc2VjAAAAAAAAAAAEAAAAQgAAAHN0AAAAZQAAWgEAZAAAZAEAZA0AZAIAhAMAWgMAZAMAhAAAWgQAZAQAhAAAWgUAZAUAhAAAWgYAZAYAhAAAWgcAZAcAhAAAWggAZAgAhAAAWgkAZAkAhAAAWgoAZAoAhAAAWgsAZAsAhAAAWgwAZAwAhAAAWg0AUlMoDgAAAHMKAAAAPHRlc3RjYXNlPnQEAAAAZXhlY2MGAAAACAAAAAUAAABDAAAAc6YAAAB5FAB0AAB8AQB8AwB8BACDAwABV25+AAR0AQBrCgBylAABfQYAAXwFAHJTAHQCAHwGAHwFAIMCAAxyUwB8AABqAwBkAQB8BQBqBAAWgwEAAW4AAHQFAGoGAHwCAHQHAHwGAIMBAIMCAH0HAHwHAGQEAGsIAHKiAHwAAGoDAGQCAHwGAHwCAGYCABaDAQABcaIAbg4AWHwAAGoDAGQDAIMBAAFkBABTKAUAAABzFAEAAENoZWNrIHRoYXQgY29tcGlsaW5nIGNvZGUgcmFpc2VzIFN5bnRheEVycm9yIHdpdGggZXJydGV4dC4KCiAgICAgICAgZXJydGVzdCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IG11c3QgYmUgcHJlc2VudCBpbiB0aGUKICAgICAgICB0ZXN0IG9mIHRoZSBleGNlcHRpb24gcmFpc2VkLiAgSWYgc3ViY2xhc3MgaXMgc3BlY2lmaWVkIGl0CiAgICAgICAgaXMgdGhlIGV4cGVjdGVkIHN1YmNsYXNzIG9mIFN5bnRheEVycm9yIChlLmcuIEluZGVudGF0aW9uRXJyb3IpLgogICAgICAgIHMXAAAAU3ludGF4RXJyb3IgaXMgbm90IGEgJXNzFwAAACVzIGRpZCBub3QgY29udGFpbiAnJXIncyMAAABjb21waWxlKCkgZGlkIG5vdCByYWlzZSBTeW50YXhFcnJvck4oCQAAAHQHAAAAY29tcGlsZXQLAAAAU3ludGF4RXJyb3J0CgAAAGlzaW5zdGFuY2V0BAAAAGZhaWx0CAAAAF9fbmFtZV9fdAIAAAByZXQGAAAAc2VhcmNodAMAAABzdHJ0BAAAAE5vbmUoCAAAAHQEAAAAc2VsZnQEAAAAY29kZXQHAAAAZXJydGV4dHQIAAAAZmlsZW5hbWV0BAAAAG1vZGV0CAAAAHN1YmNsYXNzdAMAAABlcnJ0AgAAAG1vKAAAAAAoAAAAAHNYAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvdGVzdC90ZXN0X3N5bnRheC5weXQMAAAAX2NoZWNrX2Vycm9y7QEAAHMSAAAAAAgDARQBDwEWARcBGAEMAR4CYwEAAAABAAAAAwAAAEMAAABzFAAAAHwAAGoAAGQBAGQCAIMCAAFkAABTKAMAAABOcxMAAABkZWYgZigoeCk9MjMpOiBwYXNzcx4AAABwYXJlbnRoZXNpemVkIGFyZyB3aXRoIGRlZmF1bHQoAQAAAFIUAAAAKAEAAABSDAAAACgAAAAAKAAAAABzWAAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43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