PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KPHRpdGxlPkNoYXJzZXRzIGFuZCBzdWJtaXR0aW5nIGZvcm1zPC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KPGZvcm0gYWN0aW9uPSI/IiBuYW1lPWY+CiA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1xIHZhbHVlPSImIzExMDU7JiM2NjU2MDsmIzExOTA4MzvnYyI+PGJyPgo8L2Zvcm0+CjxzY3JpcHQ+CmlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKfQoKaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoMCwgNCkgPT0gImZpbGUiKSB7CgogICAgaWYgKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgPT0gLTEpIHsKICAgICAgICBkb2N1bWVudC5mLnEudmFsdWUgKz0gIlx1MDMyNyI7IC8vIGNlZGlsbGEgZm9yICdjJwogICAgICAgIGRvY3VtZW50LmYuc3VibWl0KCk7CgogICAgfSBlbHNlIHsKICAgICAgICBpZiAodW5lc2NhcGUoZG9jdW1lbnQuVVJMLnN1YnN0cmluZyhkb2N1bWVudC5VUkwuaW5kZXhPZignPycpKzEsIGRvY3VtZW50LlVSTC5sZW5ndGgpKSA9PSB1bmVzY2FwZSgicT0lMjYlMjMxMTA1JTNCJTI2JTIzNjY1NjAlM0IlMjYlMjMxMTkwODMlM0IlRTdjJTI2JTIzODA3JTNCIikpCiAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCI8cD5TdWNjZXNzPC9wPiIpOwogICAgICAgIGVsc2UKICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoIjxwPkZhaWx1cmUsIHF1ZXJ5IGlzICIgKyBkb2N1bWVudC5VUkwuc3Vic3RyaW5nKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykrMSwgZG9jdW1lbnQuVVJMLmxlbmd0aCkgKyAiPC9wPiIpOwogICAgICAgIAogICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICB9Cgp9IGVsc2UgewoKICAgIGRvY3VtZW50LndyaXRlKCI8cD5UaGlzIHRlc3QgZG9lc24ndCB3b3JrIGRpcmVjdGx5IGZyb20gYnVnemlsbGEsIHBsZWFzZSBzYXZlIGl0IHRvIGEgbG9jYWwgZmlsZSBmaXJzdC48L3A+Iik7Cn0KPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=