Калькулятор расхода калорий при ходьбе
Рассчитайте, сколько калорий вы сжигаете во время пеших прогулок, и узнайте пройденное расстояние, количество шагов и время в пути.
0
Пройденное расстояние
км
Как пользоваться калькулятором
1
Укажите свой пол, вес и рост. Рост нужен для автоматического расчёта длины шага. Например: мужчина, 80 кг, 175 см.
2
Выберите, что вам известно — расстояние в километрах или количество шагов. Допустим, вы прошли 5 км или сделали 10000 шагов.
3
Укажите скорость ходьбы. Средняя скорость человека — около 5 км/ч. Для медленной прогулки — 3 км/ч, для быстрой — 7 км/ч.
4
Нажмите «Рассчитать». Результат покажет расход калорий, расстояние, количество шагов и время в пути. При необходимости скорректируйте длину шага вручную.
Примеры расчёта
Прогулка 5 км средним темпом
Женщина, 65 кг, рост 165 см, прошла 5 км со скоростью 5 км/ч. Длина шага ~68 см. Расход калорий: примерно 230 ккал. Количество шагов: около 7350. Время: 60 минут.
10000 шагов быстрым шагом
Мужчина, 85 кг, рост 180 см, сделал 10000 шагов со скоростью 6.5 км/ч. Длина шага ~75 см. Пройденное расстояние: 7.5 км. Расход калорий: примерно 480 ккал. Время: 69 минут.
Медленная прогулка на 3 км
Женщина, 55 кг, рост 160 см, прошла 3 км со скоростью 3 км/ч. Расход калорий: примерно 100 ккал. Количество шагов: около 4550. Время: 60 минут.
Формулы расчёта
Расчёт основан на метаболическом эквиваленте (MET) и стандартной формуле расхода энергии:
Калории (ккал) = MET × вес (кг) × время (часы)
Где MET зависит от скорости ходьбы. Для скорости V (км/ч) значение MET определяется по таблице с линейной интерполяцией:
MET = интерполяция(V) по таблице: 2 км/ч → 1.8, 3 км/ч → 2.3, 4 км/ч → 3.0, 5 км/ч → 3.8, 6 км/ч → 5.0, 7 км/ч → 6.3, 8 км/ч → 8.0, 9 км/ч → 10.0
Расстояние через шаги:
Расстояние (км) = Шаги × Длина шага (см) / 100 000
Длина шага оценивается по росту и полу:
Длина шага (см) ≈ Рост (см) × 0.415 (мужчины) или × 0.413 (женщины)
Время ходьбы:
Время (мин) = Расстояние (км) / Скорость (км/ч) × 60
Пошаговое объяснение
Принцип работы калькулятора прост и прозрачен. Сначала система определяет длину вашего шага — либо автоматически по росту и полу, либо используется значение, введённое вручную. Если вы указали количество шагов, калькулятор переводит их в расстояние: умножает шаги на длину шага в сантиметрах и делит на 100 000, получая километры. Если вы указали расстояние, то калькулятор вычисляет количество шагов обратным путём.
Затем по скорости ходьбы определяется метаболический эквивалент (MET). Чем быстрее вы идёте, тем выше MET и тем больше калорий сжигается за минуту. Значение MET интерполируется между опорными точками стандартной таблицы, что даёт плавную и точную оценку для любой скорости от 2 до 9 км/ч.
Время в пути вычисляется делением расстояния на скорость. Итоговый расход калорий — произведение MET, веса тела и времени в часах. Результат округляется до целых килокалорий, расстояние — до двух знаков, время — до целых минут.
Где применяется
- Контроль веса. Зная точный расход калорий при ходьбе, вы можете планировать дефицит или профицит калорий на день и корректировать рацион.
- Фитнес-трекинг. Сравнивайте данные с фитнес-браслета с расчётными значениями — это помогает проверить точность гаджета.
- Реабилитация. После травм или операций врачи рекомендуют дозированную ходьбу. Калькулятор поможет оценить нагрузку.
- Туризм и походы. При планировании пеших маршрутов полезно знать, сколько энергии потребуется на переход определённой длины.
- Спортивная ходьба. Спортсмены могут точно рассчитывать энергозатраты на тренировках и корректировать питание.
- Повседневная активность. Оцените, сколько калорий вы сжигаете, просто гуляя с собакой, идя на работу пешком или гуляя в парке.
Важные нюансы
- Индивидуальные различия. Реальный расход калорий зависит от возраста, уровня физической подготовки, состава тела и даже погодных условий. Калькулятор даёт усреднённую оценку.
- Рельеф местности. Подъёмы и спуски увеличивают расход калорий. Формула предполагает ходьбу по ровной поверхности. При ходьбе в гору реальный расход может быть на 20-50% выше.
- Длина шага. Автоматический расчёт длины шага по росту — приближение. Люди одного роста могут иметь разную длину шага. Для точности измерьте свою длину шага самостоятельно.
- Скорость ходьбы. При скорости выше 8 км/ч человек обычно переходит на бег. Калькулятор ограничен ходьбой до 9 км/ч — для бега используйте специализированный калькулятор.
- Округление. Все результаты округляются. Суммарная погрешность может составлять 5-10%, что допустимо для бытовых расчётов.
- Одежда и обувь. Тяжёлая зимняя одежда и обувь увеличивают нагрузку и расход калорий примерно на 5-15%. Калькулятор этого не учитывает.
Частые ошибки
- Путаница шагов и километров. Пользователи часто не переводят шаги в расстояние. Если вы сделали 10000 шагов, это не 10 км, а примерно 6-7.5 км в зависимости от длины шага. Всегда уточняйте, что именно вы вводите.
- Неправильная длина шага. Ввод длины шага «на глаз» без измерения приводит к ошибке в расстоянии и калориях. Измерьте 10 своих шагов рулеткой и разделите на 10 — это будет точная длина шага.
- Завышение скорости. Люди склонны переоценивать свою скорость ходьбы. Реальная средняя скорость человека при обычной прогулке — 4-5 км/ч, а не 7-8 км/ч. Используйте шагомер или GPS для объективной оценки.
- Игнорирование веса. Расход калорий прямо пропорционален массе тела. Человек весом 100 кг сжигает за ту же прогулку в 1.5 раза больше калорий, чем человек весом 65 кг. Обязательно указывайте актуальный вес.
- Сравнение с бегом. Не сравнивайте напрямую калории от ходьбы и бега за одинаковое время. Бег сжигает больше калорий в минуту, но ходьба доступна дольше и безопаснее для суставов.
- Ожидание мгновенного результата. Не ждите, что одна прогулка заметно изменит вес. Стабильный дефицит в 200-300 ккал в день за счёт ходьбы даёт минус 0.5-1 кг в месяц — это здоровый темп.
Ответы на частые вопросы
Сколько калорий 10000 шагов сжигают? В среднем 250-500 ккал в зависимости от веса, скорости и длины шага. Для точного значения воспользуйтесь калькулятором выше, подставив свои параметры.
10000 шагов — сколько километров? При длине шага 70-75 см (среднее значение) 10000 шагов — это 7-7.5 км. При длине шага 60 см — 6 км, при 80 см — 8 км. Всё индивидуально.
Сколько в 1 км шагов? При длине шага 70 см в одном километре примерно 1429 шагов. При длине шага 75 см — около 1333 шагов. Формула проста: 100 000 / длина шага в см.
Какая средняя скорость человека при ходьбе? Скорость средняя человека — 4-6 км/ч. Прогулочный шаг — 3-4 км/ч, деловой — 5-6 км/ч, спортивная ходьба — 7-9 км/ч.
Сколько в день нужно сжигать калорий для похудения? Для здорового похудения достаточно дефицита в 300-500 ккал в день. Это можно обеспечить часовой прогулкой быстрым шагом плюс небольшая коррекция питания.
Помогает ли ходьба похудеть без диеты? Да, но эффект будет медленнее. Часовая прогулка быстрым шагом сжигает 300-400 ккал. За месяц ежедневных прогулок это около 9000-12000 ккал, что эквивалентно 1-1.5 кг жира.
Источники и справочные данные
Расчёт основан на стандарте Compendium of Physical Activities (версия 2011 года) и общепринятых формулах энергозатрат с использованием метаболического эквивалента (MET). Значения MET для разной скорости ходьбы взяты из научных публикаций Ainsworth et al. Длина шага оценивается по антропометрическим данным — коэффициент 0.413-0.415 от роста, подтверждённый биомеханическими исследованиями. Калькулятор предназначен для оценочных бытовых расчётов и не заменяет профессиональные медицинские или спортивные измерения.
Ходьба и расход калорий: полное практическое руководство
Ходьба — самый доступный и безопасный вид физической активности. В отличие от бега, она не перегружает суставы и подходит людям любого возраста и веса. Но многие недооценивают её эффективность. А зря: регулярная ходьба помогает сжигать жир, укреплять сердце и улучшать настроение. Главное — знать свои цифры.
Наш расчет калорий для похудения онлайн калькулятор даёт точную оценку энергозатрат с учётом вашего веса, роста, пола и скорости. Это не абстрактная формула из интернета, а научно обоснованный метод на основе метаболического эквивалента. Один час ходьбы со скоростью 5 км/ч для человека весом 70 кг — это около 280 ккал. Для человека весом 90 кг — уже 360 ккал. Разница существенная.
10000 шагов: сколько километров и сколько калорий?
Популярная норма в 10000 шагов пришла из японского маркетинга 1960-х годов, но прижилась не случайно. Это примерно 7-8 км пешком — достижимая цель для большинства людей. Однако конкретные цифры зависят от вашей длины шага. Сколько в 1 км шагов — один из самых частых вопросов. Ответ: при длине шага 70 см в километре 1429 шагов, при 75 см — 1333 шага.
Что касается калорий, сколько калорий 10000 шагов сжигают — зависит от веса и темпа. При весе 60 кг и медленной ходьбе (3 км/ч) это около 180 ккал. При весе 80 кг и быстрой ходьбе (6 км/ч) — уже 450 ккал и более. Используйте калькулятор выше, чтобы узнать свои цифры.
Средняя скорость человека и её влияние на расход калорий
Средняя скорость человека при обычной ходьбе — 4-5 км/ч. Это комфортный темп, при котором можно идти часами. Скорость человека средняя при целенаправленной прогулке — около 5.5 км/ч. Скорость средняя человека при спортивной ходьбе достигает 7-8 км/ч, но это уже требует тренировки.
Важно понимать: удвоение скорости не удваивает расход калорий, а увеличивает его ещё сильнее за счёт роста MET. Например, MET при 3 км/ч равен 2.3, а при 6 км/ч — уже 5.0. То есть за одинаковое расстояние быстрая ходьба сжигает примерно на 10-20% больше калорий, чем медленная, потому что организм работает интенсивнее.
Расчет калорий для похудения онлайн калькулятор: как использовать
Чтобы похудеть, нужно создать дефицит калорий. Сколько нужно сжигать калорий в день — вопрос индивидуальный. Диетологи рекомендуют дефицит 300-500 ккал в сутки для плавного снижения веса на 0.5-1 кг в неделю. Ходьба может покрыть значительную часть этого дефицита.
Сколько в день нужно сжигать калорий через ходьбу? Часовая прогулка быстрым шагом даёт 300-400 ккал. Добавьте к этому небольшую коррекцию питания (минус 100-200 ккал) — и вы получите устойчивый результат. Сколько нужно в день сжигать калорий для заметного эффекта за месяц? Порядка 9000 ккал суммарно, что соответствует 1-1.5 кг чистого жира. Это достижимо при ежедневной ходьбе по 45-60 минут.
Практические советы для максимального результата
Ходите с утяжелителями на лодыжках или в рюкзаке — это увеличивает расход на 10-25%. Выбирайте пересечённую местность: подъём в горку повышает MET на 30-50% по сравнению с ровной дорогой. Используйте интервальную ходьбу: 3 минуты быстрым шагом, 2 минуты обычным — это разгоняет метаболизм эффективнее монотонного темпа.
Следите за осанкой: прямая спина и активная работа рук увеличивают длину шага и вовлекают больше мышц. Пейте воду до и после прогулки — обезвоживание снижает эффективность жиросжигания. И не забывайте про удобную обувь: неправильная обувь сокращает дистанцию и повышает риск травм.
Заключение
Ходьба — мощный инструмент для здоровья и похудения, если подходить к ней осознанно. Зная свой вес, рост и темп, вы можете точно прогнозировать расход калорий и строить реалистичные планы. Калькулятор на этой странице поможет вам делать это быстро и удобно. Не стремитесь к рекордам сразу — начните с комфортных 5000-7000 шагов в день и постепенно увеличивайте нагрузку. Регулярность важнее интенсивности, а точный расчёт — лучший фундамент для результата.
CihmdW5jdGlvbigpewogICd1c2Ugc3RyaWN0JzsKCiAgdmFyIE1FVF9UQUJMRSA9IFsKICAgIFsyLjAsIDEuOF0sCiAgICBbMi41LCAyLjBdLAogICAgWzMuMCwgMi4zXSwKICAgIFszLjUsIDIuN10sCiAgICBbNC4wLCAzLjBdLAogICAgWzQuNSwgMy4zXSwKICAgIFs1LjAsIDMuOF0sCiAgICBbNS41LCA0LjVdLAogICAgWzYuMCwgNS4wXSwKICAgIFs2LjUsIDUuNV0sCiAgICBbNy4wLCA2LjNdLAogICAgWzcuNSwgNy4wXSwKICAgIFs4LjAsIDguMF0sCiAgICBbOC41LCA5LjBdLAogICAgWzkuMCwgMTAuMF0KICBdOwoKICB2YXIgbWFudWFsU3RlcExlbmd0aCA9IGZhbHNlOwoKICB2YXIgZ2VuZGVyUmFkaW9zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoJ2dlbmRlcicpOwogIHZhciBtb2RlUmFkaW9zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoJ21vZGUnKTsKICB2YXIgd2VpZ2h0SW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnd2VpZ2h0Jyk7CiAgdmFyIGhlaWdodElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlaWdodCcpOwogIHZhciBkaXN0YW5jZUlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rpc3RhbmNlJyk7CiAgdmFyIHN0ZXBzSW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RlcHMnKTsKICB2YXIgc3RlcExlbmd0aElucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0ZXBMZW5ndGgnKTsKICB2YXIgc3BlZWRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzcGVlZCcpOwoKICB2YXIgZGlzdGFuY2VSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGlzdGFuY2VSb3cnKTsKICB2YXIgc3RlcHNSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3RlcHNSb3cnKTsKCiAgdmFyIHdlaWdodEVycm9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3dlaWdodEVycm9yJyk7CiAgdmFyIGhlaWdodEVycm9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlaWdodEVycm9yJyk7CiAgdmFyIGRpc3RhbmNlRXJyb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGlzdGFuY2VFcnJvcicpOwogIHZhciBzdGVwc0Vycm9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0ZXBzRXJyb3InKTsKICB2YXIgc3RlcExlbmd0aEVycm9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N0ZXBMZW5ndGhFcnJvcicpOwogIHZhciBzcGVlZEVycm9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwZWVkRXJyb3InKTsKCiAgdmFyIHJlc3VsdENhbG9yaWVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdENhbG9yaWVzJyk7CiAgdmFyIHJlc3VsdERpc3RhbmNlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdERpc3RhbmNlJyk7CiAgdmFyIHJlc3VsdFN0ZXBzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFN0ZXBzJyk7CiAgdmFyIHJlc3VsdFRpbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0VGltZScpOwoKICB2YXIgY2FsY3VsYXRlQnRuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbGN1bGF0ZUJ0bicpOwogIHZhciByZXNldEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldEJ0bicpOwoKICBmdW5jdGlvbiBnZXRTZWxlY3RlZFJhZGlvKG5hbWUpIHsKICAgIHZhciByYWRpb3MgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShuYW1lKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmFkaW9zLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmIChyYWRpb3NbaV0uY2hlY2tlZCkgcmV0dXJuIHJhZGlvc1tpXS52YWx1ZTsKICAgIH0KICAgIHJldHVybiBudWxsOwogIH0KCiAgZnVuY3Rpb24gZ2V0R2VuZGVyQ29lZmYoKSB7CiAgICB2YXIgZ2VuZGVyID0gZ2V0U2VsZWN0ZWRSYWRpbygnZ2VuZGVyJyk7CiAgICByZXR1cm4gZ2VuZGVyID09PSAnbWFsZScgPyAwLjQxNSA6IDAuNDEzOwogIH0KCiAgZnVuY3Rpb24gYXV0b1N0ZXBMZW5ndGgoKSB7CiAgICB2YXIgaGVpZ2h0ID0gcGFyc2VGbG9hdChoZWlnaHRJbnB1dC52YWx1ZSk7CiAgICBpZiAoaXNOYU4oaGVpZ2h0KSB8fCBoZWlnaHQgPD0gMCkgcmV0dXJuIG51bGw7CiAgICB2YXIgY29lZmYgPSBnZXRHZW5kZXJDb2VmZigpOwogICAgcmV0dXJuIE1hdGgucm91bmQoaGVpZ2h0ICogY29lZmYgKiAxMCkgLyAxMDsKICB9CgogIGZ1bmN0aW9uIGludGVycG9sYXRlTUVUKHNwZWVkKSB7CiAgICBpZiAoc3BlZWQgPD0gTUVUX1RBQkxFWzBdWzBdKSByZXR1cm4gTUVUX1RBQkxFWzBdWzFdOwogICAgaWYgKHNwZWVkID49IE1FVF9UQUJMRVtNRVRfVEFCTEUubGVuZ3RoIC0gMV1bMF0pIHJldHVybiBNRVRfVEFCTEVbTUVUX1RBQkxFLmxlbmd0aCAtIDFdWzFdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBNRVRfVEFCTEUubGVuZ3RoIC0gMTsgaSsrKSB7CiAgICAgIHZhciB2MSA9IE1FVF9UQUJMRVtpXVswXTsKICAgICAgdmFyIG0xID0gTUVUX1RBQkxFW2ldWzFdOwogICAgICB2YXIgdjIgPSBNRVRfVEFCTEVbaSArIDFdWzBdOwogICAgICB2YXIgbTIgPSBNRVRfVEFCTEVbaSArIDFdWzFdOwogICAgICBpZiAoc3BlZWQgPj0gdjEgJiYgc3BlZWQgPD0gdjIpIHsKICAgICAgICB2YXIgdCA9IChzcGVlZCAtIHYxKSAvICh2MiAtIHYxKTsKICAgICAgICByZXR1cm4gbTEgKyB0ICogKG0yIC0gbTEpOwogICAgICB9CiAgICB9CiAgICByZXR1cm4gTUVUX1RBQkxFW01FVF9UQUJMRS5sZW5ndGggLSAxXVsxXTsKICB9CgogIGZ1bmN0aW9uIGhpZGVBbGxFcnJvcnMoKSB7CiAgICB2YXIgZXJyb3JzID0gW3dlaWdodEVycm9yLCBoZWlnaHRFcnJvciwgZGlzdGFuY2VFcnJvciwgc3RlcHNFcnJvciwgc3RlcExlbmd0aEVycm9yLCBzcGVlZEVycm9yXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXJyb3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmIChlcnJvcnNbaV0pIGVycm9yc1tpXS5jbGFzc0xpc3QuYWRkKCdubi1nZW4tY2FsLWhpZGRlbicpOwogICAgfQogIH0KCiAgZnVuY3Rpb24gc2hvd0Vycm9yKGVsLCBtc2cpIHsKICAgIGlmIChlbCkgewogICAgICBlbC50ZXh0Q29udGVudCA9IG1zZzsKICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZSgnbm4tZ2VuLWNhbC1oaWRkZW4nKTsKICAgIH0KICB9CgogIGZ1bmN0aW9uIHVwZGF0ZU1vZGVVSSgpIHsKICAgIHZhciBtb2RlID0gZ2V0U2VsZWN0ZWRSYWRpbygnbW9kZScpOwogICAgaWYgKG1vZGUgPT09ICdkaXN0YW5jZScpIHsKICAgICAgZGlzdGFuY2VSb3cuY2xhc3NMaXN0LnJlbW92ZSgnbm4tZ2VuLWNhbC1oaWRkZW4nKTsKICAgICAgc3RlcHNSb3cuY2xhc3NMaXN0LmFkZCgnbm4tZ2VuLWNhbC1oaWRkZW4nKTsKICAgIH0gZWxzZSB7CiAgICAgIGRpc3RhbmNlUm93LmNsYXNzTGlzdC5hZGQoJ25uLWdlbi1jYWwtaGlkZGVuJyk7CiAgICAgIHN0ZXBzUm93LmNsYXNzTGlzdC5yZW1vdmUoJ25uLWdlbi1jYWwtaGlkZGVuJyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiB1cGRhdGVTdGVwTGVuZ3RoRnJvbUhlaWdodCgpIHsKICAgIGlmIChtYW51YWxTdGVwTGVuZ3RoKSByZXR1cm47CiAgICB2YXIgYXV0b1ZhbCA9IGF1dG9TdGVwTGVuZ3RoKCk7CiAgICBpZiAoYXV0b1ZhbCAhPT0gbnVsbCkgewogICAgICBzdGVwTGVuZ3RoSW5wdXQudmFsdWUgPSBhdXRvVmFsOwogICAgfQogIH0KCiAgZnVuY3Rpb24gdmFsaWRhdGVBbmRDYWxjdWxhdGUoKSB7CiAgICBoaWRlQWxsRXJyb3JzKCk7CiAgICB2YXIgaGFzRXJyb3IgPSBmYWxzZTsKCiAgICB2YXIgd2VpZ2h0ID0gcGFyc2VGbG9hdCh3ZWlnaHRJbnB1dC52YWx1ZSk7CiAgICBpZiAoaXNOYU4od2VpZ2h0KSB8fCB3ZWlnaHQgPCAyMCB8fCB3ZWlnaHQgPiAzMDApIHsKICAgICAgc2hvd0Vycm9yKHdlaWdodEVycm9yLCAn0JLQstC10LTQuNGC0LUg0LLQtdGBINC+0YIgMjAg0LTQviAzMDAg0LrQsycpOwogICAgICBoYXNFcnJvciA9IHRydWU7CiAgICB9CgogICAgdmFyIGhlaWdodCA9IHBhcnNlRmxvYXQoaGVpZ2h0SW5wdXQudmFsdWUpOwogICAgaWYgKGlzTmFOKGhlaWdodCkgfHwgaGVpZ2h0IDwgMTAwIHx8IGhlaWdodCA+IDI1MCkgewogICAgICBzaG93RXJyb3IoaGVpZ2h0RXJyb3IsICfQktCy0LXQtNC40YLQtSDRgNC+0YHRgiDQvtGCIDEwMCDQtNC+IDI1MCDRgdC8Jyk7CiAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgIH0KCiAgICB2YXIgbW9kZSA9IGdldFNlbGVjdGVkUmFkaW8oJ21vZGUnKTsKICAgIHZhciBkaXN0YW5jZSA9IG51bGw7CiAgICB2YXIgc3RlcHMgPSBudWxsOwoKICAgIGlmIChtb2RlID09PSAnZGlzdGFuY2UnKSB7CiAgICAgIGRpc3RhbmNlID0gcGFyc2VGbG9hdChkaXN0YW5jZUlucHV0LnZhbHVlKTsKICAgICAgaWYgKGlzTmFOKGRpc3RhbmNlKSB8fCBkaXN0YW5jZSA8PSAwIHx8IGRpc3RhbmNlID4gMTAwKSB7CiAgICAgICAgc2hvd0Vycm9yKGRpc3RhbmNlRXJyb3IsICfQktCy0LXQtNC40YLQtSDRgNCw0YHRgdGC0L7Rj9C90LjQtSDQvtGCIDAuMSDQtNC+IDEwMCDQutC8Jyk7CiAgICAgICAgaGFzRXJyb3IgPSB0cnVlOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBzdGVwcyA9IHBhcnNlRmxvYXQoc3RlcHNJbnB1dC52YWx1ZSk7CiAgICAgIGlmIChpc05hTihzdGVwcykgfHwgc3RlcHMgPCAxMDAgfHwgc3RlcHMgPiAyMDAwMDAgfHwgTWF0aC5mbG9vcihzdGVwcykgIT09IHN0ZXBzKSB7CiAgICAgICAgc2hvd0Vycm9yKHN0ZXBzRXJyb3IsICfQktCy0LXQtNC40YLQtSDRhtC10LvQvtC1INGH0LjRgdC70L4g0YjQsNCz0L7QsiDQvtGCIDEwMCDQtNC+IDIwMCAwMDAnKTsKICAgICAgICBoYXNFcnJvciA9IHRydWU7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgc3RlcExlbmd0aCA9IHBhcnNlRmxvYXQoc3RlcExlbmd0aElucHV0LnZhbHVlKTsKICAgIGlmIChpc05hTihzdGVwTGVuZ3RoKSB8fCBzdGVwTGVuZ3RoIDwgMzAgfHwgc3RlcExlbmd0aCA+IDE1MCkgewogICAgICBzaG93RXJyb3Ioc3RlcExlbmd0aEVycm9yLCAn0JLQstC10LTQuNGC0LUg0LTQu9C40L3RgyDRiNCw0LPQsCDQvtGCIDMwINC00L4gMTUwINGB0LwnKTsKICAgICAgaGFzRXJyb3IgPSB0cnVlOwogICAgfQoKICAgIHZhciBzcGVlZCA9IHBhcnNlRmxvYXQoc3BlZWRJbnB1dC52YWx1ZSk7CiAgICBpZiAoaXNOYU4oc3BlZWQpIHx8IHNwZWVkIDwgMiB8fCBzcGVlZCA+IDEwKSB7CiAgICAgIHNob3dFcnJvcihzcGVlZEVycm9yLCAn0JLQstC10LTQuNGC0LUg0YHQutC+0YDQvtGB0YLRjCDQvtGCIDIg0LTQviAxMCDQutC8L9GHJyk7CiAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgIH0KCiAgICBpZiAoaGFzRXJyb3IpIHJldHVybjsKCiAgICBpZiAobW9kZSA9PT0gJ3N0ZXBzJykgewogICAgICBkaXN0YW5jZSA9IHN0ZXBzICogc3RlcExlbmd0aCAvIDEwMDAwMDsKICAgIH0gZWxzZSB7CiAgICAgIHN0ZXBzID0gTWF0aC5yb3VuZChkaXN0YW5jZSAqIDEwMDAwMCAvIHN0ZXBMZW5ndGgpOwogICAgfQoKICAgIHZhciB0aW1lSG91cnMgPSBkaXN0YW5jZSAvIHNwZWVkOwogICAgdmFyIHRpbWVNaW51dGVzID0gdGltZUhvdXJzICogNjA7CiAgICB2YXIgbWV0ID0gaW50ZXJwb2xhdGVNRVQoc3BlZWQpOwogICAgdmFyIGNhbG9yaWVzID0gbWV0ICogd2VpZ2h0ICogdGltZUhvdXJzOwoKICAgIGlmIChpc05hTihjYWxvcmllcykgfHwgIWlzRmluaXRlKGNhbG9yaWVzKSkgY2Fsb3JpZXMgPSAwOwogICAgaWYgKGlzTmFOKGRpc3RhbmNlKSB8fCAhaXNGaW5pdGUoZGlzdGFuY2UpKSBkaXN0YW5jZSA9IDA7CiAgICBpZiAoaXNOYU4oc3RlcHMpIHx8ICFpc0Zpbml0ZShzdGVwcykpIHN0ZXBzID0gMDsKICAgIGlmIChpc05hTih0aW1lTWludXRlcykgfHwgIWlzRmluaXRlKHRpbWVNaW51dGVzKSkgdGltZU1pbnV0ZXMgPSAwOwoKICAgIHJlc3VsdENhbG9yaWVzLnRleHRDb250ZW50ID0gTWF0aC5yb3VuZChjYWxvcmllcyk7CiAgICByZXN1bHREaXN0YW5jZS50ZXh0Q29udGVudCA9IE1hdGgucm91bmQoZGlzdGFuY2UgKiAxMDApIC8gMTAwOwogICAgcmVzdWx0U3RlcHMudGV4dENvbnRlbnQgPSBzdGVwczsKICAgIHJlc3VsdFRpbWUudGV4dENvbnRlbnQgPSBNYXRoLnJvdW5kKHRpbWVNaW51dGVzKTsKICB9CgogIGZ1bmN0aW9uIHJlc2V0QWxsKCkgewogICAgaGlkZUFsbEVycm9ycygpOwogICAgdmFyIG1hbGVSYWRpbyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9ImdlbmRlciJdW3ZhbHVlPSJtYWxlIl0nKTsKICAgIGlmIChtYWxlUmFkaW8pIG1hbGVSYWRpby5jaGVja2VkID0gdHJ1ZTsKICAgIHZhciBkaXN0YW5jZVJhZGlvID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0ibW9kZSJdW3ZhbHVlPSJkaXN0YW5jZSJdJyk7CiAgICBpZiAoZGlzdGFuY2VSYWRpbykgZGlzdGFuY2VSYWRpby5jaGVja2VkID0gdHJ1ZTsKCiAgICB3ZWlnaHRJbnB1dC52YWx1ZSA9ICc3MCc7CiAgICBoZWlnaHRJbnB1dC52YWx1ZSA9ICcxNzAnOwogICAgZGlzdGFuY2VJbnB1dC52YWx1ZSA9ICc1JzsKICAgIHN0ZXBzSW5wdXQudmFsdWUgPSAnMTAwMDAnOwogICAgc3BlZWRJbnB1dC52YWx1ZSA9ICc1JzsKICAgIG1hbnVhbFN0ZXBMZW5ndGggPSBmYWxzZTsKICAgIHZhciBhdXRvVmFsID0gYXV0b1N0ZXBMZW5ndGgoKTsKICAgIHN0ZXBMZW5ndGhJbnB1dC52YWx1ZSA9IGF1dG9WYWwgIT09IG51bGwgPyBhdXRvVmFsIDogJzcxJzsKCiAgICByZXN1bHRDYWxvcmllcy50ZXh0Q29udGVudCA9ICcwJzsKICAgIHJlc3VsdERpc3RhbmNlLnRleHRDb250ZW50ID0gJzAnOwogICAgcmVzdWx0U3RlcHMudGV4dENvbnRlbnQgPSAnMCc7CiAgICByZXN1bHRUaW1lLnRleHRDb250ZW50ID0gJzAnOwoKICAgIHVwZGF0ZU1vZGVVSSgpOwogIH0KCiAgZnVuY3Rpb24gaW5pdCgpIHsKICAgIHVwZGF0ZU1vZGVVSSgpOwogICAgdmFyIGF1dG9WYWwgPSBhdXRvU3RlcExlbmd0aCgpOwogICAgaWYgKGF1dG9WYWwgIT09IG51bGwgJiYgIW1hbnVhbFN0ZXBMZW5ndGgpIHsKICAgICAgc3RlcExlbmd0aElucHV0LnZhbHVlID0gYXV0b1ZhbDsKICAgIH0KCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdlbmRlclJhZGlvcy5sZW5ndGg7IGkrKykgewogICAgICBnZW5kZXJSYWRpb3NbaV0uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgdXBkYXRlU3RlcExlbmd0aEZyb21IZWlnaHQoKTsKICAgICAgfSk7CiAgICB9CgogICAgZm9yICh2YXIgaiA9IDA7IGogPCBtb2RlUmFkaW9zLmxlbmd0aDsgaisrKSB7CiAgICAgIG1vZGVSYWRpb3Nbal0uYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgdXBkYXRlTW9kZVVJKCk7CiAgICAgICAgaGlkZUFsbEVycm9ycygpOwogICAgICB9KTsKICAgIH0KCiAgICBoZWlnaHRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICB1cGRhdGVTdGVwTGVuZ3RoRnJvbUhlaWdodCgpOwogICAgfSk7CgogICAgc3RlcExlbmd0aElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgIG1hbnVhbFN0ZXBMZW5ndGggPSB0cnVlOwogICAgfSk7CgogICAgc3RlcExlbmd0aElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICB2YXIgdmFsID0gcGFyc2VGbG9hdChzdGVwTGVuZ3RoSW5wdXQudmFsdWUpOwogICAgICBpZiAoaXNOYU4odmFsKSB8fCB2YWwgPD0gMCkgewogICAgICAgIG1hbnVhbFN0ZXBMZW5ndGggPSBmYWxzZTsKICAgICAgICB1cGRhdGVTdGVwTGVuZ3RoRnJvbUhlaWdodCgpOwogICAgICB9CiAgICB9KTsKCiAgICBjYWxjdWxhdGVCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihlKSB7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgICAgdmFsaWRhdGVBbmRDYWxjdWxhdGUoKTsKICAgIH0pOwoKICAgIHJlc2V0QnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIHJlc2V0QWxsKCk7CiAgICB9KTsKCiAgICB3ZWlnaHRJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICBpZiAod2VpZ2h0RXJyb3IpIHdlaWdodEVycm9yLmNsYXNzTGlzdC5hZGQoJ25uLWdlbi1jYWwtaGlkZGVuJyk7CiAgICB9KTsKICAgIGhlaWdodElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgIGlmIChoZWlnaHRFcnJvcikgaGVpZ2h0RXJyb3IuY2xhc3NMaXN0LmFkZCgnbm4tZ2VuLWNhbC1oaWRkZW4nKTsKICAgIH0pOwogICAgZGlzdGFuY2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICBpZiAoZGlzdGFuY2VFcnJvcikgZGlzdGFuY2VFcnJvci5jbGFzc0xpc3QuYWRkKCdubi1nZW4tY2FsLWhpZGRlbicpOwogICAgfSk7CiAgICBzdGVwc0lucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgIGlmIChzdGVwc0Vycm9yKSBzdGVwc0Vycm9yLmNsYXNzTGlzdC5hZGQoJ25uLWdlbi1jYWwtaGlkZGVuJyk7CiAgICB9KTsKICAgIHNwZWVkSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgaWYgKHNwZWVkRXJyb3IpIHNwZWVkRXJyb3IuY2xhc3NMaXN0LmFkZCgnbm4tZ2VuLWNhbC1oaWRkZW4nKTsKICAgIH0pOwogICAgc3RlcExlbmd0aElucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgIGlmIChzdGVwTGVuZ3RoRXJyb3IpIHN0ZXBMZW5ndGhFcnJvci5jbGFzc0xpc3QuYWRkKCdubi1nZW4tY2FsLWhpZGRlbicpOwogICAgfSk7CiAgfQoKICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnKSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5pdCk7CiAgfSBlbHNlIHsKICAgIGluaXQoKTsKICB9Cn0pKCk7Cg==