Калькулятор полива газона
Рассчитайте суточный, недельный и сезонный расход воды на полив газона с учётом типа почвы, сезона и способа полива.
—
Недельный расход
литров
—
Расход за сезон (6 мес.)
м³
—
Стоимость за сезон
руб.
—
Рекомендуемая длительность (дождевание)
мин./день
Как пользоваться калькулятором
1
Укажите точную площадь газона в квадратных метрах. Если участок сложной формы, разбейте его на прямоугольники и сложите площади. Например: 5 м × 8 м = 40 м², плюс 3 м × 6 м = 18 м², итого 58 м².
2
Выберите тип почвы. Песчаная почва требует более частого полива (вода быстро уходит вглубь), глинистая удерживает влагу дольше, суглинистая — золотая середина. Если сомневаетесь — оставьте «Суглинистая».
3
Укажите тип газона и сезон. Декоративный партерный газон требует бережного ухода, спортивный — интенсивного полива после нагрузок. В жару норма расхода увеличивается на 20–40%.
4
Нажмите «Рассчитать». Вы получите суточный, недельный, месячный и сезонный объём воды, ориентировочную стоимость и рекомендуемую длительность полива. Все значения уже учитывают запас 10%.
Примеры расчёта
Небольшой газон 60 м², суглинок, универсальный, лето
Базовая норма: 6 л/м². Коэффициент почвы: 1.0. Коэффициент сезона: 1.0.
Суточный расход: 60 × 6 × 1.0 × 1.0 = 360 л. С запасом 10% — 396 л/сутки.
За неделю: ~2 770 л. За месяц: ~11,9 м³. За сезон (6 мес.): ~71,3 м³.
Спортивная площадка 200 м², песчаная почва, жаркое лето
Базовая норма: 9 л/м². Коэффициент почвы: 1.3. Коэффициент сезона: 1.2.
Суточный расход: 200 × 9 × 1.3 × 1.2 = 2 808 л. С запасом 10% — 3 089 л/сутки.
За неделю: ~21 620 л. За месяц: ~92,7 м³. Полив дождеванием потребует около 90–120 минут в день при стандартной производительности системы.
Теневой газон 35 м² под деревьями, чернозём, весна
Базовая норма: 3 л/м². Коэффициент почвы: 0.9. Коэффициент сезона: 0.7.
Суточный расход: 35 × 3 × 0.9 × 0.7 = 66,2 л. С запасом 10% — 73 л/сутки.
За месяц: ~2,2 м³. Капельный полив справится за 20–30 минут в день.
Формулы расчёта
Калькулятор использует следующие формулы, основанные на агрономических справочных нормах:
Основная формула суточного расхода
Qсут = S × N × Kпочва × Kсезон × Kметод, где:
S — площадь газона (м²)
N — базовая норма расхода (л/м² в сутки) по типу газона
Kпочва — коэффициент типа почвы (0.8–1.3)
Kсезон — сезонный коэффициент (0.7–1.2)
Kметод — коэффициент способа полива (0.85–1.15)
Производные формулы
Недельный расход = Qсут × 7
Месячный расход (м³) = (Qсут × 30) / 1000
Сезонный расход = Месячный расход × 6
Стоимость = Сезонный расход × Цена за м³
Длительность (мин) = (Qсут / Производительность системы) × 60
Все результаты округлены до целых чисел (литры) или до одного знака после запятой (м³). Значения даны с запасом 10% для компенсации потерь на испарение и неравномерность.
Нормы и ориентиры
Базовые суточные нормы расхода воды на 1 м² газона в зависимости от типа. Эти значения — ориентировочные и основаны на агрономических справочных данных и рекомендациях по выращиванию газонных трав.
Нормы расхода по типу газона (л/м² в сутки)
Декоративный (партерный): 4–6 л/м² — требует регулярного увлажнения, чувствителен к засухе.
Универсальный (садово-парковый): 5–7 л/м² — самый распространённый, умеренная потребность.
Спортивный (игровой): 7–10 л/м² — высокая нагрузка, требует интенсивного полива для восстановления.
Теневой / мавританский: 3–5 л/м² — меньше испарения, ниже потребность в воде.
Коэффициенты типа почвы
Песчаная: 1.3 — вода быстро просачивается, полив нужен чаще и обильнее.
Суглинистая: 1.0 — оптимальное удержание влаги, эталон для расчёта.
Глинистая: 0.8 — вода задерживается, норма снижена для избежания застоя.
Чернозём: 0.9 — хорошая влагоёмкость, чуть ниже базовой нормы.
Коэффициенты способа полива
Дождевание (спринклеры): 1.15 — потери на испарение и ветер, норма увеличена на 15%.
Капельный полив: 0.85 — вода подаётся прямо к корням, потери минимальны.
Ручной шланг / лейка: 1.05 — небольшие потери, близко к базовой норме.
Фактическая норма может отличаться в зависимости от конкретных условий участка, микроклимата и состояния газона. Всегда ориентируйтесь на влажность почвы на глубине 5–7 см.
Что влияет на результат
- Тип почвы. Песок пропускает воду в 3–5 раз быстрее глины. На песчаных почвах полив дробят на 2–3 раза в день меньшими порциями.
- Погода и сезон. В жаркие дни (выше +28 °C) испарение увеличивается на 30–50%. После дождя норму можно сократить на 50–100% в зависимости от количества осадков.
- Возраст газона. Молодой газон (первые 2–3 недели после посева) требует лёгкого полива 2–3 раза в день. Укоренившийся газон (старше года) поливают реже, но обильнее.
- Затенённость. Газон в тени деревьев или построек испаряет меньше влаги — норму можно снизить на 20–30%.
- Ветер. Сильный ветер увеличивает испарение и сносит воду при дождевании. В ветреную погоду лучше использовать капельный полив или поливать рано утром.
- Уклон участка. На склонах вода стекает, не успевая впитаться. Норму полива делят на 2–3 коротких сеанса с перерывами.
Важные нюансы
- Поливайте утром. Лучшее время — с 4 до 9 утра. Вода успевает впитаться до жары, меньше испарения, лист к вечеру сухой — снижается риск грибковых заболеваний.
- Не поливайте в полдень. Капли воды на листьях работают как линзы и могут вызвать ожоги. Кроме того, до 40% воды теряется на испарение.
- Лучше реже, но обильнее. Один хороший полив (на 10–15 см вглубь) лучше, чем ежедневное смачивание поверхности. Это стимулирует рост глубоких корней.
- Проверяйте влажность почвы. Простой тест: воткните отвёртку или палец в землю на 5–7 см. Если сухо — пора поливать. Если влажно — отложите полив на день.
- Не заливайте газон. Застой воды приводит к загниванию корней, появлению мха и грибковых болезней. Если после полива остаются лужи — норма завышена.
- Следите за равномерностью. При дождевании расставьте по участку несколько банок и проверьте, сколько воды в них попало за 15 минут. Разница между зонами не должна превышать 20%.
Частые ошибки
- Ежедневный скудный полив. Многие поливают газон по 5–10 минут каждый день. Вода смачивает только верхний слой, корни не развиваются вглубь, газон становится уязвимым к засухе.
- Полив в вечернее время. Вода не успевает высохнуть до ночи, мокрая трава — идеальная среда для грибков и плесени. Если нет выбора — поливайте минимум за 2 часа до заката.
- Игнорирование типа почвы. На глине норма без коррекции приводит к заболачиванию. На песке та же норма уходит впустую. Всегда корректируйте норму под свою почву.
- Полив «на глаз» без замера площади. Ошибка в оценке площади на 20% — это ошибка в расходе воды на 20% за весь сезон. Измерьте участок рулеткой хотя бы раз.
- Отсутствие учёта осадков. После дождя (от 10 мм и более) полив можно пропустить на 1–2 дня. Поставьте на участке дождемер или простую банку.
- Слишком высокое давление в системе. При дождевании вода распыляется в мелкую пыль, которая уносится ветром и испаряется. Настройте давление так, чтобы капли были крупными.
Ответы на частые вопросы
Как часто нужно поливать газон?
В среднем 2–3 раза в неделю в умеренную погоду и 4–5 раз в жару. Песчаные почвы требуют более частого полива (до 4–5 раз в неделю), глинистые — реже (1–2 раза). Главный ориентир — влажность почвы на глубине 5–7 см.
Сколько минут в день должен работать спринклер?
Зависит от производительности системы. В среднем выдвижной спринклер выдаёт 10–20 л/мин на сектор. Если суточная норма 400 литров, а система даёт 15 л/мин — потребуется около 27 минут. Калькулятор рассчитывает это автоматически.
Можно ли поливать газон водой из скважины?
Можно, но важно проверить температуру и солевой состав. Ледяная вода (ниже +10 °C) шокирует корни. Рекомендуется набрать воду в накопительную ёмкость для прогрева. При высоком содержании солей — чередовать с дождевой водой.
Как понять, что газону не хватает воды?
Признаки: трава теряет упругость (следы от ног не распрямляются), меняет цвет на сизовато-зелёный, кончики листьев желтеют. При сильной засухе газон буреет и впадает в состояние покоя.
Нужно ли поливать газон после стрижки?
Да, обязательно. Стрижка — стресс для травы. Полив помогает быстрее восстановиться. Норма — 70–80% от обычной суточной. Не косите в жару, лучше делать это утром или вечером.
Работает ли калькулятор для рулонного газона?
Да, но для свежеуложенного рулонного газона (первые 7–10 дней) полив должен быть ежедневным и обильным — до 10–15 л/м² в сутки для приживаемости. После укоренения переходите на стандартные нормы расчёта.
Источники и справочные данные
- Агрономические справочные нормы полива газонных трав для умеренного климатического пояса.
- Рекомендации по выращиванию и уходу за декоративными, спортивными и универсальными газонами.
- Практические нормы расхода воды с учётом типа почвы, сезона и способа полива.
- Данные по производительности типовых систем дождевания и капельного полива для частных участков.
- Расчёт основан на усреднённых значениях. Реальные потребности вашего газона могут отличаться в зависимости от микроклимата, сорта травы, уклона участка и других факторов.
Калькулятор полива газона помогает быстро рассчитать, сколько воды нужно вашему газону в сутки, за неделю и за весь поливной сезон. Инструмент учитывает площадь участка, тип почвы, вид газона, текущий сезон и способ полива — дождевание, капельный полив или ручной шланг. Расчёт ведётся по агрономическим нормам с поправкой на погодные условия и особенности грунта. Используйте калькулятор для планирования полива, настройки автополива и оценки расхода воды на дачном или приусадебном участке.
CiAgICAoZnVuY3Rpb24oKXsKICAgICAgICB2YXIgYXJlYUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbC1sYXduLWFyZWEnKTsKICAgICAgICB2YXIgc29pbFNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWwtc29pbC10eXBlJyk7CiAgICAgICAgdmFyIGxhd25TZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsLWxhd24tdHlwZScpOwogICAgICAgIHZhciBzZWFzb25TZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsLXNlYXNvbicpOwogICAgICAgIHZhciBtZXRob2RTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsLXdhdGVyaW5nLW1ldGhvZCcpOwogICAgICAgIHZhciBwcmljZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbC13YXRlci1wcmljZScpOwogICAgICAgIHZhciBlcnJBcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vyci1hcmVhJyk7CiAgICAgICAgdmFyIGVyclByaWNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vyci1wcmljZScpOwogICAgICAgIHZhciBjYWxjQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbC1jYWxjdWxhdGUtYnRuJyk7CiAgICAgICAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbC1yZXNldC1idG4nKTsKCiAgICAgICAgdmFyIHJlc0RhaWx5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1kYWlseScpOwogICAgICAgIHZhciByZXNXZWVrbHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzLXdlZWtseScpOwogICAgICAgIHZhciByZXNNb250aGx5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1tb250aGx5Jyk7CiAgICAgICAgdmFyIHJlc1NlYXNvbmFsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1zZWFzb25hbCcpOwogICAgICAgIHZhciByZXNDb3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1jb3N0Jyk7CiAgICAgICAgdmFyIHJlc0R1cmF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1kdXJhdGlvbicpOwogICAgICAgIHZhciByZXNOb3RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlcy1ub3RlJyk7CgogICAgICAgIGZ1bmN0aW9uIGNsZWFyRXJyb3JzKCkgewogICAgICAgICAgICBlcnJBcmVhLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgIGVyclByaWNlLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBzaG93RXJyb3IoZWwsIG1zZykgewogICAgICAgICAgICBlbC50ZXh0Q29udGVudCA9IG1zZzsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGdldFNvaWxDb2VmZmljaWVudCh2YWx1ZSkgewogICAgICAgICAgICBzd2l0Y2godmFsdWUpIHsKICAgICAgICAgICAgICAgIGNhc2UgJ3NhbmR5JzogcmV0dXJuIDEuMzsKICAgICAgICAgICAgICAgIGNhc2UgJ2xvYW0nOiByZXR1cm4gMS4wOwogICAgICAgICAgICAgICAgY2FzZSAnY2xheSc6IHJldHVybiAwLjg7CiAgICAgICAgICAgICAgICBjYXNlICdjaGVybm96ZW0nOiByZXR1cm4gMC45OwogICAgICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIDEuMDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZ2V0TGF3bk5vcm0odmFsdWUpIHsKICAgICAgICAgICAgc3dpdGNoKHZhbHVlKSB7CiAgICAgICAgICAgICAgICBjYXNlICdkZWNvcmF0aXZlJzogcmV0dXJuIDU7CiAgICAgICAgICAgICAgICBjYXNlICd1bml2ZXJzYWwnOiByZXR1cm4gNjsKICAgICAgICAgICAgICAgIGNhc2UgJ3Nwb3J0cyc6IHJldHVybiA4OwogICAgICAgICAgICAgICAgY2FzZSAnc2hhZGUnOiByZXR1cm4gNDsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiA2OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBnZXRTZWFzb25Db2VmZmljaWVudCh2YWx1ZSkgewogICAgICAgICAgICBzd2l0Y2godmFsdWUpIHsKICAgICAgICAgICAgICAgIGNhc2UgJ3NwcmluZy1hdXR1bW4nOiByZXR1cm4gMC43OwogICAgICAgICAgICAgICAgY2FzZSAnc3VtbWVyJzogcmV0dXJuIDEuMDsKICAgICAgICAgICAgICAgIGNhc2UgJ2hvdC1zdW1tZXInOiByZXR1cm4gMS4yOwogICAgICAgICAgICAgICAgZGVmYXVsdDogcmV0dXJuIDEuMDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZ2V0TWV0aG9kQ29lZmZpY2llbnQodmFsdWUpIHsKICAgICAgICAgICAgc3dpdGNoKHZhbHVlKSB7CiAgICAgICAgICAgICAgICBjYXNlICdzcHJpbmtsZXInOiByZXR1cm4gMS4xNTsKICAgICAgICAgICAgICAgIGNhc2UgJ2RyaXAnOiByZXR1cm4gMC44NTsKICAgICAgICAgICAgICAgIGNhc2UgJ2hvc2UnOiByZXR1cm4gMS4wNTsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiAxLjA7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGdldFNwcmlua2xlclJhdGUoKSB7CiAgICAgICAgICAgIHJldHVybiAxNTsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGNhbGN1bGF0ZSgpIHsKICAgICAgICAgICAgY2xlYXJFcnJvcnMoKTsKICAgICAgICAgICAgdmFyIGFyZWFSYXcgPSBhcmVhSW5wdXQudmFsdWUudHJpbSgpOwogICAgICAgICAgICB2YXIgcHJpY2VSYXcgPSBwcmljZUlucHV0LnZhbHVlLnRyaW0oKTsKCiAgICAgICAgICAgIGlmIChhcmVhUmF3ID09PSAnJykgewogICAgICAgICAgICAgICAgc2hvd0Vycm9yKGVyckFyZWEsICfQn9C+0LbQsNC70YPQudGB0YLQsCwg0YPQutCw0LbQuNGC0LUg0L/Qu9C+0YnQsNC00Ywg0LPQsNC30L7QvdCwLicpOwogICAgICAgICAgICAgICAgcmVzZXRSZXN1bHRzKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGFyZWEgPSBwYXJzZUZsb2F0KGFyZWFSYXcpOwogICAgICAgICAgICBpZiAoaXNOYU4oYXJlYSkgfHwgYXJlYSA8PSAwKSB7CiAgICAgICAgICAgICAgICBzaG93RXJyb3IoZXJyQXJlYSwgJ9Cf0LvQvtGJ0LDQtNGMINC00L7Qu9C20L3QsCDQsdGL0YLRjCDQv9C+0LvQvtC20LjRgtC10LvRjNC90YvQvCDRh9C40YHQu9C+0LwuJyk7CiAgICAgICAgICAgICAgICByZXNldFJlc3VsdHMoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYXJlYSA+IDEwMDAwMCkgewogICAgICAgICAgICAgICAgc2hvd0Vycm9yKGVyckFyZWEsICfQn9C70L7RidCw0LTRjCDQvdC1INC00L7Qu9C20L3QsCDQv9GA0LXQstGL0YjQsNGC0YwgMTAwIDAwMCDQvMKyLicpOwogICAgICAgICAgICAgICAgcmVzZXRSZXN1bHRzKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBwcmljZSA9IDA7CiAgICAgICAgICAgIGlmIChwcmljZVJhdyAhPT0gJycpIHsKICAgICAgICAgICAgICAgIHByaWNlID0gcGFyc2VGbG9hdChwcmljZVJhdyk7CiAgICAgICAgICAgICAgICBpZiAoaXNOYU4ocHJpY2UpIHx8IHByaWNlIDwgMCkgewogICAgICAgICAgICAgICAgICAgIHNob3dFcnJvcihlcnJQcmljZSwgJ9Cm0LXQvdCwINCy0L7QtNGLINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDQvtGC0YDQuNGG0LDRgtC10LvRjNC90L7QuS4nKTsKICAgICAgICAgICAgICAgICAgICByZXNldFJlc3VsdHMoKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBzb2lsSyA9IGdldFNvaWxDb2VmZmljaWVudChzb2lsU2VsZWN0LnZhbHVlKTsKICAgICAgICAgICAgdmFyIGxhd25Ob3JtID0gZ2V0TGF3bk5vcm0obGF3blNlbGVjdC52YWx1ZSk7CiAgICAgICAgICAgIHZhciBzZWFzb25LID0gZ2V0U2Vhc29uQ29lZmZpY2llbnQoc2Vhc29uU2VsZWN0LnZhbHVlKTsKICAgICAgICAgICAgdmFyIG1ldGhvZEsgPSBnZXRNZXRob2RDb2VmZmljaWVudChtZXRob2RTZWxlY3QudmFsdWUpOwogICAgICAgICAgICB2YXIgc3ByaW5rbGVyUmF0ZSA9IGdldFNwcmlua2xlclJhdGUoKTsKCiAgICAgICAgICAgIHZhciBkYWlseSA9IGFyZWEgKiBsYXduTm9ybSAqIHNvaWxLICogc2Vhc29uSyAqIG1ldGhvZEs7CiAgICAgICAgICAgIHZhciBkYWlseVdpdGhNYXJnaW4gPSBkYWlseSAqIDEuMTsKCiAgICAgICAgICAgIHZhciB3ZWVrbHkgPSBkYWlseVdpdGhNYXJnaW4gKiA3OwogICAgICAgICAgICB2YXIgbW9udGhseU0zID0gKGRhaWx5V2l0aE1hcmdpbiAqIDMwKSAvIDEwMDA7CiAgICAgICAgICAgIHZhciBzZWFzb25hbE0zID0gbW9udGhseU0zICogNjsKICAgICAgICAgICAgdmFyIGNvc3QgPSBzZWFzb25hbE0zICogcHJpY2U7CiAgICAgICAgICAgIHZhciBkdXJhdGlvbk1pbnV0ZXMgPSAoZGFpbHlXaXRoTWFyZ2luIC8gc3ByaW5rbGVyUmF0ZSkgKiA2MDsKCiAgICAgICAgICAgIHJlc0RhaWx5LnRleHRDb250ZW50ID0gTWF0aC5yb3VuZChkYWlseVdpdGhNYXJnaW4pOwogICAgICAgICAgICByZXNXZWVrbHkudGV4dENvbnRlbnQgPSBNYXRoLnJvdW5kKHdlZWtseSk7CiAgICAgICAgICAgIHJlc01vbnRobHkudGV4dENvbnRlbnQgPSBtb250aGx5TTMudG9GaXhlZCgxKTsKICAgICAgICAgICAgcmVzU2Vhc29uYWwudGV4dENvbnRlbnQgPSBzZWFzb25hbE0zLnRvRml4ZWQoMSk7CgogICAgICAgICAgICBpZiAocHJpY2UgPiAwKSB7CiAgICAgICAgICAgICAgICByZXNDb3N0LnRleHRDb250ZW50ID0gTWF0aC5yb3VuZChjb3N0KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJlc0Nvc3QudGV4dENvbnRlbnQgPSAn0L3QtSDRg9C60LDQt9Cw0L3QsCc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJlc0R1cmF0aW9uLnRleHRDb250ZW50ID0gTWF0aC5yb3VuZChkdXJhdGlvbk1pbnV0ZXMpOwoKICAgICAgICAgICAgaWYgKG1ldGhvZFNlbGVjdC52YWx1ZSA9PT0gJ2RyaXAnKSB7CiAgICAgICAgICAgICAgICByZXNEdXJhdGlvbi50ZXh0Q29udGVudCA9IE1hdGgucm91bmQoZHVyYXRpb25NaW51dGVzICogMC41KTsKICAgICAgICAgICAgICAgIHJlc05vdGUudGV4dENvbnRlbnQgPSAn0JrQsNC/0LXQu9GM0L3Ri9C5INC/0L7Qu9C40LIg0Y3RhNGE0LXQutGC0LjQstC10L0uINCf0L7Qu9C40LLQsNC50YLQtSAz4oCTNCDRgNCw0LfQsCDQsiDQvdC10LTQtdC70Y4sINC/0YDQvtCy0LXRgNGP0LnRgtC1INCy0LvQsNC20L3QvtGB0YLRjCDQv9C+0YfQstGLLic7CiAgICAgICAgICAgIH0gZWxzZSBpZiAobWV0aG9kU2VsZWN0LnZhbHVlID09PSAnc3ByaW5rbGVyJykgewogICAgICAgICAgICAgICAgcmVzTm90ZS50ZXh0Q29udGVudCA9ICfQoNCw0LfQsdC10LnRgtC1INC/0L7Qu9C40LIg0L3QsCAyINGB0LXQsNC90YHQsCDRgSDQv9C10YDQtdGA0YvQstC+0LwgMzAg0LzQuNC90YPRgiDQtNC70Y8g0LvRg9GH0YjQtdCz0L4g0LLQv9C40YLRi9Cy0LDQvdC40Y8uINCf0L7Qu9C40LLQsNC50YLQtSDRgNCw0L3QviDRg9GC0YDQvtC8Lic7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXNOb3RlLnRleHRDb250ZW50ID0gJ9Cf0YDQuCDRgNGD0YfQvdC+0Lwg0L/QvtC70LjQstC1INGB0YLQsNGA0LDQudGC0LXRgdGMINGA0LDQstC90L7QvNC10YDQvdC+INGA0LDRgdC/0YDQtdC00LXQu9GP0YLRjCDQstC+0LTRgyDQv9C+INCy0YHQtdC5INC/0LvQvtGJ0LDQtNC4LiDQmNGB0L/QvtC70YzQt9GD0LnRgtC1INC90LDRgdCw0LTQutGDLdGA0LDRgdC/0YvQu9C40YLQtdC70YwuJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGRhaWx5V2l0aE1hcmdpbiA8IDUwKSB7CiAgICAgICAgICAgICAgICByZXNOb3RlLnRleHRDb250ZW50ICs9ICcg0J/QvtGC0YDQtdCx0L3QvtGB0YLRjCDQvdC10LHQvtC70YzRiNCw0Y8g4oCUINC80L7QttC90L4g0L7QsdC+0LnRgtC40YHRjCDQu9C10LnQutC+0Lkg0LjQu9C4INC/0LXRgNC10L3QvtGB0L3Ri9C8INGA0LDQt9Cx0YDRi9C30LPQuNCy0LDRgtC10LvQtdC8Lic7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGRhaWx5V2l0aE1hcmdpbiA+IDIwMDApIHsKICAgICAgICAgICAgICAgIHJlc05vdGUudGV4dENvbnRlbnQgKz0gJyDQkdC+0LvRjNGI0L7QuSDRgNCw0YHRhdC+0LQg4oCUINGA0LDRgdGB0LzQvtGC0YDQuNGC0LUg0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60YPRjiDRgdC40YHRgtC10LzRgyDQv9C+0LvQuNCy0LAg0YEg0LfQvtC90LjRgNC+0LLQsNC90LjQtdC8Lic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHJlc2V0UmVzdWx0cygpIHsKICAgICAgICAgICAgcmVzRGFpbHkudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICAgICAgcmVzV2Vla2x5LnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgICAgIHJlc01vbnRobHkudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICAgICAgcmVzU2Vhc29uYWwudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICAgICAgcmVzQ29zdC50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgICAgICByZXNEdXJhdGlvbi50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgICAgICByZXNOb3RlLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiByZXNldEZvcm0oKSB7CiAgICAgICAgICAgIGFyZWFJbnB1dC52YWx1ZSA9ICcnOwogICAgICAgICAgICBwcmljZUlucHV0LnZhbHVlID0gJzAnOwogICAgICAgICAgICBzb2lsU2VsZWN0LnNlbGVjdGVkSW5kZXggPSAxOwogICAgICAgICAgICBsYXduU2VsZWN0LnNlbGVjdGVkSW5kZXggPSAxOwogICAgICAgICAgICBzZWFzb25TZWxlY3Quc2VsZWN0ZWRJbmRleCA9IDE7CiAgICAgICAgICAgIG1ldGhvZFNlbGVjdC5zZWxlY3RlZEluZGV4ID0gMDsKICAgICAgICAgICAgY2xlYXJFcnJvcnMoKTsKICAgICAgICAgICAgcmVzZXRSZXN1bHRzKCk7CiAgICAgICAgfQoKICAgICAgICBjYWxjQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2FsY3VsYXRlKTsKICAgICAgICByZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0Rm9ybSk7CgogICAgICAgIGFyZWFJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIGNhbGN1bGF0ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcHJpY2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHsKICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICAgIGNhbGN1bGF0ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9KSgpOwo=