mberr · data · 2.7c767379.chunk.js_62
{
"2.7c767379.chunk.js_62": "base64:MCIsYyk7cmV0dXJuIGc9Yz4wP3krKChzPWcubGVuZ3RoKTw9Yz8iMC4iK2EuY2FsbCgiMCIsYy1zKStnOmcuc2xpY2UoMCxzLWMpKyIuIitnLnNsaWNlKHMtYykpOnkrZ319KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cigxNCksbz1yKDQzMSksYT0xLi50b1ByZWNpc2lvbjtuKG4uUCtuLkYqKGkoZnVuY3Rpb24oKXtyZXR1cm4iMSIhPT1hLmNhbGwoMSx2b2lkIDApfSl8fCFpKGZ1bmN0aW9uKCl7YS5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9QcmVjaXNpb246ZnVuY3Rpb24oZSl7dmFyIHQ9byh0aGlzLCJOdW1iZXIjdG9QcmVjaXNpb246IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiB2b2lkIDA9PT1lP2EuY2FsbCh0KTphLmNhbGwodCxlKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk51bWJlciIse0VQU0lMT046TWF0aC5wb3coMiwtNTIpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cigxNykuaXNGaW5pdGU7bihuLlMsIk51bWJlciIse2lzRmluaXRlOmZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmaShlKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk51bWJlciIse2lzSW50ZWdlcjpyKDQzMil9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk51bWJlciIse2lzTmFOOmZ1bmN0aW9uKGUpe3JldHVybiBlIT1lfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPXIoNDMyKSxvPU1hdGguYWJzO24obi5TLCJOdW1iZXIiLHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKGUpe3JldHVybiBpKGUpJiZvKGUpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiTnVtYmVyIix7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJOdW1iZXIiLHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MzApO24obi5TK24uRiooTnVtYmVyLnBhcnNlRmxvYXQhPWkpLCJOdW1iZXIiLHtwYXJzZUZsb2F0Oml9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDQyOSk7bihuLlMrbi5GKihOdW1iZXIucGFyc2VJbnQhPWkpLCJOdW1iZXIiLHtwYXJzZUludDppfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MzMpLG89TWF0aC5zcXJ0LGE9TWF0aC5hY29zaDtuKG4uUytuLkYqIShhJiY3MTA9PU1hdGguZmxvb3IoYShOdW1iZXIuTUFYX1ZBTFVFKSkmJmEoMS8wKT09MS8wKSwiTWF0aCIse2Fjb3NoOmZ1bmN0aW9uKGUpe3JldHVybihlPStlKTwxP05hTjplPjk0OTA2MjY1LjYyNDI1MTU2P01hdGgubG9nKGUpK01hdGguTE4yOmkoZS0xK28oZS0xKSpvKGUrMSkpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPU1hdGguYXNpbmg7bihuLlMrbi5GKiEoaSYmMS9pKDApPjApLCJNYXRoIix7YXNpbmg6ZnVuY3Rpb24gZSh0KXtyZXR1cm4gaXNGaW5pdGUodD0rdCkmJjAhPXQ/dDwwPy1lKC10KTpNYXRoLmxvZyh0K01hdGguc3FydCh0KnQrMSkpOnR9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9TWF0aC5hdGFuaDtuKG4uUytuLkYqIShpJiYxL2koLTApPDApLCJNYXRoIix7YXRhbmg6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PShlPStlKT9lOk1hdGgubG9nKCgxK2UpLygxLWUpKS8yfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPXIoMjYwKTtuKG4uUywiTWF0aCIse2NicnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZT0rZSkqTWF0aC5wb3coTWF0aC5hYnMoZSksMS8zKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHtjbHozMjpmdW5jdGlvbihlKXtyZXR1cm4oZT4+Pj0wKT8zMS1NYXRoLmZsb29yKE1hdGgubG9nKGUrLjUpKk1hdGguTE9HMkUpOjMyfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPU1hdGguZXhwO24obi5TLCJNYXRoIix7Y29zaDpmdW5jdGlvbihlKXtyZXR1cm4oaShlPStlKStpKC1lKSkvMn19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDI2MSk7bihuLlMrbi5GKihpIT1NYXRoLmV4cG0xKSwiTWF0aCIse2V4cG0xOml9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHtmcm91bmQ6cig3OTkpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDI2MCksaT1NYXRoLnBvdyxvPWkoMiwtNTIpLGE9aSgyLC0yMykscz1pKDIsMTI3KSooMi1hKSx1PWkoMiwtMTI2KTtlLmV4cG9ydHM9TWF0aC5mcm91bmR8fGZ1bmN0aW9uKGUpe3ZhciB0LHIsaT1NYXRoLmFicyhlKSxjPW4oZSk7cmV0dXJuIGk8dT9jKihpL3UvYSsxL28tMS9vKSp1KmE6KHI9KHQ9KDErYS9vKSppKS0odC1pKSk+c3x8ciE9cj9jKigxLzApOmMqcn19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9TWF0aC5hYnM7bihuLlMsIk1hdGgiLHtoeXBvdDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcixuLG89MCxhPTAscz1hcmd1bWVudHMubGVuZ3RoLHU9MDthPHM7KXU8KHI9aShhcmd1bWVudHNbYSsrXSkpPyhvPW8qKG49dS9yKSpuKzEsdT1yKTpvKz1yPjA/KG49ci91KSpuOnI7cmV0dXJuIHU9PT0xLzA/MS8wOnUqTWF0aC5zcXJ0KG8pfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPU1hdGguaW11bDtuKG4uUytuLkYqcigxNCkoZnVuY3Rpb24oKXtyZXR1cm4tNSE9aSg0Mjk0OTY3Mjk1LDUpfHwyIT1pLmxlbmd0aH0pLCJNYXRoIix7aW11bDpmdW5jdGlvbihlLHQpe3ZhciByPStlLG49K3QsaT02NTUzNSZyLG89NjU1MzUmbjtyZXR1cm4gMHxpKm8rKCg2NTUzNSZyPj4+MTYpKm8raSooNjU1MzUmbj4+PjE2KTw8MTY+Pj4wKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHtsb2cxMDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkqTWF0aC5MT0cxMEV9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJNYXRoIix7bG9nMXA6cig0MzMpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJNYXRoIix7bG9nMjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5MTjJ9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJNYXRoIix7c2lnbjpyKDI2MCl9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDI2MSksbz1NYXRoLmV4cDtuKG4uUytuLkYqcigxNCkoZnVuY3Rpb24oKXtyZXR1cm4tMmUtMTchPSFNYXRoLnNpbmgoLTJlLTE3KX0pLCJNYXRoIix7c2luaDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5hYnMoZT0rZSk8MT8oaShlKS1pKC1lKSkvMjoobyhlLTEpLW8oLWUtMSkpKihNYXRoLkUvMil9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cigyNjEpLG89TWF0aC5leHA7bihuLlMsIk1hdGgiLHt0YW5oOmZ1bmN0aW9uKGUpe3ZhciB0PWkoZT0rZSkscj1pKC1lKTtyZXR1cm4gdD09MS8wPzE6cj09MS8wPy0xOih0LXIpLyhvKGUpK28oLWUpKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHt0cnVuYzpmdW5jdGlvbihlKXtyZXR1cm4oZT4wP01hdGguZmxvb3I6TWF0aC5jZWlsKShlKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDk2KSxvPVN0cmluZy5mcm9tQ2hhckNvZGUsYT1TdHJpbmcuZnJvbUNvZGVQb2ludDtuKG4uUytuLkYqKCEhYSYmMSE9YS5sZW5ndGgpLCJTdHJpbmciLHtmcm9tQ29kZVBvaW50OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPVtdLG49YXJndW1lbnRzLmxlbmd0aCxhPTA7bj5hOyl7aWYodD0rYXJndW1lbnRzW2ErK10saSh0LDExMTQxMTEpIT09dCl0aHJvdyBSYW5nZUVycm9yKHQrIiBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50Iik7ci5wdXNoKHQ8NjU1MzY/byh0KTpvKDU1Mjk2KygodC09NjU1MzYpPj4xMCksdCUxMDI0KzU2MzIwKSl9cmV0dXJuIHIuam9pbigiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig1MSksbz1yKDIzKTtuKG4uUywiU3RyaW5nIix7cmF3OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1pKGUucmF3KSxyPW8odC5sZW5ndGgpLG49YXJndW1lbnRzLmxlbmd0aCxhPVtdLHM9MDtyPnM7KWEucHVzaChTdHJpbmcodFtzKytdKSksczxuJiZhLnB1c2goU3RyaW5nKGFyZ3VtZW50c1tzXSkpO3JldHVybiBhLmpvaW4oIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoMTExKSgidHJpbSIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcywzKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDI2MikoITApO3IoMjYzKShTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24oZSl7dGhpcy5fdD1TdHJpbmcoZSksdGhpcy5faT0wfSxmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5fdCxyPXRoaXMuX2k7cmV0dXJuIHI+PXQubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KGU9bih0LHIpLHRoaXMuX2krPWUubGVuZ3RoLHt2YWx1ZTplLGRvbmU6ITF9KX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDI2MikoITEpO24obi5QLCJTdHJpbmciLHtjb2RlUG9pbnRBdDpmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzLGUpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDIzKSxvPXIoMjY0KSxhPSIiLmVuZHNXaXRoO24obi5QK24uRipyKDI2NikoImVuZHNXaXRoIiksIlN0cmluZyIse2VuZHNXaXRoOmZ1bmN0aW9uKGUpe3ZhciB0PW8odGhpcyxlLCJlbmRzV2l0aCIpLHI9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbj1pKHQubGVuZ3RoKSxzPXZvaWQgMD09PXI/bjpNYXRoLm1pbihpKHIpLG4pLHU9U3RyaW5nKGUpO3JldHVybiBhP2EuY2FsbCh0LHUscyk6dC5zbGljZShzLXUubGVuZ3RoLHMpPT09dX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cigyNjQpO24obi5QK24uRipyKDI2NikoImluY2x1ZGVzIiksIlN0cmluZyIse2luY2x1ZGVzOmZ1bmN0aW9uKGUpe3JldHVybiEhfmkodGhpcyxlLCJpbmNsdWRlcyIpLmluZGV4T2YoZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5QLCJTdHJpbmciLHtyZXBlYXQ6cigyNTkpfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoMjMpLG89cigyNjQpLGE9IiIuc3RhcnRzV2l0aDtuKG4uUCtuLkYqcigyNjYpKCJzdGFydHNXaXRoIiksIlN0cmluZyIse3N0YXJ0c1dpdGg6ZnVuY3Rpb24oZSl7dmFyIHQ9byh0aGlzLGUsInN0YXJ0c1dpdGgiKSxyPWkoTWF0aC5taW4oYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsdC5sZW5ndGgpKSxuPVN0cmluZyhlKTtyZXR1cm4gYT9hLmNhbGwodCxuLHIpOnQuc2xpY2UocixyK24ubGVuZ3RoKT09PW59fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImFuY2hvciIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHRoaXMsImEiLCJuYW1lIix0KX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQ1KSgiYmlnIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLCJiaWciLCIiLCIiKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQ1KSgiYmxpbmsiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImJvbGQiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsImIiLCIiLCIiKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQ1KSgiZml4ZWQiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInR0IiwiIiwiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImZvbnRjb2xvciIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHRoaXMsImZvbnQiLCJjb2xvciIsdCl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImZvbnRzaXplIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUodGhpcywiZm9udCIsInNpemUiLHQpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJpdGFsaWNzIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLCJpIiwiIiwiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImxpbmsiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSh0aGlzLCJhIiwiaHJlZiIsdCl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoInNtYWxsIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLCJzbWFsbCIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJzdHJpa2UiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInN0cmlrZSIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJzdWIiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInN1YiIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJzdXAiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInN1cCIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiRGF0ZSIse25vdzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDM2KSxvPXIoODIpO24obi5QK24uRipyKDE0KShmdW5jdGlvbigpe3JldHVybiBudWxsIT09bmV3IERhdGUoTmFOKS50b0pTT04oKXx8MSE9PURhdGUucHJvdG90eXBlLnRvSlNPTi5jYWxsKHt0b0lTT1N0cmluZzpmdW5jdGlvbigpe3JldHVybiAxfX0pfSksIkRhdGUiLHt0b0pTT046ZnVuY3Rpb24oZSl7dmFyIHQ9aSh0aGlzKSxyPW8odCk7cmV0dXJuIm51bWJlciIhPXR5cGVvZiByfHxpc0Zpbml0ZShyKT90LnRvSVNPU3RyaW5nKCk6bnVsbH19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDgzNCk7bihuLlArbi5GKihEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZyE9PWkpLCJEYXRlIix7dG9JU09TdHJpbmc6aX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTQpLGk9RGF0ZS5wcm90b3R5cGUuZ2V0VGltZSxvPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nLGE9ZnVuY3Rpb24oZSl7cmV0dXJuIGU+OT9lOiIwIitlfTtlLmV4cG9ydHM9bihmdW5jdGlvbigpe3JldHVybiIwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVoiIT1vLmNhbGwobmV3IERhdGUoLTVlMTMtMSkpfSl8fCFuKGZ1bmN0aW9uKCl7by5jYWxsKG5ldyBEYXRlKE5hTikpfSk/ZnVuY3Rpb24oKXtpZighaXNGaW5pdGUoaS5jYWxsKHRoaXMpKSl0aHJvdyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTt2YXIgZT10aGlzLHQ9ZS5nZXRVVENGdWxsWWVhcigpLHI9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSxuPXQ8MD8iLSI6dD45OTk5PyIrIjoiIjtyZXR1cm4gbisoIjAwMDAwIitNYXRoLmFicyh0KSkuc2xpY2Uobj8tNjotNCkrIi0iK2EoZS5nZXRVVENNb250aCgpKzEpKyItIithKGUuZ2V0VVRDRGF0ZSgpKSsiVCIrYShlLmdldFVUQ0hvdXJzKCkpKyI6IithKGUuZ2V0VVRDTWludXRlcygpKSsiOiIrYShlLmdldFVUQ1NlY29uZHMoKSkrIi4iKyhyPjk5P3I6IjAiK2EocikpKyJaIn06b30sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPURhdGUucHJvdG90eXBlLGk9bi50b1N0cmluZyxvPW4uZ2V0VGltZTtuZXcgRGF0ZShOYU4pKyIiIT0iSW52YWxpZCBEYXRlIiYmcig0OSkobiwidG9TdHJpbmciLGZ1bmN0aW9uKCl7dmFyIGU9by5jYWxsKHRoaXMpO3JldHVybiBlPT09ZT9pLmNhbGwodGhpcyk6IkludmFsaWQgRGF0ZSJ9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMjEpKCJ0b1ByaW1pdGl2ZSIpLGk9RGF0ZS5wcm90b3R5cGU7biBpbiBpfHxyKDU0KShpLG4scig4MzcpKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyKSxpPXIoODIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZigic3RyaW5nIiE9PWUmJiJudW1iZXIiIT09ZSYmImRlZmF1bHQiIT09ZSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCBoaW50Iik7cmV0dXJuIGkobih0aGlzKSwibnVtYmVyIiE9ZSl9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiQXJyYXkiLHtpc0FycmF5OnIoMTgxKX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTgpLGk9cigyKSxvPXIoMzYpLGE9cig0MzUpLHM9cigyNjcpLHU9cigyMyksYz1yKDI2OCksZj1yKDI2OSk7aShpLlMraS5GKiFyKDE4MikoZnVuY3Rpb24oZSl7QXJyYXkuZnJvbShlKX0pLCJBcnJheSIse2Zyb206ZnVuY3Rpb24oZSl7dmFyIHQscixpLGwsaD1vKGUpLHA9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxkPWFyZ3VtZW50cy5sZW5ndGgseT1kPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnPXZvaWQgMCE9PXksdj0wLG09ZihoKTtpZihnJiYoeT1uKHksZD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMikpLHZvaWQgMD09bXx8cD09QXJyYXkmJnMobSkpZm9yKHI9bmV3IHAodD11KGgubGVuZ3RoKSk7dD52O3YrKyljKHIsdixnP3koaFt2XSx2KTpoW3ZdKTtlbHNlIGZvcihsPW0uY2FsbChoKSxyPW5ldyBwOyEoaT1sLm5leHQoKSkuZG9uZTt2KyspYyhyLHYsZz9hKGwseSxbaS52YWx1ZSx2XSwhMCk6aS52YWx1ZSk7cmV0dXJuIHIubGVuZ3RoPXYscn19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cigyNjgpO24obi5TK24uRipyKDE0KShmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIShBcnJheS5vZi5jYWxsKGUpaW5zdGFuY2VvZiBlKX0pLCJBcnJheSIse29mOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAsdD1hcmd1bWVudHMubGVuZ3RoLHI9bmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXkpKHQpO3Q+ZTspaShyLGUsYXJndW1lbnRzW2UrK10pO3JldHVybiByLmxlbmd0aD10LHJ9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNTEpLG89W10uam9pbjtuKG4uUCtuLkYqKHIoMTQ1KSE9T2JqZWN0fHwhcig1NSkobykpLCJBcnJheSIse2pvaW46ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY2FsbChpKHRoaXMpLHZvaWQgMD09PWU/IiwiOmUpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDI1MSksbz1yKDcwKSxhPXIoOTYpLHM9cigyMyksdT1bXS5zbGljZTtuKG4uUCtuLkYqcigxNCkoZnVuY3Rpb24oKXtpJiZ1LmNhbGwoaSl9KSwiQXJyYXkiLHtzbGljZTpmdW5jdGlvbihlLHQpe3ZhciByPXModGhpcy5sZW5ndGgpLG49byh0aGlzKTtpZih0PXZvaWQgMD09PXQ/cjp0LCJBcnJheSI9PW4pcmV0dXJuIHUuY2FsbCh0aGlzLGUsdCk7Zm9yKHZhciBpPWEoZSxyKSxjPWEodCxyKSxmPXMoYy1pKSxsPW5ldyBBcnJheShmKSxoPTA7aDxmO2grKylsW2hdPSJTdHJpbmciPT1uP3RoaXMuY2hhckF0KGkraCk6dGhpc1tpK2hdO3JldHVybiBsfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDU5KSxvPXIoMzYpLGE9cigxNCkscz1bXS5zb3J0LHU9WzEsMiwzXTtuKG4uUCtuLkYqKGEoZnVuY3Rpb24oKXt1LnNvcnQodm9pZCAwKX0pfHwhYShmdW5jdGlvbigpe3Uuc29ydChudWxsKX0pfHwhcig1NSkocykpLCJBcnJheSIse3NvcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/cy5jYWxsKG8odGhpcykpOnMuY2FsbChvKHRoaXMpLGkoZSkpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDYzKSgwKSxvPXIoNTUpKFtdLmZvckVhY2gsITApO24obi5QK24uRiohbywiQXJyYXkiLHtmb3JFYWNoOmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHNbMV0pfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMyksaT1yKDE4MSksbz1yKDIxKSgic3BlY2llcyIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gaShlKSYmKCJmdW5jdGlvbiIhPXR5cGVvZih0PWUuY29uc3RydWN0b3IpfHx0IT09QXJyYXkmJiFpKHQucHJvdG90eXBlKXx8KHQ9dm9pZCAwKSxuKHQpJiZudWxsPT09KHQ9dFtvXSkmJih0PXZvaWQgMCkpLHZvaWQgMD09PXQ/QXJyYXk6dH19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNjMpKDEpO24obi5QK24uRiohcig1NSkoW10ubWFwLCEwKSwiQXJyYXkiLHttYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNjMpKDIpO24obi5QK24uRiohcig1NSkoW10uZmlsdGVyLCEwKSwiQXJyYXkiLHtmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNjMpKDMpO24obi5QK24uRiohcig1NSkoW10uc29tZSwhMCksIkFycmF5Iix7c29tZTpmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzLGUsYXJndW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MykoNCk7bihuLlArbi5GKiFyKDU1KShbXS5ldmVyeSwhMCksIkFycmF5Iix7ZXZlcnk6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNDM3KTtuKG4uUCtuLkYqIXIoNTUpKFtdLnJlZHVjZSwhMCksIkFycmF5Iix7cmVkdWNlOmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50c1sxXSwhMSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNDM3KTtuKG4uUCtuLkYqIXIoNTUpKFtdLnJlZHVjZVJpZ2h0LCEwKSwiQXJyYXkiLHtyZWR1Y2VSaWdodDpmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzLGUsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHNbMV0sITApfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDE3OSkoITEpLG89W10uaW5kZXhPZixhPSEhbyYmMS9bMV0uaW5kZXhPZigxLC0wKTwwO24obi5QK24uRiooYXx8IXIoNTUpKG8pKSwiQXJyYXkiLHtpbmRleE9mOmZ1bmN0aW9uKGUpe3JldHVybiBhP28uYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwOmkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNTEpLG89cig2MCksYT1yKDIzKSxzPVtdLmxhc3RJbmRleE9mLHU9ISFzJiYxL1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwO24obi5QK24uRioodXx8IXIoNTUpKHMpKSwiQXJyYXkiLHtsYXN0SW5kZXhPZjpmdW5jdGlvbihlKXtpZih1KXJldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDt2YXIgdD1pKHRoaXMpLHI9YSh0Lmxlbmd0aCksbj1yLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKG49TWF0aC5taW4obixvKGFyZ3VtZW50c1sxXSkpKSxuPDAmJihuPXIrbik7bj49MDtuLS0paWYobiBpbiB0JiZ0W25dPT09ZSlyZXR1cm4gbnx8MDtyZXR1cm4tMX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlAsIkFycmF5Iix7Y29weVdpdGhpbjpyKDQzOCl9KSxyKDEwMCkoImNvcHlXaXRoaW4iKX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlAsIkFycmF5Iix7ZmlsbDpyKDI3MCl9KSxyKDEwMCkoImZpbGwiKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MykoNSksbz0hMDsiZmluZCJpbltdJiZBcnJheSgxKS5maW5kKGZ1bmN0aW9uKCl7bz0hMX0pLG4obi5QK24uRipvLCJBcnJheSIse2ZpbmQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxyKDEwMCkoImZpbmQiKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MykoNiksbz0iZmluZEluZGV4IixhPSEwO28gaW5bXSYmQXJyYXkoMSlbb10oZnVuY3Rpb24oKXthPSExfSksbihuLlArbi5GKmEsIkFycmF5Iix7ZmluZEluZGV4OmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSkscigxMDApKG8pfSxmdW5jdGlvbihlLHQscil7cigxMTIpKCJBcnJheSIpfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxNyksaT1yKDI1OCksbz1yKDI4KS5mLGE9cig5OCkuZixzPXIoMjY1KSx1PXIoMTgzKSxjPW4uUmVnRXhwLGY9YyxsPWMucHJvdG90eXBlLGg9L2EvZyxwPS9hL2csZD1uZXcgYyhoKSE9PWg7aWYocigyOSkmJighZHx8cigxNCkoZnVuY3Rpb24oKXtyZXR1cm4gcFtyKDIxKSgibWF0Y2giKV09ITEsYyhoKSE9aHx8YyhwKT09cHx8Ii9hL2kiIT1jKGgsImkiKX0pKSl7Yz1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMgaW5zdGFuY2VvZiBjLG49cyhlKSxvPXZvaWQgMD09PXQ7cmV0dXJuIXImJm4mJmUuY29uc3RydWN0b3I9PT1jJiZvP2U6aShkP25ldyBmKG4mJiFvP2Uuc291cmNlOmUsdCk6Zigobj1lIGluc3RhbmNlb2YgYyk/ZS5zb3VyY2U6ZSxuJiZvP3UuY2FsbChlKTp0KSxyP3RoaXM6bCxjKX07Zm9yKHZhciB5PWZ1bmN0aW9uKGUpe2UgaW4gY3x8byhjLGUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZltlXX0sc2V0OmZ1bmN0aW9uKHQpe2ZbZV09dH19KX0sZz1hKGYpLHY9MDtnLmxlbmd0aD52Oyl5KGdbdisrXSk7bC5jb25zdHJ1Y3Rvcj1jLGMucHJvdG90eXBlPWwscig0OSkobiwiUmVnRXhwIixjKX1yKDExMikoIlJlZ0V4cCIpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDQyKTt2YXIgbj1yKDEyKSxpPXIoMTgzKSxvPXIoMjkpLGE9Ly4vLnRvU3RyaW5nLHM9ZnVuY3Rpb24oZSl7cig0OSkoUmVnRXhwLnByb3RvdHlwZSwidG9TdHJpbmciLGUsITApfTtyKDE0KShmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9YS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSk/cyhmdW5jdGlvbigpe3ZhciBlPW4odGhpcyk7cmV0dXJuIi8iLmNvbmNhdChlLnNvdXJjZSwiLyIsImZsYWdzImluIGU/ZS5mbGFnczohbyYmZSBpbnN0YW5jZW9mIFJlZ0V4cD9pLmNhbGwoZSk6dm9pZCAwKX0pOiJ0b1N0cmluZyIhPWEubmFtZSYmcyhmdW5jdGlvbigpe3JldHVybiBhLmNhbGwodGhpcyl9KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyKSxpPXIoMjMpLG89cigyNzIpLGE9cigxODQpO3IoMTg1KSgibWF0Y2giLDEsZnVuY3Rpb24oZSx0LHIscyl7cmV0dXJuW2Z1bmN0aW9uKHIpe3ZhciBuPWUodGhpcyksaT12b2lkIDA9PXI/dm9pZCAwOnJbdF07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKHIsbik6bmV3IFJlZ0V4cChyKVt0XShTdHJpbmcobikpfSxmdW5jdGlvbihlKXt2YXIgdD1zKHIsZSx0aGlzKTtpZih0LmRvbmUpcmV0dXJuIHQudmFsdWU7dmFyIHU9bihlKSxjPVN0cmluZyh0aGlzKTtpZighdS5nbG9iYWwpcmV0dXJuIGEodSxjKTt2YXIgZj11LnVuaWNvZGU7dS5sYXN0SW5kZXg9MDtmb3IodmFyIGwsaD1bXSxwPTA7bnVsbCE9PShsPWEodSxjKSk7KXt2YXIgZD1TdHJpbmcobFswXSk7aFtwXT1kLCIiPT09ZCYmKHUubGFzdEluZGV4PW8oYyxpKHUubGFzdEluZGV4KSxmKSkscCsrfXJldHVybiAwPT09cD9udWxsOmh9XX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTIpLGk9cigzNiksbz1yKDIzKSxhPXIoNjApLHM9cigyNzIpLHU9cigxODQpLGM9TWF0aC5tYXgsZj1NYXRoLm1pbixsPU1hdGguZmxvb3IsaD0vXCQoWyQmYCddfFxkXGQ/fDxbXj5dKj4pL2cscD0vXCQoWyQmYCddfFxkXGQ/KS9nO3IoMTg1KSgicmVwbGFjZSIsMixmdW5jdGlvbihlLHQscixkKXtyZXR1cm5bZnVuY3Rpb24obixpKXt2YXIgbz1lKHRoaXMpLGE9dm9pZCAwPT1uP3ZvaWQgMDpuW3RdO3JldHVybiB2b2lkIDAhPT1hP2EuY2FsbChuLG8saSk6ci5jYWxsKFN0cmluZyhvKSxuLGkpfSxmdW5jdGlvbihlLHQpe3ZhciBpPWQocixlLHRoaXMsdCk7aWYoaS5kb25lKXJldHVybiBpLnZhbHVlO3ZhciBsPW4oZSksaD1TdHJpbmcodGhpcykscD0iZnVuY3Rpb24iPT09dHlwZW9mIHQ7cHx8KHQ9U3RyaW5nKHQpKTt2YXIgZz1sLmdsb2JhbDtpZihnKXt2YXIgdj1sLnVuaWNvZGU7bC5sYXN0SW5kZXg9MH1mb3IodmFyIG09W107Oyl7dmFyIGI9dShsLGgpO2lmKG51bGw9PT1iKWJyZWFrO2lmKG0ucHVzaChiKSwhZylicmVhazsiIj09PVN0cmluZyhiWzBdKSYmKGwubGFzdEluZGV4PXMoaCxvKGwubGFzdEluZGV4KSx2KSl9Zm9yKHZhciBfLFM9IiIsRT0wLHc9MDt3PG0ubGVuZ3RoO3crKyl7Yj1tW3ddO2Zvcih2YXIgVD1TdHJpbmcoYlswXSksQT1jKGYoYShiLmluZGV4KSxoLmxlbmd0aCksMCksQz1bXSx4PTE7eDxiLmxlbmd0aDt4KyspQy5wdXNoKHZvaWQgMD09PShfPWJbeF0pP186U3RyaW5nKF8pKTt2YXIgST1iLmdyb3VwcztpZihwKXt2YXIgaz1bVF0uY29uY2F0KEMsQSxoKTt2b2lkIDAhPT1JJiZrLnB1c2goSSk7dmFyIE89U3RyaW5nKHQuYXBwbHkodm9pZCAwLGspKX1lbHNlIE89eShULGgsQSxDLEksdCk7QT49RSYmKFMrPWguc2xpY2UoRSxBKStPLEU9QStULmxlbmd0aCl9cmV0dXJuIFMraC5zbGljZShFKX1dO2Z1bmN0aW9uIHkoZSx0LG4sbyxhLHMpe3ZhciB1PW4rZS5sZW5ndGgsYz1vLmxlbmd0aCxmPXA7cmV0dXJuIHZvaWQgMCE9PWEmJihhPWkoYSksZj1oKSxyLmNhbGwocyxmLGZ1bmN0aW9uKHIsaSl7dmFyIHM7c3dpdGNoKGkuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBlO2Nhc2UiYCI6cmV0dXJuIHQuc2xpY2UoMCxuKTtjYXNlIiciOnJldHVybiB0LnNsaWNlKHUpO2Nhc2UiPCI6cz1hW2kuc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIGY9K2k7aWYoMD09PWYpcmV0dXJuIHI7aWYoZj5jKXt2YXIgaD1sKGYvMTApO3JldHVybiAwPT09aD9yOmg8PWM/dm9pZCAwPT09b1toLTFdP2kuY2hhckF0KDEpOm9baC0xXStpLmNoYXJBdCgxKTpyfXM9b1tmLTFdfXJldHVybiB2b2lkIDA9PT1zPyIiOnN9KX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyKSxpPXIoNDI3KSxvPXIoMTg0KTtyKDE4NSkoInNlYXJjaCIsMSxmdW5jdGlvbihlLHQscixhKXtyZXR1cm5bZnVuY3Rpb24ocil7dmFyIG49ZSh0aGlzKSxpPXZvaWQgMD09cj92b2lkIDA6clt0XTtyZXR1cm4gdm9pZCAwIT09aT9pLmNhbGwocixuKTpuZXcgUmVnRXhwKHIpW3RdKFN0cmluZyhuKSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWEocixlLHRoaXMpO2lmKHQuZG9uZSlyZXR1cm4gdC52YWx1ZTt2YXIgcz1uKGUpLHU9U3RyaW5nKHRoaXMpLGM9cy5sYXN0SW5kZXg7aShjLDApfHwocy5sYXN0SW5kZXg9MCk7dmFyIGY9byhzLHUpO3JldHVybiBpKHMubGFzdEluZGV4LGMpfHwocy5sYXN0SW5kZXg9YyksbnVsbD09PWY/LTE6Zi5pbmRleH1dfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyNjUpLGk9cigxMiksbz1yKDE0OSksYT1yKDI3Mikscz1yKDIzKSx1PXIoMTg0KSxjPXIoMjcxKSxmPXIoMTQpLGw9TWF0aC5taW4saD1bXS5wdXNoLHA9IWYoZnVuY3Rpb24oKXtSZWdFeHAoNDI5NDk2NzI5NSwieSIpfSk7cigxODUpKCJzcGxpdCIsMixmdW5jdGlvbihlLHQscixmKXt2YXIgZDtyZXR1cm4gZD0iYyI9PSJhYmJjIi5zcGxpdCgvKGIpKi8pWzFdfHw0IT0idGVzdCIuc3BsaXQoLyg/OikvLC0xKS5sZW5ndGh8fDIhPSJhYiIuc3BsaXQoLyg/OmFiKSovKS5sZW5ndGh8fDQhPSIuIi5zcGxpdCgvKC4/KSguPykvKS5sZW5ndGh8fCIuIi5zcGxpdCgvKCkoKS8pLmxlbmd0aD4xfHwiIi5zcGxpdCgvLj8vKS5sZW5ndGg/ZnVuY3Rpb24oZSx0KXt2YXIgaT1TdHJpbmcodGhpcyk7aWYodm9pZCAwPT09ZSYmMD09PXQpcmV0dXJuW107aWYoIW4oZSkpcmV0dXJuIHIuY2FsbChpLGUsdCk7Zm9yKHZhciBvLGEscyx1PVtdLGY9KGUuaWdub3JlQ2FzZT8iaSI6IiIpKyhlLm11bHRpbGluZT8ibSI6IiIpKyhlLnVuaWNvZGU/InUiOiIiKSsoZS5zdGlja3k/InkiOiIiKSxsPTAscD12b2lkIDA9PT10PzQyOTQ5NjcyOTU6dD4+PjAsZD1uZXcgUmVnRXhwKGUuc291cmNlLGYrImciKTsobz1jLmNhbGwoZCxpKSkmJiEoKGE9ZC5sYXN0SW5kZXgpPmwmJih1LnB1c2goaS5zbGljZShsLG8uaW5kZXgpKSxvLmxlbmd0aD4xJiZvLmluZGV4PGkubGVuZ3RoJiZoLmFwcGx5KHUsby5zbGljZSgxKSkscz1vWzBdLmxlbmd0aCxsPWEsdS5sZW5ndGg+PXApKTspZC5sYXN0SW5kZXg9PT1vLmluZGV4JiZkLmxhc3RJbmRleCsrO3JldHVybiBsPT09aS5sZW5ndGg/IXMmJmQudGVzdCgiIil8fHUucHVzaCgiIik6dS5wdXNoKGkuc2xpY2UobCkpLHUubGVuZ3RoPnA/dS5zbGljZSgwLHApOnV9OiIwIi5zcGxpdCh2b2lkIDAsMCkubGVuZ3RoP2Z1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWUmJjA9PT10P1tdOnIuY2FsbCh0aGlzLGUsdCl9OnIsW2Z1bmN0aW9uKHIsbil7dmFyIGk9ZSh0aGlzKSxvPXZvaWQgMD09cj92b2lkIDA6clt0XTtyZXR1cm4gdm9pZCAwIT09bz9vLmNhbGwocixpLG4pOmQuY2FsbChTdHJpbmcoaSkscixuKX0sZnVuY3Rpb24oZSx0KXt2YXIgbj1mKGQsZSx0aGlzLHQsZCE9PXIpO2lmKG4uZG9uZSlyZXR1cm4gbi52YWx1ZTt2YXIgYz1pKGUpLGg9U3RyaW5nKHRoaXMpLHk9byhjLFJlZ0V4cCksZz1jLnVuaWNvZGUsdj0oYy5pZ25vcmVDYXNlPyJpIjoiIikrKGMubXVsdGlsaW5lPyJtIjoiIikrKGMudW5pY29kZT8idSI6IiIpKyhwPyJ5IjoiZyIpLG09bmV3IHkocD9jOiJeKD86IitjLnNvdXJjZSsiKSIsdiksYj12b2lkIDA9PT10PzQyOTQ5NjcyOTU6dD4+PjA7aWYoMD09PWIpcmV0dXJuW107aWYoMD09PWgubGVuZ3RoKXJldHVybiBudWxsPT09dShtLGgpP1toXTpbXTtmb3IodmFyIF89MCxTPTAsRT1bXTtTPGgubGVuZ3RoOyl7bS5sYXN0SW5kZXg9cD9TOjA7dmFyIHcsVD11KG0scD9oOmguc2xpY2UoUykpO2lmKG51bGw9PT1UfHwodz1sKHMobS5sYXN0SW5kZXgrKHA/MDpTKSksaC5sZW5ndGgpKT09PV8pUz1hKGgsUyxnKTtlbHNle2lmKEUucHVzaChoLnNsaWNlKF8sUykpLEUubGVuZ3RoPT09YilyZXR1cm4gRTtmb3IodmFyIEE9MTtBPD1ULmxlbmd0aC0xO0ErKylpZihFLnB1c2goVFtBXSksRS5sZW5ndGg9PT1iKXJldHVybiBFO1M9Xz13fX1yZXR1cm4gRS5wdXNoKGguc2xpY2UoXykpLEV9XX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxNyksaT1yKDI1MCkuc2V0LG89bi5NdXRhdGlvbk9ic2VydmVyfHxuLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsYT1uLnByb2Nlc3Mscz1uLlByb21pc2UsdT0icHJvY2VzcyI9PXIoNzApKGEpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBlLHQscixjPWZ1bmN0aW9uKCl7dmFyIG4saTtmb3IodSYmKG49YS5kb21haW4pJiZuLmV4aXQoKTtlOyl7aT1lLmZuLGU9ZS5uZXh0O3RyeXtpKCl9Y2F0Y2gobyl7dGhyb3cgZT9yKCk6dD12b2lkIDAsb319dD12b2lkIDAsbiYmbi5lbnRlcigpfTtpZih1KXI9ZnVuY3Rpb24oKXthLm5leHRUaWNrKGMpfTtlbHNlIGlmKCFvfHxuLm5hdmlnYXRvciYmbi5uYXZpZ2F0b3Iuc3RhbmRhbG9uZSlpZihzJiZzLnJlc29sdmUpe3ZhciBmPXMucmVzb2x2ZSh2b2lkIDApO3I9ZnVuY3Rpb24oKXtmLnRoZW4oYyl9fWVsc2Ugcj1mdW5jdGlvbigpe2kuY2FsbChuLGMpfTtlbHNle3ZhciBsPSEwLGg9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO25ldyBvKGMpLm9ic2VydmUoaCx7Y2hhcmFjdGVyRGF0YTohMH0pLHI9ZnVuY3Rpb24oKXtoLmRhdGE9bD0hbH19cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPXtmbjpuLG5leHQ6dm9pZCAwfTt0JiYodC5uZXh0PWkpLGV8fChlPWkscigpKSx0PWl9fX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybntlOiExLHY6ZSgpfX1jYXRjaCh0KXtyZXR1cm57ZTohMCx2OnR9fX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0NDYpLGk9cigxMDEpO2UuZXhwb3J0cz1yKDE4NykoIk1hcCIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PW4uZ2V0RW50cnkoaSh0aGlzLCJNYXAiKSxlKTtyZXR1cm4gdCYmdC52fSxzZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5kZWYoaSh0aGlzLCJNYXAiKSwwPT09ZT8wOmUsdCl9fSxuLCEwKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDQ0NiksaT1yKDEwMSk7ZS5leHBvcnRzPXIoMTg3KSgiU2V0IixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLGFyZ3VtZW50cy5sZW5ndGg+MD9hcmd1bWVudHNbMF06dm9pZCAwKX19LHthZGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmKGkodGhpcywiU2V0IiksZT0wPT09ZT8wOmUsZSl9fSxuKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPXIoMTcpLG89cig2MykoMCksYT1yKDQ5KSxzPXIoODMpLHU9cig0MjYpLGM9cig0NDcpLGY9cigxMyksbD1yKDEwMSksaD1yKDEwMSkscD0haS5BY3RpdmVYT2JqZWN0JiYiQWN0aXZlWE9iamVjdCJpbiBpLGQ9cy5nZXRXZWFrLHk9T2JqZWN0LmlzRXh0ZW5zaWJsZSxnPWMudWZzdG9yZSx2PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sbT17Z2V0OmZ1bmN0aW9uKGUpe2lmKGYoZSkpe3ZhciB0PWQoZSk7cmV0dXJuITA9PT10P2cobCh0aGlzLCJXZWFrTWFwIikpLmdldChlKTp0P3RbdGhpcy5faV06dm9pZCAwfX0sc2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGMuZGVmKGwodGhpcywiV2Vha01hcCIpLGUsdCl9fSxiPWUuZXhwb3J0cz1yKDE4NykoIldlYWtNYXAiLHYsbSxjLCEwLCEwKTtoJiZwJiYodSgobj1jLmdldENvbnN0cnVjdG9yKHYsIldlYWtNYXAiKSkucHJvdG90eXBlLG0pLHMuTkVFRD0hMCxvKFsiZGVsZXRlIiwiaGFzIiwiZ2V0Iiwic2V0Il0sZnVuY3Rpb24oZSl7dmFyIHQ9Yi5wcm90b3R5cGUscj10W2VdO2EodCxlLGZ1bmN0aW9uKHQsaSl7aWYoZih0KSYmIXkodCkpe3RoaXMuX2Z8fCh0aGlzLl9mPW5ldyBuKTt2YXIgbz10aGlzLl9mW2VdKHQsaSk7cmV0dXJuInNldCI9PWU/dGhpczpvfXJldHVybiByLmNhbGwodGhpcyx0LGkpfSl9KSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0NDcpLGk9cigxMDEpO3IoMTg3KSgiV2Vha1NldCIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7YWRkOmZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZihpKHRoaXMsIldlYWtTZXQiKSxlLCEwKX19LG4sITEsITApfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDE4OCksbz1yKDI3NCksYT1yKDEyKSxzPXIoOTYpLHU9cigyMyksYz1yKDEzKSxmPXIoMTcpLkFycmF5QnVmZmVyLGw9cigxNDkpLGg9by5BcnJheUJ1ZmZlcixwPW8uRGF0YVZpZXcsZD1pLkFCViYmZi5pc1ZpZXcseT1oLnByb3RvdHlwZS5zbGljZSxnPWkuVklFVztuKG4uRytuLlcrbi5GKihmIT09aCkse0FycmF5QnVmZmVyOmh9KSxuKG4uUytuLkYqIWkuQ09OU1RSLCJBcnJheUJ1ZmZlciIse2lzVmlldzpmdW5jdGlvbihlKXtyZXR1cm4gZCYmZChlKXx8YyhlKSYmZyBpbiBlfX0pLG4obi5QK24uVStuLkYqcigxNCkoZnVuY3Rpb24oKXtyZXR1cm4hbmV3IGgoMikuc2xpY2UoMSx2b2lkIDApLmJ5dGVMZW5ndGh9KSwiQXJyYXlCdWZmZXIiLHtzbGljZTpmdW5jdGlvbihlLHQpe2lmKHZvaWQgMCE9PXkmJnZvaWQgMD09PXQpcmV0dXJuIHkuY2FsbChhKHRoaXMpLGUpO2Zvcih2YXIgcj1hKHRoaXMpLmJ5dGVMZW5ndGgsbj1zKGUsciksaT1zKHZvaWQgMD09PXQ/cjp0LHIpLG89bmV3KGwodGhpcyxoKSkodShpLW4pKSxjPW5ldyBwKHRoaXMpLGY9bmV3IHAobyksZD0wO248aTspZi5zZXRVaW50OChkKyssYy5nZXRVaW50OChuKyspKTtyZXR1cm4gb319KSxyKDExMikoIkFycmF5QnVmZmVyIil9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5HK24uVytuLkYqIXIoMTg4KS5BQlYse0RhdGFWaWV3OnIoMjc0KS5EYXRhVmlld30pfSxmdW5jdGlvbihlLHQscil7cig3MikoIkludDgiLDEsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJVaW50OCIsMSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4pe3JldHVybiBlKHRoaXMsdCxyLG4pfX0pfSxmdW5jdGlvbihlLHQscil7cig3MikoIlVpbnQ4IiwxLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LHIsbil7cmV0dXJuIGUodGhpcyx0LHIsbil9fSwhMCl9LGZ1bmN0aW9uKGUsdCxyKXtyKDcyKSgiSW50MTYiLDIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJVaW50MTYiLDIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJJbnQzMiIsNCxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4pe3JldHVybiBlKHRoaXMsdCxyLG4pfX0pfSxmdW5jdGlvbihlLHQscil7cig3MikoIlVpbnQzMiIsNCxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4pe3JldHVybiBlKHRoaXMsdCxyLG4pfX0pfSxmdW5jdGlvbihlLHQscil7cig3MikoIkZsb2F0MzIiLDQsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJGbG9hdDY0Iiw4LGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LHIsbil7cmV0dXJuIGUodGhpcyx0LHIsbil9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig1OSksbz1yKDEyKSxhPShyKDE3KS5SZWZsZWN0fHx7fSkuYXBwbHkscz1GdW5jdGlvbi5hcHBseTtuKG4uUytuLkYqIXIoMTQpKGZ1bmN0aW9uKCl7YShmdW5jdGlvbigpe30pfSksIlJlZmxlY3QiLHthcHBseTpmdW5jdGlvbihlLHQscil7dmFyIG49aShlKSx1PW8ocik7cmV0dXJuIGE/YShuLHQsdSk6cy5jYWxsKG4sdCx1KX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDk3KSxvPXIoNTkpLGE9cigxMikscz1yKDEzKSx1PXIoMTQpLGM9cig0MjgpLGY9KHIoMTcpLlJlZmxlY3R8fHt9KS5jb25zdHJ1Y3QsbD11KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4hKGYoZnVuY3Rpb24oKXt9LFtdLGUpaW5zdGFuY2VvZiBlKX0pLGg9IXUoZnVuY3Rpb24oKXtmKGZ1bmN0aW9uKCl7fSl9KTtuKG4uUytuLkYqKGx8fGgpLCJSZWZsZWN0Iix7Y29uc3RydWN0OmZ1bmN0aW9uKGUsdCl7byhlKSxhKHQpO3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz9lOm8oYXJndW1lbnRzWzJdKTtpZihoJiYhbClyZXR1cm4gZihlLHQscik7aWYoZT09cil7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBlO2Nhc2UgMTpyZXR1cm4gbmV3IGUodFs="
}
Changelog:
{
"2020.03.29 15:17": "base64:MCIsYyk7cmV0dXJuIGc9Yz4wP3krKChzPWcubGVuZ3RoKTw9Yz8iMC4iK2EuY2FsbCgiMCIsYy1zKStnOmcuc2xpY2UoMCxzLWMpKyIuIitnLnNsaWNlKHMtYykpOnkrZ319KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cigxNCksbz1yKDQzMSksYT0xLi50b1ByZWNpc2lvbjtuKG4uUCtuLkYqKGkoZnVuY3Rpb24oKXtyZXR1cm4iMSIhPT1hLmNhbGwoMSx2b2lkIDApfSl8fCFpKGZ1bmN0aW9uKCl7YS5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9QcmVjaXNpb246ZnVuY3Rpb24oZSl7dmFyIHQ9byh0aGlzLCJOdW1iZXIjdG9QcmVjaXNpb246IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiB2b2lkIDA9PT1lP2EuY2FsbCh0KTphLmNhbGwodCxlKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk51bWJlciIse0VQU0lMT046TWF0aC5wb3coMiwtNTIpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cigxNykuaXNGaW5pdGU7bihuLlMsIk51bWJlciIse2lzRmluaXRlOmZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmaShlKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk51bWJlciIse2lzSW50ZWdlcjpyKDQzMil9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk51bWJlciIse2lzTmFOOmZ1bmN0aW9uKGUpe3JldHVybiBlIT1lfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPXIoNDMyKSxvPU1hdGguYWJzO24obi5TLCJOdW1iZXIiLHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKGUpe3JldHVybiBpKGUpJiZvKGUpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiTnVtYmVyIix7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJOdW1iZXIiLHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MzApO24obi5TK24uRiooTnVtYmVyLnBhcnNlRmxvYXQhPWkpLCJOdW1iZXIiLHtwYXJzZUZsb2F0Oml9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDQyOSk7bihuLlMrbi5GKihOdW1iZXIucGFyc2VJbnQhPWkpLCJOdW1iZXIiLHtwYXJzZUludDppfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MzMpLG89TWF0aC5zcXJ0LGE9TWF0aC5hY29zaDtuKG4uUytuLkYqIShhJiY3MTA9PU1hdGguZmxvb3IoYShOdW1iZXIuTUFYX1ZBTFVFKSkmJmEoMS8wKT09MS8wKSwiTWF0aCIse2Fjb3NoOmZ1bmN0aW9uKGUpe3JldHVybihlPStlKTwxP05hTjplPjk0OTA2MjY1LjYyNDI1MTU2P01hdGgubG9nKGUpK01hdGguTE4yOmkoZS0xK28oZS0xKSpvKGUrMSkpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPU1hdGguYXNpbmg7bihuLlMrbi5GKiEoaSYmMS9pKDApPjApLCJNYXRoIix7YXNpbmg6ZnVuY3Rpb24gZSh0KXtyZXR1cm4gaXNGaW5pdGUodD0rdCkmJjAhPXQ/dDwwPy1lKC10KTpNYXRoLmxvZyh0K01hdGguc3FydCh0KnQrMSkpOnR9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9TWF0aC5hdGFuaDtuKG4uUytuLkYqIShpJiYxL2koLTApPDApLCJNYXRoIix7YXRhbmg6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PShlPStlKT9lOk1hdGgubG9nKCgxK2UpLygxLWUpKS8yfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPXIoMjYwKTtuKG4uUywiTWF0aCIse2NicnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZT0rZSkqTWF0aC5wb3coTWF0aC5hYnMoZSksMS8zKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHtjbHozMjpmdW5jdGlvbihlKXtyZXR1cm4oZT4+Pj0wKT8zMS1NYXRoLmZsb29yKE1hdGgubG9nKGUrLjUpKk1hdGguTE9HMkUpOjMyfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPU1hdGguZXhwO24obi5TLCJNYXRoIix7Y29zaDpmdW5jdGlvbihlKXtyZXR1cm4oaShlPStlKStpKC1lKSkvMn19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDI2MSk7bihuLlMrbi5GKihpIT1NYXRoLmV4cG0xKSwiTWF0aCIse2V4cG0xOml9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHtmcm91bmQ6cig3OTkpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDI2MCksaT1NYXRoLnBvdyxvPWkoMiwtNTIpLGE9aSgyLC0yMykscz1pKDIsMTI3KSooMi1hKSx1PWkoMiwtMTI2KTtlLmV4cG9ydHM9TWF0aC5mcm91bmR8fGZ1bmN0aW9uKGUpe3ZhciB0LHIsaT1NYXRoLmFicyhlKSxjPW4oZSk7cmV0dXJuIGk8dT9jKihpL3UvYSsxL28tMS9vKSp1KmE6KHI9KHQ9KDErYS9vKSppKS0odC1pKSk+c3x8ciE9cj9jKigxLzApOmMqcn19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9TWF0aC5hYnM7bihuLlMsIk1hdGgiLHtoeXBvdDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcixuLG89MCxhPTAscz1hcmd1bWVudHMubGVuZ3RoLHU9MDthPHM7KXU8KHI9aShhcmd1bWVudHNbYSsrXSkpPyhvPW8qKG49dS9yKSpuKzEsdT1yKTpvKz1yPjA/KG49ci91KSpuOnI7cmV0dXJuIHU9PT0xLzA/MS8wOnUqTWF0aC5zcXJ0KG8pfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPU1hdGguaW11bDtuKG4uUytuLkYqcigxNCkoZnVuY3Rpb24oKXtyZXR1cm4tNSE9aSg0Mjk0OTY3Mjk1LDUpfHwyIT1pLmxlbmd0aH0pLCJNYXRoIix7aW11bDpmdW5jdGlvbihlLHQpe3ZhciByPStlLG49K3QsaT02NTUzNSZyLG89NjU1MzUmbjtyZXR1cm4gMHxpKm8rKCg2NTUzNSZyPj4+MTYpKm8raSooNjU1MzUmbj4+PjE2KTw8MTY+Pj4wKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHtsb2cxMDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkqTWF0aC5MT0cxMEV9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJNYXRoIix7bG9nMXA6cig0MzMpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJNYXRoIix7bG9nMjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5MTjJ9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJNYXRoIix7c2lnbjpyKDI2MCl9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDI2MSksbz1NYXRoLmV4cDtuKG4uUytuLkYqcigxNCkoZnVuY3Rpb24oKXtyZXR1cm4tMmUtMTchPSFNYXRoLnNpbmgoLTJlLTE3KX0pLCJNYXRoIix7c2luaDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5hYnMoZT0rZSk8MT8oaShlKS1pKC1lKSkvMjoobyhlLTEpLW8oLWUtMSkpKihNYXRoLkUvMil9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cigyNjEpLG89TWF0aC5leHA7bihuLlMsIk1hdGgiLHt0YW5oOmZ1bmN0aW9uKGUpe3ZhciB0PWkoZT0rZSkscj1pKC1lKTtyZXR1cm4gdD09MS8wPzE6cj09MS8wPy0xOih0LXIpLyhvKGUpK28oLWUpKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHt0cnVuYzpmdW5jdGlvbihlKXtyZXR1cm4oZT4wP01hdGguZmxvb3I6TWF0aC5jZWlsKShlKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDk2KSxvPVN0cmluZy5mcm9tQ2hhckNvZGUsYT1TdHJpbmcuZnJvbUNvZGVQb2ludDtuKG4uUytuLkYqKCEhYSYmMSE9YS5sZW5ndGgpLCJTdHJpbmciLHtmcm9tQ29kZVBvaW50OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPVtdLG49YXJndW1lbnRzLmxlbmd0aCxhPTA7bj5hOyl7aWYodD0rYXJndW1lbnRzW2ErK10saSh0LDExMTQxMTEpIT09dCl0aHJvdyBSYW5nZUVycm9yKHQrIiBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50Iik7ci5wdXNoKHQ8NjU1MzY/byh0KTpvKDU1Mjk2KygodC09NjU1MzYpPj4xMCksdCUxMDI0KzU2MzIwKSl9cmV0dXJuIHIuam9pbigiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig1MSksbz1yKDIzKTtuKG4uUywiU3RyaW5nIix7cmF3OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1pKGUucmF3KSxyPW8odC5sZW5ndGgpLG49YXJndW1lbnRzLmxlbmd0aCxhPVtdLHM9MDtyPnM7KWEucHVzaChTdHJpbmcodFtzKytdKSksczxuJiZhLnB1c2goU3RyaW5nKGFyZ3VtZW50c1tzXSkpO3JldHVybiBhLmpvaW4oIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoMTExKSgidHJpbSIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcywzKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDI2MikoITApO3IoMjYzKShTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24oZSl7dGhpcy5fdD1TdHJpbmcoZSksdGhpcy5faT0wfSxmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5fdCxyPXRoaXMuX2k7cmV0dXJuIHI+PXQubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KGU9bih0LHIpLHRoaXMuX2krPWUubGVuZ3RoLHt2YWx1ZTplLGRvbmU6ITF9KX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDI2MikoITEpO24obi5QLCJTdHJpbmciLHtjb2RlUG9pbnRBdDpmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzLGUpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDIzKSxvPXIoMjY0KSxhPSIiLmVuZHNXaXRoO24obi5QK24uRipyKDI2NikoImVuZHNXaXRoIiksIlN0cmluZyIse2VuZHNXaXRoOmZ1bmN0aW9uKGUpe3ZhciB0PW8odGhpcyxlLCJlbmRzV2l0aCIpLHI9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbj1pKHQubGVuZ3RoKSxzPXZvaWQgMD09PXI/bjpNYXRoLm1pbihpKHIpLG4pLHU9U3RyaW5nKGUpO3JldHVybiBhP2EuY2FsbCh0LHUscyk6dC5zbGljZShzLXUubGVuZ3RoLHMpPT09dX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cigyNjQpO24obi5QK24uRipyKDI2NikoImluY2x1ZGVzIiksIlN0cmluZyIse2luY2x1ZGVzOmZ1bmN0aW9uKGUpe3JldHVybiEhfmkodGhpcyxlLCJpbmNsdWRlcyIpLmluZGV4T2YoZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5QLCJTdHJpbmciLHtyZXBlYXQ6cigyNTkpfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoMjMpLG89cigyNjQpLGE9IiIuc3RhcnRzV2l0aDtuKG4uUCtuLkYqcigyNjYpKCJzdGFydHNXaXRoIiksIlN0cmluZyIse3N0YXJ0c1dpdGg6ZnVuY3Rpb24oZSl7dmFyIHQ9byh0aGlzLGUsInN0YXJ0c1dpdGgiKSxyPWkoTWF0aC5taW4oYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsdC5sZW5ndGgpKSxuPVN0cmluZyhlKTtyZXR1cm4gYT9hLmNhbGwodCxuLHIpOnQuc2xpY2UocixyK24ubGVuZ3RoKT09PW59fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImFuY2hvciIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHRoaXMsImEiLCJuYW1lIix0KX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQ1KSgiYmlnIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLCJiaWciLCIiLCIiKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQ1KSgiYmxpbmsiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImJvbGQiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsImIiLCIiLCIiKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQ1KSgiZml4ZWQiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInR0IiwiIiwiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImZvbnRjb2xvciIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHRoaXMsImZvbnQiLCJjb2xvciIsdCl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImZvbnRzaXplIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUodGhpcywiZm9udCIsInNpemUiLHQpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJpdGFsaWNzIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLCJpIiwiIiwiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImxpbmsiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSh0aGlzLCJhIiwiaHJlZiIsdCl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoInNtYWxsIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLCJzbWFsbCIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJzdHJpa2UiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInN0cmlrZSIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJzdWIiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInN1YiIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJzdXAiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInN1cCIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiRGF0ZSIse25vdzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDM2KSxvPXIoODIpO24obi5QK24uRipyKDE0KShmdW5jdGlvbigpe3JldHVybiBudWxsIT09bmV3IERhdGUoTmFOKS50b0pTT04oKXx8MSE9PURhdGUucHJvdG90eXBlLnRvSlNPTi5jYWxsKHt0b0lTT1N0cmluZzpmdW5jdGlvbigpe3JldHVybiAxfX0pfSksIkRhdGUiLHt0b0pTT046ZnVuY3Rpb24oZSl7dmFyIHQ9aSh0aGlzKSxyPW8odCk7cmV0dXJuIm51bWJlciIhPXR5cGVvZiByfHxpc0Zpbml0ZShyKT90LnRvSVNPU3RyaW5nKCk6bnVsbH19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDgzNCk7bihuLlArbi5GKihEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZyE9PWkpLCJEYXRlIix7dG9JU09TdHJpbmc6aX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTQpLGk9RGF0ZS5wcm90b3R5cGUuZ2V0VGltZSxvPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nLGE9ZnVuY3Rpb24oZSl7cmV0dXJuIGU+OT9lOiIwIitlfTtlLmV4cG9ydHM9bihmdW5jdGlvbigpe3JldHVybiIwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVoiIT1vLmNhbGwobmV3IERhdGUoLTVlMTMtMSkpfSl8fCFuKGZ1bmN0aW9uKCl7by5jYWxsKG5ldyBEYXRlKE5hTikpfSk/ZnVuY3Rpb24oKXtpZighaXNGaW5pdGUoaS5jYWxsKHRoaXMpKSl0aHJvdyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTt2YXIgZT10aGlzLHQ9ZS5nZXRVVENGdWxsWWVhcigpLHI9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSxuPXQ8MD8iLSI6dD45OTk5PyIrIjoiIjtyZXR1cm4gbisoIjAwMDAwIitNYXRoLmFicyh0KSkuc2xpY2Uobj8tNjotNCkrIi0iK2EoZS5nZXRVVENNb250aCgpKzEpKyItIithKGUuZ2V0VVRDRGF0ZSgpKSsiVCIrYShlLmdldFVUQ0hvdXJzKCkpKyI6IithKGUuZ2V0VVRDTWludXRlcygpKSsiOiIrYShlLmdldFVUQ1NlY29uZHMoKSkrIi4iKyhyPjk5P3I6IjAiK2EocikpKyJaIn06b30sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPURhdGUucHJvdG90eXBlLGk9bi50b1N0cmluZyxvPW4uZ2V0VGltZTtuZXcgRGF0ZShOYU4pKyIiIT0iSW52YWxpZCBEYXRlIiYmcig0OSkobiwidG9TdHJpbmciLGZ1bmN0aW9uKCl7dmFyIGU9by5jYWxsKHRoaXMpO3JldHVybiBlPT09ZT9pLmNhbGwodGhpcyk6IkludmFsaWQgRGF0ZSJ9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMjEpKCJ0b1ByaW1pdGl2ZSIpLGk9RGF0ZS5wcm90b3R5cGU7biBpbiBpfHxyKDU0KShpLG4scig4MzcpKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyKSxpPXIoODIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZigic3RyaW5nIiE9PWUmJiJudW1iZXIiIT09ZSYmImRlZmF1bHQiIT09ZSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCBoaW50Iik7cmV0dXJuIGkobih0aGlzKSwibnVtYmVyIiE9ZSl9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiQXJyYXkiLHtpc0FycmF5OnIoMTgxKX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTgpLGk9cigyKSxvPXIoMzYpLGE9cig0MzUpLHM9cigyNjcpLHU9cigyMyksYz1yKDI2OCksZj1yKDI2OSk7aShpLlMraS5GKiFyKDE4MikoZnVuY3Rpb24oZSl7QXJyYXkuZnJvbShlKX0pLCJBcnJheSIse2Zyb206ZnVuY3Rpb24oZSl7dmFyIHQscixpLGwsaD1vKGUpLHA9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxkPWFyZ3VtZW50cy5sZW5ndGgseT1kPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnPXZvaWQgMCE9PXksdj0wLG09ZihoKTtpZihnJiYoeT1uKHksZD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMikpLHZvaWQgMD09bXx8cD09QXJyYXkmJnMobSkpZm9yKHI9bmV3IHAodD11KGgubGVuZ3RoKSk7dD52O3YrKyljKHIsdixnP3koaFt2XSx2KTpoW3ZdKTtlbHNlIGZvcihsPW0uY2FsbChoKSxyPW5ldyBwOyEoaT1sLm5leHQoKSkuZG9uZTt2KyspYyhyLHYsZz9hKGwseSxbaS52YWx1ZSx2XSwhMCk6aS52YWx1ZSk7cmV0dXJuIHIubGVuZ3RoPXYscn19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cigyNjgpO24obi5TK24uRipyKDE0KShmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIShBcnJheS5vZi5jYWxsKGUpaW5zdGFuY2VvZiBlKX0pLCJBcnJheSIse29mOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAsdD1hcmd1bWVudHMubGVuZ3RoLHI9bmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXkpKHQpO3Q+ZTspaShyLGUsYXJndW1lbnRzW2UrK10pO3JldHVybiByLmxlbmd0aD10LHJ9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNTEpLG89W10uam9pbjtuKG4uUCtuLkYqKHIoMTQ1KSE9T2JqZWN0fHwhcig1NSkobykpLCJBcnJheSIse2pvaW46ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY2FsbChpKHRoaXMpLHZvaWQgMD09PWU/IiwiOmUpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDI1MSksbz1yKDcwKSxhPXIoOTYpLHM9cigyMyksdT1bXS5zbGljZTtuKG4uUCtuLkYqcigxNCkoZnVuY3Rpb24oKXtpJiZ1LmNhbGwoaSl9KSwiQXJyYXkiLHtzbGljZTpmdW5jdGlvbihlLHQpe3ZhciByPXModGhpcy5sZW5ndGgpLG49byh0aGlzKTtpZih0PXZvaWQgMD09PXQ/cjp0LCJBcnJheSI9PW4pcmV0dXJuIHUuY2FsbCh0aGlzLGUsdCk7Zm9yKHZhciBpPWEoZSxyKSxjPWEodCxyKSxmPXMoYy1pKSxsPW5ldyBBcnJheShmKSxoPTA7aDxmO2grKylsW2hdPSJTdHJpbmciPT1uP3RoaXMuY2hhckF0KGkraCk6dGhpc1tpK2hdO3JldHVybiBsfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDU5KSxvPXIoMzYpLGE9cigxNCkscz1bXS5zb3J0LHU9WzEsMiwzXTtuKG4uUCtuLkYqKGEoZnVuY3Rpb24oKXt1LnNvcnQodm9pZCAwKX0pfHwhYShmdW5jdGlvbigpe3Uuc29ydChudWxsKX0pfHwhcig1NSkocykpLCJBcnJheSIse3NvcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/cy5jYWxsKG8odGhpcykpOnMuY2FsbChvKHRoaXMpLGkoZSkpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDYzKSgwKSxvPXIoNTUpKFtdLmZvckVhY2gsITApO24obi5QK24uRiohbywiQXJyYXkiLHtmb3JFYWNoOmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHNbMV0pfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMyksaT1yKDE4MSksbz1yKDIxKSgic3BlY2llcyIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gaShlKSYmKCJmdW5jdGlvbiIhPXR5cGVvZih0PWUuY29uc3RydWN0b3IpfHx0IT09QXJyYXkmJiFpKHQucHJvdG90eXBlKXx8KHQ9dm9pZCAwKSxuKHQpJiZudWxsPT09KHQ9dFtvXSkmJih0PXZvaWQgMCkpLHZvaWQgMD09PXQ/QXJyYXk6dH19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNjMpKDEpO24obi5QK24uRiohcig1NSkoW10ubWFwLCEwKSwiQXJyYXkiLHttYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNjMpKDIpO24obi5QK24uRiohcig1NSkoW10uZmlsdGVyLCEwKSwiQXJyYXkiLHtmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNjMpKDMpO24obi5QK24uRiohcig1NSkoW10uc29tZSwhMCksIkFycmF5Iix7c29tZTpmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzLGUsYXJndW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MykoNCk7bihuLlArbi5GKiFyKDU1KShbXS5ldmVyeSwhMCksIkFycmF5Iix7ZXZlcnk6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNDM3KTtuKG4uUCtuLkYqIXIoNTUpKFtdLnJlZHVjZSwhMCksIkFycmF5Iix7cmVkdWNlOmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50c1sxXSwhMSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNDM3KTtuKG4uUCtuLkYqIXIoNTUpKFtdLnJlZHVjZVJpZ2h0LCEwKSwiQXJyYXkiLHtyZWR1Y2VSaWdodDpmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzLGUsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHNbMV0sITApfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDE3OSkoITEpLG89W10uaW5kZXhPZixhPSEhbyYmMS9bMV0uaW5kZXhPZigxLC0wKTwwO24obi5QK24uRiooYXx8IXIoNTUpKG8pKSwiQXJyYXkiLHtpbmRleE9mOmZ1bmN0aW9uKGUpe3JldHVybiBhP28uYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwOmkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNTEpLG89cig2MCksYT1yKDIzKSxzPVtdLmxhc3RJbmRleE9mLHU9ISFzJiYxL1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwO24obi5QK24uRioodXx8IXIoNTUpKHMpKSwiQXJyYXkiLHtsYXN0SW5kZXhPZjpmdW5jdGlvbihlKXtpZih1KXJldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDt2YXIgdD1pKHRoaXMpLHI9YSh0Lmxlbmd0aCksbj1yLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKG49TWF0aC5taW4obixvKGFyZ3VtZW50c1sxXSkpKSxuPDAmJihuPXIrbik7bj49MDtuLS0paWYobiBpbiB0JiZ0W25dPT09ZSlyZXR1cm4gbnx8MDtyZXR1cm4tMX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlAsIkFycmF5Iix7Y29weVdpdGhpbjpyKDQzOCl9KSxyKDEwMCkoImNvcHlXaXRoaW4iKX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlAsIkFycmF5Iix7ZmlsbDpyKDI3MCl9KSxyKDEwMCkoImZpbGwiKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MykoNSksbz0hMDsiZmluZCJpbltdJiZBcnJheSgxKS5maW5kKGZ1bmN0aW9uKCl7bz0hMX0pLG4obi5QK24uRipvLCJBcnJheSIse2ZpbmQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxyKDEwMCkoImZpbmQiKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MykoNiksbz0iZmluZEluZGV4IixhPSEwO28gaW5bXSYmQXJyYXkoMSlbb10oZnVuY3Rpb24oKXthPSExfSksbihuLlArbi5GKmEsIkFycmF5Iix7ZmluZEluZGV4OmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSkscigxMDApKG8pfSxmdW5jdGlvbihlLHQscil7cigxMTIpKCJBcnJheSIpfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxNyksaT1yKDI1OCksbz1yKDI4KS5mLGE9cig5OCkuZixzPXIoMjY1KSx1PXIoMTgzKSxjPW4uUmVnRXhwLGY9YyxsPWMucHJvdG90eXBlLGg9L2EvZyxwPS9hL2csZD1uZXcgYyhoKSE9PWg7aWYocigyOSkmJighZHx8cigxNCkoZnVuY3Rpb24oKXtyZXR1cm4gcFtyKDIxKSgibWF0Y2giKV09ITEsYyhoKSE9aHx8YyhwKT09cHx8Ii9hL2kiIT1jKGgsImkiKX0pKSl7Yz1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMgaW5zdGFuY2VvZiBjLG49cyhlKSxvPXZvaWQgMD09PXQ7cmV0dXJuIXImJm4mJmUuY29uc3RydWN0b3I9PT1jJiZvP2U6aShkP25ldyBmKG4mJiFvP2Uuc291cmNlOmUsdCk6Zigobj1lIGluc3RhbmNlb2YgYyk/ZS5zb3VyY2U6ZSxuJiZvP3UuY2FsbChlKTp0KSxyP3RoaXM6bCxjKX07Zm9yKHZhciB5PWZ1bmN0aW9uKGUpe2UgaW4gY3x8byhjLGUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZltlXX0sc2V0OmZ1bmN0aW9uKHQpe2ZbZV09dH19KX0sZz1hKGYpLHY9MDtnLmxlbmd0aD52Oyl5KGdbdisrXSk7bC5jb25zdHJ1Y3Rvcj1jLGMucHJvdG90eXBlPWwscig0OSkobiwiUmVnRXhwIixjKX1yKDExMikoIlJlZ0V4cCIpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDQyKTt2YXIgbj1yKDEyKSxpPXIoMTgzKSxvPXIoMjkpLGE9Ly4vLnRvU3RyaW5nLHM9ZnVuY3Rpb24oZSl7cig0OSkoUmVnRXhwLnByb3RvdHlwZSwidG9TdHJpbmciLGUsITApfTtyKDE0KShmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9YS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSk/cyhmdW5jdGlvbigpe3ZhciBlPW4odGhpcyk7cmV0dXJuIi8iLmNvbmNhdChlLnNvdXJjZSwiLyIsImZsYWdzImluIGU/ZS5mbGFnczohbyYmZSBpbnN0YW5jZW9mIFJlZ0V4cD9pLmNhbGwoZSk6dm9pZCAwKX0pOiJ0b1N0cmluZyIhPWEubmFtZSYmcyhmdW5jdGlvbigpe3JldHVybiBhLmNhbGwodGhpcyl9KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyKSxpPXIoMjMpLG89cigyNzIpLGE9cigxODQpO3IoMTg1KSgibWF0Y2giLDEsZnVuY3Rpb24oZSx0LHIscyl7cmV0dXJuW2Z1bmN0aW9uKHIpe3ZhciBuPWUodGhpcyksaT12b2lkIDA9PXI/dm9pZCAwOnJbdF07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKHIsbik6bmV3IFJlZ0V4cChyKVt0XShTdHJpbmcobikpfSxmdW5jdGlvbihlKXt2YXIgdD1zKHIsZSx0aGlzKTtpZih0LmRvbmUpcmV0dXJuIHQudmFsdWU7dmFyIHU9bihlKSxjPVN0cmluZyh0aGlzKTtpZighdS5nbG9iYWwpcmV0dXJuIGEodSxjKTt2YXIgZj11LnVuaWNvZGU7dS5sYXN0SW5kZXg9MDtmb3IodmFyIGwsaD1bXSxwPTA7bnVsbCE9PShsPWEodSxjKSk7KXt2YXIgZD1TdHJpbmcobFswXSk7aFtwXT1kLCIiPT09ZCYmKHUubGFzdEluZGV4PW8oYyxpKHUubGFzdEluZGV4KSxmKSkscCsrfXJldHVybiAwPT09cD9udWxsOmh9XX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTIpLGk9cigzNiksbz1yKDIzKSxhPXIoNjApLHM9cigyNzIpLHU9cigxODQpLGM9TWF0aC5tYXgsZj1NYXRoLm1pbixsPU1hdGguZmxvb3IsaD0vXCQoWyQmYCddfFxkXGQ/fDxbXj5dKj4pL2cscD0vXCQoWyQmYCddfFxkXGQ/KS9nO3IoMTg1KSgicmVwbGFjZSIsMixmdW5jdGlvbihlLHQscixkKXtyZXR1cm5bZnVuY3Rpb24obixpKXt2YXIgbz1lKHRoaXMpLGE9dm9pZCAwPT1uP3ZvaWQgMDpuW3RdO3JldHVybiB2b2lkIDAhPT1hP2EuY2FsbChuLG8saSk6ci5jYWxsKFN0cmluZyhvKSxuLGkpfSxmdW5jdGlvbihlLHQpe3ZhciBpPWQocixlLHRoaXMsdCk7aWYoaS5kb25lKXJldHVybiBpLnZhbHVlO3ZhciBsPW4oZSksaD1TdHJpbmcodGhpcykscD0iZnVuY3Rpb24iPT09dHlwZW9mIHQ7cHx8KHQ9U3RyaW5nKHQpKTt2YXIgZz1sLmdsb2JhbDtpZihnKXt2YXIgdj1sLnVuaWNvZGU7bC5sYXN0SW5kZXg9MH1mb3IodmFyIG09W107Oyl7dmFyIGI9dShsLGgpO2lmKG51bGw9PT1iKWJyZWFrO2lmKG0ucHVzaChiKSwhZylicmVhazsiIj09PVN0cmluZyhiWzBdKSYmKGwubGFzdEluZGV4PXMoaCxvKGwubGFzdEluZGV4KSx2KSl9Zm9yKHZhciBfLFM9IiIsRT0wLHc9MDt3PG0ubGVuZ3RoO3crKyl7Yj1tW3ddO2Zvcih2YXIgVD1TdHJpbmcoYlswXSksQT1jKGYoYShiLmluZGV4KSxoLmxlbmd0aCksMCksQz1bXSx4PTE7eDxiLmxlbmd0aDt4KyspQy5wdXNoKHZvaWQgMD09PShfPWJbeF0pP186U3RyaW5nKF8pKTt2YXIgST1iLmdyb3VwcztpZihwKXt2YXIgaz1bVF0uY29uY2F0KEMsQSxoKTt2b2lkIDAhPT1JJiZrLnB1c2goSSk7dmFyIE89U3RyaW5nKHQuYXBwbHkodm9pZCAwLGspKX1lbHNlIE89eShULGgsQSxDLEksdCk7QT49RSYmKFMrPWguc2xpY2UoRSxBKStPLEU9QStULmxlbmd0aCl9cmV0dXJuIFMraC5zbGljZShFKX1dO2Z1bmN0aW9uIHkoZSx0LG4sbyxhLHMpe3ZhciB1PW4rZS5sZW5ndGgsYz1vLmxlbmd0aCxmPXA7cmV0dXJuIHZvaWQgMCE9PWEmJihhPWkoYSksZj1oKSxyLmNhbGwocyxmLGZ1bmN0aW9uKHIsaSl7dmFyIHM7c3dpdGNoKGkuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBlO2Nhc2UiYCI6cmV0dXJuIHQuc2xpY2UoMCxuKTtjYXNlIiciOnJldHVybiB0LnNsaWNlKHUpO2Nhc2UiPCI6cz1hW2kuc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIGY9K2k7aWYoMD09PWYpcmV0dXJuIHI7aWYoZj5jKXt2YXIgaD1sKGYvMTApO3JldHVybiAwPT09aD9yOmg8PWM/dm9pZCAwPT09b1toLTFdP2kuY2hhckF0KDEpOm9baC0xXStpLmNoYXJBdCgxKTpyfXM9b1tmLTFdfXJldHVybiB2b2lkIDA9PT1zPyIiOnN9KX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyKSxpPXIoNDI3KSxvPXIoMTg0KTtyKDE4NSkoInNlYXJjaCIsMSxmdW5jdGlvbihlLHQscixhKXtyZXR1cm5bZnVuY3Rpb24ocil7dmFyIG49ZSh0aGlzKSxpPXZvaWQgMD09cj92b2lkIDA6clt0XTtyZXR1cm4gdm9pZCAwIT09aT9pLmNhbGwocixuKTpuZXcgUmVnRXhwKHIpW3RdKFN0cmluZyhuKSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWEocixlLHRoaXMpO2lmKHQuZG9uZSlyZXR1cm4gdC52YWx1ZTt2YXIgcz1uKGUpLHU9U3RyaW5nKHRoaXMpLGM9cy5sYXN0SW5kZXg7aShjLDApfHwocy5sYXN0SW5kZXg9MCk7dmFyIGY9byhzLHUpO3JldHVybiBpKHMubGFzdEluZGV4LGMpfHwocy5sYXN0SW5kZXg9YyksbnVsbD09PWY/LTE6Zi5pbmRleH1dfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyNjUpLGk9cigxMiksbz1yKDE0OSksYT1yKDI3Mikscz1yKDIzKSx1PXIoMTg0KSxjPXIoMjcxKSxmPXIoMTQpLGw9TWF0aC5taW4saD1bXS5wdXNoLHA9IWYoZnVuY3Rpb24oKXtSZWdFeHAoNDI5NDk2NzI5NSwieSIpfSk7cigxODUpKCJzcGxpdCIsMixmdW5jdGlvbihlLHQscixmKXt2YXIgZDtyZXR1cm4gZD0iYyI9PSJhYmJjIi5zcGxpdCgvKGIpKi8pWzFdfHw0IT0idGVzdCIuc3BsaXQoLyg/OikvLC0xKS5sZW5ndGh8fDIhPSJhYiIuc3BsaXQoLyg/OmFiKSovKS5sZW5ndGh8fDQhPSIuIi5zcGxpdCgvKC4/KSguPykvKS5sZW5ndGh8fCIuIi5zcGxpdCgvKCkoKS8pLmxlbmd0aD4xfHwiIi5zcGxpdCgvLj8vKS5sZW5ndGg/ZnVuY3Rpb24oZSx0KXt2YXIgaT1TdHJpbmcodGhpcyk7aWYodm9pZCAwPT09ZSYmMD09PXQpcmV0dXJuW107aWYoIW4oZSkpcmV0dXJuIHIuY2FsbChpLGUsdCk7Zm9yKHZhciBvLGEscyx1PVtdLGY9KGUuaWdub3JlQ2FzZT8iaSI6IiIpKyhlLm11bHRpbGluZT8ibSI6IiIpKyhlLnVuaWNvZGU/InUiOiIiKSsoZS5zdGlja3k/InkiOiIiKSxsPTAscD12b2lkIDA9PT10PzQyOTQ5NjcyOTU6dD4+PjAsZD1uZXcgUmVnRXhwKGUuc291cmNlLGYrImciKTsobz1jLmNhbGwoZCxpKSkmJiEoKGE9ZC5sYXN0SW5kZXgpPmwmJih1LnB1c2goaS5zbGljZShsLG8uaW5kZXgpKSxvLmxlbmd0aD4xJiZvLmluZGV4PGkubGVuZ3RoJiZoLmFwcGx5KHUsby5zbGljZSgxKSkscz1vWzBdLmxlbmd0aCxsPWEsdS5sZW5ndGg+PXApKTspZC5sYXN0SW5kZXg9PT1vLmluZGV4JiZkLmxhc3RJbmRleCsrO3JldHVybiBsPT09aS5sZW5ndGg/IXMmJmQudGVzdCgiIil8fHUucHVzaCgiIik6dS5wdXNoKGkuc2xpY2UobCkpLHUubGVuZ3RoPnA/dS5zbGljZSgwLHApOnV9OiIwIi5zcGxpdCh2b2lkIDAsMCkubGVuZ3RoP2Z1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWUmJjA9PT10P1tdOnIuY2FsbCh0aGlzLGUsdCl9OnIsW2Z1bmN0aW9uKHIsbil7dmFyIGk9ZSh0aGlzKSxvPXZvaWQgMD09cj92b2lkIDA6clt0XTtyZXR1cm4gdm9pZCAwIT09bz9vLmNhbGwocixpLG4pOmQuY2FsbChTdHJpbmcoaSkscixuKX0sZnVuY3Rpb24oZSx0KXt2YXIgbj1mKGQsZSx0aGlzLHQsZCE9PXIpO2lmKG4uZG9uZSlyZXR1cm4gbi52YWx1ZTt2YXIgYz1pKGUpLGg9U3RyaW5nKHRoaXMpLHk9byhjLFJlZ0V4cCksZz1jLnVuaWNvZGUsdj0oYy5pZ25vcmVDYXNlPyJpIjoiIikrKGMubXVsdGlsaW5lPyJtIjoiIikrKGMudW5pY29kZT8idSI6IiIpKyhwPyJ5IjoiZyIpLG09bmV3IHkocD9jOiJeKD86IitjLnNvdXJjZSsiKSIsdiksYj12b2lkIDA9PT10PzQyOTQ5NjcyOTU6dD4+PjA7aWYoMD09PWIpcmV0dXJuW107aWYoMD09PWgubGVuZ3RoKXJldHVybiBudWxsPT09dShtLGgpP1toXTpbXTtmb3IodmFyIF89MCxTPTAsRT1bXTtTPGgubGVuZ3RoOyl7bS5sYXN0SW5kZXg9cD9TOjA7dmFyIHcsVD11KG0scD9oOmguc2xpY2UoUykpO2lmKG51bGw9PT1UfHwodz1sKHMobS5sYXN0SW5kZXgrKHA/MDpTKSksaC5sZW5ndGgpKT09PV8pUz1hKGgsUyxnKTtlbHNle2lmKEUucHVzaChoLnNsaWNlKF8sUykpLEUubGVuZ3RoPT09YilyZXR1cm4gRTtmb3IodmFyIEE9MTtBPD1ULmxlbmd0aC0xO0ErKylpZihFLnB1c2goVFtBXSksRS5sZW5ndGg9PT1iKXJldHVybiBFO1M9Xz13fX1yZXR1cm4gRS5wdXNoKGguc2xpY2UoXykpLEV9XX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxNyksaT1yKDI1MCkuc2V0LG89bi5NdXRhdGlvbk9ic2VydmVyfHxuLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsYT1uLnByb2Nlc3Mscz1uLlByb21pc2UsdT0icHJvY2VzcyI9PXIoNzApKGEpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBlLHQscixjPWZ1bmN0aW9uKCl7dmFyIG4saTtmb3IodSYmKG49YS5kb21haW4pJiZuLmV4aXQoKTtlOyl7aT1lLmZuLGU9ZS5uZXh0O3RyeXtpKCl9Y2F0Y2gobyl7dGhyb3cgZT9yKCk6dD12b2lkIDAsb319dD12b2lkIDAsbiYmbi5lbnRlcigpfTtpZih1KXI9ZnVuY3Rpb24oKXthLm5leHRUaWNrKGMpfTtlbHNlIGlmKCFvfHxuLm5hdmlnYXRvciYmbi5uYXZpZ2F0b3Iuc3RhbmRhbG9uZSlpZihzJiZzLnJlc29sdmUpe3ZhciBmPXMucmVzb2x2ZSh2b2lkIDApO3I9ZnVuY3Rpb24oKXtmLnRoZW4oYyl9fWVsc2Ugcj1mdW5jdGlvbigpe2kuY2FsbChuLGMpfTtlbHNle3ZhciBsPSEwLGg9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO25ldyBvKGMpLm9ic2VydmUoaCx7Y2hhcmFjdGVyRGF0YTohMH0pLHI9ZnVuY3Rpb24oKXtoLmRhdGE9bD0hbH19cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPXtmbjpuLG5leHQ6dm9pZCAwfTt0JiYodC5uZXh0PWkpLGV8fChlPWkscigpKSx0PWl9fX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybntlOiExLHY6ZSgpfX1jYXRjaCh0KXtyZXR1cm57ZTohMCx2OnR9fX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0NDYpLGk9cigxMDEpO2UuZXhwb3J0cz1yKDE4NykoIk1hcCIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PW4uZ2V0RW50cnkoaSh0aGlzLCJNYXAiKSxlKTtyZXR1cm4gdCYmdC52fSxzZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5kZWYoaSh0aGlzLCJNYXAiKSwwPT09ZT8wOmUsdCl9fSxuLCEwKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDQ0NiksaT1yKDEwMSk7ZS5leHBvcnRzPXIoMTg3KSgiU2V0IixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLGFyZ3VtZW50cy5sZW5ndGg+MD9hcmd1bWVudHNbMF06dm9pZCAwKX19LHthZGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmKGkodGhpcywiU2V0IiksZT0wPT09ZT8wOmUsZSl9fSxuKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPXIoMTcpLG89cig2MykoMCksYT1yKDQ5KSxzPXIoODMpLHU9cig0MjYpLGM9cig0NDcpLGY9cigxMyksbD1yKDEwMSksaD1yKDEwMSkscD0haS5BY3RpdmVYT2JqZWN0JiYiQWN0aXZlWE9iamVjdCJpbiBpLGQ9cy5nZXRXZWFrLHk9T2JqZWN0LmlzRXh0ZW5zaWJsZSxnPWMudWZzdG9yZSx2PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sbT17Z2V0OmZ1bmN0aW9uKGUpe2lmKGYoZSkpe3ZhciB0PWQoZSk7cmV0dXJuITA9PT10P2cobCh0aGlzLCJXZWFrTWFwIikpLmdldChlKTp0P3RbdGhpcy5faV06dm9pZCAwfX0sc2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGMuZGVmKGwodGhpcywiV2Vha01hcCIpLGUsdCl9fSxiPWUuZXhwb3J0cz1yKDE4NykoIldlYWtNYXAiLHYsbSxjLCEwLCEwKTtoJiZwJiYodSgobj1jLmdldENvbnN0cnVjdG9yKHYsIldlYWtNYXAiKSkucHJvdG90eXBlLG0pLHMuTkVFRD0hMCxvKFsiZGVsZXRlIiwiaGFzIiwiZ2V0Iiwic2V0Il0sZnVuY3Rpb24oZSl7dmFyIHQ9Yi5wcm90b3R5cGUscj10W2VdO2EodCxlLGZ1bmN0aW9uKHQsaSl7aWYoZih0KSYmIXkodCkpe3RoaXMuX2Z8fCh0aGlzLl9mPW5ldyBuKTt2YXIgbz10aGlzLl9mW2VdKHQsaSk7cmV0dXJuInNldCI9PWU/dGhpczpvfXJldHVybiByLmNhbGwodGhpcyx0LGkpfSl9KSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0NDcpLGk9cigxMDEpO3IoMTg3KSgiV2Vha1NldCIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7YWRkOmZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZihpKHRoaXMsIldlYWtTZXQiKSxlLCEwKX19LG4sITEsITApfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDE4OCksbz1yKDI3NCksYT1yKDEyKSxzPXIoOTYpLHU9cigyMyksYz1yKDEzKSxmPXIoMTcpLkFycmF5QnVmZmVyLGw9cigxNDkpLGg9by5BcnJheUJ1ZmZlcixwPW8uRGF0YVZpZXcsZD1pLkFCViYmZi5pc1ZpZXcseT1oLnByb3RvdHlwZS5zbGljZSxnPWkuVklFVztuKG4uRytuLlcrbi5GKihmIT09aCkse0FycmF5QnVmZmVyOmh9KSxuKG4uUytuLkYqIWkuQ09OU1RSLCJBcnJheUJ1ZmZlciIse2lzVmlldzpmdW5jdGlvbihlKXtyZXR1cm4gZCYmZChlKXx8YyhlKSYmZyBpbiBlfX0pLG4obi5QK24uVStuLkYqcigxNCkoZnVuY3Rpb24oKXtyZXR1cm4hbmV3IGgoMikuc2xpY2UoMSx2b2lkIDApLmJ5dGVMZW5ndGh9KSwiQXJyYXlCdWZmZXIiLHtzbGljZTpmdW5jdGlvbihlLHQpe2lmKHZvaWQgMCE9PXkmJnZvaWQgMD09PXQpcmV0dXJuIHkuY2FsbChhKHRoaXMpLGUpO2Zvcih2YXIgcj1hKHRoaXMpLmJ5dGVMZW5ndGgsbj1zKGUsciksaT1zKHZvaWQgMD09PXQ/cjp0LHIpLG89bmV3KGwodGhpcyxoKSkodShpLW4pKSxjPW5ldyBwKHRoaXMpLGY9bmV3IHAobyksZD0wO248aTspZi5zZXRVaW50OChkKyssYy5nZXRVaW50OChuKyspKTtyZXR1cm4gb319KSxyKDExMikoIkFycmF5QnVmZmVyIil9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5HK24uVytuLkYqIXIoMTg4KS5BQlYse0RhdGFWaWV3OnIoMjc0KS5EYXRhVmlld30pfSxmdW5jdGlvbihlLHQscil7cig3MikoIkludDgiLDEsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJVaW50OCIsMSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4pe3JldHVybiBlKHRoaXMsdCxyLG4pfX0pfSxmdW5jdGlvbihlLHQscil7cig3MikoIlVpbnQ4IiwxLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LHIsbil7cmV0dXJuIGUodGhpcyx0LHIsbil9fSwhMCl9LGZ1bmN0aW9uKGUsdCxyKXtyKDcyKSgiSW50MTYiLDIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJVaW50MTYiLDIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJJbnQzMiIsNCxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4pe3JldHVybiBlKHRoaXMsdCxyLG4pfX0pfSxmdW5jdGlvbihlLHQscil7cig3MikoIlVpbnQzMiIsNCxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4pe3JldHVybiBlKHRoaXMsdCxyLG4pfX0pfSxmdW5jdGlvbihlLHQscil7cig3MikoIkZsb2F0MzIiLDQsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJGbG9hdDY0Iiw4LGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LHIsbil7cmV0dXJuIGUodGhpcyx0LHIsbil9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig1OSksbz1yKDEyKSxhPShyKDE3KS5SZWZsZWN0fHx7fSkuYXBwbHkscz1GdW5jdGlvbi5hcHBseTtuKG4uUytuLkYqIXIoMTQpKGZ1bmN0aW9uKCl7YShmdW5jdGlvbigpe30pfSksIlJlZmxlY3QiLHthcHBseTpmdW5jdGlvbihlLHQscil7dmFyIG49aShlKSx1PW8ocik7cmV0dXJuIGE/YShuLHQsdSk6cy5jYWxsKG4sdCx1KX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDk3KSxvPXIoNTkpLGE9cigxMikscz1yKDEzKSx1PXIoMTQpLGM9cig0MjgpLGY9KHIoMTcpLlJlZmxlY3R8fHt9KS5jb25zdHJ1Y3QsbD11KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4hKGYoZnVuY3Rpb24oKXt9LFtdLGUpaW5zdGFuY2VvZiBlKX0pLGg9IXUoZnVuY3Rpb24oKXtmKGZ1bmN0aW9uKCl7fSl9KTtuKG4uUytuLkYqKGx8fGgpLCJSZWZsZWN0Iix7Y29uc3RydWN0OmZ1bmN0aW9uKGUsdCl7byhlKSxhKHQpO3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz9lOm8oYXJndW1lbnRzWzJdKTtpZihoJiYhbClyZXR1cm4gZihlLHQscik7aWYoZT09cil7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBlO2Nhc2UgMTpyZXR1cm4gbmV3IGUodFs=",
"2020.03.29 15:16": "base64:MCIsYyk7cmV0dXJuIGc9Yz4wP3krKChzPWcubGVuZ3RoKTw9Yz8iMC4iK2EuY2FsbCgiMCIsYy1zKStnOmcuc2xpY2UoMCxzLWMpKyIuIitnLnNsaWNlKHMtYykpOnkrZ319KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cigxNCksbz1yKDQzMSksYT0xLi50b1ByZWNpc2lvbjtuKG4uUCtuLkYqKGkoZnVuY3Rpb24oKXtyZXR1cm4iMSIhPT1hLmNhbGwoMSx2b2lkIDApfSl8fCFpKGZ1bmN0aW9uKCl7YS5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9QcmVjaXNpb246ZnVuY3Rpb24oZSl7dmFyIHQ9byh0aGlzLCJOdW1iZXIjdG9QcmVjaXNpb246IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiB2b2lkIDA9PT1lP2EuY2FsbCh0KTphLmNhbGwodCxlKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk51bWJlciIse0VQU0lMT046TWF0aC5wb3coMiwtNTIpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cigxNykuaXNGaW5pdGU7bihuLlMsIk51bWJlciIse2lzRmluaXRlOmZ1bmN0aW9uKGUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgZSYmaShlKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk51bWJlciIse2lzSW50ZWdlcjpyKDQzMil9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk51bWJlciIse2lzTmFOOmZ1bmN0aW9uKGUpe3JldHVybiBlIT1lfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPXIoNDMyKSxvPU1hdGguYWJzO24obi5TLCJOdW1iZXIiLHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKGUpe3JldHVybiBpKGUpJiZvKGUpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiTnVtYmVyIix7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJOdW1iZXIiLHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MzApO24obi5TK24uRiooTnVtYmVyLnBhcnNlRmxvYXQhPWkpLCJOdW1iZXIiLHtwYXJzZUZsb2F0Oml9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDQyOSk7bihuLlMrbi5GKihOdW1iZXIucGFyc2VJbnQhPWkpLCJOdW1iZXIiLHtwYXJzZUludDppfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig0MzMpLG89TWF0aC5zcXJ0LGE9TWF0aC5hY29zaDtuKG4uUytuLkYqIShhJiY3MTA9PU1hdGguZmxvb3IoYShOdW1iZXIuTUFYX1ZBTFVFKSkmJmEoMS8wKT09MS8wKSwiTWF0aCIse2Fjb3NoOmZ1bmN0aW9uKGUpe3JldHVybihlPStlKTwxP05hTjplPjk0OTA2MjY1LjYyNDI1MTU2P01hdGgubG9nKGUpK01hdGguTE4yOmkoZS0xK28oZS0xKSpvKGUrMSkpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPU1hdGguYXNpbmg7bihuLlMrbi5GKiEoaSYmMS9pKDApPjApLCJNYXRoIix7YXNpbmg6ZnVuY3Rpb24gZSh0KXtyZXR1cm4gaXNGaW5pdGUodD0rdCkmJjAhPXQ/dDwwPy1lKC10KTpNYXRoLmxvZyh0K01hdGguc3FydCh0KnQrMSkpOnR9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9TWF0aC5hdGFuaDtuKG4uUytuLkYqIShpJiYxL2koLTApPDApLCJNYXRoIix7YXRhbmg6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PShlPStlKT9lOk1hdGgubG9nKCgxK2UpLygxLWUpKS8yfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPXIoMjYwKTtuKG4uUywiTWF0aCIse2NicnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGkoZT0rZSkqTWF0aC5wb3coTWF0aC5hYnMoZSksMS8zKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHtjbHozMjpmdW5jdGlvbihlKXtyZXR1cm4oZT4+Pj0wKT8zMS1NYXRoLmZsb29yKE1hdGgubG9nKGUrLjUpKk1hdGguTE9HMkUpOjMyfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPU1hdGguZXhwO24obi5TLCJNYXRoIix7Y29zaDpmdW5jdGlvbihlKXtyZXR1cm4oaShlPStlKStpKC1lKSkvMn19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDI2MSk7bihuLlMrbi5GKihpIT1NYXRoLmV4cG0xKSwiTWF0aCIse2V4cG0xOml9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHtmcm91bmQ6cig3OTkpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDI2MCksaT1NYXRoLnBvdyxvPWkoMiwtNTIpLGE9aSgyLC0yMykscz1pKDIsMTI3KSooMi1hKSx1PWkoMiwtMTI2KTtlLmV4cG9ydHM9TWF0aC5mcm91bmR8fGZ1bmN0aW9uKGUpe3ZhciB0LHIsaT1NYXRoLmFicyhlKSxjPW4oZSk7cmV0dXJuIGk8dT9jKihpL3UvYSsxL28tMS9vKSp1KmE6KHI9KHQ9KDErYS9vKSppKS0odC1pKSk+c3x8ciE9cj9jKigxLzApOmMqcn19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9TWF0aC5hYnM7bihuLlMsIk1hdGgiLHtoeXBvdDpmdW5jdGlvbihlLHQpe2Zvcih2YXIgcixuLG89MCxhPTAscz1hcmd1bWVudHMubGVuZ3RoLHU9MDthPHM7KXU8KHI9aShhcmd1bWVudHNbYSsrXSkpPyhvPW8qKG49dS9yKSpuKzEsdT1yKTpvKz1yPjA/KG49ci91KSpuOnI7cmV0dXJuIHU9PT0xLzA/MS8wOnUqTWF0aC5zcXJ0KG8pfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKSxpPU1hdGguaW11bDtuKG4uUytuLkYqcigxNCkoZnVuY3Rpb24oKXtyZXR1cm4tNSE9aSg0Mjk0OTY3Mjk1LDUpfHwyIT1pLmxlbmd0aH0pLCJNYXRoIix7aW11bDpmdW5jdGlvbihlLHQpe3ZhciByPStlLG49K3QsaT02NTUzNSZyLG89NjU1MzUmbjtyZXR1cm4gMHxpKm8rKCg2NTUzNSZyPj4+MTYpKm8raSooNjU1MzUmbj4+PjE2KTw8MTY+Pj4wKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHtsb2cxMDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkqTWF0aC5MT0cxMEV9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJNYXRoIix7bG9nMXA6cig0MzMpfSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJNYXRoIix7bG9nMjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5MTjJ9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5TLCJNYXRoIix7c2lnbjpyKDI2MCl9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDI2MSksbz1NYXRoLmV4cDtuKG4uUytuLkYqcigxNCkoZnVuY3Rpb24oKXtyZXR1cm4tMmUtMTchPSFNYXRoLnNpbmgoLTJlLTE3KX0pLCJNYXRoIix7c2luaDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5hYnMoZT0rZSk8MT8oaShlKS1pKC1lKSkvMjoobyhlLTEpLW8oLWUtMSkpKihNYXRoLkUvMil9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cigyNjEpLG89TWF0aC5leHA7bihuLlMsIk1hdGgiLHt0YW5oOmZ1bmN0aW9uKGUpe3ZhciB0PWkoZT0rZSkscj1pKC1lKTtyZXR1cm4gdD09MS8wPzE6cj09MS8wPy0xOih0LXIpLyhvKGUpK28oLWUpKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlMsIk1hdGgiLHt0cnVuYzpmdW5jdGlvbihlKXtyZXR1cm4oZT4wP01hdGguZmxvb3I6TWF0aC5jZWlsKShlKX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDk2KSxvPVN0cmluZy5mcm9tQ2hhckNvZGUsYT1TdHJpbmcuZnJvbUNvZGVQb2ludDtuKG4uUytuLkYqKCEhYSYmMSE9YS5sZW5ndGgpLCJTdHJpbmciLHtmcm9tQ29kZVBvaW50OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPVtdLG49YXJndW1lbnRzLmxlbmd0aCxhPTA7bj5hOyl7aWYodD0rYXJndW1lbnRzW2ErK10saSh0LDExMTQxMTEpIT09dCl0aHJvdyBSYW5nZUVycm9yKHQrIiBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50Iik7ci5wdXNoKHQ8NjU1MzY/byh0KTpvKDU1Mjk2KygodC09NjU1MzYpPj4xMCksdCUxMDI0KzU2MzIwKSl9cmV0dXJuIHIuam9pbigiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig1MSksbz1yKDIzKTtuKG4uUywiU3RyaW5nIix7cmF3OmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1pKGUucmF3KSxyPW8odC5sZW5ndGgpLG49YXJndW1lbnRzLmxlbmd0aCxhPVtdLHM9MDtyPnM7KWEucHVzaChTdHJpbmcodFtzKytdKSksczxuJiZhLnB1c2goU3RyaW5nKGFyZ3VtZW50c1tzXSkpO3JldHVybiBhLmpvaW4oIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoMTExKSgidHJpbSIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcywzKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDI2MikoITApO3IoMjYzKShTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24oZSl7dGhpcy5fdD1TdHJpbmcoZSksdGhpcy5faT0wfSxmdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5fdCxyPXRoaXMuX2k7cmV0dXJuIHI+PXQubGVuZ3RoP3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06KGU9bih0LHIpLHRoaXMuX2krPWUubGVuZ3RoLHt2YWx1ZTplLGRvbmU6ITF9KX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDI2MikoITEpO24obi5QLCJTdHJpbmciLHtjb2RlUG9pbnRBdDpmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzLGUpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDIzKSxvPXIoMjY0KSxhPSIiLmVuZHNXaXRoO24obi5QK24uRipyKDI2NikoImVuZHNXaXRoIiksIlN0cmluZyIse2VuZHNXaXRoOmZ1bmN0aW9uKGUpe3ZhciB0PW8odGhpcyxlLCJlbmRzV2l0aCIpLHI9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbj1pKHQubGVuZ3RoKSxzPXZvaWQgMD09PXI/bjpNYXRoLm1pbihpKHIpLG4pLHU9U3RyaW5nKGUpO3JldHVybiBhP2EuY2FsbCh0LHUscyk6dC5zbGljZShzLXUubGVuZ3RoLHMpPT09dX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cigyNjQpO24obi5QK24uRipyKDI2NikoImluY2x1ZGVzIiksIlN0cmluZyIse2luY2x1ZGVzOmZ1bmN0aW9uKGUpe3JldHVybiEhfmkodGhpcyxlLCJpbmNsdWRlcyIpLmluZGV4T2YoZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5QLCJTdHJpbmciLHtyZXBlYXQ6cigyNTkpfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoMjMpLG89cigyNjQpLGE9IiIuc3RhcnRzV2l0aDtuKG4uUCtuLkYqcigyNjYpKCJzdGFydHNXaXRoIiksIlN0cmluZyIse3N0YXJ0c1dpdGg6ZnVuY3Rpb24oZSl7dmFyIHQ9byh0aGlzLGUsInN0YXJ0c1dpdGgiKSxyPWkoTWF0aC5taW4oYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsdC5sZW5ndGgpKSxuPVN0cmluZyhlKTtyZXR1cm4gYT9hLmNhbGwodCxuLHIpOnQuc2xpY2UocixyK24ubGVuZ3RoKT09PW59fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImFuY2hvciIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHRoaXMsImEiLCJuYW1lIix0KX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQ1KSgiYmlnIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLCJiaWciLCIiLCIiKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQ1KSgiYmxpbmsiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImJvbGQiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsImIiLCIiLCIiKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0IjtyKDQ1KSgiZml4ZWQiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInR0IiwiIiwiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImZvbnRjb2xvciIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBlKHRoaXMsImZvbnQiLCJjb2xvciIsdCl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImZvbnRzaXplIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUodGhpcywiZm9udCIsInNpemUiLHQpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJpdGFsaWNzIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLCJpIiwiIiwiIil9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoImxpbmsiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZSh0aGlzLCJhIiwiaHJlZiIsdCl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7cig0NSkoInNtYWxsIixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLCJzbWFsbCIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJzdHJpa2UiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInN0cmlrZSIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJzdWIiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInN1YiIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDUpKCJzdXAiLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsInN1cCIsIiIsIiIpfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiRGF0ZSIse25vdzpmdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDM2KSxvPXIoODIpO24obi5QK24uRipyKDE0KShmdW5jdGlvbigpe3JldHVybiBudWxsIT09bmV3IERhdGUoTmFOKS50b0pTT04oKXx8MSE9PURhdGUucHJvdG90eXBlLnRvSlNPTi5jYWxsKHt0b0lTT1N0cmluZzpmdW5jdGlvbigpe3JldHVybiAxfX0pfSksIkRhdGUiLHt0b0pTT046ZnVuY3Rpb24oZSl7dmFyIHQ9aSh0aGlzKSxyPW8odCk7cmV0dXJuIm51bWJlciIhPXR5cGVvZiByfHxpc0Zpbml0ZShyKT90LnRvSVNPU3RyaW5nKCk6bnVsbH19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDgzNCk7bihuLlArbi5GKihEYXRlLnByb3RvdHlwZS50b0lTT1N0cmluZyE9PWkpLCJEYXRlIix7dG9JU09TdHJpbmc6aX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTQpLGk9RGF0ZS5wcm90b3R5cGUuZ2V0VGltZSxvPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nLGE9ZnVuY3Rpb24oZSl7cmV0dXJuIGU+OT9lOiIwIitlfTtlLmV4cG9ydHM9bihmdW5jdGlvbigpe3JldHVybiIwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVoiIT1vLmNhbGwobmV3IERhdGUoLTVlMTMtMSkpfSl8fCFuKGZ1bmN0aW9uKCl7by5jYWxsKG5ldyBEYXRlKE5hTikpfSk/ZnVuY3Rpb24oKXtpZighaXNGaW5pdGUoaS5jYWxsKHRoaXMpKSl0aHJvdyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTt2YXIgZT10aGlzLHQ9ZS5nZXRVVENGdWxsWWVhcigpLHI9ZS5nZXRVVENNaWxsaXNlY29uZHMoKSxuPXQ8MD8iLSI6dD45OTk5PyIrIjoiIjtyZXR1cm4gbisoIjAwMDAwIitNYXRoLmFicyh0KSkuc2xpY2Uobj8tNjotNCkrIi0iK2EoZS5nZXRVVENNb250aCgpKzEpKyItIithKGUuZ2V0VVRDRGF0ZSgpKSsiVCIrYShlLmdldFVUQ0hvdXJzKCkpKyI6IithKGUuZ2V0VVRDTWludXRlcygpKSsiOiIrYShlLmdldFVUQ1NlY29uZHMoKSkrIi4iKyhyPjk5P3I6IjAiK2EocikpKyJaIn06b30sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPURhdGUucHJvdG90eXBlLGk9bi50b1N0cmluZyxvPW4uZ2V0VGltZTtuZXcgRGF0ZShOYU4pKyIiIT0iSW52YWxpZCBEYXRlIiYmcig0OSkobiwidG9TdHJpbmciLGZ1bmN0aW9uKCl7dmFyIGU9by5jYWxsKHRoaXMpO3JldHVybiBlPT09ZT9pLmNhbGwodGhpcyk6IkludmFsaWQgRGF0ZSJ9KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMjEpKCJ0b1ByaW1pdGl2ZSIpLGk9RGF0ZS5wcm90b3R5cGU7biBpbiBpfHxyKDU0KShpLG4scig4MzcpKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyKSxpPXIoODIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZigic3RyaW5nIiE9PWUmJiJudW1iZXIiIT09ZSYmImRlZmF1bHQiIT09ZSl0aHJvdyBUeXBlRXJyb3IoIkluY29ycmVjdCBoaW50Iik7cmV0dXJuIGkobih0aGlzKSwibnVtYmVyIiE9ZSl9fSxmdW5jdGlvbihlLHQscil7dmFyIG49cigyKTtuKG4uUywiQXJyYXkiLHtpc0FycmF5OnIoMTgxKX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoNTgpLGk9cigyKSxvPXIoMzYpLGE9cig0MzUpLHM9cigyNjcpLHU9cigyMyksYz1yKDI2OCksZj1yKDI2OSk7aShpLlMraS5GKiFyKDE4MikoZnVuY3Rpb24oZSl7QXJyYXkuZnJvbShlKX0pLCJBcnJheSIse2Zyb206ZnVuY3Rpb24oZSl7dmFyIHQscixpLGwsaD1vKGUpLHA9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxkPWFyZ3VtZW50cy5sZW5ndGgseT1kPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxnPXZvaWQgMCE9PXksdj0wLG09ZihoKTtpZihnJiYoeT1uKHksZD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsMikpLHZvaWQgMD09bXx8cD09QXJyYXkmJnMobSkpZm9yKHI9bmV3IHAodD11KGgubGVuZ3RoKSk7dD52O3YrKyljKHIsdixnP3koaFt2XSx2KTpoW3ZdKTtlbHNlIGZvcihsPW0uY2FsbChoKSxyPW5ldyBwOyEoaT1sLm5leHQoKSkuZG9uZTt2KyspYyhyLHYsZz9hKGwseSxbaS52YWx1ZSx2XSwhMCk6aS52YWx1ZSk7cmV0dXJuIHIubGVuZ3RoPXYscn19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cigyNjgpO24obi5TK24uRipyKDE0KShmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIShBcnJheS5vZi5jYWxsKGUpaW5zdGFuY2VvZiBlKX0pLCJBcnJheSIse29mOmZ1bmN0aW9uKCl7Zm9yKHZhciBlPTAsdD1hcmd1bWVudHMubGVuZ3RoLHI9bmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXkpKHQpO3Q+ZTspaShyLGUsYXJndW1lbnRzW2UrK10pO3JldHVybiByLmxlbmd0aD10LHJ9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNTEpLG89W10uam9pbjtuKG4uUCtuLkYqKHIoMTQ1KSE9T2JqZWN0fHwhcig1NSkobykpLCJBcnJheSIse2pvaW46ZnVuY3Rpb24oZSl7cmV0dXJuIG8uY2FsbChpKHRoaXMpLHZvaWQgMD09PWU/IiwiOmUpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDI1MSksbz1yKDcwKSxhPXIoOTYpLHM9cigyMyksdT1bXS5zbGljZTtuKG4uUCtuLkYqcigxNCkoZnVuY3Rpb24oKXtpJiZ1LmNhbGwoaSl9KSwiQXJyYXkiLHtzbGljZTpmdW5jdGlvbihlLHQpe3ZhciByPXModGhpcy5sZW5ndGgpLG49byh0aGlzKTtpZih0PXZvaWQgMD09PXQ/cjp0LCJBcnJheSI9PW4pcmV0dXJuIHUuY2FsbCh0aGlzLGUsdCk7Zm9yKHZhciBpPWEoZSxyKSxjPWEodCxyKSxmPXMoYy1pKSxsPW5ldyBBcnJheShmKSxoPTA7aDxmO2grKylsW2hdPSJTdHJpbmciPT1uP3RoaXMuY2hhckF0KGkraCk6dGhpc1tpK2hdO3JldHVybiBsfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDU5KSxvPXIoMzYpLGE9cigxNCkscz1bXS5zb3J0LHU9WzEsMiwzXTtuKG4uUCtuLkYqKGEoZnVuY3Rpb24oKXt1LnNvcnQodm9pZCAwKX0pfHwhYShmdW5jdGlvbigpe3Uuc29ydChudWxsKX0pfHwhcig1NSkocykpLCJBcnJheSIse3NvcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/cy5jYWxsKG8odGhpcykpOnMuY2FsbChvKHRoaXMpLGkoZSkpfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDYzKSgwKSxvPXIoNTUpKFtdLmZvckVhY2gsITApO24obi5QK24uRiohbywiQXJyYXkiLHtmb3JFYWNoOmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHNbMV0pfX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxMyksaT1yKDE4MSksbz1yKDIxKSgic3BlY2llcyIpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4gaShlKSYmKCJmdW5jdGlvbiIhPXR5cGVvZih0PWUuY29uc3RydWN0b3IpfHx0IT09QXJyYXkmJiFpKHQucHJvdG90eXBlKXx8KHQ9dm9pZCAwKSxuKHQpJiZudWxsPT09KHQ9dFtvXSkmJih0PXZvaWQgMCkpLHZvaWQgMD09PXQ/QXJyYXk6dH19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNjMpKDEpO24obi5QK24uRiohcig1NSkoW10ubWFwLCEwKSwiQXJyYXkiLHttYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNjMpKDIpO24obi5QK24uRiohcig1NSkoW10uZmlsdGVyLCEwKSwiQXJyYXkiLHtmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNjMpKDMpO24obi5QK24uRiohcig1NSkoW10uc29tZSwhMCksIkFycmF5Iix7c29tZTpmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzLGUsYXJndW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MykoNCk7bihuLlArbi5GKiFyKDU1KShbXS5ldmVyeSwhMCksIkFycmF5Iix7ZXZlcnk6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNDM3KTtuKG4uUCtuLkYqIXIoNTUpKFtdLnJlZHVjZSwhMCksIkFycmF5Iix7cmVkdWNlOmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoLGFyZ3VtZW50c1sxXSwhMSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNDM3KTtuKG4uUCtuLkYqIXIoNTUpKFtdLnJlZHVjZVJpZ2h0LCEwKSwiQXJyYXkiLHtyZWR1Y2VSaWdodDpmdW5jdGlvbihlKXtyZXR1cm4gaSh0aGlzLGUsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHNbMV0sITApfX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDE3OSkoITEpLG89W10uaW5kZXhPZixhPSEhbyYmMS9bMV0uaW5kZXhPZigxLC0wKTwwO24obi5QK24uRiooYXx8IXIoNTUpKG8pKSwiQXJyYXkiLHtpbmRleE9mOmZ1bmN0aW9uKGUpe3JldHVybiBhP28uYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwOmkodGhpcyxlLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyKSxpPXIoNTEpLG89cig2MCksYT1yKDIzKSxzPVtdLmxhc3RJbmRleE9mLHU9ISFzJiYxL1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwO24obi5QK24uRioodXx8IXIoNTUpKHMpKSwiQXJyYXkiLHtsYXN0SW5kZXhPZjpmdW5jdGlvbihlKXtpZih1KXJldHVybiBzLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDt2YXIgdD1pKHRoaXMpLHI9YSh0Lmxlbmd0aCksbj1yLTE7Zm9yKGFyZ3VtZW50cy5sZW5ndGg+MSYmKG49TWF0aC5taW4obixvKGFyZ3VtZW50c1sxXSkpKSxuPDAmJihuPXIrbik7bj49MDtuLS0paWYobiBpbiB0JiZ0W25dPT09ZSlyZXR1cm4gbnx8MDtyZXR1cm4tMX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlAsIkFycmF5Iix7Y29weVdpdGhpbjpyKDQzOCl9KSxyKDEwMCkoImNvcHlXaXRoaW4iKX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMik7bihuLlAsIkFycmF5Iix7ZmlsbDpyKDI3MCl9KSxyKDEwMCkoImZpbGwiKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MykoNSksbz0hMDsiZmluZCJpbltdJiZBcnJheSgxKS5maW5kKGZ1bmN0aW9uKCl7bz0hMX0pLG4obi5QK24uRipvLCJBcnJheSIse2ZpbmQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGkodGhpcyxlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxyKDEwMCkoImZpbmQiKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDIpLGk9cig2MykoNiksbz0iZmluZEluZGV4IixhPSEwO28gaW5bXSYmQXJyYXkoMSlbb10oZnVuY3Rpb24oKXthPSExfSksbihuLlArbi5GKmEsIkFycmF5Iix7ZmluZEluZGV4OmZ1bmN0aW9uKGUpe3JldHVybiBpKHRoaXMsZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSkscigxMDApKG8pfSxmdW5jdGlvbihlLHQscil7cigxMTIpKCJBcnJheSIpfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxNyksaT1yKDI1OCksbz1yKDI4KS5mLGE9cig5OCkuZixzPXIoMjY1KSx1PXIoMTgzKSxjPW4uUmVnRXhwLGY9YyxsPWMucHJvdG90eXBlLGg9L2EvZyxwPS9hL2csZD1uZXcgYyhoKSE9PWg7aWYocigyOSkmJighZHx8cigxNCkoZnVuY3Rpb24oKXtyZXR1cm4gcFtyKDIxKSgibWF0Y2giKV09ITEsYyhoKSE9aHx8YyhwKT09cHx8Ii9hL2kiIT1jKGgsImkiKX0pKSl7Yz1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXMgaW5zdGFuY2VvZiBjLG49cyhlKSxvPXZvaWQgMD09PXQ7cmV0dXJuIXImJm4mJmUuY29uc3RydWN0b3I9PT1jJiZvP2U6aShkP25ldyBmKG4mJiFvP2Uuc291cmNlOmUsdCk6Zigobj1lIGluc3RhbmNlb2YgYyk/ZS5zb3VyY2U6ZSxuJiZvP3UuY2FsbChlKTp0KSxyP3RoaXM6bCxjKX07Zm9yKHZhciB5PWZ1bmN0aW9uKGUpe2UgaW4gY3x8byhjLGUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZltlXX0sc2V0OmZ1bmN0aW9uKHQpe2ZbZV09dH19KX0sZz1hKGYpLHY9MDtnLmxlbmd0aD52Oyl5KGdbdisrXSk7bC5jb25zdHJ1Y3Rvcj1jLGMucHJvdG90eXBlPWwscig0OSkobiwiUmVnRXhwIixjKX1yKDExMikoIlJlZ0V4cCIpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3IoNDQyKTt2YXIgbj1yKDEyKSxpPXIoMTgzKSxvPXIoMjkpLGE9Ly4vLnRvU3RyaW5nLHM9ZnVuY3Rpb24oZSl7cig0OSkoUmVnRXhwLnByb3RvdHlwZSwidG9TdHJpbmciLGUsITApfTtyKDE0KShmdW5jdGlvbigpe3JldHVybiIvYS9iIiE9YS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSk/cyhmdW5jdGlvbigpe3ZhciBlPW4odGhpcyk7cmV0dXJuIi8iLmNvbmNhdChlLnNvdXJjZSwiLyIsImZsYWdzImluIGU/ZS5mbGFnczohbyYmZSBpbnN0YW5jZW9mIFJlZ0V4cD9pLmNhbGwoZSk6dm9pZCAwKX0pOiJ0b1N0cmluZyIhPWEubmFtZSYmcyhmdW5jdGlvbigpe3JldHVybiBhLmNhbGwodGhpcyl9KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyKSxpPXIoMjMpLG89cigyNzIpLGE9cigxODQpO3IoMTg1KSgibWF0Y2giLDEsZnVuY3Rpb24oZSx0LHIscyl7cmV0dXJuW2Z1bmN0aW9uKHIpe3ZhciBuPWUodGhpcyksaT12b2lkIDA9PXI/dm9pZCAwOnJbdF07cmV0dXJuIHZvaWQgMCE9PWk/aS5jYWxsKHIsbik6bmV3IFJlZ0V4cChyKVt0XShTdHJpbmcobikpfSxmdW5jdGlvbihlKXt2YXIgdD1zKHIsZSx0aGlzKTtpZih0LmRvbmUpcmV0dXJuIHQudmFsdWU7dmFyIHU9bihlKSxjPVN0cmluZyh0aGlzKTtpZighdS5nbG9iYWwpcmV0dXJuIGEodSxjKTt2YXIgZj11LnVuaWNvZGU7dS5sYXN0SW5kZXg9MDtmb3IodmFyIGwsaD1bXSxwPTA7bnVsbCE9PShsPWEodSxjKSk7KXt2YXIgZD1TdHJpbmcobFswXSk7aFtwXT1kLCIiPT09ZCYmKHUubGFzdEluZGV4PW8oYyxpKHUubGFzdEluZGV4KSxmKSkscCsrfXJldHVybiAwPT09cD9udWxsOmh9XX0pfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMTIpLGk9cigzNiksbz1yKDIzKSxhPXIoNjApLHM9cigyNzIpLHU9cigxODQpLGM9TWF0aC5tYXgsZj1NYXRoLm1pbixsPU1hdGguZmxvb3IsaD0vXCQoWyQmYCddfFxkXGQ/fDxbXj5dKj4pL2cscD0vXCQoWyQmYCddfFxkXGQ/KS9nO3IoMTg1KSgicmVwbGFjZSIsMixmdW5jdGlvbihlLHQscixkKXtyZXR1cm5bZnVuY3Rpb24obixpKXt2YXIgbz1lKHRoaXMpLGE9dm9pZCAwPT1uP3ZvaWQgMDpuW3RdO3JldHVybiB2b2lkIDAhPT1hP2EuY2FsbChuLG8saSk6ci5jYWxsKFN0cmluZyhvKSxuLGkpfSxmdW5jdGlvbihlLHQpe3ZhciBpPWQocixlLHRoaXMsdCk7aWYoaS5kb25lKXJldHVybiBpLnZhbHVlO3ZhciBsPW4oZSksaD1TdHJpbmcodGhpcykscD0iZnVuY3Rpb24iPT09dHlwZW9mIHQ7cHx8KHQ9U3RyaW5nKHQpKTt2YXIgZz1sLmdsb2JhbDtpZihnKXt2YXIgdj1sLnVuaWNvZGU7bC5sYXN0SW5kZXg9MH1mb3IodmFyIG09W107Oyl7dmFyIGI9dShsLGgpO2lmKG51bGw9PT1iKWJyZWFrO2lmKG0ucHVzaChiKSwhZylicmVhazsiIj09PVN0cmluZyhiWzBdKSYmKGwubGFzdEluZGV4PXMoaCxvKGwubGFzdEluZGV4KSx2KSl9Zm9yKHZhciBfLFM9IiIsRT0wLHc9MDt3PG0ubGVuZ3RoO3crKyl7Yj1tW3ddO2Zvcih2YXIgVD1TdHJpbmcoYlswXSksQT1jKGYoYShiLmluZGV4KSxoLmxlbmd0aCksMCksQz1bXSx4PTE7eDxiLmxlbmd0aDt4KyspQy5wdXNoKHZvaWQgMD09PShfPWJbeF0pP186U3RyaW5nKF8pKTt2YXIgST1iLmdyb3VwcztpZihwKXt2YXIgaz1bVF0uY29uY2F0KEMsQSxoKTt2b2lkIDAhPT1JJiZrLnB1c2goSSk7dmFyIE89U3RyaW5nKHQuYXBwbHkodm9pZCAwLGspKX1lbHNlIE89eShULGgsQSxDLEksdCk7QT49RSYmKFMrPWguc2xpY2UoRSxBKStPLEU9QStULmxlbmd0aCl9cmV0dXJuIFMraC5zbGljZShFKX1dO2Z1bmN0aW9uIHkoZSx0LG4sbyxhLHMpe3ZhciB1PW4rZS5sZW5ndGgsYz1vLmxlbmd0aCxmPXA7cmV0dXJuIHZvaWQgMCE9PWEmJihhPWkoYSksZj1oKSxyLmNhbGwocyxmLGZ1bmN0aW9uKHIsaSl7dmFyIHM7c3dpdGNoKGkuY2hhckF0KDApKXtjYXNlIiQiOnJldHVybiIkIjtjYXNlIiYiOnJldHVybiBlO2Nhc2UiYCI6cmV0dXJuIHQuc2xpY2UoMCxuKTtjYXNlIiciOnJldHVybiB0LnNsaWNlKHUpO2Nhc2UiPCI6cz1hW2kuc2xpY2UoMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIGY9K2k7aWYoMD09PWYpcmV0dXJuIHI7aWYoZj5jKXt2YXIgaD1sKGYvMTApO3JldHVybiAwPT09aD9yOmg8PWM/dm9pZCAwPT09b1toLTFdP2kuY2hhckF0KDEpOm9baC0xXStpLmNoYXJBdCgxKTpyfXM9b1tmLTFdfXJldHVybiB2b2lkIDA9PT1zPyIiOnN9KX19KX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDEyKSxpPXIoNDI3KSxvPXIoMTg0KTtyKDE4NSkoInNlYXJjaCIsMSxmdW5jdGlvbihlLHQscixhKXtyZXR1cm5bZnVuY3Rpb24ocil7dmFyIG49ZSh0aGlzKSxpPXZvaWQgMD09cj92b2lkIDA6clt0XTtyZXR1cm4gdm9pZCAwIT09aT9pLmNhbGwocixuKTpuZXcgUmVnRXhwKHIpW3RdKFN0cmluZyhuKSl9LGZ1bmN0aW9uKGUpe3ZhciB0PWEocixlLHRoaXMpO2lmKHQuZG9uZSlyZXR1cm4gdC52YWx1ZTt2YXIgcz1uKGUpLHU9U3RyaW5nKHRoaXMpLGM9cy5sYXN0SW5kZXg7aShjLDApfHwocy5sYXN0SW5kZXg9MCk7dmFyIGY9byhzLHUpO3JldHVybiBpKHMubGFzdEluZGV4LGMpfHwocy5sYXN0SW5kZXg9YyksbnVsbD09PWY/LTE6Zi5pbmRleH1dfSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cigyNjUpLGk9cigxMiksbz1yKDE0OSksYT1yKDI3Mikscz1yKDIzKSx1PXIoMTg0KSxjPXIoMjcxKSxmPXIoMTQpLGw9TWF0aC5taW4saD1bXS5wdXNoLHA9IWYoZnVuY3Rpb24oKXtSZWdFeHAoNDI5NDk2NzI5NSwieSIpfSk7cigxODUpKCJzcGxpdCIsMixmdW5jdGlvbihlLHQscixmKXt2YXIgZDtyZXR1cm4gZD0iYyI9PSJhYmJjIi5zcGxpdCgvKGIpKi8pWzFdfHw0IT0idGVzdCIuc3BsaXQoLyg/OikvLC0xKS5sZW5ndGh8fDIhPSJhYiIuc3BsaXQoLyg/OmFiKSovKS5sZW5ndGh8fDQhPSIuIi5zcGxpdCgvKC4/KSguPykvKS5sZW5ndGh8fCIuIi5zcGxpdCgvKCkoKS8pLmxlbmd0aD4xfHwiIi5zcGxpdCgvLj8vKS5sZW5ndGg/ZnVuY3Rpb24oZSx0KXt2YXIgaT1TdHJpbmcodGhpcyk7aWYodm9pZCAwPT09ZSYmMD09PXQpcmV0dXJuW107aWYoIW4oZSkpcmV0dXJuIHIuY2FsbChpLGUsdCk7Zm9yKHZhciBvLGEscyx1PVtdLGY9KGUuaWdub3JlQ2FzZT8iaSI6IiIpKyhlLm11bHRpbGluZT8ibSI6IiIpKyhlLnVuaWNvZGU/InUiOiIiKSsoZS5zdGlja3k/InkiOiIiKSxsPTAscD12b2lkIDA9PT10PzQyOTQ5NjcyOTU6dD4+PjAsZD1uZXcgUmVnRXhwKGUuc291cmNlLGYrImciKTsobz1jLmNhbGwoZCxpKSkmJiEoKGE9ZC5sYXN0SW5kZXgpPmwmJih1LnB1c2goaS5zbGljZShsLG8uaW5kZXgpKSxvLmxlbmd0aD4xJiZvLmluZGV4PGkubGVuZ3RoJiZoLmFwcGx5KHUsby5zbGljZSgxKSkscz1vWzBdLmxlbmd0aCxsPWEsdS5sZW5ndGg+PXApKTspZC5sYXN0SW5kZXg9PT1vLmluZGV4JiZkLmxhc3RJbmRleCsrO3JldHVybiBsPT09aS5sZW5ndGg/IXMmJmQudGVzdCgiIil8fHUucHVzaCgiIik6dS5wdXNoKGkuc2xpY2UobCkpLHUubGVuZ3RoPnA/dS5zbGljZSgwLHApOnV9OiIwIi5zcGxpdCh2b2lkIDAsMCkubGVuZ3RoP2Z1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWUmJjA9PT10P1tdOnIuY2FsbCh0aGlzLGUsdCl9OnIsW2Z1bmN0aW9uKHIsbil7dmFyIGk9ZSh0aGlzKSxvPXZvaWQgMD09cj92b2lkIDA6clt0XTtyZXR1cm4gdm9pZCAwIT09bz9vLmNhbGwocixpLG4pOmQuY2FsbChTdHJpbmcoaSkscixuKX0sZnVuY3Rpb24oZSx0KXt2YXIgbj1mKGQsZSx0aGlzLHQsZCE9PXIpO2lmKG4uZG9uZSlyZXR1cm4gbi52YWx1ZTt2YXIgYz1pKGUpLGg9U3RyaW5nKHRoaXMpLHk9byhjLFJlZ0V4cCksZz1jLnVuaWNvZGUsdj0oYy5pZ25vcmVDYXNlPyJpIjoiIikrKGMubXVsdGlsaW5lPyJtIjoiIikrKGMudW5pY29kZT8idSI6IiIpKyhwPyJ5IjoiZyIpLG09bmV3IHkocD9jOiJeKD86IitjLnNvdXJjZSsiKSIsdiksYj12b2lkIDA9PT10PzQyOTQ5NjcyOTU6dD4+PjA7aWYoMD09PWIpcmV0dXJuW107aWYoMD09PWgubGVuZ3RoKXJldHVybiBudWxsPT09dShtLGgpP1toXTpbXTtmb3IodmFyIF89MCxTPTAsRT1bXTtTPGgubGVuZ3RoOyl7bS5sYXN0SW5kZXg9cD9TOjA7dmFyIHcsVD11KG0scD9oOmguc2xpY2UoUykpO2lmKG51bGw9PT1UfHwodz1sKHMobS5sYXN0SW5kZXgrKHA/MDpTKSksaC5sZW5ndGgpKT09PV8pUz1hKGgsUyxnKTtlbHNle2lmKEUucHVzaChoLnNsaWNlKF8sUykpLEUubGVuZ3RoPT09YilyZXR1cm4gRTtmb3IodmFyIEE9MTtBPD1ULmxlbmd0aC0xO0ErKylpZihFLnB1c2goVFtBXSksRS5sZW5ndGg9PT1iKXJldHVybiBFO1M9Xz13fX1yZXR1cm4gRS5wdXNoKGguc2xpY2UoXykpLEV9XX0pfSxmdW5jdGlvbihlLHQscil7dmFyIG49cigxNyksaT1yKDI1MCkuc2V0LG89bi5NdXRhdGlvbk9ic2VydmVyfHxuLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsYT1uLnByb2Nlc3Mscz1uLlByb21pc2UsdT0icHJvY2VzcyI9PXIoNzApKGEpO2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBlLHQscixjPWZ1bmN0aW9uKCl7dmFyIG4saTtmb3IodSYmKG49YS5kb21haW4pJiZuLmV4aXQoKTtlOyl7aT1lLmZuLGU9ZS5uZXh0O3RyeXtpKCl9Y2F0Y2gobyl7dGhyb3cgZT9yKCk6dD12b2lkIDAsb319dD12b2lkIDAsbiYmbi5lbnRlcigpfTtpZih1KXI9ZnVuY3Rpb24oKXthLm5leHRUaWNrKGMpfTtlbHNlIGlmKCFvfHxuLm5hdmlnYXRvciYmbi5uYXZpZ2F0b3Iuc3RhbmRhbG9uZSlpZihzJiZzLnJlc29sdmUpe3ZhciBmPXMucmVzb2x2ZSh2b2lkIDApO3I9ZnVuY3Rpb24oKXtmLnRoZW4oYyl9fWVsc2Ugcj1mdW5jdGlvbigpe2kuY2FsbChuLGMpfTtlbHNle3ZhciBsPSEwLGg9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO25ldyBvKGMpLm9ic2VydmUoaCx7Y2hhcmFjdGVyRGF0YTohMH0pLHI9ZnVuY3Rpb24oKXtoLmRhdGE9bD0hbH19cmV0dXJuIGZ1bmN0aW9uKG4pe3ZhciBpPXtmbjpuLG5leHQ6dm9pZCAwfTt0JiYodC5uZXh0PWkpLGV8fChlPWkscigpKSx0PWl9fX0sZnVuY3Rpb24oZSx0KXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybntlOiExLHY6ZSgpfX1jYXRjaCh0KXtyZXR1cm57ZTohMCx2OnR9fX19LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0NDYpLGk9cigxMDEpO2UuZXhwb3J0cz1yKDE4NykoIk1hcCIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PW4uZ2V0RW50cnkoaSh0aGlzLCJNYXAiKSxlKTtyZXR1cm4gdCYmdC52fSxzZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5kZWYoaSh0aGlzLCJNYXAiKSwwPT09ZT8wOmUsdCl9fSxuLCEwKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDQ0NiksaT1yKDEwMSk7ZS5leHBvcnRzPXIoMTg3KSgiU2V0IixmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0aGlzLGFyZ3VtZW50cy5sZW5ndGg+MD9hcmd1bWVudHNbMF06dm9pZCAwKX19LHthZGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG4uZGVmKGkodGhpcywiU2V0IiksZT0wPT09ZT8wOmUsZSl9fSxuKX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPXIoMTcpLG89cig2MykoMCksYT1yKDQ5KSxzPXIoODMpLHU9cig0MjYpLGM9cig0NDcpLGY9cigxMyksbD1yKDEwMSksaD1yKDEwMSkscD0haS5BY3RpdmVYT2JqZWN0JiYiQWN0aXZlWE9iamVjdCJpbiBpLGQ9cy5nZXRXZWFrLHk9T2JqZWN0LmlzRXh0ZW5zaWJsZSxnPWMudWZzdG9yZSx2PWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlKHRoaXMsYXJndW1lbnRzLmxlbmd0aD4wP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sbT17Z2V0OmZ1bmN0aW9uKGUpe2lmKGYoZSkpe3ZhciB0PWQoZSk7cmV0dXJuITA9PT10P2cobCh0aGlzLCJXZWFrTWFwIikpLmdldChlKTp0P3RbdGhpcy5faV06dm9pZCAwfX0sc2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGMuZGVmKGwodGhpcywiV2Vha01hcCIpLGUsdCl9fSxiPWUuZXhwb3J0cz1yKDE4NykoIldlYWtNYXAiLHYsbSxjLCEwLCEwKTtoJiZwJiYodSgobj1jLmdldENvbnN0cnVjdG9yKHYsIldlYWtNYXAiKSkucHJvdG90eXBlLG0pLHMuTkVFRD0hMCxvKFsiZGVsZXRlIiwiaGFzIiwiZ2V0Iiwic2V0Il0sZnVuY3Rpb24oZSl7dmFyIHQ9Yi5wcm90b3R5cGUscj10W2VdO2EodCxlLGZ1bmN0aW9uKHQsaSl7aWYoZih0KSYmIXkodCkpe3RoaXMuX2Z8fCh0aGlzLl9mPW5ldyBuKTt2YXIgbz10aGlzLl9mW2VdKHQsaSk7cmV0dXJuInNldCI9PWU/dGhpczpvfXJldHVybiByLmNhbGwodGhpcyx0LGkpfSl9KSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig0NDcpLGk9cigxMDEpO3IoMTg3KSgiV2Vha1NldCIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSx7YWRkOmZ1bmN0aW9uKGUpe3JldHVybiBuLmRlZihpKHRoaXMsIldlYWtTZXQiKSxlLCEwKX19LG4sITEsITApfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3ZhciBuPXIoMiksaT1yKDE4OCksbz1yKDI3NCksYT1yKDEyKSxzPXIoOTYpLHU9cigyMyksYz1yKDEzKSxmPXIoMTcpLkFycmF5QnVmZmVyLGw9cigxNDkpLGg9by5BcnJheUJ1ZmZlcixwPW8uRGF0YVZpZXcsZD1pLkFCViYmZi5pc1ZpZXcseT1oLnByb3RvdHlwZS5zbGljZSxnPWkuVklFVztuKG4uRytuLlcrbi5GKihmIT09aCkse0FycmF5QnVmZmVyOmh9KSxuKG4uUytuLkYqIWkuQ09OU1RSLCJBcnJheUJ1ZmZlciIse2lzVmlldzpmdW5jdGlvbihlKXtyZXR1cm4gZCYmZChlKXx8YyhlKSYmZyBpbiBlfX0pLG4obi5QK24uVStuLkYqcigxNCkoZnVuY3Rpb24oKXtyZXR1cm4hbmV3IGgoMikuc2xpY2UoMSx2b2lkIDApLmJ5dGVMZW5ndGh9KSwiQXJyYXlCdWZmZXIiLHtzbGljZTpmdW5jdGlvbihlLHQpe2lmKHZvaWQgMCE9PXkmJnZvaWQgMD09PXQpcmV0dXJuIHkuY2FsbChhKHRoaXMpLGUpO2Zvcih2YXIgcj1hKHRoaXMpLmJ5dGVMZW5ndGgsbj1zKGUsciksaT1zKHZvaWQgMD09PXQ/cjp0LHIpLG89bmV3KGwodGhpcyxoKSkodShpLW4pKSxjPW5ldyBwKHRoaXMpLGY9bmV3IHAobyksZD0wO248aTspZi5zZXRVaW50OChkKyssYy5nZXRVaW50OChuKyspKTtyZXR1cm4gb319KSxyKDExMikoIkFycmF5QnVmZmVyIil9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpO24obi5HK24uVytuLkYqIXIoMTg4KS5BQlYse0RhdGFWaWV3OnIoMjc0KS5EYXRhVmlld30pfSxmdW5jdGlvbihlLHQscil7cig3MikoIkludDgiLDEsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJVaW50OCIsMSxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4pe3JldHVybiBlKHRoaXMsdCxyLG4pfX0pfSxmdW5jdGlvbihlLHQscil7cig3MikoIlVpbnQ4IiwxLGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LHIsbil7cmV0dXJuIGUodGhpcyx0LHIsbil9fSwhMCl9LGZ1bmN0aW9uKGUsdCxyKXtyKDcyKSgiSW50MTYiLDIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJVaW50MTYiLDIsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJJbnQzMiIsNCxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4pe3JldHVybiBlKHRoaXMsdCxyLG4pfX0pfSxmdW5jdGlvbihlLHQscil7cig3MikoIlVpbnQzMiIsNCxmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4pe3JldHVybiBlKHRoaXMsdCxyLG4pfX0pfSxmdW5jdGlvbihlLHQscil7cig3MikoIkZsb2F0MzIiLDQsZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQscixuKXtyZXR1cm4gZSh0aGlzLHQscixuKX19KX0sZnVuY3Rpb24oZSx0LHIpe3IoNzIpKCJGbG9hdDY0Iiw4LGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LHIsbil7cmV0dXJuIGUodGhpcyx0LHIsbil9fSl9LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbj1yKDIpLGk9cig1OSksbz1yKDEyKSxhPShyKDE3KS5SZWZsZWN0fHx7fSkuYXBwbHkscz1GdW5jdGlvbi5hcHBseTtuKG4uUytuLkYqIXIoMTQpKGZ1bmN0aW9uKCl7YShmdW5jdGlvbigpe30pfSksIlJlZmxlY3QiLHthcHBseTpmdW5jdGlvbihlLHQscil7dmFyIG49aShlKSx1PW8ocik7cmV0dXJuIGE/YShuLHQsdSk6cy5jYWxsKG4sdCx1KX19KX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXIoMiksaT1yKDk3KSxvPXIoNTkpLGE9cigxMikscz1yKDEzKSx1PXIoMTQpLGM9cig0MjgpLGY9KHIoMTcpLlJlZmxlY3R8fHt9KS5jb25zdHJ1Y3QsbD11KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe31yZXR1cm4hKGYoZnVuY3Rpb24oKXt9LFtdLGUpaW5zdGFuY2VvZiBlKX0pLGg9IXUoZnVuY3Rpb24oKXtmKGZ1bmN0aW9uKCl7fSl9KTtuKG4uUytuLkYqKGx8fGgpLCJSZWZsZWN0Iix7Y29uc3RydWN0OmZ1bmN0aW9uKGUsdCl7byhlKSxhKHQpO3ZhciByPWFyZ3VtZW50cy5sZW5ndGg8Mz9lOm8oYXJndW1lbnRzWzJdKTtpZihoJiYhbClyZXR1cm4gZihlLHQscik7aWYoZT09cil7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDA6cmV0dXJuIG5ldyBlO2Nhc2UgMTpyZXR1cm4gbmV3IGUodFs="
}