PGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KPHRpdGxlPkNoYXJzZXRzIGFuZCBzdWJtaXR0aW5nIGZvcm1zPC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KPGZvcm0gYWN0aW9uPSI/IiBuYW1lPWY+CiA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1xIHZhbHVlPSImIzExMDU7JiM2NjU2MDsmIzExOTA4MzvnYyI+PGJyPgo8L2Zvcm0+CjxzY3JpcHQ+CmlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKfQoKaWYgKGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoMCwgNCkgPT0gImZpbGUiKSB7CgogICAgaWYgKGRvY3VtZW50LlVSTC5pbmRleE9mKCc/JykgPT0gLTEpIHsKICAgICAgICBkb2N1bWVudC5mLnEudmFsdWUgKz0gIlx1MDMyNyI7IC8vIGNlZGlsbGEgZm9yICdjJwogICAgICAgIGRvY3VtZW50LmYuc3VibWl0KCk7CgogICAgfSBlbHNlIHsKICAgICAgICBpZiAodW5lc2NhcGUoZG9jdW1lbnQuVVJMLnN1YnN0cmluZyhkb2N1bWVudC5VUkwuaW5kZXhPZignPycpKzEsIGRvY3VtZW50LlVSTC5sZW5ndGgpKSA9PSB1bmVzY2FwZSgicT0lMjYlMjMxMTA1JTNCJTI2JTIzNjY1NjAlM0IlMjYlMjMxMTkwODMlM0IlRTclRTciKSkKICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoIjxwPlN1Y2Nlc3M8L3A+Iik7CiAgICAgICAgZWxzZQogICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiPHA+RmFpbHVyZSwgcXVlcnkgaXMgIiArIGRvY3VtZW50LlVSTC5zdWJzdHJpbmcoZG9jdW1lbnQuVVJMLmluZGV4T2YoJz8nKSsxLCBkb2N1bWVudC5VUkwubGVuZ3RoKSArICI8L3A+Iik7CiAgICAgICAgCiAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwogICAgfQoKfSBlbHNlIHsKCiAgICBkb2N1bWVudC53cml0ZSgiPHA+VGhpcyB0ZXN0IGRvZXNuJ3Qgd29yayBkaXJlY3RseSBmcm9tIGJ1Z3ppbGxhLCBwbGVhc2Ugc2F2ZSBpdCB0byBhIGxvY2FsIGZpbGUgZmlyc3QuPC9wPiIpOwp9Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4=