Аудит

Данные на 15 февраля 2024

Добавить сайт в список

29

Показатели сайта

0
0
0
Узнайте больше об этом сайте
ИКС сайта 30
SSL-сертификат Есть SSL-сертификат

Содержимое

Заголовок (тег title) Электромонтажные услуги в Москве от Компании «УСС-Электро»
Заголовок (тег h1) Отсутствует
Описание сайта (description) Компания «УСС-Электро» выполняет услуги по электромонтажу в жилых и производственных помещениях любого уровня сложности в Москве. Гарантия качества на выполненные работы, низкие цены

Главная страница сайта

URL сайта https://www.uss-electro.ru/
Локализация сайта 3
https://www.uss-electro.ru/wp-json/wp/v2/pages/10
https://www.uss-electro.ru/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.uss-electro.ru%2F
https://www.uss-electro.ru/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.uss-electro.ru%2F&format=xml
Кодировка страниц UTF-8
Тексты 84
HTML теги 272
a62 article1 aside1 body1 br16 button1 comment2 div51 footer1 h21 head1 header1 html1 img1 li30 link10 main1 meta27 nav1 p21 script21 span7 strong1 style6 title1 ul4 unknown1
Скрипты на сайте 18
Обнаружены скрипты:
Яндекс.Метрика
Все скрипты:
/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js
/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js
data:text/javascript;base64,IWZ1bmN0aW9uKCl7dmFyIHQ9ITE7dHJ5e3ZhciBlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe3Q9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLG51bGwsZSl9Y2F0Y2godCl7fXJldHVybiB0fSgpfHxmdW5jdGlvbihpKXt2YXIgbz0hMCxzPSExO0V2ZW50VGFyZ2V0LnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxuKXt2YXIgcj0ib2JqZWN0Ij09dHlwZW9mIG4sYT1yP24uY2FwdHVyZTpuO249cj9uOnt9LCJ0b3VjaHN0YXJ0IiE9dCYmInNjcm9sbCIhPXQmJiJ3aGVlbCIhPXR8fChuLnBhc3NpdmU9dm9pZCAwIT09bi5wYXNzaXZlP24ucGFzc2l2ZTpvKSxuLmNhcHR1cmU9dm9pZCAwIT09YT9hOnMsaS5jYWxsKHRoaXMsdCxlLG4pfX0oRXZlbnRUYXJnZXQucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIp
data:text/javascript;base64,Y29uc29sZS5sb2coJ2FkOiBudW4nKQ==
data:text/javascript;base64,ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsKGV2ZW50KT0+e3ZhciBwYWdlbGluaz0iXG7QmNGB0YLQvtGH0L3QuNC6OiBodHRwczovL3d3dy51c3MtZWxlY3Ryby5ydSI7ZXZlbnQuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0Iixkb2N1bWVudC5nZXRTZWxlY3Rpb24oKStwYWdlbGluayk7ZXZlbnQucHJldmVudERlZmF1bHQoKX0p
data:text/javascript;base64,ZnVuY3Rpb24gYjJhKGEpe3ZhciBiLGM9MCxsPTAsZj0iIixnPVtdO2lmKCFhKXJldHVybiBhO2Rve3ZhciBlPWEuY2hhckNvZGVBdChjKyspO3ZhciBoPWEuY2hhckNvZGVBdChjKyspO3ZhciBrPWEuY2hhckNvZGVBdChjKyspO3ZhciBkPWU8PDE2fGg8PDh8aztlPTYzJmQ+PjE4O2g9NjMmZD4+MTI7az02MyZkPj42O2QmPTYzO2dbbCsrXT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChlKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChoKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChrKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChkKX13aGlsZShjPGEubGVuZ3RoKTtyZXR1cm4gZj1nLmpvaW4oIiIpLGI9YS5sZW5ndGglMywoYj9mLnNsaWNlKDAsYi0zKTpmKSsiPT09Ii5zbGljZShifHwzKX1mdW5jdGlvbiBhMmIoYSl7dmFyIGIsYyxsLGY9e30sZz0wLGU9MCxoPSIiLGs9U3RyaW5nLmZyb21DaGFyQ29kZSxkPWEubGVuZ3RoO2ZvcihiPTA7NjQ+YjtiKyspZlsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGIpXT1iO2ZvcihjPTA7ZD5jO2MrKylmb3IoYj1mW2EuY2hhckF0KGMpXSxnPShnPDw2KStiLGUrPTY7ODw9ZTspKChsPTI1NSZnPj4+KGUtPTgpKXx8ZC0yPmMpJiYoaCs9ayhsKSk7cmV0dXJuIGh9YjY0ZT1mdW5jdGlvbihhKXtyZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoYSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZyxmdW5jdGlvbihiLGEpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKCIweCIrYSl9KSl9O2I2NGQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChhdG9iKGEpLnNwbGl0KCIiKS5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIiUiKygiMDAiK2EuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKX0pLmpvaW4oIiIpKX07YWlfZnJvbnQ9eyJpbnNlcnRpb25fYmVmb3JlIjoiXHUwNDFmXHUwNDE1XHUwNDIwXHUwNDE1XHUwNDE0IiwiaW5zZXJ0aW9uX2FmdGVyIjoiXHUwNDFmXHUwNDFlXHUwNDIxXHUwNDFiXHUwNDE1IiwiaW5zZXJ0aW9uX3ByZXBlbmQiOiJQUkVQRU5EIENPTlRFTlQiLCJpbnNlcnRpb25fYXBwZW5kIjoiXHUwNDE0XHUwNDFlXHUwNDExXHUwNDEwXHUwNDEyXHUwNDJjXHUwNDIyXHUwNDE1IFx1MDQyMVx1MDQxZVx1MDQxNFx1MDQxNVx1MDQyMFx1MDQxNlx1MDQxOFx1MDQxY1x1MDQxZVx1MDQxNSIsImluc2VydGlvbl9yZXBsYWNlX2NvbnRlbnQiOiJcdTA0MTdcdTA0MTBcdTA0MWNcdTA0MTVcdTA0MWRcdTA0MThcdTA0MjJcdTA0MTUgXHUwNDFhXHUwNDFlXHUwNDFkXHUwNDIyXHUwNDE1XHUwNDFkXHUwNDIyIiwiaW5zZXJ0aW9uX3JlcGxhY2VfZWxlbWVudCI6Ilx1MDQxN1x1MDQxMFx1MDQxY1x1MDQxNVx1MDQxZFx1MDQxOFx1MDQyMlx1MDQxNSBcdTA0MmRcdTA0MWJcdTA0MTVcdTA0MWNcdTA0MTVcdTA0MWRcdTA0MjIiLCJ2aXNpYmxlIjoiXHUwNDEyXHUwNDE4XHUwNDE0XHUwNDE4XHUwNDFjXHUwNDJiXHUwNDE5IiwiaGlkZGVuIjoiXHUwNDIxXHUwNDFhXHUwNDIwXHUwNDJiXHUwNDIyIiwiZmFsbGJhY2siOiJGQUxMQkFDSyIsImF1dG9tYXRpY2FsbHlfcGxhY2VkIjoiXHUwNDEwXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDMwXHUwNDQyXHUwNDM4XHUwNDQ3XHUwNDM1XHUwNDQxXHUwNDNhXHUwNDM4IFx1MDQzZlx1MDQzZVx1MDQzY1x1MDQzNVx1MDQ0OVx1MDQzMFx1MDQzNVx1MDQ0Mlx1MDQ0MVx1MDQ0ZiBcdTA0NDEgXHUwNDNmXHUwNDNlXHUwNDNjXHUwNDNlXHUwNDQ5XHUwNDRjXHUwNDRlIFx1MDQzYVx1MDQzZVx1MDQzNFx1MDQzMCBBZFNlbnNlIEF1dG8iLCJjYW5jZWwiOiJcdTA0MWVcdTA0NDJcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzAiLCJ1c2UiOiJcdTA0MThcdTA0NDFcdTA0M2ZcdTA0M2VcdTA0M2JcdTA0NGNcdTA0MzdcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDJcdTA0NGMiLCJhZGQiOiJcdTA0MTRcdTA0M2VcdTA0MzFcdTA0MzBcdTA0MzJcdTA0MzhcdTA0NDJcdTA0NGMiLCJwYXJlbnQiOiJcdTA0MjBcdTA0M2VcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGMiLCJjYW5jZWxfZWxlbWVudF9zZWxlY3Rpb24iOiJcdTA0MWVcdTA0NDJcdTA0M2NcdTA0MzVcdTA0M2RcdTA0MzhcdTA0NDJcdTA0NGMgXHUwNDMyXHUwNDRiXHUwNDMxXHUwNDNlXHUwNDQwIFx1MDQ0ZFx1MDQzYlx1MDQzNVx1MDQzY1x1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQzMCIsInNlbGVjdF9wYXJlbnRfZWxlbWVudCI6Ilx1MDQxMlx1MDQ0Ylx1MDQzMVx1MDQzNVx1MDQ0MFx1MDQzOFx1MDQ0Mlx1MDQzNSBcdTA0NDBcdTA0M2VcdTA0MzRcdTA0MzhcdTA0NDJcdTA0MzVcdTA0M2JcdTA0NGNcdTA0NDFcdTA0M2FcdTA0MzhcdTA0MzkgXHUwNDRkXHUwNDNiXHUwNDM1XHUwNDNjXHUwNDM1XHUwNDNkXHUwNDQyIiwiY3NzX3NlbGVjdG9yIjoiQ1NTIFx1MDQ0MVx1MDQzNVx1MDQzYlx1MDQzNVx1MDQzYVx1MDQ0Mlx1MDQzZVx1MDQ0MCIsInVzZV9jdXJyZW50X3NlbGVjdG9yIjoiXHUwNDE4XHUwNDQxXHUwNDNmXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDM3XHUwNDNlXHUwNDMyXHUwNDMwXHUwNDQyXHUwNDRjIFx1MDQ0Mlx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQ0OVx1MDQzOFx1MDQzOSBcdTA0NDFcdTA0MzVcdTA0M2JcdTA0MzVcdTA0M2FcdTA0NDJcdTA0M2VcdTA0NDAiLCJlbGVtZW50IjoiXHUwNDJkXHUwNDFiXHUwNDE1XHUwNDFjXHUwNDE1XHUwNDFkXHUwNDIyIiwicGF0aCI6Ilx1MDQxZlx1MDQyM1x1MDQyMlx1MDQyYyIsInNlbGVjdG9yIjoiXHUwNDIxXHUwNDE1XHUwNDFiXHUwNDE1XHUwNDFhXHUwNDIyXHUwNDFlXHUwNDIwIn07dmFyIGFpX2Nvb2tpZV9qcz0hMCxhaV9ibG9ja19jbGFzc19kZWY9InVzcy1ibG9jayI7InVuZGVmaW5lZCIhPT10eXBlb2YgYWlfY29va2llX2pzJiYoZnVuY3Rpb24oYSl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQpe2RlZmluZShhKTt2YXIgYz0hMH0ib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzJiYobW9kdWxlLmV4cG9ydHM9YSgpLGM9ITApO2lmKCFjKXt2YXIgZD13aW5kb3cuQ29va2llcyxiPXdpbmRvdy5Db29raWVzPWEoKTtiLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXt3aW5kb3cuQ29va2llcz1kO3JldHVybiBifX19KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2Zvcih2YXIgZD0wLGI9e307ZDxhcmd1bWVudHMubGVuZ3RoO2QrKyl7dmFyIGY9YXJndW1lbnRzW2RdLGU7Zm9yKGUgaW4gZiliW2VdPWZbZV19cmV0dXJuIGJ9ZnVuY3Rpb24gYyhkKXtmdW5jdGlvbiBiKCl7fWZ1bmN0aW9uIGYoaCxrLGcpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGRvY3VtZW50KXtnPWEoe3BhdGg6Ii8iLHNhbWVTaXRlOiJMYXgifSxiLmRlZmF1bHRzLGcpOyJudW1iZXIiPT09dHlwZW9mIGcuZXhwaXJlcyYmKGcuZXhwaXJlcz1uZXcgRGF0ZSgxKm5ldyBEYXRlKzg2NEU1KmcuZXhwaXJlcykpO2cuZXhwaXJlcz1nLmV4cGlyZXM/Zy5leHBpcmVzLnRvVVRDU3RyaW5nKCk6IiI7dHJ5e3ZhciBsPUpTT04uc3RyaW5naWZ5KGspOy9eW1x7XFtdLy50ZXN0KGwpJiYoaz1sKX1jYXRjaChwKXt9az1kLndyaXRlP2Qud3JpdGUoayxoKTplbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGspKS5yZXBsYWNlKC8lKDIzfDI0fDI2fDJCfDNBfDNDfDNFfDNEfDJGfDNGfDQwfDVCfDVEfDVFfDYwfDdCfDdEfDdDKS9nLGRlY29kZVVSSUNvbXBvbmVudCk7aD1lbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKGgpKS5yZXBsYWNlKC8lKDIzfDI0fDI2fDJCfDVFfDYwfDdDKS9nLGRlY29kZVVSSUNvbXBvbmVudCkucmVwbGFjZSgvW1woXCldL2csZXNjYXBlKTtsPSIiO2Zvcih2YXIgbiBpbiBnKWdbbl0mJihsKz0iOyAiK24sITAhPT1nW25dJiYobCs9Ij0iK2dbbl0uc3BsaXQoIjsiKVswXSkpO3JldHVybiBkb2N1bWVudC5jb29raWU9aCsiPSIraytsfX1mdW5jdGlvbiBlKGgsayl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgZG9jdW1lbnQpe2Zvcih2YXIgZz17fSxsPWRvY3VtZW50LmNvb2tpZT9kb2N1bWVudC5jb29raWUuc3BsaXQoIjsgIik6W10sbj0wO248bC5sZW5ndGg7bisrKXt2YXIgcD1sW25dLnNwbGl0KCI9IiksbT1wLnNsaWNlKDEpLmpvaW4oIj0iKTtrfHwnIichPT1tLmNoYXJBdCgwKXx8KG09bS5zbGljZSgxLC0xKSk7dHJ5e3ZhciBxPXBbMF0ucmVwbGFjZSgvKCVbMC05QS1aXXsyfSkrL2csZGVjb2RlVVJJQ29tcG9uZW50KTttPShkLnJlYWR8fGQpKG0scSl8fG0ucmVwbGFjZSgvKCVbMC05QS1aXXsyfSkrL2csZGVjb2RlVVJJQ29tcG9uZW50KTtpZihrKXRyeXttPUpTT04ucGFyc2UobSl9Y2F0Y2gocil7fWdbcV09bTtpZihoPT09cSlicmVha31jYXRjaChyKXt9fXJldHVybiBoP2dbaF06Z319Yi5zZXQ9ZjtiLmdldD1mdW5jdGlvbihoKXtyZXR1cm4gZShoLCExKX07Yi5nZXRKU09OPWZ1bmN0aW9uKGgpe3JldHVybiBlKGgsITApfTtiLnJlbW92ZT1mdW5jdGlvbihoLGspe2YoaCwiIixhKGsse2V4cGlyZXM6LTF9KSl9O2IuZGVmYXVsdHM9e307Yi53aXRoQ29udmVydGVyPWM7cmV0dXJuIGJ9cmV0dXJuIGMoZnVuY3Rpb24oKXt9KX0pLEFpQ29va2llcz1Db29raWVzLm5vQ29uZmxpY3QoKSxhaV9jaGVja19ibG9jaz1mdW5jdGlvbihhKXtpZihudWxsPT1hKXJldHVybiEwO3ZhciBjPUFpQ29va2llcy5nZXRKU09OKCJhaUJMT0NLUyIpO2FpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9IiI7bnVsbD09YyYmKGM9e30pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGFpX2RlbGF5X3Nob3dpbmdfcGFnZXZpZXdzJiYoYy5oYXNPd25Qcm9wZXJ0eShhKXx8KGNbYV09e30pLGNbYV0uaGFzT3duUHJvcGVydHkoImQiKXx8KGNbYV0uZD1haV9kZWxheV9zaG93aW5nX3BhZ2V2aWV3cykpO2lmKGMuaGFzT3duUHJvcGVydHkoYSkpe2Zvcih2YXIgZCBpbiBjW2FdKXtpZigieCI9PWQpe3ZhciBiPSIiLGY9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3BhbltkYXRhLWFpLWJsb2NrPSInK2ErJyJdJylbMF07ImFpSGFzaCJpbiBmLmRhdGFzZXQmJihiPWYuZGF0YXNldC5haUhhc2gpO2Y9IiI7Y1thXS5oYXNPd25Qcm9wZXJ0eSgiaCIpJiYoZj1jW2FdLmgpO3ZhciBlPW5ldyBEYXRlO2U9Y1thXVtkXS1NYXRoLnJvdW5kKGUuZ2V0VGltZSgpLzFFMyk7aWYoMDxlJiZmPT1iKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWE9ImNsb3NlZCBmb3IgIitlKyIgcyA9ICIrTWF0aC5yb3VuZCgxRTQqZS8zNjAwLzI0KS8xRTQrIiBkYXlzIiwhMTthaV9zZXRfY29va2llKGEsIngiLCIiKTtjW2FdLmhhc093blByb3BlcnR5KCJpIil8fGNbYV0uaGFzT3duUHJvcGVydHkoImMiKXx8YWlfc2V0X2Nvb2tpZShhLCJoIiwiIil9ZWxzZSBpZigiZCI9PWQpe2lmKDAhPWNbYV1bZF0pcmV0dXJuIGFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9YT0iZGVsYXllZCBmb3IgIitjW2FdW2RdKyIgcGFnZXZpZXdzIiwhMX1lbHNlIGlmKCJpIj09ZCl7Yj0iIjtmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3NwYW5bZGF0YS1haS1ibG9jaz0iJythKyciXScpWzBdOyJhaUhhc2giaW4gZi5kYXRhc2V0JiYoYj1mLmRhdGFzZXQuYWlIYXNoKTtmPSIiO2NbYV0uaGFzT3duUHJvcGVydHkoImgiKSYmKGY9Y1thXS5oKTtpZigwPT1jW2FdW2RdJiZmPT1iKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWE9Im1heCBpbXByZXNzaW9ucyByZWFjaGVkIiwhMTtpZigwPmNbYV1bZF0mJmY9PWIpe2U9bmV3IERhdGU7ZT0tY1thXVtkXS1NYXRoLnJvdW5kKGUuZ2V0VGltZSgpLzFFMyk7aWYoMDxlKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWE9Im1heCBpbXAuIHJlYWNoZWQgKCIrTWF0aC5yb3VuZCgxRTQqZS8yNC8zNjAwKS8xRTQrIiBkYXlzID0gIitlKyIgcykiLCExO2FpX3NldF9jb29raWUoYSwiaSIsIiIpO2NbYV0uaGFzT3duUHJvcGVydHkoImMiKXx8Y1thXS5oYXNPd25Qcm9wZXJ0eSgieCIpfHxhaV9zZXRfY29va2llKGEsImgiLCIiKX19aWYoImlwdCI9PWQmJjA9PWNbYV1bZF0mJihlPW5ldyBEYXRlLGI9TWF0aC5yb3VuZChlLmdldFRpbWUoKS8xRTMpLGU9Y1thXS5pdC1iLDA8ZSkpcmV0dXJuIGFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9YT0ibWF4IGltcC4gcGVyIHRpbWUgcmVhY2hlZCAoIitNYXRoLnJvdW5kKDFFNCplLzI0LzM2MDApLzFFNCsiIGRheXMgPSAiK2UrIiBzKSIsITE7aWYoImMiPT1kKXtiPSIiO2Y9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3BhbltkYXRhLWFpLWJsb2NrPSInK2ErJyJdJylbMF07ImFpSGFzaCJpbiBmLmRhdGFzZXQmJihiPWYuZGF0YXNldC5haUhhc2gpO2Y9IiI7Y1thXS5oYXNPd25Qcm9wZXJ0eSgiaCIpJiYoZj1jW2FdLmgpO2lmKDA9PWNbYV1bZF0mJmY9PWIpcmV0dXJuIGFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9YT0ibWF4IGNsaWNrcyByZWFjaGVkIiwhMTtpZigwPmNbYV1bZF0mJmY9PWIpe2U9bmV3IERhdGU7ZT0tY1thXVtkXS1NYXRoLnJvdW5kKGUuZ2V0VGltZSgpLzFFMyk7aWYoMDxlKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWE9Im1heCBjbGlja3MgcmVhY2hlZCAoIitNYXRoLnJvdW5kKDFFNCplLzI0LzM2MDApLzFFNCsiIGRheXMgPSAiK2UrIiBzKSIsITE7YWlfc2V0X2Nvb2tpZShhLCJjIiwiIik7Y1thXS5oYXNPd25Qcm9wZXJ0eSgiaSIpfHxjW2FdLmhhc093blByb3BlcnR5KCJ4Iil8fGFpX3NldF9jb29raWUoYSwiaCIsIiIpfX1pZigiY3B0Ij09ZCYmMD09Y1thXVtkXSYmKGU9bmV3IERhdGUsYj1NYXRoLnJvdW5kKGUuZ2V0VGltZSgpLzFFMyksZT1jW2FdLmN0LWIsMDxlKSlyZXR1cm4gYWlfZGVidWdfY29va2llX3N0YXR1cz1hPSJtYXggY2xpY2tzIHBlciB0aW1lIHJlYWNoZWQgKCIrTWF0aC5yb3VuZCgxRTQqZS8yNC8zNjAwKS8xRTQrIiBkYXlzID0gIitlKyIgcykiLCExfWlmKGMuaGFzT3duUHJvcGVydHkoIkciKSYmYy5HLmhhc093blByb3BlcnR5KCJjcHQiKSYmMD09Yy5HLmNwdCYmKGU9bmV3IERhdGUsYj1NYXRoLnJvdW5kKGUuZ2V0VGltZSgpLzFFMyksZT1jLkcuY3QtYiwwPGUpKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWE9Im1heCBnbG9iYWwgY2xpY2tzIHBlciB0aW1lIHJlYWNoZWQgKCIrTWF0aC5yb3VuZCgxRTQqZS8yNC8zNjAwKS8xRTQrIiBkYXlzID0gIitlKyIgcykiLCExfWFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9Ik9LIjtyZXR1cm4hMH0sYWlfY2hlY2tfYW5kX2luc2VydF9ibG9jaz1mdW5jdGlvbihhLGMpe2lmKG51bGw9PWEpcmV0dXJuITA7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShjKTtpZihkLmxlbmd0aCl7ZD1kWzBdO3ZhciBiPWQuY2xvc2VzdCgiLiIrYWlfYmxvY2tfY2xhc3NfZGVmKSxmPWFpX2NoZWNrX2Jsb2NrKGEpOyFmJiYwIT1wYXJzZUludChkLmdldEF0dHJpYnV0ZSgibGltaXRzLWZhbGxiYWNrIikpJiZkLmhhc0F0dHJpYnV0ZSgiZGF0YS1mYWxsYmFjay1jb2RlIikmJihkLnNldEF0dHJpYnV0ZSgiZGF0YS1jb2RlIixkLmdldEF0dHJpYnV0ZSgiZGF0YS1mYWxsYmFjay1jb2RlIikpLG51bGwhPWImJmIuaGFzQXR0cmlidXRlKCJkYXRhLWFpIikmJmQuaGFzQXR0cmlidXRlKCJmYWxsYmFjay10cmFja2luZyIpJiZkLmhhc0F0dHJpYnV0ZSgiZmFsbGJhY2tfbGV2ZWwiKSYmYi5zZXRBdHRyaWJ1dGUoImRhdGEtYWktIitkLmdldEF0dHJpYnV0ZSgiZmFsbGJhY2tfbGV2ZWwiKSxkLmdldEF0dHJpYnV0ZSgiZmFsbGJhY2stdHJhY2tpbmciKSksZj0hMCk7ZC5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2VsZWN0b3IiKTtpZihmKWFpX2luc2VydF9jb2RlKGQpLGImJihmPWIucXVlcnlTZWxlY3RvckFsbCgiLmFpLWRlYnVnLWJsb2NrIiksZi5sZW5ndGgmJihiLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2siKSxiLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2staXAiKSxiLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtYmxvY2stZmlsdGVyIiksYi5zdHlsZS52aXNpYmlsaXR5PSIiLGIuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yZW1vdmUtcG9zaXRpb24iKSYmKGIuc3R5bGUucG9zaXRpb249IiIpKSk7ZWxzZXtmPWQuY2xvc2VzdCgiZGl2W2RhdGEtYWldIik7aWYobnVsbCE9ZiYmInVuZGVmaW5lZCIhPXR5cGVvZiBmLmdldEF0dHJpYnV0ZSgiZGF0YS1haSIpKXt2YXIgZT1KU09OLnBhcnNlKGI2NGQoZi5nZXRBdHRyaWJ1dGUoImRhdGEtYWkiKSkpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGUmJmUuY29uc3RydWN0b3I9PT1BcnJheSYmKGVbMV09IiIsZi5zZXRBdHRyaWJ1dGUoImRhdGEtYWkiLGI2NGUoSlNPTi5zdHJpbmdpZnkoZSkpKSl9YiYmKGY9Yi5xdWVyeVNlbGVjdG9yQWxsKCIuYWktZGVidWctYmxvY2siKSxmLmxlbmd0aCYmKGIuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jayIpLGIuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jay1pcCIpLGIuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jay1maWx0ZXIiKSxiLnN0eWxlLnZpc2liaWxpdHk9IiIsYi5jbGFzc0xpc3QuY29udGFpbnMoImFpLXJlbW92ZS1wb3NpdGlvbiIpJiYoYi5zdHlsZS5wb3NpdGlvbj0iIikpKX1kLmNsYXNzTGlzdC5yZW1vdmUoYyl9ZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuIitjKyItZGJnIik7Yj0wO2ZvcihmPWQubGVuZ3RoO2I8ZjtiKyspZT1kW2JdLGUucXVlcnlTZWxlY3RvcigiLmFpLXN0YXR1cyIpLnRleHRDb250ZW50PWFpX2RlYnVnX2Nvb2tpZV9zdGF0dXMsZS5xdWVyeVNlbGVjdG9yKCIuYWktY29va2llLWRhdGEiKS50ZXh0Q29udGVudD1haV9nZXRfY29va2llX3RleHQoYSksZS5jbGFzc0xpc3QucmVtb3ZlKGMrIi1kYmciKX0sYWlfbG9hZF9jb29raWU9ZnVuY3Rpb24oKXt2YXIgYT1BaUNvb2tpZXMuZ2V0SlNPTigiYWlCTE9DS1MiKTtudWxsPT1hJiYoYT17fSk7cmV0dXJuIGF9LGFpX3NldF9jb29raWU9ZnVuY3Rpb24oYSxjLGQpe3ZhciBiPWFpX2xvYWRfY29va2llKCk7aWYoIiI9PT1kKXtpZihiLmhhc093blByb3BlcnR5KGEpKXtkZWxldGUgYlthXVtjXTthOntjPWJbYV07Zm9yKGYgaW4gYylpZihjLmhhc093blByb3BlcnR5KGYpKXt2YXIgZj0hMTticmVhayBhfWY9ITB9ZiYmZGVsZXRlIGJbYV19fWVsc2UgYi5oYXNPd25Qcm9wZXJ0eShhKXx8KGJbYV09e30pLGJbYV1bY109ZDswPT09T2JqZWN0LmtleXMoYikubGVuZ3RoJiZiLmNvbnN0cnVjdG9yPT09T2JqZWN0P0FpQ29va2llcy5yZW1vdmUoImFpQkxPQ0tTIik6QWlDb29raWVzLnNldCgiYWlCTE9DS1MiLGIse2V4cGlyZXM6MzY1LHBhdGg6Ii8ifSk7cmV0dXJuIGJ9LGFpX2dldF9jb29raWVfdGV4dD1mdW5jdGlvbihhKXt2YXIgYz1BaUNvb2tpZXMuZ2V0SlNPTigiYWlCTE9DS1MiKTtudWxsPT1jJiYoYz17fSk7dmFyIGQ9IiI7Yy5oYXNPd25Qcm9wZXJ0eSgiRyIpJiYoZD0iR1siK0pTT04uc3RyaW5naWZ5KGMuRykucmVwbGFjZSgvIi9nLCIiKS5yZXBsYWNlKCJ7IiwiIikucmVwbGFjZSgifSIsIiIpKyJdICIpO3ZhciBiPSIiO2MuaGFzT3duUHJvcGVydHkoYSkmJihiPUpTT04uc3RyaW5naWZ5KGNbYV0pLnJlcGxhY2UoLyIvZywiIikucmVwbGFjZSgieyIsIiIpLnJlcGxhY2UoIn0iLCIiKSk7cmV0dXJuIGQrYn0pO3ZhciBhaV9pbnNlcnRpb25fanM9ITAsYWlfYmxvY2tfY2xhc3NfZGVmPSJ1c3MtYmxvY2siO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYWlfaW5zZXJ0aW9uX2pzKXthaV9pbnNlcnQ9ZnVuY3Rpb24oYSxoLGwpe2lmKC0xIT1oLmluZGV4T2YoIjplcSgiKSlpZih3aW5kb3cualF1ZXJ5JiZ3aW5kb3cualF1ZXJ5LmZuKXZhciBuPWpRdWVyeShoKTtlbHNle2NvbnNvbGUuZXJyb3IoIkFJIElOU0VSVCBVU0lORyBqUXVlcnkgUVVFUklFUzoiLGgsIi0galF1ZXJ5IG5vdCBmb3VuZCIpO3JldHVybn1lbHNlIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChoKTtmb3IodmFyIHU9MCx5PW4ubGVuZ3RoO3U8eTt1Kyspe3ZhciBkPW5bdV07c2VsZWN0b3Jfc3RyaW5nPWQuaGFzQXR0cmlidXRlKCJpZCIpPyIjIitkLmdldEF0dHJpYnV0ZSgiaWQiKTpkLmhhc0F0dHJpYnV0ZSgiY2xhc3MiKT8iLiIrZC5nZXRBdHRyaWJ1dGUoImNsYXNzIikucmVwbGFjZShSZWdFeHAoIiAiLCJnIiksIi4iKToiIjt2YXIgdz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt3LmlubmVySFRNTD1sO3ZhciBtPXcuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYWktc2VsZWN0b3ItY291bnRlciIpWzBdO251bGwhPW0mJihtLmlubmVyVGV4dD11KzEpO209dy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhaS1kZWJ1Zy1uYW1lIGFpLW1haW4iKVswXTtpZihudWxsIT1tKXt2YXIgcj1hLnRvVXBwZXJDYXNlKCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhaV9mcm9udCYmKCJiZWZvcmUiPT1hP3I9YWlfZnJvbnQuaW5zZXJ0aW9uX2JlZm9yZToiYWZ0ZXIiPT1hP3I9YWlfZnJvbnQuaW5zZXJ0aW9uX2FmdGVyOiJwcmVwZW5kIj09YT9yPWFpX2Zyb250Lmluc2VydGlvbl9wcmVwZW5kOiJhcHBlbmQiPT1hP3I9YWlfZnJvbnQuaW5zZXJ0aW9uX2FwcGVuZDoicmVwbGFjZS1jb250ZW50Ij09YT9yPWFpX2Zyb250Lmluc2VydGlvbl9yZXBsYWNlX2NvbnRlbnQ6InJlcGxhY2UtZWxlbWVudCI9PWEmJihyPWFpX2Zyb250Lmluc2VydGlvbl9yZXBsYWNlX2VsZW1lbnQpKTstMT09c2VsZWN0b3Jfc3RyaW5nLmluZGV4T2YoIi5haS12aWV3cG9ydHMiKSYmKG0uaW5uZXJUZXh0PXIrIiAiK2grIiAoIitkLnRhZ05hbWUudG9Mb3dlckNhc2UoKStzZWxlY3Rvcl9zdHJpbmcrIikiKX1tPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7dHJ5e3ZhciB2PW0uY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHcuaW5uZXJIVE1MKX1jYXRjaCh0KXt9ImJlZm9yZSI9PWE/ZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh2LGQpOiJhZnRlciI9PWE/ZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh2LGQubmV4dFNpYmxpbmcpOiJwcmVwZW5kIj09YT9kLmluc2VydEJlZm9yZSh2LGQuZmlyc3RDaGlsZCk6ImFwcGVuZCI9PWE/ZC5pbnNlcnRCZWZvcmUodixudWxsKToicmVwbGFjZS1jb250ZW50Ij09YT8oZC5pbm5lckhUTUw9IiIsZC5pbnNlcnRCZWZvcmUodixudWxsKSk6InJlcGxhY2UtZWxlbWVudCI9PWEmJihkLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHYsZCksZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpKTt6KCl9fTthaV9pbnNlcnRfY29kZT1mdW5jdGlvbihhKXtmdW5jdGlvbiBoKG0scil7cmV0dXJuIG51bGw9PW0/ITE6bS5jbGFzc0xpc3Q/bS5jbGFzc0xpc3QuY29udGFpbnMocik6LTE8KCIgIittLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoIiAiK3IrIiAiKX1mdW5jdGlvbiBsKG0scil7bnVsbCE9bSYmKG0uY2xhc3NMaXN0P20uY2xhc3NMaXN0LmFkZChyKTptLmNsYXNzTmFtZSs9IiAiK3IpfWZ1bmN0aW9uIG4obSxyKXtudWxsIT1tJiYobS5jbGFzc0xpc3Q/bS5jbGFzc0xpc3QucmVtb3ZlKHIpOm0uY2xhc3NOYW1lPW0uY2xhc3NOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgiKF58XFxiKSIrci5zcGxpdCgiICIpLmpvaW4oInwiKSsiKFxcYnwkKSIsImdpIiksIiAiKSl9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhKXt2YXIgdT0hMTtpZihoKGEsIm5vLXZpc2liaWxpdHktY2hlY2siKXx8YS5vZmZzZXRXaWR0aHx8YS5vZmZzZXRIZWlnaHR8fGEuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpe3U9YS5nZXRBdHRyaWJ1dGUoImRhdGEtY29kZSIpO3ZhciB5PWEuZ2V0QXR0cmlidXRlKCJkYXRhLWluc2VydGlvbi1wb3NpdGlvbiIpLGQ9YS5nZXRBdHRyaWJ1dGUoImRhdGEtc2VsZWN0b3IiKTtpZihudWxsIT11KWlmKG51bGwhPXkmJm51bGwhPWQpe2lmKC0xIT1kLmluZGV4T2YoIjplcSgiKT93aW5kb3cualF1ZXJ5JiZ3aW5kb3cualF1ZXJ5LmZuJiZqUXVlcnkoZCkubGVuZ3RoOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZCkubGVuZ3RoKWFpX2luc2VydCh5LGQsYjY0ZCh1KSksbihhLCJhaS12aWV3cG9ydHMiKX1lbHNle3k9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt0cnl7dmFyIHc9eS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoYjY0ZCh1KSl9Y2F0Y2gobSl7fWEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodyxhLm5leHRTaWJsaW5nKTtuKGEsImFpLXZpZXdwb3J0cyIpfXU9ITB9ZWxzZSB3PWEucHJldmlvdXNFbGVtZW50U2libGluZyxoKHcsImFpLWRlYnVnLWJhciIpJiZoKHcsImFpLWRlYnVnLXNjcmlwdCIpJiYobih3LCJhaS1kZWJ1Zy1zY3JpcHQiKSxsKHcsImFpLWRlYnVnLXZpZXdwb3J0LWludmlzaWJsZSIpKSxuKGEsImFpLXZpZXdwb3J0cyIpO3JldHVybiB1fX07YWlfaW5zZXJ0X2xpc3RfY29kZT1mdW5jdGlvbihhKXt2YXIgaD1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpWzBdO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaCl7dmFyIGw9YWlfaW5zZXJ0X2NvZGUoaCksbj1oLmNsb3Nlc3QoImRpdi4iK2FpX2Jsb2NrX2NsYXNzX2RlZik7aWYobil7bHx8bi5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtYWkiKTt2YXIgdT1uLnF1ZXJ5U2VsZWN0b3JBbGwoIi5haS1kZWJ1Zy1ibG9jayIpO24mJnUubGVuZ3RoJiYobi5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrIiksbi5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrLWlwIiksbi5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrLWZpbHRlciIpLG4uc3R5bGUudmlzaWJpbGl0eT0iIixuLmNsYXNzTGlzdC5jb250YWlucygiYWktcmVtb3ZlLXBvc2l0aW9uIikmJihuLnN0eWxlLnBvc2l0aW9uPSIiKSl9aC5jbGFzc0xpc3QucmVtb3ZlKGEpO2wmJnooKX19O2FpX2luc2VydF92aWV3cG9ydF9jb2RlPWZ1bmN0aW9uKGEpe3ZhciBoPWRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoYSlbMF07aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoKXt2YXIgbD1haV9pbnNlcnRfY29kZShoKTtoLmNsYXNzTGlzdC5yZW1vdmUoYSk7bCYmKGE9aC5jbG9zZXN0KCJkaXYuIithaV9ibG9ja19jbGFzc19kZWYpLG51bGwhPWEmJihsPWguZ2V0QXR0cmlidXRlKCJzdHlsZSIpLG51bGwhPWwmJmEuc2V0QXR0cmlidXRlKCJzdHlsZSIsYS5nZXRBdHRyaWJ1dGUoInN0eWxlIikrIiAiK2wpKSk7c2V0VGltZW91dChmdW5jdGlvbigpe2gucmVtb3ZlQXR0cmlidXRlKCJzdHlsZSIpfSwyKTt6KCl9fTthaV9pbnNlcnRfYWRzZW5zZV9mYWxsYmFja19jb2Rlcz1mdW5jdGlvbihhKXthLnN0eWxlLmRpc3BsYXk9Im5vbmUiO3ZhciBoPWEuY2xvc2VzdCgiLmFpLWZhbGxiYWNrLWFkc2Vuc2UiKSxsPWgubmV4dEVsZW1lbnRTaWJsaW5nO2wuZ2V0QXR0cmlidXRlKCJkYXRhLWNvZGUiKT9haV9pbnNlcnRfY29kZShsKSYmeigpOmwuc3R5bGUuZGlzcGxheT0iYmxvY2siO2guY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1lbXB0eS1jb2RlIikmJm51bGwhPWEuY2xvc2VzdCgiLiIrYWlfYmxvY2tfY2xhc3NfZGVmKSYmKGE9YS5jbG9zZXN0KCIuIithaV9ibG9ja19jbGFzc19kZWYpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNvZGUtYmxvY2stbGFiZWwiKSwwIT1hLmxlbmd0aCYmKGFbMF0uc3R5bGUuZGlzcGxheT0ibm9uZSIpKX07YWlfaW5zZXJ0X2NvZGVfYnlfY2xhc3M9ZnVuY3Rpb24oYSl7dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKVswXTsidW5kZWZpbmVkIiE9dHlwZW9mIGgmJihhaV9pbnNlcnRfY29kZShoKSxoLmNsYXNzTGlzdC5yZW1vdmUoYSkpfTthaV9pbnNlcnRfY2xpZW50X2NvZGU9ZnVuY3Rpb24oYSxoKXt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpWzBdO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbCl7dmFyIG49bC5nZXRBdHRyaWJ1dGUoImRhdGEtY29kZSIpO251bGwhPW4mJmFpX2NoZWNrX2Jsb2NrKCkmJihsLnNldEF0dHJpYnV0ZSgiZGF0YS1jb2RlIixuLnN1YnN0cmluZyhNYXRoLmZsb29yKGgvMTkpKSksYWlfaW5zZXJ0X2NvZGVfYnlfY2xhc3MoYSksbC5yZW1vdmUoKSl9fTthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZT0hMTtmdW5jdGlvbiB6KCl7YWlfcHJvY2Vzc19lbGVtZW50c19hY3RpdmV8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZT0hMTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19yb3RhdGlvbnMmJmFpX3Byb2Nlc3Nfcm90YXRpb25zKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfbGlzdHMmJmFpX3Byb2Nlc3NfbGlzdHMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19pcF9hZGRyZXNzZXMmJmFpX3Byb2Nlc3NfaXBfYWRkcmVzc2VzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfZmlsdGVyX2hvb2tzJiZhaV9wcm9jZXNzX2ZpbHRlcl9ob29rcygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9hZGJfcHJvY2Vzc19ibG9ja3MmJmFpX2FkYl9wcm9jZXNzX2Jsb2NrcygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2ltcHJlc3Npb25zJiYxPT1haV90cmFja2luZ19maW5pc2hlZCYmYWlfcHJvY2Vzc19pbXByZXNzaW9ucygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9pbnN0YWxsX2NsaWNrX3RyYWNrZXJzJiYxPT1haV90cmFja2luZ19maW5pc2hlZCYmYWlfaW5zdGFsbF9jbGlja190cmFja2VycygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9pbnN0YWxsX2Nsb3NlX2J1dHRvbnMmJmFpX2luc3RhbGxfY2xvc2VfYnV0dG9ucyhkb2N1bWVudCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3Nfd2FpdF9mb3JfaW50ZXJhY3Rpb24mJmFpX3Byb2Nlc3Nfd2FpdF9mb3JfaW50ZXJhY3Rpb24oKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19kZWxheWVkX2Jsb2NrcyYmYWlfcHJvY2Vzc19kZWxheWVkX2Jsb2NrcygpfSw1KTthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZT0hMH1jb25zdCBCPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKTsobmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSxoKXtmb3IoY29uc3QgbCBvZiBhKSJhdHRyaWJ1dGVzIj09PWwudHlwZSYmImRhdGEtYWQtc3RhdHVzIj09bC5hdHRyaWJ1dGVOYW1lJiYidW5maWxsZWQiPT1sLnRhcmdldC5kYXRhc2V0LmFkU3RhdHVzJiZsLnRhcmdldC5jbG9zZXN0KCIuYWktZmFsbGJhY2stYWRzZW5zZSIpJiZhaV9pbnNlcnRfYWRzZW5zZV9mYWxsYmFja19jb2RlcyhsLnRhcmdldCl9KSkub2JzZXJ2ZShCLHthdHRyaWJ1dGVzOiEwLGNoaWxkTGlzdDohMSxzdWJ0cmVlOiEwfSk7dmFyIEFycml2ZT1mdW5jdGlvbihhLGgsbCl7ZnVuY3Rpb24gbih0LGMsZSl7ZC5hZGRNZXRob2QoYyxlLHQudW5iaW5kRXZlbnQpO2QuYWRkTWV0aG9kKGMsZSx0LnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yT3JDYWxsYmFjayk7ZC5hZGRNZXRob2QoYyxlLHQudW5iaW5kRXZlbnRXaXRoU2VsZWN0b3JBbmRDYWxsYmFjayl9ZnVuY3Rpb24gdSh0KXt0LmFycml2ZT1yLmJpbmRFdmVudDtuKHIsdCwidW5iaW5kQXJyaXZlIik7dC5sZWF2ZT12LmJpbmRFdmVudDtuKHYsdCwidW5iaW5kTGVhdmUiKX1pZihhLk11dGF0aW9uT2JzZXJ2ZXImJiJ1bmRlZmluZWQiIT09dHlwZW9mIEhUTUxFbGVtZW50KXt2YXIgeT0wLGQ9ZnVuY3Rpb24oKXt2YXIgdD1IVE1MRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlc3x8SFRNTEVsZW1lbnQucHJvdG90eXBlLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8SFRNTEVsZW1lbnQucHJvdG90eXBlLm1vek1hdGNoZXNTZWxlY3Rvcnx8SFRNTEVsZW1lbnQucHJvdG90eXBlLm1zTWF0Y2hlc1NlbGVjdG9yO3JldHVybnttYXRjaGVzU2VsZWN0b3I6ZnVuY3Rpb24oYyxlKXtyZXR1cm4gYyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZ0LmNhbGwoYyxlKX0sYWRkTWV0aG9kOmZ1bmN0aW9uKGMsZSxmKXt2YXIgYj1jW2VdO2NbZV09ZnVuY3Rpb24oKXtpZihmLmxlbmd0aD09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGIpcmV0dXJuIGIuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0sY2FsbENhbGxiYWNrczpmdW5jdGlvbihjLGUpe2UmJmUub3B0aW9ucy5vbmNlT25seSYmMT09ZS5maXJlZEVsZW1zLmxlbmd0aCYmKGM9W2NbMF1dKTtmb3IodmFyIGY9MCxiO2I9Y1tmXTtmKyspYiYmYi5jYWxsYmFjayYmYi5jYWxsYmFjay5jYWxsKGIuZWxlbSxiLmVsZW0pO2UmJmUub3B0aW9ucy5vbmNlT25seSYmMT09ZS5maXJlZEVsZW1zLmxlbmd0aCYmZS5tZS51bmJpbmRFdmVudFdpdGhTZWxlY3RvckFuZENhbGxiYWNrLmNhbGwoZS50YXJnZXQsZS5zZWxlY3RvcixlLmNhbGxiYWNrKX0sY2hlY2tDaGlsZE5vZGVzUmVjdXJzaXZlbHk6ZnVuY3Rpb24oYyxlLGYsYil7Zm9yKHZhciBnPTAsaztrPWNbZ107ZysrKWYoayxlLGIpJiZiLnB1c2goe2NhbGxiYWNrOmUuY2FsbGJhY2ssZWxlbTprfSksMDxrLmNoaWxkTm9kZXMubGVuZ3RoJiZkLmNoZWNrQ2hpbGROb2Rlc1JlY3Vyc2l2ZWx5KGsuY2hpbGROb2RlcyxlLGYsYil9LG1lcmdlQXJyYXlzOmZ1bmN0aW9uKGMsZSl7dmFyIGY9e30sYjtmb3IoYiBpbiBjKWMuaGFzT3duUHJvcGVydHkoYikmJihmW2JdPWNbYl0pO2ZvcihiIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShiKSYmKGZbYl09ZVtiXSk7cmV0dXJuIGZ9LHRvRWxlbWVudHNBcnJheTpmdW5jdGlvbihjKXsidW5kZWZpbmVkIj09PXR5cGVvZiBjfHwibnVtYmVyIj09PXR5cGVvZiBjLmxlbmd0aCYmYyE9PWF8fChjPVtjXSk7cmV0dXJuIGN9fX0oKSx3PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt0aGlzLl9ldmVudHNCdWNrZXQ9W107dGhpcy5fYmVmb3JlUmVtb3Zpbmc9dGhpcy5fYmVmb3JlQWRkaW5nPW51bGx9O3QucHJvdG90eXBlLmFkZEV2ZW50PWZ1bmN0aW9uKGMsZSxmLGIpe2M9e3RhcmdldDpjLHNlbGVjdG9yOmUsb3B0aW9uczpmLGNhbGxiYWNrOmIsZmlyZWRFbGVtczpbXX07dGhpcy5fYmVmb3JlQWRkaW5nJiZ0aGlzLl9iZWZvcmVBZGRpbmcoYyk7dGhpcy5fZXZlbnRzQnVja2V0LnB1c2goYyk7cmV0dXJuIGN9O3QucHJvdG90eXBlLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGMpe2Zvcih2YXIgZT10aGlzLl9ldmVudHNCdWNrZXQubGVuZ3RoLTEsZjtmPXRoaXMuX2V2ZW50c0J1Y2tldFtlXTtlLS0pYyhmKSYmKHRoaXMuX2JlZm9yZVJlbW92aW5nJiZ0aGlzLl9iZWZvcmVSZW1vdmluZyhmKSwoZj10aGlzLl9ldmVudHNCdWNrZXQuc3BsaWNlKGUsMSkpJiZmLmxlbmd0aCYmKGZbMF0uY2FsbGJhY2s9bnVsbCkpfTt0LnByb3RvdHlwZS5iZWZvcmVBZGRpbmc9ZnVuY3Rpb24oYyl7dGhpcy5fYmVmb3JlQWRkaW5nPWN9O3QucHJvdG90eXBlLmJlZm9yZVJlbW92aW5nPWZ1bmN0aW9uKGMpe3RoaXMuX2JlZm9yZVJlbW92aW5nPWN9O3JldHVybiB0fSgpLG09ZnVuY3Rpb24odCxjKXt2YXIgZT1uZXcgdyxmPXRoaXMsYj17ZmlyZU9uQXR0cmlidXRlc01vZGlmaWNhdGlvbjohMX07ZS5iZWZvcmVBZGRpbmcoZnVuY3Rpb24oZyl7dmFyIGs9Zy50YXJnZXQ7aWYoaz09PWEuZG9jdW1lbnR8fGs9PT1hKWs9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImh0bWwiKVswXTt2YXIgcD1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbih4KXtjLmNhbGwodGhpcyx4LGcpfSk7dmFyIHE9dChnLm9wdGlvbnMpO3Aub2JzZXJ2ZShrLHEpO2cub2JzZXJ2ZXI9cDtnLm1lPWZ9KTtlLmJlZm9yZVJlbW92aW5nKGZ1bmN0aW9uKGcpe2cub2JzZXJ2ZXIuZGlzY29ubmVjdCgpfSk7dGhpcy5iaW5kRXZlbnQ9ZnVuY3Rpb24oZyxrLHApe2s9ZC5tZXJnZUFycmF5cyhiLGspO2Zvcih2YXIgcT1kLnRvRWxlbWVudHNBcnJheSh0aGlzKSx4PTA7eDxxLmxlbmd0aDt4KyspZS5hZGRFdmVudChxW3hdLGcsayxwKX07dGhpcy51bmJpbmRFdmVudD1mdW5jdGlvbigpe3ZhciBnPWQudG9FbGVtZW50c0FycmF5KHRoaXMpO2UucmVtb3ZlRXZlbnQoZnVuY3Rpb24oayl7Zm9yKHZhciBwPTA7cDxnLmxlbmd0aDtwKyspaWYodGhpcz09PWx8fGsudGFyZ2V0PT09Z1twXSlyZXR1cm4hMDtyZXR1cm4hMX0pfTt0aGlzLnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yT3JDYWxsYmFjaz1mdW5jdGlvbihnKXt2YXIgaz1kLnRvRWxlbWVudHNBcnJheSh0aGlzKTtlLnJlbW92ZUV2ZW50KCJmdW5jdGlvbiI9PT10eXBlb2YgZz9mdW5jdGlvbihwKXtmb3IodmFyIHE9MDtxPGsubGVuZ3RoO3ErKylpZigodGhpcz09PWx8fHAudGFyZ2V0PT09a1txXSkmJnAuY2FsbGJhY2s9PT1nKXJldHVybiEwO3JldHVybiExfTpmdW5jdGlvbihwKXtmb3IodmFyIHE9MDtxPGsubGVuZ3RoO3ErKylpZigodGhpcz09PWx8fHAudGFyZ2V0PT09a1txXSkmJnAuc2VsZWN0b3I9PT1nKXJldHVybiEwO3JldHVybiExfSl9O3RoaXMudW5iaW5kRXZlbnRXaXRoU2VsZWN0b3JBbmRDYWxsYmFjaz1mdW5jdGlvbihnLGspe3ZhciBwPWQudG9FbGVtZW50c0FycmF5KHRoaXMpO2UucmVtb3ZlRXZlbnQoZnVuY3Rpb24ocSl7Zm9yKHZhciB4PTA7eDxwLmxlbmd0aDt4KyspaWYoKHRoaXM9PT1sfHxxLnRhcmdldD09PXBbeF0pJiZxLnNlbGVjdG9yPT09ZyYmcS5jYWxsYmFjaz09PWspcmV0dXJuITA7cmV0dXJuITF9KX07cmV0dXJuIHRoaXN9LHI9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChmLGIsZyl7cmV0dXJuIGQubWF0Y2hlc1NlbGVjdG9yKGYsYi5zZWxlY3RvcikmJihmLl9pZD09PWwmJihmLl9pZD15KyspLC0xPT1iLmZpcmVkRWxlbXMuaW5kZXhPZihmLl9pZCkpPyhiLmZpcmVkRWxlbXMucHVzaChmLl9pZCksITApOiExfXZhciBjPXtmaXJlT25BdHRyaWJ1dGVzTW9kaWZpY2F0aW9uOiExLG9uY2VPbmx5OiExLGV4aXN0aW5nOiExfTtyPW5ldyBtKGZ1bmN0aW9uKGYpe3ZhciBiPXthdHRyaWJ1dGVzOiExLGNoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfTtmLmZpcmVPbkF0dHJpYnV0ZXNNb2RpZmljYXRpb24mJihiLmF0dHJpYnV0ZXM9ITApO3JldHVybiBifSxmdW5jdGlvbihmLGIpe2YuZm9yRWFjaChmdW5jdGlvbihnKXt2YXIgaz1nLmFkZGVkTm9kZXMscD1nLnRhcmdldCxxPVtdO251bGwhPT1rJiYwPGsubGVuZ3RoP2QuY2hlY2tDaGlsZE5vZGVzUmVjdXJzaXZlbHkoayxiLHQscSk6ImF0dHJpYnV0ZXMiPT09Zy50eXBlJiZ0KHAsYixxKSYmcS5wdXNoKHtjYWxsYmFjazpiLmNhbGxiYWNrLGVsZW06cH0pO2QuY2FsbENhbGxiYWNrcyhxLGIpfSl9KTt2YXIgZT1yLmJpbmRFdmVudDtyLmJpbmRFdmVudD1mdW5jdGlvbihmLGIsZyl7InVuZGVmaW5lZCI9PT10eXBlb2YgZz8oZz1iLGI9Yyk6Yj1kLm1lcmdlQXJyYXlzKGMsYik7dmFyIGs9ZC50b0VsZW1lbnRzQXJyYXkodGhpcyk7aWYoYi5leGlzdGluZyl7Zm9yKHZhciBwPVtdLHE9MDtxPGsubGVuZ3RoO3ErKylmb3IodmFyIHg9a1txXS5xdWVyeVNlbGVjdG9yQWxsKGYpLEE9MDtBPHgubGVuZ3RoO0ErKylwLnB1c2goe2NhbGxiYWNrOmcsZWxlbTp4W0FdfSk7aWYoYi5vbmNlT25seSYmcC5sZW5ndGgpcmV0dXJuIGcuY2FsbChwWzBdLmVsZW0scFswXS5lbGVtKTtzZXRUaW1lb3V0KGQuY2FsbENhbGxiYWNrcywxLHApfWUuY2FsbCh0aGlzLGYsYixnKX07cmV0dXJuIHJ9LHY9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChmLGIpe3JldHVybiBkLm1hdGNoZXNTZWxlY3RvcihmLGIuc2VsZWN0b3IpfXZhciBjPXt9O3Y9bmV3IG0oZnVuY3Rpb24oKXtyZXR1cm57Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9fSxmdW5jdGlvbihmLGIpe2YuZm9yRWFjaChmdW5jdGlvbihnKXtnPWcucmVtb3ZlZE5vZGVzO3ZhciBrPVtdO251bGwhPT1nJiYwPGcubGVuZ3RoJiZkLmNoZWNrQ2hpbGROb2Rlc1JlY3Vyc2l2ZWx5KGcsYix0LGspO2QuY2FsbENhbGxiYWNrcyhrLGIpfSl9KTt2YXIgZT12LmJpbmRFdmVudDt2LmJpbmRFdmVudD1mdW5jdGlvbihmLGIsZyl7InVuZGVmaW5lZCI9PT10eXBlb2YgZz8oZz1iLGI9Yyk6Yj1kLm1lcmdlQXJyYXlzKGMsYik7ZS5jYWxsKHRoaXMsZixiLGcpfTtyZXR1cm4gdn07aCYmdShoLmZuKTt1KEhUTUxFbGVtZW50LnByb3RvdHlwZSk7dShOb2RlTGlzdC5wcm90b3R5cGUpO3UoSFRNTENvbGxlY3Rpb24ucHJvdG90eXBlKTt1KEhUTUxEb2N1bWVudC5wcm90b3R5cGUpO3UoV2luZG93LnByb3RvdHlwZSk7aD17fTtuKHIsaCwidW5iaW5kQWxsQXJyaXZlIik7bih2LGgsInVuYmluZEFsbExlYXZlIik7cmV0dXJuIGh9fSh3aW5kb3csInVuZGVmaW5lZCI9PT10eXBlb2YgalF1ZXJ5P251bGw6alF1ZXJ5LHZvaWQgMCl9O3ZhciBhaV9yb3RhdGlvbl90cmlnZ2Vycz1bXSxhaV9ibG9ja19jbGFzc19kZWY9InVzcy1ibG9jayI7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhaV9yb3RhdGlvbl90cmlnZ2Vycyl7YWlfcHJvY2Vzc19yb3RhdGlvbj1mdW5jdGlvbihiKXt2YXIgZD0ibnVtYmVyIj09dHlwZW9mIGIubGVuZ3RoO3dpbmRvdy5qUXVlcnkmJndpbmRvdy5qUXVlcnkuZm4mJmIgaW5zdGFuY2VvZiBqUXVlcnkmJihiPWQ/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYik6YlswXSk7aWYoZCl7dmFyIGU9ITE7Yi5mb3JFYWNoKChjLGgpPT57aWYoYy5jbGFzc0xpc3QuY29udGFpbnMoImFpLXVucHJvY2Vzc2VkIil8fGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS10aW1lciIpKWU9ITB9KTtpZighZSlyZXR1cm47Yi5mb3JFYWNoKChjLGgpPT57Yy5jbGFzc0xpc3QucmVtb3ZlKCJhaS11bnByb2Nlc3NlZCIpO2MuY2xhc3NMaXN0LnJlbW92ZSgiYWktdGltZXIiKX0pfWVsc2V7aWYoIWIuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS11bnByb2Nlc3NlZCIpJiYhYi5jbGFzc0xpc3QuY29udGFpbnMoImFpLXRpbWVyIikpcmV0dXJuO2IuY2xhc3NMaXN0LnJlbW92ZSgiYWktdW5wcm9jZXNzZWQiKTtiLmNsYXNzTGlzdC5yZW1vdmUoImFpLXRpbWVyIil9dmFyIGE9ITE7aWYoZD9iWzBdLmhhc0F0dHJpYnV0ZSgiZGF0YS1pbmZvIik6Yi5oYXNBdHRyaWJ1dGUoImRhdGEtaW5mbyIpKXt2YXIgZj0iZGl2LmFpLXJvdGF0ZS5haS0iKyhkP0pTT04ucGFyc2UoYXRvYihiWzBdLmRhdGFzZXQuaW5mbykpOkpTT04ucGFyc2UoYXRvYihiLmRhdGFzZXQuaW5mbykpKVswXTthaV9yb3RhdGlvbl90cmlnZ2Vycy5pbmNsdWRlcyhmKSYmKGFpX3JvdGF0aW9uX3RyaWdnZXJzLnNwbGljZShhaV9yb3RhdGlvbl90cmlnZ2Vycy5pbmRleE9mKGYpLDEpLGE9ITApfWlmKGQpZm9yKGQ9MDtkPGIubGVuZ3RoO2QrKykwPT1kP2FpX3Byb2Nlc3Nfc2luZ2xlX3JvdGF0aW9uKGJbZF0sITApOmFpX3Byb2Nlc3Nfc2luZ2xlX3JvdGF0aW9uKGJbZF0sITEpO2Vsc2UgYWlfcHJvY2Vzc19zaW5nbGVfcm90YXRpb24oYiwhYSl9O2FpX3Byb2Nlc3Nfc2luZ2xlX3JvdGF0aW9uPWZ1bmN0aW9uKGIsZCl7dmFyIGU9W107QXJyYXkuZnJvbShiLmNoaWxkcmVuKS5mb3JFYWNoKChnLHApPT57Zy5tYXRjaGVzKCIuYWktcm90YXRlLW9wdGlvbiIpJiZlLnB1c2goZyl9KTtpZigwIT1lLmxlbmd0aCl7ZS5mb3JFYWNoKChnLHApPT57Zy5zdHlsZS5kaXNwbGF5PSJub25lIn0pO2lmKGIuaGFzQXR0cmlidXRlKCJkYXRhLW5leHQiKSl7az1wYXJzZUludChiLmdldEF0dHJpYnV0ZSgiZGF0YS1uZXh0IikpO3ZhciBhPWVba107aWYoYS5oYXNBdHRyaWJ1dGUoImRhdGEtY29kZSIpKXt2YXIgZj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGM9ITA7dHJ5e3ZhciBoPWYuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGI2NGQoYS5kYXRhc2V0LmNvZGUpKX1jYXRjaChnKXtjPSExfWMmJihhPWgpfTAhPWEucXVlcnlTZWxlY3RvckFsbCgic3BhbltkYXRhLWFpLWdyb3Vwc10iKS5sZW5ndGgmJjAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5haS1yb3RhdGlvbi1ncm91cHMiKS5sZW5ndGgmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtCKCl9LDUpfWVsc2UgaWYoZVswXS5oYXNBdHRyaWJ1dGUoImRhdGEtZ3JvdXAiKSl7dmFyIGs9LTEsdT1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJzcGFuW2RhdGEtYWktZ3JvdXBzXSIpLmZvckVhY2goKGcscCk9PnsoZy5vZmZzZXRXaWR0aHx8Zy5vZmZzZXRIZWlnaHR8fGcuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpJiZ1LnB1c2goZyl9KTsxPD11Lmxlbmd0aCYmKHRpbWVkX2dyb3Vwcz1bXSxncm91cHM9W10sdS5mb3JFYWNoKGZ1bmN0aW9uKGcscCl7YWN0aXZlX2dyb3Vwcz1KU09OLnBhcnNlKGI2NGQoZy5kYXRhc2V0LmFpR3JvdXBzKSk7dmFyIHI9ITE7Zz1nLmNsb3Nlc3QoIi5haS1yb3RhdGUiKTtudWxsIT1nJiZnLmNsYXNzTGlzdC5jb250YWlucygiYWktdGltZWQtcm90YXRpb24iKSYmKHI9ITApO2FjdGl2ZV9ncm91cHMuZm9yRWFjaChmdW5jdGlvbih0LHYpe2dyb3Vwcy5wdXNoKHQpO3ImJnRpbWVkX2dyb3Vwcy5wdXNoKHQpfSl9KSxncm91cHMuZm9yRWFjaChmdW5jdGlvbihnLHApey0xPT1rJiZlLmZvckVhY2goKHIsdCk9Pnt2YXIgdj1iNjRkKHIuZGF0YXNldC5ncm91cCk7b3B0aW9uX2dyb3VwX2l0ZW1zPXYuc3BsaXQoIiwiKTtvcHRpb25fZ3JvdXBfaXRlbXMuZm9yRWFjaChmdW5jdGlvbihDLEUpey0xPT1rJiZDLnRyaW0oKT09ZyYmKGs9dCx0aW1lZF9ncm91cHMuaW5jbHVkZXModikmJmIuY2xhc3NMaXN0LmFkZCgiYWktdGltZWQtcm90YXRpb24iKSl9KX0pfSkpfWVsc2UgaWYoYi5oYXNBdHRyaWJ1dGUoImRhdGEtc2hhcmVzIikpZm9yKGY9SlNPTi5wYXJzZShhdG9iKGIuZGF0YXNldC5zaGFyZXMpKSxhPU1hdGgucm91bmQoMTAwKk1hdGgucmFuZG9tKCkpLGM9MDtjPGYubGVuZ3RoJiYoaz1jLDA+ZltjXXx8IShhPD1mW2NdKSk7YysrKTtlbHNlIGY9Yi5jbGFzc0xpc3QuY29udGFpbnMoImFpLXVuaXF1ZSIpLGE9bmV3IERhdGUsZj8oIm51bWJlciIhPXR5cGVvZiBhaV9yb3RhdGlvbl9zZWVkJiYoYWlfcm90YXRpb25fc2VlZD0oTWF0aC5mbG9vcigxRTMqTWF0aC5yYW5kb20oKSkrYS5nZXRNaWxsaXNlY29uZHMoKSklZS5sZW5ndGgpLGY9YWlfcm90YXRpb25fc2VlZCxmPmUubGVuZ3RoJiYoZiU9ZS5sZW5ndGgpLGE9cGFyc2VJbnQoYi5kYXRhc2V0LmNvdW50ZXIpLGE8PWUubGVuZ3RoPyhrPXBhcnNlSW50KGYrYS0xKSxrPj1lLmxlbmd0aCYmKGstPWUubGVuZ3RoKSk6az1lLmxlbmd0aCk6KGs9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmUubGVuZ3RoKSxhLmdldE1pbGxpc2Vjb25kcygpJTImJihrPWUubGVuZ3RoLWstMSkpO2lmKGIuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yb3RhdGlvbi1zY2hlZHVsaW5nIikpZm9yKGs9LTEsZj0wO2Y8ZS5sZW5ndGg7ZisrKWlmKGE9ZVtmXSxhLmhhc0F0dHJpYnV0ZSgiZGF0YS1zY2hlZHVsaW5nIikpe2M9YjY0ZChhLmRhdGFzZXQuc2NoZWR1bGluZyk7YT0hMDswPT1jLmluZGV4T2YoIl4iKSYmKGE9ITEsYz1jLnN1YnN0cmluZygxKSk7dmFyIHE9Yy5zcGxpdCgiPSIpLG09LTEhPWMuaW5kZXhPZigiJSIpP3FbMF0uc3BsaXQoIiUiKTpbcVswXV07Yz1tWzBdLnRyaW0oKS50b0xvd2VyQ2FzZSgpO209InVuZGVmaW5lZCIhPXR5cGVvZiBtWzFdP21bMV0udHJpbSgpOjA7cT1xWzFdLnJlcGxhY2UoIiAiLCIiKTt2YXIgbj0obmV3IERhdGUpLmdldFRpbWUoKTtuPW5ldyBEYXRlKG4pO3ZhciBsPTA7c3dpdGNoKGMpe2Nhc2UgInMiOmw9bi5nZXRTZWNvbmRzKCk7YnJlYWs7Y2FzZSAiaSI6bD1uLmdldE1pbnV0ZXMoKTticmVhaztjYXNlICJoIjpsPW4uZ2V0SG91cnMoKTticmVhaztjYXNlICJkIjpsPW4uZ2V0RGF0ZSgpO2JyZWFrO2Nhc2UgIm0iOmw9bi5nZXRNb250aCgpO2JyZWFrO2Nhc2UgInkiOmw9bi5nZXRGdWxsWWVhcigpO2JyZWFrO2Nhc2UgInciOmw9bi5nZXREYXkoKSxsPTA9PWw/NjpsLTF9Yz0wIT1tP2wlbTpsO209cS5zcGxpdCgiLCIpO3E9IWE7Zm9yKG49MDtuPG0ubGVuZ3RoO24rKylpZihsPW1bbl0sLTEhPWwuaW5kZXhPZigiLSIpKXtpZihsPWwuc3BsaXQoIi0iKSxjPj1sWzBdJiZjPD1sWzFdKXtxPWE7YnJlYWt9fWVsc2UgaWYoYz09bCl7cT1hO2JyZWFrfWlmKHEpe2s9ZjticmVha319aWYoISgwPmt8fGs+PWUubGVuZ3RoKSl7YT1lW2tdO3ZhciB6PSIiLHc9Yi5jbGFzc0xpc3QuY29udGFpbnMoImFpLXRpbWVkLXJvdGF0aW9uIik7ZS5mb3JFYWNoKChnLHApPT57Zy5oYXNBdHRyaWJ1dGUoImRhdGEtdGltZSIpJiYodz0hMCl9KTtpZihhLmhhc0F0dHJpYnV0ZSgiZGF0YS10aW1lIikpe2Y9YXRvYihhLmRhdGFzZXQudGltZSk7aWYoMD09ZiYmMTxlLmxlbmd0aCl7Yz1rO2Rve2MrKztjPj1lLmxlbmd0aCYmKGM9MCk7bT1lW2NdO2lmKCFtLmhhc0F0dHJpYnV0ZSgiZGF0YS10aW1lIikpe2s9YzthPWVba107Zj0wO2JyZWFrfW09YXRvYihtLmRhdGFzZXQudGltZSl9d2hpbGUoMD09bSYmYyE9ayk7MCE9ZiYmKGs9YyxhPWVba10sZj1hdG9iKGEuZGF0YXNldC50aW1lKSl9aWYoMDxmJiYoYz1rKzEsYz49ZS5sZW5ndGgmJihjPTApLGIuaGFzQXR0cmlidXRlKCJkYXRhLWluZm8iKSkpe209SlNPTi5wYXJzZShhdG9iKGIuZGF0YXNldC5pbmZvKSlbMF07Yi5zZXRBdHRyaWJ1dGUoImRhdGEtbmV4dCIsYyk7dmFyIHg9ImRpdi5haS1yb3RhdGUuYWktIittO2FpX3JvdGF0aW9uX3RyaWdnZXJzLmluY2x1ZGVzKHgpJiYoZD0hMSk7ZCYmKGFpX3JvdGF0aW9uX3RyaWdnZXJzLnB1c2goeCksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoeCk7Zy5mb3JFYWNoKChwLHIpPT57cC5jbGFzc0xpc3QuYWRkKCJhaS10aW1lciIpfSk7YWlfcHJvY2Vzc19yb3RhdGlvbihnKX0sMUUzKmYpKTt6PSIgKCIrZisiIHMpIn19ZWxzZSBhLmhhc0F0dHJpYnV0ZSgiZGF0YS1ncm91cCIpfHxlLmZvckVhY2goKGcscCk9PntwIT1rJiZnLnJlbW92ZSgpfSk7YS5zdHlsZS5kaXNwbGF5PSIiO2Euc3R5bGUudmlzaWJpbGl0eT0iIjthLnN0eWxlLnBvc2l0aW9uPSIiO2Euc3R5bGUud2lkdGg9IiI7YS5zdHlsZS5oZWlnaHQ9IiI7YS5zdHlsZS50b3A9IiI7YS5zdHlsZS5sZWZ0PSIiO2EuY2xhc3NMaXN0LnJlbW92ZSgiYWktcm90YXRlLWhpZGRlbiIpO2EuY2xhc3NMaXN0LnJlbW92ZSgiYWktcm90YXRlLWhpZGRlbi0yIik7Yi5zdHlsZS5wb3NpdGlvbj0iIjtpZihhLmhhc0F0dHJpYnV0ZSgiZGF0YS1jb2RlIikpe2UuZm9yRWFjaCgoZyxwKT0+e2cuaW5uZXJUZXh0PSIifSk7ZD1iNjRkKGEuZGF0YXNldC5jb2RlKTtmPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7Yz0hMDt0cnl7aD1mLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChkKX1jYXRjaChnKXtjPSExfWEuYXBwZW5kKGgpO0QoKX1mPXBhcnNlSW50KGEuZGF0YXNldC5pbmRleCk7dmFyIHk9YjY0ZChhLmRhdGFzZXQubmFtZSk7ZD1iLmNsb3Nlc3QoIi5haS1kZWJ1Zy1ibG9jayIpO2lmKG51bGwhPWQpe2g9ZC5xdWVyeVNlbGVjdG9yQWxsKCJrYmQuYWktb3B0aW9uLW5hbWUiKTtkPWQucXVlcnlTZWxlY3RvckFsbCgiLmFpLWRlYnVnLWJsb2NrIik7aWYoMCE9ZC5sZW5ndGgpe3ZhciBBPVtdO2QuZm9yRWFjaCgoZyxwKT0+e2cucXVlcnlTZWxlY3RvckFsbCgia2JkLmFpLW9wdGlvbi1uYW1lIikuZm9yRWFjaCgocix0KT0+e0EucHVzaChyKX0pfSk7aD1BcnJheS5mcm9tKGgpO2g9aC5zbGljZSgwLGgubGVuZ3RoLUEubGVuZ3RoKX0wIT1oLmxlbmd0aCYmKHNlcGFyYXRvcj1oWzBdLmhhc0F0dHJpYnV0ZSgiZGF0YS1zZXBhcmF0b3IiKT9oWzBdLmRhdGFzZXQuc2VwYXJhdG9yOiIiLGguZm9yRWFjaCgoZyxwKT0+e2cuaW5uZXJUZXh0PXNlcGFyYXRvcit5K3p9KSl9ZD0hMTthPWIuY2xvc2VzdCgiLmFpLWFkYi1zaG93Iik7bnVsbCE9YSYmYS5oYXNBdHRyaWJ1dGUoImRhdGEtYWktdHJhY2tpbmciKSYmKGg9SlNPTi5wYXJzZShiNjRkKGEuZ2V0QXR0cmlidXRlKCJkYXRhLWFpLXRyYWNraW5nIikpKSwidW5kZWZpbmVkIiE9PXR5cGVvZiBoJiZoLmNvbnN0cnVjdG9yPT09QXJyYXkmJihoWzFdPWYsaFszXT15LGEuc2V0QXR0cmlidXRlKCJkYXRhLWFpLXRyYWNraW5nIixiNjRlKEpTT04uc3RyaW5naWZ5KGgpKSksYS5jbGFzc0xpc3QuYWRkKCJhaS10cmFjayIpLHcmJmFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhLmNsYXNzTGlzdC5hZGQoImFpLW5vLXBhZ2V2aWV3IiksZD0hMCkpO2R8fChkPWIuY2xvc2VzdCgiZGl2W2RhdGEtYWldIiksbnVsbCE9ZCYmZC5oYXNBdHRyaWJ1dGUoImRhdGEtYWkiKSYmKGg9SlNPTi5wYXJzZShiNjRkKGQuZ2V0QXR0cmlidXRlKCJkYXRhLWFpIikpKSwidW5kZWZpbmVkIiE9PXR5cGVvZiBoJiZoLmNvbnN0cnVjdG9yPT09QXJyYXkmJihoWzFdPWYsaFszXT15LGQuc2V0QXR0cmlidXRlKCJkYXRhLWFpIixiNjRlKEpTT04uc3RyaW5naWZ5KGgpKSksZC5jbGFzc0xpc3QuYWRkKCJhaS10cmFjayIpLHcmJmFpX3RyYWNraW5nX2ZpbmlzaGVkJiZkLmNsYXNzTGlzdC5hZGQoImFpLW5vLXBhZ2V2aWV3IikpKSl9fX07YWlfcHJvY2Vzc19yb3RhdGlvbnM9ZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuYWktcm90YXRlIikuZm9yRWFjaCgoYixkKT0+e2FpX3Byb2Nlc3Nfcm90YXRpb24oYil9KX07ZnVuY3Rpb24gQigpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRpdi5haS1yb3RhdGUuYWktcm90YXRpb24tZ3JvdXBzIikuZm9yRWFjaCgoYixkKT0+e2IuY2xhc3NMaXN0LmFkZCgiYWktdGltZXIiKTthaV9wcm9jZXNzX3JvdGF0aW9uKGIpfSl9YWlfcHJvY2Vzc19yb3RhdGlvbnNfaW5fZWxlbWVudD1mdW5jdGlvbihiKXtiLnF1ZXJ5U2VsZWN0b3JBbGwoImRpdi5haS1yb3RhdGUiKS5mb3JFYWNoKChkLGUpPT57YWlfcHJvY2Vzc19yb3RhdGlvbihkKX0pfTsoZnVuY3Rpb24oYil7ImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PWRvY3VtZW50LnJlYWR5U3RhdGUmJiFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/YigpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGIpfSkoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19yb3RhdGlvbnMoKX0sMTApfSk7YWlfcHJvY2Vzc19lbGVtZW50c19hY3RpdmU9ITE7ZnVuY3Rpb24gRCgpe2FpX3Byb2Nlc3NfZWxlbWVudHNfYWN0aXZlfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19lbGVtZW50c19hY3RpdmU9ITE7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3Nfcm90YXRpb25zJiZhaV9wcm9jZXNzX3JvdGF0aW9ucygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2xpc3RzJiZhaV9wcm9jZXNzX2xpc3RzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfaXBfYWRkcmVzc2VzJiZhaV9wcm9jZXNzX2lwX2FkZHJlc3NlcygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2ZpbHRlcl9ob29rcyYmYWlfcHJvY2Vzc19maWx0ZXJfaG9va3MoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfYWRiX3Byb2Nlc3NfYmxvY2tzJiZhaV9hZGJfcHJvY2Vzc19ibG9ja3MoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19pbXByZXNzaW9ucyYmMT09YWlfdHJhY2tpbmdfZmluaXNoZWQmJmFpX3Byb2Nlc3NfaW1wcmVzc2lvbnMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfaW5zdGFsbF9jbGlja190cmFja2VycyYmMT09YWlfdHJhY2tpbmdfZmluaXNoZWQmJmFpX2luc3RhbGxfY2xpY2tfdHJhY2tlcnMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfaW5zdGFsbF9jbG9zZV9idXR0b25zJiZhaV9pbnN0YWxsX2Nsb3NlX2J1dHRvbnMoZG9jdW1lbnQpfSw1KTthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZT0hMH19OyFmdW5jdGlvbihhLGIpe2EoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYShhLGIpe3JldHVybiBudWxsIT1hJiZudWxsIT1iJiZhLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gYyhhLGIpe3ZhciBjLGQsZT1hLmxlbmd0aDtpZighZXx8IWIpcmV0dXJuITE7Zm9yKGM9Yi50b0xvd2VyQ2FzZSgpLGQ9MDtkPGU7KytkKWlmKGM9PT1hW2RdLnRvTG93ZXJDYXNlKCkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gZChhKXtmb3IodmFyIGIgaW4gYSlpLmNhbGwoYSxiKSYmKGFbYl09bmV3IFJlZ0V4cChhW2JdLCJpIikpfWZ1bmN0aW9uIGUoYSl7cmV0dXJuKGF8fCIiKS5zdWJzdHIoMCw1MDApfWZ1bmN0aW9uIGYoYSxiKXt0aGlzLnVhPWUoYSksdGhpcy5fY2FjaGU9e30sdGhpcy5tYXhQaG9uZVdpZHRoPWJ8fDYwMH12YXIgZz17fTtnLm1vYmlsZURldGVjdFJ1bGVzPXtwaG9uZXM6e2lQaG9uZToiXFxiaVBob25lXFxifFxcYmlQb2RcXGIiLEJsYWNrQmVycnk6IkJsYWNrQmVycnl8XFxiQkIxMFxcYnxyaW1bMC05XSt8XFxiKEJCQTEwMHxCQkIxMDB8QkJEMTAwfEJCRTEwMHxCQkYxMDB8U1RIMTAwKVxcYi1bMC05XSsiLFBpeGVsOiI7IFxcYlBpeGVsXFxiIixIVEM6IkhUQ3xIVEMuKihTZW5zYXRpb258RXZvfFZpc2lvbnxFeHBsb3Jlcnw2ODAwfDgxMDB8ODkwMHxBNzI3MnxTNTEwZXxDMTEwZXxMZWdlbmR8RGVzaXJlfFQ4MjgyKXxBUFg1MTVDS1R8UXRlazkwOTB8QVBBOTI5MktUfEhEX21pbml8U2Vuc2F0aW9uLipaNzEwZXxQRzg2MTAwfFo3MTVlfERlc2lyZS4qKEE4MTgxfEhEKXxBRFI2MjAwfEFEUjY0MDBMfEFEUjY0MjV8MDAxSFR8SW5zcGlyZSA0R3xBbmRyb2lkLipcXGJFVk9cXGJ8VC1Nb2JpbGUgRzF8WjUyMG18QW5kcm9pZCBbMC05Ll0rOyBQaXhlbCIsTmV4dXM6Ik5leHVzIE9uZXxOZXh1cyBTfEdhbGF4eS4qTmV4dXN8QW5kcm9pZC4qTmV4dXMuKk1vYmlsZXxOZXh1cyA0fE5leHVzIDV8TmV4dXMgNVh8TmV4dXMgNiIsRGVsbDoiRGVsbFs7XT8gKFN0cmVha3xBZXJvfFZlbnVlfFZlbnVlIFByb3xGbGFzaHxTbW9rZXxNaW5pIDNpWCl8WENEMjh8WENEMzV8XFxiMDAxRExcXGJ8XFxiMTAxRExcXGJ8XFxiR1MwMVxcYiIsTW90b3JvbGE6Ik1vdG9yb2xhfERST0lEWHxEUk9JRCBCSU9OSUN8XFxiRHJvaWRcXGIuKkJ1aWxkfEFuZHJvaWQuKlhvb218SFJJMzl8TU9ULXxBMTI2MHxBMTY4MHxBNTU1fEE4NTN8QTg1NXxBOTUzfEE5NTV8QTk1NnxNb3Rvcm9sYS4qRUxFQ1RSSUZZfE1vdG9yb2xhLippMXxpODY3fGk5NDB8TUIyMDB8TUIzMDB8TUI1MDF8TUI1MDJ8TUI1MDh8TUI1MTF8TUI1MjB8TUI1MjV8TUI1MjZ8TUI2MTF8TUI2MTJ8TUI2MzJ8TUI4MTB8TUI4NTV8TUI4NjB8TUI4NjF8TUI4NjV8TUI4NzB8TUU1MDF8TUU1MDJ8TUU1MTF8TUU1MjV8TUU2MDB8TUU2MzJ8TUU3MjJ8TUU4MTF8TUU4NjB8TUU4NjN8TUU4NjV8TVQ2MjB8TVQ3MTB8TVQ3MTZ8TVQ3MjB8TVQ4MTB8TVQ4NzB8TVQ5MTd8TW90b3JvbGEuKlRJVEFOSVVNfFdYNDM1fFdYNDQ1fFhUMzAwfFhUMzAxfFhUMzExfFhUMzE2fFhUMzE3fFhUMzE5fFhUMzIwfFhUMzkwfFhUNTAyfFhUNTMwfFhUNTMxfFhUNTMyfFhUNTM1fFhUNjAzfFhUNjEwfFhUNjExfFhUNjE1fFhUNjgxfFhUNzAxfFhUNzAyfFhUNzExfFhUNzIwfFhUODAwfFhUODA2fFhUODYwfFhUODYyfFhUODc1fFhUODgyfFhUODgzfFhUODk0fFhUOTAxfFhUOTA3fFhUOTA5fFhUOTEwfFhUOTEyfFhUOTI4fFhUOTI2fFhUOTE1fFhUOTE5fFhUOTI1fFhUMTAyMXxcXGJNb3RvIEVcXGJ8WFQxMDY4fFhUMTA5MnxYVDEwNTIiLFNhbXN1bmc6IlxcYlNhbXN1bmdcXGJ8U00tRzk1MEZ8U00tRzk1NUZ8U00tRzkyNTB8R1QtMTkzMDB8U0dILUkzMzd8QkdULVM1MjMwfEdULUIyMTAwfEdULUIyNzAwfEdULUIyNzEwfEdULUIzMjEwfEdULUIzMzEwfEdULUIzNDEwfEdULUIzNzMwfEdULUIzNzQwfEdULUI1NTEwfEdULUI1NTEyfEdULUI1NzIyfEdULUI2NTIwfEdULUI3MzAwfEdULUI3MzIwfEdULUI3MzMwfEdULUI3MzUwfEdULUI3NTEwfEdULUI3NzIyfEdULUI3ODAwfEdULUMzMDEwfEdULUMzMDExfEdULUMzMDYwfEdULUMzMjAwfEdULUMzMjEyfEdULUMzMjEySXxHVC1DMzI2MnxHVC1DMzIyMnxHVC1DMzMwMHxHVC1DMzMwMEt8R1QtQzMzMDN8R1QtQzMzMDNLfEdULUMzMzEwfEdULUMzMzIyfEdULUMzMzMwfEdULUMzMzUwfEdULUMzNTAwfEdULUMzNTEwfEdULUMzNTMwfEdULUMzNjMwfEdULUMzNzgwfEdULUM1MDEwfEdULUM1MjEyfEdULUM2NjIwfEdULUM2NjI1fEdULUM2NzEyfEdULUUxMDUwfEdULUUxMDcwfEdULUUxMDc1fEdULUUxMDgwfEdULUUxMDgxfEdULUUxMDg1fEdULUUxMDg3fEdULUUxMTAwfEdULUUxMTA3fEdULUUxMTEwfEdULUUxMTIwfEdULUUxMTI1fEdULUUxMTMwfEdULUUxMTYwfEdULUUxMTcwfEdULUUxMTc1fEdULUUxMTgwfEdULUUxMTgyfEdULUUxMjAwfEdULUUxMjEwfEdULUUxMjI1fEdULUUxMjMwfEdULUUxMzkwfEdULUUyMTAwfEdULUUyMTIwfEdULUUyMTIxfEdULUUyMTUyfEdULUUyMjIwfEdULUUyMjIyfEdULUUyMjMwfEdULUUyMjMyfEdULUUyMjUwfEdULUUyMzcwfEdULUUyNTUwfEdULUUyNjUyfEdULUUzMjEwfEdULUUzMjEzfEdULUk1NTAwfEdULUk1NTAzfEdULUk1NzAwfEdULUk1ODAwfEdULUk1ODAxfEdULUk2NDEwfEdULUk2NDIwfEdULUk3MTEwfEdULUk3NDEwfEdULUk3NTAwfEdULUk4MDAwfEdULUk4MTUwfEdULUk4MTYwfEdULUk4MTkwfEdULUk4MzIwfEdULUk4MzMwfEdULUk4MzUwfEdULUk4NTMwfEdULUk4NzAwfEdULUk4NzAzfEdULUk4OTEwfEdULUk5MDAwfEdULUk5MDAxfEdULUk5MDAzfEdULUk5MDEwfEdULUk5MDIwfEdULUk5MDIzfEdULUk5MDcwfEdULUk5MDgyfEdULUk5MTAwfEdULUk5MTAzfEdULUk5MjIwfEdULUk5MjUwfEdULUk5MzAwfEdULUk5MzA1fEdULUk5NTAwfEdULUk5NTA1fEdULU0zNTEwfEdULU01NjUwfEdULU03NTAwfEdULU03NjAwfEdULU03NjAzfEdULU04ODAwfEdULU04OTEwfEdULU43MDAwfEdULVMzMTEwfEdULVMzMzEwfEdULVMzMzUwfEdULVMzMzUzfEdULVMzMzcwfEdULVMzNjUwfEdULVMzNjUzfEdULVMzNzcwfEdULVMzODUwfEdULVM1MjEwfEdULVM1MjIwfEdULVM1MjI5fEdULVM1MjMwfEdULVM1MjMzfEdULVM1MjUwfEdULVM1MjUzfEdULVM1MjYwfEdULVM1MjYzfEdULVM1MjcwfEdULVM1MzAwfEdULVM1MzMwfEdULVM1MzUwfEdULVM1MzYwfEdULVM1MzYzfEdULVM1MzY5fEdULVM1MzgwfEdULVM1MzgwRHxHVC1TNTU2MHxHVC1TNTU3MHxHVC1TNTYwMHxHVC1TNTYwM3xHVC1TNTYxMHxHVC1TNTYyMHxHVC1TNTY2MHxHVC1TNTY3MHxHVC1TNTY5MHxHVC1TNTc1MHxHVC1TNTc4MHxHVC1TNTgzMHxHVC1TNTgzOXxHVC1TNjEwMnxHVC1TNjUwMHxHVC1TNzA3MHxHVC1TNzIwMHxHVC1TNzIyMHxHVC1TNzIzMHxHVC1TNzIzM3xHVC1TNzI1MHxHVC1TNzUwMHxHVC1TNzUzMHxHVC1TNzU1MHxHVC1TNzU2MnxHVC1TNzcxMHxHVC1TODAwMHxHVC1TODAwM3xHVC1TODUwMHxHVC1TODUzMHxHVC1TODYwMHxTQ0gtQTMxMHxTQ0gtQTUzMHxTQ0gtQTU3MHxTQ0gtQTYxMHxTQ0gtQTYzMHxTQ0gtQTY1MHxTQ0gtQTc5MHxTQ0gtQTc5NXxTQ0gtQTg1MHxTQ0gtQTg3MHxTQ0gtQTg5MHxTQ0gtQTkzMHxTQ0gtQTk1MHxTQ0gtQTk3MHxTQ0gtQTk5MHxTQ0gtSTEwMHxTQ0gtSTExMHxTQ0gtSTQwMHxTQ0gtSTQwNXxTQ0gtSTUwMHxTQ0gtSTUxMHxTQ0gtSTUxNXxTQ0gtSTYwMHxTQ0gtSTczMHxTQ0gtSTc2MHxTQ0gtSTc3MHxTQ0gtSTgzMHxTQ0gtSTkxMHxTQ0gtSTkyMHxTQ0gtSTk1OXxTQ0gtTEMxMXxTQ0gtTjE1MHxTQ0gtTjMwMHxTQ0gtUjEwMHxTQ0gtUjMwMHxTQ0gtUjM1MXxTQ0gtUjQwMHxTQ0gtUjQxMHxTQ0gtVDMwMHxTQ0gtVTMxMHxTQ0gtVTMyMHxTQ0gtVTM1MHxTQ0gtVTM2MHxTQ0gtVTM2NXxTQ0gtVTM3MHxTQ0gtVTM4MHxTQ0gtVTQxMHxTQ0gtVTQzMHxTQ0gtVTQ1MHxTQ0gtVTQ2MHxTQ0gtVTQ3MHxTQ0gtVTQ5MHxTQ0gtVTU0MHxTQ0gtVTU1MHxTQ0gtVTYyMHxTQ0gtVTY0MHxTQ0gtVTY1MHxTQ0gtVTY2MHxTQ0gtVTcwMHxTQ0gtVTc0MHxTQ0gtVTc1MHxTQ0gtVTgxMHxTQ0gtVTgyMHxTQ0gtVTkwMHxTQ0gtVTk0MHxTQ0gtVTk2MHxTQ1MtMjZVQ3xTR0gtQTEwN3xTR0gtQTExN3xTR0gtQTEyN3xTR0gtQTEzN3xTR0gtQTE1N3xTR0gtQTE2N3xTR0gtQTE3N3xTR0gtQTE4N3xTR0gtQTE5N3xTR0gtQTIyN3xTR0gtQTIzN3xTR0gtQTI1N3xTR0gtQTQzN3xTR0gtQTUxN3xTR0gtQTU5N3xTR0gtQTYzN3xTR0gtQTY1N3xTR0gtQTY2N3xTR0gtQTY4N3xTR0gtQTY5N3xTR0gtQTcwN3xTR0gtQTcxN3xTR0gtQTcyN3xTR0gtQTczN3xTR0gtQTc0N3xTR0gtQTc2N3xTR0gtQTc3N3xTR0gtQTc5N3xTR0gtQTgxN3xTR0gtQTgyN3xTR0gtQTgzN3xTR0gtQTg0N3xTR0gtQTg2N3xTR0gtQTg3N3xTR0gtQTg4N3xTR0gtQTg5N3xTR0gtQTkyN3xTR0gtQjEwMHxTR0gtQjEzMHxTR0gtQjIwMHxTR0gtQjIyMHxTR0gtQzEwMHxTR0gtQzExMHxTR0gtQzEyMHxTR0gtQzEzMHxTR0gtQzE0MHxTR0gtQzE2MHxTR0gtQzE3MHxTR0gtQzE4MHxTR0gtQzIwMHxTR0gtQzIwN3xTR0gtQzIxMHxTR0gtQzIyNXxTR0gtQzIzMHxTR0gtQzQxN3xTR0gtQzQ1MHxTR0gtRDMwN3xTR0gtRDM0N3xTR0gtRDM1N3xTR0gtRDQwN3xTR0gtRDQxNXxTR0gtRDc4MHxTR0gtRDgwN3xTR0gtRDk4MHxTR0gtRTEwNXxTR0gtRTIwMHxTR0gtRTMxNXxTR0gtRTMxNnxTR0gtRTMxN3xTR0gtRTMzNXxTR0gtRTU5MHxTR0gtRTYzNXxTR0gtRTcxNXxTR0gtRTg5MHxTR0gtRjMwMHxTR0gtRjQ4MHxTR0gtSTIwMHxTR0gtSTMwMHxTR0gtSTMyMHxTR0gtSTU1MHxTR0gtSTU3N3xTR0gtSTYwMHxTR0gtSTYwN3xTR0gtSTYxN3xTR0gtSTYyN3xTR0gtSTYzN3xTR0gtSTY3N3xTR0gtSTcwMHxTR0gtSTcxN3xTR0gtSTcyN3xTR0gtaTc0N018U0dILUk3Nzd8U0dILUk3ODB8U0dILUk4Mjd8U0dILUk4NDd8U0dILUk4NTd8U0dILUk4OTZ8U0dILUk4OTd8U0dILUk5MDB8U0dILUk5MDd8U0dILUk5MTd8U0dILUk5Mjd8U0dILUk5Mzd8U0dILUk5OTd8U0dILUoxNTB8U0dILUoyMDB8U0dILUwxNzB8U0dILUw3MDB8U0dILU0xMTB8U0dILU0xNTB8U0dILU0yMDB8U0dILU4xMDV8U0dILU41MDB8U0dILU42MDB8U0dILU42MjB8U0dILU42MjV8U0dILU43MDB8U0dILU43MTB8U0dILVAxMDd8U0dILVAyMDd8U0dILVAzMDB8U0dILVAzMTB8U0dILVA1MjB8U0dILVA3MzV8U0dILVA3Nzd8U0dILVExMDV8U0dILVIyMTB8U0dILVIyMjB8U0dILVIyMjV8U0dILVMxMDV8U0dILVMzMDd8U0dILVQxMDl8U0dILVQxMTl8U0dILVQxMzl8U0dILVQyMDl8U0dILVQyMTl8U0dILVQyMjl8U0dILVQyMzl8U0dILVQyNDl8U0dILVQyNTl8U0dILVQzMDl8U0dILVQzMTl8U0dILVQzMjl8U0dILVQzMzl8U0dILVQzNDl8U0dILVQzNTl8U0dILVQzNjl8U0dILVQzNzl8U0dILVQ0MDl8U0dILVQ0Mjl8U0dILVQ0Mzl8U0dILVQ0NTl8U0dILVQ0Njl8U0dILVQ0Nzl8U0dILVQ0OTl8U0dILVQ1MDl8U0dILVQ1MTl8U0dILVQ1Mzl8U0dILVQ1NTl8U0dILVQ1ODl8U0dILVQ2MDl8U0dILVQ2MTl8U0dILVQ2Mjl8U0dILVQ2Mzl8U0dILVQ2NTl8U0dILVQ2Njl8U0dILVQ2Nzl8U0dILVQ3MDl8U0dILVQ3MTl8U0dILVQ3Mjl8U0dILVQ3Mzl8U0dILVQ3NDZ8U0dILVQ3NDl8U0dILVQ3NTl8U0dILVQ3Njl8U0dILVQ4MDl8U0dILVQ4MTl8U0dILVQ4Mzl8U0dILVQ5MTl8U0dILVQ5Mjl8U0dILVQ5Mzl8U0dILVQ5NTl8U0dILVQ5ODl8U0dILVUxMDB8U0dILVUyMDB8U0dILVU4MDB8U0dILVYyMDV8U0dILVYyMDZ8U0dILVgxMDB8U0dILVgxMDV8U0dILVgxMjB8U0dILVgxNDB8U0dILVg0MjZ8U0dILVg0Mjd8U0dILVg0NzV8U0dILVg0OTV8U0dILVg0OTd8U0dILVg1MDd8U0dILVg2MDB8U0dILVg2MTB8U0dILVg2MjB8U0dILVg2MzB8U0dILVg3MDB8U0dILVg4MjB8U0dILVg4OTB8U0dILVoxMzB8U0dILVoxNTB8U0dILVoxNzB8U0dILVpYMTB8U0dILVpYMjB8U0hXLU0xMTB8U1BILUExMjB8U1BILUE0MDB8U1BILUE0MjB8U1BILUE0NjB8U1BILUE1MDB8U1BILUE1NjB8U1BILUE2MDB8U1BILUE2MjB8U1BILUE2NjB8U1BILUE3MDB8U1BILUE3NDB8U1BILUE3NjB8U1BILUE3OTB8U1BILUE4MDB8U1BILUE4MjB8U1BILUE4NDB8U1BILUE4ODB8U1BILUE5MDB8U1BILUE5NDB8U1BILUE5NjB8U1BILUQ2MDB8U1BILUQ3MDB8U1BILUQ3MTB8U1BILUQ3MjB8U1BILUkzMDB8U1BILUkzMjV8U1BILUkzMzB8U1BILUkzNTB8U1BILUk1MDB8U1BILUk2MDB8U1BILUk3MDB8U1BILUw3MDB8U1BILU0xMDB8U1BILU0yMjB8U1BILU0yNDB8U1BILU0zMDB8U1BILU0zMDV8U1BILU0zMjB8U1BILU0zMzB8U1BILU0zNTB8U1BILU0zNjB8U1BILU0zNzB8U1BILU0zODB8U1BILU01MTB8U1BILU01NDB8U1BILU01NTB8U1BILU01NjB8U1BILU01NzB8U1BILU01ODB8U1BILU02MTB8U1BILU02MjB8U1BILU02MzB8U1BILU04MDB8U1BILU04MTB8U1BILU04NTB8U1BILU05MDB8U1BILU05MTB8U1BILU05MjB8U1BILU05MzB8U1BILU4xMDB8U1BILU4yMDB8U1BILU4yNDB8U1BILU4zMDB8U1BILU40MDB8U1BILVo0MDB8U1dDLUUxMDB8U0NILWk5MDl8R1QtTjcxMDB8R1QtTjcxMDV8U0NILUk1MzV8U00tTjkwMEF8U0dILUkzMTd8U0dILVQ5OTlMfEdULVM1MzYwQnxHVC1JODI2MnxHVC1TNjgwMnxHVC1TNjMxMnxHVC1TNjMxMHxHVC1TNTMxMnxHVC1TNTMxMHxHVC1JOTEwNXxHVC1JODUxMHxHVC1TNjc5ME58U00tRzcxMDV8U00tTjkwMDV8R1QtUzUzMDF8R1QtSTkyOTV8R1QtSTkxOTV8U00tQzEwMXxHVC1TNzM5MnxHVC1TNzU2MHxHVC1CNzYxMHxHVC1JNTUxMHxHVC1TNzU4MnxHVC1TNzUzMEV8R1QtSTg3NTB8U00tRzkwMDZWfFNNLUc5MDA4VnxTTS1HOTAwOUR8U00tRzkwMEF8U00tRzkwMER8U00tRzkwMEZ8U00tRzkwMEh8U00tRzkwMEl8U00tRzkwMEp8U00tRzkwMEt8U00tRzkwMEx8U00tRzkwME18U00tRzkwMFB8U00tRzkwMFI0fFNNLUc5MDBTfFNNLUc5MDBUfFNNLUc5MDBWfFNNLUc5MDBXOHxTSFYtRTE2MEt8U0NILVA3MDl8U0NILVA3Mjl8U00tVDI1NTh8R1QtSTkyMDV8U00tRzkzNTB8U00tSjEyMEZ8U00tRzkyMEZ8U00tRzkyMFZ8U00tRzkzMEZ8U00tTjkxMEN8U00tQTMxMEZ8R1QtSTkxOTB8U00tSjUwMEZOfFNNLUc5MDNGfFNNLUozMzBGfFNNLUc2MTBGfFNNLUc5ODFCfFNNLUc4OTJBfFNNLUE1MzBGIixMRzoiXFxiTEdcXGI7fExHWy0gXT8oQzgwMHxDOTAwfEU0MDB8RTYxMHxFOTAwfEUtOTAwfEYxNjB8RjE4MEt8RjE4MEx8RjE4MFN8NzMwfDg1NXxMMTYwfExTNzQwfExTODQwfExTOTcwfExVNjIwMHxNUzY5MHxNUzY5NXxNUzc3MHxNUzg0MHxNUzg3MHxNUzkxMHxQNTAwfFA3MDB8UDcwNXxWTTY5NnxBUzY4MHxBUzY5NXxBWDg0MHxDNzI5fEU5NzB8R1M1MDV8MjcyfEMzOTV8RTczOUJLfEU5NjB8TDU1Q3xMNzVDfExTNjk2fExTODYwfFA3NjlCS3xQMzUwfFA1MDB8UDUwOXxQODcwfFVOMjcyfFVTNzMwfFZTODQwfFZTOTUwfExOMjcyfExONTEwfExTNjcwfExTODU1fExXNjkwfE1OMjcwfE1ONTEwfFA1MDl8UDc2OXxQOTMwfFVOMjAwfFVOMjcwfFVONTEwfFVONjEwfFVTNjcwfFVTNzQwfFVTNzYwfFVYMjY1fFVYODQwfFZOMjcxfFZONTMwfFZTNjYwfFZTNzAwfFZTNzQwfFZTNzUwfFZTOTEwfFZTOTIwfFZTOTMwfFZYOTIwMHxWWDExMDAwfEFYODQwQXxMVzc3MHxQNTA2fFA5MjV8UDk5OXxFNjEyfEQ5NTV8RDgwMnxNUzMyM3xNMjU3KXxMTS1HNzEwIixTb255OiJTb255U1R8U29ueUxUfFNvbnlFcmljc3NvbnxTb255RXJpY3Nzb25MVDE1aXZ8TFQxOGl8RTEwaXxMVDI4aHxMVDI2d3xTb255RXJpY3Nzb25NVDI3aXxDNTMwM3xDNjkwMnxDNjkwM3xDNjkwNnxDNjk0M3xEMjUzM3xTT1YzNHw2MDFTT3xGODMzMiIsQXN1czoiQXN1cy4qR2FsYXh5fFBhZEZvbmUuKk1vYmlsZSIsWGlhb21pOiJeKD8hLipcXGJ4MTFcXGIpLip4aWFvbWkuKiR8UE9DT1BIT05FIEYxfE1JIDh8UmVkbWkgTm90ZSA5U3xSZWRtaSBOb3RlIDVBIFByaW1lfE4yRzQ3SHxNMjAwMUoyR3xNMjAwMUoySXxNMTgwNUUxMEF8TTIwMDRKMTFHfE0xOTAyRjFHfE0yMDAySjlHfE0yMDA0SjE5R3xNMjAwM0o2QTFHIixOb2tpYUx1bWlhOiJMdW1pYSBbMC05XXszLDR9IixNaWNyb21heDoiTWljcm9tYXguKlxcYihBMjEwfEE5MnxBODh8QTcyfEExMTF8QTExMFF8QTExNXxBMTE2fEExMTB8QTkwU3xBMjZ8QTUxfEEzNXxBNTR8QTI1fEEyN3xBODl8QTY4fEE2NXxBNTd8QTkwKVxcYiIsUGFsbToiUGFsbVNvdXJjZXxQYWxtIixWZXJ0dToiVmVydHV8VmVydHUuKkx0ZHxWZXJ0dS4qQXNjZW50fFZlcnR1LipBeXh0YXxWZXJ0dS4qQ29uc3RlbGxhdGlvbihGfFF1ZXN0KT98VmVydHUuKk1vbmlrYXxWZXJ0dS4qU2lnbmF0dXJlIixQYW50ZWNoOiJQQU5URUNIfElNLUE4NTBTfElNLUE4NDBTfElNLUE4MzBMfElNLUE4MzBLfElNLUE4MzBTfElNLUE4MjBMfElNLUE4MTBLfElNLUE4MTBTfElNLUE4MDBTfElNLVQxMDBLfElNLUE3MjVMfElNLUE3ODBMfElNLUE3NzVDfElNLUE3NzBLfElNLUE3NjBTfElNLUE3NTBLfElNLUE3NDBTfElNLUE3MzBTfElNLUE3MjBMfElNLUE3MTBLfElNLUE2OTBMfElNLUE2OTBTfElNLUE2NTBTfElNLUE2MzBLfElNLUE2MDBTfFZFR0EgUFRMMjF8UFQwMDN8UDgwMTB8QURSOTEwTHxQNjAzMHxQNjAyMHxQOTA3MHxQNDEwMHxQOTA2MHxQNTAwMHxDRE04OTkyfFRYVDgwNDV8QURSODk5NXxJUzExUFR8UDIwMzB8UDYwMTB8UDgwMDB8UFQwMDJ8SVMwNnxDRE04OTk5fFA5MDUwfFBUMDAxfFRYVDgwNDB8UDIwMjB8UDkwMjB8UDIwMDB8UDcwNDB8UDcwMDB8Qzc5MCIsRmx5OiJJUTIzMHxJUTQ0NHxJUTQ1MHxJUTQ0MHxJUTQ0MnxJUTQ0MXxJUTI0NXxJUTI1NnxJUTIzNnxJUTI1NXxJUTIzNXxJUTI0NXxJUTI3NXxJUTI0MHxJUTI4NXxJUTI4MHxJUTI3MHxJUTI2MHxJUTI1MCIsV2lrbzoiS0lURSA0R3xISUdIV0FZfEdFVEFXQVl8U1RBSVJXQVl8REFSS1NJREV8REFSS0ZVTEx8REFSS05JR0hUfERBUktNT09OfFNMSURFfFdBWCA0R3xSQUlOQk9XfEJMT09NfFNVTlNFVHxHT0EoPyFubmEpfExFTk5ZfEJBUlJZfElHR1l8T1paWXxDSU5LIEZJVkV8Q0lOSyBQRUFYfENJTksgUEVBWCAyfENJTksgU0xJTXxDSU5LIFNMSU0gMnxDSU5LICt8Q0lOSyBLSU5HfENJTksgUEVBWHxDSU5LIFNMSU18U1VCTElNIixpTW9iaWxlOiJpLW1vYmlsZSAoSVF8aS1TVFlMRXxpZGVhfFpBQXxIaXR6KSIsU2ltVmFsbGV5OiJcXGIoU1AtODB8WFQtOTMwfFNYLTM0MHxYVC05MzB8U1gtMzEwfFNQLTM2MHxTUDYwfFNQVC04MDB8U1AtMTIwfFNQVC04MDB8U1AtMTQwfFNQWC01fFNQWC04fFNQLTEwMHxTUFgtOHxTUFgtMTIpXFxiIixXb2xmZ2FuZzoiQVQtQjI0RHxBVC1BUzUwSER8QVQtQVM0MFd8QVQtQVM1NUhEfEFULUFTNDVxMnxBVC1CMjZEfEFULUFTNTBRIixBbGNhdGVsOiJBbGNhdGVsIixOaW50ZW5kbzoiTmludGVuZG8gKDNEU3xTd2l0Y2gpIixBbW9pOiJBbW9pIixJTlE6IklOUSIsT25lUGx1czoiT05FUExVUyIsR2VuZXJpY1Bob25lOiJUYXBhdGFsa3xQREE7fFNBR0VNfFxcYm1tcFxcYnxwb2NrZXR8XFxicHNwXFxifHN5bWJpYW58U21hcnRwaG9uZXxzbWFydGZvbnx0cmVvfHVwLmJyb3dzZXJ8dXAubGlua3x2b2RhZm9uZXxcXGJ3YXBcXGJ8bm9raWF8U2VyaWVzNDB8U2VyaWVzNjB8UzYwfFNvbnlFcmljc3NvbnxOOTAwfE1BVUkuKldBUC4qQnJvd3NlciJ9LHRhYmxldHM6e2lQYWQ6ImlQYWR8aVBhZC4qTW9iaWxlIixOZXh1c1RhYmxldDoiQW5kcm9pZC4qTmV4dXNbXFxzXSsoN3w5fDEwKSIsR29vZ2xlVGFibGV0OiJBbmRyb2lkLipQaXhlbCBDIixTYW1zdW5nVGFibGV0OiJTQU1TVU5HLipUYWJsZXR8R2FsYXh5LipUYWJ8U0MtMDFDfEdULVAxMDAwfEdULVAxMDAzfEdULVAxMDEwfEdULVAzMTA1fEdULVA2MjEwfEdULVA2ODAwfEdULVA2ODEwfEdULVA3MTAwfEdULVA3MzAwfEdULVA3MzEwfEdULVA3NTAwfEdULVA3NTEwfFNDSC1JODAwfFNDSC1JODE1fFNDSC1JOTA1fFNHSC1JOTU3fFNHSC1JOTg3fFNHSC1UODQ5fFNHSC1UODU5fFNHSC1UODY5fFNQSC1QMTAwfEdULVAzMTAwfEdULVAzMTA4fEdULVAzMTEwfEdULVA1MTAwfEdULVA1MTEwfEdULVA2MjAwfEdULVA3MzIwfEdULVA3NTExfEdULU44MDAwfEdULVA4NTEwfFNHSC1JNDk3fFNQSC1QNTAwfFNHSC1UNzc5fFNDSC1JNzA1fFNDSC1JOTE1fEdULU44MDEzfEdULVAzMTEzfEdULVA1MTEzfEdULVA4MTEwfEdULU44MDEwfEdULU44MDA1fEdULU44MDIwfEdULVAxMDEzfEdULVA2MjAxfEdULVA3NTAxfEdULU41MTAwfEdULU41MTA1fEdULU41MTEwfFNIVi1FMTQwS3xTSFYtRTE0MEx8U0hWLUUxNDBTfFNIVi1FMTUwU3xTSFYtRTIzMEt8U0hWLUUyMzBMfFNIVi1FMjMwU3xTSFctTTE4MEt8U0hXLU0xODBMfFNIVy1NMTgwU3xTSFctTTE4MFd8U0hXLU0zMDBXfFNIVy1NMzA1V3xTSFctTTM4MEt8U0hXLU0zODBTfFNIVy1NMzgwV3xTSFctTTQzMFd8U0hXLU00ODBLfFNIVy1NNDgwU3xTSFctTTQ4MFd8U0hXLU00ODVXfFNIVy1NNDg2V3xTSFctTTUwMFd8R1QtSTkyMjh8U0NILVA3Mzl8U0NILUk5MjV8R1QtSTkyMDB8R1QtUDUyMDB8R1QtUDUyMTB8R1QtUDUyMTBYfFNNLVQzMTF8U00tVDMxMHxTTS1UMzEwWHxTTS1UMjEwfFNNLVQyMTBSfFNNLVQyMTF8U00tUDYwMHxTTS1QNjAxfFNNLVA2MDV8U00tUDkwMHxTTS1QOTAxfFNNLVQyMTd8U00tVDIxN0F8U00tVDIxN1N8U00tUDYwMDB8U00tVDMxMDB8U0dILUk0Njd8WEU1MDB8U00tVDExMHxHVC1QNTIyMHxHVC1JOTIwMFh8R1QtTjUxMTBYfEdULU41MTIwfFNNLVA5MDV8U00tVDExMXxTTS1UMjEwNXxTTS1UMzE1fFNNLVQzMjB8U00tVDMyMFh8U00tVDMyMXxTTS1UNTIwfFNNLVQ1MjV8U00tVDUzME5VfFNNLVQyMzBOVXxTTS1UMzMwTlV8U00tVDkwMHxYRTUwMFQxQ3xTTS1QNjA1VnxTTS1QOTA1VnxTTS1UMzM3VnxTTS1UNTM3VnxTTS1UNzA3VnxTTS1UODA3VnxTTS1QNjAwWHxTTS1QOTAwWHxTTS1UMjEwWHxTTS1UMjMwfFNNLVQyMzBYfFNNLVQzMjV8R1QtUDc1MDN8U00tVDUzMXxTTS1UMzMwfFNNLVQ1MzB8U00tVDcwNXxTTS1UNzA1Q3xTTS1UNTM1fFNNLVQzMzF8U00tVDgwMHxTTS1UNzAwfFNNLVQ1Mzd8U00tVDgwN3xTTS1QOTA3QXxTTS1UMzM3QXxTTS1UNTM3QXxTTS1UNzA3QXxTTS1UODA3QXxTTS1UMjM3fFNNLVQ4MDdQfFNNLVA2MDdUfFNNLVQyMTdUfFNNLVQzMzdUfFNNLVQ4MDdUfFNNLVQxMTZOUXxTTS1UMTE2QlV8U00tUDU1MHxTTS1UMzUwfFNNLVQ1NTB8U00tVDkwMDB8U00tUDkwMDB8U00tVDcwNVl8U00tVDgwNXxHVC1QMzExM3xTTS1UNzEwfFNNLVQ4MTB8U00tVDgxNXxTTS1UMzYwfFNNLVQ1MzN8U00tVDExM3xTTS1UMzM1fFNNLVQ3MTV8U00tVDU2MHxTTS1UNjcwfFNNLVQ2Nzd8U00tVDM3N3xTTS1UNTY3fFNNLVQzNTdUfFNNLVQ1NTV8U00tVDU2MXxTTS1UNzEzfFNNLVQ3MTl8U00tVDgxM3xTTS1UODE5fFNNLVQ1ODB8U00tVDM1NVk/fFNNLVQyODB8U00tVDgxN0F8U00tVDgyMHxTTS1XNzAwfFNNLVA1ODB8U00tVDU4N3xTTS1QMzUwfFNNLVA1NTVNfFNNLVAzNTVNfFNNLVQxMTNOVXxTTS1UODE1WXxTTS1UNTg1fFNNLVQyODV8U00tVDgyNXxTTS1XNzA4fFNNLVQ4MzV8U00tVDgzMHxTTS1UODM3VnxTTS1UNzIwfFNNLVQ1MTB8U00tVDM4N1Z8U00tUDYxMHxTTS1UMjkwfFNNLVQ1MTV8U00tVDU5MHxTTS1UNTk1fFNNLVQ3MjV8U00tVDgxN1B8U00tUDU4NU4wfFNNLVQzOTV8U00tVDI5NXxTTS1UODY1fFNNLVA2MTBOfFNNLVA2MTV8U00tVDk3MHxTTS1UMzgwfFNNLVQ1OTUwfFNNLVQ5MDV8U00tVDIzMXxTTS1UNTAwfFNNLVQ4NjAiLEtpbmRsZToiS2luZGxlfFNpbGsuKkFjY2VsZXJhdGVkfEFuZHJvaWQuKlxcYihLRk9UfEtGVFR8S0ZKV0l8S0ZKV0F8S0ZPVEV8S0ZTT1dJfEtGVEhXSXxLRlRIV0F8S0ZBUFdJfEtGQVBXQXxXRkpXQUV8S0ZTQVdBfEtGU0FXSXxLRkFTV0l8S0ZBUldJfEtGRk9XSXxLRkdJV0l8S0ZNRVdJKVxcYnxBbmRyb2lkLipTaWxrL1swLTkuXSsgbGlrZSBDaHJvbWUvWzAtOS5dKyAoPyFNb2JpbGUpIixTdXJmYWNlVGFibGV0OiJXaW5kb3dzIE5UIFswLTkuXSs7IEFSTTsuKihUYWJsZXR8QVJNQkpTKSIsSFBUYWJsZXQ6IkhQIFNsYXRlICg3fDh8MTApfEhQIEVsaXRlUGFkIDkwMHxocC10YWJsZXR8RWxpdGVCb29rLipUb3VjaHxIUCA4fFNsYXRlIDIxfEhQIFNsYXRlQm9vayAxMCIsQXN1c1RhYmxldDoiXi4qUGFkRm9uZSgoPyFNb2JpbGUpLikqJHxUcmFuc2Zvcm1lcnxURjEwMXxURjEwMUd8VEYzMDBUfFRGMzAwVEd8VEYzMDBUTHxURjcwMFR8VEY3MDBLTHxURjcwMVR8VEY4MTBDfE1FMTcxfE1FMzAxVHxNRTMwMkN8TUUzNzFNR3xNRTM3MFR8TUUzNzJNR3xNRTE3MlZ8TUUxNzNYfE1FNDAwQ3xTbGlkZXIgU0wxMDF8XFxiSzAwRlxcYnxcXGJLMDBDXFxifFxcYkswMEVcXGJ8XFxiSzAwTFxcYnxUWDIwMUxBfE1FMTc2Q3xNRTEwMkF8XFxiTTgwVEFcXGJ8TUUzNzJDTHxNRTU2MENHfE1FMzcyQ0d8TUUzMDJLTHwgSzAxMCB8IEswMTEgfCBLMDE3IHwgSzAxRSB8TUU1NzJDfE1FMTAzS3xNRTE3MEN8TUUxNzFDfFxcYk1FNzBDXFxifE1FNTgxQ3xNRTU4MUNMfE1FODUxMEN8TUUxODFDfFAwMVl8UE8xTUF8UDAxWnxcXGJQMDI3XFxifFxcYlAwMjRcXGJ8XFxiUDAwQ1xcYiIsQmxhY2tCZXJyeVRhYmxldDoiUGxheUJvb2t8UklNIFRhYmxldCIsSFRDdGFibGV0OiJIVENfRmx5ZXJfUDUxMnxIVEMgRmx5ZXJ8SFRDIEpldHN0cmVhbXxIVEMtUDcxNWF8SFRDIEVWTyBWaWV3IDRHfFBHNDEyMDB8UEcwOTQxMCIsTW90b3JvbGFUYWJsZXQ6Inhvb218c2hvbGVzdHxNWjYxNXxNWjYwNXxNWjUwNXxNWjYwMXxNWjYwMnxNWjYwM3xNWjYwNHxNWjYwNnxNWjYwN3xNWjYwOHxNWjYwOXxNWjYxNXxNWjYxNnxNWjYxNyIsTm9va1RhYmxldDoiQW5kcm9pZC4qTm9va3xOb29rQ29sb3J8bm9vayBicm93c2VyfEJOUlYyMDB8Qk5SVjIwMEF8Qk5UVjI1MHxCTlRWMjUwQXxCTlRWNDAwfEJOVFY2MDB8TG9naWNQRCBab29tMiIsQWNlclRhYmxldDoiQW5kcm9pZC4qOyBcXGIoQTEwMHxBMTAxfEExMTB8QTIwMHxBMjEwfEEyMTF8QTUwMHxBNTAxfEE1MTB8QTUxMXxBNzAwfEE3MDF8VzUwMHxXNTAwUHxXNTAxfFc1MDFQfFc1MTB8VzUxMXxXNzAwfEcxMDB8RzEwMFd8QjEtQTcxfEIxLTcxMHxCMS03MTF8QTEtODEwfEExLTgxMXxBMS04MzApXFxifFczLTgxMHxcXGJBMy1BMTBcXGJ8XFxiQTMtQTExXFxifFxcYkEzLUEyMFxcYnxcXGJBMy1BMzB8QTMtQTQwIixUb3NoaWJhVGFibGV0OiJBbmRyb2lkLiooQVQxMDB8QVQxMDV8QVQyMDB8QVQyMDV8QVQyNzB8QVQyNzV8QVQzMDB8QVQzMDV8QVQxUzV8QVQ1MDB8QVQ1NzB8QVQ3MDB8QVQ4MzApfFRPU0hJQkEuKkZPTElPIixMR1RhYmxldDoiXFxiTC0wNkN8TEctVjkwOXxMRy1WOTAwfExHLVY3MDB8TEctVjUxMHxMRy1WNTAwfExHLVY0MTB8TEctVjQwMHxMRy1WSzgxMFxcYiIsRnVqaXRzdVRhYmxldDoiQW5kcm9pZC4qXFxiKEYtMDFEfEYtMDJGfEYtMDVFfEYtMTBEfE01MzJ8UTU3MilcXGIiLFByZXN0aWdpb1RhYmxldDoiUE1QMzE3MEJ8UE1QMzI3MEJ8UE1QMzQ3MEJ8UE1QNzE3MEJ8UE1QMzM3MEJ8UE1QMzU3MEN8UE1QNTg3MEN8UE1QMzY3MEJ8UE1QNTU3MEN8UE1QNTc3MER8UE1QMzk3MEJ8UE1QMzg3MEN8UE1QNTU4MEN8UE1QNTg4MER8UE1QNTc4MER8UE1QNTU4OEN8UE1QNzI4MEN8UE1QNzI4MEMzR3xQTVA3MjgwfFBNUDc4ODBEfFBNUDU1OTdEfFBNUDU1OTd8UE1QNzEwMER8UEVSMzQ2NHxQRVIzMjc0fFBFUjM1NzR8UEVSMzg4NHxQRVI1Mjc0fFBFUjU0NzR8UE1QNTA5N0NQUk98UE1QNTA5N3xQTVA3MzgwRHxQTVA1Mjk3Q3xQTVA1Mjk3Q19RVUFEfFBNUDgxMkV8UE1QODEyRTNHfFBNUDgxMkZ8UE1QODEwRXxQTVA4ODBURHxQTVQzMDE3fFBNVDMwMzd8UE1UMzA0N3xQTVQzMDU3fFBNVDcwMDh8UE1UNTg4N3xQTVQ1MDAxfFBNVDUwMDIiLExlbm92b1RhYmxldDoiTGVub3ZvIFRBQnxJZGVhKFRhYnxQYWQpKCBBMXxBMTB8IEsxfCl8VGhpbmtQYWQoWyBdKyk/VGFibGV0fFlUMy04NTBNfFlUMy1YOTBMfFlUMy1YOTBGfFlUMy1YOTBYfExlbm92by4qKFMyMTA5fFMyMTEwfFM1MDAwfFM2MDAwfEszMDExfEEzMDAwfEEzNTAwfEExMDAwfEEyMTA3fEEyMTA5fEExMTA3fEE1NTAwfEE3NjAwfEI2MDAwfEI4MDAwfEI4MDgwKSgtfCkoRkx8RnxIVnxIfCl8VEItWDEwM0Z8VEItWDMwNFh8VEItWDMwNEZ8VEItWDMwNEx8VEItWDUwNUZ8VEItWDUwNUx8VEItWDUwNVh8VEItWDYwNUZ8VEItWDYwNUx8VEItODcwM0Z8VEItODcwM1h8VEItODcwM058VEItODcwNE58VEItODcwNEZ8VEItODcwNFh8VEItODcwNFZ8VEItNzMwNEZ8VEItNzMwNEl8VEItNzMwNFh8VGFiMkE3LTEwRnxUYWIyQTctMjBGfFRCMi1YMzBMfFlUMy1YNTBMfFlUMy1YNTBGfFlUMy1YNTBNfFlULVg3MDVGfFlULVg3MDNGfFlULVg3MDNMfFlULVg3MDVMfFlULVg3MDVYfFRCMi1YMzBGfFRCMi1YMzBMfFRCMi1YMzBNfEEyMTA3QS1GfEEyMTA3QS1IfFRCMy03MzBGfFRCMy03MzBNfFRCMy03MzBYfFRCLTc1MDRGfFRCLTc1MDRYfFRCLVg3MDRGfFRCLVgxMDRGfFRCMy1YNzBGfFRCLVg3MDVGfFRCLTg1MDRGfFRCMy1YNzBMfFRCMy03MTBGfFRCLVg3MDRMIixEZWxsVGFibGV0OiJWZW51ZSAxMXxWZW51ZSA4fFZlbnVlIDd8RGVsbCBTdHJlYWsgMTB8RGVsbCBTdHJlYWsgNyIsWWFydmlrVGFibGV0OiJBbmRyb2lkLipcXGIoVEFCMjEwfFRBQjIxMXxUQUIyMjR8VEFCMjUwfFRBQjI2MHxUQUIyNjR8VEFCMzEwfFRBQjM2MHxUQUIzNjR8VEFCNDEwfFRBQjQxMXxUQUI0MjB8VEFCNDI0fFRBQjQ1MHxUQUI0NjB8VEFCNDYxfFRBQjQ2NHxUQUI0NjV8VEFCNDY3fFRBQjQ2OHxUQUIwNy0xMDB8VEFCMDctMTAxfFRBQjA3LTE1MHxUQUIwNy0xNTF8VEFCMDctMTUyfFRBQjA3LTIwMHxUQUIwNy0yMDEtM0d8VEFCMDctMjEwfFRBQjA3LTIxMXxUQUIwNy0yMTJ8VEFCMDctMjE0fFRBQjA3LTIyMHxUQUIwNy00MDB8VEFCMDctNDg1fFRBQjA4LTE1MHxUQUIwOC0yMDB8VEFCMDgtMjAxLTNHfFRBQjA4LTIwMS0zMHxUQUIwOS0xMDB8VEFCMDktMjExfFRBQjA5LTQxMHxUQUIxMC0xNTB8VEFCMTAtMjAxfFRBQjEwLTIxMXxUQUIxMC00MDB8VEFCMTAtNDEwfFRBQjEzLTIwMXxUQUIyNzRFVUt8VEFCMjc1RVVLfFRBQjM3NEVVS3xUQUI0NjJFVUt8VEFCNDc0RVVLfFRBQjktMjAwKVxcYiIsTWVkaW9uVGFibGV0OiJBbmRyb2lkLipcXGJPWU9cXGJ8TElGRS4qKFA5MjEyfFA5NTE0fFA5NTE2fFM5NTEyKXxMSUZFVEFCIixBcm5vdmFUYWJsZXQ6Ijk3RzR8QU4xMEcyfEFON2JHM3xBTjdmRzN8QU44RzN8QU44Y0czfEFON0czfEFOOUczfEFON2RHM3xBTjdkRzNTVHxBTjdkRzNDaGlsZFBhZHxBTjEwYkczfEFOMTBiRzNEVHxBTjlHMiIsSW50ZW5zb1RhYmxldDoiSU5NODAwMktQfElOTTEwMTBGUHxJTk04MDVORHxJbnRlbnNvIFRhYnxUQUIxMDA0IixJUlVUYWJsZXQ6Ik03MDJwcm8iLE1lZ2Fmb25UYWJsZXQ6Ik1lZ2FGb24gVjl8XFxiWlRFIFY5XFxifEFuZHJvaWQuKlxcYk1UN0FcXGIiLEVib2RhVGFibGV0OiJFLUJvZGEgKFN1cHJlbWV8SW1wcmVzc3BlZWR8SXp6eWNvbW18RXNzZW50aWFsKSIsQWxsVmlld1RhYmxldDoiQWxsdmlldy4qKFZpdmF8QWxsZHJvfENpdHl8U3BlZWR8QWxsIFRWfEZyZW56eXxRdWFzYXJ8U2hpbmV8VFgxfEFYMXxBWDIpIixBcmNob3NUYWJsZXQ6IlxcYigxMDFHOXw4MEc5fEExMDFJVClcXGJ8UWlsaXZlIDk3UnxBcmNob3M1fFxcYkFSQ0hPUyAoNzB8Nzl8ODB8OTB8OTd8MTAxfEZBTUlMWVBBRHwpKGJ8Y3wpKEcxMHwgQ29iYWx0fCBUSVRBTklVTShIRHwpfCBYZW5vbnwgTmVvbnxYU0t8IDJ8IFhTIDJ8IFBMQVRJTlVNfCBDQVJCT058R0FNRVBBRClcXGIiLEFpbm9sVGFibGV0OiJOT1ZPN3xOT1ZPOHxOT1ZPMTB8Tm92bzdBdXJvcmF8Tm92bzdCYXNpY3xOT1ZPN1BBTEFESU58bm92bzktU3BhcmsiLE5va2lhTHVtaWFUYWJsZXQ6Ikx1bWlhIDI1MjAiLFNvbnlUYWJsZXQ6IlNvbnkuKlRhYmxldHxYcGVyaWEgVGFibGV0fFNvbnkgVGFibGV0IFN8U08tMDNFfFNHUFQxMnxTR1BUMTN8U0dQVDExNHxTR1BUMTIxfFNHUFQxMjJ8U0dQVDEyM3xTR1BUMTExfFNHUFQxMTJ8U0dQVDExM3xTR1BUMTMxfFNHUFQxMzJ8U0dQVDEzM3xTR1BUMjExfFNHUFQyMTJ8U0dQVDIxM3xTR1AzMTF8U0dQMzEyfFNHUDMyMXxFQlJEMTEwMXxFQlJEMTEwMnxFQlJEMTIwMXxTR1AzNTF8U0dQMzQxfFNHUDUxMXxTR1A1MTJ8U0dQNTIxfFNHUDU0MXxTR1A1NTF8U0dQNjIxfFNHUDY0MXxTR1A2MTJ8U09UMzF8U0dQNzcxfFNHUDYxMXxTR1A2MTJ8U0dQNzEyIixQaGlsaXBzVGFibGV0OiJcXGIoUEkyMDEwfFBJMzAwMHxQSTMxMDB8UEkzMTA1fFBJMzExMHxQSTMyMDV8UEkzMjEwfFBJMzkwMHxQSTQwMTB8UEk3MDAwfFBJNzEwMClcXGIiLEN1YmVUYWJsZXQ6IkFuZHJvaWQuKihLOEdUfFU5R1R8VTEwR1R8VTE2R1R8VTE3R1R8VTE4R1R8VTE5R1R8VTIwR1R8VTIzR1R8VTMwR1QpfENVQkUgVThHVCIsQ29ieVRhYmxldDoiTUlEMTA0MnxNSUQxMDQ1fE1JRDExMjV8TUlEMTEyNnxNSUQ3MDEyfE1JRDcwMTR8TUlENzAxNXxNSUQ3MDM0fE1JRDcwMzV8TUlENzAzNnxNSUQ3MDQyfE1JRDcwNDh8TUlENzEyN3xNSUQ4MDQyfE1JRDgwNDh8TUlEODEyN3xNSUQ5MDQyfE1JRDk3NDB8TUlEOTc0MnxNSUQ3MDIyfE1JRDcwMTAiLE1JRFRhYmxldDoiTTk3MDF8TTkwMDB8TTkxMDB8TTgwNnxNMTA1MnxNODA2fFQ3MDN8TUlENzAxfE1JRDcxM3xNSUQ3MTB8TUlENzI3fE1JRDc2MHxNSUQ4MzB8TUlENzI4fE1JRDkzM3xNSUQxMjV8TUlEODEwfE1JRDczMnxNSUQxMjB8TUlEOTMwfE1JRDgwMHxNSUQ3MzF8TUlEOTAwfE1JRDEwMHxNSUQ4MjB8TUlENzM1fE1JRDk4MHxNSUQxMzB8TUlEODMzfE1JRDczN3xNSUQ5NjB8TUlEMTM1fE1JRDg2MHxNSUQ3MzZ8TUlEMTQwfE1JRDkzMHxNSUQ4MzV8TUlENzMzfE1JRDRYMTAiLE1TSVRhYmxldDoiTVNJIFxcYihQcmltbyA3M0t8UHJpbW8gNzNMfFByaW1vIDgxTHxQcmltbyA3N3xQcmltbyA5M3xQcmltbyA3NXxQcmltbyA3NnxQcmltbyA3M3xQcmltbyA4MXxQcmltbyA5MXxQcmltbyA5MHxFbmpveSA3MXxFbmpveSA3fEVuam95IDEwKVxcYiIsU01pVFRhYmxldDoiQW5kcm9pZC4qKFxcYk1JRFxcYnxNSUQtNTYwfE1UVi1UMTIwMHxNVFYtUE5ENTMxfE1UVi1QMTEwMXxNVFYtUE5ENTMwKSIsUm9ja0NoaXBUYWJsZXQ6IkFuZHJvaWQuKihSSzI4MTh8UksyODA4QXxSSzI5MTh8UkszMDY2KXxSSzI3Mzh8UksyODA4QSIsRmx5VGFibGV0OiJJUTMxMHxGbHkgVmlzaW9uIixicVRhYmxldDoiQW5kcm9pZC4qKGJxKT8uKlxcYihFbGNhbm98Q3VyaWV8RWRpc29ufE1heHdlbGx8S2VwbGVyfFBhc2NhbHxUZXNsYXxIeXBhdGlhfFBsYXRvbnxOZXd0b258TGl2aW5nc3RvbmV8Q2VydmFudGVzfEF2YW50fEFxdWFyaXMgKFtFfE1dMTB8TTgpKVxcYnxNYXh3ZWxsLipMaXRlfE1heHdlbGwuKlBsdXMiLEh1YXdlaVRhYmxldDoiTWVkaWFQYWR8TWVkaWFQYWQgNyBZb3V0aHxJREVPUyBTN3xTNy0yMDFjfFM3LTIwMnV8UzctMTAxfFM3LTEwM3xTNy0xMDR8UzctMTA1fFM3LTEwNnxTNy0yMDF8UzctU2xpbXxNMi1BMDFMfEJBSC1MMDl8QkFILVcwOXxBR1MtTDA5fENNUi1BTDE5IixOZWNUYWJsZXQ6IlxcYk4tMDZEfFxcYk4tMDhEIixQYW50ZWNoVGFibGV0OiJQYW50ZWNoLipQNDEwMCIsQnJvbmNob1RhYmxldDoiQnJvbmNoby4qKE43MDF8TjcwOHxOODAyfGE3MTApIixWZXJzdXNUYWJsZXQ6IlRPVUNIUEFELipbNzg5MTBdfFxcYlRPVUNIVEFCXFxiIixaeW5jVGFibGV0OiJ6MTAwMHxaOTkgMkd8ejkzMHx6OTkwfHo5MDl8WjkxOXx6OTAwIixQb3NpdGl2b1RhYmxldDoiVEIwN1NUQXxUQjEwU1RBfFRCMDdGVEF8VEIxMEZUQSIsTmFiaVRhYmxldDoiQW5kcm9pZC4qXFxiTmFiaSIsS29ib1RhYmxldDoiS29ibyBUb3VjaHxcXGJLMDgwXFxifFxcYlZveFxcYiBCdWlsZHxcXGJBcmNcXGIgQnVpbGQiLERhbmV3VGFibGV0OiJEU2xpZGUuKlxcYig3MDB8NzAxUnw3MDJ8NzAzUnw3MDR8ODAyfDk3MHw5NzF8OTcyfDk3M3w5NzR8MTAxMHwxMDEyKVxcYiIsVGV4ZXRUYWJsZXQ6Ik5hdmlQYWR8VEItNzcyQXxUTS03MDQ1fFRNLTcwNTV8VE0tOTc1MHxUTS03MDE2fFRNLTcwMjR8VE0tNzAyNnxUTS03MDQxfFRNLTcwNDN8VE0tNzA0N3xUTS04MDQxfFRNLTk3NDF8VE0tOTc0N3xUTS05NzQ4fFRNLTk3NTF8VE0tNzAyMnxUTS03MDIxfFRNLTcwMjB8VE0tNzAxMXxUTS03MDEwfFRNLTcwMjN8VE0tNzAyNXxUTS03MDM3V3xUTS03MDM4V3xUTS03MDI3V3xUTS05NzIwfFRNLTk3MjV8VE0tOTczN1d8VE0tMTAyMHxUTS05NzM4V3xUTS05NzQwfFRNLTk3NDNXfFRCLTgwN0F8VEItNzcxQXxUQi03MjdBfFRCLTcyNUF8VEItNzE5QXxUQi04MjNBfFRCLTgwNUF8VEItNzIzQXxUQi03MTVBfFRCLTcwN0F8VEItNzA1QXxUQi03MDlBfFRCLTcxMUF8VEItODkwSER8VEItODgwSER8VEItNzkwSER8VEItNzgwSER8VEItNzcwSER8VEItNzIxSER8VEItNzEwSER8VEItNDM0SER8VEItODYwSER8VEItODQwSER8VEItNzYwSER8VEItNzUwSER8VEItNzQwSER8VEItNzMwSER8VEItNzIySER8VEItNzIwSER8VEItNzAwSER8VEItNTAwSER8VEItNDcwSER8VEItNDMxSER8VEItNDMwSER8VEItNTA2fFRCLTUwNHxUQi00NDZ8VEItNDM2fFRCLTQxNnxUQi0xNDZTRXxUQi0xMjZTRSIsUGxheXN0YXRpb25UYWJsZXQ6IlBsYXlzdGF0aW9uLiooUG9ydGFibGV8Vml0YSkiLFRyZWtzdG9yVGFibGV0OiJTVDEwNDE2LTF8VlQxMDQxNi0xfFNUNzA0MDgtMXxTVDcwMnh4LTF8U1Q3MDJ4eC0yfFNUODAyMDh8U1Q5NzIxNnxTVDcwMTA0LTJ8VlQxMDQxNi0yfFNUMTAyMTYtMkF8U3VyZlRhYiIsUHlsZUF1ZGlvVGFibGV0OiJcXGIoUFRCTDEwQ0VVfFBUQkwxMEN8UFRCTDcyQkN8UFRCTDcyQkNFVXxQVEJMN0NFVXxQVEJMN0N8UFRCTDkyQkN8UFRCTDkyQkNFVXxQVEJMOUNFVXxQVEJMOUNVS3xQVEJMOUMpXFxiIixBZHZhblRhYmxldDoiQW5kcm9pZC4qIFxcYihFM0F8VDNYfFQ1Q3xUNUJ8VDNFfFQzQ3xUM0J8VDFKfFQxRnxUMkF8VDFIfFQxaXxFMUN8VDEtRXxUNS1BfFQ0fEUxLUJ8VDJDaXxUMS1CfFQxLUR8TzEtQXxFMS1BfFQxLUF8VDNBfFQ0aSlcXGIgIixEYW55VGVjaFRhYmxldDoiR2VuaXVzIFRhYiBHM3xHZW5pdXMgVGFiIFMyfEdlbml1cyBUYWIgUTN8R2VuaXVzIFRhYiBHNHxHZW5pdXMgVGFiIFE0fEdlbml1cyBUYWIgRy1JSXxHZW5pdXMgVEFCIEdJSXxHZW5pdXMgVEFCIEdJSUl8R2VuaXVzIFRhYiBTMSIsR2FsYXBhZFRhYmxldDoiQW5kcm9pZCBbMC05Ll0rOyBbYS16LV0rOyBcXGJHMVxcYiIsTWljcm9tYXhUYWJsZXQ6IkZ1bmJvb2t8TWljcm9tYXguKlxcYihQMjUwfFA1NjB8UDM2MHxQMzYyfFA2MDB8UDMwMHxQMzUwfFA1MDB8UDI3NSlcXGIiLEthcmJvbm5UYWJsZXQ6IkFuZHJvaWQuKlxcYihBMzl8QTM3fEEzNHxTVDh8U1QxMHxTVDd8U21hcnQgVGFiM3xTbWFydCBUYWIyKVxcYiIsQWxsRmluZVRhYmxldDoiRmluZTcgR2VuaXVzfEZpbmU3IFNoaW5lfEZpbmU3IEFpcnxGaW5lOCBTdHlsZXxGaW5lOSBNb3JlfEZpbmUxMCBKb3l8RmluZTExIFdpZGUiLFBST1NDQU5UYWJsZXQ6IlxcYihQRU02M3xQTFQxMDIzR3xQTFQxMDQxfFBMVDEwNDR8UExUMTA0NEd8UExUMTA5MXxQTFQ0MzExfFBMVDQzMTFQTHxQTFQ0MzE1fFBMVDcwMzB8UExUNzAzM3xQTFQ3MDMzRHxQTFQ3MDM1fFBMVDcwMzVEfFBMVDcwNDRLfFBMVDcwNDVLfFBMVDcwNDVLQnxQTFQ3MDcxS0d8UExUNzA3MnxQTFQ3MjIzR3xQTFQ3MjI1R3xQTFQ3Nzc3R3xQTFQ3ODEwS3xQTFQ3ODQ5R3xQTFQ3ODUxR3xQTFQ3ODUyR3xQTFQ4MDE1fFBMVDgwMzF8UExUODAzNHxQTFQ4MDM2fFBMVDgwODBLfFBMVDgwODJ8UExUODA4OHxQTFQ4MjIzR3xQTFQ4MjM0R3xQTFQ4MjM1R3xQTFQ4ODE2S3xQTFQ5MDExfFBMVDkwNDVLfFBMVDkyMzNHfFBMVDk3MzV8UExUOTc2MEd8UExUOTc3MEcpXFxiIixZT05FU1RhYmxldDoiQlExMDc4fEJDMTAwM3xCQzEwNzd8Uks5NzAyfEJDOTczMHxCQzkwMDF8SVQ5MDAxfEJDNzAwOHxCQzcwMTB8QkM3MDh8QkM3Mjh8QkM3MDEyfEJDNzAzMHxCQzcwMjd8QkM3MDI2IixDaGFuZ0ppYVRhYmxldDoiVFBDNzEwMnxUUEM3MTAzfFRQQzcxMDV8VFBDNzEwNnxUUEM3MTA3fFRQQzcyMDF8VFBDNzIwM3xUUEM3MjA1fFRQQzcyMTB8VFBDNzcwOHxUUEM3NzA5fFRQQzc3MTJ8VFBDNzExMHxUUEM4MTAxfFRQQzgxMDN8VFBDODEwNXxUUEM4MTA2fFRQQzgyMDN8VFBDODIwNXxUUEM4NTAzfFRQQzkxMDZ8VFBDOTcwMXxUUEM5NzEwMXxUUEM5NzEwM3xUUEM5NzEwNXxUUEM5NzEwNnxUUEM5NzExMXxUUEM5NzExM3xUUEM5NzIwM3xUUEM5NzYwM3xUUEM5NzgwOXxUUEM5NzIwNXxUUEMxMDEwMXxUUEMxMDEwM3xUUEMxMDEwNnxUUEMxMDExMXxUUEMxMDIwM3xUUEMxMDIwNXxUUEMxMDUwMyIsR1VUYWJsZXQ6IlRYLUExMzAxfFRYLU05MDAyfFE3MDJ8a2YwMjYiLFBvaW50T2ZWaWV3VGFibGV0OiJUQUItUDUwNnxUQUItbmF2aS03LTNHLU18VEFCLVA1MTd8VEFCLVAtNTI3fFRBQi1QNzAxfFRBQi1QNzAzfFRBQi1QNzIxfFRBQi1QNzMxTnxUQUItUDc0MXxUQUItUDgyNXxUQUItUDkwNXxUQUItUDkyNXxUQUItUFI5NDV8VEFCLVBMMTAxNXxUQUItUDEwMjV8VEFCLVBJMTA0NXxUQUItUDEzMjV8VEFCLVBST1RBQlswLTldK3xUQUItUFJPVEFCMjV8VEFCLVBST1RBQjI2fFRBQi1QUk9UQUIyN3xUQUItUFJPVEFCMjZYTHxUQUItUFJPVEFCMi1JUFM5fFRBQi1QUk9UQUIzMC1JUFM5fFRBQi1QUk9UQUIyNVhYTHxUQUItUFJPVEFCMjYtSVBTMTB8VEFCLVBST1RBQjMwLUlQUzEwIixPdmVybWF4VGFibGV0OiJPVi0oU3RlZWxDb3JlfE5ld0Jhc2V8QmFzZWNvcmV8QmFzZW9uZXxFeGVsbGVufFF1YXR0b3J8RWR1VGFifFNvbHV0aW9ufEFDVElPTnxCYXNpY1RhYnxUZWRkeVRhYnxNYWdpY1RhYnxTdHJlYW18VEItMDh8VEItMDkpfFF1YWxjb3JlIDEwMjciLEhDTFRhYmxldDoiSENMLipUYWJsZXR8Q29ubmVjdC0zRy0yLjB8Q29ubmVjdC0yRy0yLjB8TUUgVGFibGV0IFUxfE1FIFRhYmxldCBVMnxNRSBUYWJsZXQgRzF8TUUgVGFibGV0IFgxfE1FIFRhYmxldCBZMnxNRSBUYWJsZXQgU3luYyIsRFBTVGFibGV0OiJEUFMgRHJlYW0gOXxEUFMgRHVhbCA3IixWaXN0dXJlVGFibGV0OiJWOTcgSER8aTc1IDNHfFZpc3R1cmUgVjQoIEhEKT98VmlzdHVyZSBWNSggSEQpP3xWaXN0dXJlIFYxMCIsQ3Jlc3RhVGFibGV0OiJDVFAoLSk/ODEwfENUUCgtKT84MTh8Q1RQKC0pPzgyOHxDVFAoLSk/ODM4fENUUCgtKT84ODh8Q1RQKC0pPzk3OHxDVFAoLSk/OTgwfENUUCgtKT85ODd8Q1RQKC0pPzk4OHxDVFAoLSk/OTg5IixNZWRpYXRla1RhYmxldDoiXFxiTVQ4MTI1fE1UODM4OXxNVDgxMzV8TVQ4Mzc3XFxiIixDb25jb3JkZVRhYmxldDoiQ29uY29yZGUoWyBdKyk/VGFifENvbkNvcmRlIFJlYWRNYW4iLEdvQ2xldmVyVGFibGV0OiJHT0NMRVZFUiBUQUJ8QTdHT0NMRVZFUnxNMTA0MnxNNzg0MXxNNzQyfFIxMDQyQkt8UjEwNDF8VEFCIEE5NzV8VEFCIEE3ODQyfFRBQiBBNzQxfFRBQiBBNzQxTHxUQUIgTTcyM0d8VEFCIE03MjF8VEFCIEExMDIxfFRBQiBJOTIxfFRBQiBSNzIxfFRBQiBJNzIwfFRBQiBUNzZ8VEFCIFI3MHxUQUIgUjc2LjJ8VEFCIFIxMDZ8VEFCIFI4My4yfFRBQiBNODEzR3xUQUIgSTcyMXxHQ1RBNzIyfFRBQiBJNzB8VEFCIEk3MXxUQUIgUzczfFRBQiBSNzN8VEFCIFI3NHxUQUIgUjkzfFRBQiBSNzV8VEFCIFI3Ni4xfFRBQiBBNzN8VEFCIEE5M3xUQUIgQTkzLjJ8VEFCIFQ3MnxUQUIgUjgzfFRBQiBSOTc0fFRBQiBSOTczfFRBQiBBMTAxfFRBQiBBMTAzfFRBQiBBMTA0fFRBQiBBMTA0LjJ8UjEwNUJLfE03MTNHfEE5NzJCS3xUQUIgQTk3MXxUQUIgUjk3NC4yfFRBQiBSMTA0fFRBQiBSODMuM3xUQUIgQTEwNDIiLE1vZGVjb21UYWJsZXQ6IkZyZWVUQUIgOTAwMHxGcmVlVEFCIDcuNHxGcmVlVEFCIDcwMDR8RnJlZVRBQiA3ODAwfEZyZWVUQUIgMjA5NnxGcmVlVEFCIDcuNXxGcmVlVEFCIDEwMTR8RnJlZVRBQiAxMDAxIHxGcmVlVEFCIDgwMDF8RnJlZVRBQiA5NzA2fEZyZWVUQUIgOTcwMnxGcmVlVEFCIDcwMDN8RnJlZVRBQiA3MDAyfEZyZWVUQUIgMTAwMnxGcmVlVEFCIDc4MDF8RnJlZVRBQiAxMzMxfEZyZWVUQUIgMTAwNHxGcmVlVEFCIDgwMDJ8RnJlZVRBQiA4MDE0fEZyZWVUQUIgOTcwNHxGcmVlVEFCIDEwMDMiLFZvbmlub1RhYmxldDoiXFxiKEFyZ3VzWyBfXT9TfERpYW1vbmRbIF9dPzc5SER8RW1lcmFsZFsgX10/NzhFfEx1bmFbIF9dPzcwQ3xPbnl4WyBfXT9TfE9ueXhbIF9dP1p8T3JpblsgX10/SER8T3JpblsgX10/U3xPdGlzWyBfXT9TfFNwZWVkU3RhclsgX10/U3xNYWduZXRbIF9dP005fFByaW11c1sgX10/OTRbIF9dPzNHfFByaW11c1sgX10/OTRIRHxQcmltdXNbIF9dP1FTfEFuZHJvaWQuKlxcYlE4XFxifFNpcml1c1sgX10/RVZPWyBfXT9RU3xTaXJpdXNbIF9dP1FTfFNwaXJpdFsgX10/UylcXGIiLEVDU1RhYmxldDoiVjA3T1QyfFRNMTA1QXxTMTBPVDF8VFIxMENTMSIsU3RvcmV4VGFibGV0OiJlWmVlW18nXT8oVGFifEdvKVswLTldK3xUYWJMQzd8TG9vbmV5IFR1bmVzIFRhYiIsVm9kYWZvbmVUYWJsZXQ6IlNtYXJ0VGFiKFsgXSspP1swLTldK3xTbWFydFRhYklJMTB8U21hcnRUYWJJSTd8VkYtMTQ5N3xWRkQgMTQwMCIsRXNzZW50aWVsQlRhYmxldDoiU21hcnRbICddP1RBQlsgXSs/WzAtOV0rfEZhbWlseVsgJ10/VEFCMiIsUm9zc01vb3JUYWJsZXQ6IlJNLTc5MHxSTS05OTd8Uk1ELTg3OEd8Uk1ELTk3NFJ8Uk1ULTcwNUF8Uk1ULTcwMXxSTUUtNjAxfFJNVC01MDF8Uk1ULTcxMSIsaU1vYmlsZVRhYmxldDoiaS1tb2JpbGUgaS1ub3RlIixUb2xpbm9UYWJsZXQ6InRvbGlubyB0YWIgWzAtOS5dK3x0b2xpbm8gc2hpbmUiLEF1ZGlvU29uaWNUYWJsZXQ6IlxcYkMtMjJRfFQ3LVFDfFQtMTdCfFQtMTdQXFxiIixBTVBFVGFibGV0OiJBbmRyb2lkLiogQTc4ICIsU2trVGFibGV0OiJBbmRyb2lkLiogKFNLWVBBRHxQSE9FTklYfENZQ0xPUFMpIixUZWNub1RhYmxldDoiVEVDTk8gUDl8VEVDTk8gRFA4RCIsSlhEVGFibGV0OiJBbmRyb2lkLiogXFxiKEYzMDAwfEEzMzAwfEpYRDUwMDB8SlhEMzAwMHxKWEQyMDAwfEpYRDMwMEJ8SlhEMzAwfFM1ODAwfFM3ODAwfFM2MDJifFM1MTEwYnxTNzMwMHxTNTMwMHxTNjAyfFM2MDN8UzUxMDB8UzUxMTB8UzYwMXxTNzEwMGF8UDMwMDBGfFAzMDAwc3xQMTAxfFAyMDBzfFAxMDAwbXxQMjAwbXxQOTEwMHxQMTAwMHN8UzY2MDBifFM5MDh8UDEwMDB8UDMwMHxTMTh8UzY2MDB8UzkxMDApXFxiIixpSm95VGFibGV0OiJUYWJsZXQgKFNwaXJpdCA3fEVzc2VudGlhfEdhbGF0ZWF8RnVzaW9ufE9uaXggN3xMYW5kYXxUaXRhbnxTY29vYnl8RGVveHxTdGVsbGF8VGhlbWlzfEFyZ29ufFVuaXF1ZSA3fFN5Z251c3xIZXhlbnxGaW5pdHkgN3xDcmVhbXxDcmVhbSBYMnxKYWRlfE5lb24gN3xOZXJvbiA3fEthbmR5fFNjYXBlfFNhcGh5ciA3fFJlYmVsfEJpb3h8UmViZWx8UmViZWwgOEdCfE15c3R8RHJhY28gN3xNeXN0fFRhYjctMDA0fE15c3R8VGFkZW8gSm9uZXN8VGFibGV0IEJvaW5nfEFycm93fERyYWNvIER1YWwgQ2FtfEF1cml4fE1pbnR8QW1pdHl8UmV2b2x1dGlvbnxGaW5pdHkgOXxOZW9uIDl8VDl3fEFtaXR5IDRHQiBEdWFsIENhbXxTdG9uZSA0R0J8U3RvbmUgOEdCfEFuZHJvbWVkYXxTaWxrZW58WDJ8QW5kcm9tZWRhIElJfEhhbGxleXxGbGFtZXxTYXBoeXIgOSw3fFRvdWNoIDh8UGxhbmV0fFRyaXRvbnxVbmlxdWUgMTB8SGV4ZW4gMTB8TWVtcGhpcyA0R0J8TWVtcGhpcyA4R0J8T25peCAxMCkiLEZYMlRhYmxldDoiRlgyIFBBRDd8RlgyIFBBRDEwIixYb3JvVGFibGV0OiJLaWRzUEFEIDcwMXxQQURbIF0/NzEyfFBBRFsgXT83MTR8UEFEWyBdPzcxNnxQQURbIF0/NzE3fFBBRFsgXT83MTh8UEFEWyBdPzcyMHxQQURbIF0/NzIxfFBBRFsgXT83MjJ8UEFEWyBdPzc5MHxQQURbIF0/NzkyfFBBRFsgXT85MDB8UEFEWyBdPzk3MTVEfFBBRFsgXT85NzE2RFJ8UEFEWyBdPzk3MThEUnxQQURbIF0/OTcxOVFSfFBBRFsgXT85NzIwUVJ8VGVsZVBBRDEwMzB8VGVsZXBhZDEwMzJ8VGVsZVBBRDczMHxUZWxlUEFENzMxfFRlbGVQQUQ3MzJ8VGVsZVBBRDczNVF8VGVsZVBBRDgzMHxUZWxlUEFEOTczMHxUZWxlUEFENzk1fE1lZ2FQQUQgMTMzMXxNZWdhUEFEIDE4NTF8TWVnYVBBRCAyMTUxIixWaWV3c29uaWNUYWJsZXQ6IlZpZXdQYWQgMTBwaXxWaWV3UGFkIDEwZXxWaWV3UGFkIDEwc3xWaWV3UGFkIEU3MnxWaWV3UGFkN3xWaWV3UGFkIEUxMDB8Vmlld1BhZCA3ZXxWaWV3U29uaWMgVkI3MzN8VkIxMDBhIixWZXJpem9uVGFibGV0OiJRVEFRWjN8UVRBSVI3fFFUQVFUWjN8UVRBU1VOMXxRVEFTVU4yfFFUQVhJQTEiLE9keXNUYWJsZXQ6IkxPT1h8WEVOTzEwfE9EWVNbIC1dKFNwYWNlfEVWT3xYcHJlc3N8Tk9PTil8XFxiWEVMSU9cXGJ8WGVsaW8xMFByb3xYRUxJTzdQSE9ORVRBQnxYRUxJTzEwRVhUUkVNRXxYRUxJT1BUMnxORU9fUVVBRDEwIixDYXB0aXZhVGFibGV0OiJDQVBUSVZBIFBBRCIsSWNvbmJpdFRhYmxldDoiTmV0VEFCfE5ULTM3MDJ8TlQtMzcwMlN8TlQtMzcwMlN8TlQtMzYwM1B8TlQtMzYwM1B8TlQtMDcwNFN8TlQtMDcwNFN8TlQtMzgwNUN8TlQtMzgwNUN8TlQtMDgwNkN8TlQtMDgwNkN8TlQtMDkwOVR8TlQtMDkwOVR8TlQtMDkwN1N8TlQtMDkwN1N8TlQtMDkwMlN8TlQtMDkwMlMiLFRlY2xhc3RUYWJsZXQ6IlQ5OCA0R3xcXGJQODBcXGJ8XFxiWDkwSERcXGJ8WDk4IEFpcnxYOTggQWlyIDNHfFxcYlg4OVxcYnxQODAgM0d8XFxiWDgwaFxcYnxQOTggQWlyfFxcYlg4OUhEXFxifFA5OCAzR3xcXGJQOTBIRFxcYnxQODkgM0d8WDk4IDNHfFxcYlA3MGhcXGJ8UDc5SEQgM0d8RzE4ZCAzR3xcXGJQNzlIRFxcYnxcXGJQODlzXFxifFxcYkE4OFxcYnxcXGJQMTBIRFxcYnxcXGJQMTlIRFxcYnxHMTggM0d8XFxiUDc4SERcXGJ8XFxiQTc4XFxifFxcYlA3NVxcYnxHMTdzIDNHfEcxN2ggM0d8XFxiUDg1dFxcYnxcXGJQOTBcXGJ8XFxiUDExXFxifFxcYlA5OHRcXGJ8XFxiUDk4SERcXGJ8XFxiRzE4ZFxcYnxcXGJQODVzXFxifFxcYlAxMUhEXFxifFxcYlA4OHNcXGJ8XFxiQTgwSERcXGJ8XFxiQTgwc2VcXGJ8XFxiQTEwaFxcYnxcXGJQODlcXGJ8XFxiUDc4c1xcYnxcXGJHMThcXGJ8XFxiUDg1XFxifFxcYkE3MGhcXGJ8XFxiQTcwXFxifFxcYkcxN1xcYnxcXGJQMThcXGJ8XFxiQTgwc1xcYnxcXGJBMTFzXFxifFxcYlA4OEhEXFxifFxcYkE4MGhcXGJ8XFxiUDc2c1xcYnxcXGJQNzZoXFxifFxcYlA5OFxcYnxcXGJBMTBIRFxcYnxcXGJQNzhcXGJ8XFxiUDg4XFxifFxcYkExMVxcYnxcXGJBMTB0XFxifFxcYlA3NmFcXGJ8XFxiUDc2dFxcYnxcXGJQNzZlXFxifFxcYlA4NUhEXFxifFxcYlA4NWFcXGJ8XFxiUDg2XFxifFxcYlA3NUhEXFxifFxcYlA3NnZcXGJ8XFxiQTEyXFxifFxcYlA3NWFcXGJ8XFxiQTE1XFxifFxcYlA3NlRpXFxifFxcYlA4MUhEXFxifFxcYkExMFxcYnxcXGJUNzYwVkVcXGJ8XFxiVDcyMEhEXFxifFxcYlA3NlxcYnxcXGJQNzNcXGJ8XFxiUDcxXFxifFxcYlA3MlxcYnxcXGJUNzIwU0VcXGJ8XFxiQzUyMFRpXFxifFxcYlQ3NjBcXGJ8XFxiVDcyMFZFXFxifFQ3MjAtM0dFfFQ3MjAtV2lGaSIsT25kYVRhYmxldDoiXFxiKFY5NzVpfFZpMzB8Vlg1MzB8VjcwMXxWaTYwfFY3MDFzfFZpNTB8VjgwMXN8VjcxOXxWeDYxMHd8Vlg2MTBXfFY4MTlpfFZpMTB8Vlg1ODBXfFZpMTB8VjcxMXN8VjgxM3xWODExfFY4MjB3fFY4MjB8VmkyMHxWNzExfFZJMzBXfFY3MTJ8Vjg5MXd8Vjk3MnxWODE5d3xWODIwd3xWaTYwfFY4MjB3fFY3MTF8VjgxM3N8VjgwMXxWODE5fFY5NzVzfFY4MDF8VjgxOXxWODE5fFY4MTh8VjgxMXxWNzEyfFY5NzVtfFYxMDF3fFY5NjF3fFY4MTJ8VjgxOHxWOTcxfFY5NzFzfFY5MTl8Vjk4OXxWMTE2d3xWMTAyd3xWOTczfFZpNDApXFxiW1xcc10rfFYxMCBcXGI0R1xcYiIsSmF5dGVjaFRhYmxldDoiVFBDLVBBNzYyIixCbGF1cHVua3RUYWJsZXQ6IkVuZGVhdm91ciA4MDBOR3xFbmRlYXZvdXIgMTAxMCIsRGlnbWFUYWJsZXQ6IlxcYihpRHgxMHxpRHg5fGlEeDh8aUR4N3xpRHhEN3xpRHhEOHxpRHNROHxpRHNRN3xpRHNROHxpRHNEMTB8aURuRDd8M1RTODA0SHxpRHNRMTF8aURqN3xpRHMxMClcXGIiLEV2b2xpb1RhYmxldDoiQVJJQV9NaW5pX3dpZml8QXJpYVsgX11NaW5pfEV2b2xpbyBYMTB8RXZvbGlvIFg3fEV2b2xpbyBYOHxcXGJFdm90YWJcXGJ8XFxiTmV1cmFcXGIiLExhdmFUYWJsZXQ6IlFQQUQgRTcwNHxcXGJJdm9yeVNcXGJ8RS1UQUIgSVZPUll8XFxiRS1UQUJcXGIiLEFvY1RhYmxldDoiTVcwODExfE1XMDgxMnxNVzA5MjJ8TVRLODM4MnxNVzEwMzF8TVcwODMxfE1XMDgyMXxNVzA5MzF8TVcwNzEyIixNcG1hblRhYmxldDoiTVAxMSBPQ1RBfE1QMTAgT0NUQXxNUFFDMTExNHxNUFFDMTAwNHxNUFFDOTk0fE1QUUM5NzR8TVBRQzk3M3xNUFFDODA0fE1QUUM3ODR8TVBRQzc4MHxcXGJNUEc3XFxifE1QRENHNzV8TVBEQ0c3MXxNUERDMTAwNnxNUDEwMURDfE1QREM5MDAwfE1QREM5MDV8TVBEQzcwNkhEfE1QREM3MDZ8TVBEQzcwNXxNUERDMTEwfE1QREMxMDB8TVBEQzk5fE1QREM5N3xNUERDODh8TVBEQzh8TVBEQzc3fE1QNzA5fE1JRDcwMXxNSUQ3MTF8TUlEMTcwfE1QREM3MDN8TVBRQzEwMTAiLENlbGtvblRhYmxldDoiQ1Q2OTV8Q1Q4ODh8Q1RbXFxzXT85MTB8Q1Q3IFRhYnxDVDkgVGFifENUMyBUYWJ8Q1QyIFRhYnxDVDEgVGFifEM4MjB8QzcyMHxcXGJDVC0xXFxiIixXb2xkZXJUYWJsZXQ6Im1pVGFiIFxcYihESUFNT05EfFNQQUNFfEJST09LTFlOfE5FT3xGTFl8TUFOSEFUVEFOfEZVTkt8RVZPTFVUSU9OfFNLWXxHT0NBUnxJUk9OfEdFTklVU3xQT1B8TUlOVHxFUFNJTE9OfEJST0FEV0FZfEpVTVB8SE9QfExFR0VORHxORVcgQUdFfExJTkV8QURWQU5DRXxGRUVMfEZPTExPV3xMSUtFfExJTkt8TElWRXxUSElOS3xGUkVFRE9NfENISUNBR098Q0xFVkVMQU5EfEJBTFRJTU9SRS1HSHxJT1dBfEJPU1RPTnxTRUFUVExFfFBIT0VOSVh8REFMTEFTfElOIDEwMXxNYXN0ZXJDaGVmKVxcYiIsTWVkaWFjb21UYWJsZXQ6Ik0tTVBJMTBDM0d8TS1TUDEwRUd8TS1TUDEwRUdQfE0tU1AxMEhYQUh8TS1TUDdIWEFIfE0tU1AxMEhYQkh8TS1TUDhIWEFIfE0tU1A4TVhBIixNaVRhYmxldDoiXFxiTUkgUEFEXFxifFxcYkhNIE5PVEUgMVdcXGIiLE5pYmlydVRhYmxldDoiTmliaXJ1IE0xfE5pYmlydSBKdXBpdGVyIE9uZSIsTmV4b1RhYmxldDoiTkVYTyBOT1ZBfE5FWE8gMTB8TkVYTyBBVklPfE5FWE8gRlJFRXxORVhPIEdPfE5FWE8gRVZPfE5FWE8gM0d8TkVYTyBTTUFSVHxORVhPIEtJRERPfE5FWE8gTU9CSSIsTGVhZGVyVGFibGV0OiJUQkxUMTBRfFRCTFQxMEl8VEJMLTEwV0RLQnxUQkwtMTBXREtCTzIwMTN8VEJMLVcyMzBWMnxUQkwtVzQ1MHxUQkwtVzUwMHxTVjU3MnxUQkxUN0l8VEJBLUFDNy04R3xUQkxUNzl8VEJMLThXMTZ8VEJMLTEwVzMyfFRCTC0xMFdLQnxUQkwtVzEwMCIsVWJpc2xhdGVUYWJsZXQ6IlViaVNsYXRlW1xcc10/N0MiLFBvY2tldEJvb2tUYWJsZXQ6IlBvY2tldGJvb2siLEtvY2Fzb1RhYmxldDoiXFxiKFRCLTEyMDcpXFxiIixIaXNlbnNlVGFibGV0OiJcXGIoRjUyODF8RTIzNzEpXFxiIixIdWRsOiJIdWRsIEhUN1MzfEh1ZGwgMiIsVGVsc3RyYVRhYmxldDoiVC1IdWIyIixHZW5lcmljVGFibGV0OiJBbmRyb2lkLipcXGI5N0RcXGJ8VGFibGV0KD8hLipQQyl8Qk5UVjI1MEF8TUlELVdDRE1BfExvZ2ljUEQgWm9vbTJ8XFxiQTdFQlxcYnxDYXROb3ZhOHxBMV8wN3xDVDcwNHxDVDEwMDJ8XFxiTTcyMVxcYnxyazMwc2RrfFxcYkVWT1RBQlxcYnxNNzU4QXxFVDkwNHxBTFVNSVVNMTB8U21hcnRmcmVuIFRhYnxFbmRlYXZvdXIgMTAxMHxUYWJsZXQtUEMtNHxUYWdpIFRhYnxcXGJNNnByb1xcYnxDVDEwMjBXfGFyYyAxMEhEfFxcYlRQNzUwXFxifFxcYlFUQVFaM1xcYnxXVlQxMDF8VE0xMDg4fEtUMTA3In0sb3NzOntBbmRyb2lkT1M6IkFuZHJvaWQiLEJsYWNrQmVycnlPUzoiYmxhY2tiZXJyeXxcXGJCQjEwXFxifHJpbSB0YWJsZXQgb3MiLFBhbG1PUzoiUGFsbU9TfGF2YW50Z298YmxhemVyfGVsYWluZXxoaXB0b3B8cGFsbXxwbHVja2VyfHhpaW5vIixTeW1iaWFuT1M6IlN5bWJpYW58U3ltYk9TfFNlcmllczYwfFNlcmllczQwfFNZQi1bMC05XSt8XFxiUzYwXFxiIixXaW5kb3dzTW9iaWxlT1M6IldpbmRvd3MgQ0UuKihQUEN8U21hcnRwaG9uZXxNb2JpbGV8WzAtOV17M314WzAtOV17M30pfFdpbmRvd3MgTW9iaWxlfFdpbmRvd3MgUGhvbmUgWzAtOS5dK3xXQ0U7IixXaW5kb3dzUGhvbmVPUzoiV2luZG93cyBQaG9uZSAxMC4wfFdpbmRvd3MgUGhvbmUgOC4xfFdpbmRvd3MgUGhvbmUgOC4wfFdpbmRvd3MgUGhvbmUgT1N8WEJMV1A3fFp1bmVXUDd8V2luZG93cyBOVCA2LlsyM107IEFSTTsiLGlPUzoiXFxiaVBob25lLipNb2JpbGV8XFxiaVBvZHxcXGJpUGFkfEFwcGxlQ29yZU1lZGlhIixpUGFkT1M6IkNQVSBPUyAxMyIsU2FpbGZpc2hPUzoiU2FpbGZpc2giLE1lZUdvT1M6Ik1lZUdvIixNYWVtb09TOiJNYWVtbyIsSmF2YU9TOiJKMk1FL3xcXGJNSURQXFxifFxcYkNMRENcXGIiLHdlYk9TOiJ3ZWJPU3xocHdPUyIsYmFkYU9TOiJcXGJCYWRhXFxiIixCUkVXT1M6IkJSRVcifSx1YXM6e0Nocm9tZToiXFxiQ3JNb1xcYnxDcmlPU3xBbmRyb2lkLipDaHJvbWUvWy4wLTldKiAoTW9iaWxlKT8iLERvbGZpbjoiXFxiRG9sZmluXFxiIixPcGVyYToiT3BlcmEuKk1pbml8T3BlcmEuKk1vYml8QW5kcm9pZC4qT3BlcmF8TW9iaWxlLipPUFIvWzAtOS5dKyR8Q29hc3QvWzAtOS5dKyIsU2t5ZmlyZToiU2t5ZmlyZSIsRWRnZToiXFxiRWRnaU9TXFxifE1vYmlsZSBTYWZhcmkvWy4wLTldKiBFZGdlIixJRToiSUVNb2JpbGV8TVNJRU1vYmlsZSIsRmlyZWZveDoiZmVubmVjfGZpcmVmb3guKm1hZW1vfChNb2JpbGV8VGFibGV0KS4qRmlyZWZveHxGaXJlZm94LipNb2JpbGV8RnhpT1MiLEJvbHQ6ImJvbHQiLFRlYVNoYXJrOiJ0ZWFzaGFyayIsQmxhemVyOiJCbGF6ZXIiLFNhZmFyaToiVmVyc2lvbigoPyFcXGJFZGdpT1NcXGIpLikqTW9iaWxlLipTYWZhcml8U2FmYXJpLipNb2JpbGV8TW9iaWxlU2FmYXJpIixXZUNoYXQ6IlxcYk1pY3JvTWVzc2VuZ2VyXFxiIixVQ0Jyb3dzZXI6IlVDLipCcm93c2VyfFVDV0VCIixiYWlkdWJveGFwcDoiYmFpZHVib3hhcHAiLGJhaWR1YnJvd3NlcjoiYmFpZHVicm93c2VyIixEaWlnb0Jyb3dzZXI6IkRpaWdvQnJvd3NlciIsTWVyY3VyeToiXFxiTWVyY3VyeVxcYiIsT2JpZ29Ccm93c2VyOiJPYmlnbyIsTmV0RnJvbnQ6Ik5GLUJyb3dzZXIiLEdlbmVyaWNCcm93c2VyOiJOb2tpYUJyb3dzZXJ8T3ZpQnJvd3NlcnxPbmVCcm93c2VyfFR3b25reUJlYW1Ccm93c2VyfFNFTUMuKkJyb3dzZXJ8Rmx5Rmxvd3xNaW5pbW98TmV0RnJvbnR8Tm92YXJyYS1WaXNpb258TVFRQnJvd3NlcnxNaWNyb01lc3NlbmdlciIsUGFsZU1vb246IkFuZHJvaWQuKlBhbGVNb29ufE1vYmlsZS4qUGFsZU1vb24ifSxwcm9wczp7TW9iaWxlOiJNb2JpbGUvW1ZFUl0iLEJ1aWxkOiJCdWlsZC9bVkVSXSIsVmVyc2lvbjoiVmVyc2lvbi9bVkVSXSIsVmVuZG9ySUQ6IlZlbmRvcklEL1tWRVJdIixpUGFkOiJpUGFkLipDUFVbYS16IF0rW1ZFUl0iLGlQaG9uZToiaVBob25lLipDUFVbYS16IF0rW1ZFUl0iLGlQb2Q6ImlQb2QuKkNQVVthLXogXStbVkVSXSIsS2luZGxlOiJLaW5kbGUvW1ZFUl0iLENocm9tZTpbIkNocm9tZS9bVkVSXSIsIkNyaU9TL1tWRVJdIiwiQ3JNby9bVkVSXSJdLENvYXN0OlsiQ29hc3QvW1ZFUl0iXSxEb2xmaW46IkRvbGZpbi9bVkVSXSIsRmlyZWZveDpbIkZpcmVmb3gvW1ZFUl0iLCJGeGlPUy9bVkVSXSJdLEZlbm5lYzoiRmVubmVjL1tWRVJdIixFZGdlOiJFZGdlL1tWRVJdIixJRTpbIklFTW9iaWxlL1tWRVJdOyIsIklFTW9iaWxlIFtWRVJdIiwiTVNJRSBbVkVSXTsiLCJUcmlkZW50L1swLTkuXSs7LipydjpbVkVSXSJdLE5ldEZyb250OiJOZXRGcm9udC9bVkVSXSIsTm9raWFCcm93c2VyOiJOb2tpYUJyb3dzZXIvW1ZFUl0iLE9wZXJhOlsiIE9QUi9bVkVSXSIsIk9wZXJhIE1pbmkvW1ZFUl0iLCJWZXJzaW9uL1tWRVJdIl0sIk9wZXJhIE1pbmkiOiJPcGVyYSBNaW5pL1tWRVJdIiwiT3BlcmEgTW9iaSI6IlZlcnNpb24vW1ZFUl0iLFVDQnJvd3NlcjpbIlVDV0VCW1ZFUl0iLCJVQy4qQnJvd3Nlci9bVkVSXSJdLE1RUUJyb3dzZXI6Ik1RUUJyb3dzZXIvW1ZFUl0iLE1pY3JvTWVzc2VuZ2VyOiJNaWNyb01lc3Nlbmdlci9bVkVSXSIsYmFpZHVib3hhcHA6ImJhaWR1Ym94YXBwL1tWRVJdIixiYWlkdWJyb3dzZXI6ImJhaWR1YnJvd3Nlci9bVkVSXSIsU2Ftc3VuZ0Jyb3dzZXI6IlNhbXN1bmdCcm93c2VyL1tWRVJdIixJcm9uOiJJcm9uL1tWRVJdIixTYWZhcmk6WyJWZXJzaW9uL1tWRVJdIiwiU2FmYXJpL1tWRVJdIl0sU2t5ZmlyZToiU2t5ZmlyZS9bVkVSXSIsVGl6ZW46IlRpemVuL1tWRVJdIixXZWJraXQ6IndlYmtpdFsgL11bVkVSXSIsUGFsZU1vb246IlBhbGVNb29uL1tWRVJdIixTYWlsZmlzaEJyb3dzZXI6IlNhaWxmaXNoQnJvd3Nlci9bVkVSXSIsR2Vja286IkdlY2tvL1tWRVJdIixUcmlkZW50OiJUcmlkZW50L1tWRVJdIixQcmVzdG86IlByZXN0by9bVkVSXSIsR29hbm5hOiJHb2FubmEvW1ZFUl0iLGlPUzoiIFxcYmk/T1NcXGIgW1ZFUl1bIDtdezF9IixBbmRyb2lkOiJBbmRyb2lkIFtWRVJdIixTYWlsZmlzaDoiU2FpbGZpc2ggW1ZFUl0iLEJsYWNrQmVycnk6WyJCbGFja0JlcnJ5W1xcd10rL1tWRVJdIiwiQmxhY2tCZXJyeS4qVmVyc2lvbi9bVkVSXSIsIlZlcnNpb24vW1ZFUl0iXSxCUkVXOiJCUkVXIFtWRVJdIixKYXZhOiJKYXZhL1tWRVJdIiwiV2luZG93cyBQaG9uZSBPUyI6WyJXaW5kb3dzIFBob25lIE9TIFtWRVJdIiwiV2luZG93cyBQaG9uZSBbVkVSXSJdLCJXaW5kb3dzIFBob25lIjoiV2luZG93cyBQaG9uZSBbVkVSXSIsIldpbmRvd3MgQ0UiOiJXaW5kb3dzIENFL1tWRVJdIiwiV2luZG93cyBOVCI6IldpbmRvd3MgTlQgW1ZFUl0iLFN5bWJpYW46WyJTeW1iaWFuT1MvW1ZFUl0iLCJTeW1iaWFuL1tWRVJdIl0sd2ViT1M6WyJ3ZWJPUy9bVkVSXSIsImhwd09TL1tWRVJdOyJdfSx1dGlsczp7Qm90OiJHb29nbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxHb29nbGUtQU1QSFRNTHxzfmFtcC12YWxpZGF0b3J8QWRzQm90LUdvb2dsZXxHb29nbGUgS2V5d29yZCBTdWdnZXN0aW9ufEZhY2Vib3R8WWFuZGV4Qm90fFlhbmRleE1vYmlsZUJvdHxiaW5nYm90fGlhX2FyY2hpdmVyfEFocmVmc0JvdHxFem9vbXN8R1NMRmJvdHxXQlNlYXJjaEJvdHxUd2l0dGVyYm90fFR3ZWV0bWVtZUJvdHxUd2lrbGV8UGFwZXJMaUJvdHxXb3Rib3h8VW53aW5kRmV0Y2hvcnxFeGFib3R8TUoxMmJvdHxZYW5kZXhJbWFnZXN8VHVybml0aW5Cb3R8UGluZ2RvbXxjb250ZW50a2luZ2FwcHxBc3BpZWdlbEJvdCIsTW9iaWxlQm90OiJHb29nbGVib3QtTW9iaWxlfEFkc0JvdC1Hb29nbGUtTW9iaWxlfFlhaG9vU2Vla2VyL00xQTEtUjJEMiIsRGVza3RvcE1vZGU6IldQRGVza3RvcCIsVFY6IlNvbnlEVFZ8SGJiVFYiLFdlYktpdDoiKHdlYmtpdClbIC9dKFtcXHcuXSspIixDb25zb2xlOiJcXGIoTmludGVuZG98TmludGVuZG8gV2lpVXxOaW50ZW5kbyAzRFN8TmludGVuZG8gU3dpdGNofFBMQVlTVEFUSU9OfFhib3gpXFxiIixXYXRjaDoiU00tVjcwMCJ9fSxnLmRldGVjdE1vYmlsZUJyb3dzZXJzPXtmdWxsUGF0dGVybjovKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm8vaSxzaG9ydFBhdHRlcm46LzEyMDd8NjMxMHw2NTkwfDNnc298NHRocHw1MFsxLTZdaXw3NzBzfDgwMnN8YSB3YXxhYmFjfGFjKGVyfG9vfHNcLSl8YWkoa298cm4pfGFsKGF2fGNhfGNvKXxhbW9pfGFuKGV4fG55fHl3KXxhcHR1fGFyKGNofGdvKXxhcyh0ZXx1cyl8YXR0d3xhdShkaXxcLW18ciB8cyApfGF2YW58YmUoY2t8bGx8bnEpfGJpKGxifHJkKXxibChhY3xheil8YnIoZXx2KXd8YnVtYnxid1wtKG58dSl8YzU1XC98Y2FwaXxjY3dhfGNkbVwtfGNlbGx8Y2h0bXxjbGRjfGNtZFwtfGNvKG1wfG5kKXxjcmF3fGRhKGl0fGxsfG5nKXxkYnRlfGRjXC1zfGRldml8ZGljYXxkbW9ifGRvKGN8cClvfGRzKDEyfFwtZCl8ZWwoNDl8YWkpfGVtKGwyfHVsKXxlcihpY3xrMCl8ZXNsOHxleihbNC03XTB8b3N8d2F8emUpfGZldGN8Zmx5KFwtfF8pfGcxIHV8ZzU2MHxnZW5lfGdmXC01fGdcLW1vfGdvKFwud3xvZCl8Z3IoYWR8dW4pfGhhaWV8aGNpdHxoZFwtKG18cHx0KXxoZWlcLXxoaShwdHx0YSl8aHAoIGl8aXApfGhzXC1jfGh0KGMoXC18IHxffGF8Z3xwfHN8dCl8dHApfGh1KGF3fHRjKXxpXC0oMjB8Z298bWEpfGkyMzB8aWFjKCB8XC18XC8pfGlicm98aWRlYXxpZzAxfGlrb218aW0xa3xpbm5vfGlwYXF8aXJpc3xqYSh0fHYpYXxqYnJvfGplbXV8amlnc3xrZGRpfGtlaml8a2d0KCB8XC8pfGtsb258a3B0IHxrd2NcLXxreW8oY3xrKXxsZShub3x4aSl8bGcoIGd8XC8oa3xsfHUpfDUwfDU0fFwtW2Etd10pfGxpYnd8bHlueHxtMVwtd3xtM2dhfG01MFwvfG1hKHRlfHVpfHhvKXxtYygwMXwyMXxjYSl8bVwtY3J8bWUocmN8cmkpfG1pKG84fG9hfHRzKXxtbWVmfG1vKDAxfDAyfGJpfGRlfGRvfHQoXC18IHxvfHYpfHp6KXxtdCg1MHxwMXx2ICl8bXdicHxteXdhfG4xMFswLTJdfG4yMFsyLTNdfG4zMCgwfDIpfG41MCgwfDJ8NSl8bjcoMCgwfDEpfDEwKXxuZSgoY3xtKVwtfG9ufHRmfHdmfHdnfHd0KXxub2soNnxpKXxuenBofG8yaW18b3AodGl8d3YpfG9yYW58b3dnMXxwODAwfHBhbihhfGR8dCl8cGR4Z3xwZygxM3xcLShbMS04XXxjKSl8cGhpbHxwaXJlfHBsKGF5fHVjKXxwblwtMnxwbyhja3xydHxzZSl8cHJveHxwc2lvfHB0XC1nfHFhXC1hfHFjKDA3fDEyfDIxfDMyfDYwfFwtWzItN118aVwtKXxxdGVrfHIzODB8cjYwMHxyYWtzfHJpbTl8cm8odmV8em8pfHM1NVwvfHNhKGdlfG1hfG1tfG1zfG55fHZhKXxzYygwMXxoXC18b298cFwtKXxzZGtcL3xzZShjKFwtfDB8MSl8NDd8bWN8bmR8cmkpfHNnaFwtfHNoYXJ8c2llKFwtfG0pfHNrXC0wfHNsKDQ1fGlkKXxzbShhbHxhcnxiM3xpdHx0NSl8c28oZnR8bnkpfHNwKDAxfGhcLXx2XC18diApfHN5KDAxfG1iKXx0MigxOHw1MCl8dDYoMDB8MTB8MTgpfHRhKGd0fGxrKXx0Y2xcLXx0ZGdcLXx0ZWwoaXxtKXx0aW1cLXx0XC1tb3x0byhwbHxzaCl8dHMoNzB8bVwtfG0zfG01KXx0eFwtOXx1cChcLmJ8ZzF8c2kpfHV0c3R8djQwMHx2NzUwfHZlcml8dmkocmd8dGUpfHZrKDQwfDVbMC0zXXxcLXYpfHZtNDB8dm9kYXx2dWxjfHZ4KDUyfDUzfDYwfDYxfDcwfDgwfDgxfDgzfDg1fDk4KXx3M2MoXC18ICl8d2ViY3x3aGl0fHdpKGcgfG5jfG53KXx3bWxifHdvbnV8eDcwMHx5YXNcLXx5b3VyfHpldG98enRlXC0vaSx0YWJsZXRQYXR0ZXJuOi9hbmRyb2lkfGlwYWR8cGxheWJvb2t8c2lsay9pfTt2YXIgaCxpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7cmV0dXJuIGcuRkFMTEJBQ0tfUEhPTkU9IlVua25vd25QaG9uZSIsZy5GQUxMQkFDS19UQUJMRVQ9IlVua25vd25UYWJsZXQiLGcuRkFMTEJBQ0tfTU9CSUxFPSJVbmtub3duTW9iaWxlIixoPSJpc0FycmF5ImluIEFycmF5P0FycmF5LmlzQXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX0sZnVuY3Rpb24oKXt2YXIgYSxiLGMsZSxmLGosaz1nLm1vYmlsZURldGVjdFJ1bGVzO2ZvcihhIGluIGsucHJvcHMpaWYoaS5jYWxsKGsucHJvcHMsYSkpe2ZvcihiPWsucHJvcHNbYV0saChiKXx8KGI9W2JdKSxmPWIubGVuZ3RoLGU9MDtlPGY7KytlKWM9YltlXSxqPWMuaW5kZXhPZigiW1ZFUl0iKSxqPj0wJiYoYz1jLnN1YnN0cmluZygwLGopKyIoW1xcdy5fXFwrXSspIitjLnN1YnN0cmluZyhqKzUpKSxiW2VdPW5ldyBSZWdFeHAoYywiaSIpO2sucHJvcHNbYV09Yn1kKGsub3NzKSxkKGsucGhvbmVzKSxkKGsudGFibGV0cyksZChrLnVhcyksZChrLnV0aWxzKSxrLm9zczA9e1dpbmRvd3NQaG9uZU9TOmsub3NzLldpbmRvd3NQaG9uZU9TLFdpbmRvd3NNb2JpbGVPUzprLm9zcy5XaW5kb3dzTW9iaWxlT1N9fSgpLGcuZmluZE1hdGNoPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjIGluIGEpaWYoaS5jYWxsKGEsYykmJmFbY10udGVzdChiKSlyZXR1cm4gYztyZXR1cm4gbnVsbH0sZy5maW5kTWF0Y2hlcz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2Zvcih2YXIgZCBpbiBhKWkuY2FsbChhLGQpJiZhW2RdLnRlc3QoYikmJmMucHVzaChkKTtyZXR1cm4gY30sZy5nZXRWZXJzaW9uU3RyPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGYsaD1nLm1vYmlsZURldGVjdFJ1bGVzLnByb3BzO2lmKGkuY2FsbChoLGEpKWZvcihjPWhbYV0sZT1jLmxlbmd0aCxkPTA7ZDxlOysrZClpZihmPWNbZF0uZXhlYyhiKSxudWxsIT09ZilyZXR1cm4gZlsxXTtyZXR1cm4gbnVsbH0sZy5nZXRWZXJzaW9uPWZ1bmN0aW9uKGEsYil7dmFyIGM9Zy5nZXRWZXJzaW9uU3RyKGEsYik7cmV0dXJuIGM/Zy5wcmVwYXJlVmVyc2lvbk5vKGMpOk5hTn0sZy5wcmVwYXJlVmVyc2lvbk5vPWZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWEuc3BsaXQoL1thLXouXyBcL1wtXS9pKSwxPT09Yi5sZW5ndGgmJihhPWJbMF0pLGIubGVuZ3RoPjEmJihhPWJbMF0rIi4iLGIuc2hpZnQoKSxhKz1iLmpvaW4oIiIpKSxOdW1iZXIoYSl9LGcuaXNNb2JpbGVGYWxsYmFjaz1mdW5jdGlvbihhKXtyZXR1cm4gZy5kZXRlY3RNb2JpbGVCcm93c2Vycy5mdWxsUGF0dGVybi50ZXN0KGEpfHxnLmRldGVjdE1vYmlsZUJyb3dzZXJzLnNob3J0UGF0dGVybi50ZXN0KGEuc3Vic3RyKDAsNCkpfSxnLmlzVGFibGV0RmFsbGJhY2s9ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZGV0ZWN0TW9iaWxlQnJvd3NlcnMudGFibGV0UGF0dGVybi50ZXN0KGEpfSxnLnByZXBhcmVEZXRlY3Rpb25DYWNoZT1mdW5jdGlvbihhLGMsZCl7aWYoYS5tb2JpbGU9PT1iKXt2YXIgZSxoLGk7cmV0dXJuKGg9Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy50YWJsZXRzLGMpKT8oYS5tb2JpbGU9YS50YWJsZXQ9aCx2b2lkKGEucGhvbmU9bnVsbCkpOihlPWcuZmluZE1hdGNoKGcubW9iaWxlRGV0ZWN0UnVsZXMucGhvbmVzLGMpKT8oYS5tb2JpbGU9YS5waG9uZT1lLHZvaWQoYS50YWJsZXQ9bnVsbCkpOnZvaWQoZy5pc01vYmlsZUZhbGxiYWNrKGMpPyhpPWYuaXNQaG9uZVNpemVkKGQpLGk9PT1iPyhhLm1vYmlsZT1nLkZBTExCQUNLX01PQklMRSxhLnRhYmxldD1hLnBob25lPW51bGwpOmk/KGEubW9iaWxlPWEucGhvbmU9Zy5GQUxMQkFDS19QSE9ORSxhLnRhYmxldD1udWxsKTooYS5tb2JpbGU9YS50YWJsZXQ9Zy5GQUxMQkFDS19UQUJMRVQsYS5waG9uZT1udWxsKSk6Zy5pc1RhYmxldEZhbGxiYWNrKGMpPyhhLm1vYmlsZT1hLnRhYmxldD1nLkZBTExCQUNLX1RBQkxFVCxhLnBob25lPW51bGwpOmEubW9iaWxlPWEudGFibGV0PWEucGhvbmU9bnVsbCl9fSxnLm1vYmlsZUdyYWRlPWZ1bmN0aW9uKGEpe3ZhciBiPW51bGwhPT1hLm1vYmlsZSgpO3JldHVybiBhLm9zKCJpT1MiKSYmYS52ZXJzaW9uKCJpUGFkIik+PTQuM3x8YS5vcygiaU9TIikmJmEudmVyc2lvbigiaVBob25lIik+PTMuMXx8YS5vcygiaU9TIikmJmEudmVyc2lvbigiaVBvZCIpPj0zLjF8fGEudmVyc2lvbigiQW5kcm9pZCIpPjIuMSYmYS5pcygiV2Via2l0Iil8fGEudmVyc2lvbigiV2luZG93cyBQaG9uZSBPUyIpPj03fHxhLmlzKCJCbGFja0JlcnJ5IikmJmEudmVyc2lvbigiQmxhY2tCZXJyeSIpPj02fHxhLm1hdGNoKCJQbGF5Ym9vay4qVGFibGV0Iil8fGEudmVyc2lvbigid2ViT1MiKT49MS40JiZhLm1hdGNoKCJQYWxtfFByZXxQaXhpIil8fGEubWF0Y2goImhwLipUb3VjaFBhZCIpfHxhLmlzKCJGaXJlZm94IikmJmEudmVyc2lvbigiRmlyZWZveCIpPj0xMnx8YS5pcygiQ2hyb21lIikmJmEuaXMoIkFuZHJvaWRPUyIpJiZhLnZlcnNpb24oIkFuZHJvaWQiKT49NHx8YS5pcygiU2t5ZmlyZSIpJiZhLnZlcnNpb24oIlNreWZpcmUiKT49NC4xJiZhLmlzKCJBbmRyb2lkT1MiKSYmYS52ZXJzaW9uKCJBbmRyb2lkIik+PTIuM3x8YS5pcygiT3BlcmEiKSYmYS52ZXJzaW9uKCJPcGVyYSBNb2JpIik+MTEmJmEuaXMoIkFuZHJvaWRPUyIpfHxhLmlzKCJNZWVHb09TIil8fGEuaXMoIlRpemVuIil8fGEuaXMoIkRvbGZpbiIpJiZhLnZlcnNpb24oIkJhZGEiKT49Mnx8KGEuaXMoIlVDIEJyb3dzZXIiKXx8YS5pcygiRG9sZmluIikpJiZhLnZlcnNpb24oIkFuZHJvaWQiKT49Mi4zfHxhLm1hdGNoKCJLaW5kbGUgRmlyZSIpfHxhLmlzKCJLaW5kbGUiKSYmYS52ZXJzaW9uKCJLaW5kbGUiKT49M3x8YS5pcygiQW5kcm9pZE9TIikmJmEuaXMoIk5vb2tUYWJsZXQiKXx8YS52ZXJzaW9uKCJDaHJvbWUiKT49MTEmJiFifHxhLnZlcnNpb24oIlNhZmFyaSIpPj01JiYhYnx8YS52ZXJzaW9uKCJGaXJlZm94Iik+PTQmJiFifHxhLnZlcnNpb24oIk1TSUUiKT49NyYmIWJ8fGEudmVyc2lvbigiT3BlcmEiKT49MTAmJiFiPyJBIjphLm9zKCJpT1MiKSYmYS52ZXJzaW9uKCJpUGFkIik8NC4zfHxhLm9zKCJpT1MiKSYmYS52ZXJzaW9uKCJpUGhvbmUiKTwzLjF8fGEub3MoImlPUyIpJiZhLnZlcnNpb24oImlQb2QiKTwzLjF8fGEuaXMoIkJsYWNrYmVycnkiKSYmYS52ZXJzaW9uKCJCbGFja0JlcnJ5Iik+PTUmJmEudmVyc2lvbigiQmxhY2tCZXJyeSIpPDZ8fGEudmVyc2lvbigiT3BlcmEgTWluaSIpPj01JiZhLnZlcnNpb24oIk9wZXJhIE1pbmkiKTw9Ni41JiYoYS52ZXJzaW9uKCJBbmRyb2lkIik+PTIuM3x8YS5pcygiaU9TIikpfHxhLm1hdGNoKCJOb2tpYU44fE5va2lhQzd8Tjk3LipTZXJpZXM2MHxTeW1iaWFuLzMiKXx8YS52ZXJzaW9uKCJPcGVyYSBNb2JpIik+PTExJiZhLmlzKCJTeW1iaWFuT1MiKT8iQiI6KGEudmVyc2lvbigiQmxhY2tCZXJyeSIpPDV8fGEubWF0Y2goIk1TSUVNb2JpbGV8V2luZG93cyBDRS4qTW9iaWxlIil8fGEudmVyc2lvbigiV2luZG93cyBNb2JpbGUiKTw9NS4yLCJDIil9LGcuZGV0ZWN0T1M9ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZmluZE1hdGNoKGcubW9iaWxlRGV0ZWN0UnVsZXMub3NzMCxhKXx8Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy5vc3MsYSl9LGcuZ2V0RGV2aWNlU21hbGxlclNpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnNjcmVlbi53aWR0aDx3aW5kb3cuc2NyZWVuLmhlaWdodD93aW5kb3cuc2NyZWVuLndpZHRoOndpbmRvdy5zY3JlZW4uaGVpZ2h0fSxmLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Zixtb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLm1vYmlsZX0scGhvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLnBob25lfSx0YWJsZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLnRhYmxldH0sdXNlckFnZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhY2hlLnVzZXJBZ2VudD09PWImJih0aGlzLl9jYWNoZS51c2VyQWdlbnQ9Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy51YXMsdGhpcy51YSkpLHRoaXMuX2NhY2hlLnVzZXJBZ2VudH0sdXNlckFnZW50czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWNoZS51c2VyQWdlbnRzPT09YiYmKHRoaXMuX2NhY2hlLnVzZXJBZ2VudHM9Zy5maW5kTWF0Y2hlcyhnLm1vYmlsZURldGVjdFJ1bGVzLnVhcyx0aGlzLnVhKSksdGhpcy5fY2FjaGUudXNlckFnZW50c30sb3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FjaGUub3M9PT1iJiYodGhpcy5fY2FjaGUub3M9Zy5kZXRlY3RPUyh0aGlzLnVhKSksdGhpcy5fY2FjaGUub3N9LHZlcnNpb246ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZ2V0VmVyc2lvbihhLHRoaXMudWEpfSx2ZXJzaW9uU3RyOmZ1bmN0aW9uKGEpe3JldHVybiBnLmdldFZlcnNpb25TdHIoYSx0aGlzLnVhKX0saXM6ZnVuY3Rpb24oYil7cmV0dXJuIGModGhpcy51c2VyQWdlbnRzKCksYil8fGEoYix0aGlzLm9zKCkpfHxhKGIsdGhpcy5waG9uZSgpKXx8YShiLHRoaXMudGFibGV0KCkpfHxjKGcuZmluZE1hdGNoZXMoZy5tb2JpbGVEZXRlY3RSdWxlcy51dGlscyx0aGlzLnVhKSxiKX0sbWF0Y2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBSZWdFeHB8fChhPW5ldyBSZWdFeHAoYSwiaSIpKSxhLnRlc3QodGhpcy51YSl9LGlzUGhvbmVTaXplZDpmdW5jdGlvbihhKXtyZXR1cm4gZi5pc1Bob25lU2l6ZWQoYXx8dGhpcy5tYXhQaG9uZVdpZHRoKX0sbW9iaWxlR3JhZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FjaGUuZ3JhZGU9PT1iJiYodGhpcy5fY2FjaGUuZ3JhZGU9Zy5tb2JpbGVHcmFkZSh0aGlzKSksdGhpcy5fY2FjaGUuZ3JhZGV9fSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LnNjcmVlbj9mLmlzUGhvbmVTaXplZD1mdW5jdGlvbihhKXtyZXR1cm4gYTwwP2I6Zy5nZXREZXZpY2VTbWFsbGVyU2lkZSgpPD1hfTpmLmlzUGhvbmVTaXplZD1mdW5jdGlvbigpe30sZi5faW1wbD1nLGYudmVyc2lvbj0iMS40LjUgMjAyMS0wMy0xMyIsZn0pfShmdW5jdGlvbihhKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMpcmV0dXJuIGZ1bmN0aW9uKGEpe21vZHVsZS5leHBvcnRzPWEoKX07aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZClyZXR1cm4gZGVmaW5lO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXJldHVybiBmdW5jdGlvbihhKXt3aW5kb3cuTW9iaWxlRGV0ZWN0PWEoKX07dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGVudmlyb25tZW50Iil9KCkpO3ZhciBhaV9saXN0cz0hMCxhaV9ibG9ja19jbGFzc19kZWY9InVzcy1ibG9jayI7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhaV9saXN0cyl7ZnVuY3Rpb24gWChiLGUpe2Zvcih2YXIgcD1bXTtiPWIucHJldmlvdXNFbGVtZW50U2libGluZzspKCJ1bmRlZmluZWQiPT10eXBlb2YgZXx8Yi5tYXRjaGVzKGUpKSYmcC5wdXNoKGIpO3JldHVybiBwfWZ1bmN0aW9uIGZhKGIsZSl7Zm9yKHZhciBwPVtdO2I9Yi5uZXh0RWxlbWVudFNpYmxpbmc7KSgidW5kZWZpbmVkIj09dHlwZW9mIGV8fGIubWF0Y2hlcyhlKSkmJnAucHVzaChiKTtyZXR1cm4gcH12YXIgaG9zdF9yZWdleHA9UmVnRXhwKCI6XFwvXFwvKC5bXi86XSspIiwiaSIpO2Z1bmN0aW9uIGhhKGIpe2I9Yi5tYXRjaChob3N0X3JlZ2V4cCk7cmV0dXJuIG51bGwhPWImJjE8Yi5sZW5ndGgmJiJzdHJpbmciPT09dHlwZW9mIGJbMV0mJjA8YlsxXS5sZW5ndGg/YlsxXS50b0xvd2VyQ2FzZSgpOm51bGx9ZnVuY3Rpb24gUShiKXtyZXR1cm4gYi5pbmNsdWRlcygiOiIpPyhiPWIuc3BsaXQoIjoiKSwxRTMqKDM2MDAqcGFyc2VJbnQoYlswXSkrNjAqcGFyc2VJbnQoYlsxXSkrcGFyc2VJbnQoYlsyXSkpKTpudWxsfWZ1bmN0aW9uIFkoYil7dHJ5e3ZhciBlPURhdGUucGFyc2UoYik7aXNOYU4oZSkmJihlPW51bGwpfWNhdGNoKHApe2U9bnVsbH1pZihudWxsPT1lJiZiLmluY2x1ZGVzKCIgIikpe2I9Yi5zcGxpdCgiICIpO3RyeXtlPURhdGUucGFyc2UoYlswXSksZSs9UShiWzFdKSxpc05hTihlKSYmKGU9bnVsbCl9Y2F0Y2gocCl7ZT1udWxsfX1yZXR1cm4gZX1mdW5jdGlvbiBaKCl7bnVsbD09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2YtYmFyIikmJm51bGw9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5haS1saXN0LW1hbnVhbCIpfHwiZnVuY3Rpb24iIT10eXBlb2YgX190Y2ZhcGl8fCJmdW5jdGlvbiIhPXR5cGVvZiBhaV9sb2FkX2Jsb2Nrc3x8InVuZGVmaW5lZCIhPXR5cGVvZiBhaV9pYWJfdGNmX2NhbGxiYWNrX2luc3RhbGxlZHx8KF9fdGNmYXBpKCJhZGRFdmVudExpc3RlbmVyIiwyLGZ1bmN0aW9uKGIsZSl7ZSYmInVzZXJhY3Rpb25jb21wbGV0ZSI9PT1iLmV2ZW50U3RhdHVzJiYoYWlfdGNEYXRhPWIsYWlfbG9hZF9ibG9ja3MoKSxiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLXN0YXR1cyIpLG51bGwhPWImJihiLnRleHRDb250ZW50PSJJQUIgVENGIDIuMCBEQVRBIExPQURFRCIpLGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2YtYmFyIiksbnVsbCE9YiYmKGIuY2xhc3NMaXN0LnJlbW92ZSgic3RhdHVzLWVycm9yIiksYi5jbGFzc0xpc3QuYWRkKCJzdGF0dXMtb2siKSkpfSksYWlfaWFiX3RjZl9jYWxsYmFja19pbnN0YWxsZWQ9ITApfWFpX3Byb2Nlc3NfbGlzdHM9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZShhLGQsayl7aWYoMD09YS5sZW5ndGgpe2lmKCIhQCEiPT1rKXJldHVybiEwO2QhPWsmJigidHJ1ZSI9PWsudG9Mb3dlckNhc2UoKT9rPSEwOiJmYWxzZSI9PWsudG9Mb3dlckNhc2UoKSYmKGs9ITEpKTtyZXR1cm4gZD09a31pZigib2JqZWN0IiE9dHlwZW9mIGQmJiJhcnJheSIhPXR5cGVvZiBkKXJldHVybiExO3ZhciBsPWFbMF07YT1hLnNsaWNlKDEpO2lmKCIqIj09bClmb3IobGV0WyxuXW9mIE9iamVjdC5lbnRyaWVzKGQpKXtpZihlKGEsbixrKSlyZXR1cm4hMH1lbHNlIGlmKGwgaW4gZClyZXR1cm4gZShhLGRbbF0sayk7cmV0dXJuITF9ZnVuY3Rpb24gcChhLGQsayl7aWYoIm9iamVjdCIhPXR5cGVvZiBhfHwtMT09ZC5pbmRleE9mKCJbIikpcmV0dXJuITE7ZD1kLnJlcGxhY2UoL118IC9naSwiIikuc3BsaXQoIlsiKTtyZXR1cm4gZShkLGEsayl9ZnVuY3Rpb24geigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBfX3RjZmFwaSl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2Ytc3RhdHVzIiksZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKTtudWxsIT1hJiYoYS50ZXh0Q29udGVudD0iSUFCIFRDRiAyLjAgREVURUNURUQiKTtfX3RjZmFwaSgiZ2V0VENEYXRhIiwyLGZ1bmN0aW9uKGssbCl7bD8obnVsbCE9ZCYmZC5jbGFzc0xpc3QuYWRkKCJzdGF0dXMtb2siKSwidGNsb2FkZWQiPT1rLmV2ZW50U3RhdHVzfHwidXNlcmFjdGlvbmNvbXBsZXRlIj09ay5ldmVudFN0YXR1cyk/KGFpX3RjRGF0YT1rLGsuZ2RwckFwcGxpZXM/bnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIERBVEEgTE9BREVEIik6bnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIEdEUFIgRE9FUyBOT1QgQVBQTFkiKSxudWxsIT1kJiYoZC5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxkLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19saXN0cygpfSwxMCkpOiJjbXB1aXNob3duIj09ay5ldmVudFN0YXR1cyYmKGFpX2NtcHVpc2hvd249ITAsbnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIENNUCBVSSBTSE9XTiIpLG51bGwhPWQmJihkLmNsYXNzTGlzdC5yZW1vdmUoInN0YXR1cy1lcnJvciIpLGQuY2xhc3NMaXN0LmFkZCgic3RhdHVzLW9rIikpKToobnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIF9fdGNmYXBpIGdldFRDRGF0YSBmYWlsZWQiKSxudWxsIT1kJiYoZC5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtb2siKSxkLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1lcnJvciIpKSl9KX19ZnVuY3Rpb24gQyhhKXsiZnVuY3Rpb24iPT10eXBlb2YgX190Y2ZhcGk/KGFpX3RjZmFwaV9mb3VuZD0hMCwidW5kZWZpbmVkIj09dHlwZW9mIGFpX2lhYl90Y2ZfY2FsbGJhY2tfaW5zdGFsbGVkJiZaKCksInVuZGVmaW5lZCI9PXR5cGVvZiBhaV90Y0RhdGFfcmVxdWVzdGVkJiYoYWlfdGNEYXRhX3JlcXVlc3RlZD0hMCx6KCksY29va2llc19uZWVkX3RjRGF0YT0hMCkpOmEmJigidW5kZWZpbmVkIj09dHlwZW9mIGFpX3RjZmFwaV9mb3VuZCYmKGFpX3RjZmFwaV9mb3VuZD0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19saXN0cygpfSwxMCkpLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2Ytc3RhdHVzIiksbnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIE1JU1NJTkc6IF9fdGNmYXBpIGZ1bmN0aW9uIG5vdCBmb3VuZCIpLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2YtYmFyIiksbnVsbCE9YSYmKGEuY2xhc3NMaXN0LnJlbW92ZSgic3RhdHVzLW9rIiksYS5jbGFzc0xpc3QuYWRkKCJzdGF0dXMtZXJyb3IiKSkpfWlmKG51bGw9PWIpYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuYWktbGlzdC1kYXRhLCBtZXRhLmFpLWxpc3QtZGF0YSIpO2Vsc2V7d2luZG93LmpRdWVyeSYmd2luZG93LmpRdWVyeS5mbiYmYiBpbnN0YW5jZW9mIGpRdWVyeSYmKGI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYikpO3ZhciB4PVtdO2IuZm9yRWFjaCgoYSxkKT0+e2EubWF0Y2hlcygiLmFpLWxpc3QtZGF0YSIpP3gucHVzaChhKTooYT1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi5haS1saXN0LWRhdGEiKSxhLmxlbmd0aCYmYS5mb3JFYWNoKChrLGwpPT57eC5wdXNoKGspfSkpfSk7Yj14fWlmKGIubGVuZ3RoKXtiLmZvckVhY2goKGEsZCk9PnthLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtZGF0YSIpfSk7dmFyIEw9aWEod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7aWYobnVsbCE9TC5yZWZlcnJlcil2YXIgQT1MLnJlZmVycmVyO2Vsc2UgQT1kb2N1bWVudC5yZWZlcnJlciwiIiE9QSYmKEE9aGEoQSkpO3ZhciBSPXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LFM9Ui50b0xvd2VyQ2FzZSgpLGFhPW5hdmlnYXRvci5sYW5ndWFnZSxNPWFhLnRvTG93ZXJDYXNlKCk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgTW9iaWxlRGV0ZWN0KXZhciBiYT1uZXcgTW9iaWxlRGV0ZWN0KFIpO2IuZm9yRWFjaCgoYSxkKT0+e3ZhciBrPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpO2suZm9yRWFjaChmdW5jdGlvbihmLGgpe2tbaF09Zi50cmltKCl9KTtkPWEuY2xvc2VzdCgiZGl2LiIrYWlfYmxvY2tfY2xhc3NfZGVmKTt2YXIgbD0hMDtpZihhLmhhc0F0dHJpYnV0ZSgicmVmZXJlci1saXN0Iikpe3ZhciBuPWEuZ2V0QXR0cmlidXRlKCJyZWZlcmVyLWxpc3QiKTtuPWI2NGQobikuc3BsaXQoIiwiKTt2YXIgdj1hLmdldEF0dHJpYnV0ZSgicmVmZXJlci1saXN0LXR5cGUiKSxFPSExO24uZXZlcnkoKGYsaCk9PntmPWYudHJpbSgpO2lmKCIiPT1mKXJldHVybiEwO2lmKCIqIj09Zi5jaGFyQXQoMCkpaWYoIioiPT1mLmNoYXJBdChmLmxlbmd0aC0xKSl7aWYoZj1mLnN1YnN0cigxLGYubGVuZ3RoLTIpLC0xIT1BLmluZGV4T2YoZikpcmV0dXJuIEU9ITAsITF9ZWxzZXtpZihmPWYuc3Vic3RyKDEpLEEuc3Vic3RyKC1mLmxlbmd0aCk9PWYpcmV0dXJuIEU9ITAsITF9ZWxzZSBpZigiKiI9PWYuY2hhckF0KGYubGVuZ3RoLTEpKXtpZihmPWYuc3Vic3RyKDAsZi5sZW5ndGgtMSksMD09QS5pbmRleE9mKGYpKXJldHVybiBFPSEwLCExfWVsc2UgaWYoIiMiPT1mKXtpZigiIj09QSlyZXR1cm4gRT0hMCwhMX1lbHNlIGlmKGY9PUEpcmV0dXJuIEU9ITAsITE7cmV0dXJuITB9KTt2YXIgcj1FO3N3aXRjaCh2KXtjYXNlICJCIjpyJiYobD0hMSk7YnJlYWs7Y2FzZSAiVyI6cnx8KGw9ITEpfX1pZihsJiZhLmhhc0F0dHJpYnV0ZSgiY2xpZW50LWxpc3QiKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYmEpc3dpdGNoKG49YS5nZXRBdHRyaWJ1dGUoImNsaWVudC1saXN0Iiksbj1iNjRkKG4pLnNwbGl0KCIsIiksdj1hLmdldEF0dHJpYnV0ZSgiY2xpZW50LWxpc3QtdHlwZSIpLHI9ITEsbi5ldmVyeSgoZixoKT0+e2lmKCIiPT1mLnRyaW0oKSlyZXR1cm4hMDtmLnNwbGl0KCImJiIpLmV2ZXJ5KChjLHQpPT57dD0hMDt2YXIgdz0hMTtmb3IoYz1jLnRyaW0oKTsiISEiPT1jLnN1YnN0cmluZygwLDIpOyl0PSF0LGM9Yy5zdWJzdHJpbmcoMik7Imxhbmd1YWdlOiI9PWMuc3Vic3RyaW5nKDAsOSkmJih3PSEwLGM9Yy5zdWJzdHJpbmcoOSkudG9Mb3dlckNhc2UoKSk7dmFyIHE9ITE7dz8iKiI9PWMuY2hhckF0KDApPyIqIj09Yy5jaGFyQXQoYy5sZW5ndGgtMSk/KGM9Yy5zdWJzdHIoMSxjLmxlbmd0aC0yKS50b0xvd2VyQ2FzZSgpLC0xIT1NLmluZGV4T2YoYykmJihxPSEwKSk6KGM9Yy5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKSxNLnN1YnN0cigtYy5sZW5ndGgpPT1jJiYocT0hMCkpOiIqIj09Yy5jaGFyQXQoYy5sZW5ndGgtMSk/KGM9Yy5zdWJzdHIoMCxjLmxlbmd0aC0xKS50b0xvd2VyQ2FzZSgpLDA9PU0uaW5kZXhPZihjKSYmKHE9ITApKTpjPT1NJiYocT0hMCk6IioiPT1jLmNoYXJBdCgwKT8iKiI9PWMuY2hhckF0KGMubGVuZ3RoLTEpPyhjPWMuc3Vic3RyKDEsYy5sZW5ndGgtMikudG9Mb3dlckNhc2UoKSwtMSE9Uy5pbmRleE9mKGMpJiYocT0hMCkpOihjPWMuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCksUy5zdWJzdHIoLWMubGVuZ3RoKT09YyYmKHE9ITApKToiKiI9PWMuY2hhckF0KGMubGVuZ3RoLTEpPyhjPWMuc3Vic3RyKDAsYy5sZW5ndGgtMSkudG9Mb3dlckNhc2UoKSwwPT1TLmluZGV4T2YoYykmJihxPSEwKSk6YmEuaXMoYykmJihxPSEwKTtyZXR1cm4ocj1xP3Q6IXQpPyEwOiExfSk7cmV0dXJuIHI/ITE6ITB9KSx2KXtjYXNlICJCIjpyJiYobD0hMSk7YnJlYWs7Y2FzZSAiVyI6cnx8KGw9ITEpfXZhciBOPW49ITE7Zm9yKHY9MTsyPj12O3YrKylpZihsKXtzd2l0Y2godil7Y2FzZSAxOnZhciBnPWEuZ2V0QXR0cmlidXRlKCJjb29raWUtbGlzdCIpO2JyZWFrO2Nhc2UgMjpnPWEuZ2V0QXR0cmlidXRlKCJwYXJhbWV0ZXItbGlzdCIpfWlmKG51bGwhPWcpe2c9YjY0ZChnKTtzd2l0Y2godil7Y2FzZSAxOnZhciB5PWEuZ2V0QXR0cmlidXRlKCJjb29raWUtbGlzdC10eXBlIik7YnJlYWs7Y2FzZSAyOnk9YS5nZXRBdHRyaWJ1dGUoInBhcmFtZXRlci1saXN0LXR5cGUiKX1nPWcucmVwbGFjZSgidGNmLWdkcHIiLCJ0Y2YtdjJbZ2RwckFwcGxpZXNdPXRydWUiKTtnPWcucmVwbGFjZSgidGNmLW5vLWdkcHIiLCJ0Y2YtdjJbZ2RwckFwcGxpZXNdPWZhbHNlIik7Zz1nLnJlcGxhY2UoInRjZi1nb29nbGUiLCJ0Y2YtdjJbdmVuZG9yXVtjb25zZW50c11bNzU1XT10cnVlICYmIHRjZi12MltwdXJwb3NlXVtjb25zZW50c11bMV09dHJ1ZSIpO2c9Zy5yZXBsYWNlKCJ0Y2Ytbm8tZ29vZ2xlIiwiISF0Y2YtdjJbdmVuZG9yXVtjb25zZW50c11bNzU1XSIpO2c9Zy5yZXBsYWNlKCJ0Y2YtbWVkaWEubmV0IiwidGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzE0Ml09dHJ1ZSAmJiB0Y2YtdjJbcHVycG9zZV1bY29uc2VudHNdWzFdPXRydWUiKTtnPWcucmVwbGFjZSgidGNmLW5vLW1lZGlhLm5ldCIsIiEhdGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzE0Ml0iKTtnPWcucmVwbGFjZSgidGNmLWFtYXpvbiIsInRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVs3OTNdPXRydWUgJiYgdGNmLXYyW3B1cnBvc2VdW2NvbnNlbnRzXVsxXT10cnVlIik7Zz1nLnJlcGxhY2UoInRjZi1uby1hbWF6b24iLCIhIXRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVs3OTNdIik7Zz1nLnJlcGxhY2UoInRjZi1lem9pYyIsInRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVszNDddPXRydWUgJiYgdGNmLXYyW3B1cnBvc2VdW2NvbnNlbnRzXVsxXT10cnVlIik7Zz1nLnJlcGxhY2UoInRjZi1uby1lem9pYyIsIiEhdGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzM0N10iKTt2YXIgRj1nLnNwbGl0KCIsIiksY2E9W107ay5mb3JFYWNoKGZ1bmN0aW9uKGYpe2Y9Zi5zcGxpdCgiPSIpO3RyeXt2YXIgaD1KU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChmWzFdKSl9Y2F0Y2goYyl7aD1kZWNvZGVVUklDb21wb25lbnQoZlsxXSl9Y2FbZlswXV09aH0pO3I9ITE7dmFyIEk9YTtGLmV2ZXJ5KChmLGgpPT57Zi5zcGxpdCgiJiYiKS5ldmVyeSgoYyx0KT0+e3Q9ITA7Zm9yKGM9Yy50cmltKCk7IiEhIj09Yy5zdWJzdHJpbmcoMCwyKTspdD0hdCxjPWMuc3Vic3RyaW5nKDIpO3ZhciB3PWMscT0iIUAhIixUPSJ0Y2YtdjIiPT13JiYiIUAhIj09cSxCPS0xIT1jLmluZGV4T2YoIlsiKSxKPTA9PWMuaW5kZXhPZigidGNmLXYyIil8fDA9PWMuaW5kZXhPZigiZXVjb25zZW50LXYyIik7Sj1KJiYoQnx8VCk7LTEhPWMuaW5kZXhPZigiPSIpJiYocT1jLnNwbGl0KCI9Iiksdz1xWzBdLHE9cVsxXSxCPS0xIT13LmluZGV4T2YoIlsiKSxKPShKPTA9PXcuaW5kZXhPZigidGNmLXYyIil8fDA9PXcuaW5kZXhPZigiZXVjb25zZW50LXYyIikpJiYoQnx8VCkpO2lmKEopZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2Ytc3RhdHVzIiksQj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKSxudWxsIT1CJiYoQi5zdHlsZS5kaXNwbGF5PSJibG9jayIpLFQmJiJib29sZWFuIj09dHlwZW9mIGFpX3RjZmFwaV9mb3VuZD9yPWFpX3RjZmFwaV9mb3VuZD90OiF0OiJvYmplY3QiPT10eXBlb2YgYWlfdGNEYXRhPyhudWxsIT1CJiZCLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpLHc9dy5yZXBsYWNlKC9dfCAvZ2ksIiIpLnNwbGl0KCJbIiksdy5zaGlmdCgpLHI9KHc9ZSh3LGFpX3RjRGF0YSxxKSk/dDohdCk6InVuZGVmaW5lZCI9PXR5cGVvZiBhaV90Y2ZhcGlfZm91bmQmJihJLmNsYXNzTGlzdC5hZGQoImFpLWxpc3QtZGF0YSIpLE49ITAsImZ1bmN0aW9uIj09dHlwZW9mIF9fdGNmYXBpP0MoITEpOiJ1bmRlZmluZWQiPT10eXBlb2YgYWlfdGNEYXRhX3JldHJ5aW5nJiYoYWlfdGNEYXRhX3JldHJ5aW5nPSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgX190Y2ZhcGk/QyghMSk6c2V0VGltZW91dChmdW5jdGlvbigpeyJmdW5jdGlvbiI9PXR5cGVvZiBfX3RjZmFwaT9DKCExKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7QyghMCl9LDNFMyl9LDFFMyl9LDYwMCkpKTtlbHNlIGlmKEIpcj0odz1wKGNhLHcscSkpP3Q6IXQ7ZWxzZXt2YXIgVT0hMTsiIUAhIj09cT9rLmV2ZXJ5KGZ1bmN0aW9uKGphKXtyZXR1cm4gamEuc3BsaXQoIj0iKVswXT09Yz8oVT0hMCwhMSk6ITB9KTpVPS0xIT1rLmluZGV4T2YoYyk7cj1VP3Q6IXR9cmV0dXJuIHI/ITA6ITF9KTtyZXR1cm4gcj8hMTohMH0pO3ImJihOPSExLEkuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1kYXRhIikpO3N3aXRjaCh5KXtjYXNlICJCIjpyJiYobD0hMSk7YnJlYWs7Y2FzZSAiVyI6cnx8KGw9ITEpfX19YS5jbGFzc0xpc3QuY29udGFpbnMoImFpLWxpc3QtbWFudWFsIikmJihsPyhJLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtZGF0YSIpLEkuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1tYW51YWwiKSk6KG49ITAsSS5jbGFzc0xpc3QuYWRkKCJhaS1saXN0LWRhdGEiKSkpOyhsfHwhbiYmIU4pJiZhLmhhc0F0dHJpYnV0ZSgiZGF0YS1kZWJ1Zy1pbmZvIikmJihnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi4iK2EuZGF0YXNldC5kZWJ1Z0luZm8pLG51bGwhPWcmJihnPWcucGFyZW50RWxlbWVudCxudWxsIT1nJiZnLmNsYXNzTGlzdC5jb250YWlucygiYWktZGVidWctaW5mbyIpJiZnLnJlbW92ZSgpKSk7eT1YKGEsIi5haS1kZWJ1Zy1iYXIuYWktZGVidWctbGlzdHMiKTt2YXIga2E9IiI9PUE/IiMiOkE7MCE9eS5sZW5ndGgmJnkuZm9yRWFjaCgoZixoKT0+e2g9Zi5xdWVyeVNlbGVjdG9yKCIuYWktZGVidWctbmFtZS5haS1saXN0LWluZm8iKTtudWxsIT1oJiYoaC50ZXh0Q29udGVudD1rYSxoLnRpdGxlPVIrIlxuIithYSk7aD1mLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1uYW1lLmFpLWxpc3Qtc3RhdHVzIik7bnVsbCE9aCYmKGgudGV4dENvbnRlbnQ9bD9haV9mcm9udC52aXNpYmxlOmFpX2Zyb250LmhpZGRlbil9KTtnPSExO2lmKGwmJmEuaGFzQXR0cmlidXRlKCJzY2hlZHVsaW5nLXN0YXJ0IikmJmEuaGFzQXR0cmlidXRlKCJzY2hlZHVsaW5nLWVuZCIpJiZhLmhhc0F0dHJpYnV0ZSgic2NoZWR1bGluZy1kYXlzIikpe3ZhciB1PWEuZ2V0QXR0cmlidXRlKCJzY2hlZHVsaW5nLXN0YXJ0Iik7dj1hLmdldEF0dHJpYnV0ZSgic2NoZWR1bGluZy1lbmQiKTt5PWEuZ2V0QXR0cmlidXRlKCJzY2hlZHVsaW5nLWRheXMiKTtnPSEwO3U9YjY0ZCh1KTtGPWI2NGQodik7dmFyIFY9cGFyc2VJbnQoYS5nZXRBdHRyaWJ1dGUoInNjaGVkdWxpbmctZmFsbGJhY2siKSksTz1wYXJzZUludChhLmdldEF0dHJpYnV0ZSgiZ210IikpO2lmKHUuaW5jbHVkZXMoIi0iKXx8Ri5pbmNsdWRlcygiLSIpKVA9WSh1KStPLEs9WShGKStPO2Vsc2UgdmFyIFA9USh1KSxLPVEoRik7UD8/PTA7Sz8/PTA7dmFyIFc9YjY0ZCh5KS5zcGxpdCgiLCIpO3k9YS5nZXRBdHRyaWJ1dGUoInNjaGVkdWxpbmctdHlwZSIpO3ZhciBEPShuZXcgRGF0ZSkuZ2V0VGltZSgpK087dj1uZXcgRGF0ZShEKTt2YXIgRz12LmdldERheSgpOzA9PUc/Rz02OkctLTt1LmluY2x1ZGVzKCItIil8fEYuaW5jbHVkZXMoIi0iKXx8KHU9KG5ldyBEYXRlKHYuZ2V0RnVsbFllYXIoKSx2LmdldE1vbnRoKCksdi5nZXREYXRlKCkpKS5nZXRUaW1lKCkrTyxELT11LDA+RCYmKEQrPTg2NEU1KSk7c2NoZWR1bGluZ19zdGFydF9kYXRlX29rPUQ+PVA7c2NoZWR1bGluZ19lbmRfZGF0ZV9vaz0wPT1LfHxEPEs7dT1zY2hlZHVsaW5nX3N0YXJ0X2RhdGVfb2smJnNjaGVkdWxpbmdfZW5kX2RhdGVfb2smJlcuaW5jbHVkZXMoRy50b1N0cmluZygpKTtzd2l0Y2goeSl7Y2FzZSAiQiI6dT0hdX11fHwobD0hMSk7dmFyIGxhPXYudG9JU09TdHJpbmcoKS5zcGxpdCgiLiIpWzBdLnJlcGxhY2UoIlQiLCIgIik7eT1YKGEsIi5haS1kZWJ1Zy1iYXIuYWktZGVidWctc2NoZWR1bGluZyIpOzAhPXkubGVuZ3RoJiZ5LmZvckVhY2goKGYsaCk9PntoPWYucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLW5hbWUuYWktc2NoZWR1bGluZy1pbmZvIik7bnVsbCE9aCYmKGgudGV4dENvbnRlbnQ9bGErIiAiK0crIiBjdXJyZW50X3RpbWU6ICIrTWF0aC5mbG9vcihELnRvU3RyaW5nKCkvMUUzKSsiICBzdGFydF9kYXRlOiIrTWF0aC5mbG9vcihQLzFFMykudG9TdHJpbmcoKSsiPT4iK3NjaGVkdWxpbmdfc3RhcnRfZGF0ZV9vay50b1N0cmluZygpKyIgZW5kX2RhdGU6IitNYXRoLmZsb29yKEsvMUUzKS50b1N0cmluZygpKyI9PiIrc2NoZWR1bGluZ19lbmRfZGF0ZV9vay50b1N0cmluZygpKyIgZGF5czoiK1cudG9TdHJpbmcoKSsiPT4iK1cuaW5jbHVkZXMoRy50b1N0cmluZygpKS50b1N0cmluZygpKTtoPWYucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLW5hbWUuYWktc2NoZWR1bGluZy1zdGF0dXMiKTtudWxsIT1oJiYoaC50ZXh0Q29udGVudD1sP2FpX2Zyb250LnZpc2libGU6YWlfZnJvbnQuaGlkZGVuKTtsfHwwPT1WfHwoZi5jbGFzc0xpc3QucmVtb3ZlKCJhaS1kZWJ1Zy1zY2hlZHVsaW5nIiksZi5jbGFzc0xpc3QuYWRkKCJhaS1kZWJ1Zy1mYWxsYmFjayIpLGg9Zi5xdWVyeVNlbGVjdG9yKCIuYWktZGVidWctbmFtZS5haS1zY2hlZHVsaW5nLXN0YXR1cyIpLG51bGwhPWgmJihoLnRleHRDb250ZW50PWFpX2Zyb250LmZhbGxiYWNrKyIgPSAiK1YpKX0pfWlmKG58fCFsJiZOKXJldHVybiEwO2Euc3R5bGUudmlzaWJpbGl0eT0iIjthLnN0eWxlLnBvc2l0aW9uPSIiO2Euc3R5bGUud2lkdGg9IiI7YS5zdHlsZS5oZWlnaHQ9IiI7YS5zdHlsZS56SW5kZXg9IiI7aWYobCl7aWYobnVsbCE9ZCYmKGQuc3R5bGUudmlzaWJpbGl0eT0iIixkLmNsYXNzTGlzdC5jb250YWlucygiYWktcmVtb3ZlLXBvc2l0aW9uIikmJihkLnN0eWxlLnBvc2l0aW9uPSIiKSksYS5oYXNBdHRyaWJ1dGUoImRhdGEtY29kZSIpKXtuPWI2NGQoYS5kYXRhc2V0LmNvZGUpO3U9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtnPSEwO3RyeXtIPXUuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KG4pfWNhdGNoKGYpe2c9ITF9ZyYmKG51bGwhPWEuY2xvc2VzdCgiaGVhZCIpPyhhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEgsYS5uZXh0U2libGluZyksYS5yZW1vdmUoKSk6YS5hcHBlbmQoSCkpO2RhKGEpfX1lbHNlIGlmKGcmJiF1JiYwIT1WKXtudWxsIT1kJiYoZC5zdHlsZS52aXNpYmlsaXR5PSIiLGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yZW1vdmUtcG9zaXRpb24iKSYmZC5jc3Moe3Bvc2l0aW9uOiIifSkpO249ZmEoYSwiLmFpLWZhbGxiYWNrIik7MCE9bi5sZW5ndGgmJm4uZm9yRWFjaCgoZixoKT0+e2YuY2xhc3NMaXN0LnJlbW92ZSgiYWktZmFsbGJhY2siKX0pO2lmKGEuaGFzQXR0cmlidXRlKCJkYXRhLWZhbGxiYWNrLWNvZGUiKSl7bj1iNjRkKGEuZGF0YXNldC5mYWxsYmFja0NvZGUpO3U9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtnPSEwO3RyeXt2YXIgSD11LmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChuKX1jYXRjaChmKXtnPSExfWcmJmEuYXBwZW5kKEgpO2RhKGEpfWVsc2UgYS5zdHlsZS5kaXNwbGF5PSJub25lIixudWxsIT1kJiZudWxsPT1kLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1ibG9jayIpJiZkLmhhc0F0dHJpYnV0ZSgic3R5bGUiKSYmLTE9PWQuZ2V0QXR0cmlidXRlKCJzdHlsZSIpLmluZGV4T2YoImhlaWdodDoiKSYmKGQuc3R5bGUuZGlzcGxheT0ibm9uZSIpO251bGwhPWQmJmQuaGFzQXR0cmlidXRlKCJkYXRhLWFpIikmJihkLmdldEF0dHJpYnV0ZSgiZGF0YS1haSIpLGEuaGFzQXR0cmlidXRlKCJmYWxsYmFjay10cmFja2luZyIpJiYoSD1hLmdldEF0dHJpYnV0ZSgiZmFsbGJhY2stdHJhY2tpbmciKSxkLnNldEF0dHJpYnV0ZSgiZGF0YS1haS0iK2EuZ2V0QXR0cmlidXRlKCJmYWxsYmFja19sZXZlbCIpLEgpKSl9ZWxzZSBhLnN0eWxlLmRpc3BsYXk9Im5vbmUiLG51bGwhPWQmJihkLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1haSIpLGQuY2xhc3NMaXN0LnJlbW92ZSgiYWktdHJhY2siKSxudWxsIT1kLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1ibG9jayIpPyhkLnN0eWxlLnZpc2liaWxpdHk9IiIsZC5jbGFzc0xpc3QucmVtb3ZlKCJhaS1jbG9zZSIpLGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yZW1vdmUtcG9zaXRpb24iKSYmKGQuc3R5bGUucG9zaXRpb249IiIpKTpkLmhhc0F0dHJpYnV0ZSgic3R5bGUiKSYmLTE9PWQuZ2V0QXR0cmlidXRlKCJzdHlsZSIpLmluZGV4T2YoImhlaWdodDoiKSYmKGQuc3R5bGUuZGlzcGxheT0ibm9uZSIpKTthLnNldEF0dHJpYnV0ZSgiZGF0YS1jb2RlIiwiIik7YS5zZXRBdHRyaWJ1dGUoImRhdGEtZmFsbGJhY2stY29kZSIsIiIpO251bGwhPWQmJmQuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jayIpfSl9fTtmdW5jdGlvbiBlYShiKXtiPWA7ICR7ZG9jdW1lbnQuY29va2llfWAuc3BsaXQoYDsgJHtifT1gKTtpZigyPT09Yi5sZW5ndGgpcmV0dXJuIGIucG9wKCkuc3BsaXQoIjsiKS5zaGlmdCgpfWZ1bmN0aW9uIG1hKGIsZSxwKXtlYShiKSYmKGRvY3VtZW50LmNvb2tpZT1iKyI9IisoZT8iO3BhdGg9IitlOiIiKSsocD8iO2RvbWFpbj0iK3A6IiIpKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVCIpfWZ1bmN0aW9uIG0oYil7ZWEoYikmJihtYShiLCIvIix3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpLGRvY3VtZW50LmNvb2tpZT1iKyI9OyBQYXRoPS87IEV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7Iil9KGZ1bmN0aW9uKGIpeyJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlfHwibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlJiYhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsP2IoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixiKX0pKGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2FpX3Byb2Nlc3NfbGlzdHMoKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7WigpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhaV9sb2FkX2Jsb2Nrcyl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY21wbHpFbmFibGVTY3JpcHRzIixlKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbXBsel9ldmVudF9tYXJrZXRpbmciLGUpO2Z1bmN0aW9uIGUocCl7ImNtcGx6RW5hYmxlU2NyaXB0cyIhPXAudHlwZSYmImFsbCIhPT1wLmNvbnNlbnRMZXZlbHx8YWlfbG9hZF9ibG9ja3MoKX19fSw1MCk7dmFyIGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLXBhZ2UtdHlwZSIpO251bGwhPWImJmIuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLGU9PntlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLXN0YXR1cyIpO251bGwhPWUmJihlLnRleHRDb250ZW50PSJDT05TRU5UIENPT0tJRVMiKTtlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLWJhciIpO251bGwhPWUmJihlLnN0eWxlLmRpc3BsYXk9ImJsb2NrIil9KTtiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLWJhciIpO251bGwhPWImJmIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGU9PnttKCJldWNvbnNlbnQtdjIiKTttKCJfX2x4R19fY29uc2VudF9fdjIiKTttKCJfX2x4R19fY29uc2VudF9fdjJfZGFpc3liaXQiKTttKCJfX2x4R19fY29uc2VudF9fdjJfZ2RhaXN5Yml0Iik7bSgiQ29va2llTGF3SW5mb0NvbnNlbnQiKTttKCJjb29raWVsYXdpbmZvLWNoZWNrYm94LWFkdmVydGlzZW1lbnQiKTttKCJjb29raWVsYXdpbmZvLWNoZWNrYm94LWFuYWx5dGljcyIpO20oImNvb2tpZWxhd2luZm8tY2hlY2tib3gtbmVjZXNzYXJ5Iik7bSgiY29tcGxpYW56X3BvbGljeV9pZCIpO20oImNvbXBsaWFuel9jb25zZW50X3N0YXR1cyIpO20oImNtcGx6X21hcmtldGluZyIpO20oImNtcGx6X2NvbnNlbnRfc3RhdHVzIik7bSgiY21wbHpfcHJlZmVyZW5jZXMiKTttKCJjbXBsel9zdGF0aXN0aWNzLWFub255bW91cyIpO20oImNtcGx6X2Nob2ljZSIpO20oImNtcGx6X2Jhbm5lci1zdGF0dXMiKTttKCJjbXBsel9mdW5jdGlvbmFsIik7bSgiY21wbHpfcG9saWN5X2lkIik7bSgiY21wbHpfc3RhdGlzdGljcyIpO20oIm1vb3ZlX2dkcHJfcG9wdXAiKTttKCJyZWFsX2Nvb2tpZV9iYW5uZXItYmxvZzoxLXRjZiIpO20oInJlYWxfY29va2llX2Jhbm5lci1ibG9nOjEiKTtlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLXN0YXR1cyIpO251bGwhPWUmJihlLnRleHRDb250ZW50PSJDT05TRU5UIENPT0tJRVMgREVMRVRFRCIpfSl9LDUpfSk7ZnVuY3Rpb24gZGEoYil7c2V0VGltZW91dChmdW5jdGlvbigpeyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX3JvdGF0aW9uc19pbl9lbGVtZW50JiZhaV9wcm9jZXNzX3JvdGF0aW9uc19pbl9lbGVtZW50KGIpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2xpc3RzJiZhaV9wcm9jZXNzX2xpc3RzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfaXBfYWRkcmVzc2VzJiZhaV9wcm9jZXNzX2lwX2FkZHJlc3NlcygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2ZpbHRlcl9ob29rcyYmYWlfcHJvY2Vzc19maWx0ZXJfaG9va3MoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfYWRiX3Byb2Nlc3NfYmxvY2tzJiZhaV9hZGJfcHJvY2Vzc19ibG9ja3MoYik7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfaW1wcmVzc2lvbnMmJjE9PWFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhaV9wcm9jZXNzX2ltcHJlc3Npb25zKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2luc3RhbGxfY2xpY2tfdHJhY2tlcnMmJjE9PWFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhaV9pbnN0YWxsX2NsaWNrX3RyYWNrZXJzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2luc3RhbGxfY2xvc2VfYnV0dG9ucyYmYWlfaW5zdGFsbF9jbG9zZV9idXR0b25zKGRvY3VtZW50KX0sNSl9ZnVuY3Rpb24gaWEoYil7dmFyIGU9Yj9iLnNwbGl0KCI/IilbMV06d2luZG93LmxvY2F0aW9uLnNlYXJjaC5zbGljZSgxKTtiPXt9O2lmKGUpe2U9ZS5zcGxpdCgiIyIpWzBdO2U9ZS5zcGxpdCgiJiIpO2Zvcih2YXIgcD0wO3A8ZS5sZW5ndGg7cCsrKXt2YXIgej1lW3BdLnNwbGl0KCI9IiksQz12b2lkIDAseD16WzBdLnJlcGxhY2UoL1xbXGQqXF0vLGZ1bmN0aW9uKEwpe0M9TC5zbGljZSgxLC0xKTtyZXR1cm4iIn0pO3o9InVuZGVmaW5lZCI9PT10eXBlb2YgelsxXT8iIjp6WzFdO3g9eC50b0xvd2VyQ2FzZSgpO3o9ei50b0xvd2VyQ2FzZSgpO2JbeF0/KCJzdHJpbmciPT09dHlwZW9mIGJbeF0mJihiW3hdPVtiW3hdXSksInVuZGVmaW5lZCI9PT10eXBlb2YgQz9iW3hdLnB1c2goeik6Ylt4XVtDXT16KTpiW3hdPXp9fXJldHVybiBifX07YWlfanNfY29kZT0hMA==
data:text/javascript;base64,ZnVuY3Rpb24gb25FcnJvclBsYWNpbmcoKXtpZih0eXBlb2YgY2FjaGVQbGFjaW5nIT09J3VuZGVmaW5lZCcmJnR5cGVvZiBjYWNoZVBsYWNpbmc9PT0nZnVuY3Rpb24nJiZ0eXBlb2Ygd2luZG93LmpzSW5wdXRlckxhdW5jaCE9PSd1bmRlZmluZWQnJiZbMTUsMTBdLmluY2x1ZGVzKHdpbmRvdy5qc0lucHV0ZXJMYXVuY2gpKXtsZXQgZXJyb3JJbmZvPVtdO2NhY2hlUGxhY2luZygnbG93JyxlcnJvckluZm8pfWVsc2V7c2V0VGltZW91dChmdW5jdGlvbigpe29uRXJyb3JQbGFjaW5nKCl9LDEwMCl9fQp2YXIgeGhyPW5ldyBYTUxIdHRwUmVxdWVzdCgpO3hoci5vcGVuKCdHRVQnLCIvL3d3dy41NzM4LnJ1LzFta21oLm1pbi5qcyIsITApO3hoci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKTt4aHIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7aWYoeGhyLnN0YXR1cyE9MjAwKXtpZih4aHIuc3RhdHVzVGV4dCE9J2Fib3J0Jyl7b25FcnJvclBsYWNpbmcoKX19fTt4aHIuc2VuZCgp
data:text/javascript;base64,aWYodHlwZW9mIHJiX2FqYXh1cmw9PT0ndW5kZWZpbmVkJyl7dmFyIHJiX2FqYXh1cmw9J2h0dHBzOi8vd3d3LnVzcy1lbGVjdHJvLnJ1L3dwLWFkbWluL2FkbWluLWFqYXgucGhwJ30KaWYodHlwZW9mIGdhdGhlcl9jb250ZW50PT09J3VuZGVmaW5lZCcpe3ZhciBnYXRoZXJfY29udGVudD0hMH0KaWYodHlwZW9mIGVuZGVkU2M9PT0ndW5kZWZpbmVkJyl7dmFyIGVuZGVkU2M9ITF9CmlmKHR5cGVvZiBlbmRlZENjPT09J3VuZGVmaW5lZCcpe3ZhciBlbmRlZENjPSExfQppZih0eXBlb2YgdXNlZEFkQmxvY2tzQXJyYXk9PT0ndW5kZWZpbmVkJyl7dmFyIHVzZWRBZEJsb2Nrc0FycmF5PVtdfQppZih0eXBlb2YgdXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzPT09J3VuZGVmaW5lZCcpe3ZhciB1c2VkQmxvY2tTZXR0aW5nQXJyYXlJZHM9W119CmlmKHR5cGVvZiBzYW1lRWxlbWVudEFmdGVyV2lkdGg9PT0ndW5kZWZpbmVkJyl7dmFyIHNhbWVFbGVtZW50QWZ0ZXJXaWR0aD0hMX0KaWYodHlwZW9mIHNhbWVFbGVtZW50QWZ0ZXJFeGNDbGFzc0lkPT09J3VuZGVmaW5lZCcpe3ZhciBzYW1lRWxlbWVudEFmdGVyRXhjQ2xhc3NJZD0hMX0KaWYodHlwZW9mIHNhbWVFbGVtZW50QWZ0ZXJGcm9tQ29uc3RydWN0aW9uPT09J3VuZGVmaW5lZCcpe3ZhciBzYW1lRWxlbWVudEFmdGVyRnJvbUNvbnN0cnVjdGlvbj0hMX0KaWYodHlwZW9mIHJiX3RlbXBFbGVtZW50X2NoZWNrPT09J3VuZGVmaW5lZCcpe3ZhciByYl90ZW1wRWxlbWVudF9jaGVjaz0hMX0KaWYodHlwZW9mIHJiX3RlbXBFbGVtZW50PT09J3VuZGVmaW5lZCcpe3ZhciByYl90ZW1wRWxlbWVudD1udWxsfQppZih0eXBlb2Ygd2luZG93LmpzSW5wdXRlckxhdW5jaD09PSd1bmRlZmluZWQnKXt3aW5kb3cuanNJbnB1dGVyTGF1bmNoPS0xfQpmdW5jdGlvbiBsYXVuY2hVcGRhdGVSYkRpc3BsYXlzKCl7aWYoKHR5cGVvZiB1cGRhdGVSYkRpc3BsYXlzIT09J3VuZGVmaW5lZCcpJiYodHlwZW9mIHVwZGF0ZVJiRGlzcGxheXM9PT0nZnVuY3Rpb24nKSl7dXBkYXRlUmJEaXNwbGF5cygpfWVsc2V7c2V0VGltZW91dChmdW5jdGlvbigpe2xhdW5jaFVwZGF0ZVJiRGlzcGxheXMoKX0sMjAwKX19CmZ1bmN0aW9uIHNob3J0Y29kZXNJbnNlcnQoKXtsZXQgZ2F0aGVyZWRCbG9ja3M9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnBlcmNlbnRQb2ludGVyQ2xhc3Muc2NNYXJrJyksc2NCbG9ja0lkPS0xLHNjQWRJZD0tMSxibG9ja1N0YXR1cz0nJyxkYXRhRnVsbD0tMSxnYXRoZXJlZEJsb2NrQ2hpbGQsb2tTdGF0ZXM9Wydkb25lJywncmVmcmVzaC13YWl0Jywnbm8tYmxvY2snLCdmZXRjaGVkJ10sc2NDb250YWluZXIsc2NpLGkxPTAsc2t5c2NyYXBlckNoZWNrPVtdLHNreXNjcmFwZXJTdGF0dXM9ITEsc3BsaXRlZFNreXNjcmFwZXI9W10sZ2F0aGVyZWRCbG9ja0NoaWxkU2t5UGFydHM9W10sc3RpY2t5U3RhdHVzPSExLHN0aWNreUNoZWNrPVtdLHN0aWNreUZpeGVkU3RhdHVzPSExLHN0aWNreUZpeGVkQ2hlY2s9W10sb3ZlcmZsb3dDaGVjaz1bXSxvdmVyZmxvd1N0YXR1cz0hMSxyZXBlYXRhYmxlSWRlbnRpZmllcj0iIixkYXRhQ2lkSWRlbnRpZmllcj1udWxsLGRpdkNpZEVsZW1lbnQ9Jyc7aWYodHlwZW9mIHNjQXJyYXkhPT0ndW5kZWZpbmVkJyl7aWYoc2NBcnJheSYmc2NBcnJheS5sZW5ndGg+MCYmZ2F0aGVyZWRCbG9ja3MmJmdhdGhlcmVkQmxvY2tzLmxlbmd0aD4wJiZ0eXBlb2Ygd2luZG93LnJ1bHZXNWdudGIhPT0ndW5kZWZpbmVkJyl7ZGF0YUNpZElkZW50aWZpZXI9d2luZG93LnJ1bHZXNWdudGI7Zm9yKGxldCBpPTA7aTxnYXRoZXJlZEJsb2Nrcy5sZW5ndGg7aSsrKXtnYXRoZXJlZEJsb2NrQ2hpbGQ9Z2F0aGVyZWRCbG9ja3NbaV0uY2hpbGRyZW5bMF07aWYoIWdhdGhlcmVkQmxvY2tDaGlsZCl7Y29udGludWV9CnNjQWRJZD0tMztibG9ja1N0YXR1cz1udWxsO3NjQ29udGFpbmVyPW51bGw7ZGF0YUZ1bGw9LTE7c2t5c2NyYXBlclN0YXR1cz0hMTtzcGxpdGVkU2t5c2NyYXBlcj1bXTtnYXRoZXJlZEJsb2NrQ2hpbGRTa3lQYXJ0cz1bXTtzdGlja3lTdGF0dXM9ITE7c3RpY2t5Q2hlY2s9W107c3RpY2t5Rml4ZWRTdGF0dXM9ITE7c3RpY2t5Rml4ZWRDaGVjaz1bXTtyZXBlYXRhYmxlSWRlbnRpZmllcj0iIjtkaXZDaWRFbGVtZW50PW51bGw7c2NBZElkPWdhdGhlcmVkQmxvY2tDaGlsZC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYWlkJyk7c2NCbG9ja0lkPWdhdGhlcmVkQmxvY2tDaGlsZC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKTtibG9ja1N0YXR1cz1nYXRoZXJlZEJsb2NrQ2hpbGQuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJyk7ZGF0YUZ1bGw9Z2F0aGVyZWRCbG9ja0NoaWxkLmdldEF0dHJpYnV0ZSgnZGF0YS1mdWxsJyk7aWYoc2NCbG9ja0lkJiZzY0FkSWQ+MCl7c2NpPS0xO2ZvcihpMT0wO2kxPHNjQXJyYXkubGVuZ3RoO2kxKyspe2lmKHNjQmxvY2tJZD09c2NBcnJheVtpMV0uYmxvY2tJZCYmc2NBZElkPT1zY0FycmF5W2kxXS5hZElkKXtzY2k9aTF9fQppZihzY2k+LTEpe2lmKGJsb2NrU3RhdHVzJiZva1N0YXRlcy5pbmNsdWRlcyhibG9ja1N0YXR1cykpe2lmKGJsb2NrU3RhdHVzPT0nbm8tYmxvY2snKXtnYXRoZXJlZEJsb2NrQ2hpbGQuaW5uZXJIVE1MPScnfWVsc2UgaWYoKGJsb2NrU3RhdHVzPT0nZmV0Y2hlZCcmJmRhdGFGdWxsPT0xKXx8IVsnbm8tYmxvY2snLCdmZXRjaGVkJ10uaW5jbHVkZXMoYmxvY2tTdGF0dXMpKXtmb3IobGV0IGNsMT0wO2NsMTxnYXRoZXJlZEJsb2Nrc1tpXS5jbGFzc0xpc3QubGVuZ3RoO2NsMSsrKXtpZihnYXRoZXJlZEJsb2Nrc1tpXS5jbGFzc0xpc3RbY2wxXS5pbmNsdWRlcygicmVwZWF0YWJsZS1tYXJrIikpe3JlcGVhdGFibGVJZGVudGlmaWVyPWdhdGhlcmVkQmxvY2tzW2ldLmNsYXNzTGlzdFtjbDFdfX0KaWYocmVwZWF0YWJsZUlkZW50aWZpZXIpe2RpdkNpZEVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnBlcmNlbnRQb2ludGVyQ2xhc3Muc2NNYXJrLiIrcmVwZWF0YWJsZUlkZW50aWZpZXIrJyBkaXZbZGF0YS1jaWQ9IicrZGF0YUNpZElkZW50aWZpZXIrJyJdJyl9ZWxzZXtkaXZDaWRFbGVtZW50PWdhdGhlcmVkQmxvY2tDaGlsZC5xdWVyeVNlbGVjdG9yQWxsKCdkaXZbZGF0YS1jaWQ9IicrZGF0YUNpZElkZW50aWZpZXIrJyJdJyl9CnZhciB0ZXh0PXNjQXJyYXlbc2NpXS50ZXh0O2lmKGRpdkNpZEVsZW1lbnQmJmRpdkNpZEVsZW1lbnQubGVuZ3RoPjApe2ZvcihsZXQgaTI9MDtpMjxkaXZDaWRFbGVtZW50Lmxlbmd0aDtpMisrKXtqUXVlcnkoZGl2Q2lkRWxlbWVudFtpMl0pLmh0bWwodGV4dCl9fWVsc2V7alF1ZXJ5KGdhdGhlcmVkQmxvY2tDaGlsZCkuaHRtbCh0ZXh0KX0KbGF1bmNoVXBkYXRlUmJEaXNwbGF5cygpfQppZihibG9ja1N0YXR1cyE9J2ZldGNoZWQnfHwoYmxvY2tTdGF0dXM9PSdmZXRjaGVkJyYmZGF0YUZ1bGw9PTEpKXtmb3IoaTE9MDtpMTxzY0FycmF5Lmxlbmd0aDtpMSsrKXtpZihzY0Jsb2NrSWQ9PXNjQXJyYXlbaTFdLmJsb2NrSWQpe3NjQXJyYXkuc3BsaWNlKGkxLDEpO2kxLS19fQpnYXRoZXJlZEJsb2Nrc1tpXS5jbGFzc0xpc3QucmVtb3ZlKCdzY01hcmsnKX19fX1lbHNlIGlmKHNjQmxvY2tJZCYmc2NBZElkPDEmJlsnbm8tYmxvY2snLCdmZXRjaGVkJ10uaW5jbHVkZXMoYmxvY2tTdGF0dXMpKXtmb3IoaTE9MDtpMTxzY0FycmF5Lmxlbmd0aDtpMSsrKXtpZihzY0Jsb2NrSWQ9PXNjQXJyYXlbaTFdLmJsb2NrSWQpe3NjQXJyYXkuc3BsaWNlKGkxLDEpO2kxLS19fQpnYXRoZXJlZEJsb2Nrc1tpXS5jbGFzc0xpc3QucmVtb3ZlKCdzY01hcmsnKX19fWVsc2UgaWYoIXNjQXJyYXl8fChzY0FycmF5JiZzY0FycmF5Lmxlbmd0aDwxKSl7ZW5kZWRTYz0hMH19ZWxzZXtlbmRlZFNjPSEwfQppZighZW5kZWRTYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3Nob3J0Y29kZXNJbnNlcnQoKX0sMjAwKX19CmZ1bmN0aW9uIGNsZWFyVW5zdWl0YWJsZUNhY2hlKGN1Y19jb3Upe2xldCBzY0FkSWQ9LTE7bGV0IGNjUmVwZWF0PSExO2xldCBnYXRoZXJlZEJsb2Nrcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcucGVyY2VudFBvaW50ZXJDbGFzcyAuJytibG9ja19jbGFzc2VzLmpvaW4oJywgLnBlcmNlbnRQb2ludGVyQ2xhc3MgLicpKTtpZihnYXRoZXJlZEJsb2NrcyYmZ2F0aGVyZWRCbG9ja3MubGVuZ3RoPjApe2ZvcihsZXQgaT0wO2k8Z2F0aGVyZWRCbG9ja3MubGVuZ3RoO2krKyl7aWYoZ2F0aGVyZWRCbG9ja3NbaV0uZGF0YXNldC5haWQmJmdhdGhlcmVkQmxvY2tzW2ldLmRhdGFzZXQuYWlkPDApe2lmKChnYXRoZXJlZEJsb2Nrc1tpXS5kYXRhc2V0LnN0YXRlPT0nbm8tYmxvY2snKXx8KFsnZG9uZScsJ2ZldGNoZWQnLCdyZWZyZXNoLXdhaXQnXS5pbmNsdWRlcyhnYXRoZXJlZEJsb2Nrc1tpXS5kYXRhc2V0LnN0YXRlKSkpe2dhdGhlcmVkQmxvY2tzW2ldLmlubmVySFRNTD0nJ31lbHNle2NjUmVwZWF0PSEwfX1lbHNlIGlmKCFnYXRoZXJlZEJsb2Nrc1tpXS5kYXRhc2V0LmFpZCl7Y2NSZXBlYXQ9ITB9fQppZihjdWNfY291PDUwKXtpZihjY1JlcGVhdCl7c2V0VGltZW91dChmdW5jdGlvbigpe2NsZWFyVW5zdWl0YWJsZUNhY2hlKGN1Y19jb3UrMSl9LDEwMCl9fWVsc2V7ZW5kZWRDYz0hMH19ZWxzZXtlbmRlZENjPSEwfX0KZnVuY3Rpb24gYmxvY2tzUmVwb3NpdGlvblVzZShjb250YWluZXJTdHJpbmcsYmxUeXBlLHNlYXJjaFR5cGUsY29udGVudEVsZW1lbnQpe2xldCBibG9ja3NJbkNvbnRhaW5lcjtsZXQgYmxMb2NhbD1ibFR5cGU7bGV0IGN1cnJlbnRCbG9jaztsZXQgY3VycmVudEJsb2NrSWQ7bGV0IGN1cnJlbnRCbG9ja1Bvc2l0aW9uO2xldCBjdXJyZW50Q29udGFpbmVyO2xldCBpPTA7bGV0IGo9MDtsZXQgYmxvY2tTdHJKcz0nIC5wZXJjZW50UG9pbnRlckNsYXNzLm1hcmtlZCc7bGV0IGJsb2NrU3RyUGhwPScgLnBlcmNlbnRQb2ludGVyQ2xhc3M6bm90KC5tYXJrZWQpJztsZXQgYmxvY2tTdHI9JyAucGVyY2VudFBvaW50ZXJDbGFzcyc7bGV0IGNoZWNrUG9pbnRlcj1udWxsO2xldCBibG9ja1JlcGVhdEVuZD0hMTtpZihzZWFyY2hUeXBlKXtpZihzZWFyY2hUeXBlPT0nbWFya2VkJyl7d2hpbGUoIWJsb2NrUmVwZWF0RW5kKXtibExvY2FsPWJsTG9jYWwucGFyZW50RWxlbWVudDtpZihibExvY2FsKXtjaGVja1BvaW50ZXI9YmxMb2NhbC5xdWVyeVNlbGVjdG9yKCIjY29udGVudF9wb2ludGVyX2lkIik7aWYoIWNoZWNrUG9pbnRlcil7YmxvY2tzSW5Db250YWluZXI9alF1ZXJ5KGJsTG9jYWwpLnBhcmVudChjb250YWluZXJTdHJpbmcpO2lmKGJsb2Nrc0luQ29udGFpbmVyJiZibG9ja3NJbkNvbnRhaW5lci5sZW5ndGg+MCl7Y2hlY2tQb2ludGVyPWpRdWVyeShibG9ja3NJbkNvbnRhaW5lcikuZmluZCgiI2NvbnRlbnRfcG9pbnRlcl9pZCIpO2lmKGNoZWNrUG9pbnRlciYmY2hlY2tQb2ludGVyLmxlbmd0aD4wKXtibG9ja3NJbkNvbnRhaW5lcj1udWxsfQpibG9ja1JlcGVhdEVuZD0hMH19ZWxzZXtibG9ja1JlcGVhdEVuZD0hMH19ZWxzZXtibG9ja1JlcGVhdEVuZD0hMH19CmlmKGJsb2Nrc0luQ29udGFpbmVyJiZibG9ja3NJbkNvbnRhaW5lci5sZW5ndGg+MCl7YmxvY2tzSW5Db250YWluZXJbMF0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocmJfdGVtcEVsZW1lbnQsYmxvY2tzSW5Db250YWluZXJbMF0pO3NhbWVFbGVtZW50QWZ0ZXJFeGNDbGFzc0lkPSExO3JldHVybiBibG9ja3NJbkNvbnRhaW5lclswXX0KcmV0dXJuIGJsVHlwZX1lbHNlIGlmKHNlYXJjaFR5cGU9PSdub24tbWFya2VkJyl7YmxvY2tzSW5Db250YWluZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChibFR5cGUrY29udGFpbmVyU3RyaW5nK2Jsb2NrU3RyUGhwKTtpZihibG9ja3NJbkNvbnRhaW5lciYmYmxvY2tzSW5Db250YWluZXIubGVuZ3RoPjAmJnVzZWRCbG9ja1NldHRpbmdBcnJheSYmdXNlZEJsb2NrU2V0dGluZ0FycmF5Lmxlbmd0aD4wKXtmb3IoaT0wO2k8YmxvY2tzSW5Db250YWluZXIubGVuZ3RoO2krKyl7Y3VycmVudEJsb2NrPWJsb2Nrc0luQ29udGFpbmVyW2ldO2N1cnJlbnRCbG9ja0lkPWN1cnJlbnRCbG9jay5xdWVyeVNlbGVjdG9yKCcuJytibG9ja19jbGFzc2VzLmpvaW4oJywgLicpKS5nZXRBdHRyaWJ1dGUoJ2RhdGEtaWQnKTtjdXJyZW50Q29udGFpbmVyPW51bGw7Zm9yKGo9MDtqPHVzZWRCbG9ja1NldHRpbmdBcnJheS5sZW5ndGg7aSsrKXtpZih1c2VkQmxvY2tTZXR0aW5nQXJyYXlbaV0uaWQ9PWN1cnJlbnRCbG9ja0lkKXtjdXJyZW50QmxvY2tQb3NpdGlvbj11c2VkQmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBvc2l0aW9uO2N1cnJlbnRDb250YWluZXI9Y3VycmVudEJsb2NrLmNsb3Nlc3QoYmxUeXBlK2NvbnRhaW5lclN0cmluZyk7aWYoY3VycmVudEJsb2NrUG9zaXRpb249PTApe2N1cnJlbnRDb250YWluZXIucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoY3VycmVudEJsb2NrLGN1cnJlbnRDb250YWluZXIpfWVsc2V7Y3VycmVudENvbnRhaW5lci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjdXJyZW50QmxvY2ssY3VycmVudENvbnRhaW5lci5uZXh0U2libGluZyl9CmJyZWFrfX19fX19CnJldHVybiExfQpmdW5jdGlvbiBjcmVhdGVTdHlsZUVsZW1lbnQoYmxvY2tOdW1iZXIsbG9jYWxFbGVtZW50Q3NzKXtsZXQgaHRtbFRvQWRkPScnO2xldCBtYXJnaW5TdHJpbmc7bGV0IHRleHRBbGlnblN0cmluZztsZXQgY29udFBvaTtsZXQgZW1wdHlWYWx1ZXM9ITE7bGV0IGVsZW1lbnRUb0FkZFN0eWxlTG9jYWw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2Jsb2Nrc0FsaWduU3R5bGUnKTtpZighZWxlbWVudFRvQWRkU3R5bGVMb2NhbCl7Y29udFBvaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY29udGVudF9wb2ludGVyX2lkJyk7aWYoIWNvbnRQb2kpe3JldHVybiExfQplbGVtZW50VG9BZGRTdHlsZUxvY2FsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7ZWxlbWVudFRvQWRkU3R5bGVMb2NhbC5zZXRBdHRyaWJ1dGUoJ2lkJywnYmxvY2tzQWxpZ25TdHlsZScpO2NvbnRQb2kucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkU3R5bGVMb2NhbCxjb250UG9pKX0Kc3dpdGNoKGxvY2FsRWxlbWVudENzcyl7Y2FzZSAnbGVmdCc6ZW1wdHlWYWx1ZXM9ITE7bWFyZ2luU3RyaW5nPScwIGF1dG8gMCAwJzt0ZXh0QWxpZ25TdHJpbmc9J2xlZnQnO2JyZWFrO2Nhc2UgJ3JpZ2h0JzplbXB0eVZhbHVlcz0hMTttYXJnaW5TdHJpbmc9JzAgMCAwIGF1dG8nO3RleHRBbGlnblN0cmluZz0ncmlnaHQnO2JyZWFrO2Nhc2UgJ2NlbnRlcic6ZW1wdHlWYWx1ZXM9ITE7bWFyZ2luU3RyaW5nPScwIGF1dG8nO3RleHRBbGlnblN0cmluZz0nY2VudGVyJzticmVhaztjYXNlICdkZWZhdWx0JzplbXB0eVZhbHVlcz0hMDttYXJnaW5TdHJpbmc9J2RlZmF1bHQnO3RleHRBbGlnblN0cmluZz0nZGVmYXVsdCc7YnJlYWt9CmlmKCFlbXB0eVZhbHVlcyl7aHRtbFRvQWRkPScucGVyY2VudFBvaW50ZXJDbGFzcyAgPiAqW2RhdGEtaWQ9IicrYmxvY2tOdW1iZXIrJyJdIHtcbicrJyAgICBtYXJnaW46ICcrbWFyZ2luU3RyaW5nKyc7XG4nKyd9XG4nfQplbGVtZW50VG9BZGRTdHlsZUxvY2FsLmlubmVySFRNTCs9aHRtbFRvQWRkO3JldHVybiB0ZXh0QWxpZ25TdHJpbmd9CmZ1bmN0aW9uIGluaXRUYXJnZXRUb0luc2VydChwb3NpdGlvbix0eXBlLGN1cnJlbnRFbGVtZW50KXtsZXQgcG9zQ3VycmVudEVsZW1lbnQ7bGV0IHVzZWRFbGVtZW50O2lmKHR5cGU9PSdlbGVtZW50Jyl7aWYocG9zaXRpb249PTApe3Bvc0N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50O2lmKCEodHlwZW9mIG9ibGlnYXRvcnlNYXJnaW4hPT0ndW5kZWZpbmVkJyYmb2JsaWdhdG9yeU1hcmdpbj09PTEpKXtjdXJyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdyZndwX3JlbW92ZWRNYXJnaW5Ub3AnKX19ZWxzZXtwb3NDdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudC5uZXh0U2libGluZztpZighKHR5cGVvZiBvYmxpZ2F0b3J5TWFyZ2luIT09J3VuZGVmaW5lZCcmJm9ibGlnYXRvcnlNYXJnaW49PT0xKSl7Y3VycmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncmZ3cF9yZW1vdmVkTWFyZ2luQm90dG9tJyl9fQpjdXJyZW50RWxlbWVudC5zdHlsZS5jbGVhcj0nYm90aCd9ZWxzZXt1c2VkRWxlbWVudD1jdXJyZW50RWxlbWVudDtpZihwb3NpdGlvbj09MCl7cG9zQ3VycmVudEVsZW1lbnQ9dXNlZEVsZW1lbnR9ZWxzZXtwb3NDdXJyZW50RWxlbWVudD11c2VkRWxlbWVudC5uZXh0U2libGluZ319CnJldHVybiBwb3NDdXJyZW50RWxlbWVudH0KZnVuY3Rpb24gY2hlY2tBZHNXaWR0aChjb250ZW50X3BvaW50ZXIscG9zQ3VycmVudEVsZW1lbnQsY3VycmVudEVsZW1lbnQpe2xldCB3aWR0aENoZWNrZXI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3dpZHRoQ2hlY2tlcicpO2xldCB3aWR0aENoZWNrZXJTdHlsZT1udWxsO2xldCBjb250ZW50X3BvaW50ZXJTdHlsZT1nZXRDb21wdXRlZFN0eWxlKGNvbnRlbnRfcG9pbnRlcik7bGV0IGNvbnRlbnQ9Y29udGVudF9wb2ludGVyLnBhcmVudEVsZW1lbnQ7aWYoIXdpZHRoQ2hlY2tlcil7d2lkdGhDaGVja2VyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3dpZHRoQ2hlY2tlci5zZXRBdHRyaWJ1dGUoJ2lkJywnd2lkdGhDaGVja2VyJyk7d2lkdGhDaGVja2VyLnN0eWxlLmRpc3BsYXk9J2ZsZXgnfQppZihjb250ZW50KXtwb3NDdXJyZW50RWxlbWVudD1pbml0VGFyZ2V0VG9JbnNlcnQocG9zQ3VycmVudEVsZW1lbnQsJ3Rlcm0nLGN1cnJlbnRFbGVtZW50KTtjdXJyZW50RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3aWR0aENoZWNrZXIscG9zQ3VycmVudEVsZW1lbnQpO3dpZHRoQ2hlY2tlclN0eWxlPWdldENvbXB1dGVkU3R5bGUod2lkdGhDaGVja2VyKTtpZihwYXJzZUludCh3aWR0aENoZWNrZXJTdHlsZS53aWR0aCk+PShwYXJzZUludChjb250ZW50X3BvaW50ZXJTdHlsZS53aWR0aCktNTApKXtyZXR1cm4hMH19CmN1cnJlbnRFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJiX3RlbXBFbGVtZW50LGN1cnJlbnRFbGVtZW50Lm5leHRTaWJsaW5nKTtyYl90ZW1wRWxlbWVudF9jaGVjaz0hMDtyZXR1cm4hMX0KZnVuY3Rpb24gY3VycmVudEVsZW1lbnRSZWNlaXZlclNwZWMocmV2ZXJ0LGN1clN1bSxlbExpc3QsY3VycmVudEVsZW1lbnQpe2xldCBvcmlnQ3VycmVudEVsZW1lbnQ9Y3VycmVudEVsZW1lbnQ7bGV0IGNvbnRlbnRfcG9pbnRlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY29udGVudF9wb2ludGVyX2lkIik7bGV0IHNhbWVFbGVtZW50QWZ0ZXJXaWR0aD0hMTtsZXQgdGVzdENvdT0wO3doaWxlKGVsTGlzdFtjdXJTdW1dJiZzYW1lRWxlbWVudEFmdGVyV2lkdGg9PSExJiZ0ZXN0Q291PDUpe2N1cnJlbnRFbGVtZW50PWVsTGlzdFtjdXJTdW1dLmVsZW1lbnQ7dHJ5e3NhbWVFbGVtZW50QWZ0ZXJXaWR0aD0hMDtzYW1lRWxlbWVudEFmdGVyV2lkdGg9Y2hlY2tBZHNXaWR0aChjb250ZW50X3BvaW50ZXIsMCxjdXJyZW50RWxlbWVudCl9Y2F0Y2goZXgpe2NvbnNvbGUubG9nKGV4Lm1lc3NhZ2UpfQpyZXZlcnQ/Y3VyU3VtLS06Y3VyU3VtKys7dGVzdENvdSsrfQpyZXR1cm4gY3VycmVudEVsZW1lbnQ/Y3VycmVudEVsZW1lbnQ6b3JpZ0N1cnJlbnRFbGVtZW50fQpmdW5jdGlvbiBleGNJZENsVW5wYWNrZXIoKXtsZXQgZXhjQXJyPVtdLGNvdT0wLGN1cnJFeGNTdHI9JycsY3VyRXhjRmlyc3Q9Jyc7ZXhjQXJyLmlkPVtdO2V4Y0FyclsnY2xhc3MnXT1bXTtleGNBcnIudGFnPVtdO2lmKGV4Y0lkQ2xhc3MmJmV4Y0lkQ2xhc3MubGVuZ3RoPjApe3doaWxlKGV4Y0lkQ2xhc3NbY291XSl7Y3VyckV4Y1N0cj1leGNJZENsYXNzW2NvdV07aWYoY3VyckV4Y1N0ci5sZW5ndGg+MCl7Y3VyRXhjRmlyc3Q9Y3VyckV4Y1N0ci5zdWJzdHJpbmcoMCwxKTtzd2l0Y2goY3VyRXhjRmlyc3Qpe2Nhc2UgJyMnOmlmKGN1cnJFeGNTdHIubGVuZ3RoPjEpe2N1cnJFeGNTdHI9Y3VyckV4Y1N0ci5zdWJzdHJpbmcoMSk7ZXhjQXJyLmlkLnB1c2goY3VyckV4Y1N0cil9CmJyZWFrO2Nhc2UgJy4nOmlmKGN1cnJFeGNTdHIubGVuZ3RoPjEpe2N1cnJFeGNTdHI9Y3VyckV4Y1N0ci5zdWJzdHJpbmcoMSk7ZXhjQXJyWydjbGFzcyddLnB1c2goY3VyckV4Y1N0cil9CmJyZWFrO2RlZmF1bHQ6ZXhjQXJyLnRhZy5wdXNoKGN1cnJFeGNTdHIpO2JyZWFrfQpjb3UrK319fQpyZXR1cm4gZXhjQXJyfQpmdW5jdGlvbiBhc3luY0Jsb2Nrc0luc2VydGluZ0Z1bmN0aW9uKGJsb2NrU2V0dGluZ0FycmF5KXt0cnl7dmFyIGNvbnRlbnRfcG9pbnRlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY29udGVudF9wb2ludGVyX2lkIik7dmFyIHBhcmVudF93aXRoX2NvbnRlbnQ9Y29udGVudF9wb2ludGVyLnBhcmVudEVsZW1lbnQ7dmFyIGxvcmRPZkVsZW1lbnRzPXBhcmVudF93aXRoX2NvbnRlbnQ7cGFyZW50X3dpdGhfY29udGVudD1wYXJlbnRfd2l0aF9jb250ZW50LnBhcmVudEVsZW1lbnQ7dmFyIG5ld0VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dmFyIGVsZW1lbnRUb0FkZDt2YXIgZWxlbWVudFRvQWRkU3R5bGU7dmFyIHBvb2xiYWNrST0wO3ZhciBjb3VudGVyPTA7dmFyIGN1cnJlbnRFbGVtZW50O3ZhciByZXBlYXRhYmxlQ3VycmVudEVsZW1lbnQ7dmFyIHJlcGVhdGFibGVTdWNjZXNzO3ZhciByZUNvdTt2YXIgY3VyRmlyc3RQbGFjZTt2YXIgY3VyRWxlbWVudENvdW50O3ZhciBjdXJFbGVtZW50U3RlcDt2YXIgYmFja0VsZW1lbnQ9MDt2YXIgc3VtUmVzdWx0PTA7dmFyIGN1clN1bVJlc3VsdD0wO3ZhciByZXBlYXQ9ITE7dmFyIGN1cnJlbnRFbGVtZW50Q2hlY2tlcj0hMTtsZXQgY29udGFpbmVyRm9yNnRoPVtdO2xldCBjb250YWluZXJGb3I3dGg9W107dmFyIHBvc0N1cnJlbnRFbGVtZW50O3ZhciBibG9ja19udW1iZXI7bGV0IGNvbnRlbnRMZW5ndGg9Y29udGVudF9wb2ludGVyLmdldEF0dHJpYnV0ZSgnZGF0YS1jb250ZW50LWxlbmd0aCcpO2xldCByZWplY3RlZEJsb2Nrcz1jb250ZW50X3BvaW50ZXIuZ2V0QXR0cmlidXRlKCdkYXRhLXJlamVjdGVkLWJsb2NrcycpO2lmKHJlamVjdGVkQmxvY2tzJiZyZWplY3RlZEJsb2Nrcy5sZW5ndGg+MCl7cmVqZWN0ZWRCbG9ja3M9cmVqZWN0ZWRCbG9ja3Muc3BsaXQoJywnKX0KbGV0IHdpZHRoQ2hlY2s9ITE7bGV0IGN1cnJlbnRFbGVtZW50TGlzdDt2YXIgdGVzdEVsZW1lbnQxPW51bGw7dmFyIHRlcm1vcmFyaXR5X3BhcmVudF93aXRoX2NvbnRlbnQ9cGFyZW50X3dpdGhfY29udGVudDt2YXIgdGVybW9yYXJpdHlfcGFyZW50X3dpdGhfY29udGVudF9sZW5ndGg9MDt2YXIgaGVhZGVyc0xpc3Q9WydoMScsJ2gyJywnaDMnLCdoNCcsJ2g1JywnaDYnXTtmb3IodmFyIGhjMT0wO2hjMTxoZWFkZXJzTGlzdC5sZW5ndGg7aGMxKyspe3Rlcm1vcmFyaXR5X3BhcmVudF93aXRoX2NvbnRlbnRfbGVuZ3RoKz10ZXJtb3Jhcml0eV9wYXJlbnRfd2l0aF9jb250ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKGhlYWRlcnNMaXN0W2hjMV0pLmxlbmd0aH0KbGV0IGRldGFpbGVkRWxlbWVudExpc3Q7bGV0IEV4Y1N0ckNvdT0xO2xldCBkZXRhaWxlZFF1ZXJ5U3RyaW5nO2xldCB1c2VkRWxlbWVudDtsZXQgdGFnTGlzdD1bXTtsZXQgbG9jYWxTdW1SZXN1bHQ7bGV0IGJpbmRlck5hbWU7dmFyIHJlbW92ZUNsZWFyaW5nO3ZhciByZXBlYXRhYmxlQmxvY2tJZGVudGlmaWVyPTA7dmFyIGk7aWYoY29udGVudExlbmd0aDwxKXtjb250ZW50TGVuZ3RoPXBhcmVudF93aXRoX2NvbnRlbnQuaW5uZXJUZXh0Lmxlbmd0aH0KcmJfdGVtcEVsZW1lbnQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3JiX3RlbXBFbGVtZW50Jyk7aWYoIXJiX3RlbXBFbGVtZW50KXtyYl90ZW1wRWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7cmJfdGVtcEVsZW1lbnQuc2V0QXR0cmlidXRlKCdpZCcsJ3JiX3RlbXBFbGVtZW50Jyl9CmZ1bmN0aW9uIGdldEZyb21Db25zdHJ1Y3Rpb25zKGN1cnJlbnRFbGVtZW50KXtpZihjdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKT09ImJsb2NrcXVvdGUiKXtjdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O2N1cnJlbnRFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJiX3RlbXBFbGVtZW50LGN1cnJlbnRFbGVtZW50KTtyYl90ZW1wRWxlbWVudF9jaGVjaz0hMDtzYW1lRWxlbWVudEFmdGVyRnJvbUNvbnN0cnVjdGlvbj0hMX1lbHNlIGlmKFsidHIiLCJ0ZCIsInRoIiwidGhlYWQiLCJ0Ym9keSIsInRhYmxlIl0uaW5jbHVkZXMoY3VycmVudEVsZW1lbnQucGFyZW50RWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKXtjdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O3doaWxlKFsidHIiLCJ0ZCIsInRoIiwidGhlYWQiLCJ0Ym9keSIsInRhYmxlIl0uaW5jbHVkZXMoY3VycmVudEVsZW1lbnQucGFyZW50RWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpKXtjdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50fQpjdXJyZW50RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShyYl90ZW1wRWxlbWVudCxjdXJyZW50RWxlbWVudCk7cmJfdGVtcEVsZW1lbnRfY2hlY2s9ITA7c2FtZUVsZW1lbnRBZnRlckZyb21Db25zdHJ1Y3Rpb249ITF9CnJldHVybiBjdXJyZW50RWxlbWVudH0KZnVuY3Rpb24gZGlyZWN0Q2xhc3NFbGVtZW50RGV0ZWN0aW5nKGJsb2NrU2V0dGluZ0FycmF5LGRpcmVjdEVsZW1lbnQpe2xldCBmaW5kUXVlcnk9MDtsZXQgZGlyZWN0Q2xhc3NFbGVtZW50UmVzdWx0PVtdO2N1cnJlbnRFbGVtZW50PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZGlyZWN0RWxlbWVudCk7aWYoY3VycmVudEVsZW1lbnQubGVuZ3RoPjApe2lmKGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQbGFjZT4xKXtpZihjdXJyZW50RWxlbWVudC5sZW5ndGg+PWJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQbGFjZSl7Y3VycmVudEVsZW1lbnQ9Y3VycmVudEVsZW1lbnRbYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlLTFdfWVsc2UgaWYoY3VycmVudEVsZW1lbnQubGVuZ3RoPGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQbGFjZSl7Y3VycmVudEVsZW1lbnQ9Y3VycmVudEVsZW1lbnRbY3VycmVudEVsZW1lbnQubGVuZ3RoLTFdfWVsc2V7ZmluZFF1ZXJ5PTF9fWVsc2UgaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlPDApe2lmKChjdXJyZW50RWxlbWVudC5sZW5ndGgrYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlKzEpPjApe2N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50W2N1cnJlbnRFbGVtZW50Lmxlbmd0aCtibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50UGxhY2VdfWVsc2V7ZmluZFF1ZXJ5PTF9fWVsc2V7ZmluZFF1ZXJ5PTF9fWVsc2V7ZmluZFF1ZXJ5PTF9CmRpcmVjdENsYXNzRWxlbWVudFJlc3VsdC5maW5kUXVlcnk9ZmluZFF1ZXJ5O2RpcmVjdENsYXNzRWxlbWVudFJlc3VsdC5jdXJyZW50RWxlbWVudD1jdXJyZW50RWxlbWVudDtyZXR1cm4gZGlyZWN0Q2xhc3NFbGVtZW50UmVzdWx0fQpmdW5jdGlvbiBwbGFjaW5nVG9IMSh1c2VkRWxlbWVudCxlbGVtZW50VGFnVG9GaW5kKXtsZXQgdXNlbGVzc0xldDtjdXJyZW50RWxlbWVudD11c2VkRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKGVsZW1lbnRUYWdUb0ZpbmQpO2lmKGN1cnJlbnRFbGVtZW50Lmxlbmd0aDwxKXtpZih1c2VkRWxlbWVudC5wYXJlbnRFbGVtZW50KXt1c2VsZXNzTGV0PXBsYWNpbmdUb0gxKHVzZWRFbGVtZW50LnBhcmVudEVsZW1lbnQsZWxlbWVudFRhZ1RvRmluZCl9fQpyZXR1cm4gY3VycmVudEVsZW1lbnR9CmZ1bmN0aW9uIGVsZW1lbnRzQ2xlYW5pbmcoZXhjQXJyLGVsTGlzdCxwd2NMb2NhbCxnYXRoZXJTdHJpbmcpe2xldCBtYXJrZWRDbGFzcz0ncmJfbV9pbmMnO2xldCBtYXJrZWRDbGFzc0JhZD0ncmJfbV9leGMnO2xldCBjb3U9MDtsZXQgY291MT0wO2xldCBmaW5hbEFycj1bXTtsZXQgZmluYWxBcnJDbGVhcj1bXTtsZXQgY2hlY2tOZWFyZXN0O2xldCBvdXRPZlJhbmdlQ2hlY2s7bGV0IGdhdGhlclJlamVjdGVkO2xldCBhbGxvd2VyO3RyeXt3aGlsZShlbExpc3RbY291XSl7YWxsb3dlcj0hMDtpZighZWxMaXN0W2NvdV0uY2xhc3NMaXN0LmNvbnRhaW5zKG1hcmtlZENsYXNzQmFkKSl7aWYoZXhjQXJyJiZleGNBcnIubGVuZ3RoPjApe2NvdTE9MDt3aGlsZShleGNBcnJbY291MV0pe2NoZWNrTmVhcmVzdD1lbExpc3RbY291XS5wYXJlbnRFbGVtZW50LmNsb3Nlc3QoZXhjQXJyW2NvdTFdKTtpZihjaGVja05lYXJlc3Qpe2NoZWNrTmVhcmVzdC5jbGFzc0xpc3QuYWRkKCdjdXJyQ2xvc2VzdCcpO291dE9mUmFuZ2VDaGVjaz1wd2NMb2NhbC5xdWVyeVNlbGVjdG9yKCcuY3VyckNsb3Nlc3QnKTtpZihvdXRPZlJhbmdlQ2hlY2spe2FsbG93ZXI9ITE7Y2hlY2tOZWFyZXN0LmNsYXNzTGlzdC5hZGQobWFya2VkQ2xhc3MpO2dhdGhlclJlamVjdGVkPWNoZWNrTmVhcmVzdC5xdWVyeVNlbGVjdG9yQWxsKGdhdGhlclN0cmluZyk7aWYoZ2F0aGVyUmVqZWN0ZWQubGVuZ3RoPjApe2ZvcihsZXQgaTE9MDtpMTxnYXRoZXJSZWplY3RlZC5sZW5ndGg7aTErKyl7Z2F0aGVyUmVqZWN0ZWRbaTFdLmNsYXNzTGlzdC5hZGQobWFya2VkQ2xhc3NCYWQpfX19CmNoZWNrTmVhcmVzdC5jbGFzc0xpc3QucmVtb3ZlKCdjdXJyQ2xvc2VzdCcpfQpjb3UxKyt9fQppZihhbGxvd2VyPT09ITApe2VsTGlzdFtjb3VdLmNsYXNzTGlzdC5hZGQobWFya2VkQ2xhc3MpfX0KY291Kyt9CmZpbmFsQXJyPXB3Y0xvY2FsLnF1ZXJ5U2VsZWN0b3JBbGwoJy4nK21hcmtlZENsYXNzKyc6bm90KCcrbWFya2VkQ2xhc3NCYWQrJyknKTtmaW5hbEFyckNsZWFyPXB3Y0xvY2FsLnF1ZXJ5U2VsZWN0b3JBbGwoJy4nK21hcmtlZENsYXNzKycsLicrbWFya2VkQ2xhc3NCYWQpO2lmKGZpbmFsQXJyQ2xlYXImJmZpbmFsQXJyQ2xlYXIubGVuZ3RoPjApe2ZvcihsZXQgaTE9MDtpMTxmaW5hbEFyckNsZWFyLmxlbmd0aDtpMSsrKXtmaW5hbEFyckNsZWFyW2kxXS5jbGFzc0xpc3QucmVtb3ZlKG1hcmtlZENsYXNzLG1hcmtlZENsYXNzQmFkKX19fWNhdGNoKGVyKXtjb25zb2xlLmxvZyhlci5tZXNzYWdlKX0KcmV0dXJuIGZpbmFsQXJyfQpmdW5jdGlvbiBjdXJlZW50RWxlbWVudHNHYXRoZXIodXNlZEVsZW1lbnQsbG9vcExpbWl0PTIsbG9jYWxQd2M9cGFyZW50X3dpdGhfY29udGVudCl7bGV0IGN1ckVsZW1lbnRTZWFyY2hSZXBlYXRlcj0hMDtsZXQgY3VyRWxlbWVudFNlYXJjaENvdW50ZXI9MDtsZXQgY3VycmVudEVsZW1lbnRMb2M9bnVsbDtsZXQgRXhjbHVkZWRTdHJpbmdCZWdpbj0nJztsZXQgRXhjbHVkZWRTdHJpbmc9Jyc7bGV0IEV4Y2x1ZGVkU3RyaW5nRW5kPScnO2xldCB0YWdMaXN0U3RyaW5nPScnO2xldCB0YWdMaXN0U3RyaW5nRXhjPScnO2xldCBjb3U9MDtsZXQgdGFnTGlzdENvdT0wO2lmKHVzZWRFbGVtZW50PT0naDEnKXtjdXJyZW50RWxlbWVudExvYz1wbGFjaW5nVG9IMShsb2NhbFB3Yyx1c2VkRWxlbWVudCl9ZWxzZXtpZih1c2VkRWxlbWVudD09J2gyLTQnKXt0YWdMaXN0PVsnaDInLCdoMycsJ2gzJ119ZWxzZXt0YWdMaXN0PVt1c2VkRWxlbWVudF19CndoaWxlKHRhZ0xpc3RbdGFnTGlzdENvdV0pe3RhZ0xpc3RTdHJpbmcrPSgoY291Kys+MCk/JywnOicnKSt0YWdMaXN0W3RhZ0xpc3RDb3VdO3RhZ0xpc3RTdHJpbmdFeGMrPSc6bm90KCcrdGFnTGlzdFt0YWdMaXN0Q291XSsnKSc7dGFnTGlzdENvdSsrfQpFeGNsdWRlZFN0cmluZz0nJztpZihleGNJZENsYXNzJiZleGNJZENsYXNzLmxlbmd0aD4wKXtmb3IobGV0IGkyPTA7aTI8ZXhjSWRDbGFzcy5sZW5ndGg7aTIrKyl7aWYoZXhjSWRDbGFzc1tpMl0ubGVuZ3RoPjApe0V4Y2x1ZGVkU3RyaW5nKz0oaTI+MD8nLCc6JycpK2V4Y0lkQ2xhc3NbaTJdK3RhZ0xpc3RTdHJpbmdFeGN9fX0KZGV0YWlsZWRRdWVyeVN0cmluZys9dGFnTGlzdFN0cmluZysnLCcrRXhjbHVkZWRTdHJpbmc7d2hpbGUoY3VyRWxlbWVudFNlYXJjaFJlcGVhdGVyJiZjdXJFbGVtZW50U2VhcmNoQ291bnRlcjxsb29wTGltaXQpe3RyeXtjdXJyZW50RWxlbWVudExvYz1sb2NhbFB3Yy5xdWVyeVNlbGVjdG9yQWxsKHRhZ0xpc3RTdHJpbmcpfWNhdGNoKGUxKXtjb25zb2xlLmxvZyhlMS5tZXNzYWdlKX0KaWYoIWN1cnJlbnRFbGVtZW50TG9jKXtpZihsb2NhbFB3Yy5wYXJlbnRFbGVtZW50KXtsb2NhbFB3Yz1sb2NhbFB3Yy5wYXJlbnRFbGVtZW50fWVsc2V7YnJlYWt9fWVsc2V7Y3VycmVudEVsZW1lbnRMb2M9ZWxlbWVudHNDbGVhbmluZyhleGNJZENsYXNzLGN1cnJlbnRFbGVtZW50TG9jLGxvY2FsUHdjLGRldGFpbGVkUXVlcnlTdHJpbmcpO2N1ckVsZW1lbnRTZWFyY2hSZXBlYXRlcj0hMX0KY3VyRWxlbWVudFNlYXJjaENvdW50ZXIrK319CnJldHVybiBjdXJyZW50RWxlbWVudExvY30KZnVuY3Rpb24gY3VycmVudEVsZW1lbnRSZWNlaXZlcihyZXZlcnQsbG9jYWxDdXJFbD1jdXJyZW50RWxlbWVudCl7bGV0IG9yaWdDdXJFbD1sb2NhbEN1ckVsO2N1clN1bVJlc3VsdD1zdW1SZXN1bHQ7ZGV0YWlsZWRFbGVtZW50TGlzdD1sb2NhbEN1ckVsO3NhbWVFbGVtZW50QWZ0ZXJXaWR0aD0hMTtsZXQgdGVzdENvdT0wO3doaWxlKGRldGFpbGVkRWxlbWVudExpc3RbY3VyU3VtUmVzdWx0XSYmc2FtZUVsZW1lbnRBZnRlcldpZHRoPT0hMSYmdGVzdENvdTw4KXtsb2NhbEN1ckVsPWRldGFpbGVkRWxlbWVudExpc3RbY3VyU3VtUmVzdWx0XTt0cnl7c2FtZUVsZW1lbnRBZnRlcldpZHRoPSEwO3NhbWVFbGVtZW50QWZ0ZXJXaWR0aD1jaGVja0Fkc1dpZHRoKGNvbnRlbnRfcG9pbnRlcixibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50UG9zaXRpb24sbG9jYWxDdXJFbCl9Y2F0Y2goZXgpe2NvbnNvbGUubG9nKGV4Lm1lc3NhZ2UpfQpyZXZlcnQ/Y3VyU3VtUmVzdWx0LS06Y3VyU3VtUmVzdWx0Kys7dGVzdENvdSsrfQppZihsb2NhbEN1ckVsKXtjdXJyZW50RWxlbWVudENoZWNrZXI9ITB9CnJldHVybiBsb2NhbEN1ckVsP2xvY2FsQ3VyRWw6b3JpZ0N1ckVsfQpmdW5jdGlvbiBlbmRpbmdBY3Rpb25zKGJsb2NrX251bWJlcil7dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xfQpmb3IoaT0wO2k8YmxvY2tTZXR0aW5nQXJyYXkubGVuZ3RoO2krKyl7Y3VycmVudEVsZW1lbnQ9bnVsbDtjdXJyZW50RWxlbWVudENoZWNrZXI9ITE7c2FtZUVsZW1lbnRBZnRlcldpZHRoPSExO3NhbWVFbGVtZW50QWZ0ZXJFeGNDbGFzc0lkPSExO3NhbWVFbGVtZW50QWZ0ZXJGcm9tQ29uc3RydWN0aW9uPSExO3RhZ0xpc3RDb3U9MDtwb29sYmFja0k9MDtkZXRhaWxlZFF1ZXJ5U3RyaW5nPScnO2JpbmRlck5hbWU9ZWxlbWVudEJpbmRlck5hbWVHZW5lcmF0b3IoKTt0cnl7aWYoIWJsb2NrU2V0dGluZ0FycmF5W2ldLnRleHR8fChibG9ja1NldHRpbmdBcnJheVtpXS50ZXh0JiZibG9ja1NldHRpbmdBcnJheVtpXS50ZXh0Lmxlbmd0aDwxKXx8KHJlamVjdGVkQmxvY2tzJiZyZWplY3RlZEJsb2Nrcy5pbmNsdWRlcyhibG9ja1NldHRpbmdBcnJheVtpXS5pZCkpfHwoKGJsb2NrU2V0dGluZ0FycmF5W2ldLm1heEhlYWRlcnM+MCkmJihibG9ja1NldHRpbmdBcnJheVtpXS5tYXhIZWFkZXJzPHBhcnNlSW50KHRlcm1vcmFyaXR5X3BhcmVudF93aXRoX2NvbnRlbnRfbGVuZ3RoKSkpfHwoKGJsb2NrU2V0dGluZ0FycmF5W2ldLm1heFN5bWJvbHM+MCkmJihibG9ja1NldHRpbmdBcnJheVtpXS5tYXhTeW1ib2xzPHBhcnNlSW50KGNvbnRlbnRMZW5ndGgpKSl8fChjb250ZW50X3BvaW50ZXIuY2xhc3NMaXN0LmNvbnRhaW5zKCJoYXJkLWNvbnRlbnQiKSYmYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2V0dGluZ190eXBlIT0zKSl7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MTtjb250aW51ZX0KYmxvY2tfbnVtYmVyPTA7ZWxlbWVudFRvQWRkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QuYWRkKCJwZXJjZW50UG9pbnRlckNsYXNzIik7ZWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoIm1hcmtlZCIpO2lmKGJsb2NrU2V0dGluZ0FycmF5W2ldLnNjPT0xKXtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LmFkZCgic2NNYXJrIil9CmVsZW1lbnRUb0FkZC5pbm5lckhUTUw9YmxvY2tTZXR0aW5nQXJyYXlbaV0udGV4dDtlbGVtZW50VG9BZGQuZGF0YXNldC5yYmluZGVyPWJpbmRlck5hbWU7YmxvY2tfbnVtYmVyPWVsZW1lbnRUb0FkZC5jaGlsZHJlblswXS5hdHRyaWJ1dGVzWydkYXRhLWlkJ10udmFsdWU7aWYoYmxvY2tEdXBsaWNhdGU9PSdubycpe2lmKHVzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5sZW5ndGg+MCl7Zm9yKGxldCBpMT0wO2kxPHVzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5sZW5ndGg7aTErKyl7aWYoYmxvY2tfbnVtYmVyPT11c2VkQmxvY2tTZXR0aW5nQXJyYXlJZHNbaTFdKXtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xO2JyZWFrfX0KaWYocG9vbGJhY2tJPT0xKXtjb250aW51ZX19fQplbGVtZW50VG9BZGRTdHlsZT1jcmVhdGVTdHlsZUVsZW1lbnQoYmxvY2tfbnVtYmVyLGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRDc3MpO2lmKGVsZW1lbnRUb0FkZFN0eWxlJiZlbGVtZW50VG9BZGRTdHlsZSE9J2RlZmF1bHQnKXtlbGVtZW50VG9BZGQuc3R5bGUudGV4dEFsaWduPWVsZW1lbnRUb0FkZFN0eWxlfQppZigoYmxvY2tTZXR0aW5nQXJyYXlbaV0ubWluSGVhZGVycz4wKSYmKGJsb2NrU2V0dGluZ0FycmF5W2ldLm1pbkhlYWRlcnM+dGVybW9yYXJpdHlfcGFyZW50X3dpdGhfY29udGVudF9sZW5ndGgpKXtjb250aW51ZX0KaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0ubWluU3ltYm9scz5jb250ZW50TGVuZ3RoKXtjb250aW51ZX0KaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2V0dGluZ190eXBlPT0xKXtjdXJyZW50RWxlbWVudD1jdXJlZW50RWxlbWVudHNHYXRoZXIoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudC50b0xvd2VyQ2FzZSgpKTtpZihjdXJyZW50RWxlbWVudCl7aWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlPDApe3N1bVJlc3VsdD1jdXJyZW50RWxlbWVudC5sZW5ndGgrYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlO2lmKHN1bVJlc3VsdD49MCYmc3VtUmVzdWx0PGN1cnJlbnRFbGVtZW50Lmxlbmd0aCl7Y3VycmVudEVsZW1lbnQ9Y3VycmVudEVsZW1lbnRSZWNlaXZlcighMCl9fWVsc2V7c3VtUmVzdWx0PWJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQbGFjZS0xO2lmKHN1bVJlc3VsdDxjdXJyZW50RWxlbWVudC5sZW5ndGgpe2N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50UmVjZWl2ZXIoITEpfX19CmlmKGN1cnJlbnRFbGVtZW50IT11bmRlZmluZWQmJmN1cnJlbnRFbGVtZW50IT1udWxsJiZjdXJyZW50RWxlbWVudENoZWNrZXIpe3Bvc0N1cnJlbnRFbGVtZW50PWluaXRUYXJnZXRUb0luc2VydChibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50UG9zaXRpb24sJ2VsZW1lbnQnLGN1cnJlbnRFbGVtZW50KTtjdXJyZW50RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50VG9BZGQscG9zQ3VycmVudEVsZW1lbnQpO2N1cnJlbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3JiaW5kZXItJytiaW5kZXJOYW1lKTtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEFkJyk7dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xO3JiX3RlbXBFbGVtZW50X2NoZWNrPSExfWVsc2V7cmVwZWF0PSEwfX1lbHNlIGlmKGJsb2NrU2V0dGluZ0FycmF5W2ldLnNldHRpbmdfdHlwZT09Mil7aWYoYmxvY2tEdXBsaWNhdGU9PSdubycpe2Jsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRDb3VudD0xfQpyZXBlYXRhYmxlQ3VycmVudEVsZW1lbnQ9W107cmVDb3U9MDtjdXJGaXJzdFBsYWNlPWJsb2NrU2V0dGluZ0FycmF5W2ldLmZpcnN0UGxhY2U7Y3VyRWxlbWVudENvdW50PWJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRDb3VudDtjdXJFbGVtZW50U3RlcD1ibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50U3RlcDtyZXBlYXRhYmxlU3VjY2Vzcz0hMTtlbGVtZW50VG9BZGRTdHlsZT1jcmVhdGVTdHlsZUVsZW1lbnQoYmxvY2tfbnVtYmVyLGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRDc3MpO3JlcGVhdGFibGVDdXJyZW50RWxlbWVudD1jdXJlZW50RWxlbWVudHNHYXRoZXIoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudC50b0xvd2VyQ2FzZSgpKTtpZihyZXBlYXRhYmxlQ3VycmVudEVsZW1lbnQpe2ZvcihsZXQgaTE9MDtpMTxibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50Q291bnQ7aTErKyl7Y3VycmVudEVsZW1lbnRDaGVja2VyPSExO2xldCByZXBFbGVtZW50VG9BZGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmVwRWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoInBlcmNlbnRQb2ludGVyQ2xhc3MiKTtyZXBFbGVtZW50VG9BZGQuY2xhc3NMaXN0LmFkZCgibWFya2VkIik7aWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2M9PTEpe3JlcEVsZW1lbnRUb0FkZC5jbGFzc0xpc3QuYWRkKCJzY01hcmsiKX0KcmVwRWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoInJlcGVhdGFibGUtbWFyay0iK3JlcGVhdGFibGVCbG9ja0lkZW50aWZpZXIpO3JlcEVsZW1lbnRUb0FkZC5pbm5lckhUTUw9YmxvY2tTZXR0aW5nQXJyYXlbaV0udGV4dDtpZihlbGVtZW50VG9BZGRTdHlsZSYmZWxlbWVudFRvQWRkU3R5bGUhPSdkZWZhdWx0Jyl7cmVwRWxlbWVudFRvQWRkLnN0eWxlLnRleHRBbGlnbj1lbGVtZW50VG9BZGRTdHlsZX0Kc3VtUmVzdWx0PU1hdGgucm91bmQocGFyc2VJbnQoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZmlyc3RQbGFjZSkrKGkxKnBhcnNlSW50KGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRTdGVwKSktMSk7aWYoc3VtUmVzdWx0PHJlcGVhdGFibGVDdXJyZW50RWxlbWVudC5sZW5ndGgpe2N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50UmVjZWl2ZXIoITEscmVwZWF0YWJsZUN1cnJlbnRFbGVtZW50KX0KaWYoY3VycmVudEVsZW1lbnQhPXVuZGVmaW5lZCYmY3VycmVudEVsZW1lbnQhPW51bGwmJmN1cnJlbnRFbGVtZW50Q2hlY2tlcil7cG9zQ3VycmVudEVsZW1lbnQ9aW5pdFRhcmdldFRvSW5zZXJ0KGJsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRQb3NpdGlvbiwnZWxlbWVudCcsY3VycmVudEVsZW1lbnQpO2N1cnJlbnRFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHJlcEVsZW1lbnRUb0FkZCxwb3NDdXJyZW50RWxlbWVudCk7Y3VycmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO3JlcEVsZW1lbnRUb0FkZC5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkQWQnKTtjdXJGaXJzdFBsYWNlPXN1bVJlc3VsdCtwYXJzZUludChibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50U3RlcCkrMTtjdXJFbGVtZW50Q291bnQtLTtyZXBlYXRhYmxlU3VjY2Vzcz0hMH1lbHNle3JlcGVhdGFibGVTdWNjZXNzPSExO2JyZWFrfX19CmlmKHJlcGVhdGFibGVTdWNjZXNzPT0hMCl7dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xO3JlcGVhdGFibGVCbG9ja0lkZW50aWZpZXIrK31lbHNle2lmKCFibG9ja1NldHRpbmdBcnJheVtpXS51bnN1Y2Nlc3Mpe2Jsb2NrU2V0dGluZ0FycmF5W2ldLnVuc3VjY2Vzcz0xfWVsc2V7YmxvY2tTZXR0aW5nQXJyYXlbaV0udW5zdWNjZXNzPU1hdGgucm91bmQoYmxvY2tTZXR0aW5nQXJyYXlbaV0udW5zdWNjZXNzKzEpfQppZihibG9ja1NldHRpbmdBcnJheVtpXS51bnN1Y2Nlc3M+MTApe3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX1lbHNle2Jsb2NrU2V0dGluZ0FycmF5W2ldLmZpcnN0UGxhY2U9Y3VyRmlyc3RQbGFjZTtibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50Q291bnQ9Y3VyRWxlbWVudENvdW50O2Jsb2NrU2V0dGluZ0FycmF5W2ldLmVsZW1lbnRTdGVwPWN1ckVsZW1lbnRTdGVwO3JlcGVhdD0hMH19fWVsc2UgaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2V0dGluZ190eXBlPT0zKXtsZXQgZWxlbWVudFR5cGVTeW1ib2w9Jyc7bGV0IGVsZW1lbnRTcGFjZVN5bWJvbD0nJztsZXQgZWxlbWVudE5hbWU9Jyc7bGV0IGVsZW1lbnRUeXBlPScnO2xldCBlbGVtZW50VGFnPScnO2xldCBmaW5kUXVlcnk9MDtsZXQgZGlyZWN0Q2xhc3NSZXN1bHQ9W107bGV0IGRpcmVjdEVsZW1lbnQ9YmxvY2tTZXR0aW5nQXJyYXlbaV0uZGlyZWN0RWxlbWVudC50cmltKCk7aWYoZGlyZWN0RWxlbWVudC5zZWFyY2goJyMnKT4tMSl7ZmluZFF1ZXJ5PTF9ZWxzZSBpZigoZGlyZWN0RWxlbWVudC5zZWFyY2goJyMnKTwwKSYmKGRpcmVjdEVsZW1lbnQuc2VhcmNoKCcuJyk+LTEpKXtkaXJlY3RDbGFzc1Jlc3VsdD1kaXJlY3RDbGFzc0VsZW1lbnREZXRlY3RpbmcoYmxvY2tTZXR0aW5nQXJyYXksZGlyZWN0RWxlbWVudCk7ZmluZFF1ZXJ5PWRpcmVjdENsYXNzUmVzdWx0LmZpbmRRdWVyeTtjdXJyZW50RWxlbWVudD1kaXJlY3RDbGFzc1Jlc3VsdC5jdXJyZW50RWxlbWVudH0KaWYoZmluZFF1ZXJ5PT0xKXtjdXJyZW50RWxlbWVudD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGRpcmVjdEVsZW1lbnQpfQppZihjdXJyZW50RWxlbWVudCl7Y3VycmVudEVsZW1lbnRDaGVja2VyPSEwfQppZihjdXJyZW50RWxlbWVudCE9dW5kZWZpbmVkJiZjdXJyZW50RWxlbWVudCE9bnVsbCYmY3VycmVudEVsZW1lbnRDaGVja2VyKXtwb3NDdXJyZW50RWxlbWVudD1pbml0VGFyZ2V0VG9JbnNlcnQoYmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBvc2l0aW9uLCdlbGVtZW50JyxjdXJyZW50RWxlbWVudCk7Y3VycmVudEVsZW1lbnQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkLHBvc0N1cnJlbnRFbGVtZW50KTtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEFkJyk7Y3VycmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX1lbHNle3JlcGVhdD0hMH19ZWxzZSBpZihibG9ja1NldHRpbmdBcnJheVtpXS5zZXR0aW5nX3R5cGU9PTQpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjb250ZW50X3BvaW50ZXJfaWQiKS5wYXJlbnRFbGVtZW50LmFwcGVuZChlbGVtZW50VG9BZGQpO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX1lbHNlIGlmKGJsb2NrU2V0dGluZ0FycmF5W2ldLnNldHRpbmdfdHlwZT09NSl7bGV0IGN1cnJlbnRFbGVtZW50TGlzdD1jdXJlZW50RWxlbWVudHNHYXRoZXIoJ3AnLDEsY29udGVudF9wb2ludGVyLnBhcmVudEVsZW1lbnQpO2lmKGN1cnJlbnRFbGVtZW50TGlzdCYmY3VycmVudEVsZW1lbnRMaXN0Lmxlbmd0aD4wKXtsZXQgcENvdW50PWN1cnJlbnRFbGVtZW50TGlzdC5sZW5ndGg7bGV0IGVsZW1lbnROdW1iZXI9TWF0aC5yb3VuZChwQ291bnQvMik7aWYocENvdW50PjEpe2N1cnJlbnRFbGVtZW50PWN1cnJlbnRFbGVtZW50TGlzdFtlbGVtZW50TnVtYmVyKzFdfQppZihjdXJyZW50RWxlbWVudCE9dW5kZWZpbmVkJiZjdXJyZW50RWxlbWVudCE9bnVsbCl7aWYocENvdW50PjEpe2N1cnJlbnRFbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnRUb0FkZCxjdXJyZW50RWxlbWVudCl9ZWxzZXtjdXJyZW50RWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50VG9BZGQsY3VycmVudEVsZW1lbnQubmV4dFNpYmxpbmcpfQplbGVtZW50VG9BZGQuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEFkJyk7Y3VycmVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX1lbHNle3JlcGVhdD0hMH19ZWxzZXtyZXBlYXQ9ITB9fWVsc2UgaWYoYmxvY2tTZXR0aW5nQXJyYXlbaV0uc2V0dGluZ190eXBlPT02KXtpZihjb250YWluZXJGb3I2dGgubGVuZ3RoPjApe2ZvcihsZXQgaj0wO2o8Y29udGFpbmVyRm9yNnRoLmxlbmd0aDtqKyspe2lmKGNvbnRhaW5lckZvcjZ0aFtqXS5lbGVtZW50UGxhY2U+YmxvY2tTZXR0aW5nQXJyYXlbaV0uZWxlbWVudFBsYWNlKXtpZihqPT1jb250YWluZXJGb3I2dGgubGVuZ3RoLTEpe2NvbnRhaW5lckZvcjZ0aC5wdXNoKGJsb2NrU2V0dGluZ0FycmF5W2ldKTt1c2VkQmxvY2tTZXR0aW5nQXJyYXlJZHMucHVzaChibG9ja19udW1iZXIpO2Jsb2NrU2V0dGluZ0FycmF5LnNwbGljZShpLS0sMSk7cG9vbGJhY2tJPTE7YnJlYWt9fWVsc2V7Zm9yKGxldCBrPWNvbnRhaW5lckZvcjZ0aC5sZW5ndGgtMTtrPmotMTtrLS0pe2NvbnRhaW5lckZvcjZ0aFtrKzFdPWNvbnRhaW5lckZvcjZ0aFtrXX0KY29udGFpbmVyRm9yNnRoW2pdPWJsb2NrU2V0dGluZ0FycmF5W2ldO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MTticmVha319fWVsc2V7Y29udGFpbmVyRm9yNnRoLnB1c2goYmxvY2tTZXR0aW5nQXJyYXlbaV0pO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MX19ZWxzZSBpZihibG9ja1NldHRpbmdBcnJheVtpXS5zZXR0aW5nX3R5cGU9PTcpe2lmKGNvbnRhaW5lckZvcjd0aC5sZW5ndGg+MCl7Zm9yKGxldCBqPTA7ajxjb250YWluZXJGb3I3dGgubGVuZ3RoO2orKyl7aWYoY29udGFpbmVyRm9yN3RoW2pdLmVsZW1lbnRQbGFjZT5ibG9ja1NldHRpbmdBcnJheVtpXS5lbGVtZW50UGxhY2Upe2lmKGo9PWNvbnRhaW5lckZvcjd0aC5sZW5ndGgtMSl7Y29udGFpbmVyRm9yN3RoLnB1c2goYmxvY2tTZXR0aW5nQXJyYXlbaV0pO3VzZWRCbG9ja1NldHRpbmdBcnJheUlkcy5wdXNoKGJsb2NrX251bWJlcik7YmxvY2tTZXR0aW5nQXJyYXkuc3BsaWNlKGktLSwxKTtwb29sYmFja0k9MTticmVha319ZWxzZXtmb3IobGV0IGs9Y29udGFpbmVyRm9yN3RoLmxlbmd0aC0xO2s+ai0xO2stLSl7Y29udGFpbmVyRm9yN3RoW2srMV09Y29udGFpbmVyRm9yN3RoW2tdfQpjb250YWluZXJGb3I3dGhbal09YmxvY2tTZXR0aW5nQXJyYXlbaV07dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xO2JyZWFrfX19ZWxzZXtjb250YWluZXJGb3I3dGgucHVzaChibG9ja1NldHRpbmdBcnJheVtpXSk7dXNlZEJsb2NrU2V0dGluZ0FycmF5SWRzLnB1c2goYmxvY2tfbnVtYmVyKTtibG9ja1NldHRpbmdBcnJheS5zcGxpY2UoaS0tLDEpO3Bvb2xiYWNrST0xfX19Y2F0Y2goZSl7Y29uc29sZS5sb2coZS5tZXNzYWdlKX19CnZhciBhcnJheT10ZXh0TGVuZ3RoR2F0aGVyZXIobG9yZE9mRWxlbWVudHMpLHRsQXJyYXk9YXJyYXkuYXJyYXksbGVuZ3RoPWFycmF5Lmxlbmd0aDtpZihjb250YWluZXJGb3I2dGgubGVuZ3RoPjApe3BlcmNlbnRJbnNlcnRlcihsb3JkT2ZFbGVtZW50cyxjb250YWluZXJGb3I2dGgsdGxBcnJheSxsZW5ndGgpfQppZihjb250YWluZXJGb3I3dGgubGVuZ3RoPjApe3N5bWJvbEluc2VydGVyKGxvcmRPZkVsZW1lbnRzLGNvbnRhaW5lckZvcjd0aCx0bEFycmF5KX0Kc2hvcnRjb2Rlc0luc2VydCgpO2xldCBzdG9wcGVyPTA7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGZ1bmN0aW9uKCl7aWYocmVwZWF0PSEwKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YXN5bmNCbG9ja3NJbnNlcnRpbmdGdW5jdGlvbihibG9ja1NldHRpbmdBcnJheSl9LDEwMCl9fSl9Y2F0Y2goZSl7Y29uc29sZS5sb2coZS5tZXNzYWdlKX19CmZ1bmN0aW9uIHBvc3NpYmxlVGFnc0luQ2hlY2tDb25maXJtZXIocG9zc2libGVUYWdzQXJyYXkscG9zc2libGVUYWdzSW5DaGVjayl7aWYocG9zc2libGVUYWdzQXJyYXkuaW5jbHVkZXMoIkxJIikpe2lmKHBvc3NpYmxlVGFnc0FycmF5LmluY2x1ZGVzKCJVTCIpKXtwb3NzaWJsZVRhZ3NJbkNoZWNrLnB1c2goIlVMIil9CmlmKHBvc3NpYmxlVGFnc0FycmF5LmluY2x1ZGVzKCJPTCIpKXtwb3NzaWJsZVRhZ3NJbkNoZWNrLnB1c2goIk9MIil9fQpyZXR1cm4hMX0KZnVuY3Rpb24gdGV4dExlbmd0aEdhdGhlcmVyKGxvcmRPZkVsZW1lbnRzTG9jKXt2YXIgcG9zc2libGVUYWdzQXJyYXk7aWYodHlwZW9mIHRhZ3NMaXN0Rm9yVGV4dExlbmd0aCE9PSJ1bmRlZmluZWQiKXtwb3NzaWJsZVRhZ3NBcnJheT10YWdzTGlzdEZvclRleHRMZW5ndGh9ZWxzZXtwb3NzaWJsZVRhZ3NBcnJheT1bIlAiLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJESVYiLCJCTE9DS1FVT1RFIiwiSU5ERVgiLCJBUlRJQ0xFIiwiU0VDVElPTiJdfQpsZXQgcG9zc2libGVUYWdzSW5DaGVjaz1bIkRJViIsIklOREVYIiwiU0VDVElPTiJdO3Bvc3NpYmxlVGFnc0luQ2hlY2tDb25maXJtZXIocG9zc2libGVUYWdzQXJyYXkscG9zc2libGVUYWdzSW5DaGVjayk7bGV0IGV4Y0Fycj1leGNJZENsVW5wYWNrZXIoKSx0ZXh0TGVuZ3RoPTAsdGxBcnJheT1bXTtmdW5jdGlvbiB0ZXh0TGVuZ3RoR2F0aGVyZXJSZWMobG9yZE9mRWxlbWVudHNMb2Mpe2xldCBhbGxvd2VkO2xldCBjb3UxO2xldCBjbGFzc2VzQXJyYXk7bGV0IGNvdW50U3VjY2Vzcz0wO3RyeXtmb3IobGV0IGk9MDtpPGxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuLmxlbmd0aDtpKyspe2lmKHBvc3NpYmxlVGFnc0FycmF5LmluY2x1ZGVzKGxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLnRhZ05hbWUpJiYhbG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKCJwZXJjZW50UG9pbnRlckNsYXNzIikmJmxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLmlkIT0idG9jX2NvbnRhaW5lciIpe2lmKHBvc3NpYmxlVGFnc0luQ2hlY2suaW5jbHVkZXMobG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0udGFnTmFtZSkmJihsb3JkT2ZFbGVtZW50c0xvYy5jaGlsZHJlbltpXS5jaGlsZHJlbi5sZW5ndGg+MCkpe2FsbG93ZWQ9ITA7aWYobG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0uaWQmJmV4Y0Fyci5pZC5sZW5ndGg+MCl7Y291MT0wO3doaWxlKGV4Y0Fyci5pZFtjb3UxXSl7aWYobG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0uaWQudG9Mb3dlckNhc2UoKT09ZXhjQXJyLmlkW2NvdTFdLnRvTG93ZXJDYXNlKCkpe2FsbG93ZWQ9ITE7YnJlYWt9CmNvdTErK319CmlmKGxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLmNsYXNzTGlzdC5sZW5ndGg+MCYmZXhjQXJyWydjbGFzcyddLmxlbmd0aD4wKXtjb3UxPTA7d2hpbGUoZXhjQXJyWydjbGFzcyddW2NvdTFdKXtjbGFzc2VzQXJyYXk9ZXhjQXJyWydjbGFzcyddW2NvdTFdLnNwbGl0KCcuJyk7aWYoY2xhc3Nlc0FycmF5LmV2ZXJ5KGNsYXNzTmFtZT0+bG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0uY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpKXthbGxvd2VkPSExO2JyZWFrfQpjb3UxKyt9fQppZihleGNBcnIudGFnLmxlbmd0aD4wKXtjb3UxPTA7d2hpbGUoZXhjQXJyLnRhZ1tjb3UxXSl7aWYobG9yZE9mRWxlbWVudHNMb2MuY2hpbGRyZW5baV0udGFnTmFtZS50b0xvd2VyQ2FzZSgpPT1leGNBcnIudGFnW2NvdTFdLnRvTG93ZXJDYXNlKCkpe2FsbG93ZWQ9ITE7YnJlYWt9CmNvdTErK319CmlmKGFsbG93ZWQpe2lmKHRleHRMZW5ndGhHYXRoZXJlclJlYyhsb3JkT2ZFbGVtZW50c0xvYy5jaGlsZHJlbltpXSxleGNBcnIscG9zc2libGVUYWdzQXJyYXkscG9zc2libGVUYWdzSW5DaGVjaykpe2NvdW50U3VjY2VzcysrO2NvbnRpbnVlfX19CnRleHRMZW5ndGg9dGV4dExlbmd0aCtsb3JkT2ZFbGVtZW50c0xvYy5jaGlsZHJlbltpXS5pbm5lclRleHQubGVuZ3RoO3RsQXJyYXkucHVzaCh7dGFnOmxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLnRhZ05hbWUsbGVuZ3RoOmxvcmRPZkVsZW1lbnRzTG9jLmNoaWxkcmVuW2ldLmlubmVyVGV4dC5sZW5ndGgsbGVuZ3RoU3VtOnRleHRMZW5ndGgsZWxlbWVudDpsb3JkT2ZFbGVtZW50c0xvYy5jaGlsZHJlbltpXX0pO2NvdW50U3VjY2VzcysrfX19Y2F0Y2goZXIpe2NvbnNvbGUubG9nKGVyLm1lc3NhZ2UpfQpyZXR1cm4gY291bnRTdWNjZXNzPjB9CnRleHRMZW5ndGhHYXRoZXJlclJlYyhsb3JkT2ZFbGVtZW50c0xvYyk7cmV0dXJue2FycmF5OnRsQXJyYXksbGVuZ3RoOnRleHRMZW5ndGh9fQp3aW5kb3cuYXN5bmNGdW5jdGlvbkxhdW5jaGVyPWZ1bmN0aW9uKCl7aWYod2luZG93LmpzSW5wdXRlckxhdW5jaCE9PXVuZGVmaW5lZCYmWzE1LDEwXS5pbmNsdWRlcyh3aW5kb3cuanNJbnB1dGVyTGF1bmNoKSYmKHR5cGVvZiBhc3luY0Jsb2Nrc0luc2VydGluZ0Z1bmN0aW9uIT09J3VuZGVmaW5lZCcpJiYodHlwZW9mIGFzeW5jQmxvY2tzSW5zZXJ0aW5nRnVuY3Rpb249PT0nZnVuY3Rpb24nKSYmdHlwZW9mIGVuZGVkU2MhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIGVuZGVkQ2MhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIHVzZWRBZEJsb2Nrc0FycmF5IT09J3VuZGVmaW5lZCcmJnR5cGVvZiB1c2VkQmxvY2tTZXR0aW5nQXJyYXlJZHMhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIHNhbWVFbGVtZW50QWZ0ZXJXaWR0aCE9PSd1bmRlZmluZWQnJiZ0eXBlb2Ygc2FtZUVsZW1lbnRBZnRlckV4Y0NsYXNzSWQhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIHNhbWVFbGVtZW50QWZ0ZXJGcm9tQ29uc3RydWN0aW9uIT09J3VuZGVmaW5lZCcmJnR5cGVvZiByYl90ZW1wRWxlbWVudF9jaGVjayE9PSd1bmRlZmluZWQnJiZ0eXBlb2YgcmJfdGVtcEVsZW1lbnQhPT0ndW5kZWZpbmVkJyYmdHlwZW9mIHdpbmRvdy5qc0lucHV0ZXJMYXVuY2ghPT0ndW5kZWZpbmVkJyl7YXN5bmNCbG9ja3NJbnNlcnRpbmdGdW5jdGlvbihibG9ja1NldHRpbmdBcnJheSk7aWYoIWVuZGVkU2Mpe3Nob3J0Y29kZXNJbnNlcnQoKX0KaWYoIWVuZGVkQ2Mpe319ZWxzZXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YXN5bmNGdW5jdGlvbkxhdW5jaGVyKCl9LDUwKX19O2Z1bmN0aW9uIGFzeW5jSW5zZXJ0aW5nc0luc2VydGluZ0Z1bmN0aW9uKGluc2VydGluZ3NBcnJheSl7bGV0IGN1cnJlbnRFbGVtZW50Rm9ySW5zZXJ0aW5nPTA7bGV0IGN1cnJlbnRFbGVtZW50VG9Nb3ZlPTA7bGV0IHBvc2l0aW9uRWxlbWVudD0wO2xldCBwb3NpdGlvbj0wO2xldCBpbnNlcnRUb0FkZD0wO2xldCBwb3N0SWQ9MDtsZXQgcmVwZWF0U2VhcmNoPTA7aWYoaW5zZXJ0aW5nc0FycmF5JiZpbnNlcnRpbmdzQXJyYXkubGVuZ3RoPjApe2ZvcihsZXQgaT0wO2k8aW5zZXJ0aW5nc0FycmF5Lmxlbmd0aDtpKyspe2lmKCFpbnNlcnRpbmdzQXJyYXlbaV0udXNlZHx8KGluc2VydGluZ3NBcnJheVtpXS51c2VkJiZpbnNlcnRpbmdzQXJyYXlbaV0udXNlZD09MCkpe3Bvc2l0aW9uRWxlbWVudD1pbnNlcnRpbmdzQXJyYXlbaV0ucG9zaXRpb25fZWxlbWVudDtwb3NpdGlvbj1pbnNlcnRpbmdzQXJyYXlbaV0ucG9zaXRpb247aW5zZXJ0VG9BZGQ9aW5zZXJ0aW5nc0FycmF5W2ldLmNvbnRlbnQ7cG9zdElkPWluc2VydGluZ3NBcnJheVtpXS5wb3N0SWQ7Y3VycmVudEVsZW1lbnRGb3JJbnNlcnRpbmc9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihwb3NpdGlvbkVsZW1lbnQpO2N1cnJlbnRFbGVtZW50VG9Nb3ZlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5jb3ZlcmVkSW5zZXJ0aW5nc1tkYXRhLWlkPSInK3Bvc3RJZCsnIl0nKTtpZihjdXJyZW50RWxlbWVudEZvckluc2VydGluZyl7aWYocG9zaXRpb249PTApe2N1cnJlbnRFbGVtZW50Rm9ySW5zZXJ0aW5nLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGN1cnJlbnRFbGVtZW50VG9Nb3ZlLGN1cnJlbnRFbGVtZW50Rm9ySW5zZXJ0aW5nKTtjdXJyZW50RWxlbWVudFRvTW92ZS5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkSW5zZXJ0aW5ncycpO2luc2VydGluZ3NBcnJheVtpXS51c2VkPTF9ZWxzZXtjdXJyZW50RWxlbWVudEZvckluc2VydGluZy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjdXJyZW50RWxlbWVudFRvTW92ZSxjdXJyZW50RWxlbWVudEZvckluc2VydGluZy5uZXh0U2libGluZyk7Y3VycmVudEVsZW1lbnRUb01vdmUuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEluc2VydGluZ3MnKTtpbnNlcnRpbmdzQXJyYXlbaV0udXNlZD0xfX1lbHNle3JlcGVhdFNlYXJjaD0xfX19fQppZihyZXBlYXRTZWFyY2g9PTEpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXthc3luY0luc2VydGluZ3NJbnNlcnRpbmdGdW5jdGlvbihpbnNlcnRpbmdzQXJyYXkpfSwxMDApfX0KZnVuY3Rpb24gaW5zZXJ0aW5nc0Z1bmN0aW9uTGF1bmNoKCl7aWYod2luZG93LmpzSW5zZXJ0aW5nc0xhdW5jaCE9PXVuZGVmaW5lZCYmanNJbnNlcnRpbmdzTGF1bmNoPT0yNSl7YXN5bmNJbnNlcnRpbmdzSW5zZXJ0aW5nRnVuY3Rpb24oaW5zZXJ0aW5nc0FycmF5KX1lbHNle3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpbnNlcnRpbmdzRnVuY3Rpb25MYXVuY2goKX0sMTAwKX19CmZ1bmN0aW9uIHNldExvbmdDYWNoZSgpe2xldCB4aHR0cD1uZXcgWE1MSHR0cFJlcXVlc3QoKTtsZXQgc2VuZERhdGE9J2FjdGlvbj1zZXRMb25nQ2FjaGUmdHlwZT1sb25nQ2F0Y2hpbmcnO3hodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihyZWRhdGEpe2lmKHRoaXMucmVhZHlTdGF0ZT09NCYmdGhpcy5zdGF0dXM9PTIwMCl7Y29uc29sZS5sb2coJ2xvbmcgY2FjaGUgZGVwbG95ZWQnKX19O3hodHRwLm9wZW4oIlBPU1QiLHJiX2FqYXh1cmwsITApO3hodHRwLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtdHlwZSIsImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpO3hodHRwLnNlbmQoc2VuZERhdGEpfQpmdW5jdGlvbiBjYWNoZVBsYWNpbmcoYWxlcnRfdHlwZSxlcnJvckluZm89bnVsbCl7bGV0IGFkQmxvY2tzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5wZXJjZW50UG9pbnRlckNsYXNzIC4nK2Jsb2NrX2NsYXNzZXMuam9pbignLCAucGVyY2VudFBvaW50ZXJDbGFzcyAuJykpO2xldCBjdXJBZEJsb2NrO2xldCBva1N0YXRlcz1bJ2RvbmUnLCdyZWZyZXNoLXdhaXQnLCduby1ibG9jaycsJ2ZldGNoZWQnXTtsZXQgYmxvY2tBaWQ9bnVsbDtsZXQgYmxvY2tJZDtpZih0eXBlb2YgY2FjaGVkQmxvY2tzQXJyYXkhPT0ndW5kZWZpbmVkJyYmY2FjaGVkQmxvY2tzQXJyYXkmJmNhY2hlZEJsb2Nrc0FycmF5Lmxlbmd0aD4wJiZhZEJsb2NrcyYmYWRCbG9ja3MubGVuZ3RoPjApe2ZvcihsZXQgaT0wO2k8YWRCbG9ja3MubGVuZ3RoO2krKyl7YmxvY2tBaWQ9YWRCbG9ja3NbaV0uZGF0YXNldC5haWQ7aWYoIWJsb2NrQWlkKXtibG9ja0lkPWFkQmxvY2tzW2ldLmRhdGFzZXQuaWQ7aWYoY2FjaGVkQmxvY2tzQXJyYXlbYmxvY2tJZF0pe2pRdWVyeShhZEJsb2Nrc1tpXSkuaHRtbChjYWNoZWRCbG9ja3NBcnJheVtibG9ja0lkXSl9fX19CmlmKGFsZXJ0X3R5cGUmJmFsZXJ0X3R5cGU9PSdoaWdoJyl7c2V0TG9uZ0NhY2hlKCl9fQpmdW5jdGlvbiBzeW1ib2xJbnNlcnRlcihsb3JkT2ZFbGVtZW50cyxjb250YWluZXJGb3I3dGgsdGxBcnJheSl7dHJ5e3ZhciBjdXJyZW50Q2hpbGRyZW5MZW5ndGg9MDtsZXQgcHJldmlvdXNCcmVhaz0wO2xldCBuZWVkbGVMZW5ndGg7bGV0IGN1cnJlbnRTdW1MZW5ndGg7bGV0IGVsZW1lbnRUb0FkZDtsZXQgZWxlbWVudFRvQmluZDtsZXQgZWxlbWVudFRvQWRkU3R5bGU7bGV0IGJsb2NrX251bWJlcjtsZXQgYmluZGVyTmFtZTtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hcmtlZFNwYW4xIikpe2ZvcihsZXQgaT0wO2k8Y29udGFpbmVyRm9yN3RoLmxlbmd0aDtpKyspe3ByZXZpb3VzQnJlYWs9MDtjdXJyZW50Q2hpbGRyZW5MZW5ndGg9MDtjdXJyZW50U3VtTGVuZ3RoPTA7bmVlZGxlTGVuZ3RoPU1hdGguYWJzKGNvbnRhaW5lckZvcjd0aFtpXS5lbGVtZW50UGxhY2UpO2JpbmRlck5hbWU9ZWxlbWVudEJpbmRlck5hbWVHZW5lcmF0b3IoKTtlbGVtZW50VG9BZGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoInBlcmNlbnRQb2ludGVyQ2xhc3MiKTtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LmFkZCgibWFya2VkIik7aWYoY29udGFpbmVyRm9yN3RoW2ldLnNjPT0xKXtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LmFkZCgic2NNYXJrIil9CmVsZW1lbnRUb0FkZC5kYXRhc2V0LnJiaW5kZXI9YmluZGVyTmFtZTtlbGVtZW50VG9BZGQuaW5uZXJIVE1MPWNvbnRhaW5lckZvcjd0aFtpXS50ZXh0O2Jsb2NrX251bWJlcj1lbGVtZW50VG9BZGQuY2hpbGRyZW5bMF0uYXR0cmlidXRlc1snZGF0YS1pZCddLnZhbHVlO2lmKCFlbGVtZW50VG9BZGQpe2NvbnRpbnVlfQplbGVtZW50VG9BZGRTdHlsZT1jcmVhdGVTdHlsZUVsZW1lbnQoYmxvY2tfbnVtYmVyLGNvbnRhaW5lckZvcjd0aFtpXS5lbGVtZW50Q3NzKTtpZihlbGVtZW50VG9BZGRTdHlsZSYmZWxlbWVudFRvQWRkU3R5bGUhPSdkZWZhdWx0Jyl7ZWxlbWVudFRvQWRkLnN0eWxlLnRleHRBbGlnbj1lbGVtZW50VG9BZGRTdHlsZX0KaWYoY29udGFpbmVyRm9yN3RoW2ldLmVsZW1lbnRQbGFjZTwwKXtmb3IobGV0IGo9dGxBcnJheS5sZW5ndGgtMTtqPi0xO2otLSl7Y3VycmVudFN1bUxlbmd0aD1jdXJyZW50U3VtTGVuZ3RoK3RsQXJyYXlbal0ubGVuZ3RoO2lmKG5lZWRsZUxlbmd0aDxjdXJyZW50U3VtTGVuZ3RoKXtlbGVtZW50VG9CaW5kPXRsQXJyYXlbal0uZWxlbWVudDtlbGVtZW50VG9CaW5kPWN1cnJlbnRFbGVtZW50UmVjZWl2ZXJTcGVjKCEwLGosdGxBcnJheSxlbGVtZW50VG9CaW5kKTtlbGVtZW50VG9CaW5kLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGVsZW1lbnRUb0FkZCxlbGVtZW50VG9CaW5kKTtlbGVtZW50VG9CaW5kLmNsYXNzTGlzdC5hZGQoJ3JiaW5kZXItJytiaW5kZXJOYW1lKTtlbGVtZW50VG9BZGQuY2xhc3NMaXN0LnJlbW92ZSgnY292ZXJlZEFkJyk7YnJlYWt9fX1lbHNlIGlmKGNvbnRhaW5lckZvcjd0aFtpXS5lbGVtZW50UGxhY2U9PTApe2VsZW1lbnRUb0JpbmQ9dGxBcnJheVswXS5lbGVtZW50O2VsZW1lbnRUb0JpbmQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkLGVsZW1lbnRUb0JpbmQpO2VsZW1lbnRUb0JpbmQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkQWQnKX1lbHNle2ZvcihsZXQgaj0wO2o8dGxBcnJheS5sZW5ndGg7aisrKXtjdXJyZW50U3VtTGVuZ3RoPWN1cnJlbnRTdW1MZW5ndGgrdGxBcnJheVtqXS5sZW5ndGg7aWYobmVlZGxlTGVuZ3RoPGN1cnJlbnRTdW1MZW5ndGgpe2VsZW1lbnRUb0JpbmQ9dGxBcnJheVtqXS5lbGVtZW50O2VsZW1lbnRUb0JpbmQ9Y3VycmVudEVsZW1lbnRSZWNlaXZlclNwZWMoITEsaix0bEFycmF5LGVsZW1lbnRUb0JpbmQpO2VsZW1lbnRUb0JpbmQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkLGVsZW1lbnRUb0JpbmQubmV4dFNpYmxpbmcpO2VsZW1lbnRUb0JpbmQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkQWQnKTticmVha319fX0KdmFyIHNwYW5NYXJrZXI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3NwYW5NYXJrZXIuc2V0QXR0cmlidXRlKCJpZCIsIm1hcmtlZFNwYW4xIik7bG9yZE9mRWxlbWVudHMucHJlcGVuZChzcGFuTWFya2VyKX19Y2F0Y2goZSl7Y29uc29sZS5sb2coZSl9fQpmdW5jdGlvbiBwZXJjZW50SW5zZXJ0ZXIobG9yZE9mRWxlbWVudHMsY29udGFpbmVyRm9yNnRoLHRsQXJyYXksdGV4dExlbmd0aCl7dHJ5e3ZhciB0ZXh0TmVlZHlMZW5ndGg9MDtsZXQgZWxlbWVudFRvQWRkO3ZhciBlbGVtZW50VG9CaW5kO2xldCBlbGVtZW50VG9BZGRTdHlsZTtsZXQgYmxvY2tfbnVtYmVyO3ZhciBiaW5kZXJOYW1lO2Z1bmN0aW9uIGluc2VydEJ5UGVyY2VudHModGV4dExlbmd0aCl7bGV0IGxvY2FsTWlkZGxlVmFsdWU9MDtmb3IobGV0IGo9MDtqPGNvbnRhaW5lckZvcjZ0aC5sZW5ndGg7aisrKXt0ZXh0TmVlZHlMZW5ndGg9TWF0aC5yb3VuZCh0ZXh0TGVuZ3RoKihjb250YWluZXJGb3I2dGhbal0uZWxlbWVudFBsYWNlLzEwMCkpO2ZvcihsZXQgaT0wO2k8dGxBcnJheS5sZW5ndGg7aSsrKXtpZih0bEFycmF5W2ldLmxlbmd0aFN1bT49dGV4dE5lZWR5TGVuZ3RoKXtiaW5kZXJOYW1lPWVsZW1lbnRCaW5kZXJOYW1lR2VuZXJhdG9yKCk7ZWxlbWVudFRvQWRkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QuYWRkKCJwZXJjZW50UG9pbnRlckNsYXNzIik7ZWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoIm1hcmtlZCIpO2lmKGNvbnRhaW5lckZvcjZ0aFtqXS5zYz09MSl7ZWxlbWVudFRvQWRkLmNsYXNzTGlzdC5hZGQoInNjTWFyayIpfQplbGVtZW50VG9BZGQuZGF0YXNldC5yYmluZGVyPWJpbmRlck5hbWU7ZWxlbWVudFRvQWRkLmlubmVySFRNTD1jb250YWluZXJGb3I2dGhbal0udGV4dDtpZighZWxlbWVudFRvQWRkKXticmVha30KYmxvY2tfbnVtYmVyPWVsZW1lbnRUb0FkZC5jaGlsZHJlblswXS5hdHRyaWJ1dGVzWydkYXRhLWlkJ10udmFsdWU7ZWxlbWVudFRvQWRkU3R5bGU9Y3JlYXRlU3R5bGVFbGVtZW50KGJsb2NrX251bWJlcixjb250YWluZXJGb3I2dGhbal0uZWxlbWVudENzcyk7aWYoZWxlbWVudFRvQWRkU3R5bGUmJmVsZW1lbnRUb0FkZFN0eWxlIT0nZGVmYXVsdCcpe2VsZW1lbnRUb0FkZC5zdHlsZS50ZXh0QWxpZ249ZWxlbWVudFRvQWRkU3R5bGV9CmxvY2FsTWlkZGxlVmFsdWU9dGxBcnJheVtpXS5sZW5ndGhTdW0tTWF0aC5yb3VuZCh0bEFycmF5W2ldLmxlbmd0aC8yKTtlbGVtZW50VG9CaW5kPXRsQXJyYXlbaV0uZWxlbWVudDtjdXJyZW50RWxlbWVudFJlY2VpdmVyU3BlYyghMSxpLHRsQXJyYXksZWxlbWVudFRvQmluZCk7aWYodGV4dE5lZWR5TGVuZ3RoPGxvY2FsTWlkZGxlVmFsdWUpe2VsZW1lbnRUb0JpbmQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZWxlbWVudFRvQWRkLGVsZW1lbnRUb0JpbmQpfWVsc2V7ZWxlbWVudFRvQmluZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50VG9BZGQsZWxlbWVudFRvQmluZC5uZXh0U2libGluZyl9CmVsZW1lbnRUb0JpbmQuY2xhc3NMaXN0LmFkZCgncmJpbmRlci0nK2JpbmRlck5hbWUpO2VsZW1lbnRUb0FkZC5jbGFzc0xpc3QucmVtb3ZlKCdjb3ZlcmVkQWQnKTticmVha319fQpyZXR1cm4hMX0KZnVuY3Rpb24gY2xlYXJUbE1hcmtzKCl7bGV0IG1hcmtzRm9yRGVsZXRpbmc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRleHRMZW5ndGhNYXJrZXInKTtpZihtYXJrc0ZvckRlbGV0aW5nLmxlbmd0aD4wKXtmb3IobGV0IGk9MDtpPG1hcmtzRm9yRGVsZXRpbmcubGVuZ3RoO2krKyl7bWFya3NGb3JEZWxldGluZ1tpXS5yZW1vdmUoKX19fQppZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hcmtlZFNwYW4iKSl7aW5zZXJ0QnlQZXJjZW50cyh0ZXh0TGVuZ3RoKTtjbGVhclRsTWFya3MoKTt2YXIgc3Bhbk1hcmtlcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7c3Bhbk1hcmtlci5zZXRBdHRyaWJ1dGUoImlkIiwibWFya2VkU3BhbiIpO2xvcmRPZkVsZW1lbnRzLnByZXBlbmQoc3Bhbk1hcmtlcil9fWNhdGNoKGUpe2NvbnNvbGUubG9nKGUubWVzc2FnZSl9fQpmdW5jdGlvbiBzYXZlQ29udGVudEJsb2NrKGNvbnRlbnRDb250YWluZXIpe3RyeXtpZighZ2F0aGVyX2NvbnRlbnQpe2NvbnNvbGUubG9nKCdjb250ZW50IGdhdGhlciBzYXZlIGZ1bmN0aW9uIGVudGVyZWQnKTtsZXQgeGh0dHA9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7bGV0IHNlbmREYXRhPSdhY3Rpb249UkZXUF9zYXZlQ29udGVudENvbnRhaW5lciZ0eXBlPWdhdGhlckNvbnRlbnRCbG9jayZkYXRhPScrY29udGVudENvbnRhaW5lcjt4aHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24ocmVkYXRhKXtpZih0aGlzLnJlYWR5U3RhdGU9PTQmJnRoaXMuc3RhdHVzPT0yMDApe2NvbnNvbGUubG9nKCdjb250ZW50IGdhdGhlciBzdWNjZWVkJyl9ZWxzZXtjb25zb2xlLmxvZygnY29udGVudCBnYXRoZXIgZ29uZSB3cm9uZycpfX07eGh0dHAub3BlbigiUE9TVCIscmJfYWpheHVybCwhMCk7eGh0dHAuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7eGh0dHAuc2VuZChzZW5kRGF0YSl9fWNhdGNoKGVyKXtjb25zb2xlLmxvZygnY29udGVudCBnYXRoZXIgZXJyb3I6ICcrZXIrJzsnKX19CndpbmRvdy5nYXRoZXJDb250ZW50QmxvY2s9ZnVuY3Rpb24oKXtsZXQgY1BvaW50ZXI9bnVsbCxjUG9pbnRlclBhcmVudD1udWxsLGNQb2ludGVyUGFyZW50U3RyaW5nPW51bGwsY2xhc3NXb3Jkcz1bJ2NvbnRlbnQnLCdlbnRyeScsJ3Bvc3QnLCd3cmFwJywnZGVzY3JpcHRpb24nLCd0YXhvbm9teSddLGNsYXNzQ2hvb3NlZD0hMTtjUG9pbnRlcj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjY29udGVudF9wb2ludGVyX2lkJyk7aWYoY1BvaW50ZXIpe2lmKHdpbmRvdy5qc0lucHV0ZXJMYXVuY2ghPT0xNSl7cmV0dXJuITF9CmNQb2ludGVyUGFyZW50PWNQb2ludGVyLnBhcmVudEVsZW1lbnQ7aWYoY1BvaW50ZXJQYXJlbnQpe2lmKGNQb2ludGVyUGFyZW50LmlkKXtjUG9pbnRlclBhcmVudFN0cmluZz0nIycrY1BvaW50ZXJQYXJlbnQuaWR9ZWxzZXtpZihjUG9pbnRlclBhcmVudC5jbGFzc0xpc3QubGVuZ3RoPjApe2NQb2ludGVyUGFyZW50U3RyaW5nPScuJytjUG9pbnRlclBhcmVudC5jbGFzc0xpc3RbMF07Zm9yKGxldCBqPTA7ajxjbGFzc1dvcmRzLmxlbmd0aDtqKyspe2ZvcihsZXQgaT0wO2k8Y1BvaW50ZXJQYXJlbnQuY2xhc3NMaXN0Lmxlbmd0aDtpKyspe2lmKGNQb2ludGVyUGFyZW50LmNsYXNzTGlzdFtpXS5pbmNsdWRlcyhjbGFzc1dvcmRzW2pdKSl7Y1BvaW50ZXJQYXJlbnRTdHJpbmc9Jy4nK2NQb2ludGVyUGFyZW50LmNsYXNzTGlzdFtpXTtjbGFzc0Nob29zZWQ9ITA7YnJlYWt9fQppZihjbGFzc0Nob29zZWQ9PT0hMCl7YnJlYWt9fX19CmlmKGNQb2ludGVyUGFyZW50U3RyaW5nKXtjb25zb2xlLmxvZygnY29udGVudCBnYXRoZXIgY29udGVudCBibG9jayBkZXRlY3RlZCcpO3NhdmVDb250ZW50QmxvY2soY1BvaW50ZXJQYXJlbnRTdHJpbmcpfX19ZWxzZXtjb25zb2xlLmxvZygnY29udGVudCBnYXRoZXIgZGVsYXllZCcpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtnYXRoZXJDb250ZW50QmxvY2soKX0sNTAwKX19O3dpbmRvdy5yZW1vdmVNYXJnaW5DbGFzcz1mdW5jdGlvbihibG9ja09iamVjdCl7aWYoYmxvY2tPYmplY3QmJnR5cGVvZiB3aW5kb3cuanNJbnB1dGVyTGF1bmNoIT09J3VuZGVmaW5lZCcmJlsxNSwxMF0uaW5jbHVkZXMod2luZG93LmpzSW5wdXRlckxhdW5jaCkpe2xldCBiaW5kZXJOYW1lLG5lZWRlZEVsZW1lbnQsY3VycmVudERpcmVjdGlvbixzZWVrZXJJdGVyYXRpb25Db3VudCxjdXJyZW50U3VibGluZztiaW5kZXJOYW1lPWJsb2NrT2JqZWN0LmRhdGFzZXQucmJpbmRlcjtpZihiaW5kZXJOYW1lKXtzZWVrZXJJdGVyYXRpb25Db3VudD0wO2N1cnJlbnREaXJlY3Rpb249J2JlZm9yZSc7ZG97c2Vla2VySXRlcmF0aW9uQ291bnQrKztjdXJyZW50U3VibGluZz1ibG9ja09iamVjdC5uZXh0RWxlbWVudFNpYmxpbmc7aWYoY3VycmVudFN1YmxpbmcmJmN1cnJlbnRTdWJsaW5nLmNsYXNzTGlzdC5jb250YWlucygncmJpbmRlci0nK2JpbmRlck5hbWUpKXtuZWVkZWRFbGVtZW50PWN1cnJlbnRTdWJsaW5nfX13aGlsZShjdXJyZW50U3VibGluZyYmIW5lZWRlZEVsZW1lbnQmJnNlZWtlckl0ZXJhdGlvbkNvdW50PDUpO2lmKCFuZWVkZWRFbGVtZW50KXtzZWVrZXJJdGVyYXRpb25Db3VudD0wO2N1cnJlbnREaXJlY3Rpb249J2FmdGVyJztkb3tzZWVrZXJJdGVyYXRpb25Db3VudCsrO2N1cnJlbnRTdWJsaW5nPWJsb2NrT2JqZWN0LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7aWYoY3VycmVudFN1YmxpbmcmJmN1cnJlbnRTdWJsaW5nLmNsYXNzTGlzdC5jb250YWlucygncmJpbmRlci0nK2JpbmRlck5hbWUpKXtuZWVkZWRFbGVtZW50PWN1cnJlbnRTdWJsaW5nfX13aGlsZShjdXJyZW50U3VibGluZyYmIW5lZWRlZEVsZW1lbnQmJnNlZWtlckl0ZXJhdGlvbkNvdW50PDUpO30KaWYobmVlZGVkRWxlbWVudCl7aWYoY3VycmVudERpcmVjdGlvbj09PSdiZWZvcmUnKXtuZWVkZWRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3Jmd3BfcmVtb3ZlZE1hcmdpblRvcCcpfWVsc2V7bmVlZGVkRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdyZndwX3JlbW92ZWRNYXJnaW5Cb3R0b20nKX19fX0KcmV0dXJuITF9O2Z1bmN0aW9uIGVsZW1lbnRCaW5kZXJOYW1lR2VuZXJhdG9yKCl7bGV0IGJpbmRlck5hbWU9JycsY2hlY2tlZEVsZW1lbnRzLHBhc3NlZD0hMTt3aGlsZShwYXNzZWQ9PT0hMSl7YmluZGVyTmFtZT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTAwMDAwKTtjaGVja2VkRWxlbWVudHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcmJpbmRlcj0iJytiaW5kZXJOYW1lKyciXScpO2lmKGNoZWNrZWRFbGVtZW50cy5sZW5ndGg8MSl7cGFzc2VkPSEwfX0KcmV0dXJuIGJpbmRlck5hbWV9
data:text/javascript;base64,cmJDb25maWc9e3N0YXJ0OnBlcmZvcm1hbmNlLm5vdygpLHJiRG9tYWluOid3d3cuNTczOC5ydScscm90YXRvcjonMW1rbWgnfTt0b2tlbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnMW1rbWgnKXx8KDFlNisnJykucmVwbGFjZSgvWzAxOF0vZyxjPT4oY15jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50OEFycmF5KDEpKVswXSYxNT4+Yy80KS50b1N0cmluZygxNikpO3JzZGZoc2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7cnNkZmhzZS5zZXRBdHRyaWJ1dGUoJ3NyYycsJy8vd3d3LjU3MzgucnUvMW1rbWgubWluLmpzPycrdG9rZW4pO3JzZGZoc2Uuc2V0QXR0cmlidXRlKCdhc3luYycsJ2FzeW5jJyk7cnNkZmhzZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCd0ZXh0L2phdmFzY3JpcHQnKTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHJzZGZoc2UpO2xvY2FsU3RvcmFnZS5zZXRJdGVtKCcxbWttaCcsdG9rZW4p
data:text/javascript;base64,dmFyIGJsb2NrX2NsYXNzZXM9WyJjb250ZW50X3JiIiwiY250MzJfcmxfYmdfc3RyIiwicmxfY250X2JnIl07ZnVuY3Rpb24gYWRkQXR0ckl0ZW0oY2xhc3NOYW1lKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuIitjbGFzc05hbWUpJiYhYmxvY2tfY2xhc3Nlcy5pbmNsdWRlcyhjbGFzc05hbWUpKXtibG9ja19jbGFzc2VzLnB1c2goY2xhc3NOYW1lKX19
data:text/javascript;base64,dmFyIHBzZXVkb19saW5rcz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucHNldWRvLWNsZWFyZnktbGluayIpO2Zvcih2YXIgaT0wO2k8cHNldWRvX2xpbmtzLmxlbmd0aDtpKyspe3BzZXVkb19saW5rc1tpXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7d2luZG93Lm9wZW4oZS50YXJnZXQuZ2V0QXR0cmlidXRlKCJkYXRhLXVyaSIpKX0pfQ==
data:text/javascript;base64,dmFyIHEydzNfc2lkZWJhcl9vcHRpb25zPVt7InNpZGViYXIiOiJzaWRlYmFyLTEiLCJ1c2Vfc3RpY2t5X3Bvc2l0aW9uIjohMSwibWFyZ2luX3RvcCI6MCwibWFyZ2luX2JvdHRvbSI6MCwic3RvcF9lbGVtZW50c19zZWxlY3RvcnMiOiIiLCJzY3JlZW5fbWF4X3dpZHRoIjowLCJzY3JlZW5fbWF4X2hlaWdodCI6MCwid2lkZ2V0cyI6WyIjY3VzdG9tX2h0bWwtMiJdfV0=
data:text/javascript;base64,dmFyIHNldHRpbmdzX2FycmF5PXsicmF0aW5nX3RleHRfYXZlcmFnZSI6Ilx1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzNVx1MDQzNSIsInJhdGluZ190ZXh0X2Zyb20iOiJcdTA0MzhcdTA0MzciLCJsaWdodGJveF9lbmFibGVkIjoiIn07dmFyIHdwc19hamF4PXsidXJsIjoiaHR0cHM6XC9cL3d3dy51c3MtZWxlY3Ryby5ydVwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwibm9uY2UiOiJiOGU0ZDAzZWZlIn0=
https://www.uss-electro.ru/wp-content/litespeed/js/0ac880bf7f906716b818a0a4f2338f73.js?ver=38f73
https://www.uss-electro.ru/wp-content/litespeed/js/29bd03a9533d203f42e207c5005b94ad.js?ver=b94ad
https://www.uss-electro.ru/wp-content/litespeed/js/ba8601b2a2df0ce7abc3dc3dacaa6f38.js?ver=a6f38
https://www.uss-electro.ru/wp-includes/js/jquery/jquery.min.js
Внешние ссылки 3
Внутренние ссылки 59

meta-теги

viewportwidth=device-width, initial-scale=1
robotsindex, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
twitter:cardsummary_large_image
yandex-verificationc3089b70732b435e
google-site-verificationhhinfH9RSQC2bmeB_4QJ9EECgf7okg01iTjQBBBXnBk
og:localeru_RU
og:typewebsite
og:titleЭлектромонтажные услуги в Москве от Компании «УСС-Электро»
og:descriptionКомпания «УСС-Электро» выполняет услуги по электромонтажу в жилых и производственных помещениях любого уровня сложности в Москве. Гарантия качества на выполненные работы, низкие цены
og:urlhttps://www.uss-electro.ru/
og:site_nameУслуги электромонтажа в Москве
article:modified_time2023-03-14T01:03:22+00:00
og:imagehttps://www.uss-electro.ru/wp-content/uploads/2023/03/electrical-installation.jpeg
og:image:width2560
og:image:height1707
og:image:typeimage/jpeg

Скриншот сайта

Скриншота нет

Сервер сайта

IP адрес сайта 172.67.168.19
104.21.66.74
Веб-сервер cloudflare
Версия HTTP HTTP 3
DNS записи 2
A записи
1: ip: 172.67.168.19
2: ip: 104.21.66.74

Ответ сервера

Группы заголовков: заголовки безопасности, заголовки кэширования.
status HTTP/2 200
date Thu, 15 Feb 2024 16:55:12 GMT
content-type text/html; charset=UTF-8
x-dns-prefetch-control on
link ; rel="alternate"; type="application/json"
vary Accept-Encoding
x-litespeed-cache hit
cf-cache-status DYNAMIC
report-to {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=ieZL1BYcUX2%2FOI6uu0b%2Ba4hmGrIsS4Nb4sWJYQqKXNPAPdqxpdf4SkOB9%2FiCg777mOhooJQcQStv0wDa98%2FDY6kJAbAqKvou%2FK5NuWtexDqnm4l7AeL3NgHjZA%2FVF8lSV6HsBsA%3D"}],"group":"cf-nel","max_age":604800}
nel {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
strict-transport-security max-age=31536000; includeSubDomains; preload
x-content-type-options nosniff
server cloudflare
cf-ray 855f13c03cfd95f1-ARN
content-encoding gzip
alt-svc h3=":443"; ma=86400

Оцените сайт

Не ставьте оценку если отвечаете на другой отзыв или пишите комментарий:

Можно добавить текст отзыва, ответ на другой отзыв, или просто комментарий к сайту:
captcha