Калькулятор секций радиатора
Рассчитайте точное количество секций радиатора отопления для вашего помещения с учётом площади, высоты потолков, количества окон и типа комнаты.
—
Необходимое количество секций
шт.
—
Теплопотери помещения
Вт
—
Рекомендуемая мощность радиатора
Вт
Как пользоваться калькулятором
1
Введите площадь помещения в квадратных метрах. Например, для комнаты 4×5 метров укажите 20.
2
Укажите высоту потолков. Стандартное значение в большинстве квартир — 2,7 м. Если потолки выше, теплопотери увеличиваются.
3
Выберите количество окон и тип помещения. Угловые комнаты и помещения на первом или последнем этаже теряют больше тепла — калькулятор это учтёт.
4
Нажмите «Рассчитать». Вы получите точное количество секций, теплопотери помещения и рекомендуемую мощность радиатора. При необходимости скорректируйте теплоотдачу секции под свою модель радиатора.
Примеры расчёта
Стандартная спальня 14 м²
Площадь: 14 м², высота потолков: 2,7 м, одно окно, обычное помещение, теплоотдача секции: 180 Вт. Результат: 9 секций, теплопотери: 1550 Вт.
Угловая гостиная 22 м² с двумя окнами
Площадь: 22 м², высота потолков: 2,8 м, два окна, угловое помещение, теплоотдача секции: 185 Вт. Результат: 17 секций, теплопотери: 3050 Вт.
Кухня 10 м² на первом этаже
Площадь: 10 м², высота потолков: 2,5 м, одно окно, угловое + первый этаж, теплоотдача секции: 170 Вт. Результат: 9 секций, теплопотери: 1435 Вт.
Формулы расчёта
Калькулятор использует методику, основанную на СНиП 2.04.05-91 и СП 60.13330.2020, адаптированную для бытового применения:
Объём помещения:
V = S × h, где S — площадь (м²), h — высота потолков (м).
Базовые теплопотери:
Qбаз = V × 41, где 41 Вт/м³ — норматив для средней полосы России.
Итоговые теплопотери:
Q = Qбаз × Kокна × Kтип, где Kокна — коэффициент остекления (0,85–1,3), Kтип — коэффициент типа помещения (1,0–1,4).
Количество секций:
N = ⌈ Q / Pсекции ⌉, где Pсекции — паспортная теплоотдача одной секции (Вт), округление вверх до целого.
Пошаговое объяснение
Расчёт начинается с определения объёма помещения. Умножаем площадь на высоту потолков — получаем кубатуру воздуха, который нужно прогреть. Чем выше потолки, тем больше объём и тем больше энергии требуется для отопления.
Затем вычисляем базовые теплопотери: умножаем объём на 41 Вт. Это эмпирический коэффициент, выведенный для климатических условий центральной части России. Он учитывает среднюю температуру наружного воздуха –26 °C и комфортные +20 °C внутри.
Далее применяем поправочные коэффициенты. Каждое окно увеличивает теплопотери на 10–15%. Угловое расположение добавляет ещё 20%, а первый или последний этаж — дополнительные 15–20% из-за контакта с холодным подвалом или чердаком. Все коэффициенты перемножаются.
Финальный шаг — деление итоговых теплопотерь на теплоотдачу одной секции. Результат округляется вверх: даже 6,1 секции означает, что нужно ставить 7. Лучше небольшой запас, чем холод в комнате.
Где применяется
- Замена старых чугунных радиаторов — помогает подобрать биметаллический или алюминиевый аналог с нужным количеством секций, чтобы не потерять в тепле.
- Планирование отопления в новостройке — ещё на этапе черновой отделки можно рассчитать, сколько секций потребуется для каждой комнаты.
- Утепление балкона или лоджии — присоединение отапливаемой лоджии к комнате меняет тепловой баланс, и калькулятор помогает пересчитать радиатор.
- Замена окон на энергосберегающие — после установки стеклопакетов теплопотери снижаются, можно уменьшить количество секций и сэкономить.
- Расчёт отопления для дачи или загородного дома — особенно актуально для домов с высокими потолками и большой площадью остекления.
- Проверка проекта от застройщика — полезно сверить проектное количество секций с реальной потребностью, чтобы избежать недотопа зимой.
Важные нюансы
- Норматив 41 Вт/м³ подходит для средней полосы России. Для северных регионов (Якутия, Мурманск) коэффициент может достигать 60 Вт/м³, для южных — снижаться до 30 Вт/м³.
- Калькулятор даёт оценочное значение. Реальный тепловой расчёт учитывает материал стен, толщину утеплителя, розу ветров и десятки других факторов.
- Теплоотдача секции всегда указана в паспорте радиатора. Для биметаллических моделей это обычно 170–200 Вт, для алюминиевых — 180–210 Вт, для чугунных — 110–160 Вт на секцию.
- При установке радиатора под подоконником добавьте 5–10% к расчётному количеству секций — ниша снижает эффективность теплоотдачи.
- Закрытие радиатора декоративным экраном уменьшает теплоотдачу на 10–15%. Если планируете экран — заложите это в запас.
- Расчёт ведётся для температурного напора 70 °C (подача 90 °C, обратка 70 °C, воздух 20 °C). При низкотемпературном отоплении (тёплые полы, конденсационные котлы) методика расчёта иная.
Частые ошибки
- Расчёт только по площади без учёта высоты потолков. В помещении с потолками 3,2 м объём воздуха на 20% больше, чем при 2,7 м, а значит, и тепла нужно больше. Всегда пересчитывайте через объём.
- Игнорирование углового расположения. Угловая комната отдаёт тепло через две стены вместо одной — разница в теплопотерях достигает 40%. Калькулятор учитывает это автоматически, не пропускайте выбор типа помещения.
- Использование неправильной теплоотдачи секции. Цифра 200 Вт из рекламы часто указана для идеальных условий. В реальности при стандартном режиме 70/55/20 отдача ниже. Смотрите паспортные данные для вашего температурного графика.
- Установка «впритык» без запаса. Округление вниз — самая опасная ошибка. Если расчёт показал 7,2 секции, ставьте 8. Разница в цене одной секции несопоставима с дискомфортом от холода.
- Одинаковый расчёт для всех комнат. Спальня, детская и ванная имеют разные требования к температуре. Для ванной норму 41 Вт/м³ можно увеличить до 50 Вт/м³, чтобы обеспечить +24…+25 °C.
- Забывают про неотапливаемые смежные помещения. Если за стеной — холодная кладовая или неотапливаемый коридор, эта стена считается наружной. Добавьте 10–15% к теплопотерям.
Ответы на частые вопросы
Можно ли ставить радиатор с меньшим количеством секций, чем рассчитано? Не рекомендуется. Недобор 1–2 секций снизит температуру в комнате на 1–3 °C. В сильные морозы это станет заметно. Лучше взять с небольшим запасом — терморегулятор позволит снизить отдачу в тёплую погоду.
Что делать, если окна выходят на север? Северная сторона получает меньше солнечного тепла. Рекомендуется увеличить расчётное количество секций на 5–10% либо учесть это через повышение норматива с 41 до 45 Вт/м³.
Влияет ли материал радиатора на расчёт? Да, но опосредованно — через теплоотдачу одной секции. У алюминиевых она выше, у чугунных ниже. Сам расчёт теплопотерь помещения от материала радиатора не зависит. Важна итоговая мощность прибора.
Нужно ли пересчитывать секции после замены окон? Обязательно. Замена старых деревянных рам на двухкамерные стеклопакеты снижает теплопотери на 20–30%. Калькулятор покажет новое количество секций — возможно, вы сможете снять 1–2 секции и сэкономить.
Как быть с панорамными окнами в пол? Окна большой площади резко увеличивают теплопотери. Одно панорамное окно может быть эквивалентно двум-трём стандартным. Укажите количество окон с запасом или добавьте 20–30% к итоговому результату.
Подходит ли расчёт для тёплых полов? Нет, этот калькулятор предназначен для радиаторного отопления. Расчёт тёплых полов ведётся по другой методике — через удельную теплоотдачу с квадратного метра поверхности пола.
Источники и справочные данные
Расчёт основан на методике, изложенной в СНиП 2.04.05-91 «Отопление, вентиляция и кондиционирование» и актуализированной в СП 60.13330.2020. Норматив 41 Вт/м³ соответствует климатическим условиям центральной полосы России (расчётная температура наружного воздуха –26 °C, внутренняя +20 °C, температурный напор 70 °C). Коэффициенты на окна и тип помещения взяты из практических рекомендаций производителей радиаторов и согласуются с общестроительными нормами. Теплоотдача секций — паспортные данные, проверяемые по сертификатам ГОСТ 31311-2005.
Полное руководство по расчёту секций радиатора: от теории к практике
Почему нельзя считать секции «на глаз»
Многие полагают, что для комнаты площадью 18 квадратных метров достаточно «стандартных» 10 секций. Это опасное заблуждение. Количество секций зависит не только от площади, но и от высоты потолков, количества окон, расположения квартиры в доме и даже от того, на какую сторону света выходят окна. Ошибка даже в одну секцию может обернуться хроническим недогревом или лишними затратами на отопление.
Наш калькулятор устраняет гадания и даёт обоснованный результат за несколько секунд. Но чтобы правильно им пользоваться и понимать полученные цифры, полезно разобраться в физике процесса и стоящих за расчётом принципах. В этой статье мы подробно разберём все аспекты — от строительных нормативов до практических хитростей монтажа.
От чего зависит необходимое количество секций
Главных факторов четыре: объём помещения, климатическая зона, качество теплоизоляции и характеристики самого радиатора. Объём определяет, сколько кубометров воздуха нужно нагреть. Климатическая зона задаёт базовые теплопотери на кубометр. Теплоизоляция — это стены, окна, пол и потолок: чем они «холоднее», тем больше поправочных коэффициентов. А радиатор — это финальный инструмент: зная общие теплопотери, мы делим их на мощность одной секции и получаем их количество.
На практике это выглядит так: комната 20 м² с потолками 2,7 м в панельной девятиэтажке и такая же комната в кирпичном доме с потолками 3,2 м потребуют совершенно разного количества секций. Разница может достигать 30–40%, и это нормально — так работает физика.
Норматив 41 Вт/м³: откуда взялся и когда его менять
Цифра 41 ватт на кубический метр — это усреднённый показатель для средней полосы России, рассчитанный для панельных домов массовой застройки. Он предполагает, что при морозе –26 °C снаружи и +20 °C внутри каждый кубометр воздуха теряет примерно 41 Вт тепла в час. Это значение проверено десятилетиями и закреплено в строительных нормах.
Однако для разных регионов норматив следует корректировать. В Краснодаре достаточно 30–35 Вт/м³, в Екатеринбурге — 45–50 Вт/м³, а в Якутске может потребоваться 60–65 Вт/м³. Если вы живёте в регионе с суровыми зимами, используйте региональный коэффициент или проконсультируйтесь с местными теплотехниками. Наш калькулятор даёт базовый расчёт по 41 Вт/м³ — это надёжная отправная точка для большинства пользователей.
Как окна, углы и этажи меняют теплопотери
Каждое окно в комнате — это мостик холода. Даже современный стеклопакет пропускает тепло в 3–5 раз интенсивнее, чем капитальная стена. Одно окно увеличивает базовые теплопотери примерно на 10%, два окна — на 20–25%, три и более — на 35% и выше. Калькулятор автоматически применяет повышающие коэффициенты: 1,0 для одного окна, 1,15 для двух и 1,3 для трёх и более.
Угловое расположение добавляет вторую наружную стену, через которую уходит тепло. Коэффициент 1,2 означает рост теплопотерь на 20% по сравнению с обычной комнатой. Если же угловая квартира находится на первом или последнем этаже, добавляется контакт с холодным подвалом или неотапливаемым чердаком — коэффициент возрастает до 1,4. Это серьёзная добавка, и игнорировать её нельзя.
Теплоотдача секции: что писать в поле калькулятора
Самая частая путаница возникает именно здесь. Производители указывают теплоотдачу секции для разных температурных режимов: 90/70/20 (максимальный), 75/65/20 (средний) и 55/45/20 (низкотемпературный). Разница между ними может составлять 30–40%. Для стандартной системы центрального отопления в России ориентируйтесь на режим 75/65/20 — это примерно 170–190 Вт для биметаллической секции и 150–170 Вт для алюминиевой.
Если у вас автономное отопление с котлом, посмотрите в паспорте радиатора значение для вашего температурного графика. Обычно при подаче 70 °C и обратке 55 °C одна секция биметалла выдаёт около 160–170 Вт. Именно это число и нужно вводить в поле «Теплоотдача одной секции». Не берите максимальные рекламные 200 Вт — в реальных условиях вы их не получите.
Запас мощности: сколько секций добавить «про запас»
Строительные нормы рекомендуют закладывать запас 10–15% от расчётной мощности. Это не прихоть, а разумная предосторожность. Зимой бывают морозы ниже расчётных, а со временем радиаторы засоряются и немного теряют эффективность. Одна дополнительная секция — это страховка на 15–20 лет эксплуатации.
Но и перебарщивать не стоит. Слишком большой радиатор будет постоянно работать в режиме «придушенного» терморегулятора, а это неэффективно и сокращает срок службы клапана. Оптимальный запас — округление вверх плюс одна секция, если результат оказался близок к целому числу (например, 7,8 → 8 или даже 9 для угловых комнат).
Практический пример: типичная двушка в панельном доме
Возьмём реальную квартиру в московской панельной девятиэтажке. Зал 18 м², потолки 2,65 м, два окна, не угловой, средний этаж. Объём: 18 × 2,65 = 47,7 м³. Базовые теплопотери: 47,7 × 41 = 1956 Вт. Коэффициент на два окна — 1,15, тип обычный — 1,0. Итоговые теплопотери: 1956 × 1,15 = 2249 Вт. При теплоотдаче секции 180 Вт получаем 2249 / 180 = 12,49 → 13 секций.
Теперь соседняя спальня 14 м² с одним окном, тоже не угловая: объём 37,1 м³, базовые теплопотери 1521 Вт, коэффициент окон 1,0, итог — 1521 Вт. Делим на 180 Вт: 8,45 → 9 секций. А кухня 9 м² с окном и холодной стеной в вентканал: объём 23,85 м³, базовые 978 Вт, но добавляем 10% на вентканал и получаем 1076 Вт → 6 секций. Итого на квартиру — 28 секций биметалла. Сравните с типовым проектом застройщика, где часто ставят 20–22 секции, — и картина станет ясной.
Когда одного калькулятора недостаточно
Наш инструмент решает 90% бытовых задач, но есть ситуации, требующие профессионального теплотехнического расчёта. Это касается домов с панорамным остеклением, помещений сложной формы, объектов с принудительной вентиляцией и бассейнов. В таких случаях теплопотери считаются по полной методике с учётом инфильтрации воздуха, ориентации по сторонам света и детальных характеристик ограждающих конструкций. Калькулятор даст вам ориентир, но окончательное решение лучше доверить специалисту.
Также помните, что радиатор — лишь часть системы отопления. Мощность котла, диаметр труб, настройка балансировочных клапанов и даже цвет радиатора (белые отдают на 2–3% меньше тепла, чем тёмные) влияют на итоговый комфорт. Но правильный расчёт секций — это фундамент, с которого начинается тёплый дом.
CiAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGFyZWFJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyYWQtcm9vbS1hcmVhJyk7CiAgICAgICAgdmFyIGhlaWdodElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JhZC1jZWlsaW5nLWhlaWdodCcpOwogICAgICAgIHZhciB3aW5kb3dzSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmFkLXdpbmRvd3MnKTsKICAgICAgICB2YXIgdHlwZVNlbGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyYWQtcm9vbS10eXBlJyk7CiAgICAgICAgdmFyIHBvd2VySW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmFkLXNlY3Rpb24tcG93ZXInKTsKCiAgICAgICAgdmFyIGVyckFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmFkLWVyci1hcmVhJyk7CiAgICAgICAgdmFyIGVyckhlaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyYWQtZXJyLWhlaWdodCcpOwogICAgICAgIHZhciBlcnJXaW5kb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JhZC1lcnItd2luZG93cycpOwogICAgICAgIHZhciBlcnJUeXBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JhZC1lcnItdHlwZScpOwogICAgICAgIHZhciBlcnJQb3dlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyYWQtZXJyLXBvd2VyJyk7CgogICAgICAgIHZhciByZXNTZWN0aW9ucyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyYWQtcmVzLXNlY3Rpb25zJyk7CiAgICAgICAgdmFyIHJlc0hlYXRsb3NzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JhZC1yZXMtaGVhdGxvc3MnKTsKICAgICAgICB2YXIgcmVzUG93ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmFkLXJlcy1wb3dlcicpOwogICAgICAgIHZhciByZXNTZWN0aW9uc1Jlc2VydmUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmFkLXJlcy1zZWN0aW9ucy1yZXNlcnZlJyk7CgogICAgICAgIGZ1bmN0aW9uIGNsZWFyQWxsRXJyb3JzKCkgewogICAgICAgICAgICBlcnJBcmVhLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgIGVyckhlaWdodC50ZXh0Q29udGVudCA9ICcnOwogICAgICAgICAgICBlcnJXaW5kb3dzLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgIGVyclR5cGUudGV4dENvbnRlbnQgPSAnJzsKICAgICAgICAgICAgZXJyUG93ZXIudGV4dENvbnRlbnQgPSAnJzsKICAgICAgICB9CgogICAgICAgIGZ1bmN0aW9uIHJlc2V0UmVzdWx0cygpIHsKICAgICAgICAgICAgcmVzU2VjdGlvbnMudGV4dENvbnRlbnQgPSAnXHUyMDE0JzsKICAgICAgICAgICAgcmVzSGVhdGxvc3MudGV4dENvbnRlbnQgPSAnXHUyMDE0JzsKICAgICAgICAgICAgcmVzUG93ZXIudGV4dENvbnRlbnQgPSAnXHUyMDE0JzsKICAgICAgICAgICAgcmVzU2VjdGlvbnNSZXNlcnZlLnRleHRDb250ZW50ID0gJ1x1MjAxNCc7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZUFuZENhbGN1bGF0ZSgpIHsKICAgICAgICAgICAgY2xlYXJBbGxFcnJvcnMoKTsKICAgICAgICAgICAgdmFyIGhhc0Vycm9yID0gZmFsc2U7CgogICAgICAgICAgICB2YXIgYXJlYVJhdyA9IGFyZWFJbnB1dC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIHZhciBoZWlnaHRSYXcgPSBoZWlnaHRJbnB1dC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIHZhciB3aW5kb3dzUmF3ID0gd2luZG93c0lucHV0LnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgdmFyIHBvd2VyUmF3ID0gcG93ZXJJbnB1dC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgIHZhciByb29tVHlwZSA9IHR5cGVTZWxlY3QudmFsdWU7CgogICAgICAgICAgICBpZiAoYXJlYVJhdyA9PT0gJycpIHsKICAgICAgICAgICAgICAgIGVyckFyZWEudGV4dENvbnRlbnQgPSAn0JLQstC10LTQuNGC0LUg0L/Qu9C+0YnQsNC00Ywg0L/QvtC80LXRidC10L3QuNGPJzsKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaGVpZ2h0UmF3ID09PSAnJykgewogICAgICAgICAgICAgICAgZXJySGVpZ2h0LnRleHRDb250ZW50ID0gJ9CS0LLQtdC00LjRgtC1INCy0YvRgdC+0YLRgyDQv9C+0YLQvtC70LrQvtCyJzsKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAod2luZG93c1JhdyA9PT0gJycpIHsKICAgICAgICAgICAgICAgIGVycldpbmRvd3MudGV4dENvbnRlbnQgPSAn0KPQutCw0LbQuNGC0LUg0LrQvtC70LjRh9C10YHRgtCy0L4g0L7QutC+0L0gKNC80L7QttC90L4gMCknOwogICAgICAgICAgICAgICAgaGFzRXJyb3IgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChwb3dlclJhdyA9PT0gJycpIHsKICAgICAgICAgICAgICAgIGVyclBvd2VyLnRleHRDb250ZW50ID0gJ9CS0LLQtdC00LjRgtC1INGC0LXQv9C70L7QvtGC0LTQsNGH0YMg0L7QtNC90L7QuSDRgdC10LrRhtC40LgnOwogICAgICAgICAgICAgICAgaGFzRXJyb3IgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcm9vbVR5cGUpIHsKICAgICAgICAgICAgICAgIGVyclR5cGUudGV4dENvbnRlbnQgPSAn0JLRi9Cx0LXRgNC40YLQtSDRgtC40L8g0L/QvtC80LXRidC10L3QuNGPJzsKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGhhc0Vycm9yKSB7CiAgICAgICAgICAgICAgICByZXNldFJlc3VsdHMoKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIGFyZWEgPSBwYXJzZUZsb2F0KGFyZWFSYXcpOwogICAgICAgICAgICB2YXIgaGVpZ2h0ID0gcGFyc2VGbG9hdChoZWlnaHRSYXcpOwogICAgICAgICAgICB2YXIgd2luZG93cyA9IHBhcnNlRmxvYXQod2luZG93c1Jhdyk7CiAgICAgICAgICAgIHZhciBzZWN0aW9uUG93ZXIgPSBwYXJzZUZsb2F0KHBvd2VyUmF3KTsKCiAgICAgICAgICAgIGlmIChpc05hTihhcmVhKSB8fCBhcmVhIDw9IDApIHsKICAgICAgICAgICAgICAgIGVyckFyZWEudGV4dENvbnRlbnQgPSAn0J/Qu9C+0YnQsNC00Ywg0LTQvtC70LbQvdCwINCx0YvRgtGMINC/0L7Qu9C+0LbQuNGC0LXQu9GM0L3Ri9C8INGH0LjRgdC70L7QvCc7CiAgICAgICAgICAgICAgICBoYXNFcnJvciA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGFyZWEgPiA1MDApIHsKICAgICAgICAgICAgICAgIGVyckFyZWEudGV4dENvbnRlbnQgPSAn0J/Qu9C+0YnQsNC00Ywg0L3QtSDQvNC+0LbQtdGCINC/0YDQtdCy0YvRiNCw0YLRjCA1MDAg0LzCsic7CiAgICAgICAgICAgICAgICBoYXNFcnJvciA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGlzTmFOKGhlaWdodCkgfHwgaGVpZ2h0IDwgMikgewogICAgICAgICAgICAgICAgZXJySGVpZ2h0LnRleHRDb250ZW50ID0gJ9CS0YvRgdC+0YLQsCDQv9C+0YLQvtC70LrQvtCyINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDQvNC10L3RjNGI0LUgMiDQvCc7CiAgICAgICAgICAgICAgICBoYXNFcnJvciA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGhlaWdodCA+IDYpIHsKICAgICAgICAgICAgICAgIGVyckhlaWdodC50ZXh0Q29udGVudCA9ICfQktGL0YHQvtGC0LAg0L/QvtGC0L7Qu9C60L7QsiDQvdC1INC80L7QttC10YIg0L/RgNC10LLRi9GI0LDRgtGMIDYg0LwnOwogICAgICAgICAgICAgICAgaGFzRXJyb3IgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc05hTih3aW5kb3dzKSB8fCB3aW5kb3dzIDwgMCkgewogICAgICAgICAgICAgICAgZXJyV2luZG93cy50ZXh0Q29udGVudCA9ICfQmtC+0LvQuNGH0LXRgdGC0LLQviDQvtC60L7QvSDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0L7RgtGA0LjRhtCw0YLQtdC70YzQvdGL0LwnOwogICAgICAgICAgICAgICAgaGFzRXJyb3IgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh3aW5kb3dzID4gMTApIHsKICAgICAgICAgICAgICAgIGVycldpbmRvd3MudGV4dENvbnRlbnQgPSAn0KPQutCw0LbQuNGC0LUg0L3QtSDQsdC+0LvQtdC1IDEwINC+0LrQvtC9JzsKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIod2luZG93cykpIHsKICAgICAgICAgICAgICAgIGVycldpbmRvd3MudGV4dENvbnRlbnQgPSAn0JrQvtC70LjRh9C10YHRgtCy0L4g0L7QutC+0L0g0LTQvtC70LbQvdC+INCx0YvRgtGMINGG0LXQu9GL0Lwg0YfQuNGB0LvQvtC8JzsKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaXNOYU4oc2VjdGlvblBvd2VyKSB8fCBzZWN0aW9uUG93ZXIgPD0gMCkgewogICAgICAgICAgICAgICAgZXJyUG93ZXIudGV4dENvbnRlbnQgPSAn0KLQtdC/0LvQvtC+0YLQtNCw0YfQsCDQtNC+0LvQttC90LAg0LHRi9GC0Ywg0L/QvtC70L7QttC40YLQtdC70YzQvdGL0Lwg0YfQuNGB0LvQvtC8JzsKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc2VjdGlvblBvd2VyIDwgNTApIHsKICAgICAgICAgICAgICAgIGVyclBvd2VyLnRleHRDb250ZW50ID0gJ9Ci0LXQv9C70L7QvtGC0LTQsNGH0LAg0YHQtdC60YbQuNC4INC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDQvNC10L3RjNGI0LUgNTAg0JLRgic7CiAgICAgICAgICAgICAgICBoYXNFcnJvciA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHNlY3Rpb25Qb3dlciA+IDUwMCkgewogICAgICAgICAgICAgICAgZXJyUG93ZXIudGV4dENvbnRlbnQgPSAn0KLQtdC/0LvQvtC+0YLQtNCw0YfQsCDRgdC10LrRhtC40Lgg0L3QtSDQvNC+0LbQtdGCINC/0YDQtdCy0YvRiNCw0YLRjCA1MDAg0JLRgic7CiAgICAgICAgICAgICAgICBoYXNFcnJvciA9IHRydWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChoYXNFcnJvcikgewogICAgICAgICAgICAgICAgcmVzZXRSZXN1bHRzKCk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB2b2x1bWUgPSBhcmVhICogaGVpZ2h0OwogICAgICAgICAgICB2YXIgYmFzZUhlYXRMb3NzID0gdm9sdW1lICogNDE7CgogICAgICAgICAgICB2YXIgd2luZG93Q29lZmY7CiAgICAgICAgICAgIGlmICh3aW5kb3dzID09PSAwKSB7CiAgICAgICAgICAgICAgICB3aW5kb3dDb2VmZiA9IDAuODU7CiAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93cyA9PT0gMSkgewogICAgICAgICAgICAgICAgd2luZG93Q29lZmYgPSAxLjA7CiAgICAgICAgICAgIH0gZWxzZSBpZiAod2luZG93cyA9PT0gMikgewogICAgICAgICAgICAgICAgd2luZG93Q29lZmYgPSAxLjE1OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgd2luZG93Q29lZmYgPSAxLjM7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0eXBlQ29lZmY7CiAgICAgICAgICAgIGlmIChyb29tVHlwZSA9PT0gJ29yZGluYXJ5JykgewogICAgICAgICAgICAgICAgdHlwZUNvZWZmID0gMS4wOwogICAgICAgICAgICB9IGVsc2UgaWYgKHJvb21UeXBlID09PSAnY29ybmVyJykgewogICAgICAgICAgICAgICAgdHlwZUNvZWZmID0gMS4yOwogICAgICAgICAgICB9IGVsc2UgaWYgKHJvb21UeXBlID09PSAnY29ybmVyX2V4dHJlbWUnKSB7CiAgICAgICAgICAgICAgICB0eXBlQ29lZmYgPSAxLjQ7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0eXBlQ29lZmYgPSAxLjA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0b3RhbEhlYXRMb3NzID0gYmFzZUhlYXRMb3NzICogd2luZG93Q29lZmYgKiB0eXBlQ29lZmY7CgogICAgICAgICAgICBpZiAoIWlzRmluaXRlKHRvdGFsSGVhdExvc3MpIHx8IHRvdGFsSGVhdExvc3MgPD0gMCkgewogICAgICAgICAgICAgICAgcmVzZXRSZXN1bHRzKCk7CiAgICAgICAgICAgICAgICBlcnJBcmVhLnRleHRDb250ZW50ID0gJ9Ce0YjQuNCx0LrQsCDRgNCw0YHRh9GR0YLQsDog0L/RgNC+0LLQtdGA0YzRgtC1INCy0LLQtdC00ZHQvdC90YvQtSDQtNCw0L3QvdGL0LUnOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgc2VjdGlvbnNFeGFjdCA9IHRvdGFsSGVhdExvc3MgLyBzZWN0aW9uUG93ZXI7CiAgICAgICAgICAgIHZhciBzZWN0aW9ucyA9IE1hdGguY2VpbChzZWN0aW9uc0V4YWN0KTsKICAgICAgICAgICAgdmFyIHNlY3Rpb25zV2l0aFJlc2VydmUgPSBNYXRoLmNlaWwoc2VjdGlvbnNFeGFjdCAqIDEuMSk7CgogICAgICAgICAgICBpZiAoIWlzRmluaXRlKHNlY3Rpb25zKSB8fCBzZWN0aW9ucyA8PSAwIHx8IHNlY3Rpb25zID4gMjAwKSB7CiAgICAgICAgICAgICAgICByZXNldFJlc3VsdHMoKTsKICAgICAgICAgICAgICAgIGVyckFyZWEudGV4dENvbnRlbnQgPSAn0KDQtdC30YPQu9GM0YLQsNGCINGA0LDRgdGH0ZHRgtCwINCy0YvRiNC10Lsg0LfQsCDQtNC+0L/Rg9GB0YLQuNC80YvQtSDQv9GA0LXQtNC10LvRiyc7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJlc1NlY3Rpb25zLnRleHRDb250ZW50ID0gc2VjdGlvbnM7CiAgICAgICAgICAgIHJlc0hlYXRsb3NzLnRleHRDb250ZW50ID0gTWF0aC5yb3VuZCh0b3RhbEhlYXRMb3NzKTsKICAgICAgICAgICAgcmVzUG93ZXIudGV4dENvbnRlbnQgPSBNYXRoLnJvdW5kKHRvdGFsSGVhdExvc3MpOwogICAgICAgICAgICByZXNTZWN0aW9uc1Jlc2VydmUudGV4dENvbnRlbnQgPSBzZWN0aW9uc1dpdGhSZXNlcnZlOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gcmVzZXRGb3JtKCkgewogICAgICAgICAgICBhcmVhSW5wdXQudmFsdWUgPSAnJzsKICAgICAgICAgICAgaGVpZ2h0SW5wdXQudmFsdWUgPSAnMi43JzsKICAgICAgICAgICAgd2luZG93c0lucHV0LnZhbHVlID0gJzEnOwogICAgICAgICAgICB0eXBlU2VsZWN0LnZhbHVlID0gJ29yZGluYXJ5JzsKICAgICAgICAgICAgcG93ZXJJbnB1dC52YWx1ZSA9ICcxODAnOwogICAgICAgICAgICBjbGVhckFsbEVycm9ycygpOwogICAgICAgICAgICByZXNldFJlc3VsdHMoKTsKICAgICAgICB9CgogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyYWQtY2FsY3VsYXRlLWJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdmFsaWRhdGVBbmRDYWxjdWxhdGUpOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyYWQtcmVzZXQtYnRuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEZvcm0pOwogICAgfSkoKTsK