#publishevent
just publish json events with one click
this tool handles signing for you
(here is the correct link uri)
data:text/html;base64,PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9IiI+CiAgPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICA8dGl0bGU+cHVibGlzaGV2ZW50PC90aXRsZT4KICAgIDxzdHlsZT4KICAgIHRleHRhcmVhIHsKICAgICAgd2lkdGg6IDUwJTsKICAgICAgaGVpZ2h0OiAzMGVtOwogICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICB0YWItc2l6ZSA6IDI7CiAgICAgIHJlc2l6ZTogdmVydGljYWw7CiAgICB9CiAgICAjcmVzcG9uc2UgewogICAgICBmbG9hdDogcmlnaHQ7CiAgICAgIHdpZHRoOiBjYWxjKCA1MCUgLSAyZW0gKTsKICAgICAgcGFkZGluZzogMCAxZW07CiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7CiAgICB9CiAgICA8L3N0eWxlPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vdW5wa2cuY29tL25vc3RyLXRvb2xzL2xpYi9ub3N0ci5idW5kbGUuanMiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PgogICAgPHNjcmlwdD4KICAgIChmdW5jdGlvbiAoZXhwb3J0cykgewogICAgICAndXNlIHN0cmljdCc7CgogICAgICBmdW5jdGlvbiBpbnNlcnRUZXh0SW50b0ZpZWxkKGZpZWxkLCB0ZXh0KSB7CiAgICAgICAgICBjb25zdCBkb2N1bWVudCA9IGZpZWxkLm93bmVyRG9jdW1lbnQ7CiAgICAgICAgICBjb25zdCBpbml0aWFsRm9jdXMgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50OwogICAgICAgICAgaWYgKGluaXRpYWxGb2N1cyAhPT0gZmllbGQpIHsKICAgICAgICAgICAgICBmaWVsZC5mb2N1cygpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHRleHQgPT09ICcnKSB7CiAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2RlbGV0ZScpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnLCBmYWxzZSwgdGV4dCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaW5pdGlhbEZvY3VzID09PSBkb2N1bWVudC5ib2R5KSB7CiAgICAgICAgICAgICAgZmllbGQuYmx1cigpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSBpZiAoaW5pdGlhbEZvY3VzIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgaW5pdGlhbEZvY3VzICE9PSBmaWVsZCkgewogICAgICAgICAgICAgIGluaXRpYWxGb2N1cy5mb2N1cygpOwogICAgICAgICAgfQogICAgICB9CgogICAgICBmdW5jdGlvbiBpbmRlbnRTZWxlY3Rpb24oZWxlbWVudCkgewogICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kLCB2YWx1ZSB9ID0gZWxlbWVudDsKICAgICAgICAgIGNvbnN0IHNlbGVjdGVkVGV4dCA9IHZhbHVlLnNsaWNlKHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQpOwogICAgICAgICAgY29uc3QgbGluZUJyZWFrQ291bnQgPSAvXG4vZy5leGVjKHNlbGVjdGVkVGV4dCk/Lmxlbmd0aDsKICAgICAgICAgIGlmIChsaW5lQnJlYWtDb3VudCA+IDApIHsKICAgICAgICAgICAgICBjb25zdCBmaXJzdExpbmVTdGFydCA9IHZhbHVlLmxhc3RJbmRleE9mKCdcbicsIHNlbGVjdGlvblN0YXJ0IC0gMSkgKyAxOwogICAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGlvbiA9IGVsZW1lbnQudmFsdWUuc2xpY2UoZmlyc3RMaW5lU3RhcnQsIHNlbGVjdGlvbkVuZCAtIDEpOwogICAgICAgICAgICAgIGNvbnN0IGluZGVudGVkVGV4dCA9IG5ld1NlbGVjdGlvbi5yZXBsYWNlQWxsKC9efFxuL2csCiAgICAgICAgICAgICAgJyQmXHQnKTsKICAgICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudHNDb3VudCA9IGluZGVudGVkVGV4dC5sZW5ndGggLSBuZXdTZWxlY3Rpb24ubGVuZ3RoOwogICAgICAgICAgICAgIGVsZW1lbnQuc2V0U2VsZWN0aW9uUmFuZ2UoZmlyc3RMaW5lU3RhcnQsIHNlbGVjdGlvbkVuZCAtIDEpOwogICAgICAgICAgICAgIGluc2VydFRleHRJbnRvRmllbGQoZWxlbWVudCwgaW5kZW50ZWRUZXh0KTsKICAgICAgICAgICAgICBlbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0ICsgMSwgc2VsZWN0aW9uRW5kICsgcmVwbGFjZW1lbnRzQ291bnQpOwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgaW5zZXJ0VGV4dEludG9GaWVsZChlbGVtZW50LCAnXHQnKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBmaW5kTGluZUVuZCh2YWx1ZSwgY3VycmVudEVuZCkgewogICAgICAgICAgY29uc3QgbGFzdExpbmVTdGFydCA9IHZhbHVlLmxhc3RJbmRleE9mKCdcbicsIGN1cnJlbnRFbmQgLSAxKSArIDE7CiAgICAgICAgICBpZiAodmFsdWUuY2hhckF0KGxhc3RMaW5lU3RhcnQpICE9PSAnXHQnKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRFbmQ7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbGFzdExpbmVTdGFydCArIDE7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdW5pbmRlbnRTZWxlY3Rpb24oZWxlbWVudCkgewogICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kLCB2YWx1ZSB9ID0gZWxlbWVudDsKICAgICAgICAgIGNvbnN0IGZpcnN0TGluZVN0YXJ0ID0gdmFsdWUubGFzdEluZGV4T2YoJ1xuJywgc2VsZWN0aW9uU3RhcnQgLSAxKSArIDE7CiAgICAgICAgICBjb25zdCBtaW5pbXVtU2VsZWN0aW9uRW5kID0gZmluZExpbmVFbmQodmFsdWUsIHNlbGVjdGlvbkVuZCk7CiAgICAgICAgICBjb25zdCBuZXdTZWxlY3Rpb24gPSBlbGVtZW50LnZhbHVlLnNsaWNlKGZpcnN0TGluZVN0YXJ0LCBtaW5pbXVtU2VsZWN0aW9uRW5kKTsKICAgICAgICAgIGNvbnN0IGluZGVudGVkVGV4dCA9IG5ld1NlbGVjdGlvbi5yZXBsYWNlQWxsKC8oXnxcbikoXHR8IHsxLDJ9KS9nLCAnJDEnKTsKICAgICAgICAgIGNvbnN0IHJlcGxhY2VtZW50c0NvdW50ID0gbmV3U2VsZWN0aW9uLmxlbmd0aCAtIGluZGVudGVkVGV4dC5sZW5ndGg7CiAgICAgICAgICBlbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKGZpcnN0TGluZVN0YXJ0LCBtaW5pbXVtU2VsZWN0aW9uRW5kKTsKICAgICAgICAgIGluc2VydFRleHRJbnRvRmllbGQoZWxlbWVudCwgaW5kZW50ZWRUZXh0KTsKICAgICAgICAgIGNvbnN0IGZpcnN0TGluZUluZGVudGF0aW9uID0gL1x0fCB7MSwyfS8uZXhlYyh2YWx1ZS5zbGljZShmaXJzdExpbmVTdGFydCwgc2VsZWN0aW9uU3RhcnQpKTsKICAgICAgICAgIGNvbnN0IGRpZmZlcmVuY2UgPSBmaXJzdExpbmVJbmRlbnRhdGlvbgogICAgICAgICAgICAgID8gZmlyc3RMaW5lSW5kZW50YXRpb25bMF0ubGVuZ3RoCiAgICAgICAgICAgICAgOiAwOwogICAgICAgICAgY29uc3QgbmV3U2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydCAtIGRpZmZlcmVuY2U7CiAgICAgICAgICBlbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvblN0YXJ0IC0gZGlmZmVyZW5jZSwgTWF0aC5tYXgobmV3U2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCAtIHJlcGxhY2VtZW50c0NvdW50KSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gdGFiVG9JbmRlbnRMaXN0ZW5lcihldmVudCkgewogICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQKICAgICAgICAgICAgICB8fCBldmVudC5tZXRhS2V5CiAgICAgICAgICAgICAgfHwgZXZlbnQuYWx0S2V5CiAgICAgICAgICAgICAgfHwgZXZlbnQuY3RybEtleSkgewogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHRleHRhcmVhID0gZXZlbnQudGFyZ2V0OwogICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIHsKICAgICAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHsKICAgICAgICAgICAgICAgICAgdW5pbmRlbnRTZWxlY3Rpb24odGV4dGFyZWEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgaW5kZW50U2VsZWN0aW9uKHRleHRhcmVhKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScKICAgICAgICAgICAgICAmJiAhZXZlbnQuc2hpZnRLZXkpIHsKICAgICAgICAgICAgICB0ZXh0YXJlYS5ibHVyKCk7CiAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBlbmFibGVUYWJUb0luZGVudChlbGVtZW50cywgc2lnbmFsKSB7CiAgICAgICAgICBpZiAodHlwZW9mIGVsZW1lbnRzID09PSAnc3RyaW5nJykgewogICAgICAgICAgICAgIGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlbGVtZW50cyk7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIGlmIChlbGVtZW50cyBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpIHsKICAgICAgICAgICAgICBlbGVtZW50cyA9IFtlbGVtZW50c107CiAgICAgICAgICB9CiAgICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMpIHsKICAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0YWJUb0luZGVudExpc3RlbmVyLCB7IHNpZ25hbCB9KTsKICAgICAgICAgIH0KICAgICAgfQogICAgICBjb25zdCBpbmRlbnQgPSBpbmRlbnRTZWxlY3Rpb247CiAgICAgIGNvbnN0IHVuaW5kZW50ID0gdW5pbmRlbnRTZWxlY3Rpb247CiAgICAgIGNvbnN0IGV2ZW50SGFuZGxlciA9IHRhYlRvSW5kZW50TGlzdGVuZXI7CiAgICAgIGNvbnN0IHdhdGNoID0gZW5hYmxlVGFiVG9JbmRlbnQ7CgogICAgICBleHBvcnRzLmVuYWJsZVRhYlRvSW5kZW50ID0gZW5hYmxlVGFiVG9JbmRlbnQ7CiAgICAgIGV4cG9ydHMuZXZlbnRIYW5kbGVyID0gZXZlbnRIYW5kbGVyOwogICAgICBleHBvcnRzLmluZGVudCA9IGluZGVudDsKICAgICAgZXhwb3J0cy5pbmRlbnRTZWxlY3Rpb24gPSBpbmRlbnRTZWxlY3Rpb247CiAgICAgIGV4cG9ydHMudGFiVG9JbmRlbnRMaXN0ZW5lciA9IHRhYlRvSW5kZW50TGlzdGVuZXI7CiAgICAgIGV4cG9ydHMudW5pbmRlbnQgPSB1bmluZGVudDsKICAgICAgZXhwb3J0cy51bmluZGVudFNlbGVjdGlvbiA9IHVuaW5kZW50U2VsZWN0aW9uOwogICAgICBleHBvcnRzLndhdGNoID0gd2F0Y2g7CgogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgfSh0aGlzLndpbmRvdyA9IHRoaXMud2luZG93IHx8IHt9KSk7CiAgICA8L3NjcmlwdD4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8Zm9ybSBhY3Rpb249IiMiPgogICAgICA8ZGl2IGlkPSJyZXNwb25zZSI+PC9kaXY+CiAgICAgIDxwPgogICAgICAgIDx0ZXh0YXJlYT48L3RleHRhcmVhPgogICAgICA8L3A+CiAgICAgIDxwPgogICAgICAgIGFwcGx5IHRlbXBsYXRlOgogICAgICAgIDxhIGhyZWY9IiMiIGRhdGEtdGVtcGxhdGU9IjEiPmtpbmQgMTwvYT4sCiAgICAgICAgPGEgaHJlZj0iIyIgZGF0YS10ZW1wbGF0ZT0iMTA2MyI+a2luZCAxMDYzPC9hPgogICAgICA8L3A+CiAgICAgIDxwPgogICAgICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJwdWJsaXNoIi8+CiAgICAgIDwvcD4KICAgIDwvZm9ybT4KICAgIDxzY3JpcHQ+CiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IHt9CgogICAgICB0ZW1wbGF0ZXNbMV0gPSB7CiAgICAgICAgImtpbmQiOiAxLAogICAgICAgICJjb250ZW50IjogIiIsCiAgICAgICAgInRhZ3MiOiBbXQogICAgICB9CgogICAgICB0ZW1wbGF0ZXNbMTA2M10gPSB7CiAgICAgICAgImtpbmQiOiAxMDYzLAogICAgICAgICJ0YWdzIjogWwogICAgICAgICAgWyJ1cmwiLCIiXQogICAgICAgIF0sCiAgICAgICAgImNvbnRlbnQiOiAiIiwKICAgICAgfQoKICAgICAgZm9yKGxldCBrZXkgaW4gdGVtcGxhdGVzKXsKICAgICAgICB0ZW1wbGF0ZXNba2V5XSA9IEpTT04uc3RyaW5naWZ5KHRlbXBsYXRlc1trZXldLCBudWxsLCAiXHQiKQogICAgICB9CgogICAgICBjb25zdCB0ZXh0YXJlYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRleHRhcmVhIikKCiAgICAgIGZ1bmN0aW9uIGFwcGx5X3RlbXBsYXRlKGxpbmspewogICAgICAgIHRleHRhcmVhLnZhbHVlID0gdGVtcGxhdGVzW2xpbmsuZGF0YXNldC50ZW1wbGF0ZV0KICAgICAgfQoKICAgICAgZm9yKGxldCB0ZW1wbGF0ZV9saW5rIG9mIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImFbZGF0YS10ZW1wbGF0ZV0iKSl7CiAgICAgICAgdGVtcGxhdGVfbGluay5vbmNsaWNrID0gZnVuY3Rpb24oZSl7CiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgIGFwcGx5X3RlbXBsYXRlKHRoaXMpCiAgICAgICAgfQogICAgICB9CgogICAgICBhcHBseV90ZW1wbGF0ZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJhW2RhdGEtdGVtcGxhdGVdIikpCiAgICAgIGVuYWJsZVRhYlRvSW5kZW50KHRleHRhcmVhKQoKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZm9ybSIpLm9uc3VibWl0ID0gZnVuY3Rpb24oZSl7CiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpCgogICAgICAgIHRyeXsKICAgICAgICAgIGNvbnN0IGV2ZW50ID0gSlNPTi5wYXJzZSh0ZXh0YXJlYS52YWx1ZSkKICAgICAgICAgIGV2ZW50LmNyZWF0ZWRfYXQgPSBldmVudC5jcmVhdGVkX2F0IHx8IE1hdGguZmxvb3IobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKQoKICAgICAgICAgIGNvbnN0IHNrID0gTm9zdHJUb29scy5nZW5lcmF0ZVNlY3JldEtleSgpCiAgICAgICAgICBOb3N0clRvb2xzLmZpbmFsaXplRXZlbnQoZXZlbnQsIHNrKQoKICAgICAgICAgIGNvbnN0IHNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzczovL25vcy5sb2wiKQoKICAgICAgICAgIHNvY2tldC5vbm9wZW4gPSBmdW5jdGlvbigpewogICAgICAgICAgICBzb2NrZXQuc2VuZChKU09OLnN0cmluZ2lmeShbIkVWRU5UIiwgZXZlbnRdKSkKICAgICAgICAgIH0KCiAgICAgICAgICBzb2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24oZSl7CiAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZXNwb25zZSIpLmlubmVyVGV4dCA9IGUuZGF0YQogICAgICAgICAgICBzb2NrZXQuY2xvc2UoKQogICAgICAgICAgfQogICAgICAgIH1jYXRjaChlKXsKICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNyZXNwb25zZSIpLmlubmVyVGV4dCA9IGUubWVzc2FnZQogICAgICAgIH0KICAgICAgfQogICAgPC9zY3JpcHQ+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==