PG1ldGEgY2hhcnNldD0iZ2IyMzEyIj4KPGJvZHkgb25sb2FkPSJ0ZXN0U3R5bGVzaGVldHMoKSI+CjxzY3JpcHQ+CmlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cjwvc2NyaXB0PgoKPCEtLQogVGhpcyB0ZXN0IHVzZXMgdGhlIHdvcmQgIlNVQ0NFU1MiIHNwZWxsZWQgd2l0aCBDeXJpbGxpYyBsZXR0ZXJzICJDQ0UiLAogbWFraW5nIGRlY29kaW5nIHByb2JsZW1zIHZpc2libGUuCi0tPgoKPG9sPgo8bGk+U2NyaXB0IHdpdGggY2hhcnNldDoKPHNwYW4gaWQ9InRlc3RkaXYxIj48L3NwYW4+Lgo8bGk+TGluayByZWw9c3R5bGVzaGVldCB3aXRoIGNoYXJzZXQ6CjxzcGFuIGlkPSJ0ZXN0ZGl2MiI+PC9zcGFuPgo8bGk+U2NyaXB0IHdpdGhvdXQgY2hhcnNldDoKPHNwYW4gaWQ9InRlc3RkaXYzIj48L3NwYW4+CjxsaT5MaW5rIHJlbD1zdHlsZXNoZWV0IHdpdGhvdXQgY2hhcnNldDoKPHNwYW4gaWQ9InRlc3RkaXY0Ij48L3NwYW4+Cjwvb2w+Cgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSd0aGlzLWRvZXMtbm90LW5lZWQtdG8tZXhpc3QuanMnPjwvc2NyaXB0PgoKPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnIHNyYz0ncmVzb3VyY2VzL3ByZWxvYWRlZC11dGYtOC5qcycgY2hhcnNldD0ndXRmLTgnPjwvc2NyaXB0PgoKPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSdyZXNvdXJjZXMvcHJlbG9hZGVkLXV0Zi04LmNzcycgY2hhcnNldD0ndXRmLTgnPgoKPHNjcmlwdCBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+Cgo8c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCcgc3JjPSdyZXNvdXJjZXMvcHJlbG9hZGVkLWdiMjMxMi5qcyc+PC9zY3JpcHQ+Cgo8bGluayByZWw9J3N0eWxlc2hlZXQnIGNoYXJzZXQ9J3V0Zi04Jz4KCjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0ncmVzb3VyY2VzL3ByZWxvYWRlZC1nYjIzMTIuY3NzJz4KCjxzY3JpcHQ+CmZ1bmN0aW9uIHRlc3RTdHlsZXNoZWV0cygpCnsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0ZGl2MicpLmlubmVyVGV4dCA9IAogICAgICAgICgvU1Wns6ezp6ZTUy8udGVzdChkb2N1bWVudC5zdHlsZVNoZWV0c1swXS5jc3NSdWxlc1swXS5jc3NUZXh0KSkgPyAiU1VDQ0VTUyIgOiAiRkFJTFVSRSI7CgogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RkaXY0JykuaW5uZXJUZXh0ID0gCiAgICAgICAgKC9TVaezp7OnplNTLy50ZXN0KGRvY3VtZW50LnN0eWxlU2hlZXRzWzFdLmNzc1J1bGVzWzBdLmNzc1RleHQpKSA/ICJTVUNDRVNTIiA6ICJGQUlMVVJFIjsKfQo8L3NjcmlwdD4K