Калькулятор удобрений для томатов
Рассчитайте точный расход удобрений для подкормки томатов на любом этапе роста — от рассады до сбора урожая.
—
Расход на 1 обработку
г
—
Объём рабочего раствора
л
—
Общий расход за сезон (с запасом 10%)
кг
—
Количество упаковок по 1 кг
шт
—
Ориентировочная стоимость
₽
Как пользоваться калькулятором
1
Укажите площадь посадки в квадратных метрах — например, 12 м² для небольшой теплицы или 6 м² для двух грядок. Это основной параметр для расчёта объёма рабочего раствора.
2
Выберите фазу роста томатов: рассада, вегетативный рост, цветение или плодоношение. От этого зависят норма полива и рекомендуемое количество обработок за сезон.
3
Выберите тип удобрения и способ внесения (корневая подкормка или опрыскивание). Норма расхода на 10 литров воды подставится автоматически из справочных данных, но вы можете скорректировать её вручную.
4
Нажмите «Рассчитать» — результат покажет расход удобрения на одну обработку, общий объём раствора, количество обработок за сезон и итоговую потребность в удобрениях с запасом 10%.
Примеры расчёта
Теплица 18 м², 50 кустов, плодоношение
Площадь — 18 м², фаза — плодоношение. Выбрана калийная селитра (20 г на 10 л), корневая подкормка. Норма полива — 10 л/м², объём раствора — 180 л. Расход на обработку: (20 × 180) / 10 = 360 г. За сезон плодоношения — 5 обработок. Общий расход с запасом 10%: 360 × 5 × 1,1 ≈ 1,98 кг. Потребуется 2 упаковки по 1 кг.
Открытая грядка 6 м², 20 кустов, вегетативный рост
Площадь — 6 м², фаза — вегетативный рост. Выбрана азофоска (35 г на 10 л), корневая подкормка. Норма полива — 6 л/м², объём раствора — 36 л. Расход на обработку: (35 × 36) / 10 = 126 г. За вегетативный период — 4 обработки. Общий расход с запасом 10%: 126 × 4 × 1,1 ≈ 554 г. Достаточно 1 упаковки 0,5 кг.
Рассада на подоконнике, 1,5 м², 30 горшочков
Площадь — 1,5 м², фаза — рассада. Выбрано комплексное удобрение для томатов (25 г на 10 л), корневая подкормка. Норма полива — 4 л/м², объём раствора — 6 л. Расход на обработку: (25 × 6) / 10 = 15 г. За период рассады — 3 обработки. Общий расход с запасом: 15 × 3 × 1,1 ≈ 50 г. Минимальный расход — хватит небольшой пачки.
Формулы расчёта
Все вычисления основаны на трёх ключевых взаимосвязях. Ниже приведены формулы, используемые калькулятором:
Нормы и ориентиры
Все нормы — ориентировочные. Точные значения зависят от конкретного удобрения, сорта томатов, погоды и состояния почвы. Всегда сверяйтесь с инструкцией производителя.
| Фаза роста |
Норма полива (л/м²) |
Обработок за сезон |
Акцент питания |
| Рассада |
3–5 |
2–3 |
Фосфор (корни), умеренный азот |
| Вегетативный рост |
5–8 |
3–4 |
Азот + фосфор + калий (сбалансированно) |
| Цветение |
6–10 |
2–3 |
Фосфор + калий, бор (завязывание) |
| Плодоношение |
8–12 |
4–6 |
Калий + кальций (качество плодов) |
При опрыскивании по листу норма раствора снижается до 3–5 л на 100 м² (30–50 мл/м²). Концентрация удобрения при этом обычно остаётся прежней или немного снижается.
Диапазоны норм расхода удобрений на 10 л воды: азофоска — 25–40 г, суперфосфат (вытяжка) — 20–30 г, калийная селитра — 15–25 г, монофосфат калия — 10–15 г, кальциевая селитра — 15–25 г, комплексное томатное — 20–35 г (по инструкции конкретной марки).
Что влияет на результат
- Тип почвы. На песчаных почвах удобрения вымываются быстрее — может потребоваться более частое внесение меньшими дозами. На глинистых — наоборот, интервал между подкормками можно увеличить.
- Погода и климат. В жаркую погоду томаты потребляют больше воды и питания. В дождливый сезон часть удобрений вымывается из корневой зоны, особенно на открытых грядках.
- Сорт томатов. Индетерминантные (высокорослые) сорта требуют больше питания за сезон, чем детерминантные (низкорослые). Крупноплодные сорта более требовательны к калию и кальцию.
- Фаза роста. Потребность в NPK резко меняется: на старте нужен фосфор, в росте — азот, при плодоношении — калий. Неправильный баланс снижает урожай.
- Качество воды. Жёсткая вода может снижать доступность некоторых элементов. При использовании воды из скважины учитывайте её минерализацию.
- Мульчирование. Мульча сохраняет влагу и stabilizирует температуру почвы, что улучшает усвоение удобрений и может снизить потребность в поливе на 20–30%.
Важные нюансы
- Окончательную дозировку всегда сверяйте с инструкцией на упаковке конкретного удобрения. Справочные нормы — ориентир, а не абсолютная истина.
- Кальциевую селитру нельзя смешивать в одном баке с суперфосфатом и серосодержащими удобрениями — выпадает осадок, забиваются форсунки.
- Монофосфат калия нежелательно смешивать с кальциевыми и магниевыми удобрениями в концентрированном виде. Готовьте отдельные баковые смеси или проверяйте совместимость.
- При опрыскивании по листу не превышайте концентрацию — можно сжечь листовую пластину. Лучше сделать слабее раствор и повторить обработку через 7–10 дней.
- Не вносите удобрения по сухой почве — корни не усвоят питание, а концентрированный раствор может обжечь корневые волоски. Предварительно пролейте грядку чистой водой.
- Запас 10%, заложенный в калькуляторе, учитывает возможные потери при приготовлении раствора и неравномерность расхода. Для больших участков (более 50 м²) запас можно увеличить до 15%.
Частые ошибки
- Считать без запаса. Брать удобрения ровно под расчёт — риск остаться без подкормки в критический момент. Всегда округляйте количество упаковок вверх.
- Превышать дозировку «для верности». Избыток удобрений опаснее лёгкого дефицита. Перекормленные томаты жируют, сбрасывают завязи и накапливают нитраты в плодах.
- Игнорировать фазу роста. Кормить томаты азотом во время плодоношения — получить мощные кусты без плодов. На каждом этапе — свой акцент в питании.
- Поливать удобрениями по листу в жару. Капли раствора работают как линзы, вызывая ожоги. Опрыскивайте рано утром или вечером, когда солнце не активно.
- Забывать про кальций. Вершинная гниль плодов — классический признак дефицита кальция. Включайте кальциевую селитру в график подкормок, особенно в фазе налива плодов.
- Использовать холодную воду. Температура раствора должна быть не ниже 18–20°C. Холодная вода — стресс для корней и снижение усвоения питания.
Ответы на частые вопросы
Можно ли смешивать разные удобрения в одной бочке?
Можно, но не все. Проверяйте таблицы совместимости. Кальциевая селитра — «капризный» компонент, её часто вносят отдельно. Монофосфат калия не дружит с кальцием и магнием. Азофоска и калийная селитра — более «компанейские».
Как часто нужно подкармливать томаты?
В среднем — раз в 10–14 дней. На бедных почвах интервал сокращают до 7–10 дней. При активном плодоношении высокорослых сортов подкормки могут быть еженедельными, но в меньшей концентрации.
Что делать, если перекормил томаты азотом?
Прекратить азотные подкормки на 2–3 недели. Обильно пролить почву чистой водой для вымывания излишков. Внести калийно-фосфорные удобрения, чтобы перенаправить силы растения на цветение и плоды.
Подходит ли калькулятор для черри и крупноплодных сортов?
Да. Базовые нормы расхода одинаковы. Но учтите: крупноплодные сорта более требовательны к калию и кальцию, а черри часто нуждаются в чуть меньших дозах азота. Корректируйте норму вручную с учётом особенностей сорта.
Нужно ли подкармливать томаты в открытом грунте иначе, чем в теплице?
Да. В открытом грунте дожди вымывают удобрения, поэтому может потребоваться более частое внесение. В теплице выше температура и влажность — томаты растут быстрее и потребляют больше питания на единицу площади.
Когда вносить кальциевую селитру — до или после основных подкормок?
Лучше — отдельной обработкой, с интервалом 3–5 дней от других подкормок. Кальций плохо совместим с фосфатами и сульфатами. Идеально — опрыскивание по листу кальциевой селитрой в фазе налива первых плодов.
Источники и справочные данные
- Агрономические справочные нормы по выращиванию томатов в открытом и защищённом грунте.
- Инструкции производителей удобрений и средств защиты растений (азофоска, суперфосфат, калийная селитра, монофосфат калия, кальциевая селитра, комплексные удобрения для томатов).
- Рекомендации по выращиванию овощных культур в личных подсобных хозяйствах — нормы полива, схемы посадки, кратность подкормок.
- Практические нормы расхода воды и рабочего раствора для корневых и листовых подкормок паслёновых культур.
- Точные нормы применения всегда берите из официальной инструкции конкретного препарата. Расчёты калькулятора — ориентир для планирования закупки удобрений на сезон.
Калькулятор удобрений для томатов помогает дачникам и огородникам быстро рассчитать, сколько удобрения потребуется на сезон для подкормки томатов в теплице или на грядке. Достаточно указать площадь посадки, выбрать фазу роста и тип удобрения — и вы получите точный расход на одну обработку, общий объём рабочего раствора, количество обработок и итоговую потребность в килограммах и упаковках. Инструмент учитывает нормы полива и справочные дозировки для шести популярных видов удобрений, включая азофоску, калийную селитру и кальциевую селитру.
Расчёт ведётся с запасом 10% — это стандартная практика, которая позволяет компенсировать неравномерность внесения и избежать нехватки удобрения в разгар сезона. Все формулы прозрачны и основаны на агрономических нормах: объём раствора зависит от площади и фазы роста, а расход удобрения прямо пропорционален концентрации и объёму воды. Калькулятор подходит как для небольших участков с десятком кустов, так и для теплиц площадью 20–30 м².
CiAgICAoZnVuY3Rpb24oKXsKICAgICAgICB2YXIgYXJlYUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi10b21hdG8tYXJlYScpOwogICAgICAgIHZhciBwbGFudHNJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tdG9tYXRvLXBsYW50cycpOwogICAgICAgIHZhciBzdGFnZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tdG9tYXRvLXN0YWdlJyk7CiAgICAgICAgdmFyIGZlcnRpbGl6ZXJTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXRvbWF0by1mZXJ0aWxpemVyJyk7CiAgICAgICAgdmFyIG1ldGhvZFNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tdG9tYXRvLW1ldGhvZCcpOwogICAgICAgIHZhciByYXRlSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXRvbWF0by1yYXRlJyk7CiAgICAgICAgdmFyIGhpbnRSYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1oaW50LXJhdGUnKTsKICAgICAgICB2YXIgZXJyb3JBcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1lcnJvci1hcmVhJyk7CiAgICAgICAgdmFyIGVycm9yUGxhbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1lcnJvci1wbGFudHMnKTsKICAgICAgICB2YXIgZXJyb3JSYXRlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1lcnJvci1yYXRlJyk7CiAgICAgICAgdmFyIGNhbGNCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLWNhbGMtYnRuJyk7CiAgICAgICAgdmFyIHJlc2V0QnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1yZXNldC1idG4nKTsKCiAgICAgICAgdmFyIHJlc1BlclRyZWF0bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzLXBlci10cmVhdG1lbnQnKTsKICAgICAgICB2YXIgcmVzV2F0ZXJWb2x1bWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJlcy13YXRlci12b2x1bWUnKTsKICAgICAgICB2YXIgcmVzVHJlYXRtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tcmVzLXRyZWF0bWVudHMnKTsKICAgICAgICB2YXIgcmVzVG90YWxTZWFzb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJlcy10b3RhbC1zZWFzb24nKTsKICAgICAgICB2YXIgcmVzUGFja2FnZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJlcy1wYWNrYWdlcycpOwogICAgICAgIHZhciByZXNDb3N0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1yZXMtY29zdCcpOwoKICAgICAgICB2YXIgZGVmYXVsdFJhdGVzID0gewogICAgICAgICAgICBhem9mb3NrYTogeyBzZWVkbGluZzogMjUsIHZlZ2V0YXRpdmU6IDM1LCBmbG93ZXJpbmc6IDMwLCBmcnVpdGluZzogMzAgfSwKICAgICAgICAgICAgc3VwZXJwaG9zcGhhdGU6IHsgc2VlZGxpbmc6IDIwLCB2ZWdldGF0aXZlOiAyNSwgZmxvd2VyaW5nOiAyNSwgZnJ1aXRpbmc6IDIwIH0sCiAgICAgICAgICAgICdwb3Rhc3NpdW0tbml0cmF0ZSc6IHsgc2VlZGxpbmc6IDEwLCB2ZWdldGF0aXZlOiAxNSwgZmxvd2VyaW5nOiAyMCwgZnJ1aXRpbmc6IDIwIH0sCiAgICAgICAgICAgIG1vbm9wb3Rhc3NpdW06IHsgc2VlZGxpbmc6IDgsIHZlZ2V0YXRpdmU6IDEwLCBmbG93ZXJpbmc6IDEyLCBmcnVpdGluZzogMTIgfSwKICAgICAgICAgICAgJ2NhbGNpdW0tbml0cmF0ZSc6IHsgc2VlZGxpbmc6IDE1LCB2ZWdldGF0aXZlOiAyMCwgZmxvd2VyaW5nOiAyMCwgZnJ1aXRpbmc6IDIwIH0sCiAgICAgICAgICAgICdjb21wbGV4LXRvbWF0byc6IHsgc2VlZGxpbmc6IDIwLCB2ZWdldGF0aXZlOiAzMCwgZmxvd2VyaW5nOiAyNSwgZnJ1aXRpbmc6IDI1IH0KICAgICAgICB9OwoKICAgICAgICB2YXIgd2F0ZXJSYXRlcyA9IHsKICAgICAgICAgICAgc2VlZGxpbmc6IHsgcm9vdDogNCwgZm9saWFyOiAxLjUgfSwKICAgICAgICAgICAgdmVnZXRhdGl2ZTogeyByb290OiA2LCBmb2xpYXI6IDIuNSB9LAogICAgICAgICAgICBmbG93ZXJpbmc6IHsgcm9vdDogOCwgZm9saWFyOiAzIH0sCiAgICAgICAgICAgIGZydWl0aW5nOiB7IHJvb3Q6IDEwLCBmb2xpYXI6IDQgfQogICAgICAgIH07CgogICAgICAgIHZhciB0cmVhdG1lbnRDb3VudHMgPSB7CiAgICAgICAgICAgIHNlZWRsaW5nOiAzLAogICAgICAgICAgICB2ZWdldGF0aXZlOiA0LAogICAgICAgICAgICBmbG93ZXJpbmc6IDMsCiAgICAgICAgICAgIGZydWl0aW5nOiA1CiAgICAgICAgfTsKCiAgICAgICAgdmFyIHByaWNlc1BlcktnID0gewogICAgICAgICAgICBhem9mb3NrYTogMTgwLAogICAgICAgICAgICBzdXBlcnBob3NwaGF0ZTogMjIwLAogICAgICAgICAgICAncG90YXNzaXVtLW5pdHJhdGUnOiAzNTAsCiAgICAgICAgICAgIG1vbm9wb3Rhc3NpdW06IDQ4MCwKICAgICAgICAgICAgJ2NhbGNpdW0tbml0cmF0ZSc6IDI2MCwKICAgICAgICAgICAgJ2NvbXBsZXgtdG9tYXRvJzogMzAwCiAgICAgICAgfTsKCiAgICAgICAgZnVuY3Rpb24gdXBkYXRlRGVmYXVsdFJhdGUoKSB7CiAgICAgICAgICAgIHZhciBmZXJ0aWxpemVyID0gZmVydGlsaXplclNlbGVjdC52YWx1ZTsKICAgICAgICAgICAgdmFyIHN0YWdlID0gc3RhZ2VTZWxlY3QudmFsdWU7CiAgICAgICAgICAgIGlmIChkZWZhdWx0UmF0ZXNbZmVydGlsaXplcl0gJiYgZGVmYXVsdFJhdGVzW2ZlcnRpbGl6ZXJdW3N0YWdlXSAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICByYXRlSW5wdXQudmFsdWUgPSBkZWZhdWx0UmF0ZXNbZmVydGlsaXplcl1bc3RhZ2VdOwogICAgICAgICAgICAgICAgaWYgKGhpbnRSYXRlKSB7CiAgICAgICAgICAgICAgICAgICAgaGludFJhdGUudGV4dENvbnRlbnQgPSAn0JfQvdCw0YfQtdC90LjQtSDQv9C+0LTQvtCx0YDQsNC90L4g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60LguINCf0YDQuCDQvdC10L7QsdGF0L7QtNC40LzQvtGB0YLQuCDQuNC30LzQtdC90LjRgtC1INCy0YDRg9GH0L3Rg9GOLic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIGhpZGVBbGxFcnJvcnMoKSB7CiAgICAgICAgICAgIGVycm9yQXJlYS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICBlcnJvclBsYW50cy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgICAgICBlcnJvclJhdGUuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHNob3dFcnJvcihlbCkgewogICAgICAgICAgICBpZiAoZWwpIGVsLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gY2xlYXJSZXN1bHRzKCkgewogICAgICAgICAgICB2YXIgZGFzaGVzID0gWydyZXNQZXJUcmVhdG1lbnQnLCdyZXNXYXRlclZvbHVtZScsJ3Jlc1RyZWF0bWVudHMnLCdyZXNUb3RhbFNlYXNvbicsJ3Jlc1BhY2thZ2VzJywncmVzQ29zdCddOwogICAgICAgICAgICB2YXIgbWFwcGluZyA9IHsKICAgICAgICAgICAgICAgIHJlc1BlclRyZWF0bWVudDogcmVzUGVyVHJlYXRtZW50LAogICAgICAgICAgICAgICAgcmVzV2F0ZXJWb2x1bWU6IHJlc1dhdGVyVm9sdW1lLAogICAgICAgICAgICAgICAgcmVzVHJlYXRtZW50czogcmVzVHJlYXRtZW50cywKICAgICAgICAgICAgICAgIHJlc1RvdGFsU2Vhc29uOiByZXNUb3RhbFNlYXNvbiwKICAgICAgICAgICAgICAgIHJlc1BhY2thZ2VzOiByZXNQYWNrYWdlcywKICAgICAgICAgICAgICAgIHJlc0Nvc3Q6IHJlc0Nvc3QKICAgICAgICAgICAgfTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXNoZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nW2Rhc2hlc1tpXV0pIG1hcHBpbmdbZGFzaGVzW2ldXS50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjYWxjdWxhdGUoKSB7CiAgICAgICAgICAgIGhpZGVBbGxFcnJvcnMoKTsKICAgICAgICAgICAgdmFyIGhhc0Vycm9yID0gZmFsc2U7CgogICAgICAgICAgICB2YXIgYXJlYVJhdyA9IGFyZWFJbnB1dC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIHZhciBwbGFudHNSYXcgPSBwbGFudHNJbnB1dC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIHZhciByYXRlUmF3ID0gcmF0ZUlucHV0LnZhbHVlLnRyaW0oKTsKCiAgICAgICAgICAgIHZhciBhcmVhID0gcGFyc2VGbG9hdChhcmVhUmF3KTsKICAgICAgICAgICAgaWYgKGFyZWFSYXcgPT09ICcnIHx8IGlzTmFOKGFyZWEpIHx8IGFyZWEgPD0gMCkgewogICAgICAgICAgICAgICAgc2hvd0Vycm9yKGVycm9yQXJlYSk7CiAgICAgICAgICAgICAgICBoYXNFcnJvciA9IHRydWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBwbGFudHMgPSAwOwogICAgICAgICAgICBpZiAocGxhbnRzUmF3ICE9PSAnJykgewogICAgICAgICAgICAgICAgcGxhbnRzID0gcGFyc2VJbnQocGxhbnRzUmF3LCAxMCk7CiAgICAgICAgICAgICAgICBpZiAoaXNOYU4ocGxhbnRzKSB8fCBwbGFudHMgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgc2hvd0Vycm9yKGVycm9yUGxhbnRzKTsKICAgICAgICAgICAgICAgICAgICBoYXNFcnJvciA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciByYXRlID0gcGFyc2VGbG9hdChyYXRlUmF3KTsKICAgICAgICAgICAgaWYgKHJhdGVSYXcgPT09ICcnIHx8IGlzTmFOKHJhdGUpIHx8IHJhdGUgPD0gMCkgewogICAgICAgICAgICAgICAgc2hvd0Vycm9yKGVycm9yUmF0ZSk7CiAgICAgICAgICAgICAgICBoYXNFcnJvciA9IHRydWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChoYXNFcnJvcikgewogICAgICAgICAgICAgICAgY2xlYXJSZXN1bHRzKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBzdGFnZSA9IHN0YWdlU2VsZWN0LnZhbHVlOwogICAgICAgICAgICB2YXIgbWV0aG9kID0gbWV0aG9kU2VsZWN0LnZhbHVlOwogICAgICAgICAgICB2YXIgZmVydGlsaXplciA9IGZlcnRpbGl6ZXJTZWxlY3QudmFsdWU7CgogICAgICAgICAgICB2YXIgd2F0ZXJSYXRlID0gKHdhdGVyUmF0ZXNbc3RhZ2VdICYmIHdhdGVyUmF0ZXNbc3RhZ2VdW21ldGhvZF0pID8gd2F0ZXJSYXRlc1tzdGFnZV1bbWV0aG9kXSA6IDY7CiAgICAgICAgICAgIHZhciB3YXRlclZvbHVtZSA9IGFyZWEgKiB3YXRlclJhdGU7CgogICAgICAgICAgICB2YXIgZmVydFBlclRyZWF0bWVudCA9IChyYXRlICogd2F0ZXJWb2x1bWUpIC8gMTA7CgogICAgICAgICAgICB2YXIgdHJlYXRtZW50cyA9IHRyZWF0bWVudENvdW50c1tzdGFnZV0gfHwgMzsKCiAgICAgICAgICAgIHZhciB0b3RhbFNlYXNvbmFsS2cgPSAoZmVydFBlclRyZWF0bWVudCAqIHRyZWF0bWVudHMgKiAxLjEpIC8gMTAwMDsKCiAgICAgICAgICAgIHZhciBwYWNrYWdlV2VpZ2h0ID0gMTsKICAgICAgICAgICAgdmFyIHBhY2thZ2VzTmVlZGVkID0gTWF0aC5jZWlsKHRvdGFsU2Vhc29uYWxLZyAvIHBhY2thZ2VXZWlnaHQpOwogICAgICAgICAgICBpZiAocGFja2FnZXNOZWVkZWQgPCAxICYmIHRvdGFsU2Vhc29uYWxLZyA+IDApIHBhY2thZ2VzTmVlZGVkID0gMTsKCiAgICAgICAgICAgIHZhciBwcmljZVBlcktnID0gcHJpY2VzUGVyS2dbZmVydGlsaXplcl0gfHwgMjUwOwogICAgICAgICAgICB2YXIgdG90YWxDb3N0ID0gTWF0aC5yb3VuZChwYWNrYWdlc05lZWRlZCAqIHBhY2thZ2VXZWlnaHQgKiBwcmljZVBlcktnKTsKCiAgICAgICAgICAgIHJlc1BlclRyZWF0bWVudC50ZXh0Q29udGVudCA9IE1hdGgucm91bmQoZmVydFBlclRyZWF0bWVudCk7CiAgICAgICAgICAgIHJlc1dhdGVyVm9sdW1lLnRleHRDb250ZW50ID0gTWF0aC5yb3VuZCh3YXRlclZvbHVtZSk7CiAgICAgICAgICAgIHJlc1RyZWF0bWVudHMudGV4dENvbnRlbnQgPSB0cmVhdG1lbnRzOwogICAgICAgICAgICByZXNUb3RhbFNlYXNvbi50ZXh0Q29udGVudCA9IHRvdGFsU2Vhc29uYWxLZy50b0ZpeGVkKDIpOwogICAgICAgICAgICByZXNQYWNrYWdlcy50ZXh0Q29udGVudCA9IHBhY2thZ2VzTmVlZGVkOwogICAgICAgICAgICByZXNDb3N0LnRleHRDb250ZW50ID0gdG90YWxDb3N0LnRvTG9jYWxlU3RyaW5nKCdydS1SVScpOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gcmVzZXRBbGwoKSB7CiAgICAgICAgICAgIGhpZGVBbGxFcnJvcnMoKTsKICAgICAgICAgICAgYXJlYUlucHV0LnZhbHVlID0gJyc7CiAgICAgICAgICAgIHBsYW50c0lucHV0LnZhbHVlID0gJyc7CiAgICAgICAgICAgIHN0YWdlU2VsZWN0LnZhbHVlID0gJ3ZlZ2V0YXRpdmUnOwogICAgICAgICAgICBmZXJ0aWxpemVyU2VsZWN0LnZhbHVlID0gJ2F6b2Zvc2thJzsKICAgICAgICAgICAgbWV0aG9kU2VsZWN0LnZhbHVlID0gJ3Jvb3QnOwogICAgICAgICAgICB1cGRhdGVEZWZhdWx0UmF0ZSgpOwogICAgICAgICAgICBjbGVhclJlc3VsdHMoKTsKICAgICAgICB9CgogICAgICAgIGNhbGNCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjYWxjdWxhdGUpOwogICAgICAgIHJlc2V0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwoKICAgICAgICBmZXJ0aWxpemVyU2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB1cGRhdGVEZWZhdWx0UmF0ZSgpOwogICAgICAgIH0pOwogICAgICAgIHN0YWdlU2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB1cGRhdGVEZWZhdWx0UmF0ZSgpOwogICAgICAgIH0pOwoKICAgICAgICB1cGRhdGVEZWZhdWx0UmF0ZSgpOwogICAgfSkoKTsK