Калькулятор полезной площади огорода
Рассчитайте, сколько квадратных метров на участке реально работает на урожай, и узнайте оптимальную планировку грядок с учётом дорожек, теплиц и построек.
127.20
Полезная площадь
м²
63.6
Коэффициент использования
%
46.80
Площадь дорожек и проходов
м²
20.00
Свободная площадь
м²
0.40
Ширина одной дорожки
м
2400
Возможное число растений
шт
12.72
Рекомендуемый запас (10%)
м²
Как пользоваться калькулятором
1
Выберите единицу измерения (метры или сотки) и введите длину и ширину вашего огорода. Для типового участка 6 соток это примерно 20 × 30 метров.
2
Укажите количество планируемых грядок, их ширину и длину. Стандартная ширина удобной грядки — 0,8–1,0 м, длина обычно на 1–2 метра короче участка для прохода с торцов.
3
Добавьте площадь теплиц и хозпостроек (сарай, компостная куча, бочки). Эти зоны не участвуют в выращивании растений, но занимают место — калькулятор вычтет их автоматически.
4
Если хотите узнать примерное количество растений, укажите расстояние между ними в ряду и ширину междурядий. Нажмите «Рассчитать» — справа появятся все итоговые цифры.
Примеры расчёта
Маленький огород 3 × 6 м (18 м²)
Три грядки шириной 0,8 м и длиной 5,5 м. Теплицы нет, построек нет. Общая площадь 18 м², полезная площадь грядок — 13,2 м² (73%), дорожки займут 4,8 м². На грядках можно разместить около 180 кустов клубники при схеме 30 × 40 см.
Тепличный участок 10 × 20 м (200 м², 2 сотки)
Десять грядок шириной 1 м, длиной 18 м, теплица 15 м², хозблок 8 м². Полезная площадь: грядки 180 м² + теплица 15 м² = 195 м² (97,5%). Дорожки займут 20 м², постройки 8 м². Свободного места практически не остаётся — планировка плотная, но рабочая.
Просторный участок 30 × 30 м (900 м², 9 соток)
Пятнадцать грядок шириной 0,9 м, длиной 27 м, две теплицы общей площадью 40 м², хозпостройки 25 м². Полезная площадь: 364,5 м² грядок + 40 м² теплиц = 404,5 м² (45%). Почти половина участка отведена под дорожки и свободные зоны — комфортный вариант для ухода за растениями и отдыха.
Формулы расчёта
Все вычисления основаны на геометрии прямоугольного участка и стандартной параллельной схеме размещения грядок:
Общая площадь = Длина огорода × Ширина огорода
Площадь грядок = Количество грядок × Ширина грядки × Длина грядки
Суммарная ширина дорожек = Ширина огорода − Количество грядок × Ширина грядки
Ширина одной дорожки = Суммарная ширина дорожек / (Количество грядок + 1)
Площадь продольных дорожек = Суммарная ширина дорожек × Длина грядки
Площадь торцевых зон = (Длина огорода − Длина грядки) × Ширина огорода
Полезная площадь = Площадь грядок + Площадь теплиц
Коэффициент использования = (Полезная площадь / Общая площадь) × 100%
Количество растений = ⌊Длина грядки × 100 / Расстояние в ряду⌋ × ⌊Ширина грядки × 100 / Междурядье⌋ × Количество грядок
Результат количества растений округляется вниз до целого — считаются только полноценные посадочные места.
Нормы и ориентиры
- Ширина грядки: 0,6–1,2 м. Узкие грядки (0,6–0,8 м) удобнее для прополки и сбора урожая, широкие (1,0–1,2 м) дают больше площади под растения, но требуют доступа с двух сторон.
- Ширина дорожек: минимум 0,3 м для прохода боком, комфортно — 0,4–0,6 м. Если планируете возить тачку, закладывайте не менее 0,7 м.
- Длина грядки: обычно от 3 до 20 м. Длинные грядки экономят площадь на дорожках, но заставляют делать лишние шаги при уходе.
- Плотность посадки: зависит от культуры. Томаты — 40–60 см между кустами, огурцы — 30–40 см, морковь — 5–8 см в ряду и 15–20 см между рядами, клубника — 25–35 см × 40–50 см.
- Коэффициент использования: для небольших участков (до 2 соток) хорошим считается 60–75%, для больших (6 соток и более) — 40–55%. Остальное — дорожки, зоны отдыха, газон, свободное пространство.
- Площадь теплицы: стандартная поликарбонатная теплица занимает от 6 до 30 м². Планируйте подходы со всех сторон шириной не менее 0,6 м.
Что влияет на результат
- Конфигурация участка. Калькулятор считает для прямоугольного огорода. Если участок Г-образный или с изгибами, реальная полезная площадь может быть ниже.
- Тип почвы и дренаж. На тяжёлых глинистых почвах грядки часто делают приподнятыми, что требует более широких дорожек и увеличивает непродуктивную зону.
- Освещённость. Высокие деревья и заборы с южной стороны сокращают эффективную площадь — даже правильно размеченная грядка в тени даст скудный урожай.
- Культуры-гиганты. Кабачки, тыквы, картофель требуют значительно больше места, чем компактная зелень или редис. Одна тыква может занять до 2 м².
- Сезонность. Весной и осенью часть грядок может пустовать. Реальный выход продукции с квадратного метра зависит от севооборота и повторных посевов.
- Система полива. Капельный полив экономит место, а дождевание требует более широких проходов для шлангов и доступа к форсункам.
Важные нюансы
- Все расчёты носят ориентировочный характер. Реальная полезная площадь зависит от рельефа, расположения коммуникаций и ваших личных предпочтений.
- При использовании удобрений и средств защиты растений окончательную дозировку всегда сверяйте с инструкцией на упаковке. Калькулятор не рассчитывает нормы внесения препаратов.
- Для участков сложной формы (трапеция, треугольник, с перепадами высот) рекомендуется разбить территорию на прямоугольные сектора и посчитать каждую зону отдельно.
- Закладывайте запас 5–15% от полезной площади на расширение, новые культуры и непредвиденные потери (вымокание, вымерзание, повреждение вредителями).
- Если вы планируете высокие грядки или стационарные конструкции, учитывайте толщину бортиков (обычно 2–5 см с каждой стороны), которая «съедает» посадочную площадь.
- Дорожки между грядками со временем зарастают или размываются. Планируйте их финишное покрытие (мульча, гравий, плитка) заранее, это повлияет на итоговую ширину.
Частые ошибки
- Считать грядки без учёта дорожек. Даже узкие проходы по 30 см между восемью грядками длиной 10 м «съедают» более 20 м² площади. Всегда закладывайте дорожки в план.
- Игнорировать теневые зоны. Грядка вдоль северной стороны двухметрового забора может вообще не дать урожая светолюбивых культур, хотя формально площадь учтена.
- Превышать разумную плотность посадки. Слишком густая посадка приводит к конкуренции за свет, воду и питание. Итоговый урожай с квадратного метра может оказаться ниже, чем при разреженной схеме.
- Забывать про севооборот. Если все грядки заняты одной культурой, на следующий год придётся искать новое место. Планируйте чередование культур заранее.
- Не учитывать ширину инвентаря. Газонокосилка, тачка, мотоблок требуют определённой ширины проезда. Если дорожка 35 см, а тачка 60 см — придётся носить грузы вручную.
- Ориентироваться только на весеннюю схему. Летом растения разрастаются, и дорожки сужаются. Закладывайте летний запас ширины проходов.
Ответы на частые вопросы
Сколько грядок оптимально для участка в 1 сотку?
Для участка 10 × 10 м комфортная схема — 6–8 грядок шириной 0,8 м и длиной 8–9 м. Полезная площадь составит около 50–65 м², плюс можно разместить теплицу 6–8 м².
Какой процент полезной площади считается хорошим?
Для интенсивного огорода на 2–3 сотках норма — 60–75%. Для больших участков с зонами отдыха — 35–50%. Всё, что выше 80%, говорит о тесной планировке, где трудно работать.
Можно ли использовать результат для расчёта удобрений?
Да, зная точную площадь грядок и теплиц, вы легко рассчитаете нужное количество удобрений, мульчи или грунта. Но норму внесения берите из инструкции производителя.
Почему калькулятор не учитывает вертикальные грядки и шпалеры?
Вертикальные конструкции увеличивают посадочную площадь без увеличения площади участка. Данный калькулятор считает классическую горизонтальную планировку. Для вертикальных решений добавляйте полезную площадь вручную.
Что делать, если огород не прямоугольный?
Разбейте территорию на 2–3 прямоугольных зоны, посчитайте каждую отдельно и сложите результаты. Для треугольных и круглых участков погрешность будет выше, но ориентир вы получите.
Нужно ли вычитать площадь под компостную кучу?
Да, компостная куча или ящик — это хозяйственная зона, которая не даёт прямого урожая. Укажите её площадь в поле «Хозпостройки и компост», и калькулятор исключит её из полезной.
Источники и справочные данные
- Агрономические справочные нормы по планировке огородных участков и плотности посадки овощных, плодовых и декоративных культур.
- Рекомендации по выращиванию растений в открытом грунте и теплицах для средней полосы России.
- Практические нормы ширины грядок и дорожек, выработанные многолетним опытом садоводов и огородников.
- Инструкции производителей теплиц и укрывных материалов в части рекомендуемых отступов и площади размещения.
- Точные нормы применения удобрений и средств защиты растений всегда берите из официальной инструкции конкретного препарата — калькулятор не заменяет агрохимический расчёт.
Калькулятор полезной площади огорода помогает рационально спланировать участок и понять, сколько квадратных метров действительно работают на урожай. Достаточно ввести длину и ширину огорода, количество и размеры грядок, площадь теплиц и построек — и вы получите точную раскладку: грядки, дорожки, свободные зоны и коэффициент использования территории. Инструмент будет полезен как начинающим дачникам, так и опытным садоводам, которые хотят оптимизировать планировку и увеличить отдачу с каждого квадратного метра.
CihmdW5jdGlvbigpewogIHZhciB1bml0U2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VuaXRfc2VsZWN0Jyk7CiAgdmFyIGdhcmRlbkxlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnYXJkZW5fbGVuZ3RoJyk7CiAgdmFyIGdhcmRlbldpZHRoID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dhcmRlbl93aWR0aCcpOwogIHZhciBiZWRDb3VudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZWRfY291bnQnKTsKICB2YXIgYmVkV2lkdGggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmVkX3dpZHRoJyk7CiAgdmFyIGJlZExlbmd0aCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiZWRfbGVuZ3RoJyk7CiAgdmFyIGdyZWVuaG91c2VBcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dyZWVuaG91c2VfYXJlYScpOwogIHZhciBidWlsZGluZ0FyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnVpbGRpbmdfYXJlYScpOwogIHZhciBwbGFudFNwYWNpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxhbnRfc3BhY2luZycpOwogIHZhciByb3dTcGFjaW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvd19zcGFjaW5nJyk7CiAgdmFyIGVycm9yTXNnID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Vycm9yX21zZycpOwogIHZhciBjYWxjdWxhdGVCdG4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsY3VsYXRlX2J0bicpOwogIHZhciByZXNldEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldF9idG4nKTsKCiAgZnVuY3Rpb24gcGFyc2VGbG9hdFNhZmUoZWwpIHsKICAgIHZhciB2YWwgPSBwYXJzZUZsb2F0KGVsLnZhbHVlKTsKICAgIHJldHVybiBpc05hTih2YWwpID8gbnVsbCA6IHZhbDsKICB9CgogIGZ1bmN0aW9uIHNob3dFcnJvcihtc2cpIHsKICAgIGVycm9yTXNnLnRleHRDb250ZW50ID0gbXNnOwogICAgZXJyb3JNc2cuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgfQoKICBmdW5jdGlvbiBoaWRlRXJyb3IoKSB7CiAgICBlcnJvck1zZy50ZXh0Q29udGVudCA9ICcnOwogICAgZXJyb3JNc2cuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB9CgogIGZ1bmN0aW9uIHVwZGF0ZVJlc3VsdChpZCwgdmFsdWUsIHVuaXQpIHsKICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKICAgIGlmIChlbCkgewogICAgICBlbC50ZXh0Q29udGVudCA9IHZhbHVlOwogICAgICB2YXIgdW5pdEVsID0gZWwucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubm4tZ2VuLWNhbC1yZXN1bHQtdW5pdCcpOwogICAgICBpZiAodW5pdEVsICYmIHVuaXQgIT09IHVuZGVmaW5lZCkgewogICAgICAgIHVuaXRFbC50ZXh0Q29udGVudCA9IHVuaXQ7CiAgICAgIH0KICAgIH0KICB9CgogIGZ1bmN0aW9uIGNhbGN1bGF0ZSgpIHsKICAgIGhpZGVFcnJvcigpOwoKICAgIHZhciB1bml0ID0gdW5pdFNlbGVjdC52YWx1ZTsKICAgIHZhciBsZW5ndGhWYWwgPSBwYXJzZUZsb2F0U2FmZShnYXJkZW5MZW5ndGgpOwogICAgdmFyIHdpZHRoVmFsID0gcGFyc2VGbG9hdFNhZmUoZ2FyZGVuV2lkdGgpOwogICAgdmFyIGJlZHNWYWwgPSBwYXJzZUZsb2F0U2FmZShiZWRDb3VudCk7CiAgICB2YXIgYmVkV1ZhbCA9IHBhcnNlRmxvYXRTYWZlKGJlZFdpZHRoKTsKICAgIHZhciBiZWRMVmFsID0gcGFyc2VGbG9hdFNhZmUoYmVkTGVuZ3RoKTsKICAgIHZhciBncmVlblZhbCA9IHBhcnNlRmxvYXRTYWZlKGdyZWVuaG91c2VBcmVhKTsKICAgIHZhciBidWlsZFZhbCA9IHBhcnNlRmxvYXRTYWZlKGJ1aWxkaW5nQXJlYSk7CiAgICB2YXIgcGxhbnRTcFZhbCA9IHBhcnNlRmxvYXRTYWZlKHBsYW50U3BhY2luZyk7CiAgICB2YXIgcm93U3BWYWwgPSBwYXJzZUZsb2F0U2FmZShyb3dTcGFjaW5nKTsKCiAgICBpZiAobGVuZ3RoVmFsID09PSBudWxsIHx8IHdpZHRoVmFsID09PSBudWxsIHx8IGJlZHNWYWwgPT09IG51bGwgfHwgYmVkV1ZhbCA9PT0gbnVsbCB8fCBiZWRMVmFsID09PSBudWxsKSB7CiAgICAgIHNob3dFcnJvcign0J/QvtC20LDQu9GD0LnRgdGC0LAsINC30LDQv9C+0LvQvdC40YLQtSDQstGB0LUg0L7QsdGP0LfQsNGC0LXQu9GM0L3Ri9C1INC/0L7Qu9GPOiDQtNC70LjQvdCwLCDRiNC40YDQuNC90LAsINC60L7Qu9C40YfQtdGB0YLQstC+INCz0YDRj9C00L7Quiwg0YjQuNGA0LjQvdCwINC4INC00LvQuNC90LAg0LPRgNGP0LTQutC4LicpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoZ3JlZW5WYWwgPT09IG51bGwpIGdyZWVuVmFsID0gMDsKICAgIGlmIChidWlsZFZhbCA9PT0gbnVsbCkgYnVpbGRWYWwgPSAwOwogICAgaWYgKHBsYW50U3BWYWwgPT09IG51bGwpIHBsYW50U3BWYWwgPSAwOwogICAgaWYgKHJvd1NwVmFsID09PSBudWxsKSByb3dTcFZhbCA9IDA7CgogICAgaWYgKGxlbmd0aFZhbCA8PSAwIHx8IHdpZHRoVmFsIDw9IDApIHsKICAgICAgc2hvd0Vycm9yKCfQlNC70LjQvdCwINC4INGI0LjRgNC40L3QsCDQvtCz0L7RgNC+0LTQsCDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0L/QvtC70L7QttC40YLQtdC70YzQvdGL0LzQuCDRh9C40YHQu9Cw0LzQuC4nKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGJlZHNWYWwgPCAxIHx8IGJlZHNWYWwgIT09IE1hdGguZmxvb3IoYmVkc1ZhbCkpIHsKICAgICAgc2hvd0Vycm9yKCfQmtC+0LvQuNGH0LXRgdGC0LLQviDQs9GA0Y/QtNC+0Log0LTQvtC70LbQvdC+INCx0YvRgtGMINGG0LXQu9GL0Lwg0YfQuNGB0LvQvtC8INC90LUg0LzQtdC90LXQtSAxLicpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoYmVkV1ZhbCA8PSAwKSB7CiAgICAgIHNob3dFcnJvcign0KjQuNGA0LjQvdCwINCz0YDRj9C00LrQuCDQtNC+0LvQttC90LAg0LHRi9GC0Ywg0L/QvtC70L7QttC40YLQtdC70YzQvdGL0Lwg0YfQuNGB0LvQvtC8LicpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoYmVkTFZhbCA8PSAwKSB7CiAgICAgIHNob3dFcnJvcign0JTQu9C40L3QsCDQs9GA0Y/QtNC60Lgg0LTQvtC70LbQvdCwINCx0YvRgtGMINC/0L7Qu9C+0LbQuNGC0LXQu9GM0L3Ri9C8INGH0LjRgdC70L7QvC4nKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKGdyZWVuVmFsIDwgMCB8fCBidWlsZFZhbCA8IDApIHsKICAgICAgc2hvd0Vycm9yKCfQn9C70L7RidCw0LTRjCDRgtC10L/Qu9C40YYg0Lgg0L/QvtGB0YLRgNC+0LXQuiDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0L7RgtGA0LjRhtCw0YLQtdC70YzQvdC+0LkuJyk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGlmIChwbGFudFNwVmFsIDwgMCB8fCByb3dTcFZhbCA8IDApIHsKICAgICAgc2hvd0Vycm9yKCfQoNCw0YHRgdGC0L7Rj9C90LjRjyDQvNC10LbQtNGDINGA0LDRgdGC0LXQvdC40Y/QvNC4INC4INGA0Y/QtNCw0LzQuCDQvdC1INC80L7Qs9GD0YIg0LHRi9GC0Ywg0L7RgtGA0LjRhtCw0YLQtdC70YzQvdGL0LzQuC4nKTsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICh1bml0ID09PSAnc290a2EnKSB7CiAgICAgIGxlbmd0aFZhbCA9IGxlbmd0aFZhbCAqIDEwOwogICAgICB3aWR0aFZhbCA9IHdpZHRoVmFsICogMTA7CiAgICB9CgogICAgaWYgKGJlZExWYWwgPiBsZW5ndGhWYWwpIHsKICAgICAgc2hvd0Vycm9yKCfQlNC70LjQvdCwINCz0YDRj9C00LrQuCAoJyArIGJlZExWYWwudG9GaXhlZCgxKSArICcg0LwpINC90LUg0LzQvtC20LXRgiDQv9GA0LXQstGL0YjQsNGC0Ywg0LTQu9C40L3RgyDQvtCz0L7RgNC+0LTQsCAoJyArIGxlbmd0aFZhbC50b0ZpeGVkKDEpICsgJyDQvCkuJyk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHZhciB0b3RhbEJlZHNXaWR0aCA9IGJlZHNWYWwgKiBiZWRXVmFsOwogICAgaWYgKHRvdGFsQmVkc1dpZHRoID4gd2lkdGhWYWwpIHsKICAgICAgc2hvd0Vycm9yKCfQk9GA0Y/QtNC60Lgg0L3QtSDQv9C+0LzQtdGJ0LDRjtGC0YHRjyDQv9C+INGI0LjRgNC40L3QtSDRg9GH0LDRgdGC0LrQsC4g0KHRg9C80LzQsNGA0L3QsNGPINGI0LjRgNC40L3QsCDQs9GA0Y/QtNC+0LogKCcgKyB0b3RhbEJlZHNXaWR0aC50b0ZpeGVkKDIpICsgJyDQvCkg0L/RgNC10LLRi9GI0LDQtdGCINGI0LjRgNC40L3RgyDQvtCz0L7RgNC+0LTQsCAoJyArIHdpZHRoVmFsLnRvRml4ZWQoMikgKyAnINC8KS4nKTsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIHZhciB0b3RhbEFyZWEgPSBsZW5ndGhWYWwgKiB3aWR0aFZhbDsKICAgIHZhciBiZWRzQXJlYSA9IGJlZHNWYWwgKiBiZWRXVmFsICogYmVkTFZhbDsKICAgIHZhciBwYXRoc1dpZHRoVG90YWwgPSB3aWR0aFZhbCAtIHRvdGFsQmVkc1dpZHRoOwogICAgdmFyIHBhdGhzQ291bnQgPSBiZWRzVmFsICsgMTsKICAgIHZhciBzaW5nbGVQYXRoV2lkdGggPSBwYXRoc1dpZHRoVG90YWwgLyBwYXRoc0NvdW50OwogICAgdmFyIGxvbmdQYXRoc0FyZWEgPSBwYXRoc1dpZHRoVG90YWwgKiBiZWRMVmFsOwogICAgdmFyIGVuZFpvbmVzQXJlYSA9IChsZW5ndGhWYWwgLSBiZWRMVmFsKSAqIHdpZHRoVmFsOwogICAgdmFyIHRvdGFsUGF0aHNBcmVhID0gbG9uZ1BhdGhzQXJlYSArIGVuZFpvbmVzQXJlYTsKICAgIHZhciB1c2VmdWxBcmVhID0gYmVkc0FyZWEgKyBncmVlblZhbDsKICAgIHZhciBvY2N1cGllZEFyZWEgPSBiZWRzQXJlYSArIHRvdGFsUGF0aHNBcmVhICsgZ3JlZW5WYWwgKyBidWlsZFZhbDsKICAgIHZhciBmcmVlQXJlYSA9IHRvdGFsQXJlYSAtIG9jY3VwaWVkQXJlYTsKCiAgICBpZiAoZnJlZUFyZWEgPCAtMC4wMSkgewogICAgICBzaG93RXJyb3IoJ9Ch0YPQvNC80LDRgNC90LDRjyDQv9C70L7RidCw0LTRjCDQs9GA0Y/QtNC+0LosINC00L7RgNC+0LbQtdC6LCDRgtC10L/Qu9C40YYg0Lgg0L/QvtGB0YLRgNC+0LXQuiAoJyArIG9jY3VwaWVkQXJlYS50b0ZpeGVkKDIpICsgJyDQvMKyKSDQv9GA0LXQstGL0YjQsNC10YIg0L7QsdGJ0YPRjiDQv9C70L7RidCw0LTRjCDQvtCz0L7RgNC+0LTQsCAoJyArIHRvdGFsQXJlYS50b0ZpeGVkKDIpICsgJyDQvMKyKS4g0KPQvNC10L3RjNGI0LjRgtC1INGA0LDQt9C80LXRgNGLINC40LvQuCDQutC+0LvQuNGH0LXRgdGC0LLQviDQvtCx0YrQtdC60YLQvtCyLicpOwogICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoZnJlZUFyZWEgPCAwKSBmcmVlQXJlYSA9IDA7CgogICAgdmFyIHVzZWZ1bFBlcmNlbnQgPSB0b3RhbEFyZWEgPiAwID8gKHVzZWZ1bEFyZWEgLyB0b3RhbEFyZWEpICogMTAwIDogMDsKICAgIHZhciByZXNlcnZlQXJlYSA9IHVzZWZ1bEFyZWEgKiAwLjE7CgogICAgdmFyIHBsYW50Q291bnRTdHIgPSAn4oCUJzsKICAgIHZhciBwbGFudENvdW50VW5pdCA9ICcnOwogICAgaWYgKHBsYW50U3BWYWwgPiAwICYmIHJvd1NwVmFsID4gMCAmJiBiZWRMVmFsID4gMCAmJiBiZWRXVmFsID4gMCkgewogICAgICB2YXIgcGxhbnRzSW5Sb3cgPSBNYXRoLmZsb29yKChiZWRMVmFsICogMTAwKSAvIHBsYW50U3BWYWwpOwogICAgICB2YXIgcm93c1BlckJlZCA9IE1hdGguZmxvb3IoKGJlZFdWYWwgKiAxMDApIC8gcm93U3BWYWwpOwogICAgICBpZiAocGxhbnRzSW5Sb3cgPiAwICYmIHJvd3NQZXJCZWQgPiAwKSB7CiAgICAgICAgdmFyIHRvdGFsUGxhbnRzID0gcGxhbnRzSW5Sb3cgKiByb3dzUGVyQmVkICogYmVkc1ZhbDsKICAgICAgICBwbGFudENvdW50U3RyID0gdG90YWxQbGFudHMudG9TdHJpbmcoKTsKICAgICAgICBwbGFudENvdW50VW5pdCA9ICfRiNGCJzsKICAgICAgfSBlbHNlIHsKICAgICAgICBwbGFudENvdW50U3RyID0gJzAnOwogICAgICAgIHBsYW50Q291bnRVbml0ID0gJ9GI0YInOwogICAgICB9CiAgICB9CgogICAgdmFyIGFyZWFVbml0ID0gJ9C8wrInOwogICAgdXBkYXRlUmVzdWx0KCdyZXN1bHRfdG90YWxfYXJlYScsIHRvdGFsQXJlYS50b0ZpeGVkKDIpLCBhcmVhVW5pdCk7CiAgICB1cGRhdGVSZXN1bHQoJ3Jlc3VsdF91c2VmdWxfYXJlYScsIHVzZWZ1bEFyZWEudG9GaXhlZCgyKSwgYXJlYVVuaXQpOwogICAgdXBkYXRlUmVzdWx0KCdyZXN1bHRfdXNlZnVsX3BlcmNlbnQnLCB1c2VmdWxQZXJjZW50LnRvRml4ZWQoMSksICclJyk7CiAgICB1cGRhdGVSZXN1bHQoJ3Jlc3VsdF9iZWRzX2FyZWEnLCBiZWRzQXJlYS50b0ZpeGVkKDIpLCBhcmVhVW5pdCk7CiAgICB1cGRhdGVSZXN1bHQoJ3Jlc3VsdF9wYXRoc19hcmVhJywgdG90YWxQYXRoc0FyZWEudG9GaXhlZCgyKSwgYXJlYVVuaXQpOwogICAgdXBkYXRlUmVzdWx0KCdyZXN1bHRfZ3JlZW5ob3VzZV9hcmVhJywgZ3JlZW5WYWwudG9GaXhlZCgyKSwgYXJlYVVuaXQpOwogICAgdXBkYXRlUmVzdWx0KCdyZXN1bHRfYnVpbGRpbmdfYXJlYScsIGJ1aWxkVmFsLnRvRml4ZWQoMiksIGFyZWFVbml0KTsKICAgIHVwZGF0ZVJlc3VsdCgncmVzdWx0X2ZyZWVfYXJlYScsIGZyZWVBcmVhLnRvRml4ZWQoMiksIGFyZWFVbml0KTsKICAgIHVwZGF0ZVJlc3VsdCgncmVzdWx0X3BhdGhfd2lkdGgnLCBzaW5nbGVQYXRoV2lkdGgudG9GaXhlZCgyKSwgJ9C8Jyk7CiAgICB1cGRhdGVSZXN1bHQoJ3Jlc3VsdF9wbGFudF9jb3VudCcsIHBsYW50Q291bnRTdHIsIHBsYW50Q291bnRVbml0KTsKICAgIHVwZGF0ZVJlc3VsdCgncmVzdWx0X3Jlc2VydmVfYXJlYScsIHJlc2VydmVBcmVhLnRvRml4ZWQoMiksIGFyZWFVbml0KTsKICB9CgogIGZ1bmN0aW9uIHJlc2V0Rm9ybSgpIHsKICAgIGdhcmRlbkxlbmd0aC52YWx1ZSA9ICcyMCc7CiAgICBnYXJkZW5XaWR0aC52YWx1ZSA9ICcxMCc7CiAgICBiZWRDb3VudC52YWx1ZSA9ICc4JzsKICAgIGJlZFdpZHRoLnZhbHVlID0gJzAuOCc7CiAgICBiZWRMZW5ndGgudmFsdWUgPSAnMTgnOwogICAgZ3JlZW5ob3VzZUFyZWEudmFsdWUgPSAnMTInOwogICAgYnVpbGRpbmdBcmVhLnZhbHVlID0gJzYnOwogICAgcGxhbnRTcGFjaW5nLnZhbHVlID0gJzMwJzsKICAgIHJvd1NwYWNpbmcudmFsdWUgPSAnNDAnOwogICAgdW5pdFNlbGVjdC52YWx1ZSA9ICdtMic7CiAgICBoaWRlRXJyb3IoKTsKICAgIGNhbGN1bGF0ZSgpOwogIH0KCiAgY2FsY3VsYXRlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2FsY3VsYXRlKTsKICByZXNldEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHJlc2V0Rm9ybSk7CgogIGNhbGN1bGF0ZSgpOwp9KSgpOwo=