Калькулятор теплового эффекта реакции
Расчёт изменения энтальпии (ΔH°) химической реакции по стандартным энтальпиям образования участников.
—
Тепловой эффект ΔH°
кДж/моль
Как пользоваться
1
Введите стехиометрические коэффициенты и стандартные энтальпии образования (ΔH°f) для каждого реагента и продукта. Энтальпии вводятся в кДж/моль. Для простых веществ ΔH°f = 0.
2
При необходимости добавьте дополнительные реагенты или продукты кнопками «+ Добавить». Минимум один реагент и один продукт обязательны.
3
Нажмите «Рассчитать». Результат — тепловой эффект реакции ΔH° (отрицательное значение — экзотермическая реакция, положительное — эндотермическая).
4
Кнопка «Сбросить» очищает все поля до начального состояния (2 реагента и 2 продукта с пустыми значениями).
Примеры использования
Сгорание метана
Реакция: CH4 + 2 O2 → CO2 + 2 H2O (ж).
Реагенты: CH4 (коэфф. 1, ΔH°f = –74.8), O2 (коэфф. 2, ΔH°f = 0).
Продукты: CO2 (коэфф. 1, ΔH°f = –393.5), H2O (коэфф. 2, ΔH°f = –285.8).
Результат: ΔH° = –890.3 кДж/моль (экзотермическая).
Синтез аммиака
Реакция: N2 + 3 H2 → 2 NH3.
Реагенты: N2 (1, 0), H2 (3, 0).
Продукты: NH3 (2, –45.9).
Результат: ΔH° = –91.8 кДж/моль (экзотермическая).
Разложение карбоната кальция
Реакция: CaCO3 → CaO + CO2.
Реагенты: CaCO3 (1, –1206.9).
Продукты: CaO (1, –635.1), CO2 (1, –393.5).
Результат: ΔH° = +178.3 кДж/моль (эндотермическая).
Важные нюансы
- Все значения энтальпий образования должны быть приведены к стандартным условиям (298.15 K, 1 атм).
- Для простых веществ в стандартном состоянии ΔH°f = 0 кДж/моль.
- Агрегатное состояние вещества влияет на ΔH°f; убедитесь, что используете значения для нужной фазы (г, ж, тв, р-р).
- Тепловой эффект зависит от температуры (закон Кирхгофа). Данный калькулятор даёт оценку при 298 K.
- Техника безопасности: Экзотермические реакции могут протекать бурно с выделением тепла и газов. Перед проведением эксперимента оцените риски и используйте средства защиты.
Источники данных
- IUPAC Gold Book — стандартные термохимические определения.
- NIST Chemistry WebBook — авторитетная база термодинамических данных.
- PubChem — открытая база химических соединений с энтальпиями образования.
- CRC Handbook of Chemistry and Physics — таблицы стандартных термодинамических величин.
- Расчёт основан на законе Гесса и стандартных справочных значениях из вузовских курсов физической химии.
Калькулятор теплового эффекта реакции позволяет быстро оценить изменение энтальпии химического превращения, используя закон Гесса и стандартные энтальпии образования веществ. Инструмент полезен студентам, преподавателям и специалистам в области химии для проверки термохимических расчётов. Тепловой эффект рассчитывается как разность сумм энтальпий образования продуктов и реагентов с учётом стехиометрии. Полученное значение помогает классифицировать реакцию как экзо- или эндотермическую.
CihmdW5jdGlvbigpIHsKICAvLyDQmNC90LjRhtC40LDQu9C40LfQsNGG0LjRjyDQvdCw0YfQsNC70YzQvdGL0YUg0LrQvtC80L/QvtC90LXQvdGC0L7QsgogIGNvbnN0IERFRkFVTFRfUkVBQ1RBTlRTID0gMjsKICBjb25zdCBERUZBVUxUX1BST0RVQ1RTID0gMjsKICBsZXQgcmVhY3RhbnRDb3VudGVyID0gREVGQVVMVF9SRUFDVEFOVFM7CiAgbGV0IHByb2R1Y3RDb3VudGVyID0gREVGQVVMVF9QUk9EVUNUUzsKCiAgZnVuY3Rpb24gY3JlYXRlQ29tcG9uZW50Um93KHR5cGUsIGluZGV4KSB7CiAgICBjb25zdCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIHJvdy5jbGFzc05hbWUgPSAnbm4tZ2VuLWNhbC1jb21wb25lbnQtcm93JzsKICAgIHJvdy5kYXRhc2V0LnR5cGUgPSB0eXBlOwogICAgcm93LmRhdGFzZXQuaW5kZXggPSBpbmRleDsKCiAgICBjb25zdCBsYWJlbENvZWZmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKTsKICAgIGxhYmVsQ29lZmYudGV4dENvbnRlbnQgPSAn0JrQvtGN0YTRhC4nOwogICAgbGFiZWxDb2VmZi5zZXRBdHRyaWJ1dGUoJ2ZvcicsIGAke3R5cGV9LWNvZWZmLSR7aW5kZXh9YCk7CiAgICBjb25zdCBpbnB1dENvZWZmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKICAgIGlucHV0Q29lZmYudHlwZSA9ICdudW1iZXInOwogICAgaW5wdXRDb2VmZi5zdGVwID0gJ2FueSc7CiAgICBpbnB1dENvZWZmLm1pbiA9ICcwJzsKICAgIGlucHV0Q29lZmYuY2xhc3NOYW1lID0gJ25uLWdlbi1jYWwtZmllbGQnOwogICAgaW5wdXRDb2VmZi5pZCA9IGAke3R5cGV9LWNvZWZmLSR7aW5kZXh9YDsKICAgIGlucHV0Q29lZmYucGxhY2Vob2xkZXIgPSAnMSc7CgogICAgY29uc3QgbGFiZWxEZWx0YUggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpOwogICAgbGFiZWxEZWx0YUguaW5uZXJIVE1MID0gJyZEZWx0YTtIwrA8c3ViPmY8L3N1Yj4nOwogICAgbGFiZWxEZWx0YUguc2V0QXR0cmlidXRlKCdmb3InLCBgJHt0eXBlfS1kaC0ke2luZGV4fWApOwogICAgY29uc3QgaW5wdXREZWx0YUggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOwogICAgaW5wdXREZWx0YUgudHlwZSA9ICdudW1iZXInOwogICAgaW5wdXREZWx0YUguc3RlcCA9ICdhbnknOwogICAgaW5wdXREZWx0YUguY2xhc3NOYW1lID0gJ25uLWdlbi1jYWwtZmllbGQnOwogICAgaW5wdXREZWx0YUguaWQgPSBgJHt0eXBlfS1kaC0ke2luZGV4fWA7CiAgICBpbnB1dERlbHRhSC5wbGFjZWhvbGRlciA9ICcwLjAnOwoKICAgIGNvbnN0IHJlbW92ZUJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogICAgcmVtb3ZlQnRuLnR5cGUgPSAnYnV0dG9uJzsKICAgIHJlbW92ZUJ0bi5jbGFzc05hbWUgPSAnbm4tZ2VuLWNhbC1yZW1vdmUtYnRuJzsKICAgIHJlbW92ZUJ0bi5pbm5lckhUTUwgPSAnJnRpbWVzOyc7CiAgICByZW1vdmVCdG4uc2V0QXR0cmlidXRlKCdhcmlhLWxhYmVsJywgJ9Cj0LTQsNC70LjRgtGMJyk7CiAgICByZW1vdmVCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgcmVtb3ZlQ29tcG9uZW50Um93KHJvdywgdHlwZSk7CiAgICB9KTsKCiAgICByb3cuYXBwZW5kQ2hpbGQobGFiZWxDb2VmZik7CiAgICByb3cuYXBwZW5kQ2hpbGQoaW5wdXRDb2VmZik7CiAgICByb3cuYXBwZW5kQ2hpbGQobGFiZWxEZWx0YUgpOwogICAgcm93LmFwcGVuZENoaWxkKGlucHV0RGVsdGFIKTsKICAgIHJvdy5hcHBlbmRDaGlsZChyZW1vdmVCdG4pOwogICAgcmV0dXJuIHJvdzsKICB9CgogIGZ1bmN0aW9uIHJlbW92ZUNvbXBvbmVudFJvdyhyb3csIHR5cGUpIHsKICAgIGNvbnN0IGNvbnRhaW5lciA9IHR5cGUgPT09ICdyZWFjdGFudCcgPyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVhY3RhbnRzLWNvbnRhaW5lcicpIDogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Byb2R1Y3RzLWNvbnRhaW5lcicpOwogICAgY29uc3Qgcm93cyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcubm4tZ2VuLWNhbC1jb21wb25lbnQtcm93Jyk7CiAgICBpZiAocm93cy5sZW5ndGggPD0gMSkgewogICAgICAvLyDQndC1INGD0LTQsNC70Y/QtdC8INC/0L7RgdC70LXQtNC90LjQuSDRgNGP0LQKICAgICAgc2hvd0Vycm9yKCfQlNC+0LvQttC10L0g0L7RgdGC0LDRgtGM0YHRjyDRhdC+0YLRjyDQsdGLINC+0LTQuNC9ICcgKyAodHlwZSA9PT0gJ3JlYWN0YW50JyA/ICfRgNC10LDQs9C10L3RgicgOiAn0L/RgNC+0LTRg9C60YInKSArICcuJyk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIHJvdy5yZW1vdmUoKTsKICAgIC8vINCf0LXRgNC10LjQvdC00LXQutGB0LDRhtC40Y8g0L3QtSDRgtGA0LXQsdGD0LXRgtGB0Y8sINGC0LDQuiDQutCw0Log0YHQsdC+0YAg0LTQsNC90L3Ri9GFINC40LTRkdGCINC/0L4g0YTQsNC60YLRgyDQvdCw0LvQuNGH0LjRjwogIH0KCiAgZnVuY3Rpb24gcmVuZGVySW5pdGlhbENvbXBvbmVudHMoKSB7CiAgICBjb25zdCByZWFjdGFudHNDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVhY3RhbnRzLWNvbnRhaW5lcicpOwogICAgY29uc3QgcHJvZHVjdHNDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncHJvZHVjdHMtY29udGFpbmVyJyk7CiAgICByZWFjdGFudHNDb250YWluZXIuaW5uZXJIVE1MID0gJyc7CiAgICBwcm9kdWN0c0NvbnRhaW5lci5pbm5lckhUTUwgPSAnJzsKICAgIGZvciAobGV0IGkgPSAwOyBpIDwgREVGQVVMVF9SRUFDVEFOVFM7IGkrKykgewogICAgICByZWFjdGFudHNDb250YWluZXIuYXBwZW5kQ2hpbGQoY3JlYXRlQ29tcG9uZW50Um93KCdyZWFjdGFudCcsIGkpKTsKICAgIH0KICAgIGZvciAobGV0IGkgPSAwOyBpIDwgREVGQVVMVF9QUk9EVUNUUzsgaSsrKSB7CiAgICAgIHByb2R1Y3RzQ29udGFpbmVyLmFwcGVuZENoaWxkKGNyZWF0ZUNvbXBvbmVudFJvdygncHJvZHVjdCcsIGkpKTsKICAgIH0KICAgIHJlYWN0YW50Q291bnRlciA9IERFRkFVTFRfUkVBQ1RBTlRTOwogICAgcHJvZHVjdENvdW50ZXIgPSBERUZBVUxUX1BST0RVQ1RTOwogIH0KCiAgZnVuY3Rpb24gc2hvd0Vycm9yKG1lc3NhZ2UpIHsKICAgIGNvbnN0IGVycm9yRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybS1lcnJvcicpOwogICAgZXJyb3JFbC50ZXh0Q29udGVudCA9IG1lc3NhZ2U7CiAgICBlcnJvckVsLmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKTsKICAgIGlmIChtZXNzYWdlKSB7CiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKGVycm9yRWwudGV4dENvbnRlbnQgPT09IG1lc3NhZ2UpIHsKICAgICAgICAgIGVycm9yRWwuY2xhc3NMaXN0LnJlbW92ZSgndmlzaWJsZScpOwogICAgICAgICAgZXJyb3JFbC50ZXh0Q29udGVudCA9ICcnOwogICAgICAgIH0KICAgICAgfSwgNTAwMCk7CiAgICB9IGVsc2UgewogICAgICBlcnJvckVsLmNsYXNzTGlzdC5yZW1vdmUoJ3Zpc2libGUnKTsKICAgICAgZXJyb3JFbC50ZXh0Q29udGVudCA9ICcnOwogICAgfQogIH0KCiAgZnVuY3Rpb24gY2xlYXJFcnJvcigpIHsKICAgIGNvbnN0IGVycm9yRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9ybS1lcnJvcicpOwogICAgZXJyb3JFbC5jbGFzc0xpc3QucmVtb3ZlKCd2aXNpYmxlJyk7CiAgICBlcnJvckVsLnRleHRDb250ZW50ID0gJyc7CiAgfQoKICBmdW5jdGlvbiBnZXRDb21wb25lbnREYXRhKHR5cGUpIHsKICAgIGNvbnN0IGNvbnRhaW5lcklkID0gdHlwZSA9PT0gJ3JlYWN0YW50JyA/ICdyZWFjdGFudHMtY29udGFpbmVyJyA6ICdwcm9kdWN0cy1jb250YWluZXInOwogICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY29udGFpbmVySWQpOwogICAgY29uc3Qgcm93cyA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yQWxsKCcubm4tZ2VuLWNhbC1jb21wb25lbnQtcm93Jyk7CiAgICBjb25zdCBkYXRhID0gW107CiAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7CiAgICAgIGNvbnN0IGNvZWZmSW5wdXQgPSByb3cucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT0ibnVtYmVyIl06Zmlyc3Qtb2YtdHlwZScpOwogICAgICBjb25zdCBkaElucHV0ID0gcm93LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3R5cGU9Im51bWJlciJdOmxhc3Qtb2YtdHlwZScpOwogICAgICBjb25zdCBjb2VmZlZhbHVlID0gY29lZmZJbnB1dCA/IGNvZWZmSW5wdXQudmFsdWUudHJpbSgpIDogJyc7CiAgICAgIGNvbnN0IGRoVmFsdWUgPSBkaElucHV0ID8gZGhJbnB1dC52YWx1ZS50cmltKCkgOiAnJzsKICAgICAgaWYgKGNvZWZmVmFsdWUgPT09ICcnIHx8IGRoVmFsdWUgPT09ICcnKSB7CiAgICAgICAgcmV0dXJuIHsgZXJyb3I6IHRydWUsIG1lc3NhZ2U6ICfQktGB0LUg0L/QvtC70Y8g0LrQvtGN0YTRhNC40YbQuNC10L3RgtC+0LIg0Lgg0Y3QvdGC0LDQu9GM0L/QuNC5INC00L7Qu9C20L3RiyDQsdGL0YLRjCDQt9Cw0L/QvtC70L3QtdC90YsuJyB9OwogICAgICB9CiAgICAgIGNvbnN0IGNvZWZmTnVtID0gcGFyc2VGbG9hdChjb2VmZlZhbHVlKTsKICAgICAgY29uc3QgZGhOdW0gPSBwYXJzZUZsb2F0KGRoVmFsdWUpOwogICAgICBpZiAoaXNOYU4oY29lZmZOdW0pIHx8IGlzTmFOKGRoTnVtKSkgewogICAgICAgIHJldHVybiB7IGVycm9yOiB0cnVlLCBtZXNzYWdlOiAn0JrQvtGN0YTRhNC40YbQuNC10L3RgtGLINC4INGN0L3RgtCw0LvRjNC/0LjQuCDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0YfQuNGB0LvQsNC80LguJyB9OwogICAgICB9CiAgICAgIGlmIChjb2VmZk51bSA8IDApIHsKICAgICAgICByZXR1cm4geyBlcnJvcjogdHJ1ZSwgbWVzc2FnZTogJ9Ch0YLQtdGF0LjQvtC80LXRgtGA0LjRh9C10YHQutC40LUg0LrQvtGN0YTRhNC40YbQuNC10L3RgtGLINC90LUg0LzQvtCz0YPRgiDQsdGL0YLRjCDQvtGC0YDQuNGG0LDRgtC10LvRjNC90YvQvNC4LicgfTsKICAgICAgfQogICAgICBkYXRhLnB1c2goeyBjb2VmZjogY29lZmZOdW0sIGRlbHRhSDogZGhOdW0gfSk7CiAgICB9CiAgICByZXR1cm4geyBlcnJvcjogZmFsc2UsIGRhdGE6IGRhdGEgfTsKICB9CgogIGZ1bmN0aW9uIGNhbGN1bGF0ZSgpIHsKICAgIGNsZWFyRXJyb3IoKTsKICAgIGNvbnN0IHJlYWN0YW50c1Jlc3VsdCA9IGdldENvbXBvbmVudERhdGEoJ3JlYWN0YW50Jyk7CiAgICBpZiAocmVhY3RhbnRzUmVzdWx0LmVycm9yKSB7CiAgICAgIHNob3dFcnJvcihyZWFjdGFudHNSZXN1bHQubWVzc2FnZSk7CiAgICAgIHJldHVybjsKICAgIH0KICAgIGNvbnN0IHByb2R1Y3RzUmVzdWx0ID0gZ2V0Q29tcG9uZW50RGF0YSgncHJvZHVjdCcpOwogICAgaWYgKHByb2R1Y3RzUmVzdWx0LmVycm9yKSB7CiAgICAgIHNob3dFcnJvcihwcm9kdWN0c1Jlc3VsdC5tZXNzYWdlKTsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIGNvbnN0IHJlYWN0YW50cyA9IHJlYWN0YW50c1Jlc3VsdC5kYXRhOwogICAgY29uc3QgcHJvZHVjdHMgPSBwcm9kdWN0c1Jlc3VsdC5kYXRhOwoKICAgIGxldCBzdW1SZWFjdGFudHMgPSAwOwogICAgZm9yIChjb25zdCByIG9mIHJlYWN0YW50cykgewogICAgICBzdW1SZWFjdGFudHMgKz0gci5jb2VmZiAqIHIuZGVsdGFIOwogICAgfQogICAgbGV0IHN1bVByb2R1Y3RzID0gMDsKICAgIGZvciAoY29uc3QgcCBvZiBwcm9kdWN0cykgewogICAgICBzdW1Qcm9kdWN0cyArPSBwLmNvZWZmICogcC5kZWx0YUg7CiAgICB9CgogICAgY29uc3QgZGVsdGFIID0gc3VtUHJvZHVjdHMgLSBzdW1SZWFjdGFudHM7CgogICAgY29uc3QgcmVzdWx0VmFsdWVFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtZGVsdGEtaCcpOwogICAgY29uc3QgcmVzdWx0VHlwZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC10eXBlJyk7CiAgICBjb25zdCByZXN1bHREZXRhaWxzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LWRldGFpbHMnKTsKCiAgICBpZiAoaXNOYU4oZGVsdGFIKSB8fCAhaXNGaW5pdGUoZGVsdGFIKSkgewogICAgICByZXN1bHRWYWx1ZUVsLnRleHRDb250ZW50ID0gJ+KAlCc7CiAgICAgIHJlc3VsdFR5cGVFbC50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICByZXN1bHREZXRhaWxzRWwudGV4dENvbnRlbnQgPSAn0J7RiNC40LHQutCwINCy0YvRh9C40YHQu9C10L3QuNGPLic7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICBjb25zdCByb3VuZGVkID0gZGVsdGFILnRvRml4ZWQoMik7CiAgICByZXN1bHRWYWx1ZUVsLnRleHRDb250ZW50ID0gKGRlbHRhSCA+PSAwID8gJysnIDogJycpICsgcm91bmRlZDsKICAgIGlmIChkZWx0YUggPCAwKSB7CiAgICAgIHJlc3VsdFR5cGVFbC50ZXh0Q29udGVudCA9ICfQrdC60LfQvtGC0LXRgNC80LjRh9C10YHQutCw0Y8nOwogICAgICByZXN1bHREZXRhaWxzRWwudGV4dENvbnRlbnQgPSAn0KDQtdCw0LrRhtC40Y8g0LjQtNGR0YIg0YEg0LLRi9C00LXQu9C10L3QuNC10Lwg0YLQtdC/0LvQvtGC0YsuJzsKICAgIH0gZWxzZSBpZiAoZGVsdGFIID4gMCkgewogICAgICByZXN1bHRUeXBlRWwudGV4dENvbnRlbnQgPSAn0K3QvdC00L7RgtC10YDQvNC40YfQtdGB0LrQsNGPJzsKICAgICAgcmVzdWx0RGV0YWlsc0VsLnRleHRDb250ZW50ID0gJ9Cg0LXQsNC60YbQuNGPINC40LTRkdGCINGBINC/0L7Qs9C70L7RidC10L3QuNC10Lwg0YLQtdC/0LvQvtGC0YsuJzsKICAgIH0gZWxzZSB7CiAgICAgIHJlc3VsdFR5cGVFbC50ZXh0Q29udGVudCA9ICfQkNGC0LXRgNC80LjRh9C10YHQutCw0Y8nOwogICAgICByZXN1bHREZXRhaWxzRWwudGV4dENvbnRlbnQgPSAn0KLQtdC/0LvQvtCy0L7QuSDRjdGE0YTQtdC60YIg0LHQu9C40LfQvtC6INC6INC90YPQu9GOLic7CiAgICB9CiAgfQoKICBmdW5jdGlvbiByZXNldEFsbCgpIHsKICAgIGNsZWFyRXJyb3IoKTsKICAgIHJlbmRlckluaXRpYWxDb21wb25lbnRzKCk7CiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LWRlbHRhLWgnKS50ZXh0Q29udGVudCA9ICfigJQnOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC10eXBlJykudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQtZGV0YWlscycpLnRleHRDb250ZW50ID0gJyc7CiAgfQoKICAvLyDQndCw0LLQtdGI0LjQstCw0L3QuNC1INGB0L7QsdGL0YLQuNC5CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbGN1bGF0ZS1idG4nKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNhbGN1bGF0ZSk7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc2V0LWJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgcmVzZXRBbGwpOwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkLXJlYWN0YW50LWJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVhY3RhbnRzLWNvbnRhaW5lcicpOwogICAgY29uc3QgbmV3Um93ID0gY3JlYXRlQ29tcG9uZW50Um93KCdyZWFjdGFudCcsIHJlYWN0YW50Q291bnRlcisrKTsKICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChuZXdSb3cpOwogIH0pOwoKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkLXByb2R1Y3QtYnRuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwcm9kdWN0cy1jb250YWluZXInKTsKICAgIGNvbnN0IG5ld1JvdyA9IGNyZWF0ZUNvbXBvbmVudFJvdygncHJvZHVjdCcsIHByb2R1Y3RDb3VudGVyKyspOwogICAgY29udGFpbmVyLmFwcGVuZENoaWxkKG5ld1Jvdyk7CiAgfSk7CgogIC8vINCh0YLQsNGA0YLQvtCy0LDRjyDQvtGC0YDQuNGB0L7QstC60LAKICByZW5kZXJJbml0aWFsQ29tcG9uZW50cygpOwp9KSgpOwo=