mberr · data · 2.7c767379.chunk.js_25
{
"2.7c767379.chunk.js_25": "base64:O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIHIoZSxvLGMpe2lmKG4rKz5zKXRocm93IG49MCxuZXcgRXJyb3IoIkNhbGwgc3RhY2sgb3ZlcmZsb3cgZm9yICIrYyk7aWYoIiI9PT1lKXRocm93IG5ldyBFcnJvcihvKyIoKTogJyIrYysiJyBtdXN0IGNvbnRhaW4gYSBub24td2hpdGVzcGFjZSBzdHJpbmciKTt2YXIgZj1mdW5jdGlvbihlKXt2YXIgdD1bXSxyPVtdLG49L1tcLjAtOV0oWyVhLXpdKykvZ2ksaT1uLmV4ZWMoZSk7Zm9yKDtpOylpJiZpWzFdJiYoLTE9PT1yLmluZGV4T2YoaVsxXS50b0xvd2VyQ2FzZSgpKSYmKHQucHVzaChpWzFdKSxyLnB1c2goaVsxXS50b0xvd2VyQ2FzZSgpKSksaT1uLmV4ZWMoZSkpO3JldHVybiB0fShlPWZ1bmN0aW9uKGUsdCl7ZT1lLnJlcGxhY2UoLygoPzpcLVthLXpdK1wtKT9jYWxjKS9nLCIiKTt2YXIgbixvPSIiLGE9ZTtmb3IoO249dS5leGVjKGEpOyl7blswXS5pbmRleD4wJiYobys9YS5zdWJzdHJpbmcoMCxuWzBdLmluZGV4KSk7dmFyIHM9aSgiKCIsIikiLGEuc3Vic3RyaW5nKFswXS5pbmRleCkpO2lmKCIiPT09cy5ib2R5KXRocm93IG5ldyBFcnJvcigiJyIrZSsiJyBtdXN0IGNvbnRhaW4gYSBub24td2hpdGVzcGFjZSBzdHJpbmciKTt2YXIgYz1yKHMuYm9keSwiIix0KTtvKz1zLnByZStjLGE9cy5wb3N0fXJldHVybiBvK2F9KGUsYykpO2lmKGYubGVuZ3RoPjF8fGUuaW5kZXhPZigidmFyKCIpPi0xKXJldHVybiBvKyIoIitlKyIpIjt2YXIgbD1mWzBdfHwiIjsiJSI9PT1sJiYoZT1lLnJlcGxhY2UoL1xiWzAtOVwuXSslL2csZnVuY3Rpb24oZSl7cmV0dXJuLjAxKnBhcnNlRmxvYXQoZS5zbGljZSgwLC0xKSl9KSk7dmFyIGgscD1lLnJlcGxhY2UobmV3IFJlZ0V4cChsLCJnaSIpLCIiKTt0cnl7aD1hLmV2YWwocCl9Y2F0Y2goZCl7cmV0dXJuIG8rIigiK2UrIikifXJldHVybiIlIj09PWwmJihoKj0xMDApLChvLmxlbmd0aHx8IiUiPT09bCkmJihoPU1hdGgucm91bmQoaCp0KS90KSxoKz1sfXJldHVybiBuPTAsdD1NYXRoLnBvdygxMCx2b2lkIDA9PT10PzU6dCksZT1lLnJlcGxhY2UoL1xuKy9nLCIgIiksbyhlLC8oKD86XC1bYS16XStcLSk/Y2FsYylcKC8scil9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuYnl0ZUxlbmd0aD1mdW5jdGlvbihlKXt2YXIgdD1jKGUpLHI9dFswXSxuPXRbMV07cmV0dXJuIDMqKHIrbikvNC1ufSx0LnRvQnl0ZUFycmF5PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPWMoZSksbj1yWzBdLGE9clsxXSxzPW5ldyBvKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gMyoodCtyKS80LXJ9KDAsbixhKSksdT0wLGY9YT4wP24tNDpuLGw9MDtsPGY7bCs9NCl0PWlbZS5jaGFyQ29kZUF0KGwpXTw8MTh8aVtlLmNoYXJDb2RlQXQobCsxKV08PDEyfGlbZS5jaGFyQ29kZUF0KGwrMildPDw2fGlbZS5jaGFyQ29kZUF0KGwrMyldLHNbdSsrXT10Pj4xNiYyNTUsc1t1KytdPXQ+PjgmMjU1LHNbdSsrXT0yNTUmdDsyPT09YSYmKHQ9aVtlLmNoYXJDb2RlQXQobCldPDwyfGlbZS5jaGFyQ29kZUF0KGwrMSldPj40LHNbdSsrXT0yNTUmdCk7MT09PWEmJih0PWlbZS5jaGFyQ29kZUF0KGwpXTw8MTB8aVtlLmNoYXJDb2RlQXQobCsxKV08PDR8aVtlLmNoYXJDb2RlQXQobCsyKV0+PjIsc1t1KytdPXQ+PjgmMjU1LHNbdSsrXT0yNTUmdCk7cmV0dXJuIHN9LHQuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQscj1lLmxlbmd0aCxpPXIlMyxvPVtdLGE9MCxzPXItaTthPHM7YSs9MTYzODMpby5wdXNoKGYoZSxhLGErMTYzODM+cz9zOmErMTYzODMpKTsxPT09aT8odD1lW3ItMV0sby5wdXNoKG5bdD4+Ml0rblt0PDw0JjYzXSsiPT0iKSk6Mj09PWkmJih0PShlW3ItMl08PDgpK2Vbci0xXSxvLnB1c2goblt0Pj4xMF0rblt0Pj40JjYzXStuW3Q8PDImNjNdKyI9IikpO3JldHVybiBvLmpvaW4oIiIpfTtmb3IodmFyIG49W10saT1bXSxvPSJ1bmRlZmluZWQiIT09dHlwZW9mIFVpbnQ4QXJyYXk/VWludDhBcnJheTpBcnJheSxhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixzPTAsdT1hLmxlbmd0aDtzPHU7KytzKW5bc109YVtzXSxpW2EuY2hhckNvZGVBdChzKV09cztmdW5jdGlvbiBjKGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQlND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciByPWUuaW5kZXhPZigiPSIpO3JldHVybi0xPT09ciYmKHI9dCksW3Iscj09PXQ/MDo0LXIlNF19ZnVuY3Rpb24gZihlLHQscil7Zm9yKHZhciBpLG8sYT1bXSxzPXQ7czxyO3MrPTMpaT0oZVtzXTw8MTYmMTY3MTE2ODApKyhlW3MrMV08PDgmNjUyODApKygyNTUmZVtzKzJdKSxhLnB1c2goblsobz1pKT4+MTgmNjNdK25bbz4+MTImNjNdK25bbz4+NiY2M10rbls2MyZvXSk7cmV0dXJuIGEuam9pbigiIil9aVsiLSIuY2hhckNvZGVBdCgwKV09NjIsaVsiXyIuY2hhckNvZGVBdCgwKV09NjN9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3KSxpPXIoMzA4KSxvPXIoOCkuQnVmZmVyLGE9bmV3IEFycmF5KDE2KTtmdW5jdGlvbiBzKCl7aS5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gZTw8dHxlPj4+MzItdH1mdW5jdGlvbiBjKGUsdCxyLG4saSxvLGEpe3JldHVybiB1KGUrKHQmcnx+dCZuKStpK298MCxhKSt0fDB9ZnVuY3Rpb24gZihlLHQscixuLGksbyxhKXtyZXR1cm4gdShlKyh0Jm58ciZ+bikraStvfDAsYSkrdHwwfWZ1bmN0aW9uIGwoZSx0LHIsbixpLG8sYSl7cmV0dXJuIHUoZSsodF5yXm4pK2krb3wwLGEpK3R8MH1mdW5jdGlvbiBoKGUsdCxyLG4saSxvLGEpe3JldHVybiB1KGUrKHJeKHR8fm4pKStpK298MCxhKSt0fDB9bihzLGkpLHMucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YSx0PTA7dDwxNjsrK3QpZVt0XT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0KnQpO3ZhciByPXRoaXMuX2Esbj10aGlzLl9iLGk9dGhpcy5fYyxvPXRoaXMuX2Q7cj1jKHIsbixpLG8sZVswXSwzNjE0MDkwMzYwLDcpLG89YyhvLHIsbixpLGVbMV0sMzkwNTQwMjcxMCwxMiksaT1jKGksbyxyLG4sZVsyXSw2MDYxMDU4MTksMTcpLG49YyhuLGksbyxyLGVbM10sMzI1MDQ0MTk2NiwyMikscj1jKHIsbixpLG8sZVs0XSw0MTE4NTQ4Mzk5LDcpLG89YyhvLHIsbixpLGVbNV0sMTIwMDA4MDQyNiwxMiksaT1jKGksbyxyLG4sZVs2XSwyODIxNzM1OTU1LDE3KSxuPWMobixpLG8scixlWzddLDQyNDkyNjEzMTMsMjIpLHI9YyhyLG4saSxvLGVbOF0sMTc3MDAzNTQxNiw3KSxvPWMobyxyLG4saSxlWzldLDIzMzY1NTI4NzksMTIpLGk9YyhpLG8scixuLGVbMTBdLDQyOTQ5MjUyMzMsMTcpLG49YyhuLGksbyxyLGVbMTFdLDIzMDQ1NjMxMzQsMjIpLHI9YyhyLG4saSxvLGVbMTJdLDE4MDQ2MDM2ODIsNyksbz1jKG8scixuLGksZVsxM10sNDI1NDYyNjE5NSwxMiksaT1jKGksbyxyLG4sZVsxNF0sMjc5Mjk2NTAwNiwxNykscj1mKHIsbj1jKG4saSxvLHIsZVsxNV0sMTIzNjUzNTMyOSwyMiksaSxvLGVbMV0sNDEyOTE3MDc4Niw1KSxvPWYobyxyLG4saSxlWzZdLDMyMjU0NjU2NjQsOSksaT1mKGksbyxyLG4sZVsxMV0sNjQzNzE3NzEzLDE0KSxuPWYobixpLG8scixlWzBdLDM5MjEwNjk5OTQsMjApLHI9ZihyLG4saSxvLGVbNV0sMzU5MzQwODYwNSw1KSxvPWYobyxyLG4saSxlWzEwXSwzODAxNjA4Myw5KSxpPWYoaSxvLHIsbixlWzE1XSwzNjM0NDg4OTYxLDE0KSxuPWYobixpLG8scixlWzRdLDM4ODk0Mjk0NDgsMjApLHI9ZihyLG4saSxvLGVbOV0sNTY4NDQ2NDM4LDUpLG89ZihvLHIsbixpLGVbMTRdLDMyNzUxNjM2MDYsOSksaT1mKGksbyxyLG4sZVszXSw0MTA3NjAzMzM1LDE0KSxuPWYobixpLG8scixlWzhdLDExNjM1MzE1MDEsMjApLHI9ZihyLG4saSxvLGVbMTNdLDI4NTAyODU4MjksNSksbz1mKG8scixuLGksZVsyXSw0MjQzNTYzNTEyLDkpLGk9ZihpLG8scixuLGVbN10sMTczNTMyODQ3MywxNCkscj1sKHIsbj1mKG4saSxvLHIsZVsxMl0sMjM2ODM1OTU2MiwyMCksaSxvLGVbNV0sNDI5NDU4ODczOCw0KSxvPWwobyxyLG4saSxlWzhdLDIyNzIzOTI4MzMsMTEpLGk9bChpLG8scixuLGVbMTFdLDE4MzkwMzA1NjIsMTYpLG49bChuLGksbyxyLGVbMTRdLDQyNTk2NTc3NDAsMjMpLHI9bChyLG4saSxvLGVbMV0sMjc2Mzk3NTIzNiw0KSxvPWwobyxyLG4saSxlWzRdLDEyNzI4OTMzNTMsMTEpLGk9bChpLG8scixuLGVbN10sNDEzOTQ2OTY2NCwxNiksbj1sKG4saSxvLHIsZVsxMF0sMzIwMDIzNjY1NiwyMykscj1sKHIsbixpLG8sZVsxM10sNjgxMjc5MTc0LDQpLG89bChvLHIsbixpLGVbMF0sMzkzNjQzMDA3NCwxMSksaT1sKGksbyxyLG4sZVszXSwzNTcyNDQ1MzE3LDE2KSxuPWwobixpLG8scixlWzZdLDc2MDI5MTg5LDIzKSxyPWwocixuLGksbyxlWzldLDM2NTQ2MDI4MDksNCksbz1sKG8scixuLGksZVsxMl0sMzg3MzE1MTQ2MSwxMSksaT1sKGksbyxyLG4sZVsxNV0sNTMwNzQyNTIwLDE2KSxyPWgocixuPWwobixpLG8scixlWzJdLDMyOTk2Mjg2NDUsMjMpLGksbyxlWzBdLDQwOTYzMzY0NTIsNiksbz1oKG8scixuLGksZVs3XSwxMTI2ODkxNDE1LDEwKSxpPWgoaSxvLHIsbixlWzE0XSwyODc4NjEyMzkxLDE1KSxuPWgobixpLG8scixlWzVdLDQyMzc1MzMyNDEsMjEpLHI9aChyLG4saSxvLGVbMTJdLDE3MDA0ODU1NzEsNiksbz1oKG8scixuLGksZVszXSwyMzk5OTgwNjkwLDEwKSxpPWgoaSxvLHIsbixlWzEwXSw0MjkzOTE1NzczLDE1KSxuPWgobixpLG8scixlWzFdLDIyNDAwNDQ0OTcsMjEpLHI9aChyLG4saSxvLGVbOF0sMTg3MzMxMzM1OSw2KSxvPWgobyxyLG4saSxlWzE1XSw0MjY0MzU1NTUyLDEwKSxpPWgoaSxvLHIsbixlWzZdLDI3MzQ3Njg5MTYsMTUpLG49aChuLGksbyxyLGVbMTNdLDEzMDkxNTE2NDksMjEpLHI9aChyLG4saSxvLGVbNF0sNDE0OTQ0NDIyNiw2KSxvPWgobyxyLG4saSxlWzExXSwzMTc0NzU2OTE3LDEwKSxpPWgoaSxvLHIsbixlWzJdLDcxODc4NzI1OSwxNSksbj1oKG4saSxvLHIsZVs5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2ErcnwwLHRoaXMuX2I9dGhpcy5fYitufDAsdGhpcy5fYz10aGlzLl9jK2l8MCx0aGlzLl9kPXRoaXMuX2Qrb3wwfSxzLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIGU9by5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIGUud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksZS53cml0ZUludDMyTEUodGhpcy5fYiw0KSxlLndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLGV9LGUuZXhwb3J0cz1zfSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPWk7dmFyIG49cigxMjApLkV2ZW50RW1pdHRlcjtmdW5jdGlvbiBpKCl7bi5jYWxsKHRoaXMpfXIoNykoaSxuKSxpLlJlYWRhYmxlPXIoMjA3KSxpLldyaXRhYmxlPXIoNTU2KSxpLkR1cGxleD1yKDU1NyksaS5UcmFuc2Zvcm09cig1NTgpLGkuUGFzc1Rocm91Z2g9cig1NTkpLGkuU3RyZWFtPWksaS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXM7ZnVuY3Rpb24gaSh0KXtlLndyaXRhYmxlJiYhMT09PWUud3JpdGUodCkmJnIucGF1c2UmJnIucGF1c2UoKX1mdW5jdGlvbiBvKCl7ci5yZWFkYWJsZSYmci5yZXN1bWUmJnIucmVzdW1lKCl9ci5vbigiZGF0YSIsaSksZS5vbigiZHJhaW4iLG8pLGUuX2lzU3RkaW98fHQmJiExPT09dC5lbmR8fChyLm9uKCJlbmQiLHMpLHIub24oImNsb3NlIix1KSk7dmFyIGE9ITE7ZnVuY3Rpb24gcygpe2F8fChhPSEwLGUuZW5kKCkpfWZ1bmN0aW9uIHUoKXthfHwoYT0hMCwiZnVuY3Rpb24iPT09dHlwZW9mIGUuZGVzdHJveSYmZS5kZXN0cm95KCkpfWZ1bmN0aW9uIGMoZSl7aWYoZigpLDA9PT1uLmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyBlfWZ1bmN0aW9uIGYoKXtyLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixpKSxlLnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsbyksci5yZW1vdmVMaXN0ZW5lcigiZW5kIixzKSxyLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsdSksci5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGMpLGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjKSxyLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGYpLHIucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixmKSxlLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZil9cmV0dXJuIHIub24oImVycm9yIixjKSxlLm9uKCJlcnJvciIsYyksci5vbigiZW5kIixmKSxyLm9uKCJjbG9zZSIsZiksZS5vbigiY2xvc2UiLGYpLGUuZW1pdCgicGlwZSIsciksZX19LGZ1bmN0aW9uKGUsdCxyKXsodD1lLmV4cG9ydHM9cigzMDkpKS5TdHJlYW09dCx0LlJlYWRhYmxlPXQsdC5Xcml0YWJsZT1yKDIwOCksdC5EdXBsZXg9cig4OCksdC5UcmFuc2Zvcm09cigzMTMpLHQuUGFzc1Rocm91Z2g9cig1NTUpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LG4saSl7dmFyIG89cigxNTcpO2Z1bmN0aW9uIGEoZSl7dmFyIHQ9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWUuZW50cnk7ZS5lbnRyeT1udWxsO2Zvcig7bjspe3ZhciBpPW4uY2FsbGJhY2s7dC5wZW5kaW5nY2ItLSxpKHIpLG49bi5uZXh0fXQuY29ya2VkUmVxdWVzdHNGcmVlP3QuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9ZTp0LmNvcmtlZFJlcXVlc3RzRnJlZT1lfSh0LGUpfX1lLmV4cG9ydHM9bTt2YXIgcyx1PSF0LmJyb3dzZXImJlsidjAuMTAiLCJ2MC45LiJdLmluZGV4T2YodC52ZXJzaW9uLnNsaWNlKDAsNSkpPi0xP246by5uZXh0VGljazttLldyaXRhYmxlU3RhdGU9djt2YXIgYz1yKDEyOCk7Yy5pbmhlcml0cz1yKDcpO3ZhciBmPXtkZXByZWNhdGU6cig1NTQpfSxsPXIoMzEwKSxoPXIoOCkuQnVmZmVyLHA9aS5VaW50OEFycmF5fHxmdW5jdGlvbigpe307dmFyIGQseT1yKDMxMSk7ZnVuY3Rpb24gZygpe31mdW5jdGlvbiB2KGUsdCl7cz1zfHxyKDg4KSxlPWV8fHt9O3ZhciBuPXQgaW5zdGFuY2VvZiBzO3RoaXMub2JqZWN0TW9kZT0hIWUub2JqZWN0TW9kZSxuJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFlLndyaXRhYmxlT2JqZWN0TW9kZSk7dmFyIGk9ZS5oaWdoV2F0ZXJNYXJrLGM9ZS53cml0YWJsZUhpZ2hXYXRlck1hcmssZj10aGlzLm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPWl8fDA9PT1pP2k6biYmKGN8fDA9PT1jKT9jOmYsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmZpbmFsQ2FsbGVkPSExLHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMTt2YXIgbD0hMT09PWUuZGVjb2RlU3RyaW5nczt0aGlzLmRlY29kZVN0cmluZ3M9IWwsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9ZS5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlLHQpe3ZhciByPWUuX3dyaXRhYmxlU3RhdGUsbj1yLnN5bmMsaT1yLndyaXRlY2I7aWYoZnVuY3Rpb24oZSl7ZS53cml0aW5nPSExLGUud3JpdGVjYj1udWxsLGUubGVuZ3RoLT1lLndyaXRlbGVuLGUud3JpdGVsZW49MH0ociksdCkhZnVuY3Rpb24oZSx0LHIsbixpKXstLXQucGVuZGluZ2NiLHI/KG8ubmV4dFRpY2soaSxuKSxvLm5leHRUaWNrKFQsZSx0KSxlLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxlLmVtaXQoImVycm9yIixuKSk6KGkobiksZS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsZS5lbWl0KCJlcnJvciIsbiksVChlLHQpKX0oZSxyLG4sdCxpKTtlbHNle3ZhciBhPUUocik7YXx8ci5jb3JrZWR8fHIuYnVmZmVyUHJvY2Vzc2luZ3x8IXIuYnVmZmVyZWRSZXF1ZXN0fHxTKGUsciksbj91KF8sZSxyLGEsaSk6XyhlLHIsYSxpKX19KHQsZSl9LHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGluZ2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0hMSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTAsdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IGEodGhpcyl9ZnVuY3Rpb24gbShlKXtpZihzPXN8fHIoODgpLCFkLmNhbGwobSx0aGlzKSYmISh0aGlzIGluc3RhbmNlb2YgcykpcmV0dXJuIG5ldyBtKGUpO3RoaXMuX3dyaXRhYmxlU3RhdGU9bmV3IHYoZSx0aGlzKSx0aGlzLndyaXRhYmxlPSEwLGUmJigiZnVuY3Rpb24iPT09dHlwZW9mIGUud3JpdGUmJih0aGlzLl93cml0ZT1lLndyaXRlKSwiZnVuY3Rpb24iPT09dHlwZW9mIGUud3JpdGV2JiYodGhpcy5fd3JpdGV2PWUud3JpdGV2KSwiZnVuY3Rpb24iPT09dHlwZW9mIGUuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9ZS5kZXN0cm95KSwiZnVuY3Rpb24iPT09dHlwZW9mIGUuZmluYWwmJih0aGlzLl9maW5hbD1lLmZpbmFsKSksbC5jYWxsKHRoaXMpfWZ1bmN0aW9uIGIoZSx0LHIsbixpLG8sYSl7dC53cml0ZWxlbj1uLHQud3JpdGVjYj1hLHQud3JpdGluZz0hMCx0LnN5bmM9ITAscj9lLl93cml0ZXYoaSx0Lm9ud3JpdGUpOmUuX3dyaXRlKGksbyx0Lm9ud3JpdGUpLHQuc3luYz0hMX1mdW5jdGlvbiBfKGUsdCxyLG4pe3J8fGZ1bmN0aW9uKGUsdCl7MD09PXQubGVuZ3RoJiZ0Lm5lZWREcmFpbiYmKHQubmVlZERyYWluPSExLGUuZW1pdCgiZHJhaW4iKSl9KGUsdCksdC5wZW5kaW5nY2ItLSxuKCksVChlLHQpfWZ1bmN0aW9uIFMoZSx0KXt0LmJ1ZmZlclByb2Nlc3Npbmc9ITA7dmFyIHI9dC5idWZmZXJlZFJlcXVlc3Q7aWYoZS5fd3JpdGV2JiZyJiZyLm5leHQpe3ZhciBuPXQuYnVmZmVyZWRSZXF1ZXN0Q291bnQsaT1uZXcgQXJyYXkobiksbz10LmNvcmtlZFJlcXVlc3RzRnJlZTtvLmVudHJ5PXI7Zm9yKHZhciBzPTAsdT0hMDtyOylpW3NdPXIsci5pc0J1Znx8KHU9ITEpLHI9ci5uZXh0LHMrPTE7aS5hbGxCdWZmZXJzPXUsYihlLHQsITAsdC5sZW5ndGgsaSwiIixvLmZpbmlzaCksdC5wZW5kaW5nY2IrKyx0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCxvLm5leHQ/KHQuY29ya2VkUmVxdWVzdHNGcmVlPW8ubmV4dCxvLm5leHQ9bnVsbCk6dC5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IGEodCksdC5idWZmZXJlZFJlcXVlc3RDb3VudD0wfWVsc2V7Zm9yKDtyOyl7dmFyIGM9ci5jaHVuayxmPXIuZW5jb2RpbmcsbD1yLmNhbGxiYWNrO2lmKGIoZSx0LCExLHQub2JqZWN0TW9kZT8xOmMubGVuZ3RoLGMsZixsKSxyPXIubmV4dCx0LmJ1ZmZlcmVkUmVxdWVzdENvdW50LS0sdC53cml0aW5nKWJyZWFrfW51bGw9PT1yJiYodC5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwpfXQuYnVmZmVyZWRSZXF1ZXN0PXIsdC5idWZmZXJQcm9jZXNzaW5nPSExfWZ1bmN0aW9uIEUoZSl7cmV0dXJuIGUuZW5kaW5nJiYwPT09ZS5sZW5ndGgmJm51bGw9PT1lLmJ1ZmZlcmVkUmVxdWVzdCYmIWUuZmluaXNoZWQmJiFlLndyaXRpbmd9ZnVuY3Rpb24gdyhlLHQpe2UuX2ZpbmFsKGZ1bmN0aW9uKHIpe3QucGVuZGluZ2NiLS0sciYmZS5lbWl0KCJlcnJvciIsciksdC5wcmVmaW5pc2hlZD0hMCxlLmVtaXQoInByZWZpbmlzaCIpLFQoZSx0KX0pfWZ1bmN0aW9uIFQoZSx0KXt2YXIgcj1FKHQpO3JldHVybiByJiYoIWZ1bmN0aW9uKGUsdCl7dC5wcmVmaW5pc2hlZHx8dC5maW5hbENhbGxlZHx8KCJmdW5jdGlvbiI9PT10eXBlb2YgZS5fZmluYWw/KHQucGVuZGluZ2NiKyssdC5maW5hbENhbGxlZD0hMCxvLm5leHRUaWNrKHcsZSx0KSk6KHQucHJlZmluaXNoZWQ9ITAsZS5lbWl0KCJwcmVmaW5pc2giKSkpfShlLHQpLDA9PT10LnBlbmRpbmdjYiYmKHQuZmluaXNoZWQ9ITAsZS5lbWl0KCJmaW5pc2giKSkpLHJ9Yy5pbmhlcml0cyhtLGwpLHYucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmJ1ZmZlcmVkUmVxdWVzdCx0PVtdO2U7KXQucHVzaChlKSxlPWUubmV4dDtyZXR1cm4gdH0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHYucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6Zi5kZXByZWNhdGUoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0sIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2goZSl7fX0oKSwiZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmhhc0luc3RhbmNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyhkPUZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuISFkLmNhbGwodGhpcyxlKXx8dGhpcz09PW0mJihlJiZlLl93cml0YWJsZVN0YXRlIGluc3RhbmNlb2Ygdil9fSkpOmQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzfSxtLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7dGhpcy5lbWl0KCJlcnJvciIsbmV3IEVycm9yKCJDYW5ub3QgcGlwZSwgbm90IHJlYWRhYmxlIikpfSxtLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlLHQscil7dmFyIG4saT10aGlzLl93cml0YWJsZVN0YXRlLGE9ITEscz0haS5vYmplY3RNb2RlJiYobj1lLGguaXNCdWZmZXIobil8fG4gaW5zdGFuY2VvZiBwKTtyZXR1cm4gcyYmIWguaXNCdWZmZXIoZSkmJihlPWZ1bmN0aW9uKGUpe3JldHVybiBoLmZyb20oZSl9KGUpKSwiZnVuY3Rpb24iPT09dHlwZW9mIHQmJihyPXQsdD1udWxsKSxzP3Q9ImJ1ZmZlciI6dHx8KHQ9aS5kZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPT10eXBlb2YgciYmKHI9ZyksaS5lbmRlZD9mdW5jdGlvbihlLHQpe3ZhciByPW5ldyBFcnJvcigid3JpdGUgYWZ0ZXIgZW5kIik7ZS5lbWl0KCJlcnJvciIsciksby5uZXh0VGljayh0LHIpfSh0aGlzLHIpOihzfHxmdW5jdGlvbihlLHQscixuKXt2YXIgaT0hMCxhPSExO3JldHVybiBudWxsPT09cj9hPW5ldyBUeXBlRXJyb3IoIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIik6InN0cmluZyI9PT10eXBlb2Ygcnx8dm9pZCAwPT09cnx8dC5vYmplY3RNb2RlfHwoYT1uZXcgVHlwZUVycm9yKCJJbnZhbGlkIG5vbi1zdHJpbmcvYnVmZmVyIGNodW5rIikpLGEmJihlLmVtaXQoImVycm9yIixhKSxvLm5leHRUaWNrKG4sYSksaT0hMSksaX0odGhpcyxpLGUscikpJiYoaS5wZW5kaW5nY2IrKyxhPWZ1bmN0aW9uKGUsdCxyLG4saSxvKXtpZighcil7dmFyIGE9ZnVuY3Rpb24oZSx0LHIpe2Uub2JqZWN0TW9kZXx8ITE9PT1lLmRlY29kZVN0cmluZ3N8fCJzdHJpbmciIT09dHlwZW9mIHR8fCh0PWguZnJvbSh0LHIpKTtyZXR1cm4gdH0odCxuLGkpO24hPT1hJiYocj0hMCxpPSJidWZmZXIiLG49YSl9dmFyIHM9dC5vYmplY3RNb2RlPzE6bi5sZW5ndGg7dC5sZW5ndGgrPXM7dmFyIHU9dC5sZW5ndGg8dC5oaWdoV2F0ZXJNYXJrO3V8fCh0Lm5lZWREcmFpbj0hMCk7aWYodC53cml0aW5nfHx0LmNvcmtlZCl7dmFyIGM9dC5sYXN0QnVmZmVyZWRSZXF1ZXN0O3QubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6bixlbmNvZGluZzppLGlzQnVmOnIsY2FsbGJhY2s6byxuZXh0Om51bGx9LGM/Yy5uZXh0PXQubGFzdEJ1ZmZlcmVkUmVxdWVzdDp0LmJ1ZmZlcmVkUmVxdWVzdD10Lmxhc3RCdWZmZXJlZFJlcXVlc3QsdC5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIGIoZSx0LCExLHMsbixpLG8pO3JldHVybiB1fSh0aGlzLGkscyxlLHQscikpLGF9LG0ucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxtLnByb3RvdHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl93cml0YWJsZVN0YXRlO2UuY29ya2VkJiYoZS5jb3JrZWQtLSxlLndyaXRpbmd8fGUuY29ya2VkfHxlLmZpbmlzaGVkfHxlLmJ1ZmZlclByb2Nlc3Npbmd8fCFlLmJ1ZmZlcmVkUmVxdWVzdHx8Uyh0aGlzLGUpKX0sbS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUmJihlPWUudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigoZSsiIikudG9Mb3dlckNhc2UoKSk+LTEpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrZSk7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVmYXVsdEVuY29kaW5nPWUsdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KG0ucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksbS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKGUsdCxyKXtyKG5ldyBFcnJvcigiX3dyaXRlKCkgaXMgbm90IGltcGxlbWVudGVkIikpfSxtLnByb3RvdHlwZS5fd3JpdGV2PW51bGwsbS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzLl93cml0YWJsZVN0YXRlOyJmdW5jdGlvbiI9PT10eXBlb2YgZT8ocj1lLGU9bnVsbCx0PW51bGwpOiJmdW5jdGlvbiI9PT10eXBlb2YgdCYmKHI9dCx0PW51bGwpLG51bGwhPT1lJiZ2b2lkIDAhPT1lJiZ0aGlzLndyaXRlKGUsdCksbi5jb3JrZWQmJihuLmNvcmtlZD0xLHRoaXMudW5jb3JrKCkpLG4uZW5kaW5nfHxuLmZpbmlzaGVkfHxmdW5jdGlvbihlLHQscil7dC5lbmRpbmc9ITAsVChlLHQpLHImJih0LmZpbmlzaGVkP28ubmV4dFRpY2socik6ZS5vbmNlKCJmaW5pc2giLHIpKTt0LmVuZGVkPSEwLGUud3JpdGFibGU9ITF9KHRoaXMsbixyKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG0ucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihlKXt0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZSl9fSksbS5wcm90b3R5cGUuZGVzdHJveT15LmRlc3Ryb3ksbS5wcm90b3R5cGUuX3VuZGVzdHJveT15LnVuZGVzdHJveSxtLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihlLHQpe3RoaXMuZW5kKCksdChlKX19KS5jYWxsKHRoaXMscig0NikscigzMTIpLnNldEltbWVkaWF0ZSxyKDM0KSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4KS5CdWZmZXIsaT1uLmlzRW5jb2Rpbmd8fGZ1bmN0aW9uKGUpe3N3aXRjaCgoZT0iIitlKSYmZS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpjYXNlInJhdyI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIG8oZSl7dmFyIHQ7c3dpdGNoKHRoaXMuZW5jb2Rpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuInV0ZjgiO2Zvcih2YXIgdDs7KXN3aXRjaChlKXtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiJ1dGY4IjtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuInV0ZjE2bGUiO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuImxhdGluMSI7Y2FzZSJiYXNlNjQiOmNhc2UiYXNjaWkiOmNhc2UiaGV4IjpyZXR1cm4gZTtkZWZhdWx0OmlmKHQpcmV0dXJuO2U9KCIiK2UpLnRvTG93ZXJDYXNlKCksdD0hMH19KGUpO2lmKCJzdHJpbmciIT09dHlwZW9mIHQmJihuLmlzRW5jb2Rpbmc9PT1pfHwhaShlKSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2UpO3JldHVybiB0fHxlfShlKSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD11LHRoaXMuZW5kPWMsdD00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1zLHQ9NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PWYsdGhpcy5lbmQ9bCx0PTM7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy53cml0ZT1oLHZvaWQodGhpcy5lbmQ9cCl9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1uLmFsbG9jVW5zYWZlKHQpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGU8PTEyNz8wOmU+PjU9PT02PzI6ZT4+ND09PTE0PzM6ZT4+Mz09PTMwPzQ6ZT4+Nj09PTI/LTE6LTJ9ZnVuY3Rpb24gcyhlKXt2YXIgdD10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLHI9ZnVuY3Rpb24oZSx0LHIpe2lmKDEyOCE9PSgxOTImdFswXSkpcmV0dXJuIGUubGFzdE5lZWQ9MCwiXHVmZmZkIjtpZihlLmxhc3ROZWVkPjEmJnQubGVuZ3RoPjEpe2lmKDEyOCE9PSgxOTImdFsxXSkpcmV0dXJuIGUubGFzdE5lZWQ9MSwiXHVmZmZkIjtpZihlLmxhc3ROZWVkPjImJnQubGVuZ3RoPjImJjEyOCE9PSgxOTImdFsyXSkpcmV0dXJuIGUubGFzdE5lZWQ9MiwiXHVmZmZkIn19KHRoaXMsZSk7cmV0dXJuIHZvaWQgMCE9PXI/cjp0aGlzLmxhc3ROZWVkPD1lLmxlbmd0aD8oZS5jb3B5KHRoaXMubGFzdENoYXIsdCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKSk6KGUuY29weSh0aGlzLmxhc3RDaGFyLHQsMCxlLmxlbmd0aCksdm9pZCh0aGlzLmxhc3ROZWVkLT1lLmxlbmd0aCkpfWZ1bmN0aW9uIHUoZSx0KXtpZigoZS5sZW5ndGgtdCklMj09PTApe3ZhciByPWUudG9TdHJpbmcoInV0ZjE2bGUiLHQpO2lmKHIpe3ZhciBuPXIuY2hhckNvZGVBdChyLmxlbmd0aC0xKTtpZihuPj01NTI5NiYmbjw9NTYzMTkpcmV0dXJuIHRoaXMubGFzdE5lZWQ9Mix0aGlzLmxhc3RUb3RhbD00LHRoaXMubGFzdENoYXJbMF09ZVtlLmxlbmd0aC0yXSx0aGlzLmxhc3RDaGFyWzFdPWVbZS5sZW5ndGgtMV0sci5zbGljZSgwLC0xKX1yZXR1cm4gcn1yZXR1cm4gdGhpcy5sYXN0TmVlZD0xLHRoaXMubGFzdFRvdGFsPTIsdGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTFdLGUudG9TdHJpbmcoInV0ZjE2bGUiLHQsZS5sZW5ndGgtMSl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1lJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOiIiO2lmKHRoaXMubGFzdE5lZWQpe3ZhciByPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQ7cmV0dXJuIHQrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCxyKX1yZXR1cm4gdH1mdW5jdGlvbiBmKGUsdCl7dmFyIHI9KGUubGVuZ3RoLXQpJTM7cmV0dXJuIDA9PT1yP2UudG9TdHJpbmcoImJhc2U2NCIsdCk6KHRoaXMubGFzdE5lZWQ9My1yLHRoaXMubGFzdFRvdGFsPTMsMT09PXI/dGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTFdOih0aGlzLmxhc3RDaGFyWzBdPWVbZS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1lW2UubGVuZ3RoLTFdKSxlLnRvU3RyaW5nKCJiYXNlNjQiLHQsZS5sZW5ndGgtcikpfWZ1bmN0aW9uIGwoZSl7dmFyIHQ9ZSYmZS5sZW5ndGg/dGhpcy53cml0ZShlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD90K3RoaXMubGFzdENoYXIudG9TdHJpbmcoImJhc2U2NCIsMCwzLXRoaXMubGFzdE5lZWQpOnR9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZS50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBwKGUpe3JldHVybiBlJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOiIifXQuU3RyaW5nRGVjb2Rlcj1vLG8ucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4iIjt2YXIgdCxyO2lmKHRoaXMubGFzdE5lZWQpe2lmKHZvaWQgMD09PSh0PXRoaXMuZmlsbExhc3QoZSkpKXJldHVybiIiO3I9dGhpcy5sYXN0TmVlZCx0aGlzLmxhc3ROZWVkPTB9ZWxzZSByPTA7cmV0dXJuIHI8ZS5sZW5ndGg/dD90K3RoaXMudGV4dChlLHIpOnRoaXMudGV4dChlLHIpOnR8fCIifSxvLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5sZW5ndGg/dGhpcy53cml0ZShlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD90KyJcdWZmZmQiOnR9LG8ucHJvdG90eXBlLnRleHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1mdW5jdGlvbihlLHQscil7dmFyIG49dC5sZW5ndGgtMTtpZihuPHIpcmV0dXJuIDA7dmFyIGk9YSh0W25dKTtpZihpPj0wKXJldHVybiBpPjAmJihlLmxhc3ROZWVkPWktMSksaTtpZigtLW48cnx8LTI9PT1pKXJldHVybiAwO2lmKChpPWEodFtuXSkpPj0wKXJldHVybiBpPjAmJihlLmxhc3ROZWVkPWktMiksaTtpZigtLW48cnx8LTI9PT1pKXJldHVybiAwO2lmKChpPWEodFtuXSkpPj0wKXJldHVybiBpPjAmJigyPT09aT9pPTA6ZS5sYXN0TmVlZD1pLTMpLGk7cmV0dXJuIDB9KHRoaXMsZSx0KTtpZighdGhpcy5sYXN0TmVlZClyZXR1cm4gZS50b1N0cmluZygidXRmOCIsdCk7dGhpcy5sYXN0VG90YWw9cjt2YXIgbj1lLmxlbmd0aC0oci10aGlzLmxhc3ROZWVkKTtyZXR1cm4gZS5jb3B5KHRoaXMubGFzdENoYXIsMCxuKSxlLnRvU3RyaW5nKCJ1dGY4Iix0LG4pfSxvLnByb3RvdHlwZS5maWxsTGFzdD1mdW5jdGlvbihlKXtpZih0aGlzLmxhc3ROZWVkPD1lLmxlbmd0aClyZXR1cm4gZS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKTtlLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsZS5sZW5ndGgpLHRoaXMubGFzdE5lZWQtPWUubGVuZ3RofX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE4KS5CdWZmZXIsaT1yKDcpLG89cigzMDgpLGE9bmV3IEFycmF5KDE2KSxzPVswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdLHU9WzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIsNiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYsOSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgsNiw0LDEsMywxMSwxNSwwLDUsMTIsMiwxMyw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0sYz1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sZj1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV0sbD1bMCwxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwyODQwODUzODM4XSxoPVsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdO2Z1bmN0aW9uIHAoKXtvLmNhbGwodGhpcyw2NCksdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4gZTw8dHxlPj4+MzItdH1mdW5jdGlvbiB5KGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodF5yXm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiBnKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodCZyfH50Jm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiB2KGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsoKHR8fnIpXm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiBtKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodCZufHImfm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiBiKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodF4ocnx+bikpK28rYXwwLHMpK2l8MH1pKHAsbykscC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1hLHQ9MDt0PDE2OysrdCllW3RdPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQqdCk7Zm9yKHZhciByPTB8dGhpcy5fYSxuPTB8dGhpcy5fYixpPTB8dGhpcy5fYyxvPTB8dGhpcy5fZCxwPTB8dGhpcy5fZSxfPTB8dGhpcy5fYSxTPTB8dGhpcy5fYixFPTB8dGhpcy5fYyx3PTB8dGhpcy5fZCxUPTB8dGhpcy5fZSxBPTA7QTw4MDtBKz0xKXt2YXIgQyx4O0E8MTY/KEM9eShyLG4saSxvLHAsZVtzW0FdXSxsWzBdLGNbQV0pLHg9YihfLFMsRSx3LFQsZVt1W0FdXSxoWzBdLGZbQV0pKTpBPDMyPyhDPWcocixuLGksbyxwLGVbc1tBXV0sbFsxXSxjW0FdKSx4PW0oXyxTLEUsdyxULGVbdVtBXV0saFsxXSxmW0FdKSk6QTw0OD8oQz12KHIsbixpLG8scCxlW3NbQV1dLGxbMl0sY1tBXSkseD12KF8sUyxFLHcsVCxlW3VbQV1dLGhbMl0sZltBXSkpOkE8NjQ/KEM9bShyLG4saSxvLHAsZVtzW0FdXSxsWzNdLGNbQV0pLHg9ZyhfLFMsRSx3LFQsZVt1W0FdXSxoWzNdLGZbQV0pKTooQz1iKHIsbixpLG8scCxlW3NbQV1dLGxbNF0sY1tBXSkseD15KF8sUyxFLHcsVCxlW3VbQV1dLGhbNF0sZltBXSkpLHI9cCxwPW8sbz1kKGksMTApLGk9bixuPUMsXz1ULFQ9dyx3PWQoRSwxMCksRT1TLFM9eH12YXIgST10aGlzLl9iK2krd3wwO3RoaXMuX2I9dGhpcy5fYytvK1R8MCx0aGlzLl9jPXRoaXMuX2QrcCtffDAsdGhpcy5fZD10aGlzLl9lK3IrU3wwLHRoaXMuX2U9dGhpcy5fYStuK0V8MCx0aGlzLl9hPUl9LHAucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja1t0aGlzLl9ibG9ja09mZnNldCsrXT0xMjgsdGhpcy5fYmxvY2tPZmZzZXQ+NTYmJih0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTApLHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMF0sNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKSx0aGlzLl91cGRhdGUoKTt2YXIgZT1uLmFsbG9jP24uYWxsb2MoMjApOm5ldyBuKDIwKTtyZXR1cm4gZS53cml0ZUludDMyTEUodGhpcy5fYSwwKSxlLndyaXRlSW50MzJMRSh0aGlzLl9iLDQpLGUud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksZS53cml0ZUludDMyTEUodGhpcy5fZCwxMiksZS53cml0ZUludDMyTEUodGhpcy5fZSwxNiksZX0sZS5leHBvcnRzPXB9LGZ1bmN0aW9uKGUsdCxyKXsodD1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZT1lLnRvTG93ZXJDYXNlKCk7dmFyIHI9dFtlXTtpZighcil0aHJvdyBuZXcgRXJyb3IoZSsiIGlzIG5vdCBzdXBwb3J0ZWQgKHdlIGFjY2VwdCBwdWxsIHJlcXVlc3RzKSIpO3JldHVybiBuZXcgcn0pLnNoYT1yKDU2MCksdC5zaGExPXIoNTYxKSx0LnNoYTIyND1yKDU2MiksdC5zaGEyNTY9cigzMTQpLHQuc2hhMzg0PXIoNTYzKSx0LnNoYTUxMj1yKDMxNSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dC51dGlscz1yKDU2OSksdC5DaXBoZXI9cig1NzApLHQuREVTPXIoNTcxKSx0LkNCQz1yKDU3MiksdC5FREU9cig1NzMpfSxmdW5jdGlvbihlLHQscil7dmFyIG49cig1NzQpLGk9cig1ODIpLG89cigzMjUpO3QuY3JlYXRlQ2lwaGVyPXQuQ2lwaGVyPW4uY3JlYXRlQ2lwaGVyLHQuY3JlYXRlQ2lwaGVyaXY9dC5DaXBoZXJpdj1uLmNyZWF0ZUNpcGhlcml2LHQuY3JlYXRlRGVjaXBoZXI9dC5EZWNpcGhlcj1pLmNyZWF0ZURlY2lwaGVyLHQuY3JlYXRlRGVjaXBoZXJpdj10LkRlY2lwaGVyaXY9aS5jcmVhdGVEZWNpcGhlcml2LHQubGlzdENpcGhlcnM9dC5nZXRDaXBoZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKG8pfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXtFQ0I6cig1NzUpLENCQzpyKDU3NiksQ0ZCOnIoNTc3KSxDRkI4OnIoNTc4KSxDRkIxOnIoNTc5KSxPRkI6cig1ODApLENUUjpyKDMyMyksR0NNOnIoMzIzKX0saT1yKDMyNSk7Zm9yKHZhciBvIGluIGkpaVtvXS5tb2R1bGU9bltpW29dLm1vZGVdO2UuZXhwb3J0cz1pfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZS53ZWJwYWNrUG9seWZpbGx8fChlLmRlcHJlY2F0ZT1mdW5jdGlvbigpe30sZS5wYXRocz1bXSxlLmNoaWxkcmVufHwoZS5jaGlsZHJlbj1bXSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImxvYWRlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUubH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiaWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlLml9fSksZS53ZWJwYWNrUG9seWZpbGw9MSksZX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbjtmdW5jdGlvbiBpKGUpe3RoaXMucmFuZD1lfWlmKGUuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbnx8KG49bmV3IGkobnVsbCkpLG4uZ2VuZXJhdGUoZSl9LGUuZXhwb3J0cy5SYW5kPWksaS5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JhbmQoZSl9LGkucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKGUpO2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlKSxyPTA7cjx0Lmxlbmd0aDtyKyspdFtyXT10aGlzLnJhbmQuZ2V0Qnl0ZSgpO3JldHVybiB0fSwib2JqZWN0Ij09PXR5cGVvZiBzZWxmKXNlbGYuY3J5cHRvJiZzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXM/aS5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFVpbnQ4QXJyYXkoZSk7cmV0dXJuIHNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyh0KSx0fTpzZWxmLm1zQ3J5cHRvJiZzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcz9pLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgVWludDhBcnJheShlKTtyZXR1cm4gc2VsZi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXModCksdH06Im9iamVjdCI9PT10eXBlb2Ygd2luZG93JiYoaS5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCB5ZXQiKX0pO2Vsc2UgdHJ5e3ZhciBvPXIoNTg2KTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIG8ucmFuZG9tQnl0ZXMpdGhyb3cgbmV3IEVycg=="
}
Changelog:
{
"2020.03.29 15:15": "base64:O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIHIoZSxvLGMpe2lmKG4rKz5zKXRocm93IG49MCxuZXcgRXJyb3IoIkNhbGwgc3RhY2sgb3ZlcmZsb3cgZm9yICIrYyk7aWYoIiI9PT1lKXRocm93IG5ldyBFcnJvcihvKyIoKTogJyIrYysiJyBtdXN0IGNvbnRhaW4gYSBub24td2hpdGVzcGFjZSBzdHJpbmciKTt2YXIgZj1mdW5jdGlvbihlKXt2YXIgdD1bXSxyPVtdLG49L1tcLjAtOV0oWyVhLXpdKykvZ2ksaT1uLmV4ZWMoZSk7Zm9yKDtpOylpJiZpWzFdJiYoLTE9PT1yLmluZGV4T2YoaVsxXS50b0xvd2VyQ2FzZSgpKSYmKHQucHVzaChpWzFdKSxyLnB1c2goaVsxXS50b0xvd2VyQ2FzZSgpKSksaT1uLmV4ZWMoZSkpO3JldHVybiB0fShlPWZ1bmN0aW9uKGUsdCl7ZT1lLnJlcGxhY2UoLygoPzpcLVthLXpdK1wtKT9jYWxjKS9nLCIiKTt2YXIgbixvPSIiLGE9ZTtmb3IoO249dS5leGVjKGEpOyl7blswXS5pbmRleD4wJiYobys9YS5zdWJzdHJpbmcoMCxuWzBdLmluZGV4KSk7dmFyIHM9aSgiKCIsIikiLGEuc3Vic3RyaW5nKFswXS5pbmRleCkpO2lmKCIiPT09cy5ib2R5KXRocm93IG5ldyBFcnJvcigiJyIrZSsiJyBtdXN0IGNvbnRhaW4gYSBub24td2hpdGVzcGFjZSBzdHJpbmciKTt2YXIgYz1yKHMuYm9keSwiIix0KTtvKz1zLnByZStjLGE9cy5wb3N0fXJldHVybiBvK2F9KGUsYykpO2lmKGYubGVuZ3RoPjF8fGUuaW5kZXhPZigidmFyKCIpPi0xKXJldHVybiBvKyIoIitlKyIpIjt2YXIgbD1mWzBdfHwiIjsiJSI9PT1sJiYoZT1lLnJlcGxhY2UoL1xiWzAtOVwuXSslL2csZnVuY3Rpb24oZSl7cmV0dXJuLjAxKnBhcnNlRmxvYXQoZS5zbGljZSgwLC0xKSl9KSk7dmFyIGgscD1lLnJlcGxhY2UobmV3IFJlZ0V4cChsLCJnaSIpLCIiKTt0cnl7aD1hLmV2YWwocCl9Y2F0Y2goZCl7cmV0dXJuIG8rIigiK2UrIikifXJldHVybiIlIj09PWwmJihoKj0xMDApLChvLmxlbmd0aHx8IiUiPT09bCkmJihoPU1hdGgucm91bmQoaCp0KS90KSxoKz1sfXJldHVybiBuPTAsdD1NYXRoLnBvdygxMCx2b2lkIDA9PT10PzU6dCksZT1lLnJlcGxhY2UoL1xuKy9nLCIgIiksbyhlLC8oKD86XC1bYS16XStcLSk/Y2FsYylcKC8scil9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuYnl0ZUxlbmd0aD1mdW5jdGlvbihlKXt2YXIgdD1jKGUpLHI9dFswXSxuPXRbMV07cmV0dXJuIDMqKHIrbikvNC1ufSx0LnRvQnl0ZUFycmF5PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPWMoZSksbj1yWzBdLGE9clsxXSxzPW5ldyBvKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gMyoodCtyKS80LXJ9KDAsbixhKSksdT0wLGY9YT4wP24tNDpuLGw9MDtsPGY7bCs9NCl0PWlbZS5jaGFyQ29kZUF0KGwpXTw8MTh8aVtlLmNoYXJDb2RlQXQobCsxKV08PDEyfGlbZS5jaGFyQ29kZUF0KGwrMildPDw2fGlbZS5jaGFyQ29kZUF0KGwrMyldLHNbdSsrXT10Pj4xNiYyNTUsc1t1KytdPXQ+PjgmMjU1LHNbdSsrXT0yNTUmdDsyPT09YSYmKHQ9aVtlLmNoYXJDb2RlQXQobCldPDwyfGlbZS5jaGFyQ29kZUF0KGwrMSldPj40LHNbdSsrXT0yNTUmdCk7MT09PWEmJih0PWlbZS5jaGFyQ29kZUF0KGwpXTw8MTB8aVtlLmNoYXJDb2RlQXQobCsxKV08PDR8aVtlLmNoYXJDb2RlQXQobCsyKV0+PjIsc1t1KytdPXQ+PjgmMjU1LHNbdSsrXT0yNTUmdCk7cmV0dXJuIHN9LHQuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQscj1lLmxlbmd0aCxpPXIlMyxvPVtdLGE9MCxzPXItaTthPHM7YSs9MTYzODMpby5wdXNoKGYoZSxhLGErMTYzODM+cz9zOmErMTYzODMpKTsxPT09aT8odD1lW3ItMV0sby5wdXNoKG5bdD4+Ml0rblt0PDw0JjYzXSsiPT0iKSk6Mj09PWkmJih0PShlW3ItMl08PDgpK2Vbci0xXSxvLnB1c2goblt0Pj4xMF0rblt0Pj40JjYzXStuW3Q8PDImNjNdKyI9IikpO3JldHVybiBvLmpvaW4oIiIpfTtmb3IodmFyIG49W10saT1bXSxvPSJ1bmRlZmluZWQiIT09dHlwZW9mIFVpbnQ4QXJyYXk/VWludDhBcnJheTpBcnJheSxhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixzPTAsdT1hLmxlbmd0aDtzPHU7KytzKW5bc109YVtzXSxpW2EuY2hhckNvZGVBdChzKV09cztmdW5jdGlvbiBjKGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQlND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciByPWUuaW5kZXhPZigiPSIpO3JldHVybi0xPT09ciYmKHI9dCksW3Iscj09PXQ/MDo0LXIlNF19ZnVuY3Rpb24gZihlLHQscil7Zm9yKHZhciBpLG8sYT1bXSxzPXQ7czxyO3MrPTMpaT0oZVtzXTw8MTYmMTY3MTE2ODApKyhlW3MrMV08PDgmNjUyODApKygyNTUmZVtzKzJdKSxhLnB1c2goblsobz1pKT4+MTgmNjNdK25bbz4+MTImNjNdK25bbz4+NiY2M10rbls2MyZvXSk7cmV0dXJuIGEuam9pbigiIil9aVsiLSIuY2hhckNvZGVBdCgwKV09NjIsaVsiXyIuY2hhckNvZGVBdCgwKV09NjN9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3KSxpPXIoMzA4KSxvPXIoOCkuQnVmZmVyLGE9bmV3IEFycmF5KDE2KTtmdW5jdGlvbiBzKCl7aS5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gZTw8dHxlPj4+MzItdH1mdW5jdGlvbiBjKGUsdCxyLG4saSxvLGEpe3JldHVybiB1KGUrKHQmcnx+dCZuKStpK298MCxhKSt0fDB9ZnVuY3Rpb24gZihlLHQscixuLGksbyxhKXtyZXR1cm4gdShlKyh0Jm58ciZ+bikraStvfDAsYSkrdHwwfWZ1bmN0aW9uIGwoZSx0LHIsbixpLG8sYSl7cmV0dXJuIHUoZSsodF5yXm4pK2krb3wwLGEpK3R8MH1mdW5jdGlvbiBoKGUsdCxyLG4saSxvLGEpe3JldHVybiB1KGUrKHJeKHR8fm4pKStpK298MCxhKSt0fDB9bihzLGkpLHMucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YSx0PTA7dDwxNjsrK3QpZVt0XT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0KnQpO3ZhciByPXRoaXMuX2Esbj10aGlzLl9iLGk9dGhpcy5fYyxvPXRoaXMuX2Q7cj1jKHIsbixpLG8sZVswXSwzNjE0MDkwMzYwLDcpLG89YyhvLHIsbixpLGVbMV0sMzkwNTQwMjcxMCwxMiksaT1jKGksbyxyLG4sZVsyXSw2MDYxMDU4MTksMTcpLG49YyhuLGksbyxyLGVbM10sMzI1MDQ0MTk2NiwyMikscj1jKHIsbixpLG8sZVs0XSw0MTE4NTQ4Mzk5LDcpLG89YyhvLHIsbixpLGVbNV0sMTIwMDA4MDQyNiwxMiksaT1jKGksbyxyLG4sZVs2XSwyODIxNzM1OTU1LDE3KSxuPWMobixpLG8scixlWzddLDQyNDkyNjEzMTMsMjIpLHI9YyhyLG4saSxvLGVbOF0sMTc3MDAzNTQxNiw3KSxvPWMobyxyLG4saSxlWzldLDIzMzY1NTI4NzksMTIpLGk9YyhpLG8scixuLGVbMTBdLDQyOTQ5MjUyMzMsMTcpLG49YyhuLGksbyxyLGVbMTFdLDIzMDQ1NjMxMzQsMjIpLHI9YyhyLG4saSxvLGVbMTJdLDE4MDQ2MDM2ODIsNyksbz1jKG8scixuLGksZVsxM10sNDI1NDYyNjE5NSwxMiksaT1jKGksbyxyLG4sZVsxNF0sMjc5Mjk2NTAwNiwxNykscj1mKHIsbj1jKG4saSxvLHIsZVsxNV0sMTIzNjUzNTMyOSwyMiksaSxvLGVbMV0sNDEyOTE3MDc4Niw1KSxvPWYobyxyLG4saSxlWzZdLDMyMjU0NjU2NjQsOSksaT1mKGksbyxyLG4sZVsxMV0sNjQzNzE3NzEzLDE0KSxuPWYobixpLG8scixlWzBdLDM5MjEwNjk5OTQsMjApLHI9ZihyLG4saSxvLGVbNV0sMzU5MzQwODYwNSw1KSxvPWYobyxyLG4saSxlWzEwXSwzODAxNjA4Myw5KSxpPWYoaSxvLHIsbixlWzE1XSwzNjM0NDg4OTYxLDE0KSxuPWYobixpLG8scixlWzRdLDM4ODk0Mjk0NDgsMjApLHI9ZihyLG4saSxvLGVbOV0sNTY4NDQ2NDM4LDUpLG89ZihvLHIsbixpLGVbMTRdLDMyNzUxNjM2MDYsOSksaT1mKGksbyxyLG4sZVszXSw0MTA3NjAzMzM1LDE0KSxuPWYobixpLG8scixlWzhdLDExNjM1MzE1MDEsMjApLHI9ZihyLG4saSxvLGVbMTNdLDI4NTAyODU4MjksNSksbz1mKG8scixuLGksZVsyXSw0MjQzNTYzNTEyLDkpLGk9ZihpLG8scixuLGVbN10sMTczNTMyODQ3MywxNCkscj1sKHIsbj1mKG4saSxvLHIsZVsxMl0sMjM2ODM1OTU2MiwyMCksaSxvLGVbNV0sNDI5NDU4ODczOCw0KSxvPWwobyxyLG4saSxlWzhdLDIyNzIzOTI4MzMsMTEpLGk9bChpLG8scixuLGVbMTFdLDE4MzkwMzA1NjIsMTYpLG49bChuLGksbyxyLGVbMTRdLDQyNTk2NTc3NDAsMjMpLHI9bChyLG4saSxvLGVbMV0sMjc2Mzk3NTIzNiw0KSxvPWwobyxyLG4saSxlWzRdLDEyNzI4OTMzNTMsMTEpLGk9bChpLG8scixuLGVbN10sNDEzOTQ2OTY2NCwxNiksbj1sKG4saSxvLHIsZVsxMF0sMzIwMDIzNjY1NiwyMykscj1sKHIsbixpLG8sZVsxM10sNjgxMjc5MTc0LDQpLG89bChvLHIsbixpLGVbMF0sMzkzNjQzMDA3NCwxMSksaT1sKGksbyxyLG4sZVszXSwzNTcyNDQ1MzE3LDE2KSxuPWwobixpLG8scixlWzZdLDc2MDI5MTg5LDIzKSxyPWwocixuLGksbyxlWzldLDM2NTQ2MDI4MDksNCksbz1sKG8scixuLGksZVsxMl0sMzg3MzE1MTQ2MSwxMSksaT1sKGksbyxyLG4sZVsxNV0sNTMwNzQyNTIwLDE2KSxyPWgocixuPWwobixpLG8scixlWzJdLDMyOTk2Mjg2NDUsMjMpLGksbyxlWzBdLDQwOTYzMzY0NTIsNiksbz1oKG8scixuLGksZVs3XSwxMTI2ODkxNDE1LDEwKSxpPWgoaSxvLHIsbixlWzE0XSwyODc4NjEyMzkxLDE1KSxuPWgobixpLG8scixlWzVdLDQyMzc1MzMyNDEsMjEpLHI9aChyLG4saSxvLGVbMTJdLDE3MDA0ODU1NzEsNiksbz1oKG8scixuLGksZVszXSwyMzk5OTgwNjkwLDEwKSxpPWgoaSxvLHIsbixlWzEwXSw0MjkzOTE1NzczLDE1KSxuPWgobixpLG8scixlWzFdLDIyNDAwNDQ0OTcsMjEpLHI9aChyLG4saSxvLGVbOF0sMTg3MzMxMzM1OSw2KSxvPWgobyxyLG4saSxlWzE1XSw0MjY0MzU1NTUyLDEwKSxpPWgoaSxvLHIsbixlWzZdLDI3MzQ3Njg5MTYsMTUpLG49aChuLGksbyxyLGVbMTNdLDEzMDkxNTE2NDksMjEpLHI9aChyLG4saSxvLGVbNF0sNDE0OTQ0NDIyNiw2KSxvPWgobyxyLG4saSxlWzExXSwzMTc0NzU2OTE3LDEwKSxpPWgoaSxvLHIsbixlWzJdLDcxODc4NzI1OSwxNSksbj1oKG4saSxvLHIsZVs5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2ErcnwwLHRoaXMuX2I9dGhpcy5fYitufDAsdGhpcy5fYz10aGlzLl9jK2l8MCx0aGlzLl9kPXRoaXMuX2Qrb3wwfSxzLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIGU9by5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIGUud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksZS53cml0ZUludDMyTEUodGhpcy5fYiw0KSxlLndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLGV9LGUuZXhwb3J0cz1zfSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPWk7dmFyIG49cigxMjApLkV2ZW50RW1pdHRlcjtmdW5jdGlvbiBpKCl7bi5jYWxsKHRoaXMpfXIoNykoaSxuKSxpLlJlYWRhYmxlPXIoMjA3KSxpLldyaXRhYmxlPXIoNTU2KSxpLkR1cGxleD1yKDU1NyksaS5UcmFuc2Zvcm09cig1NTgpLGkuUGFzc1Rocm91Z2g9cig1NTkpLGkuU3RyZWFtPWksaS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXM7ZnVuY3Rpb24gaSh0KXtlLndyaXRhYmxlJiYhMT09PWUud3JpdGUodCkmJnIucGF1c2UmJnIucGF1c2UoKX1mdW5jdGlvbiBvKCl7ci5yZWFkYWJsZSYmci5yZXN1bWUmJnIucmVzdW1lKCl9ci5vbigiZGF0YSIsaSksZS5vbigiZHJhaW4iLG8pLGUuX2lzU3RkaW98fHQmJiExPT09dC5lbmR8fChyLm9uKCJlbmQiLHMpLHIub24oImNsb3NlIix1KSk7dmFyIGE9ITE7ZnVuY3Rpb24gcygpe2F8fChhPSEwLGUuZW5kKCkpfWZ1bmN0aW9uIHUoKXthfHwoYT0hMCwiZnVuY3Rpb24iPT09dHlwZW9mIGUuZGVzdHJveSYmZS5kZXN0cm95KCkpfWZ1bmN0aW9uIGMoZSl7aWYoZigpLDA9PT1uLmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyBlfWZ1bmN0aW9uIGYoKXtyLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixpKSxlLnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsbyksci5yZW1vdmVMaXN0ZW5lcigiZW5kIixzKSxyLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsdSksci5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGMpLGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjKSxyLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGYpLHIucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixmKSxlLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZil9cmV0dXJuIHIub24oImVycm9yIixjKSxlLm9uKCJlcnJvciIsYyksci5vbigiZW5kIixmKSxyLm9uKCJjbG9zZSIsZiksZS5vbigiY2xvc2UiLGYpLGUuZW1pdCgicGlwZSIsciksZX19LGZ1bmN0aW9uKGUsdCxyKXsodD1lLmV4cG9ydHM9cigzMDkpKS5TdHJlYW09dCx0LlJlYWRhYmxlPXQsdC5Xcml0YWJsZT1yKDIwOCksdC5EdXBsZXg9cig4OCksdC5UcmFuc2Zvcm09cigzMTMpLHQuUGFzc1Rocm91Z2g9cig1NTUpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LG4saSl7dmFyIG89cigxNTcpO2Z1bmN0aW9uIGEoZSl7dmFyIHQ9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWUuZW50cnk7ZS5lbnRyeT1udWxsO2Zvcig7bjspe3ZhciBpPW4uY2FsbGJhY2s7dC5wZW5kaW5nY2ItLSxpKHIpLG49bi5uZXh0fXQuY29ya2VkUmVxdWVzdHNGcmVlP3QuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9ZTp0LmNvcmtlZFJlcXVlc3RzRnJlZT1lfSh0LGUpfX1lLmV4cG9ydHM9bTt2YXIgcyx1PSF0LmJyb3dzZXImJlsidjAuMTAiLCJ2MC45LiJdLmluZGV4T2YodC52ZXJzaW9uLnNsaWNlKDAsNSkpPi0xP246by5uZXh0VGljazttLldyaXRhYmxlU3RhdGU9djt2YXIgYz1yKDEyOCk7Yy5pbmhlcml0cz1yKDcpO3ZhciBmPXtkZXByZWNhdGU6cig1NTQpfSxsPXIoMzEwKSxoPXIoOCkuQnVmZmVyLHA9aS5VaW50OEFycmF5fHxmdW5jdGlvbigpe307dmFyIGQseT1yKDMxMSk7ZnVuY3Rpb24gZygpe31mdW5jdGlvbiB2KGUsdCl7cz1zfHxyKDg4KSxlPWV8fHt9O3ZhciBuPXQgaW5zdGFuY2VvZiBzO3RoaXMub2JqZWN0TW9kZT0hIWUub2JqZWN0TW9kZSxuJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFlLndyaXRhYmxlT2JqZWN0TW9kZSk7dmFyIGk9ZS5oaWdoV2F0ZXJNYXJrLGM9ZS53cml0YWJsZUhpZ2hXYXRlck1hcmssZj10aGlzLm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPWl8fDA9PT1pP2k6biYmKGN8fDA9PT1jKT9jOmYsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmZpbmFsQ2FsbGVkPSExLHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMTt2YXIgbD0hMT09PWUuZGVjb2RlU3RyaW5nczt0aGlzLmRlY29kZVN0cmluZ3M9IWwsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9ZS5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlLHQpe3ZhciByPWUuX3dyaXRhYmxlU3RhdGUsbj1yLnN5bmMsaT1yLndyaXRlY2I7aWYoZnVuY3Rpb24oZSl7ZS53cml0aW5nPSExLGUud3JpdGVjYj1udWxsLGUubGVuZ3RoLT1lLndyaXRlbGVuLGUud3JpdGVsZW49MH0ociksdCkhZnVuY3Rpb24oZSx0LHIsbixpKXstLXQucGVuZGluZ2NiLHI/KG8ubmV4dFRpY2soaSxuKSxvLm5leHRUaWNrKFQsZSx0KSxlLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxlLmVtaXQoImVycm9yIixuKSk6KGkobiksZS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsZS5lbWl0KCJlcnJvciIsbiksVChlLHQpKX0oZSxyLG4sdCxpKTtlbHNle3ZhciBhPUUocik7YXx8ci5jb3JrZWR8fHIuYnVmZmVyUHJvY2Vzc2luZ3x8IXIuYnVmZmVyZWRSZXF1ZXN0fHxTKGUsciksbj91KF8sZSxyLGEsaSk6XyhlLHIsYSxpKX19KHQsZSl9LHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGluZ2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0hMSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTAsdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IGEodGhpcyl9ZnVuY3Rpb24gbShlKXtpZihzPXN8fHIoODgpLCFkLmNhbGwobSx0aGlzKSYmISh0aGlzIGluc3RhbmNlb2YgcykpcmV0dXJuIG5ldyBtKGUpO3RoaXMuX3dyaXRhYmxlU3RhdGU9bmV3IHYoZSx0aGlzKSx0aGlzLndyaXRhYmxlPSEwLGUmJigiZnVuY3Rpb24iPT09dHlwZW9mIGUud3JpdGUmJih0aGlzLl93cml0ZT1lLndyaXRlKSwiZnVuY3Rpb24iPT09dHlwZW9mIGUud3JpdGV2JiYodGhpcy5fd3JpdGV2PWUud3JpdGV2KSwiZnVuY3Rpb24iPT09dHlwZW9mIGUuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9ZS5kZXN0cm95KSwiZnVuY3Rpb24iPT09dHlwZW9mIGUuZmluYWwmJih0aGlzLl9maW5hbD1lLmZpbmFsKSksbC5jYWxsKHRoaXMpfWZ1bmN0aW9uIGIoZSx0LHIsbixpLG8sYSl7dC53cml0ZWxlbj1uLHQud3JpdGVjYj1hLHQud3JpdGluZz0hMCx0LnN5bmM9ITAscj9lLl93cml0ZXYoaSx0Lm9ud3JpdGUpOmUuX3dyaXRlKGksbyx0Lm9ud3JpdGUpLHQuc3luYz0hMX1mdW5jdGlvbiBfKGUsdCxyLG4pe3J8fGZ1bmN0aW9uKGUsdCl7MD09PXQubGVuZ3RoJiZ0Lm5lZWREcmFpbiYmKHQubmVlZERyYWluPSExLGUuZW1pdCgiZHJhaW4iKSl9KGUsdCksdC5wZW5kaW5nY2ItLSxuKCksVChlLHQpfWZ1bmN0aW9uIFMoZSx0KXt0LmJ1ZmZlclByb2Nlc3Npbmc9ITA7dmFyIHI9dC5idWZmZXJlZFJlcXVlc3Q7aWYoZS5fd3JpdGV2JiZyJiZyLm5leHQpe3ZhciBuPXQuYnVmZmVyZWRSZXF1ZXN0Q291bnQsaT1uZXcgQXJyYXkobiksbz10LmNvcmtlZFJlcXVlc3RzRnJlZTtvLmVudHJ5PXI7Zm9yKHZhciBzPTAsdT0hMDtyOylpW3NdPXIsci5pc0J1Znx8KHU9ITEpLHI9ci5uZXh0LHMrPTE7aS5hbGxCdWZmZXJzPXUsYihlLHQsITAsdC5sZW5ndGgsaSwiIixvLmZpbmlzaCksdC5wZW5kaW5nY2IrKyx0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCxvLm5leHQ/KHQuY29ya2VkUmVxdWVzdHNGcmVlPW8ubmV4dCxvLm5leHQ9bnVsbCk6dC5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IGEodCksdC5idWZmZXJlZFJlcXVlc3RDb3VudD0wfWVsc2V7Zm9yKDtyOyl7dmFyIGM9ci5jaHVuayxmPXIuZW5jb2RpbmcsbD1yLmNhbGxiYWNrO2lmKGIoZSx0LCExLHQub2JqZWN0TW9kZT8xOmMubGVuZ3RoLGMsZixsKSxyPXIubmV4dCx0LmJ1ZmZlcmVkUmVxdWVzdENvdW50LS0sdC53cml0aW5nKWJyZWFrfW51bGw9PT1yJiYodC5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwpfXQuYnVmZmVyZWRSZXF1ZXN0PXIsdC5idWZmZXJQcm9jZXNzaW5nPSExfWZ1bmN0aW9uIEUoZSl7cmV0dXJuIGUuZW5kaW5nJiYwPT09ZS5sZW5ndGgmJm51bGw9PT1lLmJ1ZmZlcmVkUmVxdWVzdCYmIWUuZmluaXNoZWQmJiFlLndyaXRpbmd9ZnVuY3Rpb24gdyhlLHQpe2UuX2ZpbmFsKGZ1bmN0aW9uKHIpe3QucGVuZGluZ2NiLS0sciYmZS5lbWl0KCJlcnJvciIsciksdC5wcmVmaW5pc2hlZD0hMCxlLmVtaXQoInByZWZpbmlzaCIpLFQoZSx0KX0pfWZ1bmN0aW9uIFQoZSx0KXt2YXIgcj1FKHQpO3JldHVybiByJiYoIWZ1bmN0aW9uKGUsdCl7dC5wcmVmaW5pc2hlZHx8dC5maW5hbENhbGxlZHx8KCJmdW5jdGlvbiI9PT10eXBlb2YgZS5fZmluYWw/KHQucGVuZGluZ2NiKyssdC5maW5hbENhbGxlZD0hMCxvLm5leHRUaWNrKHcsZSx0KSk6KHQucHJlZmluaXNoZWQ9ITAsZS5lbWl0KCJwcmVmaW5pc2giKSkpfShlLHQpLDA9PT10LnBlbmRpbmdjYiYmKHQuZmluaXNoZWQ9ITAsZS5lbWl0KCJmaW5pc2giKSkpLHJ9Yy5pbmhlcml0cyhtLGwpLHYucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmJ1ZmZlcmVkUmVxdWVzdCx0PVtdO2U7KXQucHVzaChlKSxlPWUubmV4dDtyZXR1cm4gdH0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHYucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6Zi5kZXByZWNhdGUoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0sIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2goZSl7fX0oKSwiZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmhhc0luc3RhbmNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyhkPUZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuISFkLmNhbGwodGhpcyxlKXx8dGhpcz09PW0mJihlJiZlLl93cml0YWJsZVN0YXRlIGluc3RhbmNlb2Ygdil9fSkpOmQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzfSxtLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7dGhpcy5lbWl0KCJlcnJvciIsbmV3IEVycm9yKCJDYW5ub3QgcGlwZSwgbm90IHJlYWRhYmxlIikpfSxtLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlLHQscil7dmFyIG4saT10aGlzLl93cml0YWJsZVN0YXRlLGE9ITEscz0haS5vYmplY3RNb2RlJiYobj1lLGguaXNCdWZmZXIobil8fG4gaW5zdGFuY2VvZiBwKTtyZXR1cm4gcyYmIWguaXNCdWZmZXIoZSkmJihlPWZ1bmN0aW9uKGUpe3JldHVybiBoLmZyb20oZSl9KGUpKSwiZnVuY3Rpb24iPT09dHlwZW9mIHQmJihyPXQsdD1udWxsKSxzP3Q9ImJ1ZmZlciI6dHx8KHQ9aS5kZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPT10eXBlb2YgciYmKHI9ZyksaS5lbmRlZD9mdW5jdGlvbihlLHQpe3ZhciByPW5ldyBFcnJvcigid3JpdGUgYWZ0ZXIgZW5kIik7ZS5lbWl0KCJlcnJvciIsciksby5uZXh0VGljayh0LHIpfSh0aGlzLHIpOihzfHxmdW5jdGlvbihlLHQscixuKXt2YXIgaT0hMCxhPSExO3JldHVybiBudWxsPT09cj9hPW5ldyBUeXBlRXJyb3IoIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIik6InN0cmluZyI9PT10eXBlb2Ygcnx8dm9pZCAwPT09cnx8dC5vYmplY3RNb2RlfHwoYT1uZXcgVHlwZUVycm9yKCJJbnZhbGlkIG5vbi1zdHJpbmcvYnVmZmVyIGNodW5rIikpLGEmJihlLmVtaXQoImVycm9yIixhKSxvLm5leHRUaWNrKG4sYSksaT0hMSksaX0odGhpcyxpLGUscikpJiYoaS5wZW5kaW5nY2IrKyxhPWZ1bmN0aW9uKGUsdCxyLG4saSxvKXtpZighcil7dmFyIGE9ZnVuY3Rpb24oZSx0LHIpe2Uub2JqZWN0TW9kZXx8ITE9PT1lLmRlY29kZVN0cmluZ3N8fCJzdHJpbmciIT09dHlwZW9mIHR8fCh0PWguZnJvbSh0LHIpKTtyZXR1cm4gdH0odCxuLGkpO24hPT1hJiYocj0hMCxpPSJidWZmZXIiLG49YSl9dmFyIHM9dC5vYmplY3RNb2RlPzE6bi5sZW5ndGg7dC5sZW5ndGgrPXM7dmFyIHU9dC5sZW5ndGg8dC5oaWdoV2F0ZXJNYXJrO3V8fCh0Lm5lZWREcmFpbj0hMCk7aWYodC53cml0aW5nfHx0LmNvcmtlZCl7dmFyIGM9dC5sYXN0QnVmZmVyZWRSZXF1ZXN0O3QubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6bixlbmNvZGluZzppLGlzQnVmOnIsY2FsbGJhY2s6byxuZXh0Om51bGx9LGM/Yy5uZXh0PXQubGFzdEJ1ZmZlcmVkUmVxdWVzdDp0LmJ1ZmZlcmVkUmVxdWVzdD10Lmxhc3RCdWZmZXJlZFJlcXVlc3QsdC5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIGIoZSx0LCExLHMsbixpLG8pO3JldHVybiB1fSh0aGlzLGkscyxlLHQscikpLGF9LG0ucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxtLnByb3RvdHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl93cml0YWJsZVN0YXRlO2UuY29ya2VkJiYoZS5jb3JrZWQtLSxlLndyaXRpbmd8fGUuY29ya2VkfHxlLmZpbmlzaGVkfHxlLmJ1ZmZlclByb2Nlc3Npbmd8fCFlLmJ1ZmZlcmVkUmVxdWVzdHx8Uyh0aGlzLGUpKX0sbS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUmJihlPWUudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigoZSsiIikudG9Mb3dlckNhc2UoKSk+LTEpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrZSk7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVmYXVsdEVuY29kaW5nPWUsdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KG0ucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksbS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKGUsdCxyKXtyKG5ldyBFcnJvcigiX3dyaXRlKCkgaXMgbm90IGltcGxlbWVudGVkIikpfSxtLnByb3RvdHlwZS5fd3JpdGV2PW51bGwsbS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzLl93cml0YWJsZVN0YXRlOyJmdW5jdGlvbiI9PT10eXBlb2YgZT8ocj1lLGU9bnVsbCx0PW51bGwpOiJmdW5jdGlvbiI9PT10eXBlb2YgdCYmKHI9dCx0PW51bGwpLG51bGwhPT1lJiZ2b2lkIDAhPT1lJiZ0aGlzLndyaXRlKGUsdCksbi5jb3JrZWQmJihuLmNvcmtlZD0xLHRoaXMudW5jb3JrKCkpLG4uZW5kaW5nfHxuLmZpbmlzaGVkfHxmdW5jdGlvbihlLHQscil7dC5lbmRpbmc9ITAsVChlLHQpLHImJih0LmZpbmlzaGVkP28ubmV4dFRpY2socik6ZS5vbmNlKCJmaW5pc2giLHIpKTt0LmVuZGVkPSEwLGUud3JpdGFibGU9ITF9KHRoaXMsbixyKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG0ucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihlKXt0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZSl9fSksbS5wcm90b3R5cGUuZGVzdHJveT15LmRlc3Ryb3ksbS5wcm90b3R5cGUuX3VuZGVzdHJveT15LnVuZGVzdHJveSxtLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihlLHQpe3RoaXMuZW5kKCksdChlKX19KS5jYWxsKHRoaXMscig0NikscigzMTIpLnNldEltbWVkaWF0ZSxyKDM0KSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4KS5CdWZmZXIsaT1uLmlzRW5jb2Rpbmd8fGZ1bmN0aW9uKGUpe3N3aXRjaCgoZT0iIitlKSYmZS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpjYXNlInJhdyI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIG8oZSl7dmFyIHQ7c3dpdGNoKHRoaXMuZW5jb2Rpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuInV0ZjgiO2Zvcih2YXIgdDs7KXN3aXRjaChlKXtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiJ1dGY4IjtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuInV0ZjE2bGUiO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuImxhdGluMSI7Y2FzZSJiYXNlNjQiOmNhc2UiYXNjaWkiOmNhc2UiaGV4IjpyZXR1cm4gZTtkZWZhdWx0OmlmKHQpcmV0dXJuO2U9KCIiK2UpLnRvTG93ZXJDYXNlKCksdD0hMH19KGUpO2lmKCJzdHJpbmciIT09dHlwZW9mIHQmJihuLmlzRW5jb2Rpbmc9PT1pfHwhaShlKSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2UpO3JldHVybiB0fHxlfShlKSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD11LHRoaXMuZW5kPWMsdD00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1zLHQ9NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PWYsdGhpcy5lbmQ9bCx0PTM7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy53cml0ZT1oLHZvaWQodGhpcy5lbmQ9cCl9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1uLmFsbG9jVW5zYWZlKHQpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGU8PTEyNz8wOmU+PjU9PT02PzI6ZT4+ND09PTE0PzM6ZT4+Mz09PTMwPzQ6ZT4+Nj09PTI/LTE6LTJ9ZnVuY3Rpb24gcyhlKXt2YXIgdD10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLHI9ZnVuY3Rpb24oZSx0LHIpe2lmKDEyOCE9PSgxOTImdFswXSkpcmV0dXJuIGUubGFzdE5lZWQ9MCwiXHVmZmZkIjtpZihlLmxhc3ROZWVkPjEmJnQubGVuZ3RoPjEpe2lmKDEyOCE9PSgxOTImdFsxXSkpcmV0dXJuIGUubGFzdE5lZWQ9MSwiXHVmZmZkIjtpZihlLmxhc3ROZWVkPjImJnQubGVuZ3RoPjImJjEyOCE9PSgxOTImdFsyXSkpcmV0dXJuIGUubGFzdE5lZWQ9MiwiXHVmZmZkIn19KHRoaXMsZSk7cmV0dXJuIHZvaWQgMCE9PXI/cjp0aGlzLmxhc3ROZWVkPD1lLmxlbmd0aD8oZS5jb3B5KHRoaXMubGFzdENoYXIsdCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKSk6KGUuY29weSh0aGlzLmxhc3RDaGFyLHQsMCxlLmxlbmd0aCksdm9pZCh0aGlzLmxhc3ROZWVkLT1lLmxlbmd0aCkpfWZ1bmN0aW9uIHUoZSx0KXtpZigoZS5sZW5ndGgtdCklMj09PTApe3ZhciByPWUudG9TdHJpbmcoInV0ZjE2bGUiLHQpO2lmKHIpe3ZhciBuPXIuY2hhckNvZGVBdChyLmxlbmd0aC0xKTtpZihuPj01NTI5NiYmbjw9NTYzMTkpcmV0dXJuIHRoaXMubGFzdE5lZWQ9Mix0aGlzLmxhc3RUb3RhbD00LHRoaXMubGFzdENoYXJbMF09ZVtlLmxlbmd0aC0yXSx0aGlzLmxhc3RDaGFyWzFdPWVbZS5sZW5ndGgtMV0sci5zbGljZSgwLC0xKX1yZXR1cm4gcn1yZXR1cm4gdGhpcy5sYXN0TmVlZD0xLHRoaXMubGFzdFRvdGFsPTIsdGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTFdLGUudG9TdHJpbmcoInV0ZjE2bGUiLHQsZS5sZW5ndGgtMSl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1lJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOiIiO2lmKHRoaXMubGFzdE5lZWQpe3ZhciByPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQ7cmV0dXJuIHQrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCxyKX1yZXR1cm4gdH1mdW5jdGlvbiBmKGUsdCl7dmFyIHI9KGUubGVuZ3RoLXQpJTM7cmV0dXJuIDA9PT1yP2UudG9TdHJpbmcoImJhc2U2NCIsdCk6KHRoaXMubGFzdE5lZWQ9My1yLHRoaXMubGFzdFRvdGFsPTMsMT09PXI/dGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTFdOih0aGlzLmxhc3RDaGFyWzBdPWVbZS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1lW2UubGVuZ3RoLTFdKSxlLnRvU3RyaW5nKCJiYXNlNjQiLHQsZS5sZW5ndGgtcikpfWZ1bmN0aW9uIGwoZSl7dmFyIHQ9ZSYmZS5sZW5ndGg/dGhpcy53cml0ZShlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD90K3RoaXMubGFzdENoYXIudG9TdHJpbmcoImJhc2U2NCIsMCwzLXRoaXMubGFzdE5lZWQpOnR9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZS50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBwKGUpe3JldHVybiBlJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOiIifXQuU3RyaW5nRGVjb2Rlcj1vLG8ucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4iIjt2YXIgdCxyO2lmKHRoaXMubGFzdE5lZWQpe2lmKHZvaWQgMD09PSh0PXRoaXMuZmlsbExhc3QoZSkpKXJldHVybiIiO3I9dGhpcy5sYXN0TmVlZCx0aGlzLmxhc3ROZWVkPTB9ZWxzZSByPTA7cmV0dXJuIHI8ZS5sZW5ndGg/dD90K3RoaXMudGV4dChlLHIpOnRoaXMudGV4dChlLHIpOnR8fCIifSxvLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5sZW5ndGg/dGhpcy53cml0ZShlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD90KyJcdWZmZmQiOnR9LG8ucHJvdG90eXBlLnRleHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1mdW5jdGlvbihlLHQscil7dmFyIG49dC5sZW5ndGgtMTtpZihuPHIpcmV0dXJuIDA7dmFyIGk9YSh0W25dKTtpZihpPj0wKXJldHVybiBpPjAmJihlLmxhc3ROZWVkPWktMSksaTtpZigtLW48cnx8LTI9PT1pKXJldHVybiAwO2lmKChpPWEodFtuXSkpPj0wKXJldHVybiBpPjAmJihlLmxhc3ROZWVkPWktMiksaTtpZigtLW48cnx8LTI9PT1pKXJldHVybiAwO2lmKChpPWEodFtuXSkpPj0wKXJldHVybiBpPjAmJigyPT09aT9pPTA6ZS5sYXN0TmVlZD1pLTMpLGk7cmV0dXJuIDB9KHRoaXMsZSx0KTtpZighdGhpcy5sYXN0TmVlZClyZXR1cm4gZS50b1N0cmluZygidXRmOCIsdCk7dGhpcy5sYXN0VG90YWw9cjt2YXIgbj1lLmxlbmd0aC0oci10aGlzLmxhc3ROZWVkKTtyZXR1cm4gZS5jb3B5KHRoaXMubGFzdENoYXIsMCxuKSxlLnRvU3RyaW5nKCJ1dGY4Iix0LG4pfSxvLnByb3RvdHlwZS5maWxsTGFzdD1mdW5jdGlvbihlKXtpZih0aGlzLmxhc3ROZWVkPD1lLmxlbmd0aClyZXR1cm4gZS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKTtlLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsZS5sZW5ndGgpLHRoaXMubGFzdE5lZWQtPWUubGVuZ3RofX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE4KS5CdWZmZXIsaT1yKDcpLG89cigzMDgpLGE9bmV3IEFycmF5KDE2KSxzPVswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdLHU9WzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIsNiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYsOSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgsNiw0LDEsMywxMSwxNSwwLDUsMTIsMiwxMyw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0sYz1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sZj1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV0sbD1bMCwxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwyODQwODUzODM4XSxoPVsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdO2Z1bmN0aW9uIHAoKXtvLmNhbGwodGhpcyw2NCksdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4gZTw8dHxlPj4+MzItdH1mdW5jdGlvbiB5KGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodF5yXm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiBnKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodCZyfH50Jm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiB2KGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsoKHR8fnIpXm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiBtKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodCZufHImfm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiBiKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodF4ocnx+bikpK28rYXwwLHMpK2l8MH1pKHAsbykscC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1hLHQ9MDt0PDE2OysrdCllW3RdPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQqdCk7Zm9yKHZhciByPTB8dGhpcy5fYSxuPTB8dGhpcy5fYixpPTB8dGhpcy5fYyxvPTB8dGhpcy5fZCxwPTB8dGhpcy5fZSxfPTB8dGhpcy5fYSxTPTB8dGhpcy5fYixFPTB8dGhpcy5fYyx3PTB8dGhpcy5fZCxUPTB8dGhpcy5fZSxBPTA7QTw4MDtBKz0xKXt2YXIgQyx4O0E8MTY/KEM9eShyLG4saSxvLHAsZVtzW0FdXSxsWzBdLGNbQV0pLHg9YihfLFMsRSx3LFQsZVt1W0FdXSxoWzBdLGZbQV0pKTpBPDMyPyhDPWcocixuLGksbyxwLGVbc1tBXV0sbFsxXSxjW0FdKSx4PW0oXyxTLEUsdyxULGVbdVtBXV0saFsxXSxmW0FdKSk6QTw0OD8oQz12KHIsbixpLG8scCxlW3NbQV1dLGxbMl0sY1tBXSkseD12KF8sUyxFLHcsVCxlW3VbQV1dLGhbMl0sZltBXSkpOkE8NjQ/KEM9bShyLG4saSxvLHAsZVtzW0FdXSxsWzNdLGNbQV0pLHg9ZyhfLFMsRSx3LFQsZVt1W0FdXSxoWzNdLGZbQV0pKTooQz1iKHIsbixpLG8scCxlW3NbQV1dLGxbNF0sY1tBXSkseD15KF8sUyxFLHcsVCxlW3VbQV1dLGhbNF0sZltBXSkpLHI9cCxwPW8sbz1kKGksMTApLGk9bixuPUMsXz1ULFQ9dyx3PWQoRSwxMCksRT1TLFM9eH12YXIgST10aGlzLl9iK2krd3wwO3RoaXMuX2I9dGhpcy5fYytvK1R8MCx0aGlzLl9jPXRoaXMuX2QrcCtffDAsdGhpcy5fZD10aGlzLl9lK3IrU3wwLHRoaXMuX2U9dGhpcy5fYStuK0V8MCx0aGlzLl9hPUl9LHAucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja1t0aGlzLl9ibG9ja09mZnNldCsrXT0xMjgsdGhpcy5fYmxvY2tPZmZzZXQ+NTYmJih0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTApLHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMF0sNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKSx0aGlzLl91cGRhdGUoKTt2YXIgZT1uLmFsbG9jP24uYWxsb2MoMjApOm5ldyBuKDIwKTtyZXR1cm4gZS53cml0ZUludDMyTEUodGhpcy5fYSwwKSxlLndyaXRlSW50MzJMRSh0aGlzLl9iLDQpLGUud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksZS53cml0ZUludDMyTEUodGhpcy5fZCwxMiksZS53cml0ZUludDMyTEUodGhpcy5fZSwxNiksZX0sZS5leHBvcnRzPXB9LGZ1bmN0aW9uKGUsdCxyKXsodD1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZT1lLnRvTG93ZXJDYXNlKCk7dmFyIHI9dFtlXTtpZighcil0aHJvdyBuZXcgRXJyb3IoZSsiIGlzIG5vdCBzdXBwb3J0ZWQgKHdlIGFjY2VwdCBwdWxsIHJlcXVlc3RzKSIpO3JldHVybiBuZXcgcn0pLnNoYT1yKDU2MCksdC5zaGExPXIoNTYxKSx0LnNoYTIyND1yKDU2MiksdC5zaGEyNTY9cigzMTQpLHQuc2hhMzg0PXIoNTYzKSx0LnNoYTUxMj1yKDMxNSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dC51dGlscz1yKDU2OSksdC5DaXBoZXI9cig1NzApLHQuREVTPXIoNTcxKSx0LkNCQz1yKDU3MiksdC5FREU9cig1NzMpfSxmdW5jdGlvbihlLHQscil7dmFyIG49cig1NzQpLGk9cig1ODIpLG89cigzMjUpO3QuY3JlYXRlQ2lwaGVyPXQuQ2lwaGVyPW4uY3JlYXRlQ2lwaGVyLHQuY3JlYXRlQ2lwaGVyaXY9dC5DaXBoZXJpdj1uLmNyZWF0ZUNpcGhlcml2LHQuY3JlYXRlRGVjaXBoZXI9dC5EZWNpcGhlcj1pLmNyZWF0ZURlY2lwaGVyLHQuY3JlYXRlRGVjaXBoZXJpdj10LkRlY2lwaGVyaXY9aS5jcmVhdGVEZWNpcGhlcml2LHQubGlzdENpcGhlcnM9dC5nZXRDaXBoZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKG8pfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXtFQ0I6cig1NzUpLENCQzpyKDU3NiksQ0ZCOnIoNTc3KSxDRkI4OnIoNTc4KSxDRkIxOnIoNTc5KSxPRkI6cig1ODApLENUUjpyKDMyMyksR0NNOnIoMzIzKX0saT1yKDMyNSk7Zm9yKHZhciBvIGluIGkpaVtvXS5tb2R1bGU9bltpW29dLm1vZGVdO2UuZXhwb3J0cz1pfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZS53ZWJwYWNrUG9seWZpbGx8fChlLmRlcHJlY2F0ZT1mdW5jdGlvbigpe30sZS5wYXRocz1bXSxlLmNoaWxkcmVufHwoZS5jaGlsZHJlbj1bXSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImxvYWRlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUubH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiaWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlLml9fSksZS53ZWJwYWNrUG9seWZpbGw9MSksZX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbjtmdW5jdGlvbiBpKGUpe3RoaXMucmFuZD1lfWlmKGUuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbnx8KG49bmV3IGkobnVsbCkpLG4uZ2VuZXJhdGUoZSl9LGUuZXhwb3J0cy5SYW5kPWksaS5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JhbmQoZSl9LGkucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKGUpO2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlKSxyPTA7cjx0Lmxlbmd0aDtyKyspdFtyXT10aGlzLnJhbmQuZ2V0Qnl0ZSgpO3JldHVybiB0fSwib2JqZWN0Ij09PXR5cGVvZiBzZWxmKXNlbGYuY3J5cHRvJiZzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXM/aS5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFVpbnQ4QXJyYXkoZSk7cmV0dXJuIHNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyh0KSx0fTpzZWxmLm1zQ3J5cHRvJiZzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcz9pLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgVWludDhBcnJheShlKTtyZXR1cm4gc2VsZi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXModCksdH06Im9iamVjdCI9PT10eXBlb2Ygd2luZG93JiYoaS5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCB5ZXQiKX0pO2Vsc2UgdHJ5e3ZhciBvPXIoNTg2KTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIG8ucmFuZG9tQnl0ZXMpdGhyb3cgbmV3IEVycg==",
"2020.03.29 15:15": "base64:O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIHIoZSxvLGMpe2lmKG4rKz5zKXRocm93IG49MCxuZXcgRXJyb3IoIkNhbGwgc3RhY2sgb3ZlcmZsb3cgZm9yICIrYyk7aWYoIiI9PT1lKXRocm93IG5ldyBFcnJvcihvKyIoKTogJyIrYysiJyBtdXN0IGNvbnRhaW4gYSBub24td2hpdGVzcGFjZSBzdHJpbmciKTt2YXIgZj1mdW5jdGlvbihlKXt2YXIgdD1bXSxyPVtdLG49L1tcLjAtOV0oWyVhLXpdKykvZ2ksaT1uLmV4ZWMoZSk7Zm9yKDtpOylpJiZpWzFdJiYoLTE9PT1yLmluZGV4T2YoaVsxXS50b0xvd2VyQ2FzZSgpKSYmKHQucHVzaChpWzFdKSxyLnB1c2goaVsxXS50b0xvd2VyQ2FzZSgpKSksaT1uLmV4ZWMoZSkpO3JldHVybiB0fShlPWZ1bmN0aW9uKGUsdCl7ZT1lLnJlcGxhY2UoLygoPzpcLVthLXpdK1wtKT9jYWxjKS9nLCIiKTt2YXIgbixvPSIiLGE9ZTtmb3IoO249dS5leGVjKGEpOyl7blswXS5pbmRleD4wJiYobys9YS5zdWJzdHJpbmcoMCxuWzBdLmluZGV4KSk7dmFyIHM9aSgiKCIsIikiLGEuc3Vic3RyaW5nKFswXS5pbmRleCkpO2lmKCIiPT09cy5ib2R5KXRocm93IG5ldyBFcnJvcigiJyIrZSsiJyBtdXN0IGNvbnRhaW4gYSBub24td2hpdGVzcGFjZSBzdHJpbmciKTt2YXIgYz1yKHMuYm9keSwiIix0KTtvKz1zLnByZStjLGE9cy5wb3N0fXJldHVybiBvK2F9KGUsYykpO2lmKGYubGVuZ3RoPjF8fGUuaW5kZXhPZigidmFyKCIpPi0xKXJldHVybiBvKyIoIitlKyIpIjt2YXIgbD1mWzBdfHwiIjsiJSI9PT1sJiYoZT1lLnJlcGxhY2UoL1xiWzAtOVwuXSslL2csZnVuY3Rpb24oZSl7cmV0dXJuLjAxKnBhcnNlRmxvYXQoZS5zbGljZSgwLC0xKSl9KSk7dmFyIGgscD1lLnJlcGxhY2UobmV3IFJlZ0V4cChsLCJnaSIpLCIiKTt0cnl7aD1hLmV2YWwocCl9Y2F0Y2goZCl7cmV0dXJuIG8rIigiK2UrIikifXJldHVybiIlIj09PWwmJihoKj0xMDApLChvLmxlbmd0aHx8IiUiPT09bCkmJihoPU1hdGgucm91bmQoaCp0KS90KSxoKz1sfXJldHVybiBuPTAsdD1NYXRoLnBvdygxMCx2b2lkIDA9PT10PzU6dCksZT1lLnJlcGxhY2UoL1xuKy9nLCIgIiksbyhlLC8oKD86XC1bYS16XStcLSk/Y2FsYylcKC8scil9fSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiO3QuYnl0ZUxlbmd0aD1mdW5jdGlvbihlKXt2YXIgdD1jKGUpLHI9dFswXSxuPXRbMV07cmV0dXJuIDMqKHIrbikvNC1ufSx0LnRvQnl0ZUFycmF5PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPWMoZSksbj1yWzBdLGE9clsxXSxzPW5ldyBvKGZ1bmN0aW9uKGUsdCxyKXtyZXR1cm4gMyoodCtyKS80LXJ9KDAsbixhKSksdT0wLGY9YT4wP24tNDpuLGw9MDtsPGY7bCs9NCl0PWlbZS5jaGFyQ29kZUF0KGwpXTw8MTh8aVtlLmNoYXJDb2RlQXQobCsxKV08PDEyfGlbZS5jaGFyQ29kZUF0KGwrMildPDw2fGlbZS5jaGFyQ29kZUF0KGwrMyldLHNbdSsrXT10Pj4xNiYyNTUsc1t1KytdPXQ+PjgmMjU1LHNbdSsrXT0yNTUmdDsyPT09YSYmKHQ9aVtlLmNoYXJDb2RlQXQobCldPDwyfGlbZS5jaGFyQ29kZUF0KGwrMSldPj40LHNbdSsrXT0yNTUmdCk7MT09PWEmJih0PWlbZS5jaGFyQ29kZUF0KGwpXTw8MTB8aVtlLmNoYXJDb2RlQXQobCsxKV08PDR8aVtlLmNoYXJDb2RlQXQobCsyKV0+PjIsc1t1KytdPXQ+PjgmMjU1LHNbdSsrXT0yNTUmdCk7cmV0dXJuIHN9LHQuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbihlKXtmb3IodmFyIHQscj1lLmxlbmd0aCxpPXIlMyxvPVtdLGE9MCxzPXItaTthPHM7YSs9MTYzODMpby5wdXNoKGYoZSxhLGErMTYzODM+cz9zOmErMTYzODMpKTsxPT09aT8odD1lW3ItMV0sby5wdXNoKG5bdD4+Ml0rblt0PDw0JjYzXSsiPT0iKSk6Mj09PWkmJih0PShlW3ItMl08PDgpK2Vbci0xXSxvLnB1c2goblt0Pj4xMF0rblt0Pj40JjYzXStuW3Q8PDImNjNdKyI9IikpO3JldHVybiBvLmpvaW4oIiIpfTtmb3IodmFyIG49W10saT1bXSxvPSJ1bmRlZmluZWQiIT09dHlwZW9mIFVpbnQ4QXJyYXk/VWludDhBcnJheTpBcnJheSxhPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixzPTAsdT1hLmxlbmd0aDtzPHU7KytzKW5bc109YVtzXSxpW2EuY2hhckNvZGVBdChzKV09cztmdW5jdGlvbiBjKGUpe3ZhciB0PWUubGVuZ3RoO2lmKHQlND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciByPWUuaW5kZXhPZigiPSIpO3JldHVybi0xPT09ciYmKHI9dCksW3Iscj09PXQ/MDo0LXIlNF19ZnVuY3Rpb24gZihlLHQscil7Zm9yKHZhciBpLG8sYT1bXSxzPXQ7czxyO3MrPTMpaT0oZVtzXTw8MTYmMTY3MTE2ODApKyhlW3MrMV08PDgmNjUyODApKygyNTUmZVtzKzJdKSxhLnB1c2goblsobz1pKT4+MTgmNjNdK25bbz4+MTImNjNdK25bbz4+NiY2M10rbls2MyZvXSk7cmV0dXJuIGEuam9pbigiIil9aVsiLSIuY2hhckNvZGVBdCgwKV09NjIsaVsiXyIuY2hhckNvZGVBdCgwKV09NjN9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig3KSxpPXIoMzA4KSxvPXIoOCkuQnVmZmVyLGE9bmV3IEFycmF5KDE2KTtmdW5jdGlvbiBzKCl7aS5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIHUoZSx0KXtyZXR1cm4gZTw8dHxlPj4+MzItdH1mdW5jdGlvbiBjKGUsdCxyLG4saSxvLGEpe3JldHVybiB1KGUrKHQmcnx+dCZuKStpK298MCxhKSt0fDB9ZnVuY3Rpb24gZihlLHQscixuLGksbyxhKXtyZXR1cm4gdShlKyh0Jm58ciZ+bikraStvfDAsYSkrdHwwfWZ1bmN0aW9uIGwoZSx0LHIsbixpLG8sYSl7cmV0dXJuIHUoZSsodF5yXm4pK2krb3wwLGEpK3R8MH1mdW5jdGlvbiBoKGUsdCxyLG4saSxvLGEpe3JldHVybiB1KGUrKHJeKHR8fm4pKStpK298MCxhKSt0fDB9bihzLGkpLHMucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIGU9YSx0PTA7dDwxNjsrK3QpZVt0XT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0KnQpO3ZhciByPXRoaXMuX2Esbj10aGlzLl9iLGk9dGhpcy5fYyxvPXRoaXMuX2Q7cj1jKHIsbixpLG8sZVswXSwzNjE0MDkwMzYwLDcpLG89YyhvLHIsbixpLGVbMV0sMzkwNTQwMjcxMCwxMiksaT1jKGksbyxyLG4sZVsyXSw2MDYxMDU4MTksMTcpLG49YyhuLGksbyxyLGVbM10sMzI1MDQ0MTk2NiwyMikscj1jKHIsbixpLG8sZVs0XSw0MTE4NTQ4Mzk5LDcpLG89YyhvLHIsbixpLGVbNV0sMTIwMDA4MDQyNiwxMiksaT1jKGksbyxyLG4sZVs2XSwyODIxNzM1OTU1LDE3KSxuPWMobixpLG8scixlWzddLDQyNDkyNjEzMTMsMjIpLHI9YyhyLG4saSxvLGVbOF0sMTc3MDAzNTQxNiw3KSxvPWMobyxyLG4saSxlWzldLDIzMzY1NTI4NzksMTIpLGk9YyhpLG8scixuLGVbMTBdLDQyOTQ5MjUyMzMsMTcpLG49YyhuLGksbyxyLGVbMTFdLDIzMDQ1NjMxMzQsMjIpLHI9YyhyLG4saSxvLGVbMTJdLDE4MDQ2MDM2ODIsNyksbz1jKG8scixuLGksZVsxM10sNDI1NDYyNjE5NSwxMiksaT1jKGksbyxyLG4sZVsxNF0sMjc5Mjk2NTAwNiwxNykscj1mKHIsbj1jKG4saSxvLHIsZVsxNV0sMTIzNjUzNTMyOSwyMiksaSxvLGVbMV0sNDEyOTE3MDc4Niw1KSxvPWYobyxyLG4saSxlWzZdLDMyMjU0NjU2NjQsOSksaT1mKGksbyxyLG4sZVsxMV0sNjQzNzE3NzEzLDE0KSxuPWYobixpLG8scixlWzBdLDM5MjEwNjk5OTQsMjApLHI9ZihyLG4saSxvLGVbNV0sMzU5MzQwODYwNSw1KSxvPWYobyxyLG4saSxlWzEwXSwzODAxNjA4Myw5KSxpPWYoaSxvLHIsbixlWzE1XSwzNjM0NDg4OTYxLDE0KSxuPWYobixpLG8scixlWzRdLDM4ODk0Mjk0NDgsMjApLHI9ZihyLG4saSxvLGVbOV0sNTY4NDQ2NDM4LDUpLG89ZihvLHIsbixpLGVbMTRdLDMyNzUxNjM2MDYsOSksaT1mKGksbyxyLG4sZVszXSw0MTA3NjAzMzM1LDE0KSxuPWYobixpLG8scixlWzhdLDExNjM1MzE1MDEsMjApLHI9ZihyLG4saSxvLGVbMTNdLDI4NTAyODU4MjksNSksbz1mKG8scixuLGksZVsyXSw0MjQzNTYzNTEyLDkpLGk9ZihpLG8scixuLGVbN10sMTczNTMyODQ3MywxNCkscj1sKHIsbj1mKG4saSxvLHIsZVsxMl0sMjM2ODM1OTU2MiwyMCksaSxvLGVbNV0sNDI5NDU4ODczOCw0KSxvPWwobyxyLG4saSxlWzhdLDIyNzIzOTI4MzMsMTEpLGk9bChpLG8scixuLGVbMTFdLDE4MzkwMzA1NjIsMTYpLG49bChuLGksbyxyLGVbMTRdLDQyNTk2NTc3NDAsMjMpLHI9bChyLG4saSxvLGVbMV0sMjc2Mzk3NTIzNiw0KSxvPWwobyxyLG4saSxlWzRdLDEyNzI4OTMzNTMsMTEpLGk9bChpLG8scixuLGVbN10sNDEzOTQ2OTY2NCwxNiksbj1sKG4saSxvLHIsZVsxMF0sMzIwMDIzNjY1NiwyMykscj1sKHIsbixpLG8sZVsxM10sNjgxMjc5MTc0LDQpLG89bChvLHIsbixpLGVbMF0sMzkzNjQzMDA3NCwxMSksaT1sKGksbyxyLG4sZVszXSwzNTcyNDQ1MzE3LDE2KSxuPWwobixpLG8scixlWzZdLDc2MDI5MTg5LDIzKSxyPWwocixuLGksbyxlWzldLDM2NTQ2MDI4MDksNCksbz1sKG8scixuLGksZVsxMl0sMzg3MzE1MTQ2MSwxMSksaT1sKGksbyxyLG4sZVsxNV0sNTMwNzQyNTIwLDE2KSxyPWgocixuPWwobixpLG8scixlWzJdLDMyOTk2Mjg2NDUsMjMpLGksbyxlWzBdLDQwOTYzMzY0NTIsNiksbz1oKG8scixuLGksZVs3XSwxMTI2ODkxNDE1LDEwKSxpPWgoaSxvLHIsbixlWzE0XSwyODc4NjEyMzkxLDE1KSxuPWgobixpLG8scixlWzVdLDQyMzc1MzMyNDEsMjEpLHI9aChyLG4saSxvLGVbMTJdLDE3MDA0ODU1NzEsNiksbz1oKG8scixuLGksZVszXSwyMzk5OTgwNjkwLDEwKSxpPWgoaSxvLHIsbixlWzEwXSw0MjkzOTE1NzczLDE1KSxuPWgobixpLG8scixlWzFdLDIyNDAwNDQ0OTcsMjEpLHI9aChyLG4saSxvLGVbOF0sMTg3MzMxMzM1OSw2KSxvPWgobyxyLG4saSxlWzE1XSw0MjY0MzU1NTUyLDEwKSxpPWgoaSxvLHIsbixlWzZdLDI3MzQ3Njg5MTYsMTUpLG49aChuLGksbyxyLGVbMTNdLDEzMDkxNTE2NDksMjEpLHI9aChyLG4saSxvLGVbNF0sNDE0OTQ0NDIyNiw2KSxvPWgobyxyLG4saSxlWzExXSwzMTc0NzU2OTE3LDEwKSxpPWgoaSxvLHIsbixlWzJdLDcxODc4NzI1OSwxNSksbj1oKG4saSxvLHIsZVs5XSwzOTUxNDgxNzQ1LDIxKSx0aGlzLl9hPXRoaXMuX2ErcnwwLHRoaXMuX2I9dGhpcy5fYitufDAsdGhpcy5fYz10aGlzLl9jK2l8MCx0aGlzLl9kPXRoaXMuX2Qrb3wwfSxzLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIGU9by5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIGUud3JpdGVJbnQzMkxFKHRoaXMuX2EsMCksZS53cml0ZUludDMyTEUodGhpcy5fYiw0KSxlLndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLGUud3JpdGVJbnQzMkxFKHRoaXMuX2QsMTIpLGV9LGUuZXhwb3J0cz1zfSxmdW5jdGlvbihlLHQscil7ZS5leHBvcnRzPWk7dmFyIG49cigxMjApLkV2ZW50RW1pdHRlcjtmdW5jdGlvbiBpKCl7bi5jYWxsKHRoaXMpfXIoNykoaSxuKSxpLlJlYWRhYmxlPXIoMjA3KSxpLldyaXRhYmxlPXIoNTU2KSxpLkR1cGxleD1yKDU1NyksaS5UcmFuc2Zvcm09cig1NTgpLGkuUGFzc1Rocm91Z2g9cig1NTkpLGkuU3RyZWFtPWksaS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbihlLHQpe3ZhciByPXRoaXM7ZnVuY3Rpb24gaSh0KXtlLndyaXRhYmxlJiYhMT09PWUud3JpdGUodCkmJnIucGF1c2UmJnIucGF1c2UoKX1mdW5jdGlvbiBvKCl7ci5yZWFkYWJsZSYmci5yZXN1bWUmJnIucmVzdW1lKCl9ci5vbigiZGF0YSIsaSksZS5vbigiZHJhaW4iLG8pLGUuX2lzU3RkaW98fHQmJiExPT09dC5lbmR8fChyLm9uKCJlbmQiLHMpLHIub24oImNsb3NlIix1KSk7dmFyIGE9ITE7ZnVuY3Rpb24gcygpe2F8fChhPSEwLGUuZW5kKCkpfWZ1bmN0aW9uIHUoKXthfHwoYT0hMCwiZnVuY3Rpb24iPT09dHlwZW9mIGUuZGVzdHJveSYmZS5kZXN0cm95KCkpfWZ1bmN0aW9uIGMoZSl7aWYoZigpLDA9PT1uLmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyBlfWZ1bmN0aW9uIGYoKXtyLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixpKSxlLnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsbyksci5yZW1vdmVMaXN0ZW5lcigiZW5kIixzKSxyLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsdSksci5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGMpLGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjKSxyLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGYpLHIucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixmKSxlLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZil9cmV0dXJuIHIub24oImVycm9yIixjKSxlLm9uKCJlcnJvciIsYyksci5vbigiZW5kIixmKSxyLm9uKCJjbG9zZSIsZiksZS5vbigiY2xvc2UiLGYpLGUuZW1pdCgicGlwZSIsciksZX19LGZ1bmN0aW9uKGUsdCxyKXsodD1lLmV4cG9ydHM9cigzMDkpKS5TdHJlYW09dCx0LlJlYWRhYmxlPXQsdC5Xcml0YWJsZT1yKDIwOCksdC5EdXBsZXg9cig4OCksdC5UcmFuc2Zvcm09cigzMTMpLHQuUGFzc1Rocm91Z2g9cig1NTUpfSxmdW5jdGlvbihlLHQscil7InVzZSBzdHJpY3QiOyhmdW5jdGlvbih0LG4saSl7dmFyIG89cigxNTcpO2Z1bmN0aW9uIGEoZSl7dmFyIHQ9dGhpczt0aGlzLm5leHQ9bnVsbCx0aGlzLmVudHJ5PW51bGwsdGhpcy5maW5pc2g9ZnVuY3Rpb24oKXshZnVuY3Rpb24oZSx0LHIpe3ZhciBuPWUuZW50cnk7ZS5lbnRyeT1udWxsO2Zvcig7bjspe3ZhciBpPW4uY2FsbGJhY2s7dC5wZW5kaW5nY2ItLSxpKHIpLG49bi5uZXh0fXQuY29ya2VkUmVxdWVzdHNGcmVlP3QuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQ9ZTp0LmNvcmtlZFJlcXVlc3RzRnJlZT1lfSh0LGUpfX1lLmV4cG9ydHM9bTt2YXIgcyx1PSF0LmJyb3dzZXImJlsidjAuMTAiLCJ2MC45LiJdLmluZGV4T2YodC52ZXJzaW9uLnNsaWNlKDAsNSkpPi0xP246by5uZXh0VGljazttLldyaXRhYmxlU3RhdGU9djt2YXIgYz1yKDEyOCk7Yy5pbmhlcml0cz1yKDcpO3ZhciBmPXtkZXByZWNhdGU6cig1NTQpfSxsPXIoMzEwKSxoPXIoOCkuQnVmZmVyLHA9aS5VaW50OEFycmF5fHxmdW5jdGlvbigpe307dmFyIGQseT1yKDMxMSk7ZnVuY3Rpb24gZygpe31mdW5jdGlvbiB2KGUsdCl7cz1zfHxyKDg4KSxlPWV8fHt9O3ZhciBuPXQgaW5zdGFuY2VvZiBzO3RoaXMub2JqZWN0TW9kZT0hIWUub2JqZWN0TW9kZSxuJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFlLndyaXRhYmxlT2JqZWN0TW9kZSk7dmFyIGk9ZS5oaWdoV2F0ZXJNYXJrLGM9ZS53cml0YWJsZUhpZ2hXYXRlck1hcmssZj10aGlzLm9iamVjdE1vZGU/MTY6MTYzODQ7dGhpcy5oaWdoV2F0ZXJNYXJrPWl8fDA9PT1pP2k6biYmKGN8fDA9PT1jKT9jOmYsdGhpcy5oaWdoV2F0ZXJNYXJrPU1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKSx0aGlzLmZpbmFsQ2FsbGVkPSExLHRoaXMubmVlZERyYWluPSExLHRoaXMuZW5kaW5nPSExLHRoaXMuZW5kZWQ9ITEsdGhpcy5maW5pc2hlZD0hMSx0aGlzLmRlc3Ryb3llZD0hMTt2YXIgbD0hMT09PWUuZGVjb2RlU3RyaW5nczt0aGlzLmRlY29kZVN0cmluZ3M9IWwsdGhpcy5kZWZhdWx0RW5jb2Rpbmc9ZS5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKGUpeyFmdW5jdGlvbihlLHQpe3ZhciByPWUuX3dyaXRhYmxlU3RhdGUsbj1yLnN5bmMsaT1yLndyaXRlY2I7aWYoZnVuY3Rpb24oZSl7ZS53cml0aW5nPSExLGUud3JpdGVjYj1udWxsLGUubGVuZ3RoLT1lLndyaXRlbGVuLGUud3JpdGVsZW49MH0ociksdCkhZnVuY3Rpb24oZSx0LHIsbixpKXstLXQucGVuZGluZ2NiLHI/KG8ubmV4dFRpY2soaSxuKSxvLm5leHRUaWNrKFQsZSx0KSxlLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxlLmVtaXQoImVycm9yIixuKSk6KGkobiksZS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsZS5lbWl0KCJlcnJvciIsbiksVChlLHQpKX0oZSxyLG4sdCxpKTtlbHNle3ZhciBhPUUocik7YXx8ci5jb3JrZWR8fHIuYnVmZmVyUHJvY2Vzc2luZ3x8IXIuYnVmZmVyZWRSZXF1ZXN0fHxTKGUsciksbj91KF8sZSxyLGEsaSk6XyhlLHIsYSxpKX19KHQsZSl9LHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGluZ2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0hMSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50PTAsdGhpcy5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IGEodGhpcyl9ZnVuY3Rpb24gbShlKXtpZihzPXN8fHIoODgpLCFkLmNhbGwobSx0aGlzKSYmISh0aGlzIGluc3RhbmNlb2YgcykpcmV0dXJuIG5ldyBtKGUpO3RoaXMuX3dyaXRhYmxlU3RhdGU9bmV3IHYoZSx0aGlzKSx0aGlzLndyaXRhYmxlPSEwLGUmJigiZnVuY3Rpb24iPT09dHlwZW9mIGUud3JpdGUmJih0aGlzLl93cml0ZT1lLndyaXRlKSwiZnVuY3Rpb24iPT09dHlwZW9mIGUud3JpdGV2JiYodGhpcy5fd3JpdGV2PWUud3JpdGV2KSwiZnVuY3Rpb24iPT09dHlwZW9mIGUuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9ZS5kZXN0cm95KSwiZnVuY3Rpb24iPT09dHlwZW9mIGUuZmluYWwmJih0aGlzLl9maW5hbD1lLmZpbmFsKSksbC5jYWxsKHRoaXMpfWZ1bmN0aW9uIGIoZSx0LHIsbixpLG8sYSl7dC53cml0ZWxlbj1uLHQud3JpdGVjYj1hLHQud3JpdGluZz0hMCx0LnN5bmM9ITAscj9lLl93cml0ZXYoaSx0Lm9ud3JpdGUpOmUuX3dyaXRlKGksbyx0Lm9ud3JpdGUpLHQuc3luYz0hMX1mdW5jdGlvbiBfKGUsdCxyLG4pe3J8fGZ1bmN0aW9uKGUsdCl7MD09PXQubGVuZ3RoJiZ0Lm5lZWREcmFpbiYmKHQubmVlZERyYWluPSExLGUuZW1pdCgiZHJhaW4iKSl9KGUsdCksdC5wZW5kaW5nY2ItLSxuKCksVChlLHQpfWZ1bmN0aW9uIFMoZSx0KXt0LmJ1ZmZlclByb2Nlc3Npbmc9ITA7dmFyIHI9dC5idWZmZXJlZFJlcXVlc3Q7aWYoZS5fd3JpdGV2JiZyJiZyLm5leHQpe3ZhciBuPXQuYnVmZmVyZWRSZXF1ZXN0Q291bnQsaT1uZXcgQXJyYXkobiksbz10LmNvcmtlZFJlcXVlc3RzRnJlZTtvLmVudHJ5PXI7Zm9yKHZhciBzPTAsdT0hMDtyOylpW3NdPXIsci5pc0J1Znx8KHU9ITEpLHI9ci5uZXh0LHMrPTE7aS5hbGxCdWZmZXJzPXUsYihlLHQsITAsdC5sZW5ndGgsaSwiIixvLmZpbmlzaCksdC5wZW5kaW5nY2IrKyx0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCxvLm5leHQ/KHQuY29ya2VkUmVxdWVzdHNGcmVlPW8ubmV4dCxvLm5leHQ9bnVsbCk6dC5jb3JrZWRSZXF1ZXN0c0ZyZWU9bmV3IGEodCksdC5idWZmZXJlZFJlcXVlc3RDb3VudD0wfWVsc2V7Zm9yKDtyOyl7dmFyIGM9ci5jaHVuayxmPXIuZW5jb2RpbmcsbD1yLmNhbGxiYWNrO2lmKGIoZSx0LCExLHQub2JqZWN0TW9kZT8xOmMubGVuZ3RoLGMsZixsKSxyPXIubmV4dCx0LmJ1ZmZlcmVkUmVxdWVzdENvdW50LS0sdC53cml0aW5nKWJyZWFrfW51bGw9PT1yJiYodC5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwpfXQuYnVmZmVyZWRSZXF1ZXN0PXIsdC5idWZmZXJQcm9jZXNzaW5nPSExfWZ1bmN0aW9uIEUoZSl7cmV0dXJuIGUuZW5kaW5nJiYwPT09ZS5sZW5ndGgmJm51bGw9PT1lLmJ1ZmZlcmVkUmVxdWVzdCYmIWUuZmluaXNoZWQmJiFlLndyaXRpbmd9ZnVuY3Rpb24gdyhlLHQpe2UuX2ZpbmFsKGZ1bmN0aW9uKHIpe3QucGVuZGluZ2NiLS0sciYmZS5lbWl0KCJlcnJvciIsciksdC5wcmVmaW5pc2hlZD0hMCxlLmVtaXQoInByZWZpbmlzaCIpLFQoZSx0KX0pfWZ1bmN0aW9uIFQoZSx0KXt2YXIgcj1FKHQpO3JldHVybiByJiYoIWZ1bmN0aW9uKGUsdCl7dC5wcmVmaW5pc2hlZHx8dC5maW5hbENhbGxlZHx8KCJmdW5jdGlvbiI9PT10eXBlb2YgZS5fZmluYWw/KHQucGVuZGluZ2NiKyssdC5maW5hbENhbGxlZD0hMCxvLm5leHRUaWNrKHcsZSx0KSk6KHQucHJlZmluaXNoZWQ9ITAsZS5lbWl0KCJwcmVmaW5pc2giKSkpfShlLHQpLDA9PT10LnBlbmRpbmdjYiYmKHQuZmluaXNoZWQ9ITAsZS5lbWl0KCJmaW5pc2giKSkpLHJ9Yy5pbmhlcml0cyhtLGwpLHYucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmJ1ZmZlcmVkUmVxdWVzdCx0PVtdO2U7KXQucHVzaChlKSxlPWUubmV4dDtyZXR1cm4gdH0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHYucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6Zi5kZXByZWNhdGUoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRCdWZmZXIoKX0sIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2goZSl7fX0oKSwiZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmhhc0luc3RhbmNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyhkPUZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuISFkLmNhbGwodGhpcyxlKXx8dGhpcz09PW0mJihlJiZlLl93cml0YWJsZVN0YXRlIGluc3RhbmNlb2Ygdil9fSkpOmQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiB0aGlzfSxtLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7dGhpcy5lbWl0KCJlcnJvciIsbmV3IEVycm9yKCJDYW5ub3QgcGlwZSwgbm90IHJlYWRhYmxlIikpfSxtLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihlLHQscil7dmFyIG4saT10aGlzLl93cml0YWJsZVN0YXRlLGE9ITEscz0haS5vYmplY3RNb2RlJiYobj1lLGguaXNCdWZmZXIobil8fG4gaW5zdGFuY2VvZiBwKTtyZXR1cm4gcyYmIWguaXNCdWZmZXIoZSkmJihlPWZ1bmN0aW9uKGUpe3JldHVybiBoLmZyb20oZSl9KGUpKSwiZnVuY3Rpb24iPT09dHlwZW9mIHQmJihyPXQsdD1udWxsKSxzP3Q9ImJ1ZmZlciI6dHx8KHQ9aS5kZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPT10eXBlb2YgciYmKHI9ZyksaS5lbmRlZD9mdW5jdGlvbihlLHQpe3ZhciByPW5ldyBFcnJvcigid3JpdGUgYWZ0ZXIgZW5kIik7ZS5lbWl0KCJlcnJvciIsciksby5uZXh0VGljayh0LHIpfSh0aGlzLHIpOihzfHxmdW5jdGlvbihlLHQscixuKXt2YXIgaT0hMCxhPSExO3JldHVybiBudWxsPT09cj9hPW5ldyBUeXBlRXJyb3IoIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIik6InN0cmluZyI9PT10eXBlb2Ygcnx8dm9pZCAwPT09cnx8dC5vYmplY3RNb2RlfHwoYT1uZXcgVHlwZUVycm9yKCJJbnZhbGlkIG5vbi1zdHJpbmcvYnVmZmVyIGNodW5rIikpLGEmJihlLmVtaXQoImVycm9yIixhKSxvLm5leHRUaWNrKG4sYSksaT0hMSksaX0odGhpcyxpLGUscikpJiYoaS5wZW5kaW5nY2IrKyxhPWZ1bmN0aW9uKGUsdCxyLG4saSxvKXtpZighcil7dmFyIGE9ZnVuY3Rpb24oZSx0LHIpe2Uub2JqZWN0TW9kZXx8ITE9PT1lLmRlY29kZVN0cmluZ3N8fCJzdHJpbmciIT09dHlwZW9mIHR8fCh0PWguZnJvbSh0LHIpKTtyZXR1cm4gdH0odCxuLGkpO24hPT1hJiYocj0hMCxpPSJidWZmZXIiLG49YSl9dmFyIHM9dC5vYmplY3RNb2RlPzE6bi5sZW5ndGg7dC5sZW5ndGgrPXM7dmFyIHU9dC5sZW5ndGg8dC5oaWdoV2F0ZXJNYXJrO3V8fCh0Lm5lZWREcmFpbj0hMCk7aWYodC53cml0aW5nfHx0LmNvcmtlZCl7dmFyIGM9dC5sYXN0QnVmZmVyZWRSZXF1ZXN0O3QubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6bixlbmNvZGluZzppLGlzQnVmOnIsY2FsbGJhY2s6byxuZXh0Om51bGx9LGM/Yy5uZXh0PXQubGFzdEJ1ZmZlcmVkUmVxdWVzdDp0LmJ1ZmZlcmVkUmVxdWVzdD10Lmxhc3RCdWZmZXJlZFJlcXVlc3QsdC5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIGIoZSx0LCExLHMsbixpLG8pO3JldHVybiB1fSh0aGlzLGkscyxlLHQscikpLGF9LG0ucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxtLnByb3RvdHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl93cml0YWJsZVN0YXRlO2UuY29ya2VkJiYoZS5jb3JrZWQtLSxlLndyaXRpbmd8fGUuY29ya2VkfHxlLmZpbmlzaGVkfHxlLmJ1ZmZlclByb2Nlc3Npbmd8fCFlLmJ1ZmZlcmVkUmVxdWVzdHx8Uyh0aGlzLGUpKX0sbS5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIGUmJihlPWUudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigoZSsiIikudG9Mb3dlckNhc2UoKSk+LTEpKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrZSk7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVmYXVsdEVuY29kaW5nPWUsdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KG0ucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksbS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKGUsdCxyKXtyKG5ldyBFcnJvcigiX3dyaXRlKCkgaXMgbm90IGltcGxlbWVudGVkIikpfSxtLnByb3RvdHlwZS5fd3JpdGV2PW51bGwsbS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzLl93cml0YWJsZVN0YXRlOyJmdW5jdGlvbiI9PT10eXBlb2YgZT8ocj1lLGU9bnVsbCx0PW51bGwpOiJmdW5jdGlvbiI9PT10eXBlb2YgdCYmKHI9dCx0PW51bGwpLG51bGwhPT1lJiZ2b2lkIDAhPT1lJiZ0aGlzLndyaXRlKGUsdCksbi5jb3JrZWQmJihuLmNvcmtlZD0xLHRoaXMudW5jb3JrKCkpLG4uZW5kaW5nfHxuLmZpbmlzaGVkfHxmdW5jdGlvbihlLHQscil7dC5lbmRpbmc9ITAsVChlLHQpLHImJih0LmZpbmlzaGVkP28ubmV4dFRpY2socik6ZS5vbmNlKCJmaW5pc2giLHIpKTt0LmVuZGVkPSEwLGUud3JpdGFibGU9ITF9KHRoaXMsbixyKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KG0ucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbihlKXt0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ZSl9fSksbS5wcm90b3R5cGUuZGVzdHJveT15LmRlc3Ryb3ksbS5wcm90b3R5cGUuX3VuZGVzdHJveT15LnVuZGVzdHJveSxtLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihlLHQpe3RoaXMuZW5kKCksdChlKX19KS5jYWxsKHRoaXMscig0NikscigzMTIpLnNldEltbWVkaWF0ZSxyKDM0KSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dmFyIG49cig4KS5CdWZmZXIsaT1uLmlzRW5jb2Rpbmd8fGZ1bmN0aW9uKGUpe3N3aXRjaCgoZT0iIitlKSYmZS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpjYXNlInJhdyI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19O2Z1bmN0aW9uIG8oZSl7dmFyIHQ7c3dpdGNoKHRoaXMuZW5jb2Rpbmc9ZnVuY3Rpb24oZSl7dmFyIHQ9ZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuInV0ZjgiO2Zvcih2YXIgdDs7KXN3aXRjaChlKXtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiJ1dGY4IjtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuInV0ZjE2bGUiO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuImxhdGluMSI7Y2FzZSJiYXNlNjQiOmNhc2UiYXNjaWkiOmNhc2UiaGV4IjpyZXR1cm4gZTtkZWZhdWx0OmlmKHQpcmV0dXJuO2U9KCIiK2UpLnRvTG93ZXJDYXNlKCksdD0hMH19KGUpO2lmKCJzdHJpbmciIT09dHlwZW9mIHQmJihuLmlzRW5jb2Rpbmc9PT1pfHwhaShlKSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2UpO3JldHVybiB0fHxlfShlKSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD11LHRoaXMuZW5kPWMsdD00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1zLHQ9NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PWYsdGhpcy5lbmQ9bCx0PTM7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy53cml0ZT1oLHZvaWQodGhpcy5lbmQ9cCl9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1uLmFsbG9jVW5zYWZlKHQpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGU8PTEyNz8wOmU+PjU9PT02PzI6ZT4+ND09PTE0PzM6ZT4+Mz09PTMwPzQ6ZT4+Nj09PTI/LTE6LTJ9ZnVuY3Rpb24gcyhlKXt2YXIgdD10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLHI9ZnVuY3Rpb24oZSx0LHIpe2lmKDEyOCE9PSgxOTImdFswXSkpcmV0dXJuIGUubGFzdE5lZWQ9MCwiXHVmZmZkIjtpZihlLmxhc3ROZWVkPjEmJnQubGVuZ3RoPjEpe2lmKDEyOCE9PSgxOTImdFsxXSkpcmV0dXJuIGUubGFzdE5lZWQ9MSwiXHVmZmZkIjtpZihlLmxhc3ROZWVkPjImJnQubGVuZ3RoPjImJjEyOCE9PSgxOTImdFsyXSkpcmV0dXJuIGUubGFzdE5lZWQ9MiwiXHVmZmZkIn19KHRoaXMsZSk7cmV0dXJuIHZvaWQgMCE9PXI/cjp0aGlzLmxhc3ROZWVkPD1lLmxlbmd0aD8oZS5jb3B5KHRoaXMubGFzdENoYXIsdCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKSk6KGUuY29weSh0aGlzLmxhc3RDaGFyLHQsMCxlLmxlbmd0aCksdm9pZCh0aGlzLmxhc3ROZWVkLT1lLmxlbmd0aCkpfWZ1bmN0aW9uIHUoZSx0KXtpZigoZS5sZW5ndGgtdCklMj09PTApe3ZhciByPWUudG9TdHJpbmcoInV0ZjE2bGUiLHQpO2lmKHIpe3ZhciBuPXIuY2hhckNvZGVBdChyLmxlbmd0aC0xKTtpZihuPj01NTI5NiYmbjw9NTYzMTkpcmV0dXJuIHRoaXMubGFzdE5lZWQ9Mix0aGlzLmxhc3RUb3RhbD00LHRoaXMubGFzdENoYXJbMF09ZVtlLmxlbmd0aC0yXSx0aGlzLmxhc3RDaGFyWzFdPWVbZS5sZW5ndGgtMV0sci5zbGljZSgwLC0xKX1yZXR1cm4gcn1yZXR1cm4gdGhpcy5sYXN0TmVlZD0xLHRoaXMubGFzdFRvdGFsPTIsdGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTFdLGUudG9TdHJpbmcoInV0ZjE2bGUiLHQsZS5sZW5ndGgtMSl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1lJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOiIiO2lmKHRoaXMubGFzdE5lZWQpe3ZhciByPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQ7cmV0dXJuIHQrdGhpcy5sYXN0Q2hhci50b1N0cmluZygidXRmMTZsZSIsMCxyKX1yZXR1cm4gdH1mdW5jdGlvbiBmKGUsdCl7dmFyIHI9KGUubGVuZ3RoLXQpJTM7cmV0dXJuIDA9PT1yP2UudG9TdHJpbmcoImJhc2U2NCIsdCk6KHRoaXMubGFzdE5lZWQ9My1yLHRoaXMubGFzdFRvdGFsPTMsMT09PXI/dGhpcy5sYXN0Q2hhclswXT1lW2UubGVuZ3RoLTFdOih0aGlzLmxhc3RDaGFyWzBdPWVbZS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1lW2UubGVuZ3RoLTFdKSxlLnRvU3RyaW5nKCJiYXNlNjQiLHQsZS5sZW5ndGgtcikpfWZ1bmN0aW9uIGwoZSl7dmFyIHQ9ZSYmZS5sZW5ndGg/dGhpcy53cml0ZShlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD90K3RoaXMubGFzdENoYXIudG9TdHJpbmcoImJhc2U2NCIsMCwzLXRoaXMubGFzdE5lZWQpOnR9ZnVuY3Rpb24gaChlKXtyZXR1cm4gZS50b1N0cmluZyh0aGlzLmVuY29kaW5nKX1mdW5jdGlvbiBwKGUpe3JldHVybiBlJiZlLmxlbmd0aD90aGlzLndyaXRlKGUpOiIifXQuU3RyaW5nRGVjb2Rlcj1vLG8ucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGUpe2lmKDA9PT1lLmxlbmd0aClyZXR1cm4iIjt2YXIgdCxyO2lmKHRoaXMubGFzdE5lZWQpe2lmKHZvaWQgMD09PSh0PXRoaXMuZmlsbExhc3QoZSkpKXJldHVybiIiO3I9dGhpcy5sYXN0TmVlZCx0aGlzLmxhc3ROZWVkPTB9ZWxzZSByPTA7cmV0dXJuIHI8ZS5sZW5ndGg/dD90K3RoaXMudGV4dChlLHIpOnRoaXMudGV4dChlLHIpOnR8fCIifSxvLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5sZW5ndGg/dGhpcy53cml0ZShlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD90KyJcdWZmZmQiOnR9LG8ucHJvdG90eXBlLnRleHQ9ZnVuY3Rpb24oZSx0KXt2YXIgcj1mdW5jdGlvbihlLHQscil7dmFyIG49dC5sZW5ndGgtMTtpZihuPHIpcmV0dXJuIDA7dmFyIGk9YSh0W25dKTtpZihpPj0wKXJldHVybiBpPjAmJihlLmxhc3ROZWVkPWktMSksaTtpZigtLW48cnx8LTI9PT1pKXJldHVybiAwO2lmKChpPWEodFtuXSkpPj0wKXJldHVybiBpPjAmJihlLmxhc3ROZWVkPWktMiksaTtpZigtLW48cnx8LTI9PT1pKXJldHVybiAwO2lmKChpPWEodFtuXSkpPj0wKXJldHVybiBpPjAmJigyPT09aT9pPTA6ZS5sYXN0TmVlZD1pLTMpLGk7cmV0dXJuIDB9KHRoaXMsZSx0KTtpZighdGhpcy5sYXN0TmVlZClyZXR1cm4gZS50b1N0cmluZygidXRmOCIsdCk7dGhpcy5sYXN0VG90YWw9cjt2YXIgbj1lLmxlbmd0aC0oci10aGlzLmxhc3ROZWVkKTtyZXR1cm4gZS5jb3B5KHRoaXMubGFzdENoYXIsMCxuKSxlLnRvU3RyaW5nKCJ1dGY4Iix0LG4pfSxvLnByb3RvdHlwZS5maWxsTGFzdD1mdW5jdGlvbihlKXtpZih0aGlzLmxhc3ROZWVkPD1lLmxlbmd0aClyZXR1cm4gZS5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKTtlLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsZS5sZW5ndGgpLHRoaXMubGFzdE5lZWQtPWUubGVuZ3RofX0sZnVuY3Rpb24oZSx0LHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1yKDE4KS5CdWZmZXIsaT1yKDcpLG89cigzMDgpLGE9bmV3IEFycmF5KDE2KSxzPVswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwyLDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdLHU9WzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIsNiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYsOSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgsNiw0LDEsMywxMSwxNSwwLDUsMTIsMiwxMyw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0sYz1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sZj1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcsOCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwxNSwxMywxMSwxMV0sbD1bMCwxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwyODQwODUzODM4XSxoPVsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdO2Z1bmN0aW9uIHAoKXtvLmNhbGwodGhpcyw2NCksdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIwfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4gZTw8dHxlPj4+MzItdH1mdW5jdGlvbiB5KGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodF5yXm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiBnKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodCZyfH50Jm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiB2KGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsoKHR8fnIpXm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiBtKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodCZufHImfm4pK28rYXwwLHMpK2l8MH1mdW5jdGlvbiBiKGUsdCxyLG4saSxvLGEscyl7cmV0dXJuIGQoZSsodF4ocnx+bikpK28rYXwwLHMpK2l8MH1pKHAsbykscC5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgZT1hLHQ9MDt0PDE2OysrdCllW3RdPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQqdCk7Zm9yKHZhciByPTB8dGhpcy5fYSxuPTB8dGhpcy5fYixpPTB8dGhpcy5fYyxvPTB8dGhpcy5fZCxwPTB8dGhpcy5fZSxfPTB8dGhpcy5fYSxTPTB8dGhpcy5fYixFPTB8dGhpcy5fYyx3PTB8dGhpcy5fZCxUPTB8dGhpcy5fZSxBPTA7QTw4MDtBKz0xKXt2YXIgQyx4O0E8MTY/KEM9eShyLG4saSxvLHAsZVtzW0FdXSxsWzBdLGNbQV0pLHg9YihfLFMsRSx3LFQsZVt1W0FdXSxoWzBdLGZbQV0pKTpBPDMyPyhDPWcocixuLGksbyxwLGVbc1tBXV0sbFsxXSxjW0FdKSx4PW0oXyxTLEUsdyxULGVbdVtBXV0saFsxXSxmW0FdKSk6QTw0OD8oQz12KHIsbixpLG8scCxlW3NbQV1dLGxbMl0sY1tBXSkseD12KF8sUyxFLHcsVCxlW3VbQV1dLGhbMl0sZltBXSkpOkE8NjQ/KEM9bShyLG4saSxvLHAsZVtzW0FdXSxsWzNdLGNbQV0pLHg9ZyhfLFMsRSx3LFQsZVt1W0FdXSxoWzNdLGZbQV0pKTooQz1iKHIsbixpLG8scCxlW3NbQV1dLGxbNF0sY1tBXSkseD15KF8sUyxFLHcsVCxlW3VbQV1dLGhbNF0sZltBXSkpLHI9cCxwPW8sbz1kKGksMTApLGk9bixuPUMsXz1ULFQ9dyx3PWQoRSwxMCksRT1TLFM9eH12YXIgST10aGlzLl9iK2krd3wwO3RoaXMuX2I9dGhpcy5fYytvK1R8MCx0aGlzLl9jPXRoaXMuX2QrcCtffDAsdGhpcy5fZD10aGlzLl9lK3IrU3wwLHRoaXMuX2U9dGhpcy5fYStuK0V8MCx0aGlzLl9hPUl9LHAucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja1t0aGlzLl9ibG9ja09mZnNldCsrXT0xMjgsdGhpcy5fYmxvY2tPZmZzZXQ+NTYmJih0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTApLHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5ndGhbMF0sNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKSx0aGlzLl91cGRhdGUoKTt2YXIgZT1uLmFsbG9jP24uYWxsb2MoMjApOm5ldyBuKDIwKTtyZXR1cm4gZS53cml0ZUludDMyTEUodGhpcy5fYSwwKSxlLndyaXRlSW50MzJMRSh0aGlzLl9iLDQpLGUud3JpdGVJbnQzMkxFKHRoaXMuX2MsOCksZS53cml0ZUludDMyTEUodGhpcy5fZCwxMiksZS53cml0ZUludDMyTEUodGhpcy5fZSwxNiksZX0sZS5leHBvcnRzPXB9LGZ1bmN0aW9uKGUsdCxyKXsodD1lLmV4cG9ydHM9ZnVuY3Rpb24oZSl7ZT1lLnRvTG93ZXJDYXNlKCk7dmFyIHI9dFtlXTtpZighcil0aHJvdyBuZXcgRXJyb3IoZSsiIGlzIG5vdCBzdXBwb3J0ZWQgKHdlIGFjY2VwdCBwdWxsIHJlcXVlc3RzKSIpO3JldHVybiBuZXcgcn0pLnNoYT1yKDU2MCksdC5zaGExPXIoNTYxKSx0LnNoYTIyND1yKDU2MiksdC5zaGEyNTY9cigzMTQpLHQuc2hhMzg0PXIoNTYzKSx0LnNoYTUxMj1yKDMxNSl9LGZ1bmN0aW9uKGUsdCxyKXsidXNlIHN0cmljdCI7dC51dGlscz1yKDU2OSksdC5DaXBoZXI9cig1NzApLHQuREVTPXIoNTcxKSx0LkNCQz1yKDU3MiksdC5FREU9cig1NzMpfSxmdW5jdGlvbihlLHQscil7dmFyIG49cig1NzQpLGk9cig1ODIpLG89cigzMjUpO3QuY3JlYXRlQ2lwaGVyPXQuQ2lwaGVyPW4uY3JlYXRlQ2lwaGVyLHQuY3JlYXRlQ2lwaGVyaXY9dC5DaXBoZXJpdj1uLmNyZWF0ZUNpcGhlcml2LHQuY3JlYXRlRGVjaXBoZXI9dC5EZWNpcGhlcj1pLmNyZWF0ZURlY2lwaGVyLHQuY3JlYXRlRGVjaXBoZXJpdj10LkRlY2lwaGVyaXY9aS5jcmVhdGVEZWNpcGhlcml2LHQubGlzdENpcGhlcnM9dC5nZXRDaXBoZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKG8pfX0sZnVuY3Rpb24oZSx0LHIpe3ZhciBuPXtFQ0I6cig1NzUpLENCQzpyKDU3NiksQ0ZCOnIoNTc3KSxDRkI4OnIoNTc4KSxDRkIxOnIoNTc5KSxPRkI6cig1ODApLENUUjpyKDMyMyksR0NNOnIoMzIzKX0saT1yKDMyNSk7Zm9yKHZhciBvIGluIGkpaVtvXS5tb2R1bGU9bltpW29dLm1vZGVdO2UuZXhwb3J0cz1pfSxmdW5jdGlvbihlLHQpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gZS53ZWJwYWNrUG9seWZpbGx8fChlLmRlcHJlY2F0ZT1mdW5jdGlvbigpe30sZS5wYXRocz1bXSxlLmNoaWxkcmVufHwoZS5jaGlsZHJlbj1bXSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImxvYWRlZCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGUubH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiaWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBlLml9fSksZS53ZWJwYWNrUG9seWZpbGw9MSksZX19LGZ1bmN0aW9uKGUsdCxyKXt2YXIgbjtmdW5jdGlvbiBpKGUpe3RoaXMucmFuZD1lfWlmKGUuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbnx8KG49bmV3IGkobnVsbCkpLG4uZ2VuZXJhdGUoZSl9LGUuZXhwb3J0cy5SYW5kPWksaS5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX3JhbmQoZSl9LGkucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKGUpe2lmKHRoaXMucmFuZC5nZXRCeXRlcylyZXR1cm4gdGhpcy5yYW5kLmdldEJ5dGVzKGUpO2Zvcih2YXIgdD1uZXcgVWludDhBcnJheShlKSxyPTA7cjx0Lmxlbmd0aDtyKyspdFtyXT10aGlzLnJhbmQuZ2V0Qnl0ZSgpO3JldHVybiB0fSwib2JqZWN0Ij09PXR5cGVvZiBzZWxmKXNlbGYuY3J5cHRvJiZzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXM/aS5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oZSl7dmFyIHQ9bmV3IFVpbnQ4QXJyYXkoZSk7cmV0dXJuIHNlbGYuY3J5cHRvLmdldFJhbmRvbVZhbHVlcyh0KSx0fTpzZWxmLm1zQ3J5cHRvJiZzZWxmLm1zQ3J5cHRvLmdldFJhbmRvbVZhbHVlcz9pLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihlKXt2YXIgdD1uZXcgVWludDhBcnJheShlKTtyZXR1cm4gc2VsZi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXModCksdH06Im9iamVjdCI9PT10eXBlb2Ygd2luZG93JiYoaS5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCB5ZXQiKX0pO2Vsc2UgdHJ5e3ZhciBvPXIoNTg2KTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIG8ucmFuZG9tQnl0ZXMpdGhyb3cgbmV3IEVycg=="
}