Калькулятор срока прорастания семян
Рассчитайте, через сколько дней появятся всходы, с учётом культуры, температуры почвы, глубины посева и предварительной обработки семян.
—
Примерный срок появления всходов
дней
—
Возможный диапазон
дней
Как пользоваться калькулятором
1
Выберите культуру из списка — калькулятор подставит средние сроки прорастания для оптимальных условий.
2
Укажите температуру почвы на глубине заделки семян. Измерьте термометром: для большинства овощей оптимум — 18–25 °C.
3
Введите глубину посева в сантиметрах. Ориентируйтесь на правило трёх диаметров семени или рекомендации на упаковке.
4
Отметьте предпосевную обработку и возраст семян. Замачивание и проращивание сокращают срок, старые семена всходят дольше.
5
Нажмите «Рассчитать» — вы получите средний прогноз и реалистичный диапазон. Используйте результат для планирования посевов и ухода.
Примеры расчёта
Томат в тёплой теплице
Культура: томат. Почва: 22 °C. Глубина: 0.8 см. Без обработки, семена свежие. Результат: 7–10 дней. Калькулятор подтвердил стандартный срок.
Морковь в прохладном грунте
Культура: морковь. Почва: 15 °C. Глубина: 1 см. Замачивание, семена среднего возраста. Результат: 16–30 дней. Без замачивания было бы 22–40 дней.
Огурец с проращиванием
Культура: огурец. Почва: 26 °C. Глубина: 0.5 см. Проращивание, семена свежие. Результат: 2–4 дня. Проращивание почти вдвое сократило ожидание.
Формулы расчёта
Калькулятор корректирует базовый срок прорастания с помощью четырёх коэффициентов:
Итоговый срок = Базовый срок × КТ × КГ × КО × КВ
Где:
- КТ — коэффициент температуры. При температуре ниже оптимальной расчёт ведётся как
1 + (T_опт − T_факт) × 0.12, при более высокой — 1 − (T_факт − T_опт) × 0.03. Коэффициент ограничен значениями от 0.7 до 4.0.
- КГ — коэффициент глубины. Если фактическая глубина превышает рекомендованный максимум, срок увеличивается:
1 + (Г_факт − Г_макс) × 0.4.
- КО — коэффициент обработки. Замачивание — 0.75, проращивание — 0.55, без обработки — 1.
- КВ — коэффициент возраста семян. Свежие — 1, среднего срока — 1.2, старые — 1.5.
Пошаговое объяснение
1. Калькулятор берёт минимальный и максимальный базовый срок прорастания для выбранной культуры при оптимальной температуре (обычно 20–25 °C) и правильной глубине заделки.
2. Температурная поправка. Если почва холоднее оптимума, обменные процессы в семени замедляются, всходы появляются позже. При слишком высокой температуре ускорение возможно, но свыше 30–32 °C рост угнетается.
3. Поправка на глубину. Ростку требуется время, чтобы преодолеть слой почвы над семенем. Каждый лишний сантиметр глубины прибавляет дни ожидания.
4. Влияние обработки и возраста. Замачивание размягчает оболочку и запускает ростовые процессы. Проращивание даёт старт ещё до попадания в грунт. У старых семян энергия прорастания падает — срок увеличивается, а всхожесть может снижаться.
Где применяется
- Планирование сроков посева на рассаду для теплиц и открытого грунта.
- Прогноз даты пикировки, прореживания и первой подкормки всходов.
- Оценка необходимости замачивания или проращивания туговсхожих культур.
- Расчёт времени до высадки рассады на постоянное место.
- Составление календаря повторных посевов для конвейерного выращивания зелени и овощей.
- Выявление рисков: если срок превышает 3 недели, возможно, стоит сменить культуру или улучшить условия.
Что влияет на результат
- Температура почвы — главный фактор. Разница в 5 °C может изменить срок в 1.5–2 раза. Измеряйте на глубине посева, а не на поверхности.
- Глубина заделки. Семена, посаженные глубже рекомендованного, рискуют не взойти вовсе, а если всходят — делают это медленно.
- Влажность почвы. При недостатке влаги прорастание затягивается, при переувлажнении семена могут загнить. Калькулятор предполагает нормальный полив.
- Предпосевная обработка. Замачивание в воде или стимуляторах ускоряет пробуждение семени. Особенно важно для моркови, петрушки, лука.
- Качество и возраст семян. Свежие семена всходят быстрее и дружнее. Семена старше 5 лет даже при хороших условиях могут давать запоздалые и редкие всходы.
- Сорт и вид. Внутри одной культуры раннеспелые сорта часто прорастают быстрее позднеспелых. Гибриды F1 обычно обладают более высокой энергией прорастания.
Важные нюансы
- Температуру измеряйте правильно. Обычный уличный термометр на солнце не покажет температуру почвы. Используйте почвенный термометр или заглубите электронный щуп на нужную глубину.
- Стратификация и скарификация. Некоторым культурам (лаванда, земляника, некоторые декоративные) нужна холодная обработка или нарушение оболочки. Калькулятор не учитывает эти специальные приёмы — он рассчитан на обычные овощные культуры.
- Слишком высокая температура. При нагреве почвы выше 30–32 °C у многих культур прорастание не ускоряется, а замедляется или прекращается. Калькулятор слегка снижает коэффициент при температурах выше оптимальных, но ориентируйтесь на здравый смысл.
- Полив после посева. Используйте отстоянную воду комнатной температуры. Холодная вода сразу после посева может понизить температуру почвы на несколько градусов и сдвинуть сроки.
- Не все семена всходят одновременно. Диапазон в результате показывает разброс от первых всходов до появления основной массы. Ориентируйтесь на верхнюю границу для планирования.
- Укрытие грядки. Плёнка или спанбонд повышают температуру почвы на 2–5 °C и ускоряют прорастание. Если используете укрытие, прибавляйте 2–3 °C к показаниям термометра.
Частые ошибки
- Слишком глубокая заделка. Особенно опасно для мелкосемянных культур (салат, укроп, петрушка). Росток не может пробить толщу земли и погибает.
- Посев в непрогретую почву. При температуре ниже 8–10 °C большинство овощных семян не прорастает, а просто гниёт. Дождитесь устойчивого тепла.
- Использование просроченных семян без проверки. Даже если срок годности не истёк, условия хранения могли быть плохими. Проверьте всхожесть на влажной салфетке за 1–2 недели до посева.
- Пренебрежение замачиванием туговсхожих культур. Морковь, петрушка, лук, сельдерей содержат эфирные масла, сдерживающие прорастание. Замачивание на 12–24 часа с несколькими сменами воды существенно сокращает ожидание.
- Полив холодной водой после посева. Это шокирует семена и понижает температуру почвы. Всходы задерживаются на 3–7 дней.
- Слишком ранний посев на рассаду. Если вы посеяли томаты в январе, а высаживать в теплицу планируете в мае, рассада перерастёт, будет слабой и долго приживаться. Рассчитывайте сроки от даты высадки, вычитая срок прорастания и возраст рассады.
Ответы на частые вопросы
Почему семена не взошли в рассчитанный срок?
Возможные причины: температура почвы ниже указанной, недостаток влаги, слишком глубокая заделка либо семена оказались невсхожими. Проверьте условия и при необходимости пересевайте.
Можно ли ускорить прорастание, просто повысив температуру?
Да, но в разумных пределах. Для теплолюбивых культур поднятие температуры до 25–28 °C даёт заметный эффект. При 30 °C и выше многие семена перестают прорастать.
Влияет ли освещение на срок прорастания?
Большинство семян прорастает в темноте под слоем почвы. Некоторым нужен свет (салат, сельдерей, петуния) — такие семена не присыпают землёй. Калькулятор не учитывает светочувствительность, он рассчитан на стандартную заделку.
Что делать, если прогноз показывает больше 20 дней?
Стоит применить замачивание или проращивание, проверить свежесть семян и при возможности повысить температуру почвы с помощью плёночного укрытия.
Нужно ли прибавлять дни на появление семядольных листьев?
Да, срок выхода семядолей на поверхность — это и есть «всходы». Калькулятор прогнозирует именно этот момент. Появление первого настоящего листа займёт ещё 4–10 дней в зависимости от культуры.
Насколько точны результаты калькулятора?
Калькулятор даёт ориентировочные значения на основе усреднённых агрономических данных. Фактический срок может отличаться на 2–5 дней из-за сортовых особенностей, микроклимата и качества полива.
Источники и справочные данные
Расчёт основан на агрономических справочных нормах по срокам прорастания семян овощных культур, рекомендациях производителей семян и данных о влиянии температуры, глубины заделки и предпосевной обработки на всхожесть. Использованы практические нормы, принятые в овощеводстве и садоводстве для средней полосы и аналогичных климатических зон. Точные сроки всегда зависят от конкретного сорта, производителя семян и условий выращивания на вашем участке.
Всё о прорастании семян: полное руководство для садовода
Почему сроки прорастания различаются у разных культур?
Семена растений устроены по-разному. У одних — тонкая оболочка и минимальный запас питательных веществ, у других — плотная кожура и крупный зародыш. Огурцы и кабачки всходят за 3–8 дней, потому что их семена быстро набухают и трогаются в рост при первой же возможности. Морковь и петрушка могут сидеть в земле 2–3 недели из-за эфирных масел, сдерживающих прорастание.
Продолжительность покоя семени — ещё один фактор. Некоторые культуры генетически запрограммированы не прорастать сразу после попадания в землю, чтобы пережить неблагоприятный период. Это особенно важно для диких растений и некоторых цветов, но среди овощей такой механизм ослаблен селекцией.
Температурные пороги: когда семя «просыпается»
У каждой культуры есть три ключевые температурные точки: минимальная (ниже которой прорастание невозможно), оптимальная (дающая самые быстрые и дружные всходы) и максимальная (после которой процессы останавливаются).
Томаты и перцы требуют не менее 15 °C для старта, оптимально 22–26 °C. При 12 °C они могут лежать в земле месяц без признаков жизни. Капуста и редис спокойно прорастают при 10–12 °C, а при 18–20 °C показывают всходы за 3–4 дня. Огурцы и тыквы — абсолютные теплолюбы: ниже 16 °C семена загнивают, а оптимум находится в районе 24–28 °C.
Интересно, что избыток тепла тоже вреден. При 32 °C и выше у многих культур сворачиваются белки, отвечающие за ростовые процессы, и семя может «свариться». Поэтому в жаркие дни грядки с посевами притеняют.
Глубина посева: правило трёх диаметров и исключения
Классическое правило гласит: глубина заделки должна составлять 2–3 диаметра семени. Для редиса это около 0.5–1 см, для гороха и фасоли — 3–5 см. Но есть нюансы:
- Мелкосемянные культуры (салат, сельдерей, петуния) сеют поверхностно, лишь слегка присыпая землёй или вермикулитом. Свет стимулирует их прорастание.
- Тяжёлые глинистые почвы требуют меньшей глубины, чем лёгкие песчаные. На глине горох сажают на 3–4 см, на песке — на 5–6 см.
- Подзимние посевы заделывают немного глубже, чтобы семена не вымерзли и не были вымыты талыми водами.
- Гранулированные семена (дражированные) нуждаются в хорошем контакте с влажной почвой, но их не заглубляют сильнее обычного — гранула рассыпается при поливе.
Если вы посадили глубже, чем нужно, не ждите чуда. Часть ростков может не дойти до поверхности, а те, что дойдут, будут ослабленными. Лучше аккуратно снять лишний слой почвы, чем ждать 3 недели впустую.
Предпосевная обработка: когда она действительно нужна
Замачивание и проращивание — не просто ритуалы, а работающие агротехнические приёмы. Они дают заметный эффект на культурах с твёрдой оболочкой (фасоль, тыква, свёкла) и на туговсхожих семенах (морковь, петрушка, лук).
Замачивание в тёплой воде комнатной температуры на 12–24 часа сокращает срок прорастания в среднем на 20–30%. Воду меняют каждые 6–8 часов, чтобы семена не задохнулись без кислорода. Добавление стимуляторов (гуматов, эпина, циркона) может дополнительно ускорить процесс, но здесь важно соблюдать дозировку: превышение концентрации даст обратный эффект.
Проращивание между влажными слоями ткани или на ватных дисках идёт дальше. Семя не только набухает, но и выпускает корешок. Проклюнувшиеся семена высевают очень аккуратно, корешком вниз, и засыпают тонким слоем земли. Такие всходы появляются на 3–7 дней раньше обычных, но требуют немедленного полива и защиты от пересыхания.
Однако есть случаи, когда обработка не нужна. Мелкие семена (салат, сельдерей) при замачивании слипаются, их трудно равномерно распределить. Дражированные семена промышленного производства уже прошли обработку и покрыты защитной оболочкой — их сеют сухими.
Как возраст семян меняет картину
Срок годности на пакетике — не формальность. С каждым годом хранения энергия прорастания падает даже при идеальных условиях. Свежие семена (1–2 года) дают дружные всходы в минимальные сроки. Трёх-четырёхлетние требуют на 20–30% больше времени. Семена старше 5 лет могут потерять всхожесть на 50% и более, а те, что всё-таки проклюнутся, будут развиваться медленно.
Рекордсмены по долголетию — огурцы и тыквы: их семена сохраняют хорошую всхожесть до 6–8 лет, а иногда и дольше. Аутсайдеры — лук, петрушка, сельдерей: уже на третий год всхожесть резко падает. Покупайте семена этих культур только свежими.
Практические советы для дружных всходов
- Прогревайте почву заранее. За 1–2 недели до посева накройте грядку прозрачной плёнкой. Это поднимет температуру на 3–5 °C и ускорит прорастание.
- Уплотняйте почву после посева. Прикатайте рядки доской или рукой — семена должны плотно контактировать с влажной землёй, иначе они будут набухать неравномерно.
- Не допускайте пересыхания верхнего слоя. Всходы без полива в ветреную погоду могут погибнуть за несколько часов. Мульчируйте рядки торфом или укрывайте спанбондом до появления всходов.
- Проверяйте всхожесть перед массовым посевом. За 10–14 дней положите 10 семян на влажную салфетку и посчитайте, сколько проклюнулось. Если меньше 7 — сейте гуще или замените партию.
CihmdW5jdGlvbigpewogIGNvbnN0IGN1bHR1cmVzID0gWwogICAgeyB2YWx1ZTogJ3RvbWF0bycsIG5hbWU6ICfQotC+0LzQsNGCJywgYmFzZU1pbjogNywgYmFzZU1heDogMTAsIG9wdFRlbXA6IDIyLCBvcHREZXB0aE1pbjogMC41LCBvcHREZXB0aE1heDogMSB9LAogICAgeyB2YWx1ZTogJ2N1Y3VtYmVyJywgbmFtZTogJ9Ce0LPRg9GA0LXRhicsIGJhc2VNaW46IDMsIGJhc2VNYXg6IDcsIG9wdFRlbXA6IDI1LCBvcHREZXB0aE1pbjogMC41LCBvcHREZXB0aE1heDogMSB9LAogICAgeyB2YWx1ZTogJ3BlcHBlcicsIG5hbWU6ICfQn9C10YDQtdGGJywgYmFzZU1pbjogMTAsIGJhc2VNYXg6IDE0LCBvcHRUZW1wOiAyNSwgb3B0RGVwdGhNaW46IDAuNSwgb3B0RGVwdGhNYXg6IDEgfSwKICAgIHsgdmFsdWU6ICdlZ2dwbGFudCcsIG5hbWU6ICfQkdCw0LrQu9Cw0LbQsNC9JywgYmFzZU1pbjogOCwgYmFzZU1heDogMTIsIG9wdFRlbXA6IDI1LCBvcHREZXB0aE1pbjogMC41LCBvcHREZXB0aE1heDogMSB9LAogICAgeyB2YWx1ZTogJ2NhYmJhZ2UnLCBuYW1lOiAn0JrQsNC/0YPRgdGC0LAnLCBiYXNlTWluOiAzLCBiYXNlTWF4OiA2LCBvcHRUZW1wOiAyMCwgb3B0RGVwdGhNaW46IDAuNSwgb3B0RGVwdGhNYXg6IDEuNSB9LAogICAgeyB2YWx1ZTogJ2NhcnJvdCcsIG5hbWU6ICfQnNC+0YDQutC+0LLRjCcsIGJhc2VNaW46IDEwLCBiYXNlTWF4OiAyMCwgb3B0VGVtcDogMjAsIG9wdERlcHRoTWluOiAwLjUsIG9wdERlcHRoTWF4OiAxLjUgfSwKICAgIHsgdmFsdWU6ICdiZWV0JywgbmFtZTogJ9Ch0LLQtdC60LvQsCcsIGJhc2VNaW46IDcsIGJhc2VNYXg6IDE0LCBvcHRUZW1wOiAyMCwgb3B0RGVwdGhNaW46IDEsIG9wdERlcHRoTWF4OiAyIH0sCiAgICB7IHZhbHVlOiAnb25pb24nLCBuYW1lOiAn0JvRg9C6INGA0LXQv9GH0LDRgtGL0LknLCBiYXNlTWluOiAxMCwgYmFzZU1heDogMTQsIG9wdFRlbXA6IDE4LCBvcHREZXB0aE1pbjogMC41LCBvcHREZXB0aE1heDogMS41IH0sCiAgICB7IHZhbHVlOiAncHVtcGtpbicsIG5hbWU6ICfQotGL0LrQstCwJywgYmFzZU1pbjogNSwgYmFzZU1heDogOCwgb3B0VGVtcDogMjUsIG9wdERlcHRoTWluOiAxLjUsIG9wdERlcHRoTWF4OiAzIH0sCiAgICB7IHZhbHVlOiAnenVjY2hpbmknLCBuYW1lOiAn0JrQsNCx0LDRh9C+0LonLCBiYXNlTWluOiA0LCBiYXNlTWF4OiA4LCBvcHRUZW1wOiAyNSwgb3B0RGVwdGhNaW46IDEuNSwgb3B0RGVwdGhNYXg6IDMgfSwKICAgIHsgdmFsdWU6ICdkaWxsJywgbmFtZTogJ9Cj0LrRgNC+0L8nLCBiYXNlTWluOiAxMCwgYmFzZU1heDogMTQsIG9wdFRlbXA6IDE4LCBvcHREZXB0aE1pbjogMC4zLCBvcHREZXB0aE1heDogMC41IH0sCiAgICB7IHZhbHVlOiAncGFyc2xleScsIG5hbWU6ICfQn9C10YLRgNGD0YjQutCwJywgYmFzZU1pbjogMTQsIGJhc2VNYXg6IDIwLCBvcHRUZW1wOiAxOCwgb3B0RGVwdGhNaW46IDAuMywgb3B0RGVwdGhNYXg6IDAuNSB9LAogICAgeyB2YWx1ZTogJ2xldHR1Y2UnLCBuYW1lOiAn0KHQsNC70LDRgicsIGJhc2VNaW46IDQsIGJhc2VNYXg6IDgsIG9wdFRlbXA6IDE4LCBvcHREZXB0aE1pbjogMC4zLCBvcHREZXB0aE1heDogMC41IH0sCiAgICB7IHZhbHVlOiAncmFkaXNoJywgbmFtZTogJ9Cg0LXQtNC40YEnLCBiYXNlTWluOiAzLCBiYXNlTWF4OiA2LCBvcHRUZW1wOiAxOCwgb3B0RGVwdGhNaW46IDAuNSwgb3B0RGVwdGhNYXg6IDEgfSwKICAgIHsgdmFsdWU6ICdwZWEnLCBuYW1lOiAn0JPQvtGA0L7RhScsIGJhc2VNaW46IDYsIGJhc2VNYXg6IDEwLCBvcHRUZW1wOiAyMCwgb3B0RGVwdGhNaW46IDMsIG9wdERlcHRoTWF4OiA1IH0sCiAgICB7IHZhbHVlOiAnYmVhbicsIG5hbWU6ICfQpNCw0YHQvtC70YwnLCBiYXNlTWluOiA3LCBiYXNlTWF4OiAxMCwgb3B0VGVtcDogMjIsIG9wdERlcHRoTWluOiAzLCBvcHREZXB0aE1heDogNSB9LAogICAgeyB2YWx1ZTogJ2Nvcm4nLCBuYW1lOiAn0JrRg9C60YPRgNGD0LfQsCcsIGJhc2VNaW46IDcsIGJhc2VNYXg6IDEwLCBvcHRUZW1wOiAyNSwgb3B0RGVwdGhNaW46IDMsIG9wdERlcHRoTWF4OiA1IH0sCiAgICB7IHZhbHVlOiAnc3VuZmxvd2VyJywgbmFtZTogJ9Cf0L7QtNGB0L7Qu9C90LXRh9C90LjQuicsIGJhc2VNaW46IDYsIGJhc2VNYXg6IDEwLCBvcHRUZW1wOiAyMiwgb3B0RGVwdGhNaW46IDIsIG9wdERlcHRoTWF4OiA0IH0KICBdOwoKICBjb25zdCBjdWx0dXJlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1jdWx0dXJlJyk7CiAgY29uc3QgdGVtcElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1zb2lsLXRlbXAnKTsKICBjb25zdCBkZXB0aElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1kZXB0aCcpOwogIGNvbnN0IHRyZWF0bWVudFNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tdHJlYXRtZW50Jyk7CiAgY29uc3QgYWdlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1zZWVkLWFnZScpOwogIGNvbnN0IGNhbGNCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLWNhbGMtYnRuJyk7CiAgY29uc3QgcmVzZXRCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJlc2V0LWJ0bicpOwogIGNvbnN0IHJlc3VsdERheXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJlc3VsdC1kYXlzJyk7CiAgY29uc3QgcmVzdWx0UmFuZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJlc3VsdC1yYW5nZScpOwogIGNvbnN0IHJlc3VsdE5vdGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbm4tZ2VuLXJlc3VsdC1ub3RlJyk7CiAgY29uc3QgZXJyb3JUZW1wID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ25uLWdlbi1lcnJvci10ZW1wJyk7CiAgY29uc3QgZXJyb3JEZXB0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdubi1nZW4tZXJyb3ItZGVwdGgnKTsKCiAgZnVuY3Rpb24gcG9wdWxhdGVDdWx0dXJlcygpIHsKICAgIGlmICghY3VsdHVyZVNlbGVjdCkgcmV0dXJuOwogICAgY3VsdHVyZVNlbGVjdC5pbm5lckhUTUwgPSAnJzsKICAgIGN1bHR1cmVzLmZvckVhY2goZnVuY3Rpb24oYykgewogICAgICB2YXIgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7CiAgICAgIG9wdGlvbi52YWx1ZSA9IGMudmFsdWU7CiAgICAgIG9wdGlvbi50ZXh0Q29udGVudCA9IGMubmFtZSArICcgKNCx0LDQt9C+0LLRi9C1INCy0YHRhdC+0LTRizogJyArIGMuYmFzZU1pbiArICfigJMnICsgYy5iYXNlTWF4ICsgJyDQtNC9LiknOwogICAgICBjdWx0dXJlU2VsZWN0LmFwcGVuZENoaWxkKG9wdGlvbik7CiAgICB9KTsKICB9CgogIGZ1bmN0aW9uIGdldFNlbGVjdGVkQ3VsdHVyZSgpIHsKICAgIGlmICghY3VsdHVyZVNlbGVjdCkgcmV0dXJuIG51bGw7CiAgICB2YXIgdmFsID0gY3VsdHVyZVNlbGVjdC52YWx1ZTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY3VsdHVyZXMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKGN1bHR1cmVzW2ldLnZhbHVlID09PSB2YWwpIHJldHVybiBjdWx0dXJlc1tpXTsKICAgIH0KICAgIHJldHVybiBjdWx0dXJlc1swXSB8fCBudWxsOwogIH0KCiAgZnVuY3Rpb24gaGlkZUVycm9ycygpIHsKICAgIGlmIChlcnJvclRlbXApIHsgZXJyb3JUZW1wLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IGVycm9yVGVtcC50ZXh0Q29udGVudCA9ICcnOyB9CiAgICBpZiAoZXJyb3JEZXB0aCkgeyBlcnJvckRlcHRoLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IGVycm9yRGVwdGgudGV4dENvbnRlbnQgPSAnJzsgfQogIH0KCiAgZnVuY3Rpb24gc2hvd0Vycm9yKGVsLCBtc2cpIHsKICAgIGlmICghZWwpIHJldHVybjsKICAgIGVsLnRleHRDb250ZW50ID0gbXNnOwogICAgZWwuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgfQoKICBmdW5jdGlvbiB2YWxpZGF0ZSh0ZW1wVmFsLCBkZXB0aFZhbCkgewogICAgdmFyIHZhbGlkID0gdHJ1ZTsKICAgIGhpZGVFcnJvcnMoKTsKICAgIGlmICh0ZW1wVmFsID09PSAnJyB8fCB0ZW1wVmFsID09PSBudWxsIHx8IGlzTmFOKHBhcnNlRmxvYXQodGVtcFZhbCkpKSB7CiAgICAgIHNob3dFcnJvcihlcnJvclRlbXAsICfQktCy0LXQtNC40YLQtSDRgtC10LzQv9C10YDQsNGC0YPRgNGDINC/0L7Rh9Cy0Ysg0YfQuNGB0LvQvtC8LicpOwogICAgICB2YWxpZCA9IGZhbHNlOwogICAgfSBlbHNlIHsKICAgICAgdmFyIHQgPSBwYXJzZUZsb2F0KHRlbXBWYWwpOwogICAgICBpZiAodCA8IDUgfHwgdCA+IDQwKSB7CiAgICAgICAgc2hvd0Vycm9yKGVycm9yVGVtcCwgJ9Ci0LXQvNC/0LXRgNCw0YLRg9GA0LAg0LTQvtC70LbQvdCwINCx0YvRgtGMINC+0YIgNSDQtNC+IDQwIMKwQy4nKTsKICAgICAgICB2YWxpZCA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgICBpZiAoZGVwdGhWYWwgPT09ICcnIHx8IGRlcHRoVmFsID09PSBudWxsIHx8IGlzTmFOKHBhcnNlRmxvYXQoZGVwdGhWYWwpKSkgewogICAgICBzaG93RXJyb3IoZXJyb3JEZXB0aCwgJ9CS0LLQtdC00LjRgtC1INCz0LvRg9Cx0LjQvdGDINC/0L7RgdC10LLQsCDRh9C40YHQu9C+0LwuJyk7CiAgICAgIHZhbGlkID0gZmFsc2U7CiAgICB9IGVsc2UgewogICAgICB2YXIgZCA9IHBhcnNlRmxvYXQoZGVwdGhWYWwpOwogICAgICBpZiAoZCA8IDAuMyB8fCBkID4gMTApIHsKICAgICAgICBzaG93RXJyb3IoZXJyb3JEZXB0aCwgJ9CT0LvRg9Cx0LjQvdCwINC00L7Qu9C20L3QsCDQsdGL0YLRjCDQvtGCIDAuMyDQtNC+IDEwINGB0LwuJyk7CiAgICAgICAgdmFsaWQgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHZhbGlkOwogIH0KCiAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgewogICAgaWYgKCFjdWx0dXJlU2VsZWN0IHx8ICF0ZW1wSW5wdXQgfHwgIWRlcHRoSW5wdXQgfHwgIXRyZWF0bWVudFNlbGVjdCB8fCAhYWdlU2VsZWN0KSByZXR1cm47CiAgICB2YXIgdGVtcFJhdyA9IHRlbXBJbnB1dC52YWx1ZS50cmltKCk7CiAgICB2YXIgZGVwdGhSYXcgPSBkZXB0aElucHV0LnZhbHVlLnRyaW0oKTsKICAgIGlmICghdmFsaWRhdGUodGVtcFJhdywgZGVwdGhSYXcpKSB7CiAgICAgIGlmIChyZXN1bHREYXlzKSByZXN1bHREYXlzLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgIGlmIChyZXN1bHRSYW5nZSkgcmVzdWx0UmFuZ2UudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgaWYgKHJlc3VsdE5vdGUpIHJlc3VsdE5vdGUudGV4dENvbnRlbnQgPSAnJzsKICAgICAgcmV0dXJuOwogICAgfQogICAgdmFyIGN1bHR1cmUgPSBnZXRTZWxlY3RlZEN1bHR1cmUoKTsKICAgIGlmICghY3VsdHVyZSkgewogICAgICBpZiAocmVzdWx0RGF5cykgcmVzdWx0RGF5cy50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICBpZiAocmVzdWx0UmFuZ2UpIHJlc3VsdFJhbmdlLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgIGlmIChyZXN1bHROb3RlKSByZXN1bHROb3RlLnRleHRDb250ZW50ID0gJyc7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciB0ZW1wID0gcGFyc2VGbG9hdCh0ZW1wUmF3KTsKICAgIHZhciBkZXB0aCA9IHBhcnNlRmxvYXQoZGVwdGhSYXcpOwogICAgdmFyIHRyZWF0bWVudFZhbCA9IHRyZWF0bWVudFNlbGVjdC52YWx1ZTsKICAgIHZhciBhZ2VWYWwgPSBhZ2VTZWxlY3QudmFsdWU7CgogICAgdmFyIGtUZW1wOwogICAgaWYgKHRlbXAgPj0gY3VsdHVyZS5vcHRUZW1wKSB7CiAgICAgIGtUZW1wID0gMSAtICh0ZW1wIC0gY3VsdHVyZS5vcHRUZW1wKSAqIDAuMDM7CiAgICAgIGlmIChrVGVtcCA8IDAuNykga1RlbXAgPSAwLjc7CiAgICB9IGVsc2UgewogICAgICBrVGVtcCA9IDEgKyAoY3VsdHVyZS5vcHRUZW1wIC0gdGVtcCkgKiAwLjEyOwogICAgICBpZiAoa1RlbXAgPiA0KSBrVGVtcCA9IDQ7CiAgICB9CgogICAgdmFyIGtEZXB0aDsKICAgIGlmIChkZXB0aCA8PSBjdWx0dXJlLm9wdERlcHRoTWF4ICYmIGRlcHRoID49IGN1bHR1cmUub3B0RGVwdGhNaW4pIHsKICAgICAga0RlcHRoID0gMTsKICAgIH0gZWxzZSBpZiAoZGVwdGggPiBjdWx0dXJlLm9wdERlcHRoTWF4KSB7CiAgICAgIGtEZXB0aCA9IDEgKyAoZGVwdGggLSBjdWx0dXJlLm9wdERlcHRoTWF4KSAqIDAuNDsKICAgICAgaWYgKGtEZXB0aCA+IDIuNSkga0RlcHRoID0gMi41OwogICAgfSBlbHNlIHsKICAgICAga0RlcHRoID0gMSArIChjdWx0dXJlLm9wdERlcHRoTWluIC0gZGVwdGgpICogMC4xOwogICAgfQoKICAgIHZhciBrVHJlYXQ7CiAgICBpZiAodHJlYXRtZW50VmFsID09PSAnc29haycpIGtUcmVhdCA9IDAuNzU7CiAgICBlbHNlIGlmICh0cmVhdG1lbnRWYWwgPT09ICdzcHJvdXQnKSBrVHJlYXQgPSAwLjU1OwogICAgZWxzZSBrVHJlYXQgPSAxOwoKICAgIHZhciBrQWdlOwogICAgaWYgKGFnZVZhbCA9PT0gJ21lZGl1bScpIGtBZ2UgPSAxLjI7CiAgICBlbHNlIGlmIChhZ2VWYWwgPT09ICdvbGQnKSBrQWdlID0gMS41OwogICAgZWxzZSBrQWdlID0gMTsKCiAgICB2YXIgcmF3TWluID0gY3VsdHVyZS5iYXNlTWluICoga1RlbXAgKiBrRGVwdGggKiBrVHJlYXQgKiBrQWdlOwogICAgdmFyIHJhd01heCA9IGN1bHR1cmUuYmFzZU1heCAqIGtUZW1wICoga0RlcHRoICoga1RyZWF0ICoga0FnZTsKCiAgICB2YXIgZmluYWxNaW4gPSBNYXRoLnJvdW5kKHJhd01pbik7CiAgICB2YXIgZmluYWxNYXggPSBNYXRoLnJvdW5kKHJhd01heCk7CiAgICBpZiAoIWlzRmluaXRlKGZpbmFsTWluKSB8fCBpc05hTihmaW5hbE1pbikgfHwgZmluYWxNaW4gPCAxKSBmaW5hbE1pbiA9IDE7CiAgICBpZiAoIWlzRmluaXRlKGZpbmFsTWF4KSB8fCBpc05hTihmaW5hbE1heCkgfHwgZmluYWxNYXggPCAxKSBmaW5hbE1heCA9IGZpbmFsTWluOwogICAgaWYgKGZpbmFsTWluID4gZmluYWxNYXgpIHsKICAgICAgdmFyIHRtcCA9IGZpbmFsTWluOwogICAgICBmaW5hbE1pbiA9IGZpbmFsTWF4OwogICAgICBmaW5hbE1heCA9IHRtcDsKICAgIH0KCiAgICBpZiAocmVzdWx0RGF5cykgcmVzdWx0RGF5cy50ZXh0Q29udGVudCA9IGZpbmFsTWluOwogICAgaWYgKHJlc3VsdFJhbmdlKSByZXN1bHRSYW5nZS50ZXh0Q29udGVudCA9IGZpbmFsTWluICsgJyDigJMgJyArIGZpbmFsTWF4OwogICAgaWYgKHJlc3VsdE5vdGUpIHJlc3VsdE5vdGUudGV4dENvbnRlbnQgPSAn0KDQsNGB0YfRkdGCINC+0YDQuNC10L3RgtC40YDQvtCy0L7Rh9C90YvQuS4g0KTQsNC60YLQuNGH0LXRgdC60LjQuSDRgdGA0L7QuiDQvNC+0LbQtdGCINC+0YLQu9C40YfQsNGC0YzRgdGPINC90LAgMuKAkzUg0LTQvdC10LkuINCj0YfQuNGC0YvQstCw0LnRgtC1INCy0LvQsNC20L3QvtGB0YLRjCwg0YHQvtGA0YIg0Lgg0LvQvtC60LDQu9GM0L3Ri9C1INGD0YHQu9C+0LLQuNGPLic7CiAgfQoKICBmdW5jdGlvbiByZXNldEZvcm0oKSB7CiAgICBpZiAoY3VsdHVyZVNlbGVjdCkgY3VsdHVyZVNlbGVjdC5zZWxlY3RlZEluZGV4ID0gMDsKICAgIGlmICh0ZW1wSW5wdXQpIHRlbXBJbnB1dC52YWx1ZSA9ICcyMCc7CiAgICBpZiAoZGVwdGhJbnB1dCkgZGVwdGhJbnB1dC52YWx1ZSA9ICcxJzsKICAgIGlmICh0cmVhdG1lbnRTZWxlY3QpIHRyZWF0bWVudFNlbGVjdC52YWx1ZSA9ICdub25lJzsKICAgIGlmIChhZ2VTZWxlY3QpIGFnZVNlbGVjdC52YWx1ZSA9ICdmcmVzaCc7CiAgICBoaWRlRXJyb3JzKCk7CiAgICBpZiAocmVzdWx0RGF5cykgcmVzdWx0RGF5cy50ZXh0Q29udGVudCA9ICfigJQnOwogICAgaWYgKHJlc3VsdFJhbmdlKSByZXN1bHRSYW5nZS50ZXh0Q29udGVudCA9ICfigJQnOwogICAgaWYgKHJlc3VsdE5vdGUpIHJlc3VsdE5vdGUudGV4dENvbnRlbnQgPSAnJzsKICB9CgogIGZ1bmN0aW9uIGJpbmRFdmVudHMoKSB7CiAgICBpZiAoY2FsY0J0bikgY2FsY0J0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNhbGN1bGF0ZSk7CiAgICBpZiAocmVzZXRCdG4pIHJlc2V0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRGb3JtKTsKICAgIGlmICh0ZW1wSW5wdXQpIHRlbXBJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCl7IGlmKGVycm9yVGVtcCkgZXJyb3JUZW1wLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IH0pOwogICAgaWYgKGRlcHRoSW5wdXQpIGRlcHRoSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpeyBpZihlcnJvckRlcHRoKSBlcnJvckRlcHRoLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IH0pOwogIH0KCiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykgewogICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewogICAgICBwb3B1bGF0ZUN1bHR1cmVzKCk7CiAgICAgIGJpbmRFdmVudHMoKTsKICAgICAgcmVzZXRGb3JtKCk7CiAgICB9KTsKICB9IGVsc2UgewogICAgcG9wdWxhdGVDdWx0dXJlcygpOwogICAgYmluZEV2ZW50cygpOwogICAgcmVzZXRGb3JtKCk7CiAgfQp9KSgpOwo=